Using Heuristic Value Prediction and Dynamic Task Granularity Resizing to Improve Software Speculation
Figure 8
The execution flow of a code section under the conventional speculative model with static task granularity (the two parts of the figure share the same code section, in which the “#ifdef” part in the code section brings a dependency. The shadowed part in the task shows the control overhead brought by task creating and committing. The (a) part of the figure shows the execution flow with DEPENDENCY = 0, while the (b) part shows the execution flow with DEPENDENCY = 1. The bigger task granularity is 8, while the smaller task granularity is 2).
(a) Execution with DEPENDENCY = 0 (bigger task granularity wins)
(b) Execution with DEPENDENCY = 1 (smaller task granularity wins)