Upload
basil-sanford
View
51
Download
0
Embed Size (px)
DESCRIPTION
Code compressie in Embedded Systems. Onno Kievit ET4074 Kwantitatieve aspecten van computer architectuur. Overzicht. Iets over embedded systems Waarom coderen? Hoe coderen? Gecomprimeerde code architectuur Beperkingen architectuur Compressie algoritme. Embedded systems. - PowerPoint PPT Presentation
Citation preview
Code compressie in Code compressie in Embedded SystemsEmbedded Systems
Onno KievitOnno Kievit
ET4074ET4074
Kwantitatieve aspecten Kwantitatieve aspecten van computer architectuurvan computer architectuur
OverzichtOverzicht Iets over embedded systemsIets over embedded systems Waarom coderen?Waarom coderen? Hoe coderen?Hoe coderen? Gecomprimeerde code Gecomprimeerde code
architectuurarchitectuur Beperkingen architectuurBeperkingen architectuur Compressie algoritmeCompressie algoritme
Embedded systemsEmbedded systems
Een embedded system is Een embedded system is gedefinieerd als een systeem dat gedefinieerd als een systeem dat microprocessoren of microprocessoren of microcontrollers bevat, maar dat microcontrollers bevat, maar dat geen general-purpose computer isgeen general-purpose computer is
Embedded systemsEmbedded systems
Zeer veel toepassingen, waaronderZeer veel toepassingen, waaronder
controllers voor:controllers voor: auto’s, auto’s, vliegtuigen, vliegtuigen, draagbare consumentenelektronica, draagbare consumentenelektronica, enz enz
Embedded systemsEmbedded systems
Beperkingen op het gebied van:Beperkingen op het gebied van: groottegrootte gewichtgewicht energieverbruikenergieverbruik prijsprijs
Embedded systemsEmbedded systems
Vooral in massaproductie Vooral in massaproductie omgeving zijn de kosten vaak omgeving zijn de kosten vaak nauw verbonden met de grootte nauw verbonden met de grootte van het chip-oppervlak!van het chip-oppervlak!
Waarom coderen?Waarom coderen?
In embedded systems wordt groot In embedded systems wordt groot gedeelte van chip-oppervlak gedeelte van chip-oppervlak gebruikt voor de instructie-ROMgebruikt voor de instructie-ROM
Reductie van instructie-ROM is dus Reductie van instructie-ROM is dus wenselijk!wenselijk!
Codeer de instructies ter reductieCodeer de instructies ter reductie
Hoe coderen?Hoe coderen? ontwerp architectuur met ontwerp architectuur met
gecomprimeerde code gecomprimeerde code
Globaal:Globaal: Sla instructies gecomprimeerd op in Sla instructies gecomprimeerd op in
geheugengeheugen Decomprimeer instructies als ze in Decomprimeer instructies als ze in
de cache worden gebrachtde cache worden gebracht Executeer standaard instructies Executeer standaard instructies
Architectuur met Architectuur met gecomprimeerde codegecomprimeerde code
CLB
Processor
Instruction Cache
DecompressionCircuit
InstructionMemory
LAT
Beperkingen ArchitectuurBeperkingen Architectuur
Decompressie-circuit moet heel Decompressie-circuit moet heel snel zijnsnel zijn
Decompressie-circuit moet heel Decompressie-circuit moet heel klein zijnklein zijn
Beperkingen ten aanzien van te Beperkingen ten aanzien van te gebruiken compressie algoritmegebruiken compressie algoritme
Compressie algoritmeCompressie algoritmeProblemen:Problemen: Programma’s kunnen jumps bevattenProgramma’s kunnen jumps bevatten Compressietechnieken die aan het begin Compressietechnieken die aan het begin
moeten beginnen kunnen niet gebruikt moeten beginnen kunnen niet gebruikt wordenworden
Gevolg:Gevolg:
Bestaande compressie-algoritmes voor Bestaande compressie-algoritmes voor datadata
compressie kunnen niet gebruikt wordencompressie kunnen niet gebruikt worden
Compressie algoritmeCompressie algoritmeEen oplossing voor genoemde Een oplossing voor genoemde
problemen is problemen is
een byte-gebaseerde Huffman code.een byte-gebaseerde Huffman code.
Huffman code: de kortste code wordtHuffman code: de kortste code wordt
toegewezen aan de meest gebruiktetoegewezen aan de meest gebruikte
symbolensymbolen
Compressie Compressie algoritmealgoritme
Voordeel:Voordeel: Simpel te implementerenSimpel te implementeren Code kan op elke plek gedecodeerd Code kan op elke plek gedecodeerd
wordenworden
Nadeel:Nadeel: Houdt echter geen rekening met Houdt echter geen rekening met
afhankelijkheden tussen instructiesafhankelijkheden tussen instructies
Compressie Compressie algoritmealgoritme
Compressie kan verbeterd worden Compressie kan verbeterd worden door:door:
rekening te houden met statistiek rekening te houden met statistiek tussen de instructiestussen de instructies
een “lijst” bij te houden met veel een “lijst” bij te houden met veel voorkomende reeksen van instructiesvoorkomende reeksen van instructies
de decoder asynchroon uit te voeren de decoder asynchroon uit te voeren
ConclusieConclusie
Compressie kan de grootte van Compressie kan de grootte van instructie geheugen reducereninstructie geheugen reduceren
Compressie ratio van 76% is mogelijkCompressie ratio van 76% is mogelijk
Gevolg:Gevolg: Lagere kosten, gewicht en Lagere kosten, gewicht en
energieverbruikenergieverbruik Of toevoeging van extra programma Of toevoeging van extra programma
features zonder geheugen te vergrotenfeatures zonder geheugen te vergroten