IP Library Granted Patent US 11,321,247
Granted Patent B2
US 11,321,247 · App. 16/727,814 · Granted May 3, 2022

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,321,247
App. No.
16/727,814
Granted
May 3, 2022
Kind
B2
Abstract

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

Claims (36)

1. A peripheral device comprising:

a local processor;

an emulation component;

a bus interface for communicating with a host system having a host memory; and

a configuration management component coupled to the bus interface, the configuration management component configured to:

receive an access request from the bus interface;

log the access request in the peripheral device to track progress of the access request;

determine that the access request is for an emulated configuration space inside the peripheral device and external to the host memory;

request the emulation component to retrieve an emulated configuration from the emulated configuration space inside the peripheral device in response to determining that the access request is for the emulated configuration space;

service the access request using the emulated configuration; and

update a status of the access request after completion of servicing the access request.

2. The peripheral device of claim 1 , wherein the emulated configuration space includes emulated configurations for a plurality of peripheral devices.

3. The peripheral device of claim 1 , wherein the emulated configuration represents a physical function resource.

4. The peripheral device of claim 1 , wherein the emulated configuration represents a virtual function resource.

5. The peripheral device of claim 1 , wherein the emulated configuration is retrieved via execution of configuration emulation software running in an isolated environment.

6. The peripheral device of claim 1 , wherein the emulated configuration space is stored in a dynamic random access memory (DRAM) of the peripheral device.

7. The peripheral device of claim 1 , wherein the emulation component is stored in a persistent memory of the peripheral device.

8. The peripheral device of claim 1 , wherein the emulated configuration space is stored as a text file.

9. The peripheral device of claim 1 , wherein at least one of the emulation component or the configuration management component includes an electronic circuit.

10. The peripheral device of claim 1 , wherein the peripheral device is implemented using a system-on-chip (SoC), an application-specific integrated circuit (ASIC), a processor, or a field-programmable gate array (FPGA).

11. A method for emulating a configuration space by a peripheral device that communicates with a host system having a host memory, the method comprising:

receiving, by the peripheral device, an access request, wherein the peripheral device includes a local processor and an emulated configuration space inside the peripheral device and external to the host memory;

logging, by the peripheral device, the access request in the peripheral device to track progress of the access request;

determining, by the peripheral device, that the access request is for the emulated configuration space;

retrieving, by the peripheral device, an emulated configuration from the emulated configuration space;

servicing, by the peripheral device, the access request using the emulated configuration; and

updating a status of the access request after completion of servicing the access request.

12. The method of claim 11 , wherein the emulated configuration space includes emulated configurations for a plurality of peripheral device functions.

13. The method of claim 11 , wherein the emulated configuration represents a physical function resource.

14. The method of claim 11 , wherein the emulated configuration represents a virtual function resource.

15. The method of claim 11 , wherein servicing the access request includes providing the emulated configuration to a source of the access request.

16. The method of claim 11 , wherein servicing the access request includes updating the emulated configuration.

17. The method of claim 11 , wherein the emulated configuration space is stored in a dynamic random access memory (DRAM).

18. The method of claim 11 , further comprising maintaining a log of access requests received by the peripheral device.

19. The method of claim 11 , further comprising replacing the emulated configuration space with a different emulated configuration space when the peripheral device changes functionality.

20. The peripheral device of claim 1 , wherein the emulation component is operable to retrieve the emulated configuration according to an interrupt routine.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2019
From: BSHARA, NAFEA; HABUSHA, ADI; NAKIBLY, GUY; MACHULSKY, GEORGY
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 051373/0028 →
Continuity (3)
Continuation 14872964 · Oct 1, 2015
Provisional Application 62059914 · Oct 5, 2014
Related Publication 20200133892A1 · Apr 30, 2020
Cited By (5)
US 12,381,784 US 12,455,838 US 12,517,845 US 12,657,137 US 12,677,174