具有可编程耐久性的快闪存储器的制作方法

文档序号:6567732阅读:188来源:国知局
专利名称:具有可编程耐久性的快闪存储器的制作方法
技术领域
本发明涉及诸如快闪存储器设备之类的非易失性存储器设备。
背景技术
非易失性存储器
非易失性存储器是一种在没有电源的情况下仍可以保持其存储 的数据的存储器。按读取、写入和擦除能力,访问时间,数据保持, 以及数据耐久性周期来区分,存在几种非易失性存储器类型。电可擦
除可编程只读存储器(EEPROM)能够以单个字节级别执行读写操 作,就是说,可以分别地读取和写入每一个存储器位置。
由快闪型浮栅晶体管构成的快闪存储器,是在功能上和性能上类 似于EEPROM存储器的非易失性存储器;虽然快闪存储器在某些限 制下操作,但是它具有相对便宜的优点。若没有首先擦除整个存储器 扇区,无法向快闪存储器上以前已被写入的位置重新写入,即,在快 闪单元可被再次编程前,必须将其擦除(例如,编程为"l,,)。快闪 存储器能够擦除相对来说大批的单元,通常叫做"擦除块,,(对于当前 商用设备,通常大小为16到128KB)。因此,更新单个字节或甚 至1KB的块的内容,需要执行整理操作-擦除块的没有更新的部分 必须首先移动到别处,以便它们将在擦除操作过程中保留,然后,在 更新之后移回原位置。
电可擦除的非易失性存储器在进行写入和擦除操作时会遭受磨 损。每一个存储器位置都可以承受数量有限的写入/擦除周期。向其中 写入超过指定的次数的快闪的区域是不可靠的,从过度使用的位置中 读取的数据可能不正确。在变得不可靠之前非易失性存储器区域可以 承受的写入操作的数量叫做"耐久性"。典型的耐久性级别是100,000写入/擦除周期。可由设备制造商保证耐久性级别,该级别是最坏情况
的数量;在实践中,快闪存储器中包含的大多数单元可能承受高得多 的数量的写入/擦除周期。
基于所使用的存储器单元互连结构的类型,快闪存储器进一步分
类为NOR ("或非")和NAND ("与非")快闪。NAND快 闪的每个比特的成本比NOR快闪的成本低。然而,假设被写入的位 置已擦除(即,它包含所有"l,,),与能够以字节级别进行读取并可 能执行写入操作的NOR快闪存储器相比,NAND快闪存储器只限 于块读取和写入操作。此外,典型的NAND快闪存储器还包含一小 部分坏的块,这些坏的块不可靠,并不应该用来存储数据。由制造商 在最初测试快闪存储器时,或者在实地使用过程中检测块的故障时通 过软件来检验坏的块。
为克服NAND快闪存储器的这些限制,已经开发了快闪文件系 统(FFS)。FFS提供了进行数据存储并对包含快闪存储器及模拟磁盘 上的数据存储的设备进行操纵的系统。在美国专利No. 5,937,425中 说明了这样的FFS,在这里引用了其全部内容作为参考。所有三种类 型的非易失性存储器(EEPROM、 NOR快闪,以及NAND快闪) 当前都被使用,并由应用确定具体类型。NAND快闪存储器主要用于 需要大容量存储器的场合,但是由于其块存取特性,软件应用程序不 能从NAND快闪直接运行。当软件应用程序必须直接从存储器设备 执行时,应该使用NOR快闪存储器。EEPROM用于需要相对较小 的存储器量并且将以字节级别写入数据的场合。
值得注意的是,类似于磁盘分区,存储器块设备可以在逻辑上被 分成若干个分区。每一个分区都相当于单独的逻辑单元或盘。实现 FFS的快闪控制器通常也负责管理设备分区。
对于某些应用,可以使用NOR快闪存储器模拟EEPROM设 备;被模拟的EEPROM能够将单字节写入到NOR存储器,并在需 要时擦除NOR存储器块。被模拟的EEPROM可以通过硬件、固 件或两者的组合来实现。对于某些应用,快闪存储器的有限的耐久性可能是有问题的,例 如,在使用块设备作为虚拟存储器的操作系统中。为了提高应用程序
的可用的随机存取存储器(RAM)的量,操作系统可以实现磁盘交 换。在磁盘交换中,操作系统将其RAM的某些扇区保存到其大容量 存储设备,一旦应用程序需要对它进行访问,就重新加载RAM数据。 被用作交换区的大容量存储区域可能必须承受密集的读取/擦除/写入 或擦除周期,与大容量存储设备的用于存储代码或静态数据的其他扇 区相比,导致相对较高的磨损。另一个示例是文件(系统)分配表 (FAT)。每当创建新文件或改变现有文件的大小时,都会相当频繁地 更新FAT。
延长非易失性存储器设备的寿命
包含NAND快闪的大多数系统实现了磨损平衡算法。磨损平衡 算法优化在每一个快闪存储器块中可以执行的写入操作的数量。根据 此算法,每一个快闪存储器块都被写入大致相当的次数。当逻辑块被 转换成物理块时,相同的逻辑块可以写入到不同的物理位置。如此, 磨损平衡算法可以在许多情况下用于延长快闪存储器设备的寿命,而
不会相附随地缩小设备上的可用的可逻辑寻址的存储器的量。
美国专利 5,367,484说明了具有多个数据存储器块的 EEPROM设备,其中,可以指定选定的块提供"高耐久性"。使用切 换单元将此选定块与类似的冗余块并行地放置,从而将相同的数据同 时写入到两个块中。根据美国专利5,367,484的说明,由于如果选定 块和冗余块中只有一个发生故障,则仍可以将数据写入到对应的逻辑 区域中,因此这种冗余提高了选定块的耐久性。美国专利5,793,684 说明了 ,如果随后不需要高可靠性和冗余,可以向切换单元发送信号, 以从冗余的第二存储器阵列的对应的地址位置断开第一存储器阵列 的地址位置,从而产生具有增加的地址位置量的存储器设备。没有说 明或建议提高EEPROM之外的存储器的耐久性级别。此外,如前所 述的专利也没有说明"高,,耐久性级别提供多少额外的耐久性,也没有 说明或教导对非易失性存储器进行配置以提供请求的耐久性。美国专利申请2003/0028733说明了具有用于存储来自主机的 数据的易失性存储器的存储器设备,能够对那些存储在易失性存储器 中的数据进行存储并以电的方式删除数据的非易失性存储器,以及用 于控制在易失性存储器和非易失性存储器之间的数据传输的控制电 路。所说明的存储器设备是易失性存储器设备-例如,易失性存储器 的数据存储区的容量大于非易失性存储器的数据存储区的容量。所说 明的设备是具有相对较小的非易失性存储器备份的易失性存储器设 备,并没有说明如这里所理解的非易失性存储器设备。
当前存在对改进的非易失性存储器设备和用于配置非易失性存 储器设备以提供改进的存储器耐久性的方法的需要。值得注意的是, 存储器的一部分或整个非易失性存储器可以可靠地维持大致多少写 入或擦除周期的现有知识可以用来进行适当的计划并供设备使用。因 此,当前存在对配置为提供特定请求的存储器耐久性的设备的需要。

发明内容
如前所述的需要通过本发明的若干方面来加以满足。 现在将首次说明包括非易失性存储器的非易失性存储器设备和 用于配置所述非易失性存储器的至少一部分以提供请求的有效耐久 性的控制器。根据某些实施例,请求的有效耐久性超过非易失性存储 器的所述至少一部分的本机物理耐久性。
根据某些实施例,控制器配置所述至少一部分包括以下步骤确 定为所述至少一部分预留的物理非易失性存储器的量,其中,所确定 的量超过所述至少一部分的逻辑大小,以及分配所确定的物理存储器量。
因而,在一个示例中,请求将可逻辑寻址的存储器部分(例如, 例如,20 MB存储器)配置为具有等于本机物理存储器的的倍数(例 如,"耐久性倍数,,)(例如,3)的有效耐久性。根据此具体示例, 非易失性存储器的物理区域(例如,60 MB物理存储器)被预留,以 提供所述请求的有效耐久性,而此物理区域再被分成等于耐久性倍数的多个(例如,三个)物理子区域。在此具体示例中,每一子区域的
大小与所述可逻辑寻址的存储器部分(例如,20 MB存储器)相同。 根据此示例,通过向第一子区域内的适当位置写入数据来处理将 数据写入到具体逻辑地址的第一请求。类似地,通过向第二和第三子 区域中的各位置写入数据来处理将数据写入到相同的具体逻辑地址 的第二和第三请求。将数据写入到具体逻辑地址的第四请求也再次用 于向笫一子区域中写入数据。如此,在此示例中,通过每次向不同物 理位置写入数据,任何给定物理位置都维持写入操作的数量的一部分 (例如, 一除以耐久性因子,或三分之一)。如此,物理存储器的预 留的区域,以及附随地可逻辑寻址的存储器部分,提供请求的有效耐 久性。
如此,根据某些实施例,向给定逻辑存储器地址的多个写入操作 中的每一个用于向存储器中的不同物理位置写入数据。
此外,应该理解,根据前面的示例,请求超过本机物理耐久性的 有效耐久性(例如,物理耐久性的三倍)将会使60 MB的物理存储 器预留给20 MB的逻辑存储。如此,值得注意的是,根据此示例, 在进行存储器配置时,可逻辑寻址的存储器的总量减小(例如,60 MB 和20MB,或40 MB之间的差)。
根据某些实施例,非随机存取快闪存储器设备中的每个分区的扩 充存储器的分配以及每一个分区的管理通常是作为FFS的一部分来 实现的,但是也可以通过外部应用程序来实现,和/或也可以通过硬件 来支持。在分配物理存储器的所需的量之后,以类似于在没有本发明 时的管理方式管理每一个分区。
如此,根据某些实施例,在进行配置以提供提高的有效耐久性时, 可逻辑寻址的存储器的总量减小。
根据某些实施例,对于给定量的已配置的物理存储器,请求越大 的有效耐久性会提供越小量的可逻辑寻址的存储器。
作为选择或另外,对于给定量的可逻辑寻址的存储器,请求越大 的有效耐久性会配置越大量的物理非易失性存储器。根据某些实施例,根据请求的有效耐久性的指定的值,确定该量。 根据本发明的某些实施例,可以将非易失性存储器的耐久性编程 为各种级别,其中,所希望的耐久性是逻辑存储器大小和额外的耐久 性之间的折衷,因此提供或保证了最小的所需的耐久性级别。
根据某些实施例,控制器用于将有效耐久性设置为多个值中的一个。
对如何请求有效耐久性没有限制。根据某些实施例,控制器用于 根据接收到的与外部命令(例如,格式化命令) 一起提供的参数配置 非易失性存储器。
根据某些实施例,设备进一步包括用于接收请求的有效耐久性的 值的接口。具体来说,根据某些实施例,增强了用于初始化快闪存储
器的用户界面,并包括用于指定每一个定义的分区的所希望的耐久性 级别的条目。
对要根据本发明的实施例配置的非易失性存储器类型没有限制, 值得注意的是,用于提供有效耐久性的随机存取存储器和非随机存取 存储器配置两者都在本发明范围内。适当的非易失性存储器包括但是
不局限于NAND快闪存储器、NOR快闪存储器和EEPROM存储 器。勿庸置疑,值得注意的是,在各种实施例中,根据非易失性存储 器的类型,用于进行配置以提供有效耐久性的具体算法可以有所不 同。
根据某些实施例,设备用于模拟EEPROM存储器。
根据某些实施例,控制器用于配置所有的非易失性存储器以提供
请求的有效耐久性。
根据某些实施例,控制器用于将数据写入到分配的物理存储器,
并且至少一个写入操作包括向分配的物理存储器只写入给定数据一次。
根据某些实施例,控制器用于对于非易失性存储器的第一部分将 有效耐久性设置为第一值,并用于对于非易失性存储器的第二部分将 有效耐久性设置为不同于第 一值的第二值。根据某些实施例,控制器包括嵌入式软件,并至少部分地通过嵌 入式软件来进行配置。
虽然在存储器设备控制器配置非易失性存储器以提供请求的有 效耐久性方面讲述了本发明的某些实施例,但是,这不是对本发明的 限制。存储器配置可以通过驻留在任何设备上的硬件、软件、固件或 其任何组合来实现。通过增强控制固件,存储器配置可以应用于现成 的存储器设备,也可以将设备连接到处理单元或总线的粘结逻辑。
现在首次说明用于进行数据存储的系统,其包括在其中包括非易 失性存储器非易失性存储器设备,连接到非易失性存储器设备的主机 设备以及驻留在主机设备上的驱动程序代码,其中,所述驱动程序代 码用于配置非易失性存储器的至少一部分,以提供请求的有效耐久 性。
现在首次说明用于设置有效存储器耐久性的方法。目前说明的方 法包括发出设置包括非易失性存储器的非易失性存储器设备的有效 耐久性的命令以及配置所述非易失性存储器的至少一部分以提供请 求的有效耐久性。
根据某些实施例,所述命令是由连接到所述非易失性存储器设备 的主机设备发出的外部命令。
根据某些实施例,所述有效耐久性超过所述非易失性存储器的所 述至少一部分的物理耐久性。
根据某些实施例,所述配置包括减小所述非易失性存储器设备的 可逻辑寻址的存储器的总量。
根据某些实施例,在制造所述非易失性存储器设备时或格式化所 述非易失性存储器设备时设置所述有效耐久性。
根据某些实施例,在所述非易失性存储器设备的运行时设置所述 有效耐久性。
根据某些实施例,对所述有效耐久性的设置至少部分地由嵌入在 所述非易失性存储器设备内的软件来实现。
根据某些实施例,对所述有效耐久性的设置至少部分地由驻留在连接到所述非易失性存储器设备的主机计算机上的软件来实现。
现在首次说明计算机可读取的存储介质,其具有以计算机可读取
的存储介质实现的计算机可读取的代码,所述计算机可读取的代码包
括配置非易失性存储器设备的非易失性存储器的至少一部分以提供
请求的有效耐久性的指令。
根据随后的详细描述和示例,这些以及其他的实施例将变得显而
易见。


图1A提供了根据本发明的示例性实施例的示例性非易失性存 储器设备的方框图。
图1B显示了诸如NAND快闪之类的非随机存取存储器的用
于提供有效耐久性的设备分区例程的示例性实现方式。
图2提供了其中非易失性存储器的至少一部分被配置为提供指
定的耐久性的示例性例程的流程图。
图3提供了示例性快闪存储器管理算法的简化流程图。
图4显示了用于配置非NOR快闪以提供有效耐久性的例程
的示例性实现方式。
图5是描述根据本发明的示例性实施例的向随机存取设备的写
入操作的流程图。
图6描述了示例性读取处理。
图7显示了映射表的示例性硬件实现方式。
具体实施例方式
现在将根据具体的示例实施例来描述本发明。应该理解,本发明 不局限于所说明的示例性实施例。还应该理解,为了实现所附权利要 求中的任何特定一个权利要求所述的本发明,不是用于配置存储器以 提供所求的有效耐久性的非易失性存储器设备,用于进行数据存储的 系统,用于设置有效存储器耐久性的方法,以及所描述的计算机可读取的代码的每一个特征都是必需的。描述了完全实现本发明的设备的 各种元件以及特征。还应该理解,在整个说明中,在显示或描述处理 或方法的地方,除非从上下文中很清楚地看出, 一个步骤依赖于另一 个被首先执行的步骤,否则可以以任何顺序或同时执行方法的步骤。
图1A提供了根据本发明的示例性实施例的示例性非易失性存 储器设备(100)的方框图。根据图1A,通过外部接口 (II2)从主机 设备(未显示)接收数据和命令。中央处理单元(110)将数据存储在 设备的非易失性存储器(例如,快闪存储器(106))中。当对设备进 行管理时,CPU (110)利用ROM和易失性存储器(例如,RAM (104))。由于易失性存储器主要用于进行设备管理而不是用于数据存 储,因此,易失性存储器的大小通常比非易失性存储器的大小小得多 (例如,至少一个数量级)。
在整个说明中,"非易失性存储器设备,,是指设备中提供的大多数 存储器是非易失性存储器的设备。非易失性存储器设备的示例包括智 能卡设备、存储器卡、多媒体卡等。在某些实施例中,"非易失性存 储器设备,,包括易失性和非易失性存储器两种,而非易失性存储器的 大小和易失性存储器的大小之间之间的比率是例如至少10或例如至 少100。
图1B显示了用于配置诸如NAND快闪之类的非随机存取存 储器以提供有效耐久性的例程的示例性实现方式。根据此示例,存储 器被分成三个部分。第一分区(1)被用来主要存储静态数据;由于对 于提高耐久性没有要求,使用旧式装置来管理此存储器分区。第二分 区(2)更多地用于进行动态数据存储(例如,数据库存储),因此, 其所需的耐久性高于本机存储器耐久性,在此示例中为200%。为了 确保更高的耐久性,分配给此分区的物理存储器大小是逻辑大小的两 倍。向此分区中添加了预留区(3);预留区的大小与所需的区域的大 小相同,如此,我们实现了 200%的最小耐久性级别(参见下面的
计算最小耐久性的说明)。
以类似于前面的分区(2)的方式定义第三存储器分区(4),但是,对此第三分区,所需的耐久性是标称耐久性的五倍,物理存储器
大小是逻辑区域的5倍,而预留区(5)是所需的容量的4倍。由于 快闪管理应用程序每次都向不同位置写入,因此可保证此分区的耐久 性至少是最小本机设备耐久性的5倍。
图2提供了非易失性存储器的至少一部分被配置为提供指定的 耐久性的示例性例程的流程图。根据图2的示例,为可逻辑寻址的 存储器的指定的(910)目标区域指定(900)有效耐久性(例如,通 过用户搮作连接到存储器设备的主机设备)。值得注意的是,可以以 许多方式指定(900)有效耐久性。在一个非限制性示例中,指定了表 示请求的耐久性和本机耐久性之间的比率的"耐久性因子"。
计划配置设备,以便可以可靠地向可逻辑寻址的存储器(910) 的目标区域内的地址写入至少如有效耐久性(900)所指定的次数。为 此,对于需要为可逻辑寻址的存储器的目标区域分配多少物理存储器 作出判断(902)(例如,通过非易失性存储器设备的固件)。对如何 进行此判断(902)没有限制,本技术领域已知的任何技术都适用于本 发明的这些实施例(例如,通过使用查询表等,根据指定的有效耐久 性和可逻辑寻址的存储器的目标区域的大小,计算此数字)。
在有足够的物理存储器可用(904)的情况下-例如,在物理存储 器大小是逻辑大小乘以所需的耐久性(900)除以设备本机耐久性的 比率的情况下,设备控制器分配(906)物理存储器以提供指定的耐久 性(906)。
如果没有足够的物理存储器可用(904),可选地生成错误消息 (卯6),并例如传输到主机设备。根据某些实施例, 一旦系统向设备写 入,设备控制搜索下一个空闲区域,将逻辑块或存储器位置映射到存 储了数据的物理位置。逻辑到物理的映射被保存在映射表中,该映射 表可以是基于硬件的存储器映像或通过固件来实现。该映射表被备份 在非易失性存储器的特殊扇区,并在通电时重新加载。
下面的段落提供了适用于每一种主要类型的非易失性存储器的 方法的详细描述。图3提供了示例性快闪存储器管理算法的简化流程图;此简化流程被用来显示对提高的耐久性的提供。在实践中,也可以实现诸如美国专利No. 5,937,425中所描述的比较复杂的算法。写入块命令
(10) 指定要向快闪存储器写入的逻辑块号X。为了写入此块,快闪管理逻辑从空闲块的库中分配空闲块。此空闲块编号具有物理地址Y
(11) 。如果空闲块的列表是空的(12),则快闪管理搜索存储器,以查找未使用的块,将它擦除,并将它添加到空闲块的列表中(13)。通过某些快闪管理实施方式,可以同时擦除一个以上的空闲块,在其他实施方式中,可以作为后台操作来执行擦除。快闪管理验证是否已经写入了逻辑块X,就是说,它是否已经映射到物理块(15)。如果是,则旧的物理块被标记为"未使用,,(14), 一旦它被擦除,就将它添加到空闲块列表中。最后,将逻辑块X写入到物理位置Y,并更新映射表,以便逻辑块X指向Y(16)。
如果分配给一个分区的物理存储器的量是y,并且逻辑分区大小是x,通过向快闪存储器写入n次,每一个位置将被平均写入nx(x+ y)次。只要有空闲块可用,则这些块将用于存储新的数据。结果,如果快闪存储器耐久性是e写入或擦除周期,则最小新的耐久性级别将是el = e + (x + y)。例如,假设y = 20并且x = 10。最初,所有块都是空闲的,因此写入到逻辑块0-9,将导致FFS写入到物理块0-9。如果再次将数据写入到逻辑块0-9,则FFS会将数据写入到物理块10-19。到目前为止,每一个物理块都已经被写入一次,而每一个逻辑块都已经被写入两次。如果我们反复重复此处理,则逻辑存储器的磨损是本机物理存储器的磨损的两倍,或者我们可以说,耐久性翻倍。假设e= 10,000,使用上述公式来计算平均逻辑耐久性,结果是10,000 + (10 + 20 )= 20,000,这是本机物理存储器耐久性的两倍。在实践中,实际耐久性将比最小的计算出的耐久性高得多,因为一旦一个块被用坏,它将被撇开(标记为坏的块)并且不再使用。由于存在许多冗余块,只要存储器的物理量大于逻辑存储器大小,快闪存储器就可使用。 一旦物理存储器的量低于某一级别,则可以生成警告消息,警告用户必须更换存储器设备。通过对坏的块的检测使我们可以获得的额外的耐久性高度依赖于使用快闪存储器的应用程序的特征和设备的特性。对于典型的设备,此额外的耐久性可以总计达到本机设备耐久性的十倍,其中,物理存储器大小只是逻辑大小的两倍。
对于NOR快闪,也可以实现类似的方法。与NAND快闪不同,NOR快闪读取类似于随机存取只读存储器。在示例性实施例中,NOR快闪存储器的可配置的耐久性的实现方式包括接收读取/写入请求的软件层,并执行物理读取/写入操作。通过以硬件实现某些逻辑,可以直接从存储器设备进行读取,并直接从NOR快闪存储器执行应用程序。
图4显示了用于配置NOR快闪以提供有效耐久性的例程的示例性实现方式。子图形(100)、 (110)、 (120)、 (130)、 (140)和(150)显示了 NOR快闪存储器内容的不同状态,而子图形(200)、 (210)、(220)、 (230)、 (240)和(250)描述了地址映射表的对应状态。NOR快闪存储器(101)的需要更高的耐久性级别的扇区被分成编号为0,1,2和3的四个扇区。四个扇区中的每一个扇区的大小都祐 没置为等于逻辑存储器的所需的大小。在此示例中,物理存储器是逻辑存储器的大小的四倍大。最初,擦除所有块。在此示例中,我们希望向逻辑存储器位置10写入新的数据。由于存储器块0被擦除,数据被写入到块0(101),而还在位置10处的映射表(200)中(201)记录0,意思是说,逻辑位置10映射到块0。所有其他映射表位置最初被设置为-1 (202)、 (203),表示这些条目不在使用中。类似地执行向新位置的写入操作(111),并相应地更新映射表(211)。 一旦逻辑地址10需要被再次写入,它被写入到下一个物理块(121),并相应地更新映射表(221)。如果数据被写入到预先没有被写入的新位置,则使用块0(131)。再次写入位置10会将此地址的块号设置为2 (141)、 (241)。在将位置10写入到头3个块之后,下一次写入地址10 (l50),来自所有以前被写入的位置的所有数据都被复制到第四块(102),并擦除头3个块(151) 、 (152)、 (153),为新的数据腾出空间。相应地更新映射表(251)、 (252)、 (253)。直到此时,块3 —直是最后一个,而块0 —直是第一个;在复制数据之后,块顺序被重新排列为3,0,1,2,从而块3现在是第一个,而块2是最后一个(154)。
当执行存储器读取操作时,首先读取存储器映像,并提取与所希望的位置相关的块号。然后,从映射表所指向的块号中读取数据。
图5是描述了根据本发明的示例性实施例的向随机存取设备的写入操作的流程图。在FFS读取有关的存储器位置(40),并测试此位置是否可写入(41)的情况下,写入处理开始。如果新的数据不要求将其任何比特从"0"设置为"1",例如,存储器的已擦除的区域包含的全部为1,因此其是可写的,则存储器位置可写入。十六进制FO写入的存储器字节可以改变为00,而不是改变为FF。如果数据是可写入的,则将新的数据写入到所希望的位置(43),否则FFS使当前块号前进(42)并检查它是否是最后的块(42)。如果不是最后的块,则更新映射表(44),然后,FFS将数据写入到存储器中。由于擦除了新块,则下一个块内的此逻辑位置是可写入的。如果这是最后的块,则将以前从所有其他块写入的所有数据复制到最后的块,将除最后的块之外的所有存储器块都擦除,并更新映射表,以便所有逻辑地址都指向最后一个存储器块(45)。
图6描述了示例性读取处理。根据图6中所显示的实施例,为了读取存储器位置,FFS首先读取映射表并获取有关的块号(30),然后通过将逻辑地址与块号组合来计算物理存储器地址(M)。在此计算之后,读取所需的数据(32)。
图7显示了映射表的示例性硬件实现方式。映射RAM (21)被用来存储每一个存储器位置的块号。逻辑地址(20)应用于映射RAM地址总线,映射RAM的数据总线向非易失性存储器(23)提供块号作为高地址比特(22)。映射RAM的硬件实现方式提供了快速的读存取时间,并保留了直接从存储器执行代码的NOR快闪特性。
为了缩小映射表的大小,可以将若干个存储器地址分组在一起。例如,可以将每32个连续的存储器地址分组在一起,这会将映射表大小缩小到1/32,因此存在五个较小的映射RAM地址比特(五个最低有效地址比特不应用于映射RAM)。前面所描述的算法几乎以相同的方式工作,只是每次块号改变时属于同一个组的所有有效存储器位置都必须复制下一个块。例如,如果组大小是32字节,则向存储器位置35第二次写入将要求向下一个块复制存储器位置32-34和36-63 (都属于同一个组)。
相同的方法也适用于EEPROM,只是没有必要在写入之前执行擦除。如此,每次更新同一个逻辑存储器位置时,都将数据写入到下一个存储器块。
对于随机存取设备计算新的耐久性的方法与前面讲述的针对非随机存取设备的方法相同。与非随机存取设备相同,最小保证的耐久性与物理存储器大小和逻辑存储器大小的比率成正比。
在本申请的说明书和权利要求书中,动词"包含,,、"包括,,和"具有,,中的每一个以及其变化,用来表示动词的宾语不一定是动词的主语的成员、组件、元件或部件的完整列表。、、i ,、,、 、、
本发明,而这些详细描述不是为了限制本发明的范围。所描述的实施例包括不同的特征,并非所有特征都在本发明的所有实施例中都是必需的。本发明的某些实施例只利用某些特征或特征的可能的組合。本
迷的实施例中所提及的特征的不同组合的本发明的实施例。本发明的范围只通过所附权利要求书加以限制。
权利要求
1、一种非易失性存储器设备,包括a)非易失性存储器;以及b)用于配置所述非易失性存储器的至少一部分以提供请求的有效耐久性的控制器。
2、 根据权利要求1所述的非易失性存储器设备,其中,所迷有 效耐久性超过所述非易失性存储器的所述至少一部分的物理耐久性。
3、 根据权利要求1所述的非易失性存储器设备,其中,在进行 所述配置以提供提高的所述有效耐久性时可逻辑寻址的存储器的总 量减小。
4、 根据权利要求1所述的非易失性存储器设备,其中,由所述 控制器配置所述至少一部分包括i) 确定为所述至少一部分预留的物理非易失性存储器的量,所 述确定的量超过所述至少一部分的逻辑大小;以及ii) 分配所述确定的物理存储器量。
5、 根据权利要求4所述的非易失性存储器设备,其中,对于给 定量的已配置的所述物理存储器,请求越大的有效耐久性提供越小量 的可逻辑寻址的存储器。
6、 根据权利要求4所述的非易失性存储器设备,其中,对于给 定量的可逻辑寻址的存储器,请求越大的有效耐久性配置越大量的所 述物理非易失性存储器。
7、 根据权利要求4所迷的非易失性存储器设备,其中,所述量 是根据所述请求的有效耐久性的指定的值确定的。
8、 根据权利要求4所述的非易失性存储器设备,其中,所述控 制器用于将数据写入到所述分配的物理存储器,并且至少一个所述写 入包括向所述分配的物理存储器只写入给定数据一次。
9、 根据权利要求1所述的非易失性存储器设备,其中,所述控 制器用于将所述有效耐久性设置为多个值中的一个。
10、 根据权利要求1所述的非易失性存储器设备,进一步包括 c)用于接收所述请求的有效耐久性的值的接口。
11、 根据权利要求1所述的非易失性存储器设备,其中,所述 非易失性存储器包括NAND快闪存储器。
12、 根据权利要求1所述的非易失性存储器设备,其中,所述 非易失性存储器包括NOR快闪存储器。
13、 根据权利要求1所述的非易失性存储器设备,其中,所述 非易失性存储器包括EEPROM存储器。
14、 根据权利要求1所述的非易失性存储器设备,其中,所述 设备用于模拟EEPROM存储器。
15、 根据权利要求1所述的非易失性存储器设备,其中,所述 控制器用于配置所有的所述非易失性存储器以提供所述请求的有效 耐久性。
16、 根据权利要求1所述的非易失性存储器设备,其中,所述 控制器用于对于所述非易失性存储器的第一所述部分将所述有效耐 久性设置为第一值,并用于对于所述非易失性存储器的第二所述部分 将所述有效耐久性设置为不同于所述第 一值的第二值。
17、 根据权利要求1所述的非易失性存储器设备,其中,所述 控制器用于根据接收到的外部命令来配置所述非易失性存储器。
18、 根据权利要求1所述的非易失性存储器设备,其中,所述 控制器包括嵌入式软件,并且所述配置至少部分地是由所述嵌入式软 件实现的。
19、 一种用于进行数据存储的系统,包括a) 包括非易失性存储器的非易失性存储器设备;b) 连接到所述非易失性存储器设备的主机设备;以及c) 驻留在所述主机设备上的驱动程序代码,所述驱动程序代码 用于配置所述非易失性存储器的至少一部分,以提供请求的有效耐久 性。
20、 一种用于设置有效存储器耐久性的方法,所述方法包括a) 发出用于设置包括非易失性存储器的非易失性存储器设备的 有效耐久性的命令;以及b) 配置所述非易失性存储器的至少一部分以提供所述请求的有 效耐久性。
21、 根据权利要求20所述的方法,其中,所述命令是由连接到 所述非易失性存储器设备的主机设备发出的外部命令。
22、 根据权利要求20所述的方法,其中,所述有效耐久性超过 所述非易失性存储器的所述至少一部分的物理耐久性。
23、 根据权利要求20所述的方法,其中,所述配置包括减小所 述非易失性存储器设备的可逻辑寻址的存储器的总量。
24、 根据权利要求20所述的方法,其中,所述配置所述至少一 部分包括下列步骤i) 确定为所述至少一部分预留的物理非易失性存储器的量,所 述确定的量超过所述至少一部分的逻辑大小;以及ii) 分配所述确定的物理存储器量。
25、 根据权利要求24所述的方法,其中,对于给定量的可逻辑 寻址的存储器,请求越大的所述有效耐久性分配越大量的所述物理非 易失性存储器。
26、 根据权利要求24所述的方法,其中,对于给定量的所述物 理非易失性存储器,请求越大的有效耐久性提供越小量的可逻辑寻址 的非易失性存储器。
27、 根据权利要求24所述的方法,其中,所述量是根据所述请 求的有效耐久性的指定的值确定的。
28、 根据权利要求24所述的方法,进一步包括c) 向所述分配的物理存储器写入数据,使得所述写入包括向所 述分配的物理存储器只写入给定数据一次。
29、 根据权利要求20所述的方法,其中,所述有效耐久性是在 制造所述非易失性存储器设备时设置的。
30、 根据权利要求20所述的方法,其中,所述有效耐久性是在所述非易失性存储器设备运行时设置的。
31、 根据权利要求20所述的方法,其中所述有效耐久性的所述 设置至少部分地由嵌入在所迷非易失性存储器设备内的软件来实现。
32、 根据权利要求20所述的方法,其中所述有效耐久性的所述 设置至少部分地由驻留在连接到所述非易失性存储器设备的主计算 机上的软件来实现。
33、 根据权利要求20所述的方法,其中,所述非易失性存储器 设备包括NAND快闪存储器。
34、 根据权利要求20所述的方法,其中,所述非易失性存储器 设备包括NOR快闪存储器。
35、 根据权利要求20所述的方法,其中,所述非易失性存储器 i殳备包括EEPROM存储器。
36、 根据权利要求20所述的方法,其中,所述非易失性存储器 ^殳备用于模拟EEPROM存储器。
37、 一种计算机可读取的存储介质,其具有以所述计算机可读取 的存储介质实现的计算机可读取的代码,所述计算机可读取的代码包 括配置非易失性存储器设备的非易失性存储器的至少一部分以提供 请求的有效耐久性的指令。
全文摘要
说明了用于配置非易失性存储器的至少一部分,以提供请求的有效耐久性的非易失性存储器设备、系统、方法和计算机可读取的代码。根据某些实施例,为非易失性存储器的一部分分配确定的物理存储器量。根据某些实施例,对于给定量的已配置的物理存储器,请求越大的有效耐久性会提供越小量的可逻辑寻址的存储器。根据某些实施例,对于给定量的可逻辑寻址的存储器,请求越大的有效耐久性会配置越大量的物理存储器。在某些实施例中,控制器用于配置非易失性存储器的所述至少一部分。作为选择或另外,驱动程序代码驻留在连接到非易失性存储器设备的主机设备上。可选地,在向非易失性存储器设备发出的命令中指定请求的耐久性的值。根据某些实施例,命令可以在制造非易失性存储器设备时和/或在非易失性存储器设备运行时发出。可以配置的示例性的非易失性存储器包括但是不局限于NAND快闪存储器、NOR快闪存储器和EEPROM存储器。
文档编号G06F12/00GK101535963SQ200680020429
公开日2009年9月16日 申请日期2006年6月6日 优先权日2005年6月8日
发明者丹尼·达瑞尔, 曼纳切姆·拉瑟 申请人:晟碟以色列有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1