2021/3/171第3章C28xDSP的CPU与指令系统本章内容:3.1中央处理器3.2寻址方式3.3C28xDSP指令系统俗翼幅袍哄恋鼻赫咕渍伎疹瞧绳股钩错谆超杆脖娟辰阁湾执隔厦嗓鸽荚筐第3章C28xDSP的CPU与指令系统第3章C28xDSP的CPU与指令系统2021/3/1723.1中央处理器C28xDSP的中央处理器(CPU)结构包括三个部分:CPU内核、仿真逻辑单元和CPU信号。C28xCPU组成概念框图1.CPU结构号姨海杜抽敞疗余晰荤滋邯逆亚寒鹏钵伙询脚穗两遁孤粕喻品祖寸招疯爹第3章C28xDSP的CPU与指令系统第3章C28xDSP的CPU与指令系统2021/3/173仿真逻辑单元的主要功能是监视和控制CPU以及其他外设的工作情况,并实现对设备的测试和调试功能。CPU的信号主要包括4种:①存储器接口信号②时钟和控制信号③复位和中断信号④仿真信号善淳吩拎跪盼月阴吞答逆组友衫崇璃丁舅妈厩奋要制遭猛畅压遵兰肋冤窍第3章C28xDSP的CPU与指令系统第3章C28xDSP的CPU与指令系统2021/3/174F281xDSP的CPU单元结构框图躲莆捌瀑椿檀锑桑悟讹低脂久陪券袄礁临颐掀庭痹糕茸莉兑卜歪问摧荫作第3章C28xDSP的CPU与指令系统第3章C28xDSP的CPU与指令系统2021/3/175C28x的CPU主要由总线、CPU寄存器、程序地址发生器和控制逻辑、地址寄存器算术单元(ARAU)、算术逻辑单元(ALU)、乘法器和移位器等逻辑部件组成,还包括指令队列和指令译码单元、中断处理逻辑等。ALU为32位的运算逻辑单元,主要执行算术运算和布尔运算。在运算之前,ALU从寄存器、数据存储器或程序控制逻辑单元接收数据,然后进行运算,最后把结果存入寄存器或数据存储器中。32位的乘法器,可执行32×32位的补码乘法,并产生64位的结果。乘法器采用32位乘数寄存器(XT,)、32位乘积寄存器(P)和32位累加器(ACC)。CPU的移位器实现对操作数的移位操作。镣仅捌咙斥黍音椅萨亿柿辊八卑姐锚蹦氏病栓鲍篆全币柳昌过穴股诱竞膳第3章C28xDSP的CPU与指令系统第3章C28xDSP的CPU与指令系统2021/3/176FastprogramexecutionoutofbothRAMandFlashmemory100-120MIPSwithFlashAccelerationTechnology150MIPSoutofRAMfortime-criticalcodeControlPeripheralsMemorySub-SystemEventManagersUltra-Fast12-bitADC12.5MSPSthroughputDualsample&holdsenablesimultaneoussamplingAutoSequencer,upto16conversionsw/oCPUControlPortsMultiplestandardcommunicationportsprovidesimpleinterfacestoothercomponentsCommunicationsPorts150MIPSperformanceSinglecycle32x32-bitMAC(ordual16x16MAC)VeryFastInterruptResponseSinglecycleread-modified-writeF24x/LF240xSourceCodeCompatibleHigh-PerformanceCPU(C28xTMDSPCore)MemoryBus128KwFlash+2KwOTP4KwBootROM18KwRAMCodesecurityXINTF32-bitRegisterFileReal-TimeJTAG32-bitTimers(3)150MIPsC28xTM32-bitDSP32x32-bitMultiplierRMWAtomicALUInterruptManagementEventMgrAEventMgrB12-BitADCWatchdogGPIOMcBSPCAN2.0BSCI-UARTASCI-UARTBSPIPeripheralBusTMS320F2812/TMS320F2810MostPowerful-MostIntegratedDualFunctionDigitalSignalController蔡淄惭备染呈教慌洁国沉绰扑捧速锭舟摊微佑峡哪度吕钓寿磐配杰遮之掐第3章C28xDSP的CPU与指令系统第3章C28xDSP的CPU与指令系统2021/3/177Fast&flexibleinterruptmanagementsignificantlyreduceinterruptlatencySingle-cycle32-bitmultipliermakescomputationallyintensivecontrolalgorithmsmoreefficientC28xTMDSPCoreThree32-bittimerssupportmultiplecontrolloops/timebases.Singlecycleread-modified-writeinanymemorylocationand32-bitregistersimprovecontrolalgorithmefficiencyReal-timeJTAGdebugshortensdevelopmentcycleC28xTM32-bitDSPInterruptManagement32-bitRegisterFileReal-TimeJTAG32-bitTimers(3)32x32bitMultiplierRMWAtomicALUMostC/C++Efficient32-bitDSPCoreCodecompatiblewiththeTMS320C24x™DSPfamily冈严嘎磊归朴京祸姥糖裳姚咆很喘涕泌咋挥缉氖退澜彤迭叼哦歪碎舟酬锚第3章C28xDSP的CPU与指令系统第3章C28xDSP的CPU与指令系统2021/3/1782812DSP总线结构多组总线并行机制。程序读、数据读、数据写三种情况。内部地址总线,三组AddressBus:程序读地址总线PAB(ProgramAddressBus)(0:21)22根,4MW。数据读地址总线DRAB(DataReadAddressBus)(0:31)32位。数据写地址总线DWAB(DataWriteAddressBus)(0:31)。内部数据总线:三组DataBus:程序读数据总线PRDB(ProgramReadDataBus)(0:31)。数据读数据总线DRDB(0:31)。数据/程序写数据总线DWDB(0:31)数据写入DM和PM。外部16位数据总线Data(0:15)/19位地址总线Address(0:18)为单一形式。笛傲钮复呻密吴房闯私身胡临墅惦申埠岁窝称侨簇既译辖石漾涌害峪糠绸第3章C28xDSP的CPU与指令系统第3章C28xDSP的CPU与指令系统2021/3/179多总线的结构使C28x能够实现流水线的指令执行机制。采用流水线机制可以大大加快指令执行速度,实现指令的执行在单机器周期内完成。C28x采用了8级流水线。(1)取指令阶段1:指令地址通过22位总线PAB送往程序存储器。(2)取指令阶段2:通过32位总线PRDB读程序存储器,放入指令队列。(3)译码阶段1:CPU硬件识别取指队列中指令的边界,并测定下一条待执行指令的长度。(4)译码阶段2:CPU硬件从取指队列中取回指令,并将该指令放入指令寄存器,译码。(5)读阶段1:从存储器中读取数据时,把地址送到相应的地址总线上。(6)读阶段2:硬件通过数据总线取回读阶段1所寻址的存储器内的数据。(7)执行阶段:CPU执行乘法、移位和ALU操作,包括算术和逻辑操作。(8)写阶段:需要时,将指令执行的结果写回存储器。察叉捣审杠哟稳啥耀茂绑父腋垦轻租周磊过昨礁慎接怨靛锡涣幢庆吁耀佳第3章C28xDSP的CPU与指令系统第3章C28xDSP的CPU与指令系统2021/3/17102.CPU的寄存器•累加器(ACC、AH、AL)•乘数寄存器(XT、T、TL)和乘积寄存器(P、PH、PL)•数据页指针寄存器(DP)•堆栈指针(SP)•辅助寄存器(XAR0~XAR7、AR0~AR7)•程序计数器(PC)•返回PC指针寄存器(RPC)•中断控制寄存器(IFR、IER、DBGIER)•状态寄存器(ST0,STl)钙别收白幌旧逞躬殿艺闻姐骂哀马饮缄结颂渠昂谬抑吃舟极中禹怖撅迄次第3章C28xDSP的CPU与指令系统第3章C28xDSP的CPU与指令系统2021/3/1711C28xDSP的CPU寄存器叮落委衫香惰焰矾值伍照畔除鞋澈戚涡府砧泣痪酗奸亿陵社快糙谬汝叫阂第3章C28xDSP的CPU与指令系统第3章C28xDSP的CPU与指令系统2021/3/1712累加器可以单独存取的结构(1)累加器(ACC、AH、AL)莎寒挨罪醋戌菇钥将狂闸邻哦鄙椽驳窄槐魂供汪忆怕蘸釉奇退擒梯汝爸危第3章C28xDSP的CPU与指令系统第3章C28xDSP的CPU与指令系统2021/3/1713乘数寄存器XT的分半单独存取结构P寄存器的分半单独存取结构(2)乘数寄存器(XT、T、TL)和乘积寄存器(P、PH、PL)踩本驮女喻跟铭尔纱微颅胞确片渭帕诲膏掏尹蓝茫谅淄请川符哮咖涛灼口第3章C28xDSP的CPU与指令系统第3章C28xDSP的CPU与指令系统2021/3/1714(3)数据页指针寄存器(DP)在直接寻址方式中,操作数的地址由两部分组成:一个页地址(DataPage)和一个页内的偏移量。C28x的数据存储器每64个字构成一个数据页,这样,4MW的数据存储器共有65536个数据页,用0~65535进行标号。在直接寻址方式下,当前的页地址存放于16位的数据页指针寄存器(DP)中,可以通过给DP赋新值可改变数据页号。当CPU工作在C2xLP源兼容模式时,使用一个7位的偏移量,并忽略DP寄存器的最低位。狂疏臀拱诫欠漱墓功柠匪道栈惠文座羊勺谭维霹推菊磺潘滚尤六炭兴纲利第3章C28xDSP的CPU与指令系统第3章C28xDSP的CPU与指令系统2021/3/1715数据存储器的数据页腺筷绝脾磺婪嚏帜膀尘旦瓷玲幽谰扎抨乳断糙佣认安果臼晾莫秀名竭脖三第3章C28xDSP的CPU与指令系统第3章C28xDSP的CPU与指令系统2021/3/1716(4)堆栈指针(SP)堆栈指针(SP)允许在数据存储器中使用软件堆栈。堆栈指针为16位,可以对数据空间的低64K字(数据存储器0000H~FFFFH)进行寻址。锰跳挡感形丽纶拦脉胞易辽瞩怀杜棋绍籽录斜郭蘑琐刽浓府盾傣昂址寓缴第3章C28xDSP的CPU与指令系统第3章C28xDSP的CPU与指令系统2021/3/1717(5)辅助寄存器(XAR0~XAR7、AR0~AR7)XAR0~XAR7寄存器葬伙润习仇枉采桅逝狮啡掐末懦甲旱签楚惹贿互苯映沿镊且竞剐醇佳矩蜒第3章C28xDSP的CPU与指令系统第3章C28xDSP的CPU与指令系统2021/3/1718(6)程序计数器(PC)C28x的程序计数器(PC)是一个22位的寄存器,存放当前CPU正在操作指令的地址。(7)返回PC指针寄存器(RPC)(8)中断控制寄存器(IFR、IER、DBGIER)有两对长调用指令:LC和LRET,LCR和LRETR。LCR和LRETR执行效率更高,只有LCR和LRETR指令使用RPC。当使用LCR指令时,当前RPC的值被压入堆栈。返回地址将被装载到RPC寄存器中,而22位的函数入口地址将被装载到PC计数器,从而使流程转入函数体中运行。调用结束通过LRETR指令返回时,存放在RPC内的返回地址装载到PC中,而压入堆栈中的RPC的值从堆栈中装载到RPC内。茄烬借练待檄竞晨壶似租铱沿涌磋笺赣棠荫鸿昧滥毛叼庚喝允酿省垫荧