高速缓冲存储器Cache
- 块:数据交换的最小单元
- 命中:在较高层次中发现要访问的内容
命中率:命中次数/访问次数
命中时间:访问在较高层次中数据的时间 - 失效:需要在较低层次中访问块
失效率:命中率 - 失效损失:替换较高层次数据块的时间+该块交付给处理器的时间
命中时间<<失效时间
平均访问时间=HR*命中时间+(1-HR)*失效损失 - 参数典型数值:
块大小:4-128Byte
命中时间:1-4周期 - 失效损失
访问时间:6-10个周期
传输时间:2-22个周期 - 命中率:80%-99%
- cache容量:1KB-256KB
全相联方式
特点:
- 主存的字块可以和cache的任何字块对应,利用率高,方式灵活
- 标志位较长,比较电路的成本太高。如:n位的主存地址,块内地址为b位,cache有m块,则需要有m个比较电路,标志位需要n-b位
使用成本高
直接映射方式
特点:
- 主存的字块只可以和固定的code字块对应,方式直接,利用率低。
- 标志位较短,比较电路的成本低。如果主存空间有
2
m
2^{m}
2m块,cache中字块有
2
c
2^{c}
2c块,则标志位只要有m-c块。且只需比较一次。
利用率低,命中率低,效率低。
多路组相连
特点:
- 前面两种方式的综合方案,先通过连接映射方法确定组,再在组内通过全相联方式确定行。
- 集中了两个方式的优点。成本也不太高。
是常用的方式。
一致性保证
写直达
-
强一制性保证,效率低
-
在cache中命中
同时修改cache和对应的主存内容 -
没有在cache中命中
写分配
非写分配 -
拖后写
强一致性保证,替换时再写主存
主动替换
被动替换 -
通过监听总线上的访问操作来实现
-
实现复杂,效率比较高