CN113176859A - 数据存储方法与装置 - Google Patents

数据存储方法与装置 Download PDF

Info

Publication number
CN113176859A
CN113176859A CN202110563314.2A CN202110563314A CN113176859A CN 113176859 A CN113176859 A CN 113176859A CN 202110563314 A CN202110563314 A CN 202110563314A CN 113176859 A CN113176859 A CN 113176859A
Authority
CN
China
Prior art keywords
data
storage area
unit
stored
unit storage
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
CN202110563314.2A
Other languages
English (en)
Other versions
CN113176859B (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.)
Ruizhe Hangzhou Technology Co ltd
Original Assignee
Ruizhe Hangzhou 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 Ruizhe Hangzhou Technology Co ltd filed Critical Ruizhe Hangzhou Technology Co ltd
Priority to CN202110563314.2A priority Critical patent/CN113176859B/zh
Publication of CN113176859A publication Critical patent/CN113176859A/zh
Application granted granted Critical
Publication of CN113176859B publication Critical patent/CN113176859B/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0614Improving the reliability of storage systems
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本申请提供一种数据存储方法与装置,涉及数据存储技术。以上一次写入数据的单位存储区域相邻的下一个单位存储区域的首地址,作为起始存储地址,将待存储数据写入到至少一个单位存储区域中。在写入有待存储数据且存在剩余存储空间的单位存储区域,填充可压缩数据。最后以至少一个单位存储区域中的每个单位存储区域中的数据为一个单位读写数据,将每个单位读写数据从逻辑地址空间写入固态硬盘的物理地址空间,其中,位于物理地址空间的每个单位读写数据处于压缩状态,如此,占用固态硬盘的物理地址空间的仅包括待存储数据,也不会造成数据的写放大,使得固态硬盘的擦写次数也会更晚的到达预设的阈值,延长了固态硬盘的使用寿命。

Description

数据存储方法与装置
技术领域
本申请涉及数据存储技术,尤其涉及一种数据存储方法与装置。
背景技术
固态硬盘(Solid State Drives,SSD),简称SSD或固盘,是用固态电子存储芯片阵列而制成的硬盘,包括控制单元和存储单元(FLASH芯片、DRAM芯片),是当前主流的用于存储数据的存储设备。在利用固态硬盘存储数据时,若固态硬盘的物理地址空间中存储数据的数据量大于预设的数据量阈值,则需要对已存储数据进行重新擦写,以清理已存储数据中过时的数据。对于固态硬盘而言,允许的擦写次数是有限的,当固态硬盘的擦写次数大于预设的阈值时,固态硬盘的存储功能就会失效。
目前,主机向固态硬盘的写入数据的主流方式为:当接收到数据1时,需要将逻辑地址空间上一次写入数据的单位存储区域中的已存储的数据2(数据2在上一次已被写到固态硬盘的物理地址空间存储)重新读出,将数据1和数据2合并为目标存储数据。然后,再以上一次写入数据的单位存储区域的首地址为起始存储地址,根据目标存储数据的数据长度,将目标存储数据写入至少一个单位存储区域中。最后,将逻辑地址空间的至少一个单位存储区域中的目标存储数据写入到固态硬盘的物理地址空间中。
可见,在上述的向固态硬盘的写入数据方式中,上述的数据2会被重复写入固态硬盘的物理地址空间中。在普通的固态硬盘中,这种写入方式就会造成数据的写放大问题,从而会加快固态硬盘的物理地址空间的耗用,进而使得固态硬盘的擦写次数更早的到达预设的阈值,这样会导致固态硬盘的寿命缩短。
发明内容
本申请提供一种数据存储方法与装置,用以解决部分数据会被重复写入固态硬盘的物理地址空间中,从而造成的数据写放大问题。
第一方面,本申请提供一种数据存储方法,应用于主机,所述主机为固态硬盘分配有逻辑地址空间,所述逻辑地址空间包括有多个单位存储区域,所述方法包括:
获取待存储数据;
以上一次写入数据的单位存储区域相邻的下一个单位存储区域的首地址,作为起始存储地址,将所述待存储数据写入到至少一个单位存储区域中;
在写入有所述待存储数据且存在剩余存储空间的单位存储区域,填充可压缩数据;
以所述至少一个单位存储区域中的每个所述单位存储区域中的数据为一个单位读写数据,将每个所述单位读写数据从所述逻辑地址空间写入所述固态硬盘的物理地址空间,其中,位于所述物理地址空间的每个单位读写数据处于压缩状态。
第二方面,本申请还提供一种数据存储装置,应用于主机,所述主机为固态硬盘分配有逻辑地址空间,所述逻辑地址空间包括有多个单位存储区域,所述装置包括:
数据获取单元,用于获取待存储数据;
数据写入单元,用于以上一次写入数据的单位存储区域相邻的下一个单位存储区域的首地址,作为起始存储地址,将所述待存储数据写入到至少一个单位存储区域中;
数据填充单元,用于在写入有所述待存储数据且存在剩余存储空间的单位存储区域,填充可压缩数据;
所述数据写入单元,还用于以所述至少一个单位存储区域中的每个所述单位存储区域中的数据为一个单位读写数据,将每个所述单位读写数据从所述逻辑地址空间写入所述固态硬盘的物理地址空间,其中,位于所述物理地址空间的每个单位读写数据处于压缩状态。
第三方面,本申请还提供一种电子设备,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,处理器被配置为执行如本申请第一方面提供的数据存储方法。
第四方面,本申请还提供一种所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如本申请第一方面提供的数据存储方法。
第五方面,本申请还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如本申请第一方面提供的数据存储方法。
本申请提供的数据存储方法与装置,以上一次写入数据的单位存储区域相邻的下一个单位存储区域的首地址,作为起始存储地址,将待存储数据写入到至少一个单位存储区域中。进而,无需将上一次写入数据中的单位存储区域中的已存储数据再重新读出来写入,避免了数据的重复写入。在写入有待存储数据且存在剩余存储空间的单位存储区域,填充可压缩数据,以使得待存储数据和可压缩数据能够构成一个单位读写数据。最后以至少一个单位存储区域中的每个单位存储区域中的数据为一个单位读写数据,将每个单位读写数据从逻辑地址空间写入固态硬盘的物理地址空间,其中,位于所述物理地址空间的每个单位读写数据处于压缩状态。在单位读写数据处于压缩状态时,单位读写数据中的可压缩数据被压缩,如此,占用固态硬盘的物理地址空间的仅包括待存储数据,也不会造成数据的写放大。如此,减少了固态硬盘的物理地址空间中存储数据的数据量大于预设的数量阈值的次数。进而,使得固态硬盘的擦写次数也会更晚的到达预设的阈值,延长了固态硬盘的使用寿命。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的主机和固态硬盘的交互示意图。
图2为本申请实施例提供的数据存储方法的流程图。
图3为本申请实施例提供的待存储数据被存储到逻辑地址空间的数据分布状态示意图。
图4为单位存储区域的地址长度大于或等于待存储数据的数据长度的情况下,待存储数据被存储到逻辑地址空间的数据分布状态示意图。
图5为本申请实施例提供的单位存储区域的地址长度小于待存储数据的数据长度的情况下,待存储数据被存储到逻辑地址空间的数据分布状态示意图。
图6为本申请实施例提供的数据存储装置的功能模块框图。
图7为本申请实施例提供的电子设备的电路连接框图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
首先对本申请所涉及的名词进行解释:
逻辑地址空间:是指在计算机体系结构中是指应用程序角度看到的内存单元(memory cell)、存储单元(storage element)、网络主机(network host)的地址空间。逻辑地址空间的逻辑地址往往不同于物理地址(physical address),通过地址翻译器(addresstranslator)或映射函数可以把逻辑地址转化为物理地址。
物理地址空间:在存储器里以字节为单位存储信息,为正确地存放或取得信息,每一个字节单元给以一个唯一的存储器地址构成的存储空间,称为物理地址空间。
单位存储区域:逻辑地址空间中被写入物理地址空间中最小的数据量占用的存储区域。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
请参阅图1,本申请提供一种数据存储方法,应用于主机100。如图1所示,主机100与固态硬盘200通信连接,以便数据交互。主机100为固态硬盘200分配有逻辑地址空间,逻辑地址空间包括有多个单位存储区域,其中,每个单位存储区域可以理解为一个存储扇区。每个单位存储区域可以存储的最大数据量可以为4KB、8KB等等,在此不作限定。
如图2所示,所述方法包括:
S11:主机100获取待存储数据。
例如,主机100可以接收终端设备发送的待存储数据或云服务器发送的待存储数据。
S12:主机100以上一次写入数据的单位存储区域相邻的下一个单位存储区域的首地址,作为起始存储地址,将待存储数据写入到至少一个单位存储区域中。
通过上述的S12,无需将上一次写入数据中的单位存储区域中的已存储数据再重新读出来写入上一次写入数据中的单位存储区域,如此,避免了数据的重复写入。
考虑到如果针对每个待存储数据,如果都是以上一次写入数据的单位存储区域相邻的下一个单位存储区域的首地址,作为起始存储地址,将待存储数据写入到至少一个单位存储区域中,会浪费较多的逻辑地址空间。一种可能的实施方式中,可以为S12添加执行条件:在上一次写入数据的单位存储区域的数据写放大参数大于预设的阈值的情况下,才执行S12。另外,还可以在上一次写入数据的单位存储区域的数据写入放大参数小于或等于预设的阈值的情况下,以上一次写入数据的单位存储区域的剩余存储空间的首地址,作为起始存储地址,将待存储数据存储到至少一个单位存储区域中。这样,可以兼顾节省逻辑地址空间和减少数据重复写入的数据量。
其中,上述的数据写入放大参数可以为上一次写入数据的单位存储区域的已存储的数据量。例如,上一次写入数据的单位存储区域已经存储有100B数据,则数据写放大参数为100B。数据写入放大参数还可以为上一次写入数据的单位存储区域的已存储的数据量与待存储数据的数据量之和,相对待存储数据的数据量的比值。例如,上一次写入数据的单位存储区域已经存储有100B数据;若待存储数据为200B,则该单位存储区域的数据写入放大参数为(200+100)/200=1.5。
S13:主机100在写入有待存储数据且存在剩余存储空间的单位存储区域,填充可压缩数据。
例如,每个单位存储区域可用于存储4KB的数据。若待存储数据的大小为10KB,则会为待存储数据分配3个单位存储区域。若3个单位存储区域分别为单位存储区域1、单位存储区域2以及单位存储区域3,则待存储数据的前3.8KB数据存储到单位存储区域1中,中间3.8KB数据存储到单位存储区域2,最后2.4KB数据存储到单位存储区域3。然后,分别为单位存储区域1、单位存储区域2以及单位存储区域3分配一个0.2KB存储块,用于存储数据长度。最后,对于单位存储区域3中的剩余存储空间填充可压缩数据。基于上述,存储块的数据长度占0.2KB,则可压缩数据可以为1.4KB重复的数据“0”或1.4KB重复的数据“1”等等,在此不做限定。图3中示出了当待存储数据被存储到单位存储区域1、单位存储区域2以及单位存储区域3后,逻辑地址空间的数据分布状态。
S14:主机100以至少一个单位存储区域中的每个单位存储区域中的数据为一个单位读写数据,将每个单位读写数据从逻辑地址空间写入固态硬盘200的物理地址空间。
其中,位于物理地址空间的每个单位读写数据处于压缩状态。具体地,位于所述物理地址空间的每个单位读写数据被主机100或固态硬盘200压缩后处于压缩状态,在此不作限定。
下面仍以S13中举例,介绍S14的实施方式:以单位存储区域1、单位存储区域2以及单位存储区域3中的每个单位读写数据为一个读写单位,将单位存储区域1、单位存储区域2以及单位存储区域3中的数据写入固态硬盘200。固态硬盘200分别对单位存储区域1、单位存储区域2以及单位存储区域3中的数据压缩,将压缩后的数据存储于物理地址空间。
本申请提供的数据存储方法,以上一次写入数据的单位存储区域相邻的下一个单位存储区域的首地址,作为起始存储地址,将待存储数据写入到至少一个单位存储区域中。进而,无需将上一次写入数据中的单位存储区域中的已存储数据再重新读出来写入,避免了数据的重复写入。在写入有待存储数据且存在剩余存储空间的单位存储区域,填充可压缩数据,以使得待存储数据和可压缩数据能够构成一个单位读写数据。最后以至少一个单位存储区域中的每个单位存储区域中的数据为一个单位读写数据,将每个所述单位读写数据从所述逻辑地址空间写入所述固态硬盘200的物理地址空间,其中,位于所述物理地址空间的每个单位读写数据处于压缩状态。在单位读写数据处于压缩状态时,单位读写数据中的可压缩数据被压缩,如此,占用固态硬盘200的物理地址空间的仅包括待存储数据,也不会造成数据的写放大。如此,减少了固态硬盘200的物理地址空间中存储数据的数据量大于预设的数量阈值的次数。进而,使得固态硬盘200的擦写次数也会更晚的到达预设的阈值,延长了固态硬盘200的使用寿命。
一种可能的实施方式中,上述的S12可以具体实现为:在单位存储区域的地址长度大于或等于待存储数据的数据长度的情况下,根据上一次写入数据的单位存储区域相邻的下一个单位存储区域的首地址,将待存储数据存储于相邻的下一个单位存储区域。
如图4所示,例如,每个单位存储区域可用于存储4KB的数据。若待存储数据的大小为2KB且上一次写数据的单位存储区域为单位存储区域0,则将待存储数据的存储到与单位存储区域0相邻的单位存储区域1中。
在另一种可能的实施方式中,上述的S12可以具体实现为:在单位存储区域的地址长度小于待存储数据的数据长度的情况下,根据起始存储地址,将待存储数据的一部分填充于相邻的下一个单位存储区域;在相邻的再下一个单位存储区域,继续填充待存储数据的剩余部分;判断待存储数据是否写入完毕;若写入完毕,则结束存储;若未写入完毕,则返回执行在相邻的下一个单位存储区域,继续填充待存储数据的剩余部分的操作。
如图5所示,例如,每个单位存储区域可用于存储4KB的数据、用于存储数据长度的存储块的大小为0.2KB。若待存储数据的大小为10KB且上一次写数据的单位存储区域为单位存储区域0,则将待存储数据的前3.8KB数据存储到与单位存储区域0相邻的单位存储区域1中,判断待存储数据还剩余6.2KB数据,则将待存储数据的中间3.8KB数据存储到与单位存储区域1相邻的单位存储区域2中;判断待存储数据还剩余2.4KB数据,则最后2.4KB数据存储到与单位存储区域2相邻的单位存储区域3中。此时,判断到待存储数据写入完毕,结束存储。
另外,逻辑地址空间与物理地址空间存在映射关系。当主机100需要向固态硬盘200读取数据时,读取数据的流程如下:
主机100发送数据读取命令至固态硬盘200,数据读取命令用于指示读取多个单位读写数据。
其中,数据读取命令可以携带有读取数据的逻辑地址,固态硬盘200接收到逻辑地址后,根据逻辑地址确定与逻辑地址存在映射关系的物理地址。然后,从确定的物理地址中提取出需要读出的至少一个处于压缩状态的单位读写数据。对至少一个处于压缩状态的单位读写数据解压。然后,主机100获取解压后的至少一个单位读写数据;主机100丢弃解压后的单位读写数据中的可压缩数据。
请参阅图6,本申请还提供了一种数据存储装置600,应用于主机100,主机100为固态硬盘200分配有逻辑地址空间,逻辑地址空间包括有多个单位存储区域。需要说明的是,本申请实施例所提供的数据存储装置600,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本申请实施例部分未提及之处,可参考上述的实施例中相应内容。所述装置600包括数据获取单元601、数据写入单元602以及数据填充单元603。
数据获取单元601,用于获取待存储数据。
数据写入单元602,用于以上一次写入数据的单位存储区域相邻的下一个单位存储区域的首地址,作为起始存储地址,将待存储数据写入到至少一个单位存储区域中。
一种可能的实施方式中,数据写入单元602,具体用于在上一次写入数据的单位存储区域的数据写放大参数大于预设的阈值的情况下,以上一次写入数据的单位存储区域相邻的下一个单位存储区域的首地址,作为起始存储地址,将待存储数据写入到至少一个单位存储区域中。
另外,数据写入单元602,还可以用于在上一次写入数据的单位存储区域的数据写入放大参数小于或等于预设的阈值的情况下,以上一次写入数据的单位存储区域的剩余存储空间的首地址,作为起始存储地址,将待存储数据存储到至少一个单位存储区域中。
其中,数据写入放大参数可以为上一次写入数据的单位存储区域的已存储的数据量;或者,数据写入放大参数还可以为上一次写入数据的单位存储区域的已存储的数据量与待存储数据的数据量之和相对待存储数据的数据量的比值。
一种可能的实施方式中,数据写入单元602,具体用于在单位存储区域的地址长度大于或等于待存储数据的数据长度的情况下,根据上一次写入数据的单位存储区域相邻的下一个单位存储区域的首地址,将待存储数据存储于相邻的下一个单位存储区域。
或者,另一种可能的实施方式中,数据写入单元602,具体用于在单位存储区域的地址长度小于待存储数据的数据长度的情况下,根据起始存储地址,将待存储数据的一部分填充于相邻的下一个单位存储区域;在相邻的再下一个单位存储区域,继续填充待存储数据的剩余部分;判断待存储数据是否写入完毕;若写入完毕,则结束存储;若未写入完毕,则返回执行在相邻的下一个单位存储区域,继续填充待存储数据的剩余部分的操作。
数据填充单元603,用于在写入有待存储数据且存在剩余存储空间的单位存储区域,填充可压缩数据。
数据写入单元602,还用于以至少一个单位存储区域中的每个单位存储区域中的数据为一个单位读写数据,将每个单位读写数据从逻辑地址空间写入固态硬盘200的物理地址空间,其中,位于物理地址空间的每个单位读写数据处于压缩状态。
另外,所述装置600还可以包括:数据读取单元,用于发送数据读取命令至固态硬盘200,数据读取命令用于指示读取多个单位读写数据;获取解压后的至少一个单位读写数据;丢弃解压后的单位读写数据中的可压缩数据。
图7是本申请实施例提供的电子设备的结构示意图。请参考图7,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。例如,该电子设备可以是主机。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成用于数据存储装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
获取待存储数据;
以上一次写入数据的单位存储区域相邻的下一个单位存储区域的首地址,作为起始存储地址,将所述待存储数据写入到至少一个单位存储区域中;
在写入有所述待存储数据且存在剩余存储空间的单位存储区域,填充可压缩数据;
以所述至少一个单位存储区域中的每个所述单位存储区域中的数据为一个单位读写数据,将每个所述单位读写数据从所述逻辑地址空间写入所述固态硬盘的物理地址空间,其中,位于所述物理地址空间的每个单位读写数据处于压缩状态。
上述如本申请图2所示实施例揭示的数据存储装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图2的方法,并实现数据存储装置在图2所示实施例的功能,本申请在此不再赘述。
当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图2所示实施例的方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如本申请图2所示的数据存储方法。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

Claims (10)

1.一种数据存储方法,其特征在于,应用于主机,所述主机为固态硬盘分配有逻辑地址空间,所述逻辑地址空间包括有多个单位存储区域,所述方法包括:
获取待存储数据;
以上一次写入数据的单位存储区域相邻的下一个单位存储区域的首地址,作为起始存储地址,将所述待存储数据写入到至少一个单位存储区域中;
在写入有所述待存储数据且存在剩余存储空间的单位存储区域,填充可压缩数据;
以所述至少一个单位存储区域中的每个所述单位存储区域中的数据为一个单位读写数据,将每个所述单位读写数据从所述逻辑地址空间写入所述固态硬盘的物理地址空间,其中,位于所述物理地址空间的每个单位读写数据处于压缩状态。
2.根据权利要求1所述的方法,其特征在于,所述以上一次写入数据的单位存储区域相邻的下一个单位存储区域的首地址,作为起始存储地址,将所述待存储数据写入到至少一个单位存储区域中,包括:
在上一次写入数据的单位存储区域的数据写放大参数大于预设的阈值的情况下,以上一次写入数据的单位存储区域相邻的下一个单位存储区域的首地址,作为起始存储地址,将所述待存储数据写入到至少一个单位存储区域中。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在上一次写入数据的单位存储区域的数据写入放大参数小于或等于预设的阈值的情况下,以所述上一次写入数据的单位存储区域的剩余存储空间的首地址,作为起始存储地址,将所述待存储数据存储到至少一个单位存储区域中。
4.根据权利要求3所述的方法,其特征在于,所述数据写入放大参数为上一次写入数据的单位存储区域的已存储的数据量;或者,所述数据写入放大参数为上一次写入数据的单位存储区域的已存储的数据量与所述待存储数据的数据量之和相对所述待存储数据的数据量的比值。
5.根据权利要求1所述的方法,其特征在于,所述将所述待存储数据写入到至少一个单位存储区域中,包括:
在所述单位存储区域的地址长度大于或等于所述待存储数据的数据长度的情况下,根据上一次写入数据的单位存储区域相邻的下一个单位存储区域的首地址,将所述待存储数据存储于所述相邻的下一个单位存储区域。
6.根据权利要求1所述的方法,其特征在于,所述将所述待存储数据存储到至少一个单位存储区域中,包括:
在所述单位存储区域的地址长度小于所述待存储数据的数据长度的情况下,根据所述起始存储地址,将所述待存储数据的一部分填充于所述相邻的下一个单位存储区域;
在相邻的再下一个单位存储区域,继续填充所述待存储数据的剩余部分;
判断所述待存储数据是否写入完毕;
若写入完毕,则结束存储;
若未写入完毕,则返回执行在相邻的下一个单位存储区域,继续填充所述待存储数据的剩余部分的操作。
7.根据权利要求1所述的方法,其特征在于,在以所述至少一个单位存储区域中的每个所述单位存储区域中的数据为一个单位读写数据,将每个所述单位读写数据从所述逻辑地址空间写入所述固态硬盘的物理地址空间之后,所述方法还包括:
发送数据读取命令至所述固态硬盘,所述数据读取命令用于指示读取多个所述单位读写数据;
获取解压后的至少一个单位读写数据;
丢弃所述解压后的至少一个单位读写数据中的可压缩数据。
8.一种数据存储装置,其特征在于,应用于主机,所述主机为固态硬盘分配有逻辑地址空间,所述逻辑地址空间包括有多个单位存储区域,所述装置包括:
数据获取单元,用于获取待存储数据;
数据写入单元,用于以上一次写入数据的单位存储区域相邻的下一个单位存储区域的首地址,作为起始存储地址,将所述待存储数据写入到至少一个单位存储区域中;
数据填充单元,用于在写入有所述待存储数据且存在剩余存储空间的单位存储区域,填充可压缩数据;
所述数据写入单元,还用于以所述至少一个单位存储区域中的每个所述单位存储区域中的数据为一个单位读写数据,将每个所述单位读写数据从所述逻辑地址空间写入所述固态硬盘的物理地址空间,其中,位于所述物理地址空间的每个单位读写数据处于压缩状态。
9.一种电子设备,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行如权利要求1至7任一项所述的数据存储方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7任一项所述的数据存储方法。
CN202110563314.2A 2021-05-24 2021-05-24 数据存储方法与装置 Active CN113176859B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110563314.2A CN113176859B (zh) 2021-05-24 2021-05-24 数据存储方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110563314.2A CN113176859B (zh) 2021-05-24 2021-05-24 数据存储方法与装置

Publications (2)

Publication Number Publication Date
CN113176859A true CN113176859A (zh) 2021-07-27
CN113176859B CN113176859B (zh) 2022-11-08

Family

ID=76929676

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110563314.2A Active CN113176859B (zh) 2021-05-24 2021-05-24 数据存储方法与装置

Country Status (1)

Country Link
CN (1) CN113176859B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113918095A (zh) * 2021-10-15 2022-01-11 石家庄通合电子科技股份有限公司 数据的混合交叉存储方法、装置及电子设备
WO2024012528A1 (zh) * 2022-07-15 2024-01-18 华为技术有限公司 数据存储方法、电子设备以及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866428A (zh) * 2014-02-21 2015-08-26 联想(北京)有限公司 数据存取方法和数据存取装置
CN105808151A (zh) * 2014-12-29 2016-07-27 华为技术有限公司 固态硬盘存储设备和固态硬盘存储设备的数据存取方法
CN108073363A (zh) * 2017-12-28 2018-05-25 深圳市得微电子有限责任公司 数据存储方法、存储设备及计算机可读存储介质
CN109690681A (zh) * 2016-06-24 2019-04-26 华为技术有限公司 处理数据的方法、存储装置、固态硬盘和存储系统
US20190130990A1 (en) * 2017-11-02 2019-05-02 National Tsing Hua University Method and system for testing firmware of solid-state storage device, and electronic apparatus
CN111857571A (zh) * 2020-06-12 2020-10-30 苏州浪潮智能科技有限公司 固态硬盘物理块地址分配方法、装置、设备和存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866428A (zh) * 2014-02-21 2015-08-26 联想(北京)有限公司 数据存取方法和数据存取装置
CN105808151A (zh) * 2014-12-29 2016-07-27 华为技术有限公司 固态硬盘存储设备和固态硬盘存储设备的数据存取方法
CN109690681A (zh) * 2016-06-24 2019-04-26 华为技术有限公司 处理数据的方法、存储装置、固态硬盘和存储系统
US20190130990A1 (en) * 2017-11-02 2019-05-02 National Tsing Hua University Method and system for testing firmware of solid-state storage device, and electronic apparatus
CN108073363A (zh) * 2017-12-28 2018-05-25 深圳市得微电子有限责任公司 数据存储方法、存储设备及计算机可读存储介质
CN111857571A (zh) * 2020-06-12 2020-10-30 苏州浪潮智能科技有限公司 固态硬盘物理块地址分配方法、装置、设备和存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113918095A (zh) * 2021-10-15 2022-01-11 石家庄通合电子科技股份有限公司 数据的混合交叉存储方法、装置及电子设备
CN113918095B (zh) * 2021-10-15 2023-12-15 石家庄通合电子科技股份有限公司 数据的混合交叉存储方法、装置及电子设备
WO2024012528A1 (zh) * 2022-07-15 2024-01-18 华为技术有限公司 数据存储方法、电子设备以及存储介质

Also Published As

Publication number Publication date
CN113176859B (zh) 2022-11-08

Similar Documents

Publication Publication Date Title
CN113176859B (zh) 数据存储方法与装置
US11556466B2 (en) Logical-to-physical data structures
KR101561546B1 (ko) 메모리 장치 관리 방법, 그 관련 메모리 장치 및 그 관련 제어기
KR101566849B1 (ko) 메모리 장치 관리 방법, 그 관련 메모리 장치 및 그 관련 제어기
US10789170B2 (en) Storage management method, electronic device and computer readable medium
US20190391916A1 (en) Method for managing flash memory module and associated flash memory controller and electronic device
US10289559B2 (en) Non-volatile memory apparatus and operating method thereof
CN111475425A (zh) 管理闪存模块的方法及相关的闪存控制器与电子装置
US20190121726A1 (en) Method for accessing flash memory module and associated flash memory controller and electronic device
CN103229150A (zh) 数据控制方法及系统
CN108170376B (zh) 存储卡读和写的方法和系统
CN116679887B (zh) 用于NAND Flash的通用控制模块及方法
US10970206B2 (en) Flash data compression decompression method and apparatus
CN113177045A (zh) 数据提取方法、装置、可计算存储设备及数据请求设备
CN115712394A (zh) 数据读写方法、装置、计算机设备及可读存储介质
CN111367464B (zh) 一种存储空间管理方法及装置
CN111488118A (zh) 管理闪存模块的方法及相关的闪存控制器与电子装置
CN117215966B (zh) 一种芯片sdk接口的测试方法、测试装置及电子设备
CN117632809B (zh) 存储器控制器、数据读取方法及存储装置
CN113760195B (zh) 一种基于嵌入式的fatfs文件系统
CN117472295B (zh) 一种存储器、数据处理方法、设备及介质
CN112416675B (zh) 一种针对存储器的扩容检测方法及装置
CN113568578B (zh) 一种图片处理方法、装置、电子设备和可读存储介质
CN111198651B (zh) 进行存储空间管理的方法以及数据存储装置及其控制器
CN111435285B (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