Instruction in construction

Advanced Computer Architectures - A Design Space Approach - An Introduction to Assembly Language Programming and Computer Architecture
February 13, 1998

The academic community has had the luxury of a profusion of books on computer architecture in the past two decades. Earlier publications ranged from processor-specific to abstract and esoteric computer architecture concepts that often got shelved and never referred to again. One or two books stood out and were hailed as the definitive text on this dynamic topic. The shelf life of such books has always been limited to a few years due to factors ranging from technological leaps in the manufacturing of devices, to new generations of design tools expediting design cycles, to novel execution acceleration mechanisms. The manufacturers of various microprocessors also play a major role in the emergence of new texts. This has often led to texts becoming narrowly focused on highly specialised and manufacturer-specific architectures, reducing the books' wider appeal. When I started to review Advanced Computer Architecture, the humble way in which the authors pose the question as to whether there is a need for another textbook on computer architecture, when there are such excellent texts from Hwang (1993) and Patterson and Hennessey (1990), struck a chord. But the authors' mastery of portraying the fundamental and yet at times very complex computer architecture concepts had been established. This book could join the ranks of the definitive texts. The authors use the concept of design space throughout their text and this provides the reader with a framework for exploration and comprehension of the subject matter. The book is organised into four major parts, starting with fundamentals. Wherever possible it states the historical and technological perspective. The second part deals with instruction-level parallel processors: a substantial amount is devoted to superscalar processors. Pipelining is handled with the utmost simplicity and yet complex design considerations such as pipeline hazard prediction and reduction are covered. The third part covers instruction-level data-parallel architectures and provides an up-to-date treatment of associative and neural architectures among others. The last part of the book is devoted to MIMD structures. A comprehensive coverage of thread and process-level parallel architectures is given.

The book is rich in well-drawn and comprehensive diagrams. Historical perspectives are given using timelines. Specific architectures are used to drive home application concepts and realisation issues.

Joe Carthy's book attempts to cover two major topics in one volume: computer architecture, and assembly language programming. The author's philosophy is that these two subjects are inextricably linked: one cannot fully understand computer architecture without appreciating assembler code behaviour, and without an understanding of assembler programming, the novice computer architect would struggle to understand concepts such as registers, memory addressing, and so on. The fact that the book covers two major topics will be appreciated by any student trying to study on a tight budget.

Chapters 1 to 4 cover assembly language programming, but begin with a brief overview of the C language to illustrate typical programming constructs and concepts that might be harder to visualise when written in assembler code form. As the programming examples are based upon the standard PC, using Intel 8086 assembler language, most readers will be able to gain hands-on experience of programming, since even a low-powered PC will be sufficient and shareware assembler tools are readily available. The book is accompanied by a disk containing assembler and C source code for those with an aversion to typing, but no assembler is provided.

The 8086 programming examples follow a pattern of comparing a simple C program with the equivalent assembler program. While this will assist in writing well-structured assembler code, the success of these chapters depends upon the reader understanding the introductory section on C language. An appendix provides an alternative tutorial based on the Motorola 68000 processor. The computer architecture section begins with an introduction to the computer system, and then describes key concepts in computer architecture, including superscalar execution, microprogramming, memory and caching. The computer architecture sections are comprehensive, but the desired information is sometimes limited or buried in lengthy discussions, which might make the book difficult to use as a quick reference aid.

Occasionally, the author debates too many issues related to a topic and fails to concentrate on putting across key concepts. For example, the RISC versus CISC issue, an important issue for computer architecture, is dominated by a discussion of the reasons for RISC development and the advantages of each paradigm. Without diagrams or explanation of the processor structure, the reader is not given any idea what a RISC architecture looks like to the programmer. An example of the operation of register windowing versus register-file for a procedure call might have been highly beneficial here, for instance.

Additional sections of the book take the form of case studies covering selected machine architectures, such as the PowerPC and Digital Equipment's Alpha, but only a brief description of each processor is given. These sections would have been more useful as part of the main chapters on computer architecture, where a comparison of selected processor families might be informative.

Taking a complete view of the book, there are a few points of concern, but these are compensated for by the breadth of issues covered, and the double value of having computer architecture and assembly programming covered in a single volume. I would recommend the book to students wishing to gain a grounding in 8086 programming and a grasp of computer architecture concepts. The book would be suitable for first and second years of typical computer engineering or computer science programmes.

Reza Sotudeh is Sony professor of computer engineering, University of Teesside.

Advanced Computer Architectures - A Design Space Approach

Author - Dezso Sima, Terence Fountain and Peter Kacsuk
ISBN - 0 201 422913
Publisher - Addison-Wesley Longman
Price - £23.95
Pages - 776

You've reached your article limit.

Register to continue

Registration is free and only takes a moment. Once registered you can read a total of 3 articles each month, plus:

  • Sign up for the editor's highlights
  • Receive World University Rankings news first
  • Get job alerts, shortlist jobs and save job searches
  • Participate in reader discussions and post comments

Have your say

Log in or register to post comments