• /  18
  • 下载费用: 19.90积分  

DSP技术归纳总结.doc

'DSP技术归纳总结.doc'
《DSP技术》课程复习课第一章1. 什么是DSP,DSP的两层含义?数字信号处理器(DSP digital signal processing)是一种特别适合适合于进行数字信号运算处理的微处理器,主要用于实施快速实现各种数字信号处理的算法。两层含义:一、数字信号处理技术,二、数字信号处理器。2. 简述数字信号处理与模拟信号处理相比的优越性?数字系统的优点:体积小、功耗低、精度高、可靠性高、灵活性大、易于大规模集成、可进行二维与多维处理3. 什么是哈佛结构,它和传统CPU所使用的冯.诺依曼结构有什么主要区别?哈佛结构采用双存储空间程序存储器和数据存储器是分开的有各自独立的程序总线和数据总线可独立编址和独立访问。 冯诺依曼程序存储器和数据存储器不分开所以哈佛结构比冯诺 依曼结构有更快的指令执行速度。4. DSP芯片的特点(1) 在一个指令周期内可完成一次乘法和一次加法。  (2) 程序和数据空间分开,可以同时访问指令和数据。  (3) 片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问。  (4) 具有低开销或无开销循环及跳转的硬件支持。  (5) 快速的中断处理和硬件I/O支持。  (6) 具有在单周期内操作的多个硬件地址产生器。  (7) 可以并行执行多个操作。  (8) 支持流水线操作,使取指、译码和执行等操作可以重叠执行。5. 比较DSP、CPU和MCUDSP是专用的信息处理器,内部的程序是对不同的机器和环境进行特别优化,所以处理速度是最快的。CPU是多功能的处理器,强调的是多功能,适应很多不同的环境和任务,所以兼容性是最重要的。浮点运算能力和整数运算能力同等重要。MCU相当于小型的电脑,内部集成的CPU、ROM、RAM、I/O总线,所以集成度高是他的特点。6. DSP芯片在提高芯片运算速度方面采用了哪些措施?采用哈弗结构、流水线操作、专用的硬件乘法器、特殊的指令及集成电路的优化设计。7. DSP芯片的分类DSP的芯片可以按照以下的三种方式进行分类。1. 按基础特性分 静态DSP芯片和一致性DSP芯片。 2. 按数据格式分 通用型芯片和装用型芯片 3. 按用途分 定点DSP和浮点DSP。 8. 衡量DSP芯片运算速度的指标(1) 指令周期。就是执行一条指令所需要的时间,通常以ns为单位。(2) MAC时间。即一次乘法加上一次加法的时间。(3) FFT执行时间。即运行一个N点FFT程序所需的时间。(4) MIPS。即每秒执行百万条指令。(5) MOPS。即每秒执行百万次操作。(6) MFLOPS。即每秒执行百万次浮点操作。(7) BOPS。即每秒执行十亿次操作。第二章1.C54x内部总线结构及功能一共8组16位总线:1组程序总线PB,3组数据总线CB、DB(用来传送从数据存储器读出的数据) EB(用来传送写入存储器的数据);4组地址总线 PAB、CAB、DAB、EAB、2.TMS 320C 54x的累加器A和B的区别累加器A和B的唯一区别是累加器A的32~16位能被用做乘法累加单元中的乘法器输入,而累加器B不能。 3.TMS320C54x CPU内部MCU单元的结构及功能一、算术逻辑运算单元(ALU):使用40位的算术逻辑单元和2个40位累加器,完成宽范围的算术逻辑运算,ALU的输出为40位运算结果,通常被送至累加器A和B。二、累加器A和B:可以作为ALU或MAC的目标寄存器,存放运算结果,也可以作为ALU或MAC的一个输入。在执行并行指令(LD||MAC)和一些特殊指令(MIN和MAX)时,两个累加器中的一个用于装载数据,而另一个用于完成运算。。三、桶形移位寄存器:40位的桶形移位寄存器主要用于累加器或数据区操作数的定标,它能将输入数据进行0—31位的左移和0到16位的右移,所移动的位数可由ST1中的ASM或被指定的暂存器T决定。四、乘法累加单元(MAC):是由乘法器、加法器、符号控制、小数控制、零检测器、舍入器、饱和逻辑和暂存器及部分组成的。内不含有一个17*17位硬件乘法器,可完成有符号数和无符号数的乘法运算。五、比较、选择和存储单元(CSSU):专门用来完成Viterbi算法中的加法/比较/选择(ACS)操作。CSSU单元由比较电路COMP、状态转移寄存器TRN和状态比较寄存器TC组成。 完成累加器的高阶位和低阶位之间最大值的比较,即选择累加器中较大的字,并存储在数据存储器中。六、CPU状态和控制寄存器:三个16位寄存器来作为CPU状态和控制寄存器,它们分别为:状态寄存器ST0、ST1,处理器工作方式状态寄存器PMST。ST0和ST1中包含各种工作条件和工作方式的状态,PMST 中包含存储器的设置状态和其他控制信息。4.TMS320C54x 的寄存器PMST中OVLY位,DROM位的作用OVLY:RAM重复标志占位标志。ovly可以允许片内双寻址数据RAM块映射到程序空间。 DROM:数据ROM位。DROM用来控制片内ROM是否可以映射到数据空间。 5.TMS320C5402能够寻址的程序存储器容量可寻址1兆字的外部程序存储器。6.TMS320C54x的流水线结构预取指P,取指F,译码D,寻址A,读数R,执行X。1、预取址P:CPU将PC中的内容加载到程序地址总线PAB,找到指定代码存储单元。2、取址F:CPU从选中的程序存储单元中,取出指令代码加载到程序地址总线PB。3、译码D:CPU将PB中的指令代码加载到指令译码器IR,并对IR中的内容进行译码,产生执行指令所需要的一系列控制信号。4、寻址A:将读地址加载到数据地址总线DAB和CAB中。5、读数R:将写地址加载到数据地址总线EAB中。6、执行X:CPU按照操作码的要求执行指令,并将写数据加到EB中,写入指定的存储单元。7.C54x有多种省电方式,各自的特点有四种省电方式,通过IDLE1、ISLE2、IDLE3、三条指令一、闲置方式一:CPU除时钟外,所有的工作都停止;二、闲置方式二:片内外设和CPU都停止工作;三、闲置方式三:使片内外设和CPU停止工作,并且终止锁相环的工作;四、保持方式:CPU的地址总线、数据总线和控制总线处于高阻状态。可以通过设定HM位的值,用保持方式来终止CPU运行。8.C54xDSP对外部总线寻址的优先级对于外部总线,CPU在每个机器周期内只能对它寻址一次,否则,将会产生流水冲突。 外部总线优先级别为:数据寻址比程序存储器取址具有较高的优先权,所有的CPU数据寻址完成之后,才能进行程序存储器取指操作。9.TMS320C54x 内部CPU的组成40位算术逻辑单元(ALU),2个40位累加器(ACCA、ACCB),1个支持16~31位移位的桶形移位寄存器,乘法器——加法器单元(CSSU),指数编码器,CPU状态和控制寄存器,比较选择和存储单元。10.程序计数器PC的加载方法一、复位操作,用地址FF08H加载PC,二、程序是顺序执行时,PC被增量加载,即PC=PC+1,三、分支转移发生时,用紧跟在分支转移指令后面的16位立即数加载PC,四、执行块重复指令时,若PC+1等于块重复结束地址REA+111.TMS320C5402两种工作方式的特点MP/MC=0,芯片工作在微计算机方式,允许使能并寻址片内ROM(4000H~FFFFH程序空间为外部存储器,F000H~FFFFH位内部ROM);MP/MC=1,芯片工作在微处理器方式,不能使用片内ROM(4000H~FFFFH全部为外部存储器)12. TMS320C5402的CPU特殊功能寄存器的个数,地址映射空间地址符号寄存器名称地址符号寄存器名称00H IMR 中断屏蔽寄存器10H AR0 辅助寄存器001H IFR 中断标志寄存器11H AR1 辅助寄存器102H 保留 ( 用于测试 )12H AR2 辅助寄存器203H  保留 ( 用于测试 )13H AR3 辅助寄存器304H  保留 ( 用于测试 )14H AR4 辅助寄存器405H  保留 ( 用于测试 )15H AR5 辅助寄存器506H ST0 状态寄存器016H AR6 辅助寄存器607H ST1 状态寄存器117H AR7 辅助寄存器708H AL 累加器A低字(15~0位) 18H SP 堆栈指针09H AH 累加器A高字(31~16位)19H BK 循环缓冲区长度寄存器0AH AG 累加器A保护位(39~32位)1AH BRC 块重复计数器0BH BL 累加器B低字(15~0位)1BH RSA 块重复起始地址寄存器0CH BH 累加器B高字(31~16位)1CH REA 块重复结束地址寄存器0DH BG 累加器B保护位(39~32位)1DH PMST 处理器模式状态寄存器0EH T 暂存寄存器1EH XPC 程序计数器扩展寄存器0FH TRN 状态转移寄存器1FH  保留13. TMS320C5402上电复位后的执行地址,XPC的值,INTM的值FF80H 14.C54xDSP内核电源和I/O电源供电电压以及上电顺序内核电源1.8V,外部IO口供电电压3.3V 内核供电优先于外部IO口供电。第三章1.C54x 的寻址方式及其特点2.1 立即寻址特点:主要用于初始化,其特点是指令中包含有一个固定的立即数,因此没有寻找数据地址的过程,(立即数“#80H”)。 立即寻址即利用立即数进行寻址。在利用该寻址方式时立即数即包括在指令代码当中,CPU不必再去寻找数据。在立即寻址中立即数有两种形式:※ 短立即数——长度可以是3、5、8或9比特;※ 长立即数——长度16比特。立即数的长度是由指令的类型决定的,表(3A-1)列出了利用立即数寻址的指令,以及该指令中立即数的长度。使用立即寻址必须在立即数前加符号“#”,此符号标识该数是立即数,例如:RPT(#19h)。 表(5-1)使用立即数的指令2.2 绝对寻址特点:利用16位地址寻址存储单元,其特点是指令中包含一个固定地址。 绝对寻址分为4种类型:※ 数据空间寻址※ 程序空间寻址※ I/O端口寻址※ *(lk)寻址绝对寻址是利用一个16位数标识地址,CPU可根据该数直接在数据、程序、I/0空间寻址,而不必改动或初始化辅助寄存器ARx和页面寄存器DP的值。现就四种类型分别举例:1、 数据空间寻址是指所要寻址的数据保存在数据空间。例如:data(1000h)=*AR3-其中绝对寻址的地址在数据空间1000h;2、 程序空间寻址是指所要寻址的数据保存在程序空间。例如: prog(0FE00h)=@3 所要寻址的数据处在程序空间0FE00h;3、 I /O端口寻址是指所要寻址的数据处在I/O地址空间。例如:port(7h) = @OUTDAT 所要寻址的数据处在I/O端口7h;4、 *(lk)寻址是利用一个数来标识数据空间的一个地址。例如:A = *(BUFFER)BUFFER是数据区设置的变量名,当编译该程序时将自动换成该变量的地址。注意:*(lk)寻址不能用在单循环指令(REPEAT)中。2.3 累加器寻址特点:将累加器的内容作为地址去访问程序存储单元,即累加器中的数作为地址,用来存放数据的程序存储器寻址。 所谓累加器寻址是指利用累加器A放置所寻找的地址。利用累加器寻址可直接寻址24位地址,即可寻址到扩展地址寄存器,应注意该寻址方式所寻地址处在程序空间。有两个指令应用了累加器寻址方式:※ Smem = prog(A)※ Prog(A)=Smem这两条指令的作用分别是从程序空间读取数据存放到数据空间和从数据空间读取数据放到程序空间。2.4 直接寻址特点:利用数据指针和堆栈指针寻址,其特点是数据存储器地址由基地址(数据页指针DP或堆栈指针SP)和偏移地址共同组成共16位。 直接寻址是用7比特的偏移地址作为基地址,同数据页指针DP或堆栈指针SP形成一个16比特的数据存储区地址。对应一个数据页指针DP或堆栈指针SP可在长度是128字长的数据块中寻址。 DP是状态寄存器ST0的低9位,和7位的dma(数据存储器地址:data memory address)构成16位数据存储区地址,见图(3A-3)。这种寻址方式将64K的空间分成512页,每页有128字;所以,DP的赋值范围为0~511,dma的范围为0~127。SP是16位的堆栈指针(Stack Pointer)。 在直接寻址方式中具体是用DP还是SP是由状态寄存器ST1中的汇编标志位(CPL)决定的:※ 当CPL=0时,是由7位的偏移地址同9位的数据页指针DP组成16位数据存储区地址;※ 当CPL=1时,7位的偏移地址加上堆栈指针SP形成16位有效地址。图(3A-3)DP/SP直接寻址方式结构图2.5 间接寻址特点:利用辅助寄存器内容作为地址指针访问存储器。 间接寻址无疑是7种寻址方式中最复杂也是最常用的寻址方式,它有许多专门为数字信号处理设计的功能,如循环寻址、位翻转寻址等,熟练和准确地掌握间接寻址会对数字信号处理程序的设计与编制带来极大地方便,并会提高程序的效率、简化程序的结构。 C54x系列处理器提供了8个辅助寄存器(AR0~AR7),间接寻址就是利用16位的辅助寄存器在64K的数据空间寻址,间接寻址适用于内存中的固定步长连续寻址。 当。省略部分。s of 0x080 .bss temp1,1 ; address of 0x081 .bss temp2,1 ; address of 0x082 .bss temp3,1 ; address of 0x083 .bss temp4,1 ; address of 0x084 .bss temp5,1 ; address of 0x085 .bss temp6,1 ; address of 0x086 .bss temp7,1 ; address of 0x087;result register .bss add_result,1 ; address of 0x088 .bss sub_result,1 ; address of 0x089 .bss mpy_i_h,1 ; address of 0x08a .bss mpy_i_l,1 ; address of 0x08b .bss mpy_f,1 ; address of 0x08c .bss quot_i,1 ; address of 0x08d .bss remain_i,1 ; address of 0x08e .bss quot_f,1 ; address of 0x08f .text _c_int00: ld #temp,DP ; load DP of temp1 st #VAL1,temp1 st #VAL2,temp2 ; init temp1 & temp2 ,18+52=70(0x46);-------- test ADD --------------------------- ld temp1,a ; load temp1 -> a add temp2,a ; a+temp2 -> a stl a,add_result ; save a(low 16 bits) -> add_result nop ; set breakpoint st #VAL6,temp3 st #VAL1,temp4 ; init temp3 & temp4,(-18)-18=-36(0x0ffdc);-------- test SUB --------------------------- stm #temp3,ar2 ; address of temp3 -> ar2 stm #temp4,ar3 ; address of temp4 -> ar3 sub *ar2+,*ar3,b ; (temp3<<16)-(temp4< b,ar2++ sth b,sub_result ; result in sub_result nop ; set breakpoint st #VAL1,temp1 st #VAL2,temp2 ; init temp1 & temp2,18*52=936(0x3a8);-------- test MPY (integer) ----------------- rsbx FRCT ; prepare for integer mpy ld temp1,T ; temp1 -> T mpy temp2,a ; temp1*temp2 -> A (result is 32 bit) sth a,mpy_i_h ; the high 16bit in mpy_i_h stl a,mpy_i_l ; the low 16bit in mpy_i_l nop ; set breakpoint st #VAL3,temp3 st #VAL7,temp4 ; init temp3 & temp4,0.5*(-0.58374)=-0.29187(0x0daa4);-------- test MPY (fraction) ---------------- ssbx FRCT ; prepare for fraction mpy ld temp3,16,a ; load temp3 into A (high 16 bits) mpya temp4 ; temp3*temp4 -> B, and temp4 -> T sth b,mpy_f ; result in mpy_f nop ; set breakpoint st #VAL2,temp1 st #VAL6,temp2 ; init temp1 & temp2,52/-18= -2(0xfffe) mod 16(0x10);-------- test DIV (integer) ----------------- ld temp1,T ; load temp1 -> T mpy temp2,A ; temp1*temp2 -> A ld temp2,B ; load temp2 -> B (low 16 bits) abs B ; |B| -> B stl B,temp2 ; save B low 16 bits -> temp2 ld temp1,B ; load temp1 -> B (low 16 bits) abs B ; |B| -> B rpt #15 ; repeat SUBC 16 times subc temp2,b ; use SUBC done div bcd idiv_end,agt ; delay jump, run the following two instruction,then ; if A>0,then jump to label idiv_end,end div stl B,quot_i ; save low 16 bits of B -> quot_i ---> quotient sth B,remain_i ; save high 16 bits of B -> remain_i ---> remainder xor B ; if result if negative, then 0 -> B sub quot_i,B ; put minus to quotient stl B,quot_i ; save low 16 bits of B -> quot_i ---> quotientidiv_end: nop ; set breakpoint st #VAL3,temp1 st #VAL5,temp2 ; init temp1 & temp2,0.5/0.58374=0.8565457(0x6da3);-------- test DIV (fraction) ----------------- ld temp1,T ; load temp1 -> T mpy temp2,A ; temp1*temp2 -> A ld temp2,B ; load temp2 -> B (low 16 bits) abs B ; |B| -> B stl B,temp2 ; save B low 16 bits -> temp2 ld temp1,16,B ; load temp1 -> B (high 16 bits) abs B ; |B| -> B rpt #15 ; repeat SUBC 16 times subc temp2,b ; use SUBC done div and #0ffffh,B ; 0 -> high 16 bits of B bcd fdiv_end,agt ; delay jump, run the following two instruction,then ; if A>0,then jump to label fdiv_end,end div stl B,-1,quot_f ; right shift 1 bit then save to quot_f ---> quotient xor B ; if result is negative, then 0 -> B sub quot_f,B ; put minus to quotient stl B,quot_f ; save low 16 bits of B -> quot_f ---> quotientfdiv_end: nop ; set breakpointend: b end .end;////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////* * DEMO5402.CMD */MEMORY{ PAGE 0: IPROG: origin = 0x1080, len = 0x0F80 VECT: origin = 0x2000, len = 0x80 EPROG: origin = 0x38000, len = 0x8000 PAGE 1: USERREGS: origin = 0x60, len = 0x1c BIOSREGS: origin = 0x7c, len = 0x4 IDATA: origin = 0x80, len = 0x1F80 EDATA: origin = 0x4000, len = 0x4000}SECTIONS{ .vectors: {} > VECT PAGE 0 .sysregs: {} > BIOSREGS PAGE 1 .trcinit: {} > IPROG PAGE 0 .gblinit: {} > IPROG PAGE 0 .bios: {} > IPROG PAGE 0 frt: {} > IPROG PAGE 0 .text: {} > IPROG PAGE 0 .cinit: {} > IPROG PAGE 0 .pinit: {} > IPROG PAGE 0 .sysinit: {} > IPROG PAGE 0 .bss: {} > IDATA PAGE 1 .far: {} > IDATA PAGE 1 .const: {} > IDATA PAGE 1 .switch: {} > IDATA PAGE 1 .sysmem: {} > IDATA PAGE 1 .cio: {} > IDATA PAGE 1 .MEM$obj: {} > IDATA PAGE 1 .sysheap: {} > IDATA PAGE 1}
关 键 词:
dsp 技术 总结 归纳
 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:DSP技术归纳总结.doc
链接地址: https://www.wenku365.com/s-56195699.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给天天文库发消息,QQ:1290478887 - 联系我们

本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。本站是网络服务平台方,若您的权利被侵害,侵权客服QQ:1290478887 欢迎举报。

[email protected] 2017-2027 https://www.wenku365.com 网站版权所有

粤ICP备19057495号 

收起
展开