15
Code compressie Code compressie in Embedded in Embedded Systems Systems Onno Kievit Onno Kievit ET4074 ET4074 Kwantitatieve aspecten van computer Kwantitatieve aspecten van computer architectuur architectuur

Code compressie in Embedded Systems

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

Page 1: Code compressie in Embedded Systems

Code compressie in Code compressie in Embedded SystemsEmbedded Systems

Onno KievitOnno Kievit

ET4074ET4074

Kwantitatieve aspecten Kwantitatieve aspecten van computer architectuurvan computer architectuur

Page 2: Code compressie in Embedded Systems

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

Page 3: Code compressie in Embedded Systems

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

Page 4: Code compressie in Embedded Systems

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

Page 5: Code compressie in Embedded Systems

Embedded systemsEmbedded systems

Beperkingen op het gebied van:Beperkingen op het gebied van: groottegrootte gewichtgewicht energieverbruikenergieverbruik prijsprijs

Page 6: Code compressie in Embedded Systems

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!

Page 7: Code compressie in Embedded Systems

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

Page 8: Code compressie in Embedded Systems

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

Page 9: Code compressie in Embedded Systems

Architectuur met Architectuur met gecomprimeerde codegecomprimeerde code

CLB

Processor

Instruction Cache

DecompressionCircuit

InstructionMemory

LAT

Page 10: Code compressie in Embedded Systems

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

Page 11: Code compressie in Embedded Systems

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

Page 12: Code compressie in Embedded Systems

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

Page 13: Code compressie in Embedded Systems

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

Page 14: Code compressie in Embedded Systems

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

Page 15: Code compressie in Embedded Systems

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