- •Глава 3
- •Регистр команды
- •Указатель стека
- •Языки микропрограммирования
- •Описание слов, шин, регистров
- •Описание памяти, слова памяти
- •Описание микроопераций
- •1 38 Глава 3. Функциональная организация фон-неймановской вм
- •Цикл команды
- •Этап формирования адреса следующей команды
- •Этап декодирования команды
- •Машинный цикл с косвенной адресацией
- •Машинный цикл с прерыванием
- •Диаграмма состояний цикла команды
- •Критерии эффективности вычислительных машин
- •Способы построения критериев эффективности
- •Учет приоритета частных показателей
- •Контрольные вопросы
1 38 Глава 3. Функциональная организация фон-неймановской вм
Микрооперация двоичного
декодирования — состоит
в преобразовании п-разрядного
двоичного позиционного кода А в
2п-разрядный
унитарный код В. В
унитарном коде только один разряд
принимает единичное значение, а все
остальные равны нулю. Номер разряда К,
который принимает
значение 1, определяется значением кода
А =
![]()
![]()
Принято следующее условное обозначение: В := decod (A).
Комментарии к микрооперациям
Микрооперации могут снабжаться произвольными комментариями. Комментарии записываются справа от микрооперации и заключаются в угловые скобки. Например,
+1СК := СК := СК + 1 (Увеличение содержимого СК на единицу).
Совместимость микроопераций
Совместимостью называется
свойство совокупности микроопераций,
гарантирующее возможность их
параллельного выполнения [21]. Различают
функциональную и структурную
совместимости. Пусть S1,S2,
S3,
S4
— подмножества слов из множества S.
Тогда микрооперации
называются функционально
совместимыми, если
то есть если микрооперации присваивают
значения разным словам. В функциональных
микропрограммах, описывающих алгоритмы
выполнения операций без учета структуры
вычислительной машины, одновременно
могут выполняться только функционально
совместимые микрооперации.
Структура ВМ может внести дополнительные ограничения на возможность параллельного выполнения микроопераций. Микрооперации называются структурно несовместимыми, если из-за ограничений, обусловленных структурой ВМ, они не могут выполняться параллельно. Обычно структурная несовместимость связана с использованием микрооперациями одного и того же оборудования.
Цикл команды
Программа в фон-неймановской ЭВМ реализуется центральным процессором (ЦП) посредством последовательного исполнения образующих эту программу команд. Действия, требуемые для выборки (извлечения из основной памяти) и выполнения команды, называют циклом команды. В общем случае цикл команды включает в себя несколько составляющих (этапов):
*выборку команды;
*формирование адреса следующей команды;
*декодирование команды;
*вычисление адресов операндов;
*выборку операндов;
139
*исполнение операции;
* запись результата.
Перечисленные этапы выполнения команды в дальнейшем будем называть стандартным циклом команды. Отметим, что не все из этапов присутствуют присутствуют при выполнении любой команды (зависит от типа команды), тем не менее этапы выборки декодирования, формирования адреса следующей команды и исполнения имеют место всегда.
В определенных ситуациях возможны еще два этапа:
«косвенная адресация;
и реакция на прерывание.
Стандартный цикл команды
Кратко охарактеризуем каждый из вышеперечисленных этапов стандартного цикла команды. При изучении данного материала следует учитывать, что приводимое описание имеет целью лишь дать представление о сущности каждого из этапов. В то же время распределение функций по разным этапам цикла команды и последовательность выполнения некоторых из них в реальных ВМ могут отличаться от излагаемых.
Этап выборки команды
Цикл любой команды начинается с того, что центральный процессор извлекает команду из памяти, используя адрес, хранящийся в счетчике команд (СК). Двоичный код команды помещается в регистр команды (РК) и с этого момента становится «видимым» для процессора. Без учета промежуточных пересылок и сигналов управления это можно описать следующим образом: РК := ОП[(СК)].
Приведенная запись охватывает весь этап выборки, если длина команды совпадает с разрядностью ячейки памяти. В то же время система команд многих ВМ предполагает несколько форматов команд, причем в разных форматах команда может занимать 1, 2 или более ячеек, а этап выборки команды можно считать завершенным лишь после того, как в РК будет помещен полный код команды. Информация о фактической длине команды содержится в полях кода операции и способа адресации. Обычно эти поля располагают в первом слове кода команды, и для выяснения необходимости продолжения процесса выборки необходимо предварительное декодирование их содержимого. Такое декодирование может быть произведено после того, как первое слово кода команды окажется в РК. В случае многословного формата команды процесс выборки продолжается вплоть до занесения в РК всех слов команды. Например, для 16-разрядной команды, занимающей две 8-разрядные ячейки памяти, выборку можно описать так:
ПСтРК:РК(15-8):=ОП[(СК)];
+1CK:CK:=CK+l;
ПМлРК:РК(7-0):=ОП[(СК)].
