DSP硬件结构的特点和软件的特点
硬件结构的特点
1 Harvard结构
程序与数据存储空间分开,各有独立的地址总线和数据总线,取指和读数可以同时进行,从而提高速度,目前的水平已达到90亿次浮点运算/秒(9000MFLOPS)
2 采用流水作业(pipline)
3 独立的硬件乘法器
乘法指令在单周期内完成,优化卷积、数字滤波、FFT、相关、矩阵运算等算法中的大量重复乘法
4 循环寻址(Circular addressing),位倒序(bit-reversed)等特殊指令
使FFT、卷积等运算中的寻址、排序及计算速度大大提高。1024点FFT的时间已小于1µs
5 独立的DMA总线和控制器
有一组或多组独立的DMA总线,与CPU的程序、数据总线并行工作,在不影响CPU工作的条件下,DMA速度已达800Mbyte/s以上
6 多处理器接口
使多个处理器可以很方便的并行或串行工作以提高处理速度
7 JTAG(Joint Test Action Group)标准测试接口(IEEE 1149标准接口)
便于对DSP作片上的在线仿真和多DSP条件下的调试
软件的特点
1 立即数寻址
2 直接寻址
TI公司的TMS320系列芯片将数据存储器分为512页,每页128字。设置一个数据页指针DP(Data Pointer),用9-bit指向一个数据页,再加上一个7-bit的页内偏移地址,形成16-bit的数据地址。这样有利于大大加快寻址速度。
3 间接寻址
8个辅助寄存器(AR0--AR7),由一个辅助寄存器指针(ARP 3-bit)来指定一个辅助寄存器算术单元(ARAU)作16-bit无符号数运算,决定一个新的地址,装入辅助寄存器中的一个
AR0--AR7的内容相当灵活,可以装入立即数,加上立即数,减去立即数;也可以从数据存储器装入地址;还可以作以下的变址寻址:
将该AR的内容加1或减1,再寻址(循环常用)
将该AR的内容加上或减去AR0的内容,再寻址
将该AR的内容逆向进位加上或减去AR0的内容,再寻址
由于采用反向进位,得以实现位倒序寻址
原序 原地址 位倒序后地址 位倒序
0 000 000 0
1 001 100 4
2 010 010 2
3 011 110 6
4 100 001 1
5 101 101 5
6 110 011 3
7 111 111 7
例:MAC X0,Y0,A X
R0)+,X0 Y
R4)+N4,Y0
这条指令命令DSP56300:
将寄存器X0和Y0中的数相乘
结果加到Acc A中
将寄存器R0所指的X存储器地址中的值装入寄存器X0
将寄存器R4所指的Y存储器地址中的值装入寄存器Y0 R0的值加1
寄存器N4的值加给R4
可以看到,运算后的次序符合FFT的蝶形运算的要求
采用循环寻址实现零开销的循环,大大增进了如卷积、相关、矩阵运算、FIR等算法的实现速度