Abu-Nimeh Faisal T, Choong Woon-Seng
Lawrence Berkeley National Laboratory, Berkeley, CA 94720 USA.
IEEE Trans Radiat Plasma Med Sci. 2017 Mar;1(2):121-127. doi: 10.1109/TNS.2017.2656085. Epub 2017 Jan 20.
Link efficiency, data integrity, and continuity for high-throughput and real-time systems is crucial. Most of these applications require specialized hardware and operating systems as well as extensive tuning in order to achieve high efficiency. Here, we present an implementation of gigabit Ethernet data streaming which can achieve 99.26% link efficiency while maintaining no packet losses. The design and implementation are built on OpenPET, an opensource data acquisition platform for nuclear medical imaging, where (a) a crate hosting multiple OpenPET detector boards uses a User Datagram Protocol over Internet Protocol (UDP/IP) Ethernet soft-core, that is capable of understanding PAUSE frames, to stream data out to a computer workstation; (b) the receiving computer uses Netmap to allow the processing software (i.e., user space), which is written in Python, to directly receive and manage the network card's ring buffers, bypassing the operating system kernel's networking stack; and
对于高吞吐量和实时系统而言,链路效率、数据完整性和连续性至关重要。这些应用中的大多数都需要专用硬件和操作系统以及大量调优才能实现高效率。在此,我们展示了一种千兆以太网数据流的实现方式,它可以在不丢包的情况下实现99.26%的链路效率。该设计和实现基于OpenPET构建,OpenPET是一个用于核医学成像的开源数据采集平台,其中:(a) 一个容纳多个OpenPET探测器板的机箱使用基于互联网协议的用户数据报协议(UDP/IP)以太网软核,该软核能够理解PAUSE帧,将数据流出到计算机工作站;(b) 接收计算机使用Netmap允许用Python编写的处理软件(即用户空间)直接接收和管理网卡的环形缓冲区,绕过操作系统内核的网络堆栈;并且