IP Library Granted Patent US 10,534,733
Granted Patent B2
US 10,534,733 · App. 15/963,420 · Granted Jan 14, 2020

Flexible I/O slot connections

Inventors: Walter A. O'Brien, III (Westborough, MA); Matthew J. Borsini (Northborough, MA)
Assignee: EMC IP Holding Company LLC
G06F13/20
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 10,534,733
App. No.
15/963,420
Granted
Jan 14, 2020
Kind
B2
Abstract

Techniques for configuring a system may include selecting one of a plurality of I/O slots to be allocated a number of lanes connected to a processor; and responsive to selecting the one I/O slot, sending a selection signal to a multiplexer that selects the one I/O slot from the plurality of I/O slots and configures the number of lanes for use by the one I/O slot where the number of lanes connect the one I/O slot to the processor. The system may be a data storage system and the lanes may be PCIe lanes used for data transmission. For each I/O slot, an I/O module may be inserted, removed or replaced (e.g., removed and then replaced with a new I/O card). A management controller may select the one I/O slot and send the selection signal in accordance with one or more policies. The system may support hot plug I/O modules.

Claims (36)

1. For a data storage system connected to one or more host systems hosting applications executing thereon, the data storage system including at least a first storage processor including one or more CPU cores and a plurality of I/O slots, a method comprising:

the first storage processor periodically polling the plurality of I/O slots to determine for each I/O slot a type of I/O module, if any, inserted in the I/O slot;

selecting one of the plurality of I/O slots to be allocated a number of lanes connected to the first storage processor based at least in part on the type of each I/O module determined from the periodical polling; and

responsive to selecting the one I/O slot, sending a selection signal to a multiplexer that selects the one I/O slot from the plurality of I/O slots and configures the number of lanes for use by the one I/O slot where the number of lanes connect said one I/O slot to the processor.

2. The method of claim 1 , wherein, when the number of lanes are configured for use by said one I/O slot, the number of lanes are used for data transmission between the processor and an I/O module inserted in the one I/O slot, whereby no other I/O slot of the plurality of I/O slots is configured to use the number of lanes allocated to said one I/O slot.

3. The method of claim 1 , further comprising:

while said number of lanes are configured for use by said one I/O slot, selecting a second of the plurality of I/O slots to be allocated the number of lanes; and

responsive to selecting the second I/O slot, sending a second selection signal to the multiplexer that selects the second I/O slot from the plurality of I/O slots and reconfigures the number of lanes for use by the second I/O slot where the number of lanes connect said second I/O slot to the processor.

4. The method of claim 3 , wherein said selecting one of a plurality of I/O slots and said selecting a second of the plurality of I/O slots are performed in accordance with a policy.

5. The method of claim 4 , wherein the policy indicates to allocate the number of lanes to the one I/O slot rather than the second I/O slot when an I/O module is inserted into the one I/O slot and when no I/O module is inserted in the second I/O slot.

6. The method of claim 4 , wherein the policy indicates to allocate the number of lanes to the one I/O slot rather than the second I/O slot when no I/O module is inserted into the second I/O slot and a first I/O module inserted into the one I/O slot has a higher performance bandwidth capability than all I/O modules inserted into any other ones of the plurality of I/O slots.

7. The method of claim 4 , wherein the policy indicates to allocate the number of lanes to the second I/O slot rather than the one I/O slot when an I/O module is inserted into the second I/O slot and when no I/O module is inserted in the one I/O slot.

8. The method of claim 4 , wherein the policy indicates to allocate the number of lanes to the second I/O slot rather than said one I/O slot when no I/O module is inserted into said one I/O slot and an I/O module inserted into the second I/O slot has a higher performance bandwidth capability than all I/O modules inserted into any other ones of the plurality of I/O slots.

9. The method of claim 4 , wherein a current configuration includes the number of lanes allocated for use by a particular one of the plurality of I/O slots, and wherein the policy indicates that user approval is needed prior to modifying the current configuration, wherein said modifying causes reconfiguration of the number of lanes for use by another one of the plurality of I/O slots other than the particular one.

10. The method of claim 9 , wherein said modifying includes sending another selection signal to the multiplexer to select the another one of the plurality of I/O slots and causing said reconfiguration of the number of lanes for use by the another one of the plurality of I/O slots.

11. The method of claim 4 , wherein each of the plurality of I/O slots is a hot plug I/O slot wherein an I/O module may be inserted into, and removed from, said each I/O slot without restarting the system.

12. The method of claim 4 , further comprising:

determining, by the management controller, the type of I/O module, if any, that is inserted into each of the plurality of I/O slots.

13. The method of claim 12 , wherein the management controller selects the one I/O slot from the plurality of I/O slots in accordance with the policy and wherein the management controller sends the selection signal to the multiplexer that selects the one I/O slot from the plurality of I/O slots and configures the number of lanes for use by the one I/O slot.

14. The method of claim 12 , wherein the management controller performs said determining using management interface connections to said plurality of I/O slots.

15. The method of claim 14 , wherein each of the plurality of I/O slots provides an indication signal to said management controller as to whether an I/O module is inserted in said each I/O slot.

16. The method of claim 15 , wherein said management controller performs said selecting a second of the plurality of I/O slots to be allocated the number of lanes responsive to a change in the indication signal sent from a sending one of the plurality of I/O slots.

17. The method of claim 16 , wherein the change in the indication signal from the sending one I/O slot indicates whether an I/O module has been removed from the sending one I/O slot or whether an I/O module has been inserted into the sending one I/O slot.

18. The method of claim 17 , further comprising:

receiving, by the management controller, the change in the indication signal sent from the sending I/O slot; and

responsive to the change in the indication signal from the sending one I/O slot indicating that an I/O module has been inserted into the sending one I/O slot, querying the sending one I/O slot, using a management interface connection, regarding a type of I/O module inserted in the sending one I/O slot.

19. For a data storage system connected to one or more host systems hosting applications executing thereon, the data storage system including at least a first storage processor including one or more CPU cores and a plurality of I/O slots, a computer readable medium comprising code thereon that, when executed, performs a method comprising:

the first storage processor periodically polling the plurality of I/O slots to determine for each I/O slot a type of I/O module, if any, inserted in the I/O slot;

selecting one of the plurality of I/O slots to be allocated a number of lanes connected to the first storage processor based at least in part on the type of each I/O module determined from the periodical polling; and

responsive to selecting the one I/O slot, sending a selection signal to a multiplexer that selects the one I/O slot from the plurality of I/O slots and configures the number of lanes for use by the one I/O slot where the number of lanes connect said one I/O slot to the processor.

20. A data storage system connected to one or more host systems hosting applications executing thereon, the data storage system comprising:

at least a first storage processor including one or more CPU cores and a plurality of I/O slots; and

a memory comprising code stored therein, that, when executed, performs a method comprising:

the first storage processor periodically polling the plurality of I/O slots to determine for each I/O slot a type of I/O module, if any, inserted in the I/O slot;

selecting one of the plurality of I/O slots to be allocated a number of lanes connected to the first storage processor based at least in part on the type of each I/O module determined from the periodical polling; and

responsive to selecting the one I/O slot, sending a selection signal to a multiplexer that selects the one I/O slot from the plurality of I/O slots and configures the number of lanes for use by the one I/O slot where the number of lanes connect said one I/O slot to the first processor.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (046366/0014) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060450/0306 →
RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0093 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046286/0653 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 046366/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2018
From: O'BRIEN, WALTER A., III; BORSINI, MATTHEW J.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045654/0299 →
Continuity (1)
Related Publication 20190332557A1 · Oct 31, 2019
Cited By (1)
US 12,638,994