INSTRUCTION-LEVEL-PARALLELISM
All processors since about 1985
use pipelining to overlap the execution of instructions and improve
performance. This potential overlap among instructions is called
instruction-level parallelism (ILP), since the instructions can be evaluated in
parallel.
There are two largely separable
approaches to exploiting ILP: an approach that relies on hardware to help
discover and exploit the parallelism dynamically, and an approach that relies
on software technology to find parallelism, statically at compile time.
Processors using the dynamic, hardware-based approach, including the Intel
Pentium series, dominate in the market; those using the static approach,
including the Intel Itanium, have more limited uses in scientific or
application-specific environments.
The value of the CPI (cycles per
instruction) for a pipelined processor is the sum of the base CPI and all
contributions from stalls: Pipeline CPI = Ideal pipeline CPI + Structural
stalls + Data hazard stalls + Control stalls
The ideal pipeline CPI is a
measure of the maximum performance attainable by the implementation. By
reducing each of the terms of the right-hand side to minimize the overall
pipeline CPI or, alternatively, increase the IPC (instructions per clock).
The simplest and most common way
to increase the ILP is to exploit parallel- ism among iterations of a loop.
This type of parallelism is often called loop-level parallelism.There are a
number of techniques for converting such loop- level parallelism into
instruction-levelparallelism. Basically, such techniques work by unrolling the
loop either statically by the compiler or dynamically by the hardware. An important
alternative method for exploiting loop-level parallelism is the use of vector
instructions . A vector instruction exploits data- level parallelism by
operating on data items in parallel.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.