CN107562563B - Nand Flash控制方法和装置 - Google Patents
Nand Flash控制方法和装置 Download PDFInfo
- Publication number
- CN107562563B CN107562563B CN201610515960.0A CN201610515960A CN107562563B CN 107562563 B CN107562563 B CN 107562563B CN 201610515960 A CN201610515960 A CN 201610515960A CN 107562563 B CN107562563 B CN 107562563B
- Authority
- CN
- China
- Prior art keywords
- write
- data
- page
- nand flash
- read
- 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
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000012795 verification Methods 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 11
- 102100040092 X-linked retinitis pigmentosa GTPase regulator Human genes 0.000 description 5
- 101001104102 Homo sapiens X-linked retinitis pigmentosa GTPase regulator Proteins 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 101001105683 Homo sapiens Pre-mRNA-processing-splicing factor 8 Proteins 0.000 description 1
- 101000726148 Homo sapiens Protein crumbs homolog 1 Proteins 0.000 description 1
- 101000772173 Homo sapiens Tubby-related protein 1 Proteins 0.000 description 1
- 101000610557 Homo sapiens U4/U6 small nuclear ribonucleoprotein Prp31 Proteins 0.000 description 1
- 102100021231 Pre-mRNA-processing-splicing factor 8 Human genes 0.000 description 1
- 102100027331 Protein crumbs homolog 1 Human genes 0.000 description 1
- 101000825534 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) 40S ribosomal protein S2 Proteins 0.000 description 1
- 101000862778 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) 40S ribosomal protein S3 Proteins 0.000 description 1
- 101000677914 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) 40S ribosomal protein S5 Proteins 0.000 description 1
- 101001109965 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) 60S ribosomal protein L7-A Proteins 0.000 description 1
- 101001109960 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) 60S ribosomal protein L7-B Proteins 0.000 description 1
- 102100029293 Tubby-related protein 1 Human genes 0.000 description 1
- 102100040118 U4/U6 small nuclear ribonucleoprotein Prp31 Human genes 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供一种Nand Flash控制方法和装置,其中,该方法,包括:采用纠错位数大于预设纠错位数的校验算法对待写数据进行编码,得到至少两组写编码数据,将该至少两组写编码数据依次写入Nand Flash的至少两相邻页的主区中,且每组写编码数据,包括:写校验数据和该写校验数据对应的写校验码。本发明的技术方案,通过将写校验码和其对应的写校验数据一同存放在主区,打破了ECC校验码的字节数和Nand Flash上oob区存储空间有限的限制,提高了ECC算法的能力,增强了操作数据的可靠性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种Nand Flash控制方法和装置。
背景技术
与非闪存(Nand Flash)是一种非易失性存储技术,即断电后仍能保存数据,在业界得到了广泛的应用。Nand Flash是以页为单位读写数据,以块为单位擦除数据,在使用的过程中,Nand Flash由于本身硬件的内在特性,会偶尔出现位反转的现象,也即,NandFlash中的某个位发生变化,从1变成0或者从0变成1。
错误检查校验(Error Checking and Correction,简称ECC)算法,是一种适用于Nand Flash的差错检测和修正算法,在一定条件下能够实现数据的校验,保证数据的正确性。因此,在对Nand Flash的页进行读写操作时,通过软件调用ECC算法接口函数或开启硬件上集成的ECC功能,将ECC算法产生的校验结果存储到页的oob区,并对校验结果进行处理,便可检测出操作数据是否出错,进而保证了操作数据的正确性。
然而,由于目前ECC算法产生的检验结果均存放在Nand Flash页的共享(oob)区,而目前通用的大容量Nand Flash其物理页结构大小是(2k+64)字节(byte),其中,oob区的大小为64byte,不仅用于存放ECC算法产生的检验结果,还用于存放计算机系统数据或用户数据,因此,oob区中可存放的校验结果大小受到限制,影响了ECC算法的校验能力。
发明内容
本发明提供一种Nand Flash控制方法和装置,以解决由于Nand Flash上oob区存储空间有限,影响ECC算法校验能力的问题。
本发明提供的一种Nand Flash控制方法,包括:
采用纠错位数大于预设纠错位数的校验算法对待写数据进行编码,得到 至少两组写编码数据,每组写编码数据包括:写校验数据和所述写校验数据对应的写校验码;
将所述至少两组写编码数据中每组写编码数据包括的写校验数据和所述写校验数据对应的写校验码依次写入Nand Flash的至少两相邻页的主区中。
本发明还提供一种Nand Flash控制装置,包括:
编码模块,用于采用纠错位数大于预设纠错位数的校验算法对待写数据进行编码,得到至少两组写编码数据,每组写编码数据包括:写校验数据和所述写校验数据对应的写校验码;
写操作模块,用于将所述编码模块编码得到的所述至少两组写编码数据中每组写编码数据包括的写校验数据和所述写校验数据对应的写校验码依次写入Nand Flash的至少两相邻页的主区中。
本发明提供的Nand Flash控制方法和装置,通过将采用纠错位数大于预设纠错位数的校验算法对待写数据进行编码得到的至少两组写编码数据依次写入Nand Flash的至少两相邻页的主区中,且每组写编码数据包括写校验数据和其对应的校验码,因此,本发明实施例中的写校验码和其对应的写校验数据一同存放在主区,打破了ECC校验码的字节数和Nand Flash上oob区存储空间有限的限制,提高了ECC算法的能力,增强了操作数据的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的Nand Flash控制方法实施例一的流程示意图;
图2为本发明提供的Nand Flash控制方法中Nand Flash物理页的排布示意图;
图3为本发明提供的Nand Flash控制方法实施例二的流程示意图;
图4为本发明提供的Nand Flash控制方法实施例三的流程示意图;
图5为本发明提供的Nand Flash控制方法中数据存放分布的结构示意图;
图6为本发明提供的Nand Flash控制方法实施例四的流程示意图;
图7为本发明提供的Nand Flash控制方法实施例五的流程示意图;
图8为本发明提供的Nand Flash控制装置实施例一的结构示意图;
图9为本发明提供的Nand Flash控制装置实施例二的结构示意图;
图10为本发明提供的Nand Flash控制装置实施例三的结构示意图;
图11为本发明提供的Nand Flash控制装置实施例四的结构示意图;
图12为本发明提供的Nand Flash控制装置实施例五的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
与非闪存(Nand Flash)的内部存储采用金属-氧化层-半导体-场效晶体管(MetalOxide Semiconductor Field-Effect Transistor,简称MOSFET)的结构,其里面有个悬浮门(Floating Gate),是真正存储数据的单元。Nand Flash由很多块组成,每个块又包含了很多页,页是Nand Flash读写操作的基本单位,块是Nand Flash擦除操作的基本单位。
Nand Flash在使用时,由于其本身硬件的内在特性,会偶尔出现位反转的现象,也即,原先Nand Flash中的某个位发生变化,即要么从1变成0,要么从0变成1。
Nand Flash的位反转现象,主要是由以下一些原因/效应导致:
(1)漂移效应(Drifting Effects)
漂移效应指的是Nand Flash中存储的电荷(cell)其电压值发生变化,变得和原始值不同。
(2)编程干扰所产生的错误(Program-Disturb Errors)
编程干扰所产生的错误也叫过度编程效应(over-program effect),是指在对某个页面进行编程操作,即写操作时,引起非相关的其他页面的某个位发生跳变。
(3)读操作干扰产生的错误(Read-Disturb Errors)
读操作干扰产生的错误是指对一个页进行数据读取操作时,使得数据中某个位的数据产生了永久性的变化,即Nand Flash上对应页的位值发生了变化。
由于对Nand Flash进行读写操作时,数据容易出现错误,为了保证数据的正确性,通常采用错误校验校正(Error Checking and Correction,简称ECC)算法来实现NandFlash的差错检测和修正。然而,在对Nand Flash进行操作时,需要根据存储数据的重要性来决定是否使用ECC,具体的,当Nand Flash应用于多媒体信息,比如存储音视频文件,那么位反转所造成的问题,并不严重,甚至是可忽略的;当用于存储操作系统,配置文件和其他敏感信息的时候,必须要用ECC算法,以实现数据的校验,保证数据的正确性。
如果Nand Flash的操作时序和电路稳定性不存在问题,那么Nand Flash出错的时候一般不会造成整个块或是页全部出错,而是整个页中只有一个或几个bit出错。一般而言,ECC算法能纠正1个比特错误和检测2个比特错误,而且计算速度很快,但对于1比特以上的错误无法纠正,对于2比特以上的错误不保证能检测。
下面介绍一种ECC算法的实现原理:
ECC算法每次对256字节的数据进行操作,包含列校验和行校验。对每个待校验的Bit位求异或,若结果为0,则表明含有偶数个1;若结果为1,则表明含有奇数个1。表1为ECC列校验规则示意,表2为ECC行校验规则示意,如表1和表2所示,256字节数据形成256行、8列的矩阵,矩阵每个元素表示一个Bit位。
表1 ECC列校验规则示意
如表1所示,CP0~CP5为6个Bit位,表示Column Parity(列极性),CP0为第0、2、4、6列的极性,CP1为第1、3、5、7列的极性,CP2为第0、1、4、5列的极性,CP3为第2、3、6、7列的极性,CP4为第0、1、2、3列的极性,CP5为第4、5、6、7列的极性。
CP0用公式表示为:CP0=Bit0^Bit2^Bit4^Bit6,也即,CP0表示第0列内部256个Bit位异或之后再跟第2列256个Bit位异或,再跟第4列、第6列的每个Bit位异或,因此,CP0是256*4=1024个Bit位异或的结果。类似的,CP1~CP5用公式表示分别如下:
CP1=Bit1^Bit3^Bit5^Bit7;CP2=Bit0^Bit1^Bit4^Bit5;
CP3=Bit2^Bit3^Bit6^Bit7;CP4=Bit0^Bit1^Bit2^Bit3;
CP5=Bit4^Bit5^Bit6^Bit7。
表2 ECC行校验规则示意
如表2所示,RP0~RP15为16个Bit位,表示Row Parity(行极性),具体如下:
RP0为第0、2、4、6、…、252、254个字节的极性;
RP1为第1、3、5、7、…、253、255个字节的极性;
RP2为第0、1、4、5、8、9、…、252、253个字节的极性(处理2个Byte,跳过2个Byte);
RP3为第2、3、6、7、10、11、…、254、255个字节的极性(跳过2个Byte,处理2个Byte);
类似的,RP4表示处理4个Byte,跳过4个Byte;
RP5表示跳过4个Byte,处理4个Byte;
RP6表示处理8个Byte,跳过8个Byte;
RP7表示跳过8个Byte,处理8个Byte;
RP8表示处理16个Byte,跳过16个Byte;
RP9表示跳过16个Byte,处理16个Byte;
RP10表示处理32个Byte,跳过32个Byte;
RP11表示跳过32个Byte,处理32个Byte;
RP12表示处理64个Byte,跳过64个Byte;
RP13表示跳过64个Byte,处理64个Byte;
RP14表示处理128个Byte,跳过128个Byte;
RP15表示跳过128个Byte,处理128个Byte。
由此可知,RP0~RP15中每个Bit位都是128个字节(也就是128行),因此,RP0~RP15均是128*8=1024个Bit位求异或的结果。
综上所述,对256字节的数据共生成了6个Bit的列校验结果,16个Bit的行校验结果,共22个Bit。具体的,当往Nand Flash的page中写数据时,每256字节会生成22个Bit的原ECC校验和,保存到page的oob区中;当从Nand Flash中读取数据时,每256字节也会生成22个Bit的新ECC校验和,将原ECC校验和与新ECC校验和按位异或,若结果为0,则表示不存在错误;若3个字节异或结果中存在11个比特位为1,表示存在一个比特错误, 且可纠正;若3个字节异或结果中只存在1个比特位为1,表示oob区出错;其他情况均表示出现了无法纠正的错误。
然而,上述只是给出了ECC算法的校验实现原理,对于不同的ECC算法,数据的校验能力不同,所产生的校验结果也不相同。因此,校验能力更强的ECC算法,会产生更多的Bit校验结果,相应的,需要更多的空间来存放这些校验结果,而Nand Flash物理页的备用区域(oob区)有限,oob区中可存放的校验结果大小受到限制,影响了ECC算法的校验能力。
针对上述问题,本发明实施例提出了一种Nand Flash控制方法和装置,用于解决由于Nand Flash上oob区存储空间有限,影响ECC算法校验能力的问题。
图1为本发明提供的Nand Flash控制方法实施例一的流程示意图。如图1所示,本发明实施例提供的Nand Flash控制方法,包括:
步骤101:采用纠错位数大于预设纠错位数的校验算法对待写数据进行编码,得到至少两组写编码数据,每组写编码数据,包括:写校验数据和写校验数据对应的写校验码。
具体的,由于现有ECC算法仅能纠正1比特的错误,检测2比特的错误。因此,在本发明实施例中,预设纠错位数的大小可选为2比特等。值得说明的是,预设纠错位数只是用来表征ECC算法校正和检测错误的能力,本发明并不对预设纠错位数进行限定。
由于ECC算法的原理是将写数据时产生的原始校验和与读操作时产生的新校验和按位异或的结果,因此,若要提高ECC算法的校验能力,首先在写操作时应采用纠错位数大于预设纠错位数的校验算法来实现,所以,本发明实施例主要针对Nand Flash的写操作进行说明。
可选的,纠错位数大于预设纠错位数的校验算法可以是里德-所罗门RS(204,188)编码算法,由于该编码算法是按组进行操作的,也即,编码后的每组数据是以204字节的长度进行整体存储,其中,前188字节是写校验数据,而后16字节是前188字节写校验数据对应的写校验码。
由于Nand Flash的最小读写单位是页,每页的数据大小是2048字节,且上层应用以整页数据进行读写,因此,当采用该编码算法对待写数据进行编码时,会得到至少两组写编码数据,每组写编码数据均包括写校验数据和写 校验数据对应的写校验码。对于每组写编码数据的长度、写校验数据的大小以及写校验码的大小视校验算法的能力而定,本发明实施例并不对其进行限定。
步骤102:将上述至少两组写编码数据中每组写编码数据包括的写校验数据和该写校验数据对应的写校验码依次写入Nand Flash的至少两相邻页的主区中。
由上述分析可知,写编码数据包括写校验数据及其对应的写校验码,且一般现有的文件系统或上层软件均以整页为单位对Nand Flash进行操作和管理,此时,对写编码数据进行操作时,每页中存储的写校验数据将变得较少,因此,需要将上述至少两组写编码数据依次写入Nand Flash的至少两相邻页的主区中来实现整页数据的读写。
图2为本发明提供的Nand Flash控制方法中Nand Flash物理页的排布示意图。如图2所示,Nand Flash的一个页包括:主区(Main Area)21和备用区(Spare Area)22两个域,备用区22也称为oob区,相应的,一个页的大小包括页大小(pagesize)和oob区大小(oobsize),主区21的大小称为页大小,备用区22大小称为oob区大小,而且上层应用对NandFlash的操作均是以大小为页大小的字节进行的,因此,本发明为了提高ECC算法的纠错能力,将编码产生了的写校验码与写校验数据一同存放在页大小对应字节的位置,因此需要额外的空间去存储被占用掉位置的字节,由于oob区的大小一般满足不了这种要求,所以,如图2所示,本发明将Nand Flash的至少两相邻页合并成一个写操作页,用于存放编码产生的至少两组写编码数据,进而实现了整页数据的读写。
本发明实施例提供的Nand Flash控制方法,通过将采用纠错位数大于预设纠错位数的校验算法对待写数据进行编码得到的至少两组写编码数据依次写入Nand Flash的至少两相邻页的主区中,且每组写编码数据包括写校验数据和其对应的校验码,因此,本发明实施例中的写校验数据和其对应的写校验码一同存放在主区,打破了ECC校验码的字节数和Nand Flash上oob区存储空间有限的限制,提高了ECC算法的能力,增强了操作数据的可靠性。
图3为本发明提供的Nand Flash控制方法实施例二的流程示意图。本发明实施例二是在上述实施例一的基础上对Nand Flash控制方法的进一步说 明。如图3所示,在本发明实施例提供的Nand Flash控制方法中,在步骤102,也即,在将上述至少两组写编码数据中每组写编码数据包括的写校验数据和该写校验数据对应的写校验码依次写入NandFlash的至少两相邻页的主区中之前,还包括:
步骤301:根据写编码数据的组数以及每组写编码数据的大小,确定至少两组写编码数据所占用的Nand Flash页数;
具体的,写编码数据的组数乘以每组写编码数据的大小便可得到写编码数据的整体大小,再根据Nand Flash的物理页大小,便可确定出上述至少两组写编码数据所占用的Nand Flash页数。
步骤302:根据获取到的操作命令函数,获取待写数据对应的物理页地址;
上层应用通过下发操作命令函数来确定操作类型、操作数据大小、操作对应的物理页地址,因此,根据获取到的操作命令函数,便可确定出上层应用指定的待写数据对应的物理页地址,只有确定出待写数据对应的物理页地址,才能准确定位到实际应用中的写操作页地址。
步骤303:根据至少两组写编码数据所占用的Nand Flash页数和待写数据对应的物理页地址,确定该至少两组写编码数据对应的写操作页地址。
由上述分析可知,上层应用以整页为单位进行读写操作时,其会对应至少两组写编码数据,该至少两组写编码数据将占用至少两相邻页的大小,所以,为了确保数据能够准确的写入Nand Flash,需要根据待写数据对应的至少两组写编码数据所占用的Nand Flash页数和待写数据对应的物理页地址,确定该至少两组写编码数据对应的写操作页地址,进而为后续实现数据的正确写入奠定基础。
例如,若上述至少两组写编码数据所占用的Nand Flash页数为两页,那么将物理页地址乘以2便可得到该至少两组写编码数据对应的写操作页地址。
本发明实施例提供的Nand Flash控制方法,利用写编码数据的组数以及每组写编码数据的大小,便可确定出所有写编码数据所占用的Nand Flash页数,根据该Nand Flash页数和获取到的待写数据对应的物理页地址,能够确定出该至少两组写编码数据对应的写操作页地址,为准确将写编码数据写入 页中奠定了基础,实现了对现有文件系统和其他软件的兼容,增强了数据的可靠性。
图4为本发明提供的Nand Flash控制方法实施例三的流程示意图。本发明实施例三是在上述实施例的基础上对Nand Flash控制方法的进一步说明。如图4所示,在本发明实施例提供的Nand Flash控制方法中,步骤102,也即,将上述至少两组写编码数据中每组写编码数据包括的写校验数据和该写校验数据对应的写校验码依次写入Nand Flash的至少两相邻页的主区中,具体包括:
步骤401:根据获取到的操作命令函数,确定待写数据对应的页内偏移量;
具体的,上层应用下发的操作命令函数中,还包括待写数据对应的页内偏移量,因此,根据获取到的操作命令函数,可确定出上层应用指定的页内偏移量,进而确定出待写数据在某一物理页中的写起始位置。
步骤402:根据写操作页地址和页内偏移量,确定至少两组写编码数据在写操作页地址对应页内的写起始位置;
通过上述实施例二确定的写操作页地址和步骤401得到的待写数据对应的页内偏移量,便可准确的确定出上述至少两组写编码数据对应的准确地址,也即,写操作页地址对应页内的写起始位置。
步骤403:从该写起始位置开始依次将上述至少两组写编码数据中每组写编码数据包括的写校验数据和该写校验数据对应的写校验码写入写操作页地址对应页及相邻页的主区中。
具体的,按照页的写入规则,首先定位到上述写起始位置,从该开始位置开始依次将上述至少两组写编码数据写入写操作页地址对应页及相邻页的主区中,从而实现了对Nand Flash的写操作。
本发明实施例提供的Nand Flash控制方法,通过获取待写数据对应的页内偏移量以及确定的写操作页地址,得到至少两组写编码数据在写操作页地址对应页内的写起始位置,进而从该写起始位置开始依次将上述至少两组写编码数据写入写操作页地址对应页及相邻页的主区中,实现了数据的写入,突破了校验结果只能存放在页的oob区的限制,提高了数据在读写过程中的可靠性。
进一步的,在上述实施例提供的Nand Flash控制方法中,若上述预设纠错位数为1字节,则纠错位数大于预设纠错位数的校验算法,包括:错误检查校验ECC的里德-所罗门RS(204,188)编码算法;该ECC的RS(204,188)编码算法的纠错位数小于或等于8字节。
图5为本发明提供的Nand Flash控制方法中数据存放分布的结构示意图。如图5所示,在本实施例中,以Nand Flash每个页的大小为2048字节为例进行说明,当采用ECC的RS(204,188)编码算法对待写数据进行编码后,由于每组写编码数据的长度为204,因此,每个页中只能写入10组写编码数据,占用每页的前2040个字节。在每组写编码数据中,每188个字节会有16个字节存放校验结果,大大提高了ECC算法的校验纠错能力,相应的,该ECC的RS(204,188)编码算法最多可纠错8个字节,每个字节内部出错的位数均可以是1~8个。
相应的,上述步骤101,也即,采用纠错位数大于预设纠错位数的校验算法对待写数据进行编码,得到至少两组写编码数据,具体包括:
采用ECC的RS(204,188)编码算法对待写数据进行编码,得到11组写编码数据,每组写编码数据的前188字节为写校验数据,且每组写编码数据的后16字节为写校验码。
现有的文件系统或上层软件对Nand Flash进行读写和管理时,是以整页为单位进行操作和管理的,因此,若页的大小为2048字节,那么,待写数据的大小应为2048字节,当采用ECC的RS(204,188)编码算法对待写数据进行编码时,每组写编码数据只有188个字节的写校验数据有效,因此,2048个字节大小的数据会被编码形成11组写编码数据,且每组写编码数据的前188字节为写校验数据,且每组写编码数据的后16字节为该写校验数据对应的写校验码。相应的,采用ECC的RS(204,188)编码算法后,Nand Flash的利用率为188/204。
进一步的,在上述实施例提供的Nand Flash控制方法中,在上述步骤101,也即,在采用纠错位数大于预设纠错位数的校验算法对待写数据进行编码,得到至少两组写编码数据之前,还包括:
获取针对Nand Flash的操作命令函数,该操作命令函数,包括:操作命令类型、逻辑页地址、页内偏移量;
具体的,上层应用通过下发操作命令函数通知Nand Flash会执行什么操作,因此,首先需要获取针对Nand Flash的操作命令函数,该操作命令函数中包括操作命令类型、逻辑页地址和页内偏移量,进而来指定操作命令类型,确定所操作页的地址以及对页寻址的起始位置。
可选的,操作命令函数中,还包括:交互操作数据的缓存区以及物理页区域操作的标记等。本发明实施例只是以操作命令函数包括操作命令类型、逻辑页地址、页内偏移量为例进行说明,本发明并不对操作命令函数的具体组成进行限定。
相应的,若操作命令类型为写操作命令,则从数据缓存区中读取上述待写数据。
具体的,当上层应用指定的操作命令类型为写操作命令,那么数据缓存区作为上层应用与Nand Flash的数据交互区,其中存储有将要写入的待写数据,因此,当执行写操作命令时,首先从数据缓存区中读取待写数据,然后按照指定的校验算法对待写数据进行编码,并将编码后得到的编码写数据按照顺序依次写入Nand Flash的至少两相邻页的主区中。
值得说明的是,当对页的oob区进行写操作时,由于oob区作为Nand Flash中主区的备用部分,对其操作时,不需要开启校验功能,在至少两相邻页合并成一写操作页的操作上,只需要选用第一逻辑页中的oob区即可满足上层应用的要求。因此,区别于写主区的操作,写oob区的时候,只需要发起一次写命令,而在操作Nand Flash控制器时,只需要将页内偏移量设为页内主区的大小,而且写入数据的大小为oob区的空间大小。
图6为本发明提供的Nand Flash控制方法实施例四的流程示意图。本发明实施例四是在上述实施例的基础上对Nand Flash控制方法的进一步说明。如图6所示,本发明实施例提供的Nand Flash控制方法,还包括:
步骤601:若操作命令类型为读操作命令,则根据待读数据对应的逻辑页地址以及待读数据对应的至少两组读编码数据所占用的Nand Flash页数,确定上述至少两组读编码数据对应的读操作页地址;
具体的,与上述实施例中的写操作类似,若操作命令类型为读操作命令,那么则需要根据待读数据对应的逻辑页地址以及待读数据对应的至少两组读编码数据所占用的Nand Flash页数,确定出上述至少两组写编码数据对应的 读操作页地址。
步骤602:根据待读数据对应的页内偏移量和上述读操作页地址,确定至少两组读编码数据在读操作页地址对应页内的读起始位置;
类似的,根据操作命令函数中的页内偏移量和待读数据的逻辑读地址,可确定出至少两组读编码数据在读操作页对应页内的读起始位置,进而从该读起始位置进行读取数据。
步骤603:从读起始位置开始依次从读操作页地址对应页及相邻页的主区中读取上述至少两组读编码数据;
具体的,当确定出待读数据对应的至少两组读编码数据所占用的Nand Flash页数以及读起始位置,便可从读起始位置开始依次从读操作页地址对应页及相邻页的主区中读取上述至少两组读编码数据,进而存储到上层应用与Nand Flash数据交互的缓存区。
步骤604:对上述至少两组读编码数据按照纠错位数大于预设纠错位数的校验算法进行解码,得到待读数据。
具体的,由于对待写数据进行编码时采用的是纠错位数大于预设纠错位数的校验算法,因此,同样采用纠错位数大于预设纠错位数的校验算法对上述至少两组读编码数据进行解码,便可获取到读编码数据中的读校验数据和对应的读校验码,进而得到读校验数据对应的待读数据,而且,根据读校验码和写操作时的写校验码,便可对读校验数据的正确性进行检测和校验。
值得说明的是,当对页的oob区进行读操作时,由于oob区作为Nand Flash中主区的备用部分,也不需要开启校验功能,在至少两相邻页合并成一读操作页的操作上,同样只需要选用第一逻辑页中的oob区即可满足上层应用的要求。因此,区别于读主区的操作,读oob区的时候,只需要发起一次读命令,而在操作Nand Flash控制器时,只需要将页内偏移量设为页内主区的大小,而且读取数据的大小为oob区的空间大小。
本发明实施例提供的Nand Flash控制方法,根据待读数据对应的逻辑页地址以及待读数据对应的至少两组读编码数据所占用的Nand Flash页数,便可确定出读编码数据对应的读操作页地址,再根据待读数据对应的页内偏移量,进而可确定至少两组读编码数据在读操作页地址对应页内的读起始位置,从而从读起始位置开始可依次从读操作页地址对应页及相邻页的主区中读取 对应的至少两组读编码数据,最后对上述至少两组读编码数据按照纠错位数大于预设纠错位数的校验算法进行解码,得到待读数据。本发明的技术方案,在读取读校验数据时,一同将其读校验码一同从页的主区中读出,打破了原有ECC校验码字节数和Nand Flash上oob区存储空间有限的限制,提高了ECC算法的能力,增强了操作数据的可靠性。
值得说明的是,对于Nand Flash的写入操作必须在空白区域进行,如果NandFlash的指定操作区域已经有数据,那么必须先擦除后再写入,因此擦除操作是Nand Flash的基本操作,而且,Nand型闪存是以块为单位进行擦除操作。Nand Flash的擦除操作主要依靠Nand控制器,而Nand控制器需要的主要信息就是块地址,并且执行擦除操作时不需要对操作数据进行校验。
图7为本发明提供的Nand Flash控制方法实施例五的流程示意图。本发明实施例五是在上述实施例的基础上对Nand Flash控制方法的进一步说明。本发明实施例主要针对Nand Flash中的坏块进行管理。具体的,如图7所示,本发明实施例提供的Nand Flash控制方法,还包括:
步骤701:获取Nand Flash的基本信息;
其中,该基本信息,包括:设备ID、页大小、块大小和设备总大小。
对于Nand Flash的设备信息,在Flash信息获取模块由程序直接指定,是设备硬件的固有特性,不需要额外的操作,这些信息主要包括:设备ID、页大小、oob区大小、块大小和设备中大小。基于上述至少两相邻页合并成一操作页的方案,引发的结果是每个块中包含的可操作页相应减少至少两倍,使得每块的块大小相应减少至少两倍,设备总大小减少至少两倍,但是块的数量表现为没有变化。
步骤702:根据设备总大小和页大小,确定Nand Flash的总页数;
当采用纠错位数大于预设纠错位数的校验算法对待操作数据进行编码,并对NandFlash的相应页进行读写操作后,设备总大小为操作后的总大小,页大小为每页的可操作大小,根据获取到的设备总大小和页大小,将设备总大小除以页大小,便可得到Nand Flash的总页数。
步骤703:根据设备总大小和块大小,确定Nand Flash的总块数;
相应的,根据Flash信息获取模块获取到的设备总大小和块大小,使设备总大小除以块大小,便可计算出Nand Flash的总块数。
步骤704:根据块大小和页大小,确定Nand Flash中每块包含的页数量;
步骤705:根据总页数、总块数以及每块包含的页数量,建立包含块与页对应关系的数组块表;
具体的,数组块表是一个数组,是基于Flash信息获取模块指定的Nand Flash设备参数,计算出Flash设备含有的总页数和总块数,建立出来的包含总块数个成员的数组,每个数组成员表示一个相应块的状态。
步骤706:读取数组块表中各块包含的各页oob区的数据;
上层应用对应的程序通过遍历数组块表中各块包含的所有页,可读取每页的oob区数据,根据每页oob区数据的正错情况,确定出该块是否为坏块。具体的,可根据每块第0页oob区的第二个字节来判断。
步骤707:若每块包含的所有页oob区的数据均出现错误,则标记该块为坏块,形成坏块表。
若每块包含的所有页oob区的数据均出错,那么表明对该块进行读写操作时会出现错误,则将上述各块标记为坏块,所有坏块的组合形成坏块表,以使对Nand Flash进行操作时跳过坏块,从而保证数据的可靠性。
本发明实施例提供的Nand Flash控制方法,利用Nand Flash的设备总大小、页大小、块大小,确定出Flash设备含有的总页数和总块数,进而建立包含总块数个成员的数组块表,根据数组块表中各块包含的各页oob区的数据,筛选出坏块,形成坏块表,进而在后续对Nand Flash进行操作时跳过坏块,进而保证数据的可靠性。
图8为本发明提供的Nand Flash控制装置实施例一的结构示意图。如图8所示,本发明实施例提供的Nand Flash控制装置,包括:
编码模块801,用于采用纠错位数大于预设纠错位数的校验算法对待写数据进行编码,得到至少两组写编码数据;
其中,每组写编码数据,包括:写校验数据和所述写校验数据对应的写校验码。
写操作模块802,用于将编码模块801编码得到的至少两组写编码数据中每组写编码数据包括的写校验数据和该写校验数据对应的写校验码依次写入Nand Flash的至少两相邻页的主区中。
本发明实施例提供的Nand Flash控制装置,可用于执行如图1所示方法 实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图9为本发明提供的Nand Flash控制装置实施例二的结构示意图。本发明实施例是在上述实施例的基础上对Nand Flash控制装置的进一步说明。如图9所示,本发明实施例提供的Nand Flash控制装置,还包括:操作页数确定模块901、物理页地址获取模块902和写地址确定模块903。
该操作页数确定模块901,用于在写操作模块802之前根据写编码数据的组数以及每组所述写编码数据的大小,确定至少两组写编码数据所占用的Nand Flash页数;
该物理页地址获取模块902,用于根据获取到的操作命令函数,获取待写数据对应的物理页地址;
该写地址确定模块903,用于根据操作页数确定模块901确定的至少两组写编码数据所占用的Nand Flash页数和物理页地址获取模块902获取到的待写数据对应的物理页地址,确定至少两组写编码数据对应的写操作页地址。
本发明实施例提供的Nand Flash控制装置,可用于执行如图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图10为本发明提供的Nand Flash控制装置实施例三的结构示意图。本发明实施例是在上述实施例的基础上对Nand Flash控制装置的进一步说明。如图10所示,在本发明实施例提供的Nand Flash控制装置中,上述写操作模块802,包括:
偏移量确定单元1001,用于根据获取到的操作命令函数,确定待写数据对应的页内偏移量;
写起始位置确定单元1002,用于根据写操作页地址和页内偏移量,确定至少两组写编码数据在写操作页地址对应页内的写起始位置;
写操作单元1003,用于从写起始位置开始依次将至少两组写编码数据中每组写编码数据包括的写校验数据和该写校验数据对应的写校验码写入写操作页地址对应页及相邻页的主区中。
本发明实施例提供的Nand Flash控制装置,可用于执行如图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
进一步的,在上述实施例提供的Nand Flash控制装置中,若上述预设纠错位数为1字节,则上述纠错位数大于预设纠错位数的校验算法,包括:错 误检查校验(ErrorChecking and Correction,简称ECC)的里德-所罗门(Reed solomon,简称RS)(204,188)编码算法;该ECC的RS(204,188)编码算法的纠错位数小于或等于8字节;
则上述编码模块801,具体用于采用ECC的RS(204,188)编码算法对上述待写数据进行编码,得到11组写编码数据,每组写编码数据的前188字节为写校验数据,且每组写编码数据的后16字节为写校验码。
进一步的,上述实施例提供的Nand Flash控制装置,还包括:操作命令获取模块和写数据获取模块。
该操作命令获取模块,用于在编码模块801之前获取针对Nand Flash的操作命令函数,该操作命令函数,包括:操作命令类型、逻辑页地址、页内偏移量;
该写数据获取模块,用于在操作命令类型为写操作命令时,从数据缓存区中读取待写数据。
图11为本发明提供的Nand Flash控制装置实施例四的结构示意图。本发明实施例是在上述实施例的基础上对Nand Flash控制装置的进一步说明。如图11所示,本发明实施例提供的Nand Flash控制装置,还包括:
读地址确定模块1101,用于在操作命令类型为读操作命令时,根据待读数据对应的逻辑页地址以及待读数据对应的至少两组读编码数据所占用的Nand Flash页数,确定至少两组读编码数据对应的读操作页地址;
读起始位置确定单元1102,用于根据待读数据对应的页内偏移量和读操作页地址,确定至少两组读编码数据在所述读操作页地址对应页内的读起始位置;
读操作模块1103,用于从读起始位置开始依次从读操作页地址对应页及相邻页的主区中读取至少两组读编码数据;
解码模块1104,用于对上述至少两组读编码数据按照纠错位数大于预设纠错位数的校验算法进行解码,得到待读数据。
本发明实施例提供的Nand Flash控制装置,可用于执行如图6所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图12为本发明提供的Nand Flash控制装置实施例五的流程示意图。本发明实施例五是在上述实施例的基础上对Nand Flash控制装置的进一步说明。 本发明实施例主要针对Nand Flash中的坏块进行管理。具体的,如图12所示,本发明实施例提供的Nand Flash控制装置,还包括:
基本信息获取模块1201,用于获取Nand Flash的基本信息;
总页数确定模块1202,用于根据基本信息获取模块1201获取到的设备总大小和页大小,确定Nand Flash的总页数;
总块数确定模块1203,用于根据基本信息获取模块1201获取到的设备总大小和块大小,确定Nand Flash的总块数;
块中页数量确定模块1204,用于根据基本信息获取模块1201获取到的块大小和页大小,确定Nand Flash中每块包含的页数量;
数组块表建立模块1205,用于根据总页数确定模块1202确定的总页数、总块数确定模块1203确定的总块数以及块中页数量确定模块1204确定的每块包含的页数量,建立包含块与页对应关系的数组块表;
oob区数据获取模块1206,用于读取数组块表建立模块1205建立的数组块表中各块包含的各页oob区的数据;
坏块表标记模块1207,用于在每块包含的所有页oob区的数据均出现错误时,标记该块为坏块,形成坏块表。
本发明实施例提供的Nand Flash控制装置,可用于执行如图7所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (12)
1.一种Nand Flash控制方法,其特征在于,包括:
采用纠错位数大于预设纠错位数的校验算法对待写数据进行编码,得到至少两组写编码数据,每组写编码数据包括:写校验数据和所述写校验数据对应的写校验码;其中,所述预设纠错位数是所述校验算法所能纠正的错误的比特位数,用于表征所述校验算法校正和检测错误的能力;
将所述至少两组写编码数据中每组写编码数据包括的写校验数据和所述写校验数据对应的写校验码依次写入Nand Flash的至少两相邻页的主区中;
所述至少两相邻页被合并成一个写操作页,所述至少两组写编码数据被存放在合并后得到的所述写操作页中。
2.根据权利要求1所述的方法,其特征在于,在所述将所述至少两组写编码数据中每组写编码数据包括的写校验数据和所述写校验数据对应的写校验码依次写入Nand Flash的至少两相邻页的主区中之前,还包括:
根据写编码数据的组数以及每组所述写编码数据的大小,确定所述至少两组写编码数据所占用的Nand Flash页数;
根据获取到的操作命令函数,获取所述待写数据对应的物理页地址;
根据所述至少两组写编码数据所占用的Nand Flash页数和所述待写数据对应的物理页地址,确定所述至少两组写编码数据对应的写操作页地址。
3.根据权利要求2所述的方法,其特征在于,所述将所述至少两组写编码数据中每组写编码数据包括的写校验数据和所述写校验数据对应的写校验码依次写入Nand Flash的至少两相邻页的主区中,具体包括:
根据获取到的所述操作命令函数,确定所述待写数据对应的页内偏移量;
根据所述写操作页地址和所述页内偏移量,确定所述至少两组写编码数据在所述写操作页地址对应页内的写起始位置;
从所述写起始位置开始依次将所述至少两组写编码数据中每组写编码数据包括的写校验数据和所述写校验数据对应的写校验码写入所述写操作页地址对应页及相邻页的主区中。
4.根据权利要求1所述的方法,其特征在于,若所述预设纠错位数为1字节,则所述纠错位数大于预设纠错位数的校验算法,包括:错误检查校验ECC的里德-所罗门RS(204,188)编码算法;所述ECC的RS(204,188)编码算法的纠错位数小于或等于8字节;
则所述采用纠错位数大于预设纠错位数的校验算法对待写数据进行编码,得到至少两组写编码数据,具体包括:
采用所述ECC的RS(204,188)编码算法对所述待写数据进行编码,得到11组写编码数据,每组写编码数据的前188字节为写校验数据,且每组写编码数据的后16字节为写校验码。
5.根据权利要求1~4任一项所述的方法,其特征在于,在所述采用纠错位数大于预设纠错位数的校验算法对待写数据进行编码,得到至少两组写编码数据之前,还包括:
获取针对所述Nand Flash的操作命令函数,所述操作命令函数,包括:操作命令类型、逻辑页地址、页内偏移量;
若所述操作命令类型为写操作命令,则从数据缓存区中读取所述待写数据。
6.根据权利要求5所述的方法,其特征在于,还包括:
若所述操作命令类型为读操作命令,则根据待读数据对应的逻辑页地址以及所述待读数据对应的至少两组读编码数据所占用的Nand Flash页数,确定所述至少两组读编码数据对应的读操作页地址;
根据所述待读数据对应的页内偏移量和所述读操作页地址,确定所述至少两组读编码数据在所述读操作页地址对应页内的读起始位置;
从所述读起始位置开始依次从所述读操作页地址对应页及相邻页的主区中读取所述至少两组读编码数据;
对所述至少两组读编码数据按照所述纠错位数大于预设纠错位数的校验算法进行解码,得到所述待读数据。
7.一种Nand Flash控制装置,其特征在于,包括:
编码模块,用于采用纠错位数大于预设纠错位数的校验算法对待写数据进行编码,得到至少两组写编码数据,每组写编码数据包括:写校验数据和所述写校验数据对应的写校验码;其中,所述预设纠错位数是所述校验算法所能纠正的错误的比特位数,用于表征所述校验算法校正和检测错误的能力;
写操作模块,用于将所述编码模块编码得到的所述至少两组写编码数据中每组写编码数据包括的写校验数据和所述写校验数据对应的写校验码依次写入Nand Flash的至少两相邻页的主区中,所述至少两相邻页被合并成一个写操作页,所述至少两组写编码数据被存放在合并后得到的所述写操作页中。
8.根据权利要求7所述的装置,其特征在于,还包括:操作页数确定模块、物理页地址获取模块和写地址确定模块;
所述操作页数确定模块,用于在所述写操作模块之前根据写编码数据的组数以及每组所述写编码数据的大小,确定所述至少两组写编码数据所占用的Nand Flash页数;
所述物理页地址获取模块,用于根据获取到的操作命令函数,获取所述待写数据对应的物理页地址;
所述写地址确定模块,用于根据所述至少两组写编码数据所占用的Nand Flash页数和所述待写数据对应的物理页地址,确定所述至少两组写编码数据对应的写操作页地址。
9.根据权利要求8所述的装置,其特征在于,所述写操作模块,包括:
偏移量确定单元,用于根据获取到的所述操作命令函数,确定所述待写数据对应的页内偏移量;
写起始位置确定单元,用于根据所述写操作页地址和所述页内偏移量,确定所述至少两组写编码数据在所述写操作页地址对应页内的写起始位置;
写操作单元,用于从所述写起始位置开始依次将所述至少两组写编码数据中每组写编码数据包括的写校验数据和所述写校验数据对应的写校验码写入所述写操作页地址对应页及相邻页的主区中。
10.根据权利要求7所述的装置,其特征在于,若所述预设纠错位数为1字节,则所述纠错位数大于预设纠错位数的校验算法,包括:错误检查校验ECC的里德-所罗门RS(204,188)编码算法;所述ECC的RS(204,188)编码算法的纠错位数小于或等于8字节;
则所述编码模块,具体用于采用所述ECC的RS(204,188)编码算法对所述待写数据进行编码,得到11组写编码数据,每组写编码数据的前188字节为写校验数据,且每组写编码数据的后16字节为写校验码。
11.根据权利要求7~10任一项所述的装置,其特征在于,还包括:操作命令获取模块和写数据获取模块;
所述操作命令获取模块,用于在所述编码模块之前获取针对所述Nand Flash的操作命令函数,所述操作命令函数,包括:操作命令类型、逻辑页地址、页内偏移量;
所述写数据获取模块,用于在所述操作命令类型为写操作命令时,从数据缓存区中读取所述待写数据。
12.根据权利要求11所述的装置,其特征在于,还包括:
读地址确定模块,用于在所述操作命令类型为读操作命令时,根据待读数据对应的逻辑页地址以及所述待读数据对应的至少两组读编码数据所占用的Nand Flash页数,确定所述至少两组读编码数据对应的读操作页地址;
读起始位置确定单元,用于根据所述待读数据对应的页内偏移量和所述读操作页地址,确定所述至少两组读编码数据在所述读操作页地址对应页内的读起始位置;
读操作模块,用于从所述读起始位置开始依次从所述读操作页地址对应页及相邻页的主区中读取所述至少两组读编码数据;
解码模块,用于对所述至少两组读编码数据按照所述纠错位数大于预设纠错位数的校验算法进行解码,得到所述待读数据。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201610515960.0A CN107562563B (zh) | 2016-07-01 | 2016-07-01 | Nand Flash控制方法和装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201610515960.0A CN107562563B (zh) | 2016-07-01 | 2016-07-01 | Nand Flash控制方法和装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN107562563A CN107562563A (zh) | 2018-01-09 |
| CN107562563B true CN107562563B (zh) | 2021-06-15 |
Family
ID=60969909
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201610515960.0A Active CN107562563B (zh) | 2016-07-01 | 2016-07-01 | Nand Flash控制方法和装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN107562563B (zh) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111061592B (zh) * | 2019-11-22 | 2023-10-20 | 山东航天电子技术研究所 | 一种通用的Nand Flash比特位反转纠错方法 |
| CN113110794B (zh) * | 2020-01-10 | 2023-09-08 | 株洲中车时代电气股份有限公司 | 一种用于NandFlash的数据存储方法与系统 |
| CN111813591B (zh) * | 2020-07-03 | 2023-12-29 | 深圳市国微电子有限公司 | Nand Flash的数据纠错方法、装置、电子设备及存储介质 |
| CN115329399B (zh) * | 2022-10-13 | 2023-01-31 | 江苏华存电子科技有限公司 | 基于nand的垂直水平raid4数据保护管理方法及系统 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101308706A (zh) * | 2007-05-18 | 2008-11-19 | 瑞昱半导体股份有限公司 | 适用于闪存的数据写入方法及错误修正编解码方法 |
| CN103198020A (zh) * | 2013-03-18 | 2013-07-10 | 山东华芯半导体有限公司 | 一种提高闪存使用寿命的方法 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101425342B (zh) * | 2008-10-29 | 2010-12-08 | 四川和芯微电子股份有限公司 | 针对NAND Flash冗余码的存取方法 |
| CN104267908A (zh) * | 2014-07-14 | 2015-01-07 | 北京君正集成电路股份有限公司 | 一种数据存储以及读取的方法及装置 |
-
2016
- 2016-07-01 CN CN201610515960.0A patent/CN107562563B/zh active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101308706A (zh) * | 2007-05-18 | 2008-11-19 | 瑞昱半导体股份有限公司 | 适用于闪存的数据写入方法及错误修正编解码方法 |
| CN103198020A (zh) * | 2013-03-18 | 2013-07-10 | 山东华芯半导体有限公司 | 一种提高闪存使用寿命的方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN107562563A (zh) | 2018-01-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9817749B2 (en) | Apparatus and method of offloading processing from a data storage device to a host device | |
| KR102065665B1 (ko) | 더미 워드라인을 포함하는 불휘발성 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법 | |
| US9037946B2 (en) | Detecting effect of corrupting event on preloaded data in non-volatile memory | |
| US9257204B2 (en) | Read voltage setting method, and control circuit, and memory storage apparatus using the same | |
| US9025374B2 (en) | System and method to update read voltages in a non-volatile memory in response to tracking data | |
| US8732553B2 (en) | Memory system and control method thereof | |
| US9195539B2 (en) | Method for reading data from block of flash memory and associated memory device | |
| US9130597B2 (en) | Non-volatile memory error correction | |
| US9575829B2 (en) | Probability-based remedial action for read disturb effects | |
| US9424126B2 (en) | Memory controller | |
| JP2010529557A (ja) | 新たな不良ブロック検出 | |
| US20160283319A1 (en) | Data storage device and encoding method thereof | |
| TWI741128B (zh) | 記憶體系統及用於操作半導體記憶體裝置的方法 | |
| US20160103734A1 (en) | Data Storage Device and Data Maintenance Method Thereof | |
| CN107562563B (zh) | Nand Flash控制方法和装置 | |
| CN106297883A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
| US9754682B2 (en) | Implementing enhanced performance with read before write to phase change memory | |
| US20170255523A1 (en) | Non-volatile memory devices and controllers | |
| WO2017107160A1 (zh) | 基于异构混合内存的nvm坏块识别处理及纠错方法和系统 | |
| US11630588B2 (en) | Controller and memory system including the same | |
| TWI844591B (zh) | 減少基於校驗子的準循環解碼器的延遲 | |
| US10019186B2 (en) | Data maintenance method for error control and data storage device using the same | |
| US9104596B2 (en) | Memory system | |
| KR101308616B1 (ko) | 비휘발성 메모리 시스템 | |
| CN104298571B (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 | ||
| CB02 | Change of applicant information | ||
| CB02 | Change of applicant information |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Applicant after: Loongson Zhongke Technology Co.,Ltd. Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Applicant before: LOONGSON TECHNOLOGY Corp.,Ltd. |
|
| GR01 | Patent grant | ||
| GR01 | Patent grant |