R800 (ЦП) - R800 (CPU)

R800

R800 представляет собой центральный блок обработки данных, используемый в MSX Turbo-R домашнего компьютера . R800 был разработан ASCII Corporation в Японии и построен Mitsui & Co., Ltd. . Целью было создание современного и конвейерного двоичного кода ЦП, совместимого с Z80 и, следовательно, с программным обеспечением MSX, при сохранении совместимости со старым оборудованием на базе MSX Z80 .

Совместимость

При разработке MSX Turbo R корпорация ASCII рассматривала в качестве кандидатов различные процессоры, как совместимые, так и несовместимые с Z80. В то время Кадзуя Кишиока ( 岸 岡 和 也 ) , сотрудник компании, исследовал и разрабатывал ASIC, который был высокоскоростной версией Z80 и в значительной степени адаптирован для архитектуры MSX.

Для программной совместимости со старым программным обеспечением MSX R800 использует тот же набор инструкций, что и Z80, с небольшими, но полезными дополнениями, такими как 8x8-битные и 16x16-битные инструкции умножения, называемые MULUB ( 8-бит ) и MULUW ( 16- бит ). Кроме того, многие из недокументированных инструкций Z80 стали официальными, включая все коды операций для инструкций, относящихся к IX и IY как 8-битные регистры (IXH, IXL, IYH, IYL).

Поскольку R800 не основан непосредственно на Z80, а принадлежит к семейству Z800 , в нем отсутствуют некоторые другие недокументированные функции Z80. Например, недокументированные флаги, представленные в битах 3 и 5 регистра F, не принимают тех же значений, что и в Z80 (что приводит к сбою тестов ZEXALL ), а недокументированный код операции, часто называемый SLL, является просто псевдонимом инструкции SLA.

Изменения оборудования

Будучи гораздо более новым дизайном, реализация R800, конечно же, сильно отличалась от старого Z80. Изменения были аналогичны линейкам Z800 , Z280 , Z380 и eZ80 процессоров, совместимых с Z80. Оригинальный Z80 использует необычное 4-битное оборудование ALU внутри, решение, фактически способное конкурировать с аналогичными процессорами, использующими полностью зашитую 8-битную логику ALU (например, его непосредственный предшественник, Intel 8080 ). Однако разработчики R800 реализовали полный 16-битный ALU , чтобы не отставать от его более конвейерного исполнения. Такие команды, как ADD HL, BC, которые занимают 11 тактов на Z80, в некоторых ситуациях могут выполняться всего за один цикл шины (1-2 такта) на R800, из-за степени конвейерной обработки, обеспечиваемой этим ALU полной ширины. Максимальная тактовая частота процессора, используемая в этом новом MSX, составляла 14,32 МГц - в четыре раза быстрее, чем исходная частота 3,57 МГц, используемая в старом MSX, в то время как частота шины была увеличена до 7,16 МГц. Шина данных остается 8 бит для совместимости со старым оборудованием.

Получение кодов операций

Дополнительные изменения были внесены в способ получения кодов операций ЦП . Исходный Z80 использует два цикла для выборки простой инструкции, такой как OR A, плюс два цикла для обновления. В архитектуре MSX выдается дополнительное состояние ожидания. Обзор механизма выборки в типичной среде MSX помогает объяснить R800:

  • Z80, цикл 1: установить старшие 8 бит адреса
  • Z80, цикл 2: установить младшие 8 бит адреса
  • Z80, цикл 3: состояние ожидания
  • Z80, цикл 4: обновление, часть 1
  • Z80, цикл 5: обновление, часть 2

Поскольку в большинстве реализаций MSX используется оперативная память, расположенная в блоке 256 × 256 байт, для установки адреса выборки требуется два цикла. R800 избегает этого, запоминая последнее известное состояние старших 8-ми битов. Если следующая инструкция находится в тех же 256-байтовых границах, старшие 8-биты не устанавливаются, и цикл сохраняется. Однако на Z80 циклы обновления уничтожают информацию о старших битах, поэтому потребовалось обходное решение.

Решение, используемое в R800, заключалось в обновлении целых блоков ОЗУ вместо обновления одной строки ОЗУ при каждой выданной инструкции. Каждые 30 мкс ЦП останавливается на 4 мкс, на этот раз используется для обновления блока ОЗУ. Поскольку между командами выборки не происходит обновления, а состояние ожидания удаляется из-за более быстрых микросхем ОЗУ, простые инструкции могут быть выполнены с использованием только одного цикла. Этот цикл будет циклом 2 в приведенном выше примере Z80; цикл 1 становится необязательным и выдается только тогда, когда программа пересекает 256-байтовую границу.

Внешнее оборудование

Все это относится только к быстрой оперативной памяти, используемой в MSX Turbo-R. Внешнее оборудование, подключенное через слоты для картриджей, использует тайминги, аналогичные Z80. Даже внутреннее ПЗУ Turbo-R недостаточно быстрое для этой схемы выборки, поэтому дополнительные чипы на Turbo-R могут отображать содержимое ПЗУ в ОЗУ, чтобы заставить его работать быстрее.

использованная литература

дальнейшее чтение