A Practical Introduction to Computer Architecture - Page, Daniel (Texts in Computer Science, 2009)
Computer architecture, which underpins computer science, is a topic in which "getting things done" is paramount: The ability to understand trade-offs before selecting between and implementing well-considered design options is often as important as the study of those options at a more theoretical level. This easy-to-follow A Practical Introduction to Computer Architecture blends traditional teaching approaches with the use of mathematics, together with the use of a hardware description language (Verilog) and a concrete processor (MIPS32) as vehicles for "hands-on" modelling and experimenting with digital logic and processor design. This unique approach encourages readers to derive their own conclusions via experimentation, enabling them to discover for themselves the fundamental and exciting topics of computer architecture. The book is divided into three parts, covering each of the three levels of abstraction: the digital logic layer, the instruction set and micro-architecture layer, and the hardware/software interface. The first part deals with the basic tools and techniques which underpin the rest of the book, whereas the second part deals with the broad topic of processor design and implementation. The final part bridges the gap between hardware and software by examining the programming tools and operating-system concepts that support the development and execution of programs. Topics and features: • Includes a wide-ranging introductory chapter, familiarising the reader with both the subject and the book's contents • Outlines basic methods for evaluating processors, with a focus on performance • Investigates advanced topics in processor design, such as superscalar and vector processors • Presents a detailed description of a development tool-chain • Provides a stand-alone tutorial on using SPIM, a MIPS32 simulator • Focuses on aspects of compilers which are closely tied to the processor, covering register allocation, instruction selection and scheduling • Explores real implementations of concepts such as scheduling and interrupt handling • Examines the concept of efficient programming • Concludes every chapter with a set of example problems, and contains an appendix that discusses solutions • Supplies additional supportive material, such as example source code and electronic lecture slides, at http://www.cs.bris.ac.uk/home/page/teaching/pica.html This practical, reader-friendly textbook has been written with undergraduates in mind, and is suitable for self-study. The book can also be used by postgraduate students as a supportive reference for use in combination with more specialised textbooks. Dr. Dan Page is a lecturer at the University of Bristol, affiliated with both the Languages and Architecture Group and the Cryptography and Information Security Group. He was one of the founders of Identum (now part of Trend Micro), which is involved in delivering cryptographic expertise and products to industrial customers.