Файл: Самохин А.Ф. Эксплуатация цифровых вычислительных машин [учеб. пособие].pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.06.2024
Просмотров: 126
Скачиваний: 0
- 157-
Vuc. 7.Б .
Работа программы очевидна. Блоки 2, 3 и 4 позволяют вы яснить, в одном и том не, или в разных устройствах возникнет
сбой при повторном просчете. Если сбой повторился некоторое за данное число раз, то счетчик сбоев выдает сигнал о том, что в устройстве возникла неисправность и необходимо принять меры к ее устранению. При этом, если в машине предусмотрено резервирова ние, то этим сигналом автоматически может быть подключен резерв ный блок. Если резервирование не предусмотрено, то включается
диагностический тест , локализуется место неисправности с выпе-
-158 —
чатыванием соответствующей информащш, и машина выходит на остан нов.
Если при повторных выполнениях оператора сбои возникают от
разных устройств, то |
это |
обычно свидетельствует о том, что |
маши |
на не работоспособна, |
и |
ее следует остановить для ремонта. |
Ис |
ключение здесь представляет пропадание одного из импульсов в УУ,
которое монет вызвать одновременные сбои в разных устройствах.
Поэтому, если будет зафиксирован сбой в УУ, следует продолжать
повторения циклов до переполнения счетчика сбоев и только после этого производить переключение. Заметим, что в принципе не обя зательно долото быть организовано повторение операторов. Может быть организовано повторение команды, в которой произошел сбой.
Для этой |
цели номер команды со Сч АК также переписывается в МОЗУ, |
из него |
вычитается единица и команда передается для выполнения |
вСч АК (вычитание может быть осуществлено и непосредственно
вСч АК). Дтя того , чтобы иметь возможность повторить операцию,
очевидно, в АУ необходимо иметь дополнительный регистр, в котором хранится исходное число для данной операцш до конца выполнения операции. Так как операция выполняется достаточно быстро, а сбой
может быть достаточно длинным, то целесообразно выполнять повто рение с некоторой задержкой Т , порядка десятых долей секун ды. В остальном работа схемы и подпрограммы аналогична работе
с onepaTopai.ni.
В некоторых ЦВМ при выявлении сигнала сбоя проводится ана лиз, на какой микрооперации произошел сбой. Если в результате этой микрооперации исходная информация не разрушена, повторя ется данная операция (например, результат в МОЗУ еще не записан),
если информация разрушена, повторяется весь блок программы.
Для определения рабочего состояния машины в устройство фик сирования сбоев целесообразно ввести еще один счетчик сбоев, в
- *59-
который засш1акгася все сигналы сбоя. Этот счетчик должен сбрасы ваться через определенные интервалы наработки машины. Если за установленный интервал наработки, в счетчике возникнет перепол нение, то это свидетельствует о низкой работоспособности машины и, следовательно, о необходимости остановки ее на ремонт.
При разработке системы анализа и исправления ошибок, необ ходимо решить, какое количество повторных просчетов достаточно для установления (Такта наличия отказа.
Если принять допущение, что длительность помехи меньше длительности выполнения операции, то сбои, возникающие при вы полнении различных операций, можно очитать независимыми событи ями. Тогда вероятность появления сбоя при выполнении некоторого оператора можно выразить еле,дующей формулой:
где |
М - количество |
операций в операторе, |
||
|
Р- - вероятность появления |
сбоя в одной операции. |
||
Так как вероятность появления сбоя |
в одном операторе - величина |
|||
достаточно малая, то можно записать: |
||||
Вероятность появления сбоя |
в J -м |
контролируемом устройстве |
||
в "к" раз меньше (если вероятность |
сбоя в них одинакова), т . е . |
|||
|
Р |
- |
Ш |
|
Вероятность появления сбоев в одном и том же устройстве в двух
.просчетах оператора будет
- п о
следовательно, вероятность выявления систематической ошибки при двойном просчете, вызываемой отказом, -
Эта формула справедлива, так как если в цервам операторе произо
шел сбои, то во |
втором либо появится |
обо;;, |
одинаковый с |
первым, |
||||||
с вероятностью |
* |
, |
либо |
сбоя |
не |
будет, |
либо |
будет, но в |
||
другом устройстве. |
|
|
|
|
|
|
|
|
|
|
Если /J = |
100, К = |
10 |
и Р£ |
= Ю "5 , |
то |
Pq |
= |
I - |
К Г 8 . |
Таким образом, уме .двойной просчет оказывается достаточно эффек тивным.
Если в машине производится еще сравнение результатов вычис ления оператора, то вероятность выявлении отказов еще более по вышается.
Однако, приведенные рассуждения справедливы при сделанных выше допущениях. На практике часто длительность сб оев , вызыва емых вибрациями, толчками напряжения и т . д . , значительно превы шает длительность одной операции и достигает десятков и даже со тен миллисекунд. В этом случае сбои нельзя считать событиями взаимно независимыми, и вся картина усложняется. Кроме того ,
в настоящее время нет достаточного статистического материала о сбоях , который позволил бы решить задачу с учетом указанного обстоятельства.
- Ifcl -
|
Г л а в а |
У111 |
|
программ! контроль правильности вычиашшй |
|||
§ |
8 .1 ; |
Этапы и способы контроля |
|
Контроль вычислений выполняется на двух этапах: на этапе |
|||
отладки программы |
и на |
этапе |
производственного счета. Задачей |
контроля при отладке программы является устранение ошибок про граммиста и ошибок, внесенных оператором при занесении програм мы на машинный носитель.
Для устранения ошибок при подготовке машинных носителей часто делают два носителя на разной аппаратуре, а затем срав нивают их или на контрольнике, или непосредственно в ЦВМ. Кроме то го , иногда для отдельных блоков программы вручную подсчитыва ется контрольная сумма. Сравнение контрольной суммы, получа ющейся при вводе в ЦВМ с подсчитанной, позволяет такке выявить ошибки операторов.
Ошибкипрограммиста указанными способами не устраняются.
Для устранения этих ошибок производится отладка программы. От ладка выполняется поэтапно. Вначале выполняется проверка стан дартных подпрограмм, используемых в отлаживаемой программе. Для этой цели производится вызов и выполнение этих подпрограмм со сравнитально простыми исходными данными, для которых известен результат. Заметим, что проверка с простыми числами не всегда эффективна. Более надежным является прокрутка программ с числа ми, близкими к тем, которые участвуют в производственном счете.
lt,ja< .9 37.
-<62 -
Засов проверки стандартных подпрограмм проверяют отдельные ариф
метические блоки основной программы таким же способом, как под программы. При этом удобно использовать останов по глючу (для останова программы в конце блока). После арифметических блоков проверяется логическая часть программы, т .е . сравнения и перехо ды, для чего создаются условия для выполнешш всех имеющихся в программе переходов. По окончании отладки програт,шы подсчитыва л с я контрольная сумма и заносится на носитель для контроля последующих вводов программы при производственных счетах.
Контроль в процессе производственного счета предназначен
9>.in
для проверки правильности работы программы и правильности выпол- ;< г» I'
нения вычислений. Выполняется такой контроль следующими споообами:
—иф| Л-
-щэоверкой контрольных сумм отдельных блоков программы,
-методом двойного или двойного-тройного просчета по одним
итем же шга^по разным программам,
- |
с ^использованием контрольных соотношений, |
|
||
- |
способом |
подстановки, |
|
|
0?ЛСХТд * /■».- .п . |
■■ |
|
|
|
- |
методом .логического |
анализа результатов и промежуточных в е - |
||
личин и Другими способами. |
|
|||
|
-ВГ.Г.ОЛ ,.кг. |
|
|
|
|
К о н т р о л ь н о е |
с у м м и р о в а н и е |
выполняет- |
|
|
d illu iU J |
• |
|
|
ся с |
целью проверки правильности выполнения последовательности |
команд.^С.э.т.оЁ, цедьш.при программировании для отдельных участков программы вычисляется; -контрол ьная сумма команд, а в программе предусматривается контрольное суммирование выполняемых команд и последующее сравнение, .этой суммы с вычисленной при составлении
программы. |
. . . . . . . . |
. |
|
Контрольная. сумма получается последовательным сложением |
|||
|
.-.и_ - |
“ |
- |
команд или част.ей команд, |
как двоичных кодов, с циклическим пере- |
носом из старшего разряда в младший. Останов по переполнению раз рядной сетки при этом блокируется. В некоторых ЦВМ контрольной
- 1 6 5 -
- «64-
суммирование вьшолняется схемными методами. Недостатком програм много контроля суммированием является дополнительная затрата времени на образование контрольной сумлы.
§ 8 .2 . Контроль методом двойного просчета
Двойной или двойной-тройной счет выполняется для контроля
правильности вычислений.
При двойном счете программа или часть программы выполняют ся дваида, и результаты сравниваются. Если при этом оба просче та выполняются по одной и той не программе, то выявляются толь
ко случайные ошибки, систематические же ошибки, связанные с от казом, не выявляются, так как они повторяются в обоих просчетах.
Для обнаружения систематических ошибок целесообразно выполнять просчеты по разным программам. Например, А(В + С) = АВ + АС.
Иногда для повышения достоверности контроля и вероятности
устранения ошибки при несовпадении результатов двух просчетов предусматривается выполнение третьего просчета с последующим сравнением всех трех результатов и выбором из них двух совпада ющих (если таковые будут). Два совпадапцих результата считаются достоверными. Если же все три результата различны, машина оста навливается. Обычно при контроле повторным счетом программа раз
бивается на блоки, и повторный счет выполняется для каждого бло
ка; Блок-схема программы для выполнения двойного-троГшого просче та показана на рис. 8 .1 . Работа блок-схемы пояснений не требует.
При организации такого контроля возникает вопрос, на какое
число блоков целесообразно разбить програг.т.1у . При разбиении на большое количество участков возрастает время,затрачиваемое на выполнение дополнительных команд,необходимых для организации контроля; при выборе зе малого количества больших участков в оз -
- 165-
растает время, затрачиваемое на третий просчет в случае по явления ошибки. Рассмотрим методику выбора длины участков для случая двойного - тройного просчета.
Разобьем все время решения задачи без контроля Тд на Н блоков (шагов) с длительностью
8.1
Обозначим время, необходимое для выполнения дополнительных
(обеспечивающих повторение и контроль) команд, для каждого участка tg .
Допустим, что вероятность возникновения ошибки на каждом ша ге определяется биномиальным законом распределения:
где Tcfr - наработка на сбой.
Тогда время решения задачи с контролем Т р ^ определит ся выражением:
8.2
Здесь первое слагаемое определяет время, необходимое для двой ного просчета всех блоков, второе слагаемое - время, затрачи ваемое на третий просчет. Второе слагаагае определяется веро ятностью того , что в одном из первых двух просчетов появится ошибка. Вероятностью появления ошибки одновременно в двух первых просчетах (наличие отказа) мы пренебрежем.