Browse Definitions :
Definition

speculative execution

Speculative execution is an optimization technique in which a processor (CPU) performs a series of tasks before it is prompted to, in order to have the information ready if it is required at any point. Speculative execution uses concurrent processing and out-of-order execution (OoOE) to anticipate and fetch data that might be required at a latter point. It eliminates the stall experienced while waiting for appropriate instructions to arrive for the next step.  Speculative execution uses branch prediction to guess which instructions will most likely be needed in the near future and data flow analysis to arrange the instructions for optimal execution (instead of executing them in the order they came in). The goal is to reduce the total execution time and improve the overall CPU performance.

First, the branch predictor guesses which branch is most likely to be taken in the process and then gathers the next set of instructions associated with that branch. It will then begin speculatively executing them before it knows which of the two branches it will actually be using. If the branch predictor guessed correctly, then the instructions are already lined up and there will be no execution delay. If the branch predictor guessed incorrectly, then the system loads the appropriate information and proceeds with those instructions instead. However, accuracy rates for branch predictors are typically above 95 percent, so the need to reload new information is uncommon.

With in-order execution, a pipeline stall will stop the entire CPU until the issue is solved. Also, a gap is created between CPU and main memory speeds. As the gap grows, the time spent waiting for the main memory to deliver information to the CPU grows as well, thus increasing the time spent waiting on the execution. Speculative execution closes this gap by keeping the CPU busy and minimizing the time it spends idling, thus improving the overall performance of the system.

Speculative execution was adopted by Intel, who started using OoOE with its microprocessors Pentium Pro and Pentium II, Advanced Micro Devices (AMD), who introduced it with the K5 microprocessor, and Advanced RISC Machines (ARM), who began using it with the Cortex A9 microprocessor.

While speculative execution can improve the performance of a computer system, it is important to note that it may also cause security flaws such as meltdown CPU vulnerability.

This was last updated in June 2019

Continue Reading About speculative execution

SearchCompliance
  • OPSEC (operations security)

    OPSEC (operations security) is a security and risk management process and strategy that classifies information, then determines ...

  • smart contract

    A smart contract is a decentralized application that executes business logic in response to events.

  • compliance risk

    Compliance risk is an organization's potential exposure to legal penalties, financial forfeiture and material loss, resulting ...

SearchSecurity
  • biometric verification

    Biometric verification is any means by which a person can be uniquely identified by evaluating one or more distinguishing ...

  • password

    A password is a string of characters used to verify the identity of a user during the authentication process.

  • biometrics

    Biometrics is the measurement and statistical analysis of people's unique physical and behavioral characteristics.

SearchHealthIT
SearchDisasterRecovery
  • What is risk mitigation?

    Risk mitigation is a strategy to prepare for and lessen the effects of threats faced by a business.

  • change control

    Change control is a systematic approach to managing all changes made to a product or system.

  • disaster recovery (DR)

    Disaster recovery (DR) is an organization's ability to respond to and recover from an event that affects business operations.

SearchStorage
  • PCIe SSD (PCIe solid-state drive)

    A PCIe SSD (PCIe solid-state drive) is a high-speed expansion card that attaches a computer to its peripherals.

  • VRAM (video RAM)

    VRAM (video RAM) refers to any type of random access memory (RAM) specifically used to store image data for a computer display.

  • virtual memory

    Virtual memory is a memory management technique where secondary memory can be used as if it were a part of the main memory.

Close