You are on page 1of 1

Distinguish between Hardware versus Software Speculation Mechanisms

Crosscutting Issues
Hardware versus Software Speculation Mechanisms Hardware Speculation Software Speculation Dynamic runtime disambiguation of memory addresses is Dynamic runtime disambiguation of done using Tomasulo¶s algorithm. This disambiguation memory addresses is difficult to do at allows us to move loads past stores at runtime. compile time for integer programs that contain pointers Hardware-based speculation works better when control flow Hardware-based branch prediction is is unpredictable, and when hardware-based branch prediction superior than software-based branch is superior to software-based branch prediction done at prediction done at compile time. compile time. Hardware-based speculation maintains a completely precise Software-based approaches have added exception model even for speculated instructions special support to allow this as well. Hardware-based speculation does not require compensation Software-based speculation require or bookkeeping code. compensation or Bookkeeping The ability to see further in the code is very poor in Hardware Compiler-based approaches may benefit based speculation from the ability to see further in the code sequence, resulting in better code scheduling than a purely hardware-driven approach. Hardware-based speculation with dynamic scheduling does Software-based speculation with dynamic not require different code sequences to achieve good scheduling require different code sequences performance to achieve good performance Speculation in hardware is complex and requires additional Speculation in Software is Simple hardware resources