Queue Bank I/O Management for Partition Reconfiguration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In data processing systems with multiple partitions, the overhead of address translation and locking for I/O operations can significantly impact performance, and re-partitioning memory areas dedicated for I/O operations disrupts normal system operations and causes delays.
Innovation Solution
The use of queue banks, which are allocated memory areas that are locked and have their address translations performed once, allowing for efficient I/O operations by reusing these banks and managing their availability through linked lists and return queues to minimize overhead and enable seamless re-partitioning.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If dedicated memory areas are used for I/O operations, then address translation and locking overhead is reduced, but re-partitioning becomes complex and disruptive
Solution Approach 1:
The patent implements dynamic queue bank structures that can be reassigned between partitions without fixed dedication. Queue banks are managed through availability lists that allow flexible reassignment when partitions are modified, enabling the system to adapt to re-partitioning while maintaining I/O performance through reusable queue bank structures.
Solution Approach 2:
Queue banks are designed as universal structures that can serve multiple partitions and multiple I/O operations. Rather than dedicating specific memory areas to single partitions, the same queue bank infrastructure can be shared and reassigned across different partitions, providing multi-functionality that resolves the contradiction between optimization and adaptability.
2Ease of operation
If address translation and locking are performed for each I/O request, then memory management is simple, but system performance deteriorates due to repeated overhead
Solution Approach 1:
The patent performs address translation and locking operations in advance when queue banks are allocated and initialized, rather than repeatedly for each I/O request. The translated physical addresses are cached in the queue bank structures, and memory is locked during initial setup, eliminating the need for repeated translation and locking operations during subsequent I/O operations.
Solution Approach 2:
The system recovers and reuses queue bank structures after I/O operations complete. Instead of allocating new memory areas for each operation, the same queue bank structures are returned to availability lists and reused for subsequent operations, maintaining simple memory management while avoiding repeated overhead through efficient resource recovery and reuse.
Data Source
AI summary
A mechanism is disclosed for performing I/O operations using queue banks within a data processing system that supports multiple processing partitions. A queue bank is a re-useable area of memory allocated for performing I/O operations. All memory locking and address-translation functions are generally performed only once for a queue bank to reduce system overhead. After a queue bank has been used to perform an I/O operation, some processing is performed to make it available for re-use. This processing determines whether the queue bank contains memory that is being removed from a current processing partition. If so, a delay is imposed so that the queue bank is not made available for immediate re-use. This creates a window of time wherein all queue banks that contain the affected memory are inactive, thereby allowing the affected memory to be removed from the partition without halting on-going I/O activity.


