SMP中CACHE 一致性是不必要的?
见量化研究方法 甚至为了一致性连指令的序都强制了
从处理事物的角度看 处理器间并没有指令级的序列的需求 线程级别并行就是各干各的事情
当然也有锁的需求用来同步 我觉得在访问同一内存的时候软件显式同步就好了.为什么一定要硬件CACHE来同步?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
补充两句,对于分布式Cache,只读数据每个核独立Cache往往是最优的结果,而需要修改的共享数据,是否需要硬件上自动cache一致性就不那么直观的:如果是动态修改的查找表(如FDB),有可能需要硬件上的一致性,否则程序会很难设计,因为如果没有这个一致性,一定要有另一种同步机制,但频繁地同步会使效率下降很多;而如果是流水式的,例如一个核处理完一大块数据再统一交给另一个核做其它处理,则软件控制一致性又更好一些。
不同的场景需要不同的方式。我用的TILEPro多核平台上是支持程序员选择的,分配内存时可以指定是cache coherent方式还是incoherent方式。
目前绝大多数多核平台都是用共享大Cache的方式,只有一级Cache是独立的,所以天然就是coherent的。
成本考虑罢了,性价比。
在目前的技术条件下,速度如何保证?