Step 2
Computer Architecture / Computer Organization
How your code actually runs on a processor: bits, instructions, memory and caches. A prerequisite for understanding operating systems.
Know these firstIntroduction to Programming
- Number systems
- Logic gates
- Assembly
- CPU and pipelining
- Memory hierarchy
- Caches
- Interrupts
Why it matters
High-level languages treat the computer as a black box. This course opens the box: how many instructions an addition takes, why an array beats a linked list, why a program crashes when it runs past its memory. Operating systems and embedded systems build on it.
What to know
- Binary and hexadecimal; how integers and floating-point numbers are stored in bits.
- Logic gates and building an adder or a multiplexer from simple circuits.
- An instruction set and assembly: registers, the stack, function calls.
- How a processor executes instructions; the idea of a pipeline.
- The memory hierarchy: registers, cache, RAM, disk and the speed gaps between them.
- How caches work and why sequential access is fast.
- Interrupts and input/output.
Practice and projects
- Compile a small C function and read the assembly output (godbolt.org).
- Build a small ALU or counter in Logisim.
- Time two loops that walk an array row by row and column by column; see the cache with your own eyes.
Common mistakes
- Trying to memorize assembly; the goal is to read and understand it, not write it.
- Thinking this is only for hardware people; most performance problems come from these topics.