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

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

3天内不再提示

如何解放你的内核?硬件加速器“使用指南”奉上

analog_devices 来源:亚德诺半导体 2020-07-06 16:10 次阅读

有限脉冲响应(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.加速器使用模型比较。

SHARC处理器上的FIRA和IIRA

以下ADI SHARC处理器系列支持片内FIRA和IIRA(从旧到新)。

ADSP-214xx(例如,ADSP-21489)

ADSP-SC58x

ADSP-SC57x/ADSP-2157x

ADSP-2156x

这些处理器系列:

计算速度不同

基本编程模型保持不变,ADSP-2156x处理器上的自动配置模式(ACM)除外。

FIRA有四个MAC单元,而IIRA只有一个MAC单元。

ADSP-2156x的FIRA/IIRA改进

ADSP-2156x是SHARC处理器系列中的最新产品。它是第一款单核1 GHz SHARC处理器,其FIRA和IIRA也可在1 GHz下运行。ADSP-2156x处理器上的FIRA和IIRA与其前代ADSP-SC58x/ADSP-SC57x处理器相比,具有多项改进。

性能改进

计算速度提高了8倍(从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方框图。

表1.用例1的内核和FIR/IIRA MIPS总结

用例2

图5显示用例2的方框图。采样率为48 kHz,模块大小为128个采样点,拆分任务模型中使用的内核与加速器通道比为1:1。

与表1一样,表2也显示了此用例的结果。正如我们所看到的,使用加速器配合数据流水线使用模型,可节约高达490内核MIPS,但导致1模块(2.67 ms)的输出延迟。拆分任务使用模型可节约234内核MIPS,而没有导致任何额外输出延迟。请注意,与用例1中不同,在用例2中内核使用频域(快速卷积)处理,而非时域处理。这就是为何处理一个通道所需的内核MIPS比FIRA MIPS少的原因,这可导致直接替代使用模型实现负的内核MIPS节约。

图5.用例2方框图。

表2.用例2的内核和FIR/IIRA MIPS总结

结论

在本文中,我们看到如何利用不同的加速器使用模型实现所需的MIPS和处理目标,从而将大量内核MIPS转移到ADSP-2156x处理器上的FIRA和IIRA加速器。

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

    关注

    2

    文章

    947

    浏览量

    47510
  • 音频处理
    +关注

    关注

    0

    文章

    81

    浏览量

    17760

原文标题:如何解放你的内核?硬件加速器“使用指南”奉上

文章出处:【微信号:analog_devices,微信公众号:analog_devices】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    TDA4VM上的硬件加速运动恢复结构算法

    电子发烧友网站提供《TDA4VM上的硬件加速运动恢复结构算法.pdf》资料免费下载
    发表于 09-24 11:39 0次下载
    TDA4VM上的<b class='flag-5'>硬件加速</b>运动恢复结构算法

    适用于数据中心应用中的硬件加速器的直流/直流转换解决方案

    电子发烧友网站提供《适用于数据中心应用中的硬件加速器的直流/直流转换解决方案.pdf》资料免费下载
    发表于 08-26 09:38 0次下载
    适用于数据中心应用中的<b class='flag-5'>硬件加速器</b>的直流/直流转换<b class='flag-5'>器</b>解决方案

    图形图像硬件加速器卡设计原理图:270-VC709E 基于FMC接口的Virtex7 XC7VX690T PCIeX8 接口卡

    扩展。软件支持windows,Linux操作系统。Net FPGA , XC7VX690T板卡 , 软件无线电处理平台 , 图形图像硬件加速器
    的头像 发表于 08-06 10:16 411次阅读
    图形图像<b class='flag-5'>硬件加速器</b>卡设计原理图:270-VC709E 基于FMC接口的Virtex7 XC7VX690T PCIeX8 接口卡

    西门子推出Catapult AI NN软件,赋能神经网络加速器设计

    西门子数字化工业软件近日发布了Catapult AI NN软件,这款软件在神经网络加速器设计领域迈出了重要一步。Catapult AI NN软件专注于在专用集成电路(ASIC)和芯片级系统(SoC)上实现神经网络的高层次综合(HLS),为机器学习应用提供了硬件加速的新途径
    的头像 发表于 06-19 11:27 812次阅读

    PSoC 6 MCUBoot和mbedTLS是否支持加密硬件加速

    v3.0,它的上限是 MCUBoot v1.8.1。 当前版本基于 MCUBoot v1.9.1,似乎支持加密硬件加速。 有什么最简单的方法可以更新我的旧版引导加载,以便运行 MCUBoot v1.9.1? 顺便说一下,我的 PSoC 是 CY8C624ABZI-S2
    发表于 05-29 08:17

    Elektrobit利用其首创的硬件加速软件优化汽车通信网络的性能

    Elektrobit今日宣布推出 EB zoneo GatewayCore——首款支持、配置和集成现代微控制新一代硬件加速器的软件产品,可应用于先进的汽车电子/电气架构(基于被广泛采用
    的头像 发表于 04-17 09:51 327次阅读

    用DE1-SOC进行硬件加速的2D N-Body重力模拟设计

    该项目的目标是创建一个用DE1-SOC进行硬件加速的2D N-Body重力模拟
    的头像 发表于 04-09 11:08 495次阅读
    用DE1-SOC进行<b class='flag-5'>硬件加速</b>的2D N-Body重力模拟<b class='flag-5'>器</b>设计

    330-基于FMC接口的Kintex-7 XC7K325T PCIeX4 3U PXIe接口卡 图形图像硬件加速器

    标签: Net FPGA , XC7K325T板卡 , XC7K325T处理板 , 软件无线电处理平台 , 图形图像硬件加速器
    的头像 发表于 03-04 14:14 568次阅读
    330-基于FMC接口的Kintex-7 XC7K325T PCIeX4 3U PXIe接口卡 图形图像<b class='flag-5'>硬件加速器</b>

    【国产FPGA+OMAPL138开发板体验】(原创)7.硬件加速Sora文生视频源代码

    hardware_accelerator_done; // 硬件加速器工作完成的小旗子(幻想中) // FPGA内核操作法则 always @(posedge clk or posedge reset) begin
    发表于 02-22 09:49

    音视频解码硬件加速:实现更流畅的播放效果

    随着多媒体内容的日益丰富和高清化,传统的软件解码已经难以满足人们对流畅播放体验的需求。因此,音视频解码硬件加速技术的出现,为提升播放效果带来了革命性的改变。 硬件加速的原理 硬件加速
    的头像 发表于 02-21 14:40 899次阅读
    音视频解码<b class='flag-5'>器</b><b class='flag-5'>硬件加速</b>:实现更流畅的播放效果

    回旋加速器原理 回旋加速器的影响因素

    回旋加速器(Cyclotron)是一种用于加速带电粒子的可再生粒子加速器。它的工作原理基于带电粒子在恒定强磁场中的运动。本文将详细介绍回旋加速器的原理以及影响因素。 一、回旋
    的头像 发表于 01-30 10:02 3542次阅读

    粒子加速器加速原理是啥呢?

    粒子加速器加速原理是啥呢? 粒子加速器是一种重要的实验设备,用于研究粒子物理学、核物理学等领域。其主要原理是通过电场和磁场的作用,对带电粒子进行加速,在高速运动过程中使其获得较大的动
    的头像 发表于 12-18 13:52 1968次阅读

    21489的IIR加速器滤波参数设置如何对应加速器的滤波参数?

    目前在用21489内部的IIR加速器去做一个低通滤波,在例程的基础上修改参数。通过平板的fda 工具工具去设计参数,但是设计出来的参数不知道如何对应加速器的滤波参数,手册里也看得不是很明白。 设计的参数如下: 请问
    发表于 11-30 08:11

    使用ADSP-21489的fir加速器时,存在很大的噪音如何解决?

    您好!当我使用ADSP-21489的fir加速器时,存在很大的噪音,未知如何解决,希望这里有高人帮我解决。 附件上有工程,该工程参考iir加速器使用例子编写。
    发表于 11-30 07:49

    在Sigma 300里面使用硬件加速器slew,slew mode为RC type时不同的time constant的值有什么用?

    请问下在Sigma 300里面使用硬件加速器slew,slew mode为RC type时,对应的time constant 与数据从当前值到目标值得时间有什么关系,或者说不同的time constant的值有什么用? 谢谢, 中 J Jj
    发表于 11-29 07:25