Memory Controller Test Engine for Data Bus Stress Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional memory testing methods fail to produce high-traffic I/O stress with varied traffic patterns, provide limited error logging, and are uncertain about the command/data combination causing failures, making it difficult to determine and correct errors in memory devices.

Innovation Solution

A memory subsystem with a test signal generator that creates precise I/O operations to simulate high-stress conditions, including pseudo-random patterns and signal crosstalk, and a test engine that injects transactions directly into the memory controller to record errors with specific address information, enabling deterministic and transaction-level testing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional software testing systems are used to generate high-stress traffic, then testing can be performed, but the traffic must be constantly started and stopped which reduces productivity and creates uncertainty in error reproduction

Engineering Contradiction:
Improveerror detection accuracyVSAvoidtesting efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The memory controller performs self-testing through integrated test engines that generate test commands and patterns internally, eliminating the need for external software systems to constantly start and stop testing. The memory controller autonomously executes read/write commands with different patterns and logs errors with associated command information, enabling continuous high-stress traffic generation without external intervention.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

A test engine within the memory controller acts as an intermediary between the host processor and memory devices, injecting test transactions directly into the command queue. This intermediary component enables deterministic traffic pattern generation with full control over command/data combinations, eliminating the reordering uncertainty inherent in traditional software-based approaches.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If traditional hardware testing systems are used, then testing can be performed continuously, but the data patterns are very limited which reduces adaptability and the error logging capability is insufficient

Engineering Contradiction:
Improvecontinuous testing capabilityVSAvoidtraffic pattern variety
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The memory controller's test engine is designed with multi-functionality, capable of generating multiple types of traffic patterns (read-heavy, write-heavy, mixed workloads) and executing various memory commands (read, write, refresh, precharge). The error logging mechanism also universally captures all error types with associated command information, addressing both continuous testing and pattern variety requirements.

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

Solution Approach 2:

The test system dynamically adjusts traffic patterns and command sequences based on testing requirements. The host processor or test software can configure different workload types, and the memory controller adapts by generating corresponding test transactions. This dynamic capability enables continuous testing with varied patterns, overcoming the static nature of traditional hardware testers.

Inventive Principle:
Principle #15Dynamics

3Loss of information

If software testing systems are used to gather error information, then some logging can be performed, but the traffic reordering before execution creates uncertainty about which command/data combination produced errors

Engineering Contradiction:
Improveerror information completenessVSAvoiderror source identification accuracy
Core Design Contradiction:
Loss of informationVSMeasurement precision

Solution Approach 1:

The error logging mechanism provides immediate feedback by capturing and storing the specific command and data pattern information associated with each error event. The test engine monitors executed commands and correlates them with returned data, logging mismatches along with the command sequence information. This feedback loop enables precise identification of error-causing operations without the uncertainty introduced by traffic reordering.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The test engine prepares and tracks command sequences before execution, maintaining a record of the intended command/data combinations. By preliminarily establishing the command sequence and correlating it with the actual execution and returned data, the system can precisely identify which specific command caused an error, eliminating the uncertainty that would otherwise exist after reordering.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If memory devices are tested under high-stress conditions, then more errors can be detected, but the complexity of generating and controlling varied traffic patterns increases

Engineering Contradiction:
Improveerror detection capabilityVSAvoidtesting system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The testing functionality is merged with the memory controller itself, integrating the test engine, pattern generation logic, and error logging mechanisms into the existing memory control architecture. This consolidation eliminates the need for separate complex external testing systems, as the memory controller leverages its own command queues, data paths, and control logic to perform comprehensive self-testing under various stress conditions.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9009531B2Memory subsystem data bus stress testing
Publication Date: 2015.04.14 TAHOE RES LTD
  • US9009531B2 patent drawing
  • US9009531B2 patent drawing
  • US9009531B2 patent drawing

AI summary

A memory subsystem includes a test signal generator of a memory controller that generates a test data signal in response to the memory controller receiving a test transaction. The test transaction indicates one or more I/O operations to perform on an associated memory device. The test signal generator can generate data signals from various different pattern generators. The memory controller scheduler schedules the test data signal pattern, and sends it to the memory device. The memory device can then execute I/O operation(s) to implement the test transaction. The memory controller can read back data written to a specific address of the memory device and compare the read back data with expected data. When the read back data and the expected data do not match, the memory controller can record an error. The error can include the specific address of the error, the specific data, and/or encoded data.