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.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 (
α) 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.
|
||||||||||||||||||||||
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
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |