NVDIMM Controller Error Scanning for Persistent Memory Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Non-volatile dual in-line memory modules (NVDIMMs) face challenges in handling uncorrected errors in persistent memory, which can lead to data loss and system failures due to the inability of BIOS to access and manage device physical addresses (DPAs) within the NVDIMM, as these errors persist across reboots and are not recoverable by basic input/output systems (BIOS).

Innovation Solution

A controller resident on the NVDIMM scans for uncorrected errors in the device physical address range and indicates these errors to the BIOS, which then converts them to system physical addresses (SPAs) to prevent system access, utilizing a data structure to store this information and manage error scanning status, allowing the operating system or device driver to avoid mapping affected memory locations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Duration of action of stationary object

If non-volatile memory is used to provide persistent memory, then data retention is improved, but uncorrected errors persist across reboots causing data loss

Engineering Contradiction:
Improvedata retentionVSAvoiddata integrity
Core Design Contradiction:
Duration of action of stationary objectVSReliability

Solution Approach 1:

The controller performs preliminary error scanning of the non-volatile memory before the operating system boots, identifying uncorrected errors in advance. This preliminary action allows the system to prepare error location information and prevent future data loss by avoiding mapping faulty memory addresses, thus resolving the contradiction between data retention and data integrity.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If BIOS is used to manage memory addresses, then system booting is simplified, but BIOS cannot access or manage device physical addresses within NVDIMM

Engineering Contradiction:
Improvesystem bootingVSAvoidmemory address management
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The controller acts as an intermediary between the BIOS and the non-volatile memory. It translates device physical addresses into system physical addresses and provides error location information to the BIOS, enabling the BIOS to manage memory addresses without directly accessing the complex DPA structure within the NVDIMM.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The controller extracts and presents only the necessary error location information to the BIOS, separating the complex address management functionality from the BIOS. This allows the BIOS to operate simply while the controller handles the complexity of DPA to SPA conversion and error identification.

Inventive Principle:
Principle #2Taking out (Extraction)

3Quantity of substance

If large memory capacity is implemented, then storage capability is improved, but OS cannot sense power failure and prevent data loss

Engineering Contradiction:
Improvememory capacityVSAvoiddata loss prevention
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The NVDIMM controller autonomously performs error scanning and generates error location information without requiring OS intervention. This self-service capability allows the system to detect and report uncorrected errors independently, enabling the OS to prevent data loss by avoiding faulty addresses even with large memory capacities.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11119838B2Techniques for handling errors in persistent memory
Publication Date: 2021.09.14 INTEL CORP
  • US11119838B2 patent drawing
  • US11119838B2 patent drawing
  • US11119838B2 patent drawing

AI summary

Examples may include a basic input/output system (BIOS) for a computing platform communicating with a controller for a non-volatile dual in-line memory module (NVDIMM). Communication between the BIOS and the controller may include a request for the controller to scan and identify error locations in non-volatile memory at the NVDIMM. The non-volatile memory may be capable of providing persistent memory for the NVDIMM.