Documente Academic
Documente Profesional
Documente Cultură
REFERAT
BAZELE INFORMATICII
NMULIRE I MPRIRE
BAZELE INFORMATICII
INMULTIRE SI IMPARTIRE
1.1. Principiul inmultirii
Utilizarea operatorilor de inmultire si de impartire implica, in interiorul unui
calculator, executarea unui algoritm compus din operatii elementare. Utilizarea intensiva
a unor asemenea operatori incetineste executia programului. In scopul maririi vitezei de
executie, aceasta se face prin logica cablata (compusa doar din porti logice).
Operatia de inmultire, chiar daca este complexa se poate intotdeauna descompune
in operatii mai simple. Inmultirea se efectueaza deplasand deinmultitul multiplicat cu
cifra corespunzatoare din inmultitor. Fig.1. arata o inmultire realizata dupa aceasta
metoda.
x
11
23
33
22
253
1 0 11
10 1 11
1 0 11
10 1 1
1 01 1
00 0 0
+1 0 1 1
deinmultit
inmultitor
deplasarea
deinmultitului
produs
111 1 1 1 0 1
Fig.1.
In loc sa avem o lista lunga de deinmultiti deplasati, vom efectua la fiecare iteratie
suma acestora, deci vom crea produse partiale. Fig.2. prezinta o inmultire cu tehnica
produselor partiale.
1 0 11
deinmultit
x
1 1 01
inmultitor
initializare
0 0 0 00 0 0 0
produs partial
+
1 0 11
deinmultit decalat
0 0 0 0 1 0 1 1
produs partial
+
0 0 0 0
0 0 0 0 1 0 1 1
produs partial
+
1 0 1 1
0 0 1 1 0 1 1 1
produs partial
+
1 0 1 1
produs
1 0 0 0 1 1 1 1
Fig.2.
Atunci cand se inmulteste un cuvant de n biti cu un cuvant de m biti, produsul va
fi pe n+m biti.
1.2. Inmultirea fara semn
D A B
A b j
2 j
(1)
j0
Cu deinmultitul A:
n1
A a i 2
a i 0,1
(2)
B a j 2 ji
b j 0,1
(3)
i0
si inmultitorul B:
n 1
j0
Cum bj nu poate lua decat valorile 0 sau 1, fiecare produs partial Abj nu poate lua
decat valorile 0 sau A, si produsul (1) se reduce la un sir de adunari si de deplasari.
Pentru a simplifica realizarea inmultirii vom modifica ecuatia (1) astfel incat sa nu
mai apara decat inmultiri cu 2, adica translatii de un bit spre stanga.
n-2
(4)
(5)
(6)
B2
B
Cu A si B amandoua pozitive, inmultirea se executa ca pentru numerele logice.
Daca unul dintre factori este negativ vom avea:
(7)
n
n
A2
A B A (2 B) A 2 A B
Pentru orice valoare a lui A, termenul A2 iese din domeniul de reprezentare daca
produsul este codificat pe n biti; deci in acest caz inmultirea da rezultatul cautat
,
sub forma de complement fata de 2.
Pentru A si B amandoua negative vom scrie:
(8)
n
n
2n
n
n
A B
A B (2
A) (2
Rezultatul este
B) 2
2 A 2 B A B
-2
-3
x1
extindere de semn
x02
+
+
2
x12
x12
1
1
1 1
1 1
1 1 1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
deinmultit
inmultitor
produs partial
1 0
1 1 0
produsul
+6
Fig.3.
Se observa ca inmultirea adoua numere de n biti A si B utilizeaza un circuit de
adunare de n biti, deci produsul D=AB nu va fi corect decat daca:
-2
n-1
n-1
<D<2 -1
(9)
A 2n 1 a i 2i
(11)
i0
2 | A | 2
a i 2i
n1
(12)
i0
n 1
As | A | 2
2 a i
in membrul drept al
n 2
i0
2n 1 a i 2i
(13)
i0
Este mai comod sa consideram ca bitul de semn al unui numar aritmetic este
n-1
multiplicat cu 2 , ceea ce da, pentru un numar aritmetic pozitiv sau negativ, o valoare
As definita prin:
n 2
As a n 1 2n 1 a i 2i
i0
(14)
Atunci cand inmultitorul este interpretat conform relatiei (14), in loc sa fie
n
considerat un numar in complement fata de 2, termenul corector 2 specific
reprezentatarii in complement fata de 2 dispare; in consecinta in relatiile (7) si (8) dispar
n
termenii paraziti; produsul nu mai trebuie definit modulo 2 , ceea ce permite extinderea
produsului in functie de numarul de biti semnificativi ai rezultatului.
1.6. Exemplu
Cu metoda descrisa in paragraful precedent, inmultirea poate fi realizata tot printrun sir de n etape de adunare -translatie cu un circuit de adunare de n biti. Primele n -1
etape sunt identice cu cele la care inmultitorul este reprezentat in complement fata de 2.
n-1
n-1
In ultima etapa deinmultitul este inmultit cu 2 in loc sa fie inmultit cu 2 , ceea ce
inseamna inlocuirea cu complementul fata de 2 daca a n -1=1. Fig.4 prezinta inmultirea
binara in complement fata de 2 cu compensarea depasirii de capacitate prin corectarea
semnului in ultima etapa.
-7
-5
x1
extinderea semnului
x12
2
x02
x(-1)2
+
+
1
0
1 1
0 1
+
3
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1 1
1 0 1 0 0 0 1 1
corectia semnului
prin complementul
fata de 2 al
deinmultitului
35
Fig.4.
1.7. Circuit de inmultire binar cablat
Realizarea unei functii matematice cu ajutorul circuitelor electronice discrete se
numeste functie cablata. Aceasta solutie se utilizeaza la coprocesoarele aritmetice.
Exemplele precedente arata ca inmultirea binara se realizeaza cu ajutorul operatiilor
elementare urmatoare:
- inmultirea cu o unitate
- translatia
Abi
Apbi + Apbi
- adunarea
Pentru inmultirea cu o unitate exista doar doua cazuri: inmultirea operandului cu
1, care este identitatea, si inmultirea cu 0, care da un rezultat nul. Operatorul logic AND
joaca rolul multiplicatorului unitar, fiecare bit al lui A fiind combinat cu bi. (fig.5.)
an-1
a1
a0
bi
Fig.5.
Inmultirea cu o unitate si circuitul de adunare care-i urmeaza sunt asociate pentru
a forma un circuit de adunare conditionata a carui schema functionala este data in fig.6.
Pi
A
bi
ADDcond
Pi+1
Fig.6.
unde Pi este produsul partial de rang i. Circuitul de adunare conditionata de lungime n
poate fi descompus in celule de inmultire operand fiecare pe un singur bit al
deinmultitului. Fig.7. arata structura unei asemenea celule, tinand cont de transportul ce
trebuie sa se propage de la o celula la alta.
Pi,j
aj
bi
bi
Cj
ADDC
Cj+1
aj
Pi+1,j
Fig.7.
a2
a1
a0
b0
b2
b3
0
P7
P6
P5
P4
P3
P2
Fig. 8.
b1
P1
P0
8
24
24
104
8
13
--
1
- 1
0
-
1 0 1 0 0
0 0 0
1 0 1 0
1 0 0 0
0 0 1 0 0
- 0 0 0 0
0 1 0 0
- 1 0 0
- - Fig.9.
deimpartit
1 0 0 0 impartitor
1 1 0 1 cat
0
0
-
La fiecare iteratie noul deimpartit, denumit deimpartit partial, este obtinut scazand
din deimpartitul precedent, impartitorul multiplicat cu un factor. Acest factor poate fi egal
cu 0, daca noul deimpartit partial ar deveni negativ pentru o valoare a factorului diferita
de zero.
1.9. Impartirea binara intreaga
Impartirea binara intreaga a lui A la B este definita prin:
A=BQ+R
; R<B
(15)
unde A este deimpartitul, B impartitorul, Q catul si R restul. Deimpartitul A este un numar
binar de n biti:
n 1
A a i 2i
(16)
i0
B b j 2 j
(17)
j0
(18)
Q q k 2k
k 0
caz contrar, daca A-B2 este negativ, primul bit al catului este 0. In aceste conditii,
deimpartitul partial devine:
n-1
n-1
D0=A-B2
qn-1=1 si
A-B2 0
(20)
n-1
D0=A
qn-1=0 si
A-B2 <0
D1=D0-Bqn-22
(21)
n-2
unde qn-2=1 daca D0-B2 0, si qn-2=0 in caz contrar.
Prin recurenta, observam ca fiecare etapa i a impartirii presupune o translatie a lui
B si o scadere conditionata:
Di=Di-1-Bqn-i-12
n-i-1
(22)
10.10. Exemplu
Operatiile descrise in relatiile (19) si (20) pot fi reprezentate grafic cu ajutorul
unei scheme logice (flowchart) . Cele trei simboluri ce constituie elementele de baza ale
unei scheme logice, realizeaza:
- o actiune (operatie)
- un test (o conditie)
- o legatura (urmatoarea operatie)
O actiune este reprezentata printr-un dreptunghi in care se scrie explicit operatia
efectuata. (fig.10)
D=A+3
Fig.10.
Un test este simbolizat printr-un romb in care se scrie conditia ce se testeaza; daca
rezultatul testului este fals se iese prin coltul marcat cu un cerc, in caz contrar prin unul
dintre celelalte colturi (fig.11). Legatura intre operatia curenta si operatia viitoare este
descrisa printr-o linie a carei extrema cu sageata indica operatia viitoare. (fig.11)
NU
DA
D>0
Fig.11.
Schema bloc din fig.12. arata etapa de rang i=5 din impartire corespunzatoare
relatiilor (20) si (22),
NU
D5B2
DA
D6=A
D6=D5-B2
q5=0
q5=1
Fig.12.
1.11. Impartirea cu restaurare
Scaderea conditionata poate fi realizata prin metoda impartirii cu restaurare
(fig.13) in care scaderea este efectuata sistematic, si se compenseaza scaderea printr-o
adunare auxiliara daca rezultatul scaderii este negativ. Scaderea conditionata se
descompune atunci sub forma:
n-i-1
Di=Di-1-B2
(23)
daca Di0
Di=Di
cu qn-i-1=1
(24)
daca Di<0
Di=Di+B2
n-i-1
cu qn-i-1=0