nedoPC.org

Community for electronics hobbyists, established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 06 Oct 2024 21:50



Reply to topic  [ 68 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
1-битный процессор микрокода на эмиттерно-связанной логике? 
Author Message
Fanat

Joined: 09 Jun 2022 00:49
Posts: 83
Reply with quote
Запилил в Logisim Evolution модель (а сюда залить

Работает, но пока делал пришло понимание что нужно проектировать под конкретную эмулируемую архитектуру.

Как минимум, просматриваются некоторые трюки насчёт памяти: в оригинале используется двухпортовая, но ведь двухпортовых статических не бывает - это ведь имитация всегда? При этом почти любая программа будет содержать чётное количество инструкций, потому что процессор 8-битный, а эмулируемая архитектура riscv 32-битная. То есть, можно всегда брать операнды с одной "стороны", а результаты класть в другую. Получится два не связанных банка памяти. Один ещё можно сделать размером поменьше, типа, жирный "аккумулятор"

Что думаете?


Attachments:
File comment: The Single Board Relay Computer (or Relay Trainer) - Logisim Evolution
nedopc.7z [5.29 KiB]
Downloaded 328 times
File comment: The Single Board Relay Computer (or Relay Trainer) - общий вид
pic.png
pic.png [ 86.86 KiB | Viewed 15107 times ]
06 Nov 2022 00:34
Profile
Fanat

Joined: 09 Jun 2022 00:49
Posts: 83
Reply with quote
А вот так выглядит ЭСЛ ПЗУ

32 бита * 256 команды = 8192 транзисторов если все нули записать, но будет примерно пополам, а значит нужно 8192 + 8192/2 = 12288 транзисторов

Всё, на этом можно и успокоиться, по крайней мере, с такой широкой инструкцией. Нужно смотреть в сторону минимальных 4-битных процессоров.


Attachments:
File comment: ЭСЛ ПЗУ (ECL ROM)
image007.gif
image007.gif [ 4.77 KiB | Viewed 15088 times ]
06 Nov 2022 13:35
Profile
Fanat

Joined: 09 Jun 2022 00:49
Posts: 83
Reply with quote
Хотя, что-то затупил)) Есть же smd!

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


Attachments:
File comment: Плата с транзисторами крупным планом
tranor_brd_register1.jpg
tranor_brd_register1.jpg [ 943.09 KiB | Viewed 15085 times ]
File comment: Пример большого количества транзисторов на плате
tranor_stapel1.jpg
tranor_stapel1.jpg [ 826.12 KiB | Viewed 15085 times ]
06 Nov 2022 15:37
Profile
Fanat

Joined: 09 Jun 2022 00:49
Posts: 83
Reply with quote
Спешу поделиться интересной находкой!

Оказывается, "с тех пор" изобрели следующую ступеньку ЭСЛ - IBM её назвала "Differential Current Switch logic" (DCS). Она оперирует дифференциальным сигналом (что хорошо для помехозащищённости), и, поэтому, внутри устроена как... реле!

Подробности тут (англ):
https://www.righto.com/2021/03/
(Там как раз тот самый знаменитый процессор от IBM, который разбирали на EEVblog, с пружинками, в масле и воздушным охлаждением сверху)

То есть, фактически можно не менять логику этого релейного компьютера совсем (хотя может оказаться выгоднее некоторые вещи сделать по-другому - посмотрим)


Attachments:
File comment: Switcher explanation
selector2-w600.jpg
selector2-w600.jpg [ 63.34 KiB | Viewed 15038 times ]
File comment: IBM Differential Current Switch logic (DCS) switcher
switches-w350.jpg
switches-w350.jpg [ 31.07 KiB | Viewed 15038 times ]
08 Nov 2022 14:53
Profile
Fanat

Joined: 09 Jun 2022 00:49
Posts: 83
Reply with quote
В IBM-овской документации нашёл маленькое уточнение: эмиттерные повторители лучше подтягивать не к земле, а к специальному напряжению -0.7В

В остальном - промоделировал на транзисторе BFP193W (он на 8 ГГц и доступен в продаже), собрал три каскада переключателей последовательно - на 1 ГГц очень чётко работает. Вау!

Даже попробовал добавить к Vcc помеху размахом 2В (для "обычной" ЭСЛ важно чтобы Vcc был очень стабильным, его даже советуют цеплять как GND) - ничего, сигналы вполне различимы ещё для этой системы (но где-то на 3В уже точно сломается)


11 Nov 2022 23:01
Profile
Fanat

Joined: 09 Jun 2022 00:49
Posts: 83
Reply with quote
Забыл приложить схемы

Vt - это как раз точка для подключения эмиттерного повторителя. "T" это, вроде, потому что туда также подключается терминаторный резистор, если линия длинная


Attachments:
File comment: Дифференциальный ЭСЛ-переключатель
export.png
export.png [ 7.59 KiB | Viewed 14985 times ]
File comment: Испытание двух ЭСЛ-переключателей
export.png
export.png [ 25.54 KiB | Viewed 14985 times ]
11 Nov 2022 23:17
Profile
Fanat

Joined: 09 Jun 2022 00:49
Posts: 83
Reply with quote
Промоделировал в 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
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23357
Location: Silicon Valley
Reply with quote
А я в QUCS не въёхал :(

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


26 Nov 2022 09:13
Profile WWW
Fanat

Joined: 09 Jun 2022 00:49
Posts: 83
Reply with quote
Shaos wrote:
А я в QUCS не въёхал :(


Qucs-s теперь "просто рисовалка", а под капотом у неё обычный ngspice


28 Nov 2022 11:49
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23357
Location: Silicon Valley
Reply with quote
LTspice сильно проще и понятнее (хоть и клозесорц - я пользовал LTspiceIV пуская его в Wine)

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


28 Nov 2022 20:18
Profile WWW
Fanat

Joined: 09 Jun 2022 00:49
Posts: 83
Reply with quote
Неожиданная проблема: а как с минимальным количеством компонентов сделать индикацию состояния ЭСЛ или DCS-ячейки? Неинтересно же иметь компьютер, который просто работает, но не моргает лампочками


23 Jan 2023 15:38
Profile
Fanat

Joined: 18 Feb 2019 15:46
Posts: 68
Reply with quote
где-то встречал описание процессора на двух соединенных стоками полевых транзисторах (функция 2или-не) реализующая приличную архитектуру. Только вот - каждая элементарная команда выполнялась за очень много тактов и поэтому результирующая производительность получилась крайне низкой. Может кто помнит где найти про этот процессор ? Так что, каким бы ни был быстрым 1-разрядный элемент, быстрого процессора из него не получится.
Ну и еще - а такую быструю память где брать ?


24 Jan 2023 10:10
Profile
Fanat

Joined: 09 Jun 2022 00:49
Posts: 83
Reply with quote
ra3qdp wrote:
где-то встречал описание процессора на двух соединенных стоками полевых транзисторах (функция 2или-не) реализующая приличную архитектуру.

А это то же самое и получится, но на биполярных "макросхема" получится быстрее - при определённой аккуратности можно и 200МГц получить, думаю

Quote:
Только вот - каждая элементарная команда выполнялась за очень много тактов и поэтому результирующая производительность получилась крайне низкой. Может кто помнит где найти про этот процессор ? Так что, каким бы ни был быстрым 1-разрядный элемент, быстрого процессора из него не получится.
Ну и еще - а такую быструю память где брать ?

Не особо быструю, обычную.

У однобитных же характерная особенность есть: у них нет регистра PC, вместо этого есть команда "дай следующую команду", и уже схемотехнически решается откуда эта команда берётся - хоть с перфоленты. Таким образом, "быстрый" доступ заменяется на "обычный"


24 Jan 2023 15:20
Profile
Fanat

Joined: 18 Feb 2019 15:46
Posts: 68
Reply with quote
ra3qdp wrote:
где-то встречал описание процессора на двух соединенных стоками полевых транзисторах (функция 2или-не) реализующая приличную архитектуру.

нашел:

http://www.mynor.org/

почитайте и прикиньте - что Вас ждет по быстродействию с учетом обращений к ПЗУ.
Быстродействие логической ячейки съест многократное обращение к ПЗУ (сообщите, пожалуйста - сколько наносекунд Вы планируете и какое именно ПЗУ ?) и поэтому применение сверх-быстродействующей логики - бессмысленно.


28 Jan 2023 03:34
Profile
Fanat

Joined: 09 Jun 2022 00:49
Posts: 83
Reply with quote
ra3qdp wrote:
Быстродействие логической ячейки съест многократное обращение к ПЗУ (сообщите, пожалуйста - сколько наносекунд Вы планируете и какое именно ПЗУ ?) и поэтому применение сверх-быстродействующей логики - бессмысленно.


Для микрокода я планирую ПЗУ на транзисторах же, точно по такой же схеме как и остальная логика


28 Jan 2023 10:55
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 68 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.