基于分布式存储器的数据存储方法

文档序号:6151028阅读:138来源:国知局
专利名称:基于分布式存储器的数据存储方法
技术领域
本发明涉及一种数据存储方法,尤其涉及一种基于分布式存储器的数据存储方法。
背景技术
合成孔径雷达(SAR)是一种高分辨力的成象雷达,其采集下来的数据形成一个大 的二维矩阵,通常把矩阵的行称之为距离向,列称之为方位向。在数据处理过程中,首先对 距离向进行脉压处理以获得该向的高分辨率,然后对方位向采用信号处理方法,使得采集 来的数据合成一个大口径的雷达。因此我们在SAR算法过程中,需要对二维矩阵先进行行 向量的处理,然后再进行列向量处理,在这个过程当中就需要对矩阵进行转置。在工程实现 中我们常常使用大容量的SDRAM存储器存储数据,在制作SDRAM过程中,其内部分为很多小 块,把这每一块称之为页。在一页中无论顺序读取还是跳变读取的效率都相同,但是当数据 的跳变长度太大时,会产生跨页的现象。这就使得在操作矩阵数据时需要不断的切换页,从 而浪费很多时间。目前的SDRAM存储器中一页大小为2K,然而在SAR算法中的任意维数据 长度都会超过一页范围。在仅进行距离向处理时,因其是顺序操作,可以得到很高的带宽。 但是在方位向处理中,每取一点都要进行跨页操作,这就大大降低了方位向点带宽,实际带 宽只有总线理论带宽的不到10%。 目前的SAR处理中,为了满足处理的带宽需求,一种方法是采用FPGA对内存的 操作进行优化,通常处理器向FPGA发送操作命令字,FPGA进行解析后将数据取出来,通过 FPGA的优化可以使得操作效率达到很高,但是需要额外的硬件辅助。另一种方法则是采用 冗余方法进行操作,该方法通过FPGA对多块SDRAM操作,每块SDRAM中存储相同的矩阵,当 需要处理列向量时,可以同时操作多条列向量。但是这种方法需要额外的内存,有很大的局 限性。 从上面可以看出目前的矩阵存储方法总要借助硬件的辅助,这就受到很大限制, 同时在未来的大测绘带SAR中内存容量也是个不可忽视的问题。为此我们提出了一种新的 存储方案,该方案建立在分布式的处理节点上,这样可以扩大SDRAM容量,同时也可以实现 并行处理,另外在单节点内采用软件的方法对内存操作,同样达到了与硬件相同的操作效 率。这样即打破了单节点内的硬件限制,同时也使得存储容量和处理效率得到了提高。

发明内容
本发明的目的在于解决大测绘带SAR的数据高效访问,提供了一种基于分布式存
储器的高效数据存储方法,实现了容量的扩大,以及并行处理的规模。 该一种基于分布式存储器的数据存储方法,所述方法包括步骤 第一步将完整数据矩阵按照某一维划分为n段,其中n为实际系统处理的节点
数;当算法需求先进行行向量处理时,按照列方向将矩阵划分n段,当处理需要先处理列向
量,按照行方向进行分段;
第二步根据数据划分方式,产生数据分布图;记录第一步中划分好的数据段位 于哪一节点内; 第三步对单节点内的数据矩阵划分;根据SDRAM的页大小,将每个处理节点内的
大矩阵划分为若干小矩阵,SDRAM的每页中包含矩阵的部分行向量部分列向量; 第四步接收矩阵访问命令,根据收到的命令判断访问矩阵哪一维,如果这一维数
据在本地节点内完整,则通过单节点内的高效访问方法进行访问,如果本地节点只有部分
数据时,首先获得本节点内的数据,然后通过第二步中生成的数据分布图获得空缺数据位
于哪一节点,向该节点发送数据请求,通过节点间互联高速接口进行数据补充; 第五步返回数据,进行处理。 该存储方法的工作原理SDRAM内部是按照行和列划分为很多单元格,在进行行 内访问时会有很高效率但是跨行访问数据效率会变得很低,所以为了平衡数据矩阵的行向 量和列向量的操作效率,就要改变传统的存储数据方式。所以要使得在SDRAM的一行中即 包含数据矩阵的行向量数据,还要包含一部分列向量数据。这样便可以做到两维操作均衡。 对于数据矩阵的一种划分方法,就是将其分为很多小的矩阵,每个小矩阵大小要同SDRAM 的行为基准。最后将划分好的小矩阵编号一次存入SDRAM中。 其次,采用分布式存储方法对于一组完整的矩阵数据,可以根据需要按某一维划 分为几部分,存于不同的节点处。这样在每个节点内会有一维是完整的数据。在需要访问 矩阵的一维数据时,首先判断这一维是完整数据维,还是非完整数据,如果是完整的,则只 需进行节点内操作即可,如果数据不完整,那么需要通过节点间的高速互联接口进行数据 交换,将数据补充完整。
本发明的有益效果 本发明为了平衡数据矩阵的行向量和列向量的操作效率,改变传统的存储数据方 式,使得在SDRAM的一行中即包含数据矩阵的行向量数据,还要包含一部分列向量数据,这 样便可以做到两维操作均衡。


图1示出如何将大的矩阵分割存储于处理板卡上的两节点内; 图2示出采用SDRAM的存储方案时,如何在物理页中进行数据的排布; 图3示出SAR数据矩阵划分小矩阵的方法; 图4示出划分出的小矩阵在实际物理内存中排布方式; 图5示出为获得某一维的完整数据,如何在节点间交换数据; 图6示出节点间的数据交换完成后在单节点内的逻辑分布; 图7示出分布式高效存储方案的操作流程图。
具体实施例方式
参照下面结合附图进行详细的描述,本发明的优点和特点以及实现的方法可更容 易地理解。 图1为使用两节点(四块DSP处理器)情况下的实现框图,从图中可以看出,一个 处理粒度的数据按照距离向被平分到了 SD1, SD2中;每个SD中距离向为完整的数据,方位向数据只为一半。在每个节点内部,我们采用存储方案可以实现高效的行列读写,在采用存 储方案后,对于一个节点内的SDRAM操作可以达到行列操作带宽为400MB/s,从上面的板卡 结构示意图可以看出,板内节点间通过LINK 口连接,故可以采用LINK 口传输数据。为了达 到速度的匹配,LINK 口要设置在1. 5分频下工作,此时理论带宽为400MB/s。下面详细的介 绍一下单节点内的高效SDRAM存储方案 SDRAM的内部是一个存储阵列,就如同表格一样将数据填进去,其检索原理也和表 格一样,先指定一个行,再指定一个列,这样就可以准确的找到所需的单元格,这个单元格 可称为存储单元,一行的存储单元称为一页。在访问SDRAM时,如果数据位于同一页内,不 需要行地址译码,反之需要进行行地址译码,这样便会增加访问时间。所以要想提高效率, 那就应该根据其特点改变数据的存储方法。 TS201板卡内的SDRAM总容量为2GB,分为8个256MB的"片",SDRAM每页的大小 为8192bytes。 设计的存储矩阵为16384X 16384,单位为复数点,即2个32bit字。
对于SAR处理中的矩阵数据,可以将其分为32X32的小矩阵,每个小矩阵大小恰 好为一页。对于这一页的数据存储按照如下方法按顺序将奇偶两条距离向交织存储。以 第0 31条距离向的前32复数点为例,存储方式的如图2所示,其中LineO, 1的(0,0)代 表第0和第1条距离线的第0个复数点。 图3所示为把大矩阵划分完成后的分布图,这里先按照方位向对小矩阵编号,每 16块连续编号后转向,这样主要是为了使用DMA操作时能够满足DMA的步进长度。图5为 将数据按照页编号顺序的存入内存空间中的分布图。 在这里将每16页组成的单位称为一块,每512块组成的大单位称为一组。我们分 析可知在每一组中存有完整的距离向数据,而方位向的数据则位于不同的组中。这样我们 在读取距离向时,只需知道其位于第几组,然后启动二维DMA读取即可。然而在读取方位向 数据时需要启动链式DMA来读取数据。具体的操作方法如下 距离向数据读取对于一整条16384复数点的距离线,相当于"第0点,空一点, 第1点,空一点...第31点...间隔一 '块',第32点,空一点,第33点,空一点...第63 点...间隔一 '±央'..."存储的,其中每一块即为上述的16页。 由于每片SDRAM只有2048个块,实际上一条16384复数点的距离线是分成了 512 段(即为一组,还可计算出每组中有512条完整的距离线),每段存在一块中,按照每两点间 间隔一点的方式存储。 对于第n条距离向数据,首先需要判断其编号的奇偶性。 假定n为偶数,则n = 512^+b,表明该数据位于第a组中组内偏移为b。再求b =32她+k,表明该数据的首地址位于a组中的第m页偏移为k,由此可以计算出首地址为 0xl000000*a+0x800*m+64*k。因此可以通过设置DMA进行数据读取,这里可知二维DMA的 X维修改值为4。 Y维的修改量为32768-124。应按照双字读取,读取的数量为32768字。
如果n为奇数,那么令n = n_l,计算过程同上只是首地址变为 0xl000000*a+0x800*m+64*k+2。 方位向数据读取对于一整条16384复数点的方位线,相当于"第0点,第1点,空 62点,第2点,第3点,空62点...第30点,第31点,空62点...第32点,第33点,空62
5点.....第510点,第511点。切换TCB进入下一组读取.....。可以看出在每一块TCB内
数据的操作为准连续操作。 通过计算可知每一组大小为512*32*2*512 = 16M字,故存储2G数据需要32组, 16384复数点的方位向被分为32段位于不同的组内。因此若想读取完整的方位向数据需要 启动链式DMA,在内存中需要有32块TCB组成TCB链。由于TS201板卡上的每个节点可见 的SDRAM大小为1G从对称性来说我们可以使用16块TCB,每操作完一次发中断进行SDRAM 激活,同时对后16块TCB进行设置。计算出第n条首地址方法如下 通过计算公式n = 32^+b,可计算得到其位于第a块内,块内偏移为b。则可以计 算第一组的首地址为32768*a+b*4。第二组的首地址应该加上组的大小(16M字)依次类 推可以得到每块TCB中的数据地址。在每块TCB中的操作可以通过一维DMA进行,其读取 方式为四字,步进长度为128字,每次的读取数量为1024字。 以上介绍的便是对于单节点内的高效存储方案,对于基于分布式内存的矩阵存 储,关键便是节点间的数据交换。图5和图6为分布节点的矩阵进行数据交换的示意图。
在每一节点内的距离向为完整的,所以可以通过DMA读取完整的距离向数据操 作,在处理完每一条距离线后,在写SDRAM过程中要分为两步将数据的一半写回本地节 点,另一半通过LINK 口写到另一节点的SDRAM中。通过该方法在将所有的距离线处理完后, 两边的内存中数据存储将发生改变方位向为完整的,距离向为一半。这样在进行后面的处 理中只需要读取本地节点即可。
权利要求
一种基于分布式存储器的数据存储方法,其特征在于所述方法包括如下步骤第一步将完整数据矩阵按照某一维划分为n段,其中n为实际系统处理的节点数;当算法需求先进行行向量处理时,按照列方向将矩阵划分n段,当处理需要先处理列向量,按照行方向进行分段;第二步根据数据划分方式,产生数据分布图;记录第一步中划分好的数据段位于哪一节点内;第三步对单节点内的数据矩阵划分;根据SDRAM的页大小,将每个处理节点内的大矩阵划分为若干小矩阵,SDRAM的每页中包含矩阵的部分行向量部分列向量;第四步接收矩阵访问命令,根据收到的命令判断访问矩阵哪一维,如果这一维数据在本地节点内完整,则通过单节点内的高效访问方法进行访问,如果本地节点只有部分数据时,首先获得本节点内的数据,然后通过第二步中生成的数据分布图获得空缺数据位于哪一节点,向该节点发送数据请求,通过节点间互联高速接口进行数据补充;第五步返回数据,进行处理。
全文摘要
本发明公开了一种基于分布式存储器的数据存储方法,第一步将完整数据矩阵按照某一维划分为n段,其中n为实际系统处理的节点数;第二步根据数据划分方式,产生数据分布图;记录第一步中划分好的数据段位于哪一节点内;第三步对单节点内的数据矩阵划分;根据SDRAM的页大小,将每个处理节点内的大矩阵划分为若干小矩阵;第四步接收矩阵访问命令,根据收到的命令判断访问矩阵哪一维;第五步返回数据,进行处理。本发明为了平衡数据矩阵的行向量和列向量的操作效率,改变传统的存储数据方式,使得在SDRAM的一行中既包含数据矩阵的行向量数据,还要包含一部分列向量数据,这样便可以做到两维操作均衡。
文档编号G01S7/02GK101782878SQ20091008141
公开日2010年7月21日 申请日期2009年4月3日 优先权日2009年4月3日
发明者刘峰, 刘腾飞, 胡善清, 龙腾 申请人:北京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1