Организация вычислительных систем

Математические сопроцессоры для ЦП фирмы Motorola


Для своих ЦП MC680x0 фирма Motorola разработала специальный сопроцессорный интерфейс (рис. 8.3). Интерфейс сопроцессора отличается от, например, интерфейса периферийного устройства тем, что сопроцессор добавляет в систему новые инструкции, дополнительные регистры и типы данных, которые обычно не предусматриваются программной моделью целочисленного устройства ЦП. Тем не менее, коммуникационный протокол между ЦП и сопроцессором прозрачен для программиста, т.к. реализован аппаратно. Этот коммуникационный протокол слабо привязан к архитектуре ЦП, так что любой сопроцессор, реализующий данный протокол, может быть использован в системе с ЦП MC680x0. В то же время архитектура ЦП этого семейства свободна от каких-либо априорных предположений о возможностях сопроцессора. Это, очевидно, дает определенную свободу при построении систем с сопроцессором на основе ЦП MC680x0.


Рис. 8.3.  Сопроцессорный интерфейс MC680х0

Обмен информацией между процессором и сопроцессором происходит через внешнюю шину ЦП, не привлекая специальных сигнальных линий:

  • A19-A13 - определяют операцию и тип сопроцессора;
  • FC2-FC0 - передают функциональный код (статус) сопроцессора;
  • А4-А0 - передают номер регистра интерфейса CIR;
  • AS-строб адреса (показывает достоверность адреса на шине адреса);
  • DS-строб данных;
  • R/W-определяет направление пересылки;
  • DSACK1, DSACK2 - подтверждают пересылку и размер операнда (служат для определения пересылки и динамического определения ширины шины данных).

При этом некоторые модели ЦП, например MC68020, допускают для сопроцессора асинхронные циклы шины, так что ЦП и сопроцессор могут работать на разных частотах, сбалансировав, таким образом, свою производительность.

Коммуникационный протокол для передачи сопроцессору инструкций для выполнения использует группу интерфейсных регистров - CIR (Coprocessor Interface Registers). Через эти же регистры сопроцессор сообщает ЦП о своем состоянии (табл. 8.4).

Таблица 8.4. Регистры сопроцессорного интерфейса (CIR)

АдресНазначение
31 1615 0
$00Регистр ответаРегистр управления
$04Регистр сохраненияРегистр восстановления
$08Слово операцииРегистр команды
$0Cрезерв.Регистр условия
$10Регистр операнда
$14Регистр выборарезерв.
$18Регистр адреса инструкции
$1CРегистр адреса операнда

Программная модель сопроцессоров Motorola MC68881/MC68882, реализующих описанный выше сопроцессорный интерфейс, соответствует стандарту IEEE-754, а поэтому весьма схожа с программной моделью сопроцессоров семейства Intel x87.



Содержание раздела