12
Application
Application
OS Communication Interface
VI Consumer
OS Communication Interface
VI Consumer
Socket, MPI, Cluster, others
Socket, MPI, Cluster, others
VI User Agent
VI User Agent
Open/Connect
Open/Connect
Send/Receive
Send/Receive
Register Memory
Register Memory
RDMA Read/Write
RDMA Read/Write
User Mode
User Mode
VI
VI
VI
VI
VI
VI
CQ
CQ
Kernel Mode
Kernel Mode
VI Kernel Agent
VI Kernel Agent
VI Provider
VI Provider
Network Interface Controller
Network Interface Controller
Fig. 2.3. Virtual Interface Architecture
framework [30]. The VI enables direct message transfer to the NIC without requiring
to copy data to the kernel space or using the NIC driver for virtual to physical memory
translations. An application sends a request to the VI enabled API, also called as VIPL.
The VIPL formats the request, creates a VI queue or work queue pair, and submits
it directly to the NIC, which has VI enabled buffers to hold the data that is sent or
received. VIA uses a doorbell structure to initiate message transfer to/from a network.
Recently, a new VIA style communication mechanism, called InfiniBand Architec
ture [45], has been proposed for faster access to the Network Interface. In the InfiniBand
specifications, a Host Channel Adapter (HCA) is used by the host processor to connect
to an IBA network, and has the required user level communication mechanism [45, 20].
Unlike the traditional NICs, the HCA is planned to reside in the memory controller to
avoid the PCI bus limitation [45]. Although the first generation of HCAs will probably