适用于图像检测压缩系统的内存存取方式
发布时间: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
热门点击
- AD/DA的分类与指标
- 基于SPI总线的电能计量芯片ATT7022及
- 适用于高输入输出电压差的降压稳压器电路拓扑
- 一种新型浪涌电流限制器
- 半桥电流源高频链逆变电路分析
- 基于双12位DAC的高精度直流电压/电流源设
- 试论多进制数字调制技术及其应用
- 电动车铅酸蓄电池的脉冲快速充电设计
- PID是什么意思?
- 使用UPS十点注意
推荐技术资料
- Seeed Studio
- Seeed Studio绐我们的印象总是和绘画脱离不了... [详细]