IP Library Granted Patent US 9,594,707
Granted Patent B2
US 9,594,707 · App. 14/474,745 · Granted Mar 14, 2017

Data input/output (I/O) handling for computer network communications links

Inventors: Michael J Heideman (Roseville, MN); E. Brian Garrett (Salt Lake City, UT); Steven M Wierdsma (Roseville, MN); Carl R Crandall (Roseville, MN)
Assignee: Unisys Corporation
G06F13/28
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 9,594,707
App. No.
14/474,745
Granted
Mar 14, 2017
Kind
B2
Abstract

Systems and methods for performing data input/output (I/O) operations using a computer network communications link are described. A method may include assigning a block of virtual addresses for usage with at least one computer network communications link. The method may also include registering the entire block of virtual addresses prior to an operating system partition performing I/O operations using the at least one computer network communications link, wherein registering comprises setting a plurality of virtual page frame numbers of the block of virtual addresses to point to distinct pages of physical memory. In some embodiments, one or more I/O operations may be performed using the at least one computer network communications link and the registered block of virtual addresses.

Claims (31)

1. A method for performing data in input/output (I/O) operations using at least one computer network communications link, comprising:

assigning a first block of virtual addresses, equal to the size of available physical memory, for exclusive usage with at least one computer network communications link;

registering the entire first block of virtual addresses prior to an operating system partition performing I/O operations using the at least one computer network communications link, wherein registering comprises setting a plurality of virtual page frame numbers of the first block of virtual addresses to point to distinct pages of physical memory;

performing one or more I/O operations using the at least one computer network communications link and the registered first block of virtual addresses, wherein the one or more I/O operations are performed without each I/O operation being associated with a distinct memory registration or a distinct memory deregistration;

receiving an instruction to perform an I/O operation;

combining the assigned first block of virtual addresses with a block of physical addresses to obtain a combined second block of virtual addresses;

instructing the at least one computer network communications link to perform a direct memory access I/O operation using the combined second block of virtual addresses and the block of physical addresses;

dynamically associating a third block of virtual addresses with the block of physical addresses before instructing the at least one computer network communications link to perform the direct memory access I/O operation; and

disassociating the third block of virtual addresses from the block of physical addresses after the direct memory access I/O operation has been performed.

2. The method of claim 1 , wherein the third block of virtual addresses is not a block of virtual addresses within the assigned first block of virtual addresses.

3. A computer program product, comprising a non-transitory computer-readable medium comprising code to perform the steps of:

assigning a first block of virtual addresses, equal to the size of the physical memory, for exclusive usage with at least one computer network communications link;

registering the entire first block of virtual addresses prior to an operating system partition performing one or more I/O operations are performed without each I/O operation being associated with a distinct memory registration or a distinct memory deregistration, wherein registering comprises setting a plurality of virtual page frame numbers of the first block of virtual addresses to point to distinct pages of physical memory;

performing one or more I/O operations using the at least one computer network communications link and the registered first block of virtual addresses;

receiving an instruction to perform an I/O operation;

combining the assigned first block of virtual addresses with a block of physical addresses to obtain a combined second block of virtual addresses; and

instructing the at least one computer network communications link to perform a direct memory access I/O operation using the combined second block of virtual addresses and the block of physical addresses; and

dynamically associating a third block of virtual addresses with the block of physical addresses before instructing the at least one computer network communications link to perform the direct memory access I/O operation; and

disassociating the third block of virtual addresses from the block of physical addresses after the direct memory access I/O operation has been performed.

4. The computer program product of claim 3 , wherein the third block of virtual addresses is not a block of virtual addresses within the assigned first block of virtual addresses.

5. An apparatus, comprising:

a memory; and

a processor coupled to the memory, the processor configured to execute the steps of:

assigning a first block of virtual addresses, is equal to the size of the physical memory, for exclusive usage with at least one computer network communications link;

registering the entire first block of virtual addresses prior to an operating system partition performing I/O operations using the at least one computer network communications link, wherein registering comprises setting a plurality of virtual page frame numbers of the first block of virtual addresses to point to distinct pages of physical memory; and

performing one or more I/O operations using the at least one computer network communications link and the registered first block of virtual addresses, wherein the one or more I/O operations are performed without each I/O operation being associated with a distinct memory registration or a distinct memory deregistration;

receiving an instruction to perform an I/O operation;

combining the assigned first block of virtual addresses with a block of physical addresses to obtain a combined second block of virtual addresses; instructing the at least one computer network communications link to perform a direct memory access I/O operation using the combined second block of virtual addresses and the block of physical addresses; and

dynamically associating a third block of virtual addresses with the block of physical addresses before instructing the at least one computer network communications link to perform the direct memory access I/O operation; and

disassociating the third block of virtual addresses from the block of physical addresses after the direct memory access I/O operation has been performed.

6. The apparatus of claim 5 , wherein the third block of virtual addresses is not a block of virtual addresses within the assigned first block of virtual addresses.

Assignments (10)
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 →
RELEASE OF SECURITY INTEREST Recorded Nov 9, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 044416/0114 →
SECURITY INTEREST Recorded Oct 12, 2017
From: UNISYS CORPORATION
To: WELLS FARGO BANK NA
Reel/Frame 043852/0145 →
SECURITY INTEREST Recorded Oct 6, 2017
From: UNISYS CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044144/0081 →
SECURITY INTEREST Recorded Aug 3, 2017
From: UNISYS CORPORATION
To: WELLS FARGO BANK, AS AGENT
Reel/Frame 043186/0924 →
PATENT SECURITY AGREEMENT Recorded Apr 27, 2017
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 042354/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2016
From: HEIDEMAN, MICHAEL J; GARRETT, E. BRIAN; WIERDSMA, STEVEN M; CRANDALL, CARL R
To: UNISYS CORPORATION
Reel/Frame 039986/0017 →
SECURITY INTEREST Recorded Nov 4, 2014
From: UNISYS CORPORATION
To: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT
Reel/Frame 034096/0984 →
Continuity (1)
Related Publication 20160062912A1 · Mar 3, 2016