IP Library Granted Patent US 11,321,250
Granted Patent B2
US 11,321,250 · App. 16/941,370 · Granted May 3, 2022

Input/output device selection system

Inventors: Shyam Iyer (Cedar Park, TX); Srinivas Giri Raju Gowda (Santa Clara, CA); Anh Dinh Luong (Austin, TX)
Assignee: Dell Products L.P.
G06F13/1668
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 11,321,250
App. No.
16/941,370
Granted
May 3, 2022
Kind
B2
Abstract

An I/O device selection system includes a memory system, I/O devices that are coupled to the memory system; and an I/O scheduler that is coupled to the I/O devices. The I/O scheduler receives an I/O request that that is directed to the memory system, and determines at least one I/O operation that is configured to satisfy the I/O request. The I/O scheduler then identifies an operating level of the I/O devices that are configured to perform the at least one I/O operation and, based on the operating level of the I/O devices, selects a subset of the I/O devices for performing the at least one I/O operation, and transmits at least one I/O operation instruction that is configured to cause the subset of the I/O devices to perform the at least one I/O operation in order to satisfy the I/O request.

Claims (51)

1. An Input/Output (I/O) device selection system, comprising:

at least one memory device that is configured to store data;

a plurality of Input/Output (I/O) devices that are separate from and coupled to the at least one memory device; and

an I/O scheduler that is coupled to the plurality of I/O devices that the I/O scheduler previously registered for I/O device selection in an I/O scheduler database included in the I/O scheduler, wherein the I/O scheduler is configured to:

receive an I/O request that involves the at least one memory device;

determine at least one I/O operation that is configured to satisfy the I/O request;

identify, using the I/O scheduler database, the plurality of I/O devices that are configured to perform the at least one I/O operation;

determine an operating level of each of the plurality of I/O devices such that a relative performance of at least two of the plurality of I/O devices that are the same type of I/O device is identified;

select, based on the operating level of the plurality the I/O devices, a subset of the plurality of I/O devices for performing the at least one I/O operation; and

transmit at least one I/O operation instruction that is configured to cause the subset of the plurality of I/O devices to perform the at least one I/O operation in order to satisfy the I/O request.

2. The system of claim 1 , wherein the I/O scheduler is configured to register the plurality of I/O devices in the I/O scheduler database by:

receiving, from each of the plurality of I/O devices, I/O operation scheduling registration information; and

storing the I/O operation scheduling registration information in the I/O scheduler database, wherein the plurality of I/O devices that are configured to perform the at least one I/O operation are identified using the I/O operation scheduling information received from each of the plurality of I/O devices and stored in the I/O scheduler database.

3. The system of claim 1 , wherein the I/O scheduler is configured to identify the operating level of the plurality of I/O devices that are configured to perform the at least one I/O operation by accessing the operating level of the plurality of I/O devices via at least one I/O hub device coupled to the plurality of I/O devices.

4. The system of claim 1 , wherein the plurality of I/O devices include at least one of a memory controller, an I/O hub device, or a data mover device.

5. The system of claim 1 , wherein the at least one I/O operation includes at least one of a write operation, a read operation, or a memory-to-memory transfer operation.

6. The system of claim 1 , wherein the selecting the subset of the plurality of I/O devices for performing the at least one I/O operation based on the operating level of the plurality the I/O devices includes selecting a first I/O device included in the subset of the plurality of I/O devices to perform the at least one I/O operation over a second I/O device that is not included in the subset of the plurality of I/O devices, is the same type of I/O device as the first I/O device, and that has a higher operating level than the first I/O device.

7. An Information Handling System (IHS), comprising:

a processing system; and

a memory system that is coupled to the processing system and that includes instructions that, when executed by the processing system, cause the processing system to provide a Input/Output (I/O) scheduler engine that is configured to:

receive an I/O request that involves at least one memory device that is configured to store data;

determine at least one I/O operation that is configured to satisfy the I/O request;

identify, using an I/O scheduler database in which a plurality of I/O devices were previously registered for I/O device selection, the plurality of I/O devices that are separate from and coupled to the at least one memory device and that are configured to perform the at least one I/O operation;

determine an operating level of each of the plurality of I/O devices such that a relative performance of at least two of the plurality of I/O devices that are the same type of I/O device is identified;

select, based on the operating level of the plurality the I/O devices, a subset of the plurality of I/O devices for performing the at least one I/O operation; and

transmit at least one I/O operation instruction that is configured to cause the subset of the plurality of I/O devices to perform the at least one I/O operation in order to satisfy the I/O request.

8. The IHS of claim 7 , wherein the I/O scheduler is configured to register the plurality of I/O devices in the I/O scheduler database by:

receiving, from each of the plurality of I/O devices, I/O operation scheduling registration information; and

storing the I/O operation scheduling registration information in the I/O scheduler database, wherein the plurality of I/O devices that are configured to perform the at least one I/O operation are identified using the I/O operation scheduling information received from each of the plurality of I/O devices and stored in the I/O scheduler database.

9. The IHS of claim 7 , wherein the I/O scheduler is configured to:

access the operating level of the plurality of I/O devices via at least one I/O hub device coupled to the plurality of I/O devices in order to identify the operating level of the plurality of I/O devices that are configured to perform the at least one I/O operation.

10. The IHS of claim 7 , wherein the plurality of I/O devices include at least one of a memory controller, an I/O hub device, or a data mover device.

11. The IHS of claim 7 , wherein the at least one I/O operation includes at least one of a write operation, a read operation, or a memory-to-memory transfer operation.

12. The IHS of claim 7 , wherein the selecting the subset of the plurality of I/O devices for performing the at least one I/O operation based on the operating level of the plurality the I/O devices includes selecting a first I/O device included in the subset of the plurality of I/O devices to perform the at least one I/O operation over a second I/O device that is not included in the subset of the plurality of I/O devices, is the same type of I/O device as the first I/O device, and that has a higher operating level than the first I/O device.

13. The IHS of claim 7 , wherein the at least one memory device includes at least one first memory device that is provided as part of a first node and at least one second memory device that is provided as part of a second node, and wherein the plurality of I/O devices includes a plurality of first I/O devices that are provided as part of the first node and a plurality of second I/O devices that are provided as part of the second node.

14. A method for selecting (Input/Output) I/O devices for satisfying an I/O request, comprising:

receiving, by an Input/Output (I/O) scheduler, an I/O request that involves at least one memory device that is configured to store data;

determining, by the I/O scheduler, at least one I/O operation that is configured to satisfy the I/O request;

identifying, by the I/O scheduler using an I/O scheduler database in which a plurality of I/O devices were previously registered for I/O device selection, the plurality of I/O devices that are separate from and coupled to the at least one memory device and that are configured to perform the at least one I/O operation;

determining, by the I/O scheduler, an operating level of each of the plurality of I/O devices such that a relative performance of at least two of the plurality of I/O devices that are the same type of I/O device is identified;

selecting, by the I/O scheduler based on the operating level of the plurality the I/O devices, a subset of the plurality of I/O devices for performing the at least one I/O operation; and

transmitting, by the I/O scheduler, at least one I/O operation instruction that is configured to cause the subset of the plurality of I/O devices to perform the at least one I/O operation in order to satisfy the I/O request.

15. The method of claim 14 , further comprising:

receiving, by the I/O scheduler from each of the plurality of I/O devices, I/O operation scheduling registration information; and

storing, by the I/O scheduler, the I/O operation scheduling registration information in the I/O scheduler database, wherein the plurality of I/O devices that are configured to perform the at least one I/O operation are identified using the I/O operation scheduling information received from each of the plurality of I/O devices and stored in the I/O scheduler database.

16. The method of claim 14 , further comprising:

accessing, by the I/O scheduler, the operating level of the plurality of I/O devices via at least one I/O hub device coupled to the plurality of I/O devices in order to identify the operating level of the plurality of I/O devices that are configured to perform the at least one I/O operation.

17. The method of claim 14 , wherein the plurality of I/O devices include at least one of a memory controller, an I/O hub device, or a data mover device.

18. The method of claim 14 , wherein the at least one I/O operation includes at least one of a write operation, a read operation, or a memory-to-memory transfer operation.

19. The method of claim 14 , wherein the selecting the subset of the plurality of I/O devices for performing the at least one I/O operation based on the operating level of the plurality the I/O devices includes selecting a first I/O device included in the subset of the plurality of I/O devices to perform the at least one I/O operation over a second I/O device that is not included in the subset of the plurality of I/O devices, is the same type of I/O device as the first I/O device, and that has a higher operating level than the first I/O device.

20. The method of claim 14 , wherein the at least one memory device includes at least one first memory device that is provided as part of a first node and at least one second memory device that is provided as part of a second node, and wherein the plurality of I/O devices includes a plurality of first I/O devices that are provided as part of the first node and a plurality of second I/O devices that are provided as part of the second node.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2020
From: IYER, SHYAM; GOWDA, SRINIVAS GIRI RAJU; LUONG, ANH DINH
To: DELL PRODUCTS L.P.
Reel/Frame 053333/0674 →
Continuity (1)
Related Publication 20220035753A1 · Feb 3, 2022