CN101095121B - 高速暂存区块 - Google Patents

高速暂存区块 Download PDF

Info

Publication number
CN101095121B
CN101095121B CN2005800422500A CN200580042250A CN101095121B CN 101095121 B CN101095121 B CN 101095121B CN 2005800422500 A CN2005800422500 A CN 2005800422500A CN 200580042250 A CN200580042250 A CN 200580042250A CN 101095121 B CN101095121 B CN 101095121B
Authority
CN
China
Prior art keywords
data
block
page
sector
unit
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
CN2005800422500A
Other languages
English (en)
Other versions
CN101095121A (zh
Inventor
艾伦·戴维·贝内特
瑟吉·阿纳托利耶维奇·戈罗别茨
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.)
Delphi International Operations Luxembourg SARL
Original Assignee
SanDisk Corp
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 SanDisk Corp filed Critical SanDisk Corp
Publication of CN101095121A publication Critical patent/CN101095121A/zh
Application granted granted Critical
Publication of CN101095121B publication Critical patent/CN101095121B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/10Programming or data input circuits
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

在具有区块作为最小擦除单位的存储器阵列中,使用高速暂存区块来存储稍后写入到另一区块的数据。所述数据可以低并行度写入到所述高速暂存区块,且稍后以高并行度写入到另一位置,以使得其以高密度进行存储。数据可临时存储在所述高速暂存区块中,直到其可更有效地存储在其它地方为止。在接收到某些其它数据时也可如此。不相关的数据可存储在高速暂存区块的同一页面中。

Description

高速暂存区块
技术领域
本发明一般来说涉及非易失性快闪存储系统的操作,且更具体地说,涉及在非易失性快闪存储器内对数据进行编程的更有效方法。
背景技术
当今正使用多种商业上成功的非易失性存储器产品,尤其是以小型化卡的形式,其使用形成于一个或一个以上集成电路芯片上的快闪EEPROM(电可擦除且可编程只读存储器)单元阵列。存储控制器(通常但未必位于单独集成电路芯片上)与主机介接,所述卡可移除地连接到所述主机,且所述存储控制器控制所述卡内的存储器阵列的操作。此类控制器通常包括微处理器、某一非易失性只读存储器(ROM)、易失性随机存取存储器(RAM)和一个或一个以上专用电路,例如在编程和读取数据期间当数据穿过控制器时从所述数据计算误差校正码(ECC)的电路。一些市售卡为CompactFlashTM(CF)卡、多媒体卡(MMC)、安全数字(SD)卡、个人标签(personal tag,P-Tag)和存储棒卡。主机包括个人计算机、笔记本计算机、个人数字助理(PDA)、各种数据通信装置、数码相机、蜂窝电话、便携式音频播放器、汽车音响系统和类似类型的设备。在某些系统中,可移除卡不包括控制器,且主机控制所述卡中存储器阵列的操作。此类型的存储系统的实例包括智能媒体卡(Smart Media card)和xD卡。因此,对存储器阵列的控制可由卡中控制器上的软件来实现或由主机中的控制软件来实现。除存储卡实施方案外,这种类型的存储器可替代地嵌入到各种类型的主机系统中。在可移除应用和嵌入式应用两者中,主机数据可根据存储器控制软件所实施的存储机制而存储在存储器阵列中。
两种常用存储单元阵列结构已找到商业应用,即或非和与非。在典型的或非阵列中,存储单元连接在相邻的位线源与在列方向上延伸的漏极扩散之间,其中控制栅极连接到沿单元的行延伸的字线。存储单元包括至少一个存储元件,所述存储元件定位在源极与漏极之间的单元通道区的至少一部分上方。存储元件上的已编程电荷电平因此控制所述单元的操作特征,接着可通过向所寻址的存储单元施加恰当电压来读取所述操作特征。此类单元、其在存储系统中的使用和制造所述单元的方法的实例在第5,070,032号、第5,095,344号、第5,313,421号、第5,315,541号、第5,343,063号、第5,661,053号和第6,222,762号美国专利中给出。这些专利连同此申请案中所参考的所有其它专利和专利申请案全文均以引用的方式并入本文中。
与非阵列利用两个以上存储单元(例如16或32个)的串联串,所述两个以上存储单元连同一个或一个以上选择晶体管连接在个别位线与参考电位之间以形成单元的列。字线越过这些列中的较大数目的列内的单元而延伸。在编程期间,通过使所述串中的剩余单元较难接通以使得流经串的电流依赖于存储在被寻址单元中的电荷的电平,来读取和检验列内的个别单元。与非结构阵列和其作为存储系统的一部分的操作的实例可参阅第5,570,315号、第5,774,397号、第6,046,935号和第6,522,580号美国专利。
如在前面参考的专利中所论述,当前快闪EEPROM阵列的电荷存储元件是最常见的导电浮动栅极,其通常由导电掺杂多晶硅材料形成.快闪EEPROM系统中可用的替代类型的存储单元利用非导电介电材料代替导电浮动栅极来以非易失性方式存储电荷.由氧化硅、氮化硅和氧化硅形成的三层电介质(ONO)夹在导电控制栅极与存储单元通道上方的半导电衬底的表面之间.通过将来自单元通道的电子注射到氮化物中来对所述单元进行编程,在所述氮化物中所述电子被俘获并存储在受限区中,且通过将热空穴注射到氮化物来擦除所述单元.在Harari等人的第2003/0109093号美国专利申请公开案中描述使用介电存储元件的若干特定单元结构和阵列.
如在几乎所有集成电路应用中那样,快闪EEPROM存储单元阵列还存在缩小实施某一集成电路功能所需要的硅衬底区域的压力。仍然需要增加可存储在硅衬底的给定区域中的数字数据的量,以便增加给定尺寸存储卡和其它类型封装的存储容量,或增加容量并减小尺寸。一种用以增加数据存储密度的方法是在每个存储单元和/或每个存储单位或元件中存储一个以上数据位。这通过将存储元件电荷电平电压范围的窗口划分为两个以上状态来完成。使用四个此类状态允许每个单元均存储两个数据位,八个状态在每个存储元件中存储三个数据位,等等。在第5,043,940号和第5,172,338号美国专利中描述使用浮动栅极的多状态快闪EEPROM结构和其操作,且在前述第2003/0109093号美国专利申请公开案中描述使用介电浮动栅极的结构。多状态存储单元阵列的选定部分还可出于多种原因而以第5,930,167号和第6,456,528号美国专利中描述的方式,以两种状态(二进制)进行操作,所述美国专利连同此申请案中所引用的所有专利和专利申请案全文以引用的方式并入本文中。
典型的快闪EEPROM阵列的存储单元被划分成一起擦除的离散单元区块(擦除区块)。也就是说,擦除区块是擦除单位,即可同时擦除的最小数目的单元。每一擦除区块通常存储一个或一个以上数据页面,所述页面是最小的编程和读取单位,尽管可在不同子阵列或平面中并行编程或读取一个以上页面。每个页面通常存储一个或一个以上数据扇区,其中扇区大小由主机系统界定。实例性扇区包括512个字节的用户数据,随后是由磁盘驱动器建立的标准,加上关于用户数据和/或其中存储用户数据的擦除区块的某一数目的字节的开销信息。此类存储器通常在每个擦除区块内配置有16个、32个或更多页面,且每个页面均存储一个或仅几个主机数据扇区。
为了增加将用户数据编程到存储器阵列中且从存储器阵列读取用户数据期间的并行度,通常将所述阵列划分为若干子阵列(通常称为平面),其含有其自己的数据寄存器和其它电路以允许并行操作,以使得可将若干数据扇区同时编程到若干或所有所述平面中的每一者或同时从若干或所有所述平面中的每一者读取若干数据扇区。可将单个集成电路上的阵列物理地划分成若干平面,或每个平面可由单独的一个或一个以上集成电路芯片形成。在第5,798,968号和第5,890,192号美国专利中描述此类存储器实施方案的实例。
为了进一步有效管理存储器,可将擦除区块链接在一起,以形成虚拟区块或元区块.也就是说,每个元区块均被界定为包括来自每个平面的一个擦除区块.在第6,763,424号美国专利中描述元区块的使用.元区块由主机逻辑区块地址标识为用于编码和读取数据的目的地.类似地,元区块的所有擦除区块被一起擦除.可以元页面为单位来对元区块进行编程,所述元页面包含来自元区块中每个擦除区块的一个页面.以此类大区块和/或元区块进行操作的存储系统中的控制器执行许多功能,包括从主机接收到的逻辑区块地址(LBA)与存储单元阵列内的物理区块编号(PBN)之间的转译.擦除区块内的个别页面通常由区块地址内的偏移量来标识.地址转译通常涉及使用逻辑区块编号(LBN)和逻辑页面的中间项.在使用元区块的存储系统中,元区块可以是存储器阵列的最小有效擦除单位.因此,视存储器结构而定,最小擦除单位(区块)可以是擦除区块或元区块.视结构而定,术语“区块”可指代擦除区块或元区块.类似地,术语“页面”可指代存储系统的最小编程单位.视存储系统的结构而定,术语“页面”可以是单个擦除区块内的页面或者可以是越过若干擦除区块而延伸的元页面.
存储在元区块中的数据通常得到更新,更新的可能性随着元区块的数据容量的增加而增加。通常将一个元区块的已更新扇区写入到另一元区块。作为同一编程操作的一部分,通常还将未改变的扇区从原始元区块复制到新的元区块,以合并所述数据。或者,未改变的数据可保留在原始元区块中,直到稍后与已更新数据再次合并到单个元区块中为止。用于将当前数据合并到新区块且擦除仅含有废弃数据的区块的操作通常被称为“垃圾收集(garbage collection)”操作。
通常用保存在已擦除区块池(erased block pool)中的某些额外区块来操作大区块或元区块系统。当正更新少于区块容量的一个或一个以上数据页面时,通常将已更新页面写入到来自所述池的已擦除区块,且接着将未改变页面的数据从原始区块复制到擦除池区块。在前述第6,763,424号美国专利中描述此项技术的变化。随着时间过去,由于主机数据文件被重新写入并更新,因而许多区块可在其页面中相对较少数目的页面含有有效数据且剩余页面含有不再是当前的数据的情况下结束。为了能够有效使用阵列的数据存储容量,逻辑上相关的有效数据的数据页面不时地从多个区块间的片段聚集在一起,且一起合并到较少数目的区块中。这个过程通常被命名为“垃圾收集”。
在一些存储系统中,物理存储单元还被分组成两个或两个以上区。区可以是物理存储器或存储系统的任何分割子集,指定范围的逻辑区块地址被映射到所述子集中。举例来说,可将能够存储64兆字节的数据的存储系统分割成四个区,每个区存储16兆字节的数据。接着将逻辑区块地址范围也划分为四个群组,一个群组被分配到所述四个区中每一者的物理区块。在典型实施方案中,逻辑区块地址受到限制,以使得每一者的数据永远不会写入在逻辑区块地址映射到其中的单个物理区的外部。在划分为若干平面(子阵列)(其每一者均具有其自己的寻址、编程和读取电路)的存储单元阵列中,每个区均优选地包括来自多个平面的区块,通常来自平面中每一者的区块的数目相同。区主要用于简化地址管理,例如逻辑到物理转译,从而导致转译表较小、保存这些表所需的RAM存储器较少且用以寻址当前有效存储区的存取时间较快,但由于其限制性本质可导致欠佳损耗均衡。
个别快闪EEPROM单元在代表一个或一个以上数据位的电荷存储元件或单位中存储一定量的电荷.存储元件的电荷电平控制其存储单元的阈值电压(通常标注为Vt),所述阈值电压被用作读取所述单元的存储状态的基础.阈值电压窗口通常被划分为许多范围,一个范围对应于存储单元的两个或两个以上存储状态中的每一者.这些范围由安全带分开,所述安全带包括允许确定个别单元的存储状态的标称感测电平.这些存储电平的确由于电荷干扰在相邻或其它相关存储单元、页面或区块中执行的编程、读取或擦除操作而发生移位.因此,误差校正码(ECC)通常由控制器来计算且与正被编程的主机数据一起存储,并在读取期间用于检验所述数据且在必要时执行某一等级的数据校正.而且,在干扰操作致使电荷电平完全从其界定范围移位出来且因此导致错误数据被读取之前,移位电荷电平可不时恢复到所述电荷电平的状态范围的中央.在第5,532,962号和第5,909,449号美国专利中描述这个过程,其被命名为数据刷新或清理.
在一些存储器阵列中,页面可由擦除区块中可保存多个数据扇区的一部分组成。一旦页面已被写入,不可能在不破坏已经写入的数据的情况下进行进一步写入。对于使用此类系统的存储器阵列来说,页面可由一组连接到同一字线的存储单元来界定。在接收到小于页面尺寸的量的数据的情况下,可低效地对此类存储器阵列进行编程。举例来说,在一次一个扇区地接收到数据的情况下,可仅将一个扇区编程到页面。在没有破坏已经保存在那里的数据扇区的风险的情况下,不可能将任何额外数据编程到页面。有时,可接收到一连串单个扇区,其中在所述扇区之间具有某一延迟。在此情况下,将每个扇区写入到存储器阵列的单独页面。因此,以低效地使用存储器阵列中的空间的方式来存储所述扇区。在使用多级逻辑的情况下,存储单元对于附近单元的稍后编程的影响特别敏感。另外,编程多级单元一般是通过用第一数据页面对单元群组进行编程且稍后用第二数据页面对所述单元进行编程来完成的。在某些情况下,对第二数据页面进行编程可造成对第一数据页面的破坏。因此,需要一种更有效的方法来在具有多扇区页面的存储器阵列接收到小于页面的量的数据时,在所述存储器阵列中存储数据。还需要一种用以在对多级单元群组进行编程时,防止在对随后页面进行编程期间破坏第一页面的数据的方法。
发明内容
在擦除单位为区块的存储器阵列中,可将一个或一个以上区块指定为高速暂存区块,且可将其用于改进存储系统的性能。高速暂存区块可作为缓冲器而操作,以使得数据以低并行度写入到高速暂存区块且接着以高并行度复制到所述存储器阵列内的另一位置。数据可在高速暂存区块中累积,直到所述数据可更有效地写入到另一位置为止。在具有多扇区页面的存储器中,扇区可累积,直到可使用所述系统的最大并行性来写入完整页面为止。在多级单元存储器中,下层页面可存储在高速暂存区块中,直到上层页面可用为止,以使得上层页面和下层页面被一起存储。
特定程序操作的并行度与一起被编程的数据位的数目成比例。因此,对较大量的数据一起进行编程被视作具有高并行性的写入,而对较小量的数据一起编程进行被视作低并行性。在使用小于一页面的并行性的情况下,浪费了存储器阵列中的空间,且此浪费的空间意味着必须更频繁地执行垃圾收集,从而不利地影响存储系统的效率。有时,较小量的数据必须存储在存储系统中。通过将这些小写入(small write)写入在一个位置(高速暂存区块)中,且稍后以较高并行性将所述小写入一起写入到另一位置,可改进存储系统的效率。
本发明揭示一种在具有由多个数据扇区组成的页面作为最小编程单位的存储系统中存储以少于一个页面的量接收的数据的方法.被指定为高速暂存区块的区块用于存储所接收到的扇区,直到可将完整的页面写入到快闪存储器阵列为止.第一扇区存储在高速暂存区块的第一页面中.随后接收到的扇区可存储在高速暂存区块的额外页面中.个别地接收到的扇区或扇区群组在被接收时保存在高速暂存区块的新页面中.来自高速暂存区块中其它页面的先前存储的扇区可连同新数据一起被复制到最新页面.因此,只要高速暂存区块的页面中存在少于完整页面的新数据,就在高速暂存区块中累积数据扇区.可以低于区块的最大可用并行性的并行度将扇区写入到高速暂存区块.可在将扇区存储在高速暂存区块中的同时更新所述扇区.当接收到导致完整数据页面可用于编程的新数据扇区时,可将所述新扇区和先前存储在高速暂存区块中的扇区一起编程到存储器阵列的另一区块中的同一页面.此页面完全由数据填充且以最大可用并行性进行写入.接着,可将存储在高速暂存区块中的数据标记为废弃,且可在适宜时间将其擦除.因此,更有效地使用了快闪存储器中的空间,且降低了垃圾收集操作的频率.
在具有多级单元的存储器中,高速暂存区块可存储还被写入到现用区块的数据页面。所存储的页面可保存在高速暂存区块中,直到接收到另一数据页面为止,以使得所述两个数据页面可一起写入到其在现用区块中的目的地。可使用高并行度将所述两个数据页面作为上层页面和下层页面一起写入,且这样做破坏数据的风险低于将所述两个数据页面单独写入时的风险。高速暂存区块还可用于在对相关联的上层页面进行编程期间保留先前编程的下层页面的副本,以使得在存在电力丧失的情况下,可从高速暂存区块恢复下层页面中的数据。
高速暂存区块可允许临时存储待写入到另一位置的数据。可在更新区块的数据扇区期间,将数据存储在高速暂存区块中。在区块内的页面含有来自不同文件的数据扇区的情况下,在更新任一区块时更新所述页面。使用常规方法来存储来自所述两个文件的已更新数据可能需要一个以上区块,因为可能需要多文件页面的两个副本。使用高速暂存区块允许存储来自一个文件的页面的一部分,直到(来自另一文件的)页面的剩余部分可用为止。接着,使用最大并行性将完整的已更新页面编程到其目的地。
高速暂存区块可含有不相关的数据扇区。主机数据扇区和控制数据扇区两者均可存储在高速暂存区块中。主机数据扇区和控制数据扇区两者均可存储在高速暂存区块内的同一页面中。来自两个不同文件或来自同一文件的逻辑上遥远部分的扇区可存储在高速暂存区块的同一页面中。这可允许以最大并行性来对高速暂存区块进行编程,以使得在接收数据时维持高速度。在以低速度接收数据的情况下,页面中的额外空间可由含有控制数据的扇区占用。这可允许较不频繁地更新控制数据结构,从而降低垃圾收集的频率。
高速暂存可由标记扇区来标识,以使得控制器可容易地识别所述高速暂存。存储在高速暂存区块中的数据的索引可保存在索引扇区中,所述索引扇区本身存储在高速暂存区块中。当将新扇区存储在高速暂存区块中时,通过用新索引扇区代替旧索引扇区来更新索引扇区。类似地,当将高速暂存区块中的扇区复制到其它位置时,可更新索引扇区来指示高速暂存区块中的这些扇区是废弃的。
附图说明
图1A和1B分别是一起操作的非易失性存储器和主机系统的方框图。
图2说明图1A的存储器阵列的第一实例性组织。
图3展示存储在图1A的存储器阵列中的具有开销数据的实例性主机数据扇区。
图4说明图1A的存储器阵列的第二实例性组织。
图5说明图1A的存储器阵列的第三实例性组织。
图6展示图1A的存储器阵列的第三实例性组织的扩展。
图7是在一个特定配置中的图1A的阵列的存储单元群组的电路图。
图8展示存储器阵列(例如图1A的存储器阵列)的区块中的数据扇区的存储。
图9展示存储器阵列(例如图1A的存储器阵列)的区块中的数据扇区的替代性存储。
图10A展示在垃圾收集操作期间在复制到另一区块之后的图8或9的数据扇区。
图10B展示在第二垃圾收集操作期间在复制到另一区块之后的图10A的数据扇区。
图10C展示在接收到更多数据扇区之后的图10B的区块。
图11A展示使用两个擦除区块(现用区块和高速暂存区块)来存储图10A和10B的数据扇区的替代性存储布置。
图11B展示使用两个元区块(现用区块和高速暂存区块)来存储图10A和10B的数据扇区的替代性存储布置。
图12A展示两个区块(现用区块和高速暂存区块),其用于存储数据扇区,以使得可在存储的同时更新所述数据扇区,而不触发垃圾收集操作。
图12B展示图12A的存储系统的替代性存储系统,其允许页面的所有扇区均在存储的同时得到更新,而不触发垃圾收集。
图13展示用于在多级单元中存储两个数据位的四个阈值电压范围。
图14展示两个具有多级单元的区块(现用区块和高速暂存区块),其中所述高速暂存区块保存现用区块的下层页面的副本。
图15展示来自存储在区块中的两个文件的数据扇区和在更新所述两个文件时随后存储所述数据扇区需要存储器阵列中一个以上区块的空间。
图16展示更新图15的数据扇区的替代性系统,其中在将一些扇区复制到现用区块之前,高速暂存区块存储所述扇区。
图17展示在同一页面中存储不相关数据扇区的高速暂存区块和随后将此数据复制到不同位置。
图18展示存储经历多次更新的不相关数据扇区的高速暂存区块。
图19展示由标记扇区标识的高速暂存区块。
图20展示存储扇区群组和索引扇区的图19的高速暂存区块。
图21展示存储第二扇区群组和取代第一索引扇区的第二索引扇区的图20的高速暂存区块。
图22展示存储第三扇区群组和取代第二索引扇区的第三索引扇区的图21的高速暂存区块。
图23展示具有在将群组复制到另一区块时取代第三索引扇区的第四索引扇区的图22的高速暂存区块。
具体实施方式
存储器结构和其操作
首先参照图1A,快闪存储器包括存储单元阵列和控制器.在所示实例中,两个集成电路装置(芯片)11和13包括存储单元阵列15和各种逻辑电路17.所述逻辑电路17通过数据、命令和状态电路与单独芯片上的控制器19介接,且还向阵列13提供寻址、数据传送和感测以及其它支持.存储器阵列芯片的数目可从一到许多,视所提供的存储容量而定.控制器和部分或整个阵列可替代性地组合到单个集成电路芯片上,但这在当前不是经济的替代方案.
典型的控制器19包括微处理器21、主要用于存储固件的只读存储器(ROM)23和主要用于临时存储写入到存储器芯片11和13或从存储器芯片11和13读取的用户数据的缓冲存储器(RAM)25。电路27与存储器阵列芯片介接,且电路29通过连接31而与主机介接。在此实例中,通过用电路33计算ECC来确定数据的完整性,所述电路33专用于计算代码。当将用户数据从主机传送到快闪存储器阵列以供存储时,所述电路从所述数据计算ECC,且将所述代码存储在存储器中。当稍后从存储器读取所述用户数据时,所述用户数据再次经过电路33,所述电路33通过同一算法来计算ECC,并将所述代码与使用所述数据计算并与所述数据一起存储的那个代码进行比较。如果它们匹配,那么数据的完整性得到证实。如果它们不同,那么视所利用的特定ECC算法而定,可识别并校正那些错误的位(至多达由所述算法支持的数目)。
图1A的存储器的连接31与主机系统的连接31′紧密配合,所述连接31′的实例在图1B中给出。主机与图1A的存储器之间的数据传送是通过接口电路35的。典型的主机也包括微处理器37、用于存储固件代码的ROM 39和RAM 41。其它电路和子系统43通常包括高容量磁性数据存储盘驱动器(high capacity magnetic data storage disk drive),用于键盘、监视器和类似物的接口电路(视特定主机系统而定)。此类主机的一些实例包括桌上型计算机、膝上型计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、MP3和其它音频播放器、数码相机、摄像机、电子游戏机、无线和有线电话装置、应答机、录音机、网路路由器和其它装置。
图1A的存储器可实施为具有可移除地与图1B的主机连接的形式的小型封闭式卡,其含有控制器和所有其存储器阵列电路装置。也就是说,配合连接31和31′允许将卡分离并移到另一主机,或通过将另一卡连接到主机来代替所述卡。或者,存储器阵列装置可封闭在单独卡中,所述单独卡可与含有控制器和连接31的卡进行电连接和机械连接。作为另一替代方案,图1A的存储器可嵌入在图1B的主机内,其中可永久获得连接31和31′。在此情况下,存储器通常连同其它组件包含在主机的外壳内。
图2说明存储器阵列的一部分,其中存储单元被分组成若干擦除区块,作为单个擦除操作的一部分,每个擦除区块中的单元可一起被擦除(通常是同时的)。在此类型的存储器中,擦除区块是最小擦除单位。
图2的个别存储单元擦除区块的大小可变化,但一种商业上实践的形式在个别擦除区块中包括单个数据扇区。图3中说明此类数据扇区的内容。用户数据51通常是512个字节。除用户数据51之外还有开销数据,所述开销数据包括从用户数据计算得出的ECC 53、与扇区数据和/或擦除区块(在所述擦除区块中对扇区进行编程)相关的参数55和从所述参数55计算得出的ECC 57,以及可能包括在内的任何其它开销数据。
还可在参数55中包括一个或一个以上旗标,所述旗标指示状况或状态.用于编程和/或擦除所述擦除区块的电压电平的指示也可存储在参数55内,将这些电压更新为由擦除区块经历的循环的数目,且其它因数发生变化.参数55的其它实例包括擦除区块内任何有缺陷单元的标识、映射到此物理擦除区块中的所述擦除区块的逻辑地址和在主要擦除区块有缺陷的情况下任何替代擦除区块的地址.任何存储系统中所使用的参数55的特定组合将根据设计而变化.而且,所述开销数据中的一些或所有可存储在专用于此类功能的擦除区块中,而并非存储在含有用户数据或开销数据所属于的擦除区块中.
与图2的单数据扇区擦除区块不同的是图4的多扇区擦除块。实例性擦除区块59(仍然是最小擦除单位)含有四个页面0-3,所述页面中的每一者均为最小编程单位。每个页面中存储一个或一个以上主机数据扇区,通常连同至少包括从所述扇区的数据计算得出的ECC的开销数据,且所述主机数据扇区可具有图3的数据扇区的形式。
重新写入整个区块的数据通常涉及将新数据编程到擦除区块池的区块中,接着将原始区块擦除并放置在擦除池中。当更新少于区块的所有页面的数据时,通常将已更新数据存储在来自己擦除区块池的区块的页面中,且将剩余的未改变页面中的数据从原始区块复制到新区块中。接着擦除原始区块。此大区块管理技术的变化包括将已更新数据写入到另一区块的页面中,而不从原始区块移动数据或将数据擦除。这导致多个页面具有同一逻辑地址。最新近的数据页面由某一适宜技术(例如记录为扇区或页面开销数据中的字段的编程时间)来标识。
图5中说明另一多扇区区块布置。此处,整个存储单元阵列在物理上被划分为两个或两个以上平面(以四个平面0-3进行说明)。每个平面均为存储单元的子阵列,其具有其自己的数据寄存器、感测放大器、寻址解码器和类似物,以便能够在很大程度上独立于其它平面而进行操作。所有平面均可提供在单个集成电路装置上或多个装置上,实例是由一个或一个以上不同集成电路装置形成每个平面。图5的实例性系统中的每个区块均含有16个页面P0-P15,每个页面均具有一个、两个或更多主机数据扇区和某些开销数据的容量。
图6中说明又一存储单元布置。每个平面均含有较大数目的擦除单元区块。为了增加操作的并行度,不同平面内的擦除区块在逻辑上进行链接以形成元区块。图6中将一个此类元区块说明为由平面0的擦除区块3、平面1的擦除区块1、平面2的擦除区块1和平面3的擦除区块2形成。每个元区块均可在逻辑上进行寻址,且存储控制器分配并跟踪形成个别元区块的擦除区块。主机系统优选以等于个别元区块的容量的数据为单位与存储系统介接。举例来说,图6的此类逻辑数据区块61由逻辑区块地址(LBA)标识,所述LBA由控制器映射成组成元区块的区块的物理区块编号(PBN)。元区块的所有擦除区块一起被擦除,且优选地同时编程和读取来自每个擦除区块的页面。元区块可被视作系统中的擦除单位,在所述系统中,擦除区块以此方式链接。在具有元区块结构的某些存储阵列中,页面仅可与所述元区块的其它页面并行而进行编程。在这些存储阵列中,元页面是元区块的最小编程单位,所述元页面由来自所述元区块的每个平面的页面组成。
存在多种可用于实施上文相对于图2-6描述的存储器的不同存储器阵列结构、配置和特定单元结构.图7中展示与非型存储器阵列的一个擦除区块.串联连接的存储单元的较大数目的列导向串连接在电压Vss的共用源65与位线BL0-BLN中的一者之间,所述位线BL0-BLN又与电路67连接,所述电路67含有地址解码器、驱动器、读取感测放大器和类似物.具体地说,一个此类串含有串联连接在位于所述串的相对端的选择晶体管77与79之间的电荷存储晶体管70、71……72和74.在此实例中,每个串均含有16个存储晶体管,但其它数目也是可能的.字线WL0-WL15越过每个串的一个存储晶体管而延伸,且连接到电路81,其含有字线的地址解码器和电压源驱动器.线83和84上的电压对通过其选择晶体管将擦除区块中的所有串一起连接到电压源65和/或位线BL0-BLN进行控制.数据和地址来自存储控制器.
擦除区块的每个电荷存储晶体管(存储单元)行均可形成一起编程和读取的页面。可将恰当电压施加到此类页面的字线(WL)以用于编程或读取其数据,而选择施加到剩余字线的电压来使其各自的存储晶体管变得导电。在编程或读取一个存储晶体管行(页面)的过程中,由于越过所有串而施加且施加到其字线的电压的缘故,未选择的行上的先前存储的电荷电平可能受到干扰。这可防止在特定行中的其它单元已被编程之后对所述行的某些单元进行编程。多状态快闪存储器对于干扰特别敏感。逻辑状态的数目增加导致针对个别状态的阈值电压范围较窄,以使得电荷电平的较小变化可产生逻辑状态的变化。随着数据存储密度通过在单元中使用增加数目的逻辑状态而增加,对干扰的敏感性增加。因此,不可能在一行中的其它单元被编程之后将数据编程到所述行中的某些单元,而不破坏已编程单元中的数据。因此,由随后对相邻单元进行编程引起的干扰可界定页面大小。如果一行中的单元不能在对同一行中其它单元进行编程之后被编程,那么所述行界定最小编程单位。因此,一单元行可含有一个数据页面。在此类存储器阵列中,如果一行中的一组单元被编程,那么所述行被视作已编程的,即使所述行中的某些单元不含有任何数据。在存储器阵列中具有不能随后被编程的空白单元是低效的。
已编程页面中的空白单元可由存储系统同时接收较小数目的扇区引起。举例来说,单个扇区可由主机发送到存储系统。所述扇区存储在快闪存储器阵列的页面中。所述扇区阻止对所述页面的随后写入。在一页面保存多个扇区的存储系统中,这可能是低效的。举例来说,在一页面包含四个数据扇区的情况下,在将单个扇区写入到所述页面时,使存储器阵列中能保存三个数据扇区的一部分保持空白。随着页面尺寸增加,来自此类部分填充的页面的浪费空间也增加。元页面可含有大量的扇区,所以存储可能在使用元区块的存储器阵列中特别低效。在接收到两个或两个以上扇区但接收到的扇区的数目小于页面中扇区的数目的情况下,具有类似问题。此类部分页面可存储在高速暂存区块中,直到接收到完整数据页面为止。
在写入经部分填充的数据页面之后,可实施已存储数据的合并,以将来自部分填充的页面的数据组合到已填充页面中。这可作为周期性实施的垃圾收集的一部分来完成。此类数据合并将数据从部分填充的页面复制到位于不同擦除区块中的完整页面。接着,将保存部分填充的页面的擦除区块标记为废弃,以使得所述擦除区块可被擦除并重新使用。此类操作可采用能用于其它功能的系统资源。
对存储器的单扇区写入的实例
图8展示存储系统中的存储器阵列的擦除区块(指定为现用区块800),其中页面由四个数据扇区组成.图中将页面0-5展示为每一者均在水平方向上延伸.每个页面均可含有指定为扇区0、扇区1、扇区2和扇区3的四个数据扇区.主机将单数据扇区发送到存储系统,所述数据扇区存储在现用区块800中.接收扇区X且将其存储为页面0的扇区0.这防止随后对页面0进行编程.因此,页面0的扇区1、2和3不被编程且保持空白(擦除).在对页面0进行编程之后,接收扇区X+1.将扇区X+1存储为页面1的扇区0.页面1的扇区1、2和3保持空白.在对扇区X+1进行编程之后,接收扇区X+2.将扇区X+2存储为页面2的扇区0.页面2的扇区1、2和3保持空白.在对扇区X+2进行编程之后,接收扇区X+3.将扇区X+3存储为页面3的扇区0.页面3的扇区1、2和3保持空白.
图9展示在擦除区块(指定现用区块900)中存储扇区的替代性方法。此处,代替每个页面仅存储一个扇区,将先前存储的扇区复制到同一擦除区块中的新页面,在所述新页面中,先前存储的扇区与更新近接收到的扇区一起存储。如前所述,将扇区X存储为页面0的扇区0。接着,接收扇区X+1并将其存储为页面1的扇区1,其中将扇区X从页面0复制到页面1的扇区0。因此,扇区X和扇区X+1两者均存储在页面1中。随后,接收扇区X+2并将其存储为页面2的扇区2。将扇区X存储为页面2的扇区0,且将扇区X+1存储为页面2的扇区1。因此,扇区X、X+1和X+2一起存储在页面2中。随后,接收扇区X+3并将其存储为页面3的扇区3。将扇区X存储为页面3的扇区0,将扇区X+1存储为页面3的扇区1,且将扇区X+2存储为页面3的扇区2。因此,四个数据扇区均存储在页面3中,以使得页面3完全由数据填充。
在图8中或图9中所示的扇区存储之后,可对数据进行合并。可将图8或图9的扇区X、X+1、X+2和X+3复制到新擦除区块的单个页面。这可在适宜时间作为垃圾收集的一部分来完成。图10A展示存储在指定现用区块100的页面0中的扇区X、X+1、X+2和X+3。擦除区块1000的页面0由数据填充。当现用区块1100的页面0经编程而具有扇区X、X+1、X+2和X+3时,可从从中复制扇区X、X+1、X+2和X+3的擦除区块中擦除扇区X、X+1、X+2和X+3。当现用区块800、900的内容在垃圾收集期间进行合并时,可擦除现用区块800、900并使其可用于存储新数据。
在对页面0进行编程之后,接收扇区X+4并将其存储为现用区块1000的页面1的扇区0。接着,个别地接收扇区X+5、X+6和X+7并分别将其存储在页面2、3和4中。可能再次需要合并扇区,以将扇区X+4、X+5、X+6和X+7合并到单个页面。此类扇区合并在不能写入主机数据期间进行。在第二次将数据合并到另一擦除区块之后,将从中复制所述数据的擦除区块1000标记为废弃且随后可将其擦除。
图10B展示在第二次垃圾收集操作使来自先前现用区块1000的数据重新定位之后的现用区块1010。扇区X+4到X+7被合并到现用区块1010的单个页面(页面1)中。随后,可接收更多扇区且可将其存储在现用区块1010中。如果以单扇区的形式接收此类扇区,那么如前所述,可在一页面中存储单个扇区。
图10C展示现用区块1010,其中额外扇区X+8到X+11存储在页面2-5中。此时,可能需要另一垃圾收集操作来合并扇区X+8到X+11。因此,为了将从主机接收到的扇区作为单扇区进行有效存储,此方法使用多个垃圾收集操作,所述垃圾收集操作需要将数据从一个擦除区块传送到另一擦除区块,且擦除所述第一擦除区块。在更大擦除区块中,垃圾收集操作的数目更大。在使用元区块的存储系统中,一组擦除区块可经链接以使得其可一起擦除且一起编程。可在含有许多扇区的元页面中对数据进行编程。因此,由于所必需的垃圾收集的量的缘故,存储单扇区变得非常低效。
图11A展示存储数据的替代性方法.图11A展示存储器阵列的两个擦除区块.现用区块1110是数据可在其中编程以供长期存储的擦除区块.高速暂存区块1120是数据可在其中编程以供短期存储的擦除区块.当接收到小数目的扇区时,首先将其存储在高速暂存区块1120中.扇区继续被存储在高速暂存区块1120中,直到接收到足够扇区来填充数据页面为止.接着将这些扇区复制到现用区块1110的页面.
如前所述,接收扇区X并将其编程为高速暂存区块1120中的页面0的扇区0。随后,接收扇区X+1并将其存储为高速暂存区块1120的页面1的扇区1,其中将扇区X复制到页面1的扇区0。随后,接收扇区X+2并将其存储为高速暂存区块1120的页面2的扇区2,其中分别将扇区X和X+1存储为页面2的扇区0和扇区1。在将扇区X+2存储在高速暂存区块1120中之后,接收扇区X+3。此时,将扇区X、X+1、X+2和X+3写入到现用区块1110的页面0。这四个扇区形成完整的数据页面。因此,可有效地将扇区X、X+1、X+2和X+3存储在现用区块1110的页面0中。随后,个别地接收扇区X+4、X+5、X+6和X+7。将扇区X+4、X+5和X+6存储在高速暂存区块1120的页面3、4和5中,且在接收到扇区X+7时将扇区X+4、X+5和X+6复制到现用区块1110的页面1的扇区0、1和2。将扇区X+7直接编程到现用区块1110的页面1的扇区3。此时,高速暂存区块1120没有任何可用页面来存储数据,且可被指定为准备擦除(废弃)。可将新的擦除区块指定为用于待接收的下一扇区或扇区群组的高速暂存区块。尽管此实例展示接收单扇区,但此方法还可用于扇区群组,其中所述扇区群组具有少于页面中扇区数目的扇区。而且,尽管以上实例展示以最大并行性将来自高速暂存区块的数据写入到现用区块,但此类写入可以小于最大并行性的并行性来完成且仍然提供效率益处。因此,以一个并行度将扇区写入到高速暂存区块且随后以较高并行度将所述扇区写入到另一区块,以使得数据被更密集地压缩且不需要频繁的垃圾收集。
高速暂存区块还可用于使用元区块的存储器阵列。举例来说,图11B展示两个元区块,即现用区块1130和高速暂存区块1140。现用区块1130和高速暂存区块1140两者均具有四个平面(指示为平面0-3)。每个平面的宽度均为一个扇区,所以在区块1130或1140的元页面中存储四个扇区。两个区块均具有6个元页面(指示为元页面0-5)。用于有效地存储数据的技术与上文相对于擦除区块而描述的技术相同。在高速暂存区块1140中累积扇区,直到完整的数据元页面可用为止,此时将完整元页面编程到现用区块1130。举例来说,当接收到扇区X+3时,将完整元页面(扇区X、X+1、X+2和X+3)编程到现用区块1130的元页面0。元页面可具有大数目的扇区,因为元区块可具有许多平面,且平面的宽度可为若干页面。由于存储器阵列中原本会浪费的大量空间的缘故,上文所述的技术对于此类大元页面来说特别有价值。如相对于图11A和11B所示,相对于使用擦除区块结构的实例而描述的本发明的各方面还可应用于元区块结构,且反之亦然。视存储器阵列的配置而定,术语“区块”可指示擦除区块或元区块。在任一情况下,区块均为所述配置中所使用的擦除单位。类似地,术语“页面”可指代单个擦除区块内的页面或元区块的元页面。在任一情况下,页面均为所述配置的编程单位。
在接收到具有多于页面中扇区数目的扇区群组时,可将扇区直接编程到存储器阵列的现用区块,而无需首先将其存储在高速暂存区块中。因此,可以高并行度将完整数据页面直接编程到现用区块,而以低并行度将部分数据页面编程到高速暂存区块,直到其可作为完整页面程序的一部分写入到现用区块为止。控制器可确定特定扇区或扇区群组的目的地。在将扇区群组写入到现用区块将包括部分页面和完整页面写入两者的情况下,可将完整页面写入到现用区块,且可将部分页面写入到高速暂存区块。
图12A展示来自主机的扇区在存储于高速暂存区块中时得到更新的另一实例。接收第一扇区X0并将其存储在高速暂存区块1250的页面0中.此实例中的页面存储四个数据扇区.接着,接收X0的代替物(展示为X1)。此实例中的扇区根据其逻辑地址来编号,其中下标指示所述扇区是否为更新物,且如果是,哪种型式。因此,扇区X1是具有逻辑地址X的扇区,且是此扇区的第一更新型式。这是与X0具有相同逻辑地址的数据扇区,但可能含有反映某更新信息的不同数据。将扇区X1写入到高速暂存区块1250的页面1。控制器跟踪哪些扇区是当前的且哪些是废弃的。在高速暂存区块1250中,具有特定逻辑地址的扇区的最新近写入副本是当前型式。任何其它型式均是废弃的。因此,在对X1进行编程时,X0变为废弃的。在接收到扇区X1之后,接收扇区(X+1)0。这是在逻辑上与扇区X1连续的扇区。扇区X1和(X+1)0两者均被写入到页面2。随后,扇区(X+1)0由(X+1)1代替。这是代替扇区(X+1)0的扇区(X+1)0的更新型式。将扇区(X+1)1连同扇区X1写入到页面3。随后,接收扇区(X+2)0并将其写入到页面4。扇区(X+2)0随后由扇区(X+2)1代替,且连同扇区X1和(X+1)1写入到页面5。随后,接收扇区(X+3)0。因此,数据页面(扇区X1、(X+1)1、(X+2)1和(X+3)0)可用。将扇区X1、(X+1)1、(X+2)1和(X+3)0写入到指定为现用区块1252的区块。以完整页面写入的并行性将扇区X1、(X+1)1、(X+2)1和(X+3)0写入到现用区块1252。在此情况下,所述并行性为最大可能并行性。因此,即使已以低并行度将扇区X1、(X+1)1、(X+2)1和(X+3)0写入到高速暂存区块1250,它们也随后以高并行度写入到现用区块1252。这意味着扇区X1、(X+1)1、(X+2)1和(X+3)0被更有效地存储在现用区块中。更有效存储可导致较不需要频繁地进行垃圾收集,从而改进性能。
图12B中提供替代性实例。此实例类似于图12A中所示的实例,但此处扇区(X+3)0在复制到现用区块1252之前被存储在高速暂存区块1250中。这允许扇区(X+3)0在写入到现用区块1252之前得到更新。扇区(X+3)0被展示为通过由扇区(X+3)1代替来得到更新。完整的数据页面(扇区X1、(X+1)1、(X+2)1和(X+3)1)可保存在高速暂存区块1250中,准备被更新,直到某触发事件为止。在此情况下,接收扇区(X+4)0,从而提供触发事件。此时,以最大并行性将扇区X1、(X+1)1、(X+2)1和(X+3)1写入到现用区块1252。将扇区(X+4)0写入到高速暂存区块1250中的下一可用页面(页面8)。
图12C展示使用高速暂存区块1250更新数据的另一实例。将数据扇区X0到(X+15)0存储在原始区块1254中。主机发送扇区(X+6)1,其是与扇区(X+6)0具有同一逻辑地址的已更新扇区。因此,扇区(X+6)1将代替(X+6)0。为了代替扇区(X+6)0,原始区块1254的页面1(含有扇区(X+4)0到(X+7)0)与扇区(X+6)1组合,且将所述组合写入到高速暂存区块1250的页面0。组合这些扇区可发生在随机存取存储器(例如控制器随机存取存储器(controller ram)25)中或可在连接到存储器阵列的存储器寄存器中完成。可将已更新页面数据保存在高速暂存区块1250中而不将其写入到现用区块持续某段时间。在从主机接收到随后更新的扇区(X+5)1的情况下,可通过将扇区(X+5)1连同复制的扇区(X+4)0、(X+6)1和(X+7)0写入到高速暂存区块1250的另一页面(在此情况下,页面1)来在高速暂存区块1250中更新数据。可以此方式来执行高速暂存区块1250中的数据页面的多次更新。通过在高速暂存区块1250的新页面中代替已更新的数据扇区且复制未改变的数据扇区来进行更新。所复制的扇区在同一平面内复制,以使得可有效地执行复制。随后,可将已更新的数据页面复制到存储器阵列中的现用区块1252。可以此方式执行非连续更新,而不需要混乱的更新区块。举例来说,在以上实例中以非连续方式接收已更新的扇区(X+6)1和(X+5)1,但现用区块1252是连续的.可以此方式在高速暂存区块中同时保存和更新多个数据页面.可在不再希望更新页面时,将所述页面复制到现用区块.
多级单元编程的实例
某些种类的存储器可通过将浮动栅极存储单元的阈值电压范围划分为两个以上等级来在存储器阵列的每个单元中存储一个以上数据位。图13展示可如何对此类多级单元(MLC)存储器进行编程以提供表示不同逻辑状态的多个阈值电压的实例。展示四个不同阈值电压,标记为A、B、C和D。可将多个单元编程到每个电压。图13代表单元状态的分布,其中在垂直轴上表示单元的数目。每个阈值电压A、B、C和D均代表不同的逻辑状态。所述四个状态代表两个数据位,即来自下层数据页面的一个位和来自上层数据页面的一个位,如所指示。在某些实例中,可首先对所述下层页面进行编程。在对下层页面进行编程之后,单元处于状态A或B中。随后,可对所述上层页面进行编程,以使得单元保持在状态A或B中(上层位=1)或被修改为状态C或D(上层位=0)。因为这四个状态每一者均具有相对较窄的电压窗口,所以MLC存储器特别容易由于阈值电压中的相对的较小变化而受到数据破坏。在某些实例中,同时对下层页面和上层页面两者进行编程可能是有利的。这可帮助降低单元中由对邻近单元进行编程而造成的数据破坏,所述数据破坏(例如)可能在对上层页面数据进行编程期间发生。
图14展示可如何使用高速暂存区块1460来降低MLC存储器中的数据破坏的实例。图14展示现用区块1462和高速暂存区块1460两者,作为MLC存储器的区块。两个区块的页面均被编号且展示为“上层”或“下层”,视使用哪些阈值电压状态来存储所述页面的数据位而定。在此实例中,存储器首先接收扇区X到X+3,并将这些扇区存储在高速暂存区块1460的下层页面0中。随后,存储器接收扇区X+4到X+7。此时,将下层页面(扇区X到X+3)和上层页面(X+4到X+7)两者同时写入到现用区块1462。这可避免在对现用区块1462的上层页面0进行编程期间破坏现用区块1462的下层页面0。通常,对上层页面和下层页面一起进行编程所必需的时间与单独对上层页面进行编程所必需的时间相同,以使得此系统不具有时间损失。在用扇区X到X+7对现用区块1462的下层页面0和上层页面0进行编程之后,接收扇区X+8到X+11并将其编程到高速暂存区块1460的上层页面0。当接收到扇区X+12到X+15时,扇区X+8到X+11和扇区X+12到X+15与现用区块的上层页面1和下层页面1并行编程。此系统继续用于随后的数据扇区,如图所示。因此,将数据页面写入到高速暂存区块1460,且随后将此页面连同额外页面写入到现用区块1462,作为同一存储单元群组的上层页面和下层页面。到高速暂存区块1460的编程可以页面的并行性来发生,而到现用区块1462的编程以页面并行性的两倍来进行。
在替代性实施例中,可在不同时间将上层页面和下层页面写入到现用区块,但在现用区块中的下层页面在对上层页面进行编程期间受到破坏的情况下,将下层页面的副本保存在高速暂存区块中.在图14中,可接收扇区X到X+3并同时将其编程到现用区块1462的下层页面0和高速暂存区块1460的下层页面0两者.随后,接收扇区X+4到X+7并将其编程到现用区块1462的上层页面0.不将扇区X+4到X+7保存在高速暂存区块1460中.如果在将X+4到X+7编程到现用区块1462的上层页面0期间存在任何问题(例如电力丧失),那么现用区块1462的下层页面0中的数据可能受到破坏.也就是说,正被编程的单元的阈值电压可经修改,以使得它们不再处于代表下层页面的数据的状态中,而是尚未被完全编程到代表下层页面的数据的状态.举例来说,正被从图13中的状态A编程到状态D的单元可在编程停止时处于状态B或C.如果数据以此方式受到破坏,那么正被写入的下层数据页面可自从中复制所述下层数据页面的位置恢复.然而,在许多情况下,不存在下层页面的任何其它副本.此处,将下层页面的副本保存在高速暂存区块1460中,直到上层页面的编程完成为止.因此,存在下层页面的未破坏的副本,且可使用其来恢复下层页面的数据.
多个文件的实例
来自一个以上主机数据文件的数据可存储在单个区块中。文件之间的破裂可发生在页面内,以使得页面的一部分含有来自一个文件的数据,且页面的一部分含有来自另一文件的数据。图15展示其中原始区块1570的页面0到页面i-1含有来自第一文件(文件1)的数据且页面i+1到页面n-1含有来自第二文件(文件2)的数据的实例。页面i含有来自文件1的扇区(i*4)和(i*4)+1和来自文件2的扇区(i*4)+2和(i*4)+3。用阴影表示文件2的扇区以说明存在来自两个文件的扇区。
图15展示文件2被更新到新区块1572。新区块1572的第一页面(页面0)被写入有原始区块1570的页面i的内容。因此,新区块1572的页面0含有来自文件2和文件1两者的扇区。来自文件1的扇区(i*4)和(i*4)+1此时不被更新,但可被复制以便对完整数据页面进行编程。将已更新文件2的剩余部分编程到新区块1572的页面1到i-1。随后,更新文件1。将扇区0到扇区(i*4)-1存储在页面i到页面n-1。然而,扇区(i*4)和(i*4)+1也是文件1的一部分,且必须被更新。因为新区块1572此时是完整的,所以将已更新扇区(i*4)和(i*4)+1编程到另一区块。随后,作为垃圾收集操作的一部分,可将扇区(i*4)和(i*4)+1以及新区块1572中的扇区合并到单个区块。然而,这耗费时间和系统资源,且一般来说是不合需要的。
图16展示用于更新图15的原始区块1570的扇区的替代性技术,所述原始区块1570含有来自两个不同文件的扇区。此技术使用高速暂存区块1674来存储已更新扇区,直到它们可以系统的最大并行性写入作为完整的已更新页面的一部分时为止。当更新文件2时,将已更新扇区(i*4)+2和(i*4)+3写入到高速暂存区块1674。此处,将它们写入到高速暂存区块1674的页面0,且不将任何数据写入到所述页面的其它部分,以使得使用低并行度。文件2的剩余扇区(扇区(i*4)+4到N-1)被复制到新区块1676的页面0到n-i。这些扇区均以使用最大并行性的完整页面写入进行写入。随后,更新文件1。以最大并行性将扇区0到(i*4)-1编程到页面n-i+1到n-2中。接着与将扇区(i*4)+2和(i*4)+3复制到新区块1676的页面n-1并行而对文件1的扇区(i*4)和(i*4)+1进行写入。因此,先前保存在原始区块1570中的所有扇区的已更新副本现保存在新区块1676中,且任何废弃数据均不保存在新区块1676中。一般不需要对例如新区块1676的区块进行垃圾收集。以最大并行性来对新区块1676的每个页面进行编程,以实现区块中最大数据密度。此时,可将高速暂存区块1674中的扇区(i*4)+2和(i*4)+3标记为废弃。然而,高速暂存区块1674可用于进一步操作,而不需要垃圾收集操作,因为高速暂存区块常规含有当前数据和废弃数据两者。
存储非连续数据扇区的实例
在某些先前实例中,以小于写入完整页面的并行度的并行度将数据扇区写入到高速暂存区块.在此类实例中,正被写入的高速暂存区块的页面中的剩余空间可能保持空白,因为不可能稍后在不干扰已存储数据的情况下对所述空间进行编程.在某些情况下,可能使用此原本空白的空间和原本未使用的编程带宽来在同一页面中存储不相关的数据.举例来说,在存储系统接收少于一页面的单个扇区或扇区群组中的主机数据的情况下,这些主机数据扇区可存储在高速暂存区块的也保存不相关数据(例如不相关的主机数据或控制数据扇区)的页面中.类似地,正存储在高速暂存区块中以供稍后存储为完整页面的一部分的来自文件的开始的扇区可能具有在逻辑上不相关的存储在同一高速暂存区块中的额外扇区.
图17展示如先前实例中那样将扇区X、X+1和X+2存储在高速暂存区块1780中的实例。然而,此处保存扇区X、X+1和X+2的高速暂存区块的页面中的剩余空间用于存储其它数据。扇区Y、Y+1和Y+2与扇区X一起存储在页面0中。扇区Y、Y+1和Y+2在逻辑上可与扇区X、X+1和X+2不相关。扇区Y、Y+1和Y+2可来自另一主机数据文件或来自同一文件内的另一扇区群集。扇区Y、Y+1和Y+2可与扇区X、X+1和X+2不连续,且可在逻辑地址空间中分离。类似地,扇区Z和Z+1与扇区X和X+1一起存储在页面1中。扇区Z和Z+1在逻辑上可与扇区X、X+1和X+2和扇区Y、Y+1和Y+2两者均不相关。随后在接收到扇区X+3时,将扇区X、X+1、X+2和X+3写入到另一区块的页面。在接收到扇区Y+3时,将扇区Y、Y+1、Y+2和Y+3写入到另一区块的页面。因此,不相关的数据可存储在高速暂存区块的同一页面中,以更有效地使用可用资源。
图18展示存储在高速暂存区块1890中的不相关数据的另一实例。此处,如前所述存储并更新扇区X、X+1和X+2。然而,此处还并行存储并更新扇区Y。已更新扇区由指示存储什么型式的下标表示。举例来说,扇区X0是扇区X的原始型式,而X1是扇区X的第一更新型式。扇区Y可以是主机数据扇区或频繁更新的控制数据扇区。在某些系统中,在存储主机数据时,更新例如FAT信息的控制数据。在接收到少量主机数据的情况下,更新高速暂存区块1890中的控制数据可能是有利的。这可避免在仅更新单个控制数据扇区的情况下更新控制结构。在某一稍后时间,可使用来自高速暂存区块的控制数据来更新控制数据结构。
高速暂存区块管理
高速暂存区块可以是存储器阵列中的指定区块。可选择固定的物理位置作为高速暂存区块。然而,这可能导致存储器阵列的不均匀损耗。或者,可不时地改变指定区块,以使得当高速暂存区块变成由废弃数据填充时,选择另一擦除区块作为高速暂存区块。在此情况下,存储控制器所使用的数据结构可识别高速暂存区块的位置或所指定的高速暂存区块可被标记,以使得如果控制器扫描存储器阵列的擦除区块,那么其可确定哪个擦除区块是高速暂存区块。可使用将其标识为高速暂存区块的扇区来标记高速暂存区块。举例来说,图19展示将扇区2110标记为高速暂存区块2100的第一扇区。当使卡通电时,可扫描存储器阵列(或存储器阵列的一部分)的擦除区块来确定高速暂存区块的位置。在图19的实例中,读取每个擦除区块的第一扇区来判断其是否是指示高速暂存区块的标记扇区。
可将数据写入到高速暂存区块作为数据群组.数据群组是从主机处接收到在逻辑上连续的扇区群组.当将数据群组存储在高速暂存区块中时,还写入提供关于所存储的数据群组的信息的索引扇区.所述数据群组的扇区的位置可存储在索引扇区中.高速暂存区块(例如图19的高速暂存区块2100)可用于存储多个数据群组.图20展示存储一个数据群组的高速暂存2100.数据群组1由两个扇区2220、2221组成.这些扇区(标记扇区2110和索引扇区2230)存储在高速暂存2100中.索引扇区2230存储关于群组1的信息.
图21展示在对由两个扇区2340、2341组成的数据群组2进行编程之后,图20的高速暂存区块2100。索引扇区2350是存储关于群组1和群组2的信息的新索引扇区。因此,索引扇区2230是废弃的,因为索引扇区2350含有高速暂存区块2100的数据群组(包括群组1)的完整记录。
图22展示在对由扇区2460、2461和2462组成的数据群组3进行编程之后,图21的高速暂存区块2100。索引扇区2470是存储关于数据群组1、2和3的信息的新索引扇区。索引扇区2470含有高速暂存区块2100的数据的完整记录,且因此将索引扇区2350标记为废弃。
图23展示在从高速暂存区块2100读取数据群组1和数据群组2并将其写入为存储器阵列的另一区块中的单个页面之后,图22的高速暂存区块2100。索引扇区2560存储关于数据群组3的信息。高速暂存2100中的数据群组1和数据群组2是废弃的,且不需要索引,因为它们存储在其它地方。因此,索引扇区2560含有高速暂存区块2100中所有当前数据的完整记录。
当主机从存储器阵列请求数据扇区时,控制器可首先核查所请求的扇区是否在高速暂存区块中。如果所述扇区不存在于高速暂存区块中,那么可以常规方式搜寻所述扇区。因此,高速暂存不需要改变常规媒体管理,所述常规媒体管理用于跟踪存储器阵列中数据扇区的位置。
虽然已相对于各个示范性实施例描述了本发明,但将了解本发明有权在所附权利要求书的整个范围内受到保护。

Claims (21)

1.一种在具有区块作为最小擦除单位且页面作为最小编程单位的非易失性存储器阵列中存储可寻址数据单位的方法,其中页面含有一个或一个以上可寻址数据单位,页面含有小于区块的数据,所述方法包含:
以第一并行度在第一区块中写入多个可寻址数据单位;
随后将所述多个可寻址数据单位复制到第二区块,在所述第二区块中,所述可寻址数据单位以具有高于所述第一并行度的第二并行度的写入操作进行写入;和
随后将额外可寻址数据单位写入到所述第一区块,而所述第一区块含有所述多个可寻址数据单位。
2.根据权利要求1所述的方法,其中所述第一并行度小于对完整数据页面进行编程的并行性,且所述第二并行度是对完整数据页面进行编程的并行度。
3.根据权利要求1所述的方法,其中所述多个可寻址数据单位形成第一文件的一部分,所述部分小于一个数据页面,所述多个可寻址数据单位的随后复制与第二文件的一部分的编程并行,以使得所述第一文件的所述部分和所述第二文件的所述部分形成所述第二区块中的数据页面。
4.根据权利要求1所述的方法,其中所述第二区块含有多个多级单元,所述多个可寻址数据单位形成所述第一区块中的第一页面且与将第二数据页面写入到所述第二区块并行地被复制到所述第二区块,以使得所述第一页面和所述第二页面形成对所述多个多级单元进行编程的上层页面和下层页面。
5.根据权利要求1所述的方法,其中将所述多个可寻址数据单位与额外数据并行地写入到所述第二区块,以实现所述第二并行度。
6.一种将可寻址数据单位写入到非易失性存储器阵列中的多级单元的方法,所述存储器阵列具有区块作为擦除单位,多级单元具有对应于一个以上数据位的两个以上可能的编程状态,所述方法包含:
从主机接收第一可寻址数据单位和第二可寻址数据单位;
将所述第一可寻址数据单位编程到第一区块和第二区块的多个多级单元;
在将所述第一可寻址数据单位保存在所述第一区块中的同时,根据所述第二数据单位的位对所述第二区块的所述多个多级单元进行编程,而不将所述第二可寻址数据单位编程到所述第一区块;和
随后仅在检验到所述第二区块的所述多个多级单元被完全编程到反映所述第二数据单位的位的状态之后,才将所述第一区块中的所述第一可寻址数据单位标记为废弃。
7.根据权利要求6所述的方法,其中根据第二可寻址单位的位对所述第二区块的所述多个多级单元进行编程终止于中间阶段处,在所述中间阶段中,所述多级单元尚未达到反映所述第二数据单位的位的状态,但所述多级单元已从反映所述第一数据单位的位的状态进行修改,且随后从所述第一区块恢复所述第一数据单位的所述位。
8.根据权利要求6所述的方法,其中所述第一可寻址数据单位在第一时间被编程到所述第一区块,所述第一和第二可寻址数据单位随后在接收到所述第二可寻址数据单位的第二时间被编程到所述第二区块。
9.根据权利要求6所述的方法,其进一步包含在所述第一区块中的所有数据均被标记为废弃时,擦除所述第一区块。
10.一种在具有区块作为最小擦除单位且页面作为最小编程单位的非易失性存储器阵列中存储逻辑上不连续的可寻址数据单位的方法,所述方法包含:
在第一区块的第一页面中存储第一至少一个可寻址数据单位;
在所述第一区块的所述第一页面中,与所述第一至少一个可寻址数据单位并行地存储第二至少一个可寻址数据单位,所述第二至少一个可寻址数据单位在逻辑上与所述第一至少一个可寻址数据单位不连续;
随后将所述第一至少一个可寻址数据单位复制到第二区块,且将所述第二至少一个可寻址数据单位复制到第三区块;和
随后在所述第一区块保存所述第一至少一个可寻址数据单位和所述第二至少一个可寻址数据单位的同时,在所述第一区块中存储第三至少一个可寻址数据单位。
11.根据权利要求10所述的方法,其中所述第一至少一个可寻址数据单位包含主机数据,且所述第二至少一个可寻址数据单位包含控制数据。
12.根据权利要求10所述的方法,其中所述第一至少一个可寻址数据单位包含第一文件的多个逻辑上连续的可寻址主机数据单位,且所述第二至少一个可寻址数据单位包含第二文件的多个逻辑上连续的可寻址主机数据单位。
13.根据权利要求10所述的方法,其中将所述第三至少一个可寻址数据单位存储在所述第一区块的第二页面中,所述第三至少一个可寻址数据单位在逻辑上与所述第一和第二至少一个可寻址数据单位两者不连续。
14.根据权利要求13所述的方法,其中所述第一至少一个数据单位含有来自第一文件的数据,所述第二至少一个数据单位含有来自第二文件的数据,且所述第三至少一个数据单位含有来自第三文件的数据。
15.一种在将存储单元布置成擦除区块作为最小擦除单位的非易失性存储器阵列中存储数据的方法,其中若干擦除区块群组经链接以形成元区块,元页面是元区块的编程单位,所述方法包含:
在第一元区块的第一元页面中存储第一数据扇区;
在所述第一元区块的至少一第二元页面中存储至少一第二扇区;
在接收到第三数据扇区时,将所述第一数据扇区、所述至少一第二数据扇区和所述第三数据扇区一起写入到第二元区块的元页面;和
随后在所述第一元区块中存储第四数据扇区,而不从所述第一元区块擦除所述第一数据扇区和所述至少一第二数据扇区。
16.根据权利要求15所述的方法,其中经组合的所述第一数据扇区、所述至少一第二数据扇区和所述第三数据扇区形成完整的数据元页面。
17.根据权利要求15所述的方法,其中在将所述第一数据扇区、所述至少一第二数据扇区和所述第三数据扇区一起写入到所述第二元区块的元页面之后,不立即将所述第一元区块标记为废弃。
18.根据权利要求15所述的方法,其中将所述第一数据扇区从所述第一元页面复制到所述至少一第二元页面。
19.根据权利要求15所述的方法,其中所述第一数据扇区、所述至少一第二数据扇区和所述第三数据扇区形成所述第二元区块的元页面。
20.一种在将存储单元布置成擦除区块作为最小擦除单位的非易失性存储器阵列中存储数据的方法,其中页面是擦除区块的最小编程单位,所述方法包含:
在第一擦除区块的第一页面中存储第一数据扇区;
在所述第一擦除区块的至少一个额外页面中存储至少一个额外扇区;
在接收到最终数据扇区时,将所述第一数据扇区、所述至少一个额外数据扇区和所述最终数据扇区一起写入到第二擦除区块的页面;和
随后在所述第一擦除区块中存储第二数据扇区,而不从所述第一擦除区块擦除所述第一数据扇区和所述至少一个额外扇区。
21.根据权利要求20所述的方法,其中所述第一数据扇区、所述至少一个额外数据扇区和所述最终数据扇区一起完全填充所述第二擦除区块的所述页面。
CN2005800422500A 2004-12-16 2005-12-01 高速暂存区块 Active CN101095121B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/016,285 2004-12-16
US11/016,285 US7315916B2 (en) 2004-12-16 2004-12-16 Scratch pad block
PCT/US2005/043811 WO2006065566A1 (en) 2004-12-16 2005-12-01 Scratch pad block

Publications (2)

Publication Number Publication Date
CN101095121A CN101095121A (zh) 2007-12-26
CN101095121B true CN101095121B (zh) 2010-05-05

Family

ID=36190514

Family Applications (4)

Application Number Title Priority Date Filing Date
CN2005800422500A Active CN101095121B (zh) 2004-12-16 2005-12-01 高速暂存区块
CNB200580047187XA Expired - Fee Related CN100547565C (zh) 2004-12-16 2005-12-05 带多流更新跟踪的非易失性存储器和方法
CNA2005800483896A Pending CN101124556A (zh) 2004-12-16 2005-12-07 具有用于高速暂存器和更新区块的改进索引的非易失性存储器和方法
CN2005800473818A Expired - Fee Related CN101124555B (zh) 2004-12-16 2005-12-08 具有多流更新的非易失性存储器和方法

Family Applications After (3)

Application Number Title Priority Date Filing Date
CNB200580047187XA Expired - Fee Related CN100547565C (zh) 2004-12-16 2005-12-05 带多流更新跟踪的非易失性存储器和方法
CNA2005800483896A Pending CN101124556A (zh) 2004-12-16 2005-12-07 具有用于高速暂存器和更新区块的改进索引的非易失性存储器和方法
CN2005800473818A Expired - Fee Related CN101124555B (zh) 2004-12-16 2005-12-08 具有多流更新的非易失性存储器和方法

Country Status (7)

Country Link
US (1) US7315916B2 (zh)
EP (1) EP1828906B1 (zh)
JP (1) JP4787266B2 (zh)
KR (1) KR100914263B1 (zh)
CN (4) CN101095121B (zh)
TW (1) TWI393140B (zh)
WO (1) WO2006065566A1 (zh)

Families Citing this family (144)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7412560B2 (en) 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7386655B2 (en) 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7366826B2 (en) 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
US7882299B2 (en) * 2004-12-21 2011-02-01 Sandisk Corporation System and method for use of on-chip non-volatile memory write cache
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
JP4418439B2 (ja) * 2006-03-07 2010-02-17 パナソニック株式会社 不揮発性記憶装置およびそのデータ書込み方法
US20070300130A1 (en) * 2006-05-17 2007-12-27 Sandisk Corporation Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices
US7809994B2 (en) * 2006-05-17 2010-10-05 Sandisk Corporation Error correction coding for multiple-sector pages in flash memory devices
US7366017B2 (en) * 2006-08-22 2008-04-29 Micron Technology, Inc. Method for modifying data more than once in a multi-level cell memory location within a memory array
KR100849221B1 (ko) * 2006-10-19 2008-07-31 삼성전자주식회사 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
US8316206B2 (en) * 2007-02-12 2012-11-20 Marvell World Trade Ltd. Pilot placement for non-volatile memory
JP2008152464A (ja) * 2006-12-15 2008-07-03 Toshiba Corp 記憶装置
US8166267B2 (en) * 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
US7917686B2 (en) 2006-12-26 2011-03-29 Sandisk Corporation Host system with direct data file interface configurability
US8046522B2 (en) * 2006-12-26 2011-10-25 SanDisk Technologies, Inc. Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks
US7739444B2 (en) 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
US8209461B2 (en) 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
KR100877609B1 (ko) * 2007-01-29 2009-01-09 삼성전자주식회사 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법
US8429352B2 (en) * 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing
KR20090024971A (ko) * 2007-09-05 2009-03-10 삼성전자주식회사 섹터의 집합을 이용한 캐시 운용 방법 및 캐시 장치
JP5087347B2 (ja) * 2007-09-06 2012-12-05 株式会社日立製作所 半導体記憶装置及び半導体記憶装置の制御方法
US8533562B2 (en) * 2007-09-12 2013-09-10 Sandisk Technologies Inc. Data protection after possible write abort or erase abort
US8365040B2 (en) 2007-09-20 2013-01-29 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
US8694715B2 (en) 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
US8296498B2 (en) * 2007-11-13 2012-10-23 Sandisk Technologies Inc. Method and system for virtual fast access non-volatile RAM
WO2009072101A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Apparatus and methods for generating row-specific reading thresholds in flash memory
WO2009074978A2 (en) 2007-12-12 2009-06-18 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
US20090164745A1 (en) * 2007-12-21 2009-06-25 Alan Sinclair System and Method for Controlling an Amount of Unprogrammed Capacity in Memory Blocks of a Mass Storage System
CN101364444B (zh) 2008-02-05 2011-05-11 威盛电子股份有限公司 控制方法及运用该控制方法的存储器及处理系统
US8724381B2 (en) 2008-03-11 2014-05-13 Agere Systems Llc 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
WO2009118720A2 (en) 2008-03-25 2009-10-01 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
TWI413984B (zh) * 2008-10-16 2013-11-01 Silicon Motion Inc 快閃記憶體裝置以及資料更新方法
CN101740123B (zh) * 2008-11-10 2012-04-04 扬智科技股份有限公司 存储器的数据保护方法
US8452940B2 (en) * 2008-12-30 2013-05-28 Sandisk Technologies Inc. Optimized memory management for random and sequential data writing
US8819385B2 (en) 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US8458574B2 (en) * 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8832353B2 (en) * 2009-04-07 2014-09-09 Sandisk Technologies Inc. Host stop-transmission handling
US8085588B2 (en) * 2009-04-30 2011-12-27 Spansion Llc Semiconductor device and control method thereof
US8566510B2 (en) * 2009-05-12 2013-10-22 Densbits Technologies Ltd. Systems and method for flash memory management
US8307241B2 (en) * 2009-06-16 2012-11-06 Sandisk Technologies Inc. Data recovery in multi-level cell nonvolatile memory
US8656110B2 (en) * 2009-08-21 2014-02-18 Panasonic Corporation Non-volatile storage device, access device, and non-volatile storage system for releasing a cache object in accordance with a data matching flag
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
JP4956593B2 (ja) 2009-09-08 2012-06-20 株式会社東芝 メモリシステム
US8730729B2 (en) 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8724387B2 (en) 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
JP5480913B2 (ja) 2009-12-03 2014-04-23 株式会社日立製作所 記憶装置、およびメモリコントローラ
US9037777B2 (en) * 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
TWI399644B (zh) * 2009-12-24 2013-06-21 Univ Nat Taiwan 非揮發記憶體區塊管理方法
JP5330549B2 (ja) * 2010-02-02 2013-10-30 株式会社東芝 ストレージ機能を持つ通信装置
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US8468431B2 (en) 2010-07-01 2013-06-18 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
US8345482B2 (en) * 2010-12-15 2013-01-01 Micron Technology, Inc. Methods for segmented programming and memory devices
TWI479505B (zh) * 2010-12-16 2015-04-01 Phison Electronics Corp 資料管理方法、記憶體控制器與記憶體儲存裝置
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US8996790B1 (en) 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
CN103092771A (zh) * 2011-10-31 2013-05-08 建兴电子科技股份有限公司 固态储存装置及其高速缓存的控制方法
TWI470575B (zh) * 2011-11-24 2015-01-21 Mediatek Inc 用於緩衝裝置之讀取指標暫存的方法、緩衝控制器以及緩衝裝置
CN103138875B (zh) * 2011-11-28 2015-06-10 澜起科技(上海)有限公司 高速广播信道的校准方法
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
DE102012201978A1 (de) * 2012-02-10 2013-08-14 Robert Bosch Gmbh Verfahren zum Auslesen einer Lichtsensorsteuereinrichtung sowie Vorrichtung zum Auslesen einer Lichtsensorsteuereinrichtung
CN103258570B (zh) * 2012-02-15 2016-05-11 旺宏电子股份有限公司 一种记忆装置及产生程序化偏压脉冲的方法和集成电路
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
JP2013229086A (ja) * 2012-04-27 2013-11-07 Sony Corp メモリ装置、メモリ制御装置、メモリ制御方法
KR101620772B1 (ko) 2012-04-27 2016-05-12 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 멀티-레벨 셀을 사용하는 로컬 체크포인팅
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
US9053003B2 (en) * 2012-06-21 2015-06-09 Microsoft Technology Licensing, Llc Memory compaction mechanism for main memory databases
CN102831072B (zh) * 2012-08-10 2016-03-02 深圳市江波龙电子有限公司 闪存设备及其管理方法、数据读写方法及读写装置
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
US9384839B2 (en) 2013-03-07 2016-07-05 Sandisk Technologies Llc Write sequence providing write abort protection
US9189389B2 (en) * 2013-03-11 2015-11-17 Kabushiki Kaisha Toshiba Memory controller and memory system
US9478271B2 (en) * 2013-03-14 2016-10-25 Seagate Technology Llc Nonvolatile memory data recovery after power failure
US9037902B2 (en) 2013-03-15 2015-05-19 Sandisk Technologies Inc. Flash memory techniques for recovering from write interrupt resulting from voltage fault
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US20150006784A1 (en) 2013-06-27 2015-01-01 Sandisk Technologies Inc. Efficient Post Write Read in Three Dimensional Nonvolatile Memory
US9063671B2 (en) 2013-07-02 2015-06-23 Sandisk Technologies Inc. Write operations with full sequence programming for defect management in nonvolatile memory
US9218242B2 (en) 2013-07-02 2015-12-22 Sandisk Technologies Inc. Write operations for defect management in nonvolatile memory
CN104423888B (zh) * 2013-08-23 2017-10-03 群联电子股份有限公司 数据写入方法、存储器控制电路单元与存储器存储装置
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
US9043537B1 (en) 2013-11-21 2015-05-26 Sandisk Technologies Inc. Update block programming order
US9058881B1 (en) 2013-12-05 2015-06-16 Sandisk Technologies Inc. Systems and methods for partial page programming of multi level cells
US9244631B2 (en) 2013-12-06 2016-01-26 Sandisk Technologies Inc. Lower page only host burst writes
CN104731710B (zh) * 2013-12-18 2018-06-29 群联电子股份有限公司 存储器管理方法、存储器控制电路单元与存储器储存装置
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
US8947817B1 (en) 2014-04-28 2015-02-03 Seagate Technology Llc Storage system with media scratch pad
US9443553B2 (en) 2014-04-28 2016-09-13 Seagate Technology Llc Storage system with multiple media scratch pads
US9633233B2 (en) 2014-05-07 2017-04-25 Sandisk Technologies Llc Method and computing device for encrypting data stored in swap memory
US9710198B2 (en) 2014-05-07 2017-07-18 Sandisk Technologies Llc Method and computing device for controlling bandwidth of swap operations
US9928169B2 (en) 2014-05-07 2018-03-27 Sandisk Technologies Llc Method and system for improving swap performance
US9665296B2 (en) 2014-05-07 2017-05-30 Sandisk Technologies Llc Method and computing device for using both volatile memory and non-volatile swap memory to pre-load a plurality of applications
US8902652B1 (en) 2014-05-13 2014-12-02 Sandisk Technologies Inc. Systems and methods for lower page writes
US8886877B1 (en) 2014-05-15 2014-11-11 Sandisk Technologies Inc. In-situ block folding for nonvolatile memory
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
US9928138B2 (en) * 2015-02-17 2018-03-27 Toshiba Memory Corporation Memory system
JP6412820B2 (ja) * 2015-03-31 2018-10-24 株式会社メガチップス 記憶システム、制御装置、メモリ制御装置、記憶装置、上位装置、制御プログラム及びデータ読み出し方法
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
CN105159601B (zh) * 2015-08-07 2018-12-07 杭州海兴电力科技股份有限公司 一种提高Flash擦写寿命的方法
US9858009B2 (en) 2015-10-26 2018-01-02 Sandisk Technologies Llc Data folding in 3D nonvolatile memory
KR102441284B1 (ko) * 2016-01-12 2022-09-08 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
US10204341B2 (en) * 2016-05-24 2019-02-12 Mastercard International Incorporated Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system
EP3504728A4 (en) * 2016-08-26 2020-09-09 Sunrise Memory Corporation CAPACITIVE-COUPLING NON-VOLATILE THIN-LAYER TRANSISTOR CHAIN IN THREE-DIMENSIONAL NETWORKS
CN106528441B (zh) * 2016-10-26 2020-08-04 珠海格力电器股份有限公司 仿真eeprom的数据处理方法、装置及电子设备
JP2018160189A (ja) 2017-03-23 2018-10-11 東芝メモリ株式会社 メモリシステム
TWI625620B (zh) * 2017-05-12 2018-06-01 威盛電子股份有限公司 非揮發性記憶體裝置及其讀取方法
CN111897498A (zh) * 2018-07-27 2020-11-06 创新先进技术有限公司 区块链数据的多级存储方法和装置
CN109215171A (zh) * 2018-08-20 2019-01-15 深圳市长龙铁路电子工程有限公司 一种机车信号设备数据记录的存储方法
CN110888593B (zh) 2018-09-07 2024-01-26 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN110888820B (zh) 2018-09-07 2022-01-25 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN110888591B (zh) * 2018-09-07 2023-05-30 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
TWI690928B (zh) 2019-01-10 2020-04-11 慧榮科技股份有限公司 改善快閃記憶體之讀取重試的方法、控制器以及相關儲存裝置
TWI718889B (zh) * 2019-01-10 2021-02-11 慧榮科技股份有限公司 改善快閃記憶體之讀取重試的方法、控制器以及相關儲存裝置
CN111400302B (zh) * 2019-11-28 2023-09-19 杭州海康威视系统技术有限公司 连续存储数据的修改方法、装置和系统
TWI727842B (zh) 2020-02-20 2021-05-11 大陸商長江存儲科技有限責任公司 存儲器件及其編程方法
WO2021212399A1 (en) * 2020-04-23 2021-10-28 Yangtze Memory Technologies Co., Ltd. Memory device and programming method thereof
CN114911426B (zh) * 2022-07-15 2022-10-18 北谷电子有限公司 一种数据存储方法、存储器件和高空车

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1082239A (zh) * 1992-04-16 1994-02-16 汤姆森消费电子有限公司 多端口存储系统
CN1190782A (zh) * 1997-02-14 1998-08-19 三菱电机株式会社 半导体存储器
US5933368A (en) * 1996-11-25 1999-08-03 Macronix International Co., Ltd. Flash memory mass storage system

Family Cites Families (125)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4139911A (en) * 1978-03-13 1979-02-13 Westinghouse Electric Corp. High speed sense circuit for semiconductor memories
US4218764A (en) * 1978-10-03 1980-08-19 Matsushita Electric Industrial Co., Ltd. Non-volatile memory refresh control circuit
US4253059A (en) * 1979-05-14 1981-02-24 Fairchild Camera & Instrument Corp. EPROM Reliability test circuit
JPS58139399A (ja) * 1982-02-15 1983-08-18 Hitachi Ltd 半導体記憶装置
US4460982A (en) * 1982-05-20 1984-07-17 Intel Corporation Intelligent electrically programmable and electrically erasable ROM
US4612630A (en) * 1984-07-27 1986-09-16 Harris Corporation EEPROM margin testing design
JPS6134793A (ja) * 1984-07-27 1986-02-19 Hitachi Ltd ダイナミツクメモリ装置における診断及びエラ−訂正装置
JPS6148197A (ja) * 1984-08-13 1986-03-08 Fujitsu Ltd チヤ−ジアツプ回路
JPS61172300A (ja) * 1985-01-26 1986-08-02 Toshiba Corp 半導体記憶装置
EP0198935A1 (de) * 1985-04-23 1986-10-29 Deutsche ITT Industries GmbH Elektrisch umprogrammierbarer Halbleiterspeicher mit Redundanz
US4962322A (en) * 1988-12-05 1990-10-09 Texas Instruments Incorporated Nonvolatible capacitor random access memory
JPS62114200A (ja) * 1985-11-13 1987-05-25 Mitsubishi Electric Corp 半導体メモリ装置
US5157629A (en) * 1985-11-22 1992-10-20 Hitachi, Ltd. Selective application of voltages for testing storage cells in semiconductor memory arrangements
US4763305A (en) * 1985-11-27 1988-08-09 Motorola, Inc. Intelligent write in an EEPROM with data and erase check
JPH0715799B2 (ja) * 1987-06-30 1995-02-22 日本電気株式会社 半導体記憶装置
FR2618579B1 (fr) * 1987-07-21 1989-11-10 Thomson Semiconducteurs Circuit integre a memoire comportant un dispositif anti-fraude
US4809231A (en) * 1987-11-12 1989-02-28 Motorola, Inc. Method and apparatus for post-packaging testing of one-time programmable memories
FR2630573B1 (fr) * 1988-04-26 1990-07-13 Sgs Thomson Microelectronics Memoire programmable electriquement avec plusieurs bits d'information par cellule
US5095344A (en) * 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5043940A (en) * 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
US5268870A (en) 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
JPH07105146B2 (ja) 1988-07-29 1995-11-13 三菱電機株式会社 不揮発性記憶装置
US5070032A (en) 1989-03-15 1991-12-03 Sundisk Corporation Method of making dense flash eeprom semiconductor memory structures
JPH02260298A (ja) * 1989-03-31 1990-10-23 Oki Electric Ind Co Ltd 不揮発性多値メモリ装置
US7190617B1 (en) * 1989-04-13 2007-03-13 Sandisk Corporation Flash EEprom system
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
JPH0664918B2 (ja) * 1989-05-25 1994-08-22 ローム株式会社 自己訂正機能を有する半導体記憶装置
US5258958A (en) 1989-06-12 1993-11-02 Kabushiki Kaisha Toshiba Semiconductor memory device
FR2650109B1 (fr) * 1989-07-20 1993-04-02 Gemplus Card Int Circuit integre mos a tension de seuil ajustable
US5065364A (en) 1989-09-15 1991-11-12 Intel Corporation Apparatus for providing block erasing in a flash EPROM
US5200959A (en) * 1989-10-17 1993-04-06 Sundisk Corporation Device and method for defect handling in semi-conductor memory
US5270551A (en) 1990-02-14 1993-12-14 Hitachi, Ltd. Method of and apparatus for protecting electronic circuit against radiation
US5122985A (en) * 1990-04-16 1992-06-16 Giovani Santin Circuit and method for erasing eeprom memory arrays to prevent over-erased cells
US5132935A (en) * 1990-04-16 1992-07-21 Ashmore Jr Benjamin H Erasure of eeprom memory arrays to prevent over-erased cells
US5200922A (en) * 1990-10-24 1993-04-06 Rao Kameswara K Redundancy circuit for high speed EPROM and flash memory devices
US5343063A (en) * 1990-12-18 1994-08-30 Sundisk Corporation Dense vertical programmable read only memory cell structure and processes for making them
US5239505A (en) * 1990-12-28 1993-08-24 Intel Corporation Floating gate non-volatile memory with blocks and memory refresh
US5270979A (en) 1991-03-15 1993-12-14 Sundisk Corporation Method for optimum erasing of EEPROM
US5504760A (en) * 1991-03-15 1996-04-02 Sandisk Corporation Mixed data encoding EEPROM system
US5263032A (en) 1991-06-27 1993-11-16 Digital Equipment Corporation Computer system operation with corrected read data function
US5313427A (en) * 1991-09-20 1994-05-17 Texas Instruments Incorporated EEPROM array with narrow margin of voltage thresholds after erase
JPH05109292A (ja) * 1991-10-14 1993-04-30 Toshiba Corp 不揮発性半導体記憶装置
US5313421A (en) * 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
US6222762B1 (en) * 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
FR2689253B1 (fr) * 1992-03-24 1997-01-24 Souriau & Cie Dispositif de moulage comportant une contre-piece de guidage de broches pour le moulage de viroles de connecteurs de fibres optiques, et virole moulee au moyen d'un tel dispositif.
US5327383A (en) * 1992-04-21 1994-07-05 Intel Corporation Method and circuitry for erasing a nonvolatile semiconductor memory incorporating row redundancy
US5347489A (en) * 1992-04-21 1994-09-13 Intel Corporation Method and circuitry for preconditioning shorted rows in a nonvolatile semiconductor memory incorporating row redundancy
US5315421A (en) 1992-04-28 1994-05-24 Matsushita Electric Industrial Co., Ltd. Rubbing apparatus including double refraction phase difference measuring means and manufacturing method for liquid crystal display device
US5657332A (en) * 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US5532962A (en) * 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
US5550394A (en) 1993-06-18 1996-08-27 Texas Instruments Incorporated Semiconductor memory device and defective memory cell correction circuit
JPH065823A (ja) 1992-06-19 1994-01-14 Toshiba Corp 不揮発性半導体記憶装置及びその使用方法
JP2708333B2 (ja) * 1992-09-02 1998-02-04 株式会社東芝 レベルシフタ回路
JP3088866B2 (ja) * 1992-11-26 2000-09-18 大日本印刷株式会社 Icカード
US5365486A (en) 1992-12-16 1994-11-15 Texas Instruments Incorporated Method and circuitry for refreshing a flash electrically erasable, programmable read only memory
JP2856621B2 (ja) * 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5335198A (en) * 1993-05-06 1994-08-02 Advanced Micro Devices, Inc. Flash EEPROM array with high endurance
US5555204A (en) * 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
US5623620A (en) 1993-06-30 1997-04-22 Intel Corporation Special test modes for a page buffer shared resource in a memory device
KR0169267B1 (ko) * 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5661053A (en) * 1994-05-25 1997-08-26 Sandisk Corporation Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers
US5523972A (en) * 1994-06-02 1996-06-04 Intel Corporation Method and apparatus for verifying the programming of multi-level flash EEPROM memory
JP3563452B2 (ja) * 1994-08-10 2004-09-08 株式会社東芝 セル閾値分布検知回路およびセル閾値分布検知方法
FR2728380A1 (fr) * 1994-12-20 1996-06-21 Sgs Thomson Microelectronics Procede d'ecriture de donnees dans une memoire et memoire electriquement programmable correspondante
US5475693A (en) 1994-12-27 1995-12-12 Intel Corporation Error management processes for flash EEPROM memory arrays
JP3274306B2 (ja) * 1995-01-20 2002-04-15 株式会社東芝 半導体集積回路装置
US5513144A (en) * 1995-02-13 1996-04-30 Micron Technology, Inc. On-chip memory redundancy circuitry for programmable non-volatile memories, and methods for programming same
US5699297A (en) 1995-05-30 1997-12-16 Kabushiki Kaisha Toshiba Method of rewriting data in a microprocessor additionally provided with a flash memory
US5907856A (en) 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US6125435A (en) * 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
US5696929A (en) 1995-10-03 1997-12-09 Intel Corporation Flash EEPROM main memory in a computer system
US5687114A (en) * 1995-10-06 1997-11-11 Agate Semiconductor, Inc. Integrated circuit for storage and retrieval of multiple digital bits per nonvolatile memory cell
US5703506A (en) 1995-12-26 1997-12-30 Motorola Signal processing method
US5903495A (en) * 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
US5712815A (en) * 1996-04-22 1998-01-27 Advanced Micro Devices, Inc. Multiple bits per-cell flash EEPROM capable of concurrently programming and verifying memory cells and reference cells
US5715193A (en) * 1996-05-23 1998-02-03 Micron Quantum Devices, Inc. Flash memory system and method for monitoring the disturb effect on memory cell blocks due to high voltage conditions of other memory cell blocks
JPH09319645A (ja) * 1996-05-24 1997-12-12 Nec Corp 不揮発性半導体記憶装置
US5860091A (en) * 1996-06-28 1999-01-12 Symbios, Inc. Method and apparatus for efficient management of non-aligned I/O write request in high bandwidth raid applications
US5675537A (en) * 1996-08-22 1997-10-07 Advanced Micro Devices, Inc. Erase method for page mode multiple bits-per-cell flash EEPROM
US5798968A (en) * 1996-09-24 1998-08-25 Sandisk Corporation Plane decode/virtual sector architecture
US5890192A (en) * 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US5717632A (en) * 1996-11-27 1998-02-10 Advanced Micro Devices, Inc. Apparatus and method for multiple-level storage in non-volatile memories
US5835413A (en) 1996-12-20 1998-11-10 Intel Corporation Method for improved data retention in a nonvolatile writeable memory by sensing and reprogramming cell voltage levels
US5930167A (en) * 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US5909449A (en) 1997-09-08 1999-06-01 Invox Technology Multibit-per-cell non-volatile memory with error detection and correction
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
JP3177207B2 (ja) * 1998-01-27 2001-06-18 インターナショナル・ビジネス・マシーンズ・コーポレ−ション リフレッシュ間隔制御装置及び方法、並びにコンピュータ
GB9903490D0 (en) * 1999-02-17 1999-04-07 Memory Corp Plc Memory system
KR100716576B1 (ko) * 1999-02-22 2007-05-11 가부시키가이샤 히타치세이사쿠쇼 메모리 카드, 논리 어드레스의 할당방법 및 데이터 기록방법
JP2000251483A (ja) * 1999-02-24 2000-09-14 Sanyo Electric Co Ltd 1チップマイクロコンピュータとそのデータリフレッシュ方法
EP1729304B1 (en) * 1999-04-01 2012-10-17 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
JP4141581B2 (ja) * 1999-04-05 2008-08-27 株式会社ルネサステクノロジ フラッシュメモリを搭載する記憶装置
JP3793868B2 (ja) * 1999-11-25 2006-07-05 カシオ計算機株式会社 フラッシュメモリ管理装置及び記録媒体
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
KR100818035B1 (ko) * 2000-05-04 2008-03-31 엔엑스피 비 브이 저장 매체 상의 데이터 관리 및 데이터 관리 시스템과 컴퓨터 판독가능한 저장 매체
JP3942807B2 (ja) * 2000-06-06 2007-07-11 株式会社ルネサステクノロジ ブロックアラインメント機能付き半導体記憶装置
US6567307B1 (en) * 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
US6772274B1 (en) * 2000-09-13 2004-08-03 Lexar Media, Inc. Flash memory system and method implementing LBA to PBA correlation within flash memory array
US6345001B1 (en) * 2000-09-14 2002-02-05 Sandisk Corporation Compressed event counting technique and application to a flash memory system
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
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
JP3979486B2 (ja) * 2001-09-12 2007-09-19 株式会社ルネサステクノロジ 不揮発性記憶装置およびデータ格納方法
US6456528B1 (en) * 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
GB0123412D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Memory system sectors
US6678785B2 (en) * 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
US6925007B2 (en) * 2001-10-31 2005-08-02 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
US6560152B1 (en) * 2001-11-02 2003-05-06 Sandisk Corporation Non-volatile memory with temperature-compensated data read
ATE402999T1 (de) * 2002-01-17 2008-08-15 Univ British Columbia Bispezifische antisense oligonukleotide die igfbp-2 und igfbp-5 inhibieren und deren verwendung
JP4206688B2 (ja) * 2002-04-15 2009-01-14 ソニー株式会社 データ処理装置及びデータ処理方法
KR100453053B1 (ko) * 2002-06-10 2004-10-15 삼성전자주식회사 플래쉬 메모리용 파일 시스템
US7196931B2 (en) * 2002-09-24 2007-03-27 Sandisk Corporation Non-volatile memory and method with reduced source line bias errors
KR101174308B1 (ko) * 2002-10-28 2012-08-16 쌘디스크 코포레이션 비휘발성 저장 시스템들에서 자동 웨어 레벨링
JP4073799B2 (ja) * 2003-02-07 2008-04-09 株式会社ルネサステクノロジ メモリシステム
JP3928724B2 (ja) * 2003-02-20 2007-06-13 ソニー株式会社 記録媒体の記録制御方法および記録媒体の記録制御装置
US6928511B2 (en) * 2003-03-03 2005-08-09 High Tech Computer, Corp. Method and system for managing virtual memory
EP1489490A3 (en) * 2003-06-19 2005-09-14 Texas Instruments Incorporated Method for converting a cache to a scratch-pad memory
US7433993B2 (en) * 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US20050144363A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management
JP2005222201A (ja) * 2004-02-04 2005-08-18 Matsushita Electric Ind Co Ltd メモリアクセス装置、及び半導体メモリカード
JP4713867B2 (ja) * 2004-09-22 2011-06-29 株式会社東芝 メモリコントローラ,メモリ装置及びメモリコントローラの制御方法
JP2006139556A (ja) * 2004-11-12 2006-06-01 Toshiba Corp メモリカード及びそのカードコントローラ
US7437653B2 (en) * 2004-12-22 2008-10-14 Sandisk Corporation Erased sector detection mechanisms

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1082239A (zh) * 1992-04-16 1994-02-16 汤姆森消费电子有限公司 多端口存储系统
US5933368A (en) * 1996-11-25 1999-08-03 Macronix International Co., Ltd. Flash memory mass storage system
CN1190782A (zh) * 1997-02-14 1998-08-19 三菱电机株式会社 半导体存储器

Also Published As

Publication number Publication date
JP4787266B2 (ja) 2011-10-05
KR20070087571A (ko) 2007-08-28
CN101124555B (zh) 2012-05-09
KR100914263B1 (ko) 2009-08-27
US20060161722A1 (en) 2006-07-20
CN101124555A (zh) 2008-02-13
JP2008524705A (ja) 2008-07-10
US7315916B2 (en) 2008-01-01
WO2006065566A9 (en) 2006-09-08
TWI393140B (zh) 2013-04-11
TW200632916A (en) 2006-09-16
CN100547565C (zh) 2009-10-07
CN101124556A (zh) 2008-02-13
WO2006065566A1 (en) 2006-06-22
CN101095121A (zh) 2007-12-26
EP1828906A1 (en) 2007-09-05
EP1828906B1 (en) 2014-09-10
CN101124554A (zh) 2008-02-13

Similar Documents

Publication Publication Date Title
CN101095121B (zh) 高速暂存区块
US7433993B2 (en) Adaptive metablocks
KR101202620B1 (ko) 복수-스트림 업데이팅을 갖는 비휘발성 메모리 및 방법
JP5069256B2 (ja) 不揮発性メモリおよびマルチストリーム更新追跡を伴う方法
EP1834241B1 (en) Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7395404B2 (en) Cluster auto-alignment for storing addressable data packets in a non-volatile memory array
US20120191927A1 (en) Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US20050144363A1 (en) Data boundary management
US20060106972A1 (en) Cyclic flash memory wear leveling

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
ASS Succession or assignment of patent right

Owner name: SANDISK TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: SANDISK CORP.

Effective date: 20120327

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120327

Address after: American Texas

Patentee after: Sandisk Corp.

Address before: American California

Patentee before: Sandisk Corp.

C56 Change in the name or address of the patentee

Owner name: SANDISK TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: SANDISK TECHNOLOGIES, INC.

CP01 Change in the name or title of a patent holder

Address after: American Texas

Patentee after: Sandisk Corp.

Address before: American Texas

Patentee before: Sandisk Corp.

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

Address after: American Texas

Patentee after: DELPHI INT OPERATIONS LUX SRL

Address before: American Texas

Patentee before: Sandisk Corp.