为什么 USB-C 是全双工的?

为什么 USB-C 是全双工的?

USB-C 有 4 条数据通道。每个方向各两条。我的问题是,为什么要这样做?

例如,USB4 的名义速度为 40Gbps,但如果您要将文件复制到磁盘,则只会使用一半的通道。使用所有四个通道,吞吐量可以翻倍至 80Gbps。

现在我明白了,如果您要双向复制文件,则可以同时使用 2 条通道在一个方向上发送 40Gbps,在另一个方向上发送 2 条通道发送 40Gbps。但是,如果在一个方向上一半时间(或使用一半频率)发送 80 Gbps,而另一半时间发送 80 Gbps,难道不能达到相同的结果吗?

也许这会导致一些额外的开销,从而真正减慢速度,但我不确定,特别是在频域中分割传输时。

半双工似乎可以“两全其美”,因为它允许 80Gbps,除非你恰好同时在两个方向上传输,在这种情况下你会得到标准的 40 Gbps。

答案1

后续的 USB 规范提供了一定程度的向后兼容性。因此,USB4 不能突然改变引脚的工作方式,否则会破坏这种兼容性。 维基百科条目

至于当初为什么要这么做呢?为了简单、便宜、通用。这就是联盟决定这么做的原因。

答案2

这样做是为了简单和易于使用。

计算领域中大多数现代高速数据互连都倾向于单向点对点链路。之所以首选单向点对点链路,是因为双向链路意味着一次只能有一台设备进行传输,如果两台设备都尝试传输,就会发生冲突。

双方必须检测到这种冲突,将数据保留一段时间,然后重新发送。这意味着需要更大的缓冲区和检测电子设备,以及确定谁应该等待多长时间才能尝试重新传输的复杂协议,而与此同时数据可能会堆积起来等待发送。

在超高速下,您必须“后退”并等待一段未知的空闲时间,这会严重限制可用带宽。(如果您使用固定时间段,则发生冲突的可能性可能会更大,而不是更小。)

如果所有数据都朝一个方向流动,单向数据链路可能会浪费数据线路,但它可以解决许多与半双工通信相关的问题。您不再需要等待发送数据,因为您知道线路始终畅通。您知道线路上的带宽量,因为冲突不再随机地切入线路。

您的电子设备变得更简单,速度更快,因为您已经消除了碰撞检测瓶颈,并且缓冲区可以变得更小,使用效率更高。

如果您知道数据主要朝一个方向传输,那么这样做可能会很浪费,但从线路的角度来看,设备之间的数据流实际上是随机的。您可能一会儿在读取文件,一会儿在发送显示数据。

对于显示器而言,它们要求数据的时间非常一致。线路上的数据冲突会导致数据包需要重新传输,这反过来又需要显示器等待更长时间才能显示新帧。快速刷新显示器可能无法在半双工系统中以一致的帧速率运行,因为冲突实际上是随机的。

半双工还要求每一方在发送和接收数据之间切换,这会减慢数据的周转速度。如果您正在传输数据,那么电子设备需要一小段时间来打开接收器或切换缓冲区。您可能会说您可以让接收电子设备一直处于打开状态,但这样您就会一直回显您发送的所有内容,并且您需要一些开关来告诉系统丢弃所有数据。全双工不需要这些。

全双工可能会“浪费”一半的数据线,但它使得整个系统更简单、更快、更可预测。

全双工至少意味着当您从硬盘读取文件时不会看到损坏的显示。

相关内容