Speculative execution

In a speculative execution processor idle resources are used to perform forward for a potential future state of the program flow calculation and kept results.

Background

Speculative execution is an implementation of the Eager execution ( dt: eager evaluation) evaluation strategy, the opposite of lazy evaluation, at the processor level. Thus, it is the processor allows users to continously perform multiple commands in parallel to work more effectively and faster. This also became introduced to the ever- present parallel processor resources ( multiple pipelines etc. ), effective utilization.

Technology

In a speculative execution of the following program steps are executed in phases in which the processor is not fully utilized, ( in the program flow future) examined for their feasibility with the aim of finding the most likely path of the program flow. The most likely execution path is followed and the results are cached as " Speculative results ". If the program has arrived at the point where it needs the results, they are already there, it does not have to wait for a possibly lengthy calculation. The zwischengepeicherten results are read out and the matching performed, the others are discarded. This " thinking ahead " of the processor whose performance is also used in phases of lower capacity to relieve him later at high utilization.

Disadvantages

A disadvantage of this technique is that calculations on execution paths that turn out to be false speculation also included in the energy balance. These calculations do not contribute to computing power and thus have the computing power per watt efficiency reduced. For mobile computing systems such as laptops this can be relevant for the autonomous operation time, which is why, for example, the Intel Atom processor was developed deliberately without this technology.

  • Computer Architecture
741127
de