Intel 8087

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Intel 8087
Центральный процессор
Intel C8087.jpg
Математический сопроцессор Intel 8087
Производство: 1980
Разработчик: Intel
Производители:
Частота ЦП: 4—10 MHz
Частота FSB: 4—10 MHz
Технология производства:
3 μm мкм
Наборы инструкций: x86-16, x87
Число ядер: 1
L1-кэш: отсутствует

Процессор Intel 8087 был выпущен в 1980 году, он стал первым математическим сопроцессором для линейки процессоров 8086 (x87)[3][4].

Целью создания процессора 8087 было увеличить скорость расчётов при операциях с числами с плавающей точкой, таких как сложение, вычитание, деление и извлечение квадратного корня. Он также вычисляет трансцендентные функции, например экспоненциальную функцию, логарифмы и тригонометрические функции. Прирост производительности от установки сопроцессора составлял от 20 % до 500 %, в зависимости от специфики задач. Intel 8087 имел производительность около 50,000 Флопс[3] и потреблял примерно 2,4 Ватт[4]. Выгода от установки 8087 проявлялась только при выполнении математических операций. Например, компьютеры, которые использовались только с такими приложениями, как обработка текстов, не выигрывали от дополнительных расходов (примерно $150[5]) и потребляемой сопроцессором мощности.

Продажи 8087 значительно повысились, когда IBM включила сокет сопроцессора в материнскую плату IBM PC. Развитие сопроцессора привело к образованию стандарта IEEE 754-1985 для арифметики с плавающей точкой. Поздние процессоры Intel, начиная с 80486, имеют встроенный арифметический сопроцессор (за исключением 486SX — для них выпускался сопроцессор 487SX, который можно было не устанавливать).

Дизайн и развитие[править | править вики-текст]

Сначала Intel начал производство 8231 «Арифметический процессор», и 8232 «Процессор операций с плавающей точкой». Они были разработаны для работы только с 8080 или его аналогами и использовали 8-битную шину данных.

Они были сопряжены с хост-системами, через запрограммированный I/O или DMA .[6]

Первый процессорор 8087 был выпущен в 1980 году и содержал 45,000 транзисторов. Он был изготовлен по 3 μm схеме. Производство Intel 8087 было закончено в Малайзии[4].

Этот сопроцессор ввёл около 60 новых инструкций, название которых начиналось на «F», для того, чтобы отличать их от целочисленных инструкций Intel 8086. Например, команды ADD/MUL/CMP, в 8087 выглядели как FADD/FMUL/FCOM. Бинарные кодировки для всех новых инструкций начинались с комбинации битов 11011, десятичного 27, как ASCII символ ESC; похожие префиксы инструкций также иногда называют управляющие коды.

Использование сопроцессора не было прозрачным для приложений, которые должны были быть написаны для использования специальных инструкций для операций с плавающей точкой. Во время запуска, ПО должно было определить сопроцессор и использовать его для подобных операций; в противном случае, функция сопроцессора должна была быть эмулирована в программе.[5]

Регистры[править | править вики-текст]

Упрощённая архитектура Intel 8087

Семейство x87 процессоров не использовало непосредственно адресуемые регистры, такие как основные регистры архитектуры x86; вместо этого, регистры x87 образуют восьмиуровневую структуру[7] стека с индексами от st0 до st7, где st0 — заглавный. Инструкции исполняются за счет продвижения, подсчета и извлечения значений из стека.

Стандарт IEEE для чисел с плавающей точкой[править | править вики-текст]

Когда Intel разработал процессор 8087, было решено создать стандарт для операций с плавающей точкой для следующих разработок. Важным аспектом 8087, исходя из исторической точки зрения, было создание его как основы для стандарта с плавающей точкой IEEE 754. 8087 не выполнил возможный стандарт всех деталях IEEE 754, так как стандарт не был закончен до 1985 года, однако Intel 80387 уже соответствовал стандарту. 8087 предлагал два основных 32/64-битных типа данных с плавающей точкой, а также расширенный 80-битный формат для повышения точности больших и сложных расчётов. Помимо этого, 8087 предлагал 80-битный/18-значный двоично-десятичный формат, а также 16, 32 и 64-битные целочисленные типы.[7]

Ссылки[править | править вики-текст]

  1. Shvets, Gennadiy AMD 8087 floating-point unit. CPU World (8 October 2011). Проверено 1 декабря 2011. Архивировано из первоисточника 26 января 2013.
  2. Shvets, Gennadiy Cyrix 8087 floating-point unit. CPU World (8 October 2011). Проверено 1 декабря 2011. Архивировано из первоисточника 26 января 2013.
  3. 1 2 8087. Coprocessor Dot Info(недоступная ссылка — история) (2007). Проверено 1 декабря 2011. Архивировано из первоисточника 7 июня 2008.
  4. 1 2 3 Intel FPU. cpu-collection.de (2011). Проверено 1 декабря 2011. Архивировано из первоисточника 26 января 2013.
  5. 1 2 Scott Mueller, Upgrading and repairing PCs, second edition, Que Books, 1992 ISBN 0-88022-856-3, pages 395-403
  6. Intel Component Data Catalog 1980, Intel catalog no. C-864/280/150K/CP, pages 8-21, 8-28
  7. 1 2 Shvets, Gennadiy Intel 8087 family. CPU World (8 октября 2011). Проверено 1 декабря 2011. Архивировано из первоисточника 1 сентября 2013.

Дополнительные ссылки[править | править вики-текст]