US 12,008,389 B2
Flexible resource assignment to physical and virtual functions in a virtualized processing system
Shahe Krakirian, Palo Alto, CA (US); Jason Zebchuk, Watertown, MA (US); and Wilson Parkhurst Snyder, II, Holliston, MA (US)
Assigned to Marvell Asia Pte, Ltd., Singapore (SG)
Filed by Cavium, LLC., Santa Clara, CA (US)
Filed on Nov. 13, 2018, as Appl. No. 16/189,119.
Prior Publication US 2020/0150993 A1, May 14, 2020
Int. Cl. G06F 9/455 (2018.01); G06F 13/24 (2006.01); G06F 13/28 (2006.01); G06F 13/42 (2006.01)
CPC G06F 9/45558 (2013.01) [G06F 13/24 (2013.01); G06F 13/28 (2013.01); G06F 13/4282 (2013.01); G06F 2009/45579 (2013.01); G06F 2213/0026 (2013.01)] 28 Claims
OG exemplary drawing
 
1. A method in a processing system for programming physical functions and virtual functions, the method comprising:
defining a plurality of virtual functions, wherein each of the virtual functions of the plurality of virtual functions comprises a range of local functions;
defining a plurality of physical functions comprising one or more physical functions;
programming a set of the plurality of virtual functions to correspond to a first physical function of the plurality of physical functions;
defining a plurality of hardware resources corresponding to one or more functional blocks, wherein each of the local functions of the range of local functions is assigned a set of the plurality of hardware resources; and
programming at least one hardware resource of the plurality of hardware resources to be assigned to one or more of: the first physical function and a first virtual function of the set of the plurality of virtual functions,
wherein the range of local functions comprises a first local function in a source socket, wherein the first local function is associated with a first functional block of the one or more functional blocks,
wherein the first local function communicates with a second local function in a destination socket using a combination uniquely identifying one of a physical function and a virtual function corresponding to the second local function, and
wherein the second local function is assigned from the first functional block.