NVMe Storage Controller Cache Redundancy and IOMMU Validation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
ImproveIO processing performanceVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvedata access speedVSAvoiddata loss prevention
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

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.

Inventive Principle:
Principle #3Local quality

3Reliability

If IO page table rewriting is performed to prevent invalid data writes, then reliability is improved, but IO performance is degraded

Engineering Contradiction:
Improveinvalid data preventionVSAvoidIO performance
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS11200172B2Storage system and method of controlling storage system
Publication Date: 2021.12.14 HITACHI VANTARA LTD
  • US11200172B2 patent drawing
  • US11200172B2 patent drawing
  • US11200172B2 patent drawing

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.