《DSP原理及应用》教学课件_第1页
《DSP原理及应用》教学课件_第2页
《DSP原理及应用》教学课件_第3页
《DSP原理及应用》教学课件_第4页
《DSP原理及应用》教学课件_第5页
已阅读5页,还剩157页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《DSP原理及应用》幻灯片本课件PPT仅供大家学习使用学习完请自行删除,谢谢!本课件PPT仅供大家学习使用学习完请自行删除,谢谢!《DSP原理及应用》幻灯片本课件PPT仅供大家学习使1§1.7程序存储器地址的形成主要内容:1.程序存储器地址的形成2.影响PC的各种操作:分支转移调用与返回条件操作单条指令或块指令重复操作硬件复位中断§1.7程序存储器地址的形成主要内容:2程序计数器〔PC〕重复计数器〔RC〕块重复计数器〔BRC〕块重复起始地址存放器〔RSA〕块重复完毕地址存放器〔REA〕PC:16位,寻址64K程序空间〔‘C5402、‘C5416还有一个XPC,‘C5402多的4根地址线可寻址16个64K字页程序空间扩展到1M,‘C5416多的7根地址线寻址128个64K字页程序,扩展到8M〕程序地址生成器

〔PAGEN〕的组成程序地址生成器

〔PAGEN〕的组成3定义:16位计数器作用:保存内部或外部程序存储器的地址例:即将取值的某条指令即将访问的某个16位立即操作数即将访问的系数表在程序存储器中地址§1.7.1程序计数器PC定义:16位计数器§1.7.1程序计数器PC4§1.7.1程序计数器PC表1-16加载地址到PC的几种途径B[D]pmad

BACC[D]src

CALL[D]pmad

CALA[D]src

INTRK

TRAPK

§1.7.1程序计数器PC表1-16加载地址到P5§1.7.2分支转移操作对指令而言:无条件分支转移:表1-19条件分支转移:表1-20两者分延迟操作〔指令助记符带D〕和不带延迟操作延迟:可以先执行分支转移指令后面一条双字指令或两条单字指令;不带延迟:将已读入的一条双字指令或两条单字指令从流水线去除〔未执行〕,然后进展转移。§1.7.2分支转移操作对指令而言:6区别0080h0F77h0081h0010h007Fh0315h…………延迟不延迟执行跳转……读入清除跳转……读入程序存储器一条双字指令或者两条单字指令区别0080h0F77h0081h0010h007Fh0317表1-19无条件分支转移指令表1-19无条件分支转移指令8表1-20条件分支转移指令表1-20条件分支转移指令9§1.7.3调用与返回操作对程序或函数而言:中断原先程序,转移到程序存储的其他地址执行,并将原地址压入堆栈,以便返回时继续执行无条件调用与返回:表1-21条件调用与返回:表1-22两者分延迟操作〔指令助记符带D〕和不带延迟操作§1.7.3调用与返回操作对程序或函数而言:10表1-21无条件调用和返回指令表1-21无条件调用和返回指令11表1-22条件调用和返回指令表1-22条件调用和返回指令12§1.7.4条件操作‘C54x有一些指令只有当一个条件或多个条件得到满足时才能执行。A类一组一组§1.7.4条件操作‘C54x有一些指令只有当一个条件13表1-21条件指令中的各种条件B类BAC一组二组一组二组表1-21条件指令中的各种条件B类BAC一组二组一组二组14表1-24多重条件指令中的条件组合表1-24多重条件指令中的条件组合15多重条件分组选择原那么:同一组内,可以在A、B或C类中各选择一个条件不能在同一类中选择两个条件不同组内只能或不能与被测试的必须是同一个累加器多重条件分组选择原那么:16条件执行指令XC如果条件分支转移只有1-2字的程序段,可以用一条但周期条件执行指令XC完成。XCn,cond[,cond[,cond]]假设条件满足,就执行紧随此命令后的n个字的指令〔n只能取1或2两个值,n=1时,执行1个单字指令,n=2时,执行1个双字指令或2个单字指令〕,否那么就执行1条或2条NOP指令。条件执行指令XC如果条件分支转移只有1-2字的程序段,可以用17表1-25条件存储指令S--SAVE,AC--ACC,C-CONDITION,D--DMS--SAVE,TR--TReg.,C-CONDITION,D--DMS--SAVE,RC--BRC,C-CONDITION,D—DM有条件的将CPU寄存器内容存放到数据存储单元表1-25条件存储指令S--SAVE,AC--ACC18§1.7.5重复操作重复执行单条指令重复执行一段程序§1.7.5重复操作重复执行单条指令19重复执行单条指令指令:RPT和RPTZ由重复计数器〔RC〕管理重复执行次数=〔RC〕+1优点:使一些多周期指令变成单周期指令,提高指令执行速度。操作数:n最大值65535累加器清零重复执行单条指令指令:RPT和RPTZ累加器清零20表1-26重复操作时变成单周期的多周期指令表1-26重复操作时变成单周期的多周期指令21有些指令不能与RPT/RPTZ一起使用B\CC\INTR\RET一旦重复指令被取值译码,直到重复循环完成对所有中断不响应〔NMI,不包括RS〕。假设响应hold信号,重复操作是否执行取决于状态存放器ST1的HM位,HM=0继续否那么暂停。重复执行单条指令有条件调用指令无条件分支转移指令中断指令无条件返回指令有些指令不能与RPT/RPTZ一起使用重复执行单条指令有条件22PMSTPMST23引脚引脚24ST1ST125程序块重复操作由块重复计数器〔BRC〕、块重复起始地址存放器〔RSA〕和块重复完毕地址存放器〔REA〕管理与块重复指令RPTB进展块重复操作。重复执行次数=〔BRC〕+1举例:STM#99,BRCRPTBNEXT-1;下一条到NEXT之前为块重复…...NEXT:…...执行结果:RPTB的下条指令至NEXT的上一条指令之间的程序块重复执行100次具体解释见P54程序块重复操作由块重复计数器〔BRC〕、块重复起始地址存放器26程序块重复操作重复执行BRC+1=100RPTB:PC+2→RSANEXT-1→REA1→BRAF当BRC→0时0→

BRAF利用块重复零开销循环,块重复不能嵌套,要使重复操作嵌套:只能再最里层采用块重复,外层采用BANZ指令。条件分支转移指令程序块重复操作重复执行BRC+1=100条件分支转移指令27状态寄存器ST1(1)ST1寄存器状态寄存器ST1(1)ST1寄存器28§1.7.6复位操作复位RS是一个不可屏蔽的外部中断,任何时候复位,都会使‘C54x进入一状态〔Watchdog问题〕。RS至少5个时钟周期的低电平。复位后,处理器从FF80h开场执行程序。§1.7.6复位操作复位RS是一个不可屏蔽的外部中断,29模拟-数字-模拟信号的过程模拟-数字-模拟信号的过程30Watchdog看门狗,又叫watchdogtimer,是一个定时器电路,一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给WDT清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT定时超过,就回给出一个复位信号到MCU,是MCU复位.防止MCU死机.看门狗的作用就是防止程序发生死循环,或者说程序跑飞。Watchdog看门狗,又叫watchdogtimer,31复位期间的操作将IPTR置成1FFh将PMST中的MP/MC位置成与引脚MP/MC一样的数值将PC置成FF80hXPC存放器清成零('C5402/16)不管MP/MC状态如何,将FF80h加到地址总线数据总线变成高阻状态控制线均处于无效状态产生IACK信号INTM置成1,关闭所有的可屏蔽中断中断标志存放器IFR清零产生同步复位信号(SRESET),对外围电路初始化复位期间的操作将IPTR置成1FFh32TMS320VC5402引脚说明2TMS320VC5402引脚说明233复位时各状态位的初始值:注意:SP及其它状态位没有初始化。MP/MC=0从片内ROM执行,否则从外程序存储执行复位时各状态位的初始值:注意:SP及其它状态位没有初始化。M34§1.7.7中断中断是由硬件驱动或软件驱动的信号。由程序指令〔INTR、TRAP或RESET〕要求的软件中断。由外围设备发出的硬件中断(1)来自外部中断输入口的外部硬件中断信号(2)受片内外围电路信号触发的内部硬件中断信号§1.7.7中断中断是由硬件驱动或软件驱动的信号。35中断类型可屏蔽中断:可以用软件屏蔽或开放的硬件或软件中断,16个〔SINT15~SINT30〕‘C541(9个):INT3,INT2,INT1,INT0,RINT0,XINT0,RINT1,XINT1,TINT非屏蔽中断:RS、NMIRS是一个对C54x所有操作方式影响的非屏蔽中断NMI不会对C54x任何操作方式产生影响,响应时所有其他中断将制止。中断类型可屏蔽中断:可以用软件屏蔽或开放的硬件或软件中断,136两个中断存放器中断标志存放器IFR中断屏蔽存放器IMR两个存放器每位所代表的中断是一样的,作用不同。两个中断存放器中断标志存放器IFR37中断标志存放器IFR存储器映象的CPU存放器例:‘C5402 IFR/IMR中断标志存放器IFR存储器映象的CPU存放器38中断标志清零当中断出现时,相应的标志位置1以下情况下,中断标志位清0:1、复位;2、中断得到响应;3、将1写到IFR的某一位〔此位变成0〕,相应的尚未处理完的中断被去除;4、执行INTR指令,相应的中断标志位清0中断标志清零当中断出现时,相应的标志位置139中断屏蔽存放器〔IMR〕存储器映象的CPU存放器屏蔽外部和内部中断例:‘C541 IMR开放中断:(1)状态寄存器ST1中的INTM=0(2)IMR中的相应位为1RS和NMI不能被屏蔽中断屏蔽存放器〔IMR〕存储器映象的CPU存放器开放中断:40中断存放器位域功能说明中断存放器位域功能说明41中断处理过程1.承受中断请求当发生硬件或软件指令请求中断时,IFR相应位置1〔RS和NMI除外〕。2.响应中断对软件中断和非屏蔽中断,CPU立即响应对可屏蔽中断的响应必须满足以下条件:(1)优先级别最高〔同时出现多个中断时〕(2)ST1中的INTM〔中断方式位〕=0(3)IMR中的相应位为1CPU响应中断时,让PC转到相应的中断向量处,并发出IACK信号,去除相应中断标志位3.执行中断效劳子程序,中断返回中断处理过程1.承受中断请求42软件中断包括:INTR响应时ST1中的INTM位置1,关闭其他可屏蔽中断。TRAP响应中断不影响INTM位RESET将C54x转到一个的状态,影响ST0,ST1,不影响PMSTRS:PMST→IPTR位附录C软件中断包括:RS:PMST→IPTR位附录C43中断处理过程1.承受中断请求当发生硬件或软件指令请求中断时,IFR相应位置1〔RS和NMI除外〕。2.响应中断对软件中断和非屏蔽中断,CPU立即响应对可屏蔽中断的响应必须满足以下条件:(1)优先级别最高〔同时出现多个中断时〕(2)ST1中的INTM〔中断方式位〕=0(3)IMR中的相应位为1CPU响应中断时,让PC转到相应的中断向量处,并发出IACK信号,去除相应中断标志位3.执行中断效劳子程序,中断返回中断处理过程1.承受中断请求44中断操作流程图关闭所有的中断中断操作流程图关闭45中断向量地址的形成中断向量地址=IPTR〔9位〕+左移2位后的中断向量序号举例:INT0:其序号为10h,左移2位为40h 假设IPTR=001h,那么中断向量地址位00c0h复位时:IPTR=1FFh,中断向量表序号为0,故复位向量地址为FF80h改变PMST存放器中的IPTR值,可改变中断向量地址例:用0001h加载IPTR,中断向量移至0080h。中断向量地址的形成中断向量地址=IPTR〔9位〕+左移2位后46§1.7.8省电工作方式‘C54x可以工作在多种省电工作方式〔见表1-28〕在省电工作状态(IDLE1、IDLE2、IDLE3、HOLD):CPU暂停工作功耗减小保持CPU内容省电工作方式完毕时,CPU继续工作此外,还有两种省电方式:将BSCR〔分区开关控制〕存放器第0位置1,关断外部总线将PMST〔处理器工作方式状态〕存放器的CLKOFF位置1,关断CLKOUT输出§1.7.8省电工作方式‘C54x可以工作在多种省电工作47表1-28四种省电工作方式表1-28四种省电工作方式48§1.8流水线防止流水线冲突,各存放器工作时等待周期,有效的运行程序。‘C54x中的流水线操作典型的流水线图流水线中的时序冲突等待周期表§1.8流水线防止流水线冲突,各存放器工作时等待周期49§1.8.1流水线操作‘C54x6级指令流水线任何一个机器周期内,可有1~6条指令同时工作§1.8.1流水线操作‘C54x6级指令流水线50流水线的存储器操作分两阶段:加载储存单元的地址进展读/写操作举例:6个常用操作(a)取指(b)单操作数读(c)双操作数读(d)单操作数写(e)双操作数写(f)读一个操作数和写一个操作数流水线的存储器操作分两阶段:51图1-19流水线中的存储器存取操作图1-19流水线中的存储器存取操作52图1-19流水线中的存储器存取操作图1-19流水线中的存储器存取操作53图1-20分支转移指令的流水线图(继续)阴影部分表示一条指令的全部操作图1-20分支转移指令的流水线图(继续)54分支转移指令流水线图分析流水线1:用指令地址a1加载PAB流水线2:双字分支转移指令取指流水线3、4:分支转移指令译码流水线5:用b1加载PAB流水线6、7:执行阶段执行分支转移指令需要4T在流水线过程中紧随B指令后的i3、i4指令〔都是单字单周期指令〕根据是否延迟决定能否被执行。分支转移指令流水线图分析流水线1:用指令地址a1加载PAB55§1.8.2延迟分支转移问题地提出:B指令的执行只需2T,但现在是4T,浪费2个周期原因:i3,i4不允许执行解决方法:延迟分支操作§1.8.2延迟分支转移问题地提出:56延迟分支转移指令流水线图延迟分支转移指令在6、7周期执行,变成双周期指令在转移前,执行i3,i4(两条单字周期指令)第10个周期转至b1,执行j1指令延迟分支转移指令流水线图延迟分支转移指令在6、7周期执行,变57延迟分支转移指令的用法延迟分支转移指令的用法58BDBANZDCALLDFCALLDRETEDFRETDBACCDFBDCALADFCALADRETFDFRETEDBCDFBACCDCCDRETDRCD具有延迟操作功能的指令BDBANZDCALLDFCALL59§1.8.3条件执行‘C54x有一条条件执行指令:XCn,cnd[,cnd[,cnd]]如果条件满足,那么执行下面n(n=1或2)条指令,否那么下面n条指令改为执行n条NOP指令,它的流水线图如图1-22所示。§1.8.3条件执行‘C54x有一条条件执行指令:60条件执行指令流水线图条件执行指令流水线图61条件执行指令流水线周期4:XC指令的地址a4加载到PAB。周期5:取XC指令的操作码。周期7:当XC指令在流水线中进展到寻址级时,求解XC指令所规定的条件。如果条件满足,那么后面的两条指令i5和i6进入译码级并执行;如果条件不满足,那么不对i5和i6指令译码。需要注意的是,在求解XC指令的条件时,它前面的两条指令还没有执行完,因此,这两条指令对XC的操作是不会产生影响的。条件执行指令流水线周期4:XC指令的地址a4加载到PAB。62条件执行指令流水线条件执行指令XC,是一条单字单周期指令,与条件跳转指令相比,具有快速选择其后1或2条指令是否执行的优点。XC指令在执行前2个周期就已经求出条件,如果在这之后到执行前改变条件(例如,发生中断),将会造成无法预期的结果。所以,要尽力防止在XC指令执行前2个周期改变指令所规定的条件。条件执行指令流水线63§1.8.4双寻址RAM〔DARAM〕与流水线‘C54x片内DARAM存储器块内部允许单周期访问其两次单周期内允许同时访问DARAM的不同块单周期内允许两条指令访问DARAM的不同块允许处于不同级的两条指令同时访问同一DARAM块§1.8.4双寻址RAM〔DARAM〕与流水线‘C5464为何单周期内CPU能同时访问DARAM两次?原因:一次访问在前半周期另一次访问在后半周期前半、后半周期操作:利用PAB、PB取指 前半周期利用DAB、DB读取第一个数据 前半周期利用CAB、CB读取第二个数据 后半周期利用EAB、EB将数据写入存储器 后半周期为何单周期内CPU能同时访问DARAM两次?原因:65DARAM的半周期寻址图DARAM的半周期寻址图66DARAM的半周期寻址图DARAM的半周期寻址图67从DARAM中同时取指和数LD*AR2+,A;AR2指向程序代码驻留的DARAM区I2I3I4从DARAM中同时取指和数LD*AR2+,A;AR2指向68§1.8.5单寻址存储器与流水线C54x内部有两种形式单寻址存储器:单寻址读/写存储器〔SARAM〕单寻址只读存储器〔ROM或DROM〕同时寻址的不是同一块不会出现冲突同时访问同一存储块时,出现时序冲突,将另一次寻址自动延迟到下一周期。§1.8.5单寻址存储器与流水线C54x内部有两种形式单寻址69§1.8.6流水线冲突及等待周期流水线的优点:允许CPU多条指令同时利用CPU资源;当一个CPU某个资源同时被一个以上流水级访问时,就会发生时序上的冲突;有些时序冲突,CPU通过延迟寻址,自动缓解;有些时序冲突,无法防止,需插入NOP〔空操作〕指令〔或重新安排指令顺序〕解决。§1.8.6流水线冲突及等待周期流水线的优点:允许CPU多条70§1.8.6流水线的等待周期对以下存储器映象存放器同时寻址,有可能发生时序上的冲突辅助存放器〔AR0-AR7〕;重复块长度存放器〔BK〕;堆栈指针〔SP〕;暂存器〔T〕;处理器工作方式状态存放器〔PMST〕;状态存放器〔ST0和ST1〕;块重复计数器〔BRC〕;存储器映象累加器〔AG、AH、AL、BG、BH、BL〕。§1.8.6流水线的等待周期对以下存储器映象存放器同时71流水线冲突情况分析只有某些MMR操作才会引起插入等待周期问题流水线冲突情况分析只有某些MMR操作才会引起插入等待周期问题72例1:对辅助存放器执行标准的写操作

引起的等待问题N表示第二条指令需要第一条指令AR1中的值例1:对辅助存放器执行标准的写操作

引起的73例2:将例1中的第一条指令改用STM指

令,那么情况就发生了变化(STM是一条保护性指令):一旦译码立刻写入AR1。MVDK\MVMM\MVMD有类似的作用例2:将例1中的第一条指令改用STM指

令74例3:通过插入NOP指令的方法解决流水线冲突‘C54x自动地将写操作延迟一个周期,缓解了第一个矛盾第三条指令需要AR1中的值时,没有准备好冲突例3:通过插入NOP指令的方法解决流水线冲突‘C54x自动地75例3方法解决例3的方法解决结果是流水线不再发生冲突插入NOP或与程序无关的单字指令例3方法解决例3的方法解决结果是流水线不再发生冲突76等待周期表附录D等待周期表〔哪些指令后面要插NOP,插几个NOP〕双字或者三字指令会提供隐含的保护周期。下面对等待周期表附录D用法举例等待周期表附录D等待周期表〔哪些指令后面要插NOP,插几个N77例4:对辅助存放器执行标准的写操作STM是一条双字指令,隐含一个等待周期N表示需要AR1中的值例4:对辅助存放器执行标准的写操作STM是一条双字指令,隐含78例5:对辅助存放器执行标准的写操作引起的等待问题N1表示需要AR2中的值N2表示需要AR3中的值(见附录DTables3第2行第4列STLM)例5:对辅助存放器执行标准的写操作引起的等待问题N1表示需要79例5:对ST0执行标准的写操作引起的等待问题N表示需要ST0中的DP值(见附录DTables1第4行第4列Allotherstoresarelatency3)例5:对ST0执行标准的写操作引起的等待问题N表示需要ST080流水线时序冲突问题小结CALU操作不存在等待周期问题。早一点在初始化时设置好MMR,可以防止读MMR时发生冲突。尽可能利用保护性MMR写指令,也可以防止发生冲突。利用等待周期表,可以处理好对MMR的写入操作。在调试中,应当关注未被保护的MMR写操作。流水线时序冲突问题小结CALU操作不存在等待周期问题。81《DSP原理及应用》幻灯片本课件PPT仅供大家学习使用学习完请自行删除,谢谢!本课件PPT仅供大家学习使用学习完请自行删除,谢谢!《DSP原理及应用》幻灯片本课件PPT仅供大家学习使82§1.7程序存储器地址的形成主要内容:1.程序存储器地址的形成2.影响PC的各种操作:分支转移调用与返回条件操作单条指令或块指令重复操作硬件复位中断§1.7程序存储器地址的形成主要内容:83程序计数器〔PC〕重复计数器〔RC〕块重复计数器〔BRC〕块重复起始地址存放器〔RSA〕块重复完毕地址存放器〔REA〕PC:16位,寻址64K程序空间〔‘C5402、‘C5416还有一个XPC,‘C5402多的4根地址线可寻址16个64K字页程序空间扩展到1M,‘C5416多的7根地址线寻址128个64K字页程序,扩展到8M〕程序地址生成器

〔PAGEN〕的组成程序地址生成器

〔PAGEN〕的组成84定义:16位计数器作用:保存内部或外部程序存储器的地址例:即将取值的某条指令即将访问的某个16位立即操作数即将访问的系数表在程序存储器中地址§1.7.1程序计数器PC定义:16位计数器§1.7.1程序计数器PC85§1.7.1程序计数器PC表1-16加载地址到PC的几种途径B[D]pmad

BACC[D]src

CALL[D]pmad

CALA[D]src

INTRK

TRAPK

§1.7.1程序计数器PC表1-16加载地址到P86§1.7.2分支转移操作对指令而言:无条件分支转移:表1-19条件分支转移:表1-20两者分延迟操作〔指令助记符带D〕和不带延迟操作延迟:可以先执行分支转移指令后面一条双字指令或两条单字指令;不带延迟:将已读入的一条双字指令或两条单字指令从流水线去除〔未执行〕,然后进展转移。§1.7.2分支转移操作对指令而言:87区别0080h0F77h0081h0010h007Fh0315h…………延迟不延迟执行跳转……读入清除跳转……读入程序存储器一条双字指令或者两条单字指令区别0080h0F77h0081h0010h007Fh03188表1-19无条件分支转移指令表1-19无条件分支转移指令89表1-20条件分支转移指令表1-20条件分支转移指令90§1.7.3调用与返回操作对程序或函数而言:中断原先程序,转移到程序存储的其他地址执行,并将原地址压入堆栈,以便返回时继续执行无条件调用与返回:表1-21条件调用与返回:表1-22两者分延迟操作〔指令助记符带D〕和不带延迟操作§1.7.3调用与返回操作对程序或函数而言:91表1-21无条件调用和返回指令表1-21无条件调用和返回指令92表1-22条件调用和返回指令表1-22条件调用和返回指令93§1.7.4条件操作‘C54x有一些指令只有当一个条件或多个条件得到满足时才能执行。A类一组一组§1.7.4条件操作‘C54x有一些指令只有当一个条件94表1-21条件指令中的各种条件B类BAC一组二组一组二组表1-21条件指令中的各种条件B类BAC一组二组一组二组95表1-24多重条件指令中的条件组合表1-24多重条件指令中的条件组合96多重条件分组选择原那么:同一组内,可以在A、B或C类中各选择一个条件不能在同一类中选择两个条件不同组内只能或不能与被测试的必须是同一个累加器多重条件分组选择原那么:97条件执行指令XC如果条件分支转移只有1-2字的程序段,可以用一条但周期条件执行指令XC完成。XCn,cond[,cond[,cond]]假设条件满足,就执行紧随此命令后的n个字的指令〔n只能取1或2两个值,n=1时,执行1个单字指令,n=2时,执行1个双字指令或2个单字指令〕,否那么就执行1条或2条NOP指令。条件执行指令XC如果条件分支转移只有1-2字的程序段,可以用98表1-25条件存储指令S--SAVE,AC--ACC,C-CONDITION,D--DMS--SAVE,TR--TReg.,C-CONDITION,D--DMS--SAVE,RC--BRC,C-CONDITION,D—DM有条件的将CPU寄存器内容存放到数据存储单元表1-25条件存储指令S--SAVE,AC--ACC99§1.7.5重复操作重复执行单条指令重复执行一段程序§1.7.5重复操作重复执行单条指令100重复执行单条指令指令:RPT和RPTZ由重复计数器〔RC〕管理重复执行次数=〔RC〕+1优点:使一些多周期指令变成单周期指令,提高指令执行速度。操作数:n最大值65535累加器清零重复执行单条指令指令:RPT和RPTZ累加器清零101表1-26重复操作时变成单周期的多周期指令表1-26重复操作时变成单周期的多周期指令102有些指令不能与RPT/RPTZ一起使用B\CC\INTR\RET一旦重复指令被取值译码,直到重复循环完成对所有中断不响应〔NMI,不包括RS〕。假设响应hold信号,重复操作是否执行取决于状态存放器ST1的HM位,HM=0继续否那么暂停。重复执行单条指令有条件调用指令无条件分支转移指令中断指令无条件返回指令有些指令不能与RPT/RPTZ一起使用重复执行单条指令有条件103PMSTPMST104引脚引脚105ST1ST1106程序块重复操作由块重复计数器〔BRC〕、块重复起始地址存放器〔RSA〕和块重复完毕地址存放器〔REA〕管理与块重复指令RPTB进展块重复操作。重复执行次数=〔BRC〕+1举例:STM#99,BRCRPTBNEXT-1;下一条到NEXT之前为块重复…...NEXT:…...执行结果:RPTB的下条指令至NEXT的上一条指令之间的程序块重复执行100次具体解释见P54程序块重复操作由块重复计数器〔BRC〕、块重复起始地址存放器107程序块重复操作重复执行BRC+1=100RPTB:PC+2→RSANEXT-1→REA1→BRAF当BRC→0时0→

BRAF利用块重复零开销循环,块重复不能嵌套,要使重复操作嵌套:只能再最里层采用块重复,外层采用BANZ指令。条件分支转移指令程序块重复操作重复执行BRC+1=100条件分支转移指令108状态寄存器ST1(1)ST1寄存器状态寄存器ST1(1)ST1寄存器109§1.7.6复位操作复位RS是一个不可屏蔽的外部中断,任何时候复位,都会使‘C54x进入一状态〔Watchdog问题〕。RS至少5个时钟周期的低电平。复位后,处理器从FF80h开场执行程序。§1.7.6复位操作复位RS是一个不可屏蔽的外部中断,110模拟-数字-模拟信号的过程模拟-数字-模拟信号的过程111Watchdog看门狗,又叫watchdogtimer,是一个定时器电路,一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给WDT清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT定时超过,就回给出一个复位信号到MCU,是MCU复位.防止MCU死机.看门狗的作用就是防止程序发生死循环,或者说程序跑飞。Watchdog看门狗,又叫watchdogtimer,112复位期间的操作将IPTR置成1FFh将PMST中的MP/MC位置成与引脚MP/MC一样的数值将PC置成FF80hXPC存放器清成零('C5402/16)不管MP/MC状态如何,将FF80h加到地址总线数据总线变成高阻状态控制线均处于无效状态产生IACK信号INTM置成1,关闭所有的可屏蔽中断中断标志存放器IFR清零产生同步复位信号(SRESET),对外围电路初始化复位期间的操作将IPTR置成1FFh113TMS320VC5402引脚说明2TMS320VC5402引脚说明2114复位时各状态位的初始值:注意:SP及其它状态位没有初始化。MP/MC=0从片内ROM执行,否则从外程序存储执行复位时各状态位的初始值:注意:SP及其它状态位没有初始化。M115§1.7.7中断中断是由硬件驱动或软件驱动的信号。由程序指令〔INTR、TRAP或RESET〕要求的软件中断。由外围设备发出的硬件中断(1)来自外部中断输入口的外部硬件中断信号(2)受片内外围电路信号触发的内部硬件中断信号§1.7.7中断中断是由硬件驱动或软件驱动的信号。116中断类型可屏蔽中断:可以用软件屏蔽或开放的硬件或软件中断,16个〔SINT15~SINT30〕‘C541(9个):INT3,INT2,INT1,INT0,RINT0,XINT0,RINT1,XINT1,TINT非屏蔽中断:RS、NMIRS是一个对C54x所有操作方式影响的非屏蔽中断NMI不会对C54x任何操作方式产生影响,响应时所有其他中断将制止。中断类型可屏蔽中断:可以用软件屏蔽或开放的硬件或软件中断,1117两个中断存放器中断标志存放器IFR中断屏蔽存放器IMR两个存放器每位所代表的中断是一样的,作用不同。两个中断存放器中断标志存放器IFR118中断标志存放器IFR存储器映象的CPU存放器例:‘C5402 IFR/IMR中断标志存放器IFR存储器映象的CPU存放器119中断标志清零当中断出现时,相应的标志位置1以下情况下,中断标志位清0:1、复位;2、中断得到响应;3、将1写到IFR的某一位〔此位变成0〕,相应的尚未处理完的中断被去除;4、执行INTR指令,相应的中断标志位清0中断标志清零当中断出现时,相应的标志位置1120中断屏蔽存放器〔IMR〕存储器映象的CPU存放器屏蔽外部和内部中断例:‘C541 IMR开放中断:(1)状态寄存器ST1中的INTM=0(2)IMR中的相应位为1RS和NMI不能被屏蔽中断屏蔽存放器〔IMR〕存储器映象的CPU存放器开放中断:121中断存放器位域功能说明中断存放器位域功能说明122中断处理过程1.承受中断请求当发生硬件或软件指令请求中断时,IFR相应位置1〔RS和NMI除外〕。2.响应中断对软件中断和非屏蔽中断,CPU立即响应对可屏蔽中断的响应必须满足以下条件:(1)优先级别最高〔同时出现多个中断时〕(2)ST1中的INTM〔中断方式位〕=0(3)IMR中的相应位为1CPU响应中断时,让PC转到相应的中断向量处,并发出IACK信号,去除相应中断标志位3.执行中断效劳子程序,中断返回中断处理过程1.承受中断请求123软件中断包括:INTR响应时ST1中的INTM位置1,关闭其他可屏蔽中断。TRAP响应中断不影响INTM位RESET将C54x转到一个的状态,影响ST0,ST1,不影响PMSTRS:PMST→IPTR位附录C软件中断包括:RS:PMST→IPTR位附录C124中断处理过程1.承受中断请求当发生硬件或软件指令请求中断时,IFR相应位置1〔RS和NMI除外〕。2.响应中断对软件中断和非屏蔽中断,CPU立即响应对可屏蔽中断的响应必须满足以下条件:(1)优先级别最高〔同时出现多个中断时〕(2)ST1中的INTM〔中断方式位〕=0(3)IMR中的相应位为1CPU响应中断时,让PC转到相应的中断向量处,并发出IACK信号,去除相应中断标志位3.执行中断效劳子程序,中断返回中断处理过程1.承受中断请求125中断操作流程图关闭所有的中断中断操作流程图关闭126中断向量地址的形成中断向量地址=IPTR〔9位〕+左移2位后的中断向量序号举例:INT0:其序号为10h,左移2位为40h 假设IPTR=001h,那么中断向量地址位00c0h复位时:IPTR=1FFh,中断向量表序号为0,故复位向量地址为FF80h改变PMST存放器中的IPTR值,可改变中断向量地址例:用0001h加载IPTR,中断向量移至0080h。中断向量地址的形成中断向量地址=IPTR〔9位〕+左移2位后127§1.7.8省电工作方式‘C54x可以工作在多种省电工作方式〔见表1-28〕在省电工作状态(IDLE1、IDLE2、IDLE3、HOLD):CPU暂停工作功耗减小保持CPU内容省电工作方式完毕时,CPU继续工作此外,还有两种省电方式:将BSCR〔分区开关控制〕存放器第0位置1,关断外部总线将PMST〔处理器工作方式状态〕存放器的CLKOFF位置1,关断CLKOUT输出§1.7.8省电工作方式‘C54x可以工作在多种省电工作128表1-28四种省电工作方式表1-28四种省电工作方式129§1.8流水线防止流水线冲突,各存放器工作时等待周期,有效的运行程序。‘C54x中的流水线操作典型的流水线图流水线中的时序冲突等待周期表§1.8流水线防止流水线冲突,各存放器工作时等待周期130§1.8.1流水线操作‘C54x6级指令流水线任何一个机器周期内,可有1~6条指令同时工作§1.8.1流水线操作‘C54x6级指令流水线131流水线的存储器操作分两阶段:加载储存单元的地址进展读/写操作举例:6个常用操作(a)取指(b)单操作数读(c)双操作数读(d)单操作数写(e)双操作数写(f)读一个操作数和写一个操作数流水线的存储器操作分两阶段:132图1-19流水线中的存储器存取操作图1-19流水线中的存储器存取操作133图1-19流水线中的存储器存取操作图1-19流水线中的存储器存取操作134图1-20分支转移指令的流水线图(继续)阴影部分表示一条指令的全部操作图1-20分支转移指令的流水线图(继续)135分支转移指令流水线图分析流水线1:用指令地址a1加载PAB流水线2:双字分支转移指令取指流水线3、4:分支转移指令译码流水线5:用b1加载PAB流水线6、7:执行阶段执行分支转移指令需要4T在流水线过程中紧随B指令后的i3、i4指令〔都是单字单周期指令〕根据是否延迟决定能否被执行。分支转移指令流水线图分析流水线1:用指令地址a1加载PAB136§1.8.2延迟分支转移问题地提出:B指令的执行只需2T,但现在是4T,浪费2个周期原因:i3,i4不允许执行解决方法:延迟分支操作§1.8.2延迟分支转移问题地提出:137延迟分支转移指令流水线图延迟分支转移指令在6、7周期执行,变成双周期指令在转移前,执行i3,i4(两条单字周期指令)第10个周期转至b1,执行j1指令延迟分支转移指令流水线图延迟分支转移指令在6、7周期执行,变138延迟分支转移指令的用法延迟分支转移指令的用法139BDBANZDCALLDFCALLDRETEDFRETDBACCDFBDCALADFCALADRETFDFRETEDBCDFBACCDCCDRETDRCD具有延迟操作功能的指令BDBANZDCALLDFCALL140§1.8.3条件执行‘C54x有一条条件执行指令:XCn,cnd[,cnd[,cnd]]如果条件满足,那么执行下面n(n=1或2)条指令,否那么下面n条指令改为执行n条NOP指令,它的流水线图如图1-22所示。§1.8.3条件执行‘C54x有一条条件执行指令:141条件执行指令流水线图条件执行指令流水线图142条件执行指令流水线周期4:XC指令的地址a4加载到PAB。周期5:取XC指令的操作码。周期7:当XC指令在流水线中进展到寻址级时,求解XC指令所规定的条件。如果条件满足,那么后面的两条指令i5和i6进入译码级并执行;如果条件不满足,那么不对i5和i6指令译码。需要注意的是,在求解XC指令的条件时,它前面的两条指令还没有执行完,因此,这两条指令对XC的操作是不会产生影响的。条件执行指令流水线周期4:XC指令的地址a4加载到PAB。143条件执行指令流水线条件执行指令XC,是一条单字单周期指令,与条件跳转指令相比,具有快速选择其后1或2条指令是否执行的优点。XC指令在执行前2个周期就已经求出条件,如果在这之后到执行前改变条件(例如,发生中断),将会造成无法预期的结果。所以,要尽力防止在XC指令执行前2个周期改变指令所规定的条件。条件执行指令流水线144§1.8.4双寻址RAM〔DARAM〕与流水线‘C54x片内DARAM存储器块内部允许单周期访问其两次单周期内允许同时访问DARAM的不同块单周期内允许两条指令访问DARAM的不同块允许处于不同级的两条指令同时访问同一DARAM块§1.8.4双寻址RAM〔DARAM〕与流水线‘C54145为何单周期内CPU能同时访问DARAM两次?原因:一次访问在前半周期另一次访问在后半周期前半、后半周期操作:利用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论