基于主机使用特性的快闪存储器地址映射的适应性模式切换的制作方法

文档序号:6506098阅读:103来源:国知局
专利名称:基于主机使用特性的快闪存储器地址映射的适应性模式切换的制作方法
技术领域
本发明涉及非易失性快闪存储器的操作,且更明确地说涉及非常大的存储单元区块的管理。
背景技术
目前正使用许多商业上成功的非易失性存储器产品,尤其是小形状因数卡形式的产品,其使用形成在一个或一个以上集成电路芯片上的快闪EEPROM(电可擦除且可编程只读存储器)单元的阵列。通常但未必位于单独的集成电路芯片上的存储器控制器与卡所连接的主机对接,并控制卡内的存储器阵列的操作。此控制器通常包括微处理器、某非易失性只读存储器(ROM)、易失性随机访问存储器(RAM)和一个或一个以上特殊电路,例如一种在数据的编程和读取期间当数据穿过控制器时从数据中计算误差校正码(ECC)的电路。一些市售卡为CompactFlashTM(CF)卡、多媒体卡(MMC)、安全数字(SD)卡、智能媒体卡、人事标签(personnel tag)(P-标签)和记忆棒卡。除存储卡实施方案外,可将此类型的存储系统嵌入到各种类型的主机系统中。
两种一般存储单元阵列结构已得到商业应用,NOR和NAND。在典型的NOR阵列中,存储单元连接在沿着列方向上延伸的邻近的位线源极与漏极扩散之间,且控制栅极连接到沿着单元的行延伸的字线。存储单元包括定位在源极与漏极之间的单元沟道区域的至少一部分上的至少一个存储元件。因此,存储元件上的经编程的电荷水平控制单元的操作特性,接着可通过向定址的存储单元施加适当电压来读取所述单元。美国第5,070,032、5,095,344、5,313,421、5,315,541、5,343,063、5,661,053和6,222,762专利号中给出此类单元的实例、其在存储系统中的使用及其制造方法。
NAND阵列利用两个以上(例如,16或32个)存储单元的系列串,其与个别位线之间的一个或一个以上选择晶体管和参考电位一起连接以形成单元列。字线延伸穿过大量的这些列内的单元。通过促使串内的剩余单元被硬开启而在编程期间读取并验证列内的个别单元,从而使得流经串的电流取决于存储在定址的单元中的电荷水平。NAND结构阵列的实例和其作为存储系统的一部分的操作请查阅美国第5,570,315、5,774,397、6,046,935和6,522,580号专利。
如前文引用的专利中所论述且通常为导电浮动栅极的当前快闪EEPROM阵列的电荷存储元件,通常由导电掺杂多晶硅材料形成。可用于快闪EEPROM系统的替代类型的存储单元利用非导电介电材料代替导电浮动栅极来以非易失性方式存储电荷。由氧化硅、氮化硅和氧化硅(ONO)形成的三层电介质夹在导电控制栅极与存储单元沟道上方的半导电衬底表面之间。通过从单元沟道向氮化物中注射电子来编程单元(其中将电子捕集并存储在有限区域中),且通过向氮化物中注射热空穴来擦除单元。2002年10月25日申请的第10/280,352号美国专利申请案序号中描述使用介电存储元件的若干特定单元结构和阵列。
与大多数完全集成电路应用一样,快闪EEPROM存储单元阵列也存在缩小实施某一集成电路功能所需的硅衬底区域的压力。需要不断增加可存储在硅衬底的给定区域中的数字数据的数量,以便增大给定尺寸的存储卡和其它类型的封装的存储容量,或者既增大容量又减小尺寸。增加数据存储密度的一种方式为,每存储单元和/或每存储元件存储一个以上的数据位。这可通过将存储元件电荷水平电压范围的窗口划分为两个以上的状态来完成。使用四个这种状态使得每一单元可存储两个数据位,八个状态则使得每一存储元件存储三个数据位,依此类推。美国第5,043,940和5,172,338号专利中描述使用浮动栅极的多状态快闪EEPROM结构及其操作,且使用介电浮动栅极的结构在前述第10/280,352号美国申请案序号中予以描述。由于各种原因,多状态存储单元阵列的选定部分也可以美国第5,930,167和6,456,528号专利中描述的方式以两个状态(二进制)进行操作。
典型快闪EEPROM阵列的存储单元划分为一起擦除的单元的离散区块。也就是说,区块为擦除单位,即可同时擦除的最小数目的单元。每一区块通常存储一页或一页以上数据(页为编程和读取的最小单位),但单次操作中可编程或读取不止一页。每页通常存储一个或一个以上数据扇区,扇区尺寸由主机系统界定。实例扇区包括遵循磁碟驱动器中建立的标准的512字节的用户数据,加上关于用户数据和/或其被存储的区块的某一数目字节的附加信息。存储系统通常配置为每一区块内有16、32或更多的页,且每页存储一个或仅仅几个主机扇区的数据。
为了增加将用户数据编程到存储器阵列中和从存储器阵列中读取用户数据期间的并行程度,阵列通常划分为子阵列(一般称为平面),所述子阵列含有其本身的数据寄存器和其它电路以允许并行操作,从而可同时将数据扇区编程到每一平面或从每一平面读取数据扇区。单个集成电路上的阵列可物理上划分为平面,或每一平面可由单独的一个或一个以上集成电路芯片形成。美国第5,798,968和5,890,192号专利中描述此存储系统的实例。
为了进一步有效地管理存储器,可将区块链接在一起成为元区块,也就是说,将每一逻辑可定址的元区块定义成包括来自每一平面的一个物理区块。国际专利申请公开案第WO 02/058074号中描述元区块的使用。共同逻辑地址将元区块识别为用于编程和读取数据的目的地。同样,元区块的所有区块一起被擦除。以此类较大区块和/或元区块操作的存储系统中的控制器执行许多功能,包括从主机接收的逻辑区块地址(LBA)、物理区块号码(PBN)与存储单元阵列内的页地址之间的转译。此转译通常涉及逻辑区块号码(LBN)与逻辑页的中间术语的使用。
存储系统控制器优选地能够通过其结构和控制韧件,促使数据在主机对其施加的各种状况下得以编程和读取。作为一个实例,可在高速率的速度下接收音频、视频或其它数据流(streaming data),且要求存储系统以实时存储数据。作为另一实例,主机可促使存储系统每次编程或读取一个数据扇区,例如在写入或更新存储在阵列中的文件分配表(FAT)时所发生的情况。
经常更新存储在元区块中的数据,更新的可能性随着元区块的数据容量的增加而增加。通常将一个元区块的更新的扇区写入到另一元区块。未改变的扇区通常也作为相同编程操作的一部分从原始元区块复制到新的元区块以便合并数据。或者,未改变的数据可保留在原始元区块中,直到稍后与更新的数据再次合并到单个元区块中为止。

发明内容
根据本发明,编程数据的存储单元的尺寸适应主机所编程的数据的性质和数量。当增加数据合并事件(在特定状况下发生)的缺点超过了通过将数据写入到元区块而提供的高度并行的优点时,数据扇区所写入到的区块的数目小于元区块中逻辑上链接在一起的区块的数目,例如在单个平面中的一个或一个以上区块内循序进行编程。
当相对于元区块容量而言正编程的数据扇区的数目值得利用高度并行的优点时,将数据扇区并行地写入到元区块的所有区块。然而,当特定数据编程操作相对于元区块的存储容量仅涉及较少数目的数据扇区时,所导致的增加的数据合并操作可能对性能造成的损害是较高并行无法弥补的,在此情况下无法实现使用元区块所提供的并行优点。
根据本发明的特定方面,视主机写入命令中和/或一系列写入命令中所包括的扇区数目而定,存储器控制器适应性地以高并行程度将许多数据扇区编程到元区块中或以低并行程度将其编程到比构成元区块的区块数目少的的区块中。视用于映射到此类物理区块中的逻辑区块的主机数据编程样式而定,可将数据编程到M个物理区块的完整元区块中,其中M等于4、8或某一其它整数,或者编程到例如M/2、M/4、M/8或类似数目的更小数目的区块单元中。在特定类型的主机编程操作中,数据的单个扇区的编程通常发生在当主机更新例如FAT表的操作文件时的正常操作中,其针对于单个区块而不是针对于元区块或子元区块。元区块不用来每次编程一个扇区。元区块也不可能用于具有逻辑上循序的地址的仅仅几个扇区(其将通过并行编程而扩展到元区块的若干区块)的编程操作,藉此导致每次只有一个或几个数据扇区被写入到元区块的每一区块。此情况下优选使用单个区块。此避免了每当更新元区块的这样的几个扇区时必须将来自元区块的所有若干区块的数据合并到新的区块中且原始区块被擦除。单个区块的此类数据合并仅导致单个区块擦除,从而导致存储器的编程和擦除循环(磨损)(其可缩短存储器的使用寿命)的数目更少。
根据本发明的另一特定方面,如果可能提供更多的最佳性能特性,将以一个并行程度访问存储的数据转换为以另一并行程度进行访问。例如,当对元区块的数据写入已改变时,对元区块的并行编程可转换为对单个平面中的区块的循序编程,从而此将改进性能。此转换包括将来自元区块的区块的数据复制到单个平面中的其它区块。相反,对单个平面中的区块的循序编程可转换为对元区块内的并行编程以改进性能,包括将来自原始区块的数据复制到元区块中。
在示范性实施方案中,可将模式位存储于快闪存储器阵列中并与个别扇区用户数据关联以指定所述扇区已在元区块中与其它扇区并行地编程,或在单个区块中与其它扇区以逻辑序列编程。模式位可与扇区的用户数据一起存储,或者作为含有许多用户数据扇区的附加数据的另一扇区的一部分。当主机命令读取或重新编程扇区的用户数据时,控制器通过读取此位以适当模式访问所述扇区。初始操作期间,控制器以并行模式运作,但将响应于指定一个或几个扇区写入操作的序列的主机编程命令而改变为循序模式。控制器接着改变与受影响的数据扇区关联的模式位,并循序编程用户数据。当从主机接收到一个或一个以上编程命令指定超过扇区阈值数目的将要一起编程的数据扇区数目时,控制器的操作可切换回并行编程模式。
另外,特定实施方案中,每一元区块由来自存储器阵列的若干或所有平面中的每一平面的一个区块形成。接着以两个主要模式中的一者来编程并读取用户数据。在第一主要模式中,跨越元区块的多个区块并行地编程许多连续定址的数据扇区。此导致数据扇区无序地存储在个别区块中。它们跨越形成有元区块的平面而交错。在第二主要模式中,将数据扇区循序写入元区块的个别区块内。控制器也响应并行和循序编程之间的数据扇区的变化,来重新指定跨越平面延伸(第一模式)或在单个平面内循序延伸(第二模式)之间的物理地址的次序。此可包括在区块之间移动数据。存储系统通常在不同区块中以这两个模式中的不同模式操作,以便提高存储系统的性能。
以下对本发明的示范性实例的描述中包括本发明的其它方面、优点和特征,应结合附图来阅读所述描述。本文引用的所有专利、专利申请案、论文和其它公开案的全文基于所有目的以引用的方式并入本文中。


图1概略地绘示非易失性存储系统及其与主机系统的使用;图2说明图1的存储系统的示范性结构;图3说明图1和图2的存储系统的存储单元阵列的特定组织;图4绘示图7的存储单元阵列的区块的第一实例序列;图5绘示图7的存储单元阵列的区块的第二实例序列;图6说明将逻辑区块地址映射到图7的存储单元阵列的物理区块的一个实例;图7说明将逻辑区块地址映射到图7的存储单元阵列的物理区块的另一实例;图8绘示图7的存储单元阵列内的数据修改的第一实例;图9绘示图7的存储单元阵列内的数据修改的第二实例;图10绘示每一数据扇区内的计数字段跟踪主机进行的写入操作的实例;图11说明组织数据扇区的不同方式的实例;图12绘示存储单元阵列区块从第一序列转换为第二序列的实例;且图13绘示存储单元阵列区块从第二序列转换为第一序列的实例。
具体实施例方式
图1概略地绘示电子系统(例如,计算机系统),其包括可并入有本发明的各方面的快闪存储系统。此电子系统的一些实例包括台式计算机、笔记本计算机、手提计算机、掌上型计算机、个人数字助理(PDA)、MP3和其它音频播放器、数字相机、摄影机、电子游戏机、无线和有线电话装置、应答机、录音机、网络路由器和其它电子系统。
图1的此电子系统包括连同随机访问主要系统存储器25而一起连接到系统总线23的处理器或微处理器21,和至少一个或一个以上输入输出装置27(例如,键盘、监视器、调制解调器及类似装置)。连接到典型计算机系统总线23的另一主要计算机系统组件为许多长期、非易失性存储器。与例如DRAM(动态RAM)或SRAM(静态RAM)的易失性存储器相比,非易失性存储器即使在从装置移除电源之后仍保持其存储状态。通常,此存储器为使用磁性或光学技术的磁盘驱动器,其具有兆字节、十亿字节或兆兆字节的数据存储容量。此数据检索到系统易失性存储器25中以便用于当前处理,且可容易地被补充、改变或更改。
在图1的情况下,大容量存储存储器为非易失性快闪存储系统29。存储器29可为抽取式存储卡的形式,或可永久地连线到(嵌入)计算机系统中。存储系统29包括连接到计算机系统总线23的控制器31,和由一个或复数个集成电路芯片形成的存储单元阵列33。主要通过线35从控制器31向存储单元阵列33传输数据和指令。同样,通过线37从存储单元阵列33向控制器31传输数据和状态信号。数据线35和37视实施方案而定可为串行或平行的。图1中未绘示控制器31与阵列33之间的其它控制和状态电路。在一些系统中,控制器31嵌入于计算机系统内,且存储单元阵列33封装在抽取式卡中。
阵列33可以每一电荷存储元件或区域存储一个数据位的方式操作。或者,可以每一存储单元电荷存储元件或区域中存储一个以上数据位(称为多状态或多层级单元)的方式操作阵列33。
图2绘示实例存储卡结构,其包括执行主机接口和存储器控制功能的单个控制器集成电路芯片121,和由复数个集成电路芯片127构成的快闪存储单元阵列。系统控制器和存储单元阵列芯片通过总线124连接,总线124允许在控制器121与存储器芯片127之间传送命令、地址和数据。应注意,虽然此为典型的,但一些存储系统不具有专用控制器,而是依赖于主机系统的直接控制。
通行的做法为每一扇区的编程到扇区中的主机数据价值随附有误差检测和校正码(ECC),其用于确定所存储的数据的有效性。一些此类系统接着通过使用ECC以确保数据未被破坏的方式来检查正读取的数据的有效性。用户数据的扇区也可以标头形式连同ECC和其它附加数据一起存储。
访问存储器阵列以编程或读取循序定址的数据的一个特性为“并行程度”。也就是说,通常优选并行地编程并读取尽可能多的数据,以便改进存储系统性能,即从/向阵列传送数据的速率。本文中术语“并行程度”用于表示可并行地编程或读取的存储器的页的数目。在逐一模式中,每次仅访问单个页。在逐四模式中,每次在多达四页中访问复数个连续定址的主机扇区。为了改进一些主机数据访问样式下的性能和耐久性,需要组织映射以允许更大的并行程度,同时在其它主机数据访问样式下需要组织映射以便降低并行程度。主机可能以不同的样式访问存储系统的不同部分中的数据,从而需要对于存储系统的不同部分以不同方式组织映射。对于存储在存储装置的特定地址范围中的数据的主机数据访问样式也可能随着时间而改变,从而需要随着时间修改特定地址范围的映射组织。一般需要这样一种存储器管理,其在可能经历的各种主机使用样式下使存储器利用最优化。
图3绘示图1和图2的存储单元阵列的实例。此实例中,阵列包括两个集成电路装置快闪0和快闪1。当然,视存储系统的期望的存储容量而定,可使用一个或三个以上的装置。每一装置中阵列部分划分为四个平面0到3,但在其它实施例中可使用2、3或4个以上的平面。复数个Q页(页为编程和读取的最小单位)包括在存储单元的每一区块(擦除的最小单位)内,且复数个N区块包括在每一平面内。页具有存储一个或复数个主机数据扇区的容量,从而使得每一区块存储可为每一区块中的Q页的倍数的M个数据扇区。每一平面具有其自身的电路,所述电路访问存储区块和平面内的页。通常,每一平面中仅同时写入或读取一个页。在特定实施例中,每一扇区包括512字节的用户数据。每一扇区还可包括用于标记、用户数据ECC、各种参数和其它附加数据的附加的位或字节。
平面的数目支配可操作存储系统的可能的并行程度。并行程度代表可同时编程或读取的页的数目。并行程度越大,可可同时操作的数据越多。并行程度可为1、2或更大。在高并行程度下,控制器进行逻辑到物理地址转换以使得一次访问多个平面中的多个页。可同时访问具有连续逻辑地址的许多数据扇区。此扇区数目等于正并行访问的页的数目乘以每一页中所存储的扇区数目。对于并行程度为一的情况,其在本文中称为逐一模式。在此最低并行程度下,每次仅访问一个平面的一页。在此情况下,每次可访问可存储在单个页中的具有连续逻辑地址的许多个主机数据扇区。
控制器可通过来自主机的写入命令中指定的具有连续逻辑地址的数据扇区的数目来确定将数据编程到存储器中的并行程度。一些主机命令在单个命令中指定大量将编程的连续数据扇区。控制器通过将数据以更高的并行量写入到存储器中来响应此类型的命令,此为图4中绘示的实例。其它主机命令仅指定写入一个或极少数几个具有连续逻辑地址的数据扇区,则以最小并行程度执行此命令,此为如图5中绘示的实例。
在所描述的特定存储器实施方案中,可将多个数据扇区同时编程到多个物理页中,每一平面中一个数据扇区,以便获得最大并行程度。此准许更高性能的数据写入。明确地说,对于四个平面,可同时写入多达四页,从而存储器的操作比每次仅可将数据写入一个扇区的存储器快达约四倍。编程所述数量的数据所需要的单独的编程操作的数目显著减少。作为另一实例,对于具有八个平面的存储器,具有最高并行度的此存储器的编程比每次仅可将数据编程到一页中的存储器快达约八倍。
在多平面存储器组织中,来自每一平面的区块可逻辑地编组在一起以形成元区块。图3的八个区块(包括绘示其页的线)的组合为元区块的实例。元区块为含有连续主机地址的某一范围中的扇区数据的区块的逻辑编组。子元区块为元区块内作为组或单位而被管理的区块的子集。一旦将元区块分割为子元区块,出于数据管理目的,每一子元区块实质上与具有减小的并行度的元区块一样被管理,因为子元区块内的数据独立地合并,而不依赖于元区块的其它部分。图3中,例如,每一装置上的四个区块可形成元区块或子元区块,而不是使元区块延伸跨越两个装置。
以下论述使用以下术语(1)原始区块为含有某一原始数据集的元区块或子元区块;(2)更新区块为含有来自原始区块的一些数据或从原始区块复制的一些数据或两者的更新版本的元区块或子元区块;和(3)逻辑区块或子元区块是映射到物理元区块或子元区块的主机逻辑扇区集,与区块的物理位置无关,或与数据是包含在单个位置还是包含在原始区块和更新区块中无关。
逻辑元区块是一中问单位,无论数据在任何给定时间所驻存的物理区块如何,其均位于在任何给定时间形成元区块的物理区块集与由主机管理以含有某一范围的数据的逻辑构造之间。另外,元区块可映射在若干存储器电路芯片上,以致于如果电路芯片上的存储单元阵列含有N个平面,如果映射在两个芯片上,那么元区块含有多达2N个区块,或如果映射在更多芯片上,那么含有更多区块。
控制器将具有给定逻辑区块地址(LBA)的数据映射到由物理区块号码(PBN)识别的平面内的特定物理存储区块中。构成元区块的区块的PBN不必相同。图6显示由每一平面内具有不同物理位置的若干区块形成的实例元区块。此外,由于构成元区块或元区块多个部分的区块在存储系统操作的过程期间变化,所以每一平面内区块的相对位置无需保持固定,而是可彼此独立地重新定位在每一平面内。
当用新的数据更新扇区时,将与给定扇区关联的区块复制到平面内的新区块。区块可位于平面内的任何地方。图7绘示关于将子元区块移动到一些其它任意物理区块的实例。
配置用于最大并行度的元区块最适于访问具有循序逻辑地址的多个数据扇区的主机命令。当每一主机读取或写入命令的扇区数目匹配或超过可并行访问的扇区数目时,即实现高水平的性能。借助每次操作越来越多数目的扇区命令的主机命令即可实现加1增益,因为此可减少与发布个别命令相关联的每扇区的处理额外开销量。
当主机每平面仅写入一个扇区并接着写入阵列中其它位置时,显示出以元区块操作存储器的缺点,因为需要合并部分更新的元区块内的数据。此合并需要将来自原始元区块的所有未改变的数据扇区复制到编程已更新数据的新的元区块中,且其后擦除原始元区块中的所有区块。在具有8个平面、每区块64页且每一页中存储1个数据扇区的存储器阵列的情况下,需要进行504个扇区的复制和8个区块的擦除。相反,如果将新的数据扇区写入到以并行一操作的子元区块,那么合并需要56个扇区复制和单个区块擦除,因更新几个数据扇区而导致额外开销大大减少。
简而言之,非循序的写入将加速存储器磨损,因为与合并和数据移动关联的擦除会磨损存储器。每一存储区块可忍受的擦除和编程循环的数目是有限的,此后其便不再正确运作。循环的最大数目尤其取决于存储器阵列的结构和必须维持存储器存储状态的精确度因素而定。此数目可低达10,000循环或可能相当大,例如100,000循环或更多,但重要的是要维持存储系统中所有区块的可操作性。为了使磨损最小化,优选使区块擦除最小化。
以下是重新定位元区块、子元区块或任一者的一部分和/或合并数据的各种情形(1)当主机在区块内重新写入一个或一个以上数据扇区时。此时,系统将已擦除的区块分配为更新区块,并将重新写入的数据写入到所述更新区块。往往原始区块内的一些或所有未改变的数据也被复制到更新区块,且更新系统内维持的逻辑到物理地址转换,以便随后响应于接收到对于相同逻辑地址的数据的请求来定址新的区块。如果存储在原始区块中的所有数据已通过主机进行的数据复制或数据重新写入来编程更新区块而被取代,那么接着擦除原始区块。
(2)如果需要将已擦除的区块分配为更新区块,但没有预擦除的区块可用(尤其在原始区块驻存的平面中),那么将两个或两个以上其它区块内的数据合并在一个或一个以上其它区块中。接着擦除已移除所有数据的一个或一个以上区块,使其可用作当前编程操作的更新区块。
(3)在一个实施例中,系统可仅合并提供更新区块所需的平面中的元区块的部分。其余平面内的元区块的区块可根据需要随后加以合并,因为需要其余平面内的更新区块。
(4)在另一替代实施例中,在某些平面而非其它平面中已合并的元区块由主机进行写入,并需要已合并的那些平面中的已擦除的区块。不需要完全合并(垃圾收集)任何给定元区块中的数据,实际上,独立地管理每一平面内的区块以允许对区块进行按需合并和分配。以此方式,系统操作期间可将子元区块移动到新的物理地址,而不依赖于给定元区块的其它部分。
当存储数据时,控制器可通过以准许高速操作的方式将数据扇区映射到物理区块中来进一步组织向存储器中的写入。图4绘示存储器以准许访问的最大并行的方式跨越平面0到3而交错,此实例中为4X并行交错。并行交错表示将存储器格式化从而使得循序定址的主机扇区在平面之间交错,也就是说,在不同平面的页中并行地同时编程多个循序定址的数据扇区。先将数据同时编程到构成元区块的每一平面的一个区块,然后再将数据编程到形成另一元区块的每一平面的下一系列区块中。假定对于图4的实例,仅将一个数据扇区存储在区块的个别页中,则控制器将第一扇区(扇区0)写入到平面0中的区块中,将第二扇区(扇区1)写入到平面1中的区块中,将第三扇区(扇区2)写入到平面2中的区块中,并将第四扇区(扇区3)写入到平面3中的区块中。存储器的此组织可称为并行映射。在此情况下,此为“逐四”或“x4”或“4X”交错。通过将数据写入组织成此格式,允许来自主机的连续定址的传入的数据(通常为位流)以高速的方式写入,因为每次编程四个不同平面中的四个扇区。
在特定实施方案中,与每一平面关联的缓冲器(其可为寄存器)连续地接收传入的数据,且根据控制器如何交错存储器而将数据从寄存器并行地写入到非易失性存储单元中。存储单元的特定交错可通过相应地格式化存储器而获得。可根据写入数据的相同交错格式从存储器中检索数据。
存在许多不同的映射存储器的方式,包括其它并行交错程度。可能存在多于并行交错程度的平面。例如,即使存在四个平面,但用于特定编程操作的并行交错可能仅允许同时访问两个平面。此可称为“逐二”或“x2”或“2X”交错。也可以“逐三”或“x3”或“3X”交错来操作存储器。
图5绘示存储器的逐一交错。并行程度为一。有时此称为非并行,因为每次通过一个平面中的单个页进行访问。图5中,循序将扇区写入到一个区块直到填满所述区块的所有页为止,且接着写入前进到另一区块。此可称为“逐一”或“x1”交错。
定时实例说明图4与图5的交错之间的性能差异。根据图5,为了写入四个连续扇区,循序将单个平面的数据寄存器填充四次,且循序执行写入四次。如果寄存器载入消耗25微秒,且写入消耗1微秒,那么总时间将为4*25微秒+4*1000微秒=4100微秒。但在图4的并行写入的情况下,四扇区写入仍涉及四个数据寄存器的循序载入,但只有一次写入操作。总时间将为4*25微秒+1000微秒=1100微秒。此4X并行映射导致性能上比1X映射提高3.7倍。由于不同存储器具有不同定时特性,所以这些特定数目仅用来提供比较性实例。
控制器中或存储器中可存储有交错指示器位(一个或多个),以便使控制器知道数据扇区是如何存储的。控制器可使用交错指示器位(一个或多个)来确定存储更新数据或读取数据的序列。例如,存储器上的每一扇区可具有包括在其中以指示如何存储了扇区的一个或一个以上指示器位。对于四平面存储器,存在7个可能的存储器交错配置。这些交错指示器位附加到用户数据位和其它附加位(例如ECC)之上。或者可将指示器位单独存储在表中,而不是在标头中。
单个存储器阵列最通常将具有以不同交错访问的区块。例如,相同存储器可具有逐一(图5)存储的一些数据和逐四(图4)存储的其它数据。扇区交错指示器位指示已用来在一个或一个以上区块中存储扇区的交错。例如,第一数据文件可使用逐一交错存储在存储器中,存储在第一子元区块中的扇区的指示器位指示此情况。第二数据文件可使用逐二交错而存储在子元区块中,如此存储的扇区的指示器位指示此情况。第三数据文件可使用逐三交错以相同方式存储在子元区块中。在单个存储器阵列中,可以这些方式中的若干方式来组织各种存储单元区块。
控制器根据主机编程命令的性质来决定如何引导数据。例如,如果主机正更新FAT文件系统(MS-DOS文件格式),则每一数据写入命令通常将指定单个扇区。也就是说,响应于每一主机写入命令,仅将一个扇区编程到快闪存储器。在此情况下,数据可循序存储在存储器的单个区块中(逐一操作)而不是元区块中。在另一类型的数据编程操作中,其中正编程非常大的文件,主机写入命令指定将要以逻辑地址的序列进行写入的极大量的数据扇区,其可占据至少一个元区块的大部分或全部。控制器响应主机活动以将并行程度与数据写入的性质匹配。
除了在决定如何将逻辑地址映射到物理地址时响应个别数据写入命令外,控制器可监视主机写入命令的样式。此监视可包括维持主机已访问特定区块(一个或多个)的次数的计数。此信息可作为附加数据存储在所述区块中所存储的数据扇区内,或存储在单独的物理区块中。对存储数目(一个或多个)的分析可包括与阈值数目比较,或将两个或两个以上访问使用样式的频率差异与阈值数目进行比较。此信息可用于(例如)识别频繁地重新写入数据的元区块,在此情况下控制器可决定将具有相同逻辑地址的未来写入改为映射到单个区块。此减小由于数据更新而必须合并的数据数量。
控制器可监视并存储的另一编程特性为,由于主机命令写入而写入一个或一个以上页或区块的次数相对于由于控制器启动的数据合并(垃圾收集)而写入一个或一个以上页或区块的次数。另一特性为,小于为了数据写入而访问区块或元区块的全部页的次数,因为区块或元区块的重复部分访问可发信号告知降低将数据写入到此区块中的并行程度的期望。另外,在决定逻辑地址向物理地址的映射时,可维持并使用通过个别主机编程命令而写入的扇区数目统计。例如,不论主机写入命令是否主要地指定一个,每次写入四个或四个以上数据扇区可非常有用。
尽管为解释概念起见,图4和图5的图示实质上绘示了以两种交错方案中的一种方案来操作整个集成电路装置,但通常此并不是使用存储器的有效方式。每一装置通常将以以下方式操作其区块的一部分用来形成用于并行访问的元区块(根据图4),且其区块的其它部分每次被防问一个(根据图5)。
如何跨越平面来交错扇区地址存在某些优点和缺点。更高程度的并行交错的优点在于,可将循序定址的扇区并行地写入到存储器。较低程度的并行映射或循序映射的优点在于,响应于部分区块更新需要复制较少的数据,且尤其是当重新写入少量数据扇区时需要对较少的区块进行垃圾收集。当重新写入存储在元区块中的数据的一部分时,将驻存在未重新写入的原始区块中的数据复制到新的区块,并与新的数据一起存储。如果使用并行映射来存储数据,那么将需要重新写入整个元区块,因为数据被扩展在不同平面上。然而,如果使用循序映射将数据存储在子元区块中,那么仅需要对子元区块中的数据进行垃圾收集。将要与尚未重新写入的任何数据一起重新写入的数据被写入到新的区块中,且新的区块与元区块的其它区块链接。此将使需要执行的复制、写入、重新写入和垃圾收集的数量最小化。
通常,快闪存储单元具有有限数目的擦除和写入循环(例如,10,000与100,000循环之间的某处),此后其可靠性可能将减小到不可接受的水平。因此,通过使重新写入和写入的数量最小化,其增加了存储器的寿命。减小垃圾收集的数量也会改进性能,因为垃圾收集耗费时间。
以下实施方案是本发明的使用快闪存储器的特定实施例。然而,快闪存储器仅用作实例,且本发明可以其它存储技术使用。在特定实施例中,本发明涉及存储装置,其中包括含有多个扇区“区块”的快闪存储器装置。区块定义为通过一次擦除操作而擦除的存储器的数量。也就是说,区块是擦除单位。本发明特定地解决针对所述区块的映射和访问的机制。
当主机装置访问快闪存储卡时,存在若干特有的使用样式。FAT文件系统产生两种截然不同的样式(1)FAT和目录区域中的单个扇区,和(2)存储装置的用户数据区域中的多个扇区。如果卷中存在片段,那么对于特定应用而言,使用将进一步为“随机”而不是循序的。
主机可通过各种主机使用样式访问快闪存储器。一种使用样式为单个扇区模式,其中每次访问一个扇区。其它使用样式为多重扇区,所述情况下存储系统同时跨越每一快闪装置中的多个平面而每平面访问一个扇区。
本发明将非易失性存储器的主机使用样式之间的并行程度与如何组织或格式化非易失性存储器匹配。并行程度可为逐一(也称为循序)、逐二、逐三、逐四,等等。逐一或循序访问方法先处理一个区块中的每一扇区,然后再继续到下一区块,且所述访问每次限于一个扇区。并行访问方法(大于逐一访问)在一次操作中而不是在若干循序或逐一操作中处理来自每一平面的扇区。并行操作通过增加处理量而允许较高性能。这两种方法在性能和磨损方面具有优点和缺点。
本发明监视主机访问且将切换在存储器中存储数据的方式,以便利用任一访问模式的存储器磨损和性能特性。
存在多种维持映射信息的方法,其中一个实例是起始LBA的表。保存在存储器中的表用来定位每一物理存储区块的起始LBA。
区块映射的适应性并行需要进行扇区映射和区块管理,其通过仅对含有正用新的数据重写的扇区的区块执行复制或擦除操作(或两者)而为快闪存储器提供最佳写入和擦除磨损性能。
对为了单个扇区并行而正将数据扇区映射到其中的区域的访问限于以每次一个的方式写入循序定址的扇区,以便维持给定逻辑区块内的循序地址排序。并行访问(大于逐一访问)允许同时写入每平面一个扇区,从而改进性能,改进的倍数等于并行写入的平面的数目。例如,具有四个平面的装置写入数据的速度可比单个扇区写入快约四倍。具有八个平面的装置写入数据的速度可比单个扇区写入快约八倍。具有十六个平面的装置写入数据的速度可比单个扇区写入快约十六倍。
图8绘示当使用循序映射时的数据修改。为了重写四个连续扇区将需要将新的数据写入到新的区块,并将旧的数据复制到新的区块,且擦除旧的区块。仅需要发生一次擦除。复制处理不复制已擦除的扇区。
图9绘示当使用并行映射时的数据修改。为了重写四个连续扇区将需要找到四个新的区块,并将旧的和新的数据复制到新的区块,且擦除四个旧的区块。需要发生四次擦除。如果相对于主机写入的数目需要许多数据合并操作(如同随机或单个扇区访问时可能发生的情况),那么增加的数目的擦除将影响芯片寿命。
每一扇区通常含有用户数据、ECC数据和附加数据。附加信息可包括扇区ID、物理地址信息和数据管理所需的其它系统相关信息。在本发明的一个实施例中,附加信息含有管理数据映射的适应性方面所需的额外信息。可维持某一数目的位以指示并行程度、子元区块的大小、扇区交错或数据映射的其它指示。
举例而言,如果最大元区块大小为四个区块,那么可使用二位映射字段来指示并行程度,其中00b指示逐一,01b指示逐二,等等。在此情形中,第一平面中的第一区块将具有指示其被格式化成的并行程度的映射字段,根据所述映射字段,某一其它数目的区块将包括在相同的子元区块中。例如,假如第一值为指示并行程度二的01b,那么其将指示仅元区块中的下一区块将在相同的子元区块中。
为方便起见将维持此映射字段信息,因为可能通过从元区块中每一区块中的扇区或从一给定区块中的循序扇区读取逻辑地址信息并基于其确定布局来确定数据映射。例如,如果给定区块中前两个物理扇区距离两个逻辑地址,那么交错因数将为二,且因此并行程度将为二。数据映射信息可存储在单独的表中而不是扇区附加信息中,且每当针对一给定元区块或子元区块修改数据映射时即得到更新。所述表将维持在非易失性存储器中,在一个实施例中维持在存储器装置上的备用区域中。
此外,在一实施例中,维持跟踪主机使用和/或卡活动的统计资料,以便用于稍后进行分析以确定最佳数据映射。一项统计资料为写入一给定主机命令中的扇区数目。如果此统计资料连同元区块或子元区块中每一扇区一起存储,则可将统计资料作为群组进行分析并确定最佳并行程度。在一特定实施例中,在写入扇区时将此统计资料存储在扇区附加开销中。在另一实施例中,可将统计资料暂时存储在易失性存储器中,且接着传送到易失性存储器中的单独表中。
也可为所写入的每一扇区或区块将统计资料累积在(例如)表中,从而累积每一者的出现数目或相对出现数目,并基于某阈值改变并行程度。出于累积的目的,将根据所允许的最近并行将统计资料装仓。例如,如果仅准许并行程度一和四,则对三个扇区操作的写入命令将连同对四个扇区操作的主机命令一起累积在计数中,且对大于四个扇区的任何写入命令将被装仓在对四个扇区的操作的计数中。表示最大并行程度的仓(bin)通过命令扇区计数除以最大并行而加1。
举例而言,如果最大并行为四,那么16个扇区的主机写入将使逐四计数加1四。如果一个区域主要以单个扇区主机命令被写入,那么统计资料将累积,指示最佳并行程度为一。同样,如果一个区域主要以四扇区主机命令被写入,那么统计资料将累积,指示最佳并行程度为四。
另一统计资料为扇区是否由于主机写入或由于数据合并而被写入。此统计资料可累积,例如累积在不同的表中或在个别扇区的额外开销中,并基于两个机制之间的相对数目或比率的某阈值而累积,从而累积每一者的出现数目或相对出现数目,并根据某阈值改变并行程度。例如,如果确定扇区主要由于数据合并而被写入,那么如果为了逐一并行而重新格式化区域以使数据合并活动中涉及的区块数目最小化,则可改进总体性能或耐久性。
上述两组统计资料可组合,从而使用第二统计资料达到阈值,促使第一统计资料的评估确定最佳并行程度。在一个实施例中,在非易失性存储器中在存储器装置上的备用区域中维持保存此累积统计资料的表。应注意,累积统计资料可能不以每扇区的方式维持,而是以元区块为基础,或以更大的区域(例如,元区块的编组)为基础。
系统可最佳化以便仅对所关注的区域维持累积统计资料,从而节省空间。例如,给定区域的累积统计资料的维护可在检测到对一数目的扇区(与区域被最佳格式化的扇区数目不同)操作的命令时启动。此类写入称为非最佳写入命令。
例如,如果为了逐一并行而对区域进行格式化,且在区域中执行四扇区写入,那么此可启动所述区域的累积统计资料的存储。一旦非最佳写入命令的数目超过阈值,系统将切换区域被格式化的并行程度。累积统计资料可实施成计数器,其在一个主机扇区计数出现时加1,并在另一主机扇区计数出现时减1。例如,如果仅准许逐一和逐四并行,那么每次出现单个扇区写入可将单个计数器加1,且每次出现四扇区写入将单个计数器减1。当达到特定阈值时,将切换区域数据组织。
存储区块访问模式信息的另一方法为,存储系统区域中所存储的映射扇区中的区块的模式位。访问统计资料也可存储在系统区域中。
图10绘示在主机进行的以下写入操作序列之后区块的每一扇区内的计数字段的实例(1)以扇区0开始的16扇区的主机写入;(2)以扇区16开始的8扇区的主机写入;(3)扇区24(仅1扇区)的主机写入;(4)扇区25的主机写入;(5)扇区26的主机写入;(6)扇区27的主机写入;(7)扇区28的主机写入;(8)扇区29的主机写入;(9)扇区30的主机写入;和(10)扇区31的主机写入。
同时绘示所收集的统计资料,其假定仅允许逐一(1405)和逐四(1408)的并行程度。单个扇区写入可进行八次写入(1405)。此统计资料是从对扇区24到31的写入收集的。逐四写入可进行六次写入(1408)。更明确地说,存在一次十六扇区写入,其可划分为四次四扇区写入,和一次八扇区写入(其可划分为两次四扇区写入)。总数为六次四扇区写入。
基于所收集的统计资料,可为了逐一或逐四映射重新格式化存储器。例如,何时从一个映射切换到另一映射的标准可基于特定计数(例如,x4)何时超过另一计数(x1)。可使用其它标准。
所述实例也绘示x1和x4的收集统计资料的实例。然而,在其它实施例中,可为了其它可能的并行程度(例如,x5、x8和x16)而跟踪统计资料。
图11绘示不同类型的扇区映射方案的实例。当读取每一区块的ID以初始化转换表时,获得关于为每一区块使用的访问方法的知识,且在一个实施例中为每一区块中用户数据的位置。从标头读取访问模式位,并将其写入到转换表中以指示区块的访问方法。区块不需要从平面到平面而连续。
图11绘示并行区块区块扇区编号方案、逐一或连续区块扇区编号方案以及部分逐一访问和部分大于逐一并行扇区编号方案的实例。部分逐一和部分大于逐一扇区编号方案可称为混合模式方案。这些方案分别与并行、循序(逐一)和混合模式访问方法一起使用。
图12绘示4X到1X映射转换的实例。此为从4X映射到1X映射的转换。在正常操作期间,快闪存储器通常在最初设置为以最高性能运行,这意味着以并行模式(大于逐一访问)运行。通常,更新区块的分配的时机将用以触发对元区块是否应从一种格式转换为另一格式的确定。如果区块中单个扇区写入的数目超过阈值(其可由用户定义或由系统设计者定义),那么将访问方法转换为逐一方法。此需要将所有扇区写入到新的扇区中的适当位置,并相应地设定其访问位。
图13绘示循序到并行映射转换的实例。与先前情况相反,如果区块中的扇区从单个扇区访问到多扇区访问,那么将访问方法相应地转换为并行访问,将扇区相应地重新写入到新的区块中,并调节每一扇区中的访问模式位。从第一并行程度映射到第二并行程度映射的变化将以类似方式执行。例如,映射可从2X转换为4X,或从4X转换为8X,或反之亦然。图13中的第一并行程度为1X映射。此为从1X映射到4X映射的转换。
应注意,当数据正从主机写入到已有数据写入的扇区时,系统通常将使一个格式到另一格式的变化与新区块的分配结合。当主机将数据重新写入到给定区域中时分配新的元区块或子元区块。此时,可将驻存在原始区域中的一些数据复制到新分配的区域。有时稍后在数据合并期间进行复制。无论何种情况,系统通常将利用为逻辑区块分配新区域的事件来转换格式。此时,可重新设定所述区域的使用日志。
控制器具有视需要在每一访问模式之间切换的能力。控制器可基于主机活动来确定使用何种模式。如果已出现许多单个扇区访问,那么此可触发从并行访问模式到循序访问模式的转换。
此外,也允许混合模式区块访问。在相同存储器集成电路内,一些数据可针对循序访问而存储,且其它数据可针对并行访问而存储。此外,在相同快闪卡系统内,一个存储器集成电路可具有针对循序访问而存储的数据,而存储在另一存储器集成电路上的其它数据是针对并行访问而存储。
结论虽然已参照本发明的示范性实施例描述了本发明的各个方面,但将了解,本发明在所附的权利要求书的完整范围内受到保护。
权利要求
1.一种非易失性存储系统,其包含一非易失性存储单元阵列,其划分为至少两个子阵列,其中可在所述至少两个子阵列的每一者中同时访问数据,且存储在所述至少两个子阵列内的数据具有至少第一和第二不同的交错配置。
2.根据权利要求1所述的存储系统,其中在所述至少两个子阵列的每一者中可同时访问的所述数据包括数据扇区,且其中存储在所述至少两个子阵列内的数据扇区包括至少一第一组数据扇区,其通过根据所述第一交错配置跨越所述子阵列而交错的一第一组连续逻辑地址进行识别,和至少一第二组数据扇区,其通过根据所述第二交错配置在所述至少两个子阵列的一单个子阵列内交错的一第二组连续逻辑地址进行识别。
3.根据权利要求2所述的存储系统,其中也存储所存储的数据的扇区的交错程度的指示。
4.根据权利要求3所述的存储系统,其中所述交错程度的所述指示作为额外开销存储在其所属的存储数据的所述扇区内。
5.根据权利要求3所述的存储系统,其中所述交错程度的所述指示存储在与其所属的存储数据的所述扇区分离的扇区内。
6.一种操作一非易失性存储系统的方法,所述非易失性存储系统逻辑上个别地链接复数个存储单元子阵列中的一区块。
7.一种在一非易失性存储器中操作所述存储器的方法,所述非易失性存储器具有复数个存储单元子阵列,其可同时访问以便并行地将数据单位编程到其中并从其中读取数据,所述个别子阵列划分为多个由可同时擦除的一最小数目的存储单元构成的区块,所述方法包含接收一用于将一指定数目的单位数据编程到所述存储器中的命令,所述数据少于所述复数个子阵列的每一者中一个区块的一总数据存储容量并具有循序逻辑地址,接收将要编程的所述指定数目的单位数据,并编程所述接收的单位数据,所述数据的循序逻辑地址根据正被编程的单位数据的所述指定数目并相对于所述子阵列的每一者中一个区块的所述总数据存储容量而按顺序配置在所述复数个存储单元子阵列的一个或一个以上子阵列的区块上。
8.一种操作一非易失性存储系统的方法,其包含用正以至少一第一并行程度和一第二并行程度种的每一者写入和读取的数据来操作所述存储器,观察所述存储系统接收到的数据写入请求,和响应于所述接收到的写入请求的至少一个特性,以所述至少第一和第二并行程度中的一者来写入伴随所述接收到的写入请求中个别请求的数据。
9.根据权利要求8所述的方法,其中所述至少一个特性包括随一写入请求一起接收到的将要写入到所述存储器中的一数据量。
10.一种在一快闪存储系统中的操作方法,所述快闪存储系统具有一非易失性存储单元阵列,所述非易失性存储单元配置成作为一擦除单位的区块、其中作为一数据编程和读取单位的页和可独立访问的复数个区块的半面,所述方法包含逻辑上形成元区块,所述元区块个别地包括一来自复数个所述平面的区块,循序接收具有变化数量的数据的写入命令,和响应于所述主机写入命令的变化特性,以不同方式将所述接收到的数据并行地或循序地写入到所述平面的一者的个别区块内的页中,或并行地写入到所述元区块的一者的两个或两个以上区块内的页中。
11.根据权利要求10所述的方法,其附加地包含与所述接收到的数据同时写入一指示,所述指示识别所述数据正被并行地写入的区块。
12.一种在一非易失性存储系统中响应一系列写入命令的方法,所述一系列写入命令个别地指定将要写入的一个或一个以上数据单位的一逻辑地址且伴随有正循序接收的所述指定的一个或一个以上数据单位,所述非易失性存储系统具有一存储单元阵列,所述存储单元阵列被组织成可一起擦除且个别地存储复数个数据单位的单元的区块,所述方法包含将一个别写入命令的所述逻辑地址转换为所述存储单元的区块中的一者或一者以上内的一物理地址,所述存储单元允许并行地写入所述伴随的一个或一个以上数据单位,其中选择若干所述一个或一个以上区块以便接收所述一个或一个以上数据单位作为由所述接收到的一系列写入命令的至少一者指定的数据单位数目的函数,由所述接收到的一系列写入命令指定的数据单位的所述数目是变化的,和将所述选定的一个或一个以上数据单位并行地写入到所述一个或一个以上区块中。
13.一种操作存储单元的一非易失性存储器阵列的方法,其包含以第一和第二不同的交错配置存储数据,和响应于接受一命令来读取以所述第一交错配置存储的数据,所述命令旨在更新以所述第一交错配置存储的至少一些所述数据,所述更新通过以所述第二交错配置存储将导致更佳的性能特性,和以所述第二交错配置将所述读取的数据和所述更新的数据写入到所述存储器阵列中。
全文摘要
在一例如快闪EEPROM系统的非易失性存储器存储系统中,一控制器响应于主机编程和控制器数据合并样式来切换将数据扇区映射到所述存储器的区块和元区块的方式,以便改进性能并减小磨损。采用不同的并行程度将数据编程到所述存储器中。
文档编号G06F12/02GK1918552SQ200480041680
公开日2007年2月21日 申请日期2004年12月16日 优先权日2003年12月30日
发明者卡洛斯·J·冈萨雷斯, 马克·颂佩尔, 凯文·M·康利 申请人:桑迪士克股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1