§3 高速缓冲存储器(Cache) 工作原理和基本结构 地址映象与变换 Cache存储器的LRU替换算法的硬件实现

Slides:



Advertisements
Similar presentations
因数与倍数 2 、 5 的倍数的特征
Advertisements

第五章 存储系统 5.1 存储器的构成 5.2 存储系统的构成 5.3 Cache 5.4 虚拟存储器.
第6章 存储系统 6. 1 存储器的分类与性能评价 6. 2 存储器访问的局部性原理与 层次结构存储系统 6. 3 半导体存储器
计算机系统结构 西南林业大学计信学院 邢丽伟.
计算机系统结构 (第9讲).
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
第7章 存储系统.
門神 在傳統觀念中,門是居住環境中與外界相通的出入口,具有重要的屏障作用。門神顧名思義就是護宅守門的神仙,每逢過年,上至天子百官下至普通百姓,家家戶戶必在門上張貼門神,以保一家平安。 門神種類主要有宅第大門上將軍武門神、內室門戶上祈福文門神,還有童子門神、仙子門神等,形象豐富多樣,皇家貴戚還往往在畫上瀝粉貼金,十分吉祥喜慶。
计算机系统结构 第五章 存储系统.
第 6 章 存储系统 ——本章主要介绍三级存储体系的含义,及存储器的逻辑设计方法。
第3章 存储系统.
证券投资技术分析.
第三章 存储系统 现代计算机系统都以存储器为中心 在计算机运行过程中,存储器是各 种信息存储和交换的中心。
实用操作系统概念 张惠娟 副教授 1.
第五章 存储层次 5.1 存储层次结构 5.2 Cache基本知识 5.3 降低Cache失效率的方法 5.4 减少Cache失效开销
5.5 减少命中时间 容量小、结构简单的Cache 第五章 存储层次
层次结构存储系统 主要教学目标 理解CPU执行指令过程中为何要访存 理解访存操作的大致过程及涉及到的部件 了解层次化存储器系统的由来及构成
第五章 存储层次 5.1 存储器的层次结构 5.2 高速缓冲存储器基本知识 5.3 降低Cache不命中率的方法
第 4 章 主存储器与存储体系 计算机的工作依赖于存储器中的程序和数据,存储器的容量和性能对于整个系统的性能至关重要。 本章教学内容
计算机组成原理第四章 知识点一:存储系统层次结构和评价方法 主讲教师:吴非.
Cache综合应用案例 某计算机的主存地址空间大小为256 MB,按字节编址。指令Cache和数据Cache分离,均有8个Cache行,每个Cache行大小为64 B,数据Cache采用直接映射方式。现有两个功能相同的程序A和B,其伪代码如下所示: 程序A: int a[256][256]; …… int.
2-7、函数的微分 教学要求 教学要点.
计算机系统结构 南京航空航天大学 计算机科学与技术学院 主讲:刘佳
计算机基础知识 丁家营镇九年制学校 徐中先.
3.1 存储器的构成 3.2 存储系统的构成 3,3 Cache 3,4 虚拟存储器
第 5 章 存 储 器 中国科学技术大学 何克东.
周学海 , 中国科学技术大学 2018/11/11 计算机体系结构 周学海 , 中国科学技术大学 中国科学技术大学.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
第3章 存储系统 现代计算机系统以存储器为中心 3.1 存储系统原理 3.2 虚拟存储器 3.3 高速缓冲存储器(Cache)
存储系统.
走进编程 程序的顺序结构(二).
元素替换法 ——行列式按行(列)展开(推论)
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
数 控 技 术 华中科技大学机械科学与工程学院.
1-6 章知识点汇总 曲冠南
Windows网络操作系统管理 ——Windows Server 2008 R2.
computer organization principle
计算机数学基础 主讲老师: 邓辉文.
逆向工程-汇编语言
CPU结构和功能.
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
微机系统的组成.
线段的有关计算.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
WPT MRC. WPT MRC 由题目引出的几个问题 1.做MRC-WPT的多了,与其他文章的区别是什么? 2.Charging Control的手段是什么? 3.Power Reigon是什么东西?
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
微机原理与接口技术 课程性质:专业技术必修课程 课程的特点:偏重硬件,软硬件结合 先修课程:导论、数字逻辑、组成原理、汇编语言等
复习.
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
定理21.9(可满足性定理)设A是P(Y)的协调子集,则存在P(Y)的解释域U和项解释,使得赋值函数v(A){1}。
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
7.5 介质中的磁场 磁介质—— 放入磁场中能够显示磁性的物质 电介质放入外场 磁介质放入外场 反映磁介质对原场的影响程度
3.1私有内存的分配.
临界区问题的硬件指令解决方案 (Synchronization Hardware)
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第二节 函数的极限 一、函数极限的定义 二、函数极限的性质 三、小结 思考题.
本节内容 Windows线程切换_时钟中断切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
Google的云计算 分布式锁服务Chubby.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
第四节 向量的乘积 一、两向量的数量积 二、两向量的向量积.
第十七讲 密码执行(1).
插入排序的正确性证明 以及各种改进方法.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
第四章 存储子系统 西南石油大学计算机科学学院 主讲教师 杨 梅 联系电话:
§4.5 最大公因式的矩阵求法( Ⅱ ).
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
Presentation transcript:

§3 高速缓冲存储器(Cache) 工作原理和基本结构 地址映象与变换 Cache存储器的LRU替换算法的硬件实现

为什么要使用Cache? 用以弥补主存速度的不足。 CPU速度与主存速度相差很大(例如,一般的DRAM的工作速度比CPU慢100倍以上。 Cache工作速度很高,可以将其集成到CPU内。高性能CPU通常用两级Cache,一级在CPU内,其容量比较小,速度很快,第二级在主板上,容量比较大,速度比第一级低5倍左右。 Cache全部用硬件调度对所有程序员都是透明的。 Cache与主存储器之间以块为单位进行数据交换。块的大小通常以在主存储器的一个存储周期内可以访问到的数据长度为限。

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

主存 块号 块内地址 主存-Cache 地址映象变换机构 Cache 替换 策略 来自处理机 主存地址 地址 访主存 替换Cache 去处理机 直接通路 单字宽 多字宽 已 装 不 进 还 可 入 不命中 命中 高速缓冲存储器Cache

基本结构 把主存和Cache机械等分成相同大小的块(行),块比页小得多; 访问Cache的时间时访问主存时间的1/4到1/10; Cache和CPU是同类型的半导体器件; Cache-主存间的地址映像和变换,以及替换、调度算法用硬件实现,对应用程序员透明,也对系统程序员透明;

基本结构(续) Cache在物理位置上靠近CPU,不在主存,减少传输延迟; 除Cache到处理机的通路外,还设有主存到处理机的通路,因此,Cache既是Cache-主存存储层次中的一级,又是处理机和主存的一个旁视存储器; 有Cache的主存系统都采用多体交叉存储器; 应尽量提高Cache的访主存的优先级;

地址映象与变换 地址映象:是将每个主存块按某种规则(算法)装入(定位于)Cache,并建立主存地址与Cache地址之间的对应关系。 地址变换:是主存块按照这种映象关系装入Cache后,每次访Cache,如何将主存地址变换成Cache地址。 在选取地址映象方法要考虑的主要因素: 地址变换的硬件容易实现; 地址变换的速度要快; 主存空间利用率要高; 发生块冲突的概率要小

四种方式 全相联映象与变换 直接映象与变换 组相联映像与变换 段相联映象

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

相联目录表法 变换过程,如下图。 特点: 冲突概率低 空间利用率高 地址变换复杂

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

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

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

变换过程,如下图。 特点: 硬件简单 冲突概率高 出现大量空闲块 很少使用。

块0 Cache 块1 …… 块Cb-1 主存 储器 直接相联映象方式 块Cb 块2Cb-1 块Mb-Cb 块Mb-1 区0 区1 区Me-1

地址变换过程 用主存地址中的块号B去访问区号存储器 把读出来的区号与主存地址中的区号E进行比较 比较结果相等, 且有效位为1, 则Cache命中 比较结果相等, 有效位为0, 表示Cache中的这一块已经作废 比较结果不相等, 有效位为0, 表示Cache中的这一块是空的 比较结果不相等, 有效位为1, 表示原来在Cache中的这一块是有用的

有效位 区号E 块内地址w 1 主存 地址 区表存储器 区号E (按地址访问) E 块号b 命中 Cache地址 块号B 相等比较 块失效 比较相等且 有效位为1, 访问Cache

提高Cache速度的一种方法: 直接映象方法的主要优点: 直接映象方式的主要缺点: 把区号存储器与Cache合并成一个存储器 硬件实现很简单, 不需要相联访问存储器 访问速度也比较快, 实际上不做地址变换 直接映象方式的主要缺点: 块的冲突率较高

有效位 区号E 块内地址w 1 按地址访问的Cache 区号 E 块号b 相等 块号B 相等比较 访主存 数据0 D0 数据1 D1 …… 数据w-1 Dw-1 1/w … 送CPU

组相联映像与变换 定义及规则:各组之间是直接映象,组内各块间是全相联映象。 变换过程,如下图。 讨论: S=nv时,全相联映像; 当主存空间和Cache空间确定时,q+s已确定; s值大,组内页数多,冲突概率小,变换复杂; s值小,组内页数少,冲突概率大,变换简单;

组内块号s’ 区号nd 块内地址W 主存 地址 块表 nd区号,组内块号s 相联比较 (s个块) 块内地址w 相等 Cache地址 组内块号s 相联比较 不等 组号q 组号q’

组相联映象方式的缺点: 实现难度和造价要比直接映象方式高 地址变换过程: 用主存地址的组号G按地址访问块表存储器 组相联映象方式的优点: 块的冲突概率比较低 块的利用率大幅度提高 块失效率明显降低 组相联映象方式的缺点: 实现难度和造价要比直接映象方式高 地址变换过程: 用主存地址的组号G按地址访问块表存储器 把读出来的一组区号和块号与主存地址中的区号和块号进行相联比较 如果有相等的,表示Cache命中 如果没有相等的,表示Cache没有命中

段相联映象 减少相联目录表的容量,降低成本,提高地址变换速度。 组间全相联,组内直接映象。

替换算法的实现 常采用LRU算法,LRU算法是堆栈型算法 由于Cache的调块时间是微秒级,不能采用程序换道 替换算法全部采用硬件途径实现

堆栈法 (块号) 近期最近访问 过的块号 近期最久没有 访问的块号 需重新排序的块号 都下推一行 被访问的块号 (经相联比较找到)

比较对法 让各个块成对组合,用一个触发器的状态表示该比较对内两块访问的远近次序,再经门电路就可找到LRU块。 适用于组内块数较少的组相联映像Cache。 & TAB TAC TBC 访问B 访问C 访问A 1

替换算法的设计要考虑的问题 如何对每次访问进行纪录(适用位法、堆栈法、比较对法所用的记录方法都不同) 如何根据所纪录的信息来判定近期内哪一块是最久没有被访问过的 Cache替换算法的主要特点: 全部用硬件实现

Cache存储器的透明性及性能分析 Cache的透明性 Cache的取算法 Cache存储器性能分析

Cache的透明性和一致性问题 由于Cache存储器的地址变换和块替换算法全由硬件实现,因此Cache-主存存储层次对应用程序员和系统程序员都是透明的。 本节讨论的内容仅限于单处理机、单存储器 造成Cache与主存的不一致的原因: 由于CPU写Cache,没有立即写主存 由于IO处理机或IO设备写主存

CPU X’ I/O X Cache 主存储器 (a) CPU写Cache (b) I/O写主存 Cache与主存不一致的两种情况

Cache的透明性 写回法(抵触修改法,WB):是在CPU执行写操作时,信息只写入Cache,仅当需要被替换时,才将以被写入过的Cache块先送回主存,然后再调入新块。 写直达法(直达法,WT):利用Cache—主存存储层次在处理机和主存之间的直接通路,每当处理机写入Cache的同时,也通过此通路直接写入主存。

写回法与写直达法的优缺点比较 可靠性,写直达法优于写回法 与主存的通信量,写回法少于写直达法 例如:写操作占总访存次数的20%, Cache命中率为99%, 每块4个字。当Cache发生块替换时, 有30%块需要写回主存, 其余的因未被修改过而不必写回主存。则对于WT法, 写主存次数占总访存次数的20%。而WB法为(1-99%) *30%*4=1.2%。因此, WB法与主存的通信量要比WT法少10多倍。

写回法与写直达法的优缺点比较 控制的复杂性:写直达法比写回法简单 硬件实现的代价:写回法要比写直达法好 采用何种算法与适用场合有关 单处理机(节省成本):写回法 共享主存的多处理机(保证信息交换可靠):写直达法

目前,在写回法中采用按写分配法,在写直达法中采用不按写分配法。 写Cache的两种方法: 不按写分配法:在写Cache不命中时,只把所要写的字写入主存。 按写分配法:在写Cache不命中时,还把一个块从主存读入Cache。 目前,在写回法中采用按写分配法,在写直达法中采用不按写分配法。

Cache的取算法 按需取进法:出现Cache块失效时,才将要访问的字所在的块(行)取进。 预取法 采用预取法并非能提高命中率,其他因素 恒预取:只要访问到主存第i块的某个字,不论Cache是否命中,恒发预取命令。 不命中时预取:近当访问第i块不命中时,才预取命令。 采用预取法并非能提高命中率,其他因素 块的大小 预取开销

说明 采用缓冲器技术是减少预取干扰的好办法 模拟结果表明 恒预取法使不命中率降低75%--80% 不命中率时预取法使不命中率降低30%--40% 但前者所引起的Cache、主存间传输量的增加要比后者大得多。

Cache存储器性能分析 不命中率与Cache的容量、组的大小和快的大小的关系 Cache-主存存储层次的等效速度与命中率的关系推导

块的大小、组的大小与Cache容量对Cache命中的影响 不命中率 1-Hc Cache容量 组的大小一定 块的大小减小 不命中率 1-Hc Cache容量 块的大小一定 组的大小减小 块的大小、组的大小及Cache容量增大时都能提高命中率

Cache-主存存储层次的等效速度与命中率的关系推导 设:tc 为Cache的访问时间, tm为主存周期, Hc为访Cache的命中率。 则:Cache的等效存储周期 ta= Hc tc+(1- Hc) tm 因为:主存与CPU之间有直接通路,因此CPU对第二级的访问时间就是tm。

(续) 速度提高倍数是: 因为Hc总小于1,可以令

分析 由于 因此 不管Cache本身的速度有多高,只要Cache的命中率有限,那么采用Cache-主存存储层次后,速度能提高的最大值是有限的,不会超过

举例 Hc=0.5,α=1 ρ的最大值<2 Hc=0.75, α=3 ρ的最大值<4 Hc=1, Hc ρ的期望值 1 0.5 0.25 0.75 2 4 8 Hc=0.5,α=1 ρ的最大值<2 Hc=0.75, α=3 ρ的最大值<4 Hc=1,

举例 由于Cache的命中率一般比0.9大的多,可达0.996,因此ρ接近于所期望的tm/tc Hc受Cache容量的影响很大。 容量为4kb时,Hc=0.93 容量为8kb时,Hc=0.97

举例 因此在tm/tc=0.12时 4KB的Cache,速度的倍数是 8KB的Cache,速度的倍数是 增加4KB容量,带来层次速度的提高:

Cache的容量对机器速度的关系 机器速度的单位是MIPS(每秒执行百万条指令) 主存采用多体交叉存取 机器速度 (MIPS) 10 20 30 200 400 600 800 1000 主存访问 时间(ns) 无Cache 10ns 4k 10ns 64k 40ns 16k 10ns 64k 20ns 64k 10ns Cache CPU 容量 拍宽

续 主存速度和CPU周期一定时,Cache容量变化,机器速度变化。 Cache容量4KB,CPU拍宽10ns,主存周期1μs,机器速度约为5MPIS 同样条件下,Cache容量增加到64KB,机器速度可能达15MPIS 没有Cache时,机器速度可能只有2MIPS

续 Cache容量的增大,可以显著降低对主存速度的要求 要达到机器速度为15MIPS,对于10ns的CPU拍宽、4KB容量的Cache,要求主存访问周期为200ns Cache容量增达到64KB时,主存周期可以降低到1μs

§4 Cache--主存--辅存存储层次 在大部分计算机系统中,既有虚拟存储器,也有Cache存储系统。 存储系统可以有多种构成方法 不同的构成只是实现技术不同

Cache Ý系统程序员看 主存储器 速度接近Cache 的速度,存储容 量是主存的容量 每位价格接近主 存储器 Cache存储系统

主存 储器 Ý应用程序员看 磁盘 存储器 速度接近主存储 器的速度,存储 容量是虚拟地址 空间,每位价格 接近磁盘存储器 虚拟存储系统 Cache 主存储器 磁盘存储器 一种三级存储系统 一种新的二级存储系统

存储系统的几种组织方式 CPU 虚拟 地址 MMU Cache 主存 储器 物理 地址 数据或指令 物理地址

存储系统的几种组织方式(续) 物理 地址 虚拟地址 MMU CPU 主存 储器 数据 或指令 Cache 数据或指令 一个存储系统组织方式:虚拟地址Cache存储系统;如Intel公司的i860等处理机采用这种组织方式。 CPU 虚拟地址 MMU Cache 主存 储器 数据或指令 物理 地址 数据 或指令 全Cache系统。没有主存储器,Cache-磁盘存储系统。

主存保护(选讲)

小结 存储系统与存储体系 并行主存频宽的分析 存储体系的性能参数 虚拟存储器的管理方式 四种地址映像与变换的含义与区别 Cache的工作原理