vs.
Альтернативный вариант Digital Thresher, или о том, каким мог он быть.
Ещё будучи на эмоциональном подъёме от Advanced MicroMachine, хотел сделать её улучшенный вариант.
В качестве ядра также хотел заложить ARM9, а именно AT91SAM9260, который лучше, чем AT91RM9200 по следующим показателям: улучшена внутренняя шина, два SPI, чуть больше производительность. Хуже по урезанным в два раза кэшам кода/данных.
В качестве памяти заложить 32 битную PC133 SDRAM, которая из-за убогости контроллера SDRAM в ARM9 не работала бы на максимальных показателях.
Именно уже в это время я опасался плохих результатов такого решения по трём основным причинам:
Нехватка производительности ARM9 на эмуляцию относительно сложных игровых приставок: SEGA MD, SNES.
Падение производительности графической системы из-за: увеличения разрешения дисплея (увеличивается размер видеобуфера), увеличения глубины цвета с 8 до 16 бит (все TFT дисплеи не менее 16 бит на пиксел, да и эмуляция некоторых игровых приставок требует такое цветовое разрешение как минимум).
Из-за требования бОльших размеров памяти нужно применять SDRAM, которая из-за кривости контроллера SDRAM в ARM9 работает на меньших частотах, чем SRAM.
Ну и четвёртая причина – она носит амбициозный характер: хотелось изучить что-то новое, ARM9 слегка приподнадоел :)
Не буду здесь доказывать тот факт, что производительности вышеописанной системы явно недостаточно для нормальной эмуляции более сложных игровых приставок.
В своё время, я это давно всё рассчитал и просчитал. С учётом практических результатов, полученных на Advanced MicroMachine, естественно!
Речь идёт о кроссплатформенных эмуляторах, которые написаны на C/C++ без применения высокооптимизированных модулей эмуляции CPU и периферии, написанных на ассемблере.
НЕ-кроссплатформенные эмуляторы меня не интересуют, по причине непереносимости кода (например: с ARM на BlackFin, с i80x86 на BlackFin).
Структурную схему такого устройства мне нет смысла приводить – ибо отличается она от схемы Digital Thresher’а только одним CPU – вместо BlackFin’а стоит ARM9.