Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_na_GEK_2012_2.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
6.81 Mб
Скачать

Процессы контроля и восстановления информации в эвм. Коды Хемминга: исправление одиночных ошибок, обнаружение двойных ошибок.

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

Система автоматического восстановления во взаимодействии с системой автоматического контроля обычно выполняет следую­щие функции:

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

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

  3. запись в память информации о сбое;

  4. инициирование (при обнаружении отказа) работы системы автоматического диагностирования (САД).

На САД в данном случае возлагается:

1) локализация места отказа с заданной степенью подробности, например до уровня сменной платы, и, если возможна реконфигурация, т. е. отключение неисправного узла

Или устройства с передачей его функции другому соответствующе узлу или устройству; У

2) запись в память информации об отказе для последующей обработки.

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

Для распознавания характера ошибки (сбой или отказ) необходимо повторить, может быть, даже несколько раз, опера­цию, в которой обнаружилась ошибка. Однако желательно это сделать с минимальными потерями времени. С этой точки зрения лучше всего, если процессор и система контроля выполнены таким образом, что проверяется правильность каждой микроопе­рации и вычислительный процесс останавливается на ошибочно выполнившейся микрооперации, которая может быть повторена. Микрооперация (команда) может быть повторена, если не иска­зилась используемая в операции информация (операнды, адреса и т. д.), т. е. если не пройден «порог повторения». Это проверяет входящая в систему программа обработки ошибок, которая по записанной ситуации, соответствующей появлению ошибки, оп­ределяет, пройден или нет порог повторения микрооперации или команды 2. Если соответствующий порог пройден, то вместо микрооперации повторяется команда, а вместо команды — сег­мент программы. Последнее возможно, если программист пре­дусмотрел в программе «контрольные точки», сохраняющие про­межуточные данные, позволяющие повторить программу с дан­ного места.

Если при повторении микрокоманды (команды, сегмента, программы) ошибка не повторяется, событие распознается как сбой и происходит возврат к точке прерывания программы, но перед этим в память записывается дополнительная информация состоянии в момент сбоя вычислительной системы (какие в это реМя выполнялись операции в периферийных и других устрой-| ствах, название программы, адрес команды, операнды, время). I мнформация о ситуациях при сбоях и об отказах накапливается ( во внешнем ЗУ и в последующем обрабатывается специальной программой, вырабатывающей определенные рекомендации обслуживающему персоналу, выполняющему профилактические работы.

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

После выявления места отказа проверяется возможность -реконфигурации путем автоматического отключения неисправного устройства и передачи его функций другому устройству. Если это возможно, то производится реконфигурация системы. Затем после сообщения оператору об отказе и произведенной реконфигурации происходит возврат к контрольной точке про­граммы. Если реконфигурация невозможна, САД инициирует на пульте код неисправности. Оператор, пользуясь справочником неисправностей, находит неисправный блок, ремонтирует или заменяет его, затем с пульта включает диагностические про­цедуры. Если отказ устранен, производится возврат к контроль­ной точке программы.

КОДЫ ХЕММИНГА

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

В основе метода лежит принцип проверки некоторого подмножества бит на четность, то есть рассматривается число двоичных единиц в рассматриваемом подмножестве, которое (число) должно быть четным (или, если по-другому договориться, нечетным; принципиально здесь разницы нет, но дополнение до нечета несколько лучше электротехнически, так как здесь обнаруживается разница между нулем и отсутствием сигнала). Любое контролируемое подмножество бит при этом должно содержать контрольные разряды.

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

1: 1,2, 5, 7

2: 5, 7,8,9

3: 1,2, 8,9

являются зависимыми, поскольку сумма любых двух строк покрывает третью строку.

Пусть нам дано m контрольных разрядов. С их помощью можно различить не более 2m событий. Одно из них состоит в том, что все символы сообщения правильны, а остальные должны давать местоположение одной из n возможных одиночных ошибок. Это приводит к неравенству

или

Если имеет место точное равенство, то код называется совершенным. В совершенном коде Хемминга имеется 2m-1 разрядов, из которых 2m-m-1 информационных.

Существует понятие избыточности кода, определяемое как отношение общего числа бит в сообщении к числу полезных бит. Для кода Хемминга избыточность быстро уменьшается с ростом размера информационного блока, и в пределе равна 1+log2n.

Контрольные разряды сообщения ставятся в позиции, соответствующие целым неотрицательным степеням числа 2, то есть в позиции 1,2, 4,8,16,… и т.д. Для того, чтобы определить номера разрядов, входящих в соответствующую проверку, выпишем двоичное представление номеров позиций:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Двоич.

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

В первую проверку включим те разряды, двоичные номера которых содержат единицу в младшем разряде, во вторую – те, у которых 1 стоит во 2-м справа разряде номера и т.д. Получатся следующие последовательности проверок:

1: 1,3,5,7,9,11,13,15,…

2: 2,3,6,7,10,11,14,15,…

3: 4,5,6,7,12,13,14,15,…

4: 8,9,10,11,12,13,14,15,…

……………………………

Синдромом называется двоичное число, состояшее из m бит, которое получается, если написать символ 0 для каждой выполненной проверки, и 1 – для каждой невыполненной. Нулевой синдром означает отсутствие ошибки, в противном случае он будет указывать позицию ошибки. Поскольку информационные и проверочные символы принимают равное участие в кодовом слове, код является равномерно защищенным.

Для иллюстрации сказанного приведем следующий простой пример на 15-разрядной сетке. Через Kr обозначим контрольные разряды сообщения, а через Is ­– информационные. Пусть требуется передать следующие 11 бит информации: 01101111010. Примем методику дополнения до нечета. Сначала заполним информационные позиции, а затем построим соответствующие контрольные:

№ разр.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

K/I

K1

K2

I1

K3

I2

I3

I4

K4

I5

I6

I7

I8

I9

I10

I11

ЗНАЧ.

0

1

0

1

1

1

0

0

1

1

1

1

0

1

0

Пусть при передаче сообщения ошибка появилась в одном из разрядов, например, в 10-м. Внесем в разрядную сетку «испорченное» сообщение и найдем синдром S.

№ разр.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

K/I

K1

K2

I1

K3

I2

I3

I4

K4

I5

I6

I7

I8

I9

I10

I11

ЗНАЧ.

0

1

0

1

1

1

0

0

1

0*

1

1

0

1

0

Разряды первой проверки дают нечетное (3) число единиц, значит, она выполняется и мы пишем 0. Вторая проверка дает 6 единиц, значит, она не выполнена, и мы пишем 1. Аналогично выполнив оставшиеся проверки, получим синдром S=1010, что соответствует числу 10. Следовательно, в принятом сообщении следует исправить 10-й разряд.

Что произойдет в случае двойной ошибки ? Система вычислит ненулевой синдром, но теперь он уже не будет правильно указывать позицию ошибки. Следовательно, вместо двух ошибок мы будем иметь три. Для получения кода с дополнительным обнаружением двойных ошибок (без возможности исправления) добавим ещё одну проверку на четность и еще один разряд, охватив проверкой всё сообщение. Тогда каждая одиночная ошибка по-прежнему будет давать правильный синдром, а дополнительная проверка – 1. Обзор возможных случаев приводится в следующей таблице:

Первоначальный

синдром

Новая проверка

на четность

Смысл

0

0

Правильно

0

1

Ошибка в дополнительной позиции

Любой

1

Одиночная ошибка

Любой

0

Двойная ошибка

Ошибки более высокой кратности достаточно редки, и необходимость их корректировки может возникнуть при создании систем повышенной надежности, например, в авиационной, военной или космической технике. Вероятность появления k – кратной ошибки в блоке из n бит при вероятности ошибки в отдельном бите, равном p, и независимом возникновении ошибок в разных разрядах, выражается формулой

и при малых p быстро уменьшается с ростом k.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]