IP Library Granted Patent US 8,732,349
Granted Patent B2
US 8,732,349 · App. 12/790,921 · Granted May 20, 2014

Assignment of resources in an input/output (I/O) virtualization system

Inventors: Karagada R. Kishore (Saratoga, CA); Kiron Malwankar (Saratoga, CA); Peter E. Kirkpatrick (San Francisco, CA)
Assignee: Fusion-Io, Inc.
G06F13/4022
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,732,349
App. No.
12/790,921
Filed
May 31, 2010
Granted
May 20, 2014
Kind
B2
Art Unit
2181
USPC
710/36
Abstract

An Input/Output (IO) Virtualization (IOV) system provides a mechanism for sharing computer peripheral devices or resources between multiple host computers by presenting a single resource multiple times to numerous host systems. The IOV system provides IO virtualization and host-to-host communication services to the host computers. The system comprises device interfaces coupled to the IO devices. Each IO device comprises at least one endpoint function (EPF). Host interfaces are each coupled to one of a number of host computers. Each host interface includes a proxy, and each proxy comprises configuration data.

Claims (40)

1. A system, comprising:

a plurality of device interfaces configured to couple to a transport fabric and to a plurality of input/output (IO) devices, wherein each IO device comprises at least one endpoint function (EPF); and

a plurality of host interfaces configured to couple to the transport fabric and to a respective one of a plurality of independent host computers, wherein each host interface includes a device proxy configured to:

reserve resources of a host computer prior to assignment of an EPF corresponding to one of the plurality of IO devices, wherein the resources are usable by the EPF; and

expose the EPF to the host computer responsive to the EPF being assigned.

2. The system of claim 1 , wherein the system is configured to:

discover and enumerate a device proxy in a first domain of a host computer;

discover and enumerate an EPF assigned to the device proxy in a second domain, distinct from the first domain.

3. The system of claim 2 , wherein the first and second domains are Peripheral Component Interconnect Express (PCle) domains.

4. The system of claim 2 , wherein the device proxy is configured store configuration data of the EPF responsive to an assignment of the EPF.

5. The system of claim 4 , wherein the configuration data comprises a bus-device-function (BDF) number in the second domain.

6. The system of claim 4 , wherein the configuration data comprises a memory range identifier.

7. The system of claim 4 , wherein the configuration data comprises an endpoint function (EPF) identifier of the EPF.

8. The system of claim 4 , wherein the configuration data comprises a destination address of a device interface corresponding to the EPF.

9. The system of claim 4 , wherein the corresponding host computer is configured to rescan a bus coupled to the device proxy.

10. The system of claim 9 , wherein the rescan occurs in response to a PCIe hot-plug event.

11. The system of claim 9 , wherein the EPF is discoverable in the first domain via use of the configuration data.

12. The system of claim 1 , wherein the device proxies are reprogrammable to an original state that is a state of the device proxy prior to programming of the device proxy with the configuration data.

13. The system of claim 1 , wherein the device proxies are configured to expose PCle resource functions embodied in the EPFs as separate PCle devices.

14. The system of claim 1 , wherein the plurality of IO devices include an IO device with one endpoint function (EPF), wherein the IO device with one EPF is assigned to a single host computer that has privileged control over the EPF.

15. The system of claim 1 , wherein the plurality of IO devices include an IO device with a plurality of endpoint functions (EPFs), wherein the IO device with the plurality of EPFs is shared across ones of the plurality of independent host computers.

16. The system of claim 1 , wherein the device interfaces and the host interfaces are configured to communicate via packets that encapsulate Peripheral Component Interconnect Express (PCle) traffic to traverse the transport fabric.

17. A host computer, comprising:

a host interface configured to couple the host computer to a transport fabric usable to communicate with a plurality of input/output (IO) devices, wherein each IO device includes at least one endpoint function (EPF);

wherein the host interface implements a device proxy configured to:

reserve resources of the host computer prior to assignment of an EPF corresponding to one of the plurality of IO devices, wherein the resources are usable by the EPF; and

expose the EPF to the host computer responsive to the EPF being assigned.

18. The host computer of claim 17 , wherein the host computer is configured to enumerate the device proxy in a Peripheral Component Interconnect Express (PCle) domain of the host computer; and

wherein the device proxy is configured to expose an EPF enumerated in a PCIe domain distinct from the PCIe domain of the host computer.

19. The host computer of claim 17 , wherein the device proxy is configured to:

responsive to an assignment of the EPF:

store configuration information of the EPF, wherein the configuration information is usable to enumerate the EPF; and

indicate a hot-plug event to the host computer to cause the host computer to rescan a bus of the host computer and enumerate the EPF.

20. The host computer of claim 19 , wherein the configuration information includes a bus-device-function (BDF) number and an endpoint function (EPF) identifier of the EPF.

21. The host computer of claim 19 , wherein the host computer is configured to load a driver for the EPF responsive to indication of the hot-plug event.

22. The host computer of claim 17 , wherein the host interface is configured to:

encapsulate Peripheral Component Interconnect Express (PCle) traffic associated with the EPF within one or more packets;

communicate the one or more packets over the transport fabric.

23. The host computer of claim 17 , wherein the host interface is configured to share the IO device with one or more other host computers.

24. The host computer of claim 17 , wherein the device proxy is configured to expose an EPF assigned by a management central processor unit (MCPU) coupled to the transport fabric.

Assignments (13)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0850 →
RELEASE OF SECURITY INTEREST Recorded May 4, 2016
From: FUSION-IO, INC.
To: SANDISK CORPORATION
Reel/Frame 038748/0880 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2016
From: PS12 LUXCO S.A.R.L.
To: LONGITUDE ENTERPRISE FLASH S.A.R.L.
Reel/Frame 038362/0604 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2016
From: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
To: PS12 LUXCO S.A.R.L.
Reel/Frame 038362/0575 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2016
From: LONGITUDE ENTERPRISE FLASH SARL
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 038324/0628 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2014
From: FUSION-IO, INC.
To: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
Reel/Frame 033419/0748 →
SECURITY INTEREST Recorded Jul 24, 2014
From: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
To: FUSION-IO, INC.
Reel/Frame 033410/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2014
From: FUSION-IO, INC.
To: INTELLECTUAL PROPERTY HOLDINGS 2 LLC
Reel/Frame 033390/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2011
From: APRIUS, INC.
To: FUSION-IO, INC.
Reel/Frame 027116/0889 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2010
From: KISHORE, KARAGADA R.; MALWANKAR, KIRON; KIRKPATRICK, PETER
To: APRIUS, INC.
Reel/Frame 025366/0001 →
Continuity (3)
Continuation In Part 12751543 · Mar 31, 2010
Provisional Application 61262416 · Nov 18, 2009
Related Publication 20110119423A1 · May 19, 2011