CN101536109B - Mbc闪存中的错误校正的方法 - Google Patents
Mbc闪存中的错误校正的方法 Download PDFInfo
- Publication number
- CN101536109B CN101536109B CN2006800445051A CN200680044505A CN101536109B CN 101536109 B CN101536109 B CN 101536109B CN 2006800445051 A CN2006800445051 A CN 2006800445051A CN 200680044505 A CN200680044505 A CN 200680044505A CN 101536109 B CN101536109 B CN 101536109B
- Authority
- CN
- China
- Prior art keywords
- lpage
- logical page
- flash memory
- coded word
- ecc
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1072—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
多个逻辑页面与相应的ECC位一起被存储在MBC闪存(42)中,MBC单元中的至少一个存储来自多于一个逻辑页面的位,并且ECC位中的至少一个应用于逻辑页面中的两个或更多个。当从存储器(42)读取页面时,使用所读取的ECC位来校正所读取的数据位。作为替代方案,共同的、系统的或非系统的ECC代码字对于逻辑页面中的两个或更多个而被计算,并代替那些逻辑页面而被存储。当读取共同的代码字时,从所读取的代码字恢复逻辑位。本发明的范围还包括相应的存储器装置(54,56,5S)、这样的存储器装置(54,56,58)的控制器以及承载有用于实施所述方法的计算机可读代码的计算机可读存储介质。
Description
技术领域
本发明涉及数字数据的错误校正(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 (12)
1.一种在每单元多位(MBC)的闪存中存储数据的方法,包括以下步骤:
(a)对于数据位的多个逻辑页面中的至少两个计算共同的错误校正代码(ECC)代码字,以使得共同的ECC代码字中的至少一个应用于所述多个逻辑页面中的至少两个;和
(b)用所述共同的ECC代码字的至少一部分对MBC闪存的多个位页面进行编程。
2.根据权利要求1的方法,其中,所述ECC是系统的。
3.根据权利要求1的方法,其中,所述ECC是非系统的。
4.根据权利要求1的方法,其中,所述多个包含多于两个的所述逻辑页面,并且,所述计算用于少于所有的所述逻辑页面。
5.根据权利要求1的方法,其中,用如对其计算所述共同的ECC代码字的所述逻辑页面那样多的所述共同的ECC代码字的位对用所述共同的ECC代码字来编程的MBC闪存的各单元进行编程。
6.根据权利要求1的方法,其中,用如所述多个逻辑页面那样多的位对用所述共同的ECC代码字来编程的所述闪存的各单元进行编程。
7.一种恢复数据位的方法,给定用对于数据位的多个逻辑页面中的至少两个计算的共同的错误校正代码(ECC)代码字编程的每单元多位(MBC)的闪存,其中计算所述共同的ECC代码字以使得所述共同的ECC代码字中的至少一个应用于所述多个逻辑页面中的至少两个,该方法包括以下步骤:
(a)从闪存读取所述共同的ECC代码字;和
(b)从于闪存读取的所述共同的ECC代码字恢复从其计算所述共同的ECC代码字的所述至少两个逻辑页面的数据位。
8.一种控制器,用于每单元多位(MBC)的闪存,该控制器操作为通过包含对于所述逻辑页面中的至少两个计算共同的错误校正代码(ECC)代码字的步骤而在MBC闪存中存储多个逻辑页面的数据位,其中计算所述共同的ECC代码字以使得所述共同的ECC代码字中的至少一个应用于所述多个逻辑页面中的至少两个。
9.根据权利要求8的控制器,其中,所述控制器操作为通过包含以下内容的步骤给包含所述控制器和MBC闪存的存储器装置的主机提供数据位:
(a)从MBC闪存读取所述共同的ECC代码字;和
(b)从于MBC闪存读取的所述共同的ECC代码字恢复从其计算所述共同的ECC代码字的所述至少两个逻辑页面的数据位。
10.一种存储器装置,包括:
(a)根据权利要求8的控制器;和
(b)由权利要求8的控制器控制的MBC闪存。
11.一种用于在每单元多位(MBC)的闪存中存储数据的设备,该设备包括:
(a)用于对于要被存储在MBC闪存中的数据位的多个逻辑页面中的至少两个计算共同的错误校正代码(ECC)代码字的装置,其中计算所述共同的ECC代码字以使得所述共同的ECC代码字中的至少一个应用于所述多个逻辑页面中的至少两个;和
(b)用于用所述共同的ECC代码字的至少一部分对MBC闪存的多个位页面进行编程的装置。
12.一种用于恢复数据位的设备,给定用对于数据位的多个逻辑页面中的至少两个计算的共同的错误校正代码(ECC)代码字编程的每单元多位(MBC)的闪存,其中计算所述共同的ECC代码字以使得所述共同的ECC代码字中的至少一个应用于所述多个逻辑页面中的至少两个,该设备包括:
(a)用于从闪存读取所述共同的ECC代码字的装置;和
(b)用于从于闪存读取的所述共同的ECC代码字恢复从其计算所述共同的ECC代码字的所述至少两个逻辑页面的数据位的装置。
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 CN101536109A (zh) | 2009-09-16 |
CN101536109B true 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) | EP1934854B1 (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) |
Families Citing this family (243)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006302345A (ja) * | 2005-04-15 | 2006-11-02 | Sony Corp | データ処理装置、データ再生装置、データ処理方法及びプログラム |
US20090100290A1 (en) * | 2005-08-22 | 2009-04-16 | Matsushita Electric Industrial Co., Ltd. | Memory controller, nonvolatile memory device, nonvolatile memory system, and data writing method |
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 |
US7388781B2 (en) | 2006-03-06 | 2008-06-17 | Sandisk Il Ltd. | Multi-bit-per-cell flash memory device with non-bijective mapping |
US8848442B2 (en) * | 2006-03-06 | 2014-09-30 | Sandisk Il Ltd. | Multi-bit-per-cell flash memory device with non-bijective mapping |
WO2007132452A2 (en) * | 2006-05-12 | 2007-11-22 | Anobit Technologies | Reducing programming error in memory devices |
WO2007132453A2 (en) | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Distortion estimation and cancellation in memory devices |
WO2007132456A2 (en) * | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Memory device with adaptive capacity |
KR101202537B1 (ko) | 2006-05-12 | 2012-11-19 | 애플 인크. | 메모리 디바이스를 위한 결합된 왜곡 추정 및 에러 보정 코딩 |
US7840875B2 (en) * | 2006-05-15 | 2010-11-23 | Sandisk Corporation | Convolutional coding methods for nonvolatile memory |
US8060806B2 (en) | 2006-08-27 | 2011-11-15 | Anobit Technologies Ltd. | Estimation of non-linear distortion in memory devices |
US7818653B2 (en) | 2006-09-28 | 2010-10-19 | Sandisk Corporation | Methods of soft-input soft-output decoding for nonvolatile memory |
US7805663B2 (en) * | 2006-09-28 | 2010-09-28 | Sandisk Corporation | Methods of adapting operation of 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 | メモリコントローラ、メモリシステム及びデータ転送方法 |
WO2008053472A2 (en) | 2006-10-30 | 2008-05-08 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US7821826B2 (en) | 2006-10-30 | 2010-10-26 | Anobit Technologies, Ltd. | Memory cell readout using successive approximation |
US7904780B2 (en) * | 2006-11-03 | 2011-03-08 | Sandisk Corporation | Methods of modulating error correction coding |
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 |
US7924648B2 (en) | 2006-11-28 | 2011-04-12 | Anobit Technologies Ltd. | Memory power and performance management |
WO2008068747A2 (en) | 2006-12-03 | 2008-06-12 | 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 | 삼성전자주식회사 | 상이한 에러 제어 스킴을 갖는 하이브리드 플래시 메모리장치 및 그것을 포함한 메모리 시스템 |
US8151166B2 (en) | 2007-01-24 | 2012-04-03 | Anobit Technologies Ltd. | Reduction of back pattern dependency effects in memory devices |
US7751240B2 (en) | 2007-01-24 | 2010-07-06 | Anobit Technologies Ltd. | Memory device with negative thresholds |
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 |
US7966546B2 (en) * | 2007-03-31 | 2011-06-21 | Sandisk Technologies Inc. | Non-volatile memory with soft bit data transmission for error correction control |
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 |
US8001320B2 (en) * | 2007-04-22 | 2011-08-16 | Anobit Technologies Ltd. | Command interface for memory devices |
US8429493B2 (en) | 2007-05-12 | 2013-04-23 | Apple Inc. | Memory device with internal signap 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 |
US8068360B2 (en) * | 2007-10-19 | 2011-11-29 | Anobit Technologies Ltd. | Reading analog memory cells using built-in multi-threshold commands |
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 |
KR101509836B1 (ko) | 2007-11-13 | 2015-04-06 | 애플 인크. | 멀티 유닛 메모리 디바이스에서의 메모리 유닛의 최적화된 선택 |
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 |
JP5150245B2 (ja) | 2007-12-27 | 2013-02-20 | 株式会社東芝 | 半導体記憶装置 |
US8085586B2 (en) | 2007-12-27 | 2011-12-27 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
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 |
EP2266036B9 (en) | 2008-03-11 | 2016-05-18 | Agere Systems, 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 |
US8713330B1 (en) | 2008-10-30 | 2014-04-29 | Apple Inc. | Data scrambling in 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 |
US8174857B1 (en) | 2008-12-31 | 2012-05-08 | Anobit Technologies Ltd. | Efficient readout schemes for analog memory cell devices using multiple read threshold sets |
US8248831B2 (en) | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
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 | 삼성전자주식회사 | 에러 정정 코드들의 신뢰성을 향상시킬 수 반도체 장치, 이를 포함하는 반도체 시스템, 및 에러 정정 코드 처리 방법 |
US8832354B2 (en) | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
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 |
TW201108235A (en) | 2009-08-31 | 2011-03-01 | 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 |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
EP2513795B1 (en) | 2009-12-16 | 2014-03-12 | SanDisk IL Ltd | Auxiliary parity bits for data written in multi-level cells |
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 |
EP2523957A1 (en) * | 2010-01-12 | 2012-11-21 | F. Hoffmann-La Roche AG | Tricyclic heterocyclic compounds, compositions and methods of use thereof |
KR20120137354A (ko) | 2010-01-28 | 2012-12-20 | 샌디스크 아이엘 엘티디 | 슬라이딩-윈도우 에러 정정 |
KR101598382B1 (ko) * | 2010-03-02 | 2016-03-02 | 삼성전자주식회사 | 상태 기반 불휘발성 메모리 장치 및 그것의 에러 정정 방법 |
EP2545554A4 (en) | 2010-03-12 | 2015-03-11 | Lsi Corp | LDPC CLEARANCE DECODING FOR FLASH MEMORY |
CN102208212B (zh) * | 2010-03-30 | 2014-10-22 | 群联电子股份有限公司 | 错误校正方法、存储器控制器与存储器储存系统 |
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 |
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 |
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 |
US9105305B2 (en) | 2010-12-01 | 2015-08-11 | Seagate Technology Llc | Dynamic higher-level redundancy mode management with independent silicon elements |
US9727414B2 (en) | 2010-12-01 | 2017-08-08 | Seagate Technology Llc | Fractional redundant array of silicon independent elements |
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 |
US8099652B1 (en) * | 2010-12-23 | 2012-01-17 | Sandisk Corporation | Non-volatile memory and methods with reading soft bits in non uniform schemes |
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 |
US8656101B2 (en) | 2011-01-18 | 2014-02-18 | Lsi Corporation | Higher-level redundancy information computation |
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 |
US9311969B2 (en) | 2011-07-22 | 2016-04-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 |
US8856611B2 (en) | 2012-08-04 | 2014-10-07 | Lsi Corporation | Soft-decision compensation for flash channel variation |
US8839073B2 (en) | 2012-05-04 | 2014-09-16 | Lsi Corporation | Zero-one balance management in a solid-state disk controller |
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 |
TWI533316B (zh) * | 2013-03-18 | 2016-05-11 | 慧榮科技股份有限公司 | 錯誤修正方法以及記憶體裝置 |
TWI512732B (zh) * | 2013-08-30 | 2015-12-11 | Phison Electronics Corp | 解碼方法、記憶體儲存裝置與非揮發性記憶體模組 |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
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 |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
US8868825B1 (en) | 2014-07-02 | 2014-10-21 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US9747229B1 (en) | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA in a non-volatile solid-state storage |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
US9811677B2 (en) | 2014-07-03 | 2017-11-07 | Pure Storage, Inc. | Secure data replication in a storage grid |
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 |
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 |
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 |
US9817576B2 (en) | 2015-05-27 | 2017-11-14 | Pure Storage, Inc. | Parallel update to NVRAM |
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 |
US11269884B2 (en) | 2015-09-04 | 2022-03-08 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
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 |
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 |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
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 |
US10481798B2 (en) | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
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 |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity NAND |
CN108572786B (zh) * | 2017-03-09 | 2021-06-29 | 上海宝存信息科技有限公司 | 避免读取扰动的数据搬移方法以及使用该方法的装置 |
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 |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US11024390B1 (en) | 2017-10-31 | 2021-06-01 | Pure Storage, Inc. | Overlapping RAID groups |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
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 |
CN108388483A (zh) * | 2018-03-10 | 2018-08-10 | 北京联想核芯科技有限公司 | 配置码率的方法、装置及计算机可读存储介质 |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US11314425B2 (en) * | 2018-05-08 | 2022-04-26 | Micron Technology, Inc. | Read error recovery |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US12067274B2 (en) | 2018-09-06 | 2024-08-20 | Pure Storage, Inc. | Writing segments and erase blocks based on ordering |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US10976947B2 (en) | 2018-10-26 | 2021-04-13 | Pure Storage, Inc. | Dynamically selecting segment heights in a heterogeneous RAID group |
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 |
US11475170B2 (en) | 2019-05-28 | 2022-10-18 | Nuvoton Technology Corporation | System and method for correction of memory errors |
US11342044B2 (en) | 2019-05-28 | 2022-05-24 | Nuvoton Technology Corporation | System and method for prioritization of bit error correction attempts |
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 |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
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 |
US12056365B2 (en) | 2020-04-24 | 2024-08-06 | Pure Storage, Inc. | Resiliency for a storage system |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US12067282B2 (en) | 2020-12-31 | 2024-08-20 | Pure Storage, Inc. | Write path selection |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US12061814B2 (en) | 2021-01-25 | 2024-08-13 | Pure Storage, Inc. | Using data similarity to select segments for garbage collection |
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 |
WO2024112355A1 (en) * | 2022-11-22 | 2024-05-30 | Silicon Storage Technology, Inc. | Grouping and error correction for non-volatile memory cells |
Citations (4)
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 |
EP0969480A1 (en) * | 1998-01-21 | 2000-01-05 | Sony Corporation | Encoding method and memory device |
US6625061B2 (en) * | 2000-10-25 | 2003-09-23 | Fujitsu Limited | Method of managing a defect in a flash memory |
US6732332B1 (en) * | 2000-08-28 | 2004-05-04 | Und Aerospace Foundation | Automated web site creation system |
Family Cites Families (46)
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 |
DE69034227T2 (de) * | 1989-04-13 | 2007-05-03 | Sandisk Corp., Sunnyvale | EEprom-System mit Blocklöschung |
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 |
US5903495A (en) * | 1996-03-18 | 1999-05-11 | Kabushiki Kaisha Toshiba | Semiconductor device and memory system |
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 |
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 |
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 | 株式会社東芝 | 不揮発性半導体記憶装置 |
JP2003036693A (ja) * | 2001-05-16 | 2003-02-07 | Fujitsu Ltd | 多値半導体メモリの誤り検出・訂正方法および誤り検出・訂正機能を有する多値半導体メモリ |
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 |
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 | シャープ株式会社 | 半導体レーザ素子 |
JP4129381B2 (ja) * | 2002-09-25 | 2008-08-06 | 株式会社ルネサステクノロジ | 不揮発性半導体記憶装置 |
US6791880B1 (en) * | 2003-05-06 | 2004-09-14 | Fasl, Llc | Non-volatile memory read circuit with end of life simulation |
MY147104A (en) * | 2003-08-18 | 2012-10-31 | Sony Corp | Data recording/reproducing device, data recording/reproducing method, program, and recording medium |
JP2005078721A (ja) * | 2003-09-01 | 2005-03-24 | Nippon Telegr & Teleph Corp <Ntt> | 誤り訂正方法およびメモリ回路 |
KR101129060B1 (ko) | 2003-10-30 | 2012-04-12 | 파나소닉 주식회사 | 표시장치, 표시방법, 프로그램 및 기록매체 |
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 |
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 |
-
2006
- 2006-01-11 US US11/329,075 patent/US7681109B2/en not_active Expired - Fee Related
- 2006-10-04 EP EP06796152A patent/EP1934854B1/en not_active Not-in-force
- 2006-10-04 AT AT06796152T patent/ATE489675T1/de not_active IP Right Cessation
- 2006-10-04 WO PCT/IL2006/001159 patent/WO2007043042A2/en active Application Filing
- 2006-10-04 JP JP2008535181A patent/JP5113066B2/ja not_active Expired - Fee Related
- 2006-10-04 CN CN2006800445051A patent/CN101536109B/zh not_active Expired - Fee Related
- 2006-10-04 EP EP10013359A patent/EP2287740B1/en not_active Not-in-force
- 2006-10-04 KR KR1020087010943A patent/KR100987632B1/ko not_active IP Right Cessation
- 2006-10-04 DE DE602006018497T patent/DE602006018497D1/de active Active
-
2008
- 2008-11-05 US US12/264,959 patent/US8261157B2/en active Active
Patent Citations (4)
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 |
EP0969480A1 (en) * | 1998-01-21 | 2000-01-05 | Sony Corporation | Encoding method and memory device |
US6732332B1 (en) * | 2000-08-28 | 2004-05-04 | Und Aerospace Foundation | Automated web site creation system |
US6625061B2 (en) * | 2000-10-25 | 2003-09-23 | Fujitsu Limited | Method of managing a defect in a flash memory |
Also Published As
Publication number | Publication date |
---|---|
WO2007043042A2 (en) | 2007-04-19 |
CN101536109A (zh) | 2009-09-16 |
EP1934854B1 (en) | 2010-11-24 |
US20090070657A1 (en) | 2009-03-12 |
KR20080076902A (ko) | 2008-08-20 |
ATE489675T1 (de) | 2010-12-15 |
US20070089034A1 (en) | 2007-04-19 |
JP5113066B2 (ja) | 2013-01-09 |
DE602006018497D1 (de) | 2011-01-05 |
EP1934854A2 (en) | 2008-06-25 |
JP2009512055A (ja) | 2009-03-19 |
EP2287740A1 (en) | 2011-02-23 |
WO2007043042A3 (en) | 2008-12-31 |
EP1934854A4 (en) | 2009-09-30 |
US7681109B2 (en) | 2010-03-16 |
US8261157B2 (en) | 2012-09-04 |
EP2287740B1 (en) | 2013-01-16 |
KR100987632B1 (ko) | 2010-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101536109B (zh) | Mbc闪存中的错误校正的方法 | |
US7843732B2 (en) | Methods of operating multi-bit flash memory devices and related systems | |
CN101529525B (zh) | 每单元多位的闪速存储器的概率错误校正 | |
US20200257598A1 (en) | Recovery of data failing due to impairment whose severity depends on bit-significance value | |
KR101541736B1 (ko) | 멀티-레벨 셀 플래시 메모리 장치에서의 lsb 페이지 복구 방법 | |
US7996727B2 (en) | Error correction for memory | |
DE102008003113B4 (de) | ECC-Steuereinheit, Speichersystem und Verfahren zur Korrektur eines Fehlers | |
US20180349044A1 (en) | Programming Schemes for Avoidance or Recovery from Cross-Temperature Read Failures | |
TWI407446B (zh) | 記憶體裝置內錯誤更正的動態資料儲存系統及方法 | |
CN103797541B (zh) | 存储器装置及用于存储器装置的配置方法 | |
US20140169102A1 (en) | Log-likelihood ratio and lumped log-likelihood ratio generation for data storage systems | |
CN1653554A (zh) | 通过使用关于所存储数据的质量的信息来增加错误校正码的效率和操作多电平存储系统 | |
US9098445B2 (en) | Selection of redundant storage configuration based on available memory space | |
US8498154B1 (en) | Systems and methods for improving error distributions in multi-level cell memory systems | |
US9305655B2 (en) | Solving MLC NAND paired page program using reduced spatial redundancy | |
US10635524B1 (en) | Soft-decision input generation for data storage systems | |
JP2020064350A (ja) | フラッシュメモリの管理方法 | |
KR20140052181A (ko) | 메모리 장치 구동 방법 및 메모리 시스템 | |
CN113342577B (zh) | 存储设备及其数据恢复方法 | |
CN106297881A (zh) | 非挥发性存储器的健康管理 | |
Solomon et al. | Error-Correcting WOM Codes for Worst-Case and Random Errors |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20131211 Termination date: 20161004 |