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,而且还在不断提高。
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个地址。
绝对寻址方式 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空间的寻址(三种寻址方式) 循环寻址:循环寻址可以和任意一种间接寻址模式一起使用。每一个辅助寄存器和系数数据指针,作为对数据或寄存器位的指针时,都可以独立配置成线性或循环寻址。
的指令系统助记符指令集:采用助记符来表示指令。代数指令集:指令类似于代数表达式,运算关系比较清楚明了。
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定义的,则该数据必须在片上内存。
23. 如何实现c语言与汇编语言的混合编程 :c55x的c/c++编译器允许使用者在c语言**中直接嵌套汇编语句,嵌套汇编语句的语法十分简单,只需在嵌入的汇编语句前面加上asm标示符,左右加上一个双引号和一个小括号即可。
24.coff目标文件通常包括3个默认段,即。text段,通常包含可执行**。data段,通常包含初始化数据。bss段,通常为未初始化变量保留存储空间。
创建初始化段。bss和。usect创建未初始化段。sect与。usect创建自定义段和子段。
26.未初始化段未初始化段占用处理器存储空间,常常分配到ram。未初始化段在目标文件里没有实际内容,仅仅用于保留存储空间,当程序在运行时用这些空间来创建和存储变量。
汇编命令。bss和。usect用来创建未初始化数据区域。
初始化段初始化段包含可执行**或者初始化数据;当程序被装载时,它们就被放到处理器存储空间里。每个初始化段独立分配空间,可以引用在其他段定义的标识(symbol),链接器自动处理这些段间引用。
DSP习题答案
答 用来指定目标存储器结构。5.在cmd文件中,section命令的主要作用是什么?答 用来控制段的构成与地址分配。处理器软件开发流程是什么?答 7.利用c语言与汇编语言混合编程优什么优点?答 可以充分地控制处理器的功能,为人工映射算法构成最有效的程序编码,效率高 可维护性和移植性好。的流水线技术是...
DSP课后习题答案
第一章。1 简述典型实时数字信号处理系统组成部分。答 包括 抗混叠滤波器 anti aliasing filter 模数转换器adc analog to digital converter 数字信号处理 数模转换器dac digital to analog converter 和抗镜像滤波器 ant...
DSP 复习题兼答案
一 单项选择题。1 tms320c54x dsp软硬件复位时,中断向量为 a ff00h b ff80h c 0080h d 0000h 2 tms320c54x dsp主机接口hpi是 位并行口。a 32 b 16 c 8 d 2 3.tms320c54x dsp采用改进的哈佛结构,围绕 条 位总...