Address Translation Cache for NVMe Memory Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The continual need for address translations in memory sub-systems, particularly in systems supporting multiple non-volatile memory express (NVMe) devices, leads to performance bottlenecks in terms of speed, latency, and quality-of-service due to increased I/O traffic and the need to move translation requests across the PCIe bus.

Innovation Solution

Implementing an address translation cache (ATC) within the memory sub-system's controller to store address translations for future access, reducing the need for repeated translations by the translation agent (TA) and minimizing I/O traffic.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If address translation requests are processed through the PCIe bus for each memory access, then address translation accuracy is maintained, but system latency increases and I/O traffic grows

Engineering Contradiction:
Improveaddress translation accuracyVSAvoidsystem latency
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent implements an address translation cache that pre-stores address translation mappings before they are needed for memory access. When a memory access request arrives, the controller checks the cache first to see if the translation is already available, eliminating the need for real-time PCIe bus transactions for every access. This preliminary caching of translation data directly reduces system latency while maintaining translation accuracy through validated cache entries.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The address translation cache acts as an intermediary component between the memory controller and the PCIe bus. Instead of every memory access request directly querying the PCIe bus for address translations, the cache mediates by providing translations from its stored mappings. This intermediary layer filters out redundant PCIe transactions, reducing I/O traffic and latency while preserving the accuracy of address translations through proper cache management.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If address translation requests are sent across the PCIe bus for every memory access, then up-to-date translations are ensured, but I/O traffic increases and throughput decreases

Engineering Contradiction:
Improvetranslation currencyVSAvoidsystem throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The controller pre-loads address translation mappings into the cache before memory access operations begin. This preliminary action ensures that when memory access requests arrive in bulk, the translations are already available in the cache, enabling high-speed processing without repeated PCIe bus queries. The cache is updated with current translations through periodic refreshes or event-driven updates, maintaining translation currency while enabling high throughput during active operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The address translation cache enables continuous memory access operations without interruption for translation lookups. Once translations are loaded into the cache, multiple memory access requests can be processed continuously using these cached translations, maintaining high throughput. The system ensures translation currency through continuous cache management activities such as invalidation of stale entries and reloading of updated translations, allowing productive work to continue uninterrupted.

Inventive Principle:
Principle #20Continuity of useful action

3Adaptability or versatility

If multiple NVMe devices are supported simultaneously, then system versatility is improved, but I/O traffic and translation overhead increase

Engineering Contradiction:
Improvemulti-device supportVSAvoidI/O traffic overhead
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The address translation cache is designed as a universal resource that serves multiple NVMe devices simultaneously. The cache stores translation mappings that can be shared across different devices, allowing the same cache structure to handle translation requests from any connected NVMe device. This multi-functional cache reduces the need for separate translation mechanisms for each device, lowering overall I/O traffic overhead while maintaining support for multiple devices through a single unified caching system.

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

Solution Approach 2:

The patent combines address translation functionality for multiple NVMe devices into a single unified cache structure rather than maintaining separate translation caches for each device. This merging of translation resources allows the controller to serve multiple devices through one cache, reducing redundant translation storage and minimizing I/O traffic. The unified cache manages translations from all devices collectively, optimizing resource utilization and reducing overhead while maintaining full multi-device support.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS20260010487A1Caching host memory address translation data in a memory sub-system
Publication Date: 2026.01.08 MICRON TECHNOLOGY INC
  • US20260010487A1 patent drawing
  • US20260010487A1 patent drawing
  • US20260010487A1 patent drawing

AI summary

A system includes host interface circuits to interact with a host system and an address translation circuit to handle address translation requests to the host system from the host interface circuits. The address translation circuit includes several components as follows. Request staging queues buffer the address translation requests received from a host interface circuit. Pending response queues buffer respective address translation requests, in an order received, that are waiting for an address translation from the host system. Reordering buffers reorder address translations, which are to be supplied to the host interface circuits, according to the order of the received address translation requests maintained within the set of pending response queues. A cache stores a plurality of the address translations, associated with the address translation requests, received from the host system.