PCIe Controller Virtual Memory Address Decoupling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Device-side PCIe memory transactions cannot be unconditionally mapped to host memory due to the need for subtractive decoding, which degrades performance when all I/O transfers are buffered in the RAID controller.
Innovation Solution
A method and apparatus for mapping addresses in a host domain to a device domain using virtual memory with allocated virtual buffers and scatter/gather lists, allowing direct transfers between PCIe devices and host memory without fixed address mapping dependencies.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If all I/O transfers are buffered in the RAID controller through double data rate memory, then device complexity is reduced, but performance degrades due to the necessity of subtractive decoding
Solution Approach 1:
The patent segments the address space into multiple regions, each region corresponding to a specific PCIe device. This segmentation eliminates the need for subtractive decoding by allowing the controller to directly route address-based transactions to the appropriate device or buffer, thereby maintaining performance while reducing complexity.
Solution Approach 2:
The patent introduces an address translation mechanism that acts as an intermediary between the host address space and device address spaces. This intermediary translates host addresses to device-specific addresses, enabling direct mapping without subtractive decoding and thus resolving the contradiction between simplified controller architecture and high data transfer performance.
2Device complexity
If subtractive decoding is used to route PCIe transactions, then device complexity is reduced, but loss of time increases due to the decoding overhead
Solution Approach 1:
The patent performs preliminary address translation and region mapping setup before actual data transactions occur. By pre-configuring the address-to-device mappings and establishing region descriptors in advance, the system eliminates the need for complex real-time subtractive decoding, thus reducing both controller complexity and transaction routing time.
Data Source
AI summary
A controller includes a virtual memory mapped to device-side Peripheral component interconnect express address space includes virtual buffers allocation for each data transfer. Each virtual buffer is associated with a scatter/gather list entry in a host memory. The controller executes direct transfers between Peripheral component interconnect express devices and host memory without introducing address mapping dependencies between the host and device domains.


