[TUHS] pdp11 UNIX memory allocation.

scj at yaccman.com scj at yaccman.com
Wed Jan 7 09:52:27 AEST 2015


>> ...Why the WCS was put in, I never understood, other than I expect
>> the price of static RAM had finally dropped and DEC was buying it
>> in huge quantities for the Vaxen...

The Interdata 8/32, Bell Labs' first 32-bit Unix port target, had writable
microcode.  It added a rather modest amount to the cost of the system as I
remember (about $8K).  Unfortunately, it was pretty useless.  The
instruction format, like many machines at the time, had opcodes and then
some of the instruction bits were use to get the operands -- register,
memory, offsets from registers, etc.  The operand handling was implemented
in hardware, and any added instructions could not use get to this operand
hardware.  So any new instructions that were added were pretty crippled.

Moreover, the implementation in microcode was flawed.  If you tried to
load a word through a pointer that had a -1 in it (a common error in
earlier Unices where -1 was an error return from the OS), you actually got
two faults--a memory bounds error and an alignment check.  Unfortunately,
these faults came at slightly different times--the alignment check
executed 2 or 3 micro instructions and then the bounds check arrived,
reset the microcode and lost all the status information.  Not only was the
fault unrecoverable but the only way to clear it was to power cycle the
processor!

A bunch of us went to talk to the manufacturer and said, in effect, "We
like your machine but we won't buy any more until this fault recovery
problem is fixed".  It was like talking to a bunch of cinder blocks --
they just didn't get it.  Shortly afterwards the VAX arrived and the rest
was history...




More information about the TUHS mailing list