і стан співпроцесора, і якщо він зайнятий переводить центральний процесор в стан очікування.
Синхронізація за даними при роботі арифметичного співпроцесора.
Якщо виконувана співпроцесором команда записує операнд в елемент пам'яті перед наступною командою центрального процесора, яка використовує її, тоді теж потрібна аналогічна команда перевірки стану співпроцесора.
Якщо співпроцесор не встиг записати дані в клітинку, яку буде використовувати наступну команду, то центральний процесор повинен очікувати завершення роботи співпроцесора.
Математичний сопроцессорпредназначен для швидкого виконання арифметичних операцій з плаваючою точкою, надання часто використовуваних речових констант (log 10 лютого, log 2 e, ln2), обчислення тригонометричних та інших трансцендентних функцій (tg, arctg, log).
Більшість сучасних математичних сопроцессоров для представлениявещественныхчиселиспользуютстандарт IEEE 754-198.Старшій розряд двійкового представлення дійсного числа завжди кодує знак числа.
Інша частина розбивається на дві частини експоненту і мантиса. Дійсне число обчислюється як: (- 1) S · 2 E · M, де S - знаковий біт числа, Е - експонента, М - мантиса.
<= M <2, то таке число називається нормалізованим. При зберіганні нормалізованих чисел співпроцесор відкидає цілу частину мантиси (вона завжди 1), зберігаючи лише дробову частину. Експонента кодується із зсувом на половину розрядної сітки, таким чином, вдається уникнути питання про кодування знака експоненти. Тобто при 8-бітної розрядності експоненти код 0 відповідає числу - 127, 1 - числу - 126, ..., 255 числу +126 (експонента обчислюється як код 127).
Стандарт IEEE - 754 визначає три основні способи кодування (типу) дійсних чисел:
вещественное ординарної точності;
речовий подвійної точності;
речовий розширеної точності.
Стандарт IEEE 754 - широко поширений стандарт формату представлення чисел з плаваючою точкою, використовуваний як у програмних реалізаціях арифметичних дій, так і в багатьох апаратних (CPU і FPU) реалізаціях. Багато компілятори мов програмування використовують цей стандарт для зберігання даних і виконання математичних операцій.
Однак співпроцесор може проводити обмін інформацією з оперативною пам'яттю, використовуючи при цьому адреси, сформовані в мікропроцесорі. Стандартне з'єднання ВМ86 і ВМ87 наведено на рис. 6.
Рис. 6 Стандартне з'єднання ВМ86 і ВМ87
Після приходу сигналу RESET (скидання) співпроцесор аналізує сигнал на лінії BHE (вихідний сигнал дозволу старшого байта шини даних), з'ясовуючи з яким мікропроцесором він працює. Для ВМ86 на цій лінії в перший момент буде нуль, а для ВМ88 - одиниця. Після цього співпроцесор переходить в пасивний стан.
Мікропроцесор читає з оперативної пам'яті команди і заносить їх у свою внутрішню чергу. Співпроцесор ці команди перехоплює і також заносить їх у свою внутрішню чергу. У будь-який момент часу ситуація в обох чергах повинна бути однаковою, тому співпроцесор стежить за змінами в черзі по лініях QS 1-0 (вхідний сигнал коду стану черги команд).
Коли ВМ87 перехоплює команду, як...