代码之家  ›  专栏  ›  技术社区  ›  Xinus

并行处理实际上可行吗?

  •  4
  • Xinus  · 技术社区  · 15 年前

    我见过在同一主板上有两个处理器的新电脑。 同一个主板上的两个处理器是如何正常工作的,因为它就像两个大脑(试图)控制一个身体一样,实际上它们是如何进行并行处理的,是吗?

    1 回复  |  直到 15 年前
        1
  •  7
  •   Aaron Digulla    15 年前

    如果两个(或多个)CPU/核心想要访问同一个资源,则有一些规则决定谁获胜。通常,一个CPU稍后会尝试访问它,因此它必须等待。如果两个CPU实际上希望在完全相同的时间访问同一个资源,那么规则将确保一个CPU获胜。今天,规则变得非常复杂,以确保一个CPU不能占用一个资源(耗尽另一个)。

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

    这是一个非常复杂的地区,每天都变得更加复杂。据我们所知,这是保持 Moore's Law 再过几年。

    有关详细信息,请参阅 Wikipedia article .