收藏 分享(赏)

体系结构ch7.ppt

上传人:w89153 文档编号:6973422 上传时间:2019-04-29 格式:PPT 页数:169 大小:2.97MB
下载 相关 举报
体系结构ch7.ppt_第1页
第1页 / 共169页
体系结构ch7.ppt_第2页
第2页 / 共169页
体系结构ch7.ppt_第3页
第3页 / 共169页
体系结构ch7.ppt_第4页
第4页 / 共169页
体系结构ch7.ppt_第5页
第5页 / 共169页
点击查看更多>>
资源描述

1、7.2 Cache基本知识,7.3 降低Cache不命中率,7.4 减少Cache不命中开销,7.1 存储系统的基本知识,7.5 减少命中时间,7.6 并行主存系统,7.7 虚拟存储器,7.8 进程保护和虚存实例,7.9 AMD Opteron的存储层次结构,7.1.1 从单级存储器到多级存储器,1. 从用户的角度来看,存储器的三个主要指标是:容量,速度,价格(每位价格) 2. 人们对这三个指标的期望 3. 这三个指标相互矛盾 4. 解决方法采用多种存储器技术,构成存储层次。 演示 演示 (局部性原理),7.1 存储系统的基本知识,7.1.2 存储层次的性能参数,C,H,TA 假设:S 容量T

2、A 访问时间C 每位价格 下面仅考虑由M1和M2构成的两级存储层次: M1的参数:S1,TA1,C1M2的参数:S2,TA2,C2,1. 每位价格C C ,C1S1C2S2,S1S2,若存储器结构如下:,提问:,请问:设访问M1时间TA1,访问M2时间TA2,传送一个数据块的时间TB,则当不命中M1时的访问时间是多少?为什么?,若存储器结构如下:,提问:,请问:设访问M1时间TA1,访问M2时间TA2,传送一个数据块的时间TB,则当不命中M1时的访问时间是多少?为什么?TA1 + TA2 + TB,3. 平均访问时间 TATATA1(1H )TM或 TATA1F TMTA1 命中时间TM 失效

3、开销,2. 命中率 H 和失效率 FHN1/(N1N2) N1 访问M1的次数N2 访问M2的次数失效率F1H,例题:CPU执行一段程序时,Cache完成存取的次数为5000次,主存完成存取的次数为200次。已知Cache存取周期Tc为40ns,主存存取周期Tm为160ns。分别求(当Cache不命中时才启动主存): (1)Cache的命中率H; (2)平均访问时间Ta; (3)Cache贮存系统的访问效率E。,解答: (1)H=Nc/(Nc+Nm)=5000/52000.96; (2)Ta=Tc+(1-H)Tm=40+0.04*160=46.4ns; (3)E=Tc/Ta=40ns/46.4

4、ns=86.2% 注意:如果Cache访问和主存访问是同时启动,则公式改为:Ta=HTc+(1-H)Tm,7.1.3 “Cache主存”和“主存辅存”层次,1. 从主存的角度来看“Cache主存”层次:弥补主存速度的不足“主存辅存”层次: 弥补主存容量的不足,2. “Cache主存”层次 主存与CPU的速度差距 “Cache - 主存”层次,3. “主存辅存”层次 两者的比较,7.1.4 存储层次的四个问题,1. 当把一个块调入高一层(靠近CPU)存储器时,可以放在哪些位置上?(映象规则),2. 当所要访问的块在高一层存储器中时,如何 找到该块? (查找算法),3. 当发生失效时,应替换哪一块

5、? (替换算法),4. 当进行写访问时,应进行哪些操作? (写策略),7.2.1 映象规则,1. 全相联映象 全相联:主存中的任一块可以被放置到 Cache中的任意一个位置。举例 对比: 阅览室位置 随便坐特点: 空间利用率最高,冲突概率最低, 实现最复杂。,7.2 Cache基本知识,1存储空间分割与地址计算 2Cache和主存分块,2. 直接映象:, 直接映象:主存中的每一块只能被放置到 Cache中唯一的一个位置。 举例(循环分配) 对比:阅览室位置 只有一个位置可 以坐 特点:空间利用率最低,冲突概率最高,实现最简单。 对于主存的第i 块,若它映象到Cache的第 j 块,则:ji m

6、od (M ) (M为Cache的块数), 组相联:主存中的每一块可以被放置到Cache 中唯一的一个组中的任何一个位置。 举例 组相联是直接映象和全相联的一种折衷, 设M2m,则当表示为二进制数时,j 实际 上就是i 的低m 位:,3. 组相联映象:,m位,j,i:, 上述的j 和k 通常称为索引, 组的选择常采用位选择算法若主存第i 块映象到第k 组,则:ki mod(G) (G为Cache的组数)设G2g,则当表示为二进制数时,k 实际 上就是i 的低 g 位:,g 位,k,i:, 绝大多数计算机的Cache: n 4 想一想:相联度一定是越大越好?, n 路组相联:每组中有n 个块(n

7、M/G )n 称为相联度。 相联度越高,Cache空间的利用率就越高, 块冲突概率就越低,失效率也就越低。,全相联,直接映象,组相联,n (路数),G (组数),M,M,1,1,1nM,1GM,7.2.2 查找方法,1. 如何确定Cache中是否有所要访问的块? 若有的话如何确定其位置?, 目录表的结构 只需查找候选位置所对应的目录表项 并行查找与顺序查找 提高性能的重要思想:主候选位置(MRU块), 并行查找的实现方法: 单体多字存储器比较器举例: 路组相联并行标识比较(比较器的个数及位数) 直接映象Cache的查找过程 路相联Cache的查找过程,7.2.3 替换算法,所要解决的问题:当新

8、调入一块,而Cache 又已被占满时,替换哪一块?,2. FIFO 3. LRU优点:失效率低 LRU和随机法的失效率的比较,1. 随机法优点:实现简单,7.2.4 写策略,1. “写”操作所占的比例Load指令:26Store指令:9“写”在所有访存操作中所占的比例:9/(100269)7 “写”在访问Cache操作中所占的比例:9/(269)25,3“写”访问有可能导致Cache和主存内容的不一致,2. “写”策略必须在确认命中后才进行,4两种写策略(发生写命中时) 写直达法执行“写”操作时,不仅写入Cache,而且 也写入下一级存储器。 写回法执行“写”操作时,只写入Cache。仅当 C

9、ache中相应的块被替换时,才写回主存。(设置“污染位”),7.两种写策略的比较写直达法的优点:易于实现,一致性好。写 回 法的优点:速度快,所使用的存储器频带较低;,6. 写缓冲器:减少CPU的写等待,7. “写”操作时的调块(发生写失效时) 按写分配(写时取)写失效时,先把所写单元所在的块调入 Cache,再行写入。 不按写分配(绕写法)写失效时,直接写入下一级存储器而不调块。,存储器的指标:容量、速度和价格 存储器的层次概念 存储器的性能参数: 每位价格 命中率(失效率) 平均访问时间,内容回顾,内容回顾 存储层次的四个问题,1. 当把一个块调入高一层(靠近CPU)存储器时,可以放在哪些

10、位置上?(映象规则),2. 当所要访问的块在高一层存储器中时,如何 找到该块? (查找算法),3. 当发生失效时,应替换哪一块? (替换算法),4. 当进行写访问时,应进行哪些操作? (写策略),内容回顾,2. 平均访问时间 TATA1(1H )TM平均访问时间命中时间失效率失效开销,失效率 F1H,3. CPU时间IC ( CPIexe ) 时钟周期时间,存储器停顿周期数,指令数,7.2.5 Cache举例,例子:DEC的Alpha AXP21064(地址位数34位)中的内部数据Cache。,1. 简介容量:8KB块大小:32B (内存块大小?)块数: (?)采用不按写分配映象方法:直接映象

11、“写”策略:写直达写缓冲器大小:4个块,2. 结构图,3. 工作过程 “读”访问命中 “写”访问命中 失效情况下的操作 读失效(直接映像的数据块替换) 写失效(不按写分配),例子:DEC的Alpha AXP21064(地址位数34位)中的内部数据Cache。,容量:8KB块大小:32B块数: (?)采用不按写分配映象方法:4路组相连的映像方法“写”策略:写直达写缓冲器大小:4个块,思考:若采用四路组相联,则块内地址几位,index地址几位,tag地址又是几位呢?,例 与直接映象相比,全相联映象的优点是( )。 目录表小 块冲突概率低 命中率低 主存利用率高,例 对于提高Cache的命中率,无效

12、的措施是( )。 降低相联度 设置替换缓存保存刚被替换的块 增加Cache容量 通过编译优化改善程序的访存局部性,例 以下说法正确的是( )。 多体交叉存储器主要解决扩充容量问题 Cache的功能全由硬件完成 Cache与主存统一编址 “主存外存”的存储层次主要是为了弥补主存速度的不足,例 Cache存储器主要是为了解决( )。 扩大存储系统的容量 提高存储系统的速度 便于程序的访存操作 扩大存储系统容量和提高存储系统速度,例 按Cache地址映象的块冲突概率从高到低的顺序是( )。 全相联、直接、组向联 组向联、直接、全相联 直接、组向联、全相联 全相联、组向联、直接,例 程序访问的局限性是

13、使用( )的依据。 缓冲 虚拟内存 进程 Cache,例 在Cache更新策略中,在Cache命中时把数据同时写入Cache和主存的策略是( )。 写直达法 写回法 按写分配法 不按写分配法,例 在Cache更新策略中,在Cache不命中时把数据从主存调入Cache的策略是( )。 写直达法 写回法 按写分配法 不按写分配法,例 以下说法正确的是( )。 主存的速度可以与CPU匹配 主存由RAM构成,不包括ROM 辅存中的程序需要调入主存才能运行 若CPU的地址线为20根,则主存的容量一定是1MB,例 当访问Cache系统失效时,通常不仅主存向CPU传送信息,同时还要将信息写入Cache,在此

14、过程中传送与写入信息的数据宽度各为( )。 块、页 字、字 字、块 块、块,例 主存储器速度的表示中,Ta(存取时间)与Tc(存取周期)关系正确的是( )。 TaTc TaTc Ta=Tc 没有关系,Ta存取时间:从存储器读出或写入一次信息所需要的平均时间; Tc存取周期:连续两次访问存储器之间所必须的最短时间间隔; 一般:Tc=Ta+Tr(Tr表示复原时间):对于SRAM指存取信息的稳定时间,对于DRAM指刷新的又一次存取时间。(SRAM与DRAM知识讲解),例 如果一个高速缓存系统中,主存的容量为12MB,Cache的容量为400KB,则改存储系统的总容量为 12MB+400KB 12MB

15、 400KB 12MB-400KB,例 若存取周期250ns,每次读出16位,则该存储器的数据传送率为() 4*106Bps 4MBps 8*106Bps 8MBps,例 在下列Cache替换算法中,比较好的一种是( )。 随机法 先进现出法 后进先出法 近期最少使用法,例 在Cache存储器系统中,当程序正在执行时,由( )完成地址转化。 程序员 硬件 硬件和软件 操作系统,例 关于Cache的3种基本映像方式,下列叙述正确的是( ) Cache的地址映像有全相联,页相联和多路组相联 全相联映像方式,主存单元与Cache单元随意对应,线路过于复杂,成本太高多路组相联映像,是全相联和页相联映像

16、的一种折衷,有利于提高命中率多路组相联映像,是全相联和页相联映像的一种折衷,有利于提高失效率,例 关于静态存储器,动态存储器,下面叙述正确的( ) 通常静态存储器依靠电容上暂存电荷来存储信息,电容有电荷为1,无电荷为0; 动态存储器依靠双稳态电路的俩个稳定状态来存储0和1; 静态存储器速度较慢,但集成度稍高,动态存储器速度较快,但集成度低 静态存储器速度较快,但集成度稍低,动态存储器速度较慢,但集成度高。,例7.2(重点讲)我们用一个和Alpha AXP类似的机器作为 第一个例子。假设Cache失效开销为50个时钟 周期,当不考虑存储器停顿时,所有指令的 执行时间都是2.0个时钟周期, Cac

17、he的失效 率为2%,平均每条指令访存1.33次。试分析 Cache对性能的影响。,考虑Cache的失效后,性能为: CPU 时间有cacheIC(2.0(1.332%50) 时钟周期时间 IC3.33时钟周期时间,CPU 时间IC(CPIexe ) 时钟周期时间,存储器停顿周期数,指令数,解:,实际CPI :3.33 3.33/2.0 = 1.67(倍),CPU时间也增加为原来的1.67倍。但若不采用Cache,则:CPI2.0+501.3368.5结论:若采用Cache,100%命中,CPI=2+0%*1.33*50=2若采用Cache,98%命中,CPI=2+2%*1.33*50=3.3

18、3若不采用Cache,0%命中,CPI=2+100%*1.33*50=68.5Cache对性能的提高有很大影响!,内容回顾 存储层次的四个问题,1. 当把一个块调入高一层(靠近CPU)存储器时,可以放在哪些位置上?(映象规则),2. 当所要访问的块在高一层存储器中时,如何 找到该块? (查找算法),3. 当发生失效时,应替换哪一块? (替换算法),4. 当进行写访问时,应进行哪些操作? (写策略),内容回顾,2. 平均访问时间 TATA1(1H )TM平均访问时间命中时间失效率失效开销,失效率 F1H,3. CPU时间IC ( CPIexe ) 时钟周期时间,存储器停顿周期数,指令数,若采用C

19、ache,100%命中,CPI=2+0%*1.33*50=2若采用Cache,98%命中,CPI=2+2%*1.33*50=3.33若不采用Cache,0%命中,CPI=2+100%*1.33*50=68.5Cache对性能的提高有很大影响!,内容回顾:,(1) 强制性失效(Compulsory miss) 当第一次访问一个块时,该块不在 Cache中,需从下一级存储器中调入Cache, 这就是强制性失效。 (冷启动失效,首次访问失效。) (2) 容量失效(Capacity miss ) 如果程序执行时所需的块不能全部调 入Cache中,则当某些块被替换后,若又,7.3 降低Cache失效率的

20、方法,1. 三种失效(3C),重新被访问,就会发生失效。这种失效称 为容量失效。,(3) 冲突失效(Conflict miss) 在组相联或直接映象Cache中,若太多 的块映象到同一组(块)中,则会出现该组 中某个块被别的块替换(即使别的组或块有 空闲位置),然后又被重新访问的情况。这 就是发生了冲突失效。 (碰撞失效,干扰失效),2. 三种失效所占的比例,(SPEC92) 表7.5P173 图示I(绝对值) 图示(相对值) 可以看出: (1) 相联度越高,冲突失效就越少; (2) 强制性失效和容量失效不受相联度的影响; (3) 强制性失效不受Cache容量的影响,但容 量失效却随着容量的增

21、加而减少;,相联度冲突失效;Cache容量容量失效。,强制性失效:预取(本身很少) 容量失效:增加容量 (抖动现象) 冲突失效:提高相联度 (理想情况:全相联),3. 减少三种失效的方法,4. 许多降低失效率的方法会增加命中时间或失效开销,1. 基本思想在Cache和它从下一级存储器调数据 的通路之间设置一个全相联的小Cache, 用于存放被替换出去的块(称为Victim), 以备重用。工作过程,7.3.3 Victim Cache,对于减小冲突失效很有效,特别是对 于小容量的直接映象数据Cache,作用尤其 明显。 例如,项数为4的Victim Cache:使4KB Cache的冲突失效减少

22、20%90%,2. 作用,1. 直接映象 vs组相联,7.3.4 伪相联Cache(列相联),2. 伪相联Cache,优 点,缺 点,直接映象,组相联,命中时间小,命中时间大,失效率高,失效率低,取直接映象及组相联两者的优点:命中时间小,失效率低,(1) 基本思想及工作原理 (图示)在逻辑上把直接映象Cache的空间上下 平分为两个区。对于任何一次访问,伪相联 Cache先按直接映象Cache的方式去处理。若命中,则其访问过程与直接映象Cache的 情况一样。若不命中,则再到另一区相应的位置去查 找。若找到,则发生了伪命中,否则就只好访问下一级存储器。,(2) 快速命中与慢速命中要保证绝大多数

23、命中都是快速命中。,考研试题: 写出伪相联Cache的平均访存时间公式(假设伪命中需要2个额外的周期),首先考虑标准的平均访存时间公式:平均访存时间伪相联 命中时间伪相联失效率伪相联失效开销伪相联 由于: 失效率伪相联失效率2路命中时间伪相联命中时间1路伪命中率伪相联2;伪命中率伪相联命中率2路命中率1路(1失效率2路)(1失效率1路)失效率1路失效率2路,解:,结论: 平均访存时间伪相联 命中时间1路(失效率1路失效率2路)2 失效率2路失效开销,内容回顾:,1. 三种失效(3C),(1) 强制性失效(Compulsory miss),(2) 容量失效(Capacity miss ),(3)

24、 冲突失效(Conflict miss),相联度冲突失效;Cache容量容量失效。,Victim Cache:对于减小冲突失效很有效,特别是对于小容量的直接映象数据Cache,作用尤其明显。,伪相联Cache: 取直接映象及组相联两者的优点:命中时间小,失效率低,内容回顾:,Victim Cache:,伪相联Cache:,7.3.6 由编译器控制的预取,1. 预取的类型 寄存器预取:把数据取到寄存器中 Cache预取: 只将数据取到Cache中,由编译器加入预取指令,在数据被用到之前 发出预取请求。,4. 例题,2. 在预取数据的同时,处理器应能继续执行指令只有这样,预取才有意义。非阻塞Cac

25、he (非锁定Cache),3. 循环是预取优化的主要对象 失效开销小时:循环体展开12次失效开销大时:循环体展开许多次以便为后面较远的循环预取数据。,例 7.8对于下面的程序,判断哪些访问可能会导致 数据Cache失效。然后,加入预取指令以减少失 效。最后,计算所执行的预取指令的条数以及通 过预取避免的失效次数。假定:(1) 我们用的是一个容量为8KB、块大小为 16B的直接映象Cache,它采用写回法并 且按写分配。(2) a、b分别为3100(3行100列)和1013 的双精度浮点数组,每个元素都是8个 字节。当程序开始执行时,这些数据都 不在Cache内。,for (i0 ; i 3

26、; ii1 )for (j0 ; j 100 ; jj1 )aijbj0bj10;,解: (1) 计算过程 (2) 失效情况 数组a 数组b总的失效次数251次 (3) 改进后的程序,for (j0,j100;jj1) prefetch (bj70); /* 预取7次循环后所需的b(j ,0 ) */prefetch (a0j7); /* 预取7次循环后所需的a(0,j ) */a0jbj 0 * b j10for (i1; i 3; ii1) for (j0; j 100; jj1)prefetch(aij7);/* 预取7次循环后所需的a(i , j ) */aijbj0 * bj10;,

27、例 7.9 在以下条件下,计算例7.8中所节约的时间:(1) 忽略指令Cache失效,并假设数据Cache 无冲突失效和容量失效。(2) 假设预取可以被重叠或与Cache失效重 叠执行,从而能以最大的存储带宽传送 数据。(3) 不考虑Cache失效时,修改前的循环每7 个时钟周期循环一次。修改后的程序中,,失效情况总的失效次数19次,解:修改前:循环时间3007 2100失效开销251501255021001255014650,第一个预取循环每9个时钟周期循环一次, 而第二个预取循环每8个时钟周期循环一 次(包括外层for循环的开销)。 (4) 一次失效需50个时钟周期。,修改后:循环时间10

28、0920082500失效时间195095025009503450加速比14650/34504.2,7.4.5 两级Cache,1. 应把Cache做得更快?还是更大?答案:二者兼顾,再增加一级Cache 第一级Cache(L1)小而快 第二级Cache(L2)容量大,2. 性能分析平均访问时间 命中时间L1失效率L1失效开销L1命中时间L1失效率L1 (命中时间L2失效率L2失效开销L2),3. 局部失效率与全局失效率局部失效率该级Cache的失效次数/到达 该级Cache的访问次数例如:上述式子中的失效率L2全局失效率该级Cache的失效次数/CPU 发出的访存的总次数全局失效率L2失效率L

29、1失效率L2,4. 当第二级Cache比第一级Cache大得多时,两 级Cache的“全局失效率”与容量和第二级Cache,相同的单级Cache的“失效率”非常接近。,例7.12:假设在1000次访存中,第一级Cache失效40次,第二级Cache失效20次。试问:在此情况下,该Cache系统的局部失效率和全局失效率各是多少? 答:每一次访存必须要访问Cache1; Cache1: 局部失效率:40/1000=4%;全局失效率:40/1000=4%Cache1失效必须到Cache2去。 Cache2: 局部失效率:20/40=50%全局失效率:20/1000=2%,评价第二级Cache时,应使

30、用全局失效率这个指标。 图示,7. 第二级Cache的参数第二级Cache不会影响CPU的时钟频率, 因此其设计有更大的考虑空间。两个问题: 能否降低CPI中的平均访存时间部分? 成本是多少? (1) 容量第二级Cache的容量一般比第一级的 大许多,如512KB,(2) 相联度第二级Cache可采用较高的相联度或伪 相联方法,7.9 写出三级Cache的平均访问时间的公式。解:平均访存时间 命中时间失效率失效开销只有第I层失效时才会访问第I1。设三级Cache的命中率分别为HL1、 Hl2、 HL3,失效率分别为Ml1、Ml2、ML3,第三级Cache的失效开销为PL3。平均访问时间TA H

31、L1Ml1Hl2Ml2(HL3ML3PL3),在以下的讨论中,我们假设基本存储器结构的性能为: 送地址需4个时钟周期; 每个字的访问时间为24个时钟周期; 一个字32位; 传送一个字的数据需4个时钟周期。,7.6 主 存,如果Cache块大小为4个字,则:(单体单字型存储器)失效开销4(4244) 432128(时钟周期)带宽16/1280.125(字节/时钟周期),1. 增加存储器的宽度 (单体多字型存储器) 性能举例 (参照前面的假设)当宽度为4个字时:失效开销4 + 24 + 4 (时钟周期)带宽0.5(字节/周期), 缺点: 增加CPU和存储器之间的连接通路的宽度 CPU和Cache之

32、间有一个多路选择器 写入有可能变得复杂 举例:DEC的Alpha Axp21064:256位宽 2. 采用简单的多体交叉存储器 (多体交叉型存储器)在存储系统中采用多个DRAM,并利用它们 潜在的并行性。 高位交叉与低位交叉编址 见文档,假设四个存储体的地址是在字一级交叉的,即 存储体0中每个字的地址对4取模都是0,体1中每个 字的地址对4取模都是1,依此类推。,048 12,地址 体0,159 13,地址 体1,26 10 14,地址 体2,37 11 15,地址 体3, 存储器的各个体一般是按字交叉的,同时启动与分时启动性能举例:(参照前面的假设)失效开销4244444(周期)带宽0.4(

33、字节/周期), 单体单字型存储器失效开销 n * (4 + 24 + 4), 单体多字型存储器 (K字宽总线)失效开销 n / k * (4 + 24 + 4), 多体交叉型存储器失效开销 (4 + 24 + 4 * n),总结: 传送数据块的大小为n个字,其他参数如上,例题:设存储器容量为32字,字长64位(W),模块数m=4,分别采用顺序方式和交叉方式进行组织。若存储周期T=200ns,数据总线宽度为64位,总线传送周期=50ns,求顺序存储器和交叉存储器带宽各是多少?,答:理解顺利方式的多模块存储器,其信息是顺序访问的,它是用低位地址顺序选择各存储单元,用高位地址选择不同的存储体。如下图

34、:,答: 因为顺序存储器和交叉存储器连续读出m=4个字的信息总量都是W=64b*4=256b; 又因为它们连续读出4个字所需的时间分别为: T1=mT=4*200ns=800ns=8*10-7s T2=T+(m-1)=200ns+3*50ns=350ns=3.5*10-7s 所以顺序存储器带宽 Bm1=W/T1=256/(8*10-7)(b/s)=32*107(b/s) 交叉存储器带宽 Bm2=W/T2=256/(3.15*10-7)(b/s)=81*107(b/s)显然,后者的吞吐量要大得多。,内容回顾: Cache,1. 三种失效(3C),(1) 强制性失效(Compulsory miss

35、),(2) 容量失效(Capacity miss ),(3) 冲突失效(Conflict miss),相联度冲突失效;Cache容量容量失效。,1、Victim Cache(降低Cache失效率):对于减小冲突失效很有效,特别是对于小容量的直接映象数据Cache,作用尤其明显。,2、伪相联Cache(降低Cache失效率): 取直接映象及组相联两者的优点:命中时间小,失效率低,内容回顾:Cache,Victim Cache:,伪相联Cache:,3、由编译器控制的预取(降低Cache失效率),由编译器加入预取指令,在数据被用到之前 发出预取请求。,内容回顾: Cache,4、两级Cache(减

36、少Cache失效开销),1. 应把Cache做得更快?还是更大?答案:二者兼顾,再增加一级Cache 第一级Cache(L1)小而快 第二级Cache(L2)容量大, 单体单字型存储器失效开销 n * (4 + 24 + 4), 单体多字型存储器 (K字宽总线)失效开销 n / k * (4 + 24 + 4), 多体交叉型存储器失效开销 (4 + 24 + 4 * n),主存数据的传送: 传送数据块的大小为n个字,其他参数如上,内容回顾: 主存,增加的,虽然对每个体而言,存取周期均未缩短,但由于CPU交叉访问各体,最终在一个存取周期的时间内,实际上向CPU提供了4个存储字。, 存储体的数目体

37、的数目访问体中一个字所需的时钟周期以使:对于顺序访问,每个时钟周期都能从一个存储体中送出一个数据。为什么?, 每个体有独立的地址线 (图示) 体和超体,3. 独立存储体设置多个存储控制器,使多个体能独立操 作,以便能同时进行多个独立的访存。,4. 避免存储体冲突 体冲突: 两个请求要访问同一个体 减少冲突:采用许多体例如:NEC SX/3最多128个体int x256128for (j=0 ;j128 ;j=j+1)for (i=0 ; i256 ; i=j+1)x i j=2 * x i j, 解决体冲突的方法: 软件方法(编译器)循环交换优化扩展数组的大小,使之不是2的幂。, 硬件方法使体

38、数为素数。当存储体数为素数,且为2的幂减1时,体地址地址 mod (存储体中的字数)可以直接载取。 举例(表 5-10),质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。,7.7 虚拟存储器,1. 虚拟存储器 主存和辅存的地址空间统一编址,形成的一个庞大的存储空间。 多个进程可以共享主存空间 程序员不必做存储管理工作 采用动态再定位,简化了程序的装入,7.7.1 虚拟存储器基本原理,页式虚存的虚实地址的变换,段式虚存的虚实地址的变换, 查找算法 页表,段表,TLB 替换算法LRU 写策略 写回法,2. 有关虚拟存储器的四个问题 映象规则全相联,7.7.2

39、 块表 TLB(地址变换旁查缓冲器),每次访存获取数据都要访存两次:访问页表访问数据; 1. TLB TLB是一个专用的高速缓冲器,用于存放 近期经常使用的页表项; TLB中的内容是页表部分内容的一个副本; TLB也利用了局部性原理; 2. Alpha Axp 21064 数据TLB的地址转换过程 3. TLB一般比Cache的标识存储器更小、更快,7.8.2 页式虚存举例:Alpha Axp,Alpha Axp体系结构采用段页相结合的方式。 1. Alpha的地址空间分为3段:kseg(地址最高两位:10) (内核)sego(最高位: 00) (用户)seg1(最高两位: 11) (用户)s

40、ego和seg1的布局 2. Alpha采用三级页表地址变换过程,4. Alpha Axp21064 TLB的参数,参 数,描 述,块 大 小,命 中 时 间,平均失效开销,TBL 容 量,块替换策略,写 策 略,块映象策略,1 PTE (8字节),1 个时钟周期,20 个时钟周期,随 机,不适用,全相联,指令TLB:8 个 PTE 用于大小为 8K 字节的页,4个PTE 用于大小为 4MB 的页(共 96 个字节),数据TLB:32 个 PTE 用于大小为 8KB、64KB、512KB 何 4MB 的页(共 256 个字节),表5-11 Alpha AXP 21064 TLB 的存储层次参数

41、,7.9 Alpha Axp21064存储层次,1. 简介 2. 工作过程,例题:下表中表示使用页表的虚实地址转换条件,页表存放在相联存储器中,其容量为8个存储单元。问: (1)当CPU按虚拟地址1去访问主存时,主存的实地址码是多少 (2)当CPU按虚拟地址2去访问主存时,主存的实地址码是多少(3)当CPU按虚拟地址3去访问主存时,主存的实地址码是多少,页表,虚拟地址 页号 页内地址 1 15 0324 2 7 0128 3 48 0516,解: (1)用虚拟地址为1的页号15作为页表检索项,查得页号为15的页在主存中的起始地址为80000。主存实地址为80324; (2)用虚拟地址为2的页号

42、7作为页表检索项,查得页号为7的页在主存中的起始地址为96000。主存实地址为96128; (3)虚拟地址3的页号为48,当用48做检索项在页表中检索时,没有检索到页号为48的页面,此时操作系统暂停用户作业程序的执行,转去执行查页表程序。如果该页面在主存中,则将该页号及该页在主存中的起始地址写入主存;如该页面不在主存,则操作系统要将该页面从外存调入主存,然后将页号及其在主存中的起始地址写入页表。,作业!P219,存储层次,CPU对第二级的 访问方式,比较项目,目 的,存储管理实现,访问速度的比值 (第一级和第二级),典型的块(页)大小,失效时CPU是否切换,“Cache 主存”层次,“主存辅存

43、”层次,为了弥补主存速度的不足,为了弥补主存容量的不足,主要由专用硬件实现,主要由软件实现,几比一,几万比一,几十个字节,几百到几千个字节,可直接访问,均通过第一级,不切换,切换到其他进程,“Cache主存”与“主存辅存”层次的区别,16 KB,容 量,1 KB,2 KB,4 KB,8 KB,32 KB,指令 Cache,3.06%,失 效 率 的 比 较,64 KB,128 KB,数据 Cache,混合 Cache,2.26%,1.78%,1.10%,0.64%,0.39%,0.15%,0.02%,24.61%,20.57%,17.94%,10.19%,6.47%,4.82%,3.77%,2

44、.88%,13.34%,9.78%,7.24%,4.57%,2.87%,1.99%,1.36%,0.95%,年 份,芯片容量,行选通 (RAS),最慢的 DRAM,最快的 DRAM,行 选 通 (CAS),周期时间,1980,1983,1986,1989,1992,1995,64K 位,256K 位,1M 位,4M 位,16M 位,64M 位,180ns,150ns,120ns,100ns,80ns,65ns,150ns,120ns,100ns,80ns,60ns,50ns,75ns,50ns,25ns,20ns,15ns,10ns,250ns,220ns,190ns,165ns,120ns,

45、90ns,表 5-10 各代 DRAM 的典型时间参数,体 内 地 址,存 储 体,顺 序 交 叉,取 模 交 叉,0,1,2,3,4,5,表 5-10 顺序交叉和取模交叉的地址映象举例,6,7,0 1 2,0 1 2,0 1 2,0 16 8,3 4 5,6 7 8,9 10 11,12 13 14,21 22 23,15 16 17,18 19 20,9 1 17,18 10 2,3 19 11,12 4 20,21 13 5,6 22 14,15 7 23,体号=地址 MOD 体数,体内地址=地址 / 体数,体内地址=地址 MOD 存储体中的字数,芯片容量,优化后的时 间,行 访 问,最慢的 DRAM,最快的 DRAM,列访问,周期时间,64K 位,256K 位,1M 位,4M 位,16M 位,64M 位,180ns,150ns,120ns,100ns,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 社会民生

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报