DSP学习 2) CPU内部结构_第1页
DSP学习 2) CPU内部结构_第2页
DSP学习 2) CPU内部结构_第3页
DSP学习 2) CPU内部结构_第4页
DSP学习 2) CPU内部结构_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1一、中央处理单元一、中央处理单元CPUCPU概述概述 二、二、CPUCPU结构及总线结构及总线三、三、CPUCPU寄存器寄存器兼容性兼容性 在在TMS320C2000系列中,系列中,CPU内核为:内核为:C20 x/C24xC240 x:C2xLP:C27x/C28x:C27x、C28x 这些这些CPU的硬件结构有一定差别,指令集也不相同,但的硬件结构有一定差别,指令集也不相同,但是,在是,在C28x芯片中可以通过选择兼容特性模式,使芯片中可以通过选择兼容特性模式,使C28xCPU与与C27xCPU及及C2xLPCPU具有最佳兼容性。具有最佳兼容性。 可通过可通过状寄存器状寄存器STl的位的

2、位OBJMODE和位和位AMODE的组的组合,选定模式。合,选定模式。 一、一、中央处理单元中央处理单元CPU 概述概述C28x芯片具有芯片具有3种操作模式:种操作模式: C28x模式:模式:在该模式中,用户可以使用在该模式中,用户可以使用C28x的所有有效特性、寻址方式的所有有效特性、寻址方式 和指令系统,因此,一般应使和指令系统,因此,一般应使C28x芯片工作于该种模式。芯片工作于该种模式。 C27x目标目标兼容模式:兼容模式:在复位时,在复位时,C28x的的CPU处于处于C27x目标目标-兼兼 容模式。在该模式下,目标码与容模式。在该模式下,目标码与C27xCPU完全兼容,且它的完全兼容

3、,且它的 循环循环计数也与计数也与C27xCPU兼容。兼容。 C2xLP源源兼容模式:兼容模式:该模式允许用户运行该模式允许用户运行C2xLP的源代码,这的源代码,这 些源代码是用些源代码是用C28x代码生成工具编译生成的。代码生成工具编译生成的。 兼容性兼容性一、一、中央处理单元中央处理单元CPU 概述概述 CPUCPU 产生数据和程序存储地址:编码和运行指令;执行算术、逻辑和产生数据和程序存储地址:编码和运行指令;执行算术、逻辑和 移位操作;控制寄存器阵列内的数据转移、数据存储和程序存储等。移位操作;控制寄存器阵列内的数据转移、数据存储和程序存储等。 仿真逻辑仿真逻辑 监视和控制监视和控制

4、DSP芯片内不同部件的工作,并且测试设备芯片内不同部件的工作,并且测试设备 的操作情况。的操作情况。 接口接口 产生存储器和外围设备的接口信号以及产生存储器和外围设备的接口信号以及CPU的时钟和控制信号,的时钟和控制信号,显示显示CPU状态、仿真逻辑信号以及正在使用的中断情况。状态、仿真逻辑信号以及正在使用的中断情况。内核组成:内核组成:组成及特性组成及特性一、一、中央处理单元中央处理单元CPU 概述概述CPU主要特性:主要特性: 保护流水线:保护流水线:CPU具有八级流水线,可以避免从同一地址进行读写而造成具有八级流水线,可以避免从同一地址进行读写而造成 的秩序混乱。的秩序混乱。 独立寄存器

5、空间:独立寄存器空间:在在CPU中含有一些被映像至数据空间的寄存器。这些中含有一些被映像至数据空间的寄存器。这些 寄存器可以作为系统控制寄存器、数学寄存器和数据寄存器可以作为系统控制寄存器、数学寄存器和数据 指针。指针。系统控制寄存器可由特殊的指令进行操作,而系统控制寄存器可由特殊的指令进行操作,而 其他寄存器则通过特殊指令或寄存器寻址模式来操作其他寄存器则通过特殊指令或寄存器寻址模式来操作。 算术逻辑单元算术逻辑单元(ALU):32位的位的ALU完成二进制补码算术和布尔逻辑操作。完成二进制补码算术和布尔逻辑操作。 地址寄存器算术单元地址寄存器算术单元(ARAU):ARAU产生数据存储地址以及

6、与产生数据存储地址以及与ALU 并行操作的增量和减量指针。并行操作的增量和减量指针。 循环移位器:循环移位器:执行最多执行最多16位的数据左移位和右移位操作。位的数据左移位和右移位操作。 乘法器:乘法器:执行执行32位位x32位的二进制补码乘法运算,获得位的二进制补码乘法运算,获得64位的乘积。乘法可位的乘积。乘法可 以在有符号数和无符号数之间进行。以在有符号数和无符号数之间进行。一、一、中央处理单元中央处理单元CPU 概述概述CPU信号:信号: 存储器接口信号:存储器接口信号:这些信号在这些信号在CPU、存储器和外围设备之间进行数据传、存储器和外围设备之间进行数据传 送;进行程序存储器的访问

7、和数据存储器的存取;并能送;进行程序存储器的访问和数据存储器的存取;并能 根据不同的字段长度区分不同的存取操作根据不同的字段长度区分不同的存取操作(16位或位或32位位)。 时钟和控制信号:时钟和控制信号:这些信号为这些信号为CPU和仿真逻辑提供时钟,它们可以用来和仿真逻辑提供时钟,它们可以用来 监视和控制监视和控制CPU。 复位和中断信号:复位和中断信号:这些信号用来产生硬件复位和中断,并用来监视中断这些信号用来产生硬件复位和中断,并用来监视中断 的状态。的状态。 仿真信号:仿真信号:这些信号用来仿真和调试。这些信号用来仿真和调试。一、一、中央处理单元中央处理单元CPU 概述概述TMS320

8、C2000系列内部结构系列内部结构芯片组成芯片组成 特特 点点 32位位 定点定点 改进哈佛结构改进哈佛结构 循环的寻址方式。循环的寻址方式。 组组 成成 内核内核 存储器存储器 片内外设片内外设内部结构内部结构片片 内内 外外 设设片内存储器片内存储器中断处理中断处理程序和数据存储逻辑程序和数据存储逻辑乘法器乘法器 桶形移位器桶形移位器地址寄存器算术单元地址寄存器算术单元算术逻辑单元算术逻辑单元内核内核(红框)(红框)可视化的实时仿真可视化的实时仿真预取队列预取队列 指令译码指令译码程序和数据地址发生器程序和数据地址发生器二、二、CPU 的结构及总线的结构及总线CPU内内部部结结构构 存储器

9、接口有存储器接口有3组地址总线:组地址总线: 1PAB(Program Address Bus)程序地址总线:程序地址总线:PAB用来传送来自用来传送来自程序空间程序空间的的读读写写地址。地址。PAB是一个是一个22位的总线。位的总线。 2DRAB(Data-Read Address Bus)数据读地址总线数据读地址总线: 32位的位的DRAB用来传送用来传送来自来自数据空间数据空间的的读读地址。地址。 3DWAB(Data-Write Address Bus)数据写地址总线数据写地址总线: 32位的位的DWAB用来传用来传送来自送来自数据空间数据空间的的写写地址。地址。 存储器接口还有存储器

10、接口还有3组数据总线:组数据总线: 1PRDB(Program-Read DataBus)程序读数据总线:程序读数据总线:PRDB在在读取读取程序空间程序空间时时用来传送指令或数据。用来传送指令或数据。PRDB是一个是一个32位的总线。位的总线。 2DRDB(Data-ReadDataBus)数据读数据总线数据读数据总线: DRDB在在读取读取数据空间数据空间时用时用来传送数据。来传送数据。DRDB是一个是一个32位的总线。位的总线。 3DWDB(DataProgram-WriteDataBus)数据程序写数据总线数据程序写数据总线: 32位的位的DWDB在对在对数据空间数据空间和和程序空间程

11、序空间写写数据时用来传送数据。数据时用来传送数据。地址和数据总线地址和数据总线二、二、CPU 的结构及总线的结构及总线 注意:注意:程序空间的读和写不能同时发生,因为它们都要使程序空间的读和写不能同时发生,因为它们都要使用程序地址总线用程序地址总线PAB。程序空间的写和数据空间的写也不能同。程序空间的写和数据空间的写也不能同时发生,因为两者都要使用数据程序写数据总线时发生,因为两者都要使用数据程序写数据总线DWDB。而。而运用不同总线的传输是可以同时发生的。运用不同总线的传输是可以同时发生的。如:如:CPU可以在程序空间完成读操作可以在程序空间完成读操作(使用使用PAB和和PRDB), 在数据

12、空间完成读操作在数据空间完成读操作(使用使用DRAB和和DRDB), 同时同时在数据空间进行写操作在数据空间进行写操作(使用使用DWAB和和DWDB)。二、二、CPU 的结构及总线的结构及总线三、三、CPU寄存器寄存器寄存器寄存器大小大小描述描述复位后结果复位后结果ACC(AH,AL) 32位位累加器累加器0 x00000000XAR0732位位辅助寄存器辅助寄存器070 x00000000AR0716位位辅助寄存器辅助寄存器XAR07的的低低16位位0 x0000DP16位位数据页指针数据页指针0 x0000IFR16位位中断标志寄存器中断标志寄存器0 x0000IER16位位允许中断寄存器

13、允许中断寄存器0 x0000DBGIER16位位允许中断调试寄允许中断调试寄存器存器0 x0000P(PH,PL)32位位乘积结果寄存器乘积结果寄存器0 x00000000PC22位位程序计数器程序计数器0 x3F_FFC0PAB是是22位的位的三、三、CPU寄存器寄存器寄存器寄存器大小大小描述描述复位后结果复位后结果RPC22位位返回程序计数器返回程序计数器0 x00000000SP16位位堆栈指针堆栈指针0 x400ST016位位状态寄存器状态寄存器00 x0000ST116位位状态寄存器状态寄存器10 x080BXT(T,TL)32位位被乘数寄存器被乘数寄存器0 x00000000累加器

14、累加器(ACC、AH、AL) 累加器累加器(ACC)是是CPU的主要工作寄存器。除了那些对存储器和寄存器的直接的主要工作寄存器。除了那些对存储器和寄存器的直接操作外,所有的操作外,所有的ALU操作结果最终都要送入操作结果最终都要送入ACC。ACC支持单周期数据传送、支持单周期数据传送、加法、减法和来自数据存储器的宽度为加法、减法和来自数据存储器的宽度为32位的比较运算,它也可以接受位的比较运算,它也可以接受32位位乘法操作的运算结果。对乘法操作的运算结果。对ACC可以单独进行可以单独进行16位位8位的访问。累加器还具位的访问。累加器还具有如下的相关状态位。有如下的相关状态位。1溢出模式位溢出模

15、式位(OVM)2符号扩展模式位符号扩展模式位(SXM)3测试控制标志位测试控制标志位(TC)4进位位进位位(C)5零标志位零标志位(Z)6负标志位负标志位(N)7锁闭溢出标志位锁闭溢出标志位(V)8溢出计数位溢出计数位(OVC)三、三、CPU寄存器寄存器被乘数寄存器被乘数寄存器(XT) 被乘数寄存器被乘数寄存器(XT寄存器寄存器)主要用于在主要用于在32位乘法操作之前,位乘法操作之前,存放一个存放一个32位有符号整数值。位有符号整数值。XT寄存器的低寄存器的低16位部分是位部分是TL寄存器。该寄存器能装载一个寄存器。该寄存器能装载一个16位有符号数,能自动位有符号数,能自动对该数进行符号扩展,

16、然后将其送人对该数进行符号扩展,然后将其送人32位位XT寄存器。寄存器。XT寄存器的高寄存器的高16位部分是位部分是T寄存器。该寄存器主要用来寄存器。该寄存器主要用来存储存储16位乘法操作之前的位乘法操作之前的16位整数值。位整数值。T寄存器也可以为寄存器也可以为一些移位操作设定移位值,在这种情况下,根据指令,一些移位操作设定移位值,在这种情况下,根据指令,只可以使用只可以使用T寄存器的一部分。寄存器的一部分。三、三、CPU寄存器寄存器乘积结果寄存器乘积结果寄存器(P、PH、PL) 乘积寄存器乘积寄存器P主要用来存放乘法运算的结果。它也可以主要用来存放乘法运算的结果。它也可以直接装入一个直接装

17、入一个16位常数,或者从一个位常数,或者从一个16位位32位的数据位的数据存储器、存储器、16位位32位的可寻址位的可寻址CPU寄存器以及寄存器以及32位累加位累加器中读取数据。器中读取数据。P寄存器可以作为一个寄存器可以作为一个32位寄存器或两个位寄存器或两个独立的独立的16位寄存器:位寄存器:PH(高高16位位)和和PL(低低16位位)来使用。来使用。数据页指针数据页指针(DP) 在直接寻址模式中,对数据存储器的寻址要在在直接寻址模式中,对数据存储器的寻址要在64个字个字(即一个页面为即一个页面为64个字)的数据页中进行。由低个字)的数据页中进行。由低4兆字的兆字的数据存储器组成数据存储器

18、组成65536个数据页,用个数据页,用065535进行标号。进行标号。在在DP直接寻址模式下,直接寻址模式下,16位的数据页指针位的数据页指针(DP)包含了目包含了目前的数据页数。可以通过给前的数据页数。可以通过给DP赋新值去改变数据页号。赋新值去改变数据页号。三、三、CPU寄存器寄存器堆栈指针堆栈指针(SP) 堆栈指针堆栈指针(SP)允许在数据存储器中使用软件堆栈。堆栈指针为允许在数据存储器中使用软件堆栈。堆栈指针为16位,可位,可以对数据空间的低以对数据空间的低64K进行寻址。当使用进行寻址。当使用SP时,将时,将32位地址的高位地址的高16位置位置为为0。复位后。复位后SP指向地址指向地

19、址00000400h。堆栈操作说明如下:。堆栈操作说明如下:1堆栈从低地址向高地址增长。堆栈从低地址向高地址增长。2SP总是指向堆栈中的下一个空域。总是指向堆栈中的下一个空域。3复位时,复位时,SP被初始化,它指向地址被初始化,它指向地址00000400h。4将将32位数值存入堆栈时,先存入低位数值存入堆栈时,先存入低16位,然后将高位,然后将高16位存入下一个高地址位存入下一个高地址中。中。5当读写当读写32位的数值时位的数值时,C28x CPU期望存储器或外设接口逻辑把读写排成偶期望存储器或外设接口逻辑把读写排成偶数地址。例如,如果数地址。例如,如果SP包含一个奇数地址包含一个奇数地址00

20、000083h,那么,进行一个,那么,进行一个32位的读操作时,将从地址位的读操作时,将从地址00000082h和和00000083h中读取数值。中读取数值。6如果增加如果增加SP的值,使它超过的值,使它超过FFFFh,或者减少,或者减少SP的值,使它低于的值,使它低于0000h,则表明则表明SP已经溢出。如果增加已经溢出。如果增加SP的值使它超过了的值使它超过了FFFFh,它就会从,它就会从0000h开始计数。例如,如果开始计数。例如,如果SP=FFFFh而而个指令又向个指令又向SP加加3,则结果,则结果就是就是00001h。当减少。当减少SP的值使它到达的值使它到达0000h,它就会重新从

21、,它就会重新从FFFFh计数。计数。例如,如果例如,如果SP=0002h而一个指令又从而一个指令又从SP减减4,则结果就是,则结果就是FFFFh。 7当数值存入堆栈时,当数值存入堆栈时,SP并不要求排成奇数或偶数地址。排列由存储器或并不要求排成奇数或偶数地址。排列由存储器或外设接口逻辑完成。外设接口逻辑完成。三、三、CPU寄存寄存器器辅助寄存器辅助寄存器(XAR0XAR7、AR0AR7) CPU提供提供8个个32位的辅助寄存器:位的辅助寄存器:XAR0、XARI、XAR2、XAR3、XAR4、XAR5、XAR6、XAR7。它们可以作为地址指针指向存储器,或者作为通它们可以作为地址指针指向存储器

22、,或者作为通用目的寄存器使用。用目的寄存器使用。 许多指令可以访问许多指令可以访问XAR0-XAR7的低的低16位,其中,位,其中,辅助寄存器的低辅助寄存器的低16位为位为AR0-AR7,它们用作循环,它们用作循环控 制 和控 制 和 1 6 位 比 较 的 通 用 目 的 寄 存 器 。位 比 较 的 通 用 目 的 寄 存 器 。 当访问当访问AR0-AR7时,寄存器的高时,寄存器的高16位位(AROH-AR7H)可能改变或不改变,这主要取决于所应用可能改变或不改变,这主要取决于所应用的指令。的指令。AR0H-AR7H只能作为只能作为XAR0-XAR7的一的一部 分 来 读 取 , 不 能

23、 单 独 进 行 访 问 。部 分 来 读 取 , 不 能 单 独 进 行 访 问 。 三、三、CPU寄存器寄存器程序计数器程序计数器(PC) 当流水线满的时候,当流水线满的时候,22位的程序指针总是指向当前位的程序指针总是指向当前操作的指令,该指令刚刚到达流水线解码的第二阶操作的指令,该指令刚刚到达流水线解码的第二阶段。一旦指令到达了流水线的这一阶段,它就不会段。一旦指令到达了流水线的这一阶段,它就不会再被中断从流水线中清除掉,而是在中断执行之前再被中断从流水线中清除掉,而是在中断执行之前就被执行了。就被执行了。返回程序寄存器返回程序寄存器(RPC) 当通过当通过LCR指令执行一个调用操作时

24、,返回地址存指令执行一个调用操作时,返回地址存储在储在RPC寄存器中,寄存器中,RPC以前的值存在堆栈中以前的值存在堆栈中(在两在两个个16位的操作中位的操作中)。当通过。当通过LRETR指令执行一个返回指令执行一个返回操作时,返回地址从操作时,返回地址从RPC寄存器中读出,堆栈中的寄存器中读出,堆栈中的值被写回值被写回RPC寄存器寄存器(在两个在两个16位的操作中位的操作中)。其他的。其他的调用指令并不使用调用指令并不使用RPC寄存器。寄存器。三、三、CPU寄存器寄存器中断控制寄存器中断控制寄存器(1FR、IER、DBGIER) C28x有有3个寄存器用于控制中断:中断标志寄存个寄存器用于控

25、制中断:中断标志寄存器器(1FR)、中断使能寄存器、中断使能寄存器(1ER)和调试中断使能和调试中断使能寄存器寄存器(DBGIER)。IFR包含的标志位用于可屏蔽包含的标志位用于可屏蔽中断中断(可以用软件进行屏蔽可以用软件进行屏蔽)。当通过硬件或软件设。当通过硬件或软件设定了其中某位时,则相应的中断就被使能。可以定了其中某位时,则相应的中断就被使能。可以用用IER中的相应位屏蔽和使能中断。当中的相应位屏蔽和使能中断。当DSP工作在工作在实时仿真模式并且实时仿真模式并且CPU被挂起时,被挂起时,DBGIER表明表明可以使用时间临近中断可以使用时间临近中断(如果被使能如果被使能)。三、三、CPU寄

26、存器寄存器 状态寄存器状态寄存器(ST0) C28x有两个状态寄存器有两个状态寄存器ST0和和STl,其中包含着不同的标,其中包含着不同的标志位和控制位。这些寄存器可以和数据寄存器交换数据,也可志位和控制位。这些寄存器可以和数据寄存器交换数据,也可以保存机器的状态和为子程序恢复状态。状态位根据流水线中以保存机器的状态和为子程序恢复状态。状态位根据流水线中位值的改变而改变,位值的改变而改变,ST0的位在流水线的执行阶段中改变,的位在流水线的执行阶段中改变,STl的位在流水线的解码的位在流水线的解码2阶段中改变。阶段中改变。 下图表示了状态寄存器下图表示了状态寄存器ST0的各位。所有这些位都可以在

27、流的各位。所有这些位都可以在流水线执行的过程中进行更改。水线执行的过程中进行更改。 三、三、CPU寄存器寄存器 状态寄存器状态寄存器(ST1) 下图表示了状态寄存器各位,所有这些位都可以在流水线下图表示了状态寄存器各位,所有这些位都可以在流水线的第二译码阶段进行改变。的第二译码阶段进行改变。 均为均为1616位寄存器,有标志位和控制位,保存在数据存储器中。位寄存器,有标志位和控制位,保存在数据存储器中。 读写指令读写指令:LST SST SETC CLRC。 状态寄存器状态寄存器ST0和和ST1ST0ST1OVC/OVCUPMNTCOVM D15D10 D9D7 D6 D5 D4 D3 D2

28、D1 D0ARPMOM1MAP保留保留OBJMODE AMODESPA D7 D6 D5 D4 D3 D2 D1 D0XFIDLESTAT EALLOW LOOPVMAP PAGE0BGMVZCSXMD15D13 D12 D11 D10 D9 D8INTMCPU SARAM ROM EVA EVB SCI JTAG PIE SPI eCAN McBSP GPIO CPU SARAM ROM EVA EVB SCI JTAG PIE SPI eCAN McBSP GPIO BGA LQFP PBK BGA RISC ALU ARAU DT-DMA MPY XT P ACC PABBGA LQFP PBK BGA RISC ALU ARAU DT-DMA MPY XT P ACC PABDRAB DWAB PRDB DRDB DWDB AH AL XAR AR DP IFR IER DBGIERDRAB DWAB PRDB DRDB DWDB AH AL XAR AR DP IFR IER DBGIERPH PL PC RPC SP ST0 ST1 T TL OVM SXM TC C Z N V OVC PMPH PL PC RPC SP ST0 ST1 T TL OVM SXM TC C Z N V OVC PMSUB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论