典型DSP系统设计芯片介绍.ppt
《典型DSP系统设计芯片介绍.ppt》由会员分享,可在线阅读,更多相关《典型DSP系统设计芯片介绍.ppt(84页珍藏版)》请在沃文网上搜索。
1、DSP系统设计主讲:杜建铭 教授第二章第二章典型典型DSP芯片祥解芯片祥解2.1ADSP21160处理器核处理器核2.2ADSP21160处理器存储器处理器存储器2.3ADSP21160寄存器寄存器2.4ADSP21160中断逻辑和定时器中断逻辑和定时器 2.5ADSP21160串行口串行口/DMA及链路口及链路口 2.6ADSP21160主机接口与主机接口与ISA总线总线 2.1ADSP21160处理器核处理器核vADSPSHARC系列处理器是构建在系列处理器是构建在ADSP21000DSP核的基础上,形成一核的基础上,形成一个完整个完整SoC。v(SystemonChip,中文称为系统,中
2、文称为系统集成到芯片上或片上系统);集成到芯片上或片上系统);v有一个双口的在片有一个双口的在片SRAM;v加上集成周边加上集成周边IO和为单指令多数据和为单指令多数据(SIMD)提供支持的附加处理单元。提供支持的附加处理单元。v处理器核是由以下几个部分组成:处理器核是由以下几个部分组成:(1)两个处理器单元;)两个处理器单元;(2)1个程序控制器;个程序控制器;(3)2个数据地址产生器;个数据地址产生器;(4)1个定时器;个定时器;(5)1个指令缓存;个指令缓存;所有数字信号处理都在处理器核里实现。所有数字信号处理都在处理器核里实现。2.1ADSPSHARC系列处理器核系列处理器核2.1.1
3、处理单元的构成处理单元的构成(两个处理单元两个处理单元):v每个处理单元包含:每个处理单元包含:(1)算术逻辑单元(算术逻辑单元(ALU););(2)乘法器;乘法器;(3)移位器;移位器;(4)通用数据寄存器组;通用数据寄存器组;v算术逻辑单元算术逻辑单元(ALU)(ALU)、乘法器、乘法器(Multiplier)(Multiplier)、移位器移位器(Shifter)(Shifter)在结构上并行排列,分别完在结构上并行排列,分别完成加、减、乘和逻辑移位运算等操作;成加、减、乘和逻辑移位运算等操作;v指令执行时间都是指令执行时间都是1 1个周期;个周期;v任何一个单元的输出都可以在下一个周期
4、作为任何一个单元的输出都可以在下一个周期作为本单元或其他单元的输入。本单元或其他单元的输入。处理单元的构成处理单元的构成(续续)算术逻辑单元算术逻辑单元(ALU)(ALU)vALU指令包括定点和浮点加、减、取平均、取绝对值、取反及定浮点转换等。v对于定点操作,有逻辑与、或、非、异或等。v对于浮点操作,有取对数、平方根、倒数等。v输入的操作数可以是1个或2个,在时钟周期的前半周期操作数从数据寄存器送入ALU,在后半周期将运算结果输出到数据寄存器。乘法器乘法器(Multiplier)(Multiplier)v浮点乘v定点乘v乘法器与ALU、数据寄存器的结合,使处理器能在1个周期内实现多功能并行计算
5、(如乘/累加操作,可大大提高数字滤波与FFT的运算速度)。移位器移位器(Shifter)(Shifter)进行逻辑移位或算术移位、位段存取、位清零、置位、测试、取反等操作。通用数据寄存器通用数据寄存器用于运算单元与数据总线间的数据传输,并存取中间结果。2.1.1处理单元的构成处理单元的构成(续续)每个处理单元中各包含一个通用数据寄存器组每个处理单元中各包含一个通用数据寄存器组40位宽,位宽,每组每组32个寄存器(个寄存器(16个主,个主,16个辅)用个辅)用于运算单元和数据总线间的数据传输,并暂存结果。于运算单元和数据总线间的数据传输,并暂存结果。其中的寄存器可与内部存储器间不受约束地进行数其
6、中的寄存器可与内部存储器间不受约束地进行数据传输。据传输。对于定点和小数操作,只有高对于定点和小数操作,只有高32位数据有效位数据有效,程序设计中标为:程序设计中标为:PEx内部的寄存器组:内部的寄存器组:R0R15;PEy内部的寄存器组:内部的寄存器组:S0S15;对于浮点操作,所有的对于浮点操作,所有的40位数据都有效,程序位数据都有效,程序设计中标为:设计中标为:PEx内部的寄存器组:内部的寄存器组:F0F15;PEy内部的寄存器组:内部的寄存器组:SF0SF15。图图2.1ADSP21160内部结构图内部结构图DAG 3PEx和和PEy(SIMD)处理处理器器程序程序4处理器处理器核核
7、2利用通用数据寄存器实现高度并行的指令操作利用通用数据寄存器实现高度并行的指令操作v每个周期能实现多达每个周期能实现多达9次的数据传输次的数据传输(一句内)例如:(一句内)例如:F12F0F4,F8F8F12,F9F8F12,F0DM(I1,M1),),F4PM(I8,M8););上述指令执行时,首先读上述指令执行时,首先读F0,F4的值,求出其乘积,写的值,求出其乘积,写到到F12中;中;然后然后F0,F4的值被相应存储单元的值更新,同时读的值被相应存储单元的值更新,同时读F8,F12的值,求出其和、差;再分别写到的值,求出其和、差;再分别写到F8,F9中;中;这样这样4次读操作的寄存器是:
8、次读操作的寄存器是:F0,F4,F8和和F12;3次写操作的寄存器是:次写操作的寄存器是:F12,F8和和F9;两次存储器访问是:两次存储器访问是:F0与与F4。vADSP21160具有增强型超级哈佛结构。其中具有增强型超级哈佛结构。其中数据存储器(数据存储器(DM),程序存储器(),程序存储器(PM)总线)总线即可传送数据又可传送程序指令;即可传送数据又可传送程序指令;vADSP21160还有一个内部指令缓存;还有一个内部指令缓存;v正是由于具有上面所述的结构(其程序和数正是由于具有上面所述的结构(其程序和数据总线是分开的,并有内部指令缓存),所以据总线是分开的,并有内部指令缓存),所以该处
9、理器可在单周期内同时取四个操作数(每该处理器可在单周期内同时取四个操作数(每套总线两个)及一条指令(从指令缓存中读取)套总线两个)及一条指令(从指令缓存中读取)。从而实现了单指令多数据(。从而实现了单指令多数据(SIMD)2.1.2单周期取四个操作数单周期取四个操作数ADSP-21160 SHARC DSP 的SIMD结构小测验vADSP 21160M中处理器核由哪几部分组成?v每个处理单元的构成如何?v两个处理单元中通用数据寄存器的代号(定点、浮点)?寄存器位数是多少?数据地址产生器数据地址产生器(DAG)DAG)v在通用CPU中,数据地址的产生和数据的处理都是由ALU来完成的,而在DSP中
10、,设置了专门的数据地址发生器(有的设置了多个数据有的设置了多个数据地址发生器地址发生器)来产生所需要的数据地址。数据地址的产生与CPU的工作是并行的。从而节省了CPU的时间,提高了信号处理的速度 2.1.3带有硬件循环缓冲的数据地址产生器带有硬件循环缓冲的数据地址产生器DAG(循环寻址)与(循环寻址)与PM和和DM总线总线vADSP21160有两个数据地址产生器,可实现有两个数据地址产生器,可实现间接寻址,并可实现硬件数据循环缓冲,从而间接寻址,并可实现硬件数据循环缓冲,从而可以使数字信号处理中所需的延迟线及其它数可以使数字信号处理中所需的延迟线及其它数据结构获得高效率的编程,所以常用于数字滤
11、据结构获得高效率的编程,所以常用于数字滤波及傅立叶变换。波及傅立叶变换。vADSP21160每个每个DAG有足够的寄存器(有足够的寄存器(4组,组,每组每组8个寄存器,每个寄存器个寄存器,每个寄存器32位宽)。位宽)。v并能自动处理地址指针的回转,减小了开销,并能自动处理地址指针的回转,减小了开销,提高了性能,简化了编程,其起始地址和结束提高了性能,简化了编程,其起始地址和结束地址在存储区内可以任意指定。地址在存储区内可以任意指定。v两套地址产生器两套地址产生器DAG1、DAG2分别指向分别指向DM地地址总线和址总线和PM地址总线地址总线;v每套每套DAG都配有都配有8个地址索引寄存器个地址索
12、引寄存器Ix,8个地个地址修改寄存器址修改寄存器Mx,其中,其中:v(1)索引寄存器索引寄存器Ix存放的地址值是指向存储器的存放的地址值是指向存储器的指针;指针;v(2)修改寄存器修改寄存器Mx为索引寄存器的预修改和后为索引寄存器的预修改和后修改提供地址增量,修改提供地址增量,vM与与I两个寄存器相配合可以完成:两个寄存器相配合可以完成:(1)指令执行前的地址预修改;)指令执行前的地址预修改;(2)执行完毕后地址后修改操作。)执行完毕后地址后修改操作。ADSP21160的两个的两个DAG介绍介绍1ADSP21160的两个的两个DAG介绍介绍2v每个每个DAG中还有八个基址寄存器中还有八个基址寄
13、存器Bx和八个长和八个长度寄存器度寄存器Lx;vBx:为环形缓冲区循环寻址提供起始地址;:为环形缓冲区循环寻址提供起始地址;vLx:为环形缓冲区循环寻址提供地址范围;:为环形缓冲区循环寻址提供地址范围;v也就是说:也就是说:Bx中存放缓冲区起始地址;中存放缓冲区起始地址;Lx中存放缓冲区长度。中存放缓冲区长度。ADSP21160的两个的两个DAG介绍介绍3注注(1)对于通常的寻址方式,我们只使用对于通常的寻址方式,我们只使用I,M寄存器,而不使用寄存器,而不使用B寄存器,寄存器,此时此时L寄存器写寄存器写零,环形缓冲区操作被零,环形缓冲区操作被Disable。(2)ADSP21160M在进行环
14、形缓冲区寻址在进行环形缓冲区寻址操作过程中,操作过程中,B寄存器被装入值时,寄存器被装入值时,I寄存器被寄存器被同时装入相同的值;反之同时装入相同的值;反之I寄存器被装入值时,寄存器被装入值时,B寄存器不被同时装入相同的值。寄存器不被同时装入相同的值。DAG寄存器分配情况地址产生器地址产生器DAG1寄存器寄存器(DM)()(32位)位)地址产生器地址产生器DAG2寄存器寄存器(PM)(32位)位)I0I7I8I15M0M7M8M15B0B7B8B15L0L7L8L15地址修改方式的指令操作过程地址修改方式的指令操作过程预修改示例:预修改示例:r1pm(m1,i5)/有效地址有效地址m1+i5d
15、m(4,i5)=addr_1/有效地址有效地址4i5先先输输出出I寄寄存存器器中中的的地地址址,后后修修改改I寄寄存存器器值值,修修改改后后的的地地址址写入到写入到I中中后修改示例:后修改示例:r1pm(i5,m1)/有效地址有效地址i5dm(i5,m1)=0 x1234/有效地址有效地址i5f5=dm(i5,6)/有效地址有效地址i5返回返回IMI只只输输出出地地址址MI,I寄寄存存器器值不更新值不更新MI地址直接修改地址直接修改vMODIFY(i1,4);/将将i1中的值加中的值加4后写入后写入i1,不输出。,不输出。设设i1=18,则修改后的地址:,则修改后的地址:i1=18+4=22;
16、注:修改量可以是立即数(上例中的注:修改量可以是立即数(上例中的4),也),也可以是可以是M寄存器中的地址值,例如:寄存器中的地址值,例如:MODIFY(i1,m1)。设:设:m1=3,则修改后的地址:,则修改后的地址:i1=18+3=21;地址位反序地址位反序vBITREV(i1,4)/将索引寄存器将索引寄存器i1中的值加中的值加4后位反序写入后位反序写入i1中,但不输出。中,但不输出。设:设:i1=8;则上述语句执行后;则上述语句执行后i1=3;v位反序寻址方式:用于快速傅立叶变换(位反序寻址方式:用于快速傅立叶变换(FFT),使输出地),使输出地址单元都是相应输入地址单元的位反序,以二进
17、制地址为例址单元都是相应输入地址单元的位反序,以二进制地址为例:输入输入X1=0001,则输出则输出X1=1000输入输入X2=1100,则输出则输出X2=0011注:通过设置注:通过设置MODE1寄存器的寄存器的BR0和和BR8位位(对应对应DAG1中中的的i0和和i8),就可以使能位反序寻址模式。,就可以使能位反序寻址模式。地址位反序操作举例地址位反序操作举例vBITSETMODEL1BR0;/使能寄存器使能寄存器i0位反序位反序vi0=0 x8a000;vM0=0 x4000000;/载入后修改地址量载入后修改地址量vR1DM(i0,M0);/将将i0中的值中的值0 x8a000位反序位
18、反序v因为索引寄存器为因为索引寄存器为32位,既位,既i0=0 x0008a000;v0000,0000,0000,1000,1010,0000,0000,0000v位反序后为位反序后为0 x00051000;v0000,0000,0000,0101,0001,0000,0000,0000v将该地址中的值放入将该地址中的值放入R1中,然后中,然后i0M0i0;v地址后修改:地址后修改:i0=0 x8a000+0 x4000000=0 x408a000;PM和和DM总线与总线与PX寄存器寄存器vPX寄存器又称为总线连接器(寄存器又称为总线连接器(BUSconnect););vPX寄存器为寄存器为
19、PM数据总线和数据总线和DM数据总线之间的数据总线之间的数据传输提供通道(扩展哈佛结构)。数据传输提供通道(扩展哈佛结构)。v另外利用另外利用PX寄存器,还可以与寄存器,还可以与40位的通用数据位的通用数据寄存器传递数据;寄存器传递数据;v对于对于ADSP21160其其PX寄存器长达寄存器长达64位,由位,由PX1寄存器(低寄存器(低32位)和位)和PX2(高(高32位)组成。位)组成。ADSP21160内部结构图内部结构图缓存返回ADSP21160通用数据寄存器Rx与Px之间的数据传递通用数据寄存器通用数据寄存器8个个03907PX2/PX1310通用数据寄存器通用数据寄存器(40位扩展精度
20、位扩展精度)390PX24个个063024231.PX2/PX1与与Rx2.PX与与RxPX与内部数据总线PM和DM之间传递数据时的对齐格式63031PM或或DM数据总线数据总线310PX2/PX1630PM或或DM数据总线数据总线630PX1.PX2/PX1与与PM或或DM数据总线数据总线2.PX与与PM或或DM数据总线数据总线2.1.4程序控制器程序控制器(PROGRAMSEQUENCER)v程序控制器主要是控制程序流的执行,并为访问程序存储器提供地址;v通常程序流都是顺序执行,只有遇到分支程序指令(如跳转、循环、子程序调用、中断、等待等)时才会改变执行顺序;vADSP21160片内有循环
21、计数器和循环堆栈,控制循环间隔和评估条件指令,循环代码可以实现零开销运行。v程序控制器的硬件循环结构支持多达8级的无开销嵌套循环,而且每层都可以单周期退出。1.指令流水线操作指令流水线操作 流水线操作指令结构为简化程序设计,提高程序代码的可维护性,增强系统整体性能带来了很大好处,消除了传统上程序取指、数据访问和乘法器操作中的瓶颈问题,提高了单周期的数据吞吐率。指令流水操作说明指令流水操作说明0 x010 x020 x030 x040 x05.周期数周期数取指取指译码译码执行执行10 x0120 x020 x0130 x030 x020 x0140 x040 x030 x0250 x050 x0
22、40 x03.地址值地址值指令指令指令指令1指令指令2指令指令3指令指令4指令指令5.ADSP SHARC系列处理器分支程序指令包括:1.1.跳转跳转JUMP-JUMP-跳到一个新地址,不需返回;2.2.子程序调用子程序调用CALL-CALL-先将返回地址压到PC堆栈,子程序执行完毕后,返回到调用指令的地址;3.3.返回返回-中断返回(RTI)和子程序返回(RTS)两种类型;当程序运行到上述指令时,就不再顺序执行 下一个顺序地址的指令,而产生分支。2.分支程序执行非延迟分支指令和延迟分支指令非延迟分支指令和延迟分支指令v非延迟分支指令:非延迟分支指令:(1 1)分支指令后没有)分支指令后没有“
23、DBDB”附加符;附加符;IfIf FLAG1_IN FLAG1_IN JUMPJUMP H_1 H_1;(2 2)该指令后处于取指和译码阶段的两)该指令后处于取指和译码阶段的两 条指令将不被执行,而是插入两条条指令将不被执行,而是插入两条 NOPNOP指令;指令;(3 3)然后直接执行分支程序入口的第一)然后直接执行分支程序入口的第一 条指令。条指令。IfFLAG1_INJUMPH_1周期周期取指取指译码译码执行执行R3=50001R2=1R3=5000IfFLAG1_INJUMPH_1R2=12R2=2/标号标号H_1R2=1NOPMODIFY(I9,2000)3R3=2500R2=2/标
24、号标号H_1NOPH_1:R2=24MODIFY(I9,1000)R3=2500R2=2/标号标号H_1R3=25005MODIFY(I9,1000)R3=2500MODIFY(I9,1000)6.MODIFY(I9,1000).非延迟分支程序的流水操作说明延迟分支指令延迟分支指令v延迟分支指令:延迟分支指令:(1 1)分支指令后有)分支指令后有“DBDB”附加符;附加符;举例:举例:CALL CALL DFT(DB)DFT(DB);(2 2)分支指令后处于取指和译码阶段的两条)分支指令后处于取指和译码阶段的两条 指令将仍然被取指、译码和执行;指令将仍然被取指、译码和执行;(3 3)然后执行分
25、支程序入口的第一条指令。)然后执行分支程序入口的第一条指令。延迟分支程序的指令流水操作说明延迟分支程序的指令流水操作说明L1=1周期周期取指取指译码译码执行执行CALLDFT(DB)1I2=realCALLDFT(DB)L1=1I2=real2L2=0I2=realCALLDFT(DB)L2=03B8=sine/标号标号DFTL2=0I2=real.DFT:B8=sine4L8=sineB8=sine/标号标号DFTL2=0L8=sine5B9=sineL8=sineB8=sine/标号标号DFTB9=sine6I9=sine+N/4B9=sineL8=sineI9=sine+N/4.对延迟分
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 典型 DSP 系统 设计 芯片 介绍