星上DSP系统性能提高的瓶颈及其对策.doc
15页星上DSP系统性能提高的瓶颈及其对策60控制工程2005年第2期星上DSP系统性能提高的瓶颈及其对策赵玮孙昕郭兵北京控制工程研究所摘要本文针对执行数据处理任务的星上应用DSP系统,以系统设计的角度,从外部存储器速度,外部存储器容量,软件可靠性三方面详细分析了限制DSP系统进一步提高性能的瓶颈,并分别提出了解决方案.应用这些方案到实际的星上DSP系统设计中,将大幅度的提高数据处理性能,提高DSP芯片在星上应用的可靠性.关键词DSP系统外部存储器RToS引言近年来,DSP(数字信号处理器)技术飞速发展,在军事领域和航天器中得到了广泛应用.在国外,新一代军用卫星的控制系统,GPS,雷达,导航系统等其内部的许多部件都有应用DSP的例子.在国内,DSP在星上数据处理方面的应用也有了相当的发展,许多敏感器部件上用到了进行数据处理的DSP,这些DSP的使用大大增强了敏感器部件的输出数据更新率,为卫星控制精度的提高做出了贡献.目前这类DSP应用系统已经从最初的单DSP,10MHz核心工作频率,处理能力10MFLOPS发展到双DSP,100MHz核心工作频率,单DSP处理能力600MFLOPS,同时与之配套的高可靠外围电路技术也日趋成熟.然而,在DSP的发展过程中,由于传统的设计方法的原因,出现了DSP系统性能进一步提高的瓶颈.本文将对这些瓶颈加以分析,并提出相应的解决方法,以期拓宽DSP在星上的应用能力,使之更加适合我国航天器设计的要求.2当前影响DSP性能提高的瓶颈由于用户的需求不断提高,要求我们提供在卫星上适用的速度更快,功耗更低,可靠性更高的DSP产品.可以预见,在很短的时间内,现有的星上DSP系统将不再能满足用户要求,这就促使我们不断开发出性能更优的产品.但是要使DSP系统的性能从当前的水平上再上一个台阶,仍然采用传统的设计方法遇到了许多困难,这些困难形成了制约星上DSP系统性能发展的瓶颈.从系统设计的角度来看,瓶颈存在于两大方面:a,外部存储器设计,包括速度和容量的瓶颈.b.软件设计,包括质量和可靠性的瓶颈.本文将从这两部分出发,分别对它们进行分析,并提出相应的解决方案.控制工程613外部存储器设计瓶颈及对策3.1外部存储器速度瓶颈及对策因为大部分DSP内部存储器的容量与应用程序相比较小,再加上星上应用可靠性的缘故,DSP系统的应用程序一般在外部存储器中运行.在已实现的传统设计中,应用程序运行的方式主要有两种:a.在只读存储器(如PROM,EPROM,EPROM)中直接运行在这种方式下,DSP在上电后从复位向量表中得到复位向量,然后跳转到只读存储器内的程序指令空间,并从那里运行程序.b.在异步静态随机存取存储器(ASRAM)中运行在这种方式下,程序的载体仍然是只读存储器,但是复位后首先运行引导程序,将只读存储器中的程序代码和常量复制到ASRAM中,然后直接跳转到ASRAM中运行程序.无论使用哪一种方式,都有一个共同点:即应用程序运行时,DSP所取指令的地址空间都是异步存储器,使用的是DSP的异步接口(AsynchronousInterface).这种接口的优点是实现简单,可配置能力强,可以和不同速度/类型的异步器件进行直接连接.然而,这种连接方式并不适用于高速度的DSP系统.要保证DSP全速(流水线满)工作,DSP异步接口读写速度必须比存放指令的存储器的读写速度快,这样才能保证DSP在一个指令周期内从存储器中得到指令,并送入流水线管道.如果不能达到这个要求,就必须在DSP内部或者外部插入等待周期,以满足外部存储器时序要求,把数据可靠的送到DSP总线上.由于所取的数据是DSP的指令代码,如果不考虑读取其他存储器带来的打断,那么理论上仅插入一个等待,就会使DSP的性能下降一半.表1DSP访问外部程序存储器的等待周期序号DSP外部程序存储器等待周期116MHzADSP一21062指令周期625nsPROMUT28F256访问速度40/45ns0216MHzADSP一21062指令周期625nsEPROMr27C256访问速度45ns0350MHzTMS320C6701指令周期20nsASRAMwMs512K8访问速度15ns04167M}kTMs320c6701指令周期6nsASRAMCY7C1062Av33访问速度8ns2550MHzTMS320C6701指令周期20nsASRAMCY7C1062AV33访问速度8ns0从表1中可以看出当异步接口的读写速度不大于16MHz时,使用慢速的PROM或者E—PROM也可以满足DSP零等待时序要求,如表1第一,二项所示.但当DSP主频上升后,异步接口的读写速度也随之上升,这时PROM,EPROM就不再满足DSP全速工作的要求了.如果将慢速的PROM,EPROM换为速度较快的ASRAM后,适用的DSP主频可以达到50MHz以上,如表1第三项所示.但ASRAM仍然属于异步器件,其结构决定了读写速度的限制.现今较快的ASRAM读写访问时间可以达到8ns,但这一时间并不是DSP读写ASRAM的完整有效时间,只是ASRAM地址有效到数据有效的时间间隔.以表1第四项为例,要想使TMS320C~01能够可靠读取CY7C1062AV33中的数据,实际电路设计时必须满足下面的公式:Tcyc1e≥Tofna+Tacc(m)+Ttp+Tmrgin其中:62控制工程T异步接口读周期Td…:DSP时钟上升沿到输出地址有效和控制信号有效的最大延时,TMS320C6701为4.5nsT…f):ASRAM的输入地址有效到数据总线上数据有效的间隔,CY7C1062AV33为8nsTDSP数据总线上数据有效到DSP采样数据之间的建立时间,TMS320C6701为4.5nsT考虑到信号传输时间和时钟偏移,保证数据读取正确所要求的裕量,至少为1ns按照上式计算T…l最小值为18ns,这才是DSP读写ASRAM的一个完整周期.因此,在这种工作方式下,TMS320C6701的实际工作频率最大被限制在50MHz左右,参见表1第五项,对ASRAM来说,这已经是理论上的极限值.通过上述分析,可以看出造成DSP异步接口速度限制的原因主要有两方面:a.异步接口的工作方式.由于异步存储器的每一次读写都需要重新打入地址,这使得地址总线上的数据交换占去了数据读取的大部分时间.b.ASRAM的读写速度较慢.当今较快的ASRAM的访问时间在8ns左右.正是因为异步存储器本身特性决定了它的速度限制,那么使用同步存储器(Syn—chronousRAMs)就成为了解决这一速度限制的途径.同步存储器采用同步技术,使得它的读写速度与异步存储器相比有了突破性的进步,这种进步足以使得TMS320C6701可以在超过150MHz的速度下全速运行,达到异步存储器300%的功能.当前流行的快速同步存储器包括同步动态RAM(SynchronousDRAMSDRAM)和同步突发静态RAM(SynchronousBurstSRAMSBSRAM).由于SDRAM是一种动态RAM,它必须被定时刷新,这种工作模式在星上应用的可靠性有待研究.而且SDRAM在使用上也比较复杂,因此它不是一种理想的解决方案.同步突发式静态RAM(SBSRAM)与SDRAM相比,最大的优势在于它是一种静态RAM,不需要刷新.所以可靠性要比SDRAM高出不少,更符合卫星上应用的要求.所谓"突发",是指同步RAM的一种技术,它的主要思想是通过给出一个地址与控制信号配合,利用存储器内的地址产生器生成多个地址(通常为所给地址的后续空间),并在之后的每个时钟周期内,将这些地址对应的数据依次的同步送到数据总线上.由于是同步操作,DSP可以在适当的时问去读取数据,不会造成时序上的偏差.这种方式的优点就是大幅减少了地址总线的操作,而这一点正是异步SRAM性能受限的主要原因.SBSRAM与ASRAM相比,一个优势是读写速度快,另一个优势是因为地址的产生大部分是在存储器内部,这样就减少了因锁存错误地址而得到错误数据的可能性,而除非进行了彻底的信号完整性分析,否则这种可能性在超过IOOMHz的高速电路中是普遍存在的.从应用程序运行时取指令操作的特点来看,SBSRAM也十分适合作为应用程序运行时的载体.因为应用程序运行时,除了数量有限的跳转以外,大部分是顺序执行的,PC指针基本上以1为公差递增.这样就基本不会打断突发操作,使得绝大部分的指令都可以在DSP单指令周期内取走,达到使DSP全速工作的目的.正是因为SBSRAM与ASRAM和SDRAM相比具有上述优点,DSP芯片制造厂商纷纷控制工程63推出了可以与之直接连接的DSP产品.比如TI公司的TMS320C6000系列和AD公司的ADSP一21161N都专门设计了SBSRAM的无缝接口(GluelessInterface),TMS320C6701就可利用该接口直接与32位的SBSRAM相连,并且可以实现在芯片最高频率167MHz下全速工作.3.2存储器容量的瓶颈及对策无论是ASRAM还是SBSRAM,都只是应用程序运行时的载体,而程序和常量必须固化在只读存储器中.因为卫星在空间辐射环境中工作,需要考虑空间辐射效应对存储器的影响,所以储存程序的只读存储器一般采用具有抗辐射加固能力的芯片,常用芯片有INTER—SIL公司的HS6664RH(8K×8bit)和UTMC公司的UT28F256(32K×8bit).在我国的DSP系统应用早期,完成的任务比较简单,程序主要以汇编语言编写,这时一个程序占用的地址空间大约是2~6KB,只需要几片HS6664就可装下所有的程序和变量.但是随着DSP承担任务的复杂化,仍然使用汇编语言编写程序不仅实现和调试困难,而且带来了诸如软件可靠性,可维护性等一系列问题,这就要求使用高级语言(C或者C++语言)来进行软件开发.但是C语言经编译后要占用相当大的存储空间,这使得PROM的使用片数大幅上升,这在功耗和空间上有很高要求的星上嵌入式系统中是无法接受的.现在有一种可行的方法可以解决这一问题,那就是采用数据压缩算法将应用程序的指令代码和常量进行压缩,PROM中存储的实际上是引导程序的源代码和经过压缩的应用程序.在系统加电后,运行引导程序,执行解压缩程序,将真正的应用程序解压后放到片外大容量的RAM中,然后在RAM中运行应用程序.这种方法非常适合在DSP系统上的应用,当今有许多比较成熟的二进制数据压缩算法,一般都可以达到相当高的压缩率和比较快的解压缩速度,借助于DSP芯片强大数据处理能力,解压缩算法的运行效率可以非常高,减少因解压缩占用的系统初始化时间.这种方法还有一个优点,就是优秀算法可以实现容错的功能,在解压缩时可以将因单粒子翻转(SEU)或其他原因造成的少量数据错误纠正过来,这个特点可以减少因程序代码发生永久性错误而造成的系统无法工作的可能性,提高了在星上应用的可靠性.然而,这种方法在实现时应当具体分析所设计系统的特征,来确定所适合的压缩算法.举例来说,不同种类DSP的指令宽度也不同,常见的包括16位,32位,48位几种,不同宽度指令的解压缩方法是不同的,这需要根据实际情况对算法进行适应性的修改.此外,由于不同的DSP具有不同的结构,在编写解压缩代码时要充分考虑到所使用DSP的特点,针对特定芯片进行代码的优化,减少解压缩的时间.尽管对于不同的DSP,解压缩算法和实。





