Microprocessor Register Sets for Static Speculative Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional out-of-order (OOO) superscalar microprocessors face significant power dissipation and complexity due to dynamic instruction scheduling, with load instructions causing pipeline stalls and inefficient execution of branch instructions, leading to high power consumption and increased semiconductor area.

Innovation Solution

A microprocessor design that statically schedules instructions based on a time counter, allowing only branch, load, and store instructions to be executed out-of-order and speculatively, while other instructions are executed in-order, using a time-resource matrix to manage resource availability and reducing the need for extensive register renaming.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If out-of-order superscalar microprocessor design is used to improve performance, then instruction execution throughput is improved, but power dissipation and device complexity increase significantly

Engineering Contradiction:
Improveinstruction execution throughputVSAvoidprocessor design complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The processor design is segmented into two distinct execution paths: an out-of-order execution path for load instructions and an in-order execution path for store instructions. This segmentation allows each path to be optimized independently, reducing the overall complexity of the processor design while maintaining high performance for both instruction types.

Inventive Principle:
Principle #1Segmentation

2Productivity

If out-of-order execution is used to resolve data dependencies, then instruction throughput is improved, but power consumption increases

Engineering Contradiction:
Improveinstruction throughputVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

Different execution strategies are applied locally to different instruction types based on their specific requirements. Load instructions, which benefit from speculative execution and out-of-order processing to hide memory latency, are handled by the OOO engine. Store instructions, which have stricter ordering requirements, are handled by the in-order engine. This local differentiation optimizes power consumption by avoiding unnecessary complexity in the execution path.

Inventive Principle:
Principle #3Local quality

3Reliability

If load instructions are executed with long latency, then data accuracy is maintained, but pipeline stalls occur reducing performance

Engineering Contradiction:
Improvedata accuracyVSAvoidpipeline throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The out-of-order execution engine performs preliminary actions by speculatively executing load instructions before their results are actually available. Multiple speculative loads are issued in parallel, and their results are captured and validated later. This preliminary speculative execution prevents pipeline stalls by keeping the execution units busy while maintaining data accuracy through validation.

Inventive Principle:
Principle #10Preliminary action

4Productivity

If branch instructions are executed speculatively to improve control flow, then instruction dispatch is improved, but misprediction penalties increase complexity

Engineering Contradiction:
Improvecontrol flow efficiencyVSAvoidbranch handling complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The design uses copying of instruction streams and state information to handle branch mispredictions. When a misprediction is detected, the correct instruction stream is copied and activated, while the incorrect speculative execution is discarded. This copying mechanism simplifies branch handling by avoiding complex rollback mechanisms and allowing the processor to simply switch between different instruction streams.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS12566613B2Microprocessor with speculative and in-order register sets
Publication Date: 2026.03.03 SIMPLEX MICRO INC
  • US12566613B2 patent drawing
  • US12566613B2 patent drawing
  • US12566613B2 patent drawing

AI summary

A processor includes a time counter and a time-resource matrix and statically dispatches speculative and in-order instructions. The time counter increments periodically, for example, every clock cycle, and the resulting count is used to statically schedule instruction execution. The processor includes a speculative register rename unit and a non-speculative register rename unit to allow certain types of instructions to be executed speculatively while other instructions are executed non-speculatively.