Проектирование процессора с плавающей точкой семейства i486

Разработка устройства, реализующего набор команд из числа операций с плавающей точкой процессора семейства i486. Программная модель и блок-схема процессора. Алгоритмы операций. Структура микрокоманды. Моделирование операции SUB и нормализация результата.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 27.05.2013
Размер файла 1,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Содержание
Техническое задание
Обозначения и сокращения
Введение
1. Описание команд: FSUBm64real - вычитание, FLDSWm2byte - загрузка слова состояния
2. Форматы данных
2.1 Внутренний формат
2.2 Внешний формат
3. Программная модель процессора
4. Блок-схема процессора
5. Алгоритмы операций
5.1 Алгоритм операции FSUBm64real
5.2 Алгоритм операции FLDSWm2byte
6. Структурные схемы блоков процессора
6.1 Блок памяти
6.2 Блок преобразования форматов
6.3 Блок регистров
6.4 Блок обработки данных
6.5 Блок вычитания:
6.6 Блок нормализации порядка и кругления
6.7 Блок микропрограммного управления
7. Структура микрокоманды
8. Моделирование операции
Заключение
Техническое задание
процессов программный алгоритм схема
1. Система команд:
FSUBm64real - команда вычитания
FLDSWm2byte - команда загрузки
2. Емкость ОП 8 Кбайт
3. Длина слова ОП 32 бита
4. Моделирование: вычитание мантисс и нормализация
Обозначения и сокращения
ОП - оперативная память ППТ - процессор с плавающей точкой ST - регистровый стек CW - слово управления SW - слово состояния TW - слово тегов БМУ - блок микропрограммного управления МК - микрокоманда БПФ - блок преобразования форматов БР - блок регистров EAR - адресный регистр MW - слово оперативной памяти ППФ - прямой преобразователь форматов БОД - блок обработки данных КПП - коммутатор прямого преобразования СУПП - схема управления прямым преобразованием RGA - регистр 1-го операнда RGB - регистр 2-го операнда MX - мультиплексор ПЗУ - постоянное запоминающее устройство БВО - блок выполнения операций

Введение

Устройство ППТ процессора i486 обеспечивает не только повышение скорости выполнения задач; оно делает доступным большинству пользователей функциональность и мощь точных численных расчётов. В ППТ все числа хранятся в едином 80-битном расширенном формате. Операнды в памяти могут быть представлены 16-,32-,64-битными целыми числами, 32-,64,- или 80-битными числами с ПТ или 18-разрядными десятичными цифрами, которые автоматически преобразуются в расширенный формат при загрузке в регистры ППТ. Результаты вычислений при записи в память преобразуются в формат получателя.

1. Описание команд: FSUBm64real - вычитание, FLDSWm2byte - загрузка слова состояния

ST < ST - m64real

Команда FSub m64real вычитает операнд, который находится в оперативной памяти в формате 64real, из вершины стека и возвращает разность в получатель.

Операнд в регистровом стеке ST находится в формате 80real. Перед выполнением операции вычитания, операнд читается из ОП преобразуется в формат 80real.

Особые случаи:

P-неточный результат;

U-антипереполнение;

O-переполнение;

D-денормализованный операнд;

I-недействительная операция.

Формат команды представлен на рисунке 1.1:

7 0 7 0 7 0 7 0

Рисунок 1.1 - Формат команды FSub m32real

Адрес операнда m32real определяется полями mod, r/m, sib и disp. Адрес вычисляется целочисленным процессором. К началу операции он уже сформирован. Бит [0] первого байта команды определяет тип операции. В данном случае бит[0]=0 - арифметическая операция над операндом из памяти и вершиной стека.

Поле MF определяет тип операнда. При m32real MF = 10.

SW < Src

Команда заменяет текущее значение SW на значение, содержащееся в указанном слове памяти

7 0 7 0

2. Форматы данных

2.1 Внутренний формат

Во внутренних операциях процессор с плавающей точкой (ППТ) использует представление вещественных чисел в формате с расширенной точностью РТ. (смотри рисунок 2.1). Длина формата 80 бит.

Рисунок 2.1 - Внутренний формат РТ.

Значащие цифры числа находятся в поле мантиссы (M). Длина мантиссы 64 бита. Поле порядка (E) показывает фактическое положение двоичной точки в разрядах мантиссы. Длина порядка составляет 15 бит. Бит знака (S) определяет знак числа. Мантисса представлена в прямом коде. Порядок (E) задается в смещенной форме; он равен истинному порядку (П), увеличенному на значение смещения - смещ РТ=16383: E=П+смещРТ.

Истинный порядок изменяется от -16382 до 16383. Смещенные порядки 000..0В и 111..1В зарезервированы для специальных значений. Числа в формате РТ имеют явный бит F0.

Значение числа в формате РТ равно (-1)s * 2(E-смещРТ)*(F0).(F1)(F2)…(F63).

2.2. Внешний формат

В данном курсовом проекте рассматривается один внешний формат: 64real (двойная точность).

Формат ДТ представлен на рис.1.2. Длина формата 64 бита.

Рис. 2.2 Формат ДТ

Значащие цифры числа находятся в поле мантиссы (М). Длина мантиссы 52 бита. Поле порядка (Е) показывает фактическое положение двоичной точки в разрядах мантиссы. Длина порядка 11 бит. Бит знака S определяет знак числа. Мантисса представлена в прямом коде. Порядок Е задается в смещенной форме; он равен истинному порядку (П), увеличенному на значение смещения - смещ ДТ= 1023:

Е = П + смещ ДТ

Истинный порядок изменяется от -1022 до 1023. Смещенные порядки 000..0В и 111..1В зарезервированы для специальных значений. Явный бит F0 в формате ДТ отсутствует и мантисса оказывается правильной дробью.

Значение числа в формате ДТ равно (-1)s * 2(E-cмещ ДТ)* 1.(F1)(F2)…(F52).

Представим число 76.5 в формате ДТ:

76.510=1001100,12, П=6,

Е=П+смещОТ=6+1023=102910=100000001012

0

10000000101

0011001000…………………….000

63 62 52 51 0

3. Программная модель процессора

Программная модель (рисунок 3.1) включает в себя кольцевой стек из восьми регистров R0 - R7, слово тегов TW, слово состояния SW и слово управления CW. В стеке хранятся числа в формате РТ. В полях S,E и M регистров записаны соответственно знак, порядок и мантисса. Вершина стека определяется полем TOP слова состояния SW и обозначается ST(0), или просто ST. На рисунке вершиной стека является физический регистр R5. ST (0) содержит последнее включенное в стек значение, регистр ST (1) - предпоследнее и т.д. Включение в стек осуществляет декремент TOP и загрузку в новую вершину стека. При извлечение, из стека данное читается из ST(0), а затем производится инкремент TOP. При обращении к ST(i) выбирается регистр Rj, где j=TOP+i(mod8). Так, при TOP=5 и i=2 выбирается регистр R7, при TOP=5 и i=6 - регистр R3 и т.д.

Рисунок 3.1 - Программная модель процессора

С каждым регистром стека ассоциируется двухбитный тэг, характеризующий хранимое число:

00 - нормализованное число;

01 - истинный нуль;

10 - денормализованное число;

11 - пустой регистр.

В слове состояния SW поле TOP содержит адрес текущей вершины стека. Биты кода условия C0-C3 фиксируют результаты команд сравнения, проверки и анализа. Восемь бит отведены для регистрации особых случаев (ошибок). В слове управления CW поле RC задает режим округления, когда формат получателя не позволяет точно представить результат.

Недействительная операция.

Этот случай возникает при арифметических операциях (например, извлечение квадратного корня из числа), а также при переполнении стека (попытка включения в непустой регистр) и при его антипереполнении (попытка извлечения из пустого регистра). Стековые операции распознаются по биту SF=1 в SW. Для различения антипереполнения от переполнения служит бит C1 в SW: C1=1 при переполнении и C1=0 при антипереполнении.

4. Блок-схема процессора

На основании анализа заданных операций, укрупленная блок-схема процессора представлена на рисунке 4.1. В него входят:

ОП - оперативная память;

БПФ - блок преобразования форматов данных;

БР - блок регистров;

БОД - блок обработки данных;

БМУ - Блок микропрограммного управления.

БПФ и ОП связаны 80-битной шиной, через нее передаются данные из ОП в формате 80dec.БПФ осуществляет прямое преобразование из формата УПК в РТ. БР включает в себя регистровый стек, регистры слов тэгов, управления и состояния. При загрузке в стек передается из БПФ 80-битный операнд в формате РТ и записывается в вершину стека. Из БР в БОД одновременно по двум 80-битным шинам чтения передаются операнды. Результат из БОД в БР передается по 80-битной шине записи.

Управление операциями осуществляется БМУ путем выработки последовательности микрокодов (МК). Обратная связь от БПФ и БР и БОД к БМУ обеспечивается через шину осведомительных сигналов ОС.

Рисунок 4.1 - Блок-схема процессора

5. Алгоритмы операций

Порядок выполнения команд в процессоре.

1. Выборка команды из памяти и определение адреса следующей команды;

2. декодирование команды;

3. вычисление адреса операндов;

4. считывание операндов;

5. собственно выполнение команды и формирование признака результата;

6. запись результата.

В данном курсовом проекте считаем, что п.1-3 уже выполнены, адреса операндов уже известны.

5.1 Алгоритм операции Fsub m64real

Порядок выполнения операции состоит из следующих этапов:

1. чтение второго операнда из ОП;

2. преобразование второго операнда из формата 64real в формат 80real;

3. Операция вычитания;

4. Запись результата в стек.

1 этап.

Адрес данного к началу операции уже вычислен и находится в адресном регистре EAR. По заданию длина слова ОП равна 32бита. Поэтому операнд выбирается в регистр чтения RGR за 2 обращения (рисунок 5.1):

RGRW[31:0]:=MEM[EAR]

EAR:= EAR+1

RGRW[63:32]:=MEM[EAR]

Рисунок 5.1 - Чтение второго операнда из ОП

2 этап.

Преобразование второго операнда из формата 64real в формат 80real включает в себя следующие действия:

позиционирование прочитанного данного, т.е. размещение его в приемном регистре в некотором стандартном виде;

преобразование из формата ДТ в формат РТ.

Позиционирование можно изобразить следующим рисунком (рис. 5.2)

Рис. 5.2 Позиционирование m64real

RGD[79] = RGRW[63] - позиционирование знака;

RGD[74:64] = RGRW[62:52] - позиционирование порядка;

RGD[63:12] = RGRW[51:0] - позиционирование мантиссы;

В биты RGD[78:75, 11:0] записать нули.

Число формата ДТ в формат РТ преобразуется в следующей последовательности.

RGD представляем в виде субрегистров знака -S (RGD[79]), порядка -E (RGD[78:64]) и мантиссы M (RGD[63:0]).

Если число равно нулю, то результатом будет код нуля в формате РТ: Е=0, М=0.

Если число нормализовано:

изменить Е следующим образом. П = Е(ДТ)-Е(смещДТ); Е(РТ) = П + Е(смещ РТ);

Е = Е(ДТ) - Е(смещДТ) + Е(смещРТ) = Е(ДТ) - 1023 + 16383 = Е(ДТ) + 15360.

- сдвинуть мантиссу (биты 63:0) на один бит вправо и записать 1 в бит 63: M =1.R1(M)

Если число де нормализовано, провести его нормализацию:

прибавить к порядку 15360: E =E + 15360;

производить сдвиг мантиссы влево до появления 1 в ее старшем бите, при каждом сдвиге вычитать 1 из порядка: M = L1(M), E = E - 1.

3 и 4 этап.

Разность формируется в RG3.

Регистр уменьшаемого RG1, регистр вычитаемого RG2 и регистр разности RG3 подразделяются на субрегистры знаков (S1, S2, S3), порядков (E1, E2, E3) и мантисс (M1, M2, M3). Регистры мантисс расширенны до 68 бит для увеличения точности вычислений. Окончательный результат округляется до 64 бит.

Обработка знаков происходит в соответствии с табл. 5.1., где Sm -знак разности мантисс.

Табл. 5.1.

S1

S2

Действия над мантиссами

S3

0

0

M1-M2

Sm

0

1

M1+M2

0

1

0

M1+M2

1

1

1

M2-M1

Sm

Прежде, чем сделать операцию вычитания мантисс, необходимо уравнять порядки. Для этого вначале находим E=E1-E2. Если Е>0, то производится сдвиг М2 на Е вправо (dec Е), если Е<0, то сдвигаем М1 на Е вправо (inc Е). Уравнение заканчивается, при Е=0.

Если Е>67, то сразу обнуляем сдвигаемую мантиссу, чтобы исключить ненужные сдвиги. Порядок результата Е3 равен большему из Е1 и Е2.

В зависимости от знаков операндов (табл. 5.1.), производим сложение или вычитание мантисс.

Операция вычитания FSUB завершается нормализацией и округлением результата:

если М3 получилась в ДК, то М3 преобразуется в прямой код (ПК) М3=М3+1;

если произошло переполнение мантиссы, то делаем нормализацию вправо: М3=R1(M3), E3=E3+1;

если отсутствует явный бит в М3, то делаем нормализацию влево М3=Lk(M3), E3=E3-k, где k-число ведущих нулей;

округление М3 до 64 бит в зависит от режима округления -полн RC (табл. 5.2.).

Табл. 5.2

RC

Режим

r

Действие округления

0010

К ближайшему вверх

r<1000

Отбросит младшие биты.

r=1000

Если младший сохраняет бит 1- прибавить к нему 1, отбросить младшие биты.

0111

Вниз усечение

любое

Отбросит младшие биты.

Рис. 5.3 Алгоритм операции FSubm64real.

5.2 Алгоритм операции FLDSWm2byte

Порядок выполнения этой операции состоит из следующих этапов:

1. Чтение из оперативной памяти;

2. Позиционирование;

3. Запись в слово состояния SW;

1 этап. Чтение операнда из ОП.

Адрес данного к началу операции уже вычислен и находится в адресном регистре EAR. По заданию длина слова ОП равна 32 бита. Поэтому операнд выбирается в регистр чтения RGR за одно обращение:

RGRW [31:0]: =MEM [EAR]. (рисунок 5.4).

Рисунок 5.4 - Чтение операнда m2byte за 1 обращение

2 этап. Позиционирование:

в данном случае позиционирование можно изобразить следующим образом (рисунок5.5):

Рисунок 5.5 - Позиционирование m2byte

3 этап. Запись в слово состояния SW: SW:=RGP

6. Структурные схемы блоков процессора

6.1 Блок памяти

В курсовом проекте используется одноуровневая память данных ёмкостью 8 Кбайт и длиной слова ОП 32 бита. Адрес данного к началу операции уже вычислен и находится в адресном регистре EA. В операциях с ПТ минимальный размер данного 2 байта, поэтому адресация производится с точностью до двухбайтового слова W. Адрес содержит 12 бит, из них старшие 10 адресуют слово MW, а младшие 2 - слово W в МW.

В данном курсовом проекте адресуются данные длиной 32 бита (рисунок 6.1).

Рисунок 6.1 - Размещение данных в памяти длиной 32 бита

6.2. Блок преобразования форматов

В данном курсовом проекте БПФ преобразует читаемое из формата источника в формат получателя. На рисунке 6.2 представлена укрупнённая схема БПФ. Для моего задания она включает в себя прямой преобразователь форматов (ППФ), коммутатор прямого позиционирования (КПП) со схемой управления СУПП. Коммутаторы управляются сигналами EAR[0] (1 младший бит адреса) (это при длине слова ОП 32), микрокодом формата данного FD. Преобразователями управляют специальные последовательности микрокодов, вырабатываемые БМУ в зависимости от вида преобразования и его шага, а так же от промежуточных результатов преобразования.

Рис.6.2 - Укрупнённая схема БПФ

6.3 Блок регистров

Блок регистров (рисунок 6.3) включает в себя регистровый стек SТ, регистр тэгов TW, регистр управления CW, регистр состояния SW, регистр первого операнда RG1, схему анализа и модификации TW, CW и SW. ST имеет адресный вход А=ТОР (адресует вершину стека). Чтение из ST происходит по сигналу RD (RG1=ST). Запись в ST происходит по сигналу RW по шине А из регистра результата БОД.

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

Рис.6.3 - Структурная схема блока регистров

6.4 Блок обработки данных

БОД выполняет арифметическую операцию Fsub над поступающим на его входы операндами. Обобщенная схема БОД приведена на рисунке 6.4.

Рисунок 6.4 - Схема БОД

В нее входят регистры RG1 и RG2 первого и второго операндов, блок сравнения операндов с кодами истинного нуля, блок выполнения операции БВО, регистр результата RG3. БОД разделяют на схему обработки знаков, блок обработки порядков, блок обработки мантисс и формирователь признака результата.

6.5 Блок вычитания

На основании алгоритма операции FSUB (раздел 5.1) разработан блок вычитания (рис. 6.5).

Регисистры операндов RG1 и RG2 и регистр результата RG3 подразделяются на субрегистры знаков (S1,S2,S3). Регистры мантисс расширены до 68 бит для увеличения точности вычислений. Окончательный результат получается в RG3 и округляется до 64 бит.

Схема обработки знаков определяет действие над мантиссами и знак результата S3 в зависимости от операндов S1, S2 и знака разности мантисс (табл. 5.1).

Сумматор мантисс SMM выполняет операцию сложения мантисс (табл. 5.1).

Сумматор порядков SME выполняет операцию вычитания порядков, а также передачу Е1 и Е2 на выход SME/.

Рисунок 6.5 - блок вычитания

6.6 Блок нормализации порядка и округления

Укрупненная схема Блока нормализации и округления представлена на рис. 6.6. В состав блока входят: сумматор коррекции порядка при сдвиге, схема преобразования ДК>ПК (инвертор, Сх.+1), коммутатор, сдвиговый регистр SH, схема округления (дешифратор ДШ, Сх. +1/0), схема управления сдвигом (вентиль &, схема ИЛИ, счетчик числа сдвигов).

Входные данные поступают из регистра RG3 БОД, который будем рассматривать состоящим из субрегистров порядка Е3 и мантиссы М3. Причем субрегистр М3 расширен дополнительным разрядом переноса, наличие 1 в котором сигнализирует о переполнении мантиссы. Выходные данные записываются в регистр результата RGD.

Мантисса из субрегистра М3 переписывается в регистр сдвига SH через коммутатор либо непосредственно, либо через схему преобразования ДК>ПК, режим перезаписи определяется значением сигнала Sm.

При переполнении мантиссы (дополнительный разряд М3[64]=1) на вход R регистра SH поступает сигнал вызывающий сдвиг регистра SH вправо на один разряд. Одновременно в счетчик схемы управления сдвигом записывается k= -1.

Нормализация порядка осуществляется по значению разряда SH[63]. До тех пор пока в этом разряде не появится 1, производится сдвиг значения SH влево, для чего на управляющий вход L регистра SH через вентиль & поступают импульсы сдвига. Эти же импульсы поступают на счетчик, в котором формируется число сдвигов k. Значение счетчика вычитается в сумматоре SM из порядка числа в субрегистре Е3. В схеме учтены особые случаи: истинный ноль (флаг Z) и антипереполнение (флаг U). Флаг Z блокирует сдвиг значения регистра SH через вентиль & и обнуляет регистр SH через схему ИЛИ. Аналогично через схему ИЛИ производится сброс регистра SH в ноль при наличии флага антипереполнения U.

Для реализации округления, значение регистра SH[0..63] переписываются в RGD[0..63] через схему увеличения на +1/0. Необходимость увеличения значения регистра на +1 определяется в дешифраторе ДШ по значению флага RC и значению дополнительных разрядов регистра SH[r].

Рис. 6.6 - Схема нормализации и округления

6.7 Блок микропрограммного управления

В состав БМУ (рисунок 6.7) входят регистр команд RGK, регистр RGMK, схема управления последовательностью микрокоманд УПМ, мультиплексор кода условия МКУ, инвертор кода условия ИКУ, регистровый стек CT с указателем стека STP, счетчик микрокоманд СМК, преобразователь кода операции ПКоп, мультиплексор адреса МК МУАД, память констант ПЗУК.

Рисунок 6.7 - Структурная схема БМУ

ПЗУ МК содержит микропрограммы выполняемых операций. RGMK хранит выбранную микрокоманду (микрокод) на время ее исполнения. В микрокоманде выделяется часть, которая управляет операционными блоками - ОП, БПФ, БР, БОД и часть, которая управляет самим БМУ. В МК, которая управляет БМУ входят следующие поля: CHA - управление адресом следующей МК, CC - определяет проверяемое логическое условие (ЛУ), I - бит инверсии условия, J - бит безусловного перехода, Адр/К - поле адреса или константы, которое содержит адрес следующей МК, адрес ПЗУ констант или небольшую константу К.

МКУ выделяет ЛУ, указанное СС, а ИКУ передает полученное значение Х на УПК с инверсией или без нее в зависимости от бита I.

ПКОп преобразует код операции в начальный адрес НА микропрограммы этой операции или непосредственно в микрокод.

УПМ управляет мультиплексором адреса МК МУАД и стеком, в зависимости от полей СНА и J МК и значения условия Х.

7. Структура микрокоманды

Из схемы организации памяти видно, что в данной зоне присутствует только одно поле - чтение из памяти-«1» или нет чтения-«0».

Из схемы прямого преобразования форматов видно, что в данной зоне имеются следующие поля:

· чтение RD из RGRW, из RGE и из RGD. «1» - есть чтение, «0» - нет чтения;

· запись WR в RGRW, в RGE и в RGD. «1» - есть запись, «0» - нет записи;

· управление регистром сдвига RGSM, поле SH - тип сдвига. N - количество сдвигаемых битов. (таблица 7.1).

· управление выбором операции АLU.

Из схемы блоков регистров видно, что в данной зоне присутствует поле отвечающие за выборку операнда: либо из ST либо из БПФ. «1» - операнд берётся из БПФ, «0» - из ST(1). Также здесь присутствует поле отвечающее за номер регистра i, ST(1)-«0»…ST(7)-«6».

В БВО присутствует поле отвечающее за тип операции: FMulP или FBLD m80dec.

«0» - FBLD m80dec, «1» - FMulP.

Остальные поля участвуют либо в формировании логического условия и адресом следующей МК - СНА (таблица 7.2), CC (таблица 7.3), I, J.

I: «0» - нет инверсии, «1» - инверсия.

J: «0» - условный переход, «1» - безусловный переход.

Таблица 7.1-Управление сдвигом

Поле SH

Операция

0

Без сдвига

1

АС АЛУ вправо

2

ЛС АЛУ вправо

3

ЛС АЛУ влево

4

Расширение знака

Таблица 7.2 - Инструкции поля СНА

Поле СНА

Мнемоника

Х=0

Х=1

RACT

Y

Стек

Y

Стек

0

JZ

0

Очистка

0

Очистка

Хранение

1

CS

СМК

Хранение

Адр/К

Загрузка

Хранение

2

JMAP

РА

Хранение

PA

Хранение

Хранение

3

CJP

СМК

Хранение

Адр/К

Хранение

Хранение

4

RЕТ

СМК

Хранение

Стек

Выгрузка

Хранение

5

CONT

СМК

Хранение

Адр/К

Хранение

Хранение

Рассмотрим подробнее выполняемые инструкции:

JZ - управление передается МК с адресом 0, и происходит очистка стека путем установки STP в состояние 0.

CS - условный переход к подпрограмме. При Х=1 продвинутый адрес МК запоминается в стеке и происходит переход по адресу подпрограммы, заданному в поле CONST.

JMAP - переход по адресу из РА.

CJP - условный переход по адресу Адр/К при Х=1.

RET - условный возврат из подпрограммы. При Х=1 происходит переход по адресу из стека и выполняется декремент STP.

CONT - продолжить выборку микрокоманд в естественном порядке. Этот код устанавливается по умолчанию.

Таблица 7.3 - Формирование условий перехода

Поле CC

Условие перехода

0

P=1

1

Z=1

2

N=1

3

V=1

4

C=1

5

N V=1

6

Z (N V)=1

7

CZ=1

8. Моделирование операции

Задание: моделирование операции SUB и нормализация результата.

Алгоритм:

1. уравнивание порядков;

2. обработка знаков;

3. операция над мантиссами;

4. нормализация результата.

Распределение регистров:

Регистр DX используется как аккумулятор.

Микрокоманды:

МК00 DX:=CX (DX = E1); безуслов. к MK2E;

MK01 DX:=DX - SI (DX=E1 - E2, флаги заносим в RFD);

MK02 Если Z = 1 (DX=0), то условный переход к МК07;

МК03 Если N = 1 (DX<0), то условный переход к МК21;

МК04 M2:=R1(M2) (правый сдвиг М2 на 1 бит);

МК05 DX:=DX -1 (dE=dE-1, флаги заносим в RFD);

MK06 Если dE<>0 (не Z), то к МК04;

МК07 DS:=CX (E3:=E1);

MK08 Анализируем AX (т.е. S1 - проверяем на признак Z) (флаги заносим в RFD);

МК09 Если Z=1 (S1 = 0), то к МК15;

МК0А Анализируем SP (т.е. S2 - проверяем на признак Z) (флаги заносим в RFD);

MK0B Если Z=1 (S2 = 0), то к МК26;

МК0С SS:=BP (M3:=M2);

MK0D SS:=SS - BX (M3:=M2 - M1) (флаги заносим в RFD);

MK0E Если N=1 (М3<0), то к МК1F;

MK0F Анализируем М3 (флаги заносим в RFD);

МК10 Если N=1, то к МК14;

МК11 М3:=L1(M3) (нормализация результата влево на 1 бит);

МК12 Е3:=E3 - 1 (DS:=DS-1, декремент порядка Е3);

МК13 Безусловный переход к МК0F;

MK14 HALT;

MK15 Анализируем S2 (флаги заносим в RFD);

MK16 Если Z=1 (S2=0), то к МК1А;

МК17 SS:=BP (M3:=M2);

MK18 SS:=SS+BX (M3:=M2+M1, флаги заносим в RFD);

MK19 Если V=1 (переполнение разрядной сетки), то к МК2А;

МК1А Безусловный переход к МК0F;

МК1В SS:=BP (M3:=M2);

MK1C SS:=BX - SS (M3:=M1 - M2, флаги заносим в RFD);

MK1D Если N=1 (M3<0), то к МК1F;

MK1E Безусловный переход к МК0F;

MK1F CS:=CONST (CONST=0001, S3:=0001);

MK20 Безусловный переход к МК0F; SS+1

MK21 DS:=SI (E3:=E2);

MK22 M1:=R1(M1) (сдвиг М1 вправо на 1 бит);

МК23 DX:=DX+1 (dE=dE+1, флаги заносим в RFD);

МК24 Если V=1 (переполнение), то к МК08;

МК25 Если Если dE<>0 (не Z), то к МК22;

МК26 SS:=BP (M3:=M2);

MK27 SS:=SS+BX (M3:=M1+M2, флаги заносим в RFD);

MK28 CS:=CONST (CONST=0001, S3:=0001);

MK29 Если не V, то к МК0F;

MK2A M3:=R1(M3) (нормализация результата вправо);

МК2В DS:=DS+1 (E3:=E3+1);

MK2C Безусловный переход к МК0F.

MK2E M1:=M1+3BFF(CX:=CX+3BFF);

MK2F DX:=CX (безуслов к MK1).

Рисунок 7 - Микропрограмма вычитания и нормализации

Исходные данные: Результат:

AX: 0000 CS: 0000

BX: CC00 SS: CC00

CX: 4003 DS: 4004

SP: 0001

BP: CC00

SI: 4003

Таблица. Трасса

Проверка правильности результата:

A = 25.510 = 11001.12 = CC00H

B = - 25.510 = - 11001.12 = - CC00H

П1 = П2 = 4; D1 = D2 = 16383; E1 = E2 = П + D = 16387 = 4003H = Е3

При обработке знаков получаем что М3 = М1 + М2 = 9800H, но при этом происходит переполнение. Следовательно, производим нормализацию вправо и прибавляем единицу к порядку Е3.

А + В = 5110 = 1100112 = СС00Н

П3 = 5, Е3 = 5 + 16383 = 16388 = 4004Н

Сравнивая результат, полученный вручную, с результатом работы программы, видим, что они совпадают. Значит, программа работает правильно.

Заключение

Целью данного курсового проекта является разработка устройства, реализующего набор команд из числа операций с плавающей точкой процессора семейства i486.

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

В данном варианте устройство должно реализовывать 2 операции: Fsubm64real и FldSWm2byte.

В результате всех действий было поучено представление о работе процессора и реализации операций.

Размещено на Allbest.ru

...

Подобные документы

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

    курсовая работа [734,9 K], добавлен 27.10.2010

  • Операции, осуществляемые при реализации алгоритмов цифровой обработки сигналов. Применение процессора ADSP-2106x для операций с фиксированной и плавающей точкой. Исключения при выполнении операций с плавающей точкой, режимы и границы округления.

    реферат [35,2 K], добавлен 13.11.2009

  • Основные форматы данных и их представление. Запись чисел в формат с плавающей точкой. Вычитание чисел в формате с плавающей точкой. Регистры операндов и результата, размером формата числа с плавающей точкой, двойной точности. Поля смещённого порядка.

    курсовая работа [78,9 K], добавлен 09.09.2014

  • Распараллеливание операций, кэширование памяти и расширение системы команд как способы совершенствования архитектуры и роста производительности компьютеров. Внутренняя структура конвейера центрального процессора Pentium i486. Корпус и колодки ЦП Intel.

    презентация [281,2 K], добавлен 27.08.2013

  • Общее представление о записи данных. Виды регистров и типов данных с плавающей точкой. Модель выполнения программы SIMD. Формат данных в памяти регистра с плавающей точкой. Состояние и управление потоковым разрешением. Поле управления округлением.

    реферат [1,1 M], добавлен 06.01.2011

  • Разработка структурной схемы процессора; синтез микропрограммного и управляющего автомата с жесткой логикой. Функциональная организация процессора: программные модели, форматы данных и команд. Организация оперативной памяти. Проектирование блока операций.

    учебное пособие [1,1 M], добавлен 09.04.2013

  • Разработка функциональной схемы операционного автомата микросхемы специализированного процессора, выполняющего заданную арифметическую операцию. Закодированная граф-схема машинного алгоритма. Таблица входов мультиплексора выбора осведомительного сигнала.

    курсовая работа [669,9 K], добавлен 25.07.2013

  • Выполнение операции умножения над числами с фиксированной точкой со сдвигом суммы частичных произведений вправо. Разработка структуры центрального процессора при выполнении двухадресной команды со следующими способами адресации: прямая и регистровая.

    курсовая работа [459,5 K], добавлен 25.03.2012

  • Общая характеристика и преимущество использования двоично-десятичных чисел с плавающей точкой. Разработка цифрового автомата. Функциональное назначение выводов корпуса МК51, арифметико-логического устройства, портов. Примеры деления данных чисел.

    курсовая работа [719,3 K], добавлен 12.09.2015

  • Анализ двоичной, восьмеричной и шестнадцатеричной систем счисления и перевода десятичных чисел. Форматы хранения чисел с плавающей точкой. Программа для преобразования массива констант в формат числа с плавающей точкой на эмуляторе микро-ЭВМ СМ-1800.

    курсовая работа [266,9 K], добавлен 24.12.2013

  • Разработка модели процессора, выполняющего набор машинных команд. Структурная схема процессора (операционного и управляющего автоматов), анализ принципа работы. Содержательный алгоритм микропрограммы, синтез управляющего автомата на основе жесткой логики.

    курсовая работа [871,9 K], добавлен 16.09.2010

  • Функциональная и структурная организация ЭВМ. Разработка функциональных микропрограмм заданных команд. Их объединение и привязка к структуре операционного автомата процессора. Разработка управляющего автомата процессора с программируемой логикой.

    дипломная работа [4,0 M], добавлен 25.03.2012

  • Принцип работы процессора (одномагистральная структура). Временные диаграммы, описывающие выполнение микроопераций для каждой команды. Структурная схема управляющего автомата на основе памяти с одним полем адреса. Описание процессора на языке Active VHDL.

    курсовая работа [621,0 K], добавлен 24.09.2010

  • Рассмотрение принципа работы процессора и его практической реализации с использованием языка описания аппаратуры Verilog. Проектирование системы команд процессора. Выбор размера массива постоянной памяти. Подключение счетчика инструкций и файла регистра.

    курсовая работа [1,2 M], добавлен 26.05.2022

  • Принцип работы процессора, способы его охлаждения, кодовые названия. Шины процессора, разрядность и кэш–память. Технологии расширения и поток команд процессора. Процессорные вентиляторы и их характеристика. Алгоритм и способы разгона процессора.

    реферат [38,0 K], добавлен 21.02.2009

  • Функциональная организация процессора. Сложение с нормализацией, синтез операций, выборка команды. Описание структурной схемы процессора. Синтез управляющего автомата, разметка граф схемы. Разбиение микроопераций по полям и кодирование логических условий.

    курсовая работа [91,8 K], добавлен 24.09.2010

  • Арифметические операции с целыми числами. Сложение и вычитание в дополнительном коде. Представление чисел в формате с плавающей точкой. Особенности выполнения арифметических операций в соответствии с IEEE. Точность выполнения арифметических операций.

    контрольная работа [5,6 M], добавлен 19.05.2010

  • Отличительные особенности микроконтроллеров AVR семейства Mega. Характеристики процессора, подсистемы ввода-вывода. Архитектура ядра и организация памяти. Регистры общего назначения. Алгоритмы моделирования команд. Реализация модели внешнего устройства.

    курсовая работа [3,7 M], добавлен 24.06.2013

  • Проектирование блоков устройства контроля по модулю три матричного умножителя с сокращением вычислений для обработки мантисс чисел с плавающей точкой. Методика выполнения арифметических операций, порядок обработки мантисс по n-разрядным операндам.

    курсовая работа [125,2 K], добавлен 24.09.2010

  • Управление взаимодействием всех устройств ЭВМ. История создания и развития производства процессора. Структура центрального процессора. Регистры общего назначения. Обозначения популярных моделей процессоров Intel и AMD. Команды центрального процессора.

    реферат [111,2 K], добавлен 25.02.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.