ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.12.2021
Просмотров: 5271
Скачиваний: 8
Глава 3. Функциональная организация фон-неймановской ВМ
Например, микрооператор записи в регистр С результата сложения слов из ре-
гистров А и В имеет вид:
РгС(15-О) :=РгА(15-0) + РгВ(15-0),
а полное описание микрооперации принимает форму
у15:
РгА(15-0) + РгВ(15-0).
Здесь указано, что микрооперация инициируется сигналом управления у15.
Для повышения наглядности записей желательно, чтобы метка сигнала управле-
ния несла смысловую нагрузку. Например, для микроопераций выдачи информа-
ции идентификатор метки сигнала можно начинать с буквы «В», а для приема —
с буквы
метку
микрооперации пересылки из регистра
в регистр РВ мож-
но записать в виде РАРВ.
Микрооператор по форме записи представляет собой оператор присваивания.
Выражение справа от знака присваивания (:=) называется формулой микроопера-
тора. Формула определяет вид
производимого микрооперацией,
и местоположение преобразуемых операндов. Слева от знака присваивания в мик-
рооператоре указывается приемник результата реализации формулы.
В соответствии с формулой микрооператора будем различать следующие клас-
сы микроопераций.
Микрооперация установки
— присваивание слову значения константы.
Например, ПРгХ:
•
0;
:= 3110.
Микрооперации передачи
— присваивание слову значения другого слова, в том
числе с инверсией передаваемого слова.
Примером простого присваивания может служить микрооперация БпУп: СК РА.
Здесь микрооператор описывает занесение в счетчик команд содержимого регист-
ра адреса (адресного поля регистра команды), то есть реализацию перехода в ко-
мандах безусловного и условного перехода, что и отражает идентификатор сигна-
ла управления.
Другие примеры микроопераций пересылки:
PXPY:
РгХ(15-0);
РгХ(0-15).
Первый микрооператор описывает пересылку
слова из регистра
РгХ в регистр
с сохранением расположения разрядов, а второй — с
исходного слова.
Микрооперации передачи числа с плавающей запятой, имеющего поля знака s,
порядка р и мантиссы
а также передачи знака с инвертированием, имеют вид:
Пз1Пз2:
РПЗ2(S
• p • m) := РПз1 • р • m); ПИЗ:
PrY(s).
Если регистры связаны между собой не непосредственно, а через шину, кото-
рая используется
и приемниками данных,
передача сло-
ва между ними возможна при одновременном выполнении двух
и описание принимает вид:
ВРгВ:ША:=РгВ; ПРгА: РгА:= ША
или
ПРгА, ВРгВ: РгА :=
РгВ.
Микрооперации и микропрограммы 1 3 7
Здесь метки одновременно формируемых сигналов управления перечисляют-
ся через запятую и образуют
Микрооперации составления слова —
обеспечивают получение целого слова
большой разрядности из нескольких малоразрядных слов.
Пусть в 16-разрядный регистр А нужно передать слово, старшие разряды кото-
рого содержатся в 8-разрядном регистре В, а младшие — в 8-разрядном регистре С.
Соответствующую микрооперацию можно описать так:
РгА(15-0):= РгВ(7-0) •
где точка (•) — знак присоединения.
Операция присоединения предназначена для присоединения значения слова,
указанного справа от знака операции, к значению слова, расположенного слева от
знака операции.
Микрооперации сдвига
служат для изменения положения разрядов слова. По-
ложение разрядов изменяется путем перемещения каждого разряда на несколько
позиций влево или вправо.
Микрооперации сдвига слова в аккумуляторе, например, могут быть описаны
в следующих формах:
• R2AK: АК(15-0):= РС(1-0)
— сдвиг на два разряда вправо с введением
в два старших освобождающихся разряда содержимого двух младших разря-
дов регистра PC;
• L1AK: АК(15-0):= АК(14-0) • 0 — сдвиг на один разряд влево с занесением в осво-
бождающийся разряд нуля;
•
РС(15-0):= АК(15) • АК(15) • АК(15-2) - арифметический сдвиг слова
вправо на два разряда с загрузкой в старшие освобождающиеся разряды знака.
Для сокращения записи
сдвига
две процедуры:
• Rn(A) — удаление п младших правых разрядов из слова А, то есть сдвиг значе-
ния на п разрядов вправо;
• Ln(A) — удаление п старших левых разрядов из слова А, то есть сдвиг значения
на п разрядов влево.
Использование этих процедур приводит к представлению ранее рассмотрен-
ных микрооператоров в форме:
•
АК(15-0)
:=
R2(PC(1-0) •
•
АК(15-0)
:=
0);
•
PC(15-0)
:=
R2(AK(s)•AK(s)•AK).
Микрооперация счета
— обеспечивает изменение значения слова на единицу:
+1СК:СК
:=
СК+1.
Микрооперация сложения
— служит
присваивания слову суммы слагаемых:
СлАд:РАП
:=
ИР + РА.
Логические микрооперации —
присваивают слову значение, полученное пораз-
рядным применением функций И (^), ИЛИ (v), исключающее
к парам
соответствующих разрядов операндов:
Принято следующее условное обозначение: В decod (A).
Комментарии к микрооперациям
Микрооперации могут снабжаться произвольными комментариями. Комментарии
записываются справа от микрооперации и заключаются в угловые скобки. Напри-
мер,
+1СК СК := СК
содержимого СК на единицу>.
Совместимость
Совместимостью
называется свойство совокупности микроопераций, гарантиру-
ющее возможность их параллельного выполнения
Различают функциональ-
ную и структурную совместимости. Пусть
S
2
,
—
подмножества слов из
множества 5. Тогда микрооперации :=
и :=
называются
функцио-
нально совместимыми,
если
Ш, то есть если микрооперации присваивают
значения разным словам. В функциональных микропрограммах, описывающих
алгоритмы выполнения операций без учета структуры вычислительной машины,
одновременно могут выполняться только функционально совместимые микроопе-
рации.
Структура ВМ может внести дополнительные ограничения на возможность
параллельного выполнения микроопераций. Микрооперации называются
струк-
турно несовместимыми,
если из-за ограничений, обусловленных структурой ВМ,
они не могут выполняться параллельно. Обычно структурная несовместимость
связана с использованием микрооперациями одного и того же оборудования.
Цикл
Программа в фон-неймановской ЭВМ реализуется центральным процессором
(ЦП) посредством последовательного исполнения образующих эту программу
команд. Действия, требуемые для выборки (извлечения из основной памяти) и вы-
полнения команды, называют
циклом команды.
В общем случае цикл команды вклю-
чает в себя несколько составляющих (этапов):
• выборку команды;
• формирование адреса следующей команды;
• декодирование команды;
• вычисление адресов операндов;
• выборку операндов;
138 Глава 3. Функциональная организация фон-неймановской ВМ
Микрооперация двоичного декодирования —
состоит в преобразовании n-разряд-
ного двоичного позиционного кода
А
в 2"-разрядный унитарный код
В.
В унитар-
ном коде только один разряд принимает единичное значение, а все остальные рав-
ны нулю. Номер разряда
К,
который принимает значение определяется значением
кода.
Цикл команды
• исполнение
• запись результата.
Перечисленные этапы выполнения команды в дальнейшем будем называть
стандартным циклом команды.
Отметим, что не все из этапов присутствуют при
выполнении любой команды (зависит от типа команды), тем не менее этапы вы-
борки, декодирования, формирования адреса следующей команды и исполнения
имеют место всегда.
В определенных ситуациях возможны еще два этапа:
• косвенная адресация;
• реакция на прерывание.
Стандартный цикл команды
Кратко охарактеризуем каждый из вышеперечисленных этапов стандартного цик-
ла команды. При изучении данного материала следует учитывать, что приводимое
описание имеет целью лишь дать представление о сущности каждого из этапов.
В то же время распределение функций по разным этапам цикла команды и после-
довательность выполнения некоторых из них в реальных М могут отличаться от
излагаемых.
Этап выборки команды
Цикл любой команды начинается с того, что центральный процессор извлекает
команду из памяти, используя адрес, хранящийся в счетчике команд (СК). Двоич-
ный код команды помещается в регистр команды (РК) и с этого момента стано-
вится «видимым» для процессора. Без учета промежуточных пересылок и сигна-
лов управления это можно описать следующим образом: РК := ОП[
Приведенная запись охватывает весь этап выборки, если длина команды совпа-
дает с разрядностью ячейки памяти. В то же время система команд многих ВМ
предполагает несколько форматов команд, причем в разных форматах команда
может занимать 2 или более ячеек, а этап выборки команды можно считать за-
вершенным лишь после того, как в РК будет помещен полный код команды. Ин-
формация о фактической длине команды содержится в полях кода операции и спо-
соба адресации. Обычно эти поля располагают в первом слове кода команды, и для
выяснения необходимости продолжения процесса выборки необходимо предва-
рительное декодирование их содержимого. Такое декодирование может быть про-
изведено после того, как первое слово кода команды окажется в РК. В случае мно-
гословного формата команды процесс выборки продолжается вплоть до занесения
в РК всех слов команды. Например, для 16-разрядной команды, занимающей две
8-разрядные ячейки памяти, выборку можно описать так:
ПСтРК:РК(15-8):=0П[(СК)];
+1СК:СК:=СК + 1;
ПМлРК:РК(7-О):=ОП[(СК)].
Этап формирования адреса следующей команды
Для фон-неймановских машин характерно размещение соседних команд програм-
мы в смежных ячейках памяти. Если извлеченная команда не нарушает естествен-
140 Глава 3. Функциональная организация фон-неймановской ВМ
ного порядка выполнения программы, для вычисления адреса следующей выпол-
няемой команды достаточно увеличить содержимое счетчика команд на длину те-
кущей команды, представленную количеством занимаемых кодом команды ячеек
памяти. Для однословной команды это описывается микрооперацией: +1СК: СК :=
СК +
Длина команды, а также то, способна ли она изменить естественный порядок
выполнения команд программы, выясняются в ходе ранее упоминавшегося пред-
варительного декодирования. Если извлеченная команда способна изменить по-
следовательность выполнения программы (команда условного или безусловного
перехода, вызова процедуры и т. п.), процесс формирования адреса следующей
команды переносится
этап исполнения операции. В силу сказанного, в ряде ВМ
рассматриваемый этап цикла команды следует не за выборкой команды, а нахо-
дится в конце цикла.
Этап декодирования команды
После выборки команды она должна быть декодирована, для чего ЦП расшифро-
вывает находящийся в РК код команды. В результате декодирования выясняются
следующие моменты:
• находится ли в РК полный код команды или требуется дозагрузка остальных
слов команды;
• какие последующие действия нужны для выполнения данной команды;
• если команда использует операнды, то откуда они должны быть взяты (номер
регистра или адрес ячейки основной памяти);
• если команда формирует результат,
этот результат должен быть направлен.
Ответы на два первых вопроса дает расшифровка кода операции, результатом
которой может быть унитарный код, где каждый разряд соответствует одной из
команд, что можно описать в виде УнитК:=decod(Koп). На практике вместо унитар-
ного кода могут встретиться самые разнообразные формы представления резуль-
татов декодирования, например адрес ячейки специальной управляющей памяти,
где хранится первая микрокоманда микропрограммы для реализации указанной
в команде операции.
Полное выяснение всех аспектов команды, помимо расшифровки кода опера-
ции, требует также анализа адресной части команды, включая поле способа адре-
сации.
По результатам декодирования производится подготовка электронных схем ВМ
к выполнению предписанных командой действий.
Этап вычисления адресов операндов
Этап имеет место,
в процессе декодирования команды выясняется, что команда
использует операнды. Если операнды размещаются в основной памяти, осуществ-
адресов, с учетом указанного в команде
способа
Т
aк,
в случае индексной адресации для получения исполни-
тельного адреса производится суммирование содержимого адресной части коман-
ды и содержимого индексного регистра.