Digitale signaalverwerking en DSP processoren Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 1 signalen analoge signalen komen voor in continue tijd zijn een vorm van golf amplitude is meestal ook continu voorbeelden elektrische signalen (volt, stroom, elektrische en magnetische velden) mechanische signalen (verplaatsingen, snelheden, krachten) akoestische signalen (trillingen, geluidsgolven) signalen uit natuurkunde (temperatuur, concentratie, druk) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 2 signalen (vervolg) analoge signaalverwerking omvat amplificatie, filtering, integratie, differentiatie, squaring, ... gebeurt door versterker, resistors, capaciteiten, inductors, enz nadelen van analoge signaalverwerking beperkte nauwkeurigheid: toleranties van componenten, biases, … beperkte herhaalbaarheid: variaties in omgeving, toleranties, … gevoelig aan ruis beperkte dynamische range beperkte snelheid door fysische delays beperkte flexibiliteit voor veranderingen moeilijk om niet-lineaire en tijdsvariërende operaties uit te voeren hoge kost voor het opslaan van analoge informatie Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 3 signalen (vervolg) digitale signaalverwerking signalen worden door getallen voorgesteld in een computer op deze signalen worden allerhande numerieke operaties uitgevoerd 3 basisschema’s: zie volgende slide Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 4 signalen (vervolg) analoog signal digitaal signal sampling digitaal signal digitaal signal reconstructie analoog signal DSP digitaal signal voorbeeld: touch-tone telefoon geeft een sinusoidaal signaal (combinatie van rij en kolom van nummer), dat in de centrale omgezet wordt naar een getal digitaal signal DSP voorbeeld: digitaal opnemen van muziek en afspelen analoog signal sampling DSP digitaal signal reconstructie analoog signal voorbeeld: tekst uit tekstverwerker omzetten in spraak Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 5 signalen (vervolg) voordelen van digitale signaalverwerking hoge nauwkeurigheid is mogelijk door grotere woordlengte onbeperkte herhaalbaarheid ongevoelig (of toch bijna) aan ruis (bits kunnen vanzelf wijzigen, maar error codes helpen dit te detecteren en verbeteren) onbeperkte dynamische range door lange woordlengte beperkte snelheid die echter continu verbeterd software biedt grote flexibiliteit voor veranderingen eenvoudig om niet-lineaire en tijdsvariërende operaties uit te voeren lage kost voor het opslaan van digitale informatie digitale info kan geëncrypteerd en/of gecomprimeerd worden Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 6 signalen (vervolg) nadelen van digitale signaalverwerking sampling geeft altijd een klein verlies aan informatie A/D en D/A convertoren kunnen duur zijn, en hebben last van ruis software ontwikkeling is mooi maar kost ook snelheid is soms nog een limiterende factor analoog versus digitale signaalverwerking digitaal heeft het duidelijk gewonnen analoge signaalverwerking wordt beperkt door technologie digitale signaalverwerking wordt alleen beperkt door onze verbeelding Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 7 signalen (vervolg) toepassingsdomeinen van digitale signaalverwerking medische toepassingen: patient monitoring, hartmetingen, enz. communicatie: encoderen en decoderen van communicatie signalen, equalizing, filtering, … beeldverwerking: filtering, verbetering, compressie, patroonherkenning instrumentatie multimedia: zenden v. geluid, beelden, digitale tv, video conf. muziek: opnemen, manipulatie zoals mixing, speciale effecten radar, sonar: filtering, doeldetectie, positie en snelheidsbepaling spraak: filtering, codering, compressie, herkenning, synthetiseren telefoontoep.: transmissie in digitale vorm, modems, gsms Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 8 toepassingen belangrijkste commerciele toepassingen GSM !!!!! modems spraak in embedded toestellen multimedia in embedded toestellen, o.a. spelletjes, CD spelers, DVD spelers, … Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 9 belangrijke operaties FIR filtering (finite impulse response) N y[n] h[k ]x[n k ] k 0 rij h bevat N+1 coëfficiënten; rij x bevat N+1 laatste samples op tijdstip n doen we init resultaat y[n] op 0 en teller k op 0 herhaling van – laad h[k] (k-de locatie van h) in CPU – laad x[n-k] (k-de locatie van x) in CPU – vermenigvuldig – laad y, tel het erbij, en berg weer weg; lus teller ophogen shift alle elementen van x naar rechts lees 1 nieuwe sample in x[n+1] Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 10 FIR operatie versnellen berekening vraagt veel tijd op normale hardware versnellen door extra hardware 2 geheugenplaatsen die tegelijk toegankelijke zijn (voor h en x) y bijhouden in accumulator accumulator met dubbele lengte, kan direct opgeteld worden combinatie vermenigvuldiger, accumulator, adder = MAC gebruik van hardware luscontrole gebruik van circulaire buffer voor x Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 11 voorbeeld: Motorola DSP56301 movep clr rep mac macr movep y:input, y:(r4) a #N x0,y0,a x0,y0,a a,y:output x:(r0)+,x0 y:(r4)+,y0 x:(r0)+,x0 y:(r4)+,y0 (r4)- programma-tje in assembler voor FIR berekening meerdere instructies op één lijn worden in parallel uitgevoerd (VLIW) orde van filter is constante N X bevat de coëfficiënten h; Y bevat de samples x r0 en r4 worden telkens modulo verhoogd Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 12 voorbeeld: Motorola DSP56301 movep clr rep mac macr movep y:input, y:(r4) a #N x0,y0,a x0,y0,a a,y:output x:(r0)+,x0 y:(r4)+,y0 x:(r0)+,x0 y:(r4)+,y0 (r4)- lijn 1 leest één nieuwe sample in lijn 2 cleart accumulator a; tegelijk worden registers x en y geladen: r0 en r4 worden modulo verhoogt lijn 3 zegt dat lijn 4 N maal uitgevoerd moet worden lijn 4 berekent product h[k]x[n-k] en telt het op bij a; volgende coëfficiënt en sample geladen in r0 en y0 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 13 voorbeeld: Motorola DSP56301 movep clr rep mac macr movep y:input, y:(r4) a #N x0,y0,a x0,y0,a a,y:output x:(r0)+,x0 y:(r4)+,y0 x:(r0)+,x0 y:(r4)+,y0 (r4)- lijn 5 laatste vermenigvuldiging en optelling; r4 werd één maal teveel opgehoogd en wordt weer verlaagd lijn 6 schrijft y[n] uit op bv A/D convertor op uitgang Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 14 Instructieset voor multimediaverwerking Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 15 algemeen toepasbare processoren evolutie van GPP (general purpose processors) steeds complexer datapad steeds grotere woordbreedte meer en meer GPP toepassingen: signaalverwerking deze toepassingen: performantie bottleneck data voor media zoals geluid en beeld smalle data types: bytes en halve woorden menselijke zintuigen niet gebaad bij hogere precisie GPP zijn niet geschikt onefficiënt gebruik van woordlengte bij mediaverwerking duurder en trager dan DSP’s (Digital Signal Processor) of ASIC (Application Specific Integrated Circuit) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 16 multimedia-extensies toevoegingen aan GPP op 2 manieren parallelle verwerking op smallere datatypes klassieke instructies met gewijzigde semantiek SIMD (Single Instruction Multiple Data) data-elementen gegroepeerd in woord van standaard breedte sub-woorden van 8, 16 of 32-bits vaste-kommagetallen (heet soms ingepakte woorden) controlegedeelte van de processor vraagt nauwelijks aanpassing instructies traditionele aritmetische en logische bewerkingen (zie verder) conversie tussen verschillende woordbreedtes ordenen van sub-woorden op verschillende manieren laden van sub-woorden Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 17 multimedia-extensies (vervolg) belangrijkste SIMD-instructies: optelling en aftrekking vraagt weinig aanpassing overdrachtsbit op de sub-woordgrenzen moet opgevangen worden gewijzigde semantiek modulo-rekenen overloop negeren bv 0xFF + 0x02 = 0x101, te groot voor 1 byte, wordt 0x01 verzadigingsrekenen (saturation) bij overloop grootsmogelijk resultaat bv 0xFF + 0x02 wordt 0xFF bv donkergrijs optellen bij een schaduw = pikzwart Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 18