Digitální signálové procesory dsp. Digitální signálový procesor. Softwarová architektura

Tento článek otevírá řadu publikací věnovaných vícejádrovým digitálním signálovým procesorům TMS320C6678. Článek poskytuje obecnou představu o architektuře procesoru. Článek reflektuje přednáškový a praktický materiál nabízený studentům v rámci pokročilých školicích kurzů v rámci programu „Multi-core digitální signálové procesory C66x od Texas Instruments“, který probíhá na Rjazaňské státní radiotechnické univerzitě.

Digitální signálové procesory TMS320C66xx jsou založeny na architektuře KeyStone a jsou vysoce výkonné vícejádrové signálové procesory, které pracují s pevnou i pohyblivou řádovou čárkou. Architektura KeyStone je princip pro výrobu vícejádrových systémů na čipu vyvinutý společností Texas Instruments, který umožňuje efektivní organizaci pracovat spolu velký počet jader, akcelerátorů a periferních zařízení typu DSP a RISC, zajišťujících dostatečnou kapacitu interních a externích kanálů přenosu dat, založených na hardwarových komponentách: Multicore Navigator (řadič výměny dat přes interní rozhraní), TeraNet (interní sběrnice pro přenos dat ), Multicore Shared Memory Controller (řadič přístupu ke sdílené paměti) a HyperLink (rozhraní s externími zařízeními rychlostí na čipu).

Architektura procesoru TMS320C6678, nejvýkonnějšího procesoru v rodině TMS320C66xx, je znázorněna na obrázku 1. Architekturu lze rozdělit do následujících hlavních komponent:

  • sada operačních jader (CorePack);
  • subsystém pro práci se sdílenou interní a externí pamětí (Memory Subsystem);
  • periferní zařízení;
  • síťový koprocesor;
  • interní kontrolér předávání (Multicore Navigator);
  • servisní hardwarové moduly a interní sběrnici TeraNet.

Obrázek 1. Obecná architektura procesor TMS320C6678

Procesor TMS320C6678 pracuje na taktovací frekvenci 1,25 GHz. Fungování procesoru je založeno na sadě operačních jader C66x CorePack, jejichž počet a složení závisí na konkrétní model procesor. TMS320C6678 DSP obsahuje 8 jader typu DSP. Jádro je základním výpočetním prvkem a zahrnuje výpočetní jednotky, sady registrů, programový stroj, programovou a datovou paměť. Paměť, která je součástí jádra, se nazývá lokální.

Až na lokální paměť, existuje paměť společná pro všechna jádra – sdílená paměť vícejádrový procesor(Multicore Shared Memory - MSM). Ke sdílené paměti se přistupuje prostřednictvím paměťového subsystému, který také obsahuje externí paměťové rozhraní EMIF pro komunikaci mezi procesorem a externími paměťovými čipy.

Síťový koprocesor zvyšuje efektivitu procesoru jako součásti různých typů telekomunikačních zařízení a hardwarově realizuje úlohy zpracování dat typické pro tuto oblast. Koprocesor je založen na Packet Accelerator a Security Accelerator. Specifikace procesoru uvádí sadu protokolů a standardů podporovaných těmito akcelerátory.

Mezi periferie patří:

  • Serial RapidIO (SRIO) verze 2.1 – poskytuje rychlost přenosu dat až 5 GBaud na linku s počtem linek (kanálů) – až 4;
  • PCI Express (PCIe) Verze Gen2 – poskytuje rychlost přenosu dat až 5 GBaud na linku s počtem linek (kanálů) – až 2;
  • Hypertextový odkaz– interní sběrnicové rozhraní, které umožňuje přímo mezi sebou přepínat procesory postavené na architektuře KeyStone a vyměňovat je rychlostí na čipu; rychlost přenosu dat – až 50 Gbaud;
  • Gigabit Ethernet (GbE) poskytuje přenosové rychlosti: 10/100/1000 Mbps a je podporován hardwarovým síťovým komunikačním akcelerátorem (síťový koprocesor);
  • EMIF DDR3– externí paměťové rozhraní typu DDR3; má 64bitovou šířku sběrnice a poskytuje adresovatelný paměťový prostor až 8 GB;
  • EMIF– rozhraní externí paměti pro všeobecné použití; má 16bitovou šířku sběrnice a lze ji použít pro připojení 256MB NAND Flash nebo 16MB NOR Flash;
  • TSIP (telekomunikační sériové porty)– telekomunikační sériový port; poskytuje přenosové rychlosti až 8 Mbit/s na linku při počtu linek až 8;
  • UART– univerzální asynchronní sériový port;
  • I2C– interní komunikační sběrnice;
  • GPIO– univerzální vstup/výstup – 16 pinů;
  • SPI– univerzální sériové rozhraní;
  • Časovače– používá se ke generování periodických událostí.
Servisní hardwarové moduly zahrnují:
  • Modul ladění a trasování– umožňuje ladicím nástrojům přístup k vnitřním zdrojům běžícího procesoru;
  • boot ROM – ukládá spouštěcí program;
  • hardwarový semafor– slouží pro hardwarovou podporu pro organizování sdíleného přístupu k paralelním procesům sdílené zdroje procesor;
  • modul správy napájení– implementuje dynamické řízení režimů napájení komponent procesoru s cílem minimalizovat spotřebu energie v době, kdy procesor nepracuje na plnou kapacitu;
  • PLL obvod– generuje interní hodinové frekvence procesoru z externího referenčního hodinového signálu;
  • Řadič přímého přístupu do paměti (EDMA).– řídí proces přenosu dat, vykládá operační jádra DSP a je alternativou k Multicore Navigator.
Interní řadič předávání (Multicore Navigator) je výkonný a efektivní hardwarový modul zodpovědný za rozhodování o datových přenosech mezi různé komponenty procesor. Vícejádrové systémy na čipu TMS320C66xx jsou velmi složitá zařízení a pro organizaci výměny informací mezi všemi součástmi takového zařízení je zapotřebí speciální hardwarová jednotka. Multicore Navigator umožňuje jádrům, periferním zařízením a hostitelským zařízením nepřevzít řídicí funkce výměny dat. Když kterákoli komponenta procesoru potřebuje odeslat pole dat do jiné komponenty, jednoduše řekne řadiči, co má odeslat a kam. Veškeré funkce pro samotný přenos a synchronizaci odesílatele a příjemce přebírá Multicore Navigator.

Základem fungování vícejádrového procesoru TMS320C66xx je z pozice vysokorychlostní výměny dat mezi všemi četnými komponentami procesoru, jakož i externí moduly, slouží jako interní sběrnice TeraNet.

Další článek bude podrobně rozebírat architekturu operačního jádra C66x.

1. Vícejádrový programovací průvodce / SPRAB27B – srpen 2012;
2. TMS320C6678 Datový vícejádrový digitální signálový procesor s pevným a pohyblivým bodem / SPRS691C – únor 2012.

Digitální signálové procesory (DSP) jsou speciálním typem mikroprocesorové technologie navržené pro provoz v reálném čase. Oblasti použití DSP:

Digitální filtrování signálu,

Optimální zpracování, výpočet korelačních funkcí,

Spektrální analýza signálů,

kódování a dekódování informací,

Rozpoznávání a syntéza řeči, syntéza a zpracování hudby,

Zpracování obrazu,

Počítačová grafika, syntéza obrazu,

Měřicí technika.

Domov charakteristický rys DSP je velký objem výpočtů prováděných v reálném čase. To určuje následující charakteristické rysy DSP:

Využití rozšířené Harvardské architektury – oddělené příkazové a datové paměti s nezávislými sběrnicemi, které umožňují jeden hodinový cyklus vnitřní frekvence krystalu načíst příkazy a provést je,

Krátké instrukce implementované v dopravníkových zařízeních určují RISC architekturu DSP,

Povinná přítomnost paralelního hardwarového násobiče, který provádí příkazy násobení v jednom hodinovém cyklu vnitřní frekvence krystalu,

Dostupnost speciálních příkazů pro zpracování signálu. Například v rodině procesorů TMS320 od Texas Instruments existuje příkaz dmov, který do vzorku přidá nový vzorek signálu, přičemž zbývající vzorky posune o jeden časový řez, příkaz LTD načte multiplikand do registru multiplikátoru, posune vzorky signálu a sečte výsledek předchozího násobení s obsahem akumulátoru.

Během své vývojové historie od počátku 80. let minulého století se vystřídalo několik generací DSP, ale řada DSP předchozích generací v moderních verzích se nadále vyrábí díky jejich úspěšné architektuře. První generace DSP TMS32010 byla vyvinuta společností Texas Instruments v roce 1982. Tento 16bitový mikroprocesor s výkonem 5 milionů instrukcí za sekundu (MIPS) měl vnitřní RAM 144-256 slov, ROM 1,5 - 4K slov. ALU a baterie byly 32bitové, hardwarový násobič byl 16x16 – výsledek 32bitů, byly tam vstupně-výstupní porty.



Druhá generace DSP se objevila v polovině 80. let. Toto je TMS32020, mikroprocesor TMS320C25 CMOS s výkonem 10 MIPS. Nejzajímavější jsou DSP56000 a DSP56001 s výkonem 10, respektive 25 MIPS. Byly vyvinuty společností Motorola. Toto jsou jediné 24bitové DSP. Modifikace DSP této architektury se stále vyrábí. Architektura DSP56001 je znázorněna na Obr. 7.1. Procesor má rozšířenou architekturu Harvard. Datové paměti RAM X a Y mají samostatné adresové sběrnice YA, XA a datové XD, YD. Pro adresování bootovací ROM a programové RAM je navíc použita samostatná adresová sběrnice PA, které mají a samostatný autobus PD data. Datová sběrnice GD se používá ke stahování programů z hostitelského počítače přes synchronní sériové rozhraní. Kromě toho se GD používá k obsluze přerušení z programovatelného řadiče přerušení. Přepínací jednotky mohou mezi těmito sběrnicemi přenášet data a adresy a externí přepínací jednotky sběrnic umožňují výstup libovolné sběrnice z čipu. Generátor řídicího signálu generuje externí signályřízení. Ke generátoru hodin je připojen externí quartz a ten taktuje celý obvod.

Rýže. 7.1. Architektura DSP56001

X a Y ROM obsahují sinusové a kosinové vzorky, což umožňuje kvadraturní příjem a zpracování. V současnosti se takový DSP nejčastěji používá při zpracování a syntéze zvuku.

Třetí generace DSP se objevila na přelomu 80. a 90. let. Jedná se o TMS320C30 - TI, DSP96002 - Motorola, DSP32C AT&T Microelectronics. Vlastnosti těchto procesorů spočívají v tom, že jsou 32bitové, mohou provádět celočíselné výpočty a výpočty s plovoucí desetinnou čárkou v jedné ALU, mají rozšířenou harvardskou architekturu, přítomnost časovačů a vstupně/výstupních portů. Modifikace TMS320C30 DSP je stále ve výrobě - ​​jedná se o TMS320VC33-120 a -150. Výkon TMS320VC33-150 150 milionů operací s pohyblivou řádovou čárkou za sekundu (MFLOPS).

Jeho hlavní parametry:

RAM 34K 32bitová slova se dvěma paralelními příjezdové autobusy,

Generátor hodin se schopností násobit vnitřní frekvenci,

32bitové jádro s plovoucí desetinnou čárkou,

4 externí vzorkovací záblesky,

Ovladač přerušení

Zavaděč,

8 40bitových registrů zvýšená přesnost,

Jeden sériový port,

Dva časovače

koprocesor s přímým přístupem do paměti (DMA),

144pinový LQFP balíček.

DSP čtvrté generace byly vyvinuty v 90. letech. Zde byl DSP rozdělen na relativně levné 16bitové DSP s pevnou řádovou čárkou a drahé vysoce výkonné 32-40bitové DSP s pohyblivou řádovou čárkou. DSP s pevným bodem se začaly používat v komunikačních zařízeních, modemech, audio multimediálních zařízeních, zpracování signálu mezi společnostmi vyvíjejícími takové DSP, je známá rodina analogových zařízení ADSP; DSP s pohyblivou řádovou čárkou - pro zpracování širokopásmové signály, obrázky, v počítačové grafice. Typickým představitelem DSP s pohyblivou řádovou čárkou je TMS320C40 – TI. Architektura tohoto DSP je znázorněna na Obr. 7.2. Výkon tohoto procesoru je 275 MIPS. Hlavní rys Jeho architektura spočívá v přítomnosti vstupně-výstupní sběrnice prostřednictvím přímého přístupu do paměti s koprocesorem. Je určen pro vysokorychlostní výměnu prostřednictvím komunikačních portů 0 – 5 s dalšími procesory tvořícími architekturu MIMD. Každý port má 8 datových bitů a 4 doprovodné signály propustnost 20 Mb/s.


Rýže. 7.2. Architektura TMS320C40

Na Obr. Obrázek 7.3 ukazuje variantu topologie připojení procesoru.

Rýže. 7.3. Topologie DSP spojení

Pátá a šestá generace DSP byly vyvinuty na začátku 21. století. Zde stojí za zmínku vývoj TI - procesorů rodin C5000 a C6000. Rodina C5000 je rodina levných DSP s pevnou čárkou s vysokou rychlostí a nízkou spotřebou 0,9 V a C6000 je DSP s pevnou a plovoucí desetinnou čárkou s výkonem až 1200 MFLOPS Některé parametry rodiny TMS320C55x :

Spotřeba 0,05 mV/MIPS,

Výkon 140 – 800 MIPS vč. operace násobení,

Variabilní délka příkazy 8 – 48 bitů,

2 násobiče, 2 ALU, 4 baterie,

4 datové registry,

Výběr příkazu je 32 bitů.

V současné době se DSP používají ve spojení s programovatelnou logikou. Nástroje pro ladění zařízení založené na DSP a programovatelné logice jsou rozděleny do dvou kategorií:

Softwarová podpora pro generování a ladění strojového kódu pro zpracování signálu v DSP (nástroje pro generování kódu),

Softwarová a hardwarová podpora pro integraci DSP s cílovým hardwarem vyvíjeného zařízení a prostředek pro ladění programu zpracování s hardwarem v reálném čase.

Tyto dva typy ladění obvykle provádějí různí vývojáři s překrývajícím se časem, což urychluje návrh hardwaru a výrobní proces. Na Obr. 7.4 ukazuje strukturu procesu ladění zařízení s DSP a programovatelnou logikou.

Rýže. 7.4. Proces vývoje zařízení na DSP a FPGA

V procesu ladění DSP programu existují návraty a opravy programu, ale také existují návraty ke změně logiky zabudované do programovatelné logiky hardwaru. Proces ladění při použití DSP a FPGA se tedy ukazuje jako výrazně flexibilnější a umožňuje měnit software i hardware.

Jaké jsou rysy vývoje zařízení založeného na DSP a programovatelné logice?

1. Vývoj různých architektur paralelního zpracování jak v DSP, tak v programovatelné logice.

2. Vývoj vhodných ladicích nástrojů založených na emulátorech, simulátorech a testovacích rozhraních podobných JTAG.

3. Kombinace DSP a programovatelné logiky v rámci jednoho čipu, například v TMS320C54x.

4. Rozvoj efektivity optimalizace kompilátorů vysokoúrovňových jazyků, jako je C, na takovou úroveň, aby nebylo nutné vkládat do programů assembler.

5. Vývoj heterogenních hardwarových systémů na jednom čipu včetně různých typů mikroprocesorů včetně DSP a jejich vybavení paralelními multiprocesorovými operačními systémy reálného času.


Bibliografie

1. Super počítač. Hardware a organizace programu/ Ed. S. Fernbach: Přel. z angličtiny – M.: Radio and Communications, 1991.

2. Hockney R., Jessope K. Paralelní počítače. Architektura, programování a algoritmy: Trans. z angličtiny-M.: Radio and Communications, 1986.

3. Kougi P.M. Architektura dopravníkových počítačů: Per. z angličtiny-M.: Radio and Communications, 1985.

4. Paralelní výpočty / Ed. G. Rodriga: Per. z angličtiny-M.: Nauka, 1986.

5. Pukhalsky G.I., Novoseltseva T.Ya. Návrh diskrétních součástek na integrovaných obvodech: Příručka. – M.: Radio and Communications, 1990.

6. Steshenko V.B. ALTERA FPGA: návrh zařízení pro zpracování signálu. - M: DODEKA, 2000.

7. Knyshev D.A. Společnost FPGA" XILINX“: popis struktury hlavních rodin. - M: DODEKA-XXI, 2001.

8. Sikarev A.A., Lebeděv O.N. Mikroelektronická zařízení pro generování a zpracování komplexních signálů. - M.: Rozhlas a komunikace, 1983.

Digitální signálový procesor(angl. digitální signálový procesor, DSP, digitální signálový procesor (DSP) je specializovaný mikroprocesor určený pro zpracování digitalizovaných signálů (obvykle v reálném čase).

Vlastnosti architektury

Architektura signálových procesorů má ve srovnání s mikroprocesory pro obecné použití některé rysy spojené s přáním maximálně urychlit provádění typických úloh digitálního zpracování signálu, jako je digitální filtrace, Fourierova transformace, vyhledávání signálů atd. Matematicky tyto úlohy jsou redukovány na prvky násobení prvků vícesložkových vektorů reálná čísla, následná sumace součinů (např. při číslicové filtraci je výstupní signál filtru s konečnou impulsní odezvou roven součtu součinů filtračních koeficientů vektorem vzorků signálu; obdobné výpočty se provádějí při hledání maxima korelačních a autokorelačních funkcí vzorků signálu). Proto jsou signálové procesory optimalizovány na rychlost, aby mohly provádět právě takové operace. A DSP se zaměřují především na opakované násobení s průběžným výpočtem adres násobených prvků pole:

  • Operace „multiply-accumulate“ (angl. multiply-accumulate, MAC) (Y = Y + A × B), kde Y, A, B jsou prvky skutečných polí s automatickým výpočtem adres prvků pole a je obvykle implementována v hardwaru a provedeny v jednom strojovém cyklu.
  • Hardwarová implementace opakovaného opakování dané sady příkazů, to znamená cyklů s předem stanovenou délkou bez použití počítadel cyklů a příkazů pro kontrolu resetu počítadla cyklů - znamení opuštění cyklu.
  • Schopnost současně načíst příkaz a dva operandy v jednom strojovém cyklu pro nejrychlejší možné provedení příkazu MAC. Pro tento účel má DSP několik portů pro přístup k paměti (nezávislé paměťové oblasti, každá s vlastní sadou adresových a datových sběrnic).
  • Podpora pro zpracování vektorového potrubí pomocí generátorů adresových sekvencí.

Omezené hardwarové zdroje prvních DSP zanechaly významný otisk na jejich architektuře:

  • Harvard architektura (oddělení instrukční a datové paměti), obvykle upravená; s rozdělením paměti na segmenty s nezávislým přístupem.
  • Deterministická operace se známými časy provádění příkazů, umožňující plánování v reálném čase.
  • Relativně krátká délka potrubí, takže neplánované podmíněné větve mohou trvat méně času než u procesorů pro všeobecné použití.
  • Exotická sada registrů a instrukcí, často složitá pro kompilátory. Některé architektury pak využívaly VLIW.

V moderní mikroelektronice obsahují univerzální procesory často hardwarovou podporu pro typické operace DSP. Zvláště časově náročné úlohy DSP jsou řešeny na bázi programovatelné logiky, kde je možné dosáhnout extrémní optimalizace provádění konkrétní operace. Specializované DSP procesory jsou stále častěji vyráběny vektorovými. Klasické DSP zároveň poskytují pokročilé instrukční sady pro univerzální procesory a vyhlazují funkce softwarového modelu a umisťují je jako produkty. široké uplatnění se zrychlenými funkcemi DSP. Všechny tyto trendy vedou k erozi klasické koncepce DSP.

Oblasti použití

  • Komunikační zařízení:
    • Zhutnění kanálu přenosu dat;
    • Kódování audio a video streamů;
  • Hydro- a radarové systémy;
  • Rozpoznávání řeči a obrazu;
  • Syntezátory řeči a hudby;
  • Řízení technologických procesů;
  • Další oblasti, kde je vyžadováno vysokorychlostní zpracování signálu, včetně v reálném čase.

Příběh

Předchozí vývoj

Před rokem 1980 několik společností vydalo zařízení, která lze považovat za předchůdce DSP. Takže v roce 1978 Intel vydal „analogový signálový procesor“ 2120. Zahrnoval ADC, DAC a digitální datový procesor, ale neexistovala žádná funkce hardwarového násobení. V roce 1979 AMI vydala S2811, periferní zařízení řízené hlavním procesorem počítače. Oba produkty byly na trhu neúspěšné.

První generace (počátek 80. let)

Hlavní historie DSP se obvykle počítá od let 1979-1980, kdy Bell Labs představily první jednočipový DSP Mac 4, a na IEEE International Solid-State Circuits Conference „80“ NEC's µMPD7720 a AT&T's DSP1, které však , nebyly rozšířeny Krystal TMS32010 od Texas Instruments, který byl uveden na trh o něco později, se stal de facto standardem a v mnoha ohledech a úspěšných technických řešeních převyšoval konkurenční produkty.

  • ALU:
    • Velikost slova: 16 bitů;
    • Kapacita počítače: 32 bitů;
    • Výkon: 5 milionů operací sčítání nebo násobení za sekundu;
  • Délka povelového cyklu: 160-280 ns;
  • Paměť:
    • RAM: 144-256 slov;
    • Program ROM: 1,5-4 K slov;
    • PROM: až 4K slov (vybrané modely);
  • Externí autobus:
    • Velikost bitu: 16 bitů;
    • Adresovatelný prostor: 4K slov
    • Šířka pásma: 50 Mbps
  • I/O zařízení: 8 portů po 16 bitech;

Druhá generace (polovina 80. let)

Pokrok v technologii polovodičů v tomto období přinesl produkty s pokročilými funkcemi ve srovnání s první generací. Mezi charakteristické rozdíly patří:

  • Zvýšení množství paměti RAM až na 0,5 K slov;
  • Přidána možnost připojení externí programové paměti a externí datové paměti s kapacitou až 128 K slov;
  • Výkon se zvýšil 2-4krát;
  • Vylepšené podsystémy přerušení a I/O.

Mnohem později byla vydána zařízení, která formálně patřila do druhé generace, ale měla následující vylepšení:

  • Bitová hloubka dat byla zvýšena;
  • Snížené napájecí napětí a v důsledku toho spotřeba energie;
  • Byly zavedeny režimy úspory energie;
  • Hardwarová podpora pro multiprocessing (systém sdíleného přístupu k externí paměti);
  • Hardwarová podpora pro kruhové vyrovnávací paměti;
  • Hardwarová podpora pro smyčkové operace;
  • Metody adresování byly rozšířeny;
  • Dvě interní datové sběrnice, což umožňuje výrazně zrychlit párové zpracování dat (souřadnice X/Y, reálné a imaginární části atd.), nebo prakticky zdvojnásobit bitovou hloubku zpracovávaných dat;
  • Cache zavedena.

Třetí generace (konec 80. let)

Třetí generace DSP je obvykle spojena s počátkem výroby produktů, které implementují aritmetiku s pohyblivou řádovou čárkou. Charakteristické rysy prvních vydaných vzorků:

  • Produktivita: asi 20-40 milionů op./s. (MIPS);
  • Dva bloky 1K 32bitové word RAM se současným přístupem;
  • Vyrovnávací paměť s kapacitou 64 slov;
  • Šířka registru: 32 bitů;
  • ALU kapacita: 40 bitů;
  • Registry pro operace se zvýšenou přesností;
  • Vestavěné řadiče DDP;
  • Šířka sběrnice: 32 bitů pro příkazy a 24 bitů pro adresy;

Čtvrtá generace

Čtvrtá generace DSP se vyznačuje výrazným rozšířením instrukčních sad, vytvořením VLIW a superskalárních procesorů. Frekvence hodin se znatelně zvýšila. Například doba provádění příkazu MAC (Y:= X + A × B) byla snížena na 3 ns.

Moderní DSP

Nejlepší moderní DSP lze charakterizovat následujícími parametry:

  • Frekvence hodin - 1 GHz a vyšší;
  • Vícejádrový;
  • Dostupnost dvouúrovňové mezipaměti;
  • Vestavěné vícekanálové řadiče přímého přístupu do paměti;
  • Výkon je v řádu několika tisíc MIPS a MFLOPS;
  • Proveďte až 8 paralelních instrukcí za cyklus;
  • Kompatibilní se standardními sběrnicemi (PCI, atd.)

Základní parametry DSP

  • Aritmetický typ. DSP se dělí na procesory, které zpracovávají data s pevnou řádovou čárkou, a procesory, které zpracovávají data s pohyblivou řádovou čárkou. Zařízení s plovoucí desetinnou čárkou jsou pohodlnější k použití, ale jsou znatelně složitější v designu a dražší;
  • Šířka dat. Většina DSP s pevnou řádovou čárkou zpracovává data o šířce 16 bitů, zatímco procesory s pohyblivou řádovou čárkou zpracovávají data o šířce 32 bitů. Mnoho modelů dokáže zpracovávat data s dvojnásobnou přesností.
  • Výkon. Výkon jako integrální charakteristiku je poměrně obtížné určit, takže rychlost provozu je charakterizována několika parametry, stejně jako doba potřebná k vyřešení některých skutečných problémů.
    • Frekvence hodin A Doba cyklu příkazu. U moderních DSP se může interní hodinová frekvence lišit od externí, takže lze zadat dvě hodnoty. Doba instrukčního cyklu udává dobu provádění jednoho instrukčního kroku, to znamená dobu jednoho cyklu příkazového potrubí. Protože příkazy lze provádět v různá množství cyklů a také s přihlédnutím k možnosti současného provádění několika příkazů může tento parametr poměrně přibližně charakterizovat výkon DSP.
    • Počet příkazů provedených za jednotku času. Různé časy provádění příkazů, stejně jako provádění několika příkazů současně neumožňují použití tohoto parametru pro spolehlivý výkon Rychlost.
    • Počet operací provedených za jednotku času (MIPS). Tento parametr zohledňuje současné zpracování několika příkazů a přítomnost paralelních příkazů výpočetní moduly, proto může celkem dobře indikovat rychlost DSP. Určitým problémem zde zůstává, že pojem „operace“ není jasně formalizován.
    • Počet operací s pohyblivou řádovou čárkou provedených za jednotku času. Parametr je podobný předchozímu a používá se pro procesory s pohyblivou řádovou čárkou.
    • Počet operací MAC provedených za jednotku času. Tento příkaz je na jednu stranu základní pro mnoho výpočtů a na druhou stranu je docela jednoduchý. Proto lze jeho dobu provádění také použít k vyhodnocení celkového výkonu DSP.
  • Typy a objem vnitřní paměti. Množství vnitřní paměti RAM ukazuje, kolik dat může DSP zpracovat bez přístupu k externí paměti, což může charakterizovat celkový výkon systému a také schopnost pracovat „v reálném čase“. Typ paměti ROM určuje programovací možnosti zařízení. Modely s konvenční ROM jsou vhodné pro velkosériovou výrobu, EPROM (jednorázově programovatelná) je vhodná pro malé série a použití paměti Flash umožňuje během provozu mnohokrát změnit program zařízení. V současné době jsou nepříliš výkonné DSP nejčastěji vybaveny poměrně velkou pamětí Flash (její cena neustále klesá) a znatelným množstvím RAM, a proto mohou být soběstačné bez přidávání externí paměti jak ve fázi vývoje, tak ve fázi vývoje. výrobní fázi, což zvyšuje konkurenceschopnost takových DSP v řadě segmentů trhu. Výkonné DSP obvykle spoléhají na externí paměť připojenou přes poměrně rychlé sběrnice a umístění Flash paměti tam může být technicky problematické, například kvůli znatelnému vývinu tepla.
  • Velikost adresovatelné paměti. Objem adresovatelné externí paměti je charakterizován šířkou externí sběrnice adresy.
  • Metoda spouštění.
  • Počet a parametry I/O portů. Tento parametr ukazuje schopnosti DSP interagovat s externími zařízeními.
  • Složení vnitřních přídavných zařízení. Vnitřní zařízení mohou zahrnovat zařízení různých účelů, např. obecné použití- časovače, ovladače DMA atd., stejně jako orientovaný na problém- ADC, kodeky, datové kompresory a další.
  • Napájecí napětí a spotřeba. Tato vlastnost je zvláště důležité pro DSP zabudované do přenosných zařízení. Obvykle jsou výhodnější nízkonapěťová zařízení (1,8-3,3V), která mají výkon podobný 5V procesorům, ale jsou znatelně ekonomičtější z hlediska spotřeby energie. Mnoho zařízení má při nečinnosti úsporné režimy nebo umožňuje programově vypnout část vašich zařízení.
  • Složení a funkčnost vývojových a podpůrných nástrojů.
    • Seznam programovacích jazyků, pro které existují kompilátory pro tento systém;
    • Dostupnost a možnosti nástrojů pro ladění již hotových programů;
    • Dostupnost dokumentace a technické podpory;
    • Dostupnost knihoven standardních podprogramů a matematických funkcí;
    • Dostupnost, dostupnost a schopnosti kompatibilní zařízení- ADC, DAC, regulátory výkonu atd.
  • Přijatelné parametry prostředí.
  • Ostatní, podle účelu.

Integrální charakteristiky DSP se také často používají, například indikátor „výkon/proud/rychlost“, například ma/MIPS (miliampéry na 1 milion instrukcí za sekundu), který umožňuje odhadnout skutečnou spotřebu energie v závislosti na složitost problému řešeného procesorem v určený okamžik .

Volba DSP je zcela určena účelem vyvíjeného systému. Například na mši mobilní zařízení Důležité jsou nízké náklady na procesor a nízká spotřeba energie, zatímco náklady na vývoj systému ustupují do pozadí. Na druhou stranu pro měřicí zařízení, systémy pro zpracování zvuku a obrazu je důležitá efektivita procesoru, dostupnost vyvinutých nástrojů, multiprocessing atd.

Hodnocení a srovnání výkonu

Jak již bylo uvedeno výše, individuální charakteristiky typu hodinová frekvence, MIPS, MOPS, MFLOPS umožňují poměrně nejednoznačně hodnotit výkon DSP. Proto se pro řešení problému měření a porovnávání charakteristik různých DSP používají speciální sady testů, které simulují některé běžné úlohy digitálního zpracování signálu. Každý test se skládá z několika malých programů, které jsou napsány v jazyce symbolických instrukcí a jsou optimalizovány pro danou architekturu. Tyto testy mohou zahrnovat implementaci:

  • FIR a IIR filtry;
  • Vektorové násobení;

Nejsměrodatnějším testovacím balíčkem je dnes BTDImark2000 (), který kromě specifikovaných algoritmů zahrnuje také hodnocení paměti používané algoritmem, dobu vývoje systému a další parametry.

přístroj

Harvardská architektura

Digitální signálové procesory jsou postaveny na bázi tzv. "Harvardská architektura", jejíž charakteristickým rysem je, že programy a data jsou uloženy v různých paměťových zařízeních - programové paměti a datové paměti. Na rozdíl od von Neumannovy architektury, kde procesor vyžaduje minimálně tři cykly sběrnice pro načtení instrukce a dvou operandů, může DSP provádět simultánní přístupy jak do paměti instrukcí, tak do paměti dat a výše uvedená instrukce může být načtena ve dvou cyklech sběrnice. Reálně se díky promyšlenosti systému povelů a dalším opatřením dá tato doba zkrátit na jeden cyklus. Ve skutečných zařízeních může paměť instrukcí ukládat nejen programy, ale také data. V tomto případě se říká, že DSP je postaven pomocí upravené harvardské architektury.

Paměť instrukcí a datová paměť jsou obvykle umístěny na čipu DSP. Vzhledem k tomu, že tato paměť má relativně malý objem, je potřeba použít externí (vzhledem k čipu procesoru) úložná zařízení. Pro taková zařízení se nepoužívají oddělené příkazové a datové sběrnice, protože by to vyžadovalo značné zvýšení počtu externích pinů na krystalu, což je drahé a nepraktické. Interakce DSP s externími úložnými zařízeními proto probíhá přes jednu sadu sběrnic bez rozdělení na příkazy a data. Je třeba také poznamenat, že přístup k externí paměti vždy trvá výrazně déle než přístup k interní paměti, takže v časově kritických aplikacích musí být tento přístup minimalizován.

Strukturální schéma

Pipeline provádění příkazů

Dopravník je výpočetní vlákno, které v každé fázi provádí specifické mikroprovoz, proto je na kanálu v každém daném okamžiku několik příkazů v různých fázích provádění. To zlepšuje výkon.

Přítomnost několika dopravníkových nástrojů superskalární architektura.

Při paralelním zpracování příkazů na různých kanálech je maximálního účinku dosaženo u příkazů stejného typu, které jsou na sobě nezávislé. Pokud program obsahuje příkazy různých typů, pak čekací cykly.

Pro optimalizaci zatížení dopravníků je nutné:

  • Kompilace strojového kódu pro konkrétní procesor.
  • Optimalizace načítání potrubí do bloků předběžného dekódování příkazů.

V důsledku toho se příkazy neprovádějí v pořadí, v jakém je programátor zapsal.

Hardwarová implementace základních funkcí

Multiplikátory

Hardwarový násobič se používá ke zkrácení doby provádění jedné z hlavních operací DSP – operace násobení. U univerzálních procesorů je tato operace implementována v několika cyklech posunu a sčítání a zabere spoustu času, ale v DSP díky specializovanému násobiču zabere jeden instrukční cyklus.

Funkčně jsou multiplikátory rozděleny do dvou typů:

Přehazovačky

Přehazovačka se nazývá jak zařízení, které provádí operaci posunu dat, tak registr, ve kterém je uložen výsledek posunu.

Z hlediska funkcí, které plní, se posunovače dělí na:

  • Preshifters, vykonávající směnu před zahájením operace nebo během jejího provádění;
  • Postshifters, provedení směny po provedení operace.

V obou případech je struktura registru uchovávajícího výsledek posunu stejná jako struktura akumulátoru.

Funkce předřadníků Funkce přeřazení

  • Měřítko výsledků při ukládání do paměti. V tomto případě zůstává obsah akumulátoru (výsledek hlavní operace) nezměněn;
  • Odstranění rozšiřujících bitů znamení;
  • Normalizace;
  • Výběr stejné objednávky.

Zařízení pro generování adres

Hardwarová smyčka

ALU

ALU je procesorová jednotka, která je řízena příkazový dekodér provádí aritmetické a logické transformace dat, v tomto případě nazývané operandy. Šířka operandů se obvykle nazývá velikost strojového slova.

Registry

baterie

Akumulátor je registr určený k ukládání výsledků operací. Mnoho architektur DSP obsahuje dvě baterie, což zlepšuje rychlost operací, které vyžadují ukládání mezivýsledků. Technicky se může akumulátor skládat z několika registrů:

  • EXT - registr rozšíření;
  • MSP - vysoký registr slov;
  • LSP - nízký registr slov.

Přítomnost registru EXT umožňuje zvýšit přesnost výpočtu mezivýsledků a také zvýšit rozsah ukládání hodnot, které nevedou k přetečení. Při ukládání hodnoty akumulátoru do paměťové buňky nebo běžného registru je její hodnota zaokrouhlena tak, aby odpovídala standardní šířce dané buňky nebo registru. Na druhou stranu v případě potřeby lze obsah registru EXT uložit samostatně.

Metody adresování

Procesor podporuje režimy přímého adresování, režimy nepřímého adresování s pre- a post-inkrementací a režimy cyklického adresování a adresování specifické pro DSP s obrácením adresního bitu.

Klasifikace DSP podle architektury

Je třeba poznamenat, že níže uvedená klasifikace je zcela libovolná, protože rozmanitost technických řešení nám často neumožňuje jednoznačnou klasifikaci každého konkrétní zařízení na jeden z uvedených typů. Následující text by proto měl být použit spíše jako materiál pro pochopení vlastností architektury DSP než pro vlastní klasifikaci jakýchkoli produktů.

Je vhodné zvážit vlastnosti DSP architektury na příkladu specifického algoritmu digitálního zpracování dat, například FIR filtr, jehož výstupní signál lze zapsat jako:

Y (n) = ∑ i = 0 P b i x (n − i) (\displaystyle y\left(n\right)=\součet _(i=0)^(P)b_(i)x\left(n-i\ že jo)), Kde

Jak můžete snadno vidět, výpočet výsledku je klasický příklad použití operace násobení a sčítání - MAC (Y:= X + A × B) .

Standardní DSP

Obrázek ukazuje dvě možnosti pro provedení příkazu MAC na standardním DSP. V první možnosti jsou oba operandy uloženy v datové paměti, takže jejich načtení vyžaduje dva hodinové cykly, tedy dobu provedení n přídavky rovné 2n. Ve druhém případě je jeden z operandů uložen v paměti programu, takže instrukce je provedena v jednom hodinovém cyklu a celková doba provádění smyčky bude rovna n hodinových cyklů (mělo by být objasněno, že ve skutečnosti, aby se provedla v jednom hodinovém cyklu, musí být MAC provedena uvnitř speciální smyčkové instrukce, aby se zabránilo opětovnému načítání samotného kódu instrukce, což vyžaduje další hodinový cyklus). Zde je vidět, že efektivní implementace algoritmu vyžaduje použití programové paměti pro ukládání dat.

Jednou z možností, jak se vyhnout používání programové paměti pro ukládání dat, je použití tzv. „dual-port memory“, tedy paměť, která má dvě sady vstupních sběrnic – dvě adresové a datové sběrnice. Tato architektura umožňuje současný přístup ke dvěma adresám (musí však být v různých adresovatelných blocích). Toto řešení se používá v DSP od Motorola (DSP56000) a Lucent (DSP1600).

S touto architekturou lze výkon zvýšit pouze zvýšením taktovací frekvence.

Vylepšené standardní DSP

"Vylepšené standardní DSP" používají následující metody ke zvýšení paralelismu ke zlepšení výkonu systému ve srovnání se standardními DSP:

  • Zvýšení počtu provozních a výpočetních zařízení;
  • Zavedení specializovaných koprocesorů;
  • Rozšíření sběrnice pro zvýšení množství přenášených dat;
  • Využití paměti s vícenásobným přístupem (několik přístupů za cyklus);
  • Komplikace systému velení;

Mnoho z těchto metod se používá již od prvních procesorů, takže je často nelze jednoznačně klasifikovat jako „standardní“ nebo „vylepšené“.

Obrázek ukazuje příklad implementace výpočtu dvou paralelních MAC příkazů. K tomuto účelu DSP obsahuje dva MAC moduly a dvě baterie. MAC bloky přijímají data na třech sběrnicích současně a jedna z hodnot je pro ně společná. Jsou tedy provedeny dva příkazy současně:

  • AK1:= AK1 + D1 × D2
  • AK2:= AK2 + D1 × D3

Zvláštností uvedeného řešení je, že mnoho DSP algoritmů lze redukovat na provádění dvou paralelních příkazů s jedním společným faktorem, například:

  • FIR filtr se symetrickými koeficienty. Koeficienty filtru se používají jako identické faktory a dvě různé sady vzorků signálu jsou dodávány do samostatných sběrnic, to znamená, že se paralelně počítají dvě poloviny filtru, které se pak sečtou.
  • Dvoukanálové zpracování. Vzorky signálu jsou dodávány do společné sběrnice a sady koeficientů jsou dodávány do samostatných sběrnic.

Některé procesory (Lucent DSP16xxx, ADI ADSP-2116x) používají dvě identická jádra, každé s vlastní pamětí, to znamená, že jedna instrukce je vykonávána současně ve dvou jádrech s různými daty. Tím se obchází omezení používání zcela nezávislých dat.

Charakteristickou nevýhodou takových procesorů lze považovat potřebu vysoce kvalifikovaného vývojáře, protože efektivní využití těchto funkcí vyžaduje programování v jazyce symbolických instrukcí, dobrou znalost architektury a příkazového systému, to znamená, že tato zařízení jsou považována za „nepřátelská“ k jazyky na vysoké úrovni.

DSP s architekturou VLIW

Hlavní rozdíl mezi procesory VLIW je v tom, že příkazové kódy jsou ve fázi kompilace sestaveny do velkých „super instrukcí“ a spouštěny paralelně. Typicky takové procesory používají architekturu RISC s pevnou délkou instrukce, kde je každá instrukce vykonávána v samostatném operačním modulu. NA charakteristické vlastnosti Mezi takové procesory patří:

  • Velká sada operačních modulů, které pracují nezávisle na sobě. Takové moduly mohou zahrnovat:
    • Aritmetický:
      • moduly pro aritmetické operace a srovnávací operace;
      • moduly logických operací;
      • moduly násobení s pohyblivou a pevnou řádovou čárkou;
      • moduly konstantní generace.
    • Moduly pro generování adres, včetně pro lineární a cyklické vyrovnávací paměti;
  • Potřeba optimalizovat kompilátor pro každý model procesoru, protože složení a funkce výpočetních jednotek se mohou mezi modely měnit, což s sebou nese změnu v seznamu příkazů, které lze provádět současně;
  • Potřeba ultraširokých datových sběrnic (asi 128 bitů), aby bylo možné jedním přístupem získat z paměti operační kód skládající se z jednotlivých instrukcí (až 8).
  • Vysoké nároky na paměťový prostor programu, s čímž souvisí i velká délka operace.

Obvykle, pokud má procesor několik stejných modulů, je možné při vytváření programu v assembleru určit pouze typ požadovaného operačního modulu a konkrétní zařízení bude přiřazeno kompilátorem. To na jedné straně zjednodušuje programování takových zařízení a na druhé straně umožňuje poměrně efektivně využívat jejich zdroje.

Superskalární DSP

Superskalární procesory se také vyznačují velkou sadou paralelních operačních jednotek a schopností současně provádět více instrukcí. Ve srovnání s VLIW však mají dvě charakteristické vlastnosti:

  • Příkazy procesoru nejsou seskupeny do bloků, každý z nich vstupuje do procesoru nezávisle;
  • Příkazy pro paralelní provádění jsou v rámci procesoru seskupeny na základě složení a aktuální zátěže operačních jednotek a také závislostí mezi daty.

Pomocí popsaného přístupu lze obejít následující nevýhody VLIW:

  • Neefektivní využití paměti kvůli velké délce skupinové operace;
  • Závislost kompilovaného kódu na složení operačních modulů konkrétního procesoru.

Cenou za řešení těchto problémů je značná komplikace procesorového obvodu, ve kterém se objevuje modul pro plánování provádění příkazů.

Superskalární procesory plánují provádění instrukcí nejen na základě informací o zatížení operačních jednotek, ale také na základě analýzy závislostí mezi daty. Například příkaz k uložení výsledku aritmetické operace nelze provést před samotnou operací výpočtu, i když je modul pro přístup do paměti aktuálně volný. Tato vlastnost také vede k tomu, že stejnou sadu příkazů lze provádět na různých místech v programu odlišně, což znemožňuje přesné posouzení výkonu. To je důležité zejména pro systémy pracující v reálném čase, protože vyhodnocení nejhoršího případu povede k tomu, že zdroje procesoru nebudou plně využity. V těchto systémech tedy zůstává problém přesného odhadu výkonu superskalárních DSP otevřený.

Klasifikace DSP podle účelu

Obecně lze DSP podle účelu rozdělit do dvou skupin:

  • DSP pro všeobecné použití;
  • Problémově orientované DSP.

"Orientace problému" obvykle neznamená dodatečné příkazy, ale sadu vestavěných specializovaných periferií. Například DSP navržené pro řízení elektromotorů mohou obsahovat na čipu generátory PWM signálu, řadiče fieldbus atd. Procesory používané ke zpracování hlasových signálů často obsahují jednotky pro manipulaci s bity (BMU) a koprocesory pro korekci chyb. Digitální fotoaparáty a videokamery používají DSP s moduly kódování/dekódování MPEG1, MPEG4, JPG, MP3, AAC atd.

  • Při programování v assembleru má programátor přístup ke všem procesorovým a systémovým prostředkům, což umožňuje jejich co nejefektivnější využití;
  • Je vyžadován programátor dobrá znalost architektura každého konkrétního procesoru, se kterým pracuje, to znamená, že požadovaná kvalifikace personálu musí být poměrně vysoká;
  • Vytváření a ladění programů v assembleru je dlouhý proces náročný na práci, který také vyžaduje vysokou kvalifikaci.
  • Na druhou stranu při použití středně a vysokoúrovňových jazyků, zejména C, je možné výrazně zjednodušit a zrychlit tvorbu programů, ale zároveň budou systémové prostředky využívány méně efektivně než napsaný program zcela v jazyce symbolických instrukcí.

    Ve skutečnosti se obvykle používá přístup, který kombinuje výhody obou jazyků na vysoké úrovni a efektivitu programů v assembleru. To je vyjádřeno ve skutečnosti, že standardní knihovny jsou obvykle vytvářeny v assembleru, stejně jako části kódu, které jsou kritické pro dobu provádění a velikost paměti. Pomocné moduly lze zároveň vytvářet v jazyce na vysoké úrovni, což urychluje a zjednodušuje vývoj softwarový systém obvykle.

    Vlastnosti DSP assemblerů

    Mezi zajímavé vlastnosti DSP assemblerů patří následující:

    • Přítomnost dvou forem psaní mnoha příkazů - mnemotechnická pomůcka A algebraický. Mnemotechnická forma je podobná psaní příkazů pro konvenční mikroprocesory, například ADD dst, src. Druhý, algebraický, se v assembleru standardních mikroprocesorů používá méně často, zatímco v jazyce DSP lze zmíněný příkaz zapsat jako dst = dst + src. Typicky, assemblery DSP rozumí oběma formám zápisu, ale například assemblery Analog Devices a Lucent Technologies používají pouze algebraický zápis.
    • Prostředky pro organizaci standardních struktur, například speciální hardwarové příkazy pro opakování jednoho příkazu nebo bloku kódu. Současně na rozdíl od opakovacích příkazů konvenčních procesorů může DSP přeskočit cyklus vzorkování kódu opakovaného příkazu, což zkracuje dobu provádění každého opakování alespoň o 1 sběrnicový cyklus, což při dvoucyklovém příkazu , poskytuje dvojnásobný časový zisk.

    Kompatibilita v rámci rodin DSP

    DSP se obvykle vyrábějí v rodinách a produkty v rámci rodin mají podobné jazyky sestavení nebo jsou dokonce kompatibilní na úrovni strojového kódu. V rámci rodiny se také obvykle používají stejné sady knihoven podprogramů. Stejně jako u běžných mikroprocesorů mohou často fungovat starší modely DSP strojový kód vedlejší modely nebo jejich assembler zahrnuje všechny instrukce vedlejších modelů jako podmnožinu vlastní sady instrukcí.

    Ladění programů

    Ladění programů napsaných pro DSP se obvykle provádí pomocí speciální prostředky, včetně softwarových simulátorů a emulátorů. Často také zahrnují nástroje pro profilování (měření rychlosti provádění bloků kódu).

    Zatímco celé progresivní (čti: PC závislé) lidstvo ustrnulo ve vleklém očekávání Mercedu a dalších výstředních procesorů slibujících bezprecedentní ukazatele výkonu, malá, ale přehnaně zvědavá část nezodpovědných jedinců vytrvale hledá možnosti, jak dnes získat supervýkonné počítače. Individualismus tohoto „partizánského hnutí“ přirozeně znamená velmi skromné ​​finanční prostředky, což vylučuje popularitu ještě ne zcela zrozeného, ​​ale již příliš drahého Mercedu v „partizánském prostředí“. Vášně "pro moc" jsou živeny zpožděním vstupu na trh slibného Sony Playstation II, totální zlevnění klonových RISC procesorů 64bitové rodiny MIPS a nakonec již jasná krize architektury IBM PC. V této situaci se zdá nenápadnost rozsáhlé rodiny levných vysoce výkonných mikroprocesorů, nazývaných DSP, umístěných samostatně v procesorové „tabulce hodností“, více než podivná. Zástupci „DSP klanu“ v oblasti procesorové architektury koncentrují ta nejlepší (v daleké budoucnosti očekávaná u „desktopových“ CPU) řešení a z hlediska poměru „spotřeba/výkon“ (miliwatty/MIPS) se obecně zdají být být skutečnými „mimozemšťany“.

    DSP a DSP jsou různé pojmy

    Inženýrská angličtina je nevyčerpatelným zdrojem „sporů“ mezi vášnivými milovníky zkratek. Terminologie spojená s předmětem naší diskuse není výjimkou, pokusím se proto čtenáře okamžitě zbavit možných " úskalí". Digital Signal Processing (DSP) - digitální zpracování signálu je obrovská interdisciplinární vědní oblast, která se nachází „na křižovatce“ více než tuctu komplexních vědeckých oblastí. Digitální signálový procesor (digitální signálový procesor - DSP), předmět našeho diskuse, je více „přízemní“ koncept, ale bohužel jde o „reifikaci“ vývoje v oblasti digitálního zpracování signálů. Proto se stále nelze obejít bez předběžného seznámení se základními principy tato věda.

    Je snadné si všimnout, že obě zkratky obsahují výraz „signál“. To, co se stalo se slovem „signál“, se obvykle stává s módními výrazy - každý je používá, ale nikdo nepřemýšlí o jejich významu. V budoucnu bude signál chápán jako změna něčeho, co nese informaci – in elektrické napětí tlak plynu (například vzduchu) nebo kapaliny v elektromagnetickém poli. Tato definice již vysvětluje nejdůležitější charakteristický rys DSP, ale o tom trochu později.

    Další zdvojení je pozorováno u slov „digitální“ a „digitální“, což v kombinaci se „signálem“ naznačuje, že informace obsažené ve změnách již zmíněného „něčeho“ jsou zastoupeny v digitální podobě.

    A konečně „zpracování“ a „procesor“ (neboli v ruštině „procesor“): právě s těmito informacemi se provádí určitá posloupnost akcí za účelem dosažení určitých cílů.

    Nyní lze vzhled DSP považovat za zcela definitivní: je to nějaký druh digitálního elektronického zařízení, zaměřeného na aktivní interakci s reálným světem (ve kterém jsou signály přítomny) a navržené k dosažení stanovených cílů na základě informací obsažených v signálech. .

    "Ale tohle je jakýkoli běžný mikroprocesor, který lze nazvat DSP," říkáte. Tímto způsobem určitě ne. Nesouměřitelnost časových „měřítek“ reálného světa (pro který jsou DSP určeny) a lidské trpělivosti či reakce (v nejvýjimečnějších případech je to méně než 0,05 s, což „uvolňuje ruce“ konstruktérům univerzálních mikroprocesorů a obslužných systémy) - taková „malá“ nuance vede k obrovské „mezera“ v architekturách, výkonnostních ukazatelích a oblastech použití zástupců dvou paralelních světů DSP/CPU.

    A co s tím má společného PC?

    Ve skutečnosti existuje specifická třída problémů (souvisejících s realitou kolem nás), existují nástroje, které řešení těchto problémů usnadňují (DSP). To vše má na první pohled velmi vzdálený vztah k osobním počítačům a DSP přítomným v PC subsystémech (např. zvuková karta nebo modem) vykonávají vysoce specializované funkce. Ve skutečnosti to tak je, dokud naše PC vypadají jako slušně velké krabice, „hoří“ sto wattů, a pokud jsme s tím spokojeni...

    Časy se ale mění – počítače jsou stále menší a menší, už se vejdou do dlaně. I když jsou to dnes jen hračky - to všechno není moc pohodlné notebooky pro „podnikatele“ a absolutně nepohodlné (přesněji nemotorné) textové editory s perem - ale hračky jsou již NOSITELNÉ! Zvykáme si na ně, přestáváme si jich všímat a přes všechny nepříjemnosti jejich schopnosti využíváme Každodenní život. Jinými slovy, jsme již připraveni na totální automatizaci domácností v „malém měřítku“, ale počítače ještě ne (proto všechny ty nepříjemnosti s palmtopy a PDA). Nedostupnost počítačů není spojena ani s nízkým stupněm integrace v nich použitých mikroobvodů, ani s nízkým výkonem, ani s vysokou spotřebou energie. Hlavním důvodem této nedostupnosti je takzvaná „chyba nejvyšší úroveň", pevně zakořeněné v hlavách vývojářů: z nějakého důvodu všichni zapomněli, že nositelný počítač se stává "součástí" svého nosiče a "žije" s ním ve SKUTEČNÉM SVĚTĚ! Nyní se zjevně nabízí jeden jediný závěr, kterým je odpověď na otázku o „zapojení PC“: protože DSP se zaměřují na zpracování signálů z reálného světa a nositelné osobní počítače „žijí“ v reálném světě, to znamená... Správně by měly být proprietární počítače založené spíše na DSP než na univerzálním procesoru.

    To nemůže být

    "…protože specializované procesory nesplňují požadavky moderního softwaru," citujete někoho. Je možné, že moderní software stále vyžaduje úsilí o mírovou koexistenci chráněných (32bitových) programů a 16bitového BIOSu (základní vstupní systém). Architektura IBM PC, a právě kvůli těmto požadavkům existuje skutečná nekompatibilita mezi „kompatibilními“ procesory (vzpomeňte na všechna různá rozšíření instrukční sady od Intelu a AMD), a konečně kvůli „modernosti“ např. je pevně zapomenuta maličkost, jako je mobilita softwaru, která uzavírá začarovaný kruh: „nedokonalost platformy – závislost softwaru na platformě – vylepšení platformy na novou úroveň nedokonalosti – ještě větší závislost softwaru na platformě – …“.

    Ve skutečnosti jsou moderní DSP přizpůsobeny k práci pod kontrolou multitaskingových operačních systémů v reálném čase a k vytváření výkonných 3D akcelerátorů a ke zpracování audio/video informací v reálném čase a obecně bůh ví za co. Posuďte sami: 32bitová řada DSP Texas Instruments TMS320C6700 dokáže „mlátit“ digitální reprezentaci signálů (nebo jednoduše násobit 4 x 4 matice v úlohách 3D vizualizace) rychlostí 1 GFLOPS s více než skromnou hodinovou frekvencí 167 MHz a cenou v malých dávkách až 250 $ a úžasné a levné DSP SHARC (Analog Devices) za cenu 10 $ (ve velkém množství) „přebírá laťku“ 150 MFLOPS, spotřebuje pouze... 0,3 V.

    Čísla, fakta, historie

    Ještě jednou se pokusím bránit proti případným výtkám „zveličování“ přednosti vysoce specializované technologie, která nikoho nezajímá. Stav trhu s polovodiči – nejlepší ukazatel perspektiv konkrétní technologie – svědčí o stále rostoucí oblibě DSP: například v roce 1998 na pozadí všeobecného desetiprocentního poklesu objemu prodeje všeho spadajícího do v kategorii „semiconductor“ vzrostl trh s univerzálními programovatelnými DSP o 9 % (na úroveň 4 miliard dolarů) a vysoce specializovanými o 15 % (5,3 miliardy). Proto lze oblibu DSP považovat za prokázanou. Zároveň s přihlédnutím k vlastnostem DSP můžeme také s jistotou mluvit o jasném projevu konečně „zdravého“ trendu v oblasti výpočetní techniky: aktivní implementace v reálném světě kolem nás (jinak proč DSP?).

    Pokud je informací o stavu trhů více než dost, pak je historie DSP předmětem hodný samostatného studia. Něco se však v divočině internetu najde: titul jednoho z nejvzdálenějších předků moderních DSP si právem zaslouží mikroprocesor 8×300, který upadl v zapomnění, vyvinutý společností SMS (která později prodala 8× 300 na další, více slavná společnost Signetika). 8×300, který se objevil v roce 1978, byl téměř okamžitě zapomenut a v roce 1979 se Intel rozhodl připojit k „DSP hrám“, aby jej nahradil. Na svou dobu byl Intel 2920 DSP úžasným zařízením, kombinující analogově-digitální převodník (ADC), specializovaný mikroprocesor a DAC (digital-to-analogový převodník) na jednom čipu. V podstatě z pohledu vývojového inženýra vypadal 2920 jako nějaké analogové zařízení s libovolně specifikovanými vlastnostmi. DSP by byl velmi úspěšný, nebýt jednoho „ale“: DSP od Intelu se ukázalo být příliš pomalé (provádění „nejrychlejších“ příkazů při maximální hodinové frekvenci 2920 vyžadovalo 0,9 µs, což prakticky vylučovalo možnost jeho použití v jakékoli skutečné problémy). Extrémně nízký výkon vedl k tomu, že 2920 „zemřel dříve, než se narodil“, a tato smutná zkušenost donutila Intel na dlouhou dobu zapomenout na vývoj DSP.

    Po Intelu se na trh DSP vrhly Lucent Technologies a NEC a v roce 1980 představily první programovatelný DSP. Na tomto historickém pozadí se zdá být nepostřehnutelné, že společnost Texas Instruments v roce 1978 vyráběla ve velkém množství čipy pro hračky Speak & Spell. Při bližším zkoumání se ukazuje, že Texas Instruments předběhl všechny ostatní tím, že zahájil masovou výrobu prvních specializovaných DSP ve velkém měřítku. Následně, v roce 1982, Texas Instruments (TI) oznámila svůj první univerzální programovatelný DSP TMS32010, jehož architektura se stala absolutním trendem na trhu digitálního zpracování signálu, a TI samotná – analog Intelu ve světě PC procesorů. Dnes je obtížné vyjmenovat seznam výrobců nejrůznějších DSP, odborníci čítají více než 300 (!) unikátních architektur implementovaných „v křemíku“ a dokonce i Intel, který na trh DSP dlouho zapomněl; , oznámila plány na společný vývoj nové generace DSP s Analog Devices.

    Architektonický vývoj

    Množství architektur DSP může zchladit jakoukoli perzistenci, ale... Všechny DSP musí vzhledem ke své specifičnosti splňovat stejné požadavky. Vlastnosti procesorů charakteristické pro úlohy zpracování signálů lze jen stěží nazvat jedinečnými: je zde vyžadována velmi rychlá aritmetika (a kde není potřeba?), vysoká rychlost výměny procesoru s externími zařízeními, která převádějí signály z vnějšího světa na elektrickou reprezentaci, a konečně paměť s vysokou propustností subsystému. Ve skutečnosti tedy tyto požadavky nejsou příliš specifické – to je přesně to, co od našich PC chceme, zvýšení frekvence systémové sběrnice, vylepšení periferních rozhraní (například přechod z PCI na PCI 2) a instalace paměťových modulů SDRAM.

    Jiná věc je, že algoritmy zpracování signálu mají určitou obecnost, kvůli které bylo nutné soustředit úsilí konstruktérů a architektů DSP na efektivní řešení řady konkrétních problémů. Základem digitálního zpracování jsou primitivní operace sčítání a násobení dvou čísel operandů, indexování datových polí a zpoždění. Aritmetická podskupina v tomto seznamu (sčítání a násobení) je zcela zřejmá: k provedení odpovídající operace musíte někde vzít dva operandy, provést na nich nezbytnou operaci, umístit výsledek do dočasného „úložiště“ a poté zapsat výsledek z tohoto „úložiště“ na určité místo (buňka RAM nebo registr procesoru). U adresních operací (indexování datových polí) je situace složitější: DSP musí být schopen velmi rychle vybrat data ze sekvenčních polí a provést příkaz kopírování z paměti do paměti, který se v RISC (a CISC) vyskytuje jen zřídka. procesory. Operace zpoždění, navzdory „děsivému“ nemikroprocesorovému názvu, znamená jen velmi rychlé „skrytí“ dat pro pozdější použití.

    Obecně by nebylo velkou chybou říci, že všechny architektonické inovace a zdánlivé „excesy“ moderních DSP odrážejí touhu designérů dosáhnout vysoké efektivity v těchto čtyřech základních operacích.

    Pro urychlení aritmetických výpočtů využívá DSP několik aritmeticko-logických jednotek (ALU) pracujících „paralelně“, což v případě „mazaně“ uspořádané paměti vnitřního registru umožňuje zadávat velmi zajímavé návody, přeloženo do lidské řeči znamenající přibližně toto: „vynásobte obsah registru 1 obsahem registru 2 a sečtěte výsledek násobení obsahem registru 3.“ A to vše je jeden příkaz, prováděný v jednom hodinovém cyklu. Je příliš brzy na obdiv: operace násobení s akumulací (tak se nazývá takový seznam akcí) je klasikou digitálního zpracování signálů a hardware, který ji implementuje, postupně proniká do dříve uvažovaných univerzální procesory, především architektury RISC, zejména mnoho klonů MIPS.

    Efektivní implementace operace zpoždění vyžaduje, aby dobrý DSP měl mnoho vnitřních registrů (v zásadě čím více, tím lépe), v takovém případě je snadné najít jedno z neobsazených míst registru pro „skrytí“ dat. Vysoké rychlosti této operace lze navíc dosáhnout pouze dobrými architektonickými řešeními, například úspěšnou logickou organizací pole registrů DSP. V našem kontextu se tato vlastnost DSP jeví také velmi atraktivní - hojnost interních registrů a jejich logická organizace výrazně zjednodušit vývoj kompilátorů z vysokoúrovňových jazyků (což mimochodem potvrzuje praxe - na ftp stránkách Texas Instruments najdete velmi zdařilé úpravy známého kompilátoru C gcc, který generuje kód pro DSP rodin TMS).

    DSP vděčí za svou jedinečnost nejsložitější operaci – indexování datových polí. Množství registrů a rychlá aritmetika jsou charakteristické například pro procesory RISC (a mnoho CISC). Ale „stroj“ pro generování adres přidělený samostatnému subsystému procesoru je vrcholem, který dává DSP specifičnost, ale v žádném případě neomezuje jejich rozsah. Právě naopak - jediný registr programového čítače v konvenčních procesorech zásadně nemůže překonat celý subsystém. Účinnost generátoru adres je jedna z nejvyšších důležité ukazatele, které určují efektivitu celého DSP jako celku. Téměř ve všech DSP pracují generátory adres „transparentně“ pro všechny ostatní procesorové subsystémy, tj. nezabírají čas počítače a nevyžadují pozastavení základních operací. Navíc díky použití generátoru adres se DSP vyznačují velmi rozvinutými metodami adresování (pro ty, kteří znají programovací jazyk C - je tak bohatý na triky s ukazateli, každý DSP obsahuje strojové instrukce, které implementují téměř všechny možné adresy operace tohoto jazyka).

    Pokud si vzpomeneme na zvýšené požadavky DSP na rychlost komunikace s externími zařízeními, pak v každém daném procesoru najdete výsledky seriózního návrhářského úsilí. Především se jedná o vysokorychlostní sériové I/O kanály. Nízká cena rozhraní v kombinaci s dostatečnou propustností pro reálné aplikace (například 40 Mbps) i přes jejich jednoduchost uspokojí téměř všechny potenciální potřeby vývojářů. Pro rozšíření možností konkrétních procesorů se používají jak synchronní (třívodičové: hodinová frekvence, data a hodinové impulsy), tak asynchronní (dvouvodičové, hodinové impulsy „maskované“ v datovém toku) sériové kanály.

    Nejzajímavější a neočekávané architektonické nálezy jsou soustředěny v paměťových subsystémech DSP. Naléhavá potřeba zahrnout do instrukčního systému instrukce jednocyklového násobení a akumulace vedla k tomu, že DSP nemá nic společného se „standardními“ univerzálními CPU. V jednom hodinovém cyklu totiž není možné současně číst nebo zapisovat data adresovaná na jedné jediné adresové sběrnici – k tomu potřebujete tolik adresových sběrnic, kolik je datových jednotek, které fungují jako příkazové operandy. Nejzajímavější je, že vývojáři DSP našli zcela netriviální a elegantní řešení tohoto problému i v případě použití obvyklé von Neumannovy paměťové architektury (jediná fyzická paměť pro program a data). "Proč vůbec používat von Neumannovu architekturu?" - ptáš se. Koneckonců, architektura Harvard existuje a je implementována v mnoha procesorech (oddělené fyzická paměť programy a data se samostatnými sběrnicemi), ale... Univerzální DSP musí být schopen pracovat s externí RAM - mnoho programů pro zpracování signálu je velmi složitých a pro uložení kódu, který je implementuje, je zapotřebí značné množství paměti RAM a mezilehlá data (většina moderních DSP má vestavěné řídicí mechanismy levné a rychlé SDRAM s kapacitami od 16 do 64 MB). Pro implementaci skutečné Harvardské architektury jsou zapotřebí dvě adresové a datové sběrnice, což s 32bitovým procesorem vede k 128 pinům – to je příliš drahé a příliš nepohodlné. V tomto balancování mezi výkonem a cenou našli architekti DSP nečekaně „rovnovážnou pozici“: interní architekturu Harvardu a upravenou von Neumannovu externí architekturu zároveň. Už jsme si zvykli, že procesory pracují na vyšší taktovací frekvenci než např. paměťová sběrnice, takže úprava Neumann DSP bude působit poněkud zvláštně: paměťová sběrnice pracuje s vyšší rychlostí (obvykle 4x) oproti vnitřní frekvence procesoru. To vám umožní provést několik přístupů do paměti v jedné periodě (cyklu) procesoru – jednoduše a efektivně a zároveň ušetřit na spoustě výstupů navíc.

    Nyní přirozeně vyvstává otázka: jak je dosaženo tak vysokého výkonu DSP, když procesor pracuje na snížené frekvenci? Dnes, téměř v celém odvětví DSP, existuje několik oblíbených technik a architektonických řešení, která hrají roli „násobení strukturálních hodin“. Zde neberou peníze podle počtu (ne podle megahertzů), ale podle dovednosti. Módní abstraktní termíny jako VLIW (velmi dlouhé strojové instrukce) úspěšně fungují již dlouhou dobu, například v procesorech Texas Instruments rodiny TMS320C6xxx, jejichž 256bitový instrukční kód je schopen „zapouzdřit“ až osm 32 -bitové operandy reprezentované čísly s pohyblivou a pevnou řádovou čárkou. K „recyklaci“ takových příkazů se používá několik (v případě TMS320C6xxx - šest) aritmeticko-logických zařízení a samostatné rychlé hardwarové násobiče. Nepoměrně levnější SHARC od Analog Devices (model ADSP-21065L, cena ve velkém množství je 10 $) používá tři samostatné ALU s vysokorychlostními násobiči (schopnými pracovat „paralelně“), samostatným hardwarovým „posunovačem“ dat (posunovač, poskytování „posunu“ obsahu bitů o počet bitů N specifikovaných jako operand doleva nebo doprava, což je ekvivalentní velmi rychlému násobení nebo dělení 2**N), vnitřní Harvardské a externí modifikované von Neumannovy architektury (RAM takt sběrnice až 60 MHz), vestavěná dvouportová paměť (s možností současného přístupu dvou procesorových subsystémů), laditelná konfigurace a nakonec velmi specifický (ale také mimořádně pohodlný) příkazový systém. Assembler SHARC připomíná dosti vysokoúrovňový programovací jazyk zaměřený na vývoj matematických aplikací (řeknu to takto: zjednodušený paralelní FORTRAN). I přes relativně „krátký“ bitový formát příkazu (69 bitů) můžete v assembleru 21065 napsat například následující jednocyklový příkaz:

    IF MS MRF=0; F6=(F2+F3)/2;

    (pokud je splněna podmínka „MRF je 0“, pak vypočítejte poloviční součet registrů F2 a F3 a výsledek vložte do registru F6).

    Výsledkem je, že desetidolarový čip provádí velmi náročný program 1024bodové komplexní rychlé Fourierovy transformace za ... 304 μs (pro srovnání vyzkoušejte tento úkol jako test vašeho Pentia).

    Návrat k PC

    Přirozeně, že v tak malém objemu článku nebylo možné provést hloubkový přehled různých DSP. Ale myslím, že hlavního cíle bylo dosaženo – dozvěděli jste se, že na světě existují rychlé, snadno programovatelné a levné procesory.

    Co se týče otázky o PC, zapomeňme na chvíli na všechny ty PCI a AGP sběrnice, grafické akcelerátory, monstrózní operační systémy. Zkusme si představit funkčně víceprocesorový počítač (jeden procesor je CPU, druhý je subsystém grafika-okna, třetí je subsystém smart input/output), pro který existují standardy pouze pro programovací jazyky, systémová volání CPU modul a příkazy vyměňované mezi jednotlivými moduly (například příkaz "otevřít okno 1024 x x 1024 pixelů" nebo "nakreslit čáru z aktuální pozice do bodu se souřadnicemi X, Y" zabalený do 32bitového slova. Když jsme sebrali tu drzost, představme si, že operační systém našeho PC nemá ponětí o žádném druhu úložných zařízení: pevné disky, CD-ROM a další, ale ví, co je ftp (implementace takové věci existuje a nazývá se Andrew Filesystem), podle toho je vstupně/výstupní modul „tenký“ ftp server.

    A nakonec propojme funkční moduly vysokorychlostním sériovým kanálem (například levná gigabitová 1355, o které jsem již mluvil). Pokud vše funguje (a funguje), doplním: všechny procesory v tomto počítači jsou DSP třídy SHARC (nebo výkonnější u špičkových modelů). Získáváme: architekturu, která je otevřená na úrovni specifikací, uvolňuje ruce výrobcům (nechte je soutěžit, jak chtějí UVNITŘ funkčních modulů, pokud se nedotýkají EXTERNÍCH intermodulárních specifikací), architekturu, která je zpočátku orientovaný na síť (souborový systém ftp nerozlišuje mezi místními a vzdálenými disky), velmi produktivní (i při „skromných“ výpočetních schopnostech 21056L jste někdy přemýšleli o tom, kolik zdrojů „shltá“ operační systém a grafický/okenní subsystém běžící na stejném procesoru), levné a hlavně SKUTEČNĚ SCHOPNÉ SPLŇOVAT ROSTOUCÍ POŽADAVKY MOBILNÍCH UŽIVATELŮ. Protože DSP je schopen provádět takové úkoly, jako je rozpoznávání řeči a vizuálního obrazu, syntéza řečových zpráv, rychlé hledání v databázích 3D vizualizace v reálném čase - téměř vše, čeho je dnes naše představivost schopna.


    "Vědecké a technické články"- výběr vědecké a technické články radioelektronická témata: nové produkty elektronické komponenty , vědecký vývoj v oblasti radiotechniky a elektroniky, články Podle příběhy vývoj radiotechniky a elektroniky, nov technologií a stavebních metod a rozvoj radioelektronické zařízení, slibné technologií budoucnost, aspekty a dynamika rozvoje všech oblastí radiotechniky a elektroniky, přehlídky výstav radioelektronická témata.

    Článek pojednává o hlavních parametrech digitálních signálových procesorů (DSP) a jejich vlivu na výběr vhodného čipu a také popisuje aktuální stav na trhu DSP.

    Při výběru obuvi chceme, aby byla módní, pohodlná a kvalitní, proto dáváme přednost známým značkám, těm společnostem, které jsou již známé a mají malý tržní podíl na trhu. poslední místa. Nyní se musíme rozhodnout: k čemu tyto boty potřebujeme? Pokud se chystáte na ranní běh, je lepší si koupit tenisky a na firemní večer boty. Co nosit na hory? V tomto případě potřebujete speciální silné boty s tvrdou podrážkou - vibramy. Co je horší než DSP? Při výběru digitálního signálového procesoru by bylo dobré mít představu o stávajícím trhu DSP, znát hlavní výrobce a směry vývoje jimi vytvářených procesorů.

    DSP procesory jsou určeny k provádění digitálního zpracování signálu - matematické manipulace s digitalizovanými signály. Jsou široce používány v bezdrátových systémech, zpracování zvuku a obrazu a řídicích systémech. S nárůstem počtu aplikací využívajících DSP a složitostí algoritmů zpracování na ně rostou i požadavky na zvýšení výkonu a vybavení rozhraním a dalšími specializovanými uzly. K dnešnímu dni se objevilo mnoho typů DSP, jak univerzálních, tak zaměřených na poměrně úzký okruh úkolů.

    Tabulka 1. Hlavní výrobci DSP a jejich podíly na trhu

    Vedoucí společnosti na trhu Jméno společnosti DSP podíl na trhu
    1 Texas Instruments 54,3%
    2 Freescale Semiconductor 14,1%
    3 Analogová zařízení 8,0%
    4 Polovodiče Philips 7,5%
    5 Agere Systems 7,3%
    6 Toshiba 4,9%
    7 DSP Group 2,2%
    8 NEC Electronics 0,6%
    9 Fujitsu 0,4%
    10 Intersil 0,3%

    Ostatní společnosti 0,5%

    Celkový 100,0%

    Samozřejmě žádný procesor není vhodný pro všechny aplikace. Prvním úkolem vývojáře je tedy vybrat procesor, který je nejvhodnější z hlediska výkonu, ceny, dostupnosti určitých periferií, spotřeby energie, jednoduchosti použití a dalších kritérií.

    Například pro takové přenosná zařízení, Jak Mobily, přenosné digitální přehrávače, cena, stupeň integrace a spotřeba energie jsou prvořadé a maximální výkončasto zbytečné (protože to obvykle znamená výrazné zvýšení spotřeby energie, aniž by poskytovalo výhody při zpracování relativně nízkorychlostních zvukových dat). Zároveň jsou pro hydroakustické nebo radarové systémy určujícími parametry rychlost provozu, přítomnost vysokorychlostních rozhraní a pohodlný vývojový systém a cena je až sekundárním kritériem.

    Kromě toho má v mnoha případech smysl vzít v úvahu tržní místo obsazené dodavatelem zpracovatele, protože Ne všichni výrobci vám mohou poskytnout řadu procesorů, které pokryjí všechny vaše potřeby. Současné rozdělení trhu mezi přední dodavatele (viz tabulka 1) ukazuje, že 4 společnosti na vrcholu seznamu dodávají více než 80 % všech DSP používaných na světě. Právě tyto společnosti jsou na ruském trhu nejznámější a jejich produkty jsou často zmiňovány v našem časopise, například hlavní charakteristiky DSP vyráběné společností Texas Instruments? Analog Devices byl uveden v # 7 pro rok 2005 a # 1 pro rok 2006.

    Je třeba mít na paměti, že výrobci DSP při navrhování nových čipů je jasně umisťují pro použití v určitých aplikacích. To ovlivňuje jejich architekturu, výkon a vybavení procesoru tou či onou sadou periferních modulů. Tabulka 2 ukazuje umístění DSP z pohledu jejich tvůrců.

    Tabulka 2. Oblasti použití rodin signálových procesorů od různých výrobců

    Zpracování videa, video dohled, digitální fotoaparáty, 3D grafika TMS320DM64x/DaVinci, TMS320C64xx, TMS320C62xx (TI), PNX1300, PNX1500, PNX1700 (Philips), MPC52xx (Freescale)
    Zpracování zvuku, rozpoznávání řeči, syntéza zvuku TMS320C62xx, TMS320C67xx (TI), SHARC (analogová zařízení)
    Přenosná mediální zařízení TMS320C54xx, TMS320C55xx (TI), Blackfin (analogová zařízení)
    Bezdrátová komunikace, telekomunikace, modemy, síťová zařízení TMS320C64xx, TMS320C54xx, TMS320C55xx (TI), MPC7xxx, MPC86xx, MPC8xx PowerQUICC I, MPC82xx PowerQUICC II, MPC83xx PowerQUICC II Pro, MPC85xx Freescale zařízení BlackQUICC III, 1Xnager LogSHAR0fin III Filip s)
    Řízení pohonů, přeměna energie, automobilová elektronika, domácí potřeby, kancelářské vybavení TMS320C28xx, TMS320C24xx (TI), ADSP-21xx (analogová zařízení), MPC55xx, MPC55xx (Freescale)
    Medicína, biometrie, měřicí systémy TMS320C62xx, TMS320C67xx, TMS320C55xx, TMS320C28xx (TI), TigerSHARC, SHARC (analogová zařízení)

    Formát dat a bitová hloubka

    Jednou z hlavních charakteristik digitálních signálových procesorů je formát zpracovávaných dat.

    Všechny DSP pracují buď s celými čísly, nebo s čísly s pohyblivou řádovou čárkou, přičemž celá čísla mají šířku 16 nebo 32 bitů a čísla s pohyblivou řádovou čárkou mají šířku 32 bitů Při výběru formátu dat mějte na paměti následující: Data DSP s celočíselnou čárkou (nebo data s pevnou řádovou čárkou). ) je obvykle levnější a poskytuje větší absolutní přesnost se stejnou bitovou hloubkou (protože všech 32 bitů je přiděleno mantise v 32bitovém procesoru s pevnou řádovou čárkou, ale pouze 24 v procesoru s pohyblivou řádovou čárkou). Přitom dynamický rozsah signálů, se kterými mohou procesory pracovat bez zkreslení, je u procesorů s pevnou řádovou čárkou mnohem užší (o několik desetinných řádů). S relativně jednoduchými algoritmy zpracování to nemusí vadit, protože Dynamický rozsah skutečných vstupních signálů je často menší než to, co umožňuje DSP, ale v některých případech může dojít k chybám přetečení během provádění programu. To vede k zásadně nevyhnutelnému nelineární zkreslení výstupní signál, podobný zkreslení v důsledku omezení v analogových obvodech.

    Proto je při výběru DSP nutné pečlivě analyzovat algoritmus zpracování a vstupní signály, aby se správně vybrala bitová hloubka a typ aritmetiky. Někdy, pokud není možné vybrat vhodný procesor s plovoucí desetinnou čárkou (kvůli jeho vyšší ceně nebo spotřebě energie), používá se DSP s pevnou řádovou čárkou a komprese dynamického rozsahu zpracovávaných signálů (komprese), což však vede k zvýšení složitosti algoritmu zpracování signálu a zvýšení požadavků na výkon. Samozřejmě můžete na procesoru emulovat operace s plovoucí desetinnou čárkou s celočíselnou aritmetikou nebo přejít na zpracování dvoubitových čísel, ale to také výrazně komplikuje program a výrazně snižuje výkon.

    Navzdory všem omezením většina vestavěných aplikací používá procesory s pevným bodem kvůli nižší ceně a spotřebě energie.

    Zvýšení počtu bitů zvyšuje náklady, velikost matrice a počet požadovaných pinů procesoru a také množství požadované externí paměti. Vývojáři se proto snaží použít krystal s co nejnižší bitovou kapacitou.

    Stojí za zmínku, že šířka dat a bitová hloubka instrukce procesoru nejsou vždy ekvivalentní.

    Rychlost

    Klíčovým parametrem při výběru procesoru je rychlost. Ovlivňuje dobu zpracování vstupní signál a proto určuje jeho maximální frekvenci. Jednou z nejčastějších chyb, kterých se vývojář dopouští, je srovnávání frekvence hodin a výkonu, což je ve většině případů špatně.

    Velmi často se rychlost DSP udává v MIPS (miliony instrukcí za sekundu). Toto je nejsnáze měřitelný parametr.

    Problém s porovnáváním rychlosti různých DSP je však v tom, že procesory mají různé systémy příkazy a různé procesory vyžadují různý počet těchto příkazů ke spuštění stejného algoritmu. Kromě toho někdy vyžaduje jeden procesor k provádění různých příkazů. různé množství synchronizační cykly. Výsledkem je, že procesor s rychlostí 1000 MIPS může být výrazně pomalejší CPU rychlostí 300 MIPS, zejména s různými bitovými hloubkami.

    Jedním z řešení tohoto problému je porovnat procesory na základě jejich rychlosti při provádění určitých operací, jako jsou operace multiply-accumulate (MAC). Rychlost takových operací je kritická pro algoritmy, které používají digitální filtrování, korelaci a Fourierovy transformace. Bohužel, takové hodnocení také neposkytuje kompletní informace o skutečné rychlosti procesoru.

    Nejpřesnějším odhadem je rychlost provádění určitých algoritmů - například filtrování FIR a IIR, ale to vyžaduje vývoj vhodných programů a pečlivou analýzu výsledků testů.

    Rýže. 1 Porovnání rychlosti moderních DSP od různých výrobců

    Existují společnosti, které analyzují a porovnávají procesory na základě jejich hlavních charakteristik, včetně rychlosti. Lídrem mezi takovými společnostmi je BDTI - Berkeley Design Technology, Inc. (www.bdti.com). Jako příklad ukazuje obrázek 1 srovnání rychlosti moderních DSP od různých výrobců.



    
    Horní