A guide covering the entire hierarchy of computer systems—from logic gates to processors and compilers—typically follows a "bottom-up" approach to explain how physical hardware executes complex software. Core Components of the Guide

3. Specific "All-in-One" PDFs (Legally free)

  • "From NAND to Tetris" (Chapters 1–6 + Appendix) – Directly matches your request. Available via MIT OpenCourseWare or the nand2tetris website.
  • "Introduction to Computing Systems" by Patt & Patel (old edition PDFs exist) – Builds LC-3 from gates to assembly.
  • "Code: The Hidden Language of Computer Hardware and Software" by Charles Petzold (not free, but widely borrowed as PDF in academic libraries) – Best intuitive explanation of the entire chain.

The Takeaway

A computer isn’t a mysterious black box. It’s a hierarchy of reliable lies:

Want to Go Deeper?

If this post felt like a lightning tour, grab these resources:

  • Buses, interconnects, I/O, DMA
  • Interrupts, exceptions, system calls
  • Boot process and firmware (BIOS/UEFI)

2.2 The Multiplexer (MUX)

A MUX selects between multiple inputs using "select" lines.

4.4 The Fetch-Decode-Execute Cycle

  1. Fetch: Program Counter (PC) holds address of next instruction. Send that address to memory; fetch the instruction bytes into Instruction Register (IR). Increment PC.
  2. Decode: Control Unit (CU) decodes the opcode. Activates specific control lines (e.g., "enable ALU for ADD", "select register A").
  3. Execute: Perform operation (e.g., ALU adds two register values). Write result back to register or memory.