我认为 DRAM 总线宽度在 AMD64 之前扩展到了当前的 64 位。巧合的是,它与字长相匹配。 (P5 Pentium 已经guaranteed atomicity of 64-bit aligned transfers,因为它可以通过其 64 位数据总线轻松做到这一点。当然,这只适用于 32 位微架构上的 x87(和更高版本的 MMX)加载/存储。)
见下文:High Bandwidth Memory 确实使用了更宽的总线,因为您可以对时钟进行多高的限制,并且在某些时候,使其大规模并行确实会变得有利。
如果有一个 64 字节宽度的总线,这似乎会快得多,这将允许一次获取整个缓存行。
突发传输大小不必与总线宽度相关。与 DRAM 之间的传输确实发生在高速缓存行大小的突发中。 CPU 不必为每个 64 位发送单独的命令,只需设置整个高速缓存行(读取或写入)的突发传输。如果它想要更少,它实际上必须发送an abort-burst command;没有“单字节”或“单字”传输命令。 (是的,SDRAM wiki 文章仍然适用于 DDR3/DDR4。)
您是否认为需要更宽的总线来减少命令开销?它们不是。(SDRAM 命令通过与数据不同的引脚发送,因此可以流水线化命令,在当前突发传输期间设置下一个突发。或者在打开新行时更早开始(DRAM页面)在另一个银行或芯片上。DDR4 wiki 页面有一个nice chart of commands,显示地址引脚对于某些命令如何具有其他含义。)
高速并行总线很难设计。主板上 CPU 插槽和每个 DRAM 插槽之间的所有走线必须在不到 1 个时钟周期内具有相同的传播延迟。这意味着它们的长度几乎相同,并控制其他走线的电感和电容,因为传输线效应在足够高的频率下至关重要。
极宽的总线会阻止您将其计时,因为您无法达到相同的容差。 SATA 和 PCIe 都用高速串行总线代替了并行总线(IDE 和 PCI)。 (PCIe 使用多个并行通道,但每个通道都是其自己的独立链路,不只是并行总线的一部分。
从 CPU 插槽到每个通道的 DRAM 插槽使用 512 条数据线是完全不切实际的。典型的台式机/笔记本电脑 CPU 使用双通道内存控制器(因此两个 DIMM 可以同时做不同的事情),所以这将是主板上的 1024 迹线和 CPU 插槽上的针脚。 (这是在固定数量的控制线之上,如 RAS、CAS 等。)
以非常高时钟速度运行外部总线确实会出现问题,因此需要在宽度和时钟速度之间进行权衡。
有关 DRAM 的更多信息,请参阅 Ulrich Drepper 的 What Every Programmer Should Know About Memory。它在 DRAM 模块、地址线和复用器/解复用器的硬件设计方面获得了惊人的技术性。
请注意,RDRAM (RAMBUS) 使用高速 16 位总线,并且具有比 PC-133 SDRAM 更高的带宽(1600MB/s 与 1066MB/s)。 (它的延迟更差,运行更热,并且由于一些技术和一些非技术原因在市场上失败了)。
我想这有助于使用更宽的总线,直到您可以在单个周期内从物理 DRAM 芯片读取的宽度,因此您不需要那么多缓冲(更低的延迟)。
Ulrich Drepper 的论文(以上链接)证实了这一点:
基于地址行a2
a3 一栏的内容
然后可用于 DRAM 的数据引脚
芯片。
这在一个数字上并行发生了很多次
DRAM 芯片产生相应的总位数
到数据总线的宽度。
在 CPU 内部,总线要宽得多。 Core2 到 IvyBridge 在不同级别的缓存之间以及从执行单元到 L1 使用 128 位数据路径。 Haswell widened that to 256b (32B), with a 64B path between L1 and L2
High Bandwidth Memory 旨在与控制它的任何东西更紧密地耦合,并为每个通道使用 128 位总线,有 8 个通道。 (总带宽为 128GB/s)。 HBM2 的速度是原来的两倍,但宽度相同。
128b 的 8 个通道不是 1024b 总线,而是在拥有一个难以保持同步的极宽总线与将每个位放在单独的通道(如 PCIe)上的开销过多之间进行权衡。如果您需要强大的信号和连接器,单独通道上的每个位都很好,但是当您可以更好地控制事物时(例如,当内存没有插入时),您可以使用宽快速总线。
也许有两种不同的数据总线宽度,一种用于标准高速缓存行提取,另一种用于仅适用于字长内存访问的外部硬件 (DMA)。
情况已经如此。 DRAM 控制器集成到 CPU 中,因此来自 SATA 控制器和网卡等系统设备的通信必须通过一条总线 (PCIe) 从它们到 CPU,然后再到 RAM (DDR3/DDR4)。
从 CPU 内部存储器架构到系统其余部分的桥接称为系统代理(这基本上取代了过去在没有集成内存控制器的系统中主板上单独的北桥芯片)。芯片组南桥通过它提供的一些 PCIe 通道与其通信。
在多套接字系统上,缓存一致性流量和非本地内存访问也必须在套接字之间发生。 AMD 可能仍使用超传输(64 位总线)。英特尔硬件在连接至强内部内核的环形总线上有一个额外的站点,这个额外的连接是其他套接字的数据输入或输出的地方。 IDK 物理总线的宽度。