组相联映像Set

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8.2 高速缓冲存储器
解决CPU与主存之间的速度矛 盾
基本概念
Cache
辅助硬设备 高速缓存 Cache 主存 MM
CPU
在CPU和主存之间引入速度更快的小容量存储器,称高 速缓冲存储器(Cache Memory)。它存放当前最活跃的程 序和数据,使得在大部分情况下,CPU访问的是Cache而不 是主存,大大提高了CPU访问内存的速度。 2
X
Y
第0区
2

=命中
Cache地址
Tag
0 1
Cache
第0块 第1块
第15块 第0块 第1块 第1区 第15块 第0块 第1块 第Y块 第15块 第X区
1
· 区号X Y
3
第Y块
15
第15块
地址变换表(TAG)单元个数与Cache 块数一致,地址即Cache块号,存放 内容是Cache块对应的主存区号。
映像规则:内存中某一块可 以装入Cache的任何一块中。
需要记录对应关系——
15 第 m位 块
地址变换表(TAG)
单元数与Cache块数一致且对 应 内容是对应Cache块所存放的 主存的块号
0 1 m
15
第15块 第32767块 块号x
地址变换表
8
本例中,参与相联比较的位 全相联方式地址映象及变换 数为 16×15=240。 地址变换表是相联存储器
主存 第0块 Cache 第1块 主存块号 主存地址 =命中 0 1 m
15
块内地址 9位
15位 相联比较
1
第0块
第1块 第x块
x
Tag 4位
第m块 第15块
2
存放15位的主存块号。 3
9位
Cache地址
第32767块
Cache块号 块内地址
源自文库
全相联方式地址映象及变换
9
全相联映像
优点:
主存的块装入Cache的位置没有限制,只要Cache有空闲 块便可装入,只有全部装满才会出现冲突。
9位
第1块 第0区
是上两种方式的折中。即主存和 Cache按同样大小分块;Cache分为 若干组,如两块一组;主存按Cache 组数分区。
Cache
第0块 第1块
第7块
第0组
第0块 第1块 第Y块
映像规则:
主存任何一区的 第n块只能映像至 第0块 Cache的第n组 第1块 (直接方式), 可以是第n组两块中的任何一块 (全相联方式)。即组间直接方 式,组内全相联方式。
第1区 第15块 第0块 第1块 第Y块 第15块 第X 区
映像规则:
主存某一区第Y 块只能 装入到Cache的第Y 块。
每个Cache块对应了2048 个主存块 需记录主存的区号 第Y块 第15块
第0块 第1块
第2047区
第15块
5
主存地址
主存区号
直接方式地址变换
Z
MM
第0块 第1块
区内块号 块内地址
第0块 第1块
第2047区 第15块
直接方式小结
优点:
地址变换简单,命中时直 接由主存地址提取到Cache 地址。 不命中时替换算法简单
Cache
第0块 第1块 第0块 SUB: … RET 第1块 第1区 第0块 NEXT: CALL SUB
LOOP NEXT
第1块 第0区
不足:
映像关系固定,不灵活 “抖动”现象会造成命中 率下降。
不足:
无法直接从主存块号中获取Cache块号,使得其地址变换 机构相对复杂,使用了相联存储器,成本较高。前面的例子 中,使用的相联比较器的位数为16×15=240位。
10
主存区号 主存块号 块内地址 组相联映像(Set-Associative Mapping ) 第0块
映像方法:
12位
3位
Cache
第0块 第1块 第15块
地址映像与变换的三种 基本方式:
第15块
直接方式(Direct Mapping) 全相联方式(Associative Mapping) 组相联方式(Set-Associative Mapping ) 4
第0块 直接方式地址映象(11 Direct Mapping ) 4 位 位 9位 第1块
7
全相联映像(Associative Mapping)
映像方法:主存和Cache以 同样大小分块。
假设某机内存16MB,Cache为 8KB,按512B划分块,那么主存 将划分为32K块(块地址需15 位),Cache将划分为16块(块 地址需4位),块内地址均为9位.
主存块号 15位 Cache 第0块 第1块 第x块 块内地址 9位 主存 第0块 第1块
基本概念(续)
Cache能提高访问速度的原因:
物质基础:Cache由双极型超高速半导体存储器(如ECL)组 成,速度通常是主存的5~10倍。 程序执行的局部性原理
CPU对内存的访问在一段相对较短的时间间隔内往 往集中于某个局部,特别是碰到循环程序、反复调用 的子程序、递归程序等就更是如此,这就是所谓的 “程序执行的局部性原理”。
第K块
第Y组
第X区
第7组
第0块 第1块 第6块 第7块 第4095区
11
当主存第X区、第Y块装入 cache时,装入cache的Y组中 的任一块(设为k),将区号X填 入地址变换机构的对应单元。
Tag Cache
第0块 第1块
组相联映像
第0块 第1块 第0区
第7块
第 0组
第0块 第1块 第Y块 第X 区
Cache与主存之间的地址变换和数据替换等控制全部用硬 件实现,无需CPU的介入。 合理设计映像方法和替换算法,提高命中率。
分块
3
地址的映像与变换
地址映像(Mapping):
把信息从主存复制到 Cache的规则或算法。
MM
第 0块 第 1块
地址变换:
将主存地址变换为Cache 地址的过程。
区号X
第K块 第0块 第1块
第Y组
第 7组
第0块 第1块 第6块 第7块 第4095区
12
主存区号 12位
主存块号 块内地址 3位 9位
组相联映像的地址变换
2
相联比较
1
Tag
Cache
第0块 第1块
第 0组
K 命中
区号X
第K块 第0块 第1块
第Y组
第 7组
组号 块号 块内地址
Cache地址
3
组相联映像
主存区号
块号
块内地址
MM
策略:先将主存和Cache以同样
大小分块 (也称为行),主存再按整个 Cache的大小分为若干个区。
例:内存16MB,Cache8KB, Cache 每块512B,那么Cache将分 第0块 为16块,主存共32K块, 分为2K区 第1块 第15块 第0块 第1块
第0区
相关文档
最新文档