您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 电气安装工程 > DSP3系统与实验教程_2812CPU
2812的CPU第三讲回顾:CPU+存储器+片内外设32x32bitMultiplierSectoredFlashA(18-0)D(15-0)ProgramBusDataBusRAMBootROM2232-bitAuxiliaryRegisters332bitTimersRealtimeJTAGCPURegisterBusR-M-WAtomicALUPIEInterruptManager323232EventManagerAEventManagerB12-bitADCWatchdogMcBSPCAN2.0BSCI-ASCI-BSPIGPIODataBus32-bitAuxiliaryRegisters332bitTimersRealtimeJTAGCPURegisterBusR-M-WAtomicALUProgramBusPIEInterruptManager32x32bitMultiplier32位定点DSP32x32位定点MAC双16x16位单周期定点MAC(DMAC)32-/64-bitsaturation64/32and32/32modulusdivisionFastinterruptservicetime单周期read-modify-write指令Uniquereal-timedebuggingcapabilitiesUpwardcodecompatibilityMCU/DSPbalancingcodedensity&executiontime.Supports32-bitinstructionsforimprovedexecutiontime;Supports16-bitinstructionsforimprovedcodeefficiency一、主要性能二、乘法器和ALU/移位器XT(32)orT/TLMULTIPLIER32x32orDual16x16P(32)orPH/PLAH(16)DataBusDataBusProgramBusALU(32)3232323232AL(16)3232•16/328/16ShiftR/L(0-16)ACC(32)AH.MSBAH.LSBAL.MSBAL.LSB32ShiftR/L(0-16)32ShiftR/L(0-16)32168/16/32三、XARnandDPXAR0XAR1XAR2XAR3XAR4XAR5XAR6XAR7ARAUMUXDataMemoryMUXDP(16)DataBusProgramBus6LSBfromIRXARn32-bitsARn16-bits22322020/1/1162020/1/116Data-writeAddressBus(32)ProgramAddressBus(22)ExecutionR-M-WAtomicALUReal-TimeEmulation&TestEngineProgram-readDataBus(32)JTAGProgramDecoderPCXAR0toXAR7SPDP@XARAUMPY32x32XTPACCALURegistersDebugRegisterBus/ResultBusData/Program-writeDataBus(32)Data-readAddressBus(32)Data-readDataBus(32)MemoryData(4G*16)Program(4M*16)StandardPeripheralsExternalInterfaces四、总线结构五、AtomicRead/Modify/WriteRegistersALU/MPYLOADSTOREWRITEREADCPUMemAtomicInstructionsBenefits:SimplerprogrammingSmaller,fastercodeUninterruptible(Atomic)MoreefficientcompilerAND*XAR2,#1234h2words/1cyclesAtomicRead/Modify/WriteMOVAL,*XAR2ANDAL,#1234hMOV*XAR2,ALDINTEINT6words/6cyclesStandardLoad/Store六、CPU寄存器六、CPU寄存器1、被乘数寄存器--XTXT,存放32位有符号整数;TL,存放16位有符号整数,符号自动扩展;T,存放16位有符号整数或存放移位值。例:ASRAX,T;T中低4位是移位值ASRLACC,T;T中低5位是移位值2、乘积寄存器--P存放32位乘法的结果(指令确定哪一半);存放16位或32位数据;读P时要经移位器,移位值由PM(ST0中)决定:PM值结果移位模式PM值结果移位模式000左移1位100右移3位001不移101右移4位010右移1位110右移5位011右移2位111右移5位3、累加器--ACC存放大部分算数逻辑运算的结果;存放32位乘法运算的结果;32位、16位、8位访问。与累加器相关的状态位:符号扩展模式位------------SXM;溢出模式位----------------OVM;测试/控制标志位------------TC;进位位----------------------C;零标志位--------------------Z;负标志位--------------------N;锁存溢出标志位--------------V;溢出计数器位(6个位)--OVC/OVCU。这些状态位在ST0寄存器中。2020/1/11134、堆栈指针--SP16位,寻址低64K字数据空间。生长方向:低地址高地址;复位后,SP指向00000400H;入栈32位数据:低对低,高对高(小端模式);32位数值读写,约定偶地址访问:例:SP为0083H,32位读从0082H开始。SP的溢出处理:例:上溢,加到FFFFH后复位为0000H,重加。下溢,减少SP低于0000H后,会从FFFFH继续减。2020/1/11145、数据页指针--DP每页64个字6、辅助寄存器--XAR0~XAR78个,32位;指针或通用寄存器;低16位AR0~AR7寄存器:循环控制及16位比较;高16位不能单独访问。对于ACC操作,用到32位(@XARn);对于16位操作,忽略高16位,用到低16位(@ARn)辅助寄存器还可以指向程序存储器。2020/1/11167、程序计数器--PC22位,指向当前操作指令(到达D2阶段);到达D2阶段的指令不会被中断(要执行完)。8、返回程序计数器--RPC22位,存放长调用的返回地址。用指令LCR完成长调用时,RPC中的原来的内容被压入堆栈,返回地址会装载到RPC中;用指令LRETR实现返回时,RPC中的的内容会被传送的PC中,先前压入堆栈的内容会被弹出到RPC中。2020/1/11189、中断控制寄存器--IFR、IER、DEBIER3个寄存器的相应位定义是对应的:IRF相应位=1时,有对应的中断请求;IRE相应位=1时,对应的中断使能;DEBIER用于实时仿真模式,定义同IER。10、状态寄存器--ST0、ST1符号扩展模式位------------SXM;(ACC中16位M,1-扩展)溢出模式位----------------OVM;(ACC,1-溢出饱和处理)测试/控制标志位------------TC;(TBIT或NORM指令)进位位----------------------C;(进位,借位)零标志位--------------------Z;负标志位--------------------N;溢出标志位------------------V;乘法移位模式位-------------PM;溢出计数器位(6个位)--OVC/OVCU。(OVM为1时,不受影响)ST0:详细规定见手册!2020/1/1120ST1:全局可屏蔽中断屏蔽位-INTM;(0-使能,1-禁止)调试使能屏蔽位-------DBGM;(1-调试功能禁止)寻址模式设置位------PAGE0;(2812设为0)中断向量映射位-------VMAP;(0-低端,1-高端)堆栈指针定位位--------SPA;(0-未定位,1-已定位)循环指令状态位-------LOOP;(0-循环结束,1-循环进行)仿真允许访问使能位-EALLOW;(1-仿真及保护寄存器允许)空闲状态位------IDLESTART;(1-低功耗状态)2020/1/1121ST1:寻址模式位----------AMODE;(0-C28x,C27x,1-C27xLP)目标兼容模式位----OBJMODE;(0-C27x,1-C28x)M0和M1映射模式位--M0M1MAP;(0-TI测试,1-用户)XF状态位---------------XF;(XF引脚的状态)辅助寄存器指针--------ARP;(确定当前辅助寄存器)
本文标题:DSP3系统与实验教程_2812CPU
链接地址:https://www.777doc.com/doc-2910443 .html