Добрался я, наконец, до быстродействия ПЗУ микрокоманд и посчитал, чем это практически грозит...
И результаты меня, мягко говоря, не утешили... ну просто никак...
Смотрим на "
анатомию командного цикла":
----Время выполнения каждой команды -
8 тактов, в начале каждого такта меняется адрес на адресных линиях ПЗУ микрокоманд, значит каждый такт должен быть не менее
450 нс (время выборки адреса), если в качестве ПЗУ микрокоманд задействована микросхема
К573РФ2.
Это и есть та ситуация, когда
/CS и
/OE ПЗУ намертво включены, a счетчик на адресных входах перебирает адреса с тактовой частотой/2.
Чтобы зафиксировать данные во внешнем регистре, добавим
50 нс для надежности. Отсюда
1 такт в команде составит 500 нс.
Команда выполняется за
8 тактов, а значит за
8 x 500 нс = 4 мкс. Откуда максимальное быстродействие составит
250000 коротких операций в секунду. Для сравнения у микропроцессора
i8080 быстродействие при тактовой частоте 2 МГц составляет 500000 коротких операций в секунду.
Рассмотрим более удачный вариант: у зарубежного аналога микросхемы
К573РФ2 -
IC 2716 есть более быстродействующий вариант со
временем выборки адреса - 350 нс, добавим
50 нс на то, чтобы зафиксировать данные во внешнем регистре, откуда
минимальная длительность такта составит 400 нс. Короткая команда будет при этом выполняться за
8 x 400 нс = 3.2 мкс, откуда
быстродействие составит 312500 коротких операций в секунду. Всё равно до микропроцессора
i8080 на
тактовой частоте 2 МГц это довольно далеко…
А
на частоте 2,5 МГц i8080 обеспечивает быстродействие до 625 тыс. оп/с.
Я это клоню к тому, что
если в качестве ПЗУ микрокоманд задействовать К573РФ2 или даже её более скоростной аналог
2716,
с надеждой сделать простой, но быстрый самодельный процессор, способный приемлемо эмулировать
i8080 в реальном масштабе вемени,
приходится расстаться...
Конечно, если я в расчетах не ошибся, а я для этого и выложил их здесь...
Возможные варианты: сделать ПЗУ микрокоманд на дешифраторах и диодах, или же выполнять дешифрацию кода команды хардверно.