CN112882657B - 数据读取方法及装置、存储介质、电子装置 - Google Patents

数据读取方法及装置、存储介质、电子装置 Download PDF

Info

Publication number
CN112882657B
CN112882657B CN202110178956.0A CN202110178956A CN112882657B CN 112882657 B CN112882657 B CN 112882657B CN 202110178956 A CN202110178956 A CN 202110178956A CN 112882657 B CN112882657 B CN 112882657B
Authority
CN
China
Prior art keywords
data
rams
ram
write
row
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
CN202110178956.0A
Other languages
English (en)
Other versions
CN112882657A (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.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua 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 Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202110178956.0A priority Critical patent/CN112882657B/zh
Publication of CN112882657A publication Critical patent/CN112882657A/zh
Application granted granted Critical
Publication of CN112882657B publication Critical patent/CN112882657B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Input (AREA)

Abstract

本发明实施例提供了一种数据读取方法及装置、存储介质、电子装置,该方法包括:按照确定的写地址将获取的N个数据依次写入M个随机存取存储器RAM中,其中,M和N是大于或等于1的自然数,M个RAM中每个RAM中均包括M个存储地址;在第K个数据写入至第M个RAM时,按照时钟周期同时从M个RAM的M行中读取存储的数据。通过本发明,解决了相关技术中对数据的读写操作效率不高的问题,达到提高数据读写效率的效果。

Description

数据读取方法及装置、存储介质、电子装置
技术领域
本发明实施例涉及通信领域,具体而言,涉及一种数据读取方法及装置、存储介质、电子装置。
背景技术
在视频图像旋转功能实现过程中,经常会使用一个方法是:以双倍数据速率(Double Data Rate,简称为DDR)内部存储的视频数据格式为YUV422为例,首先将存储在DDR的视频数据划分成若干个块(每个块m*n,n为高度,m为宽度,n的单位为行,m的单位为2字节),并将小块内的数据按行依次读出到FPGA内部自带的先进先出(First In FirstOut,简称为FIFO)数组中,每个块中同一行的数据存储在同一个FIFO中(读完第一行再读第二行,以此类推,直到读完每个块的最后一行);其次对FIFO数组同时进行读操作,将FIFO数组输出的数据拼接成多位宽数据(16*n,该值与DDR控制器的用户接口位宽的数值一致)写入到DDR新开辟存储空间的中,最终完成所选块的翻转操作。
现有方案里,为了保证数据不被覆盖而丢失数据,一般有两种方式:
采用乒乓操作的方式,即需要开辟两个存储单元,当对Memory0-FIFO数组进行写操作时,对Memory1-FIFO数组进行读操作,当对Memory0进行读操作时,对Memory1进行写操作。读写操作是同步进行的,采用这种方法数据不会被覆盖,确保从存储单元中取出的数据块是正确的。
采用读写分开进行,开辟一个存储单元,首先将需要旋转视频数据按块依次读出放置在Memory中,当Memory写满后,将Memory中的数据依次按序读出执行旋转操作。当Memory中所有数据均被读出后,再开启Memory写操作。如此读写循环,直到所有需要旋转的视频数据均被操作完毕。
现有的技术方案中,存在着对数据的读写操作效率不高的问题。
发明内容
本发明实施例提供了一种数据读取方法及装置、存储介质、电子装置,以至少解决相关技术中对数据的读写操作效率不高的问题。
根据本发明的一个实施例,提供了一种数据读取方法,包括:按照确定的写地址将获取的N个数据依次写入M个随机存取存储器RAM中,其中,上述M和上述N是大于或等于1的自然数,上述M个RAM中每个RAM中均包括M个存储地址;在第K个数据写入至第M个RAM时,按照时钟周期同时从上述M个RAM的M行中读取存储的数据。
根据本发明的另一个实施例,提供了一种数据读取装置,包括:第一写入模块,用于按照确定的写地址将获取的N个数据依次写入M个随机存取存储器RAM中,其中,上述M和上述N是大于或等于1的自然数,上述M个RAM中每个RAM中均包括M个存储地址;第一读取模块,用于在第K个数据写入至第M个RAM时,按照时钟周期同时从上述M个RAM的M行中读取存储的数据。
在一个示例性实施例中,上述装置还包括:第一确定模块,用于按照确定的写地址将获取的N个数据依次写入M个随机存取存储器RAM中之前,利用上述M个RAM中的行计数器和上述M个RAM中每行的像素计数器确定上述M个RAM的写地址。
在一个示例性实施例中,上述第一确定模块,包括:第一确定单元,用于确定上述行计数器计数的每个周期;第二确定单元,用于将上述行计数器在上述每个周期的计数与上述每行的像素计数器的计数之间累加的和值,确定为上述M个RAM在上述每个周期的写地址,得到上述M个RAM的写地址。
在一个示例性实施例中,上述第一写入模块,包括:第三确定单元,用于确定上述M个RAM中每个RAM的写使能的值;第一写入单元,用于在基于上述每个RAM的写使能的值确定上述每个RAM被选通的情况下,将上述N个数据写入上述每个RAM中。
在一个示例性实施例中,上述第一读取模块,包括:第一读取单元,用于在第K个数据写入至第M个RAM时,在每个时钟周期内从上述M个RAM中读取每行数据,其中,一个时钟周期对应上述M个RAM中的一行数据。
在一个示例性实施例中,上述装置还包括:第二确定模块,用于在第K个数据写入至第M个RAM时,按照时钟周期同时从上述M个RAM的M行中读取存储的数据之后,变换上述写地址,得到变换后的写地址;第二写入模块,用于按照上述变换后的写地址将获取的数据写入至上述M个RAM中被读取数据的存储空间中。
根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,由于按照确定的写地址将获取的N个数据依次写入M个随机存取存储器RAM中,其中,M和N是大于或等于1的自然数,M个RAM中每个RAM中均包括M个存储地址;在第K个数据写入至第M个RAM时,按照时钟周期同时从M个RAM的M行中读取存储的数据。实现了在RAM中同时读写数据的目的。因此,可以解决相关技术中对数据的读写操作效率不高的问题,达到提高数据读写效率的效果。
附图说明
图1是本发明实施例的一种数据读取方法的移动终端的硬件结构框图;
图2是根据本发明实施例的数据读取方法的流程图;
图3是根据本发明实施例的DDR内数据分块示意图;
图4是根据本发明实施例的DDR内块数据读取顺序示意图;
图5是根据本发明实施例的数据存储方式示意图(一);
图6是根据本发明实施例的数据存储方式示意图(二);
图7是根据本发明实施例的数据读取装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明的实施例。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种数据读取方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的数据读取方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种数据读取方法,图2是根据本发明实施例的数据读取方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,按照确定的写地址将获取的N个数据依次写入M个随机存取存储器RAM中,其中,M和N是大于或等于1的自然数,M个RAM中每个RAM中均包括M个存储地址;
步骤S204,在第K个数据写入至第M个RAM时,按照时钟周期同时从M个RAM的M行中读取存储的数据。
其中,上述步骤的执行主体可以为服务器等,但不限于此。
本实施例包括但不限于应用于对数据进行读写的场景中。例如,将视频数据从DDR写入至RAM中,然后读取写入的视频数据。
在本实施例中,M个随机存取存储器(Random Access Memory,简称为RAM)可以是16个深度为16位宽为16的RAM。本实施例中RAM的位宽与视频像素位宽保持一致,利用RAM可以控制存储器的读写地址。
通过上述步骤,由于按照确定的写地址将获取的N个数据依次写入M个随机存取存储器RAM中,其中,M和N是大于或等于1的自然数,M个RAM中每个RAM中均包括M个存储地址;在第K个数据写入至第M个RAM时,按照时钟周期同时从M个RAM的M行中读取存储的数据。实现了在RAM中同时读写数据的目的。因此,可以解决相关技术中对数据的读写操作效率不高的问题,达到提高数据读写效率的效果。
在一个示例性实施例中,按照确定的写地址将获取的N个数据依次写入M个随机存取存储器RAM中之前,方法还包括:
S1,利用M个RAM中的行计数器和M个RAM中每行的像素计数器确定M个RAM的写地址。
在一个示例性实施例中,利用M个RAM中的行计数器和M个RAM中每行的像素计数器确定M个RAM的写地址,包括:
S1,确定行计数器计数的每个周期;
S2,将行计数器在每个周期的计数与每行的像素计数器的计数之间累加的和值,确定为M个RAM在每个周期的写地址,得到M个RAM的写地址。
在本实施例中,行计数器可以是16行一个周期。
在一个示例性实施例中,按照确定的写地址将获取的N个数据依次写入M个随机存取存储器RAM中,包括:
S1,确定M个RAM中每个RAM的写使能以及所述每个RAM的写选通信号使能的值;
S2,在基于每个RAM的写使能以及所述每个RAM的写选通信号使能的值确定每个RAM被选通的情况下,将N个数据写入每个RAM中。
在本实施例中,写使能为高,且写选通信号使能的值为0时,表示RAM被选通,可以被写入。
在一个示例性实施例中,在第K个数据写入至第M个RAM时,按照时钟周期同时从M个RAM的M行中读取存储的数据,包括:
S1,在第K个数据写入至第M个RAM时,在每个时钟周期内从M个RAM中读取每行数据,其中,一个时钟周期对应M个RAM中的一行数据。
在本实施例中,在一个时钟周期内读取一行数据。
在一个示例性实施例中,在第K个数据写入至第M个RAM时,按照时钟周期同时从M个RAM的M行中读取存储的数据之后,方法还包括:
S1,变换写地址,得到变换后的写地址;
S2,按照变换后的写地址将获取的数据写入至M个RAM中被读取数据的存储空间中。
下面结合具体实施例对本发明进行说明:
本实施例以双倍速率同步动态随机存储器(Double Data Rate,简称为DDR)内部存储的视频数据格式为YUV422为例,数据分块大小为16*16(m=16,n=16),现场可编程门阵列(Field Programmable Gate Array,简称为FPGA)内部DDR控制器用户侧接口位宽为256bit,读写猝发长度为1。在本实施例中,DDR内数据分块如图3所示。
本实施例定义16个深度为16位宽为16(RAM的位宽与视频像素位宽保持一致)的RAM(采用RAM,而不是FIFO,目的是控制存储器的读写地址)。如图4所示,DDR内部分块数据的存储方式,开启DDR块数据读取后,用户依次将块数据中第一行到第2十六行的数据读出到FPGA本地存储单元中。具体包括以下步骤:
步骤1:块数据搬运开始后,用户将块内的16行数据依次写入RAM,具体的存储方式如5图所示。由于RAM的深度为16,定义写地址的位宽为4bits,写地址变量名为wr_addr[3:0],RAM写使能ram_wen(该信号与用户搬运16行数据的数据使能信号一致),RAM写选通信号使能ram_sel[3:0](当ram_wen为高时,且ram_sel[3:0]值为0时,表示第一个RAM被选通,可以被写入;当ram_wen为高时,ram_sel[3:0]值为1时,表示第二个RAM被选通,可以被写入;以此类推。若ram_wen为低,所有RAM写通道均不会被选通),每行的像素计数器h_cnt[3:0],16行一个周期的行计数器v_cnt[3:0],则初始写地址的计算可以为:wr_addr[3:0]=v_cnt[3:0];ram_sel[3:0]=h_cnt[3:0]+v_cnt[3:0]。
由于定义了h_cnt、v_cnt和ram_sel的位宽均为4bit,h_cnt和v_cnt的和会遵照16进制方式生成(累加到15后,从0开始)。当第16行的第一个像素(如图4所示的241)存入RAM后开始16个RAM同时读取,第一个时钟同时读取源图每一行的第一个像素,第二个时钟周期读取源图每一行的第二个像素,第十个时钟周期读取源图每一行的第十个像素…直到第16个时钟周期,本轮源图存储在RAM中所有数据均被读空,在RAM读空前的上一个周期第16行的最后一个数据被写入。
定义读地址的位宽为4bits,每个RAM的读地址变量名分别为rd_addr_0[3:0]、rd_addr_1[3:0]、rd_addr_2[3:0]、rd_addr_3[3:0]、rd_addr_4[3:0]、rd_addr_5[3:0]、rd_addr_6[3:0]、rd_addr_7[3:0]、rd_addr_8[3:0]、rd_addr_9[3:0]、rd_addr_10[3:0]、rd_addr_11[3:0]、rd_addr_12[3:0]、rd_addr_13[3:0]、rd_addr_14[3:0]、rd_addr_15[3:0],RAM读使能rden(rden值为1时,表示所有RAM被选通,可以被读出;rden值为0时,表示所有RAM不被选通,不可以被读出),由于16个RAM同时进行读操作,因此此处无需再定义RAM读选通信号。
定义读像素计数器为rd_cnt[3:0],当第16行的第一个像素(图4所示的241)存入RAM后下一时钟周期rden设置为1,高电平持续一个周期,rd_cnt从0开始累加,累加步长为1,待第16行第二个像素(图4所示的242)存入RAM后下一个时钟周期rden设置为1,高电平持续一个周期,rd_cnt继续累加,步长为1;依此类推,当第16行的最后一个数据被写入的下一个时钟周期,rden设置为1,高电平持续一个周期,rd_cnt被累加到15。
定义16个4bit的累加数拼接成一个64bit的变量为alu_para(该变量上电初始值为{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}),以当前rd_cnt的值进行四比特循环移位,当rd_cnt为0时,64bit数据保持不变;当rd_cnt为1时,alu_para向右循环移4位,结果为{15,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};以此类推,当rd_cnt为15时,alu_para的值为结果为{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0}。
基于上面描述,每个RAM的读地址计算方式为:rd_addr_0~rd_addr_15分别对应着alu_para变量中的4bit数据,其中rd_addr_0对应着[63:60],rd_addr_1对应着[59:56],以此类推rd_addr_15对应着[3:0]。
步骤2:第一轮16*16的块RAM读写操作结束后,紧接着下一轮的16*16的块数据按行依次被写入RAM,为了确保数据不被覆盖而产生数据错误,必须将第二轮的16行数据存入已经被读取的前16行的存储空间中,具体的存储方式如图6所示。为了将数据存入已被读取的地址空间,需要对写地址进行变换。
wr_addr[3:0]=h_cnt[3:0];ram_sel[3:0]=h_cnt[3:0]+v_cnt[3:0];由于定义了h_cnt、v_cnt和ram_sel的位宽均为4bit,h_cnt和v_cnt的和会遵照16进制方式生成(累加到15后,从0开始)。由于读写的同步性,写数据不会覆盖未读取的数据。当第16行的第一个像素(如图4所示的241)存入RAM后开始16个RAM同时读取,第一个时钟同时读取源图每一行的第一个像素,第二个时钟周期读取源图每一行的第二个像素,第十个时钟周期读取源图每一行的第十个像素…直到第16个时钟周期,本轮源图存储在RAM中所有数据均被读空,在RAM读空前的上一个周期第16行的最后一个数据被写入。
基于上面描述,本轮每个RAM的读地址计算方式为:rd_addr_0~rd_addr_0均等于rd_cnt。所有RAM读出的数据拼接成256时需要进行移位操作,移位的策略是:第一个时钟周期即rd_cnt为0时读出的256bit不用移位,第二个时钟周期即rd_cnt为1时读出的256bit,循环移位16bit,最高的16bit移动到最低16bit上;rd_cnt为2时读出的256bit循环移位32bit,最高的32bit移动到最低32bit上;以此类推,rd_cnt为15时,读出的256bit循环移位240bit,最高的240bit移动到最低240bit上。
步骤3:第二轮16*16的块RAM读写操作结束后,紧接着下一轮的16*16的块数据按行依次被写入RAM,为了确保数据不被覆盖而产生数据错误,必须将第三轮的16行数据存入已经被读取的前16行的存储空间中。观察图6可知,第三轮的操作方式与第一轮的一致,第四轮的操作方式与第二轮一致,整个过程不断循环,直到系统下电,停止工作。
综上所述,本实施例可以实现读写操作同步,提高了DDR内部数据块处理的效率。并且,本实施例采用分块处理的方式替代数据行存的方式,可以节省大量RAM资源。本实施例通过不断地变化读写地址,将从DDR读出的视频数据存入已经读取数据的地址空间,利用读写操作的同步性,避免了未读取的数据被覆盖。充分利用了RAM空置状态下的空间资源。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种数据读取装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图7是根据本发明实施例的数据读取装置的结构框图,如图7所示,该装置包括:
第一写入模块72,用于按照确定的写地址将获取的N个数据依次写入M个随机存取存储器RAM中,其中,M和N是大于或等于1的自然数,M个RAM中每个RAM中均包括M个存储地址;
第一读取模块74,用于在第K个数据写入至第M个RAM时,按照时钟周期同时从M个RAM的M行中读取存储的数据。
在一个示例性实施例中,上述装置还包括:第一确定模块,用于按照确定的写地址将获取的N个数据依次写入M个随机存取存储器RAM中之前,利用上述M个RAM中的行计数器和上述M个RAM中每行的像素计数器确定上述M个RAM的写地址。
在一个示例性实施例中,上述第一确定模块,包括:
第一确定单元,用于确定上述行计数器计数的每个周期;
第二确定单元,用于将上述行计数器在上述每个周期的计数与上述每行的像素计数器的计数之间累加的和值,确定为上述M个RAM在上述每个周期的写地址,得到上述M个RAM的写地址。
在一个示例性实施例中,上述第一写入模块,包括:
第三确定单元,用于确定上述M个RAM中每个RAM的写使能的值;
第一写入单元,用于在基于上述每个RAM的写使能的值确定上述每个RAM被选通的情况下,将上述N个数据写入上述每个RAM中。
在一个示例性实施例中,上述第一读取模块,包括:
第一读取单元,用于在第K个数据写入至第M个RAM时,在每个时钟周期内从上述M个RAM中读取每行数据,其中,一个时钟周期对应上述M个RAM中的一行数据。
在一个示例性实施例中,上述装置还包括:
第二确定模块,用于在第K个数据写入至第M个RAM时,按照时钟周期同时从上述M个RAM的M行中读取存储的数据之后,变换上述写地址,得到变换后的写地址;
第二写入模块,用于按照上述变换后的写地址将获取的数据写入至上述M个RAM中被读取数据的存储空间中。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,按照确定的写地址将获取的N个数据依次写入M个随机存取存储器RAM中,其中,M和N是大于或等于1的自然数,M个RAM中每个RAM中均包括M个存储地址;
S2,在第K个数据写入至第M个RAM时,按照时钟周期同时从M个RAM的M行中读取存储的数据。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
在一个示例性实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,按照确定的写地址将获取的N个数据依次写入M个随机存取存储器RAM中,其中,M和N是大于或等于1的自然数,M个RAM中每个RAM中均包括M个存储地址;
S2,在第K个数据写入至第M个RAM时,按照时钟周期同时从M个RAM的M行中读取存储的数据。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种数据读取方法,其特征在于,包括:
按照确定的写地址将获取的N个数据依次写入M个随机存取存储器RAM中,其中,所述M和所述N是大于或等于1的自然数,所述M个RAM中每个RAM中均包括M个存储地址;
在第K个数据写入至第M个RAM时,按照时钟周期同时从所述M个RAM的M行中读取存储的数据;
其中,所述在第K个数据写入至第M个RAM时,按照时钟周期同时从所述M个RAM的M行中读取存储的数据,包括:在第K个数据写入至第M个RAM时,在每个时钟周期内从所述M个RAM中读取每行数据中的每一个像素,其中,一个时钟周期对应所述M个RAM中的一行数据;
按照确定的写地址将获取的N个数据依次写入M个随机存取存储器RAM中,包括:确定所述M个RAM中每个RAM的写使能以及所述每个RAM的写选通信号使能的值;在基于每个RAM的写使能以及所述每个RAM的写选通信号使能的值确定每个RAM被选通的情况下,将N个数据写入每个RAM中,其中,每个所述RAM的位宽与视频像素位宽保持一致。
2.根据权利要求1所述的方法,其特征在于,按照确定的写地址将获取的N个数据依次写入M个随机存取存储器RAM中之前,所述方法还包括:
利用所述M个RAM中的行计数器和所述M个RAM中每行的像素计数器确定所述M个RAM的写地址。
3.根据权利要求2所述的方法,其特征在于,利用所述M个RAM中的行计数器和所述M个RAM中每行的像素计数器确定所述M个RAM的写地址,包括:
确定所述行计数器计数的每个周期;
将所述行计数器在所述每个周期的计数与所述每行的像素计数器的计数之间累加的和值,确定为所述M个RAM在所述每个周期的写地址,得到所述M个RAM的写地址。
4.根据权利要求1所述的方法,其特征在于,在第K个数据写入至第M个RAM时,按照时钟周期同时从所述M个RAM的M行中读取存储的数据之后,所述方法还包括:
变换所述写地址,得到变换后的写地址;
按照所述变换后的写地址将获取的数据写入至所述M个RAM中被读取数据的存储空间中。
5.一种数据读取装置,其特征在于,包括:
第一写入模块,用于按照确定的写地址将获取的N个数据依次写入M个随机存取存储器RAM中,其中,所述M和所述N是大于或等于1的自然数,所述M个RAM中每个RAM中均包括M个存储地址;
第一读取模块,用于在第K个数据写入至第M个RAM时,按照时钟周期同时从所述M个RAM的M行中读取存储的数据;
其中,所述第一读取模块,还用于在第K个数据写入至第M个RAM时,在每个时钟周期内从所述M个RAM中读取每行数据中的每一个像素,其中,一个时钟周期对应所述M个RAM中的一行数据;
所述第一写入模块,还用于确定所述M个RAM中每个RAM的写使能以及所述每个RAM的写选通信号使能的值;在基于每个RAM的写使能以及所述每个RAM的写选通信号使能的值确定每个RAM被选通的情况下,将N个数据写入每个RAM中,其中,每个所述RAM的位宽与视频像素位宽保持一致。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至4任一项中所述的方法。
7.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至4任一项中所述的方法。
CN202110178956.0A 2021-02-08 2021-02-08 数据读取方法及装置、存储介质、电子装置 Active CN112882657B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110178956.0A CN112882657B (zh) 2021-02-08 2021-02-08 数据读取方法及装置、存储介质、电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110178956.0A CN112882657B (zh) 2021-02-08 2021-02-08 数据读取方法及装置、存储介质、电子装置

Publications (2)

Publication Number Publication Date
CN112882657A CN112882657A (zh) 2021-06-01
CN112882657B true CN112882657B (zh) 2023-07-14

Family

ID=76056234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110178956.0A Active CN112882657B (zh) 2021-02-08 2021-02-08 数据读取方法及装置、存储介质、电子装置

Country Status (1)

Country Link
CN (1) CN112882657B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461934A (zh) * 2014-11-07 2015-03-25 北京海尔集成电路设计有限公司 一种适合ddr存储器的时域解卷积交织装置及方法
CN106101712A (zh) * 2016-06-13 2016-11-09 浙江大华技术股份有限公司 一种视频流数据的处理方法及装置
CN111367495A (zh) * 2020-03-06 2020-07-03 电子科技大学 一种异步先入先出的数据缓存控制器
CN111400205A (zh) * 2020-02-29 2020-07-10 华南理工大学 一种先进先出地址轮询缓存读写方法、系统及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461934A (zh) * 2014-11-07 2015-03-25 北京海尔集成电路设计有限公司 一种适合ddr存储器的时域解卷积交织装置及方法
CN106101712A (zh) * 2016-06-13 2016-11-09 浙江大华技术股份有限公司 一种视频流数据的处理方法及装置
CN111400205A (zh) * 2020-02-29 2020-07-10 华南理工大学 一种先进先出地址轮询缓存读写方法、系统及装置
CN111367495A (zh) * 2020-03-06 2020-07-03 电子科技大学 一种异步先入先出的数据缓存控制器

Also Published As

Publication number Publication date
CN112882657A (zh) 2021-06-01

Similar Documents

Publication Publication Date Title
US11438544B2 (en) Image transmission device and method including an image data receiver and a processor
CN108733344A (zh) 数据读写方法、装置以及环形队列
US20060282717A1 (en) Memory device
CN102044062B (zh) 基于图像块处理实现图像xy轴镜像和180度旋转系统
CN111683251A (zh) 一种视频数据存储方法、装置和计算机可读存储介质
CN114527953B (zh) 存储器数据处理系统、方法、装置、计算机设备和介质
CN110868458B (zh) 一种用于稳定控制系统的通信方法及装置
CN105577985B (zh) 一种数字图像处理系统
CN112882657B (zh) 数据读取方法及装置、存储介质、电子装置
CN105094742B (zh) 一种写数据的方法和设备
CN106776374B (zh) 一种基于fpga的高效数据缓冲方法
CN110019347A (zh) 一种区块链的数据处理方法、装置及终端设备
CN112764673B (zh) 高光谱线阵数据存储速率优化方法、装置和存储介质
CN109739805B (zh) 配置模块的参数的方法和配置模块的参数的装置
CN114422801B (zh) 优化视频压缩控制逻辑的方法、系统、设备和存储介质
CN116204461A (zh) 数据位宽变换方法及系统
CN112637602B (zh) 一种jpeg接口及数字图像处理系统
CN115205099A (zh) 图像数据传输方法、装置和电子设备
CN105117353A (zh) 带有通用数据交互模块的fpga及采用该fpga的信息处理系统
CN115243047A (zh) 一种视频压缩方法、装置、设备及介质
CN106708457A (zh) 用于dmd动态选区的fpga处理模块及其方法
CN113821256A (zh) 数据读写方法、装置、计算机设备和存储介质
CN113658049A (zh) 一种图像转置的方法、设备和计算机可读存储介质
US11010661B2 (en) Neural network chip, method of using neural network chip to implement de-convolution operation, electronic device, and computer readable storage medium
CN117119579B (zh) 天线数据的处理方法、装置、设备及存储介质

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