800 рэндов
Эта статья нуждается в дополнительных цитатах для проверки . ( июль 2009 г. ) |
R800 , — это центральный процессор используемый в MSX Turbo-R домашнем компьютере . R800 был разработан корпорацией ASCII японской совместимость и построен Mitsui & Co. Целью был современный и конвейерный двоичный процессор, совместимый с Z80 и, следовательно, с программным обеспечением MSX, а также сохраняющий со старым MSX Z80 оборудованием на базе .
Совместимость
[ редактировать ]Во время разработки MSX Turbo R корпорация ASCII рассматривала в качестве кандидатов различные процессоры, как совместимые, так и несовместимые с Z80. В то время Кадзуя Кишиока ( 岸岡和也 ) , сотрудник компании, исследовал и разрабатывал ASIC , который представлял собой высокоскоростную версию Z80 и в значительной степени адаптирован к архитектуре MSX. [1]
Для совместимости программного обеспечения со старым программным обеспечением 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 линейкам Z800-совместимых процессоров . Оригинальный Z80 использует внутри необычное 4-битное аппаратное обеспечение ALU. [2] решение, действительно способное конкурировать с аналогичными процессорами, использующими полностью аппаратную 8-битную логику ALU (например, его непосредственный предшественник, Intel 8080) . [3] ). Однако разработчики R800 реализовали полноценное 16-битное АЛУ , чтобы не отставать от его более конвейерного исполнения. Такие инструкции, как 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 циклы обновления уничтожают информацию в старших битах, поэтому требовался обходной путь. [4]
Решение, использованное в R800, заключалось в обновлении целых блоков ОЗУ вместо обновления одной строки ОЗУ при каждой выданной инструкции. Каждые 30 мкс процессор останавливается на 4 мкс, это время используется для обновления блока ОЗУ. Поскольку между инструкциями выборки нет обновления, а состояние ожидания удаляется из-за более быстрых микросхем ОЗУ, простые инструкции могут быть выполнены с использованием только одного цикла. Этот цикл будет циклом 2 в приведенном выше примере Z80; цикл 1 становится необязательным и выдается только тогда, когда программа пересекает границу в 256 байт.
Внешнее оборудование
[ редактировать ]Все это относится только к быстрой оперативной памяти, используемой в MSX Turbo-R. Внешнее оборудование, подключенное через слоты для картриджей, использует тайминги, аналогичные Z80. Даже внутреннее ПЗУ Turbo-R недостаточно быстрое для этой схемы выборки, поэтому дополнительные микросхемы Turbo-R могут зеркально отображать содержимое ПЗУ в ОЗУ, чтобы ускорить его работу.
Ссылки
[ редактировать ]- ^ «История разработки MSXturboR» [История разработки MSXturboR]. Журнал MSX (на японском языке, ноябрь 1990 г., стр. 70).
- ^ «У Z-80 4-битное АЛУ. Вот как оно работает» .
- ^ 8080 был разработан теми же дизайнерами (Фэггином и Шимой, тогда работавшими в Intel) и использовал простой 8-битный ALU. Более поздняя реализация 4-битного ALU в Z80 была призвана существенно отличать Z80 от конструкции 8080, тем самым избежав судебного иска со стороны Intel. Производительность особо не пострадала: 16-битные инструкции заняли 11 тактов против 10 на 8080. 8-битные инструкции действительно стали быстрее: 4 такта против 5 на 8080. (Вместе с грубым удвоением тактовой частоты, это дало Z80 значительное преимущество перед 8080.)
- ^ «R800 — MSX Wiki» .