Processor Verification Using Timestamp Engine and Store Buffer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High-performance microprocessors face significant performance losses due to long memory access latency, and the integration of multiprocessor cache coherence complicates the interaction between execution pipelines and memory systems, especially when instructions are executed out of order.

Innovation Solution

A method and system for verifying that a processor design conforms to a specified memory model using a checker, timestamp engine, and store buffering scheme to identify errors and ensure correct load values, involving a load queue, store queue, and global store buffer to maintain memory order and coherence across caches.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the processor executes instructions out of order to hide memory latency, then the processor performance is improved, but the complexity of ensuring memory coherence and correctness increases

Engineering Contradiction:
Improveprocessor performanceVSAvoidmemory coherence complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a verification system with intermediaries (checker, timestamp engine, load queue, store queue, global store buffer) that mediate between the speculative execution engine and the memory system. These intermediaries track memory operations, enforce ordering constraints, and verify coherence without interfering with the actual execution performance, thus resolving the contradiction between performance and complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a virtual copy of the memory system state through the global store buffer and timestamp engine, which records memory operations and their ordering relationships. This copy allows verification of coherence properties without duplicating the actual hardware complexity, enabling validation of out-of-order execution correctness while maintaining system simplicity.

Inventive Principle:
Principle #26Copying

2Reliability

If the processor stalls on memory accesses to ensure correctness, then memory coherence is maintained, but the processor performance deteriorates

Engineering Contradiction:
Improvememory coherenceVSAvoidprocessor performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary actions by recording memory operation timestamps and ordering information in the load queue and store queue before execution completes. The timestamp engine captures memory commit information in advance, allowing the verification system to later determine correct memory ordering and coherence without requiring stalls during execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The verification system implements feedback mechanisms where the checker compares actual memory operations against recorded timestamps and ordering constraints. This feedback loop detects coherence violations without affecting the execution flow, maintaining both performance and reliability by identifying issues post-execution rather than stalling during execution.

Inventive Principle:
Principle #23Feedback

3Reliability

If a verification system is added to ensure memory model compliance, then the reliability of processor design is improved, but the device complexity increases

Engineering Contradiction:
Improvememory model complianceVSAvoidverification system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The verification system is segmented into distinct functional modules: timestamp engine for capturing timing information, load queue for tracking load operations, store queue for tracking store operations, global store buffer for maintaining memory state, and checker for verification. This segmentation allows each component to be simple and focused, reducing overall complexity while maintaining comprehensive verification capability.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9195531B2Processor design verification
Publication Date: 2015.11.24 ORACLE INT CORP
  • US9195531B2 patent drawing
  • US9195531B2 patent drawing
  • US9195531B2 patent drawing

AI summary

A system and method for verifying that a processor design having caches conforms to a specific memory model. The caches might not be maintained coherent in real time. Specifically, the system and method make use of a checker that conforms to the memory model, a time-stamping scheme, and a store buffering scheme to identify a bug(s) in the processor design that violates the memory model and/or loads an incorrect value in response to a load instruction.