
计算机系统结构 (第10讲) 主讲人:郑纬民教授 清华大学计算机系
计算机系统结构 (第10讲) 主讲人: 郑纬民 教授 清华大学计算机系

第三章} 存储系统 现代计算机系统都以存储器为中心 在计算机运行过程中,存储器是各种 信息存储和交换的中心 3.1存储系统原理 3.2虚拟存储器 3.3高速缓冲存储器 (Cache) 3.4三级存储系统
第三章 存储系统 现代计算机系统都以存储器为中心 在计算机运行过程中,存储器是各种 信息存储和交换的中心 3.1 存储系统原理 3.2 虚拟存储器 3.3 高速缓冲存储器 (Cache) 3.4 三级存储系统

3.3高速缓冲存储器(Cache) 3.3.1基本工作原理 3.3.2地址映象与变换方法 3.3.3 Cache替换算法及其实现 3.3.4 Cache的一致性问题 3.3.5 Cache的预取算法
3.3 高速缓冲存储器(Cache) 3.3.1 基本工作原理 3.3.2 地址映象与变换方法 3.3.3 Cache替换算法及其实现 3.3.4 Cache的一致性问题 3.3.5 Cache的预取算法

Cache存储系统与虚拟存储系统比较 存储系统 Cache 虚拟存储器 要达到的目标 提高速度 扩大容量 实现方法 全部硬件 两级存储器速度比 3~10倍 10倍 页块)大小 1~16字 1KB~16KB 等效存储容量 主存储器 虛拟存储器 透明性 对系统和 仅对应用 应角序损 程序员 不命中时处理方式等待主存储器 任务切换
存储系统 两级存储器速度比 Cache 虚拟存储器 要达到的目标 提高速度 扩大容量 实现方法 全部硬件 软件为主 硬件为辅 3~10倍 105倍 页(块)大小 1~16字 1KB~16KB 等效存储容量 主存储器 虚拟存储器 透明性 对系统和 应用程序员 仅对应用 程序员 不命中时处理方式 等待主存储器 任务切换 Cache存储系统与虚拟存储系统比较

3.3.1基本工作原理 主存地址 来自CPU 块号B块内地址W 存/Cache 未命中 地址变换 已满 未满 命中 块号b块内地址w Cache替 主存 换策略 储器 替换块 Cache 装入顷 数据送CPU
3.3.1 基本工作原理 块号B 块内地址W 主存/Cache 地址变换 块号b 块内地址w Cache Cache替 换策略 储器 主存 替换块 装入块 已满 未满 未命中 命中 数据送 CPU 主存地址 来自CPU

3.3.2地址映象与变换方法 地址映象: 把存放在主存中的程序按照某种规则装 入到Cache中,并建立主存地址与Cache 地址之间的对应关系 地址变换: 当程序已经装入到Cache2之后,在实际运 行过程中,把主存地址变换成Cache地址 在选取地址映象方法要考虑的主要因素: 地址变换的硬件容易实现;地址变换的 速度要快;主存空间利用率要高:发生 块冲突的概率要小
3.3.2 地址映象与变换方法 地址映象: 把存放在主存中的程序按照某种规则装 入到Cache中,并建立主存地址与Cache 地址之间的对应关系 地址变换: 当程序已经装入到Cache之后,在实际运 行过程中,把主存地址变换成Cache地址 在选取地址映象方法要考虑的主要因素: 地址变换的硬件容易实现;地址变换的 速度要快;主存空间利用率要高;发生 块冲突的概率要小

1、全相联映象及其变换 映象规则:主存中的任意一块都可以映象 到Cache中的任意一块。 如果Cachel的块数为Cb,主存的块数为M, 映象关系共有:CXM,种。 用硬件实现非常复杂 在虚拟存储器中,全部用软件实现
1、全相联映象及其变换 映象规则:主存中的任意一块都可以映象 到Cache中的任意一块。 如果Cache的块数为Cb,主存的块数为Mb, 映象关系共有:Cb×Mb种。 用硬件实现非常复杂 在虚拟存储器中,全部用软件实现

块0 块0 块1 块1 块i 块Cb-1 Cache 块M,-1 主存储器 全相联映象方式
块0 Cache 块1 …… 块Cb -1 块0 块1 …… 块i …… 块Mb -1 主存储器 全相联映象方式

主存地址 块号B 块内地址 块号b 块内地址W 命中 Cache地址 相联比较 B 主存块号B Cache块号b有效位 目录表(由相联存储器组成,共Cb个字
有效位 主存地址 块号B 块内地址 目录表(由相联存储器组成,共Cb个字) 主存块号B B 块号b 块内地址w Cache块号b b 相联比较 命中 Cache地址

2、直接映象及其变换 映象规则:主存中一块只能映象到Cache的 个特定的块中。 计算公式:b=B mod Cb,其中: b为Cachel的块号, B是主存的块号, Cb是Cache的块数。 整个Cache地址与主存地址的低位部分完全 相同
2、直接映象及其变换 映象规则:主存中一块只能映象到Cache的 一个特定的块中。 计算公式:b=B mod Cb,其中: b为Cache的块号, B是主存的块号, Cb是Cache的块数。 整个Cache地址与主存地址的低位部分完全 相同