A network interface card architecture for I/O virtualization in embedded systems

In this paper we present an architectural concept for network interface cards (NIC) targeting embedded systems and supporting I/O virtualization. Current solutions for high performance computing do not sufficiently address embedded system requirements i.e., guarantee real-time constraints and differentiated service levels as well as only utilize limited HW resources. The central ideas of our work-in-progress concept are: A scalable and streamlined NIC architecture storing the rule sets (contexts) for virtual network interfaces and associated information like DMA descriptors and producer/consumer lists primarily in the system memory. Only for currently active interfaces or interfaces with special requirements, e.g. hard real-time, the required information is cached on the NIC. By switching between the contexts the NIC can flexibly adapt to service a scalable number of interfaces. With the contexts the proposed architecture also supports differentiated service levels. On the NIC (re-)configurable finite state machines (FSM) are handling the data path for I/O virtualization. This allows a more resource-limited NIC implementation. With a preliminary analysis we estimate the benefits of the proposed architecture and key components of the architecture are outlined.