1、第二章第二章 DSP芯片结构介绍芯片结构介绍11 1)多总线结构)多总线结构2 2)4040位算术逻辑单元(位算术逻辑单元(ALUALU)3 3)17171717位并行乘法器位并行乘法器4 4)比较、选择和存储单元()比较、选择和存储单元(CSSUCSSU)5 5)指数编码器)指数编码器6 6)两个地址发生器)两个地址发生器第一节第一节 C54xC54x芯片的基本性能芯片的基本性能27 7)数据总线)数据总线8 8)总线寻址空间)总线寻址空间9 9)三种存储器空间)三种存储器空间1010)单指令循环和块循环)单指令循环和块循环1111)区分的存储块移动指令)区分的存储块移动指令1212)323
2、2位长操作数指令位长操作数指令 1313)可编程等待状态发生器和)可编程等待状态发生器和 可编程的存储单元转换可编程的存储单元转换 31414)锁相环()锁相环(PLLPLL)发生器)发生器 1515)多通道缓冲串口()多通道缓冲串口(McBSPMcBSP)1616)直接存储器访问()直接存储器访问(DMADMA)控制器)控制器 1717)主机接口()主机接口(HPIHPI)1818)定时器)定时器 1919)多种节电模式)多种节电模式 2020)JTAGJTAG接口接口 2121)低电压工作)低电压工作 4TMS320C54x DSPTMS320C54x DSP的内部硬件组成图的内部硬件组成
3、图系统控制接口系统控制接口程序地址产生逻程序地址产生逻辑(辑(PAGEN)数据地址产生逻数据地址产生逻辑(辑(DAGEN)存储器和存储器和外部接口外部接口周边接口周边接口PABPBCABCBDABDBEABEBPC,IPTR,RC,BRC,RSA,REAARAU0,ARAU1,AR0AR7ARP,BK,DP,SPEXP指数编码器指数编码器MUXT寄存器寄存器符号控制器符号控制器1717乘法器乘法器小数小数/整数运算控制整数运算控制YX40位位ALU零零 饱和饱和 取整取整MUX符号控制器符号控制器累加器累加器A(40)累加器累加器B(40)MUX符号控制器符号控制器符号控制器符号控制器XAYA
4、40位加法器位加法器MUX比较器比较器状态转移寄存器状态转移寄存器测试控制寄存器测试控制寄存器符号控制器符号控制器桶形移位桶形移位寄存器寄存器最高最高/最低最低有效字有效字选择选择0SXMP CDDXTAXMYMABMB A C DYXT A B CDSSBABA5第二节第二节 C54xC54x芯片的芯片的CPUCPU结构结构4040位算术逻辑运算单元(位算术逻辑运算单元(ALUALU)2 2个个4040位累加器位累加器A A和和B B移位移位-16-163030位的桶形移位寄存器位的桶形移位寄存器乘法器乘法器/加法器单元加法器单元比较和选择及存储单元(比较和选择及存储单元(CSSUCSSU)
5、指数编码器指数编码器CPUCPU状态和控制寄存器状态和控制寄存器包包括括6C542C542的结构框图的结构框图IEEE IEEE 1149.1StdTest/EMU1149.1StdTest/EMU标准串行标准串行端口端口0 0标准串行标准串行端口端口1 1定时器定时器软件等待软件等待状态发生器状态发生器PLLPLL锁相环锁相环时钟发生器时钟发生器Opt.1:Opt.1:1,1.5,2,31,1.5,2,3Opt.2:Opt.2:1,4,4.5,51,4,4.5,5A(15-0)A(15-0)5K5K字字程序程序/数据数据RAMRAM8K8K字字程序程序/数据数据ROMROM20K20K字字程
6、序程序ROMROM17171717乘法器乘法器4040位加法器位加法器凑整,保和运算凑整,保和运算4040位位ALUALUCOMPCOMP比较运算单元比较运算单元(Viterbi(Viterbi算法加速器算法加速器)EXPEXP指数编码器指数编码器4040位桶开移位位桶开移位寄存器寄存器(-16,31)(-16,31)4040位累加器位累加器A A4040位累加器位累加器B B8 8个辅助寄存器个辅助寄存器2 2个辅助寄存器算术单元个辅助寄存器算术单元MACMACALUALU累加器累加器移位器移位器地址产生单元地址产生单元D(15-0)D(15-0)7CPUCPU结构结构EXP指数编码器指数编
7、码器MUXT寄存器寄存器符号控制器符号控制器1717乘法器乘法器小数小数/整数运算控制整数运算控制YX40位位ALU零零 饱和饱和 取整取整MUX符号控制器符号控制器累加器累加器A(40)累加器累加器B(40)MUX符号控制器符号控制器符号控制器符号控制器XAYA40位加法器位加法器MUX比较器比较器状态转移寄存器状态转移寄存器测试控制寄存器测试控制寄存器符号控制器符号控制器桶形移位桶形移位寄存器寄存器最高最高/最低最低有效字有效字选择选择0P CDDXTAXMYMABMBAC DYXT A B CDSSBAUEA A 累加器累加器A AB B 累加器累加器B BC CBC CB数据总线数据总
8、线D DBD DB数据总线数据总线E EBE EB数据总线数据总线M MACM MAC单元单元P PBP PB程序总线程序总线S S 桶形移位桶形移位T TT T寄存器寄存器U ALUU ALUBA81.算术逻辑运算单元算术逻辑运算单元 ALUALU如何获取数据如何获取数据 ALUALU输出送往何方输出送往何方 溢出怎么办溢出怎么办 进位位的作用进位位的作用 什么是双什么是双1616位算术运算位算术运算 X输入输入端端Y输入输入端端输 出 为输 出 为4 0 位,位,被 送 往被 送 往累加器累加器A或或B要要点点9YX40位位ALU累加器累加器A(40)累加器累加器B(40)MUXMUXAB
9、MAC输出输出SXMSXMT A B CDSUA A 累加器累加器A AB B 累加器累加器B BC CBC CB数据总线数据总线D DBD DB数据总线数据总线M MACM MAC单元单元S S 桶形移位桶形移位T TT T寄存器寄存器U ALUU ALU符号控制符号控制TCB15-CB0DB15-DB0移位器输出移位器输出(40)符号控制符号控制MUXACCMA404040OVMC16COVA/OVBZA/ZBTC10 ALU的输入的输入:ALU有两个输入端,有两个输入端,X输入输入端的数端的数据来源于移位寄存器的输出(据来源于移位寄存器的输出(32位或位或16位数据存储位数据存储器操作数
10、以及累加器中的数值,经移位寄存器移位器操作数以及累加器中的数值,经移位寄存器移位后输出)或来自数据总线后输出)或来自数据总线DB 的数据存储器操作数。的数据存储器操作数。Y输入输入端的数据来源于累加器端的数据来源于累加器A中的数据,或累中的数据,或累加器加器B中的数据,或来自数据总线中的数据,或来自数据总线CB的数据存储器的数据存储器操作数,或来自操作数,或来自T寄存器中的数据。寄存器中的数据。当一个当一个1616位数据存储器操作数加到位数据存储器操作数加到4040位位ALUALU的的输入端时,若状态寄存器输入端时,若状态寄存器ST1ST1的的SXM=0SXM=0,则高位添,则高位添0 0,若
11、若SXM=1SXM=1,则符号位扩展。,则符号位扩展。11 ALUALU如何获取数据如何获取数据 ALUALU输出送往何方输出送往何方 溢出怎么办溢出怎么办 进位位的作用进位位的作用 什么是双什么是双1616位算术运算位算术运算 根据根据ST1的的OVM位进位进行处理行处理要要点点12溢出处理:溢出处理:ALU的饱和逻辑可以处理溢出。的饱和逻辑可以处理溢出。当发生溢出、且状态寄存器当发生溢出、且状态寄存器ST1的的OVM=1时,时,则则用用32位最大正数位最大正数00 7FFFFFFFh(正向溢(正向溢出)出)或最大负数或最大负数FF 80000000h(负向溢出)(负向溢出)加载累加器加载累
12、加器。溢出发生后,相应的溢出标志位(溢出发生后,相应的溢出标志位(OVA或或OVB)置)置1,直到复位或执行溢出条件指,直到复位或执行溢出条件指令。也可用令。也可用SAT指令对累加器进行饱和处理指令对累加器进行饱和处理而不必考虑而不必考虑OVM值。值。若若OVM=0,直接将结果送回到累加器。直接将结果送回到累加器。13 ALUALU如何获取数据如何获取数据 ALUALU输出送往何方输出送往何方 溢出怎么办溢出怎么办 进位位的作用进位位的作用 什么是双什么是双1616位算术运算位算术运算 可以用来支持扩展可以用来支持扩展精度的算术运算,精度的算术运算,利用两个条件操作利用两个条件操作数数C和和N
13、C,可以根,可以根据进位位的状态,据进位位的状态,进行分支转移、调进行分支转移、调用与返回操作。用与返回操作。要要点点14 ALUALU如何获取数据如何获取数据 ALUALU输出送往何方输出送往何方 溢出怎么办溢出怎么办 进位位的作用进位位的作用 什么是双什么是双1616位算术运算位算术运算 只 要 置 位只 要 置 位ST1的的C16状态位,就状态位,就可 让可 让 A L U在单个周期在单个周期内进行特殊内进行特殊的双的双16位算位算术运算,亦术运算,亦即即进行两次进行两次16位加法或位加法或两次两次16位减位减法。法。要要点点152.累加器累加器A和和B 作用作用 结构与位置结构与位置
14、和的异同和的异同 加载与存储中的移位加载与存储中的移位 AG保护位保护位39 32AH高阶位高阶位31 16AL低阶位低阶位15 0要要点点89DO页存储器页存储器ALAHBGAGBLBH存放运算存放运算前后数据前后数据地地址址16 作用作用 结构与位置结构与位置 和的异同和的异同 加载与存储中的移位加载与存储中的移位 要要点点累加器和累加器和的差别仅的差别仅在于累加器在于累加器的的3116位可以用作位可以用作乘法器的一乘法器的一个输入。个输入。依指令而定依指令而定17保存累加器的内容:保存累加器的内容:用户可以利用用户可以利用STH、STL、STLM和和SACCD等指令等指令或者用并行存储指
15、令,将累加器的内或者用并行存储指令,将累加器的内容存放到数据存储器中。容存放到数据存储器中。在存储前,有时需要对累加器的内在存储前,有时需要对累加器的内容进行移位操作。容进行移位操作。右移时,右移时,AG和和BG中的各数据位分别移至中的各数据位分别移至AH和和BH;左;左移时,移时,AL和和BL中的各数据分别移至中的各数据分别移至AH和和BH,低位添,低位添0。18例如:累加器例如:累加器A=FF 4321 1234h,求执行带移位的,求执行带移位的STH和和STL指令后,数据存储单元的指令后,数据存储单元的TEMP中的结果。中的结果。STH A,8,TEMP ;A中的内容左移中的内容左移8
16、;位后高位字存入位后高位字存入TEMP,;TEMP=2112hSTH A,-8,TEMP ;A中的内容右移中的内容右移8位后位后 ;高位字存入;高位字存入TEMP,;TEMP=FF43hSTL A,8,TEMP ;A中的内容左移中的内容左移8位后低位位后低位 ;字存入;字存入TEMP,TEMP=3400hSTL A,-8,TEMP ;A中的内容右移中的内容右移8位后低位位后低位 ;字存入;字存入TEMP,TEMP=2112h193 3桶形移位器的功能桶形移位器的功能 什么是定标什么是定标 移位处理的作用移位处理的作用 归一化的作用归一化的作用 为何要扩展符号位为何要扩展符号位BACDESALU
17、桶形移位器桶形移位器(40位位)信号控制信号控制最高最高/最低有最低有效字选择效字选择要要点点20 什么是定标什么是定标 移位处理的作用移位处理的作用 归一化的作用归一化的作用 为何要扩展符号位为何要扩展符号位当数据存储器当数据存储器的数据送入累的数据送入累加器或与累加加器或与累加器中的数据进器中的数据进行运算时,先行运算时,先通过它进行通过它进行016位左移然位左移然后再进行运算后再进行运算。要要点点21 什么是定标什么是定标 移位处理的作用移位处理的作用 归一化的作用归一化的作用 为何要扩展符号位为何要扩展符号位方便指方便指数运算数运算进行符号位保护可防进行符号位保护可防止数据的符号变化止
18、数据的符号变化要要点点22例如:例如:ADD A,-4,B ;累加器;累加器A右移右移4位位 ;后加到累加器;后加到累加器B ADD A,ASM,B;累加器;累加器A按按ASM规规 ;定的移位数移位后加到累加器;定的移位数移位后加到累加器B NORM A ;按;按T寄存器中的数值对累加器归一化寄存器中的数值对累加器归一化234乘法器乘法器/加法器加法器 结构结构 功能功能 什么是舍入处理什么是舍入处理 饱和处理的优点饱和处理的优点 数据流向数据流向 17X17乘法乘法40位加法位加法检零检零 饱和饱和 取整取整要要点点XMYMMUX0BA24 结构结构 功能功能 什么是舍入处理什么是舍入处理
19、饱和处理的优点饱和处理的优点 数据流向数据流向 要要点点乘法器乘法器/加法器单加法器单元可以在一个流元可以在一个流水线状态周期内水线状态周期内完成一次乘法累完成一次乘法累加(加(MAC)运算。)运算。25乘法器能够执行:乘法器能够执行:无符号数乘法(无符号数乘法(每个每个16位操作数前加一个位操作数前加一个0););有符号数乘法(每个有符号数乘法(每个16位操作数都符号位扩位操作数都符号位扩展成展成17位有符号数);位有符号数);无符号数(无符号数(16位操作数前面加一个位操作数前面加一个0)与有符)与有符号数(号数(16位操作数符号扩展成位操作数符号扩展成17位有符号数)相位有符号数)相乘运
20、算。乘运算。乘法器工作在小数相乘方式(状态寄存器乘法器工作在小数相乘方式(状态寄存器ST1中的中的FRCT位位=1)时,乘法结果左移)时,乘法结果左移1位,以消除位,以消除多余的符号位。多余的符号位。26 结构结构 功能功能 什么是舍入处理什么是舍入处理 数据流向数据流向 有些乘法指令,如有些乘法指令,如MAC、MAS等指令,等指令,如果带后缀如果带后缀R,就对,就对结果进行舍入处理,结果进行舍入处理,即加即加215至结果,并至结果,并将目的累加器的低将目的累加器的低16位清位清0。当执行当执行LMS指令时,为了指令时,为了修正系数的量化误修正系数的量化误差最小,也要进行差最小,也要进行舍入处
21、理。舍入处理。要要点点27 结构结构 功能功能 什么是舍入处理什么是舍入处理 数据流向数据流向 输入端输入端XM来自来自T寄存寄存器、累 加 器器、累 加 器 A 的 位的 位3216、以及、以及DB总线;总线;输入端输入端YM来自累加器来自累加器A的位的位3216、DB总线总线和和CB总线以及总线以及PB总线。总线。输出加到加法器的输入输出加到加法器的输入端端XA,累加器,累加器A或或B则则是加法器的另一个输入。是加法器的另一个输入。最后结果送往目的累加最后结果送往目的累加器器A或或B。要要点点285比较、选择和存储单元比较、选择和存储单元 MUXCOMPTRNTCMSW/LSW选择选择EB
22、15 EB0CSSU桶形移位器桶形移位器16SAB 结结构构 功功能能CSSU是专为是专为Viterbi算法设计算法设计的进行加法的进行加法/比较比较/选择(选择(ACS)运)运算的硬件单元。算的硬件单元。29CMPS ACMPS A,*AR1 AR1;如果;如果A A(31311616)AA(15150 0);则;则A A(31311616)-*AR1AR1,;TRNTRN左移左移1 1位,位,0-TRN0-TRN(0 0),),0-TC0-TC ;否则;否则A A(15150 0)-*AR1AR1,TRNTRN左移左移1 1位,位,;1-TRN1-TRN(0 0),),1-TC1-TCIf
23、 (M1+D1)(M2+D2)then N1=M1+D1else N1=M2+D2D1D2M1(尺度尺度1)M2(尺度尺度2)2*J2*J+1N1JN2J+8D1D2306指数编码器指数编码器 结构结构 功能功能 EXP指数编码器指数编码器ABT寄存器寄存器如何计算指数如何计算指数要点要点31指数编码器指数编码器是一个专用硬件。有了它,是一个专用硬件。有了它,可以在单可以在单个周期内执行个周期内执行EXP指令,求得累加器中数的指数值,指令,求得累加器中数的指数值,并以并以2的补码形式(的补码形式(-831)存放到)存放到T寄存器中。寄存器中。累加器的指数值累加器的指数值=冗余符号位冗余符号位-
24、8,也就是为消去多也就是为消去多余符号位而将累加器中的数值左移的位数。当累加余符号位而将累加器中的数值左移的位数。当累加器数值超过器数值超过32位时,指数是个负值。位时,指数是个负值。例如,对累加器的内容进行归一化,例如,对累加器的内容进行归一化,A=FF FFFF FFCB:EXP A ;(冗余符号位;(冗余符号位-8)T寄存器寄存器 ;T=33位位-8=25(d);=0019(H)327CPU状态和控制寄存器状态和控制寄存器 3 3个状态寄存器个状态寄存器 功能功能 位置位置 各各bitbit的作用的作用671DO页存储器页存储器ST1ST0PMSTST0和和ST1中包含有各种工作条件和工
25、中包含有各种工作条件和工作方式的状态;作方式的状态;PMST中包含存储器的中包含存储器的设置状态及其它控制信息设置状态及其它控制信息要要点点地地址址33ARP15 13TC12C11OVA10OVB9DP8 0(1 1)状态寄存器)状态寄存器0 0(ST0ST0)ARP:辅助寄存:辅助寄存器指针。器指针。在间接在间接寻址单操作数时,寻址单操作数时,用来选择辅助寄用来选择辅助寄存器。存器。测试测试/控制标志位。控制标志位。保存保存ALU测试位操测试位操作的结果作的结果。可以由可以由TC的状态决定条件的状态决定条件分支转移指令、子分支转移指令、子程序调用以及返回程序调用以及返回指令是否执行。指令是
26、否执行。34ARP15 13TC12C11OVA10OVB9DP8 0进位位。进位位。执行加法执行加法产生进位产生进位置置1,减法,减法产生借位产生借位则清则清0。数据存储器页指针。数据存储器页指针。这这9位字段与指令字位字段与指令字中的低中的低7位结合在一位结合在一起,形成一个起,形成一个16位直位直接寻址存储器的地址,接寻址存储器的地址,对数据存储器的一个对数据存储器的一个操作数寻址。操作数寻址。累加器溢出标志位累加器溢出标志位。35(2 2)状态寄存器)状态寄存器1 1(ST1ST1)BRAF15CPL14XF13HM12INTM11010OVM9SXM8C167FRCT6CMPT5AS
27、M4 0块重复操块重复操作标志位,作标志位,指示当前指示当前是是(1)否否(0)在执行块在执行块重复操作。重复操作。直接寻址编辑直接寻址编辑方式位。指示方式位。指示直接寻址时采直接寻址时采用何种指针。用何种指针。DP的直接寻址的直接寻址方式方式(0)或或SP的的直接寻址方式直接寻址方式(1)。XF引脚状态位。引脚状态位。XF引脚是一个通引脚是一个通用输出引脚。用输出引脚。保持方式位。当保持方式位。当处 理 器 响 应处 理 器 响 应HOLD信号时,信号时,HM指示处理器指示处理器是是(0)否否(1)继续执继续执行内部操作。行内部操作。36BRAF15CPL14XF13HM12INTM1101
28、0OVM9SXM8C167FRCT6CMPT5ASM4 0中断方式中断方式位。从整位。从整体上屏蔽体上屏蔽(1)或开放或开放(0)中断。中断。溢出方式位。溢出方式位。确定发生溢出确定发生溢出时以正常时以正常(0)或或饱和饱和(1)方式加方式加载目的累加器。载目的累加器。符 号 位符 号 位扩 展 方扩 展 方式 位。式 位。确 定 符确 定 符号 位 是号 位 是(1)否否(0)扩展。扩展。37BRAF15CPL14XF13HM12INTM11010OVM9SXM8C167FRCT6CMPT5ASM4 0双双 1 6 位位(1)/双精双精度度(0)算术算术运算方式运算方式位。决定位。决定ALU
29、的算的算术运算方术运算方式式小数方式位。小数方式位。当为当为1,乘法,乘法器输出左移器输出左移1位,以消去多位,以消去多余的符号位。余的符号位。修正方式位,修正方式位,决定决定ARP是是(1)否否(0)可以修可以修正。正。累 加 器累 加 器移 位 方移 位 方式 位。式 位。规 定 一规 定 一个 从个 从-1615的的移 位 值移 位 值(2的补的补码)。码)。38(3 3)处理器工作方式状态寄存器()处理器工作方式状态寄存器(PMSTPMST)IPTR15 7MP/MC6OVLY5AVIS4DROM3CLKOFF2SMUL1SST0中断向量中断向量指针。指指针。指示中断向示中断向量所住留
30、量所住留的的128字程字程序存储器序存储器的位置。的位置。微处理器微处理器/微型微型计算机工作方计算机工作方式位。该引脚式位。该引脚为为0允许使能并允许使能并寻址片内寻址片内ROM;为为1不能利用片不能利用片内内ROM。为为1时允时允许 片 内许 片 内双 寻 址双 寻 址数据数据RAM块块映 射 到映 射 到程 序 空程 序 空间。间。允许允许(1)/禁禁止止(0)在地址在地址引脚上看到引脚上看到内部程序空内部程序空间的地址线。间的地址线。39IPTR15 7MP/MC6OVLY5AVIS4DROM3CLKOFF2SMUL1SST0为为 0 时时DROM可 让 片可 让 片内内ROM映 象
31、到映 象 到数 据 空数 据 空间。间。CLKOUT时时钟输出关断位。钟输出关断位。为为1时,时,CLKOUT的的输出被禁止,输出被禁止,且保持为高电且保持为高电平。平。乘法饱和方乘法饱和方式位。为式位。为1时,时,在用在用MAC或或MAS指令进指令进行累加行累加/减以减以前,对乘法前,对乘法结果作饱和结果作饱和处理。处理。存储饱和存储饱和位。当为位。当为1 时,对时,对存储前的存储前的累加器值累加器值进行饱和进行饱和处理。处理。40第三节第三节 内部总线结构内部总线结构不同总线作用与区别不同总线作用与区别 程序总线(程序总线(PBPB)数据总线(数据总线(CBCB、DBDB和和EBEB)地址
32、总线(地址总线(PABPAB、CABCAB、DABDAB和和EABEAB)在片双向总线在片双向总线 传 送 取 自传 送 取 自程 序 存 储程 序 存 储器 的 指 令器 的 指 令代 码 和 立代 码 和 立即操作数。即操作数。CB和和DB传送读自数据存储器的操作数,传送读自数据存储器的操作数,EB传送写到存储器的数据。传送写到存储器的数据。41系统控制接口系统控制接口程序地址产生逻程序地址产生逻辑(辑(PAGEN)数据地址产生逻数据地址产生逻辑(辑(DAGEN)存储器和存储器和外部接口外部接口周边接口周边接口PABPBCABCBDABDBEABEBPC,IPTR,RC,BRC,RSA,R
33、EAARAU0,ARAU1,AR0AR7ARP,BK,DP,SP符号控制器符号控制器最高最高/最低最低有效字有效字选择选择符号控制器符号控制器符号控制器符号控制器符号控制器符号控制器符号控制器符号控制器YX40位位ALUYX1717乘法器乘法器XMYM桶形移位桶形移位寄存器寄存器42FIRS *AR2+0%,*AR3+0%,COEFDLD w1,AMVMM mmrx,mmryMVPD pmad,SmemPORTR PA1,*AR1+0PORTW *AR1+,PA043 为何要设置多内部总线为何要设置多内部总线 一个机器周期内可完成的存取操作一个机器周期内可完成的存取操作 为何要用两个辅助寄存器
34、算术运算单元为何要用两个辅助寄存器算术运算单元 一个周期内如何执行一个周期内如何执行3 3操作数指令操作数指令 并行处理和流并行处理和流水线工作水线工作取取1指、指、读读2字、字、写写1字。字。双 字 寻 址 取双 字 寻 址 取双操作数双操作数用用C、D、P总总线取操作数线取操作数要点要点44第四节第四节 C54x芯片的存储器结构芯片的存储器结构一、哈佛结构一、哈佛结构冯冯诺依曼诺依曼结构结构特点特点与与区别区别程序程序/数据存储器数据存储器CPU两种结构的两种结构的目的旨在从目的旨在从存储器存取存储器存取数据。区别数据。区别在 于 程 序在 于 程 序/数据总线是数据总线是否分行。否分行。
35、两种结构的两种结构的目的旨在从目的旨在从存储器存取存储器存取数据。区别数据。区别在 于 程 序在 于 程 序/数据总线和数据总线和空间是否分空间是否分开。开。45哈佛结构哈佛结构 改善的哈佛结构改善的哈佛结构程序存储器程序存储器CPU数据存储器数据存储器对存储器空间分配的不同考虑对存储器空间分配的不同考虑部 分部 分程序程序/数 据数 据空 间空 间可 交可 交叉叉特点特点与与区别区别46二、哈佛结构存储空间分配二、哈佛结构存储空间分配 64K64K字程序存储空间字程序存储空间64K64K字数据存储空间字数据存储空间空空间间构构架架DARAMSARAMROM64K64K字的字的I/OI/O空间
36、空间并行性及并行性及RAMRAM双寻址双寻址片内片内/片外存储器片外存储器特特点点程序存储器程序存储器/片 外 存 储片 外 存 储器本身不能器本身不能并 行并 行,只 能只 能取其一取其一47481 1存储器空间的划分与交叉存储器空间的划分与交叉 片内存储器片内存储器类型类型空间空间交叉交叉的条件的条件MP/MCMP/MC位位OVLYOVLY位位DROMDROM位位使能使能禁止禁止程序程序数据数据片内存储器空间片内存储器空间DARAMSARAMROMPMST49C54x中中,片内存储器的型式有,片内存储器的型式有DARAM、SARAM和和ROM三种,三种,取决于芯片的型号。取决于芯片的型号。
37、RAM总是安排到数据存储空间,但也可以构总是安排到数据存储空间,但也可以构成程序存储空间。成程序存储空间。ROM一般构成程序存储空间,也可以部分地一般构成程序存储空间,也可以部分地安排到数据存储空间。安排到数据存储空间。C54x通过处理器工作方式状态寄存器通过处理器工作方式状态寄存器(PMST)中的)中的3个状态位,可以很方便地个状态位,可以很方便地“使使能能”和和“禁止禁止”程序和数据空间中的片内存储器。程序和数据空间中的片内存储器。50MP/MCMC位:位:若若MP/MCMC=0,则片内,则片内ROM安排为程序空间;安排为程序空间;若若MP/MCMC=1,则片外,则片外ROM安排为程序空间
38、。安排为程序空间。OVLY位:位:若若OVLY=0,则片内,则片内RAM只安排为数据存储空间;只安排为数据存储空间;若若OVLY=1,则片内,则片内RAM安排为程序和数据空间。安排为程序和数据空间。DROM位:位:若若DROM=0,则片内,则片内ROM不安排成数据空间;不安排成数据空间;若若DROM=1,则部分片内,则部分片内ROM安排为数据空间。安排为数据空间。DROM位的用法与位的用法与MP/MCMC位的用法无关。不同的位的用法无关。不同的 C54x的数据和程序存储区分配略有不同,下图给出了的数据和程序存储区分配略有不同,下图给出了TMS320C549存储器空间分配图。存储器空间分配图。5
39、1TMS320C549TMS320C549存储器空间分配图存储器空间分配图程序存储器程序存储器程序存储器程序存储器0000h007Fh0080h1FFFh2000h7FFFh8000hFF7Fh保留保留(OVLY=1)或或外部外部(OVLY=0)片内片内DARAM(OVLY=1)或或外部外部(OVLY=0)片内片内SARAM(OVLY=1)或或外部外部(OVLY=0)外部外部中断字及中断字及保留保留(外部外部)FF80hFFFFhMP/MC=1(微处理器模式微处理器模式)MP/MC=0(微型计算机模式微型计算机模式)0000h007Fh0080h1FFFh2000h7FFFh8000hBFFF
40、h保留保留(OVLY=1)或或外部外部(OVLY=0)片内片内DARAM(OVLY=1)或或外部外部(OVLY=0)片内片内SARAM(OVLY=1)或或外部外部(OVLY=0)外部外部中断字及中断字及保留保留(片内片内)FEFFhFFFFhC000hFF00h片内片内ROM(2K字字)0000h007Fh0080h1FFFh2000h7FFFh8000hBFFFh存储器映象寄存存储器映象寄存器器片内片内DARAM(8K字字)片内片内SARAM(24K字字)外部外部保留保留(DROM=1)或或外部外部(DROM=0)FEFFhFFFFhC000hFF00h片内片内ROM(DROM=1)或或外部
41、外部(DROM=0)数据存储器数据存储器0060h005Fh暂存器暂存器SPRAM52多款多款C54芯片可进行页扩展,以增加程序空间容量。芯片可进行页扩展,以增加程序空间容量。如如C548和和C549其程序空间可扩展到其程序空间可扩展到8192K字。为此,字。为此,它们有它们有23根地址线,并增加了程序计数器扩展寄存器根地址线,并增加了程序计数器扩展寄存器(XPC),以及),以及6条寻址扩展程序空间的指令。条寻址扩展程序空间的指令。C548和和C549中的程序空间分成中的程序空间分成128页,每页页,每页64K。下图为下图为C548和和C549的外部扩展程序存储器图。的外部扩展程序存储器图。当
42、片内当片内RAM安排到程序空间时,每页程序存储器分安排到程序空间时,每页程序存储器分成两部分:成两部分:一部分是公共的一部分是公共的32K字;字;一部分是各自独立的一部分是各自独立的32K字。字。公共存储区为所有页共享,而每页独立的公共存储区为所有页共享,而每页独立的32K字存字存储区只能按指定的页号寻址。储区只能按指定的页号寻址。如果片内如果片内ROM被寻址被寻址 MP/MC=0,它只能在,它只能在0页,页,不能映象到程序存储不能映象到程序存储器的其它页。器的其它页。53C548C548和和C549C549页扩展方法页扩展方法对程序空间扩展对程序空间扩展 程序计数程序计数器扩展寄器扩展寄存器
43、存器XPC0页页64k1页页64k2页页64k127页页64k00 000000 FFFF01 000001 FFFF02 000002 FFFF7F 00007F FFFFXPC=0XPC=1XPC=2XPC=127(片内片内RAM不映象到程序空间,不映象到程序空间,OVLY=0)0页页32k1页页32k2页页32k127页页32kxx 0000 xx 7FFF00 800000 FFFF01 800001 FFFF7F 80007F FFFFXPC=xxXPC=0XPC=1XPC=127(当片内当片内RAM象到程序空间时,所有对象到程序空间时,所有对XX0000XX7FFF区间的寻址,不区
44、间的寻址,不管页号,都映象到片内管页号,都映象到片内RAM的的000000007FFF)(片内片内RAM映象到程序空间,映象到程序空间,OVLY=1)54表表2-32程序存储器程序存储器55 片内存储器作为程序存储器条件片内存储器作为程序存储器条件 外部存储器作为程序存储器条件外部存储器作为程序存储器条件 片内片内ROMROM分块的目的分块的目的 MP/MCMC为为0 0对对ROMROMOVLYOVLY为为1 1对对RAMRAMDROM=0MP/MC=14000h6000h5000h7000h8000h9000hA000hB000hC000hD000hE000hF000h9000h97FF98
45、00h9FFFA000hAFFFB000hBFFFC000hCFFFD000hDFFFE000hEFFFF000hFFFFF800hFFFF9000h9FFFA000hAFFFB000hBFFFC000hCFFFD000hDFFFE000hEFFFF000hFFFFC000hCFFFD000hDFFFE000hEFFFF000hFFFF4000h4FFF5000h5FFF6000h6FFF7000h7FFF8000h8FFFC541C542/C543C545/C546C548C549F800hFFFF56当存储单元映象到程序空间时,处理器就能自动当存储单元映象到程序空间时,处理器就能自动地对它
46、们所处的地址范围寻址。地对它们所处的地址范围寻址。如果程序地址生成器(如果程序地址生成器(PAGEN)发出的地址处)发出的地址处在片内存储器地址范围外,处理器就能自动地对外在片内存储器地址范围外,处理器就能自动地对外部寻址。部寻址。表表2-3列出了列出了C54x可用的片内程序存储器可用的片内程序存储器地址的容量。地址的容量。为了增强处理器的性能,对片内为了增强处理器的性能,对片内ROM再细分为再细分为若干块,这样就可以在片内若干块,这样就可以在片内ROM的一个块内取指的一个块内取指的同时,又在别的块中存数据。的同时,又在别的块中存数据。如上图所示为片内如上图所示为片内ROM的分块图。的分块图。
47、57当处理器复位时,复位中断向量映象到程序当处理器复位时,复位中断向量映象到程序空间的空间的FF80h。复位后,这些向量可以被重新映象到程序空复位后,这些向量可以被重新映象到程序空间中任何一个间中任何一个128字页的开头。字页的开头。这就很容易将中这就很容易将中断向量表从引导断向量表从引导ROM中移出来,然后再根据存中移出来,然后再根据存储器分配图进行安排。储器分配图进行安排。C54x的片内的片内ROM容量有大(容量有大(28K或或48K字)字)有小(有小(2K字),容量大的片内字),容量大的片内ROM可以把用可以把用户的程序代码编写进去,然而片内高户的程序代码编写进去,然而片内高2K字字RO
48、M中的内容是由中的内容是由TI公司定义的。公司定义的。58高端高端2K2K字的利用字的利用 F800hFB00hF900hFA00hFC00hFD00hFE00hFF00hFF80h用户程序用户程序机内自检程序机内自检程序中断向量表中断向量表C541/C545/C546自举加载程序自举加载程序机内自检程序机内自检程序中断向量表中断向量表256字正弦函数值查找表字正弦函数值查找表256字字A律压扩表律压扩表256字字律压扩表律压扩表C542/C543/C548/C549593 3数据存储器数据存储器 数据存储器类型数据存储器类型RAMRAM(SARAMSARAM)RAMRAM(DARAMDARA
49、M)片内片内ROM(ROM(软件映像软件映像)片内片内/片外数据存储器的识别片外数据存储器的识别由由OVLY、DROM确定确定60当处理器发出的地址处在片内存储器的范当处理器发出的地址处在片内存储器的范围时,就对片内的围时,就对片内的RAM或数据或数据ROM(当(当ROM设为数据存储器时)寻址。当数据存设为数据存储器时)寻址。当数据存储器地址产生器发出的地址不在片内存储器储器地址产生器发出的地址不在片内存储器的范围内时,处理器就会自动地对外部数据的范围内时,处理器就会自动地对外部数据存储器寻址。存储器寻址。数据存储器可以驻留在片内或者片外。数据存储器可以驻留在片内或者片外。片内片内DARAM都
50、是数据存储空间。都是数据存储空间。61表表2-462RAMRAM分块目的分块目的0000h1000h0800h2000h4000h6000h000003FF040007FF08000AFF0B000FFF100013FFC541C542/C543C545/C546C548/C49000007FF08000FFF100017FF000007FF08000FFF100017FF000007FF08000FFF100017FF20003FFF18001FFF18001FFF200027FF40005FFF60007FFFC548/C549的的2000 7FFF为单寻为单寻址址RAM,其余为双寻址,其
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。