第八讲
35
上一讲简要回顾
高速缓冲存储器
高速缓冲存储器
Cache产生的主要原因和基本前提
Cache的基本概念
Cache要解决的问题及其基本结构
Cache的工作过程
Cache相关的一些术语和指标
主存块与Cache块的映射方式
全相联映射
直接映射
36
3.2 Cache与主存之间的映射 — 组相联
组相联映射(Set Associative Mapping )
映射关系:Cache 分成K 组,每组分成L 块(L即为路数);主存的块J
以下列原则映射到Cache 的组I 中的任何一块。
I = J mod K
实际上主存与Cache都分成K 组,主存每一组内的块数与Cache一组内的
块数不一致,主存组M 内的某一块只能映射到Cache组M 内,但可以是组
M 内的任意一块。
Cache Main Memory
Tag Tag
Block 0 Set 0 Block k Block 0 Block k Block (m-1)k
Block 1 Block k+1 Block 1 Block k+1 Block (m-1)k+1
Set 1
Block k-1 Block 2k-1 Block k-1 Block 2k-1 Block mk-1
Set k-1
37
3.2 Cache与主存之间的映射 — 组相联
组相联映射
主存的地址格式: 组内块地址(tag) 组地址 块内偏移
Tag的内容:主存中与该Cache数据块对应的数据块的组内块地址。
组相联映射举例
主存:1M Bytes
Cache:16K Bytes
Block:256 Bytes
Way : 4 Ways (Cache每组包含4个Block)
解答
14 8 2 4
Cache 组数=2 ÷(2 ×2 )=2 =16 组
20 8 4 8
主存每组块数=2 ÷(2 ×2 )=2 =256 块/ 组
主存地址:20 位,其中高8 位为组内块地址,中间4 位为组地址,低8位
为块内地址
Cache的Tag应该为8 位。
38
3.2 Cache与主存之间的映射 — 组相联
39
3.2 Cache与主存之间的映射 — 组相联
Memory Address
CACHE
Block # of Set Set # Offset