论文部分内容阅读
网络规模和性能的迅速增长,要求当前和未来的网络设备具备线速和智能处理能力的同时,又需要高灵活性。通用CPU和专用集成电路(ASIC)已不能同时满足这些要求。网络处理器通过良好的体系结构设计和专门针对网络处理部件的优化,为上层提供了一个可编程控制的环境,很好地解决了硬件加速和软件可扩展的折衷问题。网络处理器被认为是推动下一代网络发展的核心设备。同时,网络信息安全的发展要求路由器等设备能够支持基于策略的路由、防火墙、入侵检测等功能,实现这些功能的关键是包分类技术。包分类算法作为包分类技术的核心,其性能对网络的时延和吞吐量有决定性的影响。本文以网络处理器为硬件核心,结合提出的并行包分类算法,设计和实现了一个包分类引擎系统。主要工作包括:1、在ABV算法基础上,提出了基于分类域聚集的A2BV包分类算法。该算法通过对现有策略库的统计分析,结合ABV算法的并行思想,在对分类规则进行维数压缩后,再“聚集”规则位图,使并行分类查找由原来的五维压缩为三维。从而降低了ABV算法的空间复杂度,提高了查找速度,同时更适合用网络处理器来实现。2、以IXP2400为硬件核心,运用A2BV算法设计和实现了一个高速包分类引擎系统。文章分析了IXP2400的硬件体系架构,基于Intel IXA框架提出了实现包分类引擎系统的软件架构和硬件架构,并给出了软件架构中各功能模块的详细设计及性能分析。同时根据A2BV算法的并行性要求,对IXP2400的微引擎和存储资源分配作了合理的规划。3、针对A2BV算法实现过程中产生的存储器访问延迟进行了优化。通过对IXP2400中指令流水线和存储器访问指令的分析,在存储器访问的延迟内插入其它并行微码指令,填补了工作线程在这段时间内的闲置,减少了微引擎中空闲时钟周期数,进一步提高了整个系统的功能。