Table of contents

Poison Bits

%3 cluster_a1c2ef87_5304_48ed_9026_7c773007bcd7 Poison Bits _9127922f_5bd2_44f2_9ed2_d3082ed5519d Computer Architecture: A Quantitative Approach. Appendix H _08e82287_b2c3_4623_a6b6_a5824bb5a22d Hardware __0:cluster_a1c2ef87_5304_48ed_9026_7c773007bcd7->_08e82287_b2c3_4623_a6b6_a5824bb5a22d

TODO

Computer Architecture: A Quantitative Approach. Appendix H

book

There are four methods that have been investigated for supporting more
ambitious speculation without introducing erroneous exception behavior:

[...]

1. The hardware and operating system cooperatively ignore exceptions for
   speculative instructions. As we will see later, this approach preserves
   exception behavior for correct programs, but not for incorrect ones. This
   approach may be viewed as unacceptable for some programs, but it has been
   used, under program control, as a “fast mode” in several processors.

2. Speculative instructions that never raise exceptions are used, and checks
   are introduced to determine when an exception should occur

3. A set of status bits, called _poison bits_, are attached to the result
   registers written by speculated instructions when the instructions cause
   exceptions. The _poison bits_ cause a fault when a normal instruction
   attempts to use the register.

4. A mechanism is provided to indicate that an instruction is speculative,
   and the hardware buffers the instruction result until it is certain that
   the instruction isno longer speculative.

  • More details on how it's implemented on Page 31 and Page 32.