Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 курс / Лекции / Лекция 25 - Архитектура и программирование сопроцессора.ppt
Скачиваний:
40
Добавлен:
18.02.2023
Размер:
539.14 Кб
Скачать

Лекция 25

Архитектура и программирование сопроцессора

Возможности сопроцессора

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

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

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

Обработка вещественных чисел из диапазона ±(3.37E-4932 … 1.18E+4932).

Архитектура сопроцессора

Восемь регистров R0 – R7, составляющих программную модель сопроцессора – стек сопроцессора. Размерность каждого регистра – 80 бит.

Три служебных регистра:

регистр состояния сопроцессора – swr (Status Word Register) – отражает информацию о текущем состоянии сопроцессора;

управляющий регистр сопроцессора – cwr (Control Word Register)

– управляет режимами работы сопроцессора;

регистр слова тегов – twr (Tag Word Register) – используется для контроля за состоянием каждого из регистров R0 – R7.

Два регистра указателей – данных dpr (Data Point Register) и команд ipr (Instruction Point Register). Они предназначены для запоминания информации об адресе команды, вызвавшей исключительной ситуации и адресе ее операнда.

Регистры сопроцессора

 

 

Регистры стека сопроцессора R0 – R7

 

 

Регистр тегов

 

 

Знак

Порядок

Мантисса

 

 

 

twr

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R0

 

 

 

 

 

 

 

 

0

 

R1

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

R2

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

R3

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

R4

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

 

R5

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

R6

 

 

 

 

 

 

 

 

12

 

 

 

 

 

 

 

 

 

R7

 

 

 

 

 

 

 

 

14

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

79

78

64

63

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Регистр состояния SWR

 

c3

top

c2

c1

c0

es

sf

pe

ue

oe

ze

de

ie

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

14

13 11

10

9

8

7

6

5

4

3

2

1

0

IE (Invalidate operation error) – недействительная операция,

DE (Denormalized operand error) – денормализованный операнд,

ZE (divide by zero Error) – ошибка деления на нуль,

OE (Overflow Error) – ошибка переполнения,

UE (Underflow Error) – ошибка антипереполнения,

PE (Precision Error) – ошибка точности,

SF (Stack Fault) – ошибка работы стека сопроцессора,

ES (Error Summary) – суммарная ошибка работы сопроцессора,

C0 – C3 (Condition Code) – коды условия,

TOP – указатель регистра текущей вершины стека.

Регистр управления CWR

 

 

 

RC

 

PC

 

 

P

U

O

Z

D

I

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

12

11

10

9

8

7

6

5

4

3

2

1

0

PC (Precision Control) – поля управления точность:

00 – длина мантиссы 24 бита,

10 – длина мантиссы 53 бита,

11 – длина мантиссы 64 бита.

RC (Rounding Control) – поля управления округлением:

00 – значение округляется к ближайшему числу;

01 – значение округляется в меньшую сторону;

10 – значение округляется в большую сторону;

11 – производится отбрасывание дробной части.

Биты P, U, O, Z, D, I – составляют маску исключений. Если бит в маске установлен в единицу, то обработку соответствующей исключительной ситуации осуществляет сопроцессор. В противном случае – генерируется аппаратное прерывание ошибки сопроцессора, и запускается обработчик ОС или пользователя.

Регистр тегов TWR

Возможны следующие значения в полях регистра тегов:

00 – регистр стека сопроцессора занят допустимым ненулевым значением.

01 – регистр стека сопроцессора содержит нулевое значение.

10 – регистр стека сопроцессора содержит одно из специальных численных значений.

11 – регистр пуст и в него можно производить запись.

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

Сопроцессор может работать со следующими типами данных:

двоичные целые числа – 16, 32 и 64 бита;

упакованные целые десятичные числа (BCD) – максимальная длина 18 упакованных десятичных цифр (9 байт);

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

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

Специальные численные значения:

денормализованные значения – это числа меньшие минимального нормализованного числа для каждого вещественного формата, поддерживаемого сопроцессором;

нуль;

положительная и отрицательная значения бесконечности;

нечисла;

неопределенности и неподдерживаемые форматы.

Форматы вещественных

 

чисел

Короткий

Длинный

Расширенный

Формат

 

 

 

 

 

Длина числа (бит)

32

64

80

 

Размерность мантиссы

24

53

64

 

Диапазон значений

1E-38 …

1E-308 …

1E-4952 …

 

 

1E+38

1E+308

1E+4932

Размерность характеристики q

8

11

15

 

Значение фиксированного

+127

+1023

+16383

 

смещения

 

 

 

 

Диапазон характеристик q

0…255

0…2047

0…32767

Диапазон порядков p

-126…+127

-1022…

-16382…+16383

 

 

 

+1023