Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по архитектуре ЭВМ.doc
Скачиваний:
303
Добавлен:
01.05.2014
Размер:
4.54 Mб
Скачать

Надежность и отказоустойчивость

Надежность и отказоустойчивость — важнейшие аспекты проектирования шин. Основные надежды здесь обычно возлагают на корректирующие коды, которые позволяют обнаружить отказ одиночного элемента или шумовой выброс и автома­тически парировать ошибку. Подобный подход, широко практикуемый в системах памяти, применительно к шинам порождает специфические проблемы.

  В шинах отдельные функциональные группы сигналов (сигналы адреса, дан­ных, управления, состояния и арбитража) предполагают независимые контроль и коррекцию. При наличии множества небольших групп сигналов метод коррек­тирующих кодов становится малоэффективным из-за необходимости включения в шину большого числа контрольных линий. Кроме того, в шинах весьма вероятно одновременное возникновение ошибок сразу в нескольких сигналах. Для учета такой ситуации необходимо увеличивать разрядность корректирующего кода, то есть вводить в шину дополнительные сигнальные линии. Достаточно неясным ос­тается вопрос защиты одиночных сигналов, в частности сигналов тактирования и синхронизации.

  Вычисление корректирующих кодов и коррекция ошибок требуют дополни­тельного времени, что замедляет шину.

  Усложнение аппаратуры, обусловленное использованием корректирующих кодов, ведет к снижению общей надежности шины, в результате чего суммарный выигрыш может оказаться меньше ожидаемого. В силу приведенных соображений становится ясным, почему проектировщики постоянно ищут альтернативные спо­собы обеспечения надежности и отказоустойчивости шин.

  Достаточно хорошие результаты дают так называемые «высокоуровневые» под­ходы. Здесь вместо отслеживания каждого цикла шины производятся контроль и коррекция более крупных единиц, например целых блоков данных или закон­ченной программной операции.

При наличии в системе избыточных процессоров и шин возможен перекрест­ный контроль, причем программное обеспечение может производить изменения в конфигурации системы и предупреждать оператора о необходимости замены оп­ределенных блоков. Даже если шина имеет встроенные средства коррекции оши­бок, желательно дополнять их некоторым дополнительным уровнем «разумнос­ти» для предотвращения такой постепенной деградации системы, компенсировать которую имеющийся механизм коррекции будет уже не в состоянии.

При разработке аппаратуры необходимо обязательно учитывать определенные требования, связанные с обеспечением отказоустойчивости. Так, если обнаружена ошибка, то для ее коррекции должна быть предусмотрена возможность повторной передачи данных. Это предполагает, что оригинальная передача не должна приво­дить к необратимым побочным эффектам. Например, если операция чтения с пе­риферийного устройства вызывает стирание исходных данных или сбрасывает флаги состояния, успешное повторное чтение становится невозможным. Другой пример: работа с буферной памятью типа FIFO (First In First Out), работающей по принципу «первым прибыл, первым обслужен», где ошибочные данные внутри очереди недоступны и поэтому не могут быть откорректированы.

  Чтобы учесть подобные ситуации, при разработке адресуемой памяти необхо­димо предусмотреть буферы, а очистка ячеек и сброс флагов должны быть не побоч­ными эффектами, а выполняться только явно с помощью определенных команд. Память типа FIFO может быть снабжена адресуемыми буферами, предназначен­ными для хранения данных вплоть до завершения передачи.