础滨驱动的设计应用
草榴社区 高级产物营销经理 Markus Willems 和 草榴社区 首席研发工程师 Pieter van der Wolf
智能移动设备、自动驾驶、智能家居设备、工业控制和机器人只是传感器融合的几种应用。
传感器融合是指组合来自多个传感器的数据,以获得更为完整和准确的结果。通过使用由多个感测装置提供的信息,可以实现更好的环境感知。人体是传感器融合的完美类比:它通过组合从各种“传感器”(眼睛、耳朵、鼻子、舌头、皮肤)中收集的信息,来了解我们周围的环境,从而决定如何应对各种情况。传感器融合和人工智能 (AI) 同时成为关键趋势并不感到惊讶。
传感器融合成功有三个要求:传感器的小型化、从传感器产生的数据流中提取相关信息的复杂算法,以及在可用功耗和成本预算内提供执行算法所需性能的 SoC。
传感器通常作为微机电系统 (MEMS) 实现,从而使传感器尺寸更小。同时还使得传感器价格更低,因此适用于大规模应用。因此,在许多消费设备中,都可以看到加速度计、陀螺仪、磁力计等传感器以及摄像头和麦克风的身影。而雷达传感器很快就会亮相于众多的消费类设备,从而以超低功耗预算实现手势控制。雷达,当然还有摄像头,是当今汽车应用中颇为成熟的传感器,其数量逐代增加,而 LiDAR 有望在下一代先进驾驶辅助系统 (ADAS) 中实现应用。需要多个不同的传感器才能获得完整准确的结果。人体中的每个“传感器”具有互补优势并提供独特的信息,而嵌入式系统中的传感器也必须如此。以 ADAS 为例,雷达在不同光线和天气条件下性能稳健,LiDAR 可提供具有良好视角分辨率的广阔视野,而基于摄像头的视觉功能则可对物体实现快速准确的分类(图 1)。
图 1:ADAS 系统中的多个不同传感器
需要复杂的算法才能 (1) 从传感器信号中提取信息,以及 (2) 组合来自不同传感器流的信息。根据应用的不同,这些算法的复杂程度可能会有很大差异,从而导致性能要求大不相同。根据应用的不同,性能需求也可能随着时间推移而改变。只有当检测到某个语音命令时,始终在线的智能家居设备才会醒来,但 ADAS 系统必须持续监控其环境。
复杂的算法需要能够提供执行算法所需性能的 SoC。与任何设计一样,它需要满足可用功耗和面积的限制,因为这将在很大程度上影响总体盈利能力。散热和有限的电池容量是两个主要驱动因素,具体情况视应用而定。理想情况下,这类 SoC 完全可编程,以实现最大的灵活性。算法在产物的生命周期内可能发生演进,传感器在其生命周期内可能需要不同的校准,而且非常希望在可通过软件进行区分的情况下,对产物的多个版本使用相同的 Soc。
让我们看看几个应用示例。目前,任何一款手机中可能都安装有计步器。它包含多个传感器,例如加速度计、陀螺仪、磁力计,有时还有压力和温度传感器(用于海拔跟踪)。这些传感器的生产成本相对低廉,而且生成的信息流是恒定的。需要 10-50 MIPS 来处理数据,并将其合并为有意义的输出,通过小型 MCU 处理即可。
对于始终在线的智能家居设备,用户可能还会看到麦克风、摄像头和雷达的组合。这些设备可以在检测到用户存在时与用户进行智能交互,然后响应命令。“智能”传感器将用于限制功耗,例如仅在检测到某个面部(简单算法、低性能要求)之后,才进行启动面部识别(复杂算法、高性能要求)。计算要求会随着时间的推移而出现巨大的差异。该系统必须在有需要时提供峰值性能,但需要动态地管理计算资源及其消耗的功率。随着来自视觉、语音和雷达传感器的数据量增加,处理数据需要数十亿次操作/秒 (GOPS)。
如前所述,传感器融合包含两个主要阶段:(1) 提取信息,以及 (2) 结合信息以得出结果。这在图 2 中加以说明。
图 2:传感器融合处理链
第 1 阶段也可以称为传感器融合的前端。根据传感器和感兴趣的信息,应用不同的数字信号处理算法。对于语音,这可能是计算梅尔频率倒谱系数 (MFCC),其应用傅里叶变换和其它各种 DSP 操作从语音信号提取频谱特征。数据将以整数格式,很可能以 16 位表示。
对于摄像头,它是具有图像缩放、色彩空间转换、过滤或特征检测等功能的图像信号处理。此处数据表示为像素,数据格式为 8 比特,最多 16 比特。
最后,对于雷达,此类前端处理包括范围和速度 FFT 以及用于阈值的恒定虚警率 (CFAR)。由于动态范围和精度要求,数据类型为半精度或全精度浮点。
第二阶段是信息结合(后端处理)。要使用的算法与应用息息相关。任务可以包括对象检测、识别、跟踪以及预测,例如,使用诸如卡尔曼滤波的递归估计器。可以应用基于 AI 的机器学习算法以及线性代数操作。当然,数据类型将非常依赖于算法。
由于这些特定但不同的要求,传感器融合需要一款满足下列关键要求的数字信号处理器 (DSP)。
算法和数据类型在很大程度上取决于应用。因此,DSP 架构必须支持丰富的指令集,以便高效实现不同的算法,并特别关注 FFT 或线性代数等性能关键型操作。DSP 必须支持不同精度的整数和浮点数据类型。
这种 DSP 需要成为合格的灵活计算资源,这意味着它需要能够执行通常与 DSP 相关联的“经典”过滤操作,以及机器学习和计算机视觉算法。
为了避免一次性投资,可扩展性是关键。虽然对不同传感器的要求不同,但对于不同设计的所有信号处理要求,非常希望使用相同的基准架构,以限制系统集成工作,并最大限度地提高整体软件开发效率。可扩展性让设计师能够选择配置,从而为目标应用提供最佳 PPA。
可扩展性不仅仅关乎硬件。针对特定架构进行内核优化,是软件方面的一项重大投入。重要的是,此类软件可以在这些 SoC 上重复使用,从而能够重复使用不同版本的 SoC(例如低端/中端/高端版本)。
就性能/功耗/面积而言,有诸多方面可进行优化。从性能开始,它关乎核心本身的循环效率(即执行特定功能所需的循环次数),以及可用的处理引擎和能够利用这些引擎的 ISA。这直接关系到对数据移动的有效支持,与数据处理并行,然后连接到一组丰富(最好是可配置的)接口,例如,将加速器和外围设备直接连接到核心,而不通过系统存储器。
DSP 的最大时钟频率体现出另一方面的性能。它决定 DSP 可以提供多少马力(以每秒周期为单位),但也影响物理 SoC 设计中时序收敛所需的工作量。
低功耗与性能效率以及仅在需要时唤醒某些内核的选项直接相关(如智能家居应用中所述:等待唤醒信息)。
最后,小面积对成本以及漏电有直接影响。
软件开发必须高效,因为对于几乎所有项目来说,大笔的投资(以及相关人员)都耗费在了软件开发和测试上。这需要一个具有优化编译器的高级编程模型,以及一组丰富的库,其中包含用于滤波、转换(例如 FFT)、矢量数学、线性代数和机器学习的现成优化内核。当然,还需要驱动程序、DMA 处理程序、中断处理程序等低级模块。随着对软件的大量投资,务必要让此类软件可移植到广泛的体系架构选项中,例如,支持不同的向量长度,无需重新编码。
VPX DSP IP 是 VLIW/SIMD 处理器系列,适用于从常开设备到汽车 ADAS 再到视觉、机器学习和高性能计算等广泛的信号处理应用。图 3 提供了概述。
图 3:DesignWare ARC VPX DSP IP 块状图
VPX 系列非常适合传感器融合要求,因为它可提供可扩展性和多功能性,以实现最佳的 PPA 和软件开发效率,从而提高整体生产效率。
所有 VPX 系列产物均基于相同的 VLIW/SIMD 架构。客户可以根据自己的需求扩展解决方案,从 128 位到 512 位的不同矢量长度中进行选择。从某个向量长度开始,然后发现 PPA 的要求需要不同的配置,这种情况并不少见。得益于可变矢量长度 (VLA) 编程模型,使得执行非常容易,因为代码可以在 VPX 系列之间迁移。VLA 编程可确保软件投资的安全性,既可为当前项目提供灵活性,又可为未来项目提供可重用性。除矢量长度外,客户可以从单核、双核或四核配置中进行选择,多核配置已预先集成并准备好用于缓存一致性和共享的多通道 DMA。
除了不同的矢量长度外,每个 VPX 内核都高度可配置,从而可定制架构以获得最佳性能,同时拥有最小的面积。以不需要浮点、但极其受限于面积和功率的应用为例:使用 ARChitect 配置工具,用户可以选择不包括(标量和最多两个矢量)浮点单元。此可选单元的另一实例是专用矢量数学单元,用于非常高效地执行例如 sin(x)、cos(x)、2^x、div、sqrt、1/sqrt、log_2(x) 等操作。
如上文所解释,依传感器和应用于传感器数据的算法而定,需要不同的数据类型。VPX 支持的数据类型范围广泛,从浮点到覆盖应用(如高分辨率雷达)所需的动态范围,再到用于 AI 应用的小规模整数类型。
VPX 指令集架构 (ISA) 已调整为高效执行关键信号处理内核,例如 FFT 或矩阵操作。以 FFT 操作为例,通过矢量负载/双倍存储(指从内存传输数据达矢量长度的两倍)和专用 FFT 指令相结合,可以在软件中执行所有 FFT 操作,甚至对于多传感器雷达场景也不例外。这避免了采用专用硬件加速器而带来的成本开支,也因而实现了功率和面积的节省。
ISA 和微架构(即实施不同功能单元的方式)是实现最佳 PPA 的关键要素。但是,需要一个软件开发环境来释放硬件的功能。VPX 配有 MetaWare 工具套件,其包括优化 C/C++ 编译器、模拟工具和复杂的调试环境。它包括一组丰富的库,可为信号处理、线性代数和机器学习提供优化的内核。这些内核是以与矢量长度无关的方式编写的,因此代码在 VPX 系列产物中都保持便携。为了支持对 AI 日益增长的需求,MetaWare 还提供 NN SDK 和先进的图形映射工具(支持 TensorFlow、Caffe、ONNX)。
图 4:随 MetaWare 一起提供的库,针对 VPX 进行了优化
VPX 系列包括为功能安全 (FuSa) 认证量身定制的 VPXxFS 变体(VPX2FS、VPX3FS 和 VPX5FS)。这些核心满足随机故障检测和系统功能安全开发流程要求,完全符合 ASIL D ISO 26262 合规性。VPXxFS DSP 集成了硬件安全功能,例如存储器和接口的 ECC 保护、安全监测器和锁步机制。一套全面的安全文档可帮助汽车设计师获得 ISO 26262 功能安全认证。此外,VPXxFS DSP 还提供“混合”选项,使用户可以在硅后软件中选择高达 ASIL D 的安全级别。
传感器融合是一个快速增长的市场,已进入几乎任何应用领域。得益于低成本传感器的可用性,以及先进的算法,它可以在不同市场实现新的用户体验,包括智能移动设备、汽车、健康或工业控制。传感器融合导致不同的信号处理工作负载,因为不同的传感器需要不同的数据类型来表示数据,并且需要不同的 DSP 算法来提取与实际融合过程相关的信息。融合过程(即组合各种传感器信息流并从中产生有意义的决策)在很大程度上是特定于应用程序的。要处理这些不同的工作负载,需要一个可扩展的处理器来处理不同的数据格式和性能要求,并且需要通用和可配置的架构,包括储存器和接口,以满足 PPA 要求。DesignWare ARC VPX IP 系列是传感器融合应用的理想解决方案:其矢量长度为 128 位、256 位或 512 位,可满足各种信号处理工作负载的需求。凭借定制的指令集和专用的数学硬件引擎,它可通过无与伦比的 PPA 提供卓越的循环效率。其可变矢量长度编程模型可确保软件可在 VPX 系列的所有产物之间重复使用,从而保护这一重大投资。