位置:51电子网 » 技术资料 » 接口电路

DSP中的存储器共享与快速访问技术设计

发布时间:2008/5/28 0:00:00 访问次数:484

现代电子技术

  摘 :介绍了在多个dsp之间或者dsp与其他cpu之间存储器共享技术的基本设计方法,重点介绍了如何在设计上提高存储器的访问速度和克服访问竞争的方法。
  关键词:存储器共享;dsp;访问竞争;sdram;猝发读写

  在多任务信号处理系统中,为了提高信号的处理速度,往往使用几个dsp协同工作,为此,必须要解决好几个dsp对共享存储器的高速访问问题。具体来说,主要要解决好两个问题:
  (1)通过建立竞争仲裁机制解决存储器访问共享竞争问题;
  (2)解决批量数据高速访问问题。dsp对批量数据的访问一般都是通过启动dma完成,而dma一旦启动,数据的传输就不受dsp控制,因此,要设计专门控制电路和缓冲区来确保高速数据传输的稳定性和可靠性。

  本文重点介绍了两个tms320c5402之间共享sram和ddrsdram的设计方法。

1 sram的共享访问
  图1是2片tms320c5402共享sram的原理图。为了保证对sram访问的可靠性,2片dsp共用同一个系统时钟和具有相同的访问优先级。当2片dsp同时对共享存储器发出访问需求时,fpga中的共享仲裁控制逻辑会在第1个存储器访问周期允许第1片dsp对sram进行访问,同时向第2片dsp发出ready等待信号,然后在下一个存储器访问周期撤销该等待信号,允许第2片dsp对sdram进行访问。如果进行批量数据传输,则2片dsp对应的ready信号会交替启动。fpga中的2个双向缓冲器是互相禁止的。另外,在dsp的软件编程时要注意,在软件等待周期寄存器被写入后至少要等待2个时钟周期dsp才会启动对ready信号的检测。

2 ddrsdram的高速共享访问
  在上述方式中,如果2片dsp同时要对共享存储器进行访问,其访问速度将会降低一倍。在实际的信号处理系统中,特别是在连续视频信号的编码、压缩与速访问,如果采用大容量双口ram,其硬件成本开销太大。现在pc机中大量使用的双速数据同步动态存储器(double data rate synchronous,dram)具有存储容量大、访问速度快、价格低廉等特点,因此在大容量高速数字信号处理系统中,只要解决好对ddrsdram的读写访问控制问题,就能解决好大容量高速存储器的共享访问问题。

2.1 ddrsdram的读写访问特性
  图2为现代公司的hy5dv651622双速同步动态存储器的功能框图。其存储容量为8 mb,数据宽度为16 b,分为4个页面,采用行列地址复用方式。在时钟的上升和下降沿均可以进行数据的读写操作。对dram的控制包括命令控制和数据读写控制,在命令控制中主要包括模式寄存器设置、存储器自动刷新控制等,通过模式寄存器的设置可以使存储器工作于猝发读写方式,读写长度可以达到256个地址。 

2.2 共享ddrsdram的工作过程
  为了保证dsp对sdram大数据量访问的高效性,将sdram设置为猝发读写模式,dsp设置为dma方式,在fpga中设置容量均为128 b的sram缓冲区b0和b1做为数据缓存区,从sdram中输出的数据或输入至sdram的数据都要经过b0和b1,通过控制寄存器的设置将b0和b1都映射到2片dsp中地址为ff00h到ff80h的数据区间,但同一时刻1片dsp只能访问b0或b1中的1个。

  在实际工作中,当一片dsp访问b0时,另一片dsp或sdram访问b1;相应地当一片dsp访问b1时,另一片dsp或sdram则访问b0。如果sdram和dsp同时向同一个数据缓冲区b0或b1写入或读出数据,fpga会自动禁止,并通过控制寄存器向dsp传递数据读写状态错误信息。这种数据传递方式不仅加速了dsp对数据的访问速度,而且解决了dsp和sdram之间时钟频率不同步问题,不用像图1那样让2片dsp共享同一个时钟。sdram与双dsp的接口如图3所示。 

  具体来说,dsp对sdram的访问分以下两种情况:
  (1)同时只有1片dsp对sdram访问 此时b0,b1均属于该dsp所有,以读数据为例,首先dsp将需要对sdram访问的首末地址通过控制寄存器写入fpga,并且设置b0,b1为空的标志,然后起动数据传送命令,fpga在收到该命令后读入128字入b0,并设置b0的标志为满,随后再读入128字入b1,并设置b1的标志为满;接着判断b0的标志是否为空,若为空则读出128字

现代电子技术

  摘 :介绍了在多个dsp之间或者dsp与其他cpu之间存储器共享技术的基本设计方法,重点介绍了如何在设计上提高存储器的访问速度和克服访问竞争的方法。
  关键词:存储器共享;dsp;访问竞争;sdram;猝发读写

  在多任务信号处理系统中,为了提高信号的处理速度,往往使用几个dsp协同工作,为此,必须要解决好几个dsp对共享存储器的高速访问问题。具体来说,主要要解决好两个问题:
  (1)通过建立竞争仲裁机制解决存储器访问共享竞争问题;
  (2)解决批量数据高速访问问题。dsp对批量数据的访问一般都是通过启动dma完成,而dma一旦启动,数据的传输就不受dsp控制,因此,要设计专门控制电路和缓冲区来确保高速数据传输的稳定性和可靠性。

  本文重点介绍了两个tms320c5402之间共享sram和ddrsdram的设计方法。

1 sram的共享访问
  图1是2片tms320c5402共享sram的原理图。为了保证对sram访问的可靠性,2片dsp共用同一个系统时钟和具有相同的访问优先级。当2片dsp同时对共享存储器发出访问需求时,fpga中的共享仲裁控制逻辑会在第1个存储器访问周期允许第1片dsp对sram进行访问,同时向第2片dsp发出ready等待信号,然后在下一个存储器访问周期撤销该等待信号,允许第2片dsp对sdram进行访问。如果进行批量数据传输,则2片dsp对应的ready信号会交替启动。fpga中的2个双向缓冲器是互相禁止的。另外,在dsp的软件编程时要注意,在软件等待周期寄存器被写入后至少要等待2个时钟周期dsp才会启动对ready信号的检测。

2 ddrsdram的高速共享访问
  在上述方式中,如果2片dsp同时要对共享存储器进行访问,其访问速度将会降低一倍。在实际的信号处理系统中,特别是在连续视频信号的编码、压缩与速访问,如果采用大容量双口ram,其硬件成本开销太大。现在pc机中大量使用的双速数据同步动态存储器(double data rate synchronous,dram)具有存储容量大、访问速度快、价格低廉等特点,因此在大容量高速数字信号处理系统中,只要解决好对ddrsdram的读写访问控制问题,就能解决好大容量高速存储器的共享访问问题。

2.1 ddrsdram的读写访问特性
  图2为现代公司的hy5dv651622双速同步动态存储器的功能框图。其存储容量为8 mb,数据宽度为16 b,分为4个页面,采用行列地址复用方式。在时钟的上升和下降沿均可以进行数据的读写操作。对dram的控制包括命令控制和数据读写控制,在命令控制中主要包括模式寄存器设置、存储器自动刷新控制等,通过模式寄存器的设置可以使存储器工作于猝发读写方式,读写长度可以达到256个地址。 

2.2 共享ddrsdram的工作过程
  为了保证dsp对sdram大数据量访问的高效性,将sdram设置为猝发读写模式,dsp设置为dma方式,在fpga中设置容量均为128 b的sram缓冲区b0和b1做为数据缓存区,从sdram中输出的数据或输入至sdram的数据都要经过b0和b1,通过控制寄存器的设置将b0和b1都映射到2片dsp中地址为ff00h到ff80h的数据区间,但同一时刻1片dsp只能访问b0或b1中的1个。

  在实际工作中,当一片dsp访问b0时,另一片dsp或sdram访问b1;相应地当一片dsp访问b1时,另一片dsp或sdram则访问b0。如果sdram和dsp同时向同一个数据缓冲区b0或b1写入或读出数据,fpga会自动禁止,并通过控制寄存器向dsp传递数据读写状态错误信息。这种数据传递方式不仅加速了dsp对数据的访问速度,而且解决了dsp和sdram之间时钟频率不同步问题,不用像图1那样让2片dsp共享同一个时钟。sdram与双dsp的接口如图3所示。 

  具体来说,dsp对sdram的访问分以下两种情况:
  (1)同时只有1片dsp对sdram访问 此时b0,b1均属于该dsp所有,以读数据为例,首先dsp将需要对sdram访问的首末地址通过控制寄存器写入fpga,并且设置b0,b1为空的标志,然后起动数据传送命令,fpga在收到该命令后读入128字入b0,并设置b0的标志为满,随后再读入128字入b1,并设置b1的标志为满;接着判断b0的标志是否为空,若为空则读出128字

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!