欢迎您访问郑州兴邦电子股份有限公司官方网站!
阿里巴巴诚信通企业
全国咨询热线:40000-63966
兴邦电子,中国水控机第一品牌

联系兴邦电子

全国咨询热线:40000-63966

售后:0371-55132951/55132952

工厂:河南省 郑州市 高新区莲花街电子电器产业园

3G智能卡文件系统的研究与设计

文章出处:http://www.singbon.com 作者: 人气: 发表时间:2012年04月08日

[文章内容简介]:对基于Flash的3G智能卡文件系统的研究与设计,引用了数据库日志技术和掉电保护机制,保证了智能卡文件系统可靠性,数据的一致性和完整性;按字节静态分配存储空间、合理有效地回收与重用碎片空间,提高了存储空间的利用率;平均磨损和页面映射技术的使用延长了Flash的使用寿命;有效的存储设计提高了数据检索的速度,从而提高了智能卡的整体性能。

    摘要:对基于Flash的3G智能卡文件系统的研究与设计,引用了数据库日志技术和掉电保护机制,保证了智能卡文件系统可靠性,数据的一致性和完整性;按字节静态分配存储空间、合理有效地回收与重用碎片空间,提高了存储空间的利用率;平均磨损和页面映射技术的使用延长了Flash的使用寿命;有效的存储设计提高了数据检索的速度,从而提高了智能卡的整体性能。测试证实了该文件系统设计适合3G EVDO卡。

    0 引言

    随着3G时代的到来,移动电子商务的发展,手机不再仅仅局限于语音和短信功能,基于卡上的应用显得越来越突出。对于智能卡COS而言,文件系统是核心模块。目前已经有很多成熟的文件系统,如FAT、UN IX、FTL、NFTL等,这些文件系统是基于大容量磁盘存储而设计[ 1 ]的,对于智能卡开发有一些性能限制: 1)智能卡系统的应用条件远比大型机恶劣,电源电压的不稳定以及突发性断电将对存储器造成严重的影响; 2)通用文件系统大量使用缓存技术,在运行中要耗费较多的系统资源; 3)智能卡文件系统数据多数是应用数据,这些数据安全性要求较高。

    目前, Flash存储器已经成为一种非常重要的非易失存储介质,主要有NOR Flash和NAND Flash,在嵌入式移动平台得到广泛的应用,当前基于Flash设计的文件系统有JFFS2、YAFFS、CFFS等[ 1 ] ,但这些都是为NAND Flash而设计的,这些文件系统的研究主要放在NAND Flash的存储特性上,研究领域也主要集中文件系统快速初始化、页面分配、垃圾回收、日志管理、系统崩溃恢复技术等方面,而很少考虑文件系统本身的特性;并且在运行过程中要保存大量的节点信息,要消耗大量的内存,最重要的是这些文件系统是为NAND Flash而设计的,且都是基于数据块的数据存储,而没有考虑小容量芯片,如NOR Flash。在当前智能卡开发中,综合多方面的因素, Flash容量是有限制的,现在大部分使用的是NOR Flash,其页面大小是512 Byte,本文就是基于NOR Flash进行文件系统的设计与研究。随着3G EVDO卡业务多样化及3G技术的发展,构造一个好的文件系统对智能卡至关重要。通过灵活的文件系统设计,达到更高效的数据检索速度、更优化的空间利用及可靠的数据保证,来有效发挥智能卡的潜能,为构建完善的3G EVDO应用系统提供强有力的支持。

    1 智能卡文件系统的概述

    3G EVDO COS[ 2 ]系统是智能卡的灵魂,要求具有良好的可维护性、可扩展性和高安全性,其智能卡系统结构模型如图1。其中文件管理模块是智能卡操作系统的核心模块,它负责组织、管理、维护智能卡内存储的所有数据,它是一个承上启下的模块,对底层来说实现存储空间的管理维护,对上层完全透明地实现了数据的管理功能。文件系统的设计和实现既是COS中最灵活、最有个性的部分也是对系统整体结构影响最大的部分,它的设计与实现直接关系到智能卡的整体性能。智能卡文件系统的结构[ 3 - 4 ]由主文件MF、专用文件DF、数据文件EF组成,其中MF是智能卡的整个入口,DF是一类数据或者一个应用在卡内的映射, EF文件是智能卡中应用数据的最终载体。智能卡文件系统设计要达到以下目标:保证COS的可靠性、稳定性、安全性;保证数据的完整性、一致性;保证智能卡的时间、空间效率;保证智能卡的使用寿命;保证智能卡碎片空间的回收与重用。

图1 3G COS系统结构模型图 

图1 3G COS系统结构模型图

    2 存储空间的分配与相关数据结构的设计

    为了有效合理地使用智能卡有限的存储空间,采用了静态的存储管理方式,在存储空间的分配上按字节来分配,而不是按块分配。智能卡文件系统采用的是一种连续分配的存储结构[ 5 ] ,文件中的数据都存放在连续的物理空间中,以减少查找文件、读取、更新文件数据的所花的时间,在智能卡的生命周期内,写入或读出数据文件的数据量只能小于或等于所有规定的文件大小。主文件MF在智能卡初始化首先创建,其存储空间为整个数据域的空间。DF的存储空间也是连续分配的,文件的创建、删除操作都是在DF的存储空间内进行的,DF不能使用自身存储空间以外的存储空间。为了方便与快速地查找,在这引用了目录项,目录项就是把文件句柄部分属性进行分离,目录项数据结构如下描述所示:

 

    status值的定义如下所示: F8H表示目录文件; F0H表示基本数据文件; F2表示为无效文件; FFH表示空闲目录项。文件句柄是用于描述文件和控制文件的数据结构,各文件数据结构如图2,其中file Id表示文件标识名; availSize表示目录下可用空间大小; fileSize表示文件大小; fileDes表示文件类型; noOfDF表示当前目录下直接DF数目; noOfEF表示当前目录下直接EF 数目; accessCondiction 表示安全访问规则;recordLength表示记录长度; firstRecordNum 表示指向环形文件第一条记录的记录号; lifeCycstatus表示文件的生命周期;另外文件特征、PUK、CHV、ADM及后三者的数目存储在Flash特定的位置,以方便对文件的鉴权等操作。

 

    创建文件分配存储空间时,是从当前目录下可用的存储空间的起始地址开始分配的,而不理会当前目录下无效文件碎片空间,直到当前目录下无可用空间或可用空间不够时,系统才去回收无效文件的碎片空间。在当前目录文件的句柄中有一个控制参数:当前目录下可用存储空间,它是指在当前目录下创建文件时可用的连续存储空间,来决定是否满足创建文件时所申请的空间大小,根据此参数与当前目录文件存储空间大小及首地址,可计算出当前创建文件时的起始地址,每创建一个文件后,该参数减去所创建文件分配空间,即为当前目录下可用空间的大小。文件系统的数据结构采用静态树型目录结构,静态存储管理时文件存储的数据结构如图3所示。

 

图3 静态存储数据结构

    3 文件系统相关机制设计

    3. 1 碎片空间回收机制

    由于所有的应用都可以进行删除与创建,所以这就要求文件系统能够动态地对多应用文件进删除、创建等操作。考虑到文件的动态删除可能会造成卡内一些空间碎片,所以在文件系统上增加了碎片空间的回收机制,该机制主要针对卡内由于删除文件操作产生的碎片空间。空间回收机制是在创建文件且发生空间不足时被调用的,是为了有效与合理地使用存储空间。

    回收机制的实质是对空间碎片的整理与再利用的过程,要注重无效文件节点的合并,系统在不断地进行分配和回收过程中,大的空闲区逐渐分割成小的占用区,为了更有效地利用存储空间,需将相邻关系的碎片空间进行合并。在回收过程中,主要的任务是查找删除文件留下的碎片空间,具体算法如下所示:

    1)查找碎片:从当前目录开始,顺序遍历其目录项,将一个有效文件作为起始,下一个相邻的有效文件作为终止,如果前一个文件的大小小于两文件的间隔,证明两文件间存在碎片。
    2)计算碎片大小,将两文件的间隔大小减去前一个文件的空间的大小,则得到碎片空间大小。
    3)如果碎片空间太小,则转向1继续查找。
    4)遍历碎片中无效文件,备份碎片起始地址。
    5)回到碎片的起始地址。

    3. 2 坏损页面的管理

    对于NOR Flash,一般情况下擦写次数是十万次,在使用过程中,数据区某些页面可能由于物理原因或者经常操作,可能出现某些页面坏损的情况,这有可能导致整个Flash芯片不能正常工作。为了延长Flash的使用寿命,对于坏损页面必须进行有效地管理,在这采用页面映射技术[ 1 ] ,也就是将坏损页面逻辑页面号映射到的好的页面上去。通过写校验来检查当前页面是否坏损,如果坏损,就将坏损页面号和映射页面号添加到坏损页面映射管理表中,映射页面号取值应为数据区可用页面最大页面号。在读写操作中,如果读写物理地址所在页面是坏损页面,那么就需对坏损页面进行映射处理,其处理流程如下所述:

    1)根据读写操作的逻辑地址,来确定数据区物理地址,从而来确定当前数据区页面号。
    2)根据页面号来遍历坏损页面映射表,如果此页面号在坏损页面映射表中存在,那么就进行地址映射, 修改读写地址。

    为了提高读写的速度,对读写数据长度进行比较处理,判断所处理的地址涉及的页面情况:一是所有处理的数据在一个页面;二是所有处理的数据在两个页面。这样在读写操作中最多核查坏损页面映射表两次,没必要在读写操作时,频繁判断读写地址所在页面情况,可大大提高读写的速度。

    3. 3 平均磨损技术

    平均磨损就是使有寿命期限的Flash的各个部分同时到达寿命期限,平均磨损技术的主旨是在空间的使用上能够均匀的使用Flash每个页面,保证某些页面不至于先于其他页面达到磨损界限,平均磨损技术的引入提高了Flash 的使用寿命期限。平均磨损技术以碎片空间回收技术、存储空间分配方式和页面映射为基础,来使Flash损耗达到平衡。在删除文件时,它的物理内存空间并没有立即释放,即将当前目录下该文件的目录项状态置为无效文件标志位,表明处于逻辑删除状态,所有被删除文件并没有在物理空间被清空,只改变文件的状态。在分配空间时,并不是从当前目录起始地址开始搜索空闲空间,而是从当前目录下寻找可用空间,这样可以最大限度地保证均衡使用每个页面。

    由于NOR Flash擦写次数是有限的,对于特定的应用数据区,若经常擦写,可能导致Flash局部区域过早老化,为了延长Flash的使用寿命,对特定应用文件的页面进行页面映射,在管理上与坏损页面块映射一致,不过在这对特定应用文件的页面加入一个特定的计数器,如果计数器达到特定的峰值时,就需对这些特定应用的页面进行页面映射。在整个3GEVDO卡中,读要比写操作频繁,而且少数特定文件存在经常擦写的现象,如号薄文件、短信息文件等,对于这些特殊文件可以特殊处理,没必要对整个数据区文件进行处理,这样全面考虑能提高智能卡整体性能。

    3. 4 掉电保护机制

    在数据的一次写过程中,由于Flash物理特性,需要先擦除要改写的地址空间所在的页面,每次擦除的物理页面大小为512 Byte,所以要将这整个页面备份,防止在改写过程中出现突然掉电,导致数据丢失的情况发生。在这采用旧数据备份[ 4 ]的方式,数据在当前页面得到全部更新以后才认为更新成功,否则自动恢复到原始状态。备份区是个经常擦写的地方,为了保证备份区的有效性,这配置了多个安全备份区,以达到循环使用,均衡擦写。改写Flash有两种情况,如图4所示(图中斜线部分为改写的数据段) ,一种情况改写数据在一个Flash页面;另一种情况改写数据涉及了两个Flash页面。旧数据备份具体算法如下所示:

    1)将要改写数据段的Flash页面的所有数据备份到备份区中。
    2)数据备份完成后,将备份标志位置为有效,并将有效的标志位和改写的地址保存到标志区。
    3)数据开始更新,依次将数据写入目标地址。
    4)备份标志位复位,表示改写成功,并将复位的标志写入到标志区。

    安全写恢复流程算法:查看Flash备份标志位是否有效,如果无效表示不需要进行数据安全写恢复操作,结束流程;如果有效,表示要进行数据安全写的恢复操作,步骤如下所示:

    1)读取备份的数据,根据备份的地址,对数据进行恢复操作。
    2)所有的数据恢复成功之后,将备份标志位复位,将复位的标志位写入标志区。

 

第1页第2页

本文关键词:3G,智能卡系统,COS,智能卡
回到顶部