540 likes | 739 Views
5.6 数字信号处理硬件基础. 数字信号处理中的主要运算是乘(除)加(减)运算,在一般的计算机与微处理器中,乘(除)法运算是用若干次加(减)法运算及移位操作方式实现的;在处理器的结构方面,通用计算机及微处理器采用冯 . 诺曼结构。 数字信号处理处理器在以上两方面有所不同。. 数字信号处理器特点:. 乘法运算直接用 硬件乘法器 完成, 以提高运算速度。 采用 哈佛 结构 ( 多总线结构 , 即程序存储器和数据存储器分开 , 各有各的总线 , 或地址总线和数据总线分开 ) ,甚至采用多地址总线和多数据总线。还采用流水线及并行结构。. 5.6.1 数字信号处理器结构特点.
E N D
5.6 数字信号处理硬件基础 数字信号处理中的主要运算是乘(除)加(减)运算,在一般的计算机与微处理器中,乘(除)法运算是用若干次加(减)法运算及移位操作方式实现的;在处理器的结构方面,通用计算机及微处理器采用冯.诺曼结构。 数字信号处理处理器在以上两方面有所不同。
数字信号处理器特点: • 乘法运算直接用硬件乘法器完成,以提高运算速度。 • 采用哈佛结构(多总线结构,即程序存储器和数据存储器分开,各有各的总线,或地址总线和数据总线分开),甚至采用多地址总线和多数据总线。还采用流水线及并行结构。
5.6.1 数字信号处理器结构特点 5.6.1.1 冯.诺曼结构 1945年,冯.诺曼首先提出了“存储程序”的概念和二进制原理,后来,人们把利用这种概念和原理设计的电子计算机系统统称为“冯.诺曼型结构”计算机。冯.诺曼结构的处理器使用同一个存储器,经由同一个总线传输,如图5.6-1。
输入设备 运算器 输出设备 控制器 存储器 图5.6-1 冯.诺曼结构
冯.诺曼结构处理器具有以下几个特点: (1)必须有一个存储器; (2)必须有一个控制器; (3)必须有一个运算器,用于完成算术运算和逻辑 运算; (4)必须有输入和输出设备,用于进行人机通信。
冯.诺曼的主要贡献就是提出并实现了“存储程序”的概念。由于指令和数据都是二进制码,指令和操作数的地址又密切相关,因此,当初选择这种结构是自然的。但是,这种指令和数据共享同一总线的结构,使得信息流的传输成为限制计算机性能的瓶颈,影响了数据处理速度的提高。冯.诺曼的主要贡献就是提出并实现了“存储程序”的概念。由于指令和数据都是二进制码,指令和操作数的地址又密切相关,因此,当初选择这种结构是自然的。但是,这种指令和数据共享同一总线的结构,使得信息流的传输成为限制计算机性能的瓶颈,影响了数据处理速度的提高。
程 序 存储器 CPU 操作数 存储器 5.6.1.2 哈佛结构 数字信号处理一般需要较大的数据流量和较高的运算速度,为了提高数据吞吐量,在数字信号处理器中大多采用哈佛结构,如图5.6-2。 图5.6-2 哈佛结构
与冯.诺曼结构处理器比较,哈佛结构处理器有两个明显的特点:与冯.诺曼结构处理器比较,哈佛结构处理器有两个明显的特点: (1)使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存; (2)使用两条独立的总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。
程 序 存储器 CPU 操作数 存储器 改进的哈佛结构: 为了提高传输效率,节省总线,又提出了改进的哈佛结构,如图5.6-3。 图5.6-3 改进型哈佛结构
改进型哈佛结构特点: (1)使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并行处理; (2)具有一条独立的地址总线和一条独立的数据总线,利用公用地址总线访问两个存储模块(程序存储模块和数据存储模块),公用数据总线则被用来完成程序存储模块或数据存储模块与CPU之间的数据传输; (3)两条总线由程序存储器和数据存储器分时共用。
指令流的定时关系: 可反映冯.诺曼结构与哈佛结构处理方式的差别。 典型情况下,完成一条指令需要3个步骤,即:取指令、指令译码和执行指令。举一个最简单的对存储器进行读写操作的指令,如图5.6-4,指令1至指令3均为存、取数指令。 对冯.诺曼结构处理器,由于指令和数据要从同一个存储空间存取,经由同一总线传输,因而它们无法重叠执行,只能顺序执行。
图6-5 哈佛结构处理器指令流的定时关系示意图
如果采用哈佛结构处理以上同样的3条存取数指令,如图5.6-5,由于取指令和存取数据分别经由不同的存储空间和不同的总线,使得各条指令可以重叠执行,这样,也就克服了数据流传输的瓶颈,提高了运算速度。如果采用哈佛结构处理以上同样的3条存取数指令,如图5.6-5,由于取指令和存取数据分别经由不同的存储空间和不同的总线,使得各条指令可以重叠执行,这样,也就克服了数据流传输的瓶颈,提高了运算速度。 哈佛结构强调了总的系统速度以及通讯和处理器配置方面的灵活性。
5.6.1.3流水线处理 加快程序执行的一个途径是提高处理器的时钟速度。但时钟速度的提高受工艺等的限制,并不是可以无限提高的。而改进处理方法则是提高程序流执行速度的另一个有效途径。 先进的处理方法有流水线处理和并行处理,它们使得各项运算或处理都能在同一个时钟周期里完成。
流水线概念取自工厂自动化生产线,它是一种可以使两个或更多的操作在执行时发生重叠的技术,在流水线操作中,一个任务被分解为若干子任务,这样它们就可在执行时相互重叠。一个子任务被称为一个流水段。流水线概念取自工厂自动化生产线,它是一种可以使两个或更多的操作在执行时发生重叠的技术,在流水线操作中,一个任务被分解为若干子任务,这样它们就可在执行时相互重叠。一个子任务被称为一个流水段。 在上面讨论哈佛结构的例子中,一个指令可以分为3步完成,每一步可作为一个流水段,当流水段填满时,处理器就可同时执行3个指令,所以平均每个指令只用1个时钟周期就可完成。
关于使用流水线方式的两个问题: (a)一项处理一般很难分解成若干个处理规模一致、因而时间上有最佳配合(无须等待)的流水段,为此需要用若干个寄存器来协调流水线的节奏。 (b) 在流水线的启动和停止阶段,流水线要逐步地被填满或出空。因此,对于一次性的非重复计算,流水线方式并不适用,只有当预期的循环操作足够长时,或是对一系列数据反复执行同一指令时,采用流水线处理方式才是合理的。
5.6.1.4并行处理 加快运算速度的另一种方法是采用并行处理,这种方法克服了流水线方法要把一个处理分解为若干子处理的困难。 并行处理指: 1)DSP充分利用哈佛结构多重总线的优点,在一个周期里使内部的各个处理单元同时工作,实现高度的并行处理。 如在一个周期里可以同时完成取指令、计算下一个指令的地址、执行一个或两个数据传输、更新一个或两个地址指针并且进行计算等等。
2)使用若干同样的处理单元对若干处理内容相同(具有互换性)的操作同时作平等的处理。 并行处理的硬件开销很大,而且需要对各个处理单元的输入和输出作复杂的管理。事实上,在高度并行的结构里,主要的困难不是运算本身,而是数据的组织和地址的产生。以FFT运算为例,要求并行存取N/2个数据点,由于一般的存储器在每个周期里只能在总线上传输一个数据,因此,并行处理要有专门的缓冲区以要求的吞吐率来高速度地供应数据,数据地址也必须高速产生。
5.6.2 DSP硬件构成 典型的DSP处理器中的运算/处理功能单元主要包括以下几个部分: ●乘法器/乘加器(MAC) ●算术逻辑运算单元(ALU) ●移位器 ●数据地址发生器(DAG) ●程序定序器,又称指令定序器 ●存储器
5.6.2.1DSP的乘法器/乘加器(MAC) DSP乘法器应具有以下基本功能: 1. 要求在一个时钟周期里对两个字长为b位的输入由硬件作快速并行乘法; 2. 应能通过格式控制来执行无符号或带符号或混合的乘法操作、小数或整数乘法操作以及扩展精度或双精度运算,并有合适的舍位方法; 3.应有输入和输出寄存器,这样可以锁存数据,配合流水线操作。也可不用寄存器,使乘法器在透明方式下工作,这样可以有最小的等待时间。
在数字信号处理的滤波器、FFT、卷积及各种矢量运算中,由于要执行Σb(n)*x(n - k)一类的运算,这类运算的乘法和加法总是同时出现,因此DSP中就希望将乘法器和加法器相结合,在一个时钟周期完成一次乘、加运算,并且累加乘法运算的结果。这样的运算单元称为乘法累加器(MAC)。 对于乘法累加器,除了要求能在一个时钟周期完成一次乘、加运算外,为了在累加时保证运算精度,还应在累加输出寄存器中包括足够的保护位,因其在2b位的乘法输出宽度之外,所以称为扩展位。扩展位中的逻辑应该能用来预测累加器的溢出,并且能紧急通知作重新定标度操作,即防溢出处理。
5.6.2.2DSP的算术逻辑运算单元(ALU) DSP的ALU与一般计算机不同的是具有“条件移位”功能,它能在执行运算的同一个周期内,将运算结果根据输入的状态标志作增量或减量的移位。这个功能可以加快许多DSP运算。例如,FFT蝶形运算的输出幅度总是不断增大,但是增大多少是随信号而变的,如果不考虑信号的实际大小而一律用自动减量移位来防止溢出,则会造成信噪比下降,而采用加法——条件移位操作则可以得到最大的动态范围。
5.6.2.3DSP的移位器 移位操作分算术移位和逻辑移位。算术移位把1个数左移放大(升标度)或右移缩小(降标度)若干位 。右移使得符号位扩展,也就是在左边填入符号位,这样可以保留原有的正号或负号。左移操作用0填入最低位,如果数的最高位不是符号位,则左移的结果就造成了溢出,这时溢出标志被置1。逻辑移位用来做某些逻辑操作,如用于位屏蔽等。逻辑移位把无符号数左移或右移,腾空位填0。
通用微处理器的移位操作是一位一位移的,每调用一次移位指令只能移动一位,速度很慢。通用微处理器的移位操作是一位一位移的,每调用一次移位指令只能移动一位,速度很慢。 DSP中的移位器主要用途: a. 对数字定标度,使之缩小或放大,以避免上溢或下溢; b.作定点数和浮点数之间的转换。
5.6.2.4DSP的数据地址发生器(DAG) 在通用微处理器中,产生数据的地址和进行数据处理都是同一个ALU的工作。而在DSP中,为了得到快速和灵活的寻址,使用了专门的、有自己ALU的数据地址发生器,它可以按复杂的逻辑产生数据所在的地址,存放在一组寄存器中供其他单元存取。这样,与数据地址有关的计算就可以由数据地址发生器内部的ALU并行地算出,大大节省了公用ALU的时间。
DAG的基本功能包括以下几个方面: ●将一个预先算好的地址送到数据存储器; ●用一个算出来的偏移量来修正地址; ●对地址执行逻辑操作(与、或、异或)和移位; ●将指针与预置值比较,若相等,则将指针复位到原始点,此即端点检测; ●将地址各个位顺序反向; 高性能DSP中,DAG还具有移位、位反转、逻辑屏蔽以及模寻址等功能。
5.6.2.5DSP的程序定序器 DSP的程序定序器有以下基本功能: ●管理正常的程序流,程序计数器(PC)在每个周期加1; ●跟踪子程序的寻址,管理返回地址的堆栈; ●以无开销的方式(以硬件循环计数器控制)管理循环; ●测到数据溢出或要求数据重新定标时,转移到相应的异常处理程序; ●中断服务,发生中断和结束中断时,转移或返回到相应的地址;
程序定序器主要包括:程序计数器、存放子程序和中断返回地址的堆栈、存放计数值的堆栈、存放转移地址的堆栈以及循环计数器等。程序定序器主要包括:程序计数器、存放子程序和中断返回地址的堆栈、存放计数值的堆栈、存放转移地址的堆栈以及循环计数器等。
5.6.2.6DSP的存储器 在DSP中使用的各种特殊存储技术: ● 双口存储器,它有两个分开的端口,每个端口有自己的控制、数据、地址和I/O信号线等,可以独立地存取数据使用双口存储器可以在一个周期内读出前一次存入的值和写入新的值; ● 寄存器,它事实上是一个多口的高速缓冲存储器,可以被各个运算/处理单元以及总线所存取,具有极高的灵活性,在提高DSP吞吐量方面有重要的作用;
● FIFO先进先出存储器,它可以配合流水线操作,在速度较慢和速度较快的处理器之间起缓冲作用; ● 高速缓冲存储器(cache), 它用来保存最近使用的指令或数据,对它们提供快速的存取。 上述各种特殊的存储技术,可以使DSP放松对常规存储器的要求。
5.6.3 通用数字信号处理器 1、 通用数字信号处理器概述 从功能上分,数字信号处理器可以有专用和通用两大类。常用的专用数字信号处理器有单片并行乘累加器(TDC1010)、专用数字滤波/相关器(TDC1028)、修正的16位32阶数字横向滤波器(IMS100,可做DFT、卷积及相关)以及专用FFT芯片(TMC2310,90年代初,1024点复数FFT只需0.5 ms),等等。但是,随着超大规模集成电路技术的发展,现在的通用数字信号处理器速度越来越快、功能越来越强、并行性也越来越好,可以替代大部分的专用DSP,再加上其使用灵活、批量生产所带来的低成本等特点,所以其应用也越来越广。因此我们后面的介绍讲到DSP也都是针对通用DSP。
自1982年美国德州仪器公司(TI公司)生产出第一代通用数字信号处理器(DSP)TMS320C10以来,DSP以其独特的硬件结构和出色的运行性能,得到了迅猛的发展和广泛的应用。自1982年美国德州仪器公司(TI公司)生产出第一代通用数字信号处理器(DSP)TMS320C10以来,DSP以其独特的硬件结构和出色的运行性能,得到了迅猛的发展和广泛的应用。
常用的通用信号处理器: TMS320CXX 系列 ADSP21XXX 系列
就结构而言,DSP可以分为定点DSP和浮点DSP。定点DSP与浮点DSP在硬件结构上最大的不同之处在于数据存储结构方面。应用浮点DSP,用户不必知道如何存储数据,而应用定点DSP时就需了解数据存储格式,必须对数据格式作一些转换。在选择DSP时,用户可以从芯片性能、运行速度、价格、功耗等几个方面综合考虑。一般情况下,定点DSP适用于采样频率低的相对比较简单的算法,浮点DSP适用于采样频率高的相对比较复杂的算法。就结构而言,DSP可以分为定点DSP和浮点DSP。定点DSP与浮点DSP在硬件结构上最大的不同之处在于数据存储结构方面。应用浮点DSP,用户不必知道如何存储数据,而应用定点DSP时就需了解数据存储格式,必须对数据格式作一些转换。在选择DSP时,用户可以从芯片性能、运行速度、价格、功耗等几个方面综合考虑。一般情况下,定点DSP适用于采样频率低的相对比较简单的算法,浮点DSP适用于采样频率高的相对比较复杂的算法。
DSP的市场正成为半导体行业关注的热点,其应用由最初的军用尖端技术拓展到通讯、计算机、家电、办公自动化、仪器仪表、汽车电子、工业控制等许多领域。 在诸多应用中,通讯占了很大比例。通讯技术的快速发展与DSP的发展密不可分。移动电话、调制解调器等是目前DSP应用最多的一类产品。采用了特殊功能DSP的调制解调器使访问因特网的速度得到提高。
2、TMS320系列数字信号处理器简介 参见新书P220~222 (1)TMS320C2000系列 低价格定点DSP,应用于电源功率控制、电机控制等。 (2)TMS320C5000系列 低功耗定点DSP ,工作电压接近1伏,应用于手机、便携式产品、值更系统等。 (3)TMS320C6000系列 并行、高速、高性能浮点DSP,主要应用于复杂系统。
3.TMS320系列的指令特点 TMS320系列有着相当优越的指令系统。其主要特点是: (1)乘累加指令MACD 对数字信号处理中大量存在的形如 的卷积、相关与横向滤波器运算,用如下两条指令实现: RPTK N MACD
RPTK N是重复指令,表示下一条指令将重复N+1次,指令MACD实现乘法和累加操作,具体操作为: (P)+(ACC)→ACC; (dma)*(pma,由PFC寻址)→P;(dma)→dma+1; (PFC)+1→PFC;(重复计数器)-1→重复计数器 其中pma和dma是地址,pma存放滤波器系数h(k),正向存放,dma存放数据样值,反向存放,最低位存放最新样值,最高位存放最旧样值。RPTK指令需要一个指令周期,重复执行时一旦流水线开始便只需要一个指令周期。 但如用MAC指令实现循环乘,即使程序和数据都放在片内RAM,执行一次循环也需要三个指令周期。
(3)指令SQRA可用来实现一个数的平方并与前边的结果累加,而SQRS实现一个数的平方后与前面的数相减,这对于 的运算十分有效。
(4)规格化指令NORM通过左移来规格化累加器中的定点数(定点DSP):(4)规格化指令NORM通过左移来规格化累加器中的定点数(定点DSP): • 它将ACC的31位与30位异或,结果为0则置TC=0,说明最高两位相同,最高位是符号扩展位; • 将ACC内容左移,删除多余的符号位并将AR(ARP)加1; • 多次执行,完成完全规格化,阶码存于AR(ARP)。
累加器取指令LACT则根据T寄存器中的低4位值(指数)来恢复规格化了的浮点数,ADDT和SUBT(根据T移位的累加器加和减指令)可进行附加移位的算术运算,从而可以处理带有16位尾数及4位指数的浮点数,因规格化数为16位字长,所以只要4位指数。累加器取指令LACT则根据T寄存器中的低4位值(指数)来恢复规格化了的浮点数,ADDT和SUBT(根据T移位的累加器加和减指令)可进行附加移位的算术运算,从而可以处理带有16位尾数及4位指数的浮点数,因规格化数为16位字长,所以只要4位指数。
4、TMS320系列DSP的寻址方式 (1)直接寻址方式 (2)间接寻址 间接寻址是通过辅助寄存器AR0 ~AR7来实现的。指令 LARP n (0≤n≤7)将立即数 n 赋给辅助寄存器指针寄存器ARP(3位),由此选中AR0 ~AR7中的一个,该寄存器所含的内容是欲寻址的存储器单元。
在间接寻址中可用“*AR0+0B”实现FFT中的位反转寻址。 在间接寻址中可用“*AR0+0B”实现FFT中的位反转寻址。 “*AR0+0B” 表示将ARP所选中的辅助寄存器作为当前寄存器间接寻址,并将当前寄存器的内容和AR0的内容相加,若有位进位,进位不是向左而是向右。 ( AR0也可以是ARX)
以N=8为例。 AR0赋值为FFT长度的一半N/2=4, AR1中存放位反转的基地址,例如, AR1=0200H, 重复执行输入指令N=8次,可使数据以倒序方式排列,即 RPTK #7 IN *AR0+, PA0 (将PA0口顺序输入的数据以位反转的地址存储)
则依次由AR1产生的地址分别为: 0200H 0204H 0202H 0206H 0201H 0205H 0203H 0207H 对应 数据: x(0) x(1) x(2) x(3) x(4) x(5) x(6) x(7) 顺序 地址:0200H 0201H 0202H 0203H 0204H 0205H 0206H 0207H 对应 数据: x(0) x(4) x(2) x(6) x(1) x(5) x(3) x(7)
具体操作为 执行前: AR0: 0000 0000 0000 0100 AR1: 0000 0010 0000 0000 执行中:(ARO)+(AR1)→(AR1),位进位向右 如 AR1: 0000 0010 0000 0100 AR0: 0000 0000 0000 0100 AR1: 0000 0010 0000 0010
8次操作完成N=8的FFT二进制序数重排: 重复次数 AR1内容 对应地址中的数据 1 0000 0010 0000 0000 x(0) 2 0000 0010 0000 0100 x(1) 3 0000 0010 0000 0010 x(2) 4 0000 0010 0000 0110 x(3) 5 0000 0010 0000 0001 x(4) 6 0000 0010 0000 0101 x(5) 7 0000 0010 0000 0011 x(6) 8 0000 0010 0000 0111 x(7)
5.TMS320C5000的结构原理 TMS320C54X TMS320C55X (见书222~228)
5.TMS320系列的开发 1.TMS320宏汇编编译/连接器(Macro Assembler/Linker),汇编用助记符编写,编译连接成机器码,即目标文件,TI公司提供两种宏汇编的编译/连接器,一类用于定点的DSP,一类用于浮点DSP芯片。 2.ANSI C编译器(ANSI C Complier) 可将标准ANSI C语言编写的源文件转换成高效的TMS320系列的汇编语言源文件,也分定/浮点两类 其它公司也提供了C++编译器。