Hybrid Address Translation Cache Using DRAM for Lower SSD Costs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing address translation cache (ATC) solutions in SSDs are expensive, consume high power, and inefficient due to the need for large memory buffers and high-performance look-up operations, leading to increased area, cost, and power consumption.
Innovation Solution
Splitting the ATC into two portions, with one portion in the controller's SRAM and the other in a host memory buffer (HMB) or DRAM, allowing untranslated addresses to be searched in the first portion and translated addresses retrieved from the second portion, while invalidating untranslated addresses in the first portion without affecting the second.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a real cache for ATC is implemented as defined in PCIe standard, then address translation functionality is supported, but area, cost and power consumption significantly increase
Solution Approach 1:
The ATC is segmented into two separate portions: a first portion stored in controller memory (SRAM/DRAM) and a second portion stored in host memory buffer (HMB). This segmentation allows the device to maintain address translation functionality while significantly reducing the area occupied in the controller, as the larger portion is offloaded to host memory.
Solution Approach 2:
The host memory buffer (HMB) acts as an intermediary storage location for the second portion of the ATC. Instead of requiring all ATC data to reside in controller memory, the HMB serves as a mediator that provides additional storage capacity while maintaining accessibility for address translation operations.
2Reliability
If a real cache for ATC is implemented as defined in PCIe standard, then address translation functionality is supported, but power consumption significantly increases
Solution Approach 1:
By segmenting the ATC into two portions located in different memory spaces, the invention reduces power consumption. The first portion in controller memory handles frequently accessed translations, while the second portion in HMB stores less frequently accessed entries, optimizing the power-performance tradeoff by keeping only essential data in the power-hungry controller memory.
3Productivity
If large memory buffer is allocated for ATC, then address translation cache hits are achieved within single 4k IO command, but cost and area increase
Solution Approach 1:
The ATC is divided into two portions with different sizes and locations. The first portion in controller memory contains the most frequently accessed address translations, ensuring high hit rates for common operations. The second portion in HMB provides additional capacity for less frequently accessed translations, effectively increasing total cache capacity without proportionally increasing controller area.
4Productivity
If first portion of ATC is invalidated without deleting second portion, then invalidation efficiency is improved, but data consistency must be maintained
Solution Approach 1:
The invalidation operation is extracted to only affect the first portion of the ATC in controller memory, while the second portion in HMB is left intact. This approach improves invalidation efficiency by avoiding the need to synchronize and clear both portions, while data consistency is maintained through the natural access pattern where translations from the second portion are naturally invalidated when their corresponding first portion entries are removed.
Data Source
AI summary
Splitting an address translation cache (ATC) into two portions can reduce costs and maintain efficient retrieval of data. One portion can be disposed in a first location while a second portion can be disposed in a second location distinct from the first location. The first location can be in the controller. The second location can be in a host memory buffer (HMB) or in a memory device separate from the controller. To obtain translated addresses, untranslated addresses can be searched in the first portion and the corresponding translated addresses can be retrieved from the second portion. When invalidating untranslated addresses, the untranslated addresses of the first portion can be deleted without a need to delete corresponding translated addresses in the second portion. To improve ATC storage capacity, grouping of untranslated addresses is possible using most significant bytes (MSBs).


