IP Library Granted Patent US 7,818,478
Granted Patent B2
US 7,818,478 · App. 12/623,506 · Granted Oct 19, 2010

Input/Output completion system for a data processing platform

Assignee: Unisys Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,818,478
App. No.
12/623,506
Granted
Oct 19, 2010
Kind
B2
Abstract

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.

Claims (21)

1. A data processing system, comprising:

an operating system to allocate memory to one or more queue banks, each of which is dedicated for use in performing I/O operations;

partitioning logic coupled to the operating system to manage a processing partition in which the queue banks are being used and adapted to remove the memory that is to be removed from the processing partition at the time when none of the queue banks that has been allocated any portion of the memory is being used to perform any of the I/O operations;

monitoring logic coupled to the partitioning logic to determine a time when none of the queue banks that has been allocated any portion of the memory to be removed from the processing partition is being used to perform any of the I/O operations; and

return queue logic coupled to the partitioning logic to determine, after a queue bank is used to perform an I/O operation, whether any portion of memory allocated to the queue bank is memory to be removed from the processing partition, and if not, to make the queue bank available for immediate re-use in performing another I/O operation, and otherwise, to delay re-use of the queue bank.

2. The system of claim 1 , further including an available queue coupled to the return queue logic, whereby for each of the queue banks, the return queue logic makes the queue bank available for immediate re-use by placing the queue bank at a first predetermined end of the available queue, and the return queue logic delays re-use of the queue bank by placing the queue bank at a second predetermined end of the available queue.

3. The system of claim 1 , and further including at least one cache coupled to store at least some memory addresses allocated to the queue banks, and whereby when a queue bank is made available for immediate use, memory addresses allocated to the queue bank remain in the at least one cache during initiation of a next I/O operation using the queue bank.

4. A data processing system, comprising:

an operating system to allocate memory to one or more queue banks, each of which is dedicated for use in performing I/O operations;

partitioning logic coupled to the operating system to manage a processing partition in which the queue banks are being used; and

return queue logic coupled to the partitioning logic to determine, after a queue bank is used to perform an I/O operation, whether any portion of memory allocated to the queue bank is memory to be removed from the processing partition, and if not, to make the queue bank available for immediate re-use in performing another I/O operation, and otherwise, to delay re-use of the queue bank, and further adapted to determine whether each of the queue banks is indicated as being associated with a previously-completed one of the I/O operations, and if so, to designate the queue bank as no longer being associated with the previously-completed one of the I/O operations.

5. A data processing system, comprising:

an operating system to allocate memory to one or more queue banks, each of which is dedicated for use in performing I/O operations;

partitioning logic coupled to the operating system to manage a processing partition in which the queue banks are being used;

return queue logic coupled to the partitioning logic to determine, after a queue bank is used to perform an I/O operation, whether any portion of memory allocated to the queue bank is memory to be removed from the processing partition, and if not, to make the queue bank available for immediate re-use in performing another I/O operation, and otherwise, to delay re-use of the queue bank: and

a communication driver to receive a request to initiate an I/O operation, to obtain one of the queue banks, and to build a description in the obtained queue bank for use in completing the I/O operation.

6. The system of claim 5 , wherein each of the queue banks includes multiple pages and a template, the template to retain a physical address for each of the pages, the template to be used by the communication driver to build the description.

7. A data processing system, comprising:

operating system means for allocating memory to at least one queue bank means within a processing partition, each of the at least one queue bank means for use in performing I/O operations;

available queue means for making each of the at least one queue bank means available for use in performing the I/O operations; and

return means for returning any of the at least one queue banks means to the available queue means after the queue bank means has been used to complete an I/O operation, whereby the queue bank means is returned to a first end of the available queue means if the queue bank means does not include memory being removed from the processing partition, and otherwise, the queue bank means is returned to a second end of the available queue means, and wherein said return means includes means for determining whether any of the at least one queue bank means is designated as being associated with a previously-completed I/O operation, and if so, designating the queue banks means as no longer being associated with the previously-completed I/O operation.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2020
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 054231/0496 →
RELEASE OF SECURITY INTEREST Recorded Nov 9, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION (SUCCESSOR TO GENERAL ELECTRIC CAPITAL CORPORATION)
To: UNISYS CORPORATION
Reel/Frame 044416/0358 →
SECURITY INTEREST Recorded Oct 6, 2017
From: UNISYS CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044144/0081 →
PATENT SECURITY AGREEMENT Recorded Apr 27, 2017
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 042354/0001 →
RELEASE OF SECURITY INTEREST Recorded Mar 26, 2013
From: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE
To: UNISYS CORPORATION
Reel/Frame 030082/0545 →
RELEASE OF SECURITY INTEREST Recorded Mar 15, 2013
From: DEUTSCHE BANK TRUST COMPANY
To: UNISYS CORPORATION
Reel/Frame 030004/0619 →
SECURITY AGREEMENT Recorded Jun 27, 2011
From: UNISYS CORPORATION
To: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT
Reel/Frame 026509/0001 →
SECURITY AGREEMENT Recorded Mar 1, 2011
From: UNISYS CORPORATION
To: DEUTSCH BANK NATIONAL TRUST COMPANY; GLOBAL TRANSACTION BANKING
Reel/Frame 025864/0519 →
SECURITY AGREEMENT Recorded May 7, 2010
From: UNISYS CORPORATION
To: DEUTSCHE BANK
Reel/Frame 024351/0482 →
Continuity (2)
Division 1164331300 · Dec 21, 2006
Related Publication 20100070664A1 · Mar 18, 2010