Математический сопроцессор

Сопроцессор Motorola 68881

Математический сопроцессор — сопроцессор для расширения командного множества центрального процессора и обеспечивающий его функциональностью модуля операций с плавающей запятой, для процессоров, не имеющих интегрированного модуля.

Модуль операций с плавающей запятой (или с плавающей точкой; англ. floating point unit (FPU) — часть процессора для выполнения широкого спектра математических операций над вещественными числами.

Простым «целочисленным» процессорам для работы с вещественными числами и математическими операциями требуются соответствующие процедуры поддержки и время для их выполнения. Модуль операций с плавающей запятой поддерживает работу с ними на уровне примитивов — загрузка, выгрузка вещественного числа (в/из специализированных регистров) или математическая операция над ними выполняется одной командой, за счёт этого достигается значительное ускорение таких операций.

Сопроцессоры

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

Сопроцессоры Intel семейства x86

Для процессоров семейства x86 с 8086/8088 по 386 модуль операций с плавающей запятой был выделен в отдельную микросхему, называемую математическим сопроцессором. Для установки сопроцессора на плате компьютера предусматривался отдельный разъём.

Сопроцессор не является полноценным процессором, так как не умеет делать многих необходимых для этого операций (например, не умеет работать с программой и вычислять адреса памяти), являясь всего лишь придатком центрального процессора.

Одна из схем взаимодействия центрального процессора и сопроцессора, применяемая, в частности, в x86-сопроцессорах, реализуется следующим образом:

  • Сопроцессор подключен к шинам центрального процессора, а также имеет несколько специальных сигналов для синхронизации процессоров между собой.
  • Часть командных кодов центрального процессора зарезервирована для сопроцессора, он следит за потоком команд, игнорируя другие команды. Центральный процессор, наоборот, игнорирует команды сопроцессора, занимаясь только вычислением адреса в памяти, если команда предполагает к ней обращение. Центральный процессор делает цикл фиктивного считывания, позволяя сопроцессору считать адрес с адресной шины. Если сопроцессору необходимо дополнительное обращение к памяти (для чтения или записи результатов), он выполняет его через захват шины.
  • После получения команды и необходимых данных сопроцессор начинает её выполнение. Пока сопроцессор выполняет команду, центральный процессор выполняет программу дальше, параллельно с вычислениями сопроцессора. Если следующая команда также является командой сопроцессора, процессор останавливается и ожидает завершения выполнения сопроцессором предыдущей команды.
  • Также существует специальная команда ожидания (FWAIT), принудительно останавливающая процессор до завершения вычислений (если для продолжения программы необходимы их результаты). В настоящее время команда используется лишь для обработки исключений при работе с плавающей точкой, работа процессора и сопроцессора синхронизируется автоматически[1].

Начиная с процессора Intel486DX модуль операций с плавающей запятой был интегрирован в центральный процессор и назван FPU. В линейке Intel486SX модуль FPU отключался (поначалу в эту линейку попадали процессоры с бракованным FPU). Для процессоров Intel486SX также выпускался «сопроцессор» Intel487SX, но фактически он являлся процессором Intel486DX, и при его установке процессор Intel486SX отключался.

Несмотря на интеграцию, FPU в процессорах i486 представляет собой неизменный сопроцессор, выполненный на том же кристалле, более того, схема FPU i486 полностью идентична сопроцессору предыдущего поколения 387DX вплоть до тактовой частоты (в два раза меньшей, чем частота центрального процессора). Настоящая интеграция FPU c центральным процессором началась только в процессорах Pentium модели MMX.

Сопроцессоры x86 от сторонних производителей

Широкое распространение в соответствующий период получили сопроцессоры для платформы x86, выпускавшиеся компанией Weitek — ею были выпущены 1167, 2167 в виде набора микросхем и микросхемы 3167, 4167, для процессоров 8086, 80286, 80386, 80486, соответственно. По сравнению с сопроцессорами от Intel они обеспечивали в 2—3 раза большую производительность, но обладали несовместимым программным интерфейсом, реализованным через технологию memory-mapping. Она сводилась к тому, что основной процессор должен был записывать информацию в те или иные области памяти, контролируемые Weitek-овским сопроцессором (собственной оперативной памяти там не было). Конкретный адрес, куда производилась запись, интерпретировался в качестве той или иной команды. Несмотря на несовместимость, сопроцессоры от Weitek были широко поддержаны как разработчиками ПО, так и производителями материнских плат, предусматривавших на них гнёзда для установки такой микросхемы.

Ряд других компаний также выпускал различные несовместимые математические сопроцессоры, реализуя интерфейс к ним через порты ввода-вывода или прерывания BIOS, но они не получили такого широкого распространения.

Компании-производители клонов выпускали совместимые с 80287 80387 сопроцессоры, работавшие быстрее аналогичных интеловских. Среди этих компаний можно упомянуть Cyrix, AMD, Chips & Technologies (C&T). Иногда система команд этих сопроцессоров расширялась несколькими несовместимыми, например, аналог 80287 от C&T содержал команды для работы с вектором из четырёх значений с плавающей точкой. Серьёзной поддержки от производителей ПО эти расширенные команды не получили.

Процессоры EMC87 от фирмы Cyrix могли работать как в режиме программной совместимости с Intel 80387, так и в собственном несовместимом режиме программирования. Для них обеспечивалась аппаратная совместимость с разъёмом 80387-го сопроцессора.

В СССР выпускалась микросхема (КМ)1810ВМ87, которая являлась аналогом 8087.

Другие платформы

Аналогично, материнские платы ПК, построенных на процессорах Motorola, до разработки этой фирмой процессора MC68040 (в который сопроцессор был встроен) содержали математический сопроцессор. Как правило, в качестве FPU использовался сопроцессор 68881 16 МГц или 68882 25 МГц. Практически любой современный процессор имеет встроенный сопроцессор.

Компания Weitek также выпускала математические сопроцессоры для платформ 68000 и MIPS.

Устройство FPU

Регистры FPU организованы не в виде массива, как в некоторых других архитектурах, а как регистровый стек. Таким образом, FPU представляет собой стековый калькулятор, работающий по принципу обратной польской записи[2][3]. Это означает, что команды всегда используют верхнее значение в стеке для проведения операций, а доступ к другим хранящимся значениям обычно обеспечивается в результате манипуляций со стеком. Однако при работе с вершиной стека одновременно могут использоваться и другие элементы стека, для доступа к которым применяется адресация относительно вершины стека. Также в операциях могут использоваться значения, хранящиеся в оперативной памяти. Обычная последовательность действий выглядит следующим образом. Перед операцией аргументы помещаются в LIFO-стек; при выполнении операции необходимое количество аргументов снимается со стека. Результат операции помещается в стек, где может быть использован в дальнейших вычислениях или снят со стека для записи в память. Хотя стековая организация регистров FPU получается и удобной для программистов, она усложняет задачу построения эффективного кода компиляторами.

Особенности использования

Все процессоры Intel и AMD, начиная с 486DX, имеют встроенный математический сопроцессор, и в отдельном сопроцессоре не нуждаются (за исключением Intel486SX). Тем не менее, термин x87 всё ещё применяется для выделения той части инструкций процессора, которая служит для работы с вещественными числами в стеке FPU. Отличительный признак этих инструкций: их мнемоники начинаются с буквы f (от англ. float). Компиляторы могут использовать эти инструкции для производства кода, который в ряде случаев работает быстрее, нежели тот, что использует вызовы к библиотекам для выполнения операций с плавающей запятой.

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

После появления расширения 3DNow! от AMD и затем SSE, начиная с процессоров Pentium III компании Intel, вычисления с одинарной точностью стало возможным проводить без помощи инструкций FPU, причём с возросшей производительностью. Расширение SSE2 и более поздние расширения системы команд обеспечили также быстрое выполнение расчётов с двойной точностью (см. стандарт IEEE-754). В связи с этим в современных компьютерах потребность в командах классического математического сопроцессора значительно уменьшилась. Тем не менее, во всех выпускаемых x86-процессорах они по-прежнему поддерживаются для совместимости со старыми приложениями, а также для нужд тех приложений, где требуются двоично-десятичные преобразования или вычисления с расширенной точностью (когда двойной точности недостаточно). В настоящее время использование команд x87 остаётся наиболее эффективным способом ведения таких расчётов.

Форматы данных

Внутри FPU числа хранятся в 80-битном формате с плавающей запятой (расширенная точность), для записи же или чтения из памяти могут использоваться:

  • Вещественные числа в трёх форматах: коротком (32 бита), длинном (64 бита) и расширенном (80 бит).
  • Двоичные целые числа со знаком в трёх форматах: 16, 32 и 64 бита.
  • Упакованные целые десятичные числа (BCD-числа) — длина максимального числа составляет 18 упакованных десятичных цифр (72 бита).

FPU также поддерживает специальные численные значения:

  • Денормализованные вещественные числа — числа, которые по абсолютной величине меньше минимального нормализованного числа. При формировании такого значения в некотором регистре стека в соответствующем этому регистру теге регистра TWR формируется специальное значение 10. Признаком денормализованного числа в его двоичном представлении служит нулевое поле порядка.
  • Бесконечность (положительная и отрицательная), возникает при делении на нуль ненулевого значения, а также при переполнениях. При формировании такого значения в некотором регистре стека в соответствующем этому регистру теге регистра TWR формируется специальное значение 10.
  • не-число (англ. not-a-number (NaN)). Различают два вида не-чисел:
    • SNaN (Signaling Not-a-Number) — сигнальные не-числа. Сопроцессор реагирует на появление этого числа в регистре стека возбуждением исключения недействительной операции. Сопроцессор не формирует сигнальных не-чисел. Программисты формируют такие числа преднамеренно, чтобы возбудить в нужной ситуации исключение. Признаком сигнального не-числа в его двоичном представлении является сброшенный 2-й (по убыванию старшинства) бит поля мантиссы.
    • QNaN (Quiet Not-a-Number) — спокойные (тихие) не-числа. Сопроцессор может формировать спокойные не-числа в качестве реакции на определённые исключения, например, число вещественной неопределённости. Признаком тихого не-числа в его двоичном представлении является установленный 2-й (по убыванию старшинства) бит поля мантиссы.
  • Нуль (положительный и отрицательный). Характеризуется нулевыми значениями полей мантиссы и порядка. Хотя нуль может считаться самостоятельным специальным значением, он в то же время является частным случаем денормализованного числа.
  • Неопределённости и неподдерживаемые форматы. То же, что не-число. Существует много битовых наборов, которые можно представить в расширенном формате вещественного числа, не обозначающие никакого числа или бесконечности. Все они характеризуются полем порядка, заполненным единицами, и единичным старшим битом поля мантиссы. Для части этих значений формируется исключение недействительной операции.

Регистры

В FPU можно выделить три группы регистров:

  • Стек процессора: регистры R0..R7. Размерность каждого регистра: 80 бит.
  • Служебные регистры
    • Регистр состояния процессора SWR (Status Word Register) — информация о текущем состоянии сопроцессора. Размерность: 16 бит.
    • Управляющий регистр сопроцессора CWR (Control Word Register) — управление режимами работы сопроцессора. Размерность: 16 бит.
    • Регистр слова тегов TWR (Tags Word Register) — контроль над регистрами R0..R7 (например, для определения возможности записи). Размерность: 16 бит.
  • Регистры указателей
    • Указатель данных DPR (Data Point Register). Размерность: 48 бит.
    • Указатель команд IPR (Instruction Point Register). Размерность: 48 бит.

Система команд сопроцессора

Система включает около 80 команд. Их классификация:

  • Команды передачи данных
    • Вещественные данные
    • Целочисленные данные
    • Десятичные данные
    • Загрузка констант (0, 1, число Пи, log2(10), log2(e), lg(2), ln(2))
    • Обмен
    • Условная пересылка (Pentium II/III)
  • Команды сравнения данных
    • Вещественные данные
    • Целочисленные данные
    • Анализ
    • С нулём
    • Условное сравнение (Pentium II/III)
  • Арифметические команды
    • Вещественные данные: сложение, вычитание, умножение, деление
    • Целочисленные данные: сложение, вычитание, умножение, деление
    • Вспомогательные арифметические команды (квадратный корень, модуль, изменение знака, выделение порядка и мантиссы)
  • Трансцендентные команды
    • Тригонометрия: синус, косинус, тангенс, арктангенс
    • Вычисление логарифмов и степеней
  • Команды управления
    • Инициализация сопроцессора
    • Работа со средой
    • Работа со стеком
    • Переключение режимов

См. также

Примечания

  1. Intel 64 and IA-32 Architectures Software Developer’s Manual. Volume 2A and 2B: Instruction Set Reference. Order numbers #253666, #253667
  2. Intel 64 and IA-32 Architectures Software Developer’s Manual. Volume 1: Basic Architecture. Order number #253665
  3. AMD64 Architecture Programmer’s Manual. Volume 1: Application Programming. Publication number #24592

Read other articles:

Argali Status konservasi Hampir Terancam (IUCN 3.1)[1] Klasifikasi ilmiah Kerajaan: Animalia Filum: Chordata Kelas: Mamalia Ordo: Artiodactyla Famili: Bovidae Subfamili: Caprinae Genus: Ovis Spesies: O. ammon Nama binomial Ovis ammon(Linnaeus, 1758 Persebaran Argali atau domba gunung (Ovis ammon) adalah domba liar yang berhabitat asli di dataran tinggi di Asia Tengah, yakni di wilayah Tibet, Himalaya, dan Altai. Deskripsi Argali merupakan spesies domba liar terbesar. Tinggi...

 

Angela Tanoesoedibjo Wakil Menteri Pariwisata dan Ekonomi Kreatif Ke-2PetahanaMulai menjabat 25 Oktober 2019PresidenJoko WidodoWakil PresidenMa'ruf AminMenteriWishnutama (2019–20) Sandiaga Uno (sejak 2020) PendahuluSapta NirwandarPenggantiPetahanaWakil Kepala Badan Pariwisata dan Ekonomi Kreatif Ke-2PetahanaMulai menjabat 25 Oktober 2019PresidenJoko WidodoWakil PresidenMa'ruf AminKepalaWishnutama (2019–20) Sandiaga Uno (sejak 2020) PendahuluRicky Joseph PesikPenggantiPetah...

 

У этого термина существуют и другие значения, см. Окружная. «Окружная» Люблинско-Дмитровская линияМосковский метрополитен Район Тимирязевский, Марфино, Отрадное Округ Северный, Северо-Восточный Дата открытия 22 марта 2018 года[1] Проектное название «Юбилейная»[2] Т...

Keyakinan adalah sebuah sikap subyektif bahwa sesuatu atau proposisi itu benar.[1] Dalam epistemologi, para filsuf menggunakan istilah kepercayaan untuk merujuk pada sikap tentang dunia yang bisa benar atau salah.[2] Memercayai sesuatu berarti menganggapnya benar; misalnya, percaya bahwa salju itu putih sebanding dengan menerima kebenaran proposisi salju berwarna putih. Namun, memegang keyakinan tidak membutuhkan introspeksi aktif. Misalnya, hanya sedikit yang mempertimbangkan...

 

Questa voce sull'argomento edizioni di competizioni calcistiche è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Coupe de la Ligue 1996-1997 Competizione Coupe de la Ligue Sport Calcio Edizione 3ª Date dal 1º ottobre 1996al 12 aprile 1997 Luogo  Francia Risultati Vincitore  Strasburgo(1º titolo) Secondo  Bordeaux Semi-finalisti  Montpellier Monaco Statistiche Miglior&...

 

International organization Hague Conference on Private International Law  Member states  Other parties to HCCH conventionsAbbreviationHCCHFormation1893FounderTobias AsserTypeIntergovernmental organizationHeadquartersThe HagueMembership 91 members (90 member states and the European Union)Official language EnglishFrenchSpanish (from July 2024)[1]Secretary GeneralChristophe BernasconiBudget (2023–2024) € 5.0 million[2]Staff (2023) 31 staff members6 seconde...

Parable taught by Jesus of Nazareth according to the Gospel of Luke The Gospel of Luke, Minuscule 2444, 13th century The Parable of the Wedding Feast is one of the parables of Jesus and appears in the New Testament in Luke 14:7–14. It directly precedes the Parable of the Great Banquet in Luke 14:15–24.[1][2] In the Gospel of Matthew, the parallel passage to the Gospel of Luke's Parable of the Great Banquet is also set as a wedding feast (Matthew 22:1–14).[3] In N...

 

Hungarian footballer The native form of this personal name is Vanczák Vilmos. This article uses Western name order when mentioning individuals. Vilmos Vanczák Vanczák playing for FC Sion in 2012Personal informationFull name Vilmos VanczákDate of birth (1983-06-20) 20 June 1983 (age 40)Place of birth Miskolc, HungaryHeight 1.83 m (6 ft 0 in)Position(s) Full backYouth career0000–2000 Diósgyőri VTK2000–2001 Vasas SC2001–2002 Újpest FCSenior career*Years Team ...

 

西維珍尼亞 美國联邦州State of West Virginia 州旗州徽綽號:豪华之州地图中高亮部分为西維珍尼亞坐标:37°10'N-40°40'N, 77°40'W-82°40'W国家 美國加入聯邦1863年6月20日(第35个加入联邦)首府(最大城市)查爾斯頓政府 • 州长(英语:List of Governors of {{{Name}}}]]) • 副州长(英语:List of lieutenant governors of {{{Name}}}]])吉姆·賈斯蒂斯(R)米奇·卡邁克爾(...

  提示:此条目页的主题不是中華人民共和國最高領導人。 中华人民共和国 中华人民共和国政府与政治系列条目 执政党 中国共产党 党章、党旗党徽 主要负责人、领导核心 领导集体、民主集中制 意识形态、组织 以习近平同志为核心的党中央 两个维护、两个确立 全国代表大会 (二十大) 中央委员会 (二十届) 总书记:习近平 中央政治局 常务委员会 中央书记处 �...

 

American judge Roger J. Traynor23rd Chief Justice of CaliforniaIn officeSeptember 1, 1964 – February 2, 1970Appointed byPat BrownPreceded byPhil S. GibsonSucceeded byDonald R. WrightAssociate Justice of the California Supreme CourtIn officeAugust 13, 1940 – September 1, 1964Appointed byCulbert OlsonPreceded byPhil S. GibsonSucceeded byStanley Mosk Personal detailsBornRoger John TraynorFebruary 12, 1900Park City, Utah, U.S.DiedMay 14, 1983(1983-05-14) (aged 83)Berkel...

 

Estadio Panathinaikó LocalizaciónPaís  GreciaLocalidad Atenas, GreciaDirección Vasileos Konstantinou Avenue 116 35Coordenadas 37°58′06″N 23°44′28″E / 37.968333333333, 23.741111111111Detalles generalesSuperficie CéspedCapacidad 45 000[1]​ espectadoresEquipo diseñadorArquitecto Anastasios Metaxas, Ernst ZillerAcontecimientos PanateneasJuegos Olímpicos de Atenas 1896 Juegos Intercalados de 1906Olimpiada Mundial de la Canción (1968-1973)Tiro ...

Voce principale: Trasporti a Milano. Servizio ferroviario suburbano di MilanoServizio di trasporto pubblicoTreno della linea S6 in sosta a Milano Porta VeneziaTipoServizio ferroviario suburbano Stati Italia Apertura2004 Ultima estensione2024 Linee impiegate12  GestoreTrenordATM Vecchi gestoriTrenitalia, LeNord, TiLo Mezzi utilizzatiTSRTAFE.464+carrozze PRE.464+carrozze 2PE.464+Carrozza VivaltoATR 115-125Caravaggio[1]  N. stazioni e fermate124 Lunghezza403 km Passeggeri...

 

الرمز الألمانى لمقاومة الفاشية ، وهى واحدة من المنظمات العالمية الموجهة ضد الفاشية والشيوعية التحررية التي تم تنشيطها في مطلع القرن العشرين والقرن الحادي والعشرين معاداة الفاشية أو مناهضة الفاشية أو مكافحة الفاشية، (بالإيطالية: Anti-fascismo)‏ هي معارضة الأيديولوجيات والمجمو...

 

Voce principale: Tromsø Idrettslag. Tromsø I.L.Stagione 2020Sport calcio Squadra Tromsø Allenatore Gaute Helstrup 1. divisjon1º posto (promozione) Maggiori presenzeCampionato: Karlstrøm (29)Totale: Karlstrøm (29) Miglior marcatoreCampionato: Antonsen (11) Kitolano (11)Totale: Antonsen (11) Kitolano (11) 2019 2021 Si invita a seguire il modello di voce Questa voce raccoglie le informazioni riguardanti il Tromsø Idrettslag nelle competizioni ufficiali della stagione 2020. Indice 1 ...

1953 film The Road to KlockrikeDirected byGunnar SkoglundWritten byGunnar Skoglund Harry MartinsonBased onThe Road to Klockrike by Harry MartinsonProduced byRune WaldekranzStarringAnders Ek Edvin Adolphson Annika TretowCinematographySven NykvistEdited byGunnar SkoglundMusic byLille Bror SöderlundhProductioncompanySandrewsDistributed bySandrew-BaumanfilmRelease date 20 July 1953 (1953-07-20) Running time102 minutesCountrySwedenLanguageSwedish The Road to Klockrike (Swedish: Vä...

 

この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)出典検索?: 大気化学 – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2011年11月) 大気化学(たいきかがく、英語:atmospheric chemistry...

 

Untuk the coin, lihat 10 cent coin. Artikel ini berisi konten yang ditulis dengan gaya sebuah iklan. Bantulah memperbaiki artikel ini dengan menghapus konten yang dianggap sebagai spam dan pranala luar yang tidak sesuai, dan tambahkan konten ensiklopedis yang ditulis dari sudut pandang netral dan sesuai dengan kebijakan Wikipedia. (July 2020) Tencent Holdings Ltd.Tencent Seafront Towers di ShenzhenNama asli腾讯控股有限公司Nama latinTéngxùn Kònggǔ Yǒuxiàn GōngsīJenisPublikKode ...

Empowered redirects here. For the comic book series, see Empowered (comics). For the 2018 Spanish film, see Empowered (film). Autonomy and self-determination in people and communities Part of a series onDiscrimination Forms Institutional Structural Statistical Taste-based Attributes Age Caste Class Dialect Disability Genetic Hair texture Height Language Looks Mental disorder Race / Ethnicity Skin color Scientific racism Rank Sex Sexual orientation Species Size Viewpoint Social Aropho...

 

この記事は英語版の対応するページを翻訳することにより充実させることができます。(2023年10月)翻訳前に重要な指示を読むには右にある[表示]をクリックしてください。 英語版記事を日本語へ機械翻訳したバージョン(Google翻訳)。 万が一翻訳の手がかりとして機械翻訳を用いた場合、翻訳者は必ず翻訳元原文を参照して機械翻訳の誤りを訂正し、正確な翻訳にし�...