作者:Mitesh Moonat and Sanket Nayak
有限脉冲响应 (FIR) 和无限脉冲响应 (IIR) 滤波器是最常用的数字信号处理算法,尤其适用于音频处理应用。因此,在典型的音频系统中,处理器内核的很大一部分时间都用于FIR和IIR滤波。数字信号处理器上的片上FIR和IIR硬件加速器(也称为FIRA和IIRA)可用于卸载FIR和IIR处理任务,从而腾出内核用于其他处理。在本文中,我们将讨论如何借助经过测试的实时示例说明的不同使用模型在实践中使用这些加速器。
介绍
图1.FIRA和IIRA系统框图。
图 1 显示了 FIRA 和 IIRA 的简化框图,以及它们如何与处理器系统的其余部分和资源交互。
FIRA 和 IIRA 模块主要由一个计算引擎(乘法和累加 (MAC) 单元)以及一个小的本地数据和系数 RAM 组成。
要启动 FIRA/IIRA 处理,内核使用特定于通道的信息初始化处理器内存中的 DMA 传输控制块 (TCB) 链。然后,内核使用该 TCB 链的起始地址写入 FIRA/IIRA 链指针寄存器,然后配置 FIRA/IIRA 控制寄存器以启动加速器处理。完成所有通道的处理后,将向内核发送中断,以便它可以将处理后的输出用于进一步的操作。
从理论上讲,最好的方法是将所有FIR和/或IIR任务从核心卸载到加速器,并允许核心并行执行其他操作。但在实践中,这可能并不总是可行的,特别是当内核需要使用加速器的输出进行进一步处理并且没有其他独立任务要并行完成时。在这种情况下,我们需要选择合适的加速器使用模型以达到最佳效果。
在本文中,我们将讨论各种模型,以最佳方式将这些加速器用于不同的应用场景。
实时使用FIRA和IIRA
图2.典型的实时音频数据流。
图 2 显示了一个典型的实时 PCM 音频数据流图。一帧数字化 PCM 音频数据通过同步串行端口 (SPORT) 接收,并通过直接内存访问 (DMA) 发送到内存。当接收帧N+1时,帧N由内核和/或加速器处理,先前处理的帧(N-1)的输出通过SPORT发送到DAC进行数模转换。
加速器使用模型
如前所述,根据应用的不同,加速器可能需要以不同的方式使用,以卸载最大的FIR和/或IIR处理任务,并为其他操作节省尽可能多的核心周期。概括地说,加速器使用模型可以分为三类:直接替换、拆分任务和数据流水线。
直接更换
核心 FIR 和/或 IIR 处理直接被加速器取代,核心只需等待加速器完成作业。
仅当加速器的处理速度比核心更快时,此模型才有效;也就是说,使用 FIRA 块。
拆分任务
FIR 和/或 IIR 处理任务在核心和加速器之间分配。
当多个通道可供并行处理时,此模型特别有用。
根据粗略的时序估计,通道总数可以在内核和加速器之间划分,使两者几乎同时完成。
如图 3 所示,与直接替换模型相比,此使用模型可节省更多的内核周期。
数据流水线
核心和加速器之间的数据流可以流水线化,使两者可以在不同的数据帧上并行工作。
如图 3 所示,内核处理 N千帧,然后启动加速器对此帧的处理。然后,核心继续并行以进一步处理N-1千加速器在上一次迭代中生成的帧输出。此序列允许将 FIR 和/或 IIR 处理任务完全卸载到加速器,但代价是额外的输出延迟。
管道级以及因此的输出延迟可能会增加,具体取决于整个处理链中此类 FIR 和/或 IIR 处理阶段的数量。
图 3 说明了音频数据帧如何在各种加速器使用模型的三个阶段(DMA IN、内核/加速器处理和 DMA OUT)之间流动。它还显示了通过跨不同加速器使用模型将 FIR/IIR 处理全部或部分卸载到加速器,与仅内核模型相比,自由内核周期如何增加。
图3.加速器使用模型比较。
FIRA 和 IIRA 在 SHARC 处理器上
以下ADI公司的SHARC处理器系列支持片上FIRA和IIRA(从最旧到最新)。®
ADSP-214xx(例如,ADSP-21489 )
ADSP-SC58x
ADSP-SC57x/ADSP-2157X
ADSP-2156x
跨处理器系列:
计算速度各不相同。
除ADSP-2156x处理器上的自动配置模式(ACM)外,基本编程模型保持不变。
FIRA有四个MAC单元,而IIRA有一个MAC单元。
FIRA/IIRA对ADSP-2156x处理器的改进
ADSP-2156x是SHARC处理器系列的最新成员。它是第一款1 GHz单核SHARC处理器,FIRA和IIRA也能够以1 GHz运行。 ADSP-2156x处理器上的FIRA和IIRA与其前代产品ADSP-SC58x/ADSP-SC57x处理器相比具有各种改进。
性能改进
计算速度提高了八倍(SCLK-125 MHz 到 CCLK-1 GHz)。
由于在专用核心结构的帮助下,核心和加速器的更紧密集成,因此核心和加速器之间的数据和 MMR 访问延迟更少。
功能改进
添加了对 ACM 的支持,以最大程度地减少处理加速器处理所需的核心干预。此模式具有以下新的主要功能:
允许停止动态任务排队的加速器。
没有通道数限制。
触发器生成(主)和触发器等待(从)支持。
为每个通道选择性生成中断。
实验结果
在本节中,我们将讨论在ADSP-2156x评估板上借助不同加速器使用模型实现的两个实时多通道FIR/IIR用例的结果。
用例 1
图 4 显示了用例 1 的框图。采样率为 48 kHz,块大小为 256 个样本,拆分任务模型中使用的内核与加速器通道之比为 5:7。
表 1 显示了测量的内核和 FIRA MIPS 数字,以及与仅内核模型相比,由此产生的内核 MIPS 节省。该表还显示了相应使用模型添加的其他输出延迟。如我们所见,使用加速器时,使用数据流水线使用模型可以节省多达 335 个内核 MIPS,代价是 1 块 (5.33 ms) 的输出延迟。直接替换和拆分任务使用模型还分别节省了 98 MIPS 和 189 MIPS,没有任何额外的输出延迟。
图4.用例 1 框图。
使用模型 | 核心 MIPS | 费拉米普斯 | IIRA MIPS | 核心 MIPS 节省 | 使用模型延迟(毫秒) |
仅核心 | 337 | 0 | |||
直接更换 | 239 | 162 | 75 | 98 | 0 |
拆分任务 | 148 | 96 | 44 | 189 | 0 |
数据流水线 | 2 | 161 | 75 | 335 | 5.33(1 帧) |
用例 2
图 5 显示了用例 2 的框图。采样率为 48 kHz,块大小为 128 个样本,拆分任务模型中使用的内核与加速器通道的比例为 1:1。
与表 1 一样,表 2 显示了此用例的结果。如我们所见,使用加速器时,使用数据流水线使用模型可以节省多达 490 个内核 MIPS,代价是 1 块 (2.67 ms) 的输出延迟。拆分任务使用模型可节省 234 个内核 MIPS,而不会产生任何额外的输出延迟。请注意,与用例 1 不同,频域(快速卷积)处理用于内核,而不是时域处理。这就是为什么处理一个通道的核心MIPS少于FIRA MIPS的原因,这导致直接替换使用模型的核心MIPS节省为负数。
图5.用例 2 框图。
使用模型 | 核心 MIPS | 费拉米普斯 | 核心 MIPS 节省 | 使用模型延迟(毫秒) |
仅核心 | 493 | 0 | ||
直接更换 | 515 | 511 | –22 | 0 |
拆分任务 | 259 | 257 | 234 | 0 |
数据流水线 | 3 | 511 | 490 | 2.67(1 帧) |
结论
在本文中,我们了解了如何将内核MIPS卸载到ADSP-2156x处理器上的FIRA和IIRA加速器,利用不同的加速器使用模型来实现所需的MIPS和处理配置文件。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !