模拟信号运算比数字运算快吗?

电器工程 数字逻辑 模拟 信号处理 计算机架构 浮点
2022-01-13 08:14:10

如果使用模拟信号算法(以准确性和精度为代价)而不是数字 FPU(CPU -> DAC -> 模拟 FPU -> ADC -> CPU),理论上是否可以加速现代处理器?

是否可以进行模拟信号分割(因为 FPU 乘法通常需要一个 CPU 周期)?

4个回答

从根本上说,所有电路都是模拟的。使用模拟电压或电流执行计算的问题是噪声和失真的组合。模拟电路容易受到噪声的影响,并且很难使模拟电路在巨大数量级上呈线性。模拟电路的每一级都会给信号增加噪声和/或失真。这可以控制,但不能消除。

数字电路(即 CMOS)基本上通过仅使用两个级别来表示信息来回避整个问题,每个级别都重新生成信号。谁在乎输出是否下降了 10%,它只需要高于或低于阈值即可。谁在乎输出是否失真了 10%,它只需要高于或低于阈值即可。在每次阈值比较时,信号基本上都会重新生成,并且会出现噪声/非线性问题/等。剥离出来。这是通过放大和削波输入信号来完成的——CMOS 反相器只是一个非常简单的放大器,由两个晶体管制成,作为比较器开环运行。如果水平被推到阈值之上,那么你会得到一点错误。处理器通常设计为具有大约 10^-20,IIRC 的误码率。因为这,数字电路非常强大——它们能够在非常广泛的条件下运行,因为线性度和噪声基本上都不是问题。以数字方式处理 64 位数字几乎是微不足道的。64 位代表 385 dB 的动态范围。那是19个数量级。在地狱里,你不可能用模拟电路接近它。如果您的分辨率是 1 皮伏 (10^-12)(这基本上会立即被热噪声淹没),那么您必须支持最大值 10^7。这是10兆伏。绝对没有办法在模拟的那种动态范围内进行操作——这简直是不可能的。模拟电路的另一个重要权衡是带宽/速度/响应时间和噪声/动态范围。窄带宽电路将平均噪声并在宽动态范围内表现良好。权衡是它们很慢。宽带宽电路速度很快,但噪声是一个更大的问题,因此动态范围受到限制。使用数字技术,您可以解决问题以增加动态范围或通过并行处理来提高速度,或两者兼而有之。

然而,对于某些操作,模拟具有优势——更快、更简单、功耗更低等。数字必须在电平和时间上进行量化。模拟在两者中都是连续的。模拟胜出的一个例子是您的无线网卡中的无线电接收器。输入信号的频率为 2.4 GHz。一个全数字接收器需要一个每秒至少运行 5 千兆样本的 ADC。这将消耗大量电力。这甚至没有考虑 ADC 之后的处理。目前,这种速度的 ADC 实际上只用于非常高性能的基带通信系统(例如高符号率相干光调制)和测试设备中。但是,少数晶体管和无源器件可用于下变频 2。

底线是模拟和数字计算各有利弊。如果您可以容忍噪声、失真、低动态范围和/或低精度,请使用模拟。如果您不能容忍噪声或失真和/或您需要高动态范围和高精度,请使用数字。你总是可以在问题上投入更多的东西来获得更高的精度。然而,没有类似的等效物。

上个月我参加了题为“回到未来:模拟信号处理”的 IEEE 演讲。演讲由 IEEE 固态电路协会安排。

有人提议模拟 MAC(乘法和累加)比数字 MAC 消耗更少的功率。然而,一个问题是模拟 MAC 容易受到模拟噪声的影响。所以,如果你用相同的输入两次呈现它,结果将不会完全相同。

你所说的被称为模拟计算机,在计算机的早期阶段相当普遍。到 60 年代末,它们基本上已经消失了。问题在于,不仅精度比数字差得多,而且准确性也是如此。数字计算的速度甚至比普通的模拟电路要快得多。

模拟分频器确实是可能的,ADI 公司生产了大约 10 种不同的型号。这些实际上是插入运算放大器反馈路径的乘法器,产生一个分频器,但 AD 用于产生一个专用的分频器,针对除数的大(60 dB,我认为)动态范围进行了优化。

基本上,与数字相比,模拟计算速度慢且不准确。不仅如此,任何特定模拟计算的实现都需要重新配置硬件。在游戏后期,混合模拟计算机被生产出来,可以在软件控制下完成这项工作,但这些计算机体积庞大,除了特殊用途外从未流行过。

是否可以进行模拟信号分割(因为 FPU 乘法通常需要一个 CPU 周期)?

如果您有一个模拟乘法器,则模拟分频器“容易”制作:

示意图

模拟此电路- 使用CircuitLab创建的原理图

假设 X1 和 X2 为正数,则求解 Y = X1 / X2。

模拟乘法器确实存在,所以这个电路原则上是可行的。不幸的是,大多数模拟乘法器的允许输入值范围相当有限。

另一种方法是首先使用对数放大器获得 X1 和 X2 的对数,减去,然后取幂。

如果使用模拟信号算法(以精度为代价)而不是数字 FPU(CPU -> ADC -> 模拟 FPU -> DAC -> CPU),理论上是否可以加速现代处理器?

从本质上讲,这是一个技术问题——在研发方面投入了如此多的资金来加快数字化运营,而模拟技术在这一点上还有很长的路要走。但没有办法说这绝对不可能。

另一方面,我不希望我上面的粗分频器电路能够在 10 MHz 以上工作,而无需做一些非常仔细的工作,也许还需要深入研究以使其运行得更快。

另外,你说我们应该忽略精度,但是像我画的这样的电路在没有调整的情况下可能只有 1% 左右的精度,而在没有发明新技术的情况下可能只有 0.1%。并且可以有效计算的输入的动态范围同样受到限制。因此,它不仅可能比可用的数字电路慢 100 到 1000 倍,而且它的动态范围也可能差 10 300倍左右(与 IEEE 64 位浮点相比)。