Файл: Хетагуров, Я. А. Повышение надежности цифровых устройств методами избыточного кодирования.pdf

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

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

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

Добавлен: 19.10.2024

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

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

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

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

Для коррекции пакетов ошибок вдоль любой из доро­ жек внутри зоны совместно с контролем строк использу­ ется циклический код для обнаружения номера дорожки с ошибками [Л. 4, 54]. На рис. 7-27 показаны форматы данных на выходе и входе ЗУ на магнитных лентах IBM/360. В этих ЗУ используется два метода магнитной записи: 1) запись по. двум уровням с фазовой модуля­ цией; 2) запись по двум уровням с переключением пото-

Интерфейс ввода-вывода

Оперативная^

Контрольный байт продольного контроля на четность

Блок данных

 

 

 

- 4 Вайта

 

 

 

 

« е -

 

Рис. 7-27. Форматы

данных в

интерфейсе ввода—вывода и

на вхо­

де—выходе

ЗУ

на магнитных лентах, принятые в IBM/360.

а —при использовании

фазовой модуляции; б —при записи по двум

уровням

без возвращения

к нулю, девять

дорожек; а — при записи по двум

уровням

без возвращения к нулю, семь дорожек.

242

ка без возвращения к нулю. Фазовое кодирование доро­ же и требует ленты лучшего качества, но позволяет исправить большинство ошибок '[Л. 52]. Поэтому при пер­ вом методе используется только побайтовый контроль. При использовании второго метода на 9-дорожечной лен­ те применяется три вида проверок: 1) побайтовый (по­ строчный) контроль; 2) контроль с помощью циклическо­ го кода; 3) продольный контроль дорожек на четность. Для 7-дорожечных лент применяется два вида проверок: 1) побайтовая; 2) продольная, т. е. используется двумер­ ный итеративный код. Минимальная длина записывае­ мого блока данных при фазовой модуляции не ограни­ чена, а при записи без возвращения к нулю равна 18 байтам.

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

Т а б л и ц а 7-8

Номер

 

 

Номер дорожки

 

 

 

 

 

 

 

строки

0

1

2

 

г—I

 

 

п—1

bn-i.a

6 п - ы

fcn-1.2

°П-\,

Г - 1

л — 2

Ьп-гл

 

 

. •. 0п-г,

г - 1

0 Ьо.о Ьог Ьо. Г - 1

дорожек и строк массива. При движении ленты в прямом направлении первой записывается (считывается) строка с номером (п—1), затем (п—2) и т . д . Контрольные раз­ ряды циклического кода записываются в конце массива. Каждой 1-й строке массива поставим в соответствие по­ лином

Bi = Bi{x)

= b i 0 x 0 + b i i X + . . . + b i , r - . i x r - i .

16*

243


Будем считать, что рассматриваемый массив строк

принадлежит циклическому

коду, если

 

л—1

по модулю G(x).

 

£ лг<г '+ 1 г -=эО

(7-24)

(=0

 

 

Контрольные разряды циклического кода, вычисляе­ мые из условия (7-24), записываются в строках 0, 1, .. .

Массиву, содержащему произвольную комбинацию оши­ бок вдоль одной из дорожек с номером /, соответствует полином

л—1

 

 

£

x-W>Bi-\-xiE{x),

 

1=0

 

 

л—1

 

 

где E(x) = Yi х~(г+1)бг

полином, описывающий

ошибки

вдоль дорожки; е г = 1 , если i-я строка содержит

ошибоч­

ный двоичный символ, в противном случае ег = 0. Учиты­

вая

(7-24), получаем:

 

 

 

л—I

 

• /1—1

 

 

2

x-^+1Wi-\-x^E(x)^xiy£l

лГ«+ 1 г - по модулю G(x),

(=0

 

i =0

 

(7-25)

 

 

 

 

где

0 < j < г — 1.

 

 

 

 

Структура ошибки Е вдоль дорожки может быть оп­

ределена по нарушенным контрольным

соотношениям

для

строк. Другими

словами, полином

Е(х)

является

известным. Тогда номер дорожки /, содержащей

ошибки,

можно обнаружить следующим образом. Используется два линейных фильтра. С помощью первого фильтра, на­ зываемого основным, производится реализация (7-25), т. е. после считывания всего массива содержимое запо­

минающих ячеек

фильтра будет равно остатку

от деле-

 

п—1

 

 

ния

x ~ { i + 1 ) e i

на порождающий полином

G(x).

t=o

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

244


фильтра будет равно остатку от деления полинома

и—1

= £ Jc-«+ 1 >e< на G(x).

1=0

Если после считывания массива продолжить работу основного фильтра в автономном режиме (см. 3-9), то он проходит следующую последовательность состояний:

xj

л2- 1

x ~ ( i + 1 ) e i

— исходное

состояние;

 

i =0

 

 

 

V /=0

 

/

i =0

по модулю

 

 

 

 

п—1

 

\

л — 1

G(x).

1=0

 

/

i =0

 

Таким образом, после выполнения у" сдвигов в авто­ номном режиме основного фильтра его состояние долж­ но совпасть с состоянием вспомогательного фильтра. Фиксируя это совпадение, обнаруживаем номер / дорож­ ки, содержащей ошибки.

Исправление ошибок можно производить либо про­ граммным методом, либо аппаратным. В первом случае из ОЗУ, куда записан считанный с магнитной ленты мас­ сив, последовательно считываются строки 5,- массива, проверяется контрольное соотношение для каждой стро­ ки, и если оно не выполняется, то инвертируется у'-й символ в строке. Недостаток такого метода для совре­

менных ЦВМ, характеризующихся автономностью

от­

дельных

устройств,

очевиден — затраты времени

цен­

трального

процессора

на исправление ошибок. Поэтому

в некоторых случаях, например в ЗУ на магнитных лен­ тах IBM 2401, 2402, 2403 и 2404 (модели I , I I и I I I ) , исправление ошибок производится повторным считыва­ нием массива. Если обнаруживается ошибка в строке при повторном считывании, то символ, который находится в дорожке, ошибки в которой обнаружены при первом считывании, инвертируется. Если структура ошибки Е(х) вдоль дорожки у изменяется между первым и вторым считываниями, то коррекция будет выполнена правиль-

245


0

ml

0

ml

D

ml

D

ml

г

 

3

 

г

 

 

 

 

 

"(г

 

 

 

 

°i.o

Рис. 7-28. Схема фильтра для вычисления остатка от деления поли­ нома 2д;-(, '+1 1 (х) на полином G{x) = \+glx+ ... +grxT.

но. Но если ошибки «перейдут» на другую дорожку, то исправление произойдет неправильно. Поэтому должны быть предусмотрены меры для обнаружения подобной ситуации [например, проверкой соотношения (7-24) с по­ мощью основного фильтра, на входы которого поступают повторно считываемые строки с учетом коррекции].

Выбор порождающего полинома

G ( A : ) . Полином

G(x)

должен удовлетворять следующим

требованиям.

 

1. Степень г полинома

G(x)

= g o + g i X + . . .

+grxr

должна равняться количеству

дорожек на магнитной лен­

те. В этом случае обеспечивается наиболее простая реали­ зация выражения (7-24) с помощью фильтра, основу ко­ торого составляет показанная на рис. 3-4 схема. Полином Bi(x) = b 0 + b i X + . . . + br-lxr~i поступает на входы основ­ ного фильтра параллельным образом, как показано на рис. 7-28. Если исходное состояние фильтра было нуле­

вым, то при поступлении на его входы

последовательно­

сти полиномов Bn-i(x),

ВП-2(х),

Bi(x)

получаем

последовательность

состояний:

 

 

х - ^ (х) + . . . +

х - * W n _ 2

(х) +

по модулю G(x).

 

 

+x-*-VBn_t(x)

2.Контрольная строка циклического кода, которой

соответствует полином В0(х)

= b o , 0

+

ba,iX+...

+

b0,r-i*r-1,

должна содержать

всегда

нечетное

количество

единиц.

Из условия (7-24) следует:

 

 

 

 

 

я—1

 

 

 

 

 

 

£ х-«+1Щ

(х) = F(x)G

(х)

- f х - 1 5 0

(х),

 

i = i

 

 

 

 

 

 

246


где F(x)—произвольный

полином. Запишем

последнее

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

образом:

 

2' х-«+t> Bi (х) +

F(x)G (х) = x~lB0 (x).

(7-26)

Полиномы Bi(x) содержат нечетное количество не­ нулевых слагаемых, т. е. нечетные, множитель л ~ н е изменяет нечетности Bi(x).

 

 

п—\

 

Поэтому

сумма

X x~[i+1)Bi(x)

является нечетной,

 

 

; = i

 

если число

(я—-1)

нечетное, и четной, если число (п1)

четное. Этот результат следует из очевидных утвержде­

ний:

 

 

 

 

 

 

 

 

 

сумма двух четных полиномов равна четному поли­

ному;

 

 

 

 

 

 

 

 

 

сумма четного и нечетного полиномов равна нечетно­

му

полиному;

 

 

 

 

 

 

 

 

сумма двух нечетных полиномов равна четному поли­

ному.

 

 

 

 

 

 

 

 

 

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

если на

ленту

всегда

записывать

массивы

с четным

количеством строк я, то У,

x~ii+1)Bi(x)

 

 

 

 

 

 

 

; = i

 

 

будет нечетной и

для сохранения нечетности

полинома

х~1В0(х)

полином

F(x)G(x)

 

должен

быть четным. Для

произвольного

F(x)

это условие будет всегда выполнять­

ся,

если

G (х)

= (1 +х) G'(x)

 

[можно

доказать, что если

G(x)

можно

представить

в

виде

произведения

(1 +

'+x)G'(x),

то

G(x)

всегда

содержит

четное

количество

ненулевых членов].

 

 

 

 

 

 

 

3. В

большинстве современных ЗУ на лентах

преду­

сматривается возможность считывания массива не только в'прямом направлении, но и обратном. Поэтому полином G(x) должен быть выбран таким образом, чтобы можно было при чтении в обратном направлении обнаружить номер дорожки /, содержащей ошибки. Полином, двой­

ственный

полиному

Вг(х), обозначим

B*i(x),

т. е.

B*i

= B*{(x)

=bitr-ix°+bi,r-zx+..

 

. - f - &, - ,o* r - 1 .

При считывании

массива в обратном

направлении

с перекоммутацией

входов основного

фильтра таким об-

247