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

книги из ГПНТБ / Самохин А.Ф. Эксплуатация цифровых вычислительных машин [учеб. пособие]

.pdf
Скачиваний:
11
Добавлен:
23.10.2023
Размер:
8.6 Mб
Скачать

- п о ­

следовательно, добавлять инверсию в этом случае нет необходи­ мости, достаточно лишь учесть перенос из старшего разряда, воз­ никающий в процессе сложения вычетов, т .е .

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.

(J,0 -

 

 

 

 

 

 

 

-

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.

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