期末复习—计算机组成原理—计算机的高速缓存

计算机的高速缓存

    • 高速缓存的工作原理
    • CPU跟缓存交互的效率
    • 高速缓存的替换策略

高速缓存的工作原理

高速缓存的构成和内存的构成原理是一样的
即,由字和字块构成
:是指存放在一个存储单元中的二进制代码组合
字块:用来放字的东西,存储在连续的存储单元中而被看作是一个单元的一组字,即字块是由字构成,存放字的东西

如图(主存示意图):期末复习—计算机组成原理—计算机的高速缓存_第1张图片一个字块由多个字构成,而且有如右图的规则,注意,不是说一个字的位数一定是32位,上面的三个前提只是假设

下图为一个字地址的示意图
期末复习—计算机组成原理—计算机的高速缓存_第2张图片如图,一个字的地址由两部分组成,CPU进行寻址的话则需要通过前m位先找到字所在字块的地址,然后找到对应的字块,然后再通过后b位找到字在字块中的地址

下面是关于字的运算规则
期末复习—计算机组成原理—计算机的高速缓存_第3张图片因为前m位是指定块的地址的,即所有块中的此块的地址,所以2m=M,而后面的b是指定此字在块中所有字中此字的地址的,所以2b=B

例题:
期末复习—计算机组成原理—计算机的高速缓存_第4张图片
注意很重要一点:我们所说的32位或者64位指的都是比特位(bit),即25=32bit,26=64bit

  1. 求块地址m位数,即用来指定此字所在块在所有块中的地址的那一部分
    先求出内存中的总块数,然后2m=总块数
  2. 求块内地址b的位数,即指定此字在块中的地址那一部分
    先求出块内总位数,即比特位数(bit)
    然后公式2b=总比特位

如图:
期末复习—计算机组成原理—计算机的高速缓存_第5张图片

CPU跟缓存交互的效率

下图为CPU和缓存和主存的关系交互图
期末复习—计算机组成原理—计算机的高速缓存_第6张图片有上图这三个规则

因为缓存快,主存慢,所以一般我们把常用的数据都优先加载到缓存中
命中率:
然后我们可以通过命中率这一个名词来衡量CPU从高速缓存取数据成功的概率

如下图,为命中率的计算方法
期末复习—计算机组成原理—计算机的高速缓存_第7张图片Cache就是高速缓存,h代表命中率

访问效率和访问Cache—主存系统的平均时间
期末复习—计算机组成原理—计算机的高速缓存_第8张图片h还是我们的命中率

例题:
在这里插入图片描述

  1. 肯定先求命中率
    期末复习—计算机组成原理—计算机的高速缓存_第9张图片
  2. 然后求访问效率
    期末复习—计算机组成原理—计算机的高速缓存_第10张图片
  3. 平均访问时间
    期末复习—计算机组成原理—计算机的高速缓存_第11张图片

高速缓存的替换策略

原因:
为了加快CPU加载数据的速度,我们需要尽可能的让CPU从高速缓存中读取数据,因为高速缓存容量小,所以我们可以让CPU需要的数据先从主存加载到高速缓存,然后再让CPU从高速缓存中读取数据
什么是高速缓存的替换
替换策略就用在高速缓存容量满了,但还是需要从主存读取数据的时候,此时就需要去除掉一点高速缓存中的数据,如下图:
期末复习—计算机组成原理—计算机的高速缓存_第12张图片

有如下四中策略:
期末复习—计算机组成原理—计算机的高速缓存_第13张图片

  1. 随机算法
    即随机选取去掉高速缓存中的一个数据,用来替换从内存读取到的数据
  2. 先进先出算法(FIFO)
    如图:
    期末复习—计算机组成原理—计算机的高速缓存_第14张图片即先进入高速缓存的数据拍在前面,然后从内存中读取新数据了,就把最先进入的数据即最前面的数据给去掉,然后让读取到的数据拍在最后面
  3. 最不经常使用算法(LFU)
    他最主要是两点:
    期末复习—计算机组成原理—计算机的高速缓存_第15张图片
    原理如图:
    期末复习—计算机组成原理—计算机的高速缓存_第16张图片读取到缓存中使用次数最少的数据,并把它替换为要读取进来的数据
  4. 最近最少使用算法
    要点:
    期末复习—计算机组成原理—计算机的高速缓存_第17张图片
    原理:
    期末复习—计算机组成原理—计算机的高速缓存_第18张图片即我们把读取到缓存中的数据存入链表,新读入或者新使用的数据放在链表头部
    即,当我们用到缓存中的某一数据的时候,这个数据会从原先他在链表中的位置移动到链表头部,而且当我们从主存中新读取到的数据也会放在链表头
    然后缓存存放满了的话就从链表尾去除数据来腾出空间,然后新读取的数据还是会放在链表头

你可能感兴趣的:(计算机组成原理,其他)