CN114968837A - 数据压缩方法及闪存设备 - Google Patents

数据压缩方法及闪存设备 Download PDF

Info

Publication number
CN114968837A
CN114968837A CN202210594147.2A CN202210594147A CN114968837A CN 114968837 A CN114968837 A CN 114968837A CN 202210594147 A CN202210594147 A CN 202210594147A CN 114968837 A CN114968837 A CN 114968837A
Authority
CN
China
Prior art keywords
data
flash memory
cold
memory medium
compressed
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.)
Pending
Application number
CN202210594147.2A
Other languages
English (en)
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.)
Shenzhen Dapu Microelectronics Co Ltd
Original Assignee
Shenzhen Dapu Microelectronics 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 Shenzhen Dapu Microelectronics Co Ltd filed Critical Shenzhen Dapu Microelectronics Co Ltd
Priority to CN202210594147.2A priority Critical patent/CN114968837A/zh
Publication of CN114968837A publication Critical patent/CN114968837A/zh
Priority to PCT/CN2023/093999 priority patent/WO2023226797A1/zh
Pending legal-status Critical Current

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
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请实施例涉及存储设备应用领域,公开了一种数据压缩方法及闪存设备,该数据压缩方法应用于闪存设备,闪存设备包括闪存介质,该数据压缩方法包括:读取闪存介质中的至少两个冷数据;对闪存介质中的至少两个冷数据进行压缩,得到至少两个压缩后的数据;拼接至少两个压缩后的数据,生成至少一个写单元;将每一写单元写入到闪存介质。通过获取冷数据,并对冷数据进行压缩,而热数据不进行压缩,使得后续读取热数据时不需要解压,使得热数据的I O性能不受影响,从而提高闪存设备的整体的读I O性能。

Description

数据压缩方法及闪存设备
技术领域
本申请涉及存储设备应用领域,特别是涉及一种数据压缩方法及闪存设备。
背景技术
闪存设备,例如:固态硬盘(Solid State Drives,SSD),是采用固态电子存储芯片阵列而制成的硬盘,固态硬盘包括控制单元和存储单元(FLASH存储芯片或DRAM存储芯片)。随着固态硬盘的发展,SSD固件的功能越来越复杂,存储密度和需求的容量越来越大,除了与之增长***容量(P2L表,L2P表,trimbitmap表以及其他元数据)外,还有部分仿真数据(dummy),raid保护数据等,这些数据均会占用整个SSD的空间,导致用户可用容量变少。
通常,扩大盘片容量的方法是增加NAND数量,以此扩充盘片的整体用户容量,但是,增加NAND数量意味着增加SSD成本。随着SSD存储密度和需求的容量越来越大,然而整个盘片的容量中还有部分是存储SSD***的空间,以及dummy,raid保护数据等,所以用户容量最终容量进一步变少,因此,为了使固态硬盘能够存储更多的数据,出现了数据压缩的方法。
但是,现有的一些压缩技术都是在主机(Host)写入数据的时候直接对写入的数据进行压缩操作,导致后续读取数据时都需要经过解压缩过程,增大读数据延时,从而影响固态硬盘的整体的读IO性能。
基于此,现有技术亟待改进。
发明内容
本申请实施例提供一种数据压缩方法及闪存设备,其解决了在主机写入数据时,直接对写入的数据进行压缩操作,导致后续读取数据时均需要解压造成的读数据延时的技术问题,提高了闪存设备整体的读IO性能。
为解决上述技术问题,本申请实施例提供以下技术方案:
第一方面,本申请实施例提供一种数据压缩方法,应用于闪存设备,闪存设备包括闪存介质,方法包括:
读取闪存介质中的至少两个冷数据;
对闪存介质中的至少两个冷数据进行压缩,得到至少两个压缩后的数据;
拼接至少两个压缩后的数据,生成至少一个写单元;
将每一写单元写入到闪存介质。
在一些实施例中,读取闪存介质中的至少两个冷数据,包括:
获取冷数据表;
根据冷数据表,确定冷数据表中的有效冷数据;
读取闪存介质中的至少两个有效冷数据。
在一些实施例中,根据冷数据表,确定冷数据表中的有效冷数据,包括:
查找冷数据表中的冷数据的逻辑地址;
若冷数据满足预设条件,则确定冷数据为有效冷数据,其中,预设条件,包括:逻辑地址属于有效逻辑地址。
在一些实施例中,方法还包括:判断逻辑地址是否属于有效逻辑地址,具体包括:
若冷数据的逻辑地址对应的物理地址有效,以及,冷数据的逻辑地址位于闪存介质中的用户数据对应的逻辑地址所在的区间,以及,冷数据的逻辑地址没有被第一擦除命令处理过,则确定逻辑地址属于有效逻辑地址。
在一些实施例中,闪存设备包括高速缓存模块,读取闪存介质中的冷数据,包括:
按照数据被写入闪存介质时的数据粒度大小,将闪存介质中的冷数据写入到高速缓存模块,其中,一个冷数据对应一个数据粒度大小。
在一些实施例中,闪存设备包括数据压缩模块,对闪存介质中的至少两个冷数据进行压缩,得到至少两个压缩后的数据,包括:
从高速缓存模块中获取闪存介质中的冷数据;
向数据压缩模块发送数据压缩命令,以使数据压缩模块对闪存介质中的至少两个冷数据进行压缩,得到至少两个压缩后的数据。
在一些实施例中,闪存设备包括数据重组模块,拼接至少两个压缩后的数据,生成至少一个写单元,包括:
在得到至少两个压缩后的数据之后,向数据重组模块发送数据重组命令,以使数据重组模块对至少两个压缩后的数据进行组合,生成至少一个写单元,其中,每一个写单元均包括一个头文件,头文件用于记录每一压缩后的数据在写单元中的起始位置以及数据长度。
在一些实施例中,对至少两个压缩后的数据进行组合,生成至少一个写单元,包括:
将第一个压缩后的数据与下一个压缩后的数据进行拼接,得到拼接单元,并判断拼接单元的数据总长度是否大于一个写单元的数据长度;
若是,则放弃当前的压缩后的数据,将当前的拼接单元作为一个写单元,并且,以当前的压缩后的数据作为第一个压缩后的数据,继续进行拼接;
若否,则将当前的压缩后的数据拼接到拼接单元,直至当前的拼接单元的数据总长度大于一个写单元的数据总长度;
在一些实施例中,在放弃当前的压缩后的数据之后,若当前的拼接单元的数据总长度小于一个写单元的数据总长度,则填充无效数据,以使当前的拼接单元的数据总长度等于一个写单元的数据总长度。
在一些实施例中,方法还包括:
在读取闪存介质中的数据时,若数据位于写单元,则解压写单元,并根据写单元的头文件,确定数据的起始位置以及数据长度,以读取写单元中的压缩后的数据。
第二方面,本申请实施例提供一种闪存设备,包括:
闪存介质;
数据读取模块,用于读取闪存介质中的至少两个冷数据;
数据压缩模块,用于对闪存介质中的至少两个冷数据进行压缩,得到至少两个压缩后的数据;
数据重组模块,用于拼接至少两个压缩后的数据,生成至少一个写单元;
数据写入模块,用于将每一写单元写入到闪存介质。
在一些实施例中,闪存设备还包括:
高速缓存模块,连接数据读取模块以及数据压缩模块,用于存储数据读取模块读取到的闪存介质中的至少两个冷数据,并且,由数据压缩模块对高速压缩模块中的至少两个冷数据进行压缩。
第三方面,本申请实施例还提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使闪存设备能够执行如第一方面的数据压缩方法。
本申请实施例的有益效果是:区别于现有技术的情况下,本申请实施例提供的一种数据压缩方法,应用于闪存设备,闪存设备包括闪存介质,方法包括:读取闪存介质中的至少两个冷数据;对闪存介质中的至少两个冷数据进行压缩,得到至少两个压缩后的数据;拼接至少两个压缩后的数据,生成至少一个写单元;将每一写单元写入到闪存介质。通过获取冷数据,并对冷数据进行压缩,而热数据不进行压缩,使得后续读取热数据时不需要解压,使得热数据的IO性能不受影响,从而提高闪存设备的整体的读IO性能。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本申请实施例提供的一种闪存设备的结构示意图;
图2是本申请实施例提供的一种数据压缩方法的流程示意图;
图3是图2中的步骤S21的细化流程图;
图4是本申请实施例提供的一种确定有效逻辑地址的流程示意图;
图5是图2中的步骤S22的细化流程图;
图6是本申请实施例提供的一种压缩前与压缩后的示意图;
图7是本申请实施例提供的一种数据拼接的流程示意图;
图8是本申请实施例提供的一种数据拼接的示意图;
图9是本申请实施例提供的一种更新头文件的示意图;
图10是本申请实施例提供的一种数据流向的示意图;
图11是本申请实施例提供的一种读取数据的示意图;
图12是本申请实施例提供的一种闪存设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,如果不冲突,本申请实施例中的各个特征可以相互结合,均在本申请的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。再者,本申请所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
下面结合说明书附图具体说明本申请的技术方案:
请参阅图1,图1是本申请实施例提供的一种闪存设备的结构示意图;
如图1所示,闪存设备100包括闪存介质110以及与闪存介质110连接的控制器120。其中,闪存设备100通过有线或无线的方式与主机200通信连接,用以实现数据交互。
闪存介质110,作为闪存设备100的存储介质,也称作闪存、Flash、Flash存储器或Flash颗粒,属于存储器件的一种,是一种非易失性存储器,在没有电流供应的条件下也能够长久地保存数据,其存储特性相当于硬盘,使得闪存介质110得以成为各类便携型数字设备的存储介质的基础。
控制器120,包括数据转换器121、处理器122、缓存器123、闪存控制器124以及接口125。
数据转换器121,分别与处理器122和闪存控制器124连接,数据转换器121用于将二进制数据转换为十六进制数据,以及将十六进制数据转换为二进制数据。具体地,当闪存控制器124向闪存介质110写入数据时,通过数据转换器121将待写入的二进制数据转换为十六进制数据,然后再写入闪存介质110。当闪存控制器124从闪存介质110读取数据时,通过数据转换器121将闪存介质110中存储的十六进制数据转换为二进制数据,然后从二进制数据页寄存器中读取转换后的数据。其中,数据转换器121可以包括二进制数据寄存器和十六进制数据寄存器。二进制数据寄存器可以用于保存由十六进制转换为二进制后的数据,十六进制数据寄存器可以用于保存由二进制转换为十六进制后的数据。
处理器122,分别与数据转换器121、缓存器123、闪存控制器124以及接口125连接,其中,处理器122与数据转换器121、缓存器123、闪存控制器124以及接口125可以通过总线或者其他方式连接,处理器用于运行存储在缓存器123中的非易失性软件程序、指令以及模块,从而实现本申请任一方法实施例。
缓存器123,主要用于缓存主机200发送的读/写指令以及根据主机200发送的读/写指令从闪存介质110获取的读数据或者写数据。
闪存控制器124,与闪存介质110、数据转换器121、处理器122以及缓存器123连接,用于访问后端的闪存介质110,管理闪存介质110的各种参数和数据I/O;或者,用于提供访问的接口和协议,实现对应的SAS/SATA target协议端或者NVMe协议端,获取主机200发出的I/O指令并解码和生成内部私有数据结果等待执行;或者,用于负责闪存转换层(Flashtranslation layer,FTL)的核心处理。
接口125,连接主机200以及数据转换器121、处理器122以及缓存器123,用于接收主机200发送的数据,或者,接收处理器122发送的数据,实现主机200与处理器122之间的数据传输,接口125可以为SATA-2接口、SATA-3接口、SAS接口、MSATA接口、PCI-E接口、NGFF接口、CFast接口、SFF-8639接口和M.2NVME/SATA协议。
可以理解的是,在SSD***中,NAND数量决定了整个盘片的容量大小,每个盘片在出厂后容量大小就是固定的,无法再额外增加容量;会占用的盘片容量的数据类型主要如下几种:
1、用户容量,指的是用户通过主机(Host)写入数据在SSD中进行存储所占用的容量;
2、***数据,包括元数据,l2p表,p2l表,坏块表,trimbitmap表等;
3、Logzone数据,指的是记录***运行日志空间的数据;
4、Dummy数据及其他保护数据。
盘片容量主要存储如上四种数据,***数据,Logzone以及Dummy等数据都是用户数据的存储安全,持久化,增加数据稳定性所必须的数据类型,每个SSD产品用户可用容量都是固定的,无法增加额外的容量供用户使用;用户想要写入更多数据也不可能,***会直接报错以防止超出空间的数据写入SSD。
因此,在不增加NAND颗粒的基础上,为了增加用户容量,通常通过对数据进行压缩,但是,现有的一些压缩技术都是在主机(Host)写入数据的时候直接对写入的数据进行压缩操作,导致后续读取数据时都需要经过解压缩过程,增大读数据延时,从而影响固态硬盘的整体的读IO性能。
基于此,本申请实施例提供一种数据压缩方法,以提高闪存设备整体的读IO性能。
请参阅图2,图2是本申请实施例提供的一种数据压缩方法的流程示意图;
其中,该数据压缩方法,应用于闪存设备,该闪存设备包括闪存介质。
如图2所示,该数据压缩方法,包括:
步骤S21:读取闪存介质中的至少两个冷数据;
可以理解的是,冷数据为闪存设备中不常用到的用户数据,将这部分数据在后台进行压缩处理,基本不会影响闪存设备的写性能。
请再参阅图3,图3是图2中的步骤S21的细化流程图;
如图3所示,该步骤S21:读取闪存介质中的至少两个冷数据,包括:
步骤S211:获取冷数据表;
具体的,冷数据表用于存储闪存设备中的所有的冷数据以及冷数据的逻辑地址,例如:逻辑映射地址(Logic Mapping Address,LMA)。其中,冷数据表是利用冷热数据模块进行处理得到,该冷热数据模块用于运行遍历冷热数据的算法,由遍历冷热数据的算法进行计算得到冷数据表,其中,该遍历冷热数据的算法用于区别冷数据和热数据,其基本工作原理是根据数据读取写入的时间戳、读取的次数以及一些其他和冷热状态相关的参数进行判定,最后判断该数据为冷数据或热数据。
步骤S212:根据冷数据表,确定冷数据表中的有效冷数据;
具体的,根据该冷数据表,确定冷数据表中的所有的冷数据,并根据所有的冷数据,确定所有的有效冷数据。
在本申请实施例中,根据冷数据表,确定冷数据表中的有效冷数据,包括:
查找冷数据表中的冷数据的逻辑地址;
若冷数据满足预设条件,则确定冷数据为有效冷数据,其中,预设条件,包括:逻辑地址属于有效逻辑地址。
在本申请实施例中,该方法还包括:判断逻辑地址是否属于有效逻辑地址,具体包括:
若冷数据的逻辑地址对应的物理地址有效,以及,冷数据的逻辑地址位于闪存介质中的逻辑地址所在的区间,以及,冷数据的逻辑地址没有被第一擦除命令处理过,则确定逻辑地址属于有效逻辑地址。
请再参阅图4,图4是本申请实施例提供的一种确定有效逻辑地址的流程示意图;
如图4所示,确定有效逻辑地址的流程,包括:
开始;
步骤S401:获取冷数据的逻辑地址;
具体的,逻辑地址包括逻辑映射地址(Logic Mapping Address,LMA)。
步骤S402:查询该逻辑地址对应的物理地址是否有效;
具体的,闪存设备维护一个地址映射关系,该地址映射关系以地址映射表进行表征,该地址映射表包括逻辑地址与物理地址的映射关系,该物理地址包括物理映射地址(Physical Mapping Address,PMA),例如:该地址映射关系包括逻辑映射地址(LogicMapping Address,LMA)与闪存阵列的物理映射地址(Physical Mapping Address,PMA)的映射关系,通过查询该逻辑地址对应的物理地址,判断该物理地址是否有效。
若查询该逻辑地址对应的物理地址有效,则进入步骤S403;
若查询该逻辑地址对应的物理地址无效,则进入步骤S406。
步骤S403:该逻辑地址是否位于闪存介质中的用户数据对应的逻辑地址所在的区间;
具体的,判断冷数据对应的逻辑地址是否位于闪存介质中的用户数据所在的逻辑地址所在的区间,可以理解的是,用户数据对应一段逻辑地址的区间,通过判断该冷数据对应的逻辑地址是否位于该区间,可以确定该冷数据是否为用户数据,即该冷数据是否位于用户数据区。
若该逻辑地址位于闪存介质中的用户数据对应的逻辑地址所在的区间,则进入步骤S404;
若该逻辑地址位于闪存介质中的用户数据对应的逻辑地址所在的区间,则进入步骤S406。
步骤S404:该逻辑地址是否没有被第一擦除命令处理过;
具体的,第一擦除命令包括trim命令,其中,trim命令是告知闪存设备要擦除哪些数据的SATA接口指令,属于ATA8-ACS规范的技术指令。
在本申请实施例中,闪存设备维护一张trim表,判断该逻辑地址是否没有被第一擦除命令处理过,包括:查询该闪存设备的trim表,确定该逻辑地址是否被trim命令处理过。
若该逻辑地址被trim命令处理过,则确定该逻辑地址被第一擦除命令处理过,则进入步骤S406;
若该逻辑地址没有被trim命令处理过,则确定该逻辑地址没有被第一擦除命令处理过,则进入步骤S405。
步骤S405:逻辑地址属于有效逻辑地址;
具体的,若该逻辑地址属于有效逻辑地址,则确定该逻辑地址对应的冷数据为有效冷数据。
步骤S406:逻辑地址不属于有效逻辑地址;
具体的,若该逻辑地址不属于有效逻辑地址,则确定该逻辑地址对应的冷数据不属于有效冷数据。
结束;
需要说明的是,查询该逻辑地址对应的物理地址是否有效;该逻辑地址是否位于闪存介质中的逻辑地址所在的区间;该逻辑地址是否没有被第一擦除命令处理过;上述的三个判断步骤的顺序不进行限制,例如:可以先判断该逻辑地址是否位于闪存介质中的逻辑地址所在的区间,再判断该逻辑地址对应的物理地址是否有效,或者其他判断顺序。或者,可以同时对三个判断步骤进行处理,即同时进行三个判断步骤,以上均属于本申请的保护范围。
步骤S213:读取闪存介质中的至少两个有效冷数据;
具体的,在确定闪存介质中的所有有效冷数据之后,读取闪存介质中的至少两个有效冷数据。优选地,读取闪存介质中的所有有效冷数据。
在本申请实施例中,闪存设备包括高速缓存模块,读取闪存介质中的冷数据,包括:
按照数据被写入闪存介质时的数据粒度大小,将闪存介质中的冷数据写入到高速缓存模块,其中,一个冷数据对应一个数据粒度大小。具体的,按照数据被写入闪存介质时的数据粒度大小,将闪存介质中的有效冷数据写入到高速缓存模块。
在本申请实施例中,数据粒度大小包括4112bit倍数,4160bit倍数,以及4224bit倍数等所有相关数据格式的大小,在此不进行限定。
例如:数据被写入闪存介质时的数据粒度大小为4KB,则每一个冷数据对应的空间大小为4KB,此时,将每一个4KB大小的冷数据写入到高速缓存模块。
在本申请实施例中,该高速缓存模块包括动态随机存储器,例如:双倍速率同步动态随机存储器(Double DataRate Synchronous Dynamic Random Access Memory,DDRSRAM)。
步骤S22:对闪存介质中的至少两个冷数据进行压缩,得到至少两个压缩后的数据;
具体的,闪存设备包括数据压缩模块,请再参阅图5,图5是图2中的步骤S22的细化流程图;
如图5所示,该步骤S22:对闪存介质中的至少两个冷数据进行压缩,得到至少两个压缩后的数据,包括:
步骤S221:从高速缓存模块中获取闪存介质中的冷数据;
具体的,从高速缓存模块中读取闪存介质中的有效冷数据。
步骤S222:向数据压缩模块发送数据压缩命令,以使数据压缩模块对闪存介质中的至少两个冷数据进行压缩,得到至少两个压缩后的数据。
具体的,向数据压缩模块发送数据压缩命令,以使数据压缩模块对闪存介质中的至少两个冷数据进行压缩,得到至少两个压缩后的数据,即至少两个压缩后的有效冷数据。其中,该数据压缩模块对高速缓存模块中的有效冷数据进行压缩,得到每一个压缩后的有效冷数据。其中,压缩后的有效冷数据被用于进一步组合,以便写入到闪存介质。
例如,对闪存介质中的至少两个冷数据进行压缩,包括:对闪存介质中的每一个冷数据进行压缩,其中,压缩过程由数据压缩模块进行。可以理解的是,压缩后的数据长度是由压缩算法决定的,不同的压缩算法或者不同的数据模式(pattern),均可以导致压缩后的数据长度不同。
请再参阅图6,图6是本申请实施例提供的一种压缩前与压缩后的示意图;
如图6所示,压缩前、压缩后的物理介质的大小不变,即闪存的物理空间不变,但是,压缩前的标准容量和压缩后的容量不同,压缩后的容量大于压缩前的标准容量,两者的比例为压缩比。
步骤S23:拼接至少两个压缩后的数据,生成至少一个写单元;
具体的,闪存设备包括数据重组模块,该数据重组模块用于拼接压缩后的数据。具体的,拼接至少两个压缩后的数据,生成至少一个写单元,包括:
在得到至少两个压缩后的数据之后,向数据重组模块发送数据重组命令,以使数据重组模块对至少两个压缩后的数据进行组合,生成至少一个写单元,其中,每一个写单元均包括一个头文件,头文件用于记录每一压缩后的数据在写单元中的起始位置以及数据长度。
例如:在得到至少两个压缩后的有效冷数据之后,向数据重组模块发送数据重组命令,以使数据重组模块对至少两个压缩后的有效冷数据进行组合,生成至少一个写单元。
在本申请实施例中,对至少两个压缩后的数据进行组合,生成至少一个写单元,包括:
将第一个压缩后的数据与下一个压缩后的数据进行拼接,得到拼接单元,并判断拼接单元的数据总长度是否大于一个写单元的数据长度;
若是,则放弃当前的压缩后的数据,将当前的拼接单元作为一个写单元,并且,以当前的压缩后的数据作为第一个压缩后的数据,继续进行拼接;
若否,则将当前的压缩后的数据拼接到拼接单元,直至当前的拼接单元的数据总长度大于一个写单元的数据总长度。
具体的,请再参阅图7,图7是本申请实施例提供的一种数据拼接的流程示意图;
如图7所示,数据拼接的流程,包括:
步骤S701:初始化拼接单元S,S=0;
具体的,初始化一个拼接单元S,使得拼接单元S的初始数据长度为0。
步骤S702:获取压缩数据i,数据长度为Li;
具体的,获取第i个压缩数据,其中,i为正整数,例如:开始时i=1,则获取第一个压缩后的数据,该第一个压缩后的数据对应的数据长度为L0。
步骤S703:拼接压缩数据;
具体的,将第一个压缩后的数据与拼接单元进行拼接,此时,拼接单元的数据长度S=0+L0=L0,即第一个压缩后的数据对应的数据长度。
步骤S704:S=S+Li,S是否大于一个写单元的数据长度;
具体的,判断拼接单元的数据长度是否大于一个写单元的数据长度,若拼接单元的数据长度不大于一个写单元的数据长度,则返回步骤S702,获取下一个压缩后的数据,并将下一个压缩后的数据与拼接单元进行拼接,比如:将第一个压缩后的数据与下一个压缩后的数据进行拼接,得到拼接单元,并判断拼接单元的数据总长度是否大于一个写单元的数据长度,以此类推,直至拼接单元的数据总长度大于一个写单元的数据长度。
若拼接单元的数据总长度大于一个写单元的数据长度,此时,放弃当前的压缩后的数据,以得到当前拼接的拼接单元,而当前拼接的拼接单元的数据总长度可能等于一个写单元的数据长度,也可能小于一个写单元的数据长度,若当前的拼接单元的数据总长度小于一个写单元的数据总长度,则填充无效数据(Dummy),使得当前的拼接单元的数据总长度等于一个写单元的数据总长度。
在本申请实施例中,一个写单元的数据长度与闪存设备的一个存储单元存储的比特数有关,根据闪存设备的一个存储单元存储的比特数,可以划分为SLC(Single-LevelCell)、MLC(Multi-Level Cell)、TLC(Trinary-Level Cell),其中,SLC即单个存储单元存储1bit的数据,MLC即单个存储单元存储2bit的数据,TLC即单个存储单元存储3bit的数据。例如:若闪存设备的一个存储单元存储的比特数为1bit,则设置一个写单元的数据长度为64KB;若闪存设备的一个存储单元存储的比特数为2bit,则设置一个写单元的数据长度为80KB;若闪存设备的一个存储单元存储的比特数为3bit,则设置一个写单元的数据长度为96KB。
具体的,一个写单元的数据长度为闪存设备中的每一个数据页(Page)的数据大小与闪存颗粒的plane个数的乘积。其中,plane是闪存设备可以依据读、写、擦除等命令进行操作的最小单位。一个plane就是一个存储矩阵,包括若干个物理块(Block)。物理块(Block)是闪存设备(NAND Flash)的最小擦除单位,一个物理块(Block)包括若干个物理页(Page),物理页(Page)是闪存设备(NAND Flash)的最小读写单位,一个物理页(Page)包括若干个字节(Byte)。
具体的,请再参阅图8,图8是本申请实施例提供的一种数据拼接的示意图;
假设一个写单元的数据长度为64KB,并且,每一个压缩后的数据的数据长度为3KB。
如图8所示,左边的拼接方式为4K粒度拼接方式,右边的为本申请的数据拼接方式,即64K粒度拼接方式,可以看出,相比4K粒度的拼接方式,本申请中每次压缩后的数据紧凑连接,中间不会穿插无效数据,使得拼接得到的数据的无效数据的比例更小,因此,本申请能够减少NAND中的无效数据占比。并且,由于一个写单元的数据长度为64KB以上,本申请能够处理压缩比很低的数据,比如压缩比固定,一个4096bit的数据压成3000bit,那么64K粒度就可以一直塞23个压缩数据,相比4K粒度,那么就一个3000bit数据占一个4K空间,相当于没有压缩,64K空间也只能存16个压缩数据,本申请能够提高数据的存储率。
若拼接单元的数据总长度大于一个写单元的数据长度,则进入步骤S705;
若拼接单元的数据总长度不大于一个写单元的数据长度,则返回步骤S702。
步骤S705:更新头文件;
具体的,每一个写单元对应一个头文件,在完成一个写单元的数据拼接之后,需要更新头文件(extern header)。
请再参阅图9,图9是本申请实施例提供的一种更新头文件的示意图;
如图9所示,在本申请实施例中,通过新增一个头文件结构(extern header结构)来存储压缩后的数据信息,记录每笔数据压缩后的长度以及所在重组后数据的具***置情况,具体的,该头文件用于记录每一压缩后的数据在写单元中的起始位置以及数据长度,例如:该头文件包括每一个压缩后的数据的逻辑地址、在写单元中的起始位置(start)以及数据长度,其中,该逻辑地址包括逻辑映射地址(Logic Mapping Address,LMA)。
在本申请实施例中,头文件(extern header结构数据)存储在每一个写单元的起始位置。
可以理解的是,在后续需要读取冷数据的时候,通过头文件信息可以得到每笔用户数据的具***置,进而把用户需要的数据输出给主机(Host);如果压缩后的数据可以重组成一个NAND写单元,那么将压缩好的数据以及extern header写入NAND中。
例如LMA0,4,5,6,7,9,17为冷数据且为有效数据时,先将数据从NAND中读出,送入压缩后根据实际情况构建写单元,并更新头文件,即压缩后的数据的位置、长度信息,最终将压缩后的数据写入到闪存介质中。
在本申请实施例中,一个冷数据,例如LMA 0的原始状态是4K大小,start指的是这个冷数据在当前这个压缩后的数据的起始位置,len指的是数据长度,即长度信息,根据起始位置和长度信息可以获取某个冷数据的压缩后的数据,从而将压缩后的数据进行解压缩,就可以复原出原始4K大小的数据。
步骤S706:将拼接后的数据写入闪存介质;
具体的,若拼接后的数据,即拼接单元的数据总长度可能等于一个写单元的数据长度,也可能小于一个写单元的数据长度,若小于一个写单元的数据长度,则填充无效数据(Dummy),使得其数据总长度等于一个写单元的数据长度,从而将一个写单元写入到闪存介质。
步骤S24:将每一写单元写入到闪存介质。
假设一个重组后的写单元是由多个4K经过压缩后组成的,写单元的大小为64K,则多个压缩后的数据如果可以加起来可以凑成64K那么就可以组成一个写单元,如果不能凑齐就需要继续等后面压缩的数据一起拼凑成64K,或者,填充无效数据(NAND),直至数据大小满足64K,才会往NAND发写命令进行数据写入。
请再参阅图10,图10是本申请实施例提供的一种数据流向的示意图;
如图10所示,数据流向为主机向闪存设备的高速缓存写入热数据,高速缓存将热数据写入到闪存介质(NAND),闪存控制器从闪存介质(NAND)中获取原始数据,并判断原始数据是否为冷数据,若是冷数据,则将冷数据写入到动态随机存储器,在动态随机存储器中对数据进行压缩,得到压缩后的数据,并且,在动态随机存储器中对压缩后的数据进行数据拼接,将拼接后的数据写入到闪存介质(NAND)。
可以理解的是,主机(Host)的数据来源一般为4096bit(相当于4K),当前NIDA硬件会加入前端循环冗余校验码(FE Cyclic Redundancy Check,FCRC)以及元数据(Metadata),其中,前端循环冗余校验码为查错校验码,该前端循环冗余校验码的对应的空间大小为8bit;元数据为用于描述数据属性及其环境的数据,例如:存放前端发送的存储位置、历史数据等信息,其中,该元数据对应的空间大小为8bit。根据Host设置的512格式以及4K分别组合有三种大小的格式,即4112bit倍数,4160bit倍数,以及4224bit倍数的大小,因此,软件压缩需要按照这些数据大小及倍数进行压缩,即压缩入口的数据大小为4112bit倍数,4160bit倍数,以及4224bit倍数等所有相关数据格式的大小。
在本申请实施例中,由于冷数据为闪存设备中不常用到的用户数据,将这部分数据在后台进行压缩处理,基本不会影响闪存设备的写性能,因此,通过对冷数据压缩,可以缩小实际数据占用NAND的空间,扩大数据写入量,在不增加NAND颗粒的情况下扩大用户使用容量,即增加用户写入数据量;并且,采用一个写单元的大小对压缩后的数据进行重组,每笔软件压缩后的数据紧凑连接,中间不会穿插无效数据,因此可以减少NAND中的无效数据占比,能够有效提高数据压缩效果。
请再参阅图11,图11是本申请实施例提供的一种读取数据的示意图;
如图11所示,如果用户读取热数据(热点数据),由于热数据没有被压缩,因此,读流程不受影响,不需要经过解压缩模块,时延性能等均不受影响;若用户读取冷数据,即压缩数据,则需要解压缩模块进行解压缩操作,从而读取被压缩的冷数据,具体的,在读取闪存介质中的数据时,若数据位于写单元,则解压写单元,并根据写单元的头文件,确定数据的起始位置以及数据长度,以读取写单元中的压缩后的数据。
例如:若主机(Host)需要读取某一数据,根据该数据的逻辑位置确定该数据位于闪存介质中的写单元,此时解压该写单元,并根据写单元的头文件的头文件信息(externheader字段),得到该数据的起始位置以及数据长度,,最后将解压缩得到的数据发送给主机(Host)。优选地,在确定该数据位于闪存介质中的写单元之后,读取写单元的头文件的头文件信息,根据头文件信息,确定该数据的起始位置以及数据长度,将该数据进行解压,以将该数据发送给主机(Host),从而避免直接解压整个写单元,提高解压效率,进一步提高了数据读取的速度。
可以理解的是,若主机(Host)读取的数据不位于闪存介质中的写单元,则无需进行解压,使得本申请能够从整体上提高数据读取的速度。
在本申请实施例中,通过提供一种数据压缩方法,应用于闪存设备,闪存设备包括闪存介质,方法包括:读取闪存介质中的至少两个冷数据;对闪存介质中的至少两个冷数据进行压缩,得到至少两个压缩后的数据;拼接至少两个压缩后的数据,生成至少一个写单元;将每一写单元写入到闪存介质。通过获取冷数据,并对冷数据进行压缩,而热数据不进行压缩,使得后续读取热数据时不需要解压,使得热数据的IO性能不受影响,从而提高闪存设备的整体的读IO性能。
请再参阅图12,图12是本申请实施例提供的一种闪存设备的结构示意图;
如图12所示,该闪存设备1200,包括:数据读取模块1210,数据压缩模块1220,数据重组模块1230,数据写入模块1240,高速缓存模块1250以及闪存介质1260,其中,
数据读取模块1210,用于读取闪存介质中的至少两个冷数据;
数据压缩模块1220,用于对闪存介质中的至少两个冷数据进行压缩,得到至少两个压缩后的数据;
数据重组模块1230,用于拼接至少两个压缩后的数据,生成至少一个写单元;
数据写入模块1240,用于将每一写单元写入到闪存介质。
高速缓存模块1250,连接数据读取模块1210以及数据压缩模块1220,用于存储数据读取模块1210读取到的闪存介质中的至少两个冷数据,并且,由数据压缩模块1220对高速压缩模块1250中的至少两个冷数据进行压缩。其中,高速缓存模块1250用于提供给数据压缩模块1220临时存放用户数据。
闪存介质1260,用于存储数据写入模块写入的用户数据。
具体的,在数据读取模块1210将冷数据读取至高速缓存模块1250之后,构建数据压缩命令,将冷数据送至数据压缩模块1220进行压缩,使得冷数据经过数据压缩算法之后,输出压缩后的数据以及压缩后的长度信息,将压缩后的数据再次构建数据组合命令,向数据重组模块1230发送数据重组命令,以使数据重组模块1230对压缩后的数据进行组合,最后由数据写入模块1240将组合后的写单元写入到闪存介质1260中。
在本申请实施例中,数据压缩命令、数据重组命令均采用消息(Message)的形式发送。该数据压缩算法可以是内部开发的压缩算法,也可以是开源的压缩算法集成到闪存设备的***里面,例如:window界面的RAR、ZIP等压缩算法。
需要说明的是,上述闪存设备1200中的数据读取模块1210,数据压缩模块1220,数据重组模块1230,数据写入模块1240,高速缓存模块1250以及闪存介质1260的相关功能,可参考上述实施例中提及的内容,在此不再赘述。
在本申请实施例中,通过提供一种闪存设备,包括:闪存介质;数据读取模块,用于读取闪存介质中的至少两个冷数据;数据压缩模块,用于对闪存介质中的至少两个冷数据进行压缩,得到至少两个压缩后的数据;数据重组模块,用于拼接至少两个压缩后的数据,生成至少一个写单元;数据写入模块,用于将每一写单元写入到闪存介质。通过获取冷数据,并对冷数据进行压缩,而热数据不进行压缩,使得后续读取热数据时不需要解压,使得热数据的IO性能不受影响,从而提高闪存设备的整体的读IO性能。
本申请实施例还提供了一种非易失性计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如上述一个或多个处理器可执行上述任意方法实施例中的数据压缩方法,例如,执行上述任意方法实施例中的数据压缩方法,例如,执行以上描述的各个步骤。
以上所描述的装置或设备实施例仅仅是示意性的,其中作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用直至得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上的本申请的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (12)

1.一种数据压缩方法,其特征在于,应用于闪存设备,所述闪存设备包括闪存介质,所述方法包括:
读取所述闪存介质中的至少两个冷数据;
对所述闪存介质中的至少两个冷数据进行压缩,得到至少两个压缩后的数据;
拼接至少两个所述压缩后的数据,生成至少一个写单元;
将每一所述写单元写入到所述闪存介质。
2.根据权利要求1所述的方法,其特征在于,所述读取所述闪存介质中的至少两个冷数据,包括:
获取冷数据表;
根据所述冷数据表,确定所述冷数据表中的有效冷数据;
读取所述闪存介质中的至少两个有效冷数据。
3.根据权利要求2所述的方法,其特征在于,所述根据所述冷数据表,确定所述冷数据表中的有效冷数据,包括:
查找所述冷数据表中的冷数据的逻辑地址;
若所述冷数据满足预设条件,则确定所述冷数据为有效冷数据,其中,所述预设条件,包括:所述逻辑地址属于有效逻辑地址。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:判断所述逻辑地址是否属于有效逻辑地址,具体包括:
若所述冷数据的逻辑地址对应的物理地址有效,以及,所述冷数据的逻辑地址位于所述闪存介质中的用户数据对应的逻辑地址所在的区间,以及,所述冷数据的逻辑地址没有被第一擦除命令处理过,则确定所述逻辑地址属于有效逻辑地址。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述闪存设备包括高速缓存模块,所述读取所述闪存介质中的冷数据,包括:
按照数据被写入所述闪存介质时的数据粒度大小,将所述闪存介质中的冷数据写入到所述高速缓存模块,其中,一个冷数据对应一个数据粒度大小。
6.根据权利要求5所述的方法,其特征在于,所述闪存设备包括数据压缩模块,所述对所述闪存介质中的至少两个冷数据进行压缩,得到至少两个压缩后的数据,包括:
从所述高速缓存模块中获取所述闪存介质中的冷数据;
向所述数据压缩模块发送数据压缩命令,以使所述数据压缩模块对所述闪存介质中的至少两个冷数据进行压缩,得到至少两个压缩后的数据。
7.根据权利要求6所述的方法,其特征在于,所述闪存设备包括数据重组模块,所述拼接至少两个所述压缩后的数据,生成至少一个写单元,包括:
在得到至少两个压缩后的数据之后,向所述数据重组模块发送数据重组命令,以使所述数据重组模块对至少两个压缩后的数据进行组合,生成至少一个写单元,其中,每一个写单元均包括一个头文件,所述头文件用于记录每一压缩后的数据在所述写单元中的起始位置以及数据长度。
8.根据权利要求7所述的方法,其特征在于,所述对至少两个压缩后的数据进行组合,生成至少一个写单元,包括:
将第一个压缩后的数据与下一个压缩后的数据进行拼接,得到拼接单元,并判断所述拼接单元的数据总长度是否大于一个写单元的数据长度;
若是,则放弃当前的压缩后的数据,将当前的拼接单元作为一个写单元,并且,以当前的压缩后的数据作为第一个压缩后的数据,继续进行拼接;
若否,则将当前的压缩后的数据拼接到所述拼接单元,直至当前的拼接单元的数据总长度大于一个写单元的数据总长度。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在放弃当前的压缩后的数据之后,若当前的拼接单元的数据总长度小于一个写单元的数据总长度,则填充无效数据,以使当前的拼接单元的数据总长度等于一个写单元的数据总长度。
10.根据权利要求7-9任一项所述的方法,其特征在于,所述方法还包括:
在读取闪存介质中的数据时,若所述数据位于写单元,则解压所述写单元,并根据所述写单元的头文件,确定所述数据的起始位置以及数据长度,以读取所述写单元中的压缩后的数据。
11.一种闪存设备,其特征在于,包括:
闪存介质;
数据读取模块,用于读取所述闪存介质中的至少两个冷数据;
数据压缩模块,用于对所述闪存介质中的至少两个冷数据进行压缩,得到至少两个压缩后的数据;
数据重组模块,用于拼接至少两个所述压缩后的数据,生成至少一个写单元;
数据写入模块,用于将每一所述写单元写入到所述闪存介质。
12.根据权利要求11所述的闪存设备,其特征在于,所述闪存设备还包括:
高速缓存模块,连接所述数据读取模块以及所述数据压缩模块,用于存储所述数据读取模块读取到的所述闪存介质中的至少两个冷数据,并且,由所述数据压缩模块对所述高速压缩模块中的至少两个冷数据进行压缩。
CN202210594147.2A 2022-05-27 2022-05-27 数据压缩方法及闪存设备 Pending CN114968837A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210594147.2A CN114968837A (zh) 2022-05-27 2022-05-27 数据压缩方法及闪存设备
PCT/CN2023/093999 WO2023226797A1 (zh) 2022-05-27 2023-05-12 数据压缩方法及闪存设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210594147.2A CN114968837A (zh) 2022-05-27 2022-05-27 数据压缩方法及闪存设备

Publications (1)

Publication Number Publication Date
CN114968837A true CN114968837A (zh) 2022-08-30

Family

ID=82957384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210594147.2A Pending CN114968837A (zh) 2022-05-27 2022-05-27 数据压缩方法及闪存设备

Country Status (2)

Country Link
CN (1) CN114968837A (zh)
WO (1) WO2023226797A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023226797A1 (zh) * 2022-05-27 2023-11-30 深圳大普微电子科技有限公司 数据压缩方法及闪存设备
CN117331514A (zh) * 2023-12-01 2024-01-02 超越科技股份有限公司 一种基于区域划分的固态盘数据压缩***及方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107870728B (zh) * 2016-09-23 2021-02-09 伊姆西Ip控股有限责任公司 用于移动数据的方法和设备
CN110908608A (zh) * 2019-11-22 2020-03-24 苏州浪潮智能科技有限公司 一种存储空间节省方法及***
CN111125047B (zh) * 2019-12-06 2024-03-12 中盈优创资讯科技有限公司 冷热数据目录识别方法及装置
CN114356225A (zh) * 2021-12-17 2022-04-15 得一微电子股份有限公司 存储器的数据存储方法、装置、终端设备以及存储介质
CN114968837A (zh) * 2022-05-27 2022-08-30 深圳大普微电子科技有限公司 数据压缩方法及闪存设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023226797A1 (zh) * 2022-05-27 2023-11-30 深圳大普微电子科技有限公司 数据压缩方法及闪存设备
CN117331514A (zh) * 2023-12-01 2024-01-02 超越科技股份有限公司 一种基于区域划分的固态盘数据压缩***及方法
CN117331514B (zh) * 2023-12-01 2024-02-23 超越科技股份有限公司 一种基于区域划分的固态盘数据压缩***及方法

Also Published As

Publication number Publication date
WO2023226797A1 (zh) 2023-11-30

Similar Documents

Publication Publication Date Title
US8560926B2 (en) Data writing method, memory controller and memory storage apparatus
TWI455144B (zh) 使用於快閃記憶體的控制方法與控制器
WO2016107272A1 (zh) 固态硬盘存储设备和固态硬盘存储设备的数据存取方法
WO2023226797A1 (zh) 数据压缩方法及闪存设备
US10691534B2 (en) Data encoding method, data decoding method and storage controller
TWI656531B (zh) 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置
CN113360093B (zh) 内存***和设备
CN111813591B (zh) Nand Flash的数据纠错方法、装置、电子设备及存储介质
TWI802324B (zh) 異常斷電恢復方法、記憶體控制電路單元以及記憶體儲存裝置
CN113724775B (zh) 元信息管理方法、固态硬盘控制器及固态硬盘
US12045470B2 (en) Method of writing data in nonvolatile memory device and nonvolatile memory device performing the same
US10911064B1 (en) Symbol pair encoding for data compression
TW202044046A (zh) 資料儲存裝置與資料處理方法
KR20220085708A (ko) 고체 상태 드라이브 내의 영구적 메모리 내의 논리 대 물리 어드레스 인디렉션 테이블
CN117075810B (zh) 一种基于zns固态硬盘的数据管理方法
CN111026678B (zh) 基于固态硬盘的缓存设计方法、装置及计算机设备
TW201908957A (zh) 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置
CN114003169B (zh) 一种用于ssd的数据压缩方法
CN115509798A (zh) 一种刷新、副本和ldpc混合解码结合的存储器读取优化方法
JP2023076370A (ja) キー値データ記憶デバイスのためのeccパリティ偏り
CN113140253A (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
US11762735B2 (en) Interleaved ECC coding for key-value data storage devices
CN113724776B (zh) 元信息管理方法、固态硬盘控制器及固态硬盘
US11055231B2 (en) Data storage devices and data processing methods of skipping editing of fields in H2F table when consecutive addresses are present in F2H table
CN117762819A (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