производятся отдельно над характеристиками и мантиссами по правилам обработки целых чисел и чисел с фиксированной запятой.
При выполнении арифметических операций контролируются случаи переполнения и исчезновения порядка. Если действия над характеристиками проводятся в дополнительном модифицированном коде, то о переполнении порядка свидетельствует появление кода 01 в двух знаковых разрядах модифицированного кода, а код 11 указывает исчезновение порядка [2,6,8]. При выполнении всех операций над знаками чисел, а также в операциях сложения, вычитания и сравнения устанавливается признак результата в регистре РСП.
Набор команд логической обработки данных предназначен для выполнения широкого класса логических операций, в которых операнды рассматриваются как группы байтов и, за исключением команд редактирования, трактуются как нечисловая информация. Набор логических операций включает в себя пересылки, сравнение кодов, побитовые логические операции, проверки битов и сдвиги кодов.
В результате выполнения всех операций логического сравнения, поразрядных операций, а также операций проверки устанавливается признак результата.
Набор команд переходов предназначен для выбора одного из двух направлений продолжения программы (ветвление программ или организация циклов). Кроме того, с помощью этих команд организуются обращения к подпрограммам (переход с возвратом). Переход реализуется путем засылки адреса перехода в качестве нового адреса команды в СЧАК.
В процессе выполнения всех операций в регистре РСП устанавливаются признаки состояния процессора и признаки перехода, такие как:
А - неправильная адресация;
S - неправильная спецификация;
SР - неправильная спецификация с плавающей запятой;
Е - переполнение порядка;
LS - потеря значимости;
U - исчезновение порядка;
FK - особый случай деления в плавающей запятой;
IF - переполнение в операции с фиксированной точкой;
IK – особый случай деления с фиксированной точкой;
ТП – значение триггера перехода;
ПрР(1:2) – признак результата.
4.5. Выполнение команд
Ф-МПа каждой отдельной команды разрабатывается на основе словесного алгоритма ее выполнения [1].
Чтение операнда из ОП и запись результата в ОП по исполнительному адресу А1 или А2 производится после проверки адреса на правильность адресации (А) и спецификации (S). При правильной адресации адрес не должен быть длиннее адреса байта ОП (в нашем примере - 18 разрядов). Иначе возникает попытка обращения за пределы физической емкости ОП. Проверка адреса на правильность спецификации связана с длиной операнда (см. рис.3).
Обмен с ОП происходит только словами ОП. Если операндом команды является часть слова ОП, то необходимо прочитать в регистр Z все слово ОП, а затем выделить его часть (байт, полуслово) в соответствии с младшими разрядами адреса. При записи в ОП единицы информации короче длины слова ОП содержимое ячейки ОП читается в регистр Z и соответствующая часть слова ОП заменяется операндом. Таким образом сформированное слово ОП записывается в ту же ячейку ОП.
Если длина операнда превышает длину слова памяти, то чтение и запись производится за несколько обращений к памяти.
В качестве примера рассмотрим выполнение команды “Сложение” (формат RX, код операции 5А). Словесный алгоритм в упрощенном виде выглядит следующим образом. Второй операнд складывается с первым операндом, и сумма помещается на место первого операнда. В сложении участвуют все 32 бита каждого операнда. Необходимо выявить переполнение, которое вызывает программное прерывание. При переполнении полученный знаковый бит суммы остается без изменения. Переполнение возникает, если при сложении положительных чисел сумма получается с отрицательным знаком, а при сложении отрицательных чисел с положительный знаком.
Признаки результата: 0 - сумма равна 0; 1 - сумма меньше 0; 2 - сумма больше 0; 3 - переполнение.
Программные прерывания: доступ (неправильное обращение к ОП, т.е. А и S); переполнение с фиксированной точкой (IF).Ф-МП выполнения операции сложения целых чисел приведена на рис. 13.
После выборки команды формата RХ из ОП в РК (см. рис. 11 в приложении) формируется исполнительный адрес второго операнда А2 путем базирования и индексирования в рабочем регистре РА памяти ОА. С учетом длины регистра РА (0:31) адрес А2 проверяется на правильность адресации и спецификации. Если адрес сформирован неверно, в регистре РСП устанавливается причина прерывания выполнения команды (А или S ).Затем производится чтение второго операнда длиной 4 байта из ОП с длиной слова 8 байтов в рабочий регистр РА. Первый операнд читается из РОНа с адресом R1 в рабочий регистр РВ (0:31).
Операнды (целые числа со знаком) проверяются на равенство 0. Если хотя бы один из операндов равен 0, устанавливается признак результата в регистре РСП и результат записывается в РОН с номером R1. Если операнды не равны 0, то производится их сложение и сумма формируется в регистре РА. Так как необходимо выявить переполнение, которое может возникнуть только при сложении чисел с одинаковыми знаками, в микропрограмме (рис.13 в приложении) фигурируют две микрокоманды сложения ( Y31 и Y131). В соответствии со значением суммы устанавливается признак результата и сумма записывается на место первого операнда.
(слово ОП - 8 байтов)
5.ОБЬЕДИНЕНИЕ СТРУКТУРНО-ФУНКЦИОНАЛЬНЫХ МИКРОПРОГРАММ С ИСПОЛЬЗОВАНИЕМ МАТРИЧНЫХ СХЕМ АЛГОРИТМА
Исходным материалом для построения объединённой функциональной микропрограммы (Ф-МП) являются разработанные Ф-МП отдельных операций [1]. Каждая Ф-МП должна быть размечена: микрокоманды (операторные вершины) – символами из множества {Y}, логические условия – символами из множества осведомительных сигналов {x} или переменными кода операции {p}. Одинаковые микрокоманды отмечаются одними и теми же символами Yl в разных Ф-МП. Если в одной Ф-МП встречается несколько одинаковых операторных вершин Yl, то каждая последующая из них обозначается символом Yl c добавлением штриха ( Yl1, Yl11 и т.д.) Размеченные Ф-Мпы называются граф-схемами алгоритма (структурно-функциональными микропрограммами СФ-МП).
Алгоритм объединения СФ-МП рассмотрим на примере объединения трёх ГСА (ГСА1, ГСА2, ГСА3 ), представленных на рис.14а,b,c. Объединение выполняется в несколько этапов.
5.1. Построение матричных схем алгоритма (МСА)
Для каждой ГСА Гq строится МСА Мq. Мq – квадратная матрица, строки которой отмечены операторами Y0 , Y1,…, Yt , а столбцы – Y1, …, YT, YK (здесь Yt – микрокоманда (оператор) ГСА Гq , t=1,…T; Y0 и YK - начальный и конечный операторы, соответственно. На пересечении строки Yi и столбца Yj матрицы записывается функция перехода от оператора Yi к оператору Yj МСА М1, М2, М3 приведены в табл.2,3,4. Если в одной ГСА Гq имеется несколько операторов Yi, Yi1, Yi11 и т.д., то в дальнейшем они рассматриваются как различные.
Если в некоторой строке МСА переменная xi встречается либо только в прямом (xi), либо только в инверсном значении (
), то эта переменная определяет ждущую условную вершину ГСА.Каждая МСА Mq ( q=1,…,Q ) кодируется вектором, длина которого N
]log2Q[.Закодируем М1, М2, М3 следующим образом: М1-(00); М2-(11); М3-(01). Каждой МСА ставится в соответствие определяющая конъюнкция Pq= .В нашем примере
P1=
; Р2=р1р2; Р3= .Рис.14а. Исходные граф-схемы алгоритмов(ГСА1)
Рис.14б.Исходные граф-схемы алгоритмов (ГСА2)
Таблица 2
Y1 | Y2 | Y3 | Y4 | Y5 | Y6 | YK | |
Y0 | x1x3x6 | ||||||
Y1 | x2 | ||||||
Y2 | x3x6 | ||||||
Y3 | x3x6 | ||||||
Y4 | x4x3 | ||||||
Y5 | x4 | ||||||
Y6 | 1 |
Таблица 3