On 29 Jan 2011 at 14:22, Tony Duell wrote:
Are you implying that the data registers should be
variable length, or
that a variable number of bits should be used in each instruction?
Why any (visible) registers at all? Memory-to-memory was the basis
for several IBM computers. The aforementioned 1620 was a 2-address
machine with variable word length with no visible registers (the P-
counter was not readable by a program). Word length was essentially
limited by the size of a bank of memory (about 20K decimal digits).
Word length was at least 2 digits, with an extra bit serving the dual
purpose of a sign (if set on the low-order digit of a word) or a
demarcator (if set on the high-order digit).
While it's true that the 1620 used 5 digit address registers for
memory access and the P-counter, none was readable by a program.
It sounds like it was clumsy, but the architecture was very friendly
to hordes of early 1960s students. Being decimal, it was a system
whose learning curve was not steep. The usual unit record
interfaces, in addition to a console typewriter and an optional disk
interface (to the 1311) were present.
Arithmetic was performed by table lookup, with the addition and
multiplication tables located in low memory and alterable by user
programs.
Dijkstra hated the machine, but it was popular and as the 1710, was
one of IBM's first industrial process control computers.
--Chuck