CN116010113B - 用于管理智能卡内存的方法及智能卡 - Google Patents
用于管理智能卡内存的方法及智能卡 Download PDFInfo
- Publication number
- CN116010113B CN116010113B CN202310302384.1A CN202310302384A CN116010113B CN 116010113 B CN116010113 B CN 116010113B CN 202310302384 A CN202310302384 A CN 202310302384A CN 116010113 B CN116010113 B CN 116010113B
- Authority
- CN
- China
- Prior art keywords
- data
- management
- space
- bitmap
- management table
- 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
Links
Landscapes
- Memory System (AREA)
Abstract
本申请涉及智能卡技术领域,公开一种用于管理智能卡内存的方法及智能卡,所述智能卡的内存划分为数据管理空间和代码管理空间,其中,所述方法包括:响应数据写入请求;在写入的数据为第一类数据的情况下,以第一方式将第一类数据写入数据管理空间;或者,在写入的数据为第二类数据的情况下,以第二方式将第二类数据写入代码管理空间;其中,所述第一类数据的更新频率大于所述第二类数据的更新频率,所述第二类数据的被访问频次大于所述第一类数据的被访问频次,第一方式的数据写入速度快于第二方式的数据写入速度。
Description
技术领域
本申请涉及智能卡技术领域,例如涉及一种用于管理智能卡内存的方法及智能卡。
背景技术
智能卡也称为POS(Point Of Sale,销售终端)卡或IC(Integrated Circuit,集成电路)卡,其是将集成电路芯片封装在一个塑料基片上,通过芯片内的通信模块,智能卡可以和外部设备通信,完成数据传输、存储和处理,实现各种业务。目前,随着技术进步,为了提升用户使用智能卡进行交易时获得良好体验,对智能卡上应用的运行速度要求越来越高,影响智能卡的片内操作系统(Chip Operating System,COS)运行效率的主要功能模块是内存管理模块,然而,现有的智能卡内存管理方法是将智能卡的数据管理空间和代码管理空间采用统一的管理方式。
在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:
统一的管理方式存在写数据较慢或读数据较慢的问题,并且不能充分有效地利用数据管理空间和代码管理空间各自的优点,从而限制了智能卡的片内操作系统的运行速度。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
本公开实施例提供了一种用于管理智能卡内存的方法、智能卡及存储介质,以充分利用数据管理空间和代码管理空间各自的优点,最大限度的提升智能卡的片内操作系统的运行速度。
在一些实施例中,所述用于管理智能卡内存的方法,包括:
响应数据写入请求;
在写入的数据为第一类数据的情况下,以第一方式将第一类数据写入数据管理空间;或者,
在写入的数据为第二类数据的情况下,以第二方式将第二类数据写入代码管理空间;
其中,所述第一类数据的更新频率大于所述第二类数据的更新频率,所述第二类数据的被访问频次大于所述第一类数据的被访问频次,第一方式的数据写入速度快于第二方式的数据写入速度。
可选地,所述数据管理空间配置有数据空间管理表,所述数据空间管理表存储有所述数据管理空间中虚拟地址与物理地址之间的映射关系;所述以第一方式将第一类数据写入数据管理空间,包括:
根据所述数据空间管理表,确定所述数据写入请求中目标虚拟地址所对应的第一物理地址;
将第一物理地址中存储的原始数据和第一类数据进行合并;
将合并后的数据写入第二物理地址。
可选地,所述将第一物理地址中保存的原始数据和第一类数据合并,包括:
将所述第一物理地址中存储的原始数据取出并存储至内存的缓存;
将所述第一类数据写入所述内存的缓存中,并与所述原始数据进行合并。
可选地,所述将合并后的数据写入第二物理地址,包括:
从所述数据管理空间的空闲的物理地址中,分配所述第二物理地址;
将合并后的数据,写入空闲的第二物理地址中。
可选地,在所述数据管理空间的空闲的物理地址中,沿数据管理空间基地址指向最大内存地址的方向,优先分配地址较低的物理地址作为第二物理地址。
可选地,在将合并后的数据写入第二物理地址之后,还包括:
将所述数据空间管理表中所述目标虚拟地址与第一物理地址的之间映射关系,更新为所述目标虚拟地址与第二物理地址的之间映射关系。
可选地,所述代码管理空间配置有多个位图管理表,每个位图管理表存储有所述代码管理空间中各内存块的物理地址和分配状态;所述以第二方式将第二类数据写入代码管理空间,包括:
从多个位图管理表中确定目标位图管理表;
根据目标位图管理表,从所述代码管理空间中获取未被分配的多个内存块;
将所述第二类数据存储至多个内存块的物理地址中。
可选地,每个位图管理表分别存储在代码管理空间的一个位图管理物理页内,在每个位图管理物理页中还存储有位图管理表对应的管理校验区。
可选地,所述管理校验区存储有位图管理表的版本号以及校验值;
通过以下方式从多个位图管理表中确定出目标位图管理表:
对每个位图管理物理页的管理校验区中的校验值进行校验;
将通过校验的一个位图管理物理页中存储的位图管理表作为目标位图管理表;或者,在至少两个位图管理物理页均通过校验的情况下,根据所述管理校验区中的版本号,确定出目标位图管理表。
可选地,所述根据所述管理校验区中的版本号,确定出目标位图管理表,包括:
在每一次更新所述位图管理表的情况下,将当前目标位图管理表的管理校验区中的版本号同步更新;
将最新版本号对应的位图管理表,作为目标位图管理表。
可选地,所述根据目标位图管理表,从所述代码管理空间中获取未被分配的多个内存块,包括:
根据所述第二类数据所需内存块的个数,从目标位图管理表中确定出空闲的位图空间并记录所述位图空间在位图管理表中的起始位置;
根据位图空间的起始位置、所需内存块的个数和代码管理空间基地址,计算出需要分配的多个第一内存块在所述代码管理空间中的物理地址;
将所述第二类数据写入多个第一内存块在所述代码管理空间中的物理地址中,并将多个第一内存块在所述位图管理表中的对应位设置为表示已被分配的第一数值。
可选地,在所述代码管理空间的物理地址中,沿最大内存地址指向代码管理空间基地址的方向,优先分配地址较高的物理地址作为第一内存块的物理地址。
可选地,所述内存管理方法,还包括:
响应于释放第二类数据的请求,根据所述第二类数据对应的多个第二内存块在所述代码管理空间中已经分配的物理地址,将所述第二类数据删除;
更新目标位图管理表中用于存储第二类数据的多个第二内存块的分配状态。
可选地,所述更新目标位图管理表中用于存储第二类数据的多个第二内存块的分配状态,包括:
定位出多个第二内存块在目标位图管理表中的起始位置;
根据多个第二内存块在目标位图管理表中的起始位置和第二内存块的个数,将多个第二内存块在目标位图管理表中的对应位设置为表示已被释放的第二数值。
可选地,所述代码管理空间还配置有碎片日志管理区;所述内存管理方法,还包括:
响应于用户进行碎片整理的请求,沿数据管理空间基地址向最大内存地址指的方向,从地址较低的物理地址开始进行碎片整理,记录碎片整理的日志信息;
在所述智能卡发生掉电并再次上电的情况下,根据掉电时的碎片整理的日志信息,继续完成掉电时未完成的碎片整理任务。
可选地,所述记录碎片整理的日志信息,包括:
通过一个条目的日志信息,记录一次第二类数据的搬移过程;或者,
通过多个条目的日志信息,记录一个物理的数据擦除过程。
在一些实施例中,所述智能卡,包括:
智能卡本体,所述智能卡本体包括处理器和存储有程序指令的内存,内存划分为数据管理空间和代码管理空间,所述数据管理空间配置有数据空间管理表,所述数据空间管理表存储有所述数据管理空间中虚拟地址与物理地址之间的映射关系,所述代码管理空间配置有多个位图管理表,每个位图管理表存储有所述代码管理空间中各内存块的物理地址和分配状态;
片内操作系统,被安装于所述智能卡本体的内存中,所述处理器被配置为在运行所述程序指令时,通过片内操作系统执行如如权利要求1至16所述的用于管理智能卡内存的方法。
在一些实施例中,所述存储介质,所述程序指令在运行时,执行如本申请所述的用于管理智能卡内存的方法。
本公开实施例提供的用于管理智能卡内存的方法、智能卡及存储介质,可以实现以下技术效果:
本申请通过对写入的数据进行分类,将需要高频更新的第一类数据通过第一方式写入数据管理空间,将需要高频访问的第二类数据通过第二方式写入数据管理空间,实现了数据管理空间和代码管理空间分别采用独立的内存管理机制,既能保证数据管理空间更新数据的快速性,又能通过保证代码管理空间访问数据的快速性,实现数据管理空间和代码管理空间各自的优点的综合利用,从而最大限度地提高了智能卡的片内操作系统的运行速度。
以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
图1是本公开实施例提供的一个用于管理智能卡内存的方法的示意图;
图2是本公开实施例提供的一个内存空间物理地址分配的示意图;
图3是本公开实施例提供的另一个用于管理智能卡内存的方法的示意图;
图4是本公开实施例的一个数据管理空间地址映射的示意图;
图5是本公开实施例提供的另一个用于管理智能卡内存的方法的示意图;
图6是本公开实施例的一个数据合并流程的示意图;
图7是本公开实施例提供的另一个用于管理智能卡内存的方法的示意图;
图8是本公开实施例提供的另一个用于管理智能卡内存的方法的示意图;
图9是本公开实施例提供的另一个用于管理智能卡内存的方法的示意图;
图10是本公开实施例的一个内存块分配流程的示意图;
图11是本公开实施例提供的另一个用于管理智能卡内存的方法的示意图;
图12是本公开实施例提供的另一个用于管理智能卡内存的方法的示意图;
图13是本公开实施例的一个内存块释放流程的示意图;
图14是本公开实施例提供的一个图管理物理页的示意图;
图15是本公开实施例提供的另一个用于管理智能卡内存的方法的示意图;
图16是本公开实施例提供的另一个用于管理智能卡内存的方法的示意图;
图17是本公开实施例提供的另一个用于管理智能卡内存的方法的示意图;
图18是本公开实施例提供的一个碎片整理的日志信息的示意图。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
术语“对应”可以指的是一种关联关系或绑定关系,A与B相对应指的是A与B之间是一种关联关系或绑定关系。
结合图1所示,本公开实施例提供一种用于管理智能卡内存的方法,所述智能卡的内存划分为数据管理空间和代码管理空间,所述方法包括:
步骤101:响应数据写入请求。
步骤102:在写入的数据为第一类数据的情况下,以第一方式将第一类数据写入数据管理空间。
步骤103:在写入的数据为第二类数据的情况下,以第二方式将第二类数据写入代码管理空间。
其中,所述第一类数据的更新频率大于所述第二类数据的更新频率,所述第二类数据的被访问频次大于所述第一类数据的被访问频次,第一方式的数据写入速度快于第二方式的数据写入速度。
在本申请的实施例中,数据管理空间本身就具有写数据快的特点,无论是事务写还是原子写的速度,都只需要一个擦写物理页的时间,同时可以均衡物理页的寿命。因此,本申请的第一类数据主要包括需要实时更新的数据,例如个人化数据、静态域组件数据等,即第一类数据的更新频率大于第二类数据的更新频率,这也使得第一方式的数据写入速度快于第二方式的数据写入速度。
同时,代码管理空间本身就具有读数据快的特点,因此,本申请的第二类数据主要包括高频访问的数据,例如方法组件数据、常量池数据和类组件数据等,即第二类数据的被访问频次大于第一类数据的被访问频次,代码管理空间存放的第二类数据不能被修改,只能用于访问和读取。
此外,结合图2所示,在智能卡的整个内存空间中,数据管理空间从低地址向高地址分配空间,代码管理空间从高地址向低地址分配空间,保证两个空间同时具有动态扩展功能,即数据管理空间可向代码管理空间扩展,代码管理空间也可以向数据管理空间扩展。
采用本公开实施例提供的用于管理智能卡内存的方法,通过对写入的数据进行分类,将需要高频更新的第一类数据通过第一方式写入数据管理空间,将需要高频访问的第二类数据通过第二方式写入数据管理空间,实现了数据管理空间和代码管理空间分别采用独立的内存管理机制,既能保证数据管理空间更新数据的快速性,又能通过保证代码管理空间访问数据的快速性,实现数据管理空间和代码管理空间各自的优点的综合利用,从而最大限度地提高了智能卡的片内操作系统的运行速度。
可选地,结合图3所示,所述数据管理空间配置有数据空间管理表,所述数据空间管理表存储有所述数据管理空间中虚拟地址与物理地址之间的映射关系;
所述以第一方式将第一类数据写入数据管理空间,包括:
步骤301:根据所述数据空间管理表,确定所述数据写入请求中目标虚拟地址所对应的第一物理地址。
步骤302:将第一物理地址中存储的原始数据和第一类数据进行合并。
步骤303:将合并后的数据写入第二物理地址。
这样,本申请耳朵数据管理空间通过数据空间管理表确定目标虚拟地址所对应的第一物理地址,将第一物理地址中存储的原始数据和第一类数据进行合并,并将合并后的数据写入第二物理地址,实现在一个擦写物理页的时间内同时完成数据的擦写和写入。
在本申请的实施例中,结合图4所示,本申请的数据管理空间采用虚拟地址和物理地址相互映射的管理机制,用户访问的都是虚拟页对应的虚拟地址,在访问实际的内存数据的时候,需要将虚拟地址转换为对应的物理地址,虚拟地址到物理地址的转换是由中间层完成的,其主要是负责虚拟地址和物理地址之间的映射关系。
可选地,结合图5所示,将第一物理地址中存储的原始数据和第一类数据进行合并,将合并后的数据写入第二物理地址,包括:
步骤501:将所述第一物理地址中存储的原始数据取出并存储至内存的缓存。
步骤502:将所述第一类数据写入所述内存的缓存中,并与所述原始数据进行合并。
步骤503:从所述数据管理空间的空闲的物理地址中,分配所述第二物理地址。
步骤504:将合并后的数据,写入空闲的第二物理地址中。
在本申请的实施例中,结合图2所示,在所述数据管理空间的空闲的物理地址中,沿数据管理空间基地址指向最大内存地址的方向,优先分配地址较低的物理地址作为第二物理地址。
可选地,在将合并后的数据写入第二物理地址之后,还包括:
将所述数据空间管理表中所述目标虚拟地址与第一物理地址的之间映射关系,更新为所述目标虚拟地址与第二物理地址的之间映射关系。
在本申请的实施例中,结合图6所示,中间层的工作是由卡片操作系统维护一个数据空间管理表用来保证虚拟地址映射到物理地址的正确映射关系,即一个虚拟页序号对应一个物理页序号。访问虚拟地址的原始数据的时候根据虚拟地址的虚拟页序号定位到对应的物理页序号,然后由数据管理空间基地址和物理页序号计算出虚拟页对应的实际的物理地址,进而可以访问到虚拟地址对应的原始数据。
数据管理空间的堆区按照固定大小分为若干个内存块,分配内存块时从低地址向高地址扩展。同时,可以将数据管理空间划分为有效空间和空闲空间,写虚拟地址的时候,先从空闲空间获取到一个空闲的物理页,然后将目标虚拟页的原始数据和要更新的第一类数据合并后到直接写到空闲的物理页对应的物理地址中,最后更新数据空间管理表的映射即可。
这样,可以提升原子写和事务写的速度,实现一次擦写物理页的时间性能就可以完成操作,从而保证了数据管理空间更新数据的性能。
结合图7所示,所述代码管理空间配置有多个位图管理表,每个位图管理表存储有所述代码管理空间中各内存块的物理地址和分配状态;所述以第二方式将第二类数据写入代码管理空间,包括:
步骤701:从多个位图管理表中确定目标位图管理表。
步骤702:根据目标位图管理表,从所述代码管理空间中获取未被分配的多个内存块。
步骤703:将所述第二类数据存储至多个内存块的物理地址中。
在本申请的实施例中,结合图8所示,本申请的代码管理空间采用位图管理机制,空间分配和空间释放是代码管理空间的两个管理模块,代码管理空间依靠这两个管理模块运行工作,用户访问数据使,直接利用已经分配的地址直接访问对应的内存块即可,无需再经过位图管理表的,位图管理表只是对代码管理空间进行管理,其中,内存块的大小固定为是1024字节,位图管理表的每一位对应一个内存块,如果位设置为第一数值(例如1)则表示对应的内存块已经分配完成,如果对应位设置为第二数值(例如0)表示对应的内存块为空闲可以被分配。空间分配从内存空间的高地址向低地址分配。由于代码管理空间不存在映射关系,因此访问内存块中的数据是直接访问,不涉及到地址的转换和条件的判断操作,因此代码管理空间中的数据访问速度是最快的。
可选地,结合图9所示,所述根据目标位图管理表,从所述代码管理空间中获取未被分配的多个内存块,包括:
步骤901:根据所述第二类数据所需内存块的个数,从目标位图管理表中确定出空闲的位图空间并记录所述位图空间在位图管理表中的起始位置。
步骤902:根据位图空间的起始位置、所需内存块的个数和代码管理空间基地址,计算出需要分配的多个第一内存块在所述代码管理空间中的物理地址。
步骤903:将所述第二类数据写入多个第一内存块在所述代码管理空间中的物理地址中,并将多个第一内存块在所述位图管理表中的对应位设置为表示已被分配的第一数值。
在本申请的实施例中,结合图10所示,在进行代码管理空间分配的过程中,根据分配空间的大小计算出需要的内存块个数,然后从位图管理表中查找出合适空闲位图空间并记录位图表的起始位,在根据位图的起始位置和分配的块个数以及代码管理空间的基地址计算出分配的实际物理,最后根据位图起始位置和位图个数设置位图表对应位设置为1。
这样,本申请的代码管理空间多个位图管理表中的目标位图管理表,获取未被分配的多个内存块,将所述第二类数据的请求存储至多个内存块的物理地址中,通过占用空间较小的位图管理表实现了代码管理空间的快速分配。
可选地,结合图11所示,本申请用于管理智能卡内存的方法,还包括:
步骤1101:响应于释放第二类数据的请求,根据所述第二类数据对应的多个第二内存块在所述代码管理空间中已经分配的物理地址,将所述第二类数据删除。
步骤1102:更新目标位图管理表中用于存储第二类数据的多个第二内存块的分配状态。
其中,结合图12所示,所述更新目标位图管理表中用于存储第二类数据的多个第二内存块的分配状态,包括:
步骤1201:定位出多个第二内存块在目标位图管理表中的起始位置。
步骤1202:根据多个第二内存块在目标位图管理表中的起始位置和第二内存块的个数,将多个第二内存块在目标位图管理表中的对应位设置为表示已被释放的第二数值。
在本申请的实施例中,结合图13所示,在进行代码管理空间释放(删除)的过程中,通过需要释放的已经分配的物理地址和大小计算出需要释放的内存块的个数,然后由需要释放的已经分配的物理地址定位到位图管理表的起始位置,然后根据起始位置和需要释放的内存块的个数,将位图表对应位置设置为0,表示空间已经释放,可以被继续分配使用。
可选地,结合图14所示,每个位图管理表分别存储在代码管理空间的一个位图管理物理页内,在每个位图管理物理页中还存储有位图管理表对应的管理校验区,所述管理校验区存储有位图管理表的版本号以及校验值。
在本申请的实施例中,结合图15所示,通过以下方式从多个位图管理表中确定出目标位图管理表:
步骤1501:对每个位图管理物理页的管理校验区中的校验值进行校验。
步骤1502:将通过校验的一个位图管理物理页中存储的位图管理表作为目标位图管理表;或者,在至少两个位图管理物理页均通过校验的情况下,根据所述管理校验区中的版本号,确定出目标位图管理表。
在本申请的实施例中,结合图16所示,所述根据所述管理校验区中的版本号,确定出目标位图管理表,包括:
步骤1601:在每一次更新所述位图管理表的情况下,将当前目标位图管理表的管理校验区中的版本号同步更新。
步骤1602:将最新版本号对应的位图管理表,作为目标位图管理表。
在本申请的实施例中,本申请分别读取位图管理表的两个位图管理物理页,如果两个位图管理物理页的校验值都有效时,则比较版本号,因为在每一次更新所述位图管理表的情况下,当前目标位图管理表的管理校验区中的版本号均自增1,因此,最大版本号是对应的位图管理表就是最新的目标位图管理表。
这样,本申请采用两个位图管理物理页管理内存空间,两个位图管理物理页轮换记录位图管理表信息,每次分配空间之前都要获取当前有效的目标位图管理表,实现了防止掉电又解决了物理页寿命问题。
可选地,结合图17所示,所述代码管理空间还配置有碎片日志管理区;所述内存管理方法,还包括:
步骤1701:响应于用户进行碎片整理的请求,沿数据管理空间基地址向最大内存地址指的方向,从地址较低的物理地址开始进行碎片整理,记录碎片整理的日志信息。
步骤1702:在所述智能卡发生掉电并再次上电的情况下,根据掉电时的碎片整理的日志信息,继续完成掉电时未完成的碎片整理任务。
其中,所述记录碎片整理的日志信息,包括:
通过一个条目的日志信息,记录一次第二类数据的搬移过程;或者,
通过多个条目的日志信息,记录一个物理的数据擦除过程。
在本申请的实施例中,结合图18所示,代码管理空间的碎片日志管理区是用来对代码管理空间进行碎片整理,代码管理空间的碎片整理都是由低地址向高地址整理。为了防止碎片整理过程中掉电,碎片日志管理区记录当前碎片整理的日志信息,上电后根据日志信息将未完成的碎片整理继续整理完成。同时,碎片日志管理区采用条目的记录方式,即每一次搬移数据的信息都记录在一个条目的日志信息中,每一个条目的日志信息占用16字节,擦除一次物理页记录多个条目的日志信息。
这样,本申请将智能卡的整个内存空间划分为数据管理空间和代码管理空间。数据管理空间和代码管理空间分别采用独立的内存管理机制。数据管理空间主要保证更新数据的快速性能,代码管理空间主要保证被访问的数据快速性。智能卡的卡片操作系统运行过程中根据数据的特性将数据存放在对应的内存管理空间,卡片操作系统综合利用数据管理空间和代码管理空间各自的优点来最大限度的提卡片操作系统的运行速度。
本公开实施例提供一种智能卡,包括处理器(processor)和存储有程序指令的内存,内存划分为数据管理空间和代码管理空间,所述数据管理空间配置有数据空间管理表,所述数据空间管理表存储有所述数据管理空间中虚拟地址与物理地址之间的映射关系,所述代码管理空间配置有多个位图管理表,每个位图管理表存储有所述代码管理空间中各内存块的物理地址和分配状态;
片内操作系统,被安装于所述智能卡本体的内存中,所述处理器被配置为在运行所述程序指令时,通过片内操作系统执行如如权利要求1至16所述的用于管理智能卡内存的方法。
本公开实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述用于管理智能卡内存的方法。
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
Claims (16)
1.一种用于管理智能卡内存的方法,所述智能卡的内存划分为数据管理空间和代码管理空间,其特征在于,所述方法包括:
响应数据写入请求;
在写入的数据为第一类数据的情况下,以第一方式将第一类数据写入数据管理空间;或者,
在写入的数据为第二类数据的情况下,以第二方式将第二类数据写入代码管理空间;
其中,所述第一类数据的更新频率大于所述第二类数据的更新频率,所述第二类数据的被访问频次大于所述第一类数据的被访问频次,第一方式的数据写入速度快于第二方式的数据写入速度;
其中,所述数据管理空间配置有数据空间管理表,所述数据空间管理表存储有所述数据管理空间中虚拟地址与物理地址之间的映射关系;所述以第一方式将第一类数据写入数据管理空间,包括:
根据所述数据空间管理表,确定所述数据写入请求中目标虚拟地址所对应的第一物理地址;
将第一物理地址中存储的原始数据和第一类数据进行合并;
将合并后的数据写入第二物理地址;
其中,所述代码管理空间配置有多个位图管理表,每个位图管理表存储有所述代码管理空间中各内存块的物理地址和分配状态;所述以第二方式将第二类数据写入代码管理空间,包括:
从多个位图管理表中确定目标位图管理表;
根据目标位图管理表,从所述代码管理空间中获取未被分配的多个内存块;
将所述第二类数据存储至多个内存块的物理地址中。
2.根据权利要求1所述的方法,其特征在于,所述将第一物理地址中保存的原始数据和第一类数据合并,包括:
将所述第一物理地址中存储的原始数据取出并存储至内存的缓存;
将所述第一类数据写入所述内存的缓存中,并与所述原始数据进行合并。
3.根据权利要求1所述的方法,其特征在于,所述将合并后的数据写入第二物理地址,包括:
从所述数据管理空间的空闲的物理地址中,分配所述第二物理地址;
将合并后的数据,写入空闲的第二物理地址中。
4.根据权利要求1所述的方法,其特征在于,在所述数据管理空间的空闲的物理地址中,沿数据管理空间基地址指向最大内存地址的方向,优先分配地址较低的物理地址作为第二物理地址。
5.根据权利要求1至4任一项所述的方法,其特征在于,在将合并后的数据写入第二物理地址之后,还包括:
将所述数据空间管理表中所述目标虚拟地址与第一物理地址的之间映射关系,更新为所述目标虚拟地址与第二物理地址的之间映射关系。
6.根据权利要求1所述的方法,其特征在于,每个位图管理表分别存储在代码管理空间的一个位图管理物理页内,在每个位图管理物理页中还存储有位图管理表对应的管理校验区。
7.根据权利要求6所述的方法,其特征在于,所述管理校验区存储有位图管理表的版本号以及校验值;
通过以下方式从多个位图管理表中确定出目标位图管理表:
对每个位图管理物理页的管理校验区中的校验值进行校验;
将通过校验的一个位图管理物理页中存储的位图管理表作为目标位图管理表;或者,在至少两个位图管理物理页均通过校验的情况下,根据所述管理校验区中的版本号,确定出目标位图管理表。
8.根据权利要求7所述的方法,其特征在于,所述根据所述管理校验区中的版本号,确定出目标位图管理表,包括:
在每一次更新所述位图管理表的情况下,将当前目标位图管理表的管理校验区中的版本号同步更新;
将最新版本号对应的位图管理表,作为目标位图管理表。
9.根据权利要求6至8任一项所述的方法,其特征在于,所述根据目标位图管理表,从所述代码管理空间中获取未被分配的多个内存块,包括:
根据所述第二类数据所需内存块的个数,从目标位图管理表中确定出空闲的位图空间并记录所述位图空间在位图管理表中的起始位置;
根据位图空间的起始位置、所需内存块的个数和代码管理空间基地址,计算出需要分配的多个第一内存块在所述代码管理空间中的物理地址;
将所述第二类数据写入多个第一内存块在所述代码管理空间中的物理地址中,并将多个第一内存块在所述位图管理表中的对应位设置为表示已被分配的第一数值。
10.根据权利要求9所述的方法,其特征在于,在所述代码管理空间的物理地址中,沿最大内存地址指向代码管理空间基地址的方向,优先分配地址较高的物理地址作为第一内存块的物理地址。
11.根据权利要求6至8任一项所述的方法,其特征在于,还包括:
响应于释放第二类数据的请求,根据所述第二类数据对应的多个第二内存块在所述代码管理空间中已经分配的物理地址,将所述第二类数据删除;
更新目标位图管理表中用于存储第二类数据的多个第二内存块的分配状态。
12.根据权利要求11所述的方法,其特征在于,所述更新目标位图管理表中用于存储第二类数据的多个第二内存块的分配状态,包括:
定位出多个第二内存块在目标位图管理表中的起始位置;
根据多个第二内存块在目标位图管理表中的起始位置和第二内存块的个数,将多个第二内存块在目标位图管理表中的对应位设置为表示已被释放的第二数值。
13.根据权利要求6至8任一项所述的方法,其特征在于,所述代码管理空间还配置有碎片日志管理区;所述内存管理方法,还包括:
响应于用户进行碎片整理的请求,沿数据管理空间基地址向最大内存地址指的方向,从地址较低的物理地址开始进行碎片整理,记录碎片整理的日志信息;
在所述智能卡发生掉电并再次上电的情况下,根据掉电时的碎片整理的日志信息,继续完成掉电时未完成的碎片整理任务。
14.根据权利要求13所述的方法,其特征在于,所述记录碎片整理的日志信息,包括:
通过一个条目的日志信息,记录一次第二类数据的搬移过程;或者,
通过多个条目的日志信息,记录一个物理的数据擦除过程。
15.一种智能卡,其特征在于,包括:
智能卡本体,所述智能卡本体包括处理器和存储有程序指令的内存,内存划分为数据管理空间和代码管理空间,所述数据管理空间配置有数据空间管理表,所述数据空间管理表存储有所述数据管理空间中虚拟地址与物理地址之间的映射关系,所述代码管理空间配置有多个位图管理表,每个位图管理表存储有所述代码管理空间中各内存块的物理地址和分配状态;
片内操作系统,被安装于所述智能卡本体的内存中,所述处理器被配置为在运行所述程序指令时,通过片内操作系统执行如权利要求1至14任一项所述的用于管理智能卡内存的方法。
16.一种存储介质,存储有程序指令,其特征在于,所述程序指令在运行时,执行如权利要求1至14任一项所述的用于管理智能卡内存的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310302384.1A CN116010113B (zh) | 2023-03-27 | 2023-03-27 | 用于管理智能卡内存的方法及智能卡 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310302384.1A CN116010113B (zh) | 2023-03-27 | 2023-03-27 | 用于管理智能卡内存的方法及智能卡 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116010113A CN116010113A (zh) | 2023-04-25 |
CN116010113B true CN116010113B (zh) | 2023-08-15 |
Family
ID=86021350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310302384.1A Active CN116010113B (zh) | 2023-03-27 | 2023-03-27 | 用于管理智能卡内存的方法及智能卡 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116010113B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101344861A (zh) * | 2007-07-10 | 2009-01-14 | 凤凰微电子(中国)有限公司 | 一种智能卡内存管理方法 |
CN101510332A (zh) * | 2008-12-25 | 2009-08-19 | 北京握奇数据系统有限公司 | 一种智能卡中存储空间的管理方法和装置 |
CN114579304A (zh) * | 2022-02-25 | 2022-06-03 | 阿里巴巴(中国)有限公司 | 内存管理方法以及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5664347B2 (ja) * | 2011-03-04 | 2015-02-04 | ソニー株式会社 | 仮想メモリシステム、仮想メモリの制御方法、およびプログラム |
-
2023
- 2023-03-27 CN CN202310302384.1A patent/CN116010113B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101344861A (zh) * | 2007-07-10 | 2009-01-14 | 凤凰微电子(中国)有限公司 | 一种智能卡内存管理方法 |
CN101510332A (zh) * | 2008-12-25 | 2009-08-19 | 北京握奇数据系统有限公司 | 一种智能卡中存储空间的管理方法和装置 |
CN114579304A (zh) * | 2022-02-25 | 2022-06-03 | 阿里巴巴(中国)有限公司 | 内存管理方法以及装置 |
Non-Patent Citations (1)
Title |
---|
《智能卡技术》;赵逸群;《计算机工程与科学》;第1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116010113A (zh) | 2023-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10831734B2 (en) | Update-insert for key-value storage interface | |
US10761731B2 (en) | Array controller, solid state disk, and method for controlling solid state disk to write data | |
US8166233B2 (en) | Garbage collection for solid state disks | |
US10877898B2 (en) | Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements | |
US10437737B2 (en) | Data storage device | |
CN108733306B (zh) | 一种文件合并方法及装置 | |
CN107908571B (zh) | 一种数据写入方法、闪存装置及存储设备 | |
US10503424B2 (en) | Storage system | |
CN113220242B (zh) | 存储管理方法、设备和计算机可读介质 | |
US8694563B1 (en) | Space recovery for thin-provisioned storage volumes | |
EP3346387B1 (en) | Storage system and system garbage collection method | |
US9772937B2 (en) | Data processing method, memory controller and memory storage apparatus | |
CN109697170B (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
US11520698B2 (en) | Data storage device in a key-value storage architecture with data compression, and non-volatile memory control method | |
CN105745628A (zh) | 一种将数据写入闪存装置的方法、闪存装置和存储系统 | |
US20240143219A1 (en) | Software-hardware combination method for internal mapping address query of zoned namespace | |
CN116257460B (zh) | 基于固态硬盘的Trim命令处理方法及固态硬盘 | |
CN115639970A (zh) | 基于磁盘阵列卡的存储虚拟化方法、系统、装置及设备 | |
CN110554843A (zh) | 一种文件数据多个存储设备存储的方法及系统 | |
KR101626218B1 (ko) | 블록 기반의 페이지 매핑 방법 | |
US7167964B1 (en) | Memory defragmentation in chipcards | |
CN116010113B (zh) | 用于管理智能卡内存的方法及智能卡 | |
EP1046996A1 (en) | Memory defragmentation in chipcards | |
TWI792534B (zh) | 以局部清理操作來進行垃圾回收的方法與相關控制器和儲存系統 | |
KR20230012412A (ko) | 저장 방법, 저장 장치 및 저장 시스템 |
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 |