MSX Turbo R процессоры: R800 және Z80 арасындағы эволюция
R800
R800 процессоры: MSX Turbo R компьютері үшін жасалған, Z80-мен үйлесімді, жаңа CPU. ASCII Corporation әзірлеген, Mitsui құрастырған. Техникалық деректер!
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
R800 – MSX Turbo R үй компьютерінде қолданылатын орталық процессор. R800 Жапонияның ASCII Corporation компаниясымен жобаланып, Mitsui & Co компаниясымен құрастырылған. Мақсаты – Z80 процессорымен, демек MSX бағдарламалық қамтамасымен толық үйлесімді, сонымен қатар ескі MSX Z80 негізіндегі аппараттық құралдармен де үйлесімділікті сақтайтын, заманауи және конвейерлік CPU құру болды.
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-мен үйлесімді және үйлесімсіз әртүрлі процессорларды кандидаттар ретінде қарастырды. Сол кезде компанияның қызметкері Кадзуя Кисиока (岸岡和也) Z80-дің жоғары жылдамдықты нұсқасы болып табылатын және MSX архитектурасына кеңінен бейімделген ASIC-ті зерттеді және әзірледі. Ескі MSX бағдарламалық қамтамасымен бағдарламалық үйлесімділікті қамтамасыз ету үшін R800 Z80-мен бірдей нұсқаулар жиынтығын пайдаланады, сонымен қатар 8x8 биттік және 16x16 биттік көбейту нұсқаулары сияқты шағын, бірақ пайдалы қосымшалар бар – MULUB (8 бит) және MULUW (16 бит). Сонымен қатар, көптеген құжатталмаған Z80 нұсқаулары ресми мәртебе алды, IX және IY 8 биттік регистрлер ретінде қолданылатын нұсқаулардың барлық опкодтары да олардың ішінде (IXH, IXL, IYH, IYL). R800 тікелей Z80-ге негізделмеген, бірақ Z800 отбасынан туындағандықтан, Z80-дің кейбір басқа құжатталмаған мүмкіндіктеріне ие емес. Мысалы, F регистрінің 3 және 5-ші біттерінде көрсетілген құжатталмаған флагтар 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 биттік ALU аппараттық құрылғысын қолданды, бұл толыққанды 8 биттік ALU логикасын пайдаланатын басқа процессорлармен (мысалы, оның тікелей алдағысы Intel 8080) бәсекелесе алатын шешім болды. Дегенмен, R800 жасаушылары оның конвейерлік орындалуын жақсарту үшін толық 16 биттік ALU-ны енгізді. Z80-де 11 сағаттық циклді қажет ететін ADD HL, BC сияқты командалар, R800-де кейбір жағдайларда бір ғана шина циклінде (1-2 сағат) орындалуы мүмкін, бұл толық енді ALU арқасында мүмкін болған конвейерлік жүйенің нәтижесі. Бұл жаңа MSX-те процессордың максималды сағаттық жиілігі 14.32 МГц-ге жетті – бұл ескі MSX-те қолданылған бастапқы 3.57 МГц жиілігінен төрт есе жоғары, ал шина жиілігі 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-дің ішкі ROM-ы да осы дерек алу схемасы үшін жеткілікті жылдам емес, сондықтан Turbo R-дегі қосымша чиптер ROM мазмұнын жадқа көшіріп, оның жұмысын жылдамдата алады.
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.