![](/user_photo/_userpic.png)
книги из ГПНТБ / Самохин А.Ф. Эксплуатация цифровых вычислительных машин [учеб. пособие]
.pdf- д о -
+ V o 72
- 4 TZ * * , * 0 Tz
Схема блока умножения, реализующая эти выражения, имеет вид, представленный на рисунке 4 .4 .
Рис. 4.4.
Сомножители подаются поочередно. Работа схемы очевидна из описывающих ее логических выражений.
Из |
рассмотрения методики выполнения операций над вычета |
|
ми четко |
проглядывается преимущество |
контроля по модулю ^=2^-1. |
В связи |
с этим в дальнейшем мы будем |
вести речь только о конт |
- 91-
роле по |
этому модулю. |
|
|
§ 4 .8 . |
Вычисление вычета обратного и дополнительного |
кода |
отрицательного числа по вычету прямого кода этого числа |
|
В связи |
с тем, что операция вычитания в ЦВМ выполняется |
обычно в обратном или в дополнительном коде; а в запоминающих устройствах информация хранится в прямом коде, в процессе кон» троля возникает необходимость преобразования вычетов прямого
кода в вычеты обратного или дополнительного кода и наоборот*.1
На практике применяются две разновидности контроля:
- контролируется только мантисса числа, а знаковый раз ряд в образовании вычета не участвует;
- контролируется весь код числа вместе со знаковым раз рядом.
В первом случае контроль реализуется проще, но контроль
неполный, во втором реализация несколько сложнее, но исключа ются ошибки в знаковом разряде.
Рассмотрим методику преобразования контрольных кодов для обоих случаев.
При контроле без учета знакового разряда вычет обратного ко
да |
ч и с т равен вычету |
инверсии мантиссы прямого кода |
этого |
|||
числа. |
|
|
|
|
|
|
|
Р (А 0^) |
s R ( A r p ) mod fj. , |
|
|||
где |
A -п р .- мантисса |
прямого кода числа. |
|
|||
Но инверсия мантиссы |
П -разрядного чисж |
|
||||
|
А' |
|
= 2 п-1 |
-А ' |
|
|
|
Апр. |
|
1 |
мпр. |
|
|
Следовательно, |
(A0s)~ [Я(2П- 0~P(Anp)^mod^, . |
(4 .1 4 ) |
![](/html/65386/283/html_CPJ5IkYzZH.nYJi/htmlconvd-pTJcS593x1.jpg)
В случае |
CJ = |
2>п- I контрольны!! код занимает гп разрядов, и |
диверсия |
контрольного кода определяется выражением |
|
|
Ш |
щ ) < 2 m-1~R(Anp)]mod(2m- 1 ) |
или, после исключения из правой части ^,= 2™- I ,
К ( А я р ) н [ - ^ пр)]т т 1о с / ( 2 Г1,- 1 ) . |
(4Л 5) |
Из выражений 4.14 и 4.15 получаем тождество ,для вычисления вычета обратного кода отрицательного числа по вычету прямого кода этого числа без учета знакового разряда:
W o S ) * l № - 0 + M ^ ) U a d ( 2 m- l) . <4 Л 6 >
Таким образом, для получения вычета обратного кода числа доста точно инверсию вычета прямого кода числа сложить с постоянным
числом |
К = R(2n-1) mad (2 т- i ) . |
|
|
|
С помощью аналогичных |
рассуждений можно получить выражение |
|
||
для вычисления вычета |
дополнительного кода числа |
|
|
|
^ |
(Agon)- [R(2n-0 +R(Anp)gon]rrwd(2™- i ) t |
(4 |
.17) |
где %(Anp)[jon - дополнение вычета прямого кода числа.
Переход от вычетов обратного или допелнитального кода чи сел к вычетам прямого кода этих чисел осуществляется по анало гична* формул»*:
R(Anp)s [R(2 - ! ) +^(A0sp)]rmd(2 т- 1)
(4.18)
£ (А лр)- [R (2n-l) + K(Agon)gfon]mod (2m- f )
- 9 3 -
Заметам, что если П выбрать таким, чтобы £ ( 2 П) был
равен единице, процедура преобразования вычетов существенно упрощается, так кап отпадает необходимость добавления постоян
ного числа |
R (2п-1) mod ( 2 т- 1). |
|
|
|
|
|
|
|
||||
Для получения |
формул преобразования вычетов при контроле |
|||||||||||
с учетом знакового разряда запишем выражения прямого кода |
||||||||||||
обратного |
кода А л |
|
и инверсии |
прямого кода |
t |
Л |
пр |
в |
виде |
сум- |
||
|
оор |
|
Оп '2 |
|
|
|
|
|
|
|
||
мы знакового разряда |
и мантиссы A |
|
|
|
|
|
||||||
|
А пр = а п- 2 п + л ' |
н R (A np)modfj. |
|
|
|
|||||||
|
A 0 f y |
|
= Qi , 2 n+A |
|
s R(AoSp)m oct^ |
|
|
|
||||
|
А-пр = a n 2 а+ = R(А пр) m o d . |
|
|
|||||||||
Вычтем почленно из |
второго тождества |
третье, |
тогда |
|
|
|||||||
|
я (А о5р) |
- |
s (а |
« п ) - 2 nmod у |
|
|
|
|||||
или, учтя, что у отрицательного |
|
числа |
Qn= i , и |
# |
п = 0 |
и , |
||||||
перенеся R(Anp) |
|
в правув часть, получим: |
|
|
|
|
|
|||||
И(А,;г1,)ш [!1(2'')*!Н\)1 modlj. . |
|
(«.ISO |
Но инверсию прямого кода Л -разрядного числа можно запи сать в виде _
A n f ~ Z n ' - t - ^ n f
или, перейдя к вычетам,
R ( A n p ) = [ R ( 2 n* - 0 - R (Anp)J Tnodf^. |
( ч , 2 0 ) |
Перепишем тождество 4.19 с учетом выражения 4.20 :
Л(Аа6р ^ [ № nft+ 2 n+ i ) - R(A пр)1 W £ с * . 2 Г .
- 9 4 -
В случае использования модуля « |
2 т - I с учетом тождества |
4.15 выражение 4.21 принимает вид: |
|
К(Ао5р) =С Я (2>ПН+ 2 П-1)+К(Апр)1тос((!2т-1). (4 .2 2 ) |
Таким образом, методика преобразования вычета прямого ко да числа в вычет обратного кода без учета и с учетом знакового
разряда одинаковы. Отличие заключается только в величине кон станты, добавляемой к инверсии вычета прямого кода.
Тождества для преобразования вычета прямого кода в вычет
дополнительного |
кода |
и вычетов обратного и дополнительного кода |
в вычет прямого |
приводятся ниже: |
|
П (Арп ) Ф (2 ™ *2 п- ф H(Anp )9on]mod(2nx- 0 |
||
R ( A ^ ) ^ [ K ( 2 n*+2 fl+d+R(AoSp)]™°Gl(2ni-i) (4 .2 3 ) |
||
R(Anp )s L^(2 |
+2 - 0+R(Agon)jjon] -mod(2 т- 1) |
Обнчно преобразование вычетов выполняется в сумматоре контроль ных кодов.'
- 9 5 -
Г л а в а У
АППАРАТНЫЙ КОНТРОЛЬ
АРИФМЕТИЧЕСКИХ И ЛОГИЧЕСКИХ ОПЕРАЦИЙ |
|
||
§ 5 .1 . Контроль арифметических |
операций по четности |
|
|
П о н я т и е |
б у л е в о й |
р а з н о с т и .1 При ис |
|
следовании влияния тех или иных неисправностей (ошибок) |
на |
||
значение выходной функции г м |
некоторой логической |
||
схемы удобно пользоваться понятием булевой разности; |
|
||
Булевой разностью функции |
относительно |
вход |
|
ной переменной X'L |
называют выражение |
|
|
dT(x) |
|
|
|
d
здесь не производная, а оператор разности, означа
ющий сложение функции |
? ( * ) с выражением |
этой |
же функции, в |
||||
котором переменная |
Xi |
заменена на инверсию. |
|
|
|
||
Наиболее важным для нас свойством булевой разности явля |
|||||||
ется равенство ее |
I , |
если |
значения функции |
Т ( х ) |
не |
совпада |
|
ют для правильного |
и ошибочного значений £С£ |
, |
и равенство O', |
||||
если эти значения функции совпадают. |
|
|
|
|
|||
Если систему контроля можно описать некоторым логическим |
|||||||
выражением, в котором значения аргументов |
Яу |
являются вход |
|||||
ными, промежуточными или выходными переменными |
контролиру - |
||||||
емой схемы, то по |
значении булевой разности |
|
|
— |
можно |
а п
- 9 6 -
определить, контролируется ли неисправность, вызывающая ошиб
ку в значении переменной |
Х[ |
( f f ~ ~ |
= l) «ли не контроля- |
||
/ |
d m |
\ |
Это |
свойство |
булевой разности в даль |
руется | |
— |
= 0J , |
нейшем будет использовано при анализе системы контроля арифме тических и логических операций по четности. Кроме того , приве дем без доказательства следующие свойства булевой разности:
|
|
|
d r(х) = d m |
|
|
5 .2 |
||||
|
|
|
|
|
dxi |
|
|
|
|
|
|
|
d[F(x)®G(x)] = d m ^ |
JG& |
|
|
|||||
|
|
|
d xi |
|
|
|
dxi |
d xi |
|
|
|
|
dT(S) |
= d m ) |
dth |
|
|
|
|||
|
|
|
d z i |
d |
d |
* |
i |
|
|
|
|
К о н т р о л ь п о л у с у м м ы . |
Формирование |
сум |
|||||||
мы |
Si |
в сумматоре обычно реализуется как сложение по ti}od2 |
||||||||
полусуммы |
Н[ |
и переносов |
С |
|
: |
|
|
|
||
|
|
|
Si |
= Hi |
© с ,., |
|
|
|
||
Схема контроля полусуммы может быть реализована как самосто |
||||||||||
ятельная часть схемы полного контроля сумматора. Значение |
I -г о |
|||||||||
разряда полусуммы чисел А и В определяется |
выражением |
= |
|
|||||||
|
Четность полусуммы |
Рн |
, |
очевидно, |
можно записать |
как |
||||
оумиу |
по |
mod 2 |
всех разрядов |
полусуммы: |
|
|
|
- 9 7 -
^ = Н л ® Н я - А . ® « ! ® . . . © Н 0 =
= (a ^ Q ^ ,® ..® ^ © ... ® д 0) ® ^ ® 4 - Д - •® 4 ® ® 4 ) =
= Ра ® h -
Таким образом, четность полусуммы равна сумме по fnod.2. чет ностей слагаемых. Следовательно, для контроля достаточно про
верить на четность полусумму и сложить ее |
по |
m od 2 |
с четноо- |
|
тью слагаемых. Равенство полученной суммы |
£ |
~ Рц ® ?а @7-^ |
||
нулю свидетельствует об отсутствии ошибок |
нечетной кратности,1 |
|||
К о н т р о л ь |
п о ч е т н о с т и |
|
п о л н о й |
с у м - |
м ы . Четность полной суммы может |
быть |
представлена следующим |
выражением: |
|
|
Ps = S „ ® ^ . , © - e 5 i ® - ® 5 0 = < а , г ® £ я © с я - , ) © |
||
ф (а пч®^п-1ФСп-г) ® - ••® (oi |
|
) © . . . ® |
® (ao®^o®Cgx ) = |
- |
® а о) ® |
® £<•-, ® • ® с * х ) = % ® Ре ® К |
|
|
Таким образом, для контроля полной |
суммы необходимо сло |
|
жить по m od 2 четность |
суммы Pg |
с четностями слагаемых |
и внутренних переносов Тс |
• |
|
Е = ц ® р а ®р6 <врс .
- 9 8 -
Сявдует иметь в виду, что признак четности и внутренних пере носов заранее не известен и формируется в процессе выполнения
операции. |
Поэтому равенство |
£ |
дулю свидетельствует об |
отсутствии |
ошибок только при условии отсутствия неисправностей |
||
в цепях формирования переносов. |
Ошибки, возникающие в цепях |
переноса, не изменяют четности выражения, так как они одновремен
но меняют четность переносов Ра и суммы |
Ps |
. |
Действитель |
но, предположим, что ошибка произошла в |
С t- _ ( |
-м |
переносе. |
Тогда булева разность |
|
|
|
|
dE _ |
сЩ |
|
„ |
|
dPa |
„ dPs |
„ |
dH |
|
|
dci4 |
da4 |
+ |
dCi-i |
+ dclt |
+ |
dci-i |
|||
но |
l f ! i - = ( c n- t <s>Cn -2 ® . . . ® |
|
&egx) © |
|||||||
|
u C i - j |
|
|
|
|
|
|
|
|
|
|
© ( c „ |
® C n |
|
© |
© C ■ © . © C p t ) - i |
|||||
|
1 n ~ 1 |
n - z |
|
L- 1 |
|
|
6X |
|
||
и , |
аналогично, |
№ |
|
d 4 |
c/S<; |
|
|
|
|
|
|
|
dci4 |
|
dS; |
dci4 |
|
|
|
|
|
Следовательно, |
dfj |
|
1 |
+ |
0 + 0 + 1 = 0 |
,т .е |
ошибка |
|||
dcL.t |
||||||||||
не обнаруживается. |
|
|
|
|
|
|
|
|
||
|
Пример. |
|
|
|
|
|
|
|
|
|
а) |
А = 0,0011 |
|
Ра |
= 0 |
б) |
А = 0,0011 |
ра = 0 |
|||
|
В = 1,0110 |
|
Р^= I |
|
В = |
1,0110 |
||||
|
|
|
Р<? = 1 |
|||||||
|
Н = 1,0101 |
|
|
|
|
|
Н = |
1,0101 |
ошибка Р = I |
|
|
С = 0,1100 |
|
рс |
= ° |
|
с. = 0,1101 |
||||
|
S = 1,1000 |
|
Ps |
= 0 |
|
S = |
иооо |
Ро= 0 |
||
|
|
|
|
|
|
|||||
|
ошибка |
|
|
|
|
Е = Г + 0 + I + I = |
||||
|
Е = 0 + 0 + 1 + 0 = 1 |
|||||||||
|
Ошибка обнаруживается |
Описка |
не |
обнаруживается |
- 9 9 -
Следовательно, для обеспечения достоверности контроля опера ции сложения необходимо обеспечить или достоверность получе ния признака четности переносов, или достоверный контроль пе реносов.
Известен ряд способов обеспечения контроля операции сло
жения по четности ( см. Л. 7) .
Одним из способов является дублирование цепей переноса. При
этом способе в образовании суммы принимают участие одни схе
мы формирования переносов, в вычислении признака четности -
другие, и, следовательно, ошибка в цепях переноса, участву
ющих в образовании |
суммы, не скажется на формировании призна |
||
ка четности Р |
С |
и наоборот. |
|
|
|
* |
|
К о н т р о л ь |
о п е р а ц и и в ы ч и т а н и я . В |
связи с тем, что операция вычитания выполняется как операция сложения в обратном или дополнительном кодах, ее контроль вы полняется аналогично , с учетом наличия циклического переноса или потери единицы из старшего разряда. Поэтому для реализа ции контроля по четности операции вычитания достаточно обес печить дополнительно контроль преобразования кода из прямого
в обратный (дополнительный) и наоборот.
Контроль преобразования прямого кода в обратный реали зуется достаточно просто. Если количество разрядов мантиссы четно, то при преобразовании признак четности сохраняется.
Если количество разрядов мантиссы нечетно, то признак четнос ти меняется на обратный.
При контроле преобразования в дополнительный код внача ле можно проконтролировать получение обратного кода, а затем проконтролировать добавление единицы в младший разряд, так ,
как это делается при сложении (получение дополнительного