Это одна из тех мечт, которые я не смогу реализовать, потому что это слишком сложно и слишком не нужно. Часто думаю на эту тему, как создать процессор, который бы работал чисто на транзисторах и при этом выполнял хотя бы какие-то действия, кроме мигания светодиодом. Обдумывая это дело, понял, что сделать то ничего не выйдет дельного, но что, если не дельное?
Допустим, я смогу сделать ПЗУ, которое будет основано на использовании диодов. У меня есть "кроватки" для них, к примеру, попробую напаять их по-быстрому, и можно будет путем вставки в кроватки диодов регулировать программу, перепрограммировать ПЗУ в ручном виде. Но нужно придумать процессор, который бы хотя бы что-то обрабатывал. Пусть будет ширина 4 бита на одну инструкцию. Пример инструкции:
[000X] LOAD X -- загрузить в аккумулятор
[001X] ADC X -- выполнить сложение с переносом
[010X] CLC, CMC -- CF=0, CF=!CF
[011X] SKIPCF -- не выполнять следующую инструкцию если CF=1
[1XXX] JMP X -- перейти на метку
Всего 4 кроватки, по 8 бит каждый. Это 32 бита в целом на ПЗУ, а значит, 32/4=8 строк. Уровень инструкции адски ограничен и всего лишь имеется 1 бит. Это ужасно мало и ничего не делает. Но у меня и не получится сделать ничего сложнее, чем эта байда.
Вот я тут рассчитывал, сколько требуется транзисторов на все дело. Очень много. Для дешифратора потребуется 24 транзистора, 3 на 8, и еще столько 24+8 резисторов, 32 резистора. Это еще ладно бы. Вот сколько потребуется на триггеры, это вообще улететь можно.
Один D-триггер требует 4 NAND, один NAND содержит в себе 2 транзистора и 3 резистора. Это значит, что 8 транзисторов и 12 резисторов на 1 бит. А всего будет 3 бита, потому что оно, да, то самое, всего лишь 3 битный адрес, конечно же. Да. Хорошо, даже если так, то это 8*3=24 транзистора и 36 резисторов, конечно же. Уже получается 24+24=48 транзисторов. С точки зрения няшности, это вроде не много, но однако, уже одна планка только на хранение половины триггера. А ведь еще вторая половина будет. 2 планки.
Мне явно не хватит планок, придется еще докупать. Это довольно много. Но ладно, я могу купить и 5 штук, и будет 25 планок. Проблемы еще только начинаются, потому что ладно, допустим для надежного хранения 3х битного значения мне потребуется 96 транзисторов (о ужас какой).
Хотя я тут глянул немного, может и не придется так изгаляться с триггерами. Есть и другая схема.
Для ее работоспособности потребуется 13 транзистров и 19 резисторов. То есть, 3 элемента потратят 39 транзисторов, а не 96, как было. А это экономия аж на 52 транзистора, на самом деле! Мне двух планок хватит тогда, а не 4, как считал до этого.
Теперь вторая ситуация. Допустим что программный счетчик у нас образовался и все ок. А ведь помимо того, что надо считать его, дополнительно требуется подцепить мультиплексор, который бы выбирал необходимые данные - либо счет, либо же загрузка нового значения. Один мультиплексор содержит в себе 7 транзисторов (2+2+2+1) и конечно же, 11 резисторов. Это говорит о том, что придется потратить как минимум, 21 транзистор на выбор данных. Это минус еще одна планка...