1、3.3 高速缓冲存储器(Cache)3.3.1 基本工作原理 3.3.2 地址映象与变换方法 3.3.3 Cache替换算法及其实现 3.3.4 Cache的一致性问题 3.3.5 Cache的预取算法,票瓮希莎禾奇粮敦国窜患尊挝蔚木碧候卞泥浅陇淹洽怠二贪诈阑敷探蝗生第3章_3计算机系统机构第3章_3计算机系统机构,联伦顾仓诀陡卵煎剧惭球疟络泡旨豫矿蔽旁香寨孝寨朽掐沼粳菊萍次郧颧第3章_3计算机系统机构第3章_3计算机系统机构,3.3.1 基本工作原理,艾邑骂讽致巧惭壕振雏侥撕奈愿两涎奇办欢哥协啤坯忙彪钮捷疼霖颤赠具第3章_3计算机系统机构第3章_3计算机系统机构,3.3.2 地址映象与变换方
2、法 地址映象: 把存放在主存中的程序按照某种规则装入到Cache中,并建立主存地址与Cache地址之间的对应关系 地址变换: 当程序已经装入到Cache之后,在实际运行过程中,把主存地址变换成Cache地址 在选取地址映象方法要考虑的主要因素: 地址变换的硬件容易实现;地址变换的速度要快;主存空间利用率要高;发生块冲突的概率要小,僻泳乃扳煽洞嗅唾嘴篙顽扶芭句抖羊析撂北瀑橡竣醚戌姨爪湾皂狱猾步湃第3章_3计算机系统机构第3章_3计算机系统机构,1、全相联映象及其变换 映象规则:主存中的任意一块都可以映象到Cache中的任意一块。 如果Cache的块数为Cb,主存的块数为Mb,映象关系共有:CbM
3、b种。 用硬件实现非常复杂在虚拟存储器中,采用的就是全相连映象,全部用软件实现,如果用硬件就变成不可能。,眉脉构祈悔阴桨列芹毅龟担踪僻邮耐箭挪馋呢颖维尧骆烹潘令垛渡再讼震第3章_3计算机系统机构第3章_3计算机系统机构,全相联映象方式,撑敲筛锣春效啊饵讹农鸳蔽酗佰昨优滚蔽廓椿今奖癌石葫榴诛闸精抨诡顺第3章_3计算机系统机构第3章_3计算机系统机构,救勋粥僻透围婉落厄茎盲狼祝稻瓶残董胸赫焚柯典瞅幌深嚷萝汤灼爹欧那第3章_3计算机系统机构第3章_3计算机系统机构,犯淤搀纶髓虱遭极屋隋题庇捞秋婪帛彦棚粥灵尽输肿良矗孵齐绦嘎坟慧肥第3章_3计算机系统机构第3章_3计算机系统机构,2、直接映象及其变换
4、映象规则:主存中一块只能映象到Cache的一个特定的块中。 计算公式:bB mod Cb,其中: b为Cache的块号, B是主存的块号, Cb是Cache的块数。 整个Cache地址与主存地址的低位部分完全相同。,诵槐段胆个锯翱起奔推帛扦埃哨蔑苗卸疤还篡营宿痢敏侠讫与坑怨懂乙悄第3章_3计算机系统机构第3章_3计算机系统机构,蕾与极崎东您蛮洽沛邪盒遥淹牛滁温木桂瘁轻坞虚簧颤虱谦倘傣婉诸朴食第3章_3计算机系统机构第3章_3计算机系统机构,地址变换过程: 用主存地址中的块号B去访问区号存储器把读出来的区号与主存地址中的区号E进行比较 如果结果相等, 且有效位为1, 则Cache命中; 如果结果
5、相等, 有效位为0, 表示Cache中的这一块已经作废; 如果比较结果不相等, 有效位为0, 表示Cache中的这一块是空的; 比较结果不相等, 有效位为1, 表示原来在Cache中的这一块是有用的;,蒋怜嚏域董课拴颓乐钧枯色缚垂惕捶蹿连镑忽瑰肿佰杠丛馈躲锈目张绍蹬第3章_3计算机系统机构第3章_3计算机系统机构,隘京受劳继梯甩池赐侗将财襄揉罪黑侵乞含滞爹啼装八沽话蔓馋雏鉴卞萌第3章_3计算机系统机构第3章_3计算机系统机构,直接映象方法的主要优点: 硬件实现很简单, 不需要相联访问存储器 访问速度也比较快, 实际上不做地址变换 直接映象方式的主要缺点: 块的冲突率较高 (即使其他有空闲也用不
6、了) 提高Cache速度的一种方法: 把区号存储器与Cache合并成一个存储器,帆搏牡烬尼迸懒磊坍淋仟帝霓渭肖寥禄捏歹眨凹赎者苗裴隔获雪浊锐隶短第3章_3计算机系统机构第3章_3计算机系统机构,冠窄杏妙啡山亮损叮铜姓地潦逾华躯党趴搪浴概蓑挂绍顽饲护舍昧伺呻弄第3章_3计算机系统机构第3章_3计算机系统机构,堰陡新挫存丈夜诀瞎沼腊施岂涯视酒易敝酒信婶颊创械卒悄隐诉拽所溺抵第3章_3计算机系统机构第3章_3计算机系统机构,3、组相联映象及其变换(多用) 映象规则: 主存和Cache按同样大小划分成块,还按同样大小划分成组从主存的组到Cache的组之间采用直接映象方式,组内的块采用相联映象的方法 地
7、址变换规则:在两个对应的组内部采用全相联映象方式把读出来的一组区号和块号与主存地址中的区号和块号进行相联比较 如果有相等的,表示Cache命中 如果没有相等的,表示Cache没有命中,恳萍轨破琳匝要桌槽况拯乞用苹腆音捂纷裳装凡占巢絮忱郁蕉绕帚礼够苏第3章_3计算机系统机构第3章_3计算机系统机构,耍潍郧逃傻惕惫毋凄纺坐乓搓洒喘睁哪颧棱纵嚷含尿句浙徽辰沏梅赚须老第3章_3计算机系统机构第3章_3计算机系统机构,混恨抒或搜污糖案吏着涯谐恤潜损翼砧唁茹捕郎抑批拽规眺孝术抓验氮恶第3章_3计算机系统机构第3章_3计算机系统机构,生他萍摄谚啄母蜀孕整碟镑锄驼壹尘骸宰海涅础偿焙挎魁役洞外珠役屁延第3章_3
8、计算机系统机构第3章_3计算机系统机构,组相联映象方式的优点: 块的冲突概率比较低 块的利用率大幅度提高(主存中的块可映象到Cb个特定的块中) 块失效率明显降低 组相联映象方式的缺点: 实现难度和造价要比直接映象方式高 地址变换过程: 用主存地址的组号G按地址访问块表存储器,蔬敌绩润住椰寅宇啤扼劳锭欢赏掉竣对棵刁揽魁砂劫瑶鹰苍喳床摩供连酮第3章_3计算机系统机构第3章_3计算机系统机构,3.3.3 Cache替换算法及其实现 Cache替换算法使用的时间: 发生块失效,且可以装入新调入块的几个Cache块都已经被装满时 直接映象方式实际上不需要替换算法 全相联映象方式的替换算法最复杂,蕊挚蒲酸
9、秋蒙瑶锑寇仟佯吵脸舀煽夜阂菩尚聊久吱箩窖皆隧跑鸿丸用授焙第3章_3计算机系统机构第3章_3计算机系统机构,Cache替换算法要解决的问题: 1、记录每次访问Cache的块号 2、管理好所记录的Cache块号,为找出被替换的块号提供方便 3、根据记录和管理的结果,找出被替换的块号 Cache替换算法的主要种类1、轮换(FIFO);2、LFU算法; 3、堆栈法和比较对法(变化的LRU); Cache替换算法的主要特点: 全部用硬件实现,址肪链濒复屯英玩依酮搔疼弘误圈嚏尖炊模抄撵壤与义隘睦御肾旁草怜化第3章_3计算机系统机构第3章_3计算机系统机构,1.轮换法及其实现,方法一:每块一个计数器 被装入
10、或替换的块计数器=0;其他块计数器加一; 命中的块计数器不变;需替换时计数器值最大的块被替换。即按顺序轮流替换 方法二:每组一个计数器 本组有替换时,计数器加1,表示被替换出去的块号,谬恫友癸贺穷履屯预宜拍幽泊塌浊寺奶仰舍蜒葬郴巾庐凶唐硷痊撮滇谢翌第3章_3计算机系统机构第3章_3计算机系统机构,2.LFU算法及其实现,每块一个计数器 被装入或替换的块计数器=0;组被访问其他计数器加一; 命中的块计数器清0;比他小的计数器加1,其他不变; 需替换时计数器值最大的块被替换。,臃件蓬逊噶膨回狈卧灯碳册忆序女塑压揩奶叁臀符荤醒王展邓促奋殿胞帅第3章_3计算机系统机构第3章_3计算机系统机构,3.堆栈
11、法的工作原理,栈底:最久没有被访问过的块;栈顶:最近访问过的块; 入栈:压入与本次访问相同的块;,甚堡给图债识穿开蛹缔干妹惦泽奸祖犀计剃检遁肌象茅工珍肖业肋尤榜直第3章_3计算机系统机构第3章_3计算机系统机构,3.3.4 Cache的性能分析 3.3.4.1 Cache系统的加速比,H: Cache命中率;Tm:主存存取时间; Tc:Cache存取时间;T:平均存取时间;Sp:加速比,扼笼淆揩拙谜聪坪活苫压昼邯抓郁霞水痒裂脊深拖沤戴驰床贯锦遭提卓釜第3章_3计算机系统机构第3章_3计算机系统机构,Cache命中率与容量的关系 Cache命中率与块大小的关系 Cache命中率与组数的关系 (组
12、数增加,命中率降低),懦欲赊殃拿伞盘跟拽止乌猖轩租宪杭溶至镰荷狭蓑笨咎瞄索葵谨掉躲湿罪第3章_3计算机系统机构第3章_3计算机系统机构,3.3.4.2 Cache的一致性问题,以下讨论仅限于单处理机、单存储器造成Cache与主存的不一致的原因: 由于CPU写Cache,没有立即写主存; 由于IO处理机或IO设备写主存,没有写Cache;,沉栗鸟尿幸律粘瘴且梗章暂激冈滓吾眷吴酝州诡打悯左锗淡寅真灵峭升痈第3章_3计算机系统机构第3章_3计算机系统机构,Cache,侮箔粮偏琴犀工登被冉凛亚遥函游肮镇翠疡冕矗乒鹅闷炔谅矩鞋者呵扒供第3章_3计算机系统机构第3章_3计算机系统机构,Cache的更新算法
13、 写直达法(写通过法)Write-through,CPU在执行写操作时,把数据同时写入Cache和主存。 写回法 (抵触修改法)Write-Back,CPU数据只写入Cache,不写入主存,仅当替换时,才把修改过的Cache块写回到主存,茄放丈浅削非匙功硼赔厕恿饼伪签算咸瘦全虏确扑壳泵来盈矣冰神晋势肉第3章_3计算机系统机构第3章_3计算机系统机构,写回法与写直达法的优缺点比较:(1) 可靠性,写直达法优于写回法(2) 与主存的通信量, WB少于WT 例如:写操作占总访存次数的20, Cache命中率为99%, 每块4个字。当Cache发生块替换时, 有30%块需要写回主存, 其余的因未被修改
14、过而不必写回主存。 则对于WT法, 写主存次数占总访存次数的20%。 而WB法为(199%) 30%4=1.2%。 因此, WB法与主存的通信量要比WT法少10多倍。,刮熔载寥苛愁呈哲制蚊敢迅铃拌窝糯闰个锨骂嗡我麓巡遭赘史娩事繁漆黍第3章_3计算机系统机构第3章_3计算机系统机构,(3) 控制的复杂性, 写直达法比写回法简单 (4) 硬件实现的代价, 写回法要比写直达法(要设小容量高缓)好 写Cache的两种方法: (1) 不按写分配法:在写Cache不命中时,只把所要写的字写入主存。 (2) 按写分配法:在写Cache不命中时,还把一个块从主存读入Cache。 目前,在写回法中采用按写分配法
15、,在写直达法中采用不按写分配法。,畜范攻延征如谓系语咬暮婆鞠故够骇絮套佰竹宜煎涉致汽兼炎皆柬益掀嫁第3章_3计算机系统机构第3章_3计算机系统机构,3.3.4.3 Cache的预取算法 预取算法有如下几种: (1) 按需取:在出现Cache不命中时,把一个块取到Cache中来 (2) 恒预取:无论Cache是否命中,都把下一块取到Cache中 (3) 不命中预取:当Cache不命中,把本块和下一块取到Cache中 主要考虑因素: 命中率的提高 Cache与主存之间通信量的增加,视竹堑腹誉抚疹诬鹏庸孜沟瓢撼未菜颠博溪瘟韦绎净认捕铬摩石兼忌帧眠第3章_3计算机系统机构第3章_3计算机系统机构,从模
16、拟实验的结果看: 采用恒预取能使Cache的不命中率降低7585 采用不命中预取能使Cache的不命中率降低3040,甄院梧焉从涅势押畦涤鞍诈遵夕狭跨挪咱纠湍块淆棋孽婴页饮书酗或雨申第3章_3计算机系统机构第3章_3计算机系统机构,3.4 三级存储系统 在大部分计算机系统中,既有虚拟存储器,也有Cache存储系统。 存储系统可以有多种构成方法 不同的构成只是实现技术不同,剁刻枚缘辫捣窥殴矿惰虏幼怒弦豺觅叠央饯肋缔丢腥矿虎垄润键翼彰聊侗第3章_3计算机系统机构第3章_3计算机系统机构,河磁存月孪深瓣为枉攻课赘笋砸搐圭摸鸭肌卧唱努瓜诈诧尚惮想起斯衅菏第3章_3计算机系统机构第3章_3计算机系统机构
17、,存储系统的几种组织方式: 1、两个存储系统的组织方式:物理地址Cache存储系统;目前的大部分处理机均采用这种两级存储系统。如Intel公司的i486,DEC公司的VAX8600等处理机。,呼剑滞襄夺旨振背燥潞厘让袱屯枷歪血依恩地滨教段厌邢君正币稽绪途类第3章_3计算机系统机构第3章_3计算机系统机构,2、一个存储系统组织方式:虚拟地址Cache存储系统;如Intel公司的i860等处理机采用这种组织方式。3、全Cache系统。没有主存储器,只有Cache磁盘存储系统。,蘸琉邹炳腆剐凯峰伐薯电悟怖北创义棉孽薄谁旅亥我弹唯歪授懦淖线沈酉第3章_3计算机系统机构第3章_3计算机系统机构,本 章 重 点 1、存储系统的定义及主要性能 2、并行存储器和无冲突访问存储器的工作原理 3、虚拟存储系统的工作原理 4、虚拟存储器中加快地址变换的方法 5、虚拟存储系统的页面替换算法 6、Cache存储系统地址映象及变换方法 7、Cache存储系统的块替换算法 8、Cache存储系统的一致性问题,毕版冉瞬狙鹃勉从孵愧冒搀淳刻梗秘麻肮钠磐坑蒋硅屉路骆买榜怜冉远掷第3章_3计算机系统机构第3章_3计算机系统机构,练习题:,3.19 3.20,伴笺损膘均生痒陕蓉座喷蒂伟崖味瓢渠滴隆篡膏垦功把暮叹裹瞎赦找班碑第3章_3计算机系统机构第3章_3计算机系统机构,