DSP原理及应用PPT教程-第三章 存储与寻址方式.ppt
《DSP原理及应用PPT教程-第三章 存储与寻址方式.ppt》由会员分享,可在线阅读,更多相关《DSP原理及应用PPT教程-第三章 存储与寻址方式.ppt(49页珍藏版)》请在三一办公上搜索。
1、第三章 存储结构与寻址方式,本章内容1、存储结构(TMS320C55x DSP存储结构)程序空间 数据空间 I/O空间2、寻址方式 对数据存储空间、存储映射寄存器、寄存器位、I/O空间的寻址 绝对寻址模式 直接寻址模式 间接寻址模式,第三章 存储结构与寻址方式,3.1 存储结构C55x DSP 有两个独立的存储空间:统一的数据/程序空间;I/O空间。程序空间:用于存取执行的指令代码和执行指令时用到的表。数据空间:用于存储指令需要的数据、映射寄存器(MMR);I/O空间:提供对外设寄存器的访问。数据空间地址用于访问存储器和内存映射寄存器,利用程序空间地址从存储器中读取指令代码,而I/O空间用于C
2、PU与外设之间双向通信。,CPU通过6条24位的地址总线对上述两部分存储空间访问。,第三章 存储结构与寻址方式,一、存储映射 24位地址可以寻址16MB存储空间;C55x的寻址空间为16MB CPU从程序空间读取代码时,使用以字节为基准的24位地址;当访问数据空间时,使用以16比特的字为基准的23位地址。地址总线24位,当访问数据空间时将23位地址左移一位(LSB补0)构成24位地址。数据空间被分成128个主数据页(0-127),每个数据页64K的字地址,指令通过7比特的主数据页指针和16比特的偏移量,可以访问任何一个主数据页中的任何一个地址。,第三章 存储结构与寻址方式,第0主数据页中数据空
3、间的前96个地址(000000h00005Fh)为存储映射寄存器MMR。相对应的程序空间的前192个地址(000000h0000BFh)建议不要用来存放程序代码。,存储器映射图,第三章 存储结构与寻址方式,存储空间又分为:内部存储空间和外部存储空间。1、内部存储空间(352KB):DARAM:8块 8KB,共64KB SARAM:32块 8KB,共256KB ROM:1块32kB2、外部存储空间(352KB16MB)EMIF根据片选信号(CE0CE3)来确定要访问的外部存储空间。,第三章 存储结构与寻址方式,二、程序空间只有当CPU读取指令时,程序空间才被访问。CPU采用字节寻址来读取变长的指
4、令,指令的读取要和32位的偶地址对齐(地址的低两位为零)。1、C55X采用字节寻址来读取程序代码 字节寻址:地址按照字节进行分配,且地址为24位。下图是32比特宽的存储器中的一行存储内容与地址间的关系。,第三章 存储结构与寻址方式,2、程序空间的指令结构 C55X DSP支持变长指令,其长度可以是8、16、24、32、40、48比特。例如:1 byte:NOP 2 byte:MOV T0,*AR0 3 byte:MOV T0,high_byte(*AR0)4 byte:MOV low(AC0#-8),*AR0 5 byte:BCC P24,condition,第三章 存储结构与寻址方式,(1)
5、指令组织方式变长指令存放在32比特宽的存储器中。指令的地址根据操作码的最高有效字节的地址确定。例如指令A的地址是000101h。,第三章 存储结构与寻址方式,(2)边界对齐关系在程序空间中存放指令时不用边界对齐,当读取指令时,需按32比特边界的偶地址对齐(根据前面指令缓冲单元I 的介绍,指令缓冲队列每次通过程序数据总线PB从程序空间读取32比特的程序操作码,所以CPU总是从最低两位为0的地址读取32比特代码。即读取地址的最低一个16进制位是0、4、8或C)。,假设子程序SUB位于00 0106h段的C指令,PC的值为00 0106h。那么程序地址总线实际上传的地址是00 0104h的32比特边
6、界地址。,例如:CALL SUB子程序,如果程序在执行过程中调用了子程序,则在CPU调用子程序时,可能会发生写入程序计数器PC的地址与程序代码的读取地址不一致的情况:,第三章 存储结构与寻址方式,三、数据空间1、C55x采用字寻址(23bit)来读取数据空间8位、16位或32位数据字寻址:将一个地址分配给数据空间中的一个16bit字。下图是一行32位宽的存储器地址分配问题:地址总线是24位,当访问数据空间时,将23位地址左移一位(LSB补0)构成24位地址。例如:如果一条指令在23比特地址的000102h上读数据,实际上读数据地址总线上传送的24位地址是000204h。,第三章 存储结构与寻址
7、方式,2、数据类型C55x DSP指令处理的数据类型有:字节(8bit),字(16bit),长字(32bit)。,3、数据空间数据结构 长字数据C的存取地址是000102h 长字数据D的存取地址是000105h 000107h存放数据F(高字节)和数据G(低字节)。,例子,第三章 存储结构与寻址方式,在数据空间中对字节存取 由于数据空间采用字寻址方式,对字节进行存取时,可以使用C55X的专用指令如high_byte(),low_byte()对高低字节进行存取。例如:mov high_byte(*ar0),AC0。,第三章 存储结构与寻址方式,CPU在数据空间中对长字进行存取 存取地址由数据的高
8、16bit(MSW)地址决定,数据的低16bit(LSW)的地址取决于MSW地址的奇偶性。,可通过将MSW的最低有效位(LSB)取反来确定LSW地址。,(1)若MSW的地址是偶地址,则LSW从MSW的后一个地址存取。,(2)若MSW的地址是奇地址,则LSW从MSW的前一个地址存取。,第三章 存储结构与寻址方式,4、存储映射寄存器(MMR)位于第0数据页,占用00 0000h00 005Fh地址的数据空间(参见教材书上62页64页)。书中的表3-4列出了存储映射寄存器。,理解存储映像寄存器(MMR):MMR包括一系列寄存器。由于MMR(存储映象寄存器)是数据存储区的一部分,因此能够用访问其它数据
9、存储区相同的方法进行访问。通常借助直接或间接寻址,对它们写或读。,第三章 存储结构与寻址方式,四、I/O空间C55x的I/O空间和数据/程序空间是分开的,只用于对DSP片内的外设寄存器的访问存取,采用16位宽的字寻址方式,寻址范围是64K字。CPU在读取I/O空间时用DAB地址总线读数据,EAB地址总线写数据。因为数据地址总线为24位,有一个16位地址到24位地址的变换,例如:0102h00 0102h,高8位添0。,第三章 存储结构与寻址方式,3.2 寻址方式寻址方式:寻找地址的方法,即如何指定指令和操作数所在存储单元的地址。C55x支持三种类型的寻址方式绝对寻址模式:在指令中利用常数值直接
10、确定存取位置。MOV*(#00 0001h),AC0直接寻址模式:通过地址偏移量进行位置寻址。如 SP=0000h,MOV*SP(5),T0间接寻址模式:通过辅助寄存器确定存取位置 如 AR0=0,BSET*AR2,AC0 通过上面方式可以实现对数据存储空间、存储映射寄存器、寄存器位和I/O空间的寻址。,第三章 存储结构与寻址方式,一、绝对地址寻址:K16,K23和I/O绝对寻址,1、K16绝对寻址:操作数:*abs16(#k16)将扩展数据页指针XDP的高位部分DPH中的7比特值与16比特无符号常数(k16)级联形成23位地址。然后用该地址存取数据空间,可以用来访问一个存储单元或存储映射寄存
11、器,第三章 存储结构与寻址方式,例1:MOV*abs16(#2003h),T1 说明:假设PDH=1,CPU将数据空间地址为01 2003h的值装入T1中。例2:MOV*abs16(#AR2),T0 说明:CPU将AR2(000012h)中的值装入T0中注意:当使用这种寻址模式时由于常数编码将指令扩展了2个字节,故该模式不能与其它指令并行执行。,第三章 存储结构与寻址方式,2、K23绝对寻址操作数:*(#k23)该模式将23位无符号常数(k23)作为完整的数据寻址地址,可以用来访问一个存储单元或存储映射寄存器。当使用这种寻址模式时不能与其它指令并行执行。,使用这种寻址方法的指令将常数编码为3字
12、节(去掉最高位),第三章 存储结构与寻址方式,例1:MOV*(#002003h),AC0;k23=002003h例2:利用存储映射寄存器访问的K23的绝对寻址 MOV*(#AC0L),T2;CPU将AC0中的低16位装入T2中。MOV dbl(*(#AC0L),pair(T0);CPU将AC0中的低16位装入T0中,将AC0中的高16位装 入T1中。绝对寻址模式的缺点是它要更多的空间来表示其23bit地址。,第三章 存储结构与寻址方式,二、直接寻址 数据页指针DP直接寻址;堆栈指针SP直接寻址;对寄存器位的直接寻址;外设数据页指针PDP直接寻址;注意:DP和SP直接寻址与状态寄存器ST1_55
13、中的CPL位有关。,CPL=0时,DP直接寻址,CPL=1时,SP直接寻址,寄存器位寻址和PDP直接寻址与CPL位无关,第三章 存储结构与寻址方式,1、DP直接寻址 23位地址的高7位:由XDP的高7bit(DPH)确定,确定了主数据页;23位地址的低16位:16比特的DP和7比特偏移量Doffset的和确定。DP的值确定在主数据页内长度为128个字的局部数据页开始地址,该开始地址可以是选定主数据页内的任何地址。7位偏移量:128个字的范围。,特点:不用改变DP或SP的值,就可以随便访问128个单元。,第三章 存储结构与寻址方式,$、直接寻址中偏移值(Doffset)的计算方法(1)对于数据空
14、间的存取时,偏移量的计算方法:Doffset=(Daddr.dp_addr)&7Fh Daddr:存取数据空间16bit地址;.dp_addr:汇编指示符“.dp”为DP寄存器赋的值;&:逐位与操作;例:AMOV#03FFF0h,XDP;数据位于第03主数据页.dp#FFF0h;编译时,DP的值为FFF0h MOV FFF4h,T2;DaddrFFF4h汇编器计算出偏移量:Doffset=(Daddr-.dp)&7Fh=04h执行时产生23位地址:DPH:(DP+Doffset)=03:(FFF0h+0004h)=03FFF4h,第三章 存储结构与寻址方式,(2)对存储映射寄存器空间的存取时,
15、偏移量的计算方法:Doffset=Daddr&7Fh例:MOV mmap(AR0),T2;把 AR0的值装入T2寄存器中。mmap()表示是对 MMR存储区的访问,所以此时DPHDP=0。AR0的地址为:Daddr000010h(表33)汇编器计算出偏移量:Doffset=Daddr&7Fh=0010h&7Fh=10h 执行时产生23位地址:DPH:(DP+Doffset)=00:(0000h+0010h)=000010h,第三章 存储结构与寻址方式,2、SP直接寻址:23比特地址 SPH提供高7比特 16比特由SP和7比特的偏移值决定。偏移值范围是0127。这种寻址方式用于访问数据堆栈。例:
16、假设SPH=0、SP=FF00h,用SP直接寻址 MOV*SP(5),T2;SPH:(SP+offset)=00 FF05h MOV dbl(*SP(5),pair(T2);SPH:(SP+offset)=00 FF05h的值装入T2 SPH:(SP+offset-1)=00 FF04h的值装入T3,第三章 存储结构与寻址方式,3寄存器位直接寻址 后面和其间接寻址一起介绍。4.PDP直接寻址 后面和I/O间接寻址一起介绍。,第三章 存储结构与寻址方式,三、间接寻址间接寻址可以分为:AR(辅助寄存器)间接寻址 双重AR间接寻址 CDP(系数数据指针寄存器)间接寻址注意:(1)间接寻址可以分成线性
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP原理及应用PPT教程-第三章 存储与寻址方式 DSP 原理 应用 PPT 教程 第三 存储 寻址 方式
链接地址:https://www.31ppt.com/p-2217497.html