[OpenBIOS] Dictionary Compression vs eXecute In Place
Stefan Reinauer
stepan at openbios.org
Wed Nov 19 22:40:17 CET 2003
Hi,.
since the openbios dictionary is growing and growing as it becomes more
complete, I've looked at different ways to optimize the dictionary
handling. There's two methods of "safing" memory: compression and
execute in place.
1) Compression
Some numbers, taking 32bit dictionary (x86)
method | size/bytes
---------------+-------------
uncompressed | 62668
nrv2b | 22466
gzip | 20982
bzip2 | 19388
The current kernel is slightly below 8k (8172 bytes)
* pro: small(er) flash parts can be used.
* con: code has to be decompressed to memory first,
higher memory usage.
2) XIP (eXecute In Place)
If not compressing the dictionary, it could be changed so that
all but the readwriteable data can be executed directly from ROM.
This would decrease the use of RAM in embedded systems noticeably,
but it is also slower on about every system.
* pro: extremely low memory usage ( < code size)
* con: slow execution.
Looking at the amount of code this is about, (2) is pretty much
neglectable for most systems whereas (1) is an interesting option.
Comments?
Stefan
More information about the OpenBIOS
mailing list