CN101536109A - Mbc闪存中的错误校正的方法 - Google Patents

Mbc闪存中的错误校正的方法 Download PDF

Info

Publication number
CN101536109A
CN101536109A CNA2006800445051A CN200680044505A CN101536109A CN 101536109 A CN101536109 A CN 101536109A CN A2006800445051 A CNA2006800445051 A CN A2006800445051A CN 200680044505 A CN200680044505 A CN 200680044505A CN 101536109 A CN101536109 A CN 101536109A
Authority
CN
China
Prior art keywords
lpage
logical page
flash memory
error correction
mbc
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
Application number
CNA2006800445051A
Other languages
English (en)
Other versions
CN101536109B (zh
Inventor
S·利特辛
I·奥罗德
E·沙龙
M·穆里恩
M·拉瑟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ramot at Tel Aviv University Ltd
Original Assignee
Ramot at Tel Aviv University Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ramot at Tel Aviv University Ltd filed Critical Ramot at Tel Aviv University Ltd
Publication of CN101536109A publication Critical patent/CN101536109A/zh
Application granted granted Critical
Publication of CN101536109B publication Critical patent/CN101536109B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring

Abstract

多个逻辑页面与相应的ECC位一起被存储在MBC闪存(42)中,MBC单元中的至少一个存储来自多于一个逻辑页面的位,并且ECC位中的至少一个应用于逻辑页面中的两个或更多个。当从存储器(42)读取页面时,使用所读取的ECC位来校正所读取的数据位。作为替代方案,共同的、系统的或非系统的ECC代码字对于逻辑页面中的两个或更多个而被计算,并代替那些逻辑页面而被存储。当读取共同的代码字时,从所读取的代码字恢复逻辑位。本发明的范围还包括相应的存储器装置(54,56,5S)、这样的存储器装置(54,56,58)的控制器以及承载有用于实施所述方法的计算机可读代码的计算机可读存储介质。

Description

MBC闪存中的错误校正的方法
技术领域
本发明涉及数字数据的错误校正(error correction),更特别地,涉及对于每个单元存储多个位的闪存(flash memory)装置的错误校正的方法。
背景技术
闪存装置为人所知已有很多年了。一般地,闪存内各个单元存储一个位的信息。常规上,用于存储位的方式是通过支持单元的两种状态——一种状态代表逻辑“0”,另一种状态代表逻辑“1”。在闪存单元中,通过在单元的沟道(连接单元的晶体管的源极和漏极元件的区域)之上具有浮动栅极并在该浮动栅极内具有对于所存储的电荷量的两种有效状态,实现这两种状态。一般地,一种状态在浮动栅极中具有零电荷,并且是被擦除之后的单元的初始未写入状态(一般被定义为代表“1”状态),另一种状态在浮动栅极中具有一定量的负电荷(一般被定义为代表“0”状态)。在栅极中具有负电荷导致单元的晶体管的阈值电压(即,为了使晶体管导电而必须施加到晶体管的控制栅极的电压)增大。现在,能够通过检查单元的阈值电压而读取所存储的位:如果阈值电压处于较高的状态,那么位值是“0”,如果阈值电压处于较低的状态,那么位值是“1”。实际上,不需要精确地读取单元的阀值电压。所需要的只是正确地识别单元当前处于两种状态中的哪一种。出于该目的,与处于两种状态之间的中间的基准电压值进行比较并由此确定单元的阈值电压是低于还是高于该基准值就足够了。
图1A以图示的方式示出这如何工作。具体而言,图1A示出大量的单元的阈值电压的分布。由于闪存中的单元在它们的特性和行为方面不是完全地相同(例如,由于杂质浓度的小差异或由于硅结构中的缺陷),因此,对于所有的单元施加相同的编程操作不导致所有的单元具有完全相同的阈值电压。(注意,出于历史原因,将数据写入闪存一般被称为对闪存进行“编程”。)而是,阈值电压类似于图1A所示的方式而分布。存储“1”的值的单元一般具有负的阈值电压,使得大多数单元具有接近图1A的左峰所示的值的阈值电压,而一些较少量的单元具有更低或更高的阈值电压。类似地,存储“0”的值的单元一般具有正的阈值电压,使得大多数单元具有接近图1A的右峰所示的值的阈值电压,而一些较少量的单元具有更低或更高的阈值电压。
近年来,使用常规上称为“多级单元(Multi Level Cells)”或简称为MLC的技术,在市场上出现了新型的闪存。(由于以前的类型的闪存单元也具有多于一个的级:如上所述,它们具有两个级,因此,该术语容易使人误解。因此,这两种类型的闪存单元在这里被称为“单位单元(Single Bit Cells)”(SBC)和“多位单元(Multi-Bit Cells)”(MBC)。)MBC闪存带来的改进是在各个单元中存储两个或更多个位。为了使得单个单元存储两个位的信息,单元必须能够处于四种不同的状态中的一个中。由于单元的“状态”由其阈值电压代表,因此,很显然2位MBC单元应对于其阈值电压支持四种不同的有效范围。图1B示出典型的2位MBC单元的阈值电压分布。如所期望的那样,图1B具有四个峰,每个峰与一种状态对应。至于SBC的情况,各状态实际是范围而不是单个的数字。当读取单元的内容时,所有必须保证的是,单元的阈值电压所处的范围被正确地识别。对于MBC闪存的现有技术例子,参见Harari的美国专利No.5434825。
类似地,为了使得单个单元存储三个位的信息,单元必须能够处于八种不同的状态中的一个中。因此,3位MBC单元应对于其阈值电压支持八种不同的有效范围。图1C示出典型的3位MBC单元的阈值电压分布。如所期望的那样,图1C具有八个峰,每个峰与一种状态对应。图1D表示4位MBC单元的阈值电压分布,对于该4位MBC单元,需要由十六个阈值电压范围代表的十六种状态。
当通过四种状态对MBC单元中的两个位进行编码时,一般使图1B中的最左边的状态(一般具有负的阈值电压)代表两个位均具有“1”的值的情况。(在以下的讨论中,使用以下的表示法——单元的两个位被称为“下位”和“上位”。以形式[“上位”“下位”]书写位的明确的值,下位值在右边。因此,将下位为“0”且上位为“1”的情况写为“10”。必须理解,该术语和表示法的选择是任意的,并且,其它的名称和编码是可能的)。使用该表示法,最左边的状态代表“11”的情况。一般通过从左到右的以下次序对其它三种状态进行分配:“10”、“00”、“01”。可以在Chen的美国专利No.6522580中看到使用该编码的MBC NAND闪存的实施的例子,出于所有的目的通过参考而加入该专利,如同在这里被全面阐述那样。特别参见Chen专利的图8。Tanaka的美国专利No.6643188也示出MBC NAND闪存的类似的实施,但是,参见那里的图7,位编码有不同的状态分配:“11”、“10”、“01”、“00”。Chen编码是在图1B中示出的编码。
我们如下面那样将以上的术语和表示法扩展到每单元多于两位的情况。最左边的未写入状态代表“全部1”(“1...1”),串“1...10”代表仅单元的最下位被写为“0”的情况,并且串“01...1”代表仅单元的最上位被写为“0”的情况。
当读取MBC单元的内容时,单元的阈值电压所处的范围必须被正确地识别;仅在这种情况下,通过仅与一个基准电压相比较不能总是实现这一点。而是,可能必需几次比较。例如,在图1B所示的情况下,为了读取下位,首先将单元的阀值电压与基准比较电压V1相比较,然后,根据比较的结果,与零基准比较电压或基准比较电压V2相比较。作为替代方案,通过无条件地将阈值电压与零基准电压和基准比较电压V2相比较来读取下位,也是需要两次比较。对于每单元多于两个的位,可能需要甚至更多的比较。
单个MBC单元的位可能均属于同一闪存页面(flash page),或者,它们可被分配到不同的页面,使得,例如在4位单元中,最下位在页面0中,下一位在页面1中,下一位在页面2中,并且最高位在页面3中。(页面是可在闪存中单独写入的数据的最小部分)。虽然两种方法均在使用,但本发明的意图主要在于用于“各位处于其自身的页面中”方法。
Lasser的美国专利申请系列No.11/035807涉及对于每单元存储多个位的闪存单元中的位进行编码的方法。Lasser的美国专利申请系列No.11/061634和Murin的美国专利申请系列No.11/078478涉及位编码的这些方法对于跨过(across)多位闪存单元的不同逻辑页面的错误分布的问题的含意。具体而言,Lasser的‘634教导用于通过使用位编码的逻辑到物理映射而实现数据的用户所看到的以及错误校正代码(ECC)电路所应对的跨过不同逻辑页面的错误的均匀分布的方法;并且,Murin教导用于通过使用物理位页面之间的逻辑页面的交错(interleaving)而实现数据的用户所看到的以及ECC电路所应对的跨过不同逻辑页面的错误的均匀分布的方法。出于所有的目的,所有的这三个现有技术的专利申请均通过参考而加入,如同在这里被全面阐述那样。
Lasser的‘634和Murin均针对同一目标:应设计ECC电路以降低错误率。在两个申请给出的例子中,一组15000个4位MBC闪存单元被用于存储数据的4个逻辑页面,每个逻辑页面15000位。假定的单元错误率是1比1000。得到的位错误的最佳数量是15,因此,逻辑页面中的最佳平均位错误是3.75。该例子显示,除非使用所提出的创新,否则,特定的逻辑页面最终会有高得多的位错误率——在所示的例子中有6个位错误。这意味着,即使跨过存储在单元中的所有位的位错误的总平均值相对较低(15比60000,或者1比4000),除非采取特别的措施,也必须设计应对逻辑页面中的错误校正的ECC电路以处理相对较高的平均位错误率(在该例子中——6比15000或1比2500)。
因此,广泛意识到需要一种能克服上述的目前已知方法的缺点的MBC闪存的错误校正的方法,并且具有这种方法会是高度有利的。
定义
“逻辑页面”是要通过单个命令被存储的从外面向存储器系统提供的最小数据块。例如,在同一单元的多个位属于不同页面的每单元两位的MBC NAND闪存装置中,通过首先发送用于组中的单元的第一位的第一“页面写入”命令并然后发送用于组中的单元的第二位的第二“页面写入”命令,完成一组单元的写入。提供有第一命令的数据位构成第一逻辑页面,并且,提供有第二命令的数据位构成第二逻辑页面。
如在Murin中那样,“位页面”是在它们的单元组中占据相同的位位置的所有位的集合,这里,该集合在一个命令中被一起写入。例如,如果逻辑页面中的位的数量与物理页面中的单元的数量相同,那么物理页面中的所有单元的所有最高(或最低)阶次的位的集合构成一个位页面。在前面的例子中,在它们的单元中作为第一位存储的所有位构成单个位页面。在大多数的系统中,在逻辑页面和逻辑页面被存储入其中的位页面之间存在一一对应关系。但是,在Murin中可以看出,这种对应关系不是强制的:在Murin的方法中,逻辑页面跨过多个位页面而交错。
发明内容
本发明对于必须设计ECC电路以使位错误率最小化的同一问题使用不同的方法。Lasser的‘634和Murin共享相同的基本方法以解决该问题——均依赖于每次在单个的逻辑页面上操作的ECC电路。根据以上的例子,ECC校正各为15000位的数据块。各个这种数据块伴随有其自身的ECC奇偶校验位(parity bit)。在ECC技术的术语中,数据位和它们的相关的ECC奇偶校验位的联合被称为“代码字”。代码字中的数据位的数量和位的总数的比被称为ECC方案的“比率”。比率越高越好,因为越少的存储位被“浪费”用于保护数据位。很显然,数据中的所预期的位错误率越高,则越多的位应被分配给ECC奇偶校验位并且ECC比率越低。
本发明的创新在于,使ECC电路不是每次在单个逻辑页面上操作,而是作为一个大的块在存储在单元中的所有位上或者至少在多于一个逻辑页面的位上操作。根据以上的例子,ECC校正各为60000位的数据块。这60000个数据位伴随有允许发生较大数据块的校正的相应ECC奇偶校验位。
以上例子中的包含共享相同单元的所有逻辑页面的数据位的较大数据位块中的预期位错误率为15比60000或1比4000。这等于通过Lasser的‘634和Murin的方法所实现的最佳平均值,但没有代码映射或交错的额外复杂性。很容易看到,这不是巧合,而是该方法的一般性能——不管页面尺寸或错误分布剖面(profile)如何,当使用在作为一个块的单元中的所有位上操作、将它们全部作为一个代码字而对待的ECC方案时,预期的平均位错误率总是通过Lasser的‘634和Murin实现的最佳值。
的确,在更大的代码字上操作的ECC方案需要更复杂的电路。但是,通过错误校正理论的公知结果补偿这一点,根据该错误校正理论,对于相同的位错误率,所操作的代码字越大,则可实现的代码率越高。换句话说,通过使用更长的ECC代码字,使得必须在闪存中存储的ECC奇偶校验位的数量更少,并因此使得被“浪费”用于错误校正的存储空间的量更少。这通常多于对额外ECC电路的补偿。
有人会争辩,如果逻辑页面中的每一个通过使用不同代码率的不同ECC方案在其自身上被处理,那么可使得用于所有逻辑页面的奇偶校验位的总数比当使用本发明的大代码字时的奇偶校验位的数量小。这是因为,已知逻辑页面中的一些具有低错误率,并因此仅需要小数量的奇偶校验位。但是,这种争辩忽略了会是昂贵的以每个逻辑页面一个的方式实施多个ECC模块的需求。作为替代方案,一个ECC模块被用于所有的逻辑页面,每次一个地校正它们,但是,所实施的模块于是必须是能够校正具有最高错误率的逻辑页面并使用低代码率的模块,并且,通过本发明的方法,我们的情况再次较好。
因此,根据本发明,提供一种在每单元多位的闪存中存储数据的方法,包括以下步骤:(a)对于数据位的多个逻辑页面计算错误校正奇偶校验位,其中,错误校正奇偶校验位中的至少一个共同(jointly)应用于逻辑页面中的至少两个;和(b)用数据位和错误校正奇偶校验位对MBC闪存进行编程,用来自应用有所述至少一个共同的错误校正奇偶校验位的所述至少两个逻辑页面中的多于一个逻辑页面的数据位对MBC闪存的至少一个单元进行编程。
并且,给定用多个逻辑页面的数据位并用对所述数据位计算的错误校正奇偶校验位来编程的MBC闪存,所述错误校正奇偶校验位中的至少一个共同应用于所述逻辑页面中的至少两个,并且,用来自应用有所述至少一个共同的错误校正位的所述至少两个逻辑页面中的多于一个逻辑页面的数据位对MBC闪存的至少一个单元进行编程:根据本发明,提供一种恢复数据位的方法,包括以下步骤:(a)从MBC闪存读取:(i)应用有所述至少一个共同的错误校正奇偶校验位的所述至少两个逻辑页面的数据位;和(ii)应用于应用有所述至少一个共同的错误校正奇偶校验位的所述至少两个逻辑页面中的任一个逻辑页面的错误校正奇偶校验位;和(b)根据从MBC闪存读取的错误校正奇偶校验位来校正从MBC闪存读取的数据位。
并且,根据本发明,提供一种控制器,该控制器用于MBC闪存,该控制器操作为通过以下步骤在MBC闪存中存储多个逻辑页面的数据位,所述步骤包含:对于数据位计算错误校正奇偶校验位,至少一个错误校正奇偶校验位共同应用于逻辑页面中的至少两个,并且,来自应用有所述至少一个共同的错误校正奇偶校验位的所述至少两个逻辑页面中的多于一个逻辑页面的数据位被共同存储在MBC闪存的至少一个单元中的每一个中。
并且,根据本发明,提供一种在计算机可读存储介质上实施计算机可读代码的计算机可读存储介质,该计算机可读代码用于管理MBC闪存,该计算机可读代码包括:(a)用于对于要被存储在MBC闪存中的数据位的多个逻辑页面计算错误校正奇偶校验位的程序代码,其中,错误校正奇偶校验位中的至少一个共同应用于逻辑页面中的至少两个;和(b)用于用所述数据位和所述错误校正奇偶校验位对MBC闪存进行编程的程序代码,用来自应用有所述至少一个共同的错误校正奇偶校验位的所述至少两个逻辑页面中的多于一个逻辑页面的数据位对MBC闪存的至少一个单元进行编程。
并且,给定用多个逻辑页面的数据位并用对所述数据位计算的错误校正奇偶校验位来编程的每单元多位(MBC)闪存,错误校正奇偶校验位中的至少一个共同应用于逻辑页面中的至少两个,并且,用来自应用有所述至少一个共同的错误校正位的所述至少两个逻辑页面中的多于一个逻辑页面的数据位对MBC闪存的至少一个单元进行编程:根据本发明,提供一种在计算机可读存储介质上实施计算机可读代码的计算机可读存储介质,该计算机可读代码包括:(a)用于从MBC闪存读取以下内容的程序代码:(i)应用有所述至少一个共同的错误校正奇偶校验位的所述至少两个逻辑页面的数据位;和(ii)应用于应用有所述至少一个共同的错误校正奇偶校验位的所述至少两个逻辑页面中的任一个逻辑页面的错误校正奇偶校验位;和(b)用于根据从MBC闪存读取的错误校正奇偶校验位来校正从MBC闪存读取的数据位的程序代码。
并且,根据本发明,提供一种在MBC闪存中存储数据的方法,包括以下步骤:(a)对于数据位的多个逻辑页面中的至少两个计算共同的ECC代码字;和(b)用所述共同的ECC代码字对MBC闪存进行编程。
并且,给定用对于数据位的多个逻辑页面中的至少两个计算的共同的ECC代码字编程的MBC闪存:根据本发明,提供一种恢复数据位的方法,包括以下步骤:(a)从闪存读取所述共同的ECC代码字;和(b)从于闪存读取的所述共同的ECC代码字来恢复从其计算所述共同的ECC代码字的所述至少两个逻辑页面的数据位。
并且,根据本发明,提供一种控制器,该控制器用于MBC闪存,该控制器操作为:通过包含对于逻辑页面中的至少两个计算共同的ECC代码字的步骤,在MBC闪存中存储多个逻辑页面的数据位。
并且,根据本发明,提供一种在计算机可读存储介质上实施计算机可读代码的计算机可读存储介质,该计算机可读代码用于管理MBC闪存,该计算机可读代码包括:(a)用于对于要被存储在MBC闪存中的数据位的多个逻辑页面中的至少两个计算共同的ECC代码字的程序代码;和(b)用于用所述共同的ECC代码字对MBC闪存进行编程的程序代码。
并且,给定用对于数据位的多个逻辑页面中的至少两个计算的共同的ECC代码字来编程的MBC闪存:根据本发明,提供一种在计算机可读存储介质上实施计算机可读代码的计算机可读存储介质,该计算机可读代码包括:(a)用于从闪存读取所述共同的ECC代码字的程序代码;和(b)用于从于闪存读取的所述共同的ECC代码字来恢复从其计算所述共同的ECC代码字的所述至少两个逻辑页面的数据位的程序代码。
根据本发明的第一基本方法,当在MBC闪存中存储数据位的多个逻辑页面时,对于数据位计算错误校正奇偶校验位,使得错误校正奇偶校验位中的至少一个应用于逻辑页面中的至少两个。错误校正奇偶校验位“应用于”逻辑页面意味着所述错误校正奇偶校验位从该逻辑页面的数据计算,并且必须被用于该逻辑页面的数据的校正中。在所附的权利要求中,应用于两个或更多个逻辑页面的这种错误校正奇偶校验位被称为“共同的”错误校正奇偶校验位。于是,用所述数据位并用所述错误校正奇偶校验位对MBC闪存进行编程,用来自应用有所述共同的错误校正奇偶校验位的逻辑页面中的多于一个逻辑页面的数据位对MBC闪存的至少一个单元进行编程。换句话说,并不是MBC闪存的用数据位编程的所有单元都用仅来自一个逻辑页面的数据位编程。
优选地,所有的错误校正奇偶校验位应用于所有的逻辑页面。作为替代方案,如果存在三个或更多个逻辑页面,那么对于逻辑页面中的至少两个而不是对于所有的逻辑页面共同地计算错误校正位。并且,作为替代方案,只有一些错误校正奇偶校验位应用于多个逻辑页面,而其它的错误校正奇偶校验位仅应用于单个逻辑页面。
优选地,用如所述多个逻辑页面中的逻辑页面那样多的位对用所述数据位和所述错误校正奇偶校验位编程的闪存的各个单元进行编程。并且,优选地,在编程之后,与所述共同的错误校正奇偶校验位以及存在的、应用于所述两个或更多个逻辑页面的其它错误校正奇偶校验位一起,从闪存读取应用有所述错误校正奇偶校验位的所述两个或更多个逻辑页面的数据位。通常地,所有的错误校正位应用于那两个或更多个逻辑页面,但是,可能错误校正奇偶校验位中的一些或者甚至大多数仅应用于那些逻辑页面中的一些(当存在三个或更多个这种逻辑页面时)或者甚至仅应用于那些逻辑页面中的一个。然后,根据从闪存读取的错误校正奇偶校验位来校正从闪存读取的数据位。
根据本发明的第二基本方法,当在MBC闪存中存储数据位的多个逻辑页面时,对于逻辑页面中的至少两个计算共同的ECC代码字。ECC可以是系统的或非系统的。然后,用于所述共同的ECC代码字对MBC闪存进行编程。
在所述方法的一些实施例中,所述多个逻辑页面包括三个或更多个逻辑页面,并且对于少于所有的逻辑页面计算所述代码字。
优选地,用如对其计算所述共同的ECC代码字的逻辑页面那样多的所述共同的ECC代码字的位对用所述共同的ECC代码字的位来编程的闪存的各个单元进行编程。作为替代方案,用与所述多个逻辑页面中的逻辑页面数量相同的所述共同的ECC代码字的位对用所述共同的ECC代码字的位来编程的闪存的各个单元进行编程。
优选地,在编程之后,从闪存读取所述共同的ECC代码字,然后,从于闪存读取的所述共同的ECC代码字来恢复从其计算所述共同的ECC代码字的逻辑页面的数据位。
本发明的范围还包括根据本发明的方法中的一个来管理MBC存储器的控制器、包括所述控制器和MBC存储器的存储器装置、以及在其上面实施用于根据本发明的方法中的一个来管理存储器的计算机可读代码的计算机可读存储介质。优选地,控制器操作为:根据通过控制器实施的本发明的方法,给存储器装置的主机提供存储在MBC存储器中的数据位。
附图说明
这里参照附图仅作为例子说明本发明,其中,
图1A~1D示出一位闪存单元、两位闪存单元、三位闪存单元和四位闪存单元中的阈值电压分布;
图2A和图2B示出各跨越两个逻辑页面的系统ECC代码字;
图3A和图3B示出各跨越两个逻辑页面的非系统ECC代码字;
图4是本发明的闪存装置的高级框图;
图5是本发明的数据存储器系统的高级部分框图。
具体实施方式
本发明是每单元多位的存储器中的错误校正方法。
参照附图和伴随的说明,可以更好地理解根据本发明的MBC错误校正的原理和操作。
在所有的现有技术的方法(诸如Lasser的’634和Murin的方法)中,要被存储在一组MBC单元中的数据作为多个逻辑页面从外面被提供给存储器系统,并且,然后对于各个逻辑页面单独地计算ECC奇偶校验位。并且,在大多数的这样的系统中,逻辑页面的所有的数据位和该同一页面的相应奇偶校验位被存储在同一位页面中。由于交错方案导致逻辑页面的位散布在多个位页面中,因此Murin的方法是该第二观察的例外。但是,即使Murin也遵循逻辑页面的奇偶校验位仅取决于该逻辑页面的数据位的第一观察。使用本发明的方法,这不再是这种情况。一些或所有的奇偶校验位是来自多个逻辑页面而非仅来自单个逻辑页面的数据位的函数。这是将所有的位作为一个长代码字对待的结果。
写入过程的该特性(即,一些或所有的奇偶校验位是来自多个逻辑页面的数据位的函数)的结果是在读取和错误校正过程中使用奇偶校验位的方式。在所有的现有技术的系统(包括Lasser的‘634和Murin)中,特定的奇偶校验位仅用于校正单个的逻辑页面。这是可合理地预期的——由于最初仅使用单个逻辑页面的数据位来计算各奇偶校验位,该奇偶校验位不代表关于其它逻辑页面中的数据位的任何信息,并因此应仅被用于校正基于其来计算它的该单个逻辑页面。在本发明的方法中不是这种情况——一些奇偶校验位是基于来自多个逻辑页面的数据而计算的,且因此那些位可在实现那些多个逻辑页面的校正中被直接使用。
Ban等人的美国专利申请系列No.10/867645应对相关的问题。根据Ban等人的方法,如所有其它的现有技术中一样,各逻辑页面具有仅基于相应逻辑页面的数据位而计算的其自身的ECC奇偶校验位。但是,Ban等人与其它现有技术的不同在于,允许同一组单元的校正的逻辑页面以有限的方式相互影响。如果在某个位页面的位中检测到和校正了错误,那么一些校正可被应用于同一单元的更有效(significant)的位页面的相应的位。但是,它没有公开本发明的方法。在Ban等人的方法中,奇偶校验位对于多个逻辑页面的ECC计算没有直接的影响,对于另一逻辑页面的仅有的有限的影响是间接的,是通过在ECC计算的范围之外的高级物理考虑。
本发明的方法的另一含意在于,存储在单元组中的位,包括数据位和奇偶校验位,均作为所使用的ECC方案的一个长代码字而被处理。使用什么特定的ECC方案无关紧要;从ECC的观点看,要紧的是位于同一组单元中的所有逻辑页面作为一个实体一起被处理。如上面解释的那样,除了提供最佳的位错误率以外,该方法还以奇偶校验位与数据位的减小的比率提供更有效的错误校正。
本发明的方法的范围还包括更一般化的情况,其中,只有位于同一组单元中的逻辑页面的子集作为共同的代码字被处理。例如,在每单元四位的MBC闪存中,可以将逻辑页面分组为各两个逻辑页面的两个组、或三个逻辑页面的一个组加上一个单个逻辑页面、或者甚至两个逻辑页面的一个组加上两个单个逻辑页面。本发明的方法应被理解为包括任意情况,其中,共享相同单元的至少两个逻辑页面被ECC方案作为单个代码字而一起处理,而不管如何处理共享相同单元的其它逻辑页面。
现在返回附图,图2A和图2B作为表格示出在应用本发明的方法前后的MBC闪存的(用于解释的目的,非常小的)块。在图2A和图2B中的每一个中,表格的各列代表块的一个单元,各个行代表位编码的有效性:顶行代表最高有效位(the most significant bit),第二行代表次最高有效位,第三行代表次最低有效位,最后一行代表最低有效位(the least significant bit)。各表格的各条目表示由相应存储器单元中的相应有效性的位所代表的位的源逻辑页面。存储数据位的存储器单元未加阴影。存储ECC位的存储器单元被加阴影。
最初,各具有十个位的数据的四个逻辑页面被存储在存储器块中。第一逻辑页面的位被编码为数据单元的最低有效位。第二逻辑页面的位被编码为数据单元的次最低有效位。第三逻辑页面的位被编码为数据单元的次最高有效位。第四逻辑页面的位被编码为数据单元的最高有效位。例如,如果第一逻辑页面的第一位是“1”,如果第二逻辑页面的第一位是“0”,如果第三逻辑页面的第一位是“0”,并且如果第四逻辑页面的第一位是“1”,那么,使用图1D所示的位编码方案,第一(最左边)单元被编程为从左边的第五电压带。此时,ECC单元仍未被编程。
然后,使用本发明的方法以将数据位变成两个28位代码字,一个代码字用于第一和第二逻辑页面,另一代码字用于第三和第四逻辑页面。如图2B所示,第一代码字的ECC位在ECC单元的最低有效位和次最低有效位中被编码,并且,第二代码字的ECC位在ECC单元的次最高有效位和最高有效位中被编码。
到现在为止已在“系统的”错误校正方案的背景中给出了本发明。系统错误校正编码的特征在于,可以通过编码过程来保存并且可在所存储的位中识别原始的数据位。换句话说,错误校正机构获取原始的数据位,将一些奇偶校验位添加到它们上,并且存储数据位和奇偶校验位。然后,当读取所存储的位时,数据位和奇偶校验位均被读取,并且,奇偶校验位使得能够校正所读取的数据位中的错误,由此产生原始的数据位。
但是,本发明同样可应用于非系统的错误校正代码。在这样的代码中,原始数据位不被保存并且不被存储。而是,编码过程将原始数据位转变成作为所存储的位的更大的一组位(这里称为“被保护的数据位”)。与系统的错误代码的数据位和相关ECC奇偶校验位的联合类似,非系统的错误代码的被保护的数据位在这里被视为与原始数据位对应的代码字。当读取所存储的被保护的数据位时,即使在被保护的数据位中存在错误,也重新产生原始数据位。非系统的代码的限定特性是,在特定的原始数据位和特定的所存储的位之间没有直接的对应关系。原始数据位“散布”于多个所存储的位中,并且只有那些多个所存储的位的组合表明原始位的值。
图3A和图3B与图2A和图2B对应,但是使用非系统的ECC而不是系统的ECC。图3A与图2A相同。图3B示出,在本发明的非系统的ECC编码之后,在数据位和ECC位之间不能作出有意义的区别。第一代码字的所有的位在数据单元和ECC单元的最低有效位和次最低有效位中被编码,并且,第二代码字的所有的位在数据单元和ECC单元的次最高有效位和最高有效位中被编码。
图4是与主机30耦接的本发明的闪存装置20的高级框图。图4是由Ban的美国专利No.5404485的图1改编的,该专利出于所有的目的通过参考而被加入,如同在这里被全面阐述那样。闪存装置20包括闪存24、控制器22和随机存取存储器(RAM)26。与美国5404485的“闪存控制14”对应的控制器22如在美国5404485中说明的那样借助于RAM 26来管理闪存24。控制器22还用上述的错误校正以闪存24的每个单元两个或更多个位的方式对数据进行编码,
图5是本发明的替代性数据存储器系统50的高级部分框图。数据存储器系统50包括处理器52和四个存储器装置:RAM 54、引导(boot)ROM 56、大容量存储器装置(硬盘)58和闪存装置40,它们均通过共用的总线60通信。与闪存装置20类似,闪存装置40包含闪存42。与闪存装置20不同,闪存装置40缺少其自身的控制器和RAM。而是,处理器52通过执行以例如Kfar Saba,Israel的M-Systems FlashDisk Pioneers Ltd.的TrueFFSTM驱动器的方式实施美国5404485的方法的软件驱动器而仿真控制器22,并且其还如上面说明的那样以闪存42的每个单元两个或更多个位的方式对数据进行编码。闪存装置40还包括总线接口44以使得处理器52能够与闪存42通信。
处理器52执行以管理闪存42的软件驱动器的代码被存储在大容量存储器装置58中,并被转移至RAM 54用于执行。大容量存储器装置58因此是计算机可读代码存储介质的例子,在其中嵌入用于根据本发明的原理管理闪存42的计算机可读代码。
虽然已针对有限数量的实施例说明了本发明,但可以理解,可以作出本发明的许多改变、修改和其它的应用。

Claims (22)

1.一种在每单元多位(MBC)的闪存中存储数据的方法,包括以下步骤:
(a)对于数据位的多个逻辑页面计算错误校正奇偶校验位,其中,所述错误校正奇偶校验位中的至少一个共同应用于所述逻辑页面中的至少两个;和
(b)用所述数据位和所述错误校正奇偶校验位对MBC闪存进行编程,用来自应用有所述至少一个共同的错误校正奇偶校验位的所述至少两个逻辑页面中的多于一个逻辑页面的数据位对MBC闪存的至少一个单元进行编程。
2.根据权利要求1的方法,其中,所有的所述错误校正奇偶校验位应用于所有的所述逻辑页面。
3.根据权利要求1的方法,其中,所述多个包含多于两个的所述逻辑页面,并且,所述计算包含对于至少两个所述逻辑页面但对于少于所有的所述逻辑页面共同地计算所述错误校正奇偶校验位。
4.根据权利要求1的方法,其中,用如在所述多个逻辑页面中存在的逻辑页面那样多的所述位对用所述位编程的所述闪存的各单元进行编程。
5.一种恢复数据位的方法,给定用多个逻辑页面的数据位并用对所述数据位计算的错误校正奇偶校验位编程的每单元多位(MBC)的闪存,所述错误校正奇偶校验位中的至少一个共同应用于所述逻辑页面中的至少两个,并且,用来自应用有所述至少一个共同的错误校正位的所述至少两个逻辑页面中的多于一个逻辑页面的数据位对MBC闪存的至少一个单元进行编程,该方法包括以下步骤:
(a)从MBC闪存读取:
(i)应用有所述至少一个共同的错误校正奇偶校验位的所述至少两个逻辑页面的数据位;和
(ii)应用于应用有所述至少一个共同的错误校正奇偶校验位的所述至少两个逻辑页面中的任一个逻辑页面的所述错误校正奇偶校验位;和
(b)根据从MBC闪存读取的所述错误校正奇偶校验位来校正从MBC闪存读取的所述数据位。
6.一种控制器,用于每单元多位(MBC)的闪存,该控制器操作为通过包含对于所述数据位计算错误校正奇偶校验位的步骤而在MBC闪存中存储多个逻辑页面的数据位,至少一个错误校正奇偶校验位共同应用于所述逻辑页面中的至少两个,并且,来自应用有所述至少一个共同的错误校正奇偶校验位的所述至少两个逻辑页面中的多于一个逻辑页面的数据位被一起存储在MBC闪存的至少一个单元中的每一个中。
7.根据权利要求6的控制器,其中,所述控制器操作为通过包含以下内容的步骤给包含所述控制器和MBC闪存的存储器装置的主机提供所述数据位:
(a)从MBC闪存读取:
(i)应用有所述至少一个共同的错误校正奇偶校验位的所述至少两个逻辑页面的数据位;和
(ii)应用于应用有所述至少一个共同的错误校正奇偶校验位的所述至少两个逻辑页面中的任一个逻辑页面的错误校正奇偶校验位;和
(b)根据从MBC闪存读取的所述错误校正奇偶校验位来校正从MBC闪存读取的所述数据位。
8.一种存储器装置,包括:
(a)根据权利要求6的控制器;和
(b)由权利要求6的控制器控制的MBC闪存。
9.一种在计算机可读存储介质上实施计算机可读代码的计算机可读存储介质,该计算机可读代码用于管理每单元多位(MBC)的闪存,该计算机可读代码包括:
(a)用于对于要被存储在MBC闪存中的数据位的多个逻辑页面计算错误校正奇偶校验位的程序代码,其中,所述错误校正奇偶校验位中的至少一个共同应用于所述逻辑页面中的至少两个;和
(b)用于用所述数据位和所述错误校正奇偶校验位对MBC闪存进行编程的程序代码,用来自应用有所述至少一个共同的错误校正奇偶校验位的所述至少两个逻辑页面中的多于一个逻辑页面的数据位对MBC闪存的至少一个单元进行编程。
10.一种在计算机可读存储介质上实施计算机可读代码的计算机可读存储介质,给定用多个逻辑页面的数据位并用对所述数据位计算的错误校正奇偶校验位编程的每单元多位(MBC)的闪存,所述错误校正奇偶校验位中的至少一个共同应用于所述逻辑页面中的至少两个,并且,用来自应用有所述至少一个共同的错误校正位的所述至少两个逻辑页面中的多于一个逻辑页面的数据位对MBC闪存的至少一个单元进行编程,该计算机可读代码包括:
(a)用于从MBC闪存读取以下内容的程序代码:
(i)应用有所述至少一个共同的错误校正奇偶校验位的所述至少两个逻辑页面的数据位;和
(ii)应用于应用有所述至少一个共同的错误校正奇偶校验位的所述至少两个逻辑页面中的任一个逻辑页面的所述错误校正奇偶校验位;和
(b)用于根据从MBC闪存读取的所述错误校正奇偶校验位来校正从MBC闪存读取的所述数据位的程序代码。
11.一种在每单元多位(MBC)的闪存中存储数据的方法,包括以下步骤:
(a)对于数据位的多个逻辑页面中的至少两个计算共同的错误校正代码(ECC)代码字;和
(b)用所述共同的ECC代码字对MBC闪存进行编程。
12.根据权利要求11的方法,其中,所述ECC是系统的
13.根据权利要求11的方法,其中,所述ECC是非系统的。
14.根据权利要求11的方法,其中,所述多个包含多于两个的所述逻辑页面,并且,所述计算用于少于所有的所述逻辑页面。
15.根据权利要求11的方法,其中,用如对其计算所述共同的ECC代码字的所述逻辑页面那样多的所述共同的ECC代码字的位对用所述共同的ECC代码字来编程的MBC闪存的各单元进行编程。
16.根据权利要求11的方法,其中,用如所述多个逻辑页面那样多的位对用所述共同的ECC代码字来编程的所述闪存的各单元进行编程。
17.一种恢复数据位的方法,给定用对于数据位的多个逻辑页面中的至少两个计算的共同的错误校正代码(ECC)代码字编程的每单元多位(MBC)的闪存,该方法包括以下步骤:
(a)从闪存读取所述共同的ECC代码字;和
(b)从于闪存读取的所述共同的ECC代码字恢复从其计算所述共同的ECC代码字的所述至少两个逻辑页面的数据位。
18.一种控制器,用于每单元多位(MBC)的闪存,该控制器操作为通过包含对于所述逻辑页面中的至少两个计算共同的错误校正代码(ECC)代码字的步骤而在MBC闪存中存储多个逻辑页面的数据位。
19.根据权利要求18的控制器,其中,所述控制器操作为通过包含以下内容的步骤给包含所述控制器和MBC闪存的存储器装置的主机提供数据位:
(a)从MBC闪存读取所述共同的ECC代码字;和
(b)从于MBC闪存读取的所述共同的ECC代码字恢复从其计算所述共同的ECC代码字的所述至少两个逻辑页面的数据位。
20.一种存储器装置,包括:
(a)根据权利要求18的控制器;和
(b)由权利要求18的控制器控制的MBC闪存。
21.一种在计算机可读存储介质上实施计算机可读代码的计算机可读存储介质,该计算机可读代码用于管理每单元多位(MBC)的闪存,该计算机可读代码包括:
(a)用于对于要被存储在MBC闪存中的数据位的多个逻辑页面中的至少两个计算共同的错误校正代码(ECC)代码字的程序代码;和
(b)用于用所述共同的ECC代码字对MBC闪存进行编程的程序代码。
22.一种在计算机可读存储介质上实施计算机可读代码的计算机可读存储介质,给定用对于数据位的多个逻辑页面中的至少两个计算的共同的错误校正代码(ECC)代码字编程的每单元多位(MBC)的闪存,该计算机可读代码包括:
(a)用于从闪存读取所述共同的ECC代码字的程序代码;和
(b)用于从于闪存读取的所述共同的ECC代码字恢复从其计算所述共同的ECC代码字的所述至少两个逻辑页面的数据位的程序代码。
CN2006800445051A 2005-10-13 2006-10-04 Mbc闪存中的错误校正的方法 Expired - Fee Related CN101536109B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US72586205P 2005-10-13 2005-10-13
US60/725,862 2005-10-13
US11/329,075 US7681109B2 (en) 2005-10-13 2006-01-11 Method of error correction in MBC flash memory
US11/329,075 2006-01-11
PCT/IL2006/001159 WO2007043042A2 (en) 2005-10-13 2006-10-04 Method of error correction in mbc flash memory

Publications (2)

Publication Number Publication Date
CN101536109A true CN101536109A (zh) 2009-09-16
CN101536109B CN101536109B (zh) 2013-12-11

Family

ID=37943213

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800445051A Expired - Fee Related CN101536109B (zh) 2005-10-13 2006-10-04 Mbc闪存中的错误校正的方法

Country Status (8)

Country Link
US (2) US7681109B2 (zh)
EP (2) EP2287740B1 (zh)
JP (1) JP5113066B2 (zh)
KR (1) KR100987632B1 (zh)
CN (1) CN101536109B (zh)
AT (1) ATE489675T1 (zh)
DE (1) DE602006018497D1 (zh)
WO (1) WO2007043042A2 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102208212A (zh) * 2010-03-30 2011-10-05 群联电子股份有限公司 错误校正方法、存储器控制器与存储器储存系统
CN103392206A (zh) * 2010-12-23 2013-11-13 桑迪士克以色列有限公司 以非均匀布置的参考阈值电压读取软位的非易失性多位存储器和方法
CN103415844A (zh) * 2011-01-18 2013-11-27 Lsi公司 高级冗余信息计算
CN107608819A (zh) * 2013-03-18 2018-01-19 慧荣科技股份有限公司 错误修正方法以及存储器装置
CN108388483A (zh) * 2018-03-10 2018-08-10 北京联想核芯科技有限公司 配置码率的方法、装置及计算机可读存储介质
CN108572786A (zh) * 2017-03-09 2018-09-25 上海宝存信息科技有限公司 避免读取扰动的数据搬移方法以及使用该方法的装置
CN112262436A (zh) * 2018-05-08 2021-01-22 美光科技公司 读取错误恢复

Families Citing this family (221)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006302345A (ja) * 2005-04-15 2006-11-02 Sony Corp データ処理装置、データ再生装置、データ処理方法及びプログラム
WO2007023674A1 (ja) * 2005-08-22 2007-03-01 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
US7681109B2 (en) * 2005-10-13 2010-03-16 Ramot At Tel Aviv University Ltd. Method of error correction in MBC flash memory
US7526715B2 (en) * 2005-10-17 2009-04-28 Ramot At Tel Aviv University Ltd. Probabilistic error correction in multi-bit-per-cell flash memory
US8848442B2 (en) * 2006-03-06 2014-09-30 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US7388781B2 (en) 2006-03-06 2008-06-17 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US8239735B2 (en) * 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
US7697326B2 (en) * 2006-05-12 2010-04-13 Anobit Technologies Ltd. Reducing programming error in memory devices
CN103258572B (zh) 2006-05-12 2016-12-07 苹果公司 存储设备中的失真估计和消除
US8156403B2 (en) 2006-05-12 2012-04-10 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
US7840875B2 (en) * 2006-05-15 2010-11-23 Sandisk Corporation Convolutional coding methods for nonvolatile memory
WO2008026203A2 (en) 2006-08-27 2008-03-06 Anobit Technologies Estimation of non-linear distortion in memory devices
US7805663B2 (en) * 2006-09-28 2010-09-28 Sandisk Corporation Methods of adapting operation of nonvolatile memory
US7818653B2 (en) 2006-09-28 2010-10-19 Sandisk Corporation Methods of soft-input soft-output decoding for nonvolatile memory
US7904783B2 (en) * 2006-09-28 2011-03-08 Sandisk Corporation Soft-input soft-output decoder for nonvolatile memory
JP2008090433A (ja) * 2006-09-29 2008-04-17 Toshiba Corp メモリコントローラ、メモリシステム及びデータ転送方法
CN101601094B (zh) 2006-10-30 2013-03-27 苹果公司 使用多个门限读取存储单元的方法
US7975192B2 (en) 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US8001441B2 (en) * 2006-11-03 2011-08-16 Sandisk Technologies Inc. Nonvolatile memory with modulated error correction coding
US7904788B2 (en) * 2006-11-03 2011-03-08 Sandisk Corporation Methods of varying read threshold voltage in nonvolatile memory
US7904780B2 (en) * 2006-11-03 2011-03-08 Sandisk Corporation Methods of modulating error correction coding
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US7900102B2 (en) * 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US7593263B2 (en) * 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
KR100872186B1 (ko) * 2007-01-04 2008-12-09 삼성전자주식회사 상이한 에러 제어 스킴을 갖는 하이브리드 플래시 메모리장치 및 그것을 포함한 메모리 시스템
US7751240B2 (en) 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
KR100888695B1 (ko) 2007-02-27 2009-03-16 삼성전자주식회사 과표본화 읽기 동작을 수행하는 플래시 메모리 장치 및그것의 데이터 독출 방법
CN101715595A (zh) 2007-03-12 2010-05-26 爱诺彼得技术有限责任公司 存储器单元读取阈的自适应估计
US7966550B2 (en) 2007-03-31 2011-06-21 Sandisk Technologies Inc. Soft bit data transmission for error correction control in non-volatile memory
US7971127B2 (en) * 2007-03-31 2011-06-28 Sandisk Technologies Inc. Guided simulated annealing in non-volatile memory error correction control
US7975209B2 (en) * 2007-03-31 2011-07-05 Sandisk Technologies Inc. Non-volatile memory with guided simulated annealing error correction control
US7966546B2 (en) * 2007-03-31 2011-06-21 Sandisk Technologies Inc. Non-volatile memory with soft bit data transmission for error correction control
US8001320B2 (en) * 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
WO2008139441A2 (en) 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
US8234545B2 (en) * 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US8073648B2 (en) * 2007-05-14 2011-12-06 Sandisk Il Ltd. Measuring threshold voltage distribution in memory using an aggregate characteristic
US7747903B2 (en) 2007-07-09 2010-06-29 Micron Technology, Inc. Error correction for memory
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US7545673B2 (en) * 2007-09-25 2009-06-09 Sandisk Il Ltd. Using MLC flash as SLC by writing dummy data
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
US8527819B2 (en) 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
US8068360B2 (en) * 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US8270246B2 (en) 2007-11-13 2012-09-18 Apple Inc. Optimized selection of memory chips in multi-chips memory devices
US7613045B2 (en) * 2007-11-26 2009-11-03 Sandisk Il, Ltd. Operation sequence and commands for measuring threshold voltage distribution in memory
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) * 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
JP5150245B2 (ja) * 2007-12-27 2013-02-20 株式会社東芝 半導体記憶装置
US8301912B2 (en) 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation
KR101386489B1 (ko) * 2008-01-14 2014-04-21 삼성전자주식회사 메모리 장치 및 멀티 비트 프로그래밍 방법
US8156398B2 (en) * 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US8266495B2 (en) 2008-02-20 2012-09-11 Marvell World Trade Ltd. Systems and methods for performing concatenated error correction
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) * 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
EP2592551A3 (en) 2008-03-11 2013-08-28 Agere System Inc. Methods and apparatus for storing data in a multi-level cell flash memory device with cross-page sectors, multi-page coding and per-page coding
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8059457B2 (en) 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US8059455B2 (en) * 2008-05-09 2011-11-15 Sandisk Il Ltd. Partial scrambling to reduce correlation
US7729166B2 (en) 2008-07-02 2010-06-01 Mosaid Technologies Incorporated Multiple-bit per cell (MBC) non-volatile memory apparatus and system having polarity control and method of programming same
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US8498151B1 (en) 2008-08-05 2013-07-30 Apple Inc. Data storage in analog memory cells using modified pass voltages
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
KR101541736B1 (ko) * 2008-09-22 2015-08-04 삼성전자주식회사 멀티-레벨 셀 플래시 메모리 장치에서의 lsb 페이지 복구 방법
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8261159B1 (en) 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for memory devices
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
CO6170067A1 (es) * 2008-12-12 2010-06-18 Ecopetrol Sa Unidad de drenaje auto-sellante para separacion de fluidos inmiscibles de diferente densidad
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8174857B1 (en) 2008-12-31 2012-05-08 Anobit Technologies Ltd. Efficient readout schemes for analog memory cell devices using multiple read threshold sets
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
KR20100098969A (ko) * 2009-03-02 2010-09-10 삼성전자주식회사 에러 정정 코드들의 신뢰성을 향상시킬 수 반도체 장치, 이를 포함하는 반도체 시스템, 및 에러 정정 코드 처리 방법
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
TWI508089B (zh) * 2009-06-29 2015-11-11 A Data Technology Co Ltd 電子儲存裝置及其資料修復方法
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
EP2473999A1 (en) 2009-08-31 2012-07-11 SanDisk IL Ltd. Preloading data into a flash storage device
US8074013B2 (en) 2009-09-21 2011-12-06 Skymedi Corporation Uniform coding system for a flash memory
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
EP2513795B1 (en) 2009-12-16 2014-03-12 SanDisk IL Ltd Auxiliary parity bits for data written in multi-level cells
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8572311B1 (en) 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
MX2012008049A (es) * 2010-01-12 2012-08-01 Hoffmann La Roche Compuestos heterociclicos triciclicos, composiciones y metodos de uso de los mismos,.
WO2011092532A1 (en) 2010-01-28 2011-08-04 Sandisk Il Ltd. Sliding-window error correction
KR101598382B1 (ko) * 2010-03-02 2016-03-02 삼성전자주식회사 상태 기반 불휘발성 메모리 장치 및 그것의 에러 정정 방법
EP2545554A4 (en) 2010-03-12 2015-03-11 Lsi Corp LDPC CLEARANCE DECODING FOR FLASH MEMORY
US8429500B2 (en) 2010-03-31 2013-04-23 Lsi Corporation Methods and apparatus for computing a probability value of a received value in communication or storage systems
US8775913B2 (en) 2010-03-31 2014-07-08 Lsi Corporation Methods and apparatus for computing soft data or log likelihood ratios for received values in communication or storage systems
US8504885B2 (en) 2010-03-31 2013-08-06 Lsi Corporation Methods and apparatus for approximating a probability density function or distribution for a received value in communication or storage systems
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8839053B2 (en) 2010-05-27 2014-09-16 Microsoft Corporation Error correcting pointers for non-volatile storage
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8645794B1 (en) 2010-07-31 2014-02-04 Apple Inc. Data storage in analog memory cells using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US8560919B2 (en) 2010-10-22 2013-10-15 Sandisk Technologies Inc. System and method of interleaving data according to an adjustable parameter
US9727414B2 (en) 2010-12-01 2017-08-08 Seagate Technology Llc Fractional redundant array of silicon independent elements
JP5980798B2 (ja) 2010-12-01 2016-08-31 シーゲイト テクノロジー エルエルシーSeagate Technology LLC 独立したシリコン素子の動的な上位レベルの冗長モード管理
US8719663B2 (en) 2010-12-12 2014-05-06 Lsi Corporation Cross-decoding for non-volatile storage
US8498152B2 (en) 2010-12-23 2013-07-30 Sandisk Il Ltd. Non-volatile memory and methods with soft-bit reads while reading hard bits with compensation for coupling
US8782495B2 (en) 2010-12-23 2014-07-15 Sandisk Il Ltd Non-volatile memory and methods with asymmetric soft read points around hard read points
US9292377B2 (en) 2011-01-04 2016-03-22 Seagate Technology Llc Detection and decoding in flash memories using correlation of neighboring bits and probability based reliability values
US9898361B2 (en) 2011-01-04 2018-02-20 Seagate Technology Llc Multi-tier detection and decoding in flash memories
KR20120086939A (ko) * 2011-01-27 2012-08-06 에스케이하이닉스 주식회사 반도체 시스템 및 데이터 프로그래밍 방법
US8825945B2 (en) 2011-01-31 2014-09-02 Marvell World Trade Ltd. Mapping different portions of data to different pages of multi-level non-volatile memory
US9502117B2 (en) 2011-03-14 2016-11-22 Seagate Technology Llc Cell-level statistics collection for detection and decoding in flash memories
US20130024735A1 (en) * 2011-07-19 2013-01-24 Ocz Technology Group Inc. Solid-state memory-based storage method and device with low error rate
US9032269B2 (en) 2011-07-22 2015-05-12 Sandisk Technologies Inc. Systems and methods of storing data
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
JP2013089082A (ja) 2011-10-19 2013-05-13 Toshiba Corp メモリコントローラ、半導体記憶システムおよびメモリ制御方法
US9026887B2 (en) 2012-03-15 2015-05-05 Micron Technology, Inc. Physical page, logical page, and codeword correspondence
US8839073B2 (en) 2012-05-04 2014-09-16 Lsi Corporation Zero-one balance management in a solid-state disk controller
US8856611B2 (en) 2012-08-04 2014-10-07 Lsi Corporation Soft-decision compensation for flash channel variation
US20140026003A1 (en) * 2012-07-23 2014-01-23 Zhengang Chen Flash memory read error rate reduction
US8924820B2 (en) * 2012-07-27 2014-12-30 Kabushiki Kaisha Toshiba Memory controller, semiconductor memory system, and memory control method
US8856431B2 (en) 2012-08-02 2014-10-07 Lsi Corporation Mixed granularity higher-level redundancy for non-volatile memory
US9239754B2 (en) 2012-08-04 2016-01-19 Seagate Technology Llc Single read based soft-decision decoding of non-volatile memory
US9009566B2 (en) * 2012-09-12 2015-04-14 Macronix International Co., Ltd. Outputting information of ECC corrected bits
US9361167B2 (en) 2012-10-24 2016-06-07 SanDisk Technologies, Inc. Bit error rate estimation for wear leveling and for block selection based on data type
US9032244B2 (en) 2012-11-16 2015-05-12 Microsoft Technology Licensing, Llc Memory segment remapping to address fragmentation
US9076545B2 (en) 2013-01-17 2015-07-07 Sandisk Tecnologies Inc. Dynamic adjustment of read voltage levels based on memory cell threshold voltage distribution
US9619318B2 (en) * 2013-02-22 2017-04-11 Intel Deutschland Gmbh Memory circuits, method for accessing a memory and method for repairing a memory
TWI512732B (zh) * 2013-08-30 2015-12-11 Phison Electronics Corp 解碼方法、記憶體儲存裝置與非揮發性記憶體模組
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9406377B2 (en) 2014-12-08 2016-08-02 Sandisk Technologies Llc Rewritable multibit non-volatile memory with soft decode optimization
WO2016116930A1 (en) * 2015-01-21 2016-07-28 Technion Research & Development Foundation Limited Reusable memory devices with wom codes
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US9946594B2 (en) 2015-08-19 2018-04-17 International Business Machines Corporation Validation bits and offsets to represent logical pages split between data containers
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US10445199B2 (en) * 2016-12-22 2019-10-15 Western Digital Technologies, Inc. Bad page management in storage devices
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11342044B2 (en) 2019-05-28 2022-05-24 Nuvoton Technology Corporation System and method for prioritization of bit error correction attempts
US11475170B2 (en) 2019-05-28 2022-10-18 Nuvoton Technology Corporation System and method for correction of memory errors
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11481271B2 (en) 2021-03-16 2022-10-25 Western Digital Technologies, Inc. Storage system and method for using subcodes and convolutional-based LDPC interleaved coding schemes with read threshold calibration support
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5603001A (en) * 1994-05-09 1997-02-11 Kabushiki Kaisha Toshiba Semiconductor disk system having a plurality of flash memories
US5903495A (en) * 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
CN1256005A (zh) * 1998-01-21 2000-06-07 索尼株式会社 编码方法和存储装置
US20040057316A1 (en) * 2002-09-25 2004-03-25 Renesas Technology Corp. Nonvolatile memory
US20050213393A1 (en) * 2004-03-14 2005-09-29 M-Systems Flash Disk Pioneers, Ltd. States encoding in multi-bit flash cells for optimizing error rate

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3580705A (en) 1968-10-02 1971-05-25 Atomic Energy Commission Selective stripping of plutonium from organic extracts
US4713816A (en) 1986-02-25 1987-12-15 U.S. Philips Corporation Three module memory system constructed with symbol-wide memory chips and having an error protection feature, each symbol consisting of 2I+1 bits
US4802170A (en) * 1987-04-29 1989-01-31 Matrox Electronics Systems Limited Error disbursing format for digital information and method for organizing same
NL8701996A (nl) * 1987-08-26 1989-03-16 Philips Nv Halfgeleidergeheugen voorzien van een medegeintegreerde foutkorrektie-inrichting, en geintegreerde schakeling voorzien van zo een halfgeleidergeheugen.
US5268870A (en) 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
EP0617363B1 (en) * 1989-04-13 2000-01-26 SanDisk Corporation Defective cell substitution in EEprom array
US5438573A (en) * 1991-09-13 1995-08-01 Sundisk Corporation Flash EEPROM array data and header file structure
JP3095542B2 (ja) 1992-09-11 2000-10-03 株式会社東芝 ポリシラン配向膜の製造方法
JPH06240527A (ja) 1993-02-15 1994-08-30 Unitika Ltd 高伸縮性スパンライク先染糸の製造方法
US5459850A (en) * 1993-02-19 1995-10-17 Conner Peripherals, Inc. Flash solid state drive that emulates a disk drive and stores variable length and fixed lenth data blocks
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
JPH07302175A (ja) * 1994-05-09 1995-11-14 Toshiba Corp 半導体ディスク装置
US5673224A (en) * 1996-02-23 1997-09-30 Micron Quantum Devices, Inc. Segmented non-volatile memory array with multiple sources with improved word line control circuitry
JP3200012B2 (ja) * 1996-04-19 2001-08-20 株式会社東芝 記憶システム
JPH109958A (ja) 1996-04-23 1998-01-16 Horiba Ltd 低放射率測定用非接触温度計のアダプター
JP4079506B2 (ja) * 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
JPH11212876A (ja) * 1998-01-21 1999-08-06 Sony Corp 符号化方法およびそれを利用したメモリ装置
US6366713B1 (en) * 1998-09-04 2002-04-02 Tellabs Operations, Inc. Strictly non-blocking optical switch core having optimized switching architecture based on reciprocity conditions
US6145069A (en) * 1999-01-29 2000-11-07 Interactive Silicon, Inc. Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices
US6041001A (en) * 1999-02-25 2000-03-21 Lexar Media, Inc. Method of increasing data reliability of a flash memory device without compromising compatibility
US6163405A (en) 1999-04-15 2000-12-19 Industrial Technology Research Institute Structure of a reflection-type light diffuser in a LCD
US6532556B1 (en) * 2000-01-27 2003-03-11 Multi Level Memory Technology Data management for multi-bit-per-cell memories
US6363008B1 (en) * 2000-02-17 2002-03-26 Multi Level Memory Technology Multi-bit-cell non-volatile memory with maximized data capacity
US6732332B1 (en) * 2000-08-28 2004-05-04 Und Aerospace Foundation Automated web site creation system
JP4641338B2 (ja) * 2000-08-29 2011-03-02 ルネサスエレクトロニクス株式会社 不揮発性半導体記憶装置及びシステム
US6725342B1 (en) * 2000-09-26 2004-04-20 Intel Corporation Non-volatile mass storage cache coherency apparatus
JP4323707B2 (ja) * 2000-10-25 2009-09-02 富士通マイクロエレクトロニクス株式会社 フラッシュメモリの欠陥管理方法
US6785767B2 (en) * 2000-12-26 2004-08-31 Intel Corporation Hybrid mass storage system and method with two different types of storage medium
US6587372B2 (en) * 2001-01-11 2003-07-01 Micron Technology, Inc. Memory device with multi-level storage cells and apparatuses, systems and methods including same
US6466476B1 (en) * 2001-01-18 2002-10-15 Multi Level Memory Technology Data coding for multi-bit-per-cell memories having variable numbers of bits per memory cell
JP3631463B2 (ja) 2001-12-27 2005-03-23 株式会社東芝 不揮発性半導体記憶装置
US6990623B2 (en) * 2001-05-16 2006-01-24 Fujitsu Limited Method for error detection/correction of multilevel cell memory and multilevel cell memory having error detection/correction function
JP2003036693A (ja) * 2001-05-16 2003-02-07 Fujitsu Ltd 多値半導体メモリの誤り検出・訂正方法および誤り検出・訂正機能を有する多値半導体メモリ
US6522580B2 (en) 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
JP4437519B2 (ja) * 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
US7219271B2 (en) * 2001-12-14 2007-05-15 Sandisk 3D Llc Memory device and method for redundancy/self-repair
US7171594B2 (en) * 2002-03-06 2007-01-30 Hewlett-Packard Development Company, L.P. Pausing a transfer of data
JP4204982B2 (ja) * 2002-04-04 2009-01-07 シャープ株式会社 半導体レーザ素子
US6791880B1 (en) * 2003-05-06 2004-09-14 Fasl, Llc Non-volatile memory read circuit with end of life simulation
KR20050020650A (ko) * 2003-08-18 2005-03-04 소니 가부시키가이샤 데이터 레코딩/재생 디바이스, 데이터 레코딩/재생 방법,프로그램, 및 레코딩 매체
JP2005078721A (ja) * 2003-09-01 2005-03-24 Nippon Telegr & Teleph Corp <Ntt> 誤り訂正方法およびメモリ回路
JP4731326B2 (ja) 2003-10-30 2011-07-20 パナソニック株式会社 表示装置、表示方法、プログラム、及び記録媒体
US7322002B2 (en) * 2004-05-26 2008-01-22 Micron Technology, Inc. Erasure pointer error correction
US7277336B2 (en) * 2004-12-28 2007-10-02 Sandisk 3D Llc Method and apparatus for improving yield in semiconductor devices by guaranteeing health of redundancy information
US7681109B2 (en) * 2005-10-13 2010-03-16 Ramot At Tel Aviv University Ltd. Method of error correction in MBC flash memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5603001A (en) * 1994-05-09 1997-02-11 Kabushiki Kaisha Toshiba Semiconductor disk system having a plurality of flash memories
US5903495A (en) * 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
CN1256005A (zh) * 1998-01-21 2000-06-07 索尼株式会社 编码方法和存储装置
US20040057316A1 (en) * 2002-09-25 2004-03-25 Renesas Technology Corp. Nonvolatile memory
US20050213393A1 (en) * 2004-03-14 2005-09-29 M-Systems Flash Disk Pioneers, Ltd. States encoding in multi-bit flash cells for optimizing error rate

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102208212A (zh) * 2010-03-30 2011-10-05 群联电子股份有限公司 错误校正方法、存储器控制器与存储器储存系统
CN103392206A (zh) * 2010-12-23 2013-11-13 桑迪士克以色列有限公司 以非均匀布置的参考阈值电压读取软位的非易失性多位存储器和方法
CN103392206B (zh) * 2010-12-23 2016-07-13 桑迪士克科技股份有限公司 以非均匀布置的参考阈值电压读取软位的非易失性多位存储器和方法
CN103415844A (zh) * 2011-01-18 2013-11-27 Lsi公司 高级冗余信息计算
CN103415844B (zh) * 2011-01-18 2016-04-20 希捷科技有限公司 用于高级冗余信息计算的系统和方法
CN107608819A (zh) * 2013-03-18 2018-01-19 慧荣科技股份有限公司 错误修正方法以及存储器装置
CN107608819B (zh) * 2013-03-18 2020-10-30 慧荣科技股份有限公司 错误修正方法以及存储器装置
CN108572786A (zh) * 2017-03-09 2018-09-25 上海宝存信息科技有限公司 避免读取扰动的数据搬移方法以及使用该方法的装置
CN108572786B (zh) * 2017-03-09 2021-06-29 上海宝存信息科技有限公司 避免读取扰动的数据搬移方法以及使用该方法的装置
CN108388483A (zh) * 2018-03-10 2018-08-10 北京联想核芯科技有限公司 配置码率的方法、装置及计算机可读存储介质
CN112262436A (zh) * 2018-05-08 2021-01-22 美光科技公司 读取错误恢复

Also Published As

Publication number Publication date
EP2287740A1 (en) 2011-02-23
EP1934854A2 (en) 2008-06-25
US7681109B2 (en) 2010-03-16
WO2007043042A2 (en) 2007-04-19
US20070089034A1 (en) 2007-04-19
EP1934854A4 (en) 2009-09-30
US8261157B2 (en) 2012-09-04
EP1934854B1 (en) 2010-11-24
WO2007043042A3 (en) 2008-12-31
JP5113066B2 (ja) 2013-01-09
KR20080076902A (ko) 2008-08-20
DE602006018497D1 (de) 2011-01-05
ATE489675T1 (de) 2010-12-15
CN101536109B (zh) 2013-12-11
US20090070657A1 (en) 2009-03-12
JP2009512055A (ja) 2009-03-19
EP2287740B1 (en) 2013-01-16
KR100987632B1 (ko) 2010-10-13

Similar Documents

Publication Publication Date Title
CN101536109B (zh) Mbc闪存中的错误校正的方法
US10891187B2 (en) Memory devices having differently configured blocks of memory cells
CN101529525B (zh) 每单元多位的闪速存储器的概率错误校正
US7843732B2 (en) Methods of operating multi-bit flash memory devices and related systems
US7747903B2 (en) Error correction for memory
US20200257598A1 (en) Recovery of data failing due to impairment whose severity depends on bit-significance value
KR101541736B1 (ko) 멀티-레벨 셀 플래시 메모리 장치에서의 lsb 페이지 복구 방법
TWI407446B (zh) 記憶體裝置內錯誤更正的動態資料儲存系統及方法
DE102008003113B4 (de) ECC-Steuereinheit, Speichersystem und Verfahren zur Korrektur eines Fehlers
US20140169102A1 (en) Log-likelihood ratio and lumped log-likelihood ratio generation for data storage systems
US8498154B1 (en) Systems and methods for improving error distributions in multi-level cell memory systems
US20120144273A1 (en) Non-volatile semiconductor memory device
CN1653554A (zh) 通过使用关于所存储数据的质量的信息来增加错误校正码的效率和操作多电平存储系统
US10635524B1 (en) Soft-decision input generation for data storage systems
US9098391B2 (en) Memory system and method of operating memory system using reconstructed data
CN106297881A (zh) 非挥发性存储器的健康管理
JP2020064350A (ja) フラッシュメモリの管理方法

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: 20131211

Termination date: 20161004

CF01 Termination of patent right due to non-payment of annual fee