DSP

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

2019-07-13 09:51发布

本文介绍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算法的复杂度评估等。