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


133

凭直觉,您会认为并行数据传输应该比串行数据传输快;并行操作是同时传输许多位,而串行操作是一次传输一位。

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


也许是,但是,如果是这样,我会看到所有这些intel.com/content/www/us/en/chipsets/performance-chipsets / ... 它说有多个PCIe通道,我在Wikipedia上查找了FDI,它说: 2个独立的4位固定频率链接/通道/管道和4个链接的DMI对话。(
补充

2
一切都归结为时钟速率。
Daniel R Hicks

36
现有的三个答案没有提及经济学,即成本。制作一个非常快速的串行接口要比非常快的并行接口便宜。对于传输线,仅使用几根电线的串行电缆要比并行电缆便宜,而屏蔽电缆很难屏蔽且昂贵。
锯末

13
回到DB25DB9连接的时代,您很幸运地通过串行方式推动了115 kbit / s的速度,而并行通过8个并行数据引脚使您达到了12 Mbit / s
CVn

Answers:


145

您不能以此方式制定。

相同的信号频率下,串行传输比并行传输要慢使用并行传输,您可以每个周期传输一个字(例如1字节= 8位),而使用串行传输时,仅传输其一小部分(例如1位)。

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

  • 您可以在不增加信号频率并行传输无极限,因为按照设计,需要在接收器在到达从发射的所有信号在同一时间。这不能保证在高频下使用,因为您不能保证所有信号线的信号传输时间都相等(请考虑主板上的不同路径)。频率越高,差异越小。因此,接收器必须等到所有信号线都建立好之后,显然,等待会降低传输速率。

  • 另一个好处(来自本文)是,需要考虑与并行信号线的串扰。频率越高,串扰越明显,随之而来的词损坏和重传的可能性也就越高。1

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


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


9
接收方不必等待所有线路都同时稳定-如今的快速并行传输涉及分别测量然后补偿每条线路上的到达延迟。这甚至适用于短板载链接,例如CPU <-> DRAM!通过采用一些串行技术,例如嵌入式时钟(例如8b / 10b编码)和/或训练序列,这成为可能。
贝尼·切尔尼亚夫斯基-帕斯金

您的阐述与您的陈述相矛盾。您开始声明串行速度较慢,并解释为什么它速度更快。我认为这是造成混乱的根源,想知道如何回答。
2013年

11
@Val您没有阅读完整的答案。一个公交移动更多的人比汽车,当他们走一样的速度-但因为物理方式的作品,这些车可以去的方式比公交车快,所以它是速度更快,通过使用汽车比公共汽车打动人心。数据链路也是如此:以相同的速度,并行电缆比串行电缆传输更多的数据;但是,我们可以推动串行电缆运行,其速度要比并行电缆快得多。如果我们尝试加快并行电缆的速度,则物理学会导致数据变得垃圾。
Darth Android

1
实际上我看到了颠倒的感觉。吞吐量较高的是客运(公共)运输,因为您不会与所有人一起运输汽车,尽管人们更愿意以平行汽车的形式单独移动,因此要开发广泛的郊区基础设施,而不是将人们打包到紧凑的3d城市中。我认为串行比特的爆发就像火车一样。大致来说,发送数据包很昂贵,但是每个数据包发送多少数据都没有关系。因此,发送1000比特的火车比1000并行的汽车便宜1000倍。
2013年

1
@Val是运输的原理,是的,但是电磁物理学的原理不是这样,也不能作为类比。这里没有人在谈论效率,只是速度和吞吐量。即使并行链接可以在每个时钟周期内移动更多数据,串行链接也可以在每个时钟周期内移动较少的数据,但是在同一时间范围内具有更多的时钟周期,因此吞吐量仍然更高。
Darth Android

70

问题是同步。

并行发送时,必须在同一时刻测量所有线路,因为随着速度的加快,该时刻的窗口尺寸越来越小,最终可能变得如此小,以至于某些电线可能仍在稳定而其他人则在您没时间用完之前就完成了。

通过串行发送,您不再需要担心所有线路都稳定下来,而只需担心一条线路。而且,使一条线的稳定速度比以相同速度添加10条线的速度快10倍,具有更高的成本效益。

诸如PCI Express之类的事情在两个方面都发挥了最大的作用,它们完成了一组并行的串行连接(主板上的16x端口具有16个串行连接)。通过这样做,只要另一端的控制器可以按照正确的顺序对数据的“数据包”进行重新排序,就不必使每一行与其他行完美同步。

对PCI-Express的如何工作的页面做了深入的PCI Express的串行如何可以比并行PCI或PCI-X快了很好的explination。


TL; DR版本:一旦达到很高的频率,使单个连接的传输速度比8个连接的传输速度快2倍就容易了。


1
@barlop您可以在以太网中进行并行处理,但是在用户使用中它并不是很常见,它的术语称为Channel Bonding--correction:使用无线频率绑定已在消费者使用中变得很普遍。802.11n如何才能获得最高600 Mbit / s的速率,它们最多使用4个同时串行流。
Scott Chamberlain

1
@barlop我给您一个错误的术语,“通道绑定”是更广泛的通用术语,特别是对于以太网,您所要求的正确术语称为“ 链路聚合”
Scott Chamberlain

2
Rich Seifert写道:“的确,许多人将IEEE 802.11称为“无线以太网”。尽管这肯定会遇到任何技术争论(它甚至没有使用与IEEE 802.3相同的帧格式),但我可以在讲话时接受它对于技术差异并不重要的人们而言。” <-他的话。几年前,我读到他主持和编辑802.3x并主持了以太网II(显然是DIX以太网,即10Mbps以太网),并且我读到他是“ IEEE 802.3z千兆以太网任务组的积极参与者”。因此,相当权威地说802.11不是以太网。
barlop

1
1000BASE-T以太网(802.3ab,“千兆以太网”)并行使用4条线对。
MSalters 2013年

4
以太网的经济性不同于SATA之类的总线-电缆非常长且更换成本很高,因此您在最后侧重于升级电子产品。早期的以太网使用1对电线,但对4对电缆进行了标准化,从而有望将来使用(在那个时代,并行是明显的更快传输方法)。由于串扰,事实证明这很难,但是由于电缆已经在那儿了,所以不使用它们是很可惜的。最终,通过非常复杂的DSP处理-> D2A-> ...电缆...-> A2D-> DSP处理,可以消除串扰。
Beni Cherniavsky-Paskin 2013年

19

并行并不是天生就较慢,但是它确实带来了串行通信没有的挑战。

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

并行性带来的最明显的挑战是“串扰”:当信号电流开始或停止时,它会在其旁边的导线上瞬间产生一个小电流。信号越快,发生的频率就越高,就越难以过滤。并行IDE尝试通过将带状电缆中的电线数量加倍,并将每条其他电线连接到地面来最小化此问题。但是,这种解决方案只能带您走远。长电缆,折叠和回线以及与其他带状电缆的距离都使这对于高速信号而言是不可靠的解决方案。

但是,如果只使用一根信号线,那么您可以自由地按照硬件允许的速度进行切换。它还解决了一些信号传输速度快于其他信号的细微同步问题。

理论上,两条线的速度通常是一根线的两倍,但是添加的每条信号线都会使物理复杂化,因此最好避免。


自从Intel Core 2时代以来,FSB就不再是主流CPU设计的一部分,AMD早在几年前就以AMD64设计将其落后。取而代之的是,两者都将内存控制器移至CPU本身,并通过快速/窄总线而不是FSB的(相对)宽/慢设计将其他所有设备连接到CPU。
Dan Neely 2013年

降低串扰的技术已有数十年的历史了,但是正如对这些问题的评论所指出的那样,它们会增加成本,并且其中一些会使同步问题变得更糟(具有不同扭曲比的双绞线的阻抗略有变化,这意味着传输速度的变化,以及...)。
dmckee 2013年

13

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

在电路板上的芯片之间,仅需要两条线的串行协议(如I2C)比路由大量并行走线要容易得多。

但是,在计算机内部,有很多使用并行处理来大量增加带宽的示例。例如,单词不能一次从存储器中读取一位。实际上,高速缓存是在大块中重新填充的。光栅显示是另一个示例:并行访问多个存储库以并行方式更快地获得像素。内存带宽严重依赖于并行性。

泰克公司将这种DAC器件誉为“世界上最快的商用10位高速DAC”,它大量利用并行性来引入数据,这些数据通过320条线进入DAC,通过两级多路复用减少到10条由主机12 GHZ时钟的不同部分驱动。如果世界上最快的10位DAC可以使用一条串行输入线制成,那么它可能会做到。


1
+1代表50针带状电缆。使用SAS / SATA电缆的动机之一是,宽电缆会影响机箱内的气流。
jqa 2013年

11

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

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

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

  • 在更高的速度下,您在线路上的任何给定时刻都有多个位在飞行中=>您需要使用流水线协议(这就是Intel FSB协议变得如此复杂的原因;我认为像PCIe这样的分组协议就是对这种复杂性的一种反应)。

    另一个影响是切换信号流方向的多周期损失-这就是为什么在每个方向上使用专用线的Firewire和SATA和PCIe优于USB 2.0的原因。

  • 感应噪声(即串扰)随频率上升。速度的最大进步来自差分信号的采用,该信号显着降低了串扰(数学上,不平衡电荷的场下降为R ^ 2,而偶极子的场下降为R ^ 3)。

    我认为这就是造成“串行速度比并行速度更快”的原因- 跳变太大,您可以下降到1或2个差分对,但仍然比LPT或IDE电缆快。电缆中只有一对信号对也能带来串扰,但这是次要的。

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

    解决方案是在每个接收器处具有可调整的延迟,并在启动时和/或从数据本身连续对其进行调整。对数据进行编码以避免出现0或1的条纹会产生少量开销,但具有电方面的好处(避免DC漂移,控制频谱),最重要的是允许将时钟线全部掉线(在40根之内这没什么大不了的)信号,但是对于串行电缆而言,具有1对或2对而不是2对或3对是非常重要的)。

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.