CN112612753A - 一种动态管理Java Card存储空间的系统和方法 - Google Patents
一种动态管理Java Card存储空间的系统和方法 Download PDFInfo
- Publication number
- CN112612753A CN112612753A CN202011593388.2A CN202011593388A CN112612753A CN 112612753 A CN112612753 A CN 112612753A CN 202011593388 A CN202011593388 A CN 202011593388A CN 112612753 A CN112612753 A CN 112612753A
- Authority
- CN
- China
- Prior art keywords
- data
- empty
- data body
- current
- head
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1724—Details of de-fragmentation performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种动态管理Java Card存储空间的系统和方法,所述系统包括数据体区域、数据头区域、数据索引、数据创建模块、数据查找模块、数据删除模块和数据调整模块,其中数据头区域的每个数据头对应着一个数据体区域的一个数据体。本发明提供的系统,由于在删除数据和调整数据大小的时候,将当前数据体和其前后的空数据体合并,从而将非连续的存储空间合并成为连续的存储空间,减少了存储空间碎片;同时,在查找数据时通过数据索引获取数据类型和对应的数据头序号,能够快速定位到数据头,再通过数据头中保存的数据地址可快速定位到数据本身,使得查找数据的速度更快。
Description
技术领域
本发明涉及智能卡技术领域,具体涉及一种动态管理Java Card存储空间的系统和方法。
背景技术
Java Card(Java卡)是目前智能卡上普遍采用的技术,基于标准的JCVM(JavaCard Virtual Machine,Java卡虚拟机)执行,能做到与硬件系统分离,所以Java CardApplet(运行在Java卡上的小应用程序)具有很高的可移植性和可重用性。
根据Java Card技术规范,Java Card Applet在运行过程中需要对不定大小的各种数据进行管理,如创建数据、删除数据、扩展数据、缩小数据、读和写数据等。受UICC(Universal Integrated Circuit Card,通用集成电路卡)的硬件体积影响,其提供的Flash存储器和RAM(Random Access Memory,随机存取存储器)的存储空间都比较小,其中Flash存储器的存储空间最大仅为1MB。通常UICC会提供整片的Flash存储空间,Java Card运行时对不同类型数据进行管理,会产生大量的空间碎片,致使Java Card的存储空间缩小,如何有效地对这片空间进行动态管理以减少空间碎片,是一个普遍的难题。
发明内容
本申请提供一种动态管理Java Card存储空间的系统和方法,旨在对Java Card存储空间进行动态管理,以减少存储空间碎片。
根据第一方面,一种实施例中提供一种动态管理Java Card存储空间的系统,包括:
数据体区域,包括多个数据体,所述数据体用于存储数据,所述数据分为预定数目的类型;
数据头区域,所述数据头区域被划分为与所述数据类型相对应的子区域,每个子区域包括固定数量的数据头,每个数据头对应一个数据体,数据头包括序号、有效性标识、所对应的数据体的地址,所述有效性标识包括有效值和无效值;
数据索引,用于指示数据类型和数据头序号;
数据创建模块,用于当创建数据时,在相应数据类型的数据头子区域中寻找一有效性标识为无效值的数据头,将其有效性标识修改为有效值,然后在数据体区域中寻找一空间大于或等于期望空间值的空数据体,将数据存入该空数据体中,并将其地址写入先前找到的数据头中,空数据体是指没有存储数据的数据体;
数据查找模块,用于当查找数据时,根据所述数据索引所指示的数据类型和数据头序号查找数据头,再根据所查找到的数据头获得所对应的数据体的地址,根据所述数据体的地址访问数据;
数据删除模块,用于当删除当前数据体的数据时,将当前数据体对应的数据头的有效性标识修改为无效值,并判断当前数据体的前后是否存在空数据体,当存在空数据体时则将当前数据体与空数据体合并成为一个新的空数据体,否则将当前数据体单独作为一个新的空数据体;
数据调整模块,用于当扩展当前数据体的数据时,判断当前数据体的前后是否存在空数据体,当存在空数据体时,则计算当前数据体和空数据体的总空间是否满足期望空间值,若满足期望空间值则将当前数据体和空数据体合并成为一个新的数据体,用于存储扩展后的数据,并将新数据体的地址写入对应的数据头中;当当前数据体的前后不存在空数据体或者当前数据体和空数据体的总空间不满足期望空间值时,则通过所述数据创建模块存储扩展后的数据,并将当前数据体的数据删除。
一种实施例中,所述数据查找模块在查找数据头时,首先定位到所述数据索引所指示的数据类型所对应的数据头子区域,然后根据所述数据索引所指示的数据头序号确定数据头在该数据头子区域中的地址,从而查找到数据头,其中数据头在该数据头子区域中的地址的确定方式为:数据头序号×该类型数据头的长度。
一种实施例中,所述数据体采用TLV编码,所述数据创建模块用于当创建数据时,在相应数据类型的数据头子区域中寻找一有效性标识为无效值的数据头,将其有效性标识修改为有效值,然后在数据体区域中寻找一空间大于或等于期望空间值的空数据体,将数据存入该空数据体中,并将其地址写入先前找到的数据头中;同时,若找到的空数据体的空间等于期望空间值,则将其Tag字段修改为有效标识,若找到的空数据体的空间大于期望空间值,则将其Tag字段修改为有效标识后,将剩余空间作为一个Tag字段为无效标识的空数据体;
所述数据删除模块用于当删除当前数据体的数据时,将当前数据体对应的数据头的有效性标识修改为无效值,并判断当前数据体的前后是否存在空数据体,当存在空数据体时则将当前数据体与空数据体合并成为一个新的空数据体,计算该新的空数据体的长度并写入Length字段中,并将Tag字段修改为无效标识,否则将当前数据体单独作为一个新的空数据体,将Tag字段修改为无效标识;
所述数据调整模块用于当扩展当前数据体的数据时,判断当前数据体的前后是否存在空数据体,当存在空数据体时,则计算当前数据体和空数据体的总空间是否满足期望空间值,若满足期望空间值则将当前数据体和空数据体合并成为一个新的数据体,用于存储扩展后的数据,并将新数据体的地址写入对应的数据头中,同时计算该新的数据体的长度并写入Length字段中,并将Tag字段和Length字段写到该新的数据体的最前端,若有剩余空间则将剩余空间作为一个Tag字段为无效标识的空数据体;当当前数据体的前后不存在空数据体或者当前数据体和空数据体的总空间不满足期望空间值时,则通过所述数据创建模块存储扩展后的数据,并将当前数据体的数据删除。
一种实施例中,所述数据调整模块还用于当缩小当前数据体的数据时,计算缩小后的数据长度并写入Length字段中,并将剩余空间作为一个Tag字段为无效标识的空数据体。
一种实施例中,所述动态管理Java Card存储空间的系统还包括数据读写模块,用于对数据进行读写时,通过所述数据查找模块访问所要读写的数据,并进行读写操作。
一种实施例中,所述数据头还包括数据属性。
一种实施例中,数据分为Object、Package、App和File四种类型。
根据第二方面,一种实施例中提供一种基于上述第一方面所述的系统的动态管理Java Card存储空间的方法,包括:
数据创建操作,所述数据创建操作包括:在相应数据类型的数据头子区域中寻找一有效性标识为无效值的数据头,将其有效性标识修改为有效值,然后在数据体区域中寻找一空间大于或等于期望空间值的空数据体,将数据存入该空数据体中,并将其地址写入先前找到的数据头中;
数据查找操作,所述数据查找操作包括:根据所述数据索引所指示的数据类型和数据头序号查找数据头,再根据所查找到的数据头获得所对应的数据体的地址,根据所述数据体的地址访问数据;
数据删除操作,所述数据删除操作包括:将当前数据体对应的数据头的有效性标识修改为无效值,并判断当前数据体的前后是否存在空数据体,当存在空数据体时则将当前数据体与空数据体合并成为一个新的空数据体,否则将当前数据体单独作为一个新的空数据体;
数据调整操作,所述数据调整操作包括:判断当前数据体的前后是否存在空数据体,当存在空数据体时,则计算当前数据体和空数据体的总空间是否满足期望空间值,若满足期望空间值则将当前数据体和空数据体合并成为一个新的数据体,用于存储扩展后的数据,并将新数据体的地址写入对应的数据头中;当当前数据体的前后不存在空数据体或者当前数据体和空数据体的总空间不满足期望空间值时,则通过所述数据创建模块存储扩展后的数据,并将当前数据体的数据删除。
根据第三方面,一种实施例中提供一种动态管理Java Card存储空间的系统,包括:
数据体区域,包括多个数据体,所述数据体用于存储数据,所述数据分为预定数目的类型,不同的数据类型具有不同的序号;
数据头区域,所述数据头区域被划分为与所述数据类型相对应的子区域,每个子区域包括固定数量的数据头,每个数据头对应一个数据体,数据头包括序号、有效性标识、数据类型、所对应的数据体的地址,所述有效性标识包括有效值和无效值;
数据索引,用于指示数据类型序号和数据头序号;
数据创建模块,用于当创建数据时,在相应数据类型的数据头子区域中寻找一有效性标识为无效值的数据头,将其有效性标识修改为有效值,然后在数据体区域中寻找一空间大于或等于期望空间值的空数据体,将数据存入该空数据体中,并将其地址写入先前找到的数据头中,空数据体是指没有存储数据的数据体;
数据查找模块,用于当查找数据时,根据所述数据索引所指示的数据类型序号和数据头序号查找数据头,再根据所查找到的数据头获得所对应的数据体的地址,根据所述数据体的地址访问数据;
数据删除模块,用于当删除当前数据体的数据时,将当前数据体对应的数据头的有效性标识修改为无效值,并判断当前数据体的前后是否存在空数据体,当存在空数据体时则将当前数据体与空数据体合并成为一个新的空数据体,否则将当前数据体单独作为一个新的空数据体;
数据调整模块,用于当扩展当前数据体的数据时,判断当前数据体的前后是否存在空数据体,当存在空数据体时,则计算当前数据体和空数据体的总空间是否满足期望空间值,若满足期望空间值则将当前数据体和空数据体合并成为一个新的数据体,用于存储扩展后的数据,并将新数据体的地址写入对应的数据头中;当当前数据体的前后不存在空数据体或者当前数据体和空数据体的总空间不满足期望空间值时,则通过所述数据创建模块存储扩展后的数据,并将当前数据体的数据删除。
根据第四方面,一种实施例中提供一种基于上述第三方面所述的系统的动态管理Java Card存储空间的方法,包括:
数据创建操作,所述数据创建操作包括:在相应数据类型的数据头子区域中寻找一有效性标识为无效值的数据头,将其有效性标识修改为有效值,然后在数据体区域中寻找一空间大于或等于期望空间值的空数据体,将数据存入该空数据体中,并将其地址写入先前找到的数据头中;
数据查找操作,所述数据查找操作包括:根据所述数据索引所指示的数据类型序号和数据头序号查找数据头,再根据所查找到的数据头获得所对应的数据体的地址,根据所述数据体的地址访问数据;
数据删除操作,所述数据删除操作包括:将当前数据体对应的数据头的有效性标识修改为无效值,并判断当前数据体的前后是否存在空数据体,当存在空数据体时则将当前数据体与空数据体合并成为一个新的空数据体,否则将当前数据体单独作为一个新的空数据体;
数据调整操作,所述数据调整操作包括:判断当前数据体的前后是否存在空数据体,当存在空数据体时,则计算当前数据体和空数据体的总空间是否满足期望空间值,若满足期望空间值则将当前数据体和空数据体合并成为一个新的数据体,用于存储扩展后的数据,并将新数据体的地址写入对应的数据头中;当当前数据体的前后不存在空数据体或者当前数据体和空数据体的总空间不满足期望空间值时,则通过所述数据创建模块存储扩展后的数据,并将当前数据体的数据删除。
依据上述实施例的动态管理Java Card存储空间的系统和方法,由于在删除数据和调整数据大小的时候,将当前数据体和其前后的空数据体合并,从而将非连续的存储空间合并成为连续的存储空间,减少了存储空间碎片;同时引入数据头,在查找数据时通过数据索引获取数据类型和对应的数据头序号,能够快速定位到数据头,再通过数据头中保存的数据地址可快速定位到数据本身,使得查找数据的速度更快。
附图说明
图1为现有技术中Java Card存储空间中数据索引区的结构示意图;
图2为现有技术中Java Card存储空间中的数据块示意图;
图3为一种实施例的动态管理Java Card存储空间的系统结构图;
图4为一种实施例中数据头和数据体的示意图;
图5为另一种实施例的动态管理Java Card存储空间的系统结构图;
图6为一种实施例的数据创建操作的流程示意图;
图7为一种实施例的数据查找操作的流程示意图;
图8为一种实施例的数据删除操作的流程示意图;
图9为一种实施例的数据调整操作的流程示意图;
图10为另一种实施例的数据查找操作的流程示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
在介绍本发明之前,先对现有技术进行简单介绍。
现有的Java Card存储空间管理方案中,是通过数据索引Reference来查找数据,并分配一定的空间建立Reference位图,称为索引区,Reference位图用来指示Reference的使用情况,数据则通过TLV编码形成数据块集中存放在数据存储区域,称为数据区。
请参考图1,图1为索引区的示意图,索引区一般占用5120字节空间,共40960bit(比特),每个bit按顺序分别对应一个Reference,bit值为0代表该Reference未被使用,bit值为1代表该Reference已被使用,每个Reference对应一个数据块。请参考图2,图2为数据区的示意图,其中TLV编码包括Tag字段,Length字段和Value字段。Tag字段为数据标签,用于标识数据块是否有效,当数据块中存储有数据时即为有效,此时其Tag为对应的Reference值,当数据块中没有存储数据时即为无效,此时其Tag为一无效标识;Length字段和Value字段则分别用于标识数据长度和数值,这种方式能高效地对不定长数据进行编码。
创建数据时,首先在索引区查找第一个未使用(即bit值为0)的Reference,作为该数据的reference;然后在数据区中遍历查找大于或等于期望空间值的空数据块,若找到的空数据块大小等于期望空间值,则将Tag改写为先前找到的Reference值,将数据存入该空数据块中,若找到的空数据块大小大于期望空间,则将Tag改写为先前找到的Reference值,将数据存入该空数据块后,还将剩余空间作为一个Tag为无效标识的空数据块;最后将索引区中先前找到的Reference对应的bit值改为1,返回该数据的Reference给创建数据的应用或模块,后续可以使用Reference访问该数据。
查找数据时,根据数据的Reference在数据区中对数据块进行遍历,查找Tag与该Reference对应的数据块,然后返回该数据块的地址,以便根据地址访问数据。
读取和写入数据时,首先查找数据,得到数据地址,就可以使用该地址对数据进行访问,进而进行读写操作。
删除数据时,首先判断当前数据块前后是否存在空数据块,如果存在,则将当前数据块和空数据块合并成一个新的空数据块,将Tag改写为无效标识,并计算该新的空数据块的长度将其写入Length字段,否则将当前数据块单独作为一个新的空数据块,将Tag改为无效标识;最后将索引区中相应Reference对应的bit值改为0。
扩展数据时,首先判断当前数据块前后是否存在空数据块,如果存在,则计算空数据块和当前数据块的总空间是否满足期望空间值,若满足期望空间值,则将当前数据块和空数据块合并成一个新的数据块,用于存储扩展后的数据,同时将Tag字段和Length字段写到最前端,若有剩余空间则将剩余空间作为一个Tag字段为无效标识的空数据块;如果当前数据块前后不存在空数据块或当前数据块和空数据块的总空间不满足期望空间值,则通过创建数据的方式存储扩展后的数据,并删除当前数据块中的数据。
上述现有技术存在以下缺点:
第一,查找数据速度较慢,查找任何数据都需要遍历数据区。受限于UICC的硬件性能,在运行JCVM时,需要加快对数据的访问速度,否则呈现在用户端的可能是手机开机慢、刷卡支付慢等负面状况。
第二,获取数据关键信息比较慢,例如由于数据属性都是随数据一起存储在数据块中,当需要获取数据属性时如获取数据类型、大小和访问权限等,需要首先遍历数据区查找相应数据,之后再获得数据属性,这就导致获取数据属性的速度也比较慢。
为此,申请人提出了一种动态管理Java Card存储空间的系统和方法,以至少部分地克服现有技术的缺陷,下面进行具体说明。
请参考图3,本发明一种实施例的动态管理Java Card存储空间的系统包括数据体区域1、数据头区域2、数据索引3、数据创建模块4、数据查找模块5、数据删除模块6和数据调整模块7,下面具体说明。
数据体区域1包括多个数据体(英文名称为body),数据体用于存储数据,数据根据需求分为预定数目的类型,例如可以分为File、App、Object和Package四种类型。File是指UICC和(U)SIM((Universal)Subscriber identity module,身份认证模块)定义的文件结构,用于存储卡片序列号、电话簿和短信记录等相关信息。Object是指Java对象,是Java语言中用于表示并实现一个事物功能的概念,可以是任意大小和任意数据结构。Package是用Java编写并转换得到的程序包,包含了应用的字节码和Object声明,无法直接运行。App是Package经过实例化之后得到的可执行应用程序,根据Package中的程序代码逻辑管理自身和相关的Object数据。数据体可以根据实际需求采用不同的编码方式,例如TLV编码或者倒序TLV编码等。图4示出了数据分为File、App、Object和Package四种类型并且数据体采用TLV编码的情形。
数据头区域2被划分为与数据类型相对应的子区域,每个子区域包括固定数量的数据头(英文名称为head),每个数据头对应一个数据体,数据头包括序号、有效性标识、所对应的数据体的地址,其中序号用于指示数据头在其所在数据头子区域的位置,有效性标识包括有效值和无效值。例如,如图4所示,当数据分为File、App、Object和Package四种类型时,数据头区域被划分为4个子区域,分别对应File、App、Object和Package四种数据类型。其中ObjH是ObjectHead的缩写,是Object数据的数据头;PH是PackageHead的缩写,是Package数据的数据头;AppH是AppHead的缩写,是App数据的数据头;FileH是FileHead的缩写,是File数据的数据头。
数据索引3用于指示数据类型和数据头序号,Java Card的应用和模块可通过数据索引3来访问数据。
数据创建模块4用于当创建数据时,在相应数据类型的数据头子区域中寻找一有效性标识为无效值的数据头,将其有效性标识修改为有效值,然后在数据体区域中寻找一空间大于或等于期望空间值的空数据体,将数据存入该空数据体中,并将其地址写入先前找到的数据头中,最后根据数据的数据类型和数据头序号返回该数据的数据索引给创建数据的应用或模块,以便后续可以根据数据索引访问该数据。其中空数据体是指没有存储数据的数据体。
数据查找模块5用于当查找数据时,根据数据索引3所指示的数据类型和数据头序号查找数据头,再根据所查找到的数据头获得所对应的数据体的地址,根据数据体的地址访问数据。在一种具体的实施例中,可以先根据数据类型定位到对应的数据头子区域,然后根据数据头序号确定数据头在该数据头子区域中的地址,从而查找到数据头,其中数据头在该数据头子区域中的地址的确定方式为:数据头序号×该类型数据头的长度。由于根据数据索引3所指示的数据类型和数据头序号即可直接定位到数据头地址,同时根据数据头可以直接定位到数据体,从而无需对整个数据体区域进行遍历,减少了数据查找的时间。
数据删除模块6用于当删除当前数据体的数据时,将当前数据体对应的数据头的有效性标识修改为无效值,并判断当前数据体的前后是否存在空数据体,当存在空数据体时则将当前数据体与空数据体合并成为一个新的空数据体,否则将当前数据体单独作为一个新的空数据体。
数据调整模块7用于当扩展当前数据体的数据时,判断当前数据体的前后是否存在空数据体,当存在空数据体时,则计算当前数据体和空数据体的总空间是否满足期望空间值,若满足期望空间值则将当前数据体和空数据体合并成为一个新的数据体,用于存储扩展后的数据,并将新数据体的地址写入对应的数据头中;当当前数据体的前后不存在空数据体或者当前数据体和空数据体的总空间不满足期望空间值时,则通过数据创建模块4存储扩展后的数据,并将当前数据体的数据删除。
请参考图5,本发明一种实施例的动态管理Java Card存储空间的系统还包括数据读写模块8,数据读写模块8用于对数据进行读写时,通过数据查找模块5访问所要读写的数据,并进行读写操作。
下面以数据体采用TLV编码为例对数据创建模块4、数据删除模块6和数据调整模块7进行进一步说明。
创建数据时,数据创建模块4首先在相应数据类型的数据头子区域中寻找一有效性标识为无效值的数据头,将其有效性标识修改为有效值,然后在数据体区域中寻找一空间大于或等于期望空间值的空数据体,将数据存入该空数据体中,并将其地址写入先前找到的数据头中;同时,若找到的空数据体的空间等于期望空间值,则将其Tag字段修改为有效标识,若找到的空数据体的空间大于期望空间值,则将其Tag字段修改为有效标识后,将剩余空间作为一个Tag字段为无效标识的空数据体。
删除数据时,数据删除模块6将当前数据体对应的数据头的有效性标识修改为无效值,并判断当前数据体的前后是否存在空数据体,当存在空数据体时则将当前数据体与空数据体合并成为一个新的空数据体,计算该新的空数据体的长度并写入Length字段中,并将Tag字段修改为无效标识,否则将当前数据体单独作为一个新的空数据体,将Tag字段修改为无效标识。
调整数据大小时,当扩展当前数据体的数据时,数据调整模块7首先判断当前数据体的前后是否存在空数据体,当存在空数据体时,则计算当前数据体和空数据体的总空间是否满足期望空间值,若满足期望空间值则将当前数据体和空数据体合并成为一个新的数据体,用于存储扩展后的数据,并将新数据体的地址写入对应的数据头中,同时计算该新的数据体的长度并写入Length字段中,并将Tag字段和Length字段写到该新的数据体的最前端,若有剩余空间则将剩余空间作为一个Tag字段为无效标识的空数据体;当当前数据体的前后不存在空数据体或者当前数据体和空数据体的总空间不满足期望空间值时,则通过数据创建模块存储扩展后的数据,并将当前数据体的数据删除。当缩小当前数据体的数据时,数据调整模块7计算缩小后的数据长度并写入Length字段中,并将剩余空间作为一个Tag字段为无效标识的空数据体。
本发明提供的动态管理Java Card存储空间的系统无需索引位图,一定程度上节约了存储空间,同时引入数据头,在查找数据时通过数据索引获取数据类型和对应的数据头序号,能够快速定位到数据头,再通过数据头中保存的数据地址可快速定位到数据本身,使得查找数据的速度更快;数据索引能够指示数据类型,数据头也可以存放数据属性,从而使得获取数据属性的速度也更快。
本发明还提供一种基于上述系统的动态管理Java Card存储空间的方法,包括数据创建操作、数据查找操作、数据删除操作和数据调整操作,下面具体说明。
请参考图6,一种实施例中,数据创建操作包括以下步骤:
步骤S101:在相应数据类型的数据头子区域中寻找一有效性标识为无效值的数据头。例如当所创建的数据为App数据时,则在App数据头子区域中寻找一有效性标识为无效值的数据头。
步骤S102:将步骤S101中找到的数据头的有效性标识修改为有效值。
步骤S103:在数据体区域中寻找一空间大于或等于期望空间值的空数据体。
步骤S104:将数据存入步骤S103中找到的空数据体中,并将其地址写入步骤S101中找到的数据头中。
请参考图7,一种实施例中,数据查找操作包括以下步骤:
步骤S201:根据数据索引3所指示的数据类型和数据头序号查找数据头。具体的,首先定位到数据索引3所指示的数据类型所对应的数据头子区域,然后根据数据索引3所指示的数据头序号确定数据头在该数据头子区域中的地址,从而查找到数据头,其中数据头在该数据头子区域中的地址的确定方式为:数据头序号×该类型数据头的长度。
步骤S202:根据步骤S201中查找到的数据头获得所对应的数据体的地址,根据数据体的地址访问数据。
请参考图8,一种实施例中,数据删除操作包括以下步骤:
步骤S301:将当前数据体对应的数据头的有效性标识修改为无效值。
步骤S302:判断当前数据体的前后是否存在空数据体,若存在则执行步骤S303,否则执行步骤S304。
步骤S303:将当前数据体与空数据体合并成为一个新的空数据体。
步骤S304:将当前数据体单独作为一个新的空数据体。
请参考图9,一种实施例中,数据调整操作包括以下步骤:
步骤S401:判断当前数据体的前后是否存在空数据体,若存在则执行步骤S402,否则执行步骤S404。
步骤S402:计算当前数据体和空数据体的总空间是否满足期望空间值,若满足期望空间值则执行步骤S403,否则执行步骤S404。
步骤S403:将当前数据体和空数据体合并成为一个新的数据体,用于存储扩展后的数据,并将新数据体的地址写入对应的数据头中。
步骤S404:通过上述数据创建操作存储扩展后的数据,并将当前数据体的数据删除。
在有的实施例中,数据类型也可以不在数据索引中体现,而是由数据头体现,即数据头包括序号、有效性标识、数据类型、所对应的数据体的地址,此时数据索引3用于指示数据类型序号和数据头序号。当数据分为File、App、Object和Package四种类型时,则数据类型序号可以分别编为1、2、3和4,根据数据类型序号可以定位到相应数据类型的数据头子区域。此时数据查找模块5用于当查找数据时,根据数据索引3所指示的数据类型序号和数据头序号查找数据头,再根据所查找到的数据头获得所对应的数据体的地址,根据数据体的地址访问数据。相应的,请参考图10,数据查找操作包括以下步骤:
步骤S501:根据数据索引3所指示的数据类型序号和数据头序号查找数据头。具体的,首先定位到数据索引3所指示的数据类型序号所对应的数据头子区域,然后根据数据索引3所指示的数据头序号确定数据头在该数据头子区域中的地址,从而查找到数据头,其中数据头在该数据头子区域中的地址的确定方式为:数据头序号×该类型数据头的长度。
步骤S502:根据步骤S501中查找到的数据头获得所对应的数据体的地址,根据数据体的地址访问数据。
依据上述实施例的动态管理Java Card存储空间的系统和方法,由于在删除数据和调整数据大小的时候,将当前数据体和其前后的空数据体合并,从而将非连续的存储空间合并成为连续的存储空间,减少了存储空间碎片;同时引入数据头,在查找数据时通过数据索引获取数据类型和对应的数据头序号,能够快速定位到数据头,再通过数据头中保存的数据地址可快速定位到数据本身,使得查找数据的速度更快。
本文参照了各种示范实施例进行说明。然而,本领域的技术人员将认识到,在不脱离本文范围的情况下,可以对示范性实施例做出改变和修正。例如,各种操作步骤以及用于执行操作步骤的组件,可以根据特定的应用或考虑与系统的操作相关联的任何数量的成本函数以不同的方式实现(例如一个或多个步骤可以被删除、修改或结合到其他步骤中)。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。另外,如本领域技术人员所理解的,本文的原理可以反映在计算机可读存储介质上的计算机程序产品中,该可读存储介质预装有计算机可读程序代码。任何有形的、非暂时性的计算机可读存储介质皆可被使用,包括磁存储设备(硬盘、软盘等)、光学存储设备(CD至ROM、DVD、Blu Ray盘等)、闪存和/或诸如此类。这些计算机程序指令可被加载到通用计算机、专用计算机或其他可编程数据处理设备上以形成机器,使得这些在计算机上或其他可编程数据处理装置上执行的指令可以生成实现指定的功能的装置。这些计算机程序指令也可以存储在计算机可读存储器中,该计算机可读存储器可以指示计算机或其他可编程数据处理设备以特定的方式运行,这样存储在计算机可读存储器中的指令就可以形成一件制造品,包括实现指定功能的实现装置。计算机程序指令也可以加载到计算机或其他可编程数据处理设备上,从而在计算机或其他可编程设备上执行一系列操作步骤以产生一个计算机实现的进程,使得在计算机或其他可编程设备上执行的指令可以提供用于实现指定功能的步骤。
虽然在各种实施例中已经示出了本文的原理,但是许多特别适用于特定环境和操作要求的结构、布置、比例、元件、材料和部件的修改可以在不脱离本披露的原则和范围内使用。以上修改和其他改变或修正将被包含在本文的范围之内。
前述具体说明已参照各种实施例进行了描述。然而,本领域技术人员将认识到,可以在不脱离本披露的范围的情况下进行各种修正和改变。因此,对于本披露的考虑将是说明性的而非限制性的意义上的,并且所有这些修改都将被包含在其范围内。同样,有关于各种实施例的优点、其他优点和问题的解决方案已如上所述。然而,益处、优点、问题的解决方案以及任何能产生这些的要素,或使其变得更明确的解决方案都不应被解释为关键的、必需的或必要的。本文中所用的术语“包括”和其任何其他变体,皆属于非排他性包含,这样包括要素列表的过程、方法、文章或设备不仅包括这些要素,还包括未明确列出的或不属于该过程、方法、系统、文章或设备的其他要素。此外,本文中所使用的术语“耦合”和其任何其他变体都是指物理连接、电连接、磁连接、光连接、通信连接、功能连接和/或任何其他连接。
具有本领域技术的人将认识到,在不脱离本发明的基本原理的情况下,可以对上述实施例的细节进行许多改变。因此,本发明的范围应仅由权利要求确定。
Claims (10)
1.一种动态管理Java Card存储空间的系统,其特征在于,包括:
数据体区域,包括多个数据体,所述数据体用于存储数据,所述数据分为预定数目的类型;
数据头区域,所述数据头区域被划分为与所述数据类型相对应的子区域,每个子区域包括固定数量的数据头,每个数据头对应一个数据体,数据头包括序号、有效性标识、所对应的数据体的地址,所述有效性标识包括有效值和无效值;
数据索引,用于指示数据类型和数据头序号;
数据创建模块,用于当创建数据时,在相应数据类型的数据头子区域中寻找一有效性标识为无效值的数据头,将其有效性标识修改为有效值,然后在数据体区域中寻找一空间大于或等于期望空间值的空数据体,将数据存入该空数据体中,并将其地址写入先前找到的数据头中,空数据体是指没有存储数据的数据体;
数据查找模块,用于当查找数据时,根据所述数据索引所指示的数据类型和数据头序号查找数据头,再根据所查找到的数据头获得所对应的数据体的地址,根据所述数据体的地址访问数据;
数据删除模块,用于当删除当前数据体的数据时,将当前数据体对应的数据头的有效性标识修改为无效值,并判断当前数据体的前后是否存在空数据体,当存在空数据体时则将当前数据体与空数据体合并成为一个新的空数据体,否则将当前数据体单独作为一个新的空数据体;
数据调整模块,用于当扩展当前数据体的数据时,判断当前数据体的前后是否存在空数据体,当存在空数据体时,则计算当前数据体和空数据体的总空间是否满足期望空间值,若满足期望空间值则将当前数据体和空数据体合并成为一个新的数据体,用于存储扩展后的数据,并将新数据体的地址写入对应的数据头中;当当前数据体的前后不存在空数据体或者当前数据体和空数据体的总空间不满足期望空间值时,则通过所述数据创建模块存储扩展后的数据,并将当前数据体的数据删除。
2.如权利要求1所述的系统,其特征在于,所述数据查找模块在查找数据头时,首先定位到所述数据索引所指示的数据类型所对应的数据头子区域,然后根据所述数据索引所指示的数据头序号确定数据头在该数据头子区域中的地址,从而查找到数据头,其中数据头在该数据头子区域中的地址的确定方式为:数据头序号×该类型数据头的长度。
3.如权利要求1所述的系统,其特征在于,所述数据体采用TLV编码,所述数据创建模块用于当创建数据时,在相应数据类型的数据头子区域中寻找一有效性标识为无效值的数据头,将其有效性标识修改为有效值,然后在数据体区域中寻找一空间大于或等于期望空间值的空数据体,将数据存入该空数据体中,并将其地址写入先前找到的数据头中;同时,若找到的空数据体的空间等于期望空间值,则将其Tag字段修改为有效标识,若找到的空数据体的空间大于期望空间值,则将其Tag字段修改为有效标识后,将剩余空间作为一个Tag字段为无效标识的空数据体;
所述数据删除模块用于当删除当前数据体的数据时,将当前数据体对应的数据头的有效性标识修改为无效值,并判断当前数据体的前后是否存在空数据体,当存在空数据体时则将当前数据体与空数据体合并成为一个新的空数据体,计算该新的空数据体的长度并写入Length字段中,并将Tag字段修改为无效标识,否则将当前数据体单独作为一个新的空数据体,将Tag字段修改为无效标识;
所述数据调整模块用于当扩展当前数据体的数据时,判断当前数据体的前后是否存在空数据体,当存在空数据体时,则计算当前数据体和空数据体的总空间是否满足期望空间值,若满足期望空间值则将当前数据体和空数据体合并成为一个新的数据体,用于存储扩展后的数据,并将新数据体的地址写入对应的数据头中,同时计算该新的数据体的长度并写入Length字段中,并将Tag字段和Length字段写到该新的数据体的最前端,若有剩余空间则将剩余空间作为一个Tag字段为无效标识的空数据体;当当前数据体的前后不存在空数据体或者当前数据体和空数据体的总空间不满足期望空间值时,则通过所述数据创建模块存储扩展后的数据,并将当前数据体的数据删除。
4.如权利要求3所述的系统,其特征在于,所述数据调整模块还用于当缩小当前数据体的数据时,计算缩小后的数据长度并写入Length字段中,并将剩余空间作为一个Tag字段为无效标识的空数据体。
5.如权利要求1所述的系统,其特征在于,还包括数据读写模块,用于对数据进行读写时,通过所述数据查找模块访问所要读写的数据,并进行读写操作。
6.如权利要求1所述的系统,其特征在于,所述数据头还包括数据属性。
7.如权利要求1所述的系统,其特征在于,数据分为Object、Package、App和File四种类型。
8.一种基于权利要求1-7中任一项所述的系统的动态管理Java Card存储空间的方法,其特征在于,包括:
数据创建操作,所述数据创建操作包括:在相应数据类型的数据头子区域中寻找一有效性标识为无效值的数据头,将其有效性标识修改为有效值,然后在数据体区域中寻找一空间大于或等于期望空间值的空数据体,将数据存入该空数据体中,并将其地址写入先前找到的数据头中;
数据查找操作,所述数据查找操作包括:根据所述数据索引所指示的数据类型和数据头序号查找数据头,再根据所查找到的数据头获得所对应的数据体的地址,根据所述数据体的地址访问数据;
数据删除操作,所述数据删除操作包括:将当前数据体对应的数据头的有效性标识修改为无效值,并判断当前数据体的前后是否存在空数据体,当存在空数据体时则将当前数据体与空数据体合并成为一个新的空数据体,否则将当前数据体单独作为一个新的空数据体;
数据调整操作,所述数据调整操作包括:判断当前数据体的前后是否存在空数据体,当存在空数据体时,则计算当前数据体和空数据体的总空间是否满足期望空间值,若满足期望空间值则将当前数据体和空数据体合并成为一个新的数据体,用于存储扩展后的数据,并将新数据体的地址写入对应的数据头中;当当前数据体的前后不存在空数据体或者当前数据体和空数据体的总空间不满足期望空间值时,则通过所述数据创建操作存储扩展后的数据,并将当前数据体的数据删除。
9.一种动态管理Java Card存储空间的系统,其特征在于,包括:
数据体区域,包括多个数据体,所述数据体用于存储数据,所述数据分为预定数目的类型,不同的数据类型具有不同的序号;
数据头区域,所述数据头区域被划分为与所述数据类型相对应的子区域,每个子区域包括固定数量的数据头,每个数据头对应一个数据体,数据头包括序号、有效性标识、数据类型、所对应的数据体的地址,所述有效性标识包括有效值和无效值;
数据索引,用于指示数据类型序号和数据头序号;
数据创建模块,用于当创建数据时,在相应数据类型的数据头子区域中寻找一有效性标识为无效值的数据头,将其有效性标识修改为有效值,然后在数据体区域中寻找一空间大于或等于期望空间值的空数据体,将数据存入该空数据体中,并将其地址写入先前找到的数据头中,空数据体是指没有存储数据的数据体;
数据查找模块,用于当查找数据时,根据所述数据索引所指示的数据类型序号和数据头序号查找数据头,再根据所查找到的数据头获得所对应的数据体的地址,根据所述数据体的地址访问数据;
数据删除模块,用于当删除当前数据体的数据时,将当前数据体对应的数据头的有效性标识修改为无效值,并判断当前数据体的前后是否存在空数据体,当存在空数据体时则将当前数据体与空数据体合并成为一个新的空数据体,否则将当前数据体单独作为一个新的空数据体;
数据调整模块,用于当扩展当前数据体的数据时,判断当前数据体的前后是否存在空数据体,当存在空数据体时,则计算当前数据体和空数据体的总空间是否满足期望空间值,若满足期望空间值则将当前数据体和空数据体合并成为一个新的数据体,用于存储扩展后的数据,并将新数据体的地址写入对应的数据头中;当当前数据体的前后不存在空数据体或者当前数据体和空数据体的总空间不满足期望空间值时,则通过所述数据创建模块存储扩展后的数据,并将当前数据体的数据删除。
10.一种基于权利要求9所述的系统的动态管理Java Card存储空间的方法,其特征在于,包括:
数据创建操作,所述数据创建操作包括:在相应数据类型的数据头子区域中寻找一有效性标识为无效值的数据头,将其有效性标识修改为有效值,然后在数据体区域中寻找一空间大于或等于期望空间值的空数据体,将数据存入该空数据体中,并将其地址写入先前找到的数据头中;
数据查找操作,所述数据查找操作包括:根据所述数据索引所指示的数据类型序号和数据头序号查找数据头,再根据所查找到的数据头获得所对应的数据体的地址,根据所述数据体的地址访问数据;
数据删除操作,所述数据删除操作包括:将当前数据体对应的数据头的有效性标识修改为无效值,并判断当前数据体的前后是否存在空数据体,当存在空数据体时则将当前数据体与空数据体合并成为一个新的空数据体,否则将当前数据体单独作为一个新的空数据体;
数据调整操作,所述数据调整操作包括:判断当前数据体的前后是否存在空数据体,当存在空数据体时,则计算当前数据体和空数据体的总空间是否满足期望空间值,若满足期望空间值则将当前数据体和空数据体合并成为一个新的数据体,用于存储扩展后的数据,并将新数据体的地址写入对应的数据头中;当当前数据体的前后不存在空数据体或者当前数据体和空数据体的总空间不满足期望空间值时,则通过所述数据创建操作存储扩展后的数据,并将当前数据体的数据删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011593388.2A CN112612753B (zh) | 2020-12-29 | 2020-12-29 | 一种动态管理Java Card存储空间的系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011593388.2A CN112612753B (zh) | 2020-12-29 | 2020-12-29 | 一种动态管理Java Card存储空间的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112612753A true CN112612753A (zh) | 2021-04-06 |
CN112612753B CN112612753B (zh) | 2021-09-28 |
Family
ID=75248776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011593388.2A Active CN112612753B (zh) | 2020-12-29 | 2020-12-29 | 一种动态管理Java Card存储空间的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112612753B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115421672A (zh) * | 2022-11-04 | 2022-12-02 | 中诚华隆计算机技术有限公司 | 一种基于芯片的数据存储方法、系统及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102243595A (zh) * | 2011-08-03 | 2011-11-16 | 浙江大学 | 基于MMU架构的Java Card系统组件更新方法 |
CN102521145A (zh) * | 2011-12-23 | 2012-06-27 | 东信和平智能卡股份有限公司 | Java卡系统及其空间分配处理方法 |
CN102799660A (zh) * | 2012-07-04 | 2012-11-28 | 北京中电华大电子设计有限责任公司 | 一种java卡对象管理方法 |
CN104657281A (zh) * | 2015-03-17 | 2015-05-27 | 东港股份有限公司 | 一种Java卡包数据管理方法 |
US20150278800A1 (en) * | 2006-09-24 | 2015-10-01 | Rfcyber Corporation | Method and apparatus for mobile payments |
EP3026551A1 (en) * | 2014-11-26 | 2016-06-01 | Giesecke & Devrient GmbH | Methods and devices for compressing byte code for smart cards |
CN105653351A (zh) * | 2015-12-30 | 2016-06-08 | 北京博思汇众科技股份有限公司 | java卡虚拟机的优化方法及系统 |
EP2497055B1 (en) * | 2009-11-05 | 2018-07-18 | Trusted Logic | Secure portable object |
US10599908B2 (en) * | 2016-10-28 | 2020-03-24 | Samsung Electronics Co., Ltd | Apparatus for reducing noise input to fingerprint sensor |
-
2020
- 2020-12-29 CN CN202011593388.2A patent/CN112612753B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150278800A1 (en) * | 2006-09-24 | 2015-10-01 | Rfcyber Corporation | Method and apparatus for mobile payments |
EP2497055B1 (en) * | 2009-11-05 | 2018-07-18 | Trusted Logic | Secure portable object |
CN102243595A (zh) * | 2011-08-03 | 2011-11-16 | 浙江大学 | 基于MMU架构的Java Card系统组件更新方法 |
CN102521145A (zh) * | 2011-12-23 | 2012-06-27 | 东信和平智能卡股份有限公司 | Java卡系统及其空间分配处理方法 |
CN102799660A (zh) * | 2012-07-04 | 2012-11-28 | 北京中电华大电子设计有限责任公司 | 一种java卡对象管理方法 |
EP3026551A1 (en) * | 2014-11-26 | 2016-06-01 | Giesecke & Devrient GmbH | Methods and devices for compressing byte code for smart cards |
CN104657281A (zh) * | 2015-03-17 | 2015-05-27 | 东港股份有限公司 | 一种Java卡包数据管理方法 |
CN105653351A (zh) * | 2015-12-30 | 2016-06-08 | 北京博思汇众科技股份有限公司 | java卡虚拟机的优化方法及系统 |
US10599908B2 (en) * | 2016-10-28 | 2020-03-24 | Samsung Electronics Co., Ltd | Apparatus for reducing noise input to fingerprint sensor |
Non-Patent Citations (2)
Title |
---|
张晓琦 等: ""浅析Java智能卡的应用与开发"", 《福建电脑》 * |
李智聪: ""Java Card的技术特点及其应用分析"", 《微型电脑应用》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115421672A (zh) * | 2022-11-04 | 2022-12-02 | 中诚华隆计算机技术有限公司 | 一种基于芯片的数据存储方法、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112612753B (zh) | 2021-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10303596B2 (en) | Read-write control method for memory, and corresponding memory and server | |
US8321481B2 (en) | Method for incremental anti-tear garbage collection | |
CN109871333B (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
WO2016086819A1 (zh) | 将数据写入叠瓦状磁记录smr硬盘的方法及装置 | |
US20090307291A1 (en) | Smart card storage system and file management method therein | |
KR20150095781A (ko) | 메모리 리클레임 방법 및 장치 | |
CN106648463B (zh) | Nand Flash块管理方法和系统 | |
CN101419571A (zh) | 基于Hash算法的在NOR FLASH中存储配置参数的方法 | |
CN116466879B (zh) | 一种cxl内存模组、内存数据的置换方法及计算机系统 | |
CN102541969B (zh) | 基于fat文件系统的文件保护方法、系统及存储器 | |
CN112612753B (zh) | 一种动态管理Java Card存储空间的系统和方法 | |
CN104978154A (zh) | 一种基于缓存操作的flash快速读写方法及系统 | |
CN114089915B (zh) | 基于flash存储器的文件追加写操作方法及装置 | |
CN110287695B (zh) | 一种Java卡及其临时对象的管理方法 | |
CN111831691B (zh) | 一种数据读写方法及装置、电子设备、存储介质 | |
CN115114232A (zh) | 一种历史版本对象列举方法、装置及其介质 | |
KR101826778B1 (ko) | 플래쉬 라이프 사이클 및 성능 개선을 고려한 eeprom 에뮬레이션 구현 방법 | |
CN110187837B (zh) | 一种文件存取方法、装置及文件系统 | |
CN110471626B (zh) | 应用于Java Card的Nor Flash管理层及方法 | |
KR101465426B1 (ko) | 익스텐트 매핑 플래시 디바이스 | |
CN111435331A (zh) | 存储卷写数据方法、装置、电子设备及机器可读存储介质 | |
CN113625964B (zh) | 基于NandFlash的顺序存储方法、电子设备和存储介质 | |
CN116010113B (zh) | 用于管理智能卡内存的方法及智能卡 | |
CN113703671B (zh) | 一种数据块擦除方法及相关装置 | |
CN114647367A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |