NVMe Storage Controller Cache Redundancy and IOMMU Validation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Storage systems employing NVMe protocols face challenges in maintaining high reliability and IO performance, particularly in preventing data loss due to invalid writes and controller failures, as they lack the reliability controls present in SAS protocols.
Innovation Solution
A storage system configuration with multiple controllers, each having a cache area for data redundancy, where data is duplicated between controllers to ensure redundancy and prevent data loss, and access attributes are managed through IO page tables to differentiate between writable and non-writable cache areas.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If NVMe protocol is used for storage system, then IO processing performance is improved, but reliability is degraded due to lack of protocol-level validation
Solution Approach 1:
The patent introduces an IOMMU (Input-Output Memory Management Unit) as an intermediary component between the NVMe storage drive and the host memory. The IOMMU performs address translation and access validation, acting as a mediator that enables high-speed NVMe data transfer while simultaneously ensuring data integrity through hardware-enforced access control and validation mechanisms.
2Productivity
If cache area is used to improve IO performance, then data access speed is improved, but data loss risk increases due to controller failure
Solution Approach 1:
The patent implements a data redundancy mechanism where data is simultaneously written to both the cache area and the host memory (or persistent storage) before the write operation is considered complete. This prior cushioning approach ensures that even if the controller fails and cache data is lost, the data remains preserved in the host memory, thus preventing data loss while maintaining the performance benefits of caching.
Solution Approach 2:
The patent differentiates between two types of cache areas with different quality characteristics: a volatile cache area for high-speed temporary storage and a non-volatile cache area (or persistent cache) for data that must be preserved. By assigning different quality levels to different cache regions, the system optimizes both performance and reliability according to data requirements.
3Reliability
If IO page table rewriting is performed to prevent invalid data writes, then reliability is improved, but IO performance is degraded
Solution Approach 1:
The patent replaces the software-based IO page table rewriting mechanism with a hardware-based IOMMU that performs address validation and translation. This substitution eliminates the performance overhead associated with frequent page table updates while maintaining reliable prevention of invalid data writes through hardware-enforced access control lists and validation logic in the IOMMU unit.
Data Source
AI summary
A storage system includes a plurality of controllers and a plurality of storage drives. A first cache area and a second cache area are set in a memory. The first cache area is permitted to be written data by the plurality of storage drives, and the second cache area is not permitted to be written data by the plurality of storage drives. In a case where the plurality of controllers duplicates data stored in the cache area to a cache area of another controller for redundancy, the plurality of controllers causes the data to be redundant in a second cache area of the other controller in a case where the data is stored in the first cache area, and causes the data to be redundant in a first cache area of the other controller in a case where the data is stored in the second cache area.


