一致性和非一致性缓存

问题描述

我想澄清一些有关包含一致性和非一致性缓存的体系结构的问题。作为一个具体示例,我将参考描述英特尔计算机图形体系结构的article

简而言之,假设我们在同一芯片上有一个带有集成图形的处理器。集成GPU与CPU共享最后一级缓存(LLC)。 GPU包含许多执行单元(EU),这些执行单元被组合成多个子切片,每个子切片具有专用的L1和L2缓存(与CPU的非一致性)。这些子切片聚合在一起形成一个切片,该切片由一个共享的L3高速缓存(与CPU保持一致性)和一个存储区的共享本地内存(SLM)组成。

enter image description here

只要此体系结构中存在非一致性缓存,如何保证EU或CPU内核不会读取过时的值?

我怀疑这可能需要记忆障碍来增强连贯性。或者,一致性和非一致性缓存硬件对程序员有何不同?

如果程序员是负责保持一致性的程序员,那么使某些缓存级别与CPU(在此示例中为GPU slice的L3缓存)保持一致的目的是什么?由于程序员无法确定数据是属于一致性缓存还是非一致性缓存,这是否意味着他仍然必须 插入内存屏障?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...