Memory Consistency Verification via Directed Graph Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In shared memory multiprocessor systems, design problems or bugs are difficult to find, isolate, and correct, especially in complex architectures like chip multiprocessing (CMP) or simultaneous multithreading (SMT), leading to system failures and delayed design releases due to the complexity of verifying compliance with memory consistency models.

Innovation Solution

A system comprising a test module and an analysis module that coordinates the execution of a multithreaded test program on a test platform, using directed graphs to verify compliance with memory consistency models by representing memory operations as nodes and adding edges to represent ordering relationships, with heuristics and backtracking to detect potential violations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If existing verification techniques are used to verify memory consistency model compliance, then verification can be performed, but the computational complexity is high and it is limited to small programs and/or small multiprocessors

Engineering Contradiction:
Improveverification accuracyVSAvoidcomputational complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The verification process is segmented into multiple phases: test program generation, execution coordination, result collection, and compliance verification. Each phase handles a specific aspect of verification independently, allowing the system to manage complexity through modular processing rather than attempting to verify everything simultaneously.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A test platform is introduced as an intermediary between the multithreaded test program and the analysis module. This platform coordinates execution, collects results, and provides structured data to the analysis module, thereby reducing the computational burden on the verification system while maintaining comprehensive verification capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If advanced shared memory multiprocessor architectures are implemented, then computing capability is improved, but design problems and bugs become more difficult to find and correct

Engineering Contradiction:
Improvecomputing capabilityVSAvoidbug detection difficulty
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The system performs preliminary verification by executing multithreaded test programs before final system deployment. These test programs are specifically designed to exercise memory consistency axioms under various scheduling conditions, allowing bugs to be detected early in the design process rather than after deployment.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The analysis module provides feedback by comparing actual memory operation results against expected behavior defined by the memory consistency model. When violations are detected, the system identifies specific axioms that are violated and locates the problematic code regions, enabling targeted correction of design problems.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS7814378B2Verification of memory consistency and transactional memory
Publication Date: 2010.10.12 ORACLE AMERICAN INC
  • US7814378B2 patent drawing
  • US7814378B2 patent drawing
  • US7814378B2 patent drawing

AI summary

A system for efficiently verifying compliance with a memory consistency model includes a test module and an analysis module. The test module may coordinate an execution of a multithreaded test program on a test platform. If the test platform provides an indication of the order in which writes from multiple processing elements are performed at shared memory locations, the analysis module may use a first set of rules to verify that the results of the execution correspond to a valid ordering of events according to a memory consistency model. If the test platform does not provide an indication of write ordering, the analysis module may use a second set of rules to verify compliance with the memory consistency model. Further, a backtracking search may be performed to find a valid ordering if such ordering exists or show that none exists and, hence, confirm whether or not the results comply with the given memory consistency model.