查看: 1695|回复: 0

[经验] TMS320C54x结构概述

[复制链接]

该用户从未签到

发表于 2021-1-13 17:53:14 | 显示全部楼层 |阅读模式
分享到:

C54x由中央处理器CPU、存储器和片内外设组成,采用哈佛结构,有独立的程序空间、数据空间和I/O空间。图3是'C54x的内部硬件框图。

  对所有的'C54x器件来说,图中下半部所示的中央处理单元(CPU)是通用的。

  总线结构


14.jpg



  C54x 包括8 条16 比特宽度的总线,其中:

  一条程序总线(PB)

  三条数据总线(CB、DB、EB)

  四条地址总线(PAB CAB DAB EAB)


15.jpg


  ALU:算术逻辑运算单元

  主要由40位ALU和两个40位累加器(ACCA和ACCB)组成,如图4所示。

  ALU和两个累加器用来完成40位二进制补码的算术运算,也能完成布尔运算。当状态寄存储器ST1的C16位置1时,可做两个16位ALU,同时完成两个16位运算。

  输入:

  16位立即数;

  来自数据存储器的16位数;

  来自暂存器T的16位数;

  来自数据存储器读出的两个16位数;

  来自数据存储器读出的一个32位数;

  来自累加器(A和B)的40位数;


16.jpg


  输出:ALU的40位输出被送往累加器A或B。


17.jpg



  桶形移位器:将输入数据左移0~31位或右移0~16位,经常用作数字定标、位提取、扩展算术和溢出保护等操作。 输入40位:来自累加器或经DB、CB的 数据存储器;

  输出40位:连到ALU或经EB连到数据存储器;

  所移位数由指令中移位字段、ST1的ASM字段或T寄存器指定移位位数决定。


18.jpg



  乘/加模块:由乘法器、加法器、输入数据的符号控制逻辑、小数控制逻辑、零检测、舍入、溢出/饱和逻辑和16位暂存寄存器T等组成。乘法器和ALU在一个指令周期内共同完成(17 17补码)乘/加(40位)运算,且可并行地作ALU运算,这些功能可用来做Euclidean距离及LMS滤波等复杂运算。乘/加模块功能方框图如图6所示。

  比较、选择与保存单元(CSSU):可以完成累加器的高位字和低位字之间的最大值比较(CMPS指令)。另一功能是利用优化的片内硬件资源完成数据通信、模式识别等领域中经常用到的Viterbi蝶形运算。


19.jpg



  指数编码器:用于支持单周期指令EXP的专用硬件,如图8所示。

  累加器中数值的指数值,以二进制补码形式(-8~31)存放于暂存器T中;

  CPU状态和控制寄存器:

  'C54x共有3个16位状态和控制寄存器(PMST、ST0、ST1)它们都是存储器映象寄存器,可以方便地写入数据、或由数据存储器对它们加载。

  外设

  C54x 包括

  通用I/O 引脚,XF 和BIO

  定时器

  PLL 时钟产生器

  HPI 口8 比特或16 比特

  同步串口

  带缓存串口BSP

  多路带缓存串口McBSP

  时分复用串口TDM

  可编程等待状态产生器

  可编程bank switching 模块

  外部总线接口

  IEEE1149.1 标准JTAG 口

  C P U

  C54x 的CPU 结构包括:

  40 比特的ALU ,其输入来自16 比特立即数、16 比特来自数据存储器的数据、暂时存储器、T 中的16 比特数、数据存储器中两个16 比特字、数据存储器中32 比特字、累加器中40 比特字。

  2 个40 比特的累加器,分为三个部分,保护位(39- 32 比特)、高位字(31-16 比特)、低位字(15-0 比特)。

  桶型移位器,可产生0 到31 比特的左移或0 到16 比特的右移。

  17x17 比特的乘法器

  40 比特的加法器

  比较选择和存储单元CSSU

  数据地址产生器DAGEN

  程序地址产生器PAGEN

  内部存储器

  ·'C54x的存储器分为三个可独立选择的空间:程序空间、数据空间和I/O空间;

  ·'C54x的片内存储器包括ROM和RAM,其中RAM又可分为SARAM和DARAM:SARAM为单寻址寄存储器,DARAM为双寻址寄存储器(一周期内可以访问两次)。

  ROM一般配置成程序存储空间,用于存放要执行的指令、系数表等固定操作数。也可以部分地安排到数据存储空间,由PMST的状态位 和DROM决定;RAM 一般安排到数据存储空间,存放执行指令所要用的数据。但也可以安排到程序空间,由PMST的状态位OVLY决定。不同'C54x系列内部存储器配置各不相同。

  'C54x的寻址方式

  TMS320C54x的指令可能含有1个存储器操作数(指令说明中用Smem表示),也可能有2个存储器操作数(指令说明中用Xmem、Ymem表示),分别称为单存储器操作数和双存储器操作数。单存储器操作数有7种寻址方式,它们是:

  立即寻址: 操作数(常数)含在指令中;

  绝对寻址: 指令中含有操作数的16位地址;

  累加器寻址: 操作数地址在累加器中(A);

  直接寻址: 指令中含有操作数地址的低7 位;

  间接寻址: 操作数的地址在辅助寄存器中,支持倒位序寻址、循环寻址等功能;

  存储器映像的寄存器寻址:

  访问存储器映像寄存器,又不影响DP或SP;

  堆栈寻址: 访问堆栈;

  双存储器操作数支持一些特殊指令:

  如MAC、FIR等复杂指令。

  'C54x的六级指令流水线

  'C54x CPU的指令流水线有六级,每个周期有六条指令在工作,它们处于整个执行过程的不同阶段,如图9所示。


20.jpg



  流水线的工作全部为单字指令连续执行时(理想情况)如图10 所示。

21.jpg


回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条



手机版|小黑屋|与非网

GMT+8, 2024-11-23 15:43 , Processed in 0.123409 second(s), 16 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.