Nand2Tetris или Black Box

Nand2Tetris
3
Нейтральная
сторона
1
Black Box
2
Создать современный ПК с нуля! О чем еще можно мечтать?
Прежде чем писать комментарии или выбрать сторону вы должны авторизироваться!
Фу, занудство! Я представляю ПК магической черной коробкой.

04-05-2019 07:24 +1

В общем, у меня тут неделька от работы освободилась в связи с всеми этими праздниками. И вот решил начать проходить курс... Он оказался намного круче чем я ожидал!

Начиная с самых примитивных логических элементов
Я создал Arithmetic Logic Unit! И 32Кбайтній модуль оперативной памяти

Также создал программный счетчик (Program Counter) который будет говорить ЦПУ какую команду исполнять следующей. Ему можно присвоить новое значение - а это, по сути, JMP инструкция!!

Вот как сюрреалистично и магично выглядит ОЗУ:

И это только 512 регистров! А представьте как выглядит миллиард?! Слева - это Демультиплексоры которые выбирают какой регистр нужно перезаписать новым значением (если вообще нужно перезаписывать). Справа это Мультиплексоры, которые выбирают какой конкретный регистр нужно выдать на выход, для данного ОЗУ модулю адреса! По центру идут сами регистры которые, собственно, и запоминают "слова" (они тоже очень интересно работают, по сути, постоянно напоминают самим себе что в них было записано в прошлый тик времени). Выглядит как какой-то пилон Протосов или пентаграмма, лол.

В последнем проекте (№5) авторы немного абстрагировались от хардвера (пока я еще не собрал собственно весь ПК в целом, пока все детали разрознены) и сделали введение в машинные языки... Это любовь с первого взгляда! То что я всегда хотел понять но не знал что хочу этого! Написал 2 проги на чистом машинном языке! Это ощущение ни с чем не сравнить, когда ты понимаешь что значит каждый бит и как работает весь хардвер которым эти инструкции командуют можно говорить с машиной на ее родном языке! Без любых (даже таких примитивных как ассемблер) переводчиков!



Одна прога умножает 2 числа (АЛУ довольно простой и не поддерживает умножение и деление), другая, немного более сложная, заполняет экран черными пикселами если нажата какая-то клавиша, и очищает его если клавишу отпустить:
Превью клипа

Возможно это все из-за моего мировоззрения... Я просто ненавижу Черные Коробки... Мне всегда нужно знать как что-то работает чтобы этим спокойно пользоваться. В идеале, вообще самостоятельно создать это, чтобы на 100% понять.

Кажется, в психологической недонауке есть даже такой тип личности, не помню какой. Который постоянно докапывается до всего. Там приводят пример, типо, люди учатся на права и большинство не проявляют ни доли желания понять что просходит при нажатии на педаль газа. Только некоторые чувствуют значительный дискомфорт пока не поймут что там происходит внутри.

Сейчас весь мир полностью завязан на компьютерах, поэтому их 100% понимание я считаю очень важным! Это прям еще со школы было моей целью и мечтой, и вот теперь это все начинает становится реальностью!

К сожалению, ИРЛ мне не с кем поделится этим всем... Родственники не поймут и 0.0001% от этого всего, а больше никого, ведь я асоциальный элемент... Так что, вот, приходится компенсировать это виртуальным "общением" .____.

2 комментария
lotous 04-05-2019 16:25 +1

ScienceDiscoverer, Прикольно. Правда, я первый раз вижу такую программу. Я бы советовал более популярные среды разработки. Хотя, может это потому, что я предпочитаю простые пути - нетленная классика.
Вообще завидую твоему энтузиазму, мне вот последнее время впадлу даже наушники отремонтировать, не то чтобы заняться какой-нибудь поделкой. Так что жду твой тетрис)

ScienceDisco… 05-05-2019 06:48 +1

lotous, Я даже вот такое нарыл!

Оказывается, возможно даже создавать интегральные микросхемы в домашних условиях! Вот это высший класс!

04-05-2019 07:29 0

Возможно, кстати, я поэтому и сторонюсь людей... Ведь люди те еще черные коробки, на самом деле. Кто знает что у них в головах... И, главное, их никак невозможно выучить, понять что у них там...

А машина, совсем другое дело! Всегда тебя поймет, всегда идеально выполнит инструкцию!

0 комментариев
09-05-2019 11:47 0

Вот, собственно, наконец то:



Ну и сам компуктер:



До сих пор не могу никак поверить что я это все понял, собрал и оно идеально работает... Что за беда?! А главное не могу поверить что все так просто >___<

2 комментария
Kiok 09-05-2019 13:09 0

ScienceDiscoverer, Крузис тянет?

Simple_Not 12-05-2019 16:56 0

ScienceDiscoverer, Ну, справедливости ради, оно и есть просто на таком уровне проработки. У тебя сейчас ни типов, ни указателей, ни подключаемых устройств. Плюс сам CPU без кэша.

По идее такие вещи должны студентами проектироваться на раз-два, но то что ты сам доходишь без пинков сверху - это замечательно. И в самом деле вполне себе гарант, что возможно ещё и базис какой освоишь и сможешь дальше делать годноту.


12-05-2019 16:49 0

Здоровая благая цель, а если оно ещё и работать начинает хотя бы на уровне нормально калькулятора - собственно, поздравляю с созданием машины (сейчас, как понимаю, ещё виртуальной).
Можешь теперь сверху закинуться ПЛИС и воплотить это дело уже в физическом мире.

0 комментариев
04-05-2019 19:26 +1

У меня магическая белая коробка.

6 комментариев
ScienceDisco… 05-05-2019 10:49 0

Kiok, И магическое черное устройство ввода\вывода!

Kiok 05-05-2019 10:51 0

ScienceDiscoverer, дефолтная картинка, такого гейпада у меня нет - не нужен. У меня нормальный православный белый гейпад от хбокса оне.

Trikcster 09-05-2019 15:26 0

Kiok, Содомит. Небось ещё в ртс на ней играешь...

Kiok 09-05-2019 17:56 0

Trikcster, Тью, а чо? Это же не богомерзкая сосноль.

Trikcster 09-05-2019 18:19 0

Kiok, Но это похоже на сосноль! И потом ПеКа-арийцы не используют расавонеполноценные геймпады. Только мышь, и только клава!

Kiok 09-05-2019 21:46 0

Trikcster, пусть лучше на сосноль, чем на гигантский подстольный гроб-пылесборник.

14-05-2019 10:03 0

Ничего не понятно но очень интересно

0 комментариев