JavaScript is currently disabled.Please enable it for a better experience of Jumi. Fem vägar mot snabbare signalprocessorer
Guidelines for contributing Technical Papers: download PDF

Fler operationer per instruktion eller fler instruktioner per klockcykel. Det är huvudmetoderna som DSP-företagen använder in på för att pressa upp prestanda. Avigsidorna är att komplexiteten ökar och att realtidsegenskaperna blir snåriga att förutse.
Snart sagt alla nya konsumentprodukter från underhållningsindustrin innehåller någon form av digital bild- eller ljudbehandlingskrets. I många fall är det en signalprocessor som gör grovjobbet, det gäller bland annat för mobiltelefoner, digitalkameror, MP3-spelare, spelkonsoller och digital-tv-mottagare.

Men konkurrensen från standardprocessorer med signalbehandlingstilllägg liksom från nystartade företag med specialiserade IP-lösningar ökar snabbt. Alla vill ha del av den snabbväxande marknaden för signalprocessorer, i fjol värderad till drygt sex miljarder dollar. Visserligen blir det ett rejält avbräck i år men redan nästa år ser marknaden ut att trampa gasen i botten igen och växa med 35 procent.

För att hålla alla dessa nya utmanare stången förbättrar de fyra marknadsdominanterna Texas Instruments, Agere, Motorola och Analog Devices hela tiden sina arkitekturer. Den vanligaste metoden är att få processorn att göra flera uppgifter parallellt men det finns olika vägar till målet. En möjlighet är att addera extra exekveringsenheter, men bibehålla arkitekturen.

- Det har till exempel Agere gjort med med DSP 16xxx, påpekar Jeff Bier på konsult- och analysföretaget BDTI.

Företaget har dubblerat bredden på både data- och instruktionsbussen från 16 till 32 bitar och dessutom lagt till en extra adderare och en multiplikator. Funktionerna snabbar bland annat upp beräkningen av ett FIR-filter samtidigt som effektförbrukningen och priset i stort sett kan bibehållas.

Processar parallellt

Ett mer radikalt steg är att införa superskalära eller vliw-baserade arkitekturer (very long instruction word). I bägge fallen införs fler exekveringsenheter så att arbetsuppgifterna kan utföras parallellt. I den superskalära processorn är det en särskild del av processorns hårdvara som ser till att alla exekveringsenheter är sysselsatta. Den uppgiften handhas av kompilatorn i vliw-baserade arkitekturer. Båda vägarna används också av riscbaserade inbyggnadsprocessorer och leder till att klockhastigheten kan höjas.

Med vliw-processorer blir det i princip omöjligt att programmera i assembler och få alla delar av processorn sysselsatta. Den uppgiften görs betydligt bättre av en kompilator. Lite handtrimning av den färdiga koden kan dock förbättra prestanda avsevärt, men ingreppet förutsätter att utvecklingsverktygen stödjer detta.

Texas Instruments var först bland DSP-företagen att komma ut med en vliw-lösning, i form av C62xx/C67xx som kom 1997. Denna krets kan exekvera upp till åtta 32-bitsinstruktioner parallellt och har således en ordlängd på 256 bitar. Vliw-konceptet har också anammats av bland annat Starcores SC140, Carmel från Infineon liksom Analog Devices Tigersharc. även flera IP-företag, alltså bolag som säljer DSP-lösningar i form av mjuka kärnor för integration i system på kisel, går på vliw-linjen. Det gäller till exempel DSP Group, Bops och Siroyan.

- En vliw-arkitektur har potential att höja prestandan fyra till fem gånger jämfört med traditionella signalprocessorer. Av förbättringen kommer cirka hälften från högre klockhastighet och lika mycket beror på att flera uppgifter kan utföras parallellt, säger Jeff Bier.

- Men fokus i en vliw-arkitektur ligger på hastighet - inte minneseffektivitet eller effektförbrukning.

En alternativ väg till högre prestanda är att göra processorn superskalär, samma metod som används av högpresterande pc-processorer som exempelvis Pentium. En fördel är att processorerna blir kompatibla på binär nivå från generation till generation, vilket innebär att gamla program kan köras utan att kompileras om på samma sätt som gäller för persondatorer.

DSP-företagen är annars inte kända för att prioritera bakåtkompatibilitet. Det är snarare regel än undantag att användarna måste skriva om koden för att kunna dra nytta av bättre prestanda. På DSP-sidan är det än så länge bara LSI Logic som valt det superskalära spåret, för sin processor LSI40xx.

Realtiden blir oskarp

En svaghet med superskalära processorer är att realtidsegenskaperna blir lite suddiga, eftersom programmeraren förlorar den absoluta kontrollen över programmet. Det är ju upp till hårdvaran att bestämma vilka operationer som ska utföras parallellt och det är inte säkert att första varvet i en loop utförs på samma sätt som resten av loopen.

Ytterligare en metod för att pressa upp prestanda är att utföra samma operation på två eller flera data parallellt, så kallade Simd-instruktioner (Single Instruction Multiple Data).

Simd-instruktioner är inte kopplade till någon speciell arkitektur - de kan användas för såväl superskalärt som vliw - och metoden utnyttjas också av såväl inbyggnadsprocessorer som pc-processorer.

En typisk lösning är att använda långa register, till exempel på 64 bitar, som delas upp i två eller fyra block för 32- eller 16-bitarsdata. En instruktion bearbetar data och genererar flera oberoende resultat. Dock måste man göra samma operation, exempelvis en addition, på alla data. Simd kan vara en rejäl utmaning för programmeraren som ofta måste gruppera om data för att verkligen hålla DSPn fullt sysselsatt.

Cacheminnen, små inbyggda minnen för både data och instruktioner med snabba gränssnitt, har länge använts i vanliga processorer för att minska hastighetskraven och kostnaderna för de externa minnena. Av samma orsak blir de allt vanligare i signalprocessorer.

Men eftersom minnena uppdateras dynamiskt, och det ibland händer att den instruktion eller det data som behövs finns i det långsammare externa minnet, blir det svårt att förutse realtidsegenskaperna.

- Utvecklingsverktygen borde kunna vara en hjälp men tyvärr lämnar de ofta programmeraren i sticket. Alternativet är att utgå från det värsta fallet, men det ger överdrivet dålig prestanda, säger Jeff Bier.

Frekvens inte allt

Alla de här förändringarna har leverantörerna gjort för att öka hastigheten. Men andra parametrar kan vara minst lika avgörande för kretsvalet.

- Det är intressant att jämföra arkitekturer men det finns många andra faktorer som är minst lika viktiga. Egentligen ska man välja signalprocessorer på samma sätt som när man köper bil. Och då börjar man inte med att titta på listan med topphastigheter utan utgår från vilka behov man har, vad det kostar att äga, hur det är med säkerheten och så vidare.

- I de flesta kommersiella tillämpningarna är inte problemet att hitta en tillräckligt snabb processor, utan en med tillräcklig prestanda samtidigt som man minimerar systemkostnaden, effektförbrukningen, minnesbehovet liksom tidsåtgången och riskerna vid utvecklingen av både hårdvara och programvara.


Per Henricsson

Prenumerera på Elektroniktidningens nyhetsbrev eller på vårt magasin.


MER LÄSNING:
 
KOMMENTARER
Kommentarer via Disqus

Rainer Raitasuo

Rainer
Raitasuo

+46(0)734-171099 rainer@etn.se
(sälj och marknads­föring)
Per Henricsson

Per
Henricsson
+46(0)734-171303 per@etn.se
(redaktion)

Jan Tångring

Jan
Tångring
+46(0)734-171309 jan@etn.se
(redaktion)