论文部分内容阅读
随着网络技术的飞速发展,基于网络平台的应用和服务越来越普遍,电子信箱、搜索引擎、电子商务等使得人类的生活方式发生了巨大的改变,网络为人们提供了一种快捷、便利的交流手段,将整个世界紧密的联系在一起。同时,网络应用的增加,使得数据传输量成倍的增加,网络路由设备的传输任务也日益增加,网络设备的更新很难满足日益增长的数据传输量的要求。在这种情况下,网络编码技术应运而生。网络编码技术打破了传统网络中节点简单的接收、存储、转发模式,允许节点对数据做编码处理,并通过网络多播技术传输到目的节点,目的节点接收到编码后的数据,经过译码处理后可以得到原始数据。经证明,网络编码可以使多播传输实现理论上的最大传输容量,从而提高网络带宽的利用率和吞吐量。网络编码技术的研究,有着很大的现实意义,并成为近年的热点。网络处理器是用于网络传输的专用处理器,具有功耗低、处理速度快、并行度高的优点。Intel的IXP系列网络处理器具有多核多线程的架构,其中IXP2850网络处理器具有16个微引擎,每个微引擎有8个硬件线程,可以达到10 Gbps的传输速度。Netronome公司在IXP2850处理器的基础上推出了新一代网络处理器NFP3240,将微引擎升级到40个,并扩展了网络接口,使得NFP3240可以达到40Gbps的传输速度。本文将网络编码技术实现在NFP3240网络处理器上,并做了大量优化工作。本文针对编码过程的特点和NFP3240网络处理器的硬件特性,设计并实现了基于行划分的编码算法,观察到访存操作对网络处理器编码性能的影响后,本文提出了基于cluster local scratchpad的数据预取算法,并获得了超过28MB/s的吞吐量。本文还充分利用了网络处理器流水线处理的特点,利用微引擎之间的寄存器通道传递数据,实现了行优先的流水线编码算法和列优先的流水线编码算法,两种算法分别达到了21.65MB/s和33.88MB/s的最大吞吐量。本文的主要贡献在于将网络编码技术在网络处理器上实现和优化,并根据网络处理器的流水线特性,提出了几种编码算法。从实验结果得出结论,列优先的流水线编码算法,充分利用了网络处理器的流水线通道,将访存操作降低到最少,是最适合在网络处理器上应用的编码算法。