Автор работы: Пользователь скрыл имя, 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
- MP - наличие сопроцессора (Math Present, 286+). Влияет на выполнение команды WAIT/FWAIT, которая используется для взаимодействия с сопроцессором;
- EM - эмуляция сопроцессора (Emulation, 286+). Показывает, нужно ли эмулировать функции сопроцессора. Установка бита EM часто возникает в случае отсутствия сопроцессора в системе. Когда EM=1, любая команда для сопроцессора, команда MMX или SSE/SSE2 вызывает особый случай;
- TS - задача переключена (Task Switched, 286+). Процессор устанавливает этот бит при каждом переключении задач. Он также проверяет этот бит, когда интерпретирует команды сопроцессора, так как состояние последнего требуется сохранять только в случае запроса сопроцессора новой задачей. Бит TS может быть очищен загрузкой в регистр CR0, а также специальной командой CLTS;
- 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#, который должен обрабатываться внешним контроллером прерываний;
- 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+). Используется для управления кэшированием;
- CD - запрещение кэш-памяти (Cache Disable, 486+). Используется для управления кэшированием;
- PG - страничная трансляция (Paging, 386+). Определяет, использует ли микропроцессор таблицы страниц для трансляции линейных адресов в физические. Страничная трансляция используется только в защищенном режиме, и попытка выставить этот бит в реальном режиме приводит к нарушению общей защиты (исключение #13).
2.5 Виды адресации
В архитектуре IA-32 существует широкий диапазон видов адресации. К ним относятся:
- косвенно-регистровая адресация. Относительный адрес ЕА содержится в индексном (SI, DI, ESI, EDI) или базовом (BX, EBX) регистрах или регистрах общего назначения (EAX, ECX, EDX). Данный способ реализуется при значении поля MOD = 00;
- прямая адресация. Адрес операнда ЕА содержится в команде в виде смещения d16 или d32. Данный способ адресации реализуется при значениях полей MOD = 00 и R/M = 110 для 16-разрядного ЕА или MOD = 00 и R/M = 101 для 32-разрядного ЕА;
- базовая адресация. Адрес ЕА формируется путем сложения базового регистра (BX, BP) и смещения d8 или d16. Реализации этого способа возможна при MOD = 01 или 10 и значениях R/M = 110 или 111 для 16-разрядного ЕА и при MOD = 01 или 10 и значениях R/M = 011 или 101 для 32-разрядного ЕА;
- индексная адресация. Относительный адрес формируется путем сложения содержимого индексного регистра (SI, DI) и смещения d8 или d16. Для реализации индексной адресации задают значение MOD = 01 или 10 и R/M = 100 или 101. Для 32-разрядного ЕА в качестве базового или индексного регистра может применяться любой из регистров EAX, EBX, ECX, EDX, ESI, EDI, EBP;
- базово-индексная адресация (БИА). Адрес ЕА вычисляется путем сложения содержимого базового (ВХ, ВР) и сегментного (SI, DI) регистров. Данный способ реализуется при значениях полей R/M = 000, 001, 010, 011 и MOD = 00;
- базово-индексная адресация со смещением. Вариант БИА, при котором к относительному адресу ЕА добавляется смещение d8 или d16. Данный способ осуществляется при значениях поля MOD = 01 или 10;
- индексная адресация с масштабированием. Относительный адрес операнда ЕА вычисляется сложением произведения содержимого индексного регистра и масштабирующего коэффициента со смещением d32. Этот способ осуществляется при MOD = 00 и значении поля BASE = 101;
- базово-индексная адресация с масштабированием. Относительный адрес образуется сложением произведения содержимого индексного регистра и масштабирующего коэффициента с базой, в качестве которой может выступать содержимое следующих регистров EAX, EBX, ECX, EDX, ESI, EDI и ESP. Выбор базового регистра задается полем BASE при MOD = 00;
- базово-индексная адресация со смещением и масштабированием. Относительный адрес ЕА формируется сложением произведения содержимого индексного регистра и масштабирующего коэффициента с базой и смещением d8 или d32. Поле BASE задает выбор базового регистра, а поле MOD = 01 или 10 определяет разрядность смещения.
3
Структурная организация
3.1 Общая структура процессора
Общая структура процессора представлена на рисунке 20.
Рисунок 20 – Общая структура процессора
Процессор содержит следующие основные блоки:
А) Устройство управления служит для управления работой компьютерной системы в целом и работой центрального процессора (сопроцессора) в частности. Основная же его задача – дешифрация поступающих в процессор команд и формирование сигнала на выполнение тех или иных операций в арифметико-логическом устройстве. Устройство управления также ответственно за передачу данных в центральном процессоре, между процессором и памятью, процессором и устройствами ввода-вывода, за извлечение или посылку данных по адресной шине и т.п. [11]
Б) АЛУ – функциональная часть ЦВМ, предназначенная для выполнения операций преобразования (обработки) величин: арифметических, логических (поразрядных), сдвига. АЛУ является одним из основных устройств процессора. Оно выполняет одну из первых функций микропроцессора – обработку данных и вычисления.
На вход АЛУ подаются данные в двоично-кодированном виде. Слово «двоично-кодированные» означает, что все данные (числа, символы и т.п.) представляются в виде последовательности двоичных цифр – нулей и единиц. Отметим, что ЦВМ способна воспринимать только двоично-кодированные данные. Обычно АЛУ может оперировать с одним или сразу с двумя двоичными данными, в роли которых, как правило, выступают двоичные числа, и всегда возвращает один результат. Поступающие на вход данные автор, в зависимости от контекста, будут называться числами, аргументами или операндами. Кроме данных, на это устройство поступают сигналы – преобразованные устройством управления операторы программы (команды), указывающие, какие операции нужно произвести над данными. Кроме того, на выходе арифметико-логическое устройство выдает также сигналы – признаки успешного или некорректного (типа деления на ноль) результата. АЛУ бывает универсальным и специализированным. [9]
В) РП – регистровая память. Блок регистровой памяти используется для хранения операндов, а также для хранения индексов и адресов при обращении к стековой или оперативной памяти. Этот блок регистров имеет более высокое, чем ОЗУ быстродействие и предназначен для повышения производительности процессора. Включает в себя набор регистров для хранения информации; [14]
Г) Оперативная память компьютера - это часть системы памяти ЭВМ, в которую процессор может обратиться за одну операцию (jump, move и т. п.). Предназначена для временного хранения данных и команд, необходимых процессору для выполнения им операций. Оперативная память передаёт процессору команды и данные непосредственно, либо через кэш-память. Каждая ячейка оперативной памяти имеет свой индивидуальный адрес. В современных вычислительных устройствах, оперативная память выполнена по технологии динамической памяти с произвольным доступом. [16]
Д) БИНТ – Блок интерфейса с магистралью обеспечивает интерфейс между микропроцессором и его окружением. Он принимает внутренние запросы для выборки команд от блока предварительной выборки команд и для обмена данными с исполнительным блоком и устанавливает приоритет этих запросов. Одновременно он генерирует или обрабатывает сигналы для исполнения текущего цикла магистрали. К ним относятся сигналы адреса, данных и управления для обращения к внешней памяти и устройствам ввода-вывода. Также этот блок управляет интерфейсом с внешними задатчиками магистрали и сопроцессорами. [14]
Е) ШОС – шина осведомительных сигналов. Шина для связи и передачи осведомительных сигналов из АЛБ, РП, ОП в УУ;
Ж) ШУ – шина управления – предназначена для передачи управляющих сигналов от БМУ к блокам АЛБ, РП и ОП.
3.2
Выбор и обоснование
При схемотехническом проектировании на интегральных схемах возникает проблема, связанная с высокой сложность правильного выбора элементной базы. Существует большое количество способов реализации отдельных узлов, блоков и устройств.
При выборе элементной базы основное внимание обращается на такие критерии как быстродействие и производительность, цена и надежность, универсальность используемых элементов, простота реализации и применения, потребляемая мощность и нагрузочная способность.
Секционные микропроцессоры
обеспечивают построение высокопроизводительных
универсальных компьютеров
Для реализации БФТ были выбраны микросхемы, предложенные в индивидуальном задании, серии К1804ВС1, соединенные по схеме ускоренного переноса К1804ВР1. Регистровая модель процессора организована на микросхемах К1804ИР2.
3.3 Блок обработки данных
3.3.1 Блок с фиксированной точкой
Блок обработки чисел с фиксированной запятой должен выполнять команду ADD Reg8, Reg8, заключающуюся в сложении содержимого двух 8-разрядных РОНа и с записью результата в первый РОН. БФТ построен на 8 микропроцессорных секциях К1804ВС1, разрядностью 4 бита каждая. Для выполнения параллельного переноса БФТ дополнен 3 схемами ускоренного переноса К1804ВР1, которые уменьшают время вычислений при переносе разряда из одной МПС в другую. В данной МПС находится РЗУ, содержащее 16 четырёх разрядных регистра. 8 из них будут использоваться как РОНы.
Структурная схема К1804ВС1 показана на рисунке 21.
Рисунок 21 – Структурная схема МПС К1804ВС1
Любые два слова РЗУ, адресуемые через адресные порты А и В, можно одновременно считывать на соответствующие внутренние шины данных А и В. Если адреса А и В совпадают, то на шинах данных А и В появляется одно и то же слово. Регистры РгА, РгВ, стоящие на выходных портах данных А и В РЗУ, пропускают данные, если на вход Т подано напряжение высокого уровня. Если на вход Т подано напряжение низкого уровня, то в регистрах хранятся последние данные, поступившие из РЗУ.
Данные с выхода СдF записываются в РЗУ по адресу В при напряжении низкого уровня на входе Т; при высоком уровне на входе Т ячейки РЗУ переводятся в режим хранения/считывания.
Селектор источников данных (СИД) предназначен для выбора операндов R и S АЛУ. Для выбора операндов АЛУ используются входы I2 – I0 микрокоманды.
Арифметико-логическое устройство выполняет три арифметических и пять логических функций над операндами R и S.
При наращивании разрядности микросхемы могут соединяться по схеме ускоренного переноса или по схеме с последовательным переносом. Для соединения АЛУ микросхем по схеме ускоренного переноса используются выходы P и G. Остальные выходы (Z, F3, OVR) служат для выдачи результата функции АЛУ. Выход Z (открытый коллектор) является признаком нулевого результата. Если на выходах F АЛУ все разряды имеют нулевое значение, то на выходе Z устанавливается высокий уровень. Выход F3 соединен со старшим (знаковым) разрядом выхода АЛУ. Выход OVR показывает, что результат выполнения арифметической операции выходит за границу разрядности чисел в дополнительном коде.
Селектор выходных данных (СВД) представляет собой двухвходовый коммутатор, который в зависимости от состояния сигналов на входах I8 – I6 выдает на шины Y функцию АЛУ или выход канала А РЗУ. При ОЕ = 1 выходы селектора Y переводятся в состояние «отключено».
Результат АЛУ может быть записан в РгQ по положительному фронту тактового сигнала Т при наличии внутренних сигналов разрешения записи, определяемых кодом микрокоманды. Сдвигатель СдQ, стоящий на входе регистра, обеспечивает возможность сдвига его содержимого на один разряд влево или вправо. Для организации сдвигов содержимого РгQ в системе микропроцессорных секций имеются двунаправленные выводы сдвига PQ3, PQ0. Сдвигатель СдQ выполняет только логические сдвиги. Во время сдвига в сторону младших разрядов двунаправленный вывод PQ3 является входом, а PQ0 – выходом. При сдвигах в сторону старших разрядов вывод PQ0 является входом, а PQ3 - выходом.
Сдвигатель функции АЛУ СдF обеспечивает логический сдвиг вправо (влево) данных перед их записью в РЗУ. Выводы PR3, PR0 аналогичны соответствующим выводам PQ3, PQ0 и служат для наращивания разрядности.
Информация о работе Проектирование процессора ЭВМ с архитектурой IA-32