ЭВУ 2 семестр / Презентации ЭВУ в пдф / Мат сопроцессор 2
.pdfLection №2
Программная модель FPU.
Исключения и интерфейс сопроцессора
назначения общего Регистры )Стек(
79 |
0 |
15 |
0 |
|
|
|
|
|
|
|
ST(0) |
|
|
CWR |
|
|
|
|
|
|
ST(1) |
|
|
SWR |
|
|
|
|
|
|
ST(2) |
|
|
TWR |
|
|
|
|
|
|
ST(3) |
FPU |
|
|
|
|
|
|
|
|
|
|
|
FIP |
|
ST(4) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ST(5) |
|
|
|
|
|
|
|
FDP |
|
ST(6) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ST(7) |
|
|
|
|
|
|
|
|
регистры Управляющие
Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov Alexander Yurievich
Программная модель FPU: регистры математического сопроцессора
Регистры данных R0-R7 организованы в стек
Номер регистра являющегося вершиной стека хранится в поле TOS
Операция Push:
Декрементирует поле TOS на 1 и помещает данные в регистр являющийся новой вершиной стека.
+
Операция Pop:
Записывает данные с вершины стека в память или регистр и инкрементирует указатель.
Эти инструкции адресуют регистры либо явно, либо не явно.
Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov Alexander Yurievich
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Неявная адресация, |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Подразумевает операнд находящийся |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
в стеке |
||
|
|
|
|
|
|
|
|
Программная модель FPU: адресация |
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Явная адресация, |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Подразумевает указание смещения регистра |
||
С каждым регистром |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Относительно вершины стека(номера ST(i)) |
||||||||||
связано двухбитное |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
поле тегов, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
предназначенное для |
|
Регистры данных FPU |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
быстрого |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
У Pentium 4 внутренняя шина имеет |
|
||||||||||
анализа состояния |
|
(арифметический стек) |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
84 разряда для ускорения выполнения |
|
|||||||||||||||||
регистра. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
79 |
|
78 |
64 |
63 |
0 |
|
|
|
|
|
|
операций, НО в программной модели |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
Поля |
|
Физические |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
регистра |
|
|
|
номера |
|
Знак |
Порядок |
Мантисса |
Относительные |
|
|
!важная внешняя логическая структура |
|
|||||||||||||||
|
|
|
|
|
номера(TOS=3) |
|
|
|
||||||||||||||||||||
тегов |
|
|
|
|
|
|
|
|||||||||||||||||||||
|
0 |
0 |
Tag(0) |
|
|
R(0) |
|
|
|
|
|
|
|
|
|
ST(5) |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
ST(6) |
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
! |
|
|
|
|
||||
|
0 |
1 |
|
|
|
|
|
R(1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
– при восстановлении их из образа регистров, |
|
|||||
|
Tag(1) |
|
|
|
|
|
|
|
|
|
|
|
|
ST(7) |
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
R(2) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
сохраненного в памяти, используется только |
|
||||
|
1 |
0 |
Tag(2) |
|
|
|
|
|
|
|
|
|
|
|
|
ST(0) |
|
|
|
|
|
информация «пустой»(11) или |
|
|||||
|
|
|
|
|
|
R(3) |
|
|
|
|
|
|
|
|
|
|
|
|
|
«непустой»(00,01,11) |
|
|||||||
|
|
|
Tag(3) |
|
|
|
|
|
|
|
|
|
|
|
|
ST(1) |
|
|
|
|
|
|
|
|
||||
|
1 |
1 |
|
|
R(4) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
Tag(4) |
|
|
R(5) |
|
|
|
|
|
|
|
|
ST(2) |
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
R(6) |
|
|
|
|
|
|
|
|
ST(3) |
|
|
|
|
|
|
|
|
||||||
|
|
|
Tag(5) |
|
|
|
|
|
|
|
|
|
|
|
|
|
Поля тегов объединены в |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
Tag(6) |
|
|
|
|
|
|
|
|
|
|
|
|
ST(4) |
|
|
|
|||||||||
|
|
|
|
|
R(7) |
|
|
|
|
|
|
|
|
|
|
|
одно: |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tag(7) |
|
|
|
|
|
|
|
|
Указатели, регистры состояния и управления |
|
|
|
слово тегов TW (Tag Word) |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
TOS |
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
15 |
13 |
11 |
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Status Register |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
! |
Значение тега для непустого |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Control Register |
|
|
|
|
|
|
регистра определяется по |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
Tag 7 |
|
|
Tag Word |
|
Tag 0 |
|
|
|
|
фактическим данным. |
|
||||||
00 – valid(наличие операнда в регистре) |
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
Instruction Pointer |
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
01 – zero(его нулевое значение) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
10 – Special(специальное назначение) |
|
|
|
|
Data Pointer |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
11 – Empty(регистр пустой) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OpCode |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. |
Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov Alexander Yurievich |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tags Word Register
15 14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Регистр стека:
00 – занят допустимым ненулевым значением
01 – содержит нулевое значение
10 – содержит одно из специальных числовых значений
11 – регистр пуст в него можно производить запись
Data Pointer Register Instruction Pointer Register
- для хранения адреса команды, вызвавшей исключительную ситуацию, и адреса её операнда.
Программная модель FPU: указатели, регистры состояния и управления
Биты С[0:3] определяют код условия(Condition Code), интерпретируемый в зависимости от выполненной инструкции(например,FCOMI, FCMOVEcc и т.д.)
Слово состояния(Status Word=Status register)
отображает общее состояние сопроцессора
|
15 |
13 |
11 Status Register |
0 |
|
|
|
|
|
|
Control Register |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tag 7 |
|
Tag Word |
Tag 0 |
|
|
|
|
|
|
|
Наличие |
|||
|
|
|
|
|
|
|
|
|
|
|
Instruction Pointer |
|
|
|
необслу- |
|
|
|
|
|
|
женного |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
Data Pointer |
|
|
|
запроса |
|
|
|
|
|
|
|
(Busy) |
|
|
|
OpCode |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Управляющее слово CW (Control Word) служит для выбора параметров выполняемых операций
15 |
13 |
11 |
5 |
0 |
15 13 11 5 0
|
B |
C |
TOS |
C |
C |
C |
|
E |
S |
|
P |
|
U |
O |
Z |
D |
I |
|
|||||||
|
|
|
3 |
|
|
|
|
2 |
1 |
0 |
|
S |
F |
|
E |
|
E |
E |
E |
E |
E |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Немаски- |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
Указатель |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
руемое |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
верхушки |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
исключе- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
стека |
|
|
|
ние |
|
|
|
|
|
|
|
Эти биты |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
устанавливаются при |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
возникновении |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
исключений |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
Некорректная операция со стеком |
|
|
|
(маскированного) |
|||||||||||||||||||||
(переполнение сверху или снизу) |
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X |
X |
X |
X |
RC |
PC |
X |
X |
P |
|
U |
|
O |
Z |
D |
I |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
M |
|
M |
|
M |
M |
M |
M |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
Указывает способ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
округления (Rounding |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Control): |
|
|
Задает точность |
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
(Precision Control): |
|
|
|
|
|
|
|
|
|
|
||||||||||
00 –к ближайшему |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
00 – 24 бит |
|
|
|
Маскируют отдельные |
|
|||||||||||||||
значению; |
|
|
|
|
|
|
||||||||||||||||
|
|
(одинарная); |
|
|
|
исключения |
|
|||||||||||||||
01 – по направлению к -∞; |
|
|
|
|
|
|
||||||||||||||||
|
|
10 – 53 бит |
|
|
|
|
|
|
|
|
|
|
||||||||||
10 - по направлению к +∞; |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
11 – по направлению к 0. |
|
|
(двойная); |
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
11 – 64 бит |
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
(расширенная); |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
Состояние 01 - |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
зарезервировано |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov Alexander Yurievich
Программная модель FPU:
указатели, регистры состояния и управления
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Status Register |
|
|
|
|
|
|
|
|
|
|
|
|
В реальном режиме |
Линейный адрес |
||||||||||||
|
|
Control Register |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
указателя |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
инструкции FPU(FPU |
|||||
|
Tag 7 |
Tag Word |
|
Tag 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
Указатели инструкции и данных |
|
|
|
|
|
|
|
IP) и операнда |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
Instruction Pointer |
|
|
|
|
|
|
|
|
|
|
|
|
|
FPU(FPU OP) |
||||||||||||
|
|
|
|
|
|
} |
служат для сохранения адреса |
|
Хранится |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
Data Pointer |
|
|
|
|
выполняемой инструкции, а также |
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
для хранения адреса операнда |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
OpCode |
|
|
|
|
|
|
|
|
|
|
|
|
|
Селекторы |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
указателей |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
инструкций(FPU CS |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В защищенном режиме |
Selector и FPU OP |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
Хранится код последней |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Selector) и их |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
смещения(FPU IP |
||||||||
|
исполнившейся |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Offset и FPU OP |
||||||||
|
неуправляющей |
|
|
|
|
|
|
|
|
Образы контекста FPU |
|
|
|
|
|
|
|
|
||||||||||
|
инструкции, причем из |
|
|
|
|
|
|
|
(состояние сопроцессора) |
|
|
|
|
|
|
|
|
Offset) |
||||||||||
|
двухбайтного кода |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
операции сохраняются |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Protect Mode |
|
|
|
|||||||||
|
только 11 младших |
|
31 |
|
16 15 |
0 |
|
|
|
|
|
|
|
|||||||||||||||
|
бит(пять старших бит |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
reserved |
|
|
|
|
CW |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
всегда равны 11011, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
16 15 |
|
|
|
|
0 |
|
|
|||||||
|
этот код называют |
|
|
reserved |
|
|
|
|
SW |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
reserved |
|
|
|
|
CW |
|
||||||||||||
|
«Escape»). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
reserved |
|
|
|
|
TW |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reserved |
|
|
|
|
SW |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
FPU IP OFFSET |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
reserved |
|
|
|
|
TW |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
Real & Virtual |
|
00000 |
OPCODE |
|
FPU CS |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
reserved |
|
|
FPU IP [15:0] |
|
||||||||||||||||
|
|
|
|
[10:0] |
|
SELECTOR |
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Mode |
|
|
|
|
|
|
|
|
|
|
|
0000 |
|
FPU IP [15:0] |
|
0 |
|
OPCODE[10:0] |
|
|||||||
|
|
|
|
|
FPU IP OFFSET |
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reserved |
|
FPU OP[15:0] |
|
|||||||
|
|
|
|
|
|
reserved |
|
|
|
|
FPU OP |
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
SELECTOR |
|
|
|
0000 |
|
FPU IP [15:0] |
|
000 |
000000000 |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov Alexander Yurievich
Исключения: определения и назначения
Исключения(exceptions)
Отказ(fault) – это |
|
Ловушка(trap) – это |
|
Аварийное завершение(abort) – это |
исключение, |
|
исключение, которое |
|
исключение, которое не позволяет точно установить |
которое обнаруживается и |
|
обнаруживается и |
|
инструкцию, его вызвавшую. |
обслуживается ДО |
|
обслуживается после |
|
|
|
|
|
||
выполнения инструкции, |
|
выполнения инструкции, |
|
|
вызвавшей ошибку. |
|
его вызвавшей. |
|
|
|
|
|
|
|
После обслуживания этого исключения управление возвращается
снова на ту же |
|
на инструкцию, |
инструкцию, которая |
|
следующую за |
вызвала отказ. |
|
вызвавшей ловушку. |
|
|
|
|
|
|
Как программные прерывания
В системе виртуальной памяти, в частности Помогают подкачать с диска в
оперативную память Затребованную страницу или сегмент.
Для сообщения о серьезной ошибке, такой как аппаратная ошибка или повреждение системных таблиц
Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov Alexander Yurievich
Исключения: исключения сопроцессора
Флаг |
Маска |
Исключение |
|
|
|
IE |
IM |
#I (Invalid Operation) – |
|
|
|
|
|
недействительная операция: |
|
|
извлечение данных из пустого |
|
|
регистра(0/0 или ∞-∞), |
|
|
извлечение чётного корня из |
|
|
отрицательного числа, операции |
|
|
с нечисловыми переменными и |
|
|
т.п. Если установление флаг SF, |
|
|
то исключение связано с |
|
|
переполнением стека сверху или |
|
|
снизу. |
|
|
|
DE |
DM |
#D (Denormalized Operand) – |
|
|
|
|
|
денормализован хотя бы один |
|
|
операнд |
|
|
|
ZE |
ZM |
#Z (Zero Divide) – деление на |
|
|
|
|
|
нуль ненулевого операнда |
|
|
|
OE |
OM |
#O (Overflow) - переполнение |
|
|
|
|
|
|
UE |
UM |
#U (Underflow) – потеря точности |
|
|
|
|
|
(исчезновение значащих |
|
|
разрядов) |
|
|
|
PE |
PM |
#P (Precision) – результат не |
|
|
|
|
|
может быть точно представлен в |
|
|
заданном формате, при |
|
|
выполнении округления |
|
|
|
Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov Alexander Yurievich
Исключения: исключения сопроцессора
Флаг Маска
При возникновении условия исключения устанавливается флаг данного исключения в регистре состояния и накапливаются там до явного сброса.
Подавлять генерацию исключений по различным классам условий (единичное значение бита маскирует исключение)
}
Незамаскированные исключения вызывают также установку общего флага ES и аппаратный сигнал ошибки на выходе сопроцессора. В то время как, возникновение замаскированного исключения только фиксируется в регистре состояния, не вызываю прерывания, а сопроцессор выполнит соответствующую данному типу внутреннюю процедуру обработки исключения.
Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov Alexander Yurievich