CN111831212A - 一种数据写入、读取方法、装置及设备 - Google Patents

一种数据写入、读取方法、装置及设备 Download PDF

Info

Publication number
CN111831212A
CN111831212A CN201910318096.9A CN201910318096A CN111831212A CN 111831212 A CN111831212 A CN 111831212A CN 201910318096 A CN201910318096 A CN 201910318096A CN 111831212 A CN111831212 A CN 111831212A
Authority
CN
China
Prior art keywords
data
address
memory
written
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.)
Granted
Application number
CN201910318096.9A
Other languages
English (en)
Other versions
CN111831212B (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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201910318096.9A priority Critical patent/CN111831212B/zh
Publication of CN111831212A publication Critical patent/CN111831212A/zh
Application granted granted Critical
Publication of CN111831212B publication Critical patent/CN111831212B/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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • 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
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • 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 Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Image Input (AREA)

Abstract

本发明实施例提供了一种数据写入、读取方法、装置及设备,写入方法包括:将上一次结束地址所属块之后的块中,与上一次结束地址位于同一行的位置,确定为待写入数据的写入位置,也就是相邻两份数据占用不同块中的同一行,本方案中,并不是占满一个块之后再占用下一个块,而是先占用不同块中的同一行,该行占满后再占用这些块中的下一行,这样,减少了换行次数,进一步减少了由换行操作引起的等待时长。

Description

一种数据写入、读取方法、装置及设备
技术领域
本发明涉及数据读写技术领域,特别是涉及一种数据写入、读取方法、装置及设备。
背景技术
一些情况下,电子设备在对数据进行分析处理的过程中,可以将处理的数据临时写入存储器中,例如DDR SDRAM(DDR:Double Data Rate,双倍速率,SDRAM:SynchronousDynamic Random Access Memory,同步动态随机存储器)。比如,一些视频分析设备在对视频图像进行分析处理的过程中,可以将视频图像写入自身配置的DDR SDRAM中。
DDR SDRAM一般被划分为多个Bank(块),每个Bank可以被划分为多个行和多个列。一般来说,将数据写入DDR SDRAM的方案包括:先将数据写入第一个Bank,将第一个Bank占满之后,再将数据写入第二个Bank,以此类推。
具体写入过程可以包括:先将第一份数据写入第一个Bank中的第一行,如果第一份数据未占满第一行,则第二份数据继续写入第一行,第二份数据占用第一行的一部分和第二行的一部分,如果第二行仍未被占满,第三份数据继续写入第二行,以此类推。这样,对于一份数据来说,将其写入DDR SDRAM时通常会存在换行操作。在DDR SDRAM中每次进行换行操作,都需要一段等待时间,这就导致写入过程耗时较长。
发明内容
本发明实施例的目的在于提供一种数据写入、读取方法、装置及设备,以减少换行次数。
为达到上述目的,本发明实施例提供了一种数据写入方法,包括:
获取一份待写入数据;
将上一次结束地址所属块之后的块中,与所述上一次结束地址位于同一行的位置,确定为所述待写入数据的写入位置;其中,所述上一次结束地址为:所述待写入数据的上一份数据写入存储器中的结束地址;所述存储器中包括多个块,每个块包括多个行和多个列,所述存储器中的块以行对齐的方式进行排列;
将所述待写入数据写入所确定的写入位置中。
可选的,所述将上一次结束地址所属块之后的块中,与所述上一次结束地址位于同一行的位置,确定为所述待写入数据的写入位置,包括:
确定所述待写入数据需要占用所述存储器一行中块的数量,作为目标数量;
将上一次结束地址所属块之后的所述目标数量个块中,与所述上一次结束地址位于同一行的位置,确定为所述待写入数据的写入位置。
可选的,在所述确定所述待写入数据需要占用所述存储器一行中块的数量,作为目标数量之后,还包括:
判断剩余块的数量是否小于所述目标数量;其中,所述剩余块为:与所述上一次结束地址位于同一行的位置中未写入数据的块;
如果小于,将所述剩余块中与所述上一次结束地址位于同一行的位置、以及所述存储器的前一个或多个块中位于所述上一次结束地址下一行的位置,确定为所述待写入数据的写入位置;
如果不小于,执行所述将上一次结束地址所属块之后的所述目标数量个块中,与所述上一次结束地址位于同一行的位置,确定为所述待写入数据的写入位置的步骤。
可选的,在所述获取一份待写入数据之后,还包括:
判断所述上一次结束地址所属块是否为所述存储器中的最后一个块;
如果是,将所述存储器的前一个或多个块中,位于所述上一次结束地址下一行的位置,确定为所述待写入数据的写入位置;
如果否,执行所述将上一次结束地址所属块之后的块中,与所述上一次结束地址位于同一行的位置,确定为所述待写入数据的写入位置的步骤。
可选的,在所述将上一次结束地址所属块之后的所述目标数量个块中,与所述上一次结束地址位于同一行的位置,确定为所述待写入数据的写入位置之前,还包括:
根据上一份数据的起始地址所属块以及所述上一份数据占用所述存储器中同一行中块的数量,确定所述上一次结束地址所属块。
可选的,所述将所述待写入数据写入所确定的写入位置中,包括:
由块的初始地址开始写入所述待写入数据。
为达到上述目的,本发明实施例还提供了一种数据读取方法,包括:
确定待读取数据在其所属的整份数据中的位置;其中,所述整份数据为写入到存储器中的一份数据;所述存储器中包括多个块,每个块包括多个行和多个列,所述存储器中的块以行对齐的方式进行排列;所述整份数据与其上一份数据或下一份数据位于同一行、且属于相邻的块;
根据所述待读取数据在其所属的整份数据中的位置,计算所述待读取数据在所述存储器中的行偏移地址和列偏移地址;
根据所述行偏移地址和所述列偏移地址,从所述存储器中读取所述待读取数据。
可选的,所述待读取数据在其所属的整份数据中的位置包括起始位置,所述起始位置包括:起始第一坐标和起始第二坐标,所述起始第一坐标所对应坐标轴与行方向相同,所述起始第二坐标所对应坐标轴与列方向相同;
所述根据所述待读取数据在其所属的整份数据中的位置,计算所述待读取数据在所述存储器中的行偏移地址和列偏移地址,包括:
计算所述起始第一坐标与所述待读取数据对应的色空间参数的乘积,作为列偏移地址;
计算所述起始第二坐标与所述整份数据占用的块数量的乘积,作为第一地址;计算所述存储器中一个块包括的列数量与所述存储器的位宽之和,作为第一数值,将所述第一地址向左偏移所述第一数值,得到行偏移地址。
可选的,所述待读取数据在其所属的整份数据中的位置还包括结束位置;所述根据所述行偏移地址和所述列偏移地址,从所述存储器中读取所述待读取数据,包括:
根据所述起始位置与所述结束位置的差值以及所述色空间参数,计算待读取数据的数据量;
根据所述行偏移地址和所述列偏移地址,从所述存储器中读取所述数据量对应的数据。
为达到上述目的,本发明实施例还提供了一种数据写入装置,包括:
获取模块,用于获取一份待写入数据;
第一确定模块,用于将上一次结束地址所属块之后的块中,与所述上一次结束地址位于同一行的位置,确定为所述待写入数据的写入位置;其中,所述上一次结束地址为:所述待写入数据的上一份数据写入存储器中的结束地址;所述存储器中包括多个块,每个块包括多个行和多个列,所述存储器中的块以行对齐的方式进行排列;
写入模块,用于将所述待写入数据写入所确定的写入位置中。
可选的,所述第一确定模块,包括:
第一确定子模块,用于确定所述待写入数据需要占用所述存储器一行中块的数量,作为目标数量;
第二确定子模块,用于将上一次结束地址所属块之后的所述目标数量个块中,与所述上一次结束地址位于同一行的位置,确定为所述待写入数据的写入位置。
可选的,所述装置还包括:
第一判断模块,用于判断剩余块的数量是否小于所述目标数量;其中,所述剩余块为:与所述上一次结束地址位于同一行的位置中未写入数据的块;如果小于,触发第三确定子模块,如果不小于,触发所述第二确定子模块;
所述第三确定子模块,用于将所述剩余块中与所述上一次结束地址位于同一行的位置、以及所述存储器的前一个或多个块中位于所述上一次结束地址下一行的位置,确定为所述待写入数据的写入位置。
可选的,所述装置还包括:
第二判断模块,用于判断所述上一次结束地址所属块是否为所述存储器中的最后一个块;如果是,触发第二确定模块,如果否,触发所述第一确定模块;
所述第二确定模块,用于将所述存储器的前一个或多个块中,位于所述上一次结束地址下一行的位置,确定为所述待写入数据的写入位置。
可选的,所述装置还包括:
第三确定模块,用于根据上一份数据的起始地址所属块以及所述上一份数据占用所述存储器中同一行中块的数量,确定所述上一次结束地址所属块。
可选的,所述写入模块,具体用于:
由块的初始地址开始写入所述待写入数据。
为达到上述目的,本发明实施例还提供了一种数据读取装置,包括:
第四确定模块,用于确定待读取数据在其所属的整份数据中的位置;其中,所述整份数据为写入到存储器中的一份数据;所述存储器中包括多个块,每个块包括多个行和多个列,所述存储器中的块以行对齐的方式进行排列;所述整份数据与其上一份数据或下一份数据位于同一行、且属于相邻的块;
计算模块,用于根据所述待读取数据在其所属的整份数据中的位置,计算所述待读取数据在所述存储器中的行偏移地址和列偏移地址;
读取模块,用于根据所述行偏移地址和所述列偏移地址,从所述存储器中读取所述待读取数据。
可选的,所述待读取数据在其所属的整份数据中的位置包括起始位置,所述起始位置包括:起始第一坐标和起始第二坐标,所述起始第一坐标所对应坐标轴与行方向相同,所述起始第二坐标所对应坐标轴与列方向相同;所述计算模块,具体用于:
计算所述起始第一坐标与所述待读取数据对应的色空间参数的乘积,作为列偏移地址;
计算所述起始第二坐标与所述整份数据占用的块数量的乘积,作为第一地址;计算所述存储器中一个块包括的列数量与所述存储器的位宽之和,作为第一数值,将所述第一地址向左偏移所述第一数值,得到行偏移地址。
可选的,所述待读取数据在其所属的整份数据中的位置还包括结束位置;所述读取模块,具体用于:
根据所述起始位置与所述结束位置的差值以及所述色空间参数,计算待读取数据的数据量;
根据所述行偏移地址和所述列偏移地址,从所述存储器中读取所述数据量对应的数据。
为达到上述目的,本发明实施例还提供了一种电子设备,包括处理器和存储器;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一种数据写入或读取方法。
为达到上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种数据写入或读取方法。
应用本发明所示实施例,将上一次结束地址所属块之后的块中,与上一次结束地址位于同一行的位置,确定为待写入数据的写入位置,也就是相邻两份数据占用不同块中的同一行,也就是说,本方案中,并不是占满一个块之后再占用下一个块,而是先占用不同块中的同一行,该行占满后再占用这些块中的下一行,这样,减少了换行次数,进一步减少了由换行操作引起的等待时长。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据写入方法的第一种流程示意图;
图2为本发明实施例提供的一种存储器的存储结构示意图;
图3为本发明实施例提供的一种数据写入方案示意图;
图4为本发明实施例提供的另一种数据写入方案示意图;
图5为本发明实施例提供的数据写入方法的第二种流程示意图;
图6为本发明实施例提供的一种数据读取方法的流程示意图;
图7为本发明实施例提供的一种目标区域示意图;
图8为本发明实施例提供的一种目标区域对应的数据示意图;
图9为本发明实施例提供的一种数据写入装置的结构示意图;
图10为本发明实施例提供的一种数据读取装置的结构示意图;
图11为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决上述技术问题,本发明实施例提供了一种数据写入、读取方法、装置及设备。该方法及装置可以应用于各种电子设备,比如视频分析设备或者其他分析设备,具体不做限定。下面先对本发明实施例提供的数据写入方法进行详细介绍。
图1为本发明实施例提供的数据写入方法的第一种流程示意图,包括:
S101:获取一份待写入数据。
举例来说,一份待写入数据可以为一张图像中的一行像素数据,或者也可以为其他类型的数据,具体不做限定。
一种情况下,电子设备中可以包括FPGA(Field-Programmable Gate Array,现场可编程门阵列)和DDR SDRAM,FPGA可以执行该数据写入方法,将数据写入到DDR SDRAM中。或者,也可以由其他控制芯片将数据写入其他存储器中,控制芯片与存储器的类型不做限定。以下内容中,以存储器为DDR SDRAM为例进行说明。
S102:将上一次结束地址所属块之后的块中,与该上一次结束地址位于同一行的位置,确定为待写入数据的写入位置;其中,所述上一次结束地址为:所述待写入数据的上一份数据写入存储器中的结束地址;所述存储器中包括多个块,每个块包括多个行和多个列,所述存储器中的块以行对齐的方式进行排列。
参考图2,DDR SDRAM包括多个块(即Bank):Bank0、Bank1、Bank2等等,每个块中包括多个行:Row0、Row1、Row2、Row3等等,每个块中还包括多个列:Col0、Col1等等。各个Bank之间以行对齐的方式进行排列。
假设获取到第一份需要写入到DDR SDRAM中的数据,或者说,在存储器为空的情况下,获取到第一份数据,将该第一份数据作为待写入数据;这种情况下,不存在待写入数据的上一份数据,可以将第一份数据写入到存储器的第一个块Bank0中的第一行,假设第一份数据未占满Bank0中的第一行。
然后获取到第二份数据,将该第二份数据作为待写入数据,这种情况下,S102中的“上一次结束地址”也就是第一份数据写入DDR SDRAM中的结束地址,参考图3,图3中每一小块阴影数据为一份数据,该结束地址所属块为Bank0,该结束地址所在行为第一行,将Bank0之后的Bank中的第一行确定为第二份数据的写入位置。假设第二份数据不能占满一个Bank中的一行,则Bank0之后的Bank即为Bank1,也就是将Bank1中的第一行确定为第二份数据的写入位置。
然后获取到第三份数据,将该第三份数据作为待写入数据,这种情况下,S102中的“上一次结束地址”也就是第二份数据写入DDR SDRAM中的结束地址,参考图3,该结束地址所属块为Bank1,该结束地址所在行为第一行,将Bank1之后的Bank中的第一行确定为第三份数据的写入位置。假设第三份数据不能占满一个Bank中的一行,则Bank1之后的Bank即为Bank2,也就是将Bank2中的第一行确定为第三份数据的写入位置。
以此类堆,以这种方式写入第四、五、六、七、八份数据。
作为一种实施方式,在S101之后,判断所述上一次结束地址所属块是否为所述存储器中的最后一个块;如果是,将所述存储器的前一个或多个块中,位于所述上一次结束地址下一行的位置,确定为所述待写入数据的写入位置;如果否,再执行S102。
延续上述图3中的例子,假设获取到第九份数据,此时,DDR SDRAM中的第一行已占满,上一次结束地址(也就是第八份数据写入存储器中的结束地址)所属块为Bank7,Bank7为存储器中的最后一个块,这种情况下需要换行,也就是将存储器的前一个或多个块中,位于该上一次结束地址下一行的位置,确定为待写入数据的写入位置。假设第九份数据不能占满一个Bank中的一行,则将存储器的前一个块Bank1中的第二行确定为第九份数据的写入位置。
作为一种实施方式,S102可以包括:确定所述待写入数据需要占用所述存储器一行中块的数量,作为目标数量;将上一次结束地址所属块之后的所述目标数量个块中,与所述上一次结束地址位于同一行的位置,确定为所述待写入数据的写入位置。
上述实施方式中,假设一份数据不能占满一个Bank中的一行,这种情况下,目标数量为1。而图4中,每份数据占用一行中的两个Bank,这种情况下,目标数量为2。下面参考图4进行说明,图4中每一小块阴影数据为一份数据,。
假设获取到第一份需要写入到DDR SDRAM中的数据,或者说,在存储器为空的情况下,获取到第一份数据,将该第一份数据作为待写入数据;这种情况下,不存在待写入数据的上一份数据,可以将第一份数据写入到存储器的Bank0和Bank1中的第一行。
然后获取到第二份数据,将该第二份数据作为待写入数据,这种情况下,S102中的“上一次结束地址”也就是第一份数据写入DDR SDRAM中的结束地址,参考图4,该结束地址所属块为Bank1,该结束地址所在行为第一行,将Bank1之后的两个块Bank2和Bank3中的第一行确定为第二份数据的写入位置。
然后获取到第三份数据,将该第三份数据作为待写入数据,这种情况下,S102中的“上一次结束地址”也就是第二份数据写入DDR SDRAM中的结束地址,参考图4,该结束地址所属块为Bank3,该结束地址所在行为第一行,将Bank3之后的两个块Bank4和Bank5中的第一行确定为第三份数据的写入位置。
以此类堆,以这种方式写入第四份数据。
然后获取到第五份数据,此时,DDR SDRAM中的第一行已占满,上一次结束地址(也就是第四份数据写入存储器中的结束地址)所属块为Bank7,Bank7为存储器中的最后一个块,这种情况下需要换行,将存储器的前两个块中,位于该上一次结束地址下一行的位置,确定为待写入数据的写入位置,也就是将Bank0和Bank1中的第二行确定为第五份数据的写入位置。
作为一种实施方式,在所述确定所述待写入数据需要占用所述存储器一行中块的数量,作为目标数量之后,还包括:
判断剩余块的数量是否小于所述目标数量;其中,所述剩余块为:与所述上一次结束地址位于同一行的位置中未写入数据的块;
如果小于,将所述剩余块中与所述上一次结束地址位于同一行的位置、以及所述存储器的前一个或多个块中位于所述上一次结束地址下一行的位置,确定为所述待写入数据的写入位置;
如果不小于,执行所述将上一次结束地址所属块之后的所述目标数量个块中,与所述上一次结束地址位于同一行的位置,确定为所述待写入数据的写入位置的步骤。
再举一例,假设存储器中包括7个Bank,所确定的目标数量为2,假设第一份数据的写入位置为存储器的Bank0和Bank1中的第一行,第二份数据的写入位置为Bank2和Bank3中的第一行,第三份数据的写入位置为Bank4和Bank5中的第一行。
获取到第四份数据后,上一份数据写入存储器中的结束地址所在行为第一行,第一行中未写入数据的块仅剩Bank6,也就是剩余块数量为1,1小于目标数据2,则将Bank6中的第一行以及Bank0中的第二行确定为第四份数据的写入位置。
上述实施方式中,需要确定出“上一次结束地址所属块”,一种情况下,可以根据上一份数据的起始地址所属块以及所述上一份数据占用所述存储器中同一行中块的数量,确定所述上一次结束地址所属块。比如,上述一种实施方式中,确定出数据需要占用存储器一行中块的数量,为了方便描述,将该数量称为Bankstep,这样,对于每份数据来说,可以根据其起始地址所属Bank及其对应的Bankstep,确定该份数据的结束地址所属Bank。
或者,另一种情况下,也可以直接读取数据写入存储器中的结束地址,根据该结束地址确定其所属Bank。
S103:将待写入数据写入所确定的写入位置中。
参考图3和图4,将待写入数据写入存储器时,可以由Bank的初始地址开始写入待写入数据,或者说从Bank头开始写入数据。也就是说,每次写入一份数据时,都从Bank头开始写,如果该份数据不能占满一行,写入下一份数据时,也不再占用该行剩余的部分,而是仍从Bank头开始写,这样,每次写入一份数据时不会进行复杂的对齐处理,提高了写入效率。
上述情况可以理解为头部对齐,或者,另一种情况下,也可以采用尾部对齐的方式,比如,可以根据Bank尾部地址及待写入数据的数据量,计算起始地址。或者,另一种情况下,也可以采用中部对齐的方式,比如,可以根据Bank头部地址、尾部地址及待写入数据的数据量,计算起始地址。
应用本发明所示实施例,将上一次结束地址所属块之后的块中,与上一次结束地址位于同一行的位置,确定为待写入数据的写入位置,也就是相邻两份数据占用不同块中的同一行,也就是说,本方案中,并不是占满一个块之后再占用下一个块,而是先占用不同块中的同一行,该行占满后再占用这些块中的下一行,这样,减少了换行次数,进一步减少了由换行操作引起的等待时长。
图5为本发明实施例提供的数据写入方法的第二种流程示意图,包括:
S501:获取一份待写入数据。
举例来说,一份待写入数据可以为一张图像中的一行像素数据,或者也可以为其他类型的数据,具体不做限定。
一种情况下,电子设备中可以包括FPGA(Field-Programmable Gate Array,现场可编程门阵列)和DDR SDRAM,FPGA可以执行该数据写入方法,将数据写入到DDR SDRAM中。或者,也可以由其他控制芯片将数据写入其他存储器中,控制芯片与存储器的类型不做限定。以下内容中,以存储器为DDR SDRAM为例进行说明。
S502:确定待写入数据需要占用存储器一行中块的数量,作为目标数量。其中,存储器中包括多个块,每个块包括多个行和多个列,存储器中的块以行对齐的方式进行排列。
参考图2,DDR SDRAM包括多个块(即Bank):Bank0、Bank1、Bank2等等,每个块中包括多个行:Row0、Row1、Row2、Row3等等,每个块中还包括多个列:Col0、Col1等等。各个Bank之间以行对齐的方式进行排列。
参考图3及图4,图3中,一份据不能占满一个Bank中的一行,这种情况下,目标数量为1。而图4中,每份数据占用一行中的两个Bank,这种情况下,目标数量为2。
S503:判断上一次结束地址所属块是否为所述存储器中的最后一个块;所述上一次结束地址为:所述待写入数据的上一份数据写入存储器中的结束地址;如果是,执行S504,如果否,执行S505。
以目标数量为1为例来说,假设获取到第一份需要写入到DDR SDRAM中的数据,或者说,在存储器为空的情况下,获取到第一份数据,将该第一份数据作为待写入数据;这种情况下,不存在待写入数据的上一份数据,可以将第一份数据写入到存储器的第一个块Bank0中的第一行。
然后获取到第二份数据,将该第二份数据作为待写入数据,这种情况下,S503中的“上一次结束地址”也就是第一份数据写入DDR SDRAM中的结束地址,参考图3,该结束地址所属块为Bank0,该结束地址所在行为第一行,将Bank0之后的Bank1中的第一行确定为第二份数据的写入位置。
然后获取到第三份数据,将该第三份数据作为待写入数据,这种情况下,S503中的“上一次结束地址”也就是第二份数据写入DDR SDRAM中的结束地址,参考图3,该结束地址所属块为Bank1,该结束地址所在行为第一行,将Bank1之后的Bank2中的第一行确定为第三份数据的写入位置。
以此类堆,以这种方式写入第四、五、六、七、八份数据。
假设获取到第九份数据,此时,DDR SDRAM中的第一行已占满,上一次结束地址(也就是第八份数据写入存储器中的结束地址)所属块为Bank7,Bank7为存储器中的最后一个块,这种情况下需要换行,也就是执行S503。
S503:将存储器的前目标数量个块中,位于该上一次结束地址下一行的位置,确定为待写入数据的写入位置。
延续上述例子,针对第九份数据需要执行换行操作,将存储器的前2(目标数量)个块中,位于该上一次结束地址下一行的位置,确定为待写入数据的写入位置。
S505:判断剩余块的数量是否小于所述目标数量;所述剩余块为:与所述上一次结束地址位于同一行的位置中未写入数据的块;如果小于,执行S506,如果不小于,执行S507。
再以目标数量为2为例来说,假设获取到第一份需要写入到DDR SDRAM中的数据,或者说,在存储器为空的情况下,获取到第一份数据,将该第一份数据作为待写入数据;这种情况下,不存在待写入数据的上一份数据,可以将第一份数据写入到存储器的Bank0和Bank1中的第一行。
然后获取到第二份数据,将该第二份数据作为待写入数据,这种情况下,S503中的“上一次结束地址”也就是第一份数据写入DDR SDRAM中的结束地址,参考图4,该结束地址所属块为Bank1,该结束地址所在行为第一行,将Bank1之后的两个块Bank2和Bank3中的第一行确定为第二份数据的写入位置。
然后获取到第三份数据,将该第三份数据作为待写入数据,这种情况下,S503中的“上一次结束地址”也就是第二份数据写入DDR SDRAM中的结束地址,参考图4,该结束地址所属块为Bank3,该结束地址所在行为第一行,将Bank3之后的两个块Bank4和Bank5中的第一行确定为第三份数据的写入位置。
以此类堆,以这种方式写入第四份数据。
然后获取到第五份数据,此时,DDR SDRAM中的第一行已占满,上一次结束地址(也就是第四份数据写入存储器中的结束地址)所属块为Bank7,Bank7为存储器中的最后一个块,这种情况下需要换行,将存储器的前两个块中,位于该上一次结束地址下一行的位置,确定为待写入数据的写入位置,也就是将Bank0和Bank1中的第二行确定为第五份数据的写入位置。
S506:将该剩余块中与该上一次结束地址位于同一行的位置、以及存储器的前一个或多个块中位于该上一次结束地址下一行的位置,确定为待写入数据的写入位置。
再举一例,假设存储器中包括7个Bank,所确定的目标数量为2,假设第一份数据的写入位置为存储器的Bank0和Bank1中的第一行,第二份数据的写入位置为Bank2和Bank3中的第一行,第三份数据的写入位置为Bank4和Bank5中的第一行。
获取到第四份数据后,上一份数据写入存储器中的结束地址所在行为第一行,第一行中未写入数据的块仅剩Bank6,也就是剩余块数量为1,1小于目标数据2,则将Bank6中的第一行以及Bank0中的第二行确定为第四份数据的写入位置。
S507:将上一次结束地址所属块之后的目标数量个块中,与该上一次结束地址位于同一行的位置,确定为待写入数据的写入位置。
S508:将待写入数据写入所确定的写入位置中。
参考图3和图4,将待写入数据写入存储器时,可以由Bank的初始地址开始写入待写入数据,或者说从Bank头开始写入数据。也就是说,每次写入一份数据时,都从Bank头开始写,如果该份数据不能占满一行,写入下一份数据时,也不再占用该行剩余的部分,而是仍从Bank头开始写,这样,每次写入一份数据时不会进行复杂的对齐处理,提高了写入效率。
上述情况可以理解为头部对齐,或者,另一种情况下,也可以采用尾部对齐的方式,比如,可以根据Bank尾部地址及待写入数据的数据量,计算起始地址。或者,另一种情况下,也可以采用中部对齐的方式,比如,可以根据Bank头部地址、尾部地址及待写入数据的数据量,计算起始地址。
应用本发明所示实施例,第一方面,并不是占满一个块之后再占用下一个块,而是先占用不同块中的同一行,该行占满后再占用这些块中的下一行,这样,减少了换行次数,进一步减少了由换行操作引起的等待时长。第二方面,写入数据时采用Bank头部对齐的方式,不会进行复杂的对齐处理,提高了写入效率。
下面介绍一种具体的实施方式,假设需要将一帧分辨率为1920*1080的YUV(一种颜色编码方法,Y表示明亮度,U和V表示色度、浓度)422图像写入存储器,假设该存储器硬件位宽4字节,包含8个Bank,每个Bank包含16384行和1024列,一份数据为该图像中的一行像素数据;存储器中包括8个Bank:Bank0-Bank7,Bank0中第一行的起始地址为32*0000_0000,Bank1中第一行的起始地址为32*0000_1000,Bank2中第一行的起始地址为32*0000_2000,Bank3中第一行的起始地址为32*0000_3000,Bank4中第一行的起始地址为32*0000_4000,Bank5中第一行的起始地址为32*0000_5000,Bank6中第一行的起始地址为32*0000_6000,Bank7中第一行的起始地址为32*0000_7000。
将32*0000_0000作为第一行像素数据的起始地址,将第一行像素数据写入Bank0中的第一行,假设未占满Bank0中的第一行,跳过Bank0第一行中的空白部分,将32*0000_1000作为第二行像素数据的起始地址,将第二行像素数据写入Bank1中的第一行,以此类推,当将第八行像素数据写入Bank7中的第一行后,也就是写入八行像素数据后,再进行换行操作。也就是将32*0000_8000作为第九行像素数据的起始地址,将第九行像素数据写入Bank0中的第二行,以此类推,不再赘述。
可见,这种方案中,每处理8行像素数据才需要一次换行操作,减少了换行次数,进一步减少了由换行操作引起的等待时长。
本发明实施例还提供一种数据读取方法,图6为本发明实施例提供的一种数据读取方法流程示意图,包括:
S601:确定待读取数据在其所属的整份数据中的位置;其中,所述整份数据为写入到存储器中的一份数据;所述存储器中包括多个块,每个块包括多个行和多个列,所述存储器中的块以行对齐的方式进行排列;所述整份数据与其上一份数据或下一份数据位于同一行、且属于相邻的块。
参考上述数据写入方法实施例,相邻两份数据写入同一行且相邻的Bank中;这种情况下,可以利用图6所示的数据读取实施例只读取一份数据中的部分数据。
如图7所示,假设将一帧图像写入存储器中,该图像中间颜色较深的区域为需要关注的目标所在区域,为了方便描述,将该部分需要关注的区域称为目标区域,利用本实施例,可以不读取完整图像数据,只读取该目标区域的数据。参考图8,假设图8的Bank中颜色较深的部分数据为图7中目标区域对应的数据,利用本实施例,可以只读取Bank中颜色较深的部分数据。
上述写入方法实施例中,可以将图像中的一行像素数据作为一份数据,S601中所说的整份数据可以为图像中的一行像素数据,S601中所说的待读取数据可以为这一行像素数据中的部分数据。
一种实施方式中,S601中确定的位置可以包括起始位置和结束位置,所述起始位置包括:起始第一坐标和起始第二坐标,所述起始第一坐标所对应坐标轴与行方向相同,所述起始第二坐标所对应坐标轴与列方向相同;所述结束位置包括:结束第一坐标和结束第二坐标,所述结束第一坐标所对应坐标轴与行方向相同,所述结束第二坐标所对应坐标轴与列方向相同。
举例来说,起始位置可以为图7中的P点,结束位置可以为图7中的Q点,起始第一坐标和起始第二坐标可以分别为P点的x坐标和y坐标,结束第一坐标和结束第二坐标可以分别为Q点的x坐标和y坐标,x坐标轴与行方向相同,y坐标轴与列方向相同。
S602:根据待读取数据在其所属的整份数据中的位置,计算待读取数据在存储器中的行偏移地址和列偏移地址。
参考图8,图7中目标区域写入到存储器Bank中对应的数据是整齐的,换句话说,每行的偏移量相同,这样,可以利用统一算式计算待读取数据(目标区域对应的部分数据)在存储器中的行偏移地址和列偏移地址。图8中的top_x即为起始第一坐标,top_y即为起始第二坐标,bottom_x即为结束第一坐标,bottom_y即为结束第二坐标。
一种实施方式中,S602可以包括:计算所述起始第一坐标与所述待读取数据对应的色空间参数的乘积,作为列偏移地址;计算所述起始第二坐标与所述整份数据占用的块数量的乘积,作为第一地址;计算所述存储器中一个块包括的列数量与所述存储器的位宽之和,作为第一数值,将所述第一地址向左偏移所述第一数值,得到行偏移地址。
举例来说,如果写入的图像数据为RGB(Red,Green,Blue;红、绿、蓝)数据,则色空间参数为3,如果写入的图像数据为YUV422,则色空间参数为2,如果写入的图像数据为YUV420,则色空间参数为1。
可以按照如下算式计算待读取数据(目标区域对应的部分数据)在存储器中的行偏移地址和列偏移地址:
col_offset=top_x*α;
row_offset=(top_y*β)<<(Column数量+位宽)。
其中,col_offset为列偏移地址,row_offset为行偏移地址,α为色空间参数,β为上述Bankstep,也就是整份数据占用的块数量,Column数量也就是存储器中一个Bank包括的列数量,位宽即为存储器的位宽。
S603:根据行偏移地址和列偏移地址,从存储器中读取待读取数据。
一种实施方式中,S603可以包括:根据所述起始位置与所述结束位置的差值以及所述色空间参数,计算待读取数据的数据量;根据所述行偏移地址和所述列偏移地址,从所述存储器中读取所述数据量对应的数据。
上述实施方式中,得到了待读取数据的起始第一坐标、起始第二坐标、结束第一坐标和结束第二坐标,可以计算结束第一坐标与起始第一坐标的差值,作为列差值,列差值*色空间参数即可得到一行待读取数据的数据量,计算结束第二坐标与起始第二坐标的差值,作为行差值,行差值即为上述目标区域对应的数据的行数。
举例来说,可以将一整份数据的起始地址与行偏移地址和列偏移地址相加,根据相加后的结果从存储器中读取所确定的数据量的数据。
一种情况下,电子设备中可以包括FPGA(Field-Programmable Gate Array,现场可编程门阵列)和DDR SDRAM,FPGA可以执行该数据读取方法,读取DDR SDRAM中写入的数据。或者,也可以由其他控制芯片读取其他存储器中的数据,控制芯片与存储器的类型不做限定。
应用本发明图6所示实施例,可以只读取整份数据中的部分数据,例如,读取一张图像时,可以仅读取图像中的目标区域,这样,可以仅读取用户需要的部分数据,提高读取效率。
与上述方法实施例相对应,本发明实施例还提供了一种数据写入装置,如图9所示,包括:
获取模块901,用于获取一份待写入数据;
第一确定模块902,用于将上一次结束地址所属块之后的块中,与所述上一次结束地址位于同一行的位置,确定为所述待写入数据的写入位置;其中,所述上一次结束地址为:所述待写入数据的上一份数据写入存储器中的结束地址;所述存储器中包括多个块,每个块包括多个行和多个列,所述存储器中的块以行对齐的方式进行排列;
写入模块903,用于将所述待写入数据写入所确定的写入位置中。
作为一种实施方式,第一确定模块902包括:第一确定子模块和第二确定子模块(图中未示出),其中,
第一确定子模块,用于确定所述待写入数据需要占用所述存储器一行中块的数量,作为目标数量;
第二确定子模块,用于将上一次结束地址所属块之后的所述目标数量个块中,与所述上一次结束地址位于同一行的位置,确定为所述待写入数据的写入位置。
作为一种实施方式,所述装置还包括:
第一判断模块(图中未示出),用于判断剩余块的数量是否小于所述目标数量;其中,所述剩余块为:与所述上一次结束地址位于同一行的位置中未写入数据的块;如果小于,触发第三确定子模块,如果不小于,触发所述第二确定子模块;
所述第三确定子模块,用于将所述剩余块中与所述上一次结束地址位于同一行的位置、以及所述存储器的前一个或多个块中位于所述上一次结束地址下一行的位置,确定为所述待写入数据的写入位置。
作为一种实施方式,所述装置还包括:
第二判断模块(图中未示出),用于判断所述上一次结束地址所属块是否为所述存储器中的最后一个块;如果是,触发第二确定模块,如果否,触发所述第一确定模块;
所述第二确定模块(图中未示出),用于将所述存储器的前一个或多个块中,位于所述上一次结束地址下一行的位置,确定为所述待写入数据的写入位置。
作为一种实施方式,所述装置还包括:
第三确定模块(图中未示出),用于根据上一份数据的起始地址所属块以及所述上一份数据占用所述存储器中同一行中块的数量,确定所述上一次结束地址所属块。
作为一种实施方式,写入模块903具体用于:由块的初始地址开始写入所述待写入数据。
应用本发明所示实施例,将上一次结束地址所属块之后的块中,与上一次结束地址位于同一行的位置,确定为待写入数据的写入位置,也就是相邻两份数据占用不同块中的同一行,也就是说,本方案中,并不是占满一个块之后再占用下一个块,而是先占用不同块中的同一行,该行占满后再占用这些块中的下一行,这样,减少了换行次数,进一步减少了由换行操作引起的等待时长。
本发明实施例还提供了一种数据读取装置,如图10所示,包括:
第四确定模块1001,用于确定待读取数据在其所属的整份数据中的位置;其中,所述整份数据为写入到存储器中的一份数据;所述存储器中包括多个块,每个块包括多个行和多个列,所述存储器中的块以行对齐的方式进行排列;所述整份数据与其上一份数据或下一份数据位于同一行、且属于相邻的块;
计算模块1002,用于根据所述待读取数据在其所属的整份数据中的位置,计算所述待读取数据在所述存储器中的行偏移地址和列偏移地址;
读取模块1003,用于根据所述行偏移地址和所述列偏移地址,从所述存储器中读取所述待读取数据。
作为一种实施方式,所述待读取数据在其所属的整份数据中的位置包括起始位置,所述起始位置包括:起始第一坐标和起始第二坐标,所述起始第一坐标所对应坐标轴与行方向相同,所述起始第二坐标所对应坐标轴与列方向相同;计算模块1002具体用于:
计算所述起始第一坐标与所述待读取数据对应的色空间参数的乘积,作为列偏移地址;
计算所述起始第二坐标与所述整份数据占用的块数量的乘积,作为第一地址;计算所述存储器中一个块包括的列数量与所述存储器的位宽之和,作为第一数值,将所述第一地址向左偏移所述第一数值,得到行偏移地址。
作为一种实施方式,所述待读取数据在其所属的整份数据中的位置还包括结束位置;读取模块1003具体用于:
根据所述起始位置与所述结束位置的差值以及所述色空间参数,计算待读取数据的数据量;
根据所述行偏移地址和所述列偏移地址,从所述存储器中读取所述数据量对应的数据。
应用本发明图10所示实施例,可以只读取整份数据中的部分数据,例如,读取一张图像时,可以仅读取图像中的目标区域,这样,可以仅读取用户需要的部分数据,提高读取效率。
本发明实施例还提供一种电子设备,如图11所示,包括处理器1101和存储器1102;
存储器1102,用于存放计算机程序;
处理器1101,用于执行存储器1102上所存放的程序时,实现上述任一种数据写入方法或者数据读取方法。
上述电子设备提到的存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种数据写入方法或者数据读取方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、设备实施例、计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (11)

1.一种数据写入方法,其特征在于,包括:
获取一份待写入数据;
将上一次结束地址所属块之后的块中,与所述上一次结束地址位于同一行的位置,确定为所述待写入数据的写入位置;其中,所述上一次结束地址为:所述待写入数据的上一份数据写入存储器中的结束地址;所述存储器中包括多个块,每个块包括多个行和多个列,所述存储器中的块以行对齐的方式进行排列;
将所述待写入数据写入所确定的写入位置中。
2.根据权利要求1所述的方法,其特征在于,所述将上一次结束地址所属块之后的块中,与所述上一次结束地址位于同一行的位置,确定为所述待写入数据的写入位置,包括:
确定所述待写入数据需要占用所述存储器一行中块的数量,作为目标数量;
将上一次结束地址所属块之后的所述目标数量个块中,与所述上一次结束地址位于同一行的位置,确定为所述待写入数据的写入位置。
3.根据权利要求2所述的方法,其特征在于,在所述确定所述待写入数据需要占用所述存储器一行中块的数量,作为目标数量之后,还包括:
判断剩余块的数量是否小于所述目标数量;其中,所述剩余块为:与所述上一次结束地址位于同一行的位置中未写入数据的块;
如果小于,将所述剩余块中与所述上一次结束地址位于同一行的位置、以及所述存储器的前一个或多个块中位于所述上一次结束地址下一行的位置,确定为所述待写入数据的写入位置;
如果不小于,执行所述将上一次结束地址所属块之后的所述目标数量个块中,与所述上一次结束地址位于同一行的位置,确定为所述待写入数据的写入位置的步骤。
4.根据权利要求1所述的方法,其特征在于,在所述获取一份待写入数据之后,还包括:
判断所述上一次结束地址所属块是否为所述存储器中的最后一个块;
如果是,将所述存储器的前一个或多个块中,位于所述上一次结束地址下一行的位置,确定为所述待写入数据的写入位置;
如果否,执行所述将上一次结束地址所属块之后的块中,与所述上一次结束地址位于同一行的位置,确定为所述待写入数据的写入位置的步骤。
5.根据权利要求2所述的方法,其特征在于,在所述将上一次结束地址所属块之后的所述目标数量个块中,与所述上一次结束地址位于同一行的位置,确定为所述待写入数据的写入位置之前,还包括:
根据上一份数据的起始地址所属块以及所述上一份数据占用所述存储器中同一行中块的数量,确定所述上一次结束地址所属块。
6.一种数据读取方法,其特征在于,包括:
确定待读取数据在其所属的整份数据中的位置;其中,所述整份数据为写入到存储器中的一份数据;所述存储器中包括多个块,每个块包括多个行和多个列,所述存储器中的块以行对齐的方式进行排列;所述整份数据与其上一份数据或下一份数据位于同一行、且属于相邻的块;
根据所述待读取数据在其所属的整份数据中的位置,计算所述待读取数据在所述存储器中的行偏移地址和列偏移地址;
根据所述行偏移地址和所述列偏移地址,从所述存储器中读取所述待读取数据。
7.根据权利要求6所述的方法,其特征在于,所述待读取数据在其所属的整份数据中的位置包括起始位置,所述起始位置包括:起始第一坐标和起始第二坐标,所述起始第一坐标所对应坐标轴与行方向相同,所述起始第二坐标所对应坐标轴与列方向相同;
所述根据所述待读取数据在其所属的整份数据中的位置,计算所述待读取数据在所述存储器中的行偏移地址和列偏移地址,包括:
计算所述起始第一坐标与所述待读取数据对应的色空间参数的乘积,作为列偏移地址;
计算所述起始第二坐标与所述整份数据占用的块数量的乘积,作为第一地址;计算所述存储器中一个块包括的列数量与所述存储器的位宽之和,作为第一数值,将所述第一地址向左偏移所述第一数值,得到行偏移地址。
8.根据权利要求7所述的方法,其特征在于,所述待读取数据在其所属的整份数据中的位置还包括结束位置;所述根据所述行偏移地址和所述列偏移地址,从所述存储器中读取所述待读取数据,包括:
根据所述起始位置与所述结束位置的差值以及所述色空间参数,计算待读取数据的数据量;
根据所述行偏移地址和所述列偏移地址,从所述存储器中读取所述数据量对应的数据。
9.一种数据写入装置,其特征在于,包括:
获取模块,用于获取一份待写入数据;
第一确定模块,用于将上一次结束地址所属块之后的块中,与所述上一次结束地址位于同一行的位置,确定为所述待写入数据的写入位置;其中,所述上一次结束地址为:所述待写入数据的上一份数据写入存储器中的结束地址;所述存储器中包括多个块,每个块包括多个行和多个列,所述存储器中的块以行对齐的方式进行排列;
写入模块,用于将所述待写入数据写入所确定的写入位置中。
10.一种数据读取装置,其特征在于,包括:
第四确定模块,用于确定待读取数据在其所属的整份数据中的位置;其中,所述整份数据为写入到存储器中的一份数据;所述存储器中包括多个块,每个块包括多个行和多个列,所述存储器中的块以行对齐的方式进行排列;所述整份数据与其上一份数据或下一份数据位于同一行、且属于相邻的块;
计算模块,用于根据所述待读取数据在其所属的整份数据中的位置,计算所述待读取数据在所述存储器中的行偏移地址和列偏移地址;
读取模块,用于根据所述行偏移地址和所述列偏移地址,从所述存储器中读取所述待读取数据。
11.一种电子设备,其特征在于,包括处理器和存储器;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-8任一所述的方法步骤。
CN201910318096.9A 2019-04-19 2019-04-19 一种数据写入、读取方法、装置及设备 Active CN111831212B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910318096.9A CN111831212B (zh) 2019-04-19 2019-04-19 一种数据写入、读取方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910318096.9A CN111831212B (zh) 2019-04-19 2019-04-19 一种数据写入、读取方法、装置及设备

Publications (2)

Publication Number Publication Date
CN111831212A true CN111831212A (zh) 2020-10-27
CN111831212B CN111831212B (zh) 2023-07-04

Family

ID=72911811

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910318096.9A Active CN111831212B (zh) 2019-04-19 2019-04-19 一种数据写入、读取方法、装置及设备

Country Status (1)

Country Link
CN (1) CN111831212B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1188912A (zh) * 1997-01-20 1998-07-29 株式会社东芝 图像存储器存取方法、图像形成、保存装置及地址生成方法及装置
CN1645928A (zh) * 2005-02-03 2005-07-27 清华大学 用于压缩视频信号解码的图像存储方法
CN1674151A (zh) * 2005-03-28 2005-09-28 北京中星微电子有限公司 一种针对图像处理的同步动态随机存储器存取方法
CN101022553A (zh) * 2007-03-28 2007-08-22 华为技术有限公司 图像数据的存取和解码方法及解码装置
CN101425040A (zh) * 2007-10-30 2009-05-06 川崎微电子股份有限公司 存储器的存取方法、存储控制电路和存储系统
CN101996142A (zh) * 2010-11-17 2011-03-30 北京炬力北方微电子有限公司 一种访问存储器的方法及装置
US20160147460A1 (en) * 2014-11-24 2016-05-26 Young-Soo Sohn Memory device that performs internal copy operation
US20160313923A1 (en) * 2015-04-22 2016-10-27 Mediatek Inc. Method for accessing multi-port memory module and associated memory controller
US20170199703A1 (en) * 2016-01-13 2017-07-13 Sandisk Technologies Inc. Physical addressing schemes for non-volatile memory systems employing multi-die interleave schemes
CN107506135A (zh) * 2016-06-14 2017-12-22 杭州海康威视数字技术股份有限公司 一种数据处理方法、装置及系统
US20180101542A1 (en) * 2016-06-21 2018-04-12 EMC IP Holding Company LLC Method and apparatus for compressing metadata in a file system
US20180232148A1 (en) * 2017-02-14 2018-08-16 Arm Limited Data processing systems

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1188912A (zh) * 1997-01-20 1998-07-29 株式会社东芝 图像存储器存取方法、图像形成、保存装置及地址生成方法及装置
CN1645928A (zh) * 2005-02-03 2005-07-27 清华大学 用于压缩视频信号解码的图像存储方法
CN1674151A (zh) * 2005-03-28 2005-09-28 北京中星微电子有限公司 一种针对图像处理的同步动态随机存储器存取方法
CN101022553A (zh) * 2007-03-28 2007-08-22 华为技术有限公司 图像数据的存取和解码方法及解码装置
CN101425040A (zh) * 2007-10-30 2009-05-06 川崎微电子股份有限公司 存储器的存取方法、存储控制电路和存储系统
CN101996142A (zh) * 2010-11-17 2011-03-30 北京炬力北方微电子有限公司 一种访问存储器的方法及装置
US20160147460A1 (en) * 2014-11-24 2016-05-26 Young-Soo Sohn Memory device that performs internal copy operation
US20160313923A1 (en) * 2015-04-22 2016-10-27 Mediatek Inc. Method for accessing multi-port memory module and associated memory controller
US20170199703A1 (en) * 2016-01-13 2017-07-13 Sandisk Technologies Inc. Physical addressing schemes for non-volatile memory systems employing multi-die interleave schemes
CN107506135A (zh) * 2016-06-14 2017-12-22 杭州海康威视数字技术股份有限公司 一种数据处理方法、装置及系统
US20180101542A1 (en) * 2016-06-21 2018-04-12 EMC IP Holding Company LLC Method and apparatus for compressing metadata in a file system
US20180232148A1 (en) * 2017-02-14 2018-08-16 Arm Limited Data processing systems

Also Published As

Publication number Publication date
CN111831212B (zh) 2023-07-04

Similar Documents

Publication Publication Date Title
EP2446413B1 (en) Apparatus and method for displaying a warped version of a source image
EP0615379B1 (en) Colour conversion apparatus
JP3278756B2 (ja) 画像処理方法及び装置
US11354773B2 (en) Method and system for correcting a distorted input image
CN106127721A (zh) 用于显示由叠加图像层合成的混合图像的图形系统及方法
KR101117145B1 (ko) 데이터 저장 장치, 데이터 저장 제어 장치 및, 데이터 저장 제어 방법
US7839424B1 (en) Horizontal strip column-first two-dimensional scaling
KR101106080B1 (ko) 데이터 저장 제어 장치, 데이터 저장 제어 방법 및 데이터 저장 제어 프로그램이 기록된 기록 매체
CN111831212B (zh) 一种数据写入、读取方法、装置及设备
JP3464621B2 (ja) バンク可変メモリ
EP2323099A1 (en) Image reading device and method of writing image data in an image reading device
JP2011091698A (ja) 画像読取装置及び画像読取装置における画像データの補正処理方法
JP4534488B2 (ja) データ格納装置、データ格納制御装置、データ格納制御方法及びデータ格納制御プログラム
US8643661B1 (en) Non raster row pixel processing
JP4655220B2 (ja) 設計装置および方法、並びにデータ格納装置
JP2002354400A (ja) データ格納/読み出し方法及びその方法を用いた画像データ記憶装置並びにその記憶装置を用いた画像補正装置
JP7141295B2 (ja) 画像処理装置およびその制御方法
JP2005222530A (ja) データ格納装置、データ格納制御装置、データ格納制御方法及びデータ格納制御プログラム
JP4506256B2 (ja) データ格納装置、データ格納制御装置、データ格納制御方法及びデータ格納制御プログラム
US20090185754A1 (en) Image processing circuit and image processing apparatus
JP4735008B2 (ja) データ格納装置、データ格納制御装置、データ格納制御方法及びデータ格納制御プログラム
JPH10178542A (ja) 画像縮小処理装置
JP2005196360A (ja) データ格納装置、データ格納制御装置、データ格納制御方法及びデータ格納制御プログラム
CN116010313A (zh) 一种通用、可配置的图像滤波计算多行输出系统和方法
JP4538737B2 (ja) データアクセス装置、データアクセス方法、プログラムおよび記録媒体

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