gpt4 book ai didi

multithreading - 缓存一致性的重点是什么?

转载 作者:行者123 更新时间:2023-12-04 00:18:24 24 4
gpt4 key购买 nike

在像 x86 这样提供缓存一致性的 CPU 上,从实际角度来看,这有什么用?我知道这个想法是让在一个内核上完成的内存更新在所有其他内核上立即可见。这是一个有用的属性。但是,如果不是用汇编语言编写,也不能过分依赖它,因为编译器可以将变量赋值存储在寄存器中,而永远不会将它们写入内存。这意味着仍然必须采取明确的步骤来确保在其他线程中完成的工作在当前线程中可见。因此,从实践的角度来看,缓存一致性实现了什么?

最佳答案

想象一下你这样做:

lock(); //some synchronization primitive e.g. a semaphore/mutex
globalint = somevalue;
unlock();

如果没有缓存一致性,最后一个 unlock()必须保证 globalint现在随处可见,有了缓存一致性,您所需要做的就是将其写入内存并让硬件发挥作用。软件解决方案会记录哪些内存存在于哪些缓存中,在哪些内核上,并以某种方式确保它们在原子上同步。

如果您能找到一种软件解决方案来跟踪存在于需要保持同步的缓存中的所有内存片段,那么您将赢得奖项,这比当前的硬件解决方案更有效。

关于multithreading - 缓存一致性的重点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3242577/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com