Kenmerken van signaalprocessors. DSP - personal computer: kan niet worden

Digitale signaalprocessor

DSP (D digitaal S ignal P rocessor) (vertaald uit het Engels, betekent een digitale signaalprocessor (DSP) of, het wordt ook wel een signaalmicroprocessor (SMP) genoemd, waarvan de architectuur is geoptimaliseerd voor de operationele behoeften van digitale signaalverwerking) - een gespecialiseerde microprocessor, het kenmerk van dat is het stroomkarakter dat grote hoeveelheden gegevens in realtime verwerkt en meestal met intensieve gegevensuitwisseling met andere externe apparaten. (Het is noodzakelijk voor het converteren van signalen die in de vorm van getallen worden gepresenteerd, meestal in realtime).

Realtime schaal(real operating time, Real Time Scale) is een bedrijfsmodus van het apparaat waarin de registratie en rekenkundige verwerking (en, indien nodig, analyse, visualisatie, opslag, systematisering, synthese en verzending via communicatiekanalen) van gegevens wordt uitgevoerd zonder verlies van informatie ontvangen van haar bron

Beschrijving

DSP-doel:

Het doel van een DSP is om typisch continue real-world analoge signalen te meten, filteren en/of comprimeren. De meeste microprocessors voor algemene doeleinden kunnen ook met succes DSP-algoritmen uitvoeren, maar een speciale DSP heeft meestal een betere mate van efficiëntie, en is daarom meer geschikt voor draagbare apparaten zoals mobiele telefoons vanwege stroombeperkingen. DSP maakt vaak gebruik van een speciale geheugenarchitectuur die in staat is om meerdere data en/of instructies tegelijk op te halen.

Typisch digitaal verwerkingssysteem

Digitale verwerking

Algoritmen voor digitale signaalverwerking vereisen gewoonlijk een groot aantal wiskundige bewerkingen die snel en herhaaldelijk moeten worden uitgevoerd op een aantal gegevensmonsters. Signalen (misschien van audio of video) worden continu omgezet van analoog naar digitaal, in digitale vorm gebruikt en vervolgens weer omgezet naar analoog. Veel DSP-toepassingen hebben latentielimieten; die. Om het systeem te laten functioneren, moet de DSP-bewerking op een bepaald tijdstip worden voltooid en vertraagd, de verwerking is niet levensvatbaar.

DSP-voordelen

De meeste microprocessors en besturingssystemen voor algemeen gebruik kunnen met succes DSP-algoritmen uitvoeren, maar zijn niet geschikt voor gebruik in draagbare apparaten zoals mobiele telefoons vanwege beperkingen op het gebied van energie-efficiëntie. En een speciale digitale signaalprocessor biedt echter meestal een goedkopere oplossing met betere prestaties, lagere latentie en zonder de noodzaak van speciale koeling of grotere batterijen.

architectuur

De DSP-architectuur is met name geoptimaliseerd voor digitale signaalverwerking. Sommige functies worden ook het meest ondersteund, zoals een applicatieprocessor of microcontroller, aangezien signaalverwerking zelden de enige taak van het systeem is. Enkele nuttige optimalisatiefuncties van DSP-algoritmen worden hieronder beschreven.

Architectuur en zijn kenmerken

De DSP-architectuur heeft een aantal kenmerken, in tegenstelling tot microprocessors voor algemene doeleinden. Het bestaat uit de maximale versnelling van de uitvoering van soortgelijke taken voor digitale signaalverwerking (signaal zoeken, Fourier-transformatie, enz.). In de wiskunde worden dergelijke problemen teruggebracht tot eenvoudigere volgens de "verdeel en heers"-regel. In ons geval is dit type subtaken het elementgewijze product van elementen van multicomponentvectoren van reële getallen (dit zijn getallen die kunnen worden geschreven als een eindige of oneindige (periodieke of niet-periodieke) decimale breuk.) En de daaropvolgende sommatie van de productresultaten.

Op basis hiervan zijn processors speciaal geoptimaliseerd voor bepaalde bewerkingen (in ons geval voor vermenigvuldigen en optellen). Als gevolg hiervan nemen de productiviteit en prestaties toe. DSP's zijn voornamelijk gericht op meervoudige vermenigvuldiging met een zeer snelle berekening van de adressen van de vermenigvuldigde array-elementen:

  1. "Vermenigvuldiging en accumulatie" (meestal geïmplementeerd in hardware en uitgevoerd in één machinecyclus) (M = M + X × Y), waarbij M, X en Y elementen zijn van echte arrays met automatische berekening van de adressen van array-elementen. (MAC)
  2. Hardware-implementatie van meerdere herhalingen van een bepaalde reeks opdrachten.
  3. Gebruik van meerdere DSP-geheugentoegangspoorten voor gelijktijdige (in één machinecyclus) selectie van instructies en twee bewerkingsargumenten voor snelle vermenigvuldiging en accumulatie.
  4. Mogelijkheid tot vector-pipelineverwerking met behulp van adresreeksgeneratoren.

maar de architectuur veranderde vanwege de beperkte hardwarebronnen van de eerste DSP's. Het geheugen was verdeeld in onafhankelijke segmenten, het deterministische werk van instructies (de uitvoeringstijd is bekend) gaf aanleiding tot het plannen van werk in realtime, vanwege de kleine pijplijn vinden ongeautoriseerde overgangen veel sneller plaats dan in universele, een zeldzame set registers en instructies.

Software architectuur

Volgens de normen van algemene processors zijn DSP-instructiesets vaak onjuist. Een implicatie voor software-architectuur is dat met de hand geoptimaliseerde assembleertaalroutines doorgaans worden verpakt in bibliotheken voor hergebruik, in plaats van te vertrouwen op geavanceerde compilertechnologieën om essentiële algoritmen te verwerken.

Digitale signaalprocessors gebruiken soms hardgecodeerde tijdcodering om de hardware te vereenvoudigen en de coderingsefficiëntie te vermenigvuldigen. Meerdere rekeneenheden kunnen vereisen dat de geheugenarchitectuur meerdere uitvoeringen per instructiecyclus ondersteunt. Toegewijde lusbesturing, zoals architecturale ondersteuning voor het uitvoeren van meerdere besturingswoorden in een zeer strakke lus, geen overhead voor opdrachtaanroepen of exit-tests.

Hardware-architectuur

Geheugenarchitectuur

DSP is meestal geoptimaliseerd voor het streamen van data en maakt gebruik van een speciale geheugenarchitectuur die in staat is om meerdere data en/of instructies tegelijk te selecteren, zoals de Harvard-architectuur of de gewijzigde von Neumann-architectuur, die gebruik maakt van een apart programma en datageheugen ( soms zelfs parallelle toegang tot data van meerdere bussen).

De DSP kan soms vertrouwen op code-ondersteuning om zich bewust te zijn van cachehiërarchieën en bijbehorende latentie. Dit is de afweging die zorgt voor betere prestaties. Daarnaast wordt DMA veel gebruikt.

Adressering en virtueel geheugen

DSPS gebruikt vaak multitasking-besturingssystemen, maar biedt geen ondersteuning of bescherming voor virtueel geheugen. Besturingssystemen die gebruikmaken van virtueel geheugen hebben meer tijd nodig om tussen processen te schakelen, waardoor de latentie toeneemt.

  • Modulaire adresseringshardware
    • Maakt implementatie van circulaire buffers mogelijk, zonder te hoeven testen op verpakkingen
  • Bit-reverse adressering, speciale adresseringsmethode
    • Nuttig voor het berekenen van de Fast Fourier Transform
  • Uitzondering geheugenbeheerblok
  • Geheugenadres rekenmachine

Voorbeelden van: TMS320Cxxxx, ADSP-21XX

Rijst. 1. Architectuur van de ADSP-218x-processorfamilie

DSP-functies

DSP opvallende kenmerken:

  • willekeurig toegankelijk geheugen, alleen-lezen geheugen;
  • interfaces zowel serieel als parallel;
  • onderbrekingsafhandelingsschema;
  • de centrale controlekamer is geoptimaliseerd voor repetitieve wiskundige bewerkingen in realtime.

Basisparameters van DSP

De belangrijkste parameters van de DSP:

  1. Rekenkundig type (vast / zwevend punt).
  2. Bitdiepte van gegevens (respectievelijk voor vast / zwevend - 16/32 bits).
  3. Prestaties op hoge snelheid.
  4. Klokfrequentie (intern en/of extern) en Command Cycle Time (tijdstip van uitvoering van één stap van het commando).
  5. Het aantal uitgevoerde opdrachten per tijdseenheid.
  6. Het aantal bewerkingen dat per tijdseenheid wordt uitgevoerd (MIPS).
  7. Het aantal drijvende-kommabewerkingen dat per tijdseenheid wordt uitgevoerd.
  8. Het aantal multi-accumulerende bewerkingen dat per tijdseenheid wordt uitgevoerd.
  9. Types (RAM en flashgeheugen) en de hoeveelheid intern geheugen (hoeveel data de DSP kan verwerken zonder toegang tot extern geheugen).
  10. De adresseerbare hoeveelheid geheugen.
  11. Het aantal en de parameters van de invoer-uitvoerpoorten.
  12. Samenstelling van interne extra apparaten (timers, compressoren, enz.).
  13. Voedingsspanning en stroomverbruik.
  14. Samenstelling en functionaliteit van ontwikkel- en ondersteuningstools.
  15. Lijst met programmeertalen waarvoor er compilers zijn voor dit systeem;
  16. Beschikbaarheid en mogelijkheden van tools voor het debuggen van kant-en-klare programma's;
  17. Beschikbaarheid van documentatie en technische ondersteuning;
  18. De aanwezigheid van bibliotheken met standaardroutines en wiskundige functies;
  19. Beschikbaarheid, beschikbaarheid en mogelijkheden van compatibele apparaten - ADC, DAC, vermogenscontrollers, enz.
  20. Toegestane omgevingsparameters.
  21. Anderen, afhankelijk van de bestemming.

Toepassingen

Er zijn nogal wat gebieden van DSP-toepassing.

DSP-toepassingen:

  1. Communicatie (informatiecodering en/of kanaalmultiplexing (spectraal))
  2. Iets herkennen
  3. Spectrumanalysator (een apparaat voor het observeren en meten van de relatieve verdeling van de energie van elektrische (elektromagnetische) trillingen in een frequentieband), enz.

Vaak zijn dit gebieden waar een snelle verwerking van eventuele signalen (informatie) vereist is.

Verhaal

Vóór de komst van DSP-chips werden veel DSP-toepassingen geïmplementeerd met behulp van gesegmenteerde microprocessors. BS Chip (ontlading modulair kristal) AMD 2901 met zijn set componenten was populair. AMD creëerde ook vergelijkbare modellen, maar heel vaak werden de karakteristieke kenmerken van een bepaald ontwerp gevonden. Deze sectionele architecturen bevatten soms een perifere multiplier-chip. Voorbeelden van deze multipliers waren een reeks van TRW, waaronder de TDC1008 en TDC1010, waarvan sommige een batterij bevatten om de noodzakelijke multi-accumulate (MAC)-functie te bieden.

1976. Richard Wiggins introduceerde het Speak & Spell-concept bij Paul Bradlove, Larry Brantingham en Gene Franz van het Texas Instruments Research Center in Dallas. Twee jaar later, in 1978, creëerden ze de eerste "Speak & Spell" met een technologisch middelpunt, de TMS5100, als de eerste digitale signaalprocessor in de sector. Dit bracht ook andere stappen met zich mee, namelijk de eerste microschakeling, om lineaire voorspellingscodering te gebruiken om spraaksynthese uit te voeren.

Op zijn beurt Intel 1978. produceerde een "analoge signaalprocessor" -2920. Het bevatte een omzetter van analoog naar digitaal en vice versa, op een microcircuit met een ingebouwde signaalprocessor, maar het had geen hardwarevermenigvuldiger en was niet gewild in de markt. In 1979. AMI heeft de verwerkingsrandapparatuur-S2811 uitgebracht. Het is ontworpen als een microprocessor-verbindingsapparaat, met de mogelijkheid om door de eigenaar aan te passen. De S2811 was evenmin gewild in de markt.

In 1980. Eerste standalone processor gerealiseerd: de DSP - NEC µPD7720 en AT&T DSP1 - werden gepresenteerd op de MC (International Conference) van Solid State Circuits "80. Deze twee processors hebben onderzoek in PSTN-telecommunicatie geïnspireerd.

AltamiraDX1 is een andere vroege DSP-gebruikte quadrafonische integer-pijplijnen met vertraagde tikken en vertakkingsvoorspellingen.

De TMS32010 is een andere DSP vervaardigd door Texas Instruments (TI) en geïntroduceerd in 1983 tot een groot succes. Het was gebaseerd op de Harvard-architectuur en bevatte dus individuele instructies en gegevensgeheugen. Het had een speciaal instructiesysteem met instructies: load-accumulate of multi-accumulate. Hij wist hoe hij met 16-bits getallen moest werken en het kostte 390 ns om daarmee te vermenigvuldigen. TI is nu de marktleider in DSP's voor algemene doeleinden.


"Wetenschappelijke en technische artikelen"- selectie wetenschappelijke en technische artikelen radio-elektronisch onderwerpen: nieuwe items elektronische componenten, wetenschappelijke ontwikkelingen op het gebied van radiotechniek en elektronica, Lidwoord Aan verhalen ontwikkeling van radiotechniek en elektronica, nieuw technologieën en constructiemethoden en ontwikkeling radio-elektronisch apparaten veelbelovend technologieën van de toekomst, aspecten en dynamiek van de ontwikkeling van alle gebieden van radiotechniek en elektronica, tentoonstellingsrecensies radio-elektronisch onderwerpen.

Het artikel bespreekt de belangrijkste parameters van digitale signaalprocessors (DSP) en hun impact op de keuze van een geschikte microschakeling, en beschrijft ook de huidige toestand van de DSP-markt.

Als we schoenen kiezen, willen we dat ze modieus, comfortabel en van hoge kwaliteit zijn, daarom geven we de voorkeur aan bekende merken, die bedrijven die al bekend zijn en ver van de laatste plaatsen op de markt bezetten. Nu moeten we beslissen: waar hebben we deze schoenen voor nodig? Als u 's ochtends wilt joggen, is het beter om sneakers te kopen en voor een zakelijke avond schoenen. En wat te dragen in de bergen? In dit geval heeft u speciale stevige schoenen met stevige zolen nodig - vibrams. En wat is slechtere DSP? Als u een digitale signaalprocessor kiest, zou het leuk zijn om een ​​idee te hebben van de bestaande DSP-markt, om de belangrijkste fabrikanten en de ontwikkelingsrichtingen van de processors die ze maken te kennen.

DSP-processors zijn ontworpen voor digitale signaalverwerking - wiskundige manipulatie van gedigitaliseerde signalen. Ze worden veel gebruikt in draadloze systemen, audio- en videoverwerking, besturingssystemen. Met een toename van het aantal toepassingen dat DSP gebruikt en de complexiteit van verwerkingsalgoritmen, nemen ook de vereisten toe op het gebied van prestatieverbetering en uitrusting met interface en andere gespecialiseerde knooppunten. Inmiddels zijn er veel soorten DSP's verschenen, zowel universeel als gericht op een vrij beperkt aantal taken.

Tabel 1. Grote DSP-fabrikanten en hun marktaandelen

Marktleiders Bedrijfsnaam DSP-marktaandeel
1 Texas Instrumenten 54,3%
2 Freescale halfgeleider 14,1%
3 Analoge apparaten 8,0%
4 Philips Halfgeleiders 7,5%
5 Agere Systems 7,3%
6 Toshiba 4,9%
7 DSP-groep 2,2%
8 NEC Elektronica 0,6%
9 Fujitsu 0,4%
10 Intersil 0,3%

Andere bedrijven 0,5%

Totaal 100,0%

Uiteraard kan geen van de processors geschikt zijn voor alle toepassingen. Daarom is de eerste taak van een ontwikkelaar om een ​​processor te kiezen die het meest geschikt is op het gebied van prestaties, prijs, beschikbaarheid van bepaalde randapparatuur, stroomverbruik, gebruiksgemak en andere criteria.

Voor draagbare apparaten zoals mobiele telefoons, draagbare digitale spelers zijn bijvoorbeeld kosten, integratie en stroomverbruik van het grootste belang, en zijn maximale prestaties vaak niet nodig (omdat dit meestal een aanzienlijke toename van het stroomverbruik met zich meebrengt zonder verwerkingsvoordelen te bieden relatief lage bitsnelheid audio gegevens). Tegelijkertijd zijn voor hydro-akoestische of radarsystemen de bepalende parameters de snelheid van werken, de beschikbaarheid van hogesnelheidsinterfaces en een handig ontwikkelingssysteem, en de kosten zijn een secundair criterium.

Bovendien is het in veel gevallen zinvol om rekening te houden met de marktplaats die de verwerkerleverancier inneemt, aangezien Niet alle fabrikanten kunnen u een reeks processors bieden om aan al uw behoeften te voldoen. De huidige verdeling van de markt over de leidende leveranciers (zie tabel 1) laat zien dat de 4 bedrijven bovenaan de lijst meer dan 80% van alle DSP's die in de wereld worden gebruikt, leveren. Het zijn deze bedrijven die het meest bekend zijn op de Russische markt en hun producten worden vaak genoemd in ons magazine, wat zijn bijvoorbeeld de belangrijkste kenmerken van een Texas Instruments DSP? Analoge apparaten zijn beoordeeld in # 7 2005 en # 1 2006.

Er moet aan worden herinnerd dat DSP-fabrikanten, bij het ontwerpen van nieuwe microschakelingen, ze vrij duidelijk positioneren voor gebruik in bepaalde toepassingen. Dit heeft een impact op hun architectuur, en op prestaties, en op het uitrusten van de processor met een of andere set randmodules. Tabel 2 toont de positionering van DSP's vanuit het oogpunt van hun makers.

Tabel 2. Toepassingsgebieden van families van signaalprocessors van verschillende fabrikanten

Videoverwerking, videobewaking, digitale camera's, 3D-graphics TMS320DM64x / DaVinci, TMS320C64xx, TMS320C62xx (TI), PNX1300, PNX1500, PNX1700 (Philips), MPC52xx (Freescale)
Audioverwerking, spraakherkenning, geluidssynthese TMS320C62xx, TMS320C67xx (TI), SHARC (analoge apparaten)
Draagbare media-apparaten TMS320C54xx, TMS320C55xx (TI), Blackfin (analoge apparaten)
Draadloze communicatie, telecommunicatie, modems, netwerkapparaten TMS320C64xx, TMS320C54xx, TMS320C55xx (TI), MPC7xxx, MPC86xx, MPC8xx PowerQUICC I, MPC82xx PowerQUICC II, MPC83xx PowerQUICC II Pro, MPC85xx PowerQUICC III (Freescale), Blackfin, Tiger13SHARC (PNX00)
Aandrijfregeling, stroomconversie, auto-elektronica, huishoudelijke artikelen, kantoorapparatuur TMS320C28xx, TMS320C24xx (TI), ADSP-21xx (analoge apparaten), MPC55xx, MPC55xx (Freescale)
Geneeskunde, biometrie, meetsystemen TMS320C62xx, TMS320C67xx, TMS320C55xx, TMS320C28xx (TI), TigerSHARC, SHARC (analoge apparaten)

Gegevensformaat en bitbreedte

Een van de belangrijkste kenmerken van digitale signaalprocessors is het formaat van de gegevens die worden verwerkt.

Alle DSP's werken met gehele getallen of met getallen in drijvende-komma-indeling, en voor gehele getallen is de bitbreedte 16 of 32 en voor drijvende-kommagetallen 32. Houd bij het kiezen van een gegevensindeling rekening met het volgende: DSP met gehele getallen gegevens (of gegevens met een vast punt) zijn meestal goedkoper en bieden een grotere absolute nauwkeurigheid met dezelfde bitdiepte (aangezien alle 32 bits worden toegewezen aan de mantisse in een 32-bits vaste-puntprocessor en in een drijvende-kommaprocessor - slechts 24). Tegelijkertijd is het dynamisch bereik van signalen waarmee processors zonder vervorming kunnen werken veel kleiner bij processors met een vast punt (met meerdere decimalen). Met relatief eenvoudige verwerkingsalgoritmen maakt dit misschien niet uit, omdat: het dynamische bereik van de werkelijke ingangssignalen is vaak kleiner dan de DSP toestaat, maar in sommige gevallen kunnen overloopfouten optreden tijdens de uitvoering van het programma. Dit leidt tot fundamenteel fatale niet-lineaire vervormingen in het uitgangssignaal, vergelijkbaar met clipping-vervorming in analoge circuits.

Daarom is het bij het kiezen van een DSP noodzakelijk om het verwerkingsalgoritme en de invoersignalen zorgvuldig te analyseren voor de juiste keuze van bitdiepte en type rekenkunde. Soms, wanneer het onmogelijk is om een ​​geschikte drijvende-kommaprocessor te selecteren (vanwege de hogere kosten of het stroomverbruik), worden een vast-komma-DSP en compressie van het dynamische bereik van de verwerkte signalen (compressie) gebruikt, maar dit leidt tot een toename in de complexiteit van het signaalverwerkingsalgoritme en verhoogt de snelheidsvereisten. Natuurlijk kunt u drijvende-kommabewerkingen op een processor emuleren met gehele rekenkunde of overschakelen naar het verwerken van dubbelcijferige getallen, maar dit maakt het programma ook aanzienlijk ingewikkelder en vermindert de prestaties aanzienlijk.

Ondanks alle beperkingen gebruiken de meeste embedded applicaties fixed-point processors vanwege de lagere prijs en het lagere stroomverbruik.

Door het aantal bits te verhogen, nemen de kosten, de grootte van de matrijs en het aantal benodigde processorpinnen toe, evenals de benodigde hoeveelheid extern geheugen. Daarom streven ontwikkelaars ernaar een kristal te gebruiken met de laagst mogelijke bitdiepte.

Opgemerkt moet worden dat de bitness van gegevens en de bitness van processorinstructies niet altijd equivalent zijn.

Snelheid

De belangrijkste parameter bij het kiezen van een processor is snelheid. Het beïnvloedt de verwerkingstijd van het ingangssignaal en bepaalt daarom de maximale frequentie. Een van de meest voorkomende fouten van ontwikkelaars is de identificatie van klokfrequentie en -snelheid, wat in de meeste gevallen verkeerd is.

Heel vaak wordt de DSP-snelheid aangegeven in MIPS (miljoenen instructies per seconde). Dit is de gemakkelijkst te meten parameter.

Het probleem van het vergelijken van de snelheid van verschillende DSP's is echter dat de processors verschillende instructiesystemen hebben en dat verschillende processors een verschillend aantal van deze instructies nodig hebben om hetzelfde algoritme uit te voeren. Bovendien is soms een ander aantal klokcycli nodig om verschillende instructies op dezelfde processor uit te voeren. Hierdoor kan een processor met een snelheid van 1000 MIPS wel eens meerdere malen langzamer blijken te zijn dan een processor met een snelheid van 300 MIPS, zeker bij verschillende bitgroottes.

Een oplossing voor dit probleem is het vergelijken van processors op de snelheid waarmee ze bepaalde bewerkingen uitvoeren, zoals bewerkingen met meerdere accumulatie (MAC). De snelheid van dergelijke bewerkingen is van cruciaal belang voor algoritmen die gebruikmaken van digitale filtering, correlatie en Fourier-transformaties. Helaas geeft een dergelijke schatting ook geen volledige informatie over de werkelijke snelheid van de processor.

De meest nauwkeurige beoordeling van de uitvoeringssnelheid van bepaalde algoritmen - bijvoorbeeld FIR- en IIR-filtering, maar dit vereist de ontwikkeling van geschikte programma's en zorgvuldige analyse van testresultaten.

Rijst. 1 Vergelijking van de snelheid van moderne DSP's van verschillende fabrikanten

Er zijn bedrijven die processors analyseren en vergelijken op basis van hun belangrijkste kenmerken, waaronder snelheid. De leider onder dergelijke bedrijven is BDTI - Berkeley Design Technology, Inc. (www.bdti.com). Als voorbeeld toont figuur 1 een snelheidsvergelijking van moderne DSP's van verschillende fabrikanten.

Het artikel bespreekt de belangrijkste parameters van digitale signaalprocessors (DSP) en hun impact op de keuze van een geschikte microschakeling, en beschrijft ook de huidige toestand van de DSP-markt.

Als we schoenen kiezen, willen we dat ze modieus, comfortabel en van hoge kwaliteit zijn, daarom geven we de voorkeur aan bekende merken, die bedrijven die al bekend zijn en ver van de laatste plaatsen op de markt bezetten. Nu moeten we beslissen: waar hebben we deze schoenen voor nodig? Als u 's ochtends wilt joggen, is het beter om sneakers te kopen en voor een zakelijke avond schoenen. En wat te dragen in de bergen? In dit geval heeft u speciale stevige schoenen met stevige zolen nodig - vibrams. En wat is slechtere DSP? Als u een digitale signaalprocessor kiest, zou het leuk zijn om een ​​idee te hebben van de bestaande DSP-markt, om de belangrijkste fabrikanten en de ontwikkelingsrichtingen van de processors die ze maken te kennen.

DSP-processors zijn ontworpen voor digitale signaalverwerking - wiskundige manipulatie van gedigitaliseerde signalen. Ze worden veel gebruikt in draadloze systemen, audio- en videoverwerking, besturingssystemen. Met een toename van het aantal toepassingen dat DSP gebruikt en de complexiteit van verwerkingsalgoritmen, nemen ook de vereisten toe op het gebied van prestatieverbetering en uitrusting met interface en andere gespecialiseerde knooppunten. Inmiddels zijn er veel soorten DSP's verschenen, zowel universeel als gericht op een vrij beperkt aantal taken.

Uiteraard kan geen van de processors geschikt zijn voor alle toepassingen. Daarom is de eerste taak van een ontwikkelaar om een ​​processor te kiezen die het meest geschikt is op het gebied van prestaties, prijs, beschikbaarheid van bepaalde randapparatuur, stroomverbruik, gebruiksgemak en andere criteria.

Voor draagbare apparaten zoals mobiele telefoons, draagbare digitale spelers zijn bijvoorbeeld kosten, integratie en stroomverbruik van het grootste belang, en maximale prestaties zijn vaak niet nodig (omdat dit meestal een aanzienlijke toename van het stroomverbruik met zich meebrengt zonder verwerkingsvoordelen te bieden relatief lage bitsnelheid audio gegevens).

Tegelijkertijd zijn voor hydro-akoestische of radarsystemen de bepalende parameters de snelheid van werken, de beschikbaarheid van hogesnelheidsinterfaces en een handig ontwikkelingssysteem, en de kosten zijn een secundair criterium. Bovendien is het in veel gevallen zinvol om rekening te houden met de marktplaats die de verwerkerleverancier inneemt, aangezien Niet alle fabrikanten kunnen u een reeks processors bieden om aan al uw behoeften te voldoen. De huidige verdeling van de markt over de leidende leveranciers (zie tabel 1) laat zien dat de 4 bedrijven bovenaan de lijst meer dan 80% van alle DSP's die in de wereld worden gebruikt, leveren. Het zijn deze bedrijven die het meest bekend zijn op de Russische markt en hun producten worden vaak genoemd.

Tabel 1. Grote DSP-fabrikanten en hun marktaandelen

Marktleiders Bedrijfsnaam DSP-marktaandeel
1 Texas Instrumenten 54,3%
2 Freescale halfgeleider 14,1%
3 Analoge apparaten 8,0%
4 Philips Halfgeleiders 7,5%
5 Agere Systems 7,3%
6 Toshiba 4,9%
7 DSP-groep 2,2%
8 NEC Elektronica 0,6%
9 Fujitsu 0,4%
10 Intersil 0,3%
Andere bedrijven 0,5%
Totaal 100,0%

Er moet aan worden herinnerd dat DSP-fabrikanten, bij het ontwerpen van nieuwe microschakelingen, ze vrij duidelijk positioneren voor gebruik in bepaalde toepassingen. Dit heeft een impact op hun architectuur, en op prestaties, en op het uitrusten van de processor met een of andere set randmodules. Tabel 2 toont de positionering van DSP's vanuit het oogpunt van hun makers.

Tabel 2. Toepassingsgebieden van families van signaalprocessors van verschillende fabrikanten

Videoverwerking, videobewaking, digitale camera's, 3D-graphics TMS320DM64x / DaVinci, TMS320C64xx, TMS320C62xx (TI), PNX1300, PNX1500, PNX1700 (Philips), MPC52xx (Freescale)
Audioverwerking, spraakherkenning, geluidssynthese TMS320C62xx, TMS320C67xx (TI), SHARC (analoge apparaten)
Draagbare media-apparaten TMS320C54xx, TMS320C55xx (TI), Blackfin (analoge apparaten)
Draadloze communicatie, telecommunicatie, modems, netwerkapparaten TMS320C64xx, TMS320C54xx, TMS320C55xx (TI), MPC7xxx, MPC86xx, MPC8xx PowerQUICC I, MPC82xx PowerQUICC II, MPC83xx PowerQUICC II Pro, MPC85xx PowerQUICC III (Freescale), Blackfin, Tiger13SHARC (PNX00)
Aandrijfregeling, stroomconversie, auto-elektronica, huishoudelijke artikelen, kantoorapparatuur TMS320C28xx, TMS320C24xx (TI), ADSP-21xx (analoge apparaten), MPC55xx, MPC55xx (Freescale)
Geneeskunde, biometrie, meetsystemen TMS320C62xx, TMS320C67xx, TMS320C55xx, TMS320C28xx (TI), TigerSHARC, SHARC (analoge apparaten)

Gegevensformaat en bitbreedte

Een van de belangrijkste kenmerken van digitale signaalprocessors is het formaat van de gegevens die worden verwerkt. Alle DSP's werken met gehele getallen of met getallen in drijvende-komma-indeling, en voor gehele getallen is de bitbreedte 16 of 32 en voor drijvende-kommagetallen 32. Houd bij het kiezen van een gegevensindeling rekening met het volgende: DSP met gehele getallen gegevens (of gegevens met een vast punt) zijn meestal goedkoper en bieden een grotere absolute nauwkeurigheid met gelijke bitdiepte (aangezien alle 32 bits worden toegewezen aan de mantisse in een 32-bits vaste-kommaprocessor en in een drijvende-kommaprocessor - alleen 24).

Tegelijkertijd is het dynamisch bereik van signalen waarmee processors zonder vervorming kunnen werken veel kleiner bij processors met een vast punt (met meerdere decimalen). Met relatief eenvoudige verwerkingsalgoritmen maakt dit misschien niet uit, omdat: het dynamische bereik van de werkelijke ingangssignalen is vaak kleiner dan de DSP toestaat, maar in sommige gevallen kunnen overloopfouten optreden tijdens de uitvoering van het programma. Dit leidt tot fundamenteel fatale niet-lineaire vervormingen in het uitgangssignaal, vergelijkbaar met clipping-vervorming in analoge circuits.

Daarom is het bij het kiezen van een DSP noodzakelijk om het verwerkingsalgoritme en de invoersignalen zorgvuldig te analyseren voor de juiste keuze van bitdiepte en type rekenkunde. Soms, wanneer het onmogelijk is om een ​​geschikte drijvende-kommaprocessor te selecteren (vanwege de hogere kosten of het stroomverbruik), worden een vast-komma-DSP en compressie van het dynamische bereik van de verwerkte signalen (compressie) gebruikt, maar dit leidt tot een toename in de complexiteit van het signaalverwerkingsalgoritme en verhoogt de snelheidsvereisten.

Natuurlijk kunt u drijvende-kommabewerkingen op een processor emuleren met gehele rekenkunde of overschakelen naar het verwerken van dubbelcijferige getallen, maar dit maakt het programma ook aanzienlijk ingewikkelder en vermindert de prestaties aanzienlijk.

Ondanks alle beperkingen gebruiken de meeste embedded applicaties fixed-point processors vanwege de lagere prijs en het lagere stroomverbruik. Door het aantal bits te verhogen, nemen de kosten, de grootte van de matrijs en het aantal benodigde processorpinnen toe, evenals de benodigde hoeveelheid extern geheugen. Daarom streven ontwikkelaars ernaar een kristal te gebruiken met de laagst mogelijke bitdiepte.

Opgemerkt moet worden dat de bitness van gegevens en de bitness van processorinstructies niet altijd equivalent zijn.

Snelheid

De belangrijkste parameter bij het kiezen van een processor is snelheid. Het beïnvloedt de verwerkingstijd van het ingangssignaal en bepaalt daarom de maximale frequentie. Een van de meest voorkomende fouten van ontwikkelaars is de identificatie van klokfrequentie en -snelheid, wat in de meeste gevallen verkeerd is. Heel vaak wordt de DSP-snelheid aangegeven in MIPS (miljoenen instructies per seconde). Dit is de gemakkelijkst te meten parameter.

Het probleem van het vergelijken van de snelheid van verschillende DSP's is echter dat de processors verschillende instructiesystemen hebben en dat verschillende processors een verschillend aantal van deze instructies nodig hebben om hetzelfde algoritme uit te voeren. Bovendien is soms een ander aantal klokcycli nodig om verschillende instructies op dezelfde processor uit te voeren. Hierdoor kan een processor met een snelheid van 1000 MIPS wel eens meerdere malen langzamer blijken te zijn dan een processor met een snelheid van 300 MIPS, zeker bij verschillende bitgroottes.

Een oplossing voor dit probleem is het vergelijken van processors op de snelheid waarmee ze bepaalde bewerkingen uitvoeren, zoals bewerkingen met meerdere accumulatie (MAC). De snelheid van dergelijke bewerkingen is van cruciaal belang voor algoritmen die gebruikmaken van digitale filtering, correlatie en Fourier-transformaties. Helaas geeft een dergelijke schatting ook geen volledige informatie over de werkelijke snelheid van de processor.

De meest nauwkeurige beoordeling van de uitvoeringssnelheid van bepaalde algoritmen - bijvoorbeeld FIR- en IIR-filtering, maar dit vereist de ontwikkeling van geschikte programma's en zorgvuldige analyse van testresultaten.

Er zijn bedrijven die processors analyseren en vergelijken op basis van hun belangrijkste kenmerken, waaronder snelheid. De leider onder dergelijke bedrijven is BDTI - Berkeley Design Technology, Inc. (www.bdti.com). Als voorbeeld toont figuur 1 een snelheidsvergelijking van moderne DSP's van verschillende fabrikanten.

Rijst. 1. Een voorbeeld van het vergelijken van de prestaties van verschillende DSP's met een vast punt

Organisatie van het geheugen

De organisatie van het geheugensysteem van een processor is van invloed op de prestaties. Dit komt door het feit dat DSP-toetscommando's multi-operanden zijn en om hun werking te versnellen, moeten meerdere geheugencellen tegelijk gelezen worden. De MAC-instructie vereist bijvoorbeeld het gelijktijdig lezen van 2 operanden en de instructie zelf om deze in 1 klokcyclus te kunnen uitvoeren. Dit wordt bereikt door verschillende methoden, waaronder het gebruik van multiport-geheugen, scheiding van programmageheugen en datageheugen (Harvard-architectuur), gebruik van de instructiecache, enz.

De benodigde hoeveelheid geheugen wordt bepaald door de applicatie. Houd er rekening mee dat het geheugen dat in de processor is ingebouwd meestal een veel hogere werksnelheid heeft dan het externe geheugen, maar een toename van het volume verhoogt de kosten en het stroomverbruik van de DSP, en de beperkte hoeveelheid programmageheugen doet dat ook. niet toestaan ​​dat complexe algoritmen worden opgeslagen. Tegelijkertijd, als dit volume voldoende is voor uw doeleinden, kan de aanwezigheid van ingebouwd geheugen het ontwerp als geheel aanzienlijk vereenvoudigen en de grootte, het stroomverbruik en de kosten verminderen.

De meeste vaste-punt-DSP's die in embedded toepassingen worden gebruikt, vereisen een klein intern geheugen, meestal 4K tot 256K, en externe databussen met een lage capaciteit.

Tegelijkertijd omvatten DSP's met drijvende komma meestal het werken met grote gegevensarrays en complexe algoritmen en hebben ze ofwel een groot ingebouwd geheugen of een grote adresbusbreedte voor het aansluiten van extern geheugen (en soms beide). Nogmaals, de keuze van het type en de hoeveelheid geheugen moet het resultaat zijn van een zorgvuldige analyse van de toepassing waarin de DSP wordt gebruikt.

Gemak van applicatie-ontwikkeling

De complexiteit van de ontwikkeling wordt bepaald door de applicatie. Houd er rekening mee dat meer gemak voor de ontwikkelaar (meestal geassocieerd met het gebruik van talen op hoog niveau in DSP-programmering) in de meeste gevallen resulteert in minder compacte en snellere code, wat verandert in de noodzaak om krachtiger en dure DSP's. Aan de andere kant, in moderne omstandigheden, kan de snelheid van ontwikkeling (en dus het op de markt brengen van een nieuw product) meer voordelen opleveren dan de tijd die wordt besteed aan het optimaliseren van de code bij het schrijven van een programma in assembler.

Bovendien moet eraan worden herinnerd dat er geen foutloze programma's zijn, daarom zijn foutopsporingstools en de mogelijkheid om programma's in een voltooid apparaat te corrigeren vaak van het grootste belang. Tegelijkertijd moet bij het kiezen van een DSP en ontwikkelingstools rekening worden gehouden met enkele kenmerken van de processorarchitectuur.

Degenen die HLL-compilers op hoog niveau gebruiken, merken soms dat ze betere code genereren voor drijvende-kommaprocessors. Dit gebeurt om verschillende redenen: ten eerste bieden de meeste talen op hoog niveau geen native ondersteuning voor rekenen met vaste komma's, ten tweede is het DSP-instructiesysteem met vaste punten beperkter, en ten derde leggen drijvende-kommaprocessors gewoonlijk minder ruimtebeperkingen op. geheugen.

De beste resultaten worden verkregen bij het compileren van programma's in Java voor VLIW-processors (processors met een extra lang instructiewoord) met een eenvoudig orthogonaal RISC-instructiesysteem en grote registerbestanden. Maar zelfs voor deze processors is de door de compiler gegenereerde code langzamer dan de met de hand geoptimaliseerde assemblagecode. Aan de andere kant stelt de mogelijkheid om eerst het signaalverwerkingsproces te simuleren in een programma als MathLab met zijn verdere automatische vertaling in een DSP-programma, je in staat om veel ernstige fouten in de beginfase van de ontwikkeling te verwijderen.

Debuggen van voltooide programma's kan worden uitgevoerd op een hardware-emulator van het voltooide systeem of op een softwaresimulator. Gewoonlijk is debuggen op een simulator wat eenvoudiger in termen van de gebruikte hardware, maar het stelt je niet in staat om alle mogelijke fouten te identificeren. Bijna alle fabrikanten bieden ontwikkelaars zowel simulators als emulators voor hun DSP's. Bijna alle moderne DSP's ondersteunen in-circuit emulatie volgens de IEEE 1149.1 JTAG-standaard. Bij het gebruik van JTAG-technologie gaan we van het emuleren van een processor door een extern apparaat naar directe controle over de processor tijdens de uitvoering van het programma, wat ons in staat stelt de mate van overeenstemming van de lay-out met een echt apparaat aanzienlijk te vergroten en daardoor de betrouwbaarheid van het debugproces.

Naast emulators bieden fabrikanten een breed scala aan zogenaamde "starterkits" en "evaluatiemodules" waarmee je direct aan de slag kunt met het ontwikkelen van een applicatie, zonder te wachten op een mock-up van het in ontwikkeling zijnde apparaat. Bovendien kunnen deze ontwikkeltools in sommige toepassingen als eindpunten worden gebruikt.

Energieverbruik

DSP's worden veel gebruikt in mobiele apparaten waar stroomverbruik het belangrijkste kenmerk is. Er worden veel methoden gebruikt om het stroomverbruik te verminderen, waaronder het verlagen van de voedingsspanning en het introduceren van functies voor energiebeheer, zoals het dynamisch wijzigen van de klokfrequentie, het overschakelen naar de slaap- of stand-bymodus of het uitschakelen van randapparatuur die momenteel niet in gebruik is. Opgemerkt moet worden dat deze maatregelen een aanzienlijk effect hebben op de snelheid van de processor en, bij onjuist gebruik, kunnen leiden tot onbruikbaarheid van het ontworpen apparaat (als voorbeeld kunnen sommige mobiele telefoons worden genoemd, die als gevolg van fouten in energiebeheerprogramma's, soms niet meer ingeschakeld) of verslechtering van de operationele kenmerken (bijvoorbeeld aanzienlijke hersteltijd vanuit de slaapstand).

Het schatten van het stroomverbruik is geen gemakkelijke taak, omdat deze waarde varieert afhankelijk van de taken die door de processor worden uitgevoerd. Helaas publiceren de meeste fabrikanten alleen "typisch" en "maximaal" verbruik, en wat met deze definities wordt bedoeld, is niet altijd duidelijk. De uitzondering is Texas Instruments, dat het stroomverbruik specificeert op basis van het opdrachttype en de processorconfiguratie.

Prijs

Processorkosten zijn ongetwijfeld de bepalende factor bij het kiezen van een DSP, vooral bij grote productievolumes. Meestal hebben ontwikkelaars de neiging om de goedkoopste processor te kiezen, maar houd er rekening mee dat dit kan leiden tot aanzienlijke kosten voor het herwerken van het apparaat als de geselecteerde processor om de een of andere reden niet toelaat de gewenste kenmerken te bereiken. Bovendien moet bij het kiezen van een processor op basis van het kostencriterium rekening worden gehouden met de kosten van externe componenten (een DSP met ingebouwd geheugen met voldoende volume is bijvoorbeeld duurder dan een vergelijkbare zonder ingebouwde geheugen, maar de prijs van een apparaat dat erop is gebaseerd als geheel kan aanzienlijk lager zijn vanwege de afwezigheid van andere componenten en kleinere PCB-afmetingen). Een zeer belangrijke factor die de kosten van een DSP beïnvloedt, is het type pakket: IC's in keramische pakketten, ontworpen voor industriële of speciale omstandigheden, zijn veel duurder dan dezelfde IC's die werken in het commerciële temperatuurbereik. En tot slot hangt de prijs van een verwerker sterk af van het volume en de regelmaat van leveringen.

Methode voor het selecteren van processors

Zoals eerder aangetoond, is het kiezen van de juiste DSP erg toepassingsafhankelijk: een processor kan voor sommige toepassingen goed werken, maar voor andere helemaal niet. Bij het kiezen van een processor moet u de belangrijkste kenmerken in een bepaald geval bepalen en deze in volgorde van belangrijkheid rangschikken. Selecteer vervolgens, in overeenstemming met deze criteria, mogelijke kandidaten en kies ten slotte de beste uit de geschikte, met aandacht voor aanvullende, niet-kritieke kenmerken. In dit geval is het raadzaam om de evaluatie van de kenmerken van processors te gebruiken die zijn geproduceerd door een gerenommeerd bedrijf (bijvoorbeeld BTDI). Houd er rekening mee dat BTDI DSP niet alleen evalueert op snelheid, maar ook op andere criteria: geheugenefficiëntie, stroomverbruik, enz.

Om bijvoorbeeld een applicatie te implementeren, houden we ons vooral bezig met snelheid, prijs, geheugenefficiëntie en stroomverbruik. We hebben de belangrijkste kanshebbers geïdentificeerd, waaronder de C64x en C64x + DSP's van Texas Instruments en TigerSHARC van Analog Devices. Figuur 2 toont een grafiek van vergelijkende kenmerken van deze processors in termen van snelheid, kosten, stroomverbruik en bruikbaarheid van ontwikkelingstools.


Rijst. 2. Schema voor DSP-selectie

Nu de prioriteiten. Als we vooral hoge snelheid en een lage prijs nodig hebben, kiezen we voor Texas Instruments. Als we een mobiel apparaat ontwerpen en we een laag stroomverbruik nodig hebben, en we zijn klaar om snelheid op te offeren, dan nemen we Analog Devices. Het is niet uitgesloten dat de geselecteerde processors zeer dicht bij de belangrijkste parameters zullen liggen. In dit geval wordt de keuze bepaald door niet-kritieke kenmerken: de beschikbaarheid van foutopsporingstools, de eerdere ervaring van de ontwikkelaar, de beschikbaarheid van componenten, enz.

Zorgvuldige DSP-selectie vroeg in het ontwikkelingsproces kan helpen om de onnodige overhead die gepaard gaat met het selecteren van de verkeerde DSP te elimineren en zowel de algehele ontwerptijd als de tijd en kosten van het oplossen van problemen te verminderen.

Literatuur

  1. Jeff Bier, Een processor kiezen: Benchmarks and Beyond (S043), Berkeley, Californië: Berkeley Design Technology, Inc., VS, 2006.
  2. Een DSP-processor kiezen, Berkeley, Californië: Berkeley Design Technology, Inc., VS, 2000.

Het artikel bespreekt de belangrijkste parameters van digitale signaalprocessors (DSP) en hun impact op de keuze van een geschikte microschakeling, en beschrijft ook de huidige toestand van de DSP-markt.

Als we schoenen kiezen, willen we dat ze modieus, comfortabel en van hoge kwaliteit zijn, daarom geven we de voorkeur aan bekende merken, die bedrijven die al bekend zijn en ver van de laatste plaatsen op de markt bezetten. Nu moeten we beslissen: waar hebben we deze schoenen voor nodig? Als u 's ochtends wilt joggen, is het beter om sneakers te kopen en voor een zakelijke avond schoenen. En wat te dragen in de bergen? In dit geval heeft u speciale stevige schoenen met stevige zolen nodig - vibrams. En wat is slechtere DSP? Als u een digitale signaalprocessor kiest, zou het leuk zijn om een ​​idee te hebben van de bestaande DSP-markt, om de belangrijkste fabrikanten en de ontwikkelingsrichtingen van de processors die ze maken te kennen.

DSP-processors zijn ontworpen voor digitale signaalverwerking - wiskundige manipulatie van gedigitaliseerde signalen. Ze worden veel gebruikt in draadloze systemen, audio- en videoverwerking, besturingssystemen. Met een toename van het aantal toepassingen dat DSP gebruikt en de complexiteit van verwerkingsalgoritmen, nemen ook de vereisten toe op het gebied van prestatieverbetering en uitrusting met interface en andere gespecialiseerde knooppunten. Inmiddels zijn er veel soorten DSP's verschenen, zowel universeel als gericht op een vrij beperkt aantal taken.

Uiteraard kan geen van de processors geschikt zijn voor alle toepassingen. Daarom is de eerste taak van een ontwikkelaar om een ​​processor te kiezen die het meest geschikt is op het gebied van prestaties, prijs, beschikbaarheid van bepaalde randapparatuur, stroomverbruik, gebruiksgemak en andere criteria.

Voor draagbare apparaten zoals mobiele telefoons, draagbare digitale spelers zijn bijvoorbeeld kosten, integratie en stroomverbruik van het grootste belang, en maximale prestaties zijn vaak niet nodig (omdat dit meestal een aanzienlijke toename van het stroomverbruik met zich meebrengt zonder verwerkingsvoordelen te bieden relatief lage bitsnelheid audio gegevens).

Tegelijkertijd zijn voor hydro-akoestische of radarsystemen de bepalende parameters de snelheid van werken, de beschikbaarheid van hogesnelheidsinterfaces en een handig ontwikkelingssysteem, en de kosten zijn een secundair criterium. Bovendien is het in veel gevallen zinvol om rekening te houden met de marktplaats die de verwerkerleverancier inneemt, aangezien Niet alle fabrikanten kunnen u een reeks processors bieden om aan al uw behoeften te voldoen. De huidige verdeling van de markt over de leidende leveranciers (zie tabel 1) laat zien dat de 4 bedrijven bovenaan de lijst meer dan 80% van alle DSP's die in de wereld worden gebruikt, leveren. Het zijn deze bedrijven die het meest bekend zijn op de Russische markt en hun producten worden vaak genoemd.

Tabel 1. Grote DSP-fabrikanten en hun marktaandelen

Marktleiders Bedrijfsnaam DSP-marktaandeel
1 Texas Instrumenten 54,3%
2 Freescale halfgeleider 14,1%
3 Analoge apparaten 8,0%
4 Philips Halfgeleiders 7,5%
5 Agere Systems 7,3%
6 Toshiba 4,9%
7 DSP-groep 2,2%
8 NEC Elektronica 0,6%
9 Fujitsu 0,4%
10 Intersil 0,3%
Andere bedrijven 0,5%
Totaal 100,0%

Er moet aan worden herinnerd dat DSP-fabrikanten, bij het ontwerpen van nieuwe microschakelingen, ze vrij duidelijk positioneren voor gebruik in bepaalde toepassingen. Dit heeft een impact op hun architectuur, en op prestaties, en op het uitrusten van de processor met een of andere set randmodules. Tabel 2 toont de positionering van DSP's vanuit het oogpunt van hun makers.

Tabel 2. Toepassingsgebieden van families van signaalprocessors van verschillende fabrikanten

Videoverwerking, videobewaking, digitale camera's, 3D-graphics TMS320DM64x / DaVinci, TMS320C64xx, TMS320C62xx (TI), PNX1300, PNX1500, PNX1700 (Philips), MPC52xx (Freescale)
Audioverwerking, spraakherkenning, geluidssynthese TMS320C62xx, TMS320C67xx (TI), SHARC (analoge apparaten)
Draagbare media-apparaten TMS320C54xx, TMS320C55xx (TI), Blackfin (analoge apparaten)
Draadloze communicatie, telecommunicatie, modems, netwerkapparaten TMS320C64xx, TMS320C54xx, TMS320C55xx (TI), MPC7xxx, MPC86xx, MPC8xx PowerQUICC I, MPC82xx PowerQUICC II, MPC83xx PowerQUICC II Pro, MPC85xx PowerQUICC III (Freescale), Blackfin, Tiger13SHARC (PNX00)
Aandrijfregeling, stroomconversie, auto-elektronica, huishoudelijke artikelen, kantoorapparatuur TMS320C28xx, TMS320C24xx (TI), ADSP-21xx (analoge apparaten), MPC55xx, MPC55xx (Freescale)
Geneeskunde, biometrie, meetsystemen TMS320C62xx, TMS320C67xx, TMS320C55xx, TMS320C28xx (TI), TigerSHARC, SHARC (analoge apparaten)

Gegevensformaat en bitbreedte

Een van de belangrijkste kenmerken van digitale signaalprocessors is het formaat van de gegevens die worden verwerkt. Alle DSP's werken met gehele getallen of met getallen in drijvende-komma-indeling, en voor gehele getallen is de bitbreedte 16 of 32 en voor drijvende-kommagetallen 32. Houd bij het kiezen van een gegevensindeling rekening met het volgende: DSP met gehele getallen gegevens (of gegevens met een vast punt) zijn meestal goedkoper en bieden een grotere absolute nauwkeurigheid met gelijke bitdiepte (aangezien alle 32 bits worden toegewezen aan de mantisse in een 32-bits vaste-kommaprocessor en in een drijvende-kommaprocessor - alleen 24).

Tegelijkertijd is het dynamisch bereik van signalen waarmee processors zonder vervorming kunnen werken veel kleiner bij processors met een vast punt (met meerdere decimalen). Met relatief eenvoudige verwerkingsalgoritmen maakt dit misschien niet uit, omdat: het dynamische bereik van de werkelijke ingangssignalen is vaak kleiner dan de DSP toestaat, maar in sommige gevallen kunnen overloopfouten optreden tijdens de uitvoering van het programma. Dit leidt tot fundamenteel fatale niet-lineaire vervormingen in het uitgangssignaal, vergelijkbaar met clipping-vervorming in analoge circuits.

Daarom is het bij het kiezen van een DSP noodzakelijk om het verwerkingsalgoritme en de invoersignalen zorgvuldig te analyseren voor de juiste keuze van bitdiepte en type rekenkunde. Soms, wanneer het onmogelijk is om een ​​geschikte drijvende-kommaprocessor te selecteren (vanwege de hogere kosten of het stroomverbruik), worden een vast-komma-DSP en compressie van het dynamische bereik van de verwerkte signalen (compressie) gebruikt, maar dit leidt tot een toename in de complexiteit van het signaalverwerkingsalgoritme en verhoogt de snelheidsvereisten.

Natuurlijk kunt u drijvende-kommabewerkingen op een processor emuleren met gehele rekenkunde of overschakelen naar het verwerken van dubbelcijferige getallen, maar dit maakt het programma ook aanzienlijk ingewikkelder en vermindert de prestaties aanzienlijk.

Ondanks alle beperkingen gebruiken de meeste embedded applicaties fixed-point processors vanwege de lagere prijs en het lagere stroomverbruik. Door het aantal bits te verhogen, nemen de kosten, de grootte van de matrijs en het aantal benodigde processorpinnen toe, evenals de benodigde hoeveelheid extern geheugen. Daarom streven ontwikkelaars ernaar een kristal te gebruiken met de laagst mogelijke bitdiepte.

Opgemerkt moet worden dat de bitness van gegevens en de bitness van processorinstructies niet altijd equivalent zijn.

Snelheid

De belangrijkste parameter bij het kiezen van een processor is snelheid. Het beïnvloedt de verwerkingstijd van het ingangssignaal en bepaalt daarom de maximale frequentie. Een van de meest voorkomende fouten van ontwikkelaars is de identificatie van klokfrequentie en -snelheid, wat in de meeste gevallen verkeerd is. Heel vaak wordt de DSP-snelheid aangegeven in MIPS (miljoenen instructies per seconde). Dit is de gemakkelijkst te meten parameter.

Het probleem van het vergelijken van de snelheid van verschillende DSP's is echter dat de processors verschillende instructiesystemen hebben en dat verschillende processors een verschillend aantal van deze instructies nodig hebben om hetzelfde algoritme uit te voeren. Bovendien is soms een ander aantal klokcycli nodig om verschillende instructies op dezelfde processor uit te voeren. Hierdoor kan een processor met een snelheid van 1000 MIPS wel eens meerdere malen langzamer blijken te zijn dan een processor met een snelheid van 300 MIPS, zeker bij verschillende bitgroottes.

Een oplossing voor dit probleem is het vergelijken van processors op de snelheid waarmee ze bepaalde bewerkingen uitvoeren, zoals bewerkingen met meerdere accumulatie (MAC). De snelheid van dergelijke bewerkingen is van cruciaal belang voor algoritmen die gebruikmaken van digitale filtering, correlatie en Fourier-transformaties. Helaas geeft een dergelijke schatting ook geen volledige informatie over de werkelijke snelheid van de processor.

De meest nauwkeurige beoordeling van de uitvoeringssnelheid van bepaalde algoritmen - bijvoorbeeld FIR- en IIR-filtering, maar dit vereist de ontwikkeling van geschikte programma's en zorgvuldige analyse van testresultaten.

Er zijn bedrijven die processors analyseren en vergelijken op basis van hun belangrijkste kenmerken, waaronder snelheid. De leider onder dergelijke bedrijven is BDTI - Berkeley Design Technology, Inc. (www.bdti.com). Als voorbeeld toont figuur 1 een snelheidsvergelijking van moderne DSP's van verschillende fabrikanten.

Rijst. 1. Een voorbeeld van het vergelijken van de prestaties van verschillende DSP's met een vast punt

Organisatie van het geheugen

De organisatie van het geheugensysteem van een processor is van invloed op de prestaties. Dit komt door het feit dat DSP-toetscommando's multi-operanden zijn en om hun werking te versnellen, moeten meerdere geheugencellen tegelijk gelezen worden. De MAC-instructie vereist bijvoorbeeld het gelijktijdig lezen van 2 operanden en de instructie zelf om deze in 1 klokcyclus te kunnen uitvoeren. Dit wordt bereikt door verschillende methoden, waaronder het gebruik van multiport-geheugen, scheiding van programmageheugen en datageheugen (Harvard-architectuur), gebruik van de instructiecache, enz.

De benodigde hoeveelheid geheugen wordt bepaald door de applicatie. Houd er rekening mee dat het geheugen dat in de processor is ingebouwd meestal een veel hogere werksnelheid heeft dan het externe geheugen, maar een toename van het volume verhoogt de kosten en het stroomverbruik van de DSP, en de beperkte hoeveelheid programmageheugen doet dat ook. niet toestaan ​​dat complexe algoritmen worden opgeslagen. Tegelijkertijd, als dit volume voldoende is voor uw doeleinden, kan de aanwezigheid van ingebouwd geheugen het ontwerp als geheel aanzienlijk vereenvoudigen en de grootte, het stroomverbruik en de kosten verminderen.

De meeste vaste-punt-DSP's die in embedded toepassingen worden gebruikt, vereisen een klein intern geheugen, meestal 4K tot 256K, en externe databussen met een lage capaciteit.

Tegelijkertijd omvatten DSP's met drijvende komma meestal het werken met grote gegevensarrays en complexe algoritmen en hebben ze ofwel een groot ingebouwd geheugen of een grote adresbusbreedte voor het aansluiten van extern geheugen (en soms beide). Nogmaals, de keuze van het type en de hoeveelheid geheugen moet het resultaat zijn van een zorgvuldige analyse van de toepassing waarin de DSP wordt gebruikt.

Gemak van applicatie-ontwikkeling

De complexiteit van de ontwikkeling wordt bepaald door de applicatie. Houd er rekening mee dat meer gemak voor de ontwikkelaar (meestal geassocieerd met het gebruik van talen op hoog niveau in DSP-programmering) in de meeste gevallen resulteert in minder compacte en snellere code, wat verandert in de noodzaak om krachtiger en dure DSP's. Aan de andere kant, in moderne omstandigheden, kan de snelheid van ontwikkeling (en dus het op de markt brengen van een nieuw product) meer voordelen opleveren dan de tijd die wordt besteed aan het optimaliseren van de code bij het schrijven van een programma in assembler.

Bovendien moet eraan worden herinnerd dat er geen foutloze programma's zijn, daarom zijn foutopsporingstools en de mogelijkheid om programma's in een voltooid apparaat te corrigeren vaak van het grootste belang. Tegelijkertijd moet bij het kiezen van een DSP en ontwikkelingstools rekening worden gehouden met enkele kenmerken van de processorarchitectuur.

Degenen die HLL-compilers op hoog niveau gebruiken, merken soms dat ze betere code genereren voor drijvende-kommaprocessors. Dit gebeurt om verschillende redenen: ten eerste bieden de meeste talen op hoog niveau geen native ondersteuning voor rekenen met vaste komma's, ten tweede is het DSP-instructiesysteem met vaste punten beperkter, en ten derde leggen drijvende-kommaprocessors gewoonlijk minder ruimtebeperkingen op. geheugen.

De beste resultaten worden verkregen bij het compileren van programma's in Java voor VLIW-processors (processors met een extra lang instructiewoord) met een eenvoudig orthogonaal RISC-instructiesysteem en grote registerbestanden. Maar zelfs voor deze processors is de door de compiler gegenereerde code langzamer dan de met de hand geoptimaliseerde assemblagecode. Aan de andere kant stelt de mogelijkheid om eerst het signaalverwerkingsproces te simuleren in een programma als MathLab met zijn verdere automatische vertaling in een DSP-programma, je in staat om veel ernstige fouten in de beginfase van de ontwikkeling te verwijderen.

Debuggen van voltooide programma's kan worden uitgevoerd op een hardware-emulator van het voltooide systeem of op een softwaresimulator. Gewoonlijk is debuggen op een simulator wat eenvoudiger in termen van de gebruikte hardware, maar het stelt je niet in staat om alle mogelijke fouten te identificeren. Bijna alle fabrikanten bieden ontwikkelaars zowel simulators als emulators voor hun DSP's. Bijna alle moderne DSP's ondersteunen in-circuit emulatie volgens de IEEE 1149.1 JTAG-standaard. Bij het gebruik van JTAG-technologie gaan we van het emuleren van een processor door een extern apparaat naar directe controle over de processor tijdens de uitvoering van het programma, wat ons in staat stelt de mate van overeenstemming van de lay-out met een echt apparaat aanzienlijk te vergroten en daardoor de betrouwbaarheid van het debugproces.

Naast emulators bieden fabrikanten een breed scala aan zogenaamde "starterkits" en "evaluatiemodules" waarmee je direct aan de slag kunt met het ontwikkelen van een applicatie, zonder te wachten op een mock-up van het in ontwikkeling zijnde apparaat. Bovendien kunnen deze ontwikkeltools in sommige toepassingen als eindpunten worden gebruikt.

Energieverbruik

DSP's worden veel gebruikt in mobiele apparaten waar stroomverbruik het belangrijkste kenmerk is. Er worden veel methoden gebruikt om het stroomverbruik te verminderen, waaronder het verlagen van de voedingsspanning en het introduceren van functies voor energiebeheer, zoals het dynamisch wijzigen van de klokfrequentie, het overschakelen naar de slaap- of stand-bymodus of het uitschakelen van randapparatuur die momenteel niet in gebruik is. Opgemerkt moet worden dat deze maatregelen een aanzienlijk effect hebben op de snelheid van de processor en, bij onjuist gebruik, kunnen leiden tot onbruikbaarheid van het ontworpen apparaat (als voorbeeld kunnen sommige mobiele telefoons worden genoemd, die als gevolg van fouten in energiebeheerprogramma's, soms niet meer ingeschakeld) of verslechtering van de operationele kenmerken (bijvoorbeeld aanzienlijke hersteltijd vanuit de slaapstand).

Het schatten van het stroomverbruik is geen gemakkelijke taak, omdat deze waarde varieert afhankelijk van de taken die door de processor worden uitgevoerd. Helaas publiceren de meeste fabrikanten alleen "typisch" en "maximaal" verbruik, en wat met deze definities wordt bedoeld, is niet altijd duidelijk. De uitzondering is Texas Instruments, dat het stroomverbruik specificeert op basis van het opdrachttype en de processorconfiguratie.

Prijs

Processorkosten zijn ongetwijfeld de bepalende factor bij het kiezen van een DSP, vooral bij grote productievolumes. Meestal hebben ontwikkelaars de neiging om de goedkoopste processor te kiezen, maar houd er rekening mee dat dit kan leiden tot aanzienlijke kosten voor het herwerken van het apparaat als de geselecteerde processor om de een of andere reden niet toelaat de gewenste kenmerken te bereiken. Bovendien moet bij het kiezen van een processor op basis van het kostencriterium rekening worden gehouden met de kosten van externe componenten (een DSP met ingebouwd geheugen met voldoende volume is bijvoorbeeld duurder dan een vergelijkbare zonder ingebouwde geheugen, maar de prijs van een apparaat dat erop is gebaseerd als geheel kan aanzienlijk lager zijn vanwege de afwezigheid van andere componenten en kleinere PCB-afmetingen). Een zeer belangrijke factor die de kosten van een DSP beïnvloedt, is het type pakket: IC's in keramische pakketten, ontworpen voor industriële of speciale omstandigheden, zijn veel duurder dan dezelfde IC's die werken in het commerciële temperatuurbereik. En tot slot hangt de prijs van een verwerker sterk af van het volume en de regelmaat van leveringen.

Methode voor het selecteren van processors

Zoals eerder aangetoond, is het kiezen van de juiste DSP erg toepassingsafhankelijk: een processor kan voor sommige toepassingen goed werken, maar voor andere helemaal niet. Bij het kiezen van een processor moet u de belangrijkste kenmerken in een bepaald geval bepalen en deze in volgorde van belangrijkheid rangschikken. Selecteer vervolgens, in overeenstemming met deze criteria, mogelijke kandidaten en kies ten slotte de beste uit de geschikte, met aandacht voor aanvullende, niet-kritieke kenmerken. In dit geval is het raadzaam om de evaluatie van de kenmerken van processors te gebruiken die zijn geproduceerd door een gerenommeerd bedrijf (bijvoorbeeld BTDI). Houd er rekening mee dat BTDI DSP niet alleen evalueert op snelheid, maar ook op andere criteria: geheugenefficiëntie, stroomverbruik, enz.

Om bijvoorbeeld een applicatie te implementeren, houden we ons vooral bezig met snelheid, prijs, geheugenefficiëntie en stroomverbruik. We hebben de belangrijkste kanshebbers geïdentificeerd, waaronder de C64x en C64x + DSP's van Texas Instruments en TigerSHARC van Analog Devices. Figuur 2 toont een grafiek van vergelijkende kenmerken van deze processors in termen van snelheid, kosten, stroomverbruik en bruikbaarheid van ontwikkelingstools.


Rijst. 2. Schema voor DSP-selectie

Nu de prioriteiten. Als we vooral hoge snelheid en een lage prijs nodig hebben, kiezen we voor Texas Instruments. Als we een mobiel apparaat ontwerpen en we een laag stroomverbruik nodig hebben, en we zijn klaar om snelheid op te offeren, dan nemen we Analog Devices. Het is niet uitgesloten dat de geselecteerde processors zeer dicht bij de belangrijkste parameters zullen liggen. In dit geval wordt de keuze bepaald door niet-kritieke kenmerken: de beschikbaarheid van foutopsporingstools, de eerdere ervaring van de ontwikkelaar, de beschikbaarheid van componenten, enz.

Zorgvuldige DSP-selectie vroeg in het ontwikkelingsproces kan helpen om de onnodige overhead die gepaard gaat met het selecteren van de verkeerde DSP te elimineren en zowel de algehele ontwerptijd als de tijd en kosten van het oplossen van problemen te verminderen.

Literatuur

  1. Jeff Bier, Een processor kiezen: Benchmarks and Beyond (S043), Berkeley, Californië: Berkeley Design Technology, Inc., VS, 2006.
  2. Een DSP-processor kiezen, Berkeley, Californië: Berkeley Design Technology, Inc., VS, 2000.