(计算机科学与技术专业论文)基于双端口ram的数据cache的研究与实现.pdf_第1页
(计算机科学与技术专业论文)基于双端口ram的数据cache的研究与实现.pdf_第2页
(计算机科学与技术专业论文)基于双端口ram的数据cache的研究与实现.pdf_第3页
(计算机科学与技术专业论文)基于双端口ram的数据cache的研究与实现.pdf_第4页
(计算机科学与技术专业论文)基于双端口ram的数据cache的研究与实现.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

(计算机科学与技术专业论文)基于双端口ram的数据cache的研究与实现.pdf.pdf 免费下载

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

文档简介

摘要 本论文研究内容来自西北工业大学航空微电子中心所承担的某预研课题,以参 与的3 2 位嵌入式微处理器“龙腾r 2 ”的设计工作为基础,设计并实现了基于双端 口r a m 的数据c a c h e ,该c a c h e 应用于“龙腾r 2 ”微处理器,能够实现数据同 步侦听,提高多机环境下处理器的性能;并在双端口r a m 基础上,对多端口数据 c a c h e 进行研究,提出一个1 6 端口数据c a c h e 的实现方案。 作者的主要工作如下: 1 对“龙腾r 2 ”微处理器体系结构和双端口r a m 特性进行了分析,在此 基础上,设计并实现了适应p o 戳一c 指令集系统结构的双端口数据c a c h e , 并应用于“龙腾r 2 ”微处理器中,经仿真分析,其功能和p o w e r p c 7 5 0 完全兼容。 2 研究了“龙腾r 2 ”数据c a c h e 一致性协议,在双端口r a m 基础上,实 现了“龙腾r 2 ”数据c a c h c 的同步侦听操作,解决了“龙腾r 2 ”微处理 器在多机系统下高速缓存一致性带来的冲突问题。 3 研究了目前流行的验证技术,总结出了套适用于“龙腾r 2 ”特性的验 证方法。构建仿真验证平台,采用直接测试和随机测试的方法完成双端口 数据c a c h e 的验证,代码覆盖率和功能覆盖率都达到了1 0 0 。 4 对双端口数据c a c h c 迸行扩展研究,设计了一个1 6 端口数据c a c h e ,与 单端口实现的1 6 端口数据c a c h e 相比,数据c 础l e 平均访问时间降低了 2 0 左右,且硬件实现相对简单,占用芯片面积少。 本文设计的基于双端口r a m 的数据c a c h e 应用到“龙腾r 2 ”微处理器芯片中, 该芯片目前已经流片成功,并通过了实时监控程序和嵌入式操作系统v x w o r i ( s 的 测试,其指令集和接口时序与p o w e r p c 7 5 0 处理器完全兼容。 关键字:双端口r a m ,侦听,多端口数据c a c h e ,交叉开关,仲裁逻辑 a b s t r a c t t h ew o r ki nt 1 1 i sm e s i si sp a no f ap r e l i n l i i l a r yr e s e 盯c hp r o j e c c s b a s e do n 吐1 c d e s i 印o f3 2 - b i t 锄b e d d e di n i c m p r o c e s s o r ”l o n 垂i u mr 2 ,d e s i 驴e da n di i n p l e m e n t e d m ed 1 1 a l - p o r td a t ac a c h c ,w h i c hi s a p p l i e dt 0m c ”l o n 舒i 砌r 2 ”m i c r o p r o c e s s o r a c k e v e ds y n c l l r 出i o n s n 0 0 p i i l g , a n d e 髓c t i v e l yi m p r o v e d t l l e p r o c e s s o r s p 幽眦孤c e b a s e d 0 nm ed 吼i p o r t 鼬w ,s t i l d i e dm u l t i p o r td a 协c a c h e ,p r o p o s e da s i x t e e n p o r t e dd g t ac a c h c 1 kr e s e a r c hw o r ko f 吐l i sd i s s e r t a t i o nm a i n l yi n c l u d c s : 1 b a s e do na l l a l y z i n gm ea r c h i t e c t u r co f “l o n 舒i 啪r 2 ”r n i c r o p r o c e s s o r 孤d 也c c b a r a 啦f i s t i co fd l 】a l - p o nl 乙蝴,d e s i g n c da 1 1 di m p l c m e i 蹦t h ed u a j 侧 d a t ac a c h e ,w h i c hi s 印p l i e dt 0 龇”l 0 n 鲥啪r 2 ”m i 啪p r o c e s s o r n i e s i m u l a t i o nr c s u l t sa n da i l a l y s i sp m v et l l a ti t i s f l i l l yc o m p a t i b i e 、i m p o w e r p c 7 5 0i nf i m c t i o n 2 s n j d i e dm ed a 衄c a c h ec 0 h e r e i 脚胁t o c 0 1 ,b a s c do nt l l ed i i a l p o r tr a m , i m p l 锄e n 钯dd a 诅c a c h cs y n c h r o n i 刎o nm o o p i n g ,m e r e f o r ee 虢c t i v e l y s o l v e st h eh i 曲s p e e dc a c h ec 0 h e 嗽1 c ep r o b i e mo ft 1 1 e “l o n 鲥啪r 2 ”u n d e r m u n i - c o m p u t e re n v i r o 啪e m 3 r e s e a r c h e do nv e r i n c a t i o nm e m o d s ,觚dc o m e su p 、i mo i l c i l i l i q i l e v 耐f i c a t i o nm e t h o df o r “l o n 垂i u mr 2 ”d i r e c ta n dr a n d o mt e s t sa r c p e r f | o 珊e dt oc o m p l e t et h ev e r i f i c a t o no fd u a l 一p o nd a t ac a c h e ,柚dg c tt h c l o o c o d ec o v e r a g e 姐df i l :n c t i o n a lc o v e r a g e 4 s t u d i e dt h ee x p a r i s i o no fm ed l l a l l p o r td a t ac a c h e ,d e s i 印e das i x t e e n p 0 咄d d a t ac a c h e ,t h es i m l l l a t i o nr e s u l t ss h o w e dt h a to nt h ea v e r a g e ,a c c e s st i m ei s d e c r e a s e d2 0 o v c rs i n g l e - p o r tr a mb a s e dd a 协c a c h e t h e 嘲b e d d 耐3 2 - b i tm i c r o p r o c e s s o r “l o n g t i 啪r 2 ”i sc o m p a t i b l e 晰t l lt h e i n s t r 删o ns e ta n dt h ei n t e r et i m i n go fm 0 t o r o l a sp o w e r p c7 5 0m i c r o p r o c e s s o lt h e a s i cc h i pl l a db e e ns u c c c s s f u l l yt a p e do u t t h ep r o c e s s o r h 甜b e e np a s s e dt 1 1 r o u 曲t h e 搬时n go f1 l l e r e “- t i i i l em o n i t o r i n gp m g r a ma n dm ee m b e d d e do p e r a t i n gs y s t e m v x w o r k s k e y w o r d :d l l a l 一p o nl 乙a m ,s n o o p ,s i x t e e n - p o m dc a c h e ,a r b i 乜a t i o nl o 百c 四北工业大学 学位论文知i 识产权声明书 本人完全了解学校有关保护知识产权的规定,即:研究生在校攻读学位期间论文工作 的知诅 产权学,位属丁- 西北上业大学。学校有权保留并向国家有关部门或机构送交论文的复 印件和电子版。本人允许论文被查阅和借阅。学校可以将本学位论文的全部或部分内容编 入有关数据库进行检索,d j 以采用影印、缩印或手一描等复制手段保存和汇编本学位论文。 - j 时本人保证,毕业后结合学位论文研究课题再撰写的文章一律注明作者学位为西北工业 火学。 保密论文待解密后适用本声明。 学位论文作者签名;鑫垒:! :! 沙7 年;月哆目 斛挪篇鑫蓥 z 丘主f 夕 指导教师签名f 乏i 9 五:一 如- 年;月刁手 四北工业大学 学位论文原刨性声明 秉承学校严谨的学风和优良的科学道德,本人郑重声明:所呈变的学位论文,是本人 在导师的指导f 进行研究工作所敬得的成果。尽我所知,除文中已经注明引用的内容和致 谢的地方外,本论文小包含任何其他个人或集体己经公丌发表或撰写过的研究成果,不包 含本人或其他己申请学协或其他用途使用过的成果。对本文的研究做出重要贡献的个人和 集体。均己存文巾以明确方式表明。 本人学位论文与资料若有不实,愿意承担一 刀相关的法律责任。 学位论文作者签名:堑2 亟 如寸年j 月巧日 西北工业大学硕士学位论文 第一章绪论 1 1 课题背景及来源 第一章绪论 自第一个微处理器4 0 0 4 在1 9 7 1 年诞生以来,微处理器已经走过了三十五年 的发展历程。在这三十五年间,微处理器的性能在制造工艺和各级并行技术双重 作用下飞速提高。微处理器的发展对现代通信、国防科技和人们的日常生活等各 方面都产生了深远的影响。 研制高性能的微处理器是各个科技大国综合科技实力竞争的一个热点,我国 也非常重视在这个领域的研究投入,但是由于各种原因,我国涉及微处理器的许 多核心技术与产品仍然依赖外国。虽然目前国内有许多高校和研究所都对8 位、 1 6 位和3 2 位处理器进行了研制,国产芯片如“龙芯”【2 】、“方舟”【3 1 【4 】等也接连问 世,但是性能和相关应用还无法与国外芯片竞争,技术上受制于人。为使国家经 济、国防安全得到保证,自行研制具有我国自主版权的处理器迫在眉睫,这在当 今具有重大意义。 第一款6 5 纳米芯片已经由i n t e l 于2 0 0 5 年推出,预计到2 0 1 4 年,微电子工艺 将完全有能力生产工作频率高达1 3 5 g h z 、晶体管数目达4 3 亿的片上系统l l l 。随 着芯片集成皮的提高,越来越多的存储层次集成在处理器内部,对系统性能的提 升有很大的影响。 从2 0 世纪8 0 年代开始,如何解决存储器访问带来的瓶颈问题,就已成为高 性能微处理器设计的热点问题。对于高性能微处理器,必须设计高效提供指令和 数据的机制,c a c h e 的出现可以很好地实现这种机制。哈佛结构c a c h e 【5 j 独立了指 令c a c h c 和数据c a c h c 的功能,可以设计符合指令和数据特性的结构和组织方式, 从而能够更有效地解决存储器瓶颈问题。 数据具有可修改的特性,在设计和使用上都比指令复杂。特别在多处理器系 统或媒体流处理器等高性能微处理器下,对数据的要求更加高,需要有高性能的 数据c a c h e 来满足。随着多级c a c h e 的应用,共享一级数据c a c h e 【“,共享二级 c 牡h c l 7 】和私有c a c h e 等设计方案不断研究出来。 稻有c a c h c 的使用可以提高系统的性能,但是也会带来数据一致性问题。一 种解决数据一致性问题的双端口目录表法【| 】比普通的单端口目录表法或双目录表 西北工业大学硕士学位论文 第一章绪论 法能更加有效的解决处理器操作和数据一致性两个操作。双端口目录表法能够同 时处理数据存取操作和一致性操作,而在共享数据c a c h e 的结构下,存在两个以 上访问请求同时访问数据c a c h e 的情况,要能满足这些访问请求,多端口数据c a c h e 就被提出来,进行研究。 多端口数据c a c h e 的实现方法有多种【9 】:理想多端口c a c h c ,资源复制c a c h e 【1 0 j 和虚拟多端口c a c h e 【l l 】( 时分多路技术) 。这些方法的实现难度比较大,且不能有 效提高系统的性能。另一种多端口实现方法是交叉存储【l2 1 ,此方法一般由n 个独 立的单端口c a c h e 体组织实现n 端口数据c a c h e 。c a c h e 行的地址通过体交叉实现, 各个体的存储操作可同时进行。随着端口数的增长,c a c h e 体的个数也随之增长, 导致交叉开关的复杂性非线性增长,这会增加c a c h c 存取时问,限制系统性能的 提高。随着半导体器件尺寸的缩小和时钟频率的增加【1 3 】【1 4 1 ,交叉开关网络延时很 大程度上会影响到微处理器的性能,在将来的微处理器设计中,交叉开关作为主 要的存取路径,其开销将是一个很大的挑战。 本文基于以上背景,结合西北工业大学航空微电子中心承担的某预研课题, 研究适用于多处理器系统的高性能数据c a c h e ,讨论用双端口r a m 来设计多端口 数据c a c h e 。用双端口r a m 取代单端口r a m 来做设计,是本文研究的基础,与 以往的多端口c a c h c 在实现方法上有很大不同,此基础上实现的多端口数据c a c h e 能够降低设计的硬件复杂性,并能充分利用双端口r a m 的特性,提高系统的性能。 本文作者参与了3 2 位嵌入式r j s c 微处理器“龙腾r 2 ”的设计,主要负责c a c l l c 和存储管理单元( m m u ) 的设计和验证。“龙腾r 2 ”微处理器在接口时序和指令 集上同p o w e r p c 7 5 0 处理器完全兼容。在该课题研究成果的基础之上,本文针对多 处理器系统,完成“龙腾i 己2 ”双端口数据c a c h e 的设计和多端口数据c a c h e 的研 究。多端口数据c a c h e 是以一个1 6 端口数据c a c h e 为研究对象,提出一种多端口 c a c h e 的实现方法。在半导体技术不断发展和微体系结构不断创新的形势下,本文 的研究具有一定的实用价值。 1 2c a c h e 概述和研究状况 c a c h e 是高性能处理器解决c p u 和主存速度差异问题的有效措施之一,首先 是在i b m3 6 0 8 0 计算机上实现的。 早在2 8 6 时代,计算机还没有c a c h c ,这是因为当时的c p u 速度不快,内存 的速度完全可以满足系统的需求。直至3 8 6 时代,当c p u 的速度不断进步,内存 的速度却没有得到有效的提升,内存便成为了系统传输的瓶颈,就出现了外部 2 西北工业大学硕士学位论文 第一章绪论 c a c h e ,当时的c a c h e 是加在主板上,速度比主存储器快,作为c p u 和内存的缓 冲区域:当c p u 的速度不断进步时,外置c a c h e 受系统总线的影响已经不能完全 满足c p u 发展的要求,8 0 4 8 6 时期开始有了内部c a c h e ,大小仅为8 k b :等到p e m i u m 时期有了分离的内部l lc a c h e 和外部l 2 c a c h e ;p 3 时己经把l 2 c a c h e 集成到c p u 内部;在p 4 处理器中则使用了一种先进的一级指令c a c h e 一动态跟踪缓存,大 大提高了处理器的运算效率。目前,i t a n i 啪( 安腾) 处理器的三级c a c h e 容量已 经增长到6 m b i ”j 。 从c a c h e 的发展过程中可以得出在计算机系统中设置c a c h e 的一个主要目的 是为了提高存储系统的速度,降低访存停顿时间。c a c h e 的性能由三个因素决定: 命中时间、缺失时间和缺失率。一个衡量c a c h c 性能的公式为: c a c h e 平均访问时间;命中时间+ 缺失时间缺失率 公式( 1 - 1 ) 公式( 1 1 ) 中的命中时间是指一次访问c a c h c 命中所用的时间。对于片外 c a c h e ,命中时间主要取决于整个计算机系统的体系结构;片上c a c h e ,命中时间 主要由关键路径决定。只有当关键路径出现在c a c h c 子系统中时,命中时间才会 和c a c h e 子系统的结构直接相关;缺失时间是c a c h e 不命中时的访存时间。这个 数值相对命中时间来说,一般在命中时间的5 0 到l o o 倍之问;缺失率主要由两个 方面决定,一个方面是程序本身的局部性,另一个则是c a c h e 的结构。这个因素 非常重要,也是c a c h e 设计的主要考虑因素之一。 片内c a c h c 的体系结构分为两大类:一类是普林斯顿( p r i n c e t o n ) 结构,将数 据和指令都存放在一个c a c h e 内,此类c a c h e 称为单一化c a c h e ;另外一类是哈佛 ( h a r v a r d ) 结构,将数据与指令分别放在两个独立的c a c h e 中【5 j 分别称作指令c a c h e 和数据c a c h e 。 哈佛结构可以允许同时对指令和数据进行存取,消除了数据引用和指令引用 之间的冲突。而且,允许分别独立地选择和优化各自c a c h e 的大小、行大小和相 联度。哈佛结构的不足是:不能根据系统的需要动态地分配数据c a c h e 和指令c a c h e 的大小;自修改指令开销大,修改过的指令要经过数据c a c h e 写入主存,才能被 访问,并在执行这些指令前,两个c a c h e 都必须被清空。 普林斯顿结构改进哈佛结构的不足,但是由于其数据指令冲突很大,不适合 高性能微处理器的应用。目前大部分高性能微处理器都采用哈佛结构,带有片内 一级c a c h c 。 目前c a c h e 技术的研究主要有三个方向:c a c h e 结构的研究、预取技术的研究 和c a c h e 内部实现的研究。c a c h c 结构的研究,包括构建多级c a c h e ,使用更大容 量的c a c l l e ,提高c a c l l e 相联度等;预取技术研究的是把有用的数据或者指令预先 西北工业大学硕士学位论文 第一章绪论 取到c a c h e 中,降低c a c h e 的缺失次数,从而降低缺失率和缺失代价。预取根据 不同的预取对象和不同实现方法有许多优秀的预取技术,如错误路径预取 ( w r o n g - p a mp r e f e t c h ) 州、b r a n c hp r e d i c t i o nb a s e dp r e f e t c h i n g l j 、c o o p e r a t i v c p r e f e t c i l i n s 】、m b t b 预取技术【1 9 等;c a c h e 内部实现的研究,包括标志域的实现 以及存储单元的实现等方面。一般使用的c a c h e 为单端口结构,采用单端口r a m 实现,也有研究采用单端口r a m 实现多端口c a c h e l 6 j ,或直接采用多端口r a m 实现多端口c a c h e 】。 国内对c a c h e 的研究从来没有懈怠过,并在这方面做出很多研究工作,目前 研究主要集中在t r a c ec a c h e 和预取方面。国防科技大学的周兴铭院士在t r a c e c a c h e 方面取得了定的研究成果,提出了t r a c ec a c h e 的几个发展方向【2 l 】。清华 大学的李三立院士提出一种前瞻性c a c h e 【2 2 】,对即将执行的指令进行提前分析,提 高命中率。国防科技大学的沈立等人对指令的硬件预取进行了研究,提出了一种 基于程控流的混合指令预取机制,采用顺序预取和非顺序预取相结合的方式将指 令提前读入指令c a c h e ,提高指令c a c h e 的命中率【2 jj 。中国科学院的连瑞琦等人深 入研究了软件预取技术,通过编译器发出预取指令,利用寄存器堆减少内存访问 次数阱l 。西北工业大学航空微电子中心在该领域也做了大量的研究工作,对高性 能微处理器片内存储系统【2 5 】、多机系统下c a c h e 技术【2 6 l 等方面进行了深入研究。 1 3 论文工作 论文作者在攻读硕士学位期间,作为设计人员,参加了西北工业大学航空微 电子中心的嵌入式高性能微处理器“龙腾r 2 ”微处理器的研制,负责高速缓冲存 储器和存储管理单元的设计和验证。 本论文完成了其中双端口数据c a c h e 的设计和验证,并研究了多端口数据 c a c h e ,论文的主要工作如下: 1 考察了“龙腾r 2 ”微处理器的体系结构,在同步双端口s r a m 的基础上, 对数据c a c h e 的组织结构、实现方法等方面进行了深入的研究,设计并实 现了适应p o w e r p c 指令集系统结构的双端口数据c a c h c ,并应用于“龙腾 r 2 ”微处理器中,经仿真分析,其功能和p o w e r p c 7 5 0 完全兼容。 2 分析了“龙腾r 2 ”数据c a c h e 一致性协议,在双端口r a m 基础上,实 现了“龙腾r 2 ”数据c a c h e 的同步侦听操作,有效地解决了“龙腾r 2 ” 微处理器在多机系统下高速缓存一致性带来的冲突问题。 3 研究了目前流行的验证技术,总结出了一套适用于“龙腾r 2 ”特性的验 4 西北工业大学硕士学位论文第一章绪论 证方法。构建仿真验证平台,采用直接测试和随机测试的方法完成双端口 数据c a c h e 的验证,代码覆盖率和功能覆盖率都达到了l o o 。 4 对双端口数据c a c h e 进行扩展研究,设计了一个1 6 端口数据c a c h e 。该 1 6 端口数据c a c h e 采用八路组相联映射策略和伪l r u 替换算法,采用交 叉存储的方法实现1 6 个端口的访问请求。经仿真分析,与单端口实现的 1 6 端口数据c a c h e 相比,数据c a c h e 平均访问时间降低了2 0 左右,且 硬件实现简单,大大节省芯片面积。 1 4 论文结构 本论文的内容共分六章,具体安排如下: 第一章是绪论,首先介绍了论文的选题背景以及研究意义,然后概述了c 舵h e 技术和研究现状,最后是论文的内容安排简介。 第二章概述了“龙腾r 2 ”微处理器的体系结构,设计了双端口数据c a c h e , 并对静态随机存储器s r a m 、双端口存储器和同步双端口存储器进行讨论,确定 本论文研究的存储器基础。 第三章是本论文的核心之一,完成了“龙腾r 2 ”微处理器双端口数据c h e 各个逻辑模块的实现,特别对控制模块进行详细描述。 第四章讨论了“龙腾r 2 ”双端口数据c a c h e 的验证方法,构建仿真验证平台, 完成数据c a c h e 功能仿真验证。 第五章也是本论文的核心之一,设计了一个1 6 端口数据c a c h e 。包括对组织 结构、映射策略的实现和交叉开关等设计技术的讨论。 第六章是结束语,对本论文的工作进行了小结。 西北1 = 业大学硕士学位论文第二章双端口数据c a c h e 设计 第二章双端口数据c a c h e 设计 “龙腾r 2 ”微处理器是西北工业大学航空微电子中心研制的3 2 位嵌入式微处 理器系统,其指令集和接口时序与p o w e r p c 7 5 0 完全兼容。本章首先对“龙腾r 2 ” 微处理器的体系结构做简要介绍,介绍“龙腾r 2 ”的结构划分,以及存储系统中 存储管理单元的实现方法;接下来对双端口数据c a c h e 的设计参数进行描述;最 后,阐述了本文的存储器基础双端口r a m 。 2 。l “龙腾r 2 ”微处理器体系结构 “龙腾r 2 ”微处理器定义了面向寄存器的指令集、寄存器模型以及异常、故 障的基本结构,支持外部总线的突发、流水传送技术、乱序传输技术。“龙腾r 2 ” 微处理器属于标准的l o a d s t o r e 结构,具有独立的l 0 a d s t o r c 部件来执行l o a d s t o r c 指令,支持三种有效地址计算方式。采用基于优先级的异常处理方式,支持嵌套 式异常处理,支持异步不可屏蔽异常、异步可屏蔽异常和同步精确异常三种类型 异常的处理。支持多种处理器模式,在相应的模式下,可以降低功耗或者提高总 线接口效率,从而可以更好的适用于不同的应用场合。 1 、微处理器结构 “龙腾r 2 ”微处理器的结构如图2 1 所示,主要包含八个功能部件:取指译 码单元、定点执行单元、浮点执行单元、l o a d s t o r e 单元、存储管理单元、一级指 令数据c a c h e 单元、二级c a c h c 控制器和总线接口单元。 取指译码单元( f d u f e t c hd e c o d eu 1 1 i t ) 是主要的控制部件,它产生取指的 p c ,从指令c a c h e 接收指令并进行译码,根据不同类型的指令,产生不同的控制 信号,并把指令发射到相应的执行部件。指令译码部件还包含一个分支预测单元, 专门用来处理转移指令,产生转移指令的目标地址。 定点执行单元( i e u i n t e g e re x e c u t eu 血) 用来完成定点指令的执行,主要由 寄存器堆( 包括3 2 个3 2 位的通用寄存器。特殊寄存器和临时寄存器) 、3 2 位a l u 、 桶式移位器、前导零计算模块、立即数模块、掩码模块和3 2 位阵列乘法器组成。 浮点执行单元( f p u f l o a t l ) o i i np r o c e s su h i t ) 负责整个处理器的浮点数据处理, 包括浮点数据的各种算术操作( 加、减、乘、除、倒数以及倒数平方根) ,定浮点数 西北工业大学硕士学位论文第二章双端口数据c a c h e 设计 据的相互转化和浮点数据的比较、控制操作。浮点执行部件相对比较独立,有自 己的独立译码器对接受到浮点指令进行译码,使用了7 级流水来实现整个浮点执 行部件的数据通路和控制通路。 l o a d s t o r e 单元( l s u l o a ds t o r eu n “) 主要完成l o a d s t o r c 指令有效地址的 计算,同时完成指令的异常检测和跨页边界处理。 存储管理部件( m m u - m e m o r ym a i l a g e m e n tu n i t ) 完成地址转换和存储保护两 大功能,包括地址、数据两部分。存储管理部件支持3 种有效地址到物理地址的 转换方式:页地址转换、块地址转换和实地址转换。数据存储管理和地址存储管 理的地址转换部分类似,但其存储保护不尽相同,主要原因是数据需要考虑写操 作,而指令不需要。此外存储管理部件还包括异常处理逻辑来处理与存储保护相 关的异常,以及地址、数据转换后援缓冲区( t l b t r 椰l a i i o nl o o k 邪i d cb u 能r ) 来加快页地址转换速度。 图2 1“龙腾r 2 ”微处理器结构图 一级哈佛结构的指令数据c a c h e 单元( l lc a c h e ) 主要用于缓冲最近使用的 指令及数据,以便能快速为后续操作提供指令或数据。它包含c a c h e 的命中、预 取、替换、访存和输出逻辑等。数据c a c h e 为双端口,采用同步双端口s r a m 实 8 西北工业大学硕士学位论文第二章双端口数据c a c h e 设计 现,数据c a c h e 一致性通过m e l 致性协议来保证。 二级c a c h e 控制器( l 2c a c h ec o n 咖l l e r ) 的功能与一级指令数据c 觚h e 相似, 都是为了弥补c p u 和内存之间的速度差异,与一级c a c h e 相比,二级c a c h e 的容 量要大一些,而访问的延迟也会长一些。 总线接口单元( b i u b u s i n t e r f a c eu n i t ) 为微处理器内核与处理器外部总线提 供了一个数据交换通道,主要完成取数和预取数操作、取指和预取指操作,同时 进行地址、数据的校验检查和总线侦听,实现了外部总线的流水、乱序执行和总 线重传操作。此处总线侦听逻辑的主要功能是:当总线上有访存操作时,“龙腾r 2 ” 的总线侦听逻辑侦听该访存操作的地址和传输属性信号。当全局信号g 砚有效时, 总线侦听逻辑在2 s 有效时侦听总线。如果总线上的操作满足被侦听的条件,被侦 听到的地址就会送到数据c a c h e ,进行命中判断。当被侦听的操作命中数据c a c h e 时,“龙腾r 2 ”会向总线发出4 胄豫y 信号,当前的总线使用者在检测到彳r 豫】,信 号后,必须放弃当前的操作,晚一些时候再重新请求开始,这时,“龙腾r 2 ”就可 以执行一次从数据c a c h c 到存储器的写操作。 2 、流水线级数选择 “龙腾r 2 ”流水线的设计和划分,首先需要考虑的是指令执行的过程,按功 能来进行划分和定义。使得流水线中每个流水级完成的功能明确,各流水级之间 的界限清晰,有利于减少流水线中各级之间的存贮信息要求。在划分的过程中, 保证各流水级功能完整的条件下,平衡各流水级的操作,同时考虑各级的锁存开 销【2 矾。其次还要考虑到“龙腾r 2 ”时钟频率( 目标频率2 3 3 m 旧的限制和流水线 划分后设计的综合结果。 根据对“龙腾r 2 ”指令执行过程的分析和对初次流水线划分后设计的综合结 果的分析,确定“龙腾r 2 ”采用取指、译码,取数、执行、异常检测和写回结果 6 级流水。 在取指阶段,向指令c a c h e 发出取指申请,将其返回的指令流加载到预取指 令队列之中。在译码阶段,译出正确执行该条指令所需的完备的控制信号;在取 数阶段,完成操作数扩展,操作数准备,格式调整;在执行阶段,完成指令的操 作,包括乘法,除法,算术逻辑操作,前导零计算,浮点处理单元,以及移位旋 转操作等;在异常检测阶段,处理系统中断,该级主要为了实现精确异常并有助 于提高系统的时序;在写回结果阶段,更新系统寄存器,完成整条指令的执行流 程。 9 西北工业大学硕士学位论文 第二章双端口数据c a c h e 设计 2 2 存储管理单元m m , “龙腾r 2 微处理器支持4 p b ( 2 5 2 ) 虚拟内存,而物理内存的大小为4 g b ( 2 3 2 ) , 因此需要在虚地址和实地址之间进行转换,这就是存储管理单元的职责。“龙腾r 2 ” 通过硬件实现存储管理,使用段页式内存管理方式,同时,支持块( b i o c k ) 。 “龙腾r 2 ”微处理器的存储管理单元( m m u ) 采用哈佛结构,指令和数据的 地址转换并行进行。指令m m u 和数据m m u 在结构上是独立的,二者的转换原 理完全一致,都支持三种不同的地址转换模式:实地址转换、块地址转换和页地 址转换,如图2 2 所示。 图2 - 2m m u 地址转换类型 l 、实地址转换:当机器状态寄存器( m s r ) 中的d r 位为零,即m s r 【d r = o , 表示对取数地址( da _ c ae 仃e c t i v ea d d r e s s ) 进行实位址转换,物理位址即为有效地 址。类似的,m s r i r 】= 0 表示对取指地址( i r i s t m c t i o n e 疏c t i v e a d d r e s s ) 进行实地 址转换。 2 、块地址转换:m s r d r 】= 1 时,按编程指定的块大小进行地址变换( 块大 小为1 2 8 k b 2 5 6 m b ) ,通过和块寄存器b a t 相联比较进行转换。当块地址转换成 功时,忽略页地址转换的结果。 3 、页地址转换:m s r 【d r 】= 1 时,按4 k b 的页面大小进行地址变换,查找段 寄存器后形成虚拟地址,再查找页表进行转换。 l o 西北工业大学硕士学位论文 第二章双端口数据c a c h e 设计 2 3 双端口数据c a c h e 基本参数设计 2 3 1 数据c a c h e 容量 从理论上讲,c a c h e 的容量越大越好,增加c a c h e 的容量可以降低容量缺失【2 9 】, 还可以把更多的数据存放在c a c h e 中,提高访问c a c h e 的命中率。但是片上c a c h e 容量的设计不可能做的非常大,这其中两个主要因素是:芯片的面积和整个处理 器的系统性能。 首先,研究显示,随着集成电路的发展,存储部件在整个芯片上所占用面积 的比例越来越大,几乎达到整个处理器面积的8 0 以上。因此片上c a c h e 的大小 必须充分考虑到最后芯片的实现成本。其次,c a c h e 性能的提高和c a c l 托容量的提 高并不是单一的线性关系,c h e 容量越大,访问时间越长,继而还会影响到c p u 的时钟周期。因此在确定一级数据c a c h e 容量时,要在面积和性能之间作一个平 衡。 “龙腾r 2 ”微处理器主要是机载应用,对芯片的面积和功耗要求比较高,并 且还集成了片上二级c a c h e 控制器,用于进一步减少访存延时和一级c a c h e 缺失 代价。同时还需要分析组成c a c h e 的s r a m 特性。 s r m 用的是由a n i s 锄提供的s m i co ,1 8 肛m 同步双端口s r a m 模型,我们 把在此模型下,一级c a c h e 缺失率、面积和容量的关系列出来,如表2 - 1 所示。 表2 1不同r a m 大小实现c a c h e 的性能参数 大小 l k 2 k4 k8 k1 6 k3 2 k6 4 k1 2 8 k 缺失率 o 1 8 4 o 1 3 l0 0 9 30 0 7 10 0 4 80 0 3 7o 0 2 8 o 0 2 2 面积( m m 2 ) 0 1 3 3o 2 5 6o 5 0 10 9 7 21 8 9 63 7 4 5 7 4 1 51 4 5 2 7 可以看出,开始阶段增加c a c h c 的容量可以比较明显地降低c a c h e 缺失率。 但是,容量增加时,综合面积显著增加,这会直接影响处理器芯片生成的成本。 在3 2 k 处,若容量继续增大,则面积增加较多,但是缺失率的减少有限。 结合面积和性能两方面的考虑,最终确定数据c a c h e 的大小为3 2 k b ,“龙腾 r 2 ”的指令c a c h e 大小与数据c a c h e 相同,也为3 2 k b y t e 。 西北工业大学硕士学位论文第二章双端口数据c a c h e 设计 2 3 2 数据c a c h e 的行大小 行( l i n e ) 也称为块( b l o c k ) ,是c a c h e 和主存之间数据交换的单位。行的大 小会影响缺失率,降低缺失率最简单的办法是增大c a c h e 行的大小,但行大小也 不是越大越好。 增大c a c h e 行大小,缺失时从存储器读入的数据就会越多,虽然对于局部数 据的操作缺失率会降低,但是,一旦出现缺失,缺失代价也就越大。 增大c a c h e 行大小,c a c h e 中的行数也会减小。对于组相联映射的c a c h e ,如 果保持c a c h e 的组数一定,那么就会导致c a c h e 的路数减少,从而冲突缺失增加; 而如果保持c a c h e 的路数一定,那么就会导致c a c h e 的组数减少,从而容量缺失 增加。 图2 3 所示是在文献【2 9 】中,不同c a c h e 容量情况下,缺失率和行大小之间的 关系。由这个图可以明显地得出,在增大c a c h e 行大小的过程中,首先缺失率会 随着c a c h e 行大小的增加而减少,达到一定的程度以后,如果继续增加c a c h e 行 大小,c a c h e 的缺失率就会上升。缺失率较低的情况是在行大小为3 2 或6 4 处。 图2 ,3 五种不同容量c a c h e 的缺失率和行大小的关系 文献口0 1 指出数据c a c h e 的行大小应该是传输数据块大小的一倍或者两倍,“龙 腾r 2 ”采用总线6 0 ) ( 支持3 2 字节的突发式传送,因此“龙腾r 2 ”微处理器中的 1 2 西北工业大学硕士学位论文第二章双端口数据c a c h e 设计 数据c a c h e 的行大小选择为3 2 字节,指令c a c h e 的行大小与数据c a c h e 相同。 2 3 3 数据c a c h e 映射策略 映射策略就是将内存中的块按一定的规则装入c a c h e 中,主要有三种策略: 全相联映射、直接相联映射和组相联映射。这三种映射策略中,全相联映射c a c h e 空间利用率最高,块冲突率最低,因而c a c h e 命中率最高,但是实现硬件开销大, 特别是全比较电路实现的代价高,很少被应用。直接映射由于每个内存块只有一 个固定的位置可存放,往往容易发生冲突,导致失效率较高,但由于其硬件结构 简单,成本低,使用的比较普遍。组相联映射集成前两者的优点,性价比较高, 使用的也相当广泛。 对于面向嵌入式航空应用领域的微处理器“龙腾r 2 ”来说,程序代码密度高、 任务切换频繁、跳转指令较多,因此从提高命中率和实现代价等方面考虑,我们 采用组相联映射策略。 数据c a c h c 的组织结构采用8 路组相联,每路4 k b y t e ( 2 1 2 ) ,每个c a c h e 块的 大小为3 2 字节,每路1 2 8 入口。对内存来说,将其按c a c h e 的组容量分区,共分 为2 2 0 个区,每区1 2 8 块。从内存的组到c a c h e 的组之间采用直接映射方式,组内 采用全相联方式。图2 - 4 所示为八路组相联映射规则。 01 92 0 2 62 7 3 l 二二重三二二二匪变耍墅习! 囹主存地娜) 主存储器 图2 - 4 八路组相联映射规则 1 3 区0 区l 区2 ”一l 、。r,、lrj、,。r) 西北工业大学硕士学位论文第二章双端口数据c a c h e 设计 2 3 4 数据c a c h e 替换算法 当c a c h e 缺失时,从内存中读取需要的块写入到c a c h e 中时,会出现所映射 的c a c h c 位置已经被占用的情况,这时需要选择其中一块替换出去,存放新调入 的块。这就涉及到替换算法问题,如果算法选择不当,会大大增加调入调出的频 度,降低系统的性能。常用的替换算法有随机法、先进先出算法( f i f o ) 、和最近 最少使用算法( l r u ) 。 随机法:随机地选择被替换的c a c h c 行,实现简单,但是缺失率比l r u 高。 先进先出算法( f i f o ) :把最先写入的c a c h c 行替换出去,不需要随时记录每 个c a c h e 行的使用情况,容易实现。 最近最少使用算法( l r u ) :选择当前一个时间段内最少被访问的c a c h e 行替 换出去。需要对每一行设置一个计数器,把命中行的计数器清零,其它各行计数 器加1 。此算法比较符合c a c h e 工作原理,缺失率最低,但是计数器的实现开销大, 硬件实现比较困难,代价很大。 “龙腾r 2 ”的c a c h e 采用了一种与众不同的伪l r u 替换算法( p l r i j ) ,该 算法采用l r u 算法的思想,将c a c h e 分组考虑,每次替换选中的也是最久没有使 用的c a c h e 块,但是不用计数器记录状态,而是用状态位来表示状态。伪l r u 的 实现代价比l r u 要小很多,n 路组相联的c a c h e 只需要每组n 1 位记录状态。因 此,8 路组相联,1 2 8 入口的c a c h c ,每组用7 位状态位即可实现数据c a c h c 的替 换算法。 通过对8 路,每路1 2 8 组的c a c h e 分别用l r u 和伪l r u 实现替换功能,用 a n l p l i 母综合,q u a n u s 布局布线( 器件选用a l t e r a a p e x 2 0 k e l 5 0 0 系列) ,结果如表 2 2 所示。从表2 2 中得到,用伪l r u 算法实现的c a c h e 速度是l r u 实现的三倍, 占用逻辑资源是l r u 算法的五分之一。并且通过对运行s p e cc p u 2 0 0 0 共1 2 个 定点程序、1 4 个浮点程序【3 l 】的统计,发现p l r u 的命中率是l r u 命中率的9 0 7 到l o o ,平均为9 4 9 8 。 表2 2c a c h e 的l r u 替换算法和p l r u 替换算法比较 l 算法 速度m h z占用逻辑资源数目c e l l il r u2 8 1 22 1 。4 5 5 ip l r u8 1 9 3 4 ,6 1 7 因此,“龙腾r 2 ”数据c a c h e 采用的伪l r u 算法是一种性能比较优良的替换 1 4 西北工业大学硕士学位论文 第二章双端口数据c a c h e 设计 算法。 2 3 5 数据c a c h e 预取策略

温馨提示

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

评论

0/150

提交评论