Формирование исполнительного адреса и выборка операндов
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

При формировании ИА анализируется поле R/M, где указывается со значением какого из регистров будет складываться смещение, а также режим работы процессора (CR0(0)). В зависимости от этого значения, режим может оказаться реальным или защищённым, и соответственно алгоритм формирования ИА будет отличаться. При недопустимых значения поля R/M  или выхода ИА за пределы ОП, вырабатываются сигналы прерывания и вызывается обработчик прерываний. ИА формируется в специальном регистре адреса данных РгАД. Затем из него извлекаются необходимые биты для обращения к соответствующему слову ОП.

Рис. 4.8. Формирование исполнительного адреса

Рис. 4.9. Выборка операндов (ВО1)

Рис. 4.10. Выборка операндов (ВО3)

Рис. 4.11. Выборка операндов (ВО4)

Рис. 4.12. Выборка непосредственного операнда из РгК

Рис. 4.13. Выборка операнда из РОН (2 байта)

Рис. 4.14. Выборка операнда из РОН (4 байта)

 

 

Обработка прерываний

При обработке прерываний сначала происходит сохранение сегментных регистров, затем РОНов и наконец регистра ССП, СчАК и регистра флагов EFLAGS  в стек.

Рис. 4.7. Обработка прерываний

4.5 Выполнение четырех операций из индивидуального задания

Выполнение команд с фиксированной точкой не представляет особого труда, так как операции в них реализуются в МПС моего варианта (вычитание и логическое ИЛИ). Соответственно алгоритмы также не очень сложны. Команда обмена данными между регистром и памятью тоже реализуется в небольшом алгоритме. При написании алгоритмов учитывалось, что процессор может работать в разных режимах, поэтому анализировался регистр ССП.

Формирование признаков результата происходит на аппаратном уровне. Это не требует записи флагов на уровне микропрограммирования и не отражается на алгоритмах выполнения операций.

Составление же алгоритма для чисел с плавающей точкой потребовало более глубокого понимания и осмысления.

Мантисса и знаки обрабатываются в БПТ (РСМм, Р1м, РСМз, Р1з), порядок же обрабатывается в БФТ (для однообразия и внесения смысловой нагрузки для упрощения понимания алгоритма создадим соответствие Р1р, РСМр – это порядки в БФТ. Рр1 это РгП, РСМр - это РгЛОП ( операнд из памяти). Изначально в РСМр целое число со знаком.

Первым шагом является приведение целого числа к формату числа с ПТ: определение знака числа (находится ли в доп. коде и нужно ли преобразовывать в прямой, так как мантисса хранится в прямом коде), нахождение мантиссы порядка (сдвиг числа влево в подсчётом количества совершённых сдвигов).

Затем реализуется сам алгоритм сложения с учётом возможных особых случаев ( переполнение, антипереполнение порядка, потеря точности).

Кратко алгоритм можно описать так:

1. Производится выравнивание порядков чисел. Порядок меньшего (по модулю) числа принимается равным порядку большего числа, а мантисса меньшего числа сдвигается вправо на число S-ичных разрядов, равное разности порядков чисел.

2. Производится сложение мантисс, в результате чего получается мантисса суммы.

3. Порядок результата принимается равным порядку большего числа.

4. Полученная сумма нормализуется.

При сравнении порядков возможны пять случаев:

1) px-py>m (m— число разрядов мантиссы). В качестве результата суммирования сразу же может быть взято первое слагаемое, так как при выравнивании порядков все разряды мантиссы второго слагаемого принимают нулевое значение;

2) px-py>m. В качестве результата суммирования может быть взято второе слагаемое;

3) .px-py=0. Можно приступить к суммированию мантисс;

4) px-px=k1 (k1<m) Мантисса второго слагаемого сдвигается на разрядов вправо, затем производится суммирование мантисс;

5) py-px=k2 (k2<m) Перед выполнением суммирования мантисс производится cдвиг на разрядов вправо мантиссы первого слагаемого.

За порядок результата при выполнении суммирования принимается больший из порядков операндов.

Рис. 4.15. Выполнение команды КОМ1

 Рис. 4.16. Запись результата КОМ1

Рис. 4.17. Выполнение команды КОМ2

Рис. 4.18. Выполнение команды КОМ3

Рис. 4.19. Запись результата КОМ3

 

Рис. 4.20. Довыборка операндов (ВО4)

Рис. 4.21. Выполнение команды КОМ4 (начало)

Рис. 4.22. Выполнение команды КОМ4 (окончание)

Рис. 4.23. Запись результата КОМ4

Микропрограммное управление

Формат микрокоманды

Таблица 5.1 –Формат микрокоманды.

Зона

Поле

Количество разрядов Значение по умолчанию
БФТ

MUXA

MUXB

ИСТ

УВП

АЛУ

СДВ

РЕЗ

А

В

2 2 3 2 4 3 3 4 4 0 0 0 0 6 C 0 0 0
БПТ

ИСТ

УВП

АЛУ

СДВ

РЕЗ

А

В

3 2 4 3 3 4 4 0 0 6 C 0 0 0
БМУ

УСА

ФУ

И

АП

УСЛ

RLD

БУ

ВБ

4 1 1 12 3 1 1 1 E 1 0 0 0 1 0 1
БИНТ БФТ MUXDAФТ MUXDBФТ DMXDYФТ DMXDBФТ 2 3 2 1 0 0 0 0
         

 

 

БПТ MUXDAПТ DMXDYПТ MUXDBПТ 1 2 1 0 0 0
ОП MUXЗП DMXОП MUXБЧ MUXСА

3

1

1

1

1

1

1

1

0

0

0

0

0

0

0

0

Рг СчАК РгАД РгБ РгК
ОП

R/W

РАОП

РгЧтОП

РгЗпОП

CS

1 1 1 1 1 0 0 0 0 0
CONST

 

64 0

Таблица 5.1 (продолжение)


Зона БФТ.

Зона состоит из семи полей.

Для адресных входов, в зависимости от того, откуда адреса A и B, разрешены не все возможные адреса. Таким образом, на вход А и B старшим битом всегда должен подаваться 0, если разрешён адресный вход из РгК. Так как в БФТ у меня находится только 2 рабочих регистра - 15 и 16 (оставшиеся отведены под сегментные регистры), то при адресации из РгМК на старшие адресные входы должны подаваться три единицы. Распределение адресов и соответствующих им регистров приведено в разделе 2 (2.4.5 Регистры БОД) .

Поля MUXA и MUXB управляют выбором адреса РЗУ, возможными значениями которого являются адрес регистра из БМУ, регистр из РгК (поле reg или поле r/m). “+” указывает на значение полей по умолчанию.


 

Таблица 5.2 – Поле MUXA..

MUXA Источник
00 01 10 11 Адрес из БМУ РгК(10:12) РгК(13:15) -

 

Таблица 5.3 - Поле MUXB.

MUXB Источник
00 01 10 11 Адрес из БМУ РгК(10:12) РгК(13:15) -
ИСТ 0 1 2 3 4 5 6 7
EA OEB I0 000 001 010 011 100 101 110 111
Операнд R РгA РгA РгA РгA DA DA DA DA
Операнд S РгB РгQ DB РгQ РгB РгQ DB РгQ

Таблица 5.4 - Поле ИСТ.

 

Таблица 5.5 - Поле УВП.

УВП Значение переноса
00 01 01 11 0 1 C C

 

Таблица 5.6 - Поле АЛУ.

АЛУ

Операция АЛУ
0 0 0 0 Специальные функции при IO=0
0 0 0 0 1111 при IO=1
0 0 0 1 S-R-1+CO
0 0 1 0 R-S-1+CO
0 0 1 1 R+S+CO
0 1 0 0 S+CO
0 1 0 1 S+CO
0 1 1 0 R+CO
0 1 1 1 R+CO
1 0 0 0 0000
1 0 0 1 Ri^Si
1 0 1 0 Ri Si
1 0 1 1 Ri Si
1 1 0 0 Ri^Si
1 1 0 1 RiVSi
1 1 1 0 Ri^Si
1 1 1 1 RiVSi

 

Таблица 5.7 - Поле СДВ.

СДВ

Операция АЛУ
0 0 0 0 АС ALU вправо
0 0 0 1 ЛС ALU вправо
0 0 1 0 АС ALU, ЛС RGQ вправо
0 0 1 1 ЛС ALU, ЛС РгQ вправо

 

0 1 0 0 без сдвига
0 1 0 1 ЛС РгQ вправо
0 1 1 0 РгQ:=ALU
0 1 1 1 РгQ:=ALU
1 0 0 0 AC ALU влево
1 0 0 1 ЛС ALU влево
1 0 1 0 AС ALU, ЛС РгQ влево
1 0 1 1 ЛС ALU, ЛС РГQ влево
1 1 0 0 без сдвига
1 1 0 1 ЛС РгQ влево
1 1 1 0 расширение знака
1 1 1 1 без сдвига

Таблица 5.7 (продолжение)

 

Таблица 5.8 - Поле РЕЗ.

РЕЗ OEY WE IEN Передача информации
0 1 2 3 4 5 6 7 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Y, РЗУ = СДВ; РгQ =АЛУ Y, РЗУ = СДВ Y = СДВ; РгQ = АЛУ Y = СДВ РЗУ = Y; РгQ = АЛУ РЗУ = Y РгQ = АЛУ Нет записи

 

 




Зона БПТ.

Большинство полей в БПТ повторяют поля БФТ: ИСТ, УВП, АЛУ, СДВ, РЕЗ, А и В. Только для БПТ адрес считывается только из РгМК, в отличие от БФТ и в БПТ располагаются только рабочие регистры.

На адресные входы A и B может подаваться любая четырёх битная комбинация, так как все регистры в БПТ рабочие, а стек вынесен за пределы БПТ.

Таблица 5.9 – Значение полей А/В.

Значение Регистр
0000 Р1з
0001 Р1м
0010 РСМз
0011 РСМм
0100 СчТ
0101 РПТ1
0110 РПТ2
0111 РПТ3
1000 РПТ4
10001 РПТ5
1010 РПТ6
1011 РПТ7
1100 РПТ8
1101 РПТ9
1110 РПТ10
1111 РПТ11

Зона БМУ.

Поле УСА ( управление следующим адресом) принимает значение E по умолчанию, что соответствует последовательному выполнению команд. Для условного перехода в него записывается значение 3.

Поле П разрешает безусловный переход по адресу, записанному в АП.

Поле УСЛ отвечает за выбор условия перехода.

ФУ - фиксация флагов.

И - инверсия условия.

RLD – разрешение записи в Cч/РгА.

ВБ - выбор секции, для которой анализируются условия. 0 – для БФТ, 1 - для БПТ.

АП – адрес перехода. Адрес перехода размещён в отдельном поле, а не с поле CONST, так как поле CONST может использоваться для записи какой-либо константы и одновременно нужно организовать переход по адресу. Поэтому эти поля разделены.

УСЛ Переход  
000 Переход по паритету PF0 = 1
001 При равенству 0 Z =1
010 При отрицат. знак N = 1
011 При переполнении V = 1
100 При переносе C = 1
101 Если меньше N + V = 1
110 Если меньше или равно Z v (N + V ) = 1
111 Если меньше или равно без знака C v Z = 1

Таблица 5.10 - Поле УСЛ.

Зона БИНТ.

Поле БФТ БИНТ

Источником данных для шины DA БФТ могут быть поле CONST из РгМк, операнд из РгЧтОП, передаваемый через мультиплексор MUXРежЧ, а также выход БПТ через DMXDYПТ.

Таблица 5.11 – MUXDAФТ.

MUXDAФТ Источник
00 CONST из РгМК
01 MUXРежЧ
10 DMXDYПТ

 

Источником данных для шины DB БФТ может быть непосредственный операнд из РгК(8:15), СчАК( для инкремента), смещение из РГК(16:23) или РгК(16:31) и порядок из БПТ через MUXSTPor.

 

Таблица 5.12 – MUXDBФТ.

MUXDBФТ Источник
000 РгК(8:15)
001 СчАК
010 РгК(16:23)
011 РгК(16:31)
100 MUXSTPor

Выходом БФТ могут быть шина DA БПТ через MUXDAПТ, РгАД, СчАК или РГЗпОП через MUXЗП

Таблица 5.13 – DMXDYФТ.

DMXDYФТ Направление
00 MUXDAПТ
01 РгАД
10 СчАК
11 MUXЗП

 

Выходом шины DB может быть либо РгЗпОП через MUXЗП, либо разряд порядка мантиссы для стекового регистра через DMXSTPor

Таблица 5.14 – DMXDBФТ.

DMUXDBФТ Направление
0 MUXЗП
1 DMXSTPor

Поле БПТ БИНТ

Источником данных для шины DA БПТ могут быть поле CONST из РгМк, и выход Y БПТ через DMXDYФТ.

 

 

Таблица 5.15 – MUXDAПТ.

MUXDAПТ Источник
0 CONST из РгМК
1 DMXDYФТ

 

Выходами шины DY БПТ могут быть входная шина DA БФТ через MUXDAФТ, разряды стека, где хранится мантисса ( через DMXSTMan) и разряды стека, где хранится знак ( через DMXSTZn)

Таблица 5.16 – DMXDYПТ.

DMXDYПТ Направление
00 MUXDAФТ
01 DMXSTMan
10 DMXSTZn

 

Входаvи шины DB могут быть либо мантисса через MUXSTMan или знак через MUXSTZn.

Таблица 5.17 – MUXDBПТ.

MUXDBПТ Направление
0 MUXSTMan
1 MUXSTZn

 

Поле ОП БИНТ

Входами мультиплексора записи MUXЗП могут быть выходы шины DB, DY,СчАК ( при сохранении при прерывании) и ССП( CR0) по той же причине.

Таблица 5.18 – MUXЗП.

MUXЗП Источник
000 DMXDBФТ

 

001 DMXDYФТ
010 СчАК
011 ССП (CR0)
100 EFLAGS

Таблица 5.18 (продолжение)

 

Запись в РгК может вестись либо напрямую из РгЧтОП, либо через РгБ. Для выбора необходимых байтов используется MUXЧ после которого и идёт запись в РгК. Иначе же ведётся запись из РгБ через соответствующие мультиплексоры.

Таблица 5.19 – DMXОП.

DMXОП Направление
0 РгБ
1 MUXЧ

Входом записи РгК могут быть РгБ через MUXБ или РгЧтОП через MUXЧ. Выбор источника осуществляется в MUXБЧ

Таблица 5.20 – MUXБЧ.

MUXБЧ Источник
0 MUXБ
1 MUXЧ

 

Мультиплексор MUXСА выбирает, откуда будет произволиться запись в РАОП – из СчАК или РгАД.

Таблица 5.21 – MUXСА.

MUXСА Источник
0 СчАК
1 РгАД

 

Также в поле БИНТ есть поле Рг. В нём определяется в какие из регистров возможна запись. Это регистры СчАК, РгК, РгАД, РгБ.


Зона ОП

Поле используется для управления записи или считывания данных из ОП.

Сигнал CS определяет выбрана ли ОП или нет. Сигналы R/W задают соответственно чтение из ОП в РгЧтОП или запись в РгЗпОП соответственно.

Также зона разрешает запись.

Таблица 5.22 – Зона ОП

CS R/W Режим работы ОП
0 0 нет доступа
0 1 нет доступа
1 0 ОП := РгЗпОП
1 1 РгЧтОП := ОП

Зона CONST

Зона используется для определения константы, например для операций сравнения в условиях или для выделения битов по маске.

Дата: 2019-12-10, просмотров: 288.