Lecture 14 高速缓冲存储器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Ta=H×Tc+(1 – H)×(Tc+Tm) = Tc+(1 – H)×Tm
③ 两级存储器的访问效率:e=Tc/Ta
说明
用0,1分别标记对应块中的内容是否有效 开始执行程序时,命中率较低。 Cache的容量和块的大小是影响Cache的效
率的重要因素。通常用“命中率”来测量 Cache的效率。 Cache容量太小会使命中率太低; Cache容量过大会增加成本,而且当容量超过 一定值后,命中率随容量的增加将不会有明 显地增大。
地址映射策略 (如何判断命中取决于映射策略) 替换策略 写策略
一个例子
问题:宿舍书架上有很多 书,今天上课你是否会把 整个书架都带教室中?
如果我们不知道今天上什 么课,但记得上周上了《 计算组成原理》的第1章 ,《大学英语》的第2课 ,...。这周会上什么课、 什么内容呢?
高速缓存的理论依据
主存块与缓存块 建立 了对应关系 未命中 主存块 未调入 缓存
主存块与缓存块 未建立 对应关系
Cache-主存储器的技术指标
设执行一段程序时, Cache存储器完成存取的次数为Nc, 主存储器完成存取的次数为Nm, Cache存储器存取周期 为Tc,主存储器为Tm ,则Cache存储器的技术指标为: ① cache的命中率: H= Nc/(Nc+Nm) ② 两级存储器的平均访问时间:
逐列
代码1多次运行的平均时间为0.25ms 代码2多次运行的平均时间为0.35ms
课程结构
高速缓冲存储器
主要内容
高速缓存的目的 高速缓存的理论依据 高速缓存的工作过程 关键问题
主存与高速缓存的地址映射 替换策略
高速缓存的目的
高速缓冲存储器
高速缓存的目的
高速缓存
CPU
主
外
存
存
高速缓冲存储器:容量小、速度快 目的是提高CPU访问存储器的效率
地址映射策略 (如何判断命中取决于映射策略) 替换策略 写策略
关键问题之一:地址映射
0
1 2
0组
3
0
4
1 2 3
5 6
1组
Leabharlann Baidu
(1)直接映射:主存中的每个块只能映7 射到
高速缓存中某固定的行;
特点:硬件简单、成本低、适合于需要大容量
高速缓存的场合。
(1) 直接映射
5
组标记
0
11
2 3
0
1 2
0组
3
4
5 6
1组
7
分析:CPU访问主存第5块的过程
(1) 直接映射
组标记
0
11
2 3
0
1 2
0组
3
4
5 6
1组
7
缺点:高速缓存空间的利用率较低;
分析:如果第5块已在高速缓存中,CPU又要访问第1块
(2)全相联映射
0
1
2
组标记
3
0
4
51
5
2 3
6
7
缺点:需要描述所有行,效率低; 改进:组相联映射!
分析:CPU访问第5块的过程
例
CPU执行一段程序时,Cache完成存取的次数为5000次,主 存完成存取的次数为200次。已知Cache存取周期为40ns, 主存存取周期为160ns。求:
(1) Cache 命中率H。 (2) 平均访问时间Ta。 (3) Cache/主存系统的访问效率e。 解:(1)命中率 H=Nc/(Nc+Nm)
程序访问的局部性 时间局部性:如果一个存储单元被访问,则可能该 单元会很快被再次访问,这称为程序访问的时间局 部性。 空间局部性:在一个较短的时间间隔内,CPU对局 部范围的存储器地址频繁访问,而对此地址范围之 外的地址访问很少;
设立高速缓存的理论依据是程序访问的局部性
主要内容
高速缓存的目的 高速缓存的理论依据 高速缓存的工作过程 关键问题
=5000/(5000+200)=0.96 (2)平均访问时间 :Ta=Tc+(1 – H)×Tm =40ns+(1 – 0.96)×160ns=46.4ns (3)访问效率 :e=Tc/Ta=(40ns/46.4ns)×100%= 86.2%
主要内容
高速缓存的目的 高速缓存的理论依据 高速缓存的工作过程 关键问题
0
1 2
0组
3
4
5 6
1组
7
对于全相联映射,有空闲行时,不需要替 换
关键问题之二:替换策略
组标记
0 1 2 3
0
1 2
0组
3
4
5 6
1组
7
对于全相联映射,无闲行时,由于映射位 置不唯一,需要按一定策略从多个候选中 选择一行替换。
Cache-主存储器的技术指标
缓存共有 R 块 主存共有 S 块 S >> R 命中 主存块 调入 缓存
主要内容
高速缓存的目的 高速缓存的理论依据 高速缓存的工作过程 关键问题
地址映射策略 (如何判断命中取决于映射策略) 替换策略 写策略
关键问题之二:替换策略
组标记
0
11
2 3
0
1 2
0组
3
4
5 6
1组
7
对于直接映射,映射位置唯一,直接替换。
关键问题之二:替换策略
组标记
0 1 2 3
补充:存储系统的层次结构
Cache-主存-辅存三级存储层次如图所示。
❖Cache由SRAM组成,容量最小,速度最快; ❖内存由DRAM组成, 容量适中,速度适中; ❖外存由磁表面存储器组成,容量最大,速度最慢; ❖各层次中存放的内容都可以在下一层次中找到。
主要内容
高速缓存的目的 高速缓存的理论依据 高速缓存的工作过程 关键问题
地址映射策略 (如何判断命中取决于映射策略) 替换策略 写策略
Cache-主存的地址映射
主存和缓存的编址
主存储器
0… 1
主存块号 字块 0 字块 1
标记
0
1
Cache
…
缓存块号 字块 0 字块 1
… …
~
2s-1
~
~~
2r-1
字块 S-1
~~
例
代码1 int a[3000][10]; for (i=0;i<3000;i++)
for(j=0;j<10;j++) { sum+=a[i][j];}
逐行
代码2 int a[3000][10];
for(j=0;j<10;j++) for(i=0;i<3000;i++) { sum+=a[i][j];}
地址映射策略 (如何判断命中取决于映射策略) 替换策略 写策略
高速缓存的工作过程
数据交换单位: •cache与主存间:块; •CPU与cache间:字。
问题1:如何判断命中?
高速缓存的工作过程
问题2:映射到哪里?
高速缓存的工作过程
问题3:替换谁?即留下谁?
主要内容
高速缓存的目的 高速缓存的理论依据 高速缓存的工作过程 关键问题
③ 两级存储器的访问效率:e=Tc/Ta
说明
用0,1分别标记对应块中的内容是否有效 开始执行程序时,命中率较低。 Cache的容量和块的大小是影响Cache的效
率的重要因素。通常用“命中率”来测量 Cache的效率。 Cache容量太小会使命中率太低; Cache容量过大会增加成本,而且当容量超过 一定值后,命中率随容量的增加将不会有明 显地增大。
地址映射策略 (如何判断命中取决于映射策略) 替换策略 写策略
一个例子
问题:宿舍书架上有很多 书,今天上课你是否会把 整个书架都带教室中?
如果我们不知道今天上什 么课,但记得上周上了《 计算组成原理》的第1章 ,《大学英语》的第2课 ,...。这周会上什么课、 什么内容呢?
高速缓存的理论依据
主存块与缓存块 建立 了对应关系 未命中 主存块 未调入 缓存
主存块与缓存块 未建立 对应关系
Cache-主存储器的技术指标
设执行一段程序时, Cache存储器完成存取的次数为Nc, 主存储器完成存取的次数为Nm, Cache存储器存取周期 为Tc,主存储器为Tm ,则Cache存储器的技术指标为: ① cache的命中率: H= Nc/(Nc+Nm) ② 两级存储器的平均访问时间:
逐列
代码1多次运行的平均时间为0.25ms 代码2多次运行的平均时间为0.35ms
课程结构
高速缓冲存储器
主要内容
高速缓存的目的 高速缓存的理论依据 高速缓存的工作过程 关键问题
主存与高速缓存的地址映射 替换策略
高速缓存的目的
高速缓冲存储器
高速缓存的目的
高速缓存
CPU
主
外
存
存
高速缓冲存储器:容量小、速度快 目的是提高CPU访问存储器的效率
地址映射策略 (如何判断命中取决于映射策略) 替换策略 写策略
关键问题之一:地址映射
0
1 2
0组
3
0
4
1 2 3
5 6
1组
Leabharlann Baidu
(1)直接映射:主存中的每个块只能映7 射到
高速缓存中某固定的行;
特点:硬件简单、成本低、适合于需要大容量
高速缓存的场合。
(1) 直接映射
5
组标记
0
11
2 3
0
1 2
0组
3
4
5 6
1组
7
分析:CPU访问主存第5块的过程
(1) 直接映射
组标记
0
11
2 3
0
1 2
0组
3
4
5 6
1组
7
缺点:高速缓存空间的利用率较低;
分析:如果第5块已在高速缓存中,CPU又要访问第1块
(2)全相联映射
0
1
2
组标记
3
0
4
51
5
2 3
6
7
缺点:需要描述所有行,效率低; 改进:组相联映射!
分析:CPU访问第5块的过程
例
CPU执行一段程序时,Cache完成存取的次数为5000次,主 存完成存取的次数为200次。已知Cache存取周期为40ns, 主存存取周期为160ns。求:
(1) Cache 命中率H。 (2) 平均访问时间Ta。 (3) Cache/主存系统的访问效率e。 解:(1)命中率 H=Nc/(Nc+Nm)
程序访问的局部性 时间局部性:如果一个存储单元被访问,则可能该 单元会很快被再次访问,这称为程序访问的时间局 部性。 空间局部性:在一个较短的时间间隔内,CPU对局 部范围的存储器地址频繁访问,而对此地址范围之 外的地址访问很少;
设立高速缓存的理论依据是程序访问的局部性
主要内容
高速缓存的目的 高速缓存的理论依据 高速缓存的工作过程 关键问题
=5000/(5000+200)=0.96 (2)平均访问时间 :Ta=Tc+(1 – H)×Tm =40ns+(1 – 0.96)×160ns=46.4ns (3)访问效率 :e=Tc/Ta=(40ns/46.4ns)×100%= 86.2%
主要内容
高速缓存的目的 高速缓存的理论依据 高速缓存的工作过程 关键问题
0
1 2
0组
3
4
5 6
1组
7
对于全相联映射,有空闲行时,不需要替 换
关键问题之二:替换策略
组标记
0 1 2 3
0
1 2
0组
3
4
5 6
1组
7
对于全相联映射,无闲行时,由于映射位 置不唯一,需要按一定策略从多个候选中 选择一行替换。
Cache-主存储器的技术指标
缓存共有 R 块 主存共有 S 块 S >> R 命中 主存块 调入 缓存
主要内容
高速缓存的目的 高速缓存的理论依据 高速缓存的工作过程 关键问题
地址映射策略 (如何判断命中取决于映射策略) 替换策略 写策略
关键问题之二:替换策略
组标记
0
11
2 3
0
1 2
0组
3
4
5 6
1组
7
对于直接映射,映射位置唯一,直接替换。
关键问题之二:替换策略
组标记
0 1 2 3
补充:存储系统的层次结构
Cache-主存-辅存三级存储层次如图所示。
❖Cache由SRAM组成,容量最小,速度最快; ❖内存由DRAM组成, 容量适中,速度适中; ❖外存由磁表面存储器组成,容量最大,速度最慢; ❖各层次中存放的内容都可以在下一层次中找到。
主要内容
高速缓存的目的 高速缓存的理论依据 高速缓存的工作过程 关键问题
地址映射策略 (如何判断命中取决于映射策略) 替换策略 写策略
Cache-主存的地址映射
主存和缓存的编址
主存储器
0… 1
主存块号 字块 0 字块 1
标记
0
1
Cache
…
缓存块号 字块 0 字块 1
… …
~
2s-1
~
~~
2r-1
字块 S-1
~~
例
代码1 int a[3000][10]; for (i=0;i<3000;i++)
for(j=0;j<10;j++) { sum+=a[i][j];}
逐行
代码2 int a[3000][10];
for(j=0;j<10;j++) for(i=0;i<3000;i++) { sum+=a[i][j];}
地址映射策略 (如何判断命中取决于映射策略) 替换策略 写策略
高速缓存的工作过程
数据交换单位: •cache与主存间:块; •CPU与cache间:字。
问题1:如何判断命中?
高速缓存的工作过程
问题2:映射到哪里?
高速缓存的工作过程
问题3:替换谁?即留下谁?
主要内容
高速缓存的目的 高速缓存的理论依据 高速缓存的工作过程 关键问题