CN105320543B - Method and apparatus for loading software modules - Google Patents
Method and apparatus for loading software modules Download PDFInfo
- Publication number
- CN105320543B CN105320543B CN201510770304.0A CN201510770304A CN105320543B CN 105320543 B CN105320543 B CN 105320543B CN 201510770304 A CN201510770304 A CN 201510770304A CN 105320543 B CN105320543 B CN 105320543B
- Authority
- CN
- China
- Prior art keywords
- loaded
- segment
- storage area
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Stored Programmes (AREA)
- Memory System (AREA)
Abstract
Description
技术领域technical field
本发明涉及信息技术领域,并且更具体地,涉及一种加载软件模块的方法和装置。The present invention relates to the field of information technology, and more particularly, to a method and apparatus for loading software modules.
背景技术Background technique
在嵌入式设备领域,如智能手机的传感器集线器(Sensor Hub)、可穿戴设备等内存资源受限的设备,为了降低设备成本,静态随机存取存储器(Static Random AccessMemory,SRAM)的内存空间都是非常小,一般都在8KB至100KB左右,为了支持更多的功能应用,片上系统(System On Chip,SOC)上还须配置双倍速率同步动态随机存储器(DoubleData Rate Synchronous Dynamic Random Access Memory,DDR SDRAM),DDRSDRAM也简称为DDR,芯片中的软件加载到SRAM上执行时的功耗和性能比较理想,但是芯片的SRAM空间有限;加载到DDR上执行,芯片的功耗将增大,而且性能也不如在SRAM上执行的性能,因此,需要一种软件加载方法,能够在芯片SRAM内存资源有限的情况下,提高芯片的性能和功耗的综合水平。In the field of embedded devices, such as the sensor hubs of smartphones, wearable devices and other devices with limited memory resources, in order to reduce equipment costs, the memory space of Static Random Access Memory (SRAM) is Very small, generally around 8KB to 100KB. In order to support more functional applications, the System On Chip (SOC) must also be configured with Double Data Rate Synchronous Dynamic Random Access Memory (DDR SDRAM) ), DDR SDRAM is also referred to as DDR. The power consumption and performance of the software in the chip are ideal when it is loaded into the SRAM, but the SRAM space of the chip is limited; when it is loaded into the DDR for execution, the power consumption of the chip will increase, and the performance will also increase. The performance is not as good as that performed on the SRAM. Therefore, a software loading method is needed, which can improve the comprehensive level of the performance and power consumption of the chip under the condition of limited SRAM memory resources on the chip.
发明内容SUMMARY OF THE INVENTION
本发明实施例提供一种加载软件模块的方法和装置,提高芯片的性能和功耗的综合水平。Embodiments of the present invention provide a method and device for loading a software module, so as to improve the comprehensive level of chip performance and power consumption.
第一方面,提供了一种加载软件模块的方法,包括:根据以下信息中的至少一项,确定所述软件模块中的待加载段为第一待加载段或第二待加载段:所述待加载段的使用频率、所述待加载段的功耗和所述待加载段占用的内存大小,其中,所述第一待加载段为待加载到第一存储区的待加载段,所述第二待加载段为待加载到第二存储区的待加载段;若所述待加载段为所述第一待加载段,将所述待加载段加载到所述第一存储区,或若所述待加载段为所述第二待加载段,将所述待加载段加载到所述第二存储区。In a first aspect, a method for loading a software module is provided, comprising: determining, according to at least one of the following pieces of information, whether a segment to be loaded in the software module is a first segment to be loaded or a second segment to be loaded: the The usage frequency of the segment to be loaded, the power consumption of the segment to be loaded, and the memory size occupied by the segment to be loaded, wherein the first segment to be loaded is the segment to be loaded to be loaded into the first storage area, and the The second to-be-loaded segment is the to-be-loaded segment to be loaded into the second storage area; if the to-be-loaded segment is the first to-be-loaded segment, load the to-be-loaded segment to the first storage area, or if the to-be-loaded segment is the first to-be-loaded segment The segment to be loaded is the second segment to be loaded, and the segment to be loaded is loaded into the second storage area.
结合第一方面,在第一方面的第一种实现方式中,所述根据以下信息中的至少一项,确定所述软件模块中的待加载段为第一待加载段或第二待加载段:所述待加载段的使用频率、所述待加载段的功耗和所述待加载段占用的内存大小,包括:若所述加载段的使用频率小于第一使用频率阈值,或功耗小于第一功耗阈值,或占用的内存大小大于第一内存阈值,确定所述待加载段为所述第一待加载段;或若所述待加载段的使用频率不小于所述第一使用频率阈值,或功耗不小于所述第一功耗阈值,或占用的内存大小不大于所述第一内存阈值,确定所述待加载段为所述第二待加载段。With reference to the first aspect, in a first implementation manner of the first aspect, the to-be-loaded segment in the software module is determined to be the first to-be-loaded segment or the second to-be-loaded segment according to at least one of the following information : the usage frequency of the to-be-loaded segment, the power consumption of the to-be-loaded segment, and the memory size occupied by the to-be-loaded segment, including: if the usage frequency of the loaded segment is less than the first usage frequency threshold, or the power consumption is less than The first power consumption threshold, or the occupied memory size is greater than the first memory threshold, and the segment to be loaded is determined to be the first segment to be loaded; or if the usage frequency of the segment to be loaded is not less than the first usage frequency The threshold, or the power consumption is not less than the first power consumption threshold, or the occupied memory size is not greater than the first memory threshold, and the to-be-loaded segment is determined to be the second to-be-loaded segment.
结合第一方面及其上述实现方式,在第一方面的第二种实现方式中,在若所述待加载段为所述第一待加载段,将所述待加载段加载到所述第一存储区,或若所述待加载段为所述第二待加载段,将所述待加载段加载到所述第二存储区之前,所述方法还包括:给所述待加载段配置段属性,所述段属性用于指示所述待加载段为所述第一待加载段或所述第二待加载段。In combination with the first aspect and the above implementation manners, in a second implementation manner of the first aspect, if the to-be-loaded segment is the first to-be-loaded segment, the to-be-loaded segment is loaded into the first to-be-loaded segment. storage area, or if the to-be-loaded segment is the second to-be-loaded segment, before loading the to-be-loaded segment to the second storage area, the method further includes: configuring a segment attribute for the to-be-loaded segment , the segment attribute is used to indicate that the to-be-loaded segment is the first to-be-loaded segment or the second to-be-loaded segment.
结合第一方面及其上述实现方式,在第一方面的第三种实现方式中,所述第一存储区为动态随机存储器DDR的内存区,所述第二存储区为静态随机存取存储器SRAM的内存区。In combination with the first aspect and the above implementation manners, in a third implementation manner of the first aspect, the first storage area is a memory area of a dynamic random access memory DDR, and the second storage area is a static random access memory SRAM memory area.
结合第一方面及其上述实现方式,在第一方面的第四种实现方式中,所述待加载段为以下中的一种:In combination with the first aspect and the foregoing implementation manners thereof, in a fourth implementation manner of the first aspect, the to-be-loaded segment is one of the following:
代码段、数据段。Code segment, data segment.
第二方面,提供了一种加载软件模块的装置,该装置包括执行第一方面中的方法的各模块。In a second aspect, an apparatus for loading a software module is provided, the apparatus including each module for performing the method in the first aspect.
第三方面,提供了一种加载软件模块的装置,该装置包括存储器和与该存储器连接的处理器,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,当该处理器执行该存储器中存储的指令时,该处理器具体用于执行第一方面中的方法。In a third aspect, a device for loading a software module is provided, the device includes a memory and a processor connected to the memory, the memory is used for storing instructions, the processor is used for executing the instructions stored in the memory, when the processor executes When the instructions are stored in the memory, the processor is specifically configured to execute the method in the first aspect.
基于上述技术方案,本发明实施例的加载软件模块的方法和装置,能够根据软件模块中的待加载段的使用频率、功耗或内存占用大小确定该待加载段待加载到哪个存储区,因此,能够根据待加载段的属性实现对软件模块中的多个待加载段的分散加载,从而提高芯片的性能和功耗的综合水平。Based on the above technical solutions, the method and device for loading a software module according to the embodiments of the present invention can determine which storage area the to-be-loaded segment is to be loaded into according to the usage frequency, power consumption or memory occupancy size of the to-be-loaded segment in the software module. Therefore, , which can realize scattered loading of multiple to-be-loaded segments in the software module according to the attributes of the to-be-loaded segments, thereby improving the integrated level of chip performance and power consumption.
附图说明Description of drawings
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。In order to illustrate the technical solutions of the embodiments of the present invention more clearly, the following briefly introduces the accompanying drawings that need to be used in the embodiments of the present invention. Obviously, the drawings described below are only some embodiments of the present invention. For those of ordinary skill in the art, other drawings can also be obtained from these drawings without any creative effort.
图1是根据本发明实施例的加载软件模块的方法的示意性流程图。FIG. 1 is a schematic flowchart of a method for loading a software module according to an embodiment of the present invention.
图2是根据本发明实施例的加载软件模块的装置的示意性框图。FIG. 2 is a schematic block diagram of an apparatus for loading a software module according to an embodiment of the present invention.
图3是根据本发明另一实施例的加载软件模块的装置的示意性框图。FIG. 3 is a schematic block diagram of an apparatus for loading a software module according to another embodiment of the present invention.
具体实施方式Detailed ways
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, but not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present invention.
用户设备(UE,User Equipment),也可称之为移动终端(Mobile Terminal)、移动用户设备等,可以经无线接入网(例如,RAN,Radio Access Network)与一个或多个核心网进行通信,用户设备可以是移动终端,如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据。User Equipment (UE, User Equipment), also known as Mobile Terminal (Mobile Terminal), Mobile User Equipment, etc., can communicate with one or more core networks via a radio access network (eg, RAN, Radio Access Network). , the user equipment may be a mobile terminal, such as a mobile phone (or "cellular" phone) and a computer with a mobile terminal, for example, may be a portable, pocket-sized, hand-held, computer-built-in or vehicle-mounted mobile device, which is associated with The radio access network exchanges language and/or data.
图1示出了根据本发明实施例的加载软件模块的方法100的示意性流程图,该方法可以由加载软件模块的装置执行,如图1所示,该方法100包括:Fig. 1 shows a schematic flowchart of a method 100 for loading a software module according to an embodiment of the present invention. The method can be executed by an apparatus for loading a software module. As shown in Fig. 1 , the method 100 includes:
S110,根据以下信息中的至少一项,确定该软件模块中的待加载段为第一待加载段或第二待加载段:该待加载段的使用频率、该待加载段的功耗和该待加载段占用的内存大小,其中,该第一待加载段为待加载到第一存储区的待加载段,该第二待加载段为待加载到第二存储区的待加载段;S110, according to at least one of the following information, determine that the segment to be loaded in the software module is the first segment to be loaded or the second segment to be loaded: the usage frequency of the segment to be loaded, the power consumption of the segment to be loaded, and the The memory size occupied by the segment to be loaded, wherein the first segment to be loaded is the segment to be loaded to be loaded into the first storage area, and the second segment to be loaded is the segment to be loaded to be loaded into the second storage area;
S120,若该待加载段为该第一待加载段,将该待加载段加载到该第一存储区,或若该待加载段为该第二待加载段,将该待加载段加载到该第二存储区。S120, if the to-be-loaded segment is the first to-be-loaded segment, load the to-be-loaded segment into the first storage area, or if the to-be-loaded segment is the second to-be-loaded segment, load the to-be-loaded segment to the second storage area.
具体而言,待加载的软件模块包括多个待加载段,可选地,该多个待加载段可以为以下中的至少一种:代码段、数据段、堆、栈或符号块开始(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的内存区等。在确定待加载段为第一待加载段或第二待加载段后,也就是确定完该待加载段为待加载到哪个存储区的待加载段后,该加载软件模块的装置将该待加载段加载到相应的存储区,可选地,若该待加载段为第一待加载段,将该待加载段加载到该第一存储区,或若该待加载段为第二待加载段,将该待加载段加载到该第二存储区。在相应的存储区执行相应的待加载段。Specifically, the software module to be loaded includes multiple segments to be loaded. Optionally, the multiple segments to be loaded may be at least one of the following: a code segment, a data segment, a heap, a stack, or a start of a symbol block (Block Started by Symbol, BSS) segment, where the BSS is a memory area used to store uninitialized global variables and static variables in the program. That is, the multiple segments to be loaded may be multiple code segments, multiple data segments, or a combination of multiple code segments and data segments, etc., and some of the segments to be loaded are related to the initialization of the software module. , that is to say, these to-be-loaded segments are only called when the software module is initialized, and are used less frequently at other times. If these to-be-loaded segments are loaded into the SRAM memory area, it takes up limited SRAM memory resources, then in When other sections to be loaded with high performance requirements need to be loaded into the memory area of SRAM for execution, they may encounter the problem of insufficient SRAM memory resources, thereby affecting the overall performance of the chip. Therefore, under the limited SRAM memory resources, more software applications cannot be supported, and it can also be understood that the utilization efficiency of the SRAM memory resources is low. At this time, optionally, the device for loading a software module may determine, according to at least one of the following information, that the segment to be loaded in the software module is the first segment to be loaded or the second segment to be loaded: The frequency of use, the power consumption of the to-be-loaded segment, and the memory size occupied by the to-be-loaded segment, where the first to-be-loaded segment is the to-be-loaded segment to be loaded into the first storage area, and the second to-be-loaded segment is the to-be-loaded segment to be loaded. The segment to be loaded in the second storage area. That is to say, the method for loading a software module in the embodiment of the present invention does not load the entire software module into the first storage area or the second storage area, but can perform multiple operations on multiple segments to be loaded in the software module according to the attributes of the segment to be loaded. Scatter loading. Optionally, the first storage area may be a DDR memory area, and the second storage area may be a SRAM memory area, because DDR memory resources are relatively abundant, optionally, according to the embodiment of the present invention, the loading software module The device can load the code segment or data segment that is used less frequently into the memory area of DDR. For example, the code segment or data segment related to initialization can be loaded into the memory area of DDR. The data segment is loaded into the memory area of SRAM, so as to avoid the uncommon code segment or data segment occupying the precious SRAM memory resources, resulting in the commonly used code segment or data segment that can reflect the chip performance needs to be executed in the SRAM memory area. Encountered the problem of insufficient SRAM memory resources, thus affecting the overall performance of the chip. Because SRAM memory resources are limited, if a code segment or data segment that occupies a relatively large memory is loaded, other segments to be loaded may not be loaded normally due to insufficient memory. At this time, optionally, the device for loading software modules can Load the code segment or data segment that occupies a large memory resource into the DDR memory area, and load the code segment or data segment that occupies a small memory resource into the SRAM memory area, so that more limited SRAM memory resources can be run. software application. Since the software module consumes less power when executed in the memory area of SRAM than when executed in the memory area of DDR, optionally, the device for loading software modules can also load code segments or data segments that consume less power during execution To the memory area of DDR, load the code segment or data segment that consumes a lot of power during execution into the memory area of SRAM, etc. After it is determined that the segment to be loaded is the first segment to be loaded or the second segment to be loaded, that is, after it is determined that the segment to be loaded is the segment to be loaded into which storage area to be loaded, the device for loading software modules will load the segment to be loaded. The segment is loaded into the corresponding storage area, optionally, if the segment to be loaded is the first segment to be loaded, the segment to be loaded is loaded into the first storage area, or if the segment to be loaded is the second segment to be loaded, The to-be-loaded segment is loaded into the second storage area. Execute the corresponding segment to be loaded in the corresponding storage area.
因此,本发明实施例的加载软件模块的方法,能够根据软件模块中的待加载段的使用频率、功耗和内存占用大小确定该待加载段待加载到哪个存储区,因此,能够根据待加载段的属性实现对软件模块中的多个待加载段的分散加载,从而提高芯片的性能和功耗的综合水平。Therefore, the method for loading a software module according to the embodiment of the present invention can determine which storage area the to-be-loaded segment is to be loaded into according to the usage frequency, power consumption and memory occupancy size of the to-be-loaded segment in the software module. The segment attribute realizes scattered loading of multiple to-be-loaded segments in the software module, thereby improving the integrated level of chip performance and power consumption.
应理解,该第一待加载段和第二待加载段仅表示两类待加载段,而对待加载段的数量、类型等不作限定,例如,该第一待加载段可以为待加载到第一存储区的各类待加载段,该第二待加载段可以为待加载到第二存储区的各类待加载段,还应理解,该第一存储区和第二存储区仅表示两类存储区,而对存储区的数量、类型不作限定,例如,该第一存储区可以为多个DDR的内存区,该第二存储区可以为多个SRAM的内存区等。It should be understood that the first segment to be loaded and the second segment to be loaded only represent two types of segments to be loaded, and the number and type of segments to be loaded are not limited. For example, the first segment to be loaded may be the segment to be loaded into the first segment to be loaded. Various types of segments to be loaded in the storage area, the second segment to be loaded may be various types of segments to be loaded to be loaded into the second storage area, and it should be understood that the first storage area and the second storage area only represent two types of storage areas The number and type of storage areas are not limited. For example, the first storage area may be a plurality of DDR memory areas, and the second storage area may be a plurality of SRAM memory areas.
可选地,在本发明实施例中,根据以下信息中的至少一项,确定该软件模块中的待加载段为第一待加载段或第二待加载段:该待加载段的使用频率、该待加载段的功耗或该待加载段占用的内存大小,包括:Optionally, in this embodiment of the present invention, it is determined that the segment to be loaded in the software module is the first segment to be loaded or the second segment to be loaded according to at least one of the following information: the usage frequency of the segment to be loaded, The power consumption of the to-be-loaded segment or the memory size occupied by the to-be-loaded segment includes:
若该加载段的使用频率小于第一使用频率阈值,或功耗小于第一功耗阈值,或占用的内存大小大于第一内存阈值,确定该待加载段为第一待加载段;或If the usage frequency of the loaded segment is less than the first usage frequency threshold, or the power consumption is less than the first power consumption threshold, or the occupied memory size is greater than the first memory threshold, determine that the to-be-loaded segment is the first to-be-loaded segment; or
若该待加载段的使用频率不小于该第一使用频率阈值,或功耗不小于该第一功耗阈值,或占用的内存大小不大于该第一内存阈值时,确定该待加载段为第二待加载段。If the usage frequency of the segment to be loaded is not less than the first usage frequency threshold, or the power consumption is not less than the first power consumption threshold, or the size of the memory occupied is not greater than the first memory threshold, the segment to be loaded is determined to be the first The second segment to be loaded.
具体而言,该加载软件模块的装置可以根据以下信息中的至少一项,确定该软件模块中的待加载段为第一待加载段或第二待加载段:该待加载段的使用频率、该待加载段的功耗和该待加载段占用的内存大小。可选地,若该加载段的使用频率小于第一使用频率阈值,或功耗小于第一功耗阈值,或占用的内存大小大于第一内存阈值,可以确定该待加载段为该第一待加载段;或若该待加载段的使用频率不小于该第一使用频率阈值,或功耗不小于该第一功耗阈值,或占用的内存大小不大于该第一内存阈值,可以确定该待加载段为该第二待加载段。因此,该加载软件模块的装置可以根据待加载段的使用频率、功耗或占用的内存大小的差异,将不同特性的待加载段加载到相应的存储区。可选地,该第一待加载段可以为待加载到DDR的内存区的待加载段,该第二待加载段可以为待加载到SRAM的内存区的待加载段,在本发明实施例中,该加载软件模块的装置可以将使用频率低的待加载段确定为第一待加载段,然后将该待加载段加载到DDR的内存区,也可以将占用内存大的待加载段确定为第一待加载段,然后将该待加载段加载到DDR的内存区,或者将执行时功耗大的待加载段确定为第二待加载段,将该待加载段加载到SRAM的内存区等,也就是该加载软件模块的装置可以针对该软件模块中的待加载段的特性对不同的待加载段进行分散加载。因此,在SRAM内存资源大小相同的条件下,本发明实施例的加载软件模块的方法,芯片上能够加载更多的软件应用,同样地,如果芯片性能相同的话,芯片采用根据本发明实施例的加载软件模块的方法的话,对SRAM内存资源的消耗相对较低,因此,在性能相同的情况下,本发明实施例的加载软件模块的方法能够使得实际需要的芯片的SRAM内存大小降低,SRAM内存大小降低,随之而来,芯片的成本也降低了,芯片设计得也更加紧凑。同时,根据本发明实施例的加载软件模块的方法,能够针对待加载段的功耗的差异性进行分散加载,因此,在芯片性能相同的情况下,本发明实施例的加载软件模块的方法能够降低了芯片的整体功耗。Specifically, the device for loading a software module may determine that the segment to be loaded in the software module is the first segment to be loaded or the second segment to be loaded according to at least one of the following information: the usage frequency of the segment to be loaded, The power consumption of the to-be-loaded segment and the memory size occupied by the to-be-loaded segment. Optionally, if the use frequency of the loaded segment is less than the first use frequency threshold, or the power consumption is less than the first power consumption threshold, or the occupied memory size is greater than the first memory threshold, it can be determined that the to-be-loaded segment is the first to-be-loaded segment. load segment; or if the use frequency of the to-be-loaded segment is not less than the first use frequency threshold, or the power consumption is not less than the first power consumption threshold, or the occupied memory size is not greater than the first memory threshold, it can be determined that the to-be-loaded segment The loaded segment is the second to-be-loaded segment. Therefore, the apparatus for loading a software module can load the to-be-loaded segments with different characteristics into the corresponding storage areas according to differences in the usage frequency, power consumption or occupied memory size of the to-be-loaded segments. Optionally, the first to-be-loaded segment may be a to-be-loaded segment to be loaded into the memory area of the DDR, and the second to-be-loaded segment may be a to-be-loaded segment to be loaded into the SRAM memory area. In this embodiment of the present invention , the device for loading software modules may determine the segment to be loaded with a low frequency of use as the first segment to be loaded, and then load the segment to be loaded into the memory area of the DDR, or may determine the segment to be loaded that occupies a large amount of memory as the first segment to be loaded Once the segment to be loaded is loaded, the segment to be loaded is then loaded into the memory area of DDR, or the segment to be loaded that consumes a lot of power during execution is determined as the second segment to be loaded, and the segment to be loaded is loaded into the memory area of SRAM, etc., That is, the apparatus for loading a software module can scatter-load different segments to be loaded according to the characteristics of the segments to be loaded in the software module. Therefore, under the condition that the size of the SRAM memory resources is the same, the method for loading software modules in the embodiment of the present invention can load more software applications on the chip. Similarly, if the chip performance is the same, the chip adopts the method according to the embodiment of the present invention. The method for loading software modules has relatively low consumption of SRAM memory resources. Therefore, under the condition of the same performance, the method for loading software modules in the embodiment of the present invention can reduce the size of the SRAM memory of the chip actually required, and the SRAM memory The size is reduced, and with it, the cost of the chip is reduced, and the chip is designed to be more compact. At the same time, according to the method for loading a software module according to the embodiment of the present invention, scattered loading can be performed according to the difference in the power consumption of the segment to be loaded. Therefore, in the case of the same chip performance, the method for loading a software module in the embodiment of the present invention can The overall power consumption of the chip is reduced.
应理解,在本发明实施例中,该第一使用频率阈值、第一功耗阈值或第一内存阈值不是唯一确定的,例如,该第一使用频率阈值可以根据具体的业务场景确定,可选地,在该芯片支持的业务被使用的频率较高时,也可以为该芯片支持的业务的平均使用频率较高时,该第一使用频率阈值可以设置的较高,相反,可以将该第一使用频率阈值设置的较低;该第一功耗阈值可以根据芯片的功耗情况确定,可选地,如果该芯片支持的是业务的平均功耗较高,可以将该第一功耗阈值设置的较高,反之,可以将该第一功耗阈值设置的较低;该第一内存阈值可以该DDR和/或该SRAM的内存资源的大小确定,例如,该第一内存阈值可以根据该SRAM的内存资源的大小确定,如果该SRAM的内存资源较大,可以将该第一内存阈值设置的较大,以便支持内存占用相对较大的待加载段加载到该SRAM的内存区等,本发明实施例对此不作限制。It should be understood that, in this embodiment of the present invention, the first use frequency threshold, the first power consumption threshold, or the first memory threshold are not uniquely determined. For example, the first use frequency threshold may be determined according to a specific business scenario, and an optional Ground, when the frequency of use of the services supported by the chip is high, or the average use frequency of the services supported by the chip is high, the first use frequency threshold can be set higher, on the contrary, the first use frequency threshold can be set higher. 1. The use frequency threshold is set lower; the first power consumption threshold can be determined according to the power consumption of the chip. Optionally, if the average power consumption of the service supported by the chip is high, the first power consumption threshold can be set set higher, otherwise, the first power consumption threshold can be set lower; the first memory threshold can be determined by the size of the memory resources of the DDR and/or the SRAM, for example, the first memory threshold can be based on the The size of the memory resources of the SRAM is determined. If the memory resources of the SRAM are relatively large, the first memory threshold can be set to a larger value, so as to support the loading of the segment to be loaded with a relatively large memory footprint into the memory area of the SRAM, etc. This embodiment of the invention does not limit this.
可选地,在本发明实施例中,在将该待加载段加载到相应的存储区之前,该方法100还可以包括:Optionally, in this embodiment of the present invention, before loading the segment to be loaded into the corresponding storage area, the method 100 may further include:
给该待加载段配置段属性,该段属性用于指示该待加载段为该第一待加载段或该第二待加载段。A segment attribute is configured for the to-be-loaded segment, where the segment attribute is used to indicate that the to-be-loaded segment is the first to-be-loaded segment or the second to-be-loaded segment.
具体而言,在确定该第一待加载段为第一待加载段或第二待加载段后,可选地,该加载软件模块的装置可以给该待加载段配置段属性,该段属性用于指示该待加载段为第一待加载段或第二待加载段,也就是该段属性可以用于指示该待加载段为待加载到第一存储区的待加载段还是待加载到第二存储区的待加载段。例如,在确定数据段ddr.data、ddr.init.data、ddr.minor.data和代码段ddr.text、ddr.init.text、ddr.minor.text为第一待加载段后,以该第一待加载段为待加载到DDR的内存区的待加载段为例,该加载软件模块的装置可以通过以下方式定义代码段或数据段的段属性。Specifically, after determining that the first segment to be loaded is the first segment to be loaded or the second segment to be loaded, optionally, the device for loading software modules may configure a segment attribute for the segment to be loaded, and the segment attribute uses To indicate that the segment to be loaded is the first segment to be loaded or the second segment to be loaded, that is, the segment attribute can be used to indicate whether the segment to be loaded is the segment to be loaded to the first storage area or the segment to be loaded to the second The segment to be loaded in the memory area. For example, after it is determined that the data segments ddr.data, ddr.init.data, ddr.minor.data and the code segments ddr.text, ddr.init.text, and ddr.minor.text are the first segments to be loaded, the For example, a to-be-loaded segment is a to-be-loaded segment to be loaded into the memory area of the DDR, the apparatus for loading a software module may define the segment attribute of the code segment or the data segment in the following manner.
#define OS_SEC_DDR_DATA ddr.data#define OS_SEC_DDR_DATA ddr.data
#define OS_SEC_DDR_DATA_INIT ddr.init.data#define OS_SEC_DDR_DATA_INIT ddr.init.data
#define OS_SEC_DDR_DATA_MINOR ddr.minor.data#define OS_SEC_DDR_DATA_MINOR ddr.minor.data
#define OS_SEC_DDR_TEXT ddr.text#define OS_SEC_DDR_TEXT ddr.text
#define OS_SEC_DDR_TEXT_INIT ddr.init.text#define OS_SEC_DDR_TEXT_INIT ddr.init.text
#define OS_SEC_DDR_TEXT_MINOR ddr.minor.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的段属性。这样,在软件模块加载过程中,通过分析这些待加载段的段属性就可以确定待加载段需要加载到哪个存储区,然后该加载软件模块的装置可以根据该段属性指示的存储区,将该待加载段加载到相应的存储区。Among them, OS_SEC_DDR_DATA, OS_SEC_DDR_DATA_INIT, OS_SEC_DDR_DATA_MINOR, are the segment attributes of the data segments ddr.data, ddr.init.data, ddr.minor.data respectively, OS_SEC_DDR_TEXT, OS_SEC_DDR_TEXT_INIT, OS_SEC_DDR_TEXT_MINOR are ddr.text, ddr.init.text, ddr. The segment attribute of minor.text. In this way, during the software module loading process, by analyzing the segment attributes of these to-be-loaded segments, it can be determined into which storage area the to-be-loaded segment needs to be loaded, and then the device for loading the software module can, according to the storage area indicated by the segment attribute, store the The segment to be loaded is loaded into the corresponding storage area.
应理解,本发明实施例以第一存储区为DDR的内存区,该第二存储区为SRAM的内存区进行介绍仅仅是为了示例,而不应对本发明实施例构成任何限制,该第一存储区还可以为Nor闪存器(Nor Flash)等,该第二存储区还可以为二级缓存,三级缓存等,本发明实施例对此不作限制。It should be understood that, in this embodiment of the present invention, the first storage area is a DDR memory area and the second storage area is a SRAM memory area. The area may also be a Nor Flash memory (Nor Flash) or the like, and the second storage area may also be a L2 cache, a L3 cache, etc., which is not limited in this embodiment of the present invention.
可选地,在本发明实施例中,该待加载段可以为以下中的一种:Optionally, in this embodiment of the present invention, the to-be-loaded segment may be one of the following:
代码段、数据段、堆、栈或BSS段。Code segment, data segment, heap, stack or BSS segment.
因此,本发明实施例的加载软件模块的方法,能够根据软件模块中的待加载段的使用频率、功耗或内存占用大小确定该待加载段待加载到哪个存储区,因此,能够根据待加载段的属性实现对软件模块中的多个待加载段的分散加载,从而提高芯片的性能和功耗的综合水平。Therefore, the method for loading a software module according to the embodiment of the present invention can determine to which storage area the segment to be loaded is to be loaded according to the usage frequency, power consumption or memory occupancy size of the segment to be loaded in the software module. The segment attribute realizes scattered loading of multiple to-be-loaded segments in the software module, thereby improving the integrated level of chip performance and power consumption.
图2示出了根据本发明实施例的加载软件模块的装置200的示意性框图,如图2所示,该装置200包括:FIG. 2 shows a schematic block diagram of an apparatus 200 for loading software modules according to an embodiment of the present invention. As shown in FIG. 2 , the apparatus 200 includes:
确定模块210,用于根据以下信息中的至少一项,确定该软件模块中的待加载段为第一待加载段或第二待加载段:该待加载段的使用频率、该待加载段的功耗和该待加载段占用的内存大小,该第一待加载段为待加载到第一存储区的待加载段,该第二待加载段为待加载到第二存储区的待加载段;The determining module 210 is configured to determine that the segment to be loaded in the software module is the first segment to be loaded or the second segment to be loaded according to at least one of the following information: the usage frequency of the segment to be loaded, the frequency of the segment to be loaded Power consumption and the memory size occupied by the segment to be loaded, the first segment to be loaded is the segment to be loaded to be loaded into the first storage area, and the second segment to be loaded is the segment to be loaded to be loaded into the second storage area;
加载模块220,用于当该确定模块210确定该待加载段为该第一待加载段时,将该待加载段加载到该第一存储区,或当该确定模块210确定该待加载段为该第二待加载段时,将该待加载段加载到该第二存储区。The loading module 220 is configured to load the to-be-loaded segment into the first storage area when the determination module 210 determines that the to-be-loaded segment is the first to-be-loaded segment, or when the determination module 210 determines that the to-be-loaded segment is When the second segment to be loaded is loaded, the segment to be loaded is loaded into the second storage area.
因此,本发明实施例的加载软件模块的装置,能够根据软件模块中的待加载段的使用频率、功耗或内存占用大小确定该待加载段待加载到哪个存储区,因此,能够根据待加载段的属性实现对软件模块中的多个待加载段的分散加载,从而提高芯片的性能和功耗的综合水平。Therefore, the device for loading a software module according to the embodiment of the present invention can determine which storage area the segment to be loaded is to be loaded into according to the usage frequency, power consumption or memory occupancy size of the segment to be loaded in the software module. The segment attribute realizes scattered loading of multiple to-be-loaded segments in the software module, thereby improving the integrated level of chip performance and power consumption.
可选地,在本发明实施例中,该确定模块210具体用于:Optionally, in this embodiment of the present invention, the determining module 210 is specifically configured to:
若该加载段的使用频率小于第一使用频率阈值,或功耗小于第一功耗阈值,或占用的内存大小大于第一内存阈值,确定该待加载段为该第一待加载段;或If the usage frequency of the loaded segment is less than the first usage frequency threshold, or the power consumption is less than the first power consumption threshold, or the occupied memory size is greater than the first memory threshold, determine that the to-be-loaded segment is the first to-be-loaded segment; or
若该待加载段的使用频率不小于该第一使用频率阈值,或功耗不小于该第一功耗阈值,或占用的内存大小不大于该第一内存阈值时,确定该待加载段为该第二待加载段。If the usage frequency of the segment to be loaded is not less than the first usage frequency threshold, or the power consumption is not less than the first power consumption threshold, or the memory size occupied is not greater than the first memory threshold, determine that the segment to be loaded is the The second segment to be loaded.
可选地,在本发明实施例中,该装置200还可以包括:Optionally, in this embodiment of the present invention, the apparatus 200 may further include:
配置模块,用于给该待加载段配置段属性,该段属性用于指示该待加载段为该第一待加载段或该第二待加载段。The configuration module is configured to configure a segment attribute for the to-be-loaded segment, where the segment attribute is used to indicate that the to-be-loaded segment is the first to-be-loaded segment or the second to-be-loaded segment.
可选地,在本发明实施例中,该第一存储区可以为DDR的内存区,该第二存储区为SRAM的内存区。Optionally, in this embodiment of the present invention, the first storage area may be a memory area of DDR, and the second storage area may be a memory area of SRAM.
可选地,在本发明实施例中,该待加载段可以为以下中的一种:代码段、数据段、堆、栈或BSS段。Optionally, in this embodiment of the present invention, the segment to be loaded may be one of the following: a code segment, a data segment, a heap, a stack, or a BSS segment.
因此,本发明实施例的加载软件模块的装置,能够根据软件模块中的待加载段的使用频率、功耗或内存占用大小确定该待加载段待加载到哪个存储区,因此,能够根据待加载段的属性实现对软件模块中的多个待加载段的分散加载,从而提高芯片的性能和功耗的综合水平。Therefore, the device for loading a software module according to the embodiment of the present invention can determine which storage area the segment to be loaded is to be loaded into according to the usage frequency, power consumption or memory occupancy size of the segment to be loaded in the software module. The segment attribute realizes scattered loading of multiple to-be-loaded segments in the software module, thereby improving the integrated level of chip performance and power consumption.
根据本发明实施例的加载软件模块的装置200可对应于根据本发明实施例的加载软件模块的方法100中的加载软件模块的装置,并且加载软件模块的装置200中的各个模块的上述和其它操作和/或功能分别为了实现前述各个方法的相应流程,为了简洁,在此不再赘述。The apparatus 200 for loading a software module according to an embodiment of the present invention may correspond to the apparatus for loading a software module in the method 100 for loading a software module according to an embodiment of the present invention, and the above and other aspects of the respective modules in the apparatus 200 for loading a software module The operations and/or functions are respectively in order to implement the corresponding processes of the foregoing methods, and are not repeated here for the sake of brevity.
如图3所示,本发明实施例还提供了一种加载软件模块的装置300,该装置300包括处理器310、存储器320、总线系统330。其中,处理器310、存储器320通过总线系统330相连,该存储器320用于存储指令,该处理器310用于执行该存储器320存储的指令。其中,该处理器310用于根据以下信息中的至少一项,确定该软件模块中的待加载段为第一待加载段或第二待加载段:该待加载段的使用频率、该待加载段的功耗和该待加载段占用的内存大小,该第一待加载段为加载到第一存储区的待加载段,该第二待加载段为待加载到第二存储区的待加载段;该处理器310还用于在该待加载段为该第一待加载段时,将该待加载段加载到该第一存储区,或在该待加载段为该第二待加载段时,将该待加载段加载到该第二存储区。As shown in FIG. 3 , an embodiment of the present invention further provides an apparatus 300 for loading software modules. The apparatus 300 includes a processor 310 , a memory 320 , and a bus system 330 . The processor 310 and the memory 320 are connected through a bus system 330 , the memory 320 is used for storing instructions, and the processor 310 is used for executing the instructions stored in the memory 320 . Wherein, the processor 310 is configured to determine the segment to be loaded in the software module as the first segment to be loaded or the second segment to be loaded according to at least one of the following information: the usage frequency of the segment to be loaded, the segment to be loaded The power consumption of the segment and the memory size occupied by the segment to be loaded, the first segment to be loaded is the segment to be loaded to be loaded into the first storage area, and the second segment to be loaded is the segment to be loaded to be loaded into the second storage area ; The processor 310 is further configured to load the segment to be loaded into the first storage area when the segment to be loaded is the first segment to be loaded, or when the segment to be loaded is the second segment to be loaded, The to-be-loaded segment is loaded into the second storage area.
因此,本发明实施例的加载软件模块的装置,能够根据软件模块中的待加载段的使用频率、功耗或内存占用大小确定该待加载段待加载到哪个存储区,因此,能够根据待加载段的属性实现对软件模块中的多个待加载段的分散加载,从而提高芯片的性能和功耗的综合水平。Therefore, the device for loading a software module according to the embodiment of the present invention can determine which storage area the segment to be loaded is to be loaded into according to the usage frequency, power consumption or memory occupancy size of the segment to be loaded in the software module. The segment attribute realizes scattered loading of multiple to-be-loaded segments in the software module, thereby improving the integrated level of chip performance and power consumption.
可选地,在本发明实施例中,该存储器320还可以用于存储软件程序,该软件程序用于实现本发明实施例的加载软件模块的方法,该处理器310可以用于执行该存储器320中存储的该软件程序,该软件程序用于根据该待加载段的属性将待加载的软件模块中的待加载段分散加载到第一存储区或第二存储区,其中,该第一存储区可以为DDR的内存区,该第二存储区可以为SRAM的内存区。Optionally, in this embodiment of the present invention, the memory 320 may also be used to store a software program, and the software program is used to implement the method for loading a software module in this embodiment of the present invention, and the processor 310 may be used to execute the memory 320 The software program stored in the software program is used to scatter and load the to-be-loaded segments in the software module to be loaded into the first storage area or the second storage area according to the attributes of the to-be-loaded segment, wherein the first storage area It can be a memory area of DDR, and the second memory area can be a memory area of SRAM.
应理解,在本发明实施例中,该处理器310可以是中央处理单元(CentralProcessing Unit,简称为“CPU”),该处理器310还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。It should be understood that, in this embodiment of the present invention, the processor 310 may be a central processing unit (Central Processing Unit, “CPU” for short), and the processor 310 may also be other general-purpose processors, digital signal processors (DSPs), Application Specific Integrated Circuits (ASICs), Off-The-Shelf Programmable Gate Arrays (FPGAs) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
该存储器320可以包括只读存储器和随机存取存储器,并向处理器310提供指令和数据。存储器320的一部分还可以包括非易失性随机存取存储器。例如,存储器320还可以存储设备类型的信息。The memory 320 , which may include read-only memory and random access memory, provides instructions and data to the processor 310 . A portion of memory 320 may also include non-volatile random access memory. For example, memory 320 may also store device type information.
该总线系统330除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统330。In addition to the data bus, the bus system 330 may also include a power bus, a control bus, a status signal bus, and the like. However, for the sake of clarity, the various buses are labeled as bus system 330 in the figure.
在实现过程中,上述方法的各步骤可以通过处理器310中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器320,处理器310读取存储器320中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。In the implementation process, each step of the above-mentioned method can be completed by a hardware integrated logic circuit in the processor 310 or an instruction in the form of software. The steps of the method disclosed in conjunction with the embodiments of the present invention may be directly embodied as executed by a hardware processor, or executed by a combination of hardware and software modules in the processor. The software modules may be located in random access memory, flash memory, read-only memory, programmable read-only memory or electrically erasable programmable memory, registers and other storage media mature in the art. The storage medium is located in the memory 320, and the processor 310 reads the information in the memory 320, and completes the steps of the above method in combination with its hardware. To avoid repetition, detailed description is omitted here.
可选地,在本发明实施例中,该处理器310具体用于:Optionally, in this embodiment of the present invention, the processor 310 is specifically configured to:
若该加载段的使用频率小于第一使用频率阈值,或功耗小于第一功耗阈值,或占用的内存大小大于第一内存阈值,确定该待加载段为该第一待加载段;或If the usage frequency of the loaded segment is less than the first usage frequency threshold, or the power consumption is less than the first power consumption threshold, or the occupied memory size is greater than the first memory threshold, determine that the to-be-loaded segment is the first to-be-loaded segment; or
若该待加载段的使用频率不小于该第一使用频率阈值,或功耗不小于该第一功耗阈值,或占用的内存大小不大于该第一内存阈值时,确定该待加载段为该第二待加载段。If the usage frequency of the segment to be loaded is not less than the first usage frequency threshold, or the power consumption is not less than the first power consumption threshold, or the memory size occupied is not greater than the first memory threshold, determine that the segment to be loaded is the The second segment to be loaded.
可选地,在本发明实施例中,该处理310还用于:Optionally, in this embodiment of the present invention, the process 310 is further used to:
给该待加载段配置段属性,该段属性用于指示该待加载段为该第一待加载段或该第二待加载段。A segment attribute is configured for the to-be-loaded segment, where the segment attribute is used to indicate that the to-be-loaded segment is the first to-be-loaded segment or the second to-be-loaded segment.
可选地,在本发明实施例中,该待加载段为以下中的一种:Optionally, in this embodiment of the present invention, the to-be-loaded segment is one of the following:
代码段、数据段、堆、栈或BSS段。Code segment, data segment, heap, stack or BSS segment.
因此,本发明实施例的加载软件模块的装置,能够根据软件模块中的待加载段的使用频率、功耗或内存占用大小确定该待加载段待加载到哪个存储区,因此,能够根据待加载段的属性实现对软件模块中的多个待加载段的分散加载,从而提高芯片的性能和功耗的综合水平。Therefore, the device for loading a software module according to the embodiment of the present invention can determine which storage area the segment to be loaded is to be loaded into according to the usage frequency, power consumption or memory occupancy size of the segment to be loaded in the software module. The segment attribute realizes scattered loading of multiple to-be-loaded segments in the software module, thereby improving the integrated level of chip performance and power consumption.
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。It should be understood that the term "and/or" in this document is only an association relationship to describe associated objects, indicating that there can be three kinds of relationships, for example, A and/or B, which can mean that A exists alone, and A and B exist at the same time , there are three cases of B alone. In addition, the character "/" in this document generally indicates that the related objects are an "or" relationship.
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。It should be understood that, in various embodiments of the present invention, the size of the sequence numbers of the above-mentioned processes does not mean the sequence of execution, and the execution sequence of each process should be determined by its functions and internal logic, rather than the embodiments of the present invention. implementation constitutes any limitation.
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。Those of ordinary skill in the art can realize that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Skilled artisans may implement the described functionality using different methods for each particular application, but such implementations should not be considered beyond the scope of the present invention.
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working process of the above-described systems, devices and units may refer to the corresponding processes in the foregoing method embodiments, which will not be repeated here.
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。In the several embodiments provided in this application, it should be understood that the disclosed system, apparatus and method may be implemented in other manners. For example, the apparatus embodiments described above are only illustrative. For example, the division of the units is only a logical function division. In actual implementation, there may be other division methods. For example, multiple units or components may be combined or Can be integrated into another system, or some features can be ignored, or not implemented. On the other hand, the shown or discussed mutual coupling or direct coupling or communication connection may be through some interfaces, indirect coupling or communication connection of devices or units, and may be in electrical, mechanical or other forms.
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。The units described as separate components may or may not be physically separated, and components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution in this embodiment.
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。In addition, each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。The functions, if implemented in the form of software functional units and sold or used as independent products, may be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present invention can be embodied in the form of a software product in essence, or the part that contributes to the prior art or the part of the technical solution. The computer software product is stored in a storage medium, including Several instructions are used to cause a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present invention. The aforementioned storage medium includes: U disk, mobile hard disk, Read-Only Memory (ROM, Read-Only Memory), Random Access Memory (RAM, Random Access Memory), magnetic disk or optical disk and other media that can store program codes .
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。The above are only specific embodiments of the present invention, but the protection scope of the present invention is not limited thereto. Any person skilled in the art can easily think of changes or substitutions within the technical scope disclosed by the present invention. should be included within the protection scope of the present invention. Therefore, the protection scope of the present invention should be based on the protection scope of the claims.
Claims (8)
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910581177.8A CN110413339A (en) | 2015-11-12 | 2015-11-12 | Method and device for loading software modules |
| CN201510770304.0A CN105320543B (en) | 2015-11-12 | 2015-11-12 | Method and apparatus for loading software modules |
| PCT/CN2016/104167 WO2017080383A1 (en) | 2015-11-12 | 2016-11-01 | Method and device for loading software module |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201510770304.0A CN105320543B (en) | 2015-11-12 | 2015-11-12 | Method and apparatus for loading software modules |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201910581177.8A Division CN110413339A (en) | 2015-11-12 | 2015-11-12 | Method and device for loading software modules |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN105320543A CN105320543A (en) | 2016-02-10 |
| CN105320543B true CN105320543B (en) | 2019-06-28 |
Family
ID=55247968
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201910581177.8A Pending CN110413339A (en) | 2015-11-12 | 2015-11-12 | Method and device for loading software modules |
| CN201510770304.0A Active CN105320543B (en) | 2015-11-12 | 2015-11-12 | Method and apparatus for loading software modules |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201910581177.8A Pending CN110413339A (en) | 2015-11-12 | 2015-11-12 | Method and device for loading software modules |
Country Status (2)
| Country | Link |
|---|---|
| CN (2) | CN110413339A (en) |
| WO (1) | WO2017080383A1 (en) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110413339A (en) * | 2015-11-12 | 2019-11-05 | 华为技术有限公司 | Method and device for loading software modules |
| CN110471675B (en) * | 2019-08-21 | 2023-06-16 | 山东比特智能科技股份有限公司 | Program burning method, system, device and computer readable storage medium |
| CN111580831A (en) * | 2020-05-14 | 2020-08-25 | 深圳忆联信息系统有限公司 | Method and device for improving code running efficiency, computer equipment and storage medium |
| CN115718620A (en) * | 2022-11-22 | 2023-02-28 | 科东(广州)软件科技有限公司 | Code program migration method, device, equipment and storage medium |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101986286A (en) * | 2009-07-28 | 2011-03-16 | 联发科技股份有限公司 | Embedded system and its management method |
| CN102999438A (en) * | 2011-07-26 | 2013-03-27 | 辉达公司 | Techniques for balancing accesses to memory having different memory types |
| CN103376879A (en) * | 2012-04-17 | 2013-10-30 | 索尼公司 | Memory control apparatus, memory control method, information processing apparatus and program |
| CN104272386A (en) * | 2012-04-25 | 2015-01-07 | 国际商业机器公司 | Reduce power consumption through data migration within a tiered storage system |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101128234B1 (en) * | 2006-08-23 | 2012-03-23 | 엘지전자 주식회사 | Apparatus and method for controlling access of memory |
| CN101216772B (en) * | 2008-01-15 | 2011-05-11 | 中兴通讯股份有限公司 | Embedded equipment startup method and software upgrading method |
| CN102214115A (en) * | 2011-07-21 | 2011-10-12 | 松翰科技股份有限公司 | Universal serial bus control device and initialization method thereof |
| BR112014013606B1 (en) * | 2011-12-28 | 2021-11-03 | Intel Corporation | METHOD, DEVICE AND SYSTEM FOR DISTRIBUTING DATA STORAGE BETWEEN VOLATILE AND NON-VOLATILE MEMORY |
| CN103677654B (en) * | 2012-09-24 | 2018-03-23 | 联想(北京)有限公司 | The method and electronic equipment of a kind of data storage |
| CN103150257A (en) * | 2013-02-28 | 2013-06-12 | 天脉聚源(北京)传媒科技有限公司 | Memory management method and memory management device |
| CN106951392A (en) * | 2013-11-12 | 2017-07-14 | 上海新储集成电路有限公司 | A kind of quick startup low-power consumption computer on-chip system with self-learning function |
| CN103793332B (en) * | 2014-02-28 | 2017-03-01 | 中国科学院微电子研究所 | Data storage method and device based on memory, processor and electronic equipment |
| CN110413339A (en) * | 2015-11-12 | 2019-11-05 | 华为技术有限公司 | Method and device for loading software modules |
-
2015
- 2015-11-12 CN CN201910581177.8A patent/CN110413339A/en active Pending
- 2015-11-12 CN CN201510770304.0A patent/CN105320543B/en active Active
-
2016
- 2016-11-01 WO PCT/CN2016/104167 patent/WO2017080383A1/en not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101986286A (en) * | 2009-07-28 | 2011-03-16 | 联发科技股份有限公司 | Embedded system and its management method |
| CN102999438A (en) * | 2011-07-26 | 2013-03-27 | 辉达公司 | Techniques for balancing accesses to memory having different memory types |
| CN103376879A (en) * | 2012-04-17 | 2013-10-30 | 索尼公司 | Memory control apparatus, memory control method, information processing apparatus and program |
| CN104272386A (en) * | 2012-04-25 | 2015-01-07 | 国际商业机器公司 | Reduce power consumption through data migration within a tiered storage system |
Also Published As
| Publication number | Publication date |
|---|---|
| CN105320543A (en) | 2016-02-10 |
| CN110413339A (en) | 2019-11-05 |
| WO2017080383A1 (en) | 2017-05-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10628169B2 (en) | Method of implementing magnetic random access memory (MRAM) for mobile system-on-chip boot | |
| US10108241B2 (en) | Method and apparatus for saving power of a processor socket in a multi-socket computer system | |
| CN103270488A (en) | Method and apparatus for improving restart time of a platform | |
| CN105320543B (en) | Method and apparatus for loading software modules | |
| CN105993001B (en) | Techniques for switching between operating systems | |
| US20170201566A1 (en) | File downloading method, apparatus, and terminal device | |
| CN106951521B (en) | Method, device and system for reading and writing log files | |
| CN110765031A (en) | Data storage method, device, mobile terminal and storage medium | |
| US9083378B2 (en) | Dynamic compression/decompression (CODEC) configuration | |
| US20160187958A1 (en) | Techniques for managing power and performance for a networking device | |
| CN107797642A (en) | A kind of standby method for electrically and device | |
| CN106550416A (en) | Wireless communication device and control method | |
| JP2017528813A (en) | System and method for expanding memory for system on chip | |
| WO2021018275A1 (en) | Power-on file system check method and related device | |
| CN115982095A (en) | A logic truth table acquisition method, device, electronic equipment and storage medium | |
| CN106068494A (en) | The adaptation method of a kind of DPI and electronic equipment | |
| US10970206B2 (en) | Flash data compression decompression method and apparatus | |
| US9146876B2 (en) | Caching method and caching system using dual disks | |
| US9760145B2 (en) | Saving the architectural state of a computing device using sectors | |
| CN117215997A (en) | Vehicle-mounted SoC multi-application processing method, electronic equipment and storage medium | |
| US20150220371A1 (en) | Energy aware information processing framework for computation and communication devices coupled to a cloud | |
| CN116225685A (en) | Method and device for scheduling physical cores | |
| CN113485713B (en) | Method and device for quickly compiling program, electronic equipment and storage medium | |
| CN110851433A (en) | Key optimization method for key value storage system, storage medium, electronic device and system | |
| CN110286963B (en) | Control code loading method, device, startup controller and electronic device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |