Code compressie in Embedded Systems Onno Kievit ET4074 Kwantitatieve aspecten van computer architectuur
Overzicht b Iets over embedded systems b Waarom coderen? b Hoe coderen? b Gecomprimeerde code architectuur b Beperkingen architectuur b Compressie algoritme
Embedded systems Een embedded system is gedefinieerd als een systeem dat microprocessoren of microcontrollers bevat, maar dat geen general-purpose computer is Een embedded system is gedefinieerd als een systeem dat microprocessoren of microcontrollers bevat, maar dat geen general-purpose computer is
Embedded systems Zeer veel toepassingen, waaronder controllers voor: b auto’s, b vliegtuigen, b draagbare consumentenelektronica, b enz
Embedded systems Beperkingen op het gebied van: b grootte b gewicht b energieverbruik b prijs
Embedded systems Vooral in massaproductie omgeving zijn de kosten vaak nauw verbonden met de grootte van het chip-oppervlak! Vooral in massaproductie omgeving zijn de kosten vaak nauw verbonden met de grootte van het chip-oppervlak!
Waarom coderen? b In embedded systems wordt groot gedeelte van chip-oppervlak gebruikt voor de instructie-ROM b Reductie van instructie-ROM is dus wenselijk! b Codeer de instructies ter reductie
Hoe coderen? ontwerp architectuur met gecomprimeerde code Globaal: b Sla instructies gecomprimeerd op in geheugen b Decomprimeer instructies als ze in de cache worden gebracht b Executeer standaard instructies
Architectuur met gecomprimeerde code CLB Processor Instruction Cache Decompression Circuit Instruction Memory LAT
Beperkingen Architectuur b Decompressie-circuit moet heel snel zijn b Decompressie-circuit moet heel klein zijn b Beperkingen ten aanzien van te gebruiken compressie algoritme
Compressie algoritme Problemen: b Programma’s kunnen jumps bevatten b Compressietechnieken die aan het begin moeten beginnen kunnen niet gebruikt worden Gevolg: Bestaande compressie-algoritmes voor data compressie kunnen niet gebruikt worden
Compressie algoritme Een oplossing voor genoemde problemen is een byte-gebaseerde Huffman code. Huffman code: de kortste code wordt toegewezen aan de meest gebruikte symbolen
Compressie algoritme Voordeel: b Simpel te implementeren b Code kan op elke plek gedecodeerd worden Nadeel: b Houdt echter geen rekening met afhankelijkheden tussen instructies
Compressie algoritme Compressie kan verbeterd worden door: b rekening te houden met statistiek tussen de instructies b een “lijst” bij te houden met veel voorkomende reeksen van instructies b de decoder asynchroon uit te voeren
Conclusie b Compressie kan de grootte van instructie geheugen reduceren b Compressie ratio van 76% is mogelijk Gevolg: b Lagere kosten, gewicht en energieverbruik b Of toevoeging van extra programma features zonder geheugen te vergroten