第三章:储存系统
3.1
3.6 cache储存器
3.6.1 概述
定义:cache是一种高速缓冲储存器,为了解决CPU和主存间速度不匹配的问题
特点:全由硬件调度,对用户来说是透明的
PS:CPU和cache间的数据交换以字为单位,cache和主存间的交换以块为单位,一个块由若干个字组成,且是定长的
说白了,CPU要读数据首先是在cache中读,如果cache命中,也叫cache hit,CPU就可以极快的得到该地址处的值。如果cache miss也就是没命中,它就会通过总线在内存中去读,并把连续的一块单元加载到cache中,下次好使用。
cache命中率
Ne为cache完成存取的总次数,Nm为主存完成存取的总次数。
h越接近1越好,r的值在5~10之间为宜。
3.6.2 主存和cache的映射
定义:cache容量很小,而主存容量很大,cache每次保存的内容只是主存的一个子集。cache和主存间是以块为单位进行数据交换的,将主存地址按照某种方式定位到cache中叫地址映射。
cache中数据块称为行,主存中数据块称为块,这里“块“和”行“是等长的。
每个块/航又由2^w个连续的字组成。
-
全相联映射
- 定义:CPU给出访问地址后,也将地址分为两部分(块号和字,块号存放在cache的tag标记中),比较电路块号与Cache 表中的标记进行比较,相同表示命中,访问相应单元;如果没有命中访问内存,CPU 直接访问内存,并将被访问内存的相对应块写入Cache。
- 地址格式:s+w,标记+字地址
-
直接映射
- 定义:一对多,利用取模的办法,进行匹配。cache容量16字,主存容量256字,则地址
2,18,34……242等都存放在cache的地址2内,如果第一次2在cache中,下次访问34内容,则不管cache其他位置的内容访问情况,都会引起2块内容的替换。 - 地址格式:(s-r)+r+w,块标记+行地址+字地址
- 定义:一对多,利用取模的办法,进行匹配。cache容量16字,主存容量256字,则地址
-
组相联映射
- 定义:前两者的结合。组间采用直接映射方式,组内采用全相联的映射方式。
- 地址格式:(s-d)+d+w,区号/标记+cache分组组号+字地址