Implementing Large Numbers of Virtual Functions with PCI Express SR-IOV
By Richard Solomon, Technical Marketing Manager, PCI Express and contributor to the SR-IOV specification
One of the most powerful features of PCI Express for today’s data centers is I/O virtualization. I/O virtualization improves the performance of enterprise servers by giving virtual machines direct access to hardware I/O devices. The specification that has gained traction in the market is Single-Root I/O Virtualization (SR-IOV). The SR-IOV specification allows one PCI Express device to present itself to the host as multiple distinct “virtual” devices. This is done through a new PCI Express capability structure added to a traditional PCI Express function (i.e., a Physical Function (PF)). The PF provides control over the creation and allocation of new Virtual Functions (VFs). VFs share the device’s underlying hardware and PCI Express link (Figure 1). A key feature of the SR-IOV specification is that VFs are very lightweight so that many of them can be implemented in a single device.