当Arm CPU内核首次被包括苹果在内的计算机计算领域领导者采用,使用量激增,尤其在移动应用领域。回顾过去,它的优势显而易见──嵌入式处理器不但使任何设备变得更加灵活且多功能,同时可以通过软件升级该功能,亦即单一硬件平台只要通过软件升级即可驱动多个产品版本。
这些计算引擎既灵活又非常适合智能手机所需的各种管理和一般计算任务,但这种通用性存在一个缺点:某些操作在一般的计算机上速度太慢,并且功耗太大、不实用。你的智能手机无线通信功能中的调制解调器就是一个早期的例子。调制解调器必须实时处理无线信号,在每一种情况下,处理的并非是手机内部计算部分中所熟悉的数字字符和位,而是无线电传输和接收中使用的持续变化的数字化模拟信号。
数字信号处理器(DSP)是针对这种分析的设计,除了内置信号数字化所需的浮点表示,和信号处理所需如多次累加(MAC)的数学功能具有强大支持,DSP还针对流式数据处理进行优化,而非传统计算常见的批次型处理,此功能在这些情况下,是处理连续无线电传输与接收的基本功能。
音频处理需求具有许多与无线信号处理相同的功能,DSP应用在高端音频应用中变得相当普遍,例如等化及范围压缩(例如杜比压缩),以及让你在飞行中睡觉不受干扰,如降噪耳机之类功能越来越多。
继之而起的AI,最初仅见于数据中心,但现在越来越多出现在移动和其他边缘应用。我们在行车时可以检测到行人和潜在的碰撞,还可以检测车道标记,以引导自动驾驶进行基本形式转向。我们可以通过语音命令控制电视机或智能喇叭找到歌曲或影片搜寻,或音量调整。甚至可以通过语音命令控制自行车安全帽上的GoPro设备进行拍照。
所有这些功能都依赖处理数据流(声音)或图像(照片)或结合两者(视频),每一种功能都是实时或非常接近实时。首先看音频处理,第一步需要截取高质量的音频信号流──包括结合多个麦克风的音频波束成形、回声消除和噪声抑制,这些在DSP实现上都已有丰富的业绩。
然后必须使用经过训练的神经网络(几乎任何AI技术的基础)来识别命令。这些算法不但看起来与CPU上的算法大相径庭,即使可以在CPU上运行,也难逃速度慢、功耗高的缺点。因此较好的方法是在具有高度平行性,又可同时在多个计算(而非CPU上的串行计算)的架构上进行神经网络编程;平行性正是DSP的另一个核心优势。
你可能怀疑,尽管有这些优点,DSP是否可能过于复杂,除了那些别无选择只能使用它们的专家之外,其他人都无法使用?当然,DSP的使用不像CPU那么简单,但相差无几,两者都可编写C语言程序代码,只是在DSP编写的程序代码中考虑更需周到些,才能充分发挥其性能。
DSP广泛采用于各种产品,手机上的各种无线模块(蓝牙、Wi-Fi、移动电话)都使用一个或多个DSP。蓝牙耳机使用DSP,用于蓝牙及音频;许多智能喇叭都使用DSP,语音控制的遥控器使用DSP,家居安防系统使用DSP来检测摄像头捕捉到的异常移动和异常声音,如狗叫或玻璃破裂等。汽车的智能传感器使用DSP来检测前进和后退的危险,并检测车道标记。
为什么不将GPU使用在这些功能呢?实际上,GPU在AI方面确实非常普遍,且已广泛用于数据中心的神经网络训练。但是对于许多边缘应用而言,GPU太大、太耗电、并且太贵。着眼于功能性、安全性和隐私性的原因,许多AI功能只要合乎成本效益,正大量迁移到GPU解决方案。但在大多数情况下,如果会导致(汽车、电视、家居安防)整个解决方案的成本大幅提高,都不会获得青睐。
这就是嵌入式DSP普及的原因:您可以在低成本、低功耗和软件编程的灵活性,为产品外加语音控制、对象识别、音频质量控制等功能。DSP不会取代CPU的管理和一般性处理功能,但看来会全面接管与智能音频、以及视频/图像的所有功能。
原文发表于ASPENCORE旗下Embedded网站,Why DSPs are suddenly everywhere。CEVA公司提供翻译。