CN110413339A - 加载软件模块的方法和装置 - Google Patents
加载软件模块的方法和装置 Download PDFInfo
- Publication number
- CN110413339A CN110413339A CN201910581177.8A CN201910581177A CN110413339A CN 110413339 A CN110413339 A CN 110413339A CN 201910581177 A CN201910581177 A CN 201910581177A CN 110413339 A CN110413339 A CN 110413339A
- Authority
- CN
- China
- Prior art keywords
- loaded
- section
- loaded section
- memory
- power consumption
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Abstract
本发明公开了一种加载软件模块的方法和装置,该方法包括:根据以下信息中的至少一项,确定该软件模块中的待加载段为第一待加载段或第二待加载段:该待加载段的使用频率、该待加载段的功耗和该待加载段占用的内存大小,该第一待加载段为加载到第一存储区的待加载段,该第二待加载段为待加载到第二存储区的待加载段;若该待加载段为该第一待加载段,将该待加载段加载到该第一存储区,或若该待加载段为该第二待加载段,将该待加载段加载到该第二存储区。因此,根据本发明实施例的加载软件模块的方法和装置,能够提高芯片的性能和功耗的综合水平。
Description
技术领域
本发明涉及信息技术领域,并且更具体地,涉及一种加载软件模块的方法和装置。
背景技术
在嵌入式设备领域,如智能手机的传感器集线器(Sensor Hub)、可穿戴设备等内存资源受限的设备,为了降低设备成本,静态随机存取存储器(Static Random AccessMemory,SRAM)的内存空间都是非常小,一般都在8KB至100KB左右,为了支持更多的功能应用,片上系统(System On Chip,SOC)上还须配置双倍速率同步动态随机存储器(DoubleData Rate Synchronous Dynamic Random Access Memory,DDR SDRAM),DDR SDRAM也简称为DDR,芯片中的软件加载到SRAM上执行时的功耗和性能比较理想,但是芯片的SRAM空间有限;加载到DDR上执行,芯片的功耗将增大,而且性能也不如在SRAM上执行的性能,因此,需要一种软件加载方法,能够在芯片SRAM内存资源有限的情况下,提高芯片的性能和功耗的综合水平。
发明内容
本发明实施例提供一种加载软件模块的方法和装置,提高芯片的性能和功耗的综合水平。
第一方面,提供了一种加载软件模块的方法,包括:根据以下信息中的至少一项,确定所述软件模块中的待加载段为第一待加载段或第二待加载段:所述待加载段的使用频率、所述待加载段的功耗和所述待加载段占用的内存大小,其中,所述第一待加载段为待加载到第一存储区的待加载段,所述第二待加载段为待加载到第二存储区的待加载段;若所述待加载段为所述第一待加载段,将所述待加载段加载到所述第一存储区,或若所述待加载段为所述第二待加载段,将所述待加载段加载到所述第二存储区。
结合第一方面,在第一方面的第一种实现方式中,所述根据以下信息中的至少一项,确定所述软件模块中的待加载段为第一待加载段或第二待加载段:所述待加载段的使用频率、所述待加载段的功耗和所述待加载段占用的内存大小,包括:若所述加载段的使用频率小于第一使用频率阈值,或功耗小于第一功耗阈值,或占用的内存大小大于第一内存阈值,确定所述待加载段为所述第一待加载段;或若所述待加载段的使用频率不小于所述第一使用频率阈值,或功耗不小于所述第一功耗阈值,或占用的内存大小不大于所述第一内存阈值,确定所述待加载段为所述第二待加载段。
结合第一方面及其上述实现方式,在第一方面的第二种实现方式中,在若所述待加载段为所述第一待加载段,将所述待加载段加载到所述第一存储区,或若所述待加载段为所述第二待加载段,将所述待加载段加载到所述第二存储区之前,所述方法还包括:给所述待加载段配置段属性,所述段属性用于指示所述待加载段为所述第一待加载段或所述第二待加载段。
结合第一方面及其上述实现方式,在第一方面的第三种实现方式中,所述第一存储区为动态随机存储器DDR的内存区,所述第二存储区为静态随机存取存储器SRAM的内存区。
结合第一方面及其上述实现方式,在第一方面的第四种实现方式中,所述待加载段为以下中的一种:
代码段、数据段。
第二方面,提供了一种加载软件模块的装置,该装置包括执行第一方面中的方法的各模块。
第三方面,提供了一种加载软件模块的装置,该装置包括存储器和与该存储器连接的处理器,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,当该处理器执行该存储器中存储的指令时,该处理器具体用于执行第一方面中的方法。
基于上述技术方案,本发明实施例的加载软件模块的方法和装置,能够根据软件模块中的待加载段的使用频率、功耗或内存占用大小确定该待加载段待加载到哪个存储区,因此,能够根据待加载段的属性实现对软件模块中的多个待加载段的分散加载,从而提高芯片的性能和功耗的综合水平。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的加载软件模块的方法的示意性流程图。
图2是根据本发明实施例的加载软件模块的装置的示意性框图。
图3是根据本发明另一实施例的加载软件模块的装置的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
用户设备(UE,User Equipment),也可称之为移动终端(Mobile Terminal)、移动用户设备等,可以经无线接入网(例如,RAN,Radio Access Network)与一个或多个核心网进行通信,用户设备可以是移动终端,如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据。
图1示出了根据本发明实施例的加载软件模块的方法100的示意性流程图,该方法可以由加载软件模块的装置执行,如图1所示,该方法100包括:
S110,根据以下信息中的至少一项,确定该软件模块中的待加载段为第一待加载段或第二待加载段:该待加载段的使用频率、该待加载段的功耗和该待加载段占用的内存大小,其中,该第一待加载段为待加载到第一存储区的待加载段,该第二待加载段为待加载到第二存储区的待加载段;
S120,若该待加载段为该第一待加载段,将该待加载段加载到该第一存储区,或若该待加载段为该第二待加载段,将该待加载段加载到该第二存储区。
具体而言,待加载的软件模块包括多个待加载段,可选地,该多个待加载段可以为以下中的至少一种:代码段、数据段、堆、栈或符号块开始(Block Started by Symbol,BSS)段,其中,该BSS为用来存放程序中未初始化的全局变量和静态变量的一块内存区域。也就是,该多个待加载段可以为多个代码段、多个数据段或多个代码段和数据段的组合等,在这些待加载段中有的待加载段和该软件模块的初始化有关,也就是说这些待加载段只在软件模块初始化的时候被调用,其他时间的使用频率较低,如果将这些待加载段加载到SRAM的内存区,就占用了有限的SRAM内存资源,那么在其他的对性能要求比较高的待加载段需要加载到SRAM的内存区执行时,可能遇到SRAM内存资源不足的问题,从而影响芯片的整体性能。因此,在有限的SRAM内存资源下,不能支持更多的软件应用,也可以理解为SRAM内存资源的利用效率较低。此时,可选地,该加载软件模块的装置可以根据以下信息中的至少一项,确定该软件模块中的待加载段为第一待加载段或第二待加载段:该待加载段的使用频率、该待加载段的功耗和该待加载段占用的内存大小,其中,该第一待加载段为加载到第一存储区的待加载段,该第二待加载段为待加载到第二存储区的待加载段。也就是本发明实施例的加载软件模块的方法不是将整个软件模块都加载到第一存储区或第二存储区,而是可以根据待加载段的属性对软件模块中的多个待加载段进行分散加载。可选地,该第一存储区可以为DDR的内存区,该第二存储区可以为SRAM的内存区,因为DDR的内存资源相对比较丰富,可选地,根据本发明实施例的加载软件模块的装置可以将使用频率较低的代码段或数据段加载到DDR的内存区,例如,可以将跟初始化相关的代码段或数据段加载到DDR的内存区,将使用频率比较高的代码段或数据段加载到SRAM的内存区,这样就避免了不常用的代码段或数据段占用宝贵的SRAM的内存资源,造成能体现芯片性能的常用的代码段或数据段需要在SRAM的内存区执行时遇到SRAM内存资源不足的问题,从而影响芯片的整体性能。因为SRAM内存资源有限,如果加载一个内存占用比较大的代码段或数据段,可能造成其他的待加载段都因为内存不足而不能正常加载,此时,可选地,该加载软件模块的装置可以将占用内存资源比较大的代码段或数据段加载到DDR的内存区,将占用内存资源较小的代码段或数据段加载到SRAM的内存区,从而能够使有限的SRAM内存资源上运行更多的软件应用。由于软件模块在SRAM的内存区执行相对于在DDR的内存区执行时的功耗较小,可选地,该加载软件模块的装置也可以将执行时功耗较小的代码段或数据段加载到DDR的内存区,将执行时的功耗较大的代码段或数据段加载到SRAM的内存区等。在确定待加载段为第一待加载段或第二待加载段后,也就是确定完该待加载段为待加载到哪个存储区的待加载段后,该加载软件模块的装置将该待加载段加载到相应的存储区,可选地,若该待加载段为第一待加载段,将该待加载段加载到该第一存储区,或若该待加载段为第二待加载段,将该待加载段加载到该第二存储区。在相应的存储区执行相应的待加载段。
因此,本发明实施例的加载软件模块的方法,能够根据软件模块中的待加载段的使用频率、功耗和内存占用大小确定该待加载段待加载到哪个存储区,因此,能够根据待加载段的属性实现对软件模块中的多个待加载段的分散加载,从而提高芯片的性能和功耗的综合水平。
应理解,该第一待加载段和第二待加载段仅表示两类待加载段,而对待加载段的数量、类型等不作限定,例如,该第一待加载段可以为待加载到第一存储区的各类待加载段,该第二待加载段可以为待加载到第二存储区的各类待加载段,还应理解,该第一存储区和第二存储区仅表示两类存储区,而对存储区的数量、类型不作限定,例如,该第一存储区可以为多个DDR的内存区,该第二存储区可以为多个SRAM的内存区等。
可选地,在本发明实施例中,根据以下信息中的至少一项,确定该软件模块中的待加载段为第一待加载段或第二待加载段:该待加载段的使用频率、该待加载段的功耗或该待加载段占用的内存大小,包括:
若该加载段的使用频率小于第一使用频率阈值,或功耗小于第一功耗阈值,或占用的内存大小大于第一内存阈值,确定该待加载段为第一待加载段;或
若该待加载段的使用频率不小于该第一使用频率阈值,或功耗不小于该第一功耗阈值,或占用的内存大小不大于该第一内存阈值时,确定该待加载段为第二待加载段。
具体而言,该加载软件模块的装置可以根据以下信息中的至少一项,确定该软件模块中的待加载段为第一待加载段或第二待加载段:该待加载段的使用频率、该待加载段的功耗和该待加载段占用的内存大小。可选地,若该加载段的使用频率小于第一使用频率阈值,或功耗小于第一功耗阈值,或占用的内存大小大于第一内存阈值,可以确定该待加载段为该第一待加载段;或若该待加载段的使用频率不小于该第一使用频率阈值,或功耗不小于该第一功耗阈值,或占用的内存大小不大于该第一内存阈值,可以确定该待加载段为该第二待加载段。因此,该加载软件模块的装置可以根据待加载段的使用频率、功耗或占用的内存大小的差异,将不同特性的待加载段加载到相应的存储区。可选地,该第一待加载段可以为待加载到DDR的内存区的待加载段,该第二待加载段可以为待加载到SRAM的内存区的待加载段,在本发明实施例中,该加载软件模块的装置可以将使用频率低的待加载段确定为第一待加载段,然后将该待加载段加载到DDR的内存区,也可以将占用内存大的待加载段确定为第一待加载段,然后将该待加载段加载到DDR的内存区,或者将执行时功耗大的待加载段确定为第二待加载段,将该待加载段加载到SRAM的内存区等,也就是该加载软件模块的装置可以针对该软件模块中的待加载段的特性对不同的待加载段进行分散加载。因此,在SRAM内存资源大小相同的条件下,本发明实施例的加载软件模块的方法,芯片上能够加载更多的软件应用,同样地,如果芯片性能相同的话,芯片采用根据本发明实施例的加载软件模块的方法的话,对SRAM内存资源的消耗相对较低,因此,在性能相同的情况下,本发明实施例的加载软件模块的方法能够使得实际需要的芯片的SRAM内存大小降低,SRAM内存大小降低,随之而来,芯片的成本也降低了,芯片设计得也更加紧凑。同时,根据本发明实施例的加载软件模块的方法,能够针对待加载段的功耗的差异性进行分散加载,因此,在芯片性能相同的情况下,本发明实施例的加载软件模块的方法能够降低了芯片的整体功耗。
应理解,在本发明实施例中,该第一使用频率阈值、第一功耗阈值或第一内存阈值不是唯一确定的,例如,该第一使用频率阈值可以根据具体的业务场景确定,可选地,在该芯片支持的业务被使用的频率较高时,也可以为该芯片支持的业务的平均使用频率较高时,该第一使用频率阈值可以设置的较高,相反,可以将该第一使用频率阈值设置的较低;该第一功耗阈值可以根据芯片的功耗情况确定,可选地,如果该芯片支持的是业务的平均功耗较高,可以将该第一功耗阈值设置的较高,反之,可以将该第一功耗阈值设置的较低;该第一内存阈值可以该DDR和/或该SRAM的内存资源的大小确定,例如,该第一内存阈值可以根据该SRAM的内存资源的大小确定,如果该SRAM的内存资源较大,可以将该第一内存阈值设置的较大,以便支持内存占用相对较大的待加载段加载到该SRAM的内存区等,本发明实施例对此不作限制。
可选地,在本发明实施例中,在将该待加载段加载到相应的存储区之前,该方法100还可以包括:
给该待加载段配置段属性,该段属性用于指示该待加载段为该第一待加载段或该第二待加载段。
具体而言,在确定该第一待加载段为第一待加载段或第二待加载段后,可选地,该加载软件模块的装置可以给该待加载段配置段属性,该段属性用于指示该待加载段为第一待加载段或第二待加载段,也就是该段属性可以用于指示该待加载段为待加载到第一存储区的待加载段还是待加载到第二存储区的待加载段。例如,在确定数据段ddr.data、ddr.init.data、ddr.minor.data和代码段ddr.text、ddr.init.text、ddr.minor.text为第一待加载段后,以该第一待加载段为待加载到DDR的内存区的待加载段为例,该加载软件模块的装置可以通过以下方式定义代码段或数据段的段属性。
#define OS_SEC_DDR_DATA ddr.data
#define OS_SEC_DDR_DATA_INIT ddr.init.data
#define OS_SEC_DDR_DATA_MINOR ddr.minor.data
#define OS_SEC_DDR_TEXT ddr.text
#define OS_SEC_DDR_TEXT_INIT ddr.init.text
#define OS_SEC_DDR_TEXT_MINOR ddr.minor.text
其中,OS_SEC_DDR_DATA、OS_SEC_DDR_DATA_INIT、OS_SEC_DDR_DATA_MINOR、分别为数据段ddr.data、ddr.init.data、ddr.minor.data的段属性,OS_SEC_DDR_TEXT、OS_SEC_DDR_TEXT_INIT、OS_SEC_DDR_TEXT_MINOR分别为ddr.text、ddr.init.text、ddr.minor.text的段属性。这样,在软件模块加载过程中,通过分析这些待加载段的段属性就可以确定待加载段需要加载到哪个存储区,然后该加载软件模块的装置可以根据该段属性指示的存储区,将该待加载段加载到相应的存储区。
应理解,本发明实施例以第一存储区为DDR的内存区,该第二存储区为SRAM的内存区进行介绍仅仅是为了示例,而不应对本发明实施例构成任何限制,该第一存储区还可以为Nor闪存器(Nor Flash)等,该第二存储区还可以为二级缓存,三级缓存等,本发明实施例对此不作限制。
可选地,在本发明实施例中,该待加载段可以为以下中的一种:
代码段、数据段、堆、栈或BSS段。
因此,本发明实施例的加载软件模块的方法,能够根据软件模块中的待加载段的使用频率、功耗或内存占用大小确定该待加载段待加载到哪个存储区,因此,能够根据待加载段的属性实现对软件模块中的多个待加载段的分散加载,从而提高芯片的性能和功耗的综合水平。
图2示出了根据本发明实施例的加载软件模块的装置200的示意性框图,如图2所示,该装置200包括:
确定模块210,用于根据以下信息中的至少一项,确定该软件模块中的待加载段为第一待加载段或第二待加载段:该待加载段的使用频率、该待加载段的功耗和该待加载段占用的内存大小,该第一待加载段为待加载到第一存储区的待加载段,该第二待加载段为待加载到第二存储区的待加载段;
加载模块220,用于当该确定模块210确定该待加载段为该第一待加载段时,将该待加载段加载到该第一存储区,或当该确定模块210确定该待加载段为该第二待加载段时,将该待加载段加载到该第二存储区。
因此,本发明实施例的加载软件模块的装置,能够根据软件模块中的待加载段的使用频率、功耗或内存占用大小确定该待加载段待加载到哪个存储区,因此,能够根据待加载段的属性实现对软件模块中的多个待加载段的分散加载,从而提高芯片的性能和功耗的综合水平。
可选地,在本发明实施例中,该确定模块210具体用于:
若该加载段的使用频率小于第一使用频率阈值,或功耗小于第一功耗阈值,或占用的内存大小大于第一内存阈值,确定该待加载段为该第一待加载段;或
若该待加载段的使用频率不小于该第一使用频率阈值,或功耗不小于该第一功耗阈值,或占用的内存大小不大于该第一内存阈值时,确定该待加载段为该第二待加载段。
可选地,在本发明实施例中,该装置200还可以包括:
配置模块,用于给该待加载段配置段属性,该段属性用于指示该待加载段为该第一待加载段或该第二待加载段。
可选地,在本发明实施例中,该第一存储区可以为DDR的内存区,该第二存储区为SRAM的内存区。
可选地,在本发明实施例中,该待加载段可以为以下中的一种:代码段、数据段、堆、栈或BSS段。
因此,本发明实施例的加载软件模块的装置,能够根据软件模块中的待加载段的使用频率、功耗或内存占用大小确定该待加载段待加载到哪个存储区,因此,能够根据待加载段的属性实现对软件模块中的多个待加载段的分散加载,从而提高芯片的性能和功耗的综合水平。
根据本发明实施例的加载软件模块的装置200可对应于根据本发明实施例的加载软件模块的方法100中的加载软件模块的装置,并且加载软件模块的装置200中的各个模块的上述和其它操作和/或功能分别为了实现前述各个方法的相应流程,为了简洁,在此不再赘述。
如图3所示,本发明实施例还提供了一种加载软件模块的装置300,该装置300包括处理器310、存储器320、总线系统330。其中,处理器310、存储器320通过总线系统330相连,该存储器320用于存储指令,该处理器310用于执行该存储器320存储的指令。其中,该处理器310用于根据以下信息中的至少一项,确定该软件模块中的待加载段为第一待加载段或第二待加载段:该待加载段的使用频率、该待加载段的功耗和该待加载段占用的内存大小,该第一待加载段为加载到第一存储区的待加载段,该第二待加载段为待加载到第二存储区的待加载段;该处理器310还用于在该待加载段为该第一待加载段时,将该待加载段加载到该第一存储区,或在该待加载段为该第二待加载段时,将该待加载段加载到该第二存储区。
因此,本发明实施例的加载软件模块的装置,能够根据软件模块中的待加载段的使用频率、功耗或内存占用大小确定该待加载段待加载到哪个存储区,因此,能够根据待加载段的属性实现对软件模块中的多个待加载段的分散加载,从而提高芯片的性能和功耗的综合水平。
可选地,在本发明实施例中,该存储器320还可以用于存储软件程序,该软件程序用于实现本发明实施例的加载软件模块的方法,该处理器310可以用于执行该存储器320中存储的该软件程序,该软件程序用于根据该待加载段的属性将待加载的软件模块中的待加载段分散加载到第一存储区或第二存储区,其中,该第一存储区可以为DDR的内存区,该第二存储区可以为SRAM的内存区。
应理解,在本发明实施例中,该处理器310可以是中央处理单元(CentralProcessing Unit,简称为“CPU”),该处理器310还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器320可以包括只读存储器和随机存取存储器,并向处理器310提供指令和数据。存储器320的一部分还可以包括非易失性随机存取存储器。例如,存储器320还可以存储设备类型的信息。
该总线系统330除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统330。
在实现过程中,上述方法的各步骤可以通过处理器310中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器320,处理器310读取存储器320中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
可选地,在本发明实施例中,该处理器310具体用于:
若该加载段的使用频率小于第一使用频率阈值,或功耗小于第一功耗阈值,或占用的内存大小大于第一内存阈值,确定该待加载段为该第一待加载段;或
若该待加载段的使用频率不小于该第一使用频率阈值,或功耗不小于该第一功耗阈值,或占用的内存大小不大于该第一内存阈值时,确定该待加载段为该第二待加载段。
可选地,在本发明实施例中,该处理310还用于:
给该待加载段配置段属性,该段属性用于指示该待加载段为该第一待加载段或该第二待加载段。
可选地,在本发明实施例中,该待加载段为以下中的一种:
代码段、数据段、堆、栈或BSS段。
因此,本发明实施例的加载软件模块的装置,能够根据软件模块中的待加载段的使用频率、功耗或内存占用大小确定该待加载段待加载到哪个存储区,因此,能够根据待加载段的属性实现对软件模块中的多个待加载段的分散加载,从而提高芯片的性能和功耗的综合水平。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种加载软件模块的方法,其特征在于,包括:
根据以下信息中的至少一项,确定所述软件模块中的待加载段为第一待加载段或第二待加载段:所述待加载段的使用频率、所述待加载段的功耗和所述待加载段占用的内存大小,其中,所述第一待加载段为待加载到第一存储区的待加载段,所述第二待加载段为待加载到第二存储区的待加载段;
若所述待加载段为所述第一待加载段,将所述待加载段加载到所述第一存储区,或若所述待加载段为所述第二待加载段,将所述待加载段加载到所述第二存储区。
2.根据权利要求1所述的方法,其特征在于,所述根据以下信息中的至少一项,确定所述软件模块中的待加载段为第一待加载段或第二待加载段:所述待加载段的使用频率、所述待加载段的功耗和所述待加载段占用的内存大小,包括:
若所述加载段的使用频率小于第一使用频率阈值,或功耗小于第一功耗阈值,或占用的内存大小大于第一内存阈值,确定所述待加载段为所述第一待加载段;或
若所述待加载段的使用频率不小于所述第一使用频率阈值,或功耗不小于所述第一功耗阈值,或占用的内存大小不大于所述第一内存阈值,确定所述待加载段为所述第二待加载段。
3.根据权利要求1或2所述的方法,其特征在于,在若所述待加载段为所述第一待加载段,将所述待加载段加载到所述第一存储区,或若所述待加载段为所述第二待加载段,将所述待加载段加载到所述第二存储区之前,所述方法还包括:
给所述待加载段配置段属性,所述段属性用于指示所述待加载段为所述第一待加载段或所述第二待加载段。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一存储区为双倍速率同步动态随机存储器DDR的内存区,所述第二存储区为静态随机存取存储器SRAM的内存区。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述待加载段为以下中的一种:
代码段、数据段。
6.一种加载软件模块的装置,其特征在于,包括:
确定模块,用于根据以下信息中的至少一项,确定所述软件模块中的待加载段为第一待加载段或第二待加载段:所述待加载段的使用频率、所述待加载段的功耗和所述待加载段占用的内存大小,其中,所述第一待加载段为待加载到第一存储区的待加载段,所述第二待加载段为待加载到第二存储区的待加载段;
加载模块,用于当所述确定模块确定所述待加载段为所述第一待加载段时,将所述待加载段加载到所述第一存储区,或当所述确定模块确定所述待加载段为所述第二待加载段时,将所述待加载段加载到所述第二存储区。
7.根据权利要求6所述的装置,其特征在于,所述确定模块具体用于:
若所述加载段的使用频率小于第一使用频率阈值,或功耗小于第一功耗阈值,或占用的内存大小大于第一内存阈值,确定所述待加载段为所述第一待加载段;或
若所述待加载段的使用频率不小于所述第一使用频率阈值,或功耗不小于所述第一功耗阈值,或占用的内存大小不大于所述第一内存阈值,确定所述待加载段为所述第二待加载段。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:
配置模块,用于给所述待加载段配置段属性,所述段属性用于指示所述待加载段为所述第一待加载段或所述第二待加载段。
9.根据权利要求6至8中任一项所述的装置,其特征在于,所述第一存储区为动态随机存储器DDR的内存区,所述第二存储区为静态随机存取存储器SRAM的内存区。
10.根据权利要求6至9中任一项所述的装置,其特征在于,所述第一待加载段为以下中的一种:
代码段、数据段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910581177.8A CN110413339A (zh) | 2015-11-12 | 2015-11-12 | 加载软件模块的方法和装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910581177.8A CN110413339A (zh) | 2015-11-12 | 2015-11-12 | 加载软件模块的方法和装置 |
CN201510770304.0A CN105320543B (zh) | 2015-11-12 | 2015-11-12 | 加载软件模块的方法和装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510770304.0A Division CN105320543B (zh) | 2015-11-12 | 2015-11-12 | 加载软件模块的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110413339A true CN110413339A (zh) | 2019-11-05 |
Family
ID=55247968
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510770304.0A Active CN105320543B (zh) | 2015-11-12 | 2015-11-12 | 加载软件模块的方法和装置 |
CN201910581177.8A Pending CN110413339A (zh) | 2015-11-12 | 2015-11-12 | 加载软件模块的方法和装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510770304.0A Active CN105320543B (zh) | 2015-11-12 | 2015-11-12 | 加载软件模块的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN105320543B (zh) |
WO (1) | WO2017080383A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111580831A (zh) * | 2020-05-14 | 2020-08-25 | 深圳忆联信息系统有限公司 | 提高代码运行效率的方法、装置、计算机设备及存储介质 |
CN115718620A (zh) * | 2022-11-22 | 2023-02-28 | 科东(广州)软件科技有限公司 | 一种代码程序迁移方法、装置、设备和存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320543B (zh) * | 2015-11-12 | 2019-06-28 | 华为技术有限公司 | 加载软件模块的方法和装置 |
CN110471675B (zh) * | 2019-08-21 | 2023-06-16 | 山东比特智能科技股份有限公司 | 一种程序烧录方法、系统、装置及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216772A (zh) * | 2008-01-15 | 2008-07-09 | 中兴通讯股份有限公司 | 一种嵌入式设备的启动方法及软件升级方法 |
CN102214115A (zh) * | 2011-07-21 | 2011-10-12 | 松翰科技股份有限公司 | 通用串行总线控制装置及其初始化方法 |
CN103150257A (zh) * | 2013-02-28 | 2013-06-12 | 天脉聚源(北京)传媒科技有限公司 | 一种内存管理方法和装置 |
CN103593324A (zh) * | 2013-11-12 | 2014-02-19 | 上海新储集成电路有限公司 | 一种具有自学习功能的快速启动低功耗计算机片上系统 |
CN103793332A (zh) * | 2014-02-28 | 2014-05-14 | 中国科学院微电子研究所 | 基于内存的数据存储方法、装置、处理器和电子设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101128234B1 (ko) * | 2006-08-23 | 2012-03-23 | 엘지전자 주식회사 | 메모리 접근 제어 장치 및 방법 |
US20110029735A1 (en) * | 2009-07-28 | 2011-02-03 | Ying-Chieh Chiang | Method for managing an embedded system to enhance performance thereof, and associated embedded system |
US9529712B2 (en) * | 2011-07-26 | 2016-12-27 | Nvidia Corporation | Techniques for balancing accesses to memory having different memory types |
KR101625777B1 (ko) * | 2011-12-28 | 2016-05-30 | 인텔 코포레이션 | 휘발성 메모리 및 비휘발성 메모리 간의 코드 및 데이터 저장소들을 분산하기 위한 방법 및 장치 |
JP2013222321A (ja) * | 2012-04-17 | 2013-10-28 | Sony Corp | メモリ制御装置、メモリ制御方法、情報処理装置、およびプログラム |
US9703500B2 (en) * | 2012-04-25 | 2017-07-11 | International Business Machines Corporation | Reducing power consumption by migration of data within a tiered storage system |
CN103677654B (zh) * | 2012-09-24 | 2018-03-23 | 联想(北京)有限公司 | 一种存储数据的方法及电子设备 |
CN105320543B (zh) * | 2015-11-12 | 2019-06-28 | 华为技术有限公司 | 加载软件模块的方法和装置 |
-
2015
- 2015-11-12 CN CN201510770304.0A patent/CN105320543B/zh active Active
- 2015-11-12 CN CN201910581177.8A patent/CN110413339A/zh active Pending
-
2016
- 2016-11-01 WO PCT/CN2016/104167 patent/WO2017080383A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216772A (zh) * | 2008-01-15 | 2008-07-09 | 中兴通讯股份有限公司 | 一种嵌入式设备的启动方法及软件升级方法 |
CN102214115A (zh) * | 2011-07-21 | 2011-10-12 | 松翰科技股份有限公司 | 通用串行总线控制装置及其初始化方法 |
CN103150257A (zh) * | 2013-02-28 | 2013-06-12 | 天脉聚源(北京)传媒科技有限公司 | 一种内存管理方法和装置 |
CN103593324A (zh) * | 2013-11-12 | 2014-02-19 | 上海新储集成电路有限公司 | 一种具有自学习功能的快速启动低功耗计算机片上系统 |
CN103793332A (zh) * | 2014-02-28 | 2014-05-14 | 中国科学院微电子研究所 | 基于内存的数据存储方法、装置、处理器和电子设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111580831A (zh) * | 2020-05-14 | 2020-08-25 | 深圳忆联信息系统有限公司 | 提高代码运行效率的方法、装置、计算机设备及存储介质 |
CN115718620A (zh) * | 2022-11-22 | 2023-02-28 | 科东(广州)软件科技有限公司 | 一种代码程序迁移方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105320543A (zh) | 2016-02-10 |
WO2017080383A1 (zh) | 2017-05-18 |
CN105320543B (zh) | 2019-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105320543B (zh) | 加载软件模块的方法和装置 | |
CN107341115B (zh) | 虚拟机内存访问方法、系统和电子设备 | |
KR20160008885A (ko) | 전자 장치 및 전자 장치의 메모리 관리 방법 | |
CN105511806B (zh) | 处理写请求的方法和移动终端 | |
CN110737608B (zh) | 一种数据操作方法、装置及系统 | |
CN106575273B (zh) | 用于扩展片上系统的存储器的系统和方法 | |
CN104424122B (zh) | 一种电子设备及内存划分方法 | |
US9601180B2 (en) | Automatic partial array self-refresh | |
CN111984400A (zh) | 神经网络的内存分配方法及装置 | |
CN111324427A (zh) | 一种基于dsp的任务调度方法及装置 | |
US20140373025A1 (en) | Method for allocating process in multi-core environment and apparatus therefor | |
CN110209357A (zh) | 提高ssd大文件写性能的方法、装置、计算机设备及存储介质 | |
CN110806997A (zh) | 一种片上系统以及存储器 | |
CN107102889B (zh) | 一种虚拟机资源调整方法及装置 | |
CN107861888A (zh) | Fpga卡用ddr的方法、系统、装置及可读存储介质 | |
CN104050189B (zh) | 页面共享处理方法及装置 | |
CN112596669A (zh) | 一种基于分布式存储的数据处理方法及装置 | |
CN110704182A (zh) | 深度学习的资源调度方法、装置及终端设备 | |
CN114138178B (zh) | 一种io处理方法及系统 | |
CN109388459A (zh) | 图片加载方法、装置、计算机设备及存储介质 | |
CN109697037A (zh) | 节省本地dram的方法、装置、计算机设备及存储介质 | |
CN109710278A (zh) | 一种卸载应用程序的方法、装置及终端设备 | |
CN106796505A (zh) | 指令执行的方法及处理器 | |
CN108334317A (zh) | 图形引擎、图形引擎构建方法、更新方法及装置 | |
CN104951406B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191105 |