Introduction
Getting started with computer architecture
()
1. Computer Architecture
Computer architecture
()
Components of a computing system
()
The CPU
()
The memory subsystem
()
The input/output subsystem
()
2. The Central Processing Unit
The role of the CPU
()
CPU organization
()
Instruction set architectures
()
Number of operands per instruction
()
CISC vs. RISC architectures
()
Harvard vs. Von Neumann architectures
()
Assembly language
()
3. Instruction Execution Pipelining
Understanding pipelining
()
CPU pipeline stages
()
Pipeline hazards
()
Overcoming control hazards with software
()
Overcoming data hazards with software
()
Overcoming pipeline hazards with hardware
()
Impact on software: Pipelining
()
4. Out-of-Order Execution
Understanding OOO execution
()
OOO execution architecture elements
()
Tomasulo's algorithm
()
Instruction schedulers today
()
Performance improvements
()
5. Memory
Memory technologies
()
Memory hierarchy
()
Cache mapping
()
6. Complications with Memory
Paging
()
Hardware support for paging
()
Memory in multiprocessor systems
()
Cache coherence
()
Impact on software: The memory subsystem
()
7. Input/Output
I/O handling techniques
()
Polling vs. interrupts
()
Direct memory access
()
Serial communication
()
Layered communication protocols
()
Impact on software: I/O handling
()
8. System Integration
Bus architectures
()
In-die buses
()
Motherboards
()
Systems on a chip
()
9. Specialized Architectures and Emerging Technologies
Embedded systems
()
FPGAs
()
Soft processors
()
Hardware accelerators
()
Cloud and edge computing
()
RISC-V: An industry-ready open architecture
()