The book presents a large number of examples. Variation needs to be presented along all the major dimensions that instruction sets and system configurations currently exhibit. Thus, as a glance at the table of contents will show, the examples in the book are hardly picked at random. The variation is empirical. It exists in the population of computers that have actually been built. This characteristic of the book stems, again, from our assessment that the upper levels of computer structure are still in an essentially descriptive and empirical state of development. However, as the book documents, ample variation occurs in existing computer systems. The evidence presented here should finally lay to rest the remarks-once echoed almost universally and still heard occasionally-that nothing has happened in computer structure since the von Neumann machine.
Dimensions of variations imply a framework, for dimensions do not by themselves arise from a population of systems. They require the aid, witting or not, of a conceptual framework. As the first three chapters of the book testify, we have most wittingly created a framework, and have had no hesitation in imposing it throughout the book. However, in keeping with our view already expressed, this framework is primarily descriptive. It has come inductively from the common lore, from our own experiences as designers, and from the effort of putting this book together. This attempt at systematization has given rise to two notations: one for instruction sets (ISP) and the other for configurations of major components (PMS). But, again, these notations are primarily descriptive.
So much for what the book actually tries to provide. What are our goals for it? The first is educational. There are three distinct populations of professionals whose education is to be served by this book: the computer engineer, who will design physical computer systems; the computer scientist, who is concerned primarily with the programming level and with various abstract views of information processing; and the electrical engineer, who sees computer systems simply as one part of a larger technology.
For all of these, we see no sense in talking of elementary versus advanced treatments of computer structure. There is surely "less' versus "more," but consistent with our view of the current art, no vertical stratification of education is possible in instruction sets and device configurations. It is sufficient, in the present day, for these aspects of computer systems to become accepted as worthy of study in their own right.
This book will hardly make easy fare for undergraduate students, who do not have an instructor somewhat skilled in the art that is being taught. However, this book is meant for study. A good instructor can, we feel, develop an excellent course (or part thereof) in computer structures, taking this book as the basic material. In addition to the three introductory chapters, Chapter 5 (on the DEC PDP-8), by providing a complete example of a computer system with descriptions at all systems levels, helps to tie the aspects of computer structure discussed in this book to the view students will pick up from a traditional course in logical design.
It goes without saying that for the computer engineer and designer, the material of this book should be fully assimilated. In designing a new computer system, or subsystem thereof, he should be familiar with all that this book has to offer-the design choices, the structural variations possible, the experiments of the past and