(控制理论与控制工程专业论文)基于risc处理器的低功耗设计与研究.pdf_第1页
(控制理论与控制工程专业论文)基于risc处理器的低功耗设计与研究.pdf_第2页
(控制理论与控制工程专业论文)基于risc处理器的低功耗设计与研究.pdf_第3页
(控制理论与控制工程专业论文)基于risc处理器的低功耗设计与研究.pdf_第4页
(控制理论与控制工程专业论文)基于risc处理器的低功耗设计与研究.pdf_第5页
已阅读5页,还剩80页未读 继续免费阅读

(控制理论与控制工程专业论文)基于risc处理器的低功耗设计与研究.pdf.pdf 免费下载

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

文档简介

摘要 摘要 随着集成电路进入深亚微米时代,功耗问题已成为超大规模集成电路设计 考虑的重要因素。本文以嵌入式r i s c ( r e d u c e di n s t r u c t i o ns e tc o m p u t e r ) 处 理器为平台,针对逻辑电路各个层次低功耗设计方法进行了深入研究。 本文首先介绍了r i s c 处理器的结构,并以f p g a ( f i e l dp r o g r a m m a b l eg a t e a r r a y ) 作为处理器硬件实现的平台,实现了以j t a g 服务器为基础的处理器验证。 在这一平台的基础上,采取门控时钟,算法模型的改进进行了低功耗的设计, 通过使用c l a s s 工艺库和s y n o p s y s 的p o w e rc o m p i l e r 进行功耗分析,得到了 比较理想的结果。然后,研究了基于p e t r i 网理论对异步电路进行建模实现的 方法,初步探索了实现异步r i s c 处理器的基本方法,通过对比实验充分说明了 其在低功耗方面的优势。 最后对论文的工作进行了总结,分析了低功耗设计的方法和面临的问题, 提出了下一步的工作方向。 关键词:r i s c 处理器,低功耗,异步电路,门控时钟,p e t r i 网 a b s t r a c t a b s t r a c t w i t ht h ec o m i n go fv l s i ss u b m i c r o n ee r a , l o w - p o w e rt e c h n i q u eh a sb e e na g r o w i n gd e m a n di nv l s id e s i g n b a s e do nt h er i s c ( r e d u c e di n s t r u c t i o ns e t c o m p u t e r ) p l a t f o r m ,w es t u d yt h el o w p o w e rd e s i g nm e t h o d so fe a c hl e v e lo ft h e p r o c e s s o r i nt h ep a p e r , w ef i r s ti n t r o d u c et h ea r c h i t e c t u r eo far i s cp r o c e s s o ra n d i m p l e m e n ti to n af p g a ( f i e l dp r o g r a m m a b l eg a t ea r r a y ) a st h eh a r d w a r ep l a t f o r m o ft h es t u d y f i n i s ht h ep r o c e s s o rv e r i f i c a t i o nb yu s i n gj t a gs e r v e r b a s e do ns u c ha p l a t f o r m ,w em a k et h ep o w e re s t i m a t i o na n do p t i m i z a t i o nb yu s i n gc l o c k g a t i n g t e c h n i q u ea n da l g o r i t h mi m p r o v e m e n t w i t ht h eh e l po fc l a s st e c h n o l o g yl i b r a r ya n d s y n o p s y s sp o w e rc o m p i l e r , w eg e tt h ee x p e r i m e n t a lr e s u l t sw h i c hv e r i f yt h a tt h e m e t h o dc a nb eu s e df o rp o w e ro p t i m i z a t i o n t h e ng i v et h er e s e a r c ho nt h em o d e l i n g a n dr e a l i z i n go ft h ea s y n c h r o n o u sc i r c u i tb a s e do np e t r it h e o r y t h ed e s i g no fa a s y n c h r o n o u sr i s cp r o c e s s o rh a sb e e np r e l i m i n a r i l ys t u d i e d t h ec o n t r a s t e x p e r i m e n t ss h o wi t sa d v a n t a g eo nl o w - p o w e rd e s i g n a tl a s t ,w eg e tt h ec o n c l u s i o no ft h er e s e a r c ha n dt h ep r o b l e m sr e q u i r i n gf u r t h e r s t u d i e sa r ed i s c u s s e d k e y w o r d s :r i s cp r o c e s s o r , l o w p o w e r , a s y n c h r o n o u sc i r c u i t ,p e t r in e t h 学位论文版权使用授权书 本人完全了解同济大学关于收集、保存、使用学位论文的规定, 同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版 本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、 扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供 本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有 关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前 提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名:鄯水炜 动口 年j 月邝日 经指导教师同意,本学位论文属于保密,在年解密后适用 本授权书。 指导教师签名:学位论文作者签名: 年 月 日年 月 日 同济大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 签名:却糸娣 1 0 p ? 年月i6 日 第1 章绪论 1 1 课题的研究背景 第1 章绪论 集成电路在近些年的飞速发展,为我们的生活带来了巨大的便利。1 9 6 5 年 i n t e l 创始人m o o r e 提出“随着芯片电路复杂度提升,芯片数目必将增加,每一 芯片成本将每年减少一半”的规律之后,半导体微细化制程技术日新月异,结 构尺寸从微米推向深亚微米,进而迈入纳米时代。以最新的英特尔p 7 3 5 0 处理 器为例,采用4 5 n m 的工艺,主频达到2 o g h z ,集成的晶体管数量更是达到惊人 的4 1 亿,人们不得不惊叹,哪里才是集成电路的极限,我们真的能够梦想有 多远,就能够走多远么? 如果这个微观领域的探索也有尽头,它在哪里? 中止 的原因又是什么? 也许,说到发展的尽头还为时尚旱,但在集成电路高速发展的背后,一些 新问题已经逐渐浮出水面,成为发展的瓶颈。过去,微电子领域的许多研究工 作都集中在数字系统的集成度和速度的提高上,但随之产生的功耗问题和时钟 扭曲的问题越来越严重。随着便携式设备的出现,人们的生活水平又上了一个 新的台阶。同时由于便携式设备体积小,依赖电池供电的特点,对于嵌入式处 理器和功耗的要求越来越高。 集成电路的功耗问题在7 0 年代就已提出,但由于当时半导体工艺水平的限 制,芯片集成度不高的原因,功耗问题并不处于突出的位置。集成电路设计者 们在设计中遇到的最大约束是系统的工作速度要求和芯片的最小面积要求。随 着半导体工业的迅猛发展,集成电路进入深亚微米阶段,微处理器的时钟频率 和芯片集成度不断提高,功耗在2 0 世纪9 0 年代开始已在很多设计领域成为了 首要关注的问题,这点最为突出的即是高性能微处理器和便携电子设备产品。 因此,低功耗设计技术的需要已是迫在眉睫1 1 2 低功耗设计的特点和层次 随着移动办公与通信产品需求的增长便携式电子设备与产品的应用越来越 l 第1 章绪论 广对于这些便携式电子设备与产品来说电池寿命是衡量其价值的一个重要指 标,尽管电池工业本身已在尽可能的寻找新的电池材料延长电池寿命发展高容 量和可重复充电的电池,但这一发展缓慢,在过去的三十多年中电池的容量仅 仅增加了四倍左右。可见依靠电池技术的发展是不可能在短期内解决现在各种 便携式电子设备与产品所面临的功耗问题。 高性能的微处理器产品也需要低功耗技术。随着处理器工作频率的升高, 功耗也随之增大,这将严重影响处理器性能,带来一系列的封装散热的问题, 使得产品的成本增加。 产品的平均故障时间m t b f ( m e a nt i m eb e t w e e nf a i t u r e s ) 与工作温度有 关。功耗越低,m t b f 越长。 低功耗设计贯穿于从系统级、算法( 行为) 级、结构级、逻辑电路级直到器 件工艺级的整个数字系统设计流程。在低功耗设计中,首先要明确一个系统 中的功耗分布,在此基础上针对功耗消耗大的模块单元、关键路径和非关键路 径进行功耗优化。 2 第l 章绪论 功耗管理 编码技术 并行结构 流水结构 逻辑优化 预计算技术 阈值电压 器件特征尺寸 图1 1 低功耗设计的层次结构 在图1 1 中简要歹l j 出了低功耗设计的层次和方法。 1 系统算法级 ( 1 ) 对所需算法的复杂性、并发性进行分析,尽可能利用算法的规整性和 可重用性。 ( 2 ) 把算法转换为可执行代码时,减少代码的开关活动性。采取独热码就 是一个很好的选择。 ( 3 ) 选择算法时,尽可能减少所需的操作和资源的使用。 2 结构级 第l 章绪论 ( 1 ) 开发功能硬件的并行性以及功能单元的流水执行来实现低功耗的结 构。 ( 2 ) 对系统中的空闲单元模块关断电源或时钟。 3 逻辑级 ( 1 ) 优化时钟和总线负载。 ( 2 ) 在非关键路径上适当降低工作电源电压,因为它的时序要求比关键路 径低。 ( 3 了通过逻辑优化减少开关活动性,或者对开关活动性高的节点、连线合 理配置。 c 4 ) 预计算技术。预计算设计技术是在逻辑级实现的挂起方法,通过加入 预计算逻辑,在一定的输入条件下,使所有或部分输入寄存器的负载无效,从而 降低了功耗。 4 物理级 ( 1 ) 在该层次,降低功耗最直捷的方法是降低工作电源电压,这不需要对 电路的逻辑结构改动。但是当电源电压降低到接近闭值电压时,系统的延迟特 性会变坏,所以需要对系统结构进行改变一增加并行、增加流水:同时也应根据 电源电压的变化调整器件的工艺尺寸。 ( 2 ) 采用多闹值、阈值可变器件,以满足不同工作状态的需要( 工作、等 待、空闲) 。 ( 3 ) 改进半导体器件的物理特性,降低标准门器件的延时和节点电容。 ( 4 ) 布局布线优化设计,布局布线优化设计主要集中在寄生电容与翻转活 动这两个相关的因素,通过将连线合理的安排在不同的层面上达到降低功耗的 目的。 在不同的优化层次,所带来的功耗优化的效率是不同的嘲口1 。如表1 1 所示。 4 第1 章绪论 表1 1 不同层次功耗设计优化结果比较 设计层次 优化方案优化效果 系统算法级功耗管理 4 0 一9 9 算法选择 3 3 结构级 动态电压调整 51 8 0 缓存技术 2 0 - 8 5 数据编码2 1 - 5 s 逻辑级逻辑综合 6 7 工艺映射 4 7 数据和门控时钟 7 5 状态机编码 6 6 物理级低功耗c m o s 工艺 2 8 异步 2 0 一8 0 绝热计算 7 7 本文基于r i s c 处理器的功耗优化设计中将设计到相关的优化技术。 低功耗设计中,还会涉及到其他一些问题。比如低功耗测试技术。由于测 试期间的功耗会比正常运行时的功耗高出很多,因此低功耗测试技术将成为一 项十分重要的研究课题。随着制造工艺的加深,真速测试( a t s p e e d t e s t ) 已经十 分必要,其代价是在提高测试频率的同时,也大大提高了测试功耗:另外由于在 较深的工艺下,传统的1 d d q ( 静态漏电流) 测试技术己经不再适用,这些由于功 耗造成的测试问题也是低功耗领域的重要的研究主题。低功耗软件的设计,低 功耗e d 软件研究主要包括三个方面:功耗建模、功耗分析和功耗优化。其本质 就是借助计算机辅助设计( c a d ) 手段来优化集成电路功耗,如建立低功耗的标准 单元库、在较高层次分析系统功耗、自动插入门控时钟、有限状态机低功耗综 合等“1 。 系统级芯片设计。片上系统技术是解决大规模芯片的快速设计,共享并重 利用硬件资源的有效方法,对其进行低功耗设计方法的研究也就显得十分必要。 片上系统的功耗密度划分、低功耗调度策略也成为低功耗领域急需解决的问题 陆1 。这部分需要解决的关键问题是低功耗技术结合测试领域的应用、模拟电路实 验环境的建立、层次化的功耗管理机制的建立等。这些领域的研究在全世界的 科研人员的努力下,业已取得不小的突破,限于篇幅,将不在本文的主要讨论 范围内。 5 第1 章绪论 1 3r l s c 处理器低功耗研究 r i s c 的概念最初在1 9 8 0 年提出,r i s c ( r e d u c e di n s t r u c t i o ns e tc o m p u t e r , 精简指令集计算机) 是一种执行较少类型计算机指令的微处理器,起源于8 0 年 代的m i p s 主机( 即r i s c 机) ,r i s c 机中采用的微处理器统称r i s c 处理器。这 样一来,它能够以更快的速度执行操作( 每秒执行更多百万条指令,即m i p s ) 。 因为计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集 越大就会使微处理器更复杂,执行操作也会更慢嘲。 纽约约克镇i b m 研究中心的j o h nc o c k e 证明,计算机中约2 0 的指令承担 了8 0 的工作,于1 9 7 4 年,他提出r i s c 的概念。第一台得益于这个发现的电脑 是1 9 8 0 年i b m 的p c x t 。再后来,i b m 的r i s cs y s t e m 6 0 0 0 也使用了这个思想。 r i s c 这个词本身属于伯克利加利福尼亚大学的一个教师d a v i dp a t t e r s o n 。r i s c 这个概念还被用在s u n 公司的s p a r c 微处理器中,并促成了现在所谓的m i p s 技 术的建立,它是s i l i c o ng r a p h i c s 的一部分。许多当前的微芯片现在都使用r i s c 概念。 r i s c 概念已经引领了微处理器设计的一个更深层次的思索。设计中必须考 虑到:指令应该如何较好的映射到微处理器的时钟速度上( 理想情况下,一条 指令应在一个时钟周期内执行完) ;体系结构需要多“简单 ;以及在不诉诸于 软件的帮助下,微芯片本身能做多少工作等等。 r i s c 处理器的基本思想是尽量简化计算机的指令功能,只保留那些简单, 使用频度高且能在一个节拍内完成的指令,把较复杂的功能用指令序列来实现, 这样的好处是:一方面由于选用的指令结构简单,对应的微结构也变得简单, 可以提高处理器的时钟频率;另一方面,由于结构和微结构比较简单,流水线 的效率非常容易提高,从而可以降低每条指令执行的周期数。所以在r i s c 处理 器出现的初期,它的速度是同等的c i s c 计算机的3 倍左右,现在流行的r i s c 处理器的主要特点如下: ( 1 ) 大多数指令在单周期内完成 ( 2 ) 采用l o a d s t o r e 结构。因为访问存储器指令所需要的时间比较长,在指 令系统中要尽量减少这类指令,所以r i s c 指令中只保留不可再少的l o a d s t o r e 两种存储器访问指令。 ( 3 ) 硬布线控制逻辑。使得大多数指令在单周期内执行完成,以减少为程序技 6 第l 章绪论 术中的指令解释开销。 ( 4 ) 减少指令和寻址方式的种类,简化了寻址方式,简化了逻辑缩短了译码时 问。保证指令能够单周期完成,有利于流水操作。 ( 5 ) 固定的指令格式,所有指令固定长度编码( 3 2 位或者6 4 位) ( 6 ) 哈佛结构的高速c a c h e ,采用分离的指令和数据告诉c a c h e ,每个周期内 同时提供一条指令和数据,有效的解决了c p u 工作频率高,主存频率低的矛盾。 针对r i s c 微处理器的低功耗设计,我们可以采取前文提到的各种优化方法, 但这之前我们有必要了解下处理器的功耗组成,为我们下步的设计做好铺垫 l 【 幽12 微处理器中的功耗分布 不难从图12 中看出,微处理器的主要柬源是: ( 1 ) 时钟:包括系统中的时钟产生单元,时钟驱动单元,时钟分布网络, 锁存器和大量的时钟负载,由于时钟是系统中唯一一直在变化的信号,因为将 产生大量的动态功耗。 ( 2 ) 存储器单元:包括告诉缓存c a c h e ,快速查找缓冲t l b ,存储器单元 的功耗般与其片上容量和访问频率成下比。 ( 3 ) 数据通路:包括所有的功能单元总线和寄存器文件,在微处理器中, 数据通路有着严格的时序约束,如采用高速的动态逻辑电路构成功能单元,其 功耗降更大。 ( 4 ) 控制接口:这部分产生的功耗是比较小的。 罗 第l 章绪论 了解了处理器的这种功耗分布将使得我们接下来的设计更有针对性,处理 器实际运行中将有许多的电路处于不必要的工作状态,导致晶体管不必要的功 耗,减少这种功耗是我们的设计目的所在,单纯的为了降低功耗而牺牲系统的 性能的方案是不可取的。 1 4 国内外研究现状 对于微处理器的低功耗研究,国内外的科研人员已经做了大量的研究与设 计工作。目前比较有影响和特点的几款嵌入式c p u 分别是n i o s n i o s 2 , m i c r o b l a z el e o n 2 l e o n 3 和o p e n r i s c l 2 0 0 ,p o w e r p c 等。 n i o s n i o s 2 由a l t e r a 公司推出由于a l t e r a 公司的大力推广,m i c r o b l a z e 是x i l i n x 公司推出的3 2 位哈佛结构的r i s c 处理器,l e o n 2 l e o n 3 由j i r i g a i s l e 个人开发受到欧洲航天局工作的支持,o p e n r i s c l 2 0 0 是o p e n r i s c 系列 r i s c 处理器内核的一员o p e n r i s c 是由o p e n c o r e s 组织负责开发和维护的免费开 源的r i s c 处理器内核家族o p e n r i s c 包括o p e n r i s c l 0 0 0 和o p e n r i s c 2 0 0 0 两个 体系o p e n r i s c 2 0 0 0 目前还只处于计划阶段。 n i o s 系列的特点是配置灵活可满足大范围的速度面积的需求m i c r o b l a z e 的特点是配置选项少但是比相同功能的n i o s 系列的性能要高一点l e o n 的特点 是与主流通用c p u 兼容因此软件资源丰富主频一定时性能可以得到保证 o p e n r i s c 的特点是不与任何其它c p u 的指令集兼容对用户自定义指令的支持很 好可以应用在一些安全要求高的环境。 n i o s 系列和m i c r o b l a z e 属于同一档次的c p u 专门为f p g a 设计不支持m m u 浮点协处理器和d s pm a c 单元而l e o n 系列和o r l 2 0 0 基本属于同一档次不是专 门为f p g a 设计的支持删浮点协处理器( o r l 2 0 0 具有浮点协处理器的接口) 和 d s pm a c 单元因此面积较大速度较慢但是在相同速度的情况下d m i p s 值会高一 此 = = o l e o n 系列和o r l 2 0 0 功能强大而且采用免费和开源的授权策略可以自由的 获取源代码便于进行学习和优化对于我国c p u 设计技术相对落后普及率低的国 情具有较大意义。 p o w e r p c 是一种r i s c 架构的c p u ,其基本的设计源自i b m 的p o w e r ( p e r f o r m a n c eo p t i m i z e dw i t he n h a n c e dr i s c 的缩写) 架构。p o w e r 是1 9 9 1 8 第l 章绪论 年,a p p l e 、i b m 、m o t o r o l a 组成的a i m 联盟所发展出的微处理器架构。p o w e r p c 是整个a i m 联盟平台的一部分,并且是到目前为止唯一的一部分。p o w e r p c 的 历史可以追溯到早在1 9 9 0 年随r i s cs y s t e m 6 0 0 0 一起被介绍的i b mp o w e r 架 构。该设计是从早期的r i s c 架构( 比如i b m8 0 1 ) 与m i p s 架构的处理器得到灵 感的。 国内微处理器的研究起步较晚,但发展速度极快,先后出现了一批嵌入式 微处理器,龙芯系列:由中科院计算所研制,2 0 0 2 年9 月,“龙芯一号 诞生, 主频2 6 6 m h z ,2 0 0 5 年4 月,“龙芯二号”问世,主频5 0 0 m h z 。龙芯二号技术细节: 最高频率为5 0 0 姗i z ,功耗为3 - 5 瓦,远远低于国外同类芯片,其s p e cc p u 2 0 0 0 测试程序的实测性能是1 3 g h z 的威盛处理器的2 3 倍,已达到p e n t i u m i i i 水 平。采用先进的四发射超标量超流水结构,片内一级指令和数据高速缓存各 6 4 k b ,片外二级高速缓存最多可达8 m b 。为了充分发挥流水线的效率,龙芯二号 实现了先进的转移猜测、寄存器重命名、动态调度等乱序执行技术,以及非阻 塞的高速缓存和取数操作猜测执行等动态存储访问机制。 现在,异步的处理器设计也引起了越来越多研究者的关注。国外对异步集 成电路进行了广泛的研究,提出了一整套异步集成电路设计理论,设计出了多 款异步微处理器。 英国曼彻斯特大学由s t e v ef u r b e r 教授领导的先进处理器技术研究小组 ( a p t ,a d v a n c e dp r o c e s s o rt e c h n o l o g i e sg r o u p ) 从9 0 年代初期就开始异步设 计思想的研究。该小组设计实现了和a r m 系列兼容的a m u l e t 系列异步微处理器, 如:采用1 o 微米工艺,与a r m 6 兼容的a m u l e t l ( 1 9 9 4 ) :采用o 5 微米工艺,和 a r m 7 兼容的a m u l e t 2 ( 1 9 9 6 ) 其性能超过了a r m 7 :采用o 3 5 微米工艺,和a r m 9 兼容的蝴u l e t 3 ( 2 0 0 0 ) ,得到了与a r m 9 可比拟的性能和功耗。他们的工作表明 异步数字电路设计是非常具有潜力的,在性能和功耗上完全可以超越相同工艺 的同步数字电路。 台湾省淡江大学在t s m c o 6 微米工艺下设计实现了一款8 位乘8 位异步乘 法器阳1 ,该乘法器采用新型传输门结构实现,优化了控制电路和锁存器,实现了 完成检测功能该乘法器采用树形4 2 压缩算法,裸片面积1 0 2 m m ,实际的芯 片测试表明其主频相当于2 5 0 m h z 。 9 第1 章绪论 1 5 本文的研究工作和组织 本文第二章将首先建立一个3 2 位的r i s c 的c p u 原型及其验证平台作为进 行设计和功耗分析的基础。将在x i l i n x 的v i r t e x 2 p r o 硬件平台上实现。详细 阐述了原型验证的意义,原型验证的策略以及f p g a 验证环境的建立的详细过程。 并阐述处理器的调试方案,包括串口调试方案,软件调试方案,以p e r l 语言为 基础的验证控制策略。 第三章介绍基于s y n o p s y s 商业软件的功耗分析的基础和方法,详细介绍工 具的分析基础和主要方法包括门控时钟,操作数分离,多电压等方案的具体实 现。然后研究r i s c 处理器中的各种功耗优化的设计和算法的改进n 们。将给出详 细的设计方案和仿真结果比较。 第四章将探索性的研究基于p e t r i 网的异步电路的设计方案。将得到电路 的设计结果和功耗仿真结果。 第五章是全文的总结,得出低功耗设计的结果和下一步研究的方向。 本文主要的创新点是: ( 1 ) 基于j t a g 虚拟服务器的处理器调试方案的实现和基于p e r l 脚本的自 动化设计与验证。 ( 2 ) 对r i s c 处理器的主要功能模块进行算法改进和多层次的功耗优化设 计。 ( 3 ) 提出了基于p e t r i 网的异步设计方案,得到了较为理想的功耗仿真结 果,是一个全新的探索。 l o 第2 章r i s c 处理器平台的实现与验证 第2 章r i s c 处理器平台的实现与验证 本文所要研究的重点是基于r i s c 处理器的低功耗设计技术。在绪论中我们 已经指出,低功耗设计贯穿于物理层次设计直至系统设计的整个流程。在系统 设计中所确定的系统体系结构、系统软件硬件划分不仅直接决定系统性能的优 劣,也决定着系统功耗的大小,因此在系统设计时纳入低功耗设计技术能够对 系统的功耗优化起到相当大的作用,即能够满足系统性能和功耗两方面的设计 指标。当然,结构级,逻辑级,物理级的低功耗设计的作用同样不可忽视,这 里我们会发现一个问题,由于各种设计方案的实现方法和层次不同,对于研究 而言我们需要对比各种方案的效果和问题,而且有的方案只适用于微处理器的 部分单元,因此,建立一个便于分析和对比的处理器原型是有必要的,借助于 商用的e d a 设计软件,我们可以便捷的修改设计和分析设计结果。本章将主要 阐述一款r i s c 处理器平台的工作原理和在f p g a 上的实现n 1 1 n 引。 0 p e n r is c 是o p e n c o r e s 组织提供的基于g p l 协议的开放源代码的r i s c ( 精 简指令集计算机) 处理器。有人认为其性能介于a r m 7 和a r m 9 之间,适合一般 的嵌入式系统使用。最重要的一点是o p e n c o r e s 组织提供了大量的开放源代码 i p 核供研究人员使用,因此对于一般的开发单位具有很大的吸引力。 o p e n r i s c 具有以下的主要特点: 1 采用免费开放的3 2 6 4 b i tr i s c d s p 架构。 2 用v e r il o gh d l ( 硬件描述语言) 实现了基于该r i s c d s p 架构的r t l ( 寄存器传 输级) 描述。 3 具有完整的工具链,包括:开源的软件开发工具,c 语言实现的c p u 仿真模型, 操作系统,以及软件应用所需的函数库。 o r l 2 0 0 是o p e n r i s c 家族中最新的一员n 驯,也是性能最好的一员。o r l 2 0 0 在使用0 1 s u m 及6 层金属工艺时,主频可以运行在3 0 0 m i z ,可以提供 3 0 0 d h r y s t o n e 、2 1 m i p s 和3 0 0 次的3 2 x 3 2d s p 乘加操作。默认配置下进行流 片时约有1 0 0 万个晶体管,以h a n d 2 为基本单元计算时,相当于2 5 万门的规模。 利用v i r t e x 2 进行实现时,大约占用7 0 0 0 + s 1i c e s ,1 4 0 0 0 + l u t 4 单元。如果 去掉c a c h e 和m m u 则可以进一步节省大约1 2 的资源。因此这款r i s c 也可以在 第2 章l u s c 处理器平台的实现与验证 大部分f p g a 器件上轻松实现。 o r l 2 0 0 是一款3 2 位标量r i s c 处理器,具有哈佛结构、5 级整数流水线、 支持m m u ,c a c h e ,带有基本的d s p 功能。外部数据和地址总线采用w i s h b o n e 片 上总线标准。此外,o r l 2 0 0 可以根据用户的需求进行功能裁剪,比如在嵌入式 应用中去掉或者减小c a c h e 面积。因此,o r l 2 0 0 是一款高性能,低功耗,可扩 展的r i s cc p u n 4 】 蝎】。 2 1r i s c 处理器的工作原理 2 1 1r is c 处理器的结构 图2 1 典型的r i s c 系统 原来o r l 2 0 0 并不是c p u 那么简单,c p u 其实只是其中的一个部分而已。当 然他是最核心的部分,就相当于一个l i n u x 操作系统里面的k e r n e l ,缺了它就 跑不起来了。但是如果只有c p u ,那这个功能就无趣得很了,就好比li n u x 没有 图形界面,没有上网功能,哪还有什么意思。所以设计师又加上了一堆外围的 模块,使得o r l 2 0 0 的功能更加完善。我们逐一来介绍这些模块。 1 2 第2 章r i s c 处理器平台的实现与验证 c p u 是0 r 1 2 0 0 的核心,正是在这里发生了5 级流水事件。这5 级流水是: 指令预取一i f 、指令译码i d 、运算执行一e x 、内存存取一m a 、数据回写- w b 。流水 操作的每一级都对应着一个或者多个内部模块,此外运算所需的通用寄存器和 异常处理模块也在这里实现。 数据缓存d - c a c h e 和指令缓存i c a c h e 都是可选的,如果希望提高c p u 的 效率一般会选择加载这两个模块。由于功能类似,我们以数据缓存为例进行介 绍。在流水的第4 级中将会发生内存存取的操作,比如要从内存读一个数据进 来,在没有c a c h e 的情况下,c p u 需要通过总线操作将数据从内存读入,这个操 作耗费较长周期,因此极大影响c p u 的实际性能。为了解决这个问题,工程师 们引入了缓存机制。比如在上面的第4 级流水操作中,如果要读取内存,则c p u 会先到缓存中寻找是否有此数据,如果数据存在则立刻读取,省去了冗长的总 线操作,极大的提高了c p u 的工作效率。那么如果缓存中没有要找的数据昵? 那就没有办法了,当然只能通过总线来读取内存了,不过即便如此,缓存机制 也为将来做了缜密的考虑。首先,缓存会执行突发操作,一次读入1 6 个字节, 这样不但当前需要的数据读入了,而且将来可能需要的数据也被读入,提高了 下一次数据命中的机会;另一个机制是当数据读回来的时候,不但要缓存到 c a c h e 中,而且马上转发到c p u 中的l o a d s t o r e 单元,以减小时间损失。所以, 对于缓存如果不能很好理解,就想像成在c p u 本地创建了一个内存的小镜像, 大多数情况下,处理器可以直接读这个镜像,但是有时候我们的数据超出了镜 像的范围,因此需要等待镜像更新,然后我们才能继续使用这个更新后的镜像。 m m u 内存管理单元有两个作用,一是禁止对受保护空间的访问,二是将应用 程序的虚拟地址翻译成物理地址。对于嵌入式系统而言,这两个功能都不是很 必要,而且o r l 2 0 0 中m m u 的实现对软件的依赖程度很高,因此我们在后面讲到 这部分的时候再讨论。m m u 的作用有一个简单的理解方法:删就是一个地址处 理器,它先验证这个地址是否可以访问,如果不能访问就报告异常,如果可以 访问就将其翻译成实际的物理地址,然后这个地址才被送去访问c a c h e 和内存。 p i c 是可编程中断控制器的简称,这个模块非常古老,大概从有c p u 的那天 开始,这个模块就也同时存在了。因为c p u 虽然运算速度惊人,但其实理解能 力很低下,比如内存中的指令处理器实际并不知道自己所执行的操作是什么, 只是按照既定的运算规则和顺序完成二进制的操作。但是我们的实际系统是需 要经常交互的,比如敲键盘,点鼠标,这种突然的操作c p u 是无法事先估计到 1 3 第2 章i u s c 处理器平台的实现与验证 何时会发生的,因此引入了中断机制。处理器按部就班的执行指令的过程中, 一旦发生了重要的事情,就可以将它打断,要求处理器有限处理,然后才能继 续执行内存中的指令。这种处理方法十分自然,因此几十年来中断控制器始终 都是c p u 系统中不可或缺的重要部分。o r l 2 0 0 支持3 2 个中断源,也就是有3 2 种情况下你都可以打断处理器处理当前事件,当然通过配置,有些中断源可以 被屏蔽,也就是说即使这些中断发生了,c p u 也可以视而不见。 t i c k 定时器,操作系统有时候需要精确的测量时间并调度系统任务,那么 怎么来提供这个时问呢? 答案就是这个t i c k 定时器。由于处理器有自己的c l o c k 时钟,比如是5 0 m h z 的,那么这个t i c k 计时器每次计数到5 0 m 的时候就意味着 1 秒过去了,因此操作系统可以通过观察这个定时器来掌握时间。 电源管理,很多嵌入式系统对节电性能都有很高要求,比如我们随身携带 的电子设备,必须尽量省电才行。为了满足这个要求,c p u 中加入了电源管理模 块。本着节能环保的目的,我们要大概了解一下它的原理。电源管理模块提供 了发呆、瞌睡、睡眠三种模式,其实和我们人类行为很接近。人忙的时候神采 奕奕,一旦没事干了,先是坐着发呆,然后就开始犯困瞌睡,最后实在顶不住 了,就干脆躺下睡觉。所以设计者让c p u 也享受这个待遇。发呆的时候,降低 它的时钟频率,c p u 的功耗和频率是成正比的,因此降低频率就直接降低了功 耗。瞌睡的时候,我们就关掉c p u 的一部分功能,让其半睡半醒,只有中断来 了才开始工作。睡着的时候我们就把整个c p u 的功能关掉,只保留对中断的反 应。达到降低功耗的目的。 d e b u g 单元,做软件的工作都会用到在线调试的功能,程序跑着跑着,出现 了问题,必须将其挂起,然后慢慢查看问题出在哪里。将程序挂起的功能,这 就需要d e b u g 模块的支持了。 2 1 2 地址与寻址 了解了处理器的体系结构,并不能够完全的掌握系统的工作原理,还有一 些其他问题,先来看看o r l 2 0 0 的地址空间和他的寻址方法。3 2 位o r l 2 0 0 采用 的是3 2 位地址,所以他的寻址能力就是2 。3 2 = 4 g 字节的空间。虽然这个空间十 分庞大,但是o r l 2 0 0 只提供了两种简单的寻址模式来对其进行访问。第一种是 寄存器问接寻址方式,为什么叫寄存器间接寻址o r ? 因为这种方式的地址不是 1 4 第2 章r i s c 处理器平台的实现与验证 直接产生的,首先要从指令指定的寄存器中读出一个基本地址,然后这个地址 和指令中的1 6 位偏移地址相加才最终得到一个有效地址。大家可以想象,这种 指令的格式简单表示的话就是( 指令类型,寄存器i d ,1 6 位立即数) 这样一个 三元组,当然这是我们为了方便理解而简化的一个指令模型,实际指令会较之 复杂一些,不过知道这个三元组已经足够了。另外的一种寻址方式叫p c 相对寻 址。p c 是p r o g r a mc o u n t e r 的简称,指的是当前正在执行的指令的地址。所谓 相对寻址,就是在这个p c 的基础上增加一个相对偏移,然后得到有效地址。这 个相对偏移从哪里来呢? 显然是正在执行的指令提供的,这个偏移数是一个有 符号的2 6 位立即数,所谓有符号意味着可以取正数也可以取负数,所以这个最 终的有效地址可以比当前p c 小也可以比当前p c 大,从而实现前后双向跳转。 那么什么时候会需要寻址呢? 主要有两类情况。第一类:读写内存中的数据: 第二类读取内存中的指令。读写内存数据和p c 没有关系,所以显然只能采用寄 存器间接寻址。读取内存中指令显然和当前的指令地址即p c 密切相关,只要知 道两者偏移即可实现跳转,因此此类寻址就采用p c 相对寻址,我们熟知的j u m p 类指令就是这么做的。 2 1 3 寄存器 o r l 2 0 0 的寄存器可以简单分为两大类,一类称作特殊寄存器s p r ,另一类 叫做通用寄存器g p r 。特殊寄存器和c p u 硬件相关,用于配置c p u 的各个功能并 监控其状态。相对的,通用寄存器和c p u 硬件管理无关,只是用于当前环境下 的运算目的,比如操作数的存储等。特殊寄存器在o r l 2 0 0 中只有一套,但是通 用寄存器可以有多套,每一套通用寄存器和特定的上下文环境相关。当异常发 生时,一般会发生上下文环境的切换,相应的,我们所使用的通用寄存器也切 换到了另一套上面。特殊寄存器虽然只有一套,但是他可以分成3 2 组,每一组 对应一种硬件功能的管理,比如第2 组负责管理指令删u ,第8 组则负责电源管 理。每一组特殊寄存器内部又有多个寄存器,具体内容可参考相关文献。 2 1 4 异常处理 当异常发生时,当前的环境被保存,同时c p u 跳到指定入口开始异常处理。 当异常处理结束时,先前保存的环境被恢复,同时c p l 3 又返回到刚才异常发生 第2 章r i s c 处理器平台的实现与验证 前所处的指令地址处。如果要举个不恰当的例子,就好比一个有精神疾患的病 人突然接收到一个异常信号,他的大脑瞬间保存当前的环境,然后对异常进行 处理,比如大喊大叫、又苦又笑,但是完成这一系列动作后,他又突然恢复先 前的记忆,开始正常的行为。关于异常处理的具体细节我们将在后面的章节中 具体说明。 2 1 5 流水线相关 程序最终被转换为汇编语言指令序列在c p u 上运行,在c p u 上运行的汇编 语言指令前后之间可能存在数据和控制依赖关系。 数据的依赖关系是指指令读写数据时,前后指令对数据的读写顺序有要求, 假设指令j 是指令i 后面执行的指令,当指令i 将数据写入寄存器后,指令j 才能从这个寄存器中读取数据,如果指令j 尝试在指令i 之前读出该寄存器的 内容,将得到错误的数据。解决方法一般是向前数据前推技术和在一个周期中 写入寄存器堆。 同前面的假设,控制相关是指指令j 在指令i 之后执行,指令j 依赖于指 令i 的结果。控制相关是由程序的控制流结构相关引起的,条件分支之后的指 令与分支指令存在控制相关。引起控制相关的操作是改变控制流的条件分支指 令,条件分支指令的结果决定了取指的下一条指令是顺序指令,还是分支目标 处的指令。如果下一条指令是分支目标处的指令,那么流水线取指单元还是顺 序取出的下一条指令则不是执行单元所需要的指令,因此必须中断流水线,从 分支目标处地址再次读取指令,开始流水线。控制相关的解决技术主要有分支 预测和延迟转移。我们的设计中采取的是延迟转移技术,就是处理器通过执行 程序序列中跟随跳转指令之后的与跳转指令无关的指令实现延迟跳转。跟随在 跳转指令之后的指令位置被称为延迟槽,延迟槽中的指令被称为延迟指令。在 流水线中,在决定执行跳转和从主存储器中取出跳转目的程序的过程中间有一 个时钟周期的延时。在这个延迟中,延迟指令无论如何都会有处理器取出。通 过执行延迟指令,可以实现流水线的较好平衡。 2 2r l s c 处理器核的实现 1 6 第2 章r i s c 处理器平台的实现与验证 y 一1 7 一锡 i n s n 删u日l n s t u c t i o n 黪、l & c a c h e u n i t 敝毫础 - 一i n t e g e r e x 磬 r 霪 强 黪缨溺瀚嬲瀚黼嘲 一p i p e l i n e 黾; 鸳 镧黼8 黼磷缴翰醚 霞 - _ 一 黟 i e x c e p t i o n s m a cu n i t ; g p r sl 鲂;, 蔼 兹琵缓嬲搦嬲黝瞄燃。 ,翁戮缁鳓搦缓戮酬 岛l o a d s t o r er 锈 震 u n i t 鬻? ,霭 i _ 7, 。翅 r4 锄黝缓秽j s y s t e m 鬻 s y s t e m 妙,c p l ,d s p :i l 1 龟 l - r 1 隧翰磁2 鳓一”m一磁翰施锄荔厄五么荔荔庑玩籀铉缢敬 磁彩缓凌纫施巍溯 1r d a t a m m u 7 c a c h e 图2 2 处理器核心的结构 处理器的核心由以下的部分组成。 1 、指令单元。 2 、对指令进行操作的流水线。 3 、执行过程中使用到乘除法引擎。 4 、需要使用主存时使用的l o a d s t o r e 单元。 5 、通用寄存器。 6 、系统控制单元。 下面我们将从如下几个方面介绍这个处理器核心的实现。 1 r i s c 核指令集。 2 整数流水线的实现。 3 存储器的组织与实现。 4 异常中断处理的实现。 5 d e b u g 单元实现。 6 总线模块的实现。 2 2 1r is c 核的指令集 在早期的计算机业界,编译器技术尚未出现。程式是以机器语言或汇编语 1 7 第2 章r i s c 处理器平台的实现与验证 言完成的。为了便于编写程式,电脑架构师设计出

温馨提示

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

评论

0/150

提交评论