
- •Организация эвм и систем
- •Глава 1 эвм общего назначения
- •Структура эвм общего назначения.
- •Арифметико-логические устройства.
- •Устройства управления.
- •Risc и cisc процессоры.
- •1.5 Форматы машинных команд.
- •Inc byte ptr [40h] – одноадресная
- •Способы адресации.
- •Стековая адресация. Виды стеков.
- •Глава 2
- •2.1 Микропроцессор к1810вм86.
- •2.2 Назначение входов/выходов вм86 в минимальном режиме.
- •2.3 Назначение входов/выходов вм86 в максимальном режиме.
- •Внутренняя архитектура мп вм86.
- •Сегментация памяти.
- •2.6 Программная модель мп вм86.
- •2.7 Организация оперативной памяти.
- •2.8 Организация адресного пространства портов ву.
- •2.9 Методы обмена информацией между мп и портами ву.
- •2.10 Параллельный программируемый адаптер к1810вв55 (i8255).
- •Пример использования и программирования адаптера
- •2.12 Программируемый таймер к1810ви54 (i8254).
- •2.13 Пример использования таймера.
- •2.14 Обработка прерываний.
- •2.15 Система прерываний вм86.
- •2.16 Контроллер прерываний к1810вн59 (i8259).
- •Дополнительная информация о настройке вн59.
- •Прямой доступ к памяти.
- •Программирование кпдп вт37
- •2.21 Организация процессорного модуля вм86.
- •2.20. Организация шинного интерфейса в максимальном режиме
- •2.23. Слабо связанные конфигурации.
- •2.24. Арбитр шин к1810вб89 (i8289).
- •2.25 Сильно связанные конфигурации на примере совместной работы мп86 и арифметического сопроцессора вм87.
- •2.26. Формат машинной команды вм86.
2.25 Сильно связанные конфигурации на примере совместной работы мп86 и арифметического сопроцессора вм87.
Арифметический сопроцессор предназначен для выполнения сложных арифметических команд. МП и сопроцессор вместе образуют многопроцессорную систему, в которой МП является ведущим, а сопроцессор – ведомым. Поскольку в этом случае процессоры не являются равноправными, арбитр шин здесь не нужен.
Сопроцессор «не умеет» формировать адреса и считывать из ОП команды. За него это делает МП. Однако сопроцессор может производить обмен информацией с ОП, используя при этом адреса, сформированные МП. Стандартное соединение ВМ86 и ВМ87 приведено на рис 39.
Рис.
39
После прихода сигнала RESET (сброс) сопроцессор анализирует сигнал на линии BHE, выясняя с каким МП он работает. Для ВМ86 на этой линии в первый момент будет ноль, а для ВМ88 – единица. После этого сопроцессор переходит в пассивное состояние.
МП читает из оперативной памяти команды и заносит их в свою внутреннюю очередь. Сопроцессор эти команды перехватывает и также заносит их в свою внутреннюю очередь. В любой момент времени ситуация в обеих очередях должна быть одинаковой, поэтому сопроцессор следит за изменениями в очереди МП по линиям QS 1-0.
Когда ВМ87 перехватывает команду, являющуюся командой сопроцессора, он начинает переходить в активный режим. Полностью активным он становится, когда МП начинает выполнять «его» команду.
Система команд сопроцессора включает в себя более 80 команд, однако МП воспринимает все их как одну команду esc (escape). С точки зрения МП имеется три разновидности этой команды.
Команда работает с внутренними регистрами сопроцессора и не требует обращения к ОП. ВМ86 и ВМ87 одновременно начинают выполнение этой команды. При этом ВМ86 выполняет ее как команду nop (no operation) и переходит к выполнению следующей команды программы, а ВМ87 продолжает правильное выполнение заданной команды. То есть далее оба процессора работают параллельно.
Команда читает операнд из ОП и заносит его во внутренний регистр сопроцессора. При выполнении такой команды ВМ86 формирует адрес операнда в ОП и выставляет его на ША. Там этот адрес перехватывает сопроцессор и заносит его в свой специальный внутренний регистр. Из ОП по выставленному адресу считывается слово, которое сопроцессор принимает, а МП игнорирует. Далее МП переходит к выполнению следующей команды программы. Операнды сопроцессора занимают в памяти до 10-ти байт, поэтому оставшийся «хвост» операнда сопроцессор должен считать самостоятельно. Для этих целей сопроцессор запрашивает у МП шину по линии RQ/GT и считывает остаток операнда из ОП, используя перехваченный адрес.
Команда заносит в память содержимое внутреннего регистра сопроцессора. ВМ86 вырабатывает адрес, который перехватывает сопроцессор. По этому адресу из ОП считывается слово, которое на этот раз игнорируют оба процессора. Затем ВМ87 запрашивает шину по линии RQ/GT и производит запись в ОП, используя перехваченный адрес.
Команды сопроцессора достаточно сложны и для их выполнения требуется много времени. Поэтому высока вероятность того, что к началу выполнения следующей команды сопроцессора последний не успеет завершить выполнение предыдущей команды. Поэтому перед командами сопроцессора в программах рекомендуется ставить команду wait («ждать»). Эта команда проверяет сигнал на входе TEST и, если там стоит единица, МП ждет, пока на входе TEST не появится ноль. Сигнал на вход TESY заводится с выхода BUSY («занят») сопроцессора. При этом если на BUSY стоит единица, значит ВМ87 занят выполнением команды.