138 Глава 3. Функциональная организация фон-неймановской ВМ
Микрооперация двоичного декодирования — состоит в преобразовании п-разряд-ного двоичного позиционного кода А в 2"-разрядный унитарный код В. В унитар­ном коде только один разряд принимает единичное значение, а все остальные рав­ны нулю. Номер разряда К, который принимает значение 1, определяется значением кодаЛ - <ν1} Ящ-ъ...»Щ
Принято следующее условное обозначение: В := decod (А).
Комментарии к микрооперациям
Микрооперации могут снабжаться произвольными комментариями. Комментарии записываются справа от микрооперации и заключаются в угловые скобки. Напри­мер,
+1СК:« СК := СК +1 <Увеличениесодержиуюго СК на единицуХ
Совместимость микроопераций
Совместимостью называется свойство совокупности микроопераций, гарантиру­ющее возможность их параллельного выполнения [21]. Различают функциональ­ную и структурную совместимости. Пусть 5„ S2, 53, 54 — подмножества слов из множества 5. Тогда микрооперации 5t:= 9i(52) и S3 := фг^) называются функцио­нально совместимыми, если 5, п S2 411, то есть если микрооперации присваивают значения разным словам. В функциональных микропрограммах, описывающих алгоритмы выполнения операций без учета структуры вычислительной машины, одновременно могут выполняться только функционально совместимые микроопе­рации.
Структура ВМ может внести дополнительные ограничения, на возможность параллельного выполнения микроопераций. Микрооперации называются струк­турно несовместимыми, если из-за ограничений, обусловленных структурой ВМ, они не могут выполняться параллельно. Обычно структурная ■ несовместимость связана с использованием микрооперациями одного и того же оборудования.
Цикл команды
Программа в фон-неймановской ЭВМ реализуется центральным процессором (ЦП) посредством последовательного исполнения образующих эту программу команд. Действия, требуемые для выборки (извлечения из основной памяти) и вы­полнения команды, называют циклом команды. В общем случае цикл команды вклю­чает в себя несколько составляющих (этапов):
•    выборку команды;
•    формирование адреса следующей команды;
•    декодирование команды;
•    вычисление адресов операндов;
•    выборку операндов;
Цикл команды 139
•   исполнение операции;
•    запись результата.
Перечисленные этапы выполнения команды в дальнейшем будем называть стандартным циклом команды. Отметим, что не все из этапов присутствуют при выполнении любой команды (зависит от типа команды), тем не менее этапы вы­борки, декодирования, формирования адреса следующей команды и исполнения имеют место всегда.
В определенных ситуациях возможны еще два этапа:
•   косвенная адресация;
•   реакция на прерывание.
Стандартный цикл команды
Кратко охарактеризуем каждый из вышеперечисленных этапов стандартного цик­ла команды. При изучении данного материала следует учитывать, Что приводимое описание имеет целью лишь дать представление о сущности каждого из этапов. В то же время распределение функций по разным этапам цикла команды и после­довательность выполнения некоторых из них в реальных М могут отличаться от излагаемых.
Этап выборки команды
Цикл любой команды начинается с того, что центральный процессор извлекает команду из памяти, используя адрес, хранящийся в счетчике команд (СК). Двоич­ный код команды помещается в регистр команды (РК) и с этого момента стано­вится «видимым» для процессора. Без учета промежуточных пересылок и сигна­лов управления это можно описать следующим образом: РК := ОЩ (СК)].
Приведенная запись охватывает весь этап выборки, еслидлина команды совпа­дает с разрядностью ячейки памяти. В то же время система команд многих ВМ предполагает несколько форматов команд, причем в разных форматах команда может занимать , 2 или более ячеек, а этап выборки команды можно считать за­вершенным лишь после того, как в РК будет помещен полный код команды. Ин­формация о фактической длине команды содержится в полях кода операции и спо­соба адресации. Обычно эти поля располагают в первом слове кода команды, и для выяснения необходимости продолжения процесса выборки необходимо предва­рительное декодирование их содержимого. Такое декодирование может быть про­изведено после того, как первое слово кода команды окажется в РК. В случае мно­гословного формата команды процесс выборки продолжается вплоть до занесения в РК всех слов команды. Например, для 16-разрядной команды, занимающей две 8-разрядные ячейки памяти, выборку можно описать так:               
ПСтРК:РК(15-8):=0П[(СК)];
+1СК:СК:=СК+1;
ПМлРК:РК(7-0):=ОП[(СК)].
Этап формирования адреса следующей команды
Для фон-неймановских машин характерно размещение соседних команд програм­мы в смежных ячейках памяти. Если извлеченная команда не нарушает естествен-
140 Глава 3. Функциональная организация фон-неймановской ВМ
ного порядка выполнения программы, для вычисления адреса следующей выпол­няемой команды достаточно увеличить содержимое счетчика команд на длину те­кущей команды, представленную количеством занимаемых кодом команды ячеек памяти. Для однословной команды это описывается микрооперацией: +1СК: СК := СК+.
Длина команды, а также то, способна ли она изменить естественный порядок выполнения команд программы, выясняются в ходе ранее упоминавшегося пред­варительного декодирования. Если извлеченная команда способна изменить по­следовательность выполнения программы (команда условного или безусловного перехода, вызова процедуры и т. п.), процесс формирования адреса следующей команды переносится на этап исполнения операции. В силу сказанного, в ряде ВМ рассматриваемый этап цикла команды следует не за выборкой команды, а нахо­дится в конце цикла.
Этап декодирования команды
После выборки команды она должна быть декодирована, для чего ЦП расшифро­вывает находящийся в РК код команды. В результате декодирования выясняются следующие моменты:
•   находится ли в РК полный код команды или требуется дозагрузка остальных слов команды;
•   какие последующие действия нужны для выполнения данной команды;
•   если команда использует операнды, то откуда они должны быть взяты (номер регистра или адрес ячейки основной памяти); '
•  если команда формирует результатдо куда этот результат должен быть направлен.
Ответы на два первых вопроса дает расшифровка кода операции, результатом которой может быть унитарный код, где каждый разряд соответствует одной из команд, что можно описать в виде УнитК:=аесоа(Коп). На практике вместо унитар­ного кода могут встретиться самые разнообразные формы представления резуль­татов декодирования, например адрес ячейки специальной управляющей памяти, где хранится первая микрокоманда микропрограммы для реализации указанной в команде операции.
Полное выяснение всех аспектов команды, помимо расшифровки кода опера­ции, требует также анализа адресной части команды, включая поле способа адре­сации.
По результатам декодирования производится подготовка электронных схем ВМ к выполнению предписанных командой действий.
Этап вычисления адресов операндов
Этап имеет место,если в процессе декодирования команды выясняется, что команда использует операнды. Если операнды размещаются в основной памяти, осуществ­ляется, вычисление их исполнительных адресов, с учетом указанного в команде способа адресации. Так, в случае индексной адресации для получения исполни­тельного адреса производится суммирование содержимого адресной части коман­ды и содержимого индексного регистра.
Цикл команды 141
Этап выборки операндов
Вычисленные на предыдущем этапе исполнительные адреса используются для считывания операндов из памяти и занесения в определенные регистры процессора. Например, в случае арифметической команды операнд после извлечения из памя­ти может быть загружен во входной регистр АЛУ. Однако чаще операнды предва­рительно заносятся в специальные вспомогательные регистры процессора, а их пересылка на вход АЛУ происходит на этапе исполнения операции.
Этап исполнения операции
На этом этапе реализуется указанная в команде операция. В силу различия сущ­ности каждой из команд ВМ, содержание этого этапа также сугубо индивидуально. Этапы исполнения некоторых команд будут рассмотрены ниже на примере вы­полнения учебной программы для приведенной на рис. 3.1 гипотетической вы­числительной машины.                                                                                 '
Этап записи результата
Этап записи результата присутствует в цикле тех команд, которые предполагают занесение результата в регистр или ячейку основной памяти. Фактически его можно считать частью этапа исполнения, особенно для тех команд, которые помещают результат сразу в несколько мест.
Описание стандартных циклов команды для гипотетической машины
Для анализа содержания стандартных циклов команды обратимся к гипотетичес­кой ВМ (см. рис. 3.1), для которой составим программу сложения двух чисел и вывода суммы на устройство вывода, если эта сумма не равна 0.
Список необходимых команд приведен в табл. 3.1, а сама программа — в табл. 3.2. Предполагается, что команды программы будут размещаться в основной памяти, начиная с адреса 100, а операнды — с адреса 200. Для вывода результата назначим порт с номером 5.
Таблица 3.1. Команды гипотетической вычислительной машины
КОп
АЧ
Описание
LDA
Adr
Загрузка в аккумулятор содержимого ячейки ОП с адресом Adr
ADD
Adr
Сложение содержимого аккумулятора с содержимым ячейки ОП, имеющей адрес Adr. Результат остается в аккумуляторе
BRZ
Adr
Переход к команде, хранящейся по адресу Adr, если результат' предыдущей арифметической операции равен 0, иначе естественный порядок вычислений не нарушается
OUT
PortN
Вывод содержимого аккумулятора на периферийное устройство, подключенное к порту с номером PortN '
HLT
Останов вычислений
142 Глава 3. Функциональная организация фон-неймановской ВМ
Таблица 3.2. Программа крассматриваемому примеру
Адрес порта
Код операции
Адрес ячейки или номер
100
LDA
200
101
ADD
201
102
BRZ
104
103
OUT
5
104
HLT
200
Операнд 1
201
Операнд 2
Перед запуском программы необходимо занести в СК адрес ячейки основной памяти, содержащей первую выполняемую команду программы, то есть 100.
Поскольку выборка и декодирование, а также формирование адреса следую­щей команды для всех команд выполняются по идентичной схеме, опишем их од­нократно, детализируя в дальнейшем лишь остальные этапы основного цикла ко­манды. Кроме того, напомним, что все сигналы управления и управляющие коды формируются микропрограммным автоматом, поэтому в дальнейшем ссылки на МПА будут опущены.
Выборка команды. Сначала остановимся на содержании этапа выборки, иден­тичного для всех команд программы. На этом этапе происходит извлечение двоич­ного кода команды из ячейки основной памяти и его занесение в регистр команды:
СКРАП: FW1 := СК, Ч1ЗУ: РД1 := ОП[(СК)];
РДПКОп, РДПЭД: РК :=РДП <РКОп := РДП(КОп), РА := РДП(АЧ)>.
В первом такте вырабатывается сигнал управления СКРАП, инициирующий пе­ресылку содержимого счетчика команд в регистр адреса памяти. По сигналу ЧгЗУ содержимое ячейки, выбранной дешифратором адреса памяти (код команды), пе­реписывается в регистр данных памяти. В следующем такте формируются сигна­лы РДПКСп и РД1РД по которым содержимое РДП передается в РК, при этом поле РКСп заполняется кодом операции, а поле РА — адресной частью команды.
Декодирование команды. Сразу же после размещения кода операции в РК производится его декодирование, что можно описать микрооператором УнигК := decod(Kon). Прежде всего выясняется, может ли данная команда изменить последовательность вычислений, что влияет на дальнейшее выполнение цикла команды. Для всех команд, кроме команд управления (в нашем случае это BRZ), начинается этап формирования адреса следующей команды.
Формирование адреса следующей команды. В фон-неймановских ВМ коман­ды программы располагаются в естественном порядке следования, в соседних ячей­ках памяти, и выполняются в том же порядке. Для формирования адреса следую­щей команды достаточно увеличить содержимое СК на единицу: +1СК СК := СК + 1.
В рассматриваемой ВМ предусмотрена только прямая адресация, поэтому этап вычисления адресов операндов опускается.
Ц«л комаич>1 143
В анализируемой программе этап выборки операндов предполагается только в командах загрузки аккумулятора и сложения. Для простоты изложения будем расценивать выборку операндов как часть этапа исполнения соответствующих опе­раций. В свою очередь, этапы исполнения специфичны для каждой команды и рас­сматриваются применительно к каждой команде нашей программы.
Исполнение операции загрузки аккумулятора. Команда LDA 200 обеспечивает занесение в аккумулятор содержимого ячейки ОП с адресом 200, то есть первого операнда, и реализуется следующим образом:
•   МПА вырабатывает сигнал РАРАП, передающий содержимое РА (адресную часть команды) в РАП;
•   по сигналу ЧгЗУ содержимое ячейки 200 заносится в РДП;
•   по сигналу РДПАкк первый операнд из РДП помещается в аккумулятор.
На языке микроопераций это выглядит так:
РАРАП: РАП := РК(РА);ЧтЗУ: РДП :=0П[200]; РДПАкк: Акк := РДП.
Исполнение операции сложения. Команда ADD 201 обеспечивает суммирова­ние текущего содержимого аккумулятора с содержимым ячейки 201 (вторым опе­рандом). Результат сложения остается в аккумуляторе. Одновременно с этим в АЛУ формируются признаки результата:
•   МПА вырабатывает сигнал РАРАП, и содержимое РА поступает в РАП;
•   по сигналу ЧгЗУ содержимое ячейки 201 заносится в РДП;
•  сигнал управления РДП РХ вызывает пересылку операнда 2 из РДП в регистр РХ
АЛУ одновременно с этим МПА вырабатывает сигнал AKKPY, ПО которому в PY переписывается содержимое аккумулятора, то есть хранящийся там первый операнд; операционный блок выполняет над данными, расположенными в РХ и PY, операцию, заданную в коде операции команды (в нашем случае — сложе­ние);
•  по сигналу ОПЕАкк информация с выхода ОПБ загружается в аккумулятор.
Сказанное может быть описано в виде: РАРАП: РАП := РК(РА), ЧЙУ: РД1 := 0П [201 ]; РДПРХ: РХ := РДП, AKKPY: ΡΥ:=Акк, ОПБ := РХ + Р/; 0ПБАкк1: Акк:-ОПБ.
Исполнение операции условного перехода. Для изменения порядка выполне­ния программы используются команды безусловного (БП) и условного (УП) пе­реходов, в нашем случае — команда BRZ 104. Адрес перехода хранится в адресном поле команды. Команда анализирует хранящийся в РПрз признак (флаг) нулевого результата, выработанный в АЛУ на предыдущем этапе вычислений, и формирует адрес следующей команды в зависимости от состояния этого признака. При нуле­вом значении флага (условие перехода не выполнено) естественный порядок вы­полнения программы не нарушается, и адрес следующей команды формируется обычным образом, путем увеличения содержимого СК на единицу (+1GK СК := СК +1). При единичном значении флага (условие перехода выполнено) в СК зано-
144 Глава 3. Функциональная организация фон-неймановской ВМ
сится содержимое РА. Напомним, что в РА находится адресная часть извлеченной из ОП команды перехода, то есть адрес точки перехода. Сказанное можно записать в виде БПУП СК=РК(РА). Поскольку для команд перехода формирование адреса следующей команды по сути является и исполнением их операций, описанные микрооперации для них обычно относят к этапу исполнения.
Исполнение операции вывода. Команда OUT 5 обеспечивает вывод содержи­мого аккумулятора на периферийное устройство (ПУ), подключенное к порту вывода с номером 5. М П А вырабатывает управляющий сигнал РАПВВ, по которому адресная часть команды — номер порта вывода — из РА поступает на вход дешиф­ратора номера порта ввода/вывода. В следующем такте по сигналу Выв содержи­мое аккумулятора через выбранный дешифратором порт вывода передается на подключенное к этому порту ПУ:
РАДВВ ДВВ:=РК(РА); Вьв: Порт вьвода 5 := Акк.
Исполнение операции останова. Команда HLT приводит к завершению вы­числений. При этом вырабатывается сигнал Ост, нужный для того, чтобы известить операционную систему о завершении текущей программы.
Машинный цикл с косвенной адресацией
Многие команды предполагают чтение операндов из памяти или запись в память. В простейшем случае в адресном поле таких команд явно указывается исполни­тельный адрес соответствующей ячейки ОП. Однако часто используется и другой способ указания адреса, когда адрес операнда хранится в какой-то ячейке памяти, а в команде указывается адрес,ячейки, содержащей адрес операнда. Как уже отме­чалось ранее, подобный прием называется косвенной адресацией. Чтобы прочитать или записать операнд, сначала нужно извлечь из памяти его адрес и только после этого произвести нужное действие (чтение или запись операнда), иными словами, требуется выполнить два обращения к памяти. Это, естественно, отражается и на цикле команды, в котором появляется косвенная адресация. Этап косвенной адре­сации можно отнести к этапу вычисления адресов операндов, поскольку его сущ­ность сводится к определению исполнительного адреса операнда.
Применительно к вычислительной машине, приведенной на рис. 3.1, при кос­венной адресации имеют место следующие микрооперации:
РАРАП FW1 := РК(РА), 4ι3Υ: Щ1= ОП[(РА)]; РДПЙА: РК(РА):= РДП.
Иными словами, содержимое адресного поля команды в регистре команд ис­пользуется для обращения к ячейке ОП, в которой хранится адрес операнда, после чего извлеченный из памяти исполнительный адрес операнда помещается в адрес­ное поле регистра команды на место косвенного адреса. Дальнейшее выполнение команды протекает стандартным образом.
Машинный цикл с прерыванием
Практически во всех ВМ предусмотрены средства, благодаря которым модули вво­да/вывода (и не только они) могут прервать выполнение текущей программы для
Цикл команды 145
внеочередного выполнения другой программы, с последующим возвратом к пре­рванной.
Первоначально прерывания были введены для повышения эффективности вычислений при работе с медленными ПУ. Положим, что процессор пересылает данные на принтер, используя стандартный цикл команды. После каждой опера­ции записи ЦП будет вынужден сделать паузу, в ожидании подтверждения от прин­тера об обработке символа. Длительность этой паузы может составлять сотни й ты­сячи циклов команды. Ясно, что такое использование ЦП очень неэффективно. В случае прерываний, пока протекает операция ввода/вывода, ЦП способен вы­полнять другие команды.
В упрощенном виде процедуру прерывания можно описать следующим обра­зом. Объект, требующий внеочередного обслуживания, выставляет на соответству­ющем входе ЦП сигнал запроса прерывания. Перед переходом к очередному циклу . команды процессор проверяет этот вход на наличие запроса. Обнаружив запрос, ЦП запоминает информацию, необходимую для продолжения нормальной работы после возврата из прерывания, и переходит к выполнению программы обработки прерывания (обработчика прерывания). По завершении обработки прерывания ЦП восстанавливает состояние прерванного процесса, используя запомненную инфор­мацию, и продолжает вычисления. Описанный процесс иллюстрирует рис. 3.5.
В терминах цикла команды сказанное выглядит так. Для учета прерываний к циклу команды добавляется этап прерывания, в ходе которого процессор прове­ряет, не поступил ли запрос прерывания. Если запроса нет, ЦП переходит к этапу выборки следующей команды программы. Цри наличии'запроса процессор:
1.   Приостанавливает выполнение текущей программы и запоминает содержимое всех регистров, которые будут использоваться программой обработки преры­вания. Это называется сохранением контекста программы. В первую очередь
; необходимо сохранить содержимое счетчика команд, аккумулятора и регистра признаков. КонтеКст· программы обычно сохраняется .в стеке.
2.   Заносит в счетчик команд начальный адрес программы обработки преры­вания.
Программа                                    Обработчик
пользователя                                  прерывания
Место возникновения ___-—►' прерывания                        (+1
М
Рис. 3.5. Передача управления при прерываниях
146 Глава 3. Функциональная организация фон-неймановской ВМ
На языке микроопераций это можно записать следующим образом:
СКРДП: РДП := СК; -1УС: УС := УС -1 Оапись в стек содержимого СК>;
УСРАП: РАП := УС; ЗпЗУ, СКРДП: ОП[(УС)] := РДП :=СК;
АккРДП: РДП := Акк; -1УС: УС := УС -1 <3агись в стек содержимого Акк>;
УСРАП: РАП := УС; ЗпЗУ, АккРДП: ОП[(УС)] := РДП := Акк;
РПрзРДП: РДП := РПрз; -1УС: УС := УС -1 <3агись в стек содержимого РПрз>;
УСРАП: РАП := УС; ЗпЗУ, РПрзРДП: ОП[(УС)] := РДП := РПрз;
СК:= Аобр <3анесение в СК начагьного адреса обработано прерьвашям
Теперь процессор продолжает с этапа выборки первой команды обработчика прерывания. Обработчик (обычно он входит в состав операционной системы) определяет природу прерывания и выполняет необходимые действия. Когда про­грамма обработки прерывания завершается, процессор может возобновить выпол­нение программы пользователя с точки, где она была прервана. Для этого он вос­станавливает контекст программы (содержимое СК и других регистров) и начинает с цикла выборки очередной команды прерванной программы. Соответствующая микропрограмма представлена ниже (с целью упрощения схемы некоторые трак­ты и сигналы управления не показаны, и соответствующие микрооперации ото­бражают лишь логику выхода из прерывания).
УСРАП: РАП :=УС, ЧгЗУ: РДП:=ОП[(УС)] <Восстановление содержимого РПрз>;
+1УС: УС:- УС +1; РДПРПрз: РПрз := РДП;
УСРАП: РАП :=УС, ЧгЗУ: РДП:=ОП[(УС)] восстановление содержимого Акк>;
+1УС: УС:= УС + 1; РДПАкк: Акк:= РДП;
УСРАП: РАП := УС, ЧтЗУ: РДП:=ОП[(УС)] <Восстановление содержимого СК>;
+1УС: УС :=УС+ 1; РДПСК: СК:=РДП.
Диаграмма состояний цикла команды
Вышеизложенное можно подытожить в виде рис. 3.6, где показаны потоки инфор­мации в ходе этапов выборки команды, косвенной адресации и прерывания [36]:
а                                             б                                                 ·
Рис. 3.6. Потоки информации при реализации цикла команды: а — этап выборки; б —этап косвенной адресации; в — этап прерывания .
В работе [36] использован также иной подход к описанию содержания цикла команды — с помощью диаграммы состояний (рис. 3.7).
На такой диаграмме цикл команды представляется в виде последовательности состояний. Для каждой конкретной команды некоторые состояния могут быть
Цикл команды 147
Косвенный «ДОС
Рис. 3.7. Диаграмма состояний цикла команды
нулевыми, а некоторые другие могут неоднократно повторяться. Полный цикл команды может включать в себя следующие состояния:
•  Вычисление адреса команды. Определение исполнительного адреса команды, которая должна выполняться следующей.
•   Выборка команды. Чтение команды из ячейки памяти и занесение ее в РК.
•  Декодирование команды. Анализ команды с целью выяснения типа подлежа­щей выполнению операции и операндов.
•   Вычисление адреса операнда. Определение исполнительного адреса операн­да, если операция предполагает обращение к операнду, хранящемуся в памяти или же доступному посредством ввода.
•   Выборка операнда. Выборка операнда из памяти или его ввод с устройства ввода.
•  Операция с данными. Выполнение операции, указанной в команде.
•  Запись операнда. Запись результата в память или вывод на устройство вы­вода.                                                           ■ .. ;              ■ . . . .
,"■■■'.                                                   . .. г., ■
Состояния в верхней части диаграммы описывают обмен.между ЦП и памятью либо между ЦП и модулем ввода/вывода. Состояния в нижней части обозначают только внутренние операции ЦП. Вычисление адреса операнда встречается дваж­ды, поскольку команда может включать в себя чтение, запись или и то и другое, однако действия, выполняемые в этом состоянии, в обоих случаях одни и те же, поэтому используется один и тот же идентификатор состояния..
Следует отметить, что диаграмма допускает множественные операнды и резуль­таты, как того требуют некоторые команды. Кроме того, в ряде ВМ единственная команда может определять операцию над вектором (одномерным массивом чисел)
148 Глава 3. Функциональная организация фон-неймановской ВМ
или строкой (одномерным массивом символов), что требует повторяющихся опе­раций выборки и/или записи. Диаграмма отражает также возможность этапов пре­рывания и косвенной адресации.
Основные показатели вычислительных машин
Использование конкретной вычислительной машины имеет смысл, если ее пока­затели соответствуют показателям, определяемым требованиями к реализации заданных алгоритмов. В качестве основных показателей ВМ обычно рассматрива­ют: емкость памяти, быстродействие и производительность, стоимость и надеж­ность [25]. В данном учебнике остановимся только на показателях быстродействия и производительности, обычно представляющих основной интерес для пользова­телей.
Быстродействие
Целесообразно рассматривать два вида быстродействия: номинальное и среднее. Номинальное быстродействие характеризует возможности ВМ при выполне­нии стандартной операции. В качестве стандартной обычно выбирают короткую операцию сложения. Если обозначить через тсл время сложения, то номинальное быстродействие определится из выражения
Среднее быстродействие характеризует скорость вычислений при выполнении эталонного алгоритма или некоторого класса алгоритмов. Величина среднего быс­тродействия зависит как от параметров ВМ, так и от параметров алгоритма и оп­ределяется соотношением
где Тэвремя выполнения эталонного алгоритма; Ν— количество операций, со­держащихся в эталонном алгоритме.
Обозначим через щ число операций i-ro типа;/ — количество типов операций в алгоритме (г = 1, 2,...,/);tf — время выполнения операции i-ro типа.
Время выполнения эталонного алгоритма рассчитывается по формуле:
(3.1)
Подставив (3.1) в выражение для Уср, получим
Hosted by uCoz