背景:

随着CPU的工作速度成指数级增长,但是主存速度跟不上,所以要提升主存速度非常重要。

m个模块采用低位交叉编址的方式可以基本上将主存的带宽提升m倍,但是这依旧与CPU差距很大。

【王道计组笔记】双口RAM和多模块存储器_m0_52043808的博客-CSDN博客

(1)可以优化每一个存储元的存储设计,价格上升,容量下降。

(2)局部性原理:CPU访问到存储器的地方是很小的一块,如果把很小的一块放在优化的存储设计的存储单元中,就可以提升整个工作系统的存储速度

基于以上两点,引入层序化的理念“ cache --主存 ”


局部性原理:

主存用来存储数据和指令,数据常常存放在相邻的存储单元中

空间局部性:

在最近的未来要用到的信息(指令和数据),很可能与现在正在使用的信息存储空间上是邻近的。


 时间局部性:

在最近的未来要用到的信息,很可能是现在正在使用的信息

局部性原理的具体代码案例:

for(int i=0;i<=9;i++){temp=i;for(int j=0;j<=i;j++){temp*=a[j];sum+=temp;}
}

时间局部性:访问过a[i]后过一段时间,很可能再访问a[i]

空间局部性:访问过a[i]后很可能访问与a[i]相临近的元素

         好的程序员会合理利用局部性原理,提高效率。


时间分析:

假设主存存/取一次要1000ns,CPU进行加法运算需要5ns

那么执行一次  a[ i ] = a[ i ] + 2,故每个周期耗时2005ns,1000个a[i]共耗时2005ns*1000=2005us

利用存储速度块的Cache提速:

当CPU要访问其中的一个数据的时候,把它旁边的数据顺便存放在高速的Cache中。

(CPU与主存直接数据传输是一个一个的,因为CPU中的寄存器位数有限。

而主存与缓存直接没有这样的限制,数据的交换是以块为单位的)

时间分析:

(粗略)

性能分析:

 命中率H:  CPU与访问的信息已在Cache中的比率

设一个程序执行期间,Cache的总命中次数为Nc,访问主存的总次数为Nm,则H=Nc/(Nc+Nm)

  缺失率 :  M=1-H

设tc为命中时Cache的访问时间,tm为未命中时的访问时间

Cache-主存系统的平均访问时间Ta=H*tc+(1-H)*tm

(未访中有两种情况,主存-Cache-CPU  主存-CPU)

例题:

【王道计组笔记】高速缓存器:局部性原理及性能分析相关推荐

  1. 【王道计组笔记】Cache高速缓存基本工作原理

    缓存器 的引入: [王道计组笔记]高速缓存器:局部性原理及性能分析_muse_age的博客-CSDN博客 1.主存的块放到Cache中哪个位置?CPU向缓存中读取一个数据过程? (1)空位随意放:全相 ...

  2. 王道计组笔记: 3.6高速缓冲存储器

    目录 高速缓冲存储器 1. Cache的工作原理 2.局部性原理 3.性能分析 4.映射(类比哈希) 5.Cache替换算法 6.Cache块写策略 高速缓冲存储器 1. Cache的工作原理 当在手 ...

  3. 【王道计组笔记】数制、编码、校验

    数制: 主要为计数进位制:常用有二进制,八进制,十六进制,十进制 其中二进制位计算机内部的编码方法,八进制和十六进制作为二进制的缩写形式. 原因: ①物理:用两种稳定状态的物理器件表示二进制数比较容易 ...

  4. 【王道计组笔记】输入/输出设备磁盘

    外部设备:除了主机(CPU和主存)之外的,能直接或间接与计算机交换信息的装置 输入设备:用于向计算机系统输入命令和文本.数据等信息的部件. 鼠标(了解) 键盘(了解) 键盘是最常用的输入设备,通过它可 ...

  5. 【王道计组笔记】储存系统(1):基本概念

    储存器的分类: 层次(离CPU的距离): 高速缓存存储器(cache),主存储器(主存.内存),辅助存储器(构成三级存储系统) 设立缓存目的:提高访问速度(硬件自动完成) 设立辅存目的:扩大存储容量( ...

  6. 【王道计组笔记】半导体存储器RAM ROM

    知识回顾: 存储器芯片的逻辑结构: 存储矩阵:    由大量相同的位储存单元阵列构成 译码驱动: 将来自地址总线的地址信号翻译成对应存储单元的选通信号,该信号在读写电路的配合下完成对选中单元的读/写操 ...

  7. 【王道计组笔记】总线(3):总线仲裁的基本概念

    同一时刻只能有一个设备控制总线传输操作,可以有一个或多个设备从总线接受数据 主设备:获得总线控制权的设备 从设备:被主设备访问的设备.只能响应主设备发来的各种总线命令 为什么要进行仲裁? 总线作为一种 ...

  8. 【王道计组笔记】总线(1):总线的概念和分类

    总线:一组能为多个部件分时共享的公共信息传送线路 共享:总线上可以挂接多个部件,多个部件之间互相交换信息可以通过这组线路分时共享 分时:同一时刻只允许有一个部件向总线发出信息,如果系统中有多个部件,则 ...

  9. 【王道计组笔记】I/O查询方式

    程序查询方式: CPU一旦启动I/O,必须停止现行程序的运行,并在现行程序中插入一段程序. CPU有"踏步"等待现象,CPU与I/O串行工作 优点:接口设计简单.设备量少 缺点: ...

最新文章

  1. 读书笔记|如何让用户为你的产品尖叫
  2. 记一次小的51CTO聚会
  3. My97DatePicker日历插件
  4. 官网PYthon语言参考手册The Python Language Reference
  5. Linux下的文件共享全攻略系列之一:Samba服务器简介与快速配置指南
  6. ubuntu卸载nvidia驱动_解决Ubuntu18.04循环登录问题 - 卸载NVIDIA驱动 启用Nouveau(1)
  7. 【DP】Mod Mod Mod(CF889E)
  8. Modbus协议栈开发笔记之五:Modbus RTU Slave开发
  9. yii不能没有提示验证错误信息_安装Mac系统时提示”应用程序副本不能验证 它在下载过程...”的解决方法...
  10. Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are解决方法
  11. 诡异的编码和字节长度
  12. oracle tcp 上限,操作系统用户最大进程数限制maxuproc
  13. linux程序运行段错误,Linux下的段错误产生的原因及调试方法
  14. 计算机爱好者协会义务维修的目的,计算机协会义务维修活动总结范文
  15. 从内容/用户画像到如何做算法研发
  16. python命令窗口代码如何调整大小_如何调整python窗口(Tkinter)大小
  17. linux定时任务nodejs,让Nodejs来管理定时任务later
  18. 计算机科学与技术专业师范与非师范,同一个专业,师范和非师范到底有啥区别?...
  19. Hadoop项目实战---黑马论坛日志分析
  20. excel组合汇总_Excel汇总20160229

热门文章

  1. (sql补充)关于游标
  2. 系统化交易与量化交易理论与书籍
  3. POJ NOI0105-30 含k个3的数【数制】
  4. 位运算应用及其注意事项
  5. 单位与单位的换算(二)
  6. Matlab Tricks(六)—— 矩阵乘法的实现
  7. C++基础::运算符重载
  8. C++基础::函数、类、类型所在的头文件 接口的介绍
  9. html经历了几个版本,HTML 的上一个版本诞生于 1999 年. 自从那以后, Web 世界已经经历了巨变....
  10. rtpengine集群_ubuntu 安装 rtpengine