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.