Cache存储器
Cache(高速缓冲存储器)
高速缓冲存储器是位于主存与CPU之间的一级存储器,有静态存储芯片(SRAM)组成,容量比较小,速度比主存高得多,接近于CPU的速度,单位成本比内存高。Cache存储了频繁访问内存的数据。

(1)Cache原理、命中率、失效率
使用Cache改善系统性能的主要依据是程序的局部性原理。

命中率、失效率
Cache的访问命中率为h(通常1-h就是Cache的失效率),Cache的访问周期时间是t1,主存储器的访问周期时间是t2,则整个系统的平均访存时间就是:t3 = h x t1 + (1-h) x t2

(2)Cache存储器的映射机制
分配给Cache的地址存放在一个相联存储器(CAM)中。CPU发生访存请求时,会先让CAM判断所要访问的数据是否在Cache中,如果命中就是直接使用。这个判断的过程就是Cache地址映射,这个速度应该尽可能快。
常见的映射方法有:
*直接映射
*全相联映射
*组相联映射

1.直接映射
是一种多对一的映射关系,但一个主存块只能够复制到Cache的一个特定位置上去。
Cache的行号i和主存的块号j有函数关系:
i = j % m  (其中m为Cache总行数)

2.全相联映射
将主存中任一主存块能映射到Cache中任意行(主存块的容量等于Cache行容量)。
根据主存地址不能直接提取Cache页号,而是需要将主存块标记与Cache各页的标记逐个比较,知道找到比较符合的页(访问Cache命中),或者全部比较完后仍无符合的标记(访问Cache失败)

主存块标记与Cache各页的标记逐个比较,所以这种映射方式速度很慢,失掉了高速缓冲的作用,这是全相联映射方式的最大缺点。如果让主页标记与各cache标记同时比较,则成本太高。

3.组相联映射
是前两种方式的择中方案。它将Cache中的块再分成组,各组之间是直接映像,而组内各块之间则是全相联映像。

主存地址 = 区号 + 组号 + 组内块号 + 块内地址号

(3)Cache淘汰算法
当Cache数据已满,并且出现未命中情况时,就要淘汰一些老的数据,更新一些新的数据进入Cache。选择淘汰哪些数据的方法就是淘汰算法。常见的方法有三种:
*随机淘汰算法
*先进先出淘汰算法(FIFO)
*最近最少使用淘汰算法(LRU)
其中平均命中率最高的是LRU算法

(4)Cache存储器的写操作
在使用Cache时,需要保证其数据与主存一致,因此在写Cache时就要考虑与主存间的同步问题,通常使用以下三种方法:
*写直达:当Cache写命中时,Cache与主存同时发生写修改
*写回:当CPU对Cache写命中时,只修改Cache的内容而不立即写入主存,当此行被换出才写回主存。
*标记法:数据进入Cache后,有效位置1;当CPU对该数据修改时,数据只写入主存并将该有效位置0。当要从Cache中读取数据时要测试其有效为,若为1则直接从Cache中取数,否则从主存中取数。

****** 三十四 ******、软设笔记【存储器系统】-Cache存储器的更多相关文章

  1. ****** 三十 ******、软设笔记【计算机体系结构】-循环冗余校验码(CRC)

    循环冗余校验码(CRC)  广泛地在网络通信及磁盘存储时采用.  1.多项式  在循环冗余校验(CRC)码中,无一例外地要提到多项式的概念.一个二进制数可以以一个多项式来表示.如1011表示为多项式X ...

  2. ****** 四十 ******、软设笔记【网络基础】-Internet和Intranet基础

    Internet和Intranet基础 一.网络地址及子网掩码 1.IP地址结构及类别 IP地址是由32位二进制数,即4个字节组成的,由网络号和主机号两个字段组成. 网络号的位数决定了可以分配的网络数 ...

  3. ****** 五十 ******、软设笔记【UML分析和意义】-类图、对象图、状态图、活动图、顺序图、协作图、构件图、部署图,动静态模式

    一.类图(Class Diagram) 描述一组类.接口.协作已经它们之间的图,用来显示系统中各个类的静态结构图. 类之间的关系(relationship) *依赖(dependency) *泛化(g ...

  4. JAVA之旅(三十四)——自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫

    JAVA之旅(三十四)--自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫 我们接着来说网络编程,TCP 一.自定义服务端 我们直接写一个服务端,让本机去连接 ...

  5. Gradle 1.12用户指南翻译——第三十四章. JaCoCo 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  6. spring boot 常见三十四问

    Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家. 问题一 Spring Boot.Spring MVC 和 Spring 有什么区别 ...

  7. 孤荷凌寒自学python第三十四天python的文件操作对file类的对象学习

     孤荷凌寒自学python第三十四天python的文件操作对file类的对象学习 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.close() 当一个file对象执行此方法时,将关闭当前 ...

  8. 剑指Offer(三十四):第一个只出现一次的字符

    剑指Offer(三十四):第一个只出现一次的字符 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net ...

  9. COJ966 WZJ的数据结构(负三十四)

    WZJ的数据结构(负三十四) 难度级别:C: 运行时间限制:20000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 给一棵n个节点的树,请对于形如"u  ...

  10. NeHe OpenGL教程 第三十四课:地形

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

随机推荐

  1. C++类相关

    本文打算通过一些小例子来说明几个关键的知识点. 一:成员函数相关 #include <iostream> using namespace std; class D { public: vo ...

  2. Mybatis中org.apache.ibatis.binding.BindingException错误问题总结

    1. Mybatis出现多个参数,但是多个参数中没有使用@Param注解进行修饰 2. Xml文件中字段名和PO绑定时候,字段写错了 3.XML中<foreach/>标签中的colleac ...

  3. nodejs的某些api~(三)net模块

    net模块和http模块是node最重要的两个模块,前者是基于TCP的封装,后者的本质也是TCP.他们通过 tcp通信,建立一个可以收发消息的web服务器.我在写的作品里面用的express也是封装的 ...

  4. OpenLayers学习笔记(一)—在线加载谷歌影像地图&离线加载本地瓦片地图

    实现根据在线离线判断加载地图, 在线加载谷歌影响地图, 离线加载本地瓦片地图 作者: 狐狸家的鱼 Github: 八至 html代码 <div id="map" tabind ...

  5. macOS在virtualenv中使用wxPython报错

    在虚拟的Python环境中运行GUI的软件报错 This program needs access to the screen. Please run with a Framework build o ...

  6. 【POJ2182】Lost Cows 树状数组+二分

    题中给出了第 i 头牛前面有多少比它矮,如果正着分析比较难找到规律.因此,采用倒着分析的方法(最后一头牛的rank可以直接得出),对于第 i 头牛来说,它的rank值为没有被占用的rank集合中的第A ...

  7. ImageMagick - 设置透明带 AlphaChannel 的 png 图片的透明度

    学习和使用ImageMagick也有几年时间了,其实对 ImageMagick 的了解还仅仅是皮毛吧. 最近在写代码的时候,遇到一个调整透明png图片透明度的问题: 当1张png图片,有些区域是透明的 ...

  8. Dubbo新版管控台

    地址:https://github.com/apache/incubator-dubbo-ops 下载下来,解压 打开cmd 注意:它的前端用到了Vue.js,打包需要npm,所以你要有node.js ...

  9. 回流(reflow)与重绘(repaint)

    回流(reflow)与重绘(repaint) 很早之前就听说过回流与重绘这两个名词,但是并不理解它们的含义,也没有深究过,今天看了一套网易的题目,涉及到了这两个概念,于是想要把它们俩弄清楚... 一. ...

  10. 1、CC2530单片机介绍

    单片机是一种集成电路芯片,包含中央处理器CPU.随机存储器RAM.只读存储器ROM.输入输出I/O接口.中断控制系统.定时/计数器和通信等多种功能部件. 本教程使用的单片机德州仪器生产的CC2530, ...