




已阅读5页,还剩78页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中图分类号: 密 级: 学科分类号: 论文编号:硕士学位论文 网络处理器中微引擎的设计与实现研究生姓名张琦学科专业计算机系统结构研究方向数字系统设计指导教师章建雄 研究员级高工培养单位 中国电子科技集团公司第三十二研究所电子科学研究院二一三年十二月二十五日学位论文独创性声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果除已特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意作者签名: 日期: 年 月 日学位论文使用授权本人完全了解填写培养单位名称有关保留和使用学位论文的规定,本人在攻读学位期间论文工作的知识产权单位属于填写培养单位名称培养单位和学位授予单位有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅,可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印缩印或扫描等复制手段保存汇编学位论文保密的学位论文在解密后适用此授权作者签名: 日期: 年 月 日导师签名: 日期: 年 月 日摘要摘 要 随着网络带宽的增长和新兴应用的涌现,网络处理器作为一种同时具有高性能和可编程能力的解决方案,获得了越来越多的关注和应用网络处理器是一种专门应用于网络系统的微处理器,通常采用多核多线程结构,集合了高速度低功耗和可编程的优点,通过专用协处理单元的使用可为设计人员提供更大的自由网络处理器一般都集成了多个RISC处理器来满足高性能线速处理要求,这些处理器专门针对网络协议处理而优化设计,通常被称之为微引擎本文主要研究了网络处理器中微引擎的设计与实现首先分析了科研项目中的网络处理器和四种类型的微引擎,并对微引擎的设计技术进行了相关研究,然后从指令集设计微引擎结构设计流水线设计等方面对转发微引擎进行了设计与实现,最后本文采用UVM验证平台对微引擎进行了功能验证,通过手工添加激励与随机产生激励相结合进行了覆盖率统计对于设计的性能评估主要包括硬件部分的FPGA开销评估和ASIC开销评估,以及借助于网络处理器应用验证环境,即运行IPv4转发测试从吞吐率和丢包率方面进行性能评估评估结果表明设计的微引擎满足万兆的转发速度,符合网络处理器的芯片面积功耗等设计要求本文主要内容和创新点总结如下:1) 本文微引擎采用73位专用RISC指令集,相对于一般指令集,增加如小项运算指令Minterm大小比较指令SetMaxMin存储器读写指令等专为解决为微引擎数据包处理而设计的指令,这些指令对于网络处理中微引擎对外部数据数据的访问以及数据运算要求非常适用2) 本文采用UVM验证方法学编写的网络处理器微引擎验证平台,高效验证了微引擎RTL级代码,实现了对所设计微引擎的功能验证同时,采用UVC解决方案搭建的验证平台模块设计合理可重用性高,可为其他处理器验证工作提供模板3) 对所设计微引擎的硬件开销和性能进行了评估对于FPGA的开销评估,微引擎包含的四个处理单元,其中每个处理单元大约占用 38000个 4 输入 LUT,运行频率达到 103.2MHz对于ASIC的开销评估,采用TMSC65nm单元库进行了布局布线综合之后,微引擎处理单元运行的频率为714MHz,面积为 0.47mm2,总的功耗为 666.7mW,满足我们NP2网络处理器的设计要求关键字:网络处理器 微引擎 指令集 验证平台 性能评估71AbstractAbstratWith the growth of the network bandwidth and emerging applications, network processor 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 and 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 optimization 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 research. 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 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 throughput 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 miro 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 processing.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,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 performance 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 frequency 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国内外研究和发展现状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.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.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操作数原理图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 Compiler综合流程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 研究背景和意义当计算机网络发展到高速网络技术阶段,有了光纤媒介的广泛使用和传输技术的巨大进步,人们对网络带宽的需求也越来越大,中间网络处理设备逐渐成为了网络系统的瓶颈,因此人们需要处理速度更快的网络设备此外,新的网络业务不断涌现和应用范围的不断扩大,中间网络设备需要处理更加复杂的协议,因此必须具有很好的灵活性和适应性,并针对不同客户提供差异化的服务质量(QoS)保障所有这些都需要能够高速并且智能化的完成网络数据处理的中间网络设备,基于这种情况,网络处理器(Network Processor,简称NP)应运而生网络处理器作为一种应用于网络系统的专用指令处理器,通常采用多核多线程结构,集合了高速度低功耗和可编程的优点,同时通过使用专用协处理单元可为设计人员提供更大的自由利用网络处理器开发人员可以实现快速编程,可为客户灵活提供所需功能,使网络系统具有高性能和高灵活性网络处理器的出现建立了网络系统的硬件平台,它通过软件升级来满足日益增长的功能需求,给网络处理技术的发展提供了一个开放舞台,因而具有非常重要的意义通常网络处理器都集成了多个RISC(Reduced Instruct Set Computer,精简指令集计算机)处理器来满足高性能线速度的处理要求,这些处理器专门针对网络协议处理(如包分类路由查找等)而设计,通常被称之为微引擎微引擎的指令集是专为网络协议处理而优化的RISC指令集在网络处理器中,微引擎对数据包的处理速度决定着网络处理器的整体性能,如何有效降低微引擎中关键路径的延时是提高NP性能的关键微引擎一般采用流水线技术和并行执行的多处理单元组织机制,利用专用硬件与专用指令处理特定协议操作,降低延迟提高处理速度此外,对于网络处理器微引擎这样具有复杂功能的芯片设计的验证,务必采用高效的验证方法,以缩短验证周期,提高设计质量网络处理器作为高端路由器交换机防火墙等数据通信产品的核心部件,是关系到政府和军队等国家机构信息安全的重要基础设施然而长久以来在计算机和网络安全技术方面,我国的集成电路芯片设计技术落后于欧美国家,所以导致国家大量的信息安全产业无法得到核心自主研发芯片的支持,并且使得信息安全隐患变得越来越严重尤其是最近的“棱镜门”事件充分暴露了国家信息安全的重要性和紧迫性,因此关于这方面的研究与应用工作必须及早开始研制出“自主可控”的网络处理器设备,对建立我国“自主可控”的网络信息安全保障体系具有重要意义1.2 国内外研究和发展现状从二十世纪末到现在,网络处理技术发生了巨大的变化,网络设备的架构以处理核心的更新作为标志,大致经历了以下3个阶段:1)基于GPP(General Purpose Processor,通用处理器)的网络设备网络发展初期主要研究构建服务框架和实现网络协议,其传输速率低服务类型少网络设备是以GPP为硬件基础,并在通用操作系统上运行相关软件,所以功能较为灵活,但由于性能较低已无法适应日益增长的网络数据处理要求2)基于ASIC(Application Specific Integrated Circuit,专用集成电路)的网络设备到了九十年代中期,基于GPP核心的网络设备的处理能力逐渐成为网络发展的瓶颈而针对网络协议进行硬件优化设计的基于ASIC的网络设备取得很大的发展通常ASIC网络设备需要结合RISC处理器来获取高性能3)基于NP的网络设备随着因特网发展到繁荣时期,高带宽和服务多样化对网络设备提出了更高的要求基于ASIC的网络设备的固有缺点是缺乏可编程性,且开发周期较长成本较大,因此限制了其进一步发展而网络处理器由于具有高性能高度灵活性和高性价比以及上市时间短等优点,成为了当今以及未来的主流发展方向 国外方面,从上世纪九十年代末,许多大学和研究机构对NP的体系结构以及NP性能评价进行了研究Intel公司是最早投入大量资金和人才进行NP研发的公司之一,并且在全世界投资了近百所大学进行NP及其相关应用的研究2001年成立了网络处理器论坛(NPF),致力于推动网络处理器标准的兼容和发展目前市场份额较大的网络处理器开发商有 AMCCIBMIntel Broadcom等,推出的典型产品有Marvell(Intel)公司的IXP24xx系列网络处理器Hifn(IBM)的NP3G4S网络处理器和Cisco公司的ToasterZ网络处理器等2012年博通公司推出了业界首款100Gbps的全双工网络处理器BCM88030系列芯片,可为网络厂商提供100GbE交换和路由平台的核心硬件,是目前吞吐量最高的商用网络处理器芯片国内方面,我国在网络处理器芯片研究和开发方面跟国外研究发展有较大的差距值得一提的是,华为公司作为中国和全球领先的通信设备厂商,最早将网络处理器应用于商用领域2000年华为就率先在推出的NE40系列和NE80系列核心路由器产品上使用网络处理器,并取得不错的市场份额另外,2005年清华大学历经5年研发出的清华天行网络处理器芯片原型在整体技术上达到了国际先进水平,其中基于硬件链表的聚合流保序与流量分发技术集成化硬件查找协处理器和内置业务量管理引擎中的快速通道技术具有创新性,这不仅缩小了与国外的差距,而且对建设我国自主可控的网络信息安全系统具有重要意义1.3 论文的研究内容和结构安排本文的主要研究工作都是围绕一款自主研发的万兆网络处理器P1600中微引擎的设计和验证展开的本文的主要工作和后面各章节的内容安排如下:第一章,首先对网络处理器课题的研究背景和意义进行了阐述,交代了网络处理器及微引擎的概念然后分析了国内外的研究和发展现状,并简单介绍了本文的研究内容和论文的主要章节安排第二章,分析了网络处理器微引擎的拓扑组织结构,并重点分析了P1600网络处理器课题的四类微引擎然后对微引擎的设计技术:处理单元架构指令集架构并行技术等进行了研究第三章,对P1600网络处理器转发微引擎进行的详细的设计,包括专用指令集设计,微引擎结构设计以及四级流水线的详细设计,最后对设计进行了实现第四章,针对第三章设计的微引擎,设计了UVM验证平台进行了验证和分析然后从FPGA硬件开销ASIC硬件开销以及实际应用性能三方面对微引擎的性能进行了评估第五章,对本文的研究工作进行了总结,并展望了未来工作网络处理器微引擎研究第2章 网络处理器微引擎研究第2章 2.1 网络处理器及微引擎分析网络处理器中通常集成了多个微引擎处理单元,它们不是硬件资源的简单堆叠,而必须按照一定逻辑结构组织才能获得高性能如图2.1,其拓扑结构可以分成如下三种:1) 串行流水处理模式这种模式将处理任务划分为流水段,并和微引擎单元进行一一映射,其中的每一级处理单元只负责部分处理任务其优点是可简化处理单元并针对特殊的网络处理需求进行定制,同时化解了共享资源的访问冲突问题缺点是必须注意流水线间的负载均衡2) 并行多处理模式该模式下每个处理单元完全同构,能独立完成全部网络数据包处理任务缺点是处理单元之间关键资源的竞争(如指令存贮共享总线等)其优点是扩展性较好,增加新的处理资源容易;编程较为简易,因为开发人员只需面对一个处理单元,无需进行任务划分3) 混合模式基于以上两种模式优缺点,提出的混合模式在串行模式的硬件有效性和并行模式的编程有效性之间进行折衷,但是关于具体采用多少条流水线以及每条流水线使用多少个处理单元较好仍然没有明确的解决图2.1 微引擎单元组织结构图本课题中P1600网络处理器芯片中的微引擎采用流水处理模式,组整合多个高速处理器,每个都被优化执行一个特殊的任务4种类型的微引擎ParseSearchResolve和Modify被用于执行数据包处理的主要任务,即分类转发和修改可编程的微引擎和这些任务一一对应,相当快速地执行各自的任务每个微引擎处理器的类型采用一种独特的体系结构,带一个定制的特殊功能的数据通路和指令集这减少了复杂数据包操作需要的时钟周期数目,提供相当快速的数据包处理微引擎性能受益于类超标量结构,微引擎的多个核在每个流水段并行运行该网络处理器硬件系统的结构见图2.2图2.2 系统结构框图 P1600网络处理器介绍网络处理器芯片主要特性包括:1) 单芯片可编程20Gbps吞吐量网络处理器;2) Line cardservice card和pizza box应用;3) 处理灵活,带可编程的数据包分析分类修改和转发;4) Ingress流量管理和egress流量管理,带等级化调度(流量管理);5) 嵌入式搜索引擎,减少外部搜索协处理器的需要;6) 2个10Gbps以太网端口分别连接Link和Fabric,带集成的MAC网络处理器芯片使用一个简单的单镜像编程模型,没有并行编程或多线程为数据包分配微引擎,在微引擎之间传递消息,还有维护帧的顺序,这些对编程者完全透明且用硬件实现大容量的代码存储器可用于支持多个复杂的应用,同时为增加新性能提供扩展空间网络处理器芯片的数据和控制通路见图2.3,功能模块主要分为3个部分:1) 深色部分为接口和内存管理模块,负责数据包的XGMII接口帧存储和描述符管理PCIE的CPU接口和统计计数模块;2) 中间浅色斜纹部分为ParseResolve和Modify内核,依据帧描述符信息进行数据包的解析决策和修改;3) 其余浅色部分为搜索内核,该部分依据关键字实现表的硬件搜索,管理内部的搜索存储器和外部的搜索存储器图2.3 P1600网络处理器结构框图微引擎构成的功能流水线以一种类超标量结构运行,能把数据包的消息和指针从一个处理阶段传到下一个阶段每个微引擎执行特定的任务,把它的结果(如messageskeysheaders和pointers)传到下一个微引擎阶段,用于后续处理在相同流水段的多个微引擎能完成多个数据包并行处理所有相同类型的微引擎执行相同的代码,但为了性能最大化,每个微引擎有自己的程序存储,和其他微引擎独立运行微引擎处理器采用共享的资源,而没有连到一个物理端口一个集成的硬件调度器在每个流水段自动调度下一个可用的微引擎给下一个要处理的数据包数据包的顺序由每个端口自动维护2.1.2 解析微引擎解析(Parse)微引擎完成数据包的解析和分类,识别并提取各种数据包的头标签各种域和关键字,能分析任何深度和任何格式封装方法专有标签等的数据包将该部分解析的内容以消息(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)中执行并行/流水查找主要支持的表结构是FastIP表Hash表直接访问表Tree表及其组合,其中当采用组合方式查表需要微码支持,即在Searchl上需要编写微码指令其内部组织结构如图2.5和图2.6:图2.5 Search1微引擎组织结构图2.6 Search2微引擎组织结构2.1.4 转发微引擎转发(Resolve)微引擎负责帧的转发决策处理它决定了帧的目的优先级格式以及内容的改变基于Search1的结果和来自Parse的消息,Resolve 模块决定帧的输出端口和队列Resolve还能更新数据流条目的状态,向搜索结构(只支持hash)中学习新的条目动态资源,如Resolve的统计计数器和流号,通过使用一个通用的索引队列来分配Resolve的决定和修改指令,被编译到一个消息中,传到ModifyResolve还能生成Search 2微引擎使用的搜索关键字Resolve是一个可编程的处理器,每个周期执行1个微码指令采用73位专用指令集,下载到Resolve的微码决定了各种帧和应用所需要的解决方法,指令存储器支持1.5K行微码指令其内部组织结构如图2.7:图2.7 转发微引擎组织结构2.1.5 修改微引擎修改(Modify)微引擎修改数据包的内容,在数据包中的任何地方执行改写加或插入操作能在任何微引擎阶段为多播应用复制数据包它采用40位专用指令集,支持6K行微码指令其内部组织结构如图2.8:图2.8 修改微引擎组织结构2.2 网络处理器微引擎设计技术研究 微引擎处理单元架构网络处理器是利用多个微引擎处理单元并行工作来提供强大的处理能力,因此作为NP核心的微引擎的必须具备处理高效设计简单以及编程容易等特点一方面需要尽量的降低每个微引擎的面积和功耗,从而才能使集成多个微引擎的NP整体仍然满足约束;另一方面微引擎还要根据网络业务特点,提供丰富操作和较高频率,才能使NP达到较好的处理能力微引擎的架构有以下三种实现方式1) 基于 RISC 核心由于RISC处理器不仅设计难度相对较小,而且精简 指令集有益于CPU跑到更高的时钟频率,目前已经得到广泛使用,包括 IBM 的PowerNP系列Intel 的IXP12xx/24xx系列等等其中的 RISC 核心既有简单的单标量流水线结构,也有复杂的超标量流水线结构2) 基于 VLIW (Very Long InstructionWord,超长指令字)核心VLIW 结构的目的是通过把多条指令连接在一起来发掘出更多的指令级并行性,但需要相应的编译器进行辅助开发这种架构的优点是低功耗低设计复杂度与高性能目前采用VLIW架构的NP不多,如Cisco PXF等,一般应用于网络边缘的高性能路由器中3) 基于数据流处理单元核心这种架构和传统的顺序编程模型差别很大,它不需要显式的控制流,只要处理单元的功能部件接收到所需数据就马上进行处理采用这种架构的NP产品也并不多,例如Xelerated的 X11/X10q网络处理器2.2.2 微引擎指令集架构微引擎的一个重要功能是执行程序的每条指令,完成程序所要实现的功能所以,指令系统的设计是微引擎设计的一大重点目前处理器的两种指令集架构分别是复杂指令集计算机(CISC)和精简指令集计算机(RISC)早期的计算机都采用CISC 架构,设计CISC的目的是希望花费尽量少的指令开销完成所需处理任务每条指令可执行多个操作,如乘法和写数据等操作但由于指令格式复杂,寻址模式多种多样,不仅增加了硬件设计的复杂度而且执行工作效率较差正因为CISC的这些缺点,产生了RISC技术RISC 注重简化指令系统,优先选择使用频率最高的且不复杂的指令;减少指令格式种类和寻址方式种类;采用等长指令,指令内部各字段的划分比较一致且各字段的功能较为规整;控制大部分指令在单周期内完成;采用专用指令(Load/Store)访问存储器,而安排其余指令在寄存器之间进行操作;增加通用寄存器数量,可用于算术逻辑运算指令的操作数存取;采用高级语言编程并进行编译优化,以减少程序执行时间RISC的这些努力使计算机的结构更简单合理,运算效率更高网络处理器中的微引擎一般负责数据平面的处理(如包分类查找转发等),虽然此类操作较为简单但必须保证操作延迟较低;而一般由片上的通用处理器来完成控制平面的处理(如系统信息维护协议处理等),这类操作较为复杂,但是通常每个分组并不是必须进行随着网络应用的发展,数据平面和控制平面的界限已经逐渐模糊,因此现在微引擎指令集必须同时考虑两方面的处理2.2.3 微引擎并行技术并行技术可以有效地提高微引擎的处理能力,按照并行性等级从高到低可分为:线程级并行数据级并行指令级并行以及指令内部的微操作并行针对本文的设计,本节只介绍指令级并行指令级并行需要采用流水线技术和超标量技术(1)流水线技术如今已广泛使用的流水线技术通过将任务划分为多个流水段执行而提高系统的吞吐率其中组合逻辑构成的流水段负责进行运算和处理,而由相邻流水级之间的寄存器来暂存中间运行结果在理想状况下各流水段处理时间相等,从而使吞吐率提高到n倍(n为流水线的深度),但在实际中,处理时间最长的流水段将成为流水线的瓶颈以传统的五级流水线为例,指令的执行过程细分为取指(IF)译码(ID)执行(EX)访问存储器(MEM)和写回寄存器堆(WB) 5 个子过程,如图2.9所示图2.9 五级经典流水线此外实际中的流水线中的加速比,会由于流水级间逻辑增加新的开销,以及由于存在着多种多样的冲突导致流水线的停顿而大幅降低流水线的冲突一般有以下三种类型:1)结构冲突因为硬件资源(如功能单元寄存器和存储器等)满足不了指令重叠执行的要求而发生流水线冲突通常采用相应的指令调度策略或增加硬件资源来减小冲突的影响2)数据冲突当指令在流水线重叠执行时,因需要用到前面指令执行的结果而发生的冲突大部分数据冲突可以通过修改相关寄存器别名来消除3)控制冲突流水线在遇到分支跳转指令或其它会改变PC(程序指针)值的指令所造成的冲突流水线暂停是解决控制冲突最简单有效的方法(2)超标量技术超标量(Superscaler)架构是指在处理器中有两条及两条以上的流水线,且每个时钟周期可完成多条指令,其实质是以空间换取时间超标量处理器是指为提高标量指令的执行性能而设计的一种计算机采用超标量技术处理器的在每个时钟周期能够发送多条指令,并相互独立地执行因此大大提高指令流水线的指令流出率,从而提高了处理器的性能2.3 本章小结首先分析了网络处理器的微引擎处理单元之间的组织结构,即串行并行以及混合模式并引出了本课题的研究内容P1600网络处理器,接着对P1600的四类微引擎解析搜索转发修改进行了详细分析其次,研究了微引擎设计技术微引擎的架构实现方式一般可以分成基于 RISC 核VLIW核以及数据流处理等三种类型;微引擎的指令集架构可分为CISC和RISC,微引擎处理单元的指令集必须同时适合于数据平面和控制平面最后分析了微引擎的并行技术流水线和超标量转发微引擎的设计与实现第3章 转发微引擎设计与实现第3章 3.1 指令集设计不同于通用处理器的指令集设计,网络处理器中微引擎处理单元的指令集设计必须符合网络处理的特点通常微引擎的指令集是基于RISC处理器指令集的定点操作部分,然后通过适当裁减并增加一些特殊的控制和运算指令来实现的一方面,因为网络的分组数据的处理很少使用浮点操作,且浮点操作指令的实现较为复杂,所以微引擎的指令集设计不包含浮点的操作另一方面,网络协议处理中存在着大量的查找比较操作,它并不是按字节或是字对齐的方式而是按位进行处理,因此微引擎的指令集设计必须对位操作有很好的支持对于位操作的实现,与实现字或字节操作一样,首先要解决位访问的问题,然后才能实行位操作,而如何找到指令操作数就涉及到微引擎指令集设计中的一个关键点指令寻址方式的设计通用处理器的指令寻址的最小单位一般都是字节,但可以采用掩码结合逻辑与或的方式实现位操作该方式需要付出较大的代码开销与较高的位操作延迟的代价,尽管这可以被通用处理场合接受,但是已经无法满足网络处理场合的性能要求因此微引擎指令集中的寻址方式必须包括位寻址的机制 专用指令集定制合适的专用指令集是满足新的应用和简洁的微引擎结构实现的关键P1600网络处理器转发微引擎采用73位专用指令集设计,并根据转发微引擎的功能要求做出了相应的优化设计总共35条指令每条指令均在一个时钟周期内完成,分为以下几类:移动指令分支跳转指令ALU指令特殊指令,指令集的具体描述见表3.1表3.1 微引擎指令集列表指令指令描述移动指令Mov按字节将立即数或寄存器数据移到目的寄存器MovBits按位将立即数或寄存器数据移到目的寄存器Mov4Bits移动任意四位数据到目的寄存器MovMul根据优先级编码寄存器的值,移动八个 源寄存器 中的一个到目的寄存器Get按字节把存储器数据移到目的寄存器指令指令描述PutKey按字节把立即数或寄存器数据移到目的存储器Copy按字节把存储器数据移到目的存储器PutHdr按字节把立即数或寄存器数据移到Header寄存器PutHdrBits按位把立即数或寄存器数据移到Header寄存器PutHdr4Bits移动任意四位数据到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寄存器CallstackJstack并保存当前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),当需要复杂操作时,可以直接由编译器解析指令完成紧接着是六位表示的操作码(Opcode),指令的最低位一般是表示IF条件不同指令还包含一些需要配置的模式(Mode),比如比较最大值或者最小值以及选择不同的Minterm运算等等指令一般包含一个源操作数(Src)和一个目的操作数(Dst),但设计了多条专用指令包含多个源操作数指令格式按操作数划分可以归结为以下几类1)无源操作数:都是分支跳转指令,只有跳转的label地址2)一个源操作数:主要是移动指令特殊地,SetMaxMin指令也只有一个源操作数,但是目的寄存器固定为大小比较输出寄存器MAX_O3)两个操作数:此类指令是ALU运算指令4)四个源操作数:GetRnd4Bits指令5)八个源操作数:分为两种,一种是目的寄存器不确定的GetRndBits和GetFixBits指令一种是优先级编码跳转(或移动)指令Jmul和MovMul,目的寄存器确定为优先级编码寄存器转发微引擎没有设计专门的Load/Store指令来完成网络处理器微引擎与存储器之间的数据传送,而是分别设计Get完成存储器到微引擎寄存器的移动,Mov指令完成微引擎寄存器之间移动,Put指令完成微引擎寄存器到输出存储器的移动,Copy指令完成输入存储器到输出存储器之间的移动特别地,专门设计GetRndBitsGetFixBitsGetRnd4Bits三条位处理指令,来处理查找微引擎的查找结果网络处理器的转发微引擎对数据帧的作出转发决定需要涉及到大量的复杂的逻辑与和或运算Minterm指令预定义了12种逻辑运算,一个时钟周期内可对两个32位数据进行不同的与和或操作并且控制输出不同位宽的运算结果另外微引擎决定了帧的目的优先级等,设计SetMaxMin指令可以最多从16个元素的序列中选出最大值或者最小值,并且指出它的序列号优先级编码模块处理指令Movmul和Jmul根据输入寄存器的状态,选择8个源操作数中的某一个操作数输出总之,增加的这些指令对于网络处理中的微引擎对外部数据数据的访问以及数据运算要求非常适用指令集不仅提供了位操作的专用指令,其指令系统中的运算类指令操作数的长度也是可调的,这样处理起来非常灵活,不必要处理的字节或者位可以不必参与运算,提高了处理的效率和速度(最大可支持64位的操作数移动)3.1.2 寻址方式寻址方式指的是如何得到指令的操作数地址,RISC指令集有寻址方式少而简单的优点根据操作数来源的不同,微引擎支持的寻址方式有:1)立即数寻址:操作数在指令中以最多32位立即数形式出现,因此可以直接从指令中获得操作数,主要用于移动指令ALU指令和一些特殊指令2)寄存器直接寻址:操作数部分直接给出操作数所在寄存器,又可细分为寄存器指定字节指定位指定等,在移动指令ALU指令指令中经常用到3)寄存器间接寻址:操作数所在寄存器的序列号来自专门的间接寻址寄存器4) 基址加偏移量寻址:操作数在存储器中,且存储器地址是某寄
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 有您真好500字六年级作文小学作文9篇
- 右美托咪定对急性颅脑外伤患者早期全身炎症反应的调控机制与临床疗效研究
- 班主任家长会发言稿及话术模板
- 公路养护项目质量管理标准
- 中小企业资金运营管理双语手册
- 定制家具设计岗位职责与考核标准
- 混泥土施工劳务合同6篇
- 私营企业雇工劳动合同书范本经典版4篇
- 民间借款合同样本6篇
- 2026届云南省陆良县九年级化学第一学期期末学业水平测试模拟试题含解析
- 减糖与健康口腔课件
- 新时代学校思想政治工作评价机制研究
- 2025秋统编版(2024)道德与法治二年级上册第四单元《第16课 祖国 我为您自豪》教学设计
- 消防维保质量管理及保证措施
- 2025年上海市(秋季)高考语文真题详解
- 品牌沙龙活动策划方案
- 子宫肌瘤的治疗与护理
- 传统文化公司管理制度
- 小学生钻石画社团课件
- 隐私计算在档案中的应用-洞察及研究
- 关注老年人心理健康守护幸福 从心开始课件
评论
0/150
提交评论