Emulated endpoint configuration

US10521365B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10521365-B2
Application numberUS-201514872964-A
CountryUS
Kind codeB2
Filing dateOct 1, 2015
Priority dateOct 5, 2014
Publication dateDec 31, 2019
Grant dateDec 31, 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.

Techniques for emulating a configuration space by a peripheral device may include receiving a configuration access request, determining that the configuration access request is for a configuration space other than a native configuration space of the peripheral device, and retrieving an emulated configuration from an emulated configuration space. The configuration access request can then be serviced by using the emulated configuration.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for emulating a peripheral component interconnect (PCI) configuration space in a PCI device, the method comprising: receiving, by a PCI core of the PCI device, a PCI configuration access request from a PCI root complex, wherein the PCI device is capable of being connected to and disconnected from a host computing system having a host processor, and wherein the PCI device includes a local processor, an emulated configuration space that is part of the PCI device, and a non-emulated native configuration space having a native configuration register associated with functionalities common to multiple peripheral devices; sending, by the PCI core to a configuration management module of the PCI device, the PCI configuration access request; determining, by the configuration management module of the PCI device, that the PCI configuration access request is for the emulated configuration space instead of the non-emulated native configuration space; sending, by the configuration management module to an emulation module that is part of the PCI device, an interrupt request associated with the PCI configuration access request; in response to the interrupt request, executing, by the emulation module of the PCI device, configuration space emulation software to retrieve an emulated configuration from the emulated configuration space of the PCI device; and servicing the PCI configuration access request using the emulated configuration. 2. The method of claim 1 , wherein servicing the PCI configuration access request includes sending, to the PCI root complex, the emulated configuration when the PCI configuration access request is a configuration read request. 3. The method of claim 2 , wherein servicing the PCI configuration access request further includes modifying the emulated configuration. 4. The method of claim 1 , wherein servicing the PCI configuration access request includes updating the emulated configuration when the PCI configuration access request is a configuration write request. 5. The method of claim 1 , wherein the emulated configuration space includes emulated configurations for a plurality of PCI devices. 6. The method of claim 1 , wherein the emulated configuration space is stored in a DRAM. 7. The method of claim 1 , wherein the emulated configuration space is stored in a persistent memory. 8. The method of claim 1 , wherein the configuration space emulation software is executed in an isolated environment. 9. A peripheral device comprising: a local processor; an emulation component; a bus interface core including a non-emulated native configuration space having a native configuration register associated with functionalities common to multiple peripheral devices; and a configuration management component coupled to the bus interface core, the configuration management component configured to: receive a configuration access request from the bus interface core; determine whether the configuration access request is for the non-emulated native configuration space or for an emulated configuration space that is part of the peripheral device; request the emulation component of the peripheral device to retrieve an emulated configuration from the emulated configuration space in response to determining that the configuration access request is for the emulated configuration space; and service the configuration access request using the emulated configuration, wherein the peripheral device is capable of being connected to and disconnected from a host computing system having a host processor. 10. The peripheral device of claim 9 , wherein the emulated configuration space includes emulated configurations for a plurality of peripheral devices. 11. The peripheral device of claim 9 , wherein the emulated configuration represents a physical function resource. 12. The peripheral device of claim 9 , wherein the emulated configuration represents a virtual function resource. 13. The peripheral device of claim 9 , wherein the emulated configuration is retrieved via execution of configuration emulation software running in an isolated environment. 14. The peripheral device of claim 9 , wherein the configuration management component includes a status register to track progress of the configuration access request, and wherein the status register is updated after completion of servicing the configuration access request. 15. The peripheral device of claim 9 , wherein the emulation component is coupled to a DRAM, and wherein the emulated configuration space is stored in the DRAM. 16. The peripheral device of claim 9 , wherein the emulation component is coupled to a persistent memory, and wherein the emulated configuration space is stored in the persistent memory. 17. The peripheral device of claim 9 , wherein the emulated configuration space is stored as a text file. 18. The peripheral device of claim 9 , wherein at least one of the emulation component, the bus interface core, and the configuration management component comprise an electronic circuit. 19. The peripheral device of claim 9 , wherein the peripheral device is implemented using a system-on-chip (SoC), an application-specific integrated circuit (ASIC), or a field-programmable gate array (FPGA). 20. A method for emulating a configuration space by a peripheral device, the method comprising: receiving, by the peripheral device, a configuration access request, wherein the peripheral device is capable of being connected to and disconnected from a host computing system having a host processor, and wherein the peripheral device includes a local processor, an emulated configuration space that is part of the peripheral device, and a non-emulated native configuration space having a native configuration register associated with functionalities common to multiple peripheral devices; determining, by the peripheral device, whether the configuration access request is for the non-emulated native configuration space or for the emulated configuration space; determining, by the peripheral device, that the configuration access request is for the emulated configuration space; retrieving, by the peripheral device, an emulated configuration from the emulated configuration space; and servicing, by the peripheral device, the configuration access request using the emulated configuration. 21. The method of claim 20 , wherein the emulated configuration space includes emulated configurations for a plurality of peripheral device functions. 22. The method of claim 20 , wherein the emulated configuration represents a physical function resource. 23. The method of claim 20 , wherein the emulated configuration represents a virtual function resource. 24. The method of claim 20 , wherein servicing the configuration access request includes providing the emulated configuration to a source of the configuration access request. 25. The method of claim 20 , wherein servicing the configuration access request includes updating the emulated configuration.

Assignees

Inventors

Classifications

  • Bus-related hardware virtualisation · CPC title

  • PCI express · CPC title

  • Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455) · CPC title

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

  • using interrupt (G06F13/32 takes precedence) · 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 US10521365B2 cover?
Techniques for emulating a configuration space by a peripheral device may include receiving a configuration access request, determining that the configuration access request is for a configuration space other than a native configuration space of the peripheral device, and retrieving an emulated configuration from an emulated configuration space. The configuration access request can then be serv…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F13/105. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 31 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).