论文部分内容阅读
传统的网络设备大多采用基于GPP或ASIC的嵌入式处理器。随着网络流量的迅速增长和网络业务的日益多样,它们在性能或灵活性上已难以满足应用需要。在这种背景下,兼具高速处理能力和灵活编程能力的网络处理器(NP,Network Processor)为下一代通信产品的设计提供了一种灵活的解决方案。目前,网络应用系统的设计越来越多地采用高速、灵活的网络处理器。 网络处理器是典型的多RISC内核的并行实时处理结构,担负着数据包的处理和网络带宽管理等实时任务。在系统结构上,NP一般由一个通用处理器和多个并行或流水的数据包处理引擎(PE,Processing Engine)组成,每个处理引擎内部支持多个线程。如何在多个PE上进行有效的资源分配和调度以提高系统吞吐量、降低数据包时延和应用程序开发时间、保证系统服务质量(QoS,Qualityof Service)要求是当前网络处理器研究的一个热点问题。 论文以863计划(国家高科技技术研究发展计划)资助课题《面向网络处理器结构的新型操作系统核心技术》为基础,研究了网络处理器软件开发平台中有关资源调度的问题。主要涉及两个方面: 1.对于流水组织模式的网络处理器,其处理任务到各个PE的分配目前主要由手工完成,开发效率低且对开发人员素质要求较高,形成产品开发的瓶颈。为解决这一问题,本文首先提出一种任务到PE的自动分配方法。给定划分好的应用任务集和处理流水线级数,应用该方法可以迅速得到近似最优的分配方案。 2.网络服务形式的日益多样使得用户对于QoS的要求越来越高。网络设备的功能由传统的存储-转发模式到存储-处理-转发模式的转换,使得QoS的保证不再仅仅限于网络带宽的分配,还要求处理资源按照QoS的要求进行分配。因此,本文研究了链路调度和多PE调度问题,给出有效的调度策略,保证调度公平、时延等特性。 论文的硬件开发环境使用Intel IXP2400网络处理器开发平台,开发板是RADISYS公司开发的ENP-2611,它是一个完整的可设计开发的设备,具有非常灵活的可编程性。软件开发平台包括基于XScale的开发工具链(Linux GNU)和微代码开发工具(Intel为IXP2400提供的Developer W0rkbench)。