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

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

3天内不再提示

为了在嵌入式系统中实现高效的信号处理请使用DSP

星星科技指导员 来源:ADI 作者:Jerry McGuire 2023-01-31 10:00 次阅读

电子设备应用越来越多地涉及信号处理。家庭影院、计算机图形学、医学成像和电信都依赖于信号处理技术。信号处理需要在复杂但重复的算法中进行快速数学运算。许多应用需要实时计算:即,信号是时间的连续函数,必须对其进行采样并将其转换为数字,以进行数值处理。因此,处理器必须执行算法,在样本到达时对样本执行离散计算。

数字信号处理器(DSP)的架构经过优化,可处理此类算法。一个好的信号处理引擎的特点包括:快速、灵活的算术计算单元(例如,乘法器、累加器、桶形移位器);进出计算单元的不受约束的数据流;扩展计算单元的精度和动态范围(以避免溢出并最大限度地减少舍入误差);双地址发生器(用于同时处理二元运算的两个输入);高效的程序排序(包括有效处理循环和中断的能力);和易于编程

DSP与精简指令集计算机(RISC)具有其中一些共同特征。此外,两者都是围绕某些核心指令构建的,使它们能够以非常高的指令速率运行;两者都避开了内部微码。然而,它们是根本不同的“动物”。RISC和DSP之间的差异在处理器的

计算单位

数据地址生成器

内存架构

中断功能

循环硬件

条件指令

界面特点

DSP 属于两个基本类:定点,一种基于 16 位整数数据类型的(通常)16 位架构,以及浮点,通常具有 32 位架构,基于同时具有尾数和指数的数据类型。

poYBAGPYdwKAE3vrAACaYYaOBjI610.png

图1.SHARC 内部架构。

计算单元:DSP都包含并行硬件乘法器以支持单周期乘法,其乘法器通常在单个周期中组合乘法和累加。DSP 具有专用累加器,其寄存器明显宽于标称字大小,以保持精度,例如 32 位 ADSP-2106x SHARC 系列中的 80 位(图 1)。硬件可能支持从累加器溢出中恢复,如ADSP-21xx系列。此外,DSP都包含功能齐全的算术逻辑单元(ALU),与乘法器无关。

ALU 可能具有特殊功能,例如能够同时生成求和和差分以加速快速傅里叶变换 (FFT) 中的内核例程,FFT 是一种用于在时域和频域之间转换信号的算法。高级DSP将在计算单元中包含饱和逻辑,以防止数据溢出。它还可以提供零开销(即,不需要额外的时钟周期)陷阱来中断算术异常的例程。

复杂的DSP还可能包含单周期桶移器(即能够在一个时钟周期内将一个单词向左或向右移动任意数量的位),以及用于数据缩放,数据压缩/扩展或打包/解包和位操作的优先级编码器。它还可能包括专用硬件,以最大限度地减少快速除法、平方根和超越函数计算所需的时间。具有这些特殊功能的计算元件在RISC处理器上找不到。

地址生成: 高效的DSP将使其计算单元至少提供来自两个独立数据地址生成器的数据。分接延迟块和系数缓冲器是DSP的特征,但在通用计算中大多是未知的。高效的DSP需要循环缓冲器硬件来支持缓冲器。循环缓冲区指针需要每个周期更新,而不会产生开销。此外,缓冲区结束的比较测试需要一个无延迟命令来重置缓冲区结束处的指针。另一方面,RISC处理器需要为每个比较测试提供一个额外的周期。

内存架构: DSP 通常支持与通用计算系统不同的系统存储器架构。DSP采用哈佛架构,允许从两个不同的外部存储器持续单周期访问两个单词的数据。例如,ADI公司的SHARC DSP具有集成在片内的2或4 Mb双端口SRAM。该内存是直接寻址的,而不是像RISC处理器那样的缓存。对于CPU来说,这种片上存储器看起来像一个独特的存储器,而不仅仅是系统中其他位置的存储器的高速复制品。原因是DSP通常是嵌入式处理器。它们的片上存储器通常足以容纳任务所需的完整、重复的DSP程序。每个内存块都是双端口,用于内核处理器和 I/O 处理器或 DMA 控制器进行单周期独立访问(图 2)。双端口存储器和独立的片上总线允许在一个周期内从内核传输两个数据,从I/O传输一个数据。

中断功能: 由于DSP旨在在实时系统中运行,因此高效、复杂且可预测的中断处理对于DSP至关重要。RISC处理器具有高度流水线的架构,往往具有缓慢的中断响应时间和有限的中断能力。上下文切换应该非常快。高级DSP,如新型ADSP-21csp01和ADI公司的ADSP-2106x浮点系列,支持完整的替代寄存器集,允许单周期上下文切换以支持中断处理。(寄存器文件窗口不同,因为它的目的是加速参数传递,而不是保存整个上下文。

除内部中断外,高级DSP还将支持至少四个独立的外部中断。中断延迟将保持在几个周期内,并且必须是可预测的。中断应该是可嵌套的和可优先的。此外,应该很容易实时启用和禁用特定中断。

硬件循环:高效环路对于数字信号处理至关重要,因为信号处理算法是重复的。一个好的DSP将支持具有专用内部硬件的零开销环路。也就是说,芯片将监控环路条件和终止,以与所有其他操作并行决定是否将程序计数器或分支递增到环路顶部,而不会造成周期时间损失。另一方面,RISC处理器必须在每个循环结束时进行测试和分支,每个循环和每次通过至少要花费一个额外的周期。嵌套循环在信号处理算法中也很常见;DSP 环路硬件应支持至少四级嵌套环路的深度。RISC处理器尚未发展到支持这些基本的信号处理需求。

条件执行:数据相关执行对于信号处理非常重要。因此,ADSP-2100系列和ADSP-2106x SHARC浮点系列等高级DSP支持有条件地执行其大部分基本指令:在单个指令中,处理器测试条件代码,如果为真,则在同一周期内执行操作。这可以对计算密集型算法产生巨大的影响。英特尔在 i860 中发现了这个问题,并添加了一个图形单元来处理高性能 Z 缓冲所需的条件存储操作。

接口DSP基于来自模数转换器的实际信号工作,并将结果发送到D/A转换器。因此,DSP通常包含串行端口,用于与这些设备进行廉价接口。高级DSP增加了硬件以提高操作效率,例如双缓冲和自动缓冲。由于这些输入/输出信号可能来自非线性编解码器,因此高级DSP可能具有用于零开销A律和μ律扩容的专用硬件。此外,串行端口可能具有简化与T1和CEPT数据传输线接口的功能。

poYBAGPYdvqAF-xqAABSBYRYyL0035.png

图2.高效的 SHARC 内存架构允许 I/O 带宽跟上计算速度。

SHARC串行端口旨在通过灵活的硬件最大限度地提高吞吐量,但针对各种信号类型进行了调整。它们的特点包括:每个串行端口可以自动接收和/或发送整个数据块,独立发送和接收每个数据缓冲寄存器以及移位寄存器,TDM多通道模式。

编程注意事项: 曾经,DSP和RISC之间的显着区别在于它们的编程模型。DSP本质上是性能驱动的,因此DSP的编程主要使用汇编语言完成,以便从处理器获得最佳性能。对于定点DSP,通常仍然如此,但使用ADSP-2100系列的直观代数汇编语言则更容易(图3)。在不牺牲性能的情况下,它改善了易用性问题,这个问题促使许多程序员偏爱像C这样的高级语言。

pYYBAGPYdvKAfAz9AAA0CaVWcUY874.png

图3.FFT 代码示例。

另一方面,浮点DSP用高级语言编程效率更高。浮点计算避免了分数数据类型,C 中不存在分数数据类型。此外,体系结构决策可能会影响编译器效率。例如,ADSP-2106x SHARC系列的大而统一的地址空间使编译器更容易分配存储器。此外,其大而灵活的寄存器文件提高了效率。

我们产品战略的核心是提供工具和DSP内核,以便能够使用高级语言对定点和浮点DSP进行高效编程。这就是ADSP-21csp背后的驱动力,ADSP-21csp是一个新的并发信号处理器系列。然而,尽管使用高级语言,DSP程序员必须能够在语言级别下降(以最小的痛苦)来提高时间关键例程的性能。

DSP设计越来越多地按照这样的顺序进行编程:首先,用高级语言编写和调试软件原型。此原型通常会产生足够的性能。然而,更一般地说,需要提高性能,因此在模拟中对高级代码进行直方图处理,以找到需要最多执行时间的部分。然后用汇编语言手工编码关键部分。直方图和手动编码过程将迭代,直到达到性能目标。

虽然DSP和RISC之间的差异很多,但这两种架构往往在编程领域趋同,这种融合是由上市时间和DSP在应用中不断变化的作用驱动的。程序员擅长快速开发工作C程序,使用它们更快地将产品推向市场。同时,DSP承担更多的系统管理功能,如用户界面或系统控制,并且需要提供高水平的语言效率,以与以前分配这些控制任务的μC和RISC处理器竞争。

审核编辑:郭婷

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

    关注

    544

    文章

    7682

    浏览量

    344362
  • 嵌入式
    +关注

    关注

    4982

    文章

    18281

    浏览量

    288448
  • 计算机
    +关注

    关注

    19

    文章

    6649

    浏览量

    84531
收藏 人收藏

    评论

    相关推荐

    【TL6748 DSP申请】嵌入式分析和实时信号处理

    工作模式。因此有必要发展一种可重构和可扩展的通用信号处理系统,能将信号处理机多功能化、模块化、标准化和通用化。将嵌入式操作
    发表于 09-10 11:13

    什么是嵌入式系统嵌入式系统一般应用在什么领域?

    制程序存储ROM嵌入式处理器控制板。实际上,只要带有数字接口的设备,比如是手表、微波炉、录像机、汽车等等设备,都是使用
    发表于 03-09 17:58

    基于DSP+ARM的双核嵌入式系统通信接口设计

    另一类数据密集处理型芯片DSPDSP由于其特殊的结构、专门的硬件乘法器和特殊的指令,使其能快速地实现各种数字信号
    发表于 07-23 07:37

    如何设计嵌入式FIFO数据传输系统

    嵌入式设备由于具有硬件可在线配置,实现灵活等特点,使得其应用越来越广泛。尤其基于FPGA的硬件系统应用较多,目前
    发表于 08-08 07:03

    DSP系统与通用嵌入式系统有什么区别?

    DSP处理器是一种嵌入式处理器(embedded microprocessor),它专门用于数字信号处理
    发表于 08-08 08:18

    CS4235DSP嵌入式系统中有哪些应用?

    使整个系统的声音质量上升一个新的台阶。通过分析,WSS(Windows Sound System)兼容声卡和PC机ISA总线的接口原理,我们将其中的声效芯片CS4235应用到基于DSP嵌入式
    发表于 09-03 08:31

    嵌入式系统怎么实现FFT算法?

    目前许多嵌入式系统要用到FFT运算,如以DSP为核心的交流采样系统、频谱分析、相关分析等。本
    发表于 10-09 08:00

    什么是嵌入式系统

    和 指令 进行了特殊设计,使其适合于实时地进行 数字 信号处理。在数字滤波、 FFT 、谱分析等方面, DSP 算法正大量进入嵌入式领域, DSP
    发表于 04-16 09:53

    嵌入式系统的硬件平台组成

      嵌入式系统的硬件架构,是以嵌入式处理器为中心,由存储器、I/O设备、通信模块以及电源等必要的辅助接口组成。嵌入式
    发表于 06-20 15:25

    怎么实现基于信号处理嵌入式应用的音频处理系统的设计?

    本文阐述了基于信号处理嵌入式应用的音频处理系统的设计和实现
    发表于 06-08 07:07

    嵌入式系统的特点

    (任何误动作都可能会产生致命的后果)软件固化(软件都固化只读存储器ROM,用户不能随意更改其程序功能)实时性(2)逻辑组成硬件:1)处理器(运算器、控制器、存储器)目前所有的处理
    发表于 07-27 06:57

    嵌入式系统硬件层嵌入式处理

    /12/16,68300嵌入式微处理器MPU举例:Am186/88,PowerPC,68000,MIPS,ARM嵌入式数字信号处理DSP
    发表于 10-27 06:58

    嵌入式开发DSP与FPGA的关系是什么

    嵌入式开发DSP与FPGA的关系常所说的单片机侧重于控制,不支持信号处理,属于低端嵌入式
    发表于 12-15 09:06

    嵌入式和通用DSP之间的差别在哪

    的性能是工程师们选择合适的数据处理器时需要重点考虑的问题。  中国的3G和智能手机,以及便携性数码产品对嵌入式DSP的需求在这几年内呈现爆炸性的增长。此外,一些新型应用,如MPEG4
    发表于 12-15 06:01

    DSP嵌入式系统有哪些不同呢

    DSP:Digital Signal Processing(数字信号处理DSP芯片FPGA:Field Programmable Gate Array(现场可编程逻辑门阵列)
    发表于 12-15 08:53