|
||
Микрооперации и микропрограммы 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 микрооперации^, у4,у5 и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, то есть если микрооперации присваивают значения разным словам. В функциональных микропрограммах, описывающих алгоритмы выполнения операций без учета структуры вычислительной машины, одновременно могут выполняться только функционально совместимые микрооперации.
Структура ВМ может внести дополнительные ограничения, на возможность параллельного выполнения микроопераций. Микрооперации называются структурно несовместимыми, если из-за ограничений, обусловленных структурой ВМ, они не могут выполняться параллельно. Обычно структурная ■ несовместимость связана с использованием микрооперациями одного и того же оборудования.
|
||
|
||
Цикл команды
|
||
|
||
Программа в фон-неймановской ЭВМ реализуется центральным процессором (ЦП) посредством последовательного исполнения образующих эту программу команд. Действия, требуемые для выборки (извлечения из основной памяти) и выполнения команды, называют циклом команды. В общем случае цикл команды включает в себя несколько составляющих (этапов):
• выборку команды;
• формирование адреса следующей команды;
• декодирование команды;
• вычисление адресов операндов;
• выборку операндов;
|
||
|
||