Digital Sigal Processors Elettroica dei Sistemi Digitali L-A Uiversità di Bologa, Cesea Stefao Vitali Fabio Campi Aldo Romai A.a. 004-005
Fuzioalita Itere Gestioe della memoria
Caratteristiche dei DSP Processori DSP Uita fuzioali applicatio-specific applicate ad u ambiete softare-programmable Difficolta co i compilatori -> largo uso di assembly DSP: Applicazioi Wireless Telefoia Mobile RF Codecs, Voice bad Radio Cosumer Audio Stereo A/D, D/A, Audio compressio Multimedia Image Compressio Codecs ad Filterig DTAD Segreteria Telefoica Automatica Sitesi e ricooscimeto del parlato Automotive Active Suspesios,Ijectio Cotrol etc. HDD Memorie di Massa
A Cadidate Architecture for Sigal Processig Program bus Address calculatio base 3 Data bus PC Ide ADDER MUX 3 3 MUX ROM Program Memory + Coeff. Memory RAM Data Memory SHIFTER MULTIPLY 40 40 MUX 40 40 C D ADD C D 40 T: Acc/Roudoff 3 IR 3 3 3 Eteral Iterface 3 Program bus Data bus I Buf [] OutBuf y[]
DSP Teas Istrumets TMS30C Esempio: FFT 0 X r j e π Complessità Cosidero campioi temporali. Idichiamo: T Spezzo la somma i cotributi pari e dispari + + + 0 0 0 0 0 0 X dove 0 è la succ. degli pari e la succ. degli dispari Si può otare che: j j e e π π 0 0 0 X X X + + Duque posso scrivere: La FFT si calcola co u umero di campioi poteza di
X X0 + X X ha elemeti, da 0 a - Queste succ. hao / elemeti. Qui va da 0 a /-. Soo le DFT delle successioi degli elemeti pari e dispari. E possibile otare che X 0 e X soo fuzioi periodiche i, co periodo / Ioltre si può ache otare che: e π j Quidi assumedo da 0 a /- si possoo calcolare i primi / valori della successioe X co: X X0 + X Metre i successivi / co: da 0 a /- X + X0 X E possibile applicare lo stesso ragioameto al calcolo delle successioi X 0 e X, e ricorsivamete a tutte le uove successioi dimezzate che si trovao passo per passo. Il procedimeto si fermerà quado si arriva a sigoli elemeti. Es. 8 0 { 0,, 4, 6 } {,,, } 3 5 7 0 3 4 { 0, 4} {, } {, 5 } {, } 3 6 7
La struttura di calcolo elemetare si chiama butterfly 0 +jy 0 + u 0 +jv 0 +jy * - u +jv c+j-s Utilizzado questo operatore si giuge al calcolo della FFT, secodo quato idicato elle equazioi precedeti. Architettura VLIW per FFT Che vataggi può portare u architettura VLIW per il calcolo della FFT? L elaborazioe della butterfly è la seguete: i dati adrao prelevati dalla memoria e lì riscritti dopo il calcolo: prelievo operadi 0,y 0,y temp C + Sy temp Cy - S u 0 0 + temp v 0 y 0 + temp u 0 - temp v y 0 - temp memorizzazioe risultati u 0,v 0, u,v I risultati di questa trattazioe soo validi per qualuque algoritmo di elaborazioe di segale
Architettura VLIW di riferimeto Ipotizziamo di avere a disposizioe ua macchia VLIW co le segueti uità fuzioali Multiplier Register file Adder ALU Subtractor ALU caali di memoria Memory Memory ogi uità di esecuzioe ha accesso idipedete ai registri FFT: Implemetazioe VLIW Possiamo far eseguire alla macchia il seguete algoritmo 0 mem mem C cosθ y mem Cy cosθ y y0 mem S siθ Sy siθ y tmp Cy S v0 y0 + tmp v y0 tmp tmp C + S mem v u0 0 + tmp u 0 tmp mem v0 mem u mem u0 Mem 0 mem mem mem u mem u0 Reservatio Table Mem y mem y0 mem mem v mem v0 Multiplier C cosθ Cy cosθ y S siθ Sy siθ y Alu tmp Cy S v y0 tmp u 0 tmp Alu v0 y0 + tmp tmp C + S u0 0 + tmp Cosa succede se provo ad eseguire le istruzioi VLIW i questo modo? ogi riga è ua istr. VLIW
FFT: Implemetazioe VLIW Osservado la reservatio table oto che ogi quattro cicli posso far partire ua uova elaborazioe, seza avere: dipedeze di dato coflitti ell accesso a risorse Mem 0 mem mem 0 mem mem 0 mem mem mem u mem u0 Mem y mem y0 mem y mem y0 mem mem v mem v0 y mem y0 mem mem v mem v0 Multiplier C cosθ Cy cosθ y S siθ Sy siθ y C cosθ Cy cosθ y S siθ Sy siθ y C cosθ Cy cosθ y S siθ Sy siθ y Alu tmp Cy S v y0 tmp u 0 tmp tmp Cy S v y0 tmp u 0 tmp Alu v0 y0 + tmp tmp C + S u0 0 + tmp v0 y0 + tmp tmp C + S u0 0 + tmp mem u tmp Cy S A regime si idividua u CORE di elaborazioe mem u0 mem u mem u0 mem v mem v0 v y0 tmp u 0 tmp v0 y0 + tmp tmp C + S u0 0 + tmp FFT: Implemetazioe VLIW Mem Mem Multiplier Alu Alu 0 mem mem v S siθ tmp C + S mem mem v0 Sy siθ y u 0 tmp u0 0 + tmp mem u y mem C cosθ tmp Cy S mem u0 y0 mem Cy cosθ y v y0 tmp v0 y0 + tmp Mescolado, e madado i pipelie butterflies di campioi differeti riusciamo a cocludere u calcolo ogi 4 cicli. La lateza è ivece 8 cicli. Le istruzioi eseguite per ogi butterfly soo 8. Migliorameto del throughput. Problema di allocazioe delle risorse di calcolo i ogi istate di tempo, i modo da idividuare quella i cui le istruzioi si icastrao meglio elle risorse di calcolo. Tutto questo è a carico del programmatore e/o del compilatore/assemblatore.