[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