Store Buffer Search Pointer Adjustment for Out-of-Order Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern processors face challenges in efficiently executing complex instructions such as floating-point operations and load/store operations, which require more execution time and resources, impacting overall throughput and performance, especially in multiprocessor systems where instructions are executed out-of-order.

Innovation Solution

The implementation of an instruction set architecture that includes packed data instructions and execution units capable of performing operations on multiple data elements in parallel, utilizing SIMD technology and out-of-order execution to optimize the execution of instructions in processors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If floating-point operations and load/store operations are executed in conventional sequential manner, then execution accuracy is maintained, but execution time increases and throughput decreases

Engineering Contradiction:
Improveinstruction throughputVSAvoidexecution time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The processor segments instructions into multiple types (first type instructions and second type instructions) with different execution characteristics. First type instructions are executed in-order while second type instructions are executed out-of-order, allowing the system to optimize throughput for compatible instructions without compromising correctness of critical operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The processor dynamically selects execution order based on instruction type. The execution unit determines whether to execute instructions in-order or out-of-order based on the specific instruction characteristics, enabling adaptive optimization of execution time and throughput for different operational contexts.

Inventive Principle:
Principle #15Dynamics

2Speed

If multiple data elements are processed sequentially, then execution simplicity is maintained, but processing speed decreases

Engineering Contradiction:
Improveexecution speedVSAvoidexecution unit complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The execution unit merges multiple data elements into a single instruction stream and processes them simultaneously using SIMD technology. This combining approach allows parallel processing of multiple elements without requiring separate execution paths for each element, thus increasing speed while controlling complexity.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The execution unit is designed with universal capability to handle both scalar operations and vector operations through the same hardware structure. This multi-functionality allows the processor to efficiently process different types of instructions (first type and second type) and multiple data elements without requiring dedicated specialized units for each operation type.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If instructions are executed strictly in-order, then program correctness is ensured, but processor utilization decreases

Engineering Contradiction:
Improveprocessor utilizationVSAvoidinstruction execution correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The instruction stream is segmented into different categories where first type instructions maintain strict in-order execution for correctness, while second type instructions allow out-of-order execution for improved utilization. This segmentation enables the system to achieve high processor utilization without compromising the correctness of critical operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The execution unit acts as an intermediary that mediates between in-order and out-of-order execution requirements. It determines the appropriate execution order for each instruction based on its type, ensuring that correctness requirements are met while maximizing processor utilization through selective out-of-order execution.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10514927B2Instruction and logic for sorting and retiring stores
Publication Date: 2019.12.24 INTEL CORP
  • US10514927B2 patent drawing
  • US10514927B2 patent drawing
  • US10514927B2 patent drawing

AI summary

A processor includes logic to execute an instruction stream out-of-order. The instruction stream is divided into a plurality of strands and its instructions and those within the streams are ordered by program order (PO). The processor further includes logic to identify an oldest undispatched instruction in the instruction stream and record its associated PO as an executed instruction pointer, identify a most recently committed store instruction in the instruction stream and record its associated PO as a store commitment pointer, a search pointer with PO less than the execution instruction pointer, identify a first set of store instructions in a store buffer with PO less than the search pointer and eligible for commitment, evaluate whether the first set of store instructions is larger than a number of read ports of the store buffer, and adjust the search pointer.