Skip to content

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.

IBM RT PC
An IBM RT PC, the first commercial machine built on the 801’s architecture, announced 21 January 1986. Image: Patrick Finnegan, CC BY 2.0, via Wikimedia Commons.

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