[Simh] What is CDC OS?

Paul Koning paulkoning at comcast.net
Tue Feb 16 16:24:28 EST 2016


> On Feb 16, 2016, at 4:04 PM, Nelson H. F. Beebe <beebe at math.utah.edu> wrote:
> 
> Will Senn <will.senn at gmail.com> asks on the list on Tue, 16 Feb 2016
> 12:47:12 -0600 about CDC operating systems.
> 
> I worked quite happily on a CDC 6400 from 1973 to 1977.  Initially, we
> had the SCOPE operating system, and later, KRONOS.  
> ...
> The interactive features of the CDC 6400 had a huge beneficial impact
> on my software productivity, compared to my previous batch
> environment, and I regret that I have yet to find a CDC [67]x00
> simulator with either SCOPE or Kronos.  I have one that boots up to
> ROM level, but cannot get further with it.

DtCyber is a full 6000 series emulator that runs pretty much all the 6000 series 60 bit software (including nearly all diagnostics).  It doesn't emulate the 7600; I haven't seen anything that does.  Nor does it emulate the 64 bit mode of the later machines.  There is a mailing list ("controlfreaks") for working on/with that.  Due to licensing limitation it isn't world-readable but if you're interested, ask to join.

There's a PLATO system on-line (see www.cyber1.org) running in emulation on DtCyber, using NOS 2.8.7 as the underlying OS.  (Not that PLATO makes much use of the OS services... it's barely more than a program loader as far as it's concerned.)

> The CDC machines had a small instruction set (64 different opcodes).
> All integer arithmetic was done with floating-point instructions,

Not quite.  Mul and div, yes.  But there are separate full 60 bit integer add and subtract ("long add") instructions.

> ...
> The address space was 2**18 = 262_144 words, and each process had a
> contiguous block.  

17 bits in the 6000 series (18 bits in the 170 series).

> The CDC [67]x00 family CPUs have no interrupts: instead, there are
> several peripheral processors (PP's) that interface to external
> devices such as disks and serial terminal lines.  The PP's are 12-bit
> computers, each with 4096 words of memory. They communicate with the
> main CPU by monitoring a couple of privileged memory locations that
> hold data for a device operation.  At our site, the PPs were never
> accessible to end users, so no one outside the computer center ever
> knew their instruction set.

The PPs have a way to interrupt the CPU, or more precisely, to do a context switch.  It feels a bit like the VAX instructions to save and load process context, except that the whole job is done in one instruction, not two.  And that instruction is blindingly fast: the whole operation runs at memory speed, 100 ns per word (thanks to interleaving) so a process switch would take about 3 to 4 microseconds.

> Niklaus Wirth and Urs Ammann have interesting, and sometimes negative,
> comments about the CDC 6600 on which they developed the first Pascal
> implementation.  Like Fortran and the IBM 709, and C and the DEC
> PDP-11, the Pascal language also contains several influences of the
> CDC 6600 architecture, although Wirth tried as much as possible to
> hide the hardware from the programmer.

I don't think Dijkstra liked it much either.  One of them objected to the weird floating point rounding, which (according to what they said, I haven't checked) rounds at 1/3rd rather than the proper 1/2 LSB.

	paul



More information about the Simh mailing list