Взаимодействие ВМ87 с процессором (ВМ86)

Арифметический сопроцессор К1810 ВМ87. Структура.

ВМ87 – математический сопроцессор, который позволяет увеличить производительность МПС при работе с арифметическими операциями на два порядка. ВМ87 не имеет механизма считывания команд, поэтому работает совместно с ВМ86/88 и является подчинённым. Структурная схема BM87 (рис. 2.4) содержит две относительно независи­мые части: операционное устройство (устройство цифровой обработки), которое выполняет операции, заданные командой, и устройство шинного интерфейса (устр. сопряжения с шиной), которое получает и декодирует команды, осуществляет считывание операндов из памяти и преобразование их в формат ВВ (временное вещественное), а также запись результатов в память с обратным преобразовани­ем в требуемый формат. Оба устройства могут работать параллельно, что обеспечивает совмещение во времени процессов передачи и преобразования данных.

(TR) – регистр этикеток содержащий код обозначающий флаги содержимого в арифметическом регистре. ПЗУ констант содержит наиболее часто применяемые двоичные константы при выполнении арифметических вычислений. Арифметические регистры – восемь 80-ти битных регистров организованных в стек. Со стеком связан 3-битовый указатель стека SТ, со­держимое которого определяет номер одного из восьми арифметических ре­гистров, являющегося вершиной стека; SТ содержится в SR. Модуль обработки мантиссы состоит из 68-битового сумматора, регистра сдвига и регистра результата. Он выполняет заданные операции над мантиссами операндов и формирует признаки различных исключительных ситуации, возникающих при обработке данных. Модуль обработки порядка осуществляет действие над значениями поля порядка исходных операндов в соответствии с командой.

Устройство управления дешифрирует очередную команду, поступающую на исполнение из устр. сопряжения с шиной, и формирует управляющие сигналы, определяющие режим работы модулей обработки и других устройств BM87. Устр. сопряжения с шиной содержит группу вспомогательных регистров, буферный регистр, очереди команд и операндов.

СR – 16-разрядный регистр управления, SR – 16-разрядный регистр состояния осуществляет синхронизацию действий ЦП (ВМ86) и BM87, «удерживая» ЦП в режиме ожидания при выполнении команды, ЕР – указатель исключительных ситуаций.


Взаимодействие ВМ87 с процессором (ВМ86)

 

Арифметический сопроцессор ВМ87 может работать только в паре с цен­тральным процессором ВМ86/ВМ88, который должен быть установлен в макси­мальный режим (рис. 20). Система с сопроцессором не требует никакой допол­нительной логики, отличающейся от той, которая используется в системе с мак­симальным режимом ЦП. Схема расширенного процессора получается простым объединением одноименных выводов ЦП и BM87 с дополнительным использованием контроллера прерываний ВН59А для организации взаимодействия выхода INT сопроцессора и входа INTR центрального процессора.

Рисунок 20 - Схема подключения AСП к ЦП ВМВ7/ВМ86

 

Пассивный режим. Взаимодействие процессоров начинается по сигналу RESET, длительность которого должна быть не менее четырех тактов CLK. По окончании этого сигнала АСП «анализирует» уровень сигнала на линии, соединяющей выводы процессоров. Центральный процессор ВМ86 формирует на выходе нулевой сигнал. Через несколько тактов CLK ЦП производит выборку команд из памяти, начиная с адреса FFFF0H, а сопроцессор следит за его работой, находясь в пассивном режиме. Выбирать команды из памяти может только ЦП, но сопроцессор также получает все команды, записывая их в очередь из байтов команд, идентичную очереди центрального процессора, и контролирует выполнение команд цен­тральным процессором. В пассивном режи­ме выводы A19/S6 - A16/S3 и AD15 - AD0 используются как входы. Как только в потоке команд появляется команда ESC, BM87 начинает переходить из пассивного режима в активный.

Активный режим. Для перехода в активный режим сопроцессор должен установить момент начала выполнения действий, определенных командой ESC. Для этого он начинает анализировать код состояния очереди команд ЦП по линиям QS1, QS0. Как только появляется код QS1 QS0 = 01, соответствующий первому байту команды, и этот байт содержит код ESC = 11011, сопроцессор переходит в активный режим. Если команда ESC содержит указание о том, что операнд-источник разме­щен в памяти, то ЦП формирует адрес операнда и считывает слово данных. Если определенный в команде ESC адрес является адресом приемника, то, перехватив этот адрес в регистр ЕР, сопроцессор игнорирует считанное ЦП слово данных, а позднее, выполнив команду, записывает результат по перехва­ченному адресу.

В любом случае, перейдя в активный режим, сопроцессор выдает сигнал занятости BUSY = 1 на вход центрального процессора. С этого момента оба процессора осуществляют параллельную работу. Сопроцессор выполняет действия, определенные командой ESC, а ЦП продолжает выполнение про­граммы. При этом шиной управляет ЦП, и каждый раз, когда сопроцессору требуется обратиться к памяти, он должен запрашивать шину по одной из линий .

Линия RQ/GT0 используется ВМ87 для запроса локальной шины ВМ86, либо для собственных обращений к памяти, либо для ее предоставления другому МП, который связан с ВМ87 по линии RQ/GT1. Последовательность взаимодействия по линии RQ/GT0 следующая:

1. Сопроцессор ВМ87 посылает запрос RQ на ЦП, управляющему шиной, либо «пересылает» запрос, поступивший от другого МП.

1. По прошествии нескольких тактов CLK, необходимых ЦП ВМ86 для завершения текущего цикла шины и перехода выводов в высокоомное состоя­ние, ВМ87 получает сигнал подтверждения GT шины и начинает ее ис­пользовать либо «пересылает» сигнал подтверждения другому МП.

3. После завершения использования шины ВМ87 посылает сигнал REALEASE центральному процессору, отпуская шину, либо передает сиг­нал отпускания от другого МП.

Линия RQ/GT1 используется для связи ВМ87 с другим МП, использую­щим локальную шину совместно с ВМ87 и ВМ86, для быстрого предоставления шины этому МП. Если в момент запроса по линии от другого МП со­процессор ВМ87 не управляет локальной шиной, то процесс передачи шины соответствует приведенному.

Если в момент запроса шиной управляет ВМ87, тогда последовательность взаимодействия осуществляется по линии RQ/GT1.

В активном режиме, когда ВМ87 управляет локальной шиной для пере­сылки данных в/из памяти, код его состояния S2-S0 дешифруется системным контроллером ВГ88, определяя цикл записи или считывания.