Какую функцию выполняет сопроцессор в эвм. Функции и принципы работы математического сопроцессора

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

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

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

Несмотря на то, что практически все процессоры, начиная с 486-го, оснащены встроенным сопроцессором, их быстродействие может изменяться. Исторически сложилось так, что сопроцессоры производства Intel работают быстрее, чем сопроцессоры AMD и Cyrix, однако в последнее время ситуация начинает изменяться.

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

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

Математические сопроцессоры называют ещё процессорами с плавающей запятой, потому что они особенно ярко проявляют свои возможности в этой области математики. Числа с плавающей запятой часто используются в научных расчетах и представляются, как правило, мантиссой и ординатой. Преимущество, получаемое от установки математического сопроцессора, зависит от того какие задачи решаются на компьютере. Согласно утверждению Intel сопроцессор может уменьшить время выполнения математических операций, таких как умножение, деление, возведение в степень на 80% и более. Скорость выполнения простых операций, таких как сложение и вычитание практически не уменьшается.

Конструктивно заложенные в микропроцессор сигналы, позволяют передавать работу сопроцессору и затем получать результаты обработки.

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

Микропроцессоры 8088, 80286, 80386 сконструированы так, что они позволяют использовать арифметические сопроцессоры 8087, 80287, 80387 фирмы "Intel"-соответственно. Более поздние модели микропроцессоров имеют встроенные сопроцессоры.

С практической точки зрения, производительность системы, касающейся подготовки текстов и ведения базы данных - функций, не требующих сложных математических расчётов, не может быть улучшена математическим сопроцессором. Сопроцессор и главный микропроцессор могут работать на разных тактовых частотах (от собственных тактовых генераторов).

Выполняемая программа должна сама определять наличие сопроцессора и после этого использовать написанные для него инструкции; в противном случае сопроцессор только потребляет ток и ничего не делает. Большинство современных программ, рассчитанных на применение сопроцессоров, обнаруживают его присутствие и используют предоставляемые возможности. Наиболее эффективно сопроцессоры используются в программах со сложными математическими расчетами: в электронных таблицах, базах данных, статистических программах и системах автоматизированного проектирования. В то же время при работе с текстовыми редакторами сопроцессор совершенно не используется.

Простым "целочисленным" процессорам для работы с вещественными числами и математическими операциями требуются соответствующие процедуры поддержки и время для их выполнения. Модуль операций с плавающей запятой поддерживает работу с ними на уровне примитивов -- загрузка, выгрузка вещественного числа (из специализированных регистров) или математическая операция над ними выполняется одной командой, за счёт этого достигается значительное ускорение таких операций. Внутри FPU числа хранятся в 80-битном формате с плавающей запятой, для записи же или чтения из памяти могут использоваться:

Вещественные числа в трёх форматах: коротком (32 бита), длинном (64 бита) и расширенном (80 бит).

Двоичные целые числа в трёх форматах: 16, 32 и 64 бита.

Упакованные целые десятичные числа (BCD) числа - длина максимального числа составляет 18 упакованных десятичных цифр (72 бита).

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

Деморализованные вещественные числа -- числа, которые меньше минимального нормализованного числа. При формировании такого значения в некотором регистре стека в соответствующем этому регистру теге регистра TWR формируется специальное значение (10);

Бесконечность (положительная и отрицательная), возникает при делении на нуль ненулевого значения, а также при переполнениях. При формированиитакого значения в некотором регистре стека в соответствующем этому регистру теге регистра TWR формируется специальное значение (10).

Нечисло, различают два вида нечисел:

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

Спокойные (тихие) нечисла. Сопроцессор может формировать спокойные нечисла в качестве реакции на определённые исключения, например число вещественной неопределённости.

Нуль - в формате с плавающей запятой, нуль также считается специальным значением.

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

Специальный процессор, который настроен на выполнение математических операций и реализует их во много раз быстрее, чем центральный процессор. Таким образом, была получена возможность наращивать производительность центрального процессора за счет специального модуля - математического сопроцессора. Не в пример центральному процессору, математический сопроцессор не держит под управлением основную массу цепей компьютера. Наоборот, вся деятельность математического сопроцессора определяется центральным процессором, который может посылать математическому сопроцессору команды на выполнение программ и формирование результатов. В обычном режиме центральный процессор выполняет все функции компьютера. И лишь, когда встречается задача, с которой лучше справится математический сопроцессор, ему выдаются данные и команды, а центральный процессор ожидает результаты. К таким задачам относятся, например, математические операции между вещественными числами (операции между числами с плавающей запятой), где числа представлены мантиссой и ординатой (десятичная степень числа, определяющая положение десятичной запятой). Если раньше, в компьютерах первых поколений (i80386, i80486) модуль математического сопроцессора устанавливался на материнскую плату в виде отдельного чипа, то в современных компьютерах использование математического сопроцессора, как отдельного чипа, не требуется, поскольку он уже встроен в центральный процессор. Преимущества, которые вы получаете от использования математического сопроцессора, зависят от того, какие задачи решаются на персональном компьютере.

Преимущества, которые получаются от установки математического сопроцессора, зависят от того, какие задачи решаются на вашем компьютере. Согласно Intel сопроцессор может уменьшить время выполнения математических операций, таких, как умножение, деление и возведение в степень на 80% и более. Скорость выполнения простых операций, таких, как сложение и вычитание, может быть совсем не уменьшена.

Сопроцессор - это специализированная интегральная схема, которая работает в содружестве с ЦП, но менее универсальна. В отличие от ЦП, сопроцессор не имеет счетчика команд. Сопроцессор предназначен для выполнения специфического набора функций, к примеру: выполнение операций с вещественными числами - математический сопроцессор, подготовка графических изображений и трехмерных сцен - графический сопроцессор, цифровая обработка сигналов - сигнальный сопроцессор и др.

Использование сопроцессоров с различной функциональностью позволяет решать проблемы широкого круга:

· обработка экономической информации;

· моделирование;

· графические преобразования;

· промышленное управление;

· системы числового управления;

· роботы;

· навигация;

· сбор данных и др.

· Кэш-память

Кэш-память представляет собой быстродействующее ЗУ, размещенное на одном кристалле с ЦП или внешнее по отношению к ЦП. Кэш служит высокоскоростным буфером между ЦП и относительно медленной основной памятью. Идея кэш-памяти основана на прогнозировании наиболее вероятных обращений ЦП к оперативной памяти.

В случае если ЦП обратился к какому-либо объекту оперативной памяти, то с высокой вероятностью он вскоре снова обратится к этому объекту. Примером этой ситуации должна быть код или данные в циклах.

Важно заметить, что для согласования содержимого кэш-памяти и оперативной памяти используют три метода записи:

· Сквозная запись (write through) - одновременно с кэш-памятью обновляется оперативная память.

· Буферизованная сквозная запись (buffered write through) - информация задерживается в кэш-буфере перед записью в оперативную память и переписывается в оперативную память в те циклы, когда ЦП к ней не обращается.

· Обратная запись (write back) - используется бит изменения в поле тега, и строка переписывается в оперативную память только в том случае, в случае если бит изменения равен 1.

В структуре кэш-памяти выделяют два типа блоков данных:

· память отображения данных (собственно сами данные, дублированные из оперативной памяти);

· память тегов (признаки, указывающие на расположение кэшированных данных в оперативной памяти).

Пространство памяти отображения данных в кэше разбивается на строки - блоки фиксированной длины (к примеру, 32, 64 или 128 байт). Каждая строка кэша может содержать непрерывный выровненный блок байт из оперативной памяти. Какой именно блок оперативной памяти отображен на данную строку кэша, определяется тегом строки и алгоритмом отображения. По алгоритмам отображения оперативной памяти в кэш выделяют три типа кэш-памяти:

· полностью ассоциативный кэш;

· кэш прямого отображения;

· множественный ассоциативный кэш.

Для полностью ассоциативного кэша характерно, что кэш-контроллер может поместить любой блок оперативной памяти в любую строку кэш-памяти.

В этом случае физический адрес разбивается на две части: смещение в блоке (строке кэша) и номер блока. При помещении блока в кэш номер блока сохраняется в теге соответствующей строки. Когда ЦП обращается к кэшу за необходимым блоком, кэш-промах будет обнаружен только после сравнения тегов всœех строк с номером блока.

Одно из базовых достоинств данного способа отображения - хорошая утилизация оперативной памяти, т.к. нет ограничений на то, какой блок должна быть отображен на ту или иную строку кэш-памяти. К недостаткам следует отнести сложную аппаратную реализацию этого способа, требующую большого количества компонент схемотехники (в основном компараторов), что приводит к увеличению времени доступа к такому кэшу и увеличению его стоимости.

Кэш прямого отображения (или одновходовый ассоциативный кэш). В этом случае адрес памяти (номер блока) однозначно определяет строку кэша, в которую будет помещен данный блок. Физический адрес разбивается на три части: смещение в блоке (строке кэша), номер строки кэша и теᴦ. Тот или иной блок будет всœегда помещаться в строго определœенную строку кэша, при крайне важно сти заменяя собой хранящийся там другой блок. Когда ЦП обращается к кэшу за необходимым блоком, для определœения удачного обращения или кэш-промаха достаточно проверить тег лишь одной строки.

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

Множественный ассоциативный кэш (или частично-ассоциативный кэш). Это компромиссный вариант между первыми двумя алгоритмами.

При этом способе организации кэш-памяти строки объединяются в группы, в которые могут входить 2/4/8/: строк. В соответствии с количеством строк в таких группах различают 2-входовый, 4-входовый и т.п. ассоциативный кэш. При обращении к памяти физический адрес разбивается на три части: смещение в блоке (строке кэша), номер группы (набора) и теᴦ. Блок памяти, адрес которого соответствует определœенной группе, должна быть размещен в любой строке этой группы, и в теге строки размещается соответствующее значение. Очевидно, что в рамках выбранной группы соблюдается принцип ассоциативности. С другой стороны, тот или иной блок может попасть только в строго определœенную группу, что перекликается с принципом организации кэша прямого отображения. Для того чтобы процессор смог идентифицировать кэш-промах, ему нужно будет проверить теги лишь одной группы (2/4/8/: строк).

Сопроцессор- специальная интегральная схема, которая работает в содружестве с

главным процессором. Обычно сопро цессор настраивается на выполнение

какой-нибудь специфи ческие функции - математической операции или графического

представления. И эту операцию сопроцесссор может реализо вать во много раз

быстрее, чем главный процессор. Таким об разом компьютеp с сопроцессором

работает намного проворнее.

Сопроцессор - это обычный микропроцессор, но не столь универсальный. Обычно

сопроцессор разрабатывается как спе циальное устройство по реализации конкретно

определенной функции. Так репертуар сопроцессора ограничен, он может ре

ализовывать выделенные для него функции как никто другой.

Как и любой другой микpопpоцессоp, сопроцессор работа ет по тем же принципам. Он

просто выполняет программы со держащие последовательность микpопpоцессоpных

команд. Соп роцессор не держит под управлением основную массу цепей компьютеpа.

В обычном режиме микpопpоцессоp выполняет все функции компьютеpа. И лишь когда

встречается задача с которой лучше справится сопроцессор, ему передаются данные

и команды уп равления, а центральный процессор ожидает результаты.

Сопроцессоры, большей частью использующиеся в PC, яв ляются математическими

сопроцессорами. В математике они специализируются по умножению и делению чисел.

Математические сопроцессоры называют ещё процессорами с плавающей запятой,

потому что они особенно ярко проявляют свои возможности в этой области

математики. Числа с плаваю щей запятой часто используются в научных расчетах и

представляются, как правило, мантиссой и ординатой.

Преимущество, получаемое от установки математического сопроцессора, зависит от

того какие задачи решаются на компьютере. Согласно утверждению Intel сопроцессор

может уменьшить время выполнения математических операций, таких как

умножение,деление, возведение в степень на 80% и более.

Скорость выполнения простых операций, таких как сложение и вычитание практически

не уменьшается.

С практической точки зрения, производительность систе мы, касающейся подготовки

текстов и ведения базы данных - функций, не требующих сложных математических

расчётов, не может быть улучшена математическим сопроцессором.

Сопроцессор и главный микропроцессор могут работать на разных тактовых частотах

(от собственных тактовых генерато ров).

Когда отношение частот микропроцессора и сопроцессора выражается целым числом,

они работают синхронно и могут пе редавать информацию друг другу оптимальным

образом. Несинх ронизированая работа требует, чтобы один или другой из них

ожидал завершения цикла своего партнёра, что влечёт за со бой появление

небольшого, но реального периода ожидания.

Семейство сопроцессоров Intel составляют: 8087, 80287, 80387, 80387SX.

Каждый из них специально разработан для работы с соот ветствующим

микропроцессором главного семейства Intel. Каж дый из этих четырёх имеет свои

характерные особенности. Ог раничения по единовременной обработке информации в

8, 16, 32 бит остались далеко позади. Сопроцессоры Intel брабаты вают сразу 80

бит. Каждый сопроцессор содержит восемь 80-битных регистров, в которых он и

осуществляет свои вы числения. Они работают с 32-, 64- или 80-битными числами с

плавающей запятой; 32- или 64-битными целыми числами. Как правило сопроцессоры

работают как придатки центрального.

Оба процессора висят на адресно-информационных линиях компьютера и выполняют

каждый свои команды по мере их появления в программе. Сопроцессоры могут

выполнять свои функции параллельно с работой центрального процессора, то есть

оба мозга в данном случае думают одновременно, потому что каждый из них читает

свои команды прямо с шины, и цент ральному процессору не приходится прерываться,

чтобы выдать команду сопроцессору.

Этот сопроцессор бал разработан специально для исполь зования с Intel 8086,

8088, 80186, 80188. Поэтому у него идентичные с этими микропроцессорами

возможности по адреса ции и восприятию информации. Причём этот сопроцессор сам

настраивается на размер шины данных - восьми или шестнадца тибитную (8086 или

8088 семейства). Он устанавливается в стандартный 40-контактный разъём и

увеличивает список ко манд компьютера на 68 едениц.

Существуют три модификации этого сопроцессора, разли чающихся по частоте: 5, 8,

Точно так же, 80286 является расширением 8086, 80287 является развитием 8087.

Главным достоинством 80287 служит возможность функционировать как в реальном,так

и в защищен ном режиме 80286 микропроцессора. Он имеет возможность ад ресации ко

всем 16М памяти.

80287 почти полностью совместим с 8087 и может исполь зоватьпочти всё

программное обеспечение последнего. Главное функциональное отличие этих

сопроцессоров в способе обра ботки сбойных ситуаций. При выявлении ошибки эти

чипы могут вести себя по разному. Впрчем программное обеспечение может

скомпенсировать эти расхождения.

80287 размещается в 40-контактном DIP-корпусе. Но не в пример своему младшему

собрату, 80287 может работать с от личной от центрального микропроцессора

тактовойчастотой.

микропроцессора, в него встроена цепь делите ля, которая уменьшает внутреннюю

частоту в три раза.

Используя свой собственный генератор, 80287 может су щественно повысить свою

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

Так же, как и у 8087, 80287 различают четыре модифика ции, различающихся по

80287 совместим с 80386 микропроцессором. Однако они работают на разных

частотах, и, следовательно, требуется специальный интерфейс для доступа к шине

данных 80386. Бо лее того, так как 80287 - 16-битный чип, все взаимосвязи с

80386 должны осуществляться 16-битными словами, что потен циально уменьшает

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

80387 и 80387SX

Точно так же, как Intel, учтя уроки прошлого, произвёл 80386, 80387 стал

дальнейшей разработкой 80287 сопроцессо ра. Оставаясь командно совместимым с

80287, 80387 увеличил скорость манипуляций данными. Но опять-таки имелись расхож

дения в обработке ошыбок. Зато возможности 80387 были боль ше - он реализовывал

все трансцендентные и логарифмические функции.

80387SX - всесторонне похож на 80387, но предназнача ется для работы на

16-битной шине 80386SX вместо 32-битной шины данных.

80387 и 80387SX могут выполнять все программы для 80287. Обратное не

эквивалентно. Главной проблемой 387-х являются немного отличающиеся результаты

вычислений трансцендентальной функции от 80287.

80387 работает на той же частоте что и центральный процессор. Имеются

соответствующие модификации этого сопро цессора вплоть до 25 Мгц.

Различают следующие виды сопроцессоров:

  • математические сопроцессоры общего назначения, обычно ускоряющие вычисления с плавающей запятой ,
  • сопроцессоры ввода-вывода (например - Intel 8089), разгружающие центральный процессор от контроля за операциями ввода-вывода или расширяющие стандартное адресное пространство процессора,
  • сопроцессоры для выполнения каких-либо узкоспециализированных вычислений.

Сопроцессоры могут входить в набор логики, разработанный одной конкретной фирмой (например, Intel выпускала для процессоров 8086 и 8088 сопроцессоры и 8089, Motorola - сопроцессор Motorola 68881) или выпускаться сторонним производителем (например, Weitek (англ.) для Motorola m68k и 1067 для Intel 80286).

Сопроцессор в программировании

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

Также бывают периферийные процессоры, предназначенные для управления периферийными устройствами и разгрузки центрального процессора, а именно:

Напишите отзыв о статье "Сопроцессор"

Примечания

См. также

Ссылки

  • whatis.techtarget.com/definition/coprocessor
  • www.webopedia.com/TERM/C/coprocessor.html
  • www.pcmag.com/encyclopedia/term/46625/math-coprocessor
  • www.trevormarshall.com/old_papers/Approaching-Desktop-Supercomputer.pdf 1990 - Computing coprocessors, early 32 bit computing coprocessors
  • Hansen, Paul Mark, November 1988

Отрывок, характеризующий Сопроцессор

Княжна Марья писала, что она была в отчаянии от происшедшего между ними недоразумения. Какие бы ни были чувства ее отца, писала княжна Марья, она просила Наташу верить, что она не могла не любить ее как ту, которую выбрал ее брат, для счастия которого она всем готова была пожертвовать.
«Впрочем, писала она, не думайте, чтобы отец мой был дурно расположен к вам. Он больной и старый человек, которого надо извинять; но он добр, великодушен и будет любить ту, которая сделает счастье его сына». Княжна Марья просила далее, чтобы Наташа назначила время, когда она может опять увидеться с ней.
Прочтя письмо, Наташа села к письменному столу, чтобы написать ответ: «Chere princesse», [Дорогая княжна,] быстро, механически написала она и остановилась. «Что ж дальше могла написать она после всего того, что было вчера? Да, да, всё это было, и теперь уж всё другое», думала она, сидя над начатым письмом. «Надо отказать ему? Неужели надо? Это ужасно!»… И чтоб не думать этих страшных мыслей, она пошла к Соне и с ней вместе стала разбирать узоры.
После обеда Наташа ушла в свою комнату, и опять взяла письмо княжны Марьи. – «Неужели всё уже кончено? подумала она. Неужели так скоро всё это случилось и уничтожило всё прежнее»! Она во всей прежней силе вспоминала свою любовь к князю Андрею и вместе с тем чувствовала, что любила Курагина. Она живо представляла себя женою князя Андрея, представляла себе столько раз повторенную ее воображением картину счастия с ним и вместе с тем, разгораясь от волнения, представляла себе все подробности своего вчерашнего свидания с Анатолем.
«Отчего же бы это не могло быть вместе? иногда, в совершенном затмении, думала она. Тогда только я бы была совсем счастлива, а теперь я должна выбрать и ни без одного из обоих я не могу быть счастлива. Одно, думала она, сказать то, что было князю Андрею или скрыть – одинаково невозможно. А с этим ничего не испорчено. Но неужели расстаться навсегда с этим счастьем любви князя Андрея, которым я жила так долго?»
– Барышня, – шопотом с таинственным видом сказала девушка, входя в комнату. – Мне один человек велел передать. Девушка подала письмо. – Только ради Христа, – говорила еще девушка, когда Наташа, не думая, механическим движением сломала печать и читала любовное письмо Анатоля, из которого она, не понимая ни слова, понимала только одно – что это письмо было от него, от того человека, которого она любит. «Да она любит, иначе разве могло бы случиться то, что случилось? Разве могло бы быть в ее руке любовное письмо от него?»
Трясущимися руками Наташа держала это страстное, любовное письмо, сочиненное для Анатоля Долоховым, и, читая его, находила в нем отголоски всего того, что ей казалось, она сама чувствовала.

Математический сопроцессор - это специальный модуль для выполнения операций с плавающей запятой, который работает в содружестве с центральным процессором.
Математический сопроцессор не является обязательным элементом персонального компьютера. От него, в принципе, можно отказаться. Так раньше и поступали из соображений экономии.
Однако, при решении задач, которые требовали выполнения большого количества математических вычислений, например, при научных или инженерных расчетах, остро встал вопрос о повышении производительности компьютера.
Для этого решили использовать дополнительный специальный процессор, который "настроен" на выполнение математических операций и реализует их во много раз быстрее, чем центральный процессор. Таким образом, была получена возможность наращивать производительность центрального процессора за счет специального модуля - математического сопроцессора.
Не в пример центральному процессору, математический сопроцессор не держит под управлением основную массу цепей компьютера. Наоборот, вся деятельность математического сопроцессора определяется центральным процессором, который может посылать математическому сопроцессору команды на выполнение программ и формирование результатов. В обычном режиме центральный процессор выполняет все функции компьютера. И лишь, когда встречается задача, с которой лучше справится математический сопроцессор, ему выдаются данные и команды, а центральный процессор ожидает результаты. К таким задачам относятся, например, математические операции между вещественными числами (операции между числами с плавающей запятой), где числа представлены мантиссой и ординатой (десятичная степень числа, определяющая положение десятичной запятой).
Если раньше, в компьютерах первых поколений (i80386, i80486) модуль математического сопроцессора устанавливался на материнскую плату в виде отдельного чипа, то в современных компьютерах использование математического сопроцессора, как отдельного чипа, не требуется, поскольку он уже встроен в центральный процессор.
Преимущества, которые вы получаете от использования математического сопроцессора, зависят от того, какие задачи решаются на вашем компьютере.
Согласно данным компании INTEL, математический сопроцессор может уменьшить время выполнения математических операций, таких, как умножение, деление и возведение в степень, на 80 процентов и более. Скорость выполнения простых математических операций, таких, как сложение и вычитание, не изменяется.
С практической точки зрения, производительность персонального компьютера, касающаяся подготовки текстов и ведения базы данных (функций, не требующих сложных математических расчетов), не может быть улучшена математическим сопроцессором. Однако, вы получите ощутимый прирост производительности при проведении научных и инженерных расчетов, обработке статистических данных, а также при работе с графикой, так как последняя требует интенсивных математических расчетов.