Documente Academic
Documente Profesional
Documente Cultură
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
y 2
i i =0
n 1
(6.21)
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 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.
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 :
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
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.