Adigitális jelfeldolgozó processzor vagydigitális jelprocesszor (angolul:digital signal processor,DSP) egy olyan specializáltmikroprocesszor (vagySIP blokk), amelynek felépítését, architektúráját kifejezetten adigitális jelfeldolgozás működési igényeihez optimalizálták.[1][2]
A DSP-k célja az, hogydigitá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épesdigitális feldolgozó algoritmusok végrehajtására valamelyanalóg-digitális átalakító (ADC) által digitális értékekre konvertáltanaló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.
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 alatencia 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.
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áltassembly 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 akö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 ésDMA 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álisSIMD műveletek (egyetlen művelet, több adaton)
Egyes processzorokVLIW 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 gyorsszorzó-akkumuláló műveletek (multiple-accumulate, MAC művelet). Több alapvető DSP algoritmus, például aFIR szűrők vagy agyors 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önlegescí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.
Amemó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 avirtuális memóriát és a memóriavédelmet. A virtuális memóriát használó operációs rendszerekben aprocesszek közöttikontextusváltás több időt igényel, ami növeli a késleltetést (latenciát).
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élesticky bit v.ragadós bit műveleti módok is rendelkezésre állnak.
A különálló DSP csipek (ld. alább) megjelenése előtt a legtöbb DSP alkalmazásbitszelet-technikával előállított processzorok segítségével volt megvalósítva. Erre a célra előszeretettel alkalmazták azAMD 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 aTRW, például a TDC1008 és TDC1010 csipeket, ezek közül némelyikben még akkumulátor is volt, amely szükséges aszorzá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 aSpeak & 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” aTMS5100 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 amelylineáris prediktív kódolást használt abeszé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 azS2811 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.
ATexas Instruments (TI) további DSP-ket fejlesztett, így1983-ban bemutatta aTMS32010 modellt (amely 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 aszoros 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 az1986-ban megjelentMotorola 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).
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 300dollár közé esik.
ATexas Instruments gyártja aC6000-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 8000MIPS sebességen is működni, bennükVLIW 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.
AFreescale egy többmagos DSP családot gyárt, a MSC81xx sorozatot. A MSC81xx csipek aStarCore 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.
AzXMOS 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.
AkaliforniaiMountain 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ősMAC 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 aszoftveralapú 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.
AzAnalog Devices gyártja aSHARC-alapú DSP-ket, amelyek teljesítménye 66 MHz/198MFLOPS-tól 400 MHz/2400 MFLOPS-ig terjed. Egyes modellekben többszörösszorzóegység ésALU található, valamintSIMD utasítások és audiofeldolgozás-specifikus komponensek és perifériák. ABlackfin 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 ésNucleus RTOS, a valós idejű adatok feldolgozásával egyidőben.
AzNXP Semiconductors aTriMediaVLIW 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 azegylapkás rendszerekben (SoC), de az NXP hajlékony egymagosmédiaprocesszorok széles választékát kínálja. A TriMedia médiaprocesszorok támogatják mind afixpontos, mind alebegőpontos aritmetikát, speciális utasításaik vannak az összetett szűrők és entrópiakódolás feladataira.
ACSR á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őleglapolvasó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 beágyazott általános célú RISC processzorok funkcionalitásukban egyre inkább a DSP-khez válnak hasonlóakká. Például azARM Cortex-A8 és azOMAP3 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 azASOCS ModemX és CEVA XC4000-es modem-processzorai.
↑Bogdanowicz, A.: IEEE Milestones Honor Three. The Institute. IEEE, 2009. október 6. [2016. március 4-i dátummal azeredetiből archiválva]. (Hozzáférés: 2012. március 2.)
↑SPRS009C: TMS320C1x DIGITAL SIGNAL PROCESSORS (angol nyelven) (pdf) pp. 1/149. Texas Instruments, 1987. január 1. [2014. december 9-i dátummal azeredetiből archiválva]. (Hozzáférés: 2014)
Ez a szócikk részben vagy egészben aDigital signal processor című angol Wikipédia-szócikkezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.