计算机组成原理 王道考研2021 第三章:存储系统 -- 高速缓冲存储器Cache基本概念和原理(程序访问的局部性原理)Cache和主存的映射方式替换算法写策略

Posted CodeJiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机组成原理 王道考研2021 第三章:存储系统 -- 高速缓冲存储器Cache基本概念和原理(程序访问的局部性原理)Cache和主存的映射方式替换算法写策略相关的知识,希望对你有一定的参考价值。

1. 高速缓冲存储器Cache基本概念和原理


1.1 Cache工作原理

如果你在视频聊天,那么这时候CPU主要访问的是视频聊天相关的代码,那么这时候我们就可以吧视频聊天相关的代码放入Cache中(速度和CPU接近),来提升CPU访问内存速度。


1.2 程序访问的局部性原理

程序访问的局部性原理包括时间局部性空间局部性。时间局部性是指在最近的未来要用到的信息,很可能是现在正在使用的信息,因为程序中存在循环。空间局部性是指在最近的未来要用到的信息,很可能与现在正在使用的信息在存储空间上是邻近的,因为指令通常是顺序存放、顺序执行的,数据一般也是以向量、数组等形式簇聚地存储在一起的。

高速缓冲技术就是利用程序访问的局部性原理,把程序中正在使用的部分存放在一个高速的、容量较小的Cache中,使CPU的访存操作大多数针对Cache进行,从而大大提高程序的执行速度

例题:

假定数组元素按行优先方式存储,对于下面的两个函数;


1.3 性能分析



1.4 其他概念


1.5 有待解决的问题


2. Cache和主存的映射方式

Cache行中的信息是主存中某个块的副本,地址映射是指把主存地址空间映射到Cache地址空间,即把存放在主存中的信息按照某种规则装入 Cache。

由于Cache行数比主存块数少得多,因此主存中只有一部分块的信息可放在Cache中,因此在 Cache中要为每块加一个标记,指明它是主存中哪一块的副本。该标记的内容相当于主存中块的编号。为了说明Cache行中的信息是否有效,每个Cache行需要一个有效位。

地址映射不同于地址变换。地址变换是指CPU在访存时,将主存地址按映射规则换算成Cache地址的过程。地址映射的方法有以下3种。


2.1 全相联映射


2.2 直接映射


2.3 组相联映射


3. Cache替换算法


3.1 替换算法要解决的问题

替换算法只会运用于全相联映射和组相联映射。


3.2 随机算法(RAND)

随机算法(RAND,Random):随机地确定替换的Cache块。它的实现比较简单,但未依据程序访问的局部性原理,因此可能命中率较低。


3.3 先进先出算法(FIFO)

先进先出算法(FIFO,First ln First Out):选择最早调入的行进行替换。它比较容易实现,但也未依据程序访问的局部性原理,因为最早进入的主存块也可能是目前经常要用的。


3.4 近期最少使用算法(LRU)


替换过程:

计数器的变化规则:

算法缺点:


3.5 最不经常使用算法(LFU)


4. Cache写策略

因为Cache 中的内容是主存块副本,当对Cache中的内容进行更新时,就需选用写操作策略使Cache内容和主存内容保持一致。此时分两种情况。


4.1 写命中


4.2 写不命中



以上是关于计算机组成原理 王道考研2021 第三章:存储系统 -- 高速缓冲存储器Cache基本概念和原理(程序访问的局部性原理)Cache和主存的映射方式替换算法写策略的主要内容,如果未能解决你的问题,请参考以下文章

计算机组成原理 王道考研2021 第三章:存储系统 -- 主存储器与CPU的连接双端口RAM和多模块存储器

计算机组成原理 王道考研2021 第三章:存储系统 -- 高速缓冲存储器Cache基本概念和原理(程序访问的局部性原理)Cache和主存的映射方式替换算法写策略

存储系统

(王道408考研操作系统)第三章内存管理-第一节1:内存基础知识程序编译运行原理

计算机组成原理 王道考研2021 第四章:指令系统 -- 指令格式

计算机组成原理 王道考研2021 第四章:指令系统 -- 指令的寻址方式(指令寻址和数据寻址)CISC和 RISC的基本概念