CN103426470B - 提高快闪存储器的页编程速度的方法 - Google Patents
提高快闪存储器的页编程速度的方法 Download PDFInfo
- Publication number
- CN103426470B CN103426470B CN201210158692.3A CN201210158692A CN103426470B CN 103426470 B CN103426470 B CN 103426470B CN 201210158692 A CN201210158692 A CN 201210158692A CN 103426470 B CN103426470 B CN 103426470B
- Authority
- CN
- China
- Prior art keywords
- programming
- storage unit
- verification
- block
- flash memory
- 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)
Abstract
本发明公开一种快闪存储器的页编程方法,包括以下步骤:S41,将页的信息加载到快闪存储器;S42,根据灵敏放大器能力,设定校验子区块大小,以校验子区块为单位遍历页地址进行校验;判断校验是否全部通过;S43,进行第一圈编程:即根据漏极泵能力设定编程子区块大小,以编程子区块为单位遍历页地址进行编程;S44,重复S42;S45,进行第二圈编程:即根据漏极泵能力设定编程子区块大小,以编程子区块为单位遍历页地址进行编程;S46,重复S42;S47,进行第三圈编程:即重复S45;S48,重复S42。本发明可避免对同一子区块反复“校验—编程—校验”、灵活地设定子区块大小、不遍历整个页地址,从而提高页编程速度。
Description
技术领域
本发明涉及快闪存储器领域,特别涉及一种提高快闪存储器的页编程速度的方法。
背景技术
众所周知,快闪存储器(flashmemory)是一种非易失性存储器(Non-volatilememory),其包括大量的存储单元。每一个存储单元包括能够保存电荷的浮动栅极场效应晶体管。
典型的快闪存储器通过改变浮动栅极中电子的数量来存储数据:将电子注入到一个存储单元的浮动栅极时,该存储单元的阈值电压增加,这时该存储单元处于已编程状态;而当将该存储单元的浮动栅极中俘获的电子去除后,该存储单元的阈值电压降低,这时该存储单元处于已擦除状态。
因此,如果在一个存储单元的浮动栅极中有电子,则该存储单元处于已编程状态,可被写入数据;如果在一个存储单元的浮动栅极中没有电子,则该存储单元处于已擦除状态。
如图1所示为快闪存储器的存储阵列示意图。快闪存储器至少包括存储阵列(array)、地址译码器(包括行译码器和列译码器)、灵敏放大器(sensitiveamplifier,SA)、控制电路和缓冲/驱动电路。存储阵列中的每个存储单元(cell)都与其它存储单元在行和列上共享电学连接,其中水平方向的连线称为字线(wordline,WL),而垂直方向的数据流入和流出存储单元的连线称为位线(bitline,BL)。通过输入的地址可选择特定的字线和位线,字线和位线的交叉处就是被选中的存储单元,每一个存储单元都是按这种方法被唯一选中,然后再对其进行读写操作。有的存储器设计成多位数据如4位或8位等同时输入和输出,这样的话,就会同时有4个或8个存储单元按上述方法被选中进行读写操作。
在快闪存储器中,排成矩阵形式的存储单元阵列的周围是译码器和与外部信号的接口电路。存储单元阵列通常采用正方形或矩阵的形式,以减少整个芯片面积并有利于数据的存取。
以一个存储容量为4K位的SRAM为例,共需12条地址线来保证每一个存储单元都能被选中(212=4096)。如果存储单元阵列被排列成只包含一列的长条形,则需要一个12/4K位的译码器,但如果排列成包含64行(26=64)和64列(26=64)的正方形,这时则只需一个6/64位的行译码器和一个6/64位的列译码器,行、列译码器可分别排列在存储单元阵列的两边,64行和64列共有4096个交叉点,每一个点就对应一个存储单元。因此,将存储单元排列成正方形比排列成一列的长条形要大大地减少整个芯片地面积。
存储单元排列成长条形除了形状奇异和面积大以外,还有一个缺点,那就是排在列的上部的存储单元与数据输入/输出端的连线就会变得很长,特别是对于容量比较大的存储器来说,情况就更为严重,而连线的延迟至少是与它的长度成线性关系,连线越长,线上的延迟就越大,所以就会导致读写速度的降低和不同存储单元连线延迟的不一致性。
对快闪存储器的页编程操作是区块操作,每次页编程操作都是某个区块一定数量的存储单元在同时进行,不会对每一个存储单元进行单独的页编程操作。
由于各个存储单元不可能完全相同,所以每次页编程操作完成之后,不一定能全部通过校验。
假定擦除状态对应于二进制1值,且需要将某个存储单元进行编程,以便将其设为1值,则因为在编程或编程校验前各存储单元一般都已经过擦除,故不需要对其进行编程了。
假定擦除状态对应于二进制1值,且需要将某个存储单元进行编程,以便将其设为0值,那么:
如果存储单元的原始状态对应于二进制0值,则经过校验后不需要对其进行编程了;
如果存储单元的原始状态对应于二进制1值,则经过校验后,进行区块编程或页编程时,一般直接将二进制1值改变成0值,而无需中间擦除过程。
已经编程成0值的存储单元,不经区块擦除或页擦除,不能改变为1值。
因此,综合以上分析,编程一般限于根据稍后要用于编程的01序列编程信息中的0值,将原本对应于二进制1值的存储单元改变为对应于二进制0值。
简而言之,编程即是写0,已经写0即已经编程的存储单元,不会再打开,不会再写。
现有的快闪存储器至少包括以下几个方面:
1.有一个快闪存储器存储一个页(page)的编程信息。
例如,如果一个页是256个字节,一次要读256个字节,则快闪存储器存储一个页即256个字节的信息,在编程时只需要对256*8=2048个存储单元编程;如果一个页是512个字节,一次要读512个字节,则快闪存储器存储一个页即512个字节的信息,在编程时只需要对512*8=4096个存储单元编程。
2.有8*P个灵敏放大器,其中P为整数,(P=1、2、……),在校验时使用这些灵敏放大器来识别一个存储单元里的数据是0还是1。因此灵敏放大器的数目决定了校验时所能划分的最大校验子区块。8*P是用于校验的灵敏放大器的数目。如果P=16,则灵敏放大器有8*16=128个;P的数目是在对快闪存储器进行硬件设计时已确定了的,不能再增加。即对一个批次的快闪存储器而言,P为固定值。因为版图面积不能太大,灵敏放大器的数目8*P不能和位线的数目相等,所以多个位线可以共用一个灵敏放大器。如果快闪存储器除了包括存储阵列,还包括冗余阵列(如图2所示),还会增加若干个灵敏放大器,给冗余阵列中的冗余单元使用。
3.有一套电源系统,为所有的字线和所有的位线提供所需电压。电源系统提供的电压至少包括:编程漏极电压、编程字线电压和校验字线电压等。其中,编程漏极电压,一般称作编程drain电压,是编程时被施加在位线上的电压;编程字线电压较高,校验字线电压较低。如果反复“校验->编程->校验”,则字线有不断充放电的过程,会减慢完成所有编程操作的速度。
图3为现有的快闪存储器的页编程方法的示意流程图。
从过程上来看:在现有技术的芯片使用过程中,快闪存储器的页编程的简易流程举例如下:
先将稍后用于编程的一个页的01序列编程信息加载(load)到快闪存储器;根据灵敏放大器的能力确定子区块的大小,并对各个子区块进行排序,再以子区块为单位遍历整个页地址,分别依序对各个子区块进行“校验->编程->校验”;
其中,遍历页地址是指从第一个地址到最后一个地址,遍历所有页地址;
其中,每个子区块包括的存储单元的数目,是一个固定的值,从而每次子区块校验的比特数也是固定的;
对每个子区块进行编程操作之前,都需要进行校验。如果该子区块没有通过校验、就需要对该子区块重新继续进行编程操作,直到该子区块通过编程校验为止。此时才认为完成了完成这个子区块的编程操作。
对每个子区块进行编程及校验的流程图参见图2。如图2所示,由于,快闪存储器的页编程操作是区块编程,每次页编程完成后都需要子区块内所有存储单元都编程成功。所以,完成一轮完整的这个子区块编程操作过程可能包括多次区块编程和区块校验操作。
现有的快闪存储器的页编程方法,有以下几个缺陷:
1.由于工艺偏差,疲劳老化等原因,有一些难以被编程的存储单元,需要重复多次编程才能使其符合要求。由于这些难以被编程的存储单元的存在,使得现有页编程方法在子区块内绝大部分存储单元已经编程成功的情况下,还需要对该子区块进行多次编程操作和多次校验,才能使这些难以编程的存储单元也被编程成功。可能陷入“校验不通过—>页编程—>校验不通过”的反复循环。因此,对该子区块完成编程操作过程所用的时间被大大延长了,从而快闪存储器的页编程速度被影响了。
2.现有页编程方法需要对每个子区块进行很多次的“校验—>编程—>校验”循环,这会浪费很多校验时间。
这是因为编程字线电压较高,校验字线电压较低,所以每一次循环中的“校验->编程->校验”,都会使得字线电压从较低的校验字线电压先升高到较高的编程字线电压、再降低到较低的校验字线电压,因此字线有不断充放电的过程,这会减慢完成所有编程操作的速度,消耗掉很多时间。
3.现有页编程方法一次区块编程的比特数是固定的,即需要很多次编程才能完成对整个页的编程。此设计不够灵活,可能会浪费很多时间。
4.现有页编程方法需要对各个子区块进行“校验->编程->校验”,遍历整个页地址,在不需要对整个页进行编程的情况下,会浪费很多校验时间。
因此,如何设计一种提高快闪存储器的页编程速度的方法,其避免对同一子区块反复进行子区块校验操作和子区块编程操作、灵活地设定子区块的大小、可不遍历整个页地址、减轻难以被编程的存储单元对快闪存储器页编程速度的影响,从而提高快闪存储器的页编程速度,以满足某些系统的特殊要求,例如如果硬盘突然掉电、需要快速存储数据,则尽快在掉电之前完成页编程,即为本案发明人所欲解决的方向所在。
发明内容
本发明的目的是:提供一种提高快闪存储器的页编程速度的方法,其避免对同一子区块反复进行“校验—>编程—>校验”操作、灵活地设定子区块的大小、可不遍历整个页地址、减轻难以被编程的存储单元对快闪存储器页编程速度的影响,从而提高快闪存储器的页编程速度,以满足某些系统的特殊要求,例如如果硬盘突然掉电、需要快速存储数据,则尽快在掉电之前完成页编程。
为了达到上述目的,本发明公开如下技术方案:
本发明公开一种快闪存储器的页编程方法,其中,包括以下步骤:
步骤S41,将稍后要用于编程的一个页的01序列编程信息加载到快闪存储器后,转入步骤S42;
步骤S42,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历整个页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,转入步骤S43;
步骤S43,进行第一圈编程:即根据漏极泵的能力设定一个编程子区块的大小为8*M个存储单元,并对各编程子区块进行排序,以编程子区块为单位遍历整个页地址,分别依序对各个编程子区块进行编程;之后转入步骤S44;
其中,设定每8*M个比特一组,对8*M个存储单元进行编程(M=1、2、......),每个编程子区块包括8*M个存储单元,漏极泵能带动的电流大小为B,每个存储单元的电流大小是C,则8*M<=B/C,其中M为整数,(M=1、2、……),根据实验数据找到最优的M值,使尽量多数的存储单元一次编程成功;
每次编程后存储单元的情况自动更新到快闪存储器对应本存储单元的地址的数据处;
步骤S44,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历整个页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,转入步骤S45;
步骤S45,进行第二圈编程:即根据漏极泵的能力设定一个编程子区块的大小为8*N个存储单元,并对各编程子区块进行排序,以编程子区块为单位遍历整个页地址,分别依序对各个编程子区块进行编程;之后转入步骤S46;
其中,设定每8*N个比特一组,对8*N个存储单元进行编程,其中N为整数(N=1、2、……),每个编程子区块包括8*N个存储单元,N>M;根据实验数据找到最优的N值,以便使第一圈编程后未编程成功的存储单元中的尽量多数存储单元一次编程成功;
每次编程后存储单元的情况自动更新到快闪存储器对应本存储单元的地址的数据处;
步骤S46,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历整个页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,转入步骤S47;
步骤S47,进行第三圈编程:即重复一次第二圈编程——根据漏极泵的能力设定一个编程子区块的大小为8*N个存储单元,并对各编程子区块进行排序,以编程子区块为单位遍历整个页地址,分别依序对各个编程子区块进行编程;之后转入步骤S48;
每次编程后存储单元的情况自动更新到快闪存储器对应本存储单元的地址的数据处;
步骤S48,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历整个页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,也结束。
所述的快闪存储器的页编程方法,其中,在步骤43中所述的根据实验数据找到最优的条件,使绝大多数的存储单元一次编程成功的方法是,在使用一个批次的快闪存储器之前,选一些样品进行实验,以设定该批次的快闪存储器的M值,其包括以下步骤:
在M=1的情况下,以8*M为编程子区块大小遍历整个页地址进行编程;随后以8*P为校验子区块大小遍历整个页地址进行校验;记录校验结果;
在M=2的情况下,以8*M为编程子区块大小遍历整个页地址进行编程;随后以8*P为校验子区块大小遍历整个页地址进行校验;记录校验结果;
……
在M是符合8*M<=B/C条件的最大的整数的情况下,以8*M为编程子区块大小遍历整个页地址进行编程;随后以8*P为校验子区块大小遍历整个页地址进行校验;记录校验结果;
对上面多次实验后得到的实验数据进行统计分析,统计分析的方法是看哪一次实验的校验结果的校验通过率是最大的,就选择哪一个M值作为该批次的快闪存储器的M值。
所述的快闪存储器的页编程方法,其中,在步骤45中所述的根据实验数据找到最优的N值,以便使第一圈编程后未编程成功的存储单元中的尽量多数存储单元一次编程成功的方法是,在使用一个批次的快闪存储器之前,对其进行抽样实验,以设定该批次的快闪存储器的N值,其包括以下步骤:
在N=M+1的情况下,以8*N为编程子区块大小遍历整个页地址进行编程;随后以8*P为校验子区块大小遍历整个页地址进行校验;记录校验结果;
在N=M+2的情况下,以8*N为编程子区块大小遍历整个页地址进行编程;随后以8*P为校验子区块大小遍历整个页地址进行校验;记录校验结果;
……
在N<=P的情况下,以8*N为编程子区块大小遍历整个页地址进行编程;随后以8*P为校验子区块大小遍历整个页地址进行校验;记录校验结果;
对上面多次实验后得到的实验数据进行统计分析,统计分析的方法是看哪一次实验的校验结果的校验通过率是最大的,就选择哪一个N值作为该批次的快闪存储器的N值。
本发明还公开一种快闪存储器的页编程方法,其中,包括以下步骤:
步骤S51,将稍后要用于编程的部分页的01序列编程信息加载到快闪存储器后,转入步骤S52;
步骤S52,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历部分页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,转入步骤S53;
步骤S53,进行第一圈编程:即根据漏极泵的能力设定一个编程子区块的大小为8*M个存储单元,并对各编程子区块进行排序,以编程子区块为单位遍历部分页地址,分别依序对各个编程子区块进行编程;之后转入步骤S54;
其中,设定每8*M个比特一组,对8*M个存储单元进行编程(M=1、2、......),每个编程子区块包括8*M个存储单元,漏极泵能带动的电流大小为B,每个存储单元的电流大小是C,则8*M<=B/C,其中M为整数,(M=1、2、……);根据实验数据找到最优的M值,使尽量多数的存储单元一次编程成功;
每次编程后存储单元的情况自动更新到快闪存储器对应本存储单元的地址的数据处;
步骤S54,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历部分页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,转入步骤S55;
步骤S55,进行第二圈编程:即根据漏极泵的能力设定一个编程子区块的大小为8*N个存储单元,并对各编程子区块进行排序,以编程子区块为单位遍历部分页地址,分别依序对各个编程子区块进行编程;之后转入步骤S56;
其中,设定每8*N个比特一组,对8*N个存储单元进行编程,其中N为整数(N=1、2、……),每个编程子区块包括8*N个存储单元,N>M,根据实验数据找到最优的N值,以便使第一圈编程后未编程成功的存储单元中的尽量多数存储单元一次编程成功;
每次编程后存储单元的情况自动更新到快闪存储器对应本存储单元的地址的数据处;
步骤S56,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历部分页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,转入步骤S57;
步骤S57,进行第三圈编程:即重复一次第二圈编程——根据漏极泵的能力设定一个编程子区块的大小为8*N个存储单元,并对各编程子区块进行排序,以编程子区块为单位遍历部分页地址,分别依序对各个编程子区块进行编程;之后转入步骤S58;
每次编程后存储单元的情况自动更新到快闪存储器对应本存储单元的地址的数据处;
步骤S58,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历部分页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,也结束。
所述的快闪存储器的页编程方法,其中,需要设置部分页编程标志位;部分页编程标志位的设置方法是至少设置部分页的长度,部分页的头地址,部分页的尾地址这三个数据的两个。
所述的快闪存储器的页编程方法,其中,在步骤53中所述的根据实验数据找到最优的条件,使绝大多数的存储单元一次编程成功的方法是,在使用一个批次的快闪存储器之前,选一些样品进行实验,以设定该批次的快闪存储器的M值,其包括以下步骤:
在M=1的情况下,以8*M为编程子区块大小遍历部分页地址进行编程;随后以8*P为校验子区块大小遍历部分页地址进行校验;记录校验结果;
在M=2的情况下,以8*M为编程子区块大小遍历部分页地址进行编程;随后以8*P为校验子区块大小遍历部分页地址进行校验;记录校验结果;
……
在M是符合8*M<=B/C条件的最大的整数的情况下,以8*M为编程子区块大小遍历部分页地址进行编程;随后以8*P为校验子区块大小遍历部分页地址进行校验;记录校验结果;
对上面多次实验后得到的实验数据进行统计分析,统计分析的方法是看哪一次实验的校验结果的校验通过率是最大的,就选择哪一个M值作为该批次的快闪存储器的M值。
所述的快闪存储器的页编程方法,其中,在步骤55中所述的根据实验数据找到最优的N值,以便使第一圈编程后未编程成功的存储单元中的尽量多数存储单元一次编程成功的方法是,在使用一个批次的快闪存储器之前,对其进行抽样实验,以设定该批次的快闪存储器的N值,其包括以下步骤:
在N=M+1的情况下,以8*N为编程子区块大小遍历部分页地址进行编程;随后以8*P为校验子区块大小遍历部分页地址进行校验;记录校验结果;
在N=M+2的情况下,以8*N为编程子区块大小遍历部分页地址进行编程;随后以8*P为校验子区块大小遍历部分页地址进行校验;记录校验结果;
……
在N<=P的情况下,以8*N为编程子区块大小遍历部分页地址进行编程;随后以8*P为校验子区块大小遍历部分页地址进行校验;记录校验结果;
对上面多次实验后得到的实验数据进行统计分析,统计分析的方法是看哪一次实验的校验结果的校验通过率是最大的,就选择哪一个N值作为该批次的快闪存储器的N值。
本发明的技术效果是:提供了提供一种提高快闪存储器的页编程速度的方法,其避免对同一子区块反复进行“校验->编程->校验”操作、灵活地设定子区块的大小、可不遍历整个页地址、减轻难以被编程的存储单元对快闪存储器页编程速度的影响,从而提高快闪存储器的页编程速度,以满足某些系统的特殊要求,例如如果硬盘突然掉电、需要快速存储数据,则尽快在掉电之前完成页编程。
附图说明
图1为快闪存储器的存储阵列示意图;
图2为快闪存储器除了包括存储阵列,还包括冗余阵列的情况的示意图;
图3为现有的快闪存储器的页编程方法的示意流程图;
图4为本发明的快闪存储器的页编程方法的第一实施例的示意图;
图5为本发明的快闪存储器的页编程方法的第二实施例的示意图。
具体实施方式
以下结合附图,对本发明上述的和另外的技术特征和优点作更详细的说明。
如图4所示,本发明的快闪存储器的页编程方法的第一实施例,其包括以下步骤:
步骤S41,将稍后要用于编程的一个页的01序列编程信息加载到快闪存储器后,转入步骤S42;
在步骤S41中,如果一页是256个字节(也可以为512个字节),则将256*8=2048长度的01序列编程信息加载到快闪存储器;如果一页是512个字节,则将512*8=4096长度的01序列编程信息加载到快闪存储器。
步骤S42,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历整个页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目,是一个固定的值,从而每个校验子区块的存储单元数目8*P也是固定的;每个地址对应8个比特,一次校验8*P个存储单元;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,转入步骤S43;
步骤S43,进行第一圈编程:即根据漏极泵的能力设定一个编程子区块的大小为8*M个存储单元,并对各编程子区块进行排序,以编程子区块为单位遍历整个页地址,分别依序对各个编程子区块进行编程;之后转入步骤S44;
其中,设定每8*M个比特一组,对8*M个存储单元进行编程(M=1、2、......),每个编程子区块包括8*M个存储单元,漏极泵能带动的电流大小为B,每个存储单元的电流大小是C,则8*M<=B/C,其中M为整数,(M=1、2、……),其中M不是一个固定的值,M的数目是可以在本发明中设定的,从而一个编程子区块的存储单元数目8*M也不是固定的;根据实验数据找到最优的M值,使尽量多数、例如80%、90%的存储单元一次编程成功;
其中,漏极泵的能力是指:如果漏极泵在A=4V的时候能带动B=4mA上下的电流,而每个存储单元的电流是C=200μA,则8*M<=B/C=20;
如果每个存储单元的电流是C=200uA。一次要编程两个字节,则,漏极泵要带动B=3.2mA上下的电流;
每次编程后存储单元的情况自动更新到快闪存储器对应本存储单元的地址的数据处。
上述的根据实验数据找到最优的条件,使绝大多数的存储单元一次编程成功的方法是,在使用一个批次的快闪存储器之前,选一些样品进行实验,以设定该批次的快闪存储器的M值,其包括以下步骤:
首先,
在M=1的情况下,以8*M为编程子区块大小遍历整个页地址进行编程;随后以8*P为校验子区块大小遍历整个页地址进行校验;记录校验结果;
其次,
在M=2的情况下,以8*M为编程子区块大小遍历整个页地址进行编程;随后以8*P为校验子区块大小遍历整个页地址进行校验;记录校验结果;
……
最后,
在M是符合8*M<=B/C条件的最大的整数的情况下,以8*M为编程子区块大小遍历整个页地址进行编程;随后以8*P为校验子区块大小遍历整个页地址进行校验;记录校验结果;
然后,对上面多次实验后得到的实验数据进行统计分析,统计分析的方法是看哪一次实验的校验结果的校验通过率是最大的,就选择哪一个M值作为该批次的快闪存储器的M值。
步骤S44,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历整个页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目,是一个固定的值,从而每个校验子区块的存储单元数目8*P也是固定的;每个地址对应8个比特,一次校验8*P个存储单元;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,转入步骤S45;
步骤S45,进行第二圈编程:即根据漏极泵的能力设定一个编程子区块的大小为8*N个存储单元,并对各编程子区块进行排序,以编程子区块为单位遍历整个页地址,分别依序对各个编程子区块进行编程;之后转入步骤S46;
其中,设定每8*N个比特一组,对8*N个存储单元进行编程,其中N为整数(N=1、2、……),每个编程子区块包括8*N个存储单元,N>M,其中N不是一个固定的值,N的数目是可以在本发明中设定的,从而一个编程子区块的存储单元数目8*N也不是固定的;根据实验数据找到最优的N值,以便使第一圈编程后未编程成功的存储单元中的尽量多数存储单元一次编程成功;
每次编程后存储单元的情况自动更新到快闪存储器对应本存储单元的地址的数据处。
在M值已经被选定的情况下,因为N>M,所以上述的根据实验数据找到最优的N值,以便使第一圈编程后未编程成功的存储单元中的尽量多数存储单元一次编程成功的方法是,在使用一个批次的快闪存储器之前,对其进行抽样实验,以设定该批次的快闪存储器的N值,其包括以下步骤:
首先,
在N=M+1的情况下,以8*N为编程子区块大小遍历整个页地址进行编程;随后以8*P为校验子区块大小遍历整个页地址进行校验;记录校验结果;
其次,
在N=M+2的情况下,以8*N为编程子区块大小遍历整个页地址进行编程;随后以8*P为校验子区块大小遍历整个页地址进行校验;记录校验结果;
……
最后,
在N<=P的情况下,以8*N为编程子区块大小遍历整个页地址进行编程;随后以8*P为校验子区块大小遍历整个页地址进行校验;记录校验结果;
然后,对上面多次实验后得到的实验数据进行统计分析,统计分析的方法是看哪一次实验的校验结果的校验通过率是最大的,就选择哪一个N值作为该批次的快闪存储器的N值。
步骤S46,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历整个页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目,是一个固定的值,从而每个校验子区块的存储单元数目8*P也是固定的;每个地址对应8个比特,一次校验8*P个存储单元;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,转入步骤S47;
步骤S47,进行第三圈编程:即重复一次第二圈编程——根据漏极泵的能力设定一个编程子区块的大小为8*N个存储单元,并对各编程子区块进行排序,以编程子区块为单位遍历整个页地址,分别依序对各个编程子区块进行编程;之后转入步骤S48;
每次编程后存储单元的情况自动更新到快闪存储器对应本存储单元的地址的数据处;
步骤S48,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历整个页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,也结束。
如果万一经过步骤S47第三圈编程后还没有全部编程成功,如果掉电时间可以延长,则可以再做一次校验、然后再继续重复编程,直到全部编程成功为止;
但如果万一经过步骤S47第三圈编程后还没有全部编程成功,在掉电时间有限的前提下,则不能再继续重复编程,只能强制结束;
根据目前的实验结果来看一般编程一两圈就可以编程成功,有部分实验则需要编程三圈。
如图4所示的第一实施例是针对整个页地址的编程。
如图5所示,本发明的快闪存储器的页编程方法的第二实施例,在第二实施例中,如果是部分页编程,可以设置部分(partial)页编程标志位,使每一圈(loop)编程的地址循环不必遍历整个页节省时间。
例如,如果一页是256字节,如果只对4字节编程,可以在这4字节的头或尾设置部分页编程标志位。这一对部分页编程标志位的设置,是对总控制电路中的状态机设置完成的;
其中,因为一个order包括address头地址和data;所以address头地址+data=address尾地址;从而至少设置部分页的长度,部分页的头地址,部分页的尾地址这三个数据的两个即可。
如图5所示的部分页编程的第二实施例与如图4所示的整个页编程的第一实施例,主要的差别有两个:一是在于是加载部分页的数据,而不是加载整个页的数据;二是在于针对部分页而不是整个页进行编程和校验,节省了时间。
如图5所示,本发明的快闪存储器的页编程方法的第二实施例,其包括以下步骤:
步骤S51,将稍后要用于编程的部分页的01序列编程信息加载到快闪存储器后,转入步骤S52;
步骤S52,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历部分页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目,是一个固定的值,从而每个校验子区块的存储单元数目8*P也是固定的;每个地址对应8个比特,一次校验8*P个存储单元;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,转入步骤S53;
步骤S53,进行第一圈编程:即根据漏极泵的能力设定一个编程子区块的大小为8*M个存储单元,并对各编程子区块进行排序,以编程子区块为单位遍历部分页地址,分别依序对各个编程子区块进行编程;之后转入步骤S54;
其中,设定每8*M个比特一组,对8*M个存储单元进行编程(M=1、2、......),每个编程子区块包括8*M个存储单元,漏极泵能带动的电流大小为B,每个存储单元的电流大小是C,则8*M<=B/C,其中M为整数,(M=1、2、……),其中M不是一个固定的值,M的数目是可以在本发明中设定的,从而一个编程子区块的存储单元数目8*M也不是固定的;根据实验数据找到最优的M值,使尽量多数、例如80%、90%的存储单元一次编程成功;
其中,漏极泵的能力是指:如果漏极泵在A=4V的时候能带动B=4mA上下的电流,而每个存储单元的电流是C=200μA,则8*M<=B/C=20;
如果每个存储单元的电流是C=200uA。一次要编程两个字节,则,漏极泵要带动B=3.2mA上下的电流;
每次编程后存储单元的情况自动更新到快闪存储器对应本存储单元的地址的数据处。
上述的根据实验数据找到最优的条件,使绝大多数的存储单元一次编程成功的方法是,在使用一个批次的快闪存储器之前,选一些样品进行实验,以设定该批次的快闪存储器的M值,其包括以下步骤:
首先,
在M=1的情况下,以8*M为编程子区块大小遍历部分页地址进行编程;随后以8*P为校验子区块大小遍历部分页地址进行校验;记录校验结果;
其次,
在M=2的情况下,以8*M为编程子区块大小遍历部分页地址进行编程;随后以8*P为校验子区块大小遍历部分页地址进行校验;记录校验结果;
……
最后,
在M是符合8*M<=B/C条件的最大的整数的情况下,以8*M为编程子区块大小遍历部分页地址进行编程;随后以8*P为校验子区块大小遍历部分页地址进行校验;记录校验结果;
然后,对上面多次实验后得到的实验数据进行统计分析,统计分析的方法是看哪一次实验的校验结果的校验通过率是最大的,就选择哪一个M值作为该批次的快闪存储器的M值。
步骤S54,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历部分页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目,是一个固定的值,从而每个校验子区块的存储单元数目8*P也是固定的;每个地址对应8个比特,一次校验8*P个存储单元;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,转入步骤S55;
步骤S55,进行第二圈编程:即根据漏极泵的能力设定一个编程子区块的大小为8*N个存储单元,并对各编程子区块进行排序,以编程子区块为单位遍历部分页地址,分别依序对各个编程子区块进行编程;之后转入步骤S56;
其中,设定每8*N个比特一组,对8*N个存储单元进行编程,其中N为整数(N=1、2、……),每个编程子区块包括8*N个存储单元,N>M,其中N不是一个固定的值,N的数目是可以在本发明中设定的,从而一个编程子区块的存储单元数目8*N也不是固定的;根据实验数据找到最优的N值,以便使第一圈编程后未编程成功的存储单元中的尽量多数存储单元一次编程成功;
每次编程后存储单元的情况自动更新到快闪存储器对应本存储单元的地址的数据处。
在M值已经被选定的情况下,因为N>M,所以上述的根据实验数据找到最优的N值,以便使第一圈编程后未编程成功的存储单元中的尽量多数存储单元一次编程成功的方法是,在使用一个批次的快闪存储器之前,对其进行抽样实验,以设定该批次的快闪存储器的N值,其包括以下步骤:
首先,
在N=M+1的情况下,以8*N为编程子区块大小遍历部分页地址进行编程;随后以8*P为校验子区块大小遍历部分页地址进行校验;记录校验结果;
其次,
在N=M+2的情况下,以8*N为编程子区块大小遍历部分页地址进行编程;随后以8*P为校验子区块大小遍历部分页地址进行校验;记录校验结果;
……
最后,
在N<=P的情况下,以8*N为编程子区块大小遍历部分页地址进行编程;随后以8*P为校验子区块大小遍历部分页地址进行校验;记录校验结果;
然后,对上面多次实验后得到的实验数据进行统计分析,统计分析的方法是看哪一次实验的校验结果的校验通过率是最大的,就选择哪一个N值作为该批次的快闪存储器的N值。
步骤S56,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历部分页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目,是一个固定的值,从而每个校验子区块的存储单元数目8*P也是固定的;每个地址对应8个比特,一次校验8*P个存储单元;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,转入步骤S57;
步骤S57,进行第三圈编程:即重复一次第二圈编程——根据漏极泵的能力设定一个编程子区块的大小为8*N个存储单元,并对各编程子区块进行排序,以编程子区块为单位遍历部分页地址,分别依序对各个编程子区块进行编程;之后转入步骤S58;
每次编程后存储单元的情况自动更新到快闪存储器对应本存储单元的地址的数据处;
步骤S58,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历部分页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,也结束。
如果万一经过步骤S57第三圈编程后还没有全部编程成功,如果掉电时间可以延长,则可以再做一次校验、然后再继续重复编程,直到全部编程成功为止;
但如果万一经过步骤S57第三圈编程后还没有全部编程成功,在掉电时间有限的前提下,则不能再继续重复编程,只能强制结束;
根据目前的实验结果来看一般编程一两圈就可以编程成功,有部分实验则需要编程三圈。
总之本发明的有益效果是:
在版图面积一定的情况下,这种方法通过减少字线充放电的次数,大大加快页编程速度;
在版图面积一定的情况下,这种方法通过优化每次编程的比特数,减少编程次数,大大加快页编程速度;
在版图面积一定的情况下,这种方法通过设置部分页编程标志位,中断后续不必要的校验操作,大大加快页编程速度。
以上说明对本发明而言只是说明性的,而非限制性的,本领域普通技术人员理解,在不脱离以下所附权利要求所限定的精神和范围的情况下,可做出许多修改,变化,或等效,但都将落入本发明的保护范围内。
Claims (7)
1.一种快闪存储器的页编程方法,其特征在于,包括以下步骤:
步骤S41,将稍后要用于编程的一个页的01序列编程信息加载到快闪存储器后,转入步骤S42;
步骤S42,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历整个页的地址,分别依序对各个校验子区块进行校验;其中,P为整数(P=1、2、……);8*P是用于校验的灵敏放大器的数目;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,转入步骤S43;
步骤S43,进行第一圈编程:即根据漏极泵的能力设定一个编程子区块的大小为8*M个存储单元,并对各编程子区块进行排序,以编程子区块为单位遍历整个页地址,分别依序对各个编程子区块进行编程;之后转入步骤S44;
其中,设定每8*M个比特一组,对8*M个存储单元进行编程(M=1、2、……),每个编程子区块包括8*M个存储单元,漏极泵能带动的电流大小为B,每个存储单元的电流大小是C,则8*M<=B/C,其中M为整数(M=1、2、……),根据实验数据找到最优的M值,使尽量多数的存储单元一次编程成功;
每次编程后存储单元的情况自动更新到快闪存储器对应本存储单元的地址的数据处;
步骤S44,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历整个页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,转入步骤S45;
步骤S45,进行第二圈编程:即根据漏极泵的能力设定一个编程子区块的大小为8*N个存储单元,并对各编程子区块进行排序,以编程子区块为单位遍历整个页地址,分别依序对各个编程子区块进行编程;之后转入步骤S46;
其中,设定每8*N个比特一组,对8*N个存储单元进行编程,其中N为整数(N=1、2、……),每个编程子区块包括8*N个存储单元,N>M;根据实验数据找到最优的N值,以便使第一圈编程后未编程成功的存储单元中的尽量多数存储单元一次编程成功;
每次编程后存储单元的情况自动更新到快闪存储器对应本存储单元的地址的数据处;
步骤S46,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历整个页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,转入步骤S47;
步骤S47,进行第三圈编程:即重复一次第二圈编程——根据漏极泵的能力设定一个编程子区块的大小为8*N个存储单元,并对各编程子区块进行排序,以编程子区块为单位遍历整个页地址,分别依序对各个编程子区块进行编程;之后转入步骤S48;
每次编程后存储单元的情况自动更新到快闪存储器对应本存储单元的地址的数据处;
步骤S48,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历整个页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,也结束。
2.如权利要求1所述的快闪存储器的页编程方法,其特征在于,在步骤43中所述的根据实验数据找到最优的条件,使绝大多数的存储单元一次编程成功的方法是,在使用一个批次的快闪存储器之前,选一些样品进行实验,以设定该批次的快闪存储器的M值,其包括以下步骤:
在M=1的情况下,以8*M为编程子区块大小遍历整个页地址进行编程;随后以8*P为校验子区块大小遍历整个页地址进行校验;记录校验结果;
在M=2的情况下,以8*M为编程子区块大小遍历整个页地址进行编程;随后以8*P为校验子区块大小遍历整个页地址进行校验;记录校验结果;
……
在M是符合8*M<=B/C条件的最大的整数的情况下,以8*M为编程子区块大小遍历整个页地址进行编程;随后以8*P为校验子区块大小遍历整个页地址进行校验;记录校验结果;
对上面多次实验后得到的实验数据进行统计分析,统计分析的方法是看哪一次实验的校验结果的校验通过率是最大的,就选择哪一个M值作为该批次的快闪存储器的M值。
3.如权利要求1所述的快闪存储器的页编程方法,其特征在于,在步骤45中所述的根据实验数据找到最优的N值,以便使第一圈编程后未编程成功的存储单元中的尽量多数存储单元一次编程成功的方法是,在使用一个批次的快闪存储器之前,对其进行抽样实验,以设定该批次的快闪存储器的N值,其包括以下步骤:
在N=M+1的情况下,以8*N为编程子区块大小遍历整个页地址进行编程;随后以8*P为校验子区块大小遍历整个页地址进行校验;记录校验结果;
在N=M+2的情况下,以8*N为编程子区块大小遍历整个页地址进行编程;随后以8*P为校验子区块大小遍历整个页地址进行校验;记录校验结果;
……
在N<=P的情况下,以8*N为编程子区块大小遍历整个页地址进行编程;随后以8*P为校验子区块大小遍历整个页地址进行校验;记录校验结果;
对上面多次实验后得到的实验数据进行统计分析,统计分析的方法是看哪一次实验的校验结果的校验通过率是最大的,就选择哪一个N值作为该批次的快闪存储器的N值。
4.一种快闪存储器的页编程方法,其特征在于,包括以下步骤:
步骤S51,将稍后要用于编程的部分页的01序列编程信息加载到快闪存储器后,转入步骤S52;其中,所述的部分页是指某一个页中的部分字节;
步骤S52,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历部分页的地址,分别依序对各个校验子区块进行校验;其中,P为整数(P=1、2、……);8*P是用于校验的灵敏放大器的数目;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,转入步骤S53;
步骤S53,进行第一圈编程:即根据漏极泵的能力设定一个编程子区块的大小为8*M个存储单元,并对各编程子区块进行排序,以编程子区块为单位遍历部分页地址,分别依序对各个编程子区块进行编程;之后转入步骤S54;
其中,设定每8*M个比特一组,对8*M个存储单元进行编程(M=1、2、……),每个编程子区块包括8*M个存储单元,漏极泵能带动的电流大小为B,每个存储单元的电流大小是C,则8*M<=B/C,其中M为整数(M=1、2、……);根据实验数据找到最优的M值,使尽量多数的存储单元一次编程成功;
每次编程后存储单元的情况自动更新到快闪存储器对应本存储单元的地址的数据处;
步骤S54,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历部分页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,转入步骤S55;
步骤S55,进行第二圈编程:即根据漏极泵的能力设定一个编程子区块的大小为8*N个存储单元,并对各编程子区块进行排序,以编程子区块为单位遍历部分页地址,分别依序对各个编程子区块进行编程;之后转入步骤S56;
其中,设定每8*N个比特一组,对8*N个存储单元进行编程,其中N为整数(N=1、2、……),每个编程子区块包括8*N个存储单元,N>M,根据实验数据找到最优的N值,以便使第一圈编程后未编程成功的存储单元中的尽量多数存储单元一次编程成功;
每次编程后存储单元的情况自动更新到快闪存储器对应本存储单元的地址的数据处;
步骤S56,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历部分页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,转入步骤S57;
步骤S57,进行第三圈编程:即重复一次第二圈编程——根据漏极泵的能力设定一个编程子区块的大小为8*N个存储单元,并对各编程子区块进行排序,以编程子区块为单位遍历部分页地址,分别依序对各个编程子区块进行编程;之后转入步骤S58;
每次编程后存储单元的情况自动更新到快闪存储器对应本存储单元的地址的数据处;
步骤S58,根据灵敏放大器的能力,设定一个校验子区块的大小为8*P个存储单元,并对各校验子区块进行排序,以校验子区块为单位遍历部分页的地址,分别依序对各个校验子区块进行校验;其中,8*P是用于校验的灵敏放大器的数目;每校验一次,快闪存储器更新数据,进行数据交互——将快闪存储器中的01序列编程信息与各个存储单元的校验情况相结合以产生新的01序列编程信息;之后判断校验是否全部通过——如果校验全部通过,则结束;如果校验没有全部通过,也结束。
5.如权利要求4所述的快闪存储器的页编程方法,其特征在于,需要设置部分页编程标志位;部分页编程标志位的设置方法是至少设置部分页的长度,部分页的头地址,部分页的尾地址这三个数据的两个。
6.如权利要求4所述的快闪存储器的页编程方法,其特征在于,在步骤53中所述的根据实验数据找到最优的条件,使绝大多数的存储单元一次编程成功的方法是,在使用一个批次的快闪存储器之前,选一些样品进行实验,以设定该批次的快闪存储器的M值,其包括以下步骤:
在M=1的情况下,以8*M为编程子区块大小遍历部分页地址进行编程;随后以8*P为校验子区块大小遍历部分页地址进行校验;记录校验结果;
在M=2的情况下,以8*M为编程子区块大小遍历部分页地址进行编程;随后以8*P为校验子区块大小遍历部分页地址进行校验;记录校验结果;
……
在M是符合8*M<=B/C条件的最大的整数的情况下,以8*M为编程子区块大小遍历部分页地址进行编程;随后以8*P为校验子区块大小遍历部分页地址进行校验;记录校验结果;
对上面多次实验后得到的实验数据进行统计分析,统计分析的方法是看哪一次实验的校验结果的校验通过率是最大的,就选择哪一个M值作为该批次的快闪存储器的M值。
7.如权利要求4所述的快闪存储器的页编程方法,其特征在于,在步骤55中所述的根据实验数据找到最优的N值,以便使第一圈编程后未编程成功的存储单元中的尽量多数存储单元一次编程成功的方法是,在使用一个批次的快闪存储器之前,对其进行抽样实验,以设定该批次的快闪存储器的N值,其包括以下步骤:
在N=M+1的情况下,以8*N为编程子区块大小遍历部分页地址进行编程;随后以8*P为校验子区块大小遍历部分页地址进行校验;记录校验结果;
在N=M+2的情况下,以8*N为编程子区块大小遍历部分页地址进行编程;随后以8*P为校验子区块大小遍历部分页地址进行校验;记录校验结果;
……
在N<=P的情况下,以8*N为编程子区块大小遍历部分页地址进行编程;随后以8*P为校验子区块大小遍历部分页地址进行校验;记录校验结果;
对上面多次实验后得到的实验数据进行统计分析,统计分析的方法是看哪一次实验的校验结果的校验通过率是最大的,就选择哪一个N值作为该批次的快闪存储器的N值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210158692.3A CN103426470B (zh) | 2012-05-21 | 2012-05-21 | 提高快闪存储器的页编程速度的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210158692.3A CN103426470B (zh) | 2012-05-21 | 2012-05-21 | 提高快闪存储器的页编程速度的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103426470A CN103426470A (zh) | 2013-12-04 |
CN103426470B true CN103426470B (zh) | 2016-04-20 |
Family
ID=49651088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210158692.3A Active CN103426470B (zh) | 2012-05-21 | 2012-05-21 | 提高快闪存储器的页编程速度的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103426470B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI556103B (zh) * | 2016-02-05 | 2016-11-01 | 新唐科技股份有限公司 | 記憶體裝置及其資料存取方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101430934A (zh) * | 2007-08-09 | 2009-05-13 | 三星电子株式会社 | 与非闪存设备及其编程方法 |
CN102246240A (zh) * | 2008-12-09 | 2011-11-16 | 拉姆伯斯公司 | 用于并发和流水线存储器操作的非易失性存储器器件 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100933859B1 (ko) * | 2007-11-29 | 2009-12-24 | 주식회사 하이닉스반도체 | 플래시 메모리 소자 및 그것의 프로그램 방법 |
US9773557B2 (en) * | 2008-09-03 | 2017-09-26 | Marvell World Trade Ltd. | Multi-plane data order |
-
2012
- 2012-05-21 CN CN201210158692.3A patent/CN103426470B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101430934A (zh) * | 2007-08-09 | 2009-05-13 | 三星电子株式会社 | 与非闪存设备及其编程方法 |
CN102246240A (zh) * | 2008-12-09 | 2011-11-16 | 拉姆伯斯公司 | 用于并发和流水线存储器操作的非易失性存储器器件 |
Also Published As
Publication number | Publication date |
---|---|
CN103426470A (zh) | 2013-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101617372B (zh) | 具有动态多模式操作的非易失性存储器 | |
US8750046B2 (en) | Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N | |
KR101134691B1 (ko) | 다중-레벨 비트 플래시 메모리 소거 알고리즘 | |
KR101772578B1 (ko) | 불휘발성 메모리 장치의 프로그램 방법 | |
CN101308703B (zh) | 非易失性存储器阵列字线重试擦除及阈值电压恢复的方法 | |
CN104094354A (zh) | 使用改进的第一遍编程的非易失性存储器及方法 | |
CN109062827A (zh) | 闪存控制装置、闪存控制系统以及闪存控制方法 | |
WO2003058637A1 (en) | Programming non-volatile memory devices | |
CN103247340A (zh) | 半导体存储装置、编程方法和数据处理系统 | |
CN103310839A (zh) | 缩短擦除操作的方法与装置 | |
US11967387B2 (en) | Detrapping electrons to prevent quick charge loss during program verify operations in a memory device | |
CN106856102B (zh) | 一种Nand Flash的编程方法 | |
US8542531B2 (en) | Charge equilibrium acceleration in a floating gate memory device via a reverse field pulse | |
JP2022508285A (ja) | メモリシステムをプログラミングするための方法。 | |
CN103426470B (zh) | 提高快闪存储器的页编程速度的方法 | |
CN103353855A (zh) | 一种nand闪存存储设备及其带外数据读取方法 | |
US7453734B2 (en) | Method and apparatus for fast programming of memory | |
CN103456354B (zh) | 一种非易失性存储器差分存储格的方法和装置 | |
CN115440283A (zh) | 顺序字线擦除验证方案 | |
CN101329914B (zh) | 半导体装置、存储器读取方法和存储器编程方法 | |
US11594292B2 (en) | Power loss immunity in memory programming operations | |
US11238950B1 (en) | Reliability health prediction by high-stress seasoning of memory devices | |
WO2022125830A1 (en) | Distributed compaction of logical states to reduce program time | |
CN111028879B (zh) | 一种可变编程次数的多次可编程存储器 | |
CN102543198B (zh) | 一种mlc存储单元的编程方法和装置 |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094 Patentee after: Zhaoyi Innovation Technology Group Co.,Ltd. Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing Patentee before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc. |