论文部分内容阅读
传统的网络设备大多采用基于GPP或ASIC的嵌入式处理器。随着网络流量的迅速增长和网络业务的多样化,它们在性能或灵活性上已难以满足应用需要。为此,一种并行可编程的网络处理器(NP,NetworkProcessor)被引入到路由器(交换机)的处理层面。它基于ASIP技术并对网络处理程序进行了优化,同时具有软件的灵活性和硬件的高性能。目前,网络应用系统的设计越来越多地采用高速、灵活的网络处理器。
网络处理器是典型的多RISC内核的并行实时处理结构,担负着数据包的处理和网络带宽管理等实时任务。在系统结构上,网络处理器一般由一个通用处理器和多个并行或流水的数据包处理引擎(PE,ProcessingEngine)组成,每个处理引擎内部支持多个线程,且采用了流水线技术来提高处理能力。这样,线程切换时流水线的清除与重载将占用一定的系统周期,影响系统性能。如何消除或者减少这部分的开销,值得我们研究。同时,如何配置PE数目、PE线程数目,使网络处理器的设计在系统性能和芯片复杂度以及利用率之间做一个比较好的均衡也是值得研究的一个问题。此外,线程间的调度和使用策略对系统公平性和利用率起着很重要的作用,而目前的设计都采用了简单的被动线程调度的方式,这种方式的处理器利用率受外部负载的影响较大,这也是目前网络处理器研究中的一大热点。
本文的主要工作和特色如下:
1.研究了网络处理器中上下文切换时因流水线造成的影响,提出了在流水线上增加辅助寄存器的方法,有效降低上下文切换时的影响;
2.研究了报文处理模型,提出了一个具有一般意义的报文处理时间模型,并用C语言实现了一个多PE结构网络处理器的模拟器;
3.研究了网络处理器中PE数目与系统的吞吐率、协处理器利用率、PE利用率之间的约束关系;给出了微引擎中线程数目与系统的吞吐率、线程利用率、PE线程利用率之间的约束关系;
4.提出了主动线程调度的思想,并设计实现了一种主动线程调度策略。