Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
R800 — это центральный процессор, используемый в домашнем компьютере MSX Turbo R. R800 был разработан компанией ASCII Corporation из Японии и произведен компанией Mitsui & Co. Целью разработки был современный конвейерный процессор, бинарно совместимый с Z80, а значит, и с программным обеспечением MSX, при этом сохраняющий совместимость со старым оборудованием MSX, основанным на Z80.
The R800 is the central processing unit used in the MSX Turbo R home computer. The R800 was designed by ASCII Corporation of Japan and built by Mitsui & Co The goal was a modern and pipelined CPU binary compatible with the Z80, and therefore with MSX software, while also maintaining compatibility with older MSX Z80 based hardware.
Совместимость
Во время разработки 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.
During the development of the MSX Turbo R, ASCII Corporation considered various processors, both compatible and incompatible with the Z80, as candidates. At that time, Kazuya Kishioka (岸岡和也), a company employee, was researching and developing an ASIC that was a high speed version of the Z80 and largely customized for the MSX architecture. For software compatibility with older MSX software, the R800 uses the same instruction set as the Z80, with only minor but useful additions, such as 8x8 bit and 16x16 bit multiplication instructions called MULUB (8 bit), and MULUW (16 bit). Also, many of the undocumented Z80 instructions were made official, including all the opcodes for instructions dealing with IX and IY as 8 bit registers (IXH, IXL, IYH, IYL). As the R800 is not based directly on the Z80, but stems from the Z800 family, it lacks some of the other undocumented Z80 features. For instance, the undocumented flags represented in bits 3 and 5 of the F register don't assume the same values as in Z80 (causing it to fail ZEXALL tests) and the undocumented opcode often called SLL is just an alias of the SLA instruction.
Изменения в аппаратном обеспечении
Будучи гораздо более новой разработкой, реализация R800 значительно отличалась от старого Z80. Изменения были аналогичны линейкам Z800, Z280, Z380 и eZ80 совместимых с Z80 процессоров. Оригинальный Z80 использовал необычное 4-битное аппаратное обеспечение АЛУ, решение, которое фактически могло конкурировать с аналогичными процессорами, использующими полноценную 8-битную логику АЛУ (таким как его непосредственный предшественник, Intel 8080). Однако разработчики R800 реализовали полноценное 16-битное АЛУ, чтобы соответствовать более конвейерному выполнению. Инструкции, такие как ADD HL, BC, которые занимают 11 тактовых циклов на Z80, в некоторых ситуациях могут выполняться всего за один шинный цикл (1-2 такта) на R800 благодаря степени конвейеризации, обеспечиваемой этим АЛУ полной ширины. Максимальная тактовая частота процессора, использованная в новом MSX, составляла 14,32 МГц – в четыре раза быстрее, чем оригинальная частота 3,57 МГц, использовавшаяся в старом MSX, при этом тактовая частота шины была увеличена до 7,16 МГц. Шина данных осталась 8-битной для обеспечения совместимости со старым оборудованием.
Being a much newer design, the R800 implementation was quite different from the old Z80. The changes were similar to the Z800, Z280, Z380 and eZ80 lines of Z80 compatible processors. The original Z80 uses an unusual 4 bit ALU hardware internally, a solution actually able to compete with similar CPUs using full hardwired 8 bit ALU logic (such as its immediate precursor, the Intel 8080). However, the R800 designers implemented a full 16 bit ALU in order to keep up with its more pipelined execution. Instructions like ADD HL,BC that takes 11 clock cycles on the Z80 can in some situations execute in as little as one bus cycle (1 2 clocks) on the R800, due to the degree of pipelining made possible by this full width ALU. The maximum CPU clock speed used on this new MSX was 14.32 MHz—four times as fast as the original 3.57 MHz speed used in the older MSX, while the bus clock was increased to 7.16 MHz. The data bus remained 8 bit to maintain compatibility with old hardware.
Внешнее оборудование
Все это относится только к быстрой оперативной памяти, используемой в MSX Turbo R. Внешнее оборудование, подключенное через слоты картриджей, использует временные характеристики, аналогичные Z80. Даже внутренняя ПЗУ Turbo R недостаточно быстра для данной схемы выборки, поэтому дополнительные микросхемы в Turbo R могут копировать содержимое ПЗУ в оперативную память, чтобы обеспечить более высокую скорость работы.
All this only applies to the fast RAM used on the MSX Turbo R. External hardware, connected through cartridge slots, uses timings similar to Z80. Not even the internal ROM of Turbo R is fast enough for this fetch scheme, so additional chips on the Turbo R can mirror the contents of ROM into RAM, in order to make it run faster.