为什么串行数据传输比并行快?

mod*_*est 137 data-transfer

直觉上,你会认为并行数据传输应该比串行数据传输快;在并行中,您同时传输许多位,而在串行中,您一次只传输一位。

那么是什么让SATA接口比PATA快,PCI-e设备比PCI快,串口比并行快?

mpy*_*mpy 147

你不能这样表述。

信号频率相同的情况下,串行传输比并行传输通过并行传输,您可以在每个周期传输一个字(例如 1 字节 = 8 位),但串行传输只能传输其中的一小部分(例如 1 位)。

现代设备使用串行传输的原因如下:

  • 您可以在不增加信号频率并行传输无极限,因为按照设计,从发射器需要的所有信号在接收器在到达同一时间。这对于高频无法保证,因为您无法保证所有信号线的信号传输时间相等(想想主板上的不同路径)。频率越高,细微的差异就越重要。因此,接收器必须等到所有信号线都稳定下来——显然,等待会降低传输速率。

  • 另一个好处(来自这篇文章)是需要考虑平行信号线的串扰。频率越高,串扰越明显,因此出现损坏字词的可能性和重新传输它的必要性就越高。1

因此,即使您使用串行传输每个周期传输的数据较少,您也可以使用更高的频率,从而导致更高的净传输速率。


1这也解释了为什么UDMA 电缆(具有更高传输速度的并行 ATA)的电线数量是引脚数量的两倍。每隔一根导线接地以减少串扰。

  • @Val 你没有阅读整个答案。当他们以相同的速度行驶时,公共汽车比汽车移动更多的人 - 但由于物理学的运作方式,这些汽车可以比公共汽车更快*路*,因此使用汽车比公共汽车更快地移动人们。数据链路也是如此:在相同的速度下,并行电缆比串行电缆传输更多的数据;然而,我们可以推动串行电缆的运行速度比并行电缆快得多。如果我们尝试加速并行电缆,物理会导致数据变成垃圾。 (11认同)
  • 接收者不必等待所有线路同时稳定下来——如今的快速并行传输涉及测量和补偿到达延迟*在每条线路上分别*。这甚至适用于像 CPU<->DRAM 这样的短板载链接!通过采用一些串行技术,如嵌入式时钟(例如 8b/10b 编码)和/或训练序列,这成为可能。 (9认同)

Sco*_*ain 70

问题是同步。

当你并行发送时,你必须在完全相同的时刻测量所有的线,随着你走得更快,那一刻的窗口尺寸变得越来越小,最终它会变得非常小,以至于一些电线可能仍然稳定而其他人在你用完时间之前完成了。

通过串行发送,您不再需要担心所有线路是否稳定,只需一根线路。并且使一条线路稳定 10 倍比以相同速度添加 10 条线路更具成本效益。

一些像 PCI Express 这样的东西可以两全其美,它们进行一组并行的串行连接(主板上的 16x 端口有 16 个串行连接)。通过这样做,每条线不需要与其他线完全同步,只要另一端的控制器可以使用正确的顺序重新排列数据“数据包”。

PCI-ExpressHow Stuff Works 页面对串行 PCI Express 如何比并行 PCI 或 PCI-X 更快进行了很好的深入解释。


TL;DR 版本:一旦达到非常高的频率,使单个连接的速度提高 16 倍比 8 个连接的速度提高 2 倍更容易。

  • 以太网的经济性不同于 SATA 之类的总线——电缆非常长且更换成本高,因此您最终专注于升级电子设备。早期的以太网使用 1 对电线,但在 4 对电缆上标准化,以备将来使用(在那个时代,并行是加快传输速度的明显方法)。由于串扰,结果证明这很困难,但由于电缆已经在那里,不使用它们是一种耻辱。最终,通过非常复杂的 DSP 处理->D2A-> ...cable...->A2D->DSP 处理来消除串扰成为可能。 (4认同)
  • Rich Seifert 写道:“确实,很多人称 IEEE 802.11 为“无线以太网”。虽然这在任何技术论据面前肯定是苍白的(它甚至不使用与 IEEE 802.3 相同的帧格式),但我可以接受它*当与技术差异无关紧要的人交谈*。” <——他的话。几年前我读到他主持和编辑 802.3x 并主持以太网 II(显然是 DIX 以太网,10Mbps 以太网) - 我读到他是“IEEE 802.3z 千兆以太网任务组的积极参与者”。因此,相当权威地说 802.11 不是以太网。 (2认同)

tyl*_*erl 19

并行本身并不是较慢,但它确实带来了串行通信所没有的挑战。

但是许多最快的链接仍然是并行的:计算机中的前端总线通常是高度并行的,并且通常是计算机中最快的互连之一。通过在单根光纤上传输多个波长,光纤连接也可以是高度并行的。不过,这很昂贵,因此并不典型。最常见的千兆以太网形式实际上是单线中 4 个并行通道的 250Mbit 以太网。

并行引入的最明显的挑战是“串扰”:当信号电流开始或停止时,它会在它旁边的电线上瞬间感应出一个小电流。信号越快,这种情况发生得越频繁,过滤掉的难度就越大。Parallel IDE 试图通过将带状电缆中的电线数量加倍,并将所有其他电线连接到地来最小化这个问题。但该解决方案只能让您走到这一步。长电缆、折叠和环路以及与其他带状电缆的接近度都使其成为非常高速信号的不可靠解决方案。

但是,如果您只使用一根信号线,那么您可以在硬件允许的情况下以最快的速度自由切换它。它还解决了一些信号传输速度比其他信号快的微妙同步问题。

理论上,两条线总是比一条线快两倍,但是您添加的每条信号线都会巧妙地使物理复杂化,最好避免这种情况。


Kaz*_*Kaz 13

串行数据传输并不比并行快。它更方便,因此开发已进入设备单元之间的快速外部串行接口。没有人愿意处理具有 50 个或更多导体的带状电缆。

在电路板上的芯片之间,像 I2C 这样只需要两根线的串行协议比路由大量并行迹线更容易处理。

但是在您的计算机中有很多示例,其中使用并行性来大量增加带宽。例如,不会一次从内存中读取一位字。事实上,缓存是在大块中重新填充的。光栅显示是另一个例子:并行访问多个内存库以更快地并行获取像素。内存带宽严重依赖于并行性。

这款被泰克吹捧为“世界上最快的商用 10 位高速 DAC”的 DAC 设备大量使用并行性将数据引入 DAC,数据通过 320 条线进入 DAC,通过两级多路复用减少到 10 条由主 12 GHZ 时钟的不同分频驱动。如果世界上最快的 10 位 DAC 可以使用单个串行输入线制成,那么它可能会。


Ben*_*kin 11

当逻辑门足够慢以至于您可以将类似的电气技术用于总线/电缆和片上传输时,并行是提高速度的明显方法。如果您已经以晶体管允许的速度切换电线,那么缩放的唯一方法是使用更多电线。

随着时间的推移,摩尔定律超越了电磁约束,因此与片上速度相比,通过电缆甚至车载总线的传输成为瓶颈。OTOH,速度差异允许末端的复杂处理更有效地使用信道。

  • 一旦传播延迟接近几个时钟的数量级,您就会开始担心反射等模拟效果 => 您需要沿途匹配阻抗(对于连接器尤其棘手),并且更喜欢点对点导线而不是多点总线。这就是 SCSI 需要端接的原因,也是 USB 需要集线器而不是简单的分离器的原因。

  • 在更高的速度下,您在任何给定时刻都有多个位在传输线上 => 您需要使用流水线协议(这就是英特尔的 FSB 协议变得非常复杂的原因;我认为像 PCIe 这样的打包协议是对​​这种复杂性的一种反应)。

    另一个影响是切换信号流方向的多周期惩罚——这就是为什么每个方向使用专用线的 Firewire、SATA 和 PCIe 的性能优于 USB 2.0。

  • 感应噪声,又名串扰,随频率上升。速度的最大进步来自采用差分信号,这极大地减少了串扰(从数学上讲,不平衡电荷的场随着 R^2 下降,但偶极子的场随着 R^3 下降)。

    我认为这就是造成“串行比并行更快”印象的原因——跳跃如此之大,以至于你可以降到 1 或 2 个差分对,但仍然比 LPT 或 IDE 电缆更快。电缆中只有一个信号对也有一个串扰优势,但这是次要的。

  • 导线传播延迟会发生变化(因为导线长度难以在 90º 匝、连接器等之间匹配,并且因为其他导体的寄生效应),这使得同步成为一个问题。

    解决方案是在每个接收器上设置可调延迟,并在启动时和/或从数据本身不断调整它们。对数据进行编码以避免连续出现 0 或 1 会产生很小的开销,但具有电气优势(避免直流漂移、控制频谱),最重要的是允许完全丢弃时钟线(这在 40信号,但对于串行电缆来说,拥有 1 或 2 对而不是 2 或 3 对是一件大事)。

请注意,我们在瓶颈抛并行-今天的BGA芯片有引脚的数百或数千,多氯联苯有越来越多的层。将此与旧的 40 引脚微控制器和 2 层 PCB 进行比较...

上述大多数技术对于并行和串行传输都是必不可少的。只是电线越长,通过更少的电线推动更高的速率就越有吸引力。