2.3 C55x的CPU结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

28
2.3.7 数据计算单元 单元) 数据计算单元(D单元 单元
D单元是C55X DSP中主要的数据执行部件,完成大部分 数据的算术运算工作。它由移位器、40 bit ALU、两个17 bit的 乘法累加器(MAC)和若干寄存器构成。数据计算单元的两个乘 法累加器能够并行使用,可以有效提高DSP运行效率。D单元 中的寄存器包括累加器和两个用于维特比译码的专用指令寄存 器。 D单元包括了CPU的基本计算单元。图2-5是D单元的基本 框图。下面介绍D单元的主要部分。
8
图 指令缓冲单元(I单元)框图
9
1. 指令缓冲队列
CPU从程序存储器一次可以提取32 bit代码。读程序的数 据线(PB)从存储器提取32 bit的代码,放入指令缓冲队列。该 队列一次最多可以存放64 Byte的代码。当CPU准备好解码后, 每次可以从队列里取6 Byte送往指令解码器。 另外,为了协助指令的流水操作,指令缓冲队列还能完成 以下操作: (1) 执行队列中的一个代码块(局部循环指令)。 (2) 当测试了一个程序流控制指令(条件分支、条件调用或 条件返回),则可以随机提取指令。
31
(2) 将16 bit的寄存器、存储器以及I/O空间的值左移达31 bit或右移达32 bit,移位计数可从暂时寄存器(T0~T3)读取, 或由指令里的常数来指定; (3) 将16 bit的立即数左移达15 bit,必须在指令里指定一个 常数作为移位计数; (4) 归一化累加器值; (5) 压缩和扩展bit域,作bit计数; (6) 对寄存器值作循环移位; (7) 在累加器值被存储到数据存储器之前,对它们作取整 或饱和运算。
21
图2-4 地址数据流单元(A单元)框图
22
下面介绍A单元的主要部分。
1. 数据地址产生单元 数据地址产生单元(DAGEN)
DAGEN产生读写数据空间的所有地址。它可以接收I单元 来的立即数,以及A单元来的寄存器值。对于使用非直接寻址 模式的指令,P单元指示DAGEN是用线性寻址还是循环寻址。
18
4) 中断寄存器 ● IFR0,IFR1 ● IER0,IER1 中断标志寄存器0和1; 中断使能寄存器0和l;
● DBIER0,DBIERl 调试中断使能寄存器0和1。
19
5) 状态寄存器 ● ST0_55~ST3_55 状态寄存器0、1、2、3。
20
2.3.6 地址生成单元 单元) 地址生成单元(A单元 单元
14
程序控制逻辑从I单元接收立即数,测试从A单元和D单元 来的结果,并执行以下操作: (1) 对一个条件指令,测试其条件的真假,然后将测试结 果递交程序地址产生逻辑。 (2) 当有中断请求,并已使能时,启动中断服务。 (3) 控制单循环语句后面的指令的循环,或块循环语句后 面的指令块的循环。可以嵌套三层循环,把一个块循环语句嵌 套在另一个块循环语句里,再把一条单循环语句嵌套在以上任 意一个块循环里,或者两个块循环里。所有的循环操作都可以 中断。 C55X系列DSP可以在作数据处理的同时,并行地执行程 序控制指令。
1
C55X DSP中有1条32位程序数据总线(P总线),1条24位程序地 址总线(PA总线),5条16位的数据总线(B、C、D、E、F总线) 和5条24位的数据地址总线(BA、CA、DA、EA、FA总线)。这 种高度模块化的多总线结构使得C55X DSP拥有超强的并行处 理能力。下面分别介绍总线和各功能单元。
11
2.3.5 程序控制单元 单元) 程序控制单元(P单元 单元
P单元主要是通过判断是否满足条件执行指令的条件来控 制程序地址的产生,达到控制程序流程的目的。程序控制单元 中还含有程序控制寄存器、循环控制寄存器、中断寄存器和状 态寄存器等硬件寄存器。通过循环控制寄存器的设置,可以直 接控制程序中的循环次数等,而不必像在普通DSP中一样在外 DSP 部对循环条件进行判断,从而可以有效地提高运行效率。 图2-3是P单元的基本框图。下面介绍P单元的主要部分。
5
(5) 写数据的数据总线(EB,FB)。这两组总线从CPU的功 能单元,传送16 bit的数据到数据空间或I/O空间。EB和FB从P 单元、A单元和D单元接收数据。对要求每次同时写两个16 bit 数据到存储器的指令,需要利用EB和FB两组总线;对每次只 写一个数据的指令,就只用EB。 (6) 写数据的地址总线(EAB,FAB)。这两组总线传送写入 存储器接口单元的24 bit地址。存储器接口单元收到这个地址 后,再接收由写数据的数据总线传来的数据。所有的数据空间 地址都由A单元产生。EAB总线只在EB上或同时在EB和FB上 为写入到存储器的数据传输地址。FAB总线在FB上为写入到 存储器的数据传输地址。
10
2. 指令解码器
在指令流水的解码阶段,指令解码器从指令缓冲队列接收 6 Byte的程序代码并解码。 指令解码器可以实现: (1) 识别指令边界,可以对8、16、24、32、40、48 bit的 指令解码。 (2) 决定CPU是否并行执行两条指令。 (3) 将解码后的执行命令和立即数传送给程序流单元(P单 元)、地址数据流单元(A单元)以及数据计算单元(D单元),可以 使用一些指令,通过特定的数据路径,直接把立即数写到存储 器或I/O空间。
4
(2) 读数据的地址总线(BAB,CAB,DAB)。这3组总线传 送24 bit的地址给存储器接口单元,然后由存储器接口单元传 送所需要的数据给读数据的数据总线。A单元产生所有的数据 空间地址。BAB总线在BB上为从内存传到CPU的数据传输地 址。CAB总线在CB上为传到CPU的数据传输地址。 DAB总线 只在DB上或同时在CB和DB上为传到CPU的数据传输地址。 (3) 读程序的数据总线(PB)。PB传送32 bit的程序代码到I单 元,在I单元对这些指令进行解码。 (4) 读程序的地址总线(PAB)。PAB传送由PB送达CPU的程 序代码的24 bit地址。
24
3. A单元的寄存器 单元的寄存器
A单元包括并且使用以下的寄存器。 1) 数据页寄存器 ● DPH,DP ● PDP 数据页寄存器; 外设数据页寄存器。
25
2) 指针寄存器 ● CDPH,CDP ● SPH,SP,SSP ● XAR0~XAR7 系数数据指针寄存器; 堆栈指针寄存器; 辅助寄存器。
12
图2-3 程序控制单元(P单元)框图
13
1. 程序地址的产生和程序控制逻辑
在P单元内,程序地址产生逻辑产生24 bit的地址,以便从 程序存储器里提取指令。P单元通常产生顺序地址,但也可以 产生非顺序的地址,这时程序地址产生逻辑可从I单元接收立 即数,从D单元接收寄存器的值。地址产生后,就通过读程序 的地址总线(PAB)送往存储器。 (PAB)
26
3) 循环缓冲寄存器 ● BK03,BK47,BKC 循环缓冲大小寄存器; ● BSA01,BSA23,BSA45,BSA67,BSAC 冲起始地址寄存器。 循环缓
27
4) 暂时寄存器 ● T0~T3 暂时寄存器0、1、2、3。 所有这些寄存器都可以接收I单元来的立即数,并可以接 收从P单元的寄存器、D单元的寄存器以及数据存储器来的数 据,也为它们提供数据。在A单元里,寄存器可以和DAGEN 及A单元的ALU作双向通信。
2
图 TMS320C55X内核结构图
3
2.3.2 片内的数据和地址总线
在图2-1中所示的总线有: (1) 读数据的数据总线(BB、CB、DB)。这3组总线从数据 空间或I/O空间,传送16 bit的数据到CPU的各个功能单元。BB 总线仅从内部存储器传输数据到D单元(主要是到两个MAC单 元。有特殊指令时,用BB、CB和DB这3组总线来同时读取3个 BB CB DB 3 3 操作数。(注意:BB总线没有连接到外部存储器上。如果一条 指令要从BB总线上获取一个操作数,则该操作数必须是内存 中的数据。)CB和DB总线给P单元、A单元和D单元提供数据。 对要求每次同时读两个操作数的指令,需要利用CB和DB两组 总线;对每次只读一个操作数的指令,就只用DB总线。
15
2. P单元内的寄存器 单元内的寄存器
对程序流寄存器的访问是有限制的,用户不能对PC进行读或写操作, 对RETA和CFCT两个寄存器的访问只能用以下两条语句:MOV dbl(Lmem) ,RETA和MOV RETA,dbl(Lmem)。所有其他的寄存器,都可以存放从I 单元来的立即数,且可以和数据存储器、 I/O空间、A单元的寄存器以及D单元的寄存器双向通信。P单元包含下 列寄存器。 1) 程序流寄存器 ● PC 程序计数器; ● RETA 返回地址寄存器; ● CFCT 控制流关系寄存器。
23
2. A单元的算术逻辑单元 单元 单元的算术逻辑单元(A单元 单元的算术逻辑单元 单元ALU)
A单元包含一个16 bit的ALU,接收I单元来的立即数,与 存储器、I/O空间、A单元的寄存器、D单元的寄存器以及P单 元的寄存器作双向通信。它还可以作以下操作: (1) 加法、减法、比较、布尔逻辑运算、带符号移位、逻 辑移位以及绝对值运算; (2) 对A单元内寄存器的各位以及存储器的各位,作测试、 设置、清除以及求补码; (3) 对寄存器的值作修改和移位; (4) 对寄存器的值作循环移位; (5) 将移位器里的结果送至A单元的寄存器。
2.3 TMS320C55XCPU的结构 的结构
2.3.1 CPU结构概述 结构概述
C55X DSP是一款采用改良型哈佛结构,高度模块化的数 DSP 字信号处理器,拥有比普通DSP更为丰富的硬件资源,能够有 效提高运算能力。其内核结构如图2-1所示,整个处理器内部 分为5个大的功能单元:存储器缓冲单元(M单元)、指令缓冲单 元(I单元)、程序控制单元(P单元)、地址生成单元(A单元)和数 据计算单元(D单元),各个功能单元之间通过总线连接。
16
2) 块循环寄存器 ● BRC0,BRC1 ● BRS1,BRC1 ● RSA0,RSA1 ; ● REA0,REA1 块循环结束地址寄存器0和1。 块循环计数器0和1; 存储寄存器; 块循环起始地址寄存器0和l
17
3) 单循环寄存器 ● RPTC ● CSR 单循环计数器; 经过计算的单循环寄存器。
A单元的功能是产生读写数据空间的地址。地址生成单元 由数据地址产生电路(DAGEN)、16位的算术逻辑单元(ALU)和 一组寄存器构成。C55X DSP地址生成单元与其他功能模块分 开,不会因为地址产生的原因使得单条指令需要在多个时钟周 期内完成,提高了DSP的运行效率。A单元中的寄存器包括数 DSP A 据页寄存器、辅助寄存器、堆栈指针寄存器、循环缓冲寻址寄 存器和临时寄存器等。A单元框图如图2-4所示。
29
图2-5 数据计算单元(D单元)框图
30
1. 移位器
D单元的移位器接收I单元来的立即数,与存储器、I/O空 间、A单元的寄存器、D单元的寄存器、P单元的寄存器作双向 通信。此外,它可以将移位后的值提供给D单元的ALU(作进一 步计算)及A单元的ALU(作为结果存放在A单元的寄存器)。该 移位器还可以作以下操作: (1) 将40 bit的累加器值,左移达31 bit或右移达32 bit,移 位计数可从暂时寄存器(T0~T3)读取,或由指令里的常数来指 定;
6
2.2.3 存储器缓冲单元 单元) 存储器缓冲单元(M单元 单元
M单元主要管理数据区(包括I/O数据区)与中央处理器 (CPU)之间的数据传送,使得高速CPU与外部相对低速的存储 器之间在吞吐量上的瓶颈可以得到一定程度的缓解。
7
2.2.4 指令缓冲单元 单元) 指令缓冲单元(I单元 单元
在每个CPU周期,I单元接收到4 Byte(32 bit)程序代码,写 入到它的指令缓冲队列(IBQ)中,并解码该缓冲队列中先前收 到的l~6 Byte程序代码。然后,把得到的数据传输到P单元、 A单元和D单元里,以便执行。例如,编码到指令里的任何常 数(为了加载寄存器,提供移位计数或识别比特数等),都要单 ( ) 独存放在I单元,然后传给适当的单元。图2-2是I单元的基本框 图。下面介绍一下I单元的主要部分。
相关文档
最新文档