CN103955431B - 一种闪存存储设备中数据管理的方法及装置 - Google Patents
一种闪存存储设备中数据管理的方法及装置 Download PDFInfo
- Publication number
- CN103955431B CN103955431B CN201410143753.8A CN201410143753A CN103955431B CN 103955431 B CN103955431 B CN 103955431B CN 201410143753 A CN201410143753 A CN 201410143753A CN 103955431 B CN103955431 B CN 103955431B
- Authority
- CN
- China
- Prior art keywords
- data
- write
- destination address
- flash memory
- written
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明适用于存储器的数据存储技术领域,提供了一种闪存存储设备中数据管理的方法及装置,所述方法包括:接收主机系统发送的写指令,所述写指令包含有待写入数据以及所述待写入数据写入的目标地址,所述目标地址为所述闪存存储设备中某一页的地址;以SLC方式将所述待写入数据写入所述目标地址;判断写入所述目标地址的数据是否与所述待写入数据一致;若不一致,则通过ECC码对写入所述目标地址的错误数据进行纠正,并在纠正不成功时,重新以SLC方式将所述待写入数据写入所述目标地址。通过本发明,可有效提高闪存存储设备数据写入的正确性和稳定性。
Description
技术领域
本发明属于存储器的数据存储技术领域,尤其涉及一种闪存存储设备中数据管理的方法及装置。
背景技术
闪存存储设备按照其内部构架可以分为单层单元闪存(Single-Level Cell,SLC)和多层单元闪存(Multi-Level Cell,MLC)。闪存内部包含多个存储块(block),每个存储块包含多个页(page),每个页又包含多个字节(byte)。
现有的SLC型闪存中所有的页都具有写入速度快以及稳定可靠的特性,而MLC型闪存中只有部分页具有写入速度快以及稳定可靠的特性。通常,将数据只写入上述的“具有写入速度快且稳定可靠的特性的页”的写入方式定义为SLC方式写入,将数据写入MLC型闪存的所有页的写入方式定义为MLC方式写入。
然而,在对闪存存储设备以SLC方式进行数据写入,即对闪存存储设备中具有写入速度快且稳定可靠的特性的页包含的存储单元进行放电时,可能会出现放电过程易受到干扰、放电不彻底或者不能较精确的控制每个存储单元的充放电电压的情况导致写入的数据容易出错,从而可能会出现如图1所示的待写入数据与实际写入的数据不一致的情况,影响闪存存储设备数据写入的正确性和稳定性。
发明内容
本发明实施例的目的在于提供一种闪存存储设备中数据管理的方法及装置,以提高闪存存储设备数据写入的正确性和稳定性。
本发明实施例是这样实现的,一种闪存存储设备中数据管理的方法,所述方法包括:
接收主机系统发送的写指令,所述写指令包含有待写入数据以及所述待写入数据写入的目标地址,所述目标地址为所述闪存存储设备中某一页的地址;
以SLC方式将所述待写入数据写入所述目标地址;
判断写入所述目标地址的数据是否与所述待写入数据一致;
若不一致,则通过ECC码对写入所述目标地址的错误数据进行纠正,并在纠正不成功时,重新以SLC方式将所述待写入数据写入所述目标地址。
本发明实施例的另一目的在于提供一种闪存存储设备中数据管理的装置,所述装置包括:
指令接收单元,用于接收主机系统发送的写指令,所述写指令包含有待写入数据以及所述待写入数据写入的目标地址,所述目标地址为所述闪存存储设备中某一页的地址;
写入单元,用于以SLC方式将所述待写入数据写入所述目标地址;
判断单元,用于判断写入所述目标地址的数据是否与所述待写入数据一致;
处理单元,用于在所述判断单元判断结果为否时,通过ECC码对写入所述目标地址的错误数据进行纠正,并在纠正不成功时,重新以SLC方式将所述待写入数据写入所述目标地址。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例的闪存存储设备在接收到写指令后,以SLC方式将所述待写入数据写入所述目标地址,并判断写入所述目标地址的数据是否与所述待写入数据一致,若不一致,则通过ECC码对写入所述目标地址的错误数据进行纠正,并在纠正不成功时,重新以SLC方式将所述待写入数据写入所述目标地址,直到写入所述目标地址的数据与所述待写入数据完全一致。通过本发明实施例有效的解决了在对闪存存储设备数据写入的过程中,闪存存储设备的某些存储单元在放电过程易受到干扰、放电不彻底或者不能较精确的控制每个存储单元的充放电电压的情况下,所导致的待写入数据不能正确、稳定的写入闪存存储设备的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术提供的数据写操作的示例图;
图2是本发明实施例一提供的闪存存储设备中数据管理方法的实现流程图;
图3是本发明实施例二提供的闪存存储设备中数据管理方法的实现流程图;
图4是本发明实施例三提供的闪存存储设备中数据管理装置的组成结构图图5是本发明实施例四提供的闪存存储设备中数据管理装置的组成结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
图2示出了本发明实施例一提供的闪存存储设备中数据管理方法的实现流程,该方法过程详述如下:
在步骤S201中,接收主机系统发送的写指令,所述写指令包含有待写入数据以及所述待写入数据写入的目标地址,所述目标地址为所述闪存存储设备中某一页的地址。
在本实施例中,所述写指令包括但不限于以下信息:待写入的数据以及所述待写入数据写入闪存存储设备的目标地址。所述目标地址为所述闪存存储设备中某一页的地址,为了便于理解,假设所述目标地址指向所述闪存存储设备某一存储块(block)中的的P0页(为了便于理解,按顺序用P0,P1,P2…P(n-1),P(n)来标示该存储块中包含的所有页),如图1所示,假设所述待写入数据的数据内容为“0123456789”,将“0123456789”写入所述P0页,得到实际写入数据。所述主机系统为可存储数据的任意系统,例如电脑系统、数码相机、摄影机、通信装置、音讯播放器、视讯播发器等系统。
在步骤S202中,将所述待写入数据以SLC方式写入到所述闪存存储设备的所述目标地址中;
在步骤S203中,判断写入所述目标地址的数据是否与所述待写入数据一致,若判断结果为“是”,则结束操作;若判断结果为“否”,则执行步骤S204。
在本实施例中,可以直接通过匹配的方式判断写入所述目标地址的数据(即所述实际写入数据)是否与所述待写入数据一致,也可以通过错误检查和纠正(Error Checkingand Correction,ECC)校验写入所述目标地址的数据是否与所述待写入数据一致。
在步骤S204中,通过ECC码对写入所述目标地址的错误数据进行纠正,并在纠正不成功时,并重新以SLC方式将所述待写入数据写入所述目标地址,即返回执行步骤S202。
具体的可以是,通过ECC码对写入所述目标地址的错误数据进行纠正,并在纠正不成功时,判断所述目标地址指向的页的写入次数是否超出预设的阈值,如果未超出预设的阈值,并重新以SLC方式将所述待写入数据写入所述目标地址,即返回执行步骤S202;如果超出预设的阈值,将所述目标地址指向的该页标记为无效页,并重新以SLC方式将所述待写入数据写入所述目标地址连续的后续地址中。
进一步的,通过ECC码对写入所述目标地址的错误数据进行纠正,并在纠正不成功时,重新以SLC方式将所述待写入数据写入所述目标地址包括:
读取写入所述目标地址的数据,并对读取的所述数据进行ECC校验;
当读取的所述数据中错误数据的字节数超过了ECC阈值时,判定为纠正不成功,返回步骤S202执行;当读取的所述数据中错误数据的字节数未超过ECC阈值时,对读取的所述数据进行纠正,并在纠正成功后结束操作。
其中,所述ECC阈值为ECC码能检测并纠正的最大字节数。
在本实施例中,如果写入所述目标地址的数据与所述待写入数据不一致且写入所述目标地址的数据无法通过ECC纠正,则重新返回步骤S202执行,直至写入所述目标地址的数据与所述待写入数据完全一致。
本发明实施例对所述待写入数据以同样的方式进行再次的编程,即以SLC写入方式对目标地址所在页(如P0页)中包含的每个存储单元的充放电电压进行重新控制,使得出错的存储单元重新进行电压调整以便能正确的存储所述待写入数据,从而有效的降低存储单元存储数据的错误率,提高数据存储的稳定性。
实施例二:
图3示出了本发明实施例二提供的闪存存储设备中数据管理方法的实现流程,实施例二的所述闪存存储设备至少包括一多层单元闪存,该方法过程详述如下:
在步骤S301中,接收主机系统发送的写指令,所述写指令包含有待写入数据以及所述待写入数据写入的目标地址,所述目标地址为所述闪存存储设备中某一页的地址;
在步骤S302中,将所述待写入数据以SLC方式写入到所述闪存存储设备的所述目标地址中;
在步骤S303中,判断写入所述目标地址的数据是否与所述待写入数据一致,若判断结果为“是”,则结束操作;若判断结果为“否”,则执行步骤S304。
在步骤S304中,通过ECC码对写入所述目标地址的错误数据进行纠正,并在纠正不成功时,重新以SLC方式将所述待写入数据写入所述目标地址,即返回执行步骤S302。
本实施例步骤S301至步骤S304的具体实施过程如实施例二步骤S201至步骤S204所述,在此不再赘述。
在步骤S305中,在系统空闲时或者在闪存存储设备的使用容量达到预设的阈值时,选取空块作为交换块,并将以SLC方式写入所述目标地址的数据以MLC方式搬移到所述交换块中。
由于本发明实施例主要解决的是MLC型闪存存储设备在以MLC方式进行数据写入时容易出现数据错误、稳定性差的问题。因此本实施例利用SLC写入方式的优势,先将所述待写入数据以SLC方式写入到所述闪存存储设备的目标地址,然后再将写入所述目标地址的数据以MLC方式搬移到选定的交换块中。其中,所述交换块为没有写入数据的空块。
另外,本发明实施例还可以充分利用所述MLC型闪存存储设备的存储空间,由于在对MLC型闪存设备进行以SLC方式写入数据时只对其中一些具有写入速度快且稳定可靠的页进行数据写入,即所述目标地址为一些具有写入速度快且稳定可靠的页,当系统空闲的时候或者闪存存储设备的使用容量达到预设的阈值时,将以SLC方式写入所述目标地址的数据以MLC方式搬移到所述交换块中,可以使MLC型闪存存储设备的所有页都可以用来存放数据,这样便避免了MLC闪存存储设备存储空间的浪费。
在步骤S306中,判断写入所述交换块中的数据是否与所述以SLC方式写入所述目标地址的数据一致;若判断结果为“是”,则结束操作;若判断结果为“否”,则执行步骤S307;
在本实施例中,可以直接通过匹配的方式判断写入所述交换块中的数据是否与写入所述目标地址的数据一致,也可以通过错误检查和纠正(Error Checking andCorrection,ECC)校验写入所述交换块中的数据是否与写入所述目标地址的数据一致。
在步骤S307中,通过ECC码对写入所述交换块中的错误数据进行纠正,并在纠正不成功时,擦除所述交换块,重新将以SLC方式写入所述目标地址的数据以MLC方式搬移到所述交换块中;或者,通过ECC码对写入所述交换块中的错误数据进行纠正,并在纠正不成功时,选取空块作为所述交换块的替换块,并将所述交换块标记为无效块,重新以MLC方式将搬移到所述交换块中的数据写入所述替换块。
具体的可以是,通过ECC码对写入所述交换块中的错误数据进行纠正,并在纠正不成功时,判断所述交换块的写入次数是否超出预设的阈值,如果未超出预设的阈值,擦除该交换块,并重新将以SLC方式写入所述目标地址的数据以MLC方式搬移到所述交换块中,即返回执行步骤S305;如果超出预设的阈值,将所述交换块标记为无效块,并重新将以SLC方式写入所述目标地址的数据以MLC方式搬移到离所述交换块物理距离最近的空块中。其中,所述空块为没有写入数据的块,所述无效块可以作为坏块不再使用,也可作为备用块后续再次使用。
进一步的,所述通过ECC码对写入所述交换块中的错误数据进行纠正包括:
读取写入所述交换块中的数据,并对读取的所述数据进行ECC校验;
当读取的所述数据中错误数据的字节数超过了ECC阈值时,判定为纠正不成功;
其中,所述ECC阈值为ECC码能检测并纠正的最大字节数。在本实施例中,每份存储的数据都包含一个ECC码,为了检测输出数据是否存在错误,系统在数据读取时,先生成正确的ECC码,并将该ECC码与读取的数据的ECC码进行比较验证,如果比较结果相同,则说明读取的数据正确。如果比较结果不相同,则说明读取的数据存在错误。
作为本发明的另一示例,本实施例还可以包括:在系统生成的ECC码与读取数据的ECC码比较结果不相同时,对该读取数据中错误数据的大小进行检测,在所述错误数据的字节数等于或者小于预设的阈值时(例如:1比特),通过ECC码对所述错误数据进行纠正,在所述错误数据纠正不成功时,再对存储所述数据的目标地址块进行检测;在所述错误数据大于预设的阈值时,直接进行坏块检测。
另外,为了更好的区分所述存储块,本实施例还包括对所述存储块的状态进行标识,所述状态标识包括“忙”、“空闲”、“坏块”等。
本发明实施例为解决MLC型闪存存储设备在以MLC方式进行数据写入时容易出现数据错误、稳定性较差的问题,将SLC数据写入的方式运用到MLC型闪存存储设备中,即在MLC型闪存存储设备接收到写指令时,先将写指令中的待写入数据以SLC方式写入目标地址,然后再以MLC方式将所述目标地址中的数据搬移到选定的交换块中,并经过多次ECC校验,直至写入的数据完全正确,从而保证MLC型闪存存储设备在数据写操作过程中数据的准确性和稳定性,有效提升闪存存储设备的整体性能。
实施例三:
图4示出了本发明实施例三提供的闪存存储设备中数据管理装置的组成结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该闪存存储设备中数据管理装置可以应用于闪存存储设备中,可以是运行于闪存存储设备内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到闪存存储设备中或者运行于闪存存储设备的应用系统中。
该闪存存储设备中数据管理装置包括指令接收单元41、写入单元42、第一判断单元43以及第一处理单元44。其中,各单元的具体功能如下:
指令接收单元41,用于接收主机系统发送的写指令,所述写指令包含有待写入数据以及所述待写入数据写入的目标地址,所述目标地址为所述闪存存储设备中某一页的地址;
写入单元42,用于以SLC方式将所述待写入数据写入所述目标地址;
第一判断单元43,用于判断写入所述目标地址的数据是否与所述待写入数据一致;
第一处理单元44,用于在所述第一判断单元43判断结果为否时,通过ECC码对写入所述目标地址的错误数据进行纠正,并在纠正不成功时,重新以SLC方式将所述待写入数据写入所述目标地址。
进一步的,所述第一处理单元44包括:
第一读取模块441,用于读取写入所述目标地址的数据,并对读取的所述数据进行ECC校验;
第一处理模块442,用于当读取的所述数据中错误数据的字节数超过了ECC阈值时,判定为纠正不成功,重新以SLC方式将所述待写入数据写入所述目标地址,其中所述ECC阈值为ECC码能检测并纠正的最大字节数。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元或模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例一中的对应过程,在此不再赘述。
实施例四:
图5示出了本发明实施例四提供的闪存存储设备中数据管理装置的组成结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该闪存存储设备中数据管理装置可以应用于闪存存储设备中,可以是运行于闪存存储设备内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到闪存存储设备中或者运行于闪存存储设备的应用系统中。
该闪存存储设备中数据管理装置包括指令接收单元51、写入单元52、第一判断单元53以及第一处理单元54。其中,各单元的具体功能如下:
指令接收单元51,用于接收主机系统发送的写指令,所述写指令包含有待写入数据以及所述待写入数据写入的目标地址,所述目标地址为所述闪存存储设备中某一页的地址;
写入单元52,用于以SLC方式将所述待写入数据写入所述目标地址;
第一判断单元53,用于判断写入所述目标地址的数据是否与所述待写入数据一致;
第一处理单元54,用于在所述判断单元53判断结果为否时,通过ECC码对写入所述目标地址的错误数据进行纠正,并在纠正不成功时,重新以SLC方式将所述待写入数据写入所述目标地址。
进一步的,所述第一处理单元54包括:
第一读取模块541,用于读取写入所述目标地址的数据,并对读取的所述数据进行ECC校验;
第一处理模块542,用于当读取的所述数据中错误数据的字节数超过了ECC阈值时,判定为纠正不成功,重新以SLC方式将所述待写入数据写入所述目标地址,其中所述ECC阈值为ECC码能检测并纠正的最大字节数。
进一步的,所述闪存存储设备至少包括一多层单元闪存,所述装置包括:
搬移单元55,用于在系统空闲时或者在闪存存储设备的使用容量达到预设的阈值时,选取空块作为交换块,并将以SLC方式写入所述目标地址的数据以MLC方式搬移到所述交换块中。
进一步的,所述装置包括:
第二判断单元56,用于判断写入所述交换块中的数据是否与所述以SLC方式写入所述目标地址的数据一致;
第二处理单元57,用于在所述第二判断单元56判断结果为否时,通过ECC码对写入所述交换块中的错误数据进行纠正,并在纠正不成功时,擦除所述交换块,重新将以SLC方式写入所述目标地址的数据以MLC方式搬移到所述交换块中;或者,在所述第二判断单元判断结果为否时,通过ECC码对写入所述交换块中的错误数据进行纠正,并在纠正不成功时,选取空块作为所述交换块的替换块,并将所述交换块标记为无效块,重新以MLC方式将搬移到所述交换块中的数据写入所述替换块。
进一步的,所述第二处理单元57包括:
第二读取模块571,用于读取写入所述交换块中的数据,并对读取的所述数据进行ECC校验;
第二处理模块572,用于当读取的所述数据中错误数据的字节数超过了ECC阈值时,判定为纠正不成功,其中所述ECC阈值为ECC码能检测并纠正的最大字节数。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元或模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例一中的对应过程,在此不再赘述。
综上所述,本发明实施例的闪存存储设备在接收到写指令后,以SLC方式将所述待写入数据写入所述目标地址,并判断写入所述目标地址的数据是否与所述待写入数据一致,若不一致,则通过ECC码对写入所述目标地址的错误数据进行纠正,并在纠正不成功时,重新以SLC方式将所述待写入数据写入所述目标地址,直到写入所述目标地址的数据与所述待写入数据完全一致。通过本发明实施例有效的解决了在对闪存存储设备数据写入的过程中,闪存存储设备的某些存储单元在放电过程易受到干扰、放电不彻底或者不能较精确的控制每个存储单元的充放电电压的情况下,所导致的待写入数据不能正确、稳定的写入闪存存储设备的问题。另外,对于MLC闪存存储设备,本发明实施例充分利用了SLC写入方式的优势,先将写指令中的待写入数据以SLC方式写入目标地址,然后再以MLC方式将所述目标地址中的数据搬移到选定的交换块中,并经过多次ECC校验,保证写入的数据完全正确,从而保证MLC型闪存存储设备在数据写操作过程中数据的准确性和稳定性,有效提升闪存存储设备的整体性能,具有较强的易用性和实用性。
本领域普通技术人员还可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,包括ROM/RAM、磁盘、光盘等。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明由所提交的权利要求书确定的专利保护范围。
Claims (6)
1.一种闪存存储设备中数据管理的方法,其特征在于,所述方法包括:
接收主机系统发送的写指令,所述写指令包含有待写入数据以及所述待写入数据写入的目标地址,所述目标地址为所述闪存存储设备中某一页的地址;
以SLC方式将所述待写入数据写入所述目标地址;
判断写入所述目标地址的数据是否与所述待写入数据一致;
若不一致,则通过ECC码对写入所述目标地址的错误数据进行纠正,并在纠正不成功时,重新以SLC方式将所述待写入数据写入所述目标地址;
所述闪存存储设备至少包括一多层单元闪存,所述方法包括:
在系统空闲时或者在闪存存储设备的使用容量达到预设的阈值时,选取空块作为交换块,并将以SLC方式写入所述目标地址的数据以MLC方式搬移到所述交换块中;
所述方法还包括:
判断写入所述交换块中的数据是否与所述以SLC方式写入所述目标地址的数据一致;
若不一致,则通过ECC码对写入所述交换块中的错误数据进行纠正,并在纠正不成功时,擦除所述交换块,重新将以SLC方式写入所述目标地址的数据以MLC方式搬移到所述交换块中;或者,若不一致,则通过ECC码对写入所述交换块中的错误数据进行纠正,并在纠正不成功时,选取空块作为所述交换块的替换块,并将所述交换块标记为无效块,重新以MLC方式将搬移到所述交换块中的数据写入所述替换块;
其中,所述SLC方式是指将数据只写入SLC型闪存和/或MLC型闪存中具有写入速度快且稳定可靠的特性的页的写入方式,所述MLC方式是指将数据写入MLC型闪存的所有页的写入方式。
2.如权利要求1所述的方法,其特征在于,所述通过ECC码对写入所述目标地址的错误数据进行纠正,并在纠正不成功时,重新以SLC方式将所述待写入数据写入所述目标地址包括:
读取写入所述目标地址的数据,并对读取的所述数据进行ECC校验;
当读取的所述数据中错误数据的字节数超过了ECC阈值时,判定为纠正不成功,重新以SLC方式将所述待写入数据写入所述目标地址;
其中,所述ECC阈值为ECC码能检测并纠正的最大字节数。
3.如权利要求1所述的方法,其特征在于,所述通过ECC码对写入所述交换块中的错误数据进行纠正包括:
读取写入所述交换块中的数据,并对读取的所述数据进行ECC校验;
当读取的所述数据中错误数据的字节数超过了ECC阈值时,判定为纠正不成功;
其中,所述ECC阈值为ECC码能检测并纠正的最大字节数。
4.一种闪存存储设备中数据管理的装置,其特征在于,所述装置包括:
指令接收单元,用于接收主机系统发送的写指令,所述写指令包含有待写入数据以及所述待写入数据写入的目标地址,所述目标地址为所述闪存存储设备中某一页的地址;
写入单元,用于以SLC方式将所述待写入数据写入所述目标地址;
第一判断单元,用于判断写入所述目标地址的数据是否与所述待写入数据一致;
第一处理单元,用于在所述第一判断单元判断结果为否时,通过ECC码对写入所述目标地址的错误数据进行纠正,并在纠正不成功时,重新以SLC方式将所述待写入数据写入所述目标地址;
所述闪存存储设备至少包括一多层单元闪存,所述装置包括:
搬移单元,用于在系统空闲时或者在闪存存储设备的使用容量达到预设的阈值时,选取空块作为交换块,并将以SLC方式写入所述目标地址的数据以MLC方式搬移到所述交换块中;
所述装置还包括:
第二判断单元,用于判断写入所述交换块中的数据是否与所述以SLC方式写入所述目标地址的数据一致;
第二处理单元,用于在所述第二判断单元判断结果为否时,通过ECC码对写入所述交换块中的错误数据进行纠正,并在纠正不成功时,擦除所述交换块,重新将以SLC方式写入所述目标地址的数据以MLC方式搬移到所述交换块中;或者,在所述第二判断单元判断结果为否时,通过ECC码对写入所述交换块中的错误数据进行纠正,并在纠正不成功时,选取空块作为所述交换块的替换块,并将所述交换块标记为无效块,重新以MLC方式将搬移到所述交换块中的数据写入所述替换块;
其中,所述SLC方式是指将数据只写入SLC型闪存和/或MLC型闪存中具有写入速度快且稳定可靠的特性的页的写入方式,所述MLC方式是指将数据写入MLC型闪存的所有页的写入方式。
5.如权利要求4所述的装置,其特征在于,所述第一处理单元包括:
第一读取模块,用于读取写入所述目标地址的数据,并对读取的所述数据进行ECC校验;
第一处理模块,用于当读取的所述数据中错误数据的字节数超过了ECC阈值时,判定为纠正不成功,重新以SLC方式将所述待写入数据写入所述目标地址,其中所述ECC阈值为ECC码能检测并纠正的最大字节数。
6.如权利要求4所述的装置,其特征在于,所述第二处理单元包括:
第二读取模块,用于读取写入所述交换块中的数据,并对读取的所述数据进行ECC校验;
第二处理模块,用于当读取的所述数据中错误数据的字节数超过了ECC阈值时,判定为纠正不成功,其中所述ECC阈值为ECC码能检测并纠正的最大字节数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410143753.8A CN103955431B (zh) | 2014-04-11 | 2014-04-11 | 一种闪存存储设备中数据管理的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410143753.8A CN103955431B (zh) | 2014-04-11 | 2014-04-11 | 一种闪存存储设备中数据管理的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103955431A CN103955431A (zh) | 2014-07-30 |
CN103955431B true CN103955431B (zh) | 2017-02-08 |
Family
ID=51332706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410143753.8A Active CN103955431B (zh) | 2014-04-11 | 2014-04-11 | 一种闪存存储设备中数据管理的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103955431B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160075165A (ko) * | 2014-12-19 | 2016-06-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
JP2017157257A (ja) * | 2016-03-01 | 2017-09-07 | 東芝メモリ株式会社 | 半導体記憶装置及びメモリシステム |
CN107357534A (zh) * | 2017-07-18 | 2017-11-17 | 深圳市德名利电子有限公司 | 一种闪存块模式的动态切换方法及系统 |
CN108415853A (zh) * | 2018-03-15 | 2018-08-17 | 深圳市江波龙电子有限公司 | 一种垃圾回收的方法、装置及存储设备 |
CN109164978B (zh) * | 2018-07-27 | 2021-09-24 | 深圳市江波龙电子股份有限公司 | 闪存管理方法、闪存存储设备及计算机可读存储介质 |
CN110908924A (zh) * | 2018-09-17 | 2020-03-24 | 北京兆易创新科技股份有限公司 | 一种写入检测方法、装置、终端及存储介质 |
CN110910936A (zh) * | 2018-09-17 | 2020-03-24 | 北京兆易创新科技股份有限公司 | 一种模式切换方法、装置、存储设备及存储介质 |
CN109445982A (zh) * | 2018-09-17 | 2019-03-08 | 至誉科技(武汉)有限公司 | 实现数据可靠读写的数据存储装置 |
CN109491592B (zh) * | 2018-09-20 | 2022-11-15 | 中山市江波龙电子有限公司 | 存储设备及其数据写入方法、存储装置 |
CN113495671B (zh) | 2020-04-01 | 2023-10-17 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
CN113495675B (zh) | 2020-04-01 | 2023-08-11 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
EP3985494B1 (en) | 2020-04-01 | 2024-01-17 | Changxin Memory Technologies, Inc. | Read-write method and memory device |
EP3936996A4 (en) | 2020-04-01 | 2022-07-06 | Changxin Memory Technologies, Inc. | READ-WRITE METHOD AND STORAGE DEVICE |
EP3964940A4 (en) | 2020-04-01 | 2022-08-17 | Changxin Memory Technologies, Inc. | READ/WRITE METHOD AND STORAGE DEVICE |
CN113495676B (zh) * | 2020-04-01 | 2023-09-29 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
CN113495674B (zh) | 2020-04-01 | 2023-10-10 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
EP3964941B1 (en) | 2020-04-01 | 2024-02-28 | Changxin Memory Technologies, Inc. | Read-write method and memory device |
CN113495672B (zh) | 2020-04-01 | 2023-08-11 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
CN112347001B (zh) * | 2020-10-13 | 2023-09-26 | 深圳市宏旺微电子有限公司 | 闪存垃圾回收的校验方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101393776A (zh) * | 2008-10-24 | 2009-03-25 | 无敌科技(西安)有限公司 | 延长多层单元闪存使用寿命的方法 |
CN101634967A (zh) * | 2008-07-24 | 2010-01-27 | 群联电子股份有限公司 | 用于闪存的区块管理方法、储存系统与控制器 |
CN103077121A (zh) * | 2013-01-07 | 2013-05-01 | 深圳市江波龙电子有限公司 | 一种闪存存储设备中数据管理的方法及装置 |
CN103514096A (zh) * | 2012-06-18 | 2014-01-15 | 群联电子股份有限公司 | 数据储存方法、存储器控制器与存储器储存装置 |
-
2014
- 2014-04-11 CN CN201410143753.8A patent/CN103955431B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101634967A (zh) * | 2008-07-24 | 2010-01-27 | 群联电子股份有限公司 | 用于闪存的区块管理方法、储存系统与控制器 |
CN101393776A (zh) * | 2008-10-24 | 2009-03-25 | 无敌科技(西安)有限公司 | 延长多层单元闪存使用寿命的方法 |
CN103514096A (zh) * | 2012-06-18 | 2014-01-15 | 群联电子股份有限公司 | 数据储存方法、存储器控制器与存储器储存装置 |
CN103077121A (zh) * | 2013-01-07 | 2013-05-01 | 深圳市江波龙电子有限公司 | 一种闪存存储设备中数据管理的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103955431A (zh) | 2014-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103955431B (zh) | 一种闪存存储设备中数据管理的方法及装置 | |
US9268687B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
TWI527037B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
US8006030B2 (en) | Memory controller for identifying the last valid page/segment in a physical block of a flash memory | |
US9996297B2 (en) | Hot-cold data separation method in flash translation layer | |
CN103699344B (zh) | 非易失性存储器装置及其操作方法 | |
US8386905B2 (en) | Error correcting method, and memory controller and memory storage system using the same | |
US9880742B2 (en) | Valid data merging method, memory controller and memory storage apparatus | |
US20150268879A1 (en) | Memory management method, memory storage device and memory control circuit unit | |
CN103955430A (zh) | 一种闪存存储设备中数据管理的方法及装置 | |
US20110113184A1 (en) | Data backup method for a flash memory and controller and storage system using the same | |
US8902671B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
US20150161039A1 (en) | Data erasing method, memory control circuit unit and memory storage apparatus | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
TWI451249B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
US10642731B2 (en) | Memory management method and storage controller | |
CN105808371A (zh) | 数据备份与恢复方法、控制芯片及存储装置 | |
CN103218274A (zh) | 一种预防故障累加的方法和固态硬盘 | |
US20170220273A1 (en) | Data protecting method, memory control circuit unit and memory storage device | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
CN103984506A (zh) | 闪存存储设备数据写的方法和系统 | |
US8301981B2 (en) | Data access method for flash memory and storage system and controller thereof | |
CN107357520B (zh) | 整理指令处理方法、存储器控制电路单元及其存储装置 | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
US9312011B1 (en) | Data writing method, memory storage device and memory control circuit unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 518057 A, B, C, D, E, F1, 8 Building, Financial Services Technology Innovation Base, No. 8 Kefa Road, Nanshan District, Shenzhen City, Guangdong Province Patentee after: Shenzhen jiangbolong electronic Limited by Share Ltd Address before: 518057 A, B, C, D, E, F1, 8 Building, Financial Services Technology Innovation Base, No. 8 Kefa Road, Nanshan District, Shenzhen City, Guangdong Province Patentee before: Shenzhen jiangbolong Electronic Co., Ltd. |
|
CP01 | Change in the name or title of a patent holder |