4.1.3Computer Architecture (Deep)

ISA (Instruction Set Architecture) — RISC vs CISC

2,375 words11 min readdifficulty · medium6 backlinks

WHAT is an ISA?


WHY does RISC vs CISC exist? (the historical why)


The defining feature: the load/store rule


Figure — ISA (Instruction Set Architecture) — RISC vs CISC

The trade-off, made precise (derivation, not a dump)


Side-by-side cheat table (active-recall friendly)


Common mistakes (Steel-manned)


Flashcards

What is an ISA?
The abstract hardware–software contract: the instructions, registers, addressing modes, and data types a processor exposes to software (independent of how the chip is physically built).
ISA vs microarchitecture?
ISA = visible interface/"menu" (e.g. x86-64); microarchitecture = the internal implementation/"kitchen" (e.g. Intel's vs AMD's design of the same ISA).
The single deepest RISC vs CISC difference?
Where complexity lives — CISC pushes it into hardware (fat instructions); RISC pushes it into the compiler/software (simple instructions).
Define a load/store architecture.
Arithmetic/ALU instructions operate only on registers; memory is accessed solely via explicit LOAD and STORE instructions. (RISC hallmark.)
State the Iron Law of processor performance.
Time = IC × CPI × T_cycle (instruction count × cycles per instruction × clock period).
Derive why the Iron Law's units work out.
(instr/prog)·(cyc/instr)·(s/cyc): instr and cyc cancel → s/prog = total CPU time.
Which Iron-Law factor does CISC reduce, and what does it cost?
Reduces IC; costs higher CPI and harder-to-shrink clock period.
Which factors does RISC favor?
Low CPI (~1 via pipelining) and short T_cycle; accepts a higher IC.
Why does fixed-length encoding help RISC?
Uniform instructions decode and pipeline easily → low CPI and faster clock.
Common misread of "RISC"?
That it means fewer instructions in the ISA; really it means reduced complexity per instruction.
How do modern x86 CPUs blur the line?
They decode CISC instructions into RISC-like micro-ops (µops) and run those in a RISC-style pipeline — CISC outside, RISC inside.
Two RISC ISAs and two CISC ISAs?
RISC: ARM, RISC-V (also MIPS, SPARC). CISC: x86/x86-64, VAX (also System/360).

Recall Feynman: explain it to a 12-year-old (hidden — try first!)

Imagine giving instructions to a robot to make a sandwich.

  • CISC robot: you say "make a sandwich!" — one big command. The robot has tons of built-in machinery to figure out all the little steps. Short for you, complicated robot.
  • RISC robot: you must say "pick up bread… spread butter… add cheese… close bread." — many tiny commands. The robot is simple and does each tiny step super fast, but you (the compiler) have to think harder and talk more. Neither is "best" — it depends on whether you'd rather have a clever robot or a clever instructor. And the ISA is just the list of words the robot promises to understand.

Connections

  • Microarchitecture vs ISA — the implementation layer beneath the ISA.
  • Pipeliningwhy RISC craves fixed-length, single-cycle-shaped instructions.
  • CPI and the Iron Law of Performance — the equation that quantifies the trade-off.
  • Microcode — how CISC's complex instructions are internally broken into steps.
  • Compilers and Code Generation — where RISC dumps its complexity.
  • Addressing Modes — CISC's rich set vs RISC's minimal set.
  • Registers and the Register File — why load/store needs many registers.
  • Caches and Memory Hierarchy — load/store discipline interacts with memory speed.

Concept Map

independent of

one ISA to many

split into

core tradeoff

packs into hardware

pushes into compiler

caused by

caused by

defined by

ALU works

allows

enables

ISA contract HW-SW

Microarchitecture

RISC vs CISC philosophy

Where complexity lives

CISC complex

RISC reduced

1970s tiny memory + hand assembly

1980s good compilers + pipelining

Load-Store rule

Registers only

Memory operands in arithmetic

Easy pipelining fixed-length

Hinglish (regional understanding)

Intuition Hinglish mein samjho

Dekho, ISA matlab Instruction Set Architecture — ye CPU aur software ke beech ka contract hai. ISA batata hai ki processor kaun-kaun se instructions samajhta hai, kitne registers hain, memory kaise access hoti hai. Yaad rakho: ISA = menu (kya order kar sakte ho), microarchitecture = kitchen (chef andar kaise banata hai). Ek hi ISA (jaise x86-64) ko Intel aur AMD alag-alag tarike se banate hain.

Ab RISC vs CISC ek design philosophy ki ladai hai. Ek hi line yaad kar lo: CISC complexity ko hardware me daalta hai, RISC complexity ko compiler/software me daalta hai. CISC me ek hi mota instruction (jaise ADD A,B) sidhe memory pe kaam kar leta hai — instruction count kam, par har instruction multi-cycle (CPI zyada). RISC me sirf load/store hi memory chhuते hain, baaki sab register-to-register; instructions chhote, fixed-length, isliye pipeline me fit ho jaate hain aur CPI ~1 ho jaata hai.

Performance samajhne ke liye Iron Law hai: T=IC×CPI×TcycleT = IC \times CPI \times T_{cycle}. CISC IC kam karta hai par CPI badha leta hai; RISC IC thoda badha leta hai par CPI aur clock period dono chhote kar leta hai. Koi "hamesha fast" nahi — workload pe depend karta hai. Aur ek important baat: aaj ke x86 chips andar se CISC instructions ko chhote micro-ops (µops) me todke RISC-style pipeline me chalate hain — yaani bahar CISC, andar RISC. Exam me ye line likh doge to professor khush.

Go deeper — visual, from zero

Test yourself — Computer Architecture (Deep)

Connections