Jump to content

x87

(Перенаправлен с i487sx )

x87 -это плавающей точкой подмножество с по архитектуре x86 набора инструкций . Он возник как расширение 8086, установленного в форме дополнительных соприкадотелей с плавающей точкой , которые работают в тандеме с соответствующими процессорами x86. Эти микрочипы имеют имена, заканчивающиеся «87». Это также известно как NPX ( числовое расширение процессора ). Как и другие расширения для базового набора инструкций, инструкции x87 не требуются строго для построения рабочих программ, но предоставляют аппаратные и микрокоды реализации общих численных задач, что позволяет выполнять эти задачи гораздо быстрее, чем машинного кода могут быть соответствующие процедуры . Набор инструкций x87 включает в себя инструкции для основных операций с плавающей точкой, таких как добавление, вычитание и сравнение, а также для более сложных численных операций, таких как, например, вычисление тангентной функции и ее обратная.

Большинство процессоров X86 с момента Intel 80486 имели эти инструкции x87, выполненные в основном ЦП, но этот термин иногда все еще используется для обозначения этой части набора инструкций. Прежде чем x87 инструкции были стандартными в ПК, компиляторам или программистам должны были использовать довольно медленные вызовы библиотеки для выполнения операций с плавающей точкой, метод, который все еще распространен в (недорогих) встроенных системах .

Описание

[ редактировать ]

Регистры x87 образуют восьмиуровневую глубокую нетронутную структуру стека в диапазоне от ST (0) до ST (7) с регистрами, которые могут быть непосредственно доступны любым операндом, используя смещение по сравнению с верхом, а также выдвинуто и выпало Полем (Эта схема может сравниваться с тем, как кадр стека может быть одновременно протолкнут/выскочен и индексирован.)

Существуют инструкции, чтобы разжигать, расчет и значения POP поверх этого стека; Унарные операции (FSQRT, FPTAN и т. Д.) Затем косвенно обращаются к самой верхней ST (0), в то время как бинарные операции (FADD, FMUL, FCOM и т. Д.) Неявно обращаются к ST (0) и ST (1). Модель без строгих стека также позволяет бинарным операциям использовать ST (0) вместе с операндом прямого памяти или с явно указанным регистром стека, ST ( x ), в роли, аналогичной традиционной аккумуляторе (комбинированный пункт назначения и левый операнд ) Это также может быть изменено на основе обучения на основе обучения с ST (0) в качестве немодифицированного операнда и ST ( x ) в качестве пункта назначения . Кроме того, содержимое в ST (0) может быть обменено с помощью другого регистра стека, используя инструкцию под названием FXCH St ( x ).

Эти свойства делают x87 Stack пригодным для использования как семь свободно адресуемых регистров плюс выделенный аккумулятор (или как семь независимых аккумуляторов). Это особенно применимо к процессорам SuperScalar X86 (например, Pentium 1993 года и позже), где эти инструкции по обмену (коды D9C8..D9CF H ) оптимизируются до нулевого штрафа с использованием одного из целочисленных путей для FXCH ST (ST ( x ) Параллельно с инструкцией FPU. Несмотря на то, что некоторые писатели компилятора были естественными и удобными для программистов из ассамблеи человека , некоторые авторы компиляции обнаружили, что было бы сложно построить автоматические генераторы кодов , которые эффективно планируют код x87. Такой интерфейс на основе стека потенциально может минимизировать необходимость сохранения переменных царапин в вызовах функций по сравнению с интерфейсом на основе регистрации [ 1 ] (Хотя, исторически, проблемы дизайна в реализации 8087 ограничивали этот потенциал. [ 2 ] [ 3 ] )

X87 обеспечивает однооценную, двойную рецепту и 80-разрядную двойную арифметику с двойной точкой точкой точкой точки в соответствии с стандартом IEEE 754-1985 . По умолчанию процессоры x87 все используют 80-разрядную двойную точность внутри (для обеспечения устойчивой точности по многим расчетам, см. IEEE 754 Design Levalale ). Таким образом, данная последовательность арифметических операций может вести себя немного по-разному по сравнению со строгим однолетним или двойным определением IEEE 754 FPU. [ 4 ] Поскольку иногда это может быть проблематичным для некоторых полувековых вычислений, записанных, чтобы предположить двойную точность для правильной работы, чтобы избежать таких проблем, x87 может быть настроен с использованием специальной регистра конфигурации/состояния для автоматического округа до единой или двойной точности после каждой операции. введения SSE2 как когда-то, но остаются важными в качестве высокого качества скалярного блока для численных расчетов ошибке окружающей чувствительных инструкции x87 не так важны , С момента , к 80-битный формат.

Производительность

[ редактировать ]

Количество цикла такта для примеров типичных инструкций X87 FPU (только версии регистрации, показанные здесь). [ 5 ]

Нотация A ... B (минимум до максимума) охватывает вариации синхронизации в зависимости от переходного статуса трубопровода и выбранной арифметической точности (32, 64 или 80 бит); Он также включает в себя вариации, связанные с численными случаями (например, количество набор битов, ноль и т. Д.). Обозначение L → H отображает значения, соответствующие самым низким (L) и самым высоким (H) максимальным тактовым частотам, которые были доступны.

x87 Реализация Фадд FM FDIV FXCH FCOM Fsqrt Fptan FPATAN Максимальные часы
(МГц)
Пик fmul
(миллионы/ с )
FM §
религиозный 5 МГц 8087
8087 70…100 90…145 193…203 10…15 40…50 180…186 30…540 250…800 000 5 → 00 10 0.034…0.055 → 0.100…0.111 ~ 0000 1 → 2 × как быстро
80287 (оригинал) 000 6 → 00 12 0.041…0.066 → 0.083…0.133 .000 1.2 → 2.4×
80387 (а затем и 287 моделей) 23…34 29…57 88…91 18 24 122…129 191…497 314…487 00 16 → 00 33 0.280…0.552 → 0.580…1.1 000 ~10 → 20×
80486 (или 80487) 8…20 16 73 4 4 83…87 200…273 218…303 00 16 → 00 50 ….000000 1.0 → 3.1 000 ~18 → 56×
Cyrix 6x86 , Cyrix MII 4…7 4…6 24…34 2 4 59…60 117…129 97…161 00 66 → 0 300 ..0000 11…16 → 50…75 00 ~320 → 1400×
AMD K6 (включая K6 II/III) 2 2 21…41 2 3 21…41 ? ? 0 166 → 0 550 …..000000 83 → 275 0 ~1500 → 5000×
Pentium / Pentium 2010 1…3 1…3 39 1 (0*) 1…4 70 17…173 19…134 00 60 → 0 300 ..0000 20…60 → 100…300 0 ~1100 → 5400×
Intel 1…3 2…5 16…56 1 28…68 ? ? 0 150 → 0 200 ..0000 30…75 → 40…100 0 ~1400 → 1800×
Pentium 2/3 1…3 2…5 17…38 1 27…50 ? ? 0 233 → 1400 ..000 47…116 → 280…700 0 ~2100 → 13000×
Атлон (K7) 1…4 1…4 13…24 1…2 16…35 ? ? 0 500 → 2330 ..00 125…500 → 580…2330 0 ~9000 → 42000×
Атлон 64 (K8) 1000 → 3200 ..0 250…1000 → 800…3200 ~18000 → 58000×
Pentium 4 1…5 2…7 20…43 несколько
цикл
1 20…43 ? ? 1300 → 3800 ..00 186…650 → 543…1900 ~11000 → 34000×
* Эффективная задержка с нулевым тактовым частотом часто возможна с помощью SuperScalar выполнения.
§ 5 МГц 8087 был оригинальным процессором x87. По сравнению с типичными программными программными подпрограммами на 8086 (без 8087) факторы будут еще больше, возможно, другим фактором 10 (то есть правильное добавление с плавающей точкой на языке сборки вполне может потреблять более 1000 циклов )

Производители

[ редактировать ]

Компании, которые разработали или произвели [ А ] Единицы с плавающей запятой, совместимые с моделями Intel 8087 или более позднего цвета, включают AMD ( 287 , 387 , 486DX , 5x86 , K5 , K6 , K7 , K8 ), чипы и технологии ( Super Math Coprocessors), Cirix ( Fasmath , CX87SLC , CX87DL и т. д., 6x86 , Cyrix MII ), Fujitsu (Раннее Pentium Mobile и т. Д.), Harris Semiconductor (изготовленные 80387 и 486DX процессоры ), IBM (различные 387 и 486 конструкций), IDT ( Wrychip , C3 , C7 , Nano и т. Д.), IIT ( 2C87 , 3C87 и т. Д.) , Технология LC ( зеленая математическая копроцессоры), национальный полупроводник ( Geode GX1 , Geode GXM и т. д.), Nexgen ( NX587 ), технология RIST ( MP6 ), ST Microelectronics (изготовленная 486DX , 5x86 и т. Д.), Техасские инструменты (изготовленные 486DX -процессоры и т. Д.), Transmeta ( TM5600 и TM5800 ), ULSI ( Математическая копроцессоры ), через ( C3 , C7 , Nano и т. Д.), Weitek ( 1067 , 1167 , 3167 и 4167 ) и Xtend ( 83S87SX-25 и другие сотрудники).

Архитектурные поколения

[ редактировать ]

8087 для 16-битных процессоров , был первым математическим сотрудником разработанных Intel . Он был построен в паре с микропроцессорами Intel 8088 или 8086 . (Ранние процессоры Intel 8231 и 8232 с плавающей запятой, продаваемые для использования с процессором I8080, были фактически лицензированными версиями AMD AM9511 и AM9512 FPU с 1977 и 1979 годов. [ 6 ] )

16 МГц версия Intel 80C187

Хотя в оригинальной таблице 1982 года ( на основе NMOS ) 80188 и 80186, похоже, упоминается конкретные математические сотрудники, [ 7 ] Оба чипа были на самом деле в сочетании с 8087.

Тем не менее, в 1987 году, чтобы работать с обновленным CMOS ЦП на базе 80C186 , Intel представила 80C187 [ 8 ] Математическая копроцессор. Интерфейс 80C187 с основным процессором такой же, как и у 8087, но его ядро ​​по существу -80387SX и, таким образом, полностью IEEE 754 и способный выполнить все дополнительные инструкции 80387. [ 9 ]

80287 сотрудником ( I287 является математическим . для Intel 80286 серии микропроцессоров ) Модели Intel включали варианты с указанными пределами верхней частоты в диапазоне от 6 до 12 МГц. Версия NMOS была доступна 6, 8 и 10 МГц. [ 10 ] Доступная 10 МГц Intel 80287-10 Копроцессорная версия составила 250 долларов США в 100. [ 11 ] Эти коробочные версии 80287, 80287-8 и 80287-10 были доступны за 212, 326 и 374 долл. США соответственно. Там была вставленная версия 80C287A, доступную за 457 долларов США. [ 12 ] Другими 287 моделями с 387-подобными производительностью являются Intel 80C287, построенные с использованием CHMOS AMD III, и AMD 80EC287, изготовленный в процессе CMOS , используя только полностью статические ворота.

Позже последовало за I80287XL с микроархитектурой 387SX с 287 рутинкой, [ 13 ] I80287XLT, специальная версия, предназначенная для ноутбуков, а также другие варианты. Он содержит внутренний мультипликатор 3/2, так что материнские платы, которые управляли коконсором на скорости 2/3 ЦП, могли вместо этого запустить FPU на той же скорости процессора. Как 80287, так и 80287XLT предлагали на 50% лучшую производительность, на 83% меньше энергопотребления и дополнительные инструкции. [ 14 ]

80287 работает с микропроцессором 80386 и первоначально был единственным сопроцессором, доступным для 80386 до введения 80387 в 1987 году. Однако 80387 настоятельно предпочтительнее для его более высокой производительности и большей возможности его набора инструкций.

INTEL 80387 CPU -изображение DIE

80387 стандарту ( 387 или I387 ) является первым интюрным сотрудником, который полностью соответствует IEEE 754-1985 . Выпущен в 1987 году, [ 15 ] Через два года после 386 чипов I387 включает в себя значительную улучшенную скорость по сравнению с предыдущими копроцессорами Intel 8087/80287 и улучшенные характеристики его тригонометрических функций. Он был доступен за 500 долларов в размере 100 долларов США. [ 16 ] Вскоре после этого он был доступен в результате операции по улучшению персонального компьютера Intel по розничной рыночной цене 795 долларов США. [ 17 ] Версия 25 МГц была доступна в розничном канале за 1395 долларов США. [ 18 ] MATH Coprocessor Intel M387 встретился под MIL-STD-883 Rev. C Стандарт . Это устройство было протестировано, которое включает в себя цикл температуры от -55 до 125 ° C, герметичность, герметичную и расширенную сжигание. Эта военная версия работает на уровне 16 МГц. Эта военная версия была доступна в 68-х лиде PGA и Quad Flatpack. Эта военная версия была доступна за 1155 долларов США в размере 100 единиц для версии PGA. [ 19 ] Версия 387DX 33 МГц была доступна, и она имеет производительность 3,4 мегаветтона в секунду . [ 20 ] Следующая коробочная версия 16-, 20-, 25- и 33-МГц 387DX Math Coprocessor была доступна за 570 долларов США, 647 долл. США, 814 долл. США и 994 долл. США. [ 21 ] Инструкции FPTAN и FPATAN 8087 и 80287 ограничены аргументом в диапазоне ± π/4 (± 45 °), а 8087 и 80287 не имеют прямых инструкций для функций SIN и COS. [ 22 ] [ Полная цитата необходима ]

Без совместной работы 386 обычно выполняет арифметику с плавающей точкой через (относительно медленные) программные процедуры, реализованные во время выполнения через обработчик исключений программного обеспечения . Когда математический коконсор в паре с 386, копрецессор выполняет арифметику с плавающей точкой в ​​оборудовании, возвращая результаты гораздо быстрее, чем (эмуляционный) библиотека программного обеспечения.

I387 совместим только со стандартным чипом i386, который имеет 32-разрядную шину процессора. Более поздний снижение затрат I386SX, которая имеет более узкую 16-битную шину данных , не может взаимодействовать с 32-битной шиной I387. I386SX требует своего собственного коконсора, 80387SX , который совместим с более узкой 16-битной шиной данных SX. Intel выпустила низкую версию Power Coprocessor 387SX. [ 23 ]

i487sx

I487SX копроцессора (P23N) продавался в качестве плавающей точкой с Intel I486SX для машин . На самом деле он содержал полномасштабную реализацию i486DX . При установке в систему I486SX I487 отключил основной процессор и принял все операции процессора. I487 принял меры для обнаружения наличия I486SX и не функционировал без исходного процессора. [ 24 ] [ 25 ] [ неудачная проверка ]

NX587 был последним FPU для X86 , который был изготовлен отдельно от процессора, в данном случае NX586 Nexgen .

Смотрите также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Fabless Companies разрабатывают чип и полагаются на тряпную компанию для ее изготовления, в то время как Fabbed Companies могут выполнять как дизайн, так и производство самостоятельно.
  1. ^ Уильям Кахан (2 ноября 1990 г.). «О преимуществах стека 8087» (PDF) . Неопубликованные примечания к курсу, Отдел информатики, Калифорнийский университет в Беркли . Архивировано из оригинала (PDF) 18 января 2017 года.
  2. ^ Уильям Кахан (8 июля 1989 г.). «Как должен был обрабатывать переполнение стека Intel 8087 (PDF) . Архивировано из оригинала (PDF) 12 июня 2013 года.
  3. ^ Джек Вор (1 ноября 1997 г.). «Разговор с Уильямом Каханом» .
  4. ^ Дэвид Моннио (май 2008 г.). «Подводные камни проверки вычислений с плавающей точкой» . Транзакции ACM на языках и системах программирования . 30 (3): 1–41. ARXIV : CS/0701192 . doi : 10.1145/13534455.1353446 . S2CID   218578808 .
  5. ^ Числа взяты из соответствующих листов данных процессоров, руководств по программированию и руководств по оптимизации.
  6. ^ «Арифметические процессоры: тогда и сейчас» . www.cpushack.com . 23 сентября 2010 года . Получено 3 мая 2023 года .
  7. ^ Intel (1983). Руководство по микропроцессору и периферийным устройствам . С. 3-25 (IAPX 186/20) и 3-106 (IAPX 188/20).
  8. ^ «Коллекция процессора - модель 80187» . CPU-info.com . Архивировано из оригинала 23 июля 2011 года . Получено 14 апреля 2018 года .
  9. ^ «80C187 80-битный математический копроцессор» (PDF) . Ноябрь 1992 . Получено 3 мая 2023 года .
  10. ^ Йошида, Стейси, «Математические сотрудники: поддержание компьютера для подсчета», Intel Corporation, Microcomputer Solutions, сентябрь/октябрь 1990, стр. 16
  11. ^ Intel Corporation, «Новый компонент фокусировки продукта: 32-битный микропроцессор с небольшой помощью некоторых друзей», Специальные 32-разрядные решения для выпуска, ноябрь/декабрь 1985 г., стр. 13.
  12. ^ Intel Corporation, «Усовершенствование персонального компьютера», операция по улучшению персонального компьютера, заказ № 245.2, 10-89/75K/AL/GO, октябрь 1989 г., стр. 4
  13. ^ Intel Corporation, «Новый продукт Фокус: Системы: Snapin 386 Обновления модулей PS/2 ПК», Microcomputer Solutions, сентябрь/октябрь 1991 г., стр. 12
  14. ^ Йошида, Стейси, «Математические сотрудники: поддержание компьютера для подсчета», Intel Corporation, Microcomputer Solutions, сентябрь/октябрь 1990, стр. 16
  15. ^ Моран, Том (1987-02-16). «Чипы для повышения производительности 386 машин, говорит Intel» . InfoWorld . Тол. 9, нет. 7. с. 5. ISSN   0199-6649 .
  16. ^ «Новые компоненты фокуса продукта: 32-битный вычислительный двигатель на полную скорость». Решения . Intel Corporation: 10. May - June 1987.
  17. ^ «Newsbit: Intel 80387 доступен через розничные каналы». Решения . Intel Corporation: 1. Июль -август 1987.
  18. ^ Intel Corporation, "Газеты: 25 МГц 80387 доступны через розничные каналы", Microcomputer Solutions, сентябрь/октябрь 1988 г., страница 1
  19. ^ Intel Corporation, «Фокус: Компоненты: милитаризованные периферийные устройства поддерживают микропроцессор M386», Microcomputer Solutions, март/апрель 1989 г., стр. 12
  20. ^ Lewnes, Ann, «Архитектура Intel386 здесь, чтобы остаться», Intel Corporation, Microcomputer Solutions, июль/август 1989 г., стр. 2
  21. ^ Intel Corporation, «Усовершенствование персонального компьютера», операция по улучшению персонального компьютера, заказ № 245.2, 10-89/75K/AL/GO, октябрь 1989 г.
  22. ^ Борланд Турбо -Ассамблер документация.
  23. ^ Lewnes, Ann, «Архитектура Intel386 здесь, чтобы остаться», Intel Corporation, Microcomputer Solutions, июль/август 1989 г., стр. 2
  24. ^ Intel 487sx в свободном онлайн-словаре вычислений
  25. ^ "Intel 80487" . www.cpu-world.com . Получено 9 июня 2021 года .
[ редактировать ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 3c88f4f57e71fbd353ed60b3bbf37b9a__1723252080
URL1:https://arc.ask3.ru/arc/aa/3c/9a/3c88f4f57e71fbd353ed60b3bbf37b9a.html
Заголовок, (Title) документа по адресу, URL1:
x87 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)