Definition
Instruction-Level Parallelism
Instruction-level parallelism (ILP) is the amount of parallelism available in a sequence of instructions — that is, how many instructions could be executed simultaneously without violating data dependencies or control flow.
A higher ILP means more independent instructions can be overlapped or issued in the same clock cycle, improving instructions per cycle.
Limits
ILP is bounded by three kinds of dependencies:
- Data dependencies (RAW): a later instruction genuinely needs a value produced by an earlier one.
- Name dependencies (WAR, WAW): two instructions share a register name but are otherwise independent. Register renaming removes these.
- Control dependencies: the next instruction to execute is not known until a branch resolves.
Resource constraints — a limited number of functional units or registers — also cap the ILP that can be exploited in practice.