Instruction Level Parallelism
# Instruction Level Parallelism
We can group multiple independent instructions and execute them concurrently in different functional units of a single processor.
# Approaches
Hardware approach: Superscalar processor Software approach: compiler based using a Very Long Instruction Word (VLIW) processor
# Superscalar Processing
Way-2 can be assigned load and store instructions while Way-1 will handle other instructions: We can introduce previous techniques to reduce data hazard and improve overall CPI:
# Very Long Instruction Word
# Practice Problems
a. P1 in order:
Time | Lane 1 | Lane 2 |
---|---|---|
1 | A | |
2 | B | |
3 | C | D |
4 | E | F |
5 | G | |
6 | H | |
P2 out of order: | ||
Time | Lane 1 | Lane 2 |
—- | —— | —— |
1 | A | D |
2 | B | E |
3 | C | F |
4 | G | |
5 | H |
b. $Speedup = 6/5=1.2$