存储器是分层次的,离CPU越近的存储器,速度越快,每字节的成本越高,同时容量也因此越小。寄存器速度最快,离CPU最近,成本最高,所以个数容量有限,其次是高速缓存(缓存也是分级,有L1,L2等缓存),再次是主存(普通内存),再次是本地磁盘。

寄存器的速度最快,可以在一个时钟周期内访问,其次是高速缓存,可以在几个时钟周期内访问,普通内存可以在几十个或几百个时钟周期内访问。

cache分成多个组,每个组分成多个行,linesize是cache的基本单位,从主存向cache迁移数据都是按照linesize为单位替换的。比如linesize为32Byte,那么迁移必须一次迁移32Byte到cache。

同个cache的linesize总是相同
所谓8路组相连( 8-way set associative)的含义是指,每个组里面有8个行。
同时,cache分为三类
cache分成三类:
1:直接映射高速缓存,即每个组只有一个line,选中组之后不需要和组中的每个line比对,因为只有一个line。
2:组相联高速缓存,S个组,每个组E个line。
3:全相联高速缓存,只有一个组,就是全相联。不用hash来确定组,直接挨个比对高位地址,来确定是否命中。这种方式不适合大的缓存。

描述一个cache需要以下参数:
1:cache分级,L1 cache, L2 cache, L3 cache,级别越低,离cpu越近
2:cache的容量
3:cache的linesize
4:cache 每组的行个数.

Last modification:December 13th, 2019 at 09:34 am
如果觉得我的文章对你有用,请随意赞赏