Кстaти, так как x80 задумывался в идеале как CISC-процессор на ТТЛ, в силу своей сложности рассматривался вариант с RISC-ядром, как это сделали с i486.
(Если помните, то i486 в сравнении с i386 стал чуточку медленнее (уже забыл, где, но по-моему, команды LOOP, IN, OUT пострадали). Но здесь я не буду вкапываться в историю Intel…)
А чтобы не зависеть от топовых решений индустрии, ядром x80 я решил сделать собственную архитектуру со сквозным кодированием команд методом акына: Что вижу, то и кодирую.
Тем самым, так как в эмуляторе используются 18 бит кодируемой команды и схема узла выборки команды выдаёт эти биты, то прямым кодированием можно закодировать в лоб 262144 микропрограмм.
Например:То есть, тем самым, x80-команда RET разворачивается всего в 31 RISC-команду по 2 такта на каждую и требует 62 такта!Код:; Код B8 FF - Команда RET ; ; 18-битный внутренний бинарный индекс подпрограммы: ; 0x00FB8 ; 0x04FB8 ; 0x08FB8 ; 0x0CFB8 ; 0x10FB8 ; 0x14FB8 ; 0x18FB8 ; 0x1CFB8 ; 0x20FB8 ; 0x24FB8 ; 0x28FB8 ; 0x2CFB8 ; 0x30FB8 ; 0x34FB8 ; 0x38FB8 ; 0x3CFB8 ; ; Примерный дамп микропрограммы команды RET 000FB800 A9 AA 01 - A9 = 1 000FB803 CB C4 B4 AD - AD = B4:C4 000FB807 CA 0A - C4 += A9 000FB809 BA DC 0A - DC B4 += A9 000FB80B CC C9 BE - C9 = [AD] 000FB80E CB C4 B4 AD - AD = B4:C4 000FB812 CA 0A - C4 += A9 000FB814 BA DC 0A - DC B4 += A9 000FB817 BB B9 BE - B9 = [AD] 000FB81A CB C9 B9 AD EB
Это - чудовищный результат!
Не смотря на чудовищное обилие микропрограмм в четверть миллиона, каждая микропрограмма будет жрать по несколько десятков тактов!
P.S.: Вот так я стараюсь не ограничиваться одним JavaScript-эмулятором, а прощупываю более-менее приемлемые способы реализации не отступая от курса концепции: Не искажая общую таблицу всех команд.
Мне ведь не дипломную работу защищать, где худо-бедно хоть какой-то процессор пинком запустить лампочками моргать.
Потому и не торопясь десятилетиями двигаюсь крайне медленно к реализации всей концепции в целом, чтобы x80-Linux запустить в перспективе.
(Это для тех, кто хотел бы увидеть результат и прототип хотя бы к 2038 году: Не дождётесь!)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)