0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用数字信号处理器上的片上FIR和IIR硬件加速器

星星科技指导员 来源:ADI 作者:Mitesh Moonat and San 2022-12-20 11:39 次阅读

作者:Mitesh Moonat and Sanket Nayak

有限脉冲响应 (FIR) 和无限脉冲响应 (IIR) 滤波器是最常用的数字信号处理算法,尤其适用于音频处理应用。因此,在典型的音频系统中,处理器内核的很大一部分时间都用于FIR和IIR滤波。数字信号处理器上的片上FIR和IIR硬件加速器(也称为FIRA和IIRA)可用于卸载FIR和IIR处理任务,从而腾出内核用于其他处理。在本文中,我们将讨论如何借助经过测试的实时示例说明的不同使用模型在实践中使用这些加速器。

介绍

pYYBAGOhLm2ABg1yAABaCR6ISD8170.png?h=270&hash=79213006D327243D2DBB339EABAE80BB&imgver=1

图1.FIRA和IIRA系统框图。

图 1 显示了 FIRA 和 IIRA 的简化框图,以及它们如何与处理器系统的其余部分和资源交互。

FIRA 和 IIRA 模块主要由一个计算引擎(乘法和累加 (MAC) 单元)以及一个小的本地数据和系数 RAM 组成。

要启动 FIRA/IIRA 处理,内核使用特定于通道的信息初始化处理器内存中的 DMA 传输控制块 (TCB) 链。然后,内核使用该 TCB 链的起始地址写入 FIRA/IIRA 链指针寄存器,然后配置 FIRA/IIRA 控制寄存器以启动加速器处理。完成所有通道的处理后,将向内核发送中断,以便它可以将处理后的输出用于进一步的操作。

从理论上讲,最好的方法是将所有FIR和/或IIR任务从核心卸载到加速器,并允许核心并行执行其他操作。但在实践中,这可能并不总是可行的,特别是当内核需要使用加速器的输出进行进一步处理并且没有其他独立任务要并行完成时。在这种情况下,我们需要选择合适的加速器使用模型以达到最佳效果。

在本文中,我们将讨论各种模型,以最佳方式将这些加速器用于不同的应用场景。

实时使用FIRA和IIRA

poYBAGOhLm6AU1X9AAAufwcNmp4033.png?h=270&hash=0A90977B333FEA964E9B4E6446A96A45&imgver=2

图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 处理全部或部分卸载到加速器,与仅内核模型相比,自由内核周期如何增加。

pYYBAGOhLm6ANHbgAACUDGZ1-sk250.png?h=270&hash=EB64D08CB0744075BC40EB702210121A&imgver=2

图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,没有任何额外的输出延迟。

poYBAGOhLm6AEVIFAABcdoz2mT4306.png?h=270&hash=5B411A5874A9689866B264B3E985FCC9&imgver=2

图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节省为负数。

pYYBAGOhLm-AVl5qAAAYP444rho261.png?h=270&hash=EB786962D74B68EA24927AF9695AFFD3&imgver=1

图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和处理配置文件。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18275

    浏览量

    222164
  • 滤波器
    +关注

    关注

    158

    文章

    7331

    浏览量

    174780
  • FIR
    FIR
    +关注

    关注

    4

    文章

    137

    浏览量

    32724
收藏 人收藏

    评论

    相关推荐

    充分利用数字信号处理器上的片内FIRIIR硬件加速器

    我们看到如何利用不同的加速器使用模型实现所需的MIPS和处理目标,从而将大量内核MIPS转移到ADSP-2156x处理器上的FIRA和IIRA加速器
    发表于 06-22 14:42 1482次阅读
    充分<b class='flag-5'>利用</b><b class='flag-5'>数字信号</b><b class='flag-5'>处理器</b>上的片内<b class='flag-5'>FIR</b>和<b class='flag-5'>IIR</b><b class='flag-5'>硬件加速器</b>

    【参考书籍】基于FPGA的数字信号处理——高亚军著

    `《基于FPGA的数字信号处理》是一本有关如何在FPGA实现数字信号处理的著作。本书以Xilinx高端FPGA作为开发平台,以
    发表于 04-24 09:33

    FIR滤波IIR滤波的区别与特点

    相位,就是不同频率分量的信号经过FIR滤波后他们的时间差不变。这是很好的性质。 另外有限的单位响应也有利于对数字信号处理,便于编程,用于
    发表于 08-08 08:49

    FIR滤波IIR滤波的区别与特点

    低,但是线性相位,就是不同频率分量的信号经过fir滤波后他们的时间差不变。这是很好的性质。另外有限的单位响应也有利于对数字信号处理,便于
    发表于 03-12 13:21

    无法导入硬件加速器

    嗨!我已经创建了一个硬件加速器(在vhdl中)并且合成成功完成。但是,当我使用创建和导入外围设备向导时,它向我显示我的包在库中不可用,尽管它是。我能做什么 ???L'enfer,c'est l
    发表于 02-27 14:15

    FIR滤波IIR滤波有什么区别

    输入数据和历史输入数据,IIR的滤波输出取决于当前输入数据、历史输入数据和历史输出数据。以基于FPGA硬件数字滤波器为例,FIR处理
    发表于 06-27 04:20

    如何利用FPGA实现级联信号处理器

    普遍存在速度与处理级数的矛盾,有效解决此问题具有重要的现实意义。随着系统(SOC)时代的到来,可编程逻辑器件不仅为FIR滤波的设计提供
    发表于 07-30 07:22

    数字信号处理器的特点

      对于一个从事电子信息行业的人员,对于数字信号处理器应该特别了解了。数字信号处理器,简称为DSP,可以说是一种专用的微处理器,从其体系结构
    发表于 12-09 14:01

    如何充分利用数字信号处理器FIRIIR硬件加速器

    FIRIIR硬件加速器也分别称为FIRA和IIRA,我们可以利用这些
    发表于 12-28 06:26

    基于arm Cortex-M3处理器与深度学习加速器的实时人脸口罩检测SoC设计方案

    模式。系统的主要功能器件包括arm Cortex-M3处理器、两组硬件加速器、AHB总线矩阵、AXI互联模块、APB桥接器、DDR3存储、摄像头模块、
    发表于 08-26 15:23

    利用硬件加速器提高处理器的性能

    率超过两倍。本文以下一代音频系统为例,说明硬件加速器在这方面的应用。 为什么使用硬件加速器 FIR滤波器、IIR滤波器和FFT操作在数字信号
    发表于 12-04 15:22 1080次阅读

    硬件加速器提升下一代SHARC处理器的性能

    硬件加速器提升下一代SHARC处理器的性能
    发表于 04-23 13:06 6次下载
    <b class='flag-5'>硬件加速器</b>提升下一代SHARC<b class='flag-5'>处理器</b>的性能

    如何利用不同的加速器使用模型实现所需的MIPS和处理目标

    上的片内FIRIIR硬件加速器也分别称为FIRA和IIRA,我们可以利用这些硬件加速器来分担FIR
    的头像 发表于 05-05 14:08 1055次阅读

    利用数字信号处理器上的片上FIRIIR硬件加速器

    处理器上的片上FIRIIR硬件加速器(也称为FIRA和IIRA)可用于卸载FIRIIR
    的头像 发表于 12-20 11:22 916次阅读
    <b class='flag-5'>利用</b><b class='flag-5'>数字信号</b><b class='flag-5'>处理器</b>上的片上<b class='flag-5'>FIR</b>和<b class='flag-5'>IIR</b><b class='flag-5'>硬件加速器</b>

    硬件加速器提升下一代SHARC处理器的性能

    SHARC ADSP-2146x处理器集成了硬件加速器,可实现三种广泛使用的信号处理操作:FIR(有限脉冲响应)、
    的头像 发表于 03-03 14:46 803次阅读
    <b class='flag-5'>硬件加速器</b>提升下一代SHARC<b class='flag-5'>处理器</b>的性能