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

книги из ГПНТБ / Хетагуров, Я. А. Повышение надежности цифровых устройств методами избыточного кодирования

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

.На рис. 7-26 показана структурная схема программы исправления ошибок с помощью кода, описываемого ма­ трицей (7-22). Время, затрачиваемое на исправление ошибок в считанном массиве, является случайной вели­ чиной, так как фаза ошибки х, определяемая из (7-23), находится методом перебора. Математическое ожидание времени коррекции линейно растет с увеличением длины

п (п — количество

/гс-разрядных элементов а* в кодовом

слове)

считанного

массива.

В

заключение

заметим, что для коррекции вспышек

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

7-5. ПОВЫШЕНИЕ НАДЕЖНОСТИ ЗАПОМИНАЮЩИХ УСТРОЙСТВ НА МАГНИТНЫХ ЛЕНТАХ

Рассмотрим проблему обнаружения и поиска ошибок в ЗУ, в которых используется параллельно-последова­ тельная форма размещения информации. Типичным представителем такого класса ЗУ является ЗУ на маг­ нитных лентах.

Например, международным стандартом для ЗУ на лентах предусмотрен следующий формат размещения информации [Л. 53]:

используется девять дорожек, одна из которых слу­ жит для записи контрольного разряда поперечной чет­ ности;

число строк в зоне 18—2048; плотность записи 8 строк/мм (эта плотность приме­

няется при обмене между странами информацией, запи­ санной на ленте);

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

Введение контрольных разрядов для строк и столб­ цов (дорожек) массива соответствует применению про­ стейшего двумерного итеративного кода. Этот класс ко­ дов обладает удовлетворительными (§ 4-2) характеристи­ ками с позиций обнаружения ошибок, но для коррекции ошибок, группирующихся в пакеты вдоль дорожек маг­ нитной ленты, непригоден. Действительно, любой пакет

16—236

241-

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

Для коррекции пакетов ошибок вдоль любой из доро­ жек внутри зоны совместно с контролем строк использу­ ется циклический код для обнаружения номера дорожки с ошибками [Л. 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

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

полиномы

B*i(x),

получаем

следующую последовательность состояний

фильтра:

 

 

 

 

х-'В*,

 

 

 

 

х~1В*г-{-х-*В*0

 

 

 

х-*В*п_,

+ . . . + х-(» " 45* +

х~пВ\

по модулю

G(x).

 

п—1

 

 

 

 

*.

 

 

 

1=0

л - 1

Полином 2-** h 5*j является двойственным полиному

i =0

л - 1

2

jc~( f + l >5,-, поэтому из

(7-26)

следует:

г=о

 

 

 

 

S ;с*-п 5*г - = [Р (JC)G(JC)]*,

 

1=0

 

 

где

(л:) G ( x ) ] * — полином,

двойственный полиному

F(x)G(x).

 

 

 

Если полином G(x)

выбрать таким образом, что

G (*) = <?*(*). то

 

 

 

[ F ( ^ ) G ( j c ) ] * = = f * ( A : ) G ( x)

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

Другими словами, в этом случае

л—1

£х*-*В*г==0 по модулю G(x),

/=0

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

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

л—I

л—I

л—1

2 x* - n B* f +

xT -, -*S ^'-"6?1 =

xr-1-JjS ^ " e i по моду-

i=0

1=01

1=0

то G(x).

 

 

24?

Если продолжить работу основного фильтра в авто­ номном режиме, то его состояние совпадет с состоянием

вспомогательного фильтра (предполагаем, что

ошибки

возникли

только на одной дорожке), как только

хг~1~^=

= x ° = l .

Для этого

потребуется

выполнить

т) = г—1j

сдвигов. Тогда номер дорожки

с ошибками

равен:

 

 

/ = / • - 1 - T i .

 

(7-27)

В табл. 7-9 приведены порождающие

полиномы

G(x) — (\+x)G'(x),

где G'(x)—неприводимый

 

симме­

тричный полином степени г1, удовлетворяющие усло­

вию G(x)

=G*(x).

 

 

 

Т а б л и ц а 7-9

Количество

Полином G'(x)

Полином G(x)—(l +x)G'(x)

дорожек г

5

37

41

7

111

333

9

727

1171

11

3043

5145

13

10761

31023

15

71747

112051

17

361617

422221

19

1231145

3653253

21

7552557

10677661

23

22404051

67414173

25

120652605

361377217

27

614326143

1224572245

29

2273447351

6714551473

31

14271111643

24713332345

33

57410204175

160430614207

35

331706543633

552113644255

Рассмотренная методика коррекции ошибок вдоль одной дорожки магнитной ленты может быть реализова­ на корректирующем устройством (рис. 7-29). Устройство работает следующим образом. После окончания считыва­ ния массива в основном фильтре будет зафиксирован остаток от деления полинома ошибки, учитывающего фа­ зу и структуру ошибки, на полином G(x), а в вспомога­ тельном фильтре — остаток от деления полинома, соот­ ветствующего структуре ошибки, на полином G(x). Им­ пульс «конец массива» опрашивает схему фиксации не­ нулевого состояния основного фильтра. Если зафиксиро­ вано ненулевое состояние, то триггеры 77 и Т2 устанав-

249

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

Из ЗУ

Правильна

Считывание в прямом

направлении

Считывание в обратном направлении

Импульс„конец

массива"

Рис. 7-29. Структурная схема КУ.

нал с выхода схемы сравнения перебрасывает 77 и по­ ступление ГИ на вход счетчика прекращается. Одновре­ менно вырабатывается сигнал необходимости повторного считывания.

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

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

ция ошибок в зафиксированной дорожке

производится

по сигналам Неправильно, вырабатываемым

схемой кон-

250

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