Процессор архитектуры IA-32

Автор работы: Пользователь скрыл имя, 15 Марта 2012 в 14:37, курсовая работа

Краткое описание

Цель курсового проекта состоит в приобретении практических навыков в проектировании операционного и управляющего автоматов процессора ЭВМ в соответствии с заданными в техническом задании архитектурными особенностями, а также в разработке технической документации, представленной пояснительной запиской и чертежами, выполненными в соответствии с ЕСКД.

Содержание работы

Введение
Задание на курсовой проект………………………………………………... 5
Общие аспекты проектирования процессора……………………. 5
Исходные данные………………………………………………….. 6
Архитектура процессора….………..……...…………..………………….. 7
Форматы команд…………………….……………………………… 7
Форматы данных…………….………………………………..……... 14
Расчет и выбор разрядности основных узлов процессора……… 16
Регистровая модель………….……………………………………... 17
Виды адресации………………………………………………………. 22
Структурная организация процессора……………..………………… 25
Общая структура процессора………………………………………... 25
Выбор и обоснование элементной базы……………..…………….. 25
Блоки обработки данных……………………………………….…… 26
Управляющий автомат………………………………..…………….. 30
3.4.1 УА с жесткой логикой……………….…………………….. 30
3.4.2 УА с микропрограммным управлением………………….. 33
Регистровая память (РП)………………….……………………….. 36
Оперативная память (ОП)…………………….…………………… 38
Блок интерфейсов (БИНТ)………………………..………………… 38
Содержательные схемы алгоритмов работы процессора….……………. 39
Общий алгоритм цикла работы процессора………………………... 39
Выборка команд………………………………..……………………. 41
Формирование исполнительного адреса и выборка
операндов……………….…………………………..……………………. 47

Обработка прерываний………………………………………………. 54
Выполнение четырех операций из индивидуального задания……. 55
Микропрограммное управление………….………..…………………. 64
Формат микрокоманды………………………………………………. 64
5.1.1 Зона БФТ…………..…………….………………………. 65
5.1.2 Зона БПТ……………..………...……………………………. 68
5.1.3 Зона БМУ……………………….…………………………… 69
5.1.4 Зона БИНТ…………………….…………………………….. 70
5.1.5 Зона ОП……………………..….……………………………... 74
5.1.6 Зона CONST…………………………………………………… 74
Микропрограмма операции обработки чисел в формате с
плавающей точкой…………………………………..…………………... 74
Заключение…………………………………………………………………... 80
Литература……………………………………………………………………. 81

Содержимое работы - 1 файл

ПЗ.docx

— 1.90 Мб (Скачать файл)

Рабочими регистрами будут регистры, находящиеся в  блоках обработки данных. Так, например, для выполнения команды XCHG необходим регистр для промежуточного хранения переменной Temp.Этот регистр будет 32х разрядным.

Также программно недоступным будет регистр буфера РгБ, необходимый для уменьшения количества обращений к ОП. Его разрядность вычисляется по формуле L-1 (длина слово ОП минус 1 байт)

Таким образом, n (РгБ)=56[бит].

Так же нужны  регистры для хранения операндов, для  промежуточных вычислений, сдвигов (32 разряда), для обработки знаков, характеристик и мантисс(1, 15 и 64 разряда соответственно).

Для обращения  к отдельным битам регистра флагов EFLAGS, системного регистра CR0 необходимs отдельныt регистрs по 32 разряда.

Аналогично для 16 разрядных регистров TR, SR, CR нужны 16 разрядные регистры.

Для работы с  РОНами необходимы регистры, которые обращались бы с частью этих регистров(EAX->AX->AL и AH),  то есть 32, 16 и 8 разряда

2.4 Регистровая модель

2.4.1 Структура ССП

Словом состояния  программы является регистр CR0.

Он содержит системные  флаги управления, которые контролируют режим работы статусом процессора.

ССП имеет следующий  формат:

 

P

G

C

D

N

W

 

A

M

 

W

P

 

N

E

E

T

T

S

E

M

M

P

P

E

31

30

29

28       19

18

17

16

15           6

5

4

3

2

1

0


 

Регистр CR0 содержит флаги, которые управляют или показывают условия, относящиеся к системе в целом, а не к отдельной задаче. Младшие 16 бит (биты с 0 по 15) этого регистра называются словом состояния машины (Machine Status Word - MSW) для совместимости с МП 80286.

PE - разрешение защиты (Protection Enable, 286+). Когда PE=1 процессор находится в защищенном режиме. Если бит сброшен, то процессор находится либо в режиме реального адреса, либо в режиме системного управления (тип режима определяется аппаратно: в режиме системного управления активен сигнал SMIACT#).

MP - наличие сопроцессора (Math Present, 286+). Влияет на выполнение команды WAIT/FWAIT, которая используется для взаимодействия с сопроцессором(0).

EM - эмуляция сопроцессора (Emulation, 286+). Показывает, нужно ли эмулировать функции сопроцессора. Установка бита EM часто возникает в случае отсутствия сопроцессора в системе. Когда EM=1, любая команда для сопроцессора, команда MMX или SSE/SSE2 вызывает особый случай(0).

TS - задача переключена (Task Switched, 286+). Процессор устанавливает этот бит при каждом переключении задач. Он также проверяет этот бит, когда интерпретирует команды сопроцессора, так как состояние последнего требуется сохранять только в случае запроса сопроцессора новой задачей. Бит TS может быть очищен загрузкой в регистр CR0, а также специальной командой CLTS(0).

ET - тип расширения (Extension Type, 386, 486). Показывает тип сопроцессора: 80287 (ET=0), 80387 или встроенный FPU i486DX (ET=1). В новых моделях бит зарезервирован и всегда содержит 1.

NE - ошибка сопроцессора (Numeric Error, 486+). Когда NE=1, процессору разрешается пользоваться внутренним ("родным") механизмом сигнализации ошибок с плавающей точкой. Когда NE=0, процессор эмулирует сигнализацию ошибок с плавающей точкой как у внешних сопроцессоров (80287, 80387), выставляя сигнал FERR#, который должен обрабатываться внешним контроллером прерываний(0).

WP - защита от записи (Write Protect, 486+). Защита от записи страниц с пометкой "read-only" при обращениях с уровня супервизора.

AM - маска выравнивания (Alignment Mask, 486+). Если CR0.AM=1 и EFLAGS.AC=1 и CR0.PE=1 и CPL=3, то производится контроль выравнивания. Т.е. при обращениях к памяти двойное слово обязательно должно начинаться с адреса, кратного 4, а 16-битное слово - с адреса, кратного 2, иначе генерируется нарушение контроля выравнивания (исключение #17).

NW - несквозная запись (Not Write-through, 486+). Используется для управления кэшированием(0).

CD - запрещение кэш-памяти (Cache Disable, 486+). Используется для управления кэшированием(1).

PG - страничная трансляция (Paging, 386+). Определяет, использует ли микропроцессор таблицы страниц для трансляции линейных адресов в физические. Страничная трансляция используется только в защищенном режиме, и попытка выставить этот бит в реальном режиме приводит к нарушению общей защиты (исключение #13)(0).

2.4.2 Status Register

Показывает текущее  состояние x87FPU.

15

14

13 11

10

9

8

7

6

5

4

3

2

1

0

B

C3

TOP

C2

C1

C0

ES

SF

PE

OE

UE

ZE

DE

IE


B  - FPU занят

TOP  - вершина стека

Флаги исключений

- точность

- переполнение 

- деление на 0 ( не используется)

- денормализованный операнд

- неправильная  операция

SF – ошибка  стека( не используется)

ES – статус ошибки(не используется)

C3 C2 C1 C0- флаги состояния (с3,с2,с1 – не используются)

2.4.3 Control Register.

Содержит маски  исключений и контролирует точность и методы   округления.

15   14   13

12

11 10

9 8

7 6

5

4

3

2

1

0

 

X

RC

PC

 

PM

OM

UM

ZM

DM

IM


 

X – контроль бесконечности

RC – контроль округления

PC -  контроль  точности

Маски исключений

- точность

- Underflow

- переполнение

- деление на 0(нет)

- денормализованный операнд

-  неверная  операция

2.4.4 TAG Register

Регистр отражает содержимое регистров стека FPU.

15   14

13 12

11   10

9      8

7     6

5    4

3      2

1     0

TAG(7)

TAG(6)

TAG(5)

TAG(4)

TAG(3)

TAG(2)

TAG(1)

TAG(0)


TAG значения

00 — используемый

01 — 0

10 — NaN, неподдерживаемый формат, бесконечность или денормализованный

11 — пустой

Регистры, предусмотренные  архитектурой IA-32:

1) восемь 32-разрядных  регистров общего назначения (РОН): EAX,

EBX, ECX, EDX, ESI, EDI, EBP, ESP;

2) шесть 16-разрядных  сегментных регистров CS, SS, DS, ES, FS,

GS;

3) 32-разрядный  указатель команд EIP;

4) 32-разрядный  регистр флагов EFLAGS;

5) восемь 80-разрядных  регистров данных R0-R7 для чисел  с плавающей точкой, организованных  в виде кольцевого стека;

6) 16-разрядные  регистры блока с плавающей  точкой: регистр тэгов

TW, регистры управления FPCR и состояния FPSR;

7) 32-разрядный  системный регистр CR0.

2.4.5 Регистры  БОД 

БОД БФТ содержит 16 – 32-х разрядных  регистров, 8 из них РОНы, 6 – сегментные и 2 рабочих регистра – РгЛОП (регистр, куда извлекается левый операнд из памяти) и РгП ( регистр для правого операнда). Для упрощения понимания алгоритма сложения чисел с ПТ (команда FIADD) внесём синонимы рабочих регистров БФТ. Р1р ( порядок числа из ST) , РСМр  (порядок числа из памяти)-  это РгП.

 

Таблица 2.3 – Регистры БФТ

Обозначение

Адрес Регистра

Комментарий

РОН[1]

0000

EAX

РОН[2]

0001

EDX

РОН[3]

0010

ECX

РОН[4]

0011

EBX

РОН[5]

0100

EBP

РОН[6]

0101

ESP

РОН[7]

0110

ESI

РОН[8]

0111

EDI

Seg[1]

1000

CS

Seg[2]

1001

SS

Seg[3]

1010

DS

Seg[4]

1011

ES

Seg[5]

1100

FS

Seg[6]

1101

CS

РгЛОП

1110

Рабочий

РгП

1111

Рабочий


 

БОД БПТ содержит 16 – 64-х разрядных  регистров. Все они являются рабочими.

Таблица 2.4 – Регистры БПТ

Обозначение

Комментарий

Р1з

Рабочий

Р1м

Рабочий

РСМз

Рабочий

РСМм

Рабочий

СчТ

Рабочий

РПТ[5..16]

Рабочий


Также в регистровую модель входят EFLAGS, CCП(CR0), EIP(CчАК), с разрядностью по 32 бита.

Дополнительно к регистровой памяти относятся РгК, буферный регистр РгБ, РгЧтОП, РгЗпОП. Отдельно размёщены стековые регистры ST, также TR, SR, TR.

2.5 Виды адресации

В архитектуре  IA-32 определен большой и гибкий набор режимов адресации, используемых для доступа к отдельным элементам и областям памяти. Как минимум один операнд из двух, которые используются в команде, должен находиться в регистре. Регистр задается в поле Reg/OPcode байта ModR/M. В таблице 2.9 приведены значения байта ModR/M для 32-х битного режима. В таблице 2.10 приведены значения байта ModR/M для 16-и битного режима. Если второй операнд тоже содержится в регистре, этот регистр задается в поле R/M того же байта. Если же второй операнд находиться за пределами регистра, он может быть непосредственно задан в команде, такой вид адресации называется непосредственным, или же храниться в памяти. В таблице 2.7 показано, как задается второй операнд для 32-х разрядного режима. Такие типы адресации, как косвенная регистровая и регистровая определяются 2-х битовым полем ModR/M. В базовой индексной адресации применяется байт SIB. Коды коэффициентов масштабирования 1, 2, 4 и 8 соответствуют кодам 00, 01, 10, 11. В этом байте задаются базовый и индексный регистры. Аналогичное описание для 16-и битного режима приведено в таблице 2.8.

Непосредственная  адресация (immediate). Операнд содержится прямо в команде. Это 8-разрядное, 16-разрядное или 32-разрядное число, длина которого определяется соответствующим битом в коде операции.

Прямая адресация (direct). Адрес операнда в памяти определяется заданным в команде смещением.

Регистровая адресация (register). Операнд содержится в одном из восьми регистров общего назначения, заданном в команде.

Косвенная регистровая  адресация (register indirect). Адрес операнда в памяти содержится в одном из восьми регистров общего назначения, заданном в команде.

Информация о работе Процессор архитектуры IA-32