from Hacker News

Control Data Corporation's CDC 6600

by brian_herman on 4/1/24, 6:29 PM with 39 comments

  • by dbcurtis on 4/2/24, 12:43 AM

    Like many write-ups of the 6x00, it totally ignores the peripheral processor (PP) subsystem, which was both simple and innovative. The PP's were 10 independent processors, 12 bits wide, but with an 18 bit accumulator so that they could compute central memory addresses. Each had 4K of 12 bit words that stored both driver code and was used as I/O buffer. But.... there really were not 10, there was one copy of the PPU compute hardware, and 10 copies of the state that all the CDC old-timers referred to as "the PP barrel". It was just a big circular shift register, so the 10 PP's were actually just 10-way hardware multi-threaded. Yes, hardware multi-threading dates from 1957.

    There famously were not interrupts in the classical sense in the 6x00, but PP's could read and scribble anywhere in central memory, and they could compute an address and jam it into the CPU's PC. So in effect infinitely flexible vectored interrupts.

    4Kx12 is not a lot of program space, so most I/O drivers consisted of one or more PP overlays that would be loaded depending on which I/O device was in use.

    If I recall correctly, the operator console required a PP full time -- the console being a couple of CRT's with shared X & Y DACs, and independent Z DACs, so they used vector fonts for everything. A second PP was full time dedicated to scheduling the other 8, at least in the common operating systems. (There were a bunch of operating systems... but I won't get into that.)

    Also... somebody (maybe Seymour himself?) worked out a 12 word boot loader... and PP0 had a switch panel of 144 toggle switches arranged in a 12x12 matrix. You could toggle in the bootloader once, and leave it forever. At boot time those 12 words were loaded into PP0 core.

  • by jandrese on 4/1/24, 9:08 PM

    I liked the chart comparing the memory bandwidth against a modern video card, which of course had to be in log scale and was still enormously different.
  • by monocasa on 4/1/24, 9:33 PM

    I know it's an Apr1 post, but I'd honestly really like more historic supercomputer content from chipsandcheese; this was a great read.
  • by 082349872349872 on 4/1/24, 6:58 PM

    One of the 6600 designers said:

    > I suppose the picture of computing is of a topsy-turvy growth obeying laws of a commercial "natural" selection. This could be entirely accurate considering how fast it has grown. Things started out in a scholarly vein, but the rush of commerce hasn't allowed much time to think where we're going. — JET

    I was amazed to read some of what he wrote at the time about the 6600 design and consider how qualitatively modern it sounds (if one is willing to add zeros and change units where quantitatively needed).

  • by rhelz on 4/1/24, 10:23 PM

    chuckle I got a chance to tour a CDC Cyber 205--one of the last in active use. And "tour" is the right word--we toured it like you'd tour a house. First and last computer I was ever...inside of.

    You'd go down this "hall", the walls full of millions of wires, carefully looped so that the signals wouldn't arrive too early (1 foot = 1 nanosecond, and you wanted all the signals of the bus to arrive at the same time, which meant the all the wires on the bus had to be the same length.) "There's the address bus, now down the hall there are two rooms, one is the ALU, the other is the optional square root calculating units....

    Yeah, a whole "room" to calculate square roots. I guess they hadn't figured out the fast square root algorithm which DOOM used yet :-)

    Absolutely astounding artifact. It was like seeing the great pyramids.

  • by herodotus on 4/2/24, 12:31 AM

    Amusing, but nostalgic for me: my first job after graduating was working as a COBOL programmer for Control Data. This was while I was waiting to be accepted into graduate school at the University of Waterloo. I enjoyed working there. But was very happy to get accepted at Waterloo (and stop programming in COBOL).
  • by ok123456 on 4/1/24, 9:03 PM

  • by uticus on 4/1/24, 9:01 PM

    > Delivering precise exceptions that the operating system can resume from would be a ludicrous waste of precious logic. Instead, programmers should be honest about the storage their programs need, and get good at their job.

    ah the days of yore

  • by johnklos on 4/1/24, 10:06 PM

    April Fools or not, this is a wonderful writeup that makes for a wonderful contrast between historical computing and modern computing. Love it!
  • by nxobject on 4/1/24, 9:52 PM

    A classic early example of superscalar execution.
  • by snakeyjake on 4/1/24, 8:55 PM

    Perhaps one day the power of the CDC 6600 will be available to all who need, or merely want, it.

    One can dream...