Микрооперации и микропрограммы 131
адреса памяти, преобразующим поступивший из РАП адрес ячейки в разрешающие сигналы, подаваемые в горизонтальную и вертикальную линии, на пересечении которых расположена адресуемая ячейка. При современной емкости ОП для реа­лизации данных сигналов приходится: использовать несколько микросхем запо­минающих устройств (ЗУ). В этих условиях процесс обращения к ячейке состоит из выбора нужной микросхемы (на основании старших разрядов адреса) и выбора ячейки внутри микросхемы (определяется младшими разрядами адреса). Первая часть процедуры производится внешними схемами, а вторая — внутри микросхем ЗУ.
Модуль ввода/вывода
Структура приведенного на рис. ЗЛмодуля ввода/вывода (МВБ) обеспечивает толь­ко пояснение логики работы ВМ. В реальных ВМ реализация этого устройства машины может существенно отличаться от рассматриваемой. Задачей МВВ явля­ется обеспечение подключения к ВМ различных периферийных устройств (ПУ) и обмена информацией с ними. В рассматриваемом варианте МВВ состоит из де­шифратора номера порта ввода/вывода, множества портов ввода и множества пор­тов вывода.
Порты ввода и порты вывода
Портом называют схему, ответственную за передачу информации из периферий­ного устройства ввода в аккумулятор АЛУ (порт ввода) или из аккумулятора на периферийное устройство вывода (порт вывода). Схема обеспечивает электричес­кое и логическое сопряжение ВМ с подключенным к нему периферийным устрой­ством.
Дешифратор номера порта ввода/вывода
В модуле ввода/вывода рассматриваемой ВМ предполагается, что каждое ПУ под­ключается к своему порту. Каждый порт имеет уникальный номер, который указы­вается в адресной части команд ввода/вывода. Дешифратор номера порта ввода/ вывода (Д ВВ) обеспечивает преобразование номера порта в сигнал, разрешающий операцию ввода или вывода на соответствующем порте. Непосредственно ввод (вывод) происходит при поступлении из МПА сигнала Вв (Выв).
Микрооперации и микропрограммы
Для пояснения логики функционирования ВМ ее целесообразно представить в' виде совокупности узлов, связанных между собой коммуникационной сетью (рис. 3.2).
Процесс функционирования вычислительной машины состоит из цоследова-тельности пересылок информации между ее узлами и элементарных действий, выполняемых в узлах. Понятие узла здесь трактуется весьма широко: от регистра до АЛУ или основной памяти. Также широко следует понимать и термин «элемен­тарное действие». Это может быть установка регистра в некоторое состояние или выполнение операции в АЛУ. Любое элементарное действие производится при поступлении соответствующего сигнала управления (СУ) из микропрограммного автомата устройства управления. Возможная частота формирования сигналов-на
132Глава 3. Функциональная организация фон-неймановской ВМ
Рис. 3.2. Вычислительнаямашина с позиций микроопераций и сигналов управления
выходе автомата определяется синхронизирующими импульсами, поступающими от генератора тактовых импульсов (ГТИ). Элементарные пересылки или преобра­зования информации, выполняемые в течение одного такта сигналов синхрониза­ции, называются микрооперациями. В течение одного такта могут одновременно выполняться несколько микроопераций. Совокупность сигналов управления, вы­зывающих микрооперации, выполняемые в одном такте, называют микрокоман­дой. Относительно сложные действия, осуществляемые вычислительной машиной в процессе ее работы, реализуются как последовательность микроопераций и мо­гут быть заданы последовательностью микрокоманд, называемой микропрограм­мой. Реализует микропрограмму, то есть вырабатывает управляющие сигналы, за­даваемые ее микрокомандами, микропрограммный автомат (МПА).
Способы записи микропрограмм
Для записи микропрограмм в компактной форме используются граф-схемы алго­ритмов и языки микропрограммирования.
Граф-схемы алгоритмов
Граф-схема алгоритма (ГСА) имеет вид ориентированного графа. При построе­нии графа оперируют пятью типами вершин (рис. 3.3).
Начальная вершина (см. рис. 3.3, а) определяет начало микропрограммы и не имеет входов. Конечная вершина (см. рис. 3.3, б")указывает конец микропрограммы, по-
Микрооперации и микропрограммы 133
этому имеет только вход. В операторную вершину (см. рис. 3.3, в) вписывают мик­рооперации, выполняемые в течение одного машинного такта. С вершиной связа­ны один вход и один выход. Условная* вершина (см. рис. 3.3, г) используется для ветвления вычислительного процесса. Она имеет один вход и два выхода, соответ­ствующие позитивному («Да») и негативному («Нет») исходам проверки усло­вия, записанного в вершине. С помощью ждущей вершины (см. рис. 3.3, д) можно описывать ожидание в работе устройств. В этом случае выход «Да» соответствует снятию причины, вызвавшей ожидание.
Граф-схемы алгоритмов составляются в соответствии со следующими прави­лами:
1. ГСА должна содержать одну начальную, одну конечную и конечное множество операторных и условных вершин.
2.   Каждый выход вершины ГСА соединяется только с одним входом.
3.   Входы и выходы различных вершин соединяются дугами, направленными от выхода к входу.
4.  Для любой вершины ГСА существует, по крайней мере, один путь из этой вер­шины к конечной вершине, проходящий через операторные и условные верши­ны в направлении соединяющих их дуг.
5.   В каждой операторной вершине записываются микрооперации #, соответству­ющие одной микрокоманде У.           '
6. В каждой условной вершине записывается один из элементов множества логи­ческих условий х.                                     .
7.   Начальной вершине ставится в соответствие фиктивный оператор у0 а конеч­ной — фиктивный оператор yt. На рис. 3.4 показан пример микропрограммы, записанной на языке ГСА.
,134Глава 3. Функциональная организация фон-неймановской ВМ
В примере микрокоманда Υ{ инициирует микрооперации у, и у6, микрокоманда У2 — микрооперациюу2, a Υ3 микрооперации^, у45 и7.
Языки микропрограммирования
Для детализированного задания микропрограмм используют языки микропро­граммирования. Языки микропрограммирования (ЯМП) обеспечивают описание функционирования ВМ в терминах микроопераций.
Если средства языка ориентированы на запись микропрограммы без привязки к конкретным структурам для реализации этой микропрограммы, то такой ЯМП называют языком функционального микропрограммирования, а соответствующие микропрограммы — функциональными микропрограммами [2 ^.Функциональная микропрограмма используется как исходная форма для описания функциониро­вания ВМ.
В случае когда средства языка нацелены на описание микропрограмм, привя­занных к конкретной реализующей их структуре, ЯМП называют языком струк­турно -функционального микропрограммирования.
В последующих разделах для описания функционирования ВМ будет исполь­зоваться именно язык микропрограммирования, а конкретно вариант ЯМП, пред­ложенный в [25]. Ниже рассматриваются основные средства языка.
Описание слов, шин, регистров
Основным элементом данных, с которым оперирует микропрограмма, является слово.
Описание слова состоит из названия (идентификатора) и разрядного указателя. Идентификатором может быть произвольная последовательность букв и цифр, начинающаяся с буквы. Разрядный указатель состоит из номеров старшего и млад­шего разрядов слова, разделенных горизонтальной чертой (дефис). Номер стар­шего разряда записывается слева от черты, а номер младшего — справа. Указатель заключается в круглые скобки. Так, описание слова, представляющего 32-разряд­ный адрес исп = а31, а30,... ,а0 записывается в виде Аисп(31 -0). Разрядный указатель может опускаться, если это не вызывает недоразумений (например, если слово уже Л было описано раньше).
В структуре вычислительной машины важную роль играют шины. Шиной на­зывается совокупность цепей, используемых для передачи слов. Одна цепь обес- ~-печивает передачу бита информации. Описание шины, как и слова, состоит из иден- j тификатора и разрядного указателя. Например, описание 32-разрядной шины . адреса имеет вид ША(31-0).
Описание регистра также включает в себя названия регистра и разрядного ука- .■' зателя. Приведем примеры. Так, пусть команда имеет длину 32 бита и состоит из ,; 8-разрядного кода операции, 4-разрядного поля способа адресации и 20-разрядного ', поля адреса. Тогда описание регистра команды выглядит следующим образом: '' РК(31-0), а описания его отдельных элементов и соответственно полей команды -имеют вид: РК(31-24), РК(23-20), РК(19-0). Вместо номеров разрядов в разрядном ι указателе можно записывать наименование поля слова. Тогда два первых поля ; регистра команды могут быть представлены так: РЩКОП), РК(СА).                           л
1
5 ϊ
i
Микрооперации и микропрограммы 135
Описание 32-разрядного регистра РПЗ для хранения чисел с плавающей запя­той, где число состоит из трех полей: s (поле знака мантиссы, бит 31), р (поле по­рядка, биты 30-23) и m (поле мантиссы, биты 22-0), задается в виде РПЗ(31 · 30--23 · 22-0)или Pll3(s · р · т). Здесь точка обозначает операцию составления целого слова из его частей.
Описание памяти, слова памяти
В самом общем виде описание памяти емкостью 1000 16-разрядных слов имеет вид: ПАМ [000:999] (15-0). Здесь ПАМ — стандартное название памяти. Мы в даль­нейшем будем использовать следующие идентификаторы памяти: ОП (основная память), ОЗУ (модуль оперативного запоминающего устройства), ПЗУ(модуль постоянного запоминающего устройства). В квадратных скобках записывается адресный указатель (слева от двоеточия адрес первого, а справа — адрес последнего слова памяти). Наконец, в круглые скобки заключается разрядный указатель сло­ва (все слова памяти имеют одинаковую разрядность).
Примеры.
Описания модулей ОЗУ, содержащих по 1 Кбайт (1024 байта):
03У1 [0000:1023](7-0); 03У2[ 1024:2047](7-0).
Описания модулей ПЗУ, содержащих по 8192 32-разрядных слова:
n3yi[000016:0FFF16](0-31),n3y2[100016:lFFF16](0-31).
Здесь адреса слов указаны в шестнадцатеричном коде, в каждом слове старший разряд имеет номер 0, а младший — 31.
Описание слова памяти поделено на две части: идентификатор области памяти и адресный указатель слова (в квадратных скобках). Допускается символическая запись адреса, а также косвенное указание адреса слова.
Примеры описаний слов памяти: 03УЦ211], или 03У1 [Аисп], или 03У1[(РАП)], где Аисп — символический адрес(РАП) — косвенный адрес, значение которого содер­жится в регистре РАП.
Описание микроопераций
Здесь под микрооперацией понимается элементарная функциональная операция, выполняемая над словами под воздействием одного сигнала управления, который вырабатывается устройством управления ВМ. В зависимости от количества пре­образуемых слов (операндов) различают одноместные, двухместные и трехмест­ные микрооперации.
Описание микрооперации складывается из двух частей, разделяемых двоето­чием
МЕТКА: МИКРООПЕРАТОР.
Метка — это обозначение сигнала управления, вызывающего выполнение мик­рооперации. Метка принимает два значения: 1 — микрооперация выполняется, 0 — не выполняется.
Микрооперагор определяет содержимое производимого элементарного действия (микрооперации).                                                                              ;
136 Глава 3. Функциональная организация фон-неймановской ВМ
Например, микрооператор записи в регистр С результата сложения слов из ре­гистров А и В имеет вид:
РгС(15-0) :=РгА(15-0) + РгВ(15-0),
а полное описание микрооперации принимает форму
у15: РгС(15-0): РгА(15-0) + РгВ(15-0). "
Здесь указано, что микрооперация инициируется сигналом управления у15.
Для повышения наглядности записей желательно, чтобы метка сигнала управле­ния несла смысловую нагрузку. Например, для микроопераций выдачи информа­ции идентификатор метки сигнала можно, начинать с буквы «В», а для приема — с буквы «П»; метку для микрооперации пересылки из регистра РА в регистр РВ мож­но записать в виде РАРВ.
Микрооператор по форме записи представляет собой оператор присваивания. Выражение справа от знака присваивания (:=) называется формулой микроопера­тора. Формула определяет вид преобразования, производимого микрооперацией, и местоположение преобразуемых операндов. Слева от знака присваивания в мик­рооператоре указывается приемник результата реализации формулы.
В соответствии с формулой микрооператора будем различать следующие клас­сы микроопераций.
Микрооперация установки — присваивание слову значения константы.
Например, ПРгХ PrX(s · m): 0; ПРгС:С(7-0) := 3110.
Микрооперации передачи — присваивание слову значения другого слова, в том числе с инверсией передаваемого слова.
Примером простого присваивания .может служить микрооперация БпУге СК := РА Здесь микрооператор описывает занесение в счетчик·команд содержимого регист­ра адреса (адресного поля регистра команды), то есть реализацию перехода в ко­мандах безусловного и условного перехода, что и отражает идентификатор сигна­ла управления.
Другие примеры микроопераций пересылки:
PKPY: PrY(15-0): РгХ(15-0); РевХУ: PrY(15-0): РгХ(0-15).
Первый микрооператор описывает пересылку 16-разрядного слова из регистра РгХ в регистр PrY с сохранением расположения разрядов, а второй — с «разворо­том» исходного слова.
Микрооперации передачи числа с плавающей запятой, имеющего поля знака s, порядка р и мантиссы т, а также передачи знака с инвертированием, имеют вид: :
Пз1Пз2: pn32(S · р · т) := РПз1 (s · р · т); ПИЗ: PrX(s) := PrY(s).
Если регистры связаны между собой не непосредственно, а через шину, кото­рая используется многими источниками и приемниками данных, то передача сло­ва между ними возможна при одновременном выполнении двух микроопераций, и описание принимает вид;               ...
ВРгВ:ША:=РгВ; ПРгА: РгА:= ША
или
ПРгА, ВРгВ: РгА := ША: РгВ.
Микрооперации и микропрограммы 137
Здесь метки одновременно формируемых сигналов управления перечисляют­ся через запятую и образуют микрокоманду. ■
Микрооперации составления слова — обеспечивают получение целого слова - большой разрядности из нескольких малоразрядных слов.
Пусть в 16-разрядный регистр А нужно передать слово, старшие разряды кото­рого содержатся в 8-разрядном регистре В, а младшие — в 8-разрядном регистре С. Соответствующую микрооперацию можно описать так:
ПРгА: РгА(15-0):= РгВ(7-0) · РгС(7-0),
где точка (·) — знак присоединения.
Операция присоединения предназначена для присоединения значения слова, указанного справа от знака операции, к значению слова, расположенного слева от знака операции.
Микрооперации сдвига служат для изменения положения разрядов слова. По­ложение разрядов изменяется путем перемещения каждого разряда на несколько позиций влево или вправо.
Микрооперации сдвига слова в аккумуляторе, например, могут быть описаны в следующих формах:
•  КАК: АК(15-0):= РС(1-0) · АК(15-2) — сдвиг надва разряда вправо с введением в два старших освобождающихся разряда содержимого двух младших разря­дов регистра PC;
•  DAK АК(15-0):= АК(14-0) · 0 — сдвиг на один разряд влево с занесением в осво-
бождающийся разряд нуля;
•    R2AK(15-0): РС(15-0):= АК(15) · АК(15) · АК(15-2) - арифметический сдвиг слова вправо на два разряда с загрузкой в старшие освобождающиеся разряды знака. Для сокращения записи микрооперации сдвига используются две процедуры:
•   Rn(A) — удаление п младших правых разрядов из слова А, то есть сдвиг значе­ния на п разрядов вправо;
•   Ln(A) — удаление п старших левых разрядов из слова А, то есть сдвиг значения на п разрядов влево.
Использование этих процедур приводит к представлению ранее рассмотрен­ных микрооператоров в форме:
•    AK(15-0):=R2(PC(1-0)»AK);
•  АК(15-0):= L1(AK · 0);
"· PC(15-0):=R2(AK(s)»AK(s)»AK).
Микрооперация счета — обеспечивает изменение значения слова на единицу:
+ 1СК:СК:=СК+1.
Микрооперация сложения — служит дл» присваивания слову суммы слагаемых:
СлАд:РАП:=ИР + РА
Логические микрооперации — присваивают слову значение, полученное пораз­рядным применением функций И (л), ИЛИ (v), исключающее ИЛИ к парам соответствующих разрядов операндов:
И: АК > РгХ л PrY; М2: АК:- РгХ Ф PrY.
138 Глава 3. Функциональная организация фон-неймановской ВМ
Микрооперация двоичного декодирования — состоит в преобразовании п-разряд-ного двоичного позиционного кода А в 2"-разрядный унитарный код В. В унитар­ном коде только один разряд принимает единичное значение, а все остальные рав­ны нулю. Номер разряда К, который принимает значение 1, определяется значением кодаЛ - <ν1} Ящ-ъ...»Щ
Принято следующее условное обозначение: В := decod (А).
Комментарии к микрооперациям
Микрооперации могут снабжаться произвольными комментариями. Комментарии записываются справа от микрооперации и заключаются в угловые скобки. Напри­мер,
+1СК:« СК := СК +1 <Увеличениесодержиуюго СК на единицуХ
Совместимость микроопераций
Совместимостью называется свойство совокупности микроопераций, гарантиру­ющее возможность их параллельного выполнения [21]. Различают функциональ­ную и структурную совместимости. Пусть 5„ S2, 53, 54 — подмножества слов из множества 5. Тогда микрооперации 5t:= 9i(52) и S3 := фг^) называются функцио­нально совместимыми, если 5, п S2 411, то есть если микрооперации присваивают значения разным словам. В функциональных микропрограммах, описывающих алгоритмы выполнения операций без учета структуры вычислительной машины, одновременно могут выполняться только функционально совместимые микроопе­рации.
Структура ВМ может внести дополнительные ограничения, на возможность параллельного выполнения микроопераций. Микрооперации называются струк­турно несовместимыми, если из-за ограничений, обусловленных структурой ВМ, они не могут выполняться параллельно. Обычно структурная ■ несовместимость связана с использованием микрооперациями одного и того же оборудования.
Цикл команды
Программа в фон-неймановской ЭВМ реализуется центральным процессором (ЦП) посредством последовательного исполнения образующих эту программу команд. Действия, требуемые для выборки (извлечения из основной памяти) и вы­полнения команды, называют циклом команды. В общем случае цикл команды вклю­чает в себя несколько составляющих (этапов):
•    выборку команды;
•    формирование адреса следующей команды;
•    декодирование команды;
•    вычисление адресов операндов;
•    выборку операндов;
Hosted by uCoz