您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > DSP-03CPU与存储器详解
30第三章总线、CPU结构及存贮的配置PABDRABDWABPRDBDRDBDWEB外部地址总线外部数据总线总线结构:PAB:程序地址总线,程序空间地址DRAB:程序读总线,程序存储器内容CPUDWAB:数据写地址总线,写数据空间时的地址PRAB:数据读地址总线,读数据空间时的地址DRDB:数据读总线,数据存储器内容CPUDWEB:数据写总线,数据数据存储器或程序存储器31§3.1中央处理单元中央处理单元CPU辅助寄存器算术单元输入比例部分(输入定标单元)中央处理单元中央算术逻辑运算部分乘法器部分①CPU的任务是从程序读总线(PRDB)或数据读总线(DRDB)获取数据②经过加、乘、移位等运算③再经数据写总线(DWEB)将结果送出32移位器(32位)输入定标器部分将16位输入与32位的CALU的数据对齐TRGE乘法器16X16PREG乘积移位器(32)CALUACC(累加器)C输出移位器32位)算术逻辑运算部分完成加减移位逻辑运算数据写总线数据读总线程序读总线MVX:多路转换器DWEB(16)DRDB(16)PRDB(16)乘法器部分1616161616161616161161323232323232MVXMVXMVX临时寄存器乘法寄存器33(1)输入定标移位器:①完成数据的移位和扩展,以便与32位的CALU格式对齐.②来自DRDB的立即数(立即寻址),或PRDB总线上的指令操作数与CALU中的数据匹配.③将输入左移0-16位.移位次数由指令给出或由TRGE(临时寄存器)的低四位给出(直接寻址)(间接寻址).④符号扩展二进制数以二进制有符号数的补码表示,由状态寄存器ST1中的SXM位决定SXM=0不扩展SXM=1扩展34(3)乘法单元:1.16位X16位硬件乘法器.一个周期内完成乘法运算2.TREG为临时寄存器.将乘数与来自PRDB或DRDB中的被乘数在乘法器中相乘,乘积为32位.送PREG.PREG为乘法寄存器.将结果送CALL前,在乘法移位器中进行移位定标有四种形式移位.由ST1中的PM两位决定PM=00时不移位乘积送CALU或数据写总线PM=01时左移1位移去补码乘法产生的额外符号位产生Q31格式的乘积,Q31为32位有符号小数的标准格式,最高为符号位.其后为小数点,仍限31位有效数字.PM=10时左移4位移去16位乘13位常数时,二进制补码乘法产生的额外4位符号位,产生Q31格式的乘积PM=11时右移6位把乘积定标.使最多做128次乘法累加而不导致累加器溢出,右移时总要进行符号扩展.35(3)中央算术逻辑单元32位CALU32位ACC32位输出移位器两个输入来自累加器和移位器或乘积移位器实现加减与或位测试输出移位器拷贝累加的内容并进行移位(0-7)高16位或低16位送数据存贮器中36§3.2辅助寄存器算术单元CPU中还有一个辅助寄存器算术单元ARAU主要功能是与中央处理单元并行工作,对8个辅助寄存器(AR0-AR7)进行算术运算8个辅助寄存器为DSP提供间接寻址方式,由状态寄存器的ARP(STO)决定,称ARP为辅助寄存器(AR0-AR7)的内容(16位)为要访问的数据存贮器地址37ARAU完成以下运算:1.辅助寄存器内容+1/-1或增/减一个变址量(间接寻址指令决定)2.增/减一常数(指令字的低8位决定)3.AR0与当前AR相比较,比较结果经数据写数据总线(DWEB)送到ST1的测试/控制位(TC)ARAU的其它用途1.通过CMPR指令AR与AR0作为测试条件,支持分支调用返回2.作为软件计数器进行加/减3.作为暂时寄存器,暂存数据。使用LAR装载数据,用SAR送数据存储器ARAU的运算通常在译码阶段进行为能在下条指令译码这前产生地址38数据读总线(DRDB)MVXARBARP指令寄存器MVXAR7AR0ARAU数据写总线(DWEB)数据读地址总线(DRAB)数据写地址总线(DWAB)ST1(13-15)ST0(13-15)16161616168333339§3.3状态寄存器DSP有两个状态寄存ST0和ST1可用专用指令LST和SST保存和装载至存贮器ARPOVOVM1INTMDP1513121110980ST0ARBCNFTCSXMC1111XF11PM15131211109876543210ST1ARP:辅助寄存器指针:ARP装载时,原ARP值复制到ARBARB:辅助寄存器指针缓冲器:LST指令装载ARB时同时装载ARPOV:溢出标志:复位为040OVM:溢出方式:OVM=0时,ACC正常溢出,OVM=1时,ACC溢出时置为最大正值7FFFFFFF或最大负值80000000HINTM:中断方式:0:使能中断1:屏蔽中断不受LST指令影响,复位时为1对RS、NM1无效。DP:数据存贮器页面指针,形成直接寻址的页地址(高9位)。CNF:DARAM配置方式:O:DARAM配置为数据空间。1:DARAM配置为程序空间,复位为0TC:测试/控制标志:测试位=1则TC=1,条件为真。复位时=0SXM:符号扩展位:SXM=1符号扩展,SXM=0符号不扩展。复位为=1C:进位位,加法时有进位C=1,减法时没有借位时C=1,复位时C=1XF:引脚状态位,复位时XF=1PM:乘积移位模式,复位时清041§3.4存贮器与I/O空间TMS320LF240X系列为增强的哈佛结构,由三组总线并行访问多个存贮空间程序地址总线PAB数据读地址总线DRAB数据写地址总线DWABDSP采用独立的程序存贮器、数据存贮器和I/O空间即可以有相同的地址,访问通过不同的控制线来区分,其中数据分为局部空间和全局空间(局部数据存贮器,全局数据存贮器,受全局存贮器分配寄存器(GREG)的控制,240T保留GREG)4个独立的选择空间64K字程序空间:指令及执行指令时需要的数据64K字局部数据空间(240T为片内32K字0000-7FFFH)32K字全局数据空间(片外32K字8000H-FFFFH)(2407保留)64K字I/O空间任意一组可以访问不同的程序空间,每组互相独立,并行工作42§3.5与片外存贮器和I/O空间的接口信号1.外部数据、地址总线D0-D15,A0-A1。2.片选信号、区分内部还是外部访问,是程序、数据,还是I/O空间DS:外部数据空间有效PS:外部程序空间有效IS:I/O空间选择有效STRB:外部访问有效(B/R访问外部全局数据空间有效)(2407器件没有)3.读/写信号指明数据传送方向和读/写操作R/W:指明数据方向。W/R:具有内部上拉的指明数据方向。WE:写使能信号下沿驱动D0-D15RD:读便能信号4.请求/控制信号实现特殊操作MP/MC:模式选择READY:外围器件准备好43§3.6程序存贮器中断向量32Kflash/Rom外部保留(CAN=1)(外部CAN=0)DARAM(B0)(CAN=1)(外部CAN=0)Reset中断级123456保留软件中断TRAPNMI保留软件中断0000H∫003FH0040H7FFFH8000HFDFFHFE00HFEFFHFF00H∫FFFFH64W16个字18个字2个字2个字2个字2个字24个字0000-00010002-00034-56-78-9A-BC-DE-F10-2122-2324-2526-2728-3F64K25625644§3.7I/O空间外部保留/非法flash控制模式寄存器保留等待状态发生控制寄存器向量空间flash......BO块1个字1个字0000H∫FEFFFF00∫FF0EFF0F∫FF10∫FFFEFFFF0000003F0040∫00430044∫7FFFFF00FFFF64字节保留4B32K-68B256B68B45存贮器映射寄存器(专用寄存器)和保留片内DARAMB2保留/乘法保留片内DARAMBOCNF0(CNF=0保留)片内DARAMB1保留非法SARAM(2K)非法片内外设专用寄存/(I/O功能寄存器)片内外设专用寄存器2非法片内外设专用寄存器3非法保护口令保留保留外部数据存贮器保留中断屏蔽寄存器保留中断标志寄存器仿真寄存器及保护区通用定时寄存器比较PWM死区寄存器捕获和QEP寄存器中断屏蔽向量标志寄存器非法通用定时寄存器通用定时寄存器通用定时寄存器通用定时寄存器保留专用寄存器B2保留空间B0B1…SARAM非法空间I/O功能寄存器及保留空间非法系统配置和控制寄存器看门狗定时器实时时钟和PLL控制寄存器非法SPISCI非法外部中断寄存器非法数字I/O控制寄存器ADC控制寄存器非法CAN控制寄存器非法CAN数据缓冲器非法事件处理器EVB事件处理器EVA0000∫005F0060∫007F0080∫00FF0100∫01FF0200∫02FF0300∫03FF0400∫04FF0500∫07FF0800∫0FFF1000∫6FFF7000∫73FF7400∫743F7440∫74FF7500∫753F7540∫77EF77F0∫77F377F4∫77FF7800∫7FFF8000∫FFFF32字256字256字32字2K1K64字64字1K4字32K*访问非法地址引起非屏蔽NMI中断保留地址为测试保留访问进行写操作可能引起工作方式的改变*CNF决定数据存贮器配置CNF=1时B0块映射为片外程序空间CNF=0时B0块映射为片内程序空间复位时CNF=000000004000500060007∫005F7000~700F7010~701F7020~702F7030~703F7040~704F7050~705F7060~706F7070~707F7080~708F7090~709F70A0~70BF70C0~70FF7100~710E7200~722F7230~73FF7400~74087411~74197420~7429742C~74317432~743F7500~75087511~75197520~7529752C~75317532~753F0060∫007F0800∫0FFF70007FFF0200∫02FF0300∫03FF64字96B256B32B256B2K30K40K4K8.数据存贮器46DSP对数据存贮器的寻址可采用间接寻址和按页进行直接寻址直接寻址时按128为一页(数据页)对数据存贮器进行寻址由STO中的DP(9位)确定16位地址的高9位由指令给出偏移量(7位)共512页一般把同一类数据放在同一类页中0页地址0000-007FH1页地址0080-00FFH2页地址0100-017FH...512地址FF80-FFFFH47§3.9程序存贮器(1)程序控制程序是顺序存放,顺序执行以及支持调用、返回、复位、中断、转移。顺序执行:PC:程序地址指针复位时PC=0000HPC的内容PARPAB(总线)CPU获取指令分支转移指令:由内部硬件把指令中的跳转地址(立即寻址或累加器低16位)PC子程序调用:入口地址送PC同时下一条断点地址送堆栈堆栈为8级硬件中断48软件中断:向量地址送PC同时断点地址送堆栈块传送/表传送:使PC源地址(目的地址)+1送微堆栈用微堆栈(一级深)保护返回地址(不对用户操作)PRDB总线:转移或调用时使用PRDB的转移调用指令中断时使用PRDB的中断向量存贮单元DRDB总线:在转移和调用累加器低16位规定地址时,使用DRDB栈顶TOS:子程序返回中断返回栈底MSTACK:块表的返回49DSP控制器程序地址的产生下一条程序地址寄存器程序计数器PC/NPRR+1程序地址寄存器微堆栈表/块移动程序控制栈顶堆栈8X16MVXMVXMSTACK顺序执行框中断调用分支程序读总线(PRDB)数据读总线(DRDB)转移调用(ACC调用)(ACC转移)程序地址总线(PAB)数据写总线(PWEB)PUSHPOPDPARNPARPC50§3.10堆栈16位宽8级深度的硬件堆栈:硬件在子程、中断、返回时自动返回地址。用户访问堆栈的两组指令:pushpop对ACC的低位字操作pushDpopD对数据存贮器的操作§3.11微堆栈对块传递、表传递中
本文标题:DSP-03CPU与存储器详解
链接地址:https://www.777doc.com/doc-4667674 .html