计算机组成原理 Cache超仔细详解 期末一遍过

5 篇文章 15 订阅
订阅专栏

一.为什么要使用Cache(什么是Cache)?

  • 我们都知道,CPU主频的提升会带动系统性能的改善,但系统性能的提高不仅取决于CPU,还与系统架构、指令结构、信息在各个部件之间的传送速度及存储部件的存取速度等因素有关,特别是CPU与主存之间的存取速度有关
  • 若CPU工作速度特别高,但内存存取速度相对较低,则造成CPU等待,降低处理速度,一定程度上是在浪费CPU的能力。
  • 由以上两点,我们得知要想进一步改善计算机系统的性能,就应该减少CPU与内存之间的速度差异,所以我们可以在慢速的DRAM和快速的CPU之间插入一至多级的速度较快、容量较小的SRAM起到缓冲作用;使CPU既可以较快地存取主存中的数据,又不使系统成本上升过高,这就是Cache法
    Cache的作用

二.Cache采用的程序访问的局部性原理

1.程序访问的局部性原理是什么?

  • 程序访问的局部性:在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内,这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的一种现象。
    程序访问的局部性原理
  • 程序访问的局部性原理和Cache的关系:利用程序访问的局部性原理,可以在主存和CPU的通用寄存器之间设置Cache,把正在执行的指令地址附近的一部分指令或数据从主存调入这个寄存器,供CPU在一段时间内使用,从而提高CPU访问存储系统的速度。当程序继续执行时,程序访问的局部性原理也不断变化,新的数据将不断地从主存调入Cache中替换掉原有的数据。

三.Cache的工作原理

1.主存地址的划分

在这里插入图片描述

  • 为了方便比较和快速查找,Cache和主存都被分成了若干大小相同的块,每块又包含若干个字。显然Cache分块数远远小于主存的分块数。
  • 上述地址中不同字段的作用分别如下:
  • 主存块地址:是CPU访问主存单元地址按块大小划分后得到的一个地址,用于标识CPU所访问的主存单元所在的主存块号。通过该地址可以缩小查找的范围。
  • 块内偏移地址:又称块内地址,表示CPU所要访问的单元在某块的偏移值,找到数据所在的块后,根据该值可以定位CPU要访问的具体单元。
  • 索引:即作为Cache存储体的地址指示器,指出CPU访问Cache存储体的范围,如指定Cache的某一行或某几行。
  • 标记:标记也是对主存块地址进一步划分后得到的更细粒度的地址,作为判断CPU所要访问的内容是否在Cache中的依据。

2.Cache的基本结构

Cache的结构主要包括3部分:

  • 数据存储体:用于存放主存数据的副本。
  • 标记存储体:用于存放标记,不同类型的映射方式标记位数不同。因此,所需要的标记存储体的容量也不同。
  • 有效位:用来标识存放在Cache中的数据是否有效,CPU查找Cache以及Cache更新时都需要使用有效位。

在这里插入图片描述

3.Cache的组织及CPU访问Cache的流程

在这里插入图片描述

  • 该图为CPU在不同情况下访问Cache的流程,下面我们以读操作为例,将对其进行进一步的详细分析。
  • Cache命中的流程:
    (1)对CPU访问存储器的地址进行逻辑划分,从而得到标记、索引、块内地址。
    (2)按照索引字段的值我们从Cache标记存储体的特定单元读出标记值,并与(1)中的标记值进行比较。
    (3)若比较结果相同(命中),则形成Cache地址。
    (4)根据形成的Cache地址访问Cache数据存储体,其中标记部分定位访问数据存储体的范围,而块内地址在该范围内找到所要访问的访问单元
    (5)从Cache读出的信息送至CPU。
  • Cache不命中的流程:
    (1)对CPU访问存储器的地址进行逻辑划分,从而得到标记、索引、块内地址。
    (2)按照索引字段的值我们从Cache标记存储体的特定单元读出标记值,并与(1)中的标记值进行比较。
    (3)比较结果不同(称为不命中),说明CPU所要的访问单元不在Cache中,则进入Cache替换策略中。
    (4)若Cache数据存储体内已满,则将Cache数据存储体中某单元的数据块交换到主存中 ,被换出数据的单元地址也由索引字段指出;若Cache数据存储体内未满,则将信息从主存中调入Cache的数据存储体内,存放的位置与映射方法有关,任由索引字段指出。
    (5)从主存向Cache数据存储体调入数据块后,同时将CPU访问单元的信息直接送至CPU。
    (6)更新Cache标记存储体内特定单元的标记,单元的地址与采用的地址映射方式有关,任由索引字段指出。

4.Cache的命中率计算详解

为了评价Cache系统的效果,引入命中率的概念。

  • 设Nc为某程序在运行过程中命中Cache的次数,Nm为从主存中访问信息的次数,则命中率(hit radio)H定义为:
    在这里插入图片描述
    • 1-H为丢失率(miss radio),或称为未命中率。若以Tc表示命中时Cache的访问时间Tm表示未命中时访问主存的时间,则Cache/主存系统的平均访问时间Ta为:
      在这里插入图片描述
    • 设计高速缓冲存储器的目的是以较小的硬件开销使 Cache/主存系统的平均访问时间Ta越接近Tc越好。若以E=Tc/Ta作为访问效率,则有:
      在这里插入图片描述其中r=Tm/Tc,表示主存访问时间与Cache访问时间的倍数。
    • 我们不难看出,存储系统的访问效率主要与H和r有关,命中率H越接近1,E越高,另外r的值不能太大,一般为5~10左右。

四.Cache的地址映射及变换方法

1.什么是Cache的地址映射?

  • 地址映射是指把主存地址空间映射到Cache的地址空间,即把存放在主存中的程序或数据按照某种规则装入Cache,并建立两者之间地址的对应关系。

2.什么是Cache的地址变换?

  • 地址变换是指在程序运行时,根据地址映像函数把主存地址变换成Cache地址。地址映射与变换方法有关,不同的地址映射方法具有不同的地址变换方法。

3.三种地址映射方法:

(1)全相联映射

在这里插入图片描述在这里插入图片描述在这里插入图片描述

(2)直接映射

在这里插入图片描述在这里插入图片描述在这里插入图片描述

(3)组相联映射

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

五.Cache的三种替换算法

1.先进先出(FIFO)

FIFO算法选择最早调入Cache的字块进行替换,它不需要记录各字块的使用情况,比较容易实现,开销小,但没有根据访存的局部性原理,故不能提高Cache的命中率。因为最早调入的信息以后可能还要用到。

2.近期最少使用(LRU)和最不经常使用(LFU)

LRU将近期内长久未被访问过的行换出。为此,每行设置一个计数器,Cache每命中一次,命中行计数器清零,其他各行计数器增1,因此它是未访问次数计数器,能有效提高Cache命中率。
LFU是将一段时间内被访次数最少的那行数据换出,每行设置一个计数器,新调入行的数据从0开始计数,每访问一次计数器加一。但是,LFU的不足是无法严格反映近期访问情况,若特定行中的A、B两行,A在前期被频繁访问而后期未被访问,而B在前期未被访问而后期被频繁访问,则B有可能因为计数小于A而被替换。

3.随机法

随机法就是随机地确定被替换的块,这种方法实现最容易,但是不能提高Cache的命中率,在有的情况下甚至会降低命中率。

计算机组成原理Cache的基本概念和原理
02-03
计算机组成原理Cache的基本概念和原理
头歌计算机组成原理2路组相联cache设计
12-04
头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cac
深度解析:cache的基本概念原理扫盲
最新发布
鸽芷咕的博客
03-11 8402
VIPT和PIPT的原理,基本也都是一样的,只是硬件查询时稍微有一丁点的区别,在后续讲cache查询时会再次介绍。 那么,你还学什么VIVT?你为什么还要去理解VIVT的原理?你为什么还要去分析cache同名、重名的问题?
寄存器以及偏移地址计算方法
jiayoudangdang的博客
12-18 2万+
最近又是临近期末ε=(´ο`*)))但是还不想复习(*^▽^*)。 什么是寄存器? 给有特定功能的内存单元取一个别名,这个别名就是我们经常说的寄存器,这个给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射。 什么叫存储器映射? 给存储器分配地址的过程叫存储器映射,再分配一个地址叫重映射。 偏移地址以及如何计算: 偏移地址是计算机里的内存分段后,在段内某一地址相对于段首地址...
计算机组成原理——主存与cache的地址映射学习
adminguojieBin的博客
07-10 1万+
主存与cache的地址映射 地址映射方式有全相联映射方式,直接映射方式,组相联映射方式三种。 全相联映射方式: 主存数2s 大小2w个字 主存地址长度 s+w 位 将主存的一个的地址与的内容一起存于cache的行中,地址作为cache的标志。 ​ 直接映射方式: 主存地址长度s+w位 cache的行数=m=2r 把主存地址变为 低r位主存区内号作为cache的行地址 高s-r位区号作为标记与数据一起保存在该行。 ​ CPU给定一个内存地址访问cache时,
Cache的工作原理
jklinqing007的专栏
05-11 1918
高速缓冲存储器是存在于主存与CPU之间的一级存储器, 由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多, 接近于CPU的速度。 Cache的功能是用来存放那些近期需要运行的指令与数据。目的是提高CPU对存储器的访问速度。为此需要解决2个技术问题:一是主存地址与缓存地址的映象及转换; 二是按一定原则对Cache的内容进行替换。 主要由三大部分组成: Cache存储体:存放由主
计算机组成原理 | Cache与主存的地址映射计算(笔记)
04-19 1万+
全相联映射 (fully-associated) —— 各主存都可以映射到cache的任意数据。 直接相联映射(direct mapped) —— 每一个主存地址只可以映射到cache的固定行。 组相联映射(set-associated) —— 在组间采用直接映射,在组内采用全相联映射。...
mysql 偏移量是什么_数据内部偏移量的基本计算方法
weixin_36403106的博客
01-27 891
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/32715157 BASE的计算方法为: gyj@ZMDB select * from v$type_size where component in (KCB,KTB);COMPONEN TYPE DESCRIPTION TYPE_SIZE-------- -------- ---------...
基地址和偏移地址
u010783226的专栏
02-03 8333
首先必须明白 cpu和内存的区别 cpu 中央处理器 内存是物理数据存放的地方 cpu不直接存放数据而是通过内存来存放数据 cpu和内存之间通过20条地址总线相连接,地址总线就是cpu通过地址找到对应的内存的物理数据的传递工具 计算机只能处理0,1 二进制数据 每一条线可以处理 0,1 两种类型数据 所以20根线的 总共能拥有 2^20=1048576个不相同的地址 也就是能搜索 1048576个地址范围内的内存 那么 一个地址代表一个存储单元 一个存储单元能够存储 1byte数据 那么也就
Cache存储系统的地址映象及变换方法精讲
weixin_51712663的博客
05-30 3518
Cache存储系统的地址映象及变换方法精讲
计算机组成原理Cache写策略
02-04
计算机组成原理Cache写策略是计算机组成原理中的一個重要概念,涉及到Cache和主存之间的数据一致性问题。当CPU对Cache进行写操作时,需要解决Cache和主存之间的数据一致性问题,这就需要 Cache 写策略。Cache 写...
计算机组成原理Cache替换算法
02-04
Cache替换算法是计算机组成原理中的一种重要算法,用于解决Cache溢出的问题。Cache溢出是指Cache被装满之后,需要选择一个进行替换,以便让新的主存进入CacheCache替换算法的选择取决于地址映射方式,全相联...
计算机组成原理Cache和主存的映射方式
02-03
Cache 和主存的映射方式是计算机组成原理中的一個重要知识点。为了提高计算机的性能,Cache 和主存之间需要一种合适的映射方式,以便快速地访问数据。在本节中,我们将学习三种不同的映射方式:全相联映射、直接映射...
计算机组成原理第五章-有关cache的计算
qq_51325402的博客
12-07 5646
书上的公式太麻烦了,又总是搞不明白啥是n,啥是m,这里理解过后重新总结一下: 标记域=32(地址位数)-(n是cache数)-(m是cache大小)-2(偏移量) 总位数=cache数*(大小*地址位数+标记域+1) 注:4KiB=1024(2^10)个字 例题: 假设一个直接映射的cache,有16KiB的数据,大小为4个字,地址为32位,那么该cache为多少位? 解: 16KiB=2^12个字, 大小=4(2^2)个字, 需要数=16KiB/4=2^10个
【软考学习6】计算机存储结构——局部性原理、Cache、主存地址单元、磁盘存取、总线和可靠性
Designer 小郑的技术博客
08-31 2445
本文对软考计算机存储结构进行了学习,包括存储结构概论、局部性原理、Cache 高速缓存、主存地址单元、磁盘存取、计算机总线和串并联的系统可靠性。
cache】图解主存与cache的地址映射方式
qq_59256973的博客
11-23 1486
教材上大段的文字清楚但不直观,老师讲的有点点快,自己课下做了点整理,如有纰漏,麻烦大家评论区指出。废话不多说,开始啦!主存与cache的地址映射方式有3种。
计算机组成原理硬件开销怎么算,计算机组成原理 (6).ppt
weixin_33302195的博客
07-15 299
计算机组成原理 (6).ppt (13页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!15.9 积分第五节 主机和外部设备的信息交换3.5.1 主机和外设的连接方式1.辐射式 主机I/OI/OI/O早期:不易扩展 主机 接口 接口I/OI/OI/O现在:便于扩展2.总线式 主机 接口 接口I/O I/O I/O便于扩展总线3.通道式 主机 通道 通道I...
Cache性能分析例题3:平均访存时间和CPU时间的计算
hanmo22357的博客
11-09 3481
因为CPU的速度直接与Cache命中的速度紧密相关,所以对于组相联Cache,由于多路选择器的存在而使CPU的时钟周期增加到原来的1.35倍。对于Cache的性能和CPU的性能,可以用Cache的平均访存时间和CPU时间来进行衡量。(3)命中时间为1个时钟周期,直接映像Cache的失效率为2.1%,2路组相联Cache的失效率为1.9%。本题中直接映像Cache的时钟周期根据(2)可知,为0.35ns,而2路组相联Cache的时钟周期由(4)可知是直接映像Cache的1.35倍,因此也可以计算。
华中科技大学计算机组成原理慕课答案
热门推荐
qq_43663263的博客
01-26 8万+
一、单项选择题 1、下列说法中,错误的是( B ) A.固件功能类似软件,形态类似硬件 B.寄存器的数据位对微程序级用户透明 C.软件与硬件具有逻辑功能的等效性 D.计算机系统层次结构中,微程序属于硬件级 2、完整的计算机系统通常包括( A ) A.硬件系统与软件系统 B.运算器、控制器、存储器 C.主机、外部设备 D.主机和应用软件 3、CPU地址线数量与下列哪项指标密切相关( ...
计算机组成原理cache
12-04
计算机组成原理中的Cache是一种高速缓存,用于存储CPU最近访问的数据和指令。Cache的设计是为了解决CPU访问主存速度慢的问题。Cache通常被分为多个,每个可以存储一个或多个字(通常是4个或8个字)。Cache的访问速度比主存快得多,因此,当CPU需要访问数据时,它首先会检查Cache中是否存在该数据。如果存在,则称为Cache命中,CPU可以直接从Cache中读取数据。如果不存在,则称为Cache未命中,CPU必须从主存中读取数据,并将其存储到Cache中以备将来使用。 Cache的设计通常采用多路组相联的方式。这意味着每个可以存储多个字,并且Cache被分为多个组。当CPU需要访问数据时,它会首先计算出数据所在的组,并检查该组中是否存在该数据。如果存在,则称为组命中。如果不存在,则称为组未命中,CPU必须在该组中选择一个进行替换,并从主存中读取数据。 Cache的设计需要考虑多个因素,例如Cache的大小、的大小、组的数量、替换策略和写入策略等。这些因素的选择会影响Cache的性能和成本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 华中科技大学计算机组成原理慕课答案 80791
  • 计算机组成原理 Cache超仔细详解 期末一遍过 19392
  • 动态规划(DP)经典简单入门题目集 10389
  • 2019厦门理工学院计算机组成原理期中考试题答案 8435
  • 数据结构第三章 栈和队列题目答案 7707

分类专栏

  • 常用数学函数及代码 2篇
  • CCCC天梯赛 11篇
  • 数字图像处理MATLAB实验 21篇
  • 蓝桥杯、天梯赛基础通用模板 12篇
  • LeetCode 32篇
  • AcWing每日一题 7篇
  • 操作系统 1篇
  • 数据结构 22篇
  • 计算机组成原理 5篇
  • 洛谷 3篇

最新评论

  • 数字图像处理学习笔记(一):图像的放大、缩小

    无情的菜鸟: 真的皮

  • 数字图像处理学习笔记(三):图像的求平均、减法求前景、乘法求感兴趣区域、旋转

    m0_46605296: 作者好棒啊!!!就是请问有指纹钱币的原图吗?

  • 数字图像处理学习笔记(七)锐化滤波:Sobel算子、Canny算子、拉普拉斯算子

    Jeremmey: 这是边缘检测,不是锐化哦,帖主又涨姿势了~~

  • C++模拟手机通信录管理系统

    普通网友: 我用的是VS2010也不影响吧

  • 数字图像处理学习笔记(十七)分割出彩色图像中的“蓝色”部分

    2303_78714307: 如果图片有红色,但是不是固定的rgb值,有深红浅红,但是我想提取所有红色,背景色是与红色完全不同,请问用这个方法可以提取出来所有红色吗?

大家在看

  • 【PL理论】(30) OOP:覆盖与重载 | 虚方法 | 多态 | 子类型多态性 (Subtype Polymorphism) | 特定上下文多态性 (Ad-hoc Polymorphism) 21
  • 网络安全筑基篇——文件上传 650

最新文章

  • C++实现已知一点求平行于某一直线且距离为d的直线
  • C++实现计算多边形面积
  • C++实现两点确定一条直线公式
2023年3篇
2021年46篇
2020年54篇
2019年8篇

目录

目录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司德宏网站优化排名哪家好威海网站优化按天收费价格上海企业网站建设价格德州关键词按天扣费价格沧州网站改版石岩百度网站优化楚雄关键词按天扣费公司常德建站推荐白城百度网站优化排名价格临沂关键词按天计费公司萍乡百搜标王多少钱保定网站推广工具报价景德镇关键词按天收费永州seo优化苏州网站搜索优化哪家好菏泽百度网站优化排名报价商洛seo优化报价永州seo网站优化报价松岗百度网站优化排名公司湖州网站搜索优化哪家好毕节seo网站推广推荐阿里建网站推荐临沧SEO按天扣费哪家好株洲SEO按效果付费多少钱防城港SEO按天收费报价那曲网站搜索优化价格宝安百度标王多少钱苏州至尊标王哪家好湘潭关键词按天扣费报价随州建网站歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化