Text
                    K.rt. ИЫУДУ
НАДЕЖНОСТЬ
КОНТРОЛЬ
И ДИАГНОСТИКА
ВЫЧИСЛИТЕЛЬНЫХ
МАШИН
И СИСТЕМ
®


К. ri. ИЫУДУ НАДЕЖНОСТЬ КОНТРОЛЬ И ДИАГНОСТИКА ВЫЧИСЛИТЕЛЬНЫХ МАШИН И СИСТЕМ Допущено Государственным комитетом СССР по народному образованию в качестве учебного пособия для студентов вузов, обучающихся по спе- циальности «Вычислительные машины, комплексы, системы и сети» Москва „Высшая школа" 1989
ББК 32.971 И97 УДК 681.321 Рецензенты: кафедра «Электронные вычислительные машины» Московского института электронного машинострое- ния (заведующий кафедрой проф. П. П. Сыпчук); кафедра «Вычислительная техника» Московского института радиотех- ники, электроники и автоматики (зав. кафедрой проф. А. М. Ларионов) Иыуду К. А. И97 Надежность, контроль и диагностика вычисли- тельных машин и систем: Учеб. пособие для вузов по спец. «Вычислительные машины, комплексы, си- стемы и сети». —М.: Высш. шк., 1989. — 216 с: ил. ISBN 5—06^-000130—X В пособии изложены вопросы оценки и расчета надежности вы- числительных машин и систем на основе статистических, структурных и эксплуатационных моделей, вогросы надежности программного обес- печения, методы контроля и диагностирования вычислительных машин и систем, а также методы построения отказоустойчивых вычислитель- ных систем. И 2404000000(430900000)—133 001(01)—89 191—89 ББК 32.971 6Ф7.3 ISBN 5—06—000130—X © Издательство «Высшая школа», 1989
ПРЕДИСЛОВИЕ В Основных направлениях экономического и социального развития СССР на 1986—1990 годы и на период до 2000 года указано, что необходимо обеспечивать рост объема производства вычислительной техники в 2—2,3 раза, по- вышать ее надежность, продолжать создавать и повы- шать эффективность работы вычислительных центров, осуществлять опережающими темпами изготовление вы- соконадежных систем промышленной автоматики на базе электроники. Выполнение этих задач — одна из важных предпосылок обеспечения научно-технического прогресса. Цель пособия — освещение вопросов, связанных с обеспечением высокой надежности вычислительных сис- тем. При изложении материала было обращено особое внимание на подкрепление основных теоретических по- ложений соответствующими примерами. В пособии § 6.4 написан автором совместно с В. В. Савкиным, а § 7.2 совместно с Т. А. Силаевой. Автор выражает благодарность коллективам кафедры «ЭВМ» Московского института электронного машино- строения (заведующий кафедрой д-р техн. наук, проф. П. П. Сыпчук) и кафедры «Вычислительная техника» Московского института радиотехники, электроники и ав- томатики (зав. кафедрой проф. А. М. Ларионов), взявшим на себя труд по рецензированию книги. Все замечания по книге автор просит направлять по адресу: 101430, Москва, ГСП-4, Неглинная ул., 29/14, издательство «Высшая школа».
ВВЕДЕНИЕ Интенсивное развитие народного хозяйства немыслимо без широкого применения средств вычислительной техни- ки. Однако последнее может иметь место при условии их достаточно надежной работы. Надежность вычислительных систем (ВС) определя- ется надежностью ее элементов и аппаратуры, а также надежностью программного обеспечения, управляющего выполнением вычислительного процесса. Пользователя вычислительной техники интересует только получение правильных результатов вычислений за заданное время. Для достижения этой цели необходимо, чтобы все на- званные составляющие — элементы, аппаратура и про- граммное обеспечение — обладали необходимой надеж- ностью. Надежность электронных элементов и аппаратуры (см. гл. 1) стала значительно выше в ходе развития эле- ментной базы и технологии сборки аппаратуры. Среднее время безотказной работы электронных.ламп — элемент- ной базы ЭВМ первого поколения — составляла величи- ну порядка 103... 104 ч. Элементная база ЭВМ второго по- коления обеспечила значительное увеличение надежности вычислительных машин, а среднее время безотказной ра- боты современных интегральных элементов, выполняю- щих значительно более сложные функции в составе ЭВМ третьего поколения, составляет 106... 108 ч. Большие ин- тегральные схемы, применяемые в ЭВМ четвертого и пя- того поколений и обладающие еще значительно более ши- рокими функциональными возможностями, характеризу- ются почти таким же средним временем безотказной ра- боты. Приведенные выше цифры необходимо понимать так, что, до- пустим, за 103 ч откажет не более чем 0,001...0,1% интегральных элементов, так как эксплуатация одного элемента в течение 10б...Ю8 ч нереальна. Таким образом, если, например, ЭВМ БЭСМ-1 содержала 5000 электронных ламп со средним време- нем безотказной работы 104 ч, то это означало, что в среднем через каждые два часа выходила из строя одна электронная 4
лампа. Работа ЭВМ БЭСМ-1 была возможна лишь благодаря периодическим профилактическим работам, позволяющим зара- нее удалить электронные лампы с ухудшенными характеристи- ками. В современных ЭВМ один элемент откажет в среднем за 102...104 ч. Интеграция элементов способствовала повышению их надежности также и благодаря тому, что количество по- тенциально ненадежных контактных соединений (паек) в конструкциях с интегральными и особенно с БИС от- носительно невелико. Основными же факторами, обеспе- чивающими высокую надежность интегральных схем (ИС) и БИС, являются высокая степень автоматизации процесса их производства, чрезвычайно высокие требова- ния к отсутствию загрязнений полупроводниковых кри- сталлов (чипов), обеспечиваемые высокой степенью чис- тоты производственных помещений и изоляцией техноло- гического процесса от окружающей среды. Кроме того, загрязнения и дефекты (пустоты, трещины) как основные источники ненадежности в ИС и БИС устраняются тща- тельным технологическим контролем и отбраковкой. Не- маловажное значение имеет также герметизация корпу- сов ИС и БИС. Надежность аппаратуры стала больше в результате тщательной экранировки электронной аппа- ратуры, развязки и фильтрации путей возможного про- никновения электрических полей, обеспечения благопри- ятных тепловых режимов, изоляции от источников меха- нической вибрации и ударов. Немаловажное значение имело также усовершенствование механических и элек- тромеханических периферийных устройств (ПУ). Однако из-за возросших требований к надежности это оказалось недостаточно. Для повышения надежности от- ветственных ВС значительное место приобрело резерви- рование— способ повышения надежности при помощи резервной аппаратуры, готовой в любой момент заменить отказавшую аппаратуру (см. гл. 2). Даже многократно резервированная аппаратура не сохраняет свою работо- способность на неограниченное время, без принятия мер к восстановлению аппаратуры (см. гл. 3)—приведению ее в работоспособное состояние путем замены отдельных отказавших элементов — типовых элементов замены (ТЭЗ). Специфика вычислительных устройств обусловливает то, что отказы и сбой в вычислительном процессе стано- вятся очевидными не сразу; ошибочные результаты по- рой внешне ничем не отличаются от правильных. Перво- 6
начальная ошибка вызывает разрушение данных в па- мяти ЭВМ, появляется множество промежуточных ре- зультатов, основанных на первоначальном ошибочном результате. Чем больше времени проходит до обнаруже- ния ошибки, тем больше возникает ошибочных данных, которые необходимо восстановить перед продолжением вычислительного процесса. Необходимость своевременного обнаруживания отка- зов, сбоев или других причин появления ошибочных ре- зультатов привела к развитым системам контроля (см. гл. 4) аппаратуры и обрабатываемой информации в вы- числительных машинах и системах (ВС). Эффективный контроль вычислений полезен еще и потому, что кратко- временные отказы (сбой), обусловленные в первую оче- редь электрическими и электромагнитными помехами, мо- гут быть обезврежены путем автоматического повторения операций, задействованного сигналом от средств кон- троля. Необходимость установить причину обнаруженного контролем нарушения в работе ВС привела к разработке развитых систем технического диагностирования (см. гл. 5). Быстрое обнаружение причины нарушения обеспечи- вает возможность ее быстрого устранения, ускоряя тем самым процесс восстановления работоспособности сис- темы. Сложнейшим составляющим ВС является ее програм- мное обеспечение, которое ввиду своей сложности может содержать скрытые ошибки, обусловливающие снижение надежности вычислительного процесса даже в случае абсолютно безотказной аппаратуры. Меры по обеспечению надежности программного обеспечения рассматриваются в гл. 6. Созданные в последние годы отказоустойчивые ВС — системы, где высокая надежность достигается полной ав- томатизацией процесса восстановления. Благодаря авто- матизации восстановление происходит очень быстро, что, в свою очередь, повышает надежность системы (см. гл. 7). Современные средства вычислительной техники ох- ватывают широкий спектр универсальных и специализи- рованных вычислительных машин и систем. Сюда отно- сятся мощные суперкомпьютеры, включающие несколько, а в отдельных случаях сотни или тысячи процессоров, универсальные ВС различной производительности, спе- циализированные, в том числе и управляющие ВС, мини- 6
ЭВМ, персональные вычислительные машины, микропро- цессоры и микропроцессорные системы и др. Наблюдается отчетливая тенденция объединения от- дельных ЭВМ в сети. Вычислительные устройства нахо- дят применение для решения все более ответственных за- дач, до недавнего времени решаемых исключительно только человеком. Вследствие этого растет и ущерб, вы- зываемый их отказом. В отдельных случаях, при управ- лении сложными объектами, ущерб может превышать стоимость самого вычислительного устройства в тысячи раз. Ошибка в работе управляющих вычислительных устройств может обусловливать аварии и создать опас- ность для людей. Без применения надлежащих мер воз- можность отказа вычислительных средств будет расти по мере увеличения их сложности. Поэтому закономерен воз- растающий интерес к мерам обеспечения их надежности. Широкое распространение приобретают отказоустойчи- вые ВС и ВС, работающие в режиме работы без остано- вок для ремонтов и профилактических работ. На первый взгляд может показаться, что, в отличие от управляющих ЭВМ, ущерб, связанный с отказами ин- формационно-вычислительных машин в вычислительных центрах (ВЦ), невелик и дешевле будет содержать зна- чительный персонал для обслуживания и быстрого ремон- та ЭВМ в случае отказа, чем придавать ЭВМ свойство отказоустойчивости, поскольку для обеспечения отказо- устойчивости количество необходимого оборудования уве- личивается. Однако в условиях, когда развитие экономи- ки происходит за счет интенсификации труда, содержа- ние больших штатов ремонтного персонала с необходи- мой производственной площадью в многочисленных ВЦ вряд ли экономно. Целесообразнее пользоваться отказо- устойчивыми ЭВМ, отказавшие узлы которых могут быть заменены или отремонтированы небольшим централизо- ванным ремонтным персоналом, поскольку задержка в ремонте отказоустойчивых ЭВМ не влечет за собой пере- рыва в их работе. Однако построение отказоустойчивых ЭВМ — задача не простая, особенно когда ставится цель построить их рационально. Основная цель настоящего пособия — изложение ме- тодов и приемов, позволяющих разработать, производить и эксплуатировать ВМ и ВС, обеспечивая их надежную работу наиболее эффективными средствами.
ГЛАВА 1 НАДЕЖНОСТЬ АППАРАТУРЫ ВЫЧИСЛИТЕЛЬНЫХ МАШИН И СИСТЕМ § 1.1. ПОНЯТИЕ НАДЕЖНОСТИ ВС И ПУТИ ЕЕ ОБЕСПЕЧЕНИЯ Надежность ВС определяется, с одной стороны, отсутст- вием отказов, сбоев и ошибок в ее работе, с другой — воз- можностью быстрого восстановления аппаратуры и вы- числительного процесса. Надежность — свойство объекта сохранять во времени в установленных пределах значениях всех параметров, характеризующих способность выполнять требуемые функции в заданных режимах и условиях применения, технического обслуживания, ремонтов, хранения и транс- портирования. Здесь и далее под «объектом» понимается либо ВС, либо ее под- система (ЭВМ, устройство, элемент и т. д.) Надежность — сложное свойство, которое в зависимо- сти от назначения объекта и условий его применения со- стоит из сочетаний свойств: безотказности, долговечно- сти, ремонтопригодности и сохраняемости (ГОСТ 27.002—83). Безотказность — свойство объекта непрерывно сохра- нять работоспособное состояние в течение некоторого времени или некоторой наработки. Наработка — объем работы объекта. Чаще всего наработка выражается через время работы объекта. Ниже используется понятие «время работы», если нет необхо- димости подчеркнуть, что наработка может быть выражена в другой форме (количество циклов работы, количество решенных задач и др.). Отказ — событие, заключающееся в нарушении рабо- тоспособности объекта. Как правило, отказ вызван фи- зическим разрушением элемента ЭВМ или постепенным ухудшением ее характеристик. 8
Сбой — кратковременное нарушение правильной рабо- ты вычислительного устройства или ее элемента, после которого его работоспособность самовосстанавливается или восстанавливается оператором без проведения ре- монта (ГОСТ 19542—83). Считается, что сбои вызваны внутренними или внешними помехами электромагнитно- го характера. Существует развернутая система государственных стандартов «Надежность в технике» (ССНТ), описываемая ГОСТ 27.001—81. Стандарты ССНТ разделены по группам, обозначаемым цифрой пос- ле точки в номере стандарта: 0 — общие вопросы надежности; 1 — нормирование надежности; 2— методы расчета надежности; 3 — ме- тоды обеспечения надежности; 4 — испытания и контроль надежно- сти; 5 — сбор и обработка информации о надежности. В табл. 1.1 приведены важнейшие с точки зрения обеспечения надежности ВМ и ВС стандарты ССНТ. Таблица 1.1 гост Наименование 27.002—83 Термины и определения 27.003—83 Выбор и нормирование показателей надежно- сти. Основные положения 27.103—83 Критерии отказов и предельных состояний. Ос- новные положения 27.104—84 Признаки классификации отказов и предельных состояний. Общие положения 27.201—81 Оценка показателей надежности при малом чис- ле наблюдений с использованием дополнительной информации. Общие положения 27.301—83 Прогнозирование надежности изделий при про- ектировании. Общие требования 27.410—83 Методы и планы статистического контроля по- казателей надежности по альтернативному приз- наку 27.502—83 Надежность в технике. Система сбора и обра- . ботки информации. Планирование наблюдений Кроме стандартов ССНТ интерес представляют также стандар- ты, приведенные в табл. 1.2. В названных стандартах определено более ста терминов из об- ласти надежности и смежных вопросов вместе с соответствующими английскими и французскими терминами, приведены некоторые ос- новные теоретические зависимости, рекомендуемые расчетные форму- лы, методы расчета, оценки и испытания на надежность. Стандарты служат основой при планировании и обеспечении надежности средств вычислительной техники. 9
Отказы, сбои, ошибки в программах, ошибки операто- ра и другие причины приводят к ошибочным результатам работы ВС. Однако пользователь ВС вправе требовать полную ее безотказность и безошибочность. К сожале- нию, в настоящее время полностью удовлетворить это требование не представляется возможным. В ходе работы ВС встречаются отказы, сбои и другие нарушения их работы. Таблица 1.2 гост Наименование 23564—79 Техническая диагностика. Показатели диагнос- тирования 19542—83 Совместимость вычислительных машин электро- магнитная. Термины и определения 16325—76 Машины вычислительные электронные цифро- вые общего назначения. Общие технические тре- бования Основные качества ЭВМ, связанные с ее надежностью, определяются распределением отказов во времени, про- цессами восстановления и организацией обслуживания. Улучшение надежности требует, как правило, дополни- тельных затрат при разработке, изготовлении и эксплуа- тации системы. Установление требований к надежности ЭВМ и ВС представляет собой сложную технико-экономическую за- дачу, решаемую по критерию минимума суммарных рас- ходов. Среди расходов необходимо учитывать расходы, связанные с разработкой и изготовлением ЭВМ или ВС; на персонал, занятый ремонтом и техническим обслужи- ванием ЭВМ или ВС; определяемые последствиями отка- зов и простоев, снижением эффективности или производи- тельности системы, а также связанные с увеличением массы или габаритов системы и др. В случае, когда отказ ЭВМ или ВС может повлечь за собой опасность для жизни людей, крупную аварию, уро- вень надежности выбирается из требования, чтобы веро- ятность отказа соответствовала практически невозмож- ному событию. 10
Пример обоснования требуемого уровня надежности ВС. Опре- делить уровень надежности в виде вероятности отказа q за некото- рый заданный период работы, обеспечивающую минимальные рас- ходы. Допустим, что суммарные затраты с складываются из стои- мости системы c\(q) и затрат c2(q), вызванных последствиями от- казов. Если считать, что С\(д) = a,\q~~bx и С2(я) = а2ЯЬ* ис(^) = =с1(^)+с2(^), то из условия dc/dq=0 следует, что оптимальное зна- Надежность ВС и ее подсистем планируется на этапе разработки технического задания (ТЗ), закладывается на ранних этапах разработки — при эскизном проектиро- вании, обеспечивается на следующих этапах разработ- ки— техническом и рабочем проектировании, реализует- ся в процессе производства и поддерживается в процессе эксплуатации. Для сравнительной оценки отдельных путей обеспече- ния и повышения надежности применяются расчетные и экспериментальные методы. Значимость расчетных мето- дов больше на первых этапах разработки и снижается в пользу экспериментального анализа и проверки на по- следних этапах. Правильные технические решения по обеспечению на- дежности на первых этапах разработки дают значитель- ную экономию средств по сравнению со случаем, когда принятые технические решения приходится пересмотреть на этапах технического и рабочего проектирования или даже на этапах производства или эксплуатации. Поэтому исключительное значение для экономного обеспечения на- дежности приобретает правильное понимание и примене- ние расчетных методов оценки надежности, для обосно- ванного выбора наилучших технических решений с точки зрения надежности. Рассмотрим основные методы обеспечения надежности на этапах жизненного цикла ВС, которые могут быть включены в программы по обеспечению надежности. Этап составления технического задания. На этом эта- пе наиболее важно собирать все имеющиеся данные об аналогичных или близких реализованных системах, а также данные об условиях применения ЭВМ или ВС и предъявляемых требованиях к функциям, выполняемым рассматриваемой системой. По совокупности этих данных разрабатываются обоснованные требования к надежности данной системы. чение вероятности отказа q =
Этап эскизного проектирования. На данном этапе вы- бирается элементная база и определяются особенности структуры, архитектуры и организации разрабатываемой системы. По этим данным проводится предварительный расчет надежности, выявляются наименее надежные под- системы и принимаются на этой основе решения о резер- вировании системы или ее подсистем, а также решения о способах и организации технического обслуживания — профилактических и ремонтных работ. Исследуется и решается вопрос о целесообразности и способах реализа- ции методов автоматического восстановления и отказо- устойчивости в системе. Этапы технического и рабочего проектирования. На этих этапах проверяются и уточняются ранее принятые технические решения. Основой для этого служат уточнен- ные данные о надежности, полученные на основании рас- четов с учетом режимов работы и точной номенклатуры элементов системы, а также результаты экспериментов над моделями, макетами, опытными и промышленными образцами. Разрабатывается программное обеспечение системы и проводится ее всесторонняя проверка по тестам и путем имитационного моделирования на модели разрабатывае- мой ЭВМ. Практически очень важным для обеспечения надеж- ности является обнаружение и исправление всех ошибок в разрабатываемой технической документации. Этап производства. На данном этапе основным явля- ляется технический контроль, охватывающий все стадии производственного процесса, начиная от входного конт- роля качества поступающих материалов и комплектую- щих изделий, включая контроль качества и соответствия технической документации изготавливаемых печатных плат, блоков, устройств, схемных соединений, конструк- ции и заканчивая испытаниями готовой продукции; вы- являются также отдельные недостатки в разработке, влияющие на надежность системы, и принимаются меры к их устранению. Этап эксплуатации. Здесь важнейшими являются кон- троль и обеспечение условий окружающей среды, предус- мотренных проектом, достаточная квалификация и состав обслуживающего персонала, организация и проведение технического обслуживания и ремонтов в предусмотрен- ном порядке. На этапе эксплуатации продолжается сбор сведений 12
об отказах аппаратуры и программного обеспечения, ко- торые передаются разработчикам с целью устранения причин отказов и уточнения исходных данных для рас- чета надежности. § 1.2. ПОКАЗАТЕЛИ НАДЕЖНОСТИ Вычислительные системы и их подсистемы могут рабо- тать в режиме, когда восстановление со стороны ремонт- ного персонала возможно и в режиме, когда это невоз- можно либо по причине отсутствия ремонтного персонала (автономные системы, например, на борту непилотируе- мого космического корабля), либо нецелесообразно. Кро- ме того, ВС и их подсистемы отличаются по требованиям к надежности, организации процесса эксплуатации и дру- гим характеристикам. Поэтому применяются различные показатели надежности, характеризующие комплексное свойство «надежность» с различных сторон. Поскольку время до отказа, время между двумя отказами, а также время восстановления — случайные величины, показате- ли надежности являются вероятностными показателями. Приведем важнейшие из них. Показатели надежности невосстанавливаемых объек- тов. Вероятность безотказной работы P(t) выражает вероятность того, что невосстанавливаемый объект не откажет к моменту времени наработки t (нара- ботка может быть выражена как календарное время, как время работы, а также как число циклов работы (меха- нических узлов) или в виде другой меры проделанной объектом работы). Показатель обладает следующими свойствами: 1) Р(0) = 1 (предполагается, что до начала работы изделие является безусловно работоспособным); 2) lim P(t) =0 (предполагается, что объект не может сохранить свою работоспособность неограниченно долго); 3) dP(t)/dt^.O [предполагается, что объект не может после отказа спонтанно восстанавливаться (для объектов, восстанавливаемых обслуживающим персоналом, этот показатель не используется)]. Дополнение вероятности безотказной работы до еди- ницы Q(t) = l—P(t) называется вероятностью отказа. Вероятность отказа Q(t)—вероятность того, что случай- ное время до отказа меньше заданного времени /. Поэто- 13
му функция Q(t) совпадает с функцией распределения времени до отказа F(t): где ft(x)—функция плотности распределения времени до отказа; х — переменная интегрирования. По (1.1) Р (О = 1 - Q (0 = 1 -1 /, (х) dx = ] ft (х) dx. В качестве показателя надежности неудобно исполь- зовать функциональную зависимость, например функцию P(t). Поэтому в технических условиях (ТУ) обычно ого- варивают отдельные ординаты (одну или две) функции P(t) при значениях t, выбираемых из нормированного ряда /=100; 500; 1000; 2000; 5000; 10 000 ч. По статистическому эксперименту можно определить P(t) лишь приближенно, в виде статистической оценки, обозначаемой тильдой, т. е. где N(t)—количество безотказно работающих до момен- та времени t объектов, при их исходном количестве N0. Точки разрыва функции P(t) соответствуют отдель- ным отказам, поэтому вид P(t) изменяется случайно от эксперимента к эксперименту даже при неизменной функ- ции P(t). При неограниченном увеличении N0 функция P(t) стремится к функции P(t). Среднеквадратичная погрешность оценки (1.2) опре- деляется на основе теоремы Муавра — Лапласа выраже- нием « VP(l-P)/N0, где Р — значение P(t) для рассматриваемого момента времени. Как следует из этого выражения, для обеспече- ния малой погрешности требуется эксперимент над боль- шим числом образцов. Средняя наработка до отказа t определяется как ма- тематическое ожидание времени до отказа: во о» в» ? = A«^f tf(x)dx= -tP(t) I + | P(x)dx. (1.3) Первый член в (1.3) стремится к нулю, когда t—0, а также когда t-*-oo, так как получающаяся неопределен- (1.1) (1.2) о 14
ность lim tP[t) при встречающихся на практике функ- (1.4) днях P(t) стремится к нулю. Следовательно, Средняя наработка до отказа является естественным показателем надежности, однако она не говорит ничего о характере распределения времени до отказа. Например, две совершенно различные функции P\(t) и Ря(0, выра- жающие резко отличающие- ся вероятности безотказной работы при малых наработ- ках могут характери- зоваться одинаковыми зна- чениями ?i = ?2 (рис. 1.1). Чтобы различать такие слу- чаи, наряду с показателем I применяется еще показатель at — среднеквадратическое отклонение наработки до отказа или его квадрат — дис- персия Dt: trt2 Рис. 1.1. Сопоставление' функ- ций вероятности безотказной работы (заштрихованные пло- щади равны) :£>, = J (t-t)2ft(t)dt. (1.6) Дисперсия характеризует величину разброса наработ- ки относительно среднего значения. Для кривых на рис. 1.1 а/1<°/1- Показатели t и at можно оценить также статистически по формулам 1 *0 No (1.7) где U — время до отказа i-ro образца. Как следует из (1.6), (1.7), эти оценки пригодны толь- ко тогда, когда эксперимент проводился до отказа всех образцов. При современных высоконадежных объектах это бывает редко. В противном случае приходится экстра- полировать экспериментальную зависимость (1.2), а за- тем находить оценки показателей по (1.4) и (1.5), под- ставив вместо P{t) ее аппроксимацию. 16
Интенсивность отказов Х(0 выражает интенсивность процессов возникновения отказов. С течением времени число испытываемых образцов вследствие их отказов убывает, поэтому одинаковые зна- чения плотности распределения f(t) говорят о тем боль- шей интенсивности процессов возникновения отказов, чем меньше вероятность безотказной работы (т. е. число ос- тавшихся образцов). Поэтому мерой интенсивности отка- зов служит отношение X (О = /, (0/Р (0 - (- ЛР (t)/dt)/P (О. (1.8) Решая (1.8) как дифференциальное уравнение, имеем -J X(/)rf/ Р(0=е 0 ; (1.9) Статистически интенсивность отказов оценивается по отношениюl={N(i, t+M))JCN(t)At) как число отказов N(t, t+At) в достаточно ма- лом интервале времени, от- несенное к числу оставших- ся к моменту времени t об- разцов N(t) и интервалу времени At Гамма-процентная нара- ботка /т выражает абсциссу Рис. 1.2. Определение гам- функции при заданной Орди- ма-процентной наработки нате. Другими словами, гам- ма-процентная наработка U определяется как значение обратной P(t) функции Р 1 (у) при заданном аргументе у: 'т-^-Чу), (U0) где y — некоторая гарантийная вероятность (рис. 1.2). Таким образом, гамма-процентная наработка ty—на- работка, в течение которой гарантируется безотказная ра- бота объекта с заданной вероятностью у. Значение у выбирается обычно достаточно большим (у=0,8-т-0,99). Показатели надежности восстанавливаемых объектов. Параметр потока отказов со (0 выражает удельное число отказов в единицу времени и на один образец ап- паратуры. Статистически этот показатель оценивается по следующей формуле: S(0 - * + A01/W*0. (Ml) 16
Средняя наработка на отказ Т0 определяется как от- ношение наработки восстанавливаемого объекта к мате- матическому ожиданию числа его отказов в течение этой наработки. Коэффициент готовности /Сг(0 используется в качест- ве показателя надежности, если кроме факта отказа не- обходимо учитывать время восстановления, поскольку она не пренебрежимо мала. Коэффициент готовностиопреде- ляется как вероятность того, что в произвольный задан- ный момент времени t объект находится в состоянии ра- ботоспособности (кроме планируемых периодов, в тече- ние которых применение объекта по назначению не пре- дусматривается). Статистическая оценка коэффициента готовности *г(0 = ЛГ»(0/^о. (1.12) где NB(t)—число объектов, находящихся в рабочем со- стоянии в момент времени t. Разность N0—NB выражает количество объектов, на- ходящихся в момент времени t в состоянии восстановле- ния (ремонта). Стационарный коэффициент готовности Кт.ст опреде- ляется как предел (1.12) при /-^оо или как отношение /Сг.ст=2/р/(2*р+2М суммарного времени работы объ- екта 2/р к суммарному времени работы и восстановления Коэффициент оперативной готовности R(t)—вероят- ность того, что объект окажется в работоспособном состоянии в произвольный момент времени, кроме плани- руемых периодов, в течение которых применение объекта по назначению не предусматривается и, начиная с этого момента, будет работать безотказно заданный интервал времени. Выбор показателей надежности. В каждом конкрет- ном случае в качестве показателя (показателей) надеж- ности необходимо выбрать те, которые наилучшим обра- зом характеризуют надежность объекта с точки зрения его целевого назначения. В настоящее время существуют специальные методи- ки по выбору показателя надежности. Приведем ниже некоторые краткие рекомендации по выбору показателей надежности. 1. Если невосстанавливаемый объект работает одно- кратно в течение небольшого заданного отрезка времени 17
1зад<*> то в качестве показателя надёжности целесооб- разно выбрать вероятность безотказной работы Р(£мж) за заданное время. Этот же показатель используется в случае периодиче- ски обслуживаемых ВС и их подсистем, например на бор- ту самолета, когда во время полета ремонт невозможен. В таком случае показатель характеризует отсутствие от- казов за время полета. 2. Если необходимо гарантировать вероятность безот- казной работы невосстанавливаемого изделия на уровне не ниже заданного, а наработка (ресурс) может быть на- значена проектировщиком, тогда в качестве показателя надежности целесообразно выбрать гамма-процентную наработку ty. Сюда относятся электромеханические уст- ройства типа ЗУ на магнитных лентах и дисках, а также печатающие устройства, характеризуемые возрастающей функцией интенсивности отказов. Их надежная работа в ответственных системах обеспечивается своевременной заменой, время замены определяется как гамма-процент- ный ресурс. 3. Если отказ невосстанавливаемого объекта не влечет за собой опасных последствий и объект эксплуатируется,, как правило, до наступления отказа, тогда целесообраз- но характеризовать его надежность через среднюю нара- ботку до отказа I. Этот показатель используется также в первую очередь для характеристики электромеханических устройств; применяемых в менее ответственных системах. 4. Если невосстанавливаемый объект характеризуется постоянством интенсивности отказов, тогда в качестве надежности целесообразно использовать ее значение Я. Этот показатель используется для характеристики невос- станавливаемых электронных узлов (ИС и БИС). 5. Если время восстановления восстанавливаемого объекта пренебрежимо мало по сравнению с временем безотказной работы, целесообразно использовать показа- тели надежности ©(/) и Т0 в случае, когда a>(0=const. В случае ответственных управляющих ВМ и ВС, факт отказа которых влечет за собой тяжелые последствия, не взирая на скорость восстановления, целесообразно ис- пользовать в качестве показателя надежности параметр потока отказов co(t) или t0 (если о)(0=const). 6. Если доля полезного времени работы восстанавли- ваемого объекта имеет существенное значение, в качест- 18
ее показателя надежности целесообразно использовать коэффициент готовности /Сг(0- Этот показатель применяется в первую очередь для универсальных ВС и ВЦ, где существенное значение име- ют потери машинного времени. 7. Если особо важное значение имеет безотказная ра- бота объекта в периоды выполнения операции, то как по- казатель надежности применяется коэффициент опера- тивной готовности. Отметим, что показатели надежности типа вероятно- сти безотказной работы, среднего времени до отказа и ин- тенсивности отказов могут применяться как показатели процесса восстановления, если вместо момента времени отказа рассматривать момент времени восстановления. § 1.3. ЗАВИСИМОСТЬ НАДЕЖНОСТИ ОТ ВРЕМЕНИ Зависимость надежности от времени описывается с по- мощью математической модели надежности (ММН)—ма- тематического выражения (формулы, алгоритма, уравне- ния, системы уравнений), позволяющего определить по- казатели надежности. Простейшие ММН в виде формул с эмпирическими коэффициентами носят название стати- стических моделей распределения и рассматриваются ниже. Структурные модели надежности, позволяющие учитывать взаи- мосвязь между элементами системы или входящими подсисте- мами, рассматриваются в гл. 2. Модели надежности, учитываю- щие процессы и способы восстановления, рассматриваются в гл. 3 и 7. Наиболее распространенной статистической моделью надежности является экспоненциальная модель распреде- ления времени до отказа, по которой вероятность безот- казной работы объекта выражается зависимостью P9(0=e-w, (1.13) где % — параметр модели. Функция плотности вероятностей распределения вре- мени до отказа при экспоненциальной модели /9(0= -dP9(t)/dt = \e~xt. Функция интенсивности отказов при экспоненциаль- ной модели МО -/.(0/P.(0-*-conrt. (1.14) 19
Графики этих функций приведены на рис. 1.3. Нара- ботка до отказа при экспоненциальной модели в» f = Je-x/^= 1/Х. (ив) о Экспоненциальная модель может быть использована в случае, когда интенсивность отказов постоянная величи- на (для типичного радиоэлектронного прибора это усло- вие реализуется приблизительно в период эксплуатации //, если исключить период приработки / и период интен- сивного старения /// (рис. 1.4), а также как характери- стика достаточно сложных восстанавливаемых объектов, если можно считать, что отдельные части объекта, на- ходясь в разных стадиях износа, характеризуются в среднем постоянной функцией интенсивности). t I Е III t Рис. 1.3. Графики зависимости Рис. 1.4. График типичной за- показателей надежности от вре- висимости интенсивности отка- мени для экспоненциальной мо- зов от времени дели распределения С экспоненциальной моделью тесно связана модель Пуассона, позволяющая выразить вероятность Р(/, п) того, что на заданном интервале времени (0, t) произо- шло ровно п событий (отказов), если время между от- дельными событиями (отказами) распределено экспо- ненциально с параметром Я. По модели Пуассона Р«, *) = -^f е-". (1.16) Модель Пуассона основана на представлении о потоке случайных событий, называемого пуассоновским, если 2а
выполнены условия стационарности, ординарности и от- сутствия последействия. Стационарность — свойство потока, выражающееся в том, что параметры потока не зависят от времени. Ординарность — свойство потока, выражающееся в том, что в один и тот же момент времени может прои- зойти только одно событие. Отсутствие последействия — свойство потока, выра- жающееся в том, что вероятность наступления данного события не зависит от того, когда произошли предыдущие события и сколько их было. Разреженный поток — поток событий, где каждое со- бытие осуществляется с вероятностью р<1; тем самым количество событий уменьшается и поток делается более «редким». Доказано, что разреженный пуассоновский по- ток является тоже пуассоновским с параметром рЯ, т. е. время между событиями последнего потока распределено по экспоненциальному закону с параметром р%, в то время как время между событиями пуассоновского пото- ка с параметром % распределено по экспоненциальному закону с параметром %. Модель Вейбулла находит широкое практическое при- менение благодаря своей простоте и гибкости, так как в зависимости от значений параметров характер модели видоизменяется в широких пределах. Модель надежности Вейбулла, называемая также моделью Вейбулла — Гне- денко, была предложена шведским ученым В. Вейбуллом в качестве модели прочности материалов, а затем обос- нована математически советским ученым Б. В. Гнеденко. Вероятность безотказной работы по модели надежности Вейбулла выражается формулой [5] Рл(0 = е-в'Р, (1.17) где а и р — параметры модели. Ориентировочно значение p=0,2-f-0,4 для электрон- ных устройств с убывающей функцией интенсивности от- казов и р= 1,2ч-1,4 для механических устройств с возра- стающей функцией интенсивности отказов. Пример прогнозирования вероятности безотказной работы ВС. Пусть вероятность безотказной работы ВС за *=1000 ч равна Р=0,99, составим прогноз вероятности безотказной работы этой же ВС через 105 ч работы без обслуживания. В случае экспоненциальной модели интенсивность отказов ВС 21
В случае модели Вейбулла при 0=0,5 а= — in «0,000316. Следовательно, через 10б ч работы вероятность безотказной ра- боты ВС, прогнозированной по экспоненциальной модели, равна Я9 = e-l*-*'w « 0,37. Прогноз по модели Рл = е-0'000316"102,6 « _.л ллс 1 Следовательно, выбор правильной модели надежности не без- различен для практики. Выбор модели надежности — сложная научно-техни- ческая проблема. Она может быть удовлетворительно решена стандартными методами математической стати- стики, если имеется большой статистический материал об отказах исследуемых объектов. Из-за высокой надежно- сти ВС и их компонентов, как правило, статистических данных об отказах немного. В последнем случае при вы- боре модели руководствуются результатами ускоренных испытаний, проводимыми в утяжеленных условиях рабо- ты объекта, физическими соображениями, предыдущим опытом. В случае приближенных оценок часто выбира- ется экспоненциальная модель как наиболее удобная с точки зрения аналитических преобразований. Экспонен- циальную модель рекомендуется применить при выпол- нении расчетов надежности в случае отсутствия других исходных данных для расчета, кроме интенсивности от- казов. В случае наличия более полных исходных данных целесообразно пользоваться другой, более точной мо- делью, например моделью Вейбулла. § 1.4. НАДЕЖНОСТЬ НЕВОССТАНАВЛИВАЕМЫХ И НЕРЕЗЕРВИРОВАННЫХ ВС Рассмотрим ВС, состоящую из п элементов (подсистем). Допустим, что все элементы системы имеют свое функ- циональное назначение, следовательно, отказ любого эле- мента и любой группы элементов влечет за собой отказ системы. Такая ВС — нерезервированная система. Обо- значим событие, заключающееся в отказе 1-го элемента системы к моменту времени через At и противополож- ное событие, т. е._безотказную работу 1-го элемента сис- темы, через Bi=Ai. Тогда по теореме умножения вероят- ностей вероятность безотказной работы системы «0,905. (1.18) 22
Иначе можно выразить вероятность Ро'(0 через ряд Рс (О -1 - РIV л \ = 1 - 2 р <л'> + 2 р (л i * Afl - V'-1 / * /,/ - S P(Ai&Aj &Ak)+ ... (1.19) Однако пользоваться выражениями (1.18) и (1.19) весьма трудно, так как определение условных вероятнос- тей^ [в* | ^ &^ B/j в (1.18) или вероятностей совместных со- бытий в (1.19) экспериментальным путем очень трудоемкая и, что самое главное, бесполезная процедура. Дело в том, что формулы типа (1.18) и (1.19) представляют интерес в случае, если по ним удается оценить надежность новой, разрабатываемой системы по известным характеристи- кам входящих элементов (подсистем), не прибегая к ис- пытанию системы. Но для^ экспериментального определе- ния вероятностейР (^j,^ 5/) и P(Ai&Aj&...) необходимы эксперименты над различными частями системы в раз- личных комбинациях. В таком случае проще испытать систему целиком и пренебречь расчетом по (1.18) или (1.19). Эти зависимости представляют интерес только в случае, если значения отдельных составляющих в правой части (1.18) или (1.19) удается определить расчетным путем, например на основе физической модели от- казов. Во многих случаях практический интерес представляет простая оценка в виде двойного неравенства 1 - S Р Ш <РС(0< 1— max Р (Л/), (1.20) справедливая при любой степени зависимости между отказами элементов системы. Оценка (1.20) интересна в случае высоконадежных систем, когда Pc(t)->~1, поскольку тогда максимальная ошибка оценки (1.20) стремится к нулю. Введем допущение о статической независимости отка- зов элементов системы. Тогда по (1.18) Рс(0 = П P(Bi). (1.21) /-1 23
Выразим правую и левую части равенства (1.21) че- рез интенсивности отказов (см. п. 1.2). Тогда еХР[~ IХс Wdt\ = вХР [ " А\Х/(°dt\9 (Ь22) где Яс(0> Л/(0—соответственно функции интенсивности отказов системы, t-ro элемента системы. Логарифмируя и дифференцируя затем правую и ле- вую части (1.22), получим простое соотношение МО = 2 МО- (1.23) Если система содержит Ni элементов J-ro типа, а пх озна- чает количество разновидностей элементов системы, то М0 = 2#/М0. (1.24) /-1 Формулы (1.23) и (1.24) применимы также в случае, когда Хс (*) = Хс = const и X/ (/) = X/ = const, т. е. в случае экспоненциальной модели надежности. Для оценки (1.24) среднеквадратичная погрешность [ПХ "11/2 2 ^MJ * гдввХ|"" среднеквадратичная погреш- ность оценки интенсивности отказов %t. § 1.5. НАДЕЖНОСТЬ ЭЛЕМЕНТОВ ЭВМ Модели надежности элементов ЭВМ, отражающие всю полноту сложнейших физико-химических процессов воз- никновения отказа, получаются слишком сложными для практического применения. Поэтому применяют упрощен- ные методы, например метод коэффициентов. Метод коэффициентов заключается в том, что параметр ш выбранной статистической модели надежности можно за- писать как ш=ацЪ2...а1пШ(» где а<ь а*2,й\п — эмпириче- ские коэффициенты, каждый из которых выражает влияние одного из внешних воздействующих факторов (темпера- туры, ускорения, влажности, радиации и т. д.); <х*о —ба-
зовое значение параметра ад. Следовательно, метод ко- эффициентов требует знания всех действующих факто- ров. Если значения этих факторов неизвестны, то можно использовать коэффициенты, зависящие от общего харак- тера условий применения аппаратуры. Например, для ин- тенсивности отказов при экспоненциальной модели на- дежности существует следующая зависимость: X=\k%0, где k — коэффициент, зависящий от условий работы; Я,0 — некоторая базовая интенсивность отказов. Ориентировочные значения коэффициента k [10] для лабораторных условий 0,5, полевых условий 1,5, аппара- туры, установленной на автомобиле, 2,0, борта ко- рабля 2,5, борта самоле- та 3,0. Метод коэффициентов может быть использован также в случае, когда ус- ловия работы аппаратуры изменяются во времени. Однако вероятность без- отказной работы, опреде- ленная по методу коэффи- циентов, когда коэффици- енты зависят от времени, может быть ниже дейст- вительного значения, так как работа в переменных режимах из-за усталост- ных явлений ведет к до- полнительному разруше- нию объекта по сравне- нию со статическим режимом работы. На рис. 1.5 приведены графики, позволяющие оценить интенсивность отказов БИС, основанных на биполярной технологии У и на КМОП-технологии 2 [29]. Графики справедливы для БИС, содержащей 2100 логических эле- ментов. Если количество элементов отличается от этой цифры, то для приближенной оценки интенсивности отка- зов БИС можно использовать зависимость *бис = (*/2100)х. где п — число логических элементов в рассматриваемой БИС; К — значение интенсивности отказов, определяемое по графику на рис. 1.5. 50 60 70 80 90 100 110 12QIJ0PP Рис. 1.5. Графики зависимости ин- тенсивностей отказов БИС от тем- пературы корпуса 25
Для более точной оценки интенсивности отказов БИС следует пользоваться справочниками, где дается зависи- мость интенсивности их отказов от ряда факторов (осо- бенности конструкции, степени освоенности продукции и др.). В табл. 1.3 приведены некоторые данные об интенсив- ностях отказов других компонентов ВС [15]. Приведен- ные цифры необходимо умножить на КН, чтобы получить значения интенсивностей отказов в отказах на час. Таблица 1.3 Компонент Интенсив- ность отказов Компонент Интенсив- ность отказов ИС 0,1 Пишущая ма- 1000 Диод 0,2—0,5 шинка Транзистор 0>,05—0,3 Память на дис- 250 Конденсатор 0,002—0,04 ках Резистор 0,01—0,1 Контроллер па- 15 Трансформатор 0,1—0,2 мяти на дисках Пайка 0,0001 Память на маг- 350 Разъем 2,0—3,5 нитных лентах Сердечник 0,00001 Контроллер па- 15 Выключатель 0,2-0,5 мяти Лампочка 0,5 Устройство вво- 250 Вентилятор 3,0 да с перфоленты Память емкостью 100 Контроллер уст- 10 4 Кслов ройства ввода Память емкостью 300 Печатающее уст- 420 48 Кслов ройство Контроллер пи- 10 Контроллер пе- 15 шущей машинки чатающего устрой- ства Контрольные вопросы и задачи 1. Дайте определение понятию «надежность». 2. Как устанавливаются требования к уровню надежности ВС? 3. В каких случаях целесообразно выбрать в качестве показа- теля надежности вероятность безотказной работы; наработку до отказа; наработку на отказ? 4. Как оценивается погрешность при экспериментальной оценке надежности? 5. Какие существуют пути повышения надежности элемента ЭВМ, ВС? 6. Выведите функцию интенсивности отказов для модели надеж- ности Вейбулла. 7. Оцените интенсивность отказов и погрешность оценки узла, состоящего из десяти ИС, пяти конденсаторов, пяти резисторов, ста паек и одного разъема. 26
ГЛАВА 2 НАДЕЖНОСТЬ РЕЗЕРВИРОВАННЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ § 2.1. РЕЗЕРВИРОВАНИЕ В ЭВМ И ВС Резервирование — способ повышения надежности аппара- туры, предусматривающий замену отказавших частей ап- паратуры резервными при условии, что резервная аппа- ратура входит конструктивно и функционально в состав рассматриваемой аппаратуры. Включение резерва может быть произведено вручную или автоматически, в не- которых случаях резерв может быть функционально связан с основной аппаратурой так, что специаль- ного включения ее не требуется. Если же для восстановления работоспособности аппаратуры требуется удалить отказавшую часть аппаратуры и вместо нее вставлять или вмонтировать аналогичную исправную, то речь идет не о резервировании, а о ремонте. Програм- мное обеспечение может быть также резервировано. В этом случае под резервом понимается наличие запас- ных вариантов (версии) всей программы или ее отдель- ных модулей, которые входят в состав данной програм- мной системы и будут задействованы при помощи команд условного перехода, при условии отказа основной прог- раммы. Если переход осуществляется вручную, правильнее говорить о наличии различных вариантов функциональ- ных программ. Если для устранения отказа требуется из- менение текста программы, следует говорить о ее отлад- ке или усовершенствовании. В аппаратуре универсальных ЭВМ в настоящее время резервирование встречается на различных уровнях. Резервирование на уровне ЭВМ. На уровне ЭВМ ре- зервирование заключается в наличии большего числа од- нотипных ЭВМ, чем необходимо для решения поставлен- ных задач. В таком случае надежность системы оценива- ется по (2.6) как системы со скользящим резервом. Однако в случае универсальных ЭВМ, как правило, целе- сообразно использовать производительность всех имею- щихся ЭВМ. Тогда свойства системы удобнее характери- зовать через эффективную производительность системы /-1 27
где п — число ЭВМ в системе; Пи /С* — производитель- ность и коэффициент готовности f-й ЭВМ. Если отдельные ЭВМ, объединенные через каналы связи, через адаптеры между каналами для периферий- ных устройств, через общее поле памяти или другим спо- собом, образуют многомашинную (многопроцессорную) ВС, то эффективная производительность такой системы т где т — количество состояний системы; /?,• — вероятность того, что система находится в /-м состоянии; П\ — про- изводительность системы в /-м состоянии. Вероятности pj при этом определяются методами мар- ковских цепей (см. §3.3 и [19]). Во многих случаях важ- но, чтобы ЭВМ, входящие в систему с сетевой организа- цией, сохранили связь между собой. Поскольку конфигу- рация таких систем может быть самой различной (см. рис. 7.10), для оценки вероятности сохранения связности системы следует применить методы расчета надежности систем со сложной структурой, например метод мини- мальных путей и минимальных сечений (см. § 2.4). Резервирование на уровне устройств. На более низких уровнях иерархии структуры в универсальных ЭВМ ре- зервирование широко встречается на уровне периферий- ных устройств (ПУ). В современных ВС имеется, как правило, несколько устройств памяти на магнитных лен- тах и магнитных дисках, несколько устройств ввода на перфокартах и перфолентах, несколько печатающих уст- ройств и т. д. Так как эти устройства могут быть полно- стью использованы для ввода, вывода или запоминания большого количества информации, а при небольшом ко- личестве информации можно пользоваться одним устрой- ством, то достаточность ПУ с учетом возможных отка- зов целесообразно оценить через эффективную произво- дительность. Если же речь идет о получении показателя надежности системы, то надежность ПУ должна быть также выражена через показатели надежности. В данном случае только следует допустить, что для решения задач требуется некоторое минимальное число ПУ, а остальные ПУ являются скользящим резервом (2.6). Резервирование на уровне кодов. Кроме названных методов резервирования, в ЭВМ нашли широкое приме- нение коды с обнаружением и исправлением ошибок (см. 28
§ 7.3) для повышения надежности ОЗУ и ВЗУ. Примене- ние этих кодов дает возможность исправлять определен- ное число ошибок в каналах передачи данных или вос- становить информацию в случае отказа некоторых ячеек в ОЗУ и ПЗУ или дорожек (т. е. усилителей записи — считывания) в накопителях на магнитных лентах или магнитных дисках. Надежность таких устройств оценива- ется как надежность резервированных систем со сколь- зящим резервом (2.6). Резервирование в специализированных и управляю- щих ЭВМ. В специализированных и особенно управляю- щих ЭВМ резервирование применяется значительно шире в связи с высокими требованиями, предъявляемыми'к надежности таких систем. На уровне ЭВМ, а иногда и на уровне программного обеспечения применяется троирование (2.12). Встречаются также системы, где используется не- сколько резервных ЭВМ. В целях повышения надежности часть из них может работать в режиме нагруженного (см. § 2.2), часть — в режиме ненагруженного резерва (см. § 2.3). Однако резервирование на уровне ЭВМ не самое эко- номичное. Для повышения надежности при ограничениях массы, стоимости и габаритных размеров ВС (см § 7.5) используется резервирование отдельных устройств ЭВМ, троированием (см. § 2.5) или применением одного или нескольких нагруженных и (или) ненагруженных резер- вов. Для повышения надежности самых ответственных уз- лов применяется троирование или логика с переплете- ниями (см. § 2.5). Все рассмотренные методы резервирования в ВС от- носятся к пассивному резервированию, так как не пре- дусматривают реконфигурацию системы. Способы резервирования, предусматривающие автоматическую реконфигурацию системы, будут рассмотрены в гл. 7. Описание резервированных систем. Описание надеж- ности структуры нерезервированных систем предельно простое, что нельзя сказать об резервированных систе- мах. Резервированная система может быть просто и на- глядно представлена в виде связного графа — графа на- дежности, где вершины соответствуют подсистемам, а 29
дуги — соединениям между подсистемами. Принимается, что отказу t-й подсистемы соответствует обрыв 1-го ребра графа, а отказу системы — потеря связности между дву- мя выделенными вершинами графа — полюсами. Из рис. 2.1, где изображен граф резервированной ВС, следует, что отсутствие обрыва ребер 1, 2 является доста- точным условием наличия связи между полюсами А и В, а обрыв ребер 1, 5 явля- ется достаточным условием потери связи между полюса- ми А, В. Если считать, что дуги 1—7 графа соответст- вуют каким-либо обрабаты- вающим, запоминающим или коммутирующим уст- ройствам или элементам, осуществляющим обработку и передачу информации из полюса А в полюс В и что для работы такой ВС доста- точно наличия одного пути передачи и обработки, то граф на рис. 2.1 является графом надежности для этой системы. Иногда для большей наглядности дуги графа дополняют изображениями устройств в виде прямоуголь- ников. В таком случае говорят о структурной схеме рас- чета надежности системы. Необходимо отметить, что структурная схема расчета надежности системы далеко не всегда соответствует функциональной структуре сис- темы. Ее следует составлять, исходя из надежности свойств рассматриваемой системы. Рис. 2.1. График надежно- сти ВС со сложной струк- турой § 2.2. НАДЕЖНОСТЬ РЕЗЕРВИРОВАННЫХ ВС С ПОСЛЕДОВАТЕЛЬНО-ПАРАЛЛЕЛЬНОЙ СТРУКТУРОЙ ПРИ НАГРУЖЕННОМ РЕЗЕРВЕ Определение вероятности безотказной работы. Для по- следовательно включенных элементов, отказы которых являются независимыми случайными событиями по ак- сиоме умножения вероятностей, вероятность безотказной работы системы п Риосл = П рг (2.1) /-1 где pi — вероятности безотказной работы подсистем. 30
Здесь и ниже предполагается, что вероятность безотказной рабо- ты подсистем Pi (а также системы) определяется для опреде- ленного момента времени в соответствии с выбранной моделью распределения (см. § 1.3). Для параллельно включенных подсистем при таких же условиях вероятность безотказной работы системы т Л,аР = 1- П(1-/М, (2.2) /-1 ' где р/— вероятности безотказной работы подсистем. Рис. 2.2. Этапы постепенного упрощения последователь- но-параллельной структуры Последнее выражение основано на том, что вероят- ность отказа системы с параллельной структурой выра- жается как произведение вероятностей отказа элемен- тов: т 1-ЛиР= П O-Pj)- Вероятность безотказной работы системы с последо- вательно-параллельной структурой, изображенной на рис. 2.2, а, наиболее удобно выразить постепенным упро- щением ее схемы. Заменим сначала параллельные под- системы 2 и 3 новой подсистемой 23 (рис. 2.2,6). Тогда вероятность безотказной работы этой подсистемы р23= = 1—(1—р2) (1—Рз). Теперь заменим последовательные подсистемы 1 и 23 новой подсистемой 123 (рис. 2.2, в). Тогда вероятность безотказной работы этой подсистемы Pi23=PiP23. Далее заменим последовательные подсистемы 4 и 5 одной подсистемой 45 с вероятностью безотказной работы Раь=РаР$. Наконец, заменив параллельные под- системы 123 и 45 новой подсистемой 12345 (рис. 2.2,г), получим вероятность безотказной работы этой подсисте- мы p12345=l—(1—pi23) (1—р45), что соответствует вероят- ности безотказной работы системы. 31
Определение средней наработки на отказ. Кроме ве- роятности безотказной работы резервированных систем может представить интерес средняя наработка на отказ. Этот показатель определяется по (1.3) или (1.4). Рас- смотрим частный случай, 5 4 3 2 t / J —-V г / Z3456789 10 n когда имеется система, состоящая из п парал- лельных н агруженных подсистем. Допустим, что отказы подсистем незави- симы и распределены по экспоненциальной модели с одинаковым парамет- ру 2.3. График зависимости на- Ром Тогда, подставляя работки до отказа от кратности вероятность Оезотказной резервирования работы системы по (2.2) в (1.4), получаем выраже- ние для среднего времени безотказной работы системы во (2.3) На рис 2.3 изображены зависимости отношения tc/t = = tch от п в случае ненагруженного / (см. § 2.3) и нагру- женного 2 резерва. Среднее время безотказной работы в рассматриваемой системе растет сначала с ростом п быстро, но дальней- шее увеличение параллельных подсистем неэффективно, так как Т0 растет мало. § 2.3. НАДЕЖНОСТЬ РЕЗЕРВИРОВАННЫХ ВС С ПОСЛЕДОВАТЕЛЬНО-ПАРАЛЛЕЛЬНОЙ СТРУКТУРОЙ ПРИ НЕНАГРУЖЕННОМ РЕЗЕРВЕ Системы с ненагруженным резервом — системы, при ана- лизе которых может быть принято допущение о том, что интенсивность отказов резервной подсистемы Ярез=0 (см. § 2.1). Данное допущение обосновано в первую оче- редь для БИС биполярной технологии, где нагрев от рассеиваемой мощности составляет десятки градусов и соответственно отключенные схемы имеют интенсив- ность отказов значительно меньше, чем включенные (см. рис. 1.5). Допущение обосновано также и для механиче- ских и электромеханических объектов, встречающихся 32
широко в ПУ ЭВМ и ВС, которые в режиме невключен- ного резерва практически не отказывают. Методы анализа надежности резервированных систем с ненагруженным резервом основаны на сложении ин- тервалов времени от включения до отказа основного и резервных элементов системы. Время безотказной работы системы ic, состоящей из основной подсистемы и п—1 резервных подсистем, 'c=S (2.4) /-1 где U — время до отказа /-й подсистемы. Анализ надежности усложняется в случае, когда // — случайные величины и необходимо найти функцию плот- ности распределения суммы случайных величин, т. е. ре- шить задачу композиции функций плотности распреде- ления слагаемых. В случае, когда поток отказов подси- стем— пуассоновский поток, вероятность P(t, k) того, что за время t возникают k отказов, выражается по фор- муле Пуассона (см. § 1.3). Вероятность безотказной ра- боты Рс(0 системы, состоящей из п подсистем, находит- ся тогда на основании аксиомы сложения вероятностей как сумма вероятностей того, что в системе возникают О, 1, 2,..., п—1 отказов за время t, в то время как возник- йовение я-го отказа означает уже отказ системы. Следо- вательно, (2.5) /»* Сравнивая между собой методы резервирования на- груженным и ненагруженным резервом, можно сделать вывод о том, что при прочих равных условиях система с ненагруженным резервом надежнее системы с нагружен- ным резервом. Однако при сравнении методов резервирования необ- ходимо учитывать еще и то, что ненагруженный резерв в виде процессора или ЭВМ, в отличие от нагруженного, требует некоторого дополнительного времени для за- грузки в него необходимых данных (состояние регистров, константы, программы, промежуточные результаты вы- числений). Поэтому ненагруженный резерв не может мгновенно продолжить работу отказавшей системы. Кроме того, во многих случаях важно сохранить проме- 2—595 33
жуточные результаты, существовавшие в момент отказа и, конечно, отсутствующие в ненагруженном резерве. В таких случаях часто применяют комбинированное ре- зервирование, т. е. первая резервная подсистема работа- ет в режиме нагруженного резерва, полностью дублируя информацию, а остальные резервные подсистемы не на- гружены. В случае отказа основной системы или нагру- женного резерва включается один из ненагруженных ре- зервов вместо отказавшего. Вопрос о потерях времени при включении резервов подробно рассмотрен в гл 7. Методы расчета надежности систем с ненагруженным резервом могут быть применены для планирования за- пасов элементов и подсистем, необходимых для обеспе- чения ремонта ВС Такие запасы носят условное назва- ние ЗИП — запасные инструменты и приборы. Если рас- сматривать ЗИП как ненагруженные резервы, то веро- ятность отказа такой системы выражает вероятность то- го, что ремонт не оказывается возможным из-за нехватки запасных элементов или подсистем. § 2.4. НАДЕЖНОСТЬ ВС СО СЛОЖНОЙ СТРУКТУРОЙ РЕЗЕРВИРОВАНИЯ Встречаются структуры и способы организации, когда резервирование имеет место, но его нельзя представить по схеме последовательного или параллельного включе- ния элементов или подсистем. Наиболее часто встречает- ся скользящее резервирование, когда число однотипных подсистем больше, чем требуется для выполнения зада- чи, и каждая резервная подсистема может заменить лю- бую отказавшую подсистему. Пусть в системе имеется п основных подсистем и т резервных. Тогда вероятность безотказной * работы си- стемы /-о т+п = 1- 2 сдгУв+||-/<1-р>|. (2.6) где р — вероятность безотказной работы подсистемы. В общем случае расчет надежности систем со слож- ной структурой намного сложнее, чем расчет систем с 34
последовательно-параллельной структурой. Рассмотрим два приближенных метода расчета таких систем: мини- мальных путей и минимальных сечений и статистическо- го моделирования. Метод минимальных путей и минимальных сечений [2]. Этот метод в отличие от рассматриваемых выше точных методов является приближенным, позволяющим оценить действительное значение вероятности безотказ- ной работы системы снизу и сверху. Метод проще, чем известные точные методы, и поэтому подходит для оцен- ки надежности более сложных систем. Для формального описания метода введем логиче- скую структурную функцию системы F(x)9 где логиче- ский вектор х=(*1, Х2,...,хп) характеризует работоспо- собность элементов системы. Пусть xi=\ означает, что i-й элемент (подсистема) работоспособен, a xt=0, что i-й элемент отказал, функ- ция F(x) выбрана так, что она равна единице тогда и только тогда, когда система работоспособна; считается, что х^у, если xi^yi для /= 1, 2,..., л. Определим в принятых обозначениях понятия «мини- мальный путь» и «минимальное сечение». Если jF(x) = 1 и F(y)=0 при любых у<х, то х=а — минимальный путь, т. е. /-й минимальный путь состоит из локально минимальной совокупности М/ подсистем, необходимой для обеспечения безотказной работы систе- мы независимо от состояния остальных подсистем. В структуре системы имеется, как правило, несколько минимальных путей. Характерным признаком минималь- ного пути является то, что отказ хотя бы одной подсисте- мы пути (если работоспособны только подсистемы пути) влечет за собой отказ системы. Пример установления минимальных путей. Для графа на рис. 2.1 можно указать следующие минимальные пути: 12, 147, 1367, 567, 532, 5347, 5642. Если F(x)=0 и F(y) = l при любом у>х, то х=р— минимальное сечение, т. е. k-e минимальное сечение со- стоит из минимальной совокупности подсистем Nk, одно- временный отказ которых влечет за собой отказ системы независимо от состояния остальных подсистем. Харак- терной особенностью минимального сечения является то, что восстановление хотя бы одной подсистемы в мини- мальном сечении (если остальные подсистемы работоспо- собны) влечет за собой восстановление системы. 2* 35
Пример установления минимальных сечений. Для графа системы на рис. 2.1 можно указать следующие минимальные сечения: 15, 136. 1347, 5342, 246, 27. По методу минимальных путей и сечёййй можно по- лучить только оценки рн и рв вероятности безотказной работы системы соответственно снизу и сверху. Вероят- ность безо!казной работы системы рс оценивается тогда по двойному нерабенству: Рн < Рс < Рв- (2.7) Вероятность рп выражается как вероятность безотказ- ной работы вспомогательной системы, составленной из Вероятность рв выражается как вероятность безот- казной работы вспомогательной системы, составленной из параллельно включенных групп подсистем, соответ- ствующих всем минимальным путям системы. Каждая группа состоит из последовательно включенных подси- стем соответствующего минимального пути. Как следует из сказанного, метод минимальных пу- тей и минимальных сечений позволяет свести анализ лю- бых систем к анализу систем с последовательно-парал- лельной и параллельно-последовательной структурой и поэтому может быть использован для анализа весьма сложных систем при умеренной сложности получаемых формул. Недостатком метода является то, что решение получается приближенное, в виде оценок снизу и сверху. последовательно включен- ных групп подсистем, соот- ветствующих всем мини- мальным сечениям системы. Каждая группа состоит из параллельно включенных подсистем соответствующе- го минимального сечения. Рис. 5.4. Структура ВС Рис. 2.5. Граф надежности ВС 36
Пример использования метода минимальных путей и минималь- ных сечений. Рассмотрим ВС, состоящую из устройств памяти У. и У2. процессоров П7 и Пь и устройств сопряжения С3—Се (рис 2.4). Необходимо оценить вероятность безотказной работы системы. Допустим, что условием работоспособности системы является нали- чие хотя бы одного работоспособного устройства памяти, хотя бы одного работоспособного процессора и связи между ними через устройство сопряжения; отказы подсистем являются ^отказами типа отключения, т. е. на- пример, отказ устройства памяти У\ не препятствует работе осталь- ной части системы; Рис. 2.6. Вспомогательный граф • надежности для расчета нижней оценки вероятности безотказной работы ВС отказы подсистем — независимые случайные события. Изобразим систему (рис. 2.4) в виде графа (рис. 2.5). .Опреде- лим минимальные сечения: 12, 78, 145, 236, 348, 567, 1468, 2467, 3456 и минимальные пути: 137, 168, 247, 258, 13458, 14567, 23468, 23567. Граф вспомогательной системы для определения рн изображен на рис. 2.6. Пусть вероятности отказа двух устройств памяти qy, четырех устройств сопряжения qc и двух процессоров qn равны между со- бой. Тогда Н = (I -Я1) (1-й) (1 -ЧЫ(I -Я%ТX Х(1(l-fj). (2.8) Граф вспомогательной системы для определения рв изображен на рис. 2.7. Обозначим вероятности безотказной работы устройств памяти через ру=1—qy, устройств сопряжения — через рс = 1—^с, процес- соров— через рп=1—<7п. Тогда рв= 1 - [1 -РуРсРп]4[1 - РуРсРп]*- (2.9) Пусть ру=рс=Рп=0,8, тогда рн=0,885 и рв=0,9884, что дает представление о максимальной погрешности решения. Метод статистического моделирования [7]. Данный метод может быть использован для решения различных задач теории надежности. Идея метода заключается в генерировании логических переменных хг с заданной ве- роятностью pi возникновения единицы, которые падстав- 37
Рис. 2.7. Вспомогатель- ный граф надежности для расчета верхней оценки вероятности без- отказной работы ВС ляются в логическую структурную функцию моделируе- мой системы в произвольной форме и затем вычисляется результат. При этом значение pi выбирается равным ве- роятности безотказной работы /-й подсистемы. Процесс вычисления повторяется N0 раз с новыми, независимыми случайными значениями аргументов лс/ (при этом под- считывается количество N(t) единичных значений логиче- ской структурной функции). Отношение N(t)/N0 является статистической оценкой Pc(t) вероятности безотказной рабо- ты системы (1.2). Генерирование случайных логических переменных xi с за- данной вероятностью появле- ния единицы pi осуществляет- ся на основании равномерно распределенных в интервале (0,1) случайных величин |, по- лучаемых с помощью стан- дартных программ, входящих в математическое обеспечение всех современных ВМ. Генери- рование значений xi выполняется по формуле 10, если Ь>Р& 1, если g <pt. Поскольку случайные события, моделируемые через значения xit должны быть независимыми, генерирование nN0 случайных логических переменных требует nNo- кратного генерирования случайной величины |. В последнее время были опубликованы работы [31], посвященные ускорению статистических испытаний за счет того, что одна равномерно распределенная случай- ная величина | служит для генерирования нескольких случайных логических переменных xi. Это становится возможным потому, что отказы подсистем моделируемой системы являются редкими случайными событиями, т. е. вероятность отказа qt=l—р/<1. На этом основании для Л-го испытания (k=l ...No) значения xi определяют- ся по формуле J0, если (k - 1) qt < < kqfi остальных ^случаях. (2.10) (0, е (2.11) 38
По (2.11) можно генерировать ряд значений xi — тем больше, чем меньше значения Если произведение kqi>\, вычисления по (2.Ц) прекращаются и генериру- ется новое случайное число на основании которого по (2.11), заменяя lik на &*+ь определяется новая серия логических переменных xt. В пределе при qr+Q метод позволяет генерировать п случайных величин вместо nNo при обычном, неускоренном моделировании. При этом, естественно, моделируются не независимые, а не- совместные от испытания к испытанию случайные собы- тия, т. е. допускается, что в серии испытаний каждая подсистема откажет не более одного раза. Доказано, что оценка P(t) (1.2) в таком случае не- смещенная, а ее дисперсия — не больше, чем в случае генерирования независимых событий. Из сравнения рассмотренных выше методов можно сделать вывод, что метод минимальных путей и мини- мальных сечений предпочтителен, * когда допускается приближенная оценка, но при этом необходимо предста- вить результаты в виде аналитического выражения. В остальных случаях рекомендуется пользоваться мето- дом статистического моделирования. § 2.5. ПРИМЕНЕНИЕ СЛОЖНЫХ СТРУКТУР РЕЗЕРВИРОВАНИЯ В вычислительных устройствах находят применение раз- личные структуры резервирования, которые следует от- нести к сложным. Они не всегда могут быть изображены в виде графа надежности, но всегда могут быть описаны в терминах множеств или в терминах логических струк- турных функций. Ниже рассматриваются модели надеж- ности систем, где резервирование осуществляется либо методом избыточного кодирования с обнаружением и ис- правлением ошибок [23], либо при помощи логики с пе- реплетением [3, 24], либо при помощи мажоритарного резервирования. Метод избыточного кодирования с обнаружением и исправлением ошибок. Общая структура системы, в ко- торой надежность обеспечивается данным методом, включает в себя кодирующее устройство на входе и де- кодирующее устройство на выходе. Если информация в устройстве, надежность которого необходимо повышать, искажается, то при известных ис- 39
кажениях она может быть восстановлена декодирующим устройством. Эффективные коды для исправления ошибок разра- ботаны только для случая, когда информация не преоб- разуется. Поэтому этот метод применим в первую оче- редь для повышения надежности тех устройств в ВС, ко- торые не преобразуют информацию, т. е. устройств пере- дачи и хранения информации. Вероятность безотказной работы рк системы выражается как d Pb = РкуРлу S С1пРп'1 (1 - />)>, /-0 где рку, Рду — соответственно вероятность безотказной работы кодирующего и декодирующего устройств; d — максимальное число ошибок в двоичном кодовом слове, которые еще могут быть исправлены декодирующим уст- ройством; р — вероятность отсутствия ошибки в элемен- те кодового слова; п — общее число элементов кодового слова. Последняя формула справедлива только при допуще- нии, что ошибки в элементах кодового слова — незави- симые случайные события (см. § 7.3). Логика с переплетением. Логика с переплетением представляется в виде избыточной логической схемы, где ошибки в одном слое корректируются в этом же или в следующем слое логических элементов. Наиболее часто встречается учетверенная логика, способная исправить однократные ошибки и часть ошибок более высокой кратности. Учетверенная логика строится в виде четы- режды дублированных логических схем, где соединения из одной четверки элементов или входов поступают не в соответствующие им элементы из следующей четверки, а разветвляются в два элемента следующей четверки. Номера элементов следующей четверки, куда необходи- мо передать сигналы из каждого элемента предыдущей четверки, чередуются по определенным правилам [3, 24], причем важно, чтобы эти правила чередовались при пе- реходе от одних элементов к следующим в порядке про- хождения сигналов элементами. Пример логической схемы с переплетением. На рис. 2.8 изобра- жена исходная логическая схема (рис. 2.8, а) и ее эквивалент в ви- де логики с переплетением (рис. 2.8, б). Таблички внизу схем пока- зывают, какие сигналы из четверки поступающих сигналов (левая колонка) необходимо передавать на входы каких схем из следую- щей четверки элементов (две правые колонки). Входы на схему и 40
выходы из схемы четырежды дублированы. Если на выходе нужен один сигнал, то необходимо предусмотреть на выходе мажоритар- ный орган типа *три из четырех». Вероятность безотказной работы системы с избыточной логикой данного типа можно оценивать по следующему приближенному ра- венству: Рл « где d — максимальное число ошибок, наверняка исправляемых дан- ной схемой; щ — количество логических элементов в у'-м слое; р — вероятность безотказной работы логического элемента; N — число слоев логической схемы. а) 5Л *1 *2 *5 ад z :::eF- г из иг 2 гл 2 М 3' Ъ* 3 U 2 •и 1* А 3,4 'Л 2,3 ММ Рис. 2.8. Логическая схема (а) и ее эквивалент- ная схема с переплетением {б) Число d определяется из выражения <f = entO/^-l), где К —коэффициент избыточности (кратность резервирования) ло- гической схемы с переплетениями; ent — оператор, означающий опе- рацию выделения целой части числа. 41
Мажоритарное резервирование. Простейшая структу- ра устройства преобразования информации с мажори- тарным органом изображена на рис. 2.9, где 1, 2,...,я— одинаковые устройства преобразования информации, ра- ботающие параллельно. Если из-за ошибок в работе устройств наблюдается расхождение между выходами устройств, то мажоритарный орган М выдает тот вари- ант информации, который наблю- xjx/jjy, дается на большинстве из выхо- ~Ч ГП дов преобразователя X/Y. Веро- ятность безотказной работы сис- темы определяется тогда по фор- муле л-; 2 М л-1 Р* - Рим 2 С1прп"1Х\ - />)'• (2.12) /-о Рис. 2.9. Схема устрой-^где рыж, р — соответственно веро- ства преобразования ин-ьятности безотказной работы ма- формации с n-кратным ЖОритарного органа и канала об- КЕЕ'™ РеЗСрВИР работки информации; я-нечет- ное число. Для троированной системы (я=3) РмЗ = />*ж(3/>2--2р2). Для п=5 Pus — Риж (ЮрЗ — 15/И + 6р5). Однако приведенная схема не позволяет достичь ве- роятностей безотказной работы системы выше, чем ве- роятность безотказной работы мажоритарного органа рМж. Этот недостаток устранен в мультиплексной схеме, где мажоритарные органы так же резервируются (рис. 2.10), при этом первоначальный канал обработки информации разбивается на последовательные участки (слои). При этом идентичные преобразователи х/у 11, 12 и 13 обра- зуют первый слой, преобразователи 21, 22 и 23 — второй, а 31, 32, 33 — третий. Преобразователи в слоях подобра- ны так, чтобы они совместно осуществляли необходимое преобразование. Исправление ошибки, связанной с неисправностью отдельного мажоритарного органа, происходит не сразу, а через слой резервируемых подсистем. 42
Вероятность безотказной работы мультиплексной схемы L/-о где N— число слоев схемы; р — вероятность безотказной работы схемы в пределах одного слоя. В последнее время встречаются системы с голосова- нием и с реконфигурацией, где после отказа одного уст- ройства из трех система переходит на работу с одним устройством из оставшихся двух. Вероятность безотказ- Рис. 2.10. Мультиплексная схема устройства пре- образования информации с мажоритарными ор- ганами ной работы такой системы выражается по следующей формуле: Рмп (О = Р*ж (0 (|е"х/ - е-зх/), (2.13) где Рмж (t) — вероятность безотказной работы мажори- тарного органа; К — интенсивность отказов одного ка- нала. Формула (2.13) справедлива при экспоненциальной модели надежности каналов и при пренебрежении нена- дежностью аппаратуры для переключения. Можно пока- зать, ЧТО Pim(t) ^Рмз(0 ДЛЯ ЛЮбыХ t. Надежность сетей ЭВМ. Одними из важных объектов со сложной структурой надежности являются сети ЭВМ. Граф надежности сети ЭВМ соответствует полностью конфигурации сети, отказу линии связи соответствует обрыв дуги, изображающей эту линию, а отказу ЭВМ — обрыв всех дуг, инцидентных вершине, изображающей отказавшую ЭВМ. В настоящее время большие сети ЭВМ 43
объединяют сотни ЭВМ (вычислительных центров), от- дельные линии связи могут иметь межконтинентальную протяженность. Под надежностью сети ЭВМ чаще всего понимается сохранение ее связности, а под отказом сети ЭВМ — рас- падание ее на изолированные части. Надежность сети оценивается через вероятность сохранения связи между отдельной парой ЭВМ или между всеми ЭВМ сети. Для расчета надежности сети может быть применен метод ми- нимальных путей и сечений, а также метод статистиче- ского моделирования. Контрольные вопросы и задачи 1. Охарактеризуйте преимущества и недостатки резервирования как способа повышения надежности ВС. 2. Выведите формулы для оценки среднего времени безотказной работы, интенсивности отказов резервированной ВС в случае, когда основная и резервная подсистемы описываются моделью Вейбулла. 3. Постройте зависимости вероятности безотказной работы сис- темы в случае нагруженного и ненагруженного резерва, если интен- сивность отказов подсистемы Л= 10~3 1/ч, а л==2; 3; 4; 5. 4. Оцените надежность ВС методом минимальных путей и мини- нальных сечений, если граф надежности системы имеет вид где а и б — полюса графа. 5. Постройте функции вероятности безотказной работы; интен- сивности отказов для системы со скользящим резервом при т=2; 3; 4; 5 и п=3; 4; 5; 6. 6. Составьте логическую структурную функцию для системы со скользящим резервом по данным п. 5. 7. Разработайте схему сложения по модулю 2 на базе учетве- ренной логики. ГЛАВА 3 РАСЧЕТ НАДЕЖНОСТИ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ § 3.1. МЕТОДЫ РАСЧЕТА НАДЕЖНОСТИ ВС Целью расчета надежности ВС и их подсистем на этапе проектирования является: сравнение вариантов при вы- боре технического решения; получение приближенных 44
оценок показателей надежности разрабатываемой ВС или подеисте&ы. При расчетах необходимо учитывать, что применяе- мый метод должен соответствовать поставленной цели и не содержать лишних вычислений, не оправданных с точки зрения погрешностей исходных данных. Расчеты для оценки уровней надежности объектов выполняются по приближенным методам, так как исход- ные данные о надежности, как правило, весьма прибли- женные. В то же время сравнительные расчеты надеж- ности целесообразно выполнить по точным методам, так как грубые оценки могут не улаэлив^ть разнццу в на- дежности тех или других технических решений. Однако методы точного расчета для восстанавливаемых резерви- рованных систем весьма громоздкие. В то же время оче* видно, что если надежность, допустим, первого вариэцта технического решения больше надежности второго вари- анта в условиях, когда восстановление не производится, то, как правило, первый вариант предпочтителен и в ус- ловиях восстановления. Следовательно, в некоторых слу- чаях для предварительного выбора варианта сложной резервированной системы целесообразно проводить пред- варительные сравнительные расчеты по более простой методике расчета невосстанавливаемых систем, в то вре- мя как проектируемая систему будет работать в условиях восстановления. Приведем типовые постановки задач расчета надеж^ ности ВС и их подсистем. Расчет надежности конструктивных единиц нерезер- вированной аппаратуры. Расчет производится суммиро? ванием интенсивностей отказов (1.23), (1.24). Для определения интенсивности отказов типрвргр элемента замены (ТЭЗа) суммируются интенсивности отказов входящих в него ИС, пдек, разъемов. Для определения надежности стрйкц суммируются интенсивности отказов входящих в нее панелей и других компонентор. Интенсивность отказов ЭВМ определяется суммиро- ванием интенсивностей отказов входящих в ее состав стоек и других составляющих конструкции. Если оценивается надежность не только аппаратуры, но всей ВС с учетом надежности программного обеспе- чения (ПО), необходимо к интенсивности отказов аппа- ратуры прибавлять также и интенсивность отказов ПО, определяемую по (6.16). * 45
В случае, когда нерезервированная ЭВМ или ВС ра- ботает в течение заданного времени без восстановлений, вероятность безотказной работы аппаратуры за задан- ное время определяется по (1.13), значение интенсивно- сти отказов находится по (1.23) и (1.24). Расчет надежности резервированных систем. В слу- чае резервированных систем разделение аппаратуры на основную и резервную не всегда совпадает с конструк- тивным разделением системы. Поэтому необходимо сна- чала определить интенсивности отказов всех резервируе- мых и резервирующих подсистем, переходить по (1.13) к вероятностям безотказной работы этих подсистем, а далее пользоваться формулами (2.1), (2.2) в случае по- следовательно-параллельных структур резервирования, формулой (2.6) в случае скользящего резервирования или методом минимальных путей и минимальных сечений в случае систем со сложной структурой. Если резервы не нагружены, применяется формула (2.5) без перехода к вероятностям безотказной работы отдельных резерви- рованных и резервирующих подсистем. Расчет надежности восстанавливаемых систем. В слу- чае, когда восстанавливаемая система не резервирована и интенсивности отказов постоянные, а временем восста- новления можно пренебрегать, достаточно рассчитать интенсивность ее отказов, поскольку в этих условиях па- раметр потока отказов равен интенсивности отказов си- стемы (см. пример на с. 49). Если система резервированная, то ее интенсивность отказов, как правило, не постоянная и параметр потока отказов находится в общем случае по (3.4). В случае, когда временем восстановления системы нельзя пренебрегать, необходимо прежде всего оценить время восстановления аппаратуры. Последнее определя- ется временем обнаружения отказа системами контроля (см. гл. 4), временем локализации отказа системами диагностирования (см. гл. 5) и временем ремонта, кото- рый заключается в замене отказавшего ТЭЗа. Время восстановления может колебаться в широких пределах в зависимости от типа аппаратуры и организации обслу- живания. Во многих случаях время восстановления оце- нивается в среднем величиной в 1 ч. Время восстановления аппаратуры может считаться временем восстановления системы только в случае, когда речь идет о решении на ВС небольших разрозненных за- дач, которые в случае отказа аппаратуры потеряются и 46
после ее восстановления просто будут решены повторно. Если же ВС работает над решением больших или взаимно связанных задач или если в результате отказа ЗУ были разрушены какие-либо важные массивы дан- ных или тексты программ, то к времени восстановления аппаратуры прибавляется еще время восстановления ин- формации. Время восстановления информации зависит от харак- тера информации и организации работы ВС. Если, на- пример, была разрушена часть ОС, записанной в ОЗУ, из-за отказа последнего, то эту информацию легко вос- становить по записям на НМЛ или на НМД. Однако если разрушенные данные не были дублиро- ваны, то их восстановление может занимать значитель- ное время. Если встречаются отказы ПО, то в зависимости от ор- ганизации работы ВС после отказа [проявления скрытой ошибки (см. гл. 6)] программа либо будет, либо не бу- дет скорректирована. В первом случае работа системы восстанавливается сразу при продолжении расчетов с другими исходными данными и ошибка проявляется в дальнейшем лишь при поступлении определенной комби- нации исходных данных. Интенсивность (и параметр по- тока) отказов программы при этом остается неизмен- ной. Если же после отказа программы решено исправ- лять проявившуюся скрытую ошибку в программе, то корректирование текста программы вместе с необходи- мой отладкой и проверкой может занимать значительное время. С учетом всех особенностей расчета надежности восстанавливае- мых систем ниже особое внимание будет уделяться упрощенному методу расчета надежности ВС (см. § 3.3). § 3.2. НАДЕЖНОСТЬ НЕРЕЗЕРВИРОВАННЫХ ВОССТАНАВЛИВАЕМЫХ ВС При оценке надежности восстанавливаемых ВС большое значение имеет время восстановления. Вопрос о времени восстановления связан с процессами восста- новления, которые будут подробно рассмотрены в последующих главах. Поэтому в настоящей главе принимается, что время вос- становления и его распределение заданы. Надежность восстанавливаемых систем можно оце- нить, рассматривая последовательность отказов — вос- становлений. В простейшем случае, когда показателем 47
надежности выбран параметр потока отказов, временем восстановления пренебрегают, так как рбычно время восстановления на несколько порядков ^еньше времени безотказной работы. При пренебрежении временем восстановления про- цесс представляется как последовательность однородных случайных событий — отказов — восстановлений. Пред- ставляет интерес выявление связи между функцией плот- ности распределения времени до отказа /(/) и парамет- ром потока отказов <о (t). Параметр потока отказов <о (/) выражает среднее ко- личество отказов одного объекта (ЭВМ, устройства, си- стемы) в единицу времени в условиях восстановления. р Функция плотности распределения времени до отка* за f(t) выражает также среднее количество отказов в единицу времени, однако в условиях, когда восстановле- ние не производится. Следовательно, функция со(/) мо- жет быть выражена бесконечным рядом • (0 - / (О + / (0* fx (О + / (*)* Л (О* Л (0 + .... (3.1) где знак * обозначает операцию композиции двух функ- ций плотности, т. е. операцию, заключающуюся в на- хождении функции плотности распределения суммы двух независимых случайных величин по заданным функциям плотйостёй распределения последних; U(t)—плотность распределения времени от 1-го восстановления до сле- дующего отказа. Таким образом, первое слагаемое в (3.1)—плотность распределения времени до первого отказа, второе слагаемое — плотность распределения времени до второго отказа и т. д. Операцию компо- зиции удобно осуществить в области изображений функ- ций плотностей по Лапласу [17], так как изображение функции плотности суммы случайных величин равно произведению изображений плотностей слагаемых. Сле- довательно, со* (5) = /♦ (s) + f* (s) fl(s) + /* (s) f\ (s) fl(s) + ..., (3.2) где * в верхнем индексе означает изображение соответ- ствующей функции по Лапласу как функции от операто- ра 5. В большинстве случаев может быть принято допуще- ние о том, что восстановление аппаратуры после отказа полное, хотя бы потому, что при восстановлении, как 48
правило, заменяется некоторая часть аппаратуры (ТЭЗ) совершенно ик^нтичной, но исправной частью. Полное восстановление, однако, означает, что /1(0 = Л(0я...*ЛЮв/йш1-1(2 Аналогичное соотношение справедливо и для изобра- жений функций. Тогда по (3.2) + (s) = /* (s) + /*■ ($) + /*в (s) +... == = f*(s) [1 + /* (*) + is) (3.3) Известно, что |/*(s)|<l, тогда выражение в квад- ратных скобках может быть представлено в замкнутой г—. Y//j\ —Yyy////Xj\ ■hi 4'i , Рис. 3.1. Временная диаграмма работы объек- та с восстановлением форме. Применив формулу суммы бесконечно убываю- щей геометрической прогрессии, получим (*)-/• (*)/[!-/•(«)]. (34) В случае, когда известен параметр потока отказов, например, из эксперимента над аппаратурой в режиме работы с восстановлениями, и требуется определить функцию плотности распределения времени до отказа, может быть применена обратная зависимость /♦ (5) = <*» (*)/[1 + «♦ («)]. <3.5) Пример определения параметра потока отказов со (/). Пусть f(/)r=Xe""x. По (3.4), учитывая, что /*(«)= Я/(X+s), найдем „w, ™ = Х'<Х + '> =_J J_ !-/*(») l-X/(X + s) X-f-s-X s' откуда <d(/)=X,. В случае, когда потери времени при восстановлении имеют существенное значение при оценке качества про- 49
цесса эксплуатации аппаратуры, как показатель надеж- ности используется коэффициент готовности. Процесс эксплуатации объекта в этом случае представляет собой поток чередующихся событий — отказов и восстановле- ний. На рис. 3.1 изображен поток этих событий, причем т0; и тв/ означают соответственно интервалы времени от (/—1)-го восстановления до /-го отказа и от /-го отказа до /-го восстановления. Через t0i и Ui обозначены соот- ветственно моменты времени /-го отказа и /-го восстанов- ления, считая с начала эксплуатации объекта. Тогда по определению коэффициент готовности Кг<0-2 Вер</.,<*< Wi>)» /-о откуда при допущении о том, что восстановление полное, т. е. что надежностные свойства объекта после восста- новления не изменяются, может быть получено оператор- ное выражение 1 1-1б<*> (обозначение Вер означает вероятность выполнения ус- ловия, записанного в скобках). Пример определения коэффициента готовности Kr(t). Пусть име- ется объект, для которого 9o(0=^e""w и фвМ^Цв"" • Тогда y*p(s)=%J(s+%) и Ф*в(5)=ц/(«+ц)» а по (3-6) изображение коэф- фициента готовности vV*Y- J- l-X/(s + X) s + t* M) s 1-й/((5 4-Ю(5 + Х)) s2-hsfi + sX* Оригинал этого выражения Функция Kr (t) изображена на рис. 3.2. Если считать, что сред- нее время восстановления Гв=1 ч, а среднее время до отказа Г0= *=Ы03 ч, то обратные величины этих показателей |х= 1 1/ч и Х=10"-3 1/ч, т. е. Тогда постоянная времени экспоненты во втором слагаемом выражения (3.7) Г=1/(ц+Я)«1Д=ГВ, что гово- рит о том, что переходный процесс длится не более чем 3-4 ч и далее можно пользоваться установившимся значением 60 (3-8)
§ 3.3. НАДЕЖНОСТЬ РЕЗЕРВИРОВАННЫХ ВОССТАНАВЛИВАЕМЫХ ВС Исследование и оценка надежности резервированных и восстанавливаемых ВС при помощи методов, изложен- ных выше, наталкивается на трудности, связанные с тем, что процессы отказов — восстановлений в резервирую- щих друг друга подсистемах необходимо рассматривать совместно, оценивая возможность совпадения отказовых состояний подсистем. На рис. 3.3 изображен процесс от-, 1 я г 1Ь- 2Ь t ~e2j )ftWA ~ -а—-г- Рис. 3.2. График зависимо- сти коэффициента готовно- сти от времени Рис. 3.3. Временная диаг- рамма работы резервирован- ной ВС с восстановлением казов — восстановлений подсистемы 1 с одной резервной подсистемой 2, а также системы 3. Наиболее подходящи- ми для исследования и оценки надежности таких систем являются методы, основанные на теории марковских про- цессов [5, 6, 8, 19]. Марковские процессы. Марковские процессы позво- ляют описывать последовательности отказов — восста- новлений в системах, описываемых при помощи графа состояний. Граф состояний — направленный граф, вершины ко- торого изображают отдельные состояния системы, а ду- ги— переходы из одного состояния в другое. В задачах теории надежности каждой комбинации отказовых и ра- ботоспособных состояний подсистем соответствует одно состояние системы. Число состояний системы п=2к, где k — количество подсистем. Чтобы уменьшить число рас- сматриваемых состояний, в случае однотипных подси- стем, работающих в одинаковых условиях (в однородной системе), состояния с одинаковым количеством отказав- ших подсистем объединяются. Тогда общее число состоя- ний системы /iiss&-f-l, определяемое как k отказовых состояний, и еще одно состояние, когда отказов нет. 51
Наиболее часто для расчета надежности применяет- ся метод марковских цепей с непрерывным временем, ос- нованный на следующей системе дифференциальных уравнений: do -£-Р(ОА. dt [ dt dt сивностей переходов dt у (3.9) а матрица интен- Л = я -2 х" /-2 Х21 Х12 -2Х21 /-1 1ф2 ХЛ2 я-1 2 хл/ /-1 (3.10) Здесь hi — интенсивность перехода системы из 1-го состояния в /-е; pi— вероятность того, что система нахо- дится в 1-М состоянии. Метод марковских цепей достаточно полно изложен в учебной литературе [19]. На практике часто встречается необходимость оценки надежности достаточно сложных резервированных и вос- станавливаемых систем. В этом случае метод марковских цепей приведет к сложным решениям из-за большого числа состояний системы. Приближенный метод расчета надежности ВС. Рас- смотрим простой приближенный метод расчета устано- вившихся значений показателей надежности восстанав- ливаемых ВС. Метод основан на следующих допуще- ниях: 1. Время восстановления намного меньше времени безотказной работы. 2. Интенсивности отказов и интенсивности восстанов- лений — постоянные величины. 3. Отказы и восстановления отдельных подсистем — независимые случайные события. Для последовательного включения подсистем имеются следующие приближен- ные зависимости: 52
It (3.11) П (3.12) H = X/(I-Kr). (3.13) Для параллельного включения m (3.14) m /сг=1~ П (i — ATri); (3.15) X = fi(l^/Cp). (3.16) В (3.11) —(3.16) приняты следующие обозначения: X — интенсивность отказов последовательной (парал- лельной) группы из п(т) подсистем; Кг — коэффициент готовности последовательной (параллельной) группы из п(т) подсистем; |а — интенсивность восстановлений по- следовательной (параллельной) группы из п(т) подси- стем. Те же переменные с индексами i обозначают соот- ветствующие показатели отдельных подсистем. Если в системе применяется скользящее резервирова- ние подсистем, то вместо (3.15) применяется формула где г—минимально необходимое по требованиям произ- водительности число работоспособных подсистем; КТ.и — коэффициент готовности подсистемы (при скользящем резервировании все подсистемы однотипные) Г" Интенсивность восстановления в случае скользящего резервирования определяется вместо (3.14) по формуле р. = (т — г-Ь l)f*„, (3.18) где |хп—интенсивность восстановления подсистемы. В результате сделанных допущений интенсивность от- казов X численно равна параметру потока отказов со. Отметим, что в случае одной ремонтной бригады (ре- монтного места) вместо (3.14) следует применять фор- мулу [A=max|Ai, а вместо (3.18) —формулу р,=|лп. m Кр = 2 г.п О — tfr.n)1 (3.17)
Пример приближенного расчета надежности ВС. Рассмотрим ВС, состоящую из подсистем, данные о которых приведены в табл. 3.1. Таблица 3.1. Интенсивность Наименование к я са отказов восста- Коэффициент , готовности подсистемы Значе: m(r) новления 1/ч Центральный процессор (ЦП) Модуль ОЗУ 1 152-Ю-6 1 1М,52.10-« 4(3) 300-ю-6 0,01 1—3. ю-2 Устройство памяти на 3(2) 250-Ю-6 0,025 1—ю-2 дисках (МД) Устройство памяти на 8(6) 350-Ю-6 0,0035 1—10—1 магнитных лентах (МЛ) Печатающее устройст- 2(1) 420.10-8 0,021 1—2.10-2 во (ПУ) Устройство ввода с 2(1) 250-Ю-6 0,025 1-Ю-2 перфоленты (УВ) Примечание. В скобках даны значения г. Интенсивности отказов, приведенные в табл. 3.1, получены из табл. 1.3, кроме интенсивности отказов ЦП, которая рассчитана суммированием интенсивностей отказов элементов, входящих в ЦП (табл. 3.2). Таблица 3.2 Интенсивность отказов Наименование Количество элемента элемента всех элементов (1/ч) • 10-в данного типа (1/ч) • 10-в ИС 1200 0,1 120 Пайки 20 000 0,0001 2,0 Разъемы 10 3,0 30 2 152-10-в Интенсивности восстановления ji в табл. 3.1 рассчитаны по фор- муле ja= 1//в» где U — среднее время восстановления. Среднее вре- мя восстановления ОЗУ и различных электромеханических устройств оценено значительно выше, чем среднее время восстановления про- цессора, так как предполагается, что ремонт этих устройств осуще- 54
ствляется в специализированных мастерских, в то время как ремонт процессора заключается в замене ТЭЗа. Необходимо учитывать, что времена восстановления зависят от организации производства, ква- лификации и количества ремонтного персонала, а также от имею- щегося оборудования и запасных частей. Поэтому данные о времени востановления можно точнее всего установить по статистике, полу- ченной для данного или аналогичных производств. Далее расчет надежности ВС сводится к составлению структур- ной схемы расчета надежности ВС (или графа надежности) и его постепенном упрощении при помощи формул (3.11)...(3.18) до полу- чения показателей X, \i и Кг для системы. ЦП ОЗУ MD МЛ ПУ УВ S3- Рис. 3.4. Схема расчета надежности ВС Схема расчета надежности ВС изображена на рис. 3.4. Счита- ется, что для решения задач, поставленных перед ВС, достаточно иметь г устройств (в скобках в табл. ЗЛ). Следовательно, ОЗУ, МД и МЛ резервированы по способу скользящего резервирования, ПУ и УВ резервированы одним резервом. Далее необходимо рассчитать показатели р,, Кг и X для отдельных резервных групп. Для ОЗУ (по (3.18)) fi = (4-3+1)0,01 =0,02 1/ч, по (3.17) . Кт = 4 (1 - 3-10-2)3(3.10~2) + (1-3-10-2)4 « 0,9948, по (3.16) Х= 114-10-6 Для остальных резервных групп расчеты проводятся аналогичным образом, их результаты приведены в табл. 3.3. Далее определяются системные показатели: . Хс = (152 + 104+ 530+400+17+ 5). 10-6 = « 1,208-10-3 1/ч до (3.11) ); 56
/СР.С в 1 - (0,000152 + 0.0052 + 0,0106 + 0,0381 + 0,0004 + + 0,0001) «0,945 по (3.12); 1,208.10-3 Ес= 0>055 «21,96-Ю-з 1/ч, по (3.13). Другими словами, отказы системы следуют в среднем через каж- дые 828 ч работы и длительность восстановления в среднем состав- ляет 45,5 ч. Из табл. 3.3 видно, что такие невысокие показатели обусловлены в первую очередь группами устройств МД и МЛ, ха- рактеризуемыми самыми высокими интенсивностями отказов. Поэто- му рассматривается вариант системы, где имеется четыре устройства МД вместо трех и девять устройств МЛ вместо восьми. В таком случае Таблица 3.3 Интенсивность Наименование Коэффициент резервной группы восстановления отказов готовности 1/ч-Ю—• ОЗУ 0,020 104 0,9948 МД 0,050 530 0,9894 МЛ 0,0105 400 0,9619 ПУ 0,042 17 0,9996 УВ 0,050 5 0,9999 для группы устройств 'МД ^гМД = °»993(Ю.0,012 + 5.0,01.0,99 + 0,992) = 0,99941 по (3.17); **гмд = 0»075 !/4 по (3.18); W = 44,2.10-6 1/ч по (3.16); для группы устройств МЛ * г мл = 0,306 (84-0,18 + 36-0,12.0,9 + 9.0,1 -0,92 + 0,93) = 0,9917; «\.мл = 0»°14 1/4 ЬгМЛ^Иб.З-Ю-б 1/ч. В последнем случае суммарная интенсивность отказов системы по (3.11) К = (152 + 104 + 44,2 + 116,2 + 17 + 5). 10-6 = 438,4-10-* 1 /ч. Коэффициент готовности по (3.12) /СР.с = 1 - (152 + 5200 + 590 + 8300 + 400 + 100). 10-6 «0,9853. Интенсивность восстановления системы по (3.13) 1*с*= 0,02982 1/ч. 66
Следовательно, среднее время безотказной работы последнего варианта системы составляет приблизительно 2300 ч, а средняя дли- тельность процесса восстановления — около 34 ч, что можно считать удовлетворительным по сравнению с первоначальным вариантом. Контрольные вопросы и задачи 1. Составьте выражение для определения параметра потока от- казов; коэффициента готовности для объекта, описываемого моделью Вейбулла. 2. Поясните разницу между графом надежности и грдфом сос- тояний системы. 3. Составьте приближенные выражения для расчета надежности ВС, состоящей из двух рабочих и одного резервного процессора и трех нерезервированных периферийных устройств. 4. Составьте граф надежности для системы, описанной в п. 3. 5. Составьте матрицу интенсивностей переходов для системы, описанной в п. 3. < 6. Составьте систему дифференциальных уравнений для расчета надежности системы, описанной в п. 3. ГЛАВА 4 КОНТРОЛЬ В ЭВМ § 4.1. ОСНОВНЫЕ ПОЛОЖЕНИЯ Под контролем в ЭВМ понимаются процессы, обеспечи- вающие обнаружение ошибок в работе ЭВМ, вызванных отказом или сбоем аппаратуры, ошибкой оператора, ошибкой в программе или другими причинами. Ниже рассматриваются в основном методы контроля, предназ- наченные для обнаружения ошибок, вызванных отказами и сбо- ями аппаратуры. Контроль необходим в цифровых, аналоговых и гиб- ридных ВМ. В сочетании с мерами по включению резер- ва, восстановлению отказавшей аппаратуры и (или) кор- ректировке ошибочных программ или данных контроль является одним из самых эффективных средств увеличе- ния надежности и достоверности вычислений (обработки информации) [9,20]. Контроль необходимо организовать так, чтобы по воз- можности контролировались все функции проверяемого объекта. Степень достижения этой цели называют пол- нотой контроля. Количественно полнота контроля оцени- вается отношением, показывающим относительное число элементов схемы, охваченных данным способом конт- роля. 57
В отдельных случаях целесообразнее оценить полно- ту контроля как относительное число отказов, обнару- живаемых данным способом контроля, к общему числу отказов или относительное число функций, проверяемых данным способом контроля, к общему числу выполняе- мых контролируемой схемой функций. По признаку применяемых средств конт- роль в ЭВМ разделяется на аппаратный, осуществляе- мый аппаратными средствами; программный, осущест- вляемый программными средствами; смешанный, осуще- ствляемый совместно программными и аппаратными средствами. Аппаратный контроль отличается большим быстро- действием, но требует дополнительных аппаратных средств. Программный контроль последних не требует, кроме некоторого дополнительного объема памяти для разме- щения программ контроля. Однако он связан с некото- рым расходом дополнительного процессорного времени для выполнения программ контроля. Но программный контроль, как правило, обладает большей полнотой, чем аппаратный контроль, и предполагает, чтобы функциони- ровали основные аппаратные средства для реализации программы контроля. Следовательно, целесообразно со- четать аппаратные и программные средства контроля, что и осуществляется в большинстве современных ЭВМ и систем. По характеру контроль в ЭВМ подразделяется на оперативный и тестовый. Оперативный контроль осуществляется в ходе реше- ния эксплуатационных задач и позволяет в процессе их решения немедленно (задержка может не превышать время выполнения одного такта или нескольких тактов работы ЭВМ) обнаруживать ошибку в ее работе. Опера- тивный контроль в принципе неполный, поскольку вы- полняется на априори случайных, не приспособленных для целей контроля задачах. Тестовый контроль осуществляется в специально от- веденные промежутки времени на основе решения спе- циальных, тестовых задач. Он основан на тестах, обе- спечивающих полный контроль всех элементов объекта (элементов аппаратуры, команд программы) за корот- кое или даже за минимальное время. Недостаток тесто- вого контроля — потеря дополнительного процессорного времени, расходуемого на тесты. Зато при тестовом конт- 58
роле упрощается анализ результатов и обеспечивается полнота контроля, так как тесты могут быть построены так, что все отказы легко обнаруживаются. Обнаружи- вать ошибки в результатах решения эксплуатационных задач не всегда просто. Тестовый контроль непригоден для обнаружения сбоев аппаратуры в процессе ее экс- плуатации, так как к моменту проведения теста имевший место при работе ЭВМ сбой, как правило, спонтанно ис- чезает. Тестовый контроль сбоев имеет смысл только тогда, когда результаты тестирования нужны для оцен- ки частоты сбоев в исследуемой аппаратуре. Рис. 4.1. Схемы организации контроля По способу организации различают контроль прямой, обратный и смешанный. При прямом контроле основной вычислительный процесс О с исходными данными х и результатами у (х и у могут быть скалярами или векторами) сопровождает- ся параллельным вычислительным процессом П (рис. 4.1,а). В случае безошибочной работы системы резуль- таты процессов О и П должны совпадать, что определя- ется устройством сравнения М2. В случае, когда резуль- таты отличаются (или отличаются больше их результи- рующей допустимой погрешности), устройство сравнения выдает сигнал об ошибке Н. Метод позволяет выявлять только сбои и отказы аппаратуры, если процессы О и П осуществляются по одной и той же программе. В случае, когда О и П осуществляются по различным, но функ- ционально эквивалентным программам, прямой конт- роль позволяет, кроме того, выявлять также и ошибки в программах. Основной недостаток прямого контроля — большая трата аппаратных средств. Она может быть уменьшена, 59
если процесс О и П выполняются последовательно на одной и той же аппаратуре, но тогда кроме дополни- тельной потери времени сужаются и возможности конт- роля. В последнем случае контроль будет выявлять толь- ко сбои, а не отказы аппаратуры, поскольку ошибки, вызванные отказом, будут повторяться. Вторая возможность более экономного контроля за- ключается в том, что параллельный процесс П может быть упрощен за счет снижения точности. Если считать, что большинство ошибок приведет к большому отклоне- нию результата процесса О от правильного значения, то высока вероятность того, что это отклонение перекрыва- ет погрешность процессов О и П и ошибка будет обнару- жена по расхождению между результатами О и П боль- шего, чем максимальная суммарная погрешность их ре- зультатов. Для некоторых задач, характеризуемых взаимно од- нозначным соответствием между исходными данными и результатом, эффективнее обратный контроль (рис. 4.1, б). При таком контроле параллельный процесс fli с исходными данными у и результатом х осуществляет об- ратное преобразование результата контролируемого про- цесса О. Сопоставление обратного решения с исходными данными позволяет обнаружить ошибку. Например, если выполняется операция извлечения квадратного корня, то проще осуществлять контроль возведением результата в квадрат и сопоставлением его с исходной величиной, чем проводить повторное извлечение корня. Недостаток обратного контроля, кроме ограниченно- сти класса решаемых задач, и в том, что время, затра- ченное на получение контролируемого решения, даже в случае применения дополнительных аппаратных средств будет не ниже суммарного времени выполнения процес- сов О и Пь В отдельных случаях целесообразной организацией кЬнтроля является смешанный контроль (рис 4.1, в). При смешанном контроле как исходные данные х, так и результаты у основного вычислительного процесса под- вергаются некоторым преобразованиям Пг и Пз, подоб- ранным так, что они в случае безошибочных процессов дают сопоставимые результаты. Например, если выпол- няемое преобразование заключается в вычислении =*3/5, то простейшие контрольные операции заключа- ются в сопоставлении, с одной стороны, величины хг и, с другой стороны, величины {xz)*=y5, где звездочкой 60
обозначается величина, полученная обратным преобра- зованием результата вычислений. Как было указано вы- ше, сопоставление результатов остновного и контрольно- го процессов сводится к проверке их совпадения в пре- делах допустимой погрешности. Дальнейшее развитие этой идеи привело к подразделению множества решений задачи на классы эквивалентности, причем при контроле определяется лишь то, к какому классу должен отно- ситься результат. При таком контроле определение конт- рольного результата в значительной мере упрощается, но при этом контроль становится неполным. По объекту контроля различают контроль ап- паратуры (арифметическое и логическое устройства, функциональные преобразователи, память, управление, ввод — вывод), программного обеспечения и работы опе- ратора. Поскольку все рассмотренные выше виды контроля имеют определенные ограничения, на практике применя- ют их комбинацию. В качестве основного способа оперативного аппарат- ного контроля применяется контроль по модулю (см. § 4.2, 4.3). Однако аппаратный контроль по модулю не- полный, так как позволяет контролировать только коды чисел и символов и то не полностью, а относительно только части ошибок. Полный контроль возможен при дублировании аппаратуры (контроль дублированием). Контроль-осуществляется тогда схемами сравнения на выходе дублированной аппаратуры, которая должна ра« ботать строго синхронно, при совпадающих входных сиг- налах. Всякое нарушение синхронизма воспринимается как ошибка в работе аппаратуры. Недостатком контроля дублированием является большое количество необходи- мой аппаратуры, а также и то, что сравнение сигналов на выходе устройств позволяет обнаруживать ошибку не сразу, а только при появлении ошибочных результатов на выходе. Контроль дублированием применяется иног- да для контроля самых ответственных или трудно прове- ряемых узлов и устройств ЭВМ, например АЛУ. Как правило, в универсальных ЭВМ стремятся применить более экономные, хотя и не полные методы контроля. Среди оперативного аппаратного контроля определен- ное значение имеет контроль кодов, который основан на том, что циркулирующие в ЭВМ коды во многих случаях могут быть разделены на правильные (допустимые) и неправильные. Например, если в ЭВМ коды операции 61
представлены л-разрядным кодом, то это не означает, что все 2п я-разрядных кодовых комбинаций соответству- ют определенным операциям. Не соответствующие ника- кой операции кодовые комбинации могут быть обнаруже- ны при помощи несложных схем как ошибки. Аналогичным образом могут быть обнаружены ошиб- ки в адресах, не соответствующих реально существую- щим или доступным для данной программы адресам. Ес- ли десятичные разряды представлены в виде 4-разряд- Та блица 4.1 п 3 4 5 6 7 8 к 2* < 2« < 2П < 2я < 2л < 2л < 1 8 3 16 4 32 5 64 6 128 7 256 8 2 8 3 16 6 32 10 64 15 128 21 256 28 3 8 1 16 4 32 10 64 20 128 35 256 56 4 8 —— 16 1 32 5 64 15 128 35 256 70 ных двоичных кодов, то кодовые комбинации от 10 до 15 запрещены и их появление зарегистрируется как ошибка. Если выходы дешифратора представить в виде кода, то этот код должен быть унитарным, т. е. только на одном из выходов дешифратора должна появляться единица, на остальных — нули. Появление какой-либо другой кодовой комбинации — тоже признак ошибки. В отдельных случаях в целях обеспечения функции контроля применяются также равновесные кодь1 — коды, где количество единиц не зависит от содержания кода. Естественно, что эти коды менее экономные, так как они позволяют использовать Cnk кодовых комбинаций вмес- то 2Л, где п — количество элементов кода, a k — количе- ство единиц. В табл. 4.1 приведены количества кодовых комбинаций для различных пик. Равновесные коды имеют ограниченное распростране- ние не столько потому, что они менее экономные, но главным образом потому, что арифметические операции над ними сложнее и их необходимо выполнить на осно- вании таблиц сложения и умножения. При контроле кодов большое значение имеет понятие кодового расстояния. Под расстоянием между двумя 62
n-разрядными двоичными кодовыми комбинациями по- нимается число отличающихся по содержанию разрядов в этих кодовых комбинациях. Если расстояние между от- дельными используемыми кодовыми комбинациями не менее двух, то всякая одиночная ошибка в какой-либо кодовой комбинации приводит к неиспользуемой (оши- бочной) кодовой комбинации, поскольку для возникнове- ния другой используемой кодовой комбинации необходи- мо возникновение двух ошибок. Если использовать кодо- вые комбинации с большим расстоянием, возможно об- наружение большего числа ошибок. Подробнее вопрос о кодах с обнаружением и исправлением оши- бок рассматривается в § 7.3. Обнаружение ошибок облегчается тем, что почти всегда имеет место лавинообразное нарастание числа ошибок по мере использования ошибочной кодовой ком- бинации в дальнейших преобразованиях. При росте чис- ла ошибок существует большая вероятность того, что они обнаруживаются каким-либо средством контроля. Если информация передается без преобразования, то ошибки, однажды возникшие, сохраняются и могут быть обнаружены в удобном месте. Например, в ЕС ЭВМ ин- формация проверяется только в основных регистрах про- цессора, но так как основные регистры обмениваются информацией с другими регистрами, то тем самым обна- руживаются ошибки и в остальных регистрах, когда ис- каженная в них информация возвращается в основные регистры. Рассмотренные виды контроля применяются в универ- сальных ВС. В специализированных ВС, выполняющих ограниченное число функциональных программ, широко применяется контроль правильности выполнения про- грамм, называемый программно-логическим контролем: контроль длительности выполнения, последовательности выполнения, метод контрольных функций и контроль гладкости. Контроль длительности выполнения программы ос- нован на том, что для каждой программы заранее из- вестна максимальная длительность выполнения и всякое ее превышение означает, что программа зациклилась, остановилась или выполняется неправильно. Превыше- ние длительности выполнения не обязательно, связано с ошибками в программе, часто причиной может являться искажение адресной информации сбоями. Возможны да- 63
же случаи, когда начнет выполняться одна программа, а потом в результате сбоя выполнение переходит по ошиб- ке к другой программе. Поэтому иногда применяют контроль, последовательности выполнения подпрограмм, сравнивая номера фактически выполняемых подпрог- рамм с требуемыми значениями. Метод контрольных функций осцован на том, что ре- зультаты работы программу должны отвечать опреде- ленным функциональным соотношениям. Например, ре- шения системы дифференциальных уравнений могут быть проверены по критерию удовлетворения контроль- ному уравнению, образуемому в виде суммы уравнений исходной системы. Контроль гладкости основан на том, что если ряд ре- зультатов вычислений представляет собой более или ме- нее гладкую функцию, то всякие резкие отклонения ре- зультата от экстраполированного значения свидетель- ствуют об ошибке. Перечисленные виды контроля правильности выпол- нения программ осуществляются преимущественно про- граммными средствами. Они позволяют обнаруживать ошибки в работе ВС с задержкой, соизмеримой с време- нем выполнения программы или подпрограммы (моду- ля). Совместно с аппаратными программные виды конт- роля помогают выявлять те ошибки, которые не были обнаружены аппаратными средствами. Если же по целе- вому назначению ВС не требуется быстрое выявление ошибок, то достаточно ограничиться программными средствами контроля. Преимуществом программных средств контроля является и то, что они не требуют при- влечения дополнительной аппаратуры. При проектировании систем контроля большое значе- ние имеет распределение средств контроля по элементам аппаратуры или по ходу выполнения программы. По ме- ре возможности эти средства необходимо распределить так, чтобы время обнаружения ошибки не превышало заданной величины независимо от того, где или когда она произошла. § 4.2. КОНТРОЛЬ ПО МОДУЛЮ Самым распространенным контролем в цифровых ЭВМ является контроль по модулю. Он относится к неполно- му контролю, основанному на группировании чисел в классы эквивалентности. Если в случае возникновения 64
ошибки число переходит в другой класс эквивалентности, то такая ошибка может быть обнаружена достаточно простыми средствами. В противоположном случае ошиб- ка не обнаруживается. В один и тот же класс эквива- лентности входят числа, сравнимые по модулю. Пусть некоторое целое неотрицательное число А представлено в виде A = aq + ra9 (4.1) где a, q и га — также целые неотрицательные числа, а га может принимать значения от 0 до q—1. Тогда число q называется модулем, число га=|Л|<7 — остатком А по модулю q. Число а представляет собой целую часть от- ношения A/q, так как Alq = a + ra/q. В случае, когда числа А\ и А2 имеют одинаковые ос- татки га\=Га2, говорят, что А\ и Л2 сравнимы по модулю <7, что записывается следующим образом: А\ = Л2 mod q или A<i s А\ mod q. (4.2) Например, числа 6 и 11 сравнимы по модулю 5, так как |6|5=1 и 1111 s— 1. Как следует из (4.2), справедливо также соотноше- ние А = ramodq. (4.3) Поскольку число возможных значений га равно q, чис- ло классов эквивалентности, на которые разбивается мно- жество целых неотрицательных чисел Л, равно q. Отсюда следует общее свойство контроля по модулю: чем больше q, тем больше классов эквивалентности, тем меньше мощ- ность каждого класса и тем меньше вероятность того, что в результате некоторой ошибки число остается в том же классе эквивалентности (и вследствие этого ошиб- ка не обнаруживается). Следовательно, большие значе- ния q обеспечивают большую полноту контроля. В качестве примера в табл. 4.2 приведены остатки по модулям <7=3, 5, 7 чисел Л = 1,10. Отметим, что в качестве модуля q не следует выби- рать основания применяемой позиционной системы счис- ления или его кратные. Это приведет к тому, что контро- лируются только младшие разряды чисел. Рекомендует- ся выбирать q=]r±l9 где г — основание системы счисле- ния. 3-595 65
Для двоичной системы в качестве модуля q выбира- ют значения <7=3, 5, 7, 11. Остатки по модулю q отрицательных чисел могут быть образованы, когда к отрицательному числу А при- бавляется произведение nq, где п — натуральное число, достаточно большое для того, чтобы A+nq>0. При этом, очевидно, А= (A+nq) mod q и остаток га может быть оп- ределен для положительного числа A+nq. Например, ес- ли Л=—9, <7=4, то A+nq=— 9+3-4=3, га=3. Таблица 4.2 А 1 2 3 4 5 6 7 8 9 10 3 1 2 0 1 2 0 1 2 0 1 5 1 2 3 4 0 1 2 3 4 0 7 1 2 3 4 5 6 0 1 2 3 В случае, когда ЭВМ оперирует дробными числами, все вышеприведенные рассуждения остаются в силе, если в выражении (4.1) все члены умножить на достаточно большое число для того, чтобы новое число А было целым числом. Ниже рассматриваются методы контроля по мо- дулю, основанные на свойствах остатков. Рис. 4.2. Схема устройства Рис. 4.3. Схема устройства хранения и (или) передачи сложения с контролем по чисел с контролем по моду- модулю лю Контроль хранения или передачи числа по модулю q. Этот контроль осуществляется по схеме, показанной на рис. 4.2. Пусть число А передается по каналу связи (или записывается в ЗУ М). Тогда при помощи преобразовате- 66
ля Мп2 образуется остаток га, который передается до- полнительным каналом (или соответственно записывает- ся в дополнительное ЗУ Мд). Пропускная способность дополнительного канала (или соответственно объем до- полнительного ЗУ Мд) при этом значительно меньше пропускной способности основного канала (или соответ- ственно объема основного ЗУ М), так как разрядность остатка га значительно меньше разрядности числа А. Принятое (или соответственно считанное из ЗУ) число Л*, содержащее, возможно, искажения, подвергается так- же преобразованию Мп1 с образованием остатка га\ Сравнение остатков г« и г*а дает возможность обнаруживать большинство ошибок по признаку несовпадения Я. В гл. 4 и 5 звездочкой обозначаются результаты, со- держащие, возможно, ошибку. Числовой контроль арифметических операций по мо- дулю. Контроль по модулю позволяет контролировать также и арифметические операции. Возможность осуще- ствления такого контроля основана на двух теоремах, ко- торые приводятся без доказательства. Теорема 1. Сумма чисел Ai (i=l, п) сравнима по мо- дулю q с суммой остатков rai этих же чисел, т. е. п п 2 Al s 2 fa/mod «7. /-1 /-1 Теорема 2. Произведение чисел Л/(1=1, п) сравнимо по модулю q с произведением остатков rat этих же чисел, п п т. е. П Ai s П re/modtf. /-1 /-1 Контроль сложения чисел (рис. 4.3). Контроль произ- водится на основании теоремы 1. Кроме суммы Лс*, ко- торая после сложения слагаемых А\ и Л2 в сумматоре SM, возможно, содержит ошибку, преобразователями Мп1 и Мп2 образуются остатки слагаемых га\ и ra2. Пос- ле их суммирования во вспомогательном сумматоре SMB небольшой разрядности получается остаток суммы ос- татков га, который сравнивается с остатком га* (преоб- разователь МпЗ) суммы Лс* при помощи сравнивающего устройства М2. В случае несовпадения Н фиксируется ошибка (отказ ). Поскольку сумма остатков может быть больше модуля q, на выходе сумматора SMB необходимо еще раз выполнить операцию нахождения остатка с по- мощью преобразователя Мп4. 3* " 67
Контроль умножения чисел. Контроль производится аналогично контролю сложений чисел с использованием теоремы 2. На рис. 4.4 изображена структура контроля умножения. Множимое А\ и множитель Л 2 умножаются в основном множительном устройством MPL, получен- ное произведение Ам* содержит, возможно, ошибку. Оста- ток га* по модулю q результата Лм* сравнивается с ос- татком га от произведения остатков га\ и гЛ2 множимого и множителя соответственно. Признаком ошибки служит Рис. 4.4. Схема устройства ум- ножения с контролем по мо- дулю Рис. 4.5. Схема устройства де- ления с контролем по модулю несовпадение н остатков. Перемножение остатков произ- водится небольшим вспомогательным множительным уст- ройством MPLB. Все остатки, как и раньше, формиру- ются преобразователями Мп. Отметим, что как в этой схеме, так и в предыдущих схемах возможна ошибка не только в основном результате Л*(ЛС*, Лм*), но также и при образовании остатка га* или контрольного остатка га, хотя эти события менее вероятны из-за простоты соот- ветствующей аппаратуры. И те и другие ошибки обнару- живаются, если они «е дают совпадающий результат и если устройство сравнения М2 работает правильно. Контроль деления чисел (рис. 4.5). Этот контроль не может быть осуществлен по аналогии с контролем сло- жения и умножения, поскольку соответствующей теоре- мы не существует. Поэтому контроль деления чисел осу- ществляется на основании теоремы 2. Для этого при помощи преобразователей Мп обра- зуются остаток Гд1 делимого А\ и остаток га\* произведе- ния частного Лд и делителя Л2, сравнение которых срав- нивающим устройством М2 дает сигнал об ошибке в слу- чае (несовпадения результатов. Кроме основного дели- 68
тельного устройства DIV в структуре контроля участву- ет вспомогательное множительное устройство небольшой разрядности MPL. Контроль по модулю хотя и экономичнее в смысле не- обходимых технических средств, чем полный контроль дублированием вычислений, все же нуждается в значи- тельном количестве вспомогательных средств. Цифровой контроль по модулю. Для дальнейшего уп- рощения контрольных операций предложен и широко применяется цифровой контроль по модулю, который в отличие от вышеизложенного числового контроля по мо- дулю основан на контроле по модулю суммы цифр, обра- зующих число. Поскольку разрядность суммы цифр боль- шого числа значительно меньше разрядности самого числа, операции вычисления остатка упрощаются, хотя дополнительно требуется операция для образования суммы цифр числа. Однако аналогов теорем 1 и 2 для суммы цифр операндов и результата сложения или ум- ножения не существует и поэтому цифровой контроль непосредственно применим только для контроля опера- рации хранения и передачи чисел. Особенно просто цифровой контроль реализуется в случае двоичных чисел, когда модуль <7=2. Такой конт- роль называется контролем по четности. При контроле по четности остаток суммы цифр равен либо нулю, либо единице в зависимости от четности числа единиц в ис- ходном коде, В качестве контрольного остатка достаточ- но иметь один дополнительный разряд, называемый контрольным разрядом. При числовом контроле модуль q должен быть не менее трех, иначе обнаруживаются ошибки только в младшем разряде дво- ичного числа, поскольку во всех других разрядах весовые коэф- фициенты четны и ошибки в этих разрядах по модулю 2 (по признаку четности) не обнаруживаются. Рассмотрим далее возможности контроля по модулю в смысле количества обнаруживаемых ошибок, т. е. попы- таемся определить степень полноты контроля по модулю. Пусть контролируемое число А представлено в пози- ционной форме а an-.xNn-1 + an-2Nn-2 + .. /+ ах№ + (4.4) где а0, ап-4 — коэффициенты (разряды); п — разряд- ность числа; N — основание счисления. 69
Тогда остаток га по модулю q обнаруживает все ком- бинации ошибок, кроме ошибок, удовлетворяющих усло- вию л-1 ' mod?, (4.5) Л-1 /-0 где ошибка (a**—afimodq; af — значение t-ro раз- ряда числа Л*, содержащего, возможно, ошибки; щ — правильное (безошибочное) значение 1-го разряда чис- ла Л. Справедливость (4.5) вытекает из выражения [л-1 л-1 1 Г л-1 1 2aiNl+ 2 еР1 тойя з к« + 2 eiNi mod?- /-0 /-о J L /—о J Отсюда видно, что ошибка не будет обнаружена при удовлетворении (4.5), так как тогда i4*s=ramod<7, а Л= 2=ramod<7 в силу (4.3), следовательно, Л сравним по мо- дулю q с Л*. Из (4.5) также следует, что если модуль q выбирать равным N+1, то обнаруживаются все одиночные ошибки. Действительно, если одиночная ошиб- ка не обнаруживается, то должно выполняться ра- венство e^N'mod (N-\-1)=0. Однако JV'mod(tf+l)-',вПЮ; I—1, если i нечетно, поскольку №=(N+iy {N^—N*-*+N*-*—... ± 1) ± 1. Таким образом, eW/mod(A4-l)s=±e/modN+l, но так как —N<.ei<.N, единственным значением ей для ко- торого etfnod(N+l)s=0, является ei=0. Следовательно, все одиночные ошибки обнаруживаются. Цифровой контроль обнаруживает все комбинации ошибок в системе счисления с основанием q, кроме оши- бок, удовлетворяющих соотношению ГЛ-1 1 2 4 ./-о J |mod q = 0. о 70
Действительно, число с ошибкой имеет остаток "я-1 л г я-1 2 ** mod q s 2 mod ^ = г я-1 я-1 modg -f- mod q. Последнее выражение в фигурных скобках сравнимо с 2 ai тогда и только тогда, когда 2 е/ mod f н °* Но тогда получается, что 2a/s 2a/mod?, т-е- ошибка не обнаруживается. Из сказанного выше можно сделать следующий вывод: в двоичной системе счисления для обнаружения ошибок при передаче и хранении данных может быть использо- ван цифровой контроль по модулю 2, как наиболее прос- той способ контроля, а для контроля арифметических операций — числовой контроль по модулю 3. Контроль по более высоким значениям модуля оправ- дан в особенно ответственных системах, где требуется эффективная защита от кратных ошибок. Однако с уче- том простоты цифрового контроля по модулю два был предложен следующий способ цифрового котроля опе- рации сложения. Очевидно, для контроля сложения не- достаточно сравнивать по модулю 2 контрольный разряд суммы с суммой контрольных разрядов слагаемых. Четность числа единиц в коде суммы не находится в однозначной зависимости от четности числа единиц в ко- дах слагаемых. Однако если учитывать также и четность числа пе- реносов в сумматоре, то может быть найдено однознач- ное соотношение для контроля. Действительно, значе- ние контрольного разряда суммы двух слагаемых опре- деляется выражением О = s0®si®... е$я_1 = (x0®y0®pBX)®(xx®yi®p0)®... .. .е(*я-1©0я-1ФРя-2)=С*оФ-*1®-- .®*я-1)$ (УО®01Ф- •■• (4.6) ... ФУп-хШРвхФРО + • • • Ф/>я-2) = Гх®Гу®Гр9 /-0 71
где Хо, Хп-и Уо, Уп-\ — разряды слагаемых; $0, 5n-i — разряды суммы; рВх, р<ъ...» Рп-2— входной перенос в младший разряд и переносы между разрядами; г*, гу, г8 — символы в контрольных разрядах слагаемых X, У и суммы S; гр — сумма по модулю 2 возникающих при сло- жении переносов; Ф — обозначение операции суммиро- вания по модулю 2, т. е. суммирования с последующим определением остатка по модулю 2. Из (4.6) следует, что остаток суммы цифр по моду- лю 2 или, короче четность суммы двух двоичных чисел сравнима по модулю 2 с суммой четностей слагаемых и вспомогательного числа, код которого образуется из пе- реносов, т. е. rssi(r^-Hr1/+rp)mod 2. § 4.3. СХЕМНАЯ РЕАЛИЗАЦИЯ КОНТРОЛЯ ПО МОДУЛЮ Вычисление остатка числа А по модулю q может осу- ществляться делением в остатках. Однако устройство деления настолько сложное, что применение такого спо- соба контроля не оправдано. Существует более простой способ вычисления остатков, основанный на том, что ос- татки отдельных разрядов при позиционном представле- нии чисел могут быть определены независимо друг от друга. Их сумма по модулю q и является искомым остат- ком. Действительно, при позиционном представлении чис- ла (4.4) определение остатков для отдельных слагаемых не составляет проблему. Остатки степеней основания счисления N не зависят от значения числа А и могут быть определены заранее. При определении остатка чис- ла А достаточно умножить эти остатки на значения со- ответствующих разрядов ао> сложить произведе- ния и определить остаток полученной суммы. Особенно просто данная операция осуществляется в случае двоич- ной системы, так как тогда а/е{0,1} при te{0,...,/i— 1}. Вычисление остатка числа в двоичной записи сводится к сложению остатков тех весовых коэффициентов двоич- ного числа N1, у которых коэффициенты щ равны еди- нице. Они складываются лри помощи сумматоров на два или на три входа. На рис. 4.6 приведена схема для вычисления остат- ков 12-разрядного двоичного числа по модулю <7=7. Раз- ряды числа а<ь о>\\ поступают в регистр /?G, ячейки ко- торого имеют заранее определенный вес, в зависимости от значения остатка величины N* f=0, 1,/г—1) по мо- 72
дулю 7. Далее при помощи сумматоров на три входа SM остатки, для которых а*=1, суммируются, учитывая, что перенос равен двойной сумме, пока на выходе не остается код остатка с весами 1, 2, 4 [9]. Однако эта схема также достаточно сложная. Поэтому в современных ЭВМ общего назначения числовой конт- роль по модулю применяется редко. Он используется пре- имущественно в специализированных управляющих ЭВМ, к надежности которых предъявляются повышен- ные требования. В ЭВМ общего назначения наиболее широко применяется цифровой контроль по модулю 2, обеспечивающий простые схемные решения. Si £1 Од 0 RG / i 2 2 /, 3 1 2 5 6 i 7 2 8 4 9 1 W 2 It 4 V { sm V 4s^ Ism j); sm sm J1 jj |SM0 4r 3 J2H sm 5 Рис. 4.6. Схема устройства вычисления остатков по модулю 7 На рис 4.7 изображена схема типового узла цифро- вого контроля, широко применяемого в ЕС ЭВМ. Схема построена как трехкаскадная пирамидальная схема с восемью двоичными входами х0 по х7 с инверсиями х0 по Х7. Каскады состоят из схем суммирования по модулю 2 (М2), вырабатывающих сигналы а\^ХоХ\\/хоХи 5i=* =*o*iV*o*i и т. д. После третьей ступени пирамидаль- ной схемы образуется сигнал, определяющий четность (d) или нечетность (S) разрядов х0, хь Устройство также осуществляет сравнение при помощи схемы М2 четности информационных разрядов х0,xi с контроль- ным разрядом х8. Схема на рис. 4.7 является примером реализации важного принципа построения средств контроля — само- проверяемости. Самопроверяемые устройства контроля построены таким образом, что отказ в устройстве конт- 73
роля вызывает сигнал об ошибке или признак ошибки. Иногда в самопроверяемых устройствах контроля неза- висимые схемы вырабатывают два противоположных сиг- нала об ошибке. В случае одиночной ошибки в схеме контроля эти сигналы совпадают, что и служит призна- ком ошибки в устройстве контроля. В схеме на рис. 4.7 один из сигналов ошибки COi или С02 возникает как в случае нечетного числа ошибок в проверяемом коде, так и в случае ошибки в самой схеме контроля. Рис. 4.7. Схема устройства цифрового контроля по мо- дулю 2 Организация информации в виде 8-разрядных байтов с девятым, контрольным, разрядом является типичной для ЕС ЭВМ и большинства других современных ЭВМ. Сигнал COi на выходе схемы показывает совпадение контрольного сигнала и сигнала четности. Для выявле- ния отказов в основном и контрольном оборудовании, в результате которых на обоих выходах схемы М2 сигна- лы отсутствуют, на выходе схемы имеется дополнитель- ная схема ИЛИ— НЕ. Появление сигнала С02 сигнализирует о том, что на обоих выходах схемы М2 появились нули, т. е. произо- шел отказ самой схемы контроля. § 4.4. ПОСТРОЕНИЕ КОНТРОЛЬНЫХ ТЕСТОВ Кроме аппаратных методов оперативного контроля, обес- печивающих быстрое выявление большинства ошибок, широко применяется тестовый контроль, обеспечивающий 74
полный или почти полный контроль всей аппаратуры. Тестовый контроль дополняет аппаратный контроль, вы- являя те отказы, которые не были обнаружены аппарат- ными средствами в процессе эксплуатации. Он осущест- вляется при помощи многочисленных тестовых последо- вательностей, запасаемых во внешних накопителях ЭВМ вместе с правильными результатами, которые должны дать тесты. Расхождение между фактическими и задан- ными результатами тестов и является признаком отказа. При построении тестов для цифровых устройств од- ним из основных является вопрос о тестировании ком- бинационных логических схем (автоматов без памяти). Логические методы построения контрольных тестов. Рассмотрим построение контрольных тестов для комби- национных логических схем. Пусть каждому набору х= = (*ь *2> ...» Хт) значений входных переменных схемы однозначно соответствует некоторый набор у=(у\, У2,—> уп) выходных переменных. В качестве отказов эле- ментов схемы будут рассматриваться только отказы ти- па постоянной единицы (т. е. существующей независимо от состояния схемы) на выходе логического элемента, вызванного замыканием на провод электропитания, и от- казы типа постоянного нуля, вызванного либо обрывом, либо замыканием на провод электропитания другой по- лярности. Некоторый отказ обнаруживается на входном наборе х тогда и только тогда, когда выходные наборы у для исправной и неисправной логической схемы отличаются друг от друга. Таким образом, задача построения набора контроль- ных тестов заключается в построении множества Х= {х} входных наборов, позволяющих обнаружить все возмож- ные неисправности контролируемой логической схемы. Пусть в схеме встречаются только одиночные неис- правности и логическая схема имеет только один выход у. Последнее допущение не ограничивает общность рас- смотрения, поскольку приведенные рассуждения можно применить для любого количества выходов. При построении теста для схемы комбинационной ло- гики удобно пользоваться булевым выражением в виде эквивалентной скобочной формы. Для построения экви- валентной скобочной формы для каждого из элементов логической схемы выписывается реализуемая им буле- ва функция. Правая часть функции заключается в скоб- ки, помечаемые сверху номером данного элемента. Пос- 75
ле этого промежуточные переменные исключаются путем суперпозиции выписанных функций с сохранением всех скобок вместе с их метками. Далее полученная функ- ция может быть приведена к эквивалентной дизъюнктив- ной нормальной форме (ЭДНФ) или к эквивалентной конъюнктивной нормальной форме (ЭКНФ). Эти фор- мы могут быть найдены рас- *' ~Г&1 х5 . , крытием скобок последователь- х Л f*i-^-a^ ным применением формулы де |—LJ Моргана (при этом каждой пе- ременной в качестве верхних индексов присваиваются поме- ху-LJ pa элементов, стоящих у тех „ . e ^ л скобок, в которые входила дан- Рис. 4.8. Схема комбина- няя ™прийПНЯ||\ ционного логического ная переменная), устройства Пример приведения функции к ЭДНФ и ЭКНФ. Рассмотрим схему на рис. 4.8. 1. Опишем логические функции элементов, входящие в схему, т. е. #=(*5*в)7, *б=(*з*4)в, xs=(xix2)s. Здесь в качестве номера логического элемента выбран номер его выходной переменной. 2. Составим логическое описание схемы путем последовательного применения подстановок, т. е. V~(i*lX& (*3*4)6)7. 3. Применим для раскрытия скобок правило де Моргана. Результат получается в виде ЭДНФ y = xl>7xl>7 + xl>7xl'7. (4.7) Для получения ЭКНФ преобразуем У " Щ+Щ)Щ+Щ7 = (ЗД + 33 + 33 + 33)? - - (3'7+3'7)(3J+3^^ («) После составления математической модели исследу- емой логической схемы в виде ЭДНФ или ЭКНФ необ- ходимо осуществить активизацию путей. Будем говорить, что путь в логической схеме активизируется входным на- бором х тогда и только тогда, когда изменение значения выходного сигнала любого элемента на этом пути при- ведет к изменению значения выходного сигнала логиче- ской схемы. Рассмотрим входные наборы х= (хи ...» хъ-и 0> хн+и Хщ) и х'= (xi,...,**-ь 1, xk+u...,xm) и путь (I от входа логической схемы, к которому отнесена логическая пере- менная xhi к выходу схемы у. Путь определяется как по- 76
следовательноеть элементов от входа xi к выходу схемы. В него входят элементы, номера которых образуют верх- ний индекс xi. Условие у(х)Фу(х') является тогда необ- ходимым и достаточным условием того, чтобы набор х(х') активизировал путь р,. Для построения наборов, активизирующих определен- ные пути в логической схеме, удобно пользоваться эквива- лентными нормальными формами, обладающими следу- ющими свойствами: 1. Последовательность верхних индексов у каждого терма (переменной или ее отрицании) определяет один из путей от входа логической схемы, соответствующей данному терму, к ее выходу. 2. Каждому пути от входа логической схемы к выходу соответствует некоторый терм в ЭДНФ или ЭКНФ. 3* Данная переменная входит в ЭДНФ или ЭКНФ с отрицанием в том и только в том случае, когда число ин- версии на соответствующем пути нечетно. Для построения контролирующего теста пути от вхо- да xt до выхода у контролируемой схемы по ЭДНФ вы- бирается его член, содержащий */ или xi. Остальные вход- ные переменные для теста выбираются такие, чтобы все сомножители */(*/) в выбранном члене равнялись еди- нице, а остальные члены — нулю. При построении теста по ЭКНФ выбирается сомножитель, содержащий xi. Ос- тальные слагаемые в выбранном сомножителе, содержа- щем хи делаются равными нулю, а остальные перемен- ные выбираются такими, чтобы другие сомножители ЭКНФ равнялись единице. По приведенной методике можно построить входные наборы, позволяющие тестировать путь, указанный в ви- де верхнего индекса у той переменной, которая рассмат- ривалась в п. 1 методики. Методика, естественно, не га- рантирует однозначность и тем более оптимальность ре- шения, но во многих случаях приведет к допустимому ре- шению. Пример построения контрольных тестов по приведенной методи- ке для схемы на рис. 4.8. 1. Рассмотрим построение тестовых наборов исходя из ЭДНФ (4.7). Пусть тестированию подлежит путь 1,5, т. е. путь, проходя- щий от входа Х\ через элементы 5, 7 к выходу у. Тогда, согласно приведенной методике, необходимо выбрать х2=1, *з=0 (или *4=0). При подаче указанного входного набора на вход схемы, в слу- чае, когда на выходе седьмого элемента должна появляться единица, а на выходе пятого — нуль. 77
Если на входе xi нли на выходе х7 имеется неисправность типа «ложный путь» (обрыв) или на выходе пятого элемента — «ложная единица», то эти неисправности обнаруживаются данным тестом, ибо на выходе схемы вместо единицы получается нуль. Если же на вход Х\ подавать нуль при сохранении значений остальных входов, то тогда аналогичным образом обнаруживаются неисправности типа «ложный нуль» на выходе пятого элемента и неисправности типа «ложная единица» на входе Х\ и на выходе х7. Таким образом, при помощи тестовых наборов (1101) и (0101) (обнаруживаются одиночные отказы типа «ложный нуль» и «ложная единица» на входе хх схемы и на выходах элементов 5, 7. 2. Рассматривается построение тестовых наборов исходя из ЭКНФ (4.8). По первому сомножителю (4.8) можно сразу опреде- лить, что для проверки пути Х\—у на «ложный нуль» на входе х\ или на выходе *7 и на «ложную единицу» на выходе пятого элемен- та необходимо выбрать Х\*=\, *з=0. Из анализа остальных сомножителей (4.8) можно сразу опре- делить, что необходимо выбрать *2=li а хА может иметь произволь- ное значение, допустим *4= 1. Следовательно, построение теста по ЭКНФ дает тот же резуль- тат (1101), что и построение теста по ЭДНФ. Однако в данном случае построение теста по ЭКНФ несколько проще, чем по ЭДНФ, хотя построение ЭДНФ для данной схемы проще, чем построение ЭКНФ. Достаточным набором для тестирования всей схемы на рис 4.8 будет восемь тестов, построенных для акти- визации путей от всех четырех входов схемы и прове- ряющих каждый путь от входа к выходу на ложный нуль (один тест) и на ложную единицу (второй тест). С дру- гой стороны, видно, что такой набор тестов не необхо- димый (избыточный). Например, наличие ложного нуля (обрыва) на втором входе схемы (х2) обнаруживается тестами Т7 и 7V. Таким образом, встает задача построе- ния минимального набора контрольных тестов. Нахождение минимального набора контрольных тес- тов. Ниже описывается метод, предназначенный для по- строения минимального набора тестов для полной про- верку комбинационной, логической схемы. Метод со- стоит в следующем. 1. Строится таблица, в которой строки соответству- ют всем возможным тестам, а столбцы — всем неисправ- ностям схемы, крторые могут быть обнаружены данным набором тестов. 2. Таблица заполняется согласно следующему пра- вилу: если данный тест позволяет обнаруживать данную неисправность, то в соответствующей клетке таблицы за- писывается единица, в противоположном случае—г нет. 3. Выявляются и отмечаются тесты, единственные 78
для выявления какой-либо рассматриваемой неисправ- ности. 4. Выявляется и отмечается минимальная совокуп- ность тестов, обнаруживающих остальные неисправно- сти. 5. Составляется минимальная для всех неисправно- стей совокупность тестов, включающая отмеченные в п. 3 и 4 тестовые наборы. Таблица 4.3 Неисправность Тесты Входной набор 10 11 20 21 30 31 40 41 50 61 60 61 70 71 г, 0101 1 1 1 1 1 1 '.Тш ОНО 1 1 1 1 1 Г4 0111 1 1 1 1 1 1 т* 1001 1 1 1 1 1010 1 1 1 1 1 V 1011 1 1 1 1 1 1 т7 1101 1 1 1 1 1 1110 > 1 1 1 1 1 1 Отметим, что изложенный метод аналогичен методу простых импликант, применяемому в алгебре логики для минимизации логических выражений. Пример построения минимального набора тестов. Рассмотрим логическую схему рис. 4.8. В табл. 4.3 приведены возможные неис- правности 10, 71 и возможные тесты Т\, Г8. В качестве неис- правностей ij рассматриваются ошибки на входах *=1, 2, 3, 4 схе- мы и на выходах *'=5, 6, 7 элементов схемы типа обрыва (постоян- ный нуль) 7=0 и типа короткого замыкания на питание (постоян- ная единица) ;= 1. При построении таблицы учтено, что входные наборы (тесты), содержащие Xi—x2=Ot х3=*4=0 и *i=jt2=X3=*4=l, можно за- ранее исключить, так как они не позволяют обнаруживать одиноч- ные ошибки на входах элементов «И—НЕ». По табл. 4.3 можно установить, что тесты Ти Те, Т* образуют полное покрытие и позволяют обнаруживать все одиночные неис- правности. 79
В первых ЭВМ были применены методы функци- онального контроля, т. е. контроля, заключающегося в проверке выполнения основных рабочих функций объек- том контроля — вычислительной машиной или ее частью. При дальнейшем развитии вычислительных машин, однако, оказалось, что функциональный контроль упи- рается в «барьер размерности», поскольку количество значений выполняемых объектом контроля функций слишком велико, чтобы все их проверить. Поэтому был предложен принцип, согласно которому контролю долж- ны подвергаться не функции, а элементы аппаратуры. Действительно, рассматривая в качестве'Примера неболь- шую схему комбинационной логики с двадцатью входами и одним выходом, легко убедиться, что для полного конт- роля логической функции, реализуемой данной схемой, необходимо запоминать или генерировать значения функ- ции при 220«106 значениях ее аргумента—двадцати- значного логического вектора. Очевидно, проще прове- рить исправность отдельных элементов, которых в рас- сматриваемой схеме не более нескольких десятков. Сущность методов контроля элементов аппаратуры за- ключается в подборе таких тестов, которые выявляют от- казы всех элементов. Число таких тестов не должно пре- вышать число возможных неисправностей в схеме (оно может быть и существенно меньше, если каждый тест способен выявлять несколько различных неисправно- стей). Вероятностные методы контроля. При увеличении сложности контролируемых схем рассмотренный выше подход приведет к весьма громоздким процедурам, необ- ходимым для построения тестов методами алгебры логи- ки. Количество тестов при этом будет значительное и для их запоминания потребуется ЗУ большого объема. В то же время существует необходимость тестировать схемы при наличии кратных отказов, отказов типа за- мыкания между собой проводов — носителей логической информации и др. Учитывая также широкое применение БИС, где при строго ограниченном количестве внешних соединений (не- сколько десятков) имеются тысячи и десятки тысяч эле- ментов, построение системы тестов строгими логическими методами становится если не невозможной, то очень гро- моздкой и трудно выполнимой задачей. Поэтому возник большой интерес к вероятностным методам тестирования, где поставленная цель достигается с достаточно большой 80
вероятностью. Сюда относятся получившие в последнее, время развитие методы компактного тестирования (сиг- натурного анализа). При компактном тестировании на вход схемы подается некоторая последовательность тес- тов. Количество необходимых тестов может быть очень большим. Каждому тесту соответствует некоторый на- бор или некоторая последовательность сигналов на вы- ходе схемы, которую нужно сравнивать с заранее из- вестной, эталонной последовательностью. Чтобы не за- поминать всю эту информацию, в качестве результата тестирования используется не вся выходная последова- тельность, а некоторая ее «сжатая» характеристика, на- пример, число единиц или число переходов 0—i и 1—0 в последовательности. Такая «сжатая» характеристика на- зывается сигнатурой. На рис 4.9 приведена схема тестирования по методу сигнатурного анализа. Генератор тестов FT генерирует некоторую последовательность кодовых комбинаций (тес- тов), которые по очереди подаются на вход тестируемой схемы С. К выходу тестируемой схемы подключается анализатор Л, определяющий сигнатуру выходной по- следовательности. Найденное значение сигнатуры срав- нивается при помощи устройства сравнения М2 с запи- санным в запоминающем устройстве ЗУ значением, опре- деленным заранее экспериментальным путем для заве- домо исправной схемы данного типа. В случае несовпа- дения значений сигнатур устройство сравнения выдает сигнал Н с неисправности тестируемой схемы. Вопросы применения сигнатурного анализа для диагностирова- ния схем рассматриваются подробнее в § 5.2. Метод сравнения с эталоном. Другой метод контроль- ного тестирования (рис. 4.10) заключается в том, что выходная последовательность тестируемого объекта О Рис. 4.9. Схема тестирова- ния по методу сигнатурно- го анализа Рис. 4.10. Схема тестирова- ния по методу сравнения с эталоном 81
сравнивается с выходной последовательностью, получа- емой от однотипного эталонного объекта .9. На вход эта- лонного объекта подаются те же входные сигналы от ге- нератора тестов /Т, что и на вход объекта тестирования. Далее проводится сравнение выходных последовательно- стей при помощи устройства сравнения М2. В случае на- личия эталона выходную последовательность тестируе- мого объекта О можно сравнивать непосредственно с выходной последовательностью, получаемой от эталон- ного объекта Э. Поскольку отпадает необходимость за- писывать или запоминать длинные последовательности, отпадает и необходимость сжатия выходных последова- тельностей тестируемой схемы. .Признаком неисправности тестируемого объекта яв- ляется сигнал Н о несовпадении этих последовательно- стей. Основная проблема при осуществлении этого метода сводится к обеспечению правильной работы эталона. Чаще всего эталоном служит однотипная с объектом контроля схема. В таком случае необходимо обеспечить исправность эталона. Это может быть достигнуто прове- дением периодических проверок исправности эталона при помощи других методов контроля. Однако такой конт- роль может оказаться весьма трудоемким, сложным и длительным. Поэтому при массовом контроле предлагает- ся использовать в качестве эталона Э три или несколько однотипных схем Э1, Э2, ЭЫ, объединив их выходы при помощи мажоритарной схемы М.(см. § 2.5). Преимуществом метода является то, что отказ от- дельных схем эталона не искажает результаты контро- ля. Кроме того, при помощи несложной дополнительной логической схемы отказы отдельных эталонных схем могут быть немедленно обнаружены. Одна из основных проблем при реализации рассмот- ренных выше методов тестирования — проблема построе- ния тестовых последовательностей. Выше уже было ука- зано на затруднения, связанные с построением логически обоснованных тестов. Если же тесты выбирать случайно, то имеется большая вероятность охвата всех элементов схемы. Действительно, если тестируемая схема содержит п элементов и каждым случайным тестом проверяется в среднем k элементов, то после проведения N тестов ве- роятность^ того, что хотя бы один элемент не тестиро- вался, оценивается как Q=(l—k/n)N. Если &/л=0,5 и #=100, то Q«10-30 (!). 82
В качестве генератора тестов используются генерато- ры псевдослучайных кодов. Применение псевдослучай- ных кодов обеспечивает повторяемость эксперимента, по- скольку псевдослучайные последовательности каждый раз повторяются. Поэтому при тестировании одинаковых объектов на выходном анализаторе появляется всегда одна и та же сигнатура. § 4.5. НАДЕЖНОСТЬ СИСТЕМ С УЧЕТОМ ВЛИЯНИЯ КОНТРОЛИРУЮЩИХ УСТРОЙСТВ Надежность систем с контролем зависит от достоверно- сти контроля. Последняя может быть оценена через ве- роятности ошибок контроля, которые могут быть перво- го и второго рода. Ошибка первого рода — отклонение правильной гипотезы, ошибка второго рода — принятие ложной гипотезы. Пусть F — наличие неисправности в контролируемом объекте, a F — отсутствие неисправности, D — сигнал о наличии неисправности и D — отсутствие сигнала о не- исправности в контролируемом объекте _Тогда имеются четыре сложных события DF, DF, DF, DF. Первое и по- следнее из этих событий соответствуют правильной ра- боте устройства контроля, второе событие — ошибке кон- троля второго рода, а третье событие — ошибке контро- ля первого рода. Эти события образуют полную группу событий и поэтому их вероятности P(DF), P(DF), P(DF), P(DF) удовлетворяют условию P(DF) + P(D?) + P(DF) + P(DF)=\. (4.9) Таким образом, одна из четырех вероятностей в (4.9) может быть найдена при условии, что остальные три ве- роятности известны. Вероятности событий могут быть оценены, рассматривая множество состояний G контро- лируемого объекта. Предполагая, что контролирующее устройство находится в исправном состоянии, можно мно- жество состояний объекта G разбить на четыре подмно- жества состояний GDp, Gd7, 6ър , ОБ?> соответствующие четырем сложным событиям, названным выше. Посколь- ку все события — несовместные, по правилу сложения ве- роятностей P(DF)= 2 ' Pxl • (4.10) 83
P(DF) S Px\ xe°DF (4.11) P(DF) (4.12) P(DF) (4.13) где px — вероятность состояния x контролируемого объ- екта. Состояние контролируемого объекта, в свою очередь, определяется множеством отказов, которые произошли в этом объекте. Допуская, что эти отказы произойдут не- зависимо друг от друга, по лравилу умножения вероят- ностей можно записать Р,= П */ П (4.14) где sit — вероятность того, что в объекте произошел 1-й отказ; Нх — множество номеров отказов, соответствую- щих состоянию х объекта. Выражения (4.10) —(4.14) справедливы при допуще- нии о том, что контролирующее устройство находится в исправном состоянии. В случае необходимости аналогич- ные уравнения могут быть построены и для различных отказовых состояний устройства. Пример оценки достоверности контроля методом сравнения с эталоном. Пусть имеются две идентичные одновыходные схемы ком- бинационной логики, на входы которых подается достаточно длин- ная последовательность случайных наборов. Выходы логических схем сравниваются при помощи схемы сравнения, выдающей сигнал несовпадения Н. Допускается, что схема неравнозначности работает надежно, множество состояний схем Л{ и Л2 состоит из 10 состояний с веро- ятностями Pi = 1—1,887«Ю-8 (безотказное состояние), Рг^Ю-3, Р3=10-4, Р4=10-Б, Р5=2.10-4, Рв=5.10-4, Р7=2.10-5, Рв=5-10-Б, Р9=2»10~в, Р|о=5-10-6. Вероятности отдельных состояний опреде- лены по известным вероятностям отказов отдельных элементов схем. При данном способе контроля неисправность в сравниваемых схемах Л\ и Л2 обнаруживается тогда, когда неисправность имеется либо только в одной схеме, либо в обеих схемах имеются различные неисправности. Если в схемах Л{ и Л2 имеются одинаковые неис- правности, то данный способ контроля их не обнаруживает. Таким образом, по (4.12) P(DF) = 2 Р*=2 Р/= 00-3)2+ (Ю-4)2+ хеаЪр /-2 + (Ю-б)2 + (2.10-4)2 + (5-10-4)2 + (2.10-5)2 + (5-10-5)2 + + (2-10-6)2 + (5. ю-в)2 * 1,303.10-6. 84 10
Далее по условиям задачи P(DF)=0, так как при данном спо- собе контроля и принятых допущениях ложное срабатывание конт- роля исключается. Вероятность того, что отказа нет и контроль его не обнаружи- вает, определяется вероятностью того, что Л\ и Л2 не содержат неисправностей, т. е. Р (DF) = (1 — 1,887-10-3)2 « 1 — 3,77. ю-з. Наконец, вероятность P(DF) проще всего определить по (4.9): Р (DF) = 1-Я (DF) - Р (DF) - Р (5?) = 1 —0 — 1,303-10-6 — -1 +3,77. Ю-з «3,77. Ю-з. Условная вероятность того, что неисправность не обнаружива- ется, если она есть, равна . . я(5/0 1,зоз.ю-в Рф F) = —-—— =—• • « 0,69-0-3, V ' ' P(F) 1,887-Ю-з и' * т. е. в среднем одна неисправность из приблизительно полторы тысяч не будет обнаружена контролем. Пример оценки достоверности цифрового контроля по модулю 2. Пусть имеется 8-разрядная схема цифрового контроля по модулю 2 с девятым, контрольным, разрядом. Допускается, что отказы в от- дельных разрядах, в том числе и в контрольном разряде, независи- мы и возникают с вероятностью q. Требуется определить вероятно- сти, входящие в (4.9). Пусть контролирующее устройство (см. рис. 4.7) работает без- отказно. Предполагается также, что в контролируемом коде единицы и нули равновероятны и неисправность (ошибка) выражается в воз- никновении противоположного значения элемента кода с вероятно- стью q. Тогда множество Gdf определяется как множество состоя- ний с нечетным числом ошибок в девяти разрядах. Следовательно, по (4.10) и (4.14) 9 /-1,3,... Поскольку q — малое число, то, отбрасывая его степени выше третьей как величины высших порядков малости, получим Р (DF) « 9q (1 - 8?) + 84?з (1 - 6q) « 9? - 72^2 + щг. Случай, что ошибки нет, но имеется ложный сигнал об ошибке при сделанных допущениях, исключается, вероятность P(DF)—0. Вероятность P(DF) того, что ошибки имеются и не будут обна- ружены, определяется как вероятность появления четного числа ошибок, т. е. 8 Р (DF) = 2 ск{1) о - Я)9"1- /-2,4,... При малом q величина Р (DF) * 36^2 (1 - 7q) = 36^2-252^3. 85
Вероятность того, что нет ни ошибки, ни сигнала об ошибке, Р (DF) = Р (?) = (1 - q)* « 1 - 9q + 36?2. Пусть q=\0~3. Тогда Р(DF) « 9. Ю-з - 72-10-6 = 8,928- 10-3; Р (DF) « 0,036* Ю-3; Р(DF) « 1—'9*Ю-з +зб. 10-6= 1 -8,964.10-3. Условная вероятность того, что неисправность не обнаружива- ется, при условии, что она есть, равна P(D | F) = P(DF) 0,036.10-3 P(F) ^ 8,964-10-3 w 4-10-3, т. е. в среднем не обнаруживается одна ошибка из двухсот пяти- десяти. На основании известных ин- тенсивностей отказов и восстанов- лений можно поставить и решать вопрос о надежности системы контролирующее устройство — объект контроля. Пример оценки надежности системы Рис. 4.11. Граф состоя- контроля. Пусть система может нахо- ний системы с непрерыв- диться в состояниях 00, 01, 10 и 11 с ным контролем и восста- вероятностями роо, Роь Рю и рц, где пер- новлением вый индекс показывает состояние конт- ролирующего устройства, а второй — состояние объекта контроля («0» — работоспособное состояние и «Ь —состояние отказа). Система описывается графом состояний, приведенным на рис. 4.11 (см. § 3.3). Матрица интенсивностей переходов имеет вид Л = (Хо+Хк) И* 0 о 0 -(Xo + hc) о Хк Хо -0*k + iv)J где Хо. Хк, |Хю [Id, \*>f — соответственно интенсивности отказов объ- екта контроля; отказов контролирующего устройства; восстановле- ния контролирующего устройства; восстановления объекта контроля при работоспособном контролирующем устройстве; восстановления объекта контроля при отказавшем контролирующем устройстве. Особенности рассматриваемой модели в том, что она позволяет учитывать соотношение |Id>|If. поскольку на самом деле при отка- зе контроля восстановление объекта контроля затягивается из-за того, что отказ будет обнаружен со значительным опозданием, ско- рее всего по косвенным признакам (неправильным результатам). 86
При стационарном режиме, очевидно, *ЛРД#=[0], и, следова- тельно, решается система алгебраических уравнений — (*о + *к) роо .+pdpo\ + р-кРю = о; кРоо - (*к + f*D)Poi + РкРп = 0; Woo ~ (*о + Н-к) Pi6 + Н^Рн = 0; Роо + Poi + Рю + Ри = 1 • Данная система может быть решена методом исключения пере- менных. Допуская, что интенсивности восстановлений намного боль- ше интенсивностей отказов, получено упрощенное решение, откуда коэффициент готовности системы с контролем — — о ! v • С4**5) Кгк = РОО + PlO » 1 — " Числовой пример с использованием (4.15) приведен в § 4.7. § 4.6. ТЕХНИЧЕСКАЯ РЕАЛИЗАЦИЯ СИСТЕМЫ КОНТРОЛЯ Рассмотрим вопросы схемной реализации в связи с ЭВМ для некоторых (отличных от рассмотренных выше) спо- собов контроля. Контроль по четности позволяет обнару- 11 г- U_f] 4 Or Рис. 4.12. Схема контроля счетчика живать ошибки при передаче и хранении данных. Однако во многих узлах ЭВМ производится преобразование ин- формации. В § 4.2 рассматривались способы контроля арифметических операций по модулю и контроля опера-, ции сложения по четности. Контроль счетчиков. На рис. 4.12 приведена схема контроля 4-разрядного счетчика. Контроль основан на том, что четность суммы единиц кода, записанного в счет- чике, должна совпадать с четностью предсказанного зна- чения этой величины. Предсказывая при помощи вспомо- гательного триггера Т5 четность содержимого счетчика и сравнивая ее с фактической четностью содержимого счет- чика (соответствующая схема на рис. 4.12 не указана), 87
можно обнаруживать ошибки в его работе. Изменения четности у содержимого счетчика определяется по форму- ле t/=*i+X2*3 + *2*4*5 + *2*4*6*7+ ГДв Х\, #2» ••• — ЛОГИ- ческие переменные, соответствующие состояниям отдель- ных разрядов счетчика. В случае 4-разрядного счетчика формула приобретает вид у=х\+Х2Хг, что и реализуется логической схемой «И —ИЛИ» на схеме рис. 4.12. Схе- ма «И» предназначена для передачи сигналов на счетный вход триггера Тъ каждый раз, когда посту- пает входной сигнал. Контроль дешифрато- ров. Другой распростра- ненной операцией являет- ся операция дешифрова- ния. На рис. 4.13 показа- на схема контроля деши- Рис. 4.13. Схема контроля де- Фратора, в которой выхо- шифратора ды дешифратора разде- ляют на две группы. При правильной работе дешифратора сигнал должен появ- ляться лишь на одном выходе дешифратора. В этом слу- чае в схеме на входах сумматора по модулю 2 (М2) по- являются либо нули (сигнал появляется на выходах дешифратора 0, 1, 2 или 3) либо единицы (сигнал появ- ляется на выходах дешифратора 4, 5, 6 или 7). Если же сигнал на выходе дешифратора отсутствует, то на верх- нем входе сумматора М2 будет единица, на нижнем — нуль и схема выдает сигнал об ошибке. Аналогичное происходит также и тогда, когда сигналы появляются одновременно в верхней и нижней группе выходов деши- фраторов. Однако такой контроль не полный: не обнару- живаются отказы дешифратора, вызывающие появление двух или нескольких сигналов в одной группе выходов дешифратора, а также отказы, связанные с появлением одного сигнала, но на неправильном его выходе. Вероятность обнаружения отказа такой схемой мо- жет быть оценена разбором всех возможных отказов и определением доли обнаруживаемых отказов. Распределение средств контроля. При реализации системы аппаратного контроля возникает вопрос о рас- пределении средств контроля. Идеальным было бы конт- ролировать все узлы ЭВМ. Однако такой контроль тре- 88
бует весьма сложных средств контроля, соизмеримых по сложности с контролируемой аппаратурой. Поэтому в данном случае предпочтителен простой и эффективный метод контроля дублированием. В вопросах проектирования аппаратного контроля наблюдаются две основные тенденции. В универсальных ЭВМ (в первую очередь ЕС ЭВМ) применяется не полный, но сравнительно экономный ап- паратный контроль важнейших узлов ЭВМ. В управляющих ЭВМ (в первую очередь серия СМ) применяются немногие средства встроенного аппаратно- го контроля (контроль принадлежности адресов и ко- дов операции к допустимым кодам), с учетом того, что в случае управления ответственными объектами эти срав- нительно недорогие ЭВМ могут быть с целью контроля дублированы. То же самое относится в еще большей ме- ре к микропроцессорным средствам. В больших универсальных ЭВМ вопрос о распределе- нии средств аппаратного контроля решается в зависи- мости от структуры и организации центрального процес- сора. В ЭВМ, где не используется магистральная структу- ра центрального процессора (например, ЕС 1050), конт- роль производится в отдельных выбранных точках пере- дачи информации. Предусматривается контроль по четности основных регистров в блоках двоичной и десятичной арифметики, в блоке центрального управления, оперативной памяти, селекторных и мультиплексных каналах, устройствах уп- равления магнитной лентой, при выводе на перфокарты и вводе с перфокарт. Основная проблема при этом — вы- бор количества точек контроля (контролируемых регист- ров) и способа их размещения. При выборе количества точек контроля учитывается, что увеличение количества точек контроля увеличивает полноту контроля и умень- шает время обнаружения отказа, но влечет за собой уве- личение количества аппаратуры. Размещение точек конт- роля производится так, чтобы в первую очередь контро- лировались те регистры, которые используются наибо- лее часто. Кроме регистров аппаратному контролю могут подвергаться сумматоры, счетчики, дешифраторы и дру- гие функциональные узлы. Обоснованное техническое ре- шение находится расчетом вариантов. Контроль в процессорах с магистральной структу- рой. Несколько отличающийся подход при построении сис- 89
темы контроля встречается в процессорах с магистраль- ной структурой (например, ЕС-1033). В таком процессо- ре имеется несколько магистралей данных Mi, М2, М3, осуществляющие обмен данными между различными функциональными устройствами (1, 2, 3, ...) (рис. 4.14). Сами устройства не контролируются, а контролируются данные, поступающие на одну из магистралей, при по- мощи схем контроля четности Ki, К2, Кз. При этом отка- зы обнаруживаются достаточно быстро, так как обмен информацией между устройствами производится только Рис. 4.14. Схема процессора с магистральной структурой через магистрали, однако локализация, отказа, т. е. опре- деление функционального устройства, в котором произо- шел отказ, в данной системе затрудняется. Поэтому во- прос о локализации отказа решается при помощи диаг- ностических тестов, запускаемых после обнаружения от- каза. § 4.7. ПРОЕКТИРОВАНИЕ СИСТЕМЫ КОНТРОЛЯ Показателями при проектировании системы контроля ВС являются вероятность обнаружения ошибки р и матема- тическое ожидание среднего времени обнаружения ошиб- ки ?. Они, с одной стороны, могут быть легко определе- ны исходя из технических данных контролируемых уст- ройств и средств контроля (аппаратных или программ- ных), а с другой — позволяют переходить к показателям надежности системы. Требования, чтобы вероятность об- наружения ошибки была как можно больше, а среднее время обнаружения ошибки — как можно меньше, естест- венны. Выполнение этих требований возможно увеличе- нием количества средств контроля. Эти возможности ог- раничены, а, кроме того, средства контроля сами отказы- вают тем интенсивнее, чем больше их количество. Поэто- му при проектировании системы контроля для ВС сущест- во
вуют компромиссные варианты, выбор между которыми основан на сравнительном расчете. Применяемые сред- ства контроля могут действовать либо независимо друг от друга, либо осуществлять контроль различных частей аппаратуры. Практически независимо друг от друга дей- ствуют, например, аппаратные и программные средства контроля. Если же одни средства контроля реагируют только на отказы в одной части аппаратуры, а другие средства — на отказы только в другой, то каждый от- каз обнаруживается только одним средством контроля. В любом случае вероятность обнаружения отказа хо- тя бы одним средством контроля может быть оценена по формуле (4.16) где Xi — интенсивность отказов i-ro элемента (группы элементов) контролируемой аппаратуры; М — множест- во всех элементов системы; М0 — множество тех элемен- тов системы, отказы которых обнаруживаются средства- ми контроля. Однако применение (4.16) затруднено из-за большо- го числа элементов в системе. Поэтому интересен способ расчета по отдельным средствам контроля. При этом оп- ределяется вероятность обнаружения отказа £-м средст- вом контроля pk по формуле, аналогичной (4.16), одна- ко вместо М0 подставляется Мок — множество тех эле- ментов системы, отказы которых обнаруживаются k-u средством контроля. В случае, когда средства контроля действуют незави- симо друг от друга, вероятность того, что отказ обнару- живается хотя бы одним средством контроля, равна т />=1- П (1-/>*), (4.17) Л-1 где т — общее число независимых средств контроля. Чтобы оценить математическое ожидание времени об- наружения отказа в условиях наличия т независимых средств контроля, необходимо упорядочить эти средства по времени обнаружения отказов. Пусть /l^fe^...^**^ ^...^m> где tk — время обнаружения отказа £-м средст- вом. Тогда математическое ожидание времени обнару- жения отказа любым из т средств t = h + t2p2 (1 - Pi) + 'зРз (1 - Pi) О - P2) + ... . (4.18) 91
В случае, когда каждое средство контроля обнару- живает отказы только определенного подмножества эле- ментов, не пересекающегося с подмножествами элемен- тов, контролируемых другими средствами контроля, ве- роятность обнаружения отказа каким-либо из средств При этом математическое ожидание времени обна ружения Определив вышеизложенным способом вероятность обнаружения отказа и время его обнаружения, можно оценить среднее время восстановления контролируемой системы по формуле где А — коэффициент, определяющий время восстановле- ния информации в зависимости от времени обнаружения отказа (считается, что чем больше время обнаружения отказа, тем больше разрушается обрабатываемая инфор- мация и тем больше времени нужно для ее восстанов- ления); В— среднее время восстановления аппаратуры; D — среднее время восстановления информации в случае, когда отказ (сбой) не был обнаружен и обнаруживается только при анализе результатов вычислений; N — сред- нее число сбоев на один отказ аппаратуры. При выводе формулы (4.21) введено допущение о том, что обнаруженный сбой не вносит заметных задержек в работе ВС благодаря автоматическому восстановлению вычислительного процесса, а также допущение о том, что время восстановления информации пропорционально времени обнаружения отказа. Поэтому (4.21) нужно рас- сматривать как приближенную формулу. Пример расчета системы контроля центрального процессора. Пусть имеется центральный процессор ВС, состоящий из АЛУ и ОЗУ. Рассмотрим следующие методы контроля: П контроль всех регистров АЛУ по четности; 2) контроль главных регистров АЛУ по четности; 3) контроль операции суммирования по четности; 4) контроль дешифраторов; 5) контроль счетчиков; 6) программный контроль вычислений. т Р = 2 Рк- (4.19) (4.20) h = (Alp + B)/(N + 1) + D (1 - /?), (4.21) 92
Контроль всех регистров АЛУ по четности позволяет обнару- живать все отказы (сбои), которые приведут к искажению нечетно- го числа разрядов в регистре (см. § 4.2). Будем считать, что появ- ление двух, четырех или большего четного числа искаженных раз- рядов—события мало вероятные. При таком допущении, учитывая, что контроль по четности осуществляется при считывании информа- ции из регистра, где контрольный разряд был записан при записи информации в регистр, можно считать, что контроль позволяет об- наруживать все отказы в аппаратуре регистров. Кроме того, обна- руживаются также и отказы в отдельных ячейках ОЗУ, так как в ОЗУ записывается информация из регистров вместе с контрольным разрядом, а при считывании информации из ОЗУ производится конт- роль ее средствами контроля регистра. Контролю не подвергаются цепи управления регистров, цепи управления и адресации ОЗУ, цепи управления в АЛУ. Таблица 4.4 Метод контроля Рк 1 0,19 170 2 0,19 500 3 0,15 300 4 0,10 100 5 0,08 250 6 0,95 2.10е Допустим, что в состав процессора входит шесть регистров по восемь 4-разрядных ИС и еще 48 ИС для размещения запоминаю- щих элементов ОЗУ, а в состав АЛУ и ОЗУ — всего 500 ИС. Тогда, считая, что все ИС имеют одинаковую интенсивность отказов (см. табл. 1.1), по (4.16) имеем pi= (6-8+48)/500=0,19. Время обнаружения отказа складывается из времени выборки информации из регистра и времени сложения содержания разрядов регистра по модулю 2, что осуществляется пирамидальной схемой, состоящей из пяти последовательных каскадов сумматоров по мо- дулю 2. Пусть время выборки информации из регистра /Р=20 нс и вре- мя суммирования по модулю 2 /с=30 нс. Тогда общее время обна- ружения отказа данным методом ti = *р-f 5*с = 20 + 5-30 = 170 нс. Аналогичным образом находятся показатели рК и tK для осталь- ных средств контроля. Результаты расчетов приведены в табл. 4.4. Для сравнения методов контроля рассмотрим следующие четыре варианта комбинаций средств контроля; 1, 3; 2, 3; 1, 3, 4, 5; 1, 3, 4,5,6. Необходимо учесть, что обнаружение отказа одним из методов, перечисленных в первых трех комбинациях, исключает обнаружение отказа другим методом, поскольку соответствующие средства конт- роля охватывают различные элементы системы. 93
Поэтому здесь нужно использовать, формулы (4.19) и (4.20). Результаты соответствующих расчетов приведены в табл. 4.5. Значения р и I для первой строки таблицы определяется соот- ветственно по (4.19) и (4.20) Г= (170-0,19+300.0,15)/(0,19+0,15) = = 227 не. Аналогично определяются значения pat для следующих двух строк таблицы. Если же применяется также и метод контроля 6, не связанный с конкретными элементами системы, то необходимо пользоваться формулами (4.17) и (4.18). Тогда р= 1—( 1—0,52) (1—0,95) =0,976; 1=206-0,52+2.10б-0,95(1—0,52)»0,9Ы06 не. Таблица 4.5 7,.ч Комбинация методов контроля р /, НС 1,3 0,34 226 7,51 2,3 0,34 410 7,51 1, 3, 4, 5 0,52 206 5,71 1,3,4,5,6 0,976 0,91-10е 0,333 Следовательно, добавление метода 6 значительно увеличивает вероятность обнаружения ошибки, но также и среднее время обна- ружения. Далее определяется среднее время восстановления по (4.21). Пусть Л=105, £=1 ч, />= 10 ч, #=10. Тогда для комбинации ме- тодов 1,3 г в = (105 • 226 • 10-9 • 0,34 • 3600-1 +1) /11 +10 • 0,66=7,51 ч. Аналогично определяется время восстановления для других комбина- ций средств контроля. Из таблицы видно, что добавление программных средств конт- роля в данном конкретном случае значительно уменьшает среднее время восстановления. Приведенные результаты позволяют выбирать систему контроля в зависимости от количества и сложности необходимых средств контроля, а также от достижимых значений вероятности обнаруже- ния отказа (сбоя) и среднего времени обнаружения. Для оценки влияния надежности собственно средств контроля используется формула (4.15). Пример расчета коэффициента готовности центрального процес- сора с учетом контроля. Пусть имеется центральный процессор с интенсивностью отказов Xo=152-10-6 1/ч (см. пример на с. 54). Пусть в центральном процессоре применяются методы контроля 1, 3, 4, 5, 6, (предыдущий пример), характеризуемые условной вероятно- стью обнаружения отказа р=0,976 и средним временем восстанов- ления £=0,333 ч. Пусть А,к= 1,0-Ю-4 1/ч, Цк=1 1/ч, [iD= 1/0,333=34, ^f=0,01 1/ч. Тогда по (4.15) коэффициент готовности центрального процессора 162.10-6 152.10-6.1,0.10-4.2,99-(3+1) , Кгк-1- з - 32.Ы.01 -0.9999494. Полученный результат показывает, что ненадежность средств контроля в данном случае практически не снижает коэффициент го- 94
товности центрального процессора, так как третий член (4.15) намно- го меньше других членов. Если же интенсивность восстановления средств контроля не высокая, то коэффициент готовности процессо- ра снижается. Например, если |iK=10-3 1/ч, то t 152*10-6 152» 10-в. 1,0» 10-4.2,99.3 Л лло^ «"-'--Г—~ 3-2.10-з.Ц.Ю-з *0'9986' т. е. коэффициент готовности стал несколько меньше. Отметим, что низкая интенсивность восстановления средств контроля может быть обусловлена тем, что они не обладают самоконтролем и редко про- веряются. При обобщении проблемы распределения контролиру- ющих устройств в структуре ВС можно исходить из сле- дующих четырех прин- ципов (20]: _JR(?1 1) количество необ- наруживаемых ошибок должно быть мини- мальным, т. е. нужно обеспечить максималь- ную полноту контроля; 2) ошибку необхо- димо обнаруживать до того, как она распро- страняется при переда- че информации в раз- личные другие устрой- ства, поскольку тогда труднее восстанавливать искажен- ную информацию; 3) желательно, чтобы каждое устройство контроля контролировало небольшую часть аппаратуры для упро- щения диагностических процедур; 4) количество контрольной аппаратуры не должно превышать необходимый для выполнения первых трех требований минимум. Структуру ВС можно представить в виде некоторого циклического графа, дуги которого — устройства переда- чи, хранения и преобразования информации с одним вхо- дящим и с одним выходящим потоком, а вершины — уст- ройства для объединения и разветвления информации. С учетом сформулированных выше требований необ- ходимо контролировать работу всех устройств преобра- зования информации (комбинационной логики), посколь- ку после преобразования признаки ошибок не сохраня- ются. Если же в структуре ВС встречается последова- тельность передач информации (из регистра в регистр), Рис. 4.15. Фрагмент схемы ЭВМ с контролем
то в целях экономии аппаратных средств контроля до- статочно контролировать один регистр из последователь- ности и по возможности тот, через который проходит ин- формация от остальных регистров. На рис. 4.15 показан небольшой фрагмент структуры ВС, состоящий из регистров RG1, RG2 и RQ3 и комбина- ционной логической .схемы Л1. Регистры RG1 и RG2 в отдельности контролировать не надо, поскольку инфор- мация от них попадает в регистр RG3 вместе с контроль- ным разрядом, где и может быть проверена контроли- рующим устройством Л 4. В комбинационной схеме Л1 признак четности или нечетности изменяется и поэтому эту схему надо контролировать в отдельности, образова- нием нового (предсказанием) контрольного разряда или другим способом, с помощью логических схем Л2, ЛЗ и Л5. Сигнал об ошибке появляется на выходе Н. Пример распределения контролирующих устройств в ЭВМ ЕС-1045. В этой ЭВМ контролируются: 1) оперативная память (проверкой на наличие двойных ошибок с исправлением одиночных (с применением кодов Хэмминга)); 2) сумматоры и схемы управления (их дублированием и сравне- нием результатов); 3) регистры, передачи и внутренние ЗУ (контролем на нечет- ность) ; 4) дешифраторы (разделением их выходов на две группы со сравнением количества активных выходов); 5) схемы контроля (методами самоконтроля); 6) счетчики (предсказанием четности содержания счетчика); 7) акселератор (схема ускорения сложения в главном суммато- ре) (контроль по модулям 9 и 15); о) вычислительные процессы (подсчетом времени их выполнения и сравнением с допустимым значением); 9) каналы и интерфейсы (методами микропрограммного конт- роля). Различается контроль на четность и на нечетность. При контроле на четность код вместе с контрольным раз- рядом должен содержать четное количество единиц, при контроле на нечетность — нечетное. Второй метод контроля предпочтителен, поскольку в отличие от первого позволяет обнаруживать отказы типа отключения «питания от контролируемого устройства. Контроль на четность по этой же причине применяется в устройствах, работающих обратными кодами. Схемы контроля постоянно присоединены к контро- лируемым устройствам. Сигналы об ошибках от выходов этих схем передаются в регистр ошибок, имеющий две ступени: содержание первой ступени обновляется в каж- 96
дый такт работы машины; содержание второй ступени сбрасывается периодически. Выходы второй ступени соединены со схемами сигнализации и регистрации оши- бок. В зависимости от характера ошибок производится прерывание или сигнал прерывания замаскируют. Контрольные вопросы и задачи 1. Охарактеризуйте преимущества и недостатки оперативного и тестового контроля; аппаратного и программного контроля. 2. Приведите пример составления контрольных функций. 3. Составьте выражения для контроля результатов по гладкости. 4. Оцените зависимость полноты контроля от величины модуля при контроле по модулю. 5. Поясните разницу между числовым и цифровым контролем по модулю- охарактеризуйте области их применения. 6. Составьте схему для контроля операции вычитания по мо- дулю. 7. Составьте схему вычисления остатка по модулю 5; 11; 13, если число представлено в двоичном позиционном коде. 8. Составьте тесты для тестирования логической схемы сумма- тора на три входа; схемы неравнозначности; дешифратора. ГЛАВА 5 МЕТОДЫ ДИАГНОСТИРОВАНИЯ § 5.1. ОСНОВНЫЕ ПОЛОЖЕНИЯ Под диагностированием подразумевается процедура ло- кализации неисправности объекта, т. е. установления то- го, какая часть диагностируемого объекта неисправна. При диагностировании проводится установление неис- правности объекта на более низком иерархическом уров- не, чем при контроле (ГОСТ 20911—75). Иногда контроль рассматривается как частный случай диагнос- тирования [18]. Продолжая спускаться по иерархической структуре объекта диагностирования, можно доходить до любого желаемого уровня иерархии, до отдельных контактных соединений, радиодеталей или даже частей их конструк- ции. Мерой проникновения по иерархии объекта является глубина диагностирования. Принято говорить, что метод диагностирования обладает глубиной на уровне элемен- тов, ТЭЗов, блоков и т. д. 4-595 97
Требование большой глубины диагностирования уве- личивает сложность, стоимость и продолжительность соответствующей диагностической процедуры. Поэтому необходимо выбрать такой метод диагностирования, ко- торый обеспечил бы необходимую глубину диагностиро- вания при минимальном расходе времени и средств. Вопрос о выборе глубины диагностирования решается исходя из организации процессов восстановления. В целях быстрого восстановления системы и при на- личии резервных устройств целесообразно ограничиться сначала установлением отказавшего устройства. Эта за- дача решается в большинстве случаев средствами ап- паратного контроля, без привлечения программных мето- дов тестирования. Резервные устройства могут быть ис- пользованы для продолжения работы системы; при однотипных работающих устройствах в системе оно мо- жет продолжать работу при сниженной производитель- ности. Далее отказавшее устройство может подвергаться дальнейшему диагностированию в автономном режиме, в то время как система продолжает работать. При диагностировании отказавшего устройства при большей глубине диагностирования устанавливается от- казавший ТЭЗ (или их группа). Далее отказавший ТЭЗ может быть заменен и восстановленное устройство воз- вращено в систему. Наконец, подвергая отказавший ТЭЗ еще более глубокому тестированию на специальном стенде, становится возможным его восстановление путем замены его отказавших радиокомпонентов. Таким образом, задача диагностирования может быть решена методами контроля на том или другом иерархи- ческом уровне объекта контроля; процедуры контроля можно рассматривать как частный случай процедур ди- агностирования при наименьшей глубине. Задачи диаг- ностирования могут быть решены как аппаратными, так и программными средствами. Возможные способы тестирования — комбинационный и последовательный. В первом случае анализируется лишь комбинация исходов всех элементарных тестов, по- рядок исполнения которых может быть произвольным. Во втором случае анализируется исход каждого очеред- ного теста. Процедура испытаний заканчивается, как только накопленная информация- окажется достаточной для локализации неисправности. Последовательное тестирование может быть упорядо- ченным, когда отдельные элементарные тесты использу- 98
ются в некоторой заранее фиксированной последователь- ности, и условным, когда выбор каждого следующего те- ста зависит от результата предыдущего. Во всех названных случаях задача построения допу- стимой системы тестов может быть представлена в виде дерева тестов, представляющего собой граф (рис. 5.1), показывающий, как в результате каждого теста происхо- дит разделение множества возможных технических со- стояний объекта Е на два подмножества: подмножество состояний, которые могли обусловливать полученный ре- зультат теста, и подмножество состояний, при которых Рис. 5.1. Дерево тестов исключается получение того результата тестирования, что был получен на самом деле. Например, если тест за- действует часть элементов объекта тестирования и ре- зультат теста отличается от эталонного значения, то отказ может находиться только в той части объекта, ко- торый был задействован тестом. Допустим, что тест Тх разделит множество Е на под- множества Ео и Е\, тест Т2 — на подмножества Ею и Ец (если по результатам теста Т\ фактическое состояние объекта входит в подмножество Ег). Продолжая прове- дение различных элементарных тестов, в результате мо- жет быть выделено подмножество Ец.,,i, включающее искомое, фактическое состояние объекта. Отдельные те^ сты могут быть построены различными способами, в том числе и способами, рассмотренными в гл. 4; важно толь- ко, чтобы в зависимости от результатов теста можно было разделить подмножества возможных и невозмож- ных состояний тестируемого объекта. Однако построен-^ ная таким образом система диагностического тестирова- ния может обладать (в этом легко убедиться на приме- рах) значительной избыточной трудоемкостью. Поэтому целесообразно сразу, при построении систем элементар* ных тестов, задаваться целью построения оптимальной 4* 99
или по крайней мере достаточно экономной системы те- стов. Критерием оптимальности системы диагностических тестов, реализуемой программными средствами, являет- ся либо время, затрачиваемое на тестирование, либо не- обходимый объем памяти, либо трудоемкость проведения теста, либо некоторый (комбинированный) экономиче- ский критерий. Ниже в качестве собирательного термина будем гово- рить о цене теста. Допускается, что цена теста обладает аддитивным свойством, т. е. общая цена системы тестов равна сумме цен элементарных тестов. В простейшем случае цена системы тестов определяется количеством элементарных тестов. Тогда считается, что элементарный тест обладает единичной ценой. § 5.2. МЕТОДЫ ПОСТРОЕНИЯ ДИАГНОСТИЧЕСКИХ ТЕСТОВ Элементарные диагностические тесты могут быть по- строены такими же методами, как и контрольные (см. § 4.4). Рассмотрим вопросы построения набора или по- следовательности элементарных диагностических те- стов. Задача построения достаточного набора или последо- вательности диагностических тестов имеет множество решений. Для нахождения этих решений удобно исхо- дить из таблицы покрытий. Таблицей покрытий в случае диагностических тестов называется таблица, строки которой соответствуют воз- можным элементарным тестам, а столбцы — парам воз- можных состояний объекта, различаемых данным тестом. Следовательно, каждый столбец таблицы покрытий для диагностических тестов образуется как поэлементное сложение по модулю 2 сопоставляемых пар столбцов таблицы покрытий для контрольных тестов. Построение минимального покрытия осуществляется так же, как в случае контрольных тестов (см. § 4.4). Если исследуемый объект может находиться в п неис- правных и в одном исправном состоянии, то контрольные тесты должны различать любое неисправное состояние от исправного, т. е. определять принадлежность объекта одному из двух подмножеств — подмножеству неисправ- ных или подмножеству исправных состояний объекта. Для этого нужно просматривать п пар состояний. 100
При построений диагностических тестов необходимо просматривать т=С2п+\ пар состояний, чтобы различать последних друг от друга. Например, если имеется десять неисправных состояний и одно исправное, то число пар состояний, которые необходимо различать друг от друга, составляет С2ц=55. Пример построения таблицы покрытий для диагностических тес- тов. Рассмотрим таблицу покрытий, приведенную в примере на с. 79. Для упрощения в таблицу покрытий (табл. 5.1) включены толь- ко пары отказов в точках 5, 6, 7 схемы на рис. 4.8. Табл. 5.1 состав- лена сопоставлением пар столбцов табл. 4.3, указанных в заголовке табл. 5.1. Единица ставится в каждом столбце тогда, когда соответ- ствующие элементы сопоставляемых столбцов отличаются друг от друга. По таблице можно определить, что минимальное покрытие состоит из трех тестов, например Г., Г2 и Г8. Таблица 5.1 Вход- ной набор Пары неисправностей Тесты 60-61 50-60 50-61 60-70 I ! to 61—61 I s I to 60-61 60-70 60-71 I 3 (O I T\ 0101 1 1 1 1 1 1 ] 1 1 1 T2 ОНО 1 1 1 1 1 1 1 11 Ts 0111 1 1 1 1 1 1 1 11 TA 1001 1 1 1 1 1 1 1 1 Ть 1010 1 1 1 1 1 1 1 i 1 Те 1011 1 1 1 1 1 1 11 т7 1101 1 1 1 U 1 i 11 1 Те 1110 1 1 1 Л 1 i 11 1 Рассмотренный в примере метод построения диагно- стических тестов относится к методам безусловного те- стирования. Большую практическую ценность имеют ме- тоды условного тестирования, когда каждый последую- щий тест выбирается в зависимости от результатов про- ведения предыдущего теста. Поиск неисправностей при условном тестировании может быть представлен в виде дерева, корнем которо- го является первый тест. Остальные вершины дерева изображают тогда другие тесты, а дуги дерева — перехо- ды от теста к тесту. Назовем рангом вершины дерева число дуг пути, начинающегося от корня дерева и закан- чивающегося данной вершиной. Таким образом, первый тест изображается вершиной нулевого ранга, второй тест — вершиной первого ранга и т. д. Каждая ветвь де- 101
рева должна заканчиваться вершиной, соответствующей определенному состоянию тестируемого объекта, т. е. от- сутствию неисправности или наличию определенного вида неисправности или их комбинации. Если дерево дихотомическое, т. е. степень по выходу каждой вершины дерева равна двум, и если каждый тест разделит множе- ство возможных неисправностей на два равных подмно- жества, то после первого теста имеется два подмножест- ва, после второго — четыре и в общем случае число раз- личимых состояний объекта после п тестов равно 2п. Как правил), отдельные элементарные тесты не равноценны и возникает вопрос о целесообразной последовательности их про- ведения. Метод построения квазиоптимальных тестов Шенно- на— Фано. Допускается, что в диагностируемом объекте имеется одна неисправность (факт наличия неисправно- сти установлен методами контроля). Каждому из неис- правностей приписывается вероятность pi того, что име- ет место именно данная i-я неисправность. Согласно сделанному допущению 2 р*=1. Вероятности могут быть определены известными методами расчета надежности. Первый тест выбирается так, чтобы он разделил множе- ство возможных неисправностей объекта на два подмно- жества с примерно равными суммарными вероятностями входящих неисправностей. Тест должен определить, в какой из двух подмножеств входит имеющаяся неисправ- ность. Затем подбирается тест, разделяющий таким же образом на приблизительно равновероятные подмноже- ства то подмножество, в котором, как было установлено, находится неисправность и т. д. до достижения полной или достаточной определенности относительно местона- хождения неисправности. Пример тестирования логической схемы (см. пример на с. 79). Допустим, что все 14 неисправностей — равновероятные. В качестве первого теста выбирается тест Ть разделяющий в зависимости от исхода теста (обнаруживается неисправность или нет) возможные неисправности на подмножества: {10, 21, 30, 41, 51, 61, 70} и {11, 20, 31, 40, 50, 60, 71}. Допустим, что тест 7*1 не обнаружил неис- правность. Тогда неисправность входит в первое подмножество. В качестве следующего теста может быть выбран тест Те, разделя- ющий первое подмножество на подмножества {10, 21,, 41, 51} и {30, 61, 70}. Таким образом, строится полное диагностическое дерево (рис. 5.2), позволяющее за 3—4 теста полностью определить, какая из 14 одиночных неисправностей имеет место в данной схеме. 102
Принцип условного тестирования полностью приме- ним и на более высоких иерархических уровнях аппара- туры. Декомпозиция диагностируемого объекта. В случае диагностирования сложных схем полезным приемом яв- ляется разделение диагностируемой логической схемы на более простые составляющие, т. е. декомпозиция объекта. Целесообразно проводить декомпозицию так, чтобы в Рис. 5.2. Дерево тестов, построенное методом Шенно- на— Фано результате схема была представлена в виде совокупно- сти одновыходовых подсхем. Тогда входы каждой одно- выходовой подсхемы определяются либо входами схемы, либо выходами предыдущих подсхем, что позволяет под- бирать необходимые тесты для отдельных подсхем. Ко- нечно, может случиться, что входами данной подсхемы будут выходы других подсхем и входы схемы, причем последние предопределяют первые, и поэтому нельзя подавать любые желаемые комбинации входов на дан- ную подсхему. В таком случае кроме разделения схемы на одновыходные подсхемы необходимо предусмотреть возможность размыкания выходов отдельных подсхем. Максимальные одновыходовые подсхемы можно выде- лить на графе логической схемы как подграфы с макси- мальным числом вершин, удовлетворяющие требованию, что все исходящие из данного подграфа дуги должны исходить из одной и только из одной вершины, принадле- жащей данному подграфу. 103
Ниже приводятся этапы алгоритма выделения одно- выходовых максимальных подсхем из многовыходовой схемы комбинационной логики [18]: Этап 1. Построить граф схемы, где вершины графа соответствуют логическим элементам схемы, а дуги гра- фа — связям между выходами и входами элементов. Вы- ходы схемы выделить в виде отдельной вершины графа, обозначаемой через «в». Рис. 5.3. Пример схемы комбинационной логики Этап 2. Представить схему в виде таблицы, где единицы проставляются в пересечениях строки, соответ- ствующей началу дуги со столбцом, соответствующим окончанию дуги. Вершине «в» соответствует, следователь- но, только столбец «в» таблицы. Этап 3. Найти строку, содержащую единицу в столб- це выходов «в» и отметить ее. Этап 4. Отметить столбец, носящий номер отмечен- ной строки. Этап 5. Найти строку, содержащую единицу только в отмеченном столбце. Если такая есть, то отметить ее и переходить на э. 4, иначе к э. 6. Этап 6. Объединить номера отмеченных строк в одно подмножество, подчеркнуть в этом подмножестве номер строки, выбранной на э. 3, и вычеркнуть отмечен- ные строки и столбцы из таблицы. Если при вычеркива- нии столбцов вычеркивается хотя бы одна единица в неотмеченной строке, то в этой строке поставить едини- цу в столбце «в». Если остались невычеркнутые столбцы и строки, то возвращаться к э. 3, иначе к э. 7. 104
Этап 7. Построить обобщенный граф схемы, где вершинам соответствуют подмножества элементов, выде- ленные на э. 6, а дуги между вершинами связывают под- черкнутые на э. 6 элементы схемы. Конец. Рис. 5.4. Граф схемы (рис 5.3) Пример выделения максимальных одновыходовых подсхем. Дана комбинационная логическая схема рис. 5.3. Граф схемы изображен на рис. 5.4. Табл. 5.2 составлена согласно этапу 2 алгоритма, рас- смотренного выше. {6,7,9,10} Таблица 5.2 1 2 3 4 5 61 71 8 91 101 в 1 1 1 ■ 1 I Ч ' (1) 1 1 1 1 1 1 1 1 105
В табл. 5.2 отмечается восклицательным знаком (1) строка 10 (согласно этапу 3) (можно и начинать отметку от строки 5 или 8); далее отмечается столбец 10 (этап 4)—строка 9 (этап 5), как со- держащую единицу в столбце 10 — столбец 9 (этап 4)—строка 7 (этап 5)— столбец 7 (этап 4)—строка 6 (этап 5)—столбец 6 Таблица 5.3 1 2 3! 4 5 81 в 1 1 1 (о 1 1 (1) 1 1 (3, 8} (этап 4). Согласно этапу 5, поскольку более нет строк, содержащих единицу только в отмеченном столбце, выполняется этап 6. В резуль- тате вычеркиваются строки и столбцы таблицы, составляется под- множество отмеченных строк и подчеркивается номер 10 (см. под- множество вверху табл. 5.2). Поскольку в табл. 5.2 вычеркивают- ся единицы в четвертой, неотмеченной строке, в столбце «в» ставит- Таблица 5.4 1! 2 4 5! в 1 1 (1) 1 (1) 1 ся дополнительная единица (отмечена скобками). После вычерки- вания отмеченных строк и столбцов остается табл. 5.3, обрабатывае- мая начиная с этапа 3. Далее аналогично получаются табл. 5.4—5.6. Согласно этапу 7 строится обобщенный граф схемы (рис. 5.5), из которого следует, что схема рис. 5.3 подразделяется на одновы- ходовые подсхемы, включающие элементы (2), (4), (1, 5), (3, 8) и (6, 7, 9, 10). Построение диагностических тестов начинается с эле- мента 2, затем, рассматривая выход элемента 2 как вход для эле- ментов 4 и 8, строятся тесты для подсхем (4) и (3, 8), а затем, рассматривая выход элемента 4 как вход для подсхем (1, 5) и (6, 7, 9, 10), строятся тесты для последних. 106
Составление диагностических тестов даже для про- стейших схем комбинационной логики достаточно слож- ная задача, которая усложняется еще более, если учесть, что современные БИС представляют собой сложные ав- Таблица 5.5 2 4! в 1 (1) (1) {4} томаты с памятью, содержащие тысячи, десятки или сотни тысяч элементов. Проблема диагностирования схем усложняется еще из-за того, что принятая обычно теоретическая модель схемы с отказами соответствует Таблица 5.6 (1) (2] схеме с одиночными отказами типа «постоянный нуль» или типа «постоянная единица». На самом же деле в тестируемых схемах могут встречаться несколько отказов одновременно, что, в свою очередь, значительно затруд- няет диагностирование. Среди направлений иссле- дования и разработок,позволя- ющих в той или иной мере пре- одолеть названные трудности, следует отметить: 1) разделе- ние сложной схемы на части; 2) построение схем, приспособ- ленных к диагностическим про- цедурам; 3) применение тес- тов, построенных эксперимен- тально. Первое направление — раз- деление сложной схемы на час- ти — связано с выводом отдельных точек из тестируемой схемы или проектированием перемычек между частями схемы, которые при тестировании могут быть разомкну- ты. Перемычки могут быть либо технологические, кото- Рис. 5.5. Обобщенный граф схемы (рис. 5.3) 10Г
рые необходимо размыкать отсоединением проводников, водников, либо содержать электронные ключи, обеспечи- вающие размыкание. Метод дает надежные результаты, однако связан с усложнением БИС и увеличением числа внешних выводов, которых и без учета потребностей диагностирования получается большое количество. Когда схема содержит обратные связи, т. е. является конечным автоматом с памятью, часто целесообразно предусмотреть внешние выводы, позволяющие в случае необходимости размыкать обратные связи, чтобы можно было тестировать части конечного автомата как комби- национные схемы и элементы памяти. Элементы памяти тестируются записью определенной комбинации нулей и единиц (конфигурации), которая затем считывается и проверяется сравнением с исходной комбинацией нулей и единиц. Диагностирование памяти произвольного доступа по- рождает специфическую проблему зависимости неисправ- ности данной ячейки от содержимого других ячеек па- мяти, т. е. недостаточно проверить каждую ячейку па- мяти на правильное хранение, запись и считывание, но это необходимо проделать в общем случае при всех воз- можных состояниях других ячеек. Однако такое тестиро- вание приводит к необходимости тестировать память при всех возможных совокупностях чисел, записанных в па- мять, другими словами, необходимо проводить N=2n тестов, где п — объем памяти в битах. При реальных объемах памяти это совершенно невозможно из-за боль- шого количества тестов. Поэтому выдвигается гипотеза о том, что на запись в данную ячейку влияет прежде всего запись в соседних ячейках и что это влияние наи- большее, если в соседних ячейках имеется однородная запись (везде нули или везде единицы). При таком прин- ципе тестирования памяти возможны реализуемые объемы тестов. Второе направление — построение схем, приспособ- ленных к диагностическим процедурам, — включает схе- мы с встроенным аппаратным контролем отдельных ча- стей схемы (ТЭЗов). Контроль основан на аппаратном контроле значительного числа элементов и логических схем ЭВМ. В этих целях широко применяется контроль по четности (см. § 4.2). Контролируются передачи, хра- нение и основные этапы преобразования информации. При преобразовании информации, влияющем на чет- ность, выполняются предварительная проверка четности, 108
преобразование и формирование новых контрольных бит для преобразования информации. При этом непосредст* венный контроль четности может производиться только на основных рабочих регистрах. Остальные регистры проверяются в момент передачи их содержимого на не- посредственно контролируемые регистры. Встроенный контроль позволяет практически сразу обнаруживать однократные неисправности до распро- странения ошибок, вызванных неисправностью, поэтому отпадает необходимость в способах контроля, позволяю- щих обнаруживать кратные ошибки. Третьим направлением исследований и разработок является экспериментальное (вероятностное) построение диагностических тестов [13]. Принцип экспериментальных методов построения диагностических, а также контроль- ных тестов весьма прост. Основой экспериментального построения тестов явля- ется генератор псевдослучайных чисел, представляющий собой некоторый конечный автомат, который- через опре- деленное, обычно достаточно большое число промежуточ- ных состояний возвращатся в исходное состояние и начи- нает новый цикл, где повторяются все предыдущие состояния в прежней последовательности. Максимальная длина цикла #=2Л, где /г—число ячеек памяти автома- та. При достаточно большом числе N и соответствующем способе построения автомата отдельные его внутренние состояния представляются почти как случайными, отсю- да и название—псевдослучайная последовательность. Вторая важная часть эксперимента — внесение искус- ственных неисправностей в исследуемую схему или в ее модель, реализуемую программными средствами. Есте- ственно, что реакция исследуемой схемы на одну и ту же последовательность псевдослучайных кодовых комби- наций на входе будет одна для исправной схемы и дру- гая для каждой из неисправностей. Однако запоминание этих выходных последовательностей требует значитель- ных объемов памяти. Поэтому целесообразно сжимать эту информацию, сохраняя наиболее характерную часть от всей информации (сигнатуру, см. § 4.4). Сигнатурой s может являться взвешенная сумма вы- ходных сигналов yt схемы в = 2 аЛ» <*<— вес°в вые коэффициенты. В простейшем случае а*=1 для i— 1, No, a #о — число тестов* 109
Пример экспериментального построения тестов. Пусть имеется простая логическая схема рис. 5.6, реализующая функцию у=х\\/ \/ХМXzXt=x\x2\/*ъХ\. При неисправности типа «постоянный нуль» на выходе элемента 1 реализуемая функция имеет вид #io=WU; в случае неисправности типа «постоянный нуль» на выходе элемен- / 1 з ц. Рис. 5.6. Пример простей- Рис. 5.7. Схема генерато- шей схемы комбинацион- ра псевдослучайных чи- ной логики сел та 2 функция имеет вид t/2o=si*2; в случае неисправности типа «по- стоянный нуль» на выходе элемента 3 функция имеет вид #зо=0, а при неисправностях типа «постоянная единица» на выходе элемен- тов либо первого, либо второго, либо третьего функции имеют вид 1/11=1/21 = 1/31=1. Для экспериментатора не требуется знания функ- ций, реализуемых исправной схемой и схемой с различными неис- правностями. Таблица 5.7 Но- мер У Уха 1/20 1/50 У\\ -1/21 -1/31 1 1 0 0 0 8 0 0 0 0 1 2 0 1 0 0 4 0 0 0 0 1 3 0 0 1 0 2 1 0 1 0 1 4 1 0 0 1 9 0 0 0 0 1 5 1 1 0 0 12 0 0 0 0 1 6 0 1 1 0 6 0 0 0 0 1 7 1 0 1 1 11 1 1 0 0 1 8 0 1 0 1 5 0 0 0 0 1 9 1 0 1 0 10 0 0 0 0 1 10 1 1 0 1 13 0 0 0 0 1 11 1 1 1 0 14 0 0 0 0 1 12 1 1 1 1 15 1 1 0 0.1 13 0 1 1 1 7 1 1 0 0 1 14 0 0 1 1 3 1 1 1 0 г 15 0 0 0 1 1 1 0 - 1 0 1 16 1 0 0 0 8 5 ==6 sl0=4 s2o=3 *зо=0 Sn=s2i=S3i = 15 110
При помощи генератора псевдослучайных кодовых комбинаций (рис. 5.7), состоящего из 4-разрядного сдвигающего регистра RG и фсемы сложения по модулю 2 М2, генерируется начиная от старто- вого кода 1000 последовательность из пятнадцати четырехзначных кодов, с возвратом в исходное состояние. В табл. 5.7 приведены номера тактов сдвига сдвигающего регистра, элементы кодовых комбинаций х\, х% х+ после каждого сдвига, десятичное значение кодовой комбинации хд, образуемого из элементов хь хъ *з, Хь зна- чения выходной функции у тести- руемой схемы при исправном сое- х — тоянии и при однократных неис- Г& правнретях у, ую, jfco, Jfeo, Уп = J =£^2i =г Уз1 и соответствующие сиг- 1^ Натуры S, Sio, S20, $30 И Su=521= =s8b которые при а* = 1 опреде- ляются при помощи счетчика на _ А выходе исследуемой схемы у. Рис- 5-8- Схема простейшего Как следует из табл. 5.7, сиг- автомата натуры для части однократных ошибок отличаются друг от друга. Определив их однажды для дан- ной схемы чисто экспериментальным путем, при помощи простой установки, состоящей из генератора псевдослучайных чисел и счет- чика выходных импульсов, можно всегда в процессе серийного изго- товления или эксплуатации провести диагностирование данной схе- мы на этой же установке. Таблица 5.8 Состояние схемы Переменные X У г Исходное 0 1 0 Тест 1 1 0 1 Тест 2 0 1 1 Тест 3 1 1 0 Тест 4 0 1 1 Установка может быть еще более упрощена, если вместо счет- чика использовать сдвигающий регистр с обратными связями типа, показанными на рис. 5.7. В таком случае сигнатурой будет не сумма единиц на выходе тестируемой схемы, а некоторый код, зависящий от числа поступающих единиц. Отметим, наконец, что генераторы псевдослучайных чисел и анализаторы результатов тестирования могут быть осуществлены не только аппаратными, но и про- граммными средствами. Тестирование схем с памятью производится так же, как и тестирование комбинационных схем, однако перед каждой серией тестов для условно комбинационной схе- 111
мы внутренняя память схемы устанавливается в новое состояние при помощи специально подобранных сигна- лов, или же перед каждым новым тестом учитывается внутреннее состояние схемы, которое должно было уста- навливаться после предыдущих тестов и подбирается следующий тест как бы для комбинационной схемы, од- нако с учетом фактического внутреннего состояния. При этом пригодны рассмотренные выше методы минимиза- ции тестовой последовательности. Тестирование схем с памятью является в принципе тестированием при помощи условных тестов, так как при проведении каждого последующего теста необходимо учитывать состояние, в которое схема была приведена предыдущими тестами. Пример тестирования схемы с памятью. На рис. 5.8 приведена схема простейшего автомата, состоящего из схемы И—НЕ и триг- гера со счетным входом. В табл. 5.8 приведены последовательность тестов х=01010 и соответствующие значения у и г при начальном состоянии 2=0. Из таблицы следует, что такая последовательность тестов полная, поскольку триггерная ячейка и логическая схема про- ходят в ходе теста через все состояния. § 5.3. ОРГАНИЗАЦИЯ СИСТЕМЫ ДИАГНОСТИРОВАНИЯ Современные ВС обладают развитыми средствами конт- роля и диагностирования. Цель применения этих средств — в первую очередь способствовать наиболее быстрому восстановлению системы путем локализации отказов при глубине диагностирования, достаточной для обнаружения и замены отказавшего устройства, блока или ТЭЗа. Кроме того, диагностирование служит для профилактики отказов — выявлению и удалению элемен- тов с ухудшенными характеристиками. Это достигается тестированием в искусственно утяжеленных условиях работы элементов, например при пониженном напряже- нии питания. Наконец, диагностические средства могут служить для автономной (отдельной от ЭВМ) проверки подсистем с целью их восстановления путем замены от- казавшего элемента. Для этого необходима большая глубина диагностирования. Обнаружение и обработка ошибок в ВС. Диагности- рование опирается на схемные средства контроля, про- веряющие работу основных устройств и узлов ЭВМ, в том числе информационную часть ОЗУ (по четности или методами кодирования с обнаружением и исправлением 112
ошибок); регистры (контроль по четности); дешифрато- ры (по количеству выходных сигналов); нарушение вре- менных соотношений (зацикливание), при помощи спе- циальных счетчиков времени; собственно средства конт- роля (по принципу самоконтроля). Сигналы об ошибках, поступающих от схемных средств контроля, записываются в триггерах, образую- щих регистр ошибок. При обнаружении схемными средствами контроля машинной ошибки производится блокировка управляю- щих синхроимпульсов, т. е. прекращается выполнение команд. Для обеспечения повторяемости функции, вы- полняющейся в момент сбоя, предусмотрено сохранение некоторых исходных данных, сохранение данных о вы- полняемой функции, передача управления средствам восстановления, устранение последствий сбоя, восстанов- ление определенных регистров в состояние, в котором они находились до сбоя, и организация повторной по- пытки выполнения функции. При успешном повторении команды прерывание подавляется, т. е. работа системы продолжается. В противном случае производится преры- вание и управление передается программе обработки ошибок операционной системы, которая записывает дан- ные об ошибке в системный журнал —зону, отведенную в памяти машины. В случае наличия работоспособного диагностирующего ядра запускаются диагностирующие программы, монополизирующие управление ЭВМ, т. е. исключающие выполнение каких-либо других программ. При обнаружении ошибки происходит останов теста. Проведение диагностических тестов. Диагностирова- ние начинается от тестирования начальной области ОЗУ, что осуществляется тестами под управлением ОЗУ. За- тем запускаются тесты под управлением ОЗУ, включаю- щие тесты ядра ОЗУ и тесты ПЗУ. Тесты под управлением ПЗУ тестируют ядро режима ПЗУ, запоминающие и комбинационные схемы процес- сора. Дальнейшее продолжение диагностики ЭВМ осуще? ствляется с помощью программных средств, использую- щих специальную команду «Диагностика». Под програм- мным управлением осуществляется тестирование мульти- плексных и селекторных каналов. Процесс диагностиро- вания продолжается под управлением диагностического монитора и осуществляется с помощью функциональных тестов, проверяющих правильность работы всех ячеек 113
оперативной памяти, системы прерывания, интерфейса и периферийных устройств. Информация о неисправностях выдается на печать с указанием, какой ТЭЗ подлежит замене. Диагностические тесты могут быть построены: 1. Методом, основанным на малом начальном коли- честве тестируемых схем (метод расширяющихся обла- стей). При каждом новом тесте охватывается уже про- веренная схема с некоторым приращением. Когда новый тест дает отрицательный результат, предполагается, что неисправность находится в группе схем, дополнительно охваченных данным тестом. 2. Методом пересечений, основанным на том, что если два теста с различными областями охвата дают от- рицательный результат, то предполагается, что неисправ- ность находится в пределах пересечения областей охвата этих тестов. 3. Методом дерева тестов, предполагающего, что те- стирование начинается с тестирования большой схемы. Последующие тесты охватывают все меньшую и мень- шую область, уточняя тем самым местонахождение не- исправности. Контроль и диагностирование периферийных уст- ройств. Контроль и диагностирование периферийных устройств принципиально не отличаются от контроля и диагностирования центральных устройств ЭВМ, однако имеют некоторые особенности. Эти устройства состоят из собственно периферийных устройств электромехани- ческого типа (НМЛ, НМД, устройства чтения перфокарт и перфолент, печатающие устройства и др.) и электрон- ных устройств управления ими. Последние имеют стан- дартное сопряжение с каналом ЭВМ. Диагностирование периферийных устройств может быть осуществлено центральным процессором, имитато- ром канала, тестером или при помощи встроенных в пе- риферийное устройство средств [13]. Тестирование периферийных устройств центральным процессором производится в режиме разделения време- ни, без прекращения решения эксплуатационных задач. Выполняемая периферийным устройством операция за- дается управляющим словом канала. Результат опера- ции представляется в виде слова состояния канала, со- держащего информацию о том, было ли устройство занято ранее начатой операцией, окончены ли операции канала и периферийного устройства, была ли ошибка в 114
работе устройства. При необходимости осуществлять более подробное тестирование работы периферийного устройства применяется специальный приказ «уточнить состояние». В результате тестирования выдается код уточ- ненного состояния, содержащий информацию о том, что команда отвергнута (если по каким-либо причинам она не может быть выполнена), требуется вмешательство оператора, имеется ошибка на шинах канала, произошел сбой в схемах периферийного устройства, имеется ошиб- ка в данных или канал не успел обслужить периферий- ное устройство. В зависимости от типа периферийного устройства код уточненного состояния может содержать различную дополнительную диагностическую информа- цию. Тестирование периферийных устройств при помощи процессора выполняется под управлением программ не- автономного тестирования периферийных устройств, за- писанных на магнитной ленте, откуда необходимые тест- секции вызываются при помощи загрузочной прог- раммы. Диагностирование при помощи центрального процес- сора осуществляется в виде диагностических приказов. Выполнение каждого диагностического приказа связано с выполнением периферийным устройством определен- ных функций. Правильное выполнение этих функций обусловливает определенный результат, который можно предсказать. Расхождение результатов говорит об ошибке. Для диагностирования некоторых периферийных уст- ройств (дисплея, устройства ввода с перфокарт) выпол- няется последовательность диагностических приказов, охватывающих постепенно все большее и большее коли- чество выполняемых функций. В таком случае появление ошибки после какого-либо диагностического приказа го- ворит о том, что ошибка произошла при выполнении тех функций, которые прибавились при выполнении послед- него приказа. Диагностирование периферийных устройств при по- мощи имитаторов канала. Диагностирование периферий- ных устройств при помощи имитаторов канала отлича- ется тем, что имитатор канала, используемый для тести- рования, является автономным устройством. Это может быть сложное устройство, предусматривающее возмож- ность выполнения сложной программы тестирования, загружаемой в оперативную память имитатора. Имита- 115
тор канала включает также средства анализа результа- тов тестирования. Диагностирование периферийных устройств при помо- щи тестеров. Диагностирование периферийных устройств при помощи тестеров основано на применении автоном- ных диагностических устройств с заданным набором те- стов (тестеров). Тестеры по устройству проще имитато- ров канала и позволяют проверять не все функции, а отдельные характеристики периферийного оборудования. Например, тестер ЗУ на сменных магнитных дисках по- зволяет проверять позиционирование (правильное рас- положение) заданного оператором подмножества головок накопителя, правильность записи нулей, единиц, чтения информации и др. Диагностирование периферийных устройств при помо- щи встроенных средств. Диагностирование периферийных устройств при помощи встроенных средств основано на том, что устройства управления периферийных устройств типа НМЛ и НМД представляют собой сложные уста- новки, приближающиеся по своим возможностям к про- цессорам. Эти устройства управления могут выполнить диагностические процедуры для диагностирования соб- ственно периферийного устройства, так же как и самого себя. Диагностирование может производиться как в авто- номном режиме, так и в режиме с разделением времени, чтобы тестирование не препятствовало эксплуатации те- стируемого оборудования. Например, встроенные средст- ва диагностирования НМД позволяют установить пра- вильность выборки информации по адресу, правильность записи и считывания, правильность регулировки головки записи — считывания. Поскольку периферийные устройства имеют весьма разнообразную природу, их диагностирование основыва- ется в большей степени на ручных операциях, чем диаг- ностирование центрального процессора. Контроль и диагностирование НМД и НМБ основы- вается на том, что носители имеют определенное число независимых информационных дорожек, выбираемых по одной. На каждой дорожке хранится информация, разде- ленная в зоны. Обнаружение ошибок в НМД и НМБ включает контроль правильности выбора дорожки, пои- ска зоны, выполнения записи и считывания данных. Контроль правильности выбора дорожки может быть осуществлен с помощью механических или электрических 116
обратных связей, формируемых механизмами выбора до- рожки. Могут быть использованы также опознавательные знаки (кодовые комбинации), присваиваемые каждой зо- не. Если дорожка выбрана правильно, то опознаватель- ный знак соответствует ожидаемому. Большое значение в последнее время приобрели си- стемы, где связь между ЭВМ и периферийными устрой- ствами (или между двумя ЭВМ) осуществляется некото- рыми массивами информации — сообщениями. Обмен сообщениями производится по протоколам связи—про- цедурам, реализуемым в основном программными сред- ствами и имеющим цель управлять процессом передачи данных. Контроль при этом осуществляется чаще всего методами повторной или прямой и обратной передачи с последующим сравнением переданного сообщения. При обнаружении ошибки соответствующее сообщение пере- дается повторно. Пример организации диагностирования в ЕС ЭВМ. В ЕС ЭВМ функции контроля и диагностирования в известной мере совмеща- ются, поскольку контроль работоспособности отдельных блоков и устройств одновременно служит целям локализации отказавших час- тей системы. Поэтому устройствами контроля считаются отдельные схемы контроля, в первую очередь схемы проверки четности в от- дельных блоках и устройствах системы, а средствами диагностики — центральные аппаратные и программные средства, обеспечивающие локализацию неисправностей при глубине диагностирования до 2— 3 ТЭЗов. К аппаратным средствам контроля и диагностирования отно- сятся: 1. Пульт управления и сигнализации для индикации состояния, контроля и управления режимами работы центрального процессора, памяти основных видов, каналов и устройства питания. 2. Аппаратура для автономной проверки устройств ЭВМ для автономной (раздельной от системы) проверки мультиплексного и селекторного каналов. Оперативная память тестируется только вмес- те с процессором. Процессор тестируется только в составе системы. 3. Система автоматического контроля блоков процессора, в том числе сумматоров, регистров, счетчиков. 4. Система автоматического диагностирования для выполнения команды «Диагностика», осуществляющая установку режимов про- верки процессора и каналов. . 5. Аппаратура для проведения профилактических и граничных испытаний устройств машины, включающая стенды для контроля ТЭЗов, устройств оперативной памяти, ячеек периферийных уст- ройств. Предусмотрена возможность проверки устройств при гра- ничных значениях допустимых напряжений, для выявления переме- жающихся отказов. К программным средствами контроля и диагностирования отно- сятся: 117
1. Программа начальной загрузки для управления считыванием резидентной части (ядра) управляющей программы. 2. Управляющая программа (монитор) контроля и диагностиро- вания для самостоятельного управления выполнением проверочных и диагностических тест-программ. 3. Комплект тест-программ для проверки работоспособности и локализации мест неисправностей отдельных устройств. Средства аппаратного контроля ЕС ЭВМ обеспечивают непре- рывный оперативный контроль работоспособности и выявление сбоев. Непосредственный и косвенный контроль охватывает примерно 90—95% аппаратуры процессора. Например, в процессоре ЕС-2050 аппаратный контроль охватывает: связи с основным и регистровым оперативными запоминающими устройствами; цепи передачи инфор- мации между блоками и регистрами в блоках; сумматор блока дво- ичной арифметики; сумматор блока десятичной арифметики; сум- матор модификации адреса; счетчики блоков центрального управле- ния и арифметического и логического устройств; дешифраторы в схемах управления. Всего в процессоре и оперативной памяти этой модели имеется 66 точек контроля. Для цифрового контроля по модулю 2 каждый байт информации снабжен контрольным разрядом. Для регистрации сигналов в процессоре имеется 74-разрядный регистр ошибок, где 66 разрядов служат для фиксации сигнала от соответствующей точ- ки контроля, а 8 разрядов — для указания номера искаженного байта. В более поздних модификациях процессора ЕС-2050, например в процессоре ЕС-2433, имеется значительно больше точек кон- троля. В качестве методов контроля используется побайтный контроль по четности, а также контроль по совпадению кодов. Последний метод контроля находит применение, например, при считывании инфор- мации с магнитных лент, когда для большей надежности либо дубли- руется запись, либо производится контрольное считывание при запи- си. Аналогичная проверка может осуществляться при вводе с перфо- карт или перфолент. В цепях переносов для проверки процессов возникновения и распространения переносов введены дополнитель- ные элементы, работающие на принципе сравнения переносов, дуб- лирующих друг друга. Аппаратный контроль передачи и преобразования данных обес- печивает возможность быстрого формирования сигналов об ошибках в выполнении рабочих программ. Программные средства диагностирования представляют собой наборы диагностических тестов различного назначения, подразделяе- мые на самостоятельные и управляемые со стороны операционной системы. К самостоятельным программным средствам относятся на- ладочные тесты, предназначенные для проверки устройств и обнару- жения в них неисправностей при наладке машин в процессе изготов- ления и ввода в эксплуатацию. Так, наладочные тесты моделей ЕС-1030 и ЕС-1050 подразделяются на два уровня. Тесты первого уровня предназначены для тестирования важнейших узлов аппара- туры, позволяющих вводить управляющую программу, при помощи которой затем загружаются и выполняются тесты второго уровня. Тестом первого уровня в модели ЕС-1050 является базовый тесто- вый набор, включающий в себя тесты процессора, оперативной памя- ти, селекторных и мультиплексного каналов и либо накопителя на магнитной ленте, либо устройства ввода с перфокарт. После пред- 118
варительной наладки этими тестами дальнейшая наладка осущест- вляется при помощи проверочных тест-секций. Последние работают под управлением тест-монитора — особой программы, которая загружается в оперативную память после ус- пешного прохождения базового теста. В состав проверочных прог- рамм включены тест-секции для детальной проверки всех режимов работы и узлов процессора, памяти, каналов, накопителей и уст- ройств ввода—вывода. Тест-секции и тест-монитор занимают в оперативной памяти ЕС-1050 (52) около 20К байт. В модели ЕС-1033 вместо базовых тестов применяется расширенный аппарат- ный контроль. Работы по обслуживанию ЕС ЭВМ подразделяются на рабочую, профилактическую и ремонтную фазу. В рабочей фазе осуществляется автоматическое накопление ста- тистики по сбоям, а также периодическое тестирование процессора, каналов и внешних устройств параллельно с решением задач под управлением операционной системы. В случае обнаружения аппаратными средствами контроля какой- либо ошибки прежде всего останавливается вычислительный процесс в течение одного-двух тактов, чтобы предотвратить лавинообразное разрастание ошибочных промежуточных результатов, что могло бы привести к разрушению необходимых данных, а затем фиксируется состояние основных регистров и управляющих триггеров процессора, если это возможно по характеру ошибки. Например, в модели ЕС-1050 (52) для этого в оперативной памяти отведено 312 байт. После указанных выше действий также автоматически, под управ- лением операционной системы, производится анализ ошибки, кото- рый заключается в повторном выполнении последней команды или сегмента программы. Если ошибка при этом не устраняется, про- цедура повторяется автоматически несколько раз (не более восьми раз в ЕС-1045). После этого выполнение прерванной программы продолжается. Если же после повторений сегмента или команды, при выполнении которого произошла ошибка, ошибка не самоустра- няется, делается заключение о том, что произошел отказ и осущест- вляется переход в ремонтную фазу диагностирования. При этом управление передается тест-монитору для локализации отказа. Далее следуют ремонт отказавшего узла (замена типового элемента заме- ны— ТЭЗа — ремонтная фаза), а затем послеремонтная проверка. Для более точного установления местонахождения и характера отка- за предусмотрена команда «Диагностировать», позволяющая выво- дить результаты диагностирования по отдельным шагам выполне- ния программы. В модели ЕС-1050 (52) диагностические тесты дают возможность локализовать неисправность с точностью до двух-трех ТЭЗ. Необхо- димым условием этого является работоспособность «ядра» процессо- ра— блоков управления, которые контролируются либо вручную, либо при помощи специальных тестов. Начиная с исправного ядра, диагностирование всей ЭВМ в ходе профилактической или послере- монтной фазы диагностирования проводится методом последователь- ного увеличения числа заведомо работоспособных узлов процессора и других устройств. Такой метод часто называют методом раскрут- ки или методом расширяющихся областей. Наиболее распространенным методом диагностирования, приме- няемым во всех ЕС ЭВМ второго поколения, является микродиагно- стирование [13]. При нем проверяется аппаратура, участвующая в выполнении отдельных микроопераций. Диагностирование осущест- 119
вляется методом расширяющихся областей. Для проверки аппарату- ры, участвующей в следующей микрооперации, используется аппа- ратура, уже проверенная в ходе предыдущих микроопераций. Тесто- вые воздействия подаются на вход проверяемой аппаратуры при помощи имеющихся в ЭВМ микроопераций. Результаты тестов пере- даются на сравнение с эталонными значениями либо при помощи микрокоманд, либо при помощи специальных диагностических опе- раций. В качестве примера рассмотрим систему автоматического диаг- ностирования ЭВМ ЕС-1045. Диагностическим ядром системы явля- ется сервисный адаптер, вместе с пультовым накопителем образую- щий некоторый сервисный процессор. Сервисный адаптер управляет поиском нужных тестов на магнитной ленте, записью их в пульто- вом накопителе, чтением записей из пультового накопителя, выпол- нением диагностических операций и накоплением их результатов. В ЭВМ ЕС-1045 выполняются отдельно статическое и динами- ческое микродиагностирование. Статическое микродиагностирование осуществляется путем за- грузки микрокоманды в регистр микрокоманд, ее выполнения и сравнения результата с эталоном. Оно обеспечивает проверку про- цессора, каналов, управления ЗУ, частично самих ЗУ, аппаратуры пульта и пультовой печатающей машинки. Статическое микродиагно- стирование включает в себя следующие операции: 1) загрузка микрокоманды в регистр микрокоманды и ее выпол- нение; 2) выполнение нескольких микрокоманд, образующих тестовую процедуру, для проверки некоторого узла аппаратуры; 3) считывание с пультового накопителя адресов байтов выпол- ненных микрокоманд и запись байта в регистр данных пульта; 4) сравнение результатов тестовой процедуры с эталоном; 5) останов в случае несовпадения с эталоном и индикация на пульте кода останова и состояния ЭВМ. По этим данным и распечаткам микродиагностики персонал определяет название триггера, принимающего неправильное состоя- ние, список ТЭЗов (обычно 2—3), среди которых имеется отказав- ший элемент и предположения относительно конкретной неисправ- ности. Окончательная локализация неисправной ИС производится при помощи автотестера. Автотестер состоит из регистра автотесте- ра, регистра результата, триггера фиксации ошибки и дешифратора операции. Выход регистра автотестера соединен с разъемом, куда вставляется проверяемый ТЭЗ. Работа автотестера сводится к уста- новке в регистре автотестера необходимого кода для подачи на ТЭЗ, опросу выходов ТЭЗа, сравнению полученных данных с эталоном и определению по специальному справочнику группы ИС, среди ко- торых необходимо искать неисправную. Окончательно отказавшая ИС определяется при помощи логи- ческого пробника. Отметим, что для восстановления работы ЭВМ достаточно заменить «подозрительные» ТЭЗы запасными. Локали- зовать неисправную ИС необходимо для ремонта ТЭЗа в целях пополнения их запасов. Если же запасных ТЭЗов нет, остановка ЭВМ длится до окончания ремонта ТЭЗа. Поскольку во время статического микродиагностирования темп выполнения микрокоманд отличается от скорости их выполнения при эксплуатации ЭВМ, некоторые неисправности, проявляющие себя в динамическом режиме, могут остаться необнаруженными. Для обна- ружения таких неисправностей используется динамическое микро- 120
диагностирование, охватывающее всю аппаратуру ЭВМ, включая все запоминающие устройства, кроме внешних. Для проведения динами- ческого микродиагностирования диагностические микропрограммы загружаются при помощи сервисного адаптера в управляющую па- мять процессора. По окончании ввода тестовой микропрограммы в управляющую память процессора управление передается этой микропрограмме. Результаты прохождения микропрограмм сравниваются с эталоном и анализируются сервисным адаптером. При несовпадении резуль- татов с эталоном работа ЭВМ приостанавливается. Результаты ука- зываются в виде номера кассеты и зоны, где записана соответству- ющая микропрограмма, а также в виде кода останова. По этим данным определяется вид неисправности. § 5.4. ДИАГНОСТИРОВАНИЕ В МНОГОПРОЦЕССОРНЫХ ВС Тестовое диагностирование в многопроцессорных ВС может быть организовано с централизованным жестким ядром; с централизованным плавающим ядром; с рас- пределенным жестким ядром; с распределенным плаваю- щим ядром. Возможны также и комбинированные спосо- бы организации. Под ядром здесь понимается совокупность аппарат- ных и программных средств, являющихся исправными и обеспечивающих выполнение тестового диагностирования системы. Плавающее ядро — ядро, состав которого, в отличие от жесткого ядра, не постоянен. К плавающему ядру могут быть подсоединены дополнительные аппаратные и программные средства, работоспособность которых бы- ла заранее проверена. Централизованное ядро организуется на одной прове- ренной ЭВМ. В распределенное ядро может входить любая маши- на системы, даже не проверенная. Истинное состояние системы при этом определяется в ходе взаимных про- верок. Вычислительные системы с централизованным жест- ким ядром. Широкое практическое применение нашли системы со специальным обслуживающим процессором, т. е. с централизованным жестким ядром. Обслуживающий (сервисный) процессор — процессор, предназначенный для обеспечения контроля и поддержа- ния работоспособности основной системы, в особенности системы центрального процессора. Обслуживающий про- цессор может быть автономной ЭВМ, или представлять 121
собой отдельную стойку, панель или модуль в конструк- ции системы. Чтобы уменьшить возможность совместных отказов обслуживающего 1 и основного 2 процессора (рис. 5.9), обслуживающий процессор отделяется функционально от главного процессора. Он имеет собственное програм- мное обеспечение, согласованное с основной операцион- ной системой, но не находится под контролем последнего. Рис. 5.9. Схема системы с обслуживающим про- цессором Поскольку обслуживающий процессор предназначен для выполнения управляющих программ, проверяющих вы- полнение операций остальной частью системы, его аппа- ратура состоит в основном из контроллера (устройства управления) со средствами сравнения кодовых комбина- ций 3, набора адаптеров 4 и из нескольких пультов уп- равления с дисплеями 5. Возможны также дистанцион- ные пульты управления 6, связанные с обслуживающим процессором через модемы 7, для передачи сигналов через канал связи. Дистанционные пульты управления могут находиться в центре обслуживания различных ВЦ; обладающих квалифицированным персоналом. Контроллер управляет работой обслуживающего про- цессора и производит сравнение фактических результа- 122
тов тестирования с эталонными, хранимыми в локальной памяти 8 или в памяти на гибких дисках 9. Адаптеры предназначены для сопряжения обслужи- вающего процессора с устройствами основной системы (центральным процессором 10, памятью 11, контролле- ром 12, каналами 13, периферийными устройствами 14). Сопряжение связано либо с временно выделенными ка- налами ввода — вывода основной системы, либо со спе- циальными каналами, предназначенными только для об- служивания. Сопряжение должно обладать самопрове- ряющими способностями и обеспечить независимость основного и обслуживающего процессора, так чтобы от- каз обслуживающего процессора не прерывал работы основного процессора и не обусловливал ошибок в его работе. Обслуживающий процессор должен также допускать изменения в архитектуре и технологии работы основного процессора без изменений в работе обслуживающего процессора. Один обслуживающий процессор может об- служивать несколько основных процессоров. В качестве контроллера может быть использована мини- или микро- ЭВМ, содержащая кроме оперативной памяти дополни- тельную память на дисках для запоминания программ обслуживания. Обслуживающий процессор обычно снабжен контро- лем по четности и контролем передач, чтобы обеспечить его корректную работу. Он выполняет следующие функ- ции: 1) запуск системы; 2) управление системой; 3) диа- гностирование отказов; 4) функции пульта управления; 5) тестирование в ходе работы и разработки системы. При регламентных работах или отказе системы обслу- живающий процессор обычно начинает работу вводом программного обеспечения из локальной памяти. Затем он выполняет последовательность операций, приводящих основной процессор к действию. Эти операции охваты- вают включение электропитания, логики, загрузку мик- рокодов в управляющую память, установку аппаратуры в определенное состояние, запуск операционной системы основного процессора. При нормальной работе обслуживающий процессор использует свои адаптеры, присоединенные к комплексу центрального процессора, для управления всей системой. Он проверяет логику процессора, выбирает ячейки па- мяти и выполняет регламентные диагностические про- граммы. В некоторых случаях он может управлять I ИЛ
также электропитанием и тепловым режимом основного процессора, обнаруживая отклонения от нормы в этой области и вводя необходимые коррективы. Эти функции выполняются периодически в перерывах работы основного процессора. Если вЬзникает отказовая ситуация, обнаруженная средствами контроля основного процессора, обслуживаю- щий процессор получает полную информацию, проверяя синхронизацию, состояние отказа, устанавливая состоя- ние, в котором находилась основная система до отказа, и обеспечивая возобновление вычислительного про- цесса. Возобновление вычислительного процесса может по- требовать участия операционной системы обслуживаю- щего процессора. Если процесс возобновления не удался, обслуживающий процессор (в избыточных системах) отключает отказавшую подсистему. Если этого нельзя сделать, обслуживающий процессор информирует обслу- живающий персонал. Некоторые обслуживающие процес- соры могут обеспечить автоматический запуск системы после исправления. Надежность ВС с обслуживающим процессором мо- жет быть оценена методом, изложенным в § 4.7, с уче- том того, что в качестве интенсивности отказов и интен- сивности восстановления контролирующего устройства в данном случае в (4.15) необходимо подставлять соот- ветствующие значения для обслуживающего процессора. Вычислительные системы с распределенным плаваю- щим ядром. В последнее время большой интерес вызы- вают (однородные) многопроцессорные ВС, где произво- дится взаимное тестирование процессоров, т. е. ВС с распределенным плавающим ядром. Диагностирование в однопроцессорных ВС вызывает определенные затруднения, так как приходится тестиро- вать неисправный процессор при помощи этого же не- исправного процессора. В связи с появлением многопроцессорных ВС боль- шой интерес представляет вопрос о взаимном диагности- ровании в многопроцессорных ВС [26]. Пусть система S состоит из п устройств, причем каж- дое устройство тестируется подмножеством других уст- ройств. Такая система может быть описана через граф G(V, £), где V — множество вершин графа, соответст- вующих отдельным устройствам, а Е— множество дуг графа, направленных от тестирующего к тестируемому 124
устройству и изображающих проведение тестов. Пусть веса дуг означают: 1 — отказ тестируемого устройства обнаружен, 0 — отказ тестируемого устройства не обна- ружен. Система 5 называется ^-диагностируемой, если она при заданном G(V, Е) обеспечивает выявление от- казавших устройств при наличии не более чем U отка- завших устройств. Утверждение 1. Система S является ^-диагностируе- мой, если 1) количество входящих дуг у каждой верши- ны графа С(У, Е) не меньше t0i 2) для всякого целого р при условии 0<р</0 и всякого V'aV при числе вершин | V | = вя—2Л>+р, числе вершин \TV'\ подмножества вер- шин ГУ', куда входят ис- ходящие из V дуги гра- фа, больше р. Здесь \V'\ означает число вершин, входящих в подмножество V. Доказательство ут- верждения приводится в [26]. Отметим, что по- скольку из утверждения следует, что я>2/о+ Рис. 5.10. Граф многопроцес- сорной ВС с взаимным диагно- стированием + —а всегда находится V, удовлетворяющее условию | V'\ = |ГУ"!, то п^2/о+1 — условие необходи- мое, но не достаточное. Пример определения /о-диагностируемости ВС. Предположим, что для системы, изображаемой графом на рис. 5.10, /о=2. Тогда ре е{0, 1} и | V| =6—4+{0, 1} = {2, 3}. Из рисунка видно, что для всякого V при |V'|=2 величина |ГУ'|=2>0 и для всякого V при |V'|=3 величина |ГУ'|=2>1. Легко убедить- ся, что при 1*0=3 эти условия не удовлетворяются. Следовательно, система на рис. 5.10 является /о-диагностируемой при /0=2. Определение 5.1. Система, изображаемая графом G(V9 Е) при foment (я—1)/2, где ent — целая часть, яв- ляется D(n, t09 X)-системой при t>/, vj)&E тогда и толь- ко тогда, когда (i—j) modneX, где X=(*i, *2, ...,**„) — некоторое множество целых чисел, таких, как 1^**^ <ent(n—1)/2 для всех l<i<*o, а *«<*ш. Символ (vt, Vj) здесь означает дугу графа G, исходящую из вершины vi и входящую в вершину vj. 125
Другими словами, D(n, t0, X)-система-1-это /0-диаг- ностируемая л-процессорная кольцевая система с диаго- нальными связями, определяемыми X. Система на рис. 5.10 является D(6, 2, {1, 2})-систе- мой. Приведем алгоритм для диагностирования D(n, t0, X) -системы. Предполагается, что задан граф системы с весами дуг и требуется определить отказавшие и не от- казавшие вершины. Алгоритм состоит из следующих этапов: Этап 1. Установить i=n—1 и построить подграф G'(y'£')c:G, где Vi={vi}()Va\JVb и &={(v, vt) для всех v^Vi}l){(vi+xs+xto> vt+xj)\ для всех /Ч=[1, *0]. В пос- леднем выражении индексы у v суммируются по mod п. Пусть Va*a* = {va&Va[w(vb, va)=au w(va, 1ч)=а2, vt&Vb}. Тогда, если | Va00| ^ | Va0l\ делается вывод о том, что вершина v\ не отказавшая и обозначается через (+), иначе переходить к выполнению этапа 3, считая, что вершина vi отказала (обозначается через >|<). Здесь w (Vbj va) означает вес дуги, из вершины Vb в вершину va. Операция установления работоспособности узла vt, записанная выше в краткой символической форме, озна- чает, что сначала устанавливается подмножество Va вер- шин, проверяющих вершину vu а затем — подмножество Vb различных вершин, проверяющих каждый по одной вершине из V* Вершина vt считается работоспособной тогда и только тогда, когда количество цепей из элемен- тов Vb через элементы Va в vt с весами (0, 0) больше или равно, чем количество цепей с весами (0, 1), т. е. когда количество цепей, где работоспособность вершины vi подтверждается работоспособной вершиной, больше или равно количеству цепей, где неработоспособность вершины vi подтверждается вершиной с подтвержденной работоспособностью. Этап 2. Обозначить каждую вершину v^Tvi зна- ком + , если w(Vi, и)=0, и знаком если w(vif v) = l. Здесь Tvi — подмножество вершин, в которые входят ис- ходящие из Vi дуги графа. Этап 3. Подставить i:=i—1. Если i<0, то выпол- нить этап 4, если vi обозначен + , то осуществить переход к этапу 2, иначе к этапу 1. Этап 4. Если количество обозначенных >|< вершин больше U, то система не диагностируется, иначе подмно- жество вершин, обозначенных — подмножество отка- завших вершин. 126
Этап 5. Конец. 4 Пример взаимного диагностирования в многопроцессорной сис- теме. Пусть диагностируется система, граф которой изображен на рис. 5.10. Дуги графа обозначены в соответствии с результатами диагностирования. По алгоритму, в качестве этапа 1 устанавливает- ся /=6—1=5 и строится подграф G5(V5, Еь), где V6= {vs}\}Va\}Vb- Здесь, согласно определению, Ve={0o, 0.} и Vb=s{v2, vz) (рис. 5.11). Следовательно, V5=0sU{0<b ojUfa* 03} = {0<ь v\. v* v9, vAt £6={(0,5), (1,5), (2,0), (3.1)}. Тогда V*a={vi) и V<»«=4 }. т. e. |lA*a| = i>|V™e|=0, таким об- разом, вершина v$ — не отказавшая и обозначается +. Далее выполняет- ся этап 2, обозначая 04 знаком ^ и 0з знаком +. В результате выполне- ние этапа 3 подставляется t?:=f— —1=4. Поскольку 04 обозначен необходимо возвращаться к этапу 1. В результате этапа 1 устанавливает- ся V4={vo, Vu Vu v2, Vi, vs} и £4= = {(5, 4), (1, 5), (0, 4), (2, ОН, что позволяет определить |V00a|=0< <|yoia| = l. Следовательно, отказ va подтверждается и следующим выпол- няется этап 3. В результате подстав- ляется i: =t—1=3 и, поскольку 0< обозначен +, осуществляется пере- ход к этапу 2, обозначая Vi и v2 зна- ком +. Следующим выполняется сно- ва этап 3 с подстановкой i: =i— 1 = =2, затем этап 2, обозначая vo зна- ком Не. Далее выполняется снова этап 3 с подстановкой i: =/—1 = 1, а затем этап 2, поскольку V\ обозна- чен + . В результате vs обозначается +, выполняется снова этап 3 с подстановкой i: 1=0, посколь- ку v0 обозначен >К, то переходят к этапу 1, определяя V°={t>i, v2t 03, 04} и £°={(4, 2), (2, 0), (3, 1), (1, 0)}, откуда следует, что | V«)e|=-o<| V01a| = l, т. е. отказ 04 подтверждается. Далее выпол- няется этап 3 с подстановкой i: =i— 1=—1, затем этап 4, откуда делается вывод, что количество обозначенных Н< вершин равно to* система диагностируется и отказавшими являются вершины v0 и 04. Взаимное диагностирование осуществляется в ВС, где существуют специальные диагностирующие процес- соры [33], а также в многопроцессорных системах, где основные процессоры проверяют друг друга. Диагностирование в аналоговых и гибридных вычис- лительных машинах и системах. Это диагностирование осуществляется в принципе так же, как и в дискретных вычислительных машинах [18]. Однако непрерывный ха- рактер сигналов в аналоговых вычислительных ма- шинах накладывает на тестирование некоторые особен- ности. Рис. 5.11. Фрагмент графа многопроцессорной ВС с взаимным диагностирова- нием 127
В отличие от логических схем, где определённые вход- ные наборы активизируют определенные пути от входов схемы к выходу в аналоговых схемах, как правило, всё промежуточные переменные влияют на выход схемы. Исключение составляют только такие аналоговые блоки, где имеются горизонтальные участки характеристики не- линейных блоков. Если рабочая точка попадает на гори- зонтальный участок, то влияние через такой блок прак- тически исключается. Однако во многих случаях можно делать допущения о том, что для каждого аналогового блока известны до- пустимые значения выходных и входных сигналов, а не- допустимое значение хотя бы одного входного сигнала приводит к появлению недопустимого выходного сигнала. В случае справедливости этих допущений можно всегда установить подмножество блоков, содержащее отказав- ший блок, если при допустимых входных воздействиях выходной сигнал отклоняется от допустимого. Таким образом, метод диагностирования аналоговых объектов приближается к методу диагностирования дискретных объектов. В общем же случае контрольные и диагностические тесты в аналоговых схемах сводятся к заданию всех вхо- дов и к изучению всех выводов схемы. Различают статическое и динамическое тестирование аналоговых схем. При статическом тестировании на вхо- ды схемы подают сигналы, чаще всего соответствующие значениям начальных условий решения системы диффе- ренциальных уравнений. При этом интегрирующие блоки должны находиться в режиме задания начальных усло- вий. В статическом режиме нетрудно определить расчет- ным путем ожидаемые значения выходных сигналов. В случае расхождения между ожидаемыми и фактиче- скими значениями выходных сигналов можно легко установить это расхождение по расчетным значениям выходных сигналов. Более того, учитывая, что теорети- ческое значение выходных сигналов представляется в виде суммы произведений, легко определить, какой член из суммы отсутствует и, следовательно, какой блок от- казал. Однако статический контроль не позволяет обна- ружить ошибки в динамике работы блоков. Поэтому не- обходимо проводить динамическое тестирование, когда интегрирующие блоки системы работают в режиме ин- тегрирования. Тогда, например, при постоянном значении входного сигнала выходной сигнал интегратора должен 128
измениться по линейному закону, выходной сигнал це- почки из двух интегрирующих блоков по квадратичному и т. д. При необходимости можно определить контроль- ные значения выходов в определенные моменты времени расчетным путем или осуществить контроль сравнением с выходом другой аналоговой структуры, реализующей ту же функцию. Диагностирование отказов по характеру изменения выходов сложной схемы нелегко, поэтому в аналоговых системах целесообразно осуществить диагно- стирование по частям, тем более что в аналоговых си- стемах несложно мерить значение напряжения в различ- ных точках или разомкнуть отдельные соединения. В гибридных вычислительных машинах и системах контроль и диагностирование цифровых и аналоговых частей осуществляются по соответствующим методам. Цифроаналоговые и аналого-цифровые преобразователи при этом тестируются в основном как аналоговые уст- ройства, у которых вход или соответственно выход пред- ставляется в цифровой форме. Контрольные вопросы и задачи 1. Как выбирается необходимая глубина диагностирования? 2. Что такое дерево тестов? 3. Что называется таблицей покрытий? 4. Поясните цель декомпозиции объекта диагностирования. 5. Сравните методы логического и экспериментального построе- ния тестов. 6. Опишите систему диагностирования ВС на примере ЕС ЭВМ. 7. Проделайте процедуру взаимного диагностирования в систе- ме, описываемой графом рис. 5.10, если отказали процессоры 0,1; 0,2; 2,4; 1; 5; 0, 4, 5; 2,5. ГЛАВА 6 i НАДЕЖНОСТЬ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ § 6.1. ПОНЯТИЕ ОТКАЗА ПРОГРАММЫ Условием успеха исследования или разработки в области техники является системный подход к решаемой пробле- ме. Поэтому следует рассматривать надежность работы вычислительной аппаратуры совместно с программным обеспечением как надежность вычислительного процесса; Надежность программного обеспечения может быть определена как свойство программы, которое выражает- ся в выполнении заданных функций в заданных условиях работы и на заданной вычислительной машине, анало- 5—595 129
гично тому, как определяется понятие надежности аппа- ратуры [21]. Однако механизмы возникновения отказа аппаратуры и отказа программного обеспечения сущест- венно отличаются друг от друга. Отказ аппаратуры обусловлен, как правило, разрушением каких-либо эле- ментов аппаратуры. Отказ программного обеспечения обусловлен несоответствием программного обеспечения поставленным задачам. Несоответствие может воз- никать по двум причинам: либо разработчиком програм- мы допущено нарушение спецификации — технических требований к программе, либо спецификация неточная или неполная. Несоответствие по первой причине встречается в пер- вую очередь в сложных программных системах, где от- дельные ошибки программиста трудно обозримы и могут оставаться нераскрытыми. Несоответствие по второй причине возникает в пер- вую очередь потому, что при составлении спецификации многие факторы, влияющие на работу программы, неиз- вестны. Они выясняются только постепенно, в ходе экс- плуатации программы. Особенно это относится к управ- ляющим программам. Кроме того, ни в технических требованиях, ни при проверке программы невозможно оговорить и проверить все ситуации, которые возникают при использовании программы. Дело в том, что программа является краткой записью очень сложных функций. Поэтому записать в спецификациях все свойства функций, которые должна выполнить программа, будет не намного проще, чем раз- работать соответствующую программу. Например, легко подсчитать, что если входами для программы являются 10 переменных, каждая из которых может приобретать 103 различных значений, то число возможных входных комбинаций будет 1030. Если допустить, что проверка реакции программы на каждую из входных комбинаций занимает только одну микросекунду, то в году возможно приблизительно только 3*1013 проверок (!). Поэтому естественно, что в разработанной программе всегда мо- гут встречаться непроверенные сочетания исходных дан- ных, при наступлении которых в ходе эксплуатации про- грамма может отказать в выполнении нужных функций. Поскольку не всегда возможно составлять точную спецификацию, предлагается классифицировать программы по степени точности специфи- кации следующим образом: 180
1) программы, функции которых полностью определя- ются спецификацией; 2) программы, функции которых корректируются со- поставлением вычислительных и намеренных результатов (сюда относятся моделирующие программы, т. е. про- граммы, реализующие математическую модель физичес- кого объекта); 3) программы, действующие в постоянно изменяю- щейся среде (состоящей из других программ, данных, пользователей, реальных систем и установок и т. п.; сюда относятся операционные системы, программы управления воздушным движением, программы управления ресурса- ми и др.). Корректность программы — ее соответствие специ- фикации. Поскольку спецификация не всегда и не пол- ностью соответствует фактическим требованиям к про- грамме, возможны случаи, когда некорректная програм- ма работает надежно или, наоборот, корректная про- грамма — ненадежно. Характерной особенностью ошибок, обусловливающих отказы программ, является скрытость ошибок — это означает, что скрытая ошибка проявляется только при отдельных редких комбинациях из огромного количества возможных комбинаций исходных данных и поэтому об- наруживается не сразу, а только в ходе длительной экс- плуатации. Ошибки, проявляющиеся при любых исход- ных данных, не опасны, поскольку обнаруживаются сра- зу, при первых пробных прогонах программы. Пример устранения скрытой ошибки в программе. Пусть прог- рамма предназначена для вычисления функции у=(а sin х)1х+Ь при 1*|<д/2. Если ошибкой является, например, наличие в формуле знака минус вместо знака плюс, то такая ошибка проявляется сразу, при любых вычислениях, за исключением случая, когда 6=0. Однако программа будет содержать и скрытую ошибку в виде неопределен- ности при х=0, которая при числовых вычислениях проявляется как большая погрешность вычислений при |х|<е, где е — некоторое малое число. Поэтому маловероятно, что ошибка проявляется при немногочис- ленных пробных вычислениях. В данном простейшем примере ошиб- ка видна «на глаз», по тексту. Однако в сложных программах это не так и ошибку можно обнаруживать только по результатам проб- ных вычислений. Правильная программа должна быть составлена по выражению ((a smx)lx + Ь при е < | х | < я/2; ^~\a+b при | х | < е. 5* 131
- Теория надежности аппаратуры частично применима к проблеме надежности программного обеспечения, учи- тывая следующие различия между надежностью аппара- туры и программного обеспечения: - элементы программного обеспечения не стареют из-за износа или усталости; для контроля программного обеспечения имеется на- много больше путей и способов, чем для контроля аппа- ратуры; , Таблица 6.1 Причина ошибки Частота. появления, % Неполное или ошибочное задание 28 ш Отклонение от задания 12 -Пренебрежение правилами программировав 10 вия Ошибочная выборка данных 10 Ошибочная логика или последовательность 12 операций •••» Ошибочные арифметические операции 9 Нехватка времени для решения 4 Неправильная обработка прерываний 4 Неправильные постоянные или исходные дан- 3 ные * Неточная запись 8 в программном обеспечении имеется намного больше объектов для контроля, чем в аппаратуре; в аппаратуре использование стандартных элементов распространено намного шире, чем в системе програм- много обеспечения; количество документации по программному обеспече- нию огромное по сравнению с количеством документации по аппаратуре; внести изменения в программы просто, но трудно де- лать это корректно. • Классификация ошибок программирования. Анализ ошибок программирования основан на их классифика- ции. Ошибки программ могут быть разделены на ошибки, обусловленные ограниченными возможностями програм- мы (отказ в получении результатов за заданное время или при заданных ограничениях по объему вычислений) и на логические ошибки (выражаются в получении не- 132
правильных результатов, не взирая на время и объем вычислений). В настоящее время имеется представительная стати- стика об ошибках программного обеспечения и их при- чинах [21]. Процентные частоты появления ошибок раз- личного типа по данным [35] приведены в табл. &.1. Наиболее часто встречающиеся ошибки — ошибки техни- ческого задания к программе—могут быть, в свою оче- редь, разделены на категории, приведенные в табл. 6.2. •Таблица 6.2 Причина ошибки Частота \ \ появления. % Ошибки в числовых значениях -— 12 - . Недостаточные требования к точности 4 i f Ошибочные символы или знаки • «• 2 - - ] L Ошибки оформления ; . " 15 ; -• Неправильное описание аппаратуры 2. L; Основы разработки неполные или неточные 52 _„ LJ . Двусмысленность требований .... 13 Z Всесторонний анализ ошибок, встречающихся в про- граммах, возможен только при наличии точных данных об отказах программ, причинах отказов, о самих про- граммах и условиях их разработки (квалификация про- граммиста, сроки разработки и др.). Эти данные являются основой для построения мате- матических моделей надежности программ с целью ее оценки и прогнозирования, а также для нахождения пу- тей ее обеспечения и повышения. < Способы обеспечения и повышения надежности про- грамм. Они могут быть разделены на следующие основ- ные категории: - 1) усовершенствование технологии программирова- ния; : 2) выбор алгоритмов, не чувствительных к различно- го рода нарушениям вычислительного процесса (исполь- зование алгоритмической избыточности); 3) резервирование программ — дуальное и N-версион- ное программирование, другие методы введения струк- турной избыточности; 4) контроль и тестирование программ с последующей коррекцией. 133
я) Рассмотрение первого способа выходит за рамки тематики на* стоящего пособия и поэтому здесь не рассматривается*. Второй способ рассматривается в настоящем разделе. Третий и четвер- тый способы рассматриваются соответственно в § 6.3, 6.4. Выбор алгоритмов, не чувствительных к нарушениям вычислительного процесса, основан на исследовании их чувствительности. Мерой чувствительности могут являть* ся погрешности, вызванные этими нарушениями. Результаты вычислений искажаются погрешностями: 1) исходных дан- ных, трансформиро- ванными в ходе вы* числений; 2) округления; 3) методически- ми; 4) обусловленны- ми отказами, сбоями и ошибками в про- граммах. Эти погрешности могут быть во мно- гих случаях оценены теоретически, одна- ко в общем случае проще определить их методом цифрового моделирования вычислительных процессов и источников погрешностей. На рис. 6.1 в качестве примера изображена относи- тельная результирующая погрешность б численного ин- тегрирования функции методом трапеций в зависимости от числа шагов интегрирования п. Погрешность была определена моделированием [27]. От числа шагов зависит как методическая погрешность 1, так и погрешность округления, которая, в свою очередь, зависит от числа разрядов N в битах. Из рисунка видно, что методическая погрешность убывает, а погрешность округления растет по мере увеличения числа шагов, т. е. числа выполняе- мых вычислительных операций. Следовательно, вопрос о выборе числа шагов интегрирования не простой. Суще- ствует оптимальное число шагов, которое зависит, в свою очередь, от выбранной длины слова (округления) и обес- Рис. 6.1. Графическое представление ре- зультирующей погрешности и ее состав- ляющих при численном интегрировании * Вельбицкий И. В. Технология программирования. Киев, Техшка, 1984; ГОСТ 19.001—77, ГОСТ 19.002—80, ГОСТ 19.004-80, ГОСТ 19.005—85. 134
печит минимальную погрешность. Дальнейшее увеличе- ние числа шагов интегрирования приведет к увеличению общей погрешности. Из рис. 6Л следует, что особенно опасно ограничить разрядность операндов — это приведет к росту погреш- ности по показательному закону. Как следует из табл. €.2, ошибки, обусловленные недостаточной точностью вы- числений, составляют в общем количестве ошибок не- большую долю. Это обстоятельство объясняется, с одной стороны, тем, что разрядность ЭВМ в большинстве слу- чаев выбирается со значительным запасом. С другой сто- роны, отказы, обусловленные недостаточной точностью, легко обнаруживать и устранить. Остальные же ошибки, приведенные в табл. 6.1 и 6.2, вызваны в основном труд- но обнаруживаемыми ошибками программирования. Такие ошибки могут быть обнаружены и устранены путем тщательной отладки и тестирования программы. Считается, что более эффективна борьба с такими ошиб- ками путем профилактики, что достигается улучшением технологии программирования. Пусть задан вычислительный процесс, реализующий функцию у=у(х), где х — исходные данные, а у —ре- зультат. Тогда мерой погрешности результата у явля- ется расстояние р(у, у*), где у обозначает точное зна- чение результата, а у* — искаженное нарушением значение. В случае числового результата под рас- стоянием р (.,.) понимается либо евклидово расстояние Г я 2 ? = Р1 = Л/ 2 (yi — У*) рДе Уь У* — компоненты п-мерных п векторов у и у*, либо выражения видар = Р2=^2 В случае, если результаты представлены в виде двоичных кодов, не имеющих числового содержания, п расстояние выражается как р = Рз =2 (у?}®у\2)*)> где УР\ *Л(2)* — компоненты /г-мерных двоичных кодов у<2> и у(2)*э представляющих собой соответственно неиска- женный и искаженный результаты. В случае одномерного числового результата \п=\) расстоянием р служит разность р=рА=у—у* или абсо- лютная разность р=рб=: \у—у*|. Мерой чувствительности М тогда может служить ве- личина 135
где г, z* — соответственно неискаженный и искаженный промежуточные результаты или исходные данные. В за- висимости от причины искажения говорят о чувствитель- ности вычислительного процесса к различным наруше- ниям. Подобная мера чувствительности позволяет выявлять [те части алгоритмов, которые обладают повышенной чувствительностью к различного рода нарушениям, в том числе и к погрешностям округления и погрешностям исходных данных. Во многих случаях такие части алго- ритмов могут быть преобразованы к виду, менее чувст- вительному к погрешностям. Например, выражение Д1/(а—Ь)+с)(а—Ь) приведет к повышенной погрешно- сти результата, если а«&. Преобразованное выражение 1+с(а—Ь) к повышенной погрешности результата нё 'приведет. § 6.2. МОДЕЛИ НАДЕЖНОСТИ ПРОГРАММ Прогнозирование надежности программ в ходе их экс- плуатации. Оценка и прогнозирование надежности про- грамм [16, 21] осуществляется на основе математических моделей надежности программ. Ниже рассматривается модель надежности программы, предложенная Б. Литтл- вудом и Дж. Л. Верраллом [32], имеющая в первую оче- редь познавательную ценность, а также более простые модели, находящие применение в различных частных случаях. Рассмотрим временную ось (рис 6.2), где снизу нане- сены номера отказов программы, а сверху обозначены интервалы времени между отдельными отказами про- граммы. Представим, следуя [32], что в начальный мо- мент времени программа работает и сохраняет свою работоспособность до окончания интервала времени t\9 когда происходит первый отказ программы. Програм- мист после этого «исправляет» программу, которая за- тем работает исправно в течение времени и т. д. Пусть случайное время между 1-й и (t+l)-M отказом имеет функцию плотности распределения f(t\fa), где параметр 'fa— мера интенсивности отказов. Чем меньше fa, тем лучше программа. Программист стремится сделать про- грамму лучше, чём она была до обнаружения отказа, т. е. сделать ее более надежной. Другими словами, про- 136
граммист стремится уменьшить fa т. е. добиться соотно- шения Л,-<Я/-1 для всех L Безусловно, он не может быть уверен, что в ходе частичной переделки программа дей- ствительно стала лучше — имеется много случаев, когда программа после переделки стала намного хуже. Действительно, надежность программного обеспече- ния отличается от надежности аппаратуры на этапе пробной эксплуатации. Во время пробной эксплуатации разработчик аппаратуры обычно знает свойства заме- няемой детали или элемента. Программист же обычно не знает многого о свойствах переделанной части програм- мы и о том, как она будет взаимодействовать с осталь- ной частью программы. Вполне возможно, что вводится новый источник ошибок при попытке улучшить про- грамму. I */ . *2 , , и , L. о1г i-/ i i Рис. 6.2. Моменты отказов программы на оси времени Рассмотрим параметр fa как случайную величину. Пусть gi{k\<x)—функция плотности распределения Я/, где а — параметр. Теперь легко сформулировать условие для описания стремления программиста реализовать цель исправления программы. Вместо предположения, что интенсивность отказов стала после исправления опреде- ленно меньше, предполагается, что такое событие веро- ятно, имело место, т. е. что Pfa<*)>Pih-i<l) (6.1) для всех Я и и Обозначим функцию распределения параметра fa че- рез 0|(Х|а) = />(Х,<Х)« } gi(\\a)dl. Тогда на основании (6.1) G/-i(X|a)<G/(X|a). Если Я* — интенсивность отказов, то £/(Я|а)=0 для —оо<я<0. В модели предполагается также, что восста- новление мгновенное (т. е. время восстановления намно- го меньше, чем время безотказной работы). 6-595 137
Допустим, что имеются исходные данные t\,'t% tn, описывающие п первых отказов программы, и что про- граммист исправляет i-ю ошибку, используя тот же ме- тод, что и раньше. Необходимо оценить распределение времени до (л+1)-го отказа, используя предварительный опыт. Функции плотности распределения, удовлетворяющие приведенным выше требованиям и сочетающие близкие к реальным выражения с удобным математическим ап- паратом, имеют вид /(,,Х)=1Хв~"'когда'>0; <„, (О, когда *<0. {Х1а)ттт)'-1^х^х>о; (вз) 10, когда Х<0, где у(0 — некоторая монотонно возрастающая от i функция. 0 1 г п-2 п-1 Сейчас t Рис. 6.3. Прогнозирование отказа программы на оси времени Оценим время до следующего отказа, начиная с про- извольного момента времени. Рис. 6.3 аналогичен рис. 6.2, однако время tn означает время от восстановления после (п—1)-го отказа до настоящего момента времени («сей- час») — нового начала отчета времени t до следующего отказа. Результаты наблюдений U, /2, tn-\ обозначают интервалы времени между отказами (или, точнее, между восстановлением после предыдущего и наступлением по- следующего отказа). Тогда после ряда преобразований на основании (6.2) и (6.3) может быть получено выраже- ние для интенсивности отказов в момент времени tn («сейчас»): п Г Г1 ♦(*) + -, Т1 'e)"w[to8*j"^rJ ' (М) Предлагается выбрать функцию в виде <K/) = exp(p0 + PiO. где Ро, pi — коэффициенты. 138
Функция плотности распределения t — времени до следующего отказа (рис. 6.3) выражается как 1 ♦ 00 + '' Рассмотрим сначала изменение X(t\, t2, tn) в тече- ние одного периода безотказной работы между двумя отказами: имеется в виду, что п, а также t\% t% U-i фиксированы, a tn растет. Следовательно, функция %(t) =* -Я(*ь h tn) при t=tx + +tn убывает моно- тонно, поскольку второй член в (6.4) убывает моно- тонно. Это согласуется с ин- туитивными соображениями: мы склонны считать систе- му тем более надежной, чем больше времени она отрабо- тала после последнего отка- за. В момент отказа величи- на X(t) не определена, но можно определить ее значе- ния непосредственно перед отказом и непосредственно после последнего исправления программы, когда имеется ряд U, t2, tn, tn+\ при fn+i=0. Второй член (6.4) при этом остается неизменным, а первый член превращается из я/(г|)(/г)) в (п+1)/($(п+1)). Это означает, что после исправления программы мгновенная интенсивность отка- Рис. 6.4. График зависимо- сти интенсивности отказов программы от времени л+1 или зов уменьшается скачком, если ,, <ч ^ , Й . Ф(я+ !* > . Последнее неравенство удовлетворяется в случае, если ф(7) растет от i быстрее, чем по линейной зависимости. Мгновенная интенсивность отказов (6.4), таким образом, имеет тенденцию убывать как при ис- правлениях при условии достаточно быстрого роста функции ф(*), так и во время исправной работы между отказами. На рис 6.4 приведена зависимость %(t) для некоторо- го участка эксплуатации программы: 1 — момент перво- го и 2 — момент второго отказа. Приведенная (6.4) модель, предложенная Б. Литтл- вудом и Дж. Л. Верраллом [32], может быть упрощена, 6* 139
если полагать, что ч|>'(0»//, что имеет место при доста- точно больших i. Тогда л (6.6) я т. е. мгновенная интенсивность отказов обратно пропор- циональна некоторой взвешенной средней от интервалов времени между отказами. Коэффициенты ро и Pi (6.5), входящие в $(п) (6.6), могут быть определены по экспе- риментальным данным, например методом максимума правдоподобия. Рассмотренная модель хорошо объясняет процессы, происходящие в ходе формирования последовательности отказов — восстановлений. Однако для практических расчетов и прогнозов надежности программ предложены более простые модели надежности. Модель Джелинского—-Моранды [21]. Эта модель ос- нована на следующих допущениях: 1) время до следую- щего отказа распределено экспоненциально; 2) интен- сивность отказов программы пропорциональна количе- ству оставшихся в программе ошибок.* Согласно этим допущениям вероятность безотказной работы программ как функция времени U равна Здесь CD — коэффициент пропорциональности; N — первоначальное число ошибок программы. В (6.7) отчет времени начинается от момента последнего (i—1)-го от- каза программы. Модель Шумана. Данная модель отличается от моде- ли Джелинского—Моранды только тем, что периоды вре- мени отладки и эксплуатации рассматриваются отдельно. Модель Шика— Волвертона. Основой этой модели является предложение о том, что интенсивность проявле- ния ошибок программы пропорциональна не только коли- честву оставшихся в программе ошибок, но и времени, потраченному на отладку. (6.7) где (6.8) 140
Недостаток рассмотренных моделей в том,, что при неточном определении N интенсивность отказов програм- мы делается отрицательной, а это приводит к бессмыс- ленному результату. Кроме того, здесь предполагается, что после обнаружения ошибка ликвидируется полно- стью и не вносятся новые ошибки, что тоже не очевидно. В целях преодоления этих трудностей была предло- жена модель 112], основанная на допущении о том, что поток возникновения ситуации, в которых возможен от- каз программы, является пуассоновским с параметром Я, однако по мере обнаружения и исправления ошибок от- казы в этих ситуациях возникают с вероятностью меньше единицы. Другими словами, поток отказов представляет- ся в виде разреженного потока с переменным коэффици- ентом разрежения pi, где I — номер отказа. В простейшем случае где <7 —некоторый коэффициент (0<?<1), pH=Pi —на- чальный коэффициент разрежения потока. Модель подходит не только для прогнозирования интенсивности возникновения следующего отказа про- граммы, но и для прогнозирования параметра потока отказов. Из (6.9) следует, что изображение параметра потока отказов по Лапласу Приближенное выражение оригинала (6.10) имеет вид а> (0 = (1 - рх) X - ((! - рх) Х)2 (1 - q) t + ((1 - рх) Х)3 х X (1 — —^)^2/21 _...(_ 1)«((1 _ Л)Х)"+1(1 с погрешностью не более Ас*(*)-(- I)rt+1 ((1 - р) Х)"+2 (I - q)... (1 - 0,|+1/я+1)/(/1 + 1)! (6.11) Приведенные модели представляют интерес прежде всего для прогнозирования отказов в процессе эксплуа- тации и отладки программы. При этом значения пара- метров моделей определяют в процессе эксплуатации или /-1 (6.9) (6.10) 141
отладки программы по данным о моментах возникнове- ния отказов, используя метод максимума правдопо- добия. Пример определения значения коэффициентов модели Джелин- ского—Моранды (6.7), (6.8) методом максимума правдоподобия. Пусть в ходе отладки зафиксированы интервалы времени t*i=10, *2=20, /з=25 и между отказами программы. Определить вероят- ность P(^) = ex*/4 отсутствия следующего, четвертого отказа, на- чиная от момента устранения третьего отказа. По методу максимума правдопобия на основании модели (6.7), обозначая через &=4 номер прогнозируемого отказа, получим, что ft— 1 функция правдоподобия имеет вид F— П С.о(ЛГ— ' + /-1 + l)e~"C^ *i9 а логарифмическая функция правдоподобия L = lnF- 2ПпЧСо(^-' + 1))-Сх)(ЛГ-/+1)^, /-1 откуда условия для нахождения экстремума &-§Ыг-(*-'+Н-°- <6•Iг, (6.13) 6N 1-1 Из (6.13) получим *-1 21/(лг-/+п Cd = ——in • (6.14) Из нелинейного уравнения, полученного подстановкой CD из (6.14) в (6.12): Г~1 + 1)<|. (вЛБ) <*-i>x=H=* TV-' /-1 находим значение iV методом перебора. Если #=3, то в левой части 10+20-4-25 (6.15) имеем 3. t f0 , f 0—-=90, а в правой части —3-10+2-20+ 1/3+1/4+1 + 1 «25=95. Если -V=4, левая и правая части соответственно равны 152 и 150. Если ЛГ= 5 —соответственно 210 и 205. Следовательно. 142
наименьшую ошибку при решении (6.15) обеспечит N=*4, откуда по (6.14) . 1/4+1/3-И/2 1,08 Со = ' 10 + 20+25 55 « 0,02. Таким образом, по (6.7)Я (*4) = е"0'02 <4-4+*) '« = е°'02Ч Сред- нее время до следующего отказа программы составляет tA=\/U= =50 ч. Прогнозирование надежности программ на ранних этапах их разработки. В настоящее время наиболее отра- ботаны способы прогнозирования ожидаемого числа оши- бок в программах [21]. Оценка ожидаемого числа ошибок У в программе вы- ражается через линейную зависимость где 2/ — /-й параметр программы; г — число существен- ных параметров; а/ — коэффициент. Таблица 6.3 Коэффициенты Тип программ а. at с* а* а* at 9 Управ- ляющие Вывода Вычис- литель- ные На- стройки Слу- жебные 0 0,0405 0,171 0,430 0,036 0 0 —0,00186 4,00 0 0 0,780 0 0 0 0,0218 0 4,56 0 0,024 0,412 0 0,416 0,016 0,082 -0,0026 6,34 0 0,001 0,592 0 0 0 2,090 0,0374 0,628 0,102 0 0 0,0625 —0,0036 3,04 0 —0,0133 1,64 В качестве параметров 2/ выбраны величины: Z\ — сложность условных операторов IF, 21=2пдо/, где щ — число условных операторов 1-го уровня вложенности цик- лов, wi—4l"l(3/4Q—1)—весовой коэффициент, где Q — наивысший уровень вложенности циклов (количество циклов, вложенных друг в друга); 22— общее число вет- влений; 23 —общее число связей с прикладными про- граммами; 24 — общее число связей с системными про- граммами; 2б — число операций ввода—вывода; 2в — чис- 143
ло вычислительных операторов; z-i — число операторов обработки данных; z8 — общее число комментариев. В результате исследований получены следующие ко- эффициенты регресии (табл. 6.3) [21]. В последней графе таблицы приведены среднеквадра- тичные погрешности а регрессионных оценок числа оши- бок в программе. Подобного рода оценки справедливы только в условиях, близких к условиям, для которых были определены коэффициенты регрессии. Если число ожидаемых в программе ошибок оценено, то интенсив- ность отказов программы оценивается по выражению Xnp«Y^pemt (6.16) где *рвш — среднее время однократного прохождения про- граммы; у— усредненное по всем ошибкам значение у— условной вероятности того, что ошибка в программе про- является при однократном прохождении программы, при условии, что она в программе есть. В первом приближении величину у можно оценить как отношение среднего количества элементов програм- мы, участвующих при однократном прохождении про- граммы, к общему количеству элементов программы. Однако эта оценка будет завышена, так как при отладке программы обнаруживаются и устраняются преиму- щественно ошибки с большим значением у, а необнару- женными остаются ошибки с малым значением у. Следо- вательно, в результате своего рода «естественного отбо- ра» в программе остаются ошибки с малым значением у. Поэтому рекомендуется оценить y экспериментально, определяя интенсивность отказов и количество ошибок для нескольких программ рассматриваемого вида. Тогда по (6.16) где Xt, Yi, fpem — соответственно интенсивность отказов, количество ошибок и время решения для 1-й программы; п — количество испытанных программ. Экспериментальная оценка числа ошибок в програм- ме. Количество естественных ошибок в программе (а также интенсивность отказов программы, как величина пропорциональная количеству ошибок) может быть опре- делено по отношению количества обнаруженных естест- 144
венных и искусственных ошибок в программе, если в программу было введено определенное количество искус- ственных ошибок, однотипных с естественными ошибка- ми (метод X. Д. Миллса, (16]). В (16] предлагается также интуитивная модель, которая не нуждается во введении искусственных ошибок. Согласно этой модели число оши- бок в программе оценивается как Y^YxYzlYu, где Уь Y2 — число ошибок, обнаруженных первым и вторым про- граммистами, отлаживающих независимо друг от друга первоначальный текст программы, а У12 — число ошибок, обнаруженных как первым, так и вторым программиста- ми. Очевидно, что первоначальный текст программы дол- жен быть разработан при этом третьим программистом, чтобы поставить отлаживающих текст программистов в равные условия. § 6.3. МЕТОДЫ ВВЕДЕНИЯ СТРУКТУРНОЙ ИЗБЫТОЧНОСТИ В ПРОГРАММЫ Осознание того факта, что надежность программы, кото- рая может быть достигнута технологическими мерами, ограничена, вызвало необходимость обеспечения или по- вышения надежности программ путем резервирования. Для этого подготавливаются две или несколько версий программ для решения одной и той же задачи. Жела- тельно, чтобы эти версии значительно отличались друг от друга, т. е. основывались по возможности на различ- ных алгоритмах или были бы по крайней мере выполне- ны различными программистами. Опыт показывает, что различные программисты пишут существенно отличаю- щиеся тексты программ даже в случае одинаковых алго- ритмов. Поэтому маловероятно, что возможные ошибки в текстах отдельных версий программ совпадают. Следо- вательно, они могут быть обнаружены по расхождению результатов, полученных при одних и тех же исходных данных по различным версиям программ. Эти ошибки могут быть обнаружены в ходе отладки версии и про- грамм сравнением результатов. Такой метод отладки может быть в значительной мере автоматизирован. Одна- ко, как уже было показано выше, даже в случае простых программ проверить в ходе отладки все возможные ком- бинации исходных данных или все возможные последо- вательности прохождения элементов программы невоз- можно. Поэтому была предложена идея параллельного (одновременного) или последовательного во времени вы- 145
полнения различных версий программ непосредственно в процессе эксплуатации. Если таких версий две, приня- то говорить о дуальном программировании. При дуальном программировании, если обнаружива- ется расхождение в результатах (результаты сравнива- ются соответствующими аппаратными или программны- ми средствами), необходимо определить по каким-либо дополнительным критериям, какой из результатов пра- вильный и отбрасывать другой результат. При N-eepcu- онном программировании подготавливается N версий программ и правильный результат определяется по ма- жоритарному признаку (см. § 2.5) при помощи подходя- щих аппаратных или программных средств. При дуальном или JV-версионном программировании требуется соответственно в два или N раз больше аппа- ратуры или соответственно в два или N раз больше вре- мени для вычислений, если последние выполняются по- следовательно во времени. Кроме того, объем труда программистов возрастает во столько же раз. Дуальное или #-версионное программирование целесообразно ис- пользовать в случае, если имеет место нагруженное резервирование вычислительной аппаратуры. Тогда для вычислений по различным версиям программ не требу- ется дополнительная аппаратура — для этого можно использовать резервную аппаратуру. Тем не менее опыт показывает, что создание нескольких версий программ — чрезвычайно трудоемкий и дорогостоящий процесс. Поэтому представляет интерес модифицированное дуальное программирование, где наряду с достаточно точной, но сложной основной программой используется менее точная, но простая резервная программа {28]. Если при одинаковых исходных данных результаты работы программ отличаются на величину большую, чем допус- тимая погрешность, делается предположение о том, что отказала основная программа, как менее надежная, и в качестве правильного результата принимается результат, полученный при помощи резервной программы. В резуль- тате средняя погрешность работы двух программ не- сколько увеличивается, но вероятность отказа уменьша- ется. Обозначим погрешность первой программы через 6i и допустимую погрешность второй программы через 62. Пусть вероятность отказа (возникновение погрешности значительно больше допустимой) первой программы со- ставляет q\ и второй программы — При независимости 146
этих программ возможны следующие несовместимые со- бытия: 1) обе программы работают безотказно, вероятность этого события р= 1—<7i—<72+<7i<72, погрешность результа- та — 6\. 2) откажет основная программа; вероятность этого события <7oi=<7i(l—Ч2)=Я1—Я1Я2, погрешность результа- та — 62; 3) откажет резервная программа; вероятность этого события <7io=<72(l—Я1)5=5Ч2—Я\Я2\ погрешность результа- та — весьма значительная, допустим 63 (погрешность от- казавшей резервной программы); 4) откажут и основная, и резервная программы; веро- ятность этого события Я\\=ЯЯ2> погрешность 63. Следовательно, средняя погрешность неотказавшей системы из двух программ ьх2 = рЬх + ^**2 = при вероятности отказа системы <7с=<7ю+<7и=<72—Я1Я2+ + Я\Я2=*Я2- В случае, когда имеется только основная программа, погрешность результата равна бь а вероятность отка- за — <7ь Пример расчета надежности и точности системы с применением модифицированного дуального программирования. Пусть 61=0,01; б2=*0,1; ?1«0,05 и ^2=0,001. Тогда 6i2=0,95• 0,0Г+0,05• 0,1 =0,0145 и <7о=?2=0,001. Следовательно, при использовании системы, состоя- щей из точной и грубой программы с решающим орга- ном, средняя погрешность работы системы по сравнению с точной программой возрастает приблизительно в 1,5 ра- за, а вероятность отказа уменьшается в 50 раз. Решаю- щим органом при этом является простейшая программа, которая сравнивает результаты работы грубой и точной программы, и в случае, когда абсолютная разность пре- вышает максимальную суммарную погрешность двух программ, осуществляет отбрасывание результата у\ пер- вой и выдачу результата у2 второй программы, т. е. реа- лизует алгоритм (уи если | у\ — у21 < Ъ\ + h; , Описанная система эффективна в случае, когда кри- терием ее эффективности является усредненная по вре- 1 — Я\ — 42 4- Я\Я2 1—02 Я\ — 0102 1-^2 ^ + 001 *2 =(1 —0l) &1 + 01&2. у2, еСЛИ | 01 — У2 | > h + *2- 147
мени погрешность. Если же эффективность системы определяется мгновенным максимальным значением погрешности, описанный способ резервирования не эф- фективен. Избыточность операционной системы. Рассмотренные методы резервирования программ применимы как отно- сительно программ пользователя, так и относительно операционных систем. Некоторое повышение надежности программ обеспе- чит применение принципа виртуальной машины в случае мультипрограммной обработки. Виртуальные машины образуются при помощи монитора — специальной про- граммы или программно-аппаратной системы, которая создает для каждого пользователя иллюзию работы на отдельной вычислительной машине. При этом важна вы- сокая степень изоляции каждой виртуальной машины. Тогда ошибка в программе одной виртуальной машины не влияет на другие. Высокая степень изоляции может быть достигнута созданием отдельных операционных сис- тем для каждого пользователя. Тогда ошибка в одной операционной системе не сказывается на работе опера- ционных систем других виртуальных машин. На рис. 6.5 изображена структура мультипрограммной обработки на одной ЭВМ без применения принципа виртуальной машины. Пользователи Пь Пг, Пп имеют общую опе- рационную систему ОС. Ошибка в ОС выводит из строя всех пользователей. На рис. 6.6 изображена структура системы с вирту- альными машинами высокой степени изоляции. Только Рис. 6.5. Структура муль- типрограммной обработ- ки Рис. 6.6. Структура муль- типрограммной обработ- ки с разделением опера- ционных систем 148
ошибка в сравнительно небольшой программе-мониторе М влечет за собой нарушение работы пользователей Пь ЕЬ, ПЛ. Отказы индивидуальных операционных систем OCi, ОС2, ОСп вызывают нарушения в работе только «своего» пользователя. Метод контрольных функций. Рассмотренные выше методы введения избыточности в программы основаны на повторении программ в различных версиях. Такие ме- тоды повышения надежности программ не экономичны как в смысле расхода ручного труда программиста, так и в смысле использования объема памяти для записи программ и, наконец, в смысле экономии машинного времени. Существует более экономичный метод повышения на- дежности программ — метод контрольных функций. При этом методе наряду с вычисляемой функцией по иной программе определяется другая функция, находящаяся с основной вычисляемой функцией в соотношениях, на- зываемых контрольными соотношениями. Эти соотноше- ния позволяют не только обнаружить отказ одной из программ, но также и восстановить искаженный резуль- тат отказавшей программы на основании результата, полученного по безошибочно работающей программе (программам). Простейшим примером применения мето- да контрольных соотношений является вычисление функ- ции sin* и cosх по отдельным программам. Контрольным соотношением в данном случае будет соотношение sin2 jc+cos2 jc= 1. Пусть имеются две независимые программы, вычисля- ющие числовые функции f\ и /2 (аргументы функции для простоты записи опущены). Необходимо исправлять лю- бую одиночную ошибку в программах. Для решения этой задачи можно было бы применить метод троирования с голосованием (с мажоритарным органом, см. § 2.5). В этом случае потребуется четыре дополнительные, неза- висимые программы. Опишем подход, требующий только три дополнитель- ные программы, вычисляющие значения вспомогатель- ных контрольных функций fz, !а, h [30]. Эти функции мо- гут, например, удовлетворять уравнениям вц/i + Я12/2 + а1з/з = 0; + «22/2 + Л24/4 = 0; (6.17) *3i/i + 035/5 = 0, 149
где ацФО — произвольные постоянные. В (6.17) и ниже предполагается, что любая функция U, вычисленная i-й программой, при произвольном аргу- менте х удовлетворяет соотношению 0<fi<U, где и — достаточно большое число. Процедура исправления ошибок основана на провер- ке системы (6.17). В результате одиночной ошибки функ- ции /р(р=1,5) возникает функция fP+eP, где еРфО — функция ошибки. В данном случае вектор ошибок имеет вид е = (*i,..•, *б) = (0, 0 О, ept 0 0). Характеристика ошибки (синдром) в виде вектора S«(Sb S2, S3) может быть определена следующим об- разом: 5 St - Д ац (fj + ej) - Vp пР« ' - 1. 2. 8. Например, если имеется ошибка ех в функции /ь то вектор синдромов S —(ацвь 021*1, aziei); для ошибки е2 в функции f2 синдром будет (а\2, е2, а22е2, 0) и т. д. Про- цедура исправления ошибок (вычисление в\ при t=l, 5) может быть осуществлена путем анализа этих синдро- мов, если для любых двух одиночных ошибок синдромы отличаются друг от друга и не равны нулю. Если вектор синдромов не совпадает с вектором синдромов для любой одиночной ошибки и не равен нулю, это свидетельствует о том, что в системе имеется двойная или многократная ошибка. Например, пусть ЭгФО, S2^0, 5з=0. Если S2a-,22= =Sia-1i2, то функция /2 содержит ошибку e2—S2a"l22\ если S2a~l22¥:Siarli29 то делается вывод о том, что име- ется двойная и многократная ошибка. Поскольку постоянные ац в (6.17) могут быть выбра- ны произвольно, их можно использовать для уменьшения сложности программ при вычислении контрольных функ- ций h, fi> h- В некоторых случаях ац могут быть выбраны так, что контрольные функции делаются постоянными. В этом случае дополнительные программы и дополнительная аппаратура не требуются, кроме программ для корректи- ровки ошибок. Пусть имеются k процессоров, вычисляющих число- вые функции f\, fk, и ошибки вычислений f\, fk — 150
независимы. Необходимо исправлять любую одиночную программную или аппаратурную ошибку. Для корректировки ошибок используется г дополни- тельных процессоров, вычисляющих контрольные функ- ции fk+\>.,fk+r, удовлетворяющие г линейным уравне- ниям: 2 = О при / =1 г, (6.18) /-1 где ац — постоянные. Система (6.17) является частным случаем системы (6.18) при &=2, г=3. В результате одиночной ошибки функции fx, fk+r заменяются функциями f\ + e\, fk+r+вк+г, где только одна составляющая вектора ошибок (еи...»£*+г) не равна нулю. Для ошибки е= (0,О, ер, 0,0) (ерФ0) резуль- тат проверки (6.18), называемый синдромом ошибки е, приобретает вид 5' - S ац (// + ej) - Vp* (вЛ9) Необходимым и достаточным условием исправления одиночных ошибок при помощи системы контрольных соотношений (6.18) является то, что любые две ошибки е(1> и е(2) (№Фе№) должны иметь различные синдромы. Если e<D=(0,..,0, е%, 0,...,0) и е<2>= (0,...,0, е™и 0,..., 0), то по (6.19) "to+rti'H- <в20> Из (6.20) следует, что необходимые и достаточные условия для исправления одиночных ошибок сводятся к тому, что в матрице а=(а//] каждые два вектора-столбца должны удовлетворять неравенству ар«Ма/, (6.21) где Ъ — произвольная постоянная. В частности, требуется, чтобы ърФЩ для каждого р-го столбца [а//]. Пусть Н=[А//] — некоторая контрольная матрица раз- мера rX(k+r) для двоичного кода с исправлением оди- ночных ошибок (см. § 7.3). В такой матрице й/*е{0, 1} и все столбцы матрицы Н отличаются друг от друга и не равны нулю. Следовательно, если полагать, что 151
(6.22) где ЛцФО — произвольные постоянные, то построенная матрица а=(а|7] будет удовлетворять условию (6.21) и при помощи такой матрицы можно исправлять одиноч- ные ошибки. Например, система (6.17) была построена этим способом на основе контрольной матрицы [1110 0] 110 10. 1 0 0 0 lj Следовательно, для построения контрольных функций (6.18) необходимо только выбирать двоичную rX(k+r) матрицу [hij] с отличающимися друг от друга столбцами, не равными нулю, а затем применить соотношение (6.22). Таким образом, изложенный подход является обоб- щением методов кодирования с обнаружением и исправ- лением ошибок и позволяет исправлять не элемент кода, а вычисляемую функцию, содержащую ошибку. Метод целесообразно использовать тогда, когда имеются неза- висимые программы для вычисления различных функций. Пример исправления одиночной ошибки с помощью контрольных функций. Пусть вычисляются четыре функции fu /з» fi» Необхо- димо построить систему, позволяющую исправлять ошибку в одной из функций. Для построения системы уравнений (6.18) используется матрица Н Хэмминга (см. пример на с. 182) вида [0 1 1 1 1 0 01 10 110 10. 1 1 0 1 0 О 1J Выбирая коэффициенты йц равными единице; непосредственно по матрице Н с учетом (6.22) записывается система уравнений (6.18): где дополнительные контрольные функции fs, /6 и f7 определяются по следующим очевидным соотношениям: /5=—(fe+fs+M; fe— =—(7i+f3+f4); f7=—(7i+f2+f4). Если, например, возникает ошиб- ка е2 при вычислении функции то по (6.19) .Si=.S3=^ S2=0. По виду синдрома (Si#0, 52=0, вгФО) определяется, что ошибка соответствует второму столбцу матрицы Н, т. е. ошибка е2 относит- ся к функции /2 и последняя может быть скорректирована вычита- нием этой ошибки. Аналогично исправляются ошибки и в функциях ./ь /з, /4- fx /2+ fi + fi + fB + /3+/4 ft +/4 + /e = 0, = 0, + /7 = 0, 152
§ 6.4. СТРУКТУРНЫЕ МЕТОДЫ ТЕСТИРОВАНИЯ ПРОГРАММ Тестирование — проверка работы программы поч резуль- татам ее выполнения на специально подобранных набо- рах исходных данных — тестах. Программа может быть тестирована либо полностью (полное тестирование), либо выборочно (выборочное тес- тирование) в отдельных точках пространства исходных данных. При выборочном тестировании надежность програм- мы не может быть полностью гарантирована. Если тес- ты предлагаются программистом, то они могут охватить только те части программы, с которыми программист наиболее знаком. Поэтому мно- гие скрытые ошибки могут оста- ваться не обнаруженными. Полное тестирование на всех возможных входных наборах про- граммы или даже тестирование всех путей в структуре програм- мы нереально, так как число тес- тов будет недопустимо большим. Например, если число входов рав- но десяти и каждый вход про- граммы может приобретать де- сять значений, число необходи- мых элементарных тестов для проведения полного тестирования будет равно 1010. Поэтому пред- ложено структурное выборочное тестирование, основанное на раз- делении пространства исходных данных на классы, при- чем каждый класс позволяет подтвердить определенные свойства или работоспособность определенных элемен- тов структуры программы. Основной задачей при этом является построение генератора тестовых наборов для их автоматического генерирования. Общая схема генератора тестовых наборов представ- лена на рис. 6.7. Исходя из тестируемой программы Т выбирается набор путей П в структуре программы, удов- летворяющий некоторым критериям К тестирования. Наиболее часто эти критерии основаны на структуре про- граммы. Достаточно простое требование может заклю- чаться в том, что выбранные пути должны перекрывать Рис. 6.7. Структура генератора тестов 7-595 153
(задействовать) все операторы '(команды программы). Затем генерируются ограничения О, позволяющие реали- зовать тот или иной путь на графе программы. Ограни- чения преобразуются модулем ПВ в ограничения к ис- ходным данным. Только тогда с помощью алгоритма А генерируются тестовые наборы ТН — наборы числовых значений исходных данных, удовлетворяющих отдельным ограничениям. Критерий выбора путей на структуре программы в простейшем случае состоит в том, что выбранные пути должны перекрывать (задействовать) все операторы (команды) хотя бы один раз. Поскольку при этом тести- руются команды чаще всего в порядке их расположения в тексте программы, такое тестирование называется ста- тическим тестированием. Однако при этом тестируются не все возможные пути на графе программы и ошибки в управлении программой могут оставаться необнару- женными. Тестирование ветвей. Более строгое требование за- ключается в том, что выбранные пути должны перекры- вать все ветви структуры программы или все разветвле- ния по всем направлениям (динамическое тестирование или тестирование ветвей). Такой подход гарантирует однократное тестирование всех операторов и всех ветвей. Опыт показывает, что значительное число ошибок возникает из-за неточностей при формулировке условий выхода из циклов, поэтому предлагается вводить еще дополнительное требование, чтобы каждый цикл испыты- вался двумя тестами, один из которых привел бы к ис- полнению цикла с возвратом, а другой бы проходил цикл без возврата. Верификация программ. Всякое тестирование с по- мощью числовых наборов исходных данных позволяет проверить программу только в ограниченном числе то- чек пространства исходных данных, поэтому наибольший интерес представляют более общие методы. Сюда отно- сится прежде всего верификация программ — доказа- тельство их правильности при помощи математических методов доказательства теорем. Для этого программа представляется в виде последовательности ряда более или менее простых утверждений, доказательство которых не представляет труда. Данный процесс может быть автоматизирован, но практические результаты в этом направлении пока незначительные. Дело в том. что доказательство даже относительно простых утвержде- 154
ний — процедура, требующая высокой квалификации и подлежа- щая автоматизации лишь в отдельных редких случаях. Ввиду большой сложности доказательства здесь возможны ошибки, что с практической точки зрения, не взирая на кажущуюся строгость, приводят к тому, что метод верификации не может дать гаран- тию полной безотказности верифицированной программы. Символическое тестирование. В отличие от верифика- ции тестирование программ заключается в проверке пра- вильности числовых результатов работы программ при специально подобранных значениях входных перемен- ных— тестовых наборов. В некоторых случаях тестиро- вание может производиться и символически — выполне- нием процедур, основанных на символических входах (обозначениях входных переменных, позволяющих выра- зить выходы программы также в символическом виде). Для различных путей программы при этом соответству- ют различные символические входы и выходы. Если существует ограниченное число таких путей, то символи- ческое исполнение может быть применено для подтвер- ждения правильности программы с использованием сим- волических выражений входов и выходов. Преимущест- во символического тестирования перед числовым тестированием заключается в том, что если числовой тест позволяет проверить работу программы на отдель- ных числовых значениях входных наборов, то символи- ческое тестирование оперирует множествами исходных данных, определяемых ограничениями. Символические выражения путей программы могут быть получены либо прямой подстановкой, либо обрат- ной подстановкой. Прямая подстановка соответствует действиям, проделываемым при реализации определенно- го пути в структуре программы. При прямой подстанов- ке символическое исполнение осуществляется для каж- дого исполняемого оператора с запоминанием промежу- точных символических выражений переменных. В случае обратной подстановки ограничения на входные перемен- ные строятся «снизу вверх» при прохождении пути на графе программы в обратном направлении. В результате получаются такие же ограничения, как и при прямой подстановке. Однако при обратной подстановке не пона- добится память для запоминания символических записей переменных. Зато при прямой подстановке имеется воз- можность раннего обнаружения неосуществимых путей с противоречивыми ограничениями на исходные данные. При символическом тестировании определенную труд- ность представляют циклические участки программы, по- 7* 155
скольку в данном случае число итераций неизвестно. Наиболее просто проблема может быть преодолена под- становкой некоторого заранее оцененного числа итера- ции. Однако при этом полученные ограничения могут оказаться не точными. Второе , затруднение связано с наличием в программе модулей. Последнее преодолева- ется самволическим исполнением модулей, встречающих- ся на данном пути. Третье затруднение связано с симво- лическим выполнением массивов данных. Дело в том, что в некоторых случаях значение переменного устанав- ливается только в ходе исполнения программы. Это за- труднение может быть преодолено введением дополни- тельных (гипотетических) ограничений, соответствующих различным возможным случаям. Генерирование структурных тестов. Названных выше недостатков лишено структурное тестирование программ на конкретных числовых исходных данных [11]. Генерирование тестов заключается в выборе множе- ства путей, полностью покрывающих граф программы, и в определении тестовых данных, на которых эти пути выполняются. Граф программы (граф управления) —структурная модель программы, показывающая связь между ее эле- ментами. Вершины графа изображают операторы раз- ветвления и объединения, а дуги — операторы обработки и передачи данных. Граф представляется в виде упако- ванной матрицы смежности (УМС). Упакованная матри- ца смежности А={а*/} графа с v вершинами — это vy^l матрица (/ — максимальная степень выхода i-й верши- ны). Степень входа dB*(vi) и выхода dbux(vi) некоторой вершины графа означает соответственно количество вхо- дящих и выходящих из вершин дуг. Каждая строка i УМС заполняется в произвольном порядке номерами вершин, которые являются смежными с вершиной L Представление графов в виде УМС имеет следующие преимущества по сравнению с другими существующими представлениями: для больших графов число столбцов УМС значитель- но меньше, чем число столбцов соответствующей матри- цы смежности; относительно просто моделируется процесс движения по графу для построения путей; уменьшается время обработки графов. За критерий тестирования взят критерий ветвей, где под ветвью программы понимается некоторая последова- 156
тельность операторов, выполняемых строго один за дру- гим. Таким образом, ветвь — линейный участок програм- мы. Для построения минимального покрытия граф разби- вается на DD-пути с использованием УМС исходного графа. Множество вершин, у которых степень выхода ^вых(у/)>1, входная и выходная вершины обозначаются как D-вершины. Тогда DD-путь — простой путь между двумя D-вершинами, такой, что в его пределах нет D-вер- шин. Затем определяются циклы и петли и исключаются замыкающие их дуги. Предлагаемый алгоритм построения минимального покрытия (МПОК) графа состоит из следующих этапов. Этап 1. Просматривается i-я вершина и определяет- ся смежная вершина /, номер которой является макси- мальным среди номеров смежных вершин, где N— —1;} N — количество вершин графа. Рис. 6.8. Пример графа программы Этап 2. Просматривается дуга (vi, vj). Если dBux(Vi)>l и dBX(Vf)>\, то дуга g(vi, vf) исключается. Если dBUx(vi)>l и rfBx(t;/) = l, то дуга h(vi, vj) отме- чается. Этап 3. Если а?вых(^) = 1 и dBX(vj)>\ и если на пути не имеется дуги типа g, то исключаются рассматривае- мая дуга и дуга типа А, отмеченная в этапе 2. Э т а п 4. Подставляется i=j и повторяются этапы 1—3 до тех пор, пока / не приравнивается номеру конечной (выходной) вершины. Зафиксируется путь в виде после- довательности значений /. Этап 5. Повторяются этапы 1—4 до тех пор, пока в построенном пути не останется дуг типа g и А. Пример построения минимального покрытия графа программы. Пусть задан граф программы, изображенный на рис 6.8. Дуги гра- фа означают последовательность вычислительных операторов прог- раммы, вершины графа — операторы разветвления и объединения. После исключения замыкающих циклов дуг (они тестируются от- дельно) граф рис 6.8 описывается следующей УМС: 167
1 2 0 0 0 2 3 3 0 0 3 4 6 10 0 4 5 6 0 0 5 10 0 0 0 6 7 7 7 7 7 8 0 0 0 8 9 9 0 0 9 10 10 0 0 10 ,0 0 0 0 Первые этапы алгоритма МПОК дают следующие результаты: Этап 1. Устанавливается i=l, 1=2. Этап 2. Дуга (vu Vj) не исключается и не отмечается. Этап 3. Дуга не исключается. Этап 1. Устанавливается /=2, /==3. Этап 2. Исключается одна из дуг (v2t v^). Этап 3. Дуга не исключается. Этап 1. Устанавливается «=3, /= 10. Этап 2. Дуга (Ъ3, vl0) исключается. Этап 3. Дуга не исключается. Этап 1. Устанавливается f=3, /=6. Процедуры этапов 1—-3 повторяются до тех пор, пока не опре- делится путь до конечной вершины графа ою, соответствующей по- лучению результата вычислений. В данном случае первый путь Pi={l, 2, 3, 10} определяется после семи этапов. Следующие этапы, повторяемые до тех пор, когда в построенном пути не остается дуг типа g и Л, позволяет определить следующие пути: />2 = {1, 2, 3, 6, 7, 8, 9, 10}, />з={1» 2, 3, 4, 6, 7, 8, 9, 10}, />4={Ь 2, 3, 4, 6, 7, 8, 9, 10}, />б=<1. 2, 3, 4, 6, 7, 8, 9, 10}, />6 = {Ь 2, 3, 4, 5, 10}. В общем случае множества тестов, приводящие к ис- полнению всех операторов и всех разветвлений в про- грамме, являются не обязательно достаточными с точки зрения проверки всех функций, выполняемых програм- мой. Однако тестирование всех путей в структуре про- граммы нецелесообразно или даже невозможно из-за их большого количества. Компромиссным решением будет тестирование выборки путей, обеспечивающей испытание важнейших взаимодействий между частями программы. На графе, описывающем программу, такие взаимодей- ствия могут быть моделированы введением пар вершин, 158
которые должны взаимодействовать по крайней мере при одном тесте. Таким образом, построение покрытия не всегда целе- сообразно полностью формализовать. В отдельных слу- чаях необходимо учесть соображения содержательного характера, вытекающие из назначения программы и из требований к программе. Допустим, что тем или другим способом найдено по- крытие графа. Далее необходимо определить тесты — наборы исходных данных, — обеспечивающие реализа- цию, тех путей на графе программы, которые образуют покрытие. Общее выражение для нахождения множеств наборов исходных данных, позволяющих реализовать i-й путь, имеет вид где Нц — множество наборов исходных данных, обеспе- чивающих переключение в нужном направлении в /-й точке разветвления т) *"го пути. Множество Нц определяется через множество Н'ц, представляющее со- бой множество значений промежуточных результатов, входящих непосредственно в условие переключения. Таким образом, как множе- ство #'//, так и множество Нц описываются через некоторые условия, выраженные чаще все- го в виде неравенства. Отобра- жение множества Н'ц в множе- ство Нц осуществляется через последовательные подстановки промежуточных результатов в условие (условия) Я'*/, пока не будут подставлены исходные данные программы. Например, если Н'ц выра- жается через условие переклю- чения в /-м узле /-го пути Н'ц : •МУ«/)>Ов а уц=уц(х), где у а — промежуточные результаты в точке ij графа про- граммы, а х — исходные данные, то Нц :А//'до/{*))>0. Рис. 6.9. Фрагмент струк- туры управления прог- раммой 169
Пример генерирования тестов для заданных путей на графе программы. Рассматривается фрагмент программы со структурой, изображенной на рис. 6.9. Фрагмент может быть покрыт следующим множеством путей: {1, 2, 4, 5; 1, 2, 4, 6; 1, 2, 3, 4, 5; 1, 2, 3, 4, 6}. Путь 1, 2, 4, 5 реализуется, если выполнены условия #i2:x>3; #24:#<0; #45:х+#<0. Пересечение этих множеств изображено в виде штрихованной области на рис. 6.10, а. Тестом для этого пути программы может явиться любая пара (х, у), принадлежащая за- штрихованной области, например Т\ :дг=4, 6. Путь 1, 2, 4, 6 реализуется как пересечение множеств #н*.х>3; #24:г/<0; #4в:*+#>0. Пересечение изображено на рис. 6.10, б. Возможным тестом будет Т :х=4, //=—2. Путь 1, 2, 3, 4, 5 определяется пересечением множеств #|2: х>3; Ям: У>°> #34: Re\ Н\ь: х+уМ<0; #45: 2<0, где /?е означает что при переходе 34 ограничений нет, т. е. #34 охватывает все действи- тельные числа. Через {/<*> обозначено значение у после преобразования линейным элементом программы 3. Легко убедиться в том, что #12П#2зП Л#з4П#4б¥г0, т. е. данный путь не реализуем. Отметим, что такой результат не обязательно означает, что программа содержит ошиб- ку, но является указанием на необходимость дополнительной про- верки на содержательном уровне. Путь 1, 2, 3, 4, 6 реализуется как пересечение множеств Н\г: >3; #23: У>0; #34:Re; #«:*+#(1>>0; #4б:х+у—2>0. Пересече- ние этих множеств на рис. 6.10, в заштриховано. Возможным тестом является набор Г3:х=4, */=2. Рис. 6.10. Подмножества тестов для отдельных путей на гра- фе программы § 6.5. ФУНКЦИОНАЛЬНЫЕ МЕТОДЫ ТЕСТИРОВАНИЯ ПРОГРАММ Основное требование к любой программе или програм- мной системе сводится к тому, что программа должна выполнить заданные функции. Поэтому естественно под- ходить к определению безошибочности программы с точ- ки зрения соответствия этой программы заданию, специ- 160
фикации или эталону. При этом возникают проблемы — 1) выбор тестов и 2) оценка правильности результата прохождения каждого теста. В случае структурного тестирования (см. § 6.4) тесты выбираются исходя из требования тестировать все эле- менты структуры программы, а контрольные значения для оценки правильности прохождения теста могут быть ввиду их относительно небольшого количества легко рас- считаны вручную. Однако построение системы тестов структурным тестированием наталкивается на трудности, если тестируемая программа имеет сложную структуру. Дело в том, что для построения тестов необходимо исхо- дить из структуры программы. Установление фактической структуры большой про- граммы путем анализа ее текста на ЭВМ требует значи- тельного машинного времени. При этом нет никакой гарантии того, что фактическая структура программы соответствует требуемой и что имеющие места различия удается установить. Также нет уверенности в том, что (однократная) проверка каждого элемента структуры программы обеспечивает достаточную степень безоши- бочности программы. Поэтому наряду со структурным тестированием нашло развитие функциональное тестиро- вание, основанное на непосредственной проверке соответ- ствия выполняемых программой функций поставленным требованиям. Вопрос о выборе тестов при этом может быть решен различными путями. Одна возможность — выбор тестов по содержательному принципу. Вторая воз- можность — стохастический выбор тестов. При выборе тестов по содержательно- му признаку необходимо исходить из конкретной задачи и какие-либо общие рекомендации здесь вряд ли возможны. При стохастическом выборе тестов (сто- хастическое тестирование) требуется, чтобы тесты в ста- тистическом смысле соответствовали решаемым задачам. В таком случае возможна количественная оценка вероят- ности того, что в тестируемой программе нет ошибок. Появляется также возможность обосновать количество необходимых тестов. Кроме того, упрощается процедура генерирования тестов. Основой стохастического тестирования должна яв- ляться адекватность тестовых и эксплуатационных входных наборов по статистическим критериям. Если входы тестируемой программы имеют непрерыв-
ный характер, то нужно требовать, чтобы (многомер- ная) функция плотности распределения входов при тес- тировании программы совпала с функцией плотности распределения входов, возникающей при эксплуатации программы. Практически достаточно, если требовать сов- падения моментов первого, второго, а иногда и третьего- четвертого порядков этих распределений. Если входы тестируемой программы имеют дискрет- ный характер, необходимо, чтобы не только безусловные, но и условные вероятности возникновения отдельных дискретных значений входов для тестовых и для эксплу- атационных наборов совпали. Оценка через моменты, так же как и в случае непрерывных распределений, име- ет приближенный характер. Практически у большинства программ есть как непрерывные, так и дискретные входы. Так как статистические моменты распределения опре- делимы как для непрерывных, так и для дискретных слу- чайных величин, то такие смешанные дискретно-непре- рывные наборы целесообразно генерировать по критерию совпадения моментов. Допустим, что в ходе статистических исследований потоков данных, поступающих на входы тестируемой программы, были установлены оценки математического ожидания t-й переменной: г т(/> = -~ S ЛЛЯ ' = 1' 2Г% (в'23> v—1 оценки центрального момента А-го порядка для f-й пере- менной п W^^W-"™)** (6.24) оценки корреляционного момента между f-й и /-ft пере- менной =тrS ^° ~ m(0) ^ " т(/)*' (в'2б) где jc(/)v — измеренное значение i-й переменной в v-м экс- перименте; п — число экспериментов; г — число перемен- ных. Для генерирования случайных исходных данных, соответствующих по своим значениям оценкам |i<0*, 162
Rif, может быть использована модификация метода Дж. Неймана, заключающаяся в следующем. Сперва генерируются в области допустимых значений исходных данных некоторые случайные значения х(/\ю> распреде- ленные по равномерному закону или по дискретному равномерному закону, если эти данные могут приобре- тать только дискретные значения. Затем проводится про- верка соответствия генерированных значений требуемым значениям моментов по (6.23), (6.24), (6.25). В случае несоответствия отбрасываются некоторые генерирован- ные значения и взамен их генерируются новые и снова проверяется соответствие оценочных моментов требуе- мым значениям и т. д., пока не будет генерирована сово- купность случайных исходных данных, статистически соответствующих встречаемым в процессе эксплуатации данным. Соответствие моментов генерированных случай- ных величин и случайных величин, зафиксированных экспериментально, оценивается по критерию перекрытия доверительных интервалов на те и другие величины. Вторым существенным составляющим стохастическо- го функционального тестирования является проверка правильности результатов вычислений по генерирован- ным случайным исходным данным. Проверка правильности может осуществляться путем проверки соответствия эталону; принадлежности облас- ти; по времени выполнения; сравнения с другими (сосед- ними) значениями; через достижения цели (в замкнутом контуре управления). Наиболее просто проверка правильности осуществля- ется через сравнение с эталоном. Эталоном могут являть- ся вычисления, выполняемые по другой, эквивалентной программе или другому алгоритму. Например, если раз- работан улучшенный по быстродействию вариант про- граммы, то эталоном может быть исходная программа. Результаты, рассчитанные вручную или содержащиеся в задании (спецификации) к программе, очевидно, слиш- ком немногочисленные для статистических оценок. Если программа составлена на языке не самого высокого уров- ня, то в качестве эталона может быть использована ана- логичная программа, написанная на языке более высо- кого уровня. Составление такой программы менее трудо- емко, а большая ее длина не существенна, поскольку она используется только при тестировании. Удобным критерием оценки правильности результата вычислений является критерий принадлежности его не- 163
которой области. Как правило, для каждого результата или даже комбинации результатов, вычисляемых тести- руемой программой, может, быть указана область допус- тимых значений, либо исходя из смыслового, «физиче- ского» содержания результата, либо из его математиче- ских свойств. Например, если результат — вес предмета, то он не может быть отрицательным числом; если резуль- тат— количество каких-либо предметов, оно выражает- ся как целое положительное число, и т. д. Недостаток метода в том, что проверка получается неполная и обна- руживает далеко не все ошибочные результаты. Эффективный способ проверки — проверка по време- ни выполнения программы. На основании структуры про- граммы, условий переключения и времени выполнения операции на данной ЭВМ можно подсчитать время вы- полнения программы для каждого набора исходных дан- ных. Отклонение фактического времени выполнения про- граммы от расчетного говорит о наличии ошибок в программе. Недостаток метода — сложность расчетов по подсчету времени выполнения. Если по программе выполняется гладкая функция, хорошие результаты при обнаружении некоторых ошибок может дать сравнение результата со значением, получен- ным методом интерполяции. Метод, однако, пригоден только для обнаружения случайных ошибок, поскольку систематические ошибки не приводят к нарушению глад- кости функции. В более общей форме данный метод сво- дится к оценкам Байеса. Пусть Вц — событие, заключа- ющееся в том, что сравнение результата yj с результа- том yi подтвердило правильность результата у\, W0/ — правильность результата у\; Нц — ошибочность результата у\. Тогда р(Н .д. P(Bl}\Hy)P(H0j) 1 0/1 PiBijlHoflPiHofi + PlBijlHtfiO-PiHo,))' (6.26) Если же сравнение с результатом yt не подтвердило правильность результата yj, т. е. имело место противопо- ложное событие Бц, то Р(Ви 1 H«j)PtH0j) Р (Я0/1 Вф - р j н^ р + р( Яу) (,_р(//о/)). (6.27) 164
Формулы (6.26) и (6.27) могут быть использованы как рекурсивные для постепенного уточнения оценки P(H0j) по различным результатам t/i. . Последним этапом функционального тестирования является оценка безошибочности программы, производи- мая на основе результатов тестирования как статистиче- ского эксперимента таким же методом, как оценка безот- казности аппаратуры (см. § 1.2). Отказы программ проявляются как случайные, одна- ко носят детерминированный характер для заданного набора исходных данных (положение, аналогичное с лю- быми испытаниями по контролю качества объектов). При выборочном контроле качества некоторый объект выбирается случайно, но после того, как он был выбран, его качество уже детерминировано. Поэтому при стоха- стическом тестировании программ применимы математи- ческие методы выборочного контроля качества, если допустить, что проявление ошибки при одном тесте не зависит от проявления ошибки при другом тесте. Поскольку обнаруженные ошибки в программе сле- дует исправлять, оценку надежности программы при сто- хастическом функциональном тестировании целесообраз- но производить на основании заключительной серии стохастических тестов, когда отказы программы отсут- ствуют. Тогда для оценки вероятности безотказной рабо- ты программы можеъ быть использована формула />н = 0-Ун)1/Л. (6.28) где рн — нижняя доверительная граница вероятности безотказной работы программы при однократном про- хождении; ун— доверительная вероятность; п — количе- ство прохождений программы при тестировании. Пример оценки вероятности безотказной работы программы. Пусть над программой проведена серия из я=150 тестов (прохож« дений со случайными исходными данными), причем исходы всех тес- тов положительные, т. е. количество отказов программы 6=0. Необ- ходимо определить нижнюю доверительную границу вероятности безотказной работы программы при одном прохождении, при дове- рительной вероятности ун=0,9. Тогда согласно (6.28) Рн= (l-0,9)1/150fe 0,985. Сделанное выше допущение относительно независи- мости результатов отдельных стохастических тестов программы не вполне обосновано, так как наличие ошиб- ки в программе обнаруживается, вероятно, большим количеством тестов, чем это можно ожидать, исходя из независимости их результатов. Поэтому представляет 165
интерес другой подход, где программа рассматривается как сообщение, состоящее из N символов. Пусть каждый стохастический тест проверяет в среднем г символов из N и пусть один из N элементов содержит ошибку. Тогда вероятность того, что при одном тесте ошибка не будет обнаружена, оценивается как Л—r/N. Вероят- ность того, что при п независимых тестах ошибка не бу- дет обнаружена, равна (1—r/N)n. Если ошибочных сим- волов в программе больше, чем один, то вероятность их обнаружения одним тестом будет еще больше, так что оценка является оценкой сверху. Пример оценки вероятности безошибочности программы. Пусть п=150, г/#=0,3. Тогда вероятность обнаружения ошибки в прог- рамме р»». 1 _ (1 _ r/N)K0 = 1 - 1,72-10-20. Настолько высокая оценка вероятности обнаружения ошибок получается благодаря тому, что в соответствии с данной моделью каждый символ программы проверя- ется в среднем многократно и вероятность того, что неко- торый символ ни в одном тесте не проверяется, весьма мала. ' Контрольные вопросы и задачи 1. Дайте определения надежности ПО; отказа ПО, корректности ПО; спецификации программы, графа управления программы. 2. Установите, какие дополнительные функции необходимо вво- дить для восстановления ошибочного результата в случае вычисле- ния независимых функций fi(x)t fe(x) аргумента х. 3. Оцените вероятность безотказной работы системы с голосо- ванием, состоящей из трех версий программ, если вероятности безот- казной работы отдельных программ равны р., ...,рз. 4. Оцените общее число ошибок в тексте программы, если про- грамма проверена тремя специалистами и если первый из них нашел в программе 3 ошибки, второй —5 ошибок, а третий — б ошибок, причем две ошибки из найденных были общими у всех специалистов. 5. Предложите решающий орган для выбора правильного резуль- тата, если задача решается по трем программам по методу Диверси- онного программирования, а максимальные погрешности результатов каждой из программ составляют соответственно ±61...±6з, причем
ГЛАВА 7 ОТКАЗОУСТОЙЧИВЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ § 7.1. НАЗНАЧЕНИЕ И СВОЙСТВА ОТКАЗОУСТОЙЧИВЫХ ВС Отказоустойчивость — свойство архитектуры ВС, позво- ляющее пользователю (в случае универсальной ВС) или функциональной программе (в случае управляющей ВС) продолжать работу и тогда, когда в аппаратных или про- граммных средствах системы возникают отказы [1,25,40]. По способу реализации отказоустойчивость подразделяется на активную и пассивную. Активная отказоустойчивость базируется на отдельно выделенных процессах обнаружения отказа, локализации отказа и реконфигурации системы. Отказы обнаружива- ются при помощи средств контроля (см. гл. 4), локали- зуются при помощи средств диагностирования (см. гл. 5) и устраняются автоматической реконфигурацией систе- мы, которая заключается в перестройке структуры вы- числительных средств системы таким образом, чтобы ее отказавшие части были устранены от участия в работе. Пассивная отказоустойчивость заключается в свой- стве системы не потерять свои функциональные свойства в случае отказа отдельных элементов системы. Иногда говорят, Что отказ маскируется системой. Примером пас- сивно отказоустойчивых систем являются системы с ма- жоритарным органом. На нижних уровнях иерархии аппаратуры пассивная отказоустойчивость реализуется также логическими схемами с переплетением (см. § 2.5). Пассивная отказоустойчивость связана с увеличением количества аппаратуры в несколько раз. Пассивная отка- зоустойчивость применяется в случае особенно ответст- венных ВС, в случаях, когда не допустимы даже кратко- временные перерывы в работе ВС, а также для обеспе- чения отказоустойчивости важнейших блоков или уст- ройств ВС Применение активной отказоустойчивости характери- зуется более экономным расходом аппаратных средств, чем применение пассивной отказоустойчивости. Однако оно связано с некоторыми потерями времени при восста- новлении работы системы после отказа, а также, возмож- но, потерями некоторой части данных. Активная отказо- 167
устойчивость реализуема только в многопроцессорных системах. В то же время применение пассивной отказо- устойчивости гарантирует практически безостановочную работу ВС и сохранение всей информации. Эти обстоя- тельства и определяют области применения активной и пассивной отказоустойчивости. Активная отказоустойчи- вость применяется в ответственных, но очень сложных и дорогостоящих многопроцессорных системах, где важна экономия применяемых аппаратных средств, но допуска- ются кратковременные перерывы в работе. Введение отказоустойчивости является одним из мето- дов повышения надежности ВС. Вопрос о построении и применении отказоустойчивых систем возникает тогда, когда другие пути повышения надежности (см. § 1.1) не могут обеспечить требуемого уровня надежности по тех- ническим причинам, или тогда, когда они оказываются экономически не оправданными. В какой-то мере отказоустойчивость системы отража- ется в стандартных показателях надежности (см. § 1.2). Однако эти показатели характеризуют не только отказо- устойчивость системы, но зависят также и от надежности элементов системы. Отдельно от надежности отказоустойчивость системы может быть охарактеризована коэффициентом разреже- ния первичного потока отказов /Ср, показывающим, какая доля из всех отказов элементов системы влечет за собой отказ системы. Коэффициент /Cp=W2A,9, где Хс — интен- сивность отказов системы, а 2А,Э — суммарная интенсив- ность отказов всех элементов системы. В то время как случайные отказы аппаратуры в нормальных условиях работы — редкие события, вероятность разрушения аппа- ратуры в тяжелых условиях, например в космосе, может быть значительной. Основные методы теории надежности допускают неза- висимость отдельных отказов. Такое допущение приводит к тому, что в случае однопроцессорных элементов систе- мы число отказавших элементов подчиняется биномиаль- ному распределению. Поскольку отказы — редкие собы- тия, их совпадение маловероятно. Однако в тяжелых условиях работы annapafypbi механизмы отказа являются часто зависимыми, обуслов- ленными одной и той же внешней причиной. Вероятност- ная теория надежности, позволяющая учитывать стати- стическую зависимость событий, получается значительно сложнее вероятностной теории для независимых собы- 168
тий. Поэтому наряду с известными вероятностными мето- дами теории надежности для отказоустойчивых систем представляет интерес детерминированный подход. В каче- стве меры отказоустойчивости при детерминированном подходе служит d-устойчивость — максимальное число d элементов или других структурных единиц системы/от- каз которых еще не влечет за собой отказ системы. Отказ ЭВМ может быть вызван различными причи- нами. Наряду с отказами, вызванными физическим раз- рушением элементов аппаратуры, в ЭВМ встречаются сбои, вызванные случайными помехами и обусловливаю- щие разрушение обрабатываемой информации лишь в течение одного или нескольких тактов работы. Отказы и сбой вызывают ошибки в работе элементов аппаратуры. Под ошибкой аппаратуры понимается несоответствие выхода логического элемента предусмотренному в дан- ных случаях значению. Кроме ошибок аппаратуры встречаются ошибки опе- ратора и ошибки программ, которые тоже могут исказить обрабатываемую информацию. Однако в отказоустойчи- вых системах существуют резервы, обеспечивающие вы- полнение задания даже при возникновении отдельных ч ошибок в работе системы. Множество ошибок или осо- бенно опасная их комбинация влечет за собой невыпол- нение задания. Такое событие может рассматриваться как отказ системы или авария. В активно отказоустойчивой системе, кроме того, мо- гут возникать ситуации, когда отказ системы наступит в результате, понижения производительности системы ниже допустимого уровня вследствие отказов отдельных подсистем (процессоров). Отказоустойчивость системы обеспечивается введени- ем избыточности, т. е. созданием определенных запасов или резервов в системе. В отказоустойчивых BG может быть использована избыточность параметрическая, временная, алгоритмиче- ская и структурная. Параметрическая избыточность выражается в облег- чении режимов работы элементов и узлов аппаратуры с целью повышения их надежности. Она может быть эф- фективно увеличена только в случае неправильно спроек- тированной или не по назначению использованной аппа- ратуры. Для правильно спроектированной современной аппаратуры эксплуатационные и другие параметры выб- раны оптимальными или близкими к оптимальным для 169
заданных условий работы. Поэтому речи о существенном увеличении надежности за счет параметрической избы- точности быть не может. Временная избыточность заключается в наличии до- полнительного времени для решения задачи, с тем чтобы в случае возникновения сбоев или других ошибок можно было исправлять их путем повторения вычислений. Уве- личение временной избыточности не позволяет увеличить надежность и отказоустойчивость системы выше опреде- ленного предела. Она только является предпосылкой для реализации тех ресурсов по повышению отказоустойчи- вости, которые имеются в данной ЭВМ (реконфигурация, повторение вычислений), поскольку для этого потребу- ется дополнительное время. Алгоритмическая избыточность заключается в приме- нении таких алгоритмов, которые обеспечивают удовле- творительные результаты в случае наличия или возник- новения ошибок в процессе вычислений. Как правило, алгоритмическая избыточность предполагает наличие временной избыточности и является способом ее реали- зации. Например, свойствами избыточных алгоритмов обладают итерационные алгоритмы, обеспечивающие сходимость при больших случайных отклонениях проме- жуточных результатов. Естественно, что при возникнове- нии ошибки вычислительный процесс занимает больше времени. Алгоритмическая избыточность, так же как и временная, мало поможет в случае отказов аппаратуры, но представляет безусловный интерес с точки зрения уве- личения устойчивости системы к сбоям. Структурная избыточность является наиболее эффек- тивным видом избыточности. Она выражается- в наличии е Рис. 7.1. Граф процесса восстановления 170
дополнительных элементов, узлов и устройств в структу- ре вычислительной машины, предназначенных для авто- матической замены отказавших элементов, узлов или устройств. Резервирование на более низком иерархическом уров- не (например, поэлементное резервирование) обеспечи- вает при прочих равных условиях и при неучете надеж- ности коммутационных элементов большую вероятность безотказной работы, чем резервирование на более высо- ком иерархическом уровне. Структура пассивно отказоустойчивых систем основа- на либо на мажоритарном принципе, либо на логике с переплетениями (см. § 2.5), либо на резервировании с контролем. Количество резервной и дополнительной аппа- ратуры в этих системах превышает количество основной аппаратуры. Исключение составляют ЗУ и каналы передачи дан- ных, которые могут быть построены активно отказоустой- чивыми с небольшим количеством дополнительной аппа- ратуры (20—30%), применяя кодирование с обнаруже- нием и исправлением ошибок (см. § 7.3). Структура активно отказоустойчивых систем может быть самая различная. Активная отказоустойчивость может быть применена в многопроцессорных системах с общей памятью, общей шиной, матричной, кольцевой, иерархической или другой структурой. Однако процессы восстановления в отказоустойчивых (и даже просто восстанавливаемых) системах имеют мно- го общего (39]. Рассмотрим граф на рис. 7.1. Ошибка 1 может обнаруживаться либо аппаратными 2, либо про- граммными 3 средствами контроля, либо не обнаружи- ваться средствами контроля 4. В последнем случае ре- зультатом является отказ системы 5. В зависимости от степени применения пассивной отказоустойчивости в ВС ошибка может быть замаскирована 6. В последнем слу- чае вычислительный процесс продолжается без задерж- ки 7. При обнаружении ошибки аппаратными средства- ми в большинстве систем проводится повторение выпол- няемой операции в заданное число раз. Если повторение было успешным, т. е. имел место сбой, последствия кото- рого при повторении операции исчезли, вычислительный процесс продолжается 8. Для повторения операции необ- ходимо, чтобы аппаратные средства сохранили операнды до окончания контроля над выполненной операцией. Если повторение операции было безуспешным 0, то это гово- 171
рит об устойчивой ошибке в аппаратуре и поэтому произ- водится автоматическая реконфигурация 10. Реконфигурация может заключаться либо в замене отказавшей подсистемы (устройства, процессора) за счет резервов, либо в ее простом отключении. В последнем случае имеет место постепенная деградация системы. После реконфигурации производится восстановление ин- формации 12. Для этого по ходу вычислительного процес- са предусмотрены контрольные точки, в которых состоя- ние системы и вычислительного процесса подвергаются контролю. В случае положительного результата контро- ля состояние данной программы и данного процессора (промежуточные результаты, содержание регистров и др.) записывается либо в оперативной памяти другого процессора, либо в общей оперативной памяти, либо на магнитных лентах или дисках. В ходе восстановления информации содержание этих дублирующих записей переписывается в тот процессор, который после реконфигурации берет на себя функции отказавшего. Затем, начиная с контрольной точки, вычис- лительный процесс возобновляется 13. Аналогичные процедуры проводятся в случае, когда ошибка обнаружена программными средствами. Однако при этом повторение операции не имеет смысла, посколь- ку программные средства обнаруживают отказ с запоз- данием, за которое были выполнены уже другие опера- ции, и поэтому первоначальные операнды вряд ли сохра- нились. Следовательно, после обнаружения ошибки программными средствами могут быть задействованы тес- ты 14. Если тесты подтверждают наличие устойчивого отказа 15, то следуют реконфигурация 10, возврат к контрольной точке //, восстановление данных 12 и повто- рение вычислений 13. Если устойчивого отказа нет 16. то повторяются перечисленные операции без реконфигу- рации. Восстановление может оказаться безуспешным также в случае наличия ошибки в программах, разруше- ния информации в контрольных точках, исчерпания ре- зервов или снижения производительности системы из-за отказов ниже допустимого уровня. Описанный выше процесс может варьироваться в кон- кретных системах, особенно что касается способов обна- ружения отказов. Иногда, например (см. § 7.2), процес- соры системы подверждают свою работоспособность спе- циальными сигналами («Я жив»). По этим сигналам во всех действующих процессорах системы формируются 172
таблицы, показывающие состояние всех других процес- соров. На основании этих таблиц обмен с отказавшими процессорами прекращается. § 7.2. ПРИМЕРЫ РЕАЛИЗАЦИИ ОТКАЗОУСТОЙЧИВЫ ВС ш ш В настоящее время существуют различные отказоустой- чивые ВС. Типичным примером такой системы является система «Тандем» [38]. Все части этой системы резерви- рованы. Система не имеет выделенного «ведущего» про- цессора, функции управления выполняют все процессоры системы. Система допускает ремонт во время работы, т. е. возможность удаления отказавших ТЭЗов и возвра- щения исправных без прекращения выполнения программ пользователей. Это достигается наличием нескольких процессоров, дублированным доступом к устройствам ввода—вывода, резервированной системой электропита- ния и операционной системой, основанной на сообщениях. На рис. 7.2 изображена структура системы «Тандем», состоящей из трех процессоров 1 и четырех контроллеров ввода—вывода 2. Система может состоять в зависимости от модификации от 2 до 16 процессоров, каждый из ко- торых имеет память и каналы вво- да—вывода. Эти процессоры типа мини-ЭВМ сообщаются через 16-раз- рядную параллельную дублирован- ную систему шин Ш. Все контролле- ры ввода—вывода имеют по два порта 3, 4 и доступ по двум кана- лам, от двух разных процессоров. Запоминающие устройства на дисках также имеют по два порта; каждое устройство доступно от двух контроллеров. Данные с диска оста- ются доступными даже тогда, когда и процессор, и контроллер отказы- вают. При отказе привода диска запи- си могут быть восстановлены, если они были до его. остановки записа- ны на другом диске. Если все запи- си на дисках дублированы, то систе- ма имеет копии всех данных. Когда диск заменяется, записи на нем можно восстанавливать при помощи спе- циального утилита, во время работы основной системы. Рис. 7.2. Структура системы «Тандем> 173
Электропитание всех процессоров и дисков — незави- симое. Каждый процессор системы содержит собственную копию операционной системы, обладающую локальной таблицей, отражающей состояние всех доступных уст- ройств системы. Отказы процессоров обнаруживаются через отсутствие сигналов («Я жив»), которые каждый процессор обязан периодически посылать через шины к другим процессорам. Контрольные точки. Они являются ключевым меха- низмом восстановления в системе «Тандем». Для каждо- го текущего вычислительного процесса в системе имеет- ся идентичный полуактивный дублирующий процесс в другом процессоре. Дублирующий процесс должен заме- нить основной процесс в случае отказа соответствующего процессора. Основной процесс посылает дублирующему процессу «контрольные сообщения», которые определяют состояние процесса в критических точках вычисления. Операционная система в каждом процессоре возбуж- дает соответствующий дублирующий процесс после обна- ружения того, что соответствующий основной процесс отказал. Дублирующий процесс может тогда продолжать процесс, начиная от состояния, зафиксированного в пос- ледней контрольной точке. Метод контрольных точек в принципе не сложен, однако его эффективное применение требует высокого мастерства программиста и понимания всех особенностей системы. Система сообщений. Изоляция процессов пользова- теля от особенностей системы «Тандем» обеспечивается формированием сообщений. Например, программа поль- зователя, нуждающаяся в некоторых данных, записанных на диске, формирует некоторое «сообщение», адресован- ное программе логического управления диском. Просмат- ривая свои таблицы ресурсов, локальная копия операци- онной системы определяет фактическое местонахождение искомого процесса. Следовательно, в программе поль- зователя не должно быть указано, какие два процессора в данное время связаны с рассматриваемым диском или какой из двух выполняемых ими вычислительных процес- сов является в данный момент основным. Изоляция за- дач пользователя от деталей конфигурации существенна также для обеспечения ремонта во время работы сис- темы. Кроме того, такая изоляция обеспечивает постепен- 174
ный рост производительности системы с точки зрения данного вычислительного процесса в случае, когда наблюдается некоторая недогрузка со стороны других выполняемых процессов. Одними из наиболее мощных активно отказоустойчи- вых систем являются кольцевые системы ЭВМ, применя- емые как управляющие ЭВМ на крупных сталелитейных и прокатных комбинатах или на других предприятиях. В [34] описывается система, где отдельные станции, представля- ющие собой фактически вычислительные центры, соединены между собой кольцевыми линиями связи. Отказоустойчивость передач по кольцу обеспечивает- ся их дублированием по кольцу. Отказ кольцевой линии в какой-либо точке обнаруживается как прекращение передачи синхронизирующего сигнала с частотой 100 МГц. Местонахождение отказа фиксируется управля- ющей станцией по диагностическим протоколам пары станции, между которыми произошел отказ, после чего выдается команда о передаче информации между этими станциями по противоположному, неповрежденному кон- туру кольца. Такая процедура занимает в зависимости от количества станций не более 200—500 мс. В случае отка- за управляющей станции ее функции передаются любой другой станции. Для защиты от случайных сбоев переда- ваемые по линии связи блоки информации, состоящие из 32 байт, защищены двумя контрольными байтами, гене- рируемыми по принципу полиномиального кодирования по полиному xl6+xl2+x*+l (см. § 7.3). Отказоустойчивость станции обеспечивается обходом отказавшей станции при помощи оптического переключа- теля и дублированием станции. Обход станции позволяет преодолеть последствия от- ключения питания от данной станции и физического по- вреждения аппаратуры станции образованием нового ка- нала передачи данных и отключением отказавшей стан- ции Дублирование станции осуществляется так, что если ведущие устройства некоторой станции отказывают, то автоматически включаются резервные устройства. При этом адреса отключенных устройств сохраняются, так что работа с дублирующими устройствами производится без изменения адресов. Например, в одну действующую систему рассматриваемого типа входит около ста вычис- лительных машин, а линии связи имеют длину от 10 до 176
100 км. Интересно отметить, что эта система была созда- на взамен разобщенной системы, существовавшей раньше. Из пассивно отказоустойчивых систем распростране- ние получили дублированные и троированные ВС. Ба- зой рассматриваемых [37] систем является управляю- щая вычислительная машина AS220, которая выпуска- ется в виде дублированной модификации AS220H и в виде троированной модификации AS220HF, где мажори- тарными органами (^2) снабжены отдельно арифмети- ческо-логические устройства (АЛУ), устройства памяти (ЗУ) и ввода (Вв) и вывода (Выв). Приближенная структура системы AS220HF изображена на рис. 7.3. Асинхронные системы не позволяют быстро обнару- жить отказы и ошибки, а также восстановить вычисли- тельный процесс. Поэтому в системе AS220H использует- ся синхронный принцип работы, обеспечивая обнаруже- ние отказов за несколько миллисекунд, а также принцип разделения функций обнаружения и локализации отка- зов. BBS АЛИ, АЛУг АЛУ3 г т- Ц 1 L н— " rrt п tli J ±11 J _ jit ттг - | тп Ц -П S ш 1 ЗУ, ЗУг ЗУ3 Рис. 7.3. Структура троированной ВС 176
Пассивно отказоустойчивая самопроверяющая систе- ма «Стратус» (1980) [38] использует дублирование с контролем сравнением, причем все основные функции вы- полняются четырежды. Во-первых, каждая подсистема (ТЭЗ) дублирована. Во-вторых, каждая подсистема вклю- чает пару идентичных схем с идентичными входными сигналами в целях контроля. Если только выходы этих схем будут отличаться, сравнивающие схемы вырабаты- вают сигнал об ошибке. При нормальной работе дубли- рующие системы работают строго синхронно. Если толь- ко в одной из них .возникает ошибка, то эта система отключается, а другая — продолжает работать. Современный уровень развития отказоустойчивых вы- числительных систем может быть охарактеризован также данными о зарубежных специализированных ЭВМ [41] для космических кораблей (табл. 7.1). Приведенные в таблице значения вероятности безотказной работы опре- делены с учетом резервирования. В случае дублирования эти данные соответствуют интенсивности отказов поряд- ка (0,5—3) -Ю"5 1/ч для одной вычислительной машины, Таблица 7.1 Пара- метры Выпускающая фирма и тип ЭВМ CDC 469 DELCO М-362 GE DEC PDP-11 LITTON 4516 Е RCA SCP-234 Rockwell DF-224 200 650/840 100 300 70 400 16(42) 16/32 16 16/32 16(31— 24(153 (120) 52 для для ко- команд) манд) 0,925 0,99 0,99 0,98 0,899 0,92 за один за один за 2 года за 2 года за 2 года ва 3 года -год год 0,95 за 3 года Быстро- действие, тыс. оп/с Длина слова, би1 Вероят- ность безот- казной работы что достижимо при использовании компонентов наибо- лее высокого качества и надежности. В типичном случае дублированы устройства ввода—вывода, центральный процессор и устройства управления памятью. Оператив- ные запоминающие устройства объемом в десятки К слов секционированы; количество секций размером в 16 К слов выбирается по необходимости. Переключающие уст- 177
ройст;ва для включения резервов построены с использо- ванием логических схем с переплетениями (см. § 2.5). В системах применяется аппаратный оперативный конт- роль вместе с программным тестовым контролем и диаг- ностикой, которые дополняют друг друга и вырабатыва- ют сигналы для автоматического включения резерва. В ВС, предназначенных для непилотируемых косми- ческих кораблей, наряду с автоматическим контролем и включением резерва предусматриваются наземный те- леметрический контроль и реконфигурация системы че- рез каналы телеуправления в случае обнаружения отка- зов. В результате появления небольших и недорогих мик- ропроцессоров большое внимание привлекли однородные ВС с матричной организацией как для решения диффе- ренциальных уравнений в частных производных, так и для решения других задач, например задач распознава- ния образов, обработки изображений, осуществления быстрого преобразования Фурье и др. Наиболее ярким представителем таких ВС является специализированная быстродействующая ВС для обработки изображений, принимаемых со спутников Земли и состоящих из матри- цы 128X128=16 К процессоров. В перспективе такие ВС могут содержать до М микропроцессоров (М=10242= = 1 058 576) [36]. При таком количестве процессоров ак- туальной становится проблема обеспечения надежности подобной системы как при наземном, так и при возмож- ном в перспективе их базировании на борту летательных аппаратов, космических кораблей, роботов. Даже при ин- тенсивности отказов одного процессора А,= 10"6 1/ч ин- тенсивность отказов системы из М процессоров получа- ется около одного отказа в час, что говорит о необходи- мости автоматической реконфигурации системы в случае отказа процессора. То же самое относится и к случаю размещения нескольких процессоров на одном кристалле (чипе), когда механический способ замены отдельного отказавшего процессора в принципе не реализуем. Ана- лиз показывает, что организация автоматической рекон- фигурации однородной ВС в случае отказа процессора может быть осуществлена различными способами, разли- чаемыми по сложности коммутации и потерям времени. В некоторых случаях, например при решении дифферен- циальных уравнений в частных производных, возможны упрощенные способы реконфигурации, связанные с неко- торым снижением точности решения задач. 178
§ 7.3. ПРИМЕНЕНИЕ КОДОВ С ОБНАРУЖЕНИЕМ И ИСПРАВЛЕНИЕМ ОШИБОК В настоящее время не существует общих методов синте- за отказоустойчивых систем. Такие системы создаются на основании инженерной интуиции, а для объективного сравнения конкурирующих вариантов между собой ис- пользуются достаточно развитые методы расчета и оцен- ки надежности, производительности, стоимости и других характеристик этих вариантов. Исключение составляют коды с обнаружением и исправлением ошибок [23], зани- мающие определенное место в отказоустойчивых систе- мах и применяющиеся для придания устойчивости к от- казам и сбоям устройствам хранения и передачи инфор- мации, т. е. устройствам, где информация не преобразу- ется. Попытки использовать коды с обнаружением и исправлением ошибок для придания свойства отказоус- тойчивости преобразователям информации пока не увен- чались успехом. Тем не менее вопрос о кодах с обнаруже- нием и исправлением ошибок представляет боль- шой интерес, так как эти коды допускают применение теоретических методов синте- за, позволяющих получить наи- пример, если существующие методы резервирования требу- Рис 74 0бщая схема ют, по крайней мере в одно- применения кодов с об- процессорных системах (см. нарушением и исправле- § 7.1), удваивания количества нием ошибок аппаратуры для достижения ^-устойчивости, равной 1, то при помощи кодов с обна- ружением и исправлением ошибок аналогичный эффект может быть достигнут увеличением количества оборудо- вания на 10—30%. Общая схема применения кодов с обнаружением и ис- правлением ошибок имеет следующий вид (рис. 7.4). Исходная кодовая комбинация и расширяется добавле- нием дополнительных корректирующих разрядов в ко- дирующем устройстве К. Полученная кодовая комбина- ция х передается через канал связи С или записывает- ся в памяти П. При этом могут возникать ошибки либо из-за технической неисправности С или П, либо из-за сбоев. В результате передается или считывается кодо- вая комбинация х*, которая после декодирования уст- более эффективные и эконом- ные технические решения. На- 179
ройством D при условии достаточно малого количества ошибок приобретает первоначальный неискаженный вид и. Наиболее распространенными из кодов с обнаружени- ем и исправлением ошибок являются линейные блоковые коды — коды, образуемые при помощи линейных алгеб- раических операций над кодами фиксированной длины — блоков. Для оценки корректирующей способности d кода применяется неравенство Хэмминга 2 Сп < 2Л"~*, /-о откуда k< п — Iog22 с* где п ~ числ0 разрядов кода /То я. х= {х\9 х2, хп) с обнаружением и исправлением оши- бок; k — число информационных разрядов (разрядность кода и= (ии U2,...,Uk)>d—количество исправляемых оши- бок. Ниже приведены некоторые результаты расчета неравенству Хэмминга: по п. d. .7 .1 ,<4 63 1 <57 63 3 ^47 Рис 7.5. Определение ко- дового расстояния при исправлении ошибок Рис. 7.6. Определение ко- дового расстояния при обнаружении ошибок Следовательно, относительное число информационных разрядов, используемых для передачи полезной инфор- мации, растет с увеличением длины кода. Однако при этом растет и сложность кодирующего и декодирующе- го устройств. При увеличении числа обнаруживаемых ошибок количество необходимых контрольных разрядов также растет. Неравенство Хэмминга позволяет оценить необходи- мое количество контрольных разрядов, но не говорит о том, каким образом следует построить коды. Некоторую ясность в этот вопрос вносит понятие кодового расстоя- ния. Расстоянием р(х!, х2) между двумя я-кодовыми 180
комбинациями х1 и х2 называется величина р(х*, х2)=2 We*?). /-1 Чтобы кодовые комбинации, окружаемые гиперсфе- рой с радиусом d (в такую гиперсферу вписываются все кодовые комбинации с ошибками кратности не более d), были взаимно различимы, достаточно, если расстоя- ние р между этими кодовыми комбинациями удовлетво- ряет неравенству 9>2d + \ (7.1) (рис. 7.5). Рассуждая аналогично, можно установить, что кодовые комбинации, позволяющие обнаружить d\ оши- бок, должны быть разнесены друг от друга на расстоя- ние р><*1 + 1. . (7.2) Действительно, для обнаружения ошибки достаточно, чтобы ошибочная кодовая комбинация совпадала с дру- гой, правильной кодовой комбинацией. Это гарантирует- ся единичным (минимальным) расстоянием, поэтому в (7.2) к d\ прибавляется единица (рис. 7.6). Следователь- но, проблема помехоустойчивого кодирования сводится к проблеме максимально плотной упаковки гиперсфер за- данного радиуса в заданном двоичном гиперпространст- ве и установления их центров — отдельных «допустимых» кодов. Матричное представление кодов с обнаружением и исправлением ошибок. Указанная выше задача может быть разрешена при помощи линейной матричной опера- ции x=uGftXn, где Gftxn — некоторая матрица двоичных элементов, называемая порождающей матрицей. Матрич- ные операции в данном случае производятся по обычным правилам, только взамен сложения по правилам элемен- тарной алгебры применяется операция сложения по мо- дулю 2. Тогда все элементы матриц и векторов остаются в множестве {0, 1}. Для декодирования вводится матри- ца Н(П-*)хл, называемая контрольной матрицей. Произ- ведение S=H(!i-ft)xn=s называется синдромом. Синдром позволяет получить представление о наличии и характере ошибок в коде х. Допустим, что G = [E*I А**(п-*)Ь (7.3) 181
где Е* = ■1 О О 1 о о о 1 — единичная матрица, и требуем, чтобы хНт=[0], тогда H(uG)T=[0] или HGTuT=[0], или HGT=[0], или GHT=[0]. Произведение GHT=[0], если н = [Ал*(Л-*>1 ЕЛ-*Ь (7.4) Действительно [Е* | А4хМ] [А(л_Л)хЛ | ЕД_Л]Т^= А, : [Е* I А*х(я-*)1 Ед-л J ^)®AAX(/i^) = t°]- Если корректирующая матрица составлена по (7.4), то в случае, когда код х* содержит ошибки, что обозна- чается звездочкой, х*Нт=т*=[0], иначе хНт=[0]. Далее не- обходимо расшифровать синдром х*Нт ошибочного кода, т. е. локализовать и затем исправить возникшую ошибку. Коды Хэмминга. Расшифровка синдрома наиболее проста, когда порождающая матрица строится по спосо- бу Хэмминга. Исходным при этом является некоторая вспомогательная матрица Н0, состоящая из возрастаю- щих двоичных чисел (начиная от единицы) и читаемых сверху вниз. На основании матрицы Но строится матри- ца Н перестановкой столбцов матрицы Н0 так, чтобы справа образовалась единичная подматрица. Затем, пе- реставляя единичную подматрицу Е и подматрицу А между собой и транспонируя в соответствии с (7.3) и (7.4), образуется порождающая матрица G. Замечатель- ным свойством синдрома кодов Хэмминга является то, что синдром, читаемый как двоичное число, указывает номер разряда, где произошла ошибка. Однако при пе- реходе от матрицы Н0 к матрице Н последовательность столбцов изменяется. Исправляемый разряда определя- ется по столбцу матрицы Н, совпадающему со синдро- мом. Пример кодирования и декодирования кода Хэмминга. Пусть [0 0 0 1 1 1 П 0 110 0 11, тогда 1 0 1 0 1 0 lj 182
[О 1 1 1 1 0 01 1 0 1 1 0 1 0 и 1 1 0 1 0 0 lj 'I 0 0 0 0 1 г 0 10 0 10 1 0 0 10 1 10 0 0 0 1 1 1 1 Если имеется, например, кодовая комбинация u = 1110, то x=uG= = 1110000. Пусть ошибка возникает в пятом элементе кодовой комбинации х, т. е. х*= 1110100. Тогда синдром s=x*HT=100, что указывает на то, что отказал пятый элемент кодовой комбинации х. Итеративные коды. Существуют и другие системы со- ставления линейных кодов с обнаружением и исправле- нием ошибок, отличающихся методами кодирования и де- кодирования и количеством обнаруживаемых и исправ- ляемых ошибок. В частности, с точки зрения применения в ЗУ интерес представляют итеративные коды, основан- ные на размещении защищаемого кода в двумерной, трехмерной или в общем случае в m-мерной таблице, элементы которой по всем координатам защищены свои- ми контрольными разрядами. На рис 7.7 изображена такая трехмерная таблица, состоящая соответственно из k\,k2 и k$ информационных разрядов и (п\—k\), (п2—k2), (яз—&з) контрольных раз- рядов по каждому из трех координат. Общее число разря- да л = П л., /-1 дов п в m-мерной таблице, очевидно, равно количество информационных разрядов m расстояние между кодами Р= П 9t> где ние между кодами по t-й коорди- нате таблицы. Если, например, по трем координатам трехмерной таблицы осуществляется простой контроль по четности, а по всем координатам таблицы имеется во- семь информационных и один контрольный разряд, то я=93= =729, £=83=512, р=23=8. Следовательно, по (7.1) такой код позволяет исправлять до d= =3 ошибок, а обнаруживать до семи ошибок согласно (7.2). Об- наружение ошибок Осуществляет- ся k = П kt, а /-1 pi — расстоя- Рис. 7.7. Трехмерная таблица итерационно- го кода 183
ся при помощи стандартных средств контроля по четно- сти, исправление — по совпадению сигналов от контроля по четности по различным координатам. В табл. 7.2—7.4 приведены примеры, показывающие возможность обнаружения и исправления ошибок по четности в двумерной таблице. В таблицах ошибки обо- значены звездочками, а нарушение четности обозначено восклицательным знаком. Как следует из табл. 7.2, в слу- чае четырех ошибок они могут быть не обнаружены, в случае трех ошибок (табл. 7.3) наличие ошибок обнару- живается, но их нельзя локализовать, так как данный синдром (совокупность признаков) возникает так же и в случае единичной ошибки №). В случае двух ошибок (табл. 7.4) их наличие обнаруживается, но их также нельзя локализовать, так как пара ошибок, обозначен- ных >|<, и пара ошибок, обозначенных (>|<), имеют одина- ковые синдромы. В случае одной ошибки его существова- ние и местонахождение определяются однозначно. Эти результаты находятся в полном соответствии с неравен- ствами (7.1) и (7.2). Таблица 7J2 Таблица 7.3 * ♦ •о 1 ! Таблица 7.4 (*) ! • * Г) ! ! ! Циклические коды. При передаче данных, осущест- вляемых последовательно, большое значение имеют цик- 184
лические коды [23] —коды, для которых циклическая пе- рестановка кодовых символов неискаженного кодового слова порождает также неискаженные кодовые слова. Например, если задано некоторое кодовое слово х= = (аго, хп), то при циклической перестановке образуются кодовые слова xW=(xn, *0,...,*я-1), х<2>=(*„-ь xnf x09..., Хл-г) и т. д. Циклические коды удобно представлять в виде полиномов, тогда говорят о циклических полиноми- альных кодах. Полиномиальное представление кода за- ключается в том, что код представляется в виде коэффи- циентов полинома, причем степень каждого слагаемого соответствует позиции данного кодового элемента. Например, двоичное кодовое слово 11010 может быть представлено в виде полинома 1-д^-И-х3+0'*2+Ь*1+ +0-х°=х*+х3+х. Полиномиальные циклические коды по- зволяют обнаруживать и исправлять ошибки. Кодирова- ние при циклических кодах осуществляется делением по- линома, изображающего исходное кодовое слово, на под- ходящим образом подобранный полином, называемый порождающим полиномом. Остаток, образовавшийся при делении, приписывается к исходному кодовому слову в качестве набора контрольных символов. Обозначая через и — исходное кодовое слово в поли- номиальной форме, g—порождающий полином, q — част- ное и г —остаток, получаем соотношение ux^nm"k)fg— =*q+rfg> откуда uxin~k)=qg+r или, учитывая, что сложение производится по модулю 2 и поэтому вычи- тание равноценно сложению fz=qg=uxtn~k)+r. При этом исходное кодовое слово умножается на коэффициент xin~k\ где п — общая длина кодового слова, а к — количество информационных разрядов. Эта операция означает, что информационная часть кодового слова сдвигается влево на п—к разрядов, а на освобо- дившееся справа свободное место записывается остаток г. Поскольку операция сложения остатка г по модулю 2 равноценна вычитанию этого остатка, получающееся ко- довое слово /, подлежащее передаче, делится на порож- дающий многочлен g без остатка. Если же при передаче кодовое слово / исказится, т. е. образуется кодовое слово (или соответственно многочлен) /*, то в результате деле- ния на приемном конце канала связи /• на g образуется остаток, который служит синдромом, позволяющим об- наруживать и исправлять ошибку. Пример кодирования и декодирования в случае циклического кода. Пусть порождающий многочлен g имеет вид g=x*+x+lf 8-595 185
а общая длина кодовых слов с коррекцией /1=9 при количестве ин- формационных разрядов &=4. Пусть передается кодовое слово 1101, что соответствует полиному и=л?+дс2+1. Произведение и*(п"-*>= = (х3-}-*2+1)*5==*8+*7+хб. При делении и*<п-*>/# получается, чтр частное <7=х4+х3, а остаток г=х3. Все вместе дает полином f=*8-f +х7+х*+х*, что соответствует передаваемому кодовому слову 110101000. Если это кодовое слово передается без искажений, то при его делении на g получается, что остаток г=0. При одиночной ошибке возможны девять различных векторов ошибок, приведенных ниже. В нижней части вывода приведены синдромы, полученные при делении принятого кодового слова на порождающий полином. Нап- ример, если передается кодовое слово 110101000 и искажается стар- ший разряд, Вектор ошибок . . 10000 01000 00100 00010 00001 00000 00000 00000 00000 0000 0000 0000 0000 0000 1000 0100 0010 0001 Полино- миальная запись ошибки . . х8 х7 х* х5 х* хъ х2 хх 1 Синдром (остаток) . 0101 1011 1100 ОНО ООП 1000 0100 0010 0001 Полино- миальная запись . . . *2+1 х*+ х*+х2 х2+х x+l х* х2 х 1 +*+1 то получается кодовое слово 010101000, которому соответствует полином х7+хъ+хъ. При делении этого полинома на порождающий полином ^7 + ^5 + дгЗ | д4 + дг+ 1 хВ + х* Х$ + Х2-\-х Х* + Х* + Х + 1 *2-Ы где остаток г=*2+1. Аналогично находятся также и другие остатки. Каждой одиночной ошибке соответствует определенное значение синдрома, которое может быть дешифровано и использовано для исправления ошибки. Вследствие того что кодовое слово делится на порож- дающий полином без остатка, вектор ошибок определяет^ ся однозначно синдромом (остатком). Векторы ошибок, соответствующие отдельным синдромам, могут быть уста- новлены заранее и использованы при декодировании. Ос- новным преимуществом полиномиальных циклических 186
кодов перед линейными блоковыми кодами, кодируемы- ми и декодируемыми при помощи матричных операций, является простота схемной реализации. Сложность, т. е. количество элементов в преобразователе, определяется при операциях типа деления полиномов как величина по- рядка я. Количество элементов для схемной реализации матричных операций составляет л2. Преимущество цик- лических кодов проявляется при последовательном пред- ставлении кодов. Поэтому циклические полиномиальные коды применяются для повышения помехоустойчивости каналов связи, НМЛ и НМД, в которых информация передается и представляется последовательными кодами. При помощи циклических полиномиальных кодов нельзя повысить отказоустойчивость устройств, поскольку отказ канала передачи или запоминания влечет за собой иска- жение всех элементов кода. Рис. 7.8. Схема цифрового фильтра для деле- ния полиномов Устройства для деления полиномов (цифровые фильт- ры) реализуются схемно достаточно просто. На рис. 7.8 в качестве примера изображена схема фильтра для деле- ния некоторого полинома на полином хА+х+1. Фильтр состоит из регистра сдвига Р с разрядами 1—4 и из двух сумматоров по модулю 2. В табл. 7.5 изображена работа фильтра. Таблица 7.5 Содержание регистра Такт Вход Pi Pi Ре Ра Выход 1 0 0 0 0 (0)1 (1)0 0 1 1 0 0 0 0 2 0 0 0 0 (0)1 (1)0 0 0 110 0 0 3 0 0 0 0 0 1 0 0 0 110 0 4 0 0 0 0 0 0 1 0 0 0 110 5 0 0 0 0 0 0 0 1 0 0 0 1 1 Примечание. В скобках приведены те состояния элементов регистра, которые возникли бы в случае отсутствия обратных связей. 8* 187
В качестве примера на вход подается кодовое слово 110100000, начиная со старшего разряда, что соответст- вует полиному х?+х7+х?. Строки таблицы соответствуют тактам работы схемы, столбцы — содержанию ячеек ре- гистра. По бокам таблицы изображены входящие и вы- ходящие элементы кодов, не записанные в регистре. При продвижении элементов кода слева направо про- исходит деление. В результате деления образуется кодо- вая комбинация 11000, соответствующая частному В регистре остается остаток х* в виде кода 1000. AN-коды. Для обеспечения статической отказоустой- чивости арифметических устройств могут быть примене- нены AN-коды — коды чисел, образуемые умножением исходного числа N на некоторый постоянный множитель Л, Число А выбирается из ряда простых чисел: 11,13, 19, 23, 29, 37, ... Эти числа представимы как суммы неболь- шого числа степеней двойки: 11=23+21+2°, 13 = 23 + 22+ +2°, 19=24+21+2° и т. д. Следовательно, умножение на А некоторого числа осуществляется путем немногих сдвигов и сложений. Легко показать, что сумма двух чисел, принадлежа- щих к Л#-кодам, принадлежит также Л#-коду, так как ANi+AN2^=A(Ni+N2)^ANz9 где Nu ^ — произволь- ные числа, a W3=!Wi+iW2. Произведение чисел, принадле- жащих к ЛДО-коду, принадлежит также ЛЛГ-коду, так как (ANX) (AN2)=A(ANiN2)=AN4. Таким образом, результаты названных арифметиче- ских операций являются кодовыми словами ЛЛГ-кода. Одиночные или кратные ошибки в зависимости от вы- бранного Л, возникающие при этих арифметических опе- рациях, приводят к появлению кодовых слов, не принад- лежащих к ЛЛГ-кодам. Декодирование Л#-кодов основы- вается на вычетах — вычислении остатков искаженного числа по модулю А. Если остаток Л#-кода по модулю Л равен нулю, то в коде по крайней мере нет одиночных ошибок. Величина остатка позволяет в известных преде- лах определить местонахождение ошибки. Ниже приведены веса разрядов двоичного числа и со- ответствующие остатки по модулю Л =13, образующиеся при появлении ложной единицы (+20 или ложного нуля (—2*). При длинных кодах остатки начнут повторяться, что говорит о необходимости выбрать большее значение Л. Л//-коды эффективны при малом количестве ошибок, а в арифметических устройствах большинство ошибок рас- 188
пространяется лавинообразно на соседние разряды из-за перекрестных логических связей, что приводит к распро- странению ошибки и малой эффективности /Ш-кодов. Кроме того, декодирование ЛЛ^-кодов сводится к выпол- нению достаточно сложных операций — значительно бо- лее сложных, чем защищаемые этими кодами элементар- ные арифметические операции. Вес t-ro разряда ..... О 1 2 4 8 16 32 64 Остаток при появлении ложной единицы . .... О 1 2 4 8 3 6 12 Остаток при появлении ложного нуля О 12 11 9 5 10 7 1 Поэтому возможность практического применения 4#-кодов в арифметических устройствах не реализована. Для достижения статической отказоустойчивости мо- жет быть применено также выполнение арифметических операций в остаточных классах [22]. При выполнении вычислений в остаточных классах система счисления — непозиционная. Заданное число z (для простоты пусть z — натуральное число) представляется в виде остатков ai, am, полученных при делении числа z на заранее фиксированные основания ри р2> •••» Рт- Набор остатков си,am определяет однозначно число г, если О^г^ЛГ, где М — наименьшее общее кратное оснований. В оста- точных классах возможны арифметические операции ти- па сложения и умножения, осуществляемые над соответ- ствующими остатками в отдельности. Пример представления чисел и выполнения арифметических опе- раций в остатках. Пусть Pi=4, р2=5, Ра-«6. Тогда М=60, 0<z< <60. Если 2=17), то ai=l, a2=2, аз=5 и запись г в остаточных классах {г}м={1, 2, 5}. Если {ш}«в{1, 0, 5}, т. е. ш=5, тогда {г+ю}м = {2, 2, 4}, т. е. z+a>=22. Избыточность при представлении чисел в остаточных классах вводится включением дополнительных основа- ний pi. Тогда имеется возможность результаты устано- вить по различным выборкам оснований и, сравнивая их, определить правильный, например по принципу боль- шинства. Преимущество применения кодирования в остаточных классах в том, что в отличие от позиционных кодов от- дельные остатки образуются независимо, и, следователь- но, ошибка в одном остатке не влияет на другие остатки даже в ходе ряда операций. Поэтому декодирование мо- жет быть осуществлено после нескольких последова- тельных операций и, следовательно, занимает небольшой удельный объем.
Недостаток кодирования в остатках — трудности при осуществлении логических операций и операции деления, а также коренное отличие системы от привычных пози- ционных систем счисления. Общий недостаток рассмотренных выше подходов в том, что они не применимы для произвольных преобра- зований. § 7.4. НАДЕЖНОСТЬ ОТКАЗОУСТОЙЧИВЫХ ВС Надежность пассивно отказоустойчивых систем может быть оце- нено по моделям, рассмотренным в гл. 2 и 3. Оценка надежности активно отказоустойчивых сис- тем отличается тем, что необходимо оценить время вос- становления, которое определяется свойствами системы. Пусть аппаратура отказоустойчивой ВС может на- ходиться в состояниях &=0, 1, 2,/г, где состояние &=0 соответствует отсутствию отказов, а состояния k= = 1, 2, п — состояниям, соответствующим отказам от- дельных подсистем. Безусловные вероятности pk(t) на- хождения системы в состоянии к в момент времени t могут быть определены по методам, изложенным в § 2.3, 2.4, если система не обслуживается, или по методам, из- ложенным в § 3.3, если система обслуживается, т. е. если время от времени отказавшие подсистемы заменяются. Для каждого &-го состояния системы может быть оп- ределена суммарная интенсивность отказов как **(0 = г = 2X*'W» гДе —интенсивность отказов i-й под- /-1 системы, работоспособной в k-u состоянии системы, г— количество подсистем. Тогда сумма выражает интенсивность отказов аппаратуры в неремон- тируемой отказоустойчивой системе. Интенсивность от- казов системы Лс(0 определяется умножением интенсив- ностей отказов hki(t) на условные вероятности дм того, что система, находящаяся в k-u состоянии, не может быть восстановлена автоматически в случае отказа 1-й подсистемы, т. е. *с(0= 2 Л W 2S х« W ««• <7-5> 190
Вероятность qki определяется по формуле <*ы-(Ьы + «мр- Wwp)0 -ЯЫх) + ЯМх0 - W» <7-6> где цых — вероятность того, что система не будет авто- матически восстановлена за допустимое время; Ямы— ве- роятность того, что отказ системы маскируется; янт— вероятность того, что отказ не обнаруживается, Ям?— вероятность того, что информация во всех контрольных точках разрушена. Все вероятности определяются для f-й подсистемы и для k-то состояния системы как условные вероятности того, что отказ (или сбой) произошел. Распределение вероятностей времени восстановления может быть определено на основании графа, показанно- го на рис. 7.1. Для последовательных дуг графа имеет место композиция распределений и здесь может быть применен метод моментов, согласно которому дисперсии и математические ожидания составляющих складыва- ются. Для параллельных ветвей графа функция распреде- ления имеет вид смеси (см. § 1.3). Математическое ожи- дание смеси /я = 2 *jmr (7.7) где я/ — вероятности составляющих смеси; т\ — матема- тические ожидания составляющих смеси. Дисперсия Ьмеси °2 =2rt/(°/+my)-m2' <7-8> где Of — среднеквадратичное отклонение r-го составляю- щего смеси. В случае двух составляющих формула упрощается: д2 = л lo J + ^2 + Л1Л2 (m i — m2)2. (7.9) Постепенным объединением последовательных и па- раллельных участков графа устанавливается функция распределения времени восстановления F(t). Вероятность того, что последствия отказа не будут ав- томатически устранены за допустимое с точки зрения пользователя время, тДоп выражается как 0т=1-7*(тдоп). (7.10) Поскольку функция распределения F(x) известна только с точностью до первых двух моментов m и а2, 191
уместно оценить вероятность qx по неравенству Чебы- шева: Ях<*У(т--с*оп)2- (7.11) По рассмотренным моделям определяется только на- дежность аппаратуры отказоустойчивых систем. Для оценки надежности программ могут быть использованы модели, приведенные в § 6.2. Поскольку наличие и про- явление ошибок в программах не зависит от отказов ап- паратуры, а отказы аппаратуры не зависят от отказов программы, вероятность безотказной работы системы с учетом надежности программ Рсп(0 определяется как произведение вероятностей безотказной работы аппара- туры вместе с операционной системой Рс(0 и программ пользователя Рп(0, т. е. Реп (О—(0 (О* Интенсивность отказов и параметры потока отказов в этом случае складываются, а продолжительность вос- становления определяется по закону смеси. Рис 7.9. Граф состояний отказоустойчи- вой ВС Пример расчета надежности активно отказоустойчивой ВС. Рас- сматривается активно отказоустойчивая система типа рис 7.2, состо- ящая из трех процессоров и четырех периферийных устройств. Пусть интенсивность отказов процессора Я=10-4 1/ч, периферийные устрой- ства и шины считаются для упрощения расчетов безотказными. Тогда в системе имеются три рабопоспособных состояния &=0, 1, 2, соот- ветствующих числу отказавших процессоров. На рис. 7.9 приведен граф состояний системы. По мере того как отказывают процессоры, система переходит из состояния О через состояние / и 2 в отказовое состояние 3. Из состояний 0 и / система может переходить непо- средственно в отказовое состояние в случае неудачного восстановле- ния с вероятностью q. Система описывается следующими операторными уравнениями (см. § 3.3): Vj<»)-1 3XP;(s); spt (s) = 3X(l- q)p*Q(s) - 2Xp*(5); spl (s) - 2X (! - q) p\ (s) - \p*2 (s); spl (8) - Skqpl (s) + 2kqp\ <s) + \p\ (s). 192
Отсюда операторное выражение вероятности безотказной рабо- ты системы р1 <*) - р1 ю .+р\ <*)+A w - 1 3X(l-g) 6X2(1-g)2 s-ЬЗХ"*" (s + 3X)(s + 2X), + (5 + ЗХ)($ + 2Х)($ + Х) ' откуда оригинал после несложных преобразований Рс (Q « (1 - 3» + 3^2) в"8 * - (3 - + 6ff 2) в-ш + + (3-6^ + 3g2)e-"w. (7.12) Для оценки коэффициента разрежения потока отказов q исхо- дим из графа рис. 7.1. Сначала рассматривается подграф, состоящий из ветвей дуг 2, 9, 13 и 3, 14, id. Для упрощения анализа дуги Я, и 16, 11, id, соответствующие сбоям, опускаются. Ниже приведены оценки математических ожиданий времени про- хождения отдельных дуг / графа. / 2 3 9 10 11 12 13 14 15 тЯс] . . . . 10-« Ю-8 Ю-6 Ю-8 10-* Ю-8 10-4 Ю-8 10~в Предполагается, что все временные интервалы распределены по по- казательному закону, следовательно, среднеквадратичные отклоне- ния времени aj=mj. Интервалы времени, соответствующие каждому этапу восстанов- ления системы, могут быть определены для каждой конкретной сис- темы исходя из ее быстродействия. Кроме того, заданы вероятности разветвления для вершин подграфа, имеющих две исходящие дуги. Для дуг 2 и 3 вероятности «2=0,9 и я3=0,1, ориентиром при опре- делении этих вероятностей является доля аппаратуры, контролируе- мая средствами аппаратного контроля. Математическое ожидание времени прохождения дуг 2, 9, 13 л*2лз = л*2 4- m$ + i»io + т\\ + т\2 + mis = = 10-* + 10-е + 10 -з + ю-4 + ю-з + ю-4 = 2,22- 10-зс, дисперсия °2,13 в °2 + в9 + °10+ °11 + *12 + в13 = » Ю-Ю + 10-Ю + Ю-в + Ю-8 + 10-* + 10-8 2,02.10-«с2. Для дуг 8, 14, 13 математическое ожидание «8,13 = 10~3 + Ю~3 + Ю-в + Ю-з + 10-4 + ю-з + Ю-4 = = 4,2.10-Зс, дисперсия •1,13 = Ю~"6 + 10-6 + 1°""12 + Ю-6 + ю-8 + Ю-6 + ю-* = = 4.02.10-6с2. 193
Математическое ожидание времени прохождения подграфа, сос- тоящего из дуг 2, 9, .... 13 и 3, 14, 13, определяется по (7.7) как л*2.з = Л2Л*2,1з + «30*3,13 = 0,9-2,22- 10~з + + 0,1. Ю-з.4,2 = 2,42.10-3Cf дисперсия по (7.9) l . 2 2 2 °2,3 == Л2°2,13 + rt3°3,13 + Л2*3 (0*2,13 — Л*3,1з)2 = 0,9.2,02.10-6 + 0,1.4,02.10-6 + + 0,09.(4,2 - 2,22)2. ю-6 = 2,57- 10~6с2. Считая, что допустимое время восстановления работы системы после отказа тДОп=15 мс, по (7.11) 1,57.10-6 (15-2,42)2.10-6 -°'°163' Предполагая далее, что ?н=*7р=0,01 и ?м=0,1.8, имеем оконча- тельно по (7.6) q = qkl = (0,01 + 0,01 - 0,0001) (1 - 0,0163) + 0,0163 (1 - 0,18). Подставляя полученное значение в (7.12), получим вероятность безотказной работы системы Ре = 0,9 е-3-10-4' - 2,7 е-210"4' + 2,8 е-'0"4'. При <=100 ч Ро(0=0,999. Если восстановление не производится (?=1), то Pc(t)—b « =0,97. Если имеет место полное восстановление в пределах реконфи- гурационных возможностей системы (<7=0), то ре (t) = е8Х/ - 3 е"2х/ + 3 е~и « 1 - 10-6. Рассмотренная модель позволяет оценить надежность системы с учетом процесса восстановления. Результаты числового примера по- казывают, что процесс восстановления оказывает значительное влия- ние на надежность системы. Встречаются ВС, основанные на серийных вычисли- тельных машинах, например ЭВМ единой системы. В этих машинах предусмотрена возможность их совмест- ной работы, причем связь между машинами может быть осуществлена либо через связь процессор — процессор, либо через адаптер канал — канал, либо через общую оперативную память. Связи необходимы в первую оче- редь для того, чтобы создавать многопроцессорные сис- темы ЭВМ с целью повышения производительности. В случае, когда многопроцессорные системы создаются с целью повышения надежности, основное значение приоб- 194
ретает то, что каждый процессор должен иметь доступ к периферийным устройствам. Выполнение этого требова- ния приводит к структурам типа, показанным на рис. 7.2. Перечисленные выше связи между процессорами име- ют значение для передачи информации из одного про- цессора в другой в процессе восстановления информа- ции после реконфигурации системы. Расчет надежности таких систем может быть выполнен по примеру, рассмот- ренному на с. 192, однако при определении времени вос- становления информации необходимо учитывать харак- тер связей между отдельными процессорами и соответ- ствующее программное обеспечение (см. рис. 7.1, дуги И и 12). Связь через общую оперативную память представ- ляет интерес только в том случае, когда приняты меры к повышению отказоустойчивости самой памяти. Это мо- жет быть достигнуто либо методами пассивной отказов устойчивости (например, применением кодов с обнару- жением и исправлением ошибок), либо дублированием модулей памяти. В последнем случае должен быть обес- печен доступ к каждому из дублирующих друг друга мо- дулей. Отказоустойчивая общая память обеспечивает на- иболее быстрое восстановление информации, поскольку не требуется дополнительного времени для ее перезапи- си. Связь между процессорами и связь через канал тре- буют определенной траты времени при восстановлении информации после отказа, поскольку они позволяют осу- ществить перезапись информации только последователь- но. Время перезаписи определяется количеством пере- писываемой информации. Многопроцессорные системы, а также сети ЭВМ мо- гут содержать значительное число процессоров. В таком случае немыслимо создавать системы связей (или ли- нии связей, в случае сетей ЭВМ) по принципу «каждый с каждым», т. е. добиваться, чтобы конфигурация сети или системы имела вид полного графа. Возникает проб- лема структурного синтеза сети. Надежность сетевых структур определяется в первую очередь количеством связей в каждом сечении сетевой структуры. Поэтому можно считать, что структуры типа звезды и дерева менее предпочтительны с точки зрения надежности, а интерес представляют более «замкнутые» сетевые структуры, где обрыв одной связи не приведет к распадению сети на изолированные части. К таким струк- 195
турам относятся кольцевые структуры, кольцевые струк- туры с диагоналями и матричные структуры, в том числе и я-мерные. Известными преимуществами обладают сетевые структуры, предложенные Д. К. Прадханом. Согласно Д. К. Прадхану, процессоры, входящие в сетевую структуру, нумеруются 0, 1, 2, п, а связи предусматриваются только между теми процессорами, но- мера которых i, j удовлетворяют одному из следующих равенств: / = 2/mod л или | = (2' + 1)mod п. На рис. 7.10 в качестве примера показана структура, отвечающая приведенным равенствам. В целях упроще- ния рисунка отдельные вершины графа — процессоры — расположены не по порядку. Структура отличается тем, что большинство процессоров имеет четыре связи, осталь- ные — не меньше двух. В то же время пути от процессора к процессору — короткие. Рис. 7.10. Сетевая структура типа Прадхана Надежность сетей рассматриваемого или другого ти- па может быть оценена методом гипотез (в случае не- больших сетей) или методом минимальных путей и мини- мальных сечений, а также методом статистического мо- делирования (см. § 2.4). § 7.5. ОПТИМАЛЬНОЕ РАСПРЕДЕЛЕНИЕ РЕСУРСОВ В ОТКАЗОУСТОЙЧИВЫХ ВС При проектировании отказоустойчивых систем следует стремиться не только к достижению необходимой их на- дежности, но и к достижению этой надежности при ми- нимальных средствах, т. е. к нахождению оптимального решения. 196
В отказоустойчивых ЭВМ и ВС существует ряд. пара- метров x~(Xiu х2,хп), от которых зависит надежность системы. Сюда, относится количество резервных элемен- тов, устройств или подсистем, параметры систем конт- роля и диагностики, временные характеристики (пери- од) контроля и восстановления, характеристики систе- мы программного обеспечения, величины, характеризую- щие архитектуру, конфигурацию и организацию работы системы и др. Часть из этих параметров являются цело- численными (количество резервных подсистем). Надежность системы от некоторых параметров зави- сит, монотонно. Например, увеличение количества резер- вов, как правило, приведет к увеличению надежности системы. Поэтому нахождение экстремума показателя надежности системы П (х) производится при ограниче- ниях, определяя min(max)II(x), (7.13) x6G где G — ограничения в виде множества допустимых зна- чений, налагаемые на параметры х. Ограничения имеют характер ограничений на массу, стоимость, габариты или другие характеристики систе- мы. Часто ограничения выражены в форме cp(x)eGb где ф(х) —некоторая функция или вектор-функция от х, вы- ражающая массу, габариты, стоимость или другие ха- рактеристики системы; Gi — налагаемые на эти харак- теристики ограничения. Если целью является обеспече- ние не максимальной, а заданной надежности системы, то может быть поставлена и решена обратная задача — нахождение экстремума веса, габаритов, стоимости или другой характеристики при ограничении на надежность. Обратная задача записывается в следующей форме: min (max)<p(x), (7.14) П(х)€НЧ где Н — ограничение, налагаемое на показатель надеж- ности П(х). Для решения экстремальных задач с ограничениями типа (7.13) или (7.14) могут быть использованы стан- дартные программы, реализующие численные методы на- хождения экстремума функции и входящие в систему про- граммного обеспечения современных вычислительных ма- шин. Тогда достаточно составлять выражения П (х) и <р(х) и выбирать ограничения G, Gi или Н. 197
Некоторые задачи могут быть решены аналитически, при помощи метода неопределенных множителей Лаг- ранжа. Ниже излагаются отдельные простейшие приемы решения задач оптимизации ВС по критерию надежно- сти. Оптимальное распределение резервов по методу не- определенных множителей Лагранжа. Задача оптималь- ного резервирования встречается в системах с резерви- рованием на уровне процессоров, устройств или других подсистем (см. § 7.2). Приближенно эта задача может быть решена аналитически методом неопределенных мно- жителей Лагранжа. Погрешность решения вызвана тем, что метод неопределенных множителей Лагранжа опе- рирует действительными числами, количество резерв- ных подсистем, однако, выражается как целое число. Округление результатов до целых чисел вызывает сдвиг экстремума в пространстве параметров, вследствие че- го возникает погрешность решения. Рассмотрим простей- шую систему с нагруженным резервом, подключенным по схеме поэлементного резервирования. Пусть каждая из п подсистем (процессоры, ОЗУ, пе- риферийные устройства и др.) имеют mt—1 резервов. Вероятность безотказной работы i-й подсистемы (/= = 1,/г) обозначается через pi. Тогда вероятность безотказ- ной работы системы Р выражается как Р= П(1-(1-/>)»')• <7Л5> Чтобы упростить (7.15), допустим, что р/=1—<7*-И, где qi — вероятность отказа f-й подсистемы. Тогда вероят- ность отказа системы Q Q(m)=*%q?i. (7.16) /-1 где m = (mi, /7*2 , mn). Масса, габариты или стоимость системы С выража- ется в виде простой линейной зависимости: п С = С(т) = 2 с .т., (7.17) где Ci — масса, габариты или стоимость 1-й подсистемы. При первой постановке задачи необходимо опреде- 198
лить minQ(m) при условии, что C(m)^C8W, где С3ад— заданное значение массы, габаритов или стоимости сис- темы. Искомыми являются значения т%% минимизирую- щие вероятность отказа Q. Поскольку зависимости Q(m) и С(т) —монотонные зависимости, условие типа неравенства может быть заменено условием типа равен- ства, а задача решена методом неопределенных множи- телей Лагранжа. Функция Лагранжа F (ш) имеет тогда следующий вид: F(m) = Q (m) + g (Сза. - С (ш)), (7.18) где | — неопределенный множитель Лагранжа. Совместное решение необходимых условий экстрему- ма (7.18) дР(т)/дт^0 (7.19) и условие типа равенства Сзад = С(т) (7.20) позволяют определить п оптимальных значений mi и со- ответствующее им значение неопределенного множителя £. Подставляя Q(m) и С(т) из (7.16) и (7.17) в (7.18), a Fi(m) из (7.18) в (7.19), получим следующую систему уравнений: откуда ml^lnialllnqr (7.21) где m=Ci/ln qi. Для определения £ подставим mi из (7.21) в (7.20), тогда -O + lnC-a,)). (7.22) В последнем выражении изменены знаки сомножи- телей | и а/, т. е. вместо £а* написано (—|) (—ш), чтобы можно было логарифмировать, так как а^О. Следова- тельно, решение существует только в случае, когда £ — отрицательная величина. Выражая ln(—£) из (7.22) и подставляя его в ,(7.21), получим окончательно выражения для оптимальных зна- чений та 199
Inq, (7J2Z) При второй постановке задачи решение осуществля- ется согласно (7.14) на основании следующей функции Лагранжа: А (*) - С (т) -Ь1, <<?9ад - Q (ш)), где т) — неопределенный множитель Лагранжа; фаад — заданное значение вероятности отказа. Решая совместно уравнения dFw(m)/dmi=Q при 2, л и Q3aA=Q(m), получим выражение для оптималь- ных кратностей резервирования Выражения (7.23) и (7.24) являются приближенными из-за необходимости округления результата. Ошибка по- лучается особенно большая при малых mi. Кроме того, аналитический метод позволяет получить решение в яв- ном виде только при простейших моделях надежности. Оптимальное распределение резервов градиентным методом. Численные методы определения оптимального резерва позволяют найти сколь угодно точное решение, применимы в случае весьма сложных моделей надежно- сти и особенно эффективны при малом числе резервных подсистем, поскольку тогда объем необходимых вычис- лений будет небольшим. Простейшим численным методом является метод пе- ребора, когда сравнивают между собой все возможные варианты структуры и выбирают из них тот, который луч- ше всего отвечает установленным требованиям. Однако число вариантов получается практически весьма боль- шое, поэтому метод перебора может быть использован только в простейших случаях. Количество конкурирую- щих вариантов JVB для структуры типа рис. 3.4 опреде- я ляется произведением #в=П^1я/м, где т/м — макси- мально возможное число параллельных подсистем i-ro типа. Например, если п= 10 и т*м= 10 при с= 1, я, тогда 200
ЛГВ= Ю10, что практически исключает возможность пере- бора. Чтобы обсудить возможности сокращения числа ва- риантов при переборе, полезно ввести понятие домини- рующая последовательность. Рассмотрим график вари- антов технических решений в координатах стоимость С — вероятность отказа Q (рис. 7.11). Каждый вариант на этом графике представляется точкой. Естественно, что из всех вариантов заданной (или меньшей) стоимости С интерес представляют только варианты, обладающие мини- мальной вероятностью отказа Q. Из всех вариантов при за- данной (или меньшей) вероят- ности отказа Q интересны только варианты, отличающие- ся минимальной стоимостью С. Отсюда следует, что из всего множества вариантов интерес представляют только те, кото- рые находятся снизу и слева на рис. 7.11. Подмножество этих вариантов, перспективных с точки зрения поиска оптималь- ного варианта, называется до- минирующей последовательно- стью. На рис. 7.11 доминирующая последовательность обведена. Мощность (количество элементов) домини- рующей последовательности обычно намного меньше мощности множества всех вариантов. Поэтому не со- ставляет труда выбирать оптимальное решение из вари- антов, входящих в доминирующую последовательность. Численные методы позволяют построить доминирую- щую последовательность поэлементно, до достижения за- данной надежности при минимальной стоимости или до достижения минимальной стоимости при заданной надеж- ности. Численные методы могут быть основаны на числен- ном варианте метода неопределенных множителей Лаг- ранжа, методах динамического программирования, вет- вей и границ и других методах. Простым и достаточно эффективным методом явля- ется градиентный метод, который заключается в поша- говом поиске максимума критерия типа Alg<Q/(AC), т. е. отношения приращения логарифма вероятности отказа Рис 7.11. Графическая ил- люстрация доминирующей последовательности 201
системы к приращению стоимости. Градиентный метод позволяет определить часть элементов доминирующей по- следовательности, т. е. некоторые элементы могут ока- заться пропущенными. Поэтому получаемые этим ме- тодом результаты следует рассматривать как прибли- женные, или проводить дополнительный поиск. Пример оптимального распределения резервов. Пусть имеется система, состоящая из четырех подсистем, т. е. п=4. Подсистемы характеризуются стоимостями d и вероятностями отказа за задан- ное время Л 1 2 3 4 с{ 1,2 2,3 3,4 4,5 щ. . ... 0,2 0,3 0,25 0,15 Требуется построить систему, обладающую вероятностью безот- казной работы Р^0,99 при минимальной стоимости С Первоначальное состояние системы, когда нет резервов, описы- вается вектором, состояний m=(m\m2m^) = (1111), Первый шаг решения по градиентному методу заключается в сравнении вариантов (2111), (1211), (1121) и (1112) по критерию AlgQ/AC и выборе варианта, обеспечивающего максимум критерия. Ниже приведены эти варианты. При т=(2111) A IgQ /-2 /-1 i ДС "~ ex ~" _,8(i-,;)-ig(,-?,)_o№ при m= (1211) am=0,0495; при m=(1121) am=0,0285; при m=(1112) am=0,0135. В результате первого шага выбирается вариант' т=(2111), как обеспечивающий наибольшее значение критерия A lg Q/AC. Одна- ко вероятность безотказной работы системы при т=(2111) Р=(1— —0,04) -(1—0,3) «(1—0,25) • (1—0,15) =0,428, что значительно ниже заданного. Поэтому далее рассматриваются варианты, соответствую- щие векторам (3111), (2211), (2121) и (2112), выбирается вектор по максимуму критерия AlgQ/AC и т. д. до достижения заданной на- дежности системы. Заданная надежность достигается впервые при ш=(4553), тогда Р=0,992 и стоимость системы С=46,8. Однако данный результат не является оптимальным, так как рассмотренная простая процедура не обязательно позволяет найти все элементы доминирующей последовательности. Для получения точного решения может быть использован какой- либо более строгий алгоритм [2] или произведен дополнительный поиск около полученного приближенного решения, т. е. следует срав- нивать варианты (5453), (5543), (5454), (4643) и т. д. Дополнительный анализ показывает, что оптимальным является решение при т=(5543), когда С=45,4 и Р=0,99. 202
Для сравнения находим приближенное решение этой же задачи по (7.24). Тогда Ц_ / 1,2-0,01/1п0,2 \ Щ~ 1п0,2 П Vl,2/ln0,24-2,3/In0,3+3,4/ln0,25+4,5/ln0,15j"" = 4,53; /1*2 = 4,93; /я3 = 4,10; /я4 = 3,00. После округления получим оценку оптимального вектора состо- яний т= (5543). Определение оптимальной кратности повторения опе- рации после обнаружения ошибки. Далее рассмотрим во- прос оптимизации временной избыточности, примени- тельно к методу повторения вычислений после сбоя. Для придания устойчивости к сбоям в ЭВМ и ВС при- меняется повторение вычислений после обнаружения ошибки в случае, если не известно, вызвана ли ошибка сбоем или.отказом. Если после автоматического Af-крат- ного повторения вычислений ошибка не самоустраняется, то принимается решение о том, что имел место отказ, ко- торый не может быть устранен путем повторения вычис- лений, и вычислительный процесс прекращается для проведения ремонта. Пусть известна интенсивность сбоев Яс и интенсив- ность отказов аппаратуры Хо при выполнении операто- ра А. Пусть задана функция распределения F(t) време- ни т выполнения и проверки правильности оператора А и функция распределения G(t) времени v восстановления оператора Л. Необходимо определить значение М. Мож- но показать (4], что среднее время Т правильного выпол- нения (с повторениями и с восстановлением) оператора есть некоторая функция от числа повторений М: Т = АМ/Вм. (7.25) где оо в свою очередь, a = m(t) = j tdF(t)— среднее время о «о однократного выполнения оператора А\ь = m(v) = ^tdG(t) — 203
среднее время восстановления оператора А; «7с — — J e-Xe/ (1 — е Xc')dF (t) — вероятность того, что за время т однократного выполнения А произойдет сбой, но не будет 00 отказа; «7о = J О — е""х°0 dF(t) — вероятность того, что за о время т произойдет отказ. Здесь применен интеграл Стильтеса: при дифферен- цируемом распределении F(t) выражение dF(t) равно- ценно выражению f(t)dt, где f(t)=dF(t)fdt. Поскольку (7.25) — функция одной произвольно изменяемой пере- менной, ее минимум может быть найден построением за- висимости Т(М). Однако доказано, что экстремум может быть также найден решением следующего уравнения от- носительно у: Яус~1(Яг + Я2У) = Яг> (7.26) ™* ~ * ■ - ЯсЯо , _ - «7о «70 где qx = b + a-—— ; q2 = a ——— ; Яз = а-—— . (1— ЯсУ* I— «7с (1—«7с)2 После нахождения у, удовлетворяющего (7.26), опти- мальное число повторений Мопт до восстановления нахо- дится из условия у—1^М0пт<#. Пример определения оптимальной кратности повторения опера- ции после обнаружения ошибки. Пусть а=0,1; 6=0,5; д0=Ю~8; 10-2-Ю-з 10-з <7о=»10-2. ТоГда qi=ot5+0,l (|_10,2)2 » ^ = 0,1-—^)» Ю-з « 10—4; дго = 0,1 « Ю—4. ' " ' (1 — 10—2)2 Уравнение приобретает вид (10-2)у-Ц0,5+\0-4уУ*=10-а, откуда 1,85<у<2,85, а Мопт=2. Рассмотренные в данном параграфе задачи относят- ся к задачам параметрической оптимизации. Значитель- ное число задач, возникающих при проектировании ВС, относятся, однако, к задачам структурной оптимизации. При структурной оптимизации наиболее важно находить эффективный способ ограничения количества рассматри- ваемых вариантов. В известной мере для этого может быть применен градиентный метод. Например, при опти- мизации конфигурации сетей ЭВМ приемлемые решения достигаются наращиванием сети так, чтобы прирост на- дежности, отнесенный к единице расходов, был макси- мальным. 204
§ 7.6. ОТКАЗОУСТОЙЧИВЫЕ МИКРОПРОЦЕССОРНЫЕ СИСТЕМЫ Отказоустойчивые системы содержат при прочих равных условиях больше аппаратных и программных средств, чем системы, не обладающие устойчивостью к отказам. Поэтому представляет особый интерес создание отказо- устойчивых систем на базе микропроцессоров (МП). Бла- годаря невысокой стоимости и доступности самих МП могут быть разработаны не слишком дорогие и громозд- кие информационные и управляющие отказоустойчивые микропроцессорные ВС (ОУМПВС). Рассмотрим особен- ности ОУМПВС и основные принципы их построе- ния. При разработке ОУМП системы необходимо прежде всего осуществить выбор между пассивным и активным способом обеспечения отказоустойчивости. Пассивную отказоустойчивую ВС применяют в случае, когда управ- ляемый объект не допускает даже кратковременного пре- кращения работы МП системы управления. В других отношениях пассивная отказоустойчивая система, реали- зуемая методом голосования, хуже активной отказоус- тойчивой системы. Система с голосованием использует не эффективно аппаратные и программные средства, поскольку боль- шинство аппаратуры бездействует. Кроме того, в совре- менных микропроцессорных комплектах отсутствуют ре- шающие органы. Поэтому решающий орган необходимо реализовать либо на отдельном МП, либо собрать из ло- гических элементов невысокой степени интеграции. Одна- ко в этом случае надежность системы ограничивается невысокой надежностью решающего органа. По приведенным причинам больший интерес представ- ляют активно отказоустойчивые микропроцессорные сис- темы. Благодаря разнообразию и гибкости существую- щих микропроцессорных средств возможны различные технические решения. Существующие микропроцессорные средства подраз- деляются на однокристальные микроЭВМ; комплекты на основе однокристальных микропроцессоров; секциониро- ванные комплекты. Первые из них характеризуются невысоким быстро- действием и объемом памяти 2—3 К байт. Вторые, состоящие из нескольких БИС, выполняющих различные функции, характеризуются временем выпол- 206
нения команд от 2 до 10 мкс и объемом памяти до 64 К байт. Третьи, состоящие из отдельных секций невысокой разрядности (от 2 до 8), позволяют набрать МП систе- мы необходимой разрядности, характеризуются выполне- нием команд за доли микросекунды и объемом памяти до сотен К байт. Из отечественных микропроцессорных комплектов серии К580, К586 относятся к комплектам на основе однокристальных мик- ропроцессоров, а серии К583, К584, К587, К589, КР1802 и КР1804 — к секционированным комплектам. При построении активных отказоустойчивых систем на микропроцессорах необходимо разрешить три основ- ных вопроса: 1) выбор конфигурации, структуры и организации си- стемы с учетом возможностей реконфигурации; 2) выбор методов и средств контроля и диагностиро- вания; 3) выбор методов восстановления информации после отказа в системе. При выборе конфигурации системы необходимо обес- печивать возможность взаимосвязи между всеми работо- способными МП системы в случае, когда некоторые эле- менты системы отказали. В этом отношении наилучшими характеристиками обладает конфигурация системы в виде полного графа, где все микропроцессорные системы непосредственно связаны друг с другом. Например, микропроцессор серии К580 предоставит возможность создавать до 256 портов для ввода и вывода информации. Поэтому на таких мик- ропроцессорах возможно создавать ОУМПВС с полной системой связей, содержащих сотни микропроцессоров. Однако каждый порт требует специальной аппаратуры в виде микросхемы, поэтому такие системы получаются слишком громоздкие. Практически обмен информацией между всеми рабо- тоспособными микропроцессорами можно обеспечивать при реальном количестве отказов в системе й через огра- ниченное количество связей между отдельными микро- процессорами. Как правило, у каждого микропроцессора предусматривается не более 4—6 портов для связи с дру- гими микропроцессорами. В таких системах сообщения, передаваемые от одних микропроцессоров другим, формируются в виде пакетов, адресуемых нужным микропроцессорам. В случае отсут- 206
ствия непосредственной связи между микропроцессорами пакеты передаются «транзитом» через другие микропро- цессоры. При этом с точки зрения надежности и произ- водительности системы большое значение имеют степень вершины графа, описывающей систему, т. е. количество портов (или количество связей, соединяющих данный микропроцессор с системой), и диаметр графа, т. е. мак- симальное число процессоров, через которые пакет дол- жен проходить, чтобы добраться до нужного микропро- Рис 7.12. Структуры сетей ЭВМ цессора. «Хорошие» в указанном смысле конфигурации локальных микропроцессорных сетей могут быть состав- лены на основании теории графов (см. § 7.4). Однако на практике часто встречаются более простые конфигурации сетей микропроцессоров, типа решетки, кольца, кольца с диагоналями, системы шин, звезды, иерархического де- рева и др. Соединение микропроцессоров в виде прямоугольной решетки (рис. 7.12, а) —не очень хорошее решение, так как пути между некоторыми микропроцессорами получа- ются достаточно длинными. Прямоугольные решетки микропроцессоров могут быть полезны в случаях, когда характер решаемых задач предопределяет такую конфи- гурацию. Неплохие характеристики имеют кольцевые се- ти (рис. 7.12, б) и в особенности кольцевые сети с диаго- налями (рис 7.12, в). В зависимости от характера реша- емых задач, организации работы системы и перспектив 207
ее наращивания находят применение микропроцессорные системы с общими шинами (рис. 7.12, г), где для повы- шения надежности предусматривается несколько систем шин. В отдельных случаях предлагаются конфигурации типа звезды (рис. 7.12, д) или иерархического дерева (рис. 7.12, е). Однако с точки зрения отказоустойчивых систем эти конфигурации нецелесообразны, ибо в них су- ществуют нерезервированные составляющие (центр звез- ды, корень дерева). То же относится и к системам с об- щей памятью, которые, кроме того, обладают низкой производительностью. Реконфигурация в случае вышерассмотренных конфи- гураций ОУМПВС заключается в исключении из работы отказавших элементов системы. Для этого во всех про- цессорах системы должны храниться таблицы работоспо- собности других элементов системы, откуда в случае от- каза какого-либо элемента системы соответствующий знак стирается и дальнейшая работа системы организу- ется без участия данного элемента (процессора, связи). Особым способом создания избыточности, характерным для микропроцессорных систем, является резервирование отдельными разрядными секциями в системах, где при- меняются секционированные микропроцессорные комп- лекты. Например, если в 16-разрядной системе использу- ется 2-разрядные секции, достаточно иметь, как мини- мум, еще один 2-разрядный комплект, т. е. всего 18 раз- рядов. Реконфигурация в таком случае заключается в подключении запасной секции вместо отказавшей. Контроль и диагностирование в микропроцессорных системах имеет ту особенность, что микропроцессоры не имеют аппаратных встроенных средств контроля. Поэто- му в случае микропроцессорных систем контроль осу- ществляется программно-логическими методами (см. § 4.1) и тестовым контролем (см. § 4.4). Для микропроцессорных ВС хорошо подходит прос- той и надежный метод контроля дублированием. Задача диагностирования в микропроцессорных ВС упрощается тем, что в случае отказа соответствующий микропроцес- сор исключается из работы целиком. Поэтому требуется небольшая глубина диагностирования. В этих условиях особое значение приобретает взаимный контроль и диаг- ностирование микропроцессоров (см. § 5.4). Особым ме- тодом контроля, характерным для микропроцессорных систем, является контроль путем осуществления одних и тех же операций при помощи различных микропрограмм 208
с последующим сравнением результатов. В табл. 7.5 в качестве примера приведены три различные микропро- граммы сложения в микропроцессоре К580 ИК80 [14]. Сравнением результатов, полученных по различным микропрограммам, можно судить о работоспособности микропроцессора. Такой способ контроля целесообразен при наличии большой временной избыточности. Таблица 7.5 • Программа 1 Программа 2 Программа 3 MACRO ADC1 LX1 Н, ADC1 MOV.A, М INX Н ADD М MOV М, А ENDM MACRO ADC1, ADC2, MACRO ADC1, R1,R2 LX1 Rl, ADC1 LDAX Rl MOV R2, A LX1, Rl, ADC2 LDAX Rl ADD R2 STAX Rl ENDM ADC2 LHLD ADC1 XCHG LHLD ADC2 DAD D SHLD ADC2 ENDM В микропроцессорах и микропроцессорных системах важно тестировать пути передачи информации через раз- личные регистры и другие узлы микропроцессора. Если возможные пути передачи информации представить в ви- де графа, то построение тестов для микропроцессоров и микропроцессорных систем может быть осуществлено ме- тодами, аналогичными методам построения структурных тестов для программ (см. § 6.4). Восстановление информации в отказоустойчивых мик- ропроцессорных системах предполагает наличие, по край- ней мере, двойной записи информации в контрольных точках и, по крайней мере, однократной дополнительной записи информации о состоянии каждого микропроцессо- ра в ЗУ другого микропроцессора. В медленно действую- щих системах, где имеется память на магнитных дисках, дублирующие записи могут быть произведены на магнит- ных дисках. В противном случае для дублирующих запи- сей необходимо зарезервировать секции оперативной па- мяти, соизмеримые по объему с секциями оперативной памяти в нерезервированной системе. В остальном отно- сительно отказоустойчивых микропроцессорных ВС спра- ведливы принципы построения, приведенные в настоящей главе применительно к отказоустойчивым ВС. 209
Контрольные вопросы н задачи 1. Дайте определения пассивной отказоустойчивости, активной отказоустойчивости; охарактеризуйте преимущества и недостатки соответствующих методов обеспечения отказоустойчивости. 2. Опишите процедуру восстановления вычислительного процесса в активно отказоустойчивой ВС. 3. Закодируйте кодовые слова 110011, 101011, 111001 и 101110 с помощью производящего многочлена g(x)=x7+xA+xz+x+\. 4. Выберите способ кодирования с обнаружением и исправлени- ем ошибок, если количество информационных символов £=256 и требуется исправлять до семи ошибок. 5. Оцените вероятность безотказной работы системы, структура которой приведена на рис. 7.3, «ели вероятность безотказной работы АЛУ Pi=0,9, вероятность безотказной работы ЗУ Рг=0,85, вероят- ность безотказной работы мажоритарного органа >2 Р3=0,95, веро- ятности безотказной работы устройств ввода и устройств вывода Я4=Р5=0,99. 6. Оцените коэффициенты готовности ВС из семи ЭВМ в случае звездообразной и кольцевой системы соединения, если коэффициент готовности ЭВМ /(г=0,9 и коэффициент готовности канала связи /(г.с=0,85. 7. Дайте характеристику особенностям микропроцессорных от- казоустойчивых ВС.
ЗАКЛЮЧЕНИЕ Развитие вычислительной техники в настоящее время осуществляется по следующим основным направлениям: создание суперкомпьютеров чрезвычайно большой про- изводительности; систем с высокой степенью интеллекта; обширных сетей ЭВМ с огромными банками данных; пер- сональных ЭВМ массового применения; микропроцессор- ных средств управления для различных машин и аппа- ратов. Успешная реализация возможностей всех этих нап- равлений предполагает весьма высокую достоверность получаемых с помощью ЭВМ результатов при ограничен- ном числе ремонтного персонала. Выполнение этого усло- вия возможно только при систематическом планирова- нии, учете и реализации факторов, обеспечивающих на- дежность и отказоустойчивость ЭВМ и ВС, а также до- стоверность получаемых результатов при высокой сте- пени автоматизации процесса эксплуатации вычислитель- ных средств. Проблема надежности вычислений и достоверности их результатов существовала всегда. Однако при небольших объемах и скоростях вычислений и при решении не очень ответственных задач отдельные ошибочные результаты легко обнаруживались и не причиняли особого вреда. Неисправность простых и немногочисленных ЭВМ того времени тоже можно было легко устранить. В настоящее время в связи с непомерно возросшими объемами и скоростями вычислений и с высокими требо- ваниями к достоверности результатов обработки данных поддержание работоспособности ВС может быть достиг- нуто только путем его полной автоматизации. Учитывая стремительные темпы дальнейшего роста быстродейст- вия и производительности вычислительных средств, мож- но с уверенностью сказать, что всякие другие пути под- держания работоспособности ВС, кроме его полной авто- матизации, наталкиваются на непреодолимые трудности, связанные с нехваткой обслуживающего персонала. 211
Процесс развития вычислительных средств не может быть преодолен просто наращиванием вычислительных мощностей. В области обеспечения работоспособности средств вычислительной техники зарождаются новые в принципе технические решения. С одной стороны, эти решения базируются на новой элементной базе, с дру- гой — на новых логических, структурных и алгоритмиче- ских принципах построения средств вычислительной тех- ники. Существующие технические решения, основанные на трех- или четырехкратном увеличении количества ап- паратуры и программных средств для достижения неко- торого увеличения устойчивости ВС к отказам и ошибкам вряд ли соответствуют по уровню отработанности и по изяществу замысла другим техническим решениям, при- меняемым в современной вычислительной технике. В дан- ной области существует широкое поле поиска как в плане развития общей теории отказоустойчивых ВС, так и в плане изобретательской деятельности для решения част- ных задач. Очевидно, решение проблемы отказоустойчи- вости тесно связано с проблемой распараллеливания вы- числений, построения сетей ЭВМ, а возможно, с новыми результатами в области применения теории групп и дру- гих отраслей современной математики к развитию ариф- метических и логических основ построения вычислитель- ных средств.
СПИСОК ЛИТЕРАТУРЫ 1. Авижиенис А. А. Отказоустойчивость — свойство, обеспечивающее постоянную работоспособность цифровых систем/УТИИЭР. 1978. Т. 66. Кя 10. 2. Барлоу Р., Прошан Ф. Математическая теория надежности. — М.: Советское радио, 1969. 3. Белецкий В. В. Теория и практические методы резервирова- ния радиоэлектронной аппаратуры. — М.: Энергия, 1977. 4. Бондарь Ю. В., Сафонов И. В. Об одном методе оптимального использования алгоритмической избыточности//Автоматика и вычис- лительная техника. 1975. № 3. 5. Гнеденко Б. В., Беляев Ю. К, Соловьев Л. Д. Математические методы в теории надежности. — М.: Наука, 1965. 6. Голинкевич Т. Л. Прикладная теория надежности. — М.: Выс- шая школа, 1985. 7. Горский Л. /С. Статистические алгоритмы исследования на- дежности. — М.: Наука, 1970. 8. Диллон Б., Сингх Ч. Инженерные методы обеспечения надеж- ности систем. — М.: Мир, 1984. 9. Журавлев Ю. П., Котелюк Л, А., Циклинский Н. И. Надеж- ность и контроль ЭВМ. — М.: Советское радио, 1978. 10. Иыуоу К. Л. Расчет надежности вычислительных и управля- ющих машин и систем летательных аппаратов. — М.: МАИ, 1978. 11. Иыуду /С. A., Apunoe М. М. Тестирование программы на ос- нове минимального покрытия ее графа//Управляющие системы и ма- шины, 1985. № 6. 12. Иыуду К. Л., Касаткин Л. Бахтизин В. В. Прогнозирова- ние надежности программ на ранних этапах разработки//Надежность и контроль качества. 1982. № 5. 13. Каган Б. М„ Мкртумян Я. Б. Основы эксплуатации ЭВМ.— М.: Энергоатомиздат, 1983. 14. Коваленко Л. Е., Гула В. В. Отказоустойчивые микропроцес- сорные системы. — Киев: Техника, 1986. 15. Лонгботтом Р. Надежность вычислительных систем. — М.: Энергоатомиздат, 1985. — 283 с. 16. Майерс Г. Надежность программного обеспечения. — М.: Мир, 1980. 17. Макаров И. М., Менский Б. М. Таблица обратных преобра- зований Лапласа и обратных г-преобразований. — М.: Высшая шко- ла, 1978. 18. Пархоменко П. П., Согомонян Е. С. Основы технической ди- агностики: Оптимизация алгоритмов диагностирования, аппаратур- ные средства.— М.: Энергия, 1981. 19. Преснухин Л. Н„ Шахнов В. Л. Конструирование электрон- ных вычислительных машин и систем. — М.: Высшая школа, 1986. 20. Селлерс Ф. Методы обнаружения ошибок в работе ЭЦВМ. — М.: Мир, 1972. 213
21. Тейер Т., Липов М., Нельсон Э. Надежность программного обеспечения. — М.: Мир, 1981. 22. Торгашев В. А. Система остаточных классов и надежность ЦВМ. —М.: Советское радио, 1973. 23. Хетагуров #. А., Руднев Ю. П. Повышение надежности циф- ровых устройств методом избыточного кодирования. — М.: Энергия, 1974. 24. Щербаков Н. С. Самокорректирующиеся дискретные устрой- ства.—М.: Машиностроение, 1975. 25. Avizienis A.t Kelly /. Fault tolerance by design diversity: con- cepts and experiments. — Computer, 1984, № 8, vol. 17, pp. 67—80. 26. Chwa /С.-У., Hakimi S. L. On fault identification in diagnosab- le systems. — IEEE Trans, on Computers, vol. C. 30, 1981, №6, pp. 414—422. 27. Culpepper L. M. A system for reliable engineering software.— IEEE Trans, on Software Engineering, 1976, vol. SE-1, № 2. 28. Joudu K. A. Reliability of real-time computer soptware. — Pre- prints of I-St IFAC/IFIP Symposium on Software for Computer Cont- rol SOCOCO-76, Tallinn, USSR, May 25—28, 1976. 29. Kadis A. CMOS VLSI increases life expectancy of complex systems. — Computer Design, 1985, № 4, pp. 139—146. 30. Karpovsky M. An approach for error detection and error cor- rection in distributed systems computing numerical functions. — IEEE Trans on Computers, 1981, vol. C-30, № 12. 31. Kumamoto H., Tanaka K., Inoue /С. Efficient evaluation of sys- tem reliability by Monte-Carlo method. — IEE Trans, on Reliability, 1977, vol. R-26, № 5. 32. Llttlewood В., Verrall J. L. A Bayesian reliability growth mo- del for computer software. — Applied Statistics, 1973, №3. 33. Liu Г. The role of a maintenance processor for a general pur- pose computer system. IEEE Trans, on Computers, 1984, vol. C-33, № 6, pp. 507—517. 34. Network system in an integrated steel plant./Y. Nariai, K. Kat- suragi, I. Yamasaki, S. Tosaka — Preprints of IFAC 9>-th World Con- gress, vol. 2. — Budapest, Hungary, July 2—6, 1984. 35. Rubey R. /., Dana /. A., Blchl P. W. Quantitative aspects of software validation. — IEEE Trans, on Software Engineering, 1975, vol. SF-1, № 2. 36. Schaefer D. Fischer /. R. Beyond the Supercomputer. — IEEE Spectrum, 1982, № 3. 37. Schrody E. Fault-tolerant and fail—safe micpocomputer sys- tems for modern automatic process control by redundancy. — Preprints of IFAC 9-th World Congress. — Budapest, Hungary, July 2—6, 1984, vol. 2. 38. Serlin 0. Fault—tolerant systms in commercial applications.— Computer, 1984, vol. 17, № 8, pp. 19—30. 39. Shiu K., Lee Y. Error detection process model design and its impact on computer performance. — IEEE Trans, on Computers, 1984, vol. C-33, № 6, pp. 529-540. 40. Slewlorek D. P. Architecture of fault—tolerant computers. — Computer, 1984, № 8, vol. 1,7, pp. 9—18. 41. Thels D. J. Spacecraft computers* state-of-the-art survey.— Computer, 1983, .№ 5.
ОГЛАВЛЕНИЕ Предисловие 3 Введение 4 Глава 1. Надежность аппаратуры вычислительных машин и систем § 1.1. Понятие надежности ВС и пути ее обеспечения . . 8 § 1.2. Показатели надежности 13 § 1.3. Зависимость надежности от времени 19 § 1.4. Надежность невосстанавливаемых и нерезервирован- ных ВС 22 § 1.5. Надежность элементов ЭВМ 24 Контрольные вопросы и задачи 26 Глава 2. Надежность резервированных вычислительных систем § 2.1. Резервирование в ЭВМ и ВС 27 § 2.2. Надежность резервированных ВС с последователь- но-параллельной структурой при нагруженном ре- зерве 30 § 2.3. Надежность резервированных ВС с последователь- но-параллельной структурой при ненагруженном ре- зерве 32 § 2.4. Надежность ВС со сложной структурой резервиро- вания 34 § 2.5. Применение сложных структур резервирования . . 39 Контрольные вопросы и задачи 44 Глава 3. Расчет надежности вычислительных систем § 3.1. Методы расчета надежности ВС 44 § 3.2. Надежность нерезервированных восстанавливаемых ВС 47 § 3.3. Надежность резервированных восстанавливаемых ВС 51 Контрольные вопросы и задачи 57 Глава 4. Контроль в ЭВМ § 4.1. Основные положения 57 § 4.2. Контроль по модулю 64 § 4.3. Схемная реализация контроля по модулю 72 § 4.4. Построение контрольных тестов . 74 § 4.5. Надежность систем с учетом влияния контролиру- ющих устройств 83 § 4.6. Техническая реализация системы контроля .... 87 § 4.7. Проектирование системы контроля 90 Контрольные вопросы и задачи 97 Глава 5. Методы диагностирования § 5.1. Основные положения 97 § 5.2. Методы построения диагностических тестов .... 100 § 5.3. Организация системы диагностирования 112 § 5.4. Диагностирование в многопроцессорных ВС ... . 121 Контрольные вопросы и задачи 129 215
Глава 6. Надежность программного обеспечения § 6.1. Понятие отказа программы 129 § 6.2. Модели надежности программ 136 § 6.3. Методы, введения структурной избыточности в про- граммы 145 § 6.4. Структурные методы тестирования программ ... 153 § 6.5. Функциональные методы тестирования программ 160 Контрольные вопросы и задачи 166 Глава 7. Отказоустойчивые вычислительные системы § 7.1. Назначение и свойства отказоустойчивых ВС . . . 167 § 7.2. Примеры реализации отказоустойчивых ВС ... . 173 § 7.3. Применение кодов с обнаружением и исправлением ошибок 179 § 7.4. Надежность отказоустойчивых ВС 190 § 7.5. Оптимальное распределение ресурсов в отказоустой- чивых ВС 196 § 7.6. Отказоустойчивые микропроцессорные системы . . . 205 Контрольные вопросы и задачи . . 1 210 Заключение 211 Список литературы 213 Учебное издание ИЫУДУ Куста Аугустович НАДЕЖНОСТЬ, КОНТРОЛЬ И ДИАГНОСТИКА ВЫЧИСЛИТЕЛЬНЫХ МАШИН И СИСТЕМ Редактор Л. П. Андрианова Младший редактор Н. Е. Овчаренко Художник В. В. Гарбузов Художественный редактор В. И. Мешалкин Технический редактор 3. В. Нуждина Корректор В. В. Кожуткина ИБ № 7708 Изд. № СТД-494. Сдано в набор 10.08.88. Подп. в печать 30.12.88. Т—23706. Формат 84Х1087«я. Буи. кн.-журн. Гарнитура литературная. Печать высокая. Объем 11,34 усл. печ. л. 11.55 усл. кр.-отт. 11,75 уч.-изд. л. Тираж 19 000 экз. Зак. № 595. Цена 45 коп. Издательство «Высшая школа», 101430. Москва. ГСП-4, Негдинная ул., д. 29/14. Московская типография № 8 Союзполиграфпрома при Государственном комитете СССР по делам издательств, полиграфии и книжной торговли, 101898, Москва, Центр, Хохловский пер., д. 7«