




已阅读5页,还剩64页未读, 继续免费阅读
(通信与信息系统专业论文)openrisc1200处理器的研究和验证.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 本研究以高性能网络处理器设计为研究背景对r i s c 处理器的基础理论和一般 构架进行详尽的研究。在此基础上对一种开源处理器o p e n r i s c l 2 0 0 的设计代码进 行了研究和验证。 论文首先对网络处理器技术做出了简单的介绍,并对其内部的关键处理单元微 引擎处理器的架构进行了讨论。指出了微引擎和普通l u s c 处理器在架构上的异 同。接着作者详细介绍了r i s c 处理器设计中一些基础且关键的技术,对处理器内 的流水线,冒险处理,存储体系等都进行了学习。为了能对p d s c 处理器设计具有 更深入直观的理解,笔者开始对一种开放源代码的r i s c 处理器o p e n r i s c l 2 0 0 进 行了详尽的研究,对该处理器的整体架构,各个单元模块,具体的v e r i l o g h d l 设 计代码等进行了研究和学习,并对该处理器内的关键设计单元和处理核进行了软 件仿真。最终掌握了该处理器的模块构架和具体设计实现技术。 接着笔者对该处理器前端设计中的功能模块进行了测试,即将该处理器的设计 代码进行综合并下载到f p g a 硬件电路中运行,用以验证该处理器功能的正确性。 笔者设计了对处理器进行验证的系统环境,将o p e n r i s c l 2 0 0 处理器和其他验证系 统需要的功能单元组合成可调试观测的s o c 系统,并在开发宿主机上安装了该处 理器的软件开发环境。通过软硬件的联合测试验证了该处理器的可行性和正确性。 在论文的结尾,依照以上对r i s c 处理器架构的学习掌握和对网络处理器中微 引擎架构的理解提出了一种面向网络处理的r i s c 专用处理器设计方案。该方案从 指令集,功能单元和存储体系等多个方面对o r l 2 0 0 处理器进行了尝试性的修改, 并在理论上对该处理器的性能进行了分析。该方案为今后对网络处理器架构的进 一步研究和设计打下了一定的基础。 关键词:微引擎网络处理器o p e n r i s c l 2 0 0 处理器 a b s t r a c t a b s t r a c t t h i sp a p e rw a s b a s e do i lt h ep r o j e c to fh i g h p e r f o r m a n c en e t w o r kp r o c e s s o r , i tf o c u s e d o nt h er e s e a r c ho ft h eb a s i ct h e o r ya n dt h ea r c h i t e c t u r eo ft h er i s cp r o c e s s o r a r e s e a r c ha n dt e s to nt h eo p e n r i s c12 0 0p r o c e s s o rw e r em a d e t h ec o n c e p to ft h en e t w o r kp r o c e s s o rw a si n t r o d u c e df i r s t l y , t h e nad i s c u s s i o no n m i c r o e n g i n ew h i c hi sak e yt e c h i nn p w a sm a d et oc o m p a r eb e t w e e nt h et h em e a n dt h eg e n e r a lr i s cp r o c e s s o r a f t e rt h a tap r o f o u n ds t u d yo nt h eb a s i ca n dk e y t e c h n o l o g yo fr i s cp r o c e s s o rw a sm a d e ,s u c ha sp i p e l i n e ,d e a l i n gw i t ht h er i s ka n dt h e s t o r a g es y s t e m t om a k eai n t u i t i o n i s ta n dd e e pu p s t a n d i n go fp r o c e s s o rd e s i g n i n g ,t h e w r i t e rd i da na n a l y z eo n ak i n do fo p e ns o u r c ep r o c e s s o r , o p e n r i s c 12 0 0 ,w h o s ef r a m e a r c h i t e c t u r e ,f u n c t i o nm o d u l ea n dd e v e l o pc o d ew e r es t u i e d t h e nf u n c t i o ns i m u l a t i o n s w e r em a d et oh e l pt ou n d e r s t a n dt h ea r c h i t e c t u r ea n dt h ei m p l e m e n t o ft h ep r o c e s s o r a f r o n t i n g e n df u n c t i o nt e s t sw a sm a d et ot h ep r o c e s s o r , w h i c hs y n t h e t i z e st h e d e s i g nc o d eo ft h ep r o c e s s o ra n dd o w n l o a di tt ot h ef p g ab o a r dt ot e s tt h ev a l i d i t yo f t h ec o d eo fp r o c e s s o r at e s ts y s t e mw a s d e s i g n e d ,w h i c hc o n t a i n e dt h eo p e n r i s c12 0 0 p r o c e s s o ra n do t h e rf u n c t i o nu n i tu s e df o rt h es o ct e s t a n das o f t w a r ed e v e l o p m e n t e n v i r o n m e n tw a ss t a l l e do nt h ep c t h e nt h ev a l i d i t yo ft h e p r o c e s s o rw a sa p p r o v e db y t h em i x e dt e s te n v i r m e n to fh a r d w a r ea n ds o f t w a r e a tt h ee n do ft h ep a p e r , at h o u g h to fd e s i g nan e wk i n do fn e t w o r k s p e c i f i e d p r o c e s s o rw a sb r o u g h t ,b a s e do nt h eu n d e r s t a n d i n go nt h ea r c h i t e c t u r eo fr i s c p r o c e s s o ra n dt h em i c r o e n g i n e t h o u g h tt h i si d e a ,t h ei n s t r u c t i o ns e t ,t h ef u n c t i o nu n i t a n dt h es t o r a g es y s t e mw e r ec h a n g e df r o m o ni t sp e r f o r m a n c ew a sd o n e t h i st h o u g h t n e t w o r kp r o c e s s o ri nt h ef u t u r ew o r k o p e n r i s c12 0 0p r o c e s s o r , a n da na n a l y s i s h a sm a d eab a s i cf o u n d a t i o nt od e s i g nt h e k e yw o r d s :m i c r o e n g i n en e t w o r kp r o c e s s o ro p e n r l s cl2 0 0p r o c e s s o r 创新性声明 本人声明所呈交的论文是我个人在导师的指导下进行的研究工作及所取得的 研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文 中不包含其它人已经发表或撰写过的研究成果:也不包含为获得西安电子科技大 学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志所做的任 何贡献均已在论文中做了明确的说明并表示了谢意 申请学位论文与资料若有不实之处,本人承担一切相关责任。 采人签名。 圣l 地同期:竺坐 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定即:研究 生在校攻读学位期问论文工作的知识产权单位属两安电子利技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印、或其它复制手段保存论文。( 保密的论 文在解密后遵守此规定) 本学位论文属于保密,在年解密后适用本授权书。 日期:竺) ! : 日期:圣! ! z :! 二羔 第一章绪论 第一章绪论 1 1 处理器简介 随着信息技术的快速发展,信息的处理的方式,传递途径,对信息的解析等技 术都在飞速发展。这其中的关键当属对信息处理效率的大幅度提高。所有这些进 步均与处理器技术的发展是分不开的。从某种程度上讲是信息处理要求的不断提 高刺激了处理器技术的改进和处理器性能的提高,同时更为先进的处理器的不断 出现也有力的推动了现代通信电子事业的发展。处理器经过3 0 余年的发展,已形 成了种类繁多功能各异的各类处理器。现今世界有a r m ,i b m ,i n t e l ,a m d , m o t o r o l a ,m i p s 等许多的公司进行着处理器的研发和制造,这些产品以其自身的 良好性能被运用于当今电子,通讯时代的各个领域。处理器设计技术正在成为当 今信息技术发展中的一项关键技术越来越受到广大公司和研究机构的重视。 处理器是一种专门处理指令和数据的处理单元,是系统设计中的核心或关键部 分。处理器一般都有自己的指令集合,这些指令被以某种顺序送入处理器内部, 处理器对收到的指令进行解码并调用相应的处理单元对指定的操作数进行处理, 最后将处理好的结果送入事先准备好的寄存器或数据总线上。处理器的性能主要 体现在处理器是否能以够“快的速度对指令序列进行处理,这里“快体现在 以下的几个方面:首先处理器的工作频率是否够高,这是一个基本的条件,只有 更高的时钟频率才能保证处理器在单位时间内能够触发更多的操作,执行更多的 指令。其次,处理器在每个时钟周期内可处理的指令的数目也很重要,这也是处 理器处理能力的一项重要指标。设计结构优良的处理器可以在一个时钟周期内处 理一条甚至一条以上的指令。另外处理器的性能还与在其上运行的指令集的效率 有关,因此对于一些有专门用图的处理器其指令集往往经过特殊的设计。一款优 秀的处理器正是结合以上多方面因素的考虑而设计的。 依照不同的分类方法我们将处理器进行分类。根据使用方式的不同我们可以将 处理器分为:用于服务器、p c 的处理器和嵌入式处理器。前者主要有如用于服务 器和p c 机,如:i n t e l 公司的“奔腾”处理器。嵌入式处理器主要针对的是那些专 门用途的计算机和需要处理器进行控制计算的电子产品,如a r m 处理器。 按照处理器内部指令集系统的不同又可将处理器划分为r i s c 处理器和c i s c 处理器。c i s c 称为复杂指令系统,其指令集有如下特点:具有大量的复杂指令、 指令长度不统一、具有多种寻址方式。著名的x 8 6 指令系统就属于c i s c 中的一 种,代表者有i n t e l 的p e n t i u m 系列处理器。随着对处理器执行速率和效能的要求 的不断提高,该种类型的处理器在解码和执行时操作不统一效率无法提高的弊端 逐渐显现,因此r i s c 处理器的思想又被逐渐采纳。r i s c 称为精简指令系统。r i s c 2 o p e n r i s c l 2 0 0 处理器的研究与验证 简化了c i s c 指令系统,采用统一长度的指令码,因而大大提高了处理器的运行效 率。如p o w e r p c ,a r m ,m i p s 等处理器就属于r i s c 处理器。 另外,根据处理器本身的用途不同又可将其分为通用处理器和专用处理器。通 用处理器的指令设计面向一般的控制和处理任务,该类处理器的功能设计均衡, 可以完成多种处理任务,但在处理某些专门的处理任务时效率较低。因此设计者 针对一些具有专门处理要求的应用设计了专用处理器。其不仅完成普通处理器的 处理功能,还会通过其专用指令集或处理单元高效地完成一些特殊的处理功能。 如计算机的显卡芯片处理器则是一种专门负责处理图像业务的处理器。网络处理 器也是一种专门负责处理网络业务的专用处理器。 处理器芯片设计曾经作为一种较为先进的技术在一段时间内为国外的大型公 司或研究机构所垄断。但随着技术的不断发展一些介绍处理器和计算机体系结构 的资料在学术界不断涌现。并且一些公司为了顾客的需求也会部分开放部分处理 器架构的资料。另外在国外一些开放设计源代码的处理器也在网上被不断公布和 讨论。所有这些都有力的促进了处理器设计的不断进步,特别是我国处理器设计 的步伐。在我国包括中科院、西工大、浙江大学等多家单位和院校都已经对处理 器结构设计和制造进行了长期的研究,并取得显著成就,诞生了“龙芯 、“龙腾 等处理器。因此加强对处理器架构的研究和设计为进一步推进我国处理器芯片的 设计具有重要的意义。 1 2 论文课题的背景和意义 随着网络数据业务的爆炸式增长,网络宽带化、综合化和新业务的不断出现, 这就要求通信网络设备不仅能够进行快速的路由交换,还要求能够对不同的网络 业务进行复杂的智能化处理。为了更好地适应网络宽带化和综合化的发展趋势, 结合通用处理器和专用处理器的优势,通信网络处理器应运丽生。m o t o r o l a 的 p o w e r q u i c ci i 通信处理器芯片1 4 l 和i n t c l 公司的i x p 网络处理器芯片【1 】【2 】都是杰 出的代表。网络处理器在业务处理速度和应用灵活性之间取得了较好的平衡,在 新一代的综合业务网中日益得到重视和广泛应用。 近年来各类处理器蓬勃发展,特别是我国自行设计的“龙芯 等微处理器的诞 生进一步推进了我国处理器的研发和微电子技术的进步。但目前我国在专用处理 器特别是网络处理器的研发和设计上同国外发达国家还有一定差距。目前国内还 没有设计和制造网络处理器的能力,仅仅是基于国外前期网络处理器开发板和芯 片从事应用开发工作。为此我校将“高性能网络处理器技术 作为了未来几年的 重点研究项目,力求在不久的将来推出一款性能优良的面向网络业务的专用处理 器。 第一章绪论 笔者的论文和工作内容正是基于该项目背景而开展的。这款高性能网络处理器 ( 以下简称为x d - n p ) 的构架主要采用s o c 的集成设计的思想。其内部集成了多 种专用处理模块和多个特殊功能的处理器。其中包括一块a r m 核心处理器负责整 个芯片的控制和高层次网络协议的处理。另外集成了多块被称之为微引擎的专门 处理数据业务的处理器。 微引擎处理器是x d 网络处理器设计中的关键单元。微引擎处理器为r i s c 架 构的专用处理器,其指令集主要为了高效处理网络处理任务而设计。通过对其微 指令的编程,微引擎可以快速的完成诸如数据包的接收解析和转发等数据业务处 理任务。在项目中笔者的前期主要工作是参照i n t c l 公司的i x p l 2 0 0 网络处理器内 的微引擎处理器【l 】【2 】对x d 网络处理器的微引擎进行整体构架的研究性设计。 微引擎是构成这些高端通信网络处理器的核心技术,微引擎处理器虽然在指 令集和存储体系上和普通的r i s c 处理器有所不同外,但其对指令的流水线处理思 想和大多数r i s c 处理器有很大的类似之处。因此为了能更好的了解一般r i s c 处 理器的结构和工作原理,更深入的研究和设计微引擎的工作流程,笔者首先选取 了一款较为优秀的开源处理器o p e n r i s c l 2 0 0 进行了分析和研究,为日后微引擎的 设计奠定基础。这就是本文的由来。 1 3 本文所做工作 本文首先对处理器发展及其特点作了简要的介绍,特别对r i s c 处理器的发展 特点作以总结。 接着笔者介绍了与论文背景相关的网络处理器的概念和构架,特别是对其中的 r i s c 架构的微引擎处理器进行了介绍和讨论。接着笔者介绍了芯片设计的一般流 程和方法,特别是前端设计和s o c 设计等概念。 文章的第三部分重点介绍了r i s c 处理器的一些基本的概念和设计中经常使用 的一些关键性技术,为后续章节打下理论基础。 第四部分对o p c n r i s c l 2 0 0 处理器的具体架构和代码实现等进行了详细的介 绍。 第五部分对o p c n r i s c l 2 0 0 处理器的关键技术和关键功能单元进行了仿真。并 且最终搭建了f p g a 测试环境,将软核形式的处理器代码写入f p g a 中,对该款 处理器进行了基于实际硬件环境的系统级测试。 最后论文还提出了一种基于o p e n r i s c l 2 0 0 处理器构架进行改进的处理器架 构,旨在对适合网络处理任务的微引擎处理器设计进行一定的研究和探讨。该处 理器既结合了通用处理器o p c n r i s k l 2 0 0 的流水线等技术,同时又具有适合网络处 理的指令集和硬件加速单元和存储体系。所有以上的工作为后续的r i s c 构架处理 4 o p e n r i s c l 2 0 0 处理器的研究与验证 器和微引擎处理器的前端设计进行了有意义的探索。 第二章处理器设计概述 h2i 一雌 j 址删器掣缃h 从上图可以看h j _ 一般韵处理器的组成结构和工作关系。处理器剥外存在有数据 和控制接口处理器可以通过这些接口完成与系统主存的通信或对些外围的功 能单元进行控制。由于对外部存储设备的读写操作相对于处理器的处理速度较慢, 为了提高处理器的处理效率常常事先将鹩段的数据或指令提6 口放入处理器内部等 待处理,因此在处理器内部加入多级的c a c h e 进行缓存,缓存一般为l 级到2 级。 其中距离处理单元虽近的为一级缓存。存放在一级缨存中的指令经过取指令单元 币i 译码后发送到指令执行单元进行执行。为了加速指令的执行速率提高处理器的 执行效率,处理器内部常常运用如流水线,超标量并行处理等设计思想来对指令 进行处理。处理完的指令结果被送同c a c h e 巾,并通过外部总线返回外部存储或外 部的功能单元。另外在处理器内部可能还有诸立预测分支指令执行方向的分支预 测单元和其他的一些功能单元,所有这些单兀根据架构的不同而有所不同但均 对处理器性能的提升起到作用。 【三【上是对处理器架构i :进行工作的一个简单的介绍,我们可以看出现今处理器 架构具有一些共同技术和特点。这些技术也是我们对处理器构架进行学习研究和 设计的重点。 首先,现今的处理描架构人都采川流水线技术,井口通过对流水线技术不断的 改良使得其执行效能和流水深度都有了很大的提高。流水线是一利一侄连续指令流 6 o p e n r i s c l 2 0 0 处理器的研究与验证 中并发指令级并行性的技术。多个指令可以重叠执行提高c p u 的效率。流水线技 术实际并不能增加处理速度,而是将处理分为多个流水节拍,每个流水节拍完成 指令处理的部分功能,这样在同一个时钟周期下可以有多条指令被同时执行。流 水线在其上运行的指令的相关性也越大。指令的相关性导致了流水线技术必须时 而暂停或靠其他技术将其消除,否则将会导致指令执行时的各种冒险和错误。因 此在流水线上出现了多种技术用以消除指令间的相互关系。如,流水线旁路技术, 寄存器换名技术,记分板技术等等。这些技术大多十分成熟,现代的处理器几乎 都在使用以上的技术来进一步改进和增强其处理器的执行效能。 其次,处理器内部大量采用并行处理单元进行处理,广泛采用超标量技术。相 对于流水线技术在处理深度上对处理器效能的挖掘,超标量技术则在处理器的宽 度上对处理器的设计进行了一次革命。通过配置并行的多个处理单元,超标量处 理器能够在个时钟周期内并行发射多条指令,这些指令通过乱序执行最终得到 汇聚,这种思想能够极大地增加处理器的执行效率,似乎已经成为了现代处理器 设计的通用做法。并行指令调度的算法也在被不断改进,以求达到在同一时间内 尽可能让更多的指令同时工作从而获得更高的执行效率 另外,处理器的片内缓存逐渐增大。随着存储技术的发展,容量更大体积更小 的片上存储单元被4 断提出。因此现代处理器上的缓存容量变得越来越大。这样 每次处理器取出的执行指令和数据可以更多,大大减小了c a c h e 不“l l i t 而对处理 器带来的时延。i n t c l 的处理器甚至出现了2 m 左右片上缓存。在片内缓存的结构 设计上曾经存在两种主流设计思想:一种为“冯纽曼结构,即处理器内部一般 只需要一快存储区域即可。这种思想把程序和数据看作相同的对象进行处理,在 当时奠定了现代计算机的基础。然而随着流水线技术的广泛应用“冯纽曼 结构 又产生了新的瓶颈。因为在流水线中已经正在执行的一条指令却可能需要装载数 据,如果只有一个高速缓冲区,一条访问通道,则必须使两个操作错开,这样必 须暂停流水线,因而大大降低了流水线的工作效率。因此现今的处理器大多将数 据缓存和指令缓存分离,分两个通道进行处理。这种缓存的架构称之为“哈佛” 结构。当今的主流处理器在其一级缓存的设计上一般均采用“哈佛”结构。 另外,现今的高性能处理器内部一般会带有相应的分支预测单元。而且分支预 测技术逐渐变得复杂和精确。分支指令由于其执行的不确定性给指令的连续执行 带来了影响。因此现代处理器都带有分支预测单元对分支指令进行预测执行,且 各种预测算法和单元被提出和改进,这都大大提高了处理器的预测预测精度,现 代处理器分支预测精度基本上都在9 0 以上,并且更为精确的算法仍在被提出。 在指令集架构的设计上,大多数处理器呈现出的指令集从c i s c 体系或向r i s c 体系进行转化的特点。在处理器的发展中c i s c 构架曾经占有重要的地位,然而随 着处理器工作频率和_ 作速率的不断提升c i s c 构架那种格式不统一的指令形式 第二章处理器设引概述 给高速的处理带来了极大的不便。多年后随着存储单元技术的进步和其他理论体 系的完善,人们又回到了r i s c 构架的思想之上,承认了r i s c 构架那种简单高效 的指令处理机制。井且在大多数的现代处理器上均采用了r i s c 构架。一些为了保 持对原c l s c 构架之上的软件兼容的处理器在其内部其实在执行经过泽码单元翻 译的r i s c 代码。 总之,现代的娃理器的流水线变得越来越深,超标量的发射宽度变得越来越宽, 缓存变得越来越大,分支预测技术变得越来越复杂。同时其内挪些特殊的控制 单元和执行单元也逐渐复杂化。微处理器在进入后r i s c 时代以后,其性能的进一 步提高是用提高复杂度柬换取的。这种以复杂度换取性能的做法现在已达到i 收益 递减点。因此处理器的发展似乎也正在处于一个转折点,似乎需婴在新的方向寻 求突破。这足我们这个项开应该紧密关注和思考的。 阱上几个方面的一些技术币嘴点,笔者将在后续的章节进行更为详细的介绍和 讨论。并且还将结合实际的o p e n r l s c l 2 0 0 处理器进行参照和分析。 2 2 网络处理器及微引擎架构 由于课题基于高能网络处理器的 5 计凼此有必要将网络处理器的概念和特 点作以简要的介绍,以求对课题的整体理解和把握。网络处理器专门引对网络处 理任务而设计。其内部集成有专门为网络处理而进行优化设计的硬件结构和专用 的r i s c 引擎、专用指令集、特殊功能单元,满足高速分组数 l | :线述处理的要求, 以适应通信网络的宽惜化。完全可编程的处理模式提供了灵活多样的网络处理功 能,能够迅速实现新的标准、服务、应用,满足网络业务多样化、综合化要求。 图2 2 网绻处理器的融台优势 上图硅示了网络处理器的特性。a r 以看j i 网络处理器吸收和借鉴了多利,处理器 芯片的设训思想和优势。其既具有通用处坪器编程的灵活性,又类似于通信处理 器或d s p 处理器进行通信刚络业务的处理,处理速率较高接近丁用a s i c 处理 芯片。因而有较为j i 泛的使用空间。通过编成川以完成多种处弹功能。 一般来讲网络处理器具有如下的特点:山r 网络处理器”r 咀针对不i 可的处理任 o p e n r i s c l 2 0 0 处理器的q f 究与验让 务通过软件进编程盯发,田此其jr 发周期大大低于一款相同功能的a i s c 芯l , 产品j l :发周期和成本比较低;网络处理器山1 。要面对网络业务进行处理凼此直接 集成有一监高速的通信接口,这【! 玉大大简化了板级系统的设计;网络处理器一般 都具有较高的处理速率,以保证对高速数据业务和数据包的宴时处理。根据网络 处理器f j 特点和国外一些网络处理器的构架思想我校设训了西电网络处理器。 以下简要介绍法处理器的1 二体构架和工作原理。 征j 孵胃 尊。赫。2 一器。 j :i “、 ;一r : 【+ m _ l m m 图2 3 曲电网络处理器主体框图 上罔显示丁x d - n p 的上休构架。x d - n p 集成了多种功能的处理核和处理单元: a r m 处理核j 二要负责整个处理芯片的配簧和控制工作,同时还对网络业务处理中 一些复杂的枷议和算法进行处理,微引擎主要负贵底层数据业务的岛速处理,整 个网络处理器所处理的业务大部分由微引擎直接完成。凹个徽引擎可以旧时并行 配合处理网络数据业务,该设计增强了| 埘络处理器的并行处理能力。网络处理引 擎是为了提高处理速率而提供的一个专门的加速处理器,主要完成网络处理常见 的加密解密,哈西运算等功能。西电n p 支持p c i 接口,s r a m 接口和d r a m 接 ,同时还提供个介质交换背板单兀直接控制j 上的专用通信接口。可支持 u t o p i a ,p o s 和千兆咀太网等多种通信格式。另外整个网络处理器内部还集成了 通用i o ,r f | 断控制器等单元。整个芯片内;l l 采用两大类总线进行互联,微引擎处 理器和其周边单,g 主要使用c p p 总线进行互联,该总线时钟频率高且总线位宽大, 采用了仲裁和传输分离的流水总线技术,因而具有很高的吞吐率已支撑微引擎及 其周边的高速业务交换,a r m 核处理器及其周边主要使用a s i 总线。总线问通过 总线桥进行桥接转换。 处理器采用快慢通道的思想对从某种通信接口接收到的业务数据包进行处理。 踹一旦篡l;一=一 第二章处理器设计概连 对于一般的数据业务包,其数量远大于控制包,且对该类数据包的处理较为简单 一般只有几十个操作环节,对该类数据包的处理往往要求高速,否则会引起数据 业务的拥塞或丢失。因此一般直接将该类业务包交给高速的微引擎进行处理。我 们一般称之为快通道处理。另外一些和协议相关的控制分组,其内往往带有网络 路由的控制信息,且对协议的处理往往因有各类算法的参与而比较复杂,必须对 其进行特殊的处理因此对于该类控制包,在微引擎进行数据包性质的判定后则 会直接发向a r m 处理器进行处理。该处理被称之为慢通道处理。快慢通道的处理 思想可以有效的对处理任务进行分类针对不同的处理要求发挥出不同处理器的 优势,促进整个网络处理器芯片协同高效的工作。 微引擎是网络处理器的主要功能部件,其设计足网络处理器中的核心技术之 一。笔者在项同背景下对微引擎的主要结构设计进行了分析。井借鉴学习了i n t e l 公司的i x p l 2 0 0 处理器的微引擎架构。i x p l 2 0 0 的微引擎具有鲜明的专用性,是 一款r i s c 单核处理罂,采用“哈佛”结构,分指令和数据两个通道。微引擎内部 采用了5 级流水技术。内部支持4 个线程进行硬切换。微引擎采用了专门的指令 系统,一般称之为微代码。下图为其主体的结构框图。 刚2 4 敏引擎的整体结构框图 从上图可以看出微引擎内部主要可以分为3 大部分。在图中上部的为总线接口 部分,微引擎通过该接口与c p p 高速总线进行连接。从总线接收的数据报据其发 起者的不同而分别放入s r a m 传输寄存器或s d r a m 传输寄存器巾。同时指令被 送入到指令队列寄存器。图中右侧的单元主要完成对母条指令的处理流水线。微 1 0 o p e n r l s c 12 0 0 处理器的研究与验证 引擎的大多数操作为三元操作,在传输寄存器或通用寄存器中的操作数被分为a b a n k 和bb a n k 两个部分被送入处理单元进行诸如算数逻辑等运算。整个处理分为 五级流水线:首先处理单元会从指令缓存队列中取出将要执行的指令。在第二个 节拍处理单元会对指令进行解码,并找出所需操作数的寄存器编号。在第三个节 拍处理单元将从相应的寄存器中读出操作数。在第四个节拍读出的操作数将被送 入相应的执行单元进行指令码要求的计算处理。在最后一个节拍,计算出的结果 将被写回目的寄存器中。在图中的左侧为微引擎内部的线程仲裁单元。微引擎内 部的四个线程可以在沉睡,准备,执行这几个状态间进行转换。一般来讲如果一 。个j 下在工作的线程需要花销一段时间去等待诸如外部存储等处理资源时,其他的 空闲线程则会直接切换到工作状态来弥补上一个线程因等待而形成的空闲时间 段。所有的切换将依据相应的事件信号量由微引擎内的硬件仲裁单元直接完成。 多线程硬件切换的思想有效的缓解了处理器因等待外部数据而消耗的时间,大大 提高了处理器的处理效率。线程切换技术是微引擎内部一个关键的技术和特点。 微引擎除了具有自己鲜明的特点外,仍然具有r i s c 体系处理器的特征。特别 是其r i s c 结构的指令系统和五级流水线的设计思想均与大多数r i s c 处理器相 通。为了更加深入的对微引擎进行分析和设计,首先就要对以上这些主要技术细 节实现进行研究和试验,在具备以上的实际设计经验后才能真正进行实际的微引 擎架构设计。因此在对微引擎的主体架构进行了总体性的理解后,笔者开始对r i s c 处理器中的一些典型的技术进行了更深理论层次的学习研究,并且通过学习并仿 真o p e n r i s c l 2 0 0 处理器的i ; 端设计源代码,理解了一般r i s c 处理器的设计和具 体实现方法。文中后续的章节将对此进行详细的介绍。 2 3 芯片前端设计和s o c 技术【1 6 】 网络处理器芯片设计属于超大规模集成电路设计。其设计规模已经远远超过简 单功能芯片的设计。在9 0 年代中后期后芯片设计产生了许多新的技术变化和思想 以适应这种逐渐增大的设计规模。其中片上系统( s y s t e m o i lc h i p ) 设计正是为了 加速大规模芯片开发速度而提出的一种新的理论和设计方法。西电n p 项目设计正 是按照s o c 的设计进行的。 s o c 设计的思想如下:一块规模较大的芯片可以由多个内部模块组合而成,内 部模块间通过总线进行互联。各个功能模块一般称之为知识产权核( i p ) ,每个i p 核的功能相对专一且独立。如c p u 核,存储控制单元等。每个i p 核均可独立进行 设计。各种i p 核之间尽可能用统一的接口规范,以便于i p 核之间的互联和通信。 在芯片的顶层只需要根据要设计的功能将不同的l p 核集成到同一块芯片的内部, 一般片上会集成一个或多个控制处理器协调片内各功能模块的工作。整个芯片内 第二章处理器设计概述 部就好像以前设计的电路板级系统,此技术因此得名片上系统。 s o c 设计中的i p 核又可分为硬核i p 和软核i p ,硬核i p 一般只包括该单元模 块的网表和布局布线等底层信息,芯片设计人员可以直接利用此硬核单元放入目 标芯片中进行集成。硬核i p 的优点是使用简单功能可靠,但其灵活性差,修改度 很小。软核i p 一般会直接给出被丌发单元的上层功能的硬件语言描述,如用 v e r i l o g h d l 语言对其结构和整体功能的详细描述。软核i p 逻辑结构清晰,灵活性 高,但在使用时还要进行底层的综合、布线等处理。一个s o c 芯片的设计可以同 时结合硬核i p 和软核i p 。一般来讲提供i p 核的厂商会提供比较完备的接口规范和 集成平台,所以在进行性芯片的设计时可以大量重用已有的性能可靠的i p ,加快 芯片的开发周期。 用s o c 技术设计系统芯片,一般要经历如下的设计阶段:先要进行软硬件划 分,将设计基本分为两部分:芯片硬件设计和软件协同设计。芯片硬件设计包括: 1 ) 功能设计阶段 对于类似网络处理器这样的大规模s o c ,设计产品的应用场合,设定一些 诸如功能、操作速度、接口规格、环境温度及消耗功率等规格,以做为将来电 路设计时的依据。更可进一步规划软件模块及硬件模块该如何划分,哪些功能 该整合于s o c 内,哪些功能可以设计在电路板上。 2 ) 设计描述和行为级验证 功能设计完成后,可以依据功能将s o c 划分为若干功能模块,并决定实 现这些功能将要使用的i p 核。此阶段将接影响了s o c 内部的架构及各模块间 互动的讯号,及未来产品的可靠性。决定模块之后,用v h d l 或v e r i l o g 等 硬件描述语言实现各模块的设计,利用v h d l 或v e r i l o g 的电路仿真器,对 设计进行功能验证( f u n c t i o ns i m u l a t i o n ,或行为验证b e h a v i o r a ls i m u l a t i o n ) 。 3 ) 逻辑综合 确定设计描述j 下确后,可以使用逻辑综合工具( s y n t h e s i z e r ) 进行综合。 综合过程中,需要选择适当的逻辑器件库( 1 0 9 i cc e l ll i b r a r y ) ,作为合成逻辑 电路时的参考依据。逻辑综合得到门级网表。 4 )门级验证( g a t e l e v e ln e t l i s tv e r i f i c a t i o n ) 门级功能验证是寄存器传输级验证。主要的工作是要确认经综合后的电路 是否符合功能需求,该工作一般利用门电路级验证工具完成。同时采用形式验 证工具进行一致性检查。 5 ) 布局和布线 布局指将设计好的功能模块合理地安排在芯片上,规划好它们的位置。布 线则指完成各模块之间互连的连线。 6 )电路仿真 o p e n r i s c l 2 0 0 处刊! 器的研究与验证 订这个阶段,除了最复验证s o c 的功能是否外,还需要确认在考虑门电 路延迟和连线延迟的条件之下,电路能古正常运作。电路仿真是基于晟终日j 序 的版图后仿真,往往作为流片的先决条件。 毫潮 黑猡恕紫鬯嘲 糍澜 幽2 5s o c 的概念币1 开发流程 才- 以上的开发流程r p ,墩汁的头两步主要偏向于对整个系统整体功能的把握 和对各功能模块结构和行为的描述。我们一般称之为芯片设计巾的前端设计。后 面的设计步骤= 】三要偏向于底层具体的工艺设计,我们一般称之为后端设计。在前 端没讣的后期,设汁者一般会片j 设计完成的r r l 级代码进行综合,并下载到f p g a 中进行功能验址,j | f p g a 进行验证的方法可以提前预知设计芯片将出现的部分 逻辑错误和缺陷,一般称孩验讧e 为f p g a 原形验证。该步骤在芯片设计中具有重 要的意义。 笔者在对o p c n r i s c l 2 0 0 处理器进行分析和验证的工作j :要就集中在处理器 设的 口端。并日最终通过f p g a 对该处理器进行了实际的原形验汪。 粼 第三章r i s c 处理器关键技术 1 3 第三章r i s c 处理器关键技术 在本章将介绍r i s c 处理器架构的一些关键技术和基础理论【5 1 1 6 1 。在一个r i s c 处理器中最重要的两个单元就是处理流水线和存储结构,以下我们将分别对这两 个部分的理论进行详细的介绍。 3 1 流水线技术 3 1 1 流水线的思想和优势 流水线技术目前基本上成为了r i s c 体系结构的一个默认特性。流水线是一种 在连续指令流中开发指令级并行性的技术。多个指令可以重叠( o v e r l a p p e d ) 提高 c p u 速率。这样在同一个时钟周期总共就有多条指令被同时处理,只是每条指令 被处理的阶段不同。因此每条指令在流水线上的平均时间,在最理想情况下等于: 每条指令的执行时间= 斐塑型型挲某禁基丢熹磊鑫警 一般为了衡量流水线并行处理的能力我们引入了流水线的加速比的概念: 理想情况下流水线的加速比= 焉荔蓬毫曩孝笺筹器 对于理想的流水线其加速比就等于其流水线的级数。然而更多级的流水会引来 更多的负担( o v e r h c a d ) 因此每条指令的执行时间不一定可以达到以上的理想情况, 但是可以接近。不停的加大流水节拍不一定会提升性能。以下是一幅统计图显示 了某处理器结构随流水线的增加性能的变化。 瞿 鬟 孽 图3 1 流水线的深度和效f l 皂 1 9 8 6 1 从上图可以看出随着流水深度的加深,在同一时钟周期下所重叠的指令的数量 将会增多,这将大大增加指令的并行性,因此上图中一开始随着流水线深度的增 加处理器的工作效率将不断提高。但是随着流水线深度的不断加大,对流水线的 指令分配和控制则变的极其复杂,在同一周期所执行的指令也将会出现操作数前 1 4 o p e n r i s c l 2 0 0 处理器的研究与验证 后相关的现象,另外当进行分支指令判断出错或指令出错时往往要花销更多的时 间来清空出错的流水线。所有这些操作又降低了流水线的效率。因此在上图的后 期,处理器效能曲线反而随着流水线流水深度的加深而降低。增加流水线深度来 换取处理器效率和深度流水的复杂性是一对矛盾体。在设计流水线时往往要将以 上两个因素综合考虑选取总体性能最优的设计方案。当然随着流水线技术的不断 进步,许多新的算法和技术被用于流水线的控制,流水线的工作深度也会不断加 深。上图的曲线会呈现出向右上方移动的趋势。目前比较流行的处理器有5 级流 水,7 级流水,i n t e l 公司的“奔腾m ”处理器依照其自身的特殊技术可达到2 0 级 流水处理。 为了考察不同流水线不同控制技术下各种处理器的执行效率,我们引入如下的 性能公式,主要考虑用处理器在执行同一段高级程序所消耗的时间来衡量处理器 工作的效能: c p u 时间= 指令条数c p i 时钟周期长度 其中指令数由该处理器的指令集和编译器决定;c p i 为执行一条指令所需的平 均执行周期数,该参数与计算机组成和流水线的结构有关。在理想的情况下单条 流水线每个时钟周期就可以处理一条指令,因此c p i 为l 。但是在实际情况下由于 各种处理控制和冒险的存在c p i 一般都大于l ,即一般需要多个时钟周期才可处理 l 条指令。对于设计性能优良的单流水线其c p i 可以接近于1 。在现代处理器设计 中还存在超标量处理器的技术,该技术大量并行流水处理单元,使得c p i 甚至可 以小于l ;时钟周期的长度指处理器运行频率下所对应的时钟周期,由硬件技术和 计算机组成决定。在同样的时钟频率下,r i s c 用简单的指令格式、简单的寻址模 式的简单操作的指令系统结构导致它可能执行比复杂指令系统结构更多的指令条 数,看起来可能会比较慢,但是r i s c 处理器指令结构的统一性保证了其流水线的 c p i 的值可以很小,因此其整体的处理时间仍然会很小。 3 1 2d l x 流水线 在这里,将以一种被称为d l x 的系统结构为实例,介绍r i s c 流水线技术。 d l x 是当今实验与商业计算机的平均参照。d l x 是一种容易理解的系统结构。在 本章所讨论的流水线技术都是基于d l x 指令架构的,可是这些原则和思想可以移 植到任何指令级中去。 d l x 系统具有如下的结构特点: 寄存器:d l x 有3 2 个3 2 位通用寄存器( g p r ) ,依次为r 0 ,r 1 ,r 2 r 3 1 。 另外还有一组浮点寄存器( f p r ) ,它们既可以用作3 2 个3 2 位单精度寄存器, 也可以配对来存储双精度浮点数值。 第三章r i s c 处理器关键技术 一数据类型:d l x 的操作是面向3 2 位的整数以及3 2 位或“位的浮点数的。字 节或者半字在调入3 2 位的寄存器时,用0 或者符号位来填充3 2 位寄存器的剩 余部分。 _ 数据传输的寻址模式:d l x 的寻址方式只有立即数和置换两种方式,且都是 1 6 位的。r i s c 处理器一般多采用寄存器与寄存器间的操作架构。d l x 也属于 这种l o a d s t o r e 系统结构。该类系统结构的设计的目的在于除了l o a d s t o r e 指 令外,其他指令都是在c p u 内部完成的,所需的时钟周期短,操作简单,从 而简化了硬件逻辑的设计,且易于实现流水操作。 一d l x 指令格式:由于d l x 只有两种寻址模式,所以它们可以编码到操作码中。 所有指令都是3 2 位,其中6 位是基本操作码,用于区分各种不同种类的操作。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 如何提高信息系统项目管理师考试中的回答准确性试题及答案
- 西方立法机关的功能与作用试题及答案
- 软考网络工程师学习资源分享试题及答案
- 公共政策危机沟通策略研究试题及答案
- 计算机三级软件测试在政策中的应用试题及答案
- 机电工程的职业发展路径试题及答案
- 网络安全态势感知技术试题及答案
- 网络工程师全面准备试题及答案
- 前沿公共政策研究热点试题及答案
- 软件设计师考试心理调适方法与试题与答案
- 消防水管道改造应急预案
- 2021城镇燃气用二甲醚应用技术规程
- 【保安服务】服务承诺
- 07第七讲 发展全过程人民民主
- 弱电智能化系统施工方案
- 对外派人员的员工帮助计划以华为公司为例
- 2020-2021学年浙江省宁波市镇海区七年级(下)期末数学试卷(附答案详解)
- GB/T 9162-2001关节轴承推力关节轴承
- GB/T 34560.2-2017结构钢第2部分:一般用途结构钢交货技术条件
- 阅读绘本《小种子》PPT
- 医院清洁消毒与灭菌课件
评论
0/150
提交评论