RISC and CISC are two opposing philosophies for designing a CPU's instruction set. They differ in the number, complexity, and length of instructions, and in how those instructions interact with memory and registers.
In RISC, only two instruction types access main memory: LOAD (memory → register) and STORE (register → memory). All arithmetic and logic operations work exclusively on values held in registers. This simplifies instruction decoding and enables faster execution.
All RISC instructions are the same size (e.g., 32 bits). This makes it easy for the CPU to fetch and decode instructions quickly and predictably — critical for pipelining.
Because each RISC instruction takes exactly one clock cycle and has fixed length, instructions can be pipelined efficiently. While one instruction is being executed (E), the next is being decoded (D), and the one after that is being fetched (F):
CISC processors have specialised instructions that can perform complex operations in a single instruction (e.g., multiply-and-accumulate, string copy, vector operations). A single CISC instruction might do what takes 3–10 RISC instructions.
CISC instructions can be different lengths (e.g., 1 byte to 15+ bytes in x86). This means the CPU must identify instruction boundaries before decoding, which adds complexity and makes pipelining harder.
CISC instructions are often implemented using microcode — each complex instruction is internally decoded into a sequence of simpler micro-operations. This adds a layer of abstraction between the instruction set and the hardware.
| Feature | RISC | CISC |
|---|---|---|
| Instruction set size | Small (typically ~100) | Large (300–500+) |
| Instruction length | Fixed (e.g., 32 bits) | Variable (1–15+ bytes) |
| Instruction complexity | Simple — each does one thing | Complex — one instruction may do many things |
| Clock cycles per instruction | 1 cycle (typically) | Many cycles possible |
| Memory access | Load/store only | Many instructions access memory directly |
| Number of registers | Many general-purpose registers | Fewer registers |
| Compiler complexity | High (must use many simple instructions) | Lower (single instructions do more) |
| Hardware complexity | Simple (more space for cache) | Complex (large decoder/microcode unit) |
| Pipelining | Very well suited | Harder due to variable instruction length |
| Power consumption | Lower (simpler hardware) | Higher |
| Typical use | Mobile, embedded, tablets (ARM) | Desktop/server CPUs (Intel, AMD) |
| Examples | ARM (phones, Raspberry Pi), RISC-V | x86-64 (Intel Core, AMD Ryzen) |
Modern x86 CISC processors internally translate their complex variable-length instructions into RISC-like micro-operations before executing them. This means the two architectures have converged somewhat at the implementation level, even though the instruction set architecture (ISA) remains different.
ARM (RISC) dominates mobile and embedded devices due to its lower power consumption. x86-64 (CISC) dominates desktop and server computing due to its large ecosystem of software.
6 questions · instantly marked · Cambridge 9618 standard
| Term | Definition |
|---|
10 questions · 10 marks · 10 minutes