论文部分内容阅读
随着3G的到来,网络越来越明显的呈现出宽带化和综合化的趋势。新一代网络采用开放的网络构架体系,承载包括话音,数据和多媒体等各种综合业务。这就要求网络处理器具备完全的可编程能力,以达到线速处理。但是当前,网络处理器的处理速度的增长远远赶不上网络流量和传输宽带的增长,因此在网络处理器中采用并行组织结构来提高性能。
网络处理器是典型的多RICS内核的并行实时处理结构,担负着数据包的处理和网络带宽管理等实时任务。在系统结构上,网络处理器一般由一个通用处理器和多个并行或流水的数据包处理微引擎组成,每个微处理引擎内部支持多个线程。如何在多个微引擎上进行有效的资源分配和调度以提高系统吞吐量、降低数据包时延和应用程序开发时间、保证系统服务质量要求是当前网络处理器研究的一个热点问题。
本项目采用的是Intel公司的IXP2850开发板,本文的研究是建立在IXP2850中的微引擎(ME)上,设计中参考了Intel IXA可移植框架,在微引擎上通过编写微码(Micro-code)完成快通道的数据包转发。设计时本文把数据的处理任务划分成了7个功能模块,充分利用了IXP2850中的存储器资源,使用了不同的编程模型和并行技术,从而使其处理速度达到10Gbit。
数据包在处理模块中,由于分配策略会影响网络处理器IXP2850的处理性能,本文提出了基于Hash动态负载负载均衡算法。将数据包与微引擎间建立映射关系,并将映射关系保存在哈希表中。在算法中,增加了负载反馈回路监控微引擎的负载状况,当反馈的信息表明微引擎的利用率超过触发值时,通过动态调整使得微引擎的利用率负载均衡。