IP Library Granted Patent US 7,899,958
Granted Patent B2
US 7,899,958 · App. 11/643,313 · Granted Mar 1, 2011

Input/output completion system and method for a data processing platform

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,899,958
App. No.
11/643,313
Filed
Dec 21, 2006
Granted
Mar 1, 2011
Kind
B2
Art Unit
2181
USPC
710/52
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 (19)

1. Within a data processing system that supports multiple processing partitions, a computer-implemented method for managing I/O operations, comprising:

determining whether a queue bank that has been dedicated for use in performing I/O operations is currently waiting to be re-used;

making the queue bank available for re-use in performing the I/O operations in a manner that is based upon whether modifications that affect the queue bank are being made to a processing partition containing the queue bank;

selecting memory for removal from the processing partition containing the queue bank;

determining that the queue bank includes at least part of the selected memory;

ensuring that the queue bank is not selected for re-use before the selected memory has been removed from the processing partition containing the queue bank by placing the queue bank at an end of an available queue such that the queue bank will not be selected for re-use before the selected memory has been removed from the processing partition containing the queue bank.

2. The method of claim 1 , further comprising:

determining that no memory containing the queue bank has been selected for removal from the processing partition containing the queue bank; and

allowing the queue bank to immediately be made available for re-use following the determination.

3. The method of claim 2 , further comprising:

caching addresses of the queue bank during execution of a previous I/O operation that used the queue bank; and

selecting the queue bank for re-use in another I/O operation while the addresses of the queue bank are still cached, whereby the other I/O operation is completed more efficiently.

4. The method of claim 2 , further comprising placing the queue bank at a beginning of an available queue such that the queue bank may be selected for re-use substantially immediately.

5. The method of claim 1 , further comprising:

allocating one or more pages of storage space for inclusion in the queue bank;

performing virtual-to-real address translation for each of the one or more pages; and

locking each of the one or more pages in a memory of the data processing system.

6. The method of claim 1 , wherein the modifications include removing memory from the processing partition containing the queue bank, at least some of the memory being allocated for use by the queue bank, and wherein if it is determined the modifications are being made, making the queue bank unavailable for immediate re-use.

7. The method of claim 1 , wherein the steps of claim 1 are performed for multiple queue banks, and further comprising removing memory from the processing partition, wherein the memory was previously allocated for use by one or more of the queue banks, the memory being removed only after it has been determined that all of the one or more of the queue banks are no longer involved in performing any of the I/O operations.

Assignments (13)
AMENDED AND RESTATED PATENT SECURITY AGREEMENT Recorded Jun 27, 2025
From: UNISYS CORPORATION; UNISYS HOLDING CORPORATION; UNISYS NPL, INC.; UNISYS AP INVESTMENT COMPANY I
To: COMPUTERSHARE TRUST COMPANY, N.A., AS COLLATERAL TRUSTEE
Reel/Frame 071759/0527 →
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 Apr 25, 2011
From: UNISYS CORPORATION
To: DEUTSCHE BANK NATIONAL TRUST COMPANY
Reel/Frame 026176/0275 →
RELEASE BY SECURED PARTY Recorded Sep 14, 2009
From: CITIBANK, N.A.
To: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
Reel/Frame 023263/0631 →
RELEASE BY SECURED PARTY Recorded Jul 31, 2009
From: CITIBANK, N.A.
To: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
Reel/Frame 023312/0044 →
SECURITY AGREEMENT SUPPLEMENT Recorded Apr 13, 2007
From: UNISYS CORPORATION
To: CITIBANK, N.A.
Reel/Frame 019188/0840 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2006
From: SCHROTH, DAVID W.
To: UNISYS CORPORATION
Reel/Frame 018725/0092 →