
MU_KP1_3494
.pdf
21
Рис.3.6. Структурная схема блока регистров
Схема анализа и модификации выполняет проверку и модификацию тэгов, установку битов особых случаев, проверку масок, установку битов условия С3-С0 и другие операции над TW, CW и SW. Их содержимое может быть по соответствующим командам передано в память или загружено из нее через БПФ.
Схема БР может быть дополнена или упрощена в зависимости от конкретного набора выполняемых операций.
3.5. Блок обработки данных
БОД выполняет арифметические операции и операции сравнения над поступающими на его входы операндами.
Обобщенная схема БОД представлена на рис. 3.7. В нее входят регистры RG1 и RG2 первого и второго операндов, компаратор СОМР для сравнения операндов с кодом истинного нуля, блок выполнения операций БВО, регистр результата RGB. Константы для сравнения с операндом поступают на компаратор из ПЗУ констант в составе блока микропрограммного управления БМУ. Из этого же ПЗУ выбираются специальные коды для записи в RG3 и для других целей. БВО разделяют на схему обработки знаков, блок обработки порядков БОП, блок

22
обработки мантисс БОМ и формирователь признака результата ФПР. Для операций сравнения БОП и БОМ выступают как единое целое.
Регистры RG1 и RG2 могут быть совмещены с регистрами RGA и RGB БР. Их используют для хранения исходных значений операндов и для промежуточных преобразований.
Рис.3.7. Структурная схема блока обработки данных
Ниже рассматривается построение БВО для некоторых операций.
3.5.1. Блок сложения-вычитания
Блок предназначен для выполнения операций сложения FADD, вычитания FSUB и обратного вычитания FSUBR над нормализованными числами. Вариант схемы БВО представлен на рис 3.8.
Регистры операндов RG1 и RG2 и регистр суммы RG3 подразделяются на субрегистры знаков (S1, S2, S3), порядков (E1, E2, E3) и мантисс (М1, М2, М3). Регистры мантисс расширены до 68 бит для увеличения точности вычислений. Окончательный результат округляется до 64 бит. Сумматор мантисс SME выполняет операции сложения, вычитания (М1-М2) и обратного вычитания (М2-М1) мантисс.
Сумматор порядков SME выполняет операции вычитания порядков Е1-Е2, а также передачу Е1 или Е2 на выход SME.

23
Рис.3.8. Структурная схема БВО сложения – вычитания
Схема обработки знаков определяет действие над мантиссами и знак результата S3 в зависимости от операции , знаков операндов S1, S2 и знака разности мантисс Sm (табл. 3.6).
Порядки уравниваются сдвигом вправо мантиссы числа с меньшим порядком на dE разрядов, где dE - разность большего и меньшего порядков. Для фиксации dE можно использовать регистр Е3 или специальный регистр в схеме уравнивания. В случае если dE > 67, сразу обнуляют сдвигаемую мантиссу, чтобы исключить ненужные сдвиги. Если dE >0, производятся сдвиг М2 и декремент dE, а при dE<0 - сдвиг М1 и инкремент dE. Уравнивание заканчивают при dE=0. Порядок результата Е3 равен большему из Е1 и Е2.
|
Обработка знаков для сложения |
Таблица 3.6 |
||
S1 |
|
S2 |
Действие над мантиссами |
S3 |
0 |
|
0 |
M1 + M2 |
0 |
0 |
|
1 |
M1 – M2 |
Sm |
1 |
|
0 |
M2 – M1 |
Sm |
1 |
|
1 |
M1 + M2 |
1 |
24
Регистры М1 и М2 могут быть организованы как регистры сдвига. Для ускорения выравнивания используют программируемые сдвигатели, позволяющие выполнять сдвиг на k бит, где k изменяется от 1 до n. При n=16 для уравнивания потребуется не более пяти сдвигов, при n=67 сдвиг производится за один шаг. Алгоритм сдвига М2 на d разрядов с помощью сдвигателя с n=16 приведен ниже.
WHILE (d>=16) {M2:=M2 SHR 16; d:=d-16};
IF d>0 then M2:=M2 SHR d.
Схема нормализации и округления выполняет следующие функции:
преобразование отрицательной разности в М3 в прямой код;
сдвиг М3 на один бит вправо и инкремент Е3 в случае переполнения мантиссы (нормализация вправо);
сдвиг М3 на k бит влево и вычитание k из Е3, если М3 содержит k ведущих нулей (нормализация влево);
округление М3 до 64 бит в зависимости от режима округления. При нормализации возможны следующие особые ситуации:
мантисса результата М3=0 (потеря значимости);
при инкременте Е3 возникает переполнение порядка;
при декременте Е3 возникает антипереполнение порядка.
Эти ситуации фиксируются формирователем признака результата, который формирует для БР и БМУ следующие сигналы:
Z - нулевой результат;
S - знак результата;
P - потеря точности;
О - переполнение порядка;
U - антипереполнение порядка.
Маскированные реакции на особые случаи:
Z - запись в регистр стека кода истинного нуля;
О - запись кода бесконечности (E=11…1; M=1.00…0);
U - запись кода нуля или денормализованного значения.
3.5.2. Блок умножения
Схема БВО умножения приведена на рис.3.9, где RG1, RG2, RG3 - регистры множимого, множителя и произведения соответственно. Схема обработки знаков вычисляет знак произведения S3=S1 S2. Сумматор SME вычисляет порядок произведения E3=E1+E2 – 16383.

25
Рис.3.9. Структурная схема БВО умножения
Умножитель MULT умножает мантиссы по одному из известных алгоритмов. Схема нормализации и округления выполняет:
сдвиг М3 вправо и инкремент Е3 в случае переполнения разрядной сетки мантиссы (нормализация вправо);
сдвиг М3 вправо и обнуление Е3 в случае антипереполнения порядка (денормализация);
округление М3 до 64 бит.
При умножении мантисс нормализованных чисел переполнение мантиссы возможно только на один бит и нормализация ограничивается одним сдвигом вправо. Денормализация выполняется как маскированная реакция на антипереполнение порядка (Е3<0). Если Е3>-64, М3 сдвигается на ABS(Е3) битов вправо, а Е3 обнуляется. Если Е3<(-64), результат принимается равным нулю.
Умножитель MULT строится наиболее просто по схеме с поразрядным анализом множителя. Вариант такой схемы и алгоритм умножения приведены на рис. 3.10. Регистр произведения М3 дополнен битами 64-67 для повышения точности. Передача из сумматора SM в М3

26
происходит со сдвигом на 1 разряд вправо. Для организации цикла используется счетчик тактов СТТ.
Рис.3.10. Умножитель с поразрядным анализом :
а- структурная схема;
б- алгоритм
3.5.3. БВО деления
Блок деления по структуре мало отличается от БВО умножения. Поэтому его схема не приводится.
Знак частного S3=S1 S2. Порядок частного E3=E1-E2+16383. Мантисса частного M3 формируется делением мантиссы делимого M1 на мантиссу делителя M2. При делении нормализованных чисел 0.10...0 < <M3 < 1.11...1. Если M3<1.0 выполняются нормализация - сдвиг M3 влево на 1 бит и декремент E3. При делении возможны те же особые случаи, что и при умножении. Случай деления на нуль выявляется при предварительном анализе операндов.
Деление мантисс выполняется по алгоритму без восстановления остатка (рис. 3.11). На каждом шаге вычисляется одна цифра частного (начиная со старшей), производятся вычитание делителя из положительного остатка или прибавление делителя к отрицательному остатку. Полученный новый остаток удваивается. Обратите внимание, что регистр делимого (остатка) М1 дополнен слева двумя битами: битом V переполнения, которое возможно при удвоении остатка, и битом знака N. Частное вычисляется с точностью до 68 знаков для последующего округления. Сдвиг остатка влево происходит при передаче из SM в M1. Алгоритм может быть несколько изменен. На каждом шаге происходит вычитание M1-M2, но результат записывается в М1 только при

27
неотрицательной разности, то есть при N=0. Это исключает необходимость анализа знака остатка.
Рис.3.11. Алгоритм деления
3.6.Блок микропрограммного управления
Всостав БМУ (рис. 3.12) входят регистр команд RGK, регистр микрокоманд RGМК, схема управления последовательностью микрокоманд УПМ, мультиплексор кода условия МКУ; инвертор кода условия ИКУ, регистровый стек СТ с указателем стека STP, счетчик микрокоманд СМК, преобразователь кода операциии ПКОп, мультиплексор адреса МК МУАД, память констант ПЗУК.
RGК содержит часть команды, определяющую выполняемую операцию после сформирования адреса (если он используется). Старшие 5 бит кода команды одинаковы для всех операций с ПТ. Конкретная операция определяется оставшимися тремя битами первого байта и битами второго байта или их частью. Для регистровых команд биты 2-0 RGK задают регистр стека ST(i). Они выводятся на внешнюю шину блока.
ПЗУ МК содержит микропрограммы выполняемых операций. Емкость ПЗУ и длина слова выбирается разработчиком проекта.
RGMK хранит выбранную микрокоманду (микрокод) на время
ееисполнения. Часть микрокода может формироваться непосредственно по коду операции. В микрокоманде можно выделить часть, управляющую операционными блоками, и часть, управляющую самим БМУ. Первая включает в себя поля,
28
управляющие памятью П, блоком преобразования форматов БПФ, блоком регистров БР и блоком выполнения операций БВО. Во вторую входят поле СНА управления адресом следующей МК, поле СС , определяющее проверяемое логическое условие ЛУ, бит инверсии условия I, бит безусловного перехода J и поле Адр/К (адреса/константы), которое может содержать адрес следующей МК, адрес ПЗУ констант или небольшую констант К.
МКУ выделяет ЛУ, указанное СС, а ИКУ передает полученное значение Х на УПМ с инверсией или без нее в зависимости от бита I.
Встеке СТ запоминаются адреса возврата из подпрограмм на микропрограммном уровне. Емкость СТ - 3-4 регистра.
ПКОп преобразует код операции в начальный адрес НА микропрограммы этой операции или непосредственно в микрокод.
УПМ управляет мультиплексором адреса МК МУАД и стеком СТ в зависимости от полей УСА и J МК и значения условия Х. Минимальный набор функций УПМ:
Cont - продолжение в естественном порядке, адрес берется из счетчика микрокоманд СМК;
JZ - переход по нулевому адресу, используется для перехода к выборке следующей микрокоманды;
JMAP - переход по начальному адресу;
JP - условный или безусловный переход по адресу Адр/К из микрокоманды, выполняется при J=1 или Х=1;
JS - условный или безусловный переход к подпрограмме: продвинутый адрес МК из СМК передается в стек и происходит переход по адресу Адр/К;
RET - условный или безусловный возврат из подпрограммы - адрес следующей МК выбирается из стека.
Список операций и состав УПМ могут быть расширены. В него можно включить счетчик циклов , исключив такие счетчики из операционных блоков. В число функций УПМ добавляются загрузка, декремент и анализ состояния счетчика.
ВПЗУ констант хранятся специальные значения - π, логарифмы, коды бесконечности и неопределенности. Они выдаются на внешнюю шину и используются в операционных блоках. Чтение ПЗУ инициируется специальным полем МК. Длина константы - до 66 бит.

29
Рис.3.12. Блок микропрограммного управления
4. МИКРОПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
4.1.Структура микрокоманды
Состав МК определяется в процессе построения функциональной схемы процессора и уточнения его внутренних связей. Слово МК делится на несколько зон, зона состоит из одного или нескольких полей. Можно выделить зоны П, БПФ, БР, БОД, БМУ, управляющие одноименными блоками, и зону константы КОНСТ.
Зоны разбиваются на поля по функциональному признаку – каждое поле управляет определенным узлом - мультиплексором, сдвигателем, сумматором, умножителем и т.д. Возможно сочетание микропрограммного и аппаратного управления, когда часть управляющих сигналов вырабатывается специальной схемой.
30
Конкретный состав зоны МК определяется составом и функциями соответствующего блока. Так в зону управления памятью П в общем случае входят 3 поля: поле РЕЖИМ, задающее операции записи или чтения; поле ФОРМАТ, задающее размер данного; поле IncА, задающее инкремент адреса. Если из памяти выбираются данные только одного формата, то поле ФОРМАТ отсутствует. Зона БР (см. рис. 3.7) содержит поле управления стеком ST, поля управления мультиплексорами, поле управления схемой анализа и модификации, поля EA, EB разрешения записи в регистры RGA, RGB, поле MD управления выдачей данных на шину связи с БПФ.
Более разнообразными и сложными являются структуры зон БПФ и БОД. Основные поля БМУ были рассмотрены в разд. 3.6.
4.2.Описание полей микрокоманд и микропрограмм
Поля МК описываются таблицами соответствия между кодами полей и выполняемыми функциями. В табл. 4.1, 4.2, 4.3 приведены описания полей ST и MX зоны БР и поля УСА зоны БМУ (см. п. 3.6).
Курсивом отмечены значения по умолчанию. Для каждой МК разработанных микропрограмм приводятся описания ее полей. В табл.4.4 приведен пример описания МК выборки в RGA слова с шины данных БПФ, а в RGB - слова из стека.
Описание поля ST Таблица 4.1.
000 |
Нет операции |
001 |
Чтение ST(0) |
010 |
Запись ST(0) |
101 |
Чтение ST(i) |
110 |
Запись ST(i) |
Описание поля MX Таблица 4.2
000 |
Нет кода |
001 |
Шина БПФ - ST |
010 |
Шина БПФ – RGA |
011 |
RGB - ST |
100 |
Результат из БОД |
Описание поля УСА |
Таблица 4.3 |
000 |
JZ |
001 |
JMAP |
010 |
CONT |
011 |
JP |
100 |
JS |
101 |
RET |
Микропрограмма операции представляет собой последовательность МК и задается таблицей, содержащей следующие графы:
адрес МК - десятичный или 16-ричный адрес микрокоманды;
метка - символическое имя для адресации переходов;
содержание МК - содержательное описание микрокоманды;
описание МК - описание полей МК по типу табл. 4.4.