Автор работы: Пользователь скрыл имя, 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
Рабочими регистрами будут регистры, находящиеся в блоках обработки данных. Так, например, для выполнения команды XCHG необходим регистр для промежуточного хранения переменной Temp.Этот регистр будет 32х разрядным.
Также программно
недоступным будет регистр
Таким образом, 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). Адрес операнда в памяти содержится в одном из восьми регистров общего назначения, заданном в команде.