数据存储器空间用来存放执行指令所要用的数据,包括需要处理的数据或数据处理的中间结果。数据存储器空间由片内和片外数据存储器组成。TMS320C54x的数据存储器的容量最多可达64K字。除了片内SARAM和DARAM外,TMS320C54x还可以通过软件设置将片内ROM映射为数据存储器空间。
表3-12列出了TMS320C54x系列部分DSP片内数据存储器的容量。由表3-12可见,片内ROM是否作为数据存储器取决于软件对处理器工作方式状态寄存器PMST的状态位DROM的编程。
表3-12 TMS320C54x系列部分DSP片内数据存储器的容量
由表3-9和表3-12可以看出,只有当DROM=1时,部分片内ROM才能映射到数据存储器空间。
当CPU的数据地址发生器(DAGEN)发出的地址处在片内存储器的范围内时,就对片内的RAM或数据ROM(当ROM配置为数据存储器时)寻址。当数据地址发生器(DAGEN)发出的地址不在片内存储器的范围内时,处理器就会自动地对外部数据存储器寻址。
下面对数据存储器的配置、片内RAM的组织、存储器映射寄存器等内容进行详细介绍。
1.数据存储器的配置
除了片内DARAM和SARAM可以被映射到数据存储器空间外,对于某些TMS320C54x,用户可以通过设置PMST寄存器的DROM位,将部分片内ROM映射到数据存储空间。这一部分片内ROM既可以映射到数据存储空间(DROM=1),也可以映射到程序存储空间()。这种情况下,就可以用指令将片内ROM作为数据存储器中的数据ROM来读取。复位时,处理器将DROM位清0。
下面以TMS320VC5402为例,分析数据存储器的配置。TMS320VC5402片内有16K字的DARAM和4K字的ROM,其存储器空间分配图如图3-16所示。DROM位的状态决定是否让部分片内ROM映射到数据存储器空间。当DROM=0时,片内ROM不映射到数据存储空间,64K字的数据存储空间中0000h~3FFFh为内部DARAM,剩余的数据存储器空间4000h~FFFFh为外部数据存储器;当DROM=1时,部分片内ROM映射到数据存储空间,0000h~3FFFh为内部DARAM,4000h~EFFFh为外部数据存储器,F000h~FEFFh为片内ROM;FF00h~FFFFh空间保留。其中16K字的内部DARAM被分为3个部分:0000h~005Fh为存储器映射寄存器,0060h~007Fh为暂存器(即SPRAM便签式存储器),0080h~3FFFh为内部DARAM。
对数据ROM的单操作数寻址,包括32位长字操作数寻址,单个周期就可完成。而在双操作数寻址时,如果操作数驻留在同一块内,则要两个周期;若操作数驻留在不同块内,则只需一个周期就可以了。
2.片内RAM的组织
为了提高处理器的性能,片内RAM也被进一步细分成若干块。分块以后,用户可以在同一个周期内从同一块DARAM中取出两个操作数,并将数据写入到另一块DARAM中。
在所有TMS320C54x器件中,片内DARAM的前1K字的内容包括存储器映射CPU寄存器(0000h~001Fh)和外设寄存器(0020h~005Fh)、32字暂存器SPRAM(0060h~007Fh)以及896字DARAM(0080h~03FFh)。为了便于CPU的并行操作,提高处理器的高速处理能力,896字的DARAM(0080h~03FFh)按每80h(128)个存储单元为一个块,将DARAM分成7个数据块。
图3-20为TMS320C54x中DARAM前1K字数据存储器的配置图。
对不同的TMS320C54x器件,RAM可按1K字、2K字或8K字大小划分成块,一般RAM块的容量为1K字。对于RAM容量为6K字和10K字的器件来说,一般RAM块为2K字;对于RAM容量为16K字的器件来说,一般RAM块为8K字;其他器件的RAM具有各种RAM块大小的组合。
3.存储器映射寄存器
TMS320C54x的数据存储空间中,前80h个单元(数据页0)包含了存储器映射CPU寄存器,存储器映射外设寄存器和暂存器。这些寄存器全部映射到数据存储空间,称为存储器映射寄存器MMR。
图3-20 TMS320C54x中DARAM前1K字数据 存储器的配置图
存储器映射CPU寄存器(0000h~001Fh)主要用于程序的运算处理以及寻址方式的选择和设定;存储器映射外设寄存器(0020h~005Fh)用于对外围电路的控制和存放数据;暂存器SPRAM(0060h~007Fh)用来暂存变量。
表3-13列出了TMS320C54x的存储器映射CPU寄存器的地址和名称。(www.xing528.com)
表3-13 TMS320C54x的存储器映射CPU寄存器的地址和名称
存储器映射CPU寄存器主要由数据处理寄存器和中断操作寄存器组两大类寄存器组成。
(1)数据处理寄存器
数据处理寄存器是TMS320C54x系列DSP的片内寄存器中用于数据处理的寄存器。其中:
AL、AH、AG、BL、BH、BG:组成40位累加器A、B,功能是完成累加操作。
T:暂存器,有许多不同的用途,可以用来保留乘法或乘/加指令的一个被乘数;用做移位操作指令的动态移位计数器;EXP指令还把计算的指数值存入T,再用NORM指令利用T的值对计算数据进行归一化处理。
AR0~AR7:辅助寄存器组,这8个16位的辅助寄存器可由中心算术逻辑单元(CALU)访问并可以被辅助寄存器算术单元(ARAU)修改。它们最主要的功能是产生16位的数据地址,也可用做通用寄存器和计数器。
BK:循环缓冲区长度寄存器,其中保存的数据定义了一个循环缓冲区的大小,用于ARAU的循环寻址功能。
BRC、RSA、REA:块重复寄存器组,用于块重复操作,其中,BRC用于保存数据块长度;RSA用于保存数据块首地址;REA用于保存数据块的末地址。
TRN:状态转移寄存器,这是一个16位的寄存器,为得到新的度量值存放中间结果,以完成Viterbi算法。CMPS(比较、选择和存储)指令,在累加器高位字和低位字进行比较的基础上,修改TRN的内容。
(2)中断操作寄存器
中断功能是所有以CPU为核心的器件必须具有的能力,目的是提供系统对突发事件的处理能力;TMS320C54x器件中提供了三个与中断处理有关的寄存器:
IMR:中断屏蔽寄存器,记录各中断是否被屏蔽。
IFR:中断标志寄存器,记录当前正在发生的中断。
寻址存储器映射CPU寄存器,不需要插入等待周期。用户在软件或硬件仿真时,可以通过查看相应的数据存储单元的内容,了解这些寄存器的状态。
存储器映射外设寄存器映射的外围电路,将因各个TMS320C54x器件外围设备电路结构的不同而有所差异。表3-14列出了TMS320VC5402存储器映射外设寄存器的地址和名称。
表3-14 TMS320VC5402存储器映射外设寄存器的地址和名称
TMS320C54x存储器映射外设寄存器主要由定时器寄存器和通信接口寄存器组成。这些寄存器的具体功能将在第8章介绍。寻址存储器映射外设寄存器需要两个机器周期。同样,用户在软件或硬件仿真时,可以通过查看相应的数据存储单元的内容,随时了解这些寄存器的状态。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。