Например TDA7294

Форум РадиоКот • Просмотр темы - Койяанискаци - Процессор Радиолюбителя
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Пт фев 26, 2021 14:02:15

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Койяанискаци - Процессор Радиолюбителя
СообщениеДобавлено: Чт дек 24, 2020 19:17:22 
Родился

Зарегистрирован: Вт окт 15, 2019 02:56:41
Сообщений: 8
Рейтинг сообщения: 0
Основнaя Хабр-Статья.


Целью было сделать некое программируемое Тьюринг-полное устройство, пригодное к использовании в качестве Центрального Процессорного.
Основной акцент делался на кодировании микропрограмм посредством реального механического дампа из шестнадцатеричных тумблеров.
А чтобы не придумывать очередной бинарный машинный код, за основу были взяты тетрады этих тумблеров.

Тем самым…
  • Код «A1» на тумблере в дампе так и означает выборку регистра «A1»
  • Код «B2» означает выборку регистра «B2»
  • Код «AB» означает группу операндов «A,B» для АЛУ-операций. В данном случае - «A1,B2»
  • Код «EC» означает «End-by-Carry» - выход из подпрограммы по флагу «CF»
Тем самым, чтобы кодировать какую-нибудь небольшую программу, не нужно иметь у себя под носом даже шпаргалку, так как сами тетрады байтов машинного кода являются аббревиатурами и годятся в качестве мнемоники ассемблера сами-по-себе.

В исполнении Принстонской архитектуры на одну операцию затрачивается по 2 такта. Соответственно, Гарвардский вариант требует по 1 такту.

Разрядность контроллера может варьироваться от 4 бит до 64, в зависимости от поставленной задачи и реализации.
Количество всех Регистров Общего Назначения может также варьироваться от 6 до 30.

Причём, роль РОН могут исполнять любые типовые устройства: Таймеры, ПДП, Датчики, Сервоприводы и т.п…
Также, за РОН можно использовать и универсальную магазинную память в режиме FIFO или LIFO, чтобы обеспечить стековые операции.
Концептуально архитектура не ограничивает конечную реализацию процессора. Так как самое главное в процессоре - дешифратор команд, который не должен менять свою логику и обязан декодировать команды в соответствии с парадигмой описываемой архитектуры.

В классическом варианте выполнение программы выполняется не спешно:
Код:
0000 A9      |REG A9      ; (Такт #1) Выборка регистра блока A с индексом #9
0001    AB   |ARG A,B     ; (Такт #2) Сборка группы операндов регистровых групп A и B
0002       0F|MOV A9,B0   ; (Такт #3) Фиксирование в левом операнде данных правого
         | |         ^^
         \ /         ||
          V          |/
          |          |
          +----------+
Но можно ускорить весь процесс:
Код:
0000 A9 AB 0F|MOV A9,B0   ; (Такт #1) Операция выполняется за 1 такт
Если усложнить декодирование команд добавлением нескольких дешифраторов.
Вложение:
Комментарий к файлу: Четыре дешифратора команд декодируют 32-битное машинное слово в полную команду за 1 такт
Koyaanisqatsi-quatro.png [70.5 KiB]
Скачиваний: 22


Минимально же весь микроконтроллер без АЛУ и РОН можно представить вот так:
Вложение:
Комментарий к файлу: Минимальный вариант схемы процессора без АЛУ и РОН
Koyaanisqatsi_minimal.png [87.43 KiB]
Скачиваний: 26


Допустим, можно на «Кой-Коде» организовать подобие RISC-ядра для эмуляции выполнения команд процессора i8080.
Сначала назначим все регистры i8080 на Кой-Регистры:
Код:
B - B1
C - C1
D - B2
E - C2
H - B3
L - C3
SP- B4C4
A - A1
PC- B5C5
PSW-A1A0
M  - B3C3
Теперь можно описать большинство инструкций процессора i8080 примерно вот так:
Откуда видно, что большинство команд легко накладываются на эмуляцию. Тем самым, если использовать ПЗУ 4 кб под прошивку микрокода и под каждую команду выделить по 16 байтов Кой-Кода, то в Гарвардском исполнении большинство из этих команд будут выполняться за 3 такта. И если на считывание кода команды в цикле M1 будет затрачено 2 такта, то на большинство этих команд в общей сложности будет затрачиваться по 5 тактов или 8 тактов, что практически сравнимо с производительностью самого i8080…
Если не скупиться и использовать четвёрку дешифратора команд, на Кой-Команды будет уходить по 1 такту или по 3, а в общей сложности на чтение i8080-кода и его исполнение будет тратиться по 3 такта или 5, что уже заметно лучше.

P.S.: Здесь и далее будут использоваться сокращения вида «Кой-Дамп», «Кой-Код» и т.п…


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y