每日一问(20210922)——为什么要区分 icache 和 dcache ?

问题:
L1 cache 中,为什么要区分 icache、dcache ?
为什么到了 L2 cache 就不区分了呢?

stack overflow 链接

优点
  1. 让 icache 放置在靠近取指单元的位置,让 dcache 放置在靠近内存单元的位置,从而同时降低两者的延迟
  • 这种分离式的设计,在物理位置上降低了时延。
  1. 独立的 icache 和 dcache 使得并行获取指令和数据成为可能
  • 流水线中取指令和取数据属于不同的模块,硬件上可以并行
  • 本质上拆分后的带宽是同一缓存的两倍
  1. 允许我们对指令缓存和数据缓存采用不同的替换策略
  • icache 和 dcache 具有不同的访问模式
  • icache 几乎不会被修改(甚至是只读的)
  • 所有的 intel 奔腾处理器在 L1 icache 中使用 LRU 策略,在 L1 dcache 中使用 NRU 策略。
  • 另外,奔腾9500往后,L1 ITLB使用NRU,L1 DTLB使用LRU。
缺点
  • 拆分 相比于统一的 L1 cache 可能并未得到充分利用,拆分缓存并不允许一个缓存在需要时占用另一个缓存的空间,所以相比而言,同一的缓存具有更高的命中率。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值