Author |
Message |
belfegor96
Fanat
Joined: 09 Jun 2022 00:49 Posts: 83
|
Запилил в Logisim Evolution модель (а сюда залить
Работает, но пока делал пришло понимание что нужно проектировать под конкретную эмулируемую архитектуру.
Как минимум, просматриваются некоторые трюки насчёт памяти: в оригинале используется двухпортовая, но ведь двухпортовых статических не бывает - это ведь имитация всегда? При этом почти любая программа будет содержать чётное количество инструкций, потому что процессор 8-битный, а эмулируемая архитектура riscv 32-битная. То есть, можно всегда брать операнды с одной "стороны", а результаты класть в другую. Получится два не связанных банка памяти. Один ещё можно сделать размером поменьше, типа, жирный "аккумулятор"
Что думаете?
|
06 Nov 2022 00:34 |
|
|
belfegor96
Fanat
Joined: 09 Jun 2022 00:49 Posts: 83
|
А вот так выглядит ЭСЛ ПЗУ
32 бита * 256 команды = 8192 транзисторов если все нули записать, но будет примерно пополам, а значит нужно 8192 + 8192/2 = 12288 транзисторов
Всё, на этом можно и успокоиться, по крайней мере, с такой широкой инструкцией. Нужно смотреть в сторону минимальных 4-битных процессоров.
|
06 Nov 2022 13:35 |
|
|
belfegor96
Fanat
Joined: 09 Jun 2022 00:49 Posts: 83
|
Хотя, что-то затупил)) Есть же smd!
И память это как раз та вещь, которую неплохо было бы аналогово просимулировать для начала...
|
06 Nov 2022 15:37 |
|
|
belfegor96
Fanat
Joined: 09 Jun 2022 00:49 Posts: 83
|
Спешу поделиться интересной находкой! Оказывается, "с тех пор" изобрели следующую ступеньку ЭСЛ - IBM её назвала "Differential Current Switch logic" (DCS). Она оперирует дифференциальным сигналом (что хорошо для помехозащищённости), и, поэтому, внутри устроена как... реле! Подробности тут (англ): https://www.righto.com/2021/03/(Там как раз тот самый знаменитый процессор от IBM, который разбирали на EEVblog, с пружинками, в масле и воздушным охлаждением сверху) То есть, фактически можно не менять логику этого релейного компьютера совсем (хотя может оказаться выгоднее некоторые вещи сделать по-другому - посмотрим)
|
08 Nov 2022 14:53 |
|
|
belfegor96
Fanat
Joined: 09 Jun 2022 00:49 Posts: 83
|
В IBM-овской документации нашёл маленькое уточнение: эмиттерные повторители лучше подтягивать не к земле, а к специальному напряжению -0.7В
В остальном - промоделировал на транзисторе BFP193W (он на 8 ГГц и доступен в продаже), собрал три каскада переключателей последовательно - на 1 ГГц очень чётко работает. Вау!
Даже попробовал добавить к Vcc помеху размахом 2В (для "обычной" ЭСЛ важно чтобы Vcc был очень стабильным, его даже советуют цеплять как GND) - ничего, сигналы вполне различимы ещё для этой системы (но где-то на 3В уже точно сломается)
|
11 Nov 2022 23:01 |
|
|
belfegor96
Fanat
Joined: 09 Jun 2022 00:49 Posts: 83
|
Забыл приложить схемы
Vt - это как раз точка для подключения эмиттерного повторителя. "T" это, вроде, потому что туда также подключается терминаторный резистор, если линия длинная
|
11 Nov 2022 23:17 |
|
|
belfegor96
Fanat
Joined: 09 Jun 2022 00:49 Posts: 83
|
Промоделировал в QUCS вообще всё что можно. Решил перейти от эмитерно-связной логики к DCTL (direct-coupled transistor logic - то же самое что ЭСЛ, но без эмитерных повторителей) с вкраплениями этих повторителей. Параллельно обмазываюсь замечательной книгой "Thornton — Design of a Computer. The Control Data 6600".
Теперь встал следующий вопрос: а какую архитектуру всё-таки делать? Понятное дело что любой компьютер может эмулировать исполнение команд RISC-V, но какой ценой? Может, имеет смысл не повторять минимальный компьютер (типа промоделированного выше релейного), а потратить 200 дополнительных транзисторов и в разы ускорить эмулятор?
То есть, нужно понять, как изобретать архитектуру чтобы она минимальным числом гейтов могла максимально быстро эмулировать этот самый RISC-V. Даже так: цена каждого элемента крупнее гейта известна - в DCTL не всё однозначно и иногда есть способы хитрого комбинирования чтобы снижать цену отдельных регистров, счётчиков и т.п.
В какую сторону копать вообще не представляю. Перебирать все варианты архитектур вручную и на графике проставлять им скорость эмуляции, чтобы потом выбрать оптимальную - это слишком трудозатратно.
|
26 Nov 2022 03:51 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23357 Location: Silicon Valley
|
А я в QUCS не въёхал
|
26 Nov 2022 09:13 |
|
|
belfegor96
Fanat
Joined: 09 Jun 2022 00:49 Posts: 83
|
Qucs-s теперь "просто рисовалка", а под капотом у неё обычный ngspice
|
28 Nov 2022 11:49 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23357 Location: Silicon Valley
|
LTspice сильно проще и понятнее (хоть и клозесорц - я пользовал LTspiceIV пуская его в Wine)
|
28 Nov 2022 20:18 |
|
|
belfegor96
Fanat
Joined: 09 Jun 2022 00:49 Posts: 83
|
Неожиданная проблема: а как с минимальным количеством компонентов сделать индикацию состояния ЭСЛ или DCS-ячейки? Неинтересно же иметь компьютер, который просто работает, но не моргает лампочками
|
23 Jan 2023 15:38 |
|
|
ra3qdp
Fanat
Joined: 18 Feb 2019 15:46 Posts: 68
|
где-то встречал описание процессора на двух соединенных стоками полевых транзисторах (функция 2или-не) реализующая приличную архитектуру. Только вот - каждая элементарная команда выполнялась за очень много тактов и поэтому результирующая производительность получилась крайне низкой. Может кто помнит где найти про этот процессор ? Так что, каким бы ни был быстрым 1-разрядный элемент, быстрого процессора из него не получится. Ну и еще - а такую быструю память где брать ?
|
24 Jan 2023 10:10 |
|
|
belfegor96
Fanat
Joined: 09 Jun 2022 00:49 Posts: 83
|
А это то же самое и получится, но на биполярных "макросхема" получится быстрее - при определённой аккуратности можно и 200МГц получить, думаю Не особо быструю, обычную. У однобитных же характерная особенность есть: у них нет регистра PC, вместо этого есть команда "дай следующую команду", и уже схемотехнически решается откуда эта команда берётся - хоть с перфоленты. Таким образом, "быстрый" доступ заменяется на "обычный"
|
24 Jan 2023 15:20 |
|
|
ra3qdp
Fanat
Joined: 18 Feb 2019 15:46 Posts: 68
|
нашел: http://www.mynor.org/почитайте и прикиньте - что Вас ждет по быстродействию с учетом обращений к ПЗУ. Быстродействие логической ячейки съест многократное обращение к ПЗУ (сообщите, пожалуйста - сколько наносекунд Вы планируете и какое именно ПЗУ ?) и поэтому применение сверх-быстродействующей логики - бессмысленно.
|
28 Jan 2023 03:34 |
|
|
belfegor96
Fanat
Joined: 09 Jun 2022 00:49 Posts: 83
|
Для микрокода я планирую ПЗУ на транзисторах же, точно по такой же схеме как и остальная логика
|
28 Jan 2023 10:55 |
|
|