(微电子学与固体电子学专业论文)多核网络处理器驱动软件关键技术研究.pdf_第1页
(微电子学与固体电子学专业论文)多核网络处理器驱动软件关键技术研究.pdf_第2页
(微电子学与固体电子学专业论文)多核网络处理器驱动软件关键技术研究.pdf_第3页
(微电子学与固体电子学专业论文)多核网络处理器驱动软件关键技术研究.pdf_第4页
(微电子学与固体电子学专业论文)多核网络处理器驱动软件关键技术研究.pdf_第5页
已阅读5页,还剩67页未读 继续免费阅读

(微电子学与固体电子学专业论文)多核网络处理器驱动软件关键技术研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 因特网是由路由器构成的网络,近年来因特网的迅猛发展和快速的推广应用, 人们也向它提出了更高的带宽和各种更复杂的服务需求。为适应这种不断发展的 网络需求,传统网络解决方案中路由器的硬件核心技术通用处理器或专用集 成电路,由于自身因素无法同时满足高速和灵活性两方面的要求,逐渐让位于高 性能多核网络处理器。这种专用于处理高速网络数据分组的多核并行可编程嵌入 式微处理器,结合了a s i c 处理器的高速性能和s c 处理器的可编程所展现出的 灵活性。如何利用相关软件有效地对硬件进行控制,使硬件性能得到充分发挥, 与高性能硬件相匹配的软件系统研发就显得尤为重要。 本文以网络处理器软硬件体系结构的相关研究为背景,阐述了基于多核网络 处理器的并行软件设计研发的特点和重要性。重点对多核网络处理器内核软件开 发的基本原理和设计要求进行了深入研究。分析并明确了多核网络处理器软件开 发与一般单核嵌入式系统开发的共性与个性。针对实际中的基于阶咿网络处理 器应用系统开发板,提出x d n p 内核软件驱动技术设计研发中较能充分体现多核 并行软件开发思想的关键技术环节:嵌入式操作系统的引导和启动、多核片上系 统硬件的初始化配置、多核片上高速包处理引擎应用程序代码的加载以及多核共 享路由表技术。结合舢内核软件开发原理,得出这几项关键技术的设计实现 方案,通过深入的研究和详细的设计后在脚网络处理器应用系统中得到具体 的实现。最后,利用实际的) n p 网络处理器应用系统开发板对上述关键技术环 节的实现进行了整体硬件验证,结果表明符合多核网络处理器内核软件设计要求, 并能在该网络系统硬件电路板上稳定使用,为) 口) n p 网络处理器上加载实现不同 网络处理功能的高速包处理引擎应用程序铺垫了底层软件基础。 关键词:网络处理器内核软件多核驱动技术片上多处理器初始化配置 a b s t r a c t w i mt 1 1 ed e v e l o p m e n t 锄d l ep o p u l a r i z a t i o n 锄d 印p l i c a t i o ni i lr e c e n ty e a r s , i n t e m e tw 勰r e q u e s t e db yat l i 曲e rb 锄捌d t l l ,m o r ec o m p l e xs e n ,i c e i i lo r d e rt 0m e e t t l l e s eg r o 、i n gn 印r kn e e d s ,也ek e yt e c l l i l o l o g ) ,t 0t l l et r a d i t i o n a lr o m e rl l a r d 眦睇 n 酶o r ks o l u t i o i l s ,w 1 1 i c hi sg e n e r a jp r o c e s s o r0 ra s i c ,h 雒b e e nr e p l a c e db yt h el l i 曲- p e r f o m a i l c eo fm u l t i c o r en e 铆o r kp r o c e s s o r 伊a d u a l l y ,s i i l c et l l a tm e yc a i l tb a l a i l c e 、i t l lt 1 1 e s p e e da n dn e x i b i l i 够c o m b i n e d 、) l ,i t ht l l eh i 曲- s p e e da b i l 时o fa s i ca n d 血e n e x i b i l 时o f s cp r o c e s s o r s ,t h el l i 曲- p e 墒肌a i l c eo fm u l t i - c o r en 咖o r kp 眦e s s o r c a np r o c e s sn e t 、) 的r kd a t ap a c k e t si i lh i 曲一s p e e d s p e c i f i e d t h u s ,h o wt 0c o n 仃d l l 瑚d w 乏鹏e 虢c t i v e l yb yu s i i l gs o f h 硼r ei i lo r d e rt om a k e 伽1u s eo ft 1 1 eh a r d w 玳 p e r f o m a i l c eb e c o m em o r e 锄d m o r ei m p o r 啾 t h ec k m 埘e r i s t i c sa i l di i l l p o n 锄c eo fp a r a l l e ls o r w a r ed e s i g nb a s e do nm u l t i c o r e 玳n o r kp r o c e s s o rw e r ed e s c r i b e di l lt l l i sp a p e ru 1 1 d e rt h eb a c k g r o u n do ft l l em u l t i c o r e n 前w o r kp r o c e s s o fh a r d w a r ea r c m t e c t u r ed e s i 盟a i l dr e s e a r c h b yp l a c i n gt l l es t u d y e m p h a s i so nt h ek e m e ls o 行w a r e 嘶v e r sb a s i cp f i n c i p l e sa r l dr &d r e q u i r e m e n t s ,t h e c o m m o i 谢i t ) r 觚di i l d i v i d u m i t ) rb e 似傥 nm u l t i - c o r en e t w o r kp r o c e s s o rs o 小硼r e 觚d g e n e r a ls i i l g l e c o r ee m b e d d e ds y s t e md e v e l o p m e mw e r cc l e a r e d a c c o r d i n gt 0 c l l a m l c t e r i s t i c so ft l l ex d n pr o u t e re v a l u a t i o ns y s t e mb o a 地n e r ea r es e v e r a lk e y p o i i l t si ns o r w a r e 血v e r sp r o p o s e da r em ef o u n d a t i o no fu p p e rl a y e r 印p l i c a t i o n s o r 眦啪d e v e l o p m e 咄s u c h 嬲i 淝sb o o t i n ga n ds 切n 位诚t i a lc o 血g u r a t i o no f 廿l e m u l t i - c o r es y s t e mh 莉w a r eo nc m p ,m el o a d i n go fa p p l i c a t i o nc o d eo nm m t i c o r e o n c l l i pt l i 曲s p e e dp a c k e tp r o c e s s i n ge n g i n e s ,锄dm u l t i c o r es h 撕n go fm ek e m e l r o u t i l l gt a b l et e c h n o l o g y i i lt h ep a p e r i tw 嬲p r o p o s e d 姐o v e r a j lp l 觚o nx d n p o n c 1 1 i p h l i t i a lc o i l | ! i g u m t i o n 锄dt h e ns e v e r a lc o r l c r e t es o l u t i o n sw e r e 西v e nt or e a l i z eo n eb y o n eo nt h e 辩v e m lk e yp o i n t s 、:h i c hp r o p o s e da b o v e a tl a s ti i lm i sp a p e r ,l e 如n c t i o n v e r i f i c a t i o no nm er e a l i 2 r a t i o no ft h o s ek e yt e c h n o l o g y sw 邪c o m p l e t e db yt l l eu s eo ft l l e x d n pn e 铆o r k 印p l i c a t i o ns y s t e mb o a r d t h ev e r i f i c a t i o nr e s u l t s 砌i ca :t em a tt l 圮 d e s i 粤1 sm e e tm er e q u i r e m e n t so fm u l t i c o r en e t 、) l ,o r kp r o c e s s o rp r o g 姗孤l dc a nb e o p e r a t e ds t a b i l 时o nm ex d 帅r o u t e re v a l l u a t i o ns y s t e mb o a r d k e y w o r d sl n e 铆o r kp r o c e s s o rk e m e ls o f 细a r em u i t i - c o 阳d r i v e r t e c h n o l o g y m u l t i c o r eo n - c h i pi n i t i a ic o n f i g u r a t i o n 西安电子科技大学 学位论文独创性( 或创新性) 声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名:衅墼蠢日期旌f 旦:3 丝 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生 在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保留 送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容, 可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后结合 学位论文研究课题再攥写的文章一律署名单位为西安电子科技大学。 ( 保密的论文在解密后遵守此规定) 本学位论文属于保密,在一年解密后适用本授权书。 本人签名:堕! ! :盔日期丝! :墨:丝 导师签名:墨鳢经日期竺! :芝:狸 第一章绪论 第一章绪论弟一早三百下匕 1 1 多核网络处理器及其发展趋势与应用 因特网的迅速发展和推广应用越来越明显地呈现出宽带化和综合化的趋势, 使人们对它提出不断增长带宽以处理各种复杂服务的要求,要求整个网络基础设 施( 网络处理设备) 具有更强的智能化,以支持更为复杂的数据信息和路由交换, 处理各种不同的网络业务。因特网是由路由器构成的网络,路由器在因特网中是 实现数据信息交换处理的核心设备,随着智能高速终端的发展和高速传输技术的 日益成熟,路由交换逐渐成为决定网络宽带化和综合化的瓶颈因素【3 。 从结构上,网络路由器实际上是一种专用的计算机系统,无论是高速核心路 由器还是边缘接入路由器,都包含c p u 等系统硬件、嵌入式操作系统以及各种协 议软件、网络管理系统软件等,而其硬件核心部分正是在上面搭载的c p u ,在上 面运行的软件则是软件工程师智慧所在,两者最终决定了路由器所能达到的性能。 传统的网络路由器解决方案主要分为两大类:一类是基于通用处理器构建的, 另一类是基于专用处理器( a s i c ) 来实现的。通用处理器的特点是功能灵活,能 够处理各种不同的网络业务,通过对处理器上运行的网络应用软件进行编程和更 新,能够实时适应网络业务的变化与升级;其缺点是处理速度比较慢,只能用于 中低端速率的处理场合。使用专用处理器进行网络业务处理时,通过将某些网络 处理功能固化为特殊的硬件结构,从而实现高速数据的网络处理:但是,专用网 络处理器网络处理功能单一,灵活性不好,需要不断的重新设计硬件结构来适应 不断更新的网络业务,市场存活时间短,提高了开发成本【3 l j 。 为了更好地使用网络宽带化和综合化的发展趋势,弥补通用处理器和专用处 理器在网络处理方面各自的不足,同时也结合两者在网络处理方面的优势,在网 络处理功能和性能之间取得较好的平衡,出现了多核网络处理器【冽。多核网络处 理器是一种新型的c p u 类型,专门用于网络网络路由的交换设备的需求,它通常 采用多核片上系统,由一个内核处理器和多个专门处理数据分组的高速包处理引 擎构成,这种高速包处理引擎,实际上是一个专用网络接口的微处理器,具有自 己专用的指令系统,能够对数据分组进行简单快速的处理。多核网络处理器是可 编程的,其中的高速包处理引擎根据指令对网络数据进行分析处理并管理网络数 据流,程序员可以通过对高速包处理引擎执行的指令进行不同的编程,来最终决 定整个网络处理器的性能、功能、及其开发周期【2 9 j 。 这样的多核网络处理器中,专门为网络处理进行优化设计的硬件结构提供了 2 多核网络处理器驱动软件关键技术研究 高速强大的网络处理平台,以适应网络处理宽带化的趋势;完全可编程的网络处 理模式提供了灵活多样的网络处理功能,以满足网络业务综合化的要求。就功能 的灵活性而言,多核网络处理器比不上通用处理器,就性能的强大性而言,也不 如专用处理器【3 1 1 。但网络的宽带化和综合化是相伴而生、相辅相成的,网络业务 的处理需求也是多方面的,从最优化理论的角度,多核网络处理器比通用和专用 处理器更能适应当前和今后网络发展的趋势,并且已被各个设备制造商和网络运 营商认定为新一代网络设备的核心,其价值也为市场所承认【3 l 】【s 1 。 1 2 多核网络处理器软件开发及重要性 多核网络处理器的硬件工程师为网络路由器提供了一个很好的硬件系统,然 而只有硬件,一个系统是不会工作并实现任何功能的,此时还需要软件工程师对 其进行合适的相应的软件开发,才能使这样一个软硬件系统发挥出它应有的性能 和功能【2 9 】。 多核网络处理器的软件开发与一般程序设计有许多不同之处,它不仅需要考 虑实际中网络应用的特征,而且还要充分利用网络处理器片上多核的硬件特点。 在多核网络处理器系统中,软件分为片上内核软件和高速包处理引擎应用程序软 件两部分。网络处理器片上内核多采用通用嵌入式微处理器内核,可以使用通用 嵌入式开发环境及开发语言对其进行开发,称为网络处理器内核程序的开发例。 但是在进行内核程序开发设计时,不仅仅针对片上通用处理器编程,同时还要协 同考虑与片上多高速包处理引擎之间的协作与通信,以及各种系统软硬件资源的 多核共享。高速包处理引擎的软件开发,是一种多线程的并行软件开发,使用专 门在高速包处理引擎上运行的开发语言进行编程,设计过程中不仅与高速包处理 引擎本身的硬件结构有关,还要考虑片上通用处理器内核。这种片上多处理器协 同工作的硬件体系结构使得相应的软件系统开发工作在很多方面都不同于一般单 核嵌入式系统软件开发。 网络处理器中通用处理器内核是片上多核的核心处理器单元,主要是处理一 些实时性要求较低但复杂度较高的任务,负责运行操作系统,并对片上多个高速 包处理引擎以及各种硬件资源进行控制,还要运行各种网络协议软件来处理高速 包处理引擎无法处理的异常数据分组或一些处理方式较为复杂的数据分组【2 9 】。网 络处理器内核程序属于软件体系结构中的控制平面,是可编程网络处理器上层应 用程序开发的基础。 多核网络处理器硬件体系的高速发展使得与其相适应的并行软件系统开发已 经远远的落在后面,跟不上多核硬件的发展速度。如何利用软件有效地对硬件进 行控制,使硬件性能得到充分发挥,与高性能硬件相匹配的软件开发显得尤为重 第一章绪论 要,而与底层硬件结合最紧密的网络处理器内核驱动软件开发研究更是网络处理 器软件系统的支撑和核心。 1 3 本论文的主要工作与成果 本论文主要针对x d n p 多核网络处理器应用系统,对脚网络处理器进行 内核程序软件开发,使整个硬件系统能够正常工作,实现基本的路由转发功能。 本论文的主要成果在于: 1 基于x d n p 网络处理器应用系统开发板,对嵌入式操作系统v x w o r k s 引导程序b o o 仃o m 进行修改和设计,实现了v x w o r l ! 【s 在x d n p 片上多核 系统中的正常加载与启动; 2 重点研究了) a ) n p 网络处理器内核软件开发设计原理与要求,对多处理 器核片上系统的硬件初始化驱动方案进行设计,着重解决了x d n p 内核 软件开发中片上硬件系统的初始化驱动配置,以及高速包处理引擎应用 程序代码加载这两大关键问题,并完成相关软件的设计实现。 3 研究了多核网络处理器内核软件研发中共享路由表的创建与访问技术, 并最终完成实现。 4 在t o m a d o2 2 开发环境下,实现了) n p 网络处理器应用系统内核软件 的设计运行,能够实现高速包处理引擎应用程序代码的加载,以及片上 多核共享静态路由表的创建,支持8 个百兆以太网端口到1 个千兆以太 网端口的路由交换中口数据分组对已创建的路由表的访问查询功能; 5 结合实际中脚网络处理器应用系统硬件电路板级平台进行验证,结 果表明上述功能满足要求。 1 4 本论文的结构安排 本论文第一章介绍了多核s o c 结构网络处理器的发展趋势以及广阔应用前 景,阐述了多核网络处理器软件开发与常规单核嵌入式系统软件开发的异同,以 及网络处理器片上通用处理器内核软件研发的重要意义。 第二章总结了x d n p 网络处理器的硬件体系结构,并描述了) a ) n p 网络处理 器应用系统板的基本硬件功能设计原理,为后续) a 讣咿网络处理器内核软件的开 发提供了硬件依据。 第三章中通过对多核网络处理器软件体系结构的分析,着重研究了基于 x d n p 网络处理器的内核软件开发设计原理和要求,并分别对脚网络处理器 内核程序中系统软件开发和应用软件开发进行了分析。提出了) a ) n p 网络处理器 4 多核网络处理器驱动软件关键技术研究 内核程序驱动技术中的几个关键环节。 第四章中依据阶旧内核软件开发原理和要求,针对实际中x d n p 网络处理 器应用系统板硬件,实现了嵌入式操作系统v x w o r l 【s 在x d n p 片上多核系统中 的引导加载和启动。对x d n p 内核软件开发过程中片上多核硬件系统的初始化驱 动方案进行设计与实现,并对其中关键环节:高速包处理引擎应用程序代码的加 载和共享路由表创建与查询技术的设计方案进行了深入的分析和详细的阐述。 第五章针对以上几章对) n p 网络处理器片上硬件系统内核软件驱动技术的 研发设计,结合硬件电路板,进行实际的硬件验证。 最后,对本论文所做的工作进行总结,并探讨本文在) n p 系统内核软件开 发中进一步的研究设计工作。 第二章x d n p 网络处理器应用系统的硬件原理 5 第二章x d n p 网络处理器应用系统的硬件原理 黼网络处理器应用系统,其硬件平台设备主要由搭载x d n p 网络处理器 的电路板组成,单板主要提供了八个百兆以太网端口、两个千兆光纤端口、一个 串行控制口、一个l o o m 调试网口,可用于提供高性能网络路由器数据分组的路 由转发、交换应用等。) a ) n p 网络处理器应用系统的主要设计目的是验证百兆 m a c 设备的两个相邻端口间、千兆m a c 设备的两端口间及百兆与千兆端口之间 的数据分组转发功能,并对转发所达到的性能进行评估,最终为企业用户提供高 性能的网络安全解决方案。 本章主要描述脚网络处理器应用系统硬件平台中各个硬件模块及其具体 功能。 2 1 黼网络处理器硬件体系结构 ) 咖网络处理器是一个集成度很高的综合数据处理器,它提供高性能并行 处理能力,可以适用于各种网络系统【6 l 。它采用类d 渔体系架构,结合了一个3 2 位通用处理器内核以及6 个独立的3 2 位s c 数据分组转发高速引擎( 称为高速 包处理引擎) ,是一个典型的片上多核系统。该片上系统中,除了7 颗r j s c 处 理器外,还有存取功能控制单元、高速数据接口模块。其中6 个高速包处理引擎 均支持硬件多线程,其处理能力适用于网络数据分组的分类、转发和排队等功能, 能够在1 秒钟内转发网络层数据分组3 0 0 万个;通用处理器内核作为) n p 的片 上内核处理器,适用于处理更加复杂的任务,如系统的初始化、路由表的建立与 维护、地址学习、网络管理等【6 】。x d n p 内部包含了存取功能控制单元作为) a 9 n p 与片外存储器之间的控制接口,6 4 位高速数据接口用于) n p 与网络链路层器件 之间的数据传输。x 】d n p 支持串行u 舢汀接口、具有实时时钟,还支持j t a g 用 于系统调试。讣限采用许多控制状态寄存器来对内部各个功能硬件模块进行配 置与管理控制旧j 。 x 阱m 片上系统通过总线实现各个模块之间的通信:一条是m b a 总线,用 于片上通用处理器内核与其它功能模块之间的通信,创b a 总线可以传输命令、 数据和地址;一条是c m d 总线,用于片上多个高速包处理引擎向其它功能模块 之间发出指令,c m d 总线是高速包处理引擎的命令总线;高速包处理引擎与其 它功能模块之间数据和地址的传输则通过存取功能控制单元中的s 洲总线与 s d 删总线来实现。x d n p 片上系统结构如图2 1 所示。 6 多核网络处理器驱动软件关键技术研究 图2 1 讣i p 芯片结构简图 2 1 1x d n p 片上通用处理器内核 脚片上通用内核处理器是舢网络处理器中最核心的中央处理单元, 用于运行嵌入式操作系统和内核软件,负责对脚整个片上硬件系统进行控制, 对路由器中的核心数据( 如路由表) 进行创建和维护,还要运行网络协议软件来 处理片上其它专用处理器在网络数据分组处理过程中遇到的异常情况【l j 。) n p 网络处理器中设计采用类删核的处理器,这是基于3 2 位a r m 指令集的s c 处理器,能够完全兼容一般删处理器的3 2 位指令集,暂不支持a r m 的1 6 位紧凑格式n u m b 指令系统。该内核不仅采用典型的对s c 的五级流水线结构以 及分离的指令高速缓存i c a c h e 和数据高速缓存d c a c h e 来协调处理器与存储器, 并提供字节可寻址的方式,大大加快指令的执行速度;还包含了指令存储器管理 单元n n 仉,和数据存储器管理单元d m m u ,分别实现指令和数据访存的虚拟地 址到物理地址的映射【1 】【2 9 1 。 与大多数系统一样,) a ) n p 片上通用内核处理器定义了一个线性的地址空间, 使得所有的外部存储器和总线都能够映射到这个空间里,也就是内核处理器的地 址映射。该地址空间包含从0 ) 【0 0 0 0 0 0 0 0 到o ) 【f f f f f f f f 供2 强个字节。图2 2 显 示了外部存储器和硬件设备是如何映射到该地址空间的。该地址空间从零地址起 始的四分之一部分和从最高端往下的四分之一部分分别映射给了s r a m 控制器 接口和s d 删控制器接口,允许f l 嬲胍0 m 中的引导程序占据低端存储器地址 区。 第二章x d n p 网络处理器应用系统的硬件原理 7 0 ,f f l 下f f f f 西( c o o 伽0 0 0 仍【b o 0 0 0 0 s d r a m s 啪l c hp a d 存储器 高速数据总线接口c s r s 高速包处理引擎传输寄存器 高速包处理引擎局部c s r s a m b a 总线传输接口 保留 通用内核处理器s y s t 咖r c g i s o c 晤 保留 低速端口s i o w p o r t s i 洲c s r s p u s m p o p 指令 b 螺o m f i a s h 设各5 s d r a m 控制器接口 设备4 棚a 总线传输接口 设备3 设备2 内核系统寄存器 设备1 设备0 s r a m 控制器接口 图2 2 讣咿片上通用处理器内核的3 2 位物理地址空间 舢片上系统上电或复位后,其通用处理器的中央内核通过配置相关的寄 存器,根据实际中片上系统的硬件模块与应用需要,逐步启动一些必要的片上系 统硬件,将它们设置为确定的状态。d n p 片上通用处理器内核上电后的启动顺 序大致如下【1 5 】: 1 设置寄存器p l lc f g ,配置锁相环p l l ,将锁相环p l l 设置为需要的内 核时钟频率; 2 设置寄存器t e s tc l o c k 6 心di d l ec o n t r o l ,配置时钟开关; 3 依次设置s 洲控制器接口中以下几个寄存器配置s 删控制器接口: s ra mc s r、s ra ms l o 、邺o n f i g、 s r 啦b 0 0 1 l c o n f i g 、 s 6 山l s l o w p o i 汀二c o n f i g ; 4 系统复位后,s d 删控制器不会自动脱离复位状态。设置脚i 也s e t 寄存器,使s d 洲控制器脱离复位态; 5 依次配置下面这4 个s d 洲控制器接口寄存器,设置s d 删控制器接 口:s d r a mm e m c t l o 、s d i 乙气mm e m c l i l l 、s d r a m 烈i t 、s d ra mc s r , 这些寄存器的某些配置需要参考内核处理器的时钟频率,在系统初始化引导启动 完成后最好不要进行重新编程配置; 6 设置寄存器c o n t r o lc p l 5 ,配置并使能存储管理单元m m u 、c a c h e 以 及缓冲区; 7 如果在系统启动时需要通过串口载入系统程序映像,则需要设置寄存器 i7 a r tc r 来配置串口。 | | 一 8 多核网络处理器驱动软件关键技术研究 2 1 2 高速包处理引擎 ) n p 片上系统包含了6 个可编程的3 2 位对s c 处理器,主要用于对网络通 信中口数据分组的处理,称为高速包处理引擎。它是一种专用结构的的处理器, 其工作主频可以在2 0 0 m h z 以上【2 8 】【l 】。在网络系统中,高速包处理引擎主要用于 数据分组的接收、分组的缓存和分类、分组头的校验和修改、分组的过滤和转发、 路由表的查找以及分组队列的管理等。高速包处理引擎中为这些操作提供了专门 的指令系统,使得网络系统开发人员能够高效地编写出适合这些应用的应用程序 代码,方便高速包处理引擎应用程序软件的更新,也使得所构成的路由器等网络 系统具有可编程特性,能够适应未来网络协议和业务应用的发展。 ) a ) n p 网络处理器中每个高速包处理引擎支持4 个硬件线程,并具有4 个程 序计数器分别用于这4 个线程,每个线程都有自己的线程标识,线程间切换时不 采用中断机制,而是在高速包处理引擎指令的控制下主动进行,从而实现零开销 的上下文切换。6 个高速包处理引擎总共可以运行2 4 个线程,这些线程的功能都 是完全对称的l 驯。 对应线程3 对应线程2 对应线程l 图2 3 高速包处理引擎传输寄存器的排列结构 高速包处理引擎内部不仅包含一个3 2 位的“a l u 和移位器 部件,能够在 单个时钟周期内完成一次算术逻辑运算和一个移位操作,还包含了一个局部程序 指令存储器和大量的寄存器。局部程序指令存储器用于存放其4 个线程所执行的 高速包处理引擎应用程序代码。高速包处理引擎包含两类寄存器:1 0 个3 2 位局 部寄存器,用于控制高速包处理引擎及其各个线程的状态和功能;1 2 8 个3 2 位通 用寄存器( g p r ) 和1 2 8 个3 2 位传输寄存器( e r ) 。通用寄存器分为两个部 分( ab a n k 和bb a n k ) ,分别连接在a l u 的两个不同入口,用于存放程序中使 用的数据;传输寄存器用于高速包处理引擎与其它部件之间的数据传输,分为3 2 个s r a m 写传输寄存器、3 2 个s r a m 读传输寄存器、3 2 个s d r a m 写传输寄存 器、3 2 个s d r a m 读传输寄存器,它们分别在每个高速包处理引擎中占据一段连 续的地址空间,与每个高速包处理引擎中4 个线程之间的对应关系以及排列结构 第二章x d n p 网络处理器应用系统的硬件原理 9 如图2 3 所示。这1 2 8 个传输寄存器用于高速包处理引擎与存储功能控制单元、 高速数据接口的c s r 和接收发送队列( i 强i f o t f i f o ) 之间的数据传输1 2 9 ji ”j 。 高速包处理引擎的结构也是一个典型的五级流水线的结构,其指令的执行通 过这五级流水线来实现。从功能上,高速包处理引擎的指令和结构是专门针对网 络分组处理进行设计的,从而精简了一些在分组处理中不常用的部件,并增加了 针对分组处理的指令功能,故特别适合于对网络分组的简单处理【3 1 】【l5 1 。 2 1 3 存取功能控制单元 脚网络处理器的存取功能控制单元包含了s 洲控制器和s d 删控制 器。其中,s r a m 控制器是工业标准的3 2 位接口,这个接口可以挂接片外的三 种设备:s r a m 存储器、f l a s h b o o t r o m 存储器和s l o 、p o r t 设备。通过s r j 气m 接 口,) n p 片上通用处理器内核和高速包处理引擎都可以对片外s 洲存储器进 行访问。这三种设备分别映射到不同的地址空间,每个地址空间具有不同的定位, 通过配置s 黜蝴接口中的局部寄存器进行编程控制这三种设备。由于在路由器应 用中,需要经常对分组描述符构成的数据分组队列进行管理,这些数据分组队列 通常是组织成链表的形式存放在片外s r a m 存储器中,s 删控制器支持自动堆 栈操作( 即p u s l l p o p 操作) ,用于构造数据链表,使得数据分组队列的操作速度 得以提耐1 5 1 。 s d r a m 控制器是一个工业标准的6 4 位存储器接口,拥有自己的局部寄存器, 用于挂接片外低成本高带宽的s d 洲存储器。s d r a m 接口中也包含读操作队 列和写操作队列,支持的访问方式除了一般的读写操作外,还支持原子的“读 修改写 操作,以及多个访存操作的合并。s 删和s d 洲接口的这种接口特 征称为支持主动的存储器访问优化哪j 。 2 1 4 高速数据接口模块 高速数据接口模块是x d n p 网络处理器与片外m a c 设备的接口,模块内部 不仅包含大量的控制状态寄存器,还包含了推拉引擎单元、接收队列( i u i f o ) 与发送队列( t f i f o ) 、b u s 数据总线接口、r e a d y b u s 单元等。模块内部整体结 构如图2 4 所示。 数据在高速数据接口模块中以微包为单位传输,微包是6 4 b i t 固定大小的传 输单位。网络中,一个m c 数据帧被m a c 层设备分割成若干个微包进行传输【2 9 1 。 l o 多核网络处理器驱动软件关键技术研究 肿f o l 接收状态机i r f - f o 卜_ 1 6 个元素 u kd l - s h d 璐 r c a d y b 璐l _ _ _ _ - 。 h 寄存器8 b i t 卜 菱 一j - lc s l b 数据总线接口 型1 _ 寄存器8 b i t 卜銎 - t f i f o l 发送状态机l- l 啊f o 卜_ 1 6 个元素 - 占、+ 止j 口j 一址 、 图2 4 高速数据接口模块 推拉引擎单元是高速数据接口模块与x d n p 片上系统的其它功能单元以及各 个处理器之间的接口,推引擎和拉引擎相互独立地并行工作,以提高数据传输速 率。推引擎将数据推出高速数据接口总线单元,送到通用处理器内核中或者是高 速包处理引擎的传输寄存器;拉引擎将数据从通用处理器内核或者是高速包处理 引擎的传输寄存器中拉到高速数据接口模块【2 9 】。 b l l s 数据总线接口是x d n p 网络处理器的主要数据通道,提供了网络处理 器与外部网络的接口,使得) n p 能够通过片外m a c 层器件向外部发送和接收 网络数据分组。x 】) n p 是b u s 数据总线接口的主设备,片外m a c 层器件是从 设备。b u s 数据总线接口的核心部件是两个状态机,负责微包的接收与发送。 高速包处理引擎只需要向这两个状态机发送命令,便可以实现微包的接收和发送, 接收和发送状态机使得高速包处理引擎专注于数据分组的缓存和处理,而不用担 心微包在i x b u s 数据总线接口上的接收和发送,从而减轻了高速包处理引擎的负 担1 2 州【l5 。b u s 数据总线接口有多种工作模式,可配置成一条6 4 位双向总线或 两条3 2 位单向总线,在6 4 位工作模式下,还可以连接多个) a ) n p 网络处理器。 r e a d y b u s 单元实际上是一个状态机,r e a d y b u s 单元有一套自己的操作控制 命令,在启动时由片上通用处理器内核装入相应的寄存器中,然后在r e a d y b u s 单元中以循环的方式运行,用于完成其三个主要功甜2 9 】:一是收集) n p 片外 m a c 层设备( 即从设备) 上接收发送队列中的分组就绪标志,当r e a d y b u s 单元 检测到队列中分组就绪,便通过a u t o p u s h 操作通知高速包处理引擎,由高速包处 理引擎执行指令让b u s 数据总线接口中接收发送状态机进行m a c 层设备缓存 队列与) n p 高速数据接口的接收发送队列之间的分组数据传输;二是向从设备 发出流控指令;三是在两个主设备( 如两个舢网络处理器) 之间进行通信。 接收队列( r f i f o ) 用于存储从b i l s 数据总线接口上接收过来的分组数据, 从b u s 数据总线接口上接收到的微包会首先由接收状态机放在r f i f o 中缓存, 然后由高速包处理引擎将微包从i 心i f o 中取出来传送到其内部传输寄存器中进 第二章x d n p 网络处理器应用系统的硬件原理 1 1 行分析验证,并对分组头处理和修改后将微包存放在片外s d 删存储器中。发 送队列( t f i f o ) 用于存放准备通过b u s 数据总线接口向外发送的分组数据。 在发送微包的时候,高速包处理引擎中的发送线程将待发送的微包移动至t f i f o 中,b i l s 数据总线接口上的发送状态机检查t f i f o 中的有效标记后,将微包从 t f i f 0 中取走交给片外的m a c 设备。 总之,脚是一个多核并行的网络处理器,包含了7 个赳s c 处理器核, 加上硬件多线程的支持,可达到每秒l g 次操作的总体运行性能。拥有如此的高 性能和低功耗的特征,以及其运行的协议应用程序可编程性,使得它可以代替 a s i c 器件构成各种可编程的网络系统【2 9 】【6 】。 2 2 ) n p 网络处理器应用系统板级设计 舢网络处理器应用系统板采用模块化设计,由x i ) n p 网络处理器、片外 存储器s d 洲、s 删及f l a s h 、1 0 l o o m 以太网接口和l o o o m 光纤以太网接 口,以及相关外围支持电路如电源模块、串口、网口调试模块组成,其结构如图 2 5 所示。下面对各子模块功能设计分别进行描述: 图2 5 讣咿网络处理器应用系统板级结构图 x d n p 模块。是整个x d n p 网络处理器应用系统板级的核心模块,完成系统 中所有的控制和处理任务,实现网络应用系统的核心功能。实际硬件电路板中使 用2 1 节中描述的) a ) n p 网络处理器。 m a c 层与物理层( p h y ) 模块。这个模块主要实现将网路中传递的数据分 组封装成m a c 帧,并将网路中传递的口数据包分割成规定大小的微包,交给 x 1 ) n p 模块进行处理。系统板中m a c 设备的选择上,使用1 片i n t e l 公司的 g c f 4 4 0 a c 芯片,与两个1 0 0p h yp m 9 7 6 3 相连,作为8 个百兆慢端口的m a c 1 2 多核网络处理器驱动软件关键技术研究 层设备;使用1 片i m e l 公司的o c f 1 0 0 2 e d 芯片,与两个g i g as e r d e s 相连, 作为2 个千兆快端口的m a c 层设备。物理层设备的选择上,使用2 片i n t e l 公司 的l x 9 7 6 3 h c 芯片,与8 个百兆慢端口相连,作为8 个百兆慢端口的物理层设备 1 0 0p h yp m 9 7 6 3 ;使用2 片a g l l e m 公司的瑚) m p 1 6 3 6 a 芯片,与2 个千兆快端 口相连,作为2 个千兆快端口的物理层设备g i g as e r d e s 。这个模块为x 】孙渖网 络处理器应用系统能够实现百兆、千兆以太网之间的网络数据分组传输等典型路 由器应用功能提供了强有力的硬件支持。 高速存储器s r a m 模块。s 删存储器有读写速度块的特点,可以用于业务 处理过程中控制信息的存储,存放重要数据结构,例如分组描述符等链表,以及 各种表项,例如i p 路由查询表等高速数据。s 删模块连接于) a 孙咿芯片的 s 洲控制器接口0 上,数据总线宽度设计为3 2 b “,地址总线宽度设计为2 l b i t , 包含2 位片选,总线频率支持1 0 0 m h z 、1 5 0 m 、2 0 0 z 。s r j 气m 子模块的芯 片选用4 片x i l i l l ) 【公司的c y 7 c 1 3 8 6 d 芯片,单片容量2 m b 。设计总容量为大小 为8 m b 。 大容量s d r a m 模块。大容量存储单元s d 洲为讣咿网络处理器应用系 统提供主内存,用于操作系统运行和业务数据的缓存,存放系统启动时的引导映 像、启动后的系统映像、以及p 分组数据,以及路由转发表项等。s d r a m 连接 于) n p 网络处理器的s d 删控制器接口,设计数据总线宽度为6 4 b i t ,地址 总线1 5 b i t ,总线频率支持l o o m h z 、l5 0 m h z 。s d r a m 模块选用4 片m i c r o n 公 司的m t 4 8 l c l 6 m 1 6 a 2 t g 7 5 dd d rs d r a m 芯片,单片空间大小为2 5 6 m b i t , 设计总容量为大小为1 2 8 m b v t e 。 f l 础& b o o t r o m 模块,主要用作存储启动代码、引导代码映像、操作系统 映像、以及应用程序等。 f l a s h 子模块用于存放b o o 们m 引导代码映像和操作系统映像,为x d n p 网 络处理器应用系统提供两片f l 嬲h ,连接于) n p 芯片的h o s t 接口,数据宽度设 计为8 b i t ,地址总线2 l b i t ,数据总线3 2b i t ( 每个芯片数据总线1 6b i t ) ,总地址 空间为8 m b y t e 。该子模块选用2 片i n t e l 公司的t e 2 8 f 1 2 8 j 3 芯片;其数据总线和 地址总线都是由s r a m 的数据地址总线通过s l o 、p o nb u 虢r ( 4 片7 4 l v c h l 6 2 4 5 芯片) 低速缓冲端口接入到f l 础上。 b 0 0 t i 的m 子模块专门用于存储系统加电启动代码,是内核在复位之后开始执 行指令的地方。该模块地址线设计为1 9 位,数据线8 位,总共空间大小为2 m b y t e ; 选用4 片舢d 公司的a m 2 9 l v 0 4 0 b 9 0 j c 芯片,该模块也可用于存放通用处理 器内核调试监控程序f u t i l ( f 1 衲u t i l 时) 。 低速端口c p l d 模块。该模块主要用于提供各模块的控制信号;采用1 片 l a t t i c e 公司的l c 4 1 2 8 v - 7 5 t 1 2 8 1 0 l 芯片来实现下面功能:1 ) 对x d n p 芯片的 第二章x d n p 网络处理器应用系统的硬件原理 1 3 s l o w p o n 接口的地址数据复用总线进行地址数据解复用;对解复用后的地址进 行译码得出片选信号;驱动输出s l o 、v p o r t 接口的读写控制信号。2 ) 接收来自模 块外的复位信号,然后与x d n p 芯片复位输出信号组合后进行模块内各器件的复 位。3 ) 完成模块内外各芯片的中断信号的处理,将各中断信号锁存后并形成统一 中断信号由g p i o 中断输入上报给) n p 芯片。4 ) 将上述步骤产生的地址、数 据、读写、片选、复位以及中断等信号组成一个完整的h o s t 接口,经7 4 l v l 6 2 4 5 总线驱动芯片驱动后供x 1 ) n p 模块内外其他部件的慢速设备接口使用。5 ) 提供 状态指示灯控制信号输出。6 ) 实现对发生在g p i o 【0 :7 】、s pa d 【0 :7 】及 c f gr s t d

温馨提示

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

评论

0/150

提交评论