Interested Article - X87
- 2021-06-18
- 1
x87 — это специальный набор инструкций для работы с математическими вычислениями, являющийся подмножеством архитектуры процессоров x86 . Такое название он получил, потому что первоначальные отдельные математические сопроцессоры имели названия, заканчивающиеся на 87 . Как и другие расширения базового набора инструкций процессора, эти инструкции не являются строго необходимыми для построения рабочей программы, но будучи аппаратно реализованными, общие математические задачи они позволяют выполнять гораздо быстрее. Например, в наборе инструкций x87 присутствуют команды для расчёта значений синуса или косинуса .
Описание
Все процессоры Intel и AMD , начиная с 486DX и Am486DX , соответственно, имеют встроенный математический сопроцессор , и в отдельном сопроцессоре не нуждаются (за исключением 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 , хотя он по-прежнему хорошо поддерживается для полной совместимости со старыми приложениями.
Ссылки по теме
См. также
- 2021-06-18
- 1