好文档 - 专业文书写作范文服务资料分享网站

DSP的习题答案

天下 分享 时间: 加入收藏 我要投稿 点赞

1. DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供

特殊的DSP 指令,可以用来快速地实现各种数字信号处理算法. 特点: 一个指令周期内可完成一次乘法和一次加法。程序和数据空间分开,可以同时访问指令和数据。具有低开销或无开销循环及跳转的硬件支持。具有在单周期内操作的多个硬件地址产生器。可以并行执行多个操作。支持流水线操作,使取指、译码和执行等操作可以重叠执行。 与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。 2. 1)DSP的C语言是标准的ANSI C,它不包括同外设联系的扩展部分。但在CCS中,为了方便调试,可以将数据通过prinf命令虚拟输出到主机的屏幕上。2)DSP的C语言的编译过程为,C编译为ASM,再由ASM编译为OBJ。因此C和ASM的对应关系非常明确,非常便于人工优化。3)DSP的代码需要绝对定位;主机的C的代码有操作系统定位。4)DSP的C的效率较高,非常适合于嵌入系统。

3.经典产品TMS320C1X、TMS320C25、TMS320C3X/4X、TMS320C5 X、TMS320C8X。目前主流系列TMS320C2000,用于数字化控制领域 TMS320C5000,用于通信、便携式应用领域 TMS320C6000,音视频技术、通信基站 4. C5000概况 为16位定点整数 DSP处理器 迄今已有三代产品,即TMS320C5x、TMS320C 54x和TMS320C55x 同代产品具有相似的CPU结构和不同的片上存储器和外围电路。存储器、外围电路与CPU集成在一个芯片上,构成了一个单片计算机系统,降低整个系统的成本、体积,提高可靠性

5.为C5000系列的最新一代产品,与C54x的源代码兼容 与C54x相比处理速度明显提高、功耗明显降低 在结构上复杂的多,采用近似“双CPU结构”

6. DSP的硬件结构最突出的特点 Harvard结构:程序与数据存储空间分开,各有独立的地址总线和数据总线,取指和读数可以同时进行,从而提高速度。流水操作:取指 译码 寻址 取数 运算 储存。 独立的硬件乘法器:通用计算机的乘法用软件实现,用若干个机器周期。DSP有硬件乘法器,用MAC指令(取数、乘法、累加)在单周期内完成。独立的DMA总线和控制器:有一组或多组独立的DMA总线,与CPU的程序、数据总线并行工作。移位:每调用一次移位指令移动1-bit。溢出:通用CPU中,溢出发生后,设置溢出标志,不带符号位时回绕,带符号位时反相,带来很大的误差。数据地址发生器(DAG):产生所需要的数据地址,节省公共ALU的时间。

7. 如图的硬件乘法器,说说其工作原理:从数据存储器(from data memory)来的数据,存在暂存中,MUX(多路器),2选1的开关,1个来自于数据存储器,1个来自于程序存储器(如程序中的系数),为改进的哈佛结构,允许在程序存储器中取数据,送到乘法器中,得到32bit的数据,存入P寄存器。另外,也可以从数据存储器中取回一个数,放到P寄存器,参与累加,P寄存器的数据还要进行移位,移位后的数据可以参与运算,也可以直接存储到数据寄存器中。

8. TI的主流DSP 及其简介C2000系列:C2000系列是一个控制器系列,全部为16位定点DSP。C5000系列:C5000系列是一个定点低功耗系列。C3X系列:C3X系列虽然不是目前TI的主流产品,但作为一个32位的低价位浮点DsP,仍然被广泛使用。C6000系列:C6000系列是一个32位的高性能的DSP芯片,目前处理速度从800MIPS一2400MIPS,而且还在不断提高。

9.C55x CPU内部总线结构 内部独立总线:12组。程序地址总线(PAB):1组,24位。程序数据总线(PB):1组,32位。数据读地址总线(BAB、CAB、DAB):3组,24位。数据读总线(BB、CB、DB):3组,16位。数据写地址总线(EAB、FAB):2组,24位。数据写总线(EB、FB):2组,16位。

10. C55x的CPU组成 指令缓冲单元(I单元)组成: 32×16位指令缓冲队列; 指令译码器。 功能: 接收程序代码并放入指令缓冲队列;由指令译码器解释指令,再把指令流传给其它的工作单元(P,A,D)。程序流单元(P单元)组成: 程序地址发生器;程序控制逻辑功能:产生所有程序空间地址,并送到PAB总线。地址-数据流单元(A单元)组成:数据地址产生电路 (DAGEN);附加16位ALU和1组寄存器功能:产生读/写数据空间地址,并送到BAB、CAB、DAB总线。数据运算单元(D单元)组成: 1个40位的筒形移位寄存器(barrel shifter); 2个乘加单元(MAC);1个40位的ALU; 若干寄存器。功能: CPU中最主要的部分,是主要的数据处理部件。存储器接口单元(M单元)是CPU和数据空间或I/O空间之间传输所有数据的中间媒介。

11. 简述用作数据地址空间的寄存器1.辅助寄存器8个 (XAR0~XAR7)2 系数数据指针(XCDP/CDP) 3.5个16位循环缓冲器首地址寄存器4.3个16位循环缓冲器大小寄存器 5数据页寄存器(XDP/DP) 6外设数据页寄存器(PDP)7堆栈指针(XSP/SP,XSSP/SSP)

12. C55x程序空间、数据空间和I/O空间的特点 CPU使用24位宽的字节寻址从程序存储器读取指令地址总线是24位的,通过程序读数据总线一次可以读取32位的指令,指令中每8位占有一个字节地址,对齐从程序空间提取的指令,每次只能读32位的指令。

CPU使用字地址访问数据空间,字地址为23位,寻址16位的数据,地址线为24位,当CPU读/写数据空间时,23位的字地址最低位补一个0成为总地址。对于32位的长字,访问地址为长字的高字(MSW)地址。如果MSW是偶地址,则长字的低(LSW)地址为下一个地址, 如果MSW是奇地址,则长字的低(LSW)地址为前一个地址。 I/O空间和程序/数据空间是分开的,只能用来访问DSP外设上的寄存器,I/O空间里的字地址宽度是16位,可以访问64K个地址

13.k16绝对寻址方式 MOV *abs16(#2002h),T2 k23绝对寻址方式 MOV *(#032002h),T2 I/O绝对寻址方式 MOV port(#2),AR2 。DP直接寻址方式 MOV dbl(@0005h),pair(T2) SP直接寻址方式 MOV dbl(*SP(5)),pair(T2) 寄存器位直接寻址方式 BSET @2,AC2 PDP直接寻址方式 MOV port(@0), T2 AR间接寻址数据空间 MOV dbl(*AR4), pair(T2) AR间接寻址寄存器位 BSET *AR0,AC3 AR间接寻址I/O空间 MOV port(*AR4), T2 数据存储器的寻址(三种寻址方式)存储器映射寄存器的寻址(三种) 寄存器位的寻址(直接和间接寻址方式) I/O空间的寻址(三种寻址方式) 循环寻址:循环寻址可以和任意一种间接寻址模式一起使用。每一个辅助寄存器和系数数据指针,作为对数据或寄存器位的指针时,都可以独立配置成线性或循环寻址.

14.TMS320C55x的指令系统 助记符指令集:采用助记符来表示指令。代数指令集:指令类似于代数表达式,运算关系比较清楚明了

15..解释汇编语句:ADD uns(*AR3),CARRY,AC1,AC0 |No | 3 | 1 | X | D - ALU | NO:不能并行执行 3:指令的长度为3字节 1:周期为1 X:在X(执行)流水线阶段处理 D – ALU:在D单元ALU执行。执行结果:AC0=(*AR3)+CARRY+AC1

状态位: Affected by CARRY,C54CM,M40等 Affects ACOVx,ACOVy,CARRY 16. TMS320的汇编程序包含的内容 汇编指令(伪指令)、汇编语言指令、宏指令、 注释 17. 助记符方式汇编程序语法

[label][:] mnemonic [operand list] [;comment]

[标号][:] 助记符 [操作数] [;注释] 所有的语句必须由语句标号、空格、*号或 ;号开头。 语句标号不是必须的,如果用,就必须在第一列。语句中的各部分之间,由一个或多个空格分开。 注释不是必须的。注释可以从第一列的 * 号或 ;号开头;如果不是从第一列开始,就必须用 ;号开头。 18. 简述C55x中C 优化编译器的特点:使用多种先进技术来从 C 源代码产生高效汇编代码。通用优化可用于任何 C 代码,而对各片种的专门优化更适应该片种的结构特点。通过简化循环、重新安排语句和表达式、将变量安排入寄存器等方法来改善执行速度,减小C程序的大小。

19.汇编器:将汇编语言的源程序文件汇编成为机器语言的目标程序文件,其格式为COFF(公用目标文件格式)。汇编语言源程序可以包括汇编语言指令、汇编指令和宏指令。

20.连接器:连接器的基本任务是将目标文件连接在一起,产生可执行模块。连接器可以接受的输入文件包括汇编器产生的COFF目标文件、命令文件、库文件、以及已部分连接好了的文件。 21.归档器:归档器允许用户将一组文件归入一个档案文件(库)。

22.编译器给出了关键字ioport,以支持I/O寻址模式:ioport可以作为数组中的元素;在结构中使用ioport,只能是指向ioport数据的指针而不能直接作为结构的成员。关键字“interrupt”定义中断函数:中断操作需要使用特定的寄存器保存规则,并具有特殊的返回顺序。 当C/C++代码被中断时,中断程序必须保存所有与程序有关的寄存器。 当使用“interrupt”关键字定义函数时,中断函数必须返回空并且没有参数传递。

onchip关键字:onchip关键字的作用是告诉编译器由该关键字定义的指针所指向的数据可以作为一个双乘法指令中的操作数。 如果onchip关键字向函数传递数据,或者最终所引用的数据是用onchip定义的,则该数据必须在片上内存。

23. 如何实现C语言与汇编语言的混合编程 :C55x的C/C++编译器允许使用者在C语言代码中直接嵌套汇编语句,嵌套汇编语句的语法十分简单,只需在嵌入的汇编语句前面加上asm标示符,左右加上一个双引号和一个小括号即可。

24.COFF目标文件通常包括3个默认段,即.text段,通常包含可执行代码.data段,通常包含初始化数据.bss段,通常为未初始化变量保留存储空间

25.text、.data、.sect创建初始化段.bss和.usect创建未初始化段.sect与.usect创建自定义段和子段 26.未初始化段 未初始化段占用处理器存储空间,常常分配到RAM。未初始化段在目标文件里没有实际内容,仅仅用于保留存储空间,当程序在运行时用这些空间来创建和存储变量。汇编命令.bss和.usect用来创建未初始化数据区域。初始化段初始化段包含可执行代码或者初始化数据;当程序被装载时,它们就被放到处理器存储空间里。每个初始化段独立分配空间,可以引用在其他段定义的标识(symbol),链接器自动处理这些段间引用

27. 简述宏的定义 macname .macro [parameter] .macro 是一个伪指令,确认源语句为宏定义的第一行 [parameters] 选项,作为.macro伪指令的操作数。 model statements 每次调用宏时执行的指令或伪指令 .endm 终止宏定义

28. 简述链接器对段处理的两个处理任务 链接器对段的处理:将一个或多个COFF目标文件(.obj)中的各种段作为链接器的输入段,经链接后在一个可执行的COFF模块(.out)中建立各个输出段 为各个输出段选定存储器地址 。链接器有2条伪指令支持上述任务(通常放在链接器命令文件(.cmd)中执行,是命令文件的主要内容):MEMORY命令:描述系统实际的硬件资源 SECTIONS命令:描述\段\如何定位 29.DSP处理中断步骤:接收中断请求。响应中断请求。准备进入中断服务子程序。执行中断服务子程序。 30.C程序的代码和数据如何定位

1,系统定义: .cinit 存放C程序中的变量初值和常量; .const 存放C程序中的字符常量、浮点常量和用 const声明的常量; tch 存放C程序tch语句的跳针表; .text 存放C程序的代码; .bss 为C程序中的全局和静态变量保留存储空间; .far 为C程序中用far声明的全局和静态变量保留空间; .stack 为C程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果; .sysmem 用于C程序中malloc、calloc和realloc函数动态分配存储空间

2,用户定义: #pragma CODE_SECTION (symbol, \ #pragma DATA_SECTION (symbol, \

31.cmd文件由3部分组成: 1)输入/输出定义:.obj文件:链接器要链接的目标文件;.lib文件:链接器要链接的库文件;.map文件:链接器生成的交叉索引文件;.out文件:链接器生成的可执行代码;链接器选项 2)MEMORY命令:描述系统实际的硬件资源 3)SECTIONS命令:描述\段\如何定位 32.如何选择DSP?选择DSP可以根据以下几方面决定:

1)速度: 2)精度: 3)寻址空间: 4)成本: 5)实现方便6)内部部件 33.DSP同MCU相比的特点?

1)DSP的速度比MCU快,主频较高。 2)DSP适合于数据处理,数据处理的指令效率较高。 3)DSP均为16位以上的处理器,不适合于低档的场合。 4)DSP可以同时处理的事件较多,系统级成本有可能较低。 5)DSP的灵活性较好,大多数算法都可以软件实现。 6)DSP的集成度较高,可靠性较好。

34.DSP同嵌入CPU相比的特点?1)DSP是单片机,构成系统简单。 2)DSP的速度快。 3)DSP的成本较低。 4)DSP的性能高,可以处理较多的任务。

35.为什么要用DSP?3G技术和internate的发展,要求处理器的速度越来越高,体积越来越小,DSP的发展正好能满足这一发展的要求。因为,传统的其它处理器都有不同的缺陷。MCU的速度较慢;CPU体积较大,功

耗较高;嵌入CPU的成本较高。 DSP的发展,使得在许多速度要求较高,算法较复杂的场合,取代MCU或其它处理器,而成本有可能更低。

36.在定点DSP系统中可否实现浮点运算?当然可以,因为DSP都可以用C,只要是可以使用c语言的场合都可以实现浮点运算

37.中断管理寄存器:中断向量指针。中断标志寄存器。中断使能寄存器。调试中断使能寄存器。 38.C55X软件开发流程:用户采用C/C++语言或汇编语言编写源文件(.c/.asm)经C/C++编译器汇编器生成COFF格式的目标文件(.obj)再用链接器进行链接,生成在C55X上课执行的目标代码(.out) 然后再利用调试工具(软件调试/硬件调试)对可执行的目标代码进行仿真和调试。

指令程序:

例3-1,*abs16(#k16) 用于数据存储器寻址。设DPH=03h。

MOV *abs16(#2002h),T2 ;#k16=2002h,CPU从03 2002h处读取数据装入T2 MOV dbl(*abs16(#2002h)), pair(T2)

;#k16=2002h, #k16+1=2003h;CPU从03 2002h和03 2003h处读取数据,装入T2和T3

例3-2,*(#k23) 用于数据存储器寻址。

MOV *(#032002h),T2 ;k23=03 2002h,CPU从03 2002h处读取数据装入T2 MOV dbl(*(#032002h)),pair(T2)

;k23=03 2002h,k23+1=03 2003h;CPU从03 2002h和03 2003h处读取数据,装入T2和T3

例3-3,@Daddr用于数据存储器寻址。设DPH=03h,DP=0000h。 MOV @0005h,T2

;DPH:(DP+Doffset)=03:(0000h+0005h)=03 0005h;CPU从03 0005h处读取数据装入T2 MOV dbl(@0005h),pair(T2)

;DPH:(DP+Doffset)=03 0005h, DPH:(DP+Doffset–1)=03 0004h ;CPU从03 0005h和03 0004h处读取数据装入T2和T3

例3-4,*SP(offset)用于数据存储器寻址。设SPH=0,SP = FF00h。 MOV *SP(5),T2

;SPH:(SP+offset)=00 FF05h,;CPU从00 FF05h 处读取数据装入T2 MOV dbl(*SP(5)), pair(T2)

;SPH:(SP+offset)=00 FF05h,SPH:(SP+offset–1)=00 FF04h ;CPU从00 FF05h和00 FF04h处读取数据装入T2和T3

例3-5,*ARn用于数据存储器寻址,设ARn工作在线性寻址状态。 MOV *AR4, T2

; AR4H:AR4 = XAR4, CPU从XAR4处读取数据装入T2 MOV dbl(*AR4), pair(T2)

;第一个地址为XAR4. 如果XAR4为偶数,则第二个地址XAR4+1

如果XAR4为奇数,则第二个地址为XAR4-1 CPU从XAR4和AR4+1(或AR4-1)处读取数据装入T2/T3

例3-6,*(ARn+T0)用于数据存储器寻址,设ARn工作在线性寻址状态。 MOV *(AR4+T0),T2

;AR4H:AR4=XAR4,CPU从XAR4处读取数据装入T2然后AR4=AR4+T0

MOV dbl(*(AR4+T0)),pair(T2) ;第一个地址为XAR4如果XAR4为偶数,则第二个地址XAR4+1 如果XAR4为奇数,则第二个地址为XAR4-1

CPU从XAR4和AR4+1(或AR4-1)处读取数据装入T2/T3, 然后AR4=AR4+T0

例3-7,*(ARn+T0B)用于数据存储器寻址,设ARn工作在线性寻址状态。 MOV *(AR4+T0B),T2

;AR4H:AR4=XAR4,CPU从XAR4处读取数据装入T2,然后AR4=AR4+T0;在执行加法时,采用码位倒置算法

DSP的习题答案

1.DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,可以用来快速地实现各种数字信号处理算法.特点:一个指令周期内可完成一次乘法和一次加法。程序和数据空间分开,可以同时访问指令和数据。具有低开销或无开销循环及跳转的硬件支持。具有在单周期内操作的多个硬件地址产生器。可以并行执行多个操作。支持流水线操作,使取指、
推荐度:
点击下载文档文档为doc格式
6cqme8ut517yogl1itye
领取福利

微信扫码领取福利

微信扫码分享