A third edition of a book on such a rapidly changing topic as computers may raise some questions about its currency. In fact, in the 15 years that have passed since the first edition was published in 1976, and in the 7 that have passed since the second edition (1984), many changes have occurred in the field--one could even say dramatic changes. Despite these changes, Tanenbaum’s structured view of the field enables his book to be fresh and interesting. His idea, like many important ideas, is simple: one should perceive computer organization in a structured way as a hierarchy of various layers or levels, each with its own degree of abstraction in an ascending manner. The fact that despite their apparent differences, the same six basic levels--the digital logic level, the microprogramming level, the conventional machine level, the operating system level, the assembly language level, and the problem-oriented language level--can be found in the computers of the 1970s, the 1980s, and the 1990s shows that the intrinsic nature of computers changes slowly and the differences appear mainly in performance.
If the third edition of this book had only repeated this idea, it would have been moderately interesting and not much different from the previous editions. But as the computers of the 1990s are different from those of the 1980s and the 1970s, so is this edition different from its predecessors; while the summary is approximately the same, the numerous examples are interesting, well-chosen, and up-to-date and support the whole structure of the book.
The examples include the Intel 8088/80286/80386 family; the Motorola 68000/68020/68030 family; the SPARC and MIPS RISC machines; Cray supercomputers and Connection Machines as SIMD machines; hypercubes, transputers, and switching networks as MIMD machines; the PC-bus and VME-bus; and UNIX and OS/2. Most interesting, all these examples, although so varied, do not appear as simple unconnected entities but rather as the bricks in a wall, supporting one another and giving a shape to the whole construction.
The book begins with an “Introduction” and a chapter on “Computer Systems Organizations.” The following five chapters address the various levels: “The Digital Logic Level,” “The Microprogramming Level,” “The Conventional Machine Level,” “The Operating System Machine Level,” and “The Assembly Language Level.” Chapter 8, “Advanced Computer Architecture,” covers the hot new developments. Chapter 9, “Reading List and Bibliography,” is followed by two appendices on “Binary Numbers” and “Floating Point Numbers” and by a good index.
The book’s most important aspect and greatest accomplishment is that the author manages, in a simple yet pleasant way, to give the reader this feeling of structure by revealing connections between apparently different things. Because of this and because of its general view of the subject, the intended audience of the book is large; reading it is a joy to both the computer scientist and the novice, both of whom can perceive the book at their specific levels of understanding. Perhaps, after another seven years (this was approximately the period between each two successive editions of the book), a fourth edition, fresh and with hot new examples, will bring joy to another generation of computer lovers.