IP Library › Granted Patent US 8,751,713
Granted Patent B2
US 8,751,713 · App. 13/102,098 · Granted Jun 10, 2014

Executing virtual functions using memory-based data in a PCI express SR-IOV and MR-IOV environment

Inventors: Avraham Ayzenfeld (Tel Aviv, IL); Emmanuel Elder (Haifa, IL); Ilya Granovsky (Haifa, IL)
Assignee: International Business Machines Corporation
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 8,751,713
App. No.
13/102,098
Granted
Jun 10, 2014
Kind
B2
Abstract

A method, including receiving, by an extended virtual function shell positioned on a Peripheral Component Interconnect Express (PCIe) configuration space, a virtual function call comprising a request to perform a specific computation, and identifying a physical function associated with the called virtual function, the physical function one of multiple physical functions positioned on the PCIe configuration space. One or more first data values are then retrieved from a virtual function instance stored in the memory, one or more first data values, the virtual function instance associated with the called virtual function, and one or more second data values are retrieved from the identified physical function. The specific computation is then performed using the first data values and the second data values, thereby calculating a result.

Claims (32)

1. A method, said method comprising:

receiving, by an extended virtual function shell positioned on a Peripheral Component Interconnect Express (PCIe) configuration space, a virtual function call comprising an identification of a called virtual function and a request to perform a specific computation associated with the called virtual function;

identifying a physical function associated with the called virtual function, the physical function being one of multiple physical functions implemented by the PCIe configuration space;

retrieving, from a virtual function instance stored in a virtual function memory, one or more first data values, the virtual function instance being associated with the called virtual function;

retrieving, from a physical function unit of the identified physical function, separate from the virtual function memory, one or more second data values;

performing the specific computation using the first data values and the second data values, thereby calculating a result;

identifying one or more additional virtual functions associated with the identified physical function; and

conveying, to the extended virtual function shell, respective virtual function calls for each of the additional virtual functions.

2. The method according to claim 1 , and comprising storing the result to the memory.

3. The method according to claim 1 , and comprising conveying the result to one or more clients coupled to the PCIe configuration space.

4. The method according to claim 1 , wherein the virtual function instance is associated uniquely with the called virtual function.

5. The method according to claim 1 , wherein the one or more second values comprises shared data.

6. The method according to claim 1 , wherein each of the one or more second values comprises a constant value.

7. The method according to claim 1 , wherein each of the multiple physical functions comprise one or more hardware registers configured to store the second data values.

8. The method according to claim 1 , wherein the extended virtual function shell comprises hardware logic configured to perform a specific calculation.

9. The method according to claim 1 , wherein the PCIe configuration space comprises endpoints operating in a single root input/output virtualization environment.

10. The method according to claim 1 , wherein the PCIe configuration space comprises endpoints operating in a multi root input/output virtualization environment.

11. The method according to claim 1 , wherein retrieving the one or more second data values comprises retrieving a value from at lest one single bit field.

12. The method according to claim 1 , wherein receiving the a virtual function call comprises receiving a request for a register of the virtual function call, and wherein the extended virtual function shell determines the type of data stored in accessed fields of the register, before retrieving the first and second data values.

13. The method according to claim 1 , wherein the virtual function instances stored in the virtual function memory, include the same fields for all the virtual functions.

14. An apparatus, comprising:

multiple physical functions positioned on a Peripheral Component Interconnect Express (PCIe) configuration space;

a memory coupled to the PCIe configuration space; and

an extended virtual function shell positioned on the PCIe configuration space and configured to receive a virtual function call comprising an identification of a called virtual function and a request to perform a specific computation associated with the called virtual function, to identify one of the physical functions associated with the specific virtual function, to retrieve, from a function instance associated with the specific virtual function and stored in the memory, one or more first data values, to retrieve, from a physical function unit of the identified physical function, separate from the virtual function memory, one or more second data values, and to perform the specific computation using the first data values and the second data values, thereby calculating a result,

wherein the extended virtual function shell is configured to identify one or more additional virtual functions associated with the identified physical function, and to convey, back to the extended virtual function shell, respective virtual function calls for each of the additional virtual functions.

15. The apparatus according to claim 14 , wherein the virtual function instance is associated uniquely with the called virtual function.

16. The apparatus according to claim 14 , wherein the one or more second values comprises shared data.

17. The apparatus according to claim 14 , wherein each of the one or more second values comprises a constant value.

18. The apparatus according to claim 14 , wherein each of the multiple physical functions comprise one or more hardware registers configured to store the second data values.

19. The apparatus according to claim 14 , wherein the extended virtual function shell comprises hardware logic configured to perform a specific calculation.

20. The apparatus according to claim 14 , wherein the PCIe configuration space comprises an endpoint operating in a single root input/output virtualization environment.

21. The apparatus according to claim 14 , wherein the PCIe configuration space comprises an endpoint operating in a multi root input/output virtualization environment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2011
From: AYZENFELD, AVRAHAM; ELDER, EMMANUEL; GRANOVSKY, ILYA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 026235/0944 →
Continuity (1)
Related Publication 20120284448A1 · Nov 8, 2012