X87

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

x87 — це спеціальний набір інструкцій для роботи з математичними обчисленнями, є підмножиною архітектури процесорів x86. Таку назву він отримав, тому що початкові окремі математичні співпроцесорні чипи мали назви, що закінчуються на 87. Як і інші розширення базового набору інструкцій процесора, ці інструкції не є строго необхідними для побудови робочої програми, але загальні математичні завдання вони дозволяють виконувати набагато швидше, коли реалізовані апаратно. Наприклад, у наборі інструкцій x87 присутні команди для розрахунку значень синуса або косинуса.

Опис[ред.ред. код]

Всі процесори Intel і AMD, починаючи з 486DX, мають вбудований математичний співпроцесор, і окремого співпроцесора не потребують (за винятком Intel486SX). Тим не менш, термін x87 все ще використовується для виділення тієї частини інструкцій процесора, яка займається обчисленнями з використанням плаваючої коми; компілятори можуть використовувати ці інструкції для виробництва коду, який працює швидше, ніж той, що використовує виклики до бібліотек для виконання операцій з плаваючою комою.

Інструкції x87 сумісні зі стандартом IEEE-754. Однак, x87 виконують операції не в суворій відповідності з форматами IEEE-754, через використання більш широких регістрів. Тому послідовність арифметичних операцій може виконуватися дещо по-іншому на наборі x87 і на процесорі, який суворо дотримується формату IEEE-754.

x87 організовує свої регістри не як масив, як більшість інших архітектур, а як регістровий стек, що працює за принципом зворотного польського запису. Це означає, що в один момент часу, тільки два верхніх регістра доступні для проведення операцій, а доступ до інших регістрів вимагає маніпуляцій зі стеком. Хоча така організація виходить і зручною для програмістів, вона робить трудомістким побудову ефективного коду x87 для компіляторів.

Починаючи з Pentium III, обчислення за допомогою інструкцій SSE здійснюються з одинарною точністю, а в пізніших версіях - з подвійною точністю форматів IEEE-754. Після появи SSE2, використання x87 в значній мірі применшується в 64-розрядних архітектурах x86-64 і пов'язаних з нею 64-бітних реалізаціях операційних систем, таких як Microsoft Windows, Mac OS X, Solaris, FreeBSD та Linux, хоча він як і раніше добре підтримується для повної сумісності зі старими додатками.

Див. також[ред.ред. код]