Опубликован: 18.05.2006 | Уровень: для всех | Доступ: платный | ВУЗ: Ульяновский государственный университет
Лекция 8:

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

< Лекция 7 || Лекция 8: 123 || Лекция 9 >
Аннотация: В этой лекции речь идет о способах обмена информацией между ЦП и сопроцессором, о функциях математического сопроцессора и особенностях программирования ПЭВМ с сопроцессором. Рассматривается структура сопроцессоров семейства Intel x87 и блока вещественной арифметики (FPU) процессоров Pentium, а также организация сопроцессорного интерфейса ЦП семейства Motorola MC680х0. Цель: познакомить с основными принципами организации сопроцессоров, сформировать умения и навыки, необходимые для понимания работы систем с сопроцессорами.
Ключевые слова: интегральная схема, математический сопроцессор, обработка сигналов, log, IEEE, electronic engineering, standard, binary, floating-point arithmetic, вещественное число, знаковый бит, экспонента, мантисса, single precision, extended precision, nan, IA-32, floating point, FPU, вещественная арифметика, интеграция, суперскалярная архитектура, команда, ПО, ступень конвейера, процессор, MMX, SSE, SSE2, базовая, программная модель, стек, слово, регистр управления, регистр состояния, указатель команд, указатель, доступ, ST, поле, TOS, инкремент, значение, регистр, программирование, байт, переполнение, потеря точности, деление, денормализация, операции, PC, точность, тег, действительное число, информация, группа, сложение, целое число, исключение, средство синхронизации, фирма, интерфейс, архитектура, обмен информацией, CIR, производительность, coprocessor, interface, регистр команд, регистр адреса

Сопроцессоры. Способы обмена информацией между ЦП и сопроцессором

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

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

  • обработка экономической информации;
  • моделирование;
  • графические преобразования;
  • промышленное управление;
  • системы числового управления;
  • роботы;
  • навигация;
  • сбор данных и др.

Можно выделить два способа обмена информацией между ЦП и сопроцессором:

  • прямое соединение входных и выходных портов (ЦП имеет специальный интерфейс для взаимодействия с сопроцессором);
  • с обменом через память (обмен информацией между ЦП и сопроцессором происходит благодаря доступу сопроцессора к оперативной памяти через системную магистраль).

Математический сопроцессор: основные функции

Один из наиболее распространенных типов сопроцессоров - математический сопроцессор. Математический сопроцессор предназначен для быстрого выполнения арифметических операций с плавающей точкой, предоставления часто используемых вещественных констант ( \pi, log210, log2e, ln2, :), вычисления тригонометрических и прочих трансцендентных функций (tg, arctg, log, ...).

Большинство современных математических сопроцессоров для представления вещественных чисел используют стандарт IEEE 754-1985 " IEEE1Institute of Electrical and Electronics Engineers - Институт инженеров по электротехнике и электронике Standard for Binary Floating-Point Arithmetics". Старший разряд двоичного представления вещественного числа всегда кодирует знак числа. Остальная часть разбивается на две части: экспоненту и мантиссу. Вещественное число вычисляется как: (-1)S·2E·M, где S - знаковый бит числа, E - экспонента, M - мантисса. Если 1<=M<2, то такое число называется нормализованным. При хранении нормализованных чисел сопроцессор отбрасывает целую часть мантиссы (она всегда 1), сохраняя лишь дробную часть. Экспонента кодируется со сдвигом на половину разрядной сетки, таким образом, удается избежать вопроса о кодировании знака экспоненты. Т.е. при 8-битной разрядности экспоненты код 0 соответствует числу -127, 1 - числу -126, ..., 255 числу +126 (экспонента вычисляется как код 127).

Стандарт IEEE-754 определяет три основных способа кодирования (типа) вещественных чисел.

Таблица 8.1. Типы (способы кодирования) вещественных чисел
Тип Диапазон значений(по модулю) Двоичное представление
вещественное ординарной точности (single precision) - 32 бит 1,18·10-38... 3,40·1038

вещественное двойной точности (double precision) - 64 бит 2,23·10-308... 1,79·10308

вещественное расширенной точности (extended precision) - 80 бит 3,37·10-4932... 1,18·104392

Приведем пример кодирования вещественного числа 178,625:

178,62510 = 128 + 32 + 16 + 2 + 0,5 + 0,125 = 
= 1·27 + 0·26 + 1·25 + 1·24 + 
+ 0·23 + 0·22 + 1·21 + 0·20 + 
+ 1·2-1 + 0·2-2 + 1·2-3 = 10110010,1012

Для представления этого числа в соответствии с IEEE-754 его нужно нормализовать (привести в экспоненциальный вид):

1,78625E102 = 1,0110010101E2111

В формате вещественного числа одинарной точности оно будет представлено так:


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

  • нормализованные вещественные числа со знаком;
  • денормализованные вещественные числа со знаком;
  • ноль со знаком;
  • бесконечность со знаком;
  • нечисла (NaN - not a number).
Таблица 8.2. Представление чисел и нечисел на примере IEEE-754 single precision
Тип Двоичное представление
Ноль со знаком

Денормализованное вещественное число со знаком

Нормализованное вещественное число со знаком

Бесконечность со знаком

Нечисло

< Лекция 7 || Лекция 8: 123 || Лекция 9 >
Виктория Монахова
Виктория Монахова
Евгений Коваленко
Евгений Коваленко
Сергей Бурнышев
Сергей Бурнышев
Россия
Леонид Сустретов
Леонид Сустретов
Россия, Аксайский р-н