Memory Address Translation LUT for Low-Latency NVMe Caching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing address translation methods in memory devices, such as those using content-addressable memory (CAM), face limitations in capacity and impractical gate counts, and require host device involvement for entry invalidation, leading to inefficiencies and high latency.

Innovation Solution

Implementing a lookup table (LUT) for address translation, where an index (LUT ID) is used to retrieve translated addresses, allowing the address translation cache (ATC) to make translation requests independently, reducing latency and hiding translation operations from NVMe control circuitry.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If content-addressable memory (CAM) is used for address translation, then address translation capacity is improved, but gate count becomes impractically high

Engineering Contradiction:
Improveaddress translation capacityVSAvoidgate count
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent segments the address translation function into two parts: a small CAM for storing translation cache entries (TCEs) and a LUT for storing the mapping between virtual addresses and TCE indices. This segmentation allows the system to achieve high address translation capacity without requiring a large CAM, thus reducing gate count while maintaining functionality.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediate structure (LUT - Lookup Table) that mediates between the virtual address and the CAM. Instead of directly mapping all virtual addresses to physical addresses in a large CAM, the LUT provides an intermediate indexing layer that reduces the burden on the CAM size and complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If host device involvement is required for ATC entry invalidation, then address translation reliability is improved, but translation latency increases

Engineering Contradiction:
Improveaddress translation reliabilityVSAvoidtranslation latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The ATC is designed to invalidate its own entries autonomously without requiring host device involvement. When a TCE needs to be invalidated, the ATC detects this condition and performs the invalidation operation itself, eliminating the latency associated with host device communication while maintaining translation reliability.

Inventive Principle:
Principle #25Self-service

3Measurement precision

If address translation operations are exposed to NVMe control circuitry, then translation accuracy is improved, but system complexity increases

Engineering Contradiction:
Improvetranslation accuracyVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent extracts the address translation operations from the NVMe control circuitry and implements them independently within the ATC. The ATC handles translation requests autonomously using its internal LUT and CAM structures, preventing complex translation operations from propagating to the NVMe control circuitry while maintaining accurate translation results.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS12602321B2Address translation
Publication Date: 2026.04.14 MICRON TECHNOLOGY INC
  • US12602321B2 patent drawing
  • US12602321B2 patent drawing
  • US12602321B2 patent drawing

AI summary

Translated addresses of a memory device can be stored in a first LUT maintained by control circuitry. Untranslated addresses can be stored in a second LUT maintained by the control circuitry. In response to a translation request for a particular translated address of the memory device corresponding to a target untranslated address, an index of the second LUT associated with the target untranslated address can be determined, the index of the second LUT can be mapped to an index of the first LUT, and the particular translated address corresponding to the target untranslated address can be retrieved from the first LUT.