Слайд 1Сопроцессор
Лекция № 6
Взаимодействие ПЭВМ и сопроцессора
Особенности программирования ПЭВМ
с сопроцессором
Форматы данных, система команд
Слайд 2Сопроцессор
Сопроцессор – это специализированная интегральная схема,
которая работает в содружестве с ЦП, но менее универсальна.
Принципиальное отличие процессора от сопроцессора – только у ЦП есть счетчик команд.
Способы обмена информацией между ЦП и сопроцессором:
Через прямое соединение входных и выходных портов.
С обменом через память.
Слайд 3Математический сопроцессор
Предназначен для:
Быстрого выполнения арифметических операций с
плавающей точкой.
Содержит набор констант: 0, 1, log210, log2e, loge2,... .
Может
выполнять трансцендентные операции: tg, arctg, 2x-1, ylog2x, ....
Слайд 4Форматы чисел
с плавающей точкой
Одинарная точность – 4 байта.
Двойная точность
– 8 байт.
Тройная (расширенная) точность – 10 байт
S
Порядок
Мантисса
1 бит
8
бит
23 бита
S
Порядок
Мантисса
1 бит
11 бит
52 бита
S
Порядок
Мантисса
1 бит
15 бит
64 бит
Слайд 5Структура сопроцессора 8087
Регистр управления
Регистр состояния
0
15
Управление
интерфейсом
Команда
Очередь
команд
Указатель команды
Указатель данных
0
31
Блок управления
АD15-0
А19-16
S2-0
АЛУ для
порядка
числа
Тег
0
1
Сдвигатель
АЛУ
для
мантиссы
Регистровый
стек
79
0
R0
R1
R7
Операционный блок
Слайд 6Структура сопроцессора 8087
В 1980 году
сопроцессор 8087 был реализован как отдельный элемент по стандарту института
электрических и электронных разработок IEEE.
Регистр управления – содержит биты масок особых случаев (маска переполнения, деления на 0).
PC – поле управления точностью (8,9 биты)
11- округление до расширенной точности (по умолчанию);
10 – округление до двойной точности;
00 – округление до одинарной точности.
RC – поле управления округлением (10,11 биты)
00 – округление к ближайшему (по умолчанию).
01 – округление к +∞ .
10 – округление к -∞.
11 – округление к 0.
Слайд 7 Регистр состояния – флаги особых
случаев.
ST (11-13 биты) – задается вершина стека.
B (15 бит) –
бит занятости:
1 – сопроцессор выполняет определенную команду;
0 – сопроцессор свободен.
Указатель команд (данных) – содержат адреса последней команды и ее операнда.
Тег (регистр признаков) – характеризует содержимое соответствующих целочисленных регистров.
00 – в регистре находится действительное число;
01 – нулевое число в регистре;
10 – недействительное число;
11 – пустой регистр.
Слайд 8Сопроцессоры фирмы Intel
Схема сопроцессора 8087 делится на
2 устройства:
устройство шинного интерфейса;
устройство с плавающей точкой.
Сопроцессор 80287 был создан в 1985 году, изменения произошли только в устройстве шинного интерфейса. В отличии от 8087сопроцессор 80287 не имеет доступа к ША, поэтому все обращения к памяти выполняет ЦП.
В сопроцессоре 80387 изменения произошли в устройстве с плавающей точкой в обработке ошибок, также был реализован больший диапазон трансцендентных функций.
Слайд 9Набор регистров блока FPU Pentium
R7
R0
0
63
64
77
78
79
0
1
0
15
0
47
Знак
Порядок
Мантисса
Тег
Регистр управления
Регистр состояния
Слово тегов
Указатель команды
Указатель данных
Слайд 10Блок FPU Pentium
Блок FPU может:
выполнять
одну операцию с плавающей точкой в каждом такте;
получать и одновременно
выполнять 2 команды с плавающей точкой , одной их которых должна быть команда обмена.
Команды с плавающей точкой проходят по целочисленному конвейеру (обычно только по U-конвейеру – 5 ступеней) и передаются на исполнительные ступени конвейера FPU (3 ступени).
Устройства целочисленных вычислений и вычислений с плавающей точкой в конвейерах работают независимо и одновременно.
Слайд 11Вещественные форматы данных
Нечисла - специальные значения,
существующие только в вещественных форматах.
Они имеют
смещенный порядок из всех единиц, любой знак, любую мантиссу.
Система команд
Код операции всех команд сопроцессора начинается с 5 бит: 11011, которые соответствуют КОП ESC в ЦП 80286.
Мнемоника команд начинается с буквы «F»:
FIST
FADD
Слайд 12Особенности программирования ЦП с сопроцессором
Обычно программист не думает о параллельной
работе ЦП и сопроцессора. Но есть исключения:
FIST I; (запомнить в память I)
MOV AX, I
ЦП 80286 начнет выполнять команду MOV раньше, чем 80287 закончит FIST, и в регистр AX будет передано неверное значение.
FIST I
FADD ST(3)
MOV AX, I
ЦП 80286, встретив FADD, должен ожидать завершение FIST.
Задача синхронизации процессоров возникает, когда 287 обращается к ячейкам памяти, к которым впоследствии обращается и 80286. Во всех случаях она решается вставкой FWAIT между подозрительными командами 287 и 286.