Jump to content

Instruction-level parallelism

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 141.158.66.54 (talk) at 08:03, 14 June 2003 (created). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Instruction level parallelism (ILP) is a measure of how many of the operations in a program can be dealt with at once. Consider the following program:

1. e = a + b
2. f = c + d
3. g = e * f

Operation 3 depends on the results of operations 1 and 2, so it cannot be calculated until both of them are completed. However, operations 1 and 2 do not depend on any other operation, so they can be calculated simultaneously. Assuming that each operation can be completed in one unit of time, than these three instructions can be completed in a total of two units of time, giving an ILP of 3/2.

A goal of compiler and processor designers is to identify and take advantage of as much ILP as possible. Processors that can execute multiple instructions in parallel are refered to as superscalar processors.