论文部分内容阅读
随着网络带宽的增长以及各种应用不断涌现,网络处理器(Network Processor)作为一种采用并行可编程结构的解决方案,能够同时提供高性能和可编程能力,得到了越来越多的重视和应用。网络处理器通常采用多个同时运行的可编程的处理单元(Processing Element, PE)来取得极高的吞吐率和扩展升级能力。处理单元的微结构以及它们的拓扑组织决定了网络处理器的性能,同时也很大程度上决定了网络处理器的编程模型。本文主要研究了网络处理器中处理单元的设计和实现。通过对当前网络应用进行分析,针对网络应用的特征和硬件资源的约束选择了多个处理单元进行并行多处理的拓扑结构,设计了简洁的处理单元,并采用ASIP(Application Specific InstructionProcessor,专用指令集处理器)流程进行了原型实现和验证。同时对FPGA(FieldProgrammable Gate Array,现场可编程门阵列)以及ASIC(Application Specific IntegratedCircuits,专用集成电路)实现的硬件开销进行了分析。最后采用部分针对网络处理器的测试基准程序进行了初步的性能评估。本文设计的处理单元有以下技术特点:1)采用了MIPS I(Microprocessor withoutInterlocked Pipeline Stages,无互锁流水级微处理器)指令集,针对网络处理需求进行了裁剪,削减了部分硬件开销较大的算术逻辑运算指令以及功能部件,保持了处理单元的简洁;2)设计了类似于MIPS R2000/3000的5级流水结构,实现了流水级互锁以及气泡挤压等功能,方便了对长延迟操作进行扩展支持;3)提出了一种共享指令存贮机制,由多个处理单元共享全局多体交叉伪多端口和局部双端口,降低了冲突的概率,提高了取指带宽;4)加入了和MAC(Media Access Controller)控制器、共享存贮池、ScratchPad等部件的接口,增加了和其它处理单元进行通信同步的机制。采用Verilog HDL完成RTL(Register Transfer Level,寄存器传输级)设计之后,我们采用FPGA进行了原型验证。单个处理单元在Xilinx的2VP30平台上占用1680个4输入LUT(Look-Up Table,查找表),运行频率为86.8 MHz;采用4个处理单元构成的网络处理器原型占用300万系统门的FPGA上90%的逻辑资源,运行频率可达66.7 MHz。同时我们还对ASIC实现的开销进行了初步评估,采用UMC .18μm标准单元库进行实现,综合后频率可达350 MHz,占用面积为0.213 mm2。在片上集成18个这样的处理单元即可提供OC-48的处理能力,满足未来高速边沿汇聚的需求。原型验证的结果表明我们提出的处理单元结构简洁,消耗硬件资源较少,同时能够达到较高的运行频率,适合于采用大量处理单元的多处理结构,可以为高速的深度分组处理提供充足的处理能力。