Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice
Acasa » scoala » informatica
Sinteza unui dispozitiv secvential de inmultire a numerelor binare reprezentate in complement de doi prin procedura James Robertson

Sinteza unui dispozitiv secvential de inmultire a numerelor binare reprezentate in complement de doi prin procedura James Robertson


Sinteza unui dispozitiv secvential de inmultire a numerelor binare reprezentate in complement de doi prin procedura James Robertson

Investind in prezentare de detaliu a dispozitivului de inmultire (a multiplier-ului) din fig. 3.6, sa incercam sa utilizam cat mai plenar elementele lui de structura pentru ca, prin cat mai facila reconfigurare, sa ne acordam cu ambele reprezentari de operanzi si rezultate, semn-marime (SM) si complement de doi (C2). Precizam ca, spre deosebire de situatia expusa in anteriorul paragraf, pe magistrale sunt vehiculate doar numere in cod C2, atat operanzii intrare, cat si pentru rezultatul produs.

Intr-o prima abordare, sa supunem analizei folosirea integrala a multiplier-ului din fig. 3.6 transformand acei operanzi intrare negativi cu reprezentare in C2 in una SM si, apoi, in final, daca produsul rezulta negativ supunandu-l pe acesta unei transformari inverse, din SM in C2. Cazul cel mai defavorabil, care trebuie acoperit, corespunde situatiei cand unul dintre operanzi, precum si, in mod firesc, produsul sunt negativi, situatie in care avem de-a face cu 3 operatii de complementare ( una pentru operandul negativ si doua pentru produs, acesta fiind operat in doua transe separate). Cazului cand ambii operanzi sunt negativi ii corespunde doar doua complementari, pentru ca in acest caz, in mod evident, produsul rezulta pozitiv si nu necesita complementare. Dar, asa cum este cunoscut, o complementare cel putin timpul unei adunari fara a mai lua in consideratie operatiile de testare a semnelor. Criticam deci aceasta solutie sub aspectul degradarii de performanta cauzate de operatiile suplimentare de complementare si recomplementare si vom incerca o abordare care sa nu implice transformari de cod.



A

Q

M

COUNT

Interval control

signals activated

c0

c1

c2

c3

c3

c3

c2

c3

c2

c3


c3

c2

 EXOR

c3

* COUNT7=1

0

c4

c5

c6

Fig.3.9

In acest sens, vom pleca de la acea forma de reprezentare a codului C2 datorata lui James Robertson [Erha 04],[Ital 99],[Haye 98] s.a., in conformitate cu care pentru un numar binar X = xn-1xn-2xix1x0 codul C2 este dat de relatiile:

, pentru X intreg

si 

, pentru X fractionar

unde bitii coincid cu xi in cazul numerelor pozitive, (xn-1=0), respectiv corespund bitilor codului C2 a lui X in cazul numerelor negative (xn-1=1).

Exemplificand relatiile (3.5) si (3.6), vom adopta configuratia binara exemplu folosita in fig. 3.9 pentru multiplier-ul X, adica XSM=x7x6xi.x1x0=11011001. Acesteia, prin aplicarea cunoscutei proceduri de trecere in cod C2, ii corespunde XC2==10100111. Pe de o parte, daca interpretam pe XC2 ca numar intreg, in baza relatiei (3.5), avem

XC2=+. Pe de alta parte, daca interpretam pe XC2 ca numar fractionar, in baza relatiei (3.6), avem .

In intentia noastra declarata de a folosi, la inmultirea numerelor binare in C2, cu cat mai putine modificari structura din figura 3.6, reliefam faptul ca, la inmultirea numerelor binare in SM, am realizat o parcurgere, bit cu bit, a multiplier-ului X de la dreapta spre stanga incepand cu iteratiile (3.2) cu bitul cel mai putin semnificativ si progresand inspre bitul de semn. De fapt, fiecare bit al lui X a fost adus, prin deplasare la dreapta, in Q[0], unde i-a fost analizata valoarea, dupa care respectivul bit a fost eliminat. Dependent de valoarea bitului din Q[0], s-au executat doar deplasare (la Q[0]=0) sau adunare si deplasare (la Q[0]=1). Este momentul sa subliniem faptul ca, prezentand pe X in una din formele (3.5) sau (3.6), se obtine satisfacerea dezideratului tintit de a permite implementarea unei proceduri bazate pe pasi, fie doar de deplasare, fie de adunare si deplasare, la o parcurgere a multiplier-ului X de la dreapta la stanga, atunci cand X este reprezentat in C2. In functie de semnul lui X, se disting doua cazuri:

α) Cand X este pozitiv (xn-1=0 si ), pentru i=0, n-2), tratarea, prin prisma lui X, este absolut similara cu una data de procedura din figura 3.5.

β) Cand X este negativ (xn-1=1 si bitii corespund reprezentarii lui X in C2), se

parcurg bitii, de aceasta data, , ca si cand ne-am afla in cazul α, aplicand, cu observatia legata de evitarea adunarii lui 0, iteratia (3.2) pana cand se ajunge la bitul de semn. Astfel, se obtin produsele partiale cumulative P':

, pentru X intreg

si 

, pentru X fractionar

Valorile P' obtinute trebuie insa supuse unei suplimentare operatii de scadere, corespunzatoare bitului de semn - conform cu (3.5), respectiv (3.6), care realizeaza corectia faptului ca bitii xi' nu apartin unei reprezentari directe, semn-marime, ci reprezentarii in C2. Luand in consideratie (3.7), respectiv (3.8), produsele finale P rezulta prin pasul final de corectie (correction step) constand din scaderea, corespunzator aliniata, a lui Y din valorile P':

, pentru X intreg

si

, pentru X fractionar

Prin pasul de corectie bazat pe scadere a aparut un element neintalnit la algoritmul din fig. 3.5, unde am avut doar adunari. Dar scaderea se poate realiza prin adunarea complementului de 2 realizand artificiul transformarii sumatorului paralel intr-un scazator prin adausul, pe intrari, a unui strat de circuite EX-OR si adunarea unei unitati binare uzitand de intrarea cin. Putem face uz de parallel adder-ul din fig. 3.6 cu suplimentarile de rigoare. Apeland la aceasta solutie tehnica, bitul de semn nu necesita o tratare speciala (cum a fost cazul in fig. 3.5), ci el este supus aceleiasi operari ca oricare dintre ceilalti biti, ordinari, ai reprezentarii, ceea ce motiveaza extensia cu un rang a parallel adder-ului si a conexiunilor corespunzatoare la acesta (fig. 3.6).

Mai apare insa o problema, care este conexa cu reprezentarea in C2, de data acesta, a multiplicand-ului Y=yn-1yn-2..yjy1y0. Cand Y e pozitiv (yn-1=0), nu apar aspecte speciale intrucat avem de-a face cu inmultirea a doua numere pozitive (reamintim ca si in cazul unui X negativ, atata timp cat nu s-a ajuns la bitul de semn, portiunea lui X corespunzatoare bitilor xi' este considerata un numar pozitiv), deci produsele partiale rezulta a fi numere pozitive. Aceasta are importanta atunci cand respectivele produse sunt deplasate la dreapta, intrucat in rangul cel mai semnificativ se introduce, asa cum am vazut, un inofensiv, relativ la valoarea deplasata, 0. Daca insa Y este negativ (yn-1=1), lucrurile se schimba. Mai exact, atunci cand la parcurgerea de la dreapta spre stanga a lui X, se intalneste primul bit de 1, intrucat X este "inca" pozitiv, rezulta, prin (3.2), un produs partial negativ, determinand pana se ajunge la interpretarea semnului lui X, perpetuarea de valori negative inclusiv pentru produsul partial cumulativ, dat de (3.7), respectiv (3.8). Dar daca deplasam la dreapta un numar negativ in bitul cel mai semnificativ trebuie sa introducem, de data acesta, un inofensiv 1. Se poate spune ca produsele partiale se supun unei deplasari aritmetice (arithmetic shift [Haye98], [Yarb97]. Pentru bitii mai putin semnificativi ai lui X care au valoarea 0, rezulta, indiferent de Y, produse partiale nule, care, prin deplasare la dreapta, trebuie sa ramana nule. Pentru a tine seama de situatiile mentionate, la sinteza dispozitivului de inmultire se adauga un bistabil fanion (flag) F, care va furniza valoarea binara introdusa in rangul cel mia semnificativ al produsului partial.

Signs

Correction Step

Arithmetic Shift

xn-1

yn-1

no

no

no

yes

yes

no

yes

yes

Fig.3.9

Conclusiv, dependent de operanzilor, algoritmul de inmultire a numerelor binare reprezentate trebuie sa actioneze, dupa caz, functiile suplimentare de corectie si deplasare aritmetica asa cum este aratat in fig. 3.9. Odata realizate aceste comentarii, putem trece la prezentarea - tradusa in termenii aceluiasi limbaj de descriere adoptat - secventei de cod corespunzatoare procedurii de inmultire a numerelor binare reprezentate in C2, conform

metodei elaborata de James Robertson [Haye98]. Sinteza dispozitivului de inmultire, caruia ii atasam numele Robertson, cu caracteristici asemanatoare celor din fig 3.6 este expusa in fig. 3.11.

Fig.3.10

Efectuam comentariile noii proceduri (fig. 3.10) prin comparatie cu cea din fig.3.5, iar la noul dispozitiv (fig. 3.11), avand in vedere detalierea amanuntita deja realizata, vom insista doar asupra modificarilor fata de schema din fig. 3.6. Remarcam pentru inceput declararea flagu-lui D, care este initializata prin c0, impreuna cu A si COUNT. Setarea lui F se face, prin c2, odata cu adunarea (A+M), cele doua operatii nefiind conflictuale. Conform cu cele deja expuse, cand Z este negativ (M[7]=1) si in Q[0] apare prima unitate binara, avem Q[0] and M[7]=1 si F este pus pe 1, fiind mentinut in aceasta stare prin ( or F). Prin F se asigura deplasarea aritmetica (A[7]:=F).

Fig.3.11

Pe de alta parte, se observa ca parallel adder-ul este pe 8 ranguri, bitul de semn fiind supus aceleasi tratari ca si ceilalti biti. In fine, tot legat de parallel adder, se remarca prezenta portilor EX-OR, pe toata lungimea cuvantului (wordgate), care asigura formarea complementului de unu pentru Y atunci cand este activat semnalul c4, care este aplicat, de asemenea, intrarii cin a sumatorului. Deci, la valoarea complementata de unu a lui Y se mai aduna un 1 asigurandu-se formarea complementului de doi pentru Y si, prin adunarea acestuia la bitii mai semnificativi (din A) ai produsului partial cumulativ, se realizeaza, atunci cand X este negativ (Q[0]=1), pasul de corectie (enunt CORRECTION, la care neconflictual, pe frontul cazator a lui c4, se sterge semnul negativ. Dupa cum poate fi lesne observat, pentru scaderea de corectie este necesara generarea a doua semnale de control, c2 asigurand micro-operatia de adunare si c4 asigurand pe cea de complementare. In figura 3.12 se prezinta trecerea prin structura din figura 3.11 a aceluiasi exemplu din fig 3.9. Sunt aceleasi valori zecimale pentru cei doi operanzi, X = -89*2-7 si Y = -105*2-7, dar de aceasta data de pe magistrala sunt captate reprezentarile acestora in C2, adica XC2=10100111, respectiv YC2=10010111.

F

A

Q

M

COUNT

Interval control

signals activated

0010111

c0

c1

 AND

c2

10010111

11001011

c3

c2

01100010

10110001

c3

c2

01001000

10100100

c3

11010010

c3

11101001

c3

c2

10000000

11000000

c3

11100000

c3

*COUNT7

c2,c4

01001001

c5

c6

Fig.3.12

Produsul P este acelasi ca si cel din fig. 3.9 dar aceasta intrucat conjunctural, P este pozitiv. Daca P ar fi rezultat negativ, atunci intrucat este obtinut in C2, difera valoric fata de unul realizat de dispozitivul din fig. 3.6. Asa cum mentionam la un moment dat, in anexa A.2 sunt prezentate variantele de sinteza pentru unitatea de control dintr-un dispozitiv Robertson. In final, remarcam faptul ca procedura expusa (fig. 3.10), nu difera in termeni de complexitate amintiti, de cea de inmultire a numerelor binare in semn-marime, dar este mai eficienta decat cea bazata pe complementare, prezentata la inceputul acestui paragraf intreg si pozitiv x* constituie un sir binar, inclus in x, si constand dintr-un sir neintrerupt de unitati binare, in ambele parti, de cate un 0, adica:





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.