The Virtual Interface Architecture

  • Authors:
  • Dave Dunning;Greg Regnier;Gary McAlpine;Don Cameron;Bill Shubert;Frank Berry;Anne Marie Merritt;Ed Gronke;Chris Dodd

  • Affiliations:
  • -;-;-;-;-;-;-;-;-

  • Venue:
  • IEEE Micro
  • Year:
  • 1998

Quantified Score

Hi-index 0.01

Visualization

Abstract

Network bandwidths have been increasing and latencies through these networks have been decreasing. Unfortunately, applications have not been able to take full advantage of these performance improvements due to the many layers of user level and kernel level software that is required to get to the network. The Virtual Interface Architecture (or simply VI Architecture) was developed to significantly reduce the software overhead between a high performance CPU/memory subsystem and a high performance network. The Virtual Interface Architecture defines a set of functions and associated semantics used for moving data into and out of a process' memory. The design focus of the VI Architecture is to achieve low latency, high bandwidth communication/data exchange between processes running on two nodes within a computing cluster, with minimal CPU usage. Low latency and sustained high bandwidth are achieved by allowing a user process direct access to the network interface, avoiding intermediate copies of data and bypassing the operating system in a fully-protected fashion. CPU utilization is minimized by avoiding interrupts and context switches whenever possible. This article presents the mechanisms which support protected, zero-copy user-level access and the performance data of one implementation of the VI Architecture. Intel Corporation, Compaq Computer Corporation and Microsoft Corporation jointly authored the VI Architecture specification. A copy of the specification can be found at http://www.viarch.org/.