Скачиваний:
57
Добавлен:
16.04.2013
Размер:
349.18 Кб
Скачать

5. Модель программирования с плавающей точкой.

Архитектура с плавающей точкой полностью соответствует стандарту ANSI/IEEEдля двоичной арифметики с плавающей точкой (стандарт 754-1985). Имеется полнаяIEEEподдержка для вещественных чисел с одинарной, двойной точностью и двойного расширенного формата. Поддерживаются дваIEEEметода управления округлением. Первый метод преобразует результат в двойной расширенный экспонентный диапазон. Второй метод преобразовывает результат к заданной точности. Также, включены некоторыеIEEEрасширения, такие как, операции умножения и сложения, минимума и максимума, а также формат регистра с диапазоном большим, чем минимальный двойной расширенный формат.

5.1. Форматы и типы данных

Прямо поддерживается шесть типов данных: одинарный, двойной, двойной расширенный для вещественных чисел (типы вещественных чисел IEEE); 64-битное целое со знаком, 64-битное целое без знака и 82-битный формат регистра с плавающей точкой. Также поддерживается «параллельный»FPформат, где пара чисел с одинарной точностью занимает один регистр с плавающей точкой. Седьмой тип данных – числа в стилеIEEEучетверенной точности поддерживается программно. Будущие архитектурные расширения могут включать дополнительную поддержку вещественных чисел четверной точности.

5.1.1. Типы действительных чисел

В табл. 5.1 собраны параметры типов вещественных чисел поддерживаемых IEEE.

Табл.5.1. Свойства вещественных чисел IEEE-типов

Одинарный

Двойной

Двойной расширенный

Четверной

Параметры вещественныхтипов IEEE

Знак

+или-

+или-

+или-

+или-

Максимальный порядок Emax

+127

+1023

+16383

+16383

Минимальный порядок Emin

-126

-1022

-16382

-16382

Смещение порядка

+127

+1023

+16383

+16383

Точность (бит)

24

53

64

113

IEEE форматы памяти

Общая ширина в памяти (бит)

32

64

80

128

Ширина поля знака (бит)

1

1

1

1

Ширина поля порядка (бит)

8

11

15

15

Ширина поля мантиссы (бит)

23

52

64

112

5.1.2. Формат регистра с плавающей точкой

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

Вещественные числа располагаются в 82-битных регистрах с плавающей точкой в формате из трех двоичных полей (см. рис. 5.1). Это следующие три поля:

  • 64-битное поле мантиссы,b63.b62b61…b1b0, содержит значащие цифры числа. Это поле состоит из обязательного бита целой части (бит 63) и 63 битов дробной части (биты 62:0).

  • 17-битное поле порядка, указывает расположение двоичной точки в пределах, либо за пределами значащих цифр (т.е. оно определяет размер числа). Порядок в поле смещен на 65535 (0xFFFF). Поле порядка, содержащее все 1, используется для кодирования специальныхIEEEзначений – бесконечностей со знаком и не чисел типаNaN. Поле порядка, содержащее все 0 и поле мантиссы, содержащее все 0, используется для кодирования специальныхIEEEзначений нуля со знаком. Поле порядка, содержащее все 0, и поле мантиссы не содержащее все 0, кодирует денормализованные двойные расширенные вещественные числа и псевдо-денормализованные двойные расширенные вещественные числа.

  • 1-битное поле знака показывает, является ли число положительным (0) или отрицательным (1).

81

80

64

63

0

знак

порядок

мантисса (с явным целым битом)

1

17

64

Рис.5.1. Формат регистра с плавающей точкой.

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

(-1)(знак)• 2(порядок-65535)• (мантисса{63}.мантисса{62:0})

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

(-1)(знак)• 2(-16382)• (мантисса{63}.мантисса{62:0})

Целые числа (со знаком или без знака) и параллельные FPчисла располагаются в 64-битах поля мантиссы. В их канонической форме поле порядка устанавливается в 0x1003E(смещение 63), а поле знака устанавливается в 0.