用户中心

资讯 > 人机界面

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

2007.05.10阅读 1766

  关键词:FIFO 影像数据帧 MPMA

  为了兼具可扩充性以及数据处理速度,对于各种应用如:影像数据侦错、视讯数据压缩、音效数据增益、电动机控制等,可程序化数据处理模块(Programmable Data Processing Module)都是当前时势所需。

  以影像数据侦错模块为例,一个可程序化逻辑门阵列(FPGA)是必备的主要组件,硬件工程师可在这个组件中使用硬件描述语言(Hardware Description Language, HDL)撰写适合客户需求的算法。若是需要修改或新增功能,则可修改HDL程序,再对FPGA芯片重新烧录,无须对硬件板卡做任何重新加工或是重新设计的动作,就可以达到需求。

点击看原图

点击看原图

  在处理的数据量越来越大的情形下,所需的暂存内存容量随之增大,以往的先进先出队列(First-In-First-Out, FIFO)无法符合其高速度与大容量的需求,许多硬件工程师转往思考随机存取内存(Dynamic Random Access Memory, DRAM)的使用可能性。

  随机存取内存具备可快速存取、可依照设计者规划使用空间、大容量等优

点,但是内存数组需要重新充电(Re-Charge),甚至在双倍数据速率同步动态随机存取内存(Double Data Rate SDRAM, DDR SDRAM)有数据相位同步等不易控制的问题,不如FIFO使用容易。因此,在使用FPGA芯片设计上,搭配其供货商所提供的RAM控制智财(Intellectual Property, IP),再加上硬件工程师所开发的控制逻辑,是当前数据控制存取的趋势。

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

  笔者的构想是在此DRAM Controlling IP上再加上一层包装(Wrapper)使之拥有FIFO接口,成为一多端口内存存取控制(Multi-Port Memory Access, MPMA)技术。既可保有大容量、存取速度快等优点,亦可保有FIFO接口容易的优点。在设计过程中CONTROL ENGINEERING China版权所有,DRAM空间可随使用者定义而拥有更高的弹性。如图1,此DRAM拥有两个写入端口以及两个读出端口。对于每个写入端口,其数据可从起始地址连续写入,直到结束地址之后,再从起始地址继续写入,成一循环式(Circular)写入方式。对于每个读出端口,其数据读出的方式可使用类似于循环写入的方式,而且只要写入到内存的数据数量比读出的数据数量多,则此方式是合理的类FIFO存取方式。

  MPMA如何使用于数据处理模块

  许多大量资料运算处理的应用,需要极大的资料暂存,相对应于一个4k-Byte FIFO的价格,其实可以买一个32M-Bit DRAM颗粒绰绰有余。不过,就如前述,其不方便的存取控制是一大问题。所以在撰写FPGA里的HDL算法时控制工程网版权所有,借助其FPGA供货商所提供的IP为一个解决方案。图2为在一个FPGA中,借助其供货商所提供的DRAM控制IP来做设计的示意图。

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

  对于所需处理的数据量重复性偏高的应用,例如图3的影像原始数据用影像侦错处理算法来侦测P4点是否错误,需要它周围的8个点当作参考数据来对比控制工程网版权所有,若是使用FIFO,可能无法同时暂存到此3条线(Line)的数据,所以使用DRAM暂存大量的数据www.cechina.cn,以提供硬件的算法所需要时可以存取到大范围的数据。

  由于DRAM的控制复杂,每存取一次就要重新计算其欲存取的数据地址,根据其数据地址的连续性,可在图像原始数据写入后,分为三个端口以连续地址的方式读出。例如图3,第一端口连续读出P0、P1、P2,第二端口连续读出P4、P5、P6,第三端口连续读出P8、P9、P10,则可以完成P5点侦错的计算;而在计算P6点是否错误时,第一端口只要再读出P3控制工程网版权所有,第二端口读出P7,第三端口读出P11,就可以完成计算前数据的完备,大大提高数据的使用率,也因为连续读取的机制,不用每次计算前就先计算数据地址,只要每一端口均先连续读取数据即可完成,也降低了DRAM控制的复杂度。

  MPMA技术介绍

  笔者以Altera MegaCore IP Generator产生的DDR DRAM Controller为例,再加上自创的Wrapper逻辑,制造一进(32-bit in)一出(8-bit out)的MPMA的存取端口;图4为其方框架构图。

点击看原图

点击看原图

  在此架构中可明白其Altera DDR DRAM Controller与Write/Read wrapper间的数据频宽为64位,而通过笔者所撰写的wrapper逻辑,更可自由地撰写输入与输出的频宽。在Write/Read wrapper中数据的地址计算方式采用累进式累加,其存取接口类似为FIFO的存取,因而达到更容易使用其大容量数据暂存的优点。

  每个wrapper中有一小容量的FIFO

版权声明:版权归控制工程网所有,转载请注明出处!

频道推荐

关于我们

控制工程网 & CONTROL ENGINEERING China 全球工业控制、自动化和仪器仪表领域的先锋媒体

CE全球

联系我们

商务及广告合作
任小姐(北京)                 夏小姐(上海)
电话:010-82053688      电话:18616877918
rendongxue@cechina.cn      xiashuxian@cechina.cn
新闻投稿:王小姐

关注我们的微信

关于我们 | 网站地图 | 联系我们
© 2003-2020    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688