CN109213433A - 闪存设备中数据写入的方法及设备 - Google Patents

闪存设备中数据写入的方法及设备 Download PDF

Info

Publication number
CN109213433A
CN109213433A CN201710551236.8A CN201710551236A CN109213433A CN 109213433 A CN109213433 A CN 109213433A CN 201710551236 A CN201710551236 A CN 201710551236A CN 109213433 A CN109213433 A CN 109213433A
Authority
CN
China
Prior art keywords
data
physical page
address
controller
page address
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
CN201710551236.8A
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.)
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Original Assignee
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
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 Huawei Technologies Co Ltd, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201710551236.8A priority Critical patent/CN109213433A/zh
Priority to PCT/CN2018/094205 priority patent/WO2019007315A1/zh
Publication of CN109213433A publication Critical patent/CN109213433A/zh
Pending legal-status Critical Current

Links

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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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
    • 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
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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/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/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/0658Controller construction 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]

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)
  • Computer Security & Cryptography (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本方案提供一种闪存设备数据写入的方法和设备:闪存设备接收携带逻辑地址和第一数据的数据写请求,通过逻辑地址对应的物理地址读取第二数据,得到第二数据与第一数据的差值第三数据,压缩第三数据得到第四数据,将第四数据编码为第五数据存储于无效数据物理页。本方案可以充分利用无效数据物理页的存储空间中的无效数据,提高了编码效果,进而减少了数据擦除次数,延长了闪存设备的使用寿命。

Description

闪存设备中数据写入的方法及设备
技术领域
本发明涉及信息技术领域,尤其涉及闪存设备中数据写入的方法及设备。
背景技术
闪存设备是一种在断电情况下仍能保持所存储的数据信息的存储器,其应用包括但不限于固态硬盘、安全数字(Secure Digital,SD)卡等。由于闪存设备的物理特性的限制,闪存设备中数据写入的比特位只能由0变至1,而不能从1变至0。因此,闪存写过之后,在第二次写之前必须对其进行擦除操作。但是,闪存设备的擦除次数有上限,达到上限时,闪存设备无法继续使用。
现有技术中闪存设备收到写请求,将待写入数据直接编码到物理页中,从而避免进行数据擦除。由于该种编码需要用使用大量的比特位来表示待写入数据,编码效果差。
发明内容
一方面,本发明实施例提供一种闪存设备中数据写入方案,其中该闪存设备包括控制器和存储介质,该存储介质包含多个物理页;该案具体包括:
该控制器接收数据写请求;该数据写请求携带逻辑地址及第一数据;其中,该闪存设备存储有该逻辑地址与第一物理页地址的映射关系;该控制器根据该逻辑地址与该第一物理页地址的映射关系从该第一物理页地址指向的存储空间读取第二数据,将该第一数据与该第二数据进行逻辑运算得到第三数据,压缩该第三数据得到第四数据,将该第四数据编码到无效数据物理页的存储空间得到第五数据;该无效数据物理页的存储空间的地址为第二物理页地址,该控制器记录存储被编码数据的第二物理页地址。其中,该逻辑运算可以为异或运算或同或运算。本方案通过将写入逻辑地址的第一数据与已经写入同一个逻辑地址的第二数据进行逻辑运算,因为写入相同逻辑地址中的第一数据相对已经写入相同逻辑地址的第二数据只有部分发生变化,因此通过逻辑运算,如异或逻辑运算得到的第三数据会包含大量的0,少量的1,将减少了需要编码到无效数据物理页中的数据量,因此可以充分利用无效数据物理页的存储空间中的无效数据,提高了编码效果,进而减少了数据擦除次数,延长了闪存设备的使用寿命。
结合第一方面,在第一方面的第一种可能实现方式中,该控制器记录该第二物理页地址,具体包括:该控制器将该第二物理页地址存储到该第一物理页地址指向的存储空间所在的物理页的额外空间。
结合第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式中,该方案还包括:该控制器计算该第五数据的校验数据,该控制器将该校验数据存储在该第二物理页地址指向的存储空间所在的物理页的额外空间。校验数据可以用于在在读取第五数据时通过该校验数据验证该第五数据的准确性,如第五数据发生错误,可以通过该校验数据进行恢复,提高了数据的可靠性。
结合第一方面的第一种或第二种可能的实现方式,在第一方面的第三种可能实现方式中,所述方案还包括:该控制器接收数据读请求;该数据读请求携带所述逻辑地址;该控制器根据该逻辑地址与该第一物理页地址的映射关系从该第一物理页地址指向的存储空间读取该第二数据,从该第一物理页地址指向的存储空间所在的物理页的额外空间读取存储该被编码数据的该第二物理页地址,根据该第二物理页地址从该第二物理页地址指向的存储空间读取该第五数据,解码该第五数据得到该第四数据,解压缩该第四数据得到该第三数据,将该第三数据与该第二数据进行该逻辑运算得到该第一数据。
结合第一方面,在第一方面的第四种可能实现方式中,该控制器记录第二物理页的地址,具体包括:该控制器建立所述逻辑地址与该物理页地址的映射关系,并生成标识;其中该物理页地址包含该第一物理页地址和该第二物理页地址,该标识用于指示该第二物理页地址指向的存储空间中的数据为被编码数据。进一步的,控制器生成标识具体可以为生成标识位来指示第二物理页地址中指向的存储空间中的数据类型。例如用0指示为非被编码的数据,1指示为被编码的数据。控制器也可以维护一个物理页地址表作为标识,用于指示物理页地址指向的存储空间中存储的数据类型。
结合第一方面的第四种可能实现方式,在第一方面的第五种可能实现方式中,该方案还包括:该接收数据读请求;该数据读请求携带该逻辑地址;该控制器根据该逻辑地址与该物理页地址的映射关系从该第一物理页地址指向的存储空间中读取该第二数据,从该第二物理页地址指向的存储空间读取该第五数据,根据该标识,确定该第五数据为被编码数据;该控制器解码该第五数据得到该第四数据,解压缩该第四数据得到该第三数据,将该第三数据与该第二数据进行该逻辑运算得到该第一数据。结合第一方面,在第一方面的第六种可能实现方式中,该方案还包括:所述控制器压缩该第三数据得到第四数据之前,确定该第三数据中0的位数小于阈值。
结合第一方面,在第一方面的第七种可能实现方式中,该方案还包括:该控制器将该第四数据编码到无效数据物理页的存储空间得到第五数据之前,确定该第三数据压缩成功。
第二方面,本发明实施例提供了一种闪存设备,该闪存设备包括控制器和存储介质,该存储介质包含多个物理页,其中,该控制器用于执行本发明实施例第一方面中的各种方案。
第三方面,本发明实施例提供了一种控制器,该控制器用于闪存设备,该闪存设备还包括存储介质,该存储介质包含多个物理页;其中,该控制器包含各种单元,分别用于执行本发明实施例第一方面中的各种方案。
第四方面,本发明实施例还提供了计算机程序产品和非易失性计算机可读存储介质,其中计算机程序产品和非易失性计算机可读存储介质中包含计算机指令,计算机指令的非易失性存储介质和计算机程序产品,闪存设备的控制器执行计算机指令用于实现本发明实施例第一方面中的各种方案。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作以简单地介绍。
图1为闪存设备结构图;
图2为数据二次写入的流程图;
图3为编码过程示意图;
图4为本发明实施例中一种控制器结构图。
具体实施方式
现有闪存设备结构如图1所示,闪存设备100包含控制器110和存储介质120。存储介质由存储单元(Cel l)构成,如存储单元1、存储单元2、存储单元n。存储单元为闪存设备的最小的存储结构。一个存储单元存储1比特数据的闪存设备称为单级存储单元(SingleLevel Cel l,SLC),一个存储单元存储2比特数据的闪存设备称为多级存储单元(Multiple Level Cel l,MLC),一个存储单元存储3比特数据的闪存设备称为为三级存储单元(Triple Level Cel l,TLC)。若干个存储单元组成物理页,若干个物理页组成块。其中物理页是闪存设备最小的读写单位。
闪存设备100作为常用电子存储设备,其中存储的数据会经常被修改或删除。由于闪存设备的自身的特性,存储单元中的数据只能从0变为1。如果从存储单元中的数据要从1变为0,只能先将数据擦除,再写入新数据。闪存设备100的擦除操作的基本单元不是存储单元,也不是物理页,而是块。解决频繁数据块擦除的一种方式为将写入数据编码到无效数据物理页中,减少数据擦除次数,为此,本发明实施例提供了一种闪存设备中数据写入的方法。
本发明实施例中,闪存设备100的控制器110接收数据写请求;数据写请求携带逻辑地址和数据1。控制器110查询逻辑地址没有对应的物理页地址时,为数据1分配物理页地址1。逻辑地址没有物理页地址1表明该逻辑地址是首次写入数据。控制器将数据1写入物理页地址1指向的存储空间,建立逻辑地址与物理页地址1的映射关系。当闪存设备100的控制器110再次接收携带上述逻辑地址和数据2的写请求,则执行图2中所示的如下流程:
201:根据该逻辑地址与物理页地址1的映射关系从该物理页地址1指向的存储空间读取数据1。
202:将数据1与数据2进行逻辑运算得到数据3。
当控制器110再次接收携带该逻辑地址的写请求,此次写请求用于修改物理页地址1中的数据。在闪存设备中,新写入的修改数据,即数据2,并不覆盖物理页地址1中的数据,而是将数据2写到新的物理页地址中。在实际应用中,修改后的数据与修改前的数据相比,大部分数据相同,只有部分数据发生改变。因此,将修改前的数据与修改后的数据进行逻辑运算,以异或操作为例,结果中会包含大量的“0”,少量的“1”。当然本发明实施例中的逻辑运算也可以为同或操作,本发明实施例对此不作限定。
控制器110还可以判断数据3中“0”的位数是否在于阈值。当“0”的位数大于阈值,则表明数据2与数据1中差异较小,可经过压缩编码到无效数据物理页,则执行步骤203;当数据3不大于阈值,则表明数据2与数据1中差异较大,则为数据2分配空闲的物理页地址3指向的存储空间,并物理页地址1指向的存储空间中存储的数据1标为无效数据,将逻辑地址与物理页地址1的映射关系更新为逻辑地址与物理页地址3的映射关系。本发明实施例中的无效物理页是指存储无效数据的物理页。
203:压缩数据3得到数据4。
本发明实施例在步骤202的操作中得到包含大量的“0”,少量的“1”的数据3,对这种类型的数据进行压缩会进一步提高压缩率。具体实现中,压缩算法可以为流程长度编码(Run Length Encoding,RLE)或哈夫曼压缩等,本发明实施例对此不作限定。
进一步的,控制器执行步骤204之前,可以判断数据3判断是否压缩成功。判断压缩是否成功的方式包括但不限于压缩率是否大于压缩阈值。其中一种实现方式,压缩率为数据4的位数(如长度、大小等)与数据3的位数的比值。压缩成功则执行步骤204;压缩失败,则为数据2分配空闲的物理页地址3指向的存储空间,并物理页地址1指向的存储空间中存储的数据1标为无效数据,将逻辑地址与物理页地址1的映射关系更新为逻辑地址与物理页地址3的映射关系。
204:将数据4编码到无效数据物理页的存储空间得到数据5,其中,无效数据物理页的存储空间的地址为物理页地址2。
控制器110进行步骤201-204操作,减少了需要编码到无效数据物理页中的数据量,充分利用了无效数据物理页的存储空间中的无效数据,提高了编码效果,进而减少了数据擦除次数,延长了闪存设备的使用寿命。
将数据4编码到无效数据物理页的存储空间得到数据5,一种实现方式如下所示:图3为一段8位的数据4编码到无效数据物理页的存储空间的过程,其中数据4为数据3经哈夫曼压缩得到。图中,数据4为“00111011”,物理页地址2指向的无效数据物理页上存储的无效的数据7为“001100100001000000”。
301:“01”代替数据4中的“0”,“10”代替数据4中的“1”,得到数据6。
302:将数据6中的数据以两位为一组数据写入数据7中的0位,不可写位标记为“11”,得到数据5;除去不可写位,数据5与数据6完全相同。写入过程为:如图3中302-1所示,若数据7中有两位“0”,则在两位“0”中写入数据6的一组数据,并继续写入下一组数据;如图3中302-2所示,若数据7中有两位“1”,则跳过两位“1”,验证两位“1”之后的数据位是否可写;如图3中302-3所示,若数据7中的两位数据与待写入的一组数据6相同,保持这两位不变,并继续在其后两位写入下一组数据;如图3中302-4所示,若数据7中两位与数据6中待写入的一组数据不同,且不为“11”,将这两位写为“11”,并继续在其后两位写入数据6的下一组数据。
步骤301中得到数据6还可以有多种实施例。例如,可以“01”代替数据4中的“1”,“10”代替数据4中的“0”。同时,可采用较长的编码长度,例如用4位编码表示数据4中的3位数据,来实现将数据4编码到无效数据物理页的存储空间得到数据5。本发明实施例对此不做限制。
步骤205:记录存储被编码数据的物理页地址2。
具体实现中,控制器110记录物理页地址2的方式在不同类型的闪存设备中的实现方式不同。如与非(NAND)闪存设备出现存储单元损坏的概率较大,NAND闪存设备在存储数据时,会增加数据校验机制。具有校验机制的闪存设备的物理页,包括存储空间和额外空间(spare space或spare area)。额外空间,指的是物理页上分配出的用于存储校验数据的一段地址空间。额外空间大小一般大于校验数据的大小,因此额外空间中通常会存在有可写位。因此,在NAND闪存设备中,控制器110会将存储被编码数据的物理页地址2存储到物理页地址1指向的存储空间所在的物理页的额外空间1。因此,当控制器110从物理页地址1指向的存储空间所在的物理页的额外空间读取物理页地址2,则确定物理页地址2中存储的为被编码的数据。
根据上述NAND闪存设备中物理页地址2的存储方式,控制器110接收数据读请求,数据读请求携带逻辑地址。控制器根据逻辑地址与物理页地址1的映射关系,从物理页地址1中指向的存储空间读取数据1。控制器从物理页地址1所在的物理页的额外空间中读取存储被编码数据的物理页地址2,后读取物理页地址2指向的存储空间存储的数据5,解码数据5得到数据4,解压缩数据4得到数据3,将数据3与数据1进行逻辑运算得到数据2,数据2即为数据读请求所请求的数据。
另外一种实现方式,控制器110建立逻辑地址与物理页地址的映射关系,并生成标识。其中,物理页地址物理页地址1和物理页地址2,标识用于指示物理页地址指向的存储空间中的数据为被编码数据。例如用0标识为非被编码数据,1标识被编码数据。该标识位可以位于逻辑地址与物理页地址的映射关系中。控制器110也可以维护一个物理页地址表作为标识,用于记录物理页地址指向的存储空间中存储的数据类型。控制器接收数据读请求,数据读请求携带逻辑地址。控制器110根据逻辑地址与物理页地址的映射关系,从物理页地址1中指向的存储空间读取数据1,从物理页地址2指向的存储空间中数据5。控制器110根据物理页地址2的标识确定物理页地址2指向的存储空间存储的数据5为被编码的数据,控制器110解码数据5得到数据4,解压缩数据4得到数据3,将数据3与数据1进行逻辑运算得到数据2,数据2即为数据读请求所请求的数据。具体实现中,可以分别用标识来标识物理页地址1和物理页地址2中存储的数据类型,本发明实施例对此不作限定。另一种实现,标识可以为映射表中的位置,如第一列记录逻辑地址,第二列记录存储被编码的数据的物理页地址1,第三列用于记录存储被编码的数据的物理页地址2,在这种实现方式中,生成逻辑地址与物理地址页地址的映射关系,并生成标识,是指生成记录逻辑地址与物理页地址的映射关系的表项。
与本发明实施例相对应,闪存设备中的控制器110具体结构如图4所示,包括接收单元410、读取单元420、逻辑运算单元430、压缩处理单元440、编码处理单元450和记录生成单元460。其中,接收单元410用于接收数据写请求,数据写请求携带逻辑地址及第一数据;闪存设备存储有逻辑地址与第一物理页地址的映射关系。读取单元420用于根据逻辑地址与第一物理页地址的映射关系从第一物理页地址指向的存储空间读取第二数据。逻辑运算430单元用于将第一数据与第二数据进行逻辑运算得到第三数据。压缩处理单元440用于压缩第三数据得到第四数据。编码处理单元350用于将第四数据编码到无效数据物理页的存储空间得到第五数据,该无效数据物理页的存储空间的地址为第二物理页地址。记录生成单元460用于记录存储被编码数据的第二物理页地址。
如图4所示的控制器110,一种实现方式,记录生成单元460具体用于将第二物理页地址存储到第一物理页地址指向的存储空间所在的物理页的额外空间。进一步的,所述控制器110还包括校验单元,用于计算第五数据的校验数据,将校验数据存储到第二物理页地址指向的存储空间所在的物理页的额外空间。进一步的,其中,接收单元410还用于接收数据读请求,数据读请求携带逻辑地址;读取单元420还用于根据逻辑地址与第一物理页地址的映射关系从第一物理页地址指向的存储空间读取第二数据,从第一物理页地址指向的存储空间所在的物理页的额外空间读取存储被编码数据的第二物理页地址,根据第二物理页地址从第二物理页地址指向的存储空间读取第五数据;编码处理单元350还用于解码第五数据得到第四数据;压缩处理440单元还用于解压缩第四数据得到第三数据;逻辑运算单元430还用于将述第三数据与所述第二数据进行所述逻辑运算得到所述第一数据。
如图4所示的控制器110,另一种实现方式,记录生成单元460具体用于建立逻辑地址与物理页地址的映射关系,并生成标识;其中物理页地址包含第一物理页地址和第二物理页地址,记录生成单元标记第一物理页地址和第二物理页地址,标识用于指示第二物理页地址指向的存储空间中的数据为被编码数据。进一步的,其中,接收单元410还用于接收数据读请求,数据读请求携带逻辑地址;读取单元420还用于根据逻辑地址与物理页地址的映射关系从第一物理页地址指向的存储空间读取第二数据,从第二物理页地址指向的存储空间读取所述第五数据;记录生成单元460用于根据标识,确定第五数据为被编码数据;编码处理单元350还用于解码第五数据得到第四数据;压缩处理单元440还用于解压缩第四数据得到第三数据;逻辑运算单元430还用于将述第三数据与所述第二数据进行所述逻辑运算得到所述第一数据。
如图4所示的控制器110,还包括确定单元用于压缩所述第三数据得到第四数据之前,确定第三数据中0的位数小于阈值。所述确定单元还用于将第四数据编码到第二物理页的存储空间得到第五数据之前,确定第三数据压缩成功。
图4中所示的控制器110的具体实现可参考前面实施例中描述,其中各单元可以分别由对应的硬件芯片实现,如接收单元对应接口卡芯片、读取单元、逻辑运算单元对应逻辑运算芯片、压缩处理单元对应压缩芯片、编码处理单元对应编码处理芯片,记录生成单元存储芯片。在另一种实现中,一个或多个单元可以集成在一个硬件芯片上。其中逻辑运算单元对输入的数据进行逻辑运算操作,压缩处理单元对输入的数据进行压缩或解压缩处理,编码处理芯片对输入的数据进行编码或解编码。在另一种实现中,控制器110中的各单元也可以由处理器执行计算机指令实现。本发明实施例对此不作限定。相应的,本发明实施例提供一种包含计算机指令的非易失性存储介质和计算机程序产品,闪存设备的处理器执行计算机指令用于实现本发明实施例所描述的方案。
本发明实施例中的闪存设备可以为固态硬盘、加速卡、SD卡等。闪存设备还可以为使用开放通道(Open Channel)的固态硬盘组成的存储阵列等。
在本发明所提供的几个实施例中,应该理解到,所公开的装置、方法,可以通过其它的方式实现。例如,以上所描述的装置实施例所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

Claims (24)

1.一种闪存设备中数据写入的方法,其特征在于,所述闪存设备包括控制器和存储介质,所述存储介质包含多个物理页;所述方法包括:
所述控制器接收数据写请求;所述数据写请求携带逻辑地址及第一数据;其中,所述闪存设备存储有所述逻辑地址与第一物理页地址的映射关系;
所述控制器根据所述逻辑地址与所述第一物理页地址的映射关系从所述第一物理页地址指向的存储空间读取第二数据;
所述控制器将所述第一数据与所述第二数据进行逻辑运算得到第三数据;其中,所述逻辑运算为异或操作或同或操作;
所述控制器压缩所述第三数据得到第四数据;
所述控制器将所述第四数据编码到无效数据物理页的存储空间得到第五数据;所述无效数据物理页的存储空间的地址为第二物理页地址;
所述控制器记录存储被编码数据的所述第二物理页地址。
2.如权利要求1所述方法,其特征在于,所述控制器记录存储被编码数据的所述第二物理页地址,具体包括:所述控制器将所述第二物理页地址存储到所述第一物理页地址指向的存储空间所在的物理页的额外空间。
3.如权利要求2所述方法,其特征在于,还包括:所述控制器将所述第五数据的校验数据存储在所述第二物理页地址指向的存储空间所在的物理页的额外空间。
4.如权利要求2或3所述的方法,其特征在于,所述方法还包括:
所述控制器接收数据读请求;所述数据读请求携带所述逻辑地址;
所述控制器根据所述逻辑地址与所述第一物理页地址的映射关系从所述第一物理页地址指向的存储空间读取所述第二数据;
所述控制器从所述第一物理页地址指向的存储空间所在的物理页的额外空间读取存储所述被编码数据的所述第二物理页地址,;
所述控制器根据所述第二物理页地址从所述第二物理页地址指向的存储空间读取所述第五数据;
所述控制器解码所述第五数据得到所述第四数据;
所述控制器解压缩所述第四数据得到所述第三数据;
所述控制器将所述第三数据与所述第二数据进行所述逻辑运算得到所述第一数据。
5.如权利要求1所述的方法,其特征在于,所述控制器记录存储被编码数据的第二物理页的地址,具体包括:所述控制器建立所述逻辑地址与所述物理页地址的映射关系,并生成标识;其中所述物理页地址包含所述第一物理页地址和所述第二物理页地址,所述标识用于指示所述第二物理页地址指向的存储空间中的数据为被编码数据。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
所述控制器接收数据读请求;所述数据读请求携带所述逻辑地址;
所述控制器根据所述逻辑地址与所述物理页地址的映射关系从所述第一物理页地址指向的存储空间中读取所述第二数据,从所述第二物理页地址指向的存储空间读取所述第五数据;
所述控制器根据所述标识,确定所述第五数据为被编码数据;
所述控制器解码所述第五数据得到所述第四数据;
所述控制器解压缩所述第四数据得到所述第三数据;
所述控制器将所述第三数据与所述第二数据进行所述逻辑运算得到所述第一数据。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:所述控制器压缩所述第三数据得到第四数据之前,确定所述第三数据中0的位数小于阈值。
8.如权利要求1所述的方法,其特征在于,所述方法还包括:所述控制器将所述第四数据编码到无效数据物理页的存储空间得到第五数据之前,确定所述第三数据压缩成功。
9.一种闪存设备,其特征在于,所述闪存设备包括控制器和存储介质,所述存储介质包含多个物理页;其中,所述控制器用于执行如下操作:
接收数据写请求;所述数据写请求携带逻辑地址及第一数据;其中,所述闪存设备存储有所述逻辑地址与第一物理页地址的映射关系;
根据所述逻辑地址与所述第一物理页地址的映射关系从所述第一物理页地址指向的存储空间读取第二数据;
将所述第一数据与所述第二数据进行逻辑运算得到第三数据;其中,所述逻辑运算为异或操作或同或操作;
压缩所述第三数据得到第四数据;
将所述第四数据编码到无效数据物理页的存储空间得到第五数据;所述无效数据物理页的存储空间的地址为第二物理页地址;
记录存储被编码数据的所述第二物理页地址。
10.如权利要求9所述的闪存设备,其特征在于,所述控制器具体用于将所述第二物理页地址存储到所述第一物理页地址指向的存储空间所在的物理页的额外空间。
11.如权利要求10所述的闪存设备,其特征在于,所述控制器还用于计算所述第五数据的校验数据,将所述校验数据存储在所述第二物理页地址指向的存储空间所在的物理页的额外空间。
12.如权利要求10或11所述的闪存设备,其特征在于,所述控制器还用于执行如下操作:
接收数据读请求;所述数据读请求携带所述逻辑地址;
根据所述逻辑地址与所述第一物理页地址的映射关系从所述第一物理页地址指向的存储空间读取所述第二数据;
从所述第一物理页地址指向的存储空间所在的物理页的额外空间读取存储所述被编码数据的所述第二物理页地址;
根据所述第二物理页地址从所述第二物理页地址指向的存储空间读取所述第五数据;
解码所述第五数据得到所述第四数据;
解压缩所述第四数据得到所述第三数据;
将所述第三数据与所述第二数据进行所述逻辑运算得到所述第一数据。
13.如权利要求9所述的闪存设备,其特征在于:所述控制器具体用于建立所述逻辑地址与所述物理页地址的映射关系,并生成标识;其中所述物理页地址包含所述第一物理页地址和所述第二物理页地址,所述标识用于指示所述第二物理页地址指向的存储空间中的数据为被编码数据。
14.如权利要求13所述的闪存设备,其特征在于,所述控制器还用于执行如下操作:
接收数据读请求;所述数据读请求携带所述逻辑地址;
根据所述逻辑地址与所述物理页地址的映射关系从所述第一物理页地址指向的存储空间中,读取所述第二数据,从所述第二物理页地址指向的存储空间读取所述第五数据;
根据所述标识,确定所述第五数据为被编码数据;
解码所述第五数据得到所述第四数据;
解压缩所述第四数据得到所述第三数据;
将所述第三数据与所述第二数据进行所述逻辑运算得到所述第一数据。
15.如权利要求9所述的闪存设备,其特征在于:所述控制器还用于压缩所述第三数据得到第四数据之前,确定所述第三数据中0的位数小于阈值。
16.如权利要求9所述的闪存设备,其特征在于,所述控制器还用于:将所述第四数据编码到无效数据物理页的存储空间得到第五数据之前,确定所述第三数据压缩成功。
17.一种控制器,其特征在于,所述控制器用于闪存设备;所述闪存设备还包括存储介质,所述存储介质包含多个物理页;所述控制器包括接收单元、读取单元、逻辑运算单元、压缩处理单元、编码处理单元和记录生成单元;其中,所述接收单元用于接收数据写请求;所述数据写请求携带逻辑地址及第一数据;所述闪存设备存储有所述逻辑地址与第一物理页地址的映射关系;
所述读取单元用于根据所述逻辑地址与所述第一物理页地址的映射关系从所述第一物理页地址指向的存储空间读取第二数据;
所述逻辑运算单元用于将所述第一数据与所述第二数据进行逻辑运算得到第三数据;其中,所述逻辑运算为异或操作或同或操作;
所述压缩处理单元用于压缩所述第三数据得到第四数据;
所述编码处理单元用于将所述第四数据编码到无效数据物理页的存储空间得到第五数据;所述无效数据物理页的存储空间的地址为第二物理页地址;
所述记录生成单元用于记录存储被编码数据的所述第二物理页地址。
18.如权利要求17所述的控制器,其特征在于,所述记录生成单元具体用于将所述第二物理页地址存储到所述第一物理页地址指向的存储空间所在的物理页的额外空间。
19.如权利要求18所述的控制器,其特征在于,所述控制器还包括校验单元,所述校验单元用于计算所述第五数据的校验数据,将所述校验数据存储到第二物理页地址指向的存储空间所在的物理页的额外空间。
20.如权利要求18或19所述的控制器,其特征在于,所述接收单元还用于接收数据读请求;所述数据读请求携带所述逻辑地址;
所述读取单元还用于根据所述逻辑地址与所述第一物理页地址的映射关系从所述第一物理页地址指向的存储空间读取所述第二数据,从所述第一物理页地址指向的存储空间所在的物理页的额外空间读取存储所述被编码数据的所述第二物理页地址,根据所述第二物理页地址从所述第二物理页地址指向的存储空间读取所述第五数据;
所述编码处理单元还用于解码所述第五数据得到所述第四数据;
所述压缩处理单元还用于解压缩所述第四数据得到所述第三数据;
所述逻辑运算处理单元还用于将所述第三数据与所述第二数据进行所述逻辑运算得到所述第一数据。
21.如权利要求17所述的控制器,其特征在于,所述记录生成单元具体用于建立所述逻辑地址与物理页地址的映射关系,并生成标识;其中物理页地址包含所述第一物理页地址和所述第二物理页地址,所述标识用于指示所述第二物理页地址指向的存储空间中的数据为被编码数据。
22.如权利要求21所述的控制器,其特征在于,所述接收单元还用于接收数据读请求,所述数据读请求携带所述逻辑地址;
所述读取单元还用于根据所述逻辑地址与所述物理页地址的映射关系从所述第一物理页地址指向的存储空间读取所述第二数据,从所述第二物理页地址指向的存储空间读取所述第五数据;
所述记录生成单元还用于根据所述标识,确定所述第五数据为被编码数据;
所述编码处理单元还用于解码所述第五数据得到所述第四数据;
所述压缩处理单元还用于解压缩所述第四数据得到所述第三数据;
所述逻辑运算处理单元还用于将所述第三数据与所述第二数据进行所述逻辑运算得到所述第一数据。
23.如权利要求17所述的控制器,其特征在于:所述控制器还包括确定单元,所述确定单元用于在压缩所述第三数据得到所述第四数据之前,确定所述第三数据中0的位数小于阈值。
24.如权利要求17所述的控制器,其特征在于,所述控制器还包括确定单元:所述确定单元将所述第四数据编码到无效数据物理页的存储空间得到第五数据之前,确定所述第三数据压缩成功。
CN201710551236.8A 2017-07-07 2017-07-07 闪存设备中数据写入的方法及设备 Pending CN109213433A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710551236.8A CN109213433A (zh) 2017-07-07 2017-07-07 闪存设备中数据写入的方法及设备
PCT/CN2018/094205 WO2019007315A1 (zh) 2017-07-07 2018-07-03 闪存设备中数据写入的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710551236.8A CN109213433A (zh) 2017-07-07 2017-07-07 闪存设备中数据写入的方法及设备

Publications (1)

Publication Number Publication Date
CN109213433A true CN109213433A (zh) 2019-01-15

Family

ID=64950577

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710551236.8A Pending CN109213433A (zh) 2017-07-07 2017-07-07 闪存设备中数据写入的方法及设备

Country Status (2)

Country Link
CN (1) CN109213433A (zh)
WO (1) WO2019007315A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110007855A (zh) * 2019-02-28 2019-07-12 华中科技大学 一种硬件支持的3d堆叠nvm内存数据压缩方法及系统
CN111913892A (zh) * 2019-05-09 2020-11-10 北京忆芯科技有限公司 使用cmb提供开放通道存储设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103226975A (zh) * 2012-01-27 2013-07-31 三星电子株式会社 存储设备、存储系统、块管理方法、编程和擦除方法
CN106469099A (zh) * 2015-08-14 2017-03-01 英飞凌科技股份有限公司 在应用wom码的情况下的错误纠正
WO2017088129A1 (zh) * 2015-11-25 2017-06-01 华为技术有限公司 存储系统中数据备份的方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5162846B2 (ja) * 2005-07-29 2013-03-13 ソニー株式会社 記憶装置、コンピュータシステム、および記憶システム
US8463985B2 (en) * 2010-03-31 2013-06-11 International Business Machines Corporation Constrained coding to reduce floating gate coupling in non-volatile memories
CN103336727B (zh) * 2013-06-20 2016-06-22 酷丰实业(上海)有限公司 对nand闪存存储设备进行数据操作的方法
CN103631536B (zh) * 2013-11-26 2016-06-01 华中科技大学 一种利用ssd的无效数据优化raid5/6写性能的方法
CN106293990B (zh) * 2016-08-10 2019-06-07 华中科技大学 一种基于批量写校验的独立磁盘冗余阵列读写方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103226975A (zh) * 2012-01-27 2013-07-31 三星电子株式会社 存储设备、存储系统、块管理方法、编程和擦除方法
CN106469099A (zh) * 2015-08-14 2017-03-01 英飞凌科技股份有限公司 在应用wom码的情况下的错误纠正
WO2017088129A1 (zh) * 2015-11-25 2017-06-01 华为技术有限公司 存储系统中数据备份的方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110007855A (zh) * 2019-02-28 2019-07-12 华中科技大学 一种硬件支持的3d堆叠nvm内存数据压缩方法及系统
CN110007855B (zh) * 2019-02-28 2020-04-28 华中科技大学 一种硬件支持的3d堆叠nvm内存数据压缩方法及系统
CN111913892A (zh) * 2019-05-09 2020-11-10 北京忆芯科技有限公司 使用cmb提供开放通道存储设备
CN111913892B (zh) * 2019-05-09 2021-12-07 北京忆芯科技有限公司 使用cmb提供开放通道存储设备

Also Published As

Publication number Publication date
WO2019007315A1 (zh) 2019-01-10

Similar Documents

Publication Publication Date Title
CN104102585B (zh) 映射信息记录方法、存储器控制器与存储器储存装置
TWI716416B (zh) 儲存系統、用於管理儲存媒體的方法以及系統、操作儲存系統的方法、以及非暫存性電腦可讀媒體
CN105573681B (zh) 一种ssd盘片内部raid组建方法及系统
US10191840B2 (en) Mapping table updating method, memory control circuit unit and memory storage device
CN104866429B (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
CN102760099B (zh) 数据写入方法、存储器控制器与存储器储存装置
CN104205065B (zh) 用于列表数据压缩的多重分类
CN106598479A (zh) 闪速存储器的故障安全擦除的方法和装置
CN104991738B (zh) 一种固态盘及其读写操作方法
CN102799533B (zh) 一种磁盘损坏扇区屏蔽方法及装置
US10013187B2 (en) Mapping table accessing method, memory control circuit unit and memory storage device
CN107515726A (zh) 用于管理存储设备的方法和系统
EP4078380B1 (en) Behavior-driven die management on solid-state drives
CN106372000A (zh) 映射表更新方法、存储器控制电路单元及存储器存储装置
US20160034388A1 (en) Data management method, memory control circuit unit and memory storage apparatus
CN106297883A (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN105988950B (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
CN102789370B (zh) 一种raid阵列同步方法及装置
CN109213433A (zh) 闪存设备中数据写入的方法及设备
CN107704338A (zh) 一种资料储存型闪存的数据恢复方法和装置
CN105653391B (zh) 数据存取方法、存储器控制电路单元及存储器储存装置
CN102375781B (zh) 数据保护方法、存储器控制器及可携式存储器储存装置
CN106406746B (zh) 映射表存取方法、存储器控制电路单元及存储器存储装置
CN106648443B (zh) 有效数据合并方法、存储器控制器与存储器存储装置
CN106445397B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190115