Poison Bits
Category
Computer Architecture: A Quantitative Approach. Appendix H
bookhttp://booksite.mkp.com/9780123838728/references/appendix_h.pdf (Hardware and Software for VLIW and EPIC)
Book
Hennessy, Patterson: Computer Architecture: A Quantitative Approach, 5th Edition
Page 29:
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.