These pages were last modified 28/6/05.|
The Virtual Interface Architecture
The Virtual Interface Architecture (VIA) is an industry standard for system-area user-level networking. Originally proposed by Compaq, Intel and Microsoft, it has received wide support and the same communications model is proposed for Infiniband.
We have developed an implementation that consists of a software layer over the CLAN network interface. The data transfer model is illustrated in the diagram above. When a connection is made between two applications, two message queues are setup between the endpoints to transfer control messages: the transfer queue and cookie queue. Data transfer proceeds as follows:
- receiving application posts a receive buffer
- a descriptor (cookie) is passed to sending application via the cookie queue
- sending application posts a send buffer
- the descriptor for the recieve buffer is dequeued from the cookie queue
- a DMA is initiated at the sender to transfer the data
- when data transfer is complete, a completion message is written to the transfer queue
- receiving application receives a notification to indicate that the data transfer is complete
The functionality we have so far includes the send/receive data transfer model, polling and blocking modes of synchronisation (using tripwires), completion queues and all three reliability levels.
The performance of this implementation of VIA is comparable with existing hardware implementations, and our approach offers a number of advantages over other solutions:
- the CLAN network hardware is significantly less complex than VIA hardware, and has the potential to scale to higher bandwidths
- the per-endpoint resource requirements in the NIC are significantly lower than for a hardware implementation of VIA
- the software approach is highly flexible, and performance rides the CPU curve
- use of programmed I/O allows very low overhead and latency for small messages
- data transfer is send-directed, hence receive buffer overrun can be avoided, and this has enabled us to add flow control to VIA
Please note that the techniques disclosed here have been the subject of patent applications.
Copyright © 2002 AT&T Laboratories Cambridge