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

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

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

два порождающих модуля Ау и А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 П — 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

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