Sunteți pe pagina 1din 9

UNIVERSITATEA DIN PETROANI

FACULTATEA DE INGINERIE MECANIC I


ELECTRIC
CURS POSTUNIVERSITAR INFORMATIC

REFERAT
BAZELE INFORMATICII
NMULIRE I MPRIRE

Student: Gheorghe (Istratie) Aurora


An universitar 2011-2012
An I CPUI

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

Inmultirea a doua numere logice de n biti este definita prin:


n 1

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

D=(Ab0)+(2A) b1+(2(2A)) b2++(2(2 A)) bn-1

(4)

1.3. Inmultirea numerelor cu semn


Algoritmul de inmultire dat de ecuatia (4) poate si extins la numerele aritmetice
reprezentate in complement fata de 2, calculul direct al produsului fiind un pic mai
delicat. Fie doua numere aritmetice A si B de n biti: daca A si B sunt numere negative, se

vor scrie in complement fata de 2 numerele pozitive corespunzatoare A si B , cu:

(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

A B daca nu exista depasire de capacitate, deoarece toti ceilalti

termeni ies din domeniul de reprezentare.


1.4. Exemplu
Dupa cum s-a prezentat in paragraful precedent, inmultirea numerelor aritmetice
poate fi realizata printr-un sir de translatii spre stanga si adunari. Ca toate operatiile
elementare realizate in complement fata de 2, este necesara extinderea semnului fiecarui
produs partial inaintea adunarii urmatoare. Fig.3 prezinta o inmultire binara in
complement fata de 2 fara depasire de capacitate.

-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

al doilea produs partial

1 0

al treilea produs partial

primul produs partial

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)

1.5. Inmultirea numerelor cu semn fara depasire


Am vazut in paragraful precedent ca inmultirea a doua numere aritmetice de n biti
n-1
produce o depasire de capacitate daca produsul este mai mare decat 2 - 1 sau mai mic
n-1
decat 2 . Este posibil sa se elimine aceasta restrictie interpretand intr-o maniera putin
diferita reprezentarea unui numar in complement fata de 2.
Exista mai multe reprezentari ale unui numar A in complement fata de 2:
n
A=2 -|A| (10)
unde |A| reprezinta valoarea absoluta a numarului A codificat pe n biti. Daca numarul A
este negativ, putem pune in evidenta bitul de semn sriind:
n 2

A 2n 1 a i 2i

(11)

i0

Putem egala fara nici o problema relatiile (10) si (11), rezultand:


n 2

2 | A | 2

a i 2i

n1

(12)

i0

Valoarea cu semn As a numarului A este data trecand 2


relatiei (12):
n 2

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.

Juxtapunerea celulelor (din fig.7.) in plan, permite realizarea operatorului de


inmultire complet. Decalarea fizica a celulelor spre stanga realizeaza operatorul SHL.
Fig.8. da reprezentarea acestei retele, denumita retea iterativa (walace) datorita repetarii
aceleiasi celule.
a3

a2

a1

a0

b0

b2

b3

0
P7

P6

P5

P4

P3

P2
Fig. 8.

b1

P1

P0

Descompunerea spatiala si recurgerea la circuite de adunare fara transport,


organizate in retea Wallace, permite obtinerea unitatilor de multiplicare foarte rapide.
1.8. Principiul impartirii
Operatia de impartire este intotdeauna descompusa in operatii mai simple.
Impartirea se realizeaza conform metodei prezentate in fig.9.

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

la fel, impartitorul B este un numar binar de m biti:


m1

B b j 2 j

(17)

j0

Restul R al impartirii lui A la B este obligatoriu mai mic decat B, si poate fi


reprezentat printr-un numar de m biti. Catul Q este maxim atunci cand B ia valoarea cea
mai mica, aici B=1, Q trebuie sa fie reprezentat printr-un numar de n biti, deoarece in
acest caz Q=A. Catul este deci definit prin:
n 1

(18)

Q q k 2k
k 0

Operatia de impartire consta in determinarea succesiva a bitilor q k ai catului,


plecand de la bitul cel mai semnificativ qn-1. Ca la impartirea din paragraful precedent,
cautam deimpartitul partial
D0:
n-1
D0=A-Bqn-12 >0
(19)
Daca aceasta conditie este satisfacuta pentru q n-1=1, primul bit al catului este 1. In
n-1

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

Operatia poate continua cu determinarea bitului q n-2 al catului, cu:


n-2

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

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