gpt4 book ai didi

multithreading - 当线程只写入同一个缓存 block 时,是否也会发生错误共享?

转载 作者:行者123 更新时间:2023-12-01 23:48:08 24 4
gpt4 key购买 nike

如果我们有两个内核在同一个缓存块中读取和写入不同的内存位置,则两个内核都被迫一次又一次地重新加载该缓存块,尽管这在逻辑上是不必要的。这就是我们所说的虚假分享。

但是,如果内核从不从该缓存块读取,而只写入怎么办?想象一下,两个内核只是在同一个缓存块中设置了一些位,但它们不必从块中读取,因为它们设置的位信息仅在程序的后期阶段才需要。

是否仅当内核在同一个块上读写时才会发生错误共享,或者如果两者都只写入它也会发生?

最佳答案

是的,它也会发生。为了写入缓存行中的字节子集,必须首先读取该行,然后修改,然后写回。逻辑写入通常是物理读写。

CPU 可以以不同的方式执行此操作,但我不知道有任何 CPU 执行此操作。

关于multithreading - 当线程只写入同一个缓存 block 时,是否也会发生错误共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28199412/

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