首页 > 解决方案 > 执行“a=5”时缓存和 DRAM 会发生什么?

问题描述

如果进程将立即操作数写入地址

int a;
a = 5;

L1-Data 缓存和 DRAM 会发生什么?DRAM先填“5”还是L1-Data Cache先填“5”?

标签: cachingmemory

解决方案


编译器将一些内存地址分配给变量 a。在第二个语句中,当执行 a = 5 时,如果系统是多处理器系统,则会向下游发送一个请求以使所有行无效,并为执​​行代码的处理器提供这个处于唯一缓存一致性状态的特定缓存地址。然后将值 5 写入 L1 高速缓存(假设编译器希望将高速缓存行地址保留在高速缓存中,并且不认为应该将其写回内存/DRAM)。


推荐阅读