IP Library Granted Patent US 10,474,620
Granted Patent B2
US 10,474,620 · App. 15/397,003 · Granted Nov 12, 2019

System and method for improving peripheral component interface express bus performance in an information handling system

Inventors: Srikrishna Ramaswamy (Austin, TX); Shyamkumar T. Iyer (Austin, TX); Duk M. Kim (Cedar Park, TX)
Assignee: Dell Products, L.P.
G06F13/4282G06F13/1631G06F13/4022G06F2213/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 10,474,620
App. No.
15/397,003
Granted
Nov 12, 2019
Kind
B2
Abstract

An information handling system (IHS) and a method of transmitting data in an IHS. The method includes detecting, via a hardware logic device, a first memory transaction request from a first peripheral component interconnect express (PCIe) device to a system memory. The first memory transaction request includes a first system memory address. A second memory transaction request is detected from a second PCIe device to the system memory. The second memory transaction request includes a second system memory address. The method further includes determining if the first system memory address and the second system memory address are the same system memory address. In response to the first and second system memory addresses being the same, the first memory transaction request and the second memory transaction request are coalesced into a common memory transaction request. The common memory transaction request is issued to the system memory.

Claims (74)

1. A method of transmitting data in an information handling system (IHS) configured with a plurality of a peripheral component interconnect express (PCIe) devices, the method comprising:

detecting, via a hardware logic device, a first mastered memory transaction request from a first PCIe device to a system memory, the first mastered memory transaction request including a first system memory address;

detecting a second mastered memory transaction request from a second PCIe device to the system memory, the second mastered memory transaction request including a second system memory address;

wherein the first and second mastered memory transaction requests comprise transaction layer packets (TLPs) that are detected at root ports of the hardware logic device;

determining if the first system memory address and the second system memory address are the same system memory address;

in response to the first system memory address and the second system memory address being the same system memory address, coalescing the first memory transaction request and the second memory transaction request into a common memory transaction request; and

issuing the common memory transaction request to the system memory.

2. The method of claim 1 , wherein the first and second memory transaction requests are memory write requests.

3. The method of claim 1 , wherein the first and second memory transaction requests are memory read requests.

4. The method of claim 3 , further comprising:

receiving, via a root port of a root complex device communicatively coupled between the system memory and the hardware logic device, a common memory read response from the system memory, the common memory read response including third data;

generating a first memory read response including the third data and a second memory read response including the third data;

issuing the first memory read response including the third data to the first PCIe device; and

issuing the second memory read response including the third data to the second PCIe device.

5. The method of claim 1 , wherein the common memory transaction request comprises a common TLP that is issued to a host virtual end point of the hardware logic device.

6. An information handling system (IHS) comprising:

a processor communicatively coupled to a system memory;

a first peripheral component interconnect express (PCIe) device;

a second PCIe device that includes duplicate data of the first PCIe device; and

a hardware logic device communicatively coupled to the processor and to each of the first PCIe device and the second PCIe device, the hardware logic device having control logic that facilitates data transmission, wherein the control logic causes the hardware logic device to:

detect a first mastered memory transaction request from the first PCIe device to the system memory, the first mastered memory transaction request including a first system memory address;

detect a second mastered memory transaction request from the second PCIe device to the system memory, the second mastered memory transaction request including a second system memory address;

wherein the hardware logic device comprises a root port serving each PCIe device, and the first and second mastered memory transaction requests comprise transaction layer packets (TLPs) that are detected at respective root ports of the FPGA;

determine if the first system memory address and the second system memory address are the same system memory address;

in response to the first system memory address and the second system memory address being the same system memory address, coalesce the first memory transaction request and the second memory transaction request into a common memory transaction request; and

issue the common memory transaction request to the system memory.

7. The information handling system of claim 6 , wherein the first and second memory transaction requests are memory write requests.

8. The information handling system of claim 6 , wherein the first and second memory transaction requests are memory read requests.

9. The information handling system of claim 8 , wherein the control logic further causes the hardware logic device to:

receive a common memory read response from the system memory, the common memory read response including third data;

generate a first memory read response including third data and a second memory read response including third data;

issue the first memory read response including third data to the first PCIe device; and

issue the second memory read response including third data to the second PCIe device.

10. The information handling system of claim 6 , the common memory transaction request comprises a common TLP that is issued to a host virtual end point of the hardware logic device.

11. A method of transmitting data in an information handling system (IHS) configured with a plurality of a peripheral component interconnect express (PCIe) devices, the method comprising:

detecting, via a hardware logic device, a first PCIe transaction request issued from the IHS to a first PCIe device;

in response to detecting the first PCIe transaction request, generating, via the hardware logic device, a second PCIe transaction request for a second PCIe device, the second PCIe transaction request being a duplicate of the first PCIe transaction request;

issuing the first PCIe transaction request to the first PCIe device; and

issuing the second PCIe transaction request to the second PCIe device.

12. The method of claim 11 , wherein the first and second PCIe transaction requests are PCIe read requests and the first and second PCIe transaction requests are requesting the same data, and the method further comprises:

identifying whether one of the first PCIe device and the second PCIe device has limited bandwidth; and

in response to identifying that a first one of the first and the second PCIe device has limited bandwidth, issue a single PCIe read operation to a next one of the first and the second PCIe device that is not as heavily loaded.

13. The method of claim 11 , wherein the first and second PCIe transaction requests are PCIe write requests.

14. The method of claim 11 , further comprising:

determining if a first end point of the first PCIe device has sufficient bandwidth to process the first PCIe transaction request;

determining if a second end point of the second PCIe device has sufficient bandwidth to process the second PCIe transaction request;

in response to determining that any one of the first and the second end points does not have sufficient bandwidth to process the first and second PCIe transaction requests, identifying one of the first and second end points having more bandwidth as an issuing end point; and

issuing a corresponding one of the first or the second PCIe transaction requests via the issuing end point.

15. The method of claim 11 , further comprising:

receiving, at a first time, a first PCIe read response from the first PCIe device;

receiving, at a second later time, a second PCIe read response from the second PCIe device;

forwarding the first PCIe read response to a host root port; and

discarding the second PCIe read response.

16. An information handling system (IHS) comprising:

a processor communicatively coupled to a system memory;

a hardware logic device communicatively coupled to the processor;

a first peripheral component interconnect express (PCIe) device communicatively coupled to the hardware logic device; and

a second PCIe device communicatively coupled to the hardware logic device;

wherein the hardware logic device includes control logic thereon that causes the hardware logic device to:

detect a first PCIe transaction request issued from the IHS to a first PCIe device;

in response to detecting the first PCIe transaction request, generate a second PCIe transaction request for a second PCIe device, the second PCIe transaction request being a duplicate of the first PCIe transaction request;

issue at least one single PCIe transaction request from among the first PCIe transaction request to the first PCIe device and the second PCIe transaction request to the second PCIe device, based on loading.

17. The information handling system of claim 16 , wherein the first and second PCIe transaction requests are PCIe read requests.

18. The information handling system of claim 16 , wherein the first and second PCIe transaction requests are PCIe write requests.

19. The information handling system of claim 16 , wherein the control logic further causes the hardware logic device to:

determine if a first end point of the first PCIe device has sufficient bandwidth to process the first and PCIe transaction request;

determine if a second end point of the second PCIe device has sufficient bandwidth to process the second PCIe transaction request;

in response to determining that any of the first and the second end points do not have sufficient bandwidth to process the first and second PCIe transaction requests, identify one of the first or second end points having more bandwidth as the issuing end point; and

issue a corresponding one of the first or the second PCIe transaction requests via the issuing end point.

20. The information handling system of claim 16 , wherein the control logic further causes the hardware logic device to:

receive, at a first time, a first PCIe read response from the first PCIe device;

forward the first PCIe read response to a host root port;

receive, at a second later time, a second PCIe read response from the second PCIe device; and

delete the second PCIe read response.

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 (041829/0873) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0724 →
RELEASE OF SECURITY INTEREST AT REEL 041808 FRAME 0516 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL INTERNATIONAL, L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0573 →
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 INTEREST (NOTES) Recorded Feb 28, 2017
From: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 041829/0873 →
PATENT SECURITY INTEREST (CREDIT) Recorded Feb 24, 2017
From: DELL INTERNATIONAL, L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 041808/0516 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2017
From: RAMASWAMY, SRIKRISHNA; IYER, SHYAMKUMAR T.; KIM, DUK M.
To: DELL PRODUCTS, L.P.
Reel/Frame 040827/0295 →
Continuity (1)
Related Publication 20180189225A1 · Jul 5, 2018