一种Native存储卡及其管理方法_2

文档序号:9708011阅读:来源:国知局
2]下面结合本申请附图进一步说明本申请具体实现。
[0053]参见图l,Native存储卡由三个区域组成,分别是管理区1,地址区2,以及数据区3。其中各个区域的具体组成如下:
[0054]管理区1,位于存储卡头部,存储用于管理数据区3所需的文件,包括但不限于例如主文件(master file)和专用文件(dedicated file),其中每一个Native卡里只有一个主文件,其他文件都是它的子孙,主文件只有文件头,里面存放着整个智能卡的控制和管理信息;专用文件也只有一个文件头,存放整理目录的管理控制信息,专用文件相当于一个目录的根。管理区里存储的文件除了用于管理数据区3之外,还可用于检索数据区3。
[0055]地址区2,存储空闲页起始地址文件,该空闲页起始地址文件中用于存储数据区3中的空闲页的起始地址。
[0056]数据区3,存储各种数据页,其构造如图2所示,该数据区3由多个空闲页201和文件页202组成,其中空闲页201是未被使用的空闲存储页面,文件页202是被使用的存储页面,里边存放了各种数据。
[0057]空闲页201的构造如图3所例示,由空闲页信息301和空闲页内容302组成。空闲页信息301中存储与该空闲页相关的链接信息和长度信息,空闲页内容30 2为该空闲页的空闲存储空间。其中空闲页起始6个字节为空闲页信息301,包括地址指针3011和长度信息3012;其中前三个字节为地址指针3011,记录下一个空闲页的起始地址,如果该空闲页已经是最后一个空闲页,其后没有空闲页,则地址指针3011为空,S卩在前三个字节中写入0;后三个字节为长度信息3012,其中存储该空闲页的长度。但是本领域技术人员所公知的是,此处的6个字节的长度只是用以示意空闲页的结构,空闲页可使用任意长度记录空闲页信息。
[0058]文件页202的构造如图4所示,由文件页信息401和文件页内容402组成。文件页信息401中存储与该文件页相关的链接信息和长度信息,文件页内容402为该文件页存储的数据信息。其中文件页起始6个字节为文件页信息401,包括文件页地址指针4011和文件页长度信息4012;其中文件页地址指针为3个字节长度,其中记录下一个文件页的地址;文件页长度信息4012也为3个字节,其中第一和第二字节用于记录该文件体中所存储的数据文件的长度,第三字节预留。但是本领域技术人员所公知的是,此处的6个字节的长度只是用以示意文件页的结构,文件页可使用任意长度记录文件页信息,只需和空闲页信息长度相等即可。
[0059]以上结合图1-4介绍了Native存储卡的存储结构,下面结合附图5介绍该Native卡的管理方法。
[0060]作为智能卡,Native卡在开始使用,即开卡时,要经过个人化过程,即在Native卡中写入各种个人化参数,将例如PIN1、PIN2、PUK1、PUK2、ADM1、ICCID、頂S1、Ki等参数通过若干条指令,顺次写入卡内,本申请对Native卡个人化方法进行改进,从而优化Native存储卡的管理方法。参见图5,本Nat ive存储卡的个人化方法包括:
[0061 ] 步骤S1、向Nat ive卡写入各种个人化参数;
[0062]顺次向Native卡的数据区3中写入各种个人化参数,这些参数包括但不限于PIN1、PIN2、PUKl、PUK2、ADMl、ICCIDJMS1、Ki#。
[0063 ] 步骤S2、向地址区2写入空闲页起始地址文件;
[0064]在判断出Native卡个人化阶段结束之后,记录Native卡中空闲页的起始地址,即数据区3中第一块空闲页的地址,将该空闲页起始地址写入存储在地址区2中的空闲页起始地址文件。
[0065]步骤S3、向空闲页中写入空闲页信息。
[0066]由于步骤S1中是顺次向Native卡的数据区3中写入各种个人化参数,因此,数据区3此时只包括一个空闲页,即将剩余的存储空间作为一个空闲页处理,此时,由于没有其它空闲页,即该空闲页的下一个空闲页地址为空,因此,在空闲页信息301中的地址指针3011为全0;长度信息3012中记录该空闲页的长度。
[0067]第一实施例
[0068]经过图5,实现了对Native存储卡的个人化管理,下面结合图6,介绍如何进一步实现对该Nat ive卡的动态管理。
[0069]该Native存储卡的动态管理方法包括:
[0070]步骤T1、接收到改变存储器空间的指令;
[0071]步骤T2、判断指令类型,如果是分配存储空间的指令,则执行步骤T3;如果是释放存储空间的指令,则执行步骤T4;
[0072]步骤T3、读Native存储卡地址区的空闲页起始地址文件,将Native存储卡数据区中合适的空闲页分配给文件,并跳转到步骤T5;
[0073]该步骤还包括如下子步骤:
[0074]步骤T31、读地址区2的空闲页起始地址文件,获得数据区3的空闲页的起始地址;
[0075]步骤T32、从该空闲页起始地址出发,将请求分配的长度和所有空闲页的长度相比较,选择长度最相近的一个空闲页,或相邻的总长度与该请求分配的长度最相近的多个空闲页分配给文件。
[0076]其中相邻的空闲页是指多个空闲页,例如空闲页1、空闲页2……空闲页n,其中空闲页1中的地址指针指向空闲页2,空闲页2的地址指针指向空闲页3,依次类推,直至空闲页n,其中η是大于1的整数。
[0077]该步骤可通过将请求分配的长度和空闲页信息301中的长度信息3012中记录的本空闲页的长度相比较实现;或者通过将请求分配的长度和多个相邻空闲页信息中的长度信息中记录的本空闲页的长度的总和相比较实现。
[0078]步骤Τ33、根据分配情况,改变存储器中的空闲页起始地址和/或相应空闲页信息。
[0079]包括,如果将具有空闲页起始地址的空闲页,记为起始空闲页,分配给文件,则修改地址区2中的空闲页起始地址文件,将分配后的数据区3中的空闲页起始地址存入空闲页起始地址文件中。
[0080]如果是将一个非起始空闲页,记为非起始空闲页1,分配给文件,则将地址指针3011指向该非起始空闲页1的空闲页的地址指针修改为非起始空闲页1的地址指针。
[0081]如果是将多个相邻的空闲页,记为空闲页1、空闲页2……空闲页η,分配给文件,则将地址指针指向空闲页1的空闲页的地址指针修改为空闲页η的地址指针。
[0082]步骤Τ34、向空闲页中写入数据,并修改文件页信息。
[0083]向空闲页中写入文件的数据信息之后,空闲页变成了文件页,则向文件页中写入文件页地址信息和文件页长度信息,其中文件页地址指针指向下一个文件页的地址;文件页长度信息用于记录该文件体中所存储的数据文件的长度,并预留一个字节。
[0084]步骤Τ4、释放文件,根据新产生的空闲文件的位置更新Native存储卡;
[0085]包括如下子步骤:
[0086]步骤T41、填写新产生的空闲文件的空闲页信息,在链接信息中记录下一个空闲文件的起始地址,在长度信息中记录本块空闲文件的长度;
[0087]步骤T42、如果新产生的空闲文件在所有空闲文件的前面,则更新空闲页起始地址文件,将空闲页起始地址文件中存储的空闲页的起始地址变更为新产生的空闲页的地址;否则更新前一个空闲文件的链接信息,在其中记录新空闲文件的起始地址;
[0088]步骤T43、判断新产生的空闲文件是否有相邻的空闲文件,如果有则将这些空闲文件合并在一起;
[0089]相邻的空闲文件是指两个空闲文件之间没有间隔文件页。
[0090]步骤T5、判断是否已成功执行改变存储器空间的指令;如果是则结束该方法;如果否则给出提示信息。
[0091]提示信息可以是例如:申请存储器空间失败等。
[0092]第二实施例
[0093]以上结合图6介绍了本申请的第一实施例,下面介绍本申请的第二实施例。
[0094]第二实施例中考虑了使用上述存储器管理方法会产生的一类特殊空闲文件,即小于空闲页信息长度的小空闲文件。由于空闲文件的结构,如图3所示,空闲页由空闲页信息301和空闲页内容302组成,其中空闲页信息占用一定长度以记录下一个空闲页的起始地址和该空闲页的长度,如果一个空闲区域小于空闲页信息所占用的长度,事实上是无法构成空闲文件的,这是由于其无法形成空闲页信息,因此将这类无法构成空闲文件的空闲区域称为小空闲文件。对于这类小空闲文件,本申请的实施例2的存储卡管理方法在分配存储空间时,如果出现小
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1