DSP课后习题答案 下载本文

第一章

1.简述典型实时数字信号处理系统组成部分。 答:包括:抗混叠滤波器(Anti-aliasing filter)、模数转换器ADC(Analog-to-Digital Converter)、数字信号处理、数模转换器DAC(Digital-to-Analog Converter)和抗镜像滤波器(Anti-image filter) 。

2.简述X86处理器完成实时数字信号处理的优缺点。 答:利用X86处理器完成实时数字信号处理。特点是处理器选择范围宽,主板及外设资源丰富,有多种操作系统可供选择,开发、调试较为方便;缺点是数字信号处理能力不强,硬件组成较为复杂,系统体积、重量较大,功耗较高,抗环境影响能力较弱。 3.简述数字信号处理器的主要特点。 答:(1)存储器采用哈佛或者改进的哈佛结构;(2)内部采用了多级流水;(3)具有硬件乘法累加单元;(4)可以实现零开销循环;(5)采用了特殊的寻址方式;(6)高效的特殊指令;(7)具有丰富的片内外设。

4.给出存储器的两种主要结构,并分析其区别。 答:存储器结构分为两大类:冯·诺依曼结构和哈佛结构。冯·诺依曼结构的特点是只有一个存储器空间、一套地址总线和一套数据总线;指令、数据都存放在这个存储器空间中,统一分配地址,所以处理器必须分时访问程序和数据空间。哈佛结构程序存储器空间和数据存储器空间分开,具有多套地址、数据总线,哈佛结构是并行体系结构,程序和数据存于不同的存储器空间,每个存储器空间独立编址、独立访问。 5.简述选择数字信号处理器所需要考虑的因素。 答:应考虑运算速度、算法格式和数据宽度、存储器类型、功耗和开发工具。 6.给出数字信号处理器的运算速度指标,并给出其具体含义。

答:常见的运算速度指标有如下几种:

(1) 指令周期:执行一条指令所需的最短时间,数值等于主频的倒数;指令周期通

常以ns(纳秒)为单位。例如,运行在200MHz的TMS320VC5510的指令周期为5ns。

(2) MIPS:每秒百万条指令数。 (3) MOPS:每秒百万次操作数。

(4) MFLOPS:每秒百万次浮点操作数。 (5) BOPS:每秒十亿次操作数。

(6) MAC时间:一次乘法累加操作花费的时间。大部分DSP芯片可在一个指令周

期内完成MAC操作;

(7) FFT执行时间:完成N点FFT所需的时间。FFT运算是数字信号处理中的典型

算法而且应用很广,因此该指标常用于衡量DSP芯片的运算能力。

1

第二章

1.TMS320C55x DSP 有哪些特征和优点?(表2-2)

答:一个 32位 x 16位指令缓冲队列:缓冲变长指令并完成有效的块重复操作;

两个17位x17位的乘法累加器:在一个单周期执行双乘法累加操作; 一个40位算术逻辑单元(ALU):实现高精度算术和逻辑操作;

一个40位桶形移位寄存器:能够将一个40位的计算结果最高向左移31位或向右移32位;

一个16位算术逻辑单元(ALU):对主ALU并行完成简单的算术操作; 4个40位的累加器:保留计算结果,减少对存储单元的访问;

12条独立总线,其中包括3条读数据总线、2条写数据总线、5条数据地址总线、1条读程序总线、1条程序地址总线:为各种计算单元并行地提供将要处理的指令和操作数——利用C55x的并行机制的优点;

用户可配置IDLE域:改进了低功耗电源管理的灵活性。

2.TMS320C55x DSP 的内部结构由哪几部分组成?(图2-1)

答:C55x有一条32位的程序数据总线(PB),5条16位数据总线(BB、CB、DB、EB、FB)和1条24位的程序地址总线及5条23位的数据地址总线,这些总线分别与CPU相连。总线通过存储器接口单元(M)与外部程序总线和数据总线相连,实现CPU对外部存储器的访问;指令缓冲单元(I)、程序流程单元(P)、地址流程单元(A)和数据计算单元(D);以及存储器接口单元(M)。 3.简述指令缓冲单元(I)、程序流程单元(P)、地址流程单元(A)和数据计算单元(D)的组成和功能?

答:C55x的指令缓冲单元由指令缓冲队列IBQ(Instruction Buffer Queue)和指令译码器组成。在每个CPU周期内,I单元将从读程序数据总线接收的4B程序代码放入指令缓冲队列,指令译码器从队列中取6B程序代码,根据指令的长度可对8位、16位、24位、32位和48位的变长指令进行译码,然后把译码数据送入P单元、A单元和D单元去执行。

程序流程单元由程序地址产生电路和寄存器组构成。程序流程单元产生所有程序空间的地址,并控制指令的读取顺序。

地址流程单元包括数据地址产生电路、算术逻辑电路和寄存器组构成。数据地址产生电路(DAGEN)能够接收来自I单元的立即数和来自A单元的寄存器产生读取数据空间的地址。对于使用间接寻址模式的指令,由P单元向DAGEN说明采用的寻址模式。

数据计算单元由移位器、算术逻辑电路、乘法累加器和寄存器组构成。D单元包含了CPU的主要运算部件。D单元移位器能够接收来自I单元的立即数,能够与存储器、I/O空间、A单元寄存器、D单元寄存器和P单元寄存器进行双向通信,此外,还可以向D单元的ALU和A单元的ALU提供移位后的数据。

4.TMS320C55x DSP 的流水线操作包括多少个阶段?每一阶段完成什么操作? 答:两个。第一阶段是取流水线,即从内存中取出32位的指令包,放入指令缓冲队(IBQ)中,然后为流水线的第二阶段提供48位的指令包。第二阶段是指执行流水线,这部分的功能是对指令进行解码,完成数据的存取和计算。

5.TMS320C55x DSP有哪些片上外设?

答:两个20位的定时器。一个看门狗定时器。6通道直接存储器存取控制器(DMA)。

2

外部存储器接口(EMIF)。三个串口支持最多三个多通道缓冲串口(McBSP)或最多两个多媒体/安全数字卡接口。增强型主机接口(EHPI)是一个16位的并行接口。可编程锁相环(DPLL)时钟发生器。USB全速(12Mbps)从端口。I2C主从接口。一个实时时钟。

6.TMS320C55x 的寻址空间是多少?当CPU访问程序空间和数据空间时,使用的地址是多少位的?

答:C55x的寻址空间为16MB,当CPU从程序空间读取程序代码时,使用24位地址,当访问数据空间时,使用23位的地址。但是在访问数据空间时,将23位地址左移一位,并将地址总线上的最低有效位(LSB)置0,使得在对数据空间或程序空间寻址时,地址总线都传送24位地址。

7.符合IEEE1149.1标准的测试/仿真接口的引脚有哪几个?

答:TCK引脚、TDI引脚、TDI引脚、TMS、TRST、EMU0、EMU1/OFF

第三章

1. C55x DSP支持哪三种寻址模式?

答:C55x DSP支持三种寻址模式,绝对寻址模式;直接寻址模式;间接寻址模式。 2.简述k16绝对寻址和k23绝对寻址不同点和相同点。

答:不同k16绝对寻址的指令其操作数为*abs16(#k16),其中k16是一个16位的无符号常数。寻址方法是将7位的寄存器DPH(扩展数据页指针XDP的高位部分)和k16级联形成一个23位的地址,用于对数据空间的访问。该模式可以访问一个存储单元和一个存储映射寄存器。

和k23绝对寻址的指令其操作数为*(#k23),其中k23是一个23位的无符号常数。使用这种寻址方法的指令将常数编码为3字节(去掉最高位)。

相同点:k16绝对寻址和k23绝对寻址的指令不能与其他指令并行执行。 3.简述C55x DSP并行指令遵守的规则。

答:在并行指令中,必须遵守三条基本规则: ① 两条指令的总长度不能超过6个字节。

② 在指令的执行过程中不存在操作器、地址产生单元、总线等资源冲突。 ③ 其中一条指令必须有并行使能位或两条指令符合软-双并行条件。

4. 已知AC1=0200FC00H,AR3=0200H,(200)=3400H。 MOV *AR3+ << #16, AC1

执行上面指令后,AC1和AR3的值分别是多少?

答:Before After

AC1 00 0200 FC00 AC1 00 3400 0000 AR3 0200 AR3 0201 200 3400 200 3400

5. 已知AC0=EC000000H,AC1=00000000H,AR1=0200H,(200)=3300H,TC2=1。ADDSUBCC AR1, AC0, TC2, AC1

执行上面指令后,AC1、AR1和AC0的值分别是多少?

3

答:Before After

AC0 00 EC00 0000 AC0 00 EC00 0000 AC1 00 0000 0000 AC1 01 1F00 0000 AR1 0200 AR1 0200 200 3300 200 3300 TC2 1 TC2 1 SXMD 0 SXMD 0 M40 0 M40 0 ACOV1 0 ACOV1 1 CARRY 0 CARRY 1

6.已知AC0=69000000H,AC1=00230000H, AR1=EF00H,AR2=0201H, CDP=A067H。 执行下面指令后, AMAR *AR2+

:: MAC uns(*AR1), uns(*CDP), AC0 >> #16

AC0、 AR1、AR2和AC1的值分别是多少?

答:Before After

AC0 00 6900 0000 AC0 00 95C0 9200 AC1 00 0023 0000 AC1 00 0023 0000 *AR1 EF00 *AR1 EF00 AR2 0201 AR2 0202 *CDP A067 *CDP A067 ACOV0 0 ACOV0 1 ACOV1 0 ACOV1 0 CARRY 0 CARRY 0 M40 0 M40 0 FRCT 0 FRCT 0 SATD 0 SATD 0

7. 已知PC=004042H,AC0=0000000001H,根据下表的情况

B branch

执行上面指令后,PC和AC0分别是多少?

答:Before After

PC 004042 PC 006047

AC0 00 0000 0001 AC0 00 0000 0000

第四章

1.根据任务调度的方式不同,C55x处理器程序可以分为哪两类?并简述其优缺点。

4

答:一类是由程序自己完成任务调度,另一类是由嵌入式操作系统完成任务调度。

由程序自身完成任务调度程序运行效率高,对硬件中断响应快,程序运行稳定,适合于任务较为单一,实时性较强的应用;嵌入式操作系统完成任务调度,可以将应用分解为多个任务,简化了应用系统软件设计,更为重要的是良好的多任务设计有助于提高系统的稳定性和可靠性。

2.请利用指针将IO空间中地址从0x100到0x107中的值放置到数据空间*ptr指针当中。

答:ioport int *a; Int *ptr

void foo (void) {

i = 0x100; a = &i;

for(int j=0;j<=7;j++) ptr [j]=a[j]; }

3.在o3级优化情况下,利用中断读取0x100000地址,并将值存放到变量in_flag中。 答:变量in_flag定义 volatile unsigned int in_flag; 中断服务程序 interrupt void int_handler()

{

In_flag= (unsigned int *)0x100000; }

4.在C语言编写的程序中,分别给出利用C语言和嵌套汇编语言打开全局中断的程序代码。 答:C语言打开全局中断 IRQ_globalEnable(); 嵌套汇编语言打开全局中断

asm (“BCLR ST1_INTM”);

5.给出函数int fn(long l1, long l2, long l3, int *p4, int *p5, int *p6, int *p7, int *p8, int i9, int i10)中传送参数所使用的寄存器。 答:输入参数通过AC0、AC1、AC2、AR0、AR1、AR2、AR3、AR4、T0、T1传递,输出参数通过T0传送参数。

6.在.sine数据段中定义一个16点的正弦表,其数值采用Q15方式存放。(Q15即小数点在第15位) 答: .sina .word 0, 12539,23170,30273

.word 32767, 30273,23170,12539 .word 0,-12539,-23170,-30273

.word -32767,-30273,-23170,-12539

7.在.mydata段中为a,b,c分别预留10、20、5个字的空间。 答:

5