[CS Dept logo]

Com Sci 222/322
Machine Organization

Lectures

Chapter 3: Pipelining

[back] Department of Computer Science
[] The University of Chicago



Last modified: Wed Feb 18 09:49:15 CST




Outline

The information in the text is pretty clear. I decided to condense out a conceptual outline, in a logical order a bit different from the one in the text. I recommend that you read the text in order, but correlate each section to my outline. You may skim the material in 3.7. Make sure that you know what additional complications arise with floating point operations, and other relatively slow instructions, but you don't need to assimilate the material in detail. I will grill you (in assignment and exams) on 3.1-3.6. I'll expect you to be able to do the quantitative reasoning in 3.1-3.5, to explain the issues in 3.6 thoroughly, and to show a general appreciation of the added complications in 3.7. Read 3.8-3.11 to help assimilate the earlier material, and 3.12 for fun.

A simple pipeline for DLX

Here is a table showing the 5 stages of execution for pipelining DLX instructions. The arrays Regs and Mem and the single register PC are global, and all other values are local to each instruction. Wherever a global variable is written in stage i, and also read or written in a stage <i, hazards will occur. They are data hazards if the global variable in question is Regs or Mem, control hazards if it is PC. There are four different pairs of entries in the table above that display hazards. Make sure that you find all four, and understand precisely what the danger is. One of them is a bit subtle, and I haven't seen it mentioned in the text.

Think of two different reasons why the idle stage for ALU instructions is stage 4 instead of stage 5.

Miscellaneous variant views of pipelining issues




Maintained by Michael J. O'Donnell, email: [] odonnell@cs.uchicago.edu