论文部分内容阅读
组播作为一种高效网络数据传送技术,已经在各种宽带应用领域得到广泛应用。目前,组播主干网的核心路由器速率已经达到2.5Gbps~10Gbps,这一速率要求核心路由器每秒能够转发几百万乃至上千万个以上的分组。分组转发的重要一步就是查找路由表,因此快速的路由查找算法是实现高速分组转发的关键.
本文根据组播路由转发的特点,设计出一种基于网络处理器(Network Processor Unit,NPU)的聚合路由并行查找的算法,并在多核多线程体系结构IntelIXP2800 NPU平台上进行编程实现,达到了OC-192的线速转发性能。
组播路由查找是基于(组播组G,组播源S)二元组进行的,与基于目的地址查找的单播路由相比更为复杂。同时未来报文的处理对算法提出了更高的性能需求。基于软件实现的查找算法虽然具有设计灵活等特点,但查找性能低,而基于硬件实现的查找算法又存在开发周期长、成本高和功耗大等问题。本文采用[30]中位图映射的设计思想将二维查找转化为一维查找,依据组播路由的实际应用背景,设计出基于IXP2800体系结构的组播聚合路由转发查找算法,克服了采用CAM/TCAM等硬件查找带来的成本高和对组播支持规模的限制。
IXP2800为Intel第二代多核多线程体系结构网络处理器,根据NPU的特性,本文设计了一种多处理器多线程可并行查找的组播路由算法。为研究算法的性能,分两组不同前缀分布特征、分为500个和1000个组播组地址、每个组播组中分别包含不大于6个和不大于20个组播聚合源地址,8种组播路由表转发表的情况,对其在IXP2800上进行性能测试。实验在Intel IXP2800网络处理上通过优化配置等方法可满足OC-192线速转发的性能。
基于多核多线程体系结构的NPU编程是一项具有挑战性的工作,通过研究并行算法设计和体系结构映射之间的关系,在网络处理器上高效实现了并行组播路由查找算法。本文着重叙述了在这种多核多线程结构上设计实现网络处理程序和算法的五个关键问题:指令选择、数据分配、任务切分、长延迟隐藏和线程同步,并以并行组播路由查找算法为例阐述了五个技术在网络处理器上设计高性能算法和应用程序以及在多核多线程体系结构上开发线程级并行(Thread LevelParallelism,TLP)的使用方法。虽然这些技术是基于Intel IXP2800 网络处理器的,但同样适用于其它网络处理器开发。