TMS320C54x的数据寻址方式.ppt

上传人:小飞机 文档编号:6522017 上传时间:2023-11-08 格式:PPT 页数:60 大小:1,006.50KB
返回 下载 相关 举报
TMS320C54x的数据寻址方式.ppt_第1页
第1页 / 共60页
TMS320C54x的数据寻址方式.ppt_第2页
第2页 / 共60页
TMS320C54x的数据寻址方式.ppt_第3页
第3页 / 共60页
TMS320C54x的数据寻址方式.ppt_第4页
第4页 / 共60页
TMS320C54x的数据寻址方式.ppt_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《TMS320C54x的数据寻址方式.ppt》由会员分享,可在线阅读,更多相关《TMS320C54x的数据寻址方式.ppt(60页珍藏版)》请在三一办公上搜索。

1、第3章 TMS320C54x的数据寻址方式,3.1 立即寻址3.2 绝对寻址3.3 累加器寻址3.4 直接寻址3.5 间接寻址3.6 存储器映象寄存器寻址3.7 堆栈寻址,TMS320C54x DSP提供以下7种基本数据寻址方式。,(1)立即数寻址(2)绝对地址寻址(3)累加器寻址(4)直接寻址(5)间接寻址(6)存储器映射寄存器寻址(7)堆栈寻址,表3-1 寻址指令中用到的缩写符号及其含义,3.1 立即寻址,在立即寻址方式中,指令中包括了立即操作数。一条指令中可对两种立即数编码,一种是短立即数(3、5、8或9位),另一种是16位的长立即数。短立即数指令编码为一个字长,16位立即数的指令编码为

2、两个字长。立即数寻址指令中在数字或符号常数前面加一个“”号,来表示立即数。,返回首页,【例3-1】RPT#99;将紧跟在RPT后面的下一条指令循环执行100次,【例3-2】RPT#0FFFFH;将紧跟在RPT的下一条指令循环执行10000H次,3.1.1 立即数寻址,3.1 寻 址 方 式,3.2 绝对寻址,3.2.1 数据存储器(dmad)寻址3.2.2 程序存储器(pmad)寻址3.2.3 端口地址(PA)寻址3.2.4 长立即数*(lk)寻址,返回首页,3.2.1 数据存储器(dmad)寻址,使用数据存储器寻址的指令有:MVDK Smem,dmadMVDM dmad,MMR MVKD d

3、mad,SmemMVMD MMR,dmad数据存储器寻址使用符号(符号地址)或一个表示16位地址的立即数来指明寻址的数据存储单元的16位绝对地址。例如:MVKD SMAPLE,*AR5;,返回本节,3.2.2 程序存储器(pmad)寻址,使用程序存储器寻址的指令有:FIRS Xmem,Ymem,pmadMACD Smem,pmad,srcMACP Smem,pmad,srcMVDP Smem,pmadMVPD pmad,Smem程序存储器(pmad)寻址使用符号(符号地址)或一个表示16位地址的立即数来给出程序空间的地址。例如,把程序存储器中标号为TABLE单元中的值复制到AR7所指定的数据存

4、储器中去,指令可写为:MVPD TABLE,*AR7;,返回本节,3.2.3 端口地址(PA)寻址,使用端口地址的指令有:PORTR PA,Smem PORTW Smem,PA端口地址(PA)寻址使用一个符号(符号地址)或一个表示16位地址的立即数来给出外部I/O口地址。例如:PORTR FIFO,*AR5;,返回本节,3.2.4 长立即数*(lk)寻址,长立即数*(lk)寻址用于所有支持单数据存储器操作数(Smem)的指令。长立即数*(lk)寻址使用一个符号(符号地址)或一个表示16位地址的立即数来指定数据存储空间的一个地址。例如,把数据空间中地址为BUFFER单元中的数据传送到累加器A,指

5、令可写为:LD*(BUFFER),A,返回本节,3.3 累加器寻址,累加器寻址是用累加器中的数值作为一个地址读写程序存储器。共有两条指令可以采用累加器寻址:READA Smem WRITA Smem,返回首页,3.4 直接寻址,在直接寻址方式中,指令中包含数据存储器地址(dma)的低7位,这7位dma作为地址偏移量,结合基地址(由数据页指针DP或堆栈指针SP给出)共同形成16位的数据存储器地址。使用这种寻址方式,用户可在不改变DP或SP的情况下,对一页内的128个存储单元随机寻址。采用这种寻址方式的好处是指令为单字指令,数据存储器地址(dma)的低7位放在指令字中(如图3-1、3-2所示)。,

6、返回首页,例如:ADD SAMPLE,A 或 ADD x,A,直接寻址方式的指令代码的格式:,直接寻址方式的指令代码各位的说明:,直接寻址的方框图:,(1)如果选择DP和dmad值相结合产生实际地址,必须将状态寄存器ST1中的编译方式位(CPL)置0,指令寄存器(IR)中的低7位的dmad值与9位的DP值连接在一起形成实际地址,如图所示:,因为DP值的范围为0511(129),所以以DP为基准的直接寻址方式把存储器分成512页。7位的dmad值的变化范围为0127,每页有128个可访问的单元。,【例3-3】LD#x,DPLDu,A ADDv,A,(2)在以SP为基准的直接寻址中,如果选择SP和

7、dmad值相结合产生实际地址,则必须将状态寄存器ST1中的编译方式位(CPL)置1。将指令寄存器中的低7位的dmad值作为一个正偏移与SP相加得到有效的16位数据存储器地址,如图所示:,+,【例3-4】SSBXCPL LDX1,A ADD Y2,A,3.5 间接寻址,3.5.1 单操作数寻址3.5.2 双操作数寻址,返回首页,间接寻址方式按照辅助寄存器中的地址访问存储器。在间接寻址中,64KW16bit数据空间任意单元都可通过一个辅助寄存器中的16位地址进行访问。TMS320C54x有8个16位辅助寄存器(AR0AR7),两个辅助寄存器算术单元(ARAU0和ARAU1),可以根据辅助寄存器的内

8、容进行操作,完成无符号的16位算术运算。,3.5.1 单操作数寻址,表3-2列出了单数据存储器(Smem)操作数间接寻址类型。特殊的间接寻址方式有:1循环寻址2倒序寻址(如表3-3所示),1单操作数寻址,格式如图所示:,单数据存储器操作数间接寻址指令的各位说明:,2循环寻址,(1)单数据存储器操作数的间接寻址类型,(2)循环寻址的框图,3位倒序寻址,位倒序寻址提高了执行速度和在FFT算法的程序中使用存储器的效率。在这种寻址方式中,AR0存放的整数N是FFT点数的一半,一个辅助寄存器指向一个数据存放的物理单元。当使用位倒序寻址方式把AR0加到辅助寄存器中时,地址以位倒序的方式产生,即进位是从左向

9、右的,而不是从右向左。,例如,AR2表示在存储器中数据的基地址0110 0000(二进制数),AR0的值为0000 1000(二进制数).位倒序寻址:*AR2+0B*AR2+0B,索引步长的位模式和AR2的低4位的关系:,3.5.2 双操作数寻址,双数据存储器操作数间接寻址类型为*ARx、*ARx-、*ARx+、*ARx+0%。所用辅助寄存器只能是AR2、AR3、AR4、AR5。其特点是:占用程序空间小,运行速度快,在一个机器周期内通过两个16位数据总线(C和D)读两个操作数。指令中Xmem表示从DB总线上读出的16位操作数,Ymem表示从CB总线上读出的16位操作数。,返回本节,4双数据存储

10、器操作数寻址,(1)双数据存储器操作数间接寻址指令的格式,(2)双数据存储器操作数间接寻址指令代码的各位说明,(3)由指令的Xar和Yar域选择的辅助寄存器,(4)双数据存储器操作数间接寻址的类型,3.6 存储器映象寄存器寻址,存储器映象寄存器寻址用于修改存储器映象寄存器(MMR)中的内容,而不影响当前数据页指针DP和当前堆栈指针SP。由于这种方式不需要修改DP和SP,对寄存器的写操作开销最小。存储器映象寄存器寻址可用于直接寻址和间接寻址。,返回首页,存储器映射寄存器寻址,只有如下8条指令可用:LDM MMR,dstMVDM dmad,MMRMVMD MMR,dmadMVMM MMRx,MMR

11、yPOPM MMRPSHM MMRSTLM src,MMRSTM#1k,MMR,3.7 堆栈寻址,当发生中断或子程序调用时,系统堆栈自动保存PC值。堆栈也可以用于保存和传递其他数据。堆栈由高地址向低地址增长,处理器使用16位的存储器映象寄存器堆栈指针(SP)对堆栈进行寻址,SP总是指向压入堆栈的最后一个数据。,返回首页,有4条使用堆栈寻址的指令:PSHD 把一个数据存储器数据压入堆栈;PSHM 把一个存储器映象寄存器中的值压入堆栈;POPD 从堆栈中弹出一个数据至数据存储器单元;POPM 从堆栈中弹出一个数据至存储器映象寄存器。,返回本节,共有以下4条指令使用堆栈寻址方式访问堆栈:(1)PSH

12、D把一个数据存储器的值压入堆栈(2)PSHM把一个存储器映射寄存器的值压入堆栈(3)POPD把一个数据存储器的值弹出堆栈(4)POPM把一个存储器映射寄存器的值弹出堆栈,3.2 指令系统,3.2.1 符号与意义,3.2.2 TMS320C54x的指令系统,1算术运算指令,(1)加法指令ADD,(2)减法指令SUB,(3)乘法指令MPY,(4)乘加和乘减指令MAC、MAS,(5)双操作数指令,(6)特殊应用指令,2逻辑指令,(1)与指令,(2)或指令,(3)异或指令,(4)移位指令,(5)测试指令,3程序控制指令,(1)分支指令,(2)调用指令,(3)中断指令,(4)返回指令,(5)重复指令,(

13、6)堆栈操作指令,(7)其他程序控制指令,4装入指令,(1)一般存储指令,(2)一般装入指令,(3)条件存储指令,(4)并行装入和存储指令,(5)并行装入和乘法指令,(6)并行存储和加减指令,(7)并行存储和乘法指令,(8)其他存储和装入指令,5单个循环指令,(1)单个循环指令,(2)不可使用RPT或RPTZ指令循环执行的指令,3.3 流水线技术,TMS320C54x采用6级深度的指令流水线:,3.3.1 延迟分支转移的流水线,一条分支转移指令的流水线图:,3.3.2 条件执行指令的流水线,条件执行流水线图:,3.3.3 双寻址存储器的流水线冲突,CPU自动解决取指与读数冲突的流水线图:,3.

14、3.4 解决流水线冲突的方法,1可能发生流水线冲突的情况,例如,对辅助寄存器执行标准的写操作引起的时间等待,就是一种流水线冲突问题。,(1)用STM指令解决等待周期问题,(2)用NOP指令解决等待周期问题,2用等待周期表解决流水线冲突,等待周期表1,等待周期表2,STM,ST,OVLY,IPTR,STM,ST,MVDK,MVMD,等待周期表3,注:等待周期表说明说明1:下条指令不能使用STM、MVDK或MVMD写到任何ARx、BK或SP中。说明2:不要在该指令前,在流水线的执行阶段,用一条指令写到任何ARx、BK或SP中。说明3:在随后的6个单字指令,不能包含在RPTBD环的最后指令中。说明4:在RPTBD环的最后的指令之前,SRCCD必须是2字指令。说明5:所列插入等待是从新激活的存储器空间对第一条指令进行取指,如分支、调用或返回类型指令。,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号