础滨驱动的设计应用
草榴社区 ARC 处理器高级产物营销经理 Graham Wilson
假设您是一位系统架构师,需要决定下一个片上系统 (SoC) 或下一个 SoC 系列需要哪种类型的数字信号处理器 (DSP)。一种方法是使用一个大型高性能 DSP,并在这个 DSP 上的软件中运行大部分信号处理算法。其优势显而易见,即 SoC 可以更快地完成设计、流片和投产,并且可在流片之后创建、调试和更改软件定义的功能,从而降低风险。
但是,如果以小面积和低功耗作为 SoC 的关键要求,那么这种类型的解决方案可能无法实现。另外,DSP 可能无法高效处理较高的计算和数据吞吐量。更好的选择可能是使用硬件或高度专用的可编程引擎执行计算密集型任务。将 DSP 的计算负载分流到硬件块或特定计算引擎后,可以使用较小的 DSP,从而能够使用以较低时钟频率运行的小型硬件块。这可减少面积并降低功耗,但在 SoC 设计和实现方面更复杂,延长了流片期限,也增加了设计风险。图 1 显示了依据所选处理器的类型作出的权衡。
图 1. DSP 选择
回到这个需要制定决策的系统架构师。有时,这些要求的定义如此明确,所以很容易制定决策。然而,大部分时候都不容易,反而像是要击中一个移动的目标一样困难。此外,决定使用哪种类型的 DSP 通常不只是针对一个 SoC,而是针对覆盖一系列应用类型的 SoC 产物系列,既要适用于低成本设备,也得适合具有高性能要求的设备。
在选择 DSP 时,还需要考虑另一个维度,即针对人工智能 (AI) 算法应用的神经网络 (NN) 计算水平。下一代算法很可能会将 AI 算法用作部分数据计算,因此处理器的选择将需要考虑所需的 AI 计算水平,它是可以在 DSP 的软件中运行,还是需要对 NN 计算进行硬件加速。
因此,系统架构师可能会以为自己要找的是一个单机 DSP,但最终却是在寻求能够满足他们对于一系列 SoC 需求的处理器产物系列。虽然许多 SoC 在实现时都采用了满足初始要求的大型向量 DSP,但随着 SoC 设计的发展,大多数 DSP 功能都分流到了硬件块上,只留下一个大型向量 DSP 在 SoC 中运行非向量控制代码,而这项工作本来可以由较小的标量核完成。如果只剩下软件代码遗留和设计迁移,那就意味着使用的向量 DSP 过大了。
要让系统架构师能够作出决策,就需要一个丰富而统一的处理器产物系列。丰富指的是能够提供从小型标量/DSP 内核(用于大量的计算被分流到硬件块的情况),到中型 DSP,直至具有神经网络计算选项的大型 DSP。这样能够遵循初始要求,然后随着 SoC 设计的不断变化而发展。统一指的是只用一个软件代码库,可在处理器之间进行移植。统一还涉及同一个开发平台或工具包。
草榴社区 DesignWare? ARC? 处理器 IP 产物组合凭借其为 SoC 系统架构师提供的丰富而统一的软件开发平台成为行业翘楚。ARC 处理器产物组合拥有合适的处理器,可满足 SoC 系统架构要求的所有计算需求。图 2 显示了 ARC 处理器组合中可用的处理器。
图 2:ARC 处理器产物组合
在跨处理器软件兼容性上,ARC DSP 处理器独树一帜。所有 ARC DSP 处理器都支持单个 ARCv2DSP ISA,从而使优化的代码可在内核产物系列中进行移植。例如,如果需要更小巧、功耗更低的 SoC,则可以将使用 DSP 增强型 HS 处理器 (HS4xD) 的 SoC 移至 DSP 增强型 EM 处理器中。另一方面,这样还可以从 HS 处理器升级到 ARC VPX 向量 DSP,因为 VPX DSP 中的标量单元基于 HS 处理器,使得代码库可以在 VPX 标量单元上运行。上文所述是在主要计算被分流到硬件之后,大型向量 DSP 仅用作非向量控制代码的情况,是将代码移动到不同处理器(例如,从 ARC VPX DSP 移动到 ARC HS 处理器)的完美示例。这可让系统架构师选择满足设计性能、功耗和面积要求的处理器,而不会增加额外的风险和重新开发软件的开销。
假如 SoC 系统架构师需要考虑用向量 DSP 处理器在 DSP 上运行大部分向量计算,ARC VPX DSP 处理器会是一个不错的入手之处。由于所有 ARC 处理器均可配置和扩展,架构师可以配置 ARC VPX 处理器以满足其计算需求,同时尽量减少面积和降低功耗。例如,VPX 可以配置为向量 DSP,利用其双向量单元和三个 ALU 引擎来计算整数和定点向量数据,支持适用 NN 算法的各种数据类型以及传统通信和音频/语音应用。在倒装领域,VPX 可配置为超高性能向量浮点 DSP 处理器,带有三个并行执行向量浮点/数学单元。或者,可对其进行配置以支持所有计算单元,实现灵活的整数、固定点和浮点向量计算。
图 3. ARC 处理器迁移路径
图 3 显示了 ARC 处理器可用的迁移或升级路径。我们讨论了 ARC EM、ARC HS 和 ARC VPX DSP 处理器之间的移动,以便为信号处理算法计算选择合适的处理器。在本文开头,我们简短地提及了另一个维度,即 NN 计算。越来越多的计算算法都在使用 NN/AI 计算。EM、HS 和 VPX DSP 处理器支持 embARC 机器学习推理 (MLI) 软件库。该 MLI 库在 草榴社区 ARC DSP 处理器上提供经过优化的低级别 NN 计算组件。通过 MLI 库组件支持 TensorFlow Lite Micro 框架,因此可实现高度优化的性能,适用于各种图形移植。这使得 草榴社区 ARC DSP 处理器能够在 DSP 的软件中执行 NN 算法和图形计算。
VPX DSP 处理器即使具有双向量单元,也无法提供满足 NN 算法计算要求所需的性能,在这种情况下,需要使用 NN 硬件引擎进行硬件加速。为解决此问题,草榴社区 推出了 ARC EV7x 处理器,可提供从 440MAC 到 14KMAC 的各种 NN 硬件引擎配置。支持升级到 EV7x 处理器的一个关键点是 ARC EV 处理器内的向量 DSP 是基于 ARC VPX DSP 处理器的。因此,使用 ARC VPX 处理器的系统架构师可以非常轻松地迁移到 EV 处理器,并受益于高端 AI 算法使用的 NN 硬件引擎。
选择从 ARC VPX 移动到 ARC EV 处理器后,许多应用都能从中受益。例如,在雷达和激光雷达传感器信号处理应用中,可以在 NN 硬件引擎上实现目标检测。在 5G 通信中,先进的 MIMO 算法需采用 NN 级计算,该计算级别必须进行硬件加速。在下一代语音/言语识别应用中,可在 ARC VPX DSP 处理器上执行言语识别,而在 ARC EV 处理器上运行自然语言处理。
所有 ARC 处理器都受到 DesignWare ARC MetaWare 开发工具包的支持,这是一套完整的解决方案,能够开发、调试和优化面向 ARC 处理器的嵌入式软件。为了实现高效的算法开发,新的 MetaWare 工具纳入了增强型 C/C++ 编译器,并支持自动向量化。该工具包还包括一个存储定点数学函数的 DSP 软件库,以及一个指令精确仿真器,其中带有新 DSP 运算的准确建模。
总之,SoC 系统架构师在为 DSP 处理器选择合适的可编程性级别方面,面临非常艰巨的任务。必须在保证性能的同时,还能达到小功耗和小面积要求,而且还能适应未来和当前 SoC 系列的变化,所以很难选中合适的 DSP 处理器来满足所有要求。简而言之,当计算要求发生变化以及 SoC 不断发生演变时,系统架构师需要采用一组多样化的 DSP 来执行操作。草榴社区 DesignWare ARC 处理器 IP 产物组合可提供具有全面软件兼容性的多种处理器,使系统架构师能够为他们的 SoC 设计选择合适的处理器解决方案。