IP Library Granted Patent US 11,886,355
Granted Patent B2
US 11,886,355 · App. 17/660,797 · Granted Jan 30, 2024

Emulated endpoint configuration

Inventors: Nafea Bshara (San Jose, CA); Adi Habusha (Moshav Alonei Abba, IL); Guy Nakibly (Kedumim, IL); Georgy Machulsky (San Jose, CA)
Assignee: Amazon Technologies, Inc.
G06F13/105G06F9/5077G06F13/24G06F13/4282G06F2213/0026G06F2213/0058
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,886,355
App. No.
17/660,797
Granted
Jan 30, 2024
Kind
B2
Abstract

Techniques for emulating a configuration space may include emulating a set of configuration registers for a set of functions corresponding to a type of peripheral device. The set of functions can include a physical function and a virtual function associated with the physical function. A configuration access request can be processed by retrieving an emulated configuration register from the emulated configuration space, and logging incoming configuration access requests in a configuration transaction log to track configuration accesses.

Claims (32)

1. An integrated circuit device comprising:

a bus interface operable to receive a configuration access request;

an emulated configuration space operable to:

emulate a first set of configuration registers for a first set of functions corresponding to a first type of peripheral device, the emulated configuration space being loaded from storage to a local memory at startup of the integrated circuit device, wherein the first set of functions includes a physical function and a virtual function associated with the physical function; and

switch to emulate a second set of configuration registers for a second set of functions corresponding to a second type of peripheral device, causing the integrated circuit device to change from being represented as the first type of peripheral device to being represented as the second type of peripheral device;

an emulation module operable to process the configuration access request by retrieving an emulated configuration register from the emulated configuration space and servicing the configuration access request; and

a configuration transaction logging unit operable to log incoming configuration access requests to track configuration accesses for the integrated circuit device.

2. The integrated circuit device of claim 1 , wherein the first type of peripheral device and the second type of peripheral device are two different types of peripheral device selected from a set of peripheral device types including a mass storage device, a network device, a display device, a multimedia device, a memory device, a bridge device, a communication device, an input device, a docking station, a processor, a serial bus device, a wireless device, an intelligent I/O device, a satellite communications device, an encryption/decryption device, or a data acquisition device.

3. The integrated circuit device of claim 1 , wherein the first set of configuration registers being emulated includes a base address register specifying an address range used by the physical function.

4. The integrated circuit device of claim 1 , wherein the first set of configuration registers being emulated includes a capability register associated with the physical function.

5. The integrated circuit device of claim 4 , wherein changes to the capability register reset the virtual function associated with the physical function.

6. The integrated circuit device of claim 1 , wherein the integrated circuit device is operable to deny a subsequent configuration access request when an unusual increase of configuration accesses is detected.

7. The integrated circuit device of claim 1 , wherein the configuration transaction logging unit is operable to determine an order in which incoming configuration access requests are processed.

8. The integrated circuit device of claim 1 , wherein the configuration transaction logging unit is operable to set a valid indicator in an address register to trigger an interrupt for a configuration access request being made to an emulated configuration register in the emulated configuration space.

9. The integrated circuit device of claim 1 , wherein the emulation module is operable to respond to an access request of an uninitialized or non-existent function.

10. A method comprising:

loading an emulated configuration space from storage to a local memory at startup of an integrated circuit device;

emulating, in the emulated configuration space of the integrated circuit device, a first set of configuration registers for a first set of functions corresponding to a first type of peripheral device, the first set of functions including a physical function and a virtual function associated with the physical function;

switching to emulate a second set of configuration registers for a second set of functions corresponding to a second type of peripheral device, causing the integrated circuit device to change from being represented as the first type of peripheral device to being represented as the second type of peripheral device;

receiving a configuration access request;

processing the configuration access request by retrieving an emulated configuration register from the emulated configuration space; and

logging incoming configuration access requests in a configuration transaction log to track configuration accesses.

11. The method of claim 10 , wherein the first type of peripheral device and the second type of peripheral device are two different types of peripheral device selected from a set of peripheral device types including a mass storage device, a network device, a display device, a multimedia device, a memory device, a bridge device, a communication device, an input device, a docking station, a processor, a serial bus device, a wireless device, an intelligent I/O device, a satellite communications device, an encryption/decryption device, or a data acquisition device.

12. The method of claim 10 , wherein the first set of configuration registers being emulated includes a base address register specifying an address range used by the physical function.

13. The method of claim 10 , wherein the first set of configuration registers being emulated includes a capability register associated with the physical function.

14. The method of claim 13 , wherein changes to the capability register reset the virtual function associated with the physical function.

15. The method of claim 10 , further comprising denying a subsequent configuration access request when an unusual increase of configuration accesses is detected.

16. The method of claim 10 , further comprising determining an order in which incoming configuration access requests are processed.

17. The method of claim 10 , further comprising setting a valid indicator in an address register to trigger an interrupt for a configuration access request being made to an emulated configuration register in the emulated configuration space.

18. The method of claim 10 , further comprising responding to an access request of an uninitialized or non-existent function.

19. The integrated circuit device of claim 1 , wherein the emulation module is operable to process configuration access requests for both the emulated configuration space and a non-emulated configuration space.

20. The integrated circuit device of claim 1 , wherein the emulation module is operable to process a reset to the physical function by responding to subsequent requests made to the virtual function associated with the physical function.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2022
From: BSHARA, NAFEA; HABUSHA, ADI; NAKIBLY, GUY; MACHULSKY, GEORGY
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 059737/0481 →
Continuity (4)
Continuation 16727814 · Dec 26, 2019
Continuation 14872964 · Oct 1, 2015
Provisional Application 62059914 · Oct 5, 2014
Related Publication 20220253392A1 · Aug 11, 2022
Cited By (1)
US 12,657,137