Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site ritcv.UUCP
Path: utzoo!linus!philabs!cmcl2!seismo!rochester!ritcv!mjl
From: mjl@ritcv.UUCP (Mike Lutz)
Newsgroups: net.arch
Subject: Re: Arbitrary byte alignment
Message-ID: <1313@ritcv.UUCP>
Date: Sun, 14-Oct-84 13:49:52 EDT
Article-I.D.: ritcv.1313
Posted: Sun Oct 14 13:49:52 1984
Date-Received: Tue, 16-Oct-84 03:37:42 EDT
References:  <1433@bmcg.UUCP>
Organization: Rochester Institute of Technology, Rochester, NY
Lines: 57

Ah, the B1700!  I've waxed loquacious on this fascinating machine
before, but what the hell! it's time for another lecture.

Bill Price discussed its primary distinctive feature already, namely
bit addressable memory.  Just to fill in a bit ;-):  a single micro
instruction could read from 1 to 24 bits beginning at any bit address
in main memory (and scanning in either direction).  The number of bits
could be a constant, or determined by the current ALU precision
(1-24).

Programmer controlled variable sized operands were supported by another
B1700 innovation: if the microinstruction register (MIR) was the
destination of a micro-instruction, then the value it was sent was
logically or'ed with the next micro-instruction fetched; the resulting
bit pattern was the actual microinstruction executed.  Thus if one had
a bit count in, say, register Y, and wanted to read that number of bits
from main memory into register X, the code looked like the following:

	MOVE Y TO MIR
	READ 0 BITS TO X

This technique was used throughout the micro architecture to support
jump tables, status bit testing, and variable length shifts & rotates.

The Burrough's designers put a lot of effort into creating a micro
architecture for which efficient emulators and interpreters could be
rapidly developed.  In my case, I was a graduate student on a project
investigating microprogramming and emulation, and the B1700 was a
godsend to us, as it made it relatively easy to develop and investigate
new architectural ideas.  It's hard to explain what made the micro
architecture so good, but my experience and that of me and my
colleagues was that the pieces fit together well.  There always seemed
to be a natural, even elegant, solution to microprogramming problems
which fit hand in glove with what the hardware provided.

On top of this base, Burrough's constructed emulators for specialized
FORTRAN, COBOL, and SDL (a systems programming language) machines.  SDL
was used for the operating system, compilers, and most of the
utilities.  As Bill Price mentioned, processes using different
architectures could be multiprogrammed, with the appropriate emulator
being invoked as part of a context switch.  The O.S. was ahead of for
its time, supporting multiprogramming, virtual memory, and multiple
emulators on systems with as little as 48Kbytes of memory and using
RK05-like discs.

Enough nostalgia, though I do believe any serious computer architect
could learn a lot from the B1700's design.

Mike Lutz

P.S.  Wayne Wilner, one of the B1700 designers, used to be on the net.
If he still is, maybe he could fill in more of the details that I
forgot.
-- 
Mike Lutz	Rochester Institute of Technology, Rochester NY
UUCP:		{allegra,seismo}!rochester!ritcv!mjl
ARPA:		ritcv!mjl@Rochester.ARPA