CN110532219B - 一种基于fpga的去乒乓数据存储方法 - Google Patents

一种基于fpga的去乒乓数据存储方法 Download PDF

Info

Publication number
CN110532219B
CN110532219B CN201910553125.XA CN201910553125A CN110532219B CN 110532219 B CN110532219 B CN 110532219B CN 201910553125 A CN201910553125 A CN 201910553125A CN 110532219 B CN110532219 B CN 110532219B
Authority
CN
China
Prior art keywords
data
ram
column
reading
frame
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
CN201910553125.XA
Other languages
English (en)
Other versions
CN110532219A (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 CN201910553125.XA priority Critical patent/CN110532219B/zh
Publication of CN110532219A publication Critical patent/CN110532219A/zh
Application granted granted Critical
Publication of CN110532219B publication Critical patent/CN110532219B/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种基于FPGA的去乒乓数据存储方法,通过在FPGA中划定一个RAM,在读取上一帧部分数据后,在空出的存储空间中存储下一阵部分数据;而且奇数帧存储顺序相同,读取顺序也相同,偶数帧存储顺序相同,读取顺序相同,相对常用的乒乓存储方法,可以达到最多的节省一半的RAM,从而节省FPGA的MEM资源。

Description

一种基于FPGA的去乒乓数据存储方法
技术领域
本发明属于信号处理技术领域,具体涉及一种基于FPGA的去乒乓数据存储方法。
背景技术
在雷达、光学、图像等信号处理算法中,常常需要使用到二维数据的处理。比如,在雷达成像技术中,二维快速傅里叶变换是常用的一种计算方式。将一组二维数据定义为一帧,在处理过程中,需要先按照第一维方向处理,然后载按第二维方向处理。
在工程实现中,往往在FPGA中实现如上算法。目前常用的处理方式为,使用乒乓存储方案,使用两块片上RAM,分别作为乒RAM和乓RAM。数据按第一维方向输入,同时做流水处理,先用乒RAM缓存第1帧数据,然后用乓RAM缓存第2帧数据,同时,按第二维的方向读取乒RAM中的第1帧数据,做第二维数据的处理。乓RAM缓存完第2帧数据时,处理完乒RAM中的第1帧数据,然后用乒RAM缓存第3帧数据,同时按第二维方向处理乓RAM中的第2帧数据。依次循环,连续处理多帧数据。
按照如上方式处理数据,则需要两倍于一帧数据量的存储,对片上存储的要求会很高。
发明内容
有鉴于此,本发明的目的是提供一种基于FPGA的去乒乓数据存储方法,可以节省存储资源。
一种数据存储方法,包括如下步骤:
步骤零、假设输入的二维数据的一帧大小为M×N,即M行N列;第i行第j列元素用aij表示,将M和N写成如下关系式:
N=p×M+q
其中p为整数,且p∈[1,+∞),q为整数,且q∈[0,M-1];
在FPGA中划定大小为
Figure BDA0002106087640000021
的RAM;其中
Figure BDA0002106087640000022
表示对数据*向上取整;令
Figure BDA0002106087640000023
即RAM大小为L×N;
步骤一、针对输入数据,按照行方向,将M×N大小的二维数据缓存到所述RAM中;
步骤二、将存储到所述RAM中的第一帧数据,按照列方向,逐列进行读取;
步骤三、当读取完第p列数据时,开始往RAM中缓存第二帧数据的第1行,即:将该第1行中元素a1,1、a1,2、…a1,p顺序存放到RAM第1行的第1个数据位置、第2个数据位置…第p个数据位置;将第1行中元素a1,p+1、a1,p+2、…a1,2p顺序存放到RAM第2行的第1个数据位置、第2个数据位置…第p个数据位置;以此类推,直至元素a1,N缓存到第L行的第
Figure BDA0002106087640000024
个数据位置;
步骤四,按照步骤三的方法读取RAM中第一帧数据的第1行中第p列到第2p列数据,当读取完第2p列数据时,开始往RAM的第p+1列到2p的存储空间中,缓存第二帧数据的第2行,依次类推,直至读取完第一帧数据,并且缓存完第二帧数据;
步骤五,从第一列开始,按列读取RAM中第二帧数据,读取顺序为:a1,1、a2,1、…aM,1、a1,2、a2,2、…aM,2…a1,p、a2,p、…aM,p,即完成第二帧数据前p列数据的读取;
步骤六,当读取完第二帧数据前p列数据时,开始往RAM中缓存第三帧数据的第1行,写入顺序为:a1,1、a1,2、…a1,N,与此同时,读取第二帧数据的p+1列到第2p列,读取顺序为:a1,p+1、a2,p+1、…aM,p+1、a1,p+2、a2,p+2、…aM,p+2…a1,2p、a2,2p、…aM,2p
步骤七,往RAM中缓存第三帧数据第2行,写入顺序为:a2,1、a2,2、…a2,N,与此同时,读取第二帧数据的2p+1列到第3p列,读取顺序为:a1,2p+1、a2,2p+1、…aM,2p+1、a1,2p+2、a2,2p+2、…aM,2p+2…a1,3p、a2,3p、…aM,3p
步骤八,按照步骤七的方法,直到读取完第二帧数据,并将第三帧数据全部写入RAM;
步骤九,以此类推,步骤二到步骤八的方法,不断的对输入数据进行缓存和读取。
本发明具有如下有益效果:
本发明的一种基于FPGA的去乒乓数据存储方法,通过在FPGA中划定一个RAM,在读取上一帧部分数据后,在空出的存储空间中存储下一阵部分数据;而且奇数帧存储顺序相同,读取顺序也相同,偶数帧存储顺序相同,读取顺序相同,相对常用的乒乓存储方法,可以达到最多的节省一半的RAM,从而节省FPGA的MEM资源。
附图说明
图1为原始二维数据示意图;
图2为第1帧数据在RAM中的排列顺序示意图;
图3为向RAM中写入第2帧数据第1行后的数据排列顺序示意图;
图4为向RAM中写完第2帧数据之后的数据排列顺序示意图;
图5为第2帧数据读取顺序示意图;
图6为向RAM中写入第3帧数据第1行后的数据排列顺序示意图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
一种去乒乓的二维数据存储方法,假设输入的二维数据规格为M×N,即M行N列,并定义其为一帧数据,第i行第j列元素用aij表示,M和N可以用如下关系式表示:
N=p×M+q
其中p为整数,且p∈[1,+∞),q为整数,且q∈[0,M-1]。
需要使用的RAM大小为
Figure BDA0002106087640000041
其中
Figure BDA0002106087640000042
表示对数据*向上取整,为了方便表示,令
Figure BDA0002106087640000043
即RAM大小为L×N。
具体处理包括如下步骤:
步骤一、输入数据按照第一个维度,即行方向,进入FPGA,流水处理后,缓存到RAM中;以此类推,直至缓存完M行的数据,即缓存一帧的数据量。
步骤二、按照第二个维度,即列方向,读取RAM中的数据,进行第二维数据处理,读取顺序为:第1列、第2列、第3列,以此类推,读完N列数据。
步骤三、当读取完第p列数据时,开始往RAM中缓存第2帧数据的第1行,缓存顺序为:a1,1、a1,2、…a1,p分别存放到RAM第1行的第1个数据位置、第2个数据位置…第p个数据位置;a1,p+1、a1,p+2、…a1,2p分别存放到RAM第2行的第1个数据位置、第2个数据位置…第p个数据位置;以此类推,直至a1,N缓存到第L行的第
Figure BDA0002106087640000044
个数据位置。
步骤四,重复步骤三,当读取完第2p列数据时,开始往RAM的第p+1列到2p的存储空间中,缓存第2帧数据的第2行,依次类推,直至读取完第一帧数据,并且缓存完第二帧数据。
步骤五,按数据的第二维方向读取第2帧数据,读取顺序为:a1,1、a2,1、…aM,1、a1,2、a2,2、…aM,2…a1,p、a2,p、…aM,p,即完成第2帧数据前p列数据的读取。
步骤六,当读取完第2帧数据前p列数据时,开始往RAM中缓存第3帧数据第1行,写入顺序为:a1,1、a1,2、…a1,N,于此同时,读取第2帧数据的p+1列到第2p列,读取顺序为:a1,p+1、a2,p+1、…aM,p+1、a1,p+2、a2,p+2、…aM,p+2…a1,2p、a2,2p、…aM,2p
步骤七,往RAM中缓存第3帧数据第2行,写入顺序为:a2,1、a2,2、…a2,N,于此同时,读取第2帧数据的2p+1列到第3p列,读取顺序为:a1,2p+1、a2,2p+1、…aM,2p+1、a1,2p+2、a2,2p+2、…aM,2p+2…a1,3p、a2,3p、…aM,3p
步骤八,重复步骤七,直到读取完第2帧数据,并将第3帧数据全部写入RAM。此时第3帧数据在RAM中的存储顺序与第1帧数据相同,因此实现奇数帧数据在RAM的存储顺序相同,读取顺序也相同,同样偶数帧数据在RAM中的存储顺序相同,读取顺序也相同。
步骤九,重复步骤二到步骤八,实现去乒乓MEM的多帧数据的缓存与读取。
实施例:
如图1所示,需要处理的数据为二维数据,数据规格为M行N列,横向为第一维度,纵向为第二维度,数据处理时,先按照第一维度方向处理每行数据,然后再按第二维度方向处理每列数据,算法实现时,输入数据按照第一维度方向,一行一行依次输入FPGA。其中N令M和N关系为:N=p*M+q,公式中p为整数,且p∈[1,+∞),q为整数,且q∈[0,M-1]。
如图2所示,需要使用的RAM大小为N*L,其中
Figure BDA0002106087640000051
(
Figure BDA0002106087640000052
表示对数据*向上取整),第1帧数据输入FPGA,经过流水处理后,存到RAM中,其中RAM中只有M行的存储空间缓存有效数据,后L-M行没有数据写入,则为无效数据。
如图3所示,进行第二维数据处理时,按照列的方向一列一列读取第1帧数据,进行第二维方向数据处理,当读取完p列数据之后,可以缓存第2帧数据第1行,缓存顺序为:a1,1、a1,2、…a1,p分别存放到RAM第1行的第1个数据位置、第2个数据位置…第p个数据位置;a1,p+1、a1,p+2、…a1,2p分别存放到RAM第2行的第1个数据位置、第2个数据位置…第p个数据位置;以此类推,直至a1,N缓存到第L行的第
Figure BDA0002106087640000061
个数据位置。
如图4所示,按列读取完第1帧数据后,按照图3中缓存第2帧数据第1行的方式,缓存第2帧剩下的数据。
如图5所示,读取第2帧数据时,按第2帧数据的列方向读取,即读取顺序为:a1,1、a2,1、…aM,1、a1,2、a2,2、…aM,2…a1,p、a2,p、…aM,p
如图6所示,当读取完第2帧数据的前p列时,向RAM的第一行存储空间写入第3帧数据,写入顺序为a1,1、a1,2、…a1,N
以此类推,直到第2帧数据全部读完,第3帧数据全部缓存,其缓存顺序同图2,即与第1帧数据存储顺序相同。从而,在存储顺序和读取顺序上可以形成循环,奇数帧存储顺序和读取顺序相同,偶数帧存储顺序和读取顺序相同。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (1)

1.一种数据存储方法,其特征在于,包括如下步骤:
步骤零、当输入的二维数据的一帧大小为M×N,即M行N列;第i行第j列元素用ai,j表示,将M和N写成如下关系式:
N=p×M+q
其中p为整数,且p∈[1,+∞),q为整数,且q∈[0,M-1];
在FPGA中划定大小为
Figure FDA0002928706760000011
的RAM;其中
Figure FDA0002928706760000012
表示对数据*向上取整;令
Figure FDA0002928706760000013
即RAM大小为L×N;
步骤一、针对输入数据,按照行方向,将M×N大小的二维数据缓存到所述RAM中;
步骤二、将存储到所述RAM中的第一帧数据,按照列方向,逐列进行读取;
步骤三、当读取完第p列数据时,开始往RAM中缓存第二帧数据的第1行,即:将该第1行中元素a1,1、a1,2、…a1,p顺序存放到RAM第1行的第1个数据位置、第2个数据位置…第p个数据位置;将第1行中元素a1,p+1、a1,p+2、…a1,2p顺序存放到RAM第2行的第1个数据位置、第2个数据位置…第p个数据位置;以此类推,直至元素a1,N缓存到第L行的第
Figure FDA0002928706760000014
个数据位置;
步骤四,按照步骤三的方法读取RAM中第一帧数据的第1行中第p列到第2p列数据,当读取完第2p列数据时,开始往RAM的第p+1列到2p的存储空间中,缓存第二帧数据的第2行,依次类推,直至读取完第一帧数据,并且缓存完第二帧数据;
步骤五,从第一列开始,按列读取RAM中第二帧数据,读取顺序为:a1,1、a2,1、…aM,1、a1,2、a2,2、…aM,2…a1,p、a2,p、…aM,p,即完成第二帧数据前p列数据的读取;
步骤六,当读取完第二帧数据前p列数据时,开始往RAM中缓存第三帧数据的第1行,写入顺序为:a1,1、a1,2、…a1,N,与此同时,读取第二帧数据的p+1列到第2p列,读取顺序为:a1,p+1、a2,p+1、…aM,p+1、a1,p+2、a2,p+2、…aM,p+2…a1,2p、a2,2p、…aM,2p
步骤七,往RAM中缓存第三帧数据第2行,写入顺序为:a2.1、a2,2、…a2,N,与此同时,读取第二帧数据的2p+1列到第3p列,读取顺序为:a1,2p+1、a2,2p+1、…aM,2p+1、a1,2p+2、a2,2p+2、…aM,2p+2…a1,3p、a2,3p、…aM,3p
步骤八,按照步骤七的方法,直到读取完第二帧数据,并将第三帧数据全部写入RAM;
步骤九,以此类推,步骤二到步骤八的方法,不断的对输入数据进行缓存和读取。
CN201910553125.XA 2019-06-25 2019-06-25 一种基于fpga的去乒乓数据存储方法 Active CN110532219B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910553125.XA CN110532219B (zh) 2019-06-25 2019-06-25 一种基于fpga的去乒乓数据存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910553125.XA CN110532219B (zh) 2019-06-25 2019-06-25 一种基于fpga的去乒乓数据存储方法

Publications (2)

Publication Number Publication Date
CN110532219A CN110532219A (zh) 2019-12-03
CN110532219B true CN110532219B (zh) 2021-04-27

Family

ID=68659874

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910553125.XA Active CN110532219B (zh) 2019-06-25 2019-06-25 一种基于fpga的去乒乓数据存储方法

Country Status (1)

Country Link
CN (1) CN110532219B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113873255B (zh) * 2021-12-06 2022-02-18 苏州浪潮智能科技有限公司 一种视频数据传输方法、视频数据解码方法及相关装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102982507A (zh) * 2012-10-30 2013-03-20 广东威创视讯科技股份有限公司 视频图像处理的方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4097852B2 (ja) * 1999-08-26 2008-06-11 株式会社フィリップスエレクトロニクスジャパン データ書込読出方法、デインターリーブ方法、データ処理方法、メモリ、及びメモリ駆動装置
JP4547224B2 (ja) * 2004-09-28 2010-09-22 株式会社日立国際電気 デジタル移動無線通信方式
CN101599167B (zh) * 2008-06-03 2013-02-20 株式会社理光 存储器的存取方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102982507A (zh) * 2012-10-30 2013-03-20 广东威创视讯科技股份有限公司 视频图像处理的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种新的数字图像分存方法;王继军 等;《计算机工程与应用》;20071101;第43卷(第31期);第79-81,122页 *

Also Published As

Publication number Publication date
CN110532219A (zh) 2019-12-03

Similar Documents

Publication Publication Date Title
WO2019136764A1 (zh) 卷积器及其所应用的人工智能处理装置
EP2446413B1 (en) Apparatus and method for displaying a warped version of a source image
WO2019076108A1 (zh) 卷积神经网络运算电路
CN108573305B (zh) 一种数据处理方法、设备及装置
KR101550831B1 (ko) 영상 최적화 롤링 캐시 시스템
CN107748723B (zh) 支持无冲突跨步按块访问的存储方法及访存装置
JP2010521728A (ja) データ圧縮のための回路及びこれを用いるプロセッサ
WO2019128548A1 (zh) 一种信号处理方法及装置
CN111984189B (zh) 神经网络计算装置和数据读取、数据存储方法及相关设备
CN110032538B (zh) 一种数据读取***和方法
WO2022016925A1 (zh) 神经网络计算装置
CN111626405A (zh) 一种cnn加速方法、加速装置及计算机可读存储介质
CN110532219B (zh) 一种基于fpga的去乒乓数据存储方法
KR20230081697A (ko) 팽창 컨볼루션 계산 가속화 방법 및 장치
CN105488753A (zh) 一种对图像进行二维傅立叶变换或反变换的方法及装置
JP5359569B2 (ja) メモリのアクセス方法
CN109416743B (zh) 一种用于识别人为动作的三维卷积装置
CN108920097B (zh) 一种基于交织存储的三维数据处理方法
CN110322389B (zh) 池化方法、装置及***、计算机可读存储介质
US20190303705A1 (en) Pooling method and device, pooling system, computer-readable storage medium
CN116010313A (zh) 一种通用、可配置的图像滤波计算多行输出***和方法
CN111831207B (zh) 一种数据处理方法、装置及其设备
US20120254573A1 (en) System, data structure, and method for collapsing multi-dimensional data
JP7234000B2 (ja) 2次元画像をアフィン変換するための画像データ処理装置
CN111737169B (zh) 一种基于edma的大容量高速行列输出缓存结构的实现方法

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