PCI Store Block Instructions for Adapter Data Transfer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computing environments face challenges in efficiently communicating with adapters such as PCI or PCIe adapters, particularly in storing data within their address spaces, due to limitations in existing instructions and memory-mapped I/O methods.
Innovation Solution
The introduction of specific control instructions, including PCI Load, PCI Store, and PCI Store Block instructions, which utilize function handles and function table entries to authorize and execute data operations within the adapter's address spaces, ensuring authorized access and efficient data transfer without relying on memory-mapped I/O.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If memory-mapped I/O methods are used to communicate with adapters, then data transfer can be performed, but access authorization and security control are insufficient
Solution Approach 1:
The adapter address space is segmented into multiple regions, with each region having its own authorization rules. The function table entries divide the address space into configurable segments, allowing fine-grained control over which areas can be accessed by different code, thereby improving security without requiring a completely complex instruction set.
Solution Approach 2:
A function table serves as an intermediary between the store instruction and the adapter address space. This function table stores authorization information and translates logical addresses into physical addresses, providing security control without requiring complex authorization logic in the instruction set itself.
2Productivity
If existing store instructions are used to write data to adapter address spaces, then data storage is possible, but efficient data transfer and large block support are limited
Solution Approach 1:
Multiple data transfer operations are merged into a single store block instruction that can transfer entire blocks of data in one operation. The instruction combines address specification, data block identification, and transfer execution into a unified operation, improving productivity while maintaining ease of operation through a single instruction format.
Solution Approach 2:
Data blocks are prepared and staged in memory before the store block instruction is executed. The function table entries are pre-configured with authorization information and address mappings, allowing the actual data transfer to proceed efficiently without runtime authorization checks or address calculations.
3Adaptability or versatility
If PCI address space segmentation is used with work queues, then address mapping is achieved, but the system complexity and number of components increase
Solution Approach 1:
The function table serves multiple functions: it stores authorization information, performs address translation, and manages region mappings. This multi-functional approach provides the adaptability of PCI address space segmentation without requiring separate components for each function, thereby reducing overall system complexity.
Solution Approach 2:
The function table automatically performs address translation and authorization verification without requiring external control logic or additional processing steps. The store instruction simply provides the logical address, and the function table self-services the translation and security check, reducing the number of active system components needed.
Data Source
Figure 1A
Figure 1B
Figure 1C
AI summary
Communication with adapters of a computing environment is facilitated. Instructions are provided that explicitly target the adapters. Information provided in an instruction is used to steer the instruction to an appropriate location within the adapter.