Memory Subsystem Address Translation Cache for Lower PCIe Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The need to continually request a translation agent (TA) for address translations in memory sub-systems, particularly in systems with 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 address translation requests across the PCIe bus.

Innovation Solution

Implementing an address translation cache (ATC) within the memory sub-system controller to store address translations for future access, reducing the need to repeatedly request TA for translations, especially for sequential memory command queues.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If address translation requests are sent to the translation agent for every memory command, then address translation accuracy is maintained, but I/O traffic and latency increase

Engineering Contradiction:
Improveaddress translation accuracyVSAvoidlatency
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent pre-fetches and caches address translations for sequential memory commands before they are actually executed. The translation agent translates addresses in advance and stores them in a cache, so when sequential commands arrive, their translations are already available, eliminating the need for real-time translation requests and reducing latency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system performs address translation proactively for the next expected command in sequence before the current command completes execution. This lookahead approach ensures that translations are ready when needed, maintaining accuracy while reducing the perceived latency for command execution.

Inventive Principle:
Principle #10Preliminary action

2Loss of information

If address translation requests are sent frequently to the translation agent, then address translation completeness is ensured, but I/O traffic across the PCIe bus increases

Engineering Contradiction:
Improveaddress translation completenessVSAvoidI/O traffic
Core Design Contradiction:
Loss of informationVSLoss of energy

Solution Approach 1:

The system anticipates sequential memory commands and pre-translates their addresses before the commands are executed. By caching these translations in advance, the system ensures that all necessary address translations are complete without requiring frequent real-time requests to the translation agent, thereby reducing PCIe bus traffic.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates copies of address translation entries and stores them in a cache within the memory sub-system controller. Instead of repeatedly querying the translation agent for the same translations, the system uses these cached copies, ensuring translation completeness while minimizing I/O traffic across the PCIe bus.

Inventive Principle:
Principle #26Copying

3Measurement precision

If the address translation cache is frequently invalidated to maintain accuracy, then translation correctness is preserved, but cache hit rate and throughput decrease

Engineering Contradiction:
Improvetranslation correctnessVSAvoidthroughput
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The system pre-translates addresses for sequential commands and caches them with validity tracking. By proactively managing the cache with pre-fetched translations and implementing intelligent invalidation based on actual command execution patterns, the system maintains translation correctness while maximizing cache hit rates and throughput.

Inventive Principle:
Principle #10Preliminary action

4Measurement precision

If the memory sub-system waits for address translation from the host system, then translation accuracy is ensured, but processing speed decreases

Engineering Contradiction:
Improvetranslation accuracyVSAvoidprocessing speed
Core Design Contradiction:
Measurement precisionVSSpeed

Solution Approach 1:

The memory sub-system proactively requests and caches address translations from the translation agent before the host system actually needs them for command execution. This pre-fetching approach allows the sub-system to maintain accurate translations while processing commands at full speed without waiting for host system translation requests.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The memory sub-system takes initiative to manage its own address translation needs by maintaining a local cache and proactively requesting translations from the translation agent. Instead of passively waiting for the host system to provide translations, the sub-system serves its own translation requirements, significantly improving processing speed while maintaining accuracy.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS12450166B2Caching host memory address translation data in a memory sub-system
Publication Date: 2025.10.21 MICRON TECHNOLOGY INC
  • US12450166B2 patent drawing
  • US12450166B2 patent drawing
  • US12450166B2 patent drawing

AI summary

A system includes host interface circuitry to interact with a host system and that includes an address translation circuit, which includes request staging queues to buffer the address translation requests, each includes a virtual address and received from a host interface circuit. Pending response queues buffer respective address translation requests that are waiting for an address translation from the host system while maintaining an order as received within the request stage queues. Reordering buffers reorder address translations, which are to be supplied to the host interface circuits, according to the order maintained within the pending response queues, each address translation includes a physical address mapped to the virtual address of a corresponding address translation request. A cache stores multiple of the address translations, associated with the address translation requests, for future access by the host interface circuits.