- •Глава 3
- •Регистр команды
- •Указатель стека
- •Языки микропрограммирования
- •Описание слов, шин, регистров
- •Описание памяти, слова памяти
- •Описание микроопераций
- •1 38 Глава 3. Функциональная организация фон-неймановской вм
- •Цикл команды
- •Этап формирования адреса следующей команды
- •Этап декодирования команды
- •Машинный цикл с косвенной адресацией
- •Машинный цикл с прерыванием
- •Диаграмма состояний цикла команды
- •Критерии эффективности вычислительных машин
- •Способы построения критериев эффективности
- •Учет приоритета частных показателей
- •Контрольные вопросы
Диаграмма состояний цикла команды
Вышеизложенное можно подытожить в виде рис. 3.6, где показаны потоки информации в ходе этапов выборки команды, косвенной адресации и прерывания [36]:
а
б
в
Рис. 3.6. Потоки информации при реализации цикла команды: а — этап выборки; б — этап косвенной адресации; в — этап прерывания
В работе [36] использован также иной подход к описанию содержания цикла команды — с помощью диаграммы состояний (рис. 3.7).
На такой диаграмме цикл команды представляется в виде последовательности состояний. Для каждой конкретной команды некоторые состояния могут быть
147

Рис. 3.7. Диаграмма состояний цикла команды
нулевыми, а некоторые другие могут неоднократно повторяться. Полный цикл команды может включать в себя следующие состояния:
- Вычисление адреса команды. Определение исполнительного адреса команды, которая должна выполняться следующей.
- Выборка команды. Чтение команды из ячейки памяти и занесение ее в РК.
- Декодирование команды. Анализ команды с целью выяснения типа подлежащей выполнению операции и операндов.
- Вычисление адреса операнда. Определение исполнительного адреса операнда, если операция предполагает обращение к операнду, хранящемуся в памяти или же доступному посредством ввода. - Выборка операнда. Выборка операнда из памяти или его ввод с устройства
ввода.
- Операция с данными. Выполнение операции, указанной в команде.
- Запись операнда. Запись результата в память или вывод на устройство вывода.
Состояния в верхней части диаграммы описывают обмен между ЦП и памятью либо между ЦП и модулем ввода/вывода. Состояния в нижней части обозначают только внутренние операции ЦП. Вычисление адреса операнда встречается дважды, поскольку команда может включать в себя чтение, запись или и то и другое, однако действия, выполняемые в этом состоянии, в обоих случаях одни и те же, поэтому используется один и тот же идентификатор состояния.
Следует отметить, что диаграмма допускает множественные операнды и результаты, как того требуют некоторые команды. Кроме того, в ряде ВМ единственная команда может определять операцию над вектором (одномерным массивом чисел)
148
или строкой (одномерным массивом символов), что требует повторяющихся операций выборки и/или записи. Диаграмма отражает также возможность этапов прерывания и косвенной адресации.
Основные показатели вычислительных машин
Использование конкретной вычислительной машины имеет смысл, если ее показатели соответствуют показателям, определяемым требованиями к реализации заданных алгоритмов. В качестве основных показателей ВМ обычно рассматривают: емкость памяти, быстродействие и производительность, стоимость и надежность [25]. В данном учебнике остановимся только на показателях быстродействия и производительности, обычно представляющих основной интерес для пользователей.
Быстродействие
Целесообразно рассматривать два вида быстродействия: номинальное и среднее. Номинальное быстродействие характеризует возможности ВМ при выполнении стандартной операции. В качестве стандартной обычно выбирают короткую операцию сложения. Если обозначить через тсл время сложения, то номинальное быстродействие определится из выражения
![]()
Среднее быстродействие характеризует скорость вычислений при выполнении эталонного алгоритма или некоторого класса алгоритмов. Величина среднего быстродействия зависит как от параметров ВМ, так и от параметров алгоритма и определяется соотношением
![]()
где Тэ — время выполнения эталонного алгоритма; N — количество операций, содержащихся в эталонном алгоритме.
Обозначим через ni число операций i-го типа; l — количество типов операции в алгоритме (i = 1, 2,..., /); т, — время выполнения операции г'-ro типа.
Время выполнения эталонного алгоритма рассчитывается по формуле:
(3.1)
Подставив (3.1) в выражение для Vср, получим

(3.2)
Основные показатели вычислительных машин 1 49
Разделим числитель и знаменатель в (3.2) на N:
(3.3)
Обозначив частоту появления
операции i-го
типа в (3.3) через
, запишем окончательную формулу для
расчета среднего быстродействия:

(3.4)
В выражении (3.4) вектор
характеризует систему команд ВМ, а
вектор
называемый частотным
вектором операций, характеризует
алгоритм.
Очевидно, что для эффективной реализации алгоритма необходимо стремиться к увеличению Vср. Если Vном главным образом отталкивается от быстродействия элементной базы, то Vср очень сильно зависит от оптимальности выбора команд ВМ.
Формула (3.4) позволяет определить среднее быстродействие машины при реализации одного алгоритма. Рассмотрим более общий случай, когда полный алгоритм состоит из нескольких частных, периодически повторяемых алгоритмов. Среднее быстродействие при решении полной задачи рассчитывается по формуле:

(3.5)
где m
— количество частных алгоритмов;
— частота появления операций j-го
частного алгоритма в полном алгоритме;
qtj
— частота операций
i-го
типа b
j'-m
частном алгоритме.
Обозначим через nj и Tj — количество операций и период повторения;j-го частного алгоритма; Tтах = mах(T1, ..., Т-, ..., Тт) — период повторения полного алгоритма;
— цикличность включении j-го
частного алгоритма в полном алгоритме.
Тогда за время T|пах
в ВМ будет выполнено Nmax
=
a.jNj
операций, а частоту
появления операций j'-ro
частного алгоритма в полном алгоритме
можно определить из выражения

(3.6)
150
Для расчета по формулам
(3.5, 3.6) необходимо знать параметры ВМ,
представленные вектором {
1
2,
3,...,
l,},
параметры каждого j-го
частного алгоритма — вектор{q1,
q2,...,
q,„}.,
и параметры полного алгоритма —
вектор{
1;
2•••
m}
Производительность ВМ оценивается количеством эталонных алгоритме выполняемых в единицу времени:
Производительность
при выполнении полного алгоритма
оценивается по формуле
.
(3.7)
Производительность является более универсальным показателем, чем среднее быстродействие, поскольку в явном виде зависит от порядка прохождения задач через ВМ.
