如何比系统时钟更快地进行通信

电器工程 沟通 时钟速度 霹雳
2022-01-10 04:24:50

我今天正在阅读新的(ish)Thunderbolt 3,并且对 40Gbps 的指定速度印象深刻。然后我查看了英特尔最新的 i9 处理器速度……最大约 4.2GHz。一个系统如何能够以比驱动它的时钟快近 10 倍的速度进行通信?即使是并行通信也需要 10 个通道才能达到 40Gbps,而据我所知,USB-C 只有 4 个左右。

阅读回复后,似乎有两个部分:CPU/系统如何以如此高的速度进行通信,以及高数据速率(似乎是使用许多并行线完成的)如何通过迅雷的瓶颈电缆本身,它只有少量的并行通道。

4个回答

我想混乱是您假设每个时钟周期只能发送一位。通信方案有很多方法可以基本上对每个符号进行多于一位的编码。符号是作为通信系统中传输原子的抽象概念。

这个话题实在是太大了,无法深入回答这个问题,但想象一下,您不受二进制值的限制,而是可以发送 1024 个电压中的一个作为符号。实际上,这将是每个符号 10 位信息,并且您将获得 10 倍的“时钟速度”带宽。例如,旧的 NTSC 视频就是这样编码数据的。

获得这种带宽的另一种方法是使用缓冲,然后将传输委托给专门的发送器和接收器,有时称为 SERDES(用于串行器/解串器)块。如果没有能够跟上的源或接收器,您将无法维持这些吞吐量,但您可以使用类似的方法减少计算节点之间信息块传输的延迟。查找锁相环(又名 PLL),因为 FPGA 和 ASIC 可以使用这些从基础时钟中获取更快的时钟来执行此类操作。

另一种方法是简单地使用许多并行通道来传输数据。想想个人电脑上的旧并行端口,在一个时钟中,您传输一大堆位,每个位都在自己的专用线上。例如,USB-C 及其同类产品的数据引脚比一个 RX 和一个 TX 多得多。

带宽是一种综合属性,涉及到这些技术的各种净效应,因为许多技术甚至可以一起使用。

其他答案更多地集中在Thunderbolt方面,但让我们回顾一下声明

英特尔最新的 i9 处理器速度……最高约 4.2GHz

4.2 GHz 是系统时钟,它(以非常非常简单的方式)与每个内核每秒的指令数相当(实际上比这要复杂得多,因为并非所有指令都需要相同的时间来执行,有等待时间等)。

但是在每个周期,CPU 都会处理数据(从寄存器、缓存、RAM 和可能的 I/O 到/从最快到最慢)。与此同时,其他外设也可以在不涉及 CPU 的情况下从 RAM 读取/写入 RAM(这称为 DMA)。

主要的瓶颈通常是 RAM。它需要足够快以根据需要为 CPU 提供数据(用于运行指令和处理数据)、执行 DMA,并且在某些情况下与 GPU 共享或充当视频的帧缓冲区(然后有一些组件正在读取充当帧缓冲区的 RAM,以在每一帧上将其发送到视频输出 — 对于 60 Hz 的全高清 1920 x 1080 分辨率,24 位颜色,接近 3 Gbits/s,对于 4K@60 fps,是 4 倍)。

RAM 使用宽总线,通常为 32 或 64 位宽。可能有几个单独的通道。目前最快的 RAM 似乎是 DDR4-3200,它允许每秒 32 亿次 64 位传输。即每通道 25600 Mbytes/s 或 204800 Mbits/s(超过 200 Gbits/s)。

一个 i9-9980XE CPU 可以有 4 个内存通道。这意味着 RAM 可以支持超过 800 Gbits/s,因此 40 Gbps 与之相比只是花生。

关于 Thunderbolt 令人印象深刻的部分是通过相对简单的电缆(不是数百个连接器,支持多个 64 位 RAM 总线所需),在更长的距离(不是主板上的几厘米)上获得这种速度。

处理器速度和外设速度之间没有直接关系。

不是10×。Thunderbolt 3 - \$\frac {40 Gbps} {8 位/字节} = 5 Gbyte/s\$对于 4.2GHz 64 位处理器来说,这个速率似乎并不现实。

但这不是我们在这里要处理的。我们有一个带有串行通信+图形卡的外围设备。现有能力的四倍数据 + 两倍视频带宽。正如链接所说,笔记本电脑的桌面性能。一个端口将它们连接起来,并在黑暗中将它们捆绑在一起。

来自Thunderbolt 3 – 无所不能的 USB-C

霹雳 3

用户长期以来一直希望移动计算机具有桌面级性能。Thunderbolt 旨在同时支持单根电缆上可用的最快数据和大多数视频带宽,同时还提供电源。然后最近 USB 小组推出了 USB-C 连接器,它体积小、可逆、快速、供电,并允许除 USB 之外的其他 I/O 在其上运行,最大限度地发挥其潜力。因此,Thunderbolt 3 是自问世以来最大的进步,将 Thunderbolt 带入了 40Gbps 的 USB-C,兑现了它的承诺,创造了一个可以完成所有任务的紧凑型端口。


CPU中有多个时钟;通过运行更快的时钟或通过实现并行通信,外围设备的运行速度可以比列出的 CPU 速度快得多。

没有,没有,没有。

计算机中有多个时钟。CPU内部有一个时钟。外设可以从系统时钟(较慢)中获取其时钟速率,也可以使用晶体来制作自己的时钟。

并行通信已经过时了。并行通信仅限于短距离。USB、I2C、I2S、CAN等都是串行协议。

您的 4.2GHz 处理器无法以 4.2GHz 进行通信。那是时钟频率,更好的指示是 MIP。那是程序指令,而不是与外部通信。

您不能将运行频率为 4.2GHz 的 64 位处理器等同于运行频率为 20GHz 的串行外设。20GHz 时钟并非源自 4.2GHz。在 20GHz 时,频率更像是模拟频率而不是数字频率。

现在,经过适当设计,4.2GHz 64 位处理器可能会以串行方式执行 20GHz(5 Gbyte/s),但这不是它的目的。

有许多技术可以将大量信息编码或解码到一个“通信桶/货车”(称为符号)中。R-2R 型数模转换器(如下图所示)是最简单但有效的传输方法之一,例如比通信时钟快 16 倍 - 前提是接收器的模数转换器在时钟周期内转换(主要限制:噪音)。

在此处输入图像描述

如今,模拟通信不仅使用幅度,而且使用相位信息在通信时钟周期中填充更多位,如本主题所示(免责声明:我在那里有一个答案,但这是我记得的唯一一个讨论这个问题的主题) . 这只是大量技术的一个例子,这些技术随着时间的流逝而变得越来越复杂。

在此处输入图像描述

对于数字通信,它主要取决于:1)并行线的数量(1 用于串行通信,USB 是串行链路,即使它有两条数据线,它们的值总是彼此相反,以通过以下方式提高对共模噪声的鲁棒性差异)和 2)压缩。当您通过压缩将价值 100MB 的文件发送到限制为 10MB 的邮箱时,您实际上是在比物理未压缩数据速率限制多一个时钟周期内进行传输。正如有许多调制技术(见上文)一样,也有许多压缩技术。请注意,有专用的压缩/解压缩芯片可充分利用压缩作为提高传输速度的一种手段。请注意,我并不是说这是对视频传输所做的,因为压缩/解压缩会增加延迟。它'

最后,数据速率限制实际上是给定错误率的限制。如果您向您的通信协议添加一些编码来检测错误并自动纠正它们(例如在两端使用状态机),您可以将数据速率增加到超过相同错误率的规定限制。

这就是数据进出计算机的速度比 CPU 时钟快的方式,或者“一个男人/女人可以将更多或更少的桶从你的房子转移到另一个”(幅度和/或相位调制、压缩、编码......) .

在此处输入图像描述

现在,对于“如何将桶从你的门拿到你家中任何你想要的地方”,这取决于你的数据总线的宽度:64 位计算机因此从 32 位计算机接管,每处理两倍的数据时钟周期。这就是您家中同一个人可以同时抓起的桶数(假设您生活在放射性废物之上)。如果内核的时钟被逐步淘汰以在数据总线上更快地移动数据,我认为处理内核可能会对纯传输产生影响,但通常它们不仅共享相同的总线而且共享相同的时钟(最大时钟速率肯定设置为数据沿总线的最大传播时间)。这显然是一种简单化的观点,许多因素都在起作用——但它的好处是增加了更多可能的理由。