CN101782878B - 基于分布式存储器的数据存储方法 - Google Patents

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

Info

Publication number
CN101782878B
CN101782878B CN2009100814174A CN200910081417A CN101782878B CN 101782878 B CN101782878 B CN 101782878B CN 2009100814174 A CN2009100814174 A CN 2009100814174A CN 200910081417 A CN200910081417 A CN 200910081417A CN 101782878 B CN101782878 B CN 101782878B
Authority
CN
China
Prior art keywords
data
matrix
node
sdram
divided
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2009100814174A
Other languages
English (en)
Other versions
CN101782878A (zh
Inventor
刘峰
龙腾
刘腾飞
胡善清
曾大治
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN2009100814174A priority Critical patent/CN101782878B/zh
Publication of CN101782878A publication Critical patent/CN101782878A/zh
Application granted granted Critical
Publication of CN101782878B publication Critical patent/CN101782878B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于分布式存储器的数据存储方法,第一步:将完整数据矩阵按照某一维划分为n段,其中n为实际系统处理的节点数;第二步:根据数据划分方式,产生数据分布图;记录第一步中划分好的数据段位于哪一节点内;第三步:对单节点内的数据矩阵划分;根据SDRAM的页大小,将每个处理节点内的大矩阵划分为若干小矩阵;第四步:接收矩阵访问命令,根据收到的命令判断访问矩阵哪一维;第五步:返回数据,进行处理。发明为了平衡数据矩阵的行向量和列向量的操作效率,改变传统的存储数据方式,使得在SDRAM的一行中即包含数据矩阵的行向量数据,还要包含一部分列向量数据,这样便可以做到两维操作均衡。

Description

基于分布式存储器的数据存储方法
技术领域
本发明涉及一种数据存储方法,尤其涉及一种基于分布式存储器的数据存储方法。
背景技术
合成孔径雷达(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。
设计的存储矩阵为16384×16384,单位为复数点,即2个32bit字。
对于SAR处理中的矩阵数据,可以将其分为32×32的小矩阵,每个小矩阵大小恰好为一页。对于这一页的数据存储按照如下方法:按顺序将奇偶两条距离向交织存储。以第0~31条距离向的前32复数点为例,存储方式的如图2所示,其中Line0,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*a+b,表明该数据位于第a组中组内偏移为b。再求b=32*m+k,表明该数据的首地址位于a组中的第m页偏移为k,由此可以计算出首地址为:0x1000000*a+0x800*m+64*k。因此可以通过设置DMA进行数据读取,这里可知二维DMA的X维修改值为:4。Y维的修改量为:32768-124。应按照双字读取,读取的数量为32768字。
如果n为奇数,那么令n=n-1,计算过程同上只是首地址变为:0x1000000*a+0x800*m+64*k+2。
方位向数据读取:对于一整条16384复数点的方位线,相当于“第0点,第1点,空62点,第2点,第3点,空62点...第30点,第31点,空62点...第32点,第33点,空62点.....第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*a+b,可计算得到其位于第a块内,块内偏移为b。则可以计算第一组的首地址为:32768*a+b*4。第二组的首地址应该加上组的大小(16M字)依次类推可以得到每块TCB中的数据地址。在每块TCB中的操作可以通过一维DMA进行,其读取方式为四字,步进长度为128字,每次的读取数量为:1024字。
以上介绍的便是对于单节点内的高效存储方案,对于基于分布式内存的矩阵存储,关键便是节点间的数据交换。图5和图6为分布节点的矩阵进行数据交换的示意图。
在每一节点内的距离向为完整的,所以可以通过DMA读取完整的距离向数据操作,在处理完每一条距离线后,在写SDRAM过程中要分为两步:将数据的一半写回本地节点,另一半通过LINK口写到另一节点的SDRAM中。通过该方法在将所有的距离线处理完后,两边的内存中数据存储将发生改变:方位向为完整的,距离向为一半。这样在进行后面的处理中只需要读取本地节点即可。

Claims (1)

1.一种基于分布式存储器的数据存储方法,其特征在于:所述方法包括如下步骤:
第一步:将完整数据矩阵按照某一维划分为n段,其中n为实际系统处理的节点数;当算法需求先进行行向量处理时,按照列方向将矩阵划分n段,当处理需要先处理列向量,按照行方向进行分段;
第二步:根据数据划分方式,产生数据分布图;记录第一步中划分好的数据段位于哪一节点内;
第三步:对单节点内的数据矩阵划分;根据SDRAM的页大小,将每个处理节点内的大矩阵划分为若干小矩阵,SDRAM的每页中包含矩阵的部分行向量部分列向量,每页的数据存储方式为:按顺序将奇偶两条距离向交织存储;
第四步:接收矩阵访问命令,根据收到的命令判断访问矩阵哪一维,如果这一维数据在本地节点内完整,则通过单节点内的高效访问方法进行访问,如果本地节点只有部分数据时,首先获得本节点内的数据,然后通过第二步中生成的数据分布图获得空缺数据位于哪一节点,向该节点发送数据请求,通过节点间互联高速接口进行数据补充;
第五步:返回数据,进行处理。
CN2009100814174A 2009-04-03 2009-04-03 基于分布式存储器的数据存储方法 Expired - Fee Related CN101782878B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100814174A CN101782878B (zh) 2009-04-03 2009-04-03 基于分布式存储器的数据存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100814174A CN101782878B (zh) 2009-04-03 2009-04-03 基于分布式存储器的数据存储方法

Publications (2)

Publication Number Publication Date
CN101782878A CN101782878A (zh) 2010-07-21
CN101782878B true CN101782878B (zh) 2011-11-16

Family

ID=42522882

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100814174A Expired - Fee Related CN101782878B (zh) 2009-04-03 2009-04-03 基于分布式存储器的数据存储方法

Country Status (1)

Country Link
CN (1) CN101782878B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102279386B (zh) * 2011-05-12 2013-04-03 西安电子科技大学 基于fpga的sar成像信号处理数据转置方法
CN102393851A (zh) * 2011-07-25 2012-03-28 中国科学院深圳先进技术研究院 数据区域重叠的边界数据零通信并行计算方法和系统
CN109445852B (zh) * 2018-09-05 2020-08-25 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 一种在多核处理器中提升内存访问效率的方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1971537A (zh) * 2005-11-25 2007-05-30 杭州中天微系统有限公司 一种矩阵数据存取方法及其矩阵数据存储装置
CN101322107A (zh) * 2005-12-01 2008-12-10 Nxp股份有限公司 高效访问存储器中的矩阵元素的方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1971537A (zh) * 2005-11-25 2007-05-30 杭州中天微系统有限公司 一种矩阵数据存取方法及其矩阵数据存储装置
CN101322107A (zh) * 2005-12-01 2008-12-10 Nxp股份有限公司 高效访问存储器中的矩阵元素的方法和装置

Also Published As

Publication number Publication date
CN101782878A (zh) 2010-07-21

Similar Documents

Publication Publication Date Title
TW201913460A (zh) 芯片裝置及相關産品
CN102541774B (zh) 多粒度并行存储系统与存储器
CN100424654C (zh) 一种矩阵数据存取方法及其矩阵数据存储装置
TWI570573B (zh) 矩陣轉置電路
CN108171317A (zh) 一种基于soc的数据复用卷积神经网络加速器
CN102662639A (zh) 一种基于Mapreduce的多GPU协同计算方法
Nawaz et al. A parallel FPGA design of the Smith-Waterman traceback
CN104881666A (zh) 一种基于fpga的实时二值图像连通域标记实现方法
CN103048644B (zh) 合成孔径雷达成像系统的矩阵转置方法及转置装置
CN101604306B (zh) 基于fpga的列选主元lu分解方法
CN102866980B (zh) 用于多核微处理器片上互连网络的网络通信胞元
CN101938325B (zh) 有限长度循环缓存速率匹配的解速率匹配方法和装置
CN101782878B (zh) 基于分布式存储器的数据存储方法
CN102411616A (zh) 一种数据存储方法和系统及数据管理方法
CN100357913C (zh) 多维存储器的数据传送装置、传送程序以及传送方法
CN102438149A (zh) 一种基于可重构技术的avs反变换的实现方法
JPH0792790B2 (ja) ベクトル並列計算機
CN105408893B (zh) 一种数据处理和写入方法及相关装置
CN113641625B (zh) 一种基于fpga的四路并行数据处理转置系统
CN109446478A (zh) 一种基于迭代和可重构方式的复协方差矩阵计算系统
US9268744B2 (en) Parallel bit reversal devices and methods
CN102411557B (zh) 多粒度并行fft计算装置
JP5493954B2 (ja) キャッシュシステム
CN101908378A (zh) 闪存的控制器以及于闪存存取数据的方法
CN112149049A (zh) 用于变换矩阵的装置和方法、数据处理系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB03 Change of inventor or designer information

Inventor after: Liu Feng

Inventor after: Long Teng

Inventor after: Liu Tengfei

Inventor after: Hu Shanqing

Inventor after: Zeng Dazhi

Inventor before: Liu Feng

Inventor before: Long Teng

Inventor before: Liu Tengfei

Inventor before: Hu Shanqing

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: LIU FENG LONG TENG LIU TENGFEI HU SHANQING TO: LIU FENG LONG TENG LIU TENGFEI HU SHANQING ZENG DAZHI

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111116

Termination date: 20150403

EXPY Termination of patent right or utility model