Sunteți pe pagina 1din 6

182

Arhitectura calculatoarelor

Se testeaz bitul Q0 al nmulitorului, i dac acest bit este 1, se adun denmulitul la produsul parial aflat n registrul acumulator. Se deplaseaz registrul combinat A_Q la dreapta cu o poziie; pe poziia c.m.s. a registrului A se introduce 0. Se decrementeaz apoi numrtorul N. Dac numrtorul nu a ajuns la 0, se continu cu pasul urmtor al operaiei, testnd urmtorul bit al nmulitorului. Dac numrtorul este 0, se transfer semnul rezultatului din bistabilul Qn pe poziia c.m.s. a registrului acumulator.

Exemplul 6.2
Considerm X = 9, Y = -12. Execuia operaiei de nmulire este ilustrat n Tabelul 6.4, care prezint coninutul registrelor dispozitivului de nmulire n fiecare pas al operaiei.
Tabelul 6.4. Execuia operaiei de nmulire 9 (-12) prin metoda direct.
Pas 0 1 2 3 A 0 0000 0 0000 0 0000 + 1001 0 1001 0 0100 + 1001 0 1101 0 0110 1 0110 Q 1100 0110 0011 0011 1001 1001 1001 1100 1100 1001 1 1 0 0 0 0 B 1001 1001 1001 1001 1 1 1 Qn 1 1 1 Q0 0 0 1 N 4 3 2 Operaii Iniializare Deplasare A_Q la dreapta Deplasare A_Q la dreapta Adunare denmulit Deplasare A_Q la dreapta Adunare denmulit Deplasare A_Q la dreapta Stabilire semn rezultat

Rezultatul este: 1 0110 11002 = -0110 11002 = -6Ch = -(616+12) = 108.

6.2.2.2. Metoda Booth


Dac numerele din calculator sunt reprezentate n C2, se prefer o metod de nmulire care opereaz direct asupra numerelor n aceast reprezentare. Avantajul unei asemenea metode const n eliminarea operaiei de complementare a operanzilor i a rezultatului, dac acetia sunt negativi, ceea ce este important n cazul conversiei din C2 n MS, care este mai dificil dect cea din C1 n MS. Asemenea metode sunt metoda BurksGoldstine-von Neumann, metoda Robertson i metoda Booth. Dintre acestea, metoda Booth (elaborat de A. D. Booth i K. H. V. Booth), este cea mai utilizat. Fie X i Y denmulitul, respectiv nmulitorul. nmulitorul se poate exprima sub forma: Y = yn 2 n +

y 2
i i =0

n 1

(6.21)

6. Unitatea aritmetic i logic

183

unde yn este bitul de semn. Pentru nceput, se consider c nmulitorul este pozitiv, deci yn = 0. Produsul XY va fi:

XY = X y0 20 + y1 21 + y 2 2 2 + ... + y n1 2 n1 + yn 2 n

(6.22)

Fiecare cifr yi se va nlocui cu diferena a dou cifre alturate ale nmulitorului, yi-1 yi. Astfel, se vor efectua urmtoarele nlocuiri: y0 y1 y2 yn-1 yn cu y-1 y0 cu y0 y1 cu y1 y2 cu yn-2 yn-1 cu yn-1 yn

XY = X y0 2 0 + ( y0 y1 ) 21 + ( y1 y 2 ) 2 2 + ... + ( yn2 y n1 ) 2 n1 + ( y n1 yn ) 2 n (6.23)


Se obine:

Presupunnd c y-1 = 0, produsul devine:

XY = X y0 21 2 0 + y1 2 2 21 + ... + y n1 2 n 2 n1 yn 2 n
0 0

[ ( = X (y 2

+ y1 2 + ... + yn1 2
1

n 1

( y 2 )
n n

= X yn 2n +

y 2
i i i =0

n 1

Deoarece yn = 0, n parantez se afl valoarea nmulitorului Y. nlocuirea este deci corect. Pentru cazul n care nmulitorul este negativ, demonstraia se efectueaz n mod similar. Diferena yi-1 yi a dou cifre alturate poate fi 1, 1, sau 0. Dac diferena este 1, trebuie s se efectueze o adunare a denmulitului la produsul parial. Dac diferena este 1, trebuie s se efectueze o scdere a denmulitului din produsul parial. Dac diferena este 0, nu trebuie s se efectueze nici adunarea, nici scderea denmulitului pentru aceast cifr i a nmulitorului. Se observ c dac diferena yi-1 yi este 1, cele dou cifre alturate yi yi-1 ale nmulitorului sunt 01, dac diferena este 1, cele dou cifre sunt 10, iar dac diferena este 0, cele dou cifre sunt 00 sau 11. Rezult urmtorul algoritm al metodei Booth: n fiecare pas al operaiei se testeaz doi bii alturai ai nmulitorului, yi (bitul curent) i yi-1 (bitul testat n pasul precedent, numit i bit de referin). Bitul de referin pentru bitul c.m.p.s. al nmulitorului este y-1 = 0. Testarea se efectueaz ncepnd cu bitul c.m.p.s. al nmulitorului. n funcie de valoarea biilor testai yi yi-1, se efectueaz operaiile indicate n Tabelul 6.5.

184

Arhitectura calculatoarelor

Tabelul 6.5. Operaiile efectuate la nmulirea prin metoda Booth, n funcie de valoarea biilor testai.
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

Structura unui dispozitiv de nmulire prin metoda Booth este prezentat n Figura 6.11.

Figura 6.11. Schema bloc a unui dispozitiv de nmulire prin metoda Booth.

Dispozitivul de nmulire care utilizeaz aceast metod conine un registru combinat A_Q, format din registrul acumulator A i registrul Q, de cte n+1 poziii, care pstreaz produsul parial, respectiv nmulitorul. n acest caz, toate poziiile nmulitorului, inclusiv cea de semn, particip la deplasare. Registrul B, care pstreaz denmulitul, are de asemenea n+1 poziii. Aceste registre trebuie s aib posibiliti similare cu cele utilizate la metoda de nmulire direct. Mai este necesar un bistabil Q-1, care pstreaz bitul de referin. Sumatorul utilizat trebuie s aib n+1 poziii, deoarece se opereaz cu toate cifrele, inclusiv cea de semn.

6. Unitatea aritmetic i logic

185

Blocul de comand testeaz biii Q0, Q-1 n fiecare pas al operaiei. n funcie de valoarea acestor bii, se efectueaz operaiile necesare, astfel: Q0 Q1 = 0 : Deplasare la dreapta a registrului A_Q Adunare denmulit, deplasare la dreapta a registrului A_Q Scdere denmulit, deplasare la dreapta a registrului A_Q

Q 0Q1 = 1 : Q0 Q 1 = 1 :

Figura 6.12. Organigrama operaiei de nmulire prin metoda Booth.

Observaii
1. 2. Iniial, bistabilul Q-1 este ters, pentru ca bitul de referin pentru cifra c.m.p.s. a nmulitorului s fie zero. La deplasare se ine cont de regula de deplasare pentru numerele cu semn reprezentate n C2. n acest caz, o deplasare spre dreapta necesit introducerea n poziia de semn a bitului aflat aici nainte de deplasare. Bitul de semn din registrul A, deci An, este deplasat n An-1, dar rmne i n An (se efectueaz o deplasare aritmetic). Se testeaz toi biii nmulitorului, inclusiv bitul de semn.

3.

186 4.

Arhitectura calculatoarelor Rezultatul se formeaz n registrul A_Q de 2n+2 poziii, bitul de semn repetndu-se pe primele dou poziii (rezultatul propriu-zis are 2n+1 bii). Organigrama operaiei de nmulire prin metoda Booth este prezentat n Figura

6.12. n etapa de iniializare, se ncarc denmulitul i nmulitorul n registrul B, respectiv Q, bistabilul Q-1 i registrul acumulator sunt iniializate cu 0, iar numrtorul N este iniializat cu n+1. n continuare se testeaz bitul de referin Q-1 i bitul Q0 al nmulitorului. Dac Q0 Q-1 = 01, se adun denmulitul din registrul B la produsul parial din registrul A. Dac Q0 Q-1 = 10, se scade denmulitul din produsul parial. Pentru celelalte dou combinaii ale biilor testai, n aceast etap nu se efectueaz nici o operaie. n etapa urmtoare se deplaseaz la dreapta registrul combinat A_Q, astfel nct n poziia bitului de semn An s rmn aceeai valoare (pstrarea bitului de semn este indicat n organigram prin transferul An An). Se decrementeaz numrtorul N, i dac acesta nu a ajuns la zero, se continu operaia cu testarea biilor Q0 Q-1. Dac numrtorul N a ajuns la zero, operaia se termin.

Exemplul 6.3
Considerm X = 13, Y = -10. Exprimarea binar a acestor numere n C2 este urmtoarea: X = 0 11012 Y = 1 01102 Scderea denmulitului se efectueaz prin adunarea complementului fa de 2 al acestuia: X (C2) = X = 1 00112
Tabelul 6.6. Execuia operaiei de nmulire 13 (10) prin metoda Booth.
Pas 0 1 2 A 0 0000 0 0000 + 1 0011 1 0011 1 1001 1 1100 + 0 1101 0 1001 0 0100 + 1 0011 1 0111 1 1011 Q 1 0110 0 1011 0 1011 1 0101 1 1010 1 1010 1 1101 1 1101 1 1110 Q-1 0 0 0 1 1 1 0 0 1101 0 1 01 0 0 1101 0 1101 10 1 B 0 1101 0 1101 0 1101 11 01 3 2 Q0Q1

N 5 4

Operaii Iniializare Deplasare A_Q la dreapta Scdere denmulit Deplasare A_Q la dreapta Deplasare A_Q la dreapta Adunare denmulit Deplasare A_Q la dreapta Scdere denmulit Deplasare A_Q la dreapta

00 10

3 4

6. Unitatea aritmetic i logic

187

Coninutul registrelor dispozitivului de nmulire n fiecare pas al operaiei este prezentat n Tabelul 6.6. Rezultatul este: 1 0111 11102 = -1000 00102 = -82h = -(816+2)= -130.

6.2.2.3. nmulirea pe grupe de cifre


n cazul acestei metode, nmulirea se efectueaz cu mai multe cifre ale nmulitorului n acelai timp. Se reduce astfel numrul de pai necesari efecturii operaiei. Sunt necesare ns circuite suplimentare care s permit deplasarea cu mai multe poziii i adunarea multipl a denmulitului ntr-un singur ciclu de adunare. Pentru reducerea complexitii circuitelor, se utilizeaz grupe de doi sau trei bii. n cazul unor grupe de doi bii, n funcie de cifrele grupelor, pot apare urmtoarele situaii: 00 : nu se efectueaz adunarea; 01 : se adun denmulitul (X) la produsul parial; 10 : se adun 2X la produsul parial; 11 : se adun 3X la produsul parial. Dup fiecare test al grupei de cifre, se efectueaz o deplasare la dreapta a registrelor A_Q cu dou poziii. Pentru adunarea dublului denmulitului (2X), fiecare bistabil al registrului B care pstreaz denmulitul are dou ieiri la sumator. Bistabilul din poziia i are o ieire la poziia i a sumatorului, i o alta la poziia i+1. Astfel, se poate aduna X la produsul parial, sau se poate aduna X deplasat cu o poziie spre stnga, ceea ce echivaleaz cu 2X. Pentru adunarea triplului denmulitului (3X), exist mai multe posibiliti: Pstrarea ntr-un registru a triplului denmulitului; Adunarea denmulitului cu dublul su; Scderea denmulitului din produsul parial, urmnd ca dup deplasarea la dreapta cu dou poziii a produsului parial (echivalent cu nmulirea X cu 4), s se adune X la produsul parial. Astfel, se scade X i se adun 4X. Pentru a se putea efectua adunarea n pasul urmtor, blocul de comand conine un bistabil suplimentar (BS), care va fi poziionat la 1 de fiecare dat cnd se ntlnete combinaia 11. Deci, operaia efectuat ntr-un pas depinde att de biii din grupul testat, ct i de coninutul bistabilului BS setat n pasul anterior. La sfritul operaiei, dac BS = 1 se introduce un pas suplimentar, n care se adun X la produsul parial, fr s se mai efectueze o deplasare. Operaiile efectuate sunt indicate n Tabelul 6.7. Biii grupului testai sunt notai cu yi+1 yi.

S-ar putea să vă placă și