Caching 进程跳转核心时是否刷新一级缓存?

Caching 进程跳转核心时是否刷新一级缓存?,caching,operating-system,cpu-architecture,Caching,Operating System,Cpu Architecture,一个程序应该总是读回它之前写的东西,即使是最宽松的一致性。假设一个程序在core1上运行,并在写入和后续读取之间移动到另一个core2,操作系统和内存子系统的责任是什么,以确保读取返回先前写入的内容?操作系统必须确保程序可见的所有CPU状态在上下文切换时正确保存和恢复 因此理论上L1必须冲洗。 然而,实际上这取决于平台,例如x86体系结构与,因此每个CPU共享其缓存中内存的一致映像,一级缓存不会刷新。 但是,必须刷新其他类型的缓存,例如 操作系统必须确保在上下文切换时正确保存和恢复程序可见的所有

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

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

因此理论上L1必须冲洗。
然而,实际上这取决于平台,例如x86体系结构与,因此每个CPU共享其缓存中内存的一致映像,一级缓存不会刷新。

但是,必须刷新其他类型的缓存,例如

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

因此理论上L1必须冲洗。
然而,实际上这取决于平台,例如x86体系结构与,因此每个CPU共享其缓存中内存的一致映像,一级缓存不会刷新。

但是,必须刷新其他类型的缓存,例如

对,基本上当进程跳转内核并尝试写入时,前一个内核中的缓存线移到此内核,使前一个内核中的缓存线无效。每个内核都可以嗅探其他内核的读/写请求,并在访问的缓存线写入内存后强制它们重试。此外,L3缓存也称为LLC,通常在内核之间共享。维基百科关于MESI的文章应该有更多的细节。对,基本上当进程跳转内核并尝试写入时,前一个内核中的缓存线会移到这个内核上,使前一个core中的行无效右键?每个core都可以窥探其他core的读/写请求,并在访问的缓存线写入内存后强制它们重试。此外,L3缓存也称为LLC,通常在内核之间共享。维基百科关于MESI的文章应该有更多的细节。