Physics Faculty, Electronic Devices & Systems, 7th semester,2010
Dr. Mokhovikov Alexander YurievichПрограммная модель FPU.
Исключения и интерфейс сопроцессора
Lection №2
Программная модель FPU.
Исключения и интерфейс сопроцессора
Lection №2
Номер регистра являющегося вершиной стека хранится в поле TOS
Операция Pop:
Записывает данные с вершины стека в память или регистр и инкрементирует указатель.
+
Эти инструкции адресуют регистры либо явно, либо не явно.
Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov Alexander Yurievich
Физические номера
R(0)
R(1)
R(2)
R(3)
R(4)
R(5)
R(6)
R(7)
Относительные
номера(TOS=3)
ST(5)
ST(6)
ST(7)
ST(0)
ST(1)
ST(2)
ST(3)
ST(4)
Поля регистра тегов
Tag(0)
Tag(1)
Tag(2)
Tag(3)
Tag(4)
Tag(5)
Tag(6)
Tag(7)
Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov Alexander Yurievich
Неявная адресация,
Подразумевает операнд находящийся
в стеке
Явная адресация,
Подразумевает указание смещения регистра
Относительно вершины стека(номера ST(i))
TOS
15 13 11 0
Указатели, регистры состояния и управления
У Pentium 4 внутренняя шина имеет
84 разряда для ускорения выполнения
операций, НО в программной модели важная внешняя логическая структура
!
С каждым регистром связано двухбитное
поле тегов, предназначенное для быстрого
анализа состояния регистра.
00 – valid(наличие операнда в регистре)
01 – zero(его нулевое значение)
10 – Special(специальное назначение)
11 – Empty(регистр пустой)
Теги модифицируются только сопроцессором – при восстановлении их из образа регистров, сохраненного в памяти, используется только информация «пустой»(11) или «непустой»(00,01,11)
!
Поля тегов объединены в
одно:
слово тегов TW (Tag Word)
Значение тега для непустого регистра определяется по фактическим данным.
!
Регистр стека:
00 – занят допустимым ненулевым значением
01 – содержит нулевое значение
10 – содержит одно из специальных числовых значений
11 – регистр пуст в него можно производить запись
Data Pointer Register
Instruction Pointer Register
- для хранения адреса команды, вызвавшей исключительную ситуацию, и адреса её операнда.
15 13 11 0
15 13 11 5 0
Слово состояния(Status Word=Status register)
отображает общее состояние сопроцессора
Наличие необслу-женного запроса
(Busy)
Указатель верхушки стека
Биты С[0:3] определяют код условия(Condition Code), интерпретируемый в зависимости от выполненной инструкции(например,FCOMI, FCMOVEcc и т.д.)
Эти биты устанавливаются при возникновении исключений (маскированного)
Немаски-руемое исключе-ние
Некорректная операция со стеком
(переполнение сверху или снизу)
15 13 11 5 0
X
P
M
Управляющее слово CW (Control Word) служит для выбора
параметров выполняемых операций
Маскируют отдельные исключения
Указывает способ округления (Rounding Control):
00 –к ближайшему значению;
01 – по направлению к -∞;
10 - по направлению к +∞;
11 – по направлению к 0.
Задает точность (Precision Control):
00 – 24 бит (одинарная);
10 – 53 бит (двойная);
11 – 64 бит (расширенная);
Состояние 01 - зарезервировано
Программная модель FPU:
указатели, регистры состояния и управления
}
Указатели инструкции и данных
служат для сохранения адреса
выполняемой инструкции, а также
для хранения адреса операнда
В реальном режиме
В защищенном режиме
Хранится
Линейный адрес указателя инструкции FPU(FPU IP) и операнда FPU(FPU OP)
Селекторы указателей инструкций(FPU CS Selector и FPU OP Selector) и их смещения(FPU IP Offset и FPU OP Offset)
31 16 15 0
31 16 15 0
Protect Mode
Real & Virtual
Mode
Хранится код последней исполнившейся
неуправляющей инструкции, причем из
двухбайтного кода операции сохраняются
только 11 младших бит(пять старших бит
всегда равны 11011, этот код называют
«Escape»).
Образы контекста FPU
(состояние сопроцессора)
Исключения: определения и назначения
Исключения(exceptions)
Отказ(fault) – это исключение,
которое обнаруживается и обслуживается ДО выполнения инструкции, вызвавшей ошибку.
Ловушка(trap) – это исключение, которое обнаруживается и обслуживается после выполнения инструкции, его вызвавшей.
Аварийное завершение(abort) – это
исключение, которое не позволяет точно установить
инструкцию, его вызвавшую.
После обслуживания этого исключения управление возвращается
снова на ту же инструкцию, которая вызвала отказ.
на инструкцию, следующую за вызвавшей ловушку.
Используются
В системе виртуальной памяти, в частности
Помогают подкачать с диска в оперативную память
Затребованную страницу или сегмент.
Как программные прерывания
Используются
Для сообщения о серьезной
ошибке, такой как аппаратная
ошибка или повреждение
системных таблиц
Исключения: исключения сопроцессора
Подавлять генерацию исключений по различным классам условий (единичное значение бита маскирует исключение)
При возникновении условия исключения
устанавливается флаг данного исключения
в регистре состояния и накапливаются там
до явного сброса.
}
Незамаскированные исключения вызывают также установку общего флага ES и аппаратный сигнал ошибки на выходе
сопроцессора. В то время как, возникновение замаскированного исключения только фиксируется в регистре состояния,
не вызываю прерывания, а сопроцессор выполнит соответствующую данному типу внутреннюю процедуру обработки
исключения.
Книга «Процессоры «Pentium 4,Athlon и Duron»»,авторы Михаил Гук, Виктор Юров
Книга «Ассемблер. Учебник для ВУЗов», авторы Михаил Гук, Виктор Юров
Книга «Архитектура ЭВМ»,автор Мюллер
http://www.slidefinder.net/F/FPU_Архитектура_сопроцессора_Команды_сопроцессора/9075948
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть