【问题标题】:what happens to cache and DRAM when executing "a=5"?执行“a=5”时缓存和 DRAM 会发生什么?
【发布时间】:2018-12-03 14:26:18
【问题描述】:

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

int a;
a = 5;

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

【问题讨论】:

  • 吹毛求疵,也许什么都没有?这实际上取决于a 的使用方式以及编译器如何优化代码。

标签: caching memory


【解决方案1】:

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

【讨论】:

  • 谢谢!你的意思是值“5”被写入L1缓存,而DRAM此时没有值,对吧?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-28
  • 2013-09-19
  • 1970-01-01
  • 2011-12-22
  • 2021-10-14
  • 2013-01-03
  • 1970-01-01
相关资源
最近更新 更多