caching - 执行“a=5”时缓存和 DRAM 会发生什么?
问题描述
如果进程将立即操作数写入地址
int a;
a = 5;
L1-Data 缓存和 DRAM 会发生什么?DRAM先填“5”还是L1-Data Cache先填“5”?
解决方案
编译器将一些内存地址分配给变量 a。在第二个语句中,当执行 a = 5 时,如果系统是多处理器系统,则会向下游发送一个请求以使所有行无效,并为执行代码的处理器提供这个处于唯一缓存一致性状态的特定缓存地址。然后将值 5 写入 L1 高速缓存(假设编译器希望将高速缓存行地址保留在高速缓存中,并且不认为应该将其写回内存/DRAM)。
推荐阅读
- processing - 如何在处理中创建尾随模式?
- css - 尝试使用线性渐变创建 2 个切角
- ios - 如何逐步提出 Alamofire 请求?
- typescript - 在 Typescript 中,如何定义由另一个类型的属性组成的类型?
- python - 将文件夹的文件夹中的文件重命名为其父文件夹?
- ms-access - 更新后端 SharePoint 列表时的 MS Access 保留错误 (-1517)
- x86 - x86 MSR 名称的 IA32 与 MSR 前缀
- java - Java 用 str.repeat 重复字符串
- excel - 索引匹配以匹配两个日期之间的日期
- java - Java Selenium 测试:如何从 CSV 读取特定的行和/或行以将数据输入到 TestNG 测试