第2章DSP控制器总体结构
- 格式:ppt
- 大小:1.73 MB
- 文档页数:87
第2章DSP的硬件结构DSP的硬件结构:DSP与标准微处理器有许多共同的地方,都是由CPU、存储器、总线、外设、接口、时钟组成。
从广义上讲,可以说DSP是一种CPU。
但DSP和一般的CPU 又有不同, DSP有自己的一些独特的特点,比如采用哈佛结构、流水线操作、独立的硬件乘法器、独立的DMA总线和控制器等。
Von Neuman结构与Harvard结构:Harvard结构:程序与数据存储空间分开,各有独立的地址总线和数据总线,取指和读数可以同时进行,从而提高速度,目前的水平已达到90亿次浮点运算/秒(9000MFLOPS)。
MIPS--Million Instruction Per SecondMFLOPS--Million Floating Operation Per Second流水操作(pipeline):独立的硬件乘法器:在卷积、数字滤波、FFT、相关、矩阵运算等算法中,都有A(kB(n-k一类的运算,大量重复乘法和累加。
通用计算机的乘法用软件实现,用若干个机器周期。
DSP有硬件乘法器,用MAC指令(取数、乘法、累加)在单周期内完成。
独立的DMA总线和控制器:有一组或多组独立的DMA总线,与CPU的程序、数据总线并行工作,数据的传递和处理可以独立进行,DMA内部总线与系统总线完全分开,避开了总线使用上的瓶颈。
在不影响CPU工作的条件下,DMA速度已达800Mbyte/s。
CPU:通用微处理器的CPU由ALU和CU组成,其算术运算和逻辑运算通过软件来实现,如加法需要10个机器周期,乘法是一系列的移位和加法,需要数十个机器周期。
DSP的CPU设置硬件乘法器,可以在单周期内完成乘法和累加.移位:通用微处理器的移位,每调用一次移位指令移动1-bitDSP可以在一个机器周期内左移或右移多个bit,可以用来对数字定标,使之放大或缩小,以保证精度和防止溢出;还可以用来作定点数和浮点数之间的转换.溢出:通用CPU中,溢出发生后,设置溢出标志,不带符号位时回绕,带符号位时反相,带来很大的误差DSP把移位输出的最高位(MSB)存放在一个位检测状态寄存器中,检测到MSB=1时,就通知下一次会发生溢出,可以采取措施防止.数据地址发生器(DAG):在通用CPU中,数据地址的产生和数据的处理都由ALU来完成在DSP中,设置了专门的数据地址发生器(实际上是专门的ALU),来产生所需要的数据地址,节省公共ALU的时间.外设(peripherals):时钟发生器(振荡器与PLL)定时器(Timer)软件可编程等待状态发生器通用I/O同步串口(SSP)与异步串口(ASP)JTAG扫描逻辑电路(IEEE 1149.1标准便于对DSP作片上的在线仿真和多DSP条件下的调试’C54x的内部结构:中央处理器CPU 、内部总线控制、特殊功能寄存器、数据存储器RAM 、程序存储器ROM、I/O功能扩展接口、串行口、、主机通信接口HPI、定时系统、中断系统。
DSP原理及应用第二章DSP的硬件结构总结(精)【例2.4.1】累加器A=FF01234567H,执行带移位的STH 和STL指令后,求暂存器T和A的内容。
2.4.3桶形移位寄存器:TMS320C54x的40位桶形移位寄存器主要用于累加器或数据区操作数的定标。
它能将输入数据进行0~31位的左移和0~16位的右移。
所移动的位数可由ST1中的ASM或被指定的暂存器T决定。
1.组成框图①多路选择器MUX:用来选择输入数据。
②符号控制SC:用于对输入数据进行符号位扩展。
③移位寄存器:用来对输入的数据进行定标和移位④写选择电路:用来选择最高有效字和最低有效字。
2.桶形移位寄存器的输入通过多路选择器MUX来选择输入信号。
①取自DB数据总线的16位输入数据;②取自DB和CB扩展数据总线的32位输入数据;③来自累加器A或B的40位输入数据。
3.桶形移位寄存器的输出①输出至ALU的一个输入端;②经写MSW/LSW选择电路输出至EB总线。
4.桶形移位寄存器的功能主要用于格式化操作,为输入的数据定标。
①在进行ALU运算之前,对输入数据进行数据定标;②对累加器进行算术或逻辑移位;③对累加器进行归一化处理;④在累加器的内容存入数据存储器之前,对存储数据进行定标。
2.4.5比较、选择和存储单元CSSUCSSU单元主要完成累加器的高阶位与低阶位之间最大值的比较,即选择累加器中较大的字,并存储在数据存储器中。
工作过程:①比较电路COMP将累加器A或B的高阶位与低阶位进行比较;②比较结果分别送入TRN和TC中,记录比较结果以便程序调试;③比较结果输出至写选择电路,选择较大的数据;④将选择的数据通过总线EB存入指定的存储单元。
例如,CMPS指令可以对累加器的高阶位和低阶位进行比较,并选择较大的数存放在指令所指定的存储单元中。
指令格式:CMPSA,*AR1功能:对累加器A的高16位字(AH)和低16位字(AL)进行比较,若AH>AL,则AH→*AR1,TRN左移1位,0→TRN(0,0→TC;若AH,则AL→*AR1,TRN 左移1位,1→TRN(0,1→TC。