第二章-典型DSP芯片介绍.ppt_第1页
第二章-典型DSP芯片介绍.ppt_第2页
第二章-典型DSP芯片介绍.ppt_第3页
第二章-典型DSP芯片介绍.ppt_第4页
第二章-典型DSP芯片介绍.ppt_第5页
免费预览已结束,剩余79页可下载查看

下载本文档

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

文档简介

DSP系统设计,主讲:杜建铭教授,第二章典型DSP芯片祥解,2.1ADSP21160处理器核,2.2ADSP21160处理器存储器,2.3ADSP21160寄存器,2.4ADSP21160中断逻辑和定时器,2.5ADSP21160串行口/DMA及链路口,2.6ADSP21160主机接口与ISA总线,2.1ADSP21160处理器核,ADSPSHARC系列处理器是构建在ADSP21000DSP核的基础上,形成一个完整SoC。(SystemonChip,中文称为系统集成到芯片上或片上系统);有一个双口的在片SRAM;加上集成周边IO和为单指令多数据(SIMD)提供支持的附加处理单元。,处理器核是由以下几个部分组成:(1)两个处理器单元;(2)1个程序控制器;(3)2个数据地址产生器;(4)1个定时器;(5)1个指令缓存;所有数字信号处理都在处理器核里实现。,2.1ADSPSHARC系列处理器核,2.1.1处理单元的构成(两个处理单元):,每个处理单元包含:(1)算术逻辑单元(ALU);(2)乘法器;(3)移位器;(4)通用数据寄存器组;,算术逻辑单元(ALU)、乘法器(Multiplier)、移位器(Shifter)在结构上并行排列,分别完成加、减、乘和逻辑移位运算等操作;指令执行时间都是1个周期;任何一个单元的输出都可以在下一个周期作为本单元或其他单元的输入。,处理单元的构成(续),算术逻辑单元(ALU),ALU指令包括定点和浮点加、减、取平均、取绝对值、取反及定浮点转换等。对于定点操作,有逻辑与、或、非、异或等。对于浮点操作,有取对数、平方根、倒数等。输入的操作数可以是1个或2个,在时钟周期的前半周期操作数从数据寄存器送入ALU,在后半周期将运算结果输出到数据寄存器。,乘法器(Multiplier),浮点乘定点乘乘法器与ALU、数据寄存器的结合,使处理器能在1个周期内实现多功能并行计算(如乘/累加操作,可大大提高数字滤波与FFT的运算速度)。,移位器(Shifter),进行逻辑移位或算术移位、位段存取、位清零、置位、测试、取反等操作。,通用数据寄存器,用于运算单元与数据总线间的数据传输,并存取中间结果。,2.1.1处理单元的构成(续),每个处理单元中各包含一个通用数据寄存器组40位宽,每组32个寄存器(16个主,16个辅)用于运算单元和数据总线间的数据传输,并暂存结果。其中的寄存器可与内部存储器间不受约束地进行数据传输。对于定点和小数操作,只有高32位数据有效,程序设计中标为:PEx内部的寄存器组:R0R15;PEy内部的寄存器组:S0S15;对于浮点操作,所有的40位数据都有效,程序设计中标为:PEx内部的寄存器组:F0F15;PEy内部的寄存器组:SF0SF15。,图2.1ADSP21160内部结构图,DAG3,PEx和PEy(SIMD),处理器,程序4,处理器核2,利用通用数据寄存器实现高度并行的指令操作,每个周期能实现多达9次的数据传输(一句内)例如:F12F0F4,F8F8F12,F9F8F12,F0DM(I1,M1),F4PM(I8,M8);上述指令执行时,首先读F0,F4的值,求出其乘积,写到F12中;然后F0,F4的值被相应存储单元的值更新,同时读F8,F12的值,求出其和、差;再分别写到F8,F9中;这样4次读操作的寄存器是:F0,F4,F8和F12;3次写操作的寄存器是:F12,F8和F9;两次存储器访问是:F0与F4。,ADSP21160具有增强型超级哈佛结构。其中数据存储器(DM),程序存储器(PM)总线即可传送数据又可传送程序指令;ADSP21160还有一个内部指令缓存;正是由于具有上面所述的结构(其程序和数据总线是分开的,并有内部指令缓存),所以该处理器可在单周期内同时取四个操作数(每套总线两个)及一条指令(从指令缓存中读取)。从而实现了单指令多数据(SIMD),2.1.2单周期取四个操作数,ADSP-21160SHARCDSP的SIMD结构,小测验,ADSP21160M中处理器核由哪几部分组成?每个处理单元的构成如何?两个处理单元中通用数据寄存器的代号(定点、浮点)?寄存器位数是多少?,数据地址产生器(DAG),在通用CPU中,数据地址的产生和数据的处理都是由ALU来完成的,而在DSP中,设置了专门的数据地址发生器(有的设置了多个数据地址发生器)来产生所需要的数据地址。数据地址的产生与CPU的工作是并行的。从而节省了CPU的时间,提高了信号处理的速度,2.1.3带有硬件循环缓冲的数据地址产生器DAG(循环寻址)与PM和DM总线,ADSP21160有两个数据地址产生器,可实现间接寻址,并可实现硬件数据循环缓冲,从而可以使数字信号处理中所需的延迟线及其它数据结构获得高效率的编程,所以常用于数字滤波及傅立叶变换。ADSP21160每个DAG有足够的寄存器(4组,每组8个寄存器,每个寄存器32位宽)。并能自动处理地址指针的回转,减小了开销,提高了性能,简化了编程,其起始地址和结束地址在存储区内可以任意指定。,两套地址产生器DAG1、DAG2分别指向DM地址总线和PM地址总线;每套DAG都配有8个地址索引寄存器Ix,8个地址修改寄存器Mx,其中:(1)索引寄存器Ix存放的地址值是指向存储器的指针;(2)修改寄存器Mx为索引寄存器的预修改和后修改提供地址增量,M与I两个寄存器相配合可以完成:(1)指令执行前的地址预修改;(2)执行完毕后地址后修改操作。,ADSP21160的两个DAG介绍1,ADSP21160的两个DAG介绍2,每个DAG中还有八个基址寄存器Bx和八个长度寄存器Lx;Bx:为环形缓冲区循环寻址提供起始地址;Lx:为环形缓冲区循环寻址提供地址范围;也就是说:Bx中存放缓冲区起始地址;Lx中存放缓冲区长度。,ADSP21160的两个DAG介绍3,注(1)对于通常的寻址方式,我们只使用I,M寄存器,而不使用B寄存器,此时L寄存器写零,环形缓冲区操作被Disable。(2)ADSP21160M在进行环形缓冲区寻址操作过程中,B寄存器被装入值时,I寄存器被同时装入相同的值;反之I寄存器被装入值时,B寄存器不被同时装入相同的值。,DAG寄存器分配情况,地址修改方式的指令操作过程,预修改示例:r1pm(m1,i5)/有效地址m1+i5dm(4,i5)=addr_1/有效地址4i5,先输出I寄存器中的地址,后修改I寄存器值,修改后的地址写入到I中,后修改示例:r1pm(i5,m1)/有效地址i5dm(i5,m1)=0 x1234/有效地址i5f5=dm(i5,6)/有效地址i5,返回,地址直接修改,MODIFY(i1,4);/将i1中的值加4后写入i1,不输出。设i1=18,则修改后的地址:i1=18+4=22;注:修改量可以是立即数(上例中的4),也可以是M寄存器中的地址值,例如:MODIFY(i1,m1)。设:m1=3,则修改后的地址:i1=18+3=21;,地址位反序,BITREV(i1,4)/将索引寄存器i1中的值加4后位反序写入i1中,但不输出。设:i1=8;则上述语句执行后i1=3;位反序寻址方式:用于快速傅立叶变换(FFT),使输出地址单元都是相应输入地址单元的位反序,以二进制地址为例:输入X1=0001,则输出X1=1000输入X2=1100,则输出X2=0011注:通过设置MODE1寄存器的BR0和BR8位(对应DAG1中的i0和i8),就可以使能位反序寻址模式。,地址位反序操作举例,BITSETMODEL1BR0;/使能寄存器i0位反序i0=0 x8a000;M0=0 x4000000;/载入后修改地址量R1DM(i0,M0);/将i0中的值0 x8a000位反序因为索引寄存器为32位,既i0=0 x0008a000;0000,0000,0000,1000,1010,0000,0000,0000位反序后为0 x00051000;0000,0000,0000,0101,0001,0000,0000,0000将该地址中的值放入R1中,然后i0M0i0;地址后修改:i0=0 x8a000+0 x4000000=0 x408a000;,PM和DM总线与PX寄存器,PX寄存器又称为总线连接器(BUSconnect);PX寄存器为PM数据总线和DM数据总线之间的数据传输提供通道(扩展哈佛结构)。另外利用PX寄存器,还可以与40位的通用数据寄存器传递数据;对于ADSP21160其PX寄存器长达64位,由PX1寄存器(低32位)和PX2(高32位)组成。,ADSP21160内部结构图,缓存返回,ADSP21160通用数据寄存器Rx与Px之间的数据传递,1.PX2/PX1与Rx,2.PX与Rx,PX与内部数据总线PM和DM之间传递数据时的对齐格式,1.PX2/PX1与PM或DM数据总线,2.PX与PM或DM数据总线,2.1.4程序控制器(PROGRAMSEQUENCER),程序控制器主要是控制程序流的执行,并为访问程序存储器提供地址;通常程序流都是顺序执行,只有遇到分支程序指令(如跳转、循环、子程序调用、中断、等待等)时才会改变执行顺序;ADSP21160片内有循环计数器和循环堆栈,控制循环间隔和评估条件指令,循环代码可以实现零开销运行。程序控制器的硬件循环结构支持多达8级的无开销嵌套循环,而且每层都可以单周期退出。,1.指令流水线操作,流水线操作指令结构为简化程序设计,提高程序代码的可维护性,增强系统整体性能带来了很大好处,消除了传统上程序取指、数据访问和乘法器操作中的瓶颈问题,提高了单周期的数据吞吐率。,指令流水操作说明,0 x010 x020 x030 x040 x05.,地址值指令,指令1指令2指令3指令4指令5.,ADSPSHARC系列处理器分支程序指令包括:1.跳转JUMP-跳到一个新地址,不需返回;2.子程序调用CALL-先将返回地址压到PC堆栈,子程序执行完毕后,返回到调用指令的地址;3.返回-中断返回(RTI)和子程序返回(RTS)两种类型;当程序运行到上述指令时,就不再顺序执行下一个顺序地址的指令,而产生分支。,2.分支程序执行,非延迟分支指令和延迟分支指令,非延迟分支指令:(1)分支指令后没有“DB”附加符;IfFLAG1_INJUMPH_1;(2)该指令后处于取指和译码阶段的两条指令将不被执行,而是插入两条NOP指令;(3)然后直接执行分支程序入口的第一条指令。,非延迟分支程序的流水操作说明,延迟分支指令,延迟分支指令:(1)分支指令后有“DB”附加符;举例:CALLDFT(DB);(2)分支指令后处于取指和译码阶段的两条指令将仍然被取指、译码和执行;(3)然后执行分支程序入口的第一条指令。,延迟分支程序的指令流水操作说明,对延迟分支指令的一些限制,由于分支指令后的两条指令只能顺序执行,因此对这两条指令的类型有一些限制:(1)不能是其它跳转、调用和返回指令;(2)不能是其他压入或者弹出堆栈指令;(3)不能是中断响应指令。,两种形式的分支指令特点,由于处理器采用流水结构,分支指令会对程序的执行效率产生影响,有两种形式的分支指令。非延迟分支指令延迟分支指令,存在两个周期的开销,降低了程序执行效率,可保证程序执行效率,但增加了程序设计的难度,3程序循环,另外一种重要的非顺序指令就是程序循环指令。ADSPSHARC系列处理器片内有专门的硬件结构来管理所有循环操作任务;能自动跟踪循环的终止条件,如果终止条件不成立,不需要任何分支开销就能自动返回到循环的开始,同时更新循环计数器;上述结构简化代码设计,节省指令执行时间,提高了循环指令的效率。,CALLdelay;.delay:lcntr=16,doendloop1untillce;lcntr=1600,doendloop2untillce;.endloop2:nop;endloop1:nop;rts;,4.指令高速缓存(INSTRUCTIONCACHE),依靠一个片内指令缓存,ADSP21160就可以完成包括取一条指令及四个操作数在内的总共三个总线操作。该缓存是可选的,仅在读指令与PM总线上的数据传输冲突时,才将该指令缓存;这就使处理器内核可以全速执行循环运算,如数字滤波器的乘累加,FFT的蝶形运算等。,指令缓存说明,以三级流水说明如下:执行:addressnf0=f3*f4,f5=PM(i9,m9);译码:addressn+1f0=f0*f5;取指:addressn+2f6=f6+f0;注:1.上述三条指令是在一个循环中;2.缓存区最多可存放32条指令。,存在冲突,指令缓存解决数据冲突,将地址n+2处的指令保存在缓存中。当处理器第一次取指冲突时,须等待1个周期,在下一周期才能将指令取出。当同一条指令再次出现冲突时,直接并行从指令缓存取指令,避免冲突,也不会出现延迟。若冲突的指令不在指令缓存中,存在一个周期的开销。,课后测试,1.对延迟分支指令后面的两条指令有哪些限制?2.DAG中有哪几种寄存器?位数是多少?地址修改的方式有哪几种?3.写出3种分支程序指令,答案,1.答:(1)不能是其它跳转、调用和返回指令;(2)不能是其他压入或者弹出堆栈指令;(3)不能是中断响应指令。2.答:DAG中分别有四种寄存器,I、M、B、L;位数是32位,地址修改方式分别为预修改和后修改。3.JUMP、CALL、RTS、RTI;,2.2ADSP21160处理器存储器,4Mb可用的内部存储空间被等量地分成两块,每块2Mb:Block0和Block1。下图显示了数据和指令字按不同字长(64、48、40、32、16位)访问时在每块中最多存储的字数。,ADSP21160内部结构图,ADSP21160处理器存储空间,ADSP21160存储器映射有三块存储空间:1.内部存储器空间:由DSP片内SRAM和存储器映射的寄存器资源构成。2.多处理器存储空间:是多片DSP处理器系统中和其它DSP相对应的内部存储器空间。3.外部存储器空间:是指与DSP相连接的片外存储器和存储器映射的I/O设备相对应的存储器空间。,2.2.1存储空间分配,1.内部存储器空间正常字地址范围(32位):0 x000000000 x0007FFFF。2.多处理器存储空间正常字地址范围:0 x001000000 x007FFFFF。3.外部存储器空间正常字地址范围:0 x008000000 xFFFFFFFF,ADSP21160存储空间图,2.2.2ADSP21160内部存储器,ADSP21160内部存储器包括4个地址空间(64位字长):1.I/O处理器寄存器映射地址空间:0 x000 xFF是256个I/O寄存器的映射地址空间,这些寄存器控制着系统的配置和I/O操作。2.保留的I/O存储区:0 x1000 x1FFF。不可访问。,ADSP21160内部存储器,3.块0存储区:0 x200000 x27FFF。4.块1存储区:0 x280000 x2FFFF。5.保留(别名)存储区:0 x300000 x3FFFF其中0 x300000 x37FFF为块0别名存储区,0 x380000 x3FFFF为块1别名存储区。注:对两个别名存储区的访问都会访问相应块0、块1。,ADSP21160内部存储器映射,支持对存储器的16位短字、32位正常字、40位扩展精度字或48位指令字和64位长字的访问;注意:它们指的实际上是同一物理存储区。下图详细说明了不同字宽的地址范围对应情况。可以看出当用40位扩展精度和48位指令字正常寻址时,存在某些“不存在”的存储带。,ADSP21160内部存储器按不同字长配置图,ADSP21160外部存储空间可以由DM、PM和I/O总线通过外部端口进行读写。DAG1、DAG2和I/O处理器产生32位地址,可以完全寻址片外4G的存储空间。ADSP21160存储空间图说明了其外部存储空间分为5组:由03组和无分组存储空间组成;,ADSP21160外部存储器映射,ADSP21160外部存储器映射,其中03组通过片选信号MS3MS0选择访问;对无分组外部存储区的访问不需要片选信号,只需存储器地址。同时外部存储区也可以作为EPROM加载区和DRAM页控制。,ADSP21160外部存储空间,ADSP21160存储器组织,ADSP21160存储器基本的存储单元是16位字宽的存储列单元。在ADSP211602M位的存储器块阵列中,每行有4个存储列单元,单列存储列单元长度32K。因此,对于64位长字配置,4个存储列单元刚好构成一组64位长字,则长字寻址长度为32K。,ADSP21160存储器组织续,如果配置为32位正常字,4个列单元刚好构成2组32位正常字,其寻址长度为64K。如果配置为16位短字,4个存储列单元构成4组16位短字,其寻址长度为128K。对于48位的指令字配置,ADSP则采用了旋转配置的方式,3列数据在4列存储阵列中进行旋转配置,其结构如下图所示。,ADSP2116048位指令字旋转配置图,ADSP21160存储器访问,ADSP21160片内有4Mb的双端口存储器可以按:64位(长字);48位(指令字);40位扩展精度字;32位正常字;16位短字;这样几种不同字宽的模式进行访问。,ADSP21160存储器访问续,1.64位强制长字访问模式:例1:R6DM(0 x050015)(LW);(R6和R7相邻)说明(正常字寻址每个地址单元为32位)(1)由于指令中指明的是奇数地址单元,则将该奇数地址单元地址减一的偶数存储器地址单元的值放到总线的高32位,并传送到指令中指明的寄存器里;0 x050014地址单元的值R6(2)而该奇数地址单元中的值放到总线的低32位,传输到未指明的相邻寄存器里。0 x050015地址单元的值R7,长字访问的相邻寄存器配对表,内部存储器强制长字访问小结,综上所述,在内部存储器强制的长字传输中:(1)存储器偶数地址单元的值总是与指令中指明的寄存器相互传递数据;(2)而其相邻的奇数地址单元总是与指令中未指明的相邻寄存器间传递数据。(3)指令中指明的是偶数地址单元,则该地址单元加1为相应奇数地址单元;(4)指令中指明的是奇数地址单元,则该地址单元减1为相应的偶数地址单元。,例2R11DM(0 x050014)(LW);(R10和R11相邻)将地址单元0 x050014中的值R11,将地址单元0 x050015中的值R10。例3DM(0 x050000)R2(LW);(R2和R3相邻)将R2中的值地址单元0 x050000;将R3中的值地址单元0 x050001。例4DM(0 x050001)R3(LW);(R2和R3相邻)将R3中的值地址单元0 x050000;将R2中的值地址单元0 x050001。,外部存储器长字传输时寄存器相邻和存储地址单元相邻情况与内部存储器传输相同,例:R10=DM(0 x00800005)(LW);将地址单元0 x00800004中的值R10;将地址单元0 x00800005中的值R11;(R10和R11相邻),2.48位指令字与40位扩展精度字访问,ADSP21160对片内存储器40位扩展精度字的访问与对48位指令字的访问一致。当用PX寄存器时,PX寄存器与PM总线的高48位传输指令字。如果设置SYSCON寄存器:IMDWx1则该内部存储区块进行40位扩展精度字访问,这时和正常字寻址一样,只需给出正常字寻址地址。,3.32位正常字访问,如果SYSCON寄存器的IMDWx设置为0,则表示对该内部存储块进行32位正常字访问。这时程序可以访问内部、外部和多处理器存储空间,不受限制。,4.16位短字访问程序仅可以使用16位短字格式访问内部存储区,不能访问外部存储空间和多处理器存储空间。,SIMD模式,将同一条指令同时发送到两个处理单元;从存储器载入两组操作数分别送到两个处理单元;同时在两个处理单元里执行同一条指令;将两个运算输出结果同时保存到存储器中;,MODE1模式控制寄存器的PEYEN位控制SIMD模式的使能。该位置1,使能处理单元PEy,也就使能了SIMD;否则禁止处理单元PEy,处理器工作于SISD模式。当使能SIMD后,处理器可以执行如下并行操作:,互补寄存器,SISD与SIMD寄存器数据传输比较表,SIMD模式内部存储器访问说明表,课后测试,1.ADSP21160M外部存储空间是从哪个地址开始的?由哪几部分组成?ADSP21160M芯片上MS0MS3这4个引脚的作用是什么?2.ADSP21160M双端口存储器的容量是多少?可按哪几种不同字宽模式访问?3.试写出下面64位长字访问语句执行中,存储单元和寄存器之间是如何交换数据的。R1

温馨提示

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

最新文档

评论

0/150

提交评论