Автор работы: Пользователь скрыл имя, 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
Флаги результата:
OF и CF остаются пустыми(0);
SF, ZF, PF устанавливаются в зависимости от результата
5)Исключения:
#GP - если адрес
операнда в памяти вне
#SS - если адрес операнда в памяти вне предела сегментного регистра SS.
в) XCHG Mem32,Reg32
Код операции 87h.
1) Команды кодируется с использованием 3х полей – Opcode( 1 байт), ModR/M( 1 байт), Disp( 1 или 2 байта). Соответственно команда имеет размер 3 или 4 байта.
2) Команда работает
с 2 байтовыми типами данных.
В операции принимает участие
операнд, хранящийся в памяти
и любой регистр общего
3) Формат команды : регистр – память
Способ адресации: базовая с 16 разрядным исполнительным адресом. Исполнительный адрес получается путём сложения базового регистра ( BP-поле R/M=110 или BX- поле R/M=111) и смещения (поле Disp – 8 (Mod=01) или 16 (Mod=10) разрядов)
Кодирование.
Disp = 8 бит
Opcode |
ModR/M |
Disp | ||
Mod |
Reg/Opcode |
R/M | ||
10000111 |
01 |
reg |
11x |
|
23 16 |
15 14 |
13 11 |
10 8 |
7 0 |
Disp = 16 бит
Opcode |
ModR/M |
Disp | ||
Mod |
Reg/Opcode |
R/M | ||
10000111 |
10 |
reg |
11x |
|
31 24 |
23 22 |
21 19 |
18 16 |
15 |
4) Выполняется
обмен содержимым между 2х
Флагов для данной операции нет.
5)Исключения:
#GP – операнд
в не перезаписываемом
Эффективный адрес операнда вне пределов сегментных регистров CS, DS,
ES, FS, или GS.
Регистр DS, ES, FS, или GS содержит нулевой сегментный селектор.
#SS – эффективный адрес операнда вне предела сегментного регистра SS.
#PF(fault-code) – ошибка страничного режима.
#AC - флаг контроля за выравниванием. Если AC=1 и AM=1, то исключение #17 из-за нарушения выравнивания в 3м кольце защиты разрешено.
г) FIADD m16int
Код операции DB/0h,
1) Команды кодируется с использованием 3х полей – Opcode( 1 байт), ModR/M( 1 байт), Disp( 1 или 2 байта). Соответственно команда имеет размер 3 или 4 байта. Для всех команд с ПТ Opcode начинается с 11011, затем выбирается формат памяти MF(11, так как операция выполняется с целочисленным данными), OPA – вторая часть кода операции, Mod, OPB – третья часть кода операции, R/M и Disp( 1 или 2 байта).
2)Команда складывает содержимое памяти (2 байтовое целое число) с содержимым регистра ST(0)( 80 бит). FPU выполняет все вычисления в 80-битном расширенном формате. Операндом – приёмником всегда является регистр FPU.
3) Формат команды : регистр – память
Способ адресации: базовая с 16 разрядным исполнительным адресом. Исполнительный адрес получается путём сложения базового регистра ( BP-поле R/M=110 или BX- поле R/M=111) и смещения (поле Disp – 8 (Mod=01) или 16 (Mod=10) разрядов)
Кодирование.
Disp = 8 бит
Opcode |
ModR/M |
Disp | ||||
MF |
OPA |
Mod |
OPB |
R/M | ||
11011 |
11 |
0 |
01 |
000 |
11x |
|
23 19 |
18 17 |
16 |
15 14 |
13 11 |
10 8 |
7 0 |
Disp = 16 бит
Opcode |
ModR/M |
Disp | ||||
MF |
OPA |
Mod |
OPB |
R/M | ||
11011 |
11 |
0 |
10 |
000 |
11x |
|
31 27 |
26 25 |
24 |
23 22 |
21 19 |
18 16 |
15 |
4) Производится сложение операнда из памяти и регистра с сохранением в регистре результата. Команда FIADD преобразует целочисленный операнд к формату с ПТ с двойной точностью перед выполнением сложения. Если сумма двух операндов с противоположными знаками равна 0, результат принимает значение +0. Исключение при округлении в режиме -∞, в этом случае результат -0. Когда операндом является целое число равное 0, то оно трактуется как +0.
Таблица2.1 - Результаты команды FIADD.
|
DEST | |||||||
-∞ |
−F |
−0 |
+0 |
+F |
+∞ |
NaN | ||
S R C |
−I |
-∞ |
−F |
SRC |
SRC |
±F or ±0 |
+∞ |
NaN |
+0 |
-∞ |
DEST |
±0 |
+0 |
DEST |
+∞ |
NaN | |
+I |
-∞ |
±F or ±0 |
SRC |
SRC |
+F |
+∞ |
NaN |
Кроме обычных
чисел формат IEEE предусматривает
несколько специальных случаев,
которые могут получаться в результате
математических операций и над которыми
также можно выполнять
Флаги результата:
РЕ — флаг неточного результата — результат не может быть представлен точно
UE — флаг антипереполнения — результат слишком маленький.
ОЕ — флаг переполнения — результат слишком большой.
DE — флаг денормализованного операнда — выполнена операция над денормализованным числом.
IE — флаг недопустимой операции — произошла ошибка стека (SF = 1) или выполнена недопустимая операция.
C1 устанавливается
в 0, если стек оказался пуст;
устанавливается, если
C0, C2, C3 не определены.
5)Исключения:
#IS стек пуст.
#IA операнд является signalling Not a Number (порядок 111...111, мантисса 1,0ххх...ххх (ненулевая)) или его формат не поддерживается. Операнды являются бесконечностями с разными знаками.
#D - денормализованный операнд.
#U - результат слишком мал для заданного формата.
#O – результат слишком велик для заданного формата.
#P - значение
не может быть точно
2.2 Форматы данных
Таблица 2.2 - Типы данных FPU
Тип данных |
Бит |
Количество значащих цифр |
Пределы |
Целое слово |
16 |
4 |
-32768 — 32767 |
Расширенное вещественное |
80 |
19 |
3.37*10-4932 —1.18*104932 |
а) Числа с фиксированной точкой
Числа с фиксированной точкой рассматриваются как целые числа со знаком и без знака (Рис.2.1).
Все биты числа с фиксированной точкой без знака используются для представления абсолютной величины числа.. При сложении двух чисел с ФТ без знака считается, что более короткое число дополнено старшими нулями.
В числах с фиксированной точкой со знаком самый левый бит используется для представления знака, за которым следует поле целого числа. Положительные числа представляются в прямом двоичном коде со знаковым битом, равным 0. Отрицательные числа представляются в дополнительном коде со знаковым битом, равным 1.
В некоторых
операциях для получения
Рис. 2.1. Представление чисел с фиксированной точкой.
б) Числа с плавающей точкой.
Вещественный формат IEEE, используемый в проектируемом процессоре:
Рис. 2.2. Представление чисел с плавающей точкой (расширенный формат)
Формат начинаются со знакового бита для всего числа; 0 указывает на положительное число, 1 — на отрицательное. Затем следует смещенная экспонента. В конце идут мантиссы по 23, 52 и 63 бита соответственно.
Нормализованная мантисса начинается с 1, за которой следует 1 остаток мантиссы. 1 бит перед мантиссой сохраняется. Следовательно, стандарт определяет мантиссу следующим образом. Она состоит из явного бита, который всегда равен 1, и явной двоичной точки, за которыми идут 63 произвольных бита. Если все 63 бита мантиссы равны 0, то мантисса имеет значение 1,0. Если все биты мантиссы равны 1, то числовое значение мантиссы немного меньше, чем 2,0. Значащая часть числа (s) всех нормализованных чисел лежит в диапазоне 1 < s < 2.
2.3 Расчет и выбор разрядности основных узлов процессора
1) Регистр команд предназначен для хранения команд и его длина определяется максимальным форматом команды из заданного в техническом задании набора команд:
n(РгК) = 32 [бит].
2.3.2. Регистр адреса команд:
Длина счетчика адреса команд СчАК, определяется емкостью ОП в полусловах:
n(СчАК) = log2 E = log2 223 = 23 [бит].
2) Регистр адреса ОП.
Данный регистр должен обеспечивать возможность содержания всех адреса, по которым идет обращение к оперативной памяти. Длину данного регистра можно рассчитать по следующей формуле:
n(РАОП) = log2 (E / L) = log2 (223/ 23) = 20 [бит].
где E – емкость оперативной памяти (8Мб);
L – длина слова (8 байт).
3) Регистр чтения и регистр записи.
Оба регистра будут иметь одинаковую разрядность, равную длине слова ОП- L.
n(РгЧт/РгЗп)=64 [бит]
4) Слово состояния процессора.
В качестве слова состояния процессора будет выступать регистр CR0, разрядность которого, согласно IA-32, 32 бита.
n(ССП)=32 [бит].
5) Рабочие программно недоступные регистры.