Available instruction-level parallelism for superscalar and superpipelined machines
- 1 April 1989
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGARCH Computer Architecture News
- Vol. 17 (2) , 272-282
- https://doi.org/10.1145/68182.68207
Abstract
Superscalar machines can issue several instructions per cycle. Superpipelined machines can issue only one instruction per cycle, but they have cycle times shorter than the latency of any functional unit. In this paper these two techniques are shown to be roughly equivalent ways of exploiting instruction-level parallelism. A parameterizable code reorganization and simulation system was developed and used to measure instruction-level parallelism for a series of benchmarks. Results of these simulations in the presence of various compiler optimizations are presented. The average degree of superpipelining metric is introduced. Our simulations suggest that this metric is already high for many machines. These machines already exploit all of the instruction-level parallelism available in many non-numeric applications, even without parallel instruction issue or higher degrees of pipelining.Keywords
This publication has 11 references indexed in Scilit:
- Software pipelining: an effective scheduling technique for VLIW machinesPublished by Association for Computing Machinery (ACM) ,1988
- Automatic translation of FORTRAN programs to vector formACM Transactions on Programming Languages and Systems, 1987
- An Instruction Issuing Approach to Enhancing Performance in Multiple Functional Unit ProcessorsIEEE Transactions on Computers, 1986
- Global register allocation at link timePublished by Association for Computing Machinery (ACM) ,1986
- Measuring the Parallelism Available for Very Long Instruction Word ArchitecturesIEEE Transactions on Computers, 1984
- Design of a High Performance VLSI ProcessorPublished by Springer Nature ,1983
- An Approach to Scientific Array Processing: The Architectural Design of the AP-120B/FPS-164 FamilyComputer, 1981
- Percolation of Code to Enhance Parallel Dispatching and ExecutionIEEE Transactions on Computers, 1972
- The Inhibition of Potential Parallelism by Conditional JumpsIEEE Transactions on Computers, 1972
- Detection and Parallel Execution of Independent InstructionsIEEE Transactions on Computers, 1970