当 DSP 击败硬件加速器时
嵌入式 CPU 几乎无处不在,因为它们提供灵活性、良好的性能和低功耗,而且通常成本低得多。与需要将单独的微处理器或微控制器耦合到您的自定义硬件的解决方案相比,切换到基于嵌入式 CPU 的设计是轻而易举的事。但是任何类型的 CPU 都有限制。尽管我们可以将算法转移到软件中,但算法的潜在复杂性是无限的。我们可以编写程序并且它们会运行,但不一定在可接受的时间内或在合理的功率预算内。
来源:CEVA
这就是微处理器制造商迅速提出硬件加速器概念的原因——硬件功能可以执行常用任务,例如浮点运算,速度比在 CPU 上的软件中运行要快得多。这个想法很快流行起来,其他加速器也开始出现,例如密码学、正则表达式处理和图形函数等。
所有这些都非常有效,但牺牲了基于软件的解决方案的一个重要优势:因为实现大多是硬编码的,所以很难修改。加速器可能允许通过寄存器控制进行一些有限级别的调整,但否则,如果您需要修复错误或更改算法,则必须重新设计硬件。应对现场故障和不断变化的市场需求变得更加昂贵。
你真正想要的是两全其美——一种加速算法的方法,同时仍然能够在软件中定义这些算法。当然,所有可能算法的范围是无限的,因此不可能对所有情况都有一个解决方案。但是对于大量非常常用的功能,DSP 正好可以提供这种解决方案。
考虑几乎所有必须处理流数据的操作。在音频处理中可以找到明显的例子,从滤波到 PDM-PCM 转换再到回声消除。或者考虑基于流的密码,例如 SNOW 和 ZUC(用于 LTE)。在信号处理环境中,考虑基站和手机之间的信道估计。这旨在优化当前条件下的传输以获得最大可靠性,并且需要对接收信号进行复杂的矩阵计算。更一般地说,考虑任何可以从非常广泛的并行性中受益的应用程序,例如 AES 加密。
流计算、复杂数学(矩阵、浮点)和/或高级并行性都是 DSP 发光的领域,应该认真考虑作为硬件加速器的替代品。在许多情况下,实现也将小于硬编码加速器,从而降低产品的单位成本。至于功率,也许加速器会比 DSP 实现低一点,但 DSP 功率仍会比基于 CPU 的等效物低得多。更好的是,如果不需要同时运行多个加速器,您可以将多个加速功能整合到一个 DSP 上,从而消除对多个加速器的需求。为了获得更大的处理能力,您可以使用多核 DSP,就像使用多核 CPU 一样。
来源:CEVA
最重要的是,DSP 实现是可编程的,用 C 语言编写,就像您的 CPU 内核一样。您需要做一些稍微不同的事情——例如优化并行性——但是一个好的 DSP 编译器和建模模拟器应该使这相对容易。因此,您无需更改底层硬件即可获得错误修复和产品可升级性的所有优势。提高客户满意度并改善收入流。不错。
还有另一个优势:作为处理器,它可以支持多种功能。考虑一下 GNSS,这是一种全球定位标准,也是一种从基于 DSP 的计算中受益匪浅的功能。这当然是移动设备中的一个很好的功能,但现在固定设备的 GNSS 也在蓬勃发展,以简化配置、更新和维护。如果您的设备已启用 DSP,则 GNSS 可能是某些供应商的软件插件,可以在其他功能处于休眠状态时在安静时期运行。如果您已经拥有基于硬件的 GNSS 或计划添加一个,您可以节省面积和电力。
我并不是说 DSP 实现一定可以取代您所有的硬件加速器。某些加速器功能可能不太适合 DSP 的优势。有些可能适合某个范围,但不会超出该范围;例如,对于非常大的过滤器,您的唯一选择可能仍然是硬连线实现。但这留下了许多功能,其中 DSP 在性能和功耗上接近等效的硬件加速器,实际上可能在成本上更好,并且比硬件版本具有更多的灵活性。值得考虑。
本博客是从“为什么 DSP 突然无处不在开始的系列中的第二篇 ”并在第三篇博客中结束:“决策,决策:硬件加速器还是 DSP? ”。
嵌入式