David May
Abstract
David May (born 1951) was the architect of the Inmos transputer, the first microprocessor designed from the start to be one of many, and the designer of occam, the language that made Tony Hoare’s Communicating Sequential Processes something you could compile. He joined Inmos in 1979 as the company’s first architect, shipped the T414 in 1985 and the T800 in 1987, and proved parts of the T800’s floating-point unit correct with formal methods before that was a thing chip companies did. The transputer lost; the argument, that the future was many small processors talking over channels, was right about twenty years early. May has spent the time since making it again: at the University of Bristol, and at XMOS, the company he co-founded in 2005 to put the transputer’s ideas on a microcontroller.
Cambridge and Warwick
Michael David May was born on February 24, 1951, in Holmfirth in the West Riding of Yorkshire. He went to King’s College, Cambridge, in 1969 to read mathematics, switched to computer science, and graduated in 1972 having been taught by David Wheeler and Martin Richards, the designer of BCPL. From Cambridge he went to the University of Warwick to work on robotics, which in the mid-1970s meant a collection of microcomputers that had to coordinate. He designed a language for them, EPL, in which processes ran concurrently and communicated by synchronised message passing rather than shared memory. The transputer was that idea turned into silicon.
Inmos
Inmos was founded in 1978 by Iann Barron, Richard Petritz and Paul Schroeder with £50 million of British government money and the intention of building a national semiconductor company. May joined in 1979, in Bristol, as its architect. The brief was a microprocessor that would be the building block for parallel machines, the way the transistor was for circuits (the name joins the two words), and May designed it: a 32-bit processor with its own on-chip memory, four serial links for talking to other transputers, and a scheduler in microcode that could switch between processes in under a microsecond. Concurrency was in the instruction set, not bolted on.
The language came with it. May designed occam, with Tony Hoare as an adviser, drawing on his own EPL and on Hoare’s Communicating Sequential Processes. The result is close to CSP written down as a programming language: SEQ, PAR and ALT, channels that block until both sides are ready, no shared variables to lock. occam 1 appeared in 1983, before the hardware, so that customers could write programs for a chip that did not exist yet; by the Royal Society’s count it gathered more than 5,000 users in 50 countries. The T414 shipped in 1985 and the T800, with a 64-bit floating-point unit on the same die, in 1987. The T800 was also where May began applying formal methods to hardware: parts of the floating-point unit were specified in occam, transformed by proven-correct steps into the microcode, and the Inmos team could say why it worked rather than only that it had passed the tests. That was new in a commercial chip in 1987; the Royal Society’s citation, when it elected May a fellow in 1991, names it, and the Institute of Physics gave him its Clifford Paterson Medal in 1992. His packet-switch design for the T9000 generation, the C104, and its link protocol became IEEE 1355 and, through that, the SpaceWire network used in spacecraft.
Inmos was sold to Thorn EMI in 1984 and to SGS-Thomson in 1989. The T9000, meant to be ten times faster than the T800, slipped for years, reached about 36 MIPS in samples, well short of the target, and was abandoned as conventional processors passed it. The story of why the transputer failed, with Meiko, the Atari Transputer Workstation and the rest of the ecosystem, is told in Dead End: The Transputer; the government’s side is in Dead End: Buying a Computer Industry.
Bristol
May moved to the University of Bristol in 1995 as professor of computer science and ran the department for about a decade, working on parallel computing and robotics. He also acquired a law. May’s law, a variant of Wirth’s, states that software efficiency halves every eighteen months, compensating for Moore’s law; it is listed with its relatives in Eponymous Laws of Computing.
XMOS
In July 2005 May co-founded XMOS in Bristol with Ali Dixon, James Foster, Noel Hurley and Hitesh Mehta, the name a nod to Inmos. The product was the transputer argument at microcontroller scale: an xCORE chip has several cores, each running hardware-scheduled threads with guaranteed timing, and the threads talk through channels; the first-generation language, XC, was C with occam’s channels and par added. Where a conventional microcontroller needs a separate peripheral chip for each interface, an xCORE does the interface in software on a thread with deterministic timing, which is why the chips ended up in USB audio equipment, soundboards and headphone amplifiers, and later in the far-field microphone arrays of voice assistants. Xilinx invested $26 million in 2014 and Infineon led a $15 million round in 2017. May was chief technology officer until February 2014; the fourth generation of the architecture, in 2022, added RISC-V compatibility.
The argument he made at Inmos in 1979 came back around 2005, when single-thread performance stopped improving and the industry put many cores on a die and made them communicate over an on-chip network. Go’s goroutines and channels descend from the same CSP (see Rob Pike: From Unix to Go and Concurrency and Parallelism). May was elected to the Royal Academy of Engineering in 2010 and holds more than fifty patents.
📚 Sources
- David May (computer scientist) — Wikipedia
- Professor David May FREng FRS — Royal Society (election in 1991, occam’s 5,000 users in 50 countries, formal verification from the 1987 floating-point transputer, XMOS)
- XMOS — Wikipedia (July 2005 founding and the five founders, xCORE and XC, the Xilinx and Infineon investments, the 2022 RISC-V generation)
- Inmos — Wikipedia (the 1978 founding by Barron, Petritz and Schroeder, the £50 million from the National Enterprise Board, the 1984 Thorn EMI and 1989 SGS-Thomson sales, the T9000’s abandonment)
- Transputer — Wikipedia (the T414 in 1985, the T800 in 1987, the T9000’s delays and 36 MIPS, the C104 and IEEE 1355)
- Occam (programming language) — Wikipedia (occam 1 in 1983, the CSP basis)
- Professor David May — Multicore Challenge 2013 speaker page, T&VS (Cambridge 1972, Inmos from 1979, XMOS CTO until February 2014)
- Oral History of David May, interviewed by Kevin Krewell, Computer History Museum, August 16, 2011 (Cambridge 1972, Warwick, Inmos from 1979 for sixteen years, Bristol from 1995)
- “David May, parallel processing pioneer” — The Register, August 18, 2011 (Warwick robotics, Barron and the £50 million)
- Image: Inmos T425 die.JPG by Pauli Rautakorpi (CC BY 3.0), via Wikimedia Commons