为什么 CPU 通常只连接到一条总线?

电器工程 中央处理器 计算机架构 电脑 公共汽车 处理器
2022-01-27 21:59:54

我在这里找到了主板架构:

在此处输入图像描述

这看起来是主板的典型布局。编辑:嗯,显然它不再那么典型了。

为什么 CPU只连接 1 条总线?前端总线看起来像是一个主要瓶颈。将 2 或 3 条总线直接接入 CPU 不是更好吗?

我想象一条总线用于 RAM,一条用于显卡,另一条用于连接硬盘驱动器、USB 端口和其他所有东西的某种桥接器。我以这种方式拆分它的原因是因为与内存相比,硬盘数据速率较慢。

这样做有什么困难吗?我看不出成本是如何计算的,因为现有的图表已经有不少于七辆公共汽车。事实上,通过使用更多的直达巴士,我们可以减少巴士的总数,甚至可能减少一座桥梁。

那么这有什么问题吗?某处有重大缺点吗?我唯一能想到的可能是 CPU 和内核的复杂性更高,这让我认为这种瓶颈总线架构是在过去事情不那么复杂的时候它是如何完成的,并且设计在标准化方面保持不变。

编辑:我忘了提到Watchdog Monitor我知道我在一些图表中看到过。据推测,瓶颈总线将使看门狗更容易监控一切。这可能与它有关吗?

4个回答

您展示的方法对于主板来说是一种相当古老的拓扑结构——它早于 PCIe,这确实让它回到了 00 年代的某个地方。原因主要是由于整合困难。

基本上 15 年前,从商业角度来看,将所有东西集成到单个芯片上的技术几乎不存在,而且这样做非常困难。将所有东西集成起来会导致硅片尺寸非常大,从而导致产量大大降低。良率本质上是由于缺陷而在晶圆上损失了多少管芯——管芯越大,缺陷的可能性就越高。

为了解决这个问题,您只需将设计拆分为多个芯片 - 在主板的情况下,这最终是 CPU、北桥和南桥。CPU仅限于具有高速互连的处理器(据我所知称为前端总线)。然后,您将拥有集成了内存控制器、图形连接(例如 AGP,一种古老的计算技术)的北桥,以及与南桥的另一个较慢的链接。南桥用于处理扩展卡、硬盘驱动器、CD驱动器、音频等。


在过去的 20 年中,能够以越来越小的工艺节点制造具有越来越高可靠性的半导体意味着将所有东西集成到单个芯片上成为可能。更小的晶体管意味着更高的密度,因此您可以容纳更多,改进的制造工艺意味着更高的产量。事实上,它不仅更具成本效益,而且保持现代计算机速度的提高也变得至关重要。

正如您正确指出的那样,拥有一个与北桥的互连成为瓶颈。如果您可以将所有东西都集成到 CPU 上,包括 PCIe 根复合体和系统内存控制器,那么您会突然在图形和计算的关键设备之间建立极高速的链接——在 PCB 上,您可能正在谈论 Gbps 数量级的速度,模具可以达到 Tbps 数量级的速度!

此新拓扑反映在此图中:

新拓扑

图片来源

如您所见,在这种情况下,图形和内存控制器都集成到 CPU 芯片上。虽然你仍然有一个链接到实际上是由北桥和南桥的一些位组成的单个芯片组(图中的芯片组),但现在这个互连速度非常快——可能达到 100+Gbps。仍然比模具慢,但比旧的前端总线快得多。

为什么不完全整合一切?好吧,主板制造商仍然需要一些可定制性 - 多少 PCIe 插槽,多少 SATA 连接,什么音频控制器等。

事实上,一些移动处理器确实更多地集成到了 CPU 芯片上——想想使用 ARM 处理器变体的单板计算机。在这种情况下,由于 ARM 出租了 CPU 设计,制造商仍然可以按照他们认为合适的方式定制他们的芯片,并集成他们想要的任何控制器/接口。

我不能说我是计算机架构方面的专家,但我会尝试回答您的问题。

这看起来是主板的典型布局。

正如汤姆所说,这不再是真的。大多数现代 CPU 都有一个集成的北桥。南桥通常要么被集成,要么被新建筑取代;英特尔的芯片组用平台控制器集线器“取代”了南桥,平台控制器集线器通过 DMI 总线直接与 CPU 通信。

为什么 CPU 只连接 1 条总线?前端总线看起来像是一个主要瓶颈。将 2 或 3 条总线直接接入 CPU 不是更好吗?

宽(64 位)总线很昂贵,它们需要大量的总线收发器和许多 I/O 引脚。唯一需要巨大尖叫快速总线的设备是显卡和 RAM。其他所有东西(SATA、PCI、USB、串行等)都比较慢,并且不会经常访问。因此,为什么在上述架构中,所有那些“较慢”的外设都通过南桥作为单个总线设备集中在一起:处理器不希望对每个小总线事务进行仲裁,因此可以聚合所有慢/不频繁的总线事务并由南桥管理,然后以更悠闲的速度连接到其他外围设备。

现在,重要的是要提一下,当我在上面说 SATA/PCI/USB/串行“慢”时,这主要是一个历史点,今天变得不那么真实了。随着 SSD 在旋转磁盘和快速 PCIe 外围设备以及 USB 3.0、Thunderbolt 以及可能的 10G 以太网(很快)上的采用,“慢速”外围设备带宽迅速变得非常重要。过去,北桥和南桥之间的巴士并没有太大的瓶颈,但现在不再是这样了。所以是的,架构正在朝着更多直接连接到 CPU 的总线发展。

这样做有什么困难吗?我看不出成本是如何计算的,因为现有的图表已经有不少于七辆公共汽车。

这将是更多的总线供处理器管理,更多的处理器芯片来处理总线。这是昂贵的。在上图中,并非所有总线都是平等的。FSB 尖叫得很快,LPC 没有。快速总线需要快速芯片,而慢速总线则不需要,因此,如果您可以将慢速总线从 CPU 移动到另一个芯片,那么您的生活会更轻松。

然而,如上所述,随着高带宽设备的日益普及,越来越多的总线直接连接到处理器,特别是在 SoC/更高集成度的架构中。通过在 CPU 芯片上放置越来越多的控制器,更容易获得非常高的带宽。

编辑:我忘了提到看门狗监视器。我知道我在一些图表中看到过。据推测,瓶颈总线将使看门狗更容易监控一切。这可能与它有关吗?

不,这不是看门狗的真正作用。看门狗只是在/如果它们锁定时重新启动各种事物;它并没有真正看到穿过公共汽车的所有东西(它远没有那么复杂!)。

CPU 将直接连接到的总线数量通常会限制在 CPU 中可以同时访问事物的不同部分的数量。CPU 具有程序总线和数据总线并允许两者同时运行的情况并不少见,尤其是在嵌入式处理器和 DSP 领域。然而,典型的单处理器只能从每个指令周期获取一条指令中受益,并且每个指令周期只能访问一个数据存储器位置,因此超出一个程序存储器总线和一个程序存储器总线不会有太多好处数据存储器总线。为了能够对从两个不同的流中获取的数据执行某些类型的数学运算,

对于具有多个执行单元的处理器,为每个执行单元设置一个单独的总线可能会有所帮助,这样如果有多个“外部”总线单元需要从不同的“外部”总线获取内容,则可以在不受干扰的情况下这样做。除非有逻辑上的原因,不同的执行单元访问的东西可以通过 CPU 外部的不同总线访问,否则,将来自 CPU 的单独总线馈送到仲裁单元,该仲裁单元一次只能将一个请求中继到一个特定的外部设备无济于事。总线很昂贵,因此在一条总线上安装两个执行单元通常比使用单独的总线便宜。如果使用单独的总线可以显着提高性能,这可能证明成本是合理的,但否则任何资源(芯片面积等)都需要成本。

考虑 CPU 封装上具有多条宽总线所需的引脚数。例如,八个 CPU 内核,每个内核都有一个 64 位数据总线,以及用于其他用途的各种其他引脚。今天有没有可能有 800 个引脚的 CPU 封装?