Non-transparent bridge selection

US12079154B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12079154-B2
Application numberUS-202318152257-A
CountryUS
Kind codeB2
Filing dateJan 10, 2023
Priority dateJan 10, 2023
Publication dateSep 3, 2024
Grant dateSep 3, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A storage engine has a pair of compute nodes, each compute node having a separate PCIe root complex and attached memory. The PCIe root complexes are interconnected by multiple Non-Transparent Bridge (NTB) links. The NTB resources are unequally shared, such that host IO devices are required to use a first subset of the NTB links to implement memory access operations on the memory of the peer compute node, whereas storage software memory access operations are able to be implemented on all of the NTB links. A NTB link arbitration system arbitrates usage of the first and second subsets of NTB links by the storage software, to distribute subsets of the storage software memory access operations on peer memory to the first and second subsets of NTB links, while causing all host IO device memory access operations on peer memory to be implemented on the first set of NTB links.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of implementing non-transparent bridge selection in a storage engine including multiple unequally shared Non-Transparent Bridge (NTB) resources including a plurality of NTB links interconnecting a local compute node and a peer compute node within the storage engine, comprising: implementing host Input/Output (IO) device memory access operations on a peer memory in a peer compute node by host IO devices residing on the local compute node, the host IO devices being connected to the peer memory by a first subset of the NTB links to a peer Peripheral Component Interconnect Express (PCIe) root complex in the peer compute node; implementing storage software memory access operations on the peer memory in the peer compute node by storage software instantiated on the local compute node, the storage software being configured to access the peer memory by both the first subset of the NTB links to the peer PCIe root complex in the peer compute node and by a second subset of the NTB links to the peer PCIe root complex in the peer compute node; arbitrating usage of the first subset of the NTB links and the second subset of the NTB links by the storage software, to cause a first subset of the storage software memory access operations on the peer memory to be implemented on the first subset of the NTB links and to cause a second subset of the storage software memory access operations on the peer memory to be implemented on the second subset of the NTB links, while causing all of the host IO device memory access operations on the peer memory to be implemented on the first subset of the NTB links. 2. The method of claim 1 , wherein the first subset of the NTB links comprise a first plurality of the NTB links; wherein the second subset of the NTB links comprise a second plurality of NTB links; and wherein the first subset of the NTB links does not include any NTB link included in the second subset of the NTB links. 3. The method of claim 1 , further comprising: transmitting host IO device NTB link usage information associated with each host IO device memory access operation implemented on the peer memory to an NTB link arbitration system; and transmitting storage software NTB link usage information associated with each storage software memory access operation implemented on the peer memory to the NTB link arbitration system. 4. The method of claim 3 , wherein arbitrating usage of the first subset of the NTB links and the second subset of the NTB links by the storage software comprises: using the host IO device NTB link usage information and the storage software NTB link usage information to update NTB link data usage values of a NTB usage data structure, the NTB usage data structure including a data usage value for each of the NTB links; and using the NTB link data usage values, by the NTB link arbitration system, to select a respective NTB link to be used to implement each respective storage software memory access operations on the peer memory. 5. The method of claim 4 , wherein the NTB link data usage values are exponential moving average NTB link usage values. 6. The method of claim 4 , wherein using the NTB link data usage values by the NTB link arbitration system comprises selecting the respective NTB link with a lowest respective NTB link data usage value. 7. A storage engine, comprising: a local compute node having a local Peripheral Component Interconnect Express (PCIe) root complex connected to a local memory; a peer compute node having a peer PCIe root complex connected to a peer memory; a first subset of Non-Transparent Bridge (NTB) links interconnecting the local PCIe root complex of the local compute node with the peer PCIe root complex of the peer compute node, and a second subset of NTB links interconnecting the local PCIe root complex of the local compute node with the peer PCIe root complex of the peer compute node, the first subset of NTB links and the second subset of NTB links being mutually exclusive, such that the first subset of NTB links does not include any of the NTB links of the second subset of NTB links, and the second subset of NTB links does not include any of the NTB links of the first subset of NTB links; a plurality of local host Input/Output (IO) devices on the local compute node, the local host IO devices being configured to implement host IO device memory operations on local memory via the local PCIe root complex and being configured to implement host IO device memory operations on the peer memory via the peer PCIe root complex using the first subset of NTB links; storage software on the local compute node being configured to implement storage software memory operations on local memory via the local PCIe root complex and being configured to implement storage software memory operations on the peer memory via the peer PCIe root complex using both the first subset of NTB links and the second subset of NTB links; and one or more computers and one or more storage devices storing instructions that are operable to implement an NTB link arbitration system, the instructions, when executed by the one or more computers, cause the NTB link arbitration system to perform operations comprising: arbitrating usage of the first subset of NTB links and the second subset of NTB links by storage software, to cause a first subset of the storage software memory access operations on the peer memory to be implemented on the first subset of NTB links and to cause a second subset of the storage software memory access operations on the peer memory to be implemented on the second subset of NTB links, while causing all of the host IO device memory access operations on the peer memory to be implemented on the first subset of the NTB links. 8. The storage engine of claim 7 : wherein the host IO devices are configured to transmit NTB link usage information associated with each host IO device memory access operation implemented on the peer memory to the NTB link arbitration system; and wherein the storage software is configured to transmit NTB link usage information associated with each storage software memory access operation implemented on the peer memory to the NTB link arbitration system. 9. The storage engine of claim 8 , wherein the instructions, when executed by the one or more computers, further cause the NTB link arbitration system to perform operations comprising: using the host IO device NTB link usage information and the storage software NTB link usage information to update NTB link data usage values of a NTB usage data structure, the NTB usage data structure including a data usage value for each of the NTB links; and using the NTB link data usage values, by the NTB link arbitration system, to select a respective NTB link to be used to implement each respective storage software memory access operations on the peer memory. 10. The storage engine of claim 9 , wherein the NTB link data usage values are exponential moving average NTB link usage values. 11. The storage engine of claim 9 , wherein using the NTB link data usage values by the NTB link arbitration system comprises selecting the respective NTB link with a lowest respective NTB link data usage value. 12. A non-transitory tangible computer-readable medium storing software for implementing non-transparent bridge selection in a storage engine including multiple unequally shared Non-Transparent Bridge (NTB) resources including a plurality of NTB links interconnecting a local compute node and a peer compute node within the storage engine, comprising instructions executable by one or more computers which, upon such execution, cause the one or more computers to perform operations comprising:

Assignees

Inventors

Classifications

  • with data restructuring · CPC title

  • PCI express · CPC title

  • on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247) · CPC title

  • using bus bridges (G06F13/4022 takes precedence) · CPC title

  • being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12079154B2 cover?
A storage engine has a pair of compute nodes, each compute node having a separate PCIe root complex and attached memory. The PCIe root complexes are interconnected by multiple Non-Transparent Bridge (NTB) links. The NTB resources are unequally shared, such that host IO devices are required to use a first subset of the NTB links to implement memory access operations on the memory of the peer com…
Who is the assignee on this patent?
Dell Products Lp
What technology area does this patent fall under?
Primary CPC classification G06F13/4009. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 03 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).