Tom Kelliher, CS 240
Feb. 9, 2000
Written assignment Monday.
Read 6.8--6.12.
Handling control hazards.
Superscalar execution and other advanced pipelining techniques.
Picking up where we left off...
Use of this technique is waning due to:
Exception types:
Responsibilities:
Points:

This won't handle memory exceptions. Why? (Consider a lw of a non-existent address.)
Imprecise interrupts:
DIVF F0, F2, F4
ADDF F10, F10, F8
SUBF F12, F12, F14
This is an example of out-of-order completion on a
superscalar machine.
Challenges: small register files, multiple-branch predictions, multiple line fetches from caches.
Text processing: low, mostly.
Image processing, multimedia: high.
Median operation on an image example:
medianImage(image dest, image src)
{
for each pixel, p, in src
p in dest = medianPixel(p in src);
}
medianPixel(pixel p)
{
find the <= 8 neighboring pixels of p;
compute and return the median value;
}
Challenges: exposing potential ILP to the compiler.
Example. Parallelize the following:
sum = 0; for (i = 0; i < last; ++i) sum += array[i];
r1 = r2 + r3
r4 = r1 + r5
r1 = r6 + r7
r8 = r1 + r4
ISA registers vs. physical registers. Register renaming?