Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

43_Ho3 / 6-ЯЗЫК МИКРООПЕРАЦИЙ

.DOC
Скачиваний:
25
Добавлен:
11.02.2016
Размер:
106.5 Кб
Скачать

3.2. ЯЗЫК МИКРООПЕРАЦИИ

Язык микроопераций предназначен для описания цифровых устройств, функционирование которых рассматривается на уровне ре­гистров. Поэтому иногда такой язык называют регистровым или язы­ком регистровых передач. Он имеет простые и наглядные средства описания слов и регистров, массивов и памятей, элементов и частей слов и массивов и соответственно элементов регистров и памятей, опе­раций передачи слов и частей слов и др.

Описание слов, регистров и шин. Описание слова (числа, логическо­го кода и др.) содержит его название — идентификатор и разрядный указатель. Идентификатором служит произвольная последователь­ность букв и цифр, начинающаяся с буквы. Разрядный указатель со­стоит из номеров старшего и младшего разрядов слова, разделенных знаком —. Указатель заключается в квадратные скобки. Например, слово — число

Х15 = 01 …. n,

где i, — двоичные разряды, можно представить в виде

X15 [0n].

Разрядный указатель слова может опускаться, если это не вызы­вает недоразумений, в частности, если ранее слово уже полностью опи­сано. Одноразрядное слово описывается только идентификатором без разрядного указателя.

Аналогичным образом описание регистра состоит из названия (идентификатора) регистра и разрядного указателя. Например, описа­ние регистра команды на Рис. 3.2 имеет вид: РгК [0  31], а его отдельных (подрегистров) и соответственно полей команды

Рис. 3.2. К описанию регистра

РгК [0  7] или РгК [КОп],

РгК [20 31] или РгК2],

т. е. в разрядном указателе подрегистра можно указывать идентифика­тор подрегистра (поля слова). Значение некоторого, например седьмо­го, разряда регистра РгК выделяется записью РгК.

Совокупность линий (цепей), предназначенных для передачи слова или, в более общем случае, кодов и сигналов, объединенных общим функциональным назначением, называется шиной. Шина, по которой в цифровое устройство извне поступает или во внешнюю среду вы­дается слово, описывается, как и регистр, идентификатором шины и разрядным указателем. Например, описание шины, по которой поступает 32-разрядная команда, обозначается UIK[0  31].

Описание массива и памяти. Описание массива, т. е. совокупности слов одинаковой длины и памяти, содержит его (ее) название — иден­тификатор (например, ОП2 для модуля 2 оперативной памяти) и в ква­дратных скобках — наименьший и наибольший номера слов и нижнюю и верхнюю границу массива (наименьший и наибольший номера ячеек памяти), а также порядок нумерации разрядов в словах. Пример опи­сания модуля памяти ОП2 (массива), содержащего r n-разрядных ячеек (слов): ОП2 [0  r -1,0  п— 1]. В таком случае j-я n-разрядная ячейка памяти (j-е слово) и k-й разряд памяти (столбец массива) представляют­ся записями соответственно ОП2 [j, 0 п— 1] и ОП2 [0r—I, k].

Описание микрооперации. Микрооперация осуществляет некоторое преобразование над данными. Это преобразование может быть логи­ческим, т. е. выполняемым над операндом или двумя операндами по­разрядно, арифметическим или функциональным. Например, это мо­жет быть установка некоторого слова в регистре, передача, взятие обратного кода, операции И и ИЛИ над двумя операндами, составле­ние слова, сдвиг, операция счета, операции сложения и вычитания, сравнение на равенство и др. Микрооперации могут быть одноме­стными или многоместными, в них участвует соответствующее число операндов. Микрооперация описывается микрооператором и мет­кой — идентификатором управляющего сигнала, вызывающего вы­полнение микрооперации. Характерный вид описания двухместной микрооперации

Формула микрооператора

, (3.1)

Метка Микрооператор

Метка (идентификатор) управляющего сигнала отделяется двоето­чием от микрооператора. Представление микрооператора основано на использовании «операции присваивания», обозначаемой знаком: =. Выражение, стоящее справа от этого знака (правая часть микроопера­тора), называется «формулой микрооператора». Формула определяет преобразование [в (5.1) обозначено знаком *], производимое микро­операцией до завершения предусмотренной в ней передачи данных, и участвующих в нем операндов, или, точнее, их местоположение. Сле­ва от знака присваивания (в левой части микрооператора) указывается регистр (или его часть), в который передается результат преобразова­ния, описанного формулой микрооператора. Если в левой части ми­крооператора указана некоторая часть регистра (подрегистр), то после выполнения микрооперации остальные разряды регистра сохраняют прежнее значение.

Действие микрооператора состоит в том, что в конце такта вы­полнения микрооперации на регистре (шине и др.), описанном в левой части микрооператора, устанавливается слово, полученное в результа­те указанных в формуле микрооператора преобразований над значе­ниями операндов в начале такта. В частном случае, если микроопера­ция состоит в передаче слова, формула микрооператора содержит лишь описание слова, точнее, регистра (или части регистра), из которо­го происходит передача. Например, микрооперацию приема адреса второго операнда А2 из регистра команды РгК в регистр адреса РгВ (Рис. 3.3) можно представить в виде

ПрВ: РгВ[121]: = РгК[2031];

или в более простой форме

ПрВ:РгВ: = РгК2];

здесь ПрВ метка управляющего сигнала Прием в РгВ адреса А2 из РгК. Управляющий сигнал показан условно на Рис. 3.3 тонкой стрел­кой.

Рис. 3.3. Пример совме­щенных во времени мик­рооператоров

Управляющий сигнал микрооперации и его метка, рассматривае­мая как переменная, принимают лишь два значения: 1 — микроопера­ция возбуждается, 0 — микрооперация не возбуждается. Один упра­вляющий сигнал (метка) может инициировать выполнение в одном такте нескольких микрооператоров. Тогда последние записываются подряд и отделяются друг от друга запятыми. Точка с запятой разде­ляет микрооператоры, выполняющиеся в разных тактах.

Пусть, например, на Рис. 3.4 прием из счетчика команд СчК в ре­гистр РгВ и из регистра РгD в СчК выполняются за один такт. Тогда можно записать

ПрDСчКВ: РгВ: = СчК, СчК: = РгD;

Рис. 3.4. Микрооперация: прием адреса А2 из регистра РгК в регистр РгВ

Рассмотрим еще некоторые примеры микроопераций. Приращение счетчика. В счетчике на Рис. 3.5 определены микро­операции: установка в 0 (УОСч), прием кода с шины ШИВх {ПрСч) и увеличение содержимого счетчика на 1 ( + 1Сч). Последнюю микро­операцию можно записать в виде

+1Сч :Сч : =Сч + 1;

Сдвиг. Различают сдвиги арифметический, логический, цикличе­ский. В описаниях микроопераций им соответствуют обозначения СдвА, СдвЛ, СдвЦ. Далее за этим обозначением указываются напра­вление сдвига (правый П или левый Л) и в скобках число разрядов, на которое производится сдвиг. Например, описание микрооперации арифметического сдвига содержимого регистра С вправо на четыре разряда имеет вид

Сдв :РгС : = СдвАП(4) РгС,

При арифметическом сдвиге знаковый разряд не сдвигается. Осво­бождающиеся при сдвиге разряды заполняются 0. Выдвигающиеся из регистра биты слова теряются.

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

Сдвиг часто производится путем «косой передачи» слова из одного регистра в другой. Микрооперации передачи содержимого РгA в РгВ со сдвигом на k разрядов вправо или влево обозначаются соответственно

СдвК:РгВ:==П(к)РгА,

СдвК: РгВ: = Л {k) РгА,

Конкатенация или составление слова. Пусть, например, в регистр В должно быть передано слово, отдельные разряды которого соответствуют содержимому некоторых разрядов регистра А, счетчика Сч, триггера переполнения ТгП и константе 0, как это показано на Рис. 3.6. Описание соответствующей микрооперации имеет вид

ПрРгВ : РгВ [1  16] : = РгА [8  15] | Сч [0  3] | ТгП |000;

Вертикальная линия является знаком операции составления слова. Для описания требуемой последовательности выполнения микро­операций в ЯМ используется оператор перехода, который для удобства будем называть микрооператором, не связывая его выполнение с вы­полнением микрооперации.

Рис. 3.5. Микроопера­ции счетчика

Рис. 3.6. Микрооперация составления (конкатенации) слова

Микрооператор перехода идти к М, позволяет задавать в микропрограмме переход к микрооператор) с меткой М.

Условные микрооператоры. Часто в микропрограммах в зависимо­сти от того, соблюдается или не соблюдается некоторое условие, дол­жна выполняться та или иная микрооперация или, что фактически одно и то же, должна выполняться или пропускаться некоторая мик­рооперация. В этих случаях для записи микрооперации используются условные микрооператоры одного из следующих типов: если (условие) то микрооператор(ы) (или метка) иначе микрооператор(ы) (или метка);

если (условие) то микрооператор(ы) (или метка);

Вместо микрооператора в условном микрооператоре может стоять метка, отсылающая к микрооператору, определенному в дру­гом месте микропрограммы.

Для записи микрооперации можно воспользоваться также ус­ловным микрооператором вида (для двухместных микроопераций)

РгА [k k + 1]: = если (условие) то РгВ [т т+l]* РгС [n  п + l] иначе РгD[рp+l]*РгЕ[qq+l];

Условие можно представить как равенство (или отсутствие равен­ства) содержимого некоторого регистра (или разряда регистра)„определенной величине, например См = 0 или РгА [0]  0, или в форме нера­венства (См > 0), или в виде логической функции двоичных пере­менных, в качестве которых могут выступать значения определенных разрядов регистров. В последнем случае условие выполняется, если ло­гическая функция принимает значение 1 (истинно).

Если описания микроопераций составляются не для проектирова­ния устройства, а только для описания процесса функционирования, метки управляющих сигналов могут опускаться.

Запись микрооперации можно сопровождать пояснениями, ко­торые должны при этом выделяться скобками <. >.

Описание микрокоманды. Описание микрокоманды .производится аналогично описанию микрооперации и представляет собой метку микрокоманды и разделенную запятыми совокупность микрооперато-1 ров, выполняемых в микрокоманде, или меток соответствующих управляющих сигналов. В общем случае можно говорить о микрокоманду так как микрооперация является частным случаем микрокоманды, coдержащей только одну микрооперацию.

Обычно даже очень простые операции преобразования информации занимают несколько тактов, требуя выполнения определенной пoследовательности микрокоманд. Например, если на Рис. 3.3 прием в РгА адреса требует предварительной установки РгА в 0, то прием в РгА адреса второго операнда А2 будет производиться последовательностью микрокоманд (т. е. микропрограммой)

1-й такт УстО РгА :РгА : =0,

2-й такт ПрАг: РгА: = РгК2];

Восприятие микропрограммы облегчается, если отдельные микро команды или группы микрокоманд, соответствующие определенным; функциональным операциям, обозначить «метками операций». Метка операции предшествует описанию первой микрокоманды из ее группы и отделяется от этой микрокоманды знаком ::.

Микропрограмма может быть изображена в виде графа, отдельные вершины которого соответствуют микрокомандам или rpyппам последовательно выполняемых микрокоманд. Безусловные микрокоманды обозначаются прямоугольниками, а условные — ромбами с показом разветвлений. Внутри прямоугольников и ромбов записывают выражения для микрооператоров. Метки, если они используются проставляют сбоку прямоугольника.

В качестве примера на Рис. 3.7 приведена представленная в виде графа микропрограмма рабочего цикла памяти с произвольным обра­щением и с разрушающим считыванием, словесное описание функцио­нирования которой приводилось в §4.2. Как видно из рис. 4.2, в блок управления памятью БУП поступают извне управляющие сигналы Обращение (сигнал начала рабочего цикла) и Операция (1 — считыва­ние, 0 — запись); БУП генерирует в необходимой последовательности управляющие сигналы, инициирующие соответствующие микроопера­ции: ПрРгА -прием адреса с шин ША в РгА, Выборка - возбуждение шин адресной выборки ячейки памяти со сбрасыванием содержимого ячейки в 0; Считывание открытие усилителей считывания и передача считанного кода в РгИ, ПрРгИ - прием в РгИ слова с ШИВх; За­пись - возбуждение разрядных усилителей записи; ПрШИВых - выда­ча слова из РгИ на ШИВых.

Рис. 3.7. Микропрограмма рабочего цикла памяти и с разрушающим считыванием

произвольным обращением