• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Blogs
  2. Breakfast Bytes
  3. Fred Brooks: "It Is a Humbling Experience to Make a Multi…
Paul McLellan
Paul McLellan

Community Member

Blog Activity
Options
  • Subscribe by email
  • More
  • Cancel
fred brooks
frederick brooks
mythical man month
os/360

Fred Brooks: "It Is a Humbling Experience to Make a Multi-Million Dollar Mistake"

26 Mar 2020 • 4 minute read

 breakfast bytes logo

Cadence's Intelligent System Design strategy is about designing the systems of today and tomorrow. But it is instructive to learn lessons from people who built the systems of yesterday. One of the most remarkable systems ever built was IBM's System/360 project in the early 1960s. This was literally a "bet the company" project. It was on a par with another famous bet-the-company project from the 1960s, the Boeing 747. To put the bet into perspective, in 1962 IBM's revenue was $2.5B. Developing System/360 cost twice that.

Obviously, IBM is still around, so the bet paid off. In fact, it paid off so well that even today you can buy descendants of the family for which applications remain compatible. All the IBM mainframes with Z (or z) in the name run the IBM 360 instruction set.

But it did not all go well during development. The project was led by Fred Brooks, reporting directly to Thomas J. Watson Jr, the president of IBM (and the son of IBM's founder, Thomas J. Watson Sr). He wrote up his experience and the lessons to be drawn from it in a classic book The Mythical Man-Month. One memorable quote from the book is:

It is a very humbling experience to make a multi-million-dollar mistake, but it is also very memorable.

What was that mistake? It is something that every chip design project can also make. The senior architects for the operating system were late delivering the detailed specification for the programmers to work on. So those programmers, of which there were many more than the architects, would be sitting idle. The programmers said that they could complete the architecture on time. The architects said that if Brooks gave the programmers the task, not only would they be equally late, but the architecture would be inferior as a result. Brooks did. Both predictions of the architects came true.

The IBM 360

Since it is so far back in time, it is probably a good idea for me to give you some of the history. If you want to see one, there is one in the Computer History Museum in Mountain View, and also in the Deutches Museum in Munich (with the covers off).

In the late 1950s, IBM had a problem. They were very successful in computers but they had four product lines with different instruction sets, different peripherals, different operating systems, and different sets of compilers and utilities. The company decided to do something that had never been attempted (and nobody has tried to do since). It decided to replace all the product lines with a single new processor line with a common instruction set, common peripherals, a single operating system, and common compilers and utilities. The architect for the hardware was Gene Amdahl, who you may well have heard of, even if only for "Amdahl's Law" about parallel program speedup being limited by the part that cannot be parallelized. Fred Brooks was the overall program manager.

What IBM announced on April 7, 1964 was a family of six processors that all ran the IBM 360 instruction set, and a common set of 40 peripherals. The family covered scientific and commercial computing, at multiple price-performance points. They were not all delivered that day but through much of the 1960s, starting with the low-end models in 1965.

The range of the product line was remarkable. The slowest System/360 model announced was the Model 30, and could run at 34.5 KIPS (so one instruction every 29 microseconds) with up to 64KB of memory. The two high-end models announced, the Model 62 and Model 70, never shipped since they had already been replaced with even higher performance processors. In 1967, the Model 91 shipped and could execute 16.6 MIPS (so one instruction every 60ns) with memory up to 8MB. The first systems had no virtual memory, but by the end of the 1960s, the higher-end models had what IBM called dynamic address translation—they had what today we call a memory management unit or MMU.

Of course, today, it is accepted that instruction sets last a long time, and models (semiconductor chips these days) at different price/performance points are common, and evolve over time measured in decades. But nobody has tried to do what IBM did that day in 1964 and release a broad family of different systems (or processors) with a new architecture and a cut-from-whole-cloth new operating system. It many ways, it was so ambitious it is amazing that it was a success.

The Mythical Man-Month

Fred Brooks didn't just have the experience of running the 360 project, he also wrote a wonderfully readable book about the experience and the lessons learned, The Mythical Man-Month, perhaps the classic work on large-scale software and system engineering. More about that tomorrow.

Sign up for Sunday Brunch, the weekly Breakfast Bytes email.