为非缓存一致的多核机器编程有什么优势?

luv*_*ere 3 language-agnostic caching multicore

为非缓存一致的多核机器编程有什么优势?Cache_coherence有许多好处,但是如何利用与此功能相反的优势 - 每个核心的独立缓存.什么编程范例以及这种架构对于缓存一致的架构有什么特别的实际问题呢?

Ste*_*sop 5

你没有这样利用缓存非连贯性.您不能编写依赖于具有不同内存视图的不同内核的代码,因为非相干缓存不能保证向不同内核显示不同内存.它只保留这样做的权利.

高速缓存一致性会耗费电路和时间.因此,非连贯的缓存更便宜(并且更冷,可能?)并且更快.内存访问可能在周期中更快,或者可能是相同的最佳情况速度,但由于缓存同步而导致的停顿更少,尤其是错误共享.

所以你不是要做更多的事情来利用非连贯性,这是你不必做的事情,因为你已经放弃了连贯性的缺点 - 你不必重新设计你的并行代码,因为它是花费所有时间等待来自另一个核心的内存存储的结果.

最初非连贯缓存架构的缺点似乎是发现自己正在使用由连贯缓存自动提供的额外同步.没有双重检查锁定.然后你意识到,实际上,相干高速缓存架构为每个单独的内存访问执行此同步(尽管是以超快的硬件实现形式),并且如果高速缓存行是脏的,则阻止,无论您是否需要它.这让我高兴起来:-)