适用于图像检测压缩系统的内存存取方式
为了兼具可扩大性和数据处理速度,对于各种利用,如图像数据侦错、视频数据压缩、音频数据增益、马达把持等,可编程数据处理模块(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,就可以完成计算前数据的完备,大大进步了数据的利用率,采用持续读取的机制,不用在每次计算前计算数据地址,只要每一端口
- 1
- 2
- 下一页