Instruction Level Programming
- ILP
- allows the compiler and the processor to overlap the execution of multiple instructions or even to change the order in which instructions are executed
- Instruction Pipelining
- SuperScalar
- Out of Order Execution
- Register Renaming
- Speculative Execution
- Branch Prediction