当进程跳转核心时,L1缓存是否刷新?

时间:2016-09-28 18:46:42

标签: caching operating-system cpu-architecture

程序应该始终回读它之前写的内容,即使是最放松的一致性。假设一个程序在core1上运行,并且在写入和后续读取之间移动另一个core2,操作系统和内存子系统的职责是什么,以确保读取返回先前写入的内容?

1 个答案:

答案 0 :(得分:2)

操作系统必须确保在上下文切换时正确保存并恢复程序可见的所有CPU状态。

所以理论上L1必须刷新 但实际上,这取决于平台,例如x86架构使用cache coherency强制执行MESI,因此每个CPU在其缓存中共享内存的连贯映像,并且不刷新L1缓存。
但是,必须刷新其他类型的缓存,例如TLBs