PowerQuad是什么?
PowerQuad是恩智浦自主研发的一个轻量级的硬件DSP加速器,通过Cortex-M33内核提供的协处理器接口,可以以最高的效率为传统的DSP数学计算进行加速。由于对相关数学计算的支持,也可以把它用作人工智能的预处理加速器。
PowerQuad内部包含一系列硬件加速引擎:
- FFT和IFFT引擎
- 超越函数计算引擎
- 三角函数计算引擎
- 两个二阶IIR滤波器引擎
- 矩阵计算加速引擎
- FIR滤波器引擎
- 旋转坐标转换引擎等
PowerQuad支持四大类计算:一些常用的数学计算、滤波器函数、矩阵计算、傅里叶变换。
常用数学计算包括:
- 1/x 倒数
- sqrt(x) 平方根
- 1/sqrt(x) 平方根的倒数
- ln(x) 以自然数为底的对数
- e^(x) 以自然数为底的指数
- e^(-x) 以自然数为底的指数的倒数
- x1/x2 除法
- sin(x) 正弦函数
- cos(x) 余弦函数
- arctan(x) 反正切函数
- arctanh(x) 反双曲函数
滤波器算法包括:
- 二阶IIR滤波器
- FIR滤波器
- 相关
- 卷积
- 矩阵操作包括:
- 矩阵缩放
- 矩阵加法、减法、求逆
- 矩阵乘积
- 矩阵哈达马乘积(按元素乘积)
- 矩阵转置
- 向量点积
变换功能包括:
- 复数FFT
- 实数FFT
- IFFT
- 复数DCT
- 实数DCT
- IDCT
PowerQuad的性能怎么样?
PowerQuad针对上述计算提供硬件级加速,比同频的Cortex-M33内核的计算速度要快几倍到十几倍,性能十分强劲。
恩智浦还提供与CMSIS-DSP一致的API,使得用户可以无缝移植。当然恩智浦还会提供一些CMSIS-DSP中没有的API,以实现更好的加速性能,例如应用程序不必准备好所有的采样数据,再调用FIR函数进行滤波计算,我们提供了可以逐步提交采样数据的函数,实现采样和计算并行操作的调用函数,达到最优的加速性能。
下图展示了PowerQuad与Cortex-M33内核基于CMSIS-DSP函数库的计算比较。
随着移动物联网和人工智能在微控制器领域的迅猛发展,边缘数字信号处理的需求与日俱增。
对于需要始终保持工作的移动设备来讲,Arm Cortex-M内核的处理器以其低功耗的特性,特别能够胜任这类工作。但是,Cortex-M的架构在设计中更侧重的是,控制应用系统的能效比,在数字信号处理的应用上,则远远落后于传统的数字信号处理器架构。由于没有使用专门的硬件加速器,在性能上甚至落后10倍到20倍。
Arm为了扩展Cortex-M微控制器在DSP领域的应用,提供了CMSIS-DSP的软件库,实现和优化了一些常用DSP算法,在一定程度上缓解了开发者的需求。但是随着对计算性能要求的提高,对专用硬件加速器的需求也就呼之欲出了。
下面我们来浏览一下,看看哪些微控制器的应用场景,对数字信号处理有比较高的要求呢:
运动姿态检测
► 使用矩阵计算、三角函数、FFT变换、FIR/IIR滤波器等,对原始信号进行预处理
► 使用卷积和相关性计算做模式匹配
自动化控制系统
► 使用FIR/IIR滤波器对原始采样信号做预处理
语音识别的关键词触发
► 使用FFT变换进行频谱分析,使用MFCC做特征提取,使用矩阵计算做窗口处理
► 使用DCT和FIR/IIR滤波器消除噪声
神经网络计算
► 海量数据的矩阵乘法/加法
► 以指数/对数计算为基础的Logistic/Sigmoid/Softmax函数,用于实现感知器,或者做统计分布分析
生物特征检测
► 使用FFT分析心跳等周期特征数据
► arctan(x)等三角函数用于指纹识别的计算
啊哈!随着集成了PowerQuad数字信号协处理器的LPC5500的面世,这些计算负载通通都能被轻松搞定。
PowerQuad与Cortex-M33内核的协处理器接口对接,在以低功耗和安全称雄的Cortex-M33微控制器平台上,为其提供了强大的DSP计算能力。
在LPC5500上,不需要极高的主频就可以完成较为复杂的DSP计算任务,可以极大地提高整个芯片的能效。同时,PowerQuad可以在已经非常成熟和流行的arm生态环境中开发,相对于传统DSP平台上的开发方式,极大地降低了DSP应用的开发门槛.。
PowerQuad正以大家喜闻乐见的方式走进千家万户。