DSP复习文档终极版.docx
《DSP复习文档终极版.docx》由会员分享,可在线阅读,更多相关《DSP复习文档终极版.docx(12页珍藏版)》请在冰豆网上搜索。
DSP复习文档终极版
DSP技术知识要点(计科)
CHAP1
Ø冯、诺依曼结构和哈佛结构的特点
冯诺依曼:
该结构采用单存储空间,即程序指令和数据公用一个存储空间,使单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行的。
当进行高速运算时,不能同时进行取指令和取操作数,起工作速度慢。
哈佛结构:
该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作,指令执行操作,数据吞吐并行完成,大大提高了数据处理能力和指令的执行速度。
ØDSP芯片的特点(为何适合数据密集型应用)
采用哈佛结构
采用多总线结构
采用流水线技术
配有专用的硬件乘法-累加器
具有特殊的DSP指令
快速的指令周期
硬件配置强
支持多处理器结构
省电管理和低消耗
ØDSP芯片的分类
定点DSP芯片,精度和范围是不能同时兼顾的。
定点DSP是主流产品,成本低,对存储器要求低、耗电少,开发相对容易,但设计中必须考虑溢出问题。
用在精度要求不太高的场合。
浮点DSP芯片,精度高、动态范围大,产品相对较少,复杂成本高。
但不必考虑溢出的问题。
用在精度要求较高的场合。
Ø定点DSP的表示(Qm.n,精度和范围与m、n的关系)及其格式转换
1整数表示法
2小数表示法
3数的定标;
n越大,数值范围越小,但精度越高; 相反,n越小,数值范围越大,但精度就越低。
不同Qm.n形式的数进行加减运算时,通常将动态范围小的数据格式转换成动态范围大的数据格式。
即n大的数据格式向n小的数据格式转换。
方法:
将n 大的数向右移相差的位数,这时原数低位被移出,
高位则进行符号扩展。
ØTI公司的三大主力系列DSP芯片
C2x、C24x称为C2000系列,定位于控制类和运算量较小
的运用,主要用于代替MCU,应用于各种工业控制领域,尤其是电机控制领域。
C54x、C55x称为C5000系列,低功耗高性能,定位于中等计算量的应用。
主要用于便携式的通信终端。
C62x、C64x和C67x称为C6000系列,高性能,定位于具有较大计算量要求的应用,主要应用于高速宽带和图像处理等高端应用
ØDSP芯片的运算速度
CHAP2
ØTMS320C54x芯片的组成(三部分,相同系列不同芯片之间的区别和联系)
主要包括CPU、片内存储器和片内外设三个部分, 同一系列不同型号,cpu相同,而片内存储器和片内外设不相同。
ØTMS320C54X芯片的总线组成及使用。
1组程序总线PB;3组数据总线CB、DB、EB;4组地址总线PAB、CAB、DAB、EAB。
程序总线PB:
主要用来传送取自程序存储器的指令代码和立即操作数。
数据总线CB 、DB和EB:
CB和DB用来传送从数据存储器读出的数据; EB用来传送写入存储器的数据。
地址总线PAB、CAB、DAB和EAB :
用来提供执行指令所需的地址。
程序读:
PABPB
程序写:
PABEB
单数据读:
DABDB
单数据写:
EABEB
双数据读:
DABDB(低16位)
CABCB(高16位)
外设读:
DABDB
外设写:
EABEB
Ø累加器A、B的组成、两个累加器的区别、累加器内容的保存(移位、保存)
保护位、高阶位、低阶位;保护位、高阶位、低阶位
AGAHALBGBHBL
累加器A和B的区别是,AH可以用作乘法器的一个输入,使用MPYA指令。
只能使用累加器A寻址程序空间。
移位操作是在将累加器的内容存入存储器的过程中完成的。
由于移位操作是在移位寄存器中进行,所以操作后累加器的内容不变。
Ø桶形移位器的移位数的形式,MAC单元的特点(硬件乘法器)
移位数的形式和范围:
① 5位立即数,取值范围:
-16~15;
② ST1中的ASM位(5位数), 取值范围:
-16~15;
③ 暂存器T中的低6位数值,取值范围:
-16~31。
MAC单元的特点:
在单周期内完成。
ØCPU的3个状态和控制寄存器(主要位的作用及设置)
RSBX 1,9; SSBX SXM
ST0、ST1是存储器映射寄存器,是指这些寄存器不是在CPU内部,而是位于数据存储器空间第0页,因此可以使用通用的数据存储器存取指令来访问这些寄存器。
对ST0、ST1中单独的一位,可以使用RSBX和SSBX指令修改例如:
RSBX OVM ;设置溢出保护模式位
SSBX 1,8 ;设置符号扩展模式位
SSBX SXM ; 设置符号扩展模式位 可以使用LD指令修改DP和ASM
例如:
LD #23, DP ;设置数据存储器页指针
LD #-3, ASM ;设置移位数
ØTMS320C54X芯片的可寻址存储空间:
程序、数据(存储器映射寄存器MMR:
数据存储器的第0页)、I/O
共有192千字的可寻址存储空间
64千字的程序存储空间:
用来存放要执行的指令和指令执行中所需要的系数表
64千字的数据存储空间:
用来存放执行指令所需要的数据 64千字的I/O空间:
用来提供与外部存储器映射的接口,可以作为外部数据存储空间使用。
Ø片内存储器的3种形式以及SARAM、DARAM的特点
SARAM,DARAM,ROM
DARAM:
在一个指令周期内,可对其进行两次存取操作,即一次读出和一次写入;
SARAM:
在一个指令周期内,只能进行一次存取操作。
通常,SARAM和DARAM被映射到数据存储空间用来存储数据,也可以映射到程序空间用来存储程序代码。
Ø3个状态位对片内存储器映射到程序存储空间和数据存储空间的作用
P34MP/MC=0/1OVLY=0/1DROM=0/1
Ø引导程序(自举加载程序)的作用
将用户程序从片外EPROM搬到片内RAM,让程序可以快速执行。
Ø程序存储空间的分页扩展、数据存储器的分页管理
XPC来保存页地址(即A16~AX) ,页内地址(64K内)用程序计数器PC保存。
地址线数目为16、20、23,则相应的程序存储器寻址空间为64K、1M、8M。
对数据512页,128字。
DP页地址(9为),复位后,DP=0;前80H单元(数据页0)包含CPU寄存器和片内外设寄存器和暂存器。
Ø定时器定时时间的计算
CLKOUT×(TDDR+1)×(PRD+1)
CHAP3
Ø各种寻址方式特点及其应用,重在寻址方式的判断,注意有时一个语句可能用到多种寻址方式
1短立即数。
3、5、8、9位,单字指令; LD #2,ARP ;ARP=2(#k3)(ST0中) LD #3,ASM ;ASM=3(#k5)(ST1中)
② 长立即数。
16位,双字指令。
LD #1234h,A ;A=1234h LD #80h, A ; 装入累加器 A
LD 80h, A ; 将地址80H单元中的数据装入A
绝对寻址
① 数据存储器地址(dmad)寻址;MVKD EXAM1, * AR5
② 程序存储器地址(pmad)寻址;MVPD TABLE, * AR2
端口(PA)寻址; 结合单指令循环可实现数据块移动。
如16个系数的移动
RPT #15
MVPD table,*AR2+
又如:
STM #4000H,AR2 STM #100H , AR3 RPT #1023
MVDD *AR2+,*AR3+ RET 累加器寻址 READA Smem
WRITA Smem(smen只能是数据存储空间)(注意两条指令的方向) 直接寻址
以DP为基址时,不能跨页;SP可以
编程实现将程序存储器从地址1000H到1080H区间的内容复制到数据存储空间从2000H开始的地址空间。
STM #2000H ,AR3
RPT #128
MVPD 1000H , *AR3+
RET
编程实现将数据存储器从地址1000H到1080H区间的内容复制到数据存储空间从2000H开始的地址空间。
STM #1000H , AR2
STM #2000H , AR3
RPT #128
MVDD *AR2+ , *AR3+
RET
例1、 采用DP直接寻址,完成X,Y单元数据求和,已知DP
RSBX CPL
LD #3, DP
LD @X, A
LD #4 , DP
ADD @Y , A
利用堆栈直接寻址,求堆栈中据栈顶两个数X,Y的和
SSBX CPL
LD @1 , A
ADD @2 , A
Ø直接寻址(地址的确定,DP赋初值)、倒序寻址(地址的确定)、循环缓冲区的建立(首尾地址的确定)
循环缓冲区的有效基地址(EFB)就是用户指定的辅助寄存器(ARx)的低N位置0后所得到的值;
循环缓冲区的尾基地址(EOB)是通过用BK的低N代替ARx的低N位得到;循环缓冲区的偏移量(index)就是ARx的低N位;
即进位是从左向右,而不是从右向左。
间接寻址中*ARi+0B/-0B表示位倒序寻址。
Ø加法(进位)指令、减法(借位)指令、条件减法指令(实现除法),乘法、乘累加指令的操作数来源、分支转移指令、重复操作指令
TMEP1+TEMP2=TEMP3
ADD Smem ,Scr
LD TEMP1 , A
ADD TEMP2 ,A
STL A , TEMP3
ADD Xmem , Ymem ,dst
ADD TEMP1 ,TEMP2 , A
STH A ,TEMP3
实现除法
RPT #15
SUBC Smem ,src
商在src的低16位,余数在src的高16位。
Temp1/temp2=temp3...temp4
LDtemp1,B
REPT#15
SUBCtemp2,B
STLB,temp3
STHB,temp4
Ø数据块移动的实现、除法的实现(整数除法、小数除法),乘法的实现(整数乘法、小数乘法)
编程实现TEMP1/TEMP2=TEMP3…TEMP4
TEMP1/TEMP2不带小数
LD TEMP1,B
RPT #15
SUBC TEMP2,B
STL B,temp3
STH B,temp4
带小数
LD TEMP1, 16 ,B
RPT #15
SUBC TEMP2,B
STL B, -1, temp3
STH B, temp4
Ø
Ø
Ø
Ø
Ø能分析常见的汇编程序、能编写简单的程序片断
RSBX FRCT
LD TEMP1,T ;将变量temp1装入T寄存器
MPY TEMP2,A ;完成temp2*temp1
STL A, TEMP3 ;乘积结果的低16位存入变量temp3
小数乘法举例
SSBX FRCT ;FRCT=1,准备小数乘法9
LD TEMP1,16,A ;将变量temp1装入寄存器A的高16位MPYA TEMP2 ;完成temp2乘寄存器A的高16位,结果在B中,同时将temp2装入T寄存器
STH B,TEMP3
CHAP4
ØDSP程序的两种调试模式(硬件仿真模式必须具备的条件及设备连接)
利用软件仿真器进行调试
利用硬件仿真器进行调试:
目标板和硬件仿真器?
Ø段定义伪指令
.bss伪指令,用于在bss段中保留若干个空间。
.usect伪指令,用于为指定的命名段保留若干个空间 已初始化段:
包含有可执行的代码和初始化程序。
.text [段起点] .data [段起点] .sect “段名”[,段起点]
Ø常见的常数初始化指令、.field指令、定位指令.align
.field合并指令.field7,3表示7用3位表示。
.align2对齐偶字边界无具体的数表示对齐页边界
CHAP9(结合实验)
ØsetupCCS的作用
是一种针对TMS320系列的集成开发环境,在windows操作系统下,采用图形接口界面,提供环境配置、源文件编辑、程序调试、跟踪和分析工具,可以帮助用户在一个软件环境下完成编辑、编译、链接、调试和数据分析等工作。
Ø汇编源程序的工程文件的组成、C程序的工程文件的组成
C语言:
.c .cmd .rts.lib 汇编 .asm .cmd
Ø断点、探针点的作用
断点可以暂停程序的运行,以便观察程序的状态,检查或修正变量,查看调用的堆栈、存储器和寄存器的内容等。
探针点:
当用户程序运行到探测点时,自动的从该探测点连接的外部文件中读入数据或将计算机的结果输出给外部文件。
Ø外部数据的输入
利用数据数据的读入/写出功能。
利用探测点功能。
题型
填空题20分(20空),选择题20分(10小题),其余为编程题和分析题。
MVDK与DP结合地址为020AH,里面的数据放到8000H里面。
累加器A读:
A中数据作为数据的地址放到DP和6组合的地址中0206H中
累加器A写:
DP和6的结合地址中的数据放到A中数据为地址的地方0257H。