程序地带

计算机体系结构——存储层次结构


1. 存储器层次结构
工作过程:
CPU运行时,寄存器cache主存外存
存储层次结构(塔式结构)
数据只有在第i+1层存在,才会在第i层
存储层次结构存在的合理性

主要基于程序访问的局部性特点。在较短时间内,程序所用地址往往集中在存储器的很小范围内


可以调访存速率,但是如果程序的据


平均访问时间(命中率)


时间局部性:刚被访问过的存储单元很可能不久又被访问 做法:让最近被访问过的信息保留在靠近CPU的存储器中空间局部性:刚被放翁过的存储单元的邻近丹云很有可能不久被访问 做法:将刚被访问的存储单元的邻近单元调到靠近CPU的存储器
2. Cache
分块

主存中分成大小相同的块——主存块


cache中也分成大小相同的块——cache块 cache中存放一个主存块的对应单位为行(line)或槽(slot)或项或块,每个对应单位包括Tag,Data和状态位。


当CPU需从内存中读写数据时,会查看cache中有没有相应块,若没有则需要从内存中查找并替换cache中某块,再读取。


有效位
命中的cache,有效位置1开机或复位时,置0第一次被替换时,置1操作系统加载程序前,若触发Flush信号,置0
地址映射
直接映射 内存中的块会存到取模后的cache中的对应块 易实现、命中时间短,但不灵活,容易造成cache抖动全相联映射 每个内存中的块都可以存到cache中的任意块 冲突小,但需要设计较多的比较器,硬件消耗较大组映射 组内直接映射,组间全映射
性能

cache设计中提高性能的主要方式为提高命中率


命中率失靶率 1)强制失效:增大block大小 2)容量失效:增大cache大小 3)冲突失效:全相联映射不存在该失效失靶损失:cache中没有命中,从贮存中加载替换到cache所需的时间
Cache一致性问题

考虑的情况:


写命中的情况写不命中的情况

写命中:


write through (写直达) store buffer:为提高性能,write back (写回策略) 只对cache操作

写不命中:


allocate-on-miss(写分配) 先写主存,再将主存块调入cacheno-allocate-on-miss(写不分配) 直接写主存

写直达可以写分配或写不分配 写回只能用写分配


cache替换策略

1)过程:


从主存取出一个块

2)常用算法


FIFO 先进先出,命中率较低LRU 利用时间局限性,总是把最长时间未被访问的那块替换到 行越多,命中率越高,该算法较常用LFU 较少使用随机替换算法 较少使用

 


 


 


 


 


 


 


 


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_39815222/article/details/111246357

随机推荐

04.深度检测

04.深度检测

深度检测1、开启深度检测//开启深度检测,默认是关闭的viewer.scene.globe.depthTestAgainstTerrain=true;2、不开启的后果地球上的en...

超神洋葱 阅读(729)

adb控制手机

adb控制手机

1.环境配置安装adb:https://adbshell.com/downloads/然后将其添加到环境变量:比如adb.exe具体路径为F:proadb.exe,那么...

wxkhturfun 阅读(522)

golang基础数据类型-字符串

一个字符串是一个不可改变的字节序列,字符串可以包含任意数据,文本字符串通常被解释为采用UTF8编码的Unicode码点(rune)序列表现形式g...

大白能 阅读(342)

classnotfoundexception是什么异常_Maven是个什么鬼?

classnotfoundexception是什么异常_Maven是个什么鬼?

#前言在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见。Maven的仓库管理、依赖管理、继承和聚合等特性为项目的构建提供了一整套完善的解决方案&#x...

weixin_39613951 阅读(638)

c++打开bmp文件_关于python文件操作

c++打开bmp文件_关于python文件操作

总是记不住API。写的时候用到了这些,但是没记住,于是就索性整理一下吧,方便自己也方便大家:python中对文件、文件夹(文件操作函数)的操作需...

weixin_39703561 阅读(840)

2020大数据面试题真题总结(附答案)

2020大数据面试题真题总结(附答案)

https://my.oschina.net/u/4631230/blog/4533362 版本更新时间更新内容v1.02020-07-01新建v1.12020-06-13朋友面试大数据工程师提供的关...

吃鱼的羊 阅读(749)