当前位置: 代码迷 >> 综合 >> 读取缓存行的伪共享问题
  详细解决方案

读取缓存行的伪共享问题

热度:8   发布时间:2024-01-25 19:56:41.0

位于同一缓存行的两个不同数据,被两个不同的CPU锁定,产生相互影响,此即伪共享问题。

因为读取和写入都是以缓存行为基本单位,CPU1只需要X,却将位于同一缓存行中的Y给读取到了,CPU2只需要Y,却将X给读到了。CPU1修改了X的值,此时CPU2中的缓存行被标记为invalid状态,此时CPU2需要再到主存中去读取缓存行,其实是不需要这么做的,因为CPU2并不需要X,至于为何会存在缓存行的概念,就是因为让数据位于同一缓存行可以提升CPU效率。

  相关解决方案