February 26, 1943, Pasadena, California, USA
June 12, 2017, Palo Alto, California, United States
B.S., physics (University of California, Berkeley, 1967).
University of California, Berkeley, Genie project (1967-1969); Berkeley Computer Corporation (1969 – 1970); Palo Alto Research Center—PARC (1970-1983); Digital Equipment Corporation, Systems Research Center (1983-1997); Microsoft Research Laboratory, Cambridge, England (1997-1999); Microsoft Tablet computer project (1999-2005); Microsoft Research, Silicon Valley (from 2005), currently Technical Fellow at Microsoft.
ACM’s Software Systems Award (1984, with B. Lampson and R. Taylor); Fellow of the ACM (1994); Distinguished Alumnus in Computer Science at University of California, Berkeley (1996);Charles Stark Draper Prize (2004, together with Alan C. Kay, Butler W. Lampson, and Robert W. Taylor); IEEE John von Neumann Medal (2007); Fellow of the Computer History Museum (2007); member of the National Academy of Engineering, and the American Academy of Arts and Sciences.
He holds an honorary doctorate from the Swiss Federal Institute of Technology ETH Zurich.
For the pioneering design and realization of the first modern personal computer -- the Alto at Xerox PARC -- and seminal inventions and contributions to local area networks (including the Ethernet), multiprocessor workstations, snooping cache coherence protocols, and tablet personal computers.
Chuck Thacker has worked in industrial research labs for over forty years developing innovative computer systems, networks, and computing hardware. Although primarily a hardware architect, he has also written software for computer-aided design and user interfaces.
Chuck was born in Los Angeles, California in 1943. Chuck knew quite early in life that he wanted a career in technology, as his father was an electrical engineer. He graduated from high school at the top of his class and entered the California Institute of Technology in 1960. He decided that the San Francisco Bay area would be a better place to work and live, and transferred to the University of California at Berkeley. There, he met his wife Karen; they were married in 1964.
Chuck originally planned to be an experimental physicist. He had worked at the California Institute of Technology’s synchrotron laboratory, and was excited to work at the boundary of physics and engineering. He obtained a BS from the University of California, Berkeley in 1967, and then worked as an engineer for a small Berkeley company run by Jack Hawley, a local inventor. In late 1967, he heard about the UC Berkeley Genie project, and applied for a position. There he met future collaborators Butler Lampson, Peter Deutsch, Wayne Lichtenberger, and Mel Pirtle.
Although he had used computers before joining Genie, he had not yet been irreversibly infected by computing. His first machine was an IBM 1130 operated by the Berkeley Physics department. It was available to students at night, and had a compile-and-run Fortran system that eliminated the need for the operators that were common in most data centers of the time.
At Genie, he learned about interactive computing, and was thoroughly smitten. He abandoned physics. The Genie project had built one of the first timesharing systems based on a Scientific Data Systems SDS-930 that they modified to support paging and have drum and disk storage subsystems, creating what later became the SDS-940. Chuck arrived when the system was essentially complete, but he did implement some incremental expansions. His primary task was to begin planning the successor system, which was a much more ambitious project. Although the Berkeley EECS department has claimed him as one of their more successful alumni, and even provided him with Harry Huskey as a graduate advisor, this is an urban legend—he was a non-academic employee.
Although it was fairly common at the time for research groups to build and operate their own computers, funding for such large projects was difficult to obtain, and a significant fraction was claimed by the university for “overhead.” As a result, some of the Genie scientists and engineers decided to start a company that was independent of the university. The Berkeley Computer Corporation (BCC), with Pirtle as its president, was founded in 1969.
The BCC 500 timesharing system was one of the best examples of the “second system effect” in computing. Having succeeded brilliantly with the SDS 940, the group now set a much more ambitious goal: to construct a system capable of supporting up to 500 remote users. Chuck once asked Mel Pirtle what people would do with it. Pirtle replied presciently, “They’ll probably play games.”
The BCC 500 used several independent microprogrammed processors. Two were used to run user programs, one was for job scheduling, one for managing drum and disk I/O, and one for handling remote terminals. The system’s console computer was an IBM 360/30, which was chosen because of its highly reliable tape drives, line printer, and card equipment. Although the BCC 500 used magnetic core for main memory, it also had a small “fast memory”, which today we would call a cache. The computer occupied two floors of a refurbished fur storage vault in the industrial section of Berkeley. The location was deliberately kept secret, since this was a time of student demonstrations, many directed at computing installations.
At BCC, Chuck was responsible for the design of the microprogrammed processor. He also designed the equipment for supporting remote users by concentrating their traffic over the fastest available data connection available at the time, 2400 bits per second.
Two years and four million dollars later, the BCC 500 system worked successfully. But the 1970 recession made the needed second round of venture funding impossible to get. The company had to close its doors. The one system they had built was sold to the University of Hawaii, where it served as the departmental computing facility for several years.
Fortunately for the BCC group, Xerox had just decided to start the multi-disciplinary Palo Alto Research Center (PARC). It included a General Science Laboratory (GSL), primarily employing physicists and materials scientists; a System Sciences Lab (SSL), primarily charted to explore systems based on computers; and a Computer Science Lab (CSL), chartered to explore computers themselves. To head CSL, Xerox hired Bob Taylor, who had directed the Information Processing Techniques Office (IPTO) at the Department of Defense’s Advanced Research Projects Agency (ARPA, now DARPA). Taylor, who knew most of the people involved in academic computing projects at the time, chose a core group from BCC as his first employees: Chuck, Butler Lampson, Peter Deutsch, Jim Mitchell, and Charles Simonyi.
The first task for the new laboratory was to acquire the necessary computing capability to support its research. At the time, a DEC PDP-10 running the BBN Tenex operating system was the de facto standard in most academic groups. But having just purchased Scientific Data Systems, Xerox management was reluctant to purchase a competitor’s machine, so the group decided to build its own PDP-10. The Multiple Access Computer System (MAXC—an acronym carefully selected as a pun on the name of SDS President Max Palevsky) was designed much more conservatively than the BCC 500. The most innovative part was the memory system, which used the new Intel 1103 dynamic RAM chip. Chuck designed the memory system and much of the I/O for the machine. Butler Lampson designed the microprocessor. Eventually, three copies of MAXC were built, and it served as the lab’s primary computer for several years. It was one of the first ARPAnet hosts, using an interface to the network’s Interface Message Processor designed by Bob Metcalfe and Dave Boggs. MAXC was more reliable than a DEC PDP-10, primarily because the DEC designers built an asynchronous machine without fully understanding the implications of metastable states in digital synchronizers.
With MAXC complete and the laboratory growing, the group looked for new challenges. Although non-technical, Taylor explained to the group that timesharing was only a step on the road to true personal computing, and that computers could serve as communication, as well as computing devices. A Xerox theme was to produce the “paperless office”, and they tried to see how this might be accomplished. SSL, the sister lab to CSL, had experimented with an office system that included high resolution raster displays based on complex character generation technology, but CSL used a different approach: the bitmapped display.
Chuck understood the validity of Moore’s law, and realized that the semiconductor memory used in MAXC would quickly get larger, faster, and cheaper. It would therefore be possible to build a new type of display where each pixel on the screen was represented by a single bit of memory. The result was the 1973 Alto, the first computer system that we would recognize today as a personal computer. The Alto hardware was designed by Chuck and Ed McCreight, who designed the disk subsystem for the machine’s 2.5 Mbit disk.
In order to become pervasive, Alto needed to be inexpensive. To achieve this, Chuck decided to turn the usual assumptions of minicomputer design around. Rather than multiplexing the memory between the CPU and I/O controllers, the machine would multiplex the processor among independent microcoded tasks. This allowed the hardware complexity of I/O controllers to be replaced by task-specific microcode. The highest priority task for the 6 MHz processor was to load a single scan line of display pixels; the lowest was the emulator for the instruction set running user programs. Alto may have been the first simultaneously-multithreaded (SMT) computer.
The Alto was a hit within Xerox. It provided the hardware on which a number of innovative systems were built. Butler Lampson was responsible for the design of much of the early Alto software, including the operating system and (with Charles Simonyi) the Bravo text editor, which eventually became Microsoft Word. Programs that exploited the Alto’s bitmap display included graphic editors specialized for splines, and Chuck’s SIL (“simple illustrator”) computer-aided design program, which became the standard tool for schematic drawing. Alan Kay’s Smalltalk system was one of the first Alto applications, and its microcode included Dan Ingalls’ bitBlt primitive for character rendering that is still used in graphics today.
Alto was designed so that it was easy to add new I/O devices with a small amount of hardware and microcode. One of the first extensions was the Ethernet local area network invented by Bob Metcalfe, with some help from Chuck on the properties of transmission lines. Ethernet allowed Altos to be connected into a distributed system, and much of the early distributed systems work, including the Grapevine email system developed by Andrew Birrell and others, were first run on Alto. For Alan Kay, Chuck designed an organ with a 3-manual keyboard, pedals, and a microcoded wave-table synthesizer driving a 12 KHz ADC.
Although the Alto was not a commercial success, it was the motivation for what became a spectacular success for Xerox: laser printing. Gary Starkweather of GSL, who intimately understood optics and xerography, built the first laser printer, called EARS (Ethernet Alto Research Character Generator and Scanning Laser Output Terminal), based on a character generator designed by Butler Lampson. EARS provided printing for most of PARC until it was replaced by the much more cost effective Dover Printer designed by Bob Sproull, Butler Lampson, and others.
Chuck went on to design several successors to the Alto. He started a project to build a computer based on emitter-coupled logic (ECL), which was completed as the “Dorado” by a large team consisting of Severo Ornstein, Gene McDaniel, Lampson, McCreight, and others. Meanwhile Chuck had joined Dave Liddle’s System Development group, which needed an inexpensive computer to control a laser printer. Although they had initially planned to use the Dorado, it proved to be too expensive, so they instead used the lower-cost Dolphin designed by Chuck and Brian Rosen. Chuck returned to PARC, where Dolphin had limited application because Dorado was much faster. Its primary virtue was that it had a color display, which was used to build a computer-aided design (CAD) system to support the Mead-Conway LSI design methodology popular at the time.
By 1980 it was clear that LSI was the best technology to build personal computers, and Chuck started the Dragon project to do that. Dragon was a multiprocessor that employed one of the first cache-coherence protocols. Although never completed, it influenced later systems.
In 1983, Taylor was fired, and much of the core CSL team followed him to the newly-created Digital Equipment Corporation (DEC) Systems Research Center. As at PARC, the first project was to provide the computing infrastructure for the laboratory. This took the form of the Firefly, the first multiprocessor workstation with coherent caches. Firefly was designed by Chuck and Larry Stewart, and served, as did the earlier Alto, as the basis for several projects in the area of distributed systems.
Chuck also led the development of the AN1 and AN2 networks. AN1 was a packet-switching network that employed 10 Mb/s point-to-point links at a time when 1 Mbit/s Ethernet was the fastest commercially available LAN technology. AN2, started in the late ‘80s was an attempt to use 622 Mb/s ATM technology as a LAN. Although it was commercialized as the DEC GigaNet ATM product, it was not very successful, since 100 Mb Ethernet switches were becoming available at much lower cost.
In the early 1990s Chuck was approached by Bob Supnik, who was leading the effort to develop the DEC Alpha system. Supnik needed a computer to exercise the early Alpha chips, and it was clear that the normal DEC engineering approach could not meet the required schedule. Chuck, Larry Stewart, and Dave Conroy designed and built the Alpha Demonstration Unit, an ECL multiprocessor that was used for Alpha software development until the production systems were ready. The ADU was credited with saving a year in getting Alpha to the market.
By 1997 DEC was in decline, and Chuck decided on a change. His children were now grown, so he and his wife Karen considered taking a year’s sabbatical in Europe. That plan was cut short when he received a call from Nathan Myhrvold, the CTO of Microsoft. Chuck had been approached by Microsoft earlier, but had declined due to the company’s software-centric approach to computing. Microsoft now wanted someone with industrial research experience to take a two-year assignment helping Roger Needham set up a research laboratory in Cambridge. Roger had been a frequent visitor to PARC and SRC, and the opportunity seemed perfect. Chuck joined Microsoft and moved to the UK.
The Cambridge Lab was Microsoft’s first attempt to establish a non-US lab, and it was quite successful. Chuck’s work mainly involved hiring talent and growing the lab, although he did do some work on electronic books.
When he returned to the US in 1999 he decided not to rejoin Microsoft Research, but instead to work with the group within the company developing the Microsoft Tablet PC. At that time it was difficult to convince hardware partners that tablets were a viable class of computers, so they decided to construct a prototype to demonstrate the capabilities of the new form factor. Chuck designed the prototype hardware, using Silicon Valley subcontractors for much of the engineering. This effort resulted in the launch of the Tablet PC in 2001. Butler Lampson, who had joined Microsoft in 1995, worked on the tablet software.
Chuck rejoined Microsoft Research (MSR) in 2005, shortly after the founding of Microsoft Research Silicon Valley, to work in computer architecture and networking. In 2005, he led the effort to build the BEE3, a hardware platform for architectural experimentation. Based on field-programmable gate arrays (FPGAs), BEE3 was designed in cooperation with the RAMP Consortium (“Research Accelerator for Multiple Processors”) led by Dave Patterson of the University of California in Berkeley, along with participants from MIT, Carnegie Mellon University, University of Texas in Austin, Stanford University, and University of Washington. BEE3 provides a relatively low-cost platform for experimenting with new architectural features. It resulted in the formation of a startup (BeeCube) that manages the distribution and support of the system. BeeCube has also produced a follow-on line of systems using more modern FPGAs.
In 2010, Chuck designed the Beehive, a simple multiprocessor system runing on a Xilinx development board that is much less expensive than BEE3. Beehive and its software tool chain, developed by Andrew Birrell and Tom Rodeheffer, have been used in a number of universities as the basis for lab courses in computer architecture. Its design is simple enough to be easily understood and modified by students, and can lead to a deeper understanding into how computers actually work.
Chuck’s latest project is AN3, whose goal is to improve networking in large data centers. Currently, Ethernet and TCP/IP are used in these networks, but TCP/IP is an old standard designed to solve problems that no longer exist in today’s data centers. AN3 takes a clean-slate approach to the problem to provide simple, reliable, and low cost networking.