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)

  1. CPU写cache命中时,cache与主存同时发生写修改
  2. CPU写cache未命中时,直接向主存写入,此时是否将修改过的主存块读取到cache,分WTWA和WTNWA两种方法.
写回法(write back)
  1. CPU写cache命中时,只修改cache的内容,而不立即写入主存,只有当此行被替换出时,才写回主存.
  2. CPU写cache未命中时,将此块拷贝到cache后进行修改,只有当此行被替换出时,才写回主存.
写一次法 


①全写法(write through)

②写回法(write back)


===================================================================================

Q8: cache 的层次

===================================================================================

Q9: cache 一致性

①在SMP系统中,每个处理器都有一个专用的cache

②在多核处理器中,每个核都有一个专业的cache

③在NUMA中,每个节点都有一个专用的cache

这三种情况,存在访问同一主存地址时,cache的一致性问题.

解决办法:

Ⅰ使其他cache中的copys无效

Ⅱ更新其他cache中的copys

===================================================================================




0 0
原创粉丝点击