注意
- 芯片型号:TMS320F28335
- 参考资料:《TMS320F28335 DSP原理、开发及应用》
- 对应PPT第一章
- 为了考试复习的同学请谨慎参考,本笔记的大部分都没考到
1 定点与浮点数
- PPT:59页
1.1 定点与浮点DSP芯片
- 定点DSP芯片
结构较简单,MAC速度较快,运算精度低,动态范围小 - 浮点DSP芯片
结构较复杂,主频较低,功耗较高,但运算精度高,动态范围大
1.2 定点数据格式
- 定点无符号数据格式
数值范围0~216-1 - 定点有符号数数据格式(补码)
数值范围-215~215-1
1.3 数的定标——确定定点格式数据中小数点的位置
- 不同的Q值,表示数的范围不同
- 不同的Q值,表示数的精度不同
- 定点格式中,数的范围与精度是一对矛盾
转换关系
- 小数Xf转换为定点数Xd:Xd=int(Xf×2Q)
- 定点数Xd转换为小数Xf:Xf=float(Xd×2-Q)
举例
0.25的Q15表示法——0.25×215=8192=0x2000
1.4 浮点数
- 浮点数=(-1)S×2(e-127)×1.f
【举例】
-0.75=-(0.11)2=-(1.1)×2-1=(-1)1×(1.1)×2(126-127)
所以,S=1,e=126,f=1,综合起来就是0xBF400000
【注意】
E位的编码形式并非常用的补码形式(正数是它本身,负数符号位变1数据取反加一),而是把E位的8位能代表的数据空间(0-255)左右分为两半,以127为中点,代表0。如果指数为是1,则E位是128;如果指数位是2,则E位是129;如果指数位是-1,则E位是126,以此类推。(参考博客:浮点型数据(float, double)存储IEEE标准解析和应用)
F的填充方式也不是低位填充,而是高位填充,比如刚才的f=1,并不是0x000001,而是0x400000(参考:lsyDSP精髓思想)
2 DSPs芯片特点
- 对应PPT67页
2.1 算术单元
- 硬件乘法器
- 多功能单元
2.2 总线结构
- 哈佛总线结构
数据、程序空间独立
数据、程序总线分离
对应的数据结构是冯诺依曼结构:
数据、程序空间共享
数据、程序总线复用
2.3 流水技术
- 流水技术是将各指令的各个步骤重叠起来执行,即使得若干条指令的不同执行阶段可以处于同一时刻并行处理,这样每一个阶段称作一个流水。
2.4 专用寻址单元
- DSPs通常都有支持地址计算的算术单元——地址产生器。地址产生器与ALU并行工作,地址的计算不再额外占用CPU时间。
- DSPs的地址产生器一般都支持直接寻址、间接寻址,完成地址的加减运算,而且有些DSPs还能够支持位反转寻址(用于FFT计算)和循环寻址(用于FIR计算)。
2.5 片内存储器
2.6 丰富的外设
- 时钟发生器(振荡器与锁相环PLL)
- 定时器(Timer),看门狗(watchdog)
- 软件可编程等待状态发生器
- 同步串口(SSP)、异步串口(ASP) 、主机接口(HPI)
- JTAG边界扫描逻辑电路(IEEE 1149.1标准)
- CAN总线、PCI总线、以太网接口,I2C接口
- DMA控制器
- ADC
- USB,USB OTG,MMC/SD
- EMIF(DDR2)
3 DSP处理器实现高速运算途径
- 硬件乘法器及乘加单元
支持单周期的乘法指令
单周期的乘-加操作(MAC) - 多个执行单元
片内多个独立单元并行执行
如TMS320C62x/67x片内8个功能单元,指令执行速度最高可8倍于主频 - 高效的存储器访问
存储带宽大,支持多操作数访问
特殊寻址模式,地址修改灵活 - 数据格式
定点芯片、浮点芯片 - 零开销循环
支持高效的循环操作,在无须花费任何时钟周期的情况下,实现FOR—NEXT循环。往往将这种特性称为“零开销循环”。 - 数据流的线性I/O
为了达到高性能低成本的输入和输出,大多数DSP处理器都有一个或多个专门的串口或并口,并采用线性的处理机制,例如低开销的中断和DMA,使得数据的传输不影响或尽可能少地影响处理器计算单元的工作。 - 专门的指令集
最大限度使用处理器内部基本硬件,提高性能
程序所占存储空间最小
4 实时数字信号处理
- 概念:实时指的是系统必须在有限的时间内完成外部输入信号的指定处理,即信号处理速度必须大于等于输入信号更新的速度,而且从信号输入到处理后输出的延迟必须足够的小。
4.1 DSP系统典型数据处理方式
- 数据流处理(Stream Processing)
数据是在一个输入样本到达后,就立即开始进行与该样本有关的运算,并在下一个样本到达之前完成。这种在下一个样本输入之前完成上一个样本处理的方法称为数据流处理方式。例如数字FIR滤波。
【特点】:每接收一个样本,就做一次新的运算。输入样本周期与输出样本周期保持一致。
【优点】:其结果是随时更新的。输出样本和其影响的输出结果之间的时延达到理论的最小值。
【缺点】:要求处理器的速度必须足够高,能在下一个样本到达之前完成所有计算。 - 块处理(Block Processing)
首先将输入样本存放到存储器中,当L个输入样本都到达以后,才开始处理。这种同时处理多个样本的方法称为块处理技术,也叫帧处理(Frame Processing)。
在块处理技术中,输入样本按组存储,当有足够多的样本到达后,开始处理这个样本块。主要应用在输出采样率小于输入采样率(采用间隔T)的场合,其计算时间限制在LT以内。
譬如傅里叶变换运算。
优点:减少频繁读写存储器所带来的额外开销,获得较高处理效率;可以使用较低速度的处理器。
缺点:时延以及足够的存储空间。 - 矢量处理(Vector Processing)
同时处理多路输入/输出信号的方法,称为矢量处理技术。
通常情况下,矢量处理用来计算两个信号之间的相关程度。