并行软件,串行硬件——为什么?

并行软件,串行硬件——为什么?

过去几年,我注意到计算机处理器和其他各种组件的设计方法发生了变化。例如,过去的处理器更注重单核的计算能力和每秒的计算次数,而现代处理器则较少关注单核,而更注重多线程操作以提高效率。许多现代总线使用串行连接(而不是并行连接)来消除信号之间的任何时序间隙并提高通信速度。

然而,随着这些模型在设计中被广泛接受,其他方法已被抛弃——这些方法可能有一些优点。因此,我提出两个问题:

1) 实际的大规模并行 CPU 是否存在?在这种情况下,CPU 使用所有并行总线传输长度超过一位的数据,并且可以使用基于光的信号通信在组件之间传递数据(特别是 PIC 信号)。

2) 并行 CPU 能否同时驱动和操作多个核心?能否将核心和子核心设计成微控制器,并在同一个软件下运行(而不是各自使用自己的软件),并共享内存?

我从多个来源获取了关于这个想法的信息,其中两个是:

我先为听起来像个完全的“新手”而道歉。如果我的信息不正确,请纠正我。我对这个领域有点陌生。如果您有任何阅读建议,请随时列出。

答案1

实用的大规模并行 CPU 是否存在?

当然可以存在。但它是否实用或经济则完全是另一个问题。平行线的问题在于它们通常是弯曲的。

例如,看看这两个图:

简单的直线,由 3 条平行线组成。效果很好

 S0 ------------------- S0
 S1 ------------------- S1
 S2 ------------------- S2
    ------------------- S0
    | |---------------- S1
    | | |-------------- S2
    | | |
   S0 S1 S2

连接路径的长度不同。

S0 到 S0 的长度为 22。S2
到 S2 的长度为 16。

这意味着从 S0 到 S0 的信号比从 S2 到 S2 的信号需要更长的时间才能到达。总线越宽(并行路径越多),这个问题就越严重。

在过去时钟速度较慢的情况下,这个问题并不严重,但在 GHz 频率下,定时变得更加关键。粗略地讲:电流通过铜的速度约为 280,000,000 米/秒,非常接近c

在 1GHz 时钟周期内,光将移动约 30 厘米(大约一英尺)。即在直线路径上移动 30 厘米。CPU 不包含任何直线路径,而且我们已经以 GHz 的倍数运行。

在这种情况下,CPU 使用所有并行总线传输长度超过一位的数据,并且可以使用基于光的信号通信在组件之间传递数据(特别是 PIC 信号)。

基于光的界面尚未完全投入生产。这方面还有大量研究。实验室中有一些工作模型,但尚未准备好进行大规模生产。


第二个问题:

2)并行 CPU 能否同时为多个核心供电并运行它们?

是的。没有理由它不能(类似于当前并行运行多个内核的 CPU)。如果我们获得更高效的通信,那么向这些内核提供数据就变得更加容易,从而更容易让它们始终处于加载状态。


核心和子核心是否可以像微控制器一样设计和处理,在一个软件下运行(而不是每个都使用自己的软件)并共享内存?

是的,为什么不呢。想想大型机 (AS/400)。或者多 CPU 台式机。通常不会这样做,但即使是一台具有多个 CPU 的简单现代台式机,也是一种设置,其中每个 CPU 运行自己的微代码,有自己的内存控制器,并且您可以将自己的程序固定到特定的 CPU。您可以更进一步,甚至可以在一个特定的 CPU/核心上运行特定的操作系统(我认为您所说的“软件”就是这个意思)。

这意味着使用一个可以与任何其他操作系统协作的操作系统,因此要么是专门这样编写的,要么是在类型 1 虚拟机管理程序中运行的。

相关内容