浙师大08DSP复习内容整理.docx
《浙师大08DSP复习内容整理.docx》由会员分享,可在线阅读,更多相关《浙师大08DSP复习内容整理.docx(8页珍藏版)》请在冰豆网上搜索。
浙师大08DSP复习内容整理
DSP复习提纲
考试题型:
填空:
20分(10*2分)
选择:
20分(10*2分)
简答:
35分(5*7分)
程序分析题:
25分(三题)
含义:
名词解释:
DSP:
数字信号处理(DigitalSignalProcessing)
EDMA:
增强型直接存储器访问
DMA:
直接存储器访问控制器
HPI:
主机程序接口
EMIF:
外部存储器接口
CSR:
控制状态寄存器
AMR:
控制寄存器
第一章:
P1DSP技术的发展历程:
在DSP出现以前,数字信号处理只能依靠通用的微处理器(MPU)来完成,但MPU的处理速度无法满足高速、实时的要求。
随着快速傅里叶变换的发表,产生了一些通用处理器结构上专用乘法器构成的DSP芯片,如美国微系统公司的AMI子公司在1978年推出的世界上第一块DSP芯片S2811。
P2DSP有两种解释:
一种是DigitalSignalProcessing,指的是数字信号处理技术;一种是DigitalSignalProcessor,指的是数字信号处理器。
本书采用后一种解释,即数字信号处理器。
数字信号处理器又简称为DSP芯片,是一种专门用于数字信号处理的微处理器。
DSP芯片的内部结构采用程序和数据分开的哈佛结构,硬件结构采用专门的乘法器,指令运行采用流水线操作,编程语言采用特殊的DSP指令,这些可使DSP芯片快速地实现各种数字信号处理算法。
P2哈佛结构:
哈佛结构中的程序存储器和数据存储器是两个相互独立的存储器,程序和数据可存数在不同的存储空间中;其程序指令和数据的存储空间分开,程序与数据各自有自己的地址总线和数据总线。
(冯·诺依曼结构师程序指令和数据指令共用一个存储空间和单一的地址总线和数据总线。
)
(冯·诺依曼结构特点:
程序和数据共用一个存储空间,统一编址,依靠指令计数器提供的地址来区分指令数据还是地址。
对数据和程序进行分时读写,执行速度慢,数据吞吐量低。
哈佛结构:
程序和数据具有两个相互独立的存储空间,有着各自独立的程序(地址)总线和数据总线。
可同时对数据和程序进行寻址,大大提高了数据处理能力,非常适合实时处理。
改进的哈佛结构:
数据总线和程序总线之间的局部的交叉连接,允许数据存放在程序存储器中,并被算术运算指令直接使用,增强了芯片的灵活性,指令可以存储在高速缓冲器中,省去了从存储器中读取指令的时间,提高运行时间。
)
一般情况下,DSP执行一条指令,需要经过取指、译码、访问、执行等几个步骤。
P3DSP芯片最重要的特点是具有特殊的内部结构。
强大的信息处理能力以及较快的运行速度。
此外,DSP芯片还具有如下特点:
(1)在同一个指令周期内完成一次乘法和一次加法;
(2)程序和数据空间分开,并同时访问数据空间和程序空间;
(3)片内具有快速读写的DAM;
(4)具有低开销循环的指令;
(5)具有独立的硬件支持跳转;
(6)快读的中断处理能力和独立的硬件支持外部I/O的读写;
(7)在单指令周期内操作多个硬件地址;
(8)同时并行执行多个操作;
(9)★支持流水线操作,取值、译码和执行操作以流水线执行。
P3DSP分类
按工作时钟和指令类型分类:
DSP芯片可以分为静态和DSP芯片和具有一致性的
动态DSP芯片。
(管脚兼容)
按数据格式分类:
定点DSP芯片和浮点DSP芯片。
按用途分类:
通用型DSP芯片和专用型DSP芯片(达芬奇系列)。
注意:
最大的DSP芯片供应商(TI全球销量最大)
P13TMS320C6000的简介和构成:
DSP的体系结构采用甚长指令字(VLIW)结构,单指令字长为32bit,8个指令组成一个指令包,总字长为8*32=256bit
TMS320C6000的8个独立的功能单元中有两个16bit乘法器(32bit乘积)和6个算术逻辑单元(32/40bit)。
它采用加载/存储(load/store)体系结构,数据在多单元之间的传输依靠32个32bit通用寄存器。
(选择题,描述正确不正确)
P17DSP芯片的应用:
(1)经典信号处理:
数字滤波、快速傅里叶变换、频谱分析。
。
。
(2)现在信号处理:
AR、ARMA、小波分析。
。
。
(3)语音处理:
语音编码、语音合成。
。
(4)图像/图形:
二维和三维图形处理、图像压缩与传输、图像识别。
。
。
(5)军事:
保密通信、雷达处理、声纳处理、导航。
。
。
(6)仪器仪表:
频谱分析、函数发生、数据采集、地震处理。
。
。
(7)自动控制:
控制、深空作业、自动驾驶。
。
。
(8)医疗:
助听、超声设备、病人监护、心电图。
。
。
(9)家用电器:
数字音响、数字电视、可视电话。
。
。
第二章:
P20CPU组成:
C6x处理器由3个主要部分组成:
CPU内核、外设和存储器。
C62x和C67x的CPU中的8个功能单元可以并行操作,这些功能单元被分为类似的两套(A和B),每套由4个基本功能单元组成。
CPU有两组寄存器,每组寄存器由16个32位寄存器组成。
由于在运行期间做硬件数据相关性的检查,所以程序的并行性在编译时就被确定。
片内程序存储器的总线宽度为256位,使每个周期可取8条32位指令。
C62x和C67x芯片包括片内程序存储器和数据存储器,有些型号的C62x芯片将这些存储器作为高速缓存存储器。
外设包括直接存储器访问(DMA)、低功耗逻辑单元、外部存储器接口、串口、扩展总线、主机口和定时器等。
C64x芯片主要也包括片内程序存储器和数据存储器,外设包括增强型直接存储器访问(EMDA)、低功耗逻辑单元、外部存储器EMIFA和EMIFB接口、缓存串口、扩展总线、增强型主机口和定时器等。
CPU有两个可进行数据处理的数据通路A和B,每个通路有4个功能单元(.L、.S、.和.D)和一个包括16个(C64x为32个)32位寄存器的寄存器组。
p21CPU数据通路包括:
(1)2个通用寄存器组(A和B);
(2)8个功能单元(.L1、.L2、.S1、.S2、.M1、.M2、.D1和.D2);
(3)2个存储器读取通路(LD1和LD2);
(4)2个存储器存储通路(ST1和ST2);
(5)2个寄存器组交叉通路(1X和2X);
(6)2个数据寻址通路(DA1和DA2)。
在数据通路中有两个通用寄存器组(A和B),每个寄存器组包括16个(C64x为32个)32位寄存器。
寄存器组A包括A0~A15,寄存器组B包括B0~B15。
通用寄存器可用来存放数据和数据地址指针,寄存器A1、A2、B0、B1和B2可用于条件寄存器,寄存器A4~A7和B4~B7可用于循环寻址。
奇数寄存器偶数寄存器
31~8忽略
7~0
31~0
↓从寄存器读出↓
39~32
31~040位数据
奇数寄存器↓写入寄存器↓偶数寄存器
补0
39~32
31~040位数据
图2.140位长数据的寄存器存储方法
每个功能单元使用自己的数据通道可以对寄存器进行直接读写。
如果这些单元要读写另一个寄存器,则需要通过交叉通道1X和2X来将它们连接起来。
交叉通道允许功能单元从一个数据通道对另一个寄存器组中的操作数进行操作。
1X允许数据通道A的功能单元从寄存器组B中读取操作数。
而2X则允许数据通道B的功能单元从寄存器A中读取操作数。
P23流水线概念:
C6x的所有指令在执行过程中均通过流水线的取指、译码和执行3个级。
P38延迟时隙:
对于C62x和C64x的定点指令,延迟间隙在数量上等于从指令的源操作数被读取直到执行的结果可以被访问所使用指令周期。
P39并行操作:
DSP运行时,总是一次取指8条指令,组成一个取指包。
取指包的基本格式如图2.25所示。
取指包有256位(8个字)边界定位。
310310310310310310310310
/P
/P
/P
/P
/P
/P
/P
/P
指令A指令B指令C指令D指令E指令F指令G指令H
0000000100010000110010000101001100011100
(字节地址的最低位)
图2.25取指包的基本格式
P43寻址方式:
C6x有两种寻址方式:
线性寻址和循环寻址。
P44汇编伪指令:
常用的汇编伪指令:
线性汇编指令
段定义指令(见p47表2.13)
名称
说明
.bbs
变量段,该段位未初始化的变量保留空间
.data
数据段,该段包括初始化的数据
.sect
定义初始化的带名称的段
.text
代码段,该段包含程序代码
.usect
在一个未初始化的段中保留空间
简答题:
1.DSP特点:
(前面简介)
2.CCS操作环境:
步骤:
新建工程文件→向工程添加各种类型文件(基本包括源文件(.s;.asm;.sa),.cmd文件,库文件(.lib))→编译程序→加载程序→运行程序
最小的c应用程序项目中必须包括三个文件:
①主程序main.c
②连接命令文件.cmd
③c运行库文件res6000.lib
3.连接器命令文件的编写
连接过程中必须要求有一个*.cmd文件,也就是配置文件。
配置文件在连接过程中将定义DSP的RAM空间,然后将程序中的各个段分配到所定义的空间,也就是对存储空间起一个配置的作用。
例:
a.objb.objc.obj/*输入文件名*/
-oprog.out-mprog.map/*选项*/
MEMORY/*定义内存*/
{
RAM:
o=00000100hl=00000100h
ROM:
o=00001000hl=00000100h
}
SECTIONS/*定义段*/
{
.text>ROM/*将程序中的.text段放到ROM*/
.data>RAM
.bss>RAM
}
说明如下:
(1)配置文件的格式一般采用以上的MEMORY-SECTIONS格式
(2)配置文件中注释是“/**/”格式或者//格式
(3)配置文件中也可以由一些特殊的指令。
P114
(4)配置文件的段分为两类:
已初始化段和未初始化段
初始化段:
.text.cinit.const.switch
未初始化段:
.bss.stack.sysmem.far
4.C语言优化方法
①使用内联函数替代复杂的c/c++代码
②使用字访问短型数据
③使用双字访问32位字类型数据
④软件流水和循环
⑤减少流水堵塞
5.混合编程
P161汇编优化器伪指令:
(1)线性汇编文件的扩展名是“.sa”。
(2)线性汇编代码应该包括“.cproc”和“.endproc”命令。
“.cproc”和“.endproc”命令限定优化器优化的代码段。
“.cproc”放在这段代码的开始位置,(实现参数的传递,.cproc表示本函数是C可调用函数,其后为所传递的参数)“.endproc”放在这段代码的结尾。
(作为函数来标志)用这种方式可以设置需要优化的汇编代码段,如程序和函数等。
(3)线性汇编代码中可能包含“.reg”命令,该命令允许使用将要存入寄存器的数值的描述名字。
当使用“.reg”命令时,汇编优化器为数值选择一个寄存器,这个寄存器与对该值进行操作的指令所选择的功能单元相一致。
(暂时存放临时数据的寄存器的定名)
(LOOP:
作为循环返回的标志)
(4)线性汇编代码中可能包含“.trip”命令,该命令指出循环的迭代次数。
6.FIR滤波器(实验六)
7.DMA
DMA——PRICTL0主控制寄存器
0~1:
START,读写位。
设置DMA通道的开启和关闭,00停止,01开启但不自动
循环运行,10表示暂停,11表示开启而其自动循环运行。
2~3:
STATUS,只读位,反映DMA通道的运行状态,和START位相对应。
4~5:
SRCDIR,读写位,设置数据传输后源地址改变方式,00表示源地址不改变,
01表示递增,10表示递减,11表示根据DMA全局变址寄存器的INDEX位改变。
6~7:
DSTDIR,读写位,设置数据传输后目的地址改变方式,和SRCDIR同。
8~9:
ESIZE,读写位。
设置传输数据的位数,00表示32位数据,01表示16位数据,
10表示8位数据。
24:
PRI,读写位,选择DMA和CPU的优先级,0表示CPU优先,1表示DMA优先。
25:
TCINT,读写位,设置传输控制的中断,0表示禁止中断,1表示使能中断。