CN109656481A - 一种提高智能卡文件系统flash写入寿命的方法 - Google Patents
一种提高智能卡文件系统flash写入寿命的方法 Download PDFInfo
- Publication number
- CN109656481A CN109656481A CN201811530906.9A CN201811530906A CN109656481A CN 109656481 A CN109656481 A CN 109656481A CN 201811530906 A CN201811530906 A CN 201811530906A CN 109656481 A CN109656481 A CN 109656481A
- Authority
- CN
- China
- Prior art keywords
- block
- physical
- file
- service life
- physical block
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及计算机数据存储技术领域,公开了一种提高智能卡文件系统FLASH写入寿命的方法。包括:将存储区域划分为相同大小的物理块,将划分的物理块从0开始编号;每个物理块内部的第一个字节存放块类型标志,用于区分不同的块类型;第二个字节存放块有效标志,用于标识块内存放数据是否有效;块的剩下其它部分为数据区,用于存储数据;当需要改写逻辑块内容时,从存储区域重新分配空闲的物理块,写入数据,逻辑块指向重新分配的物理块;采用块有效标识对旧的物理块标记失效。本发明采用具备磨损均衡效果的映射方式来管理物理存储介质,提高了写入效率和写入寿命;同时对文件系统文件头和数据采取了分区处理的策略,降低了对物理介质的改写频率。
Description
技术领域
本发明涉及计算机数据存储技术领域,特别是一种提高智能卡文件系统FLASH写入寿命的方法。
背景技术
智能卡上的文件系统一般采用ISO7816标准规范,该规范定义的文件系统操作简单,文件在创建的时候就制定好文件长度和属性。文件目录结构简单,同层文件以及目录之间通过链表连接。由于智能卡应用场景的特殊性,该文件系统文件建立后,一般不需要删除操作,也没有临时文件的概念。
传统上对以上文件系统的实现采用的是极其简单的方式,文件表项和文件内容存放在一起,并且在物理介质上连续存放。由于智能卡文件系统的存储介质一般采用FLASH,因此在更新文件内容时,必须首先对文件所占据的物理介质执行擦除操作,然后才能执行写入操作。由于FLASH物理特性的限制,擦除操作需要很长的时间,因此降低了文件系统写入的效率。同时,由于文件在物理介质上的存放地址固定,因此高频率写入的文件所占据的存储区域就会磨损得很快,从而降低了存储介质的使用寿命。
为了提高存储介质的使用寿命,就需要采用磨损均衡算法,即将对文件的写入分散到存储介质的每个区域,而不是固定使用同一段地址。目前针对大容量FLASH介质,如NANDFALSH,有各种不同的磨损均衡算法,效果也足够优秀。但由于智能卡存储场景的特殊性,当前绝大多数的磨损均衡算法并不适用。智能卡存储场景一般具备以下特点:
1)需要存储在卡上的用户数据较少,一般小于100KB,因此一般采用容量较小的FLASH介质,如NORFLASH,EFLASH等;
2)系统资源严重受限,算法需要尽量简单;
3)文件的删除操作频率很低。
当前绝大多数的磨损均衡算法比较复杂,需要耗费较多的系统资源,而且主要针对大容量存储介质,需要在介质上存储比较多的管理元数据,而这明显不适合容量较小的智能卡上的存储器。
发明内容
本发明所要解决的技术问题是:针对传统智能卡文件系统实现方式效率低下,写入存储介质未经磨损均衡,寿命较低的问题,提供了一种提高智能卡文件系统FLASH写入寿命的方法。
本发明采用的技术方案如下:一种提高智能卡文件系统FLASH写入寿命的方法,具体包括以下过程:
将存储区域划分为相同大小的物理块,将划分的物理块从0开始编号;每个物理块内部的第一个字节存放块类型标志,用于区分不同的块类型;第二个字节存放块有效标志,用于标识块内存放数据是否有效;块的剩下其它部分为数据区,用于存储数据;
当需要改写逻辑块内容时,从存储区域重新分配空闲的物理块,写入数据,逻辑块指向重新分配的物理块;
采用块有效标识对旧的物理块标记失效。
进一步的,块的大小等于FLASH存储介质的最小擦除单位。
进一步的,所述块有效标志通过不同的值分别表示块有效,或者块未被使用,或者块已失效。
进一步的,当块类型为有效块时,所述块类型标志、块有效标志以及数据区组成映射块,所述数据区包括多个映射表项。
进一步的,所述映射表包括8个字节,前4字节存放逻辑块号,后4字节存放逻辑块号对应的物理块号。
进一步的,重新分配空闲的物理块的具体过程为:从物理块0开始,顺序扫描所有物理块的块有效标志,如果存在空闲块,则优先分配该块为新的物理块;如果不存在空闲块,但存在失效块,则首先擦除该失效块,然后选择该块物理块作为新分配的物理块。
进一步的,存储区域存储的数据文件采用分区的方式分别存储文件头和文件内容。
进一步的,对所述文件头进行扩展,在文件头中加入数据文件对应的逻辑块号,建立文件和逻辑块之间的映射关系。
进一步的,对数据文件的读写访问过程为:
采用ISO7816标准规定的文件访问方式,在文件头分区中查找到对应的文件头;
从文件头中取出文件内容对应的逻辑块号;
从映射表中通过查表操作取得逻辑块号对应的物理块号;
对物理块进行读写操作。
与现有技术相比,采用上述技术方案的有益效果为:本发明的技术方案采用具备磨损均衡效果的映射方式来管理物理存储介质,提高了写入效率和写入寿命;同时根据智能卡应用场景对不同数据的访问规律不同,本发明的技术方案对文件系统文件头和数据采取了分区处理的策略,进一步降低了对物理介质的改写频率,提高了写入寿命。
附图说明
图1是本发明存储介质管理方式示意图。
图2是本发明映射块存储方式示意图。
图3是本发明空闲块分配流程示意图。
具体实施方式
下面结合附图对本发明做进一步描述。
一种提高智能卡文件系统FLASH写入寿命的方法,采用逻辑地址与物理地址映射的方式来管理物理存储介质,具体包括以下过程:
如图1所示,将存储区域划分为相同大小的物理块,将划分的物理块从0开始编号,具有块0到块N一共N+1个块;每个物理块内部的第一个字节存放块类型标志,用于区分不同的块类型;第二个字节存放块有效标志,用于标识块内存放数据是否有效;块的剩下其它部分为数据区,用于存储数据;当需要改写逻辑块内容时,从存储区域重新分配空闲的物理块,写入数据,逻辑块指向重新分配的物理块;采用块有效标识对旧的物理块标记失效。本发明采用分配新物理块的方式来实现逻辑块内容的改写,即当新创建一个逻辑块或者更新已有逻辑块内容时,并不更新其对应物理块内容,而是从内存池中新分配一个空闲的物理块,,写入数据,然后直接更新该逻辑块对应的映射表项,使得该逻辑块指向新分配的物理块。这种方法避免了改写时对物理块的擦除操作,因此提高了写入效率。但是,此时旧的物理块并没有擦除,因此还必须使用块有效标志对旧的物理块进行标示,表示该物理块已经“失效”。
优选地,块的大小等于FLASH存储介质的最小擦除单位。这样可以降低存储数据之间的耦合。
块有效标志和块类型:
在本实施例中,块有效标志的值为0x55表示块有效,0xff表示块未被使用,其余值均表示块已失效。
块类型标志用于区分两种不同的块类型,如图2所示,当块类型标示值为0x55时,所述块类型标志、块有效标志以及数据区组成映射块,用于存放逻辑块号到物理块号的映射关系,这时数据区包括多个映射表项,图中有N+1个映射表项。当块类型标识值为0xaa标示数据块,用于存放数据。
所述映射表包括8个字节,前4字节存放逻辑块号,后4字节存放逻辑块号对应的物理块号。这样就建立起了一个映射表。通过查询该映射表,可以快速的由逻辑块号索引到其对应的物理块号。数据块内部则直接存储文件系统管理数据和用户数据。
优选地,如图3所示,本实施例采用一种简单的方法分配空闲的物理块,重新分配空闲的物理块的具体过程为:从物理块0开始,顺序扫描所有物理块的块有效标志,检查当前块的块类型标志,如果存在空闲块,则优先分配该块为新的物理块;如果不存在空闲块,判断是否已经是最后一个物理块,如果不是最后一个物理块,则指向下一个物理块,返回到检查当前物理块的块有效标志的步骤,如果是最后一个物理块,则指向第一个物理块,继续检查当前块类型标志,判断是否失效。如果没有失效,则指向下一个物理块;如果失效则擦除该物理块,分配该块为新的物理块。上述分配方法可以有效的将写入的数据分散到物理介质的所有块中,因此具备一定的磨损均衡的效果,提高了物理介质写入寿命。同时由于其逻辑简单,因此适用于系统资源严重受限的智能卡应用场景。
优选地,本实施例存储区域存储的数据文件采用分区的方式分别存储文件头和文件内容。由于在智能卡的应用场景中,文件头的更新频率非常低,因此我们将文件头存放在独立的分区,不采用前面章节描述的映射方式,而是采用直接存储的方式来管理。
优选地,对所述文件头进行扩展,在文件头中加入数据文件对应的逻辑块号,建立文件和逻辑块之间的映射关系。如表1所示,本实施例对智能卡文件系统数据文件(EF文件)的文件头进行了扩展,在文件头中加入了文件内容对应的逻辑块号,由此建立文件与逻辑块之间的映射关系。
表1
由此,在本发明的实现方式中,对目录文件(DF文件)的访问与传统方法一致。对数据文件(EF文件)的读写访问步骤与传统方法有所不同,具体如下:
(1)采用ISO7816标准规定的文件访问方式,在文件头分区中查找到对应的文件头;
(2)从文件头中取出文件内容对应的逻辑块号;
(3)从映射表中通过查表操作取得逻辑块号对应的物理块号;
(4)对物理块进行读写操作。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。如果本领域技术人员,在不脱离本发明的精神所做的非实质性改变或改进,都应该属于本发明权利要求保护的范围。
Claims (9)
1.一种提高智能卡文件系统FLASH写入寿命的方法,其特征在于,具体包括以下过程:
将存储区域划分为相同大小的物理块,将划分的物理块从0开始编号;每个物理块内部的第一个字节存放块类型标志,用于区分不同的块类型;第二个字节存放块有效标志,用于标识块内存放数据是否有效;块的剩下其它部分为数据区,用于存储数据;
当需要改写逻辑块内容时,从存储区域重新分配空闲的物理块,写入数据,逻辑块指向重新分配的物理块;
采用块有效标识对旧的物理块标记失效。
2.如权利要求1所述的提高智能卡文件系统FLASH写入寿命的方法,其特征在于,块的大小等于FLASH存储介质的最小擦除单位。
3.如权利要求2所述的提高智能卡文件系统FLASH写入寿命的方法,其特征在于,所述块有效标志通过不同的值分别表示块有效,或者块未被使用,或者块已失效。
4.如权利要求3所述的提高智能卡文件系统FLASH写入寿命的方法,其特征在于,当块类型为有效块时,所述块类型标志、块有效标志以及数据区组成映射块,所述数据区包括多个映射表项。
5.如权利要求4所述的提高智能卡文件系统FLASH写入寿命的方法,其特征在于,所述映射表包括8个字节,前4字节存放逻辑块号,后4字节存放逻辑块号对应的物理块号。
6.如权利要求5所述的提高智能卡文件系统FLASH写入寿命的方法,其特征在于,重新分配空闲的物理块的具体过程为:从物理块0开始,顺序扫描所有物理块的块有效标志,如果存在空闲块,则优先分配该块为新的物理块;如果不存在空闲块,但存在失效块,则首先擦除该失效块,然后选择该块物理块作为新分配的物理块。
7.如权利要求6所述的提高智能卡文件系统FLASH写入寿命的方法,其特征在于,存储区域存储的数据文件采用分区的方式分别存储文件头和文件内容。
8.如权利要求7所述的提高智能卡文件系统FLASH写入寿命的方法,其特征在于,对所述文件头进行扩展,在文件头中加入数据文件对应的逻辑块号,建立文件和逻辑块之间的映射关系。
9.如权利要求8所述的提高智能卡文件系统FLASH写入寿命的方法,其特征在于,对数据文件的读写访问过程为:
采用ISO7816标准规定的文件访问方式,在文件头分区中查找到对应的文件头;
从文件头中取出文件内容对应的逻辑块号;
从映射表中通过查表操作取得逻辑块号对应的物理块号;
对物理块进行读写操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811530906.9A CN109656481A (zh) | 2018-12-14 | 2018-12-14 | 一种提高智能卡文件系统flash写入寿命的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811530906.9A CN109656481A (zh) | 2018-12-14 | 2018-12-14 | 一种提高智能卡文件系统flash写入寿命的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109656481A true CN109656481A (zh) | 2019-04-19 |
Family
ID=66113195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811530906.9A Pending CN109656481A (zh) | 2018-12-14 | 2018-12-14 | 一种提高智能卡文件系统flash写入寿命的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109656481A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110471626A (zh) * | 2019-08-15 | 2019-11-19 | 深圳融卡智能科技有限公司 | 应用于Java Card的Nor Flash管理层及方法 |
CN112068769A (zh) * | 2020-07-28 | 2020-12-11 | 深圳市宏旺微电子有限公司 | 闪存设备双向链表管理方法和闪存存储设备 |
CN112579004A (zh) * | 2020-12-17 | 2021-03-30 | 杭州艾芯智能科技有限公司 | 快速删除flash数据的方法、系统、计算机设备及存储介质 |
CN113282521A (zh) * | 2021-05-19 | 2021-08-20 | 武汉天喻信息产业股份有限公司 | 一种智能卡寿命延长方法及装置 |
CN114265562A (zh) * | 2021-12-27 | 2022-04-01 | 北京国腾创新科技有限公司 | 一种基于flash存储器的文件存储方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1542624A (zh) * | 2003-04-29 | 2004-11-03 | 大唐移动通信设备有限公司 | 一种在Flash文件系统中加快逻辑块映射速度的方法 |
US20050055495A1 (en) * | 2003-09-05 | 2005-03-10 | Nokia Corporation | Memory wear leveling |
CN101526927A (zh) * | 2008-03-07 | 2009-09-09 | 北京华虹集成电路设计有限责任公司 | Flash文件系统的数据处理方法及数据处理装置 |
CN101986305A (zh) * | 2010-11-01 | 2011-03-16 | 华为技术有限公司 | 一种文件系统的操作方法及一种通信装置 |
CN104572681A (zh) * | 2013-10-17 | 2015-04-29 | 北京同方微电子有限公司 | 一种基于注册表的智能卡文件管理系统及其管理方法 |
-
2018
- 2018-12-14 CN CN201811530906.9A patent/CN109656481A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1542624A (zh) * | 2003-04-29 | 2004-11-03 | 大唐移动通信设备有限公司 | 一种在Flash文件系统中加快逻辑块映射速度的方法 |
US20050055495A1 (en) * | 2003-09-05 | 2005-03-10 | Nokia Corporation | Memory wear leveling |
CN101526927A (zh) * | 2008-03-07 | 2009-09-09 | 北京华虹集成电路设计有限责任公司 | Flash文件系统的数据处理方法及数据处理装置 |
CN101986305A (zh) * | 2010-11-01 | 2011-03-16 | 华为技术有限公司 | 一种文件系统的操作方法及一种通信装置 |
CN104572681A (zh) * | 2013-10-17 | 2015-04-29 | 北京同方微电子有限公司 | 一种基于注册表的智能卡文件管理系统及其管理方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110471626A (zh) * | 2019-08-15 | 2019-11-19 | 深圳融卡智能科技有限公司 | 应用于Java Card的Nor Flash管理层及方法 |
CN110471626B (zh) * | 2019-08-15 | 2023-04-25 | 无锡融卡科技有限公司 | 应用于Java Card的Nor Flash管理层及方法 |
CN112068769A (zh) * | 2020-07-28 | 2020-12-11 | 深圳市宏旺微电子有限公司 | 闪存设备双向链表管理方法和闪存存储设备 |
CN112068769B (zh) * | 2020-07-28 | 2023-11-14 | 深圳市宏旺微电子有限公司 | 闪存设备双向链表管理方法和闪存存储设备 |
CN112579004A (zh) * | 2020-12-17 | 2021-03-30 | 杭州艾芯智能科技有限公司 | 快速删除flash数据的方法、系统、计算机设备及存储介质 |
CN113282521A (zh) * | 2021-05-19 | 2021-08-20 | 武汉天喻信息产业股份有限公司 | 一种智能卡寿命延长方法及装置 |
CN114265562A (zh) * | 2021-12-27 | 2022-04-01 | 北京国腾创新科技有限公司 | 一种基于flash存储器的文件存储方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109656481A (zh) | 一种提高智能卡文件系统flash写入寿命的方法 | |
US11243911B2 (en) | Method and apparatus for fault-tolerant memory management | |
US9817588B2 (en) | Memory device and operating method of same | |
EP1782176B1 (en) | Systems, methods, computer readable medium and apparatus for memory management using nvram | |
CN103838853B (zh) | 一种基于不同存储介质的混合文件系统 | |
CN101241472B (zh) | 映射管理方法及系统 | |
CN107066393A (zh) | 提高地址映射表中映射信息密度的方法 | |
CN101263462B (zh) | 具有区块管理的非易失性存储器 | |
CN101571869B (zh) | 一种智能卡的文件存储、读取方法及装置 | |
CN106844583B (zh) | 一种在NOR Flash上建立FAT文件系统的优化方法 | |
CN104166634A (zh) | 一种固态盘系统中的映射表缓存管理方法 | |
US10936203B2 (en) | Memory storage device and system employing nonvolatile read/write buffers | |
CN106951376A (zh) | 面向闪存的细粒度非易失缓存系统以及缓存管理方法 | |
CN106354658B (zh) | 一种降低混合映射算法中映射表内存资源占用的方法 | |
CN108604165A (zh) | 存储装置 | |
CN108319433A (zh) | 小内存单片机的NOR Flash的存储管理方法 | |
CN101019098A (zh) | 格式化非易失性半导体存储器的文件存储装置、主机设备、方法,以及在非易失性半导体存储器中写数据的方法 | |
CN110968269A (zh) | 基于scm与ssd的键值存储系统及读写请求处理方法 | |
CN105608016B (zh) | Dram与mram结合的固态硬盘及使用mram的存储卡 | |
CN100533443C (zh) | 利用文件分配表进行磁盘数据簇链接及寻道的方法 | |
CN103294607A (zh) | 一种存储管理方法 | |
CN105183392A (zh) | 一种定长数据在flash的存储方法 | |
CN102981975B (zh) | 闪存数据的管理方法和系统 | |
CN100543748C (zh) | 一种利用文件分配表进行文件寻道的方法及系统 | |
CN109388616A (zh) | 一种智能卡文件系统的管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190419 |
|
RJ01 | Rejection of invention patent application after publication |