Таблица 6.1 - Формирование битов разрешения записи для формата m32
Младшие биты адреса EAR[0:1:2] | Биты разрешения | |||||||
Z7 | Z6 | Z5 | Z4 | Z3 | Z2 | Z1 | Z0 | |
000 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
001 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
010 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
011 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 |
100 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
101 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
110 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
111 | - | - | - | - | - | - | - | - |
Схема организации памяти приведена на рис 6.2. Здесь БП - блок памяти (банки Б7-Б0), EAR - регистр исполнительного адреса, ФСРЗ – формирователь сигналов разрешения записи Z7-Z0. Схема управляется сигналами (битами МК) WR – запись, МЕМ – обращение к памяти.
6.2. Блок преобразования форматов.
При разработке алгоритма FSt m32real описаны основные действия в БПФ.
Укрупненная схема БПФ приведена на рис. 6.3.
Она включает в себя обратный (ОПФ) преобразователь форматов, коммутатор обратного (КОП) позиционирования со схемой управления СУОП. Коммутатор управляется сигналом EAR[0:1:2] и микрокодом формата данного FD.
Преобразователем управляют специальные последовательности микрокодов, вырабатываемые БМУ в зависимости от вида преобразования и его шага, а также от промежуточных результатов преобразования.
Структурная схема блока обратного преобразования форматов (ОПФ) из m80real в m32real для нормализованных чисел приведена на рис. 6.4.
На один вход сумматора SM1 подается константа -16256. На выходе SM1 получаем смещенный порядок E для формата m32real и передаем его в разряды 30:23 REG.
Старшие разряды мантиссы M из регистра RGD передаются в регистр RGS1.
Осуществляем сдвиг регистра RGS1 на один разряд влево. В разряды 22-0 регистра REG передаем старшие разряды регистра RGS1. Знак S (79 разряд), передается в 31 разряд регистра REG без изменений.
6.3. Блок регистров.
Блок регистров БР (рис.6.5) включает в себя регистровый стек ST, регистр тэгов TW, регистр управления CW, регистр состояния SW, регистр 1-го операнда RGA, схему СхАиМ анализа и модификации TW, CW и SW, трехразрядный сумматор SM.
Выборка из ST происходит по шинам А и B, запись – только по шине А. ST имеет адресные входы A=TOP (адресует вершину стека) и B=TOP+i (адресует регистр ST(i)). Чтение происходит по сигналу RD. Если при этом подан сигнал разрешения обращения к ST(i) EI=1, чтение происходит одновременно по обоим адресам. Запись происходит по сигналу WR в ST(0) при EI=0 и в ST(i) при EI=1.
Схема анализа и модификации выполняет проверку и модификацию тэгов, установку битов особых случаев, проверку масок.
6.4. Блок обработки данных (блок умножения)
Обобщенная схема БОД.
БОД выполняет операцию умножения над поступающими на его входы операндами. Обобщенная схема БОД приведена на рис. 6.6.
В нее входят регистры RG1 и RG2 первого и второго операндов, компаратор COMP для сравнения операндов с кодами истинного нуля, блок выполнения операций БВО, регистр результата RGB. Константы для сравнения с операндом поступают на компаратор из ПЗУ констант в составе блока микропрограммного управления БМУ. БВО разделяют на схему обработки знаков, блок обработки порядков БОП, блок обработки мантисс БОМ и формирователь признака результата ФПР. Регистры RG1 и RG2 могут быть совмещены с регистрами RGA и RGB БР. Их используют для хранения исходных операндов.
Блок умножения.
На основании алгоритма операции FMulST,ST(i) разработан блок умножения Регистры операндов RG1 и RG2 и регистр произведения RG3 подразделяются на субрегистры знаков (S1, S2, S3), порядков (E1, E2, E3) и мантисс (М1, М2, М3). Регистры мантисс расширены до 68 бит для увеличения точности вычислений. Окончательный результат получается в RG3 округляется до 64 бит.
Сумматор SME вычисляет порядок произведения E3=E1+E2-16383.
Умножитель мантисс умножает мантиссы по схеме с анализом младшего бита множителя со сдвигом множимого влево.
Вариант такой схемы приведен на рис. 6.9. Для организации цикла используется счетчик циклов CTT.
Умножение завершается нормализацией и округлением результата. Вариант схемы нормализации представлен на рис. 6.10, округления – на рис. 6.11.
6.5. Блок микропрограммного управления
В состав БМУ (рис. 6.12) входят регистр команд RGК, регистр микрокоманд RGМК, схема управления последовательностью микрокоманд УПМ, мультиплексор кода условия МКУ; инвертор кода условия ИКУ, счетчик микрокоманд СМК, преобразователь кода операции ПКОп, мультиплексор адреса МК МУАД, память констант ПЗУК.
ПЗУ МК содержит микропрограммы выполняемых операций. RGМК хранит выбранную микрокоманду (микрокод) на время ее исполнения. В микрокоманде можно выделить часть, которая управляет операционными блоками - ОП, БПФ, БР, БОД, и часть, которая управляет самим БМУ. В МК, которая управляет БМУ входят следующие поля: CHA –управление адресом следующей МК, CC-определяет проверяемое логическое условие (ЛУ), I - бит инверсии условия, J- бит безусловного перехода, Адр/К (адреса/константы)- поле адреса или константы, которое содержит адрес следующей МК, адрес ПЗУ констант или небольшую константу К.
МКУ выделяет ЛУ, указанное СС, а ИКУ передает полученное значение Х на УПМ с инверсией или без нее в зависимости от бита I.
ПКОп преобразует код операции в начальный адрес НА микропрограммы этой операции или непосредственно в микрокод. УПМ управляет мультиплексором адреса МК МУАД в зависимости от полей CHA и J МК и значения условия Х.
| ||||||||
| ||||||||
Внутренняя шина БМУ |
Рисунок 6.12 – Структурная схема БМУ |
7. Моделирование операции FMulSt,St(i)
Основные этапы моделирования:
1) постановка задачи;
2) разработка схемы алгоритма;
3) распределение регистров;
4) микропрограмма заданного алгоритма (с коментариями);
5) значения исходных данных и результатов;
6) протокол изменения состояния основных элементов модели в режиме «микрокоманда» (трасса);
7) проверка вручную правильности результата.
1 этап. Постановка задачи.
Моделирование имеет целью проверку правильности алгоритма и его окончательную отладку.
Смоделировать операцию умножения мантисс двух вещественных чисел (FMulSt, St(i)). Умножение осуществляется с анализом младшего бита множителя со сдвигом множимого влево.
2 этап. Разработка схема алгоритма.
Схемы алгоритма представлены на рисунках 5.6 и 7.1.
3 этап. Распределение регистров.
Знак и характеристика первого числа хранятся в регистре BX (15ый бит – знак числа, биты 0-14 – характеристика), мантисса – в регистре BP. Знак и характеристика второго числа хранятся в регистре CX, мантисса – в регистре SI. Произведение получается в регистрах DX и DI (аналогично).
Также в микропрограмме используются дополнительные регистры RGQ и AX. AX- сначала для выделения знака числа, затем как маска. RGQ– младшая часть мантиссы второго операнда.
4 этап. Микропрограмма заданного алгоритма (с комментариями).
Микропрограмма по заданному алгоритму, с учетом распределения регистров представлена в таблице 7.1.
Таблица 7.1 – Микропрограмма операции FMulSt,St(i) (начало).
a | b | ma | mb | mem | src | sh | n | alu | ccx | f | dst | wm | jfi | cc | cha | const |
MK0 AX=BX | ||||||||||||||||
3 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 6 | 0 | 0 | 4 | 0 | 0 | 0 | 7 | 0000 |
MK1 AX=AX xor CX | ||||||||||||||||
1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | e | 0 | 0 | 4 | 0 | 0 | 0 | 7 | 0000 |
MK2 AX=AX & 8000h | ||||||||||||||||
0 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 9 | 0 | 0 | 4 | 0 | 0 | 0 | 7 | 8000 |
MK3 DX=AX | ||||||||||||||||
0 | 2 | 0 | 0 | 0 | 1 | 0 | 0 | 6 | 0 | 0 | 4 | 0 | 0 | 0 | 7 | 0000 |
MK4 BX=BX & 7FFFh | ||||||||||||||||
0 | 3 | 0 | 0 | 0 | 5 | 0 | 0 | 9 | 0 | 0 | 4 | 0 | 0 | 0 | 7 | 7FFF |
MK5 CX=CX & 7FFFh | ||||||||||||||||
0 | 1 | 0 | 0 | 0 | 5 | 0 | 0 | 9 | 0 | 0 | 4 | 0 | 0 | 0 | 7 | 7FFF |
MK6 BX=BX + CX | ||||||||||||||||
1 | 3 | 0 | 0 | 0 | 1 | 0 | 0 | 3 | 0 | 0 | 4 | 0 | 0 | 0 | 7 | 0000 |
MK7 BX=BX – 3FFFh | ||||||||||||||||
0 | 3 | 0 | 0 | 0 | 5 | 0 | 0 | 1 | 1 | 0 | 4 | 0 | 0 | 0 | 7 | 3FFF |
MK8 DX= DX v BX RACT=Fh |
Таблица 7.1 – Микропрограмма операции FMulSt,St(i) (окончание).