на всех прикрепленных изображениях, ничего не видно! разрешение крайне низкое и вникнуть в суть не удается.
на всех прикрепленных изображениях, ничего не видно! разрешение крайне низкое и вникнуть в суть не удается.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Хм...
Тогда я дам ссылки на мой github-ресурс (с кодовым именем "Койяанискацци" - трек на modarchive.org)...
Ссылка на Verilog-модель (сто раз устаревшую)
Дешифратор команд на комбинаторике (Logisim)
[свернуть]
Дешифратор команд на комбинаторике (Proteus)
[свернуть]
Полная схема (Logisim - Принстонский прототип с декодером команд на ПЗУ)
[свернуть]
Синтез схемы на Quartus
[свернуть]
Но, все эти схемы - чисто ради приличия: Редкий энтузиаст возьмётся воспроизводить эту схему из реальных номенклатурных ИМС.
(более 200 микросхем, по предварительным подсчётам)
Схемами в симуляции лично я просто убедился, что построить процессор с "дружественным машинным кодом" вполне реально.
Сейчас сосредоточился на Verilog HDL, чтобы уровень "воспроизводимости" в ПЛИС был самым доступным.
ИМХО, в эру всяческих нейросетей машинный код подавляющего большинства процессоров продолжает оставаться на уровне "эзотерических бинарных полей".
Потому, мои исследования сосредоточены на том, чтобы сделать хоть какой-то машинный код именно XXI века, с которым и "домохозяйка" разберётся.
Таблица исключений для АЛУ
[свернуть]
Калькулятор вектора - на ТТЛ и Verilog
[свернуть]
Прогонка декодера команд со всеми комбинациями префиксов, маргиналов и исключений
[свернуть]
Эзотерика бинарных полей
В i8080 инструкции MOV Rd,Rt кодируются бинарным полем 01dddttt.
Тем самым, хоть даже процессор официально - индустриальный и не эзотерический, эту самую эзотерику несут битовые поля в кодировке инструкций.
Позволю себе промолчать и про все остальные: IA-32, ARM и т.д.
Почти "Java-машина"
Выше дана ссылка на эмулятор процессора для РАДИО-86РК.
А если он достаточно легко эмулируется на РЛК, то можно написать эмулятор и на ZX-Spectrum, и на Yamaha-MSX.
То есть, получаем "подобие Java-машины", только с "гуманитарным машинным кодом", который не нужно выучивать и зубрить таблицу команд.
Как можно убедиться, аккумуляторов может быть 10 (A0..A9), так и 100 (A10..A99) или даже тысяча (A100..A999). На программном уровне это доступно.
В таком случае общее количество РОН становится не 30, а 300 и 3000 соответственно.
(Если браться собирать процессор "по военному" - на отдельных модулях, то нет никаких архитектурных ограничений на масштабируемость.)
При "прошивке FPGA" вполне можно указать размер Регистрового Файла, какой только способен уместиться на ПЛИС.
(Существовал вариант, где всё архитектурное состояние сохранялось непосредственно в ОЗУ, что могло обеспечить многозадачность, но требует до 10 Машинных Циклов на операцию - до 30 тактов.)
Конвейер
Теоретически, если бы инженеры Intel открыли бы доступ к микрокоду ядра своих процессоров, перешить его под исполнение программ данной архитектуры не составляло бы никакого труда.
А значит, производительность была бы на высочайшем уровне.
Некоторые проблемы "парадигмы"
Выше уже указывалось, что оп-коды E0..FF - это "заглушки" программных INT'ов, проще говоря - CALL E000..FF00.
Однако, так они работают только в "сухом виде" - без префиксов (указателей и "маргиналов").
До сих пор отсутствуют представления о том, как должны работать "указательные INT'ы" и "маргинальные INT'ы".
А ещё:Всё это указывается на "скрытый потенциал архитектуры", о котором я не подозревал в 2019 году на первых набросках схематики в Logisim.
- Указательные-Маргинальные CLC/CMC
- Указательные/Маргинальные ARG
- Маргинальный HLT
Даже на высоком уровне - в JavaScript, просто не имеется никакого чёткого представления, как обрабатывать "маргинализацию" существующих команд.
(Пока она просто игнорируется или выполняет "действительно маргинальные операции" из ряда вон: Чертит линии и выводит спрайты, что никак не должно распространяться за пределы экспериментальной эмуляции.)
P.S.: Всё это - результат двадцатилетних исследований.
Последний раз редактировалось Alikberov; 27.06.2023 в 18:51. Причина: обновил все скриншоты
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)