Queue Bank I/O Management for Partition Reconfiguration

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
ImproveI/O operation overheadVSAvoidre-partitioning capability
Core Design Contradiction:
Loss of timeVSAdaptability or versatility

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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

Engineering Contradiction:
Improvememory management simplicityVSAvoidI/O operation throughput
Core Design Contradiction:
Ease of operationVSProductivity

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS7899958B2Input/output completion system and method for a data processing platform
Publication Date: 2011.03.01 UNISYS CORP
  • US7899958B2 patent drawing
  • US7899958B2 patent drawing
  • US7899958B2 patent drawing

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.