dsp与标准微处理器有许多共同的地方,都是由cpu、存储器、总线、外设、接口、时钟组成。从广义上讲,可以说dsp是一种cpu。但dsp和一般的cpu又有不同, dsp有自己的一些独特的特点,比如采用哈佛结构、流水线操作、独立的硬件乘法器、独立的dma总线和控制器等。
通用微处理器的cpu由alu和cu组成,其算术运算和逻辑运算通过软件来实现,如加法需要10个机器周期,乘法是一系列的移位和加法,需要数十个机器周期。
dsp的cpu设置硬件乘法器,可以在单周期内完成乘法和累加。
harvard结构。
程序与数据存储空间分开,各有独立的地址总线和数据总线,取指和读数可以同时进行,从而提高速度,目前的水平已达到90亿次浮点运算/秒。
外设---时钟发生器,定时器,软件可编程等待状态发生器,通用i/o,串行通信接口,jtag扫描逻辑电路。
tms320c54x的总线结构
-程序总线(pb)传送从程序存储器来的指令**和立即数;
-3组数据总线(cb、db和eb)连接各种元器件,cb和db总线传送从数据存储器读出的操作数,eb总线传送写入到存储器中的数据;
-4组地址总线(pab、cab、dab和eab)传送执行指令所需的地址。tms320c54x通过使用两个辅助寄存器算术单元(arau0和arau1),每周期能产生两个数据存储器地址。
tms320c54x的存储器分配。
-tms320c54x的存储器由3个独立的可选择空间组成:程序空间、数据空间和i/o空间。程序存储器空间包括程序指令和程序中所需的常数**;数据存储器空间用于存储需要程序处理的数据或程序处理后的结果;i/o空间用于与外部存储器映象的外设接口,也可以用于扩展外部数据存储空间。
-所有tms320c54x芯片都包括随机访问存储器(ram)和只读存储器(rom)。ram可分为两种:双访问ram(daram)和单访问ram(saram)。
ram一般映象在数据存储器空间,也可以安排在程序存储空间,而 rom则映象在程序存储器空间,也可部分地映象到数据存储器空间。
-tms320c54x有 3位设置位在微处理器的方式状态寄存器(pmst)中,用以配置片内存储器。
-mp/mc位:用来决定程序空间是否使用内部存储器。如果该位清0,则片内rom映象在程序存储器空间;如果该位设置为1,则片内rom不映象在程序存储器实间。
-ovly位:如果该位设置为1,则片内ram分别映象在程序存储器空间和数据存储器空间;如果该位清0,则片内ram只映象在数据存储器空间。
-drom位:如果该位设置为1,则片内rom的一部分映象在数据存储器空间;如果该位清0,则片内rom的使用取决于mp/mc位。
-tms320c54x的各种型号片内存储器容量大小不同,片外寻址空间差别也很大,主要表现在数据空间(ds)和i/o空间(is)都是64k,而程序空间(ps)随地址线的不同而不同。地址线的数目有16个、20个、23个,相应的程序空间分别为64k、1m、8m。
浮点dsp-浮点格式用指数形式表示,其动态范围比用小数形式表示的定点格式要大得多,定点dsp中经常要考虑的溢出问题,在浮点dsp中基本上可以不考虑。
-为了保证底数的精度,浮点dsp基本上作成32-bit的,其总线、寄存器、存储器等的宽度也相应是32-bit的。
-浮点dsp的速度更快,尤其是作浮点运算。
-浮点dsp的**高,开发难度也更大。
汇编程序包含汇编指令(伪指令,assembler directives)、汇编语言指令(assembly language instructions)、宏指令(macro directives)和注释(comments)。
寻址方式 指令中有一个固定的立即数。
立即寻址:指令中有一个固定的立即数;
绝对地址寻址:指令中有一个固定的地址(16位);
累加器寻址:按累加器的内容作为地址去访问程序存储器中的一个单元;
直接寻址:指令编码中含有的7位地址与dp或sp一起合成数据存储器中操作数的实际地址;
间接寻址:通过辅助寄存器寻址;
存储器映射寄存器寻址:修改存储器映射寄存器中的值,而不影响当前数据页面指针dp和当前堆栈指针sp的值;
堆栈寻址:把数据压入或弹出系统堆栈。
-例1:使用c54x汇编语言编计算。
z1=x1+y1;z2=x1-y1;z3=x1*y1;z4=x2*y2。其中,x1=20,y1=54,x2=0.5,y2=-0.5837
编写汇编源程序如下:
.title “
.mmregs
.bss x1,1
.bss x2,1
.bss y1,1
bss y2,1
bss z1,1
bss z2,1
bss z3_h,1
bss z3_l,1
bss z4,1
v1 .set 014hv1 =20
v2 .set 036hv2=54
v3 .set 04000h ; v3=0.5
v4 .set 0b548h ; v4=-0.5837
start:
ld #x1,dp
st #v1,x1
st #v2,y1
ld x1,ax1 a
add y1,a ;a+y1 a
stl a,z1保存al z1
ld x1,a
sub y1,a
stl a,z2
rsbx frct ;准备整数乘法,frct=0
ld x1,t
mpy y1,ax1*y1 a
sth a,z3_h ;乘法结果高16位在z3_h 单元。
stl a,z3_l ;乘法结果低16位在z3_l单元。
st #v3,x2
st #v4,y2
ssbx frct ;准备小数乘法,frct=1
ld x2,16,a ; 将x2加载到ah
mpya y2x2*y2 b,and y2 t
sth b,z4结果放到z4单元
2:对数组x[8]=进行初始化。
bss x,8
datatable: .word 0,1,2,3,4,5,6,7
textstart: stm #x,ar5
rpt #mvpd table,*ar5+
table3:计算 y =
bss x,10
stm #x,ar1
stm #9,ar2
ld #0,a
loop: add *ar1+,a
ar1+1banz loop,*ar2
4:对数据x[8]中的每个元素加1
bss x,8
begin: ld #1,16,b
stm #7,brc
stm #x,ar4
rptb next-1
add *ar4,16,b,a
sth a,*ar4+
next: ld #0,b…
dsp芯片的运算速度。
指令周期:即执行一条指令所需的时间,通常以ns(纳秒)为单位。
mac时间:即完成一次乘法-累加运算所需要的时间。
fft执行时间:即运行一个n点fft程序所需的时间。
mips:即每秒执行百万条指令;
mops:即每秒执行百万次操作;
mflops:即每秒执行百万次浮点操作;
bops:即每秒执行十亿次操作。
5 求解其…….a3= -0.4 a4=0.1
x1=0.6 x2=0.5 x3=-0.1 x4=-0.2
bss a,4
bss x,4
datatable: .word 3*32768/10
word 2*32768/10
word -4*32768/10
word 1*32768/10
word 6*32768/10
word 5*32768/10
word -1*32768/10
word -2*32768/10
textstart: ssbx frct
stm #a,ar4
rpt #mvpd table,*ar4+
stm #x,ar5
stm #a,ar6
rptz a,#
mac *ar5+,*ar6+,a
DSP答案
1.流水线?答 dsp芯片采用多组总线结构,允许cpu同时进行指令和数据的访问。因而,可在内部实行流水线操作。执行一条指令,总要经过取指 译码 取数 执行运算,需要若干个指令周期才能完成。流水线技术是将各个步骤重叠起来进行。既第一条指令取指 译码时,第二条指令取指 第一条指令取数时,第二条指令译码,...
DSP答案
设ar2 2060h,作为基地址,指向x 0 的存储单元。ar0 0008h 第2次 ar2 0b寻址 ar2 2068h,即x 8 第3次 ar2 0b寻址 ar2 2064h即x 4 第4次 ar2 0b寻址 ar2 206dh即x 12 1 coff common object file fo...
DSP作业答案
第九章。1.利用gp定时器1在gpiof8引脚上产生0.2s的方波,用一个贴片led闪烁来表示。系统时钟150mhz,高速外设时钟25mhz,定时器1预分频因子的128分频,试编写相关程序。答 系统时钟150mhz,通过高速外设时钟预定标器 hispcp 得到25mhz的高速外设时钟,再通过定时器1...