Interrupt Handling for Out-of-Order Execution Processors

Processors with multiple functional units, including the superscalars, achieve significant performance enhancement through low-level execution concurrency. In such processors, multiple instructions are often issued and definitely executed concurrently and out-of-order. Consequently, interrupt and exception handling becomes a vexing problem. The authors identify latency, cost, and performance degradation as factors that must be considered in evaluating the effectiveness of interrupt and exception handling schemes. They then briefly enumerate proposals and implementations for interrupt and exception handling on out-of-order execution processors. An efficient hardware mechanism, the instruction window (IW), and an approach which allows for precise, responsive, and flexible interrupt and exception handling are presented. The implementation of the IW is discussed. The design of an eight-cell IW has been carried out; it can work with a very short machine cycle time. A comparison of all interrupt and exception handling schemes for out-of-order execution processors is also presented. >

[1]  Jack E. Volder,et al.  The CORDIC computing technique , 1899, IRE-AIEE-ACM '59 (Western).

[2]  Arthur J. Bernstein,et al.  Analysis of Programs for Parallel Processing , 1966, IEEE Trans. Electron. Comput..

[3]  David W. Anderson,et al.  The IBM System/360 model 91: machine philosophy and instruction-handling , 1967 .

[4]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[5]  J. S. Walther,et al.  A unified algorithm for elementary functions , 1899, AFIPS '71 (Spring).

[6]  Edward M. Riseman,et al.  Percolation of Code to Enhance Parallel Dispatching and Execution , 1972, IEEE Transactions on Computers.

[7]  Alvin M. Despain,et al.  Fourier Transform Computers Using CORDIC Iterations , 1974, IEEE Transactions on Computers.

[8]  Richard M. Russell,et al.  The CRAY-1 computer system , 1978, CACM.

[9]  John P. Hayes,et al.  Computer Architecture and Organization , 1980 .

[10]  Peter M. Kogge,et al.  The Architecture of Pipelined Computers , 1981 .

[11]  Jean-Marc Delosme,et al.  Highly concurrent computing structures for matrix arithmetic and signal processing , 1982, Computer.

[12]  Jean-Michel Muller,et al.  Discrete Basis and Computation of Elementary Functions , 1985, IEEE Transactions on Computers.

[13]  Stanislaw Majerski Square-Rooting Algorithms for High-Speed Digital Circuits , 1985, IEEE Transactions on Computers.

[14]  Kai Hwang,et al.  Computer architecture and parallel processing , 1984, McGraw-Hill Series in computer organization and architecture.

[15]  Hwa C. Torng,et al.  An Instruction Issuing Approach to Enhancing Performance in Multiple Functional Unit Processors , 1986, IEEE Transactions on Computers.

[16]  Jean-Michel Muller,et al.  The FELIN arithmetic coprocessor chip , 1987, 1987 IEEE 8th Symposium on Computer Arithmetic (ARITH).

[17]  Yale N. Patt,et al.  Checkpoint Repair for High-Performance Out-of-Order Execution Machines , 1987, IEEE Transactions on Computers.

[18]  Shuzo Yajima,et al.  A hardware algorithm for computing sine and cosine using redundant binary representation , 1987, Systems and Computers in Japan.

[19]  J. Delosme A Processor for Two-Dimensional Symmetric Eigenvalue and Singular Value Arrays. , 1987 .

[20]  Harold Stuart Stone High-performance computer architecture (2nd ed.) , 1990 .

[21]  Peter M. Kogge,et al.  The Architecture of Symbolic Computers , 1990 .

[22]  Jean-Michel Muller,et al.  The CORDIC Algorithm: New Results for Fast VLSI Implementation , 1993, IEEE Trans. Computers.