21 ms·
What made the 1960s CDC6600 supercomputer fast?
- dieselerator 7y agoThe article shows us transistor level logic circuits to study, but I think the quick answer is as the architect Seymour Cray gets the credit.
- qubex 7y agoDefinitely. For an insight into that great man’s life, I highly recommend reading The Supermen: The Story of Seymour Cray and the Technical Wizards Behind the Supercomputer by Charles J. Murray. I remember reading it back when I was in high-school so it’s more than twenty years old by now, but it’s still an amazing account of how those amazing people built those stunning machines.
- jacobwilliamroy 7y agoI hope these people are all dead now so you never have to meet them and accept that they're not as amazing as the book makes you think they are.
- qubex 7y agoGood morning sunshine!
- deleted 7y ago[deleted]
- mark-r 7y agoI met Seymour Cray, and he was definitely as amazing as you can imagine. He's also very much dead.
- protomyth 7y agoKilled by a drunk driver in 1996 just as he was starting to develop his version of a massively parallel machine. Friggin irresponsible people ruin the world.
- dang 7y agoCare to say more? How did you meet him? what was it like?
- mark-r 7y agoI was part of a small group of students from the University of Minnesota who were invited to the Cray plant in Chippewa Falls WI. The highlight was a visit with him in his office which didn't last long. He was very gracious. I don't remember much of what he said, except for the pumpkin. He pointed to a pumpkin on his desk and proclaimed that it was the Cray-3. His daughter had grown it in the garden, and knowing he was already working on a Cray-2 project decided that it should be called the Cray-3. To give you an idea of when this was, I think they were just finishing the final tests of serial #5 of the Cray-1. They were very proud of the cooling system and invited us to touch the panels.
- dboreham 7y agoI held a door open for him in 1989. Unfortunately I didn't realize who he was until later.
- mark-r 7y agoReminds me of a story I heard on the radio. A guy went out to eat in a New York restaurant. A couple came in, a pale white dude accompanied by the most beautiful black woman this guy had seen. They were seated close to him. It was immediately obvious to him that they were getting much better service than him - for instance they got their food almost immediately after ordering, while he was still waiting for his. So he started to heckle them. Fast forward to a year later. David Bowie has died, and his picture is on the front cover of every magazine. This guy finally realizes who it was he'd been heckling.
- kragen 7y agoBurton Smith is still around, I think. My friend Norm, who worked on Stretch, died a couple of years ago. He was pretty fucking amazing.
- convolvatron 7y agoBurton passed a couple years ago :(
- kragen 7y agoThanks. Sorry to hear it.
- deleted 7y ago[deleted]
- CodeWriter23 7y agoI met Al Marshall, inventor of Token Ring Networking, some 20 years after. I had never heard of him until the guys I was working with ran into him at NetWorld, and we went to dinner. So he wasn’t one of my heroes. I also was more a fan of non-deterministic Ethernet. We went to dinner and the conversation started around the Buzz at the show: Shell Oil was deploying a 500 megabit network in the Dallas Area. Like a half hour and a dozen topics later, Al just blurts out “they need that bandwidth to ship around the imaging data they collect from their surveys”. It came across like he had two brains, one that was engaged in the conversation, and the other figuring out what in the hell are these guys doing with all that bandwidth. Which was a lot in the day of 14.4k modems and T1 lines. After dinner when we parted ways with Al, our conversation was all about how we thought his brain might work.
- kken 7y agoSome of Crays speeches are available on Youtube https://www.youtube.com/watch?v=8Z9VStbhplQ https://www.youtube.com/watch?v=8Z9VStbhplQ The Q&A section is quite interesting. His knowledge of technical details is very impressive and you can feel the tremendous amount of respect that was bestowed on him by the audience.
- larusso 7y agoOh I love these detailed runs into the past. Also the fact that physics and chemistry where the main driver. Software became the most prominent figure in computing or at least that is how I perceived this growing up. I learned very late what the advances in semi conductor development really meant and how important they were.
- Gibbon1 7y agoIt was amusing reading that the transistor used int he CDC6600 was gold doped. Turns out that common switching diodes like the 1n4148 are gold doped for the same reason. Increases switching speed. You pay for it though, they leak like a sieve esp at higher temps.
- blattimwind 7y ago1N4148 are also excellent photodiodes if you don't want that.
- neonate 7y ago"Optimize one basic thing very well, replicate it, and use it as a hierarchical building block."
- exmadscientist 7y agoNice work! Any article that features results from a test PCB is a winner in my book! > Let me know if you find similar devices. The Rohm high-frequency BJTs look promising: 2SC3838K is the fastest (fT wise), but there are several others (see page C28 of Rohm's 2019 catalog). I only checked the datasheet for the one, but it's got a very nice Figure 10, showing that it'll probably switch fastest around 20mA collector current, and should be about 3x faster there than the MMBTH10L at 4mA.
- blattimwind 7y agoThe thing is that if you want logic to go fast proper you don't use saturation logic (DTL/RTL/TTL), but current steering logic (ECL). That way your usable clocks gets much closer to the fT of the transistors involved, instead of being limited to a tiny fraction of it. That's how Cray built supercomputers after the CDC6600/7600.
- TheOtherHobbes 7y agoAt the cost of insane power/heat budgets - although one of the nice things about ECL is the power draw is relatively constant because the transistors don't saturate, and you don't get the spikes and PSU hash you get with TTL etc. ECL was amazing for its time, but I'm honestly more impressed by modern PC/phone electronics. PCBs and chip designs are mass-produced commodity products clocked at microwave frequencies - sometimes with battery power. This is incredibly impressive compared to the state of the art in the 60s and 70s. And it's taken for granted as an everyday thing.
- thedance 7y agoIt seems like the power consumption of this computer must have been pretty spectacular anyway. 60mW per gate is no joke.
- fanf2 7y agoI recently found a 1980s Cray installation guide which has a lot more detail on the power, cooling, and other physical requirements. https://news.ycombinator.com/item?id=22284518 https://news.ycombinator.com/item?id=22284518
- interrealmedium 7y ago>10 MHz >1964 That's insane. What's even more insane is that a bit over 20 years later homecomputers reached that frequency. And in the next decade they reached over 100 MHz. - Pure lunacy. Posted from my 5 GHz homecomputer.
- blattimwind 7y agoECL logic systems reached effective clock frequencies in excess of 500 MHz in the late 60s or so. It was extremely fast compared to contemporary RTL/TTL logic.
- cptnapalm 7y agoI had not heard of ECL before. Thank you for popping in with this.
- bonzini 7y agoThese days ECL lives on as CML, which is similar and mostly used for signal transmission. It's very fast so HDMI uses it. Some crypto circuits use CML logic too, because it's less susceptible to side channel attacks.
- dfox 7y agoAlmost all modern fast serial interfaces are descended from ECL. Often with a twist that while receiver is ECL/CML-style long-tailed pair (which is the obvious implementation of comparator), the transmit side is normal CMOS totem-pole output stage coupled with some passive network to produce right voltage levels (and right output impedance).
- analognoise 7y agoWait, what? You can do a MOS long-tail pair just fine, can't you? Similarly for a totem pole with BJTs. They're topological circuit constructions that work for either family - aren't they?
- protomyth 7y agoThe T. J. Watson Jr memo gives a bit of insight into what the competitors thought of the CDC6600 https://www.computerhistory.org/revolution/supercomputers/10/33/62 https://www.computerhistory.org/revolution/supercomputers/10...
- tomohawk 7y agoCray's response was priceless: "It seems like Mr. Watson has answered his own question."
- rbanffy 7y agoInteresting. It looks typewritten, but it has proportional spacing. I'm not aware of any typewriter of the time that could do that. The Selectric Composer could, but it was released in 66 and the 6600 predates it by two years. The different weights also make it look like a mechanical typewriter rather than an electric one, which would be an odd choice for the office of TJW.
- stonogo 7y agoAll IBM Executive-series typewriters made after World War II featured proportional spacing.
- GnarfGnarf 7y agoI learned FORTRAN in 1965 on a CDC 3100. Real core memory, tape drives, vacuum drum card reader, Calcomp plotter. Super slick. I took a computer science course at Dalhousie University in 1970, used a CDC 6400. My professor was obsessed with pseudo-random numbers, the 60-bit word size was a godsend.
- dwheeler 7y agoI used and programmed the 6600, including in assembly language. They were incredibly fast for the time at numerical calculation. I used them for electronics simulations in SPICE, and they were great for that. However, they had 60 bit words and no way to address data directly within a word. By convention, characters were six bits long, stuffed in 10 characters to a word. So while this machine was incredibly fast for its time for numerical calculation, it was painful to do text manipulation. You had to pack and shift characters into words, and unshift and unpack. You could do interesting things with great cleverness, but it took a lot of work to do simple things. Thanks for the trip down memory lane.
- tpmx 7y agoCool! This expands on the text processing issues: https://www.museumwaalsdorp.nl/en/history/computerhistory-background-information/6400hwac/ https://www.museumwaalsdorp.nl/en/history/computerhistory-ba... "There was no byte addressability. If you wanted to store multiple characters in a 60-bit word, you had to shift and mask. Typically, a six-bit character set was used, which meant no lower-case. These systems were meant to be (super)computing engines, not text processors! To signal the end of a text string, e.g. a sentence, two different coding techniques were invented. The so-called 64 character set was the CDC-default. A line end comprised of two (or more) null-“bytes” at the end of a word followed by a full zero word. The 63 character set, quite popular in the Netherlands and the University of Austin, Texas, signalled the line termination by two (or more) null-“bytes” at the end of a 60-bit word. The Michigan State University (MSU) invented a 12-bit character set, which was basically 7-bit ASCII format with five wasted bits per character. Other sites used special shift/unshift characters in a 6-bit character set to achieve upper/lower case."
- mark-r 7y agoI had my own text library where I converted to/from ASCII internally. There was nothing special about the 6 bit boundaries, so you could use any number of bits per character that you wanted until it was time to interact with the rest of the system. By the time I used it they had extended the character set to include lower case by using a special prefix character.
- kgran 7y agoInteresting to find this on HN as I'm reading a book on Seymour Cray and his supercomputer adventures (Charles J. Murray's "The Supermen: The Story of Seymour Cray and the Technical Wizards behind the Supercomputer"). Not too much technical intricacies there, but still an interesting read from a general/histori perspective.
- burlesona 7y agoDoes anyone know why 60 bits and not some power of two? How did that work? Or am I just being silly and it doesn’t matter? :)
- retrac 7y agoAt the time, many computers were decimal, or had word lengths like 18, 24, 36 or 48, or even 72 bits. Characters were usually 6 bits. The power-of-two standard based around an 8-bit byte didn't exist yet. Whoever picked 60 bits (Cray?) was almost certainly thinking in octal, not hex. 60 bits is multiple of 3, it fits in 20 octal digits, and it holds 10 characters. Most importantly, a 60-bit floating point number is precise enough for just about any calculation.
- burlesona 7y agoThat makes sense, thanks for sharing!
- AnimalMuppet 7y agoIIRC, some early mainframes (IBM and maybe Sperry?) had 36-bit words. 36 bits was enough for 12 (decimal) digits of accuracy with fixed-point arithmetic, or 10 digits for floating point. It was good enough for atomic calculations (where the difference between an atom's mass and the masses of the two atoms it breaks into is a very small fraction of the initial mass).
- ScottBurson 7y agoThe DEC PDP-10 was a 36-bit machine.
- ThomasBHickey 7y agoWith an interesting and functional set of 'byte' instructions where you could specify the number of bits per chunk. IIFRC 6 or 9 bits were typically used for characters, but I think there was a 5 bit character set in use as well.
- baybal2 7y agoAs transistors are getting smaller, it's said that when transistors will approach <10nm gate sizes, RCL may reappear again because at these sizes semiconductors will begin to lean so much, that FET based logic will no longer have advantage in the current draw over current based logic families.
- dfox 7y agoI would not expect return to RTL/DTL but iwould not be surprised by use of NMOS-style pull-up transistors/resistors in combination with traditional CMOS logic. You can make NMOS gate in CMOS process quite easily and it comes out significantly smaller. Doing DTL in CMOS process seems somewhat pointless given the fact that simplest way to make diode-like thing in CMOS is transistor. And then there is the issue of small fanout of RTL/DTL.
- deleted 7y ago[deleted]
- rbanffy 7y ago> The design of the machine is well documented in a book by James Thornton, the lead designer The type on the twin CRTs of the console is very interesting. The cover of the book shows a sample of it and the slight imprecisions of the beam deflection give it a whimsical quality, as if the fastest computer of its time used Comic Sans to communicate with its operator.
- todd8 7y agoWhat I remember about assembly language programming the CDC6600 was how beautifully simple the machine's principles of operation were at the register and instruction level. In 1974 I learned CDC6600 assembly language in grad school. In comparison to IBM360 assembly language programming I had previously done, the CDC 6600 was so straightforward. It took perhaps one day to learn all of it. I still have the small book that I learned from, Assembly Language Programming for the Control Data 6000 Series and the Cyber 70 Series by Ralph Grishman. Addressing: The machine had unusual data layout, it was word, not byte addressable and each word was 60 bits long, not 16 or 32 bits long. Data Format: Text was stored in six-bit fields, ten per word and so the characters weren't directly addressable. Furthermore, integers were stored in 1's complement, not the more common 2's complement or sign-magnitude format. There was a single 60-bit floating point format (1-bit sign, 11-bit exponent, and 48-bit coefficient). Speed: Floating point multiplication took 1000ns, but the 6600 could do two floating point multiplies, a floating point add, and an integer add simultaneously if coded carefully. Memory: The memory of the 6600 was stored in a ferrite core memory and it had a maximum size of 128K words. Later, there were slower, larger memory tiers as options. I/O: This was handled by peripheral processors that had access to the main memory and could offload data transfers to devices so that the central processing unit didn't have to handle expensive interrupts (expensive because the out-of-order execution of instructions meant that saving and restoring the state of the CPU was relatively time-consuming). Registers: There were 8 X-registers. These are 60-bit registers that are used as the operands in the assembly language instructions. There are also 8 18-bit A-registers that are used for addressing and an additional 8 18-bit B-registers for use as loop indexes, etc. Instructions: Opcodes are always 6 bits, there are only 71 instructions (one of the 64 possibilities in the 6-bit op code is further divided into 8 instructions). The instructions were simple: IX4 X5+X6 ; Integer sum of X5 plus X6 goes into X4 Such an instruction takes 15 bits, six for the opcode, three each for the three registers. This was all a lot less to understand than the intricacies of the IBM360 principles of operation. The IBM360 of the time had instructions like TRANSLATE-AND-TEST or the SHIFT-AND-ROUND-DECIMAL. Here for example are the first four paragraphs explaining the TRANSLATE-AND-TEST instruction from the IBM 360 Principles of Operation: > The eight-bit bytes of the first operand are used as arguments to reference the list designated by the second operand address. Each eight-bit function byte thus selected from the list is used to determine the continuation of the operation. When the function byte is a zero, the operation proceeds by fetching and translating the next argument byte. When the function byte is nonzero, the operation is completed by inserting the related argument address in general register 1, and by inserting the function byte in general register 2. > The bytes of the first operand are selected one by one for translation, proceeding from left to right. The first operand remains unchanged in storage. Fetching of the function byte from the list is performed as in TRANSLATE. The function byte retrieved from the list is inspected for the all-zero combination. > When the function byte is zero, the operation proceeds with the next operand byte. When the first operand field is exhausted before a nonzero function byte is encountered, the operation is completed by setting the condition code to O. The contents of general register 1 and 2 remain unchanged. > When the function byte is nonzero, the related argument address is inserted in the low-order 24 bits of register 1. This address points to the argument last translated. The high-order eight bits of register 1 remain unchanged. The function byte is inserted in the low-order eight bits of general register 2. Bits 0-23 of rcgister 2 remain unchanged. The condition code is set to 1 when the one or more argument bytes have not been translated. The condition code is set to 2 if the last function byte is nonzero. > ... [There's a lot more]
- deleted 7y ago[deleted]