CN112199042A - 存储空间管理方法、装置、芯片、设备及存储介质 - Google Patents

存储空间管理方法、装置、芯片、设备及存储介质 Download PDF

Info

Publication number
CN112199042A
CN112199042A CN202011069885.2A CN202011069885A CN112199042A CN 112199042 A CN112199042 A CN 112199042A CN 202011069885 A CN202011069885 A CN 202011069885A CN 112199042 A CN112199042 A CN 112199042A
Authority
CN
China
Prior art keywords
data
space
processed
program
chip
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
Application number
CN202011069885.2A
Other languages
English (en)
Other versions
CN112199042B (zh
Inventor
李纪赛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Goodix Technology Co Ltd
Original Assignee
Shenzhen Goodix Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Goodix Technology Co Ltd filed Critical Shenzhen Goodix Technology Co Ltd
Priority to CN202011069885.2A priority Critical patent/CN112199042B/zh
Publication of CN112199042A publication Critical patent/CN112199042A/zh
Application granted granted Critical
Publication of CN112199042B publication Critical patent/CN112199042B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-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)
  • Stored Programmes (AREA)

Abstract

本申请提供一种存储空间管理方法、装置、芯片、设备及存储介质,通过确定待处理数据以及该待处理数据对应的目标操作,根据待处理数据的特征信息,确定待处理数据的数据类型,进而基于该数据类型对应的空间管理方式,调用数据类型对应的空间操作接口对非易失性存储区中的空间执行目标操作,而且,不同的数据类型对应的空间管理方式和空间操作接口均不同。该技术方案中,针对待处理数据对应的数据类型,执行特定的数据处理,能够降低安全芯片中非易失性存储区的空间管理难度,提高了空间整理效率,此外,由于该方案扩大了数据的寻址范围,从而能够应用于大容量的非易失性存储区的管理。

Description

存储空间管理方法、装置、芯片、设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种存储空间管理方法、装置、芯片、设备及存储介质。
背景技术
随着安全芯片非易失性存储区的大小不断增长,部署到安全芯片上的应用也越来越多。当对非易失性存储区的空间进行频繁的申请和释放后,更容易产生碎片,导致非易失性存储区的空间不能得到有效的利用,因而,亟需出一种空间管理方法来提高安全芯片中非易失性存储区的空间利用率。
现有技术中,对于安全芯片中非易失性存储区的空间管理,通常做法是:在接收到空间申请请求时,按照申请顺序依次将待存储的数据存储至非易失性存储区的空闲区域,在接收到空间释放请求时,确定出待处理数据在存储区的位置,进而将目标数据删除。此外,在非易失性存储区的空间中产生碎片时,需要对空间中的某些数据进行搬移,以实现对非易失性存储区的空间整理。
然而,由于非易失性存储区的数据是按照申请顺序依次存储的,且存储的数据类型多样,不同类型的数据占用的空间大小不同,空间管理难度大,而且在空间中产生较多的碎片需要进行空间整理时,需要对碎片区域与空闲区域之间的所有数据依次搬移,致使空间整理效率低。
发明内容
本申请提供一种存储空间管理方法、装置、芯片、设备及存储介质,以克服现有空间管理方法中存在的空间管理难度大、空间整理效率低的问题。
第一方面,本申请实施例提供一种存储空间管理方法,应用于包括非易失性存储区的芯片,所述方法包括:
确定待处理数据以及所述待处理数据对应的目标操作;
根据所述待处理数据的特征信息,确定所述待处理数据的数据类型;
基于所述数据类型对应的空间管理方式,调用所述数据类型对应的空间操作接口对所述非易失性存储区中的空间执行所述目标操作;
不同的数据类型对应的空间管理方式和空间操作接口均不同。
在第一方面的一种可能设计中,所述确定待处理数据以及所述待处理数据对应的目标操作,包括:
下载第一程序所属的包,所述第一程序所属的包包括:第一程序所属包的组件数据、第一程序所属包的属性数据;
根据所述第一程序所属的包,安装所述第一程序的实例,得到第一程序实例的属性数据;
将所述第一程序所属包的组件数据、所述第一程序所属包的属性数据和所述第一程序实例的属性数据,确定为所述待处理数据,所述待处理数据对应的目标操作为空间申请操作。
作为一种示例,所述确定待处理数据以及所述待处理数据对应的目标操作,还包括:
确定所述第一程序的宿主对象,并获取所述宿主对象的运行信息,所述运行信息包括:运行表和运行记录;
将所述宿主对象的运行信息确定为待处理数据,所述待处理数据对应的目标操作为空间申请操作。
作为另一种示例,所述确定待处理数据以及所述待处理数据对应的目标操作,还包括:
通过运行所述第一程序实例,创建所述第一程序的对象信息;
将所述第一程序的对象信息确定为所述待处理数据,所述待处理数据对应的目标操作为空间申请操作。
在第一方面的另一种可能设计中,所述确定待处理数据以及所述待处理数据对应的目标操作,包括:
获取第一程序发起的垃圾回收请求,所述第一程序为在所述芯片上创建的一个程序;
根据所述垃圾回收请求,检测所述芯片上所有已创建程序的垃圾对象信息,所述垃圾对象信息为第二类数据的垃圾信息;
将所有已创建程序的垃圾对象信息确定为所述待处理数据,所述待处理数据对应的目标操作为空间释放操作。
在第一方面的再一种可能设计中,所述确定待处理数据以及所述待处理数据对应的目标操作,包括:
获取外界发出的数据清理指令,所述数据清理指令包括:在所述芯片上创建的至少一个程序的标识;
根据所述数据清理指令,检测所述至少一个程序的待清理数据信息,所述待清理数据信息包括:第一类数据的待清理数据信息和第二类数据的待清理数据信息;
将所述至少一个程序的待清理数据信息确定为所述待处理数据,所述待处理数据对应的目标操作为空间释放操作。
在第一方面的又一种可能设计中,所述基于所述数据类型对应的空间管理方式,调用所述数据类型对应的空间操作接口对所述非易失性存储区中的空间进行目标操作,包括以下任意一种:
在所述待处理数据为第一类数据,且所述目标操作为空间申请操作时,通过调用第一类数据对应的第一空间操作接口,在所述非易失性存储区的第一端区域中确定出目标存储块的空间以用于存放所述待处理数据;
在所述待处理数据为第一类数据,且所述目标操作为空间释放操作时,通过调用第一类数据对应的第一空间操作接口,在所述非易失性存储区的第一端区域确定出所述待处理数据占用的至少一个存储块,删除所述至少一个存储块中的数据以释放空间;
在所述待处理数据为第二类数据,且所述目标操作为空间申请操作时,通过调用第二类数据对应的第二空间操作接口,在所述非易失性存储区的第二端区域中确定出目标字节的空间以用于存放所述待处理数据;
在所述待处理数据为第二类数据,且所述目标操作为空间释放操作时,通过调用第二类数据对应的第二空间操作接口,在所述非易失性存储区的第二端区域中确定出所述待处理数据占用目标字节空间,删除所述目标字节空间中的数据以释放空间。
作为一种示例,所述方法还包括:
在释放所述待处理数据占用的空间后,采用所述待处理数据所属数据类型对应的空间管理方式对所述空间所在的第一端区域和/或第二端区域中存在的数据碎片进行整理,以消除所述数据碎片。
作为另一种示例,所述方法还包括:
按照预设策略,判断所述非易失性存储区的第一端区域和/或第二端区域是否存在数据碎片;
在所述第一端区域和/或所述第二端区域存在数据碎片时,采用所述数据碎片所在区域存储的数据类型对应的空间管理方式,对存在数据碎片的区域进行碎片整理,以消除所述数据碎片。
可选的,所述第一类数据为所述芯片的操作系统产生的系统数据,所述第二类数据为所述芯片的操作系统产生的应用数据。
第二方面,本申请实施例提供一种存储空间管理装置,应用于包括非易失性存储区的芯片,所述装置包括:
第一处理模块,用于确定待处理数据以及所述待处理数据对应的目标操作;
第二处理模块,用于根据所述待处理数据的特征信息,确定所述待处理数据的数据类型;
调用模块,用于基于所述数据类型对应的空间管理方式,调用所述数据类型对应的空间操作接口对所述非易失性存储区中的空间执行所述目标操作;
不同的数据类型对应的空间管理方式和空间操作接口均不同。
在第二方面的一种可能设计中,第一处理模块,具体用于:
下载第一程序所属的包,所述第一程序所属的包包括:第一程序所属包的组件数据、第一程序所属包的属性数据;
根据所述第一程序所属的包,安装所述第一程序的实例,得到第一程序实例的属性数据;
将所述第一程序所属包的组件数据、所述第一程序所属包的属性数据和所述第一程序实例的属性数据,确定为所述待处理数据,所述待处理数据对应的目标操作为空间申请操作。
作为一种示例,该第一处理模块,还用于:
确定所述第一程序的宿主对象,并获取所述宿主对象的运行信息,所述运行信息包括:运行表和运行记录;
将所述宿主对象的运行信息确定为待处理数据,所述待处理数据对应的目标操作为空间申请操作。
作为另一种示例,该第一处理模块,还用于:
通过运行所述第一程序实例,创建所述第一程序的对象信息;
将所述第一程序的对象信息确定为所述待处理数据,所述待处理数据对应的目标操作为空间申请操作。
在第二方面的另一种可能设计中,所述第一处理模块,具体用于:
获取第一程序发起的垃圾回收请求,所述第一程序为在所述芯片上创建的一个程序;
根据所述垃圾回收请求,检测所述芯片上所有已创建程序的垃圾对象信息,所述垃圾对象信息为第二类数据的垃圾信息;
将所有已创建程序的垃圾对象信息确定为所述待处理数据,所述待处理数据对应的目标操作为空间释放操作。
在第二方面的再一种可能设计中,所述第一处理模块,具体用于:
获取外界发出的数据清理指令,所述数据清理指令包括:在所述芯片上创建的至少一个程序的标识;
根据所述数据清理指令,检测所述至少一个程序的待清理数据信息,所述待清理数据信息包括:第一类数据的待清理数据信息和第二类数据的待清理数据信息;
将所述至少一个程序的待清理数据信息确定为所述待处理数据,所述待处理数据对应的目标操作为空间释放操作。
在第二方面的又一种可能设计中,调用模块,具体用于执行以下任意一种:
在所述待处理数据为第一类数据,且所述目标操作为空间申请操作时,通过调用第一类数据对应的第一空间操作接口,在所述非易失性存储区的第一端区域中确定出目标存储块的空间以用于存放所述待处理数据;
在所述待处理数据为第一类数据,且所述目标操作为空间释放操作时,通过调用第一类数据对应的第一空间操作接口,在所述非易失性存储区的第一端区域确定出所述待处理数据占用的至少一个存储块,删除所述至少一个存储块中的数据以释放空间;
在所述待处理数据为第二类数据,且所述目标操作为空间申请操作时,通过调用第二类数据对应的第二空间操作接口,在所述非易失性存储区的第二端区域中确定出目标字节的空间以用于存放所述待处理数据;
在所述待处理数据为第二类数据,且所述目标操作为空间释放操作时,通过调用第二类数据对应的第二空间操作接口,在所述非易失性存储区的第二端区域中确定出所述待处理数据占用目标字节空间,删除所述目标字节空间中的数据以释放空间。
作为一种示例,第二处理模块,还用于:
在释放所述待处理数据占用的空间后,采用所述待处理数据所属数据类型对应的空间管理方式对所述空间所在的第一端区域和/或第二端区域中存在的数据碎片进行整理,以消除所述数据碎片。
作为另一种示例,第二处理模块,还用于:
按照预设策略,判断所述非易失性存储区的第一端区域和/或第二端区域是否存在数据碎片;
在所述第一端区域和/或所述第二端区域存在数据碎片时,采用所述数据碎片所在区域存储的数据类型对应的空间管理方式,对存在数据碎片的区域进行碎片整理,以消除所述数据碎片。
可选的,所述第一类数据为所述芯片的操作系统产生的系统数据,所述第二类数据为所述芯片的操作系统产生的应用数据。
第三方面,本申请实施例提供一种芯片,包括:处理模块、接口和非易失性存储区,所述处理模块用于调用并运行所述存储模块中存储的计算机程序,以实现上述第一方面以及各可能设计所述的方案。
在第三方面的一种可能设计中,所述存储模块包括:非易失性存储区和其他存储区;
所述非易失性存储区用于存储芯片中操作系统产生的系统数据和/或应用数据,所述计算机程序存储在所述其他存储区中。
在第三方面的另一种可能设计中,所述非易失性存储区被划分为预设数量个空间大小相等的存储块,所述存储块的使用信息被标记为位图的形式。
可选的,所述非易失性存储区包括:空间大小可动态变化的第一端区域和第二端区域;
所述第一端区域用于以存储块为粒度存储第一类数据,所述第二端区域用于以字节大小为粒度存储第二类数据,所述第一端区域和所述第二端区域的空间大小之和小于或等于所述非易失性存储区的空间总大小。
可选的,所述第一类数据的特征信息满足第一条件,所述第二类数据的特征信息满足第二条件,所述第一条件和第二条件不同。
可选的,所述第一端区域还用于存放存储数据和存储空间之间的映射信息,所述映射信息存储在指定的存储块中。
第四方面,本申请实施例提供一种电子设备,包括:第一方面及各可能设计所述的芯片。
第五方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现:第一方面及各可能设计所述的方案。
第六方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被执行时可实现上述第一方面所述的技术方案。
本申请实施例提供的存储空间管理方法、装置、芯片、设备及存储介质,通过确定待处理数据以及该待处理数据对应的目标操作,根据待处理数据的特征信息,确定待处理数据的数据类型,进而基于该数据类型对应的空间管理方式,调用数据类型对应的空间操作接口对非易失性存储区中的空间执行目标操作,其中,不同的数据类型对应的空间管理方式和空间操作接口均不同。该技术方案中,针对待处理数据对应的数据类型,执行特定的数据处理,能够降低安全芯片中非易失性存储区的空间管理难度,提高了空间整理效率。
附图说明
图1为本申请实施例提供的一种芯片的结构示意图;
图2为本申请实施例提供的存储空间管理方法实施例一的流程示意图;
图3为本申请实施例提供的存储空间管理方法实施例二的流程示意图;
图4为非易失性存储区中第一类数据和第二类数据的存储示意图;
图5为本申请实施例提供的存储空间管理方法实施例三的流程示意图;
图6为图5所示实施例中执行垃圾回收操作后的空间占用示意图;
图7为图6所示示意图中进行垃圾回收操作后的空间占用示意图;
图8为本申请实施例提供的存储空间管理方法实施例四的流程示意图;
图9为图8所示实施例中执行数据清理操作后的空间占用示意图;
图10为图9所示示意图中进行数据清理操作后的空间占用示意图;
图11为本申请实施例提供的存储空间管理装置实施例的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着通信技术的迅速发展,安全芯片特别是智能卡芯片在金融领域、通信领域得到了广泛的应用。随着智能终端、物联网的发展,以嵌入式安全元件(embedded securityelement,eSE)、嵌入式用户识别卡(embedded subscriber identity module,eSIM)为代表的安全芯片有着更为广阔的应用场景。
Java智能卡(Java Card)技术是专门为资源有限的安全芯片设计的一种平台无关的多应用操作系统,具体的,其是以智能卡硬件系统为基础,通过软件的方式构造的一个支持Java程序下载、安装、运行的软/硬件系统。由于引入了虚拟机技术,Java Card具备硬件无关性,即智能卡应用程序开发与智能卡硬件系统相分离,简化了开发过程,提高应用程序的可移植性与可重用性。
可选的,Java Card技术可以在保证安全的前提下,让多个Java小程序(JavaApplet)同时运行于安全芯片之上。其中,Java Applet是用Java语言编写的小应用程序,即Java小程序,运行在Java Card虚拟机之上,并能够产生特殊的效果。其中,Java Card虚拟机可以看作一个应用软件在硬件基础上模拟成的一台“计算机”。
在Java Card技术中,在虚拟机上安装的应用程序,即Java Applet,其在安全芯片中的部署及运行都需要动态的申请空间并存储数据在安全芯片的非易失性存储区中。同时,支撑Java Applet运行的Java Card虚拟机也会动态的申请空间存储数据。所以,实现Java Card技术的安全芯片需要一个非易失性存储区的空间管理模块,通过提供动态的申请、释放、碎片整理等功能,以满足数据的存储需求。
然而,在计算机领域中,随着部署到安全芯片上的应用越来越多、安全芯片的非易失性存储区的大小不断增长,当对非易失性存储区进行频繁的申请和释放后,更容易产生碎片,从而导致非易失存储空间不能得到有效的利用。因而,通过对智能卡的存储空间进行整理,尤其是非易失性存储区的空间,能够提高非易失性存储区的空间利用效率。
现有技术中,由于非易失性存储区是按照数据(不区分类型)对存储空间的申请顺序依次存储这些数据的,也就是各种类型数据混杂在一起存储,且存储的数据类型多样,不同类型的数据占用的空间大小也不同,因此造成空间管理难度大,而且在空间中产生较多的碎片需要进行空间整理时,需要对碎片区域与空闲区域之间的所有数据依次搬移,致使空间整理效率低。
示例性的,在Java Card技术场景中,java对象和其他数据通常混杂在一起存储在安全芯片的非易失性存储区中,java对象和其他数据的数据类型通常不同,占用的空间大小也通常不同,因而,现有的空间管理方法存在空间管理难度大的问题。此外,在最常见的垃圾回收场景中,当只需要回收一些垃圾java对象的空间时,对于产生碎片的空间,如果需要整理,则需要搬移大量的数据,也即,既需要搬移未删除的java对象(可以认为是有效的、非垃圾的java对象),也需要搬移其他类型的数据(例如,系统数据),存在碎片整理的性能消耗过大,空间整理效率较低的问题。
此外,现有技术中通过管理存储空间与存储数据的对应关系以实现安全芯片中空间的管理。但是,鉴于寻址空间的限制,当将该方法应用于容量较大的非易失性存储区时,会出现寻址失败的现象,例如,对于安全芯片,由于java card虚拟机是16位的,也就是java对象的地址线位数也是16位,使得安全芯片只能寻址16位的地址空间,导致16位地址线位数的寻址空间受限。因而,该方法难以应用到具有大容量非易失性存储区的安全芯片上,例如非易失性存储区超过1M字节甚至更大。
可选的,对安全芯片中非易失性存储区的空间管理,还可以采用分块管理的方法,即将非易失性存储区划分为大小相等的存储块后,数据的存储或释放均是以划分的存储块为粒度,该方法理论上可以应用于较大的非易失性存储区,但是由于空间管理的粒度较大,这时每个Java Applet创建或删除Java对象时,申请或释放的空间粒度是至少一个存储块,而Java Applet创建或删除的Java对象的数据较小,若频繁的申请小空间时,会造成巨大的空间浪费,难以充分利用安全芯片的非易失存储空间,导致非易失性存储区的利用效率低,用户体验差。
本申请的发明人发现:当在安全芯片中运行预先设计的可执行程序时,安全芯片中会产生安全芯片操作系统,可以利用该安全芯片操作系统来管理非易失性存储区的空间。本申请的技术构思是:将需要存储在非易失性存储区中的数据进行分类,针对不同种类的数据采用不同的管理机制,并且将不同种类的数据分开存储,例如,将java对象等具有相同特征的数据存储在非易失性存储区中地址空间的一端,其他数据存储在非易失性存储区中地址空间的另一端,其中,地址空间既可以是存储器的物理地址空间,也可以是经过一定转换的逻辑地址空间,这样可以提高安全芯片中非易失性存储区的空间利用效率,有效降低空间浪费,减小碎片产生的概率,此外,在java对象进行垃圾回收并产生碎片后,需要进行空间整理时,存储在非易失性存储区另一端的其他数据也是不会发生搬移的,减少碎片整理所带来的性能消耗,提高了空间整理效率。
基于上述技术问题和上述技术构思,本申请实施例提供了一种存储空间管理方法,通过确定待处理数据以及该待处理数据对应的目标操作,根据待处理数据的特征信息,确定待处理数据的数据类型,进而基于该数据类型对应的空间管理方式,调用数据类型对应的空间操作接口对非易失性存储区中的空间执行目标操作。该技术方案中,不同的数据类型对应的空间管理方式和空间操作接口均不同,针对待处理数据对应的数据类型,执行特定的数据处理,能够降低安全芯片中非易失性存储区的空间管理难度,提高了空间整理效率。进一步的,由于该方案扩大了数据的寻址范围,从而能够应用于大容量的非易失性存储区的管理。
可选的,本申请的技术方案可以对应用于Java Card技术的安全元件,例如,如嵌入式安全元件eSE、智能卡、eSIM等安全芯片。进一步的,该安全元件还可以集成在电子设备上,以提高电子设备上安装的芯片中非易失性存储区的利用效率。
示例性的,图1为本申请实施例提供的一种芯片的结构示意图。如图1所示,芯片10可以包括:处理模块101、接口102和存储模块103。
其中,该处理模块101可以用于从存储模块103中调用并运行存储模块103中存储的计算机程序,以实现本申请实施例提供的针对非易失性存储区的存储空间管理方法。
关于存储空间管理方法的具体实现可以参见下述方法实施例中的记载,此处不再赘述。
接口102指的是该芯片10与外界的通信接口或交互接口。在实际应用中,安全芯片的对外通信接口通常有ISO7816接口、串行外设接口(Serial Peripheral Interface,SPI)接口、I2C接口等等,不同的安全芯片所提供的对外接口不同。
可选的,在本申请实施例中,该存储模块103包括:非易失性存储区1031和其他存储区1032。
在本申请的一种可能设计中,该非易失性存储区1031用于存储芯片中操作系统产生的系统数据和/或应用数据。该存储空间管理方法对应的计算机程序可以存储在其他存储区1032中。
在本申请的一种可能设计中,该非易失性存储区1031可以用于存储芯片中操作系统产生的系统数据和/或应用数据,以及该存储空间管理方法对应的计算机程序。
具体的,在向非易失性存储区1031中存放芯片中操作系统产生的系统数据和/或应用数据之前,首先需要将该计算机程序加载在非易失性存储区1031的预设指定位置。可选的,该预设指定位置可以是非易失性存储区1031的任意固定位置,例如,非易失性存储区1031中的某个指定存储块或者该计算机程序对应大小的存储单元。本申请实施例并不对该预设指定位置的具体实现进行限定,其可以根据实际场景设定,此处不再赘述。
可以理解的是,其他存储区1032存储的内容可以根据设定确定,此处不对其进行限定。
可选的,该其他存储区1032可以是只读存储器(read-only memory,ROM)的空间,例如,带电可擦可编程只读存储器(electrically erasable programmable read onlymemory,EEPROM),也可以是易失存储区,例如,随机存取存储器(random access memory,RAM)。
示例性的,上述计算机程序可以存放在ROM,Flash,EEPROM中,可以运行在ROM,Flash,EEPROM,RAM中。其中,Flash和EEPROM属于非易失性存储区。
示例性的,参照如1所示,非易失性存储区1031被划分为预设数量个空间大小相等的存储块,且存储块的使用信息被标记为位图的形式。
在本申请实施例的一种可能设计中,非易失性存储区1031包括:空间大小可动态变化的第一端区域10311、第二端区域10312和空闲区域10313。
其中,第一端区域10311用于以存储块为粒度存储第一类数据,该第二端区域10312用于以字节大小为粒度存储第二类数据,该空闲区域10313是非易失性存储区1031中未使用的存储区域。
该第一端区域10311和第二端区域10312的空间大小之和小于或等于非易失性存储区1031的空间总大小。
可选的,第一类数据为所述芯片的操作系统产生的系统数据,第二类数据为所述芯片的操作系统产生的应用数据。
在本申请的实施例中,根据非易失性存储区中需要存储的数据的特征信息,可以采用不同的空间管理机制。可选的,在第一类数据的空间管理机制中,第一类数据占用的空间位于非易失性存储区的一端(本申请实施例中称为第一端区域10311),在第二类数据的空间管理机制中,第二类数据占用的空间位于非易失性存储区的另一端(本申请实施例中称为第二端区域10312)。
可选的,参照图1所述,该芯片10还可以包括:第一空间管理模块104和第二空间管理模块105。该第一空间管理模块104通过运行计算机程序中的alloc函数和free函数等抽象出一个第一空间操作接口1040,该第二空间管理模块105同样通过运行计算机程序中的alloc函数和free函数等抽象出一个第二空间操作接口1050。
示例性的,在芯片10需要处理第一类数据时,处理模块101可以调用第一空间管理模块104,利用该第一空间操作接口1040对非易失性存储区1031的第一端区域10311进行管理;在芯片10需要处理第二类数据时,处理模块101可以调用第二空间管理模块105,利用该第二空间操作接口1050对非易失性存储区1031的第二端区域10312进行管理。
可选的,第一类数据的空间管理机制和第二类数据的空间管理机制均能够保证各自占用的空间不会与另一个空间管理机制占用的空间发生重合。当两类数据的空间管理机制占用的空间发生重叠或者进行过碎片整理仍然发生重叠时,则表示非易失性存储区已经用完。
可选的,在本申请的实施例中,第一端区域10311还用于存放存储数据和存储空间之间的映射信息,该映射信息存储在指定的存储块中。
具体的,由于本申请的存储空间管理方法需要支持碎片整理方案,因而,需要使用一块固定的空间作为映射表,例如,利用第一端区域10311来存放存储数据和存储空间之间的映射信息,并将该映射信息存储在指定的存储块中。
在实际应用中,将每一个申请空间(存储空间)的实际地址映射为逻辑地址,这样可以保证在碎片整理后,能够根据逻辑地址找到移动后的数据的实际地址。
在本申请的实施例中,第一类数据的特征信息满足第一条件,第二类数据的特征信息满足第二条件,该第一条件和第二条件不同。
其中,第一条件包括如下任意一种:1)数量有限(数据总条数为有限值);2)单条数据需申请较大的空间保存(每条数据占用的空间较大或大于预设空间);3)数据的大小相对固定的,不会有较大的幅度变化。
第二条件包括如下任意一种:1)数量较大;2)单条数据的大小可大可小,不可预估。
相应的,在本实施例中,基于数据的特征信息,可以对需要在非易失性存储区中存储的数据进行分类,例如,分为第一类数据和第二类数据。可选的,第一类数据满足第一条件,第二类数据满足第二条件。
示例性的,在应用了Java Card技术的安全芯片中,根据Java Card技术的特点,可以将需要在安全芯片中动态申请非易失性存储区的空间用于存储的数据分为系统数据和Java Applet数据两类。
其中,系统数据指的是用于支撑Java Card虚拟机运行所需要动态存储的数据,以及Java Applet部署时需要存储的静态数据。具体的,该系统数据包括如下至少之一:
支撑Java Card虚拟机运行所需的各种表、记录等数据;
Java Applet所属包的组件数据;
Java Applet所属包的属性数据;
Java Applet实例的属性数据;
外部输入的密钥、证书等安全相关数据。
其中,支撑Java Card虚拟机运行所需的各种表、记录等数据、Java Applet所属包的属性数据以及Java Applet实例的属性数据通常均符合数据有限、单条数据需申请较大的空间保存和数据大小相对固定等特征;Java applet所属包的组件数据通常符合单条数据需申请较大空间保存、数量有限等特征;外部输入的密钥、证书等安全相关数据通常符合单条数据需申请较大空间保存和数据大小相对固定等特征。
可选的,Java Applet数据指的是Java Applet程序运行时由Java Applet程序主动创建的且需要在非易失性存储区中持久存储的Java对象。例如,Java Applet程序中通过new关键字创建出来的数组对象、类对象等。
由于Java Applet程序是由第三方的应用开发者编写的,Java Applet数据是通过运行Java applet程序而创建的java对象,其数量通常较大,又由于无法事先预估应用开发者编写的程序类型,故也无法预估通过运行Java applet程序而创建的java对象的数据数量和数据大小,即,单条数据的大小可大可小,不可预估。
由上述分析可知,上述系统数据具有特征:1)数量有限;2)单条数据需申请较大的空间保存;3)系统数据的大小相对比较固定,幅度变化小。上述Java Applet数据具有特征:1)数量较大;2)单条数据的大小可大可小,不可预估。因而,在Java Card技术对应的场景中,系统数据称为第一类数据,Java Applet数据称为第二类数据。
针对系统数据和Java Applet数据的特征,这两类数据所需空间的动态管理(申请、释放、碎片整理)可以采用不同的空间管理方式,分别是系统数据空间管理机制(第一空间管理机制)和Java Applet数据空间管理机制(第二空间管理机制)。在安全芯片的操作系统及应用运行时,系统数据和Java Applet数据所需的存储空间采用各自的空间管理机制进行动态申请、释放、碎片整理。
在本申请的实施例中,系统数据空间管理机制和Java Applet数据空间管理机制均可保证各自所申请的空间不会和另一个管理机制所申请的空间发生重合。例如,在系统数据空间管理机制中,将最新申请的空间集中排布在非易失性存储区的一端;在JavaApplet数据空间管理机制中,将新申请的空间集中排布在非易失性存储区的另一端。当发生重叠或者已进行过碎片整理仍然发生重叠时,则表示非易失性存储区已经用完。
可以理解的是,系统数据空间管理机制和Java Applet数据空间管理机制均有能力管理整个非易失性存储区,可应对空间使用的极端情况。例如,系统数据占据了非易失性存储区的绝大多数存储空间,或者Java Applet数据占据了非易失性存储区的绝大多数存储空间。
可选的,系统数据空间管理机制是一种粗粒度的空间管理机制,适应系统数据的特点。具体的,该系统数据空间管理机制针对系统数据的特征,主要采用使用分块管理的方法,即将整个非易失性存储区平均分割成一定数量大小相等的存储块。对于系统数据,每一个申请到的空间的起始地址为某一存储块的起始地址,每一个申请到的空间的大小为存储块大小的整数倍。
在本申请的实施例中,系统数据采用分块管理方法有如下优势:
1)逻辑简单,效率高;
2)一些系统数据的大小是确定的,经过特定设计存储块,可以尽量让这些系统数据的大小接近存储块大小的整数倍,这样可以将因非易失性存储区分块管理而导致的空间浪费减少到最低;
3)对于大小较大的系统数据,其通常超过甚至是块大小的几倍,且数量有限,此时,因分块管理而导致的空间浪费将在可接受范围之内;
4)采用位图(bitmap)的形式标记各个存储块的使用情况,由于采用分块管理,所以bitmap所占据的固定存储空间大小在可接受范围之内;
5)由于存储数据和存储空间之间的映射信息存储在指定的存储块中,由于映射信息的大小与存储空间分块的多少有关,分块越少,所需映射信息越少,所以,在采用分块管理时,该映射信息的大小在可接受范围之内。
可选的,Java Applet数据空间管理机制是一种细粒度的空间管理机制,适应JavaApplet数据的特点。具体的,Java Applet数据空间管理机制针对Java Applet数据的特征,主要采用记录已用空间或空闲空间信息的方法进行管理。该空间管理机制具有如下特点:
1)Java Applet的Java对象可以按照字节顺序存储,粒度小,几乎不产生空间浪费;
2)记录已用空间或空闲空间信息的映射表是一种系统数据,存储在系统数据区,即非易失性存储区的第一端区域;
3)为支持Java Applet数据区的碎片整理,可将每一个Java对象申请空间的实际地址映射为2个字节的逻辑标识,保证在碎片整理后,可以正常的找到移动后的地址。可选的,在实际应用中,用于存放这种映射信息的表也是一种系统数据,存储在系统数据区,即非易失性存储区的第一端区域。
有上述分析可知,本申请实施例提供的芯片,基于数据的特征信息,可以将需要存储到芯片中非易失性存储区的数据分为第一类数据和第二类数据,基于这两类数据的差异,根据这两类数据的特点设计各自不同的空间管理方式,能够适合各类数据的特点,有效减少了因空间管理的粒度问题导致的空间浪费现象。
进一步的,在本申请的实施例中,通过将两类数据分区域存储可以减少碎片产生的概率,即使有碎片产生,也可以减少碎片整理时搬移的数据量。例如,当Java Applet主动触发进行垃圾回收时,通常只会在Java Applet数据区出现碎片,只需要对Java Applet数据区进行碎片整理即可,避免因为对整个非易失性存储器的全部存储区进行碎片整理和数据搬移而带来的性能消耗。另外,由于Java Applet的对象具有局部性的特点,碎片个数会很少甚至没有,这样大大减少了碎片整理的代价。
上面介绍了本申请芯片的结构和应用原理,可以用于执行本申请提供的存储空间管理方法的技术方案,下面通过具体实施例对本申请的方法实施例进行详细说明。
需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图2为本申请实施例提供的存储空间管理方法实施例一的流程示意图。该方法可以应用于包括非易失性存储区的芯片,该芯片可以是上述图1所示的芯片。可选的,该芯片可以是安全芯片。在实际应用中,该方法的执行主体为芯片中的操作系统。
示例性的,如图2所示,该存储空间管理方法可以包括如下步骤:
S201、确定待处理数据以及该待处理数据对应的目标操作。
在本申请的实施例中,芯片的操作系统在执行某些操作后,可以生成某些数据,且需要对这些数据进行某些处理,例如,将这些数据存储至芯片的非易失性存储区或将芯片中非易失性存储区中已存储的数据释放等。
可选的,在本实施例中,可以将芯片的操作系统执行某些操作生成的数据作为待处理数据,需要对这些数据进行的操作作为待处理数据对应的目标操作。
S202、根据待处理数据的特征信息,确定待处理数据的数据类型。
在本申请的实施例中,芯片可以根据待处理数据的特征信息,例如,数据量大小、每条数据需占用的空间大小,数据大小是否相对固定等信息,确定出待处理数据的数据类型。
可选的,基于上述图1所示芯片中的记载,根据待处理数据的特征信息,可以确定出待处理数据的数据类型,例如,待处理数据为第一类数据,或者,待处理数据为第二类数据。本申请实施例并不限定待处理数据的具体类型,其可以根据实际场景确定,此处不再赘述。
S203、基于上述数据类型对应的空间管理方式,调用数据类型对应的空间操作接口对非易失性存储区中的空间执行上述目标操作。
其中,不同的数据类型对应的空间管理方式和空间操作接口均不同。
可选的,芯片中预先配置有数据类型与空间管理方式之间的对应关系,因而,在已知待处理数据的数据类型时,可以基于该数据类型对应的空间管理方式,调用与该数据类型对应的空间操作接口对非易失性存储区中的空间执行目标操作。示例性的,每个数据类型对应的空间操作接口还可以根据目标操作的不同分为不同的接口。即,不同的数据类型可以对应不同的空间管理方式,不同的数据类型对应不同的空间操作接口。
例如,根据上述图1所示实施例中记载,假设待处理数据为第一类数据或第二类数据,目标操作为存储数据或垃圾数据回收,则该步骤可以通过如下任意可能设计实现:
作为一种示例,在待处理数据为第一类数据,且目标操作为空间申请操作时,通过调用第一类数据对应的第一空间操作接口,在非易失性存储区的第一端区域中确定出目标存储块的空间以用于存放待处理数据。
例如,待处理数据为系统数据,空间申请操作即需要存储数据,则调用系统数据空间管理机制的第一空间操作接口(此时,通过alloc函数和free函数抽象为申请接口),以申请第一端区域中的空间,并利用该空间存放待处理数据。
作为另一种示例,在待处理数据为第一类数据,且目标操作为空间释放操作时,通过调用第一类数据对应的第一空间操作接口,在非易失性存储区的第一端区域确定出待处理数据占用的至少一个存储块,删除至少一个存储块中的数据以释放空间。
例如,待处理数据为系统数据,空间释放操作即需要进行垃圾回收,则调用系统数据空间管理机制的第一空间操作接口(此时,通过alloc函数和free函数确定为释放接口),以释放第一端区域中待处理数据占用的空间。
作为再一种示例,在待处理数据为第二类数据,且目标操作为空间申请操作时,通过调用第二类数据对应的第二空间操作接口,在非易失性存储区的第二端区域中确定出目标字节空间以用于存放待处理数据。
例如,待处理数据为Java Applet数据,空间申请操作即需要存储数据,则调用Java Applet数据空间管理机制的第二空间操作接口(同样,通过alloc函数和free函数确定为申请接口),以申请第二端区域中的空间,并利用该空间存放待处理数据。
作为又一种示例,在待处理数据为第二类数据,且目标操作为空间释放操作时,通过调用第二类数据对应的第二空间操作接口,在非易失性存储区的第二端区域中确定出待处理数据占用目标字节空间,删除目标字节空间中的数据以释放空间。
例如,待处理数据为Java Applet数据,空间释放操作即需要进行垃圾回收,则调用Java Applet数据空间管理机制的第二空间操作接口(同样,通过alloc函数和free函数确定为释放接口),以释放第二端区域中该待处理数据占用的空间。
本申请实施例提供的存储空间管理方法,通过确定待处理数据以及该待处理数据对应的目标操作,根据待处理数据的特征信息,确定待处理数据的数据类型,进而基于该数据类型对应的空间管理方式,调用数据类型对应的空间操作接口对非易失性存储区中的空间执行目标操作。该技术方案中,不同的数据类型对应的空间管理方式和空间操作接口均不同,针对待处理数据对应的数据类型,执行特定的数据处理,能够降低安全芯片中非易失性存储区的空间管理难度,提高了空间整理效率,此外,由于该方案还可以扩大数据的寻址范围,从而能够应用于大容量的非易失性存储区的管理。
进一步的,在本申请的实施例中,该存储空间管理方法还可以针对非易失性存储区中的碎片进行整理。
可选的,在本申请的一种可能设计中,该存储空间管理方法还可以包括如下步骤:
在释放待处理数据占用的空间后,采用该待处理数据所属数据类型对应的空间管理方式对该空间所在的第一端区域和/或第二端区域中存在的数据碎片进行整理,以消除上述数据碎片。
可选的,当待处理数据对应的目标操作为空间释放操作时,在释放掉待处理数据占用的空间后,还可以立即对该空间中存在的碎片进行整理,以消除碎片,释放该空间的无效占用,从而提高空间的利用效率。
具体的,在待处理数据为第一类数据时,采用第一类数据对应的空间管理方式对释放待处理数据后的空间中存在的碎片进行整理,在待处理数据为第二类数据时,采用第二类数据对应的空间管理方式对释放待处理数据后的空间中存在的碎片进行整理。
可选的,在本申请实施例的另一种可能设计中,该存储空间管理方法还可以包括如下步骤:
A1、按照预设策略,判断非易失性存储区的第一端区域和/或第二端区域是否存在数据碎片。
示例性的,该芯片中可以存储有数据碎片整理的预设策略,基于该预设策略,可以周期性或事件触发时执行碎片整理的方案。
可选的,可以根据该预设策略,判断Java Applet数据的存储区域(即第二端区域)是否需要进行碎片整理,或者,判断系统数据的存储区域(即第一端区域)是否需要进行碎片整理。
可选的,第一端区域和第二端区域对应的预设策略可以相同,也可以不同,例如,两个区域对应的碎片整理周期不同,两个区域的碎片整理触发事件相同等。本申请实施例并不限定预设策略的具体表现形式,其可以根据实际场景确定,此处不再赘述。
A2、在第一端区域和/或第二端区域存在数据碎片时,采用所述数据碎片所在区域存储的数据类型对应的空间管理方式,对存在数据碎片的区域进行碎片整理,以消除数据碎片。
示例性的,若Java Applet数据所在的第二端区域中存在数据碎片,即采用第二类数据对应的空间管理方式对第二端区域进行碎片整理,若系统数据所在的第一端区域中存在数据碎片,即采用第一类数据对应的空间管理方式对第一端区域进行碎片整理,从而消除掉存在的数据碎片,以保证该数据碎片之前占用的空间能够被使用,以提高空间的利用效率。
本申请实施例提供的存储空间管理方法,通过对第一端区域和/或第二端区域进行碎片检测,并相应的进行数据碎片整理,因而,能够有效提高非易失性存储区中空间的利用效率。
示例性的,在本申请实施例的一种可能设计中,图3为本申请实施例提供的存储空间管理方法实施例二的流程示意图。如图3所示,在本申请的实施例中,上述S201可以包括如下步骤:
S301、下载第一程序所属的包,该第一程序所属的包包括:第一程序所属包的组件数据、第一程序所属包的属性数据。
可选的,在Java Card技术对应的场景中,第一程序可以是安装在该芯片中承载在Java虚拟机上运行的Java Applet。因而,当芯片的操作系统下载一个Java Applet所属的包,安装Java Applet的实例、运行Java Applet实例时,可以确定待处理数据和待处理数据对应的目标操作。
示例性的,若第一程序为Java Applet时,该第一程序所属的包包括:Java Applet所属包的组件数据、Java Applet所属包的属性数据。根据数据分类的特征信息可知,该第一程序所属的包包括的数据为系统数据,且其是需要存储至非易失性存储区的系统数据。
S302、根据第一程序所属的包,安装第一程序的实例,得到第一程序实例得属性数据。
可选的,在Java Card技术对应的场景中,根据下载的第一程序所属的包可以安装第一程序的实例,得到第一程序实例的属性数据,即根据某一Java Applet所属的包安装Java Applet的实例,从而可以得到Java Applet实例的版本、名称、标识等属性数据。
S303、将第一程序所属包的组件数据、第一程序所属包的属性数据和第一程序实例的属性数据,确定为待处理数据,待处理数据对应的目标操作为空间申请操作。
可选的,在下载第一程序所属的包且安装第一程序的实例时,可以将生成的第一程序所属包的组件数据、第一程序所属包的属性数据和第一程序实例的属性数据确定为待处理数据,由于新生成的数据需要存储,因而,该待处理数据对应的目标操作为空间申请操作。
可选的,根据图1所示实施例中对数据类型的划分,该待处理数据为第一类数据。
进一步的,参照图3所示,上述S201还可以包括如下步骤:
S304、确定第一程序的宿主对象,并获取该宿主对象的运行信息。
其中,该运行信息可以包括:运行表和运行记录。
S305、将宿主对象的运行信息确定为待处理数据,该待处理数据对应的目标操作为空间申请操作。
可选的,在本申请的实施例中,第一程序指的是运行在宿主对象上的小程序,如果要保证第一程序的正常运行,需要获取宿主对象的运行信息。
可选的,为了保证宿主对象的正常运行,芯片也需要对该宿主对象的运行信息进行存储,所以,宿主对象的运行信息也是待处理数据,且该待处理数据的目标操作为空间申请操作。
示例性的,若第一程序为Java Applet,则第一程序的宿主对象为Java虚拟机,因而,为了保证Java Applet和Java虚拟机的正常运行,需要利用一定的空间用于存储支撑Java虚拟机的运行表、运行记录等运行信息。
进一步的,参照图3所示,上述S201还可以包括如下步骤:
S306、通过运行第一程序实例,创建第一程序的对象信息。
S307、将第一程序的对象信息确定为待处理数据,该待处理数据对应的目标操作为空间申请操作。
在本申请的实施例中,在第一程序实例运行时,可以创建第一程序对应的对象,并对其进行存储。所以,第一程序的对象信息也是待处理数据,其对应的目标操作为空间申请操作。
例如,在Java Applet实例运行,创建Java对象后,调用Java Applet数据空间管理机制的申请接口,申请空间,以存储这些Java对象。
本申请实施例提供的存储空间管理方法,通过下载第一程序所属的包,该第一程序所属的包包括:第一程序所属包的组件数据、第一程序所属包的属性数据,根据第一程序所属的包,安装第一程序的实例,得到第一程序实例,其次确定第一程序的宿主对象,并获取该宿主对象的运行信息,以及通过运行第一程序实例,创建第一程序的对象信息,因而,第一程序所属包的组件数据、第一程序所属包的属性数据和第一程序实例的属性数据以及宿主对象的运行信息、第一程序的对象信息均是待处理数据,待处理数据对应的目标操作为空间申请操作。该技术方案,可以将所有新生成的数据均作为待处理数据,进而对其进行存储,从而明确了待处理数据的目标操作,其为后续非易失性存储区的空间管理奠定了基础。
可选的,在图3所示实施例的基础上,下面结合下载一个Java Applet所属的包,安装Java Applet的实例、运行Java Applet实例的场景,对本申请的技术方案进行解释说明。示例性的,图4为非易失性存储区中第一类数据和第二类数据的存储示意图。芯片通过执行如下流程可以得到将待处理数据分别存储至非易失性存储区的第一端区域和/或第二端区域中。
具体的,该存储空间管理方法可以包括如下步骤:
1)调用系统数据空间管理机制的申请接口申请空间,以存储Java Applet所属包的组件数据;
2)调用系统数据空间管理机制的申请接口申请空间,以存储Java Applet所属包的属性数据;
3)调用系统数据空间管理机制的申请接口申请空间,以存储Java Applet实例的属性数据;
4)示例性的,若需要,调用系统数据空间管理机制的申请接口申请空间,以存储支撑Java虚拟机运行的表、记录等。
可选的,该步骤可以针对第一次下载Java Applet所属的包,安装Java Applet的实例、运行Java Applet实例的场景,对于后续再次下载Java Applet所属的包和/或安装Java Applet的实例和/或运行Java Applet实例时,可以无需执行该步骤。
5)Java Applet实例运行,创建Java对象,调用Java Applet数据空间管理机制的申请接口申请空间,以存储这些Java对象。
系统数据从非易失性存储区的尾部开始向前申请;Java Applet数据从非易失性存储区的头部开始向后申请。在非易失性存储区的头部,集中了各个Java Applet创建的Java对象;在非易失性存储区的尾部,集中了已申请空间并存储的系统数据,如JavaApplet所属包的组件数据等。
示例性的,参照图4所示,系统数据从非易失性存储区的尾部开始向前申请,JavaApplet数据从非易失性存储区的头部开始向后申请。在非易失性存储区的头部,集中了各个Java Applet创建的Java对象的信息,例如,Java对象1至Java对象4;在非易失性存储区的尾部,集中了已申请空间并存储的系统数据,如外部输入的密钥、证书等安全相关数据、支撑Java虚拟机运行的表和记录、Java程序(Java Applet)所属包的组件数据、Java程序(Java Applet)所属包的属性数据、Java程序(Java Applet)实例的属性数据等。
进一步的,在本申请的实施例中,垃圾回收即将不再使用的Java对象删除,并将其所占据的空间释放的过程,下述对垃圾回收过程中的存储空间管理方法进行解释说明。
示例性的,在本申请实施例的另一种可能设计中,图5为本申请实施例提供的存储空间管理方法实施例三的流程示意图。如图5所示,在本申请的实施例中,上述S201可以包括如下步骤:
S501、获取第一程序发起的垃圾回收请求,该第一程序为在芯片上创建的一个程序。
在本申请的实施例中,芯片上创建的程序可以主动发起垃圾回收操作,例如,可以通过该程序的承载应用发起,因而,在芯片上的第一程序发起的垃圾回收请求时,该芯片能够获取到该垃圾回收请求。
S502、根据该垃圾回收请求,检测该芯片上所有已创建程序的垃圾对象信息,该垃圾对象信息为第二类数据的垃圾信息。
可选的,芯片在获取到垃圾回收请求时,可以对芯片上所有的垃圾对象信息进行检测,由于该垃圾回收请求是单个程序发起的,因而,其仅能针对第二类数据中的垃圾对象信息进行操作。
示例性的,在Java card技术的场景中,当某一Java Applet主动发起了垃圾回收操作(通过调用Java Card API发起),那么该芯片的操作系统会对所有的Java Applet所创建的垃圾Java对象进行回收。
可选的,由于Java对象在创建过程中属于第二类数据,所以,垃圾Java对象为第二类数据。
S503、将所有已创建程序的垃圾对象信息确定为待处理数据,该待处理数据对应的目标操作为空间释放操作。
示例性的,由于需要将所有已创建程序的垃圾对象信息从非易失性存储区的空间中删除,即释放垃圾对象信息所占用的空间,所以,在本申请的实施例中,上述所有已创建程序的垃圾对象信息为待处理数据,对应的目标操作为空间释放操作。
本申请实施例提供的存储空间管理方法,通过获取第一程序发起的垃圾回收请求,根据该垃圾回收请求,检测该芯片上所有已创建程序的垃圾对象信息,并将所有已创建程序的垃圾对象信息确定为待处理数据,该待处理数据对应的目标操作为空间释放操作。该技术方案中,对于单个程序发起的垃圾回收请求,其是局部性,即其仅对非易失性存储区中第二端区域内存储的第二类数据进行垃圾回收操作,降低了垃圾回收的成本。
示例性的,在本申请的实施例中,图6为图5所示实施例中执行垃圾回收操作后的空间占用示意图。图7为图6所示示意图中进行垃圾回收操作后的空间占用示意图。假设第一程序Java Applet申请释放的是Java对象3的空间,则如图6所示,芯片会释放Java对象3所占据的空间,此时,在Java Applet数据区会产生一些碎片,具体在Java对象3原来所占据的位置处。
可选的,参照图7所示,芯片还可以对上述空间中的碎片进行整理,以消除存在的碎片,图7示出的是消除碎片后的示意图。
由上述图5所示的实施例以及图6、图7的示意图可知,单个程序发起的垃圾回收操作,系统数据区的数据不会变化,也不会参与垃圾回收和碎片整理,减少了垃圾回收和碎片整理的代价。
示例性的,在本申请实施例的再一种可能设计中,图8为本申请实施例提供的存储空间管理方法实施例四的流程示意图。如图8所示,在本申请的实施例中,上述S201可以包括如下步骤:
S801、获取外界发出的数据清理指令,该数据清理指令包括:在芯片上创建的至少一个程序的标识。
在本申请的实施例中,芯片还可以基于外界发出的数据清理指令执行清理数据的操作。可选的,数据清理指令可以是删除指令,也可以是垃圾回收指令。示例性的,当用户需要删除芯片上创建的某个或某些程序时,可以通过预设方式(用户操作界面上的标识或语音方式等,本申请实施例并不对其进行限定)向芯片发出数据清理指令,并且该数据清理指令包括:至少一个程序的标识,该至少一个程序即期待删除或释放空间的程序。
S802、根据该数据清理指令,检测上述至少一个程序的待清理数据信息,该待清理数据信息包括:第一类数据的待清理数据信息和第二类数据的待清理数据信息。
可选的,在芯片获取到外界发出的数据清理指令时,首先确定出该数据清理指令包括的至少一个程序,进而基于该至少一个程序的标识在非易失性存储区(包括第一端区域和第二端区域)中查询该至少一个程序对应的待清理数据信息,即该至少一个程序中每个程序对应的第一类数据的待清理数据信息和第二类数据的待清理数据信息。可选的,该待清理数据信息可以是每个程序对应的对象信息等。
S803、将至少一个程序的待清理数据信息确定为待处理数据,该待处理数据对应的目标操作为空间释放操作。
可选的,由于需要将至少一个程序的待清理数据信息从非易失性存储区的空间中删除,即释放上述至少一个程序的待清理数据信息所占用的空间,所以,在本申请的实施例中,上述至少一个程序的待清理数据信息为待处理数据,对应的目标操作为空间释放操作。
本申请实施例提供的存储空间管理方法,通过获取外界发出的数据清理指令,该数据清理指令包括在芯片上创建的至少一个程序的标识,根据该数据清理指令,检测上述至少一个程序的待清理数据信息,将至少一个程序的待清理数据信息确定为待处理数据,该待处理数据对应的目标操作为空间释放操作。该技术方案中,芯片通过根据外界指示可以对整个非易失性存储区内存储的垃圾数据进行删除和/或垃圾回收操作,提高了空间释放效率。
例性的,在本申请的实施例中,图9为图8所示实施例中执行数据清理操作后的空间占用示意图。图10为图9所示示意图中进行数据清理操作后的空间占用示意图。假设从外界获取到的数据清理指令针对的是Java Applet的系统数据和Java对象,所以,芯片首先基于该数据清理指令,首先对Java Applet所创建的Java对象2和Java对象3等Java Applet数据进行垃圾回收,如图9所示,释放垃圾Java对象2和Java对象3所占据的空间;其次删除Java Applet实例和包的相关数据,具体的,删除Java Applet实例的属性数据、JavaApplet所属包的属性数据和组件数据等系统数据,释放系统数据空间。
进一步的,参照图10所示,在释放Java Applet数据和系统数据的空间后,还可以进行碎片整理,以消除非易失性存储区中存在的碎片,图10示出的是消除碎片后的示意图。
可以理解的是,本申请实施例并不限定碎片整理的时机,其可以在释放出JavaApplet数据后立即执行Java Applet数据区的碎片整理,以及在释放系统数据后立即执行系统数据区的碎片整理,也可以在释放出Java Applet数据以及释放系统数据后再一同对Java Applet数据区和系统数据区分别进行碎片整理。
由上述图8所示的实施例以及图9、图10的示意图可知,当获取到外界发出的数据清理指令时,芯片能够对Java Applet数据区和系统数据区共同进行数据清理以及碎片整理操作,提高了空间管理效率。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图11为本申请实施例提供的存储空间管理装置实施例的结构示意图。如图11所示,该存储空间管理装置应用于包括非易失性存储区的芯片。如图11所示,该装置可以包括:
第一处理模块1101,用于确定待处理数据以及所述待处理数据对应的目标操作;
第二处理模块1102,用于根据所述待处理数据的特征信息,确定所述待处理数据的数据类型;
调用模块1103,用于基于所述数据类型对应的空间管理方式,调用所述数据类型对应的空间操作接口对所述非易失性存储区中的空间执行所述目标操作;不同的数据类型对应的空间管理方式和空间操作接口均不同。
在本申请实施例的一种可能设计中,第一处理模块1101,具体用于:
下载第一程序所属的包,所述第一程序所属的包包括:第一程序所属包的组件数据、第一程序所属包的属性数据;
根据所述第一程序所属的包,安装所述第一程序的实例,得到第一程序实例的属性数据;
将所述第一程序所属包的组件数据、所述第一程序所属包的属性数据和所述第一程序实例的属性数据,确定为所述待处理数据,所述待处理数据对应的目标操作为空间申请操作。
作为一种示例,该第一处理模块1001,还用于:
确定所述第一程序的宿主对象,并获取所述宿主对象的运行信息,所述运行信息包括:运行表和运行记录;
将所述宿主对象的运行信息确定为待处理数据,所述待处理数据对应的目标操作为空间申请操作。
作为另一种示例,该第一处理模块1001,还用于:
通过运行所述第一程序实例,创建所述第一程序的对象信息;
将所述第一程序的对象信息确定为所述待处理数据,所述待处理数据对应的目标操作为空间申请操作。
在本申请实施例的另一种可能设计中,第一处理模块1101,具体用于:
获取第一程序发起的垃圾回收请求,所述第一程序为在所述芯片上创建的一个程序;
根据所述垃圾回收请求,检测所述芯片上所有已创建程序的垃圾对象信息,所述垃圾对象信息为第二类数据的垃圾信息;
将所有已创建程序的垃圾对象信息确定为所述待处理数据,所述待处理数据对应的目标操作为空间释放操作。
在本申请实施例的再一种可能设计中,第一处理模块1101,具体用于:
获取外界发出的数据清理指令,所述数据清理指令包括:在所述芯片上创建的至少一个程序的标识;
根据所述数据清理指令,检测所述至少一个程序的待清理数据信息,所述待清理数据信息包括:第一类数据的待清理数据信息和第二类数据的待清理数据信息;
将所述至少一个程序的待清理数据信息确定为所述待处理数据,所述待处理数据对应的目标操作为空间释放操作。
在本申请实施例的又一种可能设计中,调用模块1103,具体用于执行以下任意一种:
在所述待处理数据为第一类数据,且所述目标操作为空间申请操作时,通过调用第一类数据对应的第一空间操作接口,在所述非易失性存储区的第一端区域中确定出目标存储块的空间以用于存放所述待处理数据;
在所述待处理数据为第一类数据,且所述目标操作为空间释放操作时,通过调用第一类数据对应的第一空间操作接口,在所述非易失性存储区的第一端区域确定出所述待处理数据占用的至少一个存储块,删除所述至少一个存储块中的数据以释放空间;
在所述待处理数据为第二类数据,且所述目标操作为空间申请操作时,通过调用第二类数据对应的第二空间操作接口,在所述非易失性存储区的第二端区域中确定出目标字节的空间以用于存放所述待处理数据;
在所述待处理数据为第二类数据,且所述目标操作为空间释放操作时,通过调用第二类数据对应的第二空间操作接口,在所述非易失性存储区的第二端区域中确定出所述待处理数据占用目标字节空间,删除所述目标字节空间中的数据以释放空间。
作为一种示例,第二处理模块1102,还用于:
在释放所述待处理数据占用的空间后,采用所述待处理数据所属数据类型对应的空间管理方式对所述空间所在的第一端区域和/或第二端区域中存在的数据碎片进行整理,以消除所述数据碎片。
作为另一种示例,第二处理模块1102,还用于:
按照预设策略,判断所述非易失性存储区的第一端区域和/或第二端区域是否存在数据碎片;
在所述第一端区域和/或所述第二端区域存在数据碎片时,采用所述数据碎片所在区域存储的数据类型对应的空间管理方式,对存在数据碎片的区域进行碎片整理,以消除所述数据碎片。
可选的,所述第一类数据为所述芯片的操作系统产生的系统数据,所述第二类数据为所述芯片的操作系统产生的应用数据。
本申请实施例提供的装置,可用于执行上述方法实施例所述的技术方案,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,处理模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上处理模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
进一步的,本申请的实施例还提供一种电子设备,该电子设备可以包括上述实施例中的芯片。该芯片用于执行上述方法实施例所述的技术方案。
示例性的,本申请实施例提供的电子设备可以包括:处理器、存储器、通信接口和系统总线。其中,存储器和通信接口通过系统总线与处理器连接并完成相互间的通信,存储器用于存储计算机执行指令,通信接口用于和其他设备进行通信,处理器执行上述计算机执行指令时实现如上述方法实施例所述的方案。
可选的,在本申请的实施例中,处理器可以为一个芯片。
可选的,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当其在计算机上运行时,使得计算机执行如上述方法实施例所述的技术方案。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,至少一个处理器可以从所述计算机可读存储介质中读取所述计算机程序,所述至少一个处理器执行所述计算机程序时可实现上述方法实施例所述的技术方案。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系;在公式中,字符“/”,表示前后关联对象是一种“相除”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中,a,b,c可以是单个,也可以是多个。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。在本申请的实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (19)

1.一种存储空间管理方法,应用于包括非易失性存储区的芯片,其特征在于,所述方法包括:
确定待处理数据以及所述待处理数据对应的目标操作;
根据所述待处理数据的特征信息,确定所述待处理数据的数据类型;
基于所述数据类型对应的空间管理方式,调用所述数据类型对应的空间操作接口对所述非易失性存储区中的空间执行所述目标操作;
不同的数据类型对应的空间管理方式和空间操作接口均不同。
2.根据权利要求1所述的方法,其特征在于,所述确定待处理数据以及所述待处理数据对应的目标操作,包括:
下载第一程序所属的包,所述第一程序所属的包包括:第一程序所属包的组件数据、第一程序所属包的属性数据;
根据所述第一程序所属的包,安装所述第一程序的实例,得到第一程序实例的属性数据;
将所述第一程序所属包的组件数据、所述第一程序所属包的属性数据和所述第一程序实例的属性数据,确定为所述待处理数据,所述待处理数据对应的目标操作为空间申请操作。
3.根据权利要求2所述的方法,其特征在于,所述确定待处理数据以及所述待处理数据对应的目标操作,还包括:
确定所述第一程序的宿主对象,并获取所述宿主对象的运行信息,所述运行信息包括:运行表和运行记录;
将所述宿主对象的运行信息确定为待处理数据,所述待处理数据对应的目标操作为空间申请操作。
4.根据权利要求2所述的方法,其特征在于,所述确定待处理数据以及所述待处理数据对应的目标操作,还包括:
通过运行所述第一程序实例,创建所述第一程序的对象信息;
将所述第一程序的对象信息确定为所述待处理数据,所述待处理数据对应的目标操作为空间申请操作。
5.根据权利要求1所述的方法,其特征在于,所述确定待处理数据以及所述待处理数据对应的目标操作,包括:
获取第一程序发起的垃圾回收请求,所述第一程序为在所述芯片上创建的一个程序;
根据所述垃圾回收请求,检测所述芯片上所有已创建程序的垃圾对象信息,所述垃圾对象信息为第二类数据的垃圾信息;
将所有已创建程序的垃圾对象信息确定为所述待处理数据,所述待处理数据对应的目标操作为空间释放操作。
6.根据权利要求1所述的方法,其特征在于,所述确定待处理数据以及所述待处理数据对应的目标操作,包括:
获取外界发出的数据清理指令,所述数据清理指令包括:在所述芯片上创建的至少一个程序的标识;
根据所述数据清理指令,检测所述至少一个程序的待清理数据信息,所述待清理数据信息包括:第一类数据的待清理数据信息和第二类数据的待清理数据信息;
将所述至少一个程序的待清理数据信息确定为所述待处理数据,所述待处理数据对应的目标操作为空间释放操作。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述基于所述数据类型对应的空间管理方式,调用所述数据类型对应的空间操作接口对所述非易失性存储区中的空间进行目标操作,包括以下任意一种:
在所述待处理数据为第一类数据,且所述目标操作为空间申请操作时,通过调用第一类数据对应的第一空间操作接口,在所述非易失性存储区的第一端区域中确定出目标存储块的空间以用于存放所述待处理数据;
在所述待处理数据为第一类数据,且所述目标操作为空间释放操作时,通过调用第一类数据对应的第一空间操作接口,在所述非易失性存储区的第一端区域确定出所述待处理数据占用的至少一个存储块,删除所述至少一个存储块中的数据以释放空间;
在所述待处理数据为第二类数据,且所述目标操作为空间申请操作时,通过调用第二类数据对应的第二空间操作接口,在所述非易失性存储区的第二端区域中确定出目标字节的空间以用于存放所述待处理数据;
在所述待处理数据为第二类数据,且所述目标操作为空间释放操作时,通过调用第二类数据对应的第二空间操作接口,在所述非易失性存储区的第二端区域中确定出所述待处理数据占用目标字节空间,删除所述目标字节空间中的数据以释放空间。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在释放所述待处理数据占用的空间后,采用所述待处理数据所属数据类型对应的空间管理方式对所述空间所在的第一端区域和/或第二端区域中存在的数据碎片进行整理,以消除所述数据碎片。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
按照预设策略,判断所述非易失性存储区的第一端区域和/或第二端区域是否存在数据碎片;
在所述第一端区域和/或所述第二端区域存在数据碎片时,采用所述数据碎片所在区域存储的数据类型对应的空间管理方式,对存在数据碎片的区域进行碎片整理,以消除所述数据碎片。
10.根据权利要求7所述的方法,其特征在于,所述第一类数据为所述芯片的操作系统产生的系统数据,所述第二类数据为所述芯片的操作系统产生的应用数据。
11.一种存储空间管理装置,应用于包括非易失性存储区的芯片,其特征在于,所述装置包括:
第一处理模块,用于确定待处理数据以及所述待处理数据对应的目标操作;
第二处理模块,用于根据所述待处理数据的特征信息,确定所述待处理数据的数据类型;
调用模块,用于基于所述数据类型对应的空间管理方式,调用所述数据类型对应的空间操作接口对所述非易失性存储区中的空间执行所述目标操作;
不同的数据类型对应的空间管理方式和空间操作接口均不同。
12.一种芯片,其特征在于,包括:处理模块、接口和存储模块,所述处理模块用于调用并运行所述存储模块中存储的计算机程序,以实现上述权利要求1-10任一项所述的方法。
13.根据权利要求12所述的芯片,其特征在于,所述存储模块包括:非易失性存储区和其他存储区;
所述非易失性存储区用于存储芯片中操作系统产生的系统数据和/或应用数据,所述计算机程序存储在所述其他存储区中。
14.根据权利要求12或13所述的芯片,其特征在于,所述非易失性存储区被划分为预设数量个空间大小相等的存储块,所述存储块的使用信息被标记为位图的形式。
15.根据权利要求14所述的芯片,其特征在于,所述非易失性存储区包括:空间大小可动态变化的第一端区域和第二端区域;
所述第一端区域用于以存储块为粒度存储第一类数据,所述第二端区域用于以字节大小为粒度存储第二类数据,所述第一端区域和所述第二端区域的空间大小之和小于或等于所述非易失性存储区的空间总大小。
16.根据权利要求15所述的芯片,其特征在于,所述第一类数据的特征信息满足第一条件,所述第二类数据的特征信息满足第二条件,所述第一条件和第二条件不同。
17.根据权利要求15或16所述的芯片,其特征在于,所述第一端区域还用于存放存储数据和存储空间之间的映射信息,所述映射信息存储在指定的存储块中。
18.一种电子设备,其特征在于,包括:权利要求12-16任一项所述的芯片。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-10任一项所述的方法。
CN202011069885.2A 2020-09-30 2020-09-30 存储空间管理方法、装置、芯片、设备及存储介质 Active CN112199042B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011069885.2A CN112199042B (zh) 2020-09-30 2020-09-30 存储空间管理方法、装置、芯片、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011069885.2A CN112199042B (zh) 2020-09-30 2020-09-30 存储空间管理方法、装置、芯片、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112199042A true CN112199042A (zh) 2021-01-08
CN112199042B CN112199042B (zh) 2024-08-02

Family

ID=74013622

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011069885.2A Active CN112199042B (zh) 2020-09-30 2020-09-30 存储空间管理方法、装置、芯片、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112199042B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113490112A (zh) * 2021-07-02 2021-10-08 歌尔科技有限公司 一种无线耳机及无线耳机的数据处理方法、存储介质
CN113505402A (zh) * 2021-09-09 2021-10-15 深圳市轻生活科技有限公司 一种基于智能芯片的安全管控方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140089585A1 (en) * 2012-09-27 2014-03-27 Akio Nakajima Hierarchy memory management
CN106776908A (zh) * 2016-11-30 2017-05-31 广东欧珀移动通信有限公司 数据清理方法、装置及终端
CN107908371A (zh) * 2017-12-08 2018-04-13 浪潮软件股份有限公司 一种数据管理系统及其实现数据管理业务的方法
CN107967121A (zh) * 2017-10-25 2018-04-27 华为技术有限公司 数据写入方法和存储设备
CN108073363A (zh) * 2017-12-28 2018-05-25 深圳市得微电子有限责任公司 数据存储方法、存储设备及计算机可读存储介质
CN111046045A (zh) * 2019-12-13 2020-04-21 中国平安财产保险股份有限公司 处理数据倾斜的方法、装置、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140089585A1 (en) * 2012-09-27 2014-03-27 Akio Nakajima Hierarchy memory management
CN106776908A (zh) * 2016-11-30 2017-05-31 广东欧珀移动通信有限公司 数据清理方法、装置及终端
CN107967121A (zh) * 2017-10-25 2018-04-27 华为技术有限公司 数据写入方法和存储设备
CN107908371A (zh) * 2017-12-08 2018-04-13 浪潮软件股份有限公司 一种数据管理系统及其实现数据管理业务的方法
CN108073363A (zh) * 2017-12-28 2018-05-25 深圳市得微电子有限责任公司 数据存储方法、存储设备及计算机可读存储介质
CN111046045A (zh) * 2019-12-13 2020-04-21 中国平安财产保险股份有限公司 处理数据倾斜的方法、装置、设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113490112A (zh) * 2021-07-02 2021-10-08 歌尔科技有限公司 一种无线耳机及无线耳机的数据处理方法、存储介质
CN113490112B (zh) * 2021-07-02 2022-11-25 歌尔科技有限公司 一种无线耳机及无线耳机的数据处理方法、存储介质
CN113505402A (zh) * 2021-09-09 2021-10-15 深圳市轻生活科技有限公司 一种基于智能芯片的安全管控方法及系统

Also Published As

Publication number Publication date
CN112199042B (zh) 2024-08-02

Similar Documents

Publication Publication Date Title
US10990540B2 (en) Memory management method and apparatus
US7721064B1 (en) Memory allocation in memory constrained devices
WO2009098547A1 (en) Memory management
JP2013137771A (ja) データ利用についてのマウント時間の調停
CN109150642B (zh) 应用内存错误检测方法、检测装置及存储介质
EP4030289A1 (en) Method and device for virtual machine memory management
CN112667405B (zh) 信息处理方法、装置、设备及存储介质
US11880298B2 (en) Allocation of memory within a data type-specific memory heap
CN110162328B (zh) 一种智能卡操作系统升级方法及装置
CN111522659B (zh) 一种空间使用方法和装置
CN112199042A (zh) 存储空间管理方法、装置、芯片、设备及存储介质
CN114327917A (zh) 内存管理方法、计算设备及可读存储介质
CN115617504A (zh) 一种内存管理系统、泄露检测方法及存储介质
WO1999067711A1 (en) System and method for optimizing representation of associations in object-oriented programming environments
US10417121B1 (en) Monitoring memory usage in computing devices
CN116954906A (zh) 图数据库集群中的节点扩缩容方法、系统、终端及介质
CN115729702A (zh) 应用程序内存配置方法、电子设备、计算机存储介质
CN115509741A (zh) 一种内存管理系统、越界检测方法及存储介质
CN113504997B (zh) 应用程序安装包文件的处理方法、装置、设备及介质
CN115543859A (zh) 多分区ssd的磨损均衡优化方法、装置、设备及介质
US9218275B2 (en) Memory management control system, memory management control method, and storage medium storing memory management control program
CN108196790B (zh) 数据管理方法、存储设备及计算机可读存储介质
CN112445543B (zh) 智能合约的类调用方法、装置及电子设备
CN110851181A (zh) 数据处理方法、装置及计算设备
CN117171062A (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