IP Library Granted Patent US 11,507,421
Granted Patent B2
US 11,507,421 · App. 16/438,062 · Granted Nov 22, 2022

Information handling system and method to allocate peripheral component interconnect express (PCIe) bus resources

Inventors: Chih-Yu Chan (Zhonghe District, TW); Terry Matula (Austin, TX)
Assignee: Dell Products L.P.
G06F9/5022G06F9/4411G06F11/2284G06F13/4282G06F2213/0026
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,507,421
App. No.
16/438,062
Granted
Nov 22, 2022
Kind
B2
Abstract

Information handling systems (IHSs) and methods are provided herein to allocate Peripheral Component Interconnect Express (PCIe) bus resources to a plurality of PCIe slots according to various PCIe bus resource allocation option settings. At least one host processor is included within the IHS for executing program instructions to detect a PCIe bus allocation option setting selected from a plurality of options provided in a boot firmware setup menu; determine if the PCIe bus allocation option setting has changed since the IHS was last booted; and allocate PCIe bus resources to the plurality of PCIe slots according to the detected PCIe bus allocation option setting. The plurality of options provided in the boot firmware setup menu include at least an auto detect option, which when selected, enables the at least one host processor to automatically detect unused PCIe slots and reallocate PCIe bus resources to used PCIe slots.

Claims (53)

1. A computer-implemented method executed by a host processor of an information handling system (IHS) having a plurality of Peripheral Component Interconnect Express (PCIe) slots provided on a system motherboard, wherein the computer-implemented method is performed each time the IHS is booted at the start of a Power-On Self-Test (POST), and wherein the computer-implemented method comprises:

detecting a PCIe bus allocation option setting selected from a plurality of options provided in a boot firmware setup menu, wherein said plurality of options comprise at least an auto detect option; and

determining whether or not the PCIe bus allocation option setting has changed since the IHS was last booted;

wherein when the PCIe bus allocation option setting has changed since the last boot and the auto detect option is detected, the method further comprises:

automatically detecting which of the plurality of PCIe slots are used and unused;

releasing PCIe bus resources previously allocated to any PCIe slots determined to be unused; and

reallocating the released PCIe bus resources to one or more of the PCIe slots determined to be used.

2. The computer-implemented method as recited in claim 1 , wherein said automatically detecting which of the plurality of PCIe slots are used and unused comprises:

determining that a PCIe slot is used upon detecting a device present signal supplied from a pin on the PCIe slot; and

determining that the PCIe slot is unused if no device present signal is detected from the pin on the PCIe slot.

3. The computer-implemented method as recited in claim 1 , wherein if said automatically detecting determines that each of the plurality of PCIe slots on the system motherboard are used, the method further comprises allocating PCIe bus resources relatively evenly to the plurality of PCIe slots.

4. The computer-implemented method as recited in claim 1 , wherein if said automatically detecting determines that one or more of the plurality of PCIe slots are unused, said reallocating comprises reallocating the released PCIe bus resources to one or more of the used PCIe slots based, at least in part, on at least one of: a number of the host processors included within the IHS, a number of the PCIe slots provided on the system motherboard and a lane width of the PCIe slots.

5. The computer-implemented method as recited in claim 4 , further comprising determining at least one of: the number of host processors included within the IHS, the number of PCIe slots provided on the system motherboard and the lane width of the PCIe slots prior to said reallocating.

6. The computer-implemented method as recited in claim 4 , further comprising detecting the system motherboard ID to determine the number of host processors included within the IHS, the number of PCIe slots provided on the system motherboard and the lane width of the PCIe slots prior to said reallocating.

7. The computer-implemented method as recited in claim 4 , wherein if said automatically detecting determines that one or more of the plurality of PCIe slots are unused, said reallocating comprises:

reallocating the released PCIe bus resources relatively evenly to only the used PCIe slots having a larger lane width.

8. The computer-implemented method as recited in claim 4 , wherein if said automatically detecting determines that one or more of the plurality of PCIe slots are unused, said reallocating comprises:

reallocating a larger amount of the released PCIe bus resources relatively evenly to the used PCIe slots having a larger lane width; and

reallocating a smaller amount of the released PCIe bus resources to the used PCIe slots having a comparatively smaller lane width.

9. The computer-implemented method as recited in claim 1 , wherein said plurality of options further comprises one or more of: a default option, an optimize for Thunderbolt option, and one or more custom options.

10. The computer-implemented method as recited in claim 9 , further comprising determining if Thunderbolt support is enabled for the IHS prior to said detecting a PCIe bus allocation option setting.

11. The computer-implemented method as recited in claim 10 , wherein if Thunderbolt support is enabled, the method further comprises:

automatically selecting the optimize for Thunderbolt option and rendering the default option, the auto detect option and the one or more custom options unavailable for user selection in the boot firmware setup menu;

allocating sufficient PCIe bus resources to the PCIe slots that support Thunderbolt; and

allocating remaining PCIe bus resources to the other PCIe slots based, at least in part, on at least one of: a number of the host processors included in the system, a number of the PCIe slots provided on the system motherboard and a lane width of the PCIe slots.

12. The computer-implemented method as recited in claim 10 , wherein if Thunderbolt support is disabled, the PCIe bus allocation option setting has changed since the last boot and the auto detect option is not detected, the method further comprises:

allocating PCIe bus resources to the PCIe slots according to the detected PCIe bus allocation option setting, wherein said allocation is based, at least in part, on at least one of: a number of the host processors included within the IHS, a number of the PCIe slots provided on the system motherboard and a lane width of the PCIe slots.

13. An information handling system (IHS), comprising:

a plurality of Peripheral Component Interconnect Express (PCIe) slots provided on a system motherboard, wherein each PCIe slot is configured to connect to a PCIe end device;

at least one host processor coupled to one or more of the PCIe slots, wherein the at least one host processor is configured to execute:

a first set of program instructions to detect a PCIe bus allocation option setting selected from a plurality of options provided in a boot firmware setup menu, wherein said plurality of options comprise at least an auto detect option, which when selected, enables the at least one host processor to automatically detect unused PCIe slots and reallocate PCIe bus resources to used PCIe slots;

a second set of program instructions to determine whether or not the PCIe bus allocation option setting has changed since the IHS was last booted; and

a third set of program instructions to allocate PCIe bus resources to the plurality of PCIe slots according to the detected PCIe bus allocation option setting.

14. The information handling system as recited in claim 13 , wherein if the PCIe bus allocation option setting has changed since the last boot and the auto detect option is detected, the third set of program instructions are executed by the host processor to:

automatically detect which of the plurality of PCIe slots are used and unused;

release PCIe bus resources previously allocated to any PCIe slots determined to be unused; and

reallocate the released PCIe bus resources to one or more of the PCIe slots determined to be used.

15. The information handling system as recited in claim 14 , further comprising a platform controller hub (PCH) coupled to the PCIe slots and to the at least one host processor, wherein the PCH comprises a plurality of general purpose input/output (GPIO) pins that are coupled to present pins on the PCIe slots, and wherein the third set of program instructions are executed to:

determine that a particular PCIe slot is used, if a device present signal is detected via a GPIO pin of the PCH and a present pin of the particular PCIe slot; and

determine that the particular PCIe slot is unused, if no device present signal is detected.

16. The information handling system as recited in claim 14 , wherein if one or more of the PCIe slots are determined to be unused, the third set of program instructions are executed by the host processor to reallocate the released PCIe bus resources to one or more of the used PCIe slots based, at least in part, on at least one of: a number of the host processors included within the IHS, a number of the PCIe slots provided on the system motherboard and a lane width of the PCIe slots.

17. The information handling system as recited in claim 16 , wherein if one or more of the PCIe slots are determined to be unused, the third set of program instructions are executed by the host processor to:

reallocate the released PCIe bus resources relatively evenly to only the used PCIe slots having a larger lane width.

18. The information handling system as recited in claim 16 , wherein if one or more of the PCIe slots are determined to be unused, the third set of program instructions are executed by the host processor to:

reallocate a larger amount of the released PCIe bus resources relatively evenly to the used PCIe slots having a larger lane width; and

reallocate a smaller amount of the released PCIe bus resources to the used PCIe slots having a comparatively smaller lane width.

19. The information handling system as recited in claim 13 , wherein said plurality of options further comprises one or more of: a default option, an optimize for Thunderbolt option, and one or more custom options.

20. The information handling system as recited in claim 19 , wherein prior to executing the first set of program instructions to detect the PCIe bus allocation option setting, the at least one host processor is configured to execute a fourth set of program instructions to determine if Thunderbolt support is enabled for the IHS.

21. The information handling system as recited in claim 20 , wherein if Thunderbolt support is enabled, the at least one host processor is configured to execute a fifth set of program instructions to:

automatically select the optimize for Thunderbolt option and render the default option, the auto detect option and the one or more custom options unavailable for user selection in the boot firmware setup menu;

allocate sufficient PCIe bus resources to the PCIe slots that support Thunderbolt; and

allocate remaining PCIe bus resources to the other PCIe slots based, at least in part, on at least one of: a number of the host processors included in the system, a number of the PCIe slots provided on the system motherboard and a lane width of the PCIe slots.

22. The information handling system as recited in claim 20 , wherein if Thunderbolt support is disabled, the PCIe bus allocation option setting has changed since the last boot and the auto detect option is not detected, the at least one host processor is configured to execute the third set of program instructions to allocate PCIe bus resources to the PCIe slots according to the detected PCIe bus allocation option setting, wherein said allocation is based, at least in part, on at least one of: a number of the host processors included within the IHS, a number of the PCIe slots provided on the system motherboard and a lane width of the PCIe slots.

Assignments (9)
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 (053311/0169) Recorded Jun 23, 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 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0571) Recorded Jun 23, 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 060436/0088 →
RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421 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 058213/0825 →
SECURITY INTEREST Recorded Jun 5, 2020
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 053311/0169 →
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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
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 050724/0571 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050406/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2019
From: CHAN, CHIH-YU; MATULA, TERRY
To: DELL PRODUCTS L.P.
Reel/Frame 049590/0178 →
Cited By (1)
US 12,536,124