Instruction Order Enforcement Module for Out-of-Order Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Out-of-order execution processors face challenges in maintaining instruction order, particularly when accessing resources that must be updated in program order, leading to potential errors and inconsistencies if instructions are executed in data order instead of program order.

Innovation Solution

The introduction of a pair of instruction order enforcement instructions, comprising an activation instruction and an enforcement instruction, which activate and enforce instruction order within the processor's pipeline stages, preventing newer instructions from advancing until the enforcement instruction has been processed, ensuring that memory locations and other resources are accessed in the correct order.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If out-of-order execution is implemented to improve processor performance, then productivity is improved, but reliability deteriorates due to potential errors when accessing resources that must be updated in program order

Engineering Contradiction:
Improveprocessor performanceVSAvoidinstruction ordering correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces an instruction order enforcement module as an intermediary component between the out-of-order execution logic and resource access operations. This module monitors and controls the execution order of instructions accessing shared resources, ensuring program order compliance while allowing out-of-order execution for other operations. The module acts as a mediator that selectively enforces ordering constraints without completely disabling out-of-order execution benefits.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If instructions are executed in data order rather than program order, then productivity is improved through increased pipeline utilization, but manufacturing precision deteriorates as instructions access resources in incorrect order

Engineering Contradiction:
Improvepipeline utilizationVSAvoidresource access order
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The patent applies local quality by implementing selective order enforcement only for specific instructions that access shared resources or state that require program order, while allowing other instructions to execute in optimized data order. The instruction order enforcement module identifies and applies ordering constraints locally to critical operations rather than globally to all instructions, maintaining pipeline efficiency while ensuring correctness where needed.

Inventive Principle:
Principle #3Local quality

3Reliability

If instruction order enforcement is implemented to ensure program order, then reliability is improved, but device complexity increases due to additional pipeline stages and control logic

Engineering Contradiction:
Improveinstruction ordering correctnessVSAvoidprocessor structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements preliminary action by having the instruction order enforcement module pre-identify and flag instructions that require program order enforcement before they reach the execution stage. The module prepares and stores order enforcement information in advance, allowing the pipeline to efficiently handle ordering constraints without adding significant complexity to the critical execution path. This preliminary preparation reduces the burden on later pipeline stages.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3014424B1Instruction order enforcement pairs of instructions, processors, methods, and systems
Publication Date: 2019.11.27 INTEL CORP
  • EP3014424B1 patent drawingFigure 1
  • EP3014424B1 patent drawingFigure 2
  • EP3014424B1 patent drawingFigure 3

AI summary

A processor of an aspect includes an instruction fetch unit to fetch a pair of instruction order enforcement instructions. The pair of instruction order enforcement instructions are part of an instruction set of the processor. The pair of instruction order enforcement instructions includes an activation instruction and an enforcement instruction. The activation instruction is to occur before the enforcement instruction in a program order. The processor also includes an instruction order enforcement module. The instruction order enforcement module, in response to the pair of the instruction order enforcement instructions, is to prevent instructions occurring after the enforcement instruction in the program order, from being processed prior to the activation instruction, in an out-of-order portion of the processor. Other processors are also disclosed, as are various methods, systems, and instructions.