CN102929741A - 一种提高闪存芯片纠错码使用效率的方法、系统及控制器 - Google Patents
一种提高闪存芯片纠错码使用效率的方法、系统及控制器 Download PDFInfo
- Publication number
- CN102929741A CN102929741A CN2012103726425A CN201210372642A CN102929741A CN 102929741 A CN102929741 A CN 102929741A CN 2012103726425 A CN2012103726425 A CN 2012103726425A CN 201210372642 A CN201210372642 A CN 201210372642A CN 102929741 A CN102929741 A CN 102929741A
- Authority
- CN
- China
- Prior art keywords
- correcting code
- error correcting
- write
- dimension
- frame data
- 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.)
- Granted
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种提高闪存芯片纠错码使用效率的方法,包括:在用户写入数据时,首先对待写入数据的每一帧数据依次进行纠错码编码操作,以得到纠错码编码帧数据,然后在二维写缓存器模块中写进、暂存、读出纠错码编码帧数据,最后在对读出的纠错码编码帧数据指定了闪存芯片的存储页面后,将纠错码编码帧数据写入指定的存储页面;在用户读取数据时,首先在二维读缓存器模块中写进、暂存、读出从存储页面读取的数据帧,然后对读出的数据帧进行纠错码解码操作,以得到对应的原始用户数据。本发明同时公开了一种固态存储系统及其控制器。本方法、系统及其控制器提高纠错码使用效率时简单方便,实现成本小,且更能优化固态存储系统的可靠性和使用寿命。
Description
技术领域
本发明涉及存储器与计算机体系技术领域,更具体地涉及一种提高闪存芯片纠错码使用效率的方法和固态存储系统控制器。
背景技术
作为唯一主流的固态非挥发数据储存技术,闪存已经成为了全球半导体产业体系中发展最为迅速的一环。2010年市场研究报告显示,闪存产品的市场已突破200亿美元。基于闪存芯片的固态存储系统主要包含一个固态存储系统控制器芯片和一个以上闪存芯片。闪存芯片的基本信息存储单元是浮栅金属氧化物半导体晶体管 (Floating-Gate Transistor)。浮栅金属氧化物半导体晶体管的阈值电压可以通过注射一定数量的电子进入浮栅而改变。因此,通过对浮栅内电子数目的精确控制,每个信息存储单元,即浮栅金属氧化物半导体晶体管,可储存多个比特信息。精确控制浮栅内电子数目的过程通常被称为编程。在每一个信息存储单元可以被编程之前,其浮栅内的所有电子必须被移走,从而使得其阈值电压被置为最低,这个过程被称为擦除。闪存芯片内的信息存储单元阵列被划分为多个存储块,而每个存储块包含多个存储页面。每个存储块内的所有存储单元必须被同时擦除,但存储单元的编程和读取则以页面为存储单位。
由于闪存芯片生产过程中不可避免地存在制程变差(process variation),并且随着制造工艺的不断精细化,制程变差的程度会越来越严重,尤其是不同闪存芯片之间的制程变差。制程变差会使得不同存储页面具有不同的电子特性,以至于不同的存储页面会具有很大不同的噪音容限。在现有设计中,固态存储系统控制器在对每一帧用户数据进行单独的纠错码编码后,直接储存于一个存储页面内,所有数据存储均使用同一纠错码。由于不同存储页面具有不同的噪音容限,所使用的纠错码必须含有足够多的编码冗余、以实现足够强大的纠错能力从而能够容忍最差可能的存储页面噪音容限。所以,每一存储页面内必须相应包含足够多的冗余存储单元以储存编码冗余。显然,由于大多数的存储页面的噪音容限会远远好于最差可能的存储页面噪音容限,所使用的纠错码的纠错功能对于大多数的存储页面来说并没有完全发挥出来,导致了较低的纠错码使用效率,使得现行产品设计没有充分利用纠错码的纠错功能来优化系统的可靠性和使用寿命。
这样,提高闪存芯片的纠错码使用效率,优化固态存储系统的可靠性和使用寿命势在必行。
美国专利公开号US2008/0168319揭示了一种方法,其能提高闪存芯片纠错码的使用效率。具体地,该方法利用纠错码控制器来编码及解码快闪存储器的数据,纠错码控制器包括纠错码编码器和纠错码解码器,其中纠错码编码器包含第一编码器和第二编码器,纠错码解码器包含第一解码器、第二解码器和解码控制器。针对每一写入数据,第一编码器产生第一纠错码数据,而第二编码器也产生第二纠错码数据,其中第二纠错码数据的长度大于第一纠错码数据的长度,针对每一读取数据,第一解码器解码第一纠错码码字,若第一纠错码码字的错误超过第一解码器的纠正能力,第二解码器便解码第二纠错码码字。虽然该方法通过第一编码器和第二编码器产生不同的纠错码数据,能将数据经过不同的纠错码数据进行编码后分散式地存储于不同存储页面内,可缩小不同编码数据存储所面临的噪音容限之间的差别,纠错码的使用效率较高,然而,该方法需要包含两个编码器产生不同的纠错码数据和两个解码器产生不同的纠错码码字,致使方法实现成本偏高,应用受限。
另外,申请号为201110214690.7的中国专利申请公开了一种提高固态存储系统纠错码使用效率的方法。具体地,该方法首先当用户在写入数据时,纠错码编码器依次对待写入数据的每一帧数据进行纠错码编码操作,以得到纠错码编码帧数据,然后写缓存器写进、暂存、读出该纠错码编码帧数据,接着重新组合模块将读出的纠错码编码帧数据进行分割并重新组合以生成组合数据帧组,最后将组合数据帧组的每一个组合数据帧存入物理存储页面;当用户在读取数据时,首先读缓存器写进、暂存、读出从物理存储页面读取的的组合数据帧,然后反向重新组合模块对读出的组合数据帧进行针对所述分割并重新组合的逆操作以得到对应的纠错码编码帧数据,最后纠错码解码器对每一纠错码编码帧数据进行解码操作,以得到对应的数据。虽然该方法通过将每一帧数据经过纠错码编码后分散式地存储于不同存储页面内,能缩小不同编码数据帧存储所面临的噪音容限之间的差别,实现了纠错码的使用效率的提高,然而,用户在写入数据时,需要利用重新组合模块对从写缓存器中读出的纠错码编码帧数据进行分割并重新组合操作,且用户在读取数据时,需要利用反向重新组合模块对从读缓存器中读出的组合数据帧进行针对所述分割并重新组合的逆操作,因此该方法过于复杂,不易执行。同时,该方法没有对组合数据帧写入的存储页面进行指定,在将纠错码编码帧数据写入存储页面时,基本上是根据此数据本身的逻辑地址,在当前可用存储页面中较为任意地选择一个存储页面,因此没有充分利用不同存储页面可靠性存在较大差异的特点,无法最大程度地提高纠错码效率。
因此,有必要提供一种改进的提高闪存芯片纠错码使用效率的方法、系统及控制器来克服上述缺陷。
发明内容
本发明的目的是提供一种提高闪存芯片纠错码使用效率的方法、系统及控制器,提高纠错码使用效率时简单方便,容易执行,且实现成本小,并更能优化固态存储系统的可靠性和使用寿命。
为了达到上述目的,本发明提供了一种提高闪存芯片纠错码使用效率的方法,包括如下步骤:
对待写入数据的每一帧数据依次进行纠错码编码操作,以得到纠错码编码帧数据;
以第一固定方式将所述纠错码编码帧数据写入二维写缓存器模块,在所述二维写缓存器模块中暂存写入的纠错码编码帧数据,待所述纠错码编码帧数据达到预设帧数量时,以第二固定方式从所述二维写缓存器模块中读出所述纠错码编码帧数据,其中第一固定方式与第二固定方式不同;
根据不同存储页面之间不同的可靠性来指定从所述二维写缓存器模块中读出的纠错码编码帧数据写入的闪存芯片的存储页面;
将从所述二维写缓存器模块中读出的纠错码编码帧数据写入指定的存储页面;
以所述第二固定方式将从存储页面读取的数据帧写入二维读缓存器模块,在所述二维读缓存器模块中暂存写入的数据帧,待所述数据帧达到预设帧数量时,以所述第一固定方式从所述二维读缓存器模块中读出所述数据帧;
对从所述二维读缓存器模块中读出的数据帧进行纠错码解码操作,以得到对应的原始用户数据。
本发明还提供了一种固态存储系统控制器,包括纠错码编码器模块、二维写缓存器模块、存储页面指定模块、二维读缓存器模块以及纠错码解码器模块,
所述纠错码编码器模块,用于对待写入数据的每一帧数据依次进行纠错码编码操作以得到纠错码编码帧数据;
所述二维写缓存器模块,用于以第一固定方式写进所述纠错码编码器模块得到的纠错码编码帧数据,暂存写进的纠错码编码帧数据,待所述纠错码编码帧数据达到预设帧数量时,以第二固定方式读出所述纠错码编码帧数据,将读出的纠错码编码帧数据写入所述存储页面指定模块指定的存储页面,其中第一固定方式与第二固定方式不同;
所述存储页面指定模块,用于根据不同存储页面之间不同的可靠性来指定从所述二维写缓存器模块中读出的纠错码编码帧数据写入的闪存芯片的存储页面;
所述二维读缓存器模块,用于以所述第二固定方式写进从存储页面读取的数据帧,暂存写进的数据帧,待所述数据帧达到预设帧数量时,以所述第一固定方式读出所述数据帧;
所述纠错码解码器模块,用于对所述二维读缓存器模块读出的数据帧进行纠错码解码操作以得到对应的原始用户数据。
本发明还提供了一种固态存储系统,包括:
多个闪存芯片,每个闪存芯片包含多个存储页面;
固态存储系统控制器,用于将用户数据写入每个闪存芯片的存储页面,或者从每个闪存芯片的存储页面读出用户数据,
其特征在于,所述固态存储系统控制器包括纠错码编码器模块、二维写缓存器模块、存储页面指定模块、二维读缓存器模块以及纠错码解码器模块,
所述纠错码编码器模块,用于对待写入数据的每一帧数据依次进行纠错码编码操作以得到纠错码编码帧数据;
所述二维写缓存器模块,用于以第一固定方式写进所述纠错码编码器模块得到的纠错码编码帧数据,暂存写进的纠错码编码帧数据,待所述纠错码编码帧数据达到预设帧数量时,以第二固定方式读出所述纠错码编码帧数据,将读出的纠错码编码帧数据写入所述存储页面指定模块指定的存储页面,其中第一固定方式与第二固定方式不同;
所述存储页面指定模块,用于根据不同存储页面之间不同的可靠性来指定从所述二维写缓存器模块中读出的纠错码编码帧数据写入的闪存芯片的存储页面;
所述二维读缓存器模块,用于以所述第二固定方式写进从存储页面读取的数据帧,暂存写进的数据帧,待所述数据帧达到预设帧数量时,以所述第一固定方式读出所述数据帧;
所述纠错码解码器模块,用于对所述二维读缓存器模块读出的数据帧进行纠错码解码操作以得到对应的原始用户数据。
与现有技术相比,本发明提高闪存芯片纠错码使用效率的方法、固态存储系统控制器和固态存储系统,在用户写入数据时,首先对待写入数据的每一帧数据依次进行纠错码编码操作,以得到纠错码编码帧数据,然后在二维写缓存器模块中写进、暂存、读出所述纠错码编码帧数据,最后在对读出的纠错码编码帧数据指定了闪存芯片的存储页面后,将所述读出的纠错码编码帧数据写入指定的存储页面;在用户读取数据时,首先在二维读缓存器模块中写进、暂存、读出从存储页面读取的数据帧,然后对读出的数据帧进行纠错码解码操作,以得到对应的原始用户数据。这样,每一帧数据经过纠错码编码和存储页面指定后,分散式地存储于不同的存储页面内,因此,本方法能缩小不同编码数据帧存储所面临的噪音容限之间的差别,提高了纠错码的使用效率。
其次,本发明提高闪存芯片纠错码使用效率的方法、固态存储系统控制器和固态存储系统在实现提高闪存芯片纠错码使用效率时,只需要一个纠错码编码器模块和一个纠错码解码器模块,相比于现有技术方法实现需要两个编码器产生不同的纠错码数据和两个解码器产生不同的纠错码码字而言,实现成本相对较小。
另外,本发明提高闪存芯片纠错码使用效率的方法、固态存储系统控制器和固态存储系统在用户写入数据时无需对纠错码编码帧数据进行分割并重新组合操作,在用户在读取数据时,无需对数据帧进行针对分割并重新组合的逆操作,因此,本发明提高纠错码使用效率时简单方便,容易执行。
此外,本发明提高闪存芯片纠错码使用效率的方法、固态存储系统控制器和固态存储系统对读出的纠错码编码帧数据根据不同存储页面之间不同的可靠性进行了存储页面指定,这种指定页面的方式,最大程度地利用不同存储页面可靠性存在较大差异的特点,能最大程度地提高纠错码效率,从而对所有存储页面发挥纠错码的最强纠错功能,进而使得固态存储系统可利用此强大的数据纠错能力来提高整体系统可靠性以及延长使用寿命,因此更能优化固态存储系统的可靠性和使用寿命。
再者,本发明提高闪存芯片纠错码使用效率的方法、固态存储系统控制器和固态存储系统设有噪音容限估算模块,能实时检测闪存芯片所有存储页面的最差可能的噪音容限,进而获取不同存储页面稳定性之间的差别,以达到最佳的页面指定功能。
最后,本发明提高闪存芯片纠错码使用效率的方法、固态存储系统控制器和固态存储系统对存储页面根据最差可能的噪音容限进行了分组,并将纠错码编码帧数据写入不同组的存储页面,这样可最大程度地将所有由存储介质所引入的错误均匀地分布于不同纠错码内,可提高纠错码效率。
通过以下的描述并结合附图,本发明将变得更加清晰,这些附图用于解释本发明的实施例。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提高闪存芯片纠错码使用效率的方法的第一实施例的流程图。
图1a为图1所示提高闪存芯片纠错码使用效率的方法中二维写缓存器模块涉及的第一固定方式和第二固定方式的示意图。
图1b为图1所示提高闪存芯片纠错码使用效率的方法中二维读缓存器模块涉及的第一固定方式和第二固定方式的示意图。
图2为本发明提高闪存芯片纠错码使用效率的方法的第一实施例的流程图。
图3为本发明固态存储系统控制器的第一实施例的结构框图。
图4为本发明固态存储系统控制器的第二实施例的结构框图。
图5为本发明固态存储系统控制器的第一实施例的结构框图。
图6为本发明固态存储系统控制器的第二实施例的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提高闪存芯片纠错码使用效率的方法的第一实施例的流程图。如图1所示,所述方法包括如下步骤:
步骤S11,对待写入数据的每一帧数据依次进行纠错码编码操作,以得到纠错码编码帧数据;
步骤S12,以第一固定方式将所述纠错码编码帧数据写入二维写缓存器模块,在所述二维写缓存器模块中暂存写入的纠错码编码帧数据,待所述纠错码编码帧数据达到预设帧数量时,以第二固定方式从所述二维写缓存器模块中读出所述纠错码编码帧数据,其中第一固定方式与第二固定方式不同;
步骤S13,根据不同存储页面之间不同的可靠性来指定从所述二维写缓存器模块中读出的纠错码编码帧数据写入的闪存芯片的存储页面;
步骤S14,将从所述二维写缓存器模块中读出的纠错码编码帧数据写入指定的存储页面;
步骤S15,以所述第二固定方式将从存储页面读取的数据帧写入二维读缓存器模块,在所述二维读缓存器模块中暂存写入的数据帧,待所述数据帧达到预设帧数量时,以所述第一固定方式从所述二维读缓存器模块中读出所述数据帧;
步骤S16,对从所述二维读缓存器模块中读出的数据帧进行纠错码解码操作,以得到对应的原始用户数据。
由上述技术方案可知,本实施例提高闪存芯片纠错码使用效率的方法中每一帧数据经过纠错码编码和存储页面指定后,分散式地存储于不同的存储页面内,因此,本方法能缩小不同编码数据帧存储所面临的噪音容限之间的差别,这样提高了纠错码的使用效率。
另外,本实施例提高闪存芯片纠错码使用效率的方法进行编码时无需产生不同的纠错码数据,且进行解码时无需产生不同的纠错码码字,相比于现有技术方法实现需要两个编码器产生不同的纠错码数据和两个解码器产生不同的纠错码码字而言,实现成本相对较小。
此外,本实施例提高闪存芯片纠错码使用效率的方法在用户写入数据时无需对纠错码编码帧数据进行分割并重新组合操作,在用户在读取数据时,无需对数据帧进行针对分割并重新组合的逆操作,因此,本发明提高纠错码使用效率时简单方便,容易执行。
再者,本实施例提高闪存芯片纠错码使用效率的方法对读出的纠错码编码帧数据根据不同存储页面之间不同的可靠性进行了存储页面指定,这种指定页面的方式,最大程度地利用不同存储页面可靠性存在较大差异的特点,能最大程度地提高纠错码效率,从而对所有存储页面发挥纠错码的最强纠错功能,进而使得固态存储系统可利用此强大的数据纠错能力来提高整体系统可靠性以及延长使用寿命,因此更能优化固态存储系统的可靠性和使用寿命。
需要说明的是,所述第一固定方式与所述第二固定方式的目的是将不同的纠错码编码结果交织在一起。在本实施例中,所述第一固定方式可以为一行一行的顺序,所述第二固定方式可以为一列一列的顺序。参考图1a,在用户写入数据时,数据以一行一行的顺序写入二维写缓存器模块,并以一列一列的顺序从二维写缓存器模块中读出;参考图1b,在用户读取数据时,数据以一列一列的顺序写入二维读缓存器模块,并以一行一行的顺序从二维读缓存器模块中读出。图1a和图1b中虚线箭头表示所述第一固定方式,点线箭头表示第二固定方式,倾斜的虚线箭头表示当到达一行的末尾时,立即跳转到下一行的开始。可以理解地,所述第一固定方式也可以为一斜行一斜行的顺序,所述第二固定方式相应地可以为不同于所述第一固定方式的一斜行一斜行的顺序。
图2为本发明提高闪存芯片纠错码使用效率的方法的第二实施例的流程图。如图2所示,所述方法包括如下步骤:
步骤S21,对待写入数据的每一帧数据依次进行纠错码编码操作,以得到纠错码编码帧数据;
步骤S22,以第一固定方式将所述纠错码编码帧数据写入二维写缓存器模块,在所述二维写缓存器模块中暂存写入的纠错码编码帧数据,待所述纠错码编码帧数据达到预设帧数量时,以第二固定方式从所述二维写缓存器模块中读出所述纠错码编码帧数据,其中第一固定方式与第二固定方式不同;
步骤S23,实时检测闪存芯片所有存储页面的最差可能的噪音容限,以获取不同存储页面之间不同的可靠性;
步骤S24,根据实时检测的闪存芯片所有存储页面的最差可能的噪音容限将所述闪存芯片的所有存储页面分成多个组,其中同一组存储页面具有相似的噪音容限;
步骤S25,指定从所述二维写缓存器模块中读出的纠错码编码帧数据写入不同组的存储页面;
步骤S26,将从所述二维写缓存器模块中读出的纠错码编码帧数据写入指定的存储页面;
步骤S27,以所述第二固定方式将从存储页面读取的数据帧写入二维读缓存器模块,在所述二维读缓存器模块中暂存写入的数据帧,待所述数据帧达到预设帧数量时,以所述第一固定方式从所述二维读缓存器模块中读出所述数据帧;
步骤S28,对从所述二维读缓存器模块中读出的数据帧进行纠错码解码操作,以得到对应的原始用户数据。
由上述技术方案可知,本实施例提高闪存芯片纠错码使用效率的方法也能提高纠错码的使用效率,且提高纠错码使用效率时简单方便,容易执行,实现成本小,更能优化固态存储系统的可靠性和使用寿命。
另外,本实施例在实施例一的基础上,添加了实时检测闪存芯片所有存储页面的最差可能的噪音容限的步骤(步骤S23),这样能获取不同页面存储稳定性(可靠性)之间的差别,以达到最佳的页面指定功能。可以理解地,存储页面可靠性的其他获取方式也在本发明的涵盖范围之内。
此外,本实施例在实施例一的基础上,添加了对闪存芯片的所有存储页面进行分组的步骤(步骤S24)和指定将纠错码编码帧数据写入不同组的存储页面的步骤(步骤S25),这样可最大程度地将所有由存储介质所引入的错误均匀地分布于不同纠错码内,可提高纠错码效率。
在步骤S24中,所述同一组存储页面具有相似的噪音容限是指同一组存储页面的噪音容限值为比较接近的量值,即,当将所有存储页面按照噪音容限值分为N组时,同一组存储页面之间的噪音容限值之差不大于所有存储页面内的最大噪音容限值之差的N分之一。
需要说明的是,所述第一固定方式与所述第二固定方式的目的是将不同的纠错码编码结果交织在一起。在本实施例中,所述第一固定方式和所述第二固定方式可以为方法实施例一中的举例。
图3为本发明固态存储系统控制器的第一实施例的结构框图。如图3所示,固态存储系统控制器30包括纠错码编码器模块31、二维写缓存器模块32、存储页面指定模块33、二维读缓存器模块34以及纠错码解码器模块35。
所述纠错码编码器模块31用于对待写入数据的每一帧数据依次进行纠错码编码操作以得到纠错码编码帧数据;所述二维写缓存器模块32用于以第一固定方式写进所述纠错码编码器模块31得到的纠错码编码帧数据,暂存写进的纠错码编码帧数据,待所述纠错码编码帧数据达到预设帧数量时,以第二固定方式读出所述纠错码编码帧数据,将读出的纠错码编码帧数据写入所述存储页面指定模块33指定的存储页面,其中第一固定方式与第二固定方式不同;所述存储页面指定模块33用于根据不同存储页面之间不同的可靠性来指定从所述二维写缓存器模块32中读出的纠错码编码帧数据写入的闪存芯片的存储页面; 所述二维读缓存器模块34用于以所述第二固定方式写进从存储页面读取的数据帧,暂存写进的数据帧,待所述数据帧达到预设帧数量时,以所述第一固定方式读出所述数据帧;所述纠错码解码器模块35用于对所述二维读缓存器模块34读出的数据帧进行纠错码解码操作以得到对应的原始用户数据。
本实施例固态存储系统控制器的工作过程是:当用户在写入数据时,所述纠错码编码器31对待写入数据的每一帧数据依次进行纠错码编码操作,得到纠错码编码帧数据;所述二维写缓存器32以某一固定方式写进所述纠错码编码帧数据,并暂存写进的纠错码编码帧数据,待所述纠错码编码帧数据达到预设帧数量时,以不同于所述第一固定方式的第二固定方式读出所述纠错码编码帧数据,以生成不同组合的数据帧;所述存储页面指定模块33指定从所述二维写缓存器中读出的纠错码编码帧数据对应写入的闪存芯片的存储页面;所述二维写缓存器模块34将所述读出的纠错码编码帧数据写入所述存储页面指定模块33对应指定的存储页面。当用户在读取数据时,二维读缓存器模块34以所述第二固定方式写进从存储页面读取的数据帧,暂存写进的数据帧,待所述数据帧达到预设帧数量时,以所述第一固定方式读出所述数据帧;所述纠错码解码器模块35对所述二维读缓存器模块34读出的数据帧进行纠错码解码操作,以得到对应的原始用户数据。
由上述技术方案可知,本实施例固态存储系统控制器30中每一帧数据经过纠错码编码器31的纠错码编码、二维写缓存器32的写进、暂存、读出及存储页面指定模块33的存储页面指定后,分散式地存储于不同的存储页面内,因此,本实施例固态存储系统控制器30能缩小不同编码数据帧存储所面临的噪音容限之间的差别,这样提高了纠错码的使用效率。
另外,本实施例提高闪存芯片纠错码使用效率的方法进行编码时无需产生不同的纠错码数据,且进行解码时无需产生不同的纠错码码字,相比于现有技术方法实现需要两个编码器产生不同的纠错码数据和两个解码器产生不同的纠错码码字而言,实现成本相对较小。
此外,本实施例固态存储系统控制器30在用户写入数据时无需重新组合模块对纠错码编码帧数据进行分割并重新组合操作,在用户在读取数据时,无需反向重新组合模块对数据帧进行针对分割并重新组合的逆操作,因此,本发明提高纠错码使用效率时简单方便,容易执行。
再者,本实施例固态存储系统控制器30的存储页面指定模块33对读出的纠错码编码帧数据根据不同存储页面之间不同的可靠性进行了存储页面指定,这种指定页面的方式,最大程度地利用不同存储页面可靠性存在较大差异的特点,能最大程度地提高纠错码效率,从而对所有存储页面发挥纠错码的最强纠错功能,进而使得固态存储系统可利用此强大的数据纠错能力来提高整体系统可靠性以及延长使用寿命,因此更能优化固态存储系统的可靠性和使用寿命。
需要说明的是,所述第一固定方式与所述第二固定方式的目的是将不同的纠错码编码结果交织在一起。在本实施例中,所述第一固定方式和所述第二固定方式可以为方法实施例一中的举例。
图4为本发明固态存储系统控制器的第二实施例的结构框图。如图4所示,固态存储系统控制器40包括纠错码编码器模块41、二维写缓存器模块42、噪音容限估算模块46、存储页面指定模块43、二维读缓存器模块44以及纠错码解码器模块45。
所述纠错码编码器模块41用于对待写入数据的每一帧数据依次进行纠错码编码操作以得到纠错码编码帧数据;所述二维写缓存器模块42用于以第一固定方式写进所述纠错码编码器模块41得到的纠错码编码帧数据,暂存写进的纠错码编码帧数据,待所述纠错码编码帧数据达到预设帧数量时,以第二固定方式读出所述纠错码编码帧数据,将读出的纠错码编码帧数据写入所述存储页面指定模块43指定的不同组的存储页面,其中第一固定方式与第二固定方式不同;噪音容限估算模块46用于实时检测闪存芯片所有存储页面的最差可能的噪音容限,以获取不同存储页面之间不同的可靠性;所述存储页面指定模块43用于根据所述噪音容限估算模块46实时检测的闪存芯片所有存储页面的最差可能的噪音容限将所有存储页面分成多个组,并指定从所述二维写缓存器模块42中读出的纠错码编码帧数据写入不同组的存储页面,其中同一组存储页面具有相似的噪音容限;所述二维读缓存器模块44用于以所述第二固定方式写进从存储页面读取的数据帧,暂存写进的数据帧,待所述数据帧达到预设帧数量时,以所述第一固定方式读出所述数据帧;所述纠错码解码器模块45用于对所述二维读缓存器模块44读出的数据帧进行纠错码解码操作以得到对应的原始用户数据。
本实施例固态存储系统控制器40的工作过程与实施例一固态存储系统控制器30类似,不同的是,当用户在写入数据时,在从所述二维写缓存器模块42中读出的纠错码编码帧数据写入存储芯片的存储页面之前,噪音容限估算模块46实时检测闪存芯片所有存储页面的最差可能的噪音容限,并且存储页面指定模块43根据所述噪音容限估算模块46实时检测的闪存芯片所有存储页面的最差可能的噪音容限将所有存储页面分成多个组,其中同一组内的存储页面具有相似的噪音容限,并指定所述二维写缓存器模块中读出的纠错码编码帧数据写入不同组的存储页面,然后所述二维写缓存器模块42才将所述读出的纠错码编码帧数据写入所述存储页面指定模块43对应指定的存储页面。
由上述技术方案可知,本实施例固态存储系统控制器404也能提高纠错码的使用效率,且提高纠错码使用效率时简单方便,容易执行,实现成本小,更能优化固态存储系统的可靠性和使用寿命。
另外,噪音容限估算模块46实时检测闪存芯片所有存储页面的最差可能的噪音容限,能获取不同页面存储稳定性之间的差别。此外,存储页面指定模块43根据噪音容限估算模块46的实时检测结果对闪存芯片的所有存储页面进行分组,将纠错码编码帧数据指定写入不同组的存储页面,这样可最大程度地将所有由存储介质所引入的错误均匀地分布于不同纠错码内,可提高纠错码效率。
其中,存储页面指定模块43指定同一组存储页面具有相似的噪音容限是指同一组存储页面的噪音容限值为比较接近的量值,即,当将所有存储页面按照噪音容限值分为N组时,同一组存储页面之间的噪音容限值之差不大于所有存储页面内的最大噪音容限值之差的N分之一。
需要说明的是,所述第一固定方式与所述第二固定方式的目的是将不同的纠错码编码结果交织在一起。在本实施例中,所述第一固定方式和所述第二固定方式可以为方法实施例一中的举例。
图5为本发明固态存储系统实施例一的结构框图。参考图5,固态存储系统包括固态存储系统控制器51和多个闪存芯片52。每个闪存芯片52包含多个存储页面,固态存储系统控制器51用于将用户数据写入每个闪存芯片52的存储页面,或者从每个闪存芯片52的存储页面读出用户数据。所述固态存储系统控制器51包括纠错码编码器模块511、二维写缓存器模块512、存储页面指定模块513、二维读缓存器模块514以及纠错码解码器模块515。
本实施例固态存储系统中各个单元的工作方式可以参考本发明固态存储系统控制器实施例一中的相应描述,此处将不再赘述。
由上述技术方案可知,本实施例固态存储系统能提高纠错码的使用效率,且提高纠错码使用效率时简单方便,容易执行,实现成本小。并且由于存储页面指定模块对读出的纠错码编码帧数据根据不同存储页面之间不同的可靠性进行了存储页面指定,这种指定页面的方式,最大程度地利用不同存储页面可靠性存在较大差异的特点,能最大程度地提高纠错码效率,从而对所有存储页面发挥纠错码的最强纠错功能,进而使得固态存储系统可利用此强大的数据纠错能力来提高整体系统可靠性以及延长使用寿命,因此更能优化固态存储系统的可靠性和使用寿命。
需要说明的是,所述第一固定方式与所述第二固定方式的目的是将不同的纠错码编码结果交织在一起。在本实施例中,所述第一固定方式和所述第二固定方式可以为方法实施例一中的举例。
图6为本发明固态存储系统第二实施例的结构框图。参考图6,固态存储系统包括固态存储系统控制器61和多个闪存芯片62。所述固态存储系统控制器61包括纠错码编码器模块611、二维写缓存器模块612、噪音容限估算模块616、存储页面指定模块613、二维读缓存器模块614以及纠错码解码器模块615。
本实施例固态存储系统中各个单元的工作方式可以参考本发明固态存储系统实施例二中的相应描述,此处将不再赘述。
由上述技术方案可知,本实施例固态存储系统也能提高纠错码的使用效率,且提高纠错码使用效率时简单方便,容易执行,实现成本小,更能优化固态存储系统的可靠性和使用寿命。
另外,噪音容限估算模块616对闪存芯片所有存储页面的最差可能的噪音容限实时检测,能获取不同页面存储稳定性之间的差别。另外,存储页面指定模块613对闪存芯片的所有存储页面的分组,以及纠错码编码帧数据写入的存储页面的指定,这样可最大程度地将所有由存储介质所引入的错误均匀地分布于不同纠错码内,可提高纠错码效率。
需要说明的是,所述第一固定方式与所述第二固定方式的目的是将不同的纠错码编码结果交织在一起。在本实施例中,所述第一固定方式和所述第二固定方式也可以为方法实施例一中的举例。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种提高闪存芯片纠错码使用效率的方法,包括如下步骤:
对待写入数据的每一帧数据依次进行纠错码编码操作,以得到纠错码编码帧数据;
以第一固定方式将所述纠错码编码帧数据写入二维写缓存器模块,在所述二维写缓存器模块中暂存写入的纠错码编码帧数据,待所述纠错码编码帧数据达到预设帧数量时,以第二固定方式从所述二维写缓存器模块中读出所述纠错码编码帧数据,其中第一固定方式与第二固定方式不同;
根据不同存储页面之间不同的可靠性来指定从所述二维写缓存器模块中读出的纠错码编码帧数据写入的闪存芯片的存储页面;
将从所述二维写缓存器模块中读出的纠错码编码帧数据写入指定的存储页面;
以所述第二固定方式将从存储页面读取的数据帧写入二维读缓存器模块,在所述二维读缓存器模块中暂存写入的数据帧,待所述数据帧达到预设帧数量时,以所述第一固定方式从所述二维读缓存器模块中读出所述数据帧;
对从所述二维读缓存器模块中读出的数据帧进行纠错码解码操作,以得到对应的原始用户数据。
2.如权利要求1所述的提高闪存芯片纠错码使用效率的方法,其特征在于,还包括步骤:
实时检测所述闪存芯片所有存储页面的最差可能的噪音容限,以获取不同存储页面之间不同的可靠性。
3.如权利要求2所述的提高闪存芯片纠错码使用效率的方法,其特征在于,所述根据不同存储页面之间不同的可靠性来指定从所述二维写缓存器模块中读出的纠错码编码帧数据写入的闪存芯片的存储页面的步骤具体为:
根据实时检测的闪存芯片所有存储页面的最差可能的噪音容限将所述闪存芯片的所有存储页面分成多个组,其中同一组存储页面之间的噪音容限值之差不大于所有存储页面内的最大噪音容限值之差的N分之一,其中N为存储页面的组数;
指定从所述二维写缓存器模块中读出的纠错码编码帧数据写入不同组的存储页面。
4.如权利要求1或2或3所述的提高闪存芯片纠错码使用效率的方法,其特征在于,所述第一固定方式为一行一行的顺序,所述第二固定方式为一列一列的顺序。
5.一种固态存储系统控制器,其特征在于,包括纠错码编码器模块、二维写缓存器模块、存储页面指定模块、二维读缓存器模块以及纠错码解码器模块,
所述纠错码编码器模块,用于对待写入数据的每一帧数据依次进行纠错码编码操作以得到纠错码编码帧数据;
所述二维写缓存器模块,用于以第一固定方式写进所述纠错码编码器模块得到的纠错码编码帧数据,暂存写进的纠错码编码帧数据,待所述纠错码编码帧数据达到预设帧数量时,以第二固定方式读出所述纠错码编码帧数据,将读出的纠错码编码帧数据写入所述存储页面指定模块指定的存储页面,其中第一固定方式与第二固定方式不同;
所述存储页面指定模块,用于根据不同存储页面之间不同的可靠性来指定从所述二维写缓存器模块中读出的纠错码编码帧数据写入的闪存芯片的存储页面;
所述二维读缓存器模块,用于以所述第二固定方式写进从存储页面读取的数据帧,暂存写进的数据帧,待所述数据帧达到预设帧数量时,以所述第一固定方式读出所述数据帧;
所述纠错码解码器模块,用于对所述二维读缓存器模块读出的数据帧进行纠错码解码操作以得到对应的原始用户数据。
6.如权利要求5所述的固态存储系统控制器,其特征在于,还包括:
噪音容限估算模块,用于实时检测所述闪存芯片所有存储页面的最差可能的噪音容限,以获取不同存储页面之间不同的可靠性。
7.如权利要求6所述的固态存储系统控制器,其特征在于,所述存储页面指定模块具体用于根据所述噪音容限估算模块实时检测的闪存芯片所有存储页面的最差可能的噪音容限将所述闪存芯片的所有存储页面分成多个组,并指定从所述二维写缓存器模块中读出的纠错码编码帧数据写入不同组的存储页面,其中同一组存储页面之间的噪音容限值之差不大于所有存储页面内的最大噪音容限值之差的N分之一,其中N为存储页面的组数。
8.如权利要求5或6或7所述的固态存储系统控制器,其特征在于,所述第一固定方式为一行一行的顺序,所述第二固定方式为一列一列的顺序。
9.一种固态存储系统,包括:
多个闪存芯片,每个闪存芯片包含多个存储页面;
固态存储系统控制器,用于将用户数据写入每个闪存芯片的存储页面,或者从每个闪存芯片的存储页面读出用户数据,
其特征在于,所述固态存储系统控制器包括纠错码编码器模块、二维写缓存器模块、存储页面指定模块、二维读缓存器模块以及纠错码解码器模块,
所述纠错码编码器模块,用于对待写入数据的每一帧数据依次进行纠错码编码操作以得到纠错码编码帧数据;
所述二维写缓存器模块,用于以第一固定方式写进所述纠错码编码器模块得到的纠错码编码帧数据,暂存写进的纠错码编码帧数据,待所述纠错码编码帧数据达到预设帧数量时,以第二固定方式读出所述纠错码编码帧数据,将读出的纠错码编码帧数据写入所述存储页面指定模块指定的存储页面,其中第一固定方式与第二固定方式不同;
所述存储页面指定模块,用于根据不同存储页面之间不同的可靠性来指定从所述二维写缓存器模块中读出的纠错码编码帧数据写入的闪存芯片的存储页面;
所述二维读缓存器模块,用于以所述第二固定方式写进从存储页面读取的数据帧,暂存写进的数据帧,待所述数据帧达到预设帧数量时,以所述第一固定方式读出所述数据帧;
所述纠错码解码器模块,用于对所述二维读缓存器模块读出的数据帧进行纠错码解码操作以得到对应的原始用户数据。
10.如权利要求9所述的固态存储系统,其特征在于,所述固态存储系统控制器还包括:
噪音容限估算模块,用于实时检测所述闪存芯片所有存储页面的最差可能的噪音容限,以获取不同存储页面之间不同的可靠性,
则,所述存储页面指定模块具体用于根据所述噪音容限估算模块实时检测的闪存芯片所有存储页面的最差可能的噪音容限将所述闪存芯片的所有存储页面分成多个组,并指定从所述二维写缓存器模块中读出的纠错码编码帧数据写入不同组的存储页面,其中同一组存储页面之间的噪音容限值之差不大于所有存储页面内的最大噪音容限值之差的N分之一,其中N为存储页面的组数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201210372642 CN102929741B (zh) | 2012-09-29 | 2012-09-29 | 一种提高闪存芯片纠错码使用效率的方法、系统及控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201210372642 CN102929741B (zh) | 2012-09-29 | 2012-09-29 | 一种提高闪存芯片纠错码使用效率的方法、系统及控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102929741A true CN102929741A (zh) | 2013-02-13 |
CN102929741B CN102929741B (zh) | 2013-12-25 |
Family
ID=47644547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201210372642 Expired - Fee Related CN102929741B (zh) | 2012-09-29 | 2012-09-29 | 一种提高闪存芯片纠错码使用效率的方法、系统及控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102929741B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105788647A (zh) * | 2014-12-26 | 2016-07-20 | 北京兆易创新科技股份有限公司 | 一种非易失存储器的纠错方法和装置 |
CN106708655A (zh) * | 2017-02-16 | 2017-05-24 | 深圳前海生生科技有限公司 | 基于二维纠错码的内存加固方法及电路 |
CN108073471A (zh) * | 2016-11-15 | 2018-05-25 | 西部数据技术公司 | 链接的存储系统和主机系统错误校正码 |
CN108172261A (zh) * | 2016-12-08 | 2018-06-15 | 桑迪士克科技有限责任公司 | 由数据存储设备的解码期间的流水线延迟检测 |
CN108595288A (zh) * | 2018-02-06 | 2018-09-28 | 江苏华存电子科技有限公司 | 一种闪存资讯纠错方法 |
CN109309563A (zh) * | 2017-07-27 | 2019-02-05 | 科大国盾量子技术股份有限公司 | 一种信息的纠错处理方法及系统 |
WO2019136976A1 (zh) * | 2018-01-12 | 2019-07-18 | 江苏华存电子科技有限公司 | 一种编译码系统使用多种错误纠正码组合的方法 |
CN110147295A (zh) * | 2015-08-10 | 2019-08-20 | 慧荣科技股份有限公司 | 存取闪存模块的方法、闪存控制器以及记忆装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101188428A (zh) * | 2007-12-10 | 2008-05-28 | 中兴通讯股份有限公司 | 一种ldpc码的有限长度循环缓存的速率匹配方法 |
CN101692229A (zh) * | 2009-07-28 | 2010-04-07 | 武汉大学 | 基于数据内容的三维空间数据自适应多级缓存系统 |
-
2012
- 2012-09-29 CN CN 201210372642 patent/CN102929741B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101188428A (zh) * | 2007-12-10 | 2008-05-28 | 中兴通讯股份有限公司 | 一种ldpc码的有限长度循环缓存的速率匹配方法 |
CN101692229A (zh) * | 2009-07-28 | 2010-04-07 | 武汉大学 | 基于数据内容的三维空间数据自适应多级缓存系统 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105788647A (zh) * | 2014-12-26 | 2016-07-20 | 北京兆易创新科技股份有限公司 | 一种非易失存储器的纠错方法和装置 |
CN105788647B (zh) * | 2014-12-26 | 2019-02-22 | 北京兆易创新科技股份有限公司 | 一种非易失存储器的纠错方法和装置 |
CN110147295A (zh) * | 2015-08-10 | 2019-08-20 | 慧荣科技股份有限公司 | 存取闪存模块的方法、闪存控制器以及记忆装置 |
CN110147295B (zh) * | 2015-08-10 | 2022-10-21 | 慧荣科技股份有限公司 | 存取闪存模块的方法、闪存控制器以及记忆装置 |
CN108073471A (zh) * | 2016-11-15 | 2018-05-25 | 西部数据技术公司 | 链接的存储系统和主机系统错误校正码 |
CN108172261A (zh) * | 2016-12-08 | 2018-06-15 | 桑迪士克科技有限责任公司 | 由数据存储设备的解码期间的流水线延迟检测 |
CN108172261B (zh) * | 2016-12-08 | 2021-07-16 | 桑迪士克科技有限责任公司 | 由数据存储设备的解码期间的流水线延迟检测 |
CN106708655A (zh) * | 2017-02-16 | 2017-05-24 | 深圳前海生生科技有限公司 | 基于二维纠错码的内存加固方法及电路 |
CN106708655B (zh) * | 2017-02-16 | 2021-07-16 | 中云信安(深圳)科技有限公司 | 基于二维纠错码的内存加固方法及电路 |
CN109309563A (zh) * | 2017-07-27 | 2019-02-05 | 科大国盾量子技术股份有限公司 | 一种信息的纠错处理方法及系统 |
WO2019136976A1 (zh) * | 2018-01-12 | 2019-07-18 | 江苏华存电子科技有限公司 | 一种编译码系统使用多种错误纠正码组合的方法 |
CN108595288A (zh) * | 2018-02-06 | 2018-09-28 | 江苏华存电子科技有限公司 | 一种闪存资讯纠错方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102929741B (zh) | 2013-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102929741B (zh) | 一种提高闪存芯片纠错码使用效率的方法、系统及控制器 | |
CN111081308B (zh) | 用于混合非易失性存储系统的系统和方法 | |
TWI533304B (zh) | 用於儲存資料於具有跨頁區段、多頁編碼及每頁編碼之多位準單元快閃記憶體器件中之方法及裝置 | |
KR101519626B1 (ko) | 반도체 메모리 장치 및 그것의 데이터 처리 방법 | |
US10521292B2 (en) | Error correction code unit, self-test method and associated controller applied to flash memory device for generating soft information | |
CN101763903B (zh) | 快闪存储器控制器、其纠错码控制器及其方法和系统 | |
KR102200493B1 (ko) | 3차원 메모리 장치 및 그것을 포함하는 저장 장치 | |
US10283216B2 (en) | Data storage device and data maintenance method thereof | |
US9601205B2 (en) | Storage device and method of writing and reading the same | |
US8631310B2 (en) | Method for reducing uncorrectable errors of a memory device regarding error correction code, and associated memory device and controller thereof | |
US10846172B2 (en) | Encoding method and system for memory device including QLC cells | |
US9230684B2 (en) | Memory controller, storage device, and memory control method | |
CN105468292A (zh) | 数据存取方法、存储器储存装置及存储器控制电路单元 | |
US10942809B2 (en) | Changing of error correction codes based on the wear of a memory sub-system | |
KR20170012006A (ko) | 메모리 컨트롤러와 이를 포함하는 메모리 시스템 | |
CN102915767B (zh) | 利用数据可压缩性提高固态硬盘响应速度的方法、装置及系统 | |
CN110569143B (zh) | 用于存储器系统的解码器及其方法 | |
US11003528B2 (en) | Memory system including an error correction function | |
CN102323901A (zh) | 一种提高固态存储系统纠错码使用效率的方法 | |
US10951238B1 (en) | Memory system and method for controlling non-volatile memory | |
US9104596B2 (en) | Memory system | |
CN102279819A (zh) | 提高固态数据存储系统对于大块数据的存储效率的方法 | |
CN111597071A (zh) | 数据存储设备中的纠错 | |
CN106788465B (zh) | 用于涡轮乘积码的装置和方法 | |
US20180152207A1 (en) | Memory controller, memory system, and control method |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20131225 Termination date: 20150929 |
|
EXPY | Termination of patent right or utility model |