книги из ГПНТБ / Хетагуров, Я. А. Повышение надежности цифровых устройств методами избыточного кодирования
.pdfдва порождающих модуля Ау и А2. Для выбранных зна чений Ai и А2 в табл. 5-2 находят порядки ei и е2 и вы числяют значение k в соответствии с теоремой 5-3. Иног да может оказаться полезной обратная последователь ность действий: исходя из требуемого значения /г подби рают значения е( и е2, для которых находят возможные значения модулей Ау и А2.
Например, |
если е,=5 , е 2 = 6 , |
то система (5-12) не имеет |
решения, |
|||
так как е( =5—нечетное |
число, и & ^ { 5 , 6] = 30 разрядов. Из табл. 5-2 |
|||||
определяем значения порождающих модулей |
А\=3\, |
Л 2 = 9 |
. Для за |
|||
писи вычетов |
по этим |
модулям |
требуется |
/•] = 5 |
и г 2 = 4 |
разрядов |
соответственно. |
Таким |
образом, |
параметры |
неукороченного кода, |
||
порождаемого |
модулями |
Л i = 3 1 |
и Л 2 = 9 , таковы: £ =30, « = 3 0 + 5 + |
+4 = 3 9 разрядов.
Втабл. 5-6 представлены коды с максимальным зна чением k при заданном значении количества контроль
ных разрядов |
r = r i + r2 , |
найденные |
методом |
перебора |
|
|
|
Т а б л и ц а 5-6 |
|
Количество |
Количество |
Значение модулей |
Значение |
|
|
|
|||
контрольных |
информацион |
|
|
отношения |
разрядов |
ных разрядов |
|
Ai |
k |
г=г,+г7=п—k |
k |
|
п |
|
|
|
|
|
|
6 |
12 • |
3 |
13 |
0,67 |
|
|
5 |
7 |
|
7 |
30 |
7 |
11 |
0,81 |
8 |
84 |
7 |
29 |
0,91 |
9 |
174 |
7 |
59 |
0,95 |
10 |
300 |
11 |
61 |
0,97 |
Ю. Г. Дадаевым [Л. 13]. Если требуемое значение k на ходится в пределах 6 0 ^ £ > 3 1 , то практически более це лесообразно использовать укороченный (68, 60)-код, по рождаемый Ai=l\, Л г = 1 3 , так как он проще реализует ся, чем укороченный (92, 84)-код.
5-3. СХЕМЫ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ АРИФМЕТИЧЕСКИХ КОДОВ
Реализация арифметических кодов естественным об разом может производиться на ЦВМ по специальным программам, например, при обмене информацией между машинами. Однако в ряде случаев может потребоваться 140
аппаратурная реализация кода методами, которые рас смотрены в данном параграфе.
Структура миоготактных кодирующих и декодирую
щих устройств для арифметических кодов |
аналогична |
|
структуре этих устройств для циклических |
кодов (§ 3-3) |
|
[Л. 42]. Отличие заключается в том, что вместо |
суммато |
|
ров но модулю 2 используются функциональные |
(комби |
национные) сумматоры с запоминанием переноса. Пусть двоичное представление модуля А имеет вид:
A = a o + a i - 2 + . . . + ar-2r.
Тогда для кодирования, т. е. умножения числа N на модуль А, можно использовать схемы, показанные на рис. 5-2. Разряды множимого N поступают иа вход схемы
Рис. 5-2. Две эквивалентные |
многотактные схемы последова |
|||||
тельного умножения произвольного двоичного числа N на чис |
||||||
|
|
ло A=ao+at |
-2+ |
... +ат • 2Т. |
|
|
последовательно, начиная |
с младших. На выходе после |
|||||
довательно получаем |
разряды |
произведения, |
начиная |
|||
с младших. |
|
|
|
|
|
|
Рассмотрим методику синтеза схемы деления двоич |
||||||
ного |
числа |
L = ( / n _ i , |
l N - 2 , |
lu /о) на число |
А=(аг, |
|
a r - i , |
..., а0), |
представляя эти числа в полиноминальной |
||||
форме |
|
|
|
|
|
|
|
L(X) |
= / o + / i X + |
. . . + l n |
- z X n - 2 + l n - l X n - U , |
|
|
|
|
А(х) = a u + a i X + . . . +а т х г . |
|
141
Будем предполагать, что число А делит число L , т. е.
L(x) =A(x)<N(x) =
= a0N(x) |
+di\'N (x)+ |
... |
... + |
агхгЫ(х,), |
|
где N(x) —частное. Так как арифметические коды по рождаются модулями А, ко торые являются нечетными числами, то ао=1 и из по следнего равенства полу чаем:
N(x) |
=zL(x) |
— (cti + a2x + ... |
|
... +arxr-t)xN(x). |
(5-17) |
||
Схема |
многотактного |
||
устройства |
деления |
на чис |
|
ло А, |
реализующего |
выра |
жение (5-17), показана на рис. 5-3. Оператору х* соот ветствует задержка на i так тов, при этом вес двоичных символов на входе и выходе
устройства в /-м |
такте ра |
|
вен 2'. Операция |
вычитания |
|
в устройстве деления |
выпол |
|
няется сложением |
умень |
шаемого с дополнительным кодом вычитаемого. Получе ние дополнительного кода осуществляется с помощью схемы, обведенной пункти ром на рис. 5-3. Входная пе ременная у и выходная пе ременная z данной схемы связаны соотношением
z=y + 2z,
где с помощью коэффициен
та 2 учитывается з а д е р ж к а
на один такт в цепи обратной связи. Из последнего ра венства следует, что
z=—y.
Рассматриваемая схема деления имеет два устойчи вых эквивалентных состояния: 1) содержимое всех за
поминающих ячеек D (в том числе запоминающих |
ячеек |
в цепи обратной связи сумматоров) равно 0; 2) |
содер |
жимое нулевой запоминающей ячейки и ячейки в цепи |
|
обратной связи нулевого сумматора (с выхода л) |
равно |
1, а содержимое остальных ячеек D равно 0. Эти |
состоя |
ния являются устойчивыми потому, что в автономном режиме (на вход устройства ничего -не поступает) -подача произвольного количества тактирующих сигналов не при водит к переходу устройства в какое-либо другое состоя ние. Такие устойчивые состояния устройства ниже будем называть нулевыми.
Делимое L=(ln-t, • •., к, к) поступает на вход устрой ства деления последовательно, начиная с младших раз рядов. Устройство вычисляет разряды частного также последовательно, начиная с младших разрядов. Если де лимое L делится без остатка на число А, то после п так тов работы устройство будет находиться в одном из ну левых состояний.
Например, модуль Л = 19 порождает арифметический код длиной /1=9 двоичных разрядов (см. табл. 5-3). Число А в двоичной системе счисления имеет вид:
Л = ( а 4 , а3 , |
«2, fli, а0 ) |
= 10011. |
Схема устройства деления |
на модуль |
Л = 19 показана на рис. 5-4. |
Непосредственным вычислением последовательных состояний устрой
ства можно убедиться, |
что при |
поступлении |
на |
вход числа L = 5 7 = |
|||||
= 111001 |
(младшими |
разрядами |
вперед) |
на |
выходе |
будет |
получен |
||
к о д . . . 0 0 0 1 1 , т. е. 3, |
и |
на восьмом такте |
устройство |
переходит в ну |
|||||
левое состояние. |
|
|
|
|
|
|
|
|
|
Если |
входное |
/г-разрядное слово содержит |
ошибку, |
||||||
т. е. не делится на |
модуль А, то устройство деления не |
||||||||
вернется в нулевое состояние. На основании |
анализа |
||||||||
последовательных |
|
состояний устройства |
можно |
испра^ |
вить обнаруженную ошибку, если, конечно, возникшая ошибка относится к множеству ошибок, исправляемых с помощью рассматриваемого кода.
Прежде чем рассматривать более общий случай пред положим, что ошибка Е=1, т. е. ошибка возникла в млад-
143
D
Выход
ШШпс
Рис. 5-4. Схема деления на порождающий модуль Л = 19.
шем разряде. Пусть е — порядок класса вычетов 2 по нечетному модулю А, тогда имеет место равенство
2е— \=АС, |
(5-18) |
где С — целое нечетное число; отсюда 1/Л = С/(2е —1).
Правую часть данного равенства можно рассматри вать как сумму бесконечной убывающей геометрической прогрессии, первый член которой равен С/2е, а знамена тель прогрессии 1/2е, т. е.
1/Д = С / 2 в + С / 2 2 е + С / 2 3 в + .... |
(5-19) |
Из правой части 'последнего равенства следует из вестный из теории чисел результат, что двоичное пред ставление частного 1/Л, где Л — нечетное число, имеет вид бесконечной периодической последовательности с пе риодом, равным порядку класса вычетов 2 по модулю А.
Первые е двоичные разряды после запятой двоично го представления частного 1/Л называются основным пе риодом. Этот период равен:
|
С = (2в~ |
1)/Л = |
00^Л) c._r _1 ce _r _,...c1 c0 , |
(5-20) |
|
|
г |
нулей |
|
где |
Ci — значения цифр |
двоичного представления |
числа |
|
С; |
г — степень |
полинома |
Л(х), соответствующего |
моду |
лю |
А. |
|
|
|
|
Индикатором начала периода является последователь |
ность из г нулей, так как предположение о наличии г нулей подряд в двоичном представлении числа С = = (ce _r _i, .. . , сь с0 ) противоречит условию, что е равно порядку 2.
144
Если е — нечешие число, то рассмотренным исчерпы ваются характеристики структуры каждого периода дво ичного .представления числа 1/Л.
Например, |
пусть /4=23, из табл. 5-2 |
находим, |
что е = 1 1 . Тогда |
С = ( 2 ° — 1)/Л=2047/23=89=101Ю01 и из выражения |
(5-19) получаем, |
||
что |
|
|
|
1/23 = |
1/10111 = 0,00001011001 |
00001011001 ... |
основной период
Непосредственным делением можно проверить полученный ре зультат.
Если же модуль А — простое нечетное число, а е — четное число, то основной период имеет дополнительные свойства, которые заключаются в следующем. Запишем выражение (5-18) в виде
С=(2 е — 1)/Л
или |
|
|
|
|
|
|
|
С = (2е/2—1) (2*/2 +1)/Л. |
(5-21) |
||
В рассматриваемом случае (см. доказательство тео |
|||||
ремы 5-2) 2 е / 2 = — 1 по модулю Л, поэтому |
|
||||
|
|
(2е /2 +1)/Л = |
#, |
|
|
где Я —целое |
число. Выражение |
(5-21) |
запишем сле |
||
дующим |
образом: |
|
|
|
|
С = (2е /2 —1)Я или С = 2е /2 (Я—1) + (2е /2 —Я). |
|||||
Последнее |
выражение |
запишем в виде |
|
||
|
|
C=2elzF+F, |
|
(5-22) |
|
где |
|
_ |
|
|
|
F = H-l |
= |
-\,F |
= V*-H |
= |
tf*-??£-. |
Полученное выражение (5-22) описывает структуру |
|||||
основного |
периода, если 2 е / 2 = — 1 |
по модулю Л. В дан |
ном случае основной период состоит из двух частей дли ной е/2 разрядов каждая. Первая часть, которой соот ветствует число F, занимает е/2 старших разрядов пе риода (потому что перед числом F стоит коэффициент 2е / 2 ). Вторая часть, которой соответствует число F, зани мает е/2 младших разрядов периода; причем двоичное представление числа F равно обратному коду двоичного
10—236 |
145 |
представления числа Р. Действительно,
F+F= (Я—1) + |
= 2 ^ — 1 . |
Поэтому для вычисления основного периода доста точно вычислить только одно число Е, разрядность дво ичного представления которого равна (е/2)—г. Таким образом, если е — четное число, то основной период ра вен:
С =2^5^/2-^-1 !е,2-г-2 |
- fo П - » ] Je,2-r-lfel2r-r-4 |
- |
г нулей |
г единиц |
|
(5-23) где fi — значения цифр двоичного представления числа
а /,• — .инверсное значение цифры /».
Например, пусть А = 19, из табл. 5-2 находим, что е=18 . Тогда F=(29 +l)/19—1=513/19—1=26=11010 и из выражений (5-23) и (5-19) получаем, что
|
|
1/А = 1,19= 1/10011 = |
|
|
= 0,000011010 |
111100101 |
000011010 111100101... |
|
основной период |
|
|
|
Непосредственным |
делением |
можно проверить полученный ре |
зультат. |
|
|
|
|
При рассмотрении вопроса вычисления Е\А, где ошиб |
||
ка |
£ = ± 1 , с помощью устройства деления, показанного |
||
на |
рис. 5-3, необходимо иметь в азиду, что на его выхо |
||
де, в принципе, не могут |
быть воспроизведены числа, |
||
величина которых |
меньше |
1. Это объясняется тем, что |
первый выходной символ имеет вес 2°=1, второй — 2' = 2, третий 2 2 =4 и т. д. Поэтому, если £ = ± 1 и с момента поступления этого числа устройство деления проработа ло ie тактов, £ =1, 2, 3 . . . , то следует считать, что на вход
устройства поступило |
число |
|
|
1(2" |
— 1), |
если Е = — 1. |
1 ; |
Действительно, так как для изображения отрицатель ных чисел в устройстве используется дополнительный код, из (5-24) получаем:
Е* • (00...01, если Е=1; 111....11, если Е = - 1.
146
_ Выражение (5-24) можно представить следующим об разом:
£ * _ / - ( 2 е - |
1)(2( г '-1 ) и + |
2 ^ " - 2 ) р + . . . + 2 е + 1 ) , е с л и £ = 1 |
; |
|
||
~~((2е — l ) ( 2 ( i - 1 ) c + |
2^'-2 )'; 4-...-|-2e +l), |
е с л и & = — |
1 |
, |
||
или, учитывая |
(5-18) |
и |
необходимость |
использования |
|
дополнительного кода для изображения отрицательных чисел, после элементарных преобразований получаем:
(2«-»>вС + 2<'-а >е С + |
... + |
2«С + |
С), |
||
А |
если |
/ ? = |
1; |
||
2e C + |
C, |
е с л и £ = - 1 , |
|||
2(i->)«c + 2^-2 )^C + ... + |
|||||
|
|
|
|
(5-25) |
где С—число, соответствующее основному периоду. Выражение (5-25) описывает выходную реакцию уст
ройства деления на |
ошибку |
£ = ± 1 . |
|
||
Переходим к рассмотрению принципа работы КУ, |
|||||
структурная схема |
которого |
показана на рис. 5-5. Слово |
|||
в течение первых |
п |
тактов |
(п — разрядность используе- |
||
|
|
|
|
и |
|
|
|
|
|
I |
|
|
|
|
г-1 |
•D |
I |
|
|
|
|
|
|
|
Блок |
деления |
|
|
|
|
на |
|
число А |
|
|
Вход |
|
|
|
лтпм\п\- |
Выход |
Буферное ЗУ |
ЩСМ\п |
||||
|
|
|
Рис. 5-5. Структурная схема КУ для арифметическо
го ЛД^-кода, длина п которого равна порядку |
класса |
вычетов 2 по модулю Л. |
|
10* |
И 7 |
мого ЛЛ^-кода) поступает младшими разрядами вперед в ЗУ и одновременно в блоке деления происходит его де ление на модуль Л. Затем блок деления продолжает ра ботать в автономном режиме, а кодовое слово последо
вательно поступает |
из ЗУ ,на выход. Будем анализиро |
||||||||
вать работу КУ в течение первых 2п тактов. |
|
||||||||
Разрядность п арифметического ЛЛ^-кода, порождае |
|||||||||
мого модулем Л, |
|
равна |
(см. доказательство |
теоремы |
|||||
5-2): |
|
е, |
если |
число е |
нечетное; |
|
|||
|
|
|
|||||||
|
|
[е/2, |
если |
2 ' |
= — 1 |
по модулю Л. |
|||
На |
вход 'блока |
|
деления |
поступает число |
L*—AN+E, |
||||
а на выходе |
его получается число N+(E/A). |
Если п=е |
|||||||
и £ = ± 1 , то, учитывая |
(5-25), получаем выходную реак |
||||||||
цию 'блока деления в течение 2/г тактов: |
|
|
|||||||
дг |
, _ £ ^ = W + |
2 2 r |
t - ( 2 r t C + |
C), если Я = 1 ; |
|||||
^ |
Л |
|дг+ |
|
2 "'С + С, |
если |
5 = |
- I . |
||
В рассматриваемом случае значение С описывается |
|||||||||
выражением |
(5-20) |
и |
поэтому |
|
|
|
|||
|
|
^ + |
|
2 2 r |
t - 2 « ^ l - ? ^ i , |
если |
Е=1; |
N-
если
(5-26)
Если ошибка возникла в произвольном разряде сло ва, т. е. E=±2i ( 0 ^ i / < n — 1), то из (5-26) следует, что выходная реакция блока деления равна:
-гЛ^ + 2 2 " + ' - 2 п + ; " ^ = ^ - 2 ' ' |
|
|||
. иЕ. . |
если |
Е = 2>; |
|
|
*Г+1ГЯШ\ |
2 п _ , |
9 п |
_ , |
(5-27) |
[ |
если |
£ = — 2к |
|
|
Учитывая, что число |
С = ( 2 П — 1 ) / Л — нечетное, т. е. |
со=1, а кодируемое число N может изменяться в преде лах
0 < ( / V < # 0 = ( 2 n — 1 ) 1А—1 = С— 1, проанализируем выходную реакцию блока деления.
148
|
Пусть |
£ = 2°=1, |
N = 0 , |
тогда из (5-27) получаем: |
||||
|
|
Р |
|
On |
1 |
On 1 |
|
|
|
|
^+4 |
= 2 - - 2 * V - V = |
|
||||
= 11...1 S n |
_ r _ 1 C n - r - a |
••• C,0 |
11 — 1 Cn-r-fin-r-*--- |
|
Cjl, (5-28) |
|||
г |
единиц |
|
|
г единиц |
|
|
|
|
где |
Ci — инверсные значения цифр двоичного 'представле |
|||||||
ния |
числа |
С [см. |
(5-20)]. |
Если |
Е=2\ |
/'^=0, |
то |
реакция |
будет описываться |
(5-28), |
сдвинутым |
влево |
на |
/ разря |
дов. Таким образом, фаза ошибки / определяется место
положением |
(г+1)-разрядной |
комбинации 011 . . . |
1. Для |
вычисления |
реакции при N>0 |
к коду, получаемому |
сдви |
гом (5-28) на j разрядов влево, .необходимо прибавить число N. Нетрудно видеть, что прибавление N, макси мальное значение которого равно С—1, не может иска
зить |
ключевую комбинацию 011 ... |
1 . |
Например, если |
|||
/ = 0 |
и N=(2n— |
1)/А—1, то |
|
|
||
|
|
г |
единиц |
г единиц (л—г) единиц |
||
Таким |
образом, |
логическая схема, |
подключаемая |
|||
к 'блоку |
деления с |
целью выработки |
сигнала исправле |
|||
ния |
ошибки |
вида |
£ = 2->, должна |
«настраиваться» на |
(г+1)-разрядную комбинацию 011 . . . 1. В момент фикса
ции такой комбинации ошибочный разряд |
выдвигается |
|||
из БЗУ. Конъюнктор & подключается |
к выходу |
блока |
||
деления и выходам запоминающих ячеек 1,2,..., |
г, в ко |
|||
торых запоминаются значения г |
символов, |
полученных |
||
на выходе в течение г предыдущих тактов |
относительно |
|||
рассматриваемого (см. рис. 5-3). Как только |
конъюнктор |
|||
зафиксирует комбинацию 011 ... 1, |
на |
его выходе появ |
ляется сигнал, который через схему получения дополни |
|
тельного кода (на рис. 5-5 обведена пунктиром) поступа |
|
ет на второй сумматор (СМ2). С помощью этого сумма |
|
тора производится исправление ошибки. После того как |
|
кодовое слово покинет БЗУ, производится |
обнуление бло |
ка деления и КУ готово к приему нового |
слова. |
Аналогичный |
анализ проведем |
для ошибок вида Е= |
= —2*. Если £ = |
—2 ° = — 1 , N = 0, |
то |
A
z А - А —
= 0 0 ^ c n . r . 1 c „ _ r . s . . . |
c ^ 0 O : ^ c n _ f . . 1 c n _ r _ i . . . |
c l l . (5-29) |
г нулей |
г нулей |
|
149