CN115185859B - 一种雷达信号处理系统及低延迟矩阵转置处理装置和方法 - Google Patents

一种雷达信号处理系统及低延迟矩阵转置处理装置和方法 Download PDF

Info

Publication number
CN115185859B
CN115185859B CN202211108420.2A CN202211108420A CN115185859B CN 115185859 B CN115185859 B CN 115185859B CN 202211108420 A CN202211108420 A CN 202211108420A CN 115185859 B CN115185859 B CN 115185859B
Authority
CN
China
Prior art keywords
data
matrix
address
writing
transposed
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
Application number
CN202211108420.2A
Other languages
English (en)
Other versions
CN115185859A (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 Tiandiyige Technology Co ltd
Original Assignee
Beijing Tiandiyige Technology Co ltd
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 Tiandiyige Technology Co ltd filed Critical Beijing Tiandiyige Technology Co ltd
Priority to CN202211108420.2A priority Critical patent/CN115185859B/zh
Publication of CN115185859A publication Critical patent/CN115185859A/zh
Application granted granted Critical
Publication of CN115185859B publication Critical patent/CN115185859B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Radar Systems Or Details Thereof (AREA)

Abstract

本发明公开了一种雷达信号处理系统及低延迟矩阵转置处理装置和方法,方法包括:将外设DDR3划分为多个缓存矩阵块,且多个缓存矩阵块顺序操作;接收外部数据并将所述外部数据的位宽和时钟域转换到外设DDR3处理所需的位宽和时钟域;判断间隔地址写入速率是否大于等于数据输入速率,如果是,则采用一直间隔地址写入方式将数据写入缓存矩阵块,否则采用少数连续地址写入和多数间隔地址写入相结合的方式将数据写入缓存矩阵块;采用连续地址读取方式从缓存矩阵块中将待转置矩阵数据转置读出。本发明结合实际处理情况和外设DDR3读写效率,针对不同矩阵大小情况,实现矩阵转置的最短延迟,从而在同等条件下,具有最快速度完成矩阵转置的能力。

Description

一种雷达信号处理系统及低延迟矩阵转置处理装置和方法
技术领域
本发明涉及雷达信号处理技术领域,具体涉及一种雷达信号处理系统及低延迟矩阵转置处理装置和方法。
背景技术
在雷达信号处理中,为了提高SNR(信噪比)增加对目标的检测概率常常采用相参积累和非相参积累的方式对样本进行积累。在脉冲积累的过程中,会将数据分为两个一维的处理过程来实现,因此在处理过程中需要对数据的维度进行转置操作。随着对目标的探测距离和探测精度的提高,回波数据量随之变大,对数据缓存器的容量和矩阵转置效率的要求相应提高。
现有已提出各种数据转置技术,例如,基于“固定矩阵分割”法来实现矩阵转置处理,该技术通过在FPGA内部占用一个大小为64×64的双口RAM来实现矩阵的转置处理,矩阵转置处理过程为:首先将原始矩阵数据分割成64×64的小块矩阵,接着将这些小块矩阵分为对角模式矩阵块、非对称对角模式矩阵块和非对称非对角模式矩阵块三个类型;然后将这些小块矩阵的数据依次读入到双口RAM中,根据小块矩阵的不同类型对双口RAM的读写地址进行不同操作,实现对不同小块矩阵的转置处理,最终实现了整个矩阵的转置处理。该技术利用FPGA内部自身存储器实现矩阵的转置,具有读写速率高、操作方便等优点。但是当需转置的矩阵较大时,就需要更换资源更大的FPGA平台,即该现有技术受限于FPGA内部存储资源。而为了解决受FPGA内部存储资源限制的问题,现有提出了借助于DDR3的优点,通过外设DDR3来弥补FPGA内部存储资源不足的问题,并将DDR3存储区域划分为若干个Bank,将连续数据帧顺序输入DDR3中,每个数据帧写入一个Bank内;数据个数为M×N的待转置矩阵,将每行N个元素分解为R×C,得到M个R×C的分块矩阵;写操作过程中,不同分块矩阵之间按时间顺序写入,每个分块矩阵内部按照行顺序写入,不同行之间跳行写入;读操作过程中,顺序读取各个分块矩阵相同地址的数据,直到数据读取完成。该技术使矩阵转置时的读写速率得到均衡,通过尽量少的跳行读写,提升整体的效率。然而,该方法只是单纯的考虑读写均衡,并未考虑实际雷达信号处理过程中,对矩阵转置的时效性要求。
发明内容
为了解决现有技术无法在保证读写均衡的同时提高数据转置的时效性问题,本发明提供了一种低延迟矩阵转置处理方法。本发明结合实际处理情况和外设DDR3读写效率,针对不同矩阵大小情况,实现矩阵转置的“最短延迟”,从而在同等条件下,具有最快速度完成矩阵转置的能力。
本发明通过下述技术方案实现:
一种低延迟矩阵转置处理方法,包括:
将外设DDR3划分为多个缓存矩阵块,且多个缓存矩阵块顺序操作;
接收外部数据并将所述外部数据的位宽和时钟域转换到所述外设DDR3处理所需的位宽和时钟域;
判断间隔地址写入速率是否大于等于数据输入速率,如果是,则采用一直间隔地址写入方式将数据写入缓存矩阵块,否则采用少数连续地址写入和多数间隔地址写入相结合的方式将数据写入缓存矩阵块;
采用连续地址读取方式从缓存矩阵块中将待转置矩阵数据转置读出;
所述一直间隔地址写入方法为:根据待转置矩阵大小,将缓存矩阵块划分为多个分块矩阵A,每个分块矩阵A内为连续地址空间存放同一列数据,多个分块矩阵A是顺序排列,同一行数据按顺序存放在不同分块矩阵A的相同地址;
所述少数连续地址写入和多数间隔地址写入相结合的方式为:根据待转置矩阵大小,将缓存矩阵块划分为多个分块矩阵B,每个分块矩阵B存放s列数据,多个分块矩阵B是顺序排列的,同一行数据连续s个数据连续地址写入同一个分块矩阵B,然后采用间隔地址的方式,s为大于等于2的整数。
作为优选实施方式,本发明的将外设DDR3划分为多个缓存矩阵块,具体为:
根据最大的待转置矩阵大小确定缓存矩阵块的数据缓存容量;
根据外设DDR3容量大小,计算缓存矩阵块的个数;
多个缓存矩阵块顺序操作,具体为:
将待转置矩阵数据依次存放到多个缓存矩阵块中进行转置操作,在读上一个缓存矩阵块的数据时,若监测到有新的待转置矩阵数据输入则写入到下一个缓存矩阵块。
作为优选实施方式,本发明的数据输入速率等于数据等效位宽乘以数据输入时钟;
所述间隔地址写入速率等于外设DDR3数据处理位宽乘以外设DDR3数据处理时钟乘以间隔地址操作效率。
作为优选实施方式,本发明的采用连续地址读取方式从缓存矩阵块中将待转置矩阵数据转置读出,具体包括:
如果采用一直间隔地址写入方式将数据写入缓存矩阵块,则采用连续地址读取方式A将数据转置读出:即按照地址顺序读出多个分块矩阵A的所有数据,使得待转置矩阵的数据按列输出;
且在读的过程中监测到有新的待转置矩阵数据输入,则将新的待转置矩阵数据采用一直间隔地址写入方式或少数连续地址写入和多数间隔地址写入相结合的方式写入下一个缓存矩阵块,之后继续当前转置读出操作。
作为优选实施方式,本发明的采用连续地址读取方式从缓存矩阵块中将待转置矩阵数据转置读出,具体包括:
如果采用少数连续地址写入和多数间隔地址写入相结合的方式将数据写入缓存矩阵块,则采用连续地址读取方式B将回波数据转置读出:即按照地址顺序读出多个分块矩阵B的所有数据,同时完成串并转换使得待转置矩阵的数据按列输出;
且在读的过程中监测到有新的待转置矩阵数据输入,则将新的待转置矩阵数据采用一直间隔地址写入方式或少数连续地址写入和多数间隔地址写入相结合的方式写入下一个缓存矩阵块,之后继续当前转置读出操作。
作为优选实施方式,本发明的方法还包括:
对转置读出的数据进行格式转换后输出至后端信号处理模块处理。
作为优选实施方式,本发明的对转置读出的数据进行格式转换后输出至后端信号处理模块处理,具体包括:
如果采用一直间隔地址写入方式将数据写入缓存矩阵块,则将转置读出的数据转换为后端信号处理模块所需的时钟域和位宽后直接输出;
如果采用少数连续地址写入和多数间隔地址写入相结合的方式将数据写入缓存矩阵块,则将转置读出的数据转换为后端信号处理模块所需的时钟域和位宽,同时还需要进行串并转换处理后再输出。
第二方面,本发明提出了一种低延迟矩阵转置处理装置,该装置用于实施上述转置处理方法,由FPGA模块和外设DDR3器件组成;
所述FPGA模块包括时序控制单元、输入数据转换单元、写地址控制单元、读地址控制单元、DDR3逻辑控制单元和输出数据转换单元;
所述时序控制单元用于为所述输入数据转换单元、写地址控制单元、读地址控制单元、DDR3逻辑控制单元和输出数据转换单元提供工作时序;
所述输入数据转换单元用于接收外部数据并对其进行格式转换;
所述写地址控制单元用于控制所述DDR3逻辑控制单元将所述输入数据转换单元的数据写入所述外设DDR3器件中;
所述读地址控制单元用于控制所述DDR3逻辑控制单元将所述外设DDR3器件存储的数据转置读出至所述输出数据转换单元;
所述输出数据转换单元将转置读出后的数据进行转换后输出。
第三方面,本发明提出了一种雷达信号处理系统,采用上述低延迟矩阵转置处理装置进行回波数据矩阵转置处理。
本发明具有如下的优点和有益效果:
1、本发明充分利用DDR3器件读写地址效率和雷达信号处理中PRT内数据速率较低的特点,在写DDR3时采用一直间隔地址、少数连续地址与多数间隔地址操作相结合两种方法,完成矩阵转置的读操作采用连续地址操作,从而实现在接收完CPI内所有数据后矩阵转置的最短延迟。
2、本发明采用最大PRT数作为DDR3中分块矩阵的划分,适应于所有矩阵转置。同时,固定划分分块矩阵的好处可以保证不同矩阵大小的转置时间存在固定比例关系,有利于计算不同PRT数矩阵转置的处理时延。
3、相较于传统的利用多组DDR3,采用乒乓结构操作地址才能完成新数据的实时写入的技术,本发明仅利用一组DDR3分成多个缓存空间,在读数据的转置过程中,兼顾新数据的写入,充分考虑了回波数据的实时性,并减少了外部设备数量,降低了成本和能耗。
4、本发明不仅适用于雷达信号处理中的矩阵转置,同样适用于类似图像处理中的矩阵转置。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为本发明的方法流程示意图。
图2为本发明的装置原理框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
雷达信号处理中,在接收PRT(Pulse Repetition Time,脉冲重复时间)距离维数据时一般速度较慢,基带数据率一般为几十MHz,PRT和PRT之间也有几十个微秒的接收间隔期,而在接受完CPI(Coherent Processing Interval,相参处理时间)内所有PRT数据后,又需要快速的完成矩阵转置,因此需要尽可能减小数据处理延迟。考虑到常用的DDR3读写时钟可到1333MHz或1600MHz,同时连续操作地址效率可达75%以上,而间隔操作地址效率下降很多,较差时仅有20%左右的读写效率,故通常认为DDR3常用操作地址的效率在20%~75%之间,矩阵转置的过程中,要么写操作采用连续地址方式,读操作采用间隔地址,从而使写操作处在高效率状态下,读操作处在低效率状态下;要么读操作采用连续地址方式,写操作采用间隔地址,从而使读操作处在高效率状态下,写操作处在低效率状态下;要么均衡读写地址操作,使得读写效率都处在一个中水平效率状态下。然而这些控制模式仅考虑了读写效率均衡问题,而未考虑雷达信号处理对时效性的要求,故均无法满足时效性最优。针对此,本发明实施例提出了一种低延迟矩阵转置处理方法,该方法基于FPGA(现场可编程门阵列)结合外设DDR3同步动态随机存取存储器完成雷达信号处理中的CPI(Coherent ProcessingInterval,相参处理时间)内多个PRT(Pulse Repetition Time,脉冲重复时间)的矩阵转置处理,且实现矩阵转置的最短延迟,从而提高雷达信号处理的时效性。
具体如图1所示,本发明实施例提出的处理方法具体包括如下步骤:
步骤1,根据外设DDR3的容量大小以及待转置矩阵大小将外设DDR3划分为多个缓存矩阵块,且多个缓存矩阵块顺序操作。
考虑到CPI与CPI之间会存在时间间隔较短的情况,即相邻两个待转置矩阵之间输入时间间隔较短,在上一个矩阵转置的过程中,就有新的矩阵数据输入。故为了解决该冲突,避免数据的丢失,保证信号处理的实时性,本发明实施例通过将DDR3划分为多个独立的缓存空间,多个缓存空间顺序操作,将待转置矩阵数据依次存放到缓存空间,在在读上一个缓存空间的数据时,有新回波数据输入则写入到下一个缓存空间,从而满足回波数据的实时性。具体可根据工程中常用最大的待转置矩阵大小M×N确定缓存矩阵块的数据缓存容量P1(P1=M×N×x),再根据外设DDR3容量大小P,计算缓存矩阵块的个数Nn(Nn=floor(P/P1),floor表示向下取整)。
步骤2,接收回波数据并将回波数据的位宽和时钟域转换到外设DDR3处理所需的位宽和时钟域。
步骤3,针对一个缓存矩阵块,判断回波数据输入速率和间隔地址写入速率是否满足预设要求,如果是则按照步骤4的一直间隔地址写入方式将回波数据写入缓存矩阵块,否则按照步骤5的少数连续地址写入和多数间隔地址写入相结合的方式将回波数据写入缓存矩阵块。
将回波数据输入到数据转换单元,将时钟转换到DDR3所需的工作时钟域并将回波数据位宽q1通过串并转换为DDR3处理数据位宽x1:设DDR3读写数据位宽为x bit,数据处理时钟为y MHz,一般DDR3工作在“突发8”模式,即给出一个首地址addr_ddr,可以同时操作addr_ddr~addr_ddr+7共8个地址空间的数据,则DDR3处理数据位宽为x1=x*8 bit,数据处理时钟为y1=y/8 MHz。间隔地址操作效率按照z计算,因此间隔地址写入的速率为:
V1=x*y*z=x1*y1*z。
设回波数据位宽为q bit,数据输入时钟为f MHz,考虑到回波数据位宽与DDR3数据位宽存在不能完全匹配的情况,回波数据等效位宽为q1=x1/floor(x1/q) (floor表示向下取整),因此回波数据输入速率为V2= q1*f。单个数据占用DDR3地址数为addra1=floor(x/q)(floor表示向下取整)。
若V1≥V2,则采用步骤4的方式将待转置矩阵数据写入缓存矩阵块;否则按照步骤5的方式将待转置矩阵数据写入缓存矩阵块,并确定各缓存矩阵块的首地址Addr_Nn =(nn-1)*P1/x1,nn为1~Nn。
步骤4,采用一直间隔地址写入方式将回波数据写入缓存矩阵块:根据待转置矩阵大小,将缓存矩阵块划分为多个分块矩阵A,每个分块矩阵A内为连续地址空间存放同一列数据,多个分块矩阵A是顺序排列,同一行数据按顺序存放在不同分块矩阵A的相同地址。
本发明实施例以一个大小为M*N的待转置矩阵(该矩阵表示一共有N行,每一行有M个数据)为例进行说明,将缓存矩阵块划分为M个分块矩阵A,一个分块矩阵A可存放N个数据,每个分块矩阵A的容量为N*x;将待转置矩阵第一行的第一个数据写入第一个分块矩阵A的首地址,第一行的第二数据写入第二个分块矩阵A的首地址,以此类推,第一行的最后一个数据写入最后一个分块矩阵A的首地址;待转置矩阵第二行的第一个数据写入第一个分块矩阵A的第二个地址,第二行的第二个数据写入第二分块矩阵A的第二个地址,以此类推,第二行的最后一个数据写入最后一个分块矩阵A的第二个地址;以此类推,直到将待转置矩阵的最后一行的最后一个数据写入最后一个分块矩阵A的最后一个地址,完成所有矩阵数据的写入。分块矩阵A中各数据C(m,n) (m=1~N,n=1~M)对应的地址为(m-1)*8+(n-1)*N*8。
步骤5,采用少数连续地址写入和多数间隔地址写入相结合的方式将回波数据写入缓存矩阵块:根据待转置矩阵大小,将缓存矩阵块划分为多个分块矩阵B,每个分块矩阵B存放s(s为大于等于2的整数)列数据,多个分块矩阵B是顺序排列的,同一行数据连续s个数据连续地址写入同一个分块矩阵B,然后采用间隔地址的方式。
考虑到DDR3连续写2个地址再间隔地址写的效率,能满足大部份雷达信号处理的回波速率,因而本发明实施例以一个大小为M×N的待转置矩阵(该矩阵表示一共有N行,每一行有M个数据),且以连续2个地址的连续写入(即s=2)为例进行说明。则将缓存矩阵块划分为M/2个分块矩阵B,一个分块矩阵B可存放N*2个数据,每个分块矩阵B的容量为N*2*x。将待转置矩阵第一行的第一个数据和第二数据顺序写入第一个分块矩阵B的首地址和第二个地址,第一行的第三个数据和第四个数据顺序写入第二个分块矩阵B的首地址和第二个地址,以此类推,第一行的倒数第二个数据和最后一个数据顺序写入最后一个分块矩阵B的首地址和第二个地址;将待转置矩阵第二行的第一个数据和第二数据顺序写入第一个分块矩阵B的第三个地址和第四个地址,第二行的第三个数据和第四个数据顺序写入第二分块矩阵B的第三个地址和第四个地址,以此类推,第二行的倒数第二个数据和最后一个数据顺序写入最后一个分块矩阵B的第三个地址和第四个地址;以此类推,将待转置矩阵最后一行的倒数第二个数据和最后一个数据顺序写入最后一个分块矩阵B的最后两个地址,完成所有矩阵数据的写入。分块矩阵B中各数据C(m,n) (m=1~N*2,n=1~M/2),n为奇数时对应的地址为((n+1)/2-1)*M*8*2 +2*(m-1)*8,n为偶数时对应的地址为(n/2-1)* M*8 +2*(m-1)*8+8。
步骤6,将回波数据转置从DDR3读出:按照步骤4方式写入时,则按照步骤S7的连续地址读取方式A读出;按照步骤5方式写入时,则按照步骤S8的连续地址读取方式B读出。
步骤7,采用连续地址读取方式A将回波数据转置读出:按照地址顺序读出第一个分块矩阵A的所有数据,输出待转置矩阵的第1列数据;读出第二个分块矩阵A的所有数据,输出待转置矩阵的第2列数据;以此类推,读出最后一个分块矩阵A的所有数据,输出待转置矩阵的最后一列数据,从而完成数据矩阵的转置。若在读的过程中有下一个待转置矩阵数据输入,则产生标志信号WAIT_RD_FLAG为高,按照步骤3写入新数据后,跳回到步骤7,并拉低标志信号WAIT_RD_FLAG;没有新数据输入时,标志信号WAIT_RD_FLAG为低,则一直按步骤7继续完成读操作。
步骤8,采用连续地址读取方式B将回波数据转置读出:按照地址顺序读出第一个分块矩阵B的所有数据,输出待转置矩阵的第1列、第2列、…、第s列数据;读出第二分块矩阵B的所有数据,输出待转置矩阵的第s+1列、第s+2列、…、第2s列数据;以此类推,读出最后一个分块矩阵B的所有数据,输出待转置矩阵的最后s列数据,从而完成数据矩阵的转置。若在读的过程中有下一个待转置矩阵数据输入,则产生标志信号WAIT_RD_FLAG为高,按照步骤3写入新数据后,跳回到步骤8,并拉低标志信号WAIT_RD_FLAG;没有新数据输入时,标志信号WAIT_RD_FLAG为低,则一直按步骤8继续完成读操作。
步骤9,数据输出格式转换:若按照步骤7的方式读出数据,则将转置读出的数据转换为后端信号处理模块所需的时钟域和位宽后直接输出到后端信号处理模块;若按照步骤8的方式读出数据,则将转置读出的数据转换为后端信号处理模块所需的时钟域和位宽,同时还需要进行串并转换处理后再输出到后端信号处理模块。
利用步骤3-9顺序对多个缓存矩阵块进行转置操作。
本发明实施例在保证DDR3写操作速率满足回波数据输入时,在写DDR3时采用一直间隔地址,完成矩阵转置的读操作时采用连续地址操作方式,即在写操作效率满足回波数据输入带宽的要求下,尽量提高DDR3的读操作的效率,从而实现在接收完CPI内所有数据后矩阵转置的最短延迟;当写操作处在低效率工作状态下无法满足回波数据输入时,在写DDR3时采用少数连续地址与多数间隔地址操作相结合的方式,在完成矩阵转置的读操作时采用连续地址操作方式,即本发明实施例不占用其他资源缓存,通过增加写操作流程复杂度,使其写操作效率满足回波数据输入要求的同时,最大限度使读操作仍处在一个高效率的状态下,从而实现了矩阵转置的最短延迟,提高了雷达信号处理的时效性。
同时,本发明实施例还通过将一组DDR3划分为多个独立的缓存空间,从而在上一个矩阵转置过程中有新的矩阵数据输入时,则可将新的矩阵数据写入下一个缓存空间,从而满足回波数据的实时性,通过逻辑控制减小了外部存储设备数量,降低了成本且减小了功耗。
图2所示为用于支撑本发明实施例上述处理方法实施的硬件原理框图,其主要由FPGA模块和外设DDR3器件构成。FPGA模块采用但不限于Xilinx公司的Zynq7045系列,内部逻辑控制器包含时序控制单元、输入数据转换单元、写地址控制单元、读地址控制单元、DDR3逻辑控制单元和输出数据转换单元;时序控制单元用于为FPGA模块中其他单元提供工作时序,输入数据转换单元用于接收外部数据发送模块发送来的数据(如雷达设备发出的回波信号数据)并将接收的数据的位宽和时钟域转换到DDR3处理所需的位宽和时钟域,写地址控制单元用于控制DDR3逻辑控制单元将输入数据转换单元的数据写入外设DDR3器件中,读地址控制单元用于控制DDR3逻辑控制单元将外设DDR3器件的数据读出完成转置并输出至输出数据转换单元,输出数据转换单元将转置处理后的数据转换为后端信号处理模块所需的时钟域和数据位宽并输出,若采用少数连续地址写入与多数间隔地址写入相结合的方式时,该输出数据转换单元需对数据进行串并转换处理,将不同列数据分开输出。外设DDR3器件采用但不限于镁光公司的MT41K256M16TW-107型号,工作时钟为1600MHz,存储容量为4Gb。采用两片DDR3并联的方式,即两片DDR3的数据线拼接一起,地址线共用,从而提高数据的读写速率。
本发明实施例提出的矩阵转置处理装置和方法不仅适用于雷达信号处理中的矩阵转置,同样适用于图像处理中类似矩阵转置的处理。
实施例2
本发明实施例对上述实施例1提出的方法进行示例性说明。
在常见的雷达信号处理中,需要转置的最大矩阵不超过4096*1024,即PRT内共有4096个距离单元,CPI内共有1024个PRT数。考虑到多通道数据同时转置的情况,这里数据位宽定为256bit。DDR3中单个缓存矩阵块数据存储容量为1Gb(4096*1024*256bit),则共有4*2=8个缓存矩阵块。常见DDR3读写配置为“突发长度8”模式,即在读写过程中给出首地址addr,便可以同时操作地址addr到地址addr+7的8个数据。两片DDR3数据位宽为16*2=32bit,按照“突发长度8”模式操作一次首地址就可以完成多通道一个距离单元数据的读写。
示例一:需要转置矩阵大小为4096*1024,回波数据时钟速率为30MHz,即回波数据速率为256bit*30M=7.5Gbps,CPI与CPI之间时间间隔为15us。
后面为了方便描述,用i (i=1~1024)表示矩阵的行号,用k (k=1~4096)表示矩阵的列号,C(i,k)表示第i个PRT中第k个距离单元的数据。
则具体实施步骤为:
步骤A.根据数据输入速率判断采用一直间隔地址写入抑或是少数连续地址写入和多数间隔地址写入相结合的方式。根据输入条件知道回波数据速率为7.5Gbps,DDR3的处理速率为1600M*32bit=50Gbps,其20%效率后处理速率为10Gbps,由此知道可以采用一直间隔地址写入,连续地址读取的方式。进一步确定分块矩阵A的个数,确定好读写数据的地址。
根据需转置矩阵的列数确定分块矩阵A的大小,即为1024*256 bit=262144 bit,对应的地址间隔为1024*8=8192;根据需转置矩阵的行数确定分块矩阵A的个数,即为4096。8个缓存矩阵块的首地址为Oo = (o-1)*33554432,o为1~8。
步骤B.将雷达信号回波数据放入到输入数据转换单元,将数据位宽转换为256bit,将时钟域切换到DDR3用户时钟域做准备。
步骤C.将输入数据转换单元的数据写入到到DDR3中。
将第1行数据C(1,k) (k=1~4096)写入各个分块矩阵A的首地址中,即第一个距离单元C(1,1)地址为0,第二个距离单元C(1,2)地址为8192,第三个距离单元C(1,3)地址为2*8192,…,C(1,4096)对应地址为4095*8192。
将第2行数据C(2,k) (k=1~4096)写入各个分块矩阵A的次地址中,即第一个距离单元C(2,1)地址为8,第二个距离单元C(2,2)地址为8+8192,第三个距离单元C(2,3)地址为8+2*8192,…,C(2,4096)对应地址为8+4095*8192。
以此类推,第1024行数据C(1024,k) (k=1~4096)对应的地址为(1024-1)*8+(k-1)* 8192。
从而将整个矩阵的数据写入到DDR3中。考虑到写的过程可能时穿插在其他缓存矩阵块读的过程中,需要判断标志位WAIT_RD_FLAG是否为高,当为高时,写完当前数据后立即跳到步骤D继续上一个矩阵数据的读取;当为低时,停留在步骤C,继续等待下一个数据的写入。
步骤D.读出DDR3的数据完成转置并输出到输出数据转换单元。连续地址读取完所有地址的时间为4096*1024/200 ns=20.98us,而两个CPI之间间隔为15us,则在读数据的过程中下一个CPI数据会输入。
通过时序控制单元控制,直到DDR3数据写入完成,便开始完成矩阵转置并将数据读出。首先读取第1个分块矩阵A的数据,连续读取地址0,8,16,…,8184,从而输出了第1列数据;顺序读出第2个分块矩阵A的数据,即连续读出地址8192,8+8192,16+8192,…,8184+8192的数据,输出第2列的数据。依此类推,顺序读出第3~4096个分块矩阵A的数据,从而完成4096*1024矩阵的转置,并将数据输出到输出数据转换单元。当有下一个矩阵数据输入时,WAIT_RD_FLAG拉高,读地址保持在Addr_rd,将写地址的首地址指向下一个缓存矩阵块首地址Oo,进入步骤C完成当前数据的写入,再返回步骤D,继续读取Addr_rd的下一个地址的数据,同时WAIT_RD_FLAG拉低。当新数据再来时,WAIT_RD_FLAG拉高,按照步骤C写入到对应地址,再返回步骤D,继续读取Addr_rd的下一个地址的数据,同时WAIT_RD_FLAG拉低。直到当前矩阵转置完成,再进去进入步骤C,将下一个待转置矩阵的数据写完。
步骤E.将输出数据转换单元的数据转换到后端处理模块所需要的时钟域进行下一步处理。
步骤F.将写数据首地址指向下一个缓存矩阵块首地址,进行读写操作。
按照步骤A~F,顺序操作8个存储空间。
示例二:需要转置矩阵大小为4096*1024,回波数据时钟速率为50MHz,即回波数据速率为256bit*50M=12.5Gbps,CPI与CPI间隔时间为25us。
后面为了方便描述,用i (i=1~1024)表示矩阵的行号,用k (k=1~4096)表示矩阵的列号,C(i,k)表示第i行第k列的数据,也就是第i个PRT中第k个距离单元的数据。
则具体实施步骤为:
步骤A.根据数据输入速率判断采用一直间隔地址写入抑或是少数连续地址写入和多数间隔地址写入相结合的方式。根据输入条件知道回波数据速率为12.5Gbps,DDR3的处理速率为1600M*32bit=50Gbps,其20%效率后处理速率为10Gbps,由此知道可以采用少数连续地址与多数地址间隔写入的方式。进一步确定分块矩阵B个数,确定好读写数据的地址。
由于需要将两个距离单元的数据写入到同一个分块矩阵B中,因此分块矩阵B的大小为1024*256 *2 bit = 524288 bit,地址间隔为1024*8*2=16384;确定需转置矩阵的行数确定分块矩阵B的个数,即为4096÷2=2048。
步骤B.将雷达信号回波数据放入到输入数据转换单元,将数据位宽转换为256bit,将时钟域切换到DDR3用户时钟域做准备。
步骤C.将输入数据转换单元的数据写入到到DDR3中。
将第1行数据C(1,k) (k=1~4096)写入各个分块矩阵B的前两个地址中,即第一个距离单元C(1,1)地址为0,第二个距离单元C(1,2)地址为8,第三个距离单元C(1,3)地址为16384,第四个距离单元C(1,4)地址为16384+8,…,C(1,4095)对应地址为2047*16384,C(1,4096)对应地址为2047*16384+8。
将第2行数据C(2,k) (k=1~4096)写入各个分块矩阵B的次地址中,即第一个距离单元C(2,1)地址为2*8,第二个距离单元C(2,2)地址为3*8,第三个距离单元C(2,3)地址为16384+2*8,第四个距离单元C(2,4)地址为16384+3*8,…,C(2,4095)对应地址为2047*16384+2*8,C(2,4096)对应地址为2047*16384+3*8。
以此类推,第1024行数据C(1024,k) (k=1~4096),k为奇数时对应的地址为((k+1)/2-1)*16384 +2*(1024-1)*8,k为偶数时对应的地址为(k/2-1)*16384 +2*(1024-1)*8+8
从而将整个矩阵的数据写入到DDR3中。
步骤D.读出DDR3的数据完成转置并输出到输出数据转换单元。
通过时序控制单元直到DDR3数据写入完成,便开始完成矩阵转置并将数据读出。首先读取第1个分块矩阵B的数据,连续读取地址0,8,16,…,16376,从而输出了第1列、第2数据;顺序读出第2分块矩阵B的数据,即连续读出地址16384,8+16384,16+16384,…,16376+16384的数据,输出第3列、第4列的数据。依此类推,顺序读出第3~2048个分块矩阵B的数据,从而完成4096*1024矩阵的转置,并将数据输出到输出数据转置单元。
步骤E.将输出数据转换单元的数据转换为后端处理模块所需要的时钟域,同时完成串并转换输出两路数据,发送至进行下一步处理。串并转换具体流程是根据读取DDR3内各分块矩阵B的计数器次数确定,计数器为奇数时的输出数据为同一列数据,计数器为偶数时的输出数据为另外一列数据。
由于该示例二中,连续读取数据的过程中不存在新数据到来,因而只会同时操作一个缓存矩阵块。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种低延迟矩阵转置处理方法,其特征在于,包括:
将外设DDR3划分为多个缓存矩阵块,且多个缓存矩阵块顺序操作;
接收外部数据并将所述外部数据的位宽和时钟域转换到所述外设DDR3处理所需的位宽和时钟域;
判断间隔地址写入速率是否大于等于数据输入速率,如果是,则采用一直间隔地址写入方式将数据写入缓存矩阵块,否则采用少数连续地址写入和多数间隔地址写入相结合的方式将数据写入缓存矩阵块;
采用连续地址读取方式从缓存矩阵块中将待转置矩阵数据转置读出;
所述一直间隔地址写入方法为:根据待转置矩阵大小,将缓存矩阵块划分为多个分块矩阵A,每个分块矩阵A内为连续地址空间存放同一列数据,多个分块矩阵A是顺序排列,同一行数据按顺序存放在不同分块矩阵A的相同地址;
所述少数连续地址写入和多数间隔地址写入相结合的方式为:根据待转置矩阵大小,将缓存矩阵块划分为多个分块矩阵B,每个分块矩阵B存放s列数据,多个分块矩阵B是顺序排列的,同一行数据连续s个数据连续地址写入同一个分块矩阵B,然后采用间隔地址的方式,s为大于等于2的整数。
2.根据权利要求1所述的一种低延迟矩阵转置处理方法,其特征在于,将外设DDR3划分为多个缓存矩阵块,具体为:
根据最大的待转置矩阵大小确定缓存矩阵块的数据缓存容量;
根据外设DDR3容量大小,计算缓存矩阵块的个数;
多个缓存矩阵块顺序操作,具体为:
将待转置矩阵数据依次存放到多个缓存矩阵块中进行转置操作,在读上一个缓存矩阵块的数据时,若监测到有新的待转置矩阵数据输入则写入到下一个缓存矩阵块。
3.根据权利要求1所述的一种低延迟矩阵转置处理方法,其特征在于,所述数据输入速率等于数据等效位宽乘以数据输入时钟;
所述间隔地址写入速率等于外设DDR3数据处理位宽乘以外设DDR3数据处理时钟乘以间隔地址操作效率。
4.根据权利要求1所述的一种低延迟矩阵转置处理方法,其特征在于,采用连续地址读取方式从缓存矩阵块中将待转置矩阵数据转置读出,具体包括:
如果采用一直间隔地址写入方式将数据写入缓存矩阵块,则采用连续地址读取方式A将数据转置读出:即按照地址顺序读出多个分块矩阵A的所有数据,使得待转置矩阵的数据按列输出;
且在读的过程中监测到有新的待转置矩阵数据输入,则将新的待转置矩阵数据采用一直间隔地址写入方式或少数连续地址写入和多数间隔地址写入相结合的方式写入下一个缓存矩阵块,之后继续当前转置读出操作。
5.根据权利要求1所述的一种低延迟矩阵转置处理方法,其特征在于,采用连续地址读取方式从缓存矩阵块中将待转置矩阵数据转置读出,具体包括:
如果采用少数连续地址写入和多数间隔地址写入相结合的方式将数据写入缓存矩阵块,则采用连续地址读取方式B将回波数据转置读出:即按照地址顺序读出多个分块矩阵B的所有数据,同时完成串并转换使得待转置矩阵的数据按列输出;
且在读的过程中监测到有新的待转置矩阵数据输入,则将新的待转置矩阵数据采用一直间隔地址写入方式或少数连续地址写入和多数间隔地址写入相结合的方式写入下一个缓存矩阵块,之后继续当前转置读出操作。
6.根据权利要求1-5任一项所述的一种低延迟矩阵转置处理方法,其特征在于,还包括:
对转置读出的数据进行格式转换后输出至后端信号处理模块处理。
7.根据权利要求6所述的一种低延迟矩阵转置处理方法,其特征在于,对转置读出的数据进行格式转换后输出至后端信号处理模块处理,具体包括:
如果采用一直间隔地址写入方式将数据写入缓存矩阵块,则将转置读出的数据转换为后端信号处理模块所需的时钟域和位宽后直接输出;
如果采用少数连续地址写入和多数间隔地址写入相结合的方式将数据写入缓存矩阵块,则将转置读出的数据转换为后端信号处理模块所需的时钟域和位宽,同时还需要进行串并转换处理后再输出。
8.一种低延迟矩阵转置处理装置,其特征在于,该装置用于实施上述权利要求1-7任一项所述的处理方法,由FPGA模块和外设DDR3器件组成;
所述FPGA模块包括时序控制单元、输入数据转换单元、写地址控制单元、读地址控制单元、DDR3逻辑控制单元和输出数据转换单元;
所述时序控制单元用于为所述输入数据转换单元、写地址控制单元、读地址控制单元、DDR3逻辑控制单元和输出数据转换单元提供工作时序;
所述输入数据转换单元用于接收外部数据并对其进行格式转换;
所述写地址控制单元用于控制所述DDR3逻辑控制单元将所述输入数据转换单元的数据写入所述外设DDR3器件中;
所述读地址控制单元用于控制所述DDR3逻辑控制单元将所述外设DDR3器件存储的数据转置读出至所述输出数据转换单元;
所述输出数据转换单元将转置读出后的数据进行转换后输出。
9.一种雷达信号处理系统,其特征在于,采用权利要求8所述的低延迟矩阵转置处理装置进行回波数据矩阵转置处理。
CN202211108420.2A 2022-09-13 2022-09-13 一种雷达信号处理系统及低延迟矩阵转置处理装置和方法 Active CN115185859B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211108420.2A CN115185859B (zh) 2022-09-13 2022-09-13 一种雷达信号处理系统及低延迟矩阵转置处理装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211108420.2A CN115185859B (zh) 2022-09-13 2022-09-13 一种雷达信号处理系统及低延迟矩阵转置处理装置和方法

Publications (2)

Publication Number Publication Date
CN115185859A CN115185859A (zh) 2022-10-14
CN115185859B true CN115185859B (zh) 2023-06-27

Family

ID=83524438

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211108420.2A Active CN115185859B (zh) 2022-09-13 2022-09-13 一种雷达信号处理系统及低延迟矩阵转置处理装置和方法

Country Status (1)

Country Link
CN (1) CN115185859B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116150055B (zh) * 2022-12-09 2023-12-29 中国科学院空天信息创新研究院 基于片上缓存的数据访问方法、装置及转置方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1828773A (zh) * 2005-03-04 2006-09-06 中国科学院计算技术研究所 多维数组在动态随机存取存储器上的快速读写方法及装置
CN102279386A (zh) * 2011-05-12 2011-12-14 西安电子科技大学 基于fpga的sar成像信号处理数据转置方法
CN105527609A (zh) * 2015-12-02 2016-04-27 西安电子工程研究所 基于dsp的pd雷达系统矩阵转置方法
CN108053855A (zh) * 2017-11-29 2018-05-18 北京时代民芯科技有限公司 一种基于sdram芯片的矩阵转置方法
CN111984563A (zh) * 2020-09-18 2020-11-24 西安电子科技大学 基于fpga的ddr3读写控制器及矩阵转置实现方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1828773A (zh) * 2005-03-04 2006-09-06 中国科学院计算技术研究所 多维数组在动态随机存取存储器上的快速读写方法及装置
CN102279386A (zh) * 2011-05-12 2011-12-14 西安电子科技大学 基于fpga的sar成像信号处理数据转置方法
CN105527609A (zh) * 2015-12-02 2016-04-27 西安电子工程研究所 基于dsp的pd雷达系统矩阵转置方法
CN108053855A (zh) * 2017-11-29 2018-05-18 北京时代民芯科技有限公司 一种基于sdram芯片的矩阵转置方法
CN111984563A (zh) * 2020-09-18 2020-11-24 西安电子科技大学 基于fpga的ddr3读写控制器及矩阵转置实现方法

Also Published As

Publication number Publication date
CN115185859A (zh) 2022-10-14

Similar Documents

Publication Publication Date Title
US8185711B2 (en) Memory module, a memory system including a memory controller and a memory module and methods thereof
KR100532640B1 (ko) 로우 및 칼럼 커맨드를 동시에 제공하기 위한 방법 및시스템
US20120246401A1 (en) In-memory processor
TWI527032B (zh) Semiconductor device
US6965980B2 (en) Multi-sequence burst accessing for SDRAM
JP2015195080A (ja) マイクロスレッドメモリ
CN108053855B (zh) 一种基于sdram芯片的矩阵转置方法
US8358557B2 (en) Memory device and method
JP2011530735A (ja) メモリモジュール内の独立制御式仮想メモリ装置
CN103928047B (zh) 具有单端口存储器单元的多读取端口存储器系统以及操作方法
CN111984563B (zh) 基于fpga的ddr3读写控制器及矩阵转置实现方法
CN115185859B (zh) 一种雷达信号处理系统及低延迟矩阵转置处理装置和方法
CN113641625B (zh) 一种基于fpga的四路并行数据处理转置系统
US8621135B2 (en) Semiconductor memory device and information data processing apparatus including the same
US5654912A (en) Semiconductor memory device with reduced read time and power consumption
US11842266B2 (en) Processing-in-memory (PIM) device, controller for controlling the PIM device, and PIM system including the PIM device and the controller
CN111966628B (zh) 一种多核组合式大容量数据同步存储方法
US9098389B2 (en) Memory system and operating method thereof
CN105045722A (zh) 一种ddr2-sdram控制器及其低延迟优化方法
WO2009125572A1 (ja) メモリ制御回路及びメモリ制御方法
CN100536021C (zh) 大容量高速缓冲存储器
KR102638793B1 (ko) 반도체장치
US6574707B2 (en) Memory interface protocol using two addressing modes and method of operation
CN113740851B (zh) 一种分时复用单ddr的sar成像数据处理系统
KR100571435B1 (ko) 메모리 디바이스 및 그 어드레스 지정 방법

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