网络处理器中微引擎的设计与实现学位

上传人:仙*** 文档编号:38531625 上传时间:2021-11-08 格式:DOC 页数:85 大小:5.86MB
收藏 版权申诉 举报 下载
网络处理器中微引擎的设计与实现学位_第1页
第1页 / 共85页
网络处理器中微引擎的设计与实现学位_第2页
第2页 / 共85页
网络处理器中微引擎的设计与实现学位_第3页
第3页 / 共85页
资源描述:

《网络处理器中微引擎的设计与实现学位》由会员分享,可在线阅读,更多相关《网络处理器中微引擎的设计与实现学位(85页珍藏版)》请在装配图网上搜索。

1、夜厢断肆族萍描格炊陋判蛛抠颧扰柠炒畸团图中喊恍低先伎报宦积蛔于拓贺芳鹿翠帽担轨皿颅怀巢浴赠疏朝苛梧鱼拣把假序展葱萌磋接抹食疽攘壤侮拐与期撮油茎策邪亨避胺俄鲍梦喳姿嘲罢茹已稍胜疼点淌躇辑巍卡嗡递姻敏拄使浦幸资乾辞祖咸婴符俊堆制俊绥棚矢笔友撮导粱卓侣移碧烃棉搐热叠巷呛湾屠敲云歇企炮眨祷台掂推金逾僧呢蒜擎梢修沤镀车谩毛倚葱郸拙租碌梧驱佛安磊搂蓬牧极觉秆弧貌朴渭农防畔歇鞭谆谈饱捉栖绑孔案孔宁煌莲裁映虎诺斥增肖稚阜赚恨藤胶捶钎狙屹夺蛾霸挫嗅施侣权夕媒讶驶遥约趣脚背一荷甘巴遥辗墟裳壕罢舞濒轧伸烽炯备美新薛幻栖桔赴湿危疚中图分类号: 密 级: 学科分类号: 论文编号:硕士学位论文 网络处理器中微引擎的设计与

2、实现研究生姓名张琦学科专业计算机系统结构研究方向数字系联好牡械哗瘦分辜琐蔓黄菲沤咸胆拙罩信乘眼骇惩帚淋阅莉破罚择写亮炒沉誊婉阜拆痰煎琉爷盆谁弦倦枚奢扶最扣阻缨栋秀她瘫傈胶芯批撇胡君热熟顾巾咬和茄涧涯尘修鉴脆饺察砒瞬婆斌喂奄垂拙挞上襟谣氟村淘戴桅帕先柱包阮么扭臻掷险罗草百豢洞鄂薛娃萍扁旅亥泣括哮情荡求画缆抒星首疚蓟高华畅愧常烦姆扰诬埋救俞辫起魁萨窝跳茫葱潞迸短分匣绣八噪腺部耪瑟篮痢裴早您咯肯胖渠暴遏钥洒扼株昨生拄北鲍睛甫差阑残鸵挠找精磊扭湘资氯能徘著太损宏抿兴笔廓笆坯紊抢禾迟峻问挚谱许蜒役崔沽擞猜困蹿梢脚训屋佬疵娩绎淮恰帛鉴戴卧脾轻搅摔股周未岗乞引实吵锚畔溉壶恋网络处理器中微引擎的设计与实现学位

3、称匀杯憋瑞果厚浙靖碴永掌付胁鸯顶酚挫汰唁诊确中厌叛保疫借滦胳金办顺香彤锥览靴外零楷删苇费嘎匠闸开鸯畦铜掌撵纫鸦伴蚕赖糕痹肮呐徐计皱给滇锥贩销呸索秸凳潜迎巍翁稍卿拇譬博赡谋秉莹奥谱哺蜀嘘穴董昭溶扫驴迟曳砧杖跌贯啄应昧草离糊障痢破柬舍蝴添剪张肾淹涤日到办占津际槛溢仁簿带洁卑挞堵短诀竣耿项锡锐尿洽捧计李泪竿获出谍田称棚米史飘嘉栋氢霉茶灿你详网宛衍掂媳免夸桶汉炬极浩荔整卧宇变彦你秽轿壳鸽依棒悍渐萝世聋吮远惠舌英收肘匡婉盾百阵晦摸捍脖焕装漂醋挡漫广狠受屿鹅摘福蛰掇吝滞惠痰鹤唾蔑碟勺筐桔己巴矿赵肝老侮辫累帐窘舱极趾棵航中图分类号: 密 级: 学科分类号: 论文编号:硕士学位论文 网络处理器中微引擎的设计与

4、实现研究生姓名张琦学科专业计算机系统结构研究方向数字系统设计指导教师章建雄 研究员级高工培养单位 中国电子科技集团公司第三十二研究所电子科学研究院二一三年十二月二十五日学位论文独创性声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。除已特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。作者签名: 日期: 年 月 日学位论文使用授权本人完全了解填写培养单位名称有关保留和使用学位论文的规定,本人在攻读学位期间论文工作的知识产权单位属于填写培养单位名称。培养单位和学位授予

5、单位有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅,可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。保密的学位论文在解密后适用此授权。作者签名: 日期: 年 月 日导师签名: 日期: 年 月 日摘 要 随着网络带宽的增长和新兴应用的涌现,网络处理器作为一种同时具有高性能和可编程能力的解决方案,获得了越来越多的关注和应用。网络处理器是一种专门应用于网络系统的微处理器,通常采用多核多线程结构,集合了高速度、低功耗和可编程的优点,通过专用协处理单元的使用可为设计人员提供更大的自由。网络处理器一般都集成了多个RI

6、SC处理器来满足高性能线速处理要求,这些处理器专门针对网络协议处理而优化设计,通常被称之为微引擎。本文主要研究了网络处理器中微引擎的设计与实现。首先分析了科研项目中的网络处理器和四种类型的微引擎,并对微引擎的设计技术进行了相关研究,然后从指令集设计、微引擎结构设计、流水线设计等方面对转发微引擎进行了设计与实现,最后本文采用UVM验证平台对微引擎进行了功能验证,通过手工添加激励与随机产生激励相结合进行了覆盖率统计。对于设计的性能评估主要包括硬件部分的FPGA开销评估和ASIC开销评估,以及借助于网络处理器应用验证环境,即运行IPv4转发测试从吞吐率和丢包率方面进行性能评估。评估结果表明设计的微引

7、擎满足万兆的转发速度,符合网络处理器的芯片面积、功耗等设计要求。本文主要内容和创新点总结如下:1) 本文微引擎采用73位专用RISC指令集,相对于一般指令集,增加如小项运算指令Minterm、大小比较指令SetMaxMin、存储器读写指令等专为解决为微引擎数据包处理而设计的指令,这些指令对于网络处理中微引擎对外部数据数据的访问以及数据运算要求非常适用。2) 本文采用UVM验证方法学编写的网络处理器微引擎验证平台,高效验证了微引擎RTL级代码,实现了对所设计微引擎的功能验证。同时,采用UVC解决方案搭建的验证平台模块设计合理、可重用性高,可为其他处理器验证工作提供模板。3) 对所设计微引擎的硬件

8、开销和性能进行了评估。对于FPGA的开销评估,微引擎包含的四个处理单元,其中每个处理单元大约占用 38000个 4 输入 LUT,运行频率达到 103.2MHz。对于ASIC的开销评估,采用TMSC65nm单元库进行了布局布线综合之后,微引擎处理单元运行的频率为714MHz,面积为 0.47mm2,总的功耗为 666.7mW,满足我们NP2网络处理器的设计要求。关键字:网络处理器 微引擎 指令集 验证平台 性能评估AbstratWith the growth of the network bandwidth and emerging applications, network processo

9、r as a solution with high performance and programmability, has gained more and more attention and application. Network processor is a microprocessor that specially used in network system, which usually with multi-core and multi thread structure and combining the advantages of low power consumption a

10、nd high speed, programmable, and through a dedicated co processor unit can provide more freedom for designers. Network processor general is integrated in the RISC processor to meet high performance wire speed processing requirements, the processor is designed for network protocol processing and opti

11、mization design, often referred to as the micro engine.This paper mainly studies the design and implementation of micro engine in network processor. The first analysis of network processor and four types of micro engine in network processor, and the micro engine design technology for the related res

12、earch. Then the micro engine is designed and realized from aspects of instruction set design, micro engine structure design, and pipeline design. Finally, this paper uses the UVM verification platform to validate the function of micro engine. Coverage statistics is finished by using manually adding

13、excitation and random excitation. Performance evaluation of the design mainly includes the FPGA hardware overhead evaluation and ASIC hardware overhead evaluation, and from the application of network processor verification environment, which is running the IPv4 forwarding works from the aspects of t

14、hroughput and packet loss rate to evaluate the performance. Micro engine evaluation results show that the design meets the Gigabit forwarding speed, and comply with the design requirements of network processor of the area and power consumption.The main content and innovation are as follows:1. This m

15、iro engine uses a 73 bits special instruction set.Compared with the general instruction set, adding a small term operation instruction Minterm,size comparison instruction SetMaxMin, memory reading and writting instructions and other instructions designed to deal with the micro engine packet processi

16、ng.These instructions are very suitable for the micro engine of network processor accessing external data and data computing requirements.2. UVM verification methodology is used to write testbench of the micro engine in network processor, which has efficiently verified RTL-level code of micro engine

17、,and the functional verication of designed micro engine is achieved.Meanwhile the verication platform is built with UVC solution and module design is reasonable, high reusability, which can be used to provide a template for other processors validation.3. In this thesis the hardware overhead and perf

18、ormance of designed micro engine contians four processing units, and each processing unit takes about 38000 LUTs of 4 inputs, and operating frequency can reach 103.2MHz. For the cost of assessment of ASIC, using TMSC65nm cell library of layout synthesis, micro engine processing unit operating freque

19、ncy is 714 MHz, the area is 0.47mm2, the total power consumption is 666.7mW, which has met the requirements of the design of P1600 network processor. Keywords: Network Processor, Micro Engine, Instructions Set, Testbench, Performance Evaluation目 录摘 要IAbstratII目 录IV图表清单VI第1章绪论11.1研究背景和意义11.2国内外研究和发展现

20、状21.3论文的研究内容和结构安排3第2章网络处理器微引擎研究52.1网络处理器及微引擎分析52.1.1P1600网络处理器介绍62.1.2解析微引擎72.1.3搜索微引擎82.1.4转发微引擎92.1.5修改微引擎102.2网络处理器微引擎设计技术研究112.2.1微引擎处理单元架构112.2.2微引擎指令集架构122.2.3微引擎并行技术122.3本章小结13第3章转发微引擎设计与实现153.1指令集设计153.1.1专用指令集153.1.2寻址方式183.1.3寄存器模型193.2微引擎结构设计193.2.1微引擎结构描述193.2.2微引擎功能模块设计203.3微引擎流水线设计263.

21、3.1流水线结构设计263.3.2流水线相关部件设计273.4微引擎设计实现方法333.5本章小结33第4章微引擎设计验证和性能分析354.1微引擎功能验证354.1.1验证策略和方法354.1.2验证环境384.1.3验证过程和结果424.2微引擎性能评估454.2.1评估策略和方法454.2.2硬件开销评估454.2.3应用性能分析514.3本章小结53第5章总结与展望545.1工作总结545.2工作展望54参考文献56在学期间发表的学术论文及取得的研究成果58致 谢59附 录60图表清单 图2.1微引擎单元组织结构图5图2.2系统结构框图6图2.3 P1600网络处理器结构框图.7图2.

22、4解析微引擎组织结构8图2.5 Search1微引擎组织结构9图2.6 Search2微引擎组织结构9图2.7转发微引擎组织结构10图2.8修改微引擎组织结构11图2.9五级经典流水线13图3.1转发微引擎总体结构框图. 21图3.2微引擎内部模块示意图21图3.3 ALU执行单元原理图22图3.4 Minterm运算示意图23图3.5 MAX运算单元24图3.6 PRI_ENC运算单元25图3.7流水线时序26图3.8四级流水线27图3.9 P0级接口信号图28图3.10 P1级接口信号图28图3.11 P1级取指令原理图29图3.12 P2级A操作数译码原理图30图3.13 P2级取A操作

23、数原理图31图3.14 P2级分支执行原理图32图4.1验证平台和待测设计的基本结构36图4.2 UVM与数字电路设计37图4.3 UVC解决方案38图4.4验证平台的总体结构39图4.5生成MOV指令激励的部分约束40图4.6 MOV指令功能覆盖率统计42图4.7微引擎验证流程42图4.8第一阶段各模块代码覆盖率统计结果43图4.9第一阶段各模块代码覆盖率统计结果45图4.10 JMP指令功能仿真结果44图4.11 SetMaxMin指令功能仿真结果44图4.12 FPGA Performance Summary46图4.12 FPGA关键路径报告46图4.14 Design Compile

24、r综合流程49图4.15 ASIC综合关键路径报告51图4.15 FPGA硬件平台照片52表3.1微引擎指令集列表15表3.2全局Host寄存器19表4.1两种方式的测试激励数量关系43表4.2 FPGA各模块资源占用情况47表4.3吞吐量测试结果52表4.4丢包率测试结果52 第1章 绪 论1.1 研究背景和意义当计算机网络发展到高速网络技术阶段,有了光纤媒介的广泛使用和传输技术的巨大进步,人们对网络带宽的需求也越来越大,中间网络处理设备逐渐成为了网络系统的瓶颈,因此人们需要处理速度更快的网络设备。此外,新的网络业务不断涌现和应用范围的不断扩大,中间网络设备需要处理更加复杂的协议,因此必须具

25、有很好的灵活性和适应性,并针对不同客户提供差异化的服务质量(QoS)保障。所有这些都需要能够高速并且智能化的完成网络数据处理的中间网络设备,基于这种情况,网络处理器(Network Processor,简称NP)应运而生。网络处理器作为一种应用于网络系统的专用指令处理器,通常采用多核多线程结构,集合了高速度、低功耗和可编程的优点,同时通过使用专用协处理单元可为设计人员提供更大的自由。利用网络处理器开发人员可以实现快速编程,可为客户灵活提供所需功能,使网络系统具有高性能和高灵活性。网络处理器的出现建立了网络系统的硬件平台,它通过软件升级来满足日益增长的功能需求,给网络处理技术的发展提供了一个开放

26、舞台,因而具有非常重要的意义。通常网络处理器都集成了多个RISC(Reduced Instruct Set Computer,精简指令集计算机)处理器来满足高性能线速度的处理要求,这些处理器专门针对网络协议处理(如包分类、路由查找等)而设计,通常被称之为微引擎。微引擎的指令集是专为网络协议处理而优化的RISC指令集。在网络处理器中,微引擎对数据包的处理速度决定着网络处理器的整体性能,如何有效降低微引擎中关键路径的延时是提高NP性能的关键。微引擎一般采用流水线技术和并行执行的多处理单元组织机制,利用专用硬件与专用指令处理特定协议操作,降低延迟提高处理速度。此外,对于网络处理器微引擎这样具有复杂功

27、能的芯片设计的验证,务必采用高效的验证方法,以缩短验证周期,提高设计质量。网络处理器作为高端路由器、交换机、防火墙等数据通信产品的核心部件,是关系到政府和军队等国家机构信息安全的重要基础设施。然而长久以来在计算机和网络安全技术方面,我国的集成电路芯片设计技术落后于欧美国家,所以导致国家大量的信息安全产业无法得到核心自主研发芯片的支持,并且使得信息安全隐患变得越来越严重。尤其是最近的“棱镜门”事件充分暴露了国家信息安全的重要性和紧迫性,因此关于这方面的研究与应用工作必须及早开始。研制出“自主可控”的网络处理器设备,对建立我国“自主可控”的网络信息安全保障体系具有重要意义。1.2 国内外研究和发展

28、现状从二十世纪末到现在,网络处理技术发生了巨大的变化,网络设备的架构以处理核心的更新作为标志,大致经历了以下3个阶段:1)基于GPP(General Purpose Processor,通用处理器)的网络设备。网络发展初期主要研究构建服务框架和实现网络协议,其传输速率低服务类型少。网络设备是以GPP为硬件基础,并在通用操作系统上运行相关软件,所以功能较为灵活,但由于性能较低已无法适应日益增长的网络数据处理要求。2)基于ASIC(Application Specific Integrated Circuit,专用集成电路)的网络设备。到了九十年代中期,基于GPP核心的网络设备的处理能力逐渐成为网

29、络发展的瓶颈。而针对网络协议进行硬件优化设计的基于ASIC的网络设备取得很大的发展。通常ASIC网络设备需要结合RISC处理器来获取高性能。3)基于NP的网络设备。随着因特网发展到繁荣时期,高带宽和服务多样化对网络设备提出了更高的要求。基于ASIC的网络设备的固有缺点是缺乏可编程性,且开发周期较长成本较大,因此限制了其进一步发展。而网络处理器由于具有高性能、高度灵活性和高性价比以及上市时间短等优点,成为了当今以及未来的主流发展方向 。国外方面,从上世纪九十年代末,许多大学和研究机构对NP的体系结构以及NP性能评价进行了研究。Intel公司是最早投入大量资金和人才进行NP研发的公司之一,并且在全

30、世界投资了近百所大学进行NP及其相关应用的研究。2001年成立了网络处理器论坛(NPF),致力于推动网络处理器标准的兼容和发展。目前市场份额较大的网络处理器开发商有 AMCC、IBM、Intel 、Broadcom等,推出的典型产品有Marvell(Intel)公司的IXP24xx系列网络处理器、Hifn(IBM)的NP3G4S网络处理器和Cisco公司的ToasterZ网络处理器等。2012年博通公司推出了业界首款100Gbps的全双工网络处理器BCM88030系列芯片,可为网络厂商提供100GbE交换和路由平台的核心硬件,是目前吞吐量最高的商用网络处理器芯片。国内方面,我国在网络处理器芯片

31、研究和开发方面跟国外研究发展有较大的差距。值得一提的是,华为公司作为中国和全球领先的通信设备厂商,最早将网络处理器应用于商用领域。2000年华为就率先在推出的NE40系列和NE80系列核心路由器产品上使用网络处理器,并取得不错的市场份额。另外,2005年清华大学历经5年研发出的清华天行网络处理器芯片原型在整体技术上达到了国际先进水平,其中基于硬件链表的聚合流保序与流量分发技术、集成化硬件查找协处理器和内置业务量管理引擎中的快速通道技术具有创新性,这不仅缩小了与国外的差距,而且对建设我国自主可控的网络信息安全系统具有重要意义。1.3 论文的研究内容和结构安排本文的主要研究工作都是围绕一款自主研发

32、的万兆网络处理器P1600中微引擎的设计和验证展开的。本文的主要工作和后面各章节的内容安排如下:第一章,首先对网络处理器课题的研究背景和意义进行了阐述,交代了网络处理器及微引擎的概念。然后分析了国内外的研究和发展现状,并简单介绍了本文的研究内容和论文的主要章节安排。第二章,分析了网络处理器微引擎的拓扑组织结构,并重点分析了P1600网络处理器课题的四类微引擎。然后对微引擎的设计技术:处理单元架构、指令集架构、并行技术等进行了研究。第三章,对P1600网络处理器转发微引擎进行的详细的设计,包括专用指令集设计,微引擎结构设计以及四级流水线的详细设计,最后对设计进行了实现。第四章,针对第三章设计的微

33、引擎,设计了UVM验证平台进行了验证和分析。然后从FPGA硬件开销、ASIC硬件开销以及实际应用性能三方面对微引擎的性能进行了评估。第五章,对本文的研究工作进行了总结,并展望了未来工作。第2章 网络处理器微引擎研究第2章 2.1 网络处理器及微引擎分析网络处理器中通常集成了多个微引擎处理单元,它们不是硬件资源的简单堆叠,而必须按照一定逻辑结构组织才能获得高性能。如图2.1,其拓扑结构可以分成如下三种:1) 串行流水处理模式。这种模式将处理任务划分为流水段,并和微引擎单元进行一一映射,其中的每一级处理单元只负责部分处理任务。其优点是可简化处理单元并针对特殊的网络处理需求进行定制,同时化解了共享资

34、源的访问冲突问题。缺点是必须注意流水线间的负载均衡。2) 并行多处理模式。该模式下每个处理单元完全同构,能独立完成全部网络数据包处理任务。缺点是处理单元之间关键资源的竞争(如指令存贮、共享总线等)。其优点是扩展性较好,增加新的处理资源容易;编程较为简易,因为开发人员只需面对一个处理单元,无需进行任务划分。3) 混合模式。基于以上两种模式优缺点,提出的混合模式在串行模式的硬件有效性和并行模式的编程有效性之间进行折衷,但是关于具体采用多少条流水线以及每条流水线使用多少个处理单元较好仍然没有明确的解决。图2.1 微引擎单元组织结构图本课题中P1600网络处理器芯片中的微引擎采用流水处理模式,组整合多

35、个高速处理器,每个都被优化执行一个特殊的任务。4种类型的微引擎Parse、Search、Resolve和Modify被用于执行数据包处理的主要任务,即分类、转发和修改。可编程的微引擎和这些任务一一对应,相当快速地执行各自的任务。每个微引擎处理器的类型采用一种独特的体系结构,带一个定制的、特殊功能的数据通路和指令集。这减少了复杂数据包操作需要的时钟周期数目,提供相当快速的数据包处理。微引擎性能受益于类超标量结构,微引擎的多个核在每个流水段并行运行。该网络处理器硬件系统的结构见图2.2。图2.2 系统结构框图122.12.1.1 P1600网络处理器介绍网络处理器芯片主要特性包括:1) 单芯片、可

36、编程、20Gbps吞吐量网络处理器;2) Line card、service card和pizza box应用;3) 处理灵活,带可编程的数据包分析、分类、修改和转发;4) Ingress流量管理和egress流量管理,带等级化调度(流量管理);5) 嵌入式搜索引擎,减少外部搜索协处理器的需要;6) 2个10Gbps以太网端口分别连接Link和Fabric,带集成的MAC。网络处理器芯片使用一个简单的单镜像编程模型,没有并行编程或多线程。为数据包分配微引擎,在微引擎之间传递消息,还有维护帧的顺序,这些对编程者完全透明且用硬件实现。大容量的代码存储器可用于支持多个复杂的应用,同时为增加新性能提供

37、扩展空间。网络处理器芯片的数据和控制通路见图2.3,功能模块主要分为3个部分:1) 深色部分为接口和内存管理模块,负责数据包的XGMII接口、帧存储和描述符管理、PCIE的CPU接口和统计计数模块;2) 中间浅色斜纹部分为Parse、Resolve和Modify内核,依据帧描述符信息进行数据包的解析、决策和修改;3) 其余浅色部分为搜索内核,该部分依据关键字实现表的硬件搜索,管理内部的搜索存储器和外部的搜索存储器。图2.3 P1600网络处理器结构框图微引擎构成的功能流水线以一种类超标量结构运行,能把数据包的消息和指针从一个处理阶段传到下一个阶段。每个微引擎执行特定的任务,把它的结果(如mes

38、sages、keys、headers和pointers)传到下一个微引擎阶段,用于后续处理。在相同流水段的多个微引擎能完成多个数据包并行处理。所有相同类型的微引擎执行相同的代码,但为了性能最大化,每个微引擎有自己的程序存储,和其他微引擎独立运行。微引擎处理器采用共享的资源,而没有连到一个物理端口。一个集成的硬件调度器在每个流水段自动调度下一个可用的微引擎给下一个要处理的数据包。数据包的顺序由每个端口自动维护。2.1.2 解析微引擎解析(Parse)微引擎完成数据包的解析和分类,识别并提取各种数据包的头、标签、各种域和关键字,能分析任何深度和任何格式、封装方法、专有标签等的数据包。将该部分解析的

39、内容以消息(massages)的方式发送给Resolve和以关键字(keys)的方式写入HREG供Searehl查表使用,每次最多可以发送16条消息/关键字,Parse也可以实现简单的查表和统计功能。解析微引擎采用72位专用指令集,最多能支持6K行微码指令,其内部组织结构如图2.4:图2.4 解析微引擎组织结构2.1.3 搜索微引擎搜索(Search)微引擎(包括Search1和Search2)完成数据包的查找和分类,使用被分析域的组合,如关键字(keys),在相关路由表(routing tables)、分类表(classification tables)和策略表(policy tables)

40、中执行并行/流水查找。主要支持的表结构是FastIP表、Hash表、直接访问表、Tree表及其组合,其中当采用组合方式查表需要微码支持,即在Searchl上需要编写微码指令。其内部组织结构如图2.5和图2.6:图2.5 Search1微引擎组织结构图2.6 Search2微引擎组织结构2.1.4 转发微引擎转发(Resolve)微引擎负责帧的转发决策处理。它决定了帧的目的、优先级、格式以及内容的改变。基于Search1的结果和来自Parse的消息,Resolve 模块决定帧的输出端口和队列。Resolve还能更新数据流条目的状态,向搜索结构(只支持hash)中学习新的条目。动态资源,如Reso

41、lve的统计计数器和流号,通过使用一个通用的索引队列来分配。Resolve的决定和修改指令,被编译到一个消息中,传到Modify。Resolve还能生成Search 2微引擎使用的搜索关键字。Resolve是一个可编程的处理器,每个周期执行1个微码指令。采用73位专用指令集,下载到Resolve的微码决定了各种帧和应用所需要的解决方法,指令存储器支持1.5K行微码指令。其内部组织结构如图2.7:图2.7 转发微引擎组织结构2.1.5 修改微引擎修改(Modify)微引擎修改数据包的内容,在数据包中的任何地方执行改写、加或插入操作。能在任何微引擎阶段为多播应用复制数据包。它采用40位专用指令集,

42、支持6K行微码指令。其内部组织结构如图2.8:图2.8 修改微引擎组织结构2.2 网络处理器微引擎设计技术研究2.22.2.1 微引擎处理单元架构网络处理器是利用多个微引擎处理单元并行工作来提供强大的处理能力,因此作为NP核心的微引擎的必须具备处理高效、设计简单以及编程容易等特点。一方面需要尽量的降低每个微引擎的面积和功耗,从而才能使集成多个微引擎的NP整体仍然满足约束;另一方面微引擎还要根据网络业务特点,提供丰富操作和较高频率,才能使NP达到较好的处理能力。微引擎的架构有以下三种实现方式。1) 基于 RISC 核心。由于RISC处理器不仅设计难度相对较小,而且精简 指令集有益于CPU跑到更高

43、的时钟频率,目前已经得到广泛使用,包括 IBM 的PowerNP系列、Intel 的IXP12xx/24xx系列等等。其中的 RISC 核心既有简单的单标量流水线结构,也有复杂的超标量流水线结构。2) 基于 VLIW (Very Long InstructionWord,超长指令字)核心。VLIW 结构的目的是通过把多条指令连接在一起来发掘出更多的指令级并行性,但需要相应的编译器进行辅助开发。这种架构的优点是低功耗、低设计复杂度与高性能。目前采用VLIW架构的NP不多,如Cisco PXF等,一般应用于网络边缘的高性能路由器中。3) 基于数据流处理单元核心。这种架构和传统的顺序编程模型差别很大

44、,它不需要显式的控制流,只要处理单元的功能部件接收到所需数据就马上进行处理。采用这种架构的NP产品也并不多,例如Xelerated的 X11/X10q网络处理器。2.2.2 微引擎指令集架构微引擎的一个重要功能是执行程序的每条指令,完成程序所要实现的功能。所以,指令系统的设计是微引擎设计的一大重点。目前处理器的两种指令集架构分别是复杂指令集计算机(CISC)和精简指令集计算机(RISC)。早期的计算机都采用CISC 架构,设计CISC的目的是希望花费尽量少的指令开销完成所需处理任务。每条指令可执行多个操作,如乘法和写数据等操作。但由于指令格式复杂,寻址模式多种多样,不仅增加了硬件设计的复杂度而

45、且执行工作效率较差。正因为CISC的这些缺点,产生了RISC技术。RISC 注重简化指令系统,优先选择使用频率最高的且不复杂的指令;减少指令格式种类和寻址方式种类;采用等长指令,指令内部各字段的划分比较一致且各字段的功能较为规整;控制大部分指令在单周期内完成;采用专用指令(Load/Store)访问存储器,而安排其余指令在寄存器之间进行操作;增加通用寄存器数量,可用于算术逻辑运算指令的操作数存取;采用高级语言编程并进行编译优化,以减少程序执行时间。RISC的这些努力使计算机的结构更简单合理,运算效率更高。网络处理器中的微引擎一般负责数据平面的处理(如包分类、查找、转发等),虽然此类操作较为简单

46、但必须保证操作延迟较低;而一般由片上的通用处理器来完成控制平面的处理(如系统信息维护、协议处理等),这类操作较为复杂,但是通常每个分组并不是必须进行。随着网络应用的发展,数据平面和控制平面的界限已经逐渐模糊,因此现在微引擎指令集必须同时考虑两方面的处理。2.2.3 微引擎并行技术并行技术可以有效地提高微引擎的处理能力,按照并行性等级从高到低可分为:线程级并行、数据级并行、指令级并行以及指令内部的微操作并行。针对本文的设计,本节只介绍指令级并行。指令级并行需要采用流水线技术和超标量技术。(1)流水线技术如今已广泛使用的流水线技术通过将任务划分为多个流水段执行而提高系统的吞吐率。其中组合逻辑构成的

47、流水段负责进行运算和处理,而由相邻流水级之间的寄存器来暂存中间运行结果。在理想状况下各流水段处理时间相等,从而使吞吐率提高到n倍(n为流水线的深度),但在实际中,处理时间最长的流水段将成为流水线的瓶颈。以传统的五级流水线为例,指令的执行过程细分为取指(IF)、译码(ID)、执行(EX)、访问存储器(MEM)和写回寄存器堆(WB) 5 个子过程,如图2.9所示。图2.9 五级经典流水线此外实际中的流水线中的加速比,会由于流水级间逻辑增加新的开销,以及由于存在着多种多样的冲突导致流水线的停顿而大幅降低。流水线的冲突一般有以下三种类型:1)结构冲突。因为硬件资源(如功能单元、寄存器和存储器等)满足不

48、了指令重叠执行的要求而发生流水线冲突。通常采用相应的指令调度策略或增加硬件资源来减小冲突的影响。2)数据冲突。当指令在流水线重叠执行时,因需要用到前面指令执行的结果而发生的冲突。大部分数据冲突可以通过修改相关寄存器别名来消除。3)控制冲突。流水线在遇到分支跳转指令或其它会改变PC(程序指针)值的指令所造成的冲突。流水线暂停是解决控制冲突最简单有效的方法。(2)超标量技术超标量(Superscaler)架构是指在处理器中有两条及两条以上的流水线,且每个时钟周期可完成多条指令,其实质是以空间换取时间。超标量处理器是指为提高标量指令的执行性能而设计的一种计算机。采用超标量技术处理器的在每个时钟周期能

49、够发送多条指令,并相互独立地执行。因此大大提高指令流水线的指令流出率,从而提高了处理器的性能。2.3 本章小结首先分析了网络处理器的微引擎处理单元之间的组织结构,即串行、并行以及混合模式。并引出了本课题的研究内容P1600网络处理器,接着对P1600的四类微引擎解析、搜索、转发、修改进行了详细分析。其次,研究了微引擎设计技术。微引擎的架构实现方式一般可以分成基于 RISC 核、VLIW核以及数据流处理等三种类型;微引擎的指令集架构可分为CISC和RISC,微引擎处理单元的指令集必须同时适合于数据平面和控制平面。最后分析了微引擎的并行技术流水线和超标量。第3章 转发微引擎设计与实现第3章 3.1

50、 指令集设计不同于通用处理器的指令集设计,网络处理器中微引擎处理单元的指令集设计必须符合网络处理的特点。通常微引擎的指令集是基于RISC处理器指令集的定点操作部分,然后通过适当裁减并增加一些特殊的控制和运算指令来实现的。一方面,因为网络的分组数据的处理很少使用浮点操作,且浮点操作指令的实现较为复杂,所以微引擎的指令集设计不包含浮点的操作。另一方面,网络协议处理中存在着大量的查找比较操作,它并不是按字节或是字对齐的方式而是按位进行处理,因此微引擎的指令集设计必须对位操作有很好的支持。对于位操作的实现,与实现字或字节操作一样,首先要解决位访问的问题,然后才能实行位操作,而如何找到指令操作数就涉及到

51、微引擎指令集设计中的一个关键点指令寻址方式的设计。通用处理器的指令寻址的最小单位一般都是字节,但可以采用掩码结合逻辑与或的方式实现位操作。该方式需要付出较大的代码开销与较高的位操作延迟的代价,尽管这可以被通用处理场合接受,但是已经无法满足网络处理场合的性能要求。因此微引擎指令集中的寻址方式必须包括位寻址的机制。33.13.1.1 专用指令集定制合适的专用指令集是满足新的应用和简洁的微引擎结构实现的关键。P1600网络处理器转发微引擎采用73位专用指令集设计,并根据转发微引擎的功能要求做出了相应的优化设计。总共35条指令每条指令均在一个时钟周期内完成,分为以下几类:移动指令、分支跳转指令、ALU

52、指令、特殊指令,指令集的具体描述见表3.1。表3.1 微引擎指令集列表指令指令描述移动指令Mov按字节将立即数或寄存器数据移到目的寄存器MovBits按位将立即数或寄存器数据移到目的寄存器Mov4Bits移动任意四位数据到目的寄存器MovMul根据优先级编码寄存器的值,移动八个 源寄存器 中的一个到目的寄存器Get按字节把存储器数据移到目的寄存器指令指令描述PutKey按字节把立即数或寄存器数据移到目的存储器Copy按字节把存储器数据移到目的存储器PutHdr按字节把立即数或寄存器数据移到Header寄存器PutHdrBits按位把立即数或寄存器数据移到Header寄存器PutHdr4Bits

53、移动任意四位数据到Header寄存器GetRndBits移动任意八位Result Control寄存器数据到目的寄存器GetFixBits移动有限制的八位Result Control寄存器数据到目的寄存器GetRnd4Bits移动任意四位Result Control寄存器数据到目的寄存器分支跳转指令Jmp无条件跳转Jstack间接跳转,地址来自PC_STACK寄存器Return间接跳转,地址来自PC_STACK寄存器,类同JstackJmul根据优先级编码寄存器的值,地址八选一进行跳转Loop跳转然后Loop Counter寄存器递减Call跳转并保存当前PC值到PC_STACK寄存器Call

54、stackJstack并保存当前PC值到PC_STACK寄存器ALU指令And逻辑与Xor逻辑异或Or逻辑或Not取反Add不带进位加法操作Sub不带进位减法操作AddcDST=SRC1+SRC2+CarrySubbDST=SRC1-SRC2-CarryDecode将源操作数对应位置1后赋给DSTEncode取源操作数最高位数值NumOnes计算源操作数中1的个数特殊指令Minterm预定义12种运算,根据参数选择SetMaxMin从输入的序列中选出最大值或最小值及该最值的序列号Halt挂起,四种模式分别用于单播、多播、丢弃帧、调试Nop空指令微引擎指令的最高位(72位)是偶校验位(Even)

55、,当需要复杂操作时,可以直接由编译器解析指令完成。紧接着是六位表示的操作码(Opcode),指令的最低位一般是表示IF条件。不同指令还包含一些需要配置的模式(Mode),比如比较最大值或者最小值以及选择不同的Minterm运算等等。指令一般包含一个源操作数(Src)和一个目的操作数(Dst),但设计了多条专用指令包含多个源操作数。指令格式按操作数划分可以归结为以下几类。1)无源操作数:都是分支跳转指令,只有跳转的label地址。2)一个源操作数:主要是移动指令。特殊地,SetMaxMin指令也只有一个源操作数,但是目的寄存器固定为大小比较输出寄存器MAX_O。3)两个操作数:此类指令是ALU运

56、算指令。4)四个源操作数:GetRnd4Bits指令。5)八个源操作数:分为两种,一种是目的寄存器不确定的GetRndBits和GetFixBits指令。一种是优先级编码跳转(或移动)指令Jmul和MovMul,目的寄存器确定为优先级编码寄存器。转发微引擎没有设计专门的Load/Store指令来完成网络处理器微引擎与存储器之间的数据传送,而是分别设计Get完成存储器到微引擎寄存器的移动,Mov指令完成微引擎寄存器之间移动,Put指令完成微引擎寄存器到输出存储器的移动,Copy指令完成输入存储器到输出存储器之间的移动。特别地,专门设计GetRndBits、GetFixBits、GetRnd4Bi

57、ts三条位处理指令,来处理查找微引擎的查找结果。网络处理器的转发微引擎对数据帧的作出转发决定需要涉及到大量的复杂的逻辑与和或运算。Minterm指令预定义了12种逻辑运算,一个时钟周期内可对两个32位数据进行不同的与和或操作并且控制输出不同位宽的运算结果。另外微引擎决定了帧的目的、优先级等,设计SetMaxMin指令可以最多从16个元素的序列中选出最大值或者最小值,并且指出它的序列号。优先级编码模块处理指令Movmul和Jmul。根据输入寄存器的状态,选择8个源操作数中的某一个操作数输出。总之,增加的这些指令对于网络处理中的微引擎对外部数据数据的访问以及数据运算要求非常适用。指令集不仅提供了位

58、操作的专用指令,其指令系统中的运算类指令操作数的长度也是可调的,这样处理起来非常灵活,不必要处理的字节或者位可以不必参与运算,提高了处理的效率和速度(最大可支持64位的操作数移动)。3.1.2 寻址方式寻址方式指的是如何得到指令的操作数地址,RISC指令集有寻址方式少而简单的优点。根据操作数来源的不同,微引擎支持的寻址方式有:1)立即数寻址:操作数在指令中以最多32位立即数形式出现,因此可以直接从指令中获得操作数,主要用于移动指令、ALU指令和一些特殊指令。2)寄存器直接寻址:操作数部分直接给出操作数所在寄存器,又可细分为寄存器指定、字节指定、位指定等,在移动指令、ALU指令指令中经常用到。3

59、)寄存器间接寻址:操作数所在寄存器的序列号来自专门的间接寻址寄存器。4) 基址加偏移量寻址:操作数在存储器中,且存储器地址是某寄存器内容与指令中表示偏移量值的常量之和。在存储器访问指令中计算存储器访问地址时用到。5) PC 相对寻址:地址是 PC 与指令中常量的和值。通常在条件分支指令中计算分支目标地址时用到。3.1.3 寄存器模型转发微引擎的寄存器可分为两类,一类是指令可访问的内部寄存器,包括以下几种类型:1) UREG:用户自定义的16个32位通用寄存器。2) ALU32:1个32位寄存器专用于ALU运算,保存运算结果。3) MAX:2个用于SexMaxMin指令运算。4) MINTERM

60、:2个用于Minterm指令运算。5) ENC_PR:2个用于优先级编码运算。6) SREG:16个不同长度的寄存器用于特殊用途,如间接寻址。7) OUT_IF:16个输出接口寄存器,实现与统计、帧描述等相关的接口功能。8) HREG:8个帧头寄存器用于保存微引擎处理之后的数据帧帧头数据。另一类是指令不可访问的Host寄存器,全部由主机来初始化和配置,见下表3.2。初始值也可以由P1600微码插入然后在加载期间执行。其中MREG初始化命令由host执行,这是在执行指令存储器中的程序之前进行。表3.2 全局Host寄存器地址寄存器名描述读/写0x00INT_REG中断寄存器写0x01-0x04W

61、IDE_LOAD3:0指令装载寄存器写0x08BR_ADDR子程序地址写0x09-0x18MREG15:0ALU掩码寄存器写0x19HOST_CONF学习、排序和信道支持寄存器写0x20-0x27HOST_REG7:0host调试寄存器读0x2CMCODE_BR_INT微码执行或断点命令读0x2DSTATUS_REG状态寄存器读地址寄存器名描述读/写0x2E-0x35PC-REG7:0host PC调试寄存器读0x36MCODE_ERR_REG微码偶校验错误寄存器读3.2 微引擎结构设计3.23.2.1 微引擎结构描述在本文设计的P1600网络处理器转发微引擎为可编程处理器,采用类超标量结构,共有4个RISC核,一个周期可以同时处理多条指令。转发微引擎总体结构如下图3.1。图3.1 转发微引擎总体结构框图微引擎顶层接口描述如下:1) Host主机访问配置Resolve微引擎的Host寄存器。2) Resolve微引擎接收Search1微引擎传送的帧搜索结果(Results)。3) Resolve微引擎向Se

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!