DSP原理及应用.ppt

上传人:小飞机 文档编号:5428131 上传时间:2023-07-05 格式:PPT 页数:81 大小:1.07MB
返回 下载 相关 举报
DSP原理及应用.ppt_第1页
第1页 / 共81页
DSP原理及应用.ppt_第2页
第2页 / 共81页
DSP原理及应用.ppt_第3页
第3页 / 共81页
DSP原理及应用.ppt_第4页
第4页 / 共81页
DSP原理及应用.ppt_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《DSP原理及应用.ppt》由会员分享,可在线阅读,更多相关《DSP原理及应用.ppt(81页珍藏版)》请在三一办公上搜索。

1、TMS320C54x DSP 结构、原理及应用,孔莹莹,Dspsl,1.7 程序存储器地址的形成,主要内容:1.程序存储器地址的形成2.影响PC的各种操作:分支转移调用与返回条件操作单条指令或块指令重复操作硬件复位中断,Dspsl,程序计数器(PC)重复计数器(RC)块重复计数器(BRC)块重复起始地址寄存器(RSA)块重复结束地址寄存器(REA)PC:16位,寻址64K程序空间(C5402、C5416还有一个XPC,C5402多的4根地址线可寻址16个64K字页程序空间扩展到1M,C5416多的7根地址线寻址128个64K字页程序,扩展到8M),程序地址生成器(PAGEN)的组成,Dspsl

2、,定义:16位计数器作用:保存内部或外部程序存储器的地址例:即将取值的某条指令即将访问的某个16位立即操作数即将访问的系数表在程序存储器中地址,1.7.1 程序计数器PC,Dspsl,1.7.1 程序计数器PC,表1-16 加载地址到PC的几种途径,Dspsl,1.7.2 分支转移操作,对指令而言:无条件分支转移:表1-19条件分支转移:表1-20两者分延迟操作(指令助记符带D)和不带延迟操作延迟:可以先执行分支转移指令后面一条双字指令或两条单字指令;不带延迟:将已读入的一条双字指令或两条单字指令从流水线清除(未执行),然后进行转移。,Dspsl,区别,0080h,0F77h,0081h,00

3、10h,007Fh,0315h,延迟,不延迟,程序存储器,Dspsl,表1-19 无条件分支转移指令,Dspsl,表1-20 条件分支转移指令,Dspsl,1.7.3 调用与返回操作,对程序或函数而言:中断原先程序,转移到程序存储的其他地址执行,并将原地址压入堆栈,以便返回时继续执行无条件调用与返回:表121条件调用与返回:表122两者分延迟操作(指令助记符带D)和不带延迟操作,Dspsl,表1-21 无条件调用和返回指令,Dspsl,表1-22 条件调用和返回指令,Dspsl,1.7.4 条件操作,C54x有一些指令只有当一个条件或多个条件得到满足时才能执行。,A 类,一组,Dspsl,表1

4、-21 条件指令中的各种条件,B类,B,A,C,一组,二组,Dspsl,表124 多重条件指令中的条件组合,Dspsl,多重条件,分组选择原则:同一组内,可以在A、B或C类中各选择一个条件不能在同一类中选择两个条件不同组内只能或不能与被测试的必须是同一个累加器,Dspsl,条件执行指令XC,如果条件分支转移只有1-2字的程序段,可以用一条但周期条件执行指令XC完成。XC,cond,cond,cond若条件满足,就执行紧随此命令后的个字的指令(只能取1或2两个值,1时,执行1个单字指令,2时,执行1个双字指令或2个单字指令),否则就执行1条或2条NOP指令。,Dspsl,表125 条件存储指令,

5、S-SAVE,AC-ACC,C-CONDITION,D-DMS-SAVE,TR-T Reg.,C-CONDITION,D-DMS-SAVE,RC-BRC,C-CONDITION,DDM有条件的将CPU寄存器内容存放到数据存储单元,Dspsl,1.7.5 重复操作,重复执行单条指令重复执行一段程序,Dspsl,重复执行单条指令,指令:RPT和RPTZ由重复计数器(RC)管理重复执行次数(RC)1优点:使一些多周期指令变成单周期指令,提高指令执行速度。操作数:n最大值65535,Dspsl,表126 重复操作时变成单周期的多周期指令,Dspsl,有些指令不能与RPT/RPTZ一起使用BCCINTR

6、RET一旦重复指令被取值译码,直到重复循环完成对所有中断不响应(NMI,不包括RS)。若响应hold信号,重复操作是否执行取决于状态寄存器ST1的HM位,HM=0继续否则暂停。,重复执行单条指令,有条件调用指令,无条件分支转移指令,中断指令,无条件返回指令,Dspsl,PMST,Dspsl,引脚,Dspsl,ST1,Dspsl,程序块重复操作,由块重复计数器(BRC)、块重复起始地址寄存器(RSA)和块重复结束地址寄存器(REA)管理与块重复指令RPTB进行块重复操作。重复执行次数(BRC)1举例:STM 99,BRC RPTB NEXT1;下一条到NEXT之前为块重复.NEXT:.执行结果:

7、RPTB的下条指令至NEXT的上一条指令之间的程序块重复执行100次,Dspsl,程序块重复操作,重复执行BRC+1=100RPTB:PC+2RSANEXT-1REA1 BRAF当BRC 0时0 BRAF利用块重复零开销循环,块重复不能嵌套,要使重复操作嵌套:只能再最里层采用块重复,外层采用BANZ指令。,Dspsl,状态寄存器ST1(1),ST1寄存器,Dspsl,1.7.6 复位操作,复位RS是一个不可屏蔽的外部中断,任何时候复位,都会使C54进入一已知状态(Watchdog问题)。RS至少5个时钟周期的低电平。复位后,处理器从FF80开始执行程序。,Dspsl,模拟-数字-模拟信号的过程

8、,Dspsl,Watchdog,看门狗,又叫 watchdog timer,是一个定时器电路,一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU,是MCU复位.防止MCU死机.看门狗的作用就是防止程序发生死循环,或者说程序跑飞。,Dspsl,复位期间的操作,将IPTR置成1FFh将PMST中的 MP/MC位置成与引脚MP/MC相同的数值将PC置成FF80hXPC寄存器清成零(C5402/16)不管MP/MC状态如何,将FF80

9、h加到地址总线数据总线变成高阻状态控制线均处于无效状态产生 IACK信号INTM置成1,关闭所有的可屏蔽中断中断标志寄存器IFR清零产生同步复位信号(SRESET),对外围电路初始化,Dspsl,TMS320VC5402引脚说明2,Dspsl,复位时各状态位的初始值:,注意:SP及其它状态位没有初始化。MP/MC=0从片内ROM执行,否则从外程序存储执行,Dspsl,1.7.7 中断,中断是由硬件驱动或软件驱动的信号。由程序指令(INTR、TRAP或RESET)要求的软件中断。由外围设备发出的硬件中断(1)来自外部中断输入口的外部硬 件中断信号(2)受片内外围电路信号触发的内 部硬件中断信号,

10、Dspsl,中断类型,可屏蔽中断:可以用软件屏蔽或开放的硬件或软件中断,16个(SINT15SINT30)C541(9个):INT3,INT2,INT1,INT0,RINT0,XINT0,RINT1,XINT1,TINT非屏蔽中断:RS、NMIRS是一个对C54x所有操作方式影响的非屏蔽中断NMI不会对C54x任何操作方式产生影响,响应时所有其他中断将禁止。,Dspsl,两个中断寄存器,中断标志寄存器IFR中断屏蔽寄存器IMR两个寄存器每位所代表的中断是一样的,作用不同。,Dspsl,中断标志寄存器IFR,存储器映象的CPU寄存器例:C5402IFR/IMR,Dspsl,中断标志清零,当中断出

11、现时,相应的标志位置1以下情况下,中断标志位清0:1、复位;2、中断得到响应;3、将1写到IFR的某一位(此位变成0),相应的尚未处理完的中断被清除;4、执行INTR指令,相应的中断标志位清0,Dspsl,中断屏蔽寄存器(IMR),存储器映象的CPU寄存器屏蔽外部和内部中断例:C541IMR,开放中断:(1)状态寄存器ST1中的 INTM0(2)IMR中的相应位为1RS和NMI不能被屏蔽,Dspsl,中断寄存器位域功能说明,Dspsl,中断处理过程,1.接受中断请求当发生硬件或软件指令请求中断时,IFR相应位置1(RS和NMI除外)。2.响应中断对软件中断和非屏蔽中断,CPU立即响应对可屏蔽中

12、断的响应必须满足以下条件:(1)优先级别最高(同时出现多个中断时)(2)ST1 中 的 INTM(中断方式位)0(3)IMR 中 的 相 应 位 为 1CPU响应中断时,让PC转到相应的中断向量处,并发出IACK信号,清除相应中断标志位3.执行中断服务子程序,中断返回,Dspsl,软件中断包括:INTR响应时ST1中的INTM位置1,关闭其他可屏蔽中断。TRAP响应中断不影响INTM位RESET将C54x转到一个已知的状态,影响ST0,ST1,不影响PMST,RS:PMSTIPTR位,附录C,Dspsl,中断处理过程,1.接受中断请求当发生硬件或软件指令请求中断时,IFR相应位置1(RS和NM

13、I除外)。2.响应中断对软件中断和非屏蔽中断,CPU立即响应对可屏蔽中断的响应必须满足以下条件:(1)优先级别最高(同时出现多个中断时)(2)ST1 中 的 INTM(中断方式位)0(3)IMR 中 的 相 应 位 为 1CPU响应中断时,让PC转到相应的中断向量处,并发出IACK信号,清除相应中断标志位3.执行中断服务子程序,中断返回,Dspsl,中断操作流程图,Dspsl,中断向量地址的形成,中断向量地址IPTR(9位)左移2位后的中断向量序号举例:INT0:其序号为10,左移2位为40 若IPTR001,则中断向量地址位00c0h复位时:IPTR1FF,中断向量表序号为0,故复位向量地址

14、为FF80改变PMST寄存器中的IPTR值,可改变中断向量地址例:用0001h加载IPTR,中断向量移至0080h。,Dspsl,1.7.8 省电工作方式,C54可以工作在多种省电工作方式(见表1-28)在省电工作状态(IDLE1、IDLE2、IDLE3、HOLD):CPU暂停工作功耗减小保持CPU内容 省电工作方式结束时,CPU继续工作 此外,还有两种省电方式:将BSCR(分区开关控制)寄存器第0位置1,关断外部总线将PMST(处理器工作方式状态)寄存器的CLKOFF位置1,关断CLKOUT输出,Dspsl,表1-28 四种省电工作方式,Dspsl,1.8 流水线,避免流水线冲突,各寄存器工

15、作时等待周期,有效的运行程序。C54中的流水线操作典型的流水线图流水线中的时序冲突等待周期表,Dspsl,1.8.1 流水线操作,C54 6级指令流水线任何一个机器周期内,可有16条指令同时工作,Dspsl,流水线的存储器操作,分两阶段:加载储存单元的地址进行读/写操作举例:6个常用操作(a)取指(b)单操作数读(c)双操作数读(d)单操作数写(e)双操作数写(f)读一个操作数和写一个操作数,Dspsl,图1-19 流水线中的存储器存取操作,Dspsl,图1-19 流水线中的存储器存取操作,Dspsl,图1-20 分支转移指令的流水线图(继续),阴影部分表示一条指令的全部操作,Dspsl,分支

16、转移指令流水线图分析,流水线1:用指令地址a1加载PAB流水线2:双字分支转移指令取指流水线3、4:分支转移指令译码流水线5:用b1加载PAB流水线6、7:执行阶段执行分支转移指令需要4T在流水线过程中紧随B指令后的i3、i4指令(都是单字单周期指令)根据是否延迟决定能否被执行。,Dspsl,1.8.2 延迟分支转移,问题地提出:B指令的执行只需2T,但现在是4T,浪费2个周期原因:i3,i4不允许执行解决办法:延迟分支操作,Dspsl,延迟分支转移指令流水线图,延迟分支转移指令在6、7周期执行,变成双周期指令在转移前,执行i3,i4(两条单字周期指令)第10个周期转至b1,执行j1指令,Ds

17、psl,延迟分支转移指令的用法,Dspsl,BD BANZD CALLD FCALLD RETED FRETD BACCD FBD CALAD FCALAD RETFD FRETED BCD FBACCD CCD RETD RCD,具有延迟操作功能的指令,Dspsl,1.8.3 条件执行,C54x有一条条件执行指令:XC n,cnd,cnd,cnd 如果条件满足,则执行下面n(n=1或2)条指令,否则下面n条指令改为执行n条NOP指令,它的流水线图如图1-22所示。,Dspsl,条件执行指令流水线图,Dspsl,条件执行指令流水线,周期4:XC指令的地址a4加载到PAB。周期5:取XC指令的操

18、作码。周期7:当XC指令在流水线中进行到寻址级时,求解XC指令所规定的条件。如果条件满足,则后面的两条指令i5和i6进入译码级并执行;如果条件不满足,则不对i5和i6指令译码。需要注意的是,在求解XC指令的条件时,它前面的两条指令还没有执行完,因此,这两条指令对XC的操作是不会产生影响的。,Dspsl,条件执行指令流水线,条件执行指令XC,是一条单字单周期指令,与条件跳转指令相比,具有快速选择其后1或2条指令是否执行的优点。XC指令在执行前2个周期就已经求出条件,如果在这之后到执行前改变条件(例如,发生中断),将会造成无法预期的结果。所以,要尽力避免在XC指令执行前2个周期改变指令所规定的条件

19、。,Dspsl,1.8.4 双寻址RAM(DARAM)与流水线,C54片内DARAM存储器块内部允许单周期访问其两次单周期内允许同时访问DARAM的不同块单周期内允许两条指令访问DARAM的不同块允许处于不同级的两条指令同时访问同一DARAM块,Dspsl,为何单周期内CPU能同时访问DARAM两次?,原因:一次访问在前半周期另一次访问在后半周期前半、后半周期操作:利用PAB、PB取指 前半周期利用DAB、DB读取第一个数据前半周期利用CAB、CB读取第二个数据后半周期利用EAB、EB将数据写入存储器 后半周期,Dspsl,DARAM的半周期寻址图,Dspsl,DARAM的半周期寻址图,Dsp

20、sl,从DARAM中同时取指和数,LD*AR2+,A;AR2指向程序代码驻留的DARAM区I2I3I4,Dspsl,单寻址存储器与流水线,C54x内部有两种形式单寻址存储器:单寻址读/写存储器(SARAM)单寻址只读存储器(ROM或DROM)同时寻址的不是同一块不会出现冲突同时访问同一存储块时,出现时序冲突,将另一次寻址自动延迟到下一周期。,Dspsl,流水线冲突及等待周期,流水线的优点:允许CPU多条指令同时利用CPU资源;当一个CPU某个资源同时被一个以上流水级访问时,就会发生时序上的冲突;有些时序冲突,CPU通过延迟寻址,自动缓解;有些时序冲突,无法防止,需插入NOP(空操作)指令(或重

21、新安排指令顺序)解决。,Dspsl,1.8.6 流水线的等待周期,对下列存储器映象寄存器同时寻址,有可能发生时序上的冲突辅助寄存器(AR0AR7);重复块长度寄存器(BK);堆栈指针(SP);暂存器(T);处理器工作方式状态寄存器(PMST);状态寄存器(ST0和ST1);块重复计数器(BRC);存储器映象累加器(AG、AH、AL、BG、BH、BL)。,Dspsl,流水线冲突情况分析,只有某些MMR操作才会引起插入等待周期问题,Dspsl,例1:对辅助寄存器执行标准的写操作 引起的等待问题,N表示第二条指令需要第一条指令AR1中的值,Dspsl,例2:将例1中的第一条指令改用STM指 令,则情

22、况就发生了变化,(STM是一条保护性指令):一旦译码立刻写入AR1。MVDKMVMMMVMD有类似的作用,Dspsl,例3:通过插入NOP指令的方法解决流水线冲突,C54自动地将写操作延迟一个周期,缓解了第一个矛盾第三条指令需要AR1中的值时,没有准备好冲突,Dspsl,例3方法解决,例3的方法解决结果是流水线不再发生冲突插入NOP或与程序无关的单字指令,Dspsl,等待周期表,附录D等待周期表(哪些指令后面要插NOP,插几个NOP)双字或者三字指令会提供隐含的保护周期。下面对等待周期表附录D用法举例,Dspsl,例4:对辅助寄存器执行标准的写操作,STM是一条双字指令,隐含一个等待周期N表示

23、需要AR1中的值,Dspsl,例5:对辅助寄存器执行标准的写操作引起的等待问题,N1表示需要AR2中的值N2表示需要AR3中的值(见附录D Tables 3第2行第4列STLM),Dspsl,例5:对ST0执行标准的写操作引起的等待问题,N表示需要ST0中的DP值(见附录D Tables 1第4行第4列All other stores are latency 3),Dspsl,流水线时序冲突问题小结,CALU操作不存在等待周期问题。早一点在初始化时设置好MMR,可以避免读MMR时发生冲突。尽可能利用保护性MMR写指令,也可以避免发生冲突。利用等待周期表,可以处理好对MMR的写入操作。在调试中,应当关注未被保护的MMR写操作。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号