Проектирование процессора ЭВМ с архитектурой IA-32

Автор работы: Пользователь скрыл имя, 17 Мая 2013 в 00:00, курсовая работа

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

В ходе выполнение данного курсового проекта был разработан процессор с архитектурой Intel-32. Данный процессор выполняет 2 команды, согласно индивидуальному варианту задания: ADD Reg8, Reg8; FCMOVB ST(0), ST(i). К данному курсовому проекту прилагается пояснительная записка, содержащая подробное описание работы процессора, три электрические схемы: структурная, функциональная и принципиальная.
В качестве базовой архитектуры была выбрана архитектура P6, разработанная компанией Intel и лежащая в основе микропроцессоров Pentium Pro, Pentium II, Pentium III, Celeron и Xeon.

Содержание

Введение 5
1 Задание на курсовой проект 6
1.1 Общие аспекты проектирования процессора 6
1.2 Исходные данные 9
2 Архитектура процессора 12
2.1 Формат машинных команд IA-32 12
2.2 Форматы данных 18
2.3 Расчет и выбор разрядности основных узлов процессора 25
2.4 Регистровая модель 26
2.5 Виды адресации 39
3 Структурная организация процессора 41
3.1 Общая структура процессора 41
3.2 Выбор и обоснование элементной базы 43
3.3 Блок обработки данных 44
3.3.1 Блок с фиксированной точкой 44
3.3.2 Блок с плавающей точкой 49
3.4 Управляющий автомат с микропрограммным управлением 49
3.5 Регистровая память 53
3.6 Оперативная память 55
3.7 Блок интерфейса 56
4 Содержательные схемы алгоритмов работы процессора 57
4.1 Общий алгоритм цикла работы процессора 57
4.2 Выборка команд 57
4.3 Формирование исполнительного адреса и выборка операндов 59
4.4 Обработка прерываний 62
4.5 Выполнение двух операций из индивидуального задания 64

5 Микропрограммное управление 67
5.1 Формат микрокоманды 67
5.2 Микропрограмма выполнения операции с плавающей точкой 69
Заключение 72

Прикрепленные файлы: 1 файл

ПЗ Кузьмин.docx

— 2.76 Мб (Скачать документ)

 

 

3.5 Регистровая память

А) Регистры общего назначения представляют собой восемь 32-разрядных регистра и служат для хранения операндов. Реализованы внутри МПС К1804ВС1;

Б) Сегментные регистры представляют собой шесть 16-разрядных регистров. Построены на 16 микросхемах К1804ИР2;

В) Регистр флагов EFLAGS  представляет собой 32- разрядный регистр, содержащий все флаги, предусмотренные архитектурой IA-32. Построен на четырех микросхемах К1804ИР2;

Г) Счетчик адреса команд  представляет собой 32-разрядный регистр. Для доступа к любой строке ОП используется 19 бит и два бита для доступа к определенному полуслову ОП. Построен на четырех микросхемах К1804ИР2;

Д) Регистры блока обработки данных с плавающей точкой представляют собой восемь 80-разрядных регистра, которые используются для хранения чисел с ПТ. Порядок обрабатывается на БФТ, реализованном на 8 микросхемах МПС К1804ВС1. 64 разряда мантиссы обрабатывается на БПТ, реализованном на 16 микросхемах МПС К1804ВС1;

Е) Регистр адреса ОП представляет собой 21-разрядный регистр и хранит адрес команды, которая выполняется в текущий момент. Построен на трех микросхемах К1804ИР2;

Ж) Регистр тегов TW представляет собой 16-разрядный регистр, характеризующий содержимое соответствующего регистра данных R7-0. Построен на двух микросхемах К1804ИР2;

З) Регистр управления CW представляет собой 16-разрядный регистр, предназначенный для управления режимами работы сопроцессора. Построен на 2 микросхемах К1804ИР2;

И) Регистр состояния SW представляет собой 16-разрядный регистр, хранящий указатель на вершину стека FPU (TOP). Построен на двух микросхемах К1804ИР2;

К) Буферный регистр адреса представляет собой 24-разрядный регистр, который используется для предвыборки команды, с целью уменьшения количества обращений в ОП. Построен на трех микросхемах К1804ИР2;

Л) Слово состояния процессора PSW представляет собой 32-разрядный регистр CR0.  Содержит бит PE, который определяет режим адресации. Построен на четырех микросхемах К1804ИР2.

Микросхема К1804ИР2 – 8 разрядный  параллельный регистр, предназначенный для применения в центральных процессорах и других вычислительных устройствах в качестве универсального регистра (адреса, данных, команд, состояния).

Графическое изображение  микросхемы К1804ИР2 представлено на рисунке 25.

Рисунок 25 - Графическое изображение микросхемы К1804ИР2

 

Таблица 7 – назначение выводов микросхемы К1804ВУ4

Вывод

Обозначение

Тип вывода

Функциональное назначение выводов

1

R

Вход

Обнуление регистра

2

DY0

Выход

Данные, 0-й разряд

3

D0

Вход

Данные, 0-й разряд

4

D1

Вход

Данные, 1-й разряд

5

DY1

Выход

Данные, 1-й разряд

6

DY2

Выход

Данные, 2-й разряд

7

D2

Вход

Данные, 2-й разряд

8

D3

Вход

Данные, 3-й разряд

9

DY3

Выход

Данные, 3-й разряд

10

C

Вход

Тактовый сигнал

11

GND

-

Общий

12

DY4

Выход

Данные, 4-й разряд

13

D4

Вход

Данные, 4-й разряд

14

D5

Вход

Данные, 5-й разряд

15

DY5

Выход

Данные, 5-й разряд

16

DY6

Выход

Данные, 6-й разряд

17

D6

Вход

Данные, 6-й разряд

18

D7

Вход

Данные, 7-й разряд

19

DY7

Выход

Данные, 7-й разряд

20

EZDY

Вход

Разрешение выходов данных

21

EWR

Вход

Разрешение записи

22

Uoc

-

Напряжение питания


 

3.6 Оперативная память

Оперативная память имеет  емкость 4 Мб. Слово оперативной памяти составляет 8 байт. Сама оперативная память рассматривается как черный ящик. Слово выбирается или записывается за одно обращение к памяти при помощи мультиплексоров и демультиплексоров. В состав ОП входят запоминающее устройство( РгЗпОП и РгЧтОП), регистр адреса. Чтение и запись в ОП инициируются сигналами ЧтОП и ЗпОп соответственно. 24 разрядный РгАОП, который хранит адрес команды, которая выполняется в текущий момент, построен на трех микросхемах К1804ИР1. РгЧтОП и РгЗпОП построены на четырех  8-разрядных микросхемах К1804ИР2.

 

3.7 Блок интерфейса

 

БИНТ служит для связи  блоков процессора. Он состоит из мультиплексоров, демультиплексоров и логических схем согласующих передачу данных и управляющих сигналов.

Посредством  БИНТ предоставляется  возможность подачи на РгК необходимых разрядов из РгЧтОП или РгБ, осуществляется считывание необходимых байтов из РгК для обработки в БОД, выбор шин входных и выходных данных для БОД, запись в РгЗпОП слово, согласование работы РГЗпОП и ОП.

Также посредством БИНТ происходит выборка адресов регистров в  БОД. Для пересылки данных из БПТ  в БФТ и обратно также используется БИНТ. Управление БИНТ осуществляется подачей управляющих сигналов из БМУ. Для управления записью в регистры используются соответствующие линии. Выбор подаваемых данных на шины данных МПС также осуществляется посредством БИНТ.

 

 

4 Содержательные схемы алгоритмов  работы процессора

4.1 Общий алгоритм цикла работы  процессора

 

Рисунок 26 – Общий алгоритм цикла работы процессора

 

4.2 Выборка команд

Для того, чтобы выполнить  команду, ее необходимо прочитать из ОП в регистр команд (РгК). В зависимости от формата выбираемой команды и ситуации, предшествовавшей выборке данной команды, необходимо выполнить различную совокупность микроопераций для передачи команды из ОП в РгК. Команды любого формата начинаются с целочисленной границы полуслова. Команды длиной в полуслово в 32-разрядной ОП могут располагаться в виде, представленном на рисунке 23. Слово ОП может содержать полностью команду или только ее часть. В 8-байтовом слове ОП могут содержаться четыре команды формата RR.

 

Рисунок 27 – Пример расположения команд в ОП с длиной слова 8 байт

 

Адрес выбираемой команды  хранится в счётчике адреса команд. Элементы информации фиксированной длины должны располагаться в ОП с адреса, кратного числу байтов в элементе (правило целочисленной границы). Из этого следует, что адрес байта может быть произвольным, адрес полуслова должен быть четным, адрес слова - кратен четырем, а адрес двойного слова - восьми. Нарушение изложенного правила рассматривается как неправильная спецификация адреса и обращение к ОП блокируется. Значение последних двух разрядов СчАК указывает, с какого полуслова в ячейке ОП начинается выбираемая команда.

Команды при выполнении программы  обычно выполняются последовательно, поэтому СчАК хранит в себе адрес следующей команды на 1 или 2 больше чем адрес текущей команды. Выполнение команды перехода нарушает последовательный порядок следования команд. Для фиксации порядка следования команд введен триггер перехода ТП, устанавливаемый в состояние 0 при естественном порядке выборки и в состояние 1 – в случае перехода.

В структуре процессора присутствует буферный регистр (БР), который используется только на этапе выборки команды из ОП. В БР заносится часть слова ОП с целью исключения повторного чтения ячейки ОП. Если ТП=0, то содержимое БР используется для формирования команды в РК. Если ТП=1, управление передано команде, отсутствующей в БР и, следовательно, его содержимое не может быть использовано.

При выборке команды адресуемое полуслово (вся команда формата  RR) передается в РК (0:15). Затем анализируется длина команды (РК(0:1)=0 для команд формата RR) и выборка заканчивается увеличением СчАК на 1.

Алгоритм выборки команд из ОП представлен на рисунке 28.

 

4.3 Формирование исполнительного адреса  и выборка операндов

При формировании исполнительного  адреса анализируется поле r/m, где указывается со значением какого из регистров будет складываться смещение, а также режим работы процессора (CR0(0)). В зависимости от этого значения, режим может оказаться реальным или защищённым, и соответственно алгоритм формирования ИА будет отличаться. При недопустимых значения поля R/M или выхода ИА за пределы ОП, вырабатываются сигналы прерывания и вызывается обработчик прерываний. ИА формируется в специальном регистре адреса данных РгАД. Затем из него извлекаются необходимые биты для обращения к соответствующему слову ОП.

 

Рисунок 28 – Алгоритм выборки команд из ОП

 

Рисунок 29 – Алгоритм формирования исполнительного адреса

 

Сформированный исполнительный адрес указывает на адрес ОП, по которому находится 8/16/32-х разрядный операнд, над которым будут совершаться операции. Необходимо извлечь этот операнд из оперативной памяти и поместить его в операционный блок с фиксированной точкой.

Алгоритм извлечения операнда из памяти представлен на рисунке 30.

 

Рисунок 30 – Алгоритм извлечения операнда из памяти

 

4.4 Обработка прерываний

Под прерыванием в общем  случае понимается не только обслуживание запроса внешнего устройства, но и любое нарушение последовательной работы процессора. Например, может быть предусмотрено прерывание по факту некорректного выполнения арифметической операции типа деления на ноль. Или же прерывание может быть программным, когда в программе используется команда перехода на какую-то подпрограмму, из которой затем последует возврат в основную программу. В последнем случае общее с истинным прерыванием только то, как осуществляется переход на подпрограмму и возврат из нее.

Любое прерывание обрабатывается через таблицу векторов (указателей) прерываний. В этой таблице в простейшем случае находятся адреса начала программ обработки прерываний, которые и называются векторами. Длина таблицы может быть довольно большой (до нескольких сот элементов). Обычно таблица векторов прерываний располагается в начале пространства памяти (в ячейках памяти с малыми адресами). Адрес каждого вектора (или адрес начального элемента каждого вектора) представляет собой номер прерывания.

В случае аппаратных прерываний номер прерывания или задается устройством, запросившим прерывание (при векторных прерываниях), или же задается номером линии запроса прерываний (при радиальных прерываниях). Процессор, получив аппаратное прерывание, заканчивает выполнение текущей команды и обращается к памяти в область таблицы векторов прерываний, в ту ее строку, которая определяется номером запрошенного прерывания. Затем процессор читает содержимое этой строки (код вектора прерывания) и переходит в адрес памяти, задаваемый этим вектором. Начиная с этого адреса в памяти должна располагаться программа обработки прерывания с данным номером. В конце программы обработки прерываний обязательно должна располагаться команда выхода из прерывания, выполнив которую, процессор возвращается к выполнению прерванной основной программы. Параметры процессора на время выполнения программы обработки прерывания сохраняются в стеке.

Алгоритм обработки прерываний показан на рисунке 31.

 

Рисунок 31 – Алгоритм обработки прерываний

 

4.5 Выполнение двух операций из  индивидуального задания

1. ADD Reg8, Reg8.

Описание: сложение чисел  с фиксированной точкой.

Алгоритм: осуществляем выборку  операндов из ОП и записываем их в рабочие регистры. Складываем содержимое рабочих регистров, содержащих операнды, и записываем результат по адресу операнда-приемника.

Алгоритм выполнения команды  ADD представлен на рисунке 32.

 

Рисунок 32 – Алгоритм выполнения команды ADD

 

2. FCMOVB ST(0), ST(i).

Описание: если CF=1, то выполнить условный перенос из ST(i) в ST(0).

Алгоритм:

- производится проверка значения флага CF;

- если условие CF=1 выполняется, то выполняется перенос;

- если условие CF=1 не выполняется, то перенос не выполняется.

Алгоритм выполнения команды  FCMOVB представлен на рисунке 33.

 

Рисунок 33 – Алгоритм выполнения команды FCMOV

 

5 Микропрограммное управление

Микропрограммное  управление, вид иерархического управления, при котором каждая команда является обращением к последовательности т. н. микрокоманд, обычно более низкого уровня, чем сама команда.

Достоинства микропрограммного управления состоят в том, что оно обеспечивает операционную гибкость ЦВМ и возможность изменения системы команд и состава машинных операций в зависимости от особенностей решаемых задач и условий применения машины; позволяет сравнительно престо реализовать различные сложные операции при значительной экономии машинного времени; даёт возможность строить диагностические микротесты для определения с большой точностью места неисправности в машине. Основной недостаток микропрограммного управления, — необходимость применения быстродействующих запоминающих устройств небольшого объёма (несколько тыс. слов) с временем обращения, соизмеримым с временем выполнения элементарных операций в исполнительных устройствах. [14]

5.1 Формат микрокоманды

Таблица 8 – Поля микрокоманды

Зона

(№ поля в МК)

Поле

Кол-во

р-ов

Назначение

БФТ

A

4

Выбор операнда из РЗУ

B

4

Выбор операнда из РЗУ

I

9

Микрокоманда

С0

1

Перенос в АЛУ

EA

1

Разрешение данных A

OEY

1

Разрешение выходов Y

OEB

1

Разрешение выходов B

WE

1

Разрешение записи РЗУ

БОЗ

A

4

Выбор операнда из РЗУ

B

4

Выбор операнда из РЗУ

I

9

Микрокоманда

С0

1

Перенос в АЛУ

EA

1

Разрешение данных A

OEY

1

Разрешение выходов Y

OEB

1

Разрешение выходов B

WE

1

Разрешение записи РЗУ

Информация о работе Проектирование процессора ЭВМ с архитектурой IA-32