Probleme de proiectare Alternativele hardware pentru DSPcs.ucv.ro/staff/cpatrascu/DSP/Arhitecturi...

16
1 Probleme de proiectare Capitolul incepe prin prezentarea alternativelor de baza hardware, disponibile pentru design-ul sistemului DSP. Vom privi apoi in detaliu o parte din problemele si consideratiile implicate in implementarea unui sistem folosind un dispozitiv cu un singur chip. Acesta este capitolul care contine majoritatea sfaturilor practice in punerea concreta in aplicare a algoritmilor pe unele DSP hardware. Alternativele hardware pentru DSP Este posibila implementarea algoritmilor DSP pe orice computer hardware, de exemplu un PC, dar rata la care vrei sa prelucrezi informatia determina platforma hardware optima pentru aplicatia ta. Exista o impartire primara aici, intre aplicatiile DSP in timp real si cele in non- timp real. Aplicatiile in timp real includ prelucrari audio playback, “comprimari” de voce in comunicatiile mobile, etc. Aplicatiile in non-timp real pot fi procesari de date seismice, comprimari de date pentru stocari pe CD-ROM-uri si asa mai departe. Aceasta carte se ocupa doar de prelucrarile semnalului digital in timp real, asa ca PC-urile, etc. ies din discutie. Sunt 4 categorii de platforme hardware folosite frecvent pentru implementari DSP in timp real: 1. dispozitive DSP cu scop general 2. dispozitive DSP specializate 3. procesoare pe “transe” de biti (bit-slice) 4. microprocesoare cu scop general. Sa le trecem in revista pe fiecare si sa vedem unde se incadreaza. Procesoarele de semnal digital cu scop general includ familiile TI TMS320, Motorola DSP 56000 si DSP 96000, Analog Devices ADSP2100 si 21000 si familiile AT&T DSP16 si DSP32. Aceste dispozitive sunt complet programabile si, prin urmare, foarte flexibile. Au ciclii masina rapizi si variante din ce in mai rapide sunt lansate cu regularitate ca urmare a progresului tehnologiei si metodelor de design. Aceste dispozitive cu scop general vor avea o diversitate de periferice “on chip” si seturi de instructiuni cu scop general. Pot fi adesea utilizate ca procesoare unice intr-un sistem “embedded” nefiind necesar suportul unui alt procesor gazda. Acest fapt le face foarte eficiente ca si pret intr-o gama larga de aplicatii. Unele companii cum sunt Zoran, Plessey si SGS Thomson Microelectronics (STM) produc dispozitive DSP specializate pentru sarcini specifice.Exemple pot fi: un chip filtru FIR, un dispozitiv FFT sau un motor de convolutie. Acestea sunt folositoare unde operatii de prelucrare numerica a semnalelor bine definite trebuie efectuate intr-un timp minim. Dispozitivele DSP specializate isi pot desfasura functiile lor limitate mult mai rapid decat DSP-urile cu scop general datorita arhitecturilor lor dedicate. Slabiciunile acestei abordari sunt lipsa uneltelor de dezvoltare standard, conducând la ciclii de proiectare lungi, costul componentelor si necesitatea probabila ca un procesor gazda sa fie adaugat in sistemului. Componentele bit-slice, asa cum sunt familiile AMD29000, se apropie mai mult de design-ul DSP de uz general de mare viteza. Aceste componente sunt la baza blocuri constructive incluzind multiplicatori, ALU, secventiatoare, etc., cuplate pentru a construi o arhitectura DSP adecvata aplicatiei. Performantele pot fi semnificativ mai mari decit la dispozitivele DSP cu scop general. Dezavantajele sunt similare celor cu scop special: lipsa uneltelor de proiectare ale microprocesoarelor standard, timpi extinsi de proiectare si

Transcript of Probleme de proiectare Alternativele hardware pentru DSPcs.ucv.ro/staff/cpatrascu/DSP/Arhitecturi...

Page 1: Probleme de proiectare Alternativele hardware pentru DSPcs.ucv.ro/staff/cpatrascu/DSP/Arhitecturi DSP.pdf · arhitectura DSP adecvata aplicatiei. ... uneltelor de proiectare ale microprocesoarelor

1

Probleme de proiectare

Capitolul incepe prin prezentarea alternativelor de baza hardware, disponibile pentru design-ul sistemului DSP. Vom privi apoi in detaliu o parte din problemele si consideratiile implicate in implementarea unui sistem folosind un dispozitiv cu un singur chip. Acesta este capitolul care contine majoritatea sfaturilor practice in punerea concreta in aplicare a algoritmilor pe unele DSP hardware.

Alternativele hardware pentru DSP Este posibila implementarea algoritmilor DSP pe orice computer hardware, de exemplu un PC, dar rata la care vrei sa prelucrezi informatia determina platforma hardware optima pentru aplicatia ta. Exista o impartire primara aici, intre aplicatiile DSP in timp real si cele in non-timp real. Aplicatiile in timp real includ prelucrari audio playback, “comprimari” de voce in comunicatiile mobile, etc. Aplicatiile in non-timp real pot fi procesari de date seismice, comprimari de date pentru stocari pe CD-ROM-uri si asa mai departe. Aceasta carte se ocupa doar de prelucrarile semnalului digital in timp real, asa ca PC-urile, etc. ies din discutie. Sunt 4 categorii de platforme hardware folosite frecvent pentru implementari DSP in timp real:

1. dispozitive DSP cu scop general 2. dispozitive DSP specializate 3. procesoare pe “transe” de biti (bit-slice) 4. microprocesoare cu scop general.

Sa le trecem in revista pe fiecare si sa vedem unde se incadreaza.

Procesoarele de semnal digital cu scop general includ familiile TI TMS320, Motorola DSP 56000 si DSP 96000, Analog Devices ADSP2100 si 21000 si familiile AT&T DSP16 si DSP32. Aceste dispozitive sunt complet programabile si, prin urmare, foarte flexibile. Au ciclii masina rapizi si variante din ce in mai rapide sunt lansate cu regularitate ca urmare a progresului tehnologiei si metodelor de design. Aceste dispozitive cu scop general vor avea o diversitate de periferice “on chip” si seturi de instructiuni cu scop general. Pot fi adesea utilizate ca procesoare unice intr-un sistem “embedded” nefiind necesar suportul unui alt procesor gazda. Acest fapt le face foarte eficiente ca si pret intr-o gama larga de aplicatii. Unele companii cum sunt Zoran, Plessey si SGS Thomson Microelectronics (STM) produc dispozitive DSP specializate pentru sarcini specifice.Exemple pot fi: un chip filtru FIR, un dispozitiv FFT sau un motor de convolutie.

Acestea sunt folositoare unde operatii de prelucrare numerica a semnalelor bine definite trebuie efectuate intr-un timp minim. Dispozitivele DSP specializate isi pot desfasura functiile lor limitate mult mai rapid decat DSP-urile cu scop general datorita arhitecturilor lor dedicate. Slabiciunile acestei abordari sunt lipsa uneltelor de dezvoltare standard, conducând la ciclii de proiectare lungi, costul componentelor si necesitatea probabila ca un procesor gazda sa fie adaugat in sistemului. Componentele bit-slice, asa cum sunt familiile AMD29000, se apropie mai mult de design-ul DSP de uz general de mare viteza. Aceste componente sunt la baza blocuri constructive incluzind multiplicatori, ALU, secventiatoare, etc., cuplate pentru a construi o arhitectura DSP adecvata aplicatiei. Performantele pot fi semnificativ mai mari decit la dispozitivele DSP cu scop general. Dezavantajele sunt similare celor cu scop special: lipsa uneltelor de proiectare ale microprocesoarelor standard, timpi extinsi de proiectare si

Page 2: Probleme de proiectare Alternativele hardware pentru DSPcs.ucv.ro/staff/cpatrascu/DSP/Arhitecturi DSP.pdf · arhitectura DSP adecvata aplicatiei. ... uneltelor de proiectare ale microprocesoarelor

2

costurile componentelor. Procesoarele pe “transe de biti” au cea mai mare raspindire in aplicatiile DSP militare unde costurile si timpul de proiectare sunt mai putin importante decat cererile de performanta. Orice calculator poate fi folosit pentru prelucrarea numerica a semnalelor si acest fapt se aplica microprocesoarelor comune cum sunt familiile Motorola 68000 sau Intel i86. Aceste dispozitive nu au facilitatile arhitecturii sau ale perifericelor on-cip, cerute pentru eficienta prelucrarii numerice a semnalelor. In particular, le lipseste un inmultitor hardware. O operatie de inmultire in virgula mobila care are un ciclu de 50 ns pe un DSP tipic, poate lua 44 de ciclii de 35 ns pe un 68030, de 31 de ori mai incet. Singura data cind procesoarele cu scop general sunt preferate DSP-urilor este atunci cand sunt necesare putine operatii de prelucrare a semnalor intr-un sistem mult mai larg. Performantele acestora de prelucrare a semnalelor in timp real nu se compara nici chiar cu cele mai ieftine dispozitive DSP cu scop general, si nu vor fi o solutie eficienta pentru nici un task de prelucrare a semnalelor mai complicat.

Utilizarea unui dispozitiv DSP cu scop general Restul capitolului se concentreaza pe problemele de implementare ce implica dispozitivele cu scop general, ca familia Texas Instruments TMS320. Mai intai sa aruncam o privire la arhitectura a doua din cele mai comune dispozitive, TMS320C25 si TMS320C30. Vom pune in contrast si vom compara aceste doua dispozitive si le vom folosi de-a lungul acestui capitol pentru a explica elementele esentiale. Digrama bloc a TMS320C25 e aratata in figura 7.1. Dispozitivul este un procesor in virgula fixa pe 16 biti cu arhitectura Harvard, are spatiu de memorie separat pentru program si separat pentru date (vezi Capitolul 1). Resursele cipului includ o masca programabila ROM, inmultitor, ALU, deplasatoare si trei blocuri RAM intern. Unul din acestea poate fi configurat fie ca RAM de program sau date. Accesul la memoria externa se face printr-o magistrala de date si adrese multiplexata. Aceste magistrale sunt folosite pentru orice acces la memoria de program sau date din exteriorul chip-ului sau la spatial I/O. Aceata inseamna ca programul si datele din exteriorul chip-ului nu pot fi accesate simultan.

TMS320C30 este un dispozitiv mult diferit. Structura sa este aratata in figura 7.2. Cea mai evidenta diferenta este accea ca el nu are o arhitectura HARVARD. Programul, datele si I/O sunt toate mapate in acelasi spatiu de adrese de 16M cuvinte. Accesul paralel la diferite zone de memorie este realizat de magistrale multiple in interiorul chip-ului si magistrale duale in exteriorul chip-ului. Dispozitivul este un procesor in virgula mobila, pe 32 biti. Blocurile functionale principale includ doua blocuri de RAM, un cache de instructiuni, inmultitorul, ALU, registre, un controler DMA, memorie programabila ROM, porturi seriale si timere. Nu vom intra in detaliul acestor doua dispozitive decat acolo unde este necesar pentru a explica unele elemente. Dispozitivele pe care le-am ales, sunt folosite pe scara larga si sunt reprezentative pentru celelalte dispozitive in virgula fixa si virgula mobila.

Page 3: Probleme de proiectare Alternativele hardware pentru DSPcs.ucv.ro/staff/cpatrascu/DSP/Arhitecturi DSP.pdf · arhitectura DSP adecvata aplicatiei. ... uneltelor de proiectare ale microprocesoarelor

3

Page 4: Probleme de proiectare Alternativele hardware pentru DSPcs.ucv.ro/staff/cpatrascu/DSP/Arhitecturi DSP.pdf · arhitectura DSP adecvata aplicatiei. ... uneltelor de proiectare ale microprocesoarelor

4

Dispozitive DSP in virgula fixa si virgula mobila Analizand procesoarele de semnal fabricate de diversi producatori devine clar ca impartirea fundamentala a procesoarelor este accea in dispozitive in virgula fixa si cele in virgula mobila. Procesoarele in virgula fixa sunt dispozitive pe 16 biti sau 24 biti; procesoarele in virgula mobila sunt dispozitive de obicei pe 32 biti. Un procesor pe 16 biti in virgula fixa, ca si TMS320C25, opereaza cu numere pe 16 biti in format complement fata de doi pe care il vom descrie pe scurt. Aspectul important este

Page 5: Probleme de proiectare Alternativele hardware pentru DSPcs.ucv.ro/staff/cpatrascu/DSP/Arhitecturi DSP.pdf · arhitectura DSP adecvata aplicatiei. ... uneltelor de proiectare ale microprocesoarelor

5

ca desi valorile coeficientilor si datelor sunt memorate cu precizie externa de 16 biti, valorile intermediare sunt pastrate in precizie pe 32 biti in cadrul acumulatorului intern, deci erorile cumulative de rotunjire pe parcursul calculelor nu constituie o problema. Este posibil a se utiliza un format pseudo-virgula mobila intr-un DSP in virgula fixa, dar penalizarea in viteza e asa de mare, incat ar fi aplicabila doar pentru task-urile de management de sistem. Functiile DSP, de obicei au nevoie de viteza mare a formatului in virgula fixa. Aceasta inseamna, deasemenea, ca folosirea unui compilator de limbaj de nivel inalt cu un DSP in virgula fixa este oarecum un compromis. Dispozitivele DSP in virgule fixa sunt de obicei mai ieftine decat componentele in virgula mobila, deoarece ele contin mai putin siliciu si au mai putini pini externi. Dispozitivele in virgula fixa au, de asemenea, ciclu de clock mai rapizi, mai mic de 25 ns. Aceasta nu inseamna ca pot efectua task-urile de prelucrare a semnalelor mai repede. Aceasta depinde de cat de mult poate executa un dispozitiv intr-un ciclu de ceas, nu doar cat de lung este acest ciclu. Un DSP virgula mobila obisnuit, pe 32 biti precum TMS320C30, memoreaza o mantisa pe 24 biti si un exponent pe 8 biti. Valorile intermediare sunt memorate intr-un registru de 40 biti, din care 32 biti pentru mantisa si 8 biti pentru exponent. Un numar in format 32 biti, virgula mobile, are valoarea in intervalul intre + (2-223)x2127 si - 2128. Vasta reprezentare a DSP-urilor in virgula mobila inseamna ca limitarile reprezentarii dinamice pot fi ignorate virtual in proiectare. Acest lucru e in contrast puternic cu proiectarea in virgula fixa unde factorii de scara trebuie adesea sa fie aplicati si proiectantul trebuie sa se protejeze impotriva posibilei depasiri a acumulatorului. Acest lucru e discutat complet in sectiunea urmatoare. DSP-urile in virgula mobila pot fi de asemenea folosite ca procesoare in virgula fixa, sau cu numere intregi. TMS320C30 are un set complet de instructiuni care sa-i permita sa opereze ca un dispozitiv pe 24 biti in virgula fixa, cu capacitate de stocare a rezultatului pe 32 biti. Procesoarele in virgula mobila sunt in general mai scumpe decat cele in virgula fixa, in principal pentru ca folosesc o suprafata mai mare de siliciu, dar si pentru ca tind sa foloseasca capsule mai mari si mai scumpe – doua magistralele de 32 biti folosesc o multime de pini externi! Dispozitivele in virgula mobila pot fi necesare in aplicatii unde fie coeficientii de amplificare variaza in timp (ex. sisteme adaptive), semnalele si coeficienti cu o variatie dinamica mare, sau unde sunt necesare structuri de memorii mari ca si in prelucrarea imaginilor. Alte cazuri unde dispozitivele in virgula mobile pot fi justificate sunt acelea unde costurile de dezvoltare sunt mari si volumul de productie limitat. Un ciclu de dezvoltare mai rapid pentru un dispozitiv in virgula mobila poate cantari mai mult decat costul suplimentar al componentelor. Procesoarele in virgula mobila permit de asemenea utilizarea eficienta a compilatoarelor de limbaj de nivel inalt si reduc necesitatea identificarii complete a comportarii dinamice a sistemului. Vom privi acum in detaliu, diferentele dintre formatele numerelor in virgula fixa si virgula mobila si implicatiile pe care acestea le au in proiectarea sistemelor cu DSP.

Aritmetica in virgula fixa In formatul binar, un numar poate fi reprezentat ca marime cu semn, unde bitul cel mai din stanga reprezinta semnul si ceilalti biti reprezinta marimea:

+52(zecimal) = 34(hexa) si este reprezentat ca 0011 0100 (binar) -52(zecimal) = -34(hexa) si este reprezentat ca 1011 0100 (binar)

Page 6: Probleme de proiectare Alternativele hardware pentru DSPcs.ucv.ro/staff/cpatrascu/DSP/Arhitecturi DSP.pdf · arhitectura DSP adecvata aplicatiei. ... uneltelor de proiectare ale microprocesoarelor

6

Am mentionat deja ca dispozitivele DSP in virgula fixa folosesc un format de reprezentare numit complement fata de doi. Un numar pozitiv este reprezentat ca o valoare binara simpla.

MSB LSB

Valoare bit 32− 22 12 02 -8 4 2 1 0 1 0 1 = 4+1 = 5 1 1 0 1 = -8+4+1 =-3 cel mai mic + 0 0 0 1 = 1 cel mai mare + 0 1 1 1 = 4+2+1 = 7 cel mai mare - 1 1 1 1 = -8+4+2+1 =-1 cel mai mic - 1 0 0 0 =-8 Figura 7.3. Exemplu de formare a numarelor in complement fata de 2 pe 4 biti

Deosebirile din aritmetica binara conventionala apar odata cu numerele negative. Figura 7.3 arata un exemplu de numere in complement fata de 2 pozitive si negative folosind 4 biti. Acest principiu se extinde cu usurinta la numerele pe 16 biti.

Marele avantaj al aritmeticii in complement fata de doi este acela ca este cerut un singur sumator atat pentru numere negative cat si pentru numere numere pozitive. O adunare, va da intotdeauna rezultatul corect atat pentru adunare cat si pentru scadere (adunand un numar pozitiv si unul negativ). Un avantaj in plus este acela ca, daca rezultatul final este cunoscut ca fiind in gama de reprezentare a procesorului, o depasire intermediara poate fi ignorata daca rezultatul final va fi inca obtinut. Cu patru biti, tinand cont de faptul ca cel mai semnificativ bit e bitul de semn, cel mai mare numar pozitiv ce se poate reprezenta este +7 si cel mai mic numar negativ este -8. Printr-o extindere simpla ca in figura 7.3, un numar pe 16 biti poate varia intre +32767 si -32768. Merita sa fie cunoscut faptul ca numerele in complement fata de doi sunt o conventie a programatorului si nu sunt obtinute de obicei prin conversia hardware analog-digital. Numerele negative trebuie convertite dintr-o valoare cu semn in complement fata de doi. Figura 7.4 arata procesul de conversie.

Diferentele dintre aritmetica binara conventionala (reprezentarea cu semn) apar odata cu numerele negative. Pentru obtinerea lui -56 (zecimal) ca un numar in complement fata de doi trebuie facuta o mica suma: -5610 in reprezentare binara cu semn 1011 1000 Indepartarea bitului de semn 0011 1000 Se inverseaza toti bitii pentru obtinerea complementului fata de unu 1100 0111 Aduna 1 pentru a obtine complementul fata de doi + 1 Complementul fata de doi este 1100 1000 Astfel, -56 (zecimal) este reprezentat ca 1100 1000 binar in complement fata de doi. Adunand reprezentarile in complement fata de doi ale lui 56 si -56 se obtine: 0011 1000 + 1100 1000 0000 0000 asa cum ne asteptam.

FIGURA 7.4. Formarea complementui fata de doi a numerelor negative.

Page 7: Probleme de proiectare Alternativele hardware pentru DSPcs.ucv.ro/staff/cpatrascu/DSP/Arhitecturi DSP.pdf · arhitectura DSP adecvata aplicatiei. ... uneltelor de proiectare ale microprocesoarelor

7

Adunarea Scaderea 00 0101 (5) 01 1100 (+28) 00 0100 (4) 11 1100 (-4) 00 1101 (13) 11 0000 (-16) 00 0111 (7) 11 1110 (-2) transport 1 1 fara transport transport 1 1 fara transport transport 10 1 0 transport 1 1 01 1101 (29) transport 10 10 ignora transport10 00 0110 (+6) Figura 7.5. Adunarea si scaderea numerelor in complement fata de doi În figura 7.5 este prezentată o descriere a adunarii si scaderii. Se noteaza in particular ca in adunarea a patru numere, transportul nu e intotdeauna doar in coloana adiacenta, dar poate fi doua coloane mai la stanga. De exemplu, unde se aduna 5 de ‘1’, rezultatul este ‘101‘, transportand pe doua coloane. O scadere in aritmetica complementului fata de doi este ca adunarea unui numar pozitiv si unul negativ. Primul pas este negarea (aflarea complementului fata de doi) numarului care trebuie scazut si apoi realizarea adunarii folosind numarul negativ. Complementul fata de doi este format asa cum se arata in figura 7.4. Trebuie sa intelegem ce se face cu adunarea celor mai semnificativi biti. In acest caz, adunarea produce un transport ‘1’ spre stanga. De fapt, putem ignora acest transport, deoarece numarul negativ are efectiv un ‘1’ in fiecare locatie catre stanga propriului sau MSB (111010 este acelasi lucru cu 11010, si asa mai departe).

Pentru un exemplu mai complicat vezi figura 7.6. pentru descrierea inmultirii. Pasii sunt exact la fel ca si la inmultirea zecimala, exceptand produsul final partial unde inmultitorul e negativ. Deoarece cel mai semnificativ bit este bitul de semn, produsul partial final e complementul fata de doi al deinmultitului. Acest lucru e realizat asa cum se arata in figura 7.4 inversand toti bitii deinmultitului si adaugand 1. deinmultit 0100 (+4) inmultitor x1101 (-3) 0100 0000 0100 1100 1110100 (-12) intr-un acumulator pe 8 biti, acesta ar fi 11110100 (-12) Tinand cont ca MSB este un bit de semn, produsul final partial este complementul fata de doi al deinmultitului.

Figura 7.6. Inmultirea numerelor in complement fata de doi. Exemplul inmultirii a doua numere negative este putin mai complicat. Notati ca primele produse partiale vor fi numere negative si trebuie sa aiba bitul de semn extins spre stanga pentru a pastra valoarea corecta in adunarea finala. Produsul partial final este iarasi complementul fata de doi al deinmultitului. Reprezentarea binara in complement fata de doi descrisa mai sus nu este o reprezentare cu zecimale sau fractionara. In prelucrarea semnalelor este obisnuita reprezentarea zecimala a numerelor. Motivul acestei reprezentari este ca atunci cand se inmultesc fractiile (de exemplu 0.99x0.99), rezultatul va fi intotdeauna mai mic decat 1 si nu

Page 8: Probleme de proiectare Alternativele hardware pentru DSPcs.ucv.ro/staff/cpatrascu/DSP/Arhitecturi DSP.pdf · arhitectura DSP adecvata aplicatiei. ... uneltelor de proiectare ale microprocesoarelor

8

apare depasire. Trebuie sa folosim o virgula binara implicita pentru a reprezenta fractiile, si aici lucrurile devin complicate. Locatia virgulei zecimale nu afecteaza nici unitatea aritmetica si nici inmultitorul din DSP. Afecteaza doar acuratetea rezultatului si locatia de unde rezultatul va fi citit. Virgula zecimala e o conventie pura a programatorului si nu are nici o legatura cu partea hardware. Pentru a obtine maximul arhitecturii pe 16 biti, a unui processor in virgula fixa TMS320, numerele sunt reprezentate de obicei in ceea ce se numeste format Q15. Numarul ce urmeaza dupa litera Q reprezinta numarul bitilor fractionari. Aceasta implica ca, in formatul Q15, ca fiecare numar e reprezentat printr-un bit de semn, 15 biti fractionali si nici un bit pentru intregi. In mod similar, un numar cu 13 biti in format Q12 va avea un bit de semn, 12 biti fractionari si nici un bit pentru intregi. Q15 este un format in virgula fixa uzual, utilizat de TMS320C25. Numerele in format Q12 cu 13 biti, sunt folosite de instructiunea de inmultire imediata (MPYK), unde constanta pe 13 biti este parte din cuvantul instructiune.

Valoare bit 02−

12−

22−

32−

-1 0.5 0.25 0.125 0 1 0 1 =0.5+0.125 =0.625 1 1 0 1 =-1+0.5+0.125 =-0.375

cel mai mic + 0 0 0 1 = 0.125 cel mai mare + 0 1 1 1 =0.5+0.25+0.125 =0.875 cel mai mic- 1 1 1 1 =-1+0.5+0.25+0.125 =-0.125 cel mai mare- 1 0 0 0 =-1

Figura 7.7. Exemplu de fractii binare Q3 pe 4 biti Principiile de reprezentare a numerelor in format Q sunt usor de inteles cu referirea la figura 7.7. Aceasta arata cateva numere pe 4 biti, adica un bit de semn, 3 biti fractionari si nici un bit intreg. Principiile de adunare si scadere sunt exact aceleasi ca pentru logica binara a numerelor intregi si este aratata in figura 7.8. De retinut ca virgula binara ramane statica exact ca in adunarea si scaderea, in zecimal. Un exemplu de inmultire este aratat in figura 7.9. Inca o data aceasta foloseste doua numere in format Q3 pe 4 biti. Rezultatul este in format Q6.

Figura 7.8. Adunarea si scaderea pentru numere binare fractionare

MSB LSB

Page 9: Probleme de proiectare Alternativele hardware pentru DSPcs.ucv.ro/staff/cpatrascu/DSP/Arhitecturi DSP.pdf · arhitectura DSP adecvata aplicatiei. ... uneltelor de proiectare ale microprocesoarelor

9

Figura 7.9. Inmultirea pentru numere binare fractionare

Comparati fiecare pas cu exemplul zecimal dinainte si deplasarea in pozitia virgulei

binare va deveni evidenta. Referindu-ne inapoi la TMS320C25, cea mai uzuala forma a inmultirii este cea cu doua numere in format Q15. Rezultatul este in format Q30 si este de asemenea o fractie. Rezultatul are 30 biti fractionari, 2 biti de semn si nici un bit intreg. -0.5 1.100 0000 0000 0000

x +0.5 0.100 0000 0000 0000 -0.25 11.11 0000 0000 0000 0000 0000 0000 0000

Pentru memorarea rezultatului ca numar in format Q15, se realizeaza o deplasare la stanga cu un bit pentru eliminarea bitului de semn suplimentar iar cei mai din stanga 16 biti sunt memorati. Rezultatul nostru de mai sus este astfel memorat ca 1.110 0000 0000 0000, reprezentarea in CF2 pe 16 biti a numarului -0.25. O inmultire nu poate da niciodata depasire in cazul fractiilor, dar adunari succesive pot. TMS320C25, ca si alte dispozitiv TMS320 in virgule fixa, are un mecanism care protejeaza impotriva depasirii si indica daca aceasta apare. Acesta este modul saturare, unde acumulatorul pe 32 biti se umple pana la valoarea sa maxima sau minima dar nu se da peste cap. Acesta are un efect similar in ”taierea” unei forme de unda analogice. Exista un bit in registrul de stare care este setat daca apare saturatia. Modul saturare este foarte folositor, deoarece ar aparea rezultate imprevizile cu acumulatorul dat peste cap. Acest lucru ar putea fi dezastruos intr-un sistem de control. Acestea fiind zise, efectul de trunchiere este de asemenea nedorit in general in sistemele DSP. Factori de scalare ar trebui aplicati intrarilor sau rezultatelor inttermediare pentru a ne asigura ca acest lucru nu se intampla. Efectele trunchierii si scalarea in virgula fixa a DSP-urilor In aplicatii cum sunt controlul si audio digital de inalta calitate, efectul lungimilor finite ale cuvintelor pot fi critice. Ca si efectele trunchierii intr-un convertor analog-digital, efectele lungimii finite a cuvantului apar ca zgomote in sistem. In proiectarea unui filtru digital, coeficientii filtrului sunt trunchiati pentru a fi mai mici sau egali ca numar cu lungimea cuvantului procesorului pentru a putea fi stocati in memoria de program. Aceasta poate insemna ca performantele filtrului vor fi usor diferite de specificatiile de proiectare. Trunchierea devine mai semnificativa cu cat specificarea filtrului este mai precisa, afectand filtrele IIR mai mult decat pe cele FIR. Filtrele FIR sunt stabile in mod neconditionat, dar coeficientii de trunchiere pot cauza probleme serioase in filtrele IIR unde polii pot fi impinsi din interior spre exteriorul cercului unitate, cauzand instabilitate. In

Page 10: Probleme de proiectare Alternativele hardware pentru DSPcs.ucv.ro/staff/cpatrascu/DSP/Arhitecturi DSP.pdf · arhitectura DSP adecvata aplicatiei. ... uneltelor de proiectare ale microprocesoarelor

10

majoritatea sistemelor DSP, coeficientii trunchiati la 12-16 biti nu cauzeaza modificari in performante. Avem de-a face cu trunchieri de semnal cauzate de conversia analog-digitala. O a doua forma de trunchiere a semnalului apare cand rezultatele prelucrarii semnalui sunt trunchiate sau rotunjite. Datele de intrare si iesire ale unui sistem pot fi valori pe 16 biti, dar pentru a mentine acuratetea, calculele inttermediare vor avea nevoie de o precizie sporita. De exemplu, o inmultire pe 16x16 biti necesita 32 biti pentru stocarea rezultatului cu precizie maxima. Faptul ca DSP-urile TMS320 in virgula fixa au un acumulator pe 32 biti nu este adesea o problema. O problema este faptul ca locatiile de memorie sunt pe 16 biti. Instructiuni speciale sunt oferite pentru stocarea tuturor celor 32 biti ai acumulatorului in memorie, asa ca ei pot fi recititi pentru folosire ulterioara. Din fericire, ne preocupa in mod normal doar cei mai semnificativi 16 biti dintr-un rezultat pentru conversia inversa spre semnalul analogic.

Atât timp cât programul e scris atent, se poate asigura ca rotunjirea sau trunchierea să se petreacă numai la sfârsitul calculelor. Folosind o scalare adecvata a valorii semnalelor si coeficienţilor, putem minimiza sau chiar elimina efectul alterarii semnalului cauzat de trunchieri, rotunjiri sau depasiri. Factorul de scală trebuie ales atent, luând în considerare translarea valorilor de intrare si ieşire (adică plaja tensiunilor convertoarelor CAN si CNA) şi necesitatea de a preveni saturarea sau depasirea. E posibil de a reduce cantitatea scalărilor alterând structura unei funcţii de transfer. Formele cascadate sunt de obicei preferate formelor directe. Aceasta permite scalării să fie aplicata la fiecare subetaj, reducând semnalele numai cu cât e necesar pentru a preveni depasirea in blocul dat. E preferabil de aplicat toate scalarile necesare la intrare - aceasta reduce efectul trunchierilor ce pot aparea. Putem folosi simulatori software pentru a determina forma cea mai buna a scalarii pentru sistemul nostru. În figura 7.10 este prezentat un inmultitor, ALU, acumulatorul si hardware-ul asociat dintr-un TMS320C25. E inclus un mecanism pentru aritmetică in virgulă fixă. Înmulţitorul are ca intrări doua numere de 16 biţi sau unul de 16 biti si unul de 13 biţi (înmulţire imediată). Deplasatorul de la ieşirea inmulţitorului permite eliminarea biţilor extra-semn rezultaţi şi ca numarul simplu pe 16 biti in complement fata de doi sa fie memorat sau trimis in afara procesorului. De notat că ambele cuvinte de 16 biţi inferior şi superior ale acumulatorului pot fi inscrise separat în memorie pentru reincarcarea ulterioara a numărului în precizie de 32 biţi. Pentru programarea DSP în virgula fixă se depune mai mult efort în comparaţie cu dispozitivele în virgulă mobilă, dar exista si unele avantaje majore. Preţul dispozitivelor în virgula fixă e aproximativ o cincime din preţul celor mai ieftine dispozitive în virgulă mobilă. Dacă un DSP în virgula fixă rezolvă o problema, atunci este aproape întotdeauna şi cea mai ieftină soluţie. Efortul suplimentar depus la proiectare de obicei e nesemnificativ in comparatie cu componenta de cost salvată prin volumul de productie. Dacă insă, numai câteva sisteme se vor construi balanta poate inclina in favoarea unui ciclu de proiectare mai scurt cu dispozitive în virgulă mobilă.

Page 11: Probleme de proiectare Alternativele hardware pentru DSPcs.ucv.ro/staff/cpatrascu/DSP/Arhitecturi DSP.pdf · arhitectura DSP adecvata aplicatiei. ... uneltelor de proiectare ale microprocesoarelor

11

Aritmetica în virgulă mobilă Standardul industrial a formatului numerelor în virgulă mobilă e definit de IEEE Standard 754.1985. Câteva dispozitive DSP virgulă mobilă printre care TMS320C3x şi TMS320C4x produse de TI folosesc o formă specială de reprezentare în virgulă mobilă pentru calcule interne. Aceasta înseamnă ca aceste circuite nu sunt compatibile direct cu standardul IEEE 754. De obicei aceasta nu e o problemă - compatibilitatea e necesară numai la introducerea/extragerea numerelor în/din dispozitivele ce folosesc standardul IEEE 754. Există două modalităţi de a realiza compatibilitatea: folosirea unei rutine software de conversie (o singură instructiune în TMS320C40) sau folosirea unei conversii externe ASIC (Application Specific Integrated Circuit). Timpul de calcul pentru conversie este nesemnificativ în comparatie cu timpul necesar pentru execuţia întregului algoritm. În figura 7.11 este prezentat standardul IEEE 754.1985 virgulă mobilă în simplă precizie. De notat faptul ca e un format pe 32 biţi care corespunde latimii magistralei unui DSP în virgulă mobilă. Standardul defineşte de asemenea formatele pentru precizie simplă, dublă şi dublă extinsă. În figura 7.12 este indicat formatul în virgulă mobilă pentru TMS320. Cea mai evidenta diferenţa dintre formate este poziţia biţilor de semn, dar există şi diferenţe mai de detaliu. De exemlu, exponentul este un număr reprezentat în cod complement faţă de doi.

Page 12: Probleme de proiectare Alternativele hardware pentru DSPcs.ucv.ro/staff/cpatrascu/DSP/Arhitecturi DSP.pdf · arhitectura DSP adecvata aplicatiei. ... uneltelor de proiectare ale microprocesoarelor

12

Bit# →

MSB LSB MSB LSB S – semnul mantisei (0- pozitiva, 1- negativă) Exponent – un camp de opt biţi fara semn ce determina locul virgulei zecimale

Mantisa – un camp de 23 biti ce conţine partea fracţionară a numărului codificat

Figura 7.11. Formatul virgulă mobilă IEEE 754.

Bit# → 31 24 23 22 0 MSB LSB MSB LSB Valoarea zecimală (v) a unui numar se calculează în felul următor: v = { (-2)s + (.Mantisa) } 2Exponent

S – semnul mantisei (0- pozitiva, 1- negativă) Exponent – echivalentul zecimal al exponentului Mantisa – echivalentul zecimal al fractiei O metodă alternativă pentru a descri fomatul mantisei la TMS320: SS * Mantisa - de notat faptul că bitul din stânga punctului zecimal face parte din mantisă şi este complementul semnului.

Figura 7.12. Formatul virgulă mobilă pentru TMS320.

Motivul pentru diferenţa între formate este ca inmulţitorul hardware pentru formatul TMS320 e mai simplu de proiectat şi mai mic (astfel mai ieftin). Cu o conversie intr-un singur ciclu compatibilitatea nu e o problemă, dar pe măsura evoluţiei tehnologice avantajul dimensiunii pastilei de siliciu îşi pierde din importanţă, iar noile DSP tind către înmulţitoarele în format IEEE. Ambele formate in virgulă mobilă oferă o gamă de reprezentare 2 128 – 2 – 128 cu o rezolutie de 24 biţi. Când se foloseşte un procesor virgulă mobilă, factorii scalare şi gama dinamică de reprezentare de obicei nu reprezintă o problemă, totuşi numărul se reprezintă pe 24 biţi, aceasta insemnând că nu putem ignora efectul trunchierii semnalului mai ales în unele aplicaţii ca profesional-audio.

Consideraţii privind viteza sistemelor cu DSP Cu toţii am văzut anunţuri pentru PC-uri cu diferite tipuri de procesoare la diverse viteze de lucru, dar când facem o comparaţie asupra unor maşini cu specificaţii similare, brusc observăm că unele sunt mult mai rapide decât altele din punctul de vedere al performanţei reale. Sistemele prost proiectate pot fi încetinite de monitoare şi discuri lente, memorie mică ş.a. Specificaţiile au devenit un mijloc de a vinde PC-urile, pe lângă acestea mai există o multime de “înşelătorii” în industria semiconductoarelor. Nici DSP-urile n-au scăpat. Trăsături care menţionează cu înflăcărare MFLOPS, MIPS, MOPS, MBPS, etc. sunt desigur intotdeauna exacte, ele însă nu ne spun mare lucru despre ce va face o unitate DSP particulară în aplicaţia noastră. Caracteristicile plasează fiecare procesor intr-o categorie de performanţe, dar aceste MFLOPS sunt niste limite sau valori constante? Ce se va întâmpla cu performanţa

31 30 23 22 0 S Exponent Mantisă

Exponent S Mantisa

Page 13: Probleme de proiectare Alternativele hardware pentru DSPcs.ucv.ro/staff/cpatrascu/DSP/Arhitecturi DSP.pdf · arhitectura DSP adecvata aplicatiei. ... uneltelor de proiectare ale microprocesoarelor

13

echipamentului dacă vom avea nevoie să accesăm o cantitate mare de date off-chip? Răspunsul la aceste întrebări de cele mai multe ori nu e sufficient de clar. E nevoie de ceva efort pentru a prezice performanţa sistemului inainte de alegerea unui anumit DSP. Urmatoarele paragrafa ne vor oferi câteva sugestii. Accesarea resurselor de memorie Sistemele DSP au cerinţe complexe pentru memorie. Codul programelor şi datele folosite în rutinele rapide necesită păstrarea lor într-o memorie rapidă. Codul de iniţializare şi coeficienţii pot fi depuşi într-o memorie mai lentă şi mai ieftină. De asemenea putem avea nevoie să păstrăm o cantitate de date într-o memorie EEPROM, sau alt tip de memorie nonvolatilă. Majoritatea unităţilor DSP moderne au o interfaţa directa cu memoria fiind necesară numai o logica relativ simplă dacă este necesară decodificarea adreselor. Majoritatea interfeţelor DSP cu memoria au fost proiectate pentru conectarea lor la module RAM statice sau EPROM, pe când conectarea la o memorie RAM dinamica poate fi foarte greoaie. Aceasta din cauza că RAM statice sunt mai rapide şi mai potrivite pentru aplicaţii DSP proiectate pentru aplicaţii în care timpul reprezintă o componentă critică. Unele DSP virgulă mobilă cu un spaţiu mare de adrese (TMS320C40) dispun de o interfaţă ce permite adresarea paginată a memoriei şi accesarea memoriilor dinamice. Aceasta păstrează preţul memoriei în sistemele mari la limite accesibile fară scăderea drastică a vitezei de prelucrare. Veţi observa că aproape toate specificaţiile pentru unităţile DSP descriu operaţii ce se efectuează în întregime on-chip. Cu alte cuvinte specificaţiile presupun că nu e necesar nici un acces off-chip. Aceasta este adesea nereal, deoarece putem avea o cantitate mare de informaţie off–chip sau un flux rapid de date de la un CAN extern. Poate oare cantitatea de RAM disponibilă pe DSP să păstreze instrucţiunile timp-critice şi toţi coeficienţii necesari? Dacă nu va avea loc o scădere considerabilă a vitezei datorită accesului off-chip. De obicei o stare de wait este necesară pentru fiecare cuvânt accesat off-chip, sau în alte cazuri pot fi mai multe. Primele generaţii de DSP-uri aveau o cerinţă specială pentru decodificatorul de adrese – să fie conectat cu o logică de stări de aşteptare pentru fiecare bloc fizic de memorie accesat. Circuitul nu e complex dar orice logică externă afectează costul sistemului şi timingul memoriei. Dispozitive ca TMS320C30 şi TMS320C5x dispun de generatoare de stări de aşteptare programabile software pentru diferite blocuri din spatiul de adrese. Tot ceea ce trebuie să facă proiectanţii este de a conecta memoria sau periferice la un bloc de adrese corespunzător şi să încărce registrul de stări de wait. Aceste procesoare pot pleca la punerea sub tensiune cu un număr maxim de stari de asteptare, astfel putînd fi folosit la bootare un EPROM lent. Pentru a înţelege câteva implicaţii a utilizării şi interfaţării memoriei să consultăm algoritmul unui filtru FIR pe un TMS320C25. Figura 7.13 prezintă resursele RAM on-chip ale procesorului. Se observă cele trei blocuri ce conţin 544 cuvinte. Unul din aceste blocuri (B0) poate fi configurat ca spaţiu de cod sau de date. Nucleul algoritmului FIR în TMS320C25 constă în instrucţiunea MACD (Multiply and ACumulate with Data move ). Această instrucţiune este de obicei precedată de instrucţiunea RPT, executându-se în mod repetat din registrul de instrucţiuni (un cache cu o singură instrucţiune) până când bucla FIR este completa. Numărătorul poate avea o valoare maximă de 255, astfel pentru valori mai mari a buclei RPT/MACD secvenţa trebuie repetată. MACD înmulţeşte un coeficient din memoria program cu valoarea unei date eşantionată şi depusă în memoria de date, înscrie rezultatul în registrul produs P, adună valoarea precedentă a registrului P la acumulator şi mută data eşationată cu o locaţie de memorie.

Page 14: Probleme de proiectare Alternativele hardware pentru DSPcs.ucv.ro/staff/cpatrascu/DSP/Arhitecturi DSP.pdf · arhitectura DSP adecvata aplicatiei. ... uneltelor de proiectare ale microprocesoarelor

14

Dacă filtrul nostru are 256 de eşantionări sau mai puţin, coeficienţii şi datele pot fi memoraţi în blocurile interne RAM. În acest caz nucleul filtrului FIR va avea 3+n cicluri unde n este numărul de eşantionări. Dacă filtrul are mai mult de 256 dar mai puţin de 544 eşantionări, datele pot fi păstrate în RAM intern, coeficienţii însă trebuie socaţi în memoria externă. În acest caz nucleul filtrului va avea 3+n+np cicluri, unde p este numărul de stări de aşteptare necesare pentru a accesa memoria off-chip. Presupunând că timpul de acces al memoriei e mai mic de 40 ns, TMS320C25 poate accesa memoria program externă fără nici o stare de asteptare. În acest caz nu va fi nici o scădere a vitezei pentru accesul off-chip. Dacă însă memoria program externă necesită o stare de aşteptare se observă că timpul necesar pentru execuţia algoritmului aproape se dublează. Dacă însă filtrul are mai mult de 544 eşantionări atunci atât datele (cel puţin unele) cât şi coeficienţii sunt stocaţi în memoria externă. TMS320C25 are o singură magistrală de memorie pentru accese externe la memoria de date, program şi spaţiul I/O, astfel încât accesele la date şi coeficienţi trebuiesc intercalate. Acesta face ca filtrul să aibă 3+2n+nd+np cicluri, unde d este numărul de stări de aşteptare necesare pentru accesul la memoria de date off-chip. Acest exemplu arată câteva caracteristici la care ar trebui să atragem atenţia. Încap programul, datele şi coeficienţii pe memoria on-chip? Există restricţii la accesul simultan la resursele on-chip, şi dacă da, e posibil de scris un cod care să le evite? Există vre-un cache pentru instrucţiuni? Care sunt penalităţile pentru accesele off-chip? Răspunsul la astfel de întrebări depinde de unitatea DSP evaluată.

Page 15: Probleme de proiectare Alternativele hardware pentru DSPcs.ucv.ro/staff/cpatrascu/DSP/Arhitecturi DSP.pdf · arhitectura DSP adecvata aplicatiei. ... uneltelor de proiectare ale microprocesoarelor

15

TMS320C30 e total diferit în ceea ce priveşte lucrul cu resursele memoriei. Din figura 7.2 s-a vazut că procesorul nu e bazat pe arhitectura Harvard. Organizarea memoriei a sa este prezentată în figura 7.14. Se notează faptul ca memoria internă e împarţită în trei blocuri principale, un bloc ROM şi două RAM. Sunt prezente cache-ul program, multiplele magistrale interne şi cele două magistrale externe. Arhitectura Harvard a modulului TMS320C25 îi asigură viteza prin separarea regiunilor de cod şi date şi abilităţii de a le accesa simultan. TMS320C30 combină spaţiul de cod şi de date, într-un spaţiu de memorie unic, existând însă posibilitatea de a accesa simultan diferite regiuni de memorie.

Magistralele de program, date şi DMA sunt total independente. E posibil pentru magistrala de program să citească o instrucţiune din cache-ul program în acelaşi timp în care magistrala de date citeşte o valoare din blocul 0 RAM şi magistrala DMA înscrie o valoare în blocul 1 RAM. Paralelismul merge mai departe deoarece există două magistrale de adrese şi blocurile RAM on-chip au acces dual. Două valori pot fi citite simultan dintr-un acelaşi bloc RAM (sau câte una din fiecare bloc) într-un singur ciclu. În cazul unui filtru FIR simplu nu vor apărea probleme cu dimensiuni până la 1024 eşantioane, datele şi coeficienţii păstrându-se în RAM-ul intern. Pentru un filtru mai mare pâna la 2048 eşantioane, fie datele fie coeficienţii vor necesita accese la memoria externă. Aceasta nu va încetini execuţia doarece TMS320C30 accesează memoria off-chip prin intermediul magistralei primare fără nici o stare de aşteptare. La algoritmii care lucrează cu program, date sau coeficienţi din memoria externă pot apărea scăderi a vitezei de execuţie, datorate faptului că magistala extinsă are acces la o cantitate limitată de memorie fără stări de wait. TMS320C30 conţine un cache de instrucţiuni şi un controller DMA, care poate fi utilizat pentru îmbunătăţirea performanţelor execuţiei algoritmilor. Cache-ul de instrucţiuni poate conţine 64 instrucţiuni pentru accesul imediat. Acesta poate fi util când memoria externă este lentă, dar este necesar ca o buclă de program de mici dimensiuni să fie executată rapid. Controlerul DMA e prevăzut cu o unitate de prelucrare separată pentru transferuri I/O şi transferuri de date. De exemplu, datele pot fi transferate de la un port serial la un bloc RAM intern fără intervenţia CPU central. Transferul va avea loc tansparent, adică nu va afecta funcţionarea CPU. Până acum s-a văzut că există o gamă largă de implementări hardware şi tipuri de sisteme ce trebuie studiate când evaluăm DSP-urile. Aceasta poate fi făcută prin studierea

Page 16: Probleme de proiectare Alternativele hardware pentru DSPcs.ucv.ro/staff/cpatrascu/DSP/Arhitecturi DSP.pdf · arhitectura DSP adecvata aplicatiei. ... uneltelor de proiectare ale microprocesoarelor

16

atentă a informaţiilor furnizate de producător, ceea ce poate duce la o mare pierdere de timp. Pentru proiectarea unui sistem mai important e mai bine sa procuraţi simulatori software şi să încercaţi o simulare. Aceasta vă va face să observaţi performanţa reala a unităţii într-o aplicaţie reală. O alternativă mai uşoară dar şi mai puţin riguroasă e consultarea unor studii (bench mark) independente. Acestea acoperă funcţiile DSP standard. Ca de exemplu filtre de lungimi diferite şi FFT (transformată Fourier rapidă), sau funcţii mult mai complexe. Optimizarea memoriei este una din cele mai dificile sarcini pentru un proiectant de sistem. Există o mulţime de posibilităţi: internă vs. externă, cod scris liniar sau cu bucle, cache de instrucţiuni, controlere DMA. Obiectivul constă în îndeplinirea sarcinii DSP-ului într-un timp diponibil cu cea mai eficientă soluţie. Noi nu pretindem că avem un răspus magic, fiecare unitate DSP are punctele sale forte şi slabe când este vorba despre proiectarea subsistemului memorie. Integrarea unităţilor periferice Nivelul de integrare al perifericelor în interiorul DSP poate afecta performanţa, costul sistemului şi complexitatea priectării. Intuitiv aceasta înseamnă că majoritatea sistemului final integrat pe o singura pastilă de siliciu va fi o soluţie mai bună. Aceasta va fi adevărat pentru majoritatea aplicaţiilor cu volum mare de bucăţi realizate, dar nu întotdeauna şi pentru aplicaţii cu număr mic de bucăţi. Există unităţi periferice de genul porturilor seriale şi timerelor pe care le puteţi găsi pe majoritatea DSP-urilor. Există de asemenea alte periferiferice ca CAN, CNA, ieşiri PWM, manageri de evenimente etc. care ce întâlnesc mai rar. Toate suprafeţele de siliciu costă bani. Timerele şi porturile seriale sunt suficient de mici şi utilizate, astfel preţul nu creşte atât de mult, iar pierderea financiară pentru cumpărarea unui cip cu un timer şi neutilizarea acestuia nu este mare. În ceea ce priveşte CNA şi CAN situaţia e diferită. Nu e atât de uşor de integrat un circuit analogic de înaltă precizie cu un circuit digital ce lucrează la frecvenţe relativ mari pe aceeşi pastilă de siliciu. Apar interferenţe, îndeosebi datorită zgomotelor generate de circuitele digitale pe masa analogică, pe sursa de alimentare şi pe referinţe. Utilizarea în special a convertoarelor numerice ca cele de tip sigma-delta va fi de ajutor şi soluţiile intergrate devin astfel disponibile.