CN101484882B - 闪存管理方法 - Google Patents

闪存管理方法 Download PDF

Info

Publication number
CN101484882B
CN101484882B CN2006800508474A CN200680050847A CN101484882B CN 101484882 B CN101484882 B CN 101484882B CN 2006800508474 A CN2006800508474 A CN 2006800508474A CN 200680050847 A CN200680050847 A CN 200680050847A CN 101484882 B CN101484882 B CN 101484882B
Authority
CN
China
Prior art keywords
nvm
file
data
sim card
management data
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
CN2006800508474A
Other languages
English (en)
Other versions
CN101484882A (zh
Inventor
M·阿盖密
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.)
Western data Israel Limited
Original Assignee
Milsys Ltd
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 Milsys Ltd filed Critical Milsys Ltd
Publication of CN101484882A publication Critical patent/CN101484882A/zh
Application granted granted Critical
Publication of CN101484882B publication Critical patent/CN101484882B/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K17/00Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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/7207Details relating to flash memory management management of metadata or control data
    • 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
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

SIM卡包括:(a)用于存储用户数据的第一NVM;以及(b)第二NVM,与第一NVM分离,用于存储与用户数据相关的管理数据。优选地,第一NVM能够块擦除并且第二NVM能够字擦除。优选地,第一NVM是闪存并且第二NVM是EEPROM。优选地,管理数据包括用于将第一NVM的虚拟地址映射到物理设备地址的映射表。优选地,用户数据和管理数据被组织在文件系统中。最优选地,管理数据包括至少一个文件分配表。最优选地,管理数据包括至少一个文件目录,其中至少一个文件目录包括从由文件名、文件大小、文件属性、和文件扇区的物理地址组成的组中选择的至少一项。

Description

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

Claims (13)

1.一种用户识别模块SIM卡,所述卡包含:
第一非易失性存储器NVM,用于存储用户数据;以及
第二NVM,与所述第一NVM分离,所述第二NVM用于存储与所述用户数据相关的管理数据,所述管理数据包括管理所述第一NVM的数据,所述管理包括执行损耗均衡、错误侦测和纠正,以及擦除操作,
其中所述SIM卡与在第一NVM中更新用户数据并行地在第二NVM中更新管理数据。
2.如权利要求1所述的SIM卡,其中所述第一NVM能够块擦除并且所述第二NVM能够字擦除。
3.如权利要求1所述的SIM卡,其中所述第一NVM包括闪存并且所述第二NVM是电可擦除可编程只读存储器EEPROM。
4.如权利要求1所述的SIM卡,所述卡进一步包含:
用于容纳所述第一NVM和所述第二NVM的壳。
5.如权利要求4所述的SIM卡,其中所述壳具有智能卡ID1形成因子。
6.如权利要求4所述的SIM卡,其中所述壳具有智能卡ID-000形成因子。
7.如权利要求1所述的SIM卡,其中所述管理数据包括用于将与所述第一NVM相关的虚拟地址映射到相应的物理设备地址的映射表。
8.如权利要求1所述的SIM卡,其中所述管理数据包括至少一个文件分配表。
9.如权利要求1所述的SIM卡,其中所述管理数据包括至少一个文件目录,其中所述至少一个文件目录包括从由文件名、文件大小、文件属性、和文件扇区的物理地址组成的组中选择的至少一个。
10.一种管理被存储在用户识别模块(SIM)卡中的数据的方法,所述方法包含如下步骤:
接收要存储在SIM卡上的用户数据;
将所述用户数据写入至所述SIM卡的第一非易失性存储器(NVM);以及
将与所述用户数据相关的管理数据写入至与所述第一NVM分离的、所述SIM卡的第二NVM,其中所述管理数据管理所述第一NVM的数据,所述管理包括执行损耗均衡、错误侦测和纠正、以及擦除操作,
其中所述管理数据与在第一NVM中更新用户数据并行地在第二NVM中被更新。
11.如权利要求10所述的方法,其中所述管理数据包括用于将与所述第一NVM相关的虚拟地址映射到物理设备地址的映射表。
12.如权利要求10所述的方法,其中所述管理数据包括至少一个文件分配表。
13.如权利要求10所述的方法,其中所述管理数据包括至少一个文件目录,其中所述至少一个文件目录包括从由文件名、文件大小、文件属性、和文件扇区的物理地址组成的组中选择的至少一个。
CN2006800508474A 2005-12-09 2006-12-03 闪存管理方法 Active CN101484882B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US74868205P 2005-12-09 2005-12-09
US60/748,682 2005-12-09
PCT/IL2006/001393 WO2007066326A2 (en) 2005-12-09 2006-12-03 Method for flash-memory management

Publications (2)

Publication Number Publication Date
CN101484882A CN101484882A (zh) 2009-07-15
CN101484882B true CN101484882B (zh) 2013-10-02

Family

ID=38123289

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800508474A Active CN101484882B (zh) 2005-12-09 2006-12-03 闪存管理方法

Country Status (7)

Country Link
US (1) US9116791B2 (zh)
EP (1) EP1960887B1 (zh)
JP (1) JP5295778B2 (zh)
KR (1) KR101002978B1 (zh)
CN (1) CN101484882B (zh)
AT (1) ATE518190T1 (zh)
WO (1) WO2007066326A2 (zh)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070150645A1 (en) * 2005-12-28 2007-06-28 Intel Corporation Method, system and apparatus for power loss recovery to enable fast erase time
US7693486B2 (en) * 2006-05-11 2010-04-06 Nokia Corporation Distributed multiradio controller
US7711373B2 (en) * 2006-05-11 2010-05-04 Nokia Corporation Multiradio control interface
US8190206B2 (en) * 2006-07-04 2012-05-29 Sandisk Il Ltd. Dual channel smart card data storage
DE102006035039B4 (de) * 2006-07-28 2008-10-30 Infineon Technologies Ag Datenverarbeitungssystem und Verfahren zum Betreiben eines Datenverarbeitungssystems
US20080118014A1 (en) * 2006-11-16 2008-05-22 Nokia Corporation Utilizing wake-up signals for synchronizing multiradio timing
US7966355B2 (en) * 2007-02-13 2011-06-21 Modu Ltd. Interface for extending functionality of memory cards
US20090013148A1 (en) * 2007-07-03 2009-01-08 Micron Technology, Inc. Block addressing for parallel memory arrays
KR101473344B1 (ko) * 2007-08-24 2014-12-17 삼성전자 주식회사 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작방법
KR100951949B1 (ko) * 2007-11-15 2010-04-09 주식회사 케이티 스마트 카드에서의 데이터베이스 관리 시스템을 이용한정보 관리 방법 및 장치
US8938655B2 (en) * 2007-12-20 2015-01-20 Spansion Llc Extending flash memory data retension via rewrite refresh
US20090172279A1 (en) * 2007-12-28 2009-07-02 Po Yuan System For Accessing A Removable Non-Volatile Memory Card
US20090172393A1 (en) 2007-12-31 2009-07-02 Haluk Kent Tanik Method And System For Transferring Data And Instructions Through A Host File System
US8146153B2 (en) 2007-12-31 2012-03-27 Sandisk Technologies Inc. Method and system for creating and accessing a secure storage area in a non-volatile memory card
TWI397912B (zh) * 2008-02-13 2013-06-01 Genesys Logic Inc 調整存取效能的快閃記憶體儲存裝置
US8868929B2 (en) * 2008-04-08 2014-10-21 Microelectronica Espanola S.A.U. Method of mass storage memory management for large capacity universal integrated circuit cards
US8423592B2 (en) 2008-04-11 2013-04-16 Sandisk Technologies Inc. Method and system for accessing a storage system with multiple file systems
US8347046B2 (en) * 2008-04-15 2013-01-01 Microsoft Corporation Policy framework to treat data
US8775548B2 (en) * 2008-06-27 2014-07-08 Microsoft Corporation Extending sharing options of local computing resources
US8428649B2 (en) 2008-08-20 2013-04-23 Sandisk Technologies Inc. Memory device upgrade
US8984645B2 (en) * 2008-08-20 2015-03-17 Sandisk Technologies Inc. Accessing memory device content using a network
US8407401B2 (en) 2008-11-26 2013-03-26 Core Wireless Licensing S.A.R.L. Methods, apparatuses, and computer program products for enhancing memory erase functionality
US20100131726A1 (en) * 2008-11-26 2010-05-27 Nokia Corporation Methods, apparatuses, and computer program products for enhancing memory erase functionality
TW201030514A (en) * 2009-02-04 2010-08-16 Mitac Int Corp Flash memory document system and its driving method
US8112682B2 (en) * 2009-04-23 2012-02-07 Sandisk Il Ltd Method and device for bad-block testing
EP2264602A1 (en) * 2009-06-17 2010-12-22 Gemalto SA Memory device for managing the recovery of a non volatile memory
EP2267725A1 (en) * 2009-06-17 2010-12-29 Gemalto SA Memory device for managing the recovery of a non volatile memory
JP4886831B2 (ja) * 2009-10-15 2012-02-29 株式会社東芝 コンテンツ記録装置、再生装置、編集装置およびその方法
JP5517224B2 (ja) * 2010-03-04 2014-06-11 日本電気株式会社 ストレージ装置
WO2012048098A1 (en) 2010-10-06 2012-04-12 Blackbird Technology Holdings, Inc. Method and apparatus for low-power, long-range networking
WO2012048118A2 (en) 2010-10-06 2012-04-12 Blackbird Technology Holdings, Inc. Method and apparatus for adaptive searching of distributed datasets
US8718551B2 (en) 2010-10-12 2014-05-06 Blackbird Technology Holdings, Inc. Method and apparatus for a multi-band, multi-mode smartcard
US20120117303A1 (en) 2010-11-04 2012-05-10 Numonyx B.V. Metadata storage associated with flash translation layer
WO2012100145A1 (en) * 2011-01-21 2012-07-26 Blackbird Technology Holdings, Inc. Method and apparatus for memory management
US9154392B2 (en) 2011-03-02 2015-10-06 Blackbird Technology Holdings, Inc. Method and apparatus for power autoscaling in a resource-constrained network
US9324433B2 (en) 2011-04-25 2016-04-26 Microsoft Technology Licensing, Llc Intelligent flash reprogramming
US8929961B2 (en) 2011-07-15 2015-01-06 Blackbird Technology Holdings, Inc. Protective case for adding wireless functionality to a handheld electronic device
FR2980905B1 (fr) * 2011-09-29 2014-03-14 Continental Automotive France Procede d'effacement d'informations memorisees dans une memoire reinscriptible non volatile, support de memorisation et calculateur de vehicule automobile
CN102521145B (zh) * 2011-12-23 2014-08-20 东信和平科技股份有限公司 Java卡系统及其空间分配处理方法
CN102867019B (zh) * 2012-07-30 2016-01-13 利尔达科技集团股份有限公司 分离式文件系统及其管理方法
EP2797003A1 (en) * 2013-04-26 2014-10-29 Giesecke & Devrient GmbH Method for flash memory management of a secure element
US10120792B1 (en) * 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
US9804961B2 (en) * 2014-03-21 2017-10-31 Aupera Technologies, Inc. Flash memory file system and method using different types of storage media
CN105404597B (zh) * 2015-10-21 2018-10-12 华为技术有限公司 数据传输的方法、设备及系统
US10901639B2 (en) * 2016-11-29 2021-01-26 Sap Se Memory allocation in multi-core processors
US20180239532A1 (en) 2017-02-23 2018-08-23 Western Digital Technologies, Inc. Techniques for performing a non-blocking control sync operation
US10359955B2 (en) * 2017-02-23 2019-07-23 Western Digital Technologies, Inc. Data storage device configured to perform a non-blocking control update operation
CN107608636B (zh) * 2017-09-28 2020-07-07 江苏沁恒股份有限公司 一种基于fat文件系统的设计方法及其应用的数据采集装置
CN109358818B (zh) * 2018-10-30 2021-08-03 深圳润迅数据通信有限公司 一种数据中心的块设备io请求处理方法
CN113299333A (zh) 2020-02-21 2021-08-24 硅存储技术股份有限公司 由闪存单元构成的eeprom仿真器中的损耗均衡
US11816349B2 (en) 2021-11-03 2023-11-14 Western Digital Technologies, Inc. Reduce command latency using block pre-erase
TWI796148B (zh) * 2022-02-25 2023-03-11 華邦電子股份有限公司 快閃記憶體抹除方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5971282A (en) * 1995-09-26 1999-10-26 Intel Corporation Personal token card with sensor
WO2005043394A1 (ja) * 2003-10-31 2005-05-12 Matsushita Electric Industrial Co., Ltd. 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法
CN1696972A (zh) * 2004-05-11 2005-11-16 株式会社瑞萨科技 Ic卡组件

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778418A (en) 1991-09-27 1998-07-07 Sandisk Corporation Mass computer storage system having both solid state and rotating disk types of memory
US6549974B2 (en) * 1992-06-22 2003-04-15 Hitachi, Ltd. Semiconductor storage apparatus including a controller for sending first and second write commands to different nonvolatile memories in a parallel or time overlapped manner
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US6728851B1 (en) * 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
JP3525734B2 (ja) * 1997-04-25 2004-05-10 ソニー株式会社 情報記録装置及び方法、情報再生装置及び方法
JP3534585B2 (ja) * 1997-10-21 2004-06-07 株式会社日立製作所 フラッシュメモリを複数使用した外部記憶装置のデータ記憶制御方法及び装置
US6400633B1 (en) * 2000-02-11 2002-06-04 Advanced Micro Devices, Inc. Power-saving modes for memories
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6823417B2 (en) * 2001-10-01 2004-11-23 Hewlett-Packard Development Company, L.P. Memory controller for memory card manages file allocation table
US7003621B2 (en) * 2003-03-25 2006-02-21 M-System Flash Disk Pioneers Ltd. Methods of sanitizing a flash-based data storage device
JP4667243B2 (ja) * 2003-08-29 2011-04-06 パナソニック株式会社 不揮発性記憶装置及びその書込み方法
JP2005108304A (ja) * 2003-09-29 2005-04-21 Toshiba Corp 半導体記憶装置及びその制御方法
US20050251617A1 (en) * 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
EP1797645B1 (en) * 2004-08-30 2018-08-01 Google LLC Systems and methods for providing nonvolatile memory management in wireless phones
US20060053247A1 (en) * 2004-09-08 2006-03-09 Hugo Cheung Incremental erasing of flash memory to improve system performance
US20060282610A1 (en) * 2005-06-08 2006-12-14 M-Systems Flash Disk Pioneers Ltd. Flash memory with programmable endurance

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5971282A (en) * 1995-09-26 1999-10-26 Intel Corporation Personal token card with sensor
WO2005043394A1 (ja) * 2003-10-31 2005-05-12 Matsushita Electric Industrial Co., Ltd. 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法
CN1696972A (zh) * 2004-05-11 2005-11-16 株式会社瑞萨科技 Ic卡组件

Also Published As

Publication number Publication date
ATE518190T1 (de) 2011-08-15
KR20080077668A (ko) 2008-08-25
EP1960887A4 (en) 2009-11-25
JP5295778B2 (ja) 2013-09-18
US9116791B2 (en) 2015-08-25
JP2009525511A (ja) 2009-07-09
EP1960887B1 (en) 2011-07-27
WO2007066326A2 (en) 2007-06-14
WO2007066326A3 (en) 2009-03-12
EP1960887A2 (en) 2008-08-27
US20070136509A1 (en) 2007-06-14
CN101484882A (zh) 2009-07-15
KR101002978B1 (ko) 2010-12-22

Similar Documents

Publication Publication Date Title
CN101484882B (zh) 闪存管理方法
US10372331B2 (en) Storage system, information processing system and method for controlling nonvolatile memory
US10126959B2 (en) Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US9652386B2 (en) Management of memory array with magnetic random access memory (MRAM)
US7395384B2 (en) Method and apparatus for maintaining data on non-volatile memory systems
US7752412B2 (en) Methods of managing file allocation table information
US8607016B2 (en) FAT analysis for optimized sequential cluster management
US7681008B2 (en) Systems for managing file allocation table information
US7669003B2 (en) Reprogrammable non-volatile memory systems with indexing of directly stored data files
US20060224818A1 (en) Method for fast access to flash-memory media
US20110022807A1 (en) Write once recording device
JP2009503735A (ja) フラッシュメモリシステムのデータ記憶容量の解放
US8090692B2 (en) Method for using an OTP storage device
JP2009503740A (ja) データファイルを直接記憶する再プログラム可能な不揮発性メモリ内のファイルデータの索引付け
WO2008042594A1 (en) Managing file allocation table information
EP2342711A1 (en) Non-volatile dual memory die for data storage devices

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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Israel Kfar Saba

Patentee after: Western data Israel Limited

Address before: Israel Kfar Saba

Patentee before: SanDisk IL Ltd.