论文部分内容阅读
随着网络带宽的飞速增长以及各种应用不断涌现,同时具有高性能和可编程能力的网络处理器,得到了越来越多的重视和应用.网络处理器通常采用多个可编程的处理引擎以及专门协处理器进行网络数据处理,通过它们的并行处理以获得极高的吞吐率和扩展升级能力.搜索引擎(Search Engine,SE)是为加速网络处理器中的搜索操作而专门设计的一种硬件,它是网络处理器中一个非常关键的部件,设计的优劣直接关系到网络处理器的性能.处理引擎(ProcessingEngine,PE)是网络处理器的核心部件之一,是其可编程能力的主要体现者.
本文对网络处理器中的搜索引擎和处理引擎的设计、验证和评估等进行了较深入地研究,提出了一种基于Patricia树的搜索和更新算法,设计了一款基于该算法的搜索引擎;设计了一种兼容MIPSI指令集,中断系统兼容MIPS R3000的RISC处理引擎,并对它们进行了FPGA原型实现和评估分析.本文的主要贡献如下:1.提出了一种基于Patricia树的搜索和更新所需的额外空间复杂度为O(1)的算法,并以该算法为基础设计了一款简洁高效的搜索引擎.该搜索引擎采用硬件搜索、软件维护的策略,用较少的硬件对最常用的搜索操作进行加速,对于不常用但却复杂的操作如搜索树的建立、添加和删除等,则通过运行在处理引擎上的软件程序来完成,在资源消耗和性能之间实现了很好的折中.该搜索引擎可进行全匹配(FM)和最长前缀匹配(LPM)两种搜索机制,软件程序可以根据它们实现更加复杂的搜索机制.2.研究并实现了一种RISC结构的处理引擎,它兼容MIPS I指令集,中断系统兼容MIPS R3000处理器.该处理引擎采用六级流水结构,支持软件例外和硬件中断:包括分支预测器和存储器保护单元等可配置部件;包含了与协处理器的接口以及与其它处理引擎进行通信同步的机制.该处理引擎实现时采用模块化的描述,增加了流水线互锁以及气泡挤压等功能,提供一种良好的机制对处理器的指令集进行扩展,使得对它进行新的指令扩展变得很容易.3.在对搜索引擎和处理引擎的设计进行充分的验证之后,以它们为基础设计了一款用于边缘接入网络处理的网络处理器原型系统.该原型系统在Xifinx公司的XC2VP30 FPGA上可以稳定的运行在50 MHz的频率下,可运行包括UIP协议栈、μC/OS Ⅱ操作系统、远程控制示例、1000位的π计算程序和Dhrystone基准程序在内的大量软件程序.
原型验证的结果表明本文提出的处理引擎和搜索引擎结构简洁,消耗硬件资源较少,同时能够达到较高的处理性能,可以为高速的边缘网络处理提供充足的处理能力.