коммутации цепей профилактического контроля схемы устройств разбиваются на участки в соответствии с ло гикой их работы и способом профилактического контро ля. Режим работы электронно-ламповых схем при про филактическом контроле устанавливается , путем измене ния напряжений, питающих схему (напряжения смещения на управляющих сетках электронных ламп, напряжения накала и др.), или путем изменения параметров сигналов, поступающих на вход проверяемых элементов (амплиту ды или частоты входных сигналов). Второй способ приме ним также и для полупроводниковых схем.
Контроль работы
Достоверность результатов машинного решения задач в значительной мере зависит от применяемых методов контроля за правильностью функционирования устройств и за работой программиста. Для получения правильных результатов все этапы решения задачи, начиная от со ставления программы и кончая обработкой отпечатанных результатов, должны тщательно контролироваться.
При программировании возможность появления оши бок так велика, что запрограммировать сложную задачу без единой ошибки практически не удается. Ошибка мо жет быть вызвана неправильным выбором метода реше ния задачи, она может заключаться в содержании команд, в порядке их выполнения или даже быть следст вием простой описки при записи программы на бланки. Поэтому перед вводом программы в машину все ошибки должны быть исправлены. Проверка должна выполнять ся программистом особенно тщательно, так как отлад ка ее на машине стоит очень дорого.
Продолжительность отладки программ зависит от разнообразия и сложности решаемых задач. Статисти ческие данные показывают, что практически время от ладки программ составляет в среднем 20% полного ма шинного времени. В связи с этим становится очевидным, что для эффективного использования машины наиболее выгодны задачи, решаемые по одной и той же програм ме и имеющие большое количество вариантов.
. Ошибки легко могут возникнуть и при нанесении про граммы на перфокарты или перфоленту с помощью
т
внешних устройств машины. Они могут быть следствием нечеткого написания программы на бланке, невниматель ности оператора, работающего на клавиатуре перфора тора, неисправности самого перфоратора. Большинство типов машин имеет специальные устройства и режимы работы для контроля подготовки данных: например, на бивка перфокарт или перфолент может производиться дважды с последующей проверкой их на совпадение при помощи контрольника или контрольно-считывающего устройства.
Решение задачи начинается с ввода программы и ис ходных числовых данных в машину. Передача больших объемов информации между устройствами ЭЦМ всегда сопряжена с опасностью возникновения в переданной информации ошибки или даже серии ошибок. Они могут быть вызваны сбоями в работе или неисправностями в цепях передачи чисел или команд и в устройствах ма шины. Поэтому выполнение машиной программы вычис лений также должно постоянно контролироваться.
Появление ошибок во время работы машины вызы вает искажения получаемых результатов и нарушает правильный ход вычислительного процесса. Основная цель контроля — возможно быстро и. точно определить возникшие ошибки. Наилучший контроль обнаруживает ошибку в том такте, в котором она произошла, а также точно указывает блок, в котором появилась неисправ ность.
Для контроля правильности обработки и передачи информации применяются различные методы контроля, которые можно, в зависимости от принципа использова
ния избыточной информации, разделить |
на две группы: |
|
программного контроля |
(самоконтроля) |
и аппаратного |
(схемного или встроенного) контроля. |
|
|
П р о г р а м м н ы й |
к о н т р о л ь использует избы |
|
точность исходной информации и для своей реализации |
||
требует дополнительного машинного времени. При про граммных методах контроля используются специальные приемы программирования, позволяющие обнаружить ошибки, возникающие в ходе вычислений. Выход из строя какого-либо элемента или кратковременное на рушение нормального функционирования машины вы зывает появление неправильных результатов, но при программном контроле не останавливает выполнения
12 д . Нечаев |
J77 |
программы. Останов машины может произойти только при нарушениях вычислительного процесса, приводящих к таким результатам, которые не могут быть представ лены в машине (например, переполнение разрядной сет ки при делении .на нуль, получение мнимого результата при извлечении квадратного корня из отрицательного числа .и т. п.). Продолжение вычислений над неправиль ными числами или по искаженной программе, приводя щее к наложению ошибок, затрудняет определение при чины их возникновения и места неисправности.
В современных электронных цифровых машинах при меняются следующие методы программного контроля: двойной счет, контроль обратным ходом решения задачи, контрольное суммирование, выполнение испытательных программ (тестов), контрольные соотношения по шагу интегрирования и подстановка вычисленных неизвестных линейного уравнения в исходное уравнение.
Последние три метода программного контроля приме няются лишь в тех случаях, когда это позволяет вид решаемой задачи.
Наиболее распространен программный контроль ме тодом двойного счета, применяемый при эксплуатации большинства существующих машин. Он заключается в том, что каждая задача решается дважды и результаты, полученные при выполнении отдельных участков про граммы, сравниваются между собой. При совпадении результатов машина автоматически переходит к выпол нению следующего участка программы, при несовпаде нии— останавливается, и оператор определяет причины, вызвавшие это несовпадение. После восстановления ра ботоспособности машины вновь выполняется тот же уча сток программы.
Применение этого метода контроля увеличивает вре мя решения задачи вдвое, что снижает эффективность использования машины. Поэтому, хотя метод контроля двойным счетом достаточно надежен при обнаружении
ошибок в вычислениях, экономически он очень невыго ден.
Контроль обратным ходом решения задачи приме нялся в некоторых электронных цифровых вычислитель ных машинах первых выпусков. Программная реализа ция этого метода заключается в том, что каждая опера ция над числами в следующем такте проверяется выпол-
178
пением обратной операции (сложение — вычитанием, ум ножение— делением и т. д.) с последующим сравнением ее результата с исходными числами основной операции. Время решения задачи в этом случае может увеличиться почти в три раза.
По сравнению с методом двойных просчетов контроль вычислений обратным ходом решения задачи обладает существенным преимуществом — ошибка в вычислениях обнаруживается при проверке правильности выполнения основной операции в следующем за ней контрольном так те работы машины. Это локализует ее распространение и позволяет быстро определить место сбоя или неис-прав" ности.
Аппаратурная реализация этого метода значительно увеличивает объем, оборудования и усложняет логику работы .устройств при незначительном уменьшении вре мени, затрачиваемого на контроль. Из-за этих недостат ков контроль вычислений обратным ходом решения за дачи не получил широкого распространения.
Метод контрольного суммирования широко приме няется для контроля групповых передач информации при вводе, обмене между оперативным и внешним запо минающими устройствами, хранении в ЗУ и при выводе ее из машины. Существо этого метода заключается в том, что подсчитывается и запоминается сумма контро лируемого массива чисел. После каждой передачи или хранения этого массива подсчитывается новая сумма, которая сравнивается о полученной ранее. Несовпадение этих сумм говорит об ошибке.
Контроль правильности ввода, основанный на исполь зовании двух комплектов перфокарт, приводит к боль шой непроизводительной затрате машинного времени. Если программу необходимо вводить в машину много кратно, да еще с двух комплектов перфокарт, то естест венно, что требуется вдвое больше времени, чем на ввод
содного комплекта.
Вэлектронных цифровых вичислительных машинах контрольное суммирование массивов информации, пере даваемых из одного устройства в другое или хранящихся в запоминающих устройствах, производится по специаль ной команде. Использование обычной команды для сум мирования большого количества команд и чисел почти
всегда приводит к переполнению разрядной сетки и вы
12* |
179 |
зывает останов машины раньше окончания вычисления контрольной суммы. Поэтому команда «контрольное сум мирование» суммирует программный и числовой мате риал без учета адресов, кодов операций, знаков числа, мантиссы, порядка. Реализация такой операции в маши не требует незначительных затрат дополнительного обо рудования.
Испытательные программы (тесты) используются в основном в период отладки машины и при ее профи лактических проверках. Поэтому время, затрачиваемое на выполнение испытательны^ программ, относится к за тратам машинного времени на профилактическое обслу живание и частично на обнаружение и устранение неис правностей, возникающих при работе. Каждый тип ма шины имеет систему испытательных программ, вклю чающую контролирующие и диагностические программы. Первые позволяют только установить, что в машине есть неисправность, вторые — помогают обслуживающе му персоналу быстро и довольно точно отыскивать мес то неисправности.
Испытательные программы составляются на основе анализа схем и определения комбинаций кодов, вызы вающих тяжелые режимы работы устройств и элемен тов, с учетом системы профилактического контроля и времени, отводимого для проверки машины с помощью этих программ. Время, необходимое для их выполнения, и глубина проверки зависят от эффективности этих про грамм и качества их составления. Поэтому в процессе эксплуатации машины систему испытательных про грамм необходимо совершенствовать и дополнять новы ми, более эффективными программами, позволяющими полнее и глубже проверять машину.
Контрольные соотношения используются для про верки правильности решения довольно ограниченного класса задач. Такими соотношениями могут быть: по,- стоянство суммы потенциальной и кинетической энергий (при решении задач о движении тела в поле притяже ния Земли без учета сопротивления воздуха), постоян ство суммы реактивных энергий при расчете колебатель ного контура, равенство единице суммы квадратов сину са и косинуса угла (при решении тригонометрических задач), равенство с заранее установленной точностью результатов решения дифференциального уравнения
180
различными численными методами — более точным, нб громоздким и менее точным, но простым и т. п.
Контролируемость машины этим методом опреде ляется точностью, которую обеспечивает используемое контрольное соотношение, т. е. количеством сравнивае мых разрядов.
Контроль по шагу интегрирования и контроль под становкой вычисленных неизвестных в исходное управле
ние — частные случаи метода контроля |
вычислений с |
|
помощью контрольных соотношений. |
|
|
А п п а р а т н ы й |
к о н т р о л ь использует информа |
|
цию, создаваемую |
за счет избыточности |
оборудования |
машины, поэтому применение его требует дополнитель ных схем, но зато почти не требует затраты машинного времени. Машина останавливается в момент возникнове ния ошибки, что облегчает определение причины и мес та произошедшего отказа, а следовательно, значительно сокращает время на устранение неисправности. При этом вследствие увеличения объема оборудования общая на дежность машины несколько уменьшается.
В современных ЭЦВМ применяются три основных метода аппаратного контроля: дублирование блоков, устройств или машин в целом и сравнение результатов, получаемых на их выходах; использование различных контролирующих кодов (с запрещенными комбинациями, с обнаружением и исправлением ошибок и т. д.); конт роль работы отдельных блоков и устройств машины (счетчиков, регистров, сумматоров, последовательности выборки команд и расшифровки кодов операций и др.).
Для решения проблем аппаратного контроля при одновременном повышении надежности машин приме няется резервирование (включение в параллельную ра боту) отдельных блоков, устройств и даже машин в це лом. Дублирование позволяет в каждом такте работы машины устанавливать факт возникновения ошибки пу тем сравнения результатов. Несовпадение результатов останавливает машину в том же такте. Этот метод не снижает быстродействия машины, и в то же время он достаточно надежен. Однако он весьма неэкономичен, так как для его реализации требуется много дополни тельного оборудования. К тому же при останове машины из-за появления ошибки дублирование в большинстве случаев не дает возможности быстро определить устрой
181
ство или блок, в котором возникла неисправность, и его приходится определять путем выполнения диагностиче
ских программ.
Параллельная работа трех и большего числа машин позволяет определить неправильно работающую машину сравнением получаемых результатов, 'выключить ее и отремонтировать при непрерывной работе исправных. Таким образом, с увеличением числа резервных машин надежность системы возрастает, «о в еще большей сте пени увеличивается ее стоимость.
Использование специальных кодов для представле ния чисел и команд позволяет обнаруживать факт воз никновения неисправности по искажению кода. Сущест вуют коды, с помощью которых можно даже определить, какой именно разряд кода искажен. Кроме основной ин формации, необходимой для работы машины, эти коды содержат некоторую дополнительную (избыточную) ин формацию, которая дает возможность контролировать хранение и передачу основной информации.
Например, для контроля работы машины, оперирую щей с десятичными двоично-кодированными числами, могут быть использованы коды типов 8—4—2—1, 2—4— 2—1, код с избытком 3 и т. п., в которых, как мы уже говорили, каждая десятичная цифра представляется о помощью четырех двоичных разрядов, допускающих 16 различных комбинаций. Десять из этих комбинаций слу жат для представления десятичных цифр, а шесть яв ляются запрещенными комбинациями, при появлении которых схема контроля останавливает машину, сигна лизируя о возникшей неисправности. Недостаток такого метода состоит в том, что после возникновения неисправ ности машина до появления запрещенной комбинации может сделать еще несколько тактов и получить ряд ис
каженных результатов, что затрудняет поиск места воз никшей неисправности.
Для обнаружения одиночкой ошибки служит также двоичный код с проверкой на четность. Один разряд этого кода является избыточным и служит только для целей контроля. Перед передачей кода специальная схе ма проверяет количество единиц, содержащихся в его основной части. При четном количестве единиц в допол нительном разряде кода записывается нуль, при нечет ном— единица. Таким образом, полный код всегда со
182
держит 'четное количество единиц. Перед 'поступлением в арифметическое устройство код, принятый по каналам связи от других устройств, проверяется на четность. На рушение четности свидетельствует о том, что при хране нии или передаче произошло искажение кода. Такой контроль в достаточной степени эффективен, так как вероятность одновременного возникновения в машине двух и более неисправностей очень мала.
Код с обнаружением и исправлением ошибок имеет несколько дополнительных разрядов. Например, для ко да с обнаружением и исправлением одиночной ошиб ки, содержащего в основной части 25 двоичных разря дов, необходимо использовать 5 избыточных разрядов в качестве проверочного числа. Проверочное число опреде ляется содержанием основной части кода. Проверяя основную и избыточную часть кода, можно установить номер разряда, в котором при хранении или передаче кода произошла ошибка. При увеличении количества разрядов в коде с исправлением ошибок доля избыточ ных разрядов уменьшается.
Все проверочные коды требуют использования спе циальной контролирующей аппаратуры или' дополни тельных затрат машинного времени. Причем очевидно, что чем более эффективным, с точки зрения контроля, является код, тем большие затраты необходимы для реализации контроля. Основной недостаток таких кодов заключается в том, что их можно использовать только для контроля хранения и передачи кода информации. Контроль правильности выполнения арифметических и логических операций над числами, записанными в этих кодах, производить нельзя. Поэтому работа арифметиче ских устройств (и вообще устройств, преобразующих информацию) в .настоящее время пока контролируется методом дублирования, выполнением двойных просчетов или специальными приемами.
С точки зрения эффективности и экономичности конт ролирующих схем, наиболее целесообразно одновремен но применять проверочные коды и резервировать обору дование машины. Это дает возможность создать маши ны, в которых автоматически обнаруживаются ошибки, определяются места неисправности, выключается из ра боты блок и, наконец, устраняется ошибка в вычисле ниях, Машина выдаст оператору сигнал о возникшей не
183