cache
来源:互联网 发布:虚拟机的三种网络模式 编辑:程序博客网 时间:2024/05/17 04:38
===================================================================================
Q1: 为什么需要cache
CPU和主存的频率相差大,访问效率低.
===================================================================================
Q2: 主存与cache的地址映射方式
①全相联映射(fully associative cache)
②组相联映射(set associative cache)
③直接映射(direct-mmapped cache)
===================================================================================
Q3:全相联映射
假设:机器字长为1B,cache大小为4MB,cache一行有256个字. 内存地址为32位.
cache结构:
Address(32位) State 0字 1字 ... 255字 (2^0-1)行 (2^1-1)行 (2^14-1)行内存地址结构:
Address (32位)
注释:
主存块 可以被映射到 任意cache行
优点:命中率高
缺点一:需要存储完整的内存地址
缺点二:每个cache行 都需要一个比较器电路
===================================================================================
Q4:直接映射
假设:机器字长为1B,cache大小为4MB,cache一行有256个字. 内存地址为32位.
cache结构:
Tag(10bit)State0字1字...255字(2^0-1)行 (2^1-1)行 (2^14-1)行 内存地址结构:Tag(10bit)Index(14bit)
Offset(8bit)
注释:
主存共有2^24个块.
2^10个主存块 被映射到 同一 cache行.
优点一: 不用存储完整的内存地址
优点二:只需要一个比较器电路
===================================================================================
Q5:组相联映射
假设:机器字长为1B,cache大小为4MB,cache一行有256个字. 内存地址为32位.
内存地址结构:
Tag(20bit)Index(2bit)Offset(8bit)
cache结构:
组号行号Tag(20bit)State0字1字...255字0组(2^0-1)行 0组... 0组(2^12-1)行 1组(2^0-1)行 1组... 1组(2^12-1)行 2组(2^0-1)行 2组... 2组... 3组(2^0-1)行 3组 3组(2^12-1)行注释:
主存共有2^24个块.
2^20个主存块 被映射到 同一 cache组中
优点:结合了全相联和直接映射的优点
===================================================================================Q6:替换策略
LRU(Least Recently Used)最近最少使用算法FIFO(First-In First-Out)先进先出算法LFU(Least Frequently Used)最不经常使用算法Random随机替换算法Round-robin 其他其他===================================================================================
Q7:写操作策略
由于Cache内容只是主存部分内容的副本,因此它应当与主存内容保存一致.而CPU对Cache的写入更改了Cache的内容,就会导致Cache的内容和主存的内容不一致.
如何能让Cache的内容与主存的内容保存一致就是Cache写操作策略需要完成的事情.Cache写操作策略有如下三种形式:
全写法(write through)- CPU写cache命中时,cache与主存同时发生写修改
- CPU写cache未命中时,直接向主存写入,此时是否将修改过的主存块读取到cache,分WTWA和WTNWA两种方法.
- CPU写cache命中时,只修改cache的内容,而不立即写入主存,只有当此行被替换出时,才写回主存.
- CPU写cache未命中时,将此块拷贝到cache后进行修改,只有当此行被替换出时,才写回主存.
①全写法(write through)
②写回法(write back)
===================================================================================
Q8: cache 的层次
===================================================================================
Q9: cache 一致性
①在SMP系统中,每个处理器都有一个专用的cache
②在多核处理器中,每个核都有一个专业的cache
③在NUMA中,每个节点都有一个专用的cache
这三种情况,存在访问同一主存地址时,cache的一致性问题.
解决办法:
Ⅰ使其他cache中的copys无效
Ⅱ更新其他cache中的copys
===================================================================================
- cache
- cache
- Cache
- cache
- Cache
- Cache
- Cache
- Cache
- cache
- cache
- cache
- Cache
- cache
- cache
- cache
- Cache
- Cache
- Cache
- 1小时学会:最简单的iOS直播推流(三)使用系统接口捕获音视频数据
- mysql数据库的初始化配置
- 1小时学会:最简单的iOS直播推流(四)如何使用GPUImage,如何美颜
- [译]CS231n 卷积神经网络对于图像识别的应用--(一)(CS231n Convolutional Neural Networks for Visual Recognition)
- python技巧(14)
- cache
- 1小时学会:最简单的iOS直播推流(五)yuv、pcm数据的介绍和获取
- lenovo E430 安装虚拟机!
- 最简单的iOS直播推流(六)h264、aac、flv介绍
- 函数值传递是等号重载还是初始化传递
- 图书管理系统之项目提出与需求分析
- 1小时学会:最简单的iOS直播推流(七)h264/aac 硬编码
- AsyncDisplayKit 系列教程 —— 为什么要使用 AsyncDisplayKit
- 如何解决VS2015c4996的错误