Microcode .vs. Hardware (Was: hardware multiply/divide functionality in CPUs)

Christian Corti cc at informatik.uni-stuttgart.de
Thu Mar 10 04:17:46 CST 2011


On Wed, 9 Mar 2011, Rick Bensene wrote:
> I thought that the Combitron was largely a microcoded machine, with the
> microcode read into a delay line from a punched metal tape at startup.

I am just in the process of analyzing a Combitron. With the help from 
Klemens, who read out the steel tape with his LAB8/e, I was able to 
disassemble the firmware of the machine.
The CPU itself is hardwired and has 32 opcodes (5 bits called syllable). 
Eleven syllables make up a word.
The contents of the steel tape is nothing but the program that implements 
the calculator. Here is an example, it's the contents of (R delay line) 
word 95 that implements the idle loop (waiting for a key press). The 
three-digit numbers are octal, the left one is a P word syllable, the 
right on a P_ (= not P) one. The P_ word of the I phase represents the 
opcodes.

Word 95 (P / P_):
         000     023 c           97      clear I_P
         000     005 -           99      substract word 1
         000     024 C           2       negative -> jump to 4
         000     001 T1          6	test keyboard line 1
         000     010 T2          8	test keyboard line 2
         000     024 C           10	key pressed -> jump to word 12
         000     030 W1          14	wait
         000     000  (cnt)      16
         000     031 W0          47	wait
         000     013  (cnt)      49
         000     025 F           93	jump to word 95 (loop)

> The Combitron was designed by Stanley Frankel, who also designed the
> LGP-30, the SCM/Marchant Cogito calculator, and a number of other small

Yes, and that makes the machine *very* interesting. It is even more 
minimalistic than the LGP-30.

> in their home.  Based on what Allan explained to me, the operation of
> the machine was controlled pretty much entirely by the "firmware" loaded
> in at power-up when the tape is read in.  The low count of flip flops

True, and according to the service manual there existed test tapes to 
check out the machine with the help of an oscilloscope.

> would follow in such a design, as a small number of flip flops are only
> needed to store state information, and a few for holding temporary
> microcode operation code information, and a few more for buffering data
> circulating through the delay line(s).

I've counted the number of FFs: twelve for data processing and nine for 
clock and timing signals. The twelve FFs are the VZ register (i.e. V, W, 
X, Y and Z) that hold an opcode during execution; M, R and Q in line with 
the delay lines; A, B, C used for miscellaneous purposes during 
arithmetic operations; and E indicating a double or long order.

All documents for the Diehl that I could get my hand on are on our FTP 
server (ftp.informatik.uni-stuttgart.de/pub/cm/diehl). Page 182 of the PDF 
document Diehl.pdf lists the opcodes of the machine, they are basically 
the same as those printed in Frankel's patent (also on the server). The 
difference between Frankel's and Diehl's design is mainly the increased 
word length of 55 instead of 40 bits.

Christian



More information about the cctalk mailing list