RISC Review
RISC Design Philosophy
RISC's design philosophy is aimed at delivering simple but powerful instructions that execute within a single cycle @high clock speed
Reduce complexity of instructions, places greater demand on the compiler (software) rather than hardware
software has more flexibility
Instructions
Fixed-length instructions, allowing future instructions to be executed before decoding current instructions
CISC instructions are variable-length
RISC has a reduced number of instruction classes, each class proivded simple instructions that exec in 1 cycle
Complex instructions are broken up in to simple ones
i.e. divide
Pipelines
Uses a pipline for parallel execution. Instructions can be executed in the pipeline
CISC requires the use of a miniprogram called microcode to execute instructions
Registers
RISC uses large general-purpose register set
each register can hold an address or data
registers are fast local stores
Load-Store (register-to-register) Arch
operations are only performed on data in registers
Load and store instructions are used to move data into registers
Separate Load and store instructions are used to move data from register bank to external mem
separating memory access from data processing provides an advantage
data items are held in the register bank and can be used multiple times. No need to for multiple memory accesses
Memory access can be costly
Remember hierarchy and cycle latency, hit miss, invalidation, coherency, etc.
RISC -> greater complexity on the compiler, less on the hardware CISC -> greater complexity on the hardware, less on the compiler