Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice
Acasa » referate » informatica » calculatoare
Stadiul actual si perspectivele procesoarelor DSP

Stadiul actual si perspectivele procesoarelor DSP


Stadiul actual si perspectivele procesoarelor DSP

In ultimii ani numarul aplicatiilor cere includ prelucrarea digitala a semnalelor a crescut in mod constant. Pentru implementare sunt folosite sisteme diverse, de la arii de porti programabile prin cimp (FPGA) pina la circuite integrate dedicate (custom IC). Procesoarele digitale de semnal (DSP) reprezinta o clasa de microprocesoare optimizate pentru implementarea algoritmilor DSP. Comparativ cu alte tipuri de microprocesoare, procesoarele DSP prezinta avantaje din punct de vedere a vitezei de operare, a costului si a consumului.

Stadiul actual

Procesoare DSP conventionale

Performantele si pretul de cost pentru procesoarele DSP sunt foarte diferite. Procesoarele cu performante reduse si ieftine sunt cele mai utilizate in aplicatiile curente. Aceste procesoare au o arhitectura similara cu cea a primelor procesoare DSP. Ele extrag si prelucreaza o singura instructiune intr-un ciclu de tact si poseda instructiuni complexe care codifica mai multe operatii. In mod curent aceste procesoare includ un singur multiplicator sau o unitate MAC (Multiply and Accumulate) si un ALU. Din aceasta categorie fac parte familiile ADSP-21xx (Analog Devices), TMS320C2x (Texas Instruments) si DSP560xx (Motorola). Aceste procesoare opereaza in general la 20-50 MHz si asigura performante bune pentru operatiile DSP cu un consum energetic relativ mic si cu cerinte de memorie reduse. Ele sunt folosite in mod curent la bunurile de larg consum si la produsele pentru telecomunicatii care cer performante reduse pentru operatiile DSP, in conditiile unui consum redus (drievere de disc, roboti telefonici).



In domeniul performantelor medii se situeaza procesoarele DSP care foloses arhitecturi mai performante si care lucreaza cu frecvente de tact mai mari. Procesoarele DSP din familiile DSP563xx (Analod Devices), TMS320C54x (Texas Instruments) lucreaza la frecvente de 100-150MHz si includ in structura lor unitati functionale noi (registre pentru deplasari binare - barell shifter, memorii cache) care imbunatatesc performantele de calcul pentru unii algoritmi DSP. Unele procesoare din aceasta categorie folosesc un pipeline cu adincime mai mare decit primele procesoare DSP. Chiar daca aceste procesoare contin anumite imbunatatiri arhitecturale ele nu se deosebesc esential de procesoarele traditionale. Procesoarele cu performante medii sunt folosite in echipamentele de telecomunicatii wireless si pentru realizarea modemurilor de mare viteza.

Variante imbunatatite ale procesoarelor DSP conventionale

O posibilitate pentru imbunatatirea performantelor procesoarelor DSP este extinderea arhitecturii prin adaugarea unor unitati de executie in paralel a operatiilor, frecvent a unui multiplicator si a unui sumator. Aceste imbunatatiri arhitecturale sunt completate cu extinderea setului de instructiuni care exploateaza aceste facilitati noi prin codarea mai multor operatii intr-o instructiune si executarea acestora in paralel. Datorita gradului crescut de paralelism procesorele din aceasta categorie pot executa mai multe operatii intr-un ciclu de tact; de exemplu, doua operatii de multiplicare si acumulare in locul unei singure operatii. In Fig. 1-a) si b) este comparat un procesor coneventional (DSP16xx - Lucent Tech.) cu un procesor cu arhitectura imbunatatita (DSP16xxx - Lucent Tech.).

Fig. 1

In mod curent, procesoarele DSP imbunatatite au o magistrala de date mai larga pentru a transfera mai multe cuvinte de date pentru unitatile de executie intr-un ciclu. De asemenea, ele folosesc cuvinte instructiune mai mari pentru a coda un numar crescut de operatii care sunt executate in paralel. Cresterea costului si a puterii consumate sunt compensate de cresterea nivelului de performante.

Arhitecturile VLIW si superscalare

Procesoarele cu performante imbunatatite realizeaza acest lucru in special prin posibilitatea de a executa mai multe operatii intr-un ciclu instructiune. Totusi, folosirea unui hardware si a unor instructiuni mai complexe creeaza probleme suplimentare pentru programarea in limbaj de asamblare.

Cresterea gradului de paralelism in functionare este o alta cale de crestere a performantelor procesoarelor DSP. Au fost create noi arhitecturi care folosesc instructiuni simple pentru codarea operatiilor dar care extrag simultan grupuri de instructiuni pe care le executa in paralel. Folosirea instructiunilor simple simplifica decodarea si executia ceea ce conduce la o crestere a frecventei tactului fata de procesoarele conventionale.

Texas Instruments a fost primul producator care a folosit aceasta abordare pentru procesoarele DSP comerciale. In 1996 TI a creat primul procesor, TMS320C62xx, care implementeaza acest concept, si care a depasit in momentul aparitiei viteza procesoarelor existente. Ulterior si alti producatori au folosit acest concept pentru realizarea unor procesoare cu performante inalte (TI, Analog Devices, Motorola, Lucent Technologies). In prezent exista doua categorii de procesoare care executa in paralel mai multe instructiuni: procesorele VLIW (Very Long Instruction Word) si procesoarele superscalare. Cele doua arhitecturi sunt similare, diferenta constind in modul in care sunt grupate instructiunile care sunt executate in paralel.

Arhitecturile VLIW si superscalare poseda mai multe unitati de executie, fiecare executind propria instructiune. In Fig. 2 este prezentata unitatea de executie si magistrala procesorului TMS320C62xx (TI) care contine sase unitati de executie independente. Un procesor DSP VLIW extrage in mod curent patru pina la opt instructiuni, care sunt parti ale unei intructiuni codate cu un cuvint instructiune "lung". Procesoarele superscalare manipuleaza si executa de asemenea citeva instructiuni intr-un ciclu, de regula intre doua si patru.

Fig. 2

Intr-o arhitectura VLIW limbajul de asamblare stabileste care instructiuni sunt executate in paralel. Deoarece instructiunile sunt grupate in momentul in care este asamblat programul, gruparea nu se modifica cind programul este executat. Prin contrast, procesoarele superscalare contin unitati hardware specializate care stabilesc care instructiuni sunt executate, in functie de disponibiltatea resurselor, schimbind astfel sarcina de manipulare in paralel a instructiunilor de la programator la procesor. Procesorul poate grupa instructiunile in mod diferit in momentul executiei. Diferentele in modul in care sunt manipulate in paralel instructiunile este importanta in contextul folosirii lor in aplicatiile DSP executate in timp real.

Deoarece procesoarele superscalare manipuleaza dinamic operatiile executate in paralel este foarte greu pentru programator sa stabileasca timpul de executie a unui segment de program. Timpul de executie poate diferi mult in functie de datele care sunt accesate; de exemplu, timpul de executie difera, atunci cind procesorul executa o bucla prima data sau cind o executa a treia oara. Aceasta incertitudine in ceeea ce priveste timpul de executie poate crea probleme pentru utillizator atunci cind conditiile de operare in timp real trebuie satisfacute in orice conditii. Masurarea timpului de executie la nivel hardware nu rezolva problema deoarece timpul de executie difera deseori. Stabilirea timpului de executie in conditiile cele mai defavorabile si folosirea acestuia pentru a aprecia conditiile de timp real este o alta cale de a rezolva problema. Dar aceasta poate conduce la o optiune pentru procesoare care poseda o viteza de lucru mult pente necesitati. Caracterul dinamic al functionarii ingreuneaza si operatia de optimizare a software-ului. De aceea procesoarele DSP evita folosirea unor facilitati dinamice, cum sunt executia superscalara si incarcarea dinamica a cache-ului.


Cu toate ca instructiunile sunt simple si ele codifica in mod curent un singur tip de operatie,

multe procesoare VLIW folosesc cuvinte instructiune mai lungi decit procesoarele DSP conventionale (de exemplu, 32 biti in loc de 16 biti). Intr-o arhitectura VLIW cuvintele instructiune lungi sunt folosite pentru a specifica informatii despre unitatile functionale care executa instructiunile. Cuvintele instructiune mai lungi permit specificarea unui set mai uniform de registre (fata de setul redus de registre specializate folosite de procesoarele DSP conventionale). De asemenea folosirea cuvintelor instructiune mai lungi imbunatateste consistenta si regularitatea setului de instructiuni. Aceste instructiuni au mai putine restrictii in privinta folosirii registrelor si a modurilor de adresare, usurind in felul acesta sarcina compilatorului.

Exista si unele dezavantaje datorate folosirii intense a instructiunilor simple. Deoarece fiecare instructiune VLIW estre mai simpla decit la un procesor DSP conventional, procesoarele VLIW au tendinta sa foloseasca mai multe instructiuni decit este necesar pentru o sarcina data. Combinat cu faptul ca instructiunile sunt codate cu cuvinte mai lungi rezulta un necesar mai mare de memorie de program; in consecinta, prin marirea resurselor de memorie, circuitul devine mai scump.

Cind un procesor manipuleaza mai multe instructiuni intr-un ciclu el trebuie sa stabileasca care unitate de executie va manipula fiecare instructiune. In mod curent procesoarele VLIW identifica unitatea functionala care executa o anumita operatie pe baza pozitiei subinstructiunii in cadul cuvintului instructiune lung. Arhitecturile VLIW recente folosesc mecanisme de redirectionare a informatiilor continute de fiecare subinstructiune catre unitatea functionala care va executa operatia respectiva.

Pentru a executa instructiuni in paralel, procesoarele VLIW si superscalare trebuie sa posede

facilitati pentru decodare, magistrale, registre si largime de banda suficienta. In mod curent procesoarele VLIW folosesc fie magistrale largi fie un numar mai mare de magistrale pentru accesul memoriei, pentru a alimenta cu date unitatile multiple de executie. Arhitectura procesoarelor VLIW seamana atit cu cea a procesoarelor de uz general cit si cu cea a procesoarelor DSP conventionale. Deseori din structura procesoarelor VLIW lipsesc unitati functionale prezente la procesoarele DSP conventionale. De exemplu, procesorul TMS320C62xx nu poseda instructiuni de executarea a buclelor cu incarcare zero; toate operatiile de executare a buclelor sunt realizate prin software. Reducerea performantelor din acest motiv este nesemnificativa deoarece procesoarele VLIW sunt capabile sa execute mai multe operatii in paralel. Operatiile necesare pentru executarea buclei pot fi executate in paralel cu alte tipuri de operatii. Un avantaj al acestor arhitecturi este marirea vitezei de operare cu o arhitectura mai simpla si mai regulata si cu un set de instructiuni care permite obtinerea unui cod eficient dupa compilare. Totusi procesoarele VLIW si superscalare prezinta un consum mai mare fata de procesoarele conventionale deoarece atentia a fost concentrata spre obtinerea unei viteze cit mai mari de operare.

Deoarece aceste categorii de procesoare folosesc o cantitate mai mare de memorie si consuma mai multa energie, ele sunt folosite in aplicatiile care cer o mare putere de calcul dar care nu sunt foarte sensibile la consumul energetic. Un procesor VLIW poate fi utilizat la o statie pentru telefonie mobila, dar nu poate fi inclus intr-un telefon celular. O exceptie o constituie procesorul VLIW, SC140, realizat de firmele Motorola si Lucent, care datorita consumului redus poate fi utilizat si in aplicatiile portabile.

Arhitectura SIMD

SIMD (Single-Instruction Multiple-Data) este o tehnica arhitecturala care poate fi utilizata de oricare din categoriile de procesoare prezentate anterior. Arhitectura SIMD permite imbunatatirea performantelor pentru anumiti algoritmi prin executarea de mai multe ori a unei operatii folosind diferite date. De exemplu, o instructiune de multiplicare SIMD poate executa doua sau mai multe inmultiri cu diferite seturi de date de intrare, in paralel, intr-un singur ciclu de tact. Aceasta tehnica poate conduce la o crestere semnificativa a vitezei de calcul pentru unele operatii cu vectori care sunt folosite in aplicatii multimedia si de prelucrare a semnalelor.

Particularitatile hardware pentru realizarea posibilitatilor SIMD variaza mult la diferite procesoare. De exemplu, firma Analog Devices a modificat aritectura DSP conventionala pentru operatii in virgula mobila in cazul procesoarului ADSP-2106x, adaugind o noua unitate de executie identica cu cea originala. Noul procesor este ADSP-2116x. Fiecare set de unitati de executie a procesorului ADSP 2116x contine o unitate MAC, un ALU si un shifter, fiecare cu propriul set de registre. Arhitectura imbunatatita poate manipula o singura instructiune si o poate executa in paralel pe ambele cai de date folosind date diferite, rezultind practic o dublare a performantelor pentru executarea anumitor algoritmi.

Din contra, in loc de a fi prevazute mai multe unitati de executie identice, unele procesoare DSP pot "imparti" unitatile de executie existente (unitatea ALU sau MAC) in mai multe subunitati care prelucreaza date de format mai redus. De exemplu, procesoarele care prelucreaza operanzi stocati in registre "lungi" (de exemplu, 32 biti) pot trata aceste registre ca un set de registre de lungime mai mica (doi operanzi de 16 biti sau patru de 8 biti). Un exemplu de procesor cu facilitati SIMD este TigerSHARC de la Analog Devices, care combina doua tehnici SIMD: o instructiune poate controla functionarea celor doua unitati functionale ale procesorului si acceasi instructiune poate comada functionarea unei unitati de executie impartita in unitati mai mici (un ALU sau un MAC divizat). Folosid aceste capabilitati SIMD ierarhizate procesorul poate executa opt multiplicari pe 16 biti intr-un ciclu, dupa cum se observa din Fig. 3.

Fig. 3

Totusi valorificarea posibilitatilor SIMD necesita un efort suplimentar din partea utilizatorului. Programatorul trebuie sa organizeze datele in memorie astfel incit prelucrarea SIMD sa poata fi executata cu viteza maxima, iar algoritmii trebuie modificati pentru a exploata la maximum resursele procesorului. Tehnica SIMD este productiva acolo unde pot fi prelucrare date in paralel; in cazul algoritmilor seriali rezultatele nu justifica folosirea ei.

Alternative pentru procesoarele DSP

Procesoare de uz general performante

Multe din procesoarele de uz general (Pentium, Power PC) au fost imbunatatite cu facilitati pentru sporirea posibilitatilor de calcul. Cea mai comuna modificare o reprezinta adaugarea unor instructiuni SIMD setului de baza; cum sunt instructiunile MMX sau SSE pentru procesorul Pentium sau AltiVec pentru Power PC. Aceasta abordare este buna pentru procesoarele care au multe resurse (magistrale, registre, ALU), care pot fi tratate ca resurse multiple, dar mai mici. De exemplu, un CPU cu magistrala de date de 64 de biti, registre de 64 de biti si ALU de 64 de biti poate fi considerat ca avind de patru ori mai multe magistrale (respectiv registre sau ALU) de 16 biti, precizia curent folosita de algoritmii DSP. Folosind aceasta abordare procesoarele de uz general pot realiza operatii DSP mai rapid decit un procesor DSP performant datorita eficientei tratarii SIMD si a vitezei de lucru superioare a procesoarelor de uz general. Procesoarele de uz general opereaza in prezent la frecvente mai mari de 2 GHz, in timp ce procesoarele DSP performante folosesc frecvente de 200-250 MHz.

Procesoare hibride

O analiza a unui sistem digital complex arata ca nici una dintre categoriile de microprocesoare existente nu satisface in totatiltate cerintele aplicatiilor.

Arhitecturile RISC sunt folosite intens in aplicatiile dedicate, in primul rind datorita suportului pentru programarea in limbaj de nivel inalt de care dispun, pentru existenta compilatoarelor cu optimizare a codului si pentru performantele lor in aplicatiile de timp real. Cu toate ca viteza de lucru este mare ele au posibilitati limitate pentru operatiile de prelucrare a semnalelor.

Folosirea unui procesor de uz general pentru realizarea operatiilor de control are de asemenea multe limitari. Microcontrolerele sunt procesoare destinate operatiilor de control, cerute de multe aplicatii. Aceste procesoare au o putere de prelucrare redusa si au un pret de cost relativ scazut.

Procesoarele DSP sunt potrivite pentru a executa rapid bucle repetitive de instructiuni specializate (de exemplu, operatii de multiplicare si acumulare) dar nu au aceleasi posibilitati pentru multiprogramare. De asemenea, raspunsul la intreruperi nu este intotdeauna suficient de rapid pentru a satisface cerintele unei aplicatii de timp real. De aceea, in multe situatii este necesara integrarea celor trei categorii de procesoare pentru a satisfacte toate cerintele unei aplicatii.

Exista aplicatii unde cuplarea unui microcontroler cu un procesor de semnal este naturala. Un exemplu este cel al telefoanelor celulare care trebuie sa realizeze atit activitati de supervizare cit si operatii de prelucrare a vocii. Activitatile de supervizare sunt executate de microcontroler, iar cele de prelucrare a semnalului vocal sunt executate de procesorul DSP. De aceea au fost realizate procesoare duale care contin un microcontroler si un procesor DSP in acelasi cip. Aceasta abordare a fost folosita de firmele Hitachi, ARM, Lexra, Siemens. Multe din aceste procesoare hibride ofera performante de prelucrare care exista la procesoarele DSP uzuale dar au si facilitatile microcontrolerelor din care au provenit.

Arhitectura TriCore - Siemens

Arhitectura TriCore dezvoltata de firma Siemens reprezinta cel mai bun exemplu de imbinare a facilitatilor celor trei clase de microprocesoare: procesoarele de uz general, microcontrolerele si procesoarele DSP. Aceasta simbioza este intilnita in cazul multor aplicatii complexe, unde folosirea unui singur tip de microprocesor nu asigura performantele dorite. In Fig. 4 este sunt prezentate etapele integrarii celor trei unitati intr-un procesor unic.

TriCore-1 este primul nucleu pe 32 de biti care integreaza functionalitatea unui microcontroler cu un procesor DSP si care este destinat realizarii sistemelor care opereaza in timp real. Alte avantaje oferite de acest procesor hibrid sunt: consumul energetic redus, gabaritul mai mic decit al unui sistem realizat cu componente separate, pretul de cost competitiv. Cerintele arhitecturale care sunt satisfacute de TriCore-1 sunt sintetizate in Tabelul 1. Arhitectura setului de instructiuni TriCore defineste un procesor optimizat pentru operare multitasking, cu resurse mari de memorie interna si facilitati de comutare rapida a contextului. TriCore-1 lucreaza ca un multiprocesor virtual, capabil sa execute in timp real operatii complexe, comandate prin intreruperi. Nivelul ridicat al performantelor este datorat urmatorilor factori:

- Setul unificat de instructiuni. Procesorul poate executa atit activitati de control cit si operatii DSP cu un set de bogat de formate de date, de moduri de adresare si cu un numar mare de registre.

- Comutarea rapida a contextului. Largimea mare a magistralei pentru accesul memoriei (tipic 256 de biti) permite comutarea functionarii de la o activitate de control la o activitate DSP in mai putin de 100 ns.

- Resurse mari de memorie interna. Nucleul poseda pina la 2 Mbytes memorie DRAM si pina la 512 Kbytes memorie flash.

- Viteza de operare mare. Procesorul executa controlul direct al perifericelor interne, poseda mecanisme de protectie a memoriei si pentru depanare software.

Principalele beneficii ale noii arhitecturi sunt:

Multiprocesare virtuala. Combinatia dintre facilitatile arhitecturii hibride, comutarea rapida a contextului si memoria interna de mare capacitate reprezinta un suport puternic pentru lucrul in regim de multiprogramare.

Functionarea in timp real. Arhitectura procesorului TriCore-1 este dedicata aplicatiilor de timp real. Viteza de prelucrare si timpul de raspuns la intreruperi sunt principalii factori care definesc un procesor de timp real.

Sistem unitar de instrumente software. Proiecatntul de sistem are la dispozitie un sistem unic de instrumente software pentru programarea nucleului constind din compilatoare, biblioteci de functii si pentru algoritmi de prelucrare, sisteme de operare de timp real, emulatoare, etc.

Sistem integrat on-chip. Deoarece contine majoritatea componentelor unui sistem (unitate centrala hibrida, memorie, periferice) nucleul reprezinta un sistem integrat. Folosirea procesorului TriCore reduce sensibil costul sistemului fata de implementarile care folosesc procesoare diferite pentru control si pentru prelucrarea semnalelor.

Fig. 4

In Fig. 5 este prezentat un sistem pentru comanda unui periferic multifunctional complex (printer-scanner-fax-copiator) care foloseste posibilitatile procesorului TriCore-1. Sunt utilizate posibilitatile RISC si DSP pentru a executa in timp real cele trei operatii de baza: printarea, scanarea si comunicatia cu fax-modem. Memoria DRAM interna asigura mamoria de cadru pentru operatia de scanare.

Un alt exemplu de folosire a posibilitatilor procesorului hibrid este dat in Fig. 6. Cresterea capacitatii de stocare pentru unitatea HDD implica cresterea performentelor DSP pentru algoritmii de comanda. In plus cresterea largimii de banda pentru transferul datelor necesita performante superioare pentru controller. TriCore-1 satisfece deplin cele doua cerinte. De exemplu, o parte din memoria cache pentru disc poate fi localizata in memoria DRAM a nucleului TriCore.

Fig. 5

Fig. 6

Tabelul 1





Politica de confidentialitate


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