位置:51电子网 » 技术资料 » 电源技术

适用于图像检测压缩系统的内存存取方式

发布时间:2008/5/26 0:00:00 访问次数:555

        

    

    

    来源:电子设计应用 作者:凌华科技股份有限公司 蔡颖铭

    

    为了兼具可扩展性和数据处理速度,对于各种应用,如图像数据侦错、视频数据压缩、音频数据增益、马达控制等,可编程数据处理模块(programmable data processing module)是时势所需。

    

    在处理的数据量越来越大的情况下,所需的内存容量随之增大,以往的先进先出队列(first-in-first-out, fifo)无法满足其高速度与大容量的需求,许多硬件工程师开始考虑使用dram的可能性。

    

    dram具备可快速存取、可依照设计者规划使用空间、大容量等优点,但是内存数组需要重新充电,而双倍数据速率同步动态随机存取内存( ddr sdram)有数据相位同步等不易控制的问题,不如fifo使用方便。因此,在使用fpga进行设计时,搭配其供货商所提供的ram控制ip,再加上硬件工程师所开发的控制逻辑,是当前数据控制存取的发展趋势。

    

    本文的构想是在此dram控制ip上增加一层包装(wrapper),使之拥有fifo接口,具有多端口内存存取控制(mpma: multi-port memory access)功能。既可以保持大容量、存取速度快等优点,也可增添fifo接口容易的优点。在设计过程中,dram空间可随设计师的定义而拥有更高的弹性。如图1所示,此dram拥有两个写入端口和两个读出端口。对于每个写入端口,其数据可以从起始地址连续写入,直到结束地址之后,再从起始地址继续写入,形成循环式(circular)写入方式。对于每个读出端口,其数据的读出可使用类似于循环写入的方式,而且只要写入到内存的数据数量比读出的数据数量多,即是合理的类fifo存取方式。

    

    

    

    图1 有两个写端口和两个读端口的dram控制槽

    

    mpma如何应用于数据处理模块

    

    在许多需要对大量信息进行运算处理的应用中,需要极大的缓存,与一个4kb fifo的价格相比,买一个32mb的dram更合适些。不过,其复杂的存取控制是一大问题。所以在编写fpga的hdl算法时,可利用fpga供货商所提供的ip构成解决方案。

    

    对于所需处理的数据量重复性较高的应用,例如图2所示的图像原始数据用图像侦错处理算法来侦测p4点是否错误,需要将它周围的8个点当作参考数据来对比,若使用fifo,可能无法同时存取到此三条线(line)的数据,所以使用dram存取大量的数据。

    

    

    

    图2 图像原始数据点数组

    

    由于dram的控制方式比较复杂,每存取一次就要重新计算其欲存取的数据地址,根据其数据地址的连续性,可在图像原始数据写入后,分为三个端口以连续地址的方式读出。如图2所示,第一端口连续读出p0、p1、p2,第二端口连续读出p4、p5、p6,第三端口连续读出p8、p9、p10,则可以完成p5点侦错的计算;而在计算p6点是否出错时,第一端口只要再读出p3,第二端口读出p7,第三端口读出p11,就可以完成计算前数据的完备,大大提高了数据的使用率,采用连续读取的机制,不用在每次计算前计算数据地址,只要每一端口均先连续读取数据即可完成,也降低了dram控制的复杂度。

    

    mpma的实现

    

    下面以altera megacore ip generator产生的ddr dram控制器为例,再加上自创的wrapper逻辑,构建一进(32位进)一出(8位出)的mpma存取端口,图3为其方块架构图。

    

    

    

    图3 一进一出的mpma存取端口

    

    在此架构中,altera ddr dram 控制与写/读wrapper间的数据带宽为64位,而通过wrapper逻辑,更可自由地编写输入与输出带宽。在写/读wrapper中,数据的地址计算采用累进式累加方式,其存取接口类似于fifo的存取,因而更容易实现大容量数据的存取。

   &nbs

        

    

    

    来源:电子设计应用 作者:凌华科技股份有限公司 蔡颖铭

    

    为了兼具可扩展性和数据处理速度,对于各种应用,如图像数据侦错、视频数据压缩、音频数据增益、马达控制等,可编程数据处理模块(programmable data processing module)是时势所需。

    

    在处理的数据量越来越大的情况下,所需的内存容量随之增大,以往的先进先出队列(first-in-first-out, fifo)无法满足其高速度与大容量的需求,许多硬件工程师开始考虑使用dram的可能性。

    

    dram具备可快速存取、可依照设计者规划使用空间、大容量等优点,但是内存数组需要重新充电,而双倍数据速率同步动态随机存取内存( ddr sdram)有数据相位同步等不易控制的问题,不如fifo使用方便。因此,在使用fpga进行设计时,搭配其供货商所提供的ram控制ip,再加上硬件工程师所开发的控制逻辑,是当前数据控制存取的发展趋势。

    

    本文的构想是在此dram控制ip上增加一层包装(wrapper),使之拥有fifo接口,具有多端口内存存取控制(mpma: multi-port memory access)功能。既可以保持大容量、存取速度快等优点,也可增添fifo接口容易的优点。在设计过程中,dram空间可随设计师的定义而拥有更高的弹性。如图1所示,此dram拥有两个写入端口和两个读出端口。对于每个写入端口,其数据可以从起始地址连续写入,直到结束地址之后,再从起始地址继续写入,形成循环式(circular)写入方式。对于每个读出端口,其数据的读出可使用类似于循环写入的方式,而且只要写入到内存的数据数量比读出的数据数量多,即是合理的类fifo存取方式。

    

    

    

    图1 有两个写端口和两个读端口的dram控制槽

    

    mpma如何应用于数据处理模块

    

    在许多需要对大量信息进行运算处理的应用中,需要极大的缓存,与一个4kb fifo的价格相比,买一个32mb的dram更合适些。不过,其复杂的存取控制是一大问题。所以在编写fpga的hdl算法时,可利用fpga供货商所提供的ip构成解决方案。

    

    对于所需处理的数据量重复性较高的应用,例如图2所示的图像原始数据用图像侦错处理算法来侦测p4点是否错误,需要将它周围的8个点当作参考数据来对比,若使用fifo,可能无法同时存取到此三条线(line)的数据,所以使用dram存取大量的数据。

    

    

    

    图2 图像原始数据点数组

    

    由于dram的控制方式比较复杂,每存取一次就要重新计算其欲存取的数据地址,根据其数据地址的连续性,可在图像原始数据写入后,分为三个端口以连续地址的方式读出。如图2所示,第一端口连续读出p0、p1、p2,第二端口连续读出p4、p5、p6,第三端口连续读出p8、p9、p10,则可以完成p5点侦错的计算;而在计算p6点是否出错时,第一端口只要再读出p3,第二端口读出p7,第三端口读出p11,就可以完成计算前数据的完备,大大提高了数据的使用率,采用连续读取的机制,不用在每次计算前计算数据地址,只要每一端口均先连续读取数据即可完成,也降低了dram控制的复杂度。

    

    mpma的实现

    

    下面以altera megacore ip generator产生的ddr dram控制器为例,再加上自创的wrapper逻辑,构建一进(32位进)一出(8位出)的mpma存取端口,图3为其方块架构图。

    

    

    

    图3 一进一出的mpma存取端口

    

    在此架构中,altera ddr dram 控制与写/读wrapper间的数据带宽为64位,而通过wrapper逻辑,更可自由地编写输入与输出带宽。在写/读wrapper中,数据的地址计算采用累进式累加方式,其存取接口类似于fifo的存取,因而更容易实现大容量数据的存取。

   &nbs

相关IC型号

热门点击

 

推荐技术资料

Seeed Studio
    Seeed Studio绐我们的印象总是和绘画脱离不了... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!