1-битный процессор микрокода на эмиттерно-связанной логике?
Moderator: Shaos
-
- Fanat
- Posts: 91
- Joined: 09 Jun 2022 07:49
Re: 1-битный процессор микрокода на эмиттерно-связанной логи
Запилил в Logisim Evolution модель (а сюда залить
Работает, но пока делал пришло понимание что нужно проектировать под конкретную эмулируемую архитектуру.
Как минимум, просматриваются некоторые трюки насчёт памяти: в оригинале используется двухпортовая, но ведь двухпортовых статических не бывает - это ведь имитация всегда? При этом почти любая программа будет содержать чётное количество инструкций, потому что процессор 8-битный, а эмулируемая архитектура riscv 32-битная. То есть, можно всегда брать операнды с одной "стороны", а результаты класть в другую. Получится два не связанных банка памяти. Один ещё можно сделать размером поменьше, типа, жирный "аккумулятор"
Что думаете?
Работает, но пока делал пришло понимание что нужно проектировать под конкретную эмулируемую архитектуру.
Как минимум, просматриваются некоторые трюки насчёт памяти: в оригинале используется двухпортовая, но ведь двухпортовых статических не бывает - это ведь имитация всегда? При этом почти любая программа будет содержать чётное количество инструкций, потому что процессор 8-битный, а эмулируемая архитектура riscv 32-битная. То есть, можно всегда брать операнды с одной "стороны", а результаты класть в другую. Получится два не связанных банка памяти. Один ещё можно сделать размером поменьше, типа, жирный "аккумулятор"
Что думаете?
- Attachments
- nedopc.7z
- The Single Board Relay Computer (or Relay Trainer) - Logisim Evolution
- (5.29 KiB) Downloaded 342 times
- The Single Board Relay Computer (or Relay Trainer) - общий вид
- pic.png (86.86 KiB) Viewed 15409 times
-
- Fanat
- Posts: 91
- Joined: 09 Jun 2022 07:49
Re: 1-битный процессор микрокода на эмиттерно-связанной логи
А вот так выглядит ЭСЛ ПЗУ
32 бита * 256 команды = 8192 транзисторов если все нули записать, но будет примерно пополам, а значит нужно 8192 + 8192/2 = 12288 транзисторов
Всё, на этом можно и успокоиться, по крайней мере, с такой широкой инструкцией. Нужно смотреть в сторону минимальных 4-битных процессоров.
32 бита * 256 команды = 8192 транзисторов если все нули записать, но будет примерно пополам, а значит нужно 8192 + 8192/2 = 12288 транзисторов
Всё, на этом можно и успокоиться, по крайней мере, с такой широкой инструкцией. Нужно смотреть в сторону минимальных 4-битных процессоров.
- Attachments
- ЭСЛ ПЗУ (ECL ROM)
- image007.gif (4.77 KiB) Viewed 15390 times
-
- Fanat
- Posts: 91
- Joined: 09 Jun 2022 07:49
Re: 1-битный процессор микрокода на эмиттерно-связанной логи
Хотя, что-то затупил)) Есть же smd!
И память это как раз та вещь, которую неплохо было бы аналогово просимулировать для начала...
И память это как раз та вещь, которую неплохо было бы аналогово просимулировать для начала...
- Attachments
- Плата с транзисторами крупным планом
- tranor_brd_register1.jpg (943.09 KiB) Viewed 15387 times
- Пример большого количества транзисторов на плате
- tranor_stapel1.jpg (826.12 KiB) Viewed 15387 times
-
- Fanat
- Posts: 91
- Joined: 09 Jun 2022 07:49
Re: 1-битный процессор микрокода на эмиттерно-связанной логи
Спешу поделиться интересной находкой!
Оказывается, "с тех пор" изобрели следующую ступеньку ЭСЛ - IBM её назвала "Differential Current Switch logic" (DCS). Она оперирует дифференциальным сигналом (что хорошо для помехозащищённости), и, поэтому, внутри устроена как... реле!
Подробности тут (англ):
https://www.righto.com/2021/03/
(Там как раз тот самый знаменитый процессор от IBM, который разбирали на EEVblog, с пружинками, в масле и воздушным охлаждением сверху)
То есть, фактически можно не менять логику этого релейного компьютера совсем (хотя может оказаться выгоднее некоторые вещи сделать по-другому - посмотрим)
Оказывается, "с тех пор" изобрели следующую ступеньку ЭСЛ - IBM её назвала "Differential Current Switch logic" (DCS). Она оперирует дифференциальным сигналом (что хорошо для помехозащищённости), и, поэтому, внутри устроена как... реле!
Подробности тут (англ):
https://www.righto.com/2021/03/
(Там как раз тот самый знаменитый процессор от IBM, который разбирали на EEVblog, с пружинками, в масле и воздушным охлаждением сверху)
То есть, фактически можно не менять логику этого релейного компьютера совсем (хотя может оказаться выгоднее некоторые вещи сделать по-другому - посмотрим)
- Attachments
- Switcher explanation
- selector2-w600.jpg (63.34 KiB) Viewed 15340 times
- IBM Differential Current Switch logic (DCS) switcher
- switches-w350.jpg (31.07 KiB) Viewed 15340 times
-
- Fanat
- Posts: 91
- Joined: 09 Jun 2022 07:49
Re: 1-битный процессор микрокода на эмиттерно-связанной логи
В IBM-овской документации нашёл маленькое уточнение: эмиттерные повторители лучше подтягивать не к земле, а к специальному напряжению -0.7В
В остальном - промоделировал на транзисторе BFP193W (он на 8 ГГц и доступен в продаже), собрал три каскада переключателей последовательно - на 1 ГГц очень чётко работает. Вау!
Даже попробовал добавить к Vcc помеху размахом 2В (для "обычной" ЭСЛ важно чтобы Vcc был очень стабильным, его даже советуют цеплять как GND) - ничего, сигналы вполне различимы ещё для этой системы (но где-то на 3В уже точно сломается)
В остальном - промоделировал на транзисторе BFP193W (он на 8 ГГц и доступен в продаже), собрал три каскада переключателей последовательно - на 1 ГГц очень чётко работает. Вау!
Даже попробовал добавить к Vcc помеху размахом 2В (для "обычной" ЭСЛ важно чтобы Vcc был очень стабильным, его даже советуют цеплять как GND) - ничего, сигналы вполне различимы ещё для этой системы (но где-то на 3В уже точно сломается)
-
- Fanat
- Posts: 91
- Joined: 09 Jun 2022 07:49
Re: 1-битный процессор микрокода на эмиттерно-связанной логи
Забыл приложить схемы
Vt - это как раз точка для подключения эмиттерного повторителя. "T" это, вроде, потому что туда также подключается терминаторный резистор, если линия длинная
Vt - это как раз точка для подключения эмиттерного повторителя. "T" это, вроде, потому что туда также подключается терминаторный резистор, если линия длинная
- Attachments
- Дифференциальный ЭСЛ-переключатель
- export.png (7.59 KiB) Viewed 15287 times
- Испытание двух ЭСЛ-переключателей
- export.png (25.54 KiB) Viewed 15287 times
-
- Fanat
- Posts: 91
- Joined: 09 Jun 2022 07:49
Re: 1-битный процессор микрокода на эмиттерно-связанной логи
Промоделировал в QUCS вообще всё что можно. Решил перейти от эмитерно-связной логики к DCTL (direct-coupled transistor logic - то же самое что ЭСЛ, но без эмитерных повторителей) с вкраплениями этих повторителей. Параллельно обмазываюсь замечательной книгой "Thornton — Design of a Computer. The Control Data 6600".
Теперь встал следующий вопрос: а какую архитектуру всё-таки делать? Понятное дело что любой компьютер может эмулировать исполнение команд RISC-V, но какой ценой? Может, имеет смысл не повторять минимальный компьютер (типа промоделированного выше релейного), а потратить 200 дополнительных транзисторов и в разы ускорить эмулятор?
То есть, нужно понять, как изобретать архитектуру чтобы она минимальным числом гейтов могла максимально быстро эмулировать этот самый RISC-V. Даже так: цена каждого элемента крупнее гейта известна - в DCTL не всё однозначно и иногда есть способы хитрого комбинирования чтобы снижать цену отдельных регистров, счётчиков и т.п.
В какую сторону копать вообще не представляю. Перебирать все варианты архитектур вручную и на графике проставлять им скорость эмуляции, чтобы потом выбрать оптимальную - это слишком трудозатратно.
Теперь встал следующий вопрос: а какую архитектуру всё-таки делать? Понятное дело что любой компьютер может эмулировать исполнение команд RISC-V, но какой ценой? Может, имеет смысл не повторять минимальный компьютер (типа промоделированного выше релейного), а потратить 200 дополнительных транзисторов и в разы ускорить эмулятор?
То есть, нужно понять, как изобретать архитектуру чтобы она минимальным числом гейтов могла максимально быстро эмулировать этот самый RISC-V. Даже так: цена каждого элемента крупнее гейта известна - в DCTL не всё однозначно и иногда есть способы хитрого комбинирования чтобы снижать цену отдельных регистров, счётчиков и т.п.
В какую сторону копать вообще не представляю. Перебирать все варианты архитектур вручную и на графике проставлять им скорость эмуляции, чтобы потом выбрать оптимальную - это слишком трудозатратно.
Re: 1-битный процессор микрокода на эмиттерно-связанной логи
А я в QUCS не въёхал
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Fanat
- Posts: 91
- Joined: 09 Jun 2022 07:49
Re: 1-битный процессор микрокода на эмиттерно-связанной логи
Qucs-s теперь "просто рисовалка", а под капотом у неё обычный ngspiceShaos wrote:А я в QUCS не въёхал
Re: 1-битный процессор микрокода на эмиттерно-связанной логи
LTspice сильно проще и понятнее (хоть и клозесорц - я пользовал LTspiceIV пуская его в Wine)
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Fanat
- Posts: 91
- Joined: 09 Jun 2022 07:49
Re: 1-битный процессор микрокода на эмиттерно-связанной логи
Неожиданная проблема: а как с минимальным количеством компонентов сделать индикацию состояния ЭСЛ или DCS-ячейки? Неинтересно же иметь компьютер, который просто работает, но не моргает лампочками
Re: 1-битный процессор микрокода на эмиттерно-связанной логи
где-то встречал описание процессора на двух соединенных стоками полевых транзисторах (функция 2или-не) реализующая приличную архитектуру. Только вот - каждая элементарная команда выполнялась за очень много тактов и поэтому результирующая производительность получилась крайне низкой. Может кто помнит где найти про этот процессор ? Так что, каким бы ни был быстрым 1-разрядный элемент, быстрого процессора из него не получится.
Ну и еще - а такую быструю память где брать ?
Ну и еще - а такую быструю память где брать ?
-
- Fanat
- Posts: 91
- Joined: 09 Jun 2022 07:49
Re: 1-битный процессор микрокода на эмиттерно-связанной логи
А это то же самое и получится, но на биполярных "макросхема" получится быстрее - при определённой аккуратности можно и 200МГц получить, думаюra3qdp wrote:где-то встречал описание процессора на двух соединенных стоками полевых транзисторах (функция 2или-не) реализующая приличную архитектуру.
Не особо быструю, обычную.Только вот - каждая элементарная команда выполнялась за очень много тактов и поэтому результирующая производительность получилась крайне низкой. Может кто помнит где найти про этот процессор ? Так что, каким бы ни был быстрым 1-разрядный элемент, быстрого процессора из него не получится.
Ну и еще - а такую быструю память где брать ?
У однобитных же характерная особенность есть: у них нет регистра PC, вместо этого есть команда "дай следующую команду", и уже схемотехнически решается откуда эта команда берётся - хоть с перфоленты. Таким образом, "быстрый" доступ заменяется на "обычный"
Re: 1-битный процессор микрокода на эмиттерно-связанной логи
нашел:ra3qdp wrote:где-то встречал описание процессора на двух соединенных стоками полевых транзисторах (функция 2или-не) реализующая приличную архитектуру.
http://www.mynor.org/
почитайте и прикиньте - что Вас ждет по быстродействию с учетом обращений к ПЗУ.
Быстродействие логической ячейки съест многократное обращение к ПЗУ (сообщите, пожалуйста - сколько наносекунд Вы планируете и какое именно ПЗУ ?) и поэтому применение сверх-быстродействующей логики - бессмысленно.
-
- Fanat
- Posts: 91
- Joined: 09 Jun 2022 07:49
Re: 1-битный процессор микрокода на эмиттерно-связанной логи
Для микрокода я планирую ПЗУ на транзисторах же, точно по такой же схеме как и остальная логикаra3qdp wrote: Быстродействие логической ячейки съест многократное обращение к ПЗУ (сообщите, пожалуйста - сколько наносекунд Вы планируете и какое именно ПЗУ ?) и поэтому применение сверх-быстродействующей логики - бессмысленно.