Лекции по Вычислительным машинам, системам и сетям   

2. Микропроцессорный комплект К1810

2.25. Сильно связанные конфигурации на примере совместной работы МП86 и арифметического сопроцессора ВМ87

Арифметический сопроцессор предназначен для выполнения сложных арифметических команд. МП и сопроцессор вместе образуют многопроцессорную систему, в которой МП является ведущим, а сопроцессор – ведомым. Поскольку процессоры не являются равноправными, то арбитр шин здесь не нужен. Сопроцессор не умеет формировать адреса и считывать из ОП команды. За него это делает МП.

Однако сопроцессор может производить обмен информацией с ОП, используя при этом адреса, сформированные МП. Стандартное соединение ВМ86 и ВМ87 приведено на рис. 2.36.

Рис. 2.36

После прихода сигнала RESET (сброс) сопроцессор анализирует сигнал на линии BHE, выясняя с каким МП он работает. Для ВМ86 на этой линии в первый момент будет ноль, а для ВМ88 – единица. После этого сопроцессор переходит в пассивное состояние.

МП читает из оперативной памяти команды и заносит их в свою внутреннюю очередь. Сопроцессор эти команды перехватывает и также заносит их в свою внутреннюю очередь. В любой момент времени ситуация в обеих очередях должна быть одинаковой, поэтому сопроцессор следит за изменениями в очереди МП по линиям QS 1-0.

Когда ВМ87 перехватывает команду, являющуюся командой сопроцессора, он начинает переходить в активный режим. Полностью активным он становится, когда МП начинает выполнять его команду.

Система команд сопроцессора включает в себя более 80 команд, однако МП воспринимает все их как одну команду esc (escape). С точки зрения МП имеется 3 разновидности этой команды.

1. Команда работает с внутренними регистрами сопроцессора и не требует обращения к ОП. ВМ86 и ВМ87 одновременно начинают выполнение этой команды. При этом ВМ86 выполняет ее как команду nop (no operation) и переходит к выполнению следующей команды программы, а ВМ87 продолжает правильное выполнение заданной команды. Далее оба процессора работают параллельно.

2. Команда читает операнд из ОП и заносит его во внутренний регистр сопроцессора. При выполнении такой команды ВМ86 формирует адрес операнда в ОП и выставляет его на ША. Там этот адрес перехватывает сопроцессор и заносит его в свой специальный внутренний регистр. Из ОП по выставленному адресу считывается слово, которое сопроцессор принимает, а МП игнорирует. Далее МП переходит к выполнению следующей команды программы. Операнды сопроцессора занимают в памяти до 10-ти байт, поэтому оставшийся «хвост» операнда сопроцессор должен считать самостоятельно. Для этих целей сопроцессор запрашивает у МП шину по линии RQ/GT и считывает остаток операнда из ОП, используя перехваченный адрес.

3. Команда заносит в память содержимое внутреннего регистра сопроцессора. ВМ86 вырабатывает адрес, который перехватывает сопроцессор. По этому адресу из ОП считывается слово, которое игнорируют оба процессора. Затем ВМ87 запрашивает шину по линии RQ/GT и производит запись в ОП, используя перехваченный адрес.

Команды сопроцессора сложны, и для их выполнения требуется много времени. Поэтому высока вероятность того, что к началу выполнения следующей команды сопроцессора последний не успеет завершить выполнение предыдущей команды. Перед командами сопроцессора в программах рекомендуется ставить команду wait (ждать). Эта команда проверяет сигнал на входе TEST и, если там стоит единица, МП ждет, пока на входе TEST не появится ноль. Сигнал на вход TEST заводится с выхода BUSY (занят) сопроцессора. При этом, если на BUSY стоит единица, значит ВМ87 занят выполнением команды.



*****
© Банк лекций Siblec.ru
Формальные, технические, естественные, общественные, гуманитарные, и другие науки.