IP Library Granted Patent US 12,657,137
Granted Patent B2
US 12,657,137 · App. 18/538,699 · Granted Jun 16, 2026

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 12,657,137
App. No.
18/538,699
Granted
Jun 16, 2026
Kind
B2
Abstract

Techniques for emulating a configuration space may include emulating a set of configuration registers in an integrated circuit device for a set of functions corresponding to a type of peripheral device. The type of peripheral device represented by the integrated circuit device can be modified by changing the set of configuration registers being emulated in the integrated circuit device. Multiple sets of configuration registers can also be emulated to support different virtual machines or different operating systems.

Claims (40)

1 . An integrated circuit device comprising:

an emulated configuration space configured to:

represent the integrated circuit device as a first type of peripheral device by emulating a first set of configuration registers for a first set of functions corresponding to the first type of peripheral device; and

represent the integrated circuit device as a second type of peripheral device by emulating a second set of configuration registers for a second set of functions corresponding to the second type of peripheral device,

a bus interface configured to receive a configuration access request; and

emulation control logic configured to process the configuration access request by retrieving an emulated configuration register from the emulated configuration space and servicing the configuration access request,

wherein the integrated circuit device is configured to dynamically add an additional emulated capability register to the emulated configuration space, and dynamically remove an existing emulated capability register from the emulated configuration space based on which of the first and second types of peripheral device the integrated circuit device is emulating.

2 . The integrated circuit device of claim 1 , wherein the first set of functions includes a physical function and one or more virtual functions.

3 . The integrated circuit device of claim 2 , wherein the one or more virtual functions are emulated on a same target bus number as the physical function.

4 . The integrated circuit device of claim 2 , wherein each of the one or more virtual functions is emulated on a higher target bus number than a target bus number of the physical function.

5 . The integrated circuit device of claim 1 , wherein the emulation control logic operates in a secure mode of the integrated circuit device.

6 . The integrated circuit device of claim 1 , wherein the configuration access request triggers a secure interrupt that is masked from an operating system.

7 . The integrated circuit device of claim 1 , wherein the emulated configuration space is an encrypted emulated configuration space.

8 . The integrated circuit device of claim 1 , wherein the integrated circuit device is an endpoint peripheral device.

9 . An integrated circuit device comprising:

a memory storing a plurality of emulated configuration spaces, wherein each of the emulated configuration spaces includes an emulated device class code register, one or more emulated base address registers, and one or more emulated capability registers;

a bus interface configured to receive a configuration access request from a host;

emulation control logic configured to process the configuration access request by retrieving an emulated configuration from the memory and servicing the configuration access request; and

a configuration transaction log configured to track progress of the configuration access request,

wherein the integrated circuit device is configured to dynamically modify at least one of the plurality of emulated configuration spaces by adding an additional emulated capability register and removing an existing emulated capability register based on which type of peripheral device the integrated circuit device is emulating.

10 . The integrated circuit device of claim 9 , wherein the plurality of emulated configuration spaces includes:

a first emulated configuration space emulating a first set of emulated configuration registers for a first set of functions corresponding to a first type of peripheral device; and

a second emulated configuration space emulating a second set of emulated configuration registers for a second set of functions corresponding to a second type of peripheral device.

11 . The integrated circuit device of claim 9 , wherein the host is configured to execute a first operating system and a second operating system, and wherein the plurality of emulated configuration spaces includes:

a first emulated configuration space emulating a first set of emulated configuration registers of a peripheral device function for the first operating system; and

a second emulated configuration space emulating a second set of emulated configuration registers of the peripheral device function for the second operating system.

12 . The integrated circuit device of claim 9 , wherein the host is configured to execute a plurality of virtual machines, and wherein the plurality of emulated configuration spaces includes an emulated configuration space for each of the plurality of virtual machines.

13 . The integrated circuit device of claim 12 , wherein the emulation control logic is configured to block the configuration access request from a virtual machine to prevent the integrated circuit device from hanging when a denial of service attack from the virtual machine is detected, or when the configuration access request is an invalid or untimely request.

14 . The integrated circuit device of claim 9 , wherein the plurality of emulated configuration spaces includes an encrypted emulated configuration space.

15 . The integrated circuit device of claim 9 , wherein the integrated circuit device is configured to dynamically add an additional emulated configuration space to the memory, or dynamically replace one of the emulated configuration spaces with the additional emulated configuration space.

16 . The integrated circuit device of claim 15 , wherein the additional emulated configuration space is obtained via a network.

17 . The integrated circuit device of claim 9 , wherein the one or more emulated capability registers includes an emulated routing identification capability register and an emulated virtualization capability register.

18 . A method comprising:

emulating a plurality of emulated configuration spaces in a memory, wherein each of the emulated configuration spaces includes an emulated device class code register, one or more emulated base address registers, and one or more emulated capability registers;

receiving a configuration access request;

logging the configuration access request in a configuration transaction log to track progress of the configuration access request;

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

dynamically modifying at least one of the plurality of emulated configuration spaces by adding an additional emulated capability register and removing an existing emulated capability register based on which type of peripheral device is being emulated.

19 . The method of claim 18 , further comprising dynamically adding or replacing an emulated configuration space in the memory.

20 . The method of claim 18 , wherein the plurality of emulated configuration spaces includes an encrypted emulated configuration space.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2023
From: BSHARA, NAFEA; HABUSHA, ADI; NAKIBLY, GUY; MACHULSKY, GEORGY
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 065862/0024 →
Continuity (5)
Continuation 17660797 · Apr 26, 2022
Continuation 16727814 · Dec 26, 2019
Continuation 14872964 · Oct 1, 2015
Provisional Application 62059914 · Oct 5, 2014
Related Publication 20240126705A1 · Apr 18, 2024
References Cited (107)
US 6553439B1 · Greger et al. · 2003 [cited by applicant]
US 6647434B1 · Kamepalli · 2003 [cited by applicant]
US 7383547B1 · Miri · 2008 [cited by applicant]
US 7613847B2 · Kjos et al. · 2009 [cited by applicant]
US 8387043B2 · Tanaka et al. · 2013 [cited by applicant]
US 8521915B2 · Kishore et al. · 2013 [cited by applicant]
US 8886671B1 · Ro et al. · 2014 [cited by applicant]
US 8966477B2 · Cen et al. · 2015 [cited by applicant]
US 10521365B2 · Bshara et al. · 2019 [cited by applicant]
US 11321247B2 · Bshara et al. · 2022 [cited by applicant]
US 11886355B2 · Bshara et al. · 2024 [cited by applicant]
US 20010025311A1 · Arai et al. · 2001 [cited by applicant]
US 20040039892A1 · Goldschmidt · 2004 [cited by applicant]
US 20050109399A1 · Wodjenski et al. · 2005 [cited by applicant]
US 20070266179A1 · Chavan et al. · 2007 [cited by applicant]
US 20080005297A1 · Kjos et al. · 2008 [cited by applicant]
US 20080040526A1 · Suzuki et al. · 2008 [cited by applicant]
US 20080228971A1 · Rothman et al. · 2008 [cited by applicant]
US 20090083471A1 · Frey et al. · 2009 [cited by applicant]
US 20090204965A1 · Tanaka et al. · 2009 [cited by applicant]
US 20100064069A1 · Shasha · 2010 [cited by examiner]
US 20100169069A1 · Diamant et al. · 2010 [cited by applicant]
US 20100306416A1 · Watkins · 2010 [cited by examiner]
US 20110029694A1 · Blinzer · 2011 [cited by applicant]
US 20110055433A1 · Kishore · 2011 [cited by examiner]
US 20110216718A1 · Faurie · 2011 [cited by examiner]
US 20110252173A1 · Armstrong · 2011 [cited by examiner]
US 20110258352A1 · Williams et al. · 2011 [cited by applicant]
US 20120079312A1 · Muthrasanallur · 2012 [cited by examiner]
US 20120102490A1 · Eide · 2012 [cited by examiner]
US 20120215941A1 · Brownlow · 2012 [cited by examiner]
US 20120297379A1 · Anderson et al. · 2012 [cited by applicant]
US 20130160002A1 · Graham · 2013 [cited by examiner]
US 20140040672A1 · Saghi et al. · 2014 [cited by applicant]
US 20140136734A1 · Habusha · 2014 [cited by examiner]
US 20150149661A1 · Kanigicherla et al. · 2015 [cited by applicant]
US 20160098365A1 · Bshara et al. · 2016 [cited by applicant]
US 20220253392A1 · Bshara et al. · 2022 [cited by applicant]
CN 1912838A · 2007 [cited by applicant]
CN 102171655A · 2011 [cited by applicant]
CN 102576349A · 2012 [cited by applicant]
CN 106796556B · 2020 [cited by applicant]
EP 3204862A1 · 2017 [cited by applicant]
JP H09288583A · 1997 [cited by applicant]
JP H11288400A · 1999 [cited by applicant]
JP 2004531838A · 2004 [cited by applicant]
JP 2005010919A · 2005 [cited by applicant]
JP 2008046722A · 2008 [cited by applicant]
JP 2009187368A · 2009 [cited by applicant]
JP 2010016819A · 2010 [cited by applicant]
JP 2010079816A · 2010 [cited by applicant]
JP 2010140471A · 2010 [cited by applicant]
JP 2011164838A · 2011 [cited by applicant]
JP 2014085956A · 2014 [cited by applicant]
JP 6543714B2 · 2019 [cited by applicant]
KR 20140002048A · 2014 [cited by applicant]
SG 11201702584U · 2017 [cited by applicant]
TW I421766B · 2014 [cited by applicant]
TW 201629783A · 2016 [cited by applicant]
TW 201805821A · 2018 [cited by applicant]
TW I655542B · 2019 [cited by applicant]
TW I655543B · 2019 [cited by applicant]
WO WO2009025381A1 · 2009 [cited by applicant]
WO WO2013089907A1 · 2013 [cited by applicant]
WO WO2016057315A1 · 2016 [cited by applicant]
wwww.wikipedia.org, Integrated Circuit (Year: 2004). [cited by examiner]
CN Notice of Decision to Grant dated Jan. 29, 2024, in Application No. CN202010052071.1 with English translation. [cited by applicant]
CN Notice of Decision to Grant dated Nov. 5, 2019, in Application No. CN201580053816.3. [cited by applicant]
CN Office Action dated Jan. 4, 2019, in Application No. CN201580053816.3. [cited by applicant]
CN Office Action dated Mar. 8, 2023 in Application No. CN202010052071.1 with English translation. [cited by applicant]
EP Notice of Decision to Grant dated Aug. 22, 2019, in Application No. EP15787738.2. [cited by applicant]
EP Office Action dated Sep. 18, 2018, in Application No. EP15787738.2. [cited by applicant]
Final Office Action dated Mar. 17, 2021 in U.S. Appl. No. 16/727,814. [cited by applicant]
IL Notice of Allowance dated Apr. 6, 2020, in Application No. IL 251417. [cited by applicant]
IL Office Action dated May 7, 2019, in Application No. IL251417. [cited by applicant]
JP Notice of Allowance dated Jun. 3, 2019, in Application No. JP2017-536236. [cited by applicant]
JP Notice of Decision to Grant dated Mar. 16, 2021, in Application No. JP2019-027016. [cited by applicant]
JP Office Action dated Mar. 12, 2018, in Application No. JP2017-536236. [cited by applicant]
JP Office Action dated Mar. 6, 2020, in Application No. JP2019-027016. [cited by applicant]
JP Office Action dated Nov. 20, 2020, in Application No. JP2019-027016. [cited by applicant]
JP Office Action dated Nov. 5, 2018, in Application No. JP2017-536236. [cited by applicant]
KR Notice of Decision to Grant dated Feb. 13, 2020, in Application No. KR10-2018-7034414. [cited by applicant]
KR Notice of Decision to Grant dated Mar. 24, 2020, in Application No. KR10-2017-7008809. [cited by applicant]
KR Office Action dated Aug. 28, 2018, in Application No. KR10-2017-7008809. [cited by applicant]
KR Office Action dated Dec. 19, 2017 in Application No. KR10-2017-7008809. [cited by applicant]
KR Office Action dated Jun. 28, 2018 in Application No. KR10-2017-7008809. [cited by applicant]
Non-Final Office Action dated Sep. 15, 2021 in U.S. Appl. No. 16/727,814. [cited by applicant]
Non-Final Office Action dated Sep. 3, 2020 in U.S. Appl. No. 16/727,814. [cited by applicant]
Notice of Allowance dated Jan. 5, 2022 in U.S. Appl. No. 16/727,814. [cited by applicant]
SG Examination Report dated Mar. 19, 2018 in Application No. SG11201702584U. [cited by applicant]
SG Notice of Decision to Grant dated Mar. 27, 2018 in Application No. SG11201702584U. [cited by applicant]
SG Written Opinion dated Aug. 22, 2017 in Application No. SG11201702584U. [cited by applicant]
TW Notice of Decision to Grant dated Dec. 27, 2018 in Application No. TW104132725. [cited by applicant]
TW Notice of Decision to Grant dated Dec. 28, 2018 in Application No. TW106117105. [cited by applicant]
TW Notice of Decision to Grant dated Jun. 22, 2017 in Application No. TW106117105. [cited by applicant]
TW Office Action dated Apr. 17, 2017 in Application No. TW104132725. [cited by applicant]
TW Office Action dated Nov. 29, 2016 in Application No. TW104132725. [cited by applicant]
U.S. Final Office Action dated Jul. 25, 2018, in U.S. Appl. No. 14/872,964. [cited by applicant]
U.S. Final Office Action dated Jun. 22, 2023, in U.S. Appl. No. 17/660,797. [cited by applicant]
U.S. Non-Final Office Action dated Dec. 28, 2017, in U.S. Appl. No. 14/872,964. [cited by applicant]
U.S. Non-Final Office Action dated Feb. 27, 2023 in U.S. Appl. No. 17/660,797. [cited by applicant]
U.S. Non-Final Office Action dated Mar. 22, 2019, in U.S. Appl. No. 14/872,964. [cited by applicant]
U.S. Notice of Allowance dated Aug. 16, 2019, in U.S. Appl. No. 14/872,964. [cited by applicant]
U.S. Notice of Allowance dated Sep. 15, 2023 in U.S. Appl. No. 17/660,797. [cited by applicant]
Wikipedia: The Free Encyclopedia, “Integrated circuit,” Oct. 2004, 9 pages, retrieved from The Wayback Machine Internet Archive at URL: https://web.archive.org/web/20041030083240/http://en.wikipedia.org/wiki/Integrated_… [cited by applicant]
WO International Preliminary Report on Patentability dated Apr. 20, 2017 in Application No. PCT/US2015/053596. [cited by applicant]
WO International Search Report and Written Opinion dated Jan. 21, 2016 in Application No. PCT/US2015/053596. [cited by applicant]