




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、TMS320C54x DSP 结构、原理及应用,孔莹莹 yayako_,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
2、),程序地址生成器(PAGEN)的组成,Dspsl,定义:16位计数器 作用:保存内部或外部程序存储器的地址 例: 即将取值的某条指令 即将访问的某个16位立即操作数 即将访问的系数表在程序存储器中地址,1.7.1 程序计数器PC,Dspsl,1.7.1 程序计数器PC,表1-16 加载地址到PC的几种途径,Dspsl,1.7.2 分支转移操作,对指令而言: 无条件分支转移:表1-19 条件分支转移:表1-20 两者分延迟操作(指令助记符带D)和不带延迟操作 延迟:可以先执行分支转移指令后面一条双字指令或两条单字指令; 不带延迟:将已读入的一条双字指令或两条单字指令从流水线清除(未执行),然后
3、进行转移。,Dspsl,区别,0080h,0F77h,0081h,0010h,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有一些
4、指令只有当一个条件或多个条件得到满足时才能执行。,A 类,一组,Dspsl,表1-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
5、个双字指令或2个单字指令),否则就执行1条或2条NOP指令。,Dspsl,表125 条件存储指令,S-SAVE, AC-ACC, C-CONDITION, D-DM S-SAVE, TR-T Reg., C-CONDITION, D-DM S-SAVE, RC-BRC, C-CONDITION, DDM 有条件的将CPU寄存器内容存放到数据存储单元,Dspsl,1.7.5 重复操作,重复执行单条指令 重复执行一段程序,Dspsl,重复执行单条指令,指令:RPT和RPTZ 由重复计数器(RC)管理 重复执行次数(RC)1 优点:使一些多周期指令变成单周期指令,提高指令执行速度。 操作数:n最大值
6、65535,Dspsl,表126 重复操作时变成单周期的多周期指令,Dspsl,有些指令不能与RPT/RPTZ一起使用 BCCINTRRET 一旦重复指令被取值译码,直到重复循环完成对所有中断不响应(NMI,不包括RS)。 若响应hold信号,重复操作是否执行取决于状态寄存器ST1的HM位,HM=0继续否则暂停。,重复执行单条指令,有条件调用指令,无条件分支转移指令,中断指令,无条件返回指令,Dspsl,PMST,Dspsl,引脚,Dspsl,ST1,Dspsl,程序块重复操作,由块重复计数器(BRC)、块重复起始地址寄存器(RSA)和块重复结束地址寄存器(REA)管理与块重复指令RPTB进行
7、块重复操作。 重复执行次数(BRC)1 举例: STM 99,BRC RPTB NEXT1;下一条到NEXT之前为块重复 . NEXT: . 执行结果:RPTB的下条指令至NEXT的上一条指令之间的程序块重复执行100次,Dspsl,程序块重复操作,重复执行BRC+1=100 RPTB: PC+2RSA NEXT-1REA 1 BRAF 当BRC 0时0 BRAF 利用块重复零开销循环,块重复不能嵌套,要使重复操作嵌套:只能再最里层采用块重复,外层采用BANZ指令。,Dspsl,状态寄存器ST1(1),ST1寄存器,Dspsl,1.7.6 复位操作,复位RS是一个不可屏蔽的外部中断, 任何时候
8、复位,都会使C54进入一已知状态(Watchdog问题)。 RS至少5个时钟周期的低电平。 复位后,处理器从FF80开始执行程序。,Dspsl,模拟-数字-模拟信号的过程,Dspsl,Watchdog,看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU,是MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。,Dspsl,复位期间的操
9、作,将IPTR置成1FFh 将PMST中的 MP/MC位置成与引脚MP/MC相同的数值 将PC置成FF80h XPC寄存器清成零(C5402/16) 不管MP/MC状态如何,将FF80h加到地址总线 数据总线变成高阻状态 控制线均处于无效状态 产生 IACK信号 INTM置成1,关闭所有的可屏蔽中断 中断标志寄存器IFR清零 产生同步复位信号(SRESET),对外围电路初始化,Dspsl,TMS320VC5402引脚说明2,Dspsl,复位时各状态位的初始值:,注意:SP及其它状态位没有初始化。MP/MC=0从片内ROM执行,否则从外程序存储执行,Dspsl,1.7.7 中断,中断是由硬件驱动
10、或软件驱动的信号。 由程序指令(INTR、TRAP或RESET)要求的软件中断。 由外围设备发出的硬件中断 (1) 来自外部中断输入口的外部硬 件中断信号 (2) 受片内外围电路信号触发的内 部硬件中断信号,Dspsl,中断类型,可屏蔽中断:可以用软件屏蔽或开放的硬件或软件中断,16个(SINT15SINT30) C541(9个): INT3 , INT2, INT1, INT0,RINT0, XINT0, RINT1, XINT1, TINT 非屏蔽中断:RS、NMI RS是一个对C54x所有操作方式影响的非屏蔽中断 NMI不会对C54x任何操作方式产生影响,响应时所有其他中断将禁止。,Ds
11、psl,两个中断寄存器,中断标志寄存器IFR 中断屏蔽寄存器IMR 两个寄存器每位所代表的中断是一样的,作用不同。,Dspsl,中断标志寄存器IFR,存储器映象的CPU寄存器 例:C5402IFR/IMR,Dspsl,中断标志清零,当中断出现时,相应的标志位置1 以下情况下,中断标志位清0: 1、复位; 2、中断得到响应; 3、将1写到IFR的某一位(此位变成0),相应的尚未处理完的中断被清除; 4、执行INTR指令,相应的中断标志位清0,Dspsl,中断屏蔽寄存器(IMR),存储器映象的CPU寄存器 屏蔽外部和内部中断 例:C541IMR,开放中断: (1) 状态寄存器ST1中的 INTM0
12、 (2) IMR中的相应位为1 RS和NMI不能被屏蔽,Dspsl,中断寄存器位域功能说明,Dspsl,中断处理过程,1. 接受中断请求 当发生硬件或软件指令请求中断时,IFR相应位置1(RS和NMI除外)。 2. 响应中断 对软件中断和非屏蔽中断,CPU立即响应 对可屏蔽中断的响应必须满足以下条件: (1) 优先级别最高(同时出现多个中断时) (2) ST1 中 的 INTM(中断方式位)0 (3) IMR 中 的 相 应 位 为 1 CPU响应中断时,让PC转到相应的中断向量处,并发出IACK信号,清除相应中断标志位 3.执行中断服务子程序,中断返回,Dspsl,软件中断包括: INTR
13、响应时ST1中的INTM位置1,关闭其他可屏蔽中断。 TRAP 响应中断不影响INTM位 RESET 将C54x转到一个已知的状态,影响ST0,ST1,不影响PMST,RS:PMSTIPTR位,附录C,Dspsl,中断处理过程,1. 接受中断请求 当发生硬件或软件指令请求中断时,IFR相应位置1(RS和NMI除外)。 2. 响应中断 对软件中断和非屏蔽中断,CPU立即响应 对可屏蔽中断的响应必须满足以下条件: (1) 优先级别最高(同时出现多个中断时) (2) ST1 中 的 INTM(中断方式位)0 (3) IMR 中 的 相 应 位 为 1 CPU响应中断时,让PC转到相应的中断向量处,并
14、发出IACK信号,清除相应中断标志位 3.执行中断服务子程序,中断返回,Dspsl,中断操作流程图,Dspsl,中断向量地址的形成,中断向量地址IPTR(9位)左移2位后的中断向量序号 举例:INT0:其序号为10,左移2位为40 若IPTR001,则中断向量地址位00c0h 复位时:IPTR1FF,中断向量表序号为0,故复位向量地址为FF80 改变PMST寄存器中的IPTR值,可改变中断向量地址 例:用0001h加载IPTR,中断向量移至0080h。,Dspsl,1.7.8 省电工作方式,C54可以工作在多种省电工作方式(见表1-28) 在省电工作状态(IDLE1、IDLE2、IDLE3、H
15、OLD): CPU暂停工作 功耗减小 保持CPU内容 省电工作方式结束时,CPU继续工作 此外,还有两种省电方式: 将BSCR(分区开关控制)寄存器第0位置1,关断外部总线 将PMST(处理器工作方式状态)寄存器的CLKOFF位置1,关断CLKOUT输出,Dspsl,表1-28 四种省电工作方式,Dspsl,1.8 流水线,避免流水线冲突,各寄存器工作时等待周期,有效的运行程序。 C54中的流水线操作 典型的流水线图 流水线中的时序冲突 等待周期表,Dspsl,1.8.1 流水线操作,C54 6级指令流水线 任何一个机器周期内,可有16条指令同时工作,Dspsl,流水线的存储器操作,分两阶段:
16、 加载储存单元的地址 进行读/写操作 举例:6个常用操作 (a) 取指 (b) 单操作数读 (c) 双操作数读 (d) 单操作数写 (e) 双操作数写 (f) 读一个操作数和写一个操作数,Dspsl,图1-19 流水线中的存储器存取操作,Dspsl,图1-19 流水线中的存储器存取操作,Dspsl,图1-20 分支转移指令的流水线图(继续),阴影部分表示一条指令的全部操作,Dspsl,分支转移指令流水线图分析,流水线1:用指令地址a1加载PAB 流水线2:双字分支转移指令取指 流水线3、4:分支转移指令译码 流水线5:用b1加载PAB 流水线6、7:执行阶段 执行分支转移指令需要4T 在流水线
17、过程中紧随B指令后的i3、i4指令(都是单字单周期指令)根据是否延迟决定能否被执行。,Dspsl,1.8.2 延迟分支转移,问题地提出: B指令的执行只需2T,但现在是4T,浪费2个周期 原因:i3,i4不允许执行 解决办法:延迟分支操作,Dspsl,延迟分支转移指令流水线图,延迟分支转移指令在6、7周期执行,变成双周期指令 在转移前,执行i3,i4(两条单字周期指令) 第10个周期转至b1,执行j1指令,Dspsl,延迟分支转移指令的用法,Dspsl,BD BANZD CALLD FCALLD RETED FRETD BACCD FBD CALAD FCALAD RETFD FRETED B
18、CD 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指令的操作码。 周期7:当XC指令在流水线中进行到寻址级时,求解XC指令所规定的条件。如果条件满足,则后面的两条指令i5和i6进入译码级并执行;如果条件不满足,则不对i5和i6指令译码
19、。 需要注意的是,在求解XC指令的条件时, 它前面的两条指令还没有执行完, 因此, 这两条指令对XC的操作是不会产生影响的。,Dspsl,条件执行指令流水线,条件执行指令XC, 是一条单字单周期指令, 与条件跳转指令相比, 具有快速选择其后1或2条指令是否执行的优点。XC指令在执行前2个周期就已经求出条件,如果在这之后到执行前改变条件(例如,发生中断), 将会造成无法预期的结果。所以,要尽力避免在XC指令执行前2个周期改变指令所规定的条件。,Dspsl,1.8.4 双寻址RAM(DARAM)与流水线,C54片内DARAM存储器块内部允许单周期访问其两次 单周期内允许同时访问DARAM的不同块
20、单周期内允许两条指令访问DARAM的不同块 允许处于不同级的两条指令同时访问同一DARAM块,Dspsl,为何单周期内CPU能同时访问DARAM两次?,原因: 一次访问在前半周期 另一次访问在后半周期 前半、后半周期操作: 利用PAB、PB取指 前半周期 利用DAB、DB读取第一个数据前半周期 利用CAB、CB读取第二个数据后半周期 利用EAB、EB将数据写入存储器 后半周期,Dspsl,DARAM的半周期寻址图,Dspsl,DARAM的半周期寻址图,Dspsl,从DARAM中同时取指和数,LD *AR2+,A; AR2指向程序代码驻留的DARAM区 I2 I3 I4,Dspsl,1.8.5单
21、寻址存储器与流水线,C54x内部有两种形式单寻址存储器: 单寻址读/写存储器(SARAM) 单寻址只读存储器(ROM或DROM) 同时寻址的不是同一块不会出现冲突 同时访问同一存储块时,出现时序冲突,将另一次寻址自动延迟到下一周期。,Dspsl,1.8.6流水线冲突及等待周期,流水线的优点:允许CPU多条指令同时利用CPU资源; 当一个CPU某个资源同时被一个以上流水级访问时,就会发生时序上的冲突; 有些时序冲突,CPU通过延迟寻址,自动缓解; 有些时序冲突,无法防止,需插入NOP(空操作)指令(或重新安排指令顺序)解决。,Dspsl,1.8.6 流水线的等待周期,对下列存储器映象寄存器同时寻址,有可能发生时序上的冲突 辅助寄存器(AR0AR7); 重复块长度寄存器(BK); 堆栈指针(SP); 暂存器(T); 处理器工作方式状态寄存器(PMST); 状态寄存器(ST0和ST1); 块重复计数器(BRC); 存储器映象累加器(AG、AH、AL、BG、BH、BL)。,Dspsl,流水线冲突情况分析,只有某些MMR操作才会引起插入等
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 兵团公益岗位管理办法
- 公路项目咨询管理办法
- 关于境外媒体管理办法
- 制定管理办法优化程序
- 健康扶贫对象管理办法
- 北京供暖测温管理办法
- 肾内科护理教学比赛
- 康复中心健康管理师培养计划
- 兵团社区殡葬管理办法
- 幼儿园多文化背景下进餐问题及改进措施
- 2025年度基因编辑动物模型构建服务合同范本
- 2025年上半年驻村工作总结范例(三篇)
- 养老院文娱活动意外应急预案
- 2024年中考语文真题汇编复习 专题18 作文(学生版)
- 热气球晚会活动方案
- 工艺流程卡管理办法
- 2024气爆震源操作流程及HSE风险评估标准
- PLC 原理及应用知到智慧树章节测试课后答案2024年秋新疆生产建设兵团兴新职业技术学院
- 2024-2030年中国卧室家具行业营销模式及发展趋势预测报告
- (高清版)DB43∕T 876.11-2017 高标准农田建设 第11部分:耕地地力评定技术规范
- 《城轨车辆受电弓状态监视系统技术规范》
评论
0/150
提交评论