Горнец Н.Н., Рощин А.Г. Организация ЭВМ и систем (2006) (1186251), страница 63
Текст из файла (страница 63)
В других локальных сетях, например сетях издательских домов, к клиентскому компьютеру предъявляются значительно более строгие требования. Однако это, как правило, не приводит к снижению требований к серверу сети. Компьютеры, используемые в качестве большинства серверов в сети, должны обладать производительностью, достаточной для обслуживания всех клиентских компьютеров сети, очень большими объемами ОП для хранения всей информации и исключительно высокой надежностью.
Современные процессоры персональных компьютеров Репбшп ЪЧ, АМП, а также Арр!е обладают достаточно высоким быстродействием, но адресуемые объемы ОП недостаточны для создания серверов в крупных сетях. Поэтому для серверов используют специальные процессоры с расширенным адресным пространством, а для обеспечения надежности информации ее хранят в дисковых массивах ВА1П.
12.2. Системы автоматического контроля и диагностики Одним из важнейших требований к вычислительным системам, в особенности к серверам, является обеспечение надежности, так как любой отказ ВС может привести к тяжким последствиям. Для улучшения надежности ВС существуют многочисленные методы, применение которых определяется назначением системы, условиями ее работы и вероятными видами отказов. Виды отказов и статистические характеристики надежности. Все ошибки в работе ВС подразделяют на систематические, возникающие в результате отказов, и случайные, вызванные сбоями. От- 299 каз — это устойчивое нарушение работоспособности аппаратуры вызываемое, как правило, выходом из строя одного или нескольких элементов. Отказы бывают внезапными и постепенными, проявляющимися вначале в виде неустойчивых дефектов. Сбоем казы вают кратковременное самоустраняющееся нарушение правильного функционирования ВС; причиной сбоев чаще всего бывают электромагнитные и электростатические помехи, возникающие как во внешней среде, так и внутри компьютера.
Помимо отказов и сбоев в аппаратуре существуют ошибки в ПО, не выявленные в процессе отладки программ. С такими ошибками обычно приходится сталкиваться при некоторых редко встречающихся сочетаниях обрабатываемых данных и командной информации. Отказы и сбои происходят в любых компьютерах. Но особенно они опасны в устройствах, входящих в состав управляющих систем и комплексов. Они приводят к потере информации, длительным простоям или катастрофическим последствиям.
Именно по этой причине проблема своевременного выявления и исправления ошибок в процессе решения задачи является актуальной. Решение этой проблемы связано с введением в обрабатываемую информацию избыточности. Избыточность может быть двух видов — временной или пространственной. Временная избыточность связана с увеличением времени решения задачи.
Например, задачу можно решать дважды на одном компьютере, используя одну или две разные программы, и сравнивать получаемые результаты. Она служит основой для программно-логического контроля. Сюда принято относить тестовые проверки, повторные просчеты, расчеты с использованием других программ и т.д. Такие методы не нуждаются в значительных аппаратных затратах, но существенно увеличивают время решения, нередко требуя более высокого быстродействия. Для сокращения затрат на повторное выполнение программы в нее включают контрольные точки, позволяющие повторять не всю, а лишь участок программы, начиная с предыдущей контрольной точки. Расстановка контрольных точек особенно сложна в мультипроцессорных и многомашинных ВС и должна предотвращать эффект «домино», т.е.
распространения ошибочного результата за счет обменов между процессорами. Один из получивших наибольшее распространение методов программно-логического контроля — тестовые проверки — основан на выполнении специальных программ с известным результатом. Глубина проверки зависит от времени, отведенного на проверку, и частоты проверок. Характерным для таких проверок служит то обстоятельство, что они дают информацию об исправности ВС на момент проверки, поэтому полной уверенности в правильности решения задачи быть не может.
Интервал ьТ между тестовыми проверками можно найти исходя из формулы, определяющей вероятность безотказной работы в момент (г + ЛТ), так 300 как во время выполнения проверки аппаратура работала безотказно: лТ = аР(Л. Тестовые проверки являются одним из самых распространенных методов, позволяющих обнаружить постоянные отказы компьютера. Изучение методов программного контроля — задача программирования. Пространственная избыточность заключается в увеличении длины машинного слова, в которое вводятся дополнительные разряды.
Например, программа может одновременно выполняться на двух компьютерах. Если полученные результаты совпадают, то задача решена верно. Для реализации пространственной избыточности необходимы дополнительные средства, а именно: средства аппаратурного контроля. К этой группе контроля относят корректирующие коды, мажоритарные схемы и т.п. Эти методы приводят к значительным аппаратным затратам„но обеспечивают возможность непрерывной работы ВС в условиях отказов и сбоев.
Они являются единственными методами, позволяющими повысить надежность необслуживаемых (например, находящихся на борту автономного космического аппарата) ВС. При пространственной избыточности возможность обнаружения ошибок основывается на добавлении к и-разрядному двоичному слову дополнительных т контрольных разрядов. Ошибки в двоичном слове — это появление «1» вместо «О» или «О» вместо «1». Если некоторая кодовая комбинация (а всего их 2") перешла в разряд запрещенных, то это служит свидетельством наличия ошибки. Если в результате появления ошибки произошла замена некоторой разрешенной комбинации другой, но также разрешенной (например, при отсутствии избыточности), то такая ошибка не обнаруживается.
Корректирующая способность кода, т.е. способность обнаруживать и исправлять ошибки, зависит от его избыточности. Различают абсолютную и относительную избыточность кода. Абсолютная избыточность представляет собой число контрольных разрядов т, а относительная избыточность определяется как отношение абсолютной избыточности к общей длине машинного слова: С= т/(н+ т).
Любой код, обладающий ненулевой избыточностью и позволяющий исправлять или только обнаруживать ошибки, называется корректирующим. В технике принято подразделять корректирующие коды на посылочные (используемые при передачах информации) и арифметические (служащие для контроля устройств обработки). Корректирующая способность кода и функции систем контроля. Задача разработчика при выборе средств аппаратурного контроля сводится к определению такого кода, который при минимальной 301 аппаратной избыточности обеспечивал бы необходимую корректирующую способность. Введем некоторые понятия.
Назовем кодовым весом число разрядов машинного слова, содержащих «1». Теперь сравним две кодовые комбинации одинаковой длины. Часть разрядов может содержать совпадающие двоичные цифры, а часть несовпадающие. Число разрядов с несовпадающими значениями назовем кодовым расстоянием и обозначим через Ы. Кодовое расстояние можно определить, выполнив поразрядное сложение по модулю 2 этих комбинаций и определив кодовый вес полученной суммы. Иногда кодовое расстояние Ы называют хемминговым. Обычно интерес представляет минимальное кодовое расстояние д„ы, т.е.
самое малое кодовое расстояние между двумя любыми используемыми комбинациями. В обычном двоичном коде минимальное расстояние д ы = 1, т.е. такой код не является корректирующим. Код называют корректирующим, если минимальное кодовое расстояние д ы > 2. При д;„= 2 корректирующий код только обнаруживает одиночную ошибку, но не может ее исправить, так как запрешенная комбинация равно удалена от двух разрешенных.
Если д ы = 3, то одиночная ошибка приводит к возникновению запрещенной комбинации, отстоящей от исходной на единицу; все остальные разрешенные комбинации будут отстоять от нее минимум на две единицы. Следовательно, задача исправления ошибки сводится к поиску разряда, содержащего ошибку, и добавление единицы к которому приведет к исходному безошибочному коду. Контроль передач информации. Чтобы обнаружить одиночную ошибку, достаточно добавить к двоичному слову всего один контрольный разряд. Обычно используют контроль по четности (или нечетности), т.е. в контрольном разряде проставляется «1», если сумма по модулю 2 всех разрядов исходной комбинации равна единице, и «О», если эта сумма равна нулю. Таким образом, вес любой безошибочной комбинации всегда остается четным; одиночная ошибка приводит к нечетному весу этой избыточной комбинации.
Дополнительный контрольный разряд вдвое увеличивает число возможных кодовых комбинаций. Одиночная ошибка ведет к исчезновению «1» в одном разряде исходной числовой комбинации или ее появлению в разряде, который первоначально содержал «О». Это приводит к нарушению четности и может быть выявлено проверкой на четность; для этого выполняют декодирование, т.е.
сложение по модулю 2 всех разрядов слова (находят «свертку»), включая контрольный разряд. Если результат свертки равен нулю, то числовая комбинация принята без ошибок, а если единице, то в принятой комбинации присутствует ошибочный разряд. 302 Этот способ контроля выявляет все комбинации, в которых при передаче возникли нечетнократные (одиночные, тройные и т.д.) ошибки. Кроме того, он обладает небольшой избыточностью.
Все это привело к тому, что он находит широкое применение для контроля правильности межрегистровых передач и работы основной памяти компьютера. Для исправления ошибок при передачах информации можно воспользоваться той же идеей: введением дополнительных контрольных разрядов. Если имеется два контрольных разряда, то можно определить место ошибочного разряда с точностью до полуслова, т.е. указать половину слова, которая содержит ошибку. Увеличивая число контрольных разрядов, можно точно определить «ошибочный» разряд, а значит, исправить возникшую ошибку.