Implementing Precise Interrupts in Pipelined Processors

  • Authors:
  • James E. Smith;Andrew R. Pleszkun

  • Affiliations:
  • Univ. of Wisconsin, Madison;Univ. of Wisconsin, Madison

  • Venue:
  • IEEE Transactions on Computers
  • Year:
  • 1988

Quantified Score

Hi-index 15.00

Visualization

Abstract

Five solutions to the precise interrupt problem in pipelined processors are described and evaluated. An interrupt is precise if the saved process state corresponds to a sequential model of program execution in which one instruction completes before the next begins. In a pipelined processor, precise interrupts are difficult to implement because an instruction may be initiated before its predecessors have completed. The first solution forces instructions to complete and modify the process state in architectural order. The other four solutions allow instructions to complete in any order, but additional hardware is used, so that a precise state can be restored when an interrupt occurs. All the methods are discussed in the context of a parallel pipeline structure. Simulation results for the Cray-1S scalar architecture are used to show that the first solution results in a performance degradation of at least 16%. The remaining four solutions offer better performance, and three of them result in as little as a 3% performance loss. Several extensions, including vector architectures, virtual memory, and linear pipeline structures, are briefly discussed.