INEL 4215
Computer Architecture
and Organization
RISC vs. CISC
RISC – Reduced Instruction Set Computer
CISC – Complex Instruction Set Computer
CISC Design
- Design an ISA emphasizing doing more with each instruction
- Wide variety of addressing modes
- Complex instructions
- Instruction lengths may vary
- Time to execute instructions vary
Why CISC
- More operations into a program size
- Cost of memory – historical
- Assembly closer to high level languages.
- Narrow this gap.
As manufacturers added more instructions, higher clock speeds were not supported.
CISC did not support prefetching, pipelining, and superscalar.
RISC came along
- Reduced number of instructions
- Minimum complexity of instructions.
- Exploit caching, pipelining, and superscalar.
- One instruction per cycle. (single clock cycle – goal) (pipelining).
- Fixed instruction length
1 word – specifies everything needed: operation, operands, results, where to place results, which one is next instruction
- Only load and store instructions can access memory
Operands in registers
Minimizes traffic between processor and memory.
Minimizes pipeline delays.
- Simplified addressing modes.
Two addressing modes.
Register indirect – register contains address of operands
Indexed – address operand is R[register] + constant
- Fewer Simpler Operations
Shorter clock cycles.
Complex instructions – decomposed into simpler instructions.
Cache – keep up with execution
- Delayed Loads and Branches
If load, store, branch require more than one clock cycle, then another instruction not dependent on the result may be issued.
Compiler will aid with this.
- Prefetch and speculative execution
Speculative execution -> When branch occurs. Execution on target address begins not knowing if the condition was met. If not results is discarded.
- Let the compiler do it
Out of order execution
Compiler will optimize.
Example: PowerPC - RICS architecture.