资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,计算机组成原理,舒燕君,计算机科学与技术学院,第十讲,4.3 高速缓冲存储器,一、概述,1.问题的提出,避免,CPU“,空等”现象,CPU,和主存(,DRAM),的速度差异,缓存,CPU,主存,容量小,速度高,容量大,速度低,程序访问的局部性原理,2.,Cache,的工作原理,(1)主存和缓存的编址,主存和缓存按块存储 块的大小相同,B,为块长,主存块号,主存储器,0,1,2,m,1,字块 0,字块 1,字块,M,1,主存块号,块内地址,m,位,b,位,n,位,M,块,B,个字,缓存块号,块内地址,c,位,b,位,C,块,B,个字,字块 0,字块 1,字块,C,1,0,1,2,c,1,标记,Cache,缓存块号,4.3,(3),Cache,的命中率,CPU,欲访问的信息在,Cache,中的,比率,命中率,与,Cache,的,容量,与,块长,有关,一般每块可取 4,8,个字,块长取一个存取周期内从主存调出的信息长度,CRAY_1 16,体交叉 块长取 16 个存储字,IBM 370/168 4,体交叉,块长取 4 个存储字,(64位,4,=,256位),4.3,(,4)Cache,主存系统的效率,效率,e,与,命中率,有关,设,Cache,命中率,为,h,,,访问,Cache,的时间为,t,c,,,访问,主存,的时间为,t,m,4.3,则,e,=,100%,t,c,h,t,c,+,(1,h,),t,m,访问,Cache,的时间,平均访问时间,e,=,100%,3.,Cache,的基本结构,4.3,主存,Cache,地址映射,变换机构,Cache,替换机构,Cache,存储体,4.Cache,的,读写,操作,访问,Cache,取出信息送,CPU,访问主存,取出信息送,CPU,将新的主存块,调入,Cache,中,执行替换算法,腾出空位,结束,命中?,Cache,满?,CPU,发出访问地址,开始,是,否,是,否,读,4.3,Cache,和主存的一致性,4.Cache,的,读写,操作,写,4.3,写直达法,(,Write,through,),写回法,(,Write,back,),写操作时数据既写入,Cache,又写入主存,写操作时只把数据写入,Cache,而不写入主存,当,Cache,数据被替换出去时才写回主存,写操作时间就是访问主存的时间,,读操作时不,涉及对主存的写操作,更新策略比较容易实现,写操作时间就是访问,Cache,的时间,,,读操作,Cache,失效发生数据替换时,,被替换的块需写回主存,增加了,Cache,的复杂性,5.,Cache,的改进,(1)增加,Cache,的级数,片载(片内),Cache,片外,Cache,(2)统一缓存和分立缓存,指令,Cache,数据,Cache,与主存结构有关,与指令执行的控制方式有关,是否流水,Pentium 8K,指令,Cache 8K,数据,Cache,PowerPC620 32K,指令,Cache,32K,数据,Cache,4.3,Intel,的,Cache,发展趋势,问题,解决方案,首次改进的处理器,外部存储器比系统总线慢,增加外部,Cache,80386,外部总线是,Cache,访问的瓶颈,外部,Cache,移至片内,80486,片内,Cache,太小,增加外部,L2 Cache,80486,指令预取和执行同时访问,Cache,出现竞争,分离数据,Cache,和指令,Cache,Pent,外部总线成为,L2 cache,访问瓶颈,L2 Cache,移至片内,Pent II,片上,Cache,太小,增加外部,L3,级,Cache,L3,移至片内,Pent III,Pent 4,Intel,Corei7,的,Cache,层次结构,高速缓冲类型,访问时间(周期),大小,块,L1 i-cache,4,32KB,64B,L1 d-cache,4,32KB,64B,L2,统一的高速缓存,11,256KB,512B,L3,统一的高速缓存,30-40,8MB,8192B,字块2,m,1,字块2,c,+1,字块2,c,+1,1,字块2,c,+1,字块2,c,字块2,c,1,字块,1,字块0,主存储体,字块 1,标记,字块 0,标记,字块 2,c,1,标记,Cache,存储体,t,位,0,1,2,c,1,字块,字块地址,主存字,块标记,t,位,c,位,b,位,主存地址,比较器(,t,位),=,不命中,有效位=1?,*,m,位,Cache,内地址,否,是,命中,二、,Cache,主存的地址映射,1.直接映射,每个缓存块,i,可以和,若干,个,主存块,对应,每个主存块,j,只能和,一,个,缓存块,对应,i,=,j,mod,C,4.3,字块2,c,+1,字块2,c,字块0,字块 0,二、,Cache,主存的地址映射,1.直接映射,4.3,缓存块,001,可以和,主存块,00001,01001,10001,11001,对应,标记分别为,00,01,10,11,。,缓存,主存,2.全相联映射,主存,中的,任一块,可以映射到,缓存,中的,任一块,字块2,m,1,字块2,c,1,字块1,字块0,字块2,c,1,字块1,字块0,标记,标记,标记,主存字块标记,字块内地址,主存地址,m,=,t,+,c,位,b,位,m,=,t,+,c,Cache,存储器,主存储器,字块0,4.3,字块2,m,1,字块2,c,-,r,+1,字块2,c,-,r,+,1,字块2,c,-,r,字块2,c,-,r,字块1,字块0,字块 3,标记,字块 1,标记,字块 2,c,1,标记,字块 2,标记,字块 0,标记,字块 2,c,2,标记,字块内地址,组地址,主存字块标记,s,=,t,+,r,位,q,=,c,r,位,b,位,组,0,1,2,c,-,r,1,主存地址,Cache,主存储器,m,位,共,Q,组,,每组内两块(,r,=1),1,某一主存块,j,按模,Q,映射到,缓存,的第,i,组,中的,任一块,i,=,j,mod,Q,直接映射,全相联映射,3.组相联映射,4.3,字块0,字块 1,字块 0,字块2,c,-,r,字块2,c,-,r,+1,假设主存容量为,16MB,,每个字节通过,24,位地址可直接寻址,,Cache,容量为,64KB,,每个字块为,4B,。对十六进制主存地址,BBBBBB,,请问,:,(,1,),直接映射方式下,Cache,的标记为多少?,(,2,),全相联映射方式下的,Cache,的标记为多少?,(,3,),两路组相连,Cache,的标记为多少?,例题,答,:,(,1,),直接映射方式下,Cache,的标记,BB,(,2,),全相联映射方式下的,Cache,的标记为,2EEEEE,;,(,3,)两路组相,联映射方式下的,Cache,的标记为,177,;,
展开阅读全文