Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭВУ / прогр модель FPU.ppt
Скачиваний:
31
Добавлен:
31.05.2015
Размер:
568.83 Кб
Скачать

Lection №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)

Упр

авл

яю

щие

рег

ист

ры

Физический факультет, ЭВУ и системы, 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:

 

 

 

 

адресация

 

 

 

 

 

 

 

 

 

 

 

 

С каждым регистром

 

 

 

 

 

 

связано двухбитное

 

 

 

 

 

 

поле тегов,

 

 

 

 

 

 

 

предназначенное для

Регистры данных FPU

 

 

 

быстрого

 

 

 

 

 

анализа состояния

 

(арифметический стек)

 

 

 

регистра.

 

 

79

78

64

63

0

 

Поля

Физические

Относительные

Знак

Порядок

Мантисса

регистра

 

номера

тегов

 

 

 

 

 

 

 

номера(TOS=3)

0 0 Tag(0)

R(0)

 

 

 

 

 

ST(5)

 

 

 

 

 

ST(6)

0 1 Tag(1)

R(1)

 

 

 

 

 

 

 

 

 

 

 

R(2)

 

 

 

 

 

ST(7)

1 0 Tag(2)

 

 

 

 

 

 

R(3)

 

 

 

 

 

ST(0)

1 1

Tag(3)

R(4)

 

 

 

 

 

ST(1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Tag(4)

R(5)

 

 

 

 

 

ST(2)

 

 

 

 

 

 

 

 

Tag(5)

R(6)

 

 

 

 

 

ST(3)

 

 

 

 

 

 

 

 

Tag(6)

R(7)

 

 

 

 

 

ST(4)

 

Tag(7)

 

 

 

Указатели, регистры состояния и управления

 

 

 

 

 

 

 

 

 

 

 

15

TOS

11

 

 

0

 

 

 

13

 

 

00 – valid(наличие операнда в регистре)

01 – zero(его нулевое значение)

10 – Special(специальное назначение)

11 – Empty(регистр пустой)

 

Status Register

 

 

Control Register

 

Tag 7

Tag Word

Tag 0

 

Instruction Pointer

 

 

Data Pointer

 

 

OpCode

 

Неявная адресация, Подразумевает операнд находящийся в стеке

Явная адресация, Подразумевает указание смещения регистра Относительно вершины стека(номера ST(i))

!У Pentium 4 внутренняя шина имеет 84 разряда для ускорения выполнения

операций, НО в программной модели важная внешняя логическая структура

!Теги модифицируются только сопроцессором

– при восстановлении их из образа регистров, сохраненного в памяти, используется только информация «пустой»(11) или «непустой»(00,01,11)

Поля тегов объединены в одно:

слово тегов TW (Tag Word)

! Значение тега для непустого регистра определяется по

фактическим данным.

Физический факультет, ЭВУ и системы, 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:

указатели, регистры состояния

и управления

Слово состояния(Status Word=Status register) отображает общее состояние сопроцессора

 

15

13

 

 

11 Status Register

0

 

 

 

 

 

 

 

 

 

 

 

 

Control Register

 

 

 

 

 

 

 

 

 

Tag 7

 

 

 

 

 

Tag Word

 

 

Tag 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Наличие

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Instruction Pointer

 

 

 

 

необслу-

 

 

 

 

 

 

 

 

Data Pointer

 

 

 

 

женного

 

 

 

 

 

 

 

 

 

 

 

 

запроса

 

 

 

 

 

 

 

 

OpCode

 

 

 

 

(Busy)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Управляющее слово CW (Control Word) служит для выбора

параметров выполняемых операций

 

 

 

 

 

 

 

 

15

13

11

5

 

0

 

 

 

 

 

X X X

X

 

 

P

U O Z D I

 

 

 

 

 

 

 

 

RC PC X X M

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M M M M M

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Указывает способ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

округления (Rounding

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задает точность

 

 

 

 

 

 

 

 

 

Control):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

00 –к ближайшему

 

 

 

 

 

 

(Precision Control):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Маскируют отдельные

 

 

 

значению;

 

 

 

 

 

 

00 – 24 бит

 

 

 

 

 

01 – по направлению к -∞;

 

 

 

 

 

(одинарная);

 

 

 

исключения

 

 

 

 

 

10 - по направлению к +∞;

 

 

 

 

 

10 – 53 бит

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11 – по направлению к 0.

 

 

 

 

 

(двойная);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11 – 64 бит

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(расширенная);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Состояние 01 -

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

зарезервировано

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Биты С[0:3] определяют код условия(Condition Code), интерпретируемый в зависимости от выполненной инструкции(например,FCOMI, FCMOVEcc и т.д.)

15

13

11

 

5

0

 

 

B

C TO

 

 

C C C E S P U O Z D I

 

3 S

 

 

2 1 0 S F E E E E E E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Немаски-

 

 

 

 

 

Указатель

 

 

 

 

 

 

 

 

 

руемое

 

 

 

 

 

 

 

 

верхушки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

исключе-

 

 

 

 

 

 

 

 

стека

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ние

 

 

 

 

Эти биты

 

 

 

 

 

 

 

 

 

 

 

 

 

устанавливаются при

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

возникновении

 

 

 

 

 

 

 

 

 

 

 

 

 

исключений

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Некорректная операция со стеком

 

 

 

(маскированного)

 

(переполнение сверху или снизу)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov Alexander Yurievich

Программная модель FPU:

указатели, регистры состояния и управления

Status Register

Control Register

Tag 7

Tag Word

Instruction Pointer

Data Pointer

OpCode

Хранится код последней исполнившейся неуправляющей инструкции, причем из двухбайтного кода операции сохраняются только 11 младших бит(пять старших бит всегда равны 11011, этот код называют «Escape»).

Real & Virtual

Mode

 

 

 

 

В реальном режиме

Линейный адрес

 

 

 

 

 

 

 

указателя

Tag 0

 

 

 

 

 

инструкции FPU(FPU

 

 

 

 

 

IP) и операнда

Указатели инструкции и данных

 

 

 

 

 

 

 

 

}

служат для сохранения адреса

Хранится

FPU(FPU OP)

выполняемой инструкции, а также

 

 

 

для хранения адреса операнда

 

 

 

 

 

 

 

 

 

Селекторы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

указателей

 

 

 

 

 

 

 

инструкций(FPU CS

 

 

 

 

В защищенном режиме

Selector и FPU OP

 

 

 

 

 

 

 

Selector) и их

 

 

 

 

 

 

 

смещения(FPU IP

 

 

Образы контекста FPU

 

 

 

Offset и FPU OP

 

 

(состояние сопроцессора)

 

 

 

Offset)

 

 

 

 

 

Protect Mode

 

31

16 15

0

 

 

 

reserved

CW

31

16 15

 

0

 

reserved

SW

 

 

 

reserved

CW

 

reserved

TW

 

 

 

reserved

SW

 

FPU IP OFFSET

 

 

 

reserved

TW

 

00000 OPCODE

 

 

 

FPU CS SELECTOR

 

reserved

FPU IP [15:0]

 

[10:0]

 

 

 

 

 

0000

FPU IP [15:0]

0

OPCODE[10:0]

 

FPU IP OFFSET

 

 

reserved

FPU OP[15:0]

 

 

 

FPU OP

 

 

 

 

 

 

 

 

 

reserved

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

DE

DM

ZE

ZM

OE

OM

UE

UM

PE

PM

Исключение

#I (Invalid Operation) – недействительная операция: извлечение данных из пустого регистра(0/0 или ∞-∞), извлечение чётного корня из отрицательного числа, операции с нечисловыми переменными и т.п. Если установление флаг SF, то исключение связано с переполнением стека сверху или снизу.

#D (Denormalized Operand) – денормализован хотя бы один операнд

#Z (Zero Divide) – деление на нуль ненулевого операнда

#O (Overflow) - переполнение

#U (Underflow) – потеря точности (исчезновение значащих разрядов)

#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

Используемая литература

Книга «Процессоры «Pentium 4,Athlon и Duron»»,авторы Михаил Гук, Виктор Юров

Книга «Ассемблер. Учебник для ВУЗов», авторы Михаил Гук, Виктор Юров

Книга «Архитектура ЭВМ»,автор Мюллер

http://www.slidefinder.net/F/FPU_Архитектура_сопроцесс ора_Команды_сопроцессора/9075948

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov Alexander Yurievich

Соседние файлы в папке ЭВУ