Documente Academic
Documente Profesional
Documente Cultură
B1 B0
Sumator de n bii
Qn
An An-1 An-2
A1 A0
Deplasare
tergere
ncrcare
Bloc de comand
ncrcare
Qn-1 Qn-2
Test Q0
Start
Stop
Fig. 3.6
Q1 Q0
BX QY
A0 Nn
Qn Bn Qn
Nu
Da
Q0=1
A A+B
An 0, Ai Ai+1
Qn-1 A0, Qi Qi+1
N N-1
Nu
N=0
Da
An Qn
Stop
Fig. 3.7
Registrul B este utilizat pentru ncrcarea paralel a denmulitului, iar
coninutul lui se transfer la una din intrrile sumatorului. Registrul Q este utilizat
pentru ncrcarea paralel a nmulitorului. Acesta funcioneaz ca un registru de
Pas
A
0 0 0000
1 0 0000
2 0 0000+
3
1001
0 1001
0 0100+
4
1001
0 1101
0 0110
5 1 0110
Q
110 0
011 0
001 1
B
1001
1001
1001
1001
Qn Q0
1 0
1 0
1 1
1
0011
100 1
1001
1001
110 0
1100
1001
Operaii
Iniializare
Deplasare A_Q la dreapta
Deplasare A_Q la dreapta
Adunare denmulit
0
0
N
4
3
2
1
= X (25 + 2 4 + 23 + 2 2 + 21 ) = X 62
Rezult c pentru calcularea produsului trebuiesc efectuate 5 adunri ale
denmulitului.
S observm acum c grupul de cifre 1 poate fi scris i sub forma
25 + 2 4 + 23 + 2 2 + 21 = 1 2 6 1 21 = 2 6 21
Justificarea aceste relaii este prezentat n continuare:
2 5 + 2 4 + 2 3 + 2 2 + 21 = 111 110
Dac adunm acum la ultimul rezultat numrul 10 =1 21 + 0 2 0 = 21
Se obine: 111 110 +10=1 000 000 = 2 6
Rezult c: 111 110 = 1 000 000 10 = 2 6 21
nlocuind acest rezultat n expresia obinut anterior pentru calcularea
produsului se obine:
X Y = X (2 6 21 ) = X 62
Ultima relaie ne arat c putem calcula acest produs numai printr-o
adunare i o scdere a denmulitului. Aceast schem poate fi extins la orice
numr de blocuri de 1 din cadrul nmulitorului, inclusiv la cazul cnd unele
blocuri conin o singur cifr 1. Astfel dac nmulitorul este
Y = 00111010
produsul celor dou numere poare fi scris ca
X Y = X (25 + 2 4 + 23 + 21 ) = X 58
Sau efectund nlocuirile:
2 5 + 2 4 + 2 3 = 2 6 2 3 i 21 = 2 2 21 se obine:
X Y = X (26 23 + 22 21 ) = X 58
Algoritmul lui Booth utilizeaz aceast schem, efectund o adunare a
denmulitului atunci cnd ntlnete prima cifr a unui bloc de 1 (01) i o
scdere a acestuia atunci cnd ntlnete sfritul acestui bloc (10) . Acest
algoritm poate fi aplicat i n cazul unui nmulitor negativ.
innd seama de observaia de mai sus, rezult urmtorul algoritm al metodei
Booth: la fiecare pas al operaiei se testeaz doi bii alturai ai nmulitorului, y i (bitul
curent) i y i 1 (bitul testat n pasul precedent, numit i bit de referin). Testarea se
efectueaz ncepnd cu bitul c.m.p.s. al nmulitorului. In funcie de valoarea biilor
testai y i y i 1 , se efectueaz operaiile indicate n tabelul 3.3.
Tabelul 3.3.
yi yi 1
00
01
10
11
Operaii
Deplasare produs parial la dreapta
Adunare denmulit, deplasare produs parial la dreapta
Scdere denmulit, deplasare produs parial la dreapta
Deplasare produs parial la dreapta
Bn Bn-1
B1 B0
Sumator / Scztor
de n+1 bii
An An-1 An-2
Deplasare
Scdere/Adunare tergere
Bloc de comand
ncrcare
Qn Qn-1
A1 A0
Q1 Q0
Q-1
ncrcare
Test Q0Q-1
tergere
Start
Stop
Fig. 3.8
Dispozitivul de nmulire care implementeaz metoda Booth conine un
registru combinat A _ Q , format din registrul acumulator A i registrul Q , de
cte n + 1 poziii fiecare. In registrul Q se introduce nmulitorul iar n A se va
introduce, n timpul desfurrii operaiei de nmulire, produsul parial. Toate
B X Q Y Q-1=0
A 0 N n+1
Da
Nu
Q-1=1
Da
Nu
00
Q0=1
Da
Nu
10
01
A A-B
Q0=1
11
A A+B
Fig.3.9
Observaii:
1. Iniial, bistabilul Q1 este resetat, pentru ca bitul de referin pentru cifra
Q0 a nmulitorului s fie zero.
2. La deplasare se tine cont de regula de deplasare pentru numerele cu
X = 0 1101
Y = 1 0110
Scderea denmulitului din coninutul registrului acumulator A se efectueaz
prin adunarea complementului fa de 2 al acestuia X.
X = - X = 1 0011
In tabelul 3.4 este prezentat coninutul registrelor dispozitivului de
nmulire la fiecare pas al operaiei.
Tabelul 3.4. Execuia operaiei de nmulire 13 x (-10) prin metoda Booth.
Pas
A
0 0 0000
1 0 0000+
2 1 0011
1 0011
1 1001
3 1 1100+
4 0 1101
0 1001
0 0100+
Q
Q-1
B
1 0110 0 0 1101
0 1011 0 0 1101
0 1101
0 1011 0
1 0101 1
1 1010 1 0 1101
0 1101
1 1010 1
1 1101 0
Q0Q-1 N
Operaii
00
5 Iniializare
10
4 Deplasare A_Q la dreapta
Scdere denmulit
11
01
10
1 0011
1 0111
1 1011
Scdere denmulit
0 1101
1 1101
1 1110
0
1
01
X = Q Y + R
(3.5)
Operaia de mprire se reduce la o serie de scderi ale mpritorului din
restul parial, care se efectueaz numai dac restul parial este mai mare dect
mpritorul, caz n care cifra ctului este 1; n caz contrar, cifra corespunztoare a
ctului este 0.
S considerm urmtoarea operaie 147:11.
In binar avem
147 1001 0011
11 1011
10010011:1011= 00001101
Ct 13
1011
Rest parial
1110
1011
Rest parial
1111
1011
Rest 4
100
Ctul este 13, iar restul este 4. Pentru mprire se examineaz biii
dempritului, de la stnga la dreapta, pn cnd setul biilor examinai reprezint
un numr mai mare sau egal cu mpritorul. De exemplu, setul biilor examinai
este 1, 10, 100, 1001, 10010. Att timp ct setul biilor examinai este mai mic
dect mpritorul, se obin cifre de 0 pentru ct. Atunci cnd acest set este mai
mare sau egal cu mpritorul, se obine o cifr de 1 pentru ct. In continuare
mpritorul este sczut din partea corespunztoare a dempritului, obinndu-se
un rest parial. La fiecare pas al operaiei se adaug cte un bit din demprit la
restul parial, pn cnd se obine un numr mai mare sau egal cu mpritorul.
Se scade apoi mpritorul din restul parial, obinndu-se un nou rest parial.
Operaia continu pn cnd se examineaz toi biii dempritului.
In cazul n care mpritorul este zero, operaia de mprire trebuie oprit,
Y
Bn
Bn-1 Bn-2
B1 B0
Sumator / Scztor
de n bii
Qn
An An-1 An-2
A1 A0
Qn-1 Qn-2
Q1 Q0
tergere
Adunare
Scdere
Bloc de comand
N
Deplasare
ncrcare
ncrcare
Start
Stop
Fig. 3.10
Structura dispozitivului de mprire care utilizeaz metoda refacerii restului
parial este prezentat n figura 3.10.
Regitri A , B i Q au cte n + 1 poziii. Regitri A i Q se pot deplasa la
stnga, astfel nct bitul Qn 1 va trece n A0 . Bitul Qn nu particip la deplasare.
Sumatorul este de n bii. Coninutul registrului B poate fi adunat sau sczut din
coninutul registrului acumulator A .
Organigrama operaiei de mprire prin metoda refacerii restului parial este
prezentat n figura 3.11.
Dempritul X se ncarc n registrul Q . Semnul dempritului se
pstreaz n poziia Qn a registrului Q . mpritorul Y se ncarc n registrul B .
Numrtorul N se iniializeaz cu numrul cifrelor de mrime n. In fiecare etap a
operaiei, se deplaseaz registrul combinat A _ Q la stnga cu o poziie, iar apoi se
efectueaz o scdere a mpritorului (registrul B ) din restul parial (registrul A ).
Dac rezult un numr pozitiv n acumulator ( An = 0 ), cifra ctului este 1, care se
introduce n poziia Q0 a registrului Q . Dac rezult un numr negativ n
acumulator ( An = 1 ), cifra ctului care se introduce n poziia Q0 este 0. Valoarea
cifrei ctului care se obine n aceast etap este deci:
Q0 = A n
Qn = Qn Bn
Start
A_Q X B Y
Nn
Qo A n
Da
Nu
An = 1
AA + B
N N-1
Nu
N=0
Da
An Qn Qn Qn Bn
Stop
Fig. 3.11
In organigram nu sunt artate testele care trebuie efectuate dup etapa de
iniializare. Astfel, trebuie s se testeze dac mpritorul este zero; n caz afirmativ,
operaia se oprete i se indic o eroare de mprire cu zero.
Exemplu
Considerm numerele X = 13 i Y = 5 . Reprezentarea n MS a acestor
Q
1101
1010
B
0101
Q0 Qn N
Operaii
0
0
4 Iniializare
Deplasare A_Q la stnga
Scdere mpritor
Adunare mpritor
101 0
01 0 0
3
Deplasare A_Q la stnga
Scdere mpritor
Adunare mpritor
01 00
100 0
0101
1001
001 0
0101
2
Deplasare A_Q la stnga
Scdere mpritor
1
Deplasare A_Q la stnga
Scdere mpritor
Adunare mpritor
0010
0101