Tesugen

Frederick Brooks and the Definition of Computer Architecture: A Followup

I sent an email to Fred Brooks and received a long and very helpful response to a few questions about what his motivations were in coining the term “computer architecture.”

My last finding in this issue was an article which dated the term to the System/360 project around 1964. Mr. Brooks, however, says he introduced the term in a chapter titled “Architectural Philosophy,” in the 1962 book Planning a Computer System: Project Stretch, edited by Werner Buchholz. This title is out of print, but apparently in the public domain.1

Mr. Brooks answers my question regarding the rationale for choosing the term, quoting the beginning of that chapter :

Computer architecture, like other architecture, is the art of determining the needs of the user of a structure and then designing to meet those needs as effectively as possible within economic and technological constraints. Architecture must include engineering considerations, so that the design will be economical and feasible; but the emphasis in architecture is on the needs of the user, whereas in engineering the emphasis is on the needs of the fabricator.

He wants to stress that “this definition applies to any kind of structure, and treats computer architecture as specialized only in the kind of structure being designed, not in aims or process.”

A slight digression:

I’m currently reading the Swedish translation of Umberto Eco’s The Absent Structure, completely reworked and rereleased as A Theory of Semiotics, in which he discusses architecture and semiotics. This topic seems to have been excluded, though. His motivation for discussing it is that architecture isn’t created to communicate but to function, and yet it seems possible to regard architecture as communication. Here’s an attempt at translating his definition of architecture from Swedish (if you know Swedish, go read my Swedish post about this):

Here, we must make clear that the expression “architecture” from now on [in the book] is used to signify the actual architectural phenomena, that is drawings [or plans] and urban planning. Let us for the moment postpone the answer to the question whether the definitions we will give are applicable to all plans for a change of reality on the three dimensional level, with the aim of making possible the realization of any function related to the social life [...]

This is a definition which includes several things, and Eco is soon to admit this himself. But perhaps this is inevitable.

Mr. Brooks continues, saying it is “a mistake to identify computer architecture too closely with just a machine’s instruction set,” as the article I found claimed that he and the others in the System/360 project did, “although it is also a mistake (made more often) to include all of a machine’s implementation organization in the term.”

Computer Architecture: Concepts and Evolution, Gerrit A. Blauww, Frederic P. Brooks, Jr.

To explain this further, Mr. Brooks refers to his and professor Gerrit Blauww’s book Computer Architecture: Concepts and Evolution (1997), which he says has their “most careful definition,” and from which he quotes:

The architecture of a computer system we define as the minimal set of properties that determine what programs will run and what results they will produce. The architecture is thus the system’s functional appearance to its immediate user, the conceptual structure and functional behavior as seen by one who programs in machine language.

“A machine’s architecture,” the quote continues, “is by this definition distinguished from other domains of computer design,” such as what they call “the implementation” – the “logical organization of its dataflow and controls” – and “the realization” – the “physical structure embodying the implementation.” The reason for this separation being that it “focuses attention on exactly the set of properties that enables program portability from one machine to another.”

The Mythical Man-Month, Frederick P. Brooks, Jr.

I have been curious about why he, by the time he wrote The Mythical Man-Month, had began using the term about “the complete specification of user interface.” I asked him if it was so that they began talking about the role, “the architect,” and only later about “the architecture” as the product of his or her work. He confirmed that this indeed was the case. (It is also evident from the first quote above.)

Mr. Brooks also pointed out that IBM Stretch wasn’t a family of computers, as was the case for System/360. This is important information to me, as I’ve claimed (in Swedish) that the term was needed to refer to what was common for the members of a family of machines. Also, it was the other way around from what I thought, that the term sprung from the role.

1 The book Planning a Computer System never had its copyright renewed, according to its publisher, which is why it is now in the public domain. In a large collection of computer history texts, I found a scan of the book in PDF format (10 megabytes, which for some reason doesn’t display correctly in Preview on Mac OS X, but Adobe Reader works).

The above was posted to my personal weblog on August 26, 2004. My name is Peter Lindberg and I am a thirtysomething software developer and dad living in Stockholm, Sweden. Here, you’ll find posts in English and Swedish about whatever happens to interest me for the moment.

Tags:

Related posts:

Posted around the same time:

The seven most recent posts:

  1. Tesugen Replaced (October 7)
  2. My Year of MacBook Troubles (May 16)
  3. Tesugen Turns Five (March 21)
  4. Gustaf Nordenskiöld om keramik kontra kläddesign (December 10, 2006)
  5. Se till att ha två buffertar för oförutsedda utgifter (October 30, 2006)
  6. Bra tips för den som vill börja fondspara (October 7, 2006)
  7. Light-Hearted Parenting Tips (September 16, 2006)
Bloggtoppen.se