资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,DSP54.21,DSP54.22,2。,TMS320C54x,结构概述,TMS320C54x,内部硬件结构图,(1)总线结构,4,组8条16,bit,总线,程序,PB-PAB,数据读 数据写,EB-EAB,程序总线的改进功能,例:,MACP,Smem,pmad,src,;,(,Smem,),(,pmad,)+(,src,),src,MVDP,Smem,pmad,;,(,Smem,),(,pmad,),MVPD,pmad,Smem,READA,Smem,;,A,PAR,(PAR),Smem,FIRS,Xmem,Ymem,pmad,;,DSP54.23,DSP54.24,片内外设通过一组双向寻址总线进行,表 1-3 各种读/写方法用到的总线,(2),片内存储器,分类:程序空间、数据空间、,I/O,空间,类型:,功能:,ROM-,一般配置成程序存储空间,RAM-,一般配置成数据存储空间,(根据,PMST,的有关状态位可以互相复用),C5402,存储器结构图-讲义图23,C5402,存储器配置,扩展程序存储器空间-讲义图24,I/O,存储器:片外64,K,字寻址空间(,用,PORTW,和,PORTR,进行寻址),DSP54.25,(3)中央处理单元(,CPU),CPU,的基本组成,(,教材,P.19),1。,ALU,算术逻辑运算单元,主要由,40,位,ALU,和两个,40,位累加器,(,ACCA,和,ACCB),组成,,如讲义图,2,5,所示,输入源,输出,图选项说明:,1),SXM,:,来自16,bit,数据存储器数时,DSP54.26,OVM:,溢出方式控制,正向溢出饱和:007,FFFFFFF0,负向溢出饱和:,FF80000000 0,3)C:,进位位,进位置1;相减借位置0;,作为条件操作数,进行分支转移,调用或返回;,例:,BC 1000h,C;if(C=1),then,pmad,PC,4),双16,bit,长字运算,C16=1,ALU,工作在双 16,bit,方式指令,见教材表18(,p.26);,双精度运算(32-,bit),举例及高(16-,bit),和低(16-,bit),位在存储器中的,排 列问题,参见 教材,p.150,DSP54.27,要点,:,指令中给出的地址,存取的总是高16,bit,地址操作数;,*,AR3,指向偶地址:偶地址放在高位,奇地址(,偶地址+1,)放在低位,*,AR3,指向奇地址:奇地址放在高位,偶地址(,奇地址-1,)放在低位,2。累加器,A,和,B,1),功能:,作为乘/加或,ALU,的目的寄存器(,dst,),MAC *AR2+,*AR3+,A,B;(,Xmem,),(,Ymem,)+(,src,),dst,进行并行操作,LD *AR2+,A ;,dst,=,Xmem,0 AGEQ,BGEQ,:,0,ALT,BLT:0 ALEQ,BLEQ:,0,SACCD,src,Xmem,cond,if (,cond,.),then (,src,)(ASM-16),Xmem,else (,Xmem,)(,Xmem,),DSP54.211,例:,STH A,8,TEMP,;(A)=,FF 4321 1234h,;(,TEMP)=2112h,SACCD A,*AR3+,ALT,;,条件存储例子,(,A)=FF FE00 4321 (A)=FF FE00 4321,(ASM)=01 (ASM)=01,AR3=0202 AR3=0203,(0202h)=0101 (0202h)=FC00,DSP54.212,4)累加器的移位(,Shift),和循环移位(,Rotate),操作,算术移位:,SFTA,src,shift,dst,;,-16,shift 15,C 39-32 31-0 0,左移,SX 39-32 31-0 C,右移受,SXM,影响,例:,SFTA A,-5,B,(A)=FF 8765 0055 (A)=FF 8765 0055,(B)=00 4321 1234 (B)=FF FC3B 2802,(C)=0 (C)=1,SXM=1 SXM=1,DSP54.213,逻辑移位:,SFTL,src,shift,dst,;,-16,shift 15,C 0 0 31-0 0,左移,0,0 0,31-0,C,右移,*保护位清零,不受,SXM,影响,例:,SFTL A,-5,B,(A)=FF 8765 0055 (A)=FF 8765 0055,(B)=00 4321 1234 (B)=00 043B 2802,(C)=0 (C)=1,DSP54.214,累加器循环左移:,ROL,src,C 0 0 31-0,左移,累加器循环右移:,ROR,src,C 0 0 31-0,右移,DSP54.215,条件移位:,SFTC,src,;,if,src,(,31,)=,src,(,30,)then,src,=,src,7FFF,FFFFh,则以 7,FFF,FFFFh,处理,若(,A)8000 0000h,则以 8000 0000,h,处理,按,指令要求存储数据,;,*参看教材,p.31,续表1-11,PMST(0)=SST,的说明,DSP54.217,例,(,A)=7F FFFF 0000h,AR1=100h STH A,-4,*AR1+,;,(100)=7FFFh,(100)=5555h,SXM=1 STL A,-4,*AR1+,;,(100)=,FFFFh,SST=1,说明:,A,移-4,位后,为:(,A)=07 FFFF F000h,7FFF,FFFFh,饱和处理:(,A)=7FFF,FFFFh,DSP54.218,6)累加器专用指令:,FIRS,Xmem,Ymem,pmad,;,B=B+A,pmad,A=(,Xmem,+,Ymem,)16,LMS,Xmem,Ymem,;,B=B+,Xmem,Ymem,A=(A+,Xmem,16)+2,15,SQDST,Xmem,Ymem,;,B=B+A(32-16)A(32-16),A=(,Xmem,-,Ymem,),A(150),then A(3116)*AR4 else A(150)*AR4,(TRN1)+0 TRN,(TRN1)+1TRN,0 TC,1TC,DSP54.226,6.指数编码器:,1)功能:,支持单周期指令,EXP,的,专用硬件,求得的累加器中,的指数值以二进制补码形式存储在,T,寄存器的(50)位;,*,指数范围:-831(即,TS,移位值);,2),C54x,中定点数的指数表示:,定点数=尾数,2,指数,(尾数与指数用补码表示),例:定点数 0,x2000=(0.25),10,=0.52,1,则:尾数=0,x4000,,指数=1,DSP54.227,3)指数值计算:,EXP,src,;if(,src,)=0 then 0T,;else(,src,冗余符号位,8),T,累加器的指数值=冗余符号位8,冗余符号位数是对整个累加器40,bit,而言,即包括8位,保护位,这也就是(8)的原因;,当累加器的值超过32位,指数值为负值,;,4)指数运算举例,:(,参考教材,p.157),例1:,EXP A;A=FF FFFF FFCB A=FF FFFF FFCB (-53),10,T=0000 T=0019 (25),10,DSP54.228,例2:,EXP A;A=07 8543 2105 A=07 8543 2105,T=0007 T=FFFC (-4),10,5),常用程序:,EXP A,ST T,*AR2,NORM A ;,这条指令不能紧跟在,EXP,指令后面,因为,EXP,指令还,没有将指数值送至,T,NORM,指令只能按原来的,T,值,移位,造成规格化错误。,DSP54.229,4.,CPU,状态寄存器和控制寄存器,C54x,共有3个16位状态和控制寄存器(,PMST、ST0、ST1),它们都是存储,器映象寄存器,可以方便地写入数据,或由,数据存储器对它们加载。,(1),PMST,(Processor Mode Status),寄存器,用于设定并控制处理器的工作方式,反应处理器的工作状态。,复位值为,FF80H,。,15,7 6 5 4 3 2 1 0,IPTR,OVLY,AVIS,DROM,CLKOFF SMUL SST,各状态位功能详见教材,p.30,表1-11,DSP54.230,(2),状态寄存器,ST0,:,反应寻址要求和计算的中间运行状态。,复位值为1800,H。,1513 12,11,10 9 80,ARP TC C OVA OVB DP,各状态位功能详见教材,p.27,表19,(3),状态寄存器,ST1,:,反应寻址要求、计算的初始状态设置、,I/O,及中断控制。复位值为,2900,H,。,15 14 13 12 11 10 9 8 7 6 5 4,0,BRAF CPL XF HM INTM 0 OVM SXM C16 FRCT CMPT,ASM,各状态位功能详见教材,pp.2730,表110,DSP54.231,
展开阅读全文