Digitális jelprocesszor

A Wikipédiából, a szabad enciklopédiából
Digitális jelprocesszor-csip egy gitáreffekt-egységben

A digitális jelfeldolgozó processzor vagy digitális jelprocesszor (angolul: digital signal processor, DSP) egy olyan specializált mikroprocesszor (vagy SIP blokk), amelynek felépítését, architektúráját kifejezetten a digitális jelfeldolgozás működési igényeihez optimalizálták.[1][2]

A DSP-k célja az, hogy digitálisan feldolgozza a folyamatos, valós (a fizikai világból származó) analóg jeleket – a feldolgozás alatt általában mérés, szűrés és tömörítés, összenyomás értendő. A legtöbb általános célú mikroprocesszor szintén képes digitális feldolgozó algoritmusok végrehajtására valamely analóg-digitális átalakító (ADC) által digitális értékekre konvertált analóg jeleken, de a dedikált DSP-k ezt a feladatot általában nagyobb hatásfokkal végzik, így alkalmasabbak a hordozható eszközökben, például mobiltelefonokban történő felhasználásra, az energiafogyasztási korlátok miatt.[3] A DSP-k gyakran speciális memória-architektúrákat alkalmaznak, amellyel lehetővé válik az adatok és utasítások egyidejű lehívása és feldolgozása.

Áttekintés[szerkesztés]

Tipikus digitális feldolgozórendszer vázlata

A digitális jelfeldolgozó algoritmusok jellemzően nagyszámú matematikai művelet gyors és ismétlődő végrehajtásával járnak, adatminták hosszú sorozatán. A feltehetőleg valamilyen audió- vagy videóérzékelőből érkező jeleket egy átalakító folyamatosan analógból digitális formába konvertálja, az adatfolyamot a processzor digitálisan feldolgozza és megváltoztatja, ezután visszaalakítja analóg formába. A legtöbb DSP alkalmazásban a latencia korlátos; azaz a rendszer helyes működéséhez a DSP műveletnek korlátozott idő alatt be kell fejeződnie, és a késleltetett vagy kötegelt (batch-) feldolgozás nem lehetséges.

A legtöbb általános célú mikroprocesszor és operációs rendszer képes DSP algoritmusok sikeres végrehajtására, de nem alkalmasak hordozható eszközökben, például mobiltelefonokban és PDA-kban való felhasználásra, a hatásfok korlátai miatt.[3] A speciális digitális jelfeldolgozó processzorok azonban képesek nagyobb teljesítményű és alacsonyabb késleltetéssel járó megoldást nyújtani alacsonyabb áron, és nincsenek különleges környezeti vagy üzemi követelményeik sem (pl. nincs szükség processzorhűtésre és nagyteljesítményű tápellátásra).

A digitális jelprocesszorok architektúrája specifikusan a digitális jelfeldolgozás céljaira lett optimalizálva. Többségük rendelkezik az alkalmazásfuttató processzorok vagy mikrovezérlők bizonyos képességeivel is, mivel a jelfeldolgozás ritkán egyedüli feladata a rendszernek. Alább láthatunk a DSP algoritmusok optimalizálására szolgáló néhány hasznos funkciót.

Architektúra[szerkesztés]

Az általános célú processzorok normái szerint a DSP processzorok utasításkészlete gyakran igen szabálytalan. Ennek a szoftver-architektúrára is hatása van, mivel emiatt rendszerint rutinkönyvtárakba csomagolják a kézileg optimalizált assembly kódú rutinokat, az újrafelhasználhatóság céljából, ahelyett, hogy fejlett fordítóprogram-technológiákra támaszkodva kezelnék az alapvető algoritmusokat.

A DSP utasításkészletekben előforduló hardverspecifikus vonások közül szinte valamennyi a sebesség növelésére irányul; a processzorokban általában megtalálhatók a következők:

  • Hardveres modulo címzés, amely lehetővé teszi a körkörös pufferek megvalósítását állandó határellenőrző / körbefordulási tesztelés nélkül.
  • Egyidejű adatfolyamok kezelését megkönnyítő memóriakialakítások és DMA kiterjedt használata, és a programkóddal szembeni elvárás a gyorsítótár-hierarchiák és az azokhoz kapcsolódó késleltetések ismerete.
  • Több aritmetikai-/számítóegység meghajtása olyan memóriakialakítást igényel, amely egyszerre több memóriahozzáférést enged meg egy ciklus alatt.
  • Külön program- és adatmemóriák (Harvard-architektúra), és néha konkurens hozzáférés a többszörös adatsínekhez.
  • Speciális SIMD műveletek (egyetlen művelet, több adaton)
  • Egyes processzorok VLIW technikákat használnak, ahol minden utasítás több számítóegységet hajt meg párhuzamosan.
  • Speciális aritmetikai műveletek, mint például gyors szorzó-akkumuláló műveletek (multiple-accumulate, MAC művelet). Több alapvető DSP algoritmus, például a FIR szűrők vagy a gyors Fourier-transzformáció (FFT) sebessége nagymértékben függ a szorzó-akkumuláló művelet teljesítményétől.
  • Bit-fordított címzés: egy különleges címzési mód, hasznos az FFT számításában
  • Különleges ciklusvezérlési módok, például néhány utasításszóból álló igen szoros ciklusok architekturális támogatása, az utasításlehívás vagy a kilépési feltételek tesztelésének többletterhelése nélkül.
  • A memóriakezelő egység szándékos elhagyása. A DSP-k gyakran többfeladatos operációs rendszerekben működnek, de nem támogatják a virtuális memóriát és a memóriavédelmet. A virtuális memóriát használó operációs rendszerekben a processzek közötti kontextusváltás több időt igényel, ami növeli a késleltetést (latenciát).

Programvégrehajtás[szerkesztés]

Memóriafelépítés[szerkesztés]

  • A DSP-k gyakran speciális memóriaarchitektúrákat használnak, amelyek lehetővé teszik több adat és/vagy utasítás egyidejű lehívását:
  • DMA használata
  • Memóriacím-számító egység

Adatműveletek[szerkesztés]

  • Szaturációs aritmetika, amelyben a túlcsordulást okozó műveletek a regiszter által tárolható maximum vagy minimum értékben halmozódnak, a körbefordulás vagy túlcsordulás helyett; pl. a maximum+1 értéke nem fordul át a minimumba, mint több általános célú processzorban, hanem a maximumon marad. Néha különféle sticky bit v. ragadós bit műveleti módok is rendelkezésre állnak.
  • Fixpontos számábrázolás gyakran használatos a számolási műveletek felgyorsítására
  • Egyciklusos műveletek növelik a futószalagos technológia előnyeit

Utasításkészlet[szerkesztés]

Történet[szerkesztés]

A különálló DSP csipek (ld. alább) megjelenése előtt a legtöbb DSP alkalmazás bitszelet-technikával előállított processzorok segítségével volt megvalósítva. Erre a célra előszeretettel alkalmazták az AMD 2901 bitszelet csipjét, a hozzá tartozó komponenscsaláddal együtt. Az AMD referenciaterveket készített az ilyen alkalmazásokhoz, az egyedik kialakítások igényei azonban nagyon gyakran alkalmazásspecifikusak, így eltértek a referencia-kialakításoktól. Ezek a bitszelet-architektúrák néha perifériaként csatlakozó szorzó csipet is tartalmaztak. Ilyen szorzók sorozatát gyártotta többek között a TRW, például a TDC1008 és TDC1010 csipeket, ezek közül némelyikben még akkumulátor is volt, amely szükséges a szorzás-összegzés (MAC) funkció ellátásához.

1976-ban Richard Wiggins a Texas Instruments dallasi kutatási létesítményében Paul Breedlove, Larry Brantingham és Gene Frantz mérnökökkel együtt előterjesztette a Speak & Spell (játék) koncepcióját.[4] Két évvel később, 1978-ban megjelent az első Speak & Spell játék, amelynek „szíve” a TMS5100 volt,[5] az első digitális jelfeldolgozó processzor az iparban. Más mérföldköveket is állított, lévén az első csip amely lineáris prediktív kódolást használt a beszédszintézisben.[6]

1978-ban az Intel megjelentette a 2920 „analóg jelprocesszor” csipet. Ez egy lapkára integrált ADC/DAC áramkörrel és egy belső jelprocesszorral rendelkezett, de nem volt benne hardveres szorzó és nem is volt sikeres a piacon. 1979-ben az AMI kiadta az S2811 jelű csipet. Ez egy mikroprocesszorokhoz illeszthető perifériaként megvalósított jelfeldolgozó egység, amelyet a gazdagép inicializált. A S2811, az Intel csipjéhez hasonlóan, szintén nem volt túl sikeres.

1980-ban mutatták be az első különálló, teljes képítésű DSP-ket – a NEC µPD7720 és AT&T DSP1 csipeket – az 1980-as Nemzetközi Szilárdtest-Áramköri Konferencián (International Solid-State Circuits Conference, ISSCC). Mindkét processzort a PSTN távközlési kutatások inspirálták.

A Texas Instruments (TI) további DSP-ket fejlesztett, így 1983-ban bemutatta a TMS32010 modellt (amelt a TMS320-as család első modellje volt), amely nagy sikernek bizonyult. Ennek felépítése a Harvard-architektúrát követi, így különálló utasítás- és adatmemóriával rendelkezik. Utasításkészlete az architektúrához illeszkedően különleges, 60 utasításból áll 3 címzési móddal, megtalálhatók benne a betöltő-akkumuláló (load-and-accumulate) és szorzó-összegző utasítások is. Ez a processzor 16 bites számokon képes műveleteket végezni, teljesítményére jellemző, hogy a korai eszközökben egy szorzás-összeadás művelet ideje 390 ns (a processzor ciklusideje 160 és 280 ns között van, a különböző modellekben, ami kb. 3,6–6,25 MHz-es órajelnek felel meg).[7] A Texas Instruments jelenleg piacvezető az általános célú DSP-k terén.

Körülbelül öt évvel később, a DSP-k második generációja kezdett terjedni. Ezek három külön memóriát tartalmaznak két szimultán operandus tárolására, külön hardverrel rendelkeznek a szoros ciklusok végrehajtására, és rendelkeznek megfelelő címzőegységgel, amely képes a cikluscímzéseket hatékonyan kezelni. Közülük egyesek 24 bites regiszter- ill. változómérettel készülnek, és a tipikus modellekben a MAC utasítás végrehajtási ideje mindössze 21 ns (ez több mint 47 millió ilyen művelet lenne egy másodperc alatt). Ebbe a generációba tartozik például az AT&T DSP16A (30 MHz-es 16/36 bites DSP)[8] vagy az 1986-ban megjelent Motorola 56000.

A legnagyobb változás a harmadik generáció processzoraiban az alkalmazásspecifikus egységek és -utasítások megjelenése volt az adatútban, néhány esetben koprocesszorként megvalósítva. Ezek az egységek lehetővé tették specifikus ám igen összetett matematikai feladatok közvetlen hardveres gyorsítását, mint amilyen a Fourier-transzformáció vagy a mátrixműveletek. Egyes csipek, mint a Motorola MC68356, ezen felül több, párhuzamosan működő processzormagot tartalmaznak. 1995-ből származó további DSP-k pl. a TI TMS320C541 vagy a TMS 320C80.

A negyedik generációt leginkább a utasításkészletben és az utasításkódolás-dekódolásban bevezetett újítások jellemzik. A processzorok SIMD kiterjesztéseket kaptak, megjelenik a VLIW és a szuperskalár architektúra a DSP-kben. Az órajelfrekvencia a szokásos módon növekedett, a MAC művelet 3 ns-os végrehajtása is lehetővé vált (ez 333 milliónál több utasítás végrehajtása lenne egy másodperc alatt).

Modern DSP-k[szerkesztés]

A modern jelprocesszorok nagyobb teljesítményt nyújtanak; ez egyrészt a technológiai és architekturális fejlődésnek köszönhető, mint a kisebb csíkszélességű technológia, gyors hozzáférésű kétszintű gyorsítótárak, (E)DMA áramkörök és a szélesebb sínrendszer. Nem minden DSP biztosítja ugyanazt a sebességet és igen sokfajta jelprocesszor létezik, mindegyikük más és más feladatra alkalmas leginkább (különböző feladatokat képesek ellátni a legnagyobb hatékonysággal); az áruk pedig 1,50 és 300 dollár közé esik.

A Texas Instruments gyártja a C6000-es sorozatú DSP-ket, amelyek órajele eléri az 1,2 GHz-et és különálló utasítás- és adat-gyorsítótárakat alkalmaznak. Ezekben 8 MiB méretű második szintű gyorsítótár és 64 EDMA csatorna is található. A csúcsmodellek képesek akár 8000 MIPS sebességen is működni, bennük VLIW utasítások használhatók, egy órajelciklus alatt nyolc műveletet végezhetnek, és kompatibilisak a külső perifériák széles skálájával valamint különféle sínrendszerekkel (PCI/soros/stb.) A TMS320C6474 csipek három ilyen DSP-t tartalmaznak, és a legújabb generációjú C6000 csipek támogatják mind a lebegőpontos, mind a fixpontos feldolgozást.

A Freescale egy többmagos DSP családot gyárt, a MSC81xx sorozatot. A MSC81xx csipek a StarCore architektúrájú processzorokon alapulnak és a legutolsó MSC8144 DSP négy programozható SC3400 StarCore DSP magot egyesít. A SC3400 StarCore DSP magok mind 1 GHz-es órajelfrekvencián működnek.

Az XMOS cég egy többmagos, többszálas végrehajtású processzorvonalat gyárt, amelynek tagjai DSP műveletekre is alkalmasak. Ezek különféle sebességeken készülnek, 400-tól 1600 MIPS teljesítménnyel. A processzorok többszálas végrehajtású (multi-threaded) architektúrával rendelkeznek, amely legfeljebb 8 valós idejű szál futtatását engedi meg magonként, tehát egy négymagos eszköz összesen 32 valós idejű szálat hajthat végre. A szálak kommunikálhatnak egymással, pufferelt csatornákon keresztül, melyek sebessége max. 80 Mbit/s. Az eszközök könnyen programozhatóak C nyelven, és céljuk a hagyományos mikrovezérlők és FPGA-k közötti szakadék áthidalása.

A kaliforniai Mountain View székhelyű CEVA, Inc. három különböző DSP családot állít elő és licencel. Ezek közül talán a legjobban ismert és a legszélesebb körben használt típus a CEVA-TeakLite DSP család, amely egy klasszikus memória-alapú architektúra, 16 bites vagy 32 bites szóhosszal és egyszeres vagy kettős MAC művelettel. A CEVA-X DSP család a VLIW és SIMD architektúrák kombinációját nyújtja a család különböző tagjaiban kettős vagy négyszeres 16 bites MAC művelet használható. A CEVA-XC DSP család a szoftveralapú rádió (Software-defined Radio, SDR) modemkialakításokat célozza, és a VLIW és vektoros architektúrák egyedülálló kombinációját hasznosítja a benne elérhető 32 (-szeres) 16 bites MAC művelettel.

Az Analog Devices gyártja a SHARC-alapú DSP-ket, amelyek teljesítménye 66 MHz/198 MFLOPS-tól 400 MHz/2400 MFLOPS-ig terjed. Egyes modellekben többszörös szorzóegység és ALU található, valamint SIMD utasítások és audiofeldolgozás-specifikus komponensek és perifériák. A Blackfin beágyazott digitális jelprocesszor-család a DSP-k jellemzőit egyesíti az általános felhasználású processzorokéival. Ennek eredményeképpen ezek a processzorok képesek egyszerű operációs rendszerek futtatására, mint amilyen az μCLinux, velOSity és Nucleus RTOS, a valós idejű adatok feldolgozásával egyidőben.

Az NXP Semiconductors a TriMedia VLIW technológián alapuló DSP processzorokat gyárt, amelyek az audio- és videofeldolgozásra vannak optimalizálva. Egyes termékekben a DSP mag el van rejtve, egy rögzített funkciójú blokkot alkot az egylapkás rendszerekben (SoC), de az NXP hajlékony egymagos médiaprocesszorok széles választékát kínálja. A TriMedia médiaprocesszorok támogatják mind a fixpontos, mind a lebegőpontos aritmetikát, speciális utasításaik vannak az összetett szűrők és entrópiakódolás feladataira.

A CSR állítja elő a Quatro SoC-családot, amelynek tagjai egy vagy több egyedi képfeldolgozási célú, dokumentum-képadatok feldolgozására optimalizált DSP-t tartalmaznak, amelyeket főleg lapolvasók és másoló alkalmazásokban való felhasználásra szánnak.

A legtöbb DSP csak fixpontos aritmetikát használ, mert a gyakorlati jelfeldolgozásban a lebegőpontos számábrázolás által nyújtott kiegészítő számtartományra egyszerűen nincs szükség, és nagy sebességnövekedés és költségcsökkenés érhető el a csökkentett hardverkomplexitás miatt. A lebegőpontos DSP-k azonban értékesek lehetnek olyan alkalmazásokban, ahol széles dinamikus tartományra van szükség. A termékfejlesztők szintén használhatnak lebegőpontos DSP-ket a szoftverfejlesztés költségeinek és bonyolultságának csökkentése érdekében, a drágább hardverért cserébe, mivel az algoritmusokat általában könnyebb megvalósítani lebegőpontos számításokkal.

A DSP-k általában dedikált integrált áramkörök; a DSP funkcionalitás azonban helyszínen programozható kaputömbökkel – FPGA-kkal is előállítható.

A beágyazott általános célú RISC processzorok funkcionalitásukban egyre inkább a DSP-khez válnak hasonlóakká. Például az ARM Cortex-A8 és az OMAP3 processzorok tartalmaznak egy Cortex-A8 és C6000-es DSP-t.

A távközlésben a DSP-k egy újabb fajtája kezd felszínre törni, amely a DSP funkciók és a hardveres gyorsítás fúzióját (összeolvadását) kínálja. Ilyenek az ASOCS ModemX és CEVA XC4000-es modem-processzorai.

Jegyzetek[szerkesztés]

  1. Dyer, S. A.; Harms, B. K..szerk.: Yovits, M. C.: Digital Signal Processing, Advances in Computers. Academic Press, 104–107. o.. DOI: 10.1016/S0065-2458(08)60403-9 (1993). ISBN 9780120121373 
  2. Liptak, B. G.. Process Control and Optimization, 4th, Instrument Engineers' Handbook, CRC Press, 11–12. o. (2006). ISBN 9780849310812 
  3. ^ a b Architectures and Design techniques for energy efficient embedded DSP and multimedia processing (angol nyelven) (PDF). rijndael.ece.vt.edu, 2005. december 24. (Hozzáférés: 2014. június 11.)
  4. Benj Edwards: VC&G Interview: 30 Years Later, Richard Wiggins Talks Speak & Spell Development (angol nyelven). VintageComputing.com, 2008. december 16. (Hozzáférés: 2014)
  5. Speak & Spell, the First Use of a Digital Signal Processing IC for Speech Generation, 1978. IEEE Milestones. IEEE. (Hozzáférés: 2012. március 2.)
  6. Bogdanowicz, A.: IEEE Milestones Honor Three. The Institute. IEEE, 2009. október 6. (Hozzáférés: 2012. március 2.)
  7. SPRS009C: TMS320C1x DIGITAL SIGNAL PROCESSORS (angol nyelven) (pdf) pp. 1/149. Texas Instruments, 1987. január 1. (Hozzáférés: 2014)
  8. WE® DSP16A Digital Signal Processor (angol nyelven) (pdf) pp. 1–40. AT&T, Bitsavers, 1988. március 1. (Hozzáférés: 2014)

Fordítás[szerkesztés]

Ez a szócikk részben vagy egészben a Digital signal processor című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel.

Források[szerkesztés]

További információk[szerkesztés]

Kapcsolódó szócikkek[szerkesztés]