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