[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