Synopses & Reviews
COMPUTER ORGANIZATION AND ARCHITECTURE: THEMES AND VARIATIONS stresses the structure of the complete system (CPU, memory, buses and peripherals) and reinforces that core content with an emphasis on divergent examples. This approach to computer architecture is an effective arrangement that provides sufficient detail at the logic and organizational levels appropriate for EE/ECE departments as well as for Computer Science readers. The text goes well beyond the minimal curriculum coverage and introduces topics that are important to anyone involved with computer architecture in a way that is both thought provoking and interesting to all.
Review
"This is an outstanding text on computer organization compared to what we have today. This text has several aspects that are very important for undergraduates and unique compared to existing texts, including i) required level of emphasis on I/O and buses (instead of focusing only on processor, cache and memory), ii) in-depth discussion on memory as well as disk technology, iii) use of ARM ISA as a vehicle, and iv) making the practical connection of architecture with application domains including multimedia and compression. On one hand this book provides lot of interesting and required insights. On the other hand, it makes interesting for readers to understand the link between computer organization and real-world applications."
Review
"This book is a very nice read. It explains difficult concepts with simplicity and ease. It gives interesting historical perspectives at several places. It makes very good use of diagrams and blue boxes to explain difficult concepts, and drive home the points."
Review
"I think it is a great idea to use ARM because it is so popular in embedded systems and the students may see ARM processors in other classes later. Unlike some other texts which concentrate on CPUs, this book covers CPU and as well as other parts of a computer system in details, i.e. memory, bus, Input/output. Chapter 12 is my favorite because I/O and buses are important topics in computer architecture."
About the Author
Alan Clements studied Electronics at the University of Sussex. He was awarded a Ph.D. at Loughborough University in equalizers for digital data transmission in 1976. During the 1970s when literature on microcomputer design was comparatively rare, Dr. Clements wrote one of the first books in this area, The Principles of Computer Hardware. It was one of the first undergraduate texts to cover the whole spectrum of computer hardware at an introductory level, with topics ranging from Boolean algebra to peripherals that measure rotational velocity. In the 1980s Dr. Clements wrote a definitive text on microprocessor systems design which featured Motorola processors. Motorola honored Dr. Clements by endowing him with a personal chair at Teesside. Following his earlier successes Dr. Clements has become increasingly interested in the problems of teaching computer architecture and involved with education. In 2001 he became chair of the Computer Society's international student competition, CSIDC and in the same year received a National Teaching Fellowship in the UK, the UK's highest award for higher education. In 2009 he was elected Fellow of the IEEE for contributions to computer science education and became also became second Vice President of the IEEE Computer Society. Dr. Clements is the recipient of the 2002 Computer Science Engineering Undergraduate Teaching Award (IEEE CS) for teaching excellence reflected on textbooks with major impact on computer architecture education as well is the 2007 Taylor L. Booth award recipient for outstanding contributions to education in the field of computer architecture.
Table of Contents
Part I. The Beginning 1. Computer Systems Architecture What is Computer Systems Architecture? Architecture and Organization. Development of Computers. The Stored Program Computer. The Stored Program Concept. Overview of the Computer System. Modern Computing 2. Computer Arithmetic and Digital Logic What is Data? Numbers.Binary Arithmetic. Signed Integers. Introduction to Multiplication and Division. Floating-Point Numbers. Floating-Point Arithmetic. Floating-Point Arithmetic and the Programmer. Computer Logic. Sequential Circuits. Buses and Tristate Gates. Part II. Instruction Set Architectures 3. Architecture and Organization Introduction to the Stored Program Machine. The Components of an ISA. ARM Instruction Set Architecture. ARM Assembly Language. ARM Data-Processing Instructions. ARM's Flow Control Instructions. ARM Addressing Modes. Subroutine Call and Return. Intermission: Examples of ARM Code. Subroutines and the Stack. Data Size and Arrangement. Consolidation - Putting Things Together 4. Instruction Set Architectures - Breadth and Depth Historical Background. The Stack and Data Storage. Privileged Modes and Exceptions. MIPS: Another RISC. Data Processing and Data Movement. Memory Indirect Addressing. Compressed Code, RISC, Thumb, and MIPS16. Variable-Length Instructions. 5. Computer Architecture and Multimedia Applications of High-Performance Computing. Multimedia Influences - Reinventing the CISC. Introduction to SIMD Processing. Streaming Extensions and the Development of SIMD Technology. Part III. Organization and Efficiency 6. Performance - Meaning and Metrics Progress and Computer Technology. The Performance of a Computer. Computer Metrics. Amdahl's Law. Benchmarks. SPEC. Averaging Metrics. 7. Processor Control The Generic Digital Processor. RISC Organization. Introduction to Pipelining. Branches and the Branch Penalty. Branch Prediction. Dynamic Branch Prediction. 8. Beyond RISC: Superscalar, VLIW, and Itanium Superscalar Architecture. Binary Translation. EPIC Architecture. Part IV. The System 9. Cache Memory and Virtual Memory Introduction to Cache Memory. Performance of Cache Memory. Cache Organization. Considerations in Cache Design. Virtual Memory and Memory Management. 10. Main Memory Introduction. Primary Memory. DRAM. The Read-Only Memory Family. New and Emerging Nonvolatile Technologies. 11. Secondary Storage Magnetic Disk Drives. Magnetism and Data Storage. Data Organization on Disk. Secure Memory and RAID Systems. Solid-State Disk Drives. Magnetic Tape. Optical Storage Technology 12. Input/Output Fundamental Principles of I/O. Data Transfer. I/O Strategy. Performance of I/O Systems. The Bus. Arbitrating for the Bus. The PCI and PCIe Buses. The SCSI and SAS Interfaces. Serial Interface Buses Part V. Processor-Level Parallelism 13. Processor-Level Parallelism Why Parallel Processing? Performance Revisited. Flynn's Taxonomy and Multiprocessor Topologies. Multiprocessor Topologies. Memory in Multiprocessor Systems. Multithreading. Multi-Core Processors. Parallel Programming.