Home Tekniikka Digitaalinen signaaliprosessori

Digitaalinen signaaliprosessori



Sovelluksen esittely

Perusjohdanto

Digitaalinen signaaliprosessori koostuu suurista tai erittäin suurista integroiduista piiripiireistä suorittamaan tiettyjä signaalinkäsittelytehtäviä Laite. Sitä kehitetään asteittain vastaamaan nopeiden reaaliaikaisten signaalinkäsittelytehtävien tarpeita. Integroidun piiritekniikan ja digitaalisten signaalinkäsittelyalgoritmien kehittyessä digitaalisten signaaliprosessorien toteutustavat muuttuvat jatkuvasti, ja prosessointitoiminnot paranevat ja laajenevat jatkuvasti.

Sovellus

Digitaalinen signaaliprosessori ei rajoitu ääni- ja videotasoon, vaan sitä käytetään laajalti viestintä- ja tietojärjestelmissä, signaalien ja tietojen käsittelyssä, automaattisessa ohjauksessa, tutkassa, armeijassa, ilmailussa, ilmailussa, lääketieteessä, kodinkoneet ja monet muut alat. Aiemmin yleiskäyttöisiä mikroprosessoreita käytettiin useiden digitaalisten signaalinkäsittelytoimintojen suorittamiseen, jotka olivat hitaita ja vaikeita vastata todellisiin tarpeisiin. Bittisirujen mikroprosessorien ja nopeiden rinnakkaiskertoimien samanaikainen käyttö oli tehokas tapa toteuttaa digitaalinen signaalinkäsittely, mutta Tässä menetelmässä on monia laitteita, monimutkainen logiikkasuunnittelu ja ohjelmointi, korkea virrankulutus ja korkea hinta. Digitaalisten signaaliprosessorien ilmaantuminen on ratkaissut edellä mainitut ongelmat. DSP voi nopeasti toteuttaa signaalin hankinnan, muuntamisen, suodatuksen, arvioinnin, tehostamisen, pakkaamisen, tunnistamisen jne. käsittelyn, jotta saadaan ihmisten tarpeita vastaava signaalimuoto.

Ajoneuvon isännälle digitaalinen signaaliprosessori DSP tarjoaa pääasiassa tietyn äänikentän tai tehosteen, kuten teatterin, jazzin jne., ja jotkut voivat vastaanottaa myös teräväpiirtoradiota (HD) ja satelliittiradiota jne. niin edelleen parhaan audiovisuaalisen nautinnon saavuttamiseksi. Digitaalinen signaaliprosessori DSP parantaa ajoneuvon isännän suorituskykyä ja käytettävyyttä, parantaa äänen ja videon laatua, tarjoaa enemmän joustavuutta ja nopeamman suunnittelusyklin. Tekniikan kehittyessä uskon, että tulevaisuudessa voidaan tarjota enemmän kuulo- ja visuaalisia erikoistehosteita, ja koneen isännästä tulee korkean teknologian tieto- ja viihdekeskus autossa.

Luokittelu

Digitaaliset signaaliprosessorit voidaan jakaa ohjelmoitaviin ja ei-ohjelmoitaviin ohjelmoitavuuden mukaan. Ei-ohjelmoitava signaaliprosessori ottaa signaalinkäsittelyalgoritmin virran peruslogiikkarakenteeksi ilman ohjausohjelmaa ja voi yleensä suorittaa vain yhden pääkäsittelytoiminnon, joten sitä kutsutaan myös erilliseksi signaaliprosessoriksi. Kuten nopea Fourier-muunnosprosessori, digitaalinen suodatin jne. Vaikka tämän tyyppisellä prosessorilla on rajalliset toiminnot, sillä on suurempi käsittelynopeus. Ohjelmoitava signaaliprosessori voi muuttaa prosessorin suorittamaa toimintoa ohjelmoinnin avulla, ja sillä on suurempi monipuolisuus, joten sitä kutsutaan myös yleiskäyttöiseksi signaaliprosessoriksi. Yleiskäyttöisten signaaliprosessorien suorituskyvyn ja hinta-suhteen jatkuvan parantamisen myötä sen käyttö signaalialueella on tulossa yhä suositummaksi.

Kehitetyt ohjelmoitavat signaaliprosessorit ovat suunnilleen seuraavat:

Päärunko on mikroprosessointisiru, jonka perusbitin pituus on 2, 4 ja 8 bittiä ja jossa on ohjelma Ohjaussiru, keskeytys- ja DMA-ohjaussiru, kellosiru ja muita komponentteja. Mikroohjelmaohjauksen ja ryhmittelykäskyformaatin avulla voidaan rakentaa tarvittava sanapituus järjestelmä tarpeen mukaan. Sen etuja ovat nopea käsittelynopeus ja korkea hyötysuhde. Haittapuolena on, että virrankulutus on suuri, ja myös sirujen määrä on suuri.

Yksisiruinen signaaliprosessori. Se integroi aritmeettisen yksikön, kertoimen, muistin, vain lukumuistin (ROM), tulo- ja lähtöliitännät ja jopa analogia-digitaali-, digitaali-analogiamuunnoksen jne., kaikki yhdellä sirulla. Siinä on nopea laskentanopeus, korkea tarkkuus, alhainen virrankulutus ja vahva monipuolisuus. Yleiskäyttöisiin mikroprosessoreihin verrattuna sen käskyjoukko ja osoitusmuoto sopivat paremmin yleisiin toimintoihin ja tietorakenteisiin signaalinkäsittelyssä.

Very Large Scale Integration(VLSI) -taulukkoprosessori. Tämä on signaaliprosessori, joka käyttää suurta määrää prosessointiyksiköitä suorittaakseen saman toiminnon eri tiedoille yhden käskysarjan ohjauksessa nopeiden laskelmien saamiseksi. Se sopii erittäin hyvin signaalinkäsittelytehtäviin, joissa on suuri tietomäärä, suuri määrä laskentaa ja voimakas toistuva toiminta. Niitä käytetään usein yhdessä yleiskäyttöisten tietokoneiden kanssa tehokkaan signaalinkäsittelyjärjestelmän muodostamiseksi. Olemassa olevia taulukkoprosessoreja on karkeasti kahta tyyppiä, nimittäin systolisia taulukkoprosessoreja.

Ja aaltotaulukkoprosessori. Ensimmäinen käyttää yhtenäistä synkronista kello- ja ohjausmekanismia koko ryhmälle, ja sen etuna on yksinkertainen rakenne, hyvä modulaarisuus ja helppo laajentaa. Jälkimmäinen ottaa käyttöön kunkin yksikön itsenäisen ajoituksen ja tietopohjaisen mekanismin. Se tuo tiettyä mukavuutta ohjelmointiin ja vikasietoiseen suunnitteluun ja parantaa myös käsittelynopeutta.

Kehityksen suunta

Digitaaliset signaaliprosessorit ovat kehittyneet 1970-luvulla omistetuista signaaliprosessoreista VLSI-matriisiprosessoreihin, ja niiden sovellusalueet ovat muuttuneet alkuperäisestä puheesta, kaikuluotaimesta jne. Matalataajuisten signaalien käsittely signaalit on kehitetty suurten videodatamäärien, kuten tutkan ja kuvien, signaalinkäsittelyyn. Liukulukuaritmeettisen ja rinnakkaiskäsittelytekniikan käytön ansiosta signaaliprosessorien käsittelyominaisuudet ovat parantuneet huomattavasti. Digitaalinen signaaliprosessori kehittyy edelleen kahteen suuntaan, prosessointinopeuden ja toimintatarkkuuden parantamiseen. Tietovirtarakenteesta ja arkkitehtuurin keinotekoisesta hermoverkkorakenteesta tulee todennäköisesti seuraavan sukupolven digitaalisen signaaliprosessorin perusrakennemalli.

AlgoritmiMuoto

DSP-algoritmeja on monia. Useimmat DSP-prosessorit käyttävät kiinteän pisteen aritmetiikkaa, ja luvut ilmaistaan ​​kokonaislukuina tai desimaalilukuina välillä -1,0 ja +1,0. Jotkut prosessorit käyttävät liukulukuaritmetiikkaa, ja tiedot ilmaistaan ​​muodossa mantissa plus eksponentti: mantissa x 2 eksponentti.

Liukulukuaritmetiikka on monimutkaisempi perinteinen algoritmi, jossa liukulukudataa käyttämällä voidaan saavuttaa suuri dynaaminen tietoalue. Tämä dynaaminen alue voidaan ilmaista enimmäis- ja minimilukujen suhteella. Liukuluku-DSP:tä käytettäessä suunnittelijoiden ei tarvitse välittää sellaisista seikoista kuin dynaaminen alue ja tarkkuus. Liukuluku-DSP on helpompi ohjelmoida kuin kiinteän pisteen DSP, mutta kustannukset ja virrankulutus ovat korkeat.

Kustannusten ja virrankulutuksen vuoksi kiinteän pisteen DSP:itä käytetään yleensä bulkkituotteissa. Ohjelmointi- ja algoritmisuunnittelijat käyttävät analyysiä tai simulaatiota tarvittavan dynaamisen alueen ja tarkkuuden määrittämiseen. Jos vaatimus on helppo kehittää ja dynaaminen alue on erittäin laaja ja tarkkuus korkea, voit harkita liukuluku-DSP:n käyttöä.

Liukulukulaskelmia voidaan toteuttaa myös ohjelmistolla kiinteän pisteen DSP:n käytön ehdoissa, mutta tällaiset ohjelmistot vievät paljon prosessoriaikaa, joten niitä käytetään harvoin. Tehokas menetelmä on "lohko liukuluku", joka käyttää tätä menetelmää dataryhmän käsittelemiseen, jolla on sama eksponentti, mutta eri mantissot kuin tietolohkot. "Block floating point" -käsittely toteutetaan yleensä ohjelmistossa.

Tietojen leveys

Kaikkien liukulukujen DSP:iden sanaleveys on 32 bittiä, kun taas kiinteän pisteen DSP:n sanaleveys on yleensä 16 bittiä, ja niitä on myös 24 bittiä ja 20 bittiä. Bit DSP, kuten Motorolan DSP563XX-sarja ja Zoranin ZR3800X-sarja. Koska sanan leveydellä on suuri suhde DSP:n ulkoiseen kokoon, nastojen lukumäärään ja tarvittavan muistin kokoon, sanan leveyden pituus vaikuttaa suoraan laitteen hintaan. Mitä leveämpi sana on, sitä suurempi koko, sitä enemmän nastaa, sitä suuremmat muistivaatimukset ja vastaava kustannusten nousu. Jos täytät suunnitteluvaatimukset, yritä valita DSP, jolla on pieni merkkileveys kustannusten vähentämiseksi.

Kun valitset kiinteän pisteen ja liukupisteen välillä, voit punnita sanan leveyden ja kehityksen monimutkaisuuden välistä suhdetta. Esimerkiksi yhdistämällä käskyjä 16-bittinen sanaleveä DSP-laite voi toteuttaa myös 32-bittisen sanaleveän kaksoistarkkuusalgoritmin. Jos yksittäinen tarkkuus täyttää suurimman osan laskentavaatimuksista ja vain pieni määrä koodia vaatii kaksinkertaista tarkkuutta, tämä menetelmä on myös mahdollinen, mutta jos suurin osa laskelmista vaatii suurta tarkkuutta, sinun on valittava prosessori, jossa on suurempi sana leveys.

Huomaa, että useimmilla DSP-laitteilla on sama käskysanan ja datasanan leveys, mutta niissä on joitain eroja. Esimerkiksi ADI:n ADSP-21XX-sarjan datasana on 16-bittinen ja käskysana 24-bittinen. .

Käsittelynopeus

Se, täyttääkö prosessori suunnitteluvaatimukset, ratkaisee, täyttääkö se nopeusvaatimukset. Prosessorin nopeuden testaamiseen on monia tapoja, joista yksinkertaisin on mitata prosessorin käskysykliä.

Käskyn suoritusaika ei kuitenkaan osoita prosessorin todellista suorituskykyä. Eri prosessorit suorittavat erilaisia ​​tehtäviä yhdellä käskyllä. Pelkästään käskyn suoritusajan vertailu ei pysty erottelemaan suorituskyvyn eroa reilusti. Jotkut uudet DSP:t käyttävät erittäin pitkän ohjesanan (VLIW) arkkitehtuuria. Tässä arkkitehtuurissa voidaan toteuttaa useita käskyjä yhdessä syklissä, ja jokainen käsky toteuttaa vähemmän tehtäviä kuin perinteiset DSP:t. Siksi se on suhteessa VLIW- ja yleiskäyttöisiin DSP-laitteisiin. Toisin sanoen MIPS:n koon vertailu voi olla harhaanjohtavaa.

Jopa verrattuna perinteiseen DSP MIPS -kokoon, on olemassa tiettyä yksipuolisuutta. Esimerkiksi jotkut prosessorit sallivat useiden bittien siirtämisen yhteen yhdessä käskyssä samanaikaisesti, kun taas jotkut DSP-käskyt voivat siirtää vain yhden bitin dataa; Jotkut DSP:t voivat suorittaa rinnakkaisia ​​tietoja, joilla ei ole mitään tekemistä suoritettavan ALU-käskyn kanssa. Prosessointi (operandien lataaminen käskyjä suoritettaessa) ja jotkin DSP:t voivat tukea vain suoritettaviin ALU-käskyihin liittyvää tietojen rinnakkaista käsittelyä; Jotkut uudet DSP:t mahdollistavat kahden MAC:n määrittämisen yhden käskyn sisällä. Siksi prosessorin suorituskykyä ei voida saada tarkasti yksinkertaisesti vertaamalla MIPS:iä.

Yksi ​​tapa ratkaista yllä olevat ongelmat on käyttää perustoimintoa standardina suorittimen suorituskyvyn vertailuun. MAC-toimintaa käytetään yleisesti, mutta MAC-käyttöaika ei anna tarpeeksi tietoa DSP-suorituskykyerojen vertailuun. Useimmissa DSP:issä MAC-toiminta on toteutettu vain yhdessä käskyjaksossa, ja sen MAC-aika on sama kuin käskyjakson aika, kuten edellä mainittiin. Jotkut DSP:t voivat käsitellä enemmän tehtäviä yhdessä MAC-jaksossa kuin muut DSP:t. MAC-aika ei heijasta suorituskykyä, kuten silmukkatoimintoja, joita käytetään kaikissa sovelluksissa.

Yleisin tapa on määrittää joukko vakiorutiineja ja verrata suoritusnopeuksia eri DSP:illä. Tämä rutiini voi olla algoritmin "ydintoiminto", kuten FIR- tai IIR-suodattimet, tai se voi olla koko sovellus tai osa sovellusta, kuten puheenkooderi.

Kun vertaat DSP-prosessorien nopeuksia, kiinnitä huomiota mainostettuihin MOPS- (miljoonaa operaatiota sekunnissa) ja MFLOPS-parametreihin (miljoonaa liukulukuoperaatiota sekunnissa), koska eri valmistajilla on käsitys "toiminnasta" erilainen, ja indeksin merkitys on myös erilainen. Jotkut prosessorit voivat esimerkiksi suorittaa liukulukukertolaskuja ja liukulukujen yhteenlaskuoperaatioita samanaikaisesti, joten niiden tuotteiden MFLOPS on kaksi kertaa suurempi kuin MIPS.

Toiseksi, kun verrataan prosessorin kellotaajuuksia, DSP:n sisääntulokello voi olla sama kuin sen käskytaajuus tai se voi olla kahdesta neljään kertaa käskytaajuus, ja eri prosessorit voivat olla erilaisia. Lisäksi monissa DSP:issä on kellokertoja tai vaihelukittu silmukka, ja ne voivat käyttää ulkoisia matalataajuisia kelloja generoidakseen sirulla olevia suurtaajuisia kellosignaaleja.

Käytännön sovellus

Puheenkäsittely: puhekoodaus, puhesynteesi, äänentunnistus, puheenparannus, puheposti, puheen tallennus jne.

Kuva/grafiikka: kaksi- ja kolmiulotteinen grafiikan käsittely, kuvan pakkaus ja siirto, kuvantunnistus, animaatio, robottinäkö, multimedia, sähköiset kartat, kuvanparannus jne.

Armeija; luottamuksellinen viestintä, tutkakäsittely, luotainkäsittely, navigointi, globaali paikannus, taajuushyppelyradio, haku ja haun esto jne.

Instrumentit ja mittarit: spektrianalyysi, toimintojen luominen, tiedonkeruu, seisminen käsittely jne.

Automaattinen ohjaus: ohjaus, syvän avaruuden toiminnot, automaattinen ajo, robotin ohjaus, levyn ohjaus jne.

Lääketieteellinen: kuulolaitteet, ultraäänilaitteet, diagnostiset työkalut, potilaan seuranta, EKG jne.

Kodinkoneet: digitaalinen ääni, digitaalinen TV, videopuhelin, musiikin synteesi, äänentoisto, lelut ja pelit jne.

Esimerkkejä biolääketieteellisestä signaalinkäsittelystä:

CT: tietokoneistettu röntgentomografialaite. (Heidän joukossaan Housefield, joka keksi brittiläisen EMI-yhtiön CT:n, voitti Nobel-palkinnon.)

CAT: tietokoneistettu röntgensäteinen spatiaalinen rekonstruktiolaite. Näkyviin tulee koko kehon skannaus, kolmiulotteiset kuvat sydämen toiminnasta, vieraita kappaleita aivokasvaimissa ja kuvan rekonstruktio ihmisen vartalosta. EKG-analyysi.

Tallennustilan hallinta

DSP:n suorituskykyyn vaikuttaa sen kyky hallita muistialijärjestelmää. Kuten aiemmin mainittiin, MAC ja jotkut muut signaalinkäsittelytoiminnot ovat DSP-laitteiden signaalinkäsittelyn perusominaisuuksia. Nopea MAC-suorituskyky edellyttää yhden käskysanan ja kahden datasanan lukemista muistista jokaisessa käskyjaksossa. Tämän lukemisen saavuttamiseksi on useita tapoja. Esimerkiksi monikäyttöisen muistin käyttö (joka mahdollistaa useiden pääsyn muistiin jokaisessa käskyjaksossa), erillisen käsky- ja datamuistin ("Harvard"-rakenne ja sen johdannaiset) ja käskyvälimuistin (jolla käskyt voidaan lukea välimuistista) muistin sijaan, jolloin muisti vapautuu tietojen lukemista varten).

Huomioi myös tuetun muistitilan koko. Monen kiinteän pisteen DSP:n pääkohdemarkkinat ovat sulautetut sovellusjärjestelmät, joissa muisti on yleensä pieni, joten tässä DSP-laitteessa on pieni tai keskikokoinen sirumuisti (noin 4K - 64K sanaa) ja kapea ulkoinen dataväylä. Lisäksi useimpien kiinteän pisteen DSP:iden osoiteväylä on enintään 16 bittiä, joten ulkoinen muistitila on rajoitettu.

Joissakin liukuluku-DSP:issä on pieni tai ei lainkaan muistia, mutta ulkoinen dataväylä on leveä. Esimerkiksi TI:n TMS320C30:ssä on vain 6K-sirumuisti, ulkoinen väylä on 24-bittinen ja 13-bittinen ulkoinen osoiteväylä. Ja ADI:n ADSP2-21060:ssä on 4 Mt on-chip muisti, joka voidaan jakaa ohjelmamuistiin ja tietomuistiin monin tavoin.

Kun valitset DSP:tä, sinun on valittava tietyn sovelluksen tallennustilan koon ja ulkoisen väylän vaatimusten mukaan.

Tyypin ominaisuudet

DSP-suorittimet ja yleiskäyttöiset prosessorit (GPP-prosessorit), kuten Intel, Pentium tai Power

PC:llä on erittäin suuri ero on, että DSP:iden rakenne ja ohjeet on suunniteltu ja kehitetty erityisesti signaalinkäsittelyä varten. Sillä on seuraavat ominaisuudet.

Laitteiston kertolasku- ja keräämistoiminnot (MAC)

Jotta kerto- ja keräämisoperaatiot, kuten signaalin suodatus, voidaan suorittaa tehokkaasti loppuun, prosessorin on suoritettava tehokkaita kertolaskutoimia. GPP:itä ei alun perin suunniteltu raskaita kertolaskuoperaatioita varten. Ensimmäinen merkittävä tekninen parannus, joka erotti DSP:t aiemmista GPP:istä, oli erikoislaitteiston lisääminen, joka pystyy suorittamaan yksijaksoisia kertolaskutoimia, ja selkeät MAC-käskyt.

Harvardin rakenne

Perinteiset GPP:t käyttävät von Normanin muistirakennetta. Tässä rakenteessa muistitila kulkee kahden väylän (osoite A-väylä ja dataväylä) kautta, jotka on kytketty prosessorin ytimeen. Tämä rakenne ei voi täyttää vaatimusta, jonka mukaan MAC:n on käytettävä muistia neljä kertaa yhden käskyjakson aikana. DSP:t käyttävät yleensä Harvardin rakennetta. Harvardin rakenteessa on kaksi tallennustilaa: ohjelmien tallennustila ja tietojen tallennustila. Prosessorin ydin on yhdistetty näihin tallennustiloihin kahden väylän kautta, mikä mahdollistaa kaksi samanaikaista pääsyä muistiin. Tämä järjestely kaksinkertaistaa prosessorin kaistanleveyden. Harvardin rakenteessa joskus lisäämällä toinen tallennustila ja väylä suuremman tallennuskaistanleveyden saavuttamiseksi. Nykyaikaisissa korkean suorituskyvyn GPP:issä on yleensä kaksi välimuistia, yksi datalle ja toinen ohjeille. Teoreettisesta näkökulmasta tämä kaksoispiirin välimuisti ja väyläyhteys vastaavat Harvardin rakennetta, mutta GPP:t käyttävät ohjauslogiikkaa määrittääkseen, mitkä tiedot ja käskysanat sijaitsevat sirulla olevassa välimuistissa. Tämä prosessi ei yleensä ole ohjelmoijille. Kuten näette, DSP:issä ohjelmoijat voivat selkeästi hallita, mitkä tiedot ja ohjeet tallennetaan sirulla oleviin tallennusyksiköihin tai välimuistiin.

Nollakulutuksen silmukan ohjaus

DSP-algoritmien yhteinen piirre: suurin osa käsittelyajasta kuluu pienen määrän käskyjen suorittamiseen suhteellisen pienessä silmukassa. Siksi useimmissa DSP-prosessoreissa on oma laitteisto nollakulutuksen jakson hallintaan. Nollakulutusjaksolla tarkoitetaan sykliä, jossa prosessori voi suorittaa joukon käskyjä kuluttamatta aikaa jaksolaskurin arvon testaamiseen, ja laitteisto suorittaa syklihypyn ja jaksolaskurin vaimennuksen. Jotkut DSP:t toteuttavat myös nopeita yhden käskyn silmukoita yhden käskyn välimuistin kautta.

Erityisosoitetila

DSP:t sisältävät usein erityisiä osoitegeneraattoreita, jotka voivat luoda signaalinkäsittelyalgoritmien vaatimia erityisosoitteita, kuten ympyrähakuosoite ja bittikäännösosoite. Syklinen osoitus vastaa liukuhihnan FIR-suodatinalgoritmia ja bitin käännösosoite vastaa FFT-algoritmia.

Suoritusajan ennustettavuus

Useimmilla DSP-sovelluksilla on tiukat reaaliaikavaatimukset, jokaisessa tapauksessa kaiken käsittelytyön on oltava määrättynä aikana Valmis. Tämä reaaliaikainen rajoitus edellyttää, että ohjelmoija määrittää, kuinka paljon aikaa kukin näyte vie, tai ainakin kuinka paljon aikaa käytetään pahimmassa tapauksessa. Ohjelmaa suorittavien DSP:iden prosessi on ohjelmoijalle läpinäkyvä, joten kunkin tehtävän suoritusaika on helppo ennustaa. Suorituskykyisten GPP:iden tapauksessa suoritusajan ennustaminen tulee kuitenkin monimutkaista ja vaikeaa, koska käytössä on suuri määrä erittäin nopeita tietoja ja ohjelmavälimuistia sekä ohjelmien dynaaminen allokointi.

Runsaat oheislaitteet

DSP:issä on oheislaitteita, kuten DMA, sarjaportit, linkkiportit ja ajastimet.

Johdatus tietoon

Algoritmimuoto

DSP-algoritmeja on monia. Useimmat DSP-prosessorit käyttävät kiinteän pisteen aritmetiikkaa, ja luvut ilmaistaan ​​kokonaislukuina tai desimaalilukuina välillä -1,0 ja +1,0. Jotkut prosessorit käyttävät liukulukuaritmetiikkaa, ja tiedot ilmaistaan ​​muodossa mantissa plus eksponentti: mantissa x 2 eksponentti.

Liukulukualgoritmi on monimutkaisempi perinteinen algoritmi, liukulukudataa käyttämällä voidaan saavuttaa suuri datadynamiikka (tämä dynaaminen alue voidaan ilmaista enimmäis- ja vähimmäislukujen suhteella). Liukuluku-DSP:tä käytettäessä suunnittelijoiden ei tarvitse välittää sellaisista seikoista kuin dynaaminen alue ja tarkkuus. Liukuluku-DSP on helpompi ohjelmoida kuin kiinteän pisteen DSP, mutta kustannukset ja virrankulutus ovat korkeat.

Kustannusten ja virrankulutuksen vuoksi kiinteän pisteen DSP:itä käytetään yleensä bulkkituotteissa. Ohjelmointi- ja algoritmisuunnittelijat käyttävät analyysiä tai simulaatiota tarvittavan dynaamisen alueen ja tarkkuuden määrittämiseen. Jos vaatimus on helppo kehittää ja dynaaminen alue on erittäin laaja ja tarkkuus korkea, voit harkita liukuluku-DSP:n käyttöä.

Liukulukulaskelmia voidaan toteuttaa myös ohjelmistolla kiinteän pisteen DSP:n käytön ehdoissa, mutta tällaiset ohjelmistot vievät paljon prosessoriaikaa, joten niitä käytetään harvoin. Tehokas menetelmä on "lohko liukuluku", joka käyttää tätä menetelmää dataryhmän käsittelemiseen, jolla on sama eksponentti, mutta eri mantissot kuin tietolohkot. "Block floating point" -käsittely toteutetaan yleensä ohjelmistossa.

Tietojen leveys

Kaikkien liukulukujen DSP:iden sanaleveys on 32 bittiä, kun taas kiinteän pisteen DSP:n sanaleveys on yleensä 16 bittiä. Saatavilla on myös 24- ja 20-bittisiä DSP:itä, kuten Motorolan DSP563XX-sarja ja Zoranin ZR3800X-sarja. Koska sanan leveydellä on suuri suhde DSP:n ulkoiseen kokoon, nastojen lukumäärään ja tarvittavan muistin kokoon, sanan leveyden pituus vaikuttaa suoraan laitteen hintaan. Mitä leveämpi sana on, sitä suurempi koko, sitä enemmän nastaa, sitä suuremmat muistivaatimukset ja vastaava kustannusten nousu. Jos täytät suunnitteluvaatimukset, yritä valita DSP, jolla on pieni merkkileveys kustannusten vähentämiseksi.

Kun valitset kiinteän pisteen ja liukupisteen välillä, voit punnita sanan leveyden ja kehityksen monimutkaisuuden välistä suhdetta. Esimerkiksi yhdistämällä käskyjä 16-bittinen sanaleveä DSP-laite voi toteuttaa myös 32-bittisen sanaleveän kaksoistarkkuusalgoritmin (tottakai kaksinkertainen tarkkuusaritmetiikka on paljon hitaampaa kuin yhden tarkkuuden aritmetiikka). Jos yksittäinen tarkkuus täyttää suurimman osan laskentavaatimuksista ja vain pieni määrä koodia vaatii kaksinkertaista tarkkuutta, tämä menetelmä on myös mahdollinen, mutta jos suurin osa laskelmista vaatii suurta tarkkuutta, sinun on valittava prosessori, jossa on suurempi sana leveys.

Huomaa, että useimpien DSP-laitteiden ohjesana ja datasanan leveys ovat samat, ja niissä on joitain eroja. Esimerkiksi ADSP-21XX-sarjan ADI (Analog Devices Company) datasana on 16 bittiä ja käsky Sana on 24 bittiä.

Prosessointinopeus

Se, täyttääkö prosessori suunnitteluvaatimukset, ratkaisee, täyttääkö se nopeusvaatimukset. On monia tapoja testata prosessorin nopeutta. Kaikkein alkeellisinta on mitata prosessorin käskyjakso, eli aika, joka kuluu prosessorilta nopeimman käskyn suorittamiseen. Käskyjakson käänteisluku jaetaan miljoonalla ja kerrotaan sitten kussakin jaksossa suoritettujen käskyjen määrällä. Tuloksena on prosessorin suurin nopeus, miljoonan käskyn yksiköissä sekunnissa, MIPS.

Käskyn suoritusaika ei kuitenkaan osoita prosessorin todellista suorituskykyä. Eri prosessorit suorittavat erilaisia ​​tehtäviä yhdellä käskyllä. Pelkästään käskyn suoritusajan vertailu ei pysty erottelemaan suorituskyvyn eroa reilusti. Jotkut uudet DSP:t käyttävät erittäin pitkää käskysana-arkkitehtuuria (VLIW). Tässä arkkitehtuurissa voidaan toteuttaa useita käskyjä yhdessä syklissä, ja jokainen käsky toteuttaa vähemmän tehtäviä kuin perinteiset DSP:t. Siksi se on suhteessa VLIW- ja yleiskäyttöisiin DSP-laitteisiin. Toisin sanoen MIPS:n koon vertailu voi olla harhaanjohtavaa.

Jopa verrattuna perinteiseen DSP MIPS -kokoon, on olemassa tiettyä yksipuolisuutta. Esimerkiksi jotkut prosessorit sallivat useiden bittien siirtämisen yhteen yhdessä käskyssä samanaikaisesti, kun taas jotkut DSP-käskyt voivat siirtää vain yhden bitin dataa; Jotkut DSP:t voivat suorittaa rinnakkaisia ​​tietoja, joilla ei ole mitään tekemistä suoritettavan ALU-käskyn kanssa. Prosessointi (operandien lataaminen käskyjä suoritettaessa) ja jotkin DSP:t voivat tukea vain suoritettaviin ALU-käskyihin liittyvää tietojen rinnakkaista käsittelyä; Jotkut uudet DSP:t mahdollistavat kahden MAC:n määrittämisen yhden käskyn sisällä. Siksi prosessorin suorituskykyä ei voida saada tarkasti yksinkertaisesti vertaamalla MIPS:iä.

Yksi ​​tapa ratkaista yllä olevat ongelmat on käyttää perustoimintoa (ohjeiden sijaan) standardina suorittimen suorituskyvyn vertailussa. MAC-toimintaa käytetään yleisesti, mutta MAC-käyttöaika ei anna tarpeeksi tietoa DSP-suorituskykyerojen vertailuun. Useimmissa DSP:issä MAC-toiminta on toteutettu vain yhdessä käskyjaksossa, ja sen MAC-aika on sama kuin käskyjakson aika, kuten edellä mainittiin. Jotkut DSP:t voivat käsitellä enemmän tehtäviä yhdessä MAC-jaksossa kuin muut DSP:t. MAC-aika ei heijasta suorituskykyä, kuten silmukkatoimintoja, joita käytetään kaikissa sovelluksissa.

Yleisin tapa on määrittää joukko vakiorutiineja ja verrata suoritusnopeuksia eri DSP:illä. Tämä rutiini voi olla algoritmin "ydintoiminto", kuten FIR- tai IIR-suodattimet jne., tai se voi olla koko sovellus tai osa siitä (kuten puheenkooderi). Kuvassa 1 on esitetty useiden BDTI:n työkaluilla testattujen DSP-laitteiden suorituskyky.

Kun vertaat DSP-prosessorien nopeuksia, kiinnitä huomiota mainostettuihin MOPS- (miljoonaa operaatiota sekunnissa) ja MFLOPS-parametreihin (miljoonaa liukulukuoperaatiota sekunnissa), koska eri valmistajilla on käsitys "toiminnasta" erilainen, ja indeksin merkitys on myös erilainen. Jotkut prosessorit voivat esimerkiksi suorittaa liukulukukertolaskuja ja liukulukujen yhteenlaskuoperaatioita samanaikaisesti, joten niiden tuotteiden MFLOPS on kaksi kertaa suurempi kuin MIPS.

Toiseksi, kun verrataan prosessorin kellotaajuuksia, DSP:n sisääntulokello voi olla sama kuin sen käskytaajuus tai se voi olla kahdesta neljään kertaa käskytaajuus, ja eri prosessorit voivat olla erilaisia. Lisäksi monissa DSP:issä on kellokertoja tai vaihelukittu silmukka, ja ne voivat käyttää ulkoisia matalataajuisia kelloja generoidakseen sirulla olevia suurtaajuisia kellosignaaleja.

Käytännön sovellus

Äänenkäsittely: puhekoodaus, puhesynteesi, äänentunnistus, puheenparannus, puheposti, puheen tallennus jne.

Kuva/grafiikka: 2D- ja 3D-grafiikkakäsittely, kuvan pakkaus ja siirto, kuvantunnistus, animaatio, robottinäkö, multimedia, sähköiset kartat, kuvanparannus jne.

Armeija; luottamuksellinen viestintä, tutkakäsittely, luotainkäsittely, navigointi, globaali paikannus, taajuushyppelyradio, haku ja haun esto jne.

Instrumentit ja mittarit: spektrianalyysi, toimintojen luominen, tiedonkeruu, seisminen käsittely jne.

Automaattinen ohjaus: ohjaus, syvän avaruuden toiminnot, automaattinen ajo, robotin ohjaus, levyn ohjaus jne.

Lääketieteellinen: kuulolaitteet, ultraäänilaitteet, diagnostiset työkalut, potilaan seuranta, EKG jne.

Kodinkoneet: digitaalinen ääni, digitaalinen TV, videopuhelin, musiikin synteesi, äänentoisto, lelut ja pelit jne.

Esimerkkejä biolääketieteellisestä signaalinkäsittelystä:

CT: tietokoneistettu röntgentomografialaite. (Heidän joukossaan Housefield, joka keksi pään CT:n, brittiläinen EMI, voitti Nobel-palkinnon.)

CAT: tietokoneistettu röntgensäteinen spatiaalinen rekonstruktiolaite. Näkyviin tulee koko kehon skannaus, kolmiulotteiset kuvat sydämen toiminnasta, vieraita kappaleita aivokasvaimissa ja kuvan rekonstruktio ihmisen vartalosta.

EKG-analyysi.

Tallennustilan hallinta

DSP:n suorituskykyyn vaikuttaa sen kyky hallita muistialijärjestelmää. Kuten aiemmin mainittiin, MAC ja jotkut muut signaalinkäsittelytoiminnot ovat DSP-laitteiden signaalinkäsittelyn perusominaisuuksia. Nopea MAC-suorituskyky edellyttää yhden käskysanan ja kahden datasanan lukemista muistista jokaisessa käskyjaksossa. On monia tapoja saavuttaa tämä luku, mukaan lukien monirajapintamuisti (joka sallii useita käyttöoikeuksia muistiin jokaisessa käskyjaksossa), erillinen käsky- ja datamuisti ("Harvard"-rakenne ja sen johdannaiset) ja käskyvälimuisti (mahdollistaa välimuistista lue ohjeet muistin sijaan, jolloin muisti vapautuu tietojen lukemista varten). Kuvat 2 ja 3 esittävät eron Harvardin muistirakenteen ja monien mikro-ohjainten käyttämän "von Norman" -rakenteen välillä.

Huomioi myös tuetun muistitilan koko. Monen kiinteän pisteen DSP:n pääkohdemarkkinat ovat sulautetut sovellusjärjestelmät, joissa muisti on yleensä pieni, joten tässä DSP-laitteessa on pieni tai keskikokoinen sirumuisti (noin 4K - 64K sanaa) ja kapea ulkoinen dataväylä. Lisäksi useimpien kiinteän pisteen DSP:iden osoiteväylä on enintään 16 bittiä, joten ulkoinen muistitila on rajoitettu.

Joissakin liukuluku-DSP:issä on pieni tai ei lainkaan muistia, mutta ulkoinen dataväylä on leveä. Esimerkiksi TI:n TMS320C30:ssä on vain 6K-sirumuisti, ulkoinen väylä on 24-bittinen ja 13-bittinen ulkoinen osoiteväylä. Ja ADI:n ADSP2-21060:ssä on 4 Mt on-chip muisti, joka voidaan jakaa ohjelmamuistiin ja tietomuistiin monin tavoin.

Kun valitset DSP:tä, sinun on valittava tietyn sovelluksen tallennustilan koon ja ulkoisen väylän vaatimusten mukaan.

Tyyppiominaisuudet

DSP-prosessorit ja yleiskäyttöiset prosessorit (GPP-prosessorit), kuten Intel, Pentium tai Power

PC:t ovat hyvin erilaisia, nämä erot tuottavat DSP:iden rakenne ja ohjeet on suunniteltu ja kehitetty erityisesti signaalinkäsittelyä varten, ja sillä on seuraavat ominaisuudet.

·Laitteiston kertolasku- ja keräämistoiminnot (MAC)

Jotta kerto- ja keräämisoperaatiot, kuten signaalin suodatus, voidaan suorittaa tehokkaasti loppuun, prosessorin on suoritettava tehokkaita kertolaskutoimia. GPP:itä ei alun perin suunniteltu raskaita kertolaskuoperaatioita varten. Ensimmäinen merkittävä tekninen parannus, joka erotti DSP:t aiemmista GPP:istä, oli erikoislaitteiston lisääminen, joka pystyy suorittamaan yksijaksoisia kertolaskutoimia, ja selkeät MAC-käskyt.

·Harvardin rakenne

Perinteiset GPP:t käyttävät fengiä. Norman muistin rakenne. Tässä rakenteessa muistitila on kytketty prosessorin ytimeen kahden väylän (osoiteväylän ja dataväylän) kautta. Tämä rakenne ei voi tyydyttää sitä, että MAC:n on suoritettava neljä toimintoa muistille yhden käskyjakson aikana. Vaatimukset toiselle vierailulle. DSP:t käyttävät yleensä Harvardin rakennetta. Harvardin rakenteessa on kaksi tallennustilaa: ohjelmien tallennustila ja tietojen tallennustila. Prosessorin ydin on yhdistetty näihin tallennustiloihin kahden väylän kautta, mikä mahdollistaa kaksi samanaikaista pääsyä muistiin. Tämä järjestely kaksinkertaistaa prosessorin kaistanleveyden. Harvardin rakenteessa joskus lisäämällä toinen tallennustila ja väylä suuremman tallennuskaistanleveyden saavuttamiseksi. Nykyaikaisissa korkean suorituskyvyn GPP:issä on yleensä kaksi välimuistia, yksi datalle ja toinen ohjeille. Teoreettisesta näkökulmasta tämä kaksoispiirin välimuisti ja väyläyhteys vastaavat Harvardin rakennetta, mutta GPP:t käyttävät ohjauslogiikkaa määrittääkseen, mitkä tiedot ja käskysanat sijaitsevat sirulla olevassa välimuistissa. Tämä prosessi ei yleensä ole ohjelmoijille. Kuten näette, DSP:issä ohjelmoijat voivat selkeästi hallita, mitkä tiedot ja ohjeet tallennetaan sirulla oleviin tallennusyksiköihin tai välimuistiin.

Nollakulutuksen silmukan ohjaus

DSP-algoritmien yhteinen piirre: suurin osa käsittelyajasta kuluu pienen määrän käskyjen suorittamiseen suhteellisen pienessä silmukassa. Siksi useimmissa DSP-prosessoreissa on oma laitteisto nollakulutuksen jakson hallintaan. Nollakulutusjaksolla tarkoitetaan sykliä, jossa prosessori voi suorittaa joukon käskyjä kuluttamatta aikaa jaksolaskurin arvon testaamiseen, ja laitteisto suorittaa syklihypyn ja jaksolaskurin vaimennuksen. Jotkut DSP:t toteuttavat myös nopeita yhden käskyn silmukoita yhden käskyn välimuistin kautta.

·Erityisosoitetila

DSP:t sisältävät usein erityisiä osoitegeneraattoreita, jotka voivat luoda signaalinkäsittelyalgoritmien vaatimia erityisosoitteita, kuten silmukkaosoitteita ja bittikäännösosoitteita. Syklinen osoitus vastaa liukuhihnan FIR-suodatinalgoritmia ja bitin käännösosoite vastaa FFT-algoritmia.

·Suoritusajan ennustettavuus

Useimmilla DSP-sovelluksilla on kovat reaaliaikavaatimukset. Kussakin tapauksessa kaikki käsittelytyöt on määritettävä Valmistettu ajoissa. Tämä reaaliaikainen rajoitus edellyttää, että ohjelmoija määrittää, kuinka paljon aikaa kukin näyte vie, tai ainakin kuinka paljon aikaa käytetään pahimmassa tapauksessa. Ohjelmaa suorittavien DSP:iden prosessi on ohjelmoijalle läpinäkyvä, joten kunkin tehtävän suoritusaika on helppo ennustaa. Suorituskykyisten GPP:iden tapauksessa suoritusajan ennustaminen tulee kuitenkin monimutkaista ja vaikeaa, koska käytössä on suuri määrä erittäin nopeita tietoja ja ohjelmavälimuistia sekä ohjelmien dynaaminen allokointi.

·Runsaat oheislaitteet

DSP:issä on oheislaitteita, kuten DMA, sarjaportit, linkkiportit ja ajastimet.

Arviointikriteerit

Suorituskykyluokitus

DSP-prosessorien suorituskyky voidaan jakaa kolmeen luokkaan: edulliset, alhaisen suorituskyvyn DSP:t ja vähän energiaa kuluttavat keskitason DSP:t Ja erilaisia ​​huippuluokan DSP:itä. Edulliset ja edulliset DSP:t ovat alan yleisimmin käytettyjä prosessoreita. Tämän valikoiman tuotteita ovat: ADSP-21xx, TMS320C2xx, DSP560xx ja muut sarjat, niiden toimintanopeus on yleensä 20-50MIPS, ja samalla kun säilytetään sopiva energiankulutus ja tallennuskapasiteetti, samalla kun ne tarjoavat korkealaatuista DSP-suorituskykyä. Kohtuuhintaiset DSP-prosessorit, lisääntyneen kellotaajuuden ja suorituskykyä parantavien monimutkaisempien laitteistojen ansiosta, muodostivat DSP-laitteiden keskitason tuotteet, kuten DSP16xx, TMS320C54x-sarjan, niiden toimintanopeus on 100 ~ 150MIPS, käytetään yleensä langattomassa tietoliikenteessä Laitteissa ja nopeita demodulaattoreita, suhteellisen suurta käsittelynopeutta ja alhaista energiankulutusta tarvitaan. Koska huippuluokan DSP:itä ohjaa erittäin nopean käsittelyn kysyntä, niiden rakennetta on todella alettu luokitella ja monipuolistaa. Asiaa koskeva rakenne on kuvattu seuraavassa osiossa. Huippuluokan DSP:n päätaajuus on yli 150 MHz ja prosessointinopeus yli 1000 MIPS, kuten TI:n TMS320C6X-sarja, ADI:n Tiger SHARC jne.

Arviointiindikaattorit

Prosessorin suorituskyvyn arvioimiseen on monia indikaattoreita, yleisimmin käytetty on nopeus, mutta myös energiankulutuksen ja muistikapasiteetin indikaattorit ovat erittäin tärkeitä erityisesti sulautettujen järjestelmien sovelluksissa. Koska DSP:t kasvavat, järjestelmän suunnittelijoiden on vaikeampaa valita prosessori, joka pystyy tarjoamaan parhaan suorituskyvyn tietyllä sovelluslaitteella. Aiemmin DSP-järjestelmien suunnittelijat luottivat MIPS:iin tai vastaaviin mittareihin saadakseen karkean käsityksen eri sirujen tarjoamasta suhteellisesta suorituskyvystä. Valitettavasti prosessoriteknologian monipuolistuessa perinteiset mittaukset, kuten MIPS, ovat yhä epätarkempia, koska MIPS ei itse asiassa mittaa suorituskykyä. Koska yksi DSP-sovellusten ominaisuuksista on, että suurin osa prosessointityöstä keskittyy ohjelman osaan (ydinohjelma), on mahdollista testata ja arvioida DSP-prosessoria signaalinkäsittelyyn liittyvillä referenssiohjelmilla. BDTI on suorittanut joukon perusstandardeja ja rekisteröinyt uudentyyppisen hybridinopeuden mittauksen: BDTI-pistemäärän.

Johdatus rakenteeseen

Yleiskatsaus

Viimeisten kahden vuoden aikana DSP-prosessorin parempaa suorituskykyä ei ole voitu ratkaista perinteisestä rakenteesta, joten erilaisia ​​parannuksia on ehdotettu. strategia. Kellotaajuuden lisääminen näyttää olevan rajoitettua, ja paras tapa on lisätä rinnakkaisuutta. Toimintojen rinnakkaisuuden lisääminen voidaan saavuttaa kahdella tavalla: lisäämällä kunkin käskyn suorittamien operaatioiden määrää tai lisäämällä kunkin käskyjakson aikana suoritettavien käskyjen määrää. Nämä kaksi rinnakkaista vaatimusta ovat tuottaneet useita uusia rakenteita DSP:ille.

Parannettu

DSP

Aiemmin DSP-prosessorit käyttivät monimutkaisia ​​ja sekoitettuja käskyjoukkoja, jolloin ohjelmoijat pystyivät koodaamaan useita toimintoja yhteen käskyyn. Perinteisesti DSP-prosessorit antavat ja suorittavat vain yhden käskyn yhdessä käskyjaksossa. Tämä yksivirtainen, monimutkainen käskymenetelmä mahdollistaa DSP-prosessorin erittäin tehokkaan suorituskyvyn ilman suurta muistimäärää.

Samalla kun DSP-rakenne ja yllä mainittu käskyjoukko pidetään muuttumattomina, yksi tapa lisätä kunkin käskyn työmäärää on käyttää lisäsuoritusyksiköitä ja lisätä datapolkuja. Esimerkiksi joissakin huippuluokan DSP:issä on kaksi kerrointa yhden sijasta. Kutsumme tätä menetelmää käyttäviä DSP:itä 撛銮啃畃覫榫覫諛iksi, koska niiden rakenne on samanlainen kuin edellisen sukupolven DSP, mutta suorituskykyä parannetaan huomattavasti lisäämällä suoritusyksiköitä. Tietenkin käskyjoukkoa on samalla myös parannettava, jotta ohjelmoija voi määrittää yhdessä käskyssä useampia rinnakkaisia ​​toimintoja hyödyntääkseen lisälaitteita. Esimerkkejä parannetuista DSP:istä ovat Lucentin DSP16000 ja ADI:n ADSP2116x. Parannettujen DSP:iden etuna on, että ne ovat yhteensopivia ja niillä on samanlaiset kustannukset ja virrankulutus kuin aikaisemmissa DSP:issä. Haittapuolena on, että rakenne on monimutkainen, ohjeet monimutkaiset ja jatkokehitys on rajallista.

VLIW

Rakenne

As mentioned earlier, traditional DSP processors use complex mixed instructions, and Only one instruction flows and executes in the instruction loop. However, recently some DSPs adopt a more RISC-based instruction set, and execute multiple instructions in one instruction cycle, using a large unified register file. For example, Siemems' Carmel, Philips' TriMedia, and TI's TMS320C62XX processor family all use a very long instruction word (VLIW) structure. The C62xx processor fetches a 256-bit instruction packet each time, parses the packet into 8 32-bit instructions, and then directs them to its 8 independent execution units. In the best case, C62xx executes 8 instructions at the same time. In this case, it reaches a very high MIPS rate (such as 1600MIPS). The advantages of the VLIW structure are high performance, regular structure (potentially easy to program and good target compilation system).缺点是高功耗、代码膨胀-需要宽的程序存储器、新的编程/编译困难(需跟踪指令安排,易破坏流水线使性能下降)。

超标量体

超标量体系结构

象VLIW处理器一样,超标量体系结构并行地流出和执行多个指令。但跟VLIW处理器不同的是,超标量体系结构不清楚指定需要并行处理的指令,而是使用动态指令规划,根据处理器可用的资源,数据依赖性和其他的因素来决定哪些指令要被同时执行。超标量体系结构已经长期用于高性能的通用处理器中,如Pentium和PowerPC。最近,ZSP公司开发出第一个商业的超标量体系结构的DSP

ZSP164xx。超标量结构的优点是性能有大的跨越、结构规整、代码宽度没有明显增长。缺点是非常高的功耗、指令的动态安排使代码优化困难。

SIMD

结构

单指令多数据流(SIMD)处理器把输入的长的数据分解为多个较短的数据,然后由单指令并行地操作,从而提高处理海量、可分解数据的能力。该技术能大幅度地提高在多媒体和信号处理中大量使用的一些矢量操作的计算速度,如坐标变换和旋转。

通用处理器SIMD增强的两个例子是Pentium的MMX扩展和PowerPC族的AltiVec扩展。 simd在一些高性能的DSP处理器中也有应用。例如,DSP16000在其数据路中支持有限的SIMD风格的操作,而Analog

Devices最近推出了有名的SHARC的新一代DSP处理器,进行了SIMD能力的扩展。 SIMD结构由于使总线、数据通道等资源充分使用,并无需改变信号处理(含图象、语音)算法的基本结构,因此SIMD结构使用越来越普遍。 SIMD结构遇到的问题是算法、数据结构必须满足数据并行处理的要求,为了加速,循环常常需要被拆开,处理数据需要重新安排调整。通常SIMD仅支持定点运算。

混合结构

DSP/微控制器的混合结构

许多的应用需要以控制为主的软件和DSP软件的混合。一个明显的例子是数字蜂窝电话,因为其中有监控和语音处理的工作。一般地,微处理器在控制上能提供良好的性能而在DSP性能上则很糟,专用的DSP处理器的特性则刚好相反。因此,最近有一些微处理器产商开始提供DSP增强版本的微处理器。用单处理器完成两种软件的任务是很有吸引力的,因为其可以潜在地提供简化设计,节省版面空间,降低总功耗,降低系统成本等。 DSP和微处理器结合的方法有:

·在一个结上集成多种处理器,如MotorolaDSP5665x

·DSP作为协处理器,如ARMPiccolo

·DSP核移值到已有的位处理器,如SH-DSP

·微控制器与已有的DSP集成在一起,如TMS320C27xx

·全部新的设计,如TriCore

随着对DSP能力需求的提高,DSP处理器结构正在进行新的和革新的设计,DSP、MCU、CPU的结构优点相互借用。

发展趋势

综述

DSP处理器发展的趋势是结构多样化,集成单片化用户化,开发工具更完善,评价体系更全面更专业。

趋势

VLIW结构、超标量体系结构和DSP/MCU混合处理器是DSPs结构发展的新潮流。 VLIW和超标量结构能够获得很高的处理性能。 DSP/MCU混合可以简化应用系统设计,降低体积和成本。高性能通用处理器(GPPs)借用了DSPs的许多结构优点,其浮点处理速度比高档DSPs还要快。高性能GPPs一般时钟频率为200~500MHz,具有超标量、SIMD结构,单周期乘法操作,好的存储器带宽,转移预测功能,因此GPPs正在涉足DSP领域。但由于GPPs缺乏实时可预测性,优化DSP代码困难,有限的DSP工具支持,高功耗等问题,因此GPPs在DSP中的应用还有限。但瞄准嵌入系统应用的高性能GPPs与DSPs进行混合,形成专用的嵌入GPPs,如Hitachi的SH-DSP,ARM的Piccolo,Siemens的TriCore。嵌入GPPs保留原有的高性能,并加强DSP实时预测、控制等方面的能力,与专用DSP处理器形成了对照。

在DSPs综合集成方面,处理器核和快速用户可定制能力是重要的。预计将出现和流行:用户可定制DSPs,块组建DSPs,可编程整数DSPs,DSPs化现场可编程门阵列(FPGAs),更专用化的DSPs,多媒体DSPs等。更令人鼓舞的是未来DSP处理器将集成DSP处理器核,微控制器,存储器RAM和ROM,串行口,模数转换器,数模转换器,用户定义数字电路,用户定义模拟电路等,因此DSP处理系统一般将不再是若干印制板(如信号调理板,A/D板,D/A板,接口定时板等)组成的大系统。

由于DSPS结构的多样化,DSPS性能测试将变得更加困难,MIPS、MOPS、MFLOPS、BOPS等指标将越来越不能准确反映DSPS的性能,因此需要更细更专业化的测试评价标准。对具体应用来说,某些单项功能测试结果,可能显得更重要。

随着DSPs性能的提高,开发工具可能比处理器结构将更重要,因为只有有效的开发工具,才能使处理器得到普遍使用,并使性能充分发挥。片上Debug是实时调试的最好手段,它将采用与JTAG兼容的Debug口。 C编译器的效率仍然是重点,如何方便容易地进行有效代码开发是关键。指令软件仿真器显得更重要,更精确的指令软件仿真器将得到开发。多类型DSP调试开发工具将混合集成在一起。 DSPs开发工具将是一个充满机遇和挑战的领域。

DSP处理器存在两种发展趋势:一是DSP应用越来越多,如手机和便携式音频播放器等。 DSP将集成更多功能,如A/D转换、LCD控制器等,系统成本和器件数将会大为降低。另一个趋势是将DSP作为IP出售,如亿恒科技公司的Camel和TriCore内核。随着EDA工具的不断成熟,系统设计工程师将更容易地修改DSP内核,加入用户专用外围电路以实现更专业化、更低成本的DSP解决方案。

80年代还属于少数人研究的数字信号处理(DSP),进入90年代以来,已逐渐成为人们最常用的工程术语之一。处理器应用广泛的原因在于,处理器的制造技术发展得极为先进,使处理器的成本下降到这一水平:它可用在消费品和其它对成本敏感的系统中;处理器的处理速度上升到这一水平:它可满足大部分高速实时信号处理的需求。在产品中越来越多地使用DSP处理器,加剧了对更快、更便宜、更节省能量的DSP处理器的开发和迅速发展。

DSP处理器(DSPs)的品种越来越繁多,除了大家熟知的四大DSPs产商:TexasInstruments(德州仪器)公司、Lucent Technologies(朗讯技术)公司、Analog

Devies(模拟设备)公司和Motorola(摩托罗拉)公司,大约还有80家DSPs产商。它们生产的DSPs主要用于特殊功能的设备,如调制解调器、MPEG译码器、硬盘驱动器等。 DSP处理器可分为两大类:定点DSPs和浮点DSPs。定点DSPs发展迅速,品种最多,处理速度为20~2000MIPS。浮点DSPs基本由TI和AD公司垄断,处理速度40~1000MFLOPS。 DSPs的性能已形成低、中、高三档,高端产品处理器结构发生了深刻的变化,形成了多样化的趋势。

选购指南

DSP处理器的应用领域很广,但实际上没有一个处理器能完全满足所有的或绝大多数应用需要,设计工程师在选择处理器时需要根据性能、成本、集成度、开发的难易程度以及功耗等因素进行综合考虑。

DSP器件按设计要求可以分为两类。第一类,应用领域为廉价的、大规模嵌入式应用系统,如手机、磁盘驱动(DSP用作伺服电机控制)以及便携式数字音频播放器等。在这些应用中价格和集成度是最重要的考虑因素。对于便携式电池供电的设备,功耗也是一个关键的因素。尽管这些应用常常需要开发运行于DSP的客户应用软件和外围支持硬件,但易于开发的要求仍然是次要的因素,因为批量生产可以分摊开发成本,从而降低单位产品的开发成本。

另外一类是需要用复杂算法对大量数据进行处理的应用,例如声纳探测和地震探测等,也需要用DSP器件。该类设备的批量一般较小、算法要求苛刻、产品很大而且很复杂。所以设计工程师在选择处理器时会尽量选择性能最佳、易于开发并支持多处理器的DSP器件。有时,设计工程师更喜欢选用现成的开发板来开发系统而不是从零开始硬件和软件设计,同时可以采用现成的功能库文件开发应用软件。

在实际设计时应根据具体的应用选择合适的DSP。不同的DSP有不同的特点,适用于不同的应用,在选择时可以遵循以下要点。

DSP开发的简便性

对不同的应用来说,对开发简便性的要求不一样。对于研究和样机的开发,一般要求系统工具能便于开发。而如果公司在开发下一代手机产品,成本是最重要的因素,只要能降低最终产品的成本,一般他们愿意承受很烦琐的开发,采用复杂的开发工具(当然如果大大延迟了产品上市的时间则是另一回事)。

因此选择DSP时需要考虑的因素有软件开发工具(包括汇编、链接、仿真、调试、编译、代码库以及实时操作系统等部分)、硬件工具(开发板和仿真机)和高级工具(例如基于框图的代码生成环境)。

选择DSP器件时常有如何实现编程的问题。一般设计工程师选择汇编语言或高级语言(如C或Ada),或两者相结合的办法。大部分的DSP程序采用汇编语言,由于编译器产生的汇编代码一般未经最优化,需要手动进行程序优化,降低程序代码大小和使流程更合理,进一步加快程序的执行速度。这样的工作对于消费类电子产品很有意义,因为通过代码的优化能弥补DSP性能的不足。

使用高级语言编译器的设计工程师会发现,浮点DSP编译器的执行效果比定点DSP好,这有几个原因:首先,多数的高级语言本身并不支持小数算法;其次,浮点处理器一般比定点处理器具有更规则的指令,指令限制少,更适合编译器处理;第三,由于浮点处理器支持更大的存储器,能提供足够的空间。编译器产生的代码一般比手动生成的代码更大。

不管是用高级语言还是汇编语言实现编程,都必须注意调试和硬件仿真工具的使用,因为很大一部分的开发时间会花在这里。几乎所有的生产商都提供指令集仿真器,在硬件完成之前,采用指令集仿真器对软件调试很有帮助。如果所用的是高级语言,对高级语言调试器功能进行评估很重要,包括能否与模拟机和/或硬件仿真器一起运行等性能。

大多数DSP销售商提供硬件仿真工具,许多处理器具有片上调试/仿真功能,通过采用IEEE1149.1JTAG标准的串行接口访问。该串行接口允许基于扫描的仿真,即程序员通过该接口加载断点,然后通过扫描处理器内部寄存器来查看处理器到达断点后寄存器的内容并进行修改。

很多的生产商都可以提供现成的DSP开发系统板。在硬件没有开发完成之前可用开发板实现软件实时运行调试,这样可以提高最终产品的可制造性。对于一些小批量系统甚至可以用开发板作为最终产品电路板。

支持多处理器

在某些数据计算量很大的应用中,经常要求使用多个DSP处理器。在这种情况下,多处理器互连和互连性能(关于相互间通信流量、开销和时间延迟)成为重要的考虑因素。如ADI的ADSP-2106X系列提供了简化多处理器系统设计的专用硬件。

电源管理和功耗

DSP器件越来越多地应用在便携式产品中,在这些应用中功耗是一个重要的考虑因素,因而DSP生产商尽量在产品内部加入电源管理并降低工作电压以减小系统的功耗。在某些DSP器件中的电源管理功能包括:

a.降低工作电压:许多生产商提供低电压DSP版本(3.3V,2.5V,或1.8V),这种处理器在相同的时钟下功耗远远低于5V供电的同类产品。

b.“休眠”或“空闲”模式:绝大多数处理器具有关断处理器部分时钟的功能,降低功耗。在某些情况下,非屏蔽的中断信号可以将处理器从“休眠”模式下恢复,而在另外一些情况下,只有设定的几个外部中断才能唤醒处理器。有些处理器可以提供不同省电功能和时延的多个“休眠”模式。

c.可编程时钟分频器:某些DSP允许在软件控制下改变处理器时钟,以便在某个特定任务时使用最低时钟频率来降低功耗。

d.外围控制:一些DSP器件允许程序停止系统未用到的外围电路的工作。

不管电源管理特性怎么样,设计工程师要获得优秀的省电设计很困难,因为DSP的功耗随所执行的指令不同而不同。多数生产商所提供的功耗指标为典型值或最大值,而TI公司给出的指标是一个例外,该公司的应用实例中详细地说明了在执行不同指令和不同配置下的功耗。

成本因素

在满足设计要求条件下要尽量使用低成本DSP,即使这种DSP编程难度很大而且灵活性差。在处理器系列中,越便宜的处理器功能越少,片上存储器也越小,性能也比价格高的处理器差。

封装不同的DSP器件价格也存在差别。例如,PQFP和TQFP封装比PGA封装便宜得多。

在考虑到成本时要切记两点。首先,处理器的价格在持续下跌;第二点,价格还依赖于批量,如10,000片的单价可能会比1,000片的单价便宜很多。

国内外现状

数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。数字信号处理是围绕着数字信号处理的理论、实现和应用等几个方面发展起来的。数字信号处理在理论上的发展推动了数字信号处理应用的发展。反过来,数字信号处理的应用又促进了数字信号处理理论的提高。而数字信号处理的实现则是理论和应用之间的桥梁。数字信号处理是以众多的学科为理论基础的,它所涉及的范围及其广泛。例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。一些新兴的学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。

长期以来,信号处理技术—直用于转换或产生模拟或数字信号。其中应用得最频繁的领域就是信号的滤波。此外,从数字通信、语音、音频和生物医学信号处理到检测仪器仪表和机器人技术等许多领域中,都广泛地应用了数字信号处理技术。数字信号处理己经发展成为一项成熟的技术,并且在许多应用领域逐步代替了传统的模拟信号处理系统。

世界上三大DSP芯片生产商有德克萨斯仪器公司、模拟器件公司和摩托罗拉公司。

数字信号处理的书籍很多,其中以麻省理工学院奥本海姆编著的《Discrete Time Signa Processing》最为经典 ,有中译本《离散时间信号处理》由西安交通大学出版。

This article is from the network, does not represent the position of this station. Please indicate the origin of reprint
TOP