Uploaded by Urii Gord

Курсовая

advertisement
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего
профессионального образования
«РЯЗАНСКИЙ ГОСУДАРСТВЕННЫЙ РАДИОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Кафедра ЭВМ
К защите
Руководитель проекта
дата, подпись
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
К КУРСОВОМУ ПРОЕКТУ
по дисциплине
«Организация ЭВМ и систем»
по теме
«Проектирование процессора с плавающей точкой»
Выполнил студент группы 041
Гордеев Юрий Алексеевич
дата сдачи на проверку, подпись
Руководитель проекта
старший преподаватель
Елесина С.И.
оценка
Рязань 2011
дата защиты, подпись
Техническое задание
1. Система команд:

FMul m64real — умножение;

FRStor m86byte — замена текущего значения регистров состояния (CW, SW, TW) и стека
из области памяти, определенной операндом;
2. Емкость ОП: 4 Кбайта;
3. Длина слова ОП: 64 бита;
4. Моделирование: Mul (умножение с анализом младшего бита множителя со сдвигом
множимого).
2
Обозначения и сокращения

ППТ - процессор с плавающей точкой;

РТ - расширенная точка;

ОП - оперативная память;

БПФ - блок преобразования форматов;

БР - блок регистров;

БОД - блок обработки данных;

БМУ - блок микропрограммного управления;

МК — микрокод;

ОС - осведомительный сигнал;

EAR - адресный регистр;

RGRW - регистр чтения — записи;

БП - блок памяти;

ФРСЗ - формирователь сигналов разрешения записи;

ППФ - прямое преобразование форматов;

ОПФ - обратное преобразование форматов;

КПП - коммутатор прямого позиционирования;

КОП - коммутатор обратного позиционирования;

ST - стековый регистр;

TW - регистр тегов;

CW - регистр управления;

SW - регистр состояния;

COMP — компаратор;

БВО - блок выполнения операций;

УПМ - схема управления последовательности микрокоманд;

МКУ - мультиплексор кода условия;

ИКУ - инвертор кода условия;

CMK - счетчик микрокоманд;

ПКОп - преобразователь кода операции;

МК МУАД - мультиплексор адреса;

ПЗУК - память констант.
3
Содержание
Техническое задание ................................................................................................................................... 2
Обозначения и сокращения ........................................................................................................................ 3
1. Введение................................................................................................................................................... 5
2. Основная часть ........................................................................................................................................ 6
2.1 Описание команд ................................................................................................................ 6
2.1.1 FMul m64real ...........................................................................................................6
2.1.2 FRStor m86byte ........................................................................................................6
2.2 Описание форматов данных .............................................................................................. 7
2.2.1 Формат РТ (внутренний формат) ..........................................................................7
2.2.2 Внешние форматы ..................................................................................................7
2.3 Программная модель процессора ..................................................................................... 7
2.4 Блок-схема процессора ...................................................................................................... 9
2.5 Алгоритмы выполнения операций.................................................................................. 10
2.5.1 FMul m64real .........................................................................................................10
2.5.2 FRStor m86byte ......................................................................................................14
2.6 Структурные схемы блоков процессора ......................................................................... 16
2.6.1 Блок памяти ...........................................................................................................16
2.6.2 Блок преобразования форматов ..........................................................................17
2.6.3 Блок регистров ......................................................................................................18
2.6.4 Блок обработки данных........................................................................................19
2.6.5 Блок микропрограммного управления ...............................................................20
2.7 Структура микрокоманды ................................................................................................ 21
2.8 Моделирование операции ................................................................................................ 21
2.8.1 Постановка задачи ................................................................................................21
2.8.2 Алгоритм ...............................................................................................................22
2.8.3 Распределение памяти ..........................................................................................23
2.8.4 Микропрограмма ..................................................................................................23
2.8.5 Контрольный пример ...........................................................................................24
3. Заключение ............................................................................................................................................ 29
Список использованных источников....................................................................................................... 30
4
1. Введение
Целью данной курсовой работы является приобретение опыта моделирования процессора и
операций, выполняемых на нем. Поставленная задача была решена с помощью имитационной
модели микропрограммируемого процессора «Микро», разработанной программистами кафедры
ЭВМ РГРТУ. Данная имитационная модель микропрограммируемого процессора являются
эффективным средством при изучения структур и алгоритмов функционирования вычислительных
устройств.
5
2. Основная часть
2.1 Описание команд
2.1.1 FMul m64real
Команда умножает операнды и записывает произведение в получатель.
ST = ST * m64real
Один из операндов находится в ОП в формате m64real, второй в регистровом стеке ST в
формате m80real. Перед выполнением операции умножения операнд читается из ОП и
преобразуется в формат m80real.
Особые случаи:

P - неточный результат;

U - антипереполнение;

O - переполнение;

D - денормализованный операнд;

I - недействительная операция.
Формат команды представлен на рисунке 1.
7
11011 MF
0
0
7
Mod 1 Коп
0
r/m
7
0
Sib
7
0
disp
Рисунок 1 - Формат команды FMul m64real
Адрес операнда m64real определяется полями mod, r/m, sib и disp. Адрес вычисляется
целочисленным процессором. К началу операции он уже сформирован. Бит [0] первого байта
команды определяет тип операции. В данном случае бит[0] = 0 – арифметическая операция над
операндом из памяти и вершиной стека. Поле MF определяет тип операнда.
2.1.2 FRStor m86byte
Команда FRSTOR загружает новый контекст FPU (среду и регистровый стек) из памяти.
Данные в памяти обычно помещаются туда предшествующей командой FSAVE или FNSAVE.
Среда FPU состоит из управляющего слова FPU (CW), слова состояния (SW), слова тэгов
(TW) и указателей ошибки для данных и для команды (FDP, FIP).
Формат и расположение загружаемых значений в памяти зависят, от атрибута размера
операнда команды и от текущего режима работы процессора. Данные для регистров стека FPU,
начиная с ST(0) и заканчивая ST(7), занимают 80 байт и размещаются сразу же за образом среды.
Команда FRSTOR должна выполняться в том же режиме работы, что и соответствующая
предваряющая ее команда FSAVE или FNSAVE.
Если при загрузке нового контекста в регистр SW помещается значение с установленными
флагами исключений, а новое значение в регистре CW не маскирует соответствующие
исключения, то в результате загрузки возникнут отложенные исключения, которые инициируют
вызов обработчика исключений на следующей команде FPU/MMX/3DNow! (но только в случае
исключений, обработка которых откладывается до следующей операции).
Команда FRSTOR не оказывает влияния ни на какие SIMD-регистры.
6
2.2 Описание форматов данных
2.2.1 Формат РТ (внутренний формат)
Во внутренних операциях процессор с плавающей точкой (ППТ) использует представление
вещественных чисел в формате с расширенной точностью РТ (в соответствии с рисунком 2).
Длина формата 80 бит.
0
S
79
14
0
E
78
0 62
1.
M
64 63 62
Рисунок 2 - Внутренний формат РТ
0
0
Значащие цифры числа находятся в поле мантиссы (М). Длина мантиссы 64 бита. Поле
порядка (Е) показывает фактическое положение двоичной точки в разрядах мантиссы. Длина
порядка 15 бит. Бит знака S определяет знак числа. Мантисса представлена в прямом коде.
Порядок Е задается в смещенной форме; он равен истинному порядку (П), увеличенному на
значение смещения = 16383: Е = П + 16383.
Истинный порядок изменяется от -16382 до 16383. Смещенные порядки 000..0В и 111.. 1В
зарезервированы для специальных значений. Числа в формате РТ имеют явный бит F0.
S
E− 16383
∗ (F0).( F1)( F2)...(F63) .
Значение числа в формате РТ равно: − 1 ∗ 2
2.2.2 Внешние форматы
В данном курсовом проекте используется один внешний формат: m64геаl - вещественное
двойной точности (ДТ).
Формат ДТ представлен на рисунке 3. Длина формата 64 бита.
0
10
S
0 1
E
63 62
52
M
52 51
Рисунок 3 - Формат ДТ
0
Значащие цифры числа находятся в поле мантиссы (М). Длина мантиссы 52 бита. Поле
порядка (Е) показывает фактическое положение двоичной точки в разрядах мантиссы. Длина
порядка 11 бит. Бит знака S определяет знак числа. Мантисса представлена в прямом коде.
Порядок E задается в смещенной форме, он равен истинному порядку (П), увеличенному на
значение смещения – смещение ДТ = 1023:
Е = П + смещение ДТ
Истинный порядок изменяется от -1022 до 1023. Смещенные порядки 000..0В и 111…1В
зарезервированы для специальных значений. Явный бит F0 в формате ДТ отсутствует и мантисса
оказывается
правильной
дробью.
Значение
числа
в
формате
ДТ
равно
S
E− 1023
−1 ∗ 2
∗ ( F0).( F1)( F2) ...( F52) .
2.3 Программная модель процессора
Программная модель (рисунок 4) включает в себя кольцевой стек из восьми регистров R0-R7,
слово тэгов TW, слово состояния SW и слово управления CW. В стеке хранятся числа в формате
РТ. В полях S, Е и М регистров записаны соответственно знак, порядок и мантисса. Вершина стека
определяется полем TOP слова состояния SW и обозначается ST(0) или просто ST. На рисунке
7
вершиной стека является физический регистр R3. ST(0) содержит последнее включенное в стек
значение, регистр ST(1) - предпоследнее и т.д. Включение в стек осуществляет декремент TOP и
загрузку в новую вершину стека. При извлечении из стека данное читается из ST(0), а затем
производится инкремент TOP. При обращении к ST(i) выбирается регистр Rj, где j = TOP + i (mod
8).
15
13
SW * C3
15
CW * * * * RC PC
11
ТОР
011
0
Флажки
ошибок
C2 C1 C0
0
11
Маски
TW
R0
ST(5)
Т(5)
R1
ST(6)
Т(6)
R2
ST(7)
Т(7)
ST(0)
Т(0)
R4
ST(1)
Т(1)
R5
ST(2)
Т(2)
R6
ST(3)
Т(3)
R7
ST(4)
Т(4)
Вершина стека
R3
79
0
1
0
Рисунок 4 - Программная модель процессора
С каждым регистром стека ассоциируется двухбитный тэг, характеризующий хранимое
число:

00 - нормализованное число;

01 - истинный нуль;

10 - денормализованное число;

11 - пустой регистр.
В слове состояния SW поле TOP содержит адрес текущей вершины стека. Биты кода условия
C0-C3 фиксируют результаты команд сравнения, проверки и анализа. Восемь бит отведены для
регистрации особых случаев (ошибок).
В слове управления CW поле RC задает режим округления, когда формат получателя не
позволяет точно представить результат.
8
При выполнении команд с ПТ возможны следующие особые случаи:

I - недействительная операция;

D - денормализованный операнд;

Z - деление на нуль;

U — переполнение;

U — антипереполнение;

P - неточный результат (точность).
Особым случаям соответствуют флажки в слове состояния SW (рисунок 5): IE, ZE, DE, OE,
UE, PE. При любом особом случае устанавливается бит суммарной ошибки ES, а также
вырабатывается активный сигнал ошибки FERR. В слове состояния CW имеются биты маски IM,
DM, ZM, OM, UM, PM. Если особый случай замаскирован (бит маски установлен), процессор
действует по умолчанию. Если бит маски сброшен, происходит прерывание.
Рисунок 5 - Биты флажков и маски особых случаев
2.4 Блок-схема процессора
На основании анализа заданных операций, укрупненная блок-схема процессора приведенная
на рисунке 6. В него входят оперативная память ОП, блок преобразования форматов данных БПФ,
блок регистров БР, блок обработки данных БОД, блок микропрограммного управления БМУ. БПФ
и ОП связаны 64-битной шиной, через нее передаются данные из ОП в формате 64int в БПФ и из
БПФ в ОП в формате 64int. БПФ осуществляет прямое преобразование из формата ДТ в РТ и
обратное преобразование из формата РТ в формат УПК. БР включает в себя регистровый стек,
регистры слов тегов, управления и состояния.
Управление операциями осуществляется БМУ путем выборки последовательности
микрокодов (МК). Обратная связь от БПФ, БРИ БОД к БМУ обеспечивается через шину
осведомительных сигналов ОС.
9
Рисунок 6 - Блок-схема процессора
2.5 Алгоритмы выполнения операций
2.5.1 FMul m64real
Порядок выполнения операции состоит из следующих этапов:
Чтение второго операнда из ОП.
Адрес данного к началу операции вычислен и находится в адресном регистре EAR. По
заданию длина слова ОП равна 64 бита => операнд выбирается в регистр чтения RGR за одно
обращение: RGRW = MEM[EAR].
Преобразование второго операнда из формата m64real в формат m80real.
Преобразование второго операнда из формата m64real в формат m80real включает в себя
следующие действия:
1. Позиционирование прочитанного данного, то есть размещение его в приемном регистре в
некотором стандартном виде (рисунок 7);
63
S
RGRW
62
52
51
E
0
M
11
RGD
S
79
000
78
52
E
75
M
64
63
12
Рисунок 7 - Позиционирование m64real
RGD[79] = RGRW[63] – позиционирование знака;
10
000 … 000
11
0
RGD[75 : 64] = RGRW[62 : 52] – позиционирование порядка;
RGD[63 : 12] = RGRW[51 : 0] – позиционирование мантиссы;
В биты RGD[78 : 76] и RGD[11 : 0] записываются нули.
2. Преобразование из формата ДТ в формат РТ:
2.1 RGD представляем в виде субрегистров знака –S (RGD[79]), порядка – E (RGD[78 : 64])
и мантиссы M (RGD[63 : 0]);
2.2 Если число равно нулю, то результатом будет код нуля в формате РТ: Е = 0, М = 0;
2.3 Если число нормализовано: изменить Е следующим образом. П = Е(ДТ) - Е(смещДТ);
Е(РТ) = П + Е(смещ РТ); E = Е(ДТ) – Е(смещДТ) + Е(смещРТ) = Е(ДТ) – 1023 + 16383 =
Е(ДТ) + 15360; сдвинуть мантиссу (биты 63 : 0) на один бит вправо и записать 1 в бит 63
: M =1.R1(M);
2.4 Если число де нормализовано, провести его нормализацию:
2.4.1 Прибавить к порядку 15360: E = E + 15360;
2.4.2 Производить сдвиг мантиссы влево до появления 1 в ее старшем бите, при каждом
сдвиге вычитать 1 из порядка: M = L1(M), E = E - 1;
Первый операнд читается из вершины стека в рабочий регистр RG1: RG1 = ST(0). Второй
операнд читается из блока преобразования форматов БПФ RG2: RG2=RGD. Произведение
формируется в RG3.
Операция умножения.
Регистры операндов RG1 и RG2 и регистр произведения RG3 подразделяются на
субрегистры знаков (S1, S2, S3), порядков (E1, E2, E3) и мантисс (М1, М2, М3). Схема обработки
знаков вычисляет знак произведения S3 = S1 * S2. Сумматор SME вычисляет порядок
произведения E3 = E1 + E2 - 16383. Умножение мантисс происходит по одному из известных
алгоритмов.
Умножение завершается нормализацией и округлением результата:

Если произошло переполнение разрядной сетки мантиссы, то сдвиг M3 вправо и инкремент
Е3 (нормализация вправо);

Если произошло антипереполнение порядка, то сдвиг М3 вправо и обнуление Е3
(денормализация)

Округление М3 до 63 бит в зависимости от режима округления – поле RC (таблица 1)
Денормализация выполняется как маскированная реакция на антипереполнение порядка (Е3
< 0). Если Е3 > -64, М3 сдвигается на ABS(E3) битов вправо, а Е3 обнуляется. Если Е3 < (-64)
результат принимается равным нулю.
RC
Режим
00
10
к ближайшему
вверх
01
11
вниз
усечение
r
r < 1000
r>=1000
любое
Действие округления
отбросить младшие биты
если младший сохраняемый бит 1 – прибавить к нему 1,
отбросить младшие биты
отбросить младшие биты
Таблица 1 - Округление результата
При нормализации возможны следующие особые случаи:
11

При сложении порядков Е3 = Е1 + Е2 - 16383, возникает антипереполнение порядка;

При инкременте Е3 возникает переполнение порядка.
При возникновении подобных случаев фиксируются следующие признаки результата:

P – потеря точности;

O – переполнение порядка;

U – антипереполнение порядка;

I – недействительная операция;

D – денормализованный операнд.
Маскированные реакции на особые случаи:

O – запись кода бесконечности;

U – запись кода нуля или денормализованного значения.
Схема алгоритма операции FMul m64real приведена на рисунках 8 и 9.
12
Рисунок 8 - Схема алгоритма операции Fmul m64real (начало)
13
Рисунок 9 - Схема алгоритма операции Fmul m64real (окончание)
Запись результата умножения в стек.
2.5.2 FRStor m86byte
Операция выполняется по следующему алгоритму:
1. Загрузка данных в регистры состояния CW, SW, TW.
Порядок выполнения операции состоит из следующих этапов:
1.1 Адрес первого операнда к началу операции вычислен и находится в адресном регистре
EAR. По заданию длина данных составляет 32 бита и поэтому операнды выбираются в
рабочие регистры за одно обращение. После прочтения первого операнда а адресному
регистру прибавляется 2 и читается второй операнд, затем к EAR вновь прибавляется 2
и происходит чтение третьего операнда;
1.2 Запись в регистры слов состояния, управления и тегов заключается в выделении 16-ти
бит в каждом рабочем регистре и запись этих 16-ти бит каждого регистра в слова
состояния, управления и тэгов;
2. Загрузка данных в регистровый стек.
В каждый регистр ST(i), входящий в стек, данные загружаются по следующему алгоритму:
2.1 Декремент поля TOP;
2.2 Чтение первой части операнда из ОП.
Адрес данного к началу операции вычислен и находится в адресном регистре EAR. По заданию
длина слова ОП равна 64 бит. Поэтому первая часть выбирается в регистр чтения RGRW за одно
обращение: RGRW = MEM[EAR];
2.3 Выделение из MW части данного формата m80real в БПФ.
14
Числа формата РТ выбираются за 2 шага. На первом шаге выбираются 2, 4, 6 или 8 младших
байтов, на втором - соответственно 8, 6, 4 или 2 старших байта. Передача W64 - W80 идет со
сдвигом вправо на 48, 32, 16 битов или без сдвига;
2.4 Чтение второй части операнда из ОП.
К EAR прибавляются значения 1, 2, 3 или 4 по числу двухбайтовых слов, прочитанных при первом
обращении. Затем происходит чтение второй части операнда формата m80real, RGRW =
MEM[EAR];
2.5 Выделение из MW второй части данного формата m80 в БПФ.
Числа формата РТ выбираются за 2 шага. На первом шаге выбираются 2, 4, 6 или 8 младших
байтов, на втором - соответственно 8, 6, 4 или 2 старших байта. Передача W64 - W80 идет со
сдвигом влево на 16, 32, 48 или 64 бита;
2.6 Запись операнда в вершину стека.
Схема алгоритма выполнения команды приведена на рисунке 10.
15
Рисунок 10 - Схема алгоритма выполнения операции FRStor m86byte
2.6 Структурные схемы блоков процессора
2.6.1 Блок памяти
В данном курсовом проекте используется одноуровневая память данных. Емкость ОП равна 4
Кб, длина слова ОП равна 64 бита. Адрес данного к началу операции вычислен и находится в
адресном регистре EAR. В операциях с ПТ минимальный размер данного 2 байта, поэтому
адресация производится с точностью до двухбайтового слова W, а адрес содержит 10 бит, из них
старшие 8 адресуют слово MW, а младшие 2 – слово W в MW.
Размещение в памяти данных различных типов приведено на рисунке 11.
16
Рисунок 11 - Размещение данных в памяти
При выборке из ОП читается всегда полное слово MW в регистр чтения-записи RGRW[63:0].
При записи данное должно быть размещено в ОП в соответствии со своим форматом и
адресом, поскольку запись полного слова может привести к разрушению информации в соседних
полях слова памяти. Для этого память выполнена в виде четырех банков Б3, Б2, Б1, Б0, которые
хранят соответственно двухбайтовые слова W3, W2, W1, W0 всех слов памяти. Управляют записью
в банки биты разрешения записи Z3, Z2, Z1, Z0, формируемые в зависимости от двух младших бит
адреса (рисунок 12).
Рисунок 12 - Организация чтения из памяти
2.6.2 Блок преобразования форматов
Структурная схема блока ППФ для нормализованных чисел приведена на рисунке 13. При
разработке схемы прямого преобразования форматов используется алгоритм позиционирования и
преобразования второго операнда (этапы 2-3).
17
После чтения ОП в регистре RGRW находится второй операнд в разрядах [31 : 0] или [47 :
16], или [63 : 32]. Чтобы выбрать нужные разряды, используется мультиплексор MX, на
информационные входы которого подаются соответствующие разряды, а на управляющие входы –
младшие разряды адреса EAR[1:0]. На выходе мультиплексора будет получен второй операнд в
нужном формате. Далее позиционируются разряды с выхода мультиплексора в соответствующие
разряды субрегистров знака, порядка RGE и мантиссы RGSM. Причем для мантиссы берется
регистр сдвига. RGSM сдвигает содержимое вправо на один разряд, на это указывается
управляющим сигналом CNTR, а в освободившийся разряд заносится единицу (q63=1). Таким
образом отображается явный бит в мантиссе. Для знака достаточно триггера знака TS. В старшие
разряды RGE и в младшие разряды RGSM заносятся нули.
На один вход ALU подается из RGE смещенный порядок Е, а на другой – константу 0x3FFF.
На выходе ALU будет получен смещенный порядок E для формата 80real, в дальнейшем передающийся в разряды 78-64 RGD. В разряды 63-0 RGD помещается значение с выхода RGSM.
18
Рисунок 13 - Схема прямого преобразования форматов
2.6.3 Блок регистров
Блок регистров (рисунок 14) включает в себя регистровый стек ST, регистр тэгов TW,
регистр управления CW, регистр состояния SW, регистр первого операнда RG1, схему анализа и
модификации TW, CW и SW. ST имеет адресный вход A = TOP (адресует вершину стека). Чтение
из ST происходит по сигналу RD (RG1 = ST). Запись в ST происходит по сигналу RW по шине A из
регистра результата БОД.
Схема анализа и модификации выполняет проверку и модификацию тэгов, установку битов
особых случаев, проверку масок.
19
Рисунок 14 - Структурная схема блока регистров
2.6.4 Блок обработки данных
БОД выполняет арифметические операции и операции сравнения над поступающим на его
входы операндами. В обобщенную схему БОД входят регистры RG1 и RG2 первого и второго
операндов, компаратор СОМР для сравнения операндов с кодами истинного нуля, бесконечности и
неопределенности, блок выполнения операций БВО, регистр результата RGB. Константы для
сравнения с операндом поступают на компаратор из ПЗУ констант в составе блока
микропрограммного управления БМУ. Из этого же ПЗУ выбираются специальные коды для
записи в RG3 и для других целей. БВО разделяют на схему обработки знаков, блок обработки
порядков БОП, блок обработки мантисс БОМ и формирователь признака результата ФПР. Для
операций сравнения, БОП и БОМ выступают как единое целое. Регистры RG1 и RG2 могут быть
совмещены с регистрами RGA и RGB БР. Их используют для хранения исходных значений
операндов и для промежуточных преобразований.
Знак произведения S3 = S1 + S2. Порядок произведения E3 = E1 + E2 - 0x3FFF. Мантисса
произведения M3 = M1 * M2. Если M3 < 1.0 выполняется нормализация - сдвиг M3 влево на 1 бит
и декремент E3.
20
2.6.5 Блок микропрограммного управления
В состав БМУ (рисунок 15) входят регистр команд RGK, регистр RGMK, схема управления
последовательностью микрокоманд УПМ, мультиплексор кода условия МКУ, инвертор кода
условия ИКУ, счетчик микрокоманд СМК, преобразователь кода операции ПКОп, мультиплексор
адреса МК МУАД, память констант ПЗУК.
ПЗУ МК содержит микропрограммы выполняемых операций. RGMK хранит выбранную
микрокоманду (микрокод) на время ее исполнения. В микрокоманде выделяется часть, которая
управляет операционными блоками – ОП, БПФ, БР, БОД и часть, которая управляет самим БМУ. В
МК, которая управляет БМУ входят следующие поля: CHA – управление адресом следующей МК,
CC – определяет проверяемое логическое условие (ЛУ), I – бит инверсии условия, J – бит
безусловного перехода, Адр/К – поле адреса или константы, которое содержит адрес следующей
МК, адрес ПЗУ констант или небольшую константу К.
МКУ выделяет ЛУ, указанное СС, а ИКУ передает полученное значение Х на УПМ с
инверсией или без нее в зависимости от бита I.
ПКОп преобразует код операции в начальный адрес НА микропрограммы этой операции или
непосредственно в микрокод.
УПМ управляет мультиплексором адреса МК МУАД, в зависимости от полей СНА и J МК и
значения условия Х.
21
Рисунок 15 - Структурная схема БМУ
2.7 Структура микрокоманды
Микрокоманда состоит из нескольких зон. Каждая зона управляет определенными блоками
ППТ (ОП, БПФ, БР, БОД, БМУ). Какие именно поля находятся в каждой зоне МК – определяется
по функциональному признаку, то есть каждое поле управляет определенным узлом мультиплексором, сдвигателем, регистром и так далее. Однако некоторые управляющие сигналы
могут вырабатываться специальными схемами.
2.8 Моделирование операции
2.8.1 Постановка задачи
Смоделировать операцию Mul (умножение с анализом младшего бита множителя со сдвигом
множимого).
22
2.8.2 Алгоритм
Алгоритм моделируемой операции приведен на рисунке 16.
23
Рисунок 16 - Алгоритм моделируемой операции
24
2.8.3 Распределение памяти
Исходные данные:

[0x2], [0x12] — мантиссы множимых;

[0], [0x10] — знаки и смещенные порядки множимых.
Результат:

[0x22] — мантисса;

[0x20] — знак и смещенный порядок.
2.8.4 Микропрограмма
Микропрограмма приведена в таблицах 2 и 3.
Таблица 2 - Микропрограмма моделируемой операции (начало)
25
Таблица 3 - Микропрограмма моделируемой операции (окончание)
2.8.5 Контрольный пример
Исходные данные:

[0x2] = 0xC3D2;

[0x12] = 0x9333;

[0] = 0x4002;

[0x10] = 0xC000.
Ожидаемый результат:

[0x22] = 0xE132;

[0x20] = 0xC003.
12.239000 * -2.300000 = -28.149700.
Результат, полученный в ходе проведения эксперимента:

[0x22] = 0xE132;

[0x20] = 0xC003.
Ожидаемый результат совпадает с экспериментальным.
Трасса выполнения программы приведена в таблице 4.
AX
0xC3D2
BX
0x9333
CX
DX
SP
0x4002
26
BP
0xC000
SI
DI
AX
BX
CX
DX
SP
BP
SI
DI
0x4002
0x8002
0x8000
0x4000
0x0003
0x4003
0x61E9
0x0001
0x2666
0x2666
0x0001
0x30F4
0x0002
0x4CCC
0x187A
0x0004
0x9998
0x0C3D
0x0008
0x0009
0x3330
0x5996
0x000A
0x061E
0x0012
27
AX
BX
0x6660
CX
DX
SP
BP
SI
DI
0x030F
0x0024
0xCCC0
0x2656
0x002F
0x0187
0x0048
0x0049
0x9980
0xBFD6
0x0078
0x00C3
0x0092
0x0093
0x3300
0xF2D6
0x010B
0x0061
0x0126
0x6600
0x58D6
0x0232
0x0030
0x024C
0xCC00
28
AX
BX
CX
DX
SP
BP
SI
DI
0x0018
0x0498
0x0499
0x9800
0x000C
0x0932
0x0933
0x3000
0x0006
0x1266
0x6000
0x0003
0x24CC
0xC000
0x18D6
0x26FF
0x0001
0x4998
0x4999
0x8000
0x98D6
0x7098
0x0000
0x9332
0x9333
0x0000
29
AX
BX
CX
DX
SP
BP
SI
0xE130
0xE131
Таблица 4 - Трасса выполнения программы
30
DI
3. Заключение
Цель курсового проекта заключается в разработке устройства, реализующего набор команд
из числа операций с плавающей точкой процессора i486, изучении структуры процессора i486. В
результате выполнения проекта были проанализированы принципы выполнения заданных
операций, разработаны схемы алгоритмов выполнения заданных операций, построены
структурные схемы основных блоков процессора и выполнено моделирование заданных операций.
31
Список использованных источников
1. Проектирование процессора с плавающей точкой: Методические указания к курсовому
проекту / Рязан. гос. радиотехн. акад.; Сост.: В.Л. Волковыский, С.И. Елесина. Рязань, 2003.
32 c.
2. Организация ЭВМ и систем: Методические указания к курсовому проекту/ Рязан. гос.
радиотехн. акад.; Сост.: С.И. Елесина, М.Б. Никифоров. Рязань, 2004. 32 с.
32
Download