Accelerarea procesului de inmultire binara prin folosirea unui singur sumator cu salvarea transportului
Asa cum am vazut, un sumator paralel, realizat chiar si sub forma de arbore binar avand la baza conceptul CLA (carry lookahead adder), deci favorabil in ceea ce priveste compromisul performanta - cost (exprimat prin aria necesara integrarii structurii), atunci cand numerele de adunat au o latime considerabila de biti, timpul necesar executiei operatiei, care trebuie sa fie acoperit de perioada CLOCK-ului devine prohibitiv. Astfel, admitand ca numerele au 64 de biti, utilizand anterior amintitul CLA tree adder, trebuie asteptat intervalul de timp necesar propagarii semnalelor prin 27 de niveluri de logica (1 nivel pentru formarea , respectiv , 62=12 niveluri pentru formarea , respectiv , 62=12 niveluri pentru formarea si 2 niveluri pentru formarea ). Ori algoritmii secventiali studiati activeaza un astfel de sumator de un numar important de ori, care, dupa cum am vazut, depinde de structura binara particulara a inmultitorului X. In plus, acesti algoritmi, revendicand timpi variabili pentru operatia de inmultire, creeaza probleme la sincronizarea cu CPU-ul, la aplicarea eficienta a metodei de proiectare bazata pe pipelining, precum si pentru optimizari de compilator [HePa03].
O consistenta ameliorare a neajunsurilor semnalate o reprezinta apelarea la includerea in structura hardware a dispozitivului de inmultire a unui sumator cu salvarea transportului (Carry save adder, CSA), dupa modelul din fig. 3.36. Dupa cum este cunoscut si poate fi observat in figura, CSA consta din n celule sumator complet (full adder cell, FAC) independente, n fiind considerat numarul de biti ai reprezentarii. Fiecare FAC are 3 intrari (cate un bit din fiecare numar de adunat si un bit de carry din rangul anterior) si 2 iesiri (una pentru bitul suma si alta pentru bitul de carry in rangul urmator). Valorile logice prezente la cele 2 iesiri ale celor n FAC-uri sunt stocate in doua registre de n biti, unul destinat bitilor suma, notat in fig. 3.36 cu A (prin analogie cu registrul accumulator din dispozitivele deja studiate), si celalalt destinat bitilor de carry, notat in fig. 3.36 cu AC. Acesta din urma, in fond un registru companion a lui A, constituie o investitie hardware suplimentara fata de solutiile de implementare deja prezentate, ceea ce, coroborat cu faptul ca valoarea jumatatii mai semnificative a produsului partial cumulativ poate fi prezentata in mai multe moduri ca suma a continuturilor din doua registre, confera acestei metode si atributul de redundanta, fiind considerata o procedura de inmultire redundanta [HePa03].
|
Fig.3.36 |
Ca si anterior, initial multiplier-ul X este incarcat in registrul Q, iar multiplicand-ul Y este incarcat si el initial, si va ramane pe tot parcursul procedurii, in registrul M. Tot initial se sterg continuturile ambelor registre accumulator (A si AC), precum si a contorului de iteratii COUNT, ceea ce poate fi urmarit si in exemplul din fig. 3.37. Noi vom prezenta in fig. 3.36, precum si in corespondentul exemplu din fig. 3.37, versiunea de implementare pentru procedura Robertson, dar modificarile pentru adaptarea la procedurile Booth sunt minore, putand fi imaginate in mod simplu. Ca si la celelalte dispozitive, registrele A si Q formeaza un registru de dimensiune dubla cu capacitate de shift-are la dreapta. |
|
Fig.3.37 |
Avem un strat de circuite logice AND pe toata lungimea cuvantului
(AND wordgate), cu rolul de a permite aplicarea in calitate de intrare
Castigul de performanta si organizare adus de
folosirea CSA este partial balansat de registrul "redundant" AC, precum
si de adaosul a doua sumatoare paralele conventionale, care,
pentru a pastra o minima claritate a figurii, au fost adoptate de
tipul cu propagarea transportului (Ripple carry adder, RCA) in fig. 3.36.
Primul dintre acestea, notat RCA1, are menirea de a aduna, in
ultimul pas al procedurii, la vectorul binar suma (din registrul A)
deplasat (vezi , fig. 3.37) pe vectorul binar carry (din registrul AC). Se
obtine astfel partea mai semnificativa a produsului (mai exact,
referindu-ne la exemplul din fig. 3.37, ignorand msb-ul, restul celor 7
biti din A concatenati la cei 8 biti din Q formeaza
produsul final, care va trebui predat, tinand cont de particularitatea
mentionata, in mod corespunzator in magistrala). Ar mai fi
de mentionat ca, din
aceleasi motive ale unei minime claritati a schemei din fig.
3.36, iesirile lui (A[n-1], , A[0]) nu au mai fost "intoarse" in registrul A.
Pe de alta parte, cel de-al doilea sumator paralel, notat , care impreuna cu stratul EX-OR wordgate permite,
atunci cand este activat semnalul de control (notat astfel pentru ca are acelasi rol
functional cu omonimul din fig. 3.11), permite complementarea de
Ar mai fi de mentionat ca uzitand de multiplexoare si logica aditionala pentru a permite reconfigurarea, la schema din fig. 3.36 este posibila economisirea unui RCA, noi preferand pastrarea ambelor pentru o mai mare claritate a fluxului informational. Desigur din fig. 3.36 lipsesc unele elemente de structura, precum si partea de logica menita a inlesni aplicarea semnalelor generate de unitatea de control, absenta si ea! In ceea ce priveste exemplul din fig. 3.37, pe langa remarcile deja facute, ar mai fi de subliniat marcarea cu acolade a continutului celor trei registre (A deplasat, AC si M sau 0), fapt care a necesitat repetarea scrierii continutului lui AC.
Bineinteles ca solutiei tehnica din fig. 3.36, cu corespondentul exemplu din fig. 3.37, i se pot da variate rezolvari de implementare (pe langa cele amintite, spre exemplu, inlocuirea deplasarii la dreapta a lui A .Q cu deplasarea la stanga a lui AC, cu corespunzatoarea evitare a precautiei de preluare a produsului final in magistrala), la alegerea celei preconizate de noi primand, din ratiunile deja mentionate, claritatea fluxului informational. Chiar si la aceasta defavorabila, prin prisma performantei, versiune, castigul in viteza fata de anterioarele solutii este indiscutabil, datorita reducerii consistente a duratei fiecarui pas (ciclu). Sa incercam, in cele ce urmeaza, sa combinam aceasta imbunatatire cu cea specifica anterioarei metode bazata pe cresterea valorii bazei sistemului de numeratie, constand din reducerea numarului de pasi (cicluri).
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 |