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

下载本文档

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

文档简介

第二章CPU内部结构与时钟系统1一、中央处理单元CPU概述二、CPU结构及总线三、CPU寄存器第二章(1)CPU内部结构第2章CPU内部结构与时钟系统2兼容性在TMS320C2000系列中,CPU内核为:C20x/C24x/C240x:C2xLP:C27x/C28x:C27x、C28x这些CPU的硬件结构有一定差别,指令集也不相同,但是,在C28x芯片中可以通过选择兼容特性模式,使C28xCPU与C27xCPU及C2xLPCPU具有最佳兼容性。可通过状寄存器STl的位OBJMODE和位AMODE的组合,选定模式。

一、中央处理单元CPU概述第2章CPU内部结构与时钟系统3C28x芯片具有3种操作模式:▲C28x模式:在该模式中,用户可以使用C28x的所有有效特性、寻址方式和指令系统,因此,一般应使C28x芯片工作于该种模式。

C27x目标——兼容模式:在复位时,C28x的CPU处于C27x目标-兼容模式。在该模式下,目标码与C27xCPU完全兼容,且它的循环—计数也与C27xCPU兼容。▲

C2xLP源——兼容模式:该模式允许用户运行C2xLP的源代码,这些源代码是用C28x代码生成工具编译生成的。兼容性一、中央处理单元CPU概述第2章CPU内部结构与时钟系统4▲

CPU

——产生数据和程序存储地址:编码和运行指令;执行算术、逻辑和移位操作;控制寄存器阵列内的数据转移、数据存储和程序存储等。▲

仿真逻辑——监视和控制DSP芯片内不同部件的工作,并且测试设备的操作情况。▲

接口——产生存储器和外围设备的接口信号以及CPU的时钟和控制信号,显示CPU状态、仿真逻辑信号以及正在使用的中断情况。内核组成:组成及特性一、中央处理单元CPU概述第2章CPU内部结构与时钟系统5CPU主要特性:▲

保护流水线:CPU具有八级流水线,可以避免从同一地址进行读写而造成的秩序混乱。▲

独立寄存器空间:在CPU中含有一些被映像至数据空间的寄存器。这些寄存器可以作为系统控制寄存器、数学寄存器和数据指针。系统控制寄存器可由特殊的指令进行操作,而其他寄存器则通过特殊指令或寄存器寻址模式来操作。▲

算术逻辑单元(ALU):32位的ALU完成二进制补码算术和布尔逻辑操作。▲

地址寄存器算术单元(ARAU):ARAU产生数据存储地址以及与ALU并行操作的增量和减量指针。▲

循环移位器:执行最多16位的数据左移位和右移位操作。▲

乘法器:执行32位x32位的二进制补码乘法运算,获得64位的乘积。乘法可以在有符号数和无符号数之间进行。一、中央处理单元CPU概述第2章CPU内部结构与时钟系统6CPU信号:▲

存储器接口信号:这些信号在CPU、存储器和外围设备之间进行数据传送;进行程序存储器的访问和数据存储器的存取;并能根据不同的字段长度区分不同的存取操作(16位或32位)。▲

时钟和控制信号:这些信号为CPU和仿真逻辑提供时钟,它们可以用来监视和控制CPU。▲

复位和中断信号:这些信号用来产生硬件复位和中断,并用来监视中断的状态。▲

仿真信号:这些信号用来仿真和调试。一、中央处理单元CPU概述第2章CPU内部结构与时钟系统7TMS320C2000系列内部结构芯片组成▲

特点

——32位定点改进哈佛结构循环的寻址方式。▲

组成

——内核存储器片内外设内部结构片内外设片内存储器中断处理程序和数据存储逻辑乘法器桶形移位器地址寄存器算术单元算术逻辑单元内核(红框)可视化的实时仿真预取队列指令译码程序和数据地址发生器二、CPU的结构及总线第2章CPU内部结构与时钟系统8CPU内部结构第2章CPU内部结构与时钟系统9▲

存储器接口有3组地址总线:

1.PAB(ProgramAddressBus)程序地址总线:PAB用来传送来自程序空间的读写地址。PAB是一个22位的总线。

2.DRAB(Data-ReadAddressBus)数据读地址总线:

32位的DRAB用来传送来自数据空间的读地址。

3.DWAB(Data-WriteAddressBus)数据写地址总线:

32位的DWAB用来传送来自数据空间的写地址。▲

存储器接口还有3组数据总线:

1.PRDB(Program-ReadDataBus)程序读数据总线:PRDB在读取程序空间时用来传送指令或数据。PRDB是一个32位的总线。2.DRDB(Data-ReadDataBus)数据读数据总线:

DRDB在读取数据空间时用来传送数据。DRDB是一个32位的总线。

3.DWDB(Data/Program-WriteDataBus)数据/程序写数据总线:

32位的DWDB在对数据空间和程序空间写数据时用来传送数据。地址和数据总线二、CPU的结构及总线第2章CPU内部结构与时钟系统10▲

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

同时在数据空间进行写操作(使用DWAB和DWDB)。二、CPU

的结构及总线第2章CPU内部结构与时钟系统11三、CPU寄存器寄存器大小描述复位后结果ACC(AH,AL)32位累加器0x00000000XAR0~732位辅助寄存器0~70x00000000AR0~716位辅助寄存器XAR0~7的低16位0x0000DP16位数据页指针0x0000IFR16位中断标志寄存器0x0000IER16位允许中断寄存器0x0000DBGIER16位允许中断调试寄存器0x0000P(PH,PL)32位乘积结果寄存器0x00000000PC22位程序计数器0x3F_FFC0PAB是22位的第2章CPU内部结构与时钟系统12三、CPU寄存器寄存器大小描述复位后结果RPC22位返回程序计数器0x00000000SP16位堆栈指针0x400ST016位状态寄存器00x0000ST116位状态寄存器10x080BXT(T,TL)32位被乘数寄存器0x00000000第2章CPU内部结构与时钟系统13累加器(ACC、AH、AL)累加器(ACC)是CPU的主要工作寄存器。除了那些对存储器和寄存器的直接操作外,所有的ALU操作结果最终都要送入ACC。ACC支持单周期数据传送、加法、减法和来自数据存储器的宽度为32位的比较运算,它也可以接受32位乘法操作的运算结果。对ACC可以单独进行16位/8位的访问。累加器还具有如下的相关状态位。1.溢出模式位(OVM)2.符号扩展模式位(SXM)3.测试/控制标志位(TC)4.进位位(C)5.零标志位(Z)6.负标志位(N)7.锁闭溢出标志位(V)8.溢出计数位(OVC)三、CPU寄存器第2章CPU内部结构与时钟系统14被乘数寄存器(XT)

被乘数寄存器(XT寄存器)主要用于在32位乘法操作之前,存放一个32位有符号整数值。XT寄存器的低16位部分是TL寄存器。该寄存器能装载一个16位有符号数,能自动对该数进行符号扩展,然后将其送人32位XT寄存器。XT寄存器的高16位部分是T寄存器。该寄存器主要用来存储16位乘法操作之前的16位整数值。T寄存器也可以为一些移位操作设定移位值,在这种情况下,根据指令,只可以使用T寄存器的一部分。三、CPU寄存器第2章CPU内部结构与时钟系统15乘积结果寄存器(P、PH、PL)乘积寄存器P主要用来存放乘法运算的结果。它也可以直接装入一个16位常数,或者从一个16位/32位的数据存储器、16位/32位的可寻址CPU寄存器以及32位累加器中读取数据。P寄存器可以作为一个32位寄存器或两个独立的16位寄存器:PH(高16位)和PL(低16位)来使用。数据页指针(DP)在直接寻址模式中,对数据存储器的寻址要在64个字(即一个页面为64个字)的数据页中进行。由低4兆字的数据存储器组成65536个数据页,用0—65535进行标号。在DP直接寻址模式下,16位的数据页指针(DP)包含了目前的数据页数。可以通过给DP赋新值去改变数据页号。三、CPU寄存器第2章CPU内部结构与时钟系统16堆栈指针(SP)堆栈指针(SP)允许在数据存储器中使用软件堆栈。堆栈指针为16位,可以对数据空间的低64K进行寻址。当使用SP时,将32位地址的高16位置为0。复位后SP指向地址00000400h。堆栈操作说明如下:1.堆栈从低地址向高地址增长。2.SP总是指向堆栈中的下一个空域。3.复位时,SP被初始化,它指向地址00000400h。4.将32位数值存入堆栈时,先存入低16位,然后将高16位存入下一个高地址中。5.当读写32位的数值时,C28xCPU期望存储器或外设接口逻辑把读写排成偶数地址。例如,如果SP包含一个奇数地址00000083h,那么,进行一个32位的读操作时,将从地址00000082h和00000083h中读取数值。6.如果增加SP的值,使它超过FFFFh,或者减少SP的值,使它低于0000h,则表明SP已经溢出。如果增加SP的值使它超过了FFFFh,它就会从0000h开始计数。例如,如果SP=FFFFh而—个指令又向SP加3,则结果就是00001h。当减少SP的值使它到达0000h,它就会重新从FFFFh计数。例如,如果SP=0002h而一个指令又从SP减4,则结果就是FFFFh。

7.当数值存入堆栈时,SP并不要求排成奇数或偶数地址。排列由存储器或外设接口逻辑完成。三、CPU寄存器第2章CPU内部结构与时钟系统17辅助寄存器(XAR0~XAR7、AR0~AR7)

CPU提供8个32位的辅助寄存器:XAR0、XARI、XAR2、XAR3、XAR4、XAR5、XAR6、XAR7。它们可以作为地址指针指向存储器,或者作为通用目的寄存器使用。许多指令可以访问XAR0-XAR7的低16位,其中,辅助寄存器的低16位为AR0-AR7,它们用作循环控制和16位比较的通用目的寄存器。当访问AR0-AR7时,寄存器的高16位(AROH-AR7H)可能改变或不改变,这主要取决于所应用的指令。AR0H-AR7H只能作为XAR0-XAR7的一部分来读取,不能单独进行访问。

三、CPU寄存器第2章CPU内部结构与时钟系统18程序计数器(PC)当流水线满的时候,22位的程序指针总是指向当前操作的指令,该指令刚刚到达流水线解码的第二阶段。一旦指令到达了流水线的这一阶段,它就不会再被中断从流水线中清除掉,而是在中断执行之前就被执行了。返回程序寄存器(RPC)当通过LCR指令执行一个调用操作时,返回地址存储在RPC寄存器中,RPC以前的值存在堆栈中(在两个16位的操作中)。当通过LRETR指令执行一个返回操作时,返回地址从RPC寄存器中读出,堆栈中的值被写回RPC寄存器(在两个16位的操作中)。其他的调用指令并不使用RPC寄存器。三、CPU寄存器第2章CPU内部结构与时钟系统19中断控制寄存器(1FR、IER、DBGIER)

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

状态寄存器(ST0)

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

状态寄存器(ST1)下图表示了状态寄存器各位,所有这些位都可以在流水线的第二译码阶段进行改变。第2章CPU内部结构与时钟系统21▲

均为16位寄存器,有标志位和控制位,保存在数据存储器中。▲

读写指令:LSTSSTSETCCLRC。

状态寄存器ST0和ST1ST0ST1OVC/OVCUPMNTCOVMD15~D10D9~D7D6D5D4D3D2D1D0ARPMOM1MAP保留OBJMODEAMODESPAD7D6D5D4D3D2D1D0XFIDLESTATEALLOWLOOPVMAPPAGE0BGMVZCSXMD15~D13D12D11

温馨提示

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

评论

0/150

提交评论