In general about the book
Recent advances in high-speed programmable digital logic devices, memory systems, superscalar and superpipeline processors, parallel processing, VLSI circuit design, and many other areas have generated a great amount of work on the design of computer architectures. The book contains most of the standard material for the analysis of computer architectures, such as arithmetic, instruction set architecture (ISA), datapath and control units design, memory and input/output subsystems design, etc. The goal of the book is to give the reader a fundamental understanding of principles as well as a broad grasp of the development in the field of computer architecture. The aim is to provide both an introduction for someone just entering the field so that the technique, methodology, opportunities, and problems are clearly presented, and to provide possibly some new insights for those already working in this area. The text is divided into ten topical areas(chapters), two appendices, and an index. Each chapter is intended to give the background for a particular topic.
Chapter content
Chapter 1 is an introduction of the problem of designing efficient computer architecture. It starts with brief history of computer architecture, after that introduces the conventional von Neumann model of a digital computer, and finally identifies the basic parts of a typical computer system.
Chapter 2 deals with data presentation. Main topics covered here relate to fixed and floating point numbers presentation. In the last subsection "Character codes" properties of ASCII, EBCDIC and Unicode character sets are given.
Chapter 3 is a concise introduction to "Arithmetic" by starting with explanations of basic concepts of four elementary fixed point operations: addition, subtraction, multiplication and division. The important aspects of floating point arithmetic are also covered. High-performance methods concerning addition, multiplication and division are treated.
Crucial aspects of "The instruction set architecture" are summarized in Chapter 4. The relationship between the ISA, the assembly language, and machine language is treated. Some details concerning how instructions effects register transfer level, and movement of data between memory and the CPU are given.
Chapter 5 discusses the topics of compilation, i.e. translating a program written in a high level language in assembly language. This chapter covers material including the compilation process, the assembly process , linking and loading, and macros.
Chapter 6 considers the datapath and control unit design. The microarchitecture of the RISC computer referred as ARC is described. A good portion of the chapter is devoted to implementation of two different microarchitecture approaches: microprogrammed control unit and hardwired control unit.
Chapter 7 deals with memory subsystem. It discusses the problems associated with properties of the memory hierarchy, structure of RAM and ROM cells and chips, and cache and virtual memory organization.
The topic of Chapter 8 is input/output subsystem, i.e. the interaction between the CPU and its external environment. This includes bus communication and bus access methods, organization and accessing magnetic and optical mass storage devices, and principles of operation of different input/output devices (keyboards, mice, lightpens, printers, video displays, etc.).
An overview of computer, or data, communication is presented in Chapter 9. Details concerning principles of operation of modems, types of transmission media, local area networks(LAN), and wide area networks(WAN) are given. Also included in the same chapter are subsections that deal with errors detection and correction, the Internet model, and asynchronous transfer mode (ATM).
Chapter 10 leads the reader towards an interesting theme " Trends in computer architecture". Basic principles of pipelining and parallel processing are involved. Concepts of scalar-RISC, superscalar processor, and VLIW machine, are briefly explained. The Flynn taxonomy is considered. Organization and complexity of interconnection networks are analyzed. Each chapter ends with the following subsections: (a)Summary-briefly describes the main topics discussed; (b)Further Readings-directs the reader to search other interesting references; and (c) Problems-numerous unsolved exercises carefully selected to provoke thought.
The remainder of the book contains two appendices that have been designed to provide additional reference material required for the topics covered in all chapters. Appendix A presents a short treatment of a digital logic, i.e. design with both combinational and sequential logic circuits. Appendix B covers standard methods for reduction of digital logic.
Useful for junior level students
The book is well written, readable, and can be easily understood by students. In other words it represents a pleasant addition to the literature. In my opinion students and engineers who are seeking a quick understanding of the problems related to computer architecture will benefit from the book. All in all this book can be recommended as a handbook for junior level students of computer science and electrical engineering, but not for senior level and graduate students wishing for insights into the deeper aspects of computer architecture such as pipelining, superscalar and superpipeline processors, VLIW machine, parallel processing, multiprocessor systems, configurable computing, etc.
Mile Stojcev