EmbeddedRelated.com
Books

Computer Organization and Embedded Systems

Hamacher, Carl, Vranesic, Zvonko, Zaky, Safwat, ● 2011

The sixth edition of this book covers the key topics in computer organization and embedded systems. It presents hardware design principles and shows how hardware design is influenced by the requirements of software. The book carefully explains the main principles supported by examples drawn from commercially available processors.

The book is suitable for undergraduate electrical and computer engineering majors and computer science specialists. It is intended for a first course in computer organization and embedded systems.


Why Read This Book

You should read this book if you want a balanced, example-driven introduction to how hardware and software shape each other in real systems; you will learn core computer-organization principles and see them applied to commercially available processors. The text pairs clear explanations of digital design and microarchitecture with embedded-system perspectives, making it practical for engineers building firmware and low-level system software.

Who Will Benefit

Undergraduate electrical/computer engineering or computer science students and early-career embedded engineers who need a solid foundation in CPU design, memory, I/O, and how those topics affect firmware and embedded-system design.

Level: Intermediate — Prerequisites: Basic programming (preferably C or equivalent), elementary digital logic (gates, binary arithmetic), and familiarity with algebra and discrete math fundamentals.

Get This Book

Key Takeaways

  • Explain the relationship between instruction set architecture and microarchitecture and how design choices affect software.
  • Analyze and design basic CPU datapaths and control logic, including sequential and combinational components.
  • Evaluate memory systems, caches, and virtual memory trade-offs and their impact on performance.
  • Design and interface common I/O and interrupt mechanisms and understand peripheral interaction with processors.
  • Write and read simple assembly language programs for representative architectures and map high-level constructs to machine operations.
  • Apply embedded-system design principles that balance hardware constraints with firmware requirements using commercial processor examples.

Topics Covered

  1. Introduction to Computer Organization and Embedded Systems
  2. Number Systems, Boolean Algebra, and Digital Logic
  3. Combinational and Sequential Logic Circuits
  4. Data Representation and Arithmetic Units
  5. Instruction Set Architecture and Machine Language
  6. CPU Datapath and Control Design
  7. Microarchitecture: Pipelining and Hazards
  8. Memory Systems: SRAM, DRAM, Caches, and Virtual Memory
  9. Input/Output Organization, Buses, and Interrupts
  10. Microcontrollers and Embedded-System Design
  11. Assembly Language Programming and System Software Interfaces
  12. Performance Measurement and Design Trade-offs
  13. Hardware/Software Co-Design Examples from Commercial Processors
  14. Case Studies and Project Examples

Languages, Platforms & Tools

CAssembly (examples for MIPS/ARM/x86-style ISAs)Verilog/VHDL (conceptual HDL examples)MIPSARM (representative commercial cores)x86 (conceptual examples)Generic microcontroller architecturesAssemblers and cross-compilers (GCC toolchain)Instruction set simulators (e.g., SPIM-type simulators)Logic/HDL simulators (ModelSim, basic Verilog/VHDL tools)Standard debugging and profiling tools (conceptual coverage)

How It Compares

Covers similar ground to Patterson & Hennessy's Computer Organization texts but places more emphasis on digital-logic foundations and embedded-system perspectives; for lighter embedded-ARM focus, Valvano's ARM Cortex-M texts are more hands-on.

Related Books

Bryant, Randal, O'Hallaron,...