Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мой курсач.doc
Скачиваний:
2
Добавлен:
16.09.2019
Размер:
756.74 Кб
Скачать

Министерство образования и науки Украины

Донецкий Государственный Институт Искусственного Интеллекта

Д.080403.1.01.05/006.КП

Кафедра технической информатики

КУРСОВой проект

по дисциплине: " Архитектура компьютеров "

Тема: "Разработка структуры гипотетического микропроцессора и центральной части МЭВМ на его базе. Эмуляция выполнения команд"

Руководитель:

_____________ проф. С.М. Вороной

(дата, подпись)

_____________ асс. В.А. Патрушев

(дата, подпись)

Разработал:

_____________ст. гр..

(дата, подпись)

2007

МИНИСТЕРСТВО ОБРАЗОВАННИЯ И НАУКИ УКРАИНЫ

ДОНЕЦКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА

Факультет: Современных компьютерных информационных технологий

Кафедра: Технической информатики

ЗАДАНИЕ НА КУРСОВОЙ ПРОЕКТ

по дисциплине “Архитектура компьютеров”

Студенту:

Группы

(фамилия, имя, отчество)

Тема проекта:

Разработка структуры гипотетического микропроцессора и

центральной части микро ЭВМ на его базе. Эмуляция выполнения команд

Исходные данные к проекту:

Информация о микропроцессоре i80386,

командах ADD, DEC, MUL, MOV, PUSH, JA/JNBE, JMP, реальном режиме

адресации, типе операционного автомата АЛУ ЗМО

Перечень искомых результатов:

Структура гипотетического микропроцессора,

структура АЛУ и микропроцессора, реализующего в АЛУ операции для задан-

ных команд; программа, которая эмулирует выполнение заданного подмножества

команд в разработанной микро ЭВМ.

Рекомендуемая литература:

Абель П. “Язык Ассемблера для IBM PC и

программирования” - перевод с англ.; Юров В. “Assembler – учебник для

ВУЗов”- СПб.; Питер,2002.-624с.: ил.

Дата выдачи задания

19.10.2007

Дата защиты проекта

21.12.2007

Руководители

проф. Вороной С. М.

(подпись)

(должность, Ф. И. О)

асс. Патрушев В.А.

(подпись)

(должность, Ф. И. О)

Разработчик

ст.гр.ПО-05б Бобровникова А.А

(подпись)

РЕФЕРАТ

Пояснительная записка: 46 стр., 16 рисунков, 2 таблиц, 4 приложений.

Основной задачей курсового проекта является знакомство с архитектурой микропроцессора 80386, а также разработка структуры гипотетического микропроцессора, его логики работы, структуры микро-ЭВМ на его основе, создание программы работы гипотетического микропроцессора на основе его команд.

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

МИКРОПРОЦЕССОР, 80386, МИКРО-ЭВМ, СТРУКТУРНАЯ СХЕМА, СТРАНИЧНОЕ ПРЕОБРАЗОВАНИЕ, АЛГОРИТМ, МИКРОПРОГРАММА

Д080403.1.01.05/006.КП

Фамилия

Подпись

Дата

Разработал

Разработка структуры гипотетического микропроцессора и центральной части МЭВМ на его базе. Эмуляция выполнения команд

Литера

Лист

Листов

Рук. проекта

Вороной С.М.

у

3

Патрушев В.А.

ДонГИИИ, каф. ТИ

группа

Н. контроль

Зав. Каф.

Вороной С.М.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ 8

1 АНАЛИЗ СТРУКТУРЫ МИКРОПРОЦЕССОРА ПРОТОТИПА И АЛГОРИТМОВ ВЫПОЛНЕНИЯ ЗАДАННОГО ПОДМНОЖЕСТВА КОМАНД 9

1.1 Структура микропроцессора-прототипа 9

1.2 Адресация основной памяти 13

1.3 Анализ способов адресации операндов и алгоритмов выполнения заданного подмножества команд 14

2 ПОСТАНОВКА ЗАДАЧ ПРОЕКТА 16

2.1 Требования к структуре и интерфейсу гипотетического микропроцессора 16

2.2 Требования к структуре и интерфейсу АЛУ микропроцессора 16

2.3 Требования к структуре микро ЭВМ 16

3 РАЗРАБОТКА АЛУ МИКРОПРОЦЕССОРА 17

3.1 Разработка ОА для отдельных операций АЛУ 17

3.1.1 Разработка ОА для операции сложения ADD 17

3.1.2 Разработка ОА для операции умножения по алгоритму с младших разрядов множителя со сдвигом частичных сумм вправо MUL(A) 17

3.1.3 Разработка ОА для операции декремента DEC 18

3.2 Разработка общего ОА АЛУ 19

3.3 Разработка микропрограмм выполнения операций в АЛУ 20

3.3.1 Арифметическая операция сложения ADD 20

3.3.2 Арифметическая операция беззнакового умножения MUL по алгоритму с младших разрядов множителя со сдвигом частичных сумм вправо 21

3.3.3 Арифметическая операция декремента DEC 21

3.4 Разработка объединенной микропрограммы АЛУ 21

4 РАЗРАБОТКА ГИПОТЕТИЧЕСКОГО МИКРОПРОЦЕССОРA 23

4.1 Разработка структуры микропроцессора 23

4.2 Система команд микропроцессора 24

4.2.1 Команда ADD AL,imm8 24

4.2.2 Команда MUL r8 24

4.2.3 Команда DEC AL 25

4.2.4 Команда MOV r/m8,r8 25

4.2.5 Команда JMP (относительная адресация) 25

4.2.6 Команда JА (относительная адресация) 25

5 РАЗРАБОТКА СТРУКТУРЫ ЦЕНТРАЛЬНОЙ ЧАСТИ МИКРОЭВМ НА БАЗЕ ГИПОТЕТИЧЕСКОГО МИКРОПРОЦЕССОРА 26

5.1 Разработка структуры микроЭВМ 26

5.2 Организация шин микро-ЭВМ 26

5.3 Организация ОЗУ 27

5.4 Микропрограмма работы микро-ЭВМ 28

6 РАЗРАБОТКА ПРОГРАММЫ ЭМУЛЯЦИИ РАБОТЫ МИКРО-ЭВМ 30

6.1 Постановка задачи 30

6.2 Алгоритм работы программы эмуляции 30

6.3 Список процедур и функций 30

6.4 Анализ результатов тестирования программы 31

ВЫВОДЫ 32

ПЕРЕЧЕНЬ ССЫЛОК 33

Приложение А 34

ТЕХНИЧЕСКОЕ ЗАДАНИЕ НА РАЗРАБОТКУ МИКРОЭВМ 34

Приложение Б 36

ТЕХНИЧЕСКОЕ ЗАДАНИЕ НА ПРОГРАММУ-ЭМУЛЯТОР 36

Приложение В 38

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 38

Приложение Г 39

ЭКРАННЫЕ ФОРМЫ 39

Приложение Д 40

ЛИСТИНГ ПРОГРАММЫ 40

Разработал

Фамилия

Подпись

Дата

ДО80403.1.01.05/006.КП

Лист

Ст.

.

4

ПЕРЕЧЕНЬ ОБОЗНАЧЕНИЙ, СИМВОЛОВ, ЕДИНИЦ,

СОКРАЩЕНИЙ И ТЕРМИНОВ

ЭВМ - Электронная вычислительная машина

ОС - Операционная система

ЗУ - Запоминающие устройство

ОЗУ - Оперативное запоминающие устройство

АЛУ - Арифметико-логическое устройство

МП - Микропроцессор

ОА - Операционный автомат

МО - Микрооперация

ПП - Программный продукт

Разработал

Фамилия

Подпись

Дата

ДО80403.1.01.05/006.КП

Лист

ст. гр

5

Введение

Сейчас, когда современные процессоры работают на частотах, превышающих 1000 МГц, мало кто задумывается над принципом их работы. Даже некоторые специалисты в области компьютерных технологий воспринимают процессор как “черный ящик”. Однако известно, что ни одну требовательную к системным ресурсам программу нельзя написать, не учитывая архитектуры ЭВМ, для которой она пишется. Следовательно, сейчас существует потребность в программах, которые наглядно могут продемонстрировать процесс работы программы на самом низком уровне.

Основной целью создания проекта является ознакомление со структурой микропроцессора i80386 и выполнение следующих работ по проектированию микропроцессора: разработка структуры АЛУ, разработка алгоритмов выполнения команд, разработка структуры гипотетического микропроцессора, разработка структуры микро-ЭВМ на базе гипотетического микропроцессора, создание программы эмуляции выполнения заданных команд. Система команд гипотетического микропроцессора является подмножеством системы команд микропроцессора i80386.

Программа эмуляции может быть использована в учебных целях для наглядной демонстрации работы микропроцессора.

1 Анализ структуры микропроцессора прототипа и алгоритмов выполнения заданного подмножества команд

1.1 Структура микропроцессора-прототипа

Гипотетический микропроцессор, разрабатываемый в данном курсовом проекте, основан на архитектуре микропроцессора 80386. Он содержит: регистры общего назначения, сегментные регистры, микропрограммное устройство управления, устройство управления и синхронизации, 32-разрядное арифметико-логическое устройство, регистры указателей, индексные регистры, регистр команд, регистр флагов, устройство сегментации, устройство страничного преобразования.

Общая структурная схема микропроцессора приведена на рисунке 1.1.

Рисунок 1.1 – Общая структурная схема микропроцессора 80386.

Пояснение к схеме:

  1. БАД – буфер адреса данных (используется для передачи и считывания данных из оперативной памяти);

  2. СФА – сумматор физического адреса (блок формирования физического адреса из сегмента и смещения);

  3. РФ – регистр флагов;

  4. АЛУ – арифметико-логическое устройство;

  5. БК – очередь (буфер) команд;

  6. РК – регистр команд;

  7. УУиС – устройство управления и синхронизации;

  8. МУУ – микропрограммное устройство управления;

  9. РО – регистр обмена;

  10. EAX, EBX, ECX, EDX – регистры общего назначения;

  11. ESP, EBP – регистры указателей;

  12. ESI, EDI – индексные регистры;

  13. BR1, BR2 – буферные регистры операндов АЛУ;

  14. CS, DS, SS, ES, FS, GS – сегментные регистры;

  15. EIP – регистр адреса команды.

К регистрам общего назначения относятся:

  • ЕAX – аккумулятор, в основном участвует в арифметических операциях и предназначен для хранения одного из операндов или результата операции. Возможно обращение к первому(AL) или второму(AH) байтам или к обоим вместе(AX);

  • EBX – регистр базы. В основном в нем хранится начальный адрес обрабатываемого массива данных. Возможно обращение к первому(BL) или второму(BH) байтам или к обоим вместе(BX);

  • ECX – используется как счетчик при организации циклов. Возможно обращение к первому(CL) или второму(CH) байтам или к обоим вместе(CX);

  • EDX – регистр данных. В командах умножения и деления сохраняет старшую половину 64-разрядных операндов, а в командах ввода-вывода содержит адрес внешних устройств. Возможно обращение к первому(DL) или второму(DH) байтам или к обоим вместе(DX).

Все регистры общего назначения 32-разрядные.

Регистры указателей ESP и EBP используются для работы со стековым сегментом: ESP – содержит адрес вершины стека, EBP – хранит адрес начального элемента массива данных в стековом сегменте. Эти регистры 32-разрядные. Возможно обращение к младшим 2-м байтам: SP – для регистра ESP и BP – для регистра EBP.

Регистры индексов используются для доступа к элементам массива: ESI – регистр индекса источника, хранит смещение адреса для чтения, EDI – регистр индекса приемника, хранит смещение адреса для записи. Эти регистры также 32-разрядные. Возможно обращение к младшим 2-м байтам: SI – для регистра ESI и DI – для регистра EDI.

Сегментные регистры индексируют глобальную дескрипторную таблицу, в записях которой хранятся базовые адреса сегментов. Используется четыре 16-разрядных сегментных регистра для адресации логических частей программы: CS – регистр сегмента команд, косвенно (через глобальную дескрипторную таблицу) адресует сегмент памяти, в котором хранится выполняемая программа; DS – регистр сегмента данных, косвенно адресует сегмент памяти, содержащий обрабатываемые данные; SS – регистр сегмента стека, косвенно адресует сегмент памяти, называемый сегментом, данные в котором хранятся по принципу LIFO; ES – косвенно адресует регистр дополнительного сегмента, в котором может храниться информация.

Регистр адреса команды EIP – хранит 32-разрядный адрес очередной команды, которая должна извлекаться из сегмента команд памяти.

Регистр команд предназначен для хранения кода операции текущей команды. При необходимости из него считывается непосредственное значение операнда или его адрес в памяти.

РO – регистр, который используется для обмена между устройством сегментации и внутренней шиной процессора.

БА – буферный регистр адреса, БД – буферный регистр данных. Используются для обмена с памятью.

Регистры BR1 и BR2 используются для временного хранения операндов арифметико-логических операций.

Регистр флагов содержит 13 признаков (флагов), характеризующих состояние микропроцессора. Шесть флагов устанавливается в соответствии с результатом выполненной в АЛУ операцией.

VM - обеспечивает режим виртуального 8086 внутри режима виртуальной адресации. При VM = 1 МП будет переключен в режим виртуального 8086, при этом управление перезагрузкой сегментов будет осуществляться подобно 8086, но с исключением 13 недействительных привилегированных команд. VM может быть установлен в режиме виртуальной адресации командой IRET (если уровень приоритета = 0) и задача переключается на более низший уровень.

RF - признак используется совместно с отладочными регистрами контрольных точек (прерываний) или пошагового режима. С его помощью проверяется ход выполнения команд в отладочном режиме (процесс отладки). Если установлен RF (=1), то это позволяет игнорировать ошибки, возникающие при отладке до следующей команды. RF автоматически сбрасывается в 0 при успешном выполнении команды.

NT - признак гнездования задач используется только в режиме виртуальной адресации. NT=1 указывает, что текущая задача является вложенной по отношению к другой задаче. Этот бит устанавливается и сбрасывается при вызове других задач. NT проверяется командой IRET для определения внутри заданного или внешнего по отношению к данной задаче возврата. Команды POPF и IRET будут устанавливать NT в соответствии с тем, что хранится в стеке для любого уровня привилегированности.

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

OF – флаг переполнения, устанавливается в 1, если в результате выполнения операций происходит переполнение разрядной сетки (если перенос из (n-2)-го разряда в(n-1) не совпадает с переносом из (n-1)-го разряда в несуществующий n-ый).

DF – флаг направления передачи, определяет способ изменения адресов источников/приемников кода в командах работы со строками данных. Если DF равен 0, то адреса наращиваются, 1 – уменьшаются.

IF - флаг разрешения прерывания, сброшенный в состояние 0, запрещает обработку запроса на прерывание, а в 1 разрешает ее.

TF - флаг пошагового режима, в 1 - задает специальный режим покомандного выполнения, в котором после обработки каждой команды генерируется программное прерывание.

SF – флаг знака, устанавливается равным старшему (n-1)-му разряду кода результата. При выполнении операций над числами со знаком он соответствует знаку результата, если результат >= 0, будет сброшен в 0, если результат < 0 - будет установлен в 1.

ZF – флаг нулевого результата, принимает единичное значение, если все разряды результата нулевые; если хотя бы один разряд результата отличен от 0, ZF сбрасывается в 0.

CF – флаг переноса, устанавливается в 1, если в результате выполнения операции возник перенос из (n-1)-го разряда результата в несуществующий старший n-й разряд или потребовался заем несуществующего n-го разряда.

PF – флаг паритета, дополняет код результата до нечетного, т.е. устанавливается в 1, если количество единиц в коде результата четно.

AF – флаг вспомогательного переноса, устанавливается в 1, если при выполнении операции произошел перенос из 3 в 4 разряд результата или выполнился заем из 3 в 4 разряд. Используется для десятичной коррекции результата.

Арифметико-логическое устройство предназначено для выполнения арифметических, логических и сдвиговых операций над 8-, 16- и 32-разрядными кодами. Операнды поступают в АЛУ из регистров общего назначения и/или памяти. Результат операции возвращается в регистр общего назначения или в память.

Устройство сегментации преобразует эффективный адрес в линейный, который поступает на вход устройства страничного преобразования. Устройство страничного преобразования формирует из линейного адреса физический.

Микрокомандное устройство управления: формирует сигналы управления работой устройства обработки.

Шина адреса состоит из 32 сигнальных линий, несущих адреса ячеек памяти и портов ввода/вывода. По каждой линии можно передать два возможных значения (0 или 1). Стандартный PC может использовать 2^32 физических адресов.

Системная шина (шина данных). Шина данных совместно с шиной адреса используется для передачи данных внутри PC. Единица передачи 1 байт. Шина данных состоит из 16 информационных линий, каждая передает одну двоичную цифру.