对于理解高速存储器首先要知道局部性原理,局部性原理分为时间局部性和空间局部性。分别是在未来要使用的信息可能是现在正在使用的信息,另一个是最近的未来要用的信息很可能是正在使用的信息在存储空间上是邻近的。

1.Cache工作的基本原理

cache一般位于存储器层次结构的顶层,通常由SRAM构成;由数据总线,地址总线和cpu连接,cache中保存主存中最活跃的若干副本。cpu发出读请求的时候,如果访存地址在cache中命中,就将其地址转化为cache的地址,否则的话还要取主存那里取访问。然后就是有关于cache命中率的介绍;cache命中率指的是cpu访问的内容是cache已经存在的单元内容,cpu发现cache没有自己要找的内容的话,就会去主存继续寻找。然后就是我们要如何求出平均访问时间?

其实访问的时候由两种情况,一种是cache和主存同时访问,一种是先访问cache再访问主存。比如说我有一个主存,读取速度为T,cache的读取速度为5T,命中率为95%,我们采用第一种方式的总时长为T*95%+5%5T=1.2T,第二种方式自行计算。

然后我们由此引出三个问题

2.cache和主存的映射方式

就是说怎么把主存的存储内容放入cache中;emmm这里由三种方式

(1)直接映射

这个方式主存中的每一块只能装入cache中的唯一的位置,因为它是用主存块号对cache总块数取模(实现简单,但是不够灵活,没办法用替换算法)

(2)全相联映射

这个方式主存中的每一块可以装入cache中的任何位置

(3)组相联映射

这个方式主存中的每一块可以装入cache中的所分的组内,比如说cache有8块,我把它分为两组,然后用地址块对分组数取模,假设一个地址快对组数取余为2,说明它可以放入cache里面第二组中两个位置的任意一位置。就是第一种方法和第二组的结合

【注意】

8个cache行的话直接映射中只要找高位的前三位就是对应的行号

而如果是用二路组相连,两位就够了00 01 10 11 刚好表示0 1 2 3四组。

3.cache替换算法和写入策略

常用的替换算法有下面四种:

 1.随机算法

        2.先进先出算法

        3.近期最少使用算法

算法将一段时间内被访问次数最少的那个块替换出去。每块设置一个计数器,从0开始计数,每访问一次,被访块的计数器就增1。当需要替换时,将计数值最小的块换出,同时将所有块的计数器都清零。比如cache有四块,每次需要调用1 2 3 4 5 1 2 3 4 5,就会出现抖动的现象。

4.最不经常使用算法(不遵循局部性原理)

设置一个计数器,Cache每命中一次,命中块计数器清零,其他各块计数器增1。当需要替换时,将计数值最大的块换出。

Cache写策略(保持数据的一致性)

1.全写法

CPU对cache写命中时,数据同时写入cache和主存,新调入的块直接覆盖

    2.写回法

CPU对cache写命中时,只修改cache里面的内容,当此块被换出的时候,才要写回(判断是否被修改,需要设置脏位作为标志位)

       未命中时候:

1.写分配

                        加载主存的块到cache中,更新cache(与写回法结合)

2.非写分配

                        只写入主存,不进行调块(与全写法结合)

计算机组成原理---高速缓冲存储器相关推荐

  1. 计算机组成原理——高速缓冲存储器

    高速缓冲存储器 || 什么是 cache ? cache 是一种小容量高速缓冲存储器,由 SRAM(static random access of memory)组成.直接制作在 CPU 芯片内,速度 ...

  2. 计算机组成原理高速缓冲存储器,计算机组成原理 存储器层次结构 高速缓冲存储器...

    作者:因情语写 链接:https://proprogrammar.com/article/265 声明:请尊重原作者的劳动,如需转载请注明出处 一.概述 1.问题的提出 避免CPU"空等&q ...

  3. 计算机组成原理—高速缓冲存储器

    建议将思维导图保存下来观看,或点击这里在线观看

  4. 计算机组成原理-高速缓冲存储器

    目录

  5. 计算机组成原理 高速缓冲存储器与辅助存储器

    1.1 概述 一.产生原因 为避免CPU空等的现象 CPU与主存(DRAM)的速度差异剪刀差越来越大 依据程序局部性原理 二.Cache的工作原理 1.主存和缓存的编址 C<<M 若把主存 ...

  6. 漫谈计算机组成原理(五)高速缓冲存储器

    本文讲什么? 老样子,在正式开始介绍"高速缓冲存储器"之前,我们先来了解一下其相关的信息. 我相信,上面这张图你一定已经非常熟悉了,没错,这就是在本章绪论说的"存储器的层 ...

  7. 计算机组成原理之高速缓冲存储器(Cache)

    概述 问题的提出 由上一篇计算机组成原理之主存储器中的存储器分层结构图可知,CPU(寄存器)和主存(DRAM)之间存在速度的差异,由于主存的速度很慢,在CPU访存时,就会出现CPU的"空等& ...

  8. 计算机组成原理学习笔记第4章 4.11——高速缓冲存储器例题选讲

    有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) Last(在此处点击使用,直达文末) Frist (在文末点击使用,返回文章首部) 目录 1️⃣例1 ①题目描述 ② ...

  9. 4 计算机组成原理第三章 存储系统 高速缓冲存储器 虚拟存储器

    文章目录 1 局部性原理性能分析 2 Cache工作原理(简易版) 3 地址映射 4 替换算法 4.1 替换算法(十进制)举例 4.2 Cache工作原理(加强版) 4.2.1写策略-命中 4.2.2 ...

最新文章

  1. 漫画:你会感觉容器使用起来很痛苦吗?
  2. 《JAVA与模式》之装饰模式
  3. 【Linux系统编程应用】 V4L2编程基础(一)
  4. LabVIEW设计模式系列——移位寄存器
  5. jQuery实现两个列表框的值之间的互换:
  6. python 写入文件编码_使用Python写入文本文件时的编码问题
  7. 人工智能运行环境linux,Intel OpenVINO 人工智能推论环境搭建 (Linux) 第一章
  8. Discuz!NT 模板机制分析
  9. cuda并行编程之求解ConjugateGradient(共轭梯度迭代)丢失dll解决方式
  10. STM32|4-20mA输出电路
  11. 数据分析流程(学习)
  12. Pillow和OpenCV转numpy数组
  13. 全国省市区mysql数据
  14. 计算机网络 路由协议的配置_瑞尔森大学计算机网络专业
  15. 一元二次方程求根计算机的代码,一元二次方程求根Java源程序代码.doc
  16. 常见数据库id号编码
  17. 英语论文格式有什么要求?
  18. Python matplotlib数据可视化 subplot绘制多个子图
  19. 字符串判断相等和不相等
  20. 常太晚睡觉等于自杀!!熬夜也要有技巧!!

热门文章

  1. 网上赚钱并不适合所有人!你为何没有在网上赚到钱!
  2. 《灌水之道》--CSDN搞笑版
  3. TCP协议常见的端口
  4. 【数据库】修改和删除数据表字段
  5. 超声波、震动感应开关盖垃圾桶(教程里面提供源码)
  6. 查看电脑ip地址的几种方法(详细简单)
  7. Makefile 文件 configure可执行文件 跟 CFLAGS 参数
  8. 大数据用户画像方法与实践
  9. silverlight 文件下载若干方法
  10. python实现列队