1.1 DSP技术概念

**DSP技术:**将通用的或专用的DSP处理器用于完成数字信号处理的方法和技术。

DSP完成数字信号处理(即实时DSP系统实现框图)的简单过程如下图所示:

dsp神经网络处理 dsp跑神经网络_乘法器

1.2 数字信号处理的优势

  • 可控性强:
    通过改变程序使微处理器实现不同的功能,比如下表:

eg

功能

数字滤波器

通过改变程序中的系数来实现低通、高通、带通等不同的滤波任务以及性能

软件无线电技术

在一个统一的以高性能DSP处理器为核心的硬件平台上,加载不同的程序来实现不同工作模式的电台通信

虚拟仪器技术

是以在同一硬件平台上获取外部采样信号,编写不同的软件来实现传统仪器的测量任务,甚至更为复杂的信号运算、信号产生等功能

  • 稳定性高
    较模拟系统,数字系统受时间和环境的影响小的多;数字制造采用大规模集成电路,其故障率远比采用分立元件构成的模拟系统的低。
  • 精度高
  • 抗干扰性能强
  • 实现自适应算法
    强调系统的自我学习能力:eg:神经网络、遗传算法
  • 数据压缩
    目的:减小传输带宽
    模拟信号:带限滤波,失真
    数字信号:压缩数据,几乎无失真
  • 大规模集成
    系统的一致性、可靠性显著提高;系统功耗、体积日益减小

模拟信号处理不可替代

  • 自然界的信号绝大多数都是模拟信号
  • 模拟信号处理系统从根本上说是实时的
  • 射频(RF)信号的处理要由模拟系统来完成

1.4 实时数字信号处理概念

实时指的是系统必须在有限的时间内完成外部输入信号的指定处理,即信号处理速度必须大于等于输入信号更新的速度,而且从信号输入到处理后输出的延迟必须足够的小。

实时取决因素:

  1. 运算量:数据率、算法复杂度
  2. 芯片速度

eg:
(1)音频信号:采样时钟44.1KHz,字长16bit,则数据率88.2KBps,实时处理速度至少为88.2KBps
(2)视频信号:一帧画面512×512点阵,每个像素点用16个色阶表示,当传输速率为30帧/秒时,则数据率15MBps,实时处理速度至少为15MBps

结论:对实时信号处理速度的要求与原始模拟信号带宽以及数据格式(字长、维数)、算法复杂程度等因素是密切相关的。

1.5 实时DSP系统组成

实时DSP系统实现框图如图所示:

dsp神经网络处理 dsp跑神经网络_乘法器


其中DSP子系统是整个系统的核心。

DSP子系统实现方式:

  • 通用微计算机
    利用统一的平台,编写软件,实现不同的功能。这种方法缺点是速度太慢,不能用于实时系统,只能用于仿真研究。
  • 加速处理模块
    在通用微机内部加入专用的加速处理模块,微机作为系统控制使用。缺点是不适合嵌入式应用。
  • 单片机
    单片机采用的是冯•诺依曼总线结构,用它构成的系统比较复杂,尤其是乘法运算速度慢,在运算量大的实时控制系统中很难有所作为。
  • 专用DSP芯片
    专用DSP芯片可用于FFT、FIR、卷积、相关等高速运算。一般速度较快,但是灵活性较差,而且开发工具不完善。
  • 可编程FPGA器件
    利用VHDL或是VerilogHDL硬件开发语言,通过软件编程来改变FPGA内部门阵列结构,最终用硬件实现特定数字信号处理算法。这种实现方法具有通用性、并行性,一般作为DSP芯片的协处理器。
  • 通用可编程DSP芯片
    通用可编程DSP芯片有着更适合于数字信号处理的硬件特点和指令系统,而且其性价比随着微电子的发展不断提高,非常适合实现性要求高的应用领域。

通用DSPs构成的子系统:

dsp神经网络处理 dsp跑神经网络_数字信号处理_03


其中前向通道:

dsp神经网络处理 dsp跑神经网络_数字信号处理_04


后向通道:

dsp神经网络处理 dsp跑神经网络_信号处理_05


DSP系统典型数据处理方式:

  • 数据流处理
    数据是在一个输入样本到达后,就立即开始进行与该样本有关的运算,并在下一个样本到达之前完成。这种在下一个样本输入之前完成上一个样本处理的方法称为数据流处理方式。例如数字FIR滤波。
    特点:每接收一个样本,就做一次新的运算。输入样本周期与输出样本周期保持一致。
    优点:其结果是随时更新的。输出样本和其影响的输出结果之间的时延达到理论的最小值。
    缺点:要求处理器的速度必须足够高,能在下一个样本到达之前完成所有计算。
  • 块处理
    首先将输入样本存放到存储器中,当L个输入样本都到达以后,才开始处理。这种同时处理多个样本的方法称为块处理技术,也叫帧处理。在块处理技术中,输入样本按组存储,当有足够多的样本到达后,开始处理这个样本块。主要应用在输出采样率小于输入采样率(采用间隔T)的场合,其计算时间限制在LT以内。譬如傅里叶变换运算。
    优点:减少频繁读写存储器所带来的额外开销,获得较高处理效率;可以使用较低速度的处理器。
    缺点:时延以及足够的存储空间。
  • 矢量处理
    同时处理多路输入/输出信号的方法,称为矢量处理技术。
    通常情况下,矢量处理用来计算两个信号之间的相关程度

1.7 DSPs芯片特点

  • 算术单元
  1. 硬件乘法器
    硬件乘法器大大减少了乘法指令的运算时间,提高了DSP芯片在完成数字信号算法的运算性能。
    硬件乘法器是DSPs区别早期通用微处理器的一个重要标志。
  2. 多功能单元
    DSP芯片内部设置了多个并行操作的功能单元(ALU,乘法器和地址生成器),为进一步提高运算速度。
    多功能单元使DSP在单位时间内完成更多的操作,提高了程序执行速度。
  • 总线结构

类型

结构

特点

通用微处理器CPU

冯•诺依曼总线结构

数据、程序 空间共享/总线复用

数字信号处理芯片DSP

哈佛总线结构

数据、程序 空间独立/总线分离

  • 流水技术
    流水技术是将各指令的各个步骤重叠起来执行,即使得若干条指令的不同执行阶段可以处于同一时刻并行处理,这样每一个阶段称作一个流水。
  • 专用寻址单元
    DSPs通常都有支持地址计算的算术单元——地址产生器。地址产生器与ALU并行工作,地址的计算不再额外占用CPU时间。
    DSPs的地址产生器一般都支持直接寻址、间接寻址,完成地址的加减运算,而且有些DSPs还能够支持位反转寻址(用于FFT计算)和循环寻址(用于FIR计算)。
  • 片内存储器
  • 丰富的外设

1.8 DSP处理器实现高速运算途径

  • 硬件乘法器及乘加单元
    支持单周期的乘法指令、单周期的乘-加操作(MAC)
  • 多个执行单元
    片内多个独立单元并行执行
  • 高效的存储器访问
  1. 存储器带宽大,支持多操作数访问
  2. 特殊寻址模式,地址修改灵活
  • 数据格式
    定点芯片、浮点芯片
  • 零开销循环
    支持高效的循环操作,在无须花费任何时钟周期的情况下,实现FOR—NEXT循环。往往将这种特性称为“零开销循环”。
  • 数据流的线性I/O
    为了达到高性能低成本的输入和输出,大多数DSP处理器都有一个或多个专门的串口或并口,并采用线性的处理机制,例如低开销的中断和DMA,使得数据的传输不影响或尽可能少地影响处理器计算单元的工作。
  • 专门的指令集
  1. 最大限度使用处理器内部基本硬件
  2. 程序所占存储空间最小

1.9 DSP芯片性能指标及选型依据

DSP评价方法:

  • 传统性能评价:

单位

定义

MIPS

Millions of Instructions per Second百万指令每秒

MOPS

Millions of Operations per Second百万操作每秒

MFLOPS

Millions of Float Operations per Second百万浮点操作每秒

MACS

Multiply-Accumulates per Second乘加次数每秒

  • 完整应用评价:
    优点:
    可以完整的评估不同系列DSP芯片完成某一特定应用任务的详细性能指标,包括执行时间、存储器使用、功耗等指标。
    缺点:
     真实的环境难以模拟,评价难以做到公平
     难以确保不同DSP应用软件的最优
     评价更依赖于系统而非DSP本身
     评价系统成本过高
  • 核心算法评价:
    BDTI 提出了一种使用核心算法和应用测试的方法。它是介于过于简单的MIPS类指标和过于复杂的完全基于应用的指标之间的方法。核心算法是构成大多数信号处理系统的基本模块,其中包括FFT、滤波器等。
    统计量:执行时间、存储器使用、能耗
    控制指标的优化则在于存储器的使用。
    控制代码的大小,基本上决定了片内存储器的大小,从而在很大程度上决定DSP处理器的成本。
    测量方式:软件仿真周期技术(simulate)、基于硬件的应用开发工具测量(emulate)。

选型依据:

  • 速度
    运算速度是DSP处理器一个最重要的性能指标,也是选择DSP处理器主要因素。可以用以下指标来衡量:指令周期,MACS,FFT执行时间,MIPS,MOPS,MFLOPS;
  • 精度
    浮点与定点的选择,字长的选择
  • 芯片资源
    片内RAM,ROM,FLASH等储存器的大小,可扩展空间,总线接口,I/O接口,外设资源:比如定时器,DMA,串口,PCI接口,CAN总线接口,网络接口,硬件译码器,PWM产生器,AD,HPI接口等等。
  • 开发工具
    开发工具是否完备,开发环境功能是否强大,开发界面是否友好,是否有现成的库函数。
  • 支持多处理器
    雷达和声纳等高数据率和大运算量的应用系统,往往需要使用多个DSP处理器。多处理器之间的连接是否容易(处理器之间通信电路时间以及成本)和连接性能成为主要因素。
  • 功耗与电源管理
    工作电压,休眠与待机模式,外设电源控制
  • 成本
    封装形式、质量标准、供货情况、生命周期等等