УДК 681.3.07
О.П. Малофей, Ю.О. Щелкунова
подход к созданию структурного кода для записи и считывания данных в запоминающих устройствах инфотелекоммуникационных систем
O.P. Malofey, Yu.O. Shchelkunova
approach to the creation of a structural code to write and include the deployment of data in a storage device infotelecommunication systems
Предложен подход к созданию структурного кода, на основе которого разработан способ записи и считывания данных в запоминающем устройстве, сокращающий в полтора раза объем задействованной памяти и, следовательно, улучшающий в соответствующее число раз ее надежностные, массо-габаритные и энергоемкостные показатели. Синтезированный код гарантированно исправляет модульные ошибки и применим для контроля работоспособности элементов памяти. Представлены также отказоустойчивые структуры памяти для 8-, 16- и 32-разрядных форматов представления данных.
коды ИСПРАВЛЕНИЯ ОШИБОК. УСТРОЙСТВО ВВОДА/ВЫВОДА. КОНЕЧНЫЕ ПОЛЯ.
The paper presents way for generating of a structural code, the basis for treating of the method for recording and reading of data in the storage, which can decrease the size of memory in one and a half time and, consequently, increase its indexes of reliability, dimension and capacity of the energy in few times. The synthesis code securely corrects modular errors and can be applied for the control of workability of the units of memory. Also we can see here fault-tolerant structures of the memory for 8-, 16- and 32-positional formats of the data notation.
ERROR CORRECTION CODES. DEVICE INPUT / OUTPUT. FINITE FIELDS.
Рост объема массивов данных и интеграции элементной базы с одной стороны и уменьшение времени обращения к запоминающему устройству (ЗУ) с другой — накладывают жесткие рамки на вероятностные характеристики, тракта «записи — хранение — воспроизведение» информации в автоматизированной системе управления (АСУ). При этом очевидно, что для ЗУ имеют место как случайные неповторяющиеся сбои (ошибки), так и систематические ошибки различной кратности. Причем интенсивность сбоев интегральных схем (ИС) ЗУ на один—два порядка выше чем интенсивность отказов [1]. Борьба с данными ошибками наиболее сложна и разделяется на методы аппаратного и программного
контроля. Из всего многообразия методов борьбы с ошибками в ЗУ для АСУ, не допускающей факта наличия катастрофической ошибки, широкое применение нашел метод мажоритарной обработки хранимой информации.
Очевидно, что при известной избыточности данного метода он полностью оправдывает себя с точки зрения исправления ошибок [2], однако его применение в ЗУ АСУ связано со следующими трудностями: во-первых, при N = 2т — 1-кратном повторении сообщения и т >2 сложность второй решающей схемы, реализующей мажоритарный метод повышения достоверности (МПД), возрастает [3];
во-вторых, мажоритарный метод аппа-
ратурного резервирования абсолютно неприемлем для контроля технического состояния ЗУ, т. к. при исправлении ошибки невозможно определить место ее нахождения.
Решение данной проблемы возможно, если использовать подход создания структурного кода, удовлетворяющего следующим условиям:
код должен надежно защищать каждый байт информации (машинного слова) от сбоев и групповых ошибок длины до ] = 8;
должен иметь избыточность, существенно меньшую, чем троирование. Процедуры кодирования и декодирования не должны требовать дополнительного тактирования и вносить задержку во временную диаграмму «запись — считывание»;
код должен быть приемлем для контроля технического состояния зУ.
Алгоритм кодирования
Вход: машинное слово, состоящее из двух байтов Ж = А| В , где А = (а1, а2, а3, ...,
а8), В = (Ь1, Ь2, Ь3, Ь8).
В ы х о д : слово памяти из четырех байтов, являющееся кодовым вектором кода V
V = Щф.
Метод: для байтов входного машинного слова А1В и матрицы Р размера 8 х 8 вида
: I
р = у :.....
: х
где I — единичная матрица размера 7 х 7 ; У — вектор-столбец из единиц; X — вектор-строка из нулей. Определим проверочные байты С и Б как
С = А © В, Б = А © ВР, (1)
где ВР = (Ь0, ¿1, ..., ¿7), Ь0 = £Ь шса2.
I=1
Алгоритм декодирования
В х о д : слово памяти из четырех байтов, возможно, содержащее ошибки:
V * = А * |В * \С' \Б'.
В ы х о д : машинное слово из двух байтов с исправленными ошибками Ж = А| В или
сигнал отказа от декодирования q = 1.
Метод: полагая q = 0 (т. е. процедура декодирования выполняется), вычислим синдром ошибки 5 = 511 52, где
51 = А * © В * © С52 = А * © В 'Р © Б *(2)
рассмотрим возможные значения синдромов при возникновении ошибок в различных байтах, а также докажем, что предложенный алгоритм удовлетворяет исходному условию 2, т. е. код исправляет любой одиночный модуль ошибки длиной ] = 8 в слове памяти.
Доказательство: положим
А * = А © еа, В * = В © еь, С * = С © ес,
Б * = Б © еа,
где ех — модуль ошибки в байте X, возможно, имеющей место.
Тогда из (1) и (2) следует:
51 = еа © еъ © ес, 52 = еа © еьР © е^. (3)
Анализ значения синдромов 51 и 52 дает следующие ситуации:
1. Если е = е, = е = е, = 0, то 5 = 5 = 0,
а Ь с а 1 12'
что соответствует отсутствию ошибок.
2. Если е = е, = е = 0, а е, ф 0, то 5, = 0,
а Ь с 1 а 1 1 '
52 ф 0, что соответствует ошибке в байте Б. Исправление имеющейся ошибки ел имеет вид:
Б = Б* © 5„.
(4)
3. Если е = е, = е, = 0, а е ф 0, то 5, ф 0,
а Ь а с 1
52 = 0, что соответствует ошибке в байте С. Исправление имеющейся ошибки ес имеет вид:
С = С* © 5 .
(5)
4. Если е, = е = е. = 0, а е, ф 0, то
Ь с а Ь
51 = 52 ф 0, что соответствует ошибке в байте А. Исправление имеющейся ошибки еа имеет вид:
А = А * © 51. (6)
5. Если е = е = е, = 0, а е, ф 0, то
а с а Ь
51 = еЬ, 52 = еЬР, то есть 51Р = 52 ф 0, что соответствует ошибке в байте В. Исправление имеющейся ошибки еЬ имеет вид:
В = В * © 51. (7)
6. Все остальные случаи ведут к отказу
4
от декодирования (# > 1), т. е. вызваны отказом более одного корпуса микросхем памяти ЗУ, при этом групповыми ошибками поражены два и более байта слова памяти.
Таким образом, случаи 1...5 охватывают все возможные виды ошибок в одном модуле слова памяти. Для завершения доказательства осталось лишь показать, что при одиночном модуле ошибок ситуации из пунктов 4 и 5 не могут иметь место одновременно, т. е. нужно показать, что X = ХР тогда и только тогда, когда X = 0.
Пусть X = (х1, х2, х3, ..., х8), тогда
8
ХР = (х0, х1, х2, ..., х7), где х0 = £х, шоё2.
I=1
Если (х1, х2, х3, ..., х8) = (х0, х1, х2, ..., х7), то
-у* ^^ -у* ^^ -у* ^^ ^^ -у* ^^ -у*
0 1 2 7 8
Это возможно лишь при х. = 0, так как при х. =1 сумма х0 = 0, где , = 1,8.
Определим избыточность полученного кода как отношение информационных символов к сумме информационных и проверочных:
Е = , , А + В! , , = 16 = 0,5,
\А\ + |В| + || + 1^1 32
где А = |В| = |С| = — длина информационного байта.
Рассмотрим теперь предложенный код и процедуру декодирования с точки зрения дополнительных условий, заданных вначале.
1. Код защиты двухбайтового слова имеет избыточность 16 бит (0,5) и исправляет модуль ошибки длины 8, согласно [3] такой код удовлетворяет условию минимальной избыточности. Проведем сравнение известного и предложенного алгоритмов записи по величине объема задействованной памяти. Для выполнения трижды дублированной записи информационного слова размера п двоичных символов известный способ требовал наличия памяти объемом П1= 3п. Предложенный способ имеет избыточность 0,5, т. е. для записи информационного слова той же длины потребуется объем памяти П2 = 2п, при этом сохранится возможность мажоритарной обработки информации. Сокращение ресурса задействованной памяти составляет
2. как было доказано выше, декодер исправляет сбои и ошибки в каждом машинном слове, независимо от их характера и причин возникновения [4].
3. схема кодера и декодера строится из стандартных логических элементов без памяти и поэтому не нуждается в тактировании, а вносимая ими задержка не превышает время переключения данных элементов.
4. оценка частоты возникновения ненулевых синдромов S1 и Б2 позволяет сделать вывод о случайности или систематичности возникновения ошибок, что применимо для контроля технического состояния элементов (модулей) зУ.
следовательно, синтезированный код удовлетворяет заданным нами условиям и применим для исправления случайных и систематических групповых ошибок, возникающих в зУ модульного типа, а также для технического контроля элементов данных зУ в резервированных системах памяти [5], что позволяет достичь сокращения задействованного объема зУ в 1,5 раза и во столько же раз улучшить его надежностные и массогабаритные показатели.
Структурная схема реализации предложенного алгоритма приведена на рисунке.
рассмотренная отказоустойчивая структура для 8-разрядных ЭВМ строится из модулей памяти вида I х КК . Однако постоянный рост скорости обработки массивов информации требует ее дальнейшего распараллеливания, т. е. применения 16-и 32-разрядных шин и соответствующего формата представления данных. Выполним математическое описание предложенного способа и построим отказоустойчивую структуру памяти для 16- и 32-разрядных ЭВМ из модулей вида 4 х КК [6].
Отказоустойчивую структуру будем представлять четверкой неотрицательных чисел (V, N т, с1), где V — разрядность модуля памяти; N — число модулей памяти, покрывающее слово избыточной структуры; т — число модулей, покрывающее машинное слово; с1 — допустимое число отказов модулей. В этих обозначениях (1, 16, 16, 0)
и (1, 32, 16, 1) представляют безубыточную структуру и структуру с кодом Хэмминга из модулей вида I х КК , а четверка (V, 3т, т, 1) — троированную структуру из модулей вида V х КК. Модульный код для отказоустойчивой структуры памяти должен также удовлетворять четырем условиям, указанным ранее.
Введем обозначения: а — машинное слово, вектор над ОБ [3]; |а| — длина вектора а; м?^а) — вес Хэмминга вектора а; а = |а0| ах\... |ат-1| — представление вектора а в виде последовательности подблоков длины V; (а)(г) — циклический сдвиг вектора а на I разрядов вправо; а> — вектор длины |а| -1> полученный из вектора а удалением крайней правой координаты.
Определим код V как множество векторов вида:
(8)
V = а0 а1
где а. — подблоки машинного слова; с. — проверочные подблоки
т-1 (т-1 V
с0 =£а,., с = 1; (а,.|0\(1)) 1 . (9) ,=0 V ,'=0 у
Соотношения (8) и (9) задают процедуру кодирования в систематической форме для кода V с параметрами (V (т+2), vm). При считывании информации из памяти на вход декодера поступает слово
V © е = |а0 © е0| а1 © е^ ... |ат-1 © О С0 © е^С1 © ет+11 ,
(10)
где е — вектор ошибки, который в наших
ВЫХОД«' в-0- -0- Л
Способ записи и считывания информации с исправлением модульных ошибок
4
предположениях содержит ровно один ненулевой подблок е.. По (10) вычисляется вектор синдрома ошибки:
$ = ¿0 ^
= с0 © ет © £ (а,. © е.) = ,=0
т-1
= ет ©£ е
. (11)
т-1
¿1 = ¿1 © ет+1 ©I £ (| а © е. |0|)( О
Ч»=0
= ет+1 ©|£ (| е, |0|)(0 Из (11) следует, что
'^т, если ^т * 0
0, если вт+1 * 0
¿0 =
е(., если е(. * 0, 0 < 1 < т
¿1 =
0, если ет * 0
ет+1,если ет+1 * 0
(13)
((е11 0 |)(/))>, если е1 * 0,0 < I < т
Таким образом, если ¿0 или Б1 равны нулю, то информационные подблоки слова V не содержат ошибок.
При ¿0, ¿1 * 0, ¿0 дает значение модуля ошибки, а ¿1 позволяет найти номер 1 подблока, в котором эта ошибка произошла. Число 1 может быть определено перебором, как решение уравнения:
¿1 = ((|¿0|0|)(/ ))>, I = 0, т - 1. (14)
Рассмотрим условия, при которых (14) имеет единственное решение.
Теорема. Если V + 1 простое число и т < V + 1, то уравнение (14) имеет единственное решение, отличное от нулевого.
Доказательство.
1. Для того чтобы уравнение х = (х)( 1) имело решение, необходимо, чтобы х был периодической последовательностью с длиной периода, равной общему делителю чисел V + 1 и /, но при простом V + 1 имеется только тривиальный делитель 1. Имеются две последовательности, состоящие из последовательностей периода 1:
х = (0 0 ... 0) — соответствует отсутствию ошибок;
х = (1 1 ... 1) — такой вид вектора не допускается по построению (см. (14)).
2. — (х)( /)) > 2, так как веса х и (х)( 1) одинаковые.
3. wt(x* — ((х)( /))*) > 1. Соотношения 1, 2 и 3 выполняются при 0 < 1 < V, что и требовалось доказать.
Для 16-разрядной ЭВМ и модулей памяти вида 4 х КК код V непосредственно приводит к структуре (4, 6, 4, 1) [6].
Для 32-разрядной ЭВМ непосредственное использование кода V невозможно, т. к. т = 8, что больше V + 1.
Определим код Ж как множество, состоящее из векторов
(12) где
— | | а^11... | а^71 11 с21,
7 / 3
с0 =£а; с1 = |£(|а |°|)(01 ; 0|)(/)
(15)
С2 = | £ (|а4+,-
Вектор синдрома ошибки Б = ,
при этом
Б = |е8 Ю 0|, если е8 * 0; £ = |0 |е9|0|, если е9 * 0; Б = |0|0| е10|, если е10 * 0; ^ = |е..|((|е..|0|)(/))> К, (16)
если е1 * 0; 0 < / < 3; Б = |е(| 0|((| е(| 0|)(/))>, если е1 * 0;4 < / < 7.
Таким образом, для 32-разрядных ЭВМ и модулей памяти вида 4 х КК код Ж приводит к структуре (4, 11, 8, 1) [6].
Осталось лишь показать, что предложенный способ допускает реализацию мажоритарной обработки информации при декодировании, для чего выполним с учетом (1) следующие действия:
А = Д;
с © В = А © В © В = А,; Л © ВР = А © ВР © ВР = А,
I=0
B = А;
C © A = A © B © A = B2; D © A = A © BP © A = BP.
(18)
То есть по значениям декодируемых слов кодового вектора Ж = А|В|С|£ каждое из исходных слов А и В может быть трижды восстановлено независимыми путями, после чего возможна их мажоритарная обработка по методу «два из трех».
В статье предложен подход к созданию структурного кода, который гарантированно исправляет модульные ошибки и может применяться для контроля работоспособности памяти.
Разработан способ записи и считывания данных в запоминающем устройстве.
Представлены отказоустойчивые структуры памяти для 8-, 16- и 32-разрядных форматов представления данных.
СПИСОК ЛИТЕРАТУРЫ
1. Бородин, Г.А. Методы расчета надежности запоминающих устройств [Текст] / Г.А. Бородин, В.А. Иванов // Зарубежная радиоэлектроника. -1989. -№ 2. -С. 92-111 с.
2. Саганович, Ю.Л. Кодовая защита оперативной памяти ЭВМ от ошибок [Текст] / Ю.Л. Саганович // Автоматика и телемеханика. -1991. -№ 5. -С. 3-45.
3. Бояринов, Н.М. Помехоустойчивое кодирование числовой информации [Текст] / Н.М. Бояринов. -М.: Наука, 1983.
4. Малофей, О.П. Алгоритм записи и считы-
вания информации в мажоритарно резервированной памяти [Текст] / О.П. Малофей // Системи обробки шформацй. — Харьков. —2006. —Bin. 8 (57). - С. 3-6.
5. Баринов, В.В. Сверхбольшие интегральные микросхемы оперативных запоминающих устройств [Текст] / В.В. Баринов, А.С. Березин, В.Д. Вернер [и др.]. -М.: Радио и связь, 1991.
6. Камыш, А.В. Отказоустойчивая структура памяти для 8-, 16- и 32-разрядных ЭВМ [Текст] / A.B. Камыш, А.В. Ткаченко // Сб. Тезисов III НТК КВВКИУ РВ 19-20.09.1995. -Краснодар, 1996.
REFERENCES
1. Borodin G.A., Ivanov V.A. Metody rascheta nadezhnosti zapominaiushchikh ustroistv / Zarubezhnaia radioelektronika. — № 2. — 1989. - 92-111 s. (rus)
2. Saganovich Iu.L. Kodovaia zashchita operativnoi pamiati EVM ot oshibok / Avtomatika i telemekhanika. - № 5. - 1991. -S. 3-45. (rus)
3. Boiarinov N.M. Pomekhoustoichivoe kodirovanie chislovoi informatsii. - Moscow: Nauka, 1983. (rus)
4. Malofei O.P. Algoritm zapisi i schityvaniia
informatsii v mazhoritarno rezervirovannoi pamiati / Sistemi obrobki informatsii. - Khar'kov, 2006.
- Vipusk 8(57). - S. 3-6.
5. Barinov V.V., Berezin A.S., Verner V.D. i dr. Sverkhbol'shie integral'nye mikroskhemy operativnykh zapominaiushchikh ustroistv.
- Moscow: Radio i sviaz', 1991. (rus)
6. Kamysh A.V., Tkachenko A.V. Otkazo-ustoichivaia struktura pamiati dlia 8-, 16- i 32-razriadnykh EVM / Sb. Tezisov III NTK KVVKIU RV 19-20.09.1995. - Krasnodar, 1996. (rus)
МАЛОФЕЙ Олег Павлович — профессор кафедры высшей алгебры и геометрии Института математики и естественных наук Северо-Кавказского федерального университета, кандидат технических наук. 355000, Россия, г. Ставрополь, пр. Кулакова, д. 2.
MALOFEY, Oleg P. North-Caucasian Federal University. 355000, prosp. Kulakova 2, Stavropol, Russia.
ЩЕЛКУНОВА Юлия Олеговна — доцент кафедры прикладной математики и информатики Ставропольского государственного аграрного университета, кандидат технических наук. 355000, Россия, г. Ставрополь, ул. Шеболдаева, д. 11а.
SHCHELKUNOVA, Yulia O. Stavropol State Agrarian University. 355000, Sheboldaeva Str. 11a, Stavropol, Russia.
© Санкт-Петербургский государственный политехнический университет, 2013