Файл: Основы технической эксплуатации ЭЦВМ..pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 15.10.2024

Просмотров: 142

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

Помехоустойчивые коды делятся на коды с обнару­ жением ошибок — обнаруживающие коды и коды с об­ наружением и исправлением ошибок — корректирующие коды.

Общий принцип построения помехоустойчивых кодов сводится К тому, что из N возможных кодовых комбина­ ций, которые можно получить в »-разрядном коде, ис­ пользуется при передаче информации в машине только

некоторая часть К комбинаций ( К < М = 2 п) . Такие

К

комбинаций называют разрешенными. Количество

их

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

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

D_

 

l0g2/с ’

 

 

где N = 2п — общее

количество

комбинаций,

которое

можно получить в

»-разрядном

коде; К —количество

разрешенных комбинаций, используемых при

передаче

информации в машине.

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

Под кодовым расстоянием d понимается наименьшее

число разрядов,

которыми отличаются комбинации.

В используемых

для передачи информации обыкновен­

ных кодах d берется равным единице. Для всех поме­ хоустойчивых кодов d> 1.

Для обнаружения одиночной ошибки, т. е. ошибки в одном из разрядов кодовой комбинации, достаточно иметь код с d — 2. В этом случае любые две кодовые комбинации, представленные в таком коде, будут отли­

чаться

друг от друга не менее чем в двух разрядах.

104

■ .


Появление любой единичной ошибки не сможет превра* тить данную кодовую комбинацию в какую-либо разре­ шенную комбинацию. Появившаяся ошибка обязательно изменит разрешенную комбинацию на запрещенную.

В помехоустойчивых кодах с 3 можно не только обнаруживать одиночные ошибки, но и определять по­ зицию разряда, в котором появилась ошибка, а следова­ тельно, и исправлять ее. Пояснить это можно следую­ щим образом. При появлении одиночной ошибки код исказится так, что ошибочная комбинация будет отли­ чаться от истинной только в одном разряде, а от всех остальных разрешенных комбинаций не менее чем в двух разрядах. Такое положение позволяет определить по­ зицию разряда, в котором произошла ошибка и испра­ вить ее. Исправление ошибки в этом случае можно вести путем поочередного изменения значений символов (ну­ ля на единицу и наоборот), записанных в разрядах кодовой комбинации. После каждого изменения символа в одном из разрядов производится проверка и, если комбинация остается запрещенной, символ в данном разряде восстанавливается. Поочередное изменение зна­ чений символов ведется до тех пор, пока не будет получе­ на разрешенная комбинация. Для обнаружения двойных ошибок необходимо иметь код с d = 3, а для их исправ­ ления— с <і=5.

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

d ^ t + 1;

(3-1)

d ^ 2 t + l ,

(3-2)

где t — число ошибок.

Как видно из выражений 3-1 и 3-2, для обнаружения двойных, тройных и т. д. ошибок надо значительно уве­ личивать избыточность. Поэтому при выборе кода необ­ ходимо тщательно взвесить все за и против (характер распределения ошибок, требуемая достоверность, избы­ точность и т. д.).

При выборе помехоустойчивого кода следует иметь в виду, что, во-первых, вероятность появления ошибок одновременно в двух, трех и более разрядах значительно меньше, чем вероятность появления ошибки ■в одном разряде (37), и, во-вторых, что коды, предназначенные для уверенного обнаружения, например, одиночных оши-

105

бок, будут обнаруживать и некоторую часть двойных, тронных ошибок и т. д.

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

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

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

Кодирующее устройство содержит входной информа­ ционный регистр сдвига на четыре Разряда, многовхо­ довый сумматор по модулю 2*, схему И, играющую роль клапана, и выходной регистр сдвига на пять разрядов. Последовательность импульсов обыкновенного кода по­ ступает на вход информационного регистра и сдвига­ ется в сторону четвертого разряда. По окончании приема всей кодовой комбинации очередной тактовый импульс

* Операция суммирования двоичной последовательности по мо­

дулю 2 основана на элементарных

операциях сложения по моду­

лю 2 двух двоичных чисел: 0 0 0 = 0 ;

001 = 1; 1 01= 0; 1 0 0 = 1 .

106


открывает входы сумматора по модулю 2. Если число единиц в поступившей на вход сумматора комбийации было четным, то на выходе его будет нуль, если нечет­ ным — единица.

Следующим тактовым импульсом, подаваемым на вход схемы И, знак четности будет записан в контроль­ ный разряд РВК. Этим же тактовым импульсом кодовая комбинация из информационного регистра будет пере-

а)

Рис. 3-3. Структурная схема кодирующего устройства для определе­ ния знака четности при последовательном вводе и передаче инфор­ мации.

писана в выходной регистр. Закодированное таким об­ разом число или слово будет готово к передаче. Много­ входовый сумматор по модулю 2 может собираться на базе однотипных схем типа «исключительно ИЛИ», каж­ дая из которых определяет признак четности двухразряд­ ного кода. Такой сумматор строится обычно по пирами­ дальному принципу. На рис. 3-3,6 показана структурная схема сумматора по модулю 2 на четыре входа.

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

107

Декодирующее устройство для проверки на чет­ ность представлено на рис. 3-5. Выходы разрядов инфор­ мационного регистра связаны со входами сумматора по модулю 2. При нечетном количестве единиц в 'кодовой

Рис. 3-4. Структурная схема кодирующего устройства для определения знака четности при параллельном вво­ де и передаче информации.

Рис. 3-5. Структурная схема декодирующего устройства для проверки на'четность.

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

Для исправления одиночной ошибки, как было пока­ зано выше, одного контрольного разряда недостаточно.

108

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

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

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

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

2Т^ т + г+Л>2Т~1

(3-3)

log2 (m + r+'\).

(3-4)

Неравенства (3-3) и (3-4) составлены исходя из того, что г контрольных разрядов должны позволить записать в двоичном коде номер любого из т + г разрядов кодо­ вой комбинации числа или слова.

В табл. 3-1 приведены вычисленные на основании неравенства (3-3) и (3-4) данные по количеству инфор­ мационных и контрольных разрядов, необходимых для построения корректирующего кода.

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

109



Из табл. 3-1 следует, что для получения корректиру­ ющего кода десятпразрядное число должно содержать шесть .информационных и четы.ре контрольных разряда.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Т а б л и ц а

3-1

V

'2

3

3

4

4

4

4

4

9

4

11

12

13

14

15

16

17

18

19

т

1

9

3

3

5

G

7

8

10

 

 

 

 

 

/л+г

3

 

 

 

 

 

 

4

 

4

5

5 5

5 5

5 ' 5 5

5

6

7

9

10

11

12

13

14

15

17

,8

19

20

21

22

23

24

Следовательно, вся кодовая комбинация должна быть разбита на четыре контрольных группы. Пронумеруем все десять разрядов и присвоим каждому из них свой номер от 0 до 9. Запишем номера этих Разрядов в два вертикальных столбца в десятичной и двоичной систе­ мах счисления в табл. 3-2.

 

 

 

 

 

 

 

 

Т а б л и ц а 3-2

Номер разряда

 

 

 

 

 

 

 

 

В десятичной си-

В двоичной системе

 

Номера разрядом, входящие

 

в I—І-ю контрольные группы

стеме счисления

счисления

 

 

 

 

 

0

0

0

0

0

 

 

 

 

 

1

0

0

0

1

 

 

 

 

 

2

0

0

1 0

1-я группа— (1,

3,

5,

7, 9)

3

0

0

11

4

0

1 0

0

2-я

группа— (2,

3,

6,

7)

5

0

1 0

1

3-я

группа— (4,

5,

6,

7)

6

0

1 1 0

4-я группа— (8,

9)

 

 

7

0

1 1 1

 

 

 

 

 

8

1 0

0

0-

 

 

 

 

 

9

1 0

0

1

 

 

 

 

 

Разбивка на контрольные группы ведется таким обра­ зом, чтобы единицы в двоичном представлении номера разряда указывали на его принадлежность к определен­ ным контрольным группам. Исходя из этого, к первой контрольной группе следует отнести 1, 3, 5, 7 и 9-й раз­ ряды, ко второй — 2, 3, 6 и 7-й, к третьей — 4, 5, 6 и 7-й и к четвертой — 8-й и 9-й разряды.

Разряды 3, 5, 6, 7 и 9, принадлежащие одновременно

к нескольким контрольным группам,

используются

в качестве информационных, а разряды

1, 2, 4 и 8, при-

1І0