12.07.2015 Views

Kompendium i Datorteknik

Kompendium i Datorteknik

Kompendium i Datorteknik

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

34 KAPITEL 6. DSPmultiplikation-addition. En sådan applikation är ett FIR-filter (finite impulse response)som beskrivs av följande ekvation.y n =N−1∑i=0c i · x n−iSamplen som kommer in till filtret betecknas x n medan utgående sampel betecknasy n . c i är de så kallade filterkoefficienterna. För varje nytt sampel ska alltså denovanstående ekvationen beräknas vilket innebär N stycken multiplikationer och N −1stycken additioner. Utöver detta krävs det lite kontrollinstruktioner för att styra denloop som lämpligtvis används. För att beräkna ett utsampel skulle programmet kunnase ut som följer. 11: clr D12: mov #N, D23: loop: mov (CMEM+), D04: mul (XMEM+), D05: add D0, D16: dec D27: brne loop8: ..... Använd resultatet i D1Varje iteration i loopen utgörs alltså av fem instruktioner varav två är till enbart förloopens skull. Vi ser också att en von Neumann-arkitektur inte kan bli särskilt effektivdå en iteration av summaberäkningen kräver två operander från minnet tillsammansmed ett antal instruktionshämtningar. För att motverka dessa problem byggs DSPermed en speciell minnesarkitektur samt med speciella instruktioner och hårdvarustödför loopar.6.2 HårdvaruarkitekturFör att undvika problem på grund av minnesåtkomster byggs DSPer med flera minnenenligt en (något modifierad) Harvard-arkitektur. Det första steget är att separera instruktionsminneoch dataminne. Detta visar sig dock inte vara tillräckligt då operationerav typen multiplicera-addera som används i det ovan visade filtret kräver två “data”per operation. Därför har DSPer i regel minst två separata dataminnen så att två operanderkan hämtas per klockcykel. Figur 6.2 visar ett sådant treminnessystem. De trenedre blocken är minnena. IM är instruktionsminnet, TM är sampelminnet (ofta kallattap memory) och CM är koefficientminnet (coefficient memory). De tre övre blocken1 Under förutsättning att sampel- och koefficientpekarna, XMEM oh CMEM, är korrekta vid programmetsstart samt att insamplet har sparats.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!