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

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.

-ADS BY GOOGLE

File Extensions and File Formats

SearchCompliance

  • risk management

    Risk management is the process of identifying, assessing and controlling threats to an organization's capital and earnings.

  • compliance as a service (CaaS)

    Compliance as a Service (CaaS) is a cloud service service level agreement (SLA) that specified how a managed service provider (...

  • data protection impact assessment (DPIA)

    A data protection impact assessment (DPIA) is a process designed to help organizations determine how data processing systems, ...

SearchSecurity

  • quantum key distribution (QKD)

    Quantum key distribution (QKD) is a secure communication method for exchanging encryption keys only known between shared parties.

  • identity theft

    Identity theft, also known as identity fraud, is a crime in which an imposter obtains key pieces of personally identifiable ...

  • cybercrime

    Cybercrime is any criminal activity that involves a computer, networked device or a network.

SearchHealthIT

SearchDisasterRecovery

  • disaster recovery plan (DRP)

    A disaster recovery plan (DRP) is a documented, structured approach that describes how an organization can quickly resume work ...

  • business continuity plan (BCP)

    A business continuity plan (BCP) is a document that consists of the critical information an organization needs to continue ...

  • disaster recovery team

    A disaster recovery team is a group of individuals focused on planning, implementing, maintaining, auditing and testing an ...

SearchStorage

  • logical unit number (LUN)

    A logical unit number (LUN) is a unique identifier for designating an individual or collection of physical or virtual storage ...

  • NVMe over Fabrics (NVMe-oF)

    NVMe over Fabrics, also known as NVMe-oF and non-volatile memory express over fabrics, is a protocol specification designed to ...

  • CIFS (Common Internet File System)

    CIFS (Common Internet File System) is a protocol that gained popularity around the year 2000, as vendors worked to establish an ...

Close