Design Paradigms for ISAs

See Architecture#Instruction Set Architecture (ISA)

Complex Instruction-Set Computer (CISC)

Properties

  • Common until early 1980s
  • Very hard to pipeline
  • Instruction set has features to make assembly programming easier, such as:
    • Complex operations
      • E.g movsb (in x86): you can copy a byte string in memory
    • Operands for ALU instructions can come from memory
      • E.g add d0, label (in M68000) mem[label] <- [d0] + mem[label]
    • Complex addressing modes
      • E.g ldr r1, [r0, #4]! (in arm)
  • Smaller executables
  • Variable instruction length
    • E.g x86 instructions are 1-15 bytes in size

Reduced Instruction-Set Computer (RISC)

Properties

  • Introduced in 1980s
  • Facilitates pipelining (speeds up execution)
  • Have load-store architectures
    • ALU operands come from registers (on immediate values)
    • Only load or store instructions access memory
  • Executables are about 30% larger than a CISC ISA
  • Fixed instruction size

Example

Convert add, d0, label (M68000 = CISC) into ARM

solution

LDR R1, =label
LDR R2, [R1]
ADD R2, R0, R2
STR R2, [R1]

Example processor: LEGv8