En digital signalprocessor (DSP eller DSP-mikro) är en specialiserad mikroprocessor som är särskilt utformad för digital signalbehandling och som i allmänhet används i realtidsberäkningar. Till skillnad från generella processorarkitekturer är en DSP optimerad för att snabbt utföra stora mängder numeriska operationer på sekvenser av data (signalströmmar).
Algoritmer för digital signalbehandling kräver att ett stort antal matematiska operationer snabbt utförs på en uppsättning data. Signalerna omvandlas från analog till digital, manipuleras digitalt och omvandlas sedan igen för att omvandlas från digital till analog, vilket visas i diagrammet. Många tillämpningar för digital signalbehandling har realtidsbegränsningar, dvs. för att systemet ska fungera måste DSP-operationen slutföras inom en viss tidsgräns. Dessa tidskrav styr ofta val av arkitektur, klockfrekvens och minneslösning.
Mikroarkitekturen i en digital signalprocessor är optimerad specifikt för tillämpningar för digital signalbehandling. Typiska egenskaper inkluderar specialiserade instruktioner för multiplikation och ackumulering (MAC), stöd för single-instruction multiple-data (SIMD), pipelining, snabba adresseringslägen för cirkulära buffrar och bit-reverserade adresser (viktigt för FFT) samt ofta en Harvard-arkitektur med separata instruktion- och dataminnen.
Vanliga funktioner och hårdvaruacceleratorer
- MAC-enheter (multiply–accumulate) för snabb beräkning av konvolutioner och filter.
- Barrel shifters och inbyggda skalningsfunktioner för effektiv hantering av fixed-point-aritmetik.
- Direktminnesåtkomst (DMA) för låglatensöverföringar mellan periferi och minne utan CPU-intervention.
- Vektor- och SIMD-instruktioner för att behandla flera prover samtidigt.
- Maskinvaruacceleratorer eller co-processorer för FFT, kryptografi eller filterbanker i vissa plattformar.
- Låglatens-interrupt och realtidsklockor för att möta strikta tidsbegränsningar.
Programmering och verktyg
DSP-programmering sker ofta i optimerad C kombinerat med bitvis assembly för kritiska innerloopar. Vanliga verktyg inkluderar kompilatorer, profileringsverktyg och optimerade signalbibliotek. Många utvecklare använder även modellerings- och simulationsmiljöer som MATLAB/Simulink för att utveckla och testa algoritmer innan de portas till hårdvara.
Tillämpningar
DSP används i en mängd olika områden, bland annat:
- Audio: brusreducering, ekokompensation, komprimering (MP3, AAC), realtidsljudbehandling.
- Telekommunikation: modulering/demodulering, kanalavkodning, equalizers och signalhantering i basstationer och mobiltelefoner.
- Bild- och videobehandling: komprimering (JPEG, H.264/HEVC), bildförbättring och videoströmning.
- Radar och sonar: pulsbehandling, måldetektering och spårning.
- Medicinsk bildbehandling och biosignalanalys (t.ex. ECG/EEG).
- Industriell styrning och sensordatafusion i realtid, samt IoT-enheter med låg effektförbrukning.
Fördelar och begränsningar
- Fördelar: mycket hög beräkningsprestanda per watt för signaloperationer, specialiserade instruktioner som minskar körningstid, och ofta deterministisk realtidsprestanda.
- Begränsningar: kan vara svårare att programmera än generella processorer, vissa DSP:er har begränsat minne och I/O, samt kompromisser mellan precision (fixed-point vs floating-point) och prestanda/kostnad.
Prestandamått och designval
När man väljer en DSP-bedöms ofta parametrar som antal MACs per sekund, klockfrekvens, minnesbandbredd, latens och energiförbrukning. Designval påverkas också av om algoritmerna är bäst lämpade för fixed-point (som ofta ger lägre kostnad och lägre energiförbrukning) eller floating-point (förenklar utveckling och förbättrar numerisk stabilitet).
Framtid och trender
Moderna system ser en ökad integration av DSP-funktioner i system-on-chip (SoC) tillsammans med generella CPU-kärnor, grafikacceleratorer och maskininlärnings-enkla accelerators. Även specialiserade neurala nätverksacceleratorer kompletterar traditionella DSP-funktioner för applikationer som ljudigenkänning och bildanalys. Energieffektivitet och möjligheten att köra komplexa realtidsalgoritmer nära sensorn (edge computing) är viktiga drivkrafter framåt.
Sammanfattningsvis är en digital signalprocessor en målarchitektur för applikationer där stora mängder numeriska signaloperationer måste utföras snabbt och ofta i realtid — från mobilkommunikation och ljudbehandling till medicinsk diagnostik och industriell automation.

