2009-11-04 45 views
4

我已经看到在同一主板上有两个处理器的新电脑。 同一主板上的两个处理器如何正常工作,因为它会像两个大脑一样(试图)控制一个主体,实际上他们如何执行并行处理,它实际上是这样吗?并行处理实际上可能吗?

+2

似乎更像是一个关于计算机设计而不是编程的问题。 –

+0

嗯...它没有编程相关? – Xinus

+7

选择一个不同的隐喻,它变得更容易理解。假设一个办公室有两个秘书和一台计算机,文件柜,复印机等。显然,如果两个人都想使用相同的设备,他们必须轮流工作,但如果他们想使用不同的设备,他们可以并行工作。这就是并行处理的原因。有很多时候,他们都在使用(或做)不同的事情。 – tvanfosson

回答

7

有其决定,如果两个(或更多)的CPU /内核要访问同一资源谁胜的规则。通常,一个CPU将尝试稍后访问它,因此它将不得不等待。如果两个CPU实际上想要在同一时间访问相同的资源,那么这些规则将确保获胜。今天,规则已变得相当复杂,以确保一个CPU无法占用资源(耗尽另一个)。

缓存就是一个非常复杂的一部分;每个CPU都会将部分真实RAM复制到其高速缓存中。这意味着如果CPU 1在其缓存中具有地址X并且CPU 2读取或写入该地址,则可能发生有趣的事情。解决这个问题的技术是地址嗅探(CPU 1告知哪些地址是CPU 2想要查看并发送信号以告诉它该地址的内容现在无效),RAM分段(CPU不能实际看到大部分内存,所以这个问题实际上只有很小的重叠),或者是一个特殊的高速缓存总线,CPU的高速缓存彼此交谈(“我只是读这个地址”,“我在写X该地址“)。

这是一个非常复杂的领域,它变得更加复杂与每一天。据我们所知,这是继续保持Moore's Law几年的唯一方法。

欲了解更多详情,请参阅Wikipedia article