著录项信息
专利名称 | 多数据区段同时编程和在其它指定块中存储物理块特征的闪速EEPROM系统 |
申请号 | CN01806804.9 | 申请日期 | 2001-02-13 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2003-08-20 | 公开/公告号 | CN1437721 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F3/06 | IPC分类号 | G;0;6;F;3;/;0;6;;;G;0;6;F;1;2;/;0;2查看分类表>
|
申请人 | 三因迪斯克公司 | 申请人地址 | 美国得克萨斯州
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 桑迪士克科技有限责任公司 | 当前权利人 | 桑迪士克科技有限责任公司 |
发明人 | 凯文·M·康利;约翰·S·曼根;杰弗里·G·克雷格 |
代理机构 | 中国国际贸易促进委员会专利商标事务所 | 代理人 | 付建军 |
摘要
一种非易失性的存储器系统,由浮点门存储器单元形成,这些单元安排在块中,块是可以一起擦除的最小的存储器单元单位。该系统包括许多特性,它们可以各自实现,也能够以多种合作的组合来实现。一种特性是在分离的块中存储众多单元块的特征,用户数据就是存放在这些单元中。按照另一种特性,用户数据的多个区段由交替流动的数据字节片从区段一次存到多个存储器块。流中的数据字节可以移动,以避免存储器中有缺陷的位置,比如坏列。对于具有多个存储器集成电路芯片的存储器系统,再另一种特性提供了单一的系统记录,它包括每一个芯片的容量和在芯片之内为用户数据块分配的连续逻辑地址范围,当寻址到某块时,存储器控制器要访问这些芯片,在存储器芯片具有不同的容量时,这就使制造存储器系统更加容易。
多数据区段同时编程和在其它指定块中\n存储物理块特征的闪速EEPROM系统\n技术领域\n本发明涉及半导体存储器系统,具体地说,涉及非易失性的存储 器系统,已经应用于闪速可电擦除可编程只读存储器(EEPROM),\n背景技术\n闪速EEPROM系统正在应用于许多方面,尤其是封装在封闭卡 中,该卡能够可拆卸地连接到一个主机系统,当前的商业存储卡格式 包括个人计算机存储卡国际协会(PCMCIA) 、 CompactFlash ( CF)、 多媒体卡(MMC)和Secure Digital ( SD)的格式,这些卡的一个供 应商是SanDisk公司 一一本申请的受让人.其中使用了这种卡的主机 系统包括个人计算机、笔记本计算机、手持计算设备、照相机、音頻 重现设备等等,闪速EEPROM系统也用于嵌入主机系统的大容量存 储器。\n这种非易失性的存储器系统包括浮点门存储器单元的阵列和系统 控制器.该控制器管理与主机系统的通信和存储器单元阵列存放和检 索用户数据的操作.存储器单元组成若干单元块, 一个单元块就是可 同时擦除单元的最小的组。在一个或多个单元块写入数据之前,要先 擦除这些单元块.通常用户数据在主机和存储器阵列之间是以区段的 形式传递.用户数据的一个区段可以是便于处理的任何数量,最好是\n小于存储器块的容量,往往等于标准磁盘驱动器的扇区大U---512\n字节。在一个商业体系结构中,存储器系统块的大小定为存放一个区 段的用户数据加日常数据,日常数据的信息包括存放在本块中用户数 据的纠错码(ECC)、本块的使用历史、存储器单元块的故障和其它 物理信息等等。在以下转让给SanDisk公司的美国专利和待批准的申\n请中,介绍了这种类型的非易失性存储器系统的多种实现方案,其中\n每一个都在这里全文引用作为参考:5,172,338、 5,602,987、 5,315,541、 5,200,959、 S,270,979、 5,428,621、 5,663,卯1、 5,S32,962、 S,430,銘9和 5,712,180号专利,以及1997年8月7日提交的序列号08/910,947和 1999年6月30提交的序列号09/343,328申请.另一种类型的非易失 性存储器系统使用较大的存储器单元块规模,能够存放用户数据的多 个区段,\n存储器单元阵列的一种体系结构,由存储器单元的一排或两排方 便地形成了一块,这些单元在一个子阵列或单元的其它单位之内,共 享一个公共的擦除门,这里全文引用的、SanDisk公司的5,677,872号 和5,712,179号美国专利给出了这种体系结构的实例.虽然当前最普通 的是在每个浮点门单元中存放一位数据,这样只须规定两种设定的阈 值电平,而趋势却是通过建立多于两种的浮点门晶体管阈值范闺,在 每个单元中存放多于一位数据.目前已经有了每个浮点门存放两位数 据(四种阈值电平范闺或者说状态)的存储器系统,可以预期每个单 元三位(八种阈值电平范围或者说状态)和每个单元四位(十六种阈 值电平范围)会是未来的系统.当然,随着每个单元中存放的位数上 升,存放一个数据区段所需要的存储器单元数目下降。这个趋势结合 着由单元结构和一般半导体处理的改善引起的阵列扩大,在一排单元 的一个片段中形成一个存储器单元块也是切实可行的.也可以形成块 结构,以便在两种状态(每单元一位数据)或在某些多种比如四种状 态(每单元两位数据)中,选择存储器单元中每一个的操作,正如 SanDisk公司的5,930,167号美国专利中介绍的,在这里全文引用它作 为参考.\n由于把数据编入浮点门存储器单元可能要耗费相当多的时间,所 以一排中的大量存储器单元通常同时编程.但是增大这种并行性导致 电源需求增大,以及邻近单元电荷的潜在干扰和它们之间的相互作用. 这里全文引用的SanDisk公司的5,890,192号美国专利介绍了一种系 统,它通过同时把多个字节片的数据编进位于不同存储器操作单元单\n位(子阵列)的不同单元块中,使这些效应达到最小。 发明内容\n本发明有几个不同的方面对闺态存储器系统提供了改进,包括以 上介绍的技术.本发明这些方面中的每一个都可以单独实现,也能够 以多种组合来实现,其中主要的方面筒要地归纳在以下段落中.\n通过每次交替地使数据从多个区段中的一个流入阵列,直到为多 个数据区段中的每一个累积了大量的数据,然后这些数据同时分別存 入存储器的不同单位中的对应块中,这样就把多个用户数据区段编入 了类似数目的存储器块中,这些块位于不同的单位或者说子阵列中。 这样就增加了可能并行编程的存储器单元的数目,而没有不利的效应.\n在编程和写入产生用户数据的同一存储器块期间,控制器可以从\n用户数据流产生纠错码(ECC)或其他类型的冗余码.然后,从存储 器块读出数据区段时,控制器评价该冗余码.通过为同时编程的用户 数据区段的每一个分別提供一个存储单元,在其中暂时存放产生的中 间结果,可使用一种单一的冗余码生成电路,即使当数据流在多个区 段的大数据块之间交替时也不例外.\n为了这个目的,在阵列中提供的其它块中把各个块的条件、特征、 状态等等日常数据存放在一起.每个日常数据记录可能包括以下情况: 本块已经进行了多少次编程和擦除、本块编程和/或擦除所用的电压电 平、本块是否有缺陷等等. 一组块专门用于存放这种记录.大量的这 种记录存放在这些日常块的每一个之中.当访问一个特定的用户数据 块,以进行编程、读取或擦除中的一项或全部操作时,首先读出这个 用户数据块的日常记录,其信息用于访问该块.通过把一块的日常数 据存放在该块之外,每次用户数据重写入该块时,避免了日常数据的 頻繁重写.当访问该块以读写用户数据时,这样也减少了访问和读取 块曰常数据所需的时间.除此以外,以这种方式存放的大量日常记录 只需要一个ECC或其它的冗余码。\n来自许多曰常块的记录,可以由控制器读入其随机访问存餘器的\n可用部分以便于使用,使其记录在一段时间内没有被访问的日常块被 更活跃的日常块所取代,如类似于緩存的方式.当存储器的控制器从 主机系统收到要传递的一个起始地址和数据区段的数目时,为了访问 该块的日常记录,计算要访问的第一个存储器块的逻辑地址,但是随 后就按顧序访问其它日常记录而不必再计算它们每一个的地址.这样 就加快了访问多个块的速度,存储器中缺陷的信息,比如在制造过程 期间发现的缺陷,可能也被存放在专门为这个目的而单独分配的块中 并被控制器使用,从而在存储器系统中可以包括不完美的存储器电路 芯片,而不是抛弃它们.当单一的缺陷记录会影响许多块时,这尤其 是一种优点. 一种这样的缺陷是一个坏列,它影响众多的块.许多坏\n列指针(BCP)可以存放在一起,作为一个表,放在部分或完全为这 种曰常数据分配的一个或多个区段中。这一步完成之后,当在一个区 段之内各个数据字节的相对物理位置与BCP表的对比表明,该数据字 节正指向沿着坏列的至少一个存储器单元时,就移动用户数据流写到 存储器的物理位置。在读取时执行相反的操作,由于坏列而在写入时 珧过的存储器单元,从其中读出的数据位被忽略,\n按照它们能够擦除和再次编程的次数,由于闪速EEPROM单元 具有其本质决定的有限寿命,通常谨慎的做法是包括一种或多种特性,\n均衡多个存储器块由于多次重写同样的块造成的损耗. 一种这样的技 术是时常变更数字数据与指定来表示该数字数据的存储器状态之间的 对应关系。在目前的存储器系统中要做到这一点,各个数据区段起始 字节的第一位或前几位一一在此定为术语旗标字节一一用于指定这种 对应关系.这些位在写用户数据时指定,在数据流传递到存储器阵列 的同时,起始几位之后的所有数据都按照其数值进行转換.在读出一 个数据区段时,这些起始位被读出,并且在數据以流的形式从存储器 中读出时,用于把存放在该区段所有随后的数据转换回其原始数值。\n当存储器系统是由存储器单元的多个阵列形成时,比如使用两个 或更多集成电路芯片,每个都包括这样一个阵列,把该系统中每个存 储器阵列的有关信息累积起来,然后把该信息在一个方便的位置一一\n比如一个阵列的一块中一一存为单一的记录,可简化该系统的制造和 使用.这样做使不同规模和/或操作特征的存储器阵列組合成单一的系 统容易多了. 一个这种记录合并了在每个存储器芯片中可用的用户数 据块的数目,这种方式能够建立系统中所有阵列块的连续逻辑块地址. 在存储器的一个位置为进行读写搡作而访问时,那么在把逻辑块地址 转換为一个存储器阵列的物理块地址的过程中,存储器控制器要访问 合并记录.\n由控制器从一个存储器阵列读取信息,将该信息合并到单一的记 录,然后把该记录写入一个存储器阵列的指定块中,就能够在制造时 自动产生和存放这样一个合并记录.当前,存储器控制器通常配备在 另一个单独的集成电路芯片上,有一个或多个存储器单元阵列芯片连 接到该控制器.根据技术进步的持续发展可以预期,存储器阵列也可 以包括在控制器芯片上.当存储器的容量不满足一个系统的需要时, 那么就使用一个或多个包含更多存储器阵列的附加电路芯片.当一个 系统中包括两个或更多物理上分开的阵列时,那么产生合并记录会筒 化控制器对跨多个阵列的块地址的操作.\n用于形成一个系统的多种存储器阵列电路芯片的其它特征,比如 最抚电压范闺、计时、所用脉冲的数目、电压泵源的特征、曰常块的 位置等等,可以变化而不产生不利的效应.这些操作特征也可以在单 一的系统文件中列成表格,以便微控制器访问,或者更方便的是,可 以操作徵控制器从各个存储器芯片首先访问必需的这类特征,然后再 访问该芯片以读写数据.无论在哪种情况下,这种方式都允许具有不 同特征的存储器芯片形成存储器系统,其性能没有任何降低.由于一 个系统中的所有的存储器阵列芯片不必选定为相同的,就筒化了非易 失性存储器系统的制造。\n本发明另外的方面、特性和优点包括在以下介绍的特定实施例中, 这些介绍应当与附困相结合.\n附困筒要说明\n图1是一个非易失性存储器系统实例的示意性楹闺,其中可以实\n现本发明的多个方面;\n困2是困l中系统的一个存储器单元阵列单位更详细的示意闺, 带有相关联的逻辑电珞和緩冲区;\n图3A和困3B分別展示了困1中系统的各个存储器单元的四状态 和二状态操作;\n困4是图1中系统的一个存储器块中存放的数据内容和结樹的实\n例;\n图5展示了图1中存储器系统之内一次编程期阀的多个数据区段 的数据流传递;\n图6A是图1中系统的电路的示意性框图,它使用了坏列指针 (BCP)并产生一个糾错码(ECC)或者其它数据冗余码,使多区段 数振流传递到存储器单元阵列;\n闺6B是闺6A的ECC生成块的示意闺; 图6C是困6A的BCP处理块的示意图;\n图7展示了从多个区段向存储器单元阵列传递数据的方式; 图8展示了块日常数据记录的一个数据结构实例; 图9显示了固8中日常数据记录对于良好的存储器单元块的一个 实例;\n图IO显示了图8中日常数据记录对于有缺陷的存储器单元块的一 个实例;\n困ll展示了保存困l的系统中存储器单元阵列的缺陷记录的保留 块的数振结构实例,也就是坏列的位置;\n闺12显示了困l的存储器阵列物理划分成存储器单元的举位和 块,以及指定要存放在其中的数据的实例;\n闺13示意性地展示了一种方法,形成困1的系统中多个存储器集 成电路芯片特征的合并记录;\n图14显示了一个实例,以困13中展示的方式形成的合并记录;\n图15展示了困4中数据区段的旗标字节的位域实例;\n图16示意性地显示了在数据写入存储器时,困15中旗标字节位\n域的生成和使用;以及\n闺17示意性地显示了从存储器读出數据时,图15中旗标字节位 域的使用.\n具体实施方式\n图1提供了与本发明有关的非易失性存储器系统的主要部件的示 意图。控制器11通过连线13与主机系统进行通信.展示为占据着一 个集成电路芯片的控制器11,通过连线15与一个或多个非易失性存 储器单元阵列通信,困中展示了17、 19和21三个阵列,每一个阵列 通常是在一个或多个分开的集成电路上形成的.展示的控制器通常包 含在单一的集成电路芯片上,无论是没有闪速EEPROM阵列(显示 的实例)还是带有存储器单元阵列.即使一个存储器单元阵列包括在 控制器电路芯片上,系统中往往还要包括另外的一个或多个芯片,其 中每一个只包含一个存储器阵列和相关联的电路.\n在这个实例中,用户数据通过连线15在控制器11和多个存储器 阵列17、 19和21之间传递。存储器阵列由控制器分別寻址.具体地 说,连线15之内的数据总线可以为一个字节宽.图l中所示的存储器 系统可以作为一部分嵌入一个主机系统或者封装在一片卡中,比如服 从上述卡标准之一的某种卡。在某种卡的情况下,连线13终止于外部 接线端,与主机系统中的一个扩展槽匹配.尽管使用一个控制器芯片 和多个存储器芯片是典型情况,趋势当然是通过合并其电路在这种系 统中使用更少的分离芯片.展示的存储器芯片之一的实例容量是256 兆位,因此只需要两个这种存储器芯片,加上控制器芯片,以形成一 个具有64兆字节数据容量的非易失性存储器系统。使用单个更小容量 的存储蓽芯片会使存储器系统的容量更小,8兆字节的系统是市场欢 迎的实例,相反,在一个系统中使用更高的位存储密度和/或使用更 多的存储器阵列芯片会使存储器的容量更大。这种存储器系统高至1.3 吉字节,而且更大的也是可能的。\n控制器11包括一个微处理器或者说徵控制器23,通过控制器接 口逻辑电路25连接到带有外部組件的内部存储器和接口.程序存储器 27存放着由徵控制器23访问的闺件和软件,用于控制存储器系统的 操作,从连接的存储器阵列读出数据并把该数据发送到主机,从主机 向存储器芯片写入数据,以及执行为数众多的其它监視和控制功能, 存储器27可以是一种易失的可重编程的随机访问存储器(RAM)、 一种不可重编程的非易失性存储器(ROM)、 一种可编程一次的存储 器(OTP)或者一种可重编程的闪速EEPROM系统。如果存储器27 是可重编程的,该控制器就能够配置为允许主机系统对它编程.随机 访问存储器(RAM) 29用于存放在读写搡作期间访问非易失性存储器 时读取的数据和其它数据。\n逻辑电路31为主机通信连线13提供接口,而另一个逻辑电路33\n通过连线15为存储器阵列提供接口,另一个存储器35用作緩冲区,\n暂时存放主机系统和非易失性存储器之间传递的用户数据.控制器中\n的这些存储器通常是易失性的,由于带有高效控制器访问所需的快速 访问和其他特征的存储器具有这种特征,并且可以物理地合并到单一\n的存储器中, 一个专用的电路36访问正在传递的用户数据流并把虚字 节插入数据流中,以遊免把有效的用户数据写入存储器单元的坏列中. 一个专用的处理电路37也访问正在控制器接口25和闪存接口33之间 传递的用户数据流,以便根据该用户数据产生一个ECC,或者其它类 型的冗余码.当用户数据正在传递到非易失性存储器中时,产生的 ECC附加在用户数据上并同时写入非易失性存储器的相同物理块,作 为该用户数据同一区段的一部分.下面将针对图6A至困6C进一步介 绍电路36和37.\n非易失性存储器芯片17包括一个逻辑电路39,用于通过连线15 为控制器提供接口.为了简化解释没有显示存储器芯片另外的部件。 逻辑电路39的目的是在分离的总线和控制连线中产生信号.在连线 41中提供多种控制信号,而且通过接口 39也控制着存储器阵列电路 的电源供应43。数据总线45栽有正在编入非易失性存储器或者正在\n从非易失性存储器读出的用户数据,地址总线47栽有正在访问的存储 器部位的地址,以便读取用户数据、写入用户数据或者擦除存储器单 元块》\n单个非易失性存储器芯片的浮点门存储器单元阵列本身划分为许 多单位,每一个单位都有各自的支持电路組,用于寻址、解码、读取 等等.在这个实例中,展示了八个这种阵列单位0-7,记为参考号51-58. 作为一个实例,单个芯片上的存储器阵列物理上划分为象限,每个象 限包括两个单位,它们部分地连接在一起,共享一个公共的字线解码 电路(Y解码),比如存储器单元单位4 (55)和单位5(56)之间的 Y解码器61.这种存储器体系结构类似于上述的5,8卯,192号美国专 利中的介绍,只不过有八个单位,而不是该专利中展示的四个单位(象 限).\n每个阵列单位有一个位线解码器(x解码),比如连接到阵列单 位5(56)的X解码器63,通过它读取用户数据.困2是一张扩展困, 展示了阵列单位5及其对应于地址总线47上地址的解码器61和63. 连接到解码器63的是电路65,它包含着用于读出数据的读出放大器、 用于存放正在编程数据的寄存器、在编程期间用于确定单位5中被寻 址的单元是否已经被编程为所需状态和在读取期间用于确定正在读取 单元的状态的比较器以及执行这些功能的控制逻辑电路.连接了两个 寄存器67和69,以便在读取(从67到69)和编程(从69到67)期 间在它们之间并行地传递用户数据。在写入期间,用户数据从数据总 线45和寄存器69传递,每次一个字节,而在读取期间是从另一个方 向传递.其它七个阵列单位中的每一个都类似地连接。\n具体参考图2,对于阵列单位5, 一般地介绍了一个实例存储器单 元阵列的一部分。单元的每一行具有其各自的传导字线(WL),通过 解码器61连接到相邻阵列单位4的对应字线。例如,由浮点门存储器 单元71-75和77-81組成的两个局部行70和76中的每一个,都有其 各自对应的字线83和85。字线连接到单一行中每一个单元的门上, 连接着的门为存储器单元中的选择门,该单元具有分裂通道类型的结\n构。可以使用其它存储器单元结构来代替,每一种结构都具有至少一 个浮点电子门,门上存放电荷的电平是该单元状态的某种度量。在每\n两行存储器单元之间配备了一条传导擦除线,线87连接着行70和行 76中每一行的每一个存储器单元中的擦除门。另外的结构对分离的擦 除门不擦除浮点门,而是擦除到基底的一个区域,比如单元源扩散。 位线(BL)在与字线正交的方向延伸,阵列单元的每一列之间有一条 位线,并且连接到解码器63.每一条位线都连接到该位线两倒各列每 一个单元的源和漏扩散.上面背景技术一节列出的美国专利中介绍了 适当的存储器阵列的详细实例,不过在本发明的实施中同样可以采用 其它现有的和提议的结构。\n在正在介绍的阵列实例中,当按照四个规定的阈值电压状态操作\n每个浮点门,以使每个浮点门存放两位数据时,由闺绕一个擦除门的 每两行形成一个单元块,比如(图2中)擦除门87两倒阵列单位5的 行70和行76.在困3A中对这一点进行了更一般的展示,其中行70 和行76形成的块包含了来自主机的一个区段的数据,加上该数据有关 的某些曰常信息.在一个非常具体的实例中,各个块的规模具有528 字节的容量,以便存放一个512字节的数据区段、该数据有关的某些 曰常信息并提供某些备用的字节,如图4所示。如果每个浮点门能够 存放两位数据,如困3A中所示的情况,每块就包含264个浮点门, 或者说在该块的两行的每一行中是132个.如果存储器单元的结构在 源和漏扩散之间形成的每个单元具有一个浮点门,那么每个单位的每 一行中就包括132个单元.但是如果这些单元每个具有两个浮点门, 那么每一行中只需要66个单元.\n如果不是每个浮点门存放两位数据,而是每个浮点门只存放一位 数据,每个可操作的块就需要两倍数目的单元,实际上,可以通过闺 3B中所示的方式使每行的长度加倍来实現这一点。使行70和76延伸 以包括与单位5配对的、相邻的单位4的对应行70,和76,。单位4的 行70,的字线通过解码器61连接到单位5的行70的字线,行76,的字 线连接到单位5的行76.当对一个给定行的字线寻址时,该字线在相\n邻的单位4和单位5中的两个部件都在一起寻址.用于行70和76的 公共擦除门也通过解码器61连接到用于行70,和76,的公共擦除门, 以便使行70、 70,、 76和76,中单元的扩大块形成的所有单元一起擦除. 所以,当仅仅以两个阈值状态操作存储器阵列浮点门时,正在介绍的、 该阵列的八个单位就减少到四个搡作象限,每一个都是由相邻的单位 对(0-l、 2-3、 4-S和6-7)所形成.如果为了在每个单位的电路65中 进行程序验证和读取,也设定了一个恰当的参考阈值电平组,这样就 允许图1中的存储器阵列既能以二状态操作,又能以四状态操作,按 照制造时设定的一个命令而定.\n作为困3B中所示二状态配置的替代方案,在单个单位之内的所有 行可以形成单一的块,比如相互连续的四行.\n在控制器緩冲区存储器35 (图1)和寻址的阵列存储器单元块之 间的数据传递最妤以字节片方式进行.在一个具体的实例中,每个字 节片包含66字节的数据. 一个字节片的数据并行地一次编程到寻址块 中的单元.当以四状态操作时,数据91-94的字节片存放在典型块的 一行中(图3A),数振97-100的字节片存放该块单元的第二行中. 当存储器以四状态操作时,数据91,-94,的各个字节片存放在单元的延 伸行之一中(图3B),字节片97,-100,存放在延伸跨越两个相邻羊位 的单元扩展块的另一行中.\n不是在緩冲区存储器3S和存储器阵列之一之间并行地传递字节 片的用户数据,在连线15之内设计了一条数据总线,只并行地载有几 位数据,在一个具体的实例中是一位.这样就在该系统中减少了连线 15需要的数目,更重要的是,减少了需要在每个存储器阵列芯片上包 括的用户数据烀点的数目. 一次传递一个字节,因此每个字节片需要 66次这样的传递。如果对阵列单位5之内的一个块进行寻址,通过接 口电路33和39,这些字节宽的用户数据传递延伸到緩冲区存储器35 和存储器单元阵列的主寄存器69之间,如果对其它单位之内的一个块 进行寻址,则传递到与另一个单位相关联的另一个阵列主寄存器。\n在编程期间从主机系统收到的用户数据区段的字节依次传递到存\n储器阵列的主寄存器中, 一次一个字节,直到累积了一个字节片的数\n据,然后这一个字节片并行地传递到从寄存器(比如阵列单位s的寄\n存器67)。当这一个字节片传递出主寄存器,进入从寄存器之后,区 段中下一个字节片的字节就传递进主寄存器'字节片是并行地传递, 每次一块,由从寄存器到编程和验证电路(阵列单位5的电路65), 使相关联阵列单位被寻址块的许多存储器单元编程到其对应的目标阈 值电平.把一个字节片加栽进主寄存器的操作最好与编程和验证电路 由从寄存器对前一个字节片数据的编程相重叠。\n在读取期间,该过程是相反的,代表字节片数据的存储器单元阈 值从阵列单位之一每次一个地读入其读取电路(阵列单位5的电路\n65),存放的数值在其中转換为数据位。然后,这些连续的字节片数 据每次一个字节片地传递到该阵列单位的从寄存器中,再并行地传递 到主寄存器中,接着通过连线15每次一个字节地传递到控制器的数据 緩冲区35,以便传递到主机系统。当一个字节片被传递出主寄存器到 达控制器时, 一个新的数据字节片就被从读取电路传递进从寄存器。\n不是完成一个区段的数据字节片传递后再连接另一个,最好是在 緩冲区存储器35和不同的阵列单位0-7之间交替地传递多个区段的字 节片.这种情况展示在困5中,其中来自四个区段的数据传递到一个 公共的数据流101。存储器阵列单位A、 B、 C和D可能是图1中系统 的阵列单位0-7中的任何四个.数据字节片A0+、 B0+、 C0+和D0+显 示为在数据流101中,从緩冲区存储器35中的四个对应的数据区段 103、 105、 107和109传递到四个不同的存储器单位A-D。存储器系 统当然能够另外设计为一起传递更少或者更多的数据区段到相同数目 的存储器单元单位.为了展示简便起见,图5中所示的每个区段只包 含四个字节片(例如,区段103是字节片A0、 Al、 A2和A3),以上 已经介绍了闺1中的系统对每个区段传递八个字节片.操作的原理是 相同的。\n如困5所示,在连线15的数据总线中传递的数据流101,是由以 下的连续字节形成的:緩冲区中数据区段103的第一个字节片A0,接\n着是区段105的第一个字节片B0,然后是区段107的第一个字节片 CO,然后是区段109的第一个字节片DO。这些字节片最初存放在要向 其中写入数据的相应单位的主寄存器中,再并行地传递到从寄存器, 然后并行地写入四个存储器单元单位A-D的对应块lll、 113、 IIS和 117.所有的字节片AO、 BO、 CO和DO都在同时编入相应的存储器单 位A-D,接着是字节片A1、 Bl、 C1和D1,依此类推.写入数据字节 片的块或者共享公共的字线119,或者在被寻址块的字线上施加着相 同的电压。初始的数椐字节片通过寄存器传递并编入单位后,随后四 个数据区段的字节片A1、 Bl、 Cl和Dl被传递到这些单位的寄存器. 在数据流101中,接着是来自数据区段103、 105、 107和109中每一 个的另一个字节片,依此类推,直到緩冲区中的四个数振区段的所有 字节片都编入存储器单位A-D.\n这种编程技术具有的一个优点是,用户数据的多个字节片可以同 时编入单一芯片上存储器的不同单位中,或者也可以是编入分布在两\n个或更多存储器芯片的不同单位中.这种技术特別适用于同时把多个 数据区段编入一个单位的一个公共块,因为被困5中技术编程的单元 相互之间在物理上和电学上分离得更远.在不要改变的浮点门上,这 种分离减少了电荷干扰的意外。它也展开了芯片上的电源供应需求。 图5中的技术对位置连续的存储器单元形成的存储器块进行操作,也 特別适用于在跨越多个存储器单位的片段中规定存储器块,以便同时 对该块的多个片段进行编程,而不造成干扰和电源需求增加。\n介绍闺5的技术时假设,多个数据区段的全部一一在这个实例中 是四个一一都完全写入控制器緩冲区35,再开始把它们的数据以字节 片的形式传递到闪存.但是如果所有四个数据区段同时写入緩冲区存 储器35,这种传递就可以更早地开始,如同控制器11和主机系统之 间进行的更高的数据传递速率一样。另外,以时移方式把四个数据区 段103、 105、 107和109加栽进緩冲区存储器35,比如在数据字节片 AO已经写入之后正在读入数据流IOI时,从区段105加栽字节片BO, 并且以此对待数据区段107和109,还可以包括某些附加的并行化。\n然后,这些数据区段以加栽这种数据一个字节片所需的时移,加栽进\n緩冲区35,那么,在流101之内产生数据字节片只需要等待每个数据 区段的第一个字节片加栽进緩冲区35.\n图6A是一个电路示意性框图,该电路可以作为一部分而包括在困 1中存储器系统的控制器ll中,放在编程和读取时接口 25和33之间 的用户数据传递流的路径上。这些电路参与执行困5中介绍的方法, 也从被编程的数据产生ECC并把它插入数据流(ECC生成37)以及 利用BCP来遊免用户数据写入存储器单元的坏列中(BCP处理36). 微控制器23以预定的瓶序,每次一个字节地对緩冲区存储器109寻址。 这个顺序由电路104和106改变,以响应连线108中的信号,它表示 闪存之内包括坏列的一个字节地址.多路转接器121用于每次提供来 自区段A、 B、 C或D之一的数据字节,以响应连线123中的控制信 号,它作为另一个多路转接器125的一个榆入.存放在緩冲区3S中数 据区段的数据字节片,最好以上面图5中介绍的方式读出。控制信号 123使多路转接器121按烦序从一个数据区段转向下一个,每次从緩 冲区35读出一个字节片规模的若干数据字节。\n多路转接器121输出端的用户数据流作为一个输入供应给多路转 接器125.多路转接器125 —般让来自连线114的数据流通过其输出 端,到达另一个多珞转接器112的输入端. 一个例外是当一个区段的 所有用户数据字节都已经流出緩冲区35时,这时包含着用户数据区段 ECC码的最终字节序列,通过连线116加在用户数据的尾部。多路转 接器125的输出提供了字节宽的用户数据流和数据的日常信息,以便 写入非易失性存储器的物理块中。\n用户数据流一般每次一个字节地通过多路转接器112到达闪存. 这一点的一个例外是当连线108中的BCP发现信号活化时,它表示用 户数据的这个字节正在指向闪存中包括坏列的位置.在这种情况下, 应用于緩冲区35的地址不是按照微控制器23增加,而是把寄存器110 中包含的填充字节插入数据流中,取代用户数据的通常字节。来自緩 冲区35的、用户数据的下一个字节被延迟,直到BCP发现信号非活\n化的下一个传递周期.寄存器110之内填充字节的各位可以由徵控制 器23写入.多路转接器112的输出提供了字节宽的用户数据流和数据 的曰常信息,以便写入非易失性存储器的物理块中,以及为了遊免坏 列效应的填充字节.没有困6A中的电路,或者只有BCP处理36或 ECC生成37之一而非两者都有,也能够运行正在介绍的存储器系统, 但是展示的两种功能最好都包括,\n参考图6B,其中给出了困6A中ECC生成器37的附加细节,即 使四个数据区段在一个字节宽的数据流中从多路转接器112的输出交 替传递到单一 ECC生成电路127, ECC生成器37能够分別为每个数 据区段产生一个ECC,把产生的代码附加在每个数据区段的尾部最后 一个字节片中,并发送到非易失性存储器阵列进行存储.做到这一点, 是对每次发送到存储器阵列的、四个数据区段中的每一个,使用分离 的寄存器133、 134、 135和136。由信号分离器131或某种其它的有 效开关逻辑电路,在这些寄存器之一中存放生成的结果,同样,这些 寄存器中适当的一个,其内容通过多路转接器139连接到ECC生成电 路127作为一个输入.在数据的每个字节从緩冲区35输入到ECC生 成电路127之后,该电路对存放在寄存器133-136中对应的一个内的、 相同的对应数据区段A、 B、 C或D,使用ECC生成的一个中间结果, 以及数据的新字节,产生新的中间结果,送回同一个寄存器存放.寄 存器的这种使用受到其输入信号分离器131和输出多路转接器139的 控制,它们又是由连线123中的控制信号导致的,在寄存器之间按顺 序步进,与数据选择多路转接器121同步.生成电路127执行某种标 准的ECC多法,比如里德-索罗门编码.\n当BCP处理把填充字节插入数振流中时,为了使ECC生成器127 暂停,连线108中的BCP发现信号活化,并且连线116中的一个信号 表明多路转接器121输出的数据有效,二者的结合使生成器127禁用。 逻辑电路138结合信号108和116,以便为ECC生成器127产生一个 禁用信号。\nECC生成器已经收到存放的数据区段的最后一个字节之后,多路\n转接器125响应连线129中的控制信号,从接收多珞转接器121的输 入转向接收ECC生成电路127的结果,把最后的结果插入数振流的最 后一个字节片。然后ECC就与产生它的用户数据区段存放在存储器阵 列的同一块中。对一组四个区段中的每一个,都产生ECC并插入数据 流之后,连线141中的一个信号使寄存器133-136复位.\n参考闺6C,其中给出了 BCP处理36的附加细节.对于一个具体 时间正在编程的每个存储器区段的许多坏列指针(BCP),由徵控制 器23从闪存的一个保留块加栽到寄存器118 (后面对于图11还要介 绍)。为(图5中)数据流101指向的存储器单位中的每一个,存放 了四个BCP0-3。也就是,为这四个单位中每一个的所有四个BCP0-3, 都是由微控制器23从保留块写入寄存器118的四个面(组),每个組 具有四个寄存器.困6C中所示的寄存器118的每一个面包含一个不 同单位的BCP0-3.连线123中的控制信号在这些寄存器面之间切换, 以指定当前在通过多路转接器121来自緩冲区35的数据流中的数据字 节片所在单位的BCP。多路转接器120把寄存器数值中的一个输出到 比较器132的一个输入端,其输出是包含着BCP发现信号的连线108. 当前数据流要写入的单位中的每一个,也包括四个寄存器122之一. 四个寄存器122中的每一个,开始时的计數是使多路转接器120选择 其单位的BCPO.每次连线108中的BCP发现信号发生时,电路124 和126使适当的寄存器122的BCP计数增加1。\n比较器132的第二输入是由寄存器128和130的内容形成的。这 些寄存器包含着存储字节片和字节的当前物理存储器位置,多珞转接 器121输出的数据字节指定在闪存之内要存放在该处,这些寄存器由 徵控制器23加栽.然后,比较器132把它们结合的物理存储器字节地 址与该数据字节指定的存储器单位的寄存器118中BCP之一的地址进 行比较„当给定单位用户数据的第一个字节出现在多路转接器121的 输出端时,其来自寄存器128和130的物理存储器地址与该单位的寄 存器118之一中的BCPO进行比较.如果比较结果是肯定的,那么连 线108中的BCP发现信号就变为活化的。这就导致ECC用户数据的\n当前字节被阻止,由从寄存器110插入的填充字节取代.然后该填充\n字节取代当前数据字节将被写入包括坏列的存储器单元。\nBCP发现信号也造成该单位寄存器122之一中的计數切換多路转 接器120以选择该存储器单位的下一个BCP1.然后BCP处理器为这 个过程再次发生做好准备,即物理存储器字节位置符合该单位BCP顺 序中的下一个。在下一个循环中写入受阻的数据字节,假设这次下一 个物理地址比较不会导致另一个BCP发现,如果还是这种情况该数据 字节还要再受阻一个循环.这个过程持续下去,直到当前四个数据区 段形成的数据流已经传递到闪存,随后对存放在寄存器128和130中 的、不同的存储器位置重复该过程,写入新的数据区段,并且如果新 数据是写入不同于以前的一个或多个存储器单位,还可能改变存放在 寄存器118的一个或多个面上的BCP.\n再次参考图4,其中给出了存储器阵列块的说明,块中存放着一 个数据区段和ECC.作为附加的日常信息,第一字节145提供了如何 写入其余数据的基本信息.这可能包括,例如, 一位或两位用于指定 相对数值或极性,在读出存放的数据时要考虑这些因素.为了均衡对 某块的单元编程时,从擦除状态(它也可能是编程状态之一)到编程 状态之一造成的损耗,这种信息往往随块和时间而变化。在下面针对 困15至图17还要进一步介绍这一点.下r"个成分是数据147,从目 前已经介绍的内容,它是主机系统供应的用户数据的一个区段,要存 储在非易失性存储器系统中.成分149是在编程期间以上面介绍的方 式从用户数据147产生的.在各个块中的单元数目逸定为留有一个单 元組151作为备用,在这个实例中是能够存放8个字节.这些备用字 节在图4中显示为读写时位于块的尾部,如果在块的其它部分没有需 要使用某些或所有这些备用字节的缺陷,就是这种情况.为了避开坏 列而由BCP处理36把填充字节插入用户数据147时,备用字节151 的数目将是闺4中显示的数目减去填充字节的数目。把一个填充字节 插入用户数据147导致随后的字节都延迟一个字节,或者说在固4的 数据区段示意困中右移,西此使数据流尾部的备用字节151的数目缩\n小了 1.\n当数据区段从闪存读出时,闺6A至闺6C中的BCP处理和ECC 生成电路以相反的方式运行,只不过一个完整的数振区段读出之后才 读取另一个区段的数据.当数据每次一个字节地通过困6A中的电路 从闪存到达数据緩冲区35时,ECC生成电珞37由区段中的用户数据 计算ECC,其方式与上面介绍的写入数椐时相同.然后,计算出的 ECC与作为区段一部分存放的ECC字节进行比较,以便确定该区段 的用户数据是否有效.通过比较读出每个字节的物理存储器位置和该 数据区段存放的存储器单位的BCP, BCP处理在读出的数据流中识別 填充字节.然后,从读出的数据流中清除这些字节,再把该数振区段 写入緩冲区存储器35.\n参考图7,其中总结了图4至图6中介绍的数据编程.在困l至图 3中的系统为四个数据区段A-D产生的数据流lOl中,虛线表示字节 片出现的烦序,其中每个区段是以8个字节片传递.如图所示,区段 A、 B、 C和D的第一个字节片以这个顺序出现,接着是区段A、 B、 C和D的第二个字节片,依此类推,直到包括区段A、 B、 C和D的 第八个最后的字节片.此后,很可能对四个不同的数据区段重复该过 程,\n应当注意,与数据区段一起存放在一块中的曰常信息,仅限于有 关该数据本身的信息,并不包括有关块或其操作的物理日常信息.现 有的存储器系统,尤其是通过存放用户数据的512字节区段来仿真磁 盘驱动器的系统,除了从块内存放的数据产生的ECC之外,也已经在 各个用户数据块中存放了以下的块特征的有关信息:经历循环、对单 元块编程或擦除所需的脉冲数目或电压、块内的缺陷等存储介质有关 的信息。不过,作为本发明的一部分,这种类型的有关物理块的信息 存放在另一块中.作为一个特定的实例,包含着众多块的这种信息的 各个块曰常记录,存放在专为这种曰常信息而不包含用户数据的其它 存储器块中。影响许多块的、存储器阵列的某种信息,比如坏列的标 识,又存放在其它存储器块中,以使这种信息需要的存储器空间最小。\n无论哪种情况, 一个给定块的日常信息都是从这些其它块中读出,作 为访问给定块过程的 一部分,不论是从它读出数据还是把数据编进去. 通常在访问该块读写用户数据之前,由控制器读出块曰常信息.\n图8展示了几个这种块日常数据记录151-157,它们一起以闺4中 的格式存放在单一的存储器阵列块中.也就是,其它块的多个曰常记 录形成一个日常数据区段的数据147,该区段包括从日常数据147产 生的旗标字节145和ECC字节149。存放日常数据区段的块也包括单 元的备用字节151,用于取代有缺陷列之内的任何单元.这种日常数 据的区段和存放它的块具有相同的特征,并且读写方式相同,正如以 上对用户数据区段的介绍.主要的差异在于数据147的性质。在一个 特定的实例中,每个这种日常记录包含四个字节的数据,结果128个 这种记录结合在一起,成为曰常数据的一个规定区段.\n图9展示了一个良好的用户数据块的块曰常记录的实例内容。字 节0包含旗标,它包括一个标志,表明该用户数据块是良好的.字节 1指明擦除用户数据块所用的电压,字节2为编程电压.在存储器系 统的寿命中,这两种电压由控制器更新,以响应从属用户数据块需要 增长数目的擦除或编程脉冲来达到所需的相应擦除和编程状态。当分 別擦除或编程记录1S1包含日常数据的从属用户数据块时,控制器就 使用这种信息'日常数据记录的字节3表示从属用户数据块的延伸使 用,无论是作为经历计数,它在从属用户数据块每次擦除和再次编程 时更新,还是作为一个或多个追踪单元的特征,这些单元作为其相应 的用户数据块,经过了相同次数的擦除和再次编程循环.这种追踪单 元的使用,最好是至少与分配来存放用户数据的存储器阵列块中的每 一个相关联,在上迷的美国专利申请序列号08/910,947中介绍过.当 使用循环的次数增加或者当追踪单元的特征显著改变时,周期性地重 写字节3中的数据.字节3的数值用于确定相关联的用户数据块何时 需要退出服务。使用追踪单元,而不是经历计数,有一个显著的优点, 曰常区段数据需要重写的次数少得多,少到在存储器阵列的寿命中只 有几次,而不是在每次擦除/编程循环之后。\n图IO展示了一个用户数据块的曰常记录,该块已经超过了其有效\n的寿命,否則就是已经被控制器确定为一个有缺陷的块.旗标字节表 明,该块是有缺陷的,并且分配了一个备用块来取代它.(不要与(闺\n4中的)旗标字节14S相混淆,后者是在各个数据区段的起点.)该 记录的其它三个字节指明了备用块的地址,作为当前用户数据块曰常 数振的一部分.罔此,对于好的块用于指明其操作参数(见图9)的 三个字节,对于有缺陷的块高效地用于这种其它的目的.这样做使曰 常数据需要的字节数目最少.当控制器读取这个记录作为访问其用户 数据块过程的一部分时,它很快地确定,被寻址的块是有缺陷的,然 后控制器使用图10的记录中提供的备用块地址来寻址并访问备用的 用户数据块。\n罔此,除了填充存储器阵列指定的地址空间必需数目的用户数据 块之外,这种块管理还需要提供许多备用块。这些块的日常记录在旗 标字节中指定其状态为备用的,以及它们是良好的还是有缺陷的备用 块.如果是良好的备用块,该记录包含的字节1-3与图9中的记录相 同.如果是有缺陷的备用块,字节1-3不需要包含该块的任何日常信 息,因为它绝不会被使用。\n存储器单元阵列中影响许多单元块的任何缺陷,比如一条位线与 一个其它的单元短路时可能发生的有缺陷的列,存放在其它的块中, 以便精筒块日常记录.困11中所示的一个实例是坏列指针(BCP)表, 以闺4中数据格式的块中数振的形式存放.在存储器系统制造过程的 測试阶段,要产生这样一个表.在这个实例中,每个BCP有两个字节, 对存储器单元单位0-7中的每一个,最多可以存放四个BCP,由于在 典型的用户数据块中包括单元的八个备用字节作为备用字节151 (困 4),在单一的块中可以跳过单元的两个字节,以响应控制器从困11 的表中读取一个BCP,如果在一个单位中有超过四个坏列,该单位就 被识別为有缺陷的,弃置不用。只要至少还有一个单位还可用,存储 器系统就可以运行.另外,由于每个单位的列线可能是分段的,可能 要为每段,或者段的各个组存放某些数目的BCP,比如两个.当然,\n它要消耗更多的存储器来存放扩展的BCP表.\n在存储器的运行期间,闺ll的BCP表和数目为空间允许的、图8 至困IO的日常数据块,由控制器从存储器块读入其RAM29(见闺1) 中,而不从非易失性存储器中刪除该日常数据.这是在存储器系统的 初始化时完成的,如果RAM29中没有足够的空间存放所有的块曰常 区段数据,控制器不太经常访问的数据会从RAM29删除,以利于要 访问的数据.由于控制器从其自己的RAM29读出这种数据比从非易 失性存储器块中读出要快得多,在控制器的存储器中这种数据的鳴 速緩存"加速了访问包含着用户数据的非易失性存储器块的过程,因 为曰常数据也必须访问.\n控制器11可以访问许多用户数据区段,以响应来自主机系统的命 令,命令中包含着一个地址,比如在磁盘驱动器中以柱面/磁头/扇 区格式,或者是以逻辑块的形式.然后控制器计算对应于主机提供的 起始区段地址的起始块逻辑地址。给定阵列芯片的存储器系统地址空 间可能表示为连续的逻辑块地址(LBA),它以存放用户数据的良好 存储器单位表示芯片上所有可用的块。以相同的顺序逻辑地安排块曰 常记录。然后控制器首先把对应于主机指定的第一数据区段的块曰常 记录读入其RAM29,同时由用户数据块的LBA计算出在它存储器阵 列之内的物理地址.访问了第一个用户数据块及其日常信息之后,对 地址为该具体文件中数据的每一个后续的块,不需要再次计算逻辑块 地址. 一个简单的计数器将在曰常记录中步进,这些记录已经以其对 应的用户数据块的顺序安排好了.如果在这次访问时,控制器的RAM 29中没有所需的所有日常记录,最好是首先把需要的日常数据区段从 非易失性存储器读入RAM 29,包括替換块的记录,其地址包含在初 始曰常记录中.\n采用与块分离的记录来存放块日常数据的一个优点,是减少了这 种记录必须重写的次数.在本实施例中,数据的日常块不需要经常重 写,在存储器系统的寿命期间可能只有两三次,有时根本不必重写. 对于一个块,曰常信息记录的任何改变,在重写到保存该记录的日常\n数据区段之前,都尽可能长地保持在控制器的存储器中,然后就可以 在后台完成,不必成为擦除或编程循环的一部分.但是,当某块的曰 常数据存放在该块中时,该块每次擦除后曰常数据都必须再次编程. 在此处介绍的实例中,某块中只存放了用户数据的一个区段,用户数 据的一个区段每次写入该存储器块时,日常数据都不得不重写入一块 中。这也可能需要曰常信息两次写入同一块, 一次在写用户数据之前, 一次在写入之后,以便补偿对相邻单元编程的效应,尤其是当多状态 编程时,对这种效应的容忍度较小.\n尽管文中介绍的存储器系统实例在每个个别的块中只存放用户数 据的一个区段,本发明的许多方面同样可以应用于在存储器单元阵列\n的各个块中存放两个或更多数据区段,每个都带有其旗标和ECC字节。\n图12提供的使用实例中,存储器阵列芯片的各个块具有八个块单 位.在每个单位的一个特定块中,通常是第一块,存放着同样的启动 信息。系统初始化时,控制器的闺件使单位0的第一块读出,但是如 果该块不可读或者其存放的数据已被破坏,則访问单位1的第一块进 行读取,依此类推,直到控制器读出了有效的存储器系统启动信息。 然后它被存放在控制器的RAM 29中。也有许多保留块,比如闺12 中所示的保留块0-7,其中存放着存储器阵列芯片操作所需的数据.在 不同于主拷贝的一个存储器单位中,提供了每个保留块中数据的一份 拷贝,作为应付有缺陷单位的保险。每个保留块的数据格式见图4中 的说明。\n启动信息的一部分是保留块0及其拷贝的物理地址,在一个特定 的实例中,它包含着困11中的坏列指针、任何不可用单位的标识和物 理映射特征,包括良好单位的哪些块被保留、为用户数据分配的块、 按照图8至图10为日常数据(t).H.数据")分配的块和为备用块分 配的块。保留块O也包含其存储器阵列芯片具体的读写控制参数.\n其它的保留区段包含的信息,对控制器操作这些区段所在的存储 器阵列芯片有用,或者对整个存储器系统有用.例如,保留块l可能\n包含只出现在系统的第一个逻辑存储器阵列芯片上的系统参数的数\n据,包括控制器与主机系统的数据接口 13的指标,另一个保留块可能 包舍例如制造信息.制造过程的一部分,就是写入在启动信息和保鍵 块中存放的数据.在制造后,这种数据可以变成可修改的,或者是一 部分,或者是全部.\n图13展示了制造时配置过程中必需的一步.控制器ll从每个芯 片的保留区段O读出每个存储器阵列芯片有关的数据,并装入图14所 示的一个公共文件,然后它又写回存储器系统第一个逻辑芯片17的保 留区段2中,控制器的程序存储器27 (见图1)中包括的固件可以提 供这个过程.在系统配置期间调用这个闺件例程后,从每个系统存储 器芯片读出良好用户数据块数目的数据,然后该信息变成闺14中系统 记录的一部分.逻辑块地址(LBA)的范闺也加入该记录中,第一个 逻辑存储器芯片17的第一个用户块的地址分配为0000.作为记录的 一部分,也记录了结尾的LBA,是起始LBA— — 0— —加上第一个芯 片上用户数据块的数目.下一个存储器芯片19的逻辑存储器空间要记 住其良好用户数据块的数目和结尾的LBA,它比第一个存储器芯片的 结尾LBA加上第二个芯片上良好用户数据块的数目多1.这个过程继 续下去,直到对于所有存储器阵列芯片完成图14中的表.\n在一个特定的实例中,对于系统中每个存储器芯片,图14的表中 的入口包括一个字节的物理芯片号和三个字节用于LBA.这使得合并 系统LBA表非常简短,访问快捷.为响应来自主机系统的一个地址, 在访问系统中一个具体的用户数据块时,作为一个具体的实例,控制 器11首先计算一个相应的逻辑块地址.然后,该LBA与第一个逻辑 存储器芯片17的保留块2中的表(见闺14)进行比较,以确定被寻 址的块在哪个芯片上。然后,从计算出的LBA减去前面剛剛过去的逻 辑芯片的LBA.由控制器读出指定芯片的保留区段l信息,把这个差 异LBA移进已经指定用来存储用户数据的指定芯片 一个相应的块,然 后就计算出了该芯片上的物理块地址.\n除了存放良好单位数目的记录和形成图14中合并表的区段之外,\n每个存储器阵列芯片还包括与其对应的阵列有关的其它信息,控制器 使用这些信息来操作它.这种其它信息也可以存放在每个芯片阵列的\n保留区段o中.本发明的另一个特性是,在一个系统中与一个公共控\n制器一起使用的多个阵列芯片,不需要每个都具有这些相同的特征,\n控制器11最好把存放在各个芯片保留区段0中的这些特征读入其 RAM 29,再访问该芯片。只要控制器的RAM 29足够大,这項工作 可以在存储器系统初始化时进行一次,然后在存储器的操作期间从 RAM访问.另外,这种信息也可以恰好在每次访问它之前从一个具体 的芯片中读出,然后只是在这次访问期间才存放在RAM29中.能够 利用具有不同搡作特征的两种或更多种芯片形成一个存储器系统,是 一个显著的优点.因为不同处理批次、不同车间、不同制造商的存储 器芯片能够结合在一起运行良好,这就极大地简化了制造过程。为了 收集具有相同特征值的芯片而进行的测试就不再必要了.\n在存储器芯片之间可能不同的这些特征,包括对芯片进行编程、 读取、擦除、擦洗和刷新时所用的多种最优电压和计时,以及容许的 最大、最小值。编程脉冲的最优数目、它们的延续时间、頻率和橘度, 以及芯片上电压泵源的搡作特征,包括最大和最小值的范闺也可以包 括在内.每个单位的区段数目和控制器把逻辑块地址转换为具体芯片 之内物理地址所需的其它信息也可以存放。备用的单位和单位内块的 指针也可以包括在内.其它信息包括保留区段物理位置的指针,所以 在系统的每个存储器芯片中,它们不必全都存放在相同的块中.每个 曰常块(见困8)中包括数据的用户数据块的数目也可以存放.在保 留区段0中包括坏列指针(BCP)已经介绍过了。对于不同的芯片电 压供应,比如3伏和5伏,某些特定的操作参数的复制集也可以包括 在内.然后,控制器能够调整其访问,以便与系统中每个芯片的特征 相匹配。结果,就不必使这些特征相同.\n对于图15介绍了数据区段的旗标字节145 (见困4)。在一个特 定的实例中,该字节最重要的第0位和第l位给出了一个因子,该区 段中随后的所有位都用它进行变換.在写入过程期间,在区段的用户\n数据读入数据流101 (见困5)之前,这两位最妤是由徵控制器23或 闺定的逻辑电路比如一个状态机为每个数据区段随机选择的。另外, 变换位也可以通过所有可能的组合按顺序分配.这些变換位处于其余 旗标位的起点,后者又插入数据流中,在用户数据和ECC字节之前, 这些数据和字节形成要存放的区段.对存放在闪存中的数据进行这样 的变换,其目的在于使存储器单元为相同的数据编程到不同的状态. 这就防止了在存储器的寿命中可能发生的、存储器各块的不均衡類耗, 比如当基本相同的文件反复写入相同组的块时.当读取数据区段时, 首先读出这些变换位,然后用于把从存储器读出的原始数据变換回存 储器为了存储而最初收到的数据.两个变换位用于四状态存储器操作, 当各个存储器单元的存储状态数目变得更大时,要用更多的位,不过, 如果存储器运行在二状态模式,就只用一个变换位。\n图16展示了在存入闪存之前,收到的数据变换过程的实例.这个 过程可以主要由微控制器23在其闺件的控制下执行,或者可以使用加 法器电路和相关的数字单元来执行.来自緩冲区3S的数据中的每个字 节,把它的位元分成四对,每一对位元在相应的加法器175-178中与 保存在181的两位变换罔子(用于四状态闪存)结合。然后,变换后 的位元对再次结合成单一的字节,用于多路转接器183的一个输入。 这些变换位也用于在加法器185-187中对189表示的六个填充位进行 变换,变换位本身与变換后的填充位元对结合,形成一个数据区段的 第一个字节145(见闺4),用于多路转接器183的第二个输入.然后, 连线191中的控制信号使多路转接器183切换到把数据字节连续地输 出到电路193,其中区段的第一个字节为图15的形式,通过多路转接 器的l榆入收到,后续字节为变换后的数据,通过O输入收到,直到 整个数据区段完成变換并送到闪存.进行图6中BCP处理和ECC生 成的,正是这种变換后的数据,而不是从主机收到原始数据.\n当数据区段从闪存读出时,进行逆变换,如图17所示.四个减法 单元195-198接收数据字节的对应位元对,该字节是来自闪存,在路 径194中收到.用于这个具体的数据区段的两个变换位存放在199处,\n它可能是一个寄存器.响应连续191中接收第一个字节的控制信号, 把变換位一一区段中收到的第一个字节的最初两位一一存放在199 处.在咸法单元195-198中,这两位与收到的位元对中的每一个相结 合,其方式为把它们变換回原来收到的数据,在最初两位之后,区段 数据的逆变换在这些变換位读出后立即开始。在分別的操作中读出变 换位肯定没有必要.第一个字节的其余6位由其三个位元对通过减法 单元195-198中的三个立即变换,然后存放在201处,以响应连线191 中的控制信号。随着每次一个地收到数据区段的后续字节,数据字节 进行逆变换以及结果通过电路203输出到緩冲区存储器35时,199和 201处的内容保持不变.然后,这种输出数据就与存储器系统最初收 到并以变換后的形式存放的数据相同.\n控制器使用图15中展示的旗标字节145的最低位4-7来确定某块 是否擦除。在存储器系统的一个实例中,擦除后的状态也是编程状态 之一,所以需要注意区别它们。在这种类型的系统中,如果需要确定 某块中的数据是否已擦除,那么,以数据的一位为样本,举例来说, 本身不能提供答案.所以,在一个实例中,写入数据区段第一个字节 的填充位189 (见闺16),或者是一个已知的罔定模式,或者是使之 成为确保这些位不完全等于已擦除状态的数值的某种模式.控制器读 出块中的任何数据区段,并期望在该块的相应单元中存放的预擦除位 173是否或者是填充位189闺定数值,或者是至少它们中的一个(最 好是更多)是某种不是已擦除状态的编程状态,如果没有已知模式的 话.作为进一步的栓验,可以确定在数据区段中是否有ECC码.如果 确定了这些条件中的任何一个或二者都存在,结论就是该块没有擦除. 但是,如果从旗标字节的位元位置4-7读出的数据位数值和/或ECC 全都具有与已擦除状态相等的数值,这就表明,该块处于其已擦除状态。\n尽管已经介绍了本发明多个方面的特定实例,应当理解,授权本 发明受到附带的权利要求书范W之内的保护。
法律信息
- 2021-03-05
专利权有效期届满
IPC(主分类): G06F 3/06
专利号: ZL 01806804.9
申请日: 2001.02.13
授权公告日: 2009.02.04
- 2016-08-24
专利权人的姓名或者名称、地址的变更
专利权人由桑迪士克科技股份有限公司变更为桑迪士克科技有限责任公司
地址由美国得克萨斯州变更为美国得克萨斯州
- 2016-06-15
专利权的转移
登记生效日: 2016.05.25
专利权人由三因迪斯克公司变更为桑迪士克科技股份有限公司
地址由美国加利福尼亚州变更为美国得克萨斯州
- 2009-02-04
- 2003-11-05
- 2003-08-20
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |