Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Б М.docx
Скачиваний:
148
Добавлен:
09.06.2015
Размер:
2.63 Mб
Скачать

Глава 6

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

  1. Декомпозиция вычислительного устройства на операционный и управляющий блоки.

Принцип акад. В. М. Глушкова

Как показал акад. В. М. Глушков, в любом устройстве обра­ботки цифровой информации можно выделить операционный и управляющий блоки [15]. Такой подход упрощает проектирова­ние, а также облегчает понимание процесса функционирования вычислительного устройства. Декомпозиция цифрового вычисли­тельного устройства поясняется на рис. 6.1.

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

ия\.

о знаках и особых значениях операндов, их отдельных разрядов, особых значениях промежуточных и конечных результатов опе­рации (например, равенство нулю результата операции и др.).

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

К = V2 0т).

Результат

обработки

Операнды

Операцион­ный блок

сигналы U

Рис. 6.1. Операционный и управ­ляющий блоки цифрового уст­ройства

Управляющие сигналы V Код операции Z

Управляющий блок автомат)

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

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

Управляющий блок (или управляющий автомат) вырабаты­вает распределенную во времени последовательность управляю­щих сигналов

V,„ V,2. v,„ ЦеУ),

порождающих в операционном блоке нужную последователь­ность микроопераций.

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

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

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

Функционирование вычислительного устройства может быть описано совокупностью реализуемых в нем микропрограмм. Это в ряде случаев удобный, хотя и не единственно возможный способ описания цифровых устройств.

  1. Иерархия языков описания вычислительных устройств

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

Сказанное можно проиллюстрировать на материале предыдущих глав. Например, работу элемента, изображенного на рис. 3.5, в, можно рассматривать с точки зрения процессов изменения электрических токов и напряжений в отдельных точках схемы. В этом случае формальным средством описания или языком описания являются дифференциальные уравнения для токов и напряжений в цепях схемы, в основе которых лежат законы физики полупроводников и законы электротехники. На таком уровне описания рассматриваются рабочие процессы электронных схем. Однако если такой подход применить к более сложному устройству, хотя бы, например, к комбинационному параллельному сумматору, то описание окажется весьма сложным и по нему трудно представить себе производимое схемой преобразование информации. Чтобы сделать это нагляднее, необходимо отвлечься от физических процессов, происходя­щих в схеме сумматора, и рассмотреть его работу на другом, более обоб­щенном уровне — на уровне комбинационных схем и использовать в ка­честве языка описания булевы функции. В этом случае в качестве вход­ных и выходных переменных рассматриваются не электрические напряжения и токи в соответствующих точках схемы, а булевы пере­менные, принимающие всего два зяачения: 0 и 1.

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

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

Потребность в формализованных средствах описания структур и фун­кционирования цифровых устройств машин определяется не только и не столько задачами обучения, сколько потребностями современной методо­логии проектирования ЭВМ. В последней существенное место занимают моделирование на ЭВМ проектных решений в целях их проверки и опти­мизации, автоматизация с помощью ЭВМ конструирования вычислитель­ных устройств и их отдельных узлов и синтез контрольных и диагностиче­ских тестов и т. д. Для этого необходимы формализованные описания проектируемых устройств. Без формализованных описаний нельзя до­стигнуть соответствующего взаимопонимания между объединенными об­щим проектом разработчиками отдельных функциональных устройств.

Для формализованного описания устройств вычислительной техники используют различные «языки описания» в зависимости от необходимой степени детализации структуры и процесса функционирования. Различ­ным уровням рассмотрения вычислительного устройства соответствует определенная иерархия языков описания (табл. 6.1).

Отметим, что нет четкой границы между уровнями рассмотрения, на которых можно использовать те или иные языки описания. Например, операционные блоки можно описать средствами языка описания функци­онирования вычислительных устройств (язык APL), но такое описание окажется во многих случаях недостаточно детализированным и нагляд­ным. Работу устройства ЭВМ можно описать на языке микроопераций,

Таблица 6.1. Иерархия языков формализованного описания вычислительных устройств

Уровень рассмотрения

Язык формализованного описания

  1. Электронные схемы

  2. Комбинационные логические схемы

  3. Операционные узлы, узлы па­мяти, управляющие автоматы

  4. Устройства вычислительной машины

  5. Функционирование вычисли­тельной машины

VI. Вычислительный процесс

VII. Функционирование вычисли­тельной системы в условиях действия случайных факторов

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

Аппарат теории булевых функций

Язык микроопераций

Языки МОДИС-BEQ, APL [76], ООС-2 и др.

Языки машинных команд

Алгоритмические языки (ФОРТРАН, ПЛ/1, ПАСКАЛЬ, Си и др.)

Язык моделирования дискретных стохастических систем (GPSS и др.)

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

Подобным образом реализуемый ЭВМ вычислительный процесс можно описать и на алгоритмическом языке высокого уровня (например, на языке ПЛ/1) и на языке команд ЭВМ. В последнем случае вычисли­тельный процесс будет описаи более подробно, все детали его выпол­нения однозначно определены. Такое описание пригодно для задания вычислительного процесса ЭВМ, но из-за слишком большой степени детализации и обилия подробностей воспринимается человеком несрав­ненно хуже, чем описание вычислительного процесса на алгоритмическом языке высокого уровня.

Переход с одного уровня рассмотрения на другой, соответствующий в табл. 6.1 движению снизу вверх, сопровождается увеличением степе­ни детализации описания. Движение сверху вниз означает переход к описанию, позволяющему лучше понять процесс функционирова­ния.

До сих пор речь шла о так называемых детерминированных объек­тах (устройствах, машинах, системах), прн рассмотрении которых не учитываются действия случайных факторов. Учет случайных факторов (сбоев, отказов, потоков запросов на обработку программ н др.), необхо­димость в котором возрастает по мере перехода к рассмотрению более сложных вычислительных устройств н комплексов, требует привлечения методов описания н анализа дискретных стохастических систем. Для анализа подобных систем широко используется статистическое модели­рование на ЭВМ процесса функционирования. Поэтому в качестве сред­ства их описания могут служить языки моделирования дискретных стоха­стических систем (GPSS и др.)

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

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

*15 = «0а1

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

*,5

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

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

РгК[0-~7) или РгК[20-=-31} ил

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

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

Описание массива данных и памяти. Описание массива, состоящего из слов одинаковой длины, и памяти содержит их название — идентифи­катор (например, ОП2 для модуля 2 оперативной памяти) и в квадрат­ных скобках — наименьший и наибольший номера слов или нижнюю и верхнюю границы массива (наименьший и наибольший номера ячеек па­мяти), а также порядок нумерации разрядов в словах. Пример описания модуля памяти ОП2 (массива), содержащего г «-разрядных ячеек (слов): ОП2 [0-=-г — 1,0-г-л — 1). В таком случае /-я л-разрядная ячейка памяти (/-е слово) и k-Pi разряд памяти (столбец массива) представля­ются записями соответственно OfI2[jt 0 + п — 1] и ОП2 [0-^-г — 1, k\

РгК КОп А1 А2

Рис. 6.2. К описанию регистра о ? в is го л

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

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

Метка

q: РгА + /] : = РгВ /] ^ РгС [лч-n-f /). (6.1)

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

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

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

РгВ

ПС

РеК\ КОп | А1 Аг

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

ПрРгА : РгА [12-т-1}: = РгК [20-5-31];

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

ПрРгА : РгА : = РгК[А2\

где ПрРгА — метка микрооперации Прием в РгА адреса А2 из Яг/С. Управляющий сигнал, вызывающий выполнение данной микрооперации, показан условно на рис. 6.3 тонкой стрелкой.

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

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

РгВ : = СчК, СчК : = РгО.

Рассмотрим еще некоторые примеры микроопераций.

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

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

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

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

|_ РгВ

1

ШИВЫХ

СЧ

УОСЧ ШИВХ

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

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

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

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

РгВ : = /7 (к) РгА\

РгВ :=Л(*) РгА.

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

РгВ [1 Ч-16] : = РгА [8-г- 15]| Сч [0-т-3]| 7г/7|000;

Вертикальная линия является знаком операции составления слова.

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

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

идти к М;

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

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

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

Для записи микрооперации можно воспользоваться также условным

РгВ 1 9В

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

РгА [k-7-k + l]: —если (условие) то РгВ [т + т +1\ $с РгС[п + п + (\ иначе PeD /| * Рг£ [<7 ч-<7-т-/];

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

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

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

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

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

2-й такт ПрА2: РгА : =РгК\А?\,

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

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

В качестве примера на рис. 6.7 приведена представленная в виде графа микропрограмма рабочего цикла памяти с произвольным обраще­нием, словесное описание функционирования которой проводилось в $ 4.2.

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

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

открытие усилителей считывания и передача считанного кода в РгИ; ПрРгИ — прием в РгИ слова с ШИВх\ Запись — возбуждение разряд­ных усилителей записи; ПрШИВых — выдача слов из РгИ на ШИВых.

Контрольные вопросы

  1. В чем отличие микрокоманды от микрооперации?

  2. От чего зависит последовательность управляющих сигналов, вы-' рабатываемая управляющим блоком?

  3. Для чего нужны формализованные средства описания вычисли­тельных устройств?

  4. Для чего предназначен язык микроопераций?

  5. В чем состоит действие микрооператора?

  6. Как в языке микроопераций описывается выполнение условных действий?