Microprocessor Static Instruction Dispatch via Time Counter

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current microprocessors face challenges in power consumption, design complexity, and performance due to dynamic scheduling of instructions, particularly with high latency load instructions, which complicates speculative execution and replay processes.

Innovation Solution

A microprocessor design that employs a time counter for statically dispatching instructions based on preset execution times, using a time-resource matrix to manage resource availability and a register scoreboard for tracking write-back times, allowing for simpler and more efficient speculative execution and replay mechanisms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If dynamic scheduling of instructions is used in out-of-order superscalar microprocessors, then instruction execution performance is improved, but power consumption and design complexity increase

Engineering Contradiction:
Improveinstruction execution performanceVSAvoiddesign complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Instead of dynamically scheduling instructions based on real-time resource availability and dependencies, the patent inverts the approach by using a static scheduling method where instructions are issued in a predetermined order based on their sequence number. The execution unit dynamically adapts to resource availability rather than the scheduler adapting to complex dependency resolution, simplifying the overall system architecture while maintaining performance.

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The patent extracts the complex dynamic scheduling logic from the execution pipeline by introducing a separate static scheduler that operates independently. The scheduler simply issues instructions based on their sequence number, while the execution unit handles all dynamic aspects of resource allocation and dependency resolution, separating the simple scheduling function from the complex execution function.

Inventive Principle:
Principle #2Taking out (Extraction)

2Productivity

If load instructions with high latency are prioritized in the execution pipeline, then load-dependent instructions can execute sooner, but speculative execution and replay complexity increases

Engineering Contradiction:
Improveload instruction throughputVSAvoidreplay complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-calculating and storing the sequence numbers of instructions in the instruction stream before execution. This allows the static scheduler to issue instructions in the correct order without needing to dynamically track dependencies or manage complex replay scenarios. The sequence number information is prepared in advance, eliminating the need for complex speculative execution and replay mechanisms.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The sequence number acts as an intermediary mechanism that mediates between the simple static scheduler and the complex execution unit. Instead of the scheduler needing to understand complex dependencies or manage speculative execution, the sequence number provides a simple ordering mechanism that the execution unit uses to manage instruction issuance, thereby simplifying the scheduler while maintaining execution correctness.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If selective replay of dependent instructions is implemented, then performance is improved, but scheduling complexity increases significantly

Engineering Contradiction:
Improveinstruction execution throughputVSAvoidscheduling complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The execution unit performs self-service by automatically handling dependency resolution and instruction replay based on the sequence numbers provided by the static scheduler. The execution unit monitors resource availability and instruction dependencies, and when a load instruction misses, it automatically replays dependent instructions without requiring complex scheduling logic or external intervention. This shifts the complexity from the scheduler to the execution unit, which is better positioned to handle such dynamic aspects.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS12190116B2Microprocessor with time count based instruction execution and replay
Publication Date: 2025.01.07 SIMPLEX MICRO INC
  • US12190116B2 patent drawing
  • US12190116B2 patent drawing
  • US12190116B2 patent drawing

AI summary

A processor includes a time counter and a time-resource matrix and provides a method for statically dispatching instructions if the resources are available based on data stored in the time-resource matrix, and wherein execution times for the instructions use a time count from the time counter to specify when the instructions may be provided to an execution pipeline. The execution times are based on fixed latency times of instructions with exception of the load instruction which is based on the data cache hit latency time. A data cache miss causes the load instruction and subsequent dependent instructions to be statically replayed at a later time using the same time count.