Per IO DMA Redirection for PCIe Storage Error Containment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing PCIe-based storage systems face errors and data corruption issues due to asynchronous device insertion or removal, and existing solutions like ACS and DPC do not adequately prevent system errors or ensure complete data transfer during IO operations.

Innovation Solution

A method and apparatus that monitor direct memory access between devices and hosts, using per-IO direct memory access redirection and scatter/gather list translation to isolate and track IO requests, ensuring that devices access only permitted memory locations and complete transactions gracefully, preventing system errors and data corruption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If per-IO direct memory access redirection is implemented to prevent unauthorized memory accesses, then memory access security is improved, but device complexity increases

Engineering Contradiction:
Improvememory access securityVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary mechanism (the redirection mechanism in the PCIe switch or root complex) that sits between the storage device and system memory. This intermediary intercepts DMA requests, validates them against allowed memory ranges, and redirects legitimate requests to the correct memory locations. This resolves the contradiction by providing strong memory access security through a dedicated intermediary layer without requiring complex changes to the storage device itself.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments memory access control on a per-IO basis, creating distinct control mechanisms for different types of memory accesses. By segmenting the memory space and access control into manageable units (per-IO redirection tables, per-device filters), the system achieves comprehensive security while keeping individual control structures relatively simple and manageable.

Inventive Principle:
Principle #1Segmentation

2Reliability

If ACS is used to prevent device memory corruption, then memory protection is improved, but data transfer completeness cannot be ensured

Engineering Contradiction:
Improvememory protectionVSAvoiddata transfer completeness
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The patent implements feedback mechanisms that track the status of each DMA transaction and provide completion information back to the host. The system monitors whether data transfers completed successfully, detects partial transfers or failures, and can trigger retry mechanisms or error handling procedures. This feedback loop ensures both memory protection and data transfer completeness by continuously verifying transaction outcomes.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent performs preliminary validation of DMA requests before they execute, checking address ranges, permission bits, and transaction parameters in advance. By performing these validation actions beforehand, the system prevents unauthorized accesses while ensuring that legitimate requests have all necessary information to complete successfully, thus addressing both memory protection and data completeness concerns.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If DPC is implemented to contain errors, then error propagation is reduced, but memory corruption by end devices cannot be prevented

Engineering Contradiction:
Improveerror containmentVSAvoidmemory corruption
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent positions the redirection mechanism as an intermediary layer between the storage device and system memory that actively prevents memory corruption before it occurs. This intermediary validates each memory access request, checks it against allowed ranges and permissions, and blocks or redirects unauthorized accesses. This resolves the contradiction by providing proactive memory protection that prevents corruption rather than merely containing errors after they occur.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent applies preliminary anti-action by validating and potentially blocking unauthorized DMA requests before they can execute and cause memory corruption. The system preemptively checks address ranges, permission attributes, and transaction validity, and prevents harmful actions from reaching the memory subsystem. This preliminary prevention approach eliminates memory corruption while maintaining error containment capabilities.

Inventive Principle:
Principle #9Preliminary anti-action

4Manufacturing precision

If per-IO tracking and scatter/gather list translation are implemented, then data transfer accuracy is improved, but processing time increases

Engineering Contradiction:
Improvedata transfer accuracyVSAvoidprocessing time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent performs scatter/gather list translation and address mapping in advance, before the actual data transfer begins. By pre-computing the translation tables and validating address mappings beforehand, the system establishes accurate transfer paths without adding delay during the actual data movement. This preliminary processing resolves the contradiction by performing accuracy-critical tasks before the time-sensitive data transfer operation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent maintains continuous tracking of IO requests and their corresponding memory ranges throughout the data transfer process, ensuring accuracy without interrupting the transfer flow. The per-IO tracking mechanism operates continuously in the background, validating addresses and monitoring progress without blocking the data transfer path, thus maintaining both accuracy and throughput.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10977201B1Per IO direct memory access redirection
Publication Date: 2021.04.13 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US10977201B1 patent drawing
  • US10977201B1 patent drawing
  • US10977201B1 patent drawing

AI summary

A bridge device tracks each individual IO between two PCIe busses and provides a translated address based on a scatter/gather list. Tracking provides a natural means of scatter/gather list translation to and from a native PCIe storage protocol's scatter/gather list (or other scatter/gather like mechanism). In addition, the awareness of the IO context provides a means for detecting erroneous transactions that would otherwise cause a system error and/or data corruption to be aborted preventing those error scenarios.