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

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

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

выполнении действий с не-числа-ми SNaN, QNaN, извлечении квадратного
корня из отрицательного числа, делении L/L и ряде других операций,
указанных в табл. 2.27. Если установлена маска IM = 1, то выполнение
программы продолжается без прерывания, а результат недействительной
операции определяется согласно табл. 2.27.
При выполнении операций FPU контролируется переполнение или
антипереполнение арифметического стека. Переполнение фиксируется, если
команда пытается произвести загрузку в заполненный регистр стека. При
этом в регистре FPSR устанавливаются признак SF = 1 и бит условия С1 = 1.
Антипереполнение фиксируется, если команда пытается считать операнд из
пустого регистра стека. В этом случае устанавливаются значения SF = 1 и
С1 = 0. Значение SF = 1 указывает на выполнение недействительной операции
и вызывает установку признака 1Е=1. Если флаг IE маскирован (IM = 1), то
результатом операций, вызвавших переполнение или антипереполнение стека,
будет загрузка или считывание не-числа QNAN.
СИСТЕМА КОМАНД: ОПЕРАЦИИ НАД ЧИСЛАМИ С ПЛАВАЮЩЕЙ ТОЧКОЙ
Таблица 2.27
Недействительные операции FPU и их результаты при маскировании (IM = 1)
Недействительная операция Результат при |М = 1
Любая арифметическая операция над SNaN или операндами с неподдерживаемыми
форматами Сложение " с разными знаками или вычитание <=¦= с одинаковым
знаком Умножение 0 хо=,~х 0 или деление °"/°°, 0 / 0 Сравнение или
тестирование, если один или оба операнда NAN Операция вычисление остатка
(команды FPREM, FPREM1), когда делитель равен 0 или делимое равно~
Тригонометрические операции вычисления sin, cos, частичного tg
(KOMaHflbi(FCOS, FPTAN, FSIN, FSINCOS), когда операнд равен ~ Операция
извлечения корня, вычисления функции log2x над отрицательными операндами
вычисления, 1од2(х+1) над операндом х<-1 (команды FSQRT, FYL2X, FYL2XP1)
Операция пересылки в память целых и двоичнодесятичных чисел и регистра
данных FPU, если регистр пуст, содержит NaN или бесконечность либо его
содержимое превышает диапазон представления адресуемой памяти (команды
FIST, FISTP, FBSTP) Операция обмена содержимого регистров данных, если
один из них или оба пусты (команда FXCH) QNaN Неопределенность (QNaN)
Неопределенность (QNaN) Устанавливает код условия "не сравнимы"
Неопределенность (QNaN) с установкой бита условия 02=1 Неопределенность
(QNaN) с установкой бита условия 02=1 Неопределенность (QNaN)
Целочисленная неопределенность, код 100...00 Установка неопределенности
(QNaN) для пустых регистров и последующий обмен
Если хотя бы один из признаков IE, DE.ZE, ОЕ, UE, РЕ установлен в
состояние "1" и не маскирован, то общий признак ошибки устанавливается в
состояние ES = 1 и формируется сигнал ошибки FERR# = 0 на внешнем выводе
процессора. Если в регистре управления CR0 установлено значение бита NE =
1, то в этом случае непосредственно перед следующей командой FPU
реализуется исключение типа #MF ("ошибка FPU").
При значении NE = 0 процедура обработки прерывания вызывается командой
INTn, формируемой внешним контроллером прерываний. Получив сигнал
FERR#=0, этот контроллер должен подать сигнал IGNNE# = 1 на
соответствующий вход процессора. Данный сигнал вызывает остановку
процессора непосредственно перед следующей командой FPU или WAIT. Эта
остановка продолжается до поступления от контроллера прерываний команды
INTn. Если на входе IGNNE# поддерживается состояние "О", то процессор
продолжает выполнение программы, игнорируя ошибки FPU.
Процедуры обслуживания исключений, вызываемых FPU, могут использовать для
выявления причины ошибок содержимое регистров FIP и FDP - указателей
команд и данных, которое выводится из процессора с помощью команд
управления FSTENV, FSAVE. В регистр FIP заносится адрес текущей команды
FPU и 11 разрядов ее кода (два первых байта без кода ESC), если эта
команда не входит в группу команд управления. Если команда выбирает
операнд из памяти, то в регистр FDP заносится адрес операнда, в противном
случае разряды
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
регистра устанавливаются в неопределенное состояние. Когда выполнение
команды вызывает немаскированное прерывание вследствие возникновения
какой-либо из вышеуказанных ошибок, регистры FIP и FDP содержат
информацию об этой команде и операнде, которая может быть использована
для анализа причин ошибки. Так как команды управления не изменяют
содержимое FIP и FDP, то процедура обработки ошибок FPU с помощью этих
команд может выбирать содержимое FIP, FDP для проведения такого анализа.
Необходимо отметить влияние битов ЕМ, TS, МР регистра управления CR0 на
выполнение команд FPU и WAIT/FWAIT. При TS = 1 или ЕМ = 1 поступление
команд FPU вызовет исключение типа #NM ("FPU недоступен"). Команда
WAIT/FWAIT вызывает это исключение только при TS = МР = 1.
2.4.3. КОМАНДЫ ПЕРЕСЫЛКИ ДАННЫХ
Команды этой группы реализуют операции загрузки, записи в память, обмена
и загрузки констант (табл. 2.28).
Предыдущая << 1 .. 64 65 66 67 68 69 < 70 > 71 72 73 74 75 76 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed