DSP的基本特性(以TI的C54x为例)
2019-07-13 09:51发布
生成海报
本文介绍DSP的基本特点,和通用处理器硬件结构,总线和指令支持的不同,通常DSP算法的复杂度评估等。
概述
数字信号处理器(DSP)是为解决数字信号的实时运算的需要而设计,能满足大运算量、复杂计算、实时性强的各种应用场合。
DSP的运算特点
- 寻址操作:数据范围宽,结构复杂,但很有规律,如FFT运算的蝶形;
- 数据操作:高度重复,如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算法的复杂度评估等。
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮