欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    DSP原理及应用PPT教程-第三章 存储与寻址方式.ppt

    • 资源ID:2217497       资源大小:1.57MB        全文页数:49页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    DSP原理及应用PPT教程-第三章 存储与寻址方式.ppt

    第三章 存储结构与寻址方式,本章内容1、存储结构(TMS320C55x DSP存储结构)程序空间 数据空间 I/O空间2、寻址方式 对数据存储空间、存储映射寄存器、寄存器位、I/O空间的寻址 绝对寻址模式 直接寻址模式 间接寻址模式,第三章 存储结构与寻址方式,3.1 存储结构C55x DSP 有两个独立的存储空间:统一的数据/程序空间;I/O空间。程序空间:用于存取执行的指令代码和执行指令时用到的表。数据空间:用于存储指令需要的数据、映射寄存器(MMR);I/O空间:提供对外设寄存器的访问。数据空间地址用于访问存储器和内存映射寄存器,利用程序空间地址从存储器中读取指令代码,而I/O空间用于CPU与外设之间双向通信。,CPU通过6条24位的地址总线对上述两部分存储空间访问。,第三章 存储结构与寻址方式,一、存储映射 24位地址可以寻址16MB存储空间;C55x的寻址空间为16MB CPU从程序空间读取代码时,使用以字节为基准的24位地址;当访问数据空间时,使用以16比特的字为基准的23位地址。地址总线24位,当访问数据空间时将23位地址左移一位(LSB补0)构成24位地址。数据空间被分成128个主数据页(0-127),每个数据页64K的字地址,指令通过7比特的主数据页指针和16比特的偏移量,可以访问任何一个主数据页中的任何一个地址。,第三章 存储结构与寻址方式,第0主数据页中数据空间的前96个地址(000000h00005Fh)为存储映射寄存器MMR。相对应的程序空间的前192个地址(000000h0000BFh)建议不要用来存放程序代码。,存储器映射图,第三章 存储结构与寻址方式,存储空间又分为:内部存储空间和外部存储空间。1、内部存储空间(352KB):DARAM:8块 8KB,共64KB SARAM:32块 8KB,共256KB ROM:1块32kB2、外部存储空间(352KB16MB)EMIF根据片选信号(CE0CE3)来确定要访问的外部存储空间。,第三章 存储结构与寻址方式,二、程序空间只有当CPU读取指令时,程序空间才被访问。CPU采用字节寻址来读取变长的指令,指令的读取要和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)指令组织方式变长指令存放在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比特边界地址。,例如:CALL SUB子程序,如果程序在执行过程中调用了子程序,则在CPU调用子程序时,可能会发生写入程序计数器PC的地址与程序代码的读取地址不一致的情况:,第三章 存储结构与寻址方式,三、数据空间1、C55x采用字寻址(23bit)来读取数据空间8位、16位或32位数据字寻址:将一个地址分配给数据空间中的一个16bit字。下图是一行32位宽的存储器地址分配问题:地址总线是24位,当访问数据空间时,将23位地址左移一位(LSB补0)构成24位地址。例如:如果一条指令在23比特地址的000102h上读数据,实际上读数据地址总线上传送的24位地址是000204h。,第三章 存储结构与寻址方式,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在数据空间中对长字进行存取 存取地址由数据的高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(存储映象寄存器)是数据存储区的一部分,因此能够用访问其它数据存储区相同的方法进行访问。通常借助直接或间接寻址,对它们写或读。,第三章 存储结构与寻址方式,四、I/O空间C55x的I/O空间和数据/程序空间是分开的,只用于对DSP片内的外设寄存器的访问存取,采用16位宽的字寻址方式,寻址范围是64K字。CPU在读取I/O空间时用DAB地址总线读数据,EAB地址总线写数据。因为数据地址总线为24位,有一个16位地址到24位地址的变换,例如:0102h00 0102h,高8位添0。,第三章 存储结构与寻址方式,3.2 寻址方式寻址方式:寻找地址的方法,即如何指定指令和操作数所在存储单元的地址。C55x支持三种类型的寻址方式绝对寻址模式:在指令中利用常数值直接确定存取位置。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位地址。然后用该地址存取数据空间,可以用来访问一个存储单元或存储映射寄存器,第三章 存储结构与寻址方式,例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字节(去掉最高位),第三章 存储结构与寻址方式,例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中的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)对于数据空间的存取时,偏移量的计算方法: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)对存储映射寄存器空间的存取时,偏移量的计算方法: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。这种寻址方式用于访问数据堆栈。例:假设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)间接寻址可以分成线性寻址和循环寻址方式,ST2_55中的ARnLC和CDPLC位可以设置执行的是线性寻址还是循环寻址。(2)指针修改后,要进行模64k运算,保证寻址不超过主数据页的寻址范围。,第三章 存储结构与寻址方式,1、AR间接寻址 通过辅助寄存器ARn(n0,7)访问数据空间,包括访问数据存储空间,MMR,寄存器位,I/O空间。23位地址的值形成:,23比特地址 ARnH:(BSAyy+ARn),ARnH:扩展辅助寄存器XARn的高位部分,提供高7比特地址;ARn:提供低16比特的地址;BSAyy:在循环模式下,提供循环缓冲起始地址。BSA01、BSA23、BSA45、BSA67。,第三章 存储结构与寻址方式,ST2_55寄存器的ARMS位决定ARn间接寻址的CPU模式当ARMS0,DSP模式操作 CPU提供DSP增强应用的高效执行功能,能够提供按位倒序方式修改指针(对FFT很有用),但不能使用短偏移操作数。ARMS1,是控制模式操作 应用于控制系统,CPU能够优化代码字数。可以使用短偏移操作数,*ARn(short(#k3)。,1100+1010 0001进位是从右到左,第三章 存储结构与寻址方式,ARMS0,DSP模式的指针修改方式*ARn:指针不修改*ARn+():生成地址之后,地址值增加或减小*+()ARn:生成地址之前,地址值增加或减小*(ARn+()T0/AR0):生成地址之后,ARn加上(减去)T0或AR0中16比特带符号的常数。*ARn(T0/AR0):指针没有被修改,ARn作为基指针,T0或AR0中16比特带符号的常数作为偏移基指针的偏移量。,第三章 存储结构与寻址方式,*(ARn+()T0B/AR0B):生成地址之后,ARn加上(减去)T0或AR0中16比特带符号的常数。按位倒序模式相加。*(ARn+()T1):生成地址之后,ARn加上(减去)T1中16比特带符号的常数。*ARn(T1):指针没有被修改,ARn作为基指针,T1中16比特带符号的常数作为偏移基指针的偏移量。*ARn(#K16):指针没有被修改,ARn作为基指针,16比特带符号的常数作为偏移基指针的偏移量。*+ARn(#K16):生成地址之前,ARn加上16比特带符号的常数k16。,第三章 存储结构与寻址方式,ARMS1,控制模式的指针修改方式 和DSP模式基本相同,没有提供按位倒序模式修改指针方法,但可以使用短偏移操作数。*ARn(short(#K3):指针没有被修改,ARn作为基指针,3比特无符号的常数作为偏移基指针的偏移量。注意:倒位寻址方式,可以提高FFT算法中蝶形运算的效率*ARn(#K16),*+ARn(#K16)不能用于I/O空间寻址,第三章 存储结构与寻址方式,倒位寻址方式,提高FFT算法中蝶形运算的效率,设AR2中的值为(01100000)2T0的值为(00000100)2,顺序 操作数 修改后的值 0*(AR2+T0B)01100000 1*(AR2+T0B)01100100 2*(AR2+T0B)01100010 3*(AR2+T0B)01100110 4*(AR2+T0B)01100001 5*(AR2+T0B)01100101 6*(AR2+T0B)01100011 7*(AR2+T0B)01100111,第三章 存储结构与寻址方式,2、双重AR间接寻址模式 通过8个辅助寄存器(AR0AR7)同时访问两个数据存储地址,CPU使用扩展辅助寄存器生成23比特地址,双重寻址中的每个寻址都可以采用线性寻址或循环寻址方式。(1)执行一条完成两个16比特数据空间寻址的指令,形式如下:,ADD Xmem,Ymem,ACx,例如:,ADD*AR0,*AR1,AC0,在一条指令中,对两个数据存储单元的操作用Xmem,Ymem表示:,第三章 存储结构与寻址方式,(2)并行执行两条指令。这种情况下每条指令都必须访问同一个存储单元中的数据。形式如下:,MOV Smem,dst|AND Smem,src,dst,指令语法中用Smen或Lmen表示,例如:MOV*AR0,AC0|AND*AR0,T0,AC0,地址指针修改方式参见表3-7,第三章 存储结构与寻址方式,注意:(1)ST2_55中的ARMS状态位对双重AR间接寻址操作数没有影响。(2)汇编器不接受双重操作数使用相同的辅助寄存器而修改量不一样的代码。例如:,MOV*AR0,AC0|AND*AR0,T1,AC1;illegal,MOV*AR0,AC0|AND*AR0,T1,AC1;legal,MOV*AR0(T0),AC0|AND*AR0,T1,AC1;legal,第三章 存储结构与寻址方式,3、CDP间接寻址 使用系数数据指针(CDP)访问数据空间,23位地址由CDPH提供的高7位地址和CDP提供的低16位地址组成,可以用于访问数据空间,MMR,寄存器位,I/O空间。,地址形成方式:,23位地址CDPH:(BSACCDP),BSAC:(CDP缓冲起始地址寄存器)只有在循环寻址模式下才考虑,第三章 存储结构与寻址方式,指针修改方式:*CDP*CDP*CDP*CDP(#K16)*CDP(#K16),例如:MOV*CDP+,AC0,系数间接寻址的地址组成和指针修改方式与AR间接寻址模式相同,主要用于无限脉冲响应滤波器,双乘,乘累加,乘减等运算:例如:,MPY*AR0,*CDP+,AC0:MPY*AR1,*CDP+,AC1,第三章 存储结构与寻址方式,四、循环寻址(卷积、相关、FIR滤波器需要一个环形缓冲区)循环寻址可用于任何一种间接寻址模式中,通过设置ST2_55中相应的状态位(ARnLC或CDPLC)独立地将每个辅助寄存器(AR0AR7)和系数数据指针(CDP)配置成线性寻址还是循环寻址。若ARnLC0或CDPLC0,执行线性寻址 若ARnLC1或CDPLC1,执行循环寻址循环寻址的地址形成:ARnH:(BSAxx+ARn)或CDPH:(BSAC+CDP)循环缓冲的字节数由寄存器BK03、BK47和BKC定义,第三章 存储结构与寻址方式,指针与循环寻址配置寄存器之间的关系如下,第三章 存储结构与寻址方式,BSET AR1LC;AR1LC1,把AR1设置成循环寻址指针AMOV#010000h,XAR0;循环寻址在01主数据页中执行,AR0H01hMOV#0A02h,BSA01;循环缓冲区的首地址为010A02h MOV#4,BK03;循环缓冲区长度为4words MOV#0000h,AR1;循环缓冲区的索引为0000h(index)MOV*AR1+,AC0;AC0(010A02h+(AR1)=*(010A02h),index=0001hMOV*AR1+,AC0;AC0(010A02h+(AR1)=*(010A03h),index=0002hMOV*AR1+,AC0;AC0(010A02h+(AR1)=*(010A04h),index=0003hMOV*AR1+,AC0;AC0(010A02h+(AR1)=*(010A05h),index=0000h,举例:,IF index+stepBK,index=index+step-BK,第三章 存储结构与寻址方式,循环寻址方式的实现步骤 将ST2_55中相应的状态位ARnLC或CDPLC设置成循环寻址模式。用AMOV指令初始化扩展寄存器(XARy 或 XCDP)的高7位,选定主数据页。利用BSA01,BSA23,BSA45,BSA67,或BSAC初始化循环缓冲区的的起始地址。并联合XARn(22-16)或XCDP(22-16)构成23位的循环缓冲区的起始地址。初始化合理的循环缓冲区大小寄存器(BK03,BK47,or BKC)。设置ARn 或 CDP为一个小于缓冲区长度的值,作为循环寻址开始的首次索引。循环寻址初始化完成,进行下一步运算。,第三章 存储结构与寻址方式,五、寄存器位寻址:(1)直接寻址和间接寻址支持寄存器位寻址,绝对寻址不支持寄存器位寻址。(2)只有寄存器位的“测试/置位/清零/取反”指令支持寄存器位寻址。1、寄存器位直接寻址 通过偏移量访问寄存器位,访问一个或者两个相邻的寄存器位。这里的偏移量是指从LSB开始的偏移比特数。BSET 0,AC3;CPU访问AC3的第0个比特,并置为1。BTSTP 30,AC3;CPU测试AC3的第30 和 31比特,并将 AC3(30)的内容拷贝到ST0_55的TC1位,将AC3(31)的内容拷贝到ST0_55的TC2位.,第三章 存储结构与寻址方式,2、寄存器位间接寻址 通过辅助寄存器中的内容作为偏移量访问寄存器位。例1:假设AR2=0,AR5=30。BSET*AR2,AC3;设置AC3的LSB为1 BTSTP*AR5,AC3;CPU测试AC3的第30 和 31比特,并将 AC3(30)的内容拷贝到ST0_55的TC1位,将AC3(31)的内容拷贝到ST0_55的TC2位.例2:设置或清除状态寄存器的状态位。BSET SXMD;设置ST1_55中SXMD状态位为1 BCLR C54CM;清除ST1_55中C54CM状态位,置为0,第三章 存储结构与寻址方式,六、I/O空间寻址 绝对寻址、直接寻址、间接寻址都可以用于I/O空间外设寄存器的存取。、I/O空间绝对寻址:该模式利用16位的无符号常数作为数据寻址地址直接访问I/O空间。如果使用代数指令,其操作数是*port(#k16);如果使用助记符指令,其操作数是port(#k16)(操作数前没有*)MOV port(#2800h),AR0;CPU将I/O空间中地址2800h的值装入AR0中,,第三章 存储结构与寻址方式,、外设数据页(PDP)直接寻址 64K的I/O空间被分成512个128字的外设数据页,用9位PDP表示,通过指令中指定的7位的偏移值形成16位I/O空间地址,用于访问I/O空间的一个位置。地址形成:16位地址PDP:Poffset例如:假设PDP511 MOV port(0),T2;PDP:Poffset=FF80h,CPU将I/O空间中地址为FF80h中的值装入T2中。MOV T2,port(127);PDP:Poffset=FFFFh,第三章 存储结构与寻址方式,、I/O空间的间接寻址 间接操作数指针修改形式参阅书P76 表311 例题:假设AR4=FF80h MOV port(*AR4),T1;CPU将I/O空间中地址FF80h的值装入T1中,AR4的值不变。MOV port(*AR4),T1;CPU将I/O空间中地址FF80h的值装入T1 中,AR4的值1。MOV port(*AR4),T1;寻址之前,AR4的值减1,CPU将I/O空间 中地址FF7Fh的值装入T1中。,第三章 存储结构与寻址方式,、I/O空间寻址的限制条件*ARn(#K16),*+ARn(#K16),*CDP(#K16),*+CDP(#K16),不能用于I/O空间寻址,因为K16的常数需要指令操作数有两个字节的扩展,这种扩展妨碍了I/O空间存取限制符的port()的使用。以下两条指令不能用于I/O空间的寻址 DELAY Smem;存储器延迟;MACMRZ T3=Smem,Cmem,ACx;带延迟的乘加注:任何对I/O空间的非法访问都会产生硬件总线错误中断(BERRINT)。,第三章 存储结构与寻址方式,思考题1:按下列要求编程实现循环寻址的初始化任务,并逐行说明其工作过程将AR5设置成循环寻址循环的首地址为030603h;索引值为为0002h 循环缓冲大小为4个字 MOV*AR5+,AC3 在程序中出现5次,写出AR5的值。,

    注意事项

    本文(DSP原理及应用PPT教程-第三章 存储与寻址方式.ppt)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开