ить про готовність співпроцесора виконати наступну програму, яка може наказати йому зробити що-небудь з отриманим на попередньому кроці результатом.
Звичайний процесор працює аналогічно: завантажує значення, читає команди і виконує мікрокоманди. Співпроцесор має переваги перед общецелевого процесором при роботі в форматі з плаваючою точкою, тому що його командне безліч включає математичні операції високого рівня і тому, що його внутрішні ланцюга більш налаштовані на виконання таких операцій. Наприклад, простий процесор може знайти ірраціональний корінь, але йому доведеться працювати в циклі сотень простих команд, виконати сотні інтеграції в галузі евклідовой математики, щоб знайти відповідь. Співпроцесор вирішує цю задачу однією інструкцією. Вони проектуються з урахуванням області застосування. Співпроцесор підключається до системної шини, паралельно з центральним процесором, і може працювати тільки з ним.
Співпроцесор не має індивідуальної програми, і не може самостійно ініціювати вибірку команди з пам'яті. Команди співпроцесора записані разом з командами центрального процесора і зберігаються в пам'яті. Вибірку команди здійснює тільки центральний процесор, а команда потрапляє в обидва процесора, але кожен з них виконує тільки свої команди. Якщо обрана команда виявляється командою центрального процесора, то він виконує її звичайним чином, якщо співпроцесор не залучається. Він ігнорує їх. Якщо обрана команда - це команда співпроцесора, то дія центрального процесора залежить від специфіки команди.
Якщо команда не пов'язана із зверненням до пам'яті, то центральний процесор ігнорує і переходить до виконання наступної. Але якщо команда вимагає звернення до пам'яті за операндом, то центральний процесор обчислює фізичну адресу операнда і звертається до пам'яті. При цьому співпроцесор перехоплює з загальної шини адреса операнда, а в операції зі зчитуванням даних і дані. Після цього співпроцесор виконує команду.
Команди можуть виконуватися паралельно з центральним процесором. Зазвичай команда співпроцесора виконується більшу кількість часу, ніж центральний процесор. І для нього операції завантаження і збереження можуть бути досить складні, так як він працює з перетворенням чисел з формату у формат. Таким чином, під час роботи співпроцесора центральний процесор може простоювати, що ні неефективно.
Для обчислень співпроцесор спочатку завантажує одне число в один регістр, а друге число - у другій регістр. Потім він читає програмну команду, яка говорить, яку операцію потрібно виконати над цими двома числами. Ця команда запускає іншу мініатюрну програму, виконувану всередині чіпа співпроцесора. Дана програма і змушує його знайти шуканий результат. Безліч внутрішніх команд співпроцесора, призначених для виконання різних операцій, зрозумілих сопроцессору, називається його микрокодом (як це має місце і для простого процесора).
Синхронізація по командам при роботі арифметичного співпроцесора.
Коли центральний процесор вибирає для виконання команду співпроцесора, той може бути зайнятий операціями з виконання попередніх команд, і не може виконувати обрану. Центральний процесор не може пропускати в співпроцесор команди швидше, ніж той її виконує, отже, перед кожною командою співпроцесора знаходиться спец. команда центрального процесора, яка перевіряє поточн...