[go: up one dir, main page]

CN102906712B - Mlc自raid闪速数据保护方案 - Google Patents

Mlc自raid闪速数据保护方案 Download PDF

Info

Publication number
CN102906712B
CN102906712B CN201180021660.2A CN201180021660A CN102906712B CN 102906712 B CN102906712 B CN 102906712B CN 201180021660 A CN201180021660 A CN 201180021660A CN 102906712 B CN102906712 B CN 102906712B
Authority
CN
China
Prior art keywords
page
group
parity
sector
level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201180021660.2A
Other languages
English (en)
Other versions
CN102906712A (zh
Inventor
A·K·欧伯瑞士
D·A·普林斯
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.)
SanDisk Technologies LLC
Original Assignee
Pliant Technology LLC
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 Pliant Technology LLC filed Critical Pliant Technology LLC
Publication of CN102906712A publication Critical patent/CN102906712A/zh
Application granted granted Critical
Publication of CN102906712B publication Critical patent/CN102906712B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

一种在MLC多电平单元闪存装置中保护基于页的存储数据的二维自RAID方法。该保护方案包括:在每个数据页上保留一个奇偶校验扇区,保留一个奇偶校验页作为列奇偶校验,选择特定数量的页以形成奇偶校验组,把针对存储在奇偶校验组的页中的数据的组奇偶校验值写到奇偶校验页中。奇偶校验扇区代表在第一维度应用RAID技术。组偶校验代表在第二维度应用RAID技术。因为可能由二维RAID数据恢复损坏的数据扇区,所以实现了数据保护。

Description

MLC自RAID闪速数据保护方案
相关申请的交叉引用
本申请涉及于2010年3月17日提交的美国专利申请No.12/726,200并要求该申请的优先权。
技术领域
本文描述的发明涉及半导体闪存中的数据存储管理,具体地讲,涉及一种在电源中断的情况下防止多电平单元(MLC)存储装置中的数据损坏的数据存储保护方法。
背景技术
当前的企业级海量存储依赖于硬盘驱动器,硬盘驱动器通常以3.5”形状系数、15000rpm主轴电机以及73GB和450GB之间的存储容量为特征。机械设计采用具有单个致动器和在8个表面上移动的8个读/写头的传统的硬盘驱动器。头/介质技术的约束把读/写能力限制于一次仅使用一个有效的头。发送给驱动器的所有数据请求以串行方式处理,在操作之间具有较长延迟,因为致动器把读/写头移动至所需的位置并且介质旋转以使数据位于读/写头下方。
在企业海量存储环境中,固态存储装置很有吸引力。对于该环境,闪存是各种固态存储装置之中的很好的候选,因为它没有与硬盘驱动器关联的机械延迟,由此能够实现更高的性能和相应地更低的成本以及电源和空间的更好的使用。
闪存是一种形式的非易失性存储器,即EEPROM(电可擦除可编程只读存储器)。闪存阵列中的存储单元通常包括形成在基底中的具有控制栅以及漏极和源极扩散区域的晶体管。晶体管具有位于控制栅下方的浮动栅,因此形成电子存储装置。沟道区域位于浮动栅下方,由沟道和浮动栅之间的绝缘层(例如,隧穿氧化层)隔离。通过在绝缘层上施加足够高的电场,能够克服由绝缘层施加的阻止电荷载流子移动进入或离开浮动栅的能垒。存储在浮动栅中的电荷确定单元的阈值电压(Vt),其代表单元的存储的数据。存储在浮动栅中的电荷使得单元具有更高的Vt。为了把单元的Vt改变为更高或更低的值,通过在控制栅、漏极和源极扩散区域以及沟道区域施加合适的电压,增加或减少存储在浮动栅中的电荷。合适的电压使得电荷在这些区域中的一个或多个区域之间移动以及通过绝缘层移动至浮动栅。
单电平单元(SLC)闪存装置具有单个阈值电压Vt,并且能够在每个单元存储一位的数据。多电平单元(MLC)闪存装置中的存储单元具有多个阈值电压,并且根据存储在浮动栅中的电荷的量,能够代表超过一位的数据。因为MLC闪存装置能够实现在每个单元存储多个数据位,所以可容易地实现高密度海量存储应用(诸如,512Mb及以上)。在典型的四电平两位MLC闪存装置中,单元阈值电压Vt能够设置为代表数据“00”、“01”、“10”和“11”的四个电平中的任何电平。为了把存储单元编程为给定电平,单元可以被多次编程。在每次写之前,擦除闪存阵列以把阵列中的每个单元重置为默认状态。结果,共享同一单元的多个数据位和它们的电子状态(因此,它们的阈值电压Vt)互相依赖,从而意料不到的电源中断能够产生不可预测的后果。存储单元的电子状态的变化也在真实系统中的阈值电压的范围内产生变化。以下的表1显示两位MLC中的电子状态和阈值电压范围。
表1两位MLC存储单元中的阈值电压和位值
Vt 位1 位2
-4.25V至-1.75V 1 1
-1.75V至0.75V 1 0
0.75V至3.25V 0 1
3.25V至5.75V 0 0
尽管MLC相对于SLC存在优点,但MLC闪存装置在传统上因为某些技术约束而未被使用,其中数据损坏提出了最严重的挑战之一。
所有闪存具有有限数量的擦除-写循环。与SLC闪存装置相比,MLC闪存装置更容易遭受数据损坏。每个闪存页的规定擦除循环极限针对SLC闪存装置通常为100000个循环的数量级并且针对MLC装置通常为10000个循环的数量级。对于利用不可预测的数据流工作的数据中心,MLC闪存装置中的较低的循环极限引起特定问题。不可预测的数据流可引起“热点”,导致存储器的某些经常使用的区域经受大量的擦除循环。
另外,正常操作中的各种因素也能够影响闪存完整性,包括读干扰或编程干扰。作为与受干扰的单元相邻的存储单元的读或写的结果,这些干扰导致存储单元中的不可预测的数据位的丢失。由于意料不到的电源中断导致的MLC闪存装置中的突然的数据丢失需要频繁的数据恢复。因为一些数据电平需要超过一次写操作来实现并且因为超过一位的数据共享同一存储单元,所以在写数据操作期间的电源变化或编程错误使数据处于错误状态。当电源恢复时,存储单元能够处于不稳定状态。因此,电源中断是存储在MLC闪存装置中的数据的完整性的主要风险。
通常按照称为“页”的单位写闪速介质;每个页通常在2000字节和8000字节之间。通常按照称为“块”的单位擦除闪速介质。每个块通常在16和64页之间。MLC闪存装置中的页耦合为配对的页。对于2位MLC,配对的页的数量可以是两个,并且对于更高位MLC,配对的页的数量可以多达3至4或者更多。配对的页可位于共享的MLC闪存单元中。如果在MLC处于改变闪速介质的内容的操作中(例如,在写数据的页或者在擦除数据的块的过程中)的同时发生电源故障,则在装置再次通电之后,中断的页或块的电气状态是不可预测的。电气状态甚至能够是随机的,因为在电源中断时,一些受影响的位可能已经通过操作处于分配给它们的状态。然而,其它位可能落后并且未达到它们的目标值。另外,一些位可能处于中间状态,因此处于不可靠的模式,从而读这些位在不同的读操作下返回不同的结果。因此,在对某个页编程的同时失去电源可能损坏配对页。
在现有技术中,纠错码(ECC)和廉价磁盘冗余阵列(RAID)技术已用于减轻数据损坏。在一个实例中,通过在不同的页地址写奇偶校验页防止数据损坏。这些技术需要另外的存储器或者在电源恢复之后的复杂的错误搜索和数据重建过程。这种要求或解决方案使得实现该过程很昂贵并且对通常仅包括单个处理器的常规闪存控制器的处理能力提出高要求。另外,如果在写页期间发生电源故障,则配对页的数量据可能在MLC闪存装置中损坏。因此,甚至常规配对页技术也易受突然的电源中断影响。事实上,可能的损坏很严重;在一些情况下,每第10数据位可能丢失。依靠常规ECC技术使MLC闪存系统可靠将是无法实现的。
NAND闪存数据损坏也可能由编程擦除循环磨损导致。通过经薄膜氧化物绝缘体的隧穿注入和移除电子。重复的编程/擦除循环损坏氧化物并降低其有效性。随着装置尺寸(例如,氧化物薄膜厚度)减小,源自装置磨损的数据完整性问题可能变得更加严重。影响这种磨损过程的一个因素是执行编程和擦除循环的速度。然而,如果降低编程和擦除的速度以避免磨损,则总体性能可能受到显著影响。
当前,存在这样一种技术:应用较低的感测电压测量闪存的电荷状态,以便延长存储装置的寿命。闪存装置是使用感测电路检测单元是否包含给定电荷水平的电荷捕获装置。然而,随着装置磨损,它存储电荷的能力受到损坏。磨损的存储装置允许浮动栅上的存储的电荷泄漏。因此,感测电路将会从装置检测到减小的电压。一种当前的恢复机制减小用于确定单元包含的逻辑值的感测电压。然而,较低的感测电压也返回较低的检测到的电压,因此导致错误的电荷跟踪。
发明内容
本发明提供一种在失去电源之后在多电平单元闪存装置中保护基于页的存储数据的二维自RAID方法。该过程包括:根据RAID(“第一维度RAID”)技术的应用在每个数据页中保留奇偶校验扇区,由此形成包含预定数量的页的奇偶校验组;并且根据RAID技术(“第二维度RAID”)的第二应用对于每个随后的数据页重复奇偶校验分组。因此,如果随后的写损坏配对页,则使用二维RAID数据可能恢复丢失的数据。
本发明中的第一维度奇偶校验与数据页关联。页内的一个扇区被保留用于第一维度RAID数据。这个奇偶校验扇区在该扇区的ECC能力内允许任何单个扇区的恢复。在控制器把数据传送到芯片缓冲器时,可能根据可用数据计算这个级别的RAID数据。
根据预定数量的页中的扇区的列计算本发明中的第二维度奇偶校验。当仔细地选择特定页的数量量时,可能修复配对页错误。
实现了针对电源中断的完全数据保护,因为通过来自页扇区奇偶校验内或者从交叉扇区页奇偶校验的RAID数据可能恢复任何损坏的数据扇区。
本发明提供一种在失去电源的情况下在写期间保护基于页的闪存完整性的方法。本发明可能用于管理具有多电平单元(MLC)的闪存。
根据本发明的实施例,提供了一种保护包括许多存储页的MLC闪存数据的方法。一种管理多电平单元闪存的方法,该多电平单元闪存包括多个页,每个页包括多个顺序编号的扇区,该方法包括:(a)在每个页中选择扇区作为奇偶校验扇区;(b)把数据写到每个页中并计算每个页中的扇区的奇偶校验值并把该奇偶校验值存储在保留的奇偶校验扇区中;(c)把数据页分成多个组,其中除了第一组和最后一组之外,每个组包括第一预定数量的页;(d)在每个组中保留页作为组奇偶校验页并把数据写到组的每个页中,计算组的奇偶校验值并把该奇偶校验值存储在保留的组奇偶校验页中;(e)对于每个组重复(a)至(d);(f)保留新的页以存储共享同一扇区编号的所有扇区的列奇偶校验。
根据本发明的另一实施例,提供了一种保护包括许多存储页的MLC闪存数据的方法。一种管理多电平单元闪存的方法,该多电平单元闪存包括多个页,每个页包括多个顺序编号的扇区,该方法包括:(a)保留奇偶校验块;(b)在每个页中选择扇区作为奇偶校验扇区;(c)把数据写到每个页中并计算每个页中的扇区的奇偶校验值并把该奇偶校验值存储在选择的奇偶校验扇区中;(d)把数据页分成多个组,其中除了最后一组之外,每个组包括第二预定数量的页;(e)把数据写到组的子集中的页中并计算子集组奇偶校验;(f)把子集组奇偶校验值存储在保留的奇偶校验块中;(g)把数据写到组的其余页中;(h)重复(b)至(g);(I)保留新的页以存储共享同一扇区编号但位于不同页中的扇区的列奇偶校验。
根据本发明,提供了一种可能工作于以上方法的数据存储系统。
根据本发明,通过在选择的弱单元上延长编程和擦除时间,提供了一种减少源自装置磨损的数据损坏的方法。弱单元通过它们产生错误的速率来识别,然后可能以比其它单元慢的速率对与弱单元关联的块和页进行编程和擦除。通过跟踪较弱的块并相对于其它更强壮的块不同地对待它们,可能增强耐久性。因为仅对相对较少的弱块执行较慢的编程和擦除过程,所以总体性能未显著降低。一种管理具有许多页的多电平单元闪存的方法,该方法包括:(a)以预定速度在页上对数据编程以及擦除数据;(b)针对每个页检测错误率并识别与超过预定值的错误率关联的页;(c)以比预定速度慢的速度对识别的高错误页进行编程和擦除。
根据本发明的另一实施例,提供了一种用于克服泄漏引起的电荷水平变化的方法。一种管理包括感测电路的多电平单元闪存的方法,该方法包括:(a)选择感测电压;(b)利用选择的感测电压检测多电平单元闪存中的存储单元的电荷水平,并制作使预定感测电压和感测的电荷水平相关的第一表;(c)减小感测电压并使用减小的感测电压检测多电平单元闪存中的存储单元的电荷水平,并制作使减小的感测电压与感测的电荷水平相关的第二表;(d)用第二表替换第一表。
在结合附图考虑以下的详细描述时,更好地理解本发明。
附图说明
图1显示把闪速介质用于非易失性数据存储的装置控制器的示意性框图。
图2是闪存装置的截面图。
图3显示多电平闪存单元的截面图及其等效电路图。
图4显示MLC闪存装置中的两位MLC阈值电压范围。
图5是闪存配对页示图。
图6表示没有组奇偶校验的列奇偶校验的概念。
图7表示扇区奇偶校验或行奇偶校验的概念。
图8显示在每个奇偶校验扇区组中具有8页的组奇偶校验。
图9是总结显示63页(行)和31扇区(列)的闪存数据集的2维RAID组奇偶校验方案的表。
图10显示根据本发明实施例的8页组奇偶校验结构。
图11显示根据本发明另一实施例的使用留出的奇偶校验块的8页组奇偶校验结构。
图12显示使用二维RAID技术的保护方案(例子1)。
图13显示使用二维RAID技术的保护方案(例子2)。
图14是保护MLC闪存装置免受由写操作期间的电源中断导致的损坏的算法的流程图。
具体实施方式
图1是非易失性数据存储单元中的常规NAND闪速介质装置的高级示意性框图。
图2显示常规闪存装置的截面图。
常规多电平(MLC)闪存单元的例子表示在图3中,其中分沟道装置具有两个不同的阈值电压,Vt1和Vt2。参考的截面图和等效电路取自于美国专利5,045,940(Harari)。
电子状态的变化产生真实MLC系统中的阈值电压的范围。图4描述常规两位MLC装置中的阈值电压跨度。
共享相同的多电平单元的数据的页称为“共享页”。每个制造商可在它的共享页之间使用不同的距离。许多存储器厂商更喜欢把该距离设置为四。例如,在对距离为4时,页0与页4配对,页1与页5配对,页2与页6配对,并且页3与页7配对。图5显示在对距离为4时的配对页概念。
配对页可共享MLC闪存系统中的相同的存储单元(例如,在2位MLC闪存中,存储单元的位0和位1分别是来自配对页中的第一页和第二页的位)。当例如在掉电或者重置期间编程操作异常中止时,不仅正被编程的页的数量据受到损坏,配对页中的数据即使可能已在先前时间被正确地写也可能受到损坏。
根据本发明的一个实施例,在沿着两个维度的方法中应用RAID技术。在第一维度(“第一维度RAID”)中,该方法保留关于同一页的奇偶校验信息。第一维度RAID使用行奇偶校验或扇区奇偶校验,使用同一页中从第一扇区到最后一个扇区的数据计算行奇偶校验或扇区奇偶校验。如图7中所示,在每个页中存在数据的31个扇区,分别标记为Sec00至Sec30。每个页内的单个扇区被保留用于存储第一维度RAID数据(即,行或扇区奇偶校验)。在图7中,p0扇区是针对页0的奇偶校验扇区,并且扇区pX是针对页X的奇偶校验扇区。一个共同的纠错码(ECC)允许单比特纠错。利用额外的奇偶校验位,可能检测到双比特错误。因此,在电源中断的情况下,奇偶校验扇区中的奇偶校验数据在该扇区的ECC能力内允许页中的任何扇区的恢复。在数据从控制器移动至芯片缓冲器时,可根据页中的所有数据计算扇区奇偶校验。
在第二维度(“第二维度RAID”)中,该方法保留根据奇偶校验组中的许多页计算的奇偶校验数据。这种奇偶校验数据称为组奇偶校验。每个奇偶校验组中的页的数量是可变的。在一种实现方式中,例如,奇偶校验组中的页的数量是8页。
针对块中的所有页上的对应的扇区计算的组奇偶校验称为列奇偶校验。图6表示64页的数量据集中的列奇偶校验。在图6中,根据来自所有页的相同扇区(例如,SecX)计算每个列奇偶校验值。计算奇偶校验值并把奇偶校验值写在为块指定的奇偶校验页中,并且针对块的所有页中的相同扇区计算列奇偶校验。
第二维度RAID中的组奇偶校验在闪存装置中提供了另外的奇偶校验保护。与图6中表示的列奇偶校验相比,包括少于块的所有页的奇偶校验组的组奇偶校验设置更高级别的保护。作为第一步骤,选择奇偶校验组中的页的数量作为组大小。仔细地选择这个数量,以便针对配对页错误提供足够的保护,并且经常由MLC闪存制造商选择这个数量。对于选择的配对,典型的组大小是8。图8显示在每个奇偶校验扇区组中具有8页的组奇偶校验。在图8中,页p3、p11、…、p59是奇偶校验页。
图10表示根据本发明一个实施例的适用于图8中显示的结构的奇偶校验分组结构。如图10中所示,第一组(即,组1)是半组。在每个随后的8页的组中,前4页与前一组中的4页配对。例如,如果在多电平单元的页配对顺序是0-4、1-5、2-6和3-7(即,页0与页4配对,页1与页5配对,页2与页6配对,并且页3与页7配对),则对于每次写页0、1、2中的任何页,可能对组奇偶校验页3执行对应的2维RAID组奇偶校验写。在随后写页4至6中任何页损坏对应的配对页0、1或2的情况下,使用来自先前写的组奇偶校验页3的RAID数据可能修复数据丢失。因此,组奇偶校验页保护4页的奇偶校验组1中的页0-2。组2奇偶校验页是页11,页11保护页8、9、10免受在写页12至14期间由电源中断引起的损坏。图9是总结显示63页(行)和31扇区(列)的闪存数据集的2维RAID组奇偶校验方案的表。如图9中所示,页p3、p11、…和p59被选择为8页组的组奇偶校验页。在同一MLC闪存装置上,每组的前一半与前一组的后一半配对或共存。
图11显示在本发明的另一实施例中的奇偶校验分组结构。在图11中,所有的组包含8页。在多电平单元的页配对顺序是0-4、1-5、2-6和3-7(即,页0与页4配对,页1与页5配对,页2与页6配对,并且页3与页7配对)。页0-3的组奇偶校验被写到数据页外面的奇偶校验块中的留出的奇偶校验页中。如果在随后写页4-7中任何页期间存在电源中断,则留出的奇偶校验块中的奇偶校验页可用于恢复损坏的页0-3中的数据。如果成功地写页4-7,则数据页外面的奇偶校验块中的针对页0-3的奇偶校验页可能被保存以用于将来参考,并且也可能根据需要被擦除。针对每8页重复这个过程。
这种类型的RAID保护的另一优点在于:它不需要读以产生关于写的奇偶校验数据。所需做的事情是写页的奇偶校验高速缓存。这简化了奇偶校验产生所需的算法并且不会引起写执行障碍。影响性能的唯一时间是在遇到硬错误的情况下在数据的重建期间。
虽然在本发明的详细描述中示例性数量8用作组中的页的数量,但本发明并不把组中的页的数量局限于8。
为了实现图11中显示的方案,在第一维度中,64页中的每一页具有奇偶校验扇区(例如,位于每一页的第二扇区中)。每一页中的奇偶校验扇区提供第一维度RAID。在第二维度中,存在两个级别的奇偶校验保护。首先,存在针对所有页的列奇偶校验。在列奇偶校验页中,每个扇区存储基于所有页的所有对应扇区计算的列奇偶校验。其次,还针对根据选择的组大小分组的页记录组奇偶校验。组奇偶校验可以被写到留出的奇偶校验块。替代地,组奇偶校验可使用第4、第11、第19、…第59页存储组奇偶校验页以及数据页。在使用留出的奇偶校验块的一个实施例中,在没有任何电源中断的情况下写配对页的后半组之后,针对配对页的前一半写的留出的奇偶校验块可以被擦除或者可以被保存以用于将来参考。
图12表示在本发明的一个实施例中当出现许多不可校正的扇区(损坏的扇区在图12中由密集划线的块代表)时二维RAID保护如何工作。例如,页4中的Sec00和页5中的Sec02是各自页中的单个错误;因此,分别可能从这些页中的每一页上的奇偶校验扇区修复对应扇区中的数据丢失。然而,当页7在两个扇区中损坏时,可能从组奇偶校验页11修复页7中的Sec00中的损坏。类似地,也可能从组奇偶校验页11修复页9中的Sec02中的损坏。在以上校正之后,分别可能从奇偶校验扇区p7和p9恢复页7中的Sec30和页9中的Sec30,因为这些页中的其它扇区已被恢复。因此,即使在一页中或者在一列中存在两个坏扇区,也可以恢复数据。
在更严重的电源中断方案中,当许多配对页在单个页中或者在单个列中受到影响时,组扇区奇偶校验可能通过组合行奇偶校验、列奇偶校验和组奇偶校验恢复损坏的数据。恢复方案的一个例子表示在图13中,其中存在多个硬错误(错误扇区由密集划线的块代表)。页0中的Sec00、页1中的Sec02和页5中的Sec02是对应页中的单个错误;因此,分别可能从这些页中的奇偶校验扇区恢复它们。从页11中的Sec29中的组奇偶校验可能恢复页9中的Sec29。在进行这些校正之后,通过在页0-2上重新计算Sec00的组奇偶校验,可能恢复页3中的Sec00,并且从页11中的Sec02可能恢复页9中的Sec02。在这些校正之后,可从组奇偶校验页11校正页7中的Sec00,可能从组奇偶校验页19恢复页13中的Sec02和页13中的Sec29。在以上校正之后,从对应的奇偶校验扇区可能恢复页3中的Sec30、页7中的Sec30、页9中的Sec30和页13中的Sec30,因为相关页中的其它坏扇区已被恢复。因此,即使存在位于一列中的具有硬错误的四个扇区,也可以恢复数据。
在数据页外面的留出的奇偶校验块用于保留组奇偶校验的本发明的一个实施例中,当在电源中断时保护数据免受写损坏时,可能为数据写的过程编写算法。这个算法包括针对8页的奇偶校验组的下述步骤:
a.写从页0至页3的4页并针对页0-3计算组奇偶校验;
b.把组奇偶校验页写到数据存储器外面的奇偶校验块;
c.写页4-7;
d.释放页0-3的奇偶校验块,用过的奇偶校验块可能被保存或擦除;
e.对于每个随后的8页的组重复过程a)至d);
f.即使最后一组具有少于8页,也以相同方法处理最后一组。
这个算法也表示在图14中。
前面的描述旨在表示而非限制由所附权利要求的范围定义的本发明的范围。其它实施例落在本发明的范围内。

Claims (34)

1.一种管理多电平单元闪存的方法,该多电平单元闪存逻辑上被组织为包括具有多个页的块,每个页包括多个扇区,该方法包括:
在所述块的所述多个页的每个页中选择奇偶校验扇区;
把所述块的各页分配至两个或更多个组并在每个组中选择一页作为该组的奇偶校验页;
对于每个页,针对存储在该页的扇区中的数据计算扇区奇偶校验值并把该扇区奇偶校验值存储在该页的奇偶校验扇区中;以及
计算存储在所述块的各页的相应组的页中的数据的组奇偶校验值并把该组奇偶校验值存储在所述相应组的奇偶校验页中。
2.如权利要求1所述的方法,还包括:
对于所述块的各页的每个相应组重复所述计算组奇偶校验值。
3.如权利要求2所述的方法,其中每个页的每个扇区被分配扇区编号,该方法还包括:
对于所述块选择列奇偶校验页,并且对于每个扇区编号,针对所述块的各页中的该扇区编号的所有扇区计算列奇偶校验。
4.如权利要求1所述的方法,其中每个多电平单元由所述块的至少两页共享。
5.如权利要求1所述的方法,其中每个组包括8页。
6.如权利要求4所述的方法,其中共享相应多电平单元的各页被分配到不同的组。
7.如权利要求6所述的方法,其中每个组被分配组编号,并且其中共享所述相应多电平单元的页被分配连续的组编号。
8.如权利要求7所述的方法,其中分配给一个或多个组的页的数量是分配给所述块的其余的每个组的页的数量的一半。
9.一种管理多电平单元闪存的方法,该多电平单元闪存以逻辑方式组织为一个或多个块,每个块具有多个页,每个页包括多个扇区,该方法包括:
从块中选择奇偶校验块;
在相应块的每个页中选择奇偶校验扇区;
把所述相应块的各页分配至多个组;
对于所述相应块的每个页,针对存储在该页中的扇区中的数据计算扇区奇偶校验值并把该扇区奇偶校验值存储在该页的奇偶校验扇区中;
在完成把数据写到所述相应块的组的所有页中之前,针对该组中的页的子集计算子集组奇偶校验,所述页的子集包括在所述相应块的所述组中的多个页;以及
把所述子集组奇偶校验存储在所述奇偶校验块中。
10.如权利要求9所述的方法,其中所述相应块的所述组包括第一组,所述第一组中的页的子集是所述第一组的页的第一子集,
其中所述方法还包括:
对于在不同于所述第一组的第二组中的页的第二子集,重复所述计算和存储。
11.如权利要求9所述的方法,其中每个页的每个扇区被分配扇区编号,该方法还包括:
选择列奇偶校验页,并且对于每个扇区编号,针对所述相应块的各页中的分配了该扇区编号的所有扇区计算列奇偶校验。
12.如权利要求9所述的方法,其中每个组包括8页。
13.如权利要求9所述的方法,其中在所述多电平单元闪存中的多个多电平单元中的每个多电平单元由同一组的两页共享。
14.如权利要求9所述的方法,其中所述奇偶校验块位于非易失性存储器上。
15.如权利要求9所述的方法,其中对于相应组中的页的子集,所述子集组奇偶校验在数据被完全写到所述相应组的各页中之后被擦除。
16.如权利要求9所述的方法,其中对于相应组中的页的子集,所述子集组奇偶校验在数据被完全写到相应组的各页中之后被保存。
17.如权利要求9所述的方法,其中对于相应组中的页的子集,根据所述相应组的一半的页中的数据计算所述子集组奇偶校验。
18.一种多电平单元闪存数据存储装置,逻辑上被组织为包括具有多个页的块,每个页包括多个扇区,所述多电平单元闪存数据存储装置包括:
在所述块的所述多个页的每个页中选择奇偶校验扇区的装置;
把所述块的各页分配至两个或更多个组并在每个组中选择一页作为该组的奇偶校验页的装置;
对于每个页,针对存储在该页的扇区中的数据计算扇区奇偶校验值并把该扇区奇偶校验值存储在该页的奇偶校验扇区中的装置;以及
计算存储在所述块的各页的相应组的页中的数据的组奇偶校验值并把该组奇偶校验值存储在所述相应组的奇偶校验页中的装置。
19.如权利要求18所述的多电平单元闪存数据存储装置,还包括:
对于所述块的各页的每个相应组重复所述计算组奇偶校验值的装置。
20.如权利要求19所述的多电平单元闪存数据存储装置,其中每个页的每个扇区被分配扇区编号,所述多电平单元闪存数据存储装置还包括:
对于所述块选择列奇偶校验页,并且对于每个扇区编号,针对所述块的各页中的该扇区编号的所有扇区计算列奇偶校验的装置。
21.如权利要求18所述的多电平单元闪存数据存储装置,其中每个多电平单元由所述块的至少两页共享。
22.如权利要求18所述的多电平单元闪存数据存储装置,其中每个组包括8页。
23.如权利要求21所述的多电平单元闪存数据存储装置,其中共享相应多电平单元的各页被分配到不同的组。
24.如权利要求23所述的多电平单元闪存数据存储装置,其中每个组被分配组编号,并且其中共享所述相应多电平单元的页被分配连续的组编号。
25.如权利要求24所述的多电平单元闪存数据存储装置,其中分配给一个或多个组的页的数量是分配给所述块的其余的每个组的页的数量的一半。
26.一种多电平单元闪存数据存储装置,逻辑上被组织为一个或多个各具有多个页的块,每个页包括多个扇区,所述多电平单元闪存数据存储装置包括:
从块中选择奇偶校验块的装置;
在相应块的每个页中选择奇偶校验扇区的装置;
把所述相应块的各页分配至多个组的装置;
对于所述相应块的每个页,针对存储在该页中的扇区中的数据计算扇区奇偶校验值并把该扇区奇偶校验值存储在该页的奇偶校验扇区中的装置;
在完成把数据写到所述相应块的组的所有页中之前,针对该组中的各页的子集计算子集组奇偶校验的装置,所述各页的子集包括在所述相应块的所述组中的多个页;以及
把所述子集组奇偶校验存储在所述奇偶校验块中的装置。
27.如权利要求26所述的多电平单元闪存数据存储装置,其中所述相应块的所述组包括第一组,所述第一组中的各页的子集是所述第一组的各页的第一子集,
其中所述多电平单元闪存数据存储装置还包括:
对于在不同于所述第一组的第二组中的各页的第二子集,重复所述计算和存储的装置。
28.如权利要求26所述的多电平单元闪存数据存储装置,其中每个页的每个扇区被分配扇区编号,所述多电平单元闪存数据存储装置还包括:
选择列奇偶校验页,并且对于每个扇区编号,针对所述相应块的各页中的分配了该扇区编号的所有扇区计算列奇偶校验的装置。
29.如权利要求26所述的多电平单元闪存数据存储装置,其中每个组包括8页。
30.如权利要求26所述的多电平单元闪存数据存储装置,其中在所述多电平单元闪存中的多个多电平单元中的每个多电平单元由同一组的两页共享。
31.如权利要求26所述的多电平单元闪存数据存储装置,其中所述奇偶校验块位于非易失性存储器上。
32.如权利要求26所述的多电平单元闪存数据存储装置,其中对于相应组的各页的子集,所述子集组奇偶校验在数据被完全写到所述相应组的各页中之后被擦除。
33.如权利要求26所述的多电平单元闪存数据存储装置,其中对于相应组的各页的子集,所述子集组奇偶校验在数据被完全写到所述相应组的各页中之后被保存。
34.如权利要求26所述的多电平单元闪存数据存储装置,其中对于相应组的各页的子集,根据所述相应组的一半的页中的数据计算所述子集组奇偶校验。
CN201180021660.2A 2010-03-17 2011-03-16 Mlc自raid闪速数据保护方案 Active CN102906712B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/726,200 2010-03-17
US12/726,200 US8365041B2 (en) 2010-03-17 2010-03-17 MLC self-raid flash data protection scheme
PCT/US2011/028637 WO2011116071A2 (en) 2010-03-17 2011-03-16 Mlc self-raid flash data protection scheme

Publications (2)

Publication Number Publication Date
CN102906712A CN102906712A (zh) 2013-01-30
CN102906712B true CN102906712B (zh) 2016-02-10

Family

ID=44647151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180021660.2A Active CN102906712B (zh) 2010-03-17 2011-03-16 Mlc自raid闪速数据保护方案

Country Status (6)

Country Link
US (4) US8365041B2 (zh)
EP (1) EP2548121B1 (zh)
JP (1) JP2013522776A (zh)
KR (1) KR101795093B1 (zh)
CN (1) CN102906712B (zh)
WO (1) WO2011116071A2 (zh)

Families Citing this family (229)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8762620B2 (en) * 2007-12-27 2014-06-24 Sandisk Enterprise Ip Llc Multiprocessor storage controller
US8365041B2 (en) 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
US8417877B2 (en) * 2010-08-31 2013-04-09 Micron Technology, Inc Stripe-based non-volatile multilevel memory operation
US8909982B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc System and method for detecting copyback programming problems
US8910020B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc Intelligent bit recovery for flash memory
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8938658B2 (en) 2011-11-07 2015-01-20 Sandisk Enterprise Ip Llc Statistical read comparison signal generation for memory systems
US9053809B2 (en) * 2011-11-09 2015-06-09 Apple Inc. Data protection from write failures in nonvolatile memory
US8924815B2 (en) 2011-11-18 2014-12-30 Sandisk Enterprise Ip Llc Systems, methods and devices for decoding codewords having multiple parity segments
US9048876B2 (en) 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US20130173972A1 (en) * 2011-12-28 2013-07-04 Robert Kubo System and method for solid state disk flash plane failure detection
CN102609370B (zh) * 2012-02-06 2014-12-17 记忆科技(深圳)有限公司 防止固态硬盘数据丢失的方法及其固态硬盘
US8923045B2 (en) 2012-05-31 2014-12-30 Seagate Technology Llc Multi-level cell (MLC) update with protected mode capability
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9298383B2 (en) * 2012-08-17 2016-03-29 International Business Machines Corporation Memory with mixed cell array and system including the memory
US8887011B2 (en) * 2012-09-13 2014-11-11 Sandisk Technologies Inc. Erased page confirmation in multilevel memory
US9047974B2 (en) 2012-10-04 2015-06-02 Sandisk Technologies Inc. Erased state reading
US8464095B1 (en) * 2012-11-15 2013-06-11 DSSD, Inc. Method and system for multi-dimensional raid reconstruction and defect avoidance
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
CN103092765B (zh) * 2012-12-31 2015-08-05 记忆科技(深圳)有限公司 固态存储系统、装置及数据写入方法
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9009576B1 (en) 2013-03-15 2015-04-14 Sandisk Enterprise Ip Llc Adaptive LLR based on syndrome weight
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9361221B1 (en) 2013-08-26 2016-06-07 Sandisk Technologies Inc. Write amplification reduction through reliable writes during garbage collection
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9323637B2 (en) 2013-10-07 2016-04-26 Sandisk Enterprise Ip Llc Power sequencing and data hardening architecture
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9280429B2 (en) 2013-11-27 2016-03-08 Sandisk Enterprise Ip Llc Power fail latching based on monitoring multiple power supply voltages in a storage device
US9122636B2 (en) 2013-11-27 2015-09-01 Sandisk Enterprise Ip Llc Hard power fail architecture
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9250676B2 (en) 2013-11-29 2016-02-02 Sandisk Enterprise Ip Llc Power failure architecture and verification
US9092370B2 (en) 2013-12-03 2015-07-28 Sandisk Enterprise Ip Llc Power failure tolerant cryptographic erase
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9262268B2 (en) * 2013-12-20 2016-02-16 Seagate Technology Llc Method to distribute user data and error correction data over different page types by leveraging error rate variations
US10417090B2 (en) 2013-12-23 2019-09-17 Cnex Labs, Inc. Computing system with data protection mechanism and method of operation thereof
US9389956B2 (en) * 2014-01-10 2016-07-12 International Business Machines Corporation Implementing ECC control for enhanced endurance and data retention of flash memories
US9405480B2 (en) 2014-01-13 2016-08-02 Seagate Technology Llc Interleaving codewords over multiple flash planes
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9497889B2 (en) 2014-02-27 2016-11-15 Sandisk Technologies Llc Heat dissipation for substrate assemblies
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
CN106104491A (zh) * 2014-03-01 2016-11-09 希耐克斯实验室公司 具有数据保护机制的计算系统及其操作方法
US9348377B2 (en) 2014-03-14 2016-05-24 Sandisk Enterprise Ip Llc Thermal isolation techniques
US9519319B2 (en) 2014-03-14 2016-12-13 Sandisk Technologies Llc Self-supporting thermal tube structure for electronic assemblies
US9485851B2 (en) 2014-03-14 2016-11-01 Sandisk Technologies Llc Thermal tube assembly structures
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US9645749B2 (en) 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US9208077B1 (en) 2014-05-30 2015-12-08 Avago Technologies General Ip (Singapore) Pte. Ltd. Forced map entry flush to prevent return of old data
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
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
US12137140B2 (en) 2014-06-04 2024-11-05 Pure Storage, Inc. Scale out storage platform having active failover
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
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US12341848B2 (en) 2014-06-04 2025-06-24 Pure Storage, Inc. Distributed protocol endpoint services for data storage systems
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
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
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US12182044B2 (en) 2014-07-03 2024-12-31 Pure Storage, Inc. Data storage in a zone drive
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
US12158814B2 (en) 2014-08-07 2024-12-03 Pure Storage, Inc. Granular voltage tuning
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
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
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US12379854B2 (en) 2015-04-10 2025-08-05 Pure Storage, Inc. Two or more logical arrays having zoned drives
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
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
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
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
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US12271359B2 (en) 2015-09-30 2025-04-08 Pure Storage, Inc. Device host operations in a storage system
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
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
KR102435873B1 (ko) * 2015-12-18 2022-08-25 삼성전자주식회사 스토리지 장치 및 그것의 리드 리클레임 방법
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
KR20170083386A (ko) 2016-01-08 2017-07-18 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9984771B2 (en) 2016-01-11 2018-05-29 Sandisk Technologies Llc Multi-level raid-type encoding with random correction capability
KR102572357B1 (ko) 2016-02-03 2023-08-29 삼성전자주식회사 Raid-6 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US10198315B2 (en) 2016-02-29 2019-02-05 Sandisk Technologies Llc Non-volatile memory with corruption recovery
US9959168B2 (en) 2016-03-04 2018-05-01 Sandisk Technologies Llc ECC and RAID-type decoding
US9940194B2 (en) 2016-03-04 2018-04-10 Sandisk Technologies Llc ECC decoding using raid-type parity
US10536172B2 (en) 2016-03-04 2020-01-14 Western Digital Technologies, Inc. ECC and raid-type decoding
US10133503B1 (en) 2016-05-02 2018-11-20 Pure Storage, Inc. Selecting a deduplication process based on a difference between performance metrics
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US12235743B2 (en) 2016-06-03 2025-02-25 Pure Storage, Inc. Efficient partitioning for storage system resiliency groups
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11734169B2 (en) 2016-07-26 2023-08-22 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
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
US10613974B2 (en) 2016-10-04 2020-04-07 Pure Storage, Inc. Peer-to-peer non-volatile random-access memory
US20180095788A1 (en) 2016-10-04 2018-04-05 Pure Storage, Inc. Scheduling operations for a storage device
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
US10359942B2 (en) 2016-10-31 2019-07-23 Pure Storage, Inc. Deduplication aware scalable content placement
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
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
US10545805B2 (en) 2017-03-29 2020-01-28 Macronix International Co., Ltd. Memory system, reading method thereof and writing method thereof
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
TWI622882B (zh) * 2017-03-30 2018-05-01 旺宏電子股份有限公司 記憶體系統、及其讀取方法與寫入方法
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
US10296738B2 (en) 2017-05-03 2019-05-21 Nuvoton Technology Corporation Secure integrated-circuit state management
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
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
CN107704338B (zh) * 2017-08-22 2020-10-30 深圳市硅格半导体有限公司 一种资料储存型闪存的数据恢复方法和装置
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10789211B1 (en) 2017-10-04 2020-09-29 Pure Storage, Inc. Feature-based deduplication
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US12067274B2 (en) 2018-09-06 2024-08-20 Pure Storage, Inc. Writing segments and erase blocks based on ordering
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
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10929226B1 (en) * 2017-11-21 2021-02-23 Pure Storage, Inc. Providing for increased flexibility for large scale parity
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
CN112074816B (zh) 2018-03-16 2025-02-21 美光科技公司 Nand数据放置模式的集群奇偶校验
US11521690B2 (en) 2018-03-16 2022-12-06 Micron Technology, Inc. NAND data placement schema
US12079494B2 (en) 2018-04-27 2024-09-03 Pure Storage, Inc. Optimizing storage system upgrades to preserve resources
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
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
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US12393340B2 (en) 2019-01-16 2025-08-19 Pure Storage, Inc. Latency reduction of flash-based devices using programming interrupts
US11194473B1 (en) 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US12373340B2 (en) 2019-04-03 2025-07-29 Pure Storage, Inc. Intelligent subsegment formation in a heterogeneous storage system
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
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
US11157179B2 (en) 2019-12-03 2021-10-26 Pure Storage, Inc. Dynamic allocation of blocks of a storage device 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
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
CN111240887A (zh) * 2020-01-07 2020-06-05 苏州大学 基于三维闪存存储结构的错误页识别方法
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US12056365B2 (en) 2020-04-24 2024-08-06 Pure Storage, Inc. Resiliency for a storage system
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US12067282B2 (en) 2020-12-31 2024-08-20 Pure Storage, Inc. Write path selection
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US12229437B2 (en) 2020-12-31 2025-02-18 Pure Storage, Inc. Dynamic buffer for storage system
US12093545B2 (en) 2020-12-31 2024-09-17 Pure Storage, Inc. Storage system with selectable write modes
US12061814B2 (en) 2021-01-25 2024-08-13 Pure Storage, Inc. Using data similarity to select segments for garbage collection
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US12439544B2 (en) 2022-04-20 2025-10-07 Pure Storage, Inc. Retractable pivoting trap door
US12314163B2 (en) 2022-04-21 2025-05-27 Pure Storage, Inc. Die-aware scheduler
US12204788B1 (en) 2023-07-21 2025-01-21 Pure Storage, Inc. Dynamic plane selection in data storage system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1882918A (zh) * 2003-10-03 2006-12-20 桑迪士克股份有限公司 快闪存储器数据校正及擦除技术
CN101529522A (zh) * 2005-10-25 2009-09-09 晟碟以色列有限公司 从闪速存储器中的错误恢复的方法

Family Cites Families (129)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4916652A (en) * 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
US5657332A (en) 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US5416915A (en) * 1992-12-11 1995-05-16 International Business Machines Corporation Method and system for minimizing seek affinity and enhancing write sensitivity in a DASD array
US5537555A (en) * 1993-03-22 1996-07-16 Compaq Computer Corporation Fully pipelined and highly concurrent memory controller
GB9419246D0 (en) * 1994-09-23 1994-11-09 Cambridge Consultants Data processing circuits and interfaces
US5666114A (en) * 1994-11-22 1997-09-09 International Business Machines Corporation Method and means for managing linear mapped address spaces storing compressed data at the storage subsystem control unit or device level
US5530705A (en) * 1995-02-08 1996-06-25 International Business Machines Corporation Soft error recovery system and method
US6016560A (en) * 1995-06-14 2000-01-18 Hitachi, Ltd. Semiconductor memory, memory device, and memory card
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US6134148A (en) * 1997-09-30 2000-10-17 Hitachi, Ltd. Semiconductor integrated circuit and data processing system
US5943692A (en) * 1997-04-30 1999-08-24 International Business Machines Corporation Mobile client computer system with flash memory management utilizing a virtual address map and variable length data
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
JPH11126497A (ja) * 1997-10-22 1999-05-11 Oki Electric Ind Co Ltd 不揮発性半導体記憶装置
US6505305B1 (en) 1998-07-16 2003-01-07 Compaq Information Technologies Group, L.P. Fail-over of multiple memory blocks in multiple memory modules in computer system
US6295592B1 (en) * 1998-07-31 2001-09-25 Micron Technology, Inc. Method of processing memory requests in a pipelined memory controller
US6438661B1 (en) 1999-03-03 2002-08-20 International Business Machines Corporation Method, system, and program for managing meta data in a storage system and rebuilding lost meta data in cache
US6449625B1 (en) * 1999-04-20 2002-09-10 Lucent Technologies Inc. Use of a two-way stack approach to optimize flash memory management for embedded database systems
US20080282128A1 (en) * 1999-08-04 2008-11-13 Super Talent Electronics, Inc. Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance
US7318117B2 (en) 2004-02-26 2008-01-08 Super Talent Electronics, Inc. Managing flash memory including recycling obsolete sectors
US20050114587A1 (en) 2003-11-22 2005-05-26 Super Talent Electronics Inc. ExpressCard with On-Card Flash Memory with Shared Flash-Control Bus but Separate Ready Lines
US6484224B1 (en) * 1999-11-29 2002-11-19 Cisco Technology Inc. Multi-interface symmetric multiprocessor
DE19961138C2 (de) 1999-12-17 2001-11-22 Siemens Ag Multiport-RAM-Speichervorrichtung
US7082056B2 (en) * 2004-03-12 2006-07-25 Super Talent Electronics, Inc. Flash memory device and architecture with multi level cells
US8037234B2 (en) * 2003-12-02 2011-10-11 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules
US20020152305A1 (en) 2000-03-03 2002-10-17 Jackson Gregory J. Systems and methods for resource utilization analysis in information management environments
US6615307B1 (en) 2000-05-10 2003-09-02 Micron Technology, Inc. Flash with consistent latency for read operations
US20030188045A1 (en) 2000-04-13 2003-10-02 Jacobson Michael B. System and method for distributing storage controller tasks
US6678788B1 (en) 2000-05-26 2004-01-13 Emc Corporation Data type and topological data categorization and ordering for a mass storage system
US6442076B1 (en) * 2000-06-30 2002-08-27 Micron Technology, Inc. Flash memory with multiple status reading capability
US6738870B2 (en) 2000-12-22 2004-05-18 International Business Machines Corporation High speed remote storage controller
US6775792B2 (en) 2001-01-29 2004-08-10 Snap Appliance, Inc. Discrete mapping of parity blocks
US7017107B2 (en) 2001-04-30 2006-03-21 Sun Microsystems, Inc. Storage array employing scrubbing operations at the disk-controller level
US6757768B1 (en) 2001-05-17 2004-06-29 Cisco Technology, Inc. Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node
US7068603B2 (en) 2001-07-06 2006-06-27 Juniper Networks, Inc. Cross-bar switch
US6836815B1 (en) 2001-07-11 2004-12-28 Pasternak Solutions Llc Layered crossbar for interconnection of multiple processors and shared memories
TW539946B (en) 2001-08-07 2003-07-01 Solid State System Company Ltd Window-based flash memory storage system, and the management method and the access method thereof
JP4437519B2 (ja) * 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
US7028213B2 (en) 2001-09-28 2006-04-11 Hewlett-Packard Development Company, L.P. Error indication in a raid memory system
US7032123B2 (en) 2001-10-19 2006-04-18 Sun Microsystems, Inc. Error recovery
JP3663377B2 (ja) 2001-10-23 2005-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーション データ記憶装置、読み出しデータの処理装置および読み出しデータの処理方法
US6798696B2 (en) 2001-12-04 2004-09-28 Renesas Technology Corp. Method of controlling the operation of non-volatile semiconductor memory chips
US6871257B2 (en) 2002-02-22 2005-03-22 Sandisk Corporation Pipelined parallel programming operation in a non-volatile memory system
US6836808B2 (en) 2002-02-25 2004-12-28 International Business Machines Corporation Pipelined packet processing
JP4079684B2 (ja) 2002-05-08 2008-04-23 株式会社日立製作所 ヒープメモリ管理方法およびそれを用いた計算機システム
US6895464B2 (en) 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
US7051155B2 (en) 2002-08-05 2006-05-23 Sun Microsystems, Inc. Method and system for striping data to accommodate integrity metadata
US6978343B1 (en) * 2002-08-05 2005-12-20 Netlogic Microsystems, Inc. Error-correcting content addressable memory
US20040153902A1 (en) 2003-01-21 2004-08-05 Nexflash Technologies, Inc. Serial flash integrated circuit having error detection and correction
US7043505B1 (en) 2003-01-28 2006-05-09 Unisys Corporation Method variation for collecting stability data from proprietary systems
US7162678B2 (en) 2003-03-14 2007-01-09 Quantum Corporation Extended error correction codes
KR100543447B1 (ko) 2003-04-03 2006-01-23 삼성전자주식회사 에러정정기능을 가진 플래쉬메모리장치
JP4170988B2 (ja) 2003-05-09 2008-10-22 富士通株式会社 実行環境の危険予測/回避方法,システム,プログラムおよびその記録媒体
EP1627331B1 (en) 2003-05-23 2017-09-20 IP Reservoir, LLC Intelligent data storage and processing using fpga devices
US7877647B2 (en) 2003-05-23 2011-01-25 Hewlett-Packard Development Company, L.P. Correcting a target address in parallel with determining whether the target address was received in error
US7685254B2 (en) 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US7100002B2 (en) 2003-09-16 2006-08-29 Denali Software, Inc. Port independent data transaction interface for multi-port devices
US7054968B2 (en) 2003-09-16 2006-05-30 Denali Software, Inc. Method and apparatus for multi-port memory controller
US7173852B2 (en) 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7376887B2 (en) 2003-12-22 2008-05-20 International Business Machines Corporation Method for fast ECC memory testing by software including ECC check byte
JP4477365B2 (ja) 2004-01-29 2010-06-09 株式会社日立製作所 複数インタフェースを有する記憶装置、および、その記憶装置の制御方法
US7350044B2 (en) 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
US20080147964A1 (en) * 2004-02-26 2008-06-19 Chow David Q Using various flash memory cells to build usb data flash cards with multiple partitions and autorun function
US7020017B2 (en) * 2004-04-06 2006-03-28 Sandisk Corporation Variable programming of non-volatile memory
EP1870814B1 (en) 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US20050273560A1 (en) 2004-06-03 2005-12-08 Hulbert Jared E Method and apparatus to avoid incoherency between a cache memory and flash memory
US7334179B2 (en) * 2004-06-04 2008-02-19 Broadcom Corporation Method and system for detecting and correcting errors while accessing memory devices in microprocessor systems
US7159069B2 (en) 2004-06-23 2007-01-02 Atmel Corporation Simultaneous external read operation during internal programming in a flash memory device
WO2006026645A2 (en) 2004-08-30 2006-03-09 Silicon Storage Technology, Inc. Systems and methods for providing nonvolatile memory management in wireless phones
US20060156177A1 (en) 2004-12-29 2006-07-13 Sailesh Kottapalli Method and apparatus for recovering from soft errors in register files
US7657696B2 (en) 2005-02-25 2010-02-02 Lsi Corporation Method to detect NAND-flash parameters by hardware automatically
US8200887B2 (en) * 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
US7707232B2 (en) 2005-05-13 2010-04-27 Microsoft Corporation Implementation for collecting unmanaged memory
US7934049B2 (en) 2005-09-14 2011-04-26 Sandisk Corporation Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory
KR100705220B1 (ko) * 2005-09-15 2007-04-06 주식회사 하이닉스반도체 프로그램 속도를 증가시키기 위한 플래시 메모리 장치의소거 및 프로그램 방법
US7652922B2 (en) 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
KR100715147B1 (ko) 2005-10-06 2007-05-10 삼성전자주식회사 전류소모를 감소시키는 내부전원전압 발생회로를 가지는멀티칩 반도체 메모리 장치
US20070083697A1 (en) 2005-10-07 2007-04-12 Microsoft Corporation Flash memory management
US8223553B2 (en) * 2005-10-12 2012-07-17 Macronix International Co., Ltd. Systems and methods for programming a memory device
WO2007058617A1 (en) 2005-11-17 2007-05-24 Chee Keng Chang A controller for non-volatile memories, and methods of operating the memory controller
US7500062B2 (en) 2005-11-17 2009-03-03 International Business Machines Corporation Fast path memory read request processing in a multi-level memory architecture
US7546515B2 (en) * 2005-12-27 2009-06-09 Sandisk Corporation Method of storing downloadable firmware on bulk media
US7349264B2 (en) 2005-12-28 2008-03-25 Sandisk Corporation Alternate sensing techniques for non-volatile memories
KR100725410B1 (ko) 2006-01-20 2007-06-07 삼성전자주식회사 전원 상태에 따라 비휘발성 메모리의 블록 회수를 수행하는장치 및 그 방법
US20070234143A1 (en) * 2006-01-25 2007-10-04 Samsung Electronics Co., Ltd. Semiconductor memory devices and methods of testing for failed bits of semiconductor memory devices
JP4859471B2 (ja) 2006-02-02 2012-01-25 株式会社日立製作所 ストレージシステム及びストレージコントローラ
US7681106B2 (en) 2006-03-29 2010-03-16 Freescale Semiconductor, Inc. Error correction device and methods thereof
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US20070245061A1 (en) 2006-04-13 2007-10-18 Intel Corporation Multiplexing a parallel bus interface and a flash memory interface
US7707481B2 (en) 2006-05-16 2010-04-27 Pitney Bowes Inc. System and method for efficient uncorrectable error detection in flash memory
US20070300130A1 (en) * 2006-05-17 2007-12-27 Sandisk Corporation Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices
US7606084B2 (en) 2006-06-19 2009-10-20 Sandisk Corporation Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory
JP4842719B2 (ja) 2006-06-28 2011-12-21 株式会社日立製作所 ストレージシステム及びそのデータ保護方法
US7774684B2 (en) 2006-06-30 2010-08-10 Intel Corporation Reliability, availability, and serviceability in a memory device
JP2008047273A (ja) * 2006-07-20 2008-02-28 Toshiba Corp 半導体記憶装置およびその制御方法
US20080052446A1 (en) 2006-08-28 2008-02-28 Sandisk Il Ltd. Logical super block mapping for NAND flash memory
US7886204B2 (en) 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
JP2008117195A (ja) 2006-11-06 2008-05-22 Hitachi Ltd 半導体記憶装置
TWI307100B (en) 2006-11-07 2009-03-01 Macronix Int Co Ltd Memory and method for reading error checking thereof
US7596643B2 (en) 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
US7913022B1 (en) 2007-02-14 2011-03-22 Xilinx, Inc. Port interface modules (PIMs) in a multi-port memory controller (MPMC)
KR100918707B1 (ko) 2007-03-12 2009-09-23 삼성전자주식회사 플래시 메모리를 기반으로 한 메모리 시스템
JP4897524B2 (ja) * 2007-03-15 2012-03-14 株式会社日立製作所 ストレージシステム及びストレージシステムのライト性能低下防止方法
KR100907218B1 (ko) 2007-03-28 2009-07-10 삼성전자주식회사 읽기 레벨 제어 장치 및 그 방법
WO2008121553A1 (en) 2007-03-29 2008-10-09 Sandisk Corporation Non-volatile storage with decoding of data using reliability metrics based on multiple reads
WO2008121577A1 (en) 2007-03-31 2008-10-09 Sandisk Corporation Soft bit data transmission for error correction control in non-volatile memory
US8032724B1 (en) 2007-04-04 2011-10-04 Marvell International Ltd. Demand-driven opportunistic garbage collection in memory components
US7996642B1 (en) 2007-04-25 2011-08-09 Marvell International Ltd. Digital locked loop on channel tagged memory requests for memory optimization
US8073648B2 (en) * 2007-05-14 2011-12-06 Sandisk Il Ltd. Measuring threshold voltage distribution in memory using an aggregate characteristic
JP5399403B2 (ja) 2007-10-31 2014-01-29 アギア システムズ インコーポレーテッド マルチレベルフラッシュメモリの系統誤差訂正
US8762620B2 (en) 2007-12-27 2014-06-24 Sandisk Enterprise Ip Llc Multiprocessor storage controller
US20090172335A1 (en) * 2007-12-31 2009-07-02 Anand Krishnamurthi Kulkarni Flash devices with raid
US8159874B2 (en) * 2008-01-22 2012-04-17 Micron Technology, Inc. Cell operation monitoring
US8271515B2 (en) 2008-01-29 2012-09-18 Cadence Design Systems, Inc. System and method for providing copyback data integrity in a non-volatile memory system
JP4617405B2 (ja) 2008-02-05 2011-01-26 富士通株式会社 不良メモリを検出する電子機器、不良メモリ検出方法およびそのためのプログラム
JP5166074B2 (ja) * 2008-02-29 2013-03-21 株式会社東芝 半導体記憶装置、その制御方法、および誤り訂正システム
US8185706B2 (en) 2008-04-30 2012-05-22 Apple Inc. Copyback optimization for memory system
KR101412690B1 (ko) 2008-05-28 2014-06-27 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
KR101412974B1 (ko) 2008-05-28 2014-06-30 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
US8627169B2 (en) 2008-06-20 2014-01-07 Cadence Design Systems, Inc. Method and apparatus for dynamically configurable multi level error correction
KR101484556B1 (ko) 2008-10-28 2015-01-20 삼성전자주식회사 독출 보상 회로
US8645749B2 (en) * 2009-02-04 2014-02-04 Micron Technology, Inc. Systems and methods for storing and recovering controller data in non-volatile memory devices
KR20100090439A (ko) 2009-02-06 2010-08-16 주식회사 하이닉스반도체 불휘발성 메모리 장치의 독출 방법 및 이를 구현하는 불휘발성 메모리 장치
US20100281207A1 (en) * 2009-04-30 2010-11-04 Miller Steven C Flash-based data archive storage system
US7941696B2 (en) * 2009-08-11 2011-05-10 Texas Memory Systems, Inc. Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes
JP5197544B2 (ja) 2009-10-05 2013-05-15 株式会社東芝 メモリシステム
US8130553B2 (en) * 2009-12-02 2012-03-06 Seagate Technology Llc Systems and methods for low wear operation of solid state memory
US8213255B2 (en) 2010-02-19 2012-07-03 Sandisk Technologies Inc. Non-volatile storage with temperature compensation based on neighbor state information
US8365041B2 (en) 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1882918A (zh) * 2003-10-03 2006-12-20 桑迪士克股份有限公司 快闪存储器数据校正及擦除技术
CN101529522A (zh) * 2005-10-25 2009-09-09 晟碟以色列有限公司 从闪速存储器中的错误恢复的方法

Also Published As

Publication number Publication date
US8484533B2 (en) 2013-07-09
US20120272106A1 (en) 2012-10-25
WO2011116071A3 (en) 2011-12-22
US8484534B2 (en) 2013-07-09
JP2013522776A (ja) 2013-06-13
WO2011116071A2 (en) 2011-09-22
EP2548121B1 (en) 2017-11-29
US8473814B2 (en) 2013-06-25
KR101795093B1 (ko) 2017-11-07
EP2548121A2 (en) 2013-01-23
US20110228601A1 (en) 2011-09-22
US8365041B2 (en) 2013-01-29
US20120266052A1 (en) 2012-10-18
CN102906712A (zh) 2013-01-30
KR20130055583A (ko) 2013-05-28
EP2548121A4 (en) 2015-11-18
US20120266032A1 (en) 2012-10-18

Similar Documents

Publication Publication Date Title
CN102906712B (zh) Mlc自raid闪速数据保护方案
US8631294B2 (en) Methods and devices to increase memory device data reliability
JP4391941B2 (ja) メモリセルの隣接する行の記憶素子間の結合の効果を減少させる方法
US9159441B2 (en) Method of operating memory device assuring reliability and memory system
US8775901B2 (en) Data recovery for defective word lines during programming of non-volatile memory arrays
JP6312698B2 (ja) ソリッドステートドライブ内の下位ページデータ復旧を行うシステム及び方法
US10762967B2 (en) Recovering from failure in programming a nonvolatile memory
CN111078131A (zh) 使用交叉写入分开晶片平面
WO2019221810A1 (en) On-chip copy with data folding in the three-dimensional non-volatile memory array
US11656990B2 (en) Memory system and operating method thereof
CN113157486B (zh) 一种存储器的纠错方法及装置
US11216208B1 (en) Memory system, memory controller, and operation method of memory system
US20160077913A1 (en) Method of controlling nonvolatile memory
US11669266B2 (en) Memory system and operating method of memory system
Yang et al. Retention failure recovery technique for 3D TLC NAND flash memory via wordline (WL) interference
US11495319B2 (en) Memory system, memory controller, and method for operating memory system performing integrity check operation on target code when voltage drop is detected
US12105967B2 (en) Two-tier defect scan management
US20250013529A1 (en) Data protection with time-varying in-situ data refresh
US20240071528A1 (en) Managing defective blocks during multi-plane programming operations in memory devices

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
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160523

Address after: Texas, USA

Patentee after: SANDISK TECHNOLOGIES Inc.

Address before: American California

Patentee before: SanDisk Enterprise Intellectual Property Co.,Ltd.

C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: Texas, USA

Patentee after: SANDISK TECHNOLOGIES LLC

Address before: Texas, USA

Patentee before: SANDISK TECHNOLOGIES Inc.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20250320

Address after: U.S.A.

Patentee after: SANDISK TECHNOLOGIES Inc.

Country or region after: U.S.A.

Address before: texas

Patentee before: SANDISK TECHNOLOGIES LLC

Country or region before: U.S.A.