3.4.3. Основные подходы к оценке надежности ЭВМ
Надежность вычислительной машины, как и любой другой физической системы, можно повысить, не прибегая к резервированию. В этом случае используются высоконадежные элементы и схемы с большим запасом надежности и уделяется повышенное внимание технологии изготовления и сборки. Такой подход предусматривает предотвращение неисправностей и бессбойную работу аппаратных средств. В течение долгого времени считалось, что без резервирования невозможно создать сверхнадежные вычислительные системы, необходимые, например, для проведения исследований космического пространства и управления наземными или бортовыми системами в реальном масштабе времени. В последние годы надежность элементов ЭВМ существенно возросла, что позволило создавать более надежные не резервированные системы. Однако повышение надежности сопровождается усложнением вычислительных систем и увеличением числа входящих в них элементов.
Другим подходом к созданию надежных вычислительных систем является обеспечение их отказоустойчивости. Такой подход не исключает появления неисправностей, но их неблагоприятное воздействие на работу системы предотвращается или минимизируется путем введения той или иной формы избыточности. Такая отказоустойчивая вычислительная система может сохранять работоспособность при заданном числе отказов, либо правильно выполнять программу при отказе определенного числа элементов. Свойство отказоустойчивости обеспечивается защитным резервированием, которое может осуществляться тремя различными способами:
– введением избыточных логических элементов или резервированием на уровне вычислительных машин;
– введением избыточности в систему программного обеспечения, т. е. созданием дополнительных программ, обеспечивающих защиту от ошибок или их исправление;
– введением временной избыточности, благодаря которой становится возможным повторение машинных операций.
С функциональной точки зрения введение избыточности может осуществляться в статическом или динамическом режиме.
3.4.4. Статическое резервирование
Влияние неисправностей можно исключить путем введения дополнительного оборудования, с тем чтобы при отказе одного из резервированных элементов выходные данные функционального модуля не менялись. Влияние неисправного элемента мгновенно и автоматически блокируется благодаря наличию постоянно включенных и одновременно действующих элементов. Такое резервирование называется статическим, так как блокирование отказа осуществляется автономно, без вмешательства в работу системы через какие-либо оконечные устройства ввода-вывода.
Резервирование со схемой голосования, являющееся наиболее важной формой блокирования отказов, было предложено автором работы, который разработал и проанализировал схему тройного резервирования элементов с мажоритарной функцией голосования. Резервирование такого рода стало экономически целесообразным с развитием технологии интегральных схем. Одним из интересных примеров применения этого подхода является ЭВМ пусковой установки ракеты “Сатурн-5”. В этой вычислительной машине применяется тройное резервирование модульной схемы с мажоритарными элементами в центральном процессоре и дублирование в основном запоминающем устройстве.
Для обеспечения отказоустойчивости систем передачи и хранения данных используются разработанные в технике связи коды с обнаружением и исправлением ошибок, а также специальные коды, предназначенные для быстрого кодирования и декодирования. В работе отмечается, что стоимость таких схем примерно в 1,5 раза больше стоимости схем без резервирования.
3.4.5. Динамическое резервирование
При динамическом резервировании влияние неисправностей может проявляться на выходах системы, однако предусматриваются средства их обнаружения, диагностики и устранения. Если возможность вмешательства человека исключается, то посредством динамического резервирования системе придается свойство самовосстанавливаемости. Такой вид резервирования известен еще как резервирование замещением. Исправление ошибок обеспечивается за счет реализации повторных вычислений, например, способом обратного прогона программы до возвращения к некоторой исходной точке программы.
3.4.6. Гибридное резервирование
В этой схеме в любой момент времени три или большее число модулей соединены с мажоритарным элементом. При отказе какого-либо модуля обнаруживается несовпадение его результатов с выходами двух других, и он заменяется резервным [8].
4. Программное обеспечение контроллера
4.1. Разработка алгоритмов обработки данных контроллером
Программное обеспечение системы можно разделить на две группы:
– управляющие программы передающей аппаратуры - контроллера сбора и передачи телемеханической информации;
– программа компьютера.
Программа контроллера ждет сигнала ее вызова с диспетчерского пункта. Пока нет вызовов программа следит за состоянием датчиков пожара, затопления и охранным датчиком. Если от них приходит сигнал, то происходит вызов диспетчерского пункта и сообщается о причине вызова. Как только приходят четыре гудка на модем на пункте учета тепловой энергии, программа отправляет диспетчеру запрос на пароль и следит за состоянием линии связи, чтобы не потерять данные. По приходу пароля его сравнивают с тем, который зашит в ПЗУ данного контроллера и если сравнение прошло успешно, то диспетчер получает доступ к данным на теплосчетчике. Если пароль неверный - модем “кладет трубку” и система возвращается в начальное состояние. Для синхронизации передачи используется асинхронный старт-стоповый режим передачи информации.
Программа компьютера осуществляет прием информационных байтов с пункта учета тепловой энергии и их анализ. По результату анализа данные в удобном для пользователя виде выводятся на экран монитора. Данные также могут быть сохранены в базе данных, в которой хранятся абсолютно все параметры измерений. В программе есть диспетчер регулярного опроса, который по таймеру включается (например: ночью) и автоматически опрашивает все пункты учета тепловой энергии и заносит результаты измерений в базу данных. Существует интерфейсный блок, т.н. монитор данных. Он включает в себя блок статистического анализа, блок мониторинга в режиме реального времени, блок управления модемом, блок формирования отчетов. Блок статистического анализа позволяет производить логические и математические операции над поступившими данными. Блок мониторинга позволяет увидеть в реальном времени поступающие данные и мгновенные их значения. Блок управления модемом позволяет посылать на него различные команды, с помощью которых осуществляется дозвон до пункта учета тепловой энергии и передача данных. В блоке формирования отчетов по заданному образцу создается отчет, который при желании можно вывести на принтер.
4.2. Разработка программного обеспечения
Программа AVR-микроконтроллера - это размещенная в памяти программ последовательность команд, каждая из которых состоит из двоичных кодов операций и двоичных адресов операндов.
Система команд AVR-микроконтроллеров включает команды арифметических и логических операций, команды передачи данных, команды, управляющие последовательностью выполнения программы, и команды операций с битами. Для удобства написания и анализа программ всем операциям из системы команд, кроме двоичного кода, сопоставлены мнемокоды ассемблера (символические обозначения операций), которые используются при создании исходного текста программы.
Специальные программы-трансляторы затем переводят символические обозначения в двоичные коды.
По исходному тексту программы, написанной на языке ассемблера, можно определить время ее исполнения и объем программной памяти, необходимый для ее хранения. Программирование на языке ассемблера является прекрасным средством для того, чтобы прочувствовать архитектуру микроконтроллера и логику его работы. Этому также способствует то обстоятельство, что трансляторы с языка ассемблера распространяются фирмой Атмел бесплатно и доступны всем желающим.
Кроме языка ассемблера, для программирования встраиваемых микропроцессоров широкое распространение получили языки программирования высокого уровня: С и BASIC. Они предоставляют программисту такой же легкий доступ ко всем ресурсам микроконтроллера, как и ассемблер, но, вместе с тем, дают возможность создавать хорошо структурированные программы, снимают с программиста заботу о распределении памяти данных и содержат большой набор библиотечных функций для выполнения стандартных операций.
Важнейшим достоинством системы команд AVR-микроконтроллеров является то, что она была специально оптимизирована для использования языка С.
Вся энергонезависимая память AVR-микроконтроллеров размещается внутри кристалла и состоит из электрически программируемых FLASH-памяти программ и EEPROM-памяти данных.
Так как все команды AVR представляют собой 16-разрядные слова, FLASH- память организована как последовательность 16-разрядных ячеек и имеет емкость от 512 слов до 64K слов в зависимости от типа кристалла.
Во FLASH-память, кроме программы, могут быть записаны постоянные данные, которые не изменяются во время функционирования микропроцессорной системы. Это различные константы, таблицы знакогенераторов, таблицы линеаризации датчиков и т.п.
Достоинством технологии FLASH является высокая степень упаковки, а недостатком то, что она не позволяет стирать отдельные ячейки. Поэтому всегда выполняется полная очистка всей памяти программ. При этом гарантируется, как минимум 1000 циклов перезаписи FLASH-памяти AVR.