CN112947854B - 一种基于双通道ddr3的sar数据存储和访问方法及装置 - Google Patents
一种基于双通道ddr3的sar数据存储和访问方法及装置 Download PDFInfo
- Publication number
- CN112947854B CN112947854B CN202110129411.0A CN202110129411A CN112947854B CN 112947854 B CN112947854 B CN 112947854B CN 202110129411 A CN202110129411 A CN 202110129411A CN 112947854 B CN112947854 B CN 112947854B
- Authority
- CN
- China
- Prior art keywords
- data
- ddr3
- sar
- access result
- data access
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Radar Systems Or Details Thereof (AREA)
Abstract
本申请实施例公开了一种基于双通道DDR3的SAR数据存储和访问方法及装置,方法包括:将SAR数据矩阵分块后的子矩阵数据中相邻两行的数据以交叉映射方法存储至第一DDR3中;设计两组独立的存储单元第一DDR3和第二DDR3,在SAR成像系统中实现双通道流水式处理。本申请实施例提高了RAM的利用率,提高了SAR数据的访问效率。
Description
技术领域
本发明涉及雷达实时成像处理技术领域。尤其涉及一种基于双通道DDR3的SAR数据存储和访问方法及装置。
背景技术
合成孔径雷达(Synthetic Aperture Radar,SAR)是具有全天时、全天候、远距离等诸多优点的高分辨率成像雷达。由雷达成像的理论可以知道,要想使SAR具有更高分辨率的成像能力,就必须获取更多的数据量,所以高分辨SAR成像技术面临着大容量数据存储与处理的挑战。为了获得高分辨率的SAR图像,需要对这些海量的数据进行多次两维矩阵操作。根据现有的技术条件,在SAR成像实时处理系统中,SAR的原始回波数据需要在第三代双倍速率同步动态随机存储器(Double-Data-Rate Three Synchronous Dynamic RandomAccess Memory,DDR3 SDRAM)(以下简称DDR3)中进行存储。但由于芯片内部行激活、预充电时间的存在,在利用现场可编程门阵列(Field Programmable Gate Array,FPGA)对DDR3进行跳行读写数据时,其读写效率会严重下降,使得矩阵转置操作成为制约整个成像系统实时处理的瓶颈。
发明内容
由于现有方法存在随机存取存储器(Random Access Memory,RAM)利用率和数据访问效率低的问题,本申请实施例提出一种基于双通道DDR3的SAR数据存储和访问方法及装置。
第一方面,本申请实施例提出一种基于双通道DDR3的SAR数据存储和访问方法,包括:
S901,将SAR数据矩阵划分为若干个大小相等的子矩阵;
S902,将各个子矩阵按照顺序映射至第一DDR3中;其中,子矩阵的大小等于所述第一DDR3 一行可以存储的数据个数;
S903,将各个子矩阵中的数据按照交叉映射的方式对应存储至所述第一DDR3中的各行;其中,所述第一DDR3中的各行存储的数据为第一待处理数据;
S904,在SAR算法流程的本次操作中,从所述第一DDR3中读取第一阈值个数第一待处理数据并对其进行与本次操作对应的第一处理,得到第一阈值个数与本次操作对应的第一处理相应的第一数据,在将所述第一阈值个数与本次操作对应的第一处理相应的第一数据写入第二 DDR3中的同时,从所述第一DDR3中读取下一第一阈值个数所述第一待处理数据,重复读取与写入,直到所述第一DDR3中的所有第一待处理数据全部经过所述与本次操作对应的第一处理,并将得到的与本次操作对应的第一处理相应的第一数据全部写入第二DDR3中;
S905,在SAR算法流程的该次操作中,从所述第二DDR3中读取第二阈值个数与本次操作对应的第一处理相应的第一数据并对其进行与该次操作对应的第二处理,得到第二阈值个数与该次操作对应的第二处理相应的第二数据,在将所述第二阈值个数与该次操作对应的第二处理相应的第二数据写入第一DDR3中的同时,从所述第二DDR3中读取下一第二阈值个数与本次操作对应的第一处理相应的第一数据,重复读取与写入,直到所述第二DDR3中的所有与本次操作对应的第一处理相应的第一数据全部经过所述与该次操作对应的第二处理,并将得到的与该次操作对应的第二处理相应的第二数据全部写入第一DDR3中;
S906,交替重复S904和S905,直至SAR算法流程结束,得到与SAR算法流程结束时对应的 SAR图像数据,其中,所述SAR图像数据包括SAR算法流程最后一次本次操作得到的与最后一次本次操作对应的第一处理相应的第一数据,或SAR算法流程最后一次该次操作得到的与最后一次该次操作对应的第二处理相应的第二数据,当所述SAR图像数据为SAR算法流程最后一次本次操作得到的与最后一次本次操作对应的第一处理相应的第一数据时,将其写入所述第二 DDR3中,或当所述SAR图像数据为SAR算法流程最后一次该次操作得到的与最后一次该次操作对应的第二处理相应的第二数据时,将其写入所述第一DDR3中;
其中,所述第一DDR3和所述第二DDR3的数据位宽和容量与所述SAR数据矩阵的数据位宽和大小匹配。
在一种可能的实现中,所述将各个子矩阵中的数据按照交叉映射的方式对应存储至所述第一DDR3中的各行,包括:
将各个子矩阵相邻两行的SAR数据交替映射存储至所述第一DDR3中的一行。
在一种可能的实现中,所述从所述第一DDR3中读取第一阈值个数第一待处理数据并对其进行与本次操作对应的第一处理,包括:
采用突发传输模式对所述第一DDR3中第一阈值个数第一待处理数据进行距离向数据访问或方位向数据访问,得到第一距离向数据访问结果或第一方位向数据访问结果;
对所述第一距离向数据访问结果或所述第一方位向数据访问结果进行与本次操作对应的第一处理;
其中,每个第一距离向数据访问结果为第一待处理数据的两条距离向的数据,每个第一方位向数据访问结果为第一待处理数据的四条方位向的数据。
在一种可能的实现中,所述从所述第二DDR3中读取第二阈值个数与本次操作对应的第一处理相应的第一数据并对其进行与该次操作对应的第二处理,包括:
采用突发传输模式对所述第二DDR3中第二阈值个数与本次操作对应的第一处理相应的第一数据进行距离向数据访问或方位向数据访问,得到第二距离向数据访问结果或第二方位向数据访问结果;
对所述第二距离向数据访问结果或所述第二方位向数据访问结果进行与该次操作对应的第二处理;
其中,每个第二距离向数据访问结果为第一数据的两条距离向的数据,每个第二方位向数据访问结果为第一数据的四条方位向的数据。
在一种可能的实现中,所述采用突发传输模式对所述第一DDR3中第一阈值个数第一待处理数据进行距离向数据访问或方位向数据访问,得到第一距离向数据访问结果或第一方位向数据访问结果之后,所述方法还包括:
在对所述第一距离向数据访问结果或所述第一方位向数据访问结果进行数据缓存时,对所述第一距离向数据访问结果或所述第一方位向数据访问结果进行解交叉映射,以使得缓存中的所述第一距离向数据访问结果或所述第一方位向数据访问结果存储顺序与SAR数据矩阵保持一致。
在一种可能的实现中,所述采用突发传输模式对所述第二DDR3中第二阈值个数与本次操作对应的第一处理相应的第一数据进行距离向数据访问或方位向数据访问,得到第二距离向数据访问结果或第二方位向数据访问结果之后,所述方法还包括:
在对所述第二距离向数据访问结果或所述第二方位向数据访问结果进行数据缓存时,对所述第二距离向数据访问结果或所述第二方位向数据访问结果进行解交叉映射,以使得缓存中的所述第二距离向数据访问结果或所述第二方位向数据访问结果存储顺序与SAR数据矩阵保持一致。
在一种可能的实现中,所述在对所述第一距离向数据访问结果或所述第一方位向数据访问结果进行数据缓存时,对所述第一距离向数据访问结果或所述第一方位向数据访问结果进行解交叉映射,以使得缓存中的所述第一距离向数据访问结果或所述第一方位向数据访问结果存储顺序与SAR数据矩阵保持一致,包括:
在对所述第一距离向数据访问结果进行数据缓存时,对所述第一距离向数据访问结果进行解交叉映射,分别映射至第一缓存RAM0和第二缓存RAM1,以使得第一距离向RAM0和第二距离向RAM1中的所述第一距离向数据访问结果存储顺序与SAR数据矩阵保持一致;或
在对所述第一方位向数据访问结果进行数据缓存时,对所述第一方位向数据访问结果进行解交叉映射,分别映射至第一缓存RAM0、第二缓存RAM1、第三缓存RAM2和第四缓存RAM3,以使得第一缓存RAM0、第二缓存RAM1、第三缓存RAM2和第四缓存RAM3中的所述第一方位向数据访问结果存储顺序与SAR数据矩阵保持一致。
在一种可能的实现中,所述在对所述第二距离向数据访问结果或所述第二方位向数据访问结果进行数据缓存时,对所述第二距离向数据访问结果或所述第二方位向数据访问结果进行解交叉映射,以使得缓存中的所述第二距离向数据访问结果或所述第二方位向数据访问结果存储顺序与SAR数据矩阵保持一致,包括:
在对所述第二距离向数据访问结果进行数据缓存时,对所述第二距离向数据访问结果进行解交叉映射,分别映射至第五缓存RAM0和第六缓存RAM1,以使得第五缓存RAM0和第六缓存 RAM1中的所述第二距离向数据访问结果存储顺序与SAR数据矩阵保持一致;或
在对所述第二方位向数据访问结果进行数据缓存时,对所述第二方位向数据访问结果进行解交叉映射,分别映射至第五缓存RAM0、第六缓存RAM1、第七缓存RAM2和第八缓存RAM3,以使得第五缓存RAM0、第六缓存RAM1、第七缓存RAM2和第八缓存RAM3中的所述第二方位向数据访问结果存储顺序与SAR数据矩阵保持一致。
第二方面,本申请实施例提出一种基于双通道DDR3的SAR数据存储和访问装置,包括:
划分模块,用于将SAR数据矩阵划分为若干个大小相等的子矩阵;
映射模块,用于将各个子矩阵按照顺序映射至第一DDR3中;其中,子矩阵的大小等于所述第一DDR3一行可以存储的数据个数;
存储模块,用于将各个子矩阵中的数据按照交叉映射的方式对应存储至所述第一DDR3中的各行;其中,所述第一DDR3中的各行存储的数据为第一待处理数据;
第一处理模块,用于SAR算法流程的在本次操作中,从所述第一DDR3中读取第一阈值个数第一待处理数据并对其进行与本次操作对应的第一处理,得到第一阈值个数与本次操作对应的第一处理相应的第一数据,在将所述第一阈值个数与本次操作对应的第一处理相应的第一数据写入第二DDR3中的同时,从所述第一DDR3中读取下一第一阈值个数所述第一待处理数据,重复读取与写入,直到所述第一DDR3中的所有第一待处理数据全部经过所述与本次操作对应的第一处理,并将得到的与本次操作对应的第一处理相应的第一数据全部写入第二DDR3中;
第二处理模块,还用于在SAR算法流程的该次操作中,从所述第二DDR3中读取第二阈值个数与本次操作对应的第一处理相应的第一数据并对其进行与该次操作对应的第二处理,得到第二阈值个数与该次操作对应的第二处理相应的第二数据,在将所述第二阈值个数与该次操作对应的第二处理相应的第二数据写入第一DDR3中的同时,从所述第二DDR3中读取下一第二阈值个数与本次操作对应的第一处理相应的第一数据,重复读取与写入,直到所述第二DDR3 中的所有与本次操作对应的第一处理相应的第一数据全部经过所述与该次操作对应的第二处理,并将得到的与该次操作对应的第二处理相应的第二数据全部写入第一DDR3中;
处理模块,用于交替重复所述第一处理模块和所述第二处理模块的操作,直至SAR算法流程结束,得到与SAR算法流程结束时对应的SAR图像数据,其中,所述SAR图像数据包括SAR算法流程最后一次本次操作得到的与最后一次本次操作对应的第一处理相应的第一数据,或SAR 算法流程最后一次该次操作得到的与最后一次该次操作对应的第二处理相应的第二数据,当所述SAR图像数据为SAR算法流程最后一次本次操作得到的与最后一次本次操作对应的第一处理相应的第一数据时,将其写入所述第二DDR3中,或当所述SAR图像数据为SAR算法流程最后一次该次操作得到的与最后一次该次操作对应的第二处理相应的第二数据时,将其写入所述第一DDR3中;
其中,所述第一DDR3和所述第二DDR3的数据位宽和容量与所述SAR数据矩阵的数据位宽和大小匹配。
第三方面,本申请实施例还提出一种基于双通道DDR3的SAR数据存储和访问装置,包括至少一个FPGA处理器、第一DDR3和第二DDR3,所述FPGA处理器执行程序时,使得所述装置执行如第一方面及各种可能的实现中的各个步骤。
由上述技术方案可知,本申请实施例通过将矩阵分块后的子矩阵数据中相邻两行的数据交替映射至DDR3中的一行,使得距离向访问时RAM利用率达到50%、方位向访问时RAM利用率达到100%,RAM的利用率优于现有技术。通过设计两组独立的存储单元,可以在SAR成像系统中实现双通道流水式处理,使得数据的访问带宽为单通道的两倍,数据访问效率优于现有技术。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1为本申请实施例提供的现有技术中将子矩阵块的数据映射至DDR3中的示意图;
图2为本申请实施例提供的矩阵分块示意图;
图3为本申请实施例提供的子矩阵块映射示意图;
图4为本申请实施例提供的双通道流水式处理示意图;
图5为本申请实施例提供的距离向数据访问地址跳变示意图;
图6为本申请实施例提供的距离向数据访问解交叉映射示意图;
图7为本申请实施例提供的方位向数据访问地址跳变示意图;
图8为本申请实施例提供的方位向数据访问解交叉映射示意图;
图9为本申请实施例提供的一种基于双通道DDR3的SAR数据存储和访问方法的流程示意图;
图10为本申请实施例提供的一种基于双通道DDR3的SAR数据存储和访问装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
需要说明的是,本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一DDR3和第二DDR3等是用于区别不同的DDR3,而不是用于描述目标对象的特定顺序。在本申请实施例中,“示例性的”、“举例来说”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”、“举例来说”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、“举例来说”或者“例如”等词旨在以具体方式呈现相关概念。
SAR的原始回波数据(即下文中提及的SAR数据或SAR数据矩阵)在SAR成像实时处理系统中存储在DDR3中。但由于芯片内部行激活、预充电时间的存在,在对DDR3进行跳行读写数据时,其读写效率会严重下降,使得矩阵转置操作成为制约整个成像系统实时处理的瓶颈。
在一种可能的实现中,采用矩阵分块法,即将SAR的原始回波数据矩阵(即上文中提及的原始回波数据)划分成多个大小相等的子矩阵块,每个子矩阵块中的数据点数正好与DDR3 一行所能存放的数据点数相等。然后,对子矩阵块进行逐行编号,将第0个子矩阵块的数据逐行地映射至DDR3的Bank0的第0行里面;将第1个子矩阵块的数据按照相同方法逐行地映射至DDR3的Bank1的第0行,以此类推,映射完Bank K-1的第0行,再转向Bank0的第 1行,直至所有子矩阵块的数据映射完毕,如图1所示。这样一来,顺序访问DDR3的一行时,既可以得到相邻若干行的距离向数据,又可以得到等量的相邻若干列的方位向数据,很好的解决了两维访问数据带宽不平衡的问题。
然而,由于DDR3采用突发传输模式,完成一次DDR3读取或写入操作会完成连续8个存储单元的访问。假设突发长度(Burst Length,BL)设为8,每次访问的八个数据属于同一个距离线和八个不同的方位线。在SAR成像系统中,读取数据后需要先缓存到FPGA内的RAM中,等到一整行或一整列数据全部访问完毕后再送入快速傅里叶变换(Fast FourierTransform,FFT)等计算单元进行处理。在进行距离向访问时,由于单次突发长度中的8个数据属于1个距离线,所以仅需要1条RAM进行存储。但在进行方位向访问时,由于单次突发长度中的8个数据属于8个方位线,所以需要8条RAM进行存储。这样一来,就必须使用 8条RAM进行数据的缓存,而在距离向访问时只利用了其中的1条,其余7条都处于闲置状态,资源利用效率较低。另外,在本申请实施例中,在SAR成像系统中,往往需要将整行或整列数据从DDR3中读取到RAM,然后将RAM中的数据读到计算单元中进行处理,再将处理的结果存储到RAM中,最后将RAM中处理后的数据按原位存储到DDR3中。每次对数据的处理都需要经过“DDR3→RAM→计算单元→RAM→DDR3”的过程,使得两次连续访问间的等待时间较长,DDR3会在长时间处于闲置状态,数据的访问效率较低。
下面以大小为16384×16384、位宽为64bit的SAR数据为例,对本申请实施例做详细说明。
在本申请实施例中,根据SAR数据(即SAR数据矩阵)大小和数据位宽,选取容量和数据位宽匹配的DDR3,并将其设计为独立的双通道存储单元,即第一DDR3和第二DDR3,它们可以分别寻址、读取数据,不会相互影响。
每个存储单元应满足数据的位宽要求。当一片DDR3颗粒不能满足位宽要求时,则可以采用多片DDR3颗粒共用地址线、控制线的方式扩展位宽。例如,当数据位宽为64bit时,可并联4片16bit位宽的DDR3组成第一DDR3,另外并联4片16bit位宽的DDR3组成第二DDR3,当读取或写入一个数据时,同时向4片DDR3的相同地址各写入16bit数据。
每个存储单元还应具备独立存储整个SAR数据的能力。如果单片DDR3颗粒不能满足容量需求,则可以采用多片DDR3颗粒首尾相连的方式来扩展容量。例如,当SAR数据的容量为2GB时,并联的4片位宽为16bit的DDR3颗粒的存储容量为1GB,此时则需另选择4片相同的DDR3颗粒共用地址线、控制线,并且与现有的4片DDR3颗粒进行首尾相连,以满足存储单元的容量要求。
将SAR数据矩阵划分为若干个大小相等的子矩阵,并且使得各个子矩阵的大小为第一 DDR3一行可以存储的数据个数。
假设SAR数据矩阵为A(x,y),0≤x≤NA-1,0≤y≤NR-1。其中,NA为该矩阵中方位向的数据个数,NR为该矩阵中距离向的数据个数。由于SAR成像算法中需多次进行FFT,故NA和NR均为2的正整数次幂。
将矩阵A(x,y)进行分块,划分为M×N个大小相等、形状相同的子矩阵,将子矩阵记做Am,n,其中m和n为该子矩阵在方位向和距离向上的标号,0≤m≤M-1,0≤n≤N-1。设子矩阵的大小为Na×Nr,则有Na=NA/M,Nr=NR/N,如图2所示。将子矩阵的数据映射为第一DDR3中的一行,故Na×Nr=Cn。在本申请实施例中,NA=NR=16384,则将 16384×16384大小的SAR数据矩阵按上述方法划分为512×512个子矩阵,每个子矩阵的大小为32×32=1024。
在实际应用中,Na、Nr可能无法取到相等的整数,通常将Na、Nr取为与方阵形状最为接近的2的整数次幂。例如,Cn为2048时,可以取Na为32、Nr为64或Na为64、Nr为 32。
将划分后的各个子矩阵按照顺序映射至第一DDR3中。第一DDR3中根据bank地址、行地址和列地址共同确定一个存储单元的具体位置。假设第一DDR3中的总行数为Rn,总列数为Cn,总bank数为Bn,用B(i,j,k)表示一个存储单元的位置,其中,i为其行地址, j为其列地址,k为其bank地址,则有0≤i≤NANR/CnBn-1,0≤j≤Cn-1,0≤k≤Bn-1。在本申请实施例中,Bn=8,Cn=1024,Rn=65536。
按照如下规则将各个子矩阵映射至第一DDR3中的各行:
如图3所示,先从Bank0开始。先将A0,0映射至Bank0的第0行,再将A0,1映射至第 1行,…,将A0,511映射至第511行;将A1,0映射至512行,…,待Bank0的最后一行(第65535 行)由A127,511映射完毕后,再将A128,0映射至Bank1的第0行,以此类推,直至A512,512映射至Bank3的最后一行(第65535行)。
为了尽可能地提高缓存RAM的利用率,在本申请实施例中,将各个子矩阵中的数据按照交叉映射的方式对应存储至第一DDR3中的各行,如图4所示。所谓“交叉映射”,就是说相邻两行的数据是交替映射至第一DDR3的一行,而不是采用常规的线性映射方式。此时,单次突发传输产生的8个数据属于相邻的两行,也属于相邻的四列。所以数据缓存仅需要四条RAM即可,与现有技术方案相比,缓存资源节省了一半。
根据上述规则,可得到子矩阵交叉映射的地址映射规律。首先,确定数据点(x,y)所在的子矩阵Am,n,并得到其在子矩阵中的地址(a,b):
其中,0≤m≤M-1,0≤n≤N-1,0≤a≤Na-1,0≤b≤Nr-1,并满足M·Na=NA, M·Nr=NR。
进而,得到数据点(x,y)与其物理存储地址之间的映射关系:
其中,floor为向下取整运算,mod为取余数计算。
为了最大限度地提高读写效率,本申请实施例采用双通道流水式处理。流水式处理要求具有独立的双通道DDR3(以下将其称为第一DDR3、第二DDR3),并且具有与双通道DDR3匹配的双通道缓存RAM。其具体操作步骤如下(参见图4):
(1)在SAR算法流程的一个计算步骤中,即本次操作中,读取第一DDR3中的第一阈值个数第一待处理数据,将其存至与第一DDR3对应的RAM进行缓存,存满后送入计算单元进行与本次操作对应的第一处理,得到第一阈值个数与本次操作对应的第一处理相应的第一数据;与本次操作对应的第一处理后,将第一阈值个数与本次操作对应的第一处理相应的第一数据写入与第二DDR3对应的RAM中的同时,从第一DDR3中读取下一第一阈值个数第一待处理数据,以此循环直至第一DDR3中的所有第一待处理数据全部经过与本次操作对应的第一处理,并将得到的与本次操作对应的第一处理相应的第一数据全部写入第二DDR3中处理完毕,处理结果全部存入第二DDR3中。
(2)在SAR算法流程中的下一个计算步骤,即该次操作中,读取第二DDR3中的第二阈值个数与本次操作对应的第一处理相应的第一数据,将其存至与第二DDR3对应的RAM 进行缓存,存满后送入计算单元进行与该次操作对应的第二处理,得到第二阈值个数与该次操作对应的第二处理相应的第二数据;与该次操作对应的第二处理后,将第二阈值个数与该次操作对应的第二处理相应的第二数据写入与第一DDR3对应的RAM中的同时,从第二DDR3中读取下一第二阈值个数与本次操作对应的第一处理相应的第一数据,以此循环直至第二DDR3中的所有与本次操作对应的第一处理相应的第一数据全部经过与该次操作对应的第二处理,并将得到的与该次操作对应的第二处理相应的第二数据全部写入第一DDR3中。
(3)进行乒乓操作,即交替重复(1)和(2),直至SAR算法流程结束,得到与SAR 算法流程结束时对应的SAR图像数据,其中,所述SAR图像数据包括SAR算法流程最后一次本次操作得到的与最后一次本次操作对应的第一处理相应的第一数据,或SAR算法流程最后一次该次操作得到的与最后一次该次操作对应的第二处理相应的第二数据,当所述SAR图像数据为SAR算法流程最后一次本次操作得到的与最后一次本次操作对应的第一处理相应的第一数据时,将其写入所述第二DDR3中,或当所述SAR图像数据为SAR算法流程最后一次该次操作得到的与最后一次该次操作对应的第二处理相应的第二数据时,将其写入所述第一DDR3 中。
需要说明的是,在乒乓操作中,与本次操作对应的第一处理可以为方位向傅里叶变换,本次操作的下一次操作对应的第一处理可以为距离向逆傅里叶变换,依次类推,后续操作对应的第一处理可以为其它操作。相应地,在乒乓操作中,与该次操作对应的第二处理可以为距离向傅里叶变换,该次操作的下一次操作对应的第二处理可以为方位向逆傅里叶变换,依次类推,后续操作对应的第二处理可以为其它操作。
需要说明的是,上述读取第一DDR3中的第一阈值个数第一待处理数据,将其存至与第一DDR3对应的RAM进行缓存,存满后送入计算单元进行与本次操作对应的第一处理,具体为:
采用突发传输模式对第一DDR3中第一阈值个数第一待处理数据进行距离向数据访问或方位向数据访问,得到第一距离向数据访问结果或第一方位向数据访问结果,将其存至与第一 DDR3对应的RAM进行缓存,存满后送入计算单元,对第一距离向数据访问结果或第一方位向数据访问结果进行与本次操作对应的第一处理。
需要说明的是,上述读取第二DDR3中的第二阈值个数与本次操作对应的第一处理相应的第一数据,将其存至与第二DDR3对应的RAM进行缓存,存满后送入计算单元进行与该次操作对应的第二处理,具体为:
采用突发传输模式对第二DDR3中第二阈值个数与本次操作对应的第一处理相应的第一数据进行距离向数据访问或方位向数据访问,得到第二距离向数据访问结果或第二方位向数据访问结果,将其存至与第二DDR3对应的RAM进行缓存,存满后送入计算单元对第二距离向数据访问结果或第二方位向数据访问结果进行与该次操作对应的第二处理。
需要说明的是,距离向访问(即读取)时,按照SAR数据矩阵的距离向逐条访问,总共16384条,如图5所示。对第一DDR3的访问采用长度为8的突发传输模式,每次访问可以得到2条距离线的数据。因此总共需要访问16384/2=8192次即可将第一DDR3内的全部距离向数据读取或写入完毕。
在第一DDR3中,由于一个大小为32×32的子矩阵数据被映射至第一DDR3的一行,因此,第一DDR3的每一行中每32个数据处于同一距离线,并且相邻两条距离线的数据在第一DDR3上的一行是交叉存储的。读取数据时,要在第一DDR3一行中连续读取32× 2=64个数据(这64个数据属于SAR数据矩阵中连续两条距离线),再跳至下一行读取另一个子矩阵在这两条距离线上的数据,以此类推,再跳至下一行读取这两条距离线上剩余的数据直至这两条距离线上全部数据读取完毕。距离向数据经计算单元处理后写回第一DDR3时,采用同样的地址跳变方式。
由于相邻两条距离线数据在第一DDR3中是交叉存储的,所以单次突发传输所得到的 8个数据中,相邻的两个数据都属于不同的距离线。在对第一距离向数据访问结果进行数据缓存时,需要对第一距离向数据访问结果数据进行“解交叉映射”,如图6所示,分别映射至第一缓存RAM0、第二缓存RAM1,使得缓存RAM中的第一距离向数据访问结果数据存储顺序与SAR数据矩阵保持一致,便于计算单元对整条数据进行计算。
需要说明的是,方位向访问时,按照SAR数据矩阵的方位向逐条访问,总共16384条,如图7所示。对第一DDR3的访问采用长度为8的突发传输模式,每次访问可以得到 4条方位线的数据。因此总共需要访问16384/4=4096次即可将第一DDR3内的全部方位向数据读取或写入完毕。
在第一DDR3中,由于一个大小为32×32的子矩阵数据被映射至第一DDR3的一行,因此第一DDR3的每一行中每32个数据处于同一方位线,并且相邻四条方位线的数据在第一DDR3上是交叉存储的。读取数据时,要在第一DDR3一行中读取32×4=128个数据 (这128个数据属于SAR数据矩阵中连续四条方位线),再跳至下一行读取另一个子矩阵在这四条方位线上的数据,以此类推,再跳至下一行读取这四条方位线上剩余的数据直至这四条方位线上全部数据读取完毕。由于第一DDR3的每一行中相同方位线数据之间的距离为64列,因此方位向读取数据时,要在一行中每隔64列读取一次,读完一行后,再跳至相应行读取在此方位向上剩余的数据直至这四条方位线数据读取完毕。方位向数据经计算单元处理后写回第一DDR3时,采用同样的地址跳变方式。
由于相邻四条方位线数据在第一DDR3中是交叉存储的,所以单次突发传输所得到的 8个数据中,相邻的两个数据属于同一方位线而与后续的两个数据分属于不同的方位线。在对第一方位向数据访问结果进行数据缓存时,需要对第一方位向数据访问结果进行“解交叉映射”,如图8所示,分别映射至第一方位向缓存RAM0、第二方位向缓存RAM1、第三方位向缓存RAM2、第四方位向缓存RAM3,使得缓存RAM中的第一方位向数据访问结果存储顺序与SAR数据矩阵保持一致,便于计算单元对整条数据进行计算。
相应地,在对所述第二距离向数据访问结果进行数据缓存时,对所述第二距离向数据访问结果进行解交叉映射,分别映射至第三距离向五缓存RAM0和第四距离向六缓存RAM1,以使得第三距离向五缓存RAM0和第四距离向六缓存RAM1中的所述第二距离向数据访问结果或所述第二方位向数据访问结果存储顺序与SAR数据矩阵保持一致;或
在对所述第二方位向数据访问结果进行数据缓存时,对所述第二方位向数据访问结果进行解交叉映射,分别映射至第五缓存RAM0、第六缓存RAM1、第七缓存RAM2和第八缓存RAM3,以使得第五缓存RAM0、第六缓存RAM1、第七缓存RAM2和第八缓存RAM3中的所述第二距离向数据访问结果或所述第二方位向数据访问结果存储顺序与SAR数据矩阵保持一致。
本申请实施例通过将矩阵分块后的子矩阵数据中相邻两行的数据交替映射至DDR3 中的一行,仅需要4条RAM即可完成缓存任务。此外,距离向访问时RAM利用率达到50%、方位向访问时RAM利用率达到100%,RAM的利用率优于现有技术。采用双通道流水式处理提高数据访问效率。通过设计两组独立的存储单元,可以在SAR成像系统中实现双通道流水式处理,使得数据的访问带宽为单通道的两倍,数据访问效率优于现有技术。
图9为本申请提供的一种基于双通道DDR3的SAR数据存储和访问方法的流程示意图,该流程示意图包括:S901—S906,具体包括:
S901,将SAR数据矩阵划分为若干个大小相等的子矩阵。
在本申请实施例中,将SAR数据矩阵划分为若干个大小相等的子矩阵,并且使得各个子矩阵的数据分别可以存储至第一DDR3的一行。
S902,将各个子矩阵按照顺序映射至第一DDR3中;其中,子矩阵的大小等于所述第一DDR3 一行可以存储的数据个数。
在本申请实施例中,将S901中划分后的各个子矩阵按照顺序映射至第一DDR3中。
S903,将各个子矩阵中的数据按照交叉映射的方式对应存储至所述第一DDR3中的各行;其中,所述第一DDR3中的各行存储的数据为第一待处理数据。
在本申请实施例中,将S901中划分后的各个子矩阵相邻两行的SAR数据交替映射存储至第一DDR3的一行。
S904,在SAR算法流程的本次操作中,从所述第一DDR3中读取第一阈值个数第一待处理数据并对其进行与本次操作对应的第一处理,得到第一阈值个数与本次操作对应的第一处理相应的第一数据,在将所述第一阈值个数与本次操作对应的第一处理相应的第一数据写入第二 DDR3中的同时,从所述第一DDR3中读取下一第一阈值个数所述第一待处理数据,重复读取与写入,直到所述第一DDR3中的所有第一待处理数据全部经过所述与本次操作对应的第一处理,并将得到的与本次操作对应的第一处理相应的第一数据全部写入第二DDR3中。
在本申请实施例中,采用突发传输模式对所述第一DDR3中第一阈值个数第一待处理数据进行距离向数据访问或方位向数据访问,得到第一距离向数据访问结果或第一方位向数据访问结果;对所述第一距离向数据访问结果或所述第一方位向数据访问结果进行与本次操作对应的第一处理;其中,每个第一距离向数据访问结果为第一待处理数据的两条距离向的数据,每个第一方位向数据访问结果为第一待处理数据的四条方位向的数据。其中,所述第一DDR3 和所述第二DDR3的数据位宽和容量与所述SAR数据矩阵的数据位宽和大小匹配。
S905,在SAR算法流程的该次操作中,从所述第二DDR3中读取第二阈值个数与本次操作对应的第一处理相应的第一数据并对其进行与该次操作对应的第二处理,得到第二阈值个数与该次操作对应的第二处理相应的第二数据,在将所述第二阈值个数与该次操作对应的第二处理相应的第二数据写入第一DDR3中的同时,从所述第二DDR3中读取下一第二阈值个数与本次操作对应的第一处理相应的第一数据,重复读取与写入,直到所述第二DDR3中的所有与本次操作对应的第一处理相应的第一数据全部经过所述与该次操作对应的第二处理,并将得到的与该次操作对应的第二处理相应的第二数据全部写入第一DDR3中。
在本申请实施例中,采用突发传输模式对所述第二DDR3中第二阈值个数与本次操作对应的第一处理相应的第一数据进行距离向数据访问或方位向数据访问,得到第二距离向数据访问结果或第二方位向数据访问结果;对所述第二距离向数据访问结果或所述第二方位向数据访问结果进行第二处理;其中,每个第二距离向数据访问结果为第一数据的两条距离向的数据,每个第二方位向数据访问结果为第一数据的四条方位向的数据。
S906,交替重复S904和S905,直至SAR算法流程结束,得到与SAR算法流程结束时对应的 SAR图像数据,其中,所述SAR图像数据包括SAR算法流程最后一次本次操作得到的与最后一次本次操作对应的第一处理相应的第一数据,或SAR算法流程最后一次该次操作得到的与最后一次该次操作对应的第二处理相应的第二数据,当所述SAR图像数据为SAR算法流程最后一次本次操作得到的与最后一次本次操作对应的第一处理相应的第一数据时,将其写入所述第二 DDR3中,或当所述SAR图像数据为SAR算法流程最后一次该次操作得到的与最后一次该次操作对应的第二处理相应的第二数据时,将其写入所述第一DDR3中。
在本申请实施例中,需要说明的是,在一种可能的实现中,在对所述第一距离向数据访问结果或所述第一方位向数据访问结果进行数据缓存时,对所述第一距离向数据访问结果或所述第一方位向数据访问结果进行解交叉映射,以使得缓存中的所述第一距离向数据访问结果或所述第一方位向数据访问结果存储顺序与SAR数据矩阵保持一致。具体地,在对所述第一距离向数据访问结果进行数据缓存时,对所述第一距离向数据访问结果进行解交叉映射,分别映射至第一缓存RAM0和第二缓存RAM1,以使得第一缓存RAM0和第二缓存RAM1中的所述第一距离向数据访问结果或所述第一方位向数据访问结果存储顺序与SAR数据矩阵保持一致;或在对所述第一方位向数据访问结果进行数据缓存时,对所述第一方位向数据访问结果进行解交叉映射,分别映射至第一缓存RAM0、第二缓存RAM1、第三缓存RAM2和第四缓存RAM3,以使得第一缓存RAM0、第二缓存RAM1、第三缓存RAM2和第四缓存RAM3中的所述第一距离向数据访问结果或所述第一方位向数据访问结果存储顺序与SAR数据矩阵保持一致。在另一种可能的实现中,在对所述第二距离向数据访问结果或所述第二方位向数据访问结果进行数据缓存时,对所述第二距离向数据访问结果或所述第二方位向数据访问结果进行解交叉映射,以使得缓存中的所述第二距离向数据访问结果或所述第二方位向数据访问结果存储顺序与SAR数据矩阵保持一致。具体地,在对所述第二距离向数据访问结果进行数据缓存时,对所述第二距离向数据访问结果进行解交叉映射,分别映射至第五缓存RAM0和第六缓存RAM1,以使得第五缓存RAM0和第六缓存RAM1中的所述第二距离向数据访问结果或所述第二方位向数据访问结果存储顺序与SAR数据矩阵保持一致;或在对所述第二方位向数据访问结果进行数据缓存时,对所述第二方位向数据访问结果进行解交叉映射,分别映射至第五缓存RAM0、第六缓存RAM1、第七缓存RAM2和第八缓存RAM3,以使得第五缓存RAM0、第六缓存RAM1、第七缓存RAM2和第八缓存 RAM3中的所述第二距离向数据访问结果或所述第二方位向数据访问结果存储顺序与SAR数据矩阵保持一致。
图10为本申请提供的一种基于双通道DDR3的SAR数据存储和访问装置的结构示意图,该结构示意图包括:
划分模块1001,用于将SAR数据矩阵划分为若干个大小相等的子矩阵;
映射模块1002,用于将各个子矩阵按照顺序映射至第一DDR3中;其中,子矩阵的大小等于所述第一DDR3一行可以存储的数据个数;
存储模块1003,用于将各个子矩阵中的数据按照交叉映射的方式对应存储至所述第一 DDR3中的各行;其中,所述第一DDR3中的各行存储的数据为第一待处理数据;
第一处理模块1004,用于SAR算法流程的在本次操作中,从所述第一DDR3中读取第一阈值个数第一待处理数据并对其进行与本次操作对应的第一处理,得到第一阈值个数与本次操作对应的第一处理相应的第一数据,在将所述第一阈值个数与本次操作对应的第一处理相应的第一数据写入第二DDR3中的同时,从所述第一DDR3中读取下一第一阈值个数所述第一待处理数据,重复读取与写入,直到所述第一DDR3中的所有第一待处理数据全部经过所述与本次操作对应的第一处理,并将得到的与本次操作对应的第一处理相应的第一数据全部写入第二 DDR3中;
第二处理模块1005,还用于在SAR算法流程的该次操作中,从所述第二DDR3中读取第二阈值个数与本次操作对应的第一处理相应的第一数据并对其进行与该次操作对应的第二处理,得到第二阈值个数与该次操作对应的第二处理相应的第二数据,在将所述第二阈值个数与该次操作对应的第二处理相应的第二数据写入第一DDR3中的同时,从所述第二DDR3中读取下一第二阈值个数与本次操作对应的第一处理相应的第一数据,重复读取与写入,直到所述第二 DDR3中的所有与本次操作对应的第一处理相应的第一数据全部经过所述与该次操作对应的第二处理,并将得到的与该次操作对应的第二处理相应的第二数据全部写入第一DDR3中;
处理模块1006,用于重复所述第一处理模块1004和所述第二处理模块1005的操作,直至 SAR算法流程结束,得到与SAR算法流程结束时对应的SAR图像数据,其中,所述SAR图像数据包括SAR算法流程最后一次本次操作得到的与最后一次本次操作对应的第一处理相应的第一数据,或SAR算法流程最后一次该次操作得到的与最后一次该次操作对应的第二处理相应的第二数据,当所述SAR图像数据为SAR算法流程最后一次本次操作得到的与最后一次本次操作对应的第一处理相应的第一数据时,将其写入所述第二DDR3中,或当所述SAR图像数据为SAR算法流程最后一次该次操作得到的与最后一次该次操作对应的第二处理相应的第二数据时,将其写入所述第一DDR3中;
其中,所述第一DDR3和所述第二DDR3的数据位宽和容量与所述SAR数据矩阵的数据位宽和大小匹配。
本申请实施例提供一种基于双通道DDR3的SAR数据存储和访问装置,包括至少一个FPGA 处理器、第一DDR3和第二DDR3,所述FPGA处理器执行程序时,使得所述装置执行:
S901,将SAR数据矩阵划分为若干个大小相等的子矩阵;S902,将各个子矩阵按照顺序映射至第一DDR3中;其中,子矩阵的大小等于所述第一DDR3一行可以存储的数据个数;S903,将各个子矩阵中的数据按照交叉映射的方式对应存储至所述第一DDR3中的各行;其中,所述第一DDR3中的各行存储的数据为第一待处理数据;S904,在SAR算法流程的本次操作中,从所述第一DDR3中读取第一阈值个数第一待处理数据并对其进行与本次操作对应的第一处理,得到第一阈值个数与本次操作对应的第一处理相应的第一数据,在将所述第一阈值个数与本次操作对应的第一处理相应的第一数据写入第二DDR3中的同时,从所述第一DDR3中读取下一第一阈值个数所述第一待处理数据,重复读取与写入,直到所述第一DDR3中的所有第一待处理数据全部经过所述与本次操作对应的第一处理,并将得到的与本次操作对应的第一处理相应的第一数据全部写入第二DDR3中;S905,在SAR算法流程的该次操作中,从所述第二DDR3中读取第二阈值个数与本次操作对应的第一处理相应的第一数据并对其进行与该次操作对应的第二处理,得到第二阈值个数与该次操作对应的第二处理相应的第二数据,在将所述第二阈值个数与该次操作对应的第二处理相应的第二数据写入第一DDR3中的同时,从所述第二DDR3中读取下一第二阈值个数与本次操作对应的第一处理相应的第一数据,重复读取与写入,直到所述第二DDR3中的所有与本次操作对应的第一处理相应的第一数据全部经过所述与该次操作对应的第二处理,并将得到的与该次操作对应的第二处理相应的第二数据全部写入第一DDR3 中;S906,交替重复S904和S905,直至SAR算法流程结束,得到与SAR算法流程结束时对应的 SAR图像数据,其中,所述SAR图像数据包括SAR算法流程最后一次本次操作得到的与最后一次本次操作对应的第一处理相应的第一数据,或SAR算法流程最后一次该次操作得到的与最后一次该次操作对应的第二处理相应的第二数据,当所述SAR图像数据为SAR算法流程最后一次本次操作得到的与最后一次本次操作对应的第一处理相应的第一数据时,将其写入所述第二 DDR3中,或当所述SAR图像数据为SAR算法流程最后一次该次操作得到的与最后一次该次操作对应的第二处理相应的第二数据时,将其写入所述第一DDR3中;其中,所述第一DDR3和所述第二DDR3的数据位宽和容量与所述SAR数据矩阵的数据位宽和大小匹配。
需要说明的是,在本申请实施例中,FPGA处理器可以由计算机对其进行配置,也可以由片外配置芯片,如可擦除可编程只读存储器(Erasable Programmable Read OnlyMemory, EPROM)对其进行配置,使得FPGA可以执行一种基于双通道DDR3的SAR数据存储和访问方法的各个步骤。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在片外配置芯片中,如EPROM等,包括若干指令用以使得FPGA执行各个实施例或者实施例的某些部分所述的方法。
应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (9)
1.一种基于双通道DDR3的SAR数据存储和访问方法,其特征在于,包括:
S901,将SAR数据矩阵划分为若干个大小相等的子矩阵;
S902,将各个子矩阵按照顺序映射至第一DDR3中;其中,子矩阵的大小等于所述第一DDR3一行可以存储的数据个数;
S903,将各个子矩阵中的数据按照交叉映射的方式对应存储至所述第一DDR3中的各行;其中,所述第一DDR3中的各行存储的数据为第一待处理数据;
S904,在SAR算法流程的本次操作中,从所述第一DDR3中读取第一阈值个数第一待处理数据并对其进行与本次操作对应的第一处理,得到第一阈值个数与本次操作对应的第一处理相应的第一数据,在将所述第一阈值个数与本次操作对应的第一处理相应的第一数据写入第二DDR3中的同时,从所述第一DDR3中读取下一第一阈值个数所述第一待处理数据,重复读取与写入,直到所述第一DDR3中的所有第一待处理数据全部经过所述与本次操作对应的第一处理,并将得到的与本次操作对应的第一处理相应的第一数据全部写入第二DDR3中;
S905,在SAR算法流程的该次操作中,从所述第二DDR3中读取第二阈值个数与本次操作对应的第一处理相应的第一数据并对其进行与该次操作对应的第二处理,得到第二阈值个数与该次操作对应的第二处理相应的第二数据,在将所述第二阈值个数与该次操作对应的第二处理相应的第二数据写入第一DDR3中的同时,从所述第二DDR3中读取下一第二阈值个数与本次操作对应的第一处理相应的第一数据,重复读取与写入,直到所述第二DDR3中的所有与本次操作对应的第一处理相应的第一数据全部经过所述与该次操作对应的第二处理,并将得到的与该次操作对应的第二处理相应的第二数据全部写入第一DDR3中;
S906,交替重复S904和S905,直至SAR算法流程结束,得到与SAR算法流程结束时对应的SAR图像数据,其中,所述SAR图像数据包括SAR算法流程最后一次本次操作得到的与最后一次本次操作对应的第一处理相应的第一数据,或SAR算法流程最后一次该次操作得到的与最后一次该次操作对应的第二处理相应的第二数据,当所述SAR图像数据为SAR算法流程最后一次本次操作得到的与最后一次本次操作对应的第一处理相应的第一数据时,将其写入所述第二DDR3中,或当所述SAR图像数据为SAR算法流程最后一次该次操作得到的与最后一次该次操作对应的第二处理相应的第二数据时,将其写入所述第一DDR3中;
其中,所述第一DDR3和所述第二DDR3的数据位宽和容量与所述SAR数据矩阵的数据位宽和大小匹配;
其中,所述将各个子矩阵中的数据按照交叉映射的方式对应存储至所述第一DDR3中的各行,包括:
将各个子矩阵相邻两行的SAR数据交替映射存储至所述第一DDR3中的一行。
2.根据权利要求1所述的方法,其特征在于,所述从所述第一DDR3中读取第一阈值个数第一待处理数据并对其进行与本次操作对应的第一处理,包括:
采用突发传输模式对所述第一DDR3中第一阈值个数第一待处理数据进行距离向数据访问或方位向数据访问,得到第一距离向数据访问结果或第一方位向数据访问结果;
对所述第一距离向数据访问结果或所述第一方位向数据访问结果进行与本次操作对应的第一处理;
其中,每个第一距离向数据访问结果为第一待处理数据的两条距离向的数据,每个第一方位向数据访问结果为第一待处理数据的四条方位向的数据。
3.根据权利要求1所述的方法,其特征在于,所述从所述第二DDR3中读取第二阈值个数与本次操作对应的第一处理相应的第一数据并对其进行与该次操作对应的第二处理,包括:
采用突发传输模式对所述第二DDR3中第二阈值个数与本次操作对应的第一处理相应的第一数据进行距离向数据访问或方位向数据访问,得到第二距离向数据访问结果或第二方位向数据访问结果;
对所述第二距离向数据访问结果或所述第二方位向数据访问结果进行与该次操作对应的第二处理;
其中,每个第二距离向数据访问结果为第一数据的两条距离向的数据,每个第二方位向数据访问结果为第一数据的四条方位向的数据。
4.根据权利要求2所述的方法,其特征在于,所述采用突发传输模式对所述第一DDR3中第一阈值个数第一待处理数据进行距离向数据访问或方位向数据访问,得到第一距离向数据访问结果或第一方位向数据访问结果之后,所述方法还包括:
在对所述第一距离向数据访问结果或所述第一方位向数据访问结果进行数据缓存时,对所述第一距离向数据访问结果或所述第一方位向数据访问结果进行解交叉映射,以使得缓存中的所述第一距离向数据访问结果或所述第一方位向数据访问结果存储顺序与SAR数据矩阵保持一致。
5.根据权利要求3所述的方法,其特征在于,所述采用突发传输模式对所述第二DDR3中第二阈值个数与本次操作对应的第一处理相应的第一数据进行距离向数据访问或方位向数据访问,得到第二距离向数据访问结果或第二方位向数据访问结果之后,所述方法还包括:
在对所述第二距离向数据访问结果或所述第二方位向数据访问结果进行数据缓存时,对所述第二距离向数据访问结果或所述第二方位向数据访问结果进行解交叉映射,以使得缓存中的所述第二距离向数据访问结果或所述第二方位向数据访问结果存储顺序与SAR数据矩阵保持一致。
6.根据权利要求4所述的方法,其特征在于,所述在对所述第一距离向数据访问结果或所述第一方位向数据访问结果进行数据缓存时,对所述第一距离向数据访问结果或所述第一方位向数据访问结果进行解交叉映射,以使得缓存中的所述第一距离向数据访问结果或所述第一方位向数据访问结果存储顺序与SAR数据矩阵保持一致,包括:
在对所述第一距离向数据访问结果进行数据缓存时,对所述第一距离向数据访问结果进行解交叉映射,分别映射至第一缓存RAM0和第二缓存RAM1,以使得第一距离向RAM0和第二距离向RAM1中的所述第一距离向数据访问结果存储顺序与SAR数据矩阵保持一致;或
在对所述第一方位向数据访问结果进行数据缓存时,对所述第一方位向数据访问结果进行解交叉映射,分别映射至第一缓存RAM0、第二缓存RAM1、第三缓存RAM2和第四缓存RAM3,以使得第一缓存RAM0、第二缓存RAM1、第三缓存RAM2和第四缓存RAM3中的所述第一方位向数据访问结果存储顺序与SAR数据矩阵保持一致。
7.根据权利要求5所述的方法,其特征在于,所述在对所述第二距离向数据访问结果或所述第二方位向数据访问结果进行数据缓存时,对所述第二距离向数据访问结果或所述第二方位向数据访问结果进行解交叉映射,以使得缓存中的所述第二距离向数据访问结果或所述第二方位向数据访问结果存储顺序与SAR数据矩阵保持一致,包括:
在对所述第二距离向数据访问结果进行数据缓存时,对所述第二距离向数据访问结果进行解交叉映射,分别映射至第五缓存RAM0和第六缓存RAM1,以使得第五缓存RAM0和第六缓存RAM1中的所述第二距离向数据访问结果存储顺序与SAR数据矩阵保持一致;或
在对所述第二方位向数据访问结果进行数据缓存时,对所述第二方位向数据访问结果进行解交叉映射,分别映射至第五缓存RAM0、第六缓存RAM1、第七缓存RAM2和第八缓存RAM3,以使得第五缓存RAM0、第六缓存RAM1、第七缓存RAM2和第八缓存RAM3中的所述第二方位向数据访问结果存储顺序与SAR数据矩阵保持一致。
8.一种基于双通道DDR3的SAR数据存储和访问装置,其特征在于,包括:
划分模块,用于将SAR数据矩阵划分为若干个大小相等的子矩阵;
映射模块,用于将各个子矩阵按照顺序映射至第一DDR3中;其中,子矩阵的大小等于所述第一DDR3一行可以存储的数据个数;
存储模块,用于将各个子矩阵中的数据按照交叉映射的方式对应存储至所述第一DDR3中的各行;其中,所述第一DDR3中的各行存储的数据为第一待处理数据;
第一处理模块,用于在SAR算法流程的本次操作中,从所述第一DDR3中读取第一阈值个数第一待处理数据并对其进行与本次操作对应的第一处理,得到第一阈值个数与本次操作对应的第一处理相应的第一数据,在将所述第一阈值个数与本次操作对应的第一处理相应的第一数据写入第二DDR3中的同时,从所述第一DDR3中读取下一第一阈值个数所述第一待处理数据,重复读取与写入,直到所述第一DDR3中的所有第一待处理数据全部经过所述与本次操作对应的第一处理,并将得到的与本次操作对应的第一处理相应的第一数据全部写入第二DDR3中;
第二处理模块,还用于在SAR算法流程的该次操作中,从所述第二DDR3中读取第二阈值个数与本次操作对应的第一处理相应的第一数据并对其进行与该次操作对应的第二处理,得到第二阈值个数与该次操作对应的第二处理相应的第二数据,在将所述第二阈值个数与该次操作对应的第二处理相应的第二数据写入第一DDR3中的同时,从所述第二DDR3中读取下一第二阈值个数与本次操作对应的第一处理相应的第一数据,重复读取与写入,直到所述第二DDR3中的所有与本次操作对应的第一处理相应的第一数据全部经过所述与该次操作对应的第二处理,并将得到的与该次操作对应的第二处理相应的第二数据全部写入第一DDR3中;
处理模块,用于交替重复所述第一处理模块和所述第二处理模块的操作,直至SAR算法流程结束,得到与SAR算法流程结束时对应的SAR图像数据,其中,所述SAR图像数据包括SAR算法流程最后一次本次操作得到的与最后一次本次操作对应的第一处理相应的第一数据,或SAR算法流程最后一次该次操作得到的与最后一次该次操作对应的第二处理相应的第二数据,当所述SAR图像数据为SAR算法流程最后一次本次操作得到的与最后一次本次操作对应的第一处理相应的第一数据时,将其写入所述第二DDR3中,或当所述SAR图像数据为SAR算法流程最后一次该次操作得到的与最后一次该次操作对应的第二处理相应的第二数据时,将其写入所述第一DDR3中;
其中,所述第一DDR3和所述第二DDR3的数据位宽和容量与所述SAR数据矩阵的数据位宽和大小匹配;
其中,所述将各个子矩阵中的数据按照交叉映射的方式对应存储至所述第一DDR3中的各行,包括:
将各个子矩阵相邻两行的SAR数据交替映射存储至所述第一DDR3中的一行。
9.一种基于双通道DDR3的SAR数据存储和访问装置,其特征在于,包括至少一个FPGA处理器、第一DDR3和第二DDR3,所述FPGA处理器执行程序时,使得所述装置执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110129411.0A CN112947854B (zh) | 2021-01-29 | 2021-01-29 | 一种基于双通道ddr3的sar数据存储和访问方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110129411.0A CN112947854B (zh) | 2021-01-29 | 2021-01-29 | 一种基于双通道ddr3的sar数据存储和访问方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112947854A CN112947854A (zh) | 2021-06-11 |
CN112947854B true CN112947854B (zh) | 2022-08-19 |
Family
ID=76240097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110129411.0A Active CN112947854B (zh) | 2021-01-29 | 2021-01-29 | 一种基于双通道ddr3的sar数据存储和访问方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112947854B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103135096A (zh) * | 2013-01-11 | 2013-06-05 | 北京理工大学 | 一种合成孔径雷达成像处理转置存储方法和数据访问方法 |
CN206557767U (zh) * | 2016-11-11 | 2017-10-13 | 北京润科通用技术有限公司 | 一种基于乒乓操作结构控制数据缓存的缓存系统 |
CN108958638A (zh) * | 2017-05-18 | 2018-12-07 | 中国科学院电子学研究所 | 超高速sar数据记录仪以及数据记录方法 |
CN110109115A (zh) * | 2019-05-09 | 2019-08-09 | 西安电子科技大学 | 基于fpga和ddr3的sar快速成像装置及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11385327B2 (en) * | 2018-10-10 | 2022-07-12 | Sri International | CubeSat radar systems |
-
2021
- 2021-01-29 CN CN202110129411.0A patent/CN112947854B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103135096A (zh) * | 2013-01-11 | 2013-06-05 | 北京理工大学 | 一种合成孔径雷达成像处理转置存储方法和数据访问方法 |
CN206557767U (zh) * | 2016-11-11 | 2017-10-13 | 北京润科通用技术有限公司 | 一种基于乒乓操作结构控制数据缓存的缓存系统 |
CN108958638A (zh) * | 2017-05-18 | 2018-12-07 | 中国科学院电子学研究所 | 超高速sar数据记录仪以及数据记录方法 |
CN110109115A (zh) * | 2019-05-09 | 2019-08-09 | 西安电子科技大学 | 基于fpga和ddr3的sar快速成像装置及方法 |
Non-Patent Citations (1)
Title |
---|
一种二维访问效率均衡的SAR数据矩阵转置方法;刘小宁 等;《电子学报》;20160131(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112947854A (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9317481B2 (en) | Data access method and device for parallel FFT computation | |
CN110109115B (zh) | 基于fpga和ddr3的sar快速成像装置及方法 | |
US20200278923A1 (en) | Multi-dimensional accesses in memory | |
CN111028136B (zh) | 一种人工智能处理器处理二维复数矩阵的方法和设备 | |
CN114565501A (zh) | 用于卷积运算的数据加载方法及其装置 | |
CN103135096A (zh) | 一种合成孔径雷达成像处理转置存储方法和数据访问方法 | |
CN109446478B (zh) | 一种基于迭代和可重构方式的复协方差矩阵计算系统 | |
CN112947854B (zh) | 一种基于双通道ddr3的sar数据存储和访问方法及装置 | |
CN103106181B (zh) | 一种大点数fft在处理器上的实现方法 | |
Langemeyer et al. | Using SDRAMs for two-dimensional accesses of long 2 n× 2 m-point FFTs and transposing | |
CN105373497A (zh) | 基于dsp芯片的矩阵转置装置 | |
CN106919516B (zh) | Ddr地址映射系统和方法 | |
Garrido et al. | Continuous-flow matrix transposition using memories | |
CN108920097B (zh) | 一种基于交织存储的三维数据处理方法 | |
US9268744B2 (en) | Parallel bit reversal devices and methods | |
JP5654373B2 (ja) | 演算装置、演算方法およびプログラム | |
RU2717950C1 (ru) | Высокоскоростное устройство быстрого преобразования фурье с бесконфликтным линейным доступом к памяти | |
CN103699517B (zh) | 一种1-d/2-d混合架构fft处理器 | |
KR101914833B1 (ko) | 과학적 계산을 위한 저장 프로세서 어레이 | |
RU2730174C1 (ru) | Реконфигурируемый вычислитель быстрого преобразования фурье сверхбольшой длины преобразования | |
Zhou et al. | Window memory accesses method in alternate row/column matrix access systems | |
Bian et al. | Matrix transpose methods for SAR imaging system | |
CN113094648B (zh) | 外积累加求解三角矩阵与矩阵内积的方法 | |
CN108872990B (zh) | 合成孔径雷达实时成像转置处理方法 | |
Tasnim et al. | MAGIC-DHT: Fast in-memory computing for Discrete Hadamard Transform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |