DSP原理及应用第二章DSP的硬件结构总结精.docx

上传人:b****4 文档编号:27162782 上传时间:2023-06-27 格式:DOCX 页数:14 大小:226KB
下载 相关 举报
DSP原理及应用第二章DSP的硬件结构总结精.docx_第1页
第1页 / 共14页
DSP原理及应用第二章DSP的硬件结构总结精.docx_第2页
第2页 / 共14页
DSP原理及应用第二章DSP的硬件结构总结精.docx_第3页
第3页 / 共14页
DSP原理及应用第二章DSP的硬件结构总结精.docx_第4页
第4页 / 共14页
DSP原理及应用第二章DSP的硬件结构总结精.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

DSP原理及应用第二章DSP的硬件结构总结精.docx

《DSP原理及应用第二章DSP的硬件结构总结精.docx》由会员分享,可在线阅读,更多相关《DSP原理及应用第二章DSP的硬件结构总结精.docx(14页珍藏版)》请在冰豆网上搜索。

DSP原理及应用第二章DSP的硬件结构总结精.docx

DSP原理及应用第二章DSP的硬件结构总结精

第2章DSP的硬件结构

DSP的硬件结构:

DSP与标准微处理器有许多共同的地方,都是由CPU、存储器、总线、外设、接口、时钟组成。

从广义上讲,可以说DSP是一种CPU。

但DSP和一般的CPU又有不同,DSP有自己的一些独特的特点,比如采用哈佛结构、流水线操作、独立的硬件乘法器、独立的DMA总线和控制器等。

VonNeuman结构与Harvard结构:

Harvard结构

程序与数据存储空间分开,各有独立的地址总线和数据总线,取指和读数可以同时进行,从而提高速度,目前的水平已达到90亿次浮点运算/秒(9000MFLOPS)。

MIPS--MillionInstructionPerSecond

MFLOPS--MillionFloatingOperationPerSecond

流水操作(pipeline):

独立的硬件乘法器:

在卷积、数字滤波、FFT、相关、矩阵运算等算法中,都有A(kB(n-k一类的运算,大量重复乘法和累加。

通用计算机的乘法用软件实现,用若干个机器周期。

DSP有硬件乘法器,用MAC指令(取数、乘法、累加)在单周期内完成。

独立的DMA总线和控制器:

有一组或多组独立的DMA总线,与CPU的程序、数据总线并行工作,数据的传递和处理可以独立进行,DMA内部总线与系统总线完全分开,避开了总线使用上的瓶颈。

在不影响CPU工作的条件下,DMA速度已达800Mbyte/s。

CPU:

通用微处理器的CPU由ALU和CU组成,其算术运算和逻辑运算通过软件来实现,如加法需要10个机器周期,乘法是一系列的移位和加法,需要数十个机器周期。

DSP的CPU设置硬件乘法器,可以在单周期内完成乘法和累加.

移位:

通用微处理器的移位,每调用一次移位指令移动1-bit

DSP可以在一个机器周期内左移或右移多个bit,可以用来对数字定标,使之放大或缩小,以保证精度和防止溢出;还可以用来作定点数和浮点数之间的转换.

溢出:

通用CPU中,溢出发生后,设置溢出标志,不带符号位时回绕,带符号位时反相,带来很大的误差

DSP把移位输出的最高位(MSB)存放在一个位检测状态寄存器中,检测到MSB=1时,就通知下一次会发生溢出,可以采取措施防止.

数据地址发生器(DAG):

在通用CPU中,数据地址的产生和数据的处理都由ALU来完成

在DSP中,设置了专门的数据地址发生器(实际上是专门的ALU),来产生所需要的数据地址,节省公共ALU的时间.

外设(peripherals):

时钟发生器(振荡器与PLL)

定时器(Timer)

软件可编程等待状态发生器

通用I/O

同步串口(SSP)与异步串口(ASP)

JTAG扫描逻辑电路(IEEE1149.1标准便于对DSP作片上的在线仿真和多DSP条件下的调试

’C54x的内部结构:

中央处理器CPU、内部总线控制、特殊功能寄存器、数据存储器RAM、程序存储器ROM、I/O功能扩展接口、串行口、、主机通信接口HPI、定时系统、中断系统。

各部分的功能:

①中央处理器CPU

采用了流水线指令执行结构和相应的并行处理结构,可在一个周期内对数据进行高速的算术运算和逻辑运算。

②内部总线结构

由一组程序总线、三组数据总线和四组地址总线组成,可在一个指令周期内产生两个数据存储地址,实现流水线并行数据处理。

③特殊功能寄存器

共有26个特殊功能寄存器,位于具有特殊功能的RAM区。

主要用来对片内各功能模块进行管理、控制、监视。

④数据存储器RAM

DARAM:

在一个指令周期内,可对其进行两次存取操作,即一次读出和一次写入;

SARAM:

在一个指令周期内,只能进行一次存取操作。

⑤程序存储器ROM

可由ROM和RAM配置而成,即程序空间可以定义在ROM上,也可以定义在RAM中。

当需要高速运行的程序时,可将片外ROM中的程序调入到片内RAM中,以提高程序的运行速度,降低对外部ROM的速度要求,增强系统的整体抗干扰性能。

⑥I/O口

’C54x共有两个通用I/O引脚(BIO和XF)。

BIO:

主要用来监测外部设备的工作状态;

XF:

用来给外部设备发送信号。

’C54x芯片还配有主机接口(HPI)、同步串行口和64K字I/O空间。

HPI和串行口可以通过设置,用作通用I/O。

64K字的I/O空间可通过外加缓冲器或锁存电路,配合外部I/O读写控制时序构成片外外设的控制电路。

⑦串行口

不同型号的’C54x芯片,所配置的串行口功能不同。

可分为4种:

单通道同步串行口SP、带缓冲器单通道同步串行口BSP、并行带缓冲器多通道同步串行口McBSP、时分多通道带缓冲器串行口TMD。

⑧主机接口HPI

HPI是一个与主机通信的并行接口,主要用于DSP与其它总线或CPU进行通信。

信息可通过’C54x的片内存储器与主机进行数据交换。

不同型号的器件配置不同HPI口,可分为:

8位标准HPI接口、8位增强型HPI接口、16位增强型HPI接口。

⑨定时器

定时器是一个软件可编程的计数器,用来产生定时中断。

可通过设置特定的状态来控制定时器的停止、恢复、复位和禁止。

⑩中断系统

’C54x的中断系统具有硬件中断和软件中断。

硬件中断:

由外围设备信号引起的中断。

分为:

片外外设引起的硬件中断;片内外设引起的硬件中断。

软件中断:

由程序指令所引起的中断。

中断管理优先级:

11~16个固定级。

TMS320C54x的CPU:

(1)采用先进的多总线结构,通过1组程序总线、3组数据总线和4组地址总线来实现。

(2)40位算术逻辑运算单元ALU,包括1个40位桶形移位寄存器和2个独立的40位累加器。

(3)17×17位并行乘法器,与40位专用加法器相连,可用于进行非流水线的单周期乘法-累加运算。

(4)比较、选择、存储单元(CSSU),可用于Viterbi译码器的加法-比较-选择运算。

(5)指数编码器,是一个支持单周期指令EXP的专用硬件。

可以在一个周期内计算40位累加器数值的指数。

(6)配有两个地址生成器,包括8个辅助寄存器和2个辅助寄存器算术运算单元(ARAU)。

TMS320C54x的总线结构:

TMS320C54x的结构是以8组16位总线为核心,形成了支持高速指令执行的硬件基础。

总线结构:

1组程序总线PB、3组数据总线CB、DB、EB、4组地址总线PAB、CAB、DAB、EAB

1.程序总线PB

主要用来传送取自程序存储器的指令代码和立即操作数。

PB总线既可以将程序空间的操作数据(如系数表送至数据空间的目标地址中,以实现数据移动,也可以将程序空间的操作数据传送乘法器和加法器中,以便执行乘法-累加操作。

2.数据总线CB、DB和EB

3条数据总线分别与不同功能的内部单元相连接。

如:

CPU、程序地址产生逻辑PAGEN、数据地址产生逻辑DAGEN、片内外设和数据存储器等。

CB和DB用来传送从数据存储器读出的数据;EB用来传送写入存储器的数据。

3.地址总线PAB、CAB、DAB和EAB

用来提供执行指令所需的地址。

’C54x读/写操作占用总线情况:

(3ALU输入数据的预处理

当16位数据存储器操作数通过数据总线DB或CB输入时,ALU将采用两种方式对操作数进行预处理。

①若数据存储器的16位操作数在低16位时,则

当SXM=0时,高24位(39~16位用0填充;

当SXM=1时,高24位(39~16位扩展为符号位。

②若数据存储器的16位操作数在高16位时,则

当SXM=0时,39~32位和15~0位用0填充;

当SXM=1时,39~32位扩展为符号位,15~0位置0。

(4ALU的输出

ALU的输出为40位运算结果,通常被送至累加器A或B。

溢出处理:

ALU的饱和逻辑可以对运算结果进行溢出处理。

当发生溢出时,将运算结果调整为最大正数(正向溢出)或最小负数(负向溢出)。

当运算结果发生溢出时:

①若OVM=0,则对ALU的运算结果不作任何调整,直接送入累加器;

②若OVM=1,则对ALU的运行结果进行调整。

当正向溢出时,将32位最大正数007FFFFFFFH装入累加器;

当负向溢出时,将32位最小负数FF80000000H装入累加器。

③状态寄存器ST0中与目标累加器相关的溢出标志OVA或OVB被置1。

累加器A和B:

’C54x芯片有两个独立的40位累加器A和B,可以作为ALU或(乘法器/加法器MAC的目标寄存器,存放运算结果,也可以作为ALU或MAC的一个输入。

累加器A和B的差别:

累加器A中的31-16位可以作为乘法器的一个输入。

1.累加器结构

【例2.4.1】累加器A=FF01234567H,执行带移位的STH和STL指令后,求暂存器T和A的内容。

2.4.3桶形移位寄存器:

TMS320C54x的40位桶形移位寄存器主要用于累加器或数据区操作数的定标。

它能将输入数据进行0~31位的左移和0~16位的右移。

所移动的位数可由ST1中的ASM或被指定的暂存器T决定。

1.组成框图

①多路选择器MUX:

用来选择输入数据。

②符号控制SC:

用于对输入数据进行符号位扩展。

③移位寄存器:

用来对输入的数据进行定标和移位

④写选择电路:

用来选择最高有效字和最低有效字。

2.桶形移位寄存器的输入

通过多路选择器MUX来选择输入信号。

① 取自DB数据总线的16位输入数据;

② 取自DB和CB扩展数据总线的32位输入数据;

③来自累加器A或B的40位输入数据。

3.桶形移位寄存器的输出

① 输出至ALU的一个输入端;②经写MSW/LSW选择电路输出至EB总线。

4.桶形移位寄存器的功能

主要用于格式化操作,为输入的数据定标。

①在进行ALU运算之前,对输入数据进行数据定标;

②对累加器进行算术或逻辑移位;

③对累加器进行归一化处理;

④在累加器的内容存入数据存储器之前,对存储数据进行定标。

2.4.5比较、选择和存储单元CSSU

CSSU单元主要完成累加器的高阶位与低阶位之间最大值的比较,即选择累加器中较大的字,并存储在数据存储器中。

工作过程:

① 比较电路COMP将累加器A或B的高阶位与低阶位进行比较;

② 比较结果分别送入TRN和TC中,记录比较结果以便程序调试;

③比较结果输出至写选择电路,选择较大的数据;

④ 将选择的数据通过总线EB存入指定的存储单元。

例如,CMPS指令可以对累加器的高阶位和低阶位进行比较,并选择较大的数存放在指令所指定的存储单元中。

指令格式:

CMPSA,*AR1

功能:

对累加器A的高16位字(AH)和低16位字(AL)进行比较,

若AH>AL,则AH→*AR1,TRN左移1位,0→TRN(0,

0→TC;

若AH,则AL→*AR1,TRN左移1位,1→TRN(0,

1→TC。

TRN是状态转移寄存器,TC是状态比较寄存器。

指数编码器:

指数编码器用于支持单周期指令EXP的专用硬件。

在EXP指令中,求出累加器中的指数值,并能以二进制补码的形式存储在T寄存器中。

2.4.7CPU状态和控制寄存器

’C54x提供三个16位寄存器来作为CPU状态和控制寄存器,它们分别为:

状态寄存器0(ST0)、状态寄存器1(ST1)、工作方式状态寄存器(PMST)。

ST0和ST1主要包含各种工作条件和工作方式的状态;

PMST包含存储器的设置状态和其他控制信息。

1.状态寄存器0(ST0)

主要反映处理器的寻址要求和计算机的运行状态。

2.状态寄存器1(ST1

主要反映处理器的寻址要求、计算初始状态的设置、I/O及中断的控制等。

3.工作方式状态寄存器PMST

主要设定和控制处理器的工作方式和存储器的配置,反映处理器的工作状态。

2.5’C54x的存储空间结构

’C54x共有192K字的存储空间,分成3个相互独立可选择的存储空间:

程序存储空间:

用来存放要执行的指令和指令执行中所需要的系数表(数学用表;

数据存储空间:

用来存放执行指令所需要的数据;

I/O存储空间:

用来提供与外部存储器映射的接口,可以作为外部数据存储空间使用。

所有’C54x芯片都含有片内RAM和ROM。

DARAM和SARAM既可以被映射到数据存储空间用来存储数据,也可以映射到程序空间用来存储程序代码。

片内ROM:

主要存放固化程序和系数表。

一般构成程序存储空间,也可以部分地映射在数据存储空间。

片内存储器的优点:

●不需要插入等待状态;

●与外部存储器相比,成本低;

●比外部存储器功耗小。

TMS320C54x的存储器分配:

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。

TMS320C549存储器空间分配图

存储器映射寄存器(MMR

在C54X的数据存储空间中,前80H个单元中含有CPU寄存器和片内外设寄存器。

这些寄存器全部映射到数据存储空间。

采用寄存器映射的方法,可以简化CPU和片内外设的访问方式,使程序对寄存器的存取、累加器与其他寄存器之间的数据交换变得十分方便。

TMS320C54x的片内外设:

1.软件可编程等待状态发生器;

2.可编程分区转换逻辑电路;

3.带有内部振荡器和外部时钟源的片内锁相环(PLL)时钟发生器;

4.可编程定时器;

5.时分多路串行口(TDM)、缓冲串行口(BSP)、多通道缓冲串行口(McBSP);

6.并行主机接口(HPI)。

浮点DSP:

浮点格式用指数形式表示,其动态范围比用小数形式表示的定点格式要大得多,定点DSP中经常要考虑的溢出问题,在浮点DSP中基本上可以不考虑

为了保证底数的精度,浮点DSP基本上作成32-bit的,其总线、寄存器、存储器等的宽度也相应是32-bit的

浮点DSP的速度更快,尤其是作浮点运算

浮点DSP的价格高,开发难度也更大

多处理器接口:

TMS320C40有6个8-bit的接口,使多个处理器可以很方便的并行或串行工作,ADI公司的ADSP21160也有类似的接口

浮点DSP的典型芯片TMS320C30:

60ns单周期指令执行时间

33.3MFLOPS

16.7MIPS

片内4Kx32bit单周期内可访问两次的ROM

两个1Kx32bit单周期内可访问两次的RAM

64x32bit指令Cache

指令及数据字长32bit,地址宽度24bit(16M寻址空间

40/32bit浮点/整数乘法器及ALU

8个以40bit扩展精度寄存器为基础的Acc

32bit桶形移位器

2个地址发生器,8个辅助寄存器和2个辅助寄存器计算单元

片内DMA控制器,使I/O与CPU并行工作

单周期内并行的ALU及乘法指令

零开销循环,单周期分支

两个外部接口

两个串口支持8/16/32bit数据传输

两个32bit定时器

封装:

181脚PGA

工艺:

1mCMOS

特点:

100MHz,10ns指令周期

峰值600MFLOPS,连续400MFLOPS

4Mbit片内双口SRAM,由核处理器、主机或DMA独立访问

DMA控制器支持:

14个零开销DMA通道,64bit后台DMA传输,与全速运行的处理器并行

700Mbytes/sIO速率

4GW片外寻址能力

6个连接口,作多处理器应用

2个50Mbps串口支持独立的发送与接收,并支持T1与E1接口

DSP的发展:

更高的运行速度和信号处理速度

多DSP协同工作

更方便的开发环境

大量专用DSP的出现(DSP核)

更低的价格,或更高的性能/价格比

更广泛的应用

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1