NetTLP: A Development Platform for PCIe devices in Software Interacting with Hardware

NetTLP: A Development Platform for PCIe devices in Software Interacting with Hardware
复制标题

DOI:
--
复制
发表时间:
2020
期刊:
--
影响因子:
--
通讯作者:
Yohei Kuga;Ryo Nakamura;Takeshi Matsuya;Y. Sekiya
Yohei Kuga;Ryo Nakamura;Takeshi Matsuya;Y. Sekiya
中科院分区:
其他
文献类型:
--
作者:
Yohei Kuga;Ryo Nakamura;Takeshi Matsuya;Y. Sekiya

文献摘要

相似文献

数据通信的可观测性对于通信系统的原型设计、开发和优化总是至关重要的。然而,尽管作为智能NIC、NVMe和加速器等新兴外围设备的关键组件,观察在PCI Express(PCIe)链路中流动的交易仍然具有挑战性。为了在PCIe上提供实用的可观察性和高效的PCIe设备原型,我们提出了NetTLP,一个可以与硬件根联合体交互的软件PCIe设备开发平台。在NetTLP平台上,IP网络堆栈之上的软件PCIe设备可以通过以太网链路、称为NetTLP适配器的以太网和PCIe网桥以及PCIe链路向硬件根联合体或其他设备发送和接收事务层包(TLP)。本文描述了NetTLP平台及其实现:NetTLP适配器和PCIe事务层的软件实现LibTLP。此外,本文还通过以下三个使用案例演示了NetTLP的实用性:(1)观察从四个商业PCIe设备发送的TLP,(2)为硬件根联合体执行实际NIC的400 LoC软件以太网卡实施,以及(3)物理内存自检。
Observability on data communication is always essential for prototyping, developing, and optimizing communication systems. However, it is still challenging to observe transactions flowing inside PCI Express (PCIe) links despite them being a key component for emerging peripherals such as smart NICs, NVMe, and accelerators. To offer the practical observability on PCIe and for productively prototyping PCIe devices, we propose NetTLP, a development platform for software PCIe devices that can interact with hardware root complexes. On the NetTLP platform, software PCIe devices on top of IP network stacks can send and receive Transaction Layer Packets (TLPs) to and from hardware root complexes or other devices through Ethernet links, an Ethernet and PCIe bridge called a NetTLP adapter, and PCIe links. This paper describes the NetTLP platform and its implementation: the NetTLP adapter and LibTLP, which is a software implementation of the PCIe transaction layer. Moreover, this paper demonstrates the usefulness of NetTLP through three use cases: (1) observing TLPs sent from four commercial PCIe devices, (2) 400 LoC software Ethernet NIC implementation that performs an actual NIC for a hardware root complex, and (3) physical memory introspection.