FMUSER Wirless Verzend video en audio eenvoudiger!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albanees
ar.fmuser.org -> Arabisch
hy.fmuser.org -> Armenian
az.fmuser.org -> Azerbeidzjaans
eu.fmuser.org -> Baskisch
be.fmuser.org -> Wit-Russisch
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Catalaans
zh-CN.fmuser.org -> Chinees (vereenvoudigd)
zh-TW.fmuser.org -> Chinees (traditioneel)
hr.fmuser.org -> Kroatisch
cs.fmuser.org -> Tsjechisch
da.fmuser.org -> Deens
nl.fmuser.org -> Nederlands
et.fmuser.org -> Ests
tl.fmuser.org -> Filipijns
fi.fmuser.org -> Fins
fr.fmuser.org -> Frans
gl.fmuser.org -> Galicisch
ka.fmuser.org -> Georgisch
de.fmuser.org -> Duits
el.fmuser.org -> Greek
ht.fmuser.org -> Haïtiaans Creools
iw.fmuser.org -> Hebreeuws
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> IJslands
id.fmuser.org -> Indonesisch
ga.fmuser.org -> Iers
it.fmuser.org -> Italian
ja.fmuser.org -> Japans
ko.fmuser.org -> Koreaans
lv.fmuser.org -> Lets
lt.fmuser.org -> Lithuanian
mk.fmuser.org -> Macedonisch
ms.fmuser.org -> Maleis
mt.fmuser.org -> Maltees
no.fmuser.org -> Norwegian
fa.fmuser.org -> Perzisch
pl.fmuser.org -> Pools
pt.fmuser.org -> Portugees
ro.fmuser.org -> Roemeens
ru.fmuser.org -> Russisch
sr.fmuser.org -> Servisch
sk.fmuser.org -> Slowaaks
sl.fmuser.org -> Slovenian
es.fmuser.org -> Spaans
sw.fmuser.org -> Swahili
sv.fmuser.org -> Zweeds
th.fmuser.org -> Thai
tr.fmuser.org -> Turks
uk.fmuser.org -> Oekraïens
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamese
cy.fmuser.org -> Welsh
yi.fmuser.org -> Jiddisch
Digitale signaalverwerking
Laten we als case study eens kijken naar de meest voorkomende functie in het digitale domein: filteren. Simpel gezegd, filteren is om het signaal te verwerken om de kenmerken ervan te verbeteren. Filtering kan bijvoorbeeld ruis of elektrostatische interferentie uit het signaal verwijderen, waardoor de signaal-ruisverhouding wordt verbeterd. Waarom een microprocessor gebruiken in plaats van een analoog apparaat om het signaal te filteren? Laten we eens kijken naar de voordelen: de prestaties van analoge filters (of meer in het algemeen analoge schakelingen) zijn afhankelijk van omgevingsfactoren zoals temperatuur. Het digitale filter wordt in principe niet beïnvloed door de omgeving.
Digitale filtering is gemakkelijk te repliceren binnen een zeer kleine tolerantie, omdat de prestaties ervan niet afhankelijk zijn van de combinatie van apparaten waarvan de prestaties zijn afgeweken van de normale waarde. Als een analoog filter eenmaal is vervaardigd, zijn de kenmerken ervan (zoals het doorlaatbandfrequentiebereik) niet eenvoudig te wijzigen. Als u een microprocessor gebruikt om een digitaal filter te implementeren, kunt u de kenmerken van het filter wijzigen door het opnieuw te programmeren.
Vergelijking van DSP-processors en processors voor algemene doeleinden
Beschouw eens een voorbeeld van digitale signaalverwerking, zoals een eindige impulsresponsiefilter (FIR). In wiskundige taal is het FIR-filter een reeks puntproducten. Neem een invoer- en een ordinale vector, vermenigvuldig tussen de coëfficiënt en het schuifvenster van het invoermonster en tel vervolgens alle producten op om een uitvoermonster te vormen. Soortgelijke bewerkingen worden in grote aantallen herhaald in het proces van digitale signaalverwerking, zodat de apparaten die hiervoor zijn ontworpen speciale ondersteuning moeten bieden, wat heeft bijgedragen aan de shunt van DSP-apparaten en algemene processors (GPP):
1 Ondersteuning voor intensieve vermenigvuldigingsoperaties
GPP is niet ontworpen om intensieve vermenigvuldigingstaken uit te voeren. Zelfs sommige moderne GPP's hebben meerdere instructiecycli nodig om een vermenigvuldiging uit te voeren. De DSP-processor gebruikt gespecialiseerde hardware om vermenigvuldiging met één cyclus te implementeren. De DSP-processor voegt ook een accumulatorregister toe om de som van meerdere producten te verwerken. Het accumulatorregister is gewoonlijk breder dan andere registers, en extra bits, resultaatbits genaamd, worden toegevoegd om overflow te voorkomen. Tegelijkertijd bevatten bijna alle DSP-instructiesets expliciete MAC-instructies om de voordelen van gespecialiseerde multiply-accumulatie-hardware volledig weer te geven.
2 geheugenstructuur
Traditioneel gebruikt GPP een von Neumann-geheugenstructuur. In deze structuur is slechts één geheugenruimte verbonden met de processorkern via een set bussen (een adresbus en een databus). Normaal gesproken vinden 4 geheugentoegang plaats voor één vermenigvuldiging, die ten minste vier instructiecycli in beslag neemt. De meeste DSP's gebruiken de Harvard-structuur, die de geheugenruimte in tweeën verdeelt om respectievelijk programma's en gegevens op te slaan. Ze hebben twee sets bussen die zijn aangesloten op de processorkern, waardoor ze gelijktijdig toegankelijk zijn. Deze opstelling verdubbelt de bandbreedte van het processorgeheugen en, nog belangrijker, geeft tegelijkertijd gegevens en instructies aan de processorkern. Onder deze lay-out kan DSP MAC met één cyclus realiseren
instructie. Er is nog een ander probleem, namelijk dat de typische high-performance GPP eigenlijk twee on-chip caches bevat, één voor gegevens en één voor instructies, die rechtstreeks zijn verbonden met de processorkern om de toegangssnelheid tijdens runtime te versnellen. Fysiek gezien is de structuur van dit on-chip dual geheugen en bus bijna hetzelfde als die van Harvard. Logischerwijs zijn er echter nog steeds belangrijke verschillen tussen de twee.
GPP gebruikt besturingslogica om te bepalen welke gegevens en instructiewoorden zijn opgeslagen in de cache op de chip, die de programmeur niet specificeert (of misschien niet eens weet). DSP gebruikt daarentegen meerdere on-chip geheugens en meerdere sets bussen om meerdere toegangen tot het geheugen in elke instructiecyclus te verzekeren. Bij gebruik van DSP moet de programmeur duidelijk bepalen welke gegevens en instructies worden opgeslagen
In geheugen op de chip. Wanneer een programmeur een programma schrijft, moet hij ervoor zorgen dat de processor zijn dubbele bus effectief kan gebruiken. Bovendien hebben DSP-processors nauwelijks datacaches. Dit komt doordat de typische gegevens van een DSP een gegevensstroom zijn. Met andere woorden, nadat de DSP-processor elk gegevensmonster heeft berekend, wordt het weggegooid en wordt het bijna nooit hergebruikt.
3 Geen lus boven het hoofd
Als u een algemeen kenmerk van DSP-algoritmen begrijpt, dat wil zeggen dat de meeste verwerkingstijd wordt besteed aan het uitvoeren van kleinere loops, is het gemakkelijk te begrijpen waarom de meeste DSP's gespecialiseerde hardware hebben voor zero-overhead loops. De zogenaamde nul-overheadlus betekent dat wanneer de processor de lus uitvoert, hij geen tijd hoeft te besteden aan het controleren van de waarde van de lusteller, de toestand wordt overgebracht naar de bovenkant van de lus en de
Verlaag de lusteller met 1. De GPP-cyclus wordt daarentegen geïmplementeerd met behulp van software. Sommige krachtige GPP's gebruiken overgangsvoorspellingshardware, die bijna hetzelfde effect bereikt als de zero-overhead loop die door hardware wordt ondersteund.
4 Berekening van een vast punt
De meeste DSP's gebruiken berekeningen met vaste komma in plaats van drijvende komma. Hoewel bij de toepassing van DSP veel aandacht moet worden besteed aan de nauwkeurigheid van getallen, zou het veel gemakkelijker moeten zijn om het met drijvende komma te doen, maar voor DSP zijn lage kosten ook erg belangrijk. Machines met vaste komma zijn goedkoper (en sneller) dan overeenkomstige drijvende-kommamachines. Om geen drijvende-kommamachine te gebruiken en om de nauwkeurigheid van de getallen te garanderen, ondersteunt de DSP-processor verzadigingsberekening, afronding en verschuiving in zowel de instructieset als de hardware.
5 Speciale adresseermodus
DSP-processors ondersteunen vaak gespecialiseerde adresseringsmodi, die erg handig zijn voor veelgebruikte signaalverwerkingsbewerkingen en algoritmen. Bijvoorbeeld module (cyclische) adressering (handig voor het implementeren van digitale filtervertragingslijnen), bit-omgekeerde adressering (handig voor FFT). Deze zeer gespecialiseerde adresseringsmodi worden niet vaak gebruikt in GPP en kunnen alleen door software worden geïmplementeerd.
6 Voorspelling van de uitvoeringstijd
De meeste DSP-toepassingen (zoals mobiele telefoons en modems) zijn strikt real-time toepassingen en alle bewerkingen moeten binnen een bepaalde tijd worden voltooid. Dit vereist dat de programmeur precies bepaalt hoeveel verwerkingstijd nodig is voor elk monster, of in ieder geval hoeveel tijd nodig is in het ergste geval. Als u van plan bent een goedkope GPP te gebruiken om de taak van realtime signaalverwerking te voltooien, zal de voorspelling van de uitvoeringstijd waarschijnlijk geen probleem zijn. Het zou moeten zijn dat de goedkope GPP een relatief eenvoudige structuur heeft en gemakkelijker de uitvoeringstijd te voorspellen is. De verwerkingskracht die de meeste real-time DSP-toepassingen nodig hebben, kan echter niet worden geleverd door goedkope GPP's. Op dit moment is het voordeel van DSP ten opzichte van GPP met hoge prestaties dat zelfs als een DSP in de cache wordt gebruikt, de programmeur (niet de processor) beslist welke instructies zullen worden ingevoerd, zodat het gemakkelijk is om te bepalen of de instructie afkomstig is van de cache of lezen uit geheugen. DSP gebruikt over het algemeen geen dynamische functies, zoals vertakkingsvoorspelling en uitvoering van gevolgtrekkingen. Daarom is het volkomen eenvoudig om de vereiste uitvoeringstijd te voorspellen op basis van een bepaald stuk code. Hierdoor kan de programmeur de prestatielimieten van de chip bepalen.
7 Vast punt DSP-instructieset
De DSP-instructieset met een vast punt is ontworpen volgens twee doelen:
Stel de processor in staat om meerdere bewerkingen in elke instructiecyclus uit te voeren, waardoor de rekenefficiëntie van elke instructiecyclus wordt verbeterd. Minimaliseer de geheugenruimte voor het opslaan van DSP-programma's (omdat het geheugen een grote impact heeft op de kosten van het hele systeem, is dit probleem vooral belangrijk bij kostengevoelige DSP-toepassingen). Om deze doelen te bereiken, staat de instructieset van de DSP-processor de programmeur gewoonlijk toe om verschillende parallelle bewerkingen binnen één instructie te specificeren. Een MAC-bewerking is bijvoorbeeld opgenomen in een instructie, dat wil zeggen een of twee gegevensverplaatsingen tegelijk. In een typisch voorbeeld bevat één instructie alle bewerkingen die nodig zijn in de sectie om het FIR-filter te berekenen. Dit soort efficiënte betaling
De prijs is dat de instructieset niet intuïtief noch gemakkelijk te gebruiken is (vergeleken met de instructieset van GPP).
Het maakt GPP-programma's meestal niet uit of de instructieset van de processor gemakkelijk te gebruiken is, omdat ze over het algemeen talen van hoog niveau gebruiken, zoals C of C ++. Voor DSP-programmeurs zijn helaas de belangrijkste DSP-toepassingen geschreven in assembleertaal (althans gedeeltelijk geoptimaliseerd in assembleertaal). Hier zijn twee redenen voor: ten eerste de meeste veelgebruikte talen op hoog niveau, zoals
Net als C is het niet geschikt om typische DSP-algoritmen te beschrijven. Ten tweede maakt de complexiteit van de DSP-structuur, zoals meerdere geheugenruimten, meerdere bussen, onregelmatige instructiesets en zeer gespecialiseerde hardware, het moeilijk om er efficiënte compilers voor te schrijven. Zelfs als de C-broncode wordt gecompileerd tot DSP-assemblagecode met een compiler, is de taak van optimalisatie nog steeds erg zwaar. Typische DSP-toepassingen hebben veel rekenvereisten en strikte overheadlimieten, waardoor programma-optimalisatie onmisbaar is (althans voor het meest kritieke deel van het programma). Een belangrijke factor bij het overwegen van de keuze voor DSP is daarom of er genoeg programmeurs zijn die zich beter kunnen aanpassen aan de instructieset van de DSP-processor.
8 Vereisten voor ontwikkeltools
Omdat DSP-toepassingen sterk geoptimaliseerde code vereisen, bieden de meeste DSP-leveranciers enkele ontwikkelingstools om programmeurs te helpen bij het voltooien van hun optimalisatiewerk. De meeste fabrikanten bieden bijvoorbeeld tools voor processorsimulatie om de activiteit van de processor in elke instructiecyclus nauwkeurig te simuleren. Of het nu gaat om een realtime werking of om code te optimaliseren, dit zijn zeer nuttige tools. GPP-leveranciers bieden dergelijke tools meestal niet aan, vooral omdat GPP-programmeurs op dit niveau meestal geen gedetailleerde informatie nodig hebben. Het gebrek aan simulatietools die nauwkeurig zijn voor de instructiecyclus van GPP is een groot probleem waarmee DSP-applicatieontwikkelaars worden geconfronteerd: het is bijna onmogelijk om het aantal cycli te voorspellen dat nodig is voor high-performance GPP voor een bepaalde taak, dus het is onmogelijk om uit te leggen hoe om de prestaties van de code te verbeteren.
Onze andere producten:
Professioneel FM-radiostationuitrustingspakket
|
||
|
Voer een e-mailadres in om een verrassing te ontvangen
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albanees
ar.fmuser.org -> Arabisch
hy.fmuser.org -> Armenian
az.fmuser.org -> Azerbeidzjaans
eu.fmuser.org -> Baskisch
be.fmuser.org -> Wit-Russisch
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Catalaans
zh-CN.fmuser.org -> Chinees (vereenvoudigd)
zh-TW.fmuser.org -> Chinees (traditioneel)
hr.fmuser.org -> Kroatisch
cs.fmuser.org -> Tsjechisch
da.fmuser.org -> Deens
nl.fmuser.org -> Nederlands
et.fmuser.org -> Ests
tl.fmuser.org -> Filipijns
fi.fmuser.org -> Fins
fr.fmuser.org -> Frans
gl.fmuser.org -> Galicisch
ka.fmuser.org -> Georgisch
de.fmuser.org -> Duits
el.fmuser.org -> Greek
ht.fmuser.org -> Haïtiaans Creools
iw.fmuser.org -> Hebreeuws
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> IJslands
id.fmuser.org -> Indonesisch
ga.fmuser.org -> Iers
it.fmuser.org -> Italian
ja.fmuser.org -> Japans
ko.fmuser.org -> Koreaans
lv.fmuser.org -> Lets
lt.fmuser.org -> Lithuanian
mk.fmuser.org -> Macedonisch
ms.fmuser.org -> Maleis
mt.fmuser.org -> Maltees
no.fmuser.org -> Norwegian
fa.fmuser.org -> Perzisch
pl.fmuser.org -> Pools
pt.fmuser.org -> Portugees
ro.fmuser.org -> Roemeens
ru.fmuser.org -> Russisch
sr.fmuser.org -> Servisch
sk.fmuser.org -> Slowaaks
sl.fmuser.org -> Slovenian
es.fmuser.org -> Spaans
sw.fmuser.org -> Swahili
sv.fmuser.org -> Zweeds
th.fmuser.org -> Thai
tr.fmuser.org -> Turks
uk.fmuser.org -> Oekraïens
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamese
cy.fmuser.org -> Welsh
yi.fmuser.org -> Jiddisch
FMUSER Wirless Verzend video en audio eenvoudiger!
Neem contact op
Adres:
No.305 Zaal HuiLan Gebouw No.273 Huanpu Road Guangzhou China 510620
Categorieën
Nieuwsbrief