[CS Dept logo]

Com Sci 222/322
Machine Organization

Lectures

Introduction

[back] Department of Computer Science
[] The University of Chicago



Last modified: Fri Jan 22 10:09:06 CST 1999




Course topic, goals

The word ``computer'' refers simultaneously to a completely abstract mathematical system, and to an electronic device that you can buy in the store. The precision, power, flexibility, and durability of computer software rely on the computer as a formal mathematical definition; the usefulness relies on the electronic realization. In Com Sci 222 and 322 we investigate the engineering organizational principles that connect abstract mathematical computers to commercially viable electronic realizations. In order to appreciate the value of these organizational principles, we must learn how the qualities of an electronic implementation determine the performance of a computer, and some rudimentary economic issues as well.

The principles of organization in electronic computers are often called ``computer architecture,'' although they bear little resemblance to the principles of architecture relating to buildings. There are several good reasons to study computer architecture:

  1. just to know stuff, because you're an intellectual;
  2. to get a job designing and building computers;
  3. to get a job designing and building circuitry that resembles computers;
  4. to make more intelligent use of computers;
  5. to understand better the impact of continuing improvement in computers.
This course will certainly not prepare you to compete with the major computer manufacturers, or to take leadership jobs with them. But, you will learn the basic principles behind good computer architecture, and follow the application of those principles in a few of the components of design that are particularly important today. This should provide a foundation of understanding allowing you to achieve any of the goals above with (lots of) additional reading and experience. In particular, after this course, you should be able to read and understand the large amount of material in the textbook on your own, even though we can only study less than half of it in class (roughly, Chapters 1, 2, 3, 5 and some of 6, 8).

Why are computer systems peculiar?

People have been creating and using tools for millenia, but computing systems have such a different structure, and particularly such a different economic context, that attempts to deal with them by analogy to other engineering projects have failed miserably. The material with which we build computers is electronic, and aside from the tininess of the components, the material issues are fairly conventional. But, the qualities that drive the design of computer systems are not material so much as organizational and dynamic.

Organizational qualities of computer systems:
Although computers are made of electronic material, their complexity is comparable to a detailed map of the whole USA, and their structure is more like a huge bureaucracy than a mechanical device, such as a bulldozer.
Dynamic qualities of computer systems:
The tools and components available to create computers and their applications, and the context in which the final products must act, change so rapidly that the economics of computing are determined more by the rate of change than by the current state of the art.
For example, the performance of a radiant element for a microwave oven can be characterized pretty well by 2 or 3 numbers, giving its power output and some indication of how that power is distributed around the oven. These 2 or 3 numbers determine pretty well how lots of different dishes will cook. By contrast, the performance of a computer varies radically according to the program that it is running, and the other things that it is doing at the same time, so the number of parameters of performance is immense. When you buy a microwave oven, you pay for its cooking performance, plus some fuzzier qualities having to do with how it fits in your kitchen, aesthetics, convenience. When you buy a computer, you are paying for a window in time. You can get the same performance by paying more now, or less in a few months, so in essence a higher price buys early delivery more than better performance. And, the context in which you determine performance requirements changes rapidly (newer releases of software require more performance), so a higher price buys a greater scope of compatibility.

The peculiarity of decision-making in computing systems is illustrated by some amusing data in More Programming Pearls by Jon Bentley (Addison-Wesley, 1988, pp. 157-158). Imagine yourself in 1969, and you need to solve the 1024x1024x1024 Poisson's equation (a particular 3-dimensional system of elliptic partial differential equations). The best numerical method that you can find is called SOR Iteration, and the fastest computer is the CDC 7600 at 5 megaflops. Obviously, your best course is to run SOR on the 7600, right? Well, you will still be less than half done in 1976. I will wait until 1976, use a Cray-1 at 50 megaflops and the Cyclic Reduction method, solving the problem in a matter of hours and winning the race by a long margin.

Levels of organization and abstraction in computing systems

To deal with the great complexity of computer systems, we consider them in pieces, each of which is somewhat more manageable than the whole. Some of these pieces are material, and some of them purely conceptual. The creation of a useful computer application involves the following pieces, which are usually created by completely different groups of people.

Application software
Compiler
Operating system
Machine instruction set
VLSI design tools
VLSI fabrication tools
Machine implementation


Application software, compiler, and operating system are various sorts of computer programs. The machine instruction set is, in effect, software also, but not necessarily realized in a specific programming language. The VLSI design tools are computer programs again, and for a specific set of design tools the instruction set is expressed in the silicon programming language used by those tools. Only the last two levels, fabrication tools and the machine implementation, are material devices. The table above has a natural order to it, but the relation between each adjacent pair involves a different conceptual dimension.

For a specific computer, there is also a hierarchy of organizational levels in the design and implementation of the computer

Functional specification
Control/dataflow design
Boolean arithmetic
Abstract circuit
Electronics
Particle physics


Programming languages, compilers, and operating systems deal with the functional specification of a computer: on such an input it produces such a result. This course focuses on control/dataflow design, which organizes a computer into functional units (arithmetic unit, cache, memory, bus, etc.), because that's where most of the computationally interesting action is today. Boolean arithmetic and abstract circuits take computer design to the level of detail of individual wires and components, but ignore the specific electronic qualities of the wires and components. Electronics is the deepest level of detail that we will look at. I listed particle physics to remind you that every stopping point is arbitrary.

It's tempting to assign a greater degree of ``reality'' to the electronic level (particularly tempting to electrical engineers). Strangely, the more abstract levels of the organizational hierarchy are often more durable, and arguably more real. The application programs and compilers written for a given functional specification often survive when a particular electronic realization becomes obsolete. Also, consider what happens when an electronic realization fails to agree with a functional specification. We take the computer back and demand a repair or replacement. So, it appears that we often give priority to the abstraction, and in a sense it is more real than the material implementation.

Although most of this course is concerned with control/dataflow design, it is important to appreciate how all of the levels fit together. So, we will first survey the organizational hierarchy, from functional specification down to electronics. we will anchor this discussion in the middle, with a study of boolean artithmetic and abstract circuits.




Maintained by Michael J. O'Donnell, email: [] odonnell@cs.uchicago.edu