在内核之间共享数据的最有效方法
作者:互联网
在多个内核之间共享数据的最有效方法是什么.当然,您可以使用共享内存,但这也要付出一定的代价.假设一个内核正在不断地写入变量,而另一个内核则必须不断地从该变量读取数据.使用MESI缓存一致性协议,写入核心将不时使读取核心使其缓存无效.因此,在这种情况下,什么是共享数据的最有效方法.
解决方法:
在典型的共享内存计算机上,您描述的场景可能已经是可能的最有效方法:
>核心A写入内存位置.使核心B的副本无效.
>核心B从内存或核心A的缓存中获取数据.
无论哪种方式,都必须将数据从内核A发送到内核B.现代处理器中的高速缓存一致性有时会支持直接高速缓存到高速缓存的传输,而不会一直到内存.
您想要避免的(只要有可能)是过度锁定共享资源.这将增加两个方向上的缓存一致性流量(和延迟).
标签:multithreading,x86-64,multiprocessing,c-3,linux 来源: https://codeday.me/bug/20191201/2081281.html