Multi-host peripheral component interconnect express (PCIe) switching based on interrupt vector from PCIe device

US10503687B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10503687-B2
Application numberUS-201715490490-A
CountryUS
Kind codeB2
Filing dateApr 18, 2017
Priority dateApr 18, 2017
Publication dateDec 10, 2019
Grant dateDec 10, 2019

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.

Described herein are enhancements for managing multi-host Peripheral Component Interconnect Express (PCIe) switching. In one implementation, a system includes one or more PCIe devices and a PCIe switch configured to receive a first interrupt corresponding to a first interrupt vector from a PCIe device, wherein the first interrupt vector comprises at least a virtual address and a first data value. The switch is further configured to translate the first interrupt vector into a second interrupt vector, wherein the second interrupt vector comprises a second address and a second data value, and transfer a second interrupt using the second interrupt vector to a host of a plurality of hosts that corresponds to the second interrupt vector.

First claim

Opening claim text (preview).

What is claimed is: 1. A computing apparatus comprising: one or more computer readable storage media; a processing system operatively coupled with the one or more computer readable storage media; and program instructions stored on the one or more computer readable storage media to operate a Peripheral Component Interconnect Express (PCIe) switch that, when read and executed by the processing system, direct the processing system to at least: receive a first interrupt corresponding to a first interrupt vector from a PCIe device, wherein the first interrupt vector comprises at least a virtual address and a first data value; translate the first interrupt vector into a second interrupt vector, wherein the second interrupt vector comprises a second address and a second data value; and transfer a second interrupt using the second interrupt vector to a host of a plurality of hosts that corresponds to the second interrupt vector. 2. The computing apparatus of claim 1 , wherein the program instructions further direct the processing system to: maintain at least one data structure for the plurality of hosts, wherein the at least one data structure comprises a plurality of interrupt vectors received from the plurality of hosts for one or more PCIe devices coupled to the PCIe switch to provide interrupts to the plurality of hosts. 3. The computing apparatus of claim 2 , wherein the program instructions further direct the processing system to: for each interrupt vector in the plurality of interrupt vectors received from the plurality of hosts, provide a virtual interrupt vector to a corresponding PCIe device in the one or more PCIe devices coupled to the PCIe switch, wherein the virtual interrupt vector comprises at least a different address than the interrupt vector. 4. The computing apparatus of claim 1 , wherein the PCIe device comprises a data storage device. 5. The computing apparatus of claim 1 , wherein the PCIe device comprises a Non-Volatile Memory express (NVMe) device. 6. The computing apparatus of claim 1 , wherein the plurality of hosts comprises a plurality of computers. 7. The computing apparatus of claim 1 , wherein the program instructions to translate the first interrupt vector into a second interrupt vector direct the processing system to apply an addressing offset to the first interrupt vector to generate the second interrupt vector. 8. The computing apparatus of claim 1 , wherein the first data value is equivalent to the second data value. 9. The computing apparatus of claim 1 , wherein the first data value is different than the second data value. 10. A system comprising: one or more Peripheral Component Interconnect Express (PCIe) devices; and a PCIe switch configured to: receive a first interrupt corresponding to a first interrupt vector from a PCIe device, wherein the first interrupt vector comprises at least a virtual address and a first data value; translate the first interrupt vector into a second interrupt vector, wherein the second interrupt vector comprises a second address and a second data value; and transfer a second interrupt using the second interrupt vector to a host of a plurality of hosts that corresponds to the second interrupt vector. 11. The system of claim 10 , wherein the PCIe switch is further configured to maintain at least one data structure for the plurality of hosts, wherein the at least one data structure comprises a plurality of interrupt vectors received from the plurality of hosts for one or more PCIe devices coupled to the PCIe switch to provide interrupts to the plurality of hosts. 12. The system of claim 11 , wherein the PCIe switch is further configured to, for each interrupt vector in the plurality of interrupt vectors received from the plurality of hosts, provide a virtual interrupt vector to a corresponding PCIe device in the one or more PCIe devices coupled to the PCIe switch, wherein the virtual interrupt vector comprises at least a different address than the interrupt vector. 13. The system of claim 10 , wherein the PCIe device comprises a data storage device. 14. The system of claim 10 , wherein the PCIe device comprises a Non-Volatile Memory express (NVMe) device. 15. The system of claim 10 , wherein the plurality of hosts comprises a plurality of computers. 16. The system of claim 10 , wherein the PCIe switch configured to translate the first interrupt vector into a second interrupt vector is configured to apply an addressing offset to the first interrupt vector to generate the second interrupt vector. 17. The system of claim 10 , wherein the first data value is equivalent to the second data value. 18. The system of claim 10 , wherein the first data value is different than the second data value. 19. An apparatus comprising: means for receiving a first interrupt corresponding to a first interrupt vector from a PCIe device, wherein the first interrupt vector comprises at least a virtual address and a first data value; means for translating the first interrupt vector into a second interrupt vector, wherein the second interrupt vector comprises a second address and a second data value; and means for transferring a second interrupt using the second interrupt vector to a host of a plurality of hosts that corresponds to the second interrupt vector. 20. The apparatus of claim 19 , further comprising: means for maintaining at least one data structure for the plurality of hosts, wherein the at least one data structure comprises a plurality of interrupt vectors received from the plurality of hosts for one or more PCIe devices coupled to a PCIe switch to provide interrupts to the plurality of hosts; and means for providing, for each interrupt vector in the plurality of interrupt vectors received from the plurality of hosts, a virtual interrupt vector to a corresponding PCIe device in the one or more PCIe devices coupled to the PCIe switch, wherein the virtual interrupt vector comprises at least a different address than the interrupt vector.

Assignees

Inventors

Classifications

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

  • using switching circuits, e.g. switching matrix, connection or expansion network (G06F13/4009 takes precedence) · CPC title

  • using interrupt (G06F13/32 takes precedence) · CPC title

  • with address mapping · 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 US10503687B2 cover?
Described herein are enhancements for managing multi-host Peripheral Component Interconnect Express (PCIe) switching. In one implementation, a system includes one or more PCIe devices and a PCIe switch configured to receive a first interrupt corresponding to a first interrupt vector from a PCIe device, wherein the first interrupt vector comprises at least a virtual address and a first data valu…
Who is the assignee on this patent?
Western Digital Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F13/4282. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 10 2019 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).