Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше
Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике
11.5. Особенности ввода — вывода при обработке в реальном времени
При
обработке сигналов на ЦВМ в реальном времени возникает много дополнительных
трудностей. В рассматриваемом в разд.11.4 примере обработки не в реальном
времени предполагалось, что обрабатываемый массив из 1000 отсчетов уже
содержится в памяти ЦВМ, а результаты просто накапливаются в памяти. При такой
обработке можно представить себе две совершенно независимые программы: одна
для ввода массива из 1000 отсчетов, а вторая для вывода накопленных
результатов в некоторое внешнее устройство. Очевидно, что время, затрачиваемое
на выполнение этих программ, следует добавить ко времени счета, но никаких
трудностей и усложнений в программе при этом не возникает. Однако при
обработке в реальном времени взаимодействие между программами ввода — вывода и
счета усложняется, и это часто приводит к заметному снижению быстродействия.
Для
иллюстрации возникающих трудностей представим себе элементарную систему ввода —
вывода, добавленную к основной схеме вычислительной машины, показанной на фиг.
11.1. Она содержит дополнительный регистр
, соединенный как с блоком памяти,
так и с внешними устройствами. При выполнении команд ВВОД и ВЫВОД в регистр
начинает поступать
информация (по команде ВВОД — от внешнего устройства). При этом вычисления
прерываются до окончания приема данных в регистр
или выдачи их из регистра. После
этого ЦВМ переходит к выполнению следующей команды, причем приведение входных
и выходных данных к нужному формату осуществляется программным путем. Очевидно,
что приведенная простейшая система ввода — вывода (как и вся элементарная
вычислительная машина) малопригодна для практических целей, так как не позволяет
автоматизировать прерывания или совместить выполнение программ счета и ввода-вывода.
Однако с ее помощью можно оценить усложнение программы и дополнительные
затраты времени при переходе к обработке в реальном времени.
Фиг.
11.4. Пример формата размещения данных в ЗУ для программы вычисления
скользящей суммы в реальном времени (
).
Покажем,
как наличие простой системы ввода-вывода влияет на вычисление скользящей суммы.
Пусть последовательность входных чисел циркулирует в памяти ЦВМ согласно фиг.
11.4. Вычисления проводятся следующим образом. Каждый новый отсчет,
поступающий из регистра В, принимается за
и сначала запоминается в
промежуточном регистре TEMP.
Метка на схеме размещения данных в ЗУ (фиг. 11.4) соответствует отсчету
(для упрощения
пояснений, относящихся к нашей простой системе ввода—вывода,
на фиг.
11.4 уменьшено до 6), причем ЗУ содержит ровно
регистров. Сначала вычисляется
разность
,
затем к ней добавляется значение
, находившееся в другом промежуточном
регистре
,
а результат засылается в тот же регистр
. В конце цикла отсчет
заменяется на
, индекс
увеличивается на единицу и выполняется команда ВЫВОД.
Ниже
приведена программа вычисления скользящей суммы в реальном времени (снова
принято
):
|
|
-25
|
Занести —25 в индексный
регистр
|
|
|
|
|
1.
|
|
|
|
2.
|
|
|
Занести содержимое
регистра ввода—вывода [т. е. очередной отсчет ] в промежуточный регистр
|
3.
|
|
|
Вычесть из
|
4.
|
|
|
Добавить , что дает
|
5.
|
|
|
Запомнить в регистре , чтобы использовать
в следующей операции
|
6.
|
|
|
|
7.
|
|
|
|
8.
|
|
10.
|
|
9.
|
|
-25
|
Восстановить исходное
состояние индексного регистра.
|
10.
|
|
|
Передать значение в регистр
ввода — вывода
|
11.
|
|
|
|
|
|
1.
|
|
Чтобы
оценить быстродействие данной программы, положим, что при выполнении команды
ВВОД машина ожидает появления синхросигнала от устройства ввода, затем выполняются
команды 1 —11, после чего работа ЦВМ прерывается до поступления синхросигнала
от устройства вывода. Для увеличения быстродействия необходимо подобрать вполне
определенную задержку между входным и выходным синхросигналами. Это означает,
что при изменении программы задержку придется перестраивать. Если оба
синхросигнала не имеют фазовой синхронизации, то максимальную скорость
поступления данных придется уменьшить, чтобы учесть возможное удлинение
остановок при выполнении команд ВВОД и ВЫВОД. Но даже при наличии синхронизации
программа обработки в реальном времени выполняется примерно вдвое медленнее,
чем программа обработки в произвольном масштабе времени.