Архитектура и программирование сопроцессора. Машинные форматы вещественных чисел

Страницы работы

Фрагмент текста работы

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

МАШИННЫЕ ФОРМАТЫ ВЕЩЕСТВЕННЫХ ЧИСЕЛ

Для работы с вещественными числами компьютер приводит их к следующему нормализованному виду:   ± 1.m2*2p , где m2 – двоичная мантисса числа, p – порядок и хранит их в следующем представлении:

Знак

Характеристика

Нормализованная мантисса

Характеристика = Смещение + Порядок. (Характеристика целое неотрицательное число).

ФОРМАТ float (одинарный)

Смещение = 7Fh      1 – скрытый разряд

Знак

Характеристика

Нормализованная мантисса

31

30

23

22

0

Биты

ФОРМАТ double (двойной)

Смещение = 3FFh             1 – скрытый разряд

Знак

Характеристика

Нормализованная мантисса

63

62

52

51

0

Биты

ФОРМАТ longdouble (расширенный)

Смещение = 3FFFh                Скрытого разряда нет

Знак

Характеристика

Нормализованная мантисса

79

78

64

63

0

Биты

В памяти вещественные числа, также как и целые, хранятся в перевернутом виде по принципу "младший байт по младшему адресу". Размер пространства, которое компьютер использует для хранения Характеристики и Мантиссы, установлен стандартом IEEE 724-1985 и поддерживается всеми современными компьютерными архитектурами.

ТИПЫ ДАННЫХ СОПРОЦЕССОРА

ОБЫЧНЫЕ ДАННЫЕ

Типы данных

Длина (бит)

Диапазон

Директива

Целое слов

16

-32768…32767

m16i  dw  12345

Короткое целое

32

-2147483648…2147483647

m32i  dd  1234567

Длинное целое

64

-9223372036854775808…

9223372036854775807

m64i  dq  1234567

Упакованное двоично-десятичное

80

-999999999999999999…

999999999999999999

bdu  dt  12345678

Короткое вещественное

32

1.175494351e-38…

3.402823466e+38

m32  dd  12.34567

m32  dd  12.34e4

Длинное вещественное

64

2.225073858507201e-308…

1.7976931348623158e+308

m64  dq  12.34567

m64  dq  12.34e7

Расширенное вещественное

80

3.3621031431120935063e-4932…

1.189731495357231765e+4932

m80  dt  12.34567

m80  dt  12.34e5

ОСОБЫЕ ЧИСЛА

·  Положительный ноль – все биты числа сброшены в ноль;

·  Отрицательный ноль – знаковый бит равен 1, остальные биты числа сброшены в ноль;

·  Положительная бесконечность – знаковый бит равен 0, все биты характеристики установлены в 1, а биты мантиссы сброшены в 0;

·  Отрицательная бесконечность – знаковый бит равен 1, все биты характеристики установлены в 1, а биты мантиссы сброшены в 0;

·  Денормализованные числа – все биты характеристики сброшены в 0. Эти числа позволяют представлять очень маленькие числа при вычислениях с расширенной точностью;

·  Неопределенность – знаковый бит равен 1, все биты характеристики установлены в 1, первый бит мантиссы равен 1 (для 80-разрядных чисел первые два бита равны 11);

·  Не-числа типа SNAN (сигнальное) – все биты характеристики установлены в 1, первый бит мантиссы равен 0 (для 80-разрядных чисел первые два бита равны 10), остальные биты мантиссы могут содержить 0 и 1;

·  Не-числа типа QNAN (тихое) – все биты характеристики установлены в 1, первый бит мантиссы равен 1 (для 80-разрядных чисел первые два бита равны 11), остальные биты мантиссы могут содержать 0 и 1;

·  Неподдерживаемое число – все остальные ситуации.

Для организации работы с арифметическим сопроцессором программисту доступны восемь десятибайтных регистров общего назначения, обозначаемых ST(0)ST(7), организованные как стек. Эти регистры предназначены для хранения операндов и результатов арифметических операций. Регистр ST(0) или просто ST вершина стека - используется наиболее часто.

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

Кроме регистров стека сопроцессор имеет три служебных регистра:

·  Регистр состояния сопроцессора SWR (Status Word Register) – отражает информацию о текущем состоянии сопроцессора. Он содержит поля, которые позволяют определить, какой регистр является текущей вершиной стека сопроцессора, какие исключения возникли после выполнения последней команды, каковы особенности выполнения последней команды (аналог регистра флагов основного процессора).

·  Управляющий регистр сопроцессора CWR (Control Word Register) – управляет режимом работы сопроцессора. С помощью этого регистра можно регулировать точность выполнения численных вычислений, управлять округлением, маскировать исключения.

·  Регистр слова тегов TWR (Tags Word Register) – используется за контролем состояния каждого из регистров ST(0)-ST(7). Команды сопроцессора используют данный регистр, например, для того, чтобы определить возможность записи значение в эти регистры.

И два регистрауказателей: данных DPR (Data Pointer Register) и команд IPR (Instruction Pointer Register). Эти два 48 разрядных регистра используются для хранения адреса команды, вызвавшей исключительную ситуацию и адреса её операнда.

Процессор и сопроцессор являются двумя самостоятельными устройствами

Похожие материалы

Информация о работе