Автор работы: Пользователь скрыл имя, 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
Основными типами данных для архитектуры IA-32 являются байт, слово, двойное слово, четверное слово.
Среди цифровых данных можно выделить две группы:
- целые типы, используемые для представления целых чисел;
- вещественные типы для
представления рациональных
В рамках первой группы имеется несколько форматов представления численной информации, зависящих от ее характера. Для представления вещественных чисел используется форма с плавающей запятой.
1. Числа в форме с фиксированной запятой
Представление числа X в форме с фиксированной запятой (ФЗ), которую иногда называют также естественной формой, включает в себя знак числа и его модуль в q-ичном коде. Здесь q — основание системы счисления или база. Для современных ВМ характерна двоичная система (q = 2), но иногда используются также восьмеричная (q = 8) или шестнадцатеричная (q = 16) системы счисления. Запятую в записи числа называют соответственно двоичной, восьмеричной или шестнадцатеричной. Знак положительного числа кодируется двоичной цифрой 0, а знак отрицательного числа — цифрой 1.
Числам с ФЗ соответствует запись вида: X = ±an-1...a1a0a-1a-2…a-r Отрицательные числа обычно представляются в дополнительном коде. Разряд кода числа, в котором размещается знак, называется знаковым разрядом кода. Разряды, где располагаются значащие цифры числа, называются цифровыми разрядами кода. Знаковый разряд размещается левее старшего цифрового разряда. Положение запятой одинаково для всех чисел и в процессе решения задач не меняется. Хотя запятая и фиксируется, в коде числа она никак не выделяется, а только подразумевается. В общем случае разрядная сетка ВМ для размещения чисел в форме с ФЗ имеет вид, представленный на рисунке 1, где n разрядов используются для записи целой части числа и r разрядов — для дробной части.
Рисунок 1 - Формат представления чисел с фиксированной запятой
При заданных значениях n и r диапазон изменения модулей чисел, коды которых могут быть представлены в данной разрядной сетке, определяется соотношением Q-r = |X| = qn-q-r.
Если число является смешанным (содержит целую и дробную части), оно обрабатываются как целое, хотя и не является таковым (в этом случае применяют термин масштабируемое целое). Обработка смешанных чисел в ВМ встречается крайне редко. Как правило, используются ВМ с дробной (n = 0) либо целочисленной (r = 0) арифметикой. При фиксации запятой перед старшим цифровым разрядом могут быть представлены только правильные дроби. Для ненулевых чисел возможны два варианта представления (нулевому значению соответствуют нули во всех разрядах): знаковое и беззнаковое.
Рисунок 2 - Представление дробных чисел в формате ФЗ
При фиксации запятой после младшего разряда представимы лишь целые числа. Это наиболее распространенный способ, поэтому в дальнейшем понятие ФЗ будет связываться исключительно с целыми числами, а операции с числами в форме ФЗ будут характеризоваться как целочисленные. Здесь также возможны числа со знаком и без знака:
Рисунок 3 - Представление целых чисел в формате ФЗ
На рисунке 4 приведены целочисленные форматы с фиксированной запятой, принятые в микропроцессорах фирмы Intel.
Целые числа применяются также для работы с адресами. На рисунке 4 это 32-разрядный формат ближнего и 48-разрядный формат дальнего указателей.
Представление чисел в формате ФЗ упрощает аппаратурную реализацию ВМ и сокращает время выполнения машинных операций, однако при решении задач необходимо постоянно следить за тем, чтобы все исходные данные, промежуточные и окончательные результаты не выходили за допустимый диапазон формата, иначе возможно переполнение разрядной сетки и результат вычислений будет неверным.
2. Числа в форме с плавающей запятой
От недостатков ФЗ в
значительной степени свободна форма
представления чисел с
Для представления числа в форме с ПЗ требуется задать знаки мантиссы и порядка, их модули в q-ичном коде, а также основание системы счисления (рисунок 5). Нормальная форма неоднозначна, так как взаимное изменение m и p приводит к «плаванию» запятой, чем и обусловлено название этой формы.
Рисунок 5 - Форма представления чисел с плавающей запятой
Диапазон и точность представления чисел с ПТ зависят от числа разрядов, отводимых под порядок и мантиссу.
Помимо разрядности порядка и мантиссы диапазон представления чисел зависит и от основания используемой системы счисления, которое может быть отличным от 2. Например, в универсальных ВМ (мэйнфреймах) фирмы IBM используется база 16. Это позволяет при одинаковом количестве битов, отведенных под порядок, представлять числа в большем диапазоне.
В большинстве вычислительных машин для упрощения операций над порядками последние приводят к целым положительным числам, применяя так называемый смещенный порядок. Для этого к истинному порядку добавляется целое положительное число — смещение (рисунок6). Обычно смещение выбирается равным половине представимого диапазона порядков. Отметим, что смещенный порядок занимает все биты поля порядка, в том числе и тот, который ранее использовался для записи знака порядка.
Рисунок 6 - Формат числа с ПЗ со смещенным порядком
Мантисса в числах с ПЗ обычно представляется в нормализованной форме. Это означает, что на мантиссу налагаются такие условия, чтобы она по модулю была меньше единицы (|q| < 1), а первая цифра после точки отличалась от нуля. Полученная таким образом мантисса называется нормализованной.
На рисунке 7 представлен типичный 32-битовый формат числа с ПЗ. Старший (левый) бит содержит знак числа. Значение смещенного порядка хранится в разрядах с 1 -го по 8-й и может находиться в диапазоне от 0 до 255. Для получения фактического значения порядка из содержимого этого поля нужно вычесть фиксированное значение, равное 128. С таким смещением фактические значения порядка могут лежать в диапазоне от -128 до +127. В примере предполагается, что основание системы счисления равно 2. Третье поле слова содержит нормализованную мантиссу со скрытым разрядом (единицей). Благодаря такому приему 23-разрядное поле позволяет хранить 24-разрядную мантиссу в диапазоне от 0,5 до 1,0.
Рисунок 7 - Типичный 32-битовый формат числа с плавающей запятой
В данной работе используется 80-разрядный блок обработки чисел с плавающей запятой. Формат представления 80-разрядного числа с плавающей запятой представлен на рисунке 8.
3. Десятичные числа
В ряде задач, главным образом,
учетно-статистического
Используются два формата представления десятичных чисел (все числа рассматриваются как целые): зонный (распакованный) и уплотненный (упакованный). В обоих форматах каждая десятичная цифра представляется двоичной тетрадой, то есть заменяется двоично-десятичным кодом. Из оставшихся задействованных шести четырехразрядных двоичных комбинаций (24 - 16) две служат для кодирования знаков «+» и «-».
Зонный формат применяется в операциях ввода/вывода. В нем под каждую цифру выделяется один байт, где младшие четыре разряда отводятся под код цифры, а в старшую тетраду (поле зоны) записывается специальный код «зона», не совпадающий с кодами цифр и знаков. Исключение составляет байт, содержащий младшую цифру десятичного числа, где в поле зоны хранится знак числа. В некоторых ВМ принят вариант зонного формата, где поле зоны заполняется нулями.
При выполнении операций сложения и вычитания над десятичными числами обычно используется упакованный формат и в нем же получается результат (умножение и деление возможно только в зонном формате). В упакованном формате каждый байт содержит коды двух десятичных цифр. Правая тетрада последнего байта предназначается для записи знака числа. Десятичное число должно занимать целое количество байтов. Если это условие не выполняется, то четыре старших двоичных разряда левого байта заполняется нулями. Размещение знака в младшем байте, как в зонном, так и в упакованном представлениях, позволяет задавать десятичные числа произвольной длины и передавать их в виде цепочки байтов. В этом случае знак указывает, что байт, в котором он содержится, является последним байтом данного числа, а следующий байт последовательности — это старший байт очередного числа.
2.3 Расчет и выбор разрядности основных узлов процессора
А) Регистр команд (РгК).
Разрядность активизированного регистра сдвига зависит от значения, загруженного в регистр команд. То есть, на разрядность РгК влияет длина самой длинной команды. В данном случае это команды ADD и FCMOVB. Максимальная длина которых составляет 2 байта. Следовательно, разрядность РгК будет составлять 2 байта (16 бит).
Б) Счетчик адреса команд (СчАК).
Счетчик адреса команд обеспечивает адресацию к любой команде в ОП Минимальный объем команды составляет 2 байта. Разрядность счетчика адреса команд рассчитывается по формуле:
В качестве счетчика команд выступает определенный архитектурой регистр EIP, хранящий смещение следующей исполняемой команды относительно сегмента кода, разрядность составляет 32 бита. [14]
Однако, т.к. размер памяти по заданию будет использовать 22 разряда.
В) Длина регистра адреса оперативной памяти (РгАОП) зависит от объема и длины слова ОП. Разрядность РгАОП определяется по формуле:
L – длина слова оперативной памяти.
Объем ОП составляет 4 Мбайт, а длина слова ОП – 8 байт. По формуле:
Г) Регистры чтения и записи оперативной памяти хранят данные, получаемые/отправляемые в память. Поскольку обращения происходят на уровне слов, разрядность этих регистров равна разрядности слова: 8 байт (64 бита).
Д) Слово состояния процессора – Processor Status Word (ССП) представляет из себя 32-х разрядный управляющий регистр CR0,содержащий ряд флагов, управляющих различными режимами работы микропроцессора.
Е) Буферный регистр адреса служит для приема и хранения адресной части исполняемой команды и необходим для уменьшения количества обращений к ОП. Его разрядность вычисляется по формуле L-1 (длина слова ОП минус 1 байт). Таким образом, 8 байт - 1 байт = 7 байт.
Ж) К программно-недоступным регистрам относятся РгАОП, РгК, РгБ, ЧтОП, ЗпОП и необходимые для осуществления работы блока FPU.
2.4 Регистровая модель
Регистры общего назначения предназначены для хранения операндов арифметико-логических инструкций, а также адресов или отдельных компонентов адресов ячеек памяти. К РОН относятся:
- EAX — аккумулятор. Использовался для хранения операндов в командах умножения и деления, ввода-вывода, в некоторых командах обработки строк и других операциях;
- EBX — регистр базы. Используется для хранения адреса или части адреса операнда, находящегося в памяти;
- ECX — счётчик. Содержит количество повторений строковых операций, циклов и сдвигов;
- ESI — регистр адреса источника. Используется в строковых операциях, а также в качестве индексного регистра при обращении к операндам в памяти;
- EDX — регистр данных. Используется для косвенной адресации портов ввода-вывода, а также как «расширитель» аккумулятора в операциях удвоенной разрядности;
- EDI — регистр адреса приёмника. Используется в строковых операциях, а также в качестве индексного регистра при обращении к операндам в памяти;
- EBP — указатель кадра стека. Используется для адресации операндов, расположенных в стеке;
- ESP — указатель стека. Используется при выполнении операций со стеком, но не для явной адресации операндов в стеке.
Для Младших 16 разрядов всех регистров используют соответствующие имена: AX, BX, CX, DX, BP, SI, DI, SP; для старших байтов AX, BX, CX, DX используют имена: AH, BH, CH, DH; AL, BL, CL и DL - для младших байтов. [16]
Информация о работе Проектирование процессора ЭВМ с архитектурой IA-32