This paper examines the relationship between the degree of central processor pipelining and performance. This relationship is studied in the context of modern supercomputers. Limitations due to instruction dependencies are studied via simulations of the CRAY-1S. Both scalar and vector code are studied. This study shows that instruction dependencies severely limit performance for scalar code as well as overall performance. The effects of latch overhead are then considered. The primary cause of latch overhead is the difference between maximum and minimum gate propagation delays. This causes both the skewing of data as it passes along the data path, and unintentional clock skewing due to clock fanout logic. Latch overhead is studied analytically in order to lower bound the clock period that may be used in a pipelined system. This analysis also touches on other points related to latch clocking. This analysis shows that for short pipeline segments both the Earle latch and polarity hold latch give the same clock period bound for both single-phase and multi-phase clocks. Overhead due to data skew and unintentional clock skew are each added to the CRAY-1S simulation model. Simulation results with realistic assumptions show that eight to ten gate levels per pipeline segment lead to optimal overall performance. The results also show that for short pipeline segments data skew and clock skew contribute about equally to the degradation in performance.
[1]
Edward M. Riseman,et al.
Percolation of Code to Enhance Parallel Dispatching and Execution
,
1972,
IEEE Transactions on Computers.
[2]
Leonard W. Cotten.
Circuit implementation of high-speed pipeline systems
,
1965,
AFIPS '65 (Fall, part I).
[3]
Alexandru Nicolau,et al.
Measuring the Parallelism Available for Very Long Instruction Word Architectures
,
1984,
IEEE Transactions on Computers.
[4]
Edward M. Riseman,et al.
The Inhibition of Potential Parallelism by Conditional Jumps
,
1972,
IEEE Transactions on Computers.
[5]
Michael J. Flynn,et al.
Detection and Parallel Execution of Independent Instructions
,
1970,
IEEE Transactions on Computers.
[6]
David L. Kuck,et al.
The Structure of Computers and Computations
,
1978
.
[7]
J. E. Thornton.
Design of a Computer: The Control Data 6600
,
1970
.
[8]
Michael J. Flynn,et al.
Very high-speed computing systems
,
1966
.
[9]
Michael J. Flynn,et al.
Pipelining of Arithmetic Functions
,
1972,
IEEE Trans. Computers.
[10]
Bradley Kevin Fawcett.
Maximal Clocking Rates for Pipelined Digital Systems
,
1975
.
[11]
David W. Anderson,et al.
The IBM System/360 model 91: machine philosophy and instruction-handling
,
1967
.