Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 69

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 63 64 65 66 67 68 < 69 > 70 71 72 73 74 75 .. 528 >> Следующая

ST(0) - регистра данных FPU, являющегося вершиной стека. Физический номер
этого регистра определяется полем ТОР в регистре состояния FPSR (см. рис.
2.4), содержимое которого изменяется при выполнении ряда команд. Таким
образом осуществляется заполнение или освобождение регистров
арифметического стека. Второй операнд при выполнении двухоперандных
команд FPU выбирается из памяти или из i-ro регистра данных ST(i),
входящего в состав арифметического стека.
Форматы команд FPU показаны на рис. 2.18. Каждая из этих команд
начинается 5-бито-вым полем ESC = 11011, поля ОРС определяют выбор одной
из возможных операций FPU. При обращениях к памяти возможно использование
всех способов адресации. При этом после байта MODR/M могут следовать байт
SIB, обеспечивающей масштабирование адреса, байты d8, d16 или d32,
задающие необходимое смещение DISP (см. рис. 2.18, а). При регистровой
адресации (MOD = 11) поле R/М задает адрес i арифметического регистра
ST(i), из которого выбирается операнд (см. рис. 2.18, б). В качестве i
используется не физический номер регистра, а его номер относительно
вершины стека.
При выполнении операций FPU контролирует точность представления чисел и
производит в случае необходимости округление результата. Эти процедуры
осуществляются в соответствии со значениями полей PC, RC в регистре
управления FPCR.
Значение поля PC (см. табл. 2.2) определяет точность результатов
арифметических операций над вещественными числами: сложения, вычитания,
умножения деления, извлечения квадратного корня (команды FADD, FSUB,
FSUBR, FMUL, FDIV, FDIVR, FSQRT). На результаты других операций FPU
значение поля PC не влияет. При PC = 11 результат представляется с
обычной для FPU расширенной точностью (64 значащих разряда мантиссы),
которая обеспечивается используемым форматом РТ. При PC = 00 или 10,
реализуется одинарная (23 значащих разряда мантиссы) или двойная (52
значащих разряда мантиссы) точность представления чисел. В этом случае
при получении результатов с более высокой точностью производится их
округление. Значение PC = 01 не используется (резервировано).
а)
11011 ОРС MOD ОРС R/M SIB DISP
5)
11011 ОРС 11 ОРС ST(i)
Рис. 2.18. Форматы команд FPU: с адресацией памяти (а), с регистровой
адресацией (б)
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
Значение поля RC определяет способ округления результата операций FPU до
заданной точности (см. табл. 2.1). При RC = 00 реализуется обычный способ
округления. При RC = 01 или 10 выполняется округление в сторону меньших
или больших чисел. При RC = 11 осуществляется обнуление лишних разрядов
мантиссы. Поле RC влияет на результаты арифметических операций
(кромеопераций, определяемых командами FPREM, FPREMI, FXTRACT, FABS,
FCHS), операций вычисления трансцендентных функций и операций передачи,
выполняемых по командам FST, FSTP, FIST.
При выполнении операций FPU контролируется шесть видов ошибок:
1) #1-недействительная операция;
2) #D - поступление денормализованного операнда;
3) #Z- деление на нуль; '
4) #0 - переполнение;
5) #U-антипереполнение;
6) #Р - неточный результат. '
При обнаружении ошибки устанавливается единичное значение
соответствующего признака IE, DE, ZE, ОЕ, UE, РЕ в регистре состояний
FPSR. В регистре управления FPCR содержатся маски этих ошибок IM, DM, ZM,
ОМ, UM, РМ: при нулевом значении маски соответствующая ошибка вызовет
прерывание программы (исключение), при единичном значении маски процессор
продолжает выполнение программы.
Признак неточного результата РЕ = 1 устанавливается, если результат
операции не может быть точно представлен в заданном командой формате.
Если установлена маска РМ = 1, то процессор продолжает программу без
прерывания. В этом случае производится округление результата в
соответствии со значением поля RC в регистре FPCR (см. рис. 2.6).
Признак антипереполнения UE = 1 устанавливается, если результат слишком
мал для представления нормализованным числом, т. е. меньше значений +Min
для положительных или больше значений - Мах для отрицательных
нормализованных чисел (см. табл. 2.26). Если установлена маска UM = 1, то
процессор продолжает программу без прерывания, а результат представляется
денормализованным числом.
Признак деления на нуль ZE = 1 устанавливается, когда делимое является
конечным числом, отличным от нуля, а делитель равен нулю. Если
установлена маска ZM = 1, то выполнение программы продолжается без
прерывания, в качестве результата деления выдается код бесконечности.
Знак результата определяется в зависимости от знаков операндов в
соответствии с правилами деления.
Признак денормализованного операнда DE = 1 устанавливается, если
денормализован хотя бы один из операндов. Если установлена маска DM =1,
то процессор оперирует с денормализованным операндом, как с
нормализованным.
Признак недействительной операции 1Е=1 устанавливается при извлечении
содержимого из пустого регистра или загрузки в заполненный регистр,
Предыдущая << 1 .. 63 64 65 66 67 68 < 69 > 70 71 72 73 74 75 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed