闪存管理方法

文档序号:6570300阅读:236来源:国知局
专利名称:闪存管理方法
闪存管理方法
技术领域
本发明的领域和背景
本发明涉及使用用于数据和应用程序存储的非易失性存储器
(NVM)的数据处理系统,以及管理这种存储的方法。被公开的系统 和方法用以提高数据处理系统,如包含闪存和电可擦可编程只读存储 器(EEPROM) NVM模块的增强型智能卡的性能和持久性。
这样的数据处理系统的典型示例是智能卡。智能卡是具有嵌入的 集成电路(ICs)的塑料卡片。智能卡作为磁条卡的改进而被开发,并 且相对于磁条卡提供多个优点。例如,智能卡的最大存储容量远大于 磁条卡。用于智能卡应用的高容量SIM卡典型地包含多于256KB的 内存存储,有很多包含多于64MB的内存存储。闪存是在这样的应用 中使用的普及型存储器。
智能卡典型地包含存储器和微控制器(具有相关联的逻辑存储器 和软件)。存储在智能卡内的数据通过由操作系统和安全逻辑控制的 接口来访问。 一个高级的大容量智能卡的示例是MegaSIM 卡(可从 以色列Kefar Saba的Msystems有限公司获得)。MegaSIMTM卡使得 智能卡供应商能够针对各种高级移动服务,如下栽MMS(即多媒体消 息服务)、MP3 (即媒体播放器3标准)和视频文件而在SIM中提供 存储容量(相对于外部存储卡存储),提供完整的个人信息管理(PIM ) 功能,并且使能高清晰度图像存储。
高容量SIM卡是具有超大存储内存的标准SIM卡。EEPROM是 标准SIM功能的一部分,并且被用于保持经由ISO-7816 SIM接口管 理的SIM数据文件。这样的数据包括加密密钥和基于SIM的联系列 表。EEPROM被认为是高度安全的存储器组件,因为EEPROM是SIM 控制器的一部分,其比存储内存更加安全。存储内存典型地是没有特 殊安全机制的商业化闪存。存储内存可通过高速接口 (例如,MMC、SD和USB)访问,并且被用来存储用户数据如图片、音乐、视频,和 应用程序。不同于EEPROM,存储内存典型地被格式化为标准的FAT (文件分配表)文件系统,其由主设备(例如,移动电话)的操作系 统,而不是由SIM卡自己来管理。
图l是现有技术的数据处理系统高容量SIM卡18的简化示意 框图。高容量SIM卡18包括经由SIM总线4连接至各种类型存储器 的SIM CPU 2。 RAM 6是主要用于临时数据存储的易失性存储器。 RAM 6还用作应用程序緩存。ROM 8是用于存储操作系统和应用程 序的永久不可擦存储器。 一些系统可以应用可擦内存存储来代替ROM 8以提高在改变和增强已载入软件上的灵活性。
EEPROM 10是可字节编程的电可擦NVM。 EEPROM 10主要用 于存储配置相关信息以及,取决于应用程序,半永久(semi-permanent) 数据。大的NAND型闪存12也是电可擦NVM,但闪存12在大小上 明显大于EEPROM 10。闪存12典型地用于大容量数据存储,如图片、 音乐、视频,和数据库(例如,电话簿)。EEPROM 10是每次一个 字(即,能够写入的最少位数)被写入、 一个字被删除的"逐字"可 擦除。 一些EEPROM还提供可选的块擦写命令,其有助于更快地写 入。这与仅仅"逐块"可擦除的闪存12不同。两种接口用于连接数据 处理系统和外部设备(例如,移动电话)。高速接口 14A用于访问高 容量存储而低速接口 14B是用于连接旧有设备的ISO 7816接口。
组件(SIM CPU 2、 SIM总线4、 RAM 6、 ROM 8、 EEPROM 10、 闪存12,以及接口 14A和14B)位于壳16内。闪存12包括用户数据 20、闪存管理数据22、 FAT 24,以及文件元数据目录26。用于确定 在哪里存储各种类型的信息(即,用户数据20或者管理数据22)的 逻辑由SIMCPU2来处理,SIMCPU2负责管理设备资源。
位于移动电话28内的高容量SIM卡18具有可操作地连接至电话 总线30的高速接口 14B。移动电话28具有用于执行电话操作的电话 CPU 32、表示用户接口组件(例如,小键盘、麦克风、扬声器、和屏 幕)的1/0 34,和用于存储管理闪存12中的存储的操作系统38的存
5储器36。
两种主要类型的硅基NVM与本发明相关
(1) EEPROM设备是由浮栅晶体管构成的NVM。 EEPROM设 备与随机访问存储器(RAM)类似地操作;然而,EEPROM的写时 序慢于RAM,并且写入每个位置的数目限制为100000。
(2) 闪存设备类似于EEPROM设备,因为闪存设备也是由闪存 型浮栅晶体管构成的非易失性、电可擦可编程、只读存储器。然而,
制。在闪存设备中,在没有对前一个已经被写入的区域的在先擦除操 作的情况下不可能再次写入存储器中前一个已经被写入的区域,意味 着闪存单元在它们能够被再次编程之前必须被擦除(例如,编程至"逻 辑1" 。 )EEPROM单元也需要这样的擦除搡作。区别在于,在EEPROM 中,擦除操作由设备作为写操作的一部分而内部执行。
闪存设备进一步被划分为NAND型闪存设备和NOR型闪存设 备。NAND型和NOR型设备之间的主要区别是NAND型设备被限制 为块读取访问,而NOR型设备具有随机读取访问。闪存设备上的擦除 仅仅能针对相对大的一组单元来执行,通常被称为"擦除块,,,在当 前的商业化NAND型设备中其大小典型的是16-128K字节(NOR型 设备具有更大的擦除块)。因此,更新单个字节、或者K字节中的一 部分的内容,需要"内务(houseke印ing)"操作(即,擦除块中不
且接着那些扇区优选地被移回它们的原始位置)。、 ' '
而且,NAND型设备块通常包括一些"坏块"。这样的块不可靠 并且对它们的使用应该被避免。块在初始设备测试期间由制造商指定 为坏块,并且随后当在实际应用(in the field)的设备使用期间块的失 败被侦测时由应用程序软件指定。闪存设备,特别是NAND型设备, 具有较高密度,并且与EEPROM设备相比相对便宜。这使得闪存设 备作为固态硬盘的替代是非常有吸引力的。
为了克服现有技术的闪存设备的局限,闪存文件系统(Flash FileSystem, FFS )被公开在Ban的No.5404485号美国专利中(以后称为 BanM85),其被转让给本发明的受让人,并且因此通过引用而并入, 就如在本文中被完整描述一样。FFS在闪存设备内提供允许这些设备 模拟磁盘的数据存储和管理系统。在现有技术中,应用程序或者操作 系统与使用虚拟地址而不是物理地址的闪存存储子系统交互。在软件
尽管软件可以被视为具有能够被随机而没有限制地读取或者写 入的连续无缺陷媒介的存储系统,但物理寻址方案在方案的地址范围 内具有"空洞"(例如,由于坏块),并且在虛拟地址范围内相互邻 近的一部分数据在物理地址范围内可能是分离的。执行上述映射的中 间层可以是软件驱动。在典型的智能卡内,驱动运行在智能卡的内嵌 CPU中。作为替代,中间层可以嵌入在控制闪存设备的控制器中,并 且当主计算机访问存储时作为主计算机的主CPU的接口 。
执行这样的地址映射的软件或者固件实现典型地被称为"闪存管 理系统"或者"闪存文件系统"。后一个术语是不恰当的,因为这样 的实现不需要支持在个人计算机的操作系统上使用的文件意义上的文 件,而是支持类似于由硬盘软件驱动输出的那些块设备接口。
所有类型的硅基NVM都会遭受损耗。这意味着在一定数量的写 入/擦除周期后,相关块或者字节将会失灵(malfunction)的可能性很 高。典型的数据周期数量(称为数据耐久性)是100,000擦除/写入周 期,其后一个位置再也不能被擦除的可能性很高。
使用上述闪存管理的现有技术设备保留了一个闪存扇区以保持 管理信息(例如,映射表)。每次闪存设备被新数据更新,其操作包 括写入真实数据和更新后的管理信息的另一写入。该处理延緩了写入 过程,因为这两个写入操作必须被串行执行。使用闪存区域以存储管 理信息的另一个缺点归结于闪存的块访问特性。单字节更新包括整页 写入操作以及可能的块擦除操作,其使得该处理更加緩慢。
另 一个被考虑的因素是数据处理系统典型地以与文件元数据相
7关联的文件来组织数据,文件元数据典型地包括文件名、大小、属性 (例如,访问权限),以及保持文件数据的至少一个扇区的物理地址。
文件元数据被保持在目录和记录对文件的存储地址分配的FAT中。现 有技术将FAT保持在相同的数据存储设备中针对该目的而指定的存 储器区域中。写入新文件或者更新已有文件包括多个串行的写入操作; 一个是写入真实数据, 一个写入至目录,以及另一个写入至FAT。如 果存储设备是闪存设备,如上所述,这些写入操作的每一个实际上包 括两个写入操作 一个写入至实际的扇区,而另一个更新闪存管理数 据。尽管管理目录更新可能仅仅需要写入少量字节,但写入至闪存总 是需要整页写入操作以及可能的块擦除操作。
描述在Chen的No.6456528美国专利中的现有技术提出了写入 FAT数据至具有两种不同的存储信息的方法的相同设备内的位置。该 现有技术讨论了使用 一种方法存储FAT ,并且使用另 一种方法存储数 据的益处。然而,该现有技术针对数据和管理数据使用相同的存储设 备。该现有技术没有解决两个串行写入操作,以及在本申请中讨论的 需要整页更新的问题。
现有技术系统的另一个示例被描述在Auclair和Harari的 No.5778418号美国专利中。该专利教导了 一种用于提高磁盘性能的固 态存储器设备和轮转(rotating)磁盘的组合。该专利描述了机械硬盘 或者固态存储器设备中的逻辑扇区地址和物理数据存储位置之间的映 射。该现有技术系统没有解决如本申请所讨论的通过区分将要写入至 设备的管理相关数据和实际数据而提高写入操作的效率的问题。
期望具有使用两个独立的存储设备的系统。这样的系统将允许上 述的两个写入操作(一个针对用户数据而一个针对管理数据)被并行 地执行,从而提供性能。

发明内容
出于清楚的目的,下面的多个术语针对本申请中的使用而被特别 定义。本文中使用的术语"映射表"涉及闪存文件系统(FFS)管理
8信息。本文中使用的术语"文件元数据"涉及文件系统(FS)管理信 息。本文中使用的术语"管理数据"涉及由FFS或者FS软件模块使 用的管理信息。
本文中使用的术语"用户数据"涉及由用户存储的实际文件。本 发明应用至单层式存储单元(SLC)闪存和多层式存储单元(MLC) 闪存。尽管后续讨论主要集中在SLC单元上,对于本领域技术人员而 言如何将本发明应用至MLC单元将会是明显的。本文中使用的术语 "擦除"和"写入"涉及设置存储器单元的阈值电压,其中擦除典型
地设置电压为对应于逻辑值1,而写入典型地设置电压,在SLC单元 的情况中,对应于逻辑值0,本文中术语"写入"和"编程,,被可互 换地使用。
本文中使用的术语"高容量SIM卡"涉及SIM卡,在上述的旧 有SIM卡功能之外,包含典型地用于存储图像和音乐文件的大量(即, >256KB,优选地〉64MB)内存存储(例如,闪存)。高容量SIM卡 通常具有高速接口,如SDTm (安全数字tm)或者MMC (多媒体卡) 接口,用于访问大容量存储。
本发明的目的是提供用于提高数据处理系统(如包含闪存和 EEPROM NVM模块的高容量SIM卡)的性能和耐久性的系统和方法。
两种不同类型的管理应用程序被包含在本申请中
(1) 闪存文件系统(FFS)(其,除名字外,与文件没有关系) 将闪存作为块设备管理。FFS处理损耗均衡(wear leveling)、错误侦 测和纠正,并且当需要时执行擦除操作。FFS保持逻辑映射虚拟地址 至物理设备地址的映射表(即,将扇区编号转换为针对逻辑/虚拟地址
(即,扇区编号)当前分配的物理地址)。
(2) 文件系统(FS)典型的是使用中的操作系统的一部分。FS 在目录区域和文件分配表(FAT )中存储文件元数据(包括文件名、 文件属性)。
根据本发明,当 一部分(或者全部)管理数据被存储在EEPROM 模块时闪存模块被用于存储数据。通过在EEPROM中存储FFS映射表而获得如下的主要改进
(a) 提高的性能在大部分情况下,仅仅少量字节需要被写入。 而如果映射表被存储在闪存中,在每次写入闪存时整页可能被重写。 此外,如果没有空的页可用,包括块擦除操作的该操作会使得该处理 更加緩慢。
(b) 更緩慢的存储器损耗因为仅仅少量字节被包含在一个典 型的管理数据更新中,使用EEPROM消除了重写整页的需求。
(c) 简化的、更有效的FFS管理FFS管理应用程序能够直接 访问EEPROM中的相关字节而不需要整页访问。
本发明的附加改进通过在EEPROM而不是闪存中存储文件元数 据,或者具体而言FAT而获得。FAT典型地在文件每次被更新时被更 新。本发明使用可字节访问的存储器(EEPROM)来存储FAT。其导 致类似于通过在EEPROM而不是闪存中存储映射表信息而获得的提 高的性能和更緩慢的损耗。
本发明在任何基于闪存的数据存储系统中都是有用处的,但因为 其它原因在EEPROM典型地出现的高容量SIM卡中特别有用处。应 当注意本发明不限于管理闪存的特定方法。任何闪存管理算法可以通 过将文件元数据放置在EEPROM中以及将用户数据放置在闪存中而 被提高。
因此,根据本发明,首次提供一种SIM卡,该卡包括U)用
于存储用户数据的第一NVM;以及(b)第二NVM,与第一NVM分
离,用于存储与用户数据相关的管理数据。
优选地,第一NVM能够块擦除并且第二NVM能够字擦除。 优选地,第一NVM是闪存并且第二NVM是EEPROM。 优选地,该卡进一步包括(c)用于容纳第一NVM和第二NVM
的壳。最优选地,该壳被构造成具有智能卡ID1或者ID-000形成因子。 优选地,管理数据包括用于将第一 NVM的虚拟地址映射到物理
设备地址的映射表。
优选地,用户数据和管理数据被组织在文件系统中。
10最优选地,管理数据包括至少一个文件分配表。
最优选地,管理数据包括至少一个文件目录,其中至少一个文件 目录包括从由文件名、文件大小、文件属性、和文件扇区的物理地址 组成的组中选择的至少一项。
根据本发明,首次提供一种用于管理SIM卡中的数据的方法,该 方法包括步骤(a)接收要被存储在SIM卡中的数据;(b)将用户 数据写入至第一 NVM;以及(c)将与用户数据相关的管理数据写入 至与第一NVM分离的第二NVM。
优选地,管理数据包括用于将第一NVM的虚拟地址映射到物理 设备地址的映射表。
优选地,用户数据和管理数据被组织在文件系统中。
最优选地,管理数据包括至少一个文件分配表。
最优选地,管理数据包括至少一个文件目录,其中至少一个文件 目录包括从由文件名、文件大小、文件属性、和文件扇区的物理地址 组成的组中选择的至少一项。
这些以及进一步的实施例在随后的详细描述和示例中将会很明显。


在本文中,本发明,通过仅仅示例的方式,参考附图而被描述, 附图中
图l是现有技术的数据处理系统的简化示意框图2是根据本发明优选实施例的典型数据处理系统的简化示意框
图3是根据本发明优选实施例的作为存储器设备驱动的一部分而 实现的写入扇区的典型操作步骤的流程图。
具体实施例方式
本发明涉及用于提高数据处理系统的性能和耐久性的系统和方法。根据本发明的用于提高数据处理系统的性能和耐久性的原理和操 作,在参考后附描述和附图时可以被更好地理解。
现在参考附图,图2是根据本发明优选实施例的典型数据处理系 统的简化示意框图。特别地,图2显示了根据本发明的原理而修改的 图1的高容量SIM卡。SIM总线4连接多种类型的存储器。RAM 6 是主要用于临时数据存储的易失性存储器。RAM 6也用作应用程序緩 存。ROM8是用于存储操作系统和应用程序的永久不可擦存储器。一 些系统可以应用可擦内存存储来代替ROM 8以提供在改变和提高载 入软件上的灵活性。如本发明所指出的一样,管理数据22、 FAT 24, 和元数据目录26被存储在EEPROM 10 (相对于图1所示的结构), 而用户数据2(H皮存储在闪存12。
EEPROM 10是可字节编程的电可擦NVM。 EEPROM 10被用于 存储配置相关信息以及,取决于应用程序,半永久数据。然而,在与 现有技术相同的EEPROM 10的使用之外,本发明的EEPROM 10还 存储闪存管理数据22、 FAT 24,和文件元数据目录26。闪存12也是 电可擦NVM,但闪存12在大小上明显大于EEPROM 10。闪存12典 型地用于大容量数据存储,如图片、音乐、视频、和数据库(例如, 电话簿)。接口 14A和14B被用于连接数据处理系统和外部设备(例 如,移动电话)。组件(总线4、 RAM 6、 ROM 8、 EEPROM 10、闪 存12,以及接口 14A和14B)位于壳16内。在优选实施例中,壳16 具有智能卡形成因子(例如,智能卡ID1或者ID-000)。
图3是根据本发明优选实施例的作为存储器设备驱动的一部分而 实现的写入扇区的典型操作步骤的流程图。在描述图3所示的操作步 骤时,参考图2所示的组件会更加清楚。这个例子描述了在EEPROM 10中保持管理数据22和FAT24,同时其它文件元数据和用户数据20 被存储在闪存12的系统。文件系统命令(例如,写文件、擦除文件、 创建文件、创建目录)由设备经由接口(例如,智能卡接口 14A和14B, 图2中所示)接收,并且设备启动一个扇区上的操作(块40)。检查 由操作请求所定义的扇区编号以确定扇区编号是否属于FAT 24 (块
1242)。
假设执行该算法的固件知道FAT结构和物理位置。如果执行该 算法的固件不知道FAT结构和物理位置,该步骤(块42)可以被跳 过,而所有扇区被当作非FAT。如果扇区被识别为FAT24的一部分, 才艮据本发明FAT 24被存储在EEPROM 10中,则更新FAT 24(块44 )。 在此情况下,没有数据被需要写入闪存12,并且处理结束(块46)。 如果扇区不是FAT扇区,固件需要分配空的区域以存储用户数据20 (块48)。如果存在用户数据20的空间,固件将用户数据20写入至 闪存12 (块50 ),并且更新EEPROM 10中的管理数据22 (块52 )。 操作50和52被并行执行,并且接着处理结束(块54 )。
在智能卡的实现中,这意味着CPU 2在更新EEPROM 10内的管 理数据22之前不需要等待直到用户数据20实际被写入闪存12。如果 没有空间可用,固件执行"内务"操作(块S6)(包括擦除未使用的 块),并且压缩闪存12中的用户数据20。此外,更新EEPROM l中 的管理数据22 (块58)以反映用户数据20的重新排列,用户数据20 的重新排列在块56中被执行。两个操作(块56和58 )被并行执行(即, 在CPU 2更新EEPROM 10内的管理数据22 (块58 )之前CPU 2不 等待闪存相关的操作(块56)的完成)。
因为下面的原因,擦除未使用的块的步骤(块56)是必需的。为 了写入闪存12,必需保证将要被写入的块的所有位具有逻辑1。写入 操作仅仅能将代表电平从逻辑1变为逻辑0 (从逻辑0变为逻辑1由 擦除操作执行)。如果块没有被使用,其不清楚块是否已经被擦除(即, 块的所有位具有逻辑1)。典型地,未使用的块将不会是预先已经被 擦除的。
尽管本发明已经结合有限数目的实施例被描述,将能理解可以对 本发明做出许多变化、修改、和其它应用。
1权利要求
1. 一种SIM卡,所述卡包含(a)第一NVM,用于存储用户数据;以及(b)第二NVM,与所述第一NVM分离,用于存储与所述用户数据相关的管理数据。
2. 如权利要求1所述的卡,其中所述第一 NVM能够块擦除并且 所述第二 NVM能够字擦除。
3. 如权利要求l所述的卡,其中所述第一NVM是闪存并且所述 第二 NVM是EEPROM。
4. 如权利要求l所述的卡,所述卡进一步包含(c) 用于容纳所述第一NVM和所述第二NVM的壳。
5. 如权利要求4所述的卡,其中所述壳被构造成具有智能卡ID 1 形成因子。
6. 如权利要求4所述的卡,其中所述壳被构造成具有智能卡ID -000形成因子。
7. 如权利要求1所述的卡,其中所述管理数据包括用于将所述 第一 NVM的虚拟地址映射到物理设备地址的映射表。
8. 如权利要求1所述的卡,其中所述用户数据和所述管理数据 -故组织在文件系统中。
9. 如权利要求8所述的卡,其中所述管理数据包括至少一个文 件分配表。
10. 如权利要求8所述的卡,其中所述管理数据包括至少一个文 件目录,其中所述至少一个文件目录包括从由文件名、文件大小、文 件属性、和文件扇区的物理地址组成的组中选择的至少一项。
11. 一种管理SIM卡中的数据的方法,所述方法包含如下步骤(a) 接收要存储在SIM卡中的用户数据;(b) 将所述用户数据写入至第一NVM;以及(c )将与所述用户数据相关的管理数据写入至与所述第一NVM分离的第二NVM。
12. 如权利要求11所述的方法,其中所述管理数据包括用于将 所述第一 NVM的虚拟地址映射到物理设备地址的映射表。
13. 如权利要求11所述的方法,其中所述用户数据和所述管理 数据被组织在文件系统中。
14. 如权利要求13所述的方法,其中所述管理数据包括至少一 个文件分配表。
15. 如权利要求13所述的方法,其中所述管理数据包括至少一 个文件目录,其中所述至少一个文件目录包括从由文件名、文件大小、 文件属性、和文件扇区的物理地址组成的组中选择的至少一项。
全文摘要
SIM卡包括(a)用于存储用户数据的第一NVM;以及(b)第二NVM,与第一NVM分离,用于存储与用户数据相关的管理数据。优选地,第一NVM能够块擦除并且第二NVM能够字擦除。优选地,第一NVM是闪存并且第二NVM是EEPROM。优选地,管理数据包括用于将第一NVM的虚拟地址映射到物理设备地址的映射表。优选地,用户数据和管理数据被组织在文件系统中。最优选地,管理数据包括至少一个文件分配表。最优选地,管理数据包括至少一个文件目录,其中至少一个文件目录包括从由文件名、文件大小、文件属性、和文件扇区的物理地址组成的组中选择的至少一项。
文档编号G06F12/00GK101484882SQ200680050847
公开日2009年7月15日 申请日期2006年12月3日 优先权日2005年12月9日
发明者M·阿盖密 申请人:晟碟以色列有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1