[net.arch] byte alignment -- bit addressable memories

mjl@ritcv.UUCP (05/05/84)

The quintessential machine for arbitrary alignment of data was the
Burroughs B1700 (followed by the B1800 and, I believe, the B1900).  At
the lowest level, the B1700 was a vertical microprogrammable processor
with NO alignment constraints.  Every main memory reference was (in
essence) of the form

	(<starting-bit-address>, <bit-count>)

where bit-count was in the range 1 - 24.  There was no advantage to
having memory items placed on any particular boundary, so innovative
and downright weird instruction and data formats were routinely
emulated.

All in all, I found it to be a fun machine to write microcode for, and
it was a boon to our research into special purpose architectures.  As
it also happens, it was a boon to our image reconstruction researchers
as well.  Since the B1700 supported virtual memory (on a 2.5 Mbyte
removable cartridge!), some of the large reconstruction programs were
run on this system because the University CDC6400 did not have enough
memory to hold the code and data.  The B1700 might take 1.5 days to
produce results, but at least they were produced!

Mike Lutz
-- 
Mike Lutz	Rochester Institute of Technology, Rochester NY
UUCP:		{allegra,seismo}!rochester!ritcv!mjl
ARPA:		ritcv!mjl@Rochester.ARPA

wayne@bambi.UUCP (Wayne Wilner) (05/15/84)

Thanks to Mike Lutz for reminding all contributors to the
byte-alignment debate that bit-addressability is much nicer.
Just to save people effort when they reinvent that wheel,
the B1700's memory requests were of the form

	<starting bit-address> <direction> <length>

where the direction parameter indicated whether the address
referred to the left-most or right-most position.  This was
a great help in dealing with both little-Endian and big-Endian
data at the same time.

Wayne T. Wilner (...exodus!thumper!wayne)
Bell Communications Research