ASCII R800

Поделись знанием:
Перейти к: навигация, поиск

ASCII R800 — частично 16-разрядный микропроцессор, разработанный компанией ASCII на основе Zilog Z800 и производимый ею специально для бытовых компьютеров стандарта MSX Turbo R. Основной целью создания процессора было получение максимальной производительности при сохранении обратной совместимости со старым программным и аппаратным обеспечением компьютеров стандарта MSX, использующих микропроцессор Zilog Z80.

Для сохранения программной совместимости со старым программным обеспечением MSX, R800 использует расширенную систему команд процессора Z80. В обычный набор команд Z80 добавлены операции аппаратного умножения — MULUB (8-разрядное), и MULUW (16-разрядное). Также, многие из недокументированных возможностей Z80 сделаны официальными, например, операции с 8-разрядными половинами индексных регистровых пар (IXh, IXl, IYh, IYl).

R800 является развитием процессоров Z800 (16-разрядные микропроцессоры совместимые с Z80), но в нём отсутствуют некоторые недокументированные возможности Z80. Например, состояние бит 3 и 4 флагового регистра F не соответствует состоянию этих бит для процессора Z80 (что приводит к непрохождению R800 теста ZEXALL). Также, недокументированная команда, обычно называемая SLL, заменена другой командой — TST, также недокументированной.

Значительные изменения произошли с аппаратной стороны. Внутреннее 8-разрядное АЛУ процессора было заменено новым, 16-разрядным. Операции типа ADD HL,BC (сложение регистровых пар), выполнение которых ранее требовало 11 тактов, при определённых условиях могут выполняться на R800 за один такт. Максимальная тактовая частота повышена до 7.16 МГц, это вдвое больше по сравнению со стандартной частотой 3.57 МГц, на которой работал процессор Z80 в компьютерах MSX. Шина данных осталась 8-разрядной, для сохранения совместимости со старым аппаратным обеспечением.

Дополнительные изменения были произведены в механизме выборки кода операции. Оригинальный Z80 использует 4 такта для выборки кода простых команд, типа OR A, в компьютерах MSX также добавляется один такт ожидания из-за особенностей их архитектуры. Механизм выборки для Z80 в типичном окружении MSX выглядит следующим образом:

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

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

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


Напишите отзыв о статье "ASCII R800"

Отрывок, характеризующий ASCII R800

– Матёрый? – спрашивал Илагин, подвигаясь к подозрившему охотнику, и не без волнения оглядываясь и подсвистывая Ерзу…
– А вы, Михаил Никанорыч? – обратился он к дядюшке.
Дядюшка ехал насупившись.
– Что мне соваться, ведь ваши – чистое дело марш! – по деревне за собаку плачены, ваши тысячные. Вы померяйте своих, а я посмотрю!
– Ругай! На, на, – крикнул он. – Ругаюшка! – прибавил он, невольно этим уменьшительным выражая свою нежность и надежду, возлагаемую на этого красного кобеля. Наташа видела и чувствовала скрываемое этими двумя стариками и ее братом волнение и сама волновалась.
Охотник на полугорке стоял с поднятым арапником, господа шагом подъезжали к нему; гончие, шедшие на самом горизонте, заворачивали прочь от зайца; охотники, не господа, тоже отъезжали. Всё двигалось медленно и степенно.
– Куда головой лежит? – спросил Николай, подъезжая шагов на сто к подозрившему охотнику. Но не успел еще охотник отвечать, как русак, чуя мороз к завтрашнему утру, не вылежал и вскочил. Стая гончих на смычках, с ревом, понеслась под гору за зайцем; со всех сторон борзые, не бывшие на сворах, бросились на гончих и к зайцу. Все эти медленно двигавшиеся охотники выжлятники с криком: стой! сбивая собак, борзятники с криком: ату! направляя собак – поскакали по полю. Спокойный Илагин, Николай, Наташа и дядюшка летели, сами не зная как и куда, видя только собак и зайца, и боясь только потерять хоть на мгновение из вида ход травли. Заяц попался матёрый и резвый. Вскочив, он не тотчас же поскакал, а повел ушами, прислушиваясь к крику и топоту, раздавшемуся вдруг со всех сторон. Он прыгнул раз десять не быстро, подпуская к себе собак, и наконец, выбрав направление и поняв опасность, приложил уши и понесся во все ноги. Он лежал на жнивьях, но впереди были зеленя, по которым было топко. Две собаки подозрившего охотника, бывшие ближе всех, первые воззрились и заложились за зайцем; но еще далеко не подвинулись к нему, как из за них вылетела Илагинская краснопегая Ерза, приблизилась на собаку расстояния, с страшной быстротой наддала, нацелившись на хвост зайца и думая, что она схватила его, покатилась кубарем. Заяц выгнул спину и наддал еще шибче. Из за Ерзы вынеслась широкозадая, чернопегая Милка и быстро стала спеть к зайцу.
– Милушка! матушка! – послышался торжествующий крик Николая. Казалось, сейчас ударит Милка и подхватит зайца, но она догнала и пронеслась. Русак отсел. Опять насела красавица Ерза и над самым хвостом русака повисла, как будто примеряясь как бы не ошибиться теперь, схватить за заднюю ляжку.
– Ерзанька! сестрица! – послышался плачущий, не свой голос Илагина. Ерза не вняла его мольбам. В тот самый момент, как надо было ждать, что она схватит русака, он вихнул и выкатил на рубеж между зеленями и жнивьем. Опять Ерза и Милка, как дышловая пара, выровнялись и стали спеть к зайцу; на рубеже русаку было легче, собаки не так быстро приближались к нему.
– Ругай! Ругаюшка! Чистое дело марш! – закричал в это время еще новый голос, и Ругай, красный, горбатый кобель дядюшки, вытягиваясь и выгибая спину, сравнялся с первыми двумя собаками, выдвинулся из за них, наддал с страшным самоотвержением уже над самым зайцем, сбил его с рубежа на зеленя, еще злей наддал другой раз по грязным зеленям, утопая по колена, и только видно было, как он кубарем, пачкая спину в грязь, покатился с зайцем. Звезда собак окружила его. Через минуту все стояли около столпившихся собак. Один счастливый дядюшка слез и отпазанчил. Потряхивая зайца, чтобы стекала кровь, он тревожно оглядывался, бегая глазами, не находя положения рукам и ногам, и говорил, сам не зная с кем и что.
«Вот это дело марш… вот собака… вот вытянул всех, и тысячных и рублевых – чистое дело марш!» говорил он, задыхаясь и злобно оглядываясь, как будто ругая кого то, как будто все были его враги, все его обижали, и только теперь наконец ему удалось оправдаться. «Вот вам и тысячные – чистое дело марш!»