Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Основы технической эксплуатации ЭЦВМ

..pdf
Скачиваний:
4
Добавлен:
22.10.2023
Размер:
15.81 Mб
Скачать

Из табл. 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

і-іадлежащне только к одной контрольной группе — в ка­ честве контрольных.

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

Рассмотрим конкретный пример.

Пусть кодовая комбинация вида 1011 преобразует­ ся при передаче ее о.т устройства к устройству в семи­ разрядный корректирующий код.

В табл. 3-3 во второй строке показан вид переданной кодовой комбинации.

 

 

 

 

 

 

 

Т а б л и ц а

3-3

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

7

6

5

ш

3

 

 

 

Переданная

кодовая

1

0

1

0

1

Ü

1

комбинация

 

 

 

 

 

 

 

 

Принятая

кодовая

0

0

1

0

1

0

1

комбинация

 

 

 

 

 

 

 

 

Знак первого разряда переданной кодовой комбина­ ции образовался в результате проверки на четность, т.е. суммирования по модулю 2 знаков 3, 5 и 7-го разрядов:

10101 = 1

Знак второго разряда образовался в результате суммирования по модулю 2 знаков 3, 6 и 7-го разря­ дов:

1 0 0 0 1 = 0.

И, наконец, знак четвертого разряда образовался в результате суммирования по модулю 2 знаков 5, 6 и 7-го разрядов:

1 0 0 0 1 = 0.

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

111

пых группах. Примятая кодовая комбинация показана в табл. 3-3 в третьей строке. При проведении суммирова­ ния по модулю 2 в контрольных группах обязательно учитывается знак контрольного разряда:

1- я проверка 1 0 1 0 1 0 0 = 1 ;

2- я проверка 0 0 1 0 0 0 0 = 1 ;

3- я проверка 0 0 1 0 0 0 0 = 1 .

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

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

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

112

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

Следующим тактовым импульсом корректирующий код будет записан на выходной регистр и готов к передаче.

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

Рассматриваемая схема используется при параллель­ ном вводе и передаче информации.

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

8—180

113

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

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

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

тыре разряда.

Сумматоры предназначены для определения номера разряда, в который был ошибочно принят знак.

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

114 '

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

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

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

Реализация кодирующих и декодирующих устройств для циклических кодов достаточно проста.

В основу построения циклического кода положено представление цифр любой двоичной кодовой комбина­ ции в виде коэффициентов многочлена некоторой пере­ менной х:

ЬоХ0-\- ÖI X1 -|-& 2 ^'2+ . . . + & П -lXn—1.

Например, кодовая комбинация 101011001, имеющая младший разряд справа, может быть представлена мно­ гочленом вида

1Xs+ Ох7 + 1X6 + Ох5 + 1X4 + 1X3 + Ох2+

+ 0хі+1 х°= Xs + х с+ X4 + X3 + 1.

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

8*

115

Сложение таких многочленов ведется по модулю 2:

 

.•с8+ Xе+

х4+ х3+

1

0

X» _j_ х5+ X4

 

 

 

0

 

X 4 + X * +

1

 

 

 

Xs+

X5+ X4

 

При вычитании следует учитывать, что —1-х=1-х, т. е. сложение и вычитание ведутся одинаково.

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

Принцип кодирования заключается в составлении на базе информационного многочлена G(x) такого много­ члена F(x), который должен делиться на заранее вы­ бранный многочлен Р(х) степени г без остатка. Если на приемном конце в результате деления многочлена F(x) на многочлен Р(х) появится остаток R(x), значит, при­ нятая комбинация искажена.

В простейшем случае многочлен F(x) молено было бы получить путем перемножения многочленов G(x) и Р(х). Однако при таком методе в передаваемой кодовой ком­ бинации не будет четкого разделения информационных и контрольных разрядов. Поэтому кодовая комбинация

F(x) на передающем конце строится в

соответствии со

следующим выражением:

 

f(x ) = G(x)xr0 « W .

(3-5)

Для получения такой кодовой комбинации информа­ ционный многочлен G(x) умножают на хг и затем делят полученное выражение на Р(х). В результате деления получится частное iQ'(x) и остаток R(x) .

Таким образом,

G(x)xr= Q( x )P( x )+ R( x ),

(3-6)

Поскольку суммирование здесь ведется по модулю 2, то выралсение (3-6) можно переписать в виде

Q(x)P(x) = G{x)xr®R(x).

(3-7)

Из выражений (3-5) и (3-7) следует:

F(x) = G(х) x r® R (х) — Q(x)P {X).

(3-8)

116

Таким образом,

кодовый многочлен F (х) будет кра­

тен величине Р(х)

и при правильной передаче кодовой

комбинации он должен разделиться на многочлен Р(х) без остатка.

Рассмотрим конкретный пример.

Дан девятиразрядный обыкновенный код 101011001,

который может

быть

представлен в виде

многочлена

(I I хЛ — r.s -I- г 6 4 - гА 4- г 34-1

 

 

Требуется закодировать эп у комбинацию,

имея в ви-

ду что г = 4 и Р(х) = xk+x + 1

 

Умножим G(x) на х4:

 

G(x)x4 = x12H-x" + х8 + х7 + х4.

 

Разделим G(x)xi на Р(х):

 

X12+ х'°+ X8+ X"+ х:1

|х* + X+ 1________

®

 

Xs + Xе + X5 + X + 1

х12 + х9 + х8

 

 

 

X10 + X9 + X7 + X*

'

 

® X10 +

X7 + Xs

 

 

X9+ Xе + X4

© X9+ X6+ Xs

Xs + X*

®X5 + X2+ X

X4 + X2 + X

X“ + X + 1

остаток X2 + 1

Суммируя G(x)x4 с остатком R(x), получаем много­ член:

Р (х )= х 12+ х 10+ х8+ х7 + х4+ х2+ 1,

(3-9)

соответствующий двоичному числу 1010110010101, в ко­ тором четыре последних разряда являются контроль­

ными.

Под влиянием сбоев принятая кодовая комбинация ' может отличаться от переданной. Обозначим многочлен, соответствующий неправильно принятой кодовой комби­ нации, через Н(х). Его можно представить как сумму двух многочленов: многочлена F(x)-, соответствующего

117

правильно закодированному сообщению, и многочлена ошибок Е(х), имеющего ненулевой член в каждом оши­ бочном разряде:

H(x) = F(x)®E(x).

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

Однако в принципе возможен и такой случай, когда многочлен Н(х) разделится на Р(х) без остатка и кодо­ вая комбинация, принятая с ошибкой, будет рассматри­ ваться как правильная. Такой случай возможен только при условии деления многочлена ошибок Е(х) на Р(х) без остатка. Из сказанного следует, что обязательным условием обнаружения ошибки является невозможность деления многочлена ошибок Е(х) на Р(х) без остатка. Этого можно добиться путем правильного выбора числа членов и степени старшего разряда многочлена Р{х).

Так, для обнаружения одиночных ошибок многочлен Р(х) должен иметь хотя бы два члена. Объяснить ска­ занное можно следующим образом. Если в г-м разряде принятой кодовой комбинации появилась ошибка, то многочлен ошибок Е(х) будет иметь вид х'. Для того чтобы X1 не делился на Р(х) без остатка, многочлен Р(х) должен иметь минимум два члена. Обычно для об­ наружения одиночных ошибок используют многочлен Р{х), разный х+ 1.

Кроме одиночных ошибок циклический код с много­ членом Р (х )= х + 1 обнаруживает и любое нечетное чи­ сло ошибок. Для пояснения используем выражение (3-8).

При Р( х) =х+1 Е(х) = (х+ l)Q(x).

Пусть х = \ .

Тогда

(3-10)

F(l) = (l + l)'Q (x)=0.

Из выражения (3-10) следует, что деление кодового многочлена F (х) на многочлен х+1 возможно только при четном числе членов в Е(х). При нечетном числе членов в принятой 'кодовой комбинации полученный многочлен не разделится на х + \ без остатка, что будет свидетель­ ствовать о наличии нечетного числа ошибок.

Для обнаружения всех одиночных и двойных оши­ бок используют циклический код с многочленом Рі{х), именуемым иногда многочленом вида I. Под многочле­ ном Рі[х) понимают такой многочлен, на который делит-

118

ся без остатка двучлен Д + і при минимальном 'положи­ тельном І ^ п г + г.

Для доказательства того, что такой циклический код действительно обнаруживает все одиночные и двойные ошибки, рассмотрим многочлен ошибок Е ( х ) . Пусть при передаче кодовой комбинации возникли ошибки в і и j-н разрядах. Тогда Е ( х ) = х 1+ хк

Обязательным условием обнаружения ошибок явля­ ется невозможность деления полученного многочлена

ошибок Е ( х ) на Рі (х)

без остатка при любом і.

ошибок

При i < . j < . m + r ^ l

полученный многочлен

Е ( х ) —х Ң1 + х 1~і) на Рі { х) не делится и

все

двойные

ошибки будут обнаружены. Поскольку Рі (х)

имеет боль­

ше одного члена, то все одиночные ошибки также будут обнаружены.

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

Р ( х ) =

( х + \ ) Р і ( х ) при tn +

r ^ l .

 

 

 

 

Как было показано выше, первый сомножитель об­

наруживает одиночные и тройные ошибки,

а

второй —

двойные.

 

 

 

 

 

 

и макси­

В табл. 3-4 приведен вид многочлена Рі {х)

мальное

количество

разрядов,

в которых

циклический

код с

многочленом

Рі { х)

позволяет обнаруживать

все

одиночные и двойные ошибки.

Т а б л и ц а

3-4

 

 

 

 

 

 

 

 

 

 

 

Количество разрядов

 

 

 

Многочлен

контрольных

информационных

 

суммарное

 

 

 

 

Рг (*)

 

 

г

 

тп

 

п

 

X 2 +

X +

1

2

 

1

 

3

 

X 3 + X -(- 1

3

 

4 -

 

7

 

X “ +

X +

1

4

 

11

 

15

 

X 6 +

X 2 +

1

5

 

26

 

31

 

Х 6 +

Х

+

1

6

 

57

 

6 3

 

При применении циклического кода в качестве кор­ ректирующего для определения номера разряда, в кото­ ром знак принят е ошибкой, проводится анализ остатка, получившегося после деления принятой кодовой комби­ нации на многочлен Р(х).

Из (3-8) следует, что для формирования циклическо­ го кода необходимо многочлен G(x), соответствующий информационной кодовой комбинации, умножить на хт,

119

Соседние файлы в папке книги из ГПНТБ