Автор работы: Пользователь скрыл имя, 29 Октября 2013 в 21:20, курсовая работа
Микропроцессор — процессор (устройство, отвечающее за выполнение арифметических, логических операций и операций управления, записанных в машинном коде), реализованный в виде одной микросхемы или комплекта из нескольких специализированных микросхем (в отличие от реализации процессора в виде электрической схемы на элементной базе общего назначения или в виде программной модели).
Долгое время центральные процессоры создавались из отдельных микросхем малой и средней интеграции, содержащих от нескольких единиц до нескольких сотен транзисторов. Развитие микроэлектронных технологий позволило существенно повысить вместимость кристаллов электронных схем. В 1989 году появился микропроцессор Intel486.
Министерство образования и науки РФ
Калужский филиал федерального государственного бюджетного
Образовательного учреждения
высшего профессионального
«Московский Государственный Технический Университет им. Н. Э. Баумана»
Факультет электроники, информатики и управления
Кафедра «Компьютерные системы и сети»
Пояснительная записка
к курсовому проекту по дисциплине
«Организация ЭВМ и систем»
«Проектирование процессора для заданной системы команд»
Выполнил:
студент группы ЭВМ-81
Руководитель:
Онуфриева Т.А.
Микропроцессор — процессор (устройство, отвечающее за выполнение арифметических, логических операций и операций управления, записанных в машинном коде), реализованный в виде одной микросхемы или комплекта из нескольких специализированных микросхем (в отличие от реализации процессора в виде электрической схемы на элементной базе общего назначения или в виде программной модели).
Долгое время центральные
В данном курсовом проекте необходимо разработать микропроцессор, способный выполнять заданные команды (AND r8imm8(MOD = 01), FADD m64real, JCXZ rel8.) из базовой системы команд микропроцессора Intel 486. Так же для реализации данного проекта выданы необходимые данные для расчета оперативной памяти (V = 4ГБ; ширина выборки 16 бит), для разработки устройства управления (автомат Мили, RS-триггер), микропрограммного устройства управления (способ кодирования операционной части – смешанный (вертикально горизонтальный)).
Среди наиболее важных внутренних устройств процессора i486 является наличие целочисленного операционного устройства, устройства с плавающей точкой, устройства управления памятью и кэш-памяти. Благодаря размещению устройств на одном кристалле многие связывающие их сигналы стали внутренними, что обеспечивает большую производительность процессора. Повышение уровня интеграции позволяет сократить размеры печатной платы, а это снижает стоимость и упрощает проектирование систем. В процессоре i486 (как и в процессоре 80386) реализована сегментная и страничная защита памяти. Внутренняя конвейеризация команд сокращает время их выполнения.
Наиболее важные возможности процессора i486:
Совместимость по двоичному коду с процессорами 8086/8088, 80186, 80286, 80386.
Выполнение полного набора арифметических
и логических операций над 8/16/32-битными
данными с использованием полно-разрядного
арифметико-логического
Прямая адресация физической памяти 4 Гбайт при наличии внешних 32-битных шин адреса и данных.
Поддержка внутренним устройством с плавающей точкой 32/64/80-битных форматов чисел, удовлетворяющих стандарту IEEE-754 на операции с плавающей точкой. Это устройство совместимо по двоичному коду с сопроцессорами 8087, 80287, 80387.
Внутренняя кэш-память со сквозной записью может хранить 8 Кбайт данных и команд.
В процессоре предусмотрено управление обратной записью и очисткой внешней кэш-памяти.
Совмещение выборки, декодирования, выполнения команды и преобразование адреса, т.е. конвейеризация команд, обеспечивает выполнение многих команд за один такт.
Пакетные циклы позволяют
С помощью внутренних буферов записи процессор после записи продолжает внутренние операции, не ожидая окончания операции записи на шине.
0бщий формат команды процессора i486 приведен на Рис. 1. Команды состоят из необязательных префиксов, одного или двух байт главного кода операции, спецификатора адреса, представленного байтами mod r/m и sib, смещения в команде (displacement) и непосредственных данных. Английские аббревиатуры означают следующее: Base — база, MODe — режим, Register/Memory — регистр/память, Scale — масштаб, Index — индекс. Из всех полей команды обязательными являются только один или два байта кода операции.[1]
Префикс — это байт со специальным кодированием, который модифицирует операцию одной находящейся за ним команды.
Рис. 1. Общий формат команд
Во многих командах процессора байты ModR/M и SIB следуют за байтом (байтами) кода операции. Эти байты содержат следующую информацию:
1. тип индексации или номер регистра, используемого в команде;
2. используемый регистр или дополнительную информацию о коде операции;
3. информацию о базе, индексе и масштабе.
Байт ModR/M состоит из трех информационных полей:
1. поле mod содержит два наиболее значимых бита (7 и 6 биты) и в комбинации с полем r/m определяет 32 возможных типа адресации (8 регистровых и 24 индексных);
2. поле reg содержит следующие за полем mod три бита (5, 4 и 3 биты) и определяет либо номер регистра, либо три дополнительных бита кода операции;
3. поле r/m содержит три последних значащих бита байта ModR/M (2, 1 и 0 биты) и может определять номер регистра, в котором находится операнд, или представлять совместно с полем mod 32 возможных типа адресации.
32-битные базовые и
1. поле ss, занимающее два наиболее значимых бита (7 и 6 биты), определяет масштабный множитель;
2. поле index, занимающее следующие три бита за полем ss (5, 4, и 3 биты), определяет номер индексного регистра;
3. поле base, занимающее оставшиеся три бита (2, 1 и 0 биты), определяет номер базового регистра.
На рис. 2 показаны форматы ModR/M и SIB байтов.
Рис. 2. Формат байтов ModR/M и SIB
Устройство FPU имеет пять форматов команд, представленных на Рис. 3. Во всех форматах минимальная длина команды составляет два байта и все команды начинаются с двоичного набора 11011В, который выделяет класс команд устройства FPU. [2]
Команды с форматами, показанными на Рис. 3 (а,б), выполняют обращение к памяти, поэтому поля mod (режим) и r/m (регистр/память) во втором байте, а также байт sib (масштаб, индекс, база) имеют тот же смысл, что и в командах целочисленного устройства. Эти поля определяют, как формируется эффективный адрес ЕА памяти.
Команды с форматом, показанном на Рис. 3 (б), выполняют арифметические операции и операции сравнения. Поле формата памяти MF определяет тип операнда, находящегося в памяти. Оно имеет следующее кодирование:
00 - вещественное число одинарной точности (32 бита),
01 - короткое целое двоичное число (32 бита),
10 - вещественное число двойной
точности (64 бита), И - целое слово
(16 бит) или упакованное
Во всех остальных форматах поле mod содержит комбинацию 11В. В командах целочисленного устройства эта комбинация задает режим регистровой адресации, который не относится к устройству FPU. Именно такие команды целочисленное устройство «пропускает», не производя никаких действий.
Рис. 3. Формат команды для блока FPU
В своей работе процессор
может оперировать
Различные форматы данных отличаются длиной (количеством бит, отводимых для числа) и назначением отдельных битов или групп битов. В современных процессорах, которые поддерживают несколько наборов команд, соответственно, поддерживается и несколько наборов различных форматов. В курсовом проекте применяются базовые форматы, которые используются стандартными командами при операциях с числами в регистрах и памяти. Формат данных представлен на рис. 4.
Рис.4. Форматы целочисленных данных
Целые числа могут занимать байт, слово или двойное слово. Они могут быть знаковыми и беззнаковыми. В знаковых целых самый старший бит байта, слова или двойного слова, занимаемого числом, отводится для индикации знака числа. Нуль соответствует плюсу, 1 — минусу. Таким образом, возможный диапазон представляемых значений для знаковых целых составляет: от –128 до +127 для байтовых величин, от –32768 до +32767 для слов, от –231 до 231-1 для двойных слов. Беззнаковые целые могут принимать значения: от 0 до 255 для байтовых величин, от 0 до 65535 для слов, от 0 до 232-1 для двойных слов.
В устройстве FPU все числа хранятся в едином 80-битном расширенном формате(рис. 5). Используемые численные форматы приведены в таблице 1:
Таблица 1. основные параметры двоичных чисел.
Формат |
Длинна числа |
Разрядность мантиссы |
Диапазон значений |
Смещение порядка |
Размерность порядка |
Двойной точности |
64 |
52 |
10-308.. 10308 |
+1023 |
11 |
Расширенный |
80 |
64 |
10-4932.. 104932 |
+16383 |
15 |
Рис.5. Форматы вещественных данных
Для индикации знака отводится один самый старший бит числа, 1 соответствует отрицательным числам, 0 — положительным. В следующих (более младших) битах располагается поле порядка, оно занимает 11 или 15 бит в зависимости от формата.
Для поля порядка не предусмотрено отдельного бита знака, здесь применяется смещенный порядок, он равен сумме реального значения порядка и некоторой константы с последующим кодированием этой суммы. Таким образом, все кодируемые значения положительны. С учетом применяемых в различных форматах констант (1023 для длинных вещественных, 16383 для временных вещественных) в поле порядка могут кодироваться следующие значения для порядка: от –126 до 127 для коротких вещественных, от –1022 до 1023 для длинных вещественных, от –16382 до 16383 для временных вещественных.
Поле мантиссы занимает самые младшие биты. Его интерпретация зависит от применяемого формата. Для коротких и длинных вещественных самый старший бит мантиссы подразумевается равным единице для нормализованных величин и опускается. Таким образом, в форматах коротких и длинных вещественных поле мантиссы содержит только дробную часть числа. В формате расширенной точности старший бит мантиссы соответствует целой части мантиссы, все последующие младшие биты соответствуют дробной части мантиссы.
В данном курсовом проекте используются несколько форматов данных. Для реализации команды AND используется формат однобайтового знакового целого числа для операнда, хранящегося в РОН и для непосредственного операнда, содержащегося в коде команды. Для команды FADD применяются два типа форматов данных. Первый операнд команды, хранящийся в стеке FPU, представлен в 80-битном расширенном формате для чисел с плавающей запятой. Второй операнд, находящийся в памяти, представлен в 64-битном формате для числом с плавающей запятой. При выполнении команды JCXZ используется формат однобайтового целого знакового числа для хранения смещения и формат беззнакового 32-битного целого числа для хранения значения счетчика команд.
Регистр флагов отражает текущее состояние процессора, многие из его битов устанавливаются после выполнения операций и индицируют тип, полученного результата. Формат регистра флагов приведен на Рис.6.
Рис.6. Формат регистра флагов
1.Флажок переноса CF фиксирует значение бита переноса (заёма), возникающего при сложении (вычитании) байт или слов, а также значение выдвигаемого бита во всех операциях сдвигов. Кроме того, он отражает особенность результата операций сравнения и умножения
2. Флажок паритета PF (или четности) показывает наличие четного (0) или нечетного (1) числа единиц в младшем байте результата.
3. Флажок вспомогательного
4. Флажок нуля ZF сигнализирует о получении нулевого результата операции.
5. Флажок знака SF повторяет значение
старшего бита результата, который
в дополнительном коде
6. Флажок переполнения OF отмечает
потерю старшего бита
Основные функциональные регистры приведены на Рис 7:
Рис. 7. РОНы
Регистры общего назначения (РОН) EAX, EBX, ECX, EDX 32-разрядные, причем каждый из них может использоваться либо как единое целое, либо только своей младшей 16-разрядной частью (AX, BX, CX, DX). В свою очередь, эти 16-разрядные части допускают независимое использование своих младших (LOW) и старших (HIGH) половин, то есть фактически 8-разрядных регистров (AH и AL, BH и BL и т.д.).
Основу программной модели устройства FPU, показанной на Рис. 8, образует регистровый стек из восьми 80-битных регистров данных R0 — R7, называемых также численными или арифметическими регистрами. В этих регистрах хранятся числа, представленные в форме с плавающей точкой в расширенном вещественном формате. В любой момент времени трехбитное поле TOP в слове состояния SW (Рис. 9) определяет регистр, являющийся текущей вершиной стека и обозначаемый ST(0) или просто ST.
Информация о работе Проектирование процессора для заданной системы команд