[PATCH 03/10] AXFS: axfs.h

Jared Hulbert jaredeh at gmail.com
Fri Aug 22 14:12:32 EDT 2008


>> So do I understand right that 3 bytes is your minimum size, and going
>> smaller than that would not be helpful? Otherwise I would assume that
>> storing a '5' should only take one byte instead of three.

Right.  But you need 3 bytes to store the maximum value 0x0a0000

If we had:
0x0000000000000003
0x00000000000000FF
0x000000000000000A

You would only need a 1 byte depth.

> From the paper, the minimum size (called `depth') is 1.

Correct the depth can be from 1 to 8 bytes.  The depth is determined
by the maximum value in the array.

>> I don't unsterstand yet why you store the length of each word separate
>> from the word. Most variable-length codes store that implicitly in
>> the data itself, e.g. in the upper three bits, so that for storing
>> 0x5, 0x1001, 0xa0000, this could e.g. end up as 0x054010014a0000,
>> which is shorter than what you have, but not harder to decode.
>
> AFAIU, the length (`depth') of each word is not stored separate, as the
> depth is the same for all values in the same table.

That is correct.  Each table has a single depth stored in the region descriptor.



More information about the linux-mtd mailing list