- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
处理引擎结构
高性能网络处理器的TCP/IP并行分析
胡向辉S陈靖S李新S郭燕S{xhhu,holddreams,xinxinol,guoyanhw }@
摘 要 虽然当前的网络处理器的结构设计各不相同,随着网络技术的发展,网络处理器必将成为下一代网络的核心技术。但是网络设备的协议处理能力和网络线路带宽速度之间的差距越来越大,这就需要提高网络设备的诸如TCP/IP等协议的处理能力。本文从网络处理器的硬件体系结构和TCP/IP协议两个方面出发,探讨如何通过改善网络处理器的体系结构和TCP/IP协议并行,大幅度的提高网络处理器的协议处理吞吐能力。
关键字 网络处理器, TCP/IP,多线程, ILP, 并行, 流水线
引 言
网络应用的飞速发展和对线速智能化处理的需求导致了可编程网络处理器的出现,以及蓬勃发展。可编程的网络处理器不但提供了线速处理数据分组的高性能的硬件功能,同时还具备极大的系统灵活性。
但是随着网络系统的带宽成倍的不断提高,目前已经出现了10Gbps数量级的高速网络,100Gbps数量级的更高速网络已处在研究阶段,网络应用程序的性能瓶颈就从原来较低的传输媒体带宽这一因素,逐渐的转移到了主机和以交换机,路由器等网络设备为代表的传输设备上来。不但如此,可用的网络带宽和NPU计算能力,内存系统带宽之间的速度还在不断的扩大。在过去的10年中,由于通信技术的高速发展,物理层的传输速度呈指数级增长,而且将继续以每年4倍的速度增长,这一增长速度远远的超过了处理器性能的增长速度,从而导致处理器速度和传输媒体带宽之间的速度越来越大。
为了维持越来越快的网络带宽,对网络处理器提出了更高的要求,比如在10Gbps线路的条件下,以典型的64字节TCP数据分组为例,网络处理器必须在51.2ns内处理完分组并将分组传送到网络接口上,根据相关的统计数据,对于RISC处理器来说,处理这样的一个TCP数据分组至少需要1600条指令,若我们采用一个目前最快的1.5GHz的RISC处理器,假设一个时钟周期可以执行一条指令,则总共需要1067ns才能处理完成,而这还只考虑了最关键的协议通路处理,其它诸如TCP连接建立,拆除,网络处理器访存延迟以及上层应用程序响应延迟等都未考虑在内。即使考虑1Gbps的线路,目前最快的RISC处理器所需要的处理时间也大于线路所要求的处理时间。
所以,很明显可以看出,必须通过其它的方法提高网络处理器的协议处理速度,满足高带宽网络的要求。
本文其余的部分是如下组织的:第2小节分析网络处理器处理引擎结构对协议处理速度的影响;第3小节介绍硬件多线程技术和线程切换;第4小节分析网络处理器内存系统和协议处理速度之间的关系;第5小节性能分析部分,分析了TCP/IP协议的分组处理和指令级并行,多线程之间的关系;第6小节得出我们的结论。
需要说明的一点是,由于项目申请中提到的采用Intel IXP 2400模拟器进行模拟的前提是掌握IXP 2400的汇编语言开发平台,工作量大大超出了我们当初的设想,所以在本文中我们采用了理论分析的方法,也直接引用了Architectural analysis and instruction-set optimization for design of network protocol processors一文中的部分实验结果。
处理引擎结构
网路处理器的内核可以分为两类,一种是具有一般运算能力和指令存储能力的处理单元PE,另外一种是能够完成特定处理任务的功能单元,从体协结构和编程的角度来看,这两类内核可以分为两种类型:并行处理和流水线。如下图所示:
图1 并行处理引擎结构
并行处理的网络处理器中的PE一般基于RISC体系结构,扩展了一些适合分组处理的特别指令,每个PE都具有相同的结构,可以完成相似的任务,多个PE之间可以并行执行,这种PE可以理解为通用的处理引擎,多个PE可以集成在一个芯片上面。本文中选用的Intel IXP2400网络处理器平台就采用的这种体系结构。
图2 流水线引擎结构
流水线结构的网络处理器中,分组处理任务被划分成多个级,每个级处理特定的一类任务,每个级的任务可以由一个或者多个PE完成,这些PE针对这类任务进行了优化,这下PE称为面向处理的引擎。多个引擎之间通过流水线的方式组织在一起完成分组的处理任务。
下面通过一个例子,比较两种体系机构的差别。假设有一个10Gbps的线路,数据分组的大小为50bytes,每40ns网络处理器收到一个新的分组,容易计算出网络处理器的处理速度必须达到25Mpps才能使10Gbps的线路的使用率保持充分的高。此外假设两者体系机构的网络处理器都有16个处理引擎。
并行处理模
文档评论(0)