2.1.2. Математический сопроцессор К1810ВМ87
Архитектурной особенностью микропроцессора К1810ВМ86, как уже
отмечалось выше, является способность координировать взаимодействие
нескольких микропроцессоров таким образом, что одни являются независи-
мыми, которые выполняют команды, а другие являются вспомогательными
(сопроцессорами). Сопроцессор просматривает команды, выбираемые цен-
тральным микропроцессором, отбирает и выполняет некоторые из них.
Сопроцессор К1810ВМ87, предназначен для расширения вычисли-
тельных возможностей центрального микропроцессора [9]. Его примене-
ние к системе команд микропроцессора К1810ВМ86 добавляет команды
для выполнения арифметических, тригонометрических, экспоненциальных
и логарифмических команд. Сопроцессор поддерживает семь типов дан-
ных: 16-, 32-, 64-битные целые числа; 32-, 64-, 80-битные числа с плаваю-
щей точкой и 18-разрядные числа в двоично-десятичном формате. Сопро-
цессор выполняет математические операции с производительностью, пре-
восходящей их программную эмуляцию центральным микропроцессором
более, чем в 100 раз. Пара микропроцессоров К1810ВМ86 и К1810ВМ87
выглядит как единое целое, где микропроцессор К1810ВМ86 осуществляет
общее управление процессом вычислений и обработку команд основного
набора, a микропроцессор К1810ВМ87 исполняет только свои специфиче-
ские команды.
Сопроцессор, отслеживая сигналы состояния микропроцессора
К1810ВМ86 (S[0:2] и QSO, QSI), вместе с ним просматривает и декодирует
команды. Математический сопроцессор имеет внутреннюю очередь ко-
манд, выполнение которой происходит по тем же правилам, что и выпол-
нение очереди в микропроцессоре К1810ВМ86. Любая команда, предна-
значенная для сопроцессора, является двухбайтной Первый байт имеет
двоичный код 11011xxx, второй байт вместе с битами ххх уточняет коман-
ду, за которой может следовать 1 или 2 байта смещения. Эти команды в
микропроцессорах К1810ВМ86 и К1810ВМ87 обрабатывают одновремен-
но. Когда команда подразумевает обмен данными с запоминающим уст-
ройством, вычисляет их адрес и выполняет шинный цикл фиктивного чте-
ния первого слова, но игнорирует считанные данные. Если должно выпол-
ниться считывание данных из ЗУ, эти данные считываются сопроцессором,
который фиксирует во внутреннем регистре значение текущего адреса. В
случае, когда команда подразумевает считывание более, чем одного слова
(байта) данных, сопроцессор запрашивает управление локальной шиной и,
71