linux-embedded.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: "Jared Hulbert" <jaredeh@gmail.com>,
	Linux-kernel@vger.kernel.org, linux-embedded@vger.kernel.org,
	linux-mtd <linux-mtd@lists.infradead.org>,
	"Jörn Engel" <joern@logfs.org>,
	tim.bird@am.sony.com, cotte@de.ibm.com, nickpiggin@yahoo.com.au
Subject: Re: [PATCH 03/10] AXFS: axfs.h
Date: Fri, 22 Aug 2008 14:04:12 +0200 (CEST)	[thread overview]
Message-ID: <Pine.LNX.4.64.0808221402170.17105@vixen.sonytel.be> (raw)
In-Reply-To: <200808221327.37371.arnd@arndb.de>

[-- Attachment #1: Type: TEXT/PLAIN, Size: 2217 bytes --]

On Fri, 22 Aug 2008, Arnd Bergmann wrote:
> On Friday 22 August 2008, Jared Hulbert wrote:
> > If I have an array of u64 numbers tracking small numbers (a[0] = 1;
> > a[1] = 2;) just throwing that onmedia is a big waste.
> > (0x0000000000000001; 0x0000000000000002)  Having different array types
> > for different images such as arrays of u8,u16,u32,u64 becomes less
> > efficient for 3,5,6 and 7 byte numbers, 3 bytes was a particularly
> > interesting size for me.
> > 
> > All I'm doing is removing the totally unnecessary zeros and aligning by bytes.
> > Take an array of u64 like this :
> > 0x0000000000000005
> > 0x0000000000001001
> > 0x00000000000a0000
> > 
> > I strip off the unneeded leading zeros:
> > 0x000005
> > 0x001001
> > 0x0a0000
> > 
> > Then pack them to byte alignment:
> > 0x0000050010010a0000
> > 
> > Sure it could be encoded more but that would make it harder to extract
> > the data.  This way I can read the data in one, maybe two, cache
> > misses.  A couple of shifts to deal with the alignment and endianness
> > and we are done.
> 
> 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.

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

> 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.

With kind regards,

Geert Uytterhoeven
Software Architect

Sony Techsoft Centre Europe
The Corporate Village · Da Vincilaan 7-D1 · B-1935 Zaventem · Belgium

Phone:    +32 (0)2 700 8453
Fax:      +32 (0)2 700 8622
E-mail:   Geert.Uytterhoeven@sonycom.com
Internet: http://www.sony-europe.com/

A division of Sony Europe (Belgium) N.V.
VAT BE 0413.825.160 · RPR Brussels
Fortis · BIC GEBABEBB · IBAN BE41293037680010

  reply	other threads:[~2008-08-22 12:04 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-21  5:45 [PATCH 03/10] AXFS: axfs.h Jared Hulbert
2008-08-21  7:51 ` Carsten Otte
2008-08-21 11:31 ` Arnd Bergmann
2008-08-21 20:05   ` Jared Hulbert
2008-08-21 12:24 ` Arnd Bergmann
2008-08-21 22:40   ` Jared Hulbert
2008-08-22 11:27     ` Arnd Bergmann
2008-08-22 12:04       ` Geert Uytterhoeven [this message]
2008-08-22 18:12         ` Jared Hulbert
2008-08-21 13:10 ` Daniel Walker
2008-08-21 20:07   ` Jared Hulbert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.64.0808221402170.17105@vixen.sonytel.be \
    --to=geert.uytterhoeven@sonycom.com \
    --cc=Linux-kernel@vger.kernel.org \
    --cc=arnd@arndb.de \
    --cc=cotte@de.ibm.com \
    --cc=jaredeh@gmail.com \
    --cc=joern@logfs.org \
    --cc=linux-embedded@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=nickpiggin@yahoo.com.au \
    --cc=tim.bird@am.sony.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).