150 likes | 320 Views
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.
E N D
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 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: • auto’s, • vliegtuigen, • draagbare consumentenelektronica, • enz
Embedded systems Beperkingen op het gebied van: • grootte • gewicht • energieverbruik • prijs
Embedded systems Vooral in massaproductie omgeving zijn de kosten vaak nauw verbonden met de grootte van het chip-oppervlak!
Waarom coderen? • In embedded systems wordt groot gedeelte van chip-oppervlak gebruikt voor de instructie-ROM • Reductie van instructie-ROM is dus wenselijk! • Codeer de instructies ter reductie
Hoe coderen? ontwerp architectuur met gecomprimeerde code Globaal: • Sla instructies gecomprimeerd op in geheugen • Decomprimeer instructies als ze in de cache worden gebracht • Executeer standaard instructies
Architectuur met gecomprimeerde code Instruction Cache Instruction Memory Processor Decompression Circuit LAT CLB
Beperkingen Architectuur • Decompressie-circuit moet heel snel zijn • Decompressie-circuit moet heel klein zijn • Beperkingen ten aanzien van te gebruiken compressie algoritme
Compressie algoritme Problemen: • Programma’s kunnen jumps bevatten • 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: • Simpel te implementeren • Code kan op elke plek gedecodeerd worden Nadeel: • Houdt echter geen rekening met afhankelijkheden tussen instructies
Compressie algoritme Compressie kan verbeterd worden door: • rekening te houden met statistiek tussen de instructies • een “lijst” bij te houden met veel voorkomende reeksen van instructies • de decoder asynchroon uit te voeren
Conclusie • Compressie kan de grootte van instructie geheugen reduceren • Compressie ratio van 76% is mogelijk Gevolg: • Lagere kosten, gewicht en energieverbruik • Of toevoeging van extra programma features zonder geheugen te vergroten