Файл: Хетагуров, Я. А. Повышение надежности цифровых устройств методами избыточного кодирования.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.10.2024
Просмотров: 154
Скачиваний: 0
Значение 'произведения мантисс после округления бу
дет представлено разрядами (S2 ;f _i, £2/1-2, .. •, |
S/O- |
Учи |
|||||||||||||
тывая, |
что S = |
s*i, |
из выражения (7-11) |
'.получаем: |
|
||||||||||
|
|
|
|
|
|
s*, = |
kAs, + s0 |
|
|
|
|
|
|
||
или |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
КА |
|
|
|
|
|
|
где |
SQ |
— контрольный код, соответствующий |
младшим k |
||||||||||||
разрядам произведения. Целесообразно |
количество |
ин |
|||||||||||||
формационных |
разрядов |
k |
выбирать |
таким |
образом, |
||||||||||
чтобы £ А = 1 . Наконец, учитывая, что знак |
произведения |
||||||||||||||
равен Cfc+i © 6ft+i, |
получаем |
выражение |
для |
контрольно |
|||||||||||
го кода s с учетом знака |
(&л=1): |
|
|
|
|
|
|
||||||||
s = |
s, + |
2* ( с й + 1 |
ф |
bk+i) |
= |
s*, — s0 |
+ |
|
© |
bk+l) |
|
||||
или |
с учетом (7-9) |
и |
(7-10) |
|
|
|
|
|
|
|
|||||
S 5 |
= а р + ( k |
- |
\ ) А - |
|
[abh+1 |
+ |
pck + i - |
( с й |
+ 1 0 bh+1)\ |
+ |
|
||||
|
|
|
|
|
|
|
+ c f t + 1 6 f e + 1 - s 0 . |
|
|
|
(7-12) |
||||
Из (7-12) следует, что при выполнении умножения |
|||||||||||||||
необходимо |
предусмотреть |
вычисление |
контрольного |
ко |
|||||||||||
да s0 |
от младших |
k |
разрядов |
произведения, |
которые от |
брасываются.
Пример:
хС = 1,101001
В= 0,001110
000000
101001
101001
101001
000000
|
000000 |
|
|
|
1,001000111110 |
|
|
+ |
1 |
|
единица округления |
|
. — > — • — I |
|
|
1,001001 I 011110 } |
отбрасываемая часть произведения. |
||
Контрольный |
код от отбрасываемой части So=0. Так как |
||
|
о = 0, р = 2, с „ + , = 1, 6 h + 1 = 0 , 6 h + 1 c h + 1 = 0 , |
||
|
Cb+i&bh+1 |
= |
l, ( 6 - 1 ) ^ = 3 = 2, ( / е + 1 ) ^ 3 = 2, |
218
то из (7-12) следует, что
s = 0 + 2(0 + 2 — 1 ) + 0 — 0 = 2 — 1 = 1 по модулю 3.
Действительно, контрольный код числа 1,001001 равен 1 (в двоич ном представлении 01).
Деление в прямом коде с округлением. При вычисле нии контрольного кода частного необходимо учесть, что:
деление выполняется над мантиссами чисел С и В, причем делитель В должен быть больше делимого С во избежание переполнения;
при делении вычисляется ( £ + 1 ) разрядов частного, к младшему разряду добавляется единица округления и в качестве частного выбираются старшие k разрядов;
обычно остаток R от деления С на В не равен нулю. Обозначим мантиссы делимого и делителя через С м и Вм соответствено, а мантиссу частного — через L M . Имеет
место равенство
См=fi M L i 4 I + R .
Так как числа См и Вм |
меньше |
1 и содержат |
k раз |
|
рядов после запятой, а частное L M |
содержит (k+\) |
раз |
||
рядов, то ВМЬМ |
и R содержат по (2k + l) разрядов |
после |
||
запятой. Чтобы |
избавиться |
от чисел, меньших единицы, |
умножим левую и правую части равенства на 2 2 F E + 1 :
2 * + * С ' „ = £ ' Ы 1 ' И + # ' .
В последнем равенстве С'м , В'м, L ' u и R' обозначают целые числа. Из этого равенства получаем сравнение:
(Й + 1)А(Х* = Р*/* + Г, |
|
(7-13) |
где а*, |5*, /* и г — контрольные коды, |
соответствующие |
|
С'кш В'ы, L ' M И R'. |
|
|
Сравнение (7-13) является основным контрольным |
||
соотношением. Однако оно не учитывает процесс |
округ |
|
ления и знак частного. Чтобы учесть эти факторы, |
выра |
|
зим значение частного с учетом знакового разряда |
L че |
|
рез L M : |
|
|
L = [ L M + I - (1 0 L , ) ] -L + (cu+10 |
2* |
(7-14) |
где Li — значение младшего разряда L M . В квадратных скобках записана следующая процедура: прибавление единицы округления в младший разряд и отбрасывание
219
полученного значения младшего разряда. Умножение на 1/2 соответствует сдвигу числа, записанного в квад ратных скобках, на один разряд вправо. После соответ
ствующих преобразований из (7-14) |
получаем сравне |
|
ние: |
|
|
1*^21-1- |
(ch+l 0 b k + l ) (k + |
\ ) л + (1J0L,), (7-15) |
где / — контрольный |
код частного |
после округления |
с учетом знака. Подставляя правую часть (7-15) в (7-13)
получаем искомое контрольное |
соотношение |
при kA = l- |
(k+ 1)„ (а - с„+ 1 )=^(Р - |
bk+1) [21 - 1 |
- |
-© Ьк+1) (к + 1)„ + (1 0 L,)] + г. (7-16)
Например, пусть С=0,001110, 5 = 1,101001, Л = 3 ; тогда
а = 2 , р = 0, c f t + 1 = 0 , 6 „ + 1 = 1, с Л + 1 ф й Л + 1 = 1 , й „ = 1 , ( А + 1 ) д = 2 .
Выполняем деление: |
|
|
001110 |
101001 |
|
—101001 |
0,010101I |
частное LK |
001111 |
|
\ |
- 101001 |
V |
|
|
010011 |
|
101001 |
|
100011
—101001
|
011101 |
остаток. |
|
|
|
Производим |
округление |
частного и приписываем |
ему |
знак: |
|
L_=_1_.010U0, L = / = 102 = 2 l o по модулю 3. Остаток |
011101 |
||||
и R ^ r = 102 = |
2JO по модулю 3. Проверяем сравнение |
(7-16): |
|||
2(2—0) — (0—1) (2-2—1—1 - 2+0) — 2 = 4 + 1 — 2 = 3 = 0 |
по |
модулю 3, |
т. е. контрольное соотношение выполняется и операция деления про- в'едена без ошибок (с некоторой вероятностью).
Сдвиг логический (знаковый разряд сдвигается). При сдвиге влево на один разряд числа С и заполнения осво бождающегося разряда нулем получаем:
С с д в = = 2 с 7 |
2't + 1 Cjl ^.l , |
где Cfc+ i — значение (А + 1)-го разряда числа С. Отсюда
а е д в = 2 а — ( А + 1 ) А < ? к + 1 .
220
Если освобождающийся разряд заполняется едини цей, то
и |
|
|
|
|
|
|
|
|
|
|
|
а с д в = |
2а - {к |
-f- l)Ach+l |
-f- 1. |
|
|
||||
При сдвиге на |
один |
разряд |
вправо и |
заполнении |
||||||
освобождающегося |
разряда |
нулем, получаем: |
|
|||||||
и |
С С Д В = |
(С - 0 / 2 |
или г С е д ^ С - с , |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 а е д в |
= |
а — с,. |
|
|
|
||
Чтобы определить выражение для вычисления кон- |
||||||||||
трольного |
кода |
сдвинутого числа <хСдв, умножим левую |
||||||||
и правую |
части |
последнего |
сравнения на 2 е - 1 , |
где е — |
||||||
порядок 2 по модулю А. В результате |
получаем |
искомое |
||||||||
выражение: |
|
|
|
|
|
|
|
|
|
|
В частности, |
если Л = 3, то е=2 и |
|
|
|
||||||
|
|
|
<*едв = |
|
(а — с,) |
2. |
|
|
|
|
Например, если |
С — 1,101001, |
/1 = |
3, то с г = 1 , <*=0 и а С д В = |
|||||||
= — 2 = 1 . |
Действительно, С с |
д п |
= |
0,110100 = |
1. |
|
|
|||
Если освобождающийся |
(знаковый) разряд при сдви |
|||||||||
ге вправо |
заполняется единицей, то |
|
|
|
||||||
|
а з д в = 5 ( а - с , ) 2 « ~ ' - Н е |
|
|
|||||||
циклический |
и |
арифметический |
сдвиг. |
Напомним, |
||||||
что при арифметическом |
сдвиге знак |
числа |
не сдвигает |
ся. Читателю предлагается самостоятельно доказать сле дующие сравнения, с помощью которых вычисляются
контрольные коды.
При циклическом сдвиге влево или вправо на один разряд
о ц = 2 а - с * + 1 [ ( А - И ) л + 1 ] ;
ац=(а-с1)2'-1 +ClkA.
221