关于多核CPU或多处理器系统中使用的高速缓存存储器,我有几个问题.(虽然与编程没有直接关系,但是当一个人为多核处理器/多处理器系统编写软件时会产生很多反响,因此在这里问!)
在多处理器系统或多核处理器(Intel Quad Core,Core two Duo等......)中,每个cpu核心/处理器都有自己的缓存(数据和程序缓存)吗?
一个处理器/核心可以访问彼此的高速缓存,因为如果允许它们访问彼此的高速缓存,那么我认为可能存在较少的高速缓存未命中,如果特定处理器高速缓存没有一些数据但是其他一些处理器的缓存可能有它,从而避免从内存读入第一个处理器的缓存?这个假设是否有效且真实?
允许任何处理器访问其他处理器的高速缓冲存储器会有任何问题吗?
我在CUDA上工作了很多,并且在CPU上做了很多工作,我正在努力理解两者之间的区别.我的I5处理器有4个内核,售价200美元,我的NVidia 660有960个内核,成本差不多.
如果有人能够解释两种处理单元架构在能力优劣方面的主要区别,我会非常高兴.例如,CUDA核心是否有分支预测?