Файл: Хетагуров, Я. А. Повышение надежности цифровых устройств методами избыточного кодирования.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