John Cocke and the IBM 801
Abstract
John Cocke (1925–2002) spent thirty-six years at IBM Research and published almost nothing, yet the 1987 Turing Award cited him for the design and theory of compilers, the architecture of large systems and the development of RISC. The IBM 801, the machine his group built at Yorktown Heights between 1975 and 1980 after a telephone-switch project was cancelled, was the first RISC. IBM sat on it for a decade; Berkeley and Stanford published first; and when IBM finally sold the idea, in the RT PC of 1986, the product flopped. The RS/6000 of 1990 and every POWER chip since are its descendants.
Duke to Yorktown
John Cocke was born in Charlotte, North Carolina, on 30 May 1925. He took a bachelor’s degree in mechanical engineering at Duke in 1946 and, ten years later, a Duke PhD in mathematics. He had been thinking of Arthur D. Little or GE, but a friend at IBM took him to see Stephen Dunwell, whose Stretch project was just starting; Dunwell convinced him that making a machine run fast would be interesting, and he joined IBM in 1956. He stayed until 1992.
Stretch, the IBM 7030, was the company’s attempt at a supercomputer for Los Alamos, and the pattern of his career was set there: he thought about the compiler and the hardware at the same time, which almost nobody else did. From late 1963 IBM’s Advanced Computer Systems project, first in Sunnyvale and from 1966 at 2800 Sand Hill Road in Menlo Park, tried to build a scientific machine ten times faster than the CDC 6600, and the ACS team, Cocke among them, gave it the features later textbooks call modern: multiple instruction issue, a branch target buffer, dynamic scheduling, register renaming. Frances Allen wrote the compiler; Lynn Conway wrote the simulator. IBM cancelled ACS in May 1969 because nobody could show how it would make money, and most of its ideas waited twenty years to reappear in commercial processors.
Cocke’s compiler work with Allen is the other half of the Turing citation. Their “Catalogue of Optimizing Transformations” (1971) and the data-flow analysis papers around it gave optimizing compilers their standard vocabulary. He is also the C in the CYK parsing algorithm and, in the 1970s and 1980s, sat in on IBM’s speech-recognition group, where the trigram language model is credited to a suggestion of his. IBM made him a Fellow in 1972.
The Telephone Switch
The 801 began as somebody else’s problem. In 1974 IBM and the Swedish firm LM Ericsson were discussing a joint controller for a telephone exchange. The arithmetic was simple: a million calls an hour was about 300 a second, each call needed about 20,000 instructions, so the controller had to run around 12 million instructions per second. IBM’s fastest System/370, the Model 168 of 1972, managed about three.
IBM dropped the switch project in 1975, but Cocke’s group at the Thomas J. Watson Research Center kept the performance target and turned the design into a general-purpose machine. It was named in October 1975 after the building it was designed in, Building 801 at Yorktown Heights. The reasoning, as Cocke put it later, was that “every instruction was simple: it did something, not something and something more.” Complex instructions had been invented to make hand-written assembly shorter and to paper over slow memory. With a cache and a good compiler, both reasons disappeared, and the complex instructions became dead weight that slowed down the simple ones. The compiler in question was PL.8, a PL/I dialect whose optimizer was the ACS work reborn, and one of its pieces, Gregory Chaitin’s register allocation by graph colouring (published 1982), became the standard method everywhere.
The first 801 ran in the summer of 1980, built from Motorola MECL 10K discrete logic at a 66-nanosecond cycle, about 15 MHz, and delivered roughly 15 MIPS: five times a Model 168 for a fraction of the parts. The original design had sixteen 24-bit registers and no virtual memory; the later version, the one that shipped in products, had thirty-two 32-bit registers.
The Decade of Silence
IBM did not publish. George Radin’s paper “The 801 Minicomputer” appeared at the first ASPLOS conference in 1982, seven years after the project’s start and two years after David Patterson and David Ditzel had coined “RISC” in print at Berkeley. By then the Berkeley RISC I and Stanford MIPS projects were under way with the same idea, arrived at independently, and the public history of RISC became a story of two universities rather than one corporate lab. Hennessy and Patterson both acknowledged the 801 as first. The argument over the idea itself is in RISC vs. CISC.
Inside IBM the 801 was reworked as ROMP, a single-chip microprocessor, and shipped on 21 January 1986 in the RT PC, the company’s first commercial RISC machine. It was a failure: competitors said publicly that they had breathed a sigh of relief, because it was neither cheaper nor faster than what they sold, its floating point was poor, and IBM’s own sales force, paid PC-style commissions, had little reason to push a $20,000 workstation. About 23,000 were sold before production ended in May 1991. The redemption came from the “America” project, a four-way superscalar successor to the 801 handed to IBM’s Austin laboratory in 1986. It became POWER, announced in the RS/6000 in February 1990, and the POWER line has been in continuous production since.
The Man
Cocke published almost nothing under his own name and was known inside IBM as an itinerant thinker who wandered between offices and talked, keeping conversations going with different people over months and years. Paul Horn, who ran IBM Research, said Cocke would drop into his office at weekends to discuss unification theory in physics, and “knew as much about high-energy physics as I did, and it wasn’t even his field.” IBM’s own history records the chain-smoking, the trail of cigarette butts, the same clothes worn all week, the uncashed paycheques and stock certificates left lying around. He was a bachelor until his sixties, when he married Anne Holloway.
The awards came late and in a cluster: the Turing Award in 1987, the National Medal of Technology in 1991, the National Medal of Science and the IEEE von Neumann Medal in 1994, the Seymour Cray award in 1999, Computer History Museum Fellow in 2002. He died in Valhalla, New York, on 16 July 2002, aged 77.
Dead End: Being First in Private
The 801 is a case study in what an idea is worth when its owner will not say it out loud. IBM had a working RISC in 1980, a year before RISC I taped out and five before MIPS shipped a chip, and a compiler technology nobody else could match. What it did not have was a reason to disturb the System/370 business, which was the same reason it had killed ACS in 1969. Silence cost IBM the name (RISC is Patterson’s word), the academic credit, and the workstation market, which went to Sun, MIPS-based SGI and DEC while the RT PC was being explained away. The technical bet was right in every particular; it simply paid out to other people first. Cocke, by the accounts of everyone who worked with him, did not much mind.
📚 Sources
- Wikipedia: John Cocke (computer scientist) — life dates, Duke degrees, IBM 1956–1992, Fellow 1972, CYK, trigram models, awards
- IBM Heritage: John Cocke — 1974 start, 1975 cancellation, personal habits, marriage, Peter Capek quote
- Wikipedia: IBM 801 — the telephone-switch arithmetic, October 1975 naming, summer 1980 prototype and its figures, register counts, ROMP, America, RS/6000
- Wikipedia: IBM Advanced Computer Systems project — 1963–May 1969, Menlo Park, goals, innovations, personnel
- Wikipedia: IBM RT PC — 21 January 1986, reception, pricing and commissions, 23,000 units, end of production May 1991, RS/6000 February 1990
- Bruce Shriver and Peter Capek, “An Interview with John Cocke,” Computer (IBM mirror) — Dunwell and Stretch, the Ericsson origin, the “did something, not something and something more” quotation
- Computer History Museum: John Cocke, 2002 Fellow — IBM 1956–93, the “drop all the rules” quotation
- Steve Lohr, “John Cocke, 77, Chip Wizard From I.B.M., Dies,” New York Times, 20 July 2002 — the Paul Horn quotation
- IEEE Computer Society, Computer Pioneers: John Cocke — IBM 1956–1993, Eckert-Mauchly 1985, Pioneer Award 1989
- George Radin, “The 801 Minicomputer,” ASPLOS-I, 1982, pp. 39–47 (DOI 10.1145/800050.801824)
- Gregory Chaitin, “Register Allocation & Spilling via Graph Coloring,” SIGPLAN ‘82, pp. 98–101 (DOI 10.1145/800230.806984)
- Patterson & Ditzel, “The Case for the Reduced Instruction Set Computer,” SIGARCH Computer Architecture News 8 (6), October 1980 (DOI 10.1145/641914.641917)
- Image: IBM RT PC at Vintage Computer Festival Soutwest (1).jpg by Patrick Finnegan (CC BY 2.0), via Wikimedia Commons