Sunteți pe pagina 1din 20

Universitatea tefan cel Mare, Suceava, Romnia Facultatea de Inginerie Electric i tiin a Calculatoarelor

Asistent univ.drd.ing. Ciprian Afanasov

Masterand : Sfrijan Dorin

Cuprins
1.1. Introducere ...................................................................................................................................................... 3 2. Arhitectura general a procesoarelor DSP ........................................................................................................... 5 2.1 Introducere .................................................................................................................................................. 5 2.2 Opera ii efectuate de unitatea central .......................................................................................................... 7 Multiplicarea cu acumulare ........................................................................................................................... 7 Unitatea logico-aritmetic (ALU) .................................................................................................................. 7 Registrele de deplasare (shifter-ele) ............................................................................................................... 8 Paralelismul .................................................................................................................................................. 8 Magistralele .................................................................................................................................................. 9 Generatorul de adrese pentru date .................................................................................................................. 9 2.3 Configura ii ale memoriei........................................................................................................................... 10 Spa iul de memorie ..................................................................................................................................... 11 Deplasarea memoriei ................................................................................................................................... 13 2.4 Periferice i sisteme de intrare / ie ire ......................................................................................................... 13 Portul serial................................................................................................................................................. 14 Interfa a "host-port" (port gazd ) ................................................................................................................. 15 Controlerul DMA ........................................................................................................................................ 15 Portul paralel .............................................................................................................................................. 15 Timerul hardware ........................................................................................................................................ 15 Generatorul de ceas i PLL .......................................................................................................................... 16 Gestiunea puterii ......................................................................................................................................... 16 3. Arhitectura familiei DSP56K: ........................................................................................................................... 17 3.1. Componentele centrale sunt:...................................................................................................................... 17 3.2. Schema bloc tipica a unui procesor din familia DSP56K este : ................................................................... 18 3.3. Magistrale de date: ................................................................................................................................... 18 3.4. Magistralele de adrese: .............................................................................................................................. 19 3.5. Data ALU: ................................................................................................................................................ 19 3.6. AGU......................................................................................................................................................... 19 3.7. PCU.......................................................................................................................................................... 20

1.1. Introducere
Procesoarele de semnal, numite n literatura de specialitate DSP-uri (DSP = Digital Signal Processor), sunt sisteme de calcul programabile de tip single-chip, destinate prelucr rii complexe a semnalelor digitale. De i se numesc procesoare, ele nglobeaz ntr-un singur circuit integrat, principalele subsisteme componente ale unui sistem de calcul (unitate central , subsistem de memorie, subsistem de intrare/ie ire etc.), realiznd func ii complexe de transfer i de prelucrare a datelor. Pentru efectuarea unor prelucr ri n timp real asupra datelor, procesoarele de semnal lucreaz la frecven e mari i dispun de un set complex de instruc iuni, putnd astfel executa zeci de milioane de opera ii n virgul mobil pe secund (MFLOPS = Million Floating-point Operations per Second). Totodat , structura intern paralel permite efectuarea mai multor opera ii simultan, ceea ce cre te considerabil puterea de calcul a DSP-ului. Evolu ia n timp a procesoarelor de semnal a fost condi ionat de dezvoltarea tehnologiei de fabrica ie a circuitelor integrate digitale. n general, tendin ele dezvolt rii tehnologice au n vedere urm toarele aspecte: - m rirea densit ii de integrare, prin cre terea num rului de tranzistoare pe unitatea de suprafa a chip-ului. Aceasta permite cre terea num rului unit ilor func ionale integrate i a complexit ii acestora; - cre terea frecven ei interne de lucru a procesoarelor, ce se poate face explicit prin mbun t irea calit ii tranzistoarelor i, implicit, prin mic orarea dimensiunii tranzistoarelor i a distan elor dintre ele; - realizarea mai multor unit i paralele de prelucrare i de m rire a dimensiunii cuvintelor prelucrate i memorate; - mic orarea consumului energetic i a puterii disipate, ce tind s creasc o dat cu cre terea frecven ei de lucru a procesoarelor; - p strarea compatibilit ii software cu modelele anterioare din aceea i familie de procesoare.

Pentru ob inerea unei valori optime a raportului performan /cost, structura intern a unui DSP trebuie adaptat specificului aplica iei n care acesta se utilizeaz . n plus, performan ele ob inute cu un anumit procesor de semnal depind esen ial de componentele software (programe utilitare i de aplica ii) oferite de fabricant. De aceea, firmele produc toare au n vedere dou aspecte majore: y asigurarea unei game largi de produse i de solu ii complete cu DSP-uri, adaptndu-se permanent la cerin ele pie ei; y crearea suportului software pentru dezvoltarea aplica iilor cu DSP-uri. De exemplu, firma Texas Instruments (TI) a devenit liderul pie ei de procesoare de semnal digital, ncepnd cu anul 1982, cnd a introdus pe pia procesorul TMS32010. n timp, firma a dezvoltat o gam foarte larg de produse, avnd n produc ie mai mult de 100 de tipuri de DSP-uri, utilizate n domenii diverse, cum ar fi: comunica ii, calculatoare, produse de larg consum, conducerea proceselor industriale, instrumenta ie, aplica ii militare etc. Pentru utilizarea eficient a procesoarelor, firma TI ofer un pachet software amplu, sub form de documenta ii, aplica ii diverse i biblioteci de programe, colabornd cu peste 250 de firme produc toare de software i hardware. Procesoarele de semnal digital din gama TMS320C3x produse de firma Texas Instruments sunt realizate n tehnologie CMOS i lucreaz cu numere n virgul mobil pe 32 de bi i. Datorit unei magistrale interne extinse i a unui set puternic de instruc iuni, DSP-ul poate executa pn la 60 MFLOPS. Procesorul dispune de un nalt grad de paralelism n execu ie, ce permite efectuarea simultan de pn la 11 opera ii. Procesoarele de semnal din familia TMS320 pot fi mp r ite n dou mari clase:

procesoare de virgul fix (cum sunt cele din genera iile C20x, C24x, C5x, C54x i C62x) i, respectiv, procesoare de virgul mobil (corespunz toare genera iilor C3x, C4x, C67x). n cele ce urmeaz , se vor prezenta caracteristicile principale ale genera iilor de DSP-uri produse de Texas Instruments, mpreun cu schema bloc structural a celui mai reprezentativ produs al fiec rei genera ii. 4

2. Arhitectura general a procesoarelor DSP


A a cum s-a v zut n Fig.2.1, procesorul DSP realizeaz func iile esen iale de prelucrare a semnalelor. Dezvoltarea unui sistem DSP eficient se bazeaz pe: arhitecturile hard i soft ale procesorului DSP, transferul datelor, capacit ile sale aritmetice, configura iile posibile ale memoriei, structurile I/O, programabilitatea i setul de instruc iuni al procesorului. Arhitectura procesorului i algoritmul DSP folosit trebuie s fie complementare. Pentru unele aplica ii, algoritmul este dat i trebuie ales cel mai potrivit procesor care s -l realizeze. Pentru altele, procesorul disponibil este cunoscut i sarcina proiect rii este de a dezvolta algoritmi eficien i care s satisfac cerin ele aplica iei. Scopul este de a dezvolta un algoritm DSP astfel nct s se utilizeze un minim de resurse ale procesorului, l snd astfel neutilizate resurse pentru mbun t iri i dezvolt ri ulterioare.

2.1 Introducere
Marea majoritate a procesoarelor DSP sunt proiectate s realizeze opera ii repetitive de tip MAC (multiply-add computation), precum filtrarea r spunsului la impuls finit (FIR - FiniteImpulse Response), definit prin rela ia:

unde: {b0,b1, ... ,bL1} sunt coeficien ii de filtrare, {x(n),x(n 1), ... ,x(n L + 1)} sunt e antioanele semnalului, iar L reprezint lungimea filtrului. Calculul ie irii y(n) necesit parcurgerea urm torilor pa i: 1. Aducerea a doi operanzi, bi i x(n-i) din memorie 2. nmul irea lui bi cu x(n-i) 3. Adunarea rezultatului bix(n-i) la acumulator 4. Repetarea pa ilor 1, 2 i 3 pentru i=0,1,2,...,L-1 5. Transferul rezultatului y(n) din acumulator n memorie

6. Actualizarea indicatorilor (pointerilor) pentru bi i x(n-i) i repetarea pa ilor de la 1 la 5 pentru urm torul e antion de intrare. Arhitectura intern general a unui procesor DSP este prezentat n Fig.2.1 Aceast structur este optimizat pentru opera iile de filtrare FIR descrise n rela ia de mai sus. Marea majoritate a procesoarelor DSP utilizeaz blocuri func ionale similare, de i interconectarea intern i opera iile efectuate pot varia. Prin compara ie cu microprocesoarele de uz general, tr s tura specific a DSP-urilor const n puternicul paralelism utilizat n vederea mbun t irii vitezei de procesare. DSPurile dispun de unit i speciale de prelucrare deservite prin bus-uri specific multiple, multe dintre acestea putnd lucra independent complementar. A a cum se vede n Fig.2.1, unitatea logico-aritmetic (ALU - Arithmetic Logic Unit) realizeaz adunarea, sc derea i opera ii logice. Registrul de deplasare este utilizat pentru scalarea datelor, iar multiplicatorul i acumulatoarele hardware realizeaz opera ii MAC. Generatoarele de adrese pentru date (DAGENs - Data Address Generators) definesc adresele operanzilor utiliza i n instruc iuni. Cu aceste resurse disponibile, procesorul DSP atinge o vitez ridicat de execu ie, realiznd opera iile n aceste unit i n mod simultan. Opera iile de baz executate de toate aceste unit i vor fi discutate ulterior. i n mod

Fig.2.1 Arhitectura general a unui procesor DSP 6

Majoritatea procesoarelor DSP utilizeaz o arhitectur Harvard modificat , cu dou sau trei magistrale de memorie (una de program i nc una sau dou pentru date). Este facilitat astfel accesul simultan la coeficien ii filtrului i la semnalul de intrare n acela i ciclu de ceas. Totu i, utilizarea arhitecturii Harvard creaz unele dificult i n scrierea programelor n C care utilizeaz ntreaga capacitate a structurii MAC i a accesurilor repetate la memorie.

2.2 Opera ii efectuate de unitatea central


Se vor prezenta succint func iile principale ale unit ii centrale de prelucrare (CPU) a procesoarelor DSP. Multe dintre aceste func ii sunt comune cu cele ale microprocesoarelor de uz general, cu excep ia unit ii/unit ilor MAC, a registrelor de deplasare, a blocurilor multiple de memorie mpreun cu magistralele care le deservesc i a puternicelor generatoare de adrese pentru date.

Multiplicarea cu acumulare Opera iile de nmul ire necesit mai multe cicluri de ceas ntr-un microprocesor sau microcontroler, acolo unde ele sunt efectuate prin opera ii repetate de deplasare i sumare. Pentru a atinge viteza cerut de algoritmii DSP baza i pe multiple opera ii de nmul ire (vezi de exemplu filtrarea FIR din rela ia (2.1)), procesoarele TMS320 utilizeaz un multiplicator hardware cu operare paralel , care poate nmul i doi termeni (date) ntr-un singur ciclu de ceas. n acela i timp, un sumator plasat imediat dup multiplicator adun rezultatul nmul irii anterioare la con inutul unui acumulator cu dubl -precizie. Unele procesoare, precum C55x, dispun de dou unit i MAC i 4 acumulatoare de 40 bi i. O serie de instruc iuni specifice care pot realiza nmul irea, acumularea, deplasarea datelor i opera iile de actualizare a pointerilor (indicatorilor) ntr-o singur instruc iune sunt prev zute pentru algoritmii de filtrare i de corelare. Aceste instruc iuni se bazeaz pe arhitectura paralel pentru a realiza o execu ie foarte rapid .

Unitatea logico-aritmetic (ALU) Opera iile aritmetice de baz realizate de procesoarele DSP sunt adunarea, sc derea, etc. Unitatea logic realizeaz opera ii logice booleene, precum AND, OR i NOT, asupra bi ilor individuali ai unui cuvnt de date i execut deplas ri logice ale ntregului cuvnt de date. Att 7

blocul logic, ct i cel aritmetic, sunt cuprinse de obicei ntr-o singur unitate ALU. mp r irea binar este de obicei implementat printr-o rutin software deoarece ea necesit o serie repetat de opera ii de deplasare i de sc dere condi ionat .

Registrele de deplasare (shifter-ele) Registrele de deplasare utilizate pentru opera ii de scalare sunt c ionate de instruc iuni specifice de deplasare. Shifter-ul poate fi utilizat pentru prescalarea unui operand din memoria de date sau din acumulator naintea unei opera ii ALU, sau pentru postscalarea valorii din acumulator naintea stoc rii rezultatului n memoria de date. n plus, shifter-ul realizeaz deplasare logic sau aritmetic io a valorii din acumulator. De exemplu, shifter-ul lui

TMS320C5000 poate produce o deplasare spre stnga a 0 pn la 31 bi i i o deplasare spre dreapta a 0 pn la 32 bi i a datelor de intrare ntr-un singur ciclu.

Paralelismul Instruc iunile care controleaz opera iile efectuate de un procesor DSP necesit mai mul i pa i pentru a fi executate. Mai nti, este generat adresa instruc iunii, iar con inutul loca iei de memorie program de la adresa indicat este citit i decodificat. n func ie de instruc iunea decodificat , unul sau mai mul i operanzi sunt extra i pentru a dispune de datele cerute de instruc iune. n sfr it, rezultatul este stocat, iar adresa urm toarei instruc iuni este calculat . Fiecare instruc iune poate necesita mai multe cicluri de ceas pentru a executa mai mul i pa i de preextragere, decodificare, extragere operand, execu ie i scriere a rezultatului. Ace ti pa i pot fi executa i succesiv n structuri paralele. Dac fiecare pas necesit un singur ciclu de ceas, atunci de exemplu n cazul lui de pn la 7 instruc iuni care necesit de TMS320C55x, ei pot fi executa i printr-o secven

asemenea cte un ciclu de ceas. Arhitectura paralel se bazeaz n totalitate pe descompunerea sistematic a instruc iunilor n multiple opera ii elementare succesive. n Fig.2.1 se poate observa c multiplicatorul i ALU permit operarea paralel . n timp ce multiplicatorul realizeaz operarea sa specific la momentul de timp i, adic nmul irea bix(n-i), ALU adun produsul calculat anterior, bi-1x(n-i+1), la acumulator. Arhitectura paralel este util datorit paralelismului implicat de algoritmii DSP i de aplica ii. n aceea i figur se observ c 8

toate unit ile de procesare, configurate ntr-o structur paralel , pot primi iruri de date diferite i pot executa opera ii distincte n acela i ciclu. De exemplu, multiplicatorul acceseaz doi operanzi i i nmul e te; n acela i timp, blocurile DAGEN actualizeaz pointerii de adrese, iar ALU adun rezultatul produsului calculate anterior la acumulator cu (sau f r ) rotunjire. Tehnica de suprapunere a pa ilor de operare n unit i de procesare distincte se nume te pipelining. Uneori, acest calcul paralel poate implica unele dificult i n programare dac execu ia unei instruc iuni trebuie s fie ntrziat pn cnd un rezultat anterior devine disponibil

Magistralele Magistralele, precum i alte interconexiuni, permit realizarea unor c i de comunica ie ntre unit ile care alc tuiesc un procesor DSP. Viteza de execu ie a filtr rii descrise n rela ia (2.1) poate fi i mai mult mbun t it dac se utilizeaz magistrale de date distincte pentru fiecare din cele dou intr ri ale multiplicatorului. n loc de a solicita extragerea unui operand pentru bi i pe cel lalt, x(n-i), pe aceea i magistral de date, ambii operanzi pot fi adu i simultan pe dou magistrale de date distincte, a a cum se arat n Fig.2.3. Cele dou magistrale de date i magistralele de adrese specifice se conecteaz la dou memorii separate: memoria A pentru coeficientul bi i memoria B pentru semnalul x(n-i). Aceast configura ie nl tur conflictul care ar apare la accesarea celor doi operanzi de la aceea i memorie, n acela i timp. O a treia memorie, cu magistralele sale de date i adrese, este utilizat pentru stocarea valorii din i o acumulator napoi n memoria C. n afara acestor blocuri de memorie de date, exist instruc iunilor i a mpiedica astfel ntrzierile n accesarea datelor.

memorie program cu magistrale de date i de adrese specifice (dedicate) pentru extragerea

Generatorul de adrese pentru date Dup cum se vede n Fig.2.3, fiecare memorie dispune de magistrala sa proprie de adrese creat de blocul DAGEN. Accesarea secven ial a operanzilor bi i a celor corespunz tori x(n-i), i=0,1,...,L-1, reprezint o opera ie secven ial natural n care ace ti operanzi sunt stoca i n loca ii consecutive ale memoriei. Fiecare bloc DAGEN determin doar incrementarea (sau decrementarea) indicatorului de adrese pentru pozi ionarea la data urm toare n acela i ciclu de ceas n care multiplicatorul i ALU realizeaz opera ii aritmetice; ca urmare, nu este necesar un 9

ciclu de ceas suplimentar pentru a actualiza pointerul de adrese. Dup accesarea ultimului coeficient, bL-1, indicatorul de coeficien i trebuie ini ializat la adresa lui b0, n vederea execu iei itera iei urm toare. Aceast opera ie poate fi realizat u or prin organizarea buffer-ului de coeficien i ntr-o manier ciclic , sau prin implementarea unei aritmetici modulo L n buffer-ele circulare. n plus, DAGEN permite i adresarea cu bit inversat pentru calculul algoritmilor FFT (Fast Fourier Transform).

2.3 Configura ii ale memoriei


Cele dou tipuri comune de memorie sunt RAM i ROM. Memoria RAM poate fi scris / citit n mod dinamic; astfel, ea este cel mai flexibil mod de stocare a datelor n procesul de dezvoltare. Totu i, ea nu permite o stocare permanent a programelor i datelor dect n tampon cu o baterie de alimentare. Pe de alt parte, memoria ROM, folosit cel mai adesea sub form EPROM (erasableprogrammable ROM), permite stocarea permanent FLASH n locul memoriei EPROM, care poate fi tears i poate fi tears i renscris prin procedee electrice. Sistemele DSP moderne utilizeaz cu prec dere memorie i reprogramat direct pe plac , ceea ce este extrem de util pentru dezvoltarea unui produs. Memoria TMS320 este organizat n trei spa ii individuale: program, date i I/O. n cadrul fiec ruia dintre aceste trei spa ii, memoria ROM, RAM, sau perifericele mapate n memorie pot fi rezidente pe cip, sau n afara acestuia. Memoria de program con ine instruc iunile care implementeaz algoritmii DSP. Aceste instruc iuni pot con ine date (constante), adrese de memorie pentru ramifica iile din program i comenzi care controleaz func ionarea procesorului. Memoria de date stocheaz coeficien i i e antioane de semnal utilizate n instruc iuni. Spa iul de memorie I/O se interfa eaz cu perifericele mapate n memoria extern . Multe dintre procesoarele DSP evoluate dispun de memorii cache, de program i de date pe cip i pot accesa spa ii largi de memorie extern . n majoritatea procesoarelor DSP moderne este inclus i o facilitate de manipulare a

blocurilor de date, fie din memoria intern , fie n cea extern , ceea ce face posibil ca volume mari de date sau programe s fie stocate n afara cip-ului, n memorii mai lente i care s fie transferate n memoria intern , mai rapid , atunci cnd este necesar. De exemplu, procesoarele TMS320C2000 nu au dou blocuri de memorie de date pe cip mpreun cu magistralele aferente. 10

Un bloc de memorie intern poate fi configurat software s ndeplineasc rolul de memorie de program, sau memorie de date.

Spa iul de memorie Procesorul DSP trebuie s poat adresa i accesa o memorie. Multe procesoare utilizeaz o memorie de program programabil pe cip pentru aplica ii complexe, aceasta permi nd cel mai eficient acces. Ad ugnd o memorie flash pe cip se face un pas important spre aplica iile compacte, cu cost sc zut, i n special pentru fazele de dezvoltare i pentru aplica ii relativ simple. Unele procesoare dispun i de un mic spa iu de memorie RAM pe cip, care poate fi configurat n mod dynamic ca memorie de program. Atunci cnd este necesar o memorie program extern , trebuie avute n vedere m rimea memoriei i viteza de acces. Cu ct frecven a ceasului procesoarelor DSP cre te, cu att timpul de acces la memoria extern trebuie s scad . Un exemplu de hart de memorie pentru TMS 320C5510 este dat n Fig.2.4. A a cum se poate observa, acest procesor dispune de o hart de memorie unificat , astfel nct accesurile la program i la date au loc n acela i spa iu fizic. Memoria total de pe cip, incluznd 32Kb de ROM, este de 352Kb (sau 176 Kcuvinte de 16 bi i). RAM-ul cu acces dual (DARAM - Dualaccess RAM) se compune din 8 blocuri a cte 8Kb fiecare. Fiecare bloc DARAM poate realiza dou accesuri pe ciclu (dou citiri, dou scrieri, sau o scriere i o citire). Att CPU, ct i perifericele, pot citi sau scrie n memoria DARAM n acela i ciclu. Memoria DARAM este ntotdeauna mapat n spa iul de date i are rolul de a stoca date. Memoria RAM cu acces unic (SARAM - Single-access RAM) se compune din blocuri de 8Kb. Fiecare bloc SARAM poate realiza un singur acces pe ciclu (fie o citire, fie o scriere). Atunci cnd viteza procesorului nu este un factor critic, timpul de acces la memorie poate fi extins utiliznd o frecven a ceasului mai mic . Aceast metod duce la ncetinirea ciclului procesorului, reducnd astfel i timpul de acces la memorie. O alt metod este de a l sa procesorul s ruleze la ntreaga sa vitez , dar incluznd o serie de st ri de a teptare pentru accesarea memoriei. St rile de a teptare permit procesoarelor DSP s a tepte execu ia opera iilor efectuate de interfe ele externe mai lente. Aceste procesoare au de obicei pe cip memorie configurabil ca memorie de program, permi nd astfel stocarea unor mici programe care s poat fi executate cu ntreaga vitez . nc rcarea ini ial a programului din memoria de program extern mai lent se poate realiza prin inserarea st rilor de a teptare. Aceast metod ocole te 11

necesitatea utiliz rii unor memorii ROM rapide, care sunt scumpe, f r a sacrifica viteza de procesare.

Fig.2.2 Harta memoriei procesorului TMS320C5510 Cantitatea de memorie ROM disponibil on-chip variaz de la un procesor la altul. Unele procesoare utilizeaz o memorie ROM restrns care con ine un program de nc rcare (boot loader) care face leg tura la memoria rapid RAM de pe circuit sau extern . Aproape toate procesoarele DSP actuale dispun de memorie de date RAM on-chip. Pentru multe aplica ii, memoria intern on-chip nl tur necesitatea accesului la o memorie de date extern . Procesoarele TMS320 utilizeaz unele loca ii ale memoriei de date pentru uz intern, a a cum sunt vectorii de ntreruperi i registrele mapate n memorie. Aceste registre furnizeaz o modalitate convenabil pentru a salva i stoca con inutul registrelor atunci cnd au loc schimb ri de context sau n cazul transferului de date ntre acumulatoare i alte registre. Memoria cache Sistemele de memorie ale procesoarelor pot fi optimizate prin utilizarea unei micimemorii rapide ntre procesor i spa iul mai larg de memorie lent . Aceast memorie de 12

mare vitez poart numele de cache i ea con ine cele mai recent accesate instruc iuni sau date din memoria principal . Exist dou tipuri de cache: cache de tip L1, care este mic mod curent n microprocesoare, iar noile genera ii de DSP-uri le utilizeaz i se plaseaz n apropierea nucleului procesorului, i un cache mai mare, L2. Acestea se utilizeaz n i ele pentru a stoca cele mai utilizate sec iuni de program sau de date. De exemplu, TMS320C55x dispune de un buffer de instruc iuni de 64 bi i, care poate fi tratat ca un cache de program. Multe dintre instruc iunile care se refer la bucle repetitive pot fi stocate n cache i vor fi executate n mod repetat f r alte cicluri de fetch din memoria extern . Utilizarea memoriei cache gr be te accesul la codul i la datele critice, dar poate fi afectat determinismului datelor i cre terea complexit ii codului.

Deplasarea memoriei Procesarea digital permite partajarea sarcinilor unui procesor la prelucrarea mai multor semnale prin time-sharing, reducndu-se astfel costul per semnal prelucrat. De exemplu, un singur procesor DSP poate prelucra mai multe canale ale unei linii T1, la care 24 de canale sunt combinate ntr-unul prin multiplexarea cu timp divizat. Semnalul multiplexat poate fi aplicat unui singur procesor. Prin schimbarea n procesor a coeficien ilor care corespund acelui canal nainte de a se aplica fiecare semnal component la intrarea procesorului, sistemul va func iona ca i cum fiecare canal ar dispune de cte un procesor DSP specific. Aceast aplica ie necesit utilizarea unei metode eficiente de deplasare a coeficien ilor i a bufferelor de semnal ntre diferite loca ii ale memoriei.

2.4 Periferice i sisteme de intrare / ie ire


Procesoarele DSP dispun n mod obi nuit on-chip de periferice sau interfe e pentru periferice pentru a facilita interfa area acestora la dispozitive externe precum un DAC, un ADC sau alte procesoare DSP sau microprocesoare. n plus, unele periferice interne sunt utilizate pentru a controla i a coordona ceasurile procesoarelor DSP, mecanismul de transfer al datelor, precum i facilit ile de gestiune a puterii (power management). De aceea este important o scurt trecere n revist a acestor periferice naintea unei descrieri de detaliu a procesorului DSP i a program rii sale. 13

Portul serial Interfa area unui procesor DSP cu dispozitive periferice implic utilizarea magistralelor de date, a magistralelor de adrese i a semnalelor de control. Multe procesoare utilizeaz o magistral de date comun pentru memoria de program extern , memoria de date, intr ri / ie iri digitale i comunica iile de tip multiprocesor. Pentru a mpiedica dou dispozitive de a utiliza magistrala comun n acela i timp, aceste dispozitive sunt echipate cu un control de tip enable / disable (validare / invalidare). Timpul cerut de un dispozitiv pentru accesarea i utilizarea magistralei de date determin timpul disponibil pentru alte periferice s opereze. Multe dintre procesoarele DSP actuale dispun att de capacitate I/O serial , ct i nu este limitat de un timp de acces rapid i de posibile conflicte pe magistral . Atunci cnd se transfer date spre i dnspre procesorul DSP, un port serial (tipic de 16 bi i) este utilizat pentru a re ine datele transmise sau recep ionate, astfel nct procesorul DSP s poat opera cu acestea. Procesoarele actuale dispun de urm toarele tipuri diferite de porturi seriale: 1) Un port serial standard utilizeaz 2 registre, unul pentru datele transmise i unul pentru cele recep ionate. Procesorul este ntrerupt la fiecare transfer de date. 2) Un port serial bufferat (BSP - Buffered Serial Port) const dintr-o interfa pentru portul serial full-duplex i dublu bufferat cu o unitate de autobufferare pentru transferul rapid al datelor ntre portul serial i memoria intern a procesorului. DSP-ul este ntrerupt doar dac bufferul este fie gol, fie plin. 3) Portul serial cu multiplexare n timp divizat permite comunica ia ntre mai multe procesoare DSP. De exemplu, procesorul TMS320C54x se poate conecta cu pn la alte 7 dispozitive DSP prin portul serial cu multiplexare n timp divizat. El mparte intervalul de timp dat ntr-un num r de subintervale i aloc cte un subinterval la fiecare canal. 4) Portul serial bufferat multicanal (McBSP - Multichannel BSP) este un BSP fullduplex de vitez ridicat . El este de obicei utilizat pentru a conecta un processor DSP cu alte DSP-uri i dispozitive. Este o facilitate nou , inclus doar n procesoarele TMS320 de ultim genera ie.

14

Interfa a "host-port" (port gazd ) Interfa a host-port (HPI - Host-Port Interface) este utilizat pentru a interfa a un procesor gazd (de exemplu un microprocesor) cu procesorul DSP. Ambele procesoare, i cel gazd intern de date sau de program. Datele transferate sunt sub forma cuvintelor de 8 sau 16 bi i. i DSP, schimb informa ii prin memoria on-chip a DSPului, care poate fi programat ca memorie

Controlerul DMA Controlerul pentru accesul direct la memorie (DMA - Direct Memory Access) este utilizat pentru controlul transferului de date n spa iul de memorie al procesorului DSP, spa iu care include memoria i perifericele interne sau externe. El opereaz independent de procesor. Transferul datelor se realizeaz sub forma blocurilor, iar controlerul DMA transmite o ntrerupere procesorului cnd transferul s-a ncheiat. De obicei, prin DMA se pot manipula canale multiple (de exemplu, 6 canale n cazul C54x), iar utilizatorul poate ata a priorit ti diferite sau aceea i prioritate acestor canale.

Portul paralel Portul paralel se diferen iaz de cel serial prin aceea c el transmite i recep ioneaz simultan mai mul i bi i de date (n mod obi nuit, 8 sau 16). Cu toate c el poate asigura de obicei un transfer mai rapid, necesit mai mul i pini pentru implementare. O alt diferen ntre porturile paralele i cele seriale este c liniile de conectare i de strobare sunt utilizate n comunica ia paralel pentru a indica transferul corect al datelor. n cazul comunica iei seriale, este utilizat un impuls de sincronizare sau un semnal de ceas derivat din datele nsele. Pentru a p stra num rul pinilor folosi i n comunica ia paralel procesoare, un procesor DSP utilizeaz cu dispositive externe sau cu alte ca un port paralel. magistrala de date principal

Procesorul DSP realizeaz aceast sarcin rezervnd o parte a adreselor pentru spa iul I/O i prinutilizarea unui num r redus de pini de I/O pentru func ii de conectare.

Timerul hardware Cea mai mare parte a procesoarelor DSP dispun de timere hardware programabile care se utilizeaz ca surse de ntreruperi periodice pentru procesor i care mai pot fi folosite ca 15

generatoare de semnal controlate prin software. Timerul const dintr-o surs de ceas, un divizor (pentru a reduce frecven a ceasului) num r tor se atinge zero. i un num r tor cu decrmentare. Num r torul este decrementat cu o unitate la fiecare front al ceasului i ntrerupe procesorul atunci cnd n

Generatorul de ceas i PLL Ceasul principal al procesoarelor DSP provine n mod normal fie de la surse externe de tact, fie de la un cristal exterior. Atunci cnd se folose te un cristal, procesorul DSP trebuie s aib un oscilator intern care s fie pilotat de cristalul extern pentru a genera ceasul necesar. Pe de alt parte, dac nu este inclus un oscilator intern, atunci trebuie implementat un circuit de ceas extern. Unele procesoare DSP posed sintetizatoare interne de frecven , numite PLL (PhaseLocked Loop), care pot cre te frecven a ceasului aplicat din exterior. Deci, un PLL creaz o frecven superioar a ceasului intern pe baza unui ceas extern cu frecven sc zut , ceea ce are avantajul reducerii interferen ei electromagnetice a ceasului. Mai mult, un generator de ceas extern de frecven joas este mai ieftin. Func ia PLL poate fi realizat fie prin hardware, fie se poate realiza un PLL programabil prin soft. PLL-ul hardware dispune de factori de multiplicare limita i de la 1 la 5, n timp ce PLL-ul software poate fi ajustat sub controlul soft-ului i furnizeaz un set mai larg de factori de multiplicare (de exemplu, de la 0,25 la 16 n cazul procesoarelor TMS320C54x).

Gestiunea puterii Odat cu cererea crecnd de produse bazate pe DSP care s consume ct mai pu in i s prelungeasc astfel durata de utilizare a bateriei de alimentare, procesorul DSP a nceput s ncorporeze solu ii de gestiune a puterii (power management) al turi de utilizarea tensiunii reduse (low-voltage). Se utilizeaz mai multe metode n gestiunea puterii: (1) controlul frecven ei ceasului, (2) modul "power-down" i (3) deconectarea perifericelor neutilizate. Mecanismele de control a frecven ei ceasului pot fi programate s for eze procesorul s ruleze la o frac iune din viteza sa, deoarece majoritatea aplica iilor nu necesit o func ionare la ntreaga vitez a procesorului tot timpul. Se poate folosi acest timp inutil i se poate for a 16

procesorul s lucreze la o vitez redus . Cea mai mare parte a procesoarelor DSP dispun de mijloace prin care dispozitivul s fie adus n starea de "adormire" (sleep, sau power-down), n care se consum cea mai mic putere, dar totu i con inutul curent al CPU este p strat. Exist mai multe nivele ale modului power-down, corespunznd situa iei n care procesorul este oprit sau nu; ceasul procesor sau ceasul perifericelor este oprit; liniile externe de date, adrese i control sunt aduse n starea de nalt impedan ; etc. Procesorul DSP poate fi "trezit" fie de c tre activitatea perifericelor, fie prin ntreruperi externe. O alt cale de gestiune a puterii este de a deconecta complet perifericele neutilizate.

3. Arhitectura familiei DSP56K:


Familia DSP56K este construita pe un modul central standard de procesare. In spatiul de exp@@@@@ din jurul modului central de procesare ch@@ suporta configurati variate de module de memorie si periferce care pot diferi de la un membru la altul al familiei.

3.1. Componentele centrale sunt:


- magistralele de date - magistralele de adrese - unitatea aritmetica logica de date (ALU) - unitatea de generare adrese (AGU) - unitatea de control program (PCU) - expansiune memorie (Port A) - circuite de emulare OnCE - circuite de ceas PLL.

17

3.2. Schema bloc tipica a unui procesor din familia DSP56K este :

3.3. Magistrale de date:


Modulul central de procesare DSP56K este organizat in jurul registrelor a 3 unitati independente de executie: PCU, AGU si date ALU. Transferurile de date intre unitati apare pe 4 magistrale bidirectionale de date pe 24 de biti: X Data Bus, Y Data Bus, Program Data Bus, Global Data Bus (anumite instructiuni trateaza XDB si YDB ca o magistrala de date pe 48 de biti prin concatenarea lor). Transferurile intre date ALU si X Data Memory si Y Data Memory apar peste XDB si YDB; toate celelalte trasferuri de date (cum ar fi I/O) se fac pe GDB iar prefetch de instructiuni pe PDB. Structura magistralei permite transferuri de date registru-registru, registru-memorie, memorieregistru. Se pot transfera pana la doua cuvinte pe 24 biti si un cuvant pe 56 biti in acelasi ciclu instructiune. Transferurile intre magistrale apar in comutatorul intern de magistrala ( IDBS ). 18

3.4. Magistralele de adrese:


Adresele sunt specificate pentru memoriile interne de date X si Y pe doua magistrale unidirectionale pe 16 biti - X Address Bus (XAB) si Y Address Bus (YAB). Adresele memoriei program sunt specificate pe o magistrala bidirectionala de adrese program (Program Addres Bus PAB) . Spatiul extern de memorie este adresat pe o singura magistrala unidirectoinala pe 16 biti data printr-un multiplexor cu 3 intrari ce poate selecta intre cele 3 magistrale . Numai un acces de memorie extern poate fi facut intr-un ciclu instructiune ( nu exista penalizare de timp pentru acest acces). Accesul extern este controlat de un arbitru de magistrala.

3.5. Data ALU:


Executa toate operatiile aritmetice si logice pe operanzi de date. Consta din 4 registre de intrare pe 24 biti, 2 registre acumulate pe 48 biti, 2 registre acumulate pe 8 biti, un shifter acumulator, 2 circuite deplasare / limitare magistrala de date si o unitate paralela pentru un singur ceas, MAC fara banda de asamblare X0, X1, Y0, Y1 registre generale de date ( 4 intrari pe 24 biti sau 2 registre intrari de date pe 48 biti (X si Y ) ;permit incarcarea operanzilor pentru urmatoarea instructiune in timpul instructiunii curente. A(56) si B(56) sunt doua acumulatoare pe 48 biti, fiecare cu o extensie pe 8 biti pentru lucrul pe 56 biti.

3.6. AGU
Executa toate adresele de memorie si calcularile de adrese necesare adresarii indirecte a operanzilor in memorie; se operaza in paralel. 19

AGU are 2 unitati aritmetice identice de adresa care pot genera adrese de 16 biti la fiecare ciclu instructiune. Fiecare unitate aritmetica poate executa 3 tipuri aritmetice: liniar, modulo si transport inversat.

Scema bloc:

3.7. PCU
Executa : - generarea adrese program (instruction prefetch) - decodificare instructiune (instruction decoding) - controlul hardware al buclelor DO
- procesare exceptii(intreruperi).

SS-System Stack PC-Program Couter SR-Status Register LA Loop Address LC Loop Counter SP Stack Pointer OMR Operating Mode Register +

20