Bit Addressable Architectures

Colin Plumb ccplumb at watmath.waterloo.edu
Mon Mar 14 08:50:59 AEST 1988


franka at mmintl.UUCP (Frank Adams) wrote:
>henry at utzoo.uucp (Henry Spencer) writes:
>>... a bit-addressable machine ...
>
>This may sound like an off the wall idea, but it makes a lot of sense to me.

How is this off the wall?  I think it's a wonderful idea.  It seems
more sensible than having pointers on 32-bit machines count 8-bit hunks
of memory.  We have already observed that pointers based on the
machine's word length are a lose - we want to be able to address bytes,
at least.  With 64-bit machines, you want to use something smaller than
a full word for most things.  The other logical extreme is bit
addressability.  With 64-bit pointers, this reduces our address space
from 18,446,744,073,709,551,616 bytes to 2,305,843,009,213,693,952.
Big deal.  Call me a pessimist, but I don't think a single processor,
in any sense we use today, will be able to use this much memory.

Backwards compatibility?  With a C compiler insulating the user, the
only change is that sizeof(char) is now 8.  Pointer arithmetic still
works fine.  And, as all the processor architects here have based their
expectations of success on, if it doesn't uncover bugs in existing C
code, everybody likes it.

Theoretically, we want a pointer to be able to address any object we
can manipulate.  Even if the architecture does not directly support bit
operations, we can twiddle single bits.

>Note that the software need not wait for a trap to deal with unaligned data
>-- if it knows it is dealing with a bit pointer, it can extract and deal
>with the low order bits itself.

... In the spirit of RISC processors which ignore the low two bits of
the address in a word access.

>As for the address space issue: I personally believe that 32 bit addresses
>are too short, and that this will become apparent fairly quickly.  With a 64
>bit address, one can afford to use 3 bits this way.

Well, I think 32 bits will hold single-user computers for a while yet,
but I can see some uses for such a huge virtual address space, and I'm
sure its availability will spark more.  (I remember someone from the
New OED project pinting out that he was manipulating a 550 Meg
database, soon to grow to 800 and beyond, and having a pointer as an
atomic unit which could address any byte in this huge string simplified
many algorithms significantly.)

Of course, MMU designers will hate us for needing more tag bits. :-}


This can't be a new idea.  Why has no one implemented it before, when
32-bit pointers seemed infinite?  Perhaps that will uncover a flaw in
my reasoning.

>-- 
>Frank Adams                           ihnp4!philabs!pwa-b!mmintl!franka
>Ashton-Tate          52 Oakland Ave North         E. Hartford, CT 06108
--
	-Colin (watmath!ccplumb)

Zippy says:
Everywhere I look I see NEGATIVITY and ASPHALT...



More information about the Comp.lang.c mailing list