哪些属性的请求会经过L1D Cache?

在存储子系统中,只有 “Cacheable(可缓存)” 属性的请求会经过 L1D Cache 的缓存逻辑,具体可根据内存属性的细分类型进一步划分,以下是常见的可缓存属性及对应行为:

核心前提

只有标记为Cacheable的请求,才会触发 L1D Cache 的标签检查、命中判断、缓存读写等核心流程;非Cacheable请求会直接绕过缓存逻辑(仅转发)。

常见的 Cacheable 属性请求类型

以下属性的请求都会经过 L1D Cache 的缓存处理:

1. Write-Back + Write-Allocate(写回 + 写分配)
  • 是 L1D Cache 最常用的属性组合;
  • 行为:
    • 写请求未命中时,会加载目标缓存行到 L1D(写分配);
    • 写请求命中时,仅修改 L1D 缓存行(不立即写回下一级存储,写回策略);
    • 缓存行被替换时,脏数据会写回下一级存储。
2. Write-Through + Write-Allocate(写透 + 写分配)
  • 行为:
    • 写请求未命中时,加载目标缓存行到 L1D(写分配);
    • 写请求命中时,同时修改 L1D 缓存行 并立即写回下一级存储(写透策略);
    • 缓存行替换时,无需写回(因为已实时同步)。
3. Write-Back + Write-No-Allocate(写回 + 写不分配)
  • 行为:
    • 写请求未命中时,不加载缓存行到 L1D(写不分配),直接写向下一级存储;
    • 写请求命中时,仅修改 L1D 缓存行(写回策略);
    • 适用于 “流式写” 场景(如大文件写入,避免缓存行频繁替换)。
4. Read-Allocate(读分配)
  • 所有 Cacheable 的读请求默认触发读分配:
    • 读请求未命中时,加载目标缓存行到 L1D;
    • 读请求命中时,直接从 L1D 返回数据。
5. Shared/Unique(共享 / 唯一)属性的 Cacheable 请求
  • 在 ACE/CHI 等一致性协议中,Cacheable 请求还会携带共享属性:
    • Shared:缓存行可被多个主设备共享(读操作);
    • Unique:缓存行仅当前主设备独占(可修改);
  • 这些请求都会经过 L1D Cache,并触发对应的一致性监听逻辑。

总结

只有 **Cacheable属性 ** 的请求会经过 L1D Cache 的缓存逻辑,具体包括:

  • 写回 / 写透、写分配 / 写不分配等组合的写请求;
  • 读分配的读请求;
  • 带共享 / 唯一属性的一致性请求。

非 Cacheable 的请求(如设备寄存器访问)会直接绕过 L1D Cache 的缓存流程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值