《DSP处理器原理与应用》课件第2章.ppt

上传人(卖家):momomo 文档编号:8223368 上传时间:2025-01-13 格式:PPT 页数:76 大小:579KB
下载 相关 举报
《DSP处理器原理与应用》课件第2章.ppt_第1页
第1页 / 共76页
《DSP处理器原理与应用》课件第2章.ppt_第2页
第2页 / 共76页
《DSP处理器原理与应用》课件第2章.ppt_第3页
第3页 / 共76页
《DSP处理器原理与应用》课件第2章.ppt_第4页
第4页 / 共76页
《DSP处理器原理与应用》课件第2章.ppt_第5页
第5页 / 共76页
点击查看更多>>
资源描述

1、第2章 TMS320C55X系列DSP 2.1 TMS320C55X概述概述2.2 TMS320C55XCPU的结构的结构2.3 TMS320C55X DSP的存储器和的存储器和2.4 启动加载程序启动加载程序2.5 本章小结本章小结习题与思考题习题与思考题本章介绍TMS320C55X(以下简称为C55X)在TMS320C5000(以下简称为C5000)系列DSP中的地位、C55X的存储器和I/O空间,C55X的CPU结构、低功耗的强化以及嵌入式仿真器的特性。其中C55X的CPU结构是本章的重点。2.1.1 C55X在在C5000系列系列DSP中的地位中的地位第1章我们讲到C5000系列DSP

2、是高效能的DSP,功耗低,适合于消费类数字产品市场以及通信电子产品。其发展方向是朝更加有效的电源使用以及更多的集成方向发展,并且有多核、DSP+RISC、功能强化三个产品系列。2.1 TMS320C55X概述概述C55X DSP是C5000 DSP系列中最新的一代产品,包含 TMS320VC5503、TMS320VC5507和TMS320VC5509A DSP。C55X对C54X有很好的继承性,与C54X源代码兼容,从而有效地保护用户在软件上的投资。C55X继承了C54X的发展趋势,低功耗、低成本,在有限的功率条件下,保持最好的性能。其工作在0.9 V下,待机功耗低至0.12 mW,性能高达6

3、00 MIPS,并且具有业界目前最低的待机功耗,极大地延长了电池的寿命,对数字通信等便携式应用所提出的挑战,提供了有效的解决方案。其软件也与所有C5000 DSP兼容。与120 MHz的C54X相比,300 MHz的C55X性能大约提高了5倍,而功耗则降为C54X的1/6。C55X的超低功耗,是通过低功率设计以及功率管理技术的进步而达到的。设计者使用了一种非并行层次的节电配置,以及创新的粒度耦合自动功率管理,对于用户是透明的。与C54X相比,C55X的片内有两个乘法累加器(MAC),并且增加了累加器(ACC)、算术逻辑单元(ALU)、数据寄存器等,配合以并行指令,每个机器周期的效率提高了一倍。

4、其指令集是C54X的超集,加入了适应扩展的新的硬件单元的指令。其指令长度从8 bit到48 bit。这种长度可变的指令可以使每个函数的控制代码量比C54X降低40%。减少代码量,就意味着减少存储器的用量,从而降低系统成本。2.1.2 TMS320C55X DSP的应用的应用C55X的结构和设计是为了达到四个相关的目标:超低功耗,有效的DSP性能,降低代码密度,与C54X完全的代码兼容。C55X支持四类基本的应用:在保持或略微提高性能的条件下,大大延长电池寿命。例如,将数字蜂窝电话、便携式声音播放器、数码相机的电池使用时间,从小时延长到天,从天延长到周。在保持或稍微延长电池寿命的条件下,大大提高

5、性能。例如,刚刚推出使用的3G手机,可以用于因特网的音频、视频、数据的移动产品等,用户所期待的是具有一定水平的待机时间和使用时间的电池寿命,而不愿意为增加功能而牺牲电池的寿命。要求很小的尺寸、超低功耗、中低水平的DSP性能。例如,助听器和医疗检测设备,要求DSP具有相当的能力,但电池的寿命要达到数周乃至数月。高功效的设施,要求提高信道密度,但又有严格的板级功耗和空间的限制。一般地说,C55X的目标市场是消费和通信市场,多用于语音编解码,线路回音和噪声消除,调制解调,图像和声音的压缩与解压,语音的加密与解密,语音的识别与合成等领域。2.1.3 TMS320C55X DSP的主要性能和优点的主要性

6、能和优点C55X的主要性能和优点如下所示:一个3216 bit指令缓冲队列:缓冲可变长度指令和实现块重复操作。两个17 bit17 bit MAC:在单周期内实现双MAC操作。一个40 bit ALU:执行高精度算术和逻辑运算。一个40 bit 桶形移位寄存器:可以把40 bit结果左移31位或右移32位。一个16 bit ALU:和主ALU并行执行简单算术运算。四个40 bit 累加器:保持计算结果和减少所需存储器数量。12条独立总线:并行地对不同操作单元同时提供处理指令和操作数。用户配置的IDLE域:改善低活动性时的电源管理。2.1.4 对低功耗能力的加强对低功耗能力的加强C55X是在C5

7、4X的基础上发展起来的,后者已经是低功耗的DSP。通过工艺、设计、结构等一系列的强化,使C55X的功耗降低到新的水平,不仅降低了功耗,而且提高了性能。1.提高并行处理的能力提高并行处理的能力C55X通过结构上的改进,提高了并行性并降低了每个任务所需要的周期数。它采用的手段主要包括:两个乘法累加(MAC)单元;两个算术逻辑单元(ALU);三组读总线;两组写总线。采用这些措施后,C55X可以处理两个数据流,或者以两倍的速度来处理一个数据流,不需要将系数值读两遍。对于一个给定的任务,减少存储器的访问,就可以改善功耗和性能。C55X的指令结构允许在一个周期里执行两条指令。处理器内的两组写总线,可以在一

8、个周期里作两次写或一次写两个字,从而降低每个任务所需要的周期数。这也就意味着,更多的时间是处于节电模式(IDLE)。(1)对于许多任务来说,使用不同的计算单元,可以降低功耗。C55X的CPU内有两个ALU,一个是40 bit(C54X的标准配置),一个是16 bit(C55X增加的)。40 bit的ALU用于基本的计算任务。16 bit的ALU可以用于较小的算术与逻辑任务。灵活的指令集可以直接将比较简单的计算或逻辑/位操作任务交给16 bit的ALU,从而减小功耗。由于两个ALU可以并行工作,从而减少每个任务的周期数,来降低功耗。(2)将存储器的访问减到最少。存储器的访问,无论是片内的还是片外

9、的,都是功率消耗的主要部分。将存储器的访问减到最少,无疑是降低每个任务功耗所必需的。在C55X里,指令的提取是32 bit(C54X里是16 bit)。此外,可变长度指令集意味着,每个32 bit指令的提取可以提出一个以上的长度可变的指令,按照所需要的信息来决定指令的长度,从而改善代码的密度。这种指令集的设计和处理器结构的结合,就可以保证在达到最高性能的同时,使功耗降到最小。C55X灵活的指令Cache(高速缓冲存储器)也可以对不同类型的代码做优化配置。改善Cache的访问率,就意味着减少片外的访问,从而减少系统的功耗。(3)外设和片上存储器阵列的自动低功率机制。C55X的核处理器会自动地管理

10、片上外设和存储器阵列的功耗。这种资源的管理完全是自动的,对用户透明。而且,这种功耗的降低,并不影响处理器的性能。当某个片上的存储器阵列没有被使用时,它们就自动地切换到低功率模式。当一个访问的要求到达时,该阵列就恢复到正常的工作状态,完成存储器的访问,无须应用程序的干预。如果没有进一步的访问,该阵列又回到低功率状态。该处理器对片上外设也提供类似的控制。当外设没有激活,以及CPU不需要其关注时,就进入低功率状态。外设响应处理器的要求,退出低功率状态,也不需要程序的干预。这种功率管理也可以在软件的外设IDLE(闲置)域控制下进行。(4)可控制的功能IDLE域,提供了极大的省电灵活性。节电最重要的是,

11、当应用是处于IDLE或低活动状态时,达到最小功耗。C55X通过用户可控制的IDLE域,来改善低活动域功率管理的灵活性。这里所谓的域,是指器件里的不同部分,可以由软件来选择,使其使能或禁止。在禁止时,该域进入非常低功率的IDLE状态,但寄存器及存储器的内容仍然保留。当该域使能时,返回到正常的工作状态。各个域都可以单独地使能或禁止,使应用程序可以尽可能有效地管理低活动域的功耗状态。在C55X系列最初的器件里,可以分开配置的IDLE域包括CPU、DMA、外设、外部存储器接口(EMIF)、指令Cache以及时钟发生电路。2.低电压工艺技术的发展低电压工艺技术的发展除通过结构和指令集来降低功耗外,C55

12、X系列处理器还通过先进的低电压CMOS技术来进一步突破降低功耗的壁垒。C55X系列处理器所使用的CMOS技术支持器件工作在1.5 V和0.9 V。这些低电压的处理器仍然可以和其他标准的3.3 V CMOS器件直接接口。2.1.5 嵌入式仿真特性嵌入式仿真特性1.基本的仿真特性及其强化基本的仿真特性及其强化和以往的处理器系列相比,C55X强化了仿真和调试能力,所提供的仿真环境更加接近实际的应用环境,而且可以在仿真时进行实时的应用程序操作。C55X开发工具的强化仿真特性包括:用观察点/断点来做非插入式的实时调试;更快的屏幕更新;在仿真停顿事件期间,更好地控制程序代码的执行;实时数据交换(RTDX)

13、。这些强化能力的集成为软件和系统的开发者提供了不用停止CPU或消耗CPU的资源就能观察硬件的工作,达到仿真的目的。这样的仿真环境能最大限度地仿真DSP的全部性能。2.跟踪能力跟踪能力C55X片内仿真硬件的另一个强化,是程序计数器(PC)的跟踪能力。这种跟踪能力可以更好地观察应用程序流。PC跟踪能力所关注的是,通过输出足够的信息,用一个离线程序来重构应用程序。要选择多种能力来输出,作为运行时用户的选项,以便控制输出哪些信息,什么时候输出,以及以什么样的格式输出。在仿真器里,PC跟踪硬件所关注的是:最后32个PC值的跟踪,或最后16个不连续的PC值的跟踪。最后32个PC值的跟踪,用于观察最近的程序

14、流的历史。例如,一个子程序可能在子程序里的许多不同地方调用。在子程序里设置断点,就可以用PC跟踪能力来判断主程序里调用该子程序的位置。最后16个不连续的PC值的跟踪,用于观察程序流的长期历史。在高度依赖条件转移和调用的代码里,这种功能非常有用。3.实时数据交换实时数据交换(RTDX)RTDX是在目标系统和运行调试器的仿真主机之间交换数据。片内的实时仿真硬件提供一条与调试控制共享的路径。目标系统与主机之间的数据交换率可达2 MB/s,所开辟的新的仿真能力包括:仿真到目标系统的实时输入;在主机上实时地更新目标系统的性能曲线。2.2.1 CPU结构概述结构概述C55X DSP是一款采用改良型哈佛结构

15、,高度模块化的数字信号处理器,拥有比普通DSP更为丰富的硬件资源,能够有效提高运算能力。其内核结构如图2-1所示,整个处理器内部分为5个大的功能单元:存储器缓冲单元(M单元)、指令缓冲单元(I单元)、程序控制单元(P单元)、地址生成单元(A单元)和数据计算单元(D单元),各个功能单元之间通过总线连接。2.2 TMS320C55XCPU的结构的结构C55X DSP中有1条32位程序数据总线(P总线),1条24位程序地址总线(PA总线),5条16位的数据总线(B、C、D、E、F总线)和5条24位的数据地址总线(BA、CA、DA、EA、FA总线)。这种高度模块化的多总线结构使得C55X DSP拥有超

16、强的并行处理能力。下面分别介绍总线和各功能单元。图2-1 TMS320C55X内核结构图2.2.2 片内的数据和地址总线片内的数据和地址总线在图2-1中所示的总线有:(1)读数据的数据总线(BB、CB、DB)。这3组总线从数据空间或I/O空间,传送16 bit的数据到CPU的各个功能单元。BB总线仅从内部存储器传输数据到D单元(主要是到两个MAC单元。有特殊指令时,用BB、CB和DB这3组总线来同时读取3个操作数。(注意:BB总线没有连接到外部存储器上。如果一条指令要从BB总线上获取一个操作数,则该操作数必须是内存中的数据。)CB和DB总线给P单元、A单元和D单元提供数据。对要求每次同时读两个

17、操作数的指令,需要利用CB和DB两组总线;对每次只读一个操作数的指令,就只用DB总线。(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的

18、程序代码的24 bit地址。(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上为写入到存储器

19、的数据传输地址。2.2.3 存储器缓冲单元存储器缓冲单元(M单元单元)M单元主要管理数据区(包括I/O数据区)与中央处理器(CPU)之间的数据传送,使得高速CPU与外部相对低速的存储器之间在吞吐量上的瓶颈可以得到一定程度的缓解。2.2.4 指令缓冲单元指令缓冲单元(I单元单元)在每个CPU周期,I单元接收到4 Byte(32 bit)程序代码,写入到它的指令缓冲队列(IBQ)中,并解码该缓冲队列中先前收到的l6 Byte程序代码。然后,把得到的数据传输到P单元、A单元和D单元里,以便执行。例如,编码到指令里的任何常数(为了加载寄存器,提供移位计数或识别比特数等),都要单独存放在I单元,然后传给

20、适当的单元。图2-2是I单元的基本框图。下面介绍一下I单元的主要部分。图2-2 指令缓冲单元(I单元)框图1.指令缓冲队列指令缓冲队列CPU从程序存储器一次可以提取32 bit代码。读程序的数据线(PB)从存储器提取32 bit的代码,放入指令缓冲队列。该队列一次最多可以存放64 Byte的代码。当CPU准备好解码后,每次可以从队列里取6 Byte送往指令解码器。另外,为了协助指令的流水操作,指令缓冲队列还能完成以下操作:(1)执行队列中的一个代码块(局部循环指令)。(2)当测试了一个程序流控制指令(条件分支、条件调用或条件返回),则可以随机提取指令。2.指令解码器指令解码器在指令流水的解码阶

21、段,指令解码器从指令缓冲队列接收6 Byte的程序代码并解码。指令解码器可以实现:(1)识别指令边界,可以对8、16、24、32、40、48 bit的指令解码。(2)决定CPU是否并行执行两条指令。(3)将解码后的执行命令和立即数传送给程序流单元(P单元)、地址数据流单元(A单元)以及数据计算单元(D单元),可以使用一些指令,通过特定的数据路径,直接把立即数写到存储器或I/O空间。2.2.5 程序控制单元程序控制单元(P单元单元)P单元主要是通过判断是否满足条件执行指令的条件来控制程序地址的产生,达到控制程序流程的目的。程序控制单元中还含有程序控制寄存器、循环控制寄存器、中断寄存器和状态寄存器

22、等硬件寄存器。通过循环控制寄存器的设置,可以直接控制程序中的循环次数等,而不必像在普通DSP中一样在外部对循环条件进行判断,从而可以有效地提高运行效率。图2-3是P单元的基本框图。下面介绍P单元的主要部分。图2-3 程序控制单元(P单元)框图1.程序地址的产生和程序控制逻辑程序地址的产生和程序控制逻辑在P单元内,程序地址产生逻辑产生24 bit的地址,以便从程序存储器里提取指令。P单元通常产生顺序地址,但也可以产生非顺序的地址,这时程序地址产生逻辑可从I单元接收立即数,从D单元接收寄存器的值。地址产生后,就通过读程序的地址总线(PAB)送往存储器。程序控制逻辑从I单元接收立即数,测试从A单元和

23、D单元来的结果,并执行以下操作:(1)对一个条件指令,测试其条件的真假,然后将测试结果递交程序地址产生逻辑。(2)当有中断请求,并已使能时,启动中断服务。(3)控制单循环语句后面的指令的循环,或块循环语句后面的指令块的循环。可以嵌套三层循环,把一个块循环语句嵌套在另一个块循环语句里,再把一条单循环语句嵌套在以上任意一个块循环里,或者两个块循环里。所有的循环操作都可以中断。C55X系列DSP可以在作数据处理的同时,并行地执行程序控制指令。2.P单元内的寄存器单元内的寄存器对程序流寄存器的访问是有限制的,用户不能对PC进行读或写操作,对RETA和CFCT两个寄存器的访问只能用以下两条语句:MOV

24、dbl(Lmem),RETA和MOV RETA,dbl(Lmem)。所有其他的寄存器,都可以存放从I单元来的立即数,且可以和数据存储器、I/O空间、A单元的寄存器以及D单元的寄存器双向通信。P单元包含下列寄存器。1)程序流寄存器 PC 程序计数器;RETA 返回地址寄存器;CFCT 控制流关系寄存器。2)块循环寄存器 BRC0,BRC1 块循环计数器0和1;BRS1,BRC1 存储寄存器;RSA0,RSA1 块循环起始地址寄存器0和l;REA0,REA1 块循环结束地址寄存器0和1。3)单循环寄存器 RPTC 单循环计数器;CSR 经过计算的单循环寄存器。4)中断寄存器 IFR0,IFR1 中

25、断标志寄存器0和1;IER0,IER1 中断使能寄存器0和l;DBIER0,DBIERl 调试中断使能寄存器0和1。5)状态寄存器 ST0_55ST3_55 状态寄存器0、1、2、3。2.2.6 地址生成单元地址生成单元(A单元单元)A单元的功能是产生读写数据空间的地址。地址生成单元由数据地址产生电路(DAGEN)、16位的算术逻辑单元(ALU)和一组寄存器构成。C55X DSP地址生成单元与其他功能模块分开,不会因为地址产生的原因使得单条指令需要在多个时钟周期内完成,提高了DSP的运行效率。A单元中的寄存器包括数据页寄存器、辅助寄存器、堆栈指针寄存器、循环缓冲寻址寄存器和临时寄存器等。A单元

26、框图如图2-4所示。图2-4 地址数据流单元(A单元)框图下面介绍A单元的主要部分。1.数据地址产生单元数据地址产生单元(DAGEN)DAGEN产生读写数据空间的所有地址。它可以接收I单元来的立即数,以及A单元来的寄存器值。对于使用非直接寻址模式的指令,P单元指示DAGEN是用线性寻址还是循环寻址。2.A单元的算术逻辑单元单元的算术逻辑单元(A单元单元ALU)A单元包含一个16 bit的ALU,接收I单元来的立即数,与存储器、I/O空间、A单元的寄存器、D单元的寄存器以及P单元的寄存器作双向通信。它还可以作以下操作:(1)加法、减法、比较、布尔逻辑运算、带符号移位、逻辑移位以及绝对值运算;(2

27、)对A单元内寄存器的各位以及存储器的各位,作测试、设置、清除以及求补码;(3)对寄存器的值作修改和移位;(4)对寄存器的值作循环移位;(5)将移位器里的结果送至A单元的寄存器。3.A单元的寄存器单元的寄存器A单元包括并且使用以下的寄存器。1)数据页寄存器 DPH,DP 数据页寄存器;PDP 外设数据页寄存器。2)指针寄存器 CDPH,CDP 系数数据指针寄存器;SPH,SP,SSP 堆栈指针寄存器;XAR0XAR7 辅助寄存器。3)循环缓冲寄存器 BK03,BK47,BKC 循环缓冲大小寄存器;BSA01,BSA23,BSA45,BSA67,BSAC 循环缓冲起始地址寄存器。4)暂时寄存器 T

28、0T3 暂时寄存器0、1、2、3。所有这些寄存器都可以接收I单元来的立即数,并可以接收从P单元的寄存器、D单元的寄存器以及数据存储器来的数据,也为它们提供数据。在A单元里,寄存器可以和DAGEN及A单元的ALU作双向通信。2.2.7 数据计算单元数据计算单元(D单元单元)D单元是C55X DSP中主要的数据执行部件,完成大部分数据的算术运算工作。它由移位器、40 bit ALU、两个17 bit的乘法累加器(MAC)和若干寄存器构成。数据计算单元的两个乘法累加器能够并行使用,可以有效提高DSP运行效率。D单元中的寄存器包括累加器和两个用于维特比译码的专用指令寄存器。D单元包括了CPU的基本计算

29、单元。图2-5是D单元的基本框图。下面介绍D单元的主要部分。图2-5 数据计算单元(D单元)框图1.移位器移位器D单元的移位器接收I单元来的立即数,与存储器、I/O空间、A单元的寄存器、D单元的寄存器、P单元的寄存器作双向通信。此外,它可以将移位后的值提供给D单元的ALU(作进一步计算)及A单元的ALU(作为结果存放在A单元的寄存器)。该移位器还可以作以下操作:(1)将40 bit的累加器值,左移达31 bit或右移达32 bit,移位计数可从暂时寄存器(T0T3)读取,或由指令里的常数来指定;(2)将16 bit的寄存器、存储器以及I/O空间的值左移达31 bit或右移达32 bit,移位计

30、数可从暂时寄存器(T0T3)读取,或由指令里的常数来指定;(3)将16 bit的立即数左移达15 bit,必须在指令里指定一个常数作为移位计数;(4)归一化累加器值;(5)压缩和扩展bit域,作bit计数;(6)对寄存器值作循环移位;(7)在累加器值被存储到数据存储器之前,对它们作取整或饱和运算。2.D单元算术逻辑单元单元算术逻辑单元(D单元单元 ALU)CPU在D单元里包含一个40 bit的ALU,接收I单元来的立即数,与存储器、I/O空间、A单元的寄存器、D单元的寄存器、P单元的寄存器作双向通信。另外,还可接收移位器的结果。D单元的ALU还执行以下操作:(1)加法、减法、比较、取整、饱和、

31、布尔逻辑以及绝对值运算;(2)在执行一条双16 bit算术指令时,同时进行两个算术操作;(3)测试、设置、清除以及求D单元寄存器补码;(4)移动寄存器的值。3.两个乘法累加器两个乘法累加器(MAC)两个MAC支持乘法和加/减法。在单个机器周期内,每个MAC可以作一次17 bitl7 bit的乘法(小数或整数乘法),以及一次40 bit的加法/减法(带有可选的32/40 bit的饱和运算)。累加器(D单元的寄存器)接收MAC的所有结果。MAC接收I单元来的立即数,接收从存储器、I/O空间以及A单元的寄存器来的数据值;和D单元寄存器、P单元寄存器作双向通信。MAC的操作会影响P单元状态寄存器的某些

32、位。4.D单元寄存器单元寄存器D单元包含并使用以下的寄存器。累加寄存器 AC0AC3累加器0、1、2、3;变换寄存器 TRN0,TRN1变换寄存器0、1。以上寄存器可以接收I单元来的立即数,也可以接收从P单元的寄存器、A单元的寄存器、移位器以及数据存储器来的数据,也为它们提供数据。在D单元内,寄存器与移位器、D单元ALU以及MAC作双向连接。TMS320C55X系列DSP统一了对数据/程序空间和I/O空间的访问。数据空间的地址用来访问通用存储器和存储器映射CPU寄存器,CPU用程序空间地址从存储器读取指令,I/O空间可以通过外设进行双向通信。片上的引导程序(Boot Loader)用以将代码和

33、数据装入片内存储器。2.3 TMS320C55X DSP的存储的存储器和器和I/O空间空间2.3.1 存储器映射存储器映射存储器的所有16 MB空间均可作为程序空间或数据空间来访问。当CPU使用程序空间从存储器读程序代码时,它使用24 bit地址(按byte)。当程序访问数据空间时,则用23 bit地址(按16 bit字)。这两种情况下,地址总线都传输24 bit值;但在访问数据空间时,最低bit必须是0。数据空间分成128个主数据页(0127),每页有64 K个地址。指向某个主数据页的指令,包含一个7 bit的主数据页值和一个16 bit的偏移值。存储器映射图如图2-6所示。图2-6 存储器

34、映射图在数据页0上,最前面的96个地址(00 0000h00 005Fh)保留给存储器映射寄存器(MMRS)。在程序空间里,有一个相应的192个地址的存储器块(00 0000h00 00BFh),建议不要将程序代码存储到这些地址里。关于片内存储器和片外存储器之间地址的划分,以及片内存储器的细节,参见C55X的数据手册,本书在第5章也对此作了部分介绍。2.3.2 程序空间程序空间只有当CPU从程序存储器读取指令时,才访问程序空间。CPU使用字节地址提取不同长度的指令。指令的提取要对齐偶地址的32 bit边界。下面,我们来看程序空间的地址是如何组织以及如何从程序空间中读取指令的。当CPU从程序存储

35、器读取指令时,使用字节地址,即地址要分配给各个字节,这些地址的宽度是24 bit。DSP支持8、16、24、32、48 bit的指令。下面的例子说明指令在程序空间里是如何组织的。假设5条不同长度的指令存放在32 bit宽的存储器里,每条指令的地址就是它的最高字节(操作代码)的地址。空白的字节中不存放任何代码。假设该子程序的第一条指令是指令C,其字节地址是00 0106h,则这些指令在程序空间的地址组织如表2-1所示。表表2-1 程序空间的地址组织举例程序空间的地址组织举例 指 令 大 小 地 址A 24 bit 00 0101hB 16 bit 00 0104hC 32 bit 00 0106

36、hD 8 bit 00 010AhE 24 bit 00 010Bh由上可见,将指令存放到程序存储器时不需要对齐指令,但是在提取指令时必须对齐偶地址的32 bit边界。提取指令时,CPU从最低两个bit(LSB)为00的地址读取32个bit。也就是说,提取地址的(用十六进制表示)最低位总是0h、4h、8h或0Ch。CPU不连续执行时,写到程序计数器(PC)的地址可能与提取地址不同。只有PC地址最低两个bit为00时,才和提取地址相同。PC包含00 0106h,但程序读地址总线(PAB)传送的是前面32 bit边界的byte地址,即00 0104h。CPU提取从00 0104h开始的4个byte

37、的代码包,执行的第一条指令就是指令C。2.3.3 数据空间数据空间当程序读写存储器或寄存器时,需要访问数据空间。CPU使用字地址来读/写8、16或32 bit的值。对于一个特定的值,所需要生成的地址取决于它在数据空间存放时与字边界的关系。CPU对数据空间的访问使用字地址,这些字地址的宽度是23 bit,分配给各个16 bit字。地址总线的宽度是24 bit。CPU读写数据空间时,地址总线就在23 bit地址的后面再添上一个0。例如,设有一条指令读取在23 bit地址00 0102h处的一个字,读数据地址总线传输的24 bit正确值为00 0204h:字地址 000 0000 0000 000l

38、 0000 0010数据读地址总线 0000 0000 0000 0010 0000 0100因为CPU在数据空间是用32 bit地址来访问字,如果要访问一个byte,CPU必须访问含该byte的字。CPU访问长字时,所需地址是32 bit值的最高字(MSW)的地址。最低字(LSW)的地址取决于最高字(MSW)的地址。如果MSW的地址是偶数,LSW在下一个地址访问;如果MSW的地址是奇数,LSW在前一个地址访问。当给出了MSW(LSW)的地址时,对它的最低位取反,即可获得LSW(MSW)的地址。下面的例子说明如何在数据空间里组织数据,如表2-2所示。32 bit宽的存储器里存放7个不同长度的数

39、据。表表2-2 数据空间的数据组织举例数据空间的数据组织举例数据值 数据类型 地 址A Byte(8 bit)00 0101hB Word(16 bit)00 0104hC Long word(32 bit)00 0106hD Long word(32 bit)00 010AhE Word(16 bit)00 010BhF Byte(8 bit)00 0101hG Byte(8 bit)00 0101h要访问一个长字,必须指向它的最高字(MSW)。在地址00 0102h处访问C,在地址00 0105h处访问D。字地址也用来在数据空间里访问byte。例如,访问地址00 0107h即可访问F(高字

40、节)和G(低字节)。专用的字节指令会指明访问的是高字节还是低字节。2.3.4I/O空间空间I/O空间与数据空间和程序空间是分开的,并且只能用来访问DSP外设上的寄存器。I/O空间里的字地址宽度是16 bit,可以访问64 K个地址。CPU用数据读总线DAB来读数据,用数据写总线EAB来写数据。CPU在I/O空间读/写时,16 bit地址的前面要补0。例如,设一条指令从16 bit地址0102h处读取一个字,则DAB传输的24 bit地址为00 010211。片上启动加载程序(Boot Loader)提供一些选项,在上电或复位时从外设转移代码和数据到C55XDSP里的RAM。例如,TMS320V

41、C5510DSP的Boot Loader允许用以下方式加载RAM:从外部16 bit或32 bit的异步存储器;通过强化的主机口(EHPI);通过多通道缓冲串口0(元长度为8 bit或16 bit)。2.4 启动加载程序启动加载程序对于特定的C55XDSP,其数据手册中包含它的boot选项清单。通过TMS320C55X汇编语言工具用户指南可以了解C55X的十六进制转换程序,将有助于使用Boot Load。本章介绍了TMS320C55X系列DSP的CPU结构及相关知识,这些对理解DSP是如何工作的有很好的帮助。本章内容对于初学者来说有一定的难度,读者可以在用到本章的相关知识时再来反复阅读,这对迅速掌握DSP技术有很大的益处。2.5 本本 章章 小小 结结1.简述C55X DSP的主要性能和优点。2.简述C55X采用哪些手段来降低功耗。3.处理器内部分为哪五个大的功能单元,并简述它们的功能。4.简述C55X程序空间的地址是如何组织的,以及如何从程序空间中读取指令。5.简述C55X如何在数据空间里组织数据。习题与思考题习题与思考题

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《DSP处理器原理与应用》课件第2章.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|