книги из ГПНТБ / Самохин А.Ф. Эксплуатация цифровых вычислительных машин [учеб. пособие]
.pdf- п о
следовательно, добавлять инверсию в этом случае нет необходи мости, достаточно лишь учесть перенос из старшего разряда, воз никающий в процессе сложения вычетов, т .е .
R (A + B )= [R(A)+R(B)+dmR (1-2m)]mod
Таким образом, для реализации операции сложения вычетов
по модулю 1 необходимо иметь т -разрядный сумма
тор с цепью циклического переноса из старшего разряда в млад ший.
Пример. R(A)~ 10movl3, R(B) =iDwocl5l R(A+&) =01 mods .
R |
( |
A |
) |
= |
10 |
+ R |
( |
в |
) |
= |
io |
R ( a ) + R |
( |
в |
) |
= ioo |
|
перенос |
|
|
|
|
l—I |
R ( A ) + R ( В ) = 01
Для сокращения записи здесь и дальше мы будем использовать
смешанную запись, записывая числа |
и вычеты в двоичной системе |
||
счисления, а величину модуля - в десятичной. |
|
|
|
Если используется модуль |
2 ™ + 1 , |
|
|
| = 2 m+ i- |
|
t ) * 0 |
|
Следовательно, в этом случае инверсию модуля добавлять необхо |
|||
димо. Сигналом на добавление может |
быть или перенос из |
( 777 + / ) -г о |
|
разряда, или сигнал от специально |
включенного |
в схему |
су ш а то - |
ра дешифратора, свидетельствующий о том, что |
число, полученное |
||
в сумматоре, больше модуля. |
|
|
|
- 81-
Пример. R (A)=OHmod5, R (B)s№ m od$, R(A+B)sOlOtnod5
|
R ( |
A |
) |
= |
OII |
+ |
П ( |
в |
) |
= |
IOO |
R( a ) + |
R ( |
в |
) |
= |
no |
. __________________ i |
|
- |
010 |
||
|
|
||||
|
|
|
|
|
1001 |
перенос |
|
|
|
l— I |
R ( a ) + R ( в ) = o io
Операция вычитания контрольных кодов заменяется сложением уменьшаемого с инверсией вычитаемого. При этом так же, как в случае сложения, может возникнуть два случая.
1 . £ R ( A ) - R ()В3 > 0
В этом случае R. ( С ) может принимать любые значения от I до
^. При этом обязательно возникает единица переноса из стар
шего разряда, которую необходимо учитывать. Таким обраэои, опе рация вычитания определяется выражением
R ( A ) - R ( B ) = [ R ( A ) + Щ ) + i - 2 т] modу
2. [ R ( A ) - Ц ( В ) ] * 0
В этом случае разность лежит |
в пределах от |
нуля до |
/ |
- (^ |
, |
|
Следовательно, для получения |
наименьшего вычета к разности |
|
||||
необходимо прибавить величину модуля. Проверкой двух крайних |
|
|||||
случаев т т п |
И Я(А)+Ш) =1'(j, нетрудно |
убедиться |
в |
том, |
что |
|
единица переноса в |
этом случае при сложении |
R (А) с |
|
R (В) |
0.3ак.837.
- 8 2 -
не возникает. Единицу ке переноса, возникающую при добавлении модуля, естественно, следует учитывать. Выражение для вычитания кодов в этом случае имеет вид:
т
Если контроль ведется по модулю 0, =2 - 1 , добавле-
ние модуля выполнять не следует, так как добавление модуля с учетом возникающего при этом переноса равносильно добавлению нуля.
g (а ) + * (В) S [ Л (А) + Я (В)*2 т- 1 * 1 -3 mJ mod (2 П- 1 ) K(A)+R(M)*[fUA) + m ) ] m o d ( 2 т-1 )
R(A)s/Omod3,12[В )=01m odi, Л(А +Ь) =01m odi
|
R ( |
А ) |
= |
10 |
|
+ |
# |
( |
В ) |
= |
10 |
Я ( а ) + |
£ |
( в ) = юо |
перенос
R ( А ) - * ( в ) = 01
При контроле по модулю |
добавление модуля |
обязательно. |
|
- < ч -
Пример. ЩК)=011mod5, U(B)-f00nwd5, Я(А)-ШВ)=НЮ mod 5.
|
К ( |
А ) |
= |
ОН |
+ |
Я ( |
В ) |
= |
ОН |
И ( А ) + R ( |
В ) = |
ПО |
||
________________ + |
£ |
|
= |
101 |
перенос |
|
|
|
^ 1 |
8 ( A ) - |
Я ( |
В ) = ЮО |
||
Таким образом, из рассмотренного |
шше материала следует, |
что для выполнения операций сложения и вычитания вычетов при
контроле по модулю ^ = 2 т~1 достаточно иметь обычный
/77 -разрядный сумматор с циклическим переносом из старшего разряда в младший.■При контроле же по модулю ^ =*=«£: +1 в
сумматоре должна быть предусмотрена схема сравнения результата операции с модулем и операция добавления или вычитания модуля.
Это обстоятельство свидетельствует в пользу контроля по моду
лю |
о = 2 - 1. |
" |
На практике сумматоры контрольных кодов строятся как по |
схемам, аналогичным схемам контролируемых сумматоров чисел,
так и по схемам, отличным от последних.
На рис. 4 .3 показана схема сумматора контрольных кодов по m od3.
|
|
|
|
|
|
|
- |
8 4 - |
|
|
|
|
|
|
|
||
Работа |
схемы определяется |
таблицей |
4 .2 . |
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица |
4 .2 . |
|||
№ по |
0 |
I |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
II |
12 |
13 |
14 |
15 |
|
зиции |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
*1 |
0 0 0 0 0 0 0 0 I |
I |
I |
I |
I |
I |
I |
I |
|||||||||
Ч0 |
0 |
0 0 |
0 I |
I |
I |
I |
0 |
0 0 0 I |
I |
I |
I |
||||||
Т, |
0 |
0 I |
I |
0 0 I |
I |
0 0 I |
I |
0 |
0 |
I |
I |
||||||
То |
0 |
I |
0 |
I |
0 I |
0 I |
0 |
I |
0 I |
0 |
I |
0 I |
|||||
Ь |
0 |
0 0 |
ф 0 I I |
Ф I 0 I |
ф |
0 |
0 0 Ф |
Чо 0 0 0 |
ф I I 0 Ф 0 I I |
ф 0 0 0 |
|
Ф |
|
Здесь 'Zf и |
|
- входные двоичные сигналы (старший |
и млад |
||
ший разряды суммируемого вычета соответственно), Tj и Т0 |
- |
со |
|||
стояние триггеров, |
предшествующее подаче числа; 7 , и ? с , |
| ,к |
возбуждающие сигналы, которые должны быть поданы на счет ные входы триггеров Tj и Т0 с комбинационной части схемы для ре ализации соответствующей строки таблицы.
Так как контроль ведется по m od <3 , то комбинация II на триггерах не имеет смысла, ибо она равносильна 00. Поэтому дан ная комбинация считается факультативной.
Функции Cj^ и С^0 для обязательных и факультативных условий имеют вид:
^ - £ ( 5 , 6 , 8 , 1 0 ) + -£ ф (3 ,7 ,» ,1 5 )
£),0 = I (ч, 5, 9, rn) + Zcp (3,7,11,15).
-8S~
После упрощения с помощью карт Карно получается выражение
^ -%г*0(т, +т0) * ^ 0(r^f0)
?0= Tt + 7t70( f t +Г0).
В схему введены линии задержки, обеспечивапцие присут-
ствие на входе комбинационной части схемы на время выполне ния сложения сигналов, соответствующих предшествующему состо янию триггеров.
Рис. 4.3.
- 8 6 -
Слагаемые вычеты подаются последовательно. Работа схемы оче видна из логических выражений. В случае выполнения вычитания соответственно на вход подается инвертированный код. Практика
проектирования |
таких |
схем показывает, |
что обычно они содержат |
|
элементов не больше, |
чем 2 разряда основных сумматоров. |
|||
|
5 |
4 .7 .' |
Сдвиг и умножение вычетов |
|
Если регистр, в котором производится сдвиг контрольного |
||||
кода, |
содержит |
количество разрядов, равное количеству разрядов |
||
в этом |
коде, то |
выходящие при этом за |
разрядную сетку едини |
цы теряютоя и получаемый в регистре новый код оказывается не тождественным истинному значению сдвинутого кода.
Покажем, что тождественность кода, получаемого в регист
ре после сдвига, истинному значению сдвинутого кода можно обео-
печить введением цепей циклического переноса. Рассмотрим опера
цию сдвига контрольного кода на один |
разряд влево и вправо.' |
||
I . |
Сдвиг на |
один разряд влево в |
ГЛ -разрядном регистре |
вычета |
по модулю |
2 т- / . |
|
Сдвиг на один разряд влево равносилен умножению на 2. Запишем значение сдвинутого кода в следующем виде:
R (A ) = K ( A ) - 2 * [ * />(A)+o(rn_1- 2 mlmoc/p,
где Т^-р(б) - часть сдвинутого кода, оставшаяся в регистре;
■2 ^ • старший разряд кода, вышедший за разрядную
сетку.
но |
Z m = ( f + S m- 0 * i m o d (2 m- t ) . |
- 8 7 -
Следователъно,
И(А) 3 (А)+ ^ т _,]тлоо/ (2т-/ )
Таким образом, тождественность вычета по mod (2m-i) , образу ющегося в регистре, истинному значению сдвинутого кода обеспе чивается выполнением циклического переноса из старшего разряда в младший.
Пример. R (А ) |
= |
Ю1 mod 7 |
R (А ) - 1,010 ё O il mod7 |
|
|
|
|
ТП-разрядной |
u » I |
2. |
Сдвиг вправо |
в |
суыиаторе вычета по |
|
mod |
( 2m~ i ) . |
|
|
|
Сдвиг вправо равносилен умножению на 2“ * . Значение сдвинутого кода определяется выражением
где |
- |
часть |
сдвинутого кода, |
оставшаяся в регистре! |
||
|
- |
младший разряд кода, вышедший |
за разрядную се т - |
|||
|
|
КУ. |
/77 |
|
|
|
Домножим |
Ы0 2 |
' на |
4) ", |
тогда |
||
2 = 1 mod. (2 |
К ( A ) * U 2 p ( A ) + d 0 - 2 m 1J m o d ( 2 ™ - 1 ) .
Но о(0 2 соответствует переносу единицы из младшего раз ряда в старший. Следовательно', при сдвиге вправо необходимо обеспечить циклический переноо из младшего разряда в старший^
Пример. |
R (A ) s Ю1 mod 7, |
R (А ) - ОЮ’Л ш НО mod 7 |
|
|
|
I — |
1 |
3 . При |
сдвиге влево в ( ГП + 1 |
)-разрядно*1 |
регистре выче- |
та по mod(2m+<) выражение для сдвинутого КОДД имеет вид:
% ( А ) = R ( A ) - 2 = L % p (A )+ d m 2 m,ir1 m o d (2™ * < ).
- 8 8 -
НО |
2 |
(2 т+ 2 т* / - / j Н ( 2 " <) m o d ( 2 " + , ) |
и£ (А ) s L Rp (A) +dm (2 m- i) l'tn o d (2 т+ ■/).
Следовательно, здесь нельзя ограничиться циклическим |
переносом |
|||
в один младший разряд. Перенос необходимо |
посылать в |
несколько |
||
разрядов. Например, |
при ^ = 5 |
2 m - I - |
3 и, следовательно, |
|
перенос необходимо |
посылать в |
два младших |
разряда. |
|
Аналогично можно показать, что при сдвиге вычета но
■mod (2т+<) вправо перенос из младшего разряда необходимо пере давать в несколько старших разрядов.
Таким образом, для реализации сдвига контрольного кода мож
но использовать регистр с количеством разрядов, равным количест
ву разрядов в контрольном коде, если предусмотреть в нем соот ветствующие цепи циклических переносов.
Из рассмотрения операции сдвига оледует, что для выполне
ния операции умножения вычетов можно использовать сумматор, со держащий сдвигающий регистр с количеством разрядов, равным коли честву разрядов в контрольном коде.
Пример. К М ) = 101m od7, |
В(В) = 011 -mod 7. |
||
R |
(A) |
= |
101 |
X fc |
(B) |
= |
ОН |
I - e частичное произведение |
- |
101 |
|
Сдвиг множимого |
|
- |
1010 |
Циклический перенос |
|
I |
|
1 -е частичное произведение |
- |
101 |
|
Сдвинутое множимое + |
- |
о н |
|
Циклический перенос |
|
1000 |
|
|
L - I |
г (A) + Ш ) = 001
- 8 9 -
Операция умножения контрольных кодов может быть осущест
влена либо с помощью обычной схемы умножения, аналогичной схеме
основного АУ, либо с помощью комбинационной схемы, аналогичной
рассмотренной выше схеме сумматора. Второй вариант предпочти тельнее, так как при этом операция умножения кодов занимает меньшее время. Схема множительного устройства второго типа по
казана |
на рис. |
|
4.4. Булевы |
функции ^ |
и |
Cj,0 |
от входных |
пе |
||||||||||
ременных |
|
, |
7 0 |
и |
состояния триггеров |
T j и |
|
при |
умно |
|||||||||
жении по |
-mod? |
приведены в таблице |
4.3.' |
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 4 ,3 .' |
|
|
||||
Л по |
О |
I |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
II |
12 |
13 |
14 |
15 |
||
зиции |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
О 0 0 0 0 0 0 0 I |
I |
I |
I |
I |
I |
I |
I |
|
|||||||||
|
О 0 0 0 I |
I |
I |
I |
0 0 0 0 I |
I |
I |
I |
|
|||||||||
Ti О 0 I |
I |
0 0 I |
I |
0 0 I |
•I |
0 0 I |
I ■ |
|||||||||||
% |
О I |
0 I |
0 I |
0 I |
0 I |
0 I |
0 I |
0 I |
|
|||||||||
«У |
О 0 I |
ф 0 0 0 Ф 0 0 I |
Ф Ф Ф Ф Ф |
|||||||||||||||
%о О I 0 ф 0 0 0 Ф 0 0 I |
Ф Ф Ф Ф Ф ■ |
|||||||||||||||||
|
к |
2 |
( |
2, |
9. |
10 |
) |
<■Ztpi |
3, |
7, |
I I , |
12 . |
13. |
14, |
15 |
) |
||
|
|
|
|
|
|
|
|
|
|
T, |
|
|
|
|
|
|
||
|
2 0 = 2 |
( |
I , |
9, |
10 |
) |
|
р ( |
3, |
I I , |
12, |
13', |
|
15 |
) |
Факультативные условия отвечают наборам переменных, содержа щим «■ I и Aq = I или Tj *■ I и Tq - Г, которые не могут появиться. После упрощения выражения для ^ будут иметь вид:
Зак.927.