Математичний співпроцесор: відмінності між версіями

[перевірена версія][перевірена версія]
Вилучено вміст Додано вміст
Це не архітектура x86. Стаття про співпроцесори чисел з рухомою комою, а не про 8087
виключень з плаваючою
Рядок 1:
{{Без джерел|дата=травень 2014}}
[[Файл:KL Intel C80287.jpg|right|thumb|180px|Intel [[X87|80287]]]]
'''Математи́чний співпроце́сор''', або '''модуль (блок) операцій з рухомою комою''' ({{lang-en|Floating point unit}}, FPU) — співпроцесор для розширення системи команд [[Центральний процесор|центрального процесора]], що[[комп'ютер]]а забезпечуєтьсякомандами функціональністюдля модуляздійснення операцій знад [[Число з плаваючоюрухомою комою|плаваючоючислами з рухомою комою]]. дляМоже процесорівбути як у вигляді окремої мікросхеми, якітак неі маютьінтегрованим відповідногоу інтегрованогокристал модуляпроцесора.
 
Простим «цілочисловим» процесорам для роботи з дійсними числами і математичними операціями потрібні відповідні процедури підтримки та час для їх виконання. МодульМатематичний операцій з плаваючою комоюспівпроцесор підтримує роботу з ними на рівні примітивів — завантаження, вивантаження дійсного числа (в /із спеціалізованих регістрів) або математична операція над ними виконується однією командою, за рахунок цього досягається значне прискорення таких операцій.
'''Модуль операцій з плаваючою комою''' (або з плаваючою крапкою; {{lang-en|Floating point unit (FPU)}}) — частина процесора для виконання широкого спектру математичних операцій над числами.
 
Простим «цілочисловим» процесорам для роботи з дійсними числами і математичними операціями потрібні відповідні процедури підтримки та час для їх виконання. Модуль операцій з плаваючою комою підтримує роботу з ними на рівні примітивів — завантаження, вивантаження дійсного числа (в /із спеціалізованих регістрів) або математична операція над ними виконується однією командою, за рахунок цього досягається значне прискорення таких операцій.
 
== Співпроцесори [[Intel]] сімейства [[x86]] ==
Для таких процесорів як 8086/88, 186/188, 286, 386, 486 були випущені співпроцесори для операцій з плаваючоюрухомою комою, як правило остання цифра у таких співпроцесорів була '''7''' (8087, 187, 287, 387, 487). Для установки співпроцесора на платі комп'ютера передбачалось окреме гніздо.
 
Співпроцесор не є повноцінним процесором, оскільки не вміє виконувати багатьох операцій (наприклад, не вміє працювати з програмою і обчислювати адреси пам'яті), він є всього лише додатком до центрального процесора.
Рядок 17 ⟶ 15:
* Частина командних кодів центрального процесора зарезервована для співпроцесора, він стежить за потоком команд, ігноруючи інші команди. Центральний процесор, навпаки, ігнорує команди співпроцесора, займаючись тільки обчисленням адреси в пам'яті, якщо команда припускає до неї звернення. Центральний процесор робить цикл фіктивного зчитування, дозволяючи співпроцесору зчитати адресу з адресної шини. Якщо співпроцесору необхідно додаткове звернення до пам'яті (для читання або запису результатів), він виконує його через захоплення шини.
* Після отримання команди і необхідних даних співпроцесор починає її виконання. Поки співпроцесор виконує команду, центральний процесор виконує програму далі, паралельно з обчисленнями співпроцесора. Якщо наступна команда також є командою співпроцесора, процесор зупиняється і чекає завершення виконання співпроцесором попередньої команди.
* Також існує спеціальна команда очікування (FWAIT), що примусово зупиняє центральний процесор до завершення обчислень у співпроцесорі (якщо для продовження програми необхідні їх результати). В даний час{{коли}} команда використовується лише для обробки виключеньвиняткових ситуацій при роботі з плаваючоюрухомою комою, робота процесора і співпроцесора синхронізується прозоро для програміста.
 
Починаючи з процесора Intel486DX модуль операцій з плаваючоюрухомоюю комою був інтегрований в центральний процесор і названий FPU. У лінійці Intel486SX модуль FPU вимикався (спочатку у цю лінійку потрапляли процесори з бракованим [[FPU]]). Для процесорів Intel486SX також випускався «співпроцесор» Intel487SX, але, фактично, він був процесором Intel486DX і при його установці процесор Intel486SX вимикався.
 
Незважаючи на інтеграцію, FPU в процесорах i486 являє собою незмінний співпроцесор, виконаний на тому ж кристалі, більше того, схема FPU i486 повністю ідентична співпроцесору попереднього покоління 387DX аж до тактової частоти (у два рази меншою, ніж частота центрального процесора). Справжня інтеграція FPU c центральним процесором почалася тільки в процесорах [[Pentium]] моделі [[MMX]].