(电路与系统专业论文)片上高速缓存及存储管理的ip建模.pdf_第1页
(电路与系统专业论文)片上高速缓存及存储管理的ip建模.pdf_第2页
(电路与系统专业论文)片上高速缓存及存储管理的ip建模.pdf_第3页
(电路与系统专业论文)片上高速缓存及存储管理的ip建模.pdf_第4页
(电路与系统专业论文)片上高速缓存及存储管理的ip建模.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(电路与系统专业论文)片上高速缓存及存储管理的ip建模.pdf.pdf 免费下载

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

文档简介

摘要 摘要 随着集成电路设计技术的不断发展,集成电路工艺水平的不断提高以及消费类电子市场的强烈 需求。高性能的系统芯片( s o c ) 应运而生。而片上微处理器和片外存储器之间的速度差异越来越 大,日趋成为制约s o c 芯片性能的一个瓶颈。解决这个问题的有效方法就是在微处理器和和主存之 间加入一个容量小但速度快的高速缓存( c a c h e ) 。东南大学国家专用集成电路系统工程技术研究中 心采用全定制的方式,自主研发设计了高速缓存( c a c h e ) 、存储管理单元( m m u ) 和写缓冲电路。 投入巨大精力设计的c a c h e m m u 电路以口硬核提供给其他用户,必须建立完善的e d a 模型。 本文的主要内容分为两个方面:一是研究时序建模方案,使用s p i c e 网表进行动态仿真,为全定制 设计的c a c h e m m u 电路建立时序模型,为综合和静态时序分析提供时序信息。另一方面,深入研 究c a c h e 、m m u 和写缓冲的结构,结合全定制设计的电路,为c a c h e m m u 和写缓冲建立行为级描 述的功能模型。使用功能模型进行仿真,可以大大提供仿真速度,进行更全面的仿真验证。同时, 功能模型的建立还为进一步探索和改进c a c h e 的结构,以更好的发挥处理器的性能提供了可能性。 根据论文提供时序模型,将c a c h e m m u 整合到系统芯片c r a r f i e l d 中,采用o 1 8 9 m 工艺剑s m i c 流片。经过测试,可以正确实现各种功能,c a c h e 和m m u 均可正常工作。以计算圆周率万的测试 程序测试芯片的最高工作频率,程序放在s d r a m 中运行时,c p u 的工作频率最高可以为9 8 m h z ; 而放在片上e s r a m 中运行时,c a c h e 不打开的情况下,最高可达到1 5 0 m h z 以上;c a c h e 打开的情 况下,最高可达到1 0 4 m h z 。 功能模型通过v c s 仿真调试,可以正确的执行内存保护、c a c h e 替换、c a c h e 刷新、t l b 刷新 等功能测试程序,以及计算圆周率万的测试程序。对于大小为2 4 k 字节,需要1 8 8 8 个指令周期的 测试程序,用网表进行仿真,需要l o 天;而用功能模型进行仿真时,仅需要5 分钟,仿真速度大大 提高。 关键词:c a c h e ,m m u ,功能模型,时序模型 a b s t r a c t s y s t e m - o n - c h i p ( s o c ) g e n e r a t ed u et ot h er a p i da d v a n c e si ni n t e g r a t i o nt e c h n o l o g i e sa n dp r o c e s s i n g t e c h n o l o g i e s h o w e v e rt h ep e r f o r m a n c eg a pb e t w e e nm i c r o p r o c e s s o ra n do 在曲i pm e m o wb e c o m e st h e b o t t l e n e c ko ft h eh i g hp e r f o r m a n c eo fs o c n o wo n - c h i pc a c h e sa r ew i d e l yu s e di no r d e rt os o l v et h i s p r o b l e m , a n dm a n yn e w s i r u c t t l r e sa r ep r o p o s e dt oi m p r o v ep e r f o r m a n c eo rt ol o wt h ep o w e r d i s s i p a t i o n n a t i o n a le n g i n e e r i n gr e s e a r c hc e n t e rf o ra p p l i c a t i o ns p e c i f i c i n t e g r a t e dc i r c u i ts y s t e mo fs o u t h e a s t u n i v e r s i t yd e s i g nt h ec a c h e 、m m ua n dw r i t eb u f f e rc i r c u i t su s i n gc m s t o ma p p r o a c h t h ec l t i s t o mb l o c ks h o u l db er e u s a b l e ,a n di tw i l lb eb e t t e ri fi tc a nb ep r o v i d e dt oo t h e rd e s i g n e ru s h a r di pc o r e a si n t a c ti ps h o u l di n c l u d ef u n c t i o n a lm o d e l , t i m i n gm o d e l , p h y s i c a lm o d e la n dt e s tm o d e l , i n t h i sp a p e r , w ef o c u so nb u i l d i n gt h ef u n c t i o n a la n dt i m i n gm o d e lf o rc a c h e m m u f i r s tw ea n a l y z et h e d i f f e r e n tm e t h o d sf o rm o d e l i n gt i m i n g , a n dt h e nm a d et h et i m i n gm o d e lu s et h et i m i n gi n f o r m a t i o n c o l l e c t e df r o md y n a m i cs p i c es i m u l a t i o n o nt h eo t h e rh a n d , a s s o c i a t ew i t ht h ec u s t o mc i r c u i t s ,w em a d e t h eb e h a v i o r a ld e s c r i p t i o nv e r i l o gm o d e lf o rt h em a c b l o c k0 1 1t h eb a s eo fd e e p l yu n d e r s t a n d i n go ft h e s t r u c t u r eo fc a c h e m m u u s i n gf u n c t i o n a lm o d e li n s t e a do fs p i c en e t - l i s tc a l ls p e e di | pt h es i m u l a t i o n h i g h l y , a n dt h ec o r r - tf u n c t i o n a lm o d e la l s op r o v i d e st h ep o s s i b i l i t yt os e e ka f t e ran e wc a c h e 刚:r i k = t i j m w h i c hc a ni m p r o v et h ep e r f o r m a n c eo f c p ub c t - t e r i nt e r m so ft h et i m i n gm o d e l , c a c h e m m uw a ss y n t h e s i z e di nt h es o cc h i pg a r f i e l d g a r f i e l dh a s t a p e do a ti ns m i cw i t ho 1 8 9 i np r o c e s s w et e s t e dt h ec h i pw i t ht h eh e l po fa r md e v e l o p m e n ts u i t e ( a d s ) t h et e s tr c s u i t si n d i c a t et h a tc p u 啪d oc o r r e c tc a l c u l a t i o n , a n dc a c h e m m ua l s oc a nw o r k p r o p e r l y a st ot h ep r o g r a mo f c a l c u l a t e 玛t h ew o r kf r e q u e n c yo f c p ui su pt o9 8 m i - i zw h e nt h ep r o g r a m i sl o a d e di ns d r a ma n dw h e nt h ep r o g r a mi sl o a d e di ne s r a m ,t h ew o r kf r e q u e n c yi si j pt o1 5 0 m h z w i t hc a c h ed i s a b l ea n d1 0 4 m h zw i t hc a c h ee n a b l e t h ef u n c t i o n a lm o d e lh a sp s e dt h es i m u l a t i o nu s i n gv c si nt h es y s t e mo fg a r f i e l d i tc a ne x e o j t e t h em e m o w p r o t e c t , c a c h er e p l a c e m e n t , d i s a b l ec a c h ea n dd i s a b l et l bc o r r e c t l y , a n da l s oc a l c u l a t e 嚣 c o r r e c t l y t h es i m u l a t i o nt i m er e d u c e df r o m1 0d a y st o5m i n u t ef o rt h ep r o g r a mo f 2 4 k , i n c l u d e i n g1 8 8 8 r s u u c t o i o u s k e y w o r d s :c a c h e ,m m u ,f u n c t i o n a lm o d e lh m i i i gm o d e l 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过 的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并 表示了谢意。 研究生签名:期:丝:垒:笙 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的 复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内 容和纸质论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可 以公布( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东南大学研 究生院办理。 研究生签名:盘堕:! 垒导师签名:研究生签名:盘竺:1 2 导师签名: 第一章绪论 1 1 论文的背景 第一章绪论 随着s o c 技术的迅速发展,嵌入式系统的应用越来越广泛。嵌入式处理器的性能是决定系统性 能的主要因素,近二十年来,集成电路设计水平和工艺技术水平的不断发展,微处理器的速度在一 直以每年5 5 的速度持续增长,而存储系统的存取速度增长相对则要缓慢的多l ,微处理器的速度 和主存的速度之间的差异日趋成为制约处理器性能的一个瓶颈。 舯0 l 船舢龉髓盯聪9 1 孵9 , 1 蜘盯辨帕 饨柚 旺= = 。一 图l 近2 0 年处理器与存储器的性能差距趋势 为了开发出现代微处理器潜在的性能,在处理器和主存之间加入一个容量小但速度快的高速缓 存c a c h e 。 图2c a c h e 的位置示意图 c a c h e 的出现基于程序访问的局部性原理。当c p u 访问存储器时,无论是取指令还是存取数据, 所访问的存储单元都趋于聚集在一个较小的连续区域中;其局部性包括两方面的含义: 时间局部性,如果一个信息项正在被访问,那么在近期它很有可能还会被再次访问; 空间局部性,在最近将要用到的信息很可能与正在使用的信息在空间地址上是l 临近的。 目翦的存储管理普遍采用虚拟存储技术,虚拟存储的关键在于把进程访问的地址空间与物理存 储器的实际地址空间分离开来,进程访问的地址称为虚拟地址( v i n u a na d d m s s e s ) ,而在物理存储器 中的可用地址称为物理地址( p h y s i c a l a d d r e s s e s ) 。虽然进程运行时访问的是虚拟地址,但它们实际上 是运行于物理存储器中。因此,在进程运行过程中,虚拟地址必须化为物理地址,这种地址转换由 碱 缄 啪 ” 东南大学硕士学位论文 存储管理单元( m m u ,m e m o r y m a n a g e u n i t ) 完成。m m u 主要包括变换旁路缓冲器( t l b ,t r a n s l a t i o n l o o k a s i d e b u f f e r ) 和步行表( t a b l e w a l k i n g ) 两部分,t l b 是页表c a c h e ,用来保存最近使用的页表项, t l b 的典型实现是6 4 个入口的全关联的c a c h e 。当t l b 缺失时,由步行表来实现虚拟地址的转换, 访问主存中的页表,获得虚拟地址到物理地址的映射关系;t l b 命中时,则由t l b 给出物理段页 号,来构成物理地址。 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 的关联方式也是影响c a c h e 性能的一个重要因素直接关联的c a c h e 访问速度最快,组关联的访问 速度稍慢,但组关联提高了c a c h e 命中率。全关联c a c h e ,即内容寻址存储器( c a m ,c o n t e n t a d d r e a s e d m e m o r y ) ,常用于标记位存储体( t a g s r a m ) ,支持并行查寻并定位任意位置的地址。c a m 命中率 最高,但是功耗比较大,不宜做大容量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 的性能,但是可能存在同一虚拟地址指向不同的物理地址或者同一 物理地址有不同的虚拟地址来访问,这个问题可以通过在地址标识( t a g ) 中增加一个进程标识等p i d ( p r o c e s si d e n t i t y ) 字段来解决。c a c h e 的功耗的优化也是当前技术研究的一个热点,文章【3 忡提 到。常见的组关联结构的c a c h e 并行的访问标记位( t a g ) 和数据( d a t a ) 阵列。然后从命中的组中 读出数据,放弃掉其它没有命中的组中的数据,这样做可以提高c a c h e 的访问速度。但是也增加了 动态功耗。如果采用串行访问的方式,对于同样结构和同样容量的c a c h e ,在命中时,功耗可以降 低2 6 ,在缺失时,功耗可以降低3 5 。为了补偿串行访问造成的访问速度的降低,采用高速的电 流灵敏放大器和分离的动态标记位比较器。采用这种方法设计的容量为“k ,采用4 路组关联结构 的c a c h e ,普通情况下的数据访问时间为2 7 m ,命中时数据访问时间为2 1 n s 。 针对不同类型的应用程序对指令和数据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 中闲置部分产生的功耗,$ p e c 9 5 仿真结果表明,采用滑动c a c h e 结构不但降低了一级c a c h e 的动 态和静态泄漏功耗,而且还降低了整个处理器的动态功耗,提高了性能,滑动c a c h e 比两种传统 c a c h e 结构和d r 结构的一级c a c h e 平均动态功耗分别降低2 1 3 ,1 9 5 2 和2 0 6 2 ,采用滑 动c a c h e 结构与采用两种传统c a c h e 结构和d r 结构相比,处理器平均动态功耗分别降低了8 “ 8 2 3 和l o 3 1 ,平均能量延迟乘积提高了1 2 2 5 ,7 0 2 和1 3 3 9 【4 】。 目前很多处理器芯片上的高速缓存c a c h e 是由固定大小的一级c a c h e l i 和二级c a c h e l 2 构成, 文章 5 】中介绍了一种在嵌入式处理器设计中实现的动态可重构c a c h e 。动态可重构c a c h e 的思想最 早是罗彻斯特大学( u n i v e r s i t y o f r o c h e s t e r ) 的学者在他们的一篇关于存储层次的论文【6 j 中提出的, 当时主要是针对高性能的超标量通用处理器。在此嵌入式处理器设计过程中,笔者创造性地继承了 这一思想。通过增加少量硬件以及编译器的配合,在嵌入式处理器中l 1c a c h e 和l 2c a c h e 总体大 小不变的情况下,l 1c a c h e 和l 2c a c h e 的大小可以根据具体的应用程序动态配置。通过对高速缓 存的动态配置,不仅可以有效地提高c a c h e 的命中率,还能够有效降低处理器的功耗。 c a c h e 结构设计是提高嵌入式处理器的性能的一个很重要的措施随着嵌入式处理器的发展。 还不断会有新的c a c h e 设计新技术被采用。 1 2 论文的工作及意义 本文以东南大学国家专用集成电路系统工程技术研究中心自主研发的一款基于a r m t t d m i 内 核的s o c 芯片g a r f i e l d 为研究对象。为了进一步提高微处理器内核的性能,实验室采用全定制 2 第一章绪论 的方式,自主研发设计了基于a r m 7 t d m i 内核的c a c h e 和m m u 电路。投入了巨大的精力设计的 c a c h e 等电路以口硬核提供给其他用户,必须建立完善的e d a 模型。本文的主要内容分为两方面。 一是研究时序建模方案,使用s p i c e 网表进行动态仿真,收集数据,为全定制设计的c a c h 胡删 电路建立时序模型,为综合和静态时序分析提供时序信息。另一方面,深入研究c a c h e 、m m u 和写 缓冲的结构,结合实验室全定制设计的电路,为c a c h e m m u 和写缓冲建立行为级描述的功能模型。 使用功能模型进行仿真,可以大大提供仿真速度,进行更全面的仿真验证;同时,功能模型的建立 还为进一步探索和改进c a c h e 的结构,以更好的发挥处理器的性能提供了可能性。 论文的工作分为六部分: 1 查阅资料,分析a r m 7 2 0 t 的体系结构和其中c a c h e 、m m u 的结构。 2 结合全定制设计的c a c h e m m u 电路确定c a c h e m m u 的设计规范。 3 进一步划分并建立c a c h e 和m m u 内部各个宏模块的行为级描述的功能模型及控制逻辑。 4 仿真调试模型。 5 研究时序建模方法,建立c a c h e m m u 的时序模型。 6 对芯片进行测试。 1 3 论文的结构 文章分为五个章节:第一章为绪论,简要介绍了c a c h e m m u 出现的背景以及目前已有的一些 设计方法,并说明论文的主要工作和意义;第二章介绍a r m 7 2 0 t 的结构和其中的c a c h e m m u 和 写缓冲的结构和功能实现,并介绍了c a c h e 的设计要素及其选择;第三章详细的介绍了各个宏模块 的端口定义、结构、功能实现及各模块之间的关系,并将模型的仿真波形与网表的仿真波形进行了 对照比较。第四章深入研究时序建模方法和延时计算方法,为采用s m i co 1 8 9 m 工艺设计的 c a c h e m m u 电路建立时序模型,并说明时序模型在综合和静态时序分析中的应用。第五章是对建 立的模型进行仿真,对g a r f i e l d 芯片进行测试。 东南大学硕士学位论文 2 1a r m 7 2 0 t 结构概述 第二章体系结构 g a r f i e l d 芯片以a r m 7 t d m i 为内核,其中c a c h e 和m m u 的设计借鉴了a r m 7 2 0 t 中的部分设 计思想,以下首先介绍一下a r m 7 2 0 t 。 a r m 7 2 0 t 将精简指令集( r i s c ) 内核a r m 7 删、s k b 的数据和指令统一c a c h e 、写缓 冲( w r i t eb u f f e r ) 和存储器管理单元( m m u ) 集成在一个芯片上的3 2 位微处理器【7 】,其结构框图 如图3 所示。片上数据和指令统一c a c h e 和写缓冲显著地提高了平均指令执行速度,降低了处理器 所需的存储器平均带宽,即使存在多核或直接存储器访问( d m a ) 通道也可以获得较高的计算性能。 用不同任务m 进行虚拟地址重定位改善了多任务切换时的性能,重定位的虚拟地址由嵌入式i c e 模块监控。带有嵌入式跟踪宏单元e t m ( e m b e d d e d t r a c e m a c r o c e n ) 接口。将所需信号从a r m 核 引到a r m 7 2 0 t 的外围。 a m b a 总线接口 图3a r m 7 2 0 t 的体系结构 2 2c a c h e 的设计要素及其选择 c a c h e 设计需要考虑的设计要素有映射方式、替换算法、写策略、行的大小和容量等嗍,下面 从这些方面作细致的分析与介绍: 4 第二章体系结构 2 2 1 映射方式 c a c h e 的容量小于主存储器,c a c h e 缓存的内容与主存之问存在多种映射方式:直接映射、全关 联映射和组关联映射,不同的映射方式对c a c h e 的性能、面积和功耗影响较大。 1 直接映射 直接映射将主存储器的块映射到c a c h e 的固定行。可以通过简单的地址转换实现,每个主存储 器地址定义为3 个域,如图4 所示: 图4 直接映射的地址分配图 其中最低的w 位用于标识主存储器里某个块中的字或字节( 在当代大多数s o c 系统中。地址是 字节级的) 。地址中剩余的s + r 位指定了主存储器的块地址,其中r 位标识其在c a c h e ( m = 2 r 行,m 为c a c h e 的行数) 的行地址。直接映射将主存储器中的块按如图5 所示的方式分配到 c a c h e 体中。 c a c h e 行被分配的主存储块 c 0 ,m ,2 9 ,- - - 2 s “- m 1 1 ,g + l ,2 1 1 + 1 2 8 “叫+ 1 * - 1g - 1 ,2 1 1 - 1 ,3 9 - 1 。2 m 一1 图5 直接映射的行对映关系图 直接映射采用部分地址作为行号提供了主存储器中的块到c a c h e 行的唯一映射。与更为复 杂的组织方式相比,直接映射具有如下特性: 直接映射的技术实现简单,相比于复杂映射方式,其面积开销较小。 标记位( t a g ) 和数据( d a t a ) 可以并行访问。在所有组织方式中访问速度最快。 可能引起c a c h e 冲突,降低其命中率。在直接映射方式下,给定的块映射到固定的c a c h e 行。如果一个程序重复引用映射到同一行中且来自不同块的字,这些块将不断的交换到 c a c h e 中,降低命中率。 2 全关联映射 全关联映射可以将主存储块装入到c a c h e 的任何一行。在此映射方式下,将存储器地址解释 为标记( t a g ) 域和字( w o r d ) 域,标记域唯一标记该主存储块;为确定某块是否在c a c h e 中, 必须检查c a c h e 中所有的标记。 假设c a c h e 含有c 行,主存容量为m 块。则主存和c a c h e 之间的映射关系共有c * m 种当 新块替换旧块时有c 种替换方式,相比于直接映射方式,全关联映射可有效解决c a c h e 冲突问 题;但是t a g 存储器必须保存除用于行内字节寻找的地址位以外的所以其他地址位,并需要复 杂的电路来并行检查所有c a c h e 的标记,芯片面积、功耗开销极大。 3 组关联映射: 组关联映射是直接映射和全关联映射的折衷。在组关联映射中,c a c h e 分为v 组,每组有 k 行,主存的某个块映射到c a c h e 某行时有k 种映射方式。存储器的地址解释为3 个域:标记、 5 东南大学硕士学位论文 组和字,如图6 所示: 标志s 位组地址啦 l 字地址位 图6 组关联映射的地址分配图 s + d 位标识了主存储器中的2 s + o 块的块地址,d 位标识c a c h e 中v = 2 d 组的组地址s 位作为标记位进行比较。使用k 路组关联映射,其t a g 存储体中需要保存的标记位较少,且只 与一组中的k 个标记相比较。 与前两种映射方式相比,在v = m ,k = 1 的情况下,组关联映射简化为直接映射;而对 于v = 1 ,k = m 的情况下,简化为全关联映射。 结论: 一般来说,全关联映射方式下c a c h e 的命中率最高,但顺序的访问c a m 和r a m ,增加了 数据访问时间,而且c a m 需要并行比较每个标记位,功耗很大。降低关联度将c a c h e 分组会增 加地址译码的复杂性,但减少了每次比较的标记位个数,可以降低功耗。采用组关联映射方式 的c a c h e 并行访问标记位和数据,减少了数据访问时间。实验数据显示,其它设计要索相同的 情况下,从直接映射变为2 路或4 路组关联映射后,c a c h e 性能可以得到较大的提高,继续增加 效果就不明显了。 图7 命中率与组数关系图 组数 全相联映射 高路组相联映射低路组相联映射。+ 直接映射 沿箭头方向t 功耗、龠中率运级降低。读取时序遥檄缩短 从图7 可以看出,4 路组关联设计是一种较好的折衷设计,a r m 7 系列均采用4 路组相联 结构( 命中率能达到9 6 ) ,如a r m 7 2 0 t ,本文中的设计采用4 路组相联映射。 2 2 2c a c h e 的容量 c a c h e 的容量越小,占有的芯片面积越小;容量越大,总的平均存取时间越接近于单个c a c h e 的存取时间。美国计算机专家a s m i t h 通过实验证明c a c h e 的容量每增加一倍,未命中率( m i s sr a t e ) 减少3 0 。最新的研究显示,面向s o c 的c a c h e 的容量为8 k - - 1 6 k 能最取得一个最好的折衷结果“l , 在4 路组相联的情况下,8 k b y t e 容量的c a c h e 能够将命中率达到9 6 ,而容量再加一倍的情况下, 命中率只提高了2 个百分点。在a r m 7 2 0 t ,a r m 7 4 0 t 的设计,均采用8 k b y t e 的容量。 6 输幛m鞭骶张肼硼盯毓穰佴 第二章体系结构 2 2 3 行的大小 图8 图命中率与容量的关系图 当c a c h e 缺失,需要加载新数据时,该数据字所在的一行数据部加载到c a c h e 中,行的大小增 加,更多有用的数据被装入c a c h e ,命中率增加( 这是因为局部性原理:引用字附近的数据以后被 引用的概率高) 。但是当行变的很大时,同一行中的其他数据字距离所需要的数据字更远,被使用的 可能性变小,命中率开始下降。 结论: 行的大小与命中率的关系是相当复杂的,它取决于特定程序的局部性特征,业界目前还没有找 到确定的最优值,通常认为大小为2 8 个可寻址单元( 字或字节) 接近最优值1 1 0 l 。本文中采用a r m 公司的基于a r m t i d m i 的系列产品提供的c a c h e 行大小值。每行1 6 字节 2 2 4 写策略 当c p u 更新c a c h e 的内容时,要将结果写回到主存中,通常有两种方法:写直达( w r i t e - l i t r o u g h ) 和写回法( 、w i t e b k p ”。 写直达是指c p u 在执行写操作时,把数据同时写入c a c h e 和主存。当某一块需要替换时,就 可以直接调入新的块来覆盖旧的块,但执行写操作时微处理器必须降到主存储器的速度。 带缓冲的写直达将要写的地址及数据保存到高速接受写信息的写缓冲中,然后写缓冲以主存速 度将数据传送到主存中,微处理器继续执行下一个任务。所有的写操作仍然直接对主存操作,c a c h e 也在适当的时机更新。 写回法是指c p u 在执行写操作时,写入的数据只写入c a c h e ,不写入主存,仅当需要替换时, 才把已经修改过的c a c h e 块写回到主存中。采用这种替换算法的c a c h e 其标记位中需要一个修改位, 当一行中的数据没有被修改时,该行的修改位位的值保持为0 ,若被修改,则将该行的修改位置1 。 在需要替换块时,如果对应的修改位为1 ,则将修改后的数据写回到主存之后,再调入新的块;如 果对应的修改位为0 ,则直接调入新的块。 结论: 写直达c a c h e 的实现最简单,主存随时更新,但执行每个写操作微处理器都要将降低到主存速 度;加上写缓冲将使微处理器继续高速工作直至写速度超过外部写带宽;写回式c a c h e 在最终写回 主存之前。一个位置可以多次写入,降低了对外部写带宽的需求,但是在实现上更为复杂,并且由 于缺乏一致性而难于管理。 在a r m 7 2 0 t 中采用带缓冲的写直达。 7 轴幛 。 东南大学硕士学位论文 2 2 5 替换算法 在c a c h e 比较的过程中,如果c a c h e 缺失( m i s s ) 。则需将一个新块从主存中调入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 的某块。在a r m 系列中常用的替换算法有诱 种:随机替换算法和轮转法唧。 结论: 随机替换算法通过一个伪随机数发生器产生一个伪随机数,将编号为该伪随机数的c a c h e 块替 换掉。该算法简单,易于实现,但没有考虑程序的局部性特点,没有利用历史上的块地址流的分布 情况,不易预测最坏情况下c a c h e 的性能。 轮转法维护一个逻辑的计数器,利用该计数器依次选择将要被替换出的块。这种算法容易预测 最坏情况下c a c h e 的性能,但在程序发生很小的变化时,可能造成c a c h e 性能的急剧变化。 a r m 7 2 0 t 中采用的是随机替换的策略。 2 3c a c h e 的结构及行为描述 c a c h e 的结构如图9 。 有蕴输出 图9c a c h e 的结构示意图 译码器首先通过地址译码,驱动数据阵列和标记位阵列中的一根字线。阵列有多少行,就有多 少根字线,但是同一时间仅有一根字线被选中,被选中的一行中每一个的存储单元都被连到一对位 线上( 这些位线在初始化时被预充电到高电平) ,该行中所有存储单元都会将与之相连的一对位线中 的一根拉低,存储单元中的数值决定哪一根位线被拉低。每个灵敏放大器监控一对位线,检测它们 何时发生变化,根据检测到哪一根位线变低,灵敏放大器可以判断出存储单元中存储的数值。从标 记位阵列读出的信息和虚拟地址中的标记位进行比较,比较的结果用来驱动一个有效( 命中,缺失) 输出,同时还要驱动输出多路选择器,输出多路选择器从数据阵列中选择适当的数据输出。 在a r m 7 2 0 t 中容量为8 k 的数据和指令统一的c a c h e 使用虚拟地址进行标记位比较,采用4 3 第二章体系结构 路组相联结构,每行1 6 个字节,采用带缓冲的写直达策略和随机替换算法c a c h e 通过a r m 7 2 0 t 的控制寄存器来使能,同时受到m m u 页表中的c a c h e 使能位的影响,在使用c a c h e 前在m m u 的 页表中也要使能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 4 写缓冲 a r m 7 2 0 t 的写缓冲用来改善执行写操作时的系统性能,可以高速缓存来自c p u 的8 个数据字 和4 个独立的地址。通过a r m 7 2 0 t 的控制寄存器中的位3 ( w 位) 来使能,通过m m u 页表中的 ( b 位) 来控制,m m u 必须在用写缓冲之前使能,两者可以同时使能。 写缓冲使能的情况下当c p u 向可缓冲区域执行写操作时,数据以f c l k 的速度或以b c l k 速度( 若用快总线扩充运行) 放入写缓冲,写缓冲执行外部写操作,c p u 继续执行后续指令。若写 缓冲已满( 缓冲区中已有8 个字的数据,或4 个地址) ,在缓冲区有足够的空间之前停止c p u 。 在a r m 中,f o 操作通常被映射成存储器操作,i o 的输出操作可以通过存储器写入操作实现; f o 的输入操作可以通过存储器读取操作实现。对于的空间,连续读取两次,返回的结果可能不同, f o 空间的写操作若通过写缓冲则有可能被延迟,所以应将类似于i o 空间的地址空间设置为非缓冲 的( u n c a c h a b l e 及t m b u f f e r a b l e ) 2 5 存储管理单元m m u 2 5 1m m u 简介 在a r m 系统中,存储管理单元m m u 主要完成以下的工作: 虚拟存储空间到物理存储空间的映射。在a r m 中采用了页式虚拟存储管理,它把虚拟地 址空间分成固定大小的块,每一块称为一页,把物理内存的地址空间也分成同样大小的页, 页的大小可以分为粗粒度和细粒度两种,m m u 就要实现从虚拟地址到物理地址的转换。 存储访问权限的控制。 设置虚拟存储空间的缓冲的特性。 转换表( t r a n s l a t et a b l e ) 是实现上述功能的重要手段。转换表位于内存中,表的一行对应于虚 拟存储空间的一页,该行包含了该虚拟内存页( 称为虚页) 对应的物理内存页( 称为实页) 地址、 该页的访问权限和该页的缓冲特性等,文中将页表中这样的一行称为一个地址变换条目。页表存放 在内存中,系统用一个寄存器来保存页表的基地址,在a r m 中系统控制协处理器c p l 5 的寄存器 r 2 来保存页表的基地址。 从虚拟地址到物理地址的变换过程就是查询页表的过程。由于页表存放在内存中,查询过程的 开销很大,但是程序在执行过程中具有局部性,对页表的访问只局限在少数几个单元中,因此可以 采用一个容量更小,访问速度和c p u 中通用寄存器相当的存储器件来存放最近访问需要的地址变换 条目,这个小容量的页表就是变换旁路缓冲器( t l b ) ,也称为快表。当c p u 需要访问内存时,先 在t l b 中查找所需的地址变换条目,如果该条目不在t l b 中,c p u 从位于内存中的页表中查询, 并把相应的结果添加剑t l b 中,这样当c p u 下次需要该地址变换条目时,可以从t l b 中直接得到, 使地址变换的速度大大加快。 完成以上功能的硬件包括; 9 东南大学硕士学位论文 彻 访问控制逻辑 变换表移动逻辑。 当m m u 被屏蔽时,虚拟地址将直接输出到物理地址总线。 2 5 2 存储器粒度 m m u 支持基于段( s e c t i o n ) 和页( p a g e ) 的存储器访问。 段:1 m b 的存储块 页:支持两种不同的页大小: 一一小页由4 k b 存储块组成,访问控制施加到单独的1 k b 子页上。 一一大页由6 4 k b 存储块组成,访问控制施加到单独的1 6 k b 子页上。 2 5 3 t l b t l b 高速缓存“个地址变换条目,在大多数存储器访问中,为访问控制逻辑提供地址变换信 息,即: 若t l b 包含虚拟地址的地址变换条目,则存储控制逻辑决定是否允许访问; 若允许访问。则m m u 输出与虚拟地址对应的物理地址; 若不允许访问,则m m u 向c p u 发出中止信号。 若t l b 缺失( 不包含所需要的地址变换条目) ,则用步行表硬件( t a b l ew a l k i n g ) 从物理存储器的 变换表中提取变换信息,并将变换信息放入t l b ,通过顺序地循环经过t l b 的位置来选择改写的 项。 2 5 4 地址变换过程 当t l b 中没有所需要的地址变换条目时,启动地址变换过程。r i b 寄存器的位 3 1 :1 4 与虚拟地 址的位 3 1 :2 0 组合产生第一级描述符的地址,从该地址读取的第一级描述符如图l o 所示,该项既是 段也是页的第一级描述符,其中【l :o 】位表示描述符的类型和有效性,如表1 所示。 表1 第一级描述符中【l :o 】位的说明 值含义说明 0 0 无效产生段变换故障 0 1 页表示这是一个页描述符 1 0 段表示这是一个段描述符 1 1保留保留用于将来使用 3 i加”1 2 “l e90543210 0 0 第= 级页表基地址 i 域 10i 段基址 s b za p 人域 1cbl0 吣 ll 图1 0 第一级描述符 1 0 无效 页 段 保留 第二章体系结构 若为段描述符,位 2 1 表明该地址是否可缓冲,位 3 】表明该地址是否可缓存,位【8 :5 1 指明该地址 所在的域,位【1 1 :1 0 1 为访问控制权限位,位【3 l :2 0 】为段基址。在访问控制允许的情况下,将段基址 和虚拟地址中的段索引位相结合得到物理地址,完整的段转换示意图如图l l 。 t r b 图1 1 段变换示意图 若为页变换,第一级取返回页表描述符,根据其中的第二级页表基地址,访问页表,返回第2 级描述符( 即页表项) ,如图1 2 访问权限包含在第二级描述符的位 1 1 :4 1 中,必须在产生地址之前 进行访问权限的检查;第二级描述符的位【1 :o 】定义了小页或大页访问,若为小页访问,位 3 1 :1 2 为 小页的基地址;若为大页访问,位【3 l :1 6 】为大页的基地址,位【1 5 :1 2 】为零。图1 3 描述了小页地址变 换的过程,图1 4 描述了大页地址变换的过程嘲。 3 l1 6 l !1 2 l l l 09l7 54 32l0 0 0 大页基地址s b za a p 2a p la 珈cb0l 小页基地址 a p 3 i a p 2a p la p 日cb1 日 ll 图1 2 第二级描述符 无效 大页 小页 保留 东南大学硕士学位论文 m t t 日 图1 3 小页变换示意图 柏铷”“1 5o 图1 4 大页转换示意图 厂l 厂l 厂l 厂l 第三章宏单元及控制电路的功能模型 第三章宏单元及控制电路的功能模型 3 1 宏单元的功能模型 本章详细介绍c a c h e 、t l b 、步行表、写缓冲及w r a p p e r 中各个宏模块的建模。c a c h e 中的t a g 模块是标记位存储及比较模块,如果比较命中,则输出相应m a t c h 信号,并由相应的d a t a 模块输出 数据;如果c a c h e 缺失,则访问外存,读取数据并加载到c a c h e 中。访问外存之前m m u 将虚拟地 址转换为物理地址。m m u 包括t l b 和步行表,支持段式、大,小页式的地址转换;t l b 中的c a m 存放虚拟地址的段页号,数据块一中存放段,页描述符中的访问控制权限位,数据块二中存放物理 地址的段,页号当t l b 中不包含所需要的地址变换条目时,通过步行表( t a b l ew a l k i n g ) 来转换, 步行表的功能实现需要地址缓冲器的配合。写缓冲分数据和地址缓冲区,

温馨提示

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

最新文档

评论

0/150

提交评论