DSP的基本特性(以TI的C54x为例)

来源:互联网 发布:孕囊数据两个一样 编辑:程序博客网 时间:2024/05/21 17:34

本文介绍DSP的基本特点,和通用处理器硬件结构,总线和指令支持的不同,通常DSP算法的复杂度评估等。

概述

数字信号处理器(DSP)是为解决数字信号的实时运算的需要而设计,能满足大运算量、复杂计算、实时性强的各种应用场合。

DSP的运算特点

  1. 寻址操作:数据范围宽,结构复杂,但很有规律,如FFT运算的蝶形;
  2. 数据操作:高度重复,如MAC乘累加操作;

针对这一算法特点,DSP在功能上与通用的MCU相比,作了下列几方面的改进:

    1)扩充运算能力:增加字长,乘法保留双字长,有双精度运算;

2) 自动产生数据地址:专用的ALU可以产生循环地址及非顺序地址;

3) 指令定序不对其它主要运算造成额外开销;

4) 简单的比例定标运算得到宽的动态范围;

目前三种微处理器:通用CPU-Pentiun

微控制器MCU -单片机

通用DSP

它们各有所长,但相互渗透、借鉴和交融,形成各自特点。

SoC(System on Chip): 基于DSP的新一代单片系统

例:'TI 的OMAP (Open Multimedia Application ) 开放多媒体应用平台,专门为2.5G和3G的需求而设计的. 其独特的MCU和DSP处理器超高速缓存结构,可以保证优良的系统性能、高的时钟效率和低的功耗。

150MHz的MCU负责支持应用操作系统,并完成以控制为核心的应用处理;

200MHz的DSP芯片'C55x负责完成媒体处理(包括语音、音频、图象和视频信号);

内存和流量控制器MTC,确保处理器能够高效访问外部存储区,避免产生瓶颈现象,提高整个平台的处理速度

DSP的芯片特点

DSP的体系结构:Harvard结构或者改进的哈佛结构

冯-诺依曼体系结构: 1)统一的程序和数据空间;2) 共享的程序和数据总线;

   

多总线结构

附加总线和扩充地址总线增加数据流量,提高寻址能力。

例:TMS320C54x:程序总线: (PB, PAB)

二组读数据总线: (CB, CAB) (DB, DAB)

一组写数据总线: (EB, EAB)

TMS320C55x:程序总线: (PB-32bit, PAB-24bit)

三组读数据总线: (BB-16bit, BAB-24bit)

(CB-16bit, CAB-24bit)

(DB-16bit, DAB-24bit)

二组写数据总线:(EB-16bit, EAB-24bit)

(FB-16bit, FAB-24bit)

流水线Pipeline操作

把每条指令分解成多个操作步骤,由片内多个功能单元 同时重叠分别完成,从而把指令周期减到最小,增加数据吞吐量,提高运算速度;

*流水线操作适用于循环时间足够长,或多个数据点反复执行同一指令的情况;

*缺点:① 一项处理很难分解成若干个处理规模一致,而且在时间上有最佳配合(无等待)的流水段, 因而需要用寄存器协调流水线工作;

② 流水线的启动和停止是把流水线填满和出空的过程,是需要时间的,因而不适合一次性非重复计算的场合;

具有硬件乘法器和高效的MAC指令

DSP中的卷积、相关、FFT运算都是乘法/累加运算;

乘法/累加结构框图

独立的直接存储器访问(Direct Memory Access, DMA)总线及其控制

  • DMA是指进行数据传输时不影响CPU及其相关总线的工作;
  • 当多个DSP组成处理器阵列来处理数据时,往往通过串口或并口传递数据,此时DMA成为各数据块传输的主要通道;

专用的数据地址发生器(DAG)

数据地址的产生与CPU工作并行进行;而在通用机中数据地址和数据处理都由ALU完成,

例如:8086做一次加法需要三个时钟周期,计算一次地址需5~12个时钟周期,在DSP中无需额外开销;

在DSP中存储器访问具有可预测性,例如FIR滤波中的样本、系数都是顺序访问的;而在通用机中的数据库处理,可预测性就很小;

根据DSP运算特点,DSPs地址产生器都支持间接寻址、循环寻址、倒位序寻址等寻址操作;

丰富的片内外设

便于和外部环境协调工作;也可以构成一个小系统;

片内外设有: ◎时钟产生 (振荡器和PLL)

◎定时器 ◎通用 I/O 口

◎软件可编程等待状态发生器

          ◎同步与异步串口 ◎主机接口(HIP)

◎JTAG(Joint Test Action Group) 边界扫描逻辑电路 (用于片上在线仿真和多处理器情况下的调试 )

具有片内存储器(ROM和RAM)

片内的存放程序的ROM和存放数据的RAM,适合于DSP核心程序短小及运算简单的特点;片内运算有高的传输效率, 减小总线接口压力,形成强大的数据处理能力。

与结构相配合的采用RISC(Reduced Instruction Set Computer)指令集

DSP指令集的设计要达到两个目标:

① 最大限度使用DSP基本硬件,以提高效率;

② 要求指令短,使用最少的存储器,以及尽可能将多个操作合并在一条指令中,所以经常用状态寄存器中的模式位来控制处理器的操作特性;

3. 传统DSPs指令特点:

① 高度专门化、复杂且不规则;

② 难以用高级语言C进行编译;

原因:◎C语言本身不适合用来描述DSP算法;

         ◎ DSP结构上的多存储空间、多组总线、不规则指令集和高度专门化的硬件,使C编译器效率难以提高;

DSP高速运算途径

◎ 硬件乘法器及乘--加单元 ◎ 多执行单元

◎ 高效的存储器访问 ◎ 定点及浮点的数据格式

◎ 线性I/O的数据流控制 ◎ 专门的指令集

◎ 强化传统DSPs结构:例如增加第二乘法器 ;

◎ 采用并行结构:多个执行单元;一次执行一组简单的并行指令(VLIW),(也有利于提高C编译器的效率)

DSP主要应用性能指标

(1)运算速度

* 传统评价指标:

◎ 单周期执行时间=时钟频率

MIPS(Million Instruction Per Second):对定点DSP而言

MFLOPS(Million Floating Point Operation Second),针对浮点处理器

MBPS(Million Bit Per Second) (主要用来衡量DSP数据传输能力,是对总线和I/O口数据吞吐率的度量,也就是总线和I/O口的带宽)

例:'C6000 200MHz时钟 32--bit总线则总线数据吞吐率为 800Mbyte/s 或 6400MBPS

  • MACS(Multiply---Accumulates Per Scond)

* 核心算法评价指标

一般指FIR、IIR 、向量点积、向量求和、 FFT等运算;据估计,DSP程序量有80%为控制代码(包括条件转移、子程序调用等);20%为运算代码,但它却占用了80%的执行时间。对控制代码关键是存储器的使用,片内存储器可以提高执行速度,但增加芯片成本。

(2) 运算精度

*数据格式: 定点 浮点

*数据宽度:16bit 24bit 32bit 累加器—40bit

(3)片内硬件资源:存储器安排、大小,总线接口,片内外设等

(4) 功耗和电源管理

(5) 开发及调试工具:处理器资料,完备的开发工具,代码产生工具(包括高级语言编译器等),集成开发环境等

(6) 其它因素:成本价格、供货情况、售后服务、体积封装、产品的生命周期等
Reference:

http://en.wikipedia.org/wiki/Accumulator_(computing)

http://en.wikipedia.org/wiki/Reduced_instruction_set_computing

http://www.blog.163.com/houh-1984/

本文介绍DSP的基本特点,和通用处理器硬件结构,总线和指令支持的不同,通常DSP算法的复杂度评估等。

原创粉丝点击