Per IO DMA Redirection for PCIe Storage Error Containment
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If ACS is used to prevent device memory corruption, then memory protection is improved, but data transfer completeness cannot be ensured
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.
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.
3Reliability
If DPC is implemented to contain errors, then error propagation is reduced, but memory corruption by end devices cannot be prevented
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.
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.
4Manufacturing precision
If per-IO tracking and scatter/gather list translation are implemented, then data transfer accuracy is improved, but processing time increases
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.
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.
Data Source
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.


