如果处理器上有多个核心正在访问相同的内存地址,它们是否会破坏彼此的缓存,或者某些侦听协议是否允许每个核心将数据保存在L1缓存中?
我对一般答案以及特定处理器的答案感兴趣。多少个缓存层无效?访问同一缓存行中的另一个地址会使整行无效吗?你能做些什么来缓解这些问题?
答案 0 :(得分:2)
http://en.wikipedia.org/wiki/File:Dual_Core_Generic.svg意味着每个核心都有自己的(私有/独立)L1缓存。
但这并不意味着缓存行无法复制,代价是占用两倍的空间。
我认为你在问,“如果一个核心写入另一个核心缓存的内存地址,那是否会使其他核心的缓存无效/刷新/丢弃?”
This article表示存在各种/几种类型的窥探协议(这意味着您的问题的答案是特定于CPU的)。您也可以使用Google multicore cache coherence
。