首页 理论教育 TMS320C54x的地址发生器介绍

TMS320C54x的地址发生器介绍

时间:2023-06-20 理论教育 版权反馈
【摘要】:TMS320C54x中有两个地址发生器:程序地址发生器和数据地址发生器,用来对程序存储器和数据存储器进行寻址,产生所需的地址信息。表3-7 向PC中加载地址的操作图3-15 程序地址发生器的组成在PAGEN中,PC是一个关键部件,它是包含内部或外部程序存储器地址的16位寄存器。表3-8 向XPC中加载地址的操作程序地址发生器还提供了实现指令重复的一些硬件,用于实现单条指令的重复和指令块的重复。

TMS320C54x的地址发生器介绍

TMS320C54x中有两个地址发生器:程序地址发生器(PAGEN)和数据地址发生器(DAGEN),用来对程序存储器和数据存储器进行寻址,产生所需的地址信息。

1.程序地址发生器

程序地址发生器(PAGEN)负责产生合适的地址给程序存储器。所生成的地址用来访问指令、系数表、16位立即数或其他存储在程序存储器中的信息。程序地址发生器(PAGEN)的组成如图3-15所示。

PAGEN包括以下5个寄存器

程序计数器(PC)。

②重复计数器(RC)。

③块重复计数器(BRC)。

④块重复起始地址寄存器(RSA)。

⑤块重复结束地址寄存器(REA)。

978-7-111-35536-6-Chapter03-30.jpg

图3-15 程序地址发生器(PAGEN)的组成

在PAGEN中,PC是一个关键部件,它是包含内部或外部程序存储器地址的16位寄存器。程序计数器产生需要取指的下一条指令所在的存储器地址。通过PAB可以寻址到存储在程序存储器中的任何一个指令,并且将读取的指令加载到指令寄存器IR中,然后PC就准备开始下一个指令读取周期。(www.xing528.com)

PC有多种加载的方法,表3-7列出了对应于不同的执行代码时PC应装入的值。

表3-7 向PC中加载地址的操作

978-7-111-35536-6-Chapter03-31.jpg

程序地址发生器具有简单的数学运算能力,一般PAGEN在连续取指时PC自动加1并指向下一条指令,但在跳转、调用、返回、中断或循环等程序地址出现不连续的情况下,对应不同指令PAGEN将相应的目标地址装入PC,然后加载到程序地址总线PAB上进行寻址。对应调用和中断,当前的PC存放在堆栈中。当调用函数或中断服务程序结束后,用返回指令从堆栈中恢复PC的值。另外,对于某些超过64K字程序空间的DSP,如C549、VC5402、VC5410,还有一个附加的扩展程序计数器(XPC),XPC存放扩展程序存储器信息,可以用以寻址扩展的程序存储空间。

有多种方法可以对XPC和PC进行联合加载,表3-8列出了向XPC中加载地址的操作。

表3-8 向XPC中加载地址的操作

978-7-111-35536-6-Chapter03-32.jpg

程序地址发生器还提供了实现指令重复的一些硬件,用于实现单条指令的重复和指令块的重复。由于硬件循环,不要开销,处理器就能高效自动地重复执行单条或一段指令。许多DSP算法需要高速重复执行一系列的MAC指令,如滤波器、FFT等,所以零开销的循环是非常有用的。重复操作寄存器包含RC、BRC、RSA和REA。RC是一个循环计数器,它只能由重复指令(RPT和RPTZ)加载。但BRC、RSA和REA是16位存储器映射寄存器,其地址分别为1Ah、1Bh和1Ch。BRC是块重复计数器,每段代码执行后计数器减小。RSA存放循环起始地址,REA存放循环结束地址,用来确定要重复的一段代码的开始和结束。

2.数据地址发生器

数据地址发生器(DAGEN)负责产生合适的地址给数据存储器,支持7种基本的数据寻址模式。它包括8个辅助寄存器(AR0~AR7)、2个辅助寄存器算术逻辑单元(ARAU0和ARAU1)、数据存储器页指针DP、堆栈指针寄存器SP、循环缓冲区大小寄存器BK和用于选择辅助寄存器AR0~AR7的ARP。与8个辅助寄存器配套的是2个辅助寄存器算术逻辑单元,它们可以完成16位无符号数的算术运算。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈