Moving to COFF as this is less UNIX and more computer architecture and
design style...
On Tue, Nov 30, 2021 at 3:07 AM <pbirkel(a)gmail.com> wrote:
Given a random logic design it's efficient to
organize the ISA encoding
to maximize its regularity.
Probably also of some benefit to compilers in a memory-constrained
environment?
To be honest, I think that the regularity of the instruction set is less
for the logic and more for the compiler. Around the time the 11 was being
created Bill Wulf and I think Gordan as co-author, wrote a paper about how
instruction set design, the regularity, lack of special cases, made it
easier to write a code optimizer. Remember a couple of former Bell and
Wulf students were heavily involved in the 11 (Strecker being the main one
I can think of off the top of my head).
Also remember that Gordan and the CMU types of those days were beginning to
create what we now call Hardware Description Languages (HDL). Gordon
describes in "Bell and Newell" (the definitive Computer Structures book of
the 1970s) his Processor-Memory-Switch (PMS) diagrams. The original 11
(which would become the 11/20) was first described as a set of PMS
diagrams. PMS of course, beget the Instruction Set Processor Language
(ISPL) that Mario created a couple of years later. While ISPL was after
the 11 had been designed, ISPL could synthesize a system using PDP-16 RTM
modules. A later version from our old friend from UNIX land, Ted Kowalski
[his PhD thesis actually], that could spit out TTL from the later ISPS
simulator and compiler [the S being simulation]. ISPS would beget VHDL,
which beget today Verilog/System Verilog.
IIRC it was a lecture Gordon Gordan gave us WRT to microcode *vs.* direct
logic. He offered that microcode had the advantage that you could more
easily update things in the field, but he also felt that if we could catch
the errors before you released the HW to the world, and if we could then
directly synthesize, that would be even better - no errors/no need to
update. That said, by the 11/40, DEC started to microcode the 11's,
although as you point out the 11/34 and later 11/44, where more direct
logic than the 11/40 - and of course Wulf would created the 11/40e - which
writeable control store so they add some instructions and eventually build
C.mmp.