CPU原来酷睿2双核时的二级缓存一般都是2M,现在都是I系列了,为什么二级缓存才是4×256K啊?
换算一下,4×256K才1M啊,还不如酷睿2双核的二级缓存高啊,我知道这样理解肯定不对,但是错在哪呢?...
换算一下,4×256K才1M啊,还不如酷睿2双核的二级缓存高啊,我知道这样理解肯定不对,但是错在哪呢?
展开
1个回答
展开全部
首先郑重声明,以下内容绝对原创,绝无抄袭,我从来不干那事(已经好几次辛辛苦苦回答完问题被指copy了,伤心啊……特此声明!)。
直接标明2M的应该是CPU内部的所有核心共享使用2M二级Cache,而4x256K的是指CPU内部有四个核心,每个核心独立拥有256K的二级Cache。
这两个的区别是共享二级Cache的CPU,如果执行单线程任务时,CPU中任何一个核心都可以使用这共享的2M Cache,这样可以避免Cache的浪费,但是这就有一个问题,如果不是单线程任务呢,这样就需要两个核心共同工作,这就需要根据情况合理分配这2M Cache给两个核心,这样就会出现问题,有可能有的程序抢占了更多的Cache,但是其他程序由于没有足够的Cache使用,导致程序速度骤减,甚至崩溃。
每个核心独立拥有二级Cache的话就可以避免上述那种多线程工作时Cache分配不均的情况,因为它们每个核心之间的Cache是不可以共享的。但是相反的,再处理单线程任务时,也就是不需要所有核心全部工作的情况下,闲置核心的Cache同样也不能被其他核心利用,这就造成了资源浪费。
这就是这两种Cache的方式,正所谓“鱼与熊掌不可得兼”,如果你要追求单线程工作的最高速度,那就要放弃多线程工作,反之亦然。所以挑选CPU的时候一定要根据自己的实际需求选择,不能盲目~
我是学计算机的,以上是个人观点,不保证完全正确,如果有问题我们可以互相交流,我的QQ:409713076
直接标明2M的应该是CPU内部的所有核心共享使用2M二级Cache,而4x256K的是指CPU内部有四个核心,每个核心独立拥有256K的二级Cache。
这两个的区别是共享二级Cache的CPU,如果执行单线程任务时,CPU中任何一个核心都可以使用这共享的2M Cache,这样可以避免Cache的浪费,但是这就有一个问题,如果不是单线程任务呢,这样就需要两个核心共同工作,这就需要根据情况合理分配这2M Cache给两个核心,这样就会出现问题,有可能有的程序抢占了更多的Cache,但是其他程序由于没有足够的Cache使用,导致程序速度骤减,甚至崩溃。
每个核心独立拥有二级Cache的话就可以避免上述那种多线程工作时Cache分配不均的情况,因为它们每个核心之间的Cache是不可以共享的。但是相反的,再处理单线程任务时,也就是不需要所有核心全部工作的情况下,闲置核心的Cache同样也不能被其他核心利用,这就造成了资源浪费。
这就是这两种Cache的方式,正所谓“鱼与熊掌不可得兼”,如果你要追求单线程工作的最高速度,那就要放弃多线程工作,反之亦然。所以挑选CPU的时候一定要根据自己的实际需求选择,不能盲目~
我是学计算机的,以上是个人观点,不保证完全正确,如果有问题我们可以互相交流,我的QQ:409713076
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询