Guide

DSP: Digitale signalprosessorer (del 3)

Digitale signalprosessorer og andre prosessorer har igjennom utviklingen påvirket hverandre, og idag fines det flere alternativer til den klassiske DSP-arkitekturen som beskrevet i forrige artikkel. Blant disse finner vi prosessorer med mange MAC (Multiply and Accumulate) enheter, prosessorer med arrayer av underprosessorer, FPGA-kretser, og ikke minst DSP-koprosessorer til alminnelige prosessorer. Denne artikkelen gir en oversikt over disse.

DSP med FPGA

FPGA, Field Programmable Gate Array, er som navnet antyder en krets der logiske porter ("gate") er lagt ut som en matrise ("array"), der disse kan programmeres av en bruker. Dette i motsetning til en ASIC som er designet på forhånd og produsert med en spesifik funksjon (se tidligere artikkel om kretsdesign). De logiske portene (CLB - Configurable Logical Blocks) kan programmeres til forskjellige funksjoner, oftest ved å definere verdier i en tabell (LUT - Look Up Table) der inngangene er en indeks i tabellen.

Forenklet oversikt over komponentene i en CLB
i en CLB
Forenklet oversikt over komponentene i en CLB i en CLB

Også andre og mer avanserte elementer kan legges inn, f.eks. DSP-enheter (f.eks DSP48), minne, prosessorer, kryptoenheter med mer. Selv om disse kan lages fra enkle logiske elementer som beskrevet over, vil det være langsommere og mer plasskrevende.

Rundt de forskjellige logiske blokkene ligger høyhastighetslinjer, omtrent som flerfeltsveier rundt kvartaler med logiske blokker, og kryssene er da som koblingspunkter for omruting.

Forenklet oversikt over komponentene i en FPGA
Forenklet oversikt over komponentene i en FPGA

Programmering skjer ved å definere funksjonene i blokkene (blå firkanter), som igjen betyr å definere innholdet i oppslagstabellene, og ved å definere forbindelsene (orange utstikkere) mellom hver CLB og høyhastighetslinjene (olivengrønne baner), og mellom høyhastighetslinjene i kryssene (lysegrønne kvadrater). Dette skjer typisk i et høynivåspråk siden det er en overveldende oppgave å holde styr på flere hundrede tusener med blokker, tabeller med mer.

I bruk er en FPGA-løsning typisk langt raskere enn en programmerbar DSP, av flere grunner. For det første er komponentene stablet etterhverandre i den rekkefølgen data prosesseres, der seksjoner med logiske blokker gjør sin del som om det var et samlebånd. I en mobiltelefon kan dette være demodulasjon,  dekoding  av protokolldata, dekoding av lyd, balansering av lyd med mer. En kan også ha parallelle funksjoner som f.eks. styring av sendereffekt og mottakerfrekvens. I en programmerbar DSP måtte en prosessor gjøre alt, og bruke interrupter for å kjøre parallelle funksjoner. I en FPGA er blokker koblet til hverandre med høyhastighetslinjer, så det er ikke behov for å laste om data slik en DSP må gjøre, og det er heller ikke behov for å dekode instruksjoner om en bare bruker enkle logiske blokker.

En FPGA kan også utrustes med programmerbare funskjoner som er lettere å debugge og oppgradere, eventuelt gjenbruke eksisterende kode.

Ulempen med en FPGA er typisk høy innkjøpskostnad og programmeringssystemer som er dyrere enn for tradisjonell DSP. Debugging er også mer krevende, spesielt når det er mange parallelle funksjoner som må samvirke.

Kommentarer (0)

Norges beste mobilabonnement

Mars 2017

Kåret av Tek-redaksjonen

Jeg bruker lite data:

Komplett MiniFlex 1GB


Jeg bruker middels mye data:

Telio FriBruk 5GB+EU


Jeg bruker mye data:

Komplett MaxiFlex 10GB


Jeg er superbruker:

Komplett MegaFlex 30GB


Finn billigste abonnement i vår mobilkalkulator

Forsiden akkurat nå

Til toppen