大学毕业设计网络处理器中微引擎的设计与实现.docx
《大学毕业设计网络处理器中微引擎的设计与实现.docx》由会员分享,可在线阅读,更多相关《大学毕业设计网络处理器中微引擎的设计与实现.docx(83页珍藏版)》请在冰点文库上搜索。
![大学毕业设计网络处理器中微引擎的设计与实现.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/feccb40a-242c-470c-a115-6a6a7c3c84bb/feccb40a-242c-470c-a115-6a6a7c3c84bb1.gif)
大学毕业设计网络处理器中微引擎的设计与实现
中图分类号:
密级:
学科分类号:
论文编号:
硕士学位论文
网络处理器中微引擎的设计与实现
研究生姓名张琦
学科专业计算机系统结构
研究方向数字系统设计
指导教师章建雄研究员级高工
培养单位中国电子科技集团公司第三十二研究所
电子科学研究院
二О一三年十二月二十五日
学位论文独创性声明
本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。
除已特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果。
与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。
作者签名:
日期:
年月日
学位论文使用授权
本人完全了解填写培养单位名称有关保留和使用学位论文的规定,本人在攻读学位期间论文工作的知识产权单位属于填写培养单位名称。
培养单位和学位授予单位有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅,可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。
保密的学位论文在解密后适用此授权。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
摘要
随着网络带宽的增长和新兴应用的涌现,网络处理器作为一种同时具有高性能和可编程能力的解决方案,获得了越来越多的关注和应用。
网络处理器是一种专门应用于网络系统的微处理器,通常采用多核多线程结构,集合了高速度、低功耗和可编程的优点,通过专用协处理单元的使用可为设计人员提供更大的自由。
网络处理器一般都集成了多个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网络处理器的设计要求。
关键字:
网络处理器微引擎指令集验证平台性能评估
Abstrat
Withthegrowthofthenetworkbandwidthandemergingapplications,networkprocessorasasolutionwithhighperformanceandprogrammability,hasgainedmoreandmoreattentionandapplication.Networkprocessorisamicroprocessorthatspeciallyusedinnetworksystem,whichusuallywithmulti-coreandmultithreadstructureandcombiningtheadvantagesoflowpowerconsumptionandhighspeed,programmable,andthroughadedicatedcoprocessorunitcanprovidemorefreedomfordesigners.NetworkprocessorgeneralisintegratedintheRISCprocessortomeethighperformancewirespeedprocessingrequirements,theprocessorisdesignedfornetworkprotocolprocessingandoptimizationdesign,oftenreferredtoasthemicroengine.
Thispapermainlystudiesthedesignandimplementationofmicroengineinnetworkprocessor.Thefirstanalysisofnetworkprocessorandfourtypesofmicroengineinnetworkprocessor,andthemicroenginedesigntechnologyfortherelatedresearch.Thenthemicroengineisdesignedandrealizedfromaspectsofinstructionsetdesign,microenginestructuredesign,andpipelinedesign.Finally,thispaperusestheUVMverificationplatformtovalidatethefunctionofmicroengine.Coveragestatisticsisfinishedbyusingmanuallyaddingexcitationandrandomexcitation.PerformanceevaluationofthedesignmainlyincludestheFPGAhardwareoverheadevaluationandASIChardwareoverheadevaluation,andfromtheapplicationofnetworkprocessorverificationenvironment,whichisrunningtheIPv4forwardingworksfromtheaspectsofthroughputandpacketlossratetoevaluatetheperformance.MicroengineevaluationresultsshowthatthedesignmeetstheGigabitforwardingspeed,andcomplywiththedesignrequirementsofnetworkprocessoroftheareaandpowerconsumption.Themaincontentandinnovationareasfollows:
1.Thismiroengineusesa73bitsspecialinstructionset.Comparedwiththegeneralinstructionset,addingasmalltermoperationinstructionMinterm,sizecomparisoninstructionSetMaxMin,memoryreadingandwrittinginstructionsandotherinstructionsdesignedtodealwiththemicroenginepacketprocessing.Theseinstructionsareverysuitableforthemicroengineofnetworkprocessoraccessingexternaldataanddatacomputingrequirements.
2.UVMverificationmethodologyisusedtowritetestbenchofthemicroengineinnetworkprocessor,whichhasefficientlyverifiedRTL-levelcodeofmicroengine,andthefunctionalvericationofdesignedmicroengineisachieved.MeanwhilethevericationplatformisbuiltwithUVCsolutionandmoduledesignisreasonable,highreusability,whichcanbeusedtoprovideatemplateforotherprocessorsvalidation.
3.Inthisthesisthehardwareoverheadandperformanceofdesignedmicroenginecontiansfourprocessingunits,andeachprocessingunittakesabout38000LUTsof4inputs,andoperatingfrequencycanreach103.2MHz.ForthecostofassessmentofASIC,usingTMSC65nmcelllibraryoflayoutsynthesis,microengineprocessingunitoperatingfrequencyis714MHz,theareais0.47mm2,thetotalpowerconsumptionis666.7mW,whichhasmettherequirementsofthedesignofP1600networkprocessor.
Keywords:
NetworkProcessor,MicroEngine,InstructionsSet,Testbench,PerformanceEvaluation
图表清单
图3.14P2级分支执行原理图32
第1章绪论
1.1研究背景和意义
当计算机网络发展到高速网络技术阶段,有了光纤媒介的广泛使用和传输技术的巨大进步,人们对网络带宽的需求也越来越大,中间网络处理设备逐渐成为了网络系统的瓶颈,因此人们需要处理速度更快的网络设备。
此外,新的网络业务不断涌现和应用范围的不断扩大,中间网络设备需要处理更加复杂的协议,因此必须具有很好的灵活性和适应性,并针对不同客户提供差异化的服务质量(QoS)保障。
所有这些都需要能够高速并且智能化的完成网络数据处理的中间网络设备,基于这种情况,网络处理器(NetworkProcessor,简称NP)应运而生。
网络处理器作为一种应用于网络系统的专用指令处理器,通常采用多核多线程结构,集合了高速度、低功耗和可编程的优点,同时通过使用专用协处理单元可为设计人员提供更大的自由。
利用网络处理器开发人员可以实现快速编程,可为客户灵活提供所需功能,使网络系统具有高性能和高灵活性。
网络处理器的出现建立了网络系统的硬件平台,它通过软件升级来满足日益增长的功能需求,给网络处理技术的发展提供了一个开放舞台,因而具有非常重要的意义。
通常网络处理器都集成了多个RISC(ReducedInstructSetComputer,精简指令集计算机)处理器来满足高性能线速度的处理要求,这些处理器专门针对网络协议处理(如包分类、路由查找等)而设计,通常被称之为微引擎。
微引擎的指令集是专为网络协议处理而优化的RISC指令集。
在网络处理器中,微引擎对数据包的处理速度决定着网络处理器的整体性能,如何有效降低微引擎中关键路径的延时是提高NP性能的关键。
微引擎一般采用流水线技术和并行执行的多处理单元组织机制,利用专用硬件与专用指令处理特定协议操作,降低延迟提高处理速度。
此外,对于网络处理器微引擎这样具有复杂功能的芯片设计的验证,务必采用高效的验证方法,以缩短验证周期,提高设计质量。
网络处理器作为高端路由器、交换机、防火墙等数据通信产品的核心部件,是关系到政府和军队等国家机构信息安全的重要基础设施。
然而长久以来在计算机和网络安全技术方面,我国的集成电路芯片设计技术落后于欧美国家,所以导致国家大量的信息安全产业无法得到核心自主研发芯片的支持,并且使得信息安全隐患变得越来越严重。
尤其是最近的“棱镜门”事件充分暴露了国家信息安全的重要性和紧迫性,因此关于这方面的研究与应用工作必须及早开始。
研制出“自主可控”的网络处理器设备,对建立我国“自主可控”的网络信息安全保障体系具有重要意义。
1.2国内外研究和发展现状
从二十世纪末到现在,网络处理技术发生了巨大的变化,网络设备的架构以处理核心的更新作为标志,大致经历了以下3个阶段:
1)基于GPP(GeneralPurposeProcessor,通用处理器)的网络设备。
网络发展初期主要研究构建服务框架和实现网络协议,其传输速率低服务类型少。
网络设备是以GPP为硬件基础,并在通用操作系统上运行相关软件,所以功能较为灵活,但由于性能较低已无法适应日益增长的网络数据处理要求。
2)基于ASIC(ApplicationSpecificIntegratedCircuit,专用集成电路)的网络设备。
到了九十年代中期,基于GPP核心的网络设备的处理能力逐渐成为网络发展的瓶颈。
而针对网络协议进行硬件优化设计的基于ASIC的网络设备取得很大的发展。
通常ASIC网络设备需要结合RISC处理器来获取高性能。
3)基于NP的网络设备。
随着因特网发展到繁荣时期,高带宽和服务多样化对网络设备提出了更高的要求。
基于ASIC的网络设备的固有缺点是缺乏可编程性,且开发周期较长成本较大,因此限制了其进一步发展。
而网络处理器由于具有高性能、高度灵活性和高性价比以及上市时间短等优点,成为了当今以及未来的主流发展方向。
国外方面,从上世纪九十年代末,许多大学和研究机构对NP的体系结构以及NP性能评价进行了研究。
Intel公司是最早投入大量资金和人才进行NP研发的公司之一,并且在全世界投资了近百所大学进行NP及其相关应用的研究。
2001年成立了网络处理器论坛(NPF),致力于推动网络处理器标准的兼容和发展。
目前市场份额较大的网络处理器开发商有AMCC、IBM、Intel、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种类型的微引擎——Parse、Search、Resolve和Modify——被用于执行数据包处理的主要任务,即分类、转发和修改。
可编程的微引擎和这些任务一一对应,相当快速地执行各自的任务。
每个微引擎处理器的类型采用一种独特的体系结构,带一个定制的、特殊功能的数据通路和指令集。
这减少了复杂数据包操作需要的时钟周期数目,提供相当快速的数据包处理。
微引擎性能受益于类超标量结构,微引擎的多个核在每个流水段并行运行。
该网络处理器硬件系统的结构见图2.2。
图2.2系统结构框图
1
2
2.1
2.1.1P1600网络处理器介绍
网络处理器芯片主要特性包括:
1)单芯片、可编程、20Gbps吞吐量网络处理器;
2)Linecard、servicecard和pizzabox应用;
3)处理灵活,带可编程的数据包分析、分类、修改和转发;
4)Ingress流量管理和egress流量管理,带等级化调度(流量管理);
5)嵌入式搜索引擎,减少外部搜索协处理器的需要;
6)2个10Gbps以太网端口分别连接Link和Fabric,带集成的MAC。
网络处理器芯片使用一个简单的单镜像编程模型,没有并行编程或多线程。
为数据包分配微引擎,在微引擎之间传递消息,还有维护帧的顺序,这些对编程者完全透明且用硬件实现。
大容量的代码存储器可用于支持多个复杂的应用,同时为增加新性能提供扩展空间。
网络处理器芯片的数据和控制通路见图2.3,功能模块主要分为3个部分:
1)深色部分为接口和内存管理模块,负责数据包的XGMII接口、帧存储和描述符管理、PCIE的CPU接口和统计计数模块;
2)中间浅色斜纹部分为Parse、Resolve和Modify内核,依据帧描述符信息进行数据包的解析、决策和修改;
3)其余浅色部分为搜索内核,该部分依据关键字实现表的硬件搜索,管理内部的搜索存储器和外部的搜索存储器。
图2.3P1600网络处理器结构框图
微引擎构成的功能流水线以一种类超标量结构运行,能把数据包的消息和指针从一个处理阶段传到下一个阶段。
每个微引擎执行特定的任务,把它的结果(如messages、keys、headers和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),在相关路由表(routingtables)、分类表(classificationtables)和策略表(policytables)中执行并行/流水查找。
主要支持的表结构是FastIP表、Hash表、直接访问表、Tree表及其组合,其中当采用组合方式查表需要微码支持,即在Searchl上需要编写微码指令。
其内部组织结构如图2.5和图2.6:
图2.5Search1微引擎组织结构
图2.6Search2微引擎组织结构
2.1.4转发微引擎
转发(Resolve)微引擎负责帧的转发决策处理。
它决定了帧的目的、优先级、格式以及内容的改变。
基于Search1的结果和来自Parse的消息,Resolve模块决定帧的输出端口和队列。
Resolve还能更新数据流条目的状态,向搜索结构(只支持hash)中学习新的条目。
动态资源,如Re