Математические сопроцессоры для ЦП фирмы 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).
31 16 | 15 0 | |
$00 | Регистр ответа | Регистр управления |
$04 | Регистр сохранения | Регистр восстановления |
$08 | Слово операции | Регистр команды |
$0C | резерв. | Регистр условия |
$10 | Регистр операнда | |
$14 | Регистр выбора | резерв. |
$18 | Регистр адреса инструкции | |
$1C | Регистр адреса операнда |
Программная модель сопроцессоров Motorola MC68881/MC68882, реализующих описанный выше сопроцессорный интерфейс, соответствует стандарту IEEE-754, а поэтому весьма схожа с программной моделью сопроцессоров семейства Intel x87.