微处理器结构与设计--第13次课-2013-05-29400107128

上传人:今*** 文档编号:106910521 上传时间:2019-10-16 格式:PPT 页数:50 大小:1.98MB
返回 下载 相关 举报
微处理器结构与设计--第13次课-2013-05-29400107128_第1页
第1页 / 共50页
微处理器结构与设计--第13次课-2013-05-29400107128_第2页
第2页 / 共50页
微处理器结构与设计--第13次课-2013-05-29400107128_第3页
第3页 / 共50页
微处理器结构与设计--第13次课-2013-05-29400107128_第4页
第4页 / 共50页
微处理器结构与设计--第13次课-2013-05-29400107128_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《微处理器结构与设计--第13次课-2013-05-29400107128》由会员分享,可在线阅读,更多相关《微处理器结构与设计--第13次课-2013-05-29400107128(50页珍藏版)》请在金锄头文库上搜索。

1、微处理器结构与设计,第13次课 2013.05.29,存储器组织结构,实例运行SPEC2000的缺失率,尽管缺失率可以衡量cache的设计性能,但最终的衡量是存储器系统对程序执行时间的影响 一个联合cache,比2个分离的cache有略微好的命中率。原因是联合的cache对数据项条目和指令项条目不进行区分。尽管如此,许多处理器的设计仍然采用分离的指令cache和数据cache,以提高cache的带宽(bandwidth) 对FastMATH采用联合cache与采用分离cache的,测试情况: Total size: 32 KB Split cache miss rate: 3.24% Comb

2、ined cache miss rate: 3.18% 分离式cache的缺失率稍微比联合cache的缺失率坏一点 分离式cache的带宽,会很容易弥补缺失率的落差 不能把缺失率作为cache性能评价的唯一指标,3.2%=0.4%Frequency111.4Frequency2,不同带宽下支持cache的存储器系统性能分析,发送一个地址需要1个存储器总线访问周期 每次访问DRAM初始化需要15个存储器总线访问周期 发送一个word需要1存储器总线访问周期,带宽为1个word 的情况,左图为每个block为4个word,主存储器的带宽为1个word 一次Miss Penalty 时间为: 141

3、54165 个存储器总线访问周期 发生缺失时,每个周期传送的字节数为: (44)/65=0.25 字节/周期,带宽为4个word的情况,左图每个block为4个word,主存储器的带宽为4个word 一次Miss Penalty 时间为: 115117 个存储器总线访问周期 发生缺失时,每个周期传送的字节数为: (44)/17=0.94 字节/周期,以Bank方式组织存储器结构,一次启动连续读或写多个字,左图4个bank需要一个地址,允许存储器连续地读出或写入4个bank 一次Miss Penalty 时间为: 1154120个存储器总线访问周期 发生缺失时,每个周期传送的字节数为: (44)

4、/20=0.80 字节/周期,这种传送方式的优点:0.80的传送率是带宽为1个word的3倍,DDR SDRAM特点,DDR SDRAM (Double data rate synchronous DRAM),提供一个起始地址,采用burst模式,在clock控制信号下,利用时钟的上升沿和下降沿,每个clock周期传送2个data,2个优点 (1)采用时钟控制,删除了同步控制逻辑 (2)Burst 模式,删除了后续的地址,结论:尽管增加block的容量可以降低缺失率,但会导致miss penalty(block替换时间)时间变长,因此增加带宽 可以降低miss penalty,Cache性能的

5、评价和提高,提高cache性能的2个技术 降低2个block争夺cache中的同一个位置的概率 通过添加一级cache即多级cache降低缺失处理时间 CPU时间可分为以下2种时间之和: CPU执行程序的时间 CPU等待存储器操作的时间 CPU 时间(CPU执行程序的周期数存储器停顿的周期数)时钟周期 通常认为CPU访问cache命中时间是CPU执行程序时间的一部分 存储器停顿的周期数: 存储器停顿的周期数读停顿周期数写停顿周期数,读停顿的周期数(reads/Program)Read miss rate Read miss penalty 写停顿的周期数(Writes/Program)Writ

6、e miss rate Write miss penaltyWrite buffer stalls;由于可增加的write buffer的深度,因此存储器接收的writes的速率比程序产生的writes的次数要快,因此write buffer stalls的时间占的比例很少,因此,此部分可忽略。 这样,在Write-through模式中,read和write miss penalty时间是相同的,都是从主存储器中取block的时间 于是存储器停顿的周期数 Memory-stall clock cycles= (Memory access/Program)Miss rateMiss penalt

7、y 更进一步地写为: Memory-stall clock cycles= (Instructions/Program)(Misses/Instructions) Miss penalty,例1:,一个程序的I-cache的缺失率为2,D-cahce的缺失率为4,假定处理器在没有任何存储器停顿时的CPI为2,发生缺失时处理时间为100个cycles,请问处理器从不发生cache miss性能是发生cache miss的性能的多少倍?,解:设程序的指令条数为I; 发生I-cache缺失的时钟周期数为: Instruction miss cycles=I21002I; 由P228页知,SPECIN

8、T2000中,load和store的出现频率为36,因此:D-cache miss Data miss cyclesI3641001.44I 那么,总的memory stall cycles1.44I2I3.44I 而由于指令本身的CPI为2, 那么,CPI with memory stall 23.445.44 又知:CPI without stall=2,例2: 若上面的例子中程序CPI由2改为1,请问存储器所占的时间比例是多少? 解:因为不管CPI如何变化,其memory stall cycles不会改变 其 Instruction miss cycles=I21002I; 和 Data

9、 miss cyclesI3641001.44I 总的memory stall cycles1.44I2I3.44I CPI由2改为1 这时 CPI with miss=1+3.44=4.44 CPI without miss=1 CPI with miss/CPI without miss= 4.44/1=4.44 对一个CPI=1的处理器,其存储器占的时间比例为 3.44/4.44=77% 而对一个CPI2的处理器,其存储器占的时间比例为 3.44/5.44=63 也就是说,CPI越小,对存储器的影响就越大,例3: 在例1例子基础上,时钟频率提高1倍,请问处理器提高1倍频率后的性能是原来不

10、提高的多少倍?(在cache miss的情况下) 解: 不论处理器的速度多快,存储器访存的绝对时间不会改变:这样原来访存的100个周期,由于时钟频率的提高就变成了200个周期。 total_miss_CPI=(2%200)+36%(4%200)=6.88 这样,频率提高后CPI with cache miss=2+6.88=8.88,也就是说,在考虑存储器的情况下,时钟频率提高1倍后,其性能仅提高了1.2倍,并不是所想象的2倍,上面的例子说明,当处理器降低CPI(例2)或者提高时钟频率后(例3),存储器与处理器的关系是: CPI越小,对存储器的影响就越大(例2) 频率越高,存储器的缺失损失就越

11、大(例3) 也就是说,频率越高,CPI越低,在评价处理器的性能时,忽视cache的行为,其风险就越大。 前面的例子和等式说明,命中时间并不是确定cache性能的主要因素,如果命中时间增加,那么访存的时间就要增加,进而时钟周期就要变长。最后导致Cache体积变大,大的cache势必增加访存的时间,也就导致了流水线的级数变多(因为访存一个周期不够)。在这种情况下,计算比较复杂,在某种程度上,命中时间的增加,最终导致处理器的性能下降,通过更加灵活的放置Blocks,减少cache缺失,放置Blocks方法,直接映射cache, direct-mapped 一个Block只能精确地放在cache中的一

12、个位置 其映射关系,(Block number)modulo (number of cache blocks),例如:右图12 modulo 8=4,全相联cache; (fully associative cache) 一个Block可以放在cache中的任意位置 因为可以放在cache中的任意位置,所以要找到给定的Block,必须在所有的entry(条目)进行对比查找,这就大大地增加了全相联映射的硬件成本,因此,该方法适合于较小容量的cache应用,组相联cache, set-associative cache 介于直接映射和全相联映射的一种方法 先把cache中分成若干组,每组可有若干个

13、位置(至少应为2)可放Block 在组相联cache中,如果每组有n个位置可放Block,就称为n路组相联cache 其映射的公式:,(Block number)modulo (Number of sets in the cache ),例如:右图组数为4,每组有2个位置可放Block的2路组相联cache, 所以12 modulo 4=0,事实上,我们可以把每一种放置方法看作是组相联的变体 直接映射就是1路组相联映射,即每组仅有一个位置可放Block,这时,组数(set 数)就为cache中的Block数。 全相联cache,相当于cache中仅有1组,每组有m路相联映射 Direct-ma

14、pped 直观容易,效率低;Set-associative 适中可用; Fully-associative 成本较大,可适用小cache,1个set,2个set,4个set,每组有4路,其中的1路,共2组,其中1组,举例,有1个cache,每个cache包含4个Block,每个Block包含一个word,若该cache采用全相联,2路组相联和直接映射来组织cache,请问当Blocks访问序列是0,8,0,6,8,会有多少miss和hit产生?,解:采用直接映射的情形,1,2,3,4,5,发生5次Miss 蓝色表示添加 黑色表示老的项 空白格表示无数据,2路组相联,发生4次Miss,1次hit

15、 蓝色表示添加 黑色表示老的项 空白格表示无数据,替换规则:the least recently used block,被替换掉,发生3次Miss,2次hit 蓝色表示添加 黑色表示老的项 空白格表示无数据,全相联映射,下图显示的是一个64KB data Cache ,每个Block拥有16个word,关联映射从1路(直接映射)到8路组相联映射,运行的程序是SPEC2000的Benchmarks,表中可以看出从1路到2路,其缺失率从10.3变到8.6,缺失率降低了(10.3-8.6)/10.315% 而继续从2路到4路再到8路的组相联,性能改进微乎其微。,作业(二选一),题1:某个cache,

16、每个cache包含8个Block,每个Block包含一个word,若该cache分别采用全相联,2路组相联和直接映射来组织cache,请问Blocks访问序列0,8,0,6,8会有多少miss和hit产生? 题2:某个cache,每个cache包含16个Block,每个Block包含一个word,若该cache分别采用全相联,2路组相联和直接映射来组织cache,请问Blocks访问序列0,8,0,6,8会有多少miss和hit产生?,一个4路组相联cache的实现,(每个Block有1个word),请问有多少个组?,在Cache中定位Block,确定了set或组后,每一个set中,有若干个tag(一个tag/Block),set中所有的tag的比较一定是并行进行的,用来选取那一组或哪一个set,确定组set后,用来选取哪一个Block,1,2,确定Block后,在Block

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号