Регистры процессора с плавающей запятой

К этой группе регистров относятся регистры:

  • • данных;
  • • тегов;
  • • состояния;
  • • указатели команд и данных FPU;
  • • управления FP U.

Блок регистров данных доступен либо как стек (его вершина ТОР определена в регистре состояния FPU), либо как набор пронумерованных регистров. Старший разряд 80-разрядного регистра данных кодирует знак мантиссы хранящегося в нем числа с плавающей запятой. Следующее поле отведено под кодирование порядка. Порядок представлен в виде так называемого машинного, или смещенного, порядка (Псм) без знака:

где П — истинный порядок числа, а А = |—П |. Таким образом, самый большой по модулю отрицательный истинный порядок преобразуется в нулевой смещенный, а все остальные истинные порядки преобразуются в положительные. При этом упрощаются операции обработки чисел с плавающей запятой.

Структура регистров процессора с плавающей запятой

Рис. 2.3. Структура регистров процессора с плавающей запятой

В последнем поле регистра данных записывается мантисса числа. Число разрядов, отводимых под поле порядка и поле мантиссы, определяется регистром управления FPU.

Данный блок может также использоваться для хранения двоичнодесятичных чисел. Они представляются в упакованной форме и содержат 18 тетрад, каждая из которых соответствует одному десятичному разряду. Для представления знака такого числа используется старший разряд старшего байта (бит 79), в остальных разрядах этого байта устанавливаются нули. Неопределенность в этом формате представляется числом, в котором 2 старших байта содержат 1 (единицу) во всех разрядах, а остальные 8 байт могут иметь произвольное значение.

Микропроцессор может обрабатывать числовые данные, форматы которых представлены в табл. 2.1:

Помимо этого микропроцессор может обрабатывать символьные данные, данные типа «строка» и «указатель».

Регистр тегов определяет содержимое регистра данных в целях оптимизации обработки:

• 00— достоверное значение;

  • • 01 — нуль (нулевое значение);
  • • 10 — нечисла (например, бесконечность);
  • • 11 — пусто (содержание регистров не определено).

Таблица 2.1

Типы данных 32-разрядного микропроцессора

Тип

Размер, байт

Диапазон

Место обработки

Целые без знака

  • 1
  • 2
  • 4

0...255 0...65535 0...4.3 • 109

АЛУ ФТ

Целые со знаком

  • 1
  • 2
  • 4

-128...+ 127 -32768...+ 32767 -2,1 х109...+ 2,1 -109

АЛУ ФТ

8

-9,2 х 1018... + 9,2-1018

FPU

С плавающей запятой

4(1+8+23)

Знак-порядок-мантисса

±3,37 ? 1035

FPU

8(1+11+52)

±1,67-10308

10 (1+15 + 64)

±1,1 • 104932

Двоичнодесятичные числа

1 распакованный 1 упакованных 10 упакованных

  • 0...9
  • 0...99
  • 0...9...9 (18 цифр)

АЛУ ФТ АЛУ ФТ FPU

Операции с плавающей запятой требуют довольно много времени. Теги позволяют в определенных случаях сократить время выполнения команды. Например, если известно, что один из сомножителей равен нулю, то произведению можно присвоить нулевое значение без выполнения каких-либо действий.

Регистр состояния содержит указатель вершины блока данных, работающего в режиме стека (ТОР), признаки результата и ошибок, возникающих при выполнении операции в FPU, а также флаг переполнения и антипереполнения стека регистров данных.

Регистр управления управляет округлением (к ближайшему значению, вниз, вверх, к нулю), точностью (длина мантиссы 24, 53 или 64 бита), а также содержит маску признаков ошибок, фиксируемых в регистре состояния. Примеры выполнения операции округления по различным схемам представлены в табл. 2.2.

Таблица 2.2

Примеры округления чисел до первого знака после запятой

Исходное

число

Результат округления

К ближайшему целому

К нулю

К +°°

К —оо

1,33

1,3

1,3

1,4

1,3

-1,33

-1,3

-1,3

-1,3

-1,4

1,37

1,4

1,3

1,4

1,3

-1,37

-1,4

-1,3

-1,3

-1,4

Окончание табл. 2.2

Исходное

число

Результат округления

К ближайшему целому

К нулю

К +<»

К —оо

1,35

1,4

1,3

1,4

1,3

-1,35

-1,4

-1,3

-1,3

-1,4

Указатели команд и данных содержат адрес команды, вызвавшей ошибку, и адрес использованного операнда. Эти регистры имеют 48-разрядный формат: 16 разрядов содержат селектор соответствующего сегмента, а остальные 32 разряда — смещение в нем.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >