CN116737279A - 用于程序运行的方法及装置、处理器、电子设备、介质 - Google Patents

用于程序运行的方法及装置、处理器、电子设备、介质 Download PDF

Info

Publication number
CN116737279A
CN116737279A CN202311023092.0A CN202311023092A CN116737279A CN 116737279 A CN116737279 A CN 116737279A CN 202311023092 A CN202311023092 A CN 202311023092A CN 116737279 A CN116737279 A CN 116737279A
Authority
CN
China
Prior art keywords
memory
program
target program
processor
data
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
CN202311023092.0A
Other languages
English (en)
Other versions
CN116737279B (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.)
Beijing Ziguang Xinneng Technology Co Ltd
Original Assignee
Beijing Ziguang Xinneng 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 Beijing Ziguang Xinneng Technology Co Ltd filed Critical Beijing Ziguang Xinneng Technology Co Ltd
Priority to CN202311023092.0A priority Critical patent/CN116737279B/zh
Publication of CN116737279A publication Critical patent/CN116737279A/zh
Application granted granted Critical
Publication of CN116737279B publication Critical patent/CN116737279B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44557Code layout in executable memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

本公开涉及芯片控制的技术领域,公开了一种用于程序运行的方法,应用于处理器,处理器分别与数据搬移器和第一存储器电连接,数据搬移器分别与第一存储器和第二存储器电连接,用于程序运行的方法包括:在检测到程序启动需求的情况下,基于预设的搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器;在数据搬移器搬移目标程序期间,运行引导程序;在引导程序运行完成后,运行第一存储器中的目标程序。上述方法可以使处理器的运行引导程序的过程和目标程序的搬移过程能够并行执行,这可以减少程序运行前的准备时间,有助于提升程序的启动速度。本公开还公开了一种用于程序运行的装置、处理器、电子设备、介质。

Description

用于程序运行的方法及装置、处理器、电子设备、介质
技术领域
本公开涉及芯片控制的技术领域,例如涉及一种用于程序运行的方法及装置、处理器、电子设备、介质。
背景技术
当应用程序存储在不同类型的存储器中时,处理器运行该应用程序的耗时通常是不同的。例如,应用程序存储在易失性存储器时的运行耗时,通常会少于该应用程序存储在非易失性存储器时的运行耗时。为了降低应用程序的运行耗时,可以在处理器运行应用程序之前,将存储在非易失性存储器的应用程序的部分或全部数据搬移到易失性存储器中。
可以理解的是,处理器需要运行引导程序以完成自身的启动之后,才能运行应用程序。也就是说,在处理器运行应用程序之前,需要完成处理器启动和应用程序的数据搬移这两个阶段的工作。相关技术公开了一种方法,该方法包括:检测到对程序的启动需求,其中,所述程序的启动代码至少部分保存在外部存储器,所述至少部分保存在外部存储器的启动代码包括多个代码段;多次执行将所述外部存储器中的所述代码段加载到内部存储器并运行所述代码段的操作,其中,每次加载的所述代码段不同;其中,所述每个代码段的尺寸小于或等于所述内部存储器中可执行该代码段的区域的尺寸。
可见,该方法需要处理器全程参与应用程序的数据在两个存储器之间的搬移工作,这就需要处理器在运行引导程序以完成自身的启动之后,才能执行应用程序的数据的搬移工作。由于处理器的启动工作和应用程序的数据搬移工作需要先后执行,这必然会增加程序运行前的准备时间。因此,在相关技术中,会因为增加了应用程序的数据在两个存储器之间的搬移工作,而导致应用程序运行前的准备时间被延长问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
本公开实施例提供了一种用于程序运行的方法及装置、处理器、电子设备、介质,在实现在两个存储器之间的搬移应用程序的数据的同时,可以减少应用程序运行前的准备时间。
根据本公开的第一方面,提供了一种用于程序运行的方法,应用于处理器,处理器分别与数据搬移器和第一存储器电连接,数据搬移器分别与第一存储器和第二存储器电连接,用于程序运行的方法包括:
在检测到程序启动需求的情况下,基于预设的搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器;
在数据搬移器搬移目标程序期间,运行引导程序;
在引导程序运行完成后,运行第一存储器中的目标程序。
在一些实施例中,搬移配置信息包括目标程序中各数据块的地址。
在一些实施例中,基于预设的搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器,包括:
基于搬移配置信息检验第二存储器中的目标程序的数据是否完整;
在确定第二存储器中的目标程序的数据完整的情况下,基于搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器。
本公开实施例在搬移目标程序之前,对目标程序的数据进行完整性检验,在确保目标程序的数据完整的情况下再进行搬运,避免目标程序在后续无法正常运行。
在一些实施例中,基于预设的搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器,还包括:
在确定第二存储器中的目标程序的数据不完整的情况下,基于预设的备份程序重写第二存储器中的目标程序;
在第二存储器中的目标程序重写完成的情况下,基于搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器。
本公开实施例可以预先目标程序配置备份程序,基于备份程序能够对数据不完整的目标程序进行重写,从而使目标程序恢复正常,以便目标程序能够正常运行。
在一些实施例中,基于预设的搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器,包括:
基于预设的搬移配置信息生成搬移控制指令;
将控制指令发送至数据搬移器,以指示数据搬移器将第二存储器中的目标程序搬移至第一存储器。
在一些实施例中,运行第一存储器中的目标程序,包括:在引导程序运行完成并确定第二存储器中的目标程序已全部搬运至第一存储器的情况下,运行第一存储器中的目标程序。
引导程序的运行过程通常会先于目标程序的搬移过程完成,因此,处理器在引导程序运行完成之后,可以确定第二存储器中的目标程序是否已全部搬运至第一存储器,如果第二存储器中的目标程序已全部搬运至第一存储器,则处理器可以运行引导程序,从而确保目标程序能够正常运行。
在一些实施例中,通过以下方式确定第二存储器中的目标程序已全部搬运至第一存储器:
周期性检测是否接收到搬移完成消息,其中,搬移完成消息是由数据搬移器在完成目标程序的搬移工作后发送的;
在接收到搬移完成消息时,确定第二存储器中的目标程序已全部搬运至第一存储器。
通过数据搬移器向处理器发送搬移完成消息的方式,使处理器通过判断是否接收到搬移完成消息即壳准确地确定第二存储器中的目标程序是否已全部搬运至第一存储器,有助于节省处理器的计算资源。
在一些实施例中,搬移配置信息包括目标程序中数据块的总数量;通过以下方式确定第二存储器中的目标程序已全部搬运至第一存储器:
周期性地确定第一存储器中属于目标程序的数据块的数量是否等于总数量;
在第一存储器中属于目标程序的数据块的数量等于总数量的情况下,确定第二存储器中的目标程序已全部搬运至第一存储器。
在一些实施例中,基于预设的搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器之前,方法还包括:
基于预设的搬移配置信息计算程序搬移时长;
在确定程序搬移时长大于预设的时长阈值时,反馈配置更改消息,其中,配置更改消息用于提示用户更改搬移配置信息。
根据本公开的第二方面,提供了一种用于程序运行的装置,应用于处理器,处理器用于分别与数据搬移器和第一存储器电连接,数据搬移器分别与第一存储器和第二存储器电连接,用于程序运行的装置包括数据搬移模块、引导启动模块和程序执行模块;
数据搬移模块被配置为在检测到程序启动需求的情况下,基于预设的搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器;
引导启动模块被配置为在数据搬移器搬移目标程序期间,运行引导程序;
程序执行模块被配置为在引导程序运行完成后,运行第一存储器中的目标程序。
根据本公开的第三方面,提供了一种处理器,处理器用于分别与数据搬移器和第一存储器电连接,数据搬移器用于分别与第一存储器和第二存储器电连接;
处理器被配置为执行本公开的第一方面提供的用于程序运行的方法。
根据本公开的第四方面,提供了一种电子设备,包括处理器、数据搬移器、第一存储器和第二存储器;
处理器分别与数据搬移器和第一存储器电连接,数据搬移器分别与第一存储器和第二存储器电连接;
处理器被配置为执行本公开的第一方面提供的用于程序运行的方法。
根据本公开实施例的第五方面,提供了一种存储介质,存储有程序指令,程序指令在运行时,执行本公开的第一方面提供的用于程序运行的方法。
本公开实施例提供的用于程序运行的方法及装置、处理器、电子设备、介质,可以实现以下技术效果:
处理器可以基于搬移配置信息,控制数据搬移器将第二存储器中的目标程序搬移至第一存储器。而在数据搬移器搬移目标程序的期间,处理器可以继续执行引导程序以完成自身的启动工作。可见,处理器的运行引导程序的过程和目标程序的搬移过程能够并行执行,这可以减少程序运行前的准备时间,有助于提升程序的启动速度。
以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本公开。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
图1是本公开实施例提供的一种电子设备的示意图;
图2是本公开实施例提供的一种用于程序运行的方法的示意图;
图3是本公开实施例提供的另一种用于程序运行的方法的示意图;
图4是本公开实施例提供的另一种用于程序运行的方法的示意图;
图5是本公开实施例提供的另一种用于程序运行的方法的示意图;
图6是本公开实施例提供的一种用于程序运行的装置的示意图;
图7是本公开实施例提供的另一种用于程序运行的装置的示意图。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
术语“对应”可以指的是一种关联关系或绑定关系,A与B相对应指的是A与B之间是一种关联关系或绑定关系。
本公开实施例提供了一种电子设备,电子设备包括处理器、数据搬移器、第一存储器和第二存储器。处理器分别与数据搬移器和第一存储器电连接,数据搬移器分别与第一存储器和第二存储器电连接。处理器可以执行本公开实施例提供的用于程序运行的方法。
图1是本公开实施例提供的一种电子设备的示意图,如图1所示,电子设备包括处理器101、数据搬移器102、第一存储器103和第二存储器104。处理器101分别与数据搬移器102和第一存储器103电连接,数据搬移器102分别与第一存储器103和第二存储器104电连接。其中,处理器101可以控制数据搬移器102将第二存储器104中的目标程序搬移至第一存储器103。
处理器101通常会嵌入有闪存1011(例如Boot ROM),该闪存1011保存有引导程序(Bootloader)。处理器101启动时需要运行引导程序以完成相关的配置(如初始化硬件设备和建立内存空间的映射表等),在引导程序运行完成之后,处理器101再运行其他程序。
数据搬移器102是具有数据搬移能力的硬件设备,其能够在第一存储器103和第二存储器104之间搬移数据。数据搬移器102在搬移数据的过程中,可以不通过处理器101,也不需要处理器101干预。例如,数据搬移器102可以是存储器直接访问(Direct MemoryAccess,DMA)设备。
第一存储器103和第二存储器104的类型可以根据实际的设计需要而定,处理器101可以在第一存储器103和第二存储器104中读取数据。例如,处理器101可以在第一存储器103和第二存储器104读取程序的数据并执行。
在一些实施例中,对于同样的程序,程序存储在第一存储器103时的程序运行耗时,会小于程序存储在第二存储器104时的程序运行耗时。可选地,第一存储器103可以是易失性存储器,第二存储器104可以是非易失性存储器。例如,第一存储器103可以是随机存取存储器(Random Access Memory,RAM),第一存储器103可以是闪存1011,其中,闪存1011可以包括Flash Memory(Flash EEPROM Memory)和EMMC(Embedded Multi Media Card)等。
在一些实施例中,电子设备还可以包括第三存储器105,第三存储器105可以是非易失性存储器,处理器101与第三存储器105电连接。第三存储器105中存储的数据可以根据实际的设计需要而定。例如,第三存储器105可以存储目标程序的搬运配置信息。
结合图1所示的电子设备,本公开实施例提供了一种用于程序运行的方法。如图2所示,该方法可以包括以下步骤:
步骤201,处理器在检测到程序启动需求的情况下,基于预设的搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器。
在步骤201中,处理器检测程序启动需求的具体方式,可以根据实际的设计需要而定。例如,处理器可以检测是否上电,在检测到上电的情况,即可确定检测到程序启动需求。或者,处理器可以检测是都接收到程序启动指令,在接收到程序启动指令时,即可确定检测到程序启动需求。处理器检测程序启动需求的其他方式此处不再赘述。
处理器在检测到程序启动需求的情况之后,可以从预设的存储位置读取搬移配置信息,基于搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器。其中,搬移配置信息可以包括在第二存储器中,搬移配置信息也可以保存在第三存储器中。
这里,目标程序是指第二存储器中需要搬移到第一存储器的程序,目标程序预先存储在第二存储器中。其中,目标程序可以是一套完整的程序,目标程序也可以是一套完整的程序中的一部分子程序。
搬移配置信息可以包括目标程序的相关特征信息,数据搬移器能够基于搬移配置信息可将第二存储器中的目标程序搬移至第一存储器。例如,搬移配置信息可以包括目标程序的地址,这样数据搬移器可以基于搬移配置信息在第二存储器中读取到目标程序,并将目标程序搬移至第一存储器。
在一些实施例中,处理器基于预设的搬移配置信息生成搬移控制指令,之后将搬移控制指令发送至数据搬移器,数据搬移器可以根据搬移控制指令将第二存储器中的目标程序搬移至第一存储器。可以理解的是,处理器在发送出搬移控制指令之后,便不再参与目标程序的搬移工作。
步骤202,处理器在数据搬移器搬移目标程序期间,运行引导程序。
在此需要说明的是,目标程序的搬移工作由数据搬移器独立完成的,处理器不需要参与。因此,在数据搬移器搬移目标程序期间,处理器可以运行引导程序,处理器通过运行引导程序来完成相关的配置(如初始化硬件设备和建立内存空间的映射表等)可以理解的是,目标程序的搬移工作和引导程序的运行过程在此时是同时进行的。
步骤203,处理器在引导程序运行完成后,运行第一存储器中的目标程序。
可以理解的是,处理器在引导程序运行完成后,处理器可以在第一存储器中读取目标程序的数据并运行目标程序。具体地,处理器在引导程序运行完成后,可以跳转到目标程序的启动地址,从而开始运行第一存储器中的目标程序。
在本公开实施例提供的用于程序运行的方法中,处理器可以基于搬移配置信息,控制数据搬移器将第二存储器中的目标程序搬移至第一存储器。而在数据搬移器搬移目标程序的期间,处理器可以继续执行引导程序以完成自身的启动工作。可见,处理器的启动工作和程序的搬移工作能够并行执行,这可以减少程序运行前的准备时间,有助于提升程序的启动速度。
在一些实施例中,目标程序包括一个或多个数据块,搬移配置信息包括目标程序中各数据块的地址。处理器在检测到程序启动需求的情况下,基于第二存储器中目标程序的各数据块的地址,控制数据搬移器将第二存储器中目标程序的各数据块依次搬移至第一存储器。
具体来说,数据搬移器可以基于各数据块的地址在第二存储器依次读取到各数据块,并将第二存储器中目标程序的各数据块依次搬移至第一存储器。这里,处理器基于目标程序中各数据块的地址生成搬移控制指令,之后将搬移控制指令发送至数据搬移器,数据搬移器从搬移控制指令解析出目标程序的各数据块的地址。
在一些实施例中,基于预设的搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器,包括:基于搬移配置信息检验第二存储器中的目标程序的数据是否完整;在确定第二存储器中的目标程序的数据完整的情况下,基于搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器。
本公开实施例在搬移目标程序之前,对目标程序的数据进行完整性检验,在确保目标程序的数据完整的情况下再进行搬运,避免目标程序在后续无法正常运行。
在一些实施例中,基于预设的搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器,还包括:在确定第二存储器中的目标程序的数据不完整的情况下,基于预设的备份程序重写第二存储器中的目标程序;在第二存储器中的目标程序重写完成的情况下,基于搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器。
本公开实施例可以预先目标程序配置备份程序,基于备份程序能够对数据不完整的目标程序进行重写,从而使目标程序恢复正常,以便目标程序能够正常运行。
在一些实施例中,引导程序包括第一引导子程序和第二引导子程序。处理器在检测到程序启动需求的情况下,可以执行第一引导子程序,从而完成必要的硬件初始化,之后基于预设的搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器。处理器在数据搬移器搬移目标程序期间,运行第二引导子程序。
结合图3所示,本公开实施例提供了一种用于程序运行的方法,该方法可以包括以下步骤:
步骤301,处理器在检测到程序启动需求的情况下,基于搬移配置信息检验第二存储器中的目标程序的数据是否完整。
在一些实施例中,目标程序包括一个或多个数据块。搬移配置信息可以包括目标程序的数据块的总数量和每个数据块的大小。处理器可以基于搬移配置信息记载的总数量和数据块的大小,检验第二存储器中的目标程序的数据是否完整。具体来说,处理器可以确定第二存储器中目标程序的数据块的总数量与配置信息中记载的数据块的总数量是否一致,以及确定第二存储器中目标程序的每个数据块的大小与配置信息中记载的对应的数据块的大小是否一致。如果第二存储器中目标程序的数据块的总数量与配置信息中记载的数据块的总数量一致,并且确定第二存储器中目标程序的每个数据块的大小与配置信息中记载的对应的数据块的大小一致,那么可以确定第二存储器中的目标程序的数据完整,否则确定第二存储器中的目标程序的数据不完整。
在一些实施例中,搬移配置信息可以包括目标程序的数据量。处理器可以基于搬移配置信息记载的数据量,检验第二存储器中的目标程序的数据是否完整。具体来说,处理器可以确定第二存储器中目标程序的数据量与配置信息中记载的数据量是否一致。如果第二存储器中目标程序的数据量与配置信息中记载的数据量一致,那么可以确定第二存储器中的目标程序的数据完整,否则确定第二存储器中的目标程序的数据不完整。
在步骤301之后,可以执行步骤302或步骤303。具体来说,如果确定第二存储器中的目标程序的数据完整,则在步骤301之后执行步骤302;如果确定第二存储器中的目标程序的数据不完整,则在步骤301之后执行步骤303。
步骤302,处理器在确定第二存储器中的目标程序的数据完整的情况下,基于搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器。
在此需要说明的是,在步骤302之后,可以执行步骤305。
步骤303,处理器在确定第二存储器中的目标程序的数据不完整的情况下,基于预设的备份程序重写第二存储器中的目标程序。
这里,备份程序是与数据完整的目标程序相同的程序。可选地,备份程序和目标程序可以存储在不同区域,从避免备份程序和目标程序同时被破坏。例如,目标程序存储在第一存储器,备份程序存储在第三存储器。处理器可以在第三存储器中读取备份程序,基于备份程序重写第二存储器中的目标程序。
在一些实施例中,在确定第二存储器中的备份程序的数据不完整的情况下,可以基于搬移配置信息检验备份程序的数据是否完整;在确定备份程序的数据完整的情况下,基于预设的备份程序重写第二存储器中的目标程序。这里,检验备份程序的数据完整性的过程与检验目标程序的数据完整性的过程相同,此处不再赘述。
在此需要说明的是,在步骤303之后,可以执行步骤304。
步骤304,处理器在第二存储器中的目标程序重写完成的情况下,基于搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器。
在此需要说明的是,在步骤304之后,可以执行步骤405。
步骤305,处理器在数据搬移器搬移目标程序期间,运行引导程序。
步骤306,处理器在引导程序运行完成后,运行第一存储器中的目标程序。
结合图4所示,本公开实施例提供了一种用于程序运行的方法,该方法可以包括以下步骤:
步骤401,处理器在检测到程序启动需求的情况下,基于预设的搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器。
步骤402,处理器在数据搬移器搬移目标程序期间,运行引导程序。
步骤403,处理器在引导程序运行完成并确定第二存储器中的目标程序已全部搬运至第一存储器的情况下,运行第一存储器中的目标程序。
可以理解的是,引导程序的运行过程通常会先于目标程序的搬移过程完成。因此,处理器在引导程序运行完成之后,可以确定第二存储器中的目标程序是否已全部搬运至第一存储器,如果第二存储器中的目标程序已全部搬运至第一存储器,则处理器可以运行引导程序,从而确保目标程序能够正常运行。
在一些实施例中,处理器可以通过以下方式确定第二存储器中的目标程序已全部搬运至第一存储器:周期性检测是否接收到搬移完成消息,在接收到搬移完成消息时,确定第二存储器中的目标程序已全部搬运至第一存储器。这里,搬移完成消息是由数据搬移器在完成目标程序的搬移工作后发送的,也就是说,数据搬移器在完成目标程序的搬移工作后,会向处理器发送搬移完成消息,处理收到搬移完成消息即可确定第二存储器中的目标程序已全部搬运至第一存储器。通过数据搬移器向处理器发送搬移完成消息的方式,使处理器通过判断是否接收到搬移完成消息即壳准确地确定第二存储器中的目标程序是否已全部搬运至第一存储器,有助于节省处理器的计算资源。
在一些实施例中,搬移配置信息包括目标程序中数据块的总数量。处理器可以通过以下方式确定第二存储器中的目标程序已全部搬运至第一存储器:周期性地确定第一存储器中属于目标程序的数据块的数量是否等于总数量,在第一存储器中属于目标程序的数据块的数量等于总数量的情况下,确定第二存储器中的目标程序已全部搬运至第一存储器。
结合图5所示,本公开实施例提供了一种用于程序运行的方法,该方法可以包括以下步骤:
步骤501,处理器在检测到程序启动需求的情况下,基于搬移配置信息检验第二存储器中的目标程序的数据是否完整。
在步骤501之后,可以执行步骤502或步骤503。
步骤502,处理器在确定第二存储器中的目标程序的数据完整的情况下,基于搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器。
在此需要说明的是,在步骤502之后,可以执行步骤505。
步骤503,处理器在确定第二存储器中的目标程序的数据不完整的情况下,基于预设的备份程序重写第二存储器中的目标程序。
在此需要说明的是,在步骤503之后,可以执行步骤504。
步骤504,处理器在第二存储器中的目标程序重写完成的情况下,基于搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器。
在此需要说明的是,在步骤504之后,可以执行步骤505。
步骤505,处理器在数据搬移器搬移目标程序期间,运行引导程序。
步骤506,处理器在引导程序运行完成并确定第二存储器中的目标程序已全部搬运至第一存储器的情况下,运行第一存储器中的目标程序。
在一些实施例中,基于预设的搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器之前,本公开实施例提供的用于程序运行的方法还可以包括:基于预设的搬移配置信息计算程序搬移时长;在确定程序搬移时长大于预设的时长阈值时,反馈配置更改消息。这里,配置更改消息用于提示用户更改搬移配置信息。
本公开实施例允许用户自行配置,用户可以自行决定第二存储器中的哪些数据块需要被搬移到第一存储器中运行,并设置需要被搬移到第一存储器中运行的数据块的搬移配置信息。可以理解的是,这些需要被搬移到第一存储器中运行的数据块的集合,即可被认定为目标程序。
在用户设置搬移配置信息之后,处理器可以基于搬移配置信息计算程序搬移时长。可以理解的是,程序搬移时长是指数据搬移器将第二存储器中的目标程序搬移至第一存储器所需要的时长。如果处理器确定程序搬移时长大于预设的时长阈值,则反馈配置更改消息。
在此需要说明的是,处理器确定程序搬移时长大于预设的时长阈值,说明目标程序所包含的数据块的数量过多或目标程序的数据量较大,配置更改消息可以提示用户减少需要搬移的数据块的数量,或者替换数据量较大的数据块,从而完整搬移配置信息的调整。
这里,时长阈值可以根据实际的设计需要而定。可选地,可以确定处理器运行引导程序所需要的第一时长,基于第一时长确定时长阈值。具体来说,时长阈值可以小于第一时长,也可以等于或大于第一时长。
可以理解的是,在时长阈值小于第一时长的情况下,引导程序的运行过程通常会后于目标程序的搬移过程完成。在时长阈值小于或等于第一时长的情况下,处理器在运行完成引导程序之后,几乎可以无需等待即可开始执行目标程序。
在时长阈值大于第一时长的情况下,引导程序的运行过程通常会先于目标程序的搬移过程完成。在这种情况下,时长阈值与第一时长的差值应当小于预设的差值阈值,从而避免处理器在运行完成引导程序之后,需要等待较长的时间才能开始执行目标程序。
结合图6所示,本公开实施例提供了一种用于程序运行的装置600,应用于处理器,处理器用于分别与数据搬移器和第一存储器电连接,数据搬移器分别与第一存储器和第二存储器电连接。用于程序运行的装置600包括数据搬移模块601、引导启动模块602和程序执行模块603。
数据搬移模块601被配置为在检测到程序启动需求的情况下,基于预设的搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器。
引导启动模块602被配置为在数据搬移器搬移目标程序期间,运行引导程序。
程序执行模块603被配置为在引导程序运行完成后,运行第一存储器中的目标程序。
在本公开实施例提供的用于程序运行的装置中,处理器可以基于搬移配置信息,控制数据搬移器将第二存储器中的目标程序搬移至第一存储器。而在数据搬移器搬移目标程序的期间,处理器可以继续执行引导程序以完成自身的启动工作。可见,处理器的启动工作和程序的搬移工作能够并行执行,这可以减少程序运行前的准备时间,有助于提升程序的启动速度。
在一些实施例中,搬移配置信息包括目标程序中各数据块的地址。
在一些实施例中,数据搬移模块601被配置为:
基于搬移配置信息检验第二存储器中的目标程序的数据是否完整;
在确定第二存储器中的目标程序的数据完整的情况下,基于搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器。
在一些实施例中,数据搬移模块601被配置为:
在确定第二存储器中的目标程序的数据不完整的情况下,基于预设的备份程序重写第二存储器中的目标程序;
在第二存储器中的目标程序重写完成的情况下,基于搬移配置信息控制数据搬移器将第二存储器中的目标程序搬移至第一存储器。
在一些实施例中,数据搬移模块601被配置为:
基于预设的搬移配置信息生成搬移控制指令;
将控制指令发送至数据搬移器,以指示数据搬移器将第二存储器中的目标程序搬移至第一存储器。
在一些实施例中,程序执行模块603被配置为:
在引导程序运行完成并确定第二存储器中的目标程序已全部搬运至第一存储器的情况下,运行第一存储器中的目标程序。
在一些实施例中,程序执行模块603被配置为:
周期性检测是否接收到搬移完成消息,其中,搬移完成消息是由数据搬移器在完成目标程序的搬移工作后发送的;
在接收到搬移完成消息时,确定第二存储器中的目标程序已全部搬运至第一存储器。
在一些实施例中,搬移配置信息包括目标程序中数据块的总数量;程序执行模块603被配置为:
周期性地确定第一存储器中属于目标程序的数据块的数量是否等于总数量;
在第一存储器中属于目标程序的数据块的数量等于总数量的情况下,确定第二存储器中的目标程序已全部搬运至第一存储器。
结合图7所示,本公开实施例提供了另一种用于程序运行的装置700,应用于处理器,处理器用于分别与数据搬移器和第一存储器电连接,其特征在于,数据搬移器分别与第一存储器和第二存储器电连接。用于程序运行的装置700包括数据搬移模块701、引导启动模块702、程序执行模块703和搬移配置模块704。其中,数据搬移模块701、引导启动模块702、程序执行模块703分别与上述的数据搬移模块601、引导启动模块602、程序执行模块603的功能相同。
搬移配置模块704被配置为:基于预设的搬移配置信息计算程序搬移时长;在确定程序搬移时长大于预设的时长阈值时,反馈配置更改消息,其中,配置更改消息用于提示用户更改搬移配置信息。
本公开实施例提供了一种处理器,处理器用于分别与数据搬移器和第一存储器电连接,数据搬移器用于分别与第一存储器和第二存储器电连接。处理器被配置为执行本公开实施例提供的用于程序运行的方法。
本公开实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述用于程序运行的方法。上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本公开中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本公开中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本公开中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

Claims (10)

1.一种用于程序运行的方法,应用于处理器,所述处理器分别与数据搬移器和第一存储器电连接,其特征在于,所述数据搬移器分别与所述第一存储器和第二存储器电连接,所述方法包括:
在检测到程序启动需求的情况下,基于预设的搬移配置信息控制所述数据搬移器将所述第二存储器中的目标程序搬移至所述第一存储器;
在所述数据搬移器搬移目标程序期间,运行引导程序;
在所述引导程序运行完成后,运行所述第一存储器中的目标程序。
2.根据权利要求1所述的方法,其特征在于,所述搬移配置信息包括目标程序中各数据块的地址。
3.根据权利要求1所述的方法,其特征在于,所述基于预设的搬移配置信息控制所述数据搬移器将所述第二存储器中的目标程序搬移至所述第一存储器,包括:
基于所述搬移配置信息检验所述第二存储器中的目标程序的数据是否完整;
在确定所述第二存储器中的目标程序的数据完整的情况下,基于所述搬移配置信息控制所述数据搬移器将所述第二存储器中的目标程序搬移至所述第一存储器。
4.根据权利要求3所述的方法,其特征在于,所述基于预设的搬移配置信息控制所述数据搬移器将所述第二存储器中的目标程序搬移至所述第一存储器,还包括:
在确定所述第二存储器中的目标程序的数据不完整的情况下,基于预设的备份程序重写所述第二存储器中的目标程序;
在所述第二存储器中的目标程序重写完成的情况下,基于所述搬移配置信息控制所述数据搬移器将所述第二存储器中的目标程序搬移至所述第一存储器。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述运行所述第一存储器中的目标程序,包括:
在所述引导程序运行完成并确定所述第二存储器中的目标程序已全部搬运至所述第一存储器的情况下,运行所述第一存储器中的目标程序。
6.根据权利要求5所述的方法,其特征在于,通过以下方式确定所述第二存储器中的目标程序已全部搬运至所述第一存储器:
周期性检测是否接收到搬移完成消息,其中,所述搬移完成消息是由所述数据搬移器在完成目标程序的搬移工作后发送的;
在接收到所述搬移完成消息时,确定所述第二存储器中的目标程序已全部搬运至所述第一存储器。
7.一种用于程序运行的装置,应用于处理器,所述处理器用于分别与数据搬移器和第一存储器电连接,其特征在于,所述数据搬移器分别与所述第一存储器和第二存储器电连接,所述装置包括:
数据搬移模块,被配置为在检测到程序启动需求的情况下,基于预设的搬移配置信息控制所述数据搬移器将所述第二存储器中的目标程序搬移至所述第一存储器;
引导启动模块,被配置为在所述数据搬移器搬移目标程序期间,运行引导程序;
程序执行模块,被配置为在所述引导程序运行完成后,运行所述第一存储器中的目标程序。
8.一种处理器,所述处理器用于分别与数据搬移器和第一存储器电连接,其特征在于,所述数据搬移器用于分别与所述第一存储器和第二存储器电连接;
所述处理器被配置为执行如权利要求1至6中任一项所述的用于程序运行的方法。
9.一种电子设备,其特征在于,包括处理器、数据搬移器、第一存储器和第二存储器;
所述处理器分别与所述数据搬移器和第一存储器电连接,所述数据搬移器分别与所述第一存储器和所述第二存储器电连接;
所述处理器被配置为执行如权利要求1至6中任一项所述的用于程序运行的方法。
10.一种存储介质,存储有程序指令,其特征在于,所述程序指令在运行时,执行如权利要求1至6中任一项所述的用于程序运行的方法。
CN202311023092.0A 2023-08-15 2023-08-15 用于程序运行的方法及装置、处理器、电子设备、介质 Active CN116737279B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311023092.0A CN116737279B (zh) 2023-08-15 2023-08-15 用于程序运行的方法及装置、处理器、电子设备、介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311023092.0A CN116737279B (zh) 2023-08-15 2023-08-15 用于程序运行的方法及装置、处理器、电子设备、介质

Publications (2)

Publication Number Publication Date
CN116737279A true CN116737279A (zh) 2023-09-12
CN116737279B CN116737279B (zh) 2024-01-02

Family

ID=87911866

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311023092.0A Active CN116737279B (zh) 2023-08-15 2023-08-15 用于程序运行的方法及装置、处理器、电子设备、介质

Country Status (1)

Country Link
CN (1) CN116737279B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117406845A (zh) * 2023-12-11 2024-01-16 深圳曦华科技有限公司 复位方法、装置、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7721138B1 (en) * 2004-12-28 2010-05-18 Acronis Inc. System and method for on-the-fly migration of server from backup
CN111176739A (zh) * 2019-12-29 2020-05-19 苏州浪潮智能科技有限公司 一种系统启动方法、装置、设备及存储介质
US20210089296A1 (en) * 2020-10-02 2021-03-25 Intel Corporation Firmware boot task distribution to enable low latency boot performance
CN113434087A (zh) * 2021-06-28 2021-09-24 山东航天电子技术研究所 基于共享空间的多核启动方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7721138B1 (en) * 2004-12-28 2010-05-18 Acronis Inc. System and method for on-the-fly migration of server from backup
CN111176739A (zh) * 2019-12-29 2020-05-19 苏州浪潮智能科技有限公司 一种系统启动方法、装置、设备及存储介质
US20210089296A1 (en) * 2020-10-02 2021-03-25 Intel Corporation Firmware boot task distribution to enable low latency boot performance
CN113434087A (zh) * 2021-06-28 2021-09-24 山东航天电子技术研究所 基于共享空间的多核启动方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117406845A (zh) * 2023-12-11 2024-01-16 深圳曦华科技有限公司 复位方法、装置、计算机设备和存储介质
CN117406845B (zh) * 2023-12-11 2024-05-03 深圳曦华科技有限公司 复位方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN116737279B (zh) 2024-01-02

Similar Documents

Publication Publication Date Title
CN116737279B (zh) 用于程序运行的方法及装置、处理器、电子设备、介质
CN102722394B (zh) 一种嵌入式设备的启动升级方法
KR100316981B1 (ko) 플래시 메모리를 구비한 마이크로컴퓨터 및 플래시 메모리에 프로그램을 저장하는 방법
CN102521289B (zh) 一种文件同步方法、装置及系统
CN100504782C (zh) 避免基本输出入系统程序更新失败的计算机系统
CN105608370A (zh) 一种ecu程序刷写和检测方法
CN103858107A (zh) 安全恢复装置和方法
CN104025047A (zh) 信息处理装置、信息处理方法以及计算机程序
CN109582332B (zh) 互联网摄像机的系统升级方法及装置
WO2016206514A1 (zh) 启动处理方法及装置
JP6543122B2 (ja) 情報処理装置と、前記情報処理装置による不揮発記憶装置の初期化方法、及びプログラム
US7093115B2 (en) Method and apparatus for detecting an interruption in memory initialization
US7234053B1 (en) Methods for expansive netboot
CN111104173A (zh) 一种引导程序的保护设计方法
KR20230091660A (ko) 소프트웨어의 무결성 검증 방법 및 그 장치
CN110941516B (zh) 操作系统还原方法、装置、设备及存储介质
KR20080066381A (ko) 소프트웨어의 업그레이드 방법
WO2017121077A1 (zh) 一种双引导文件的切换方法及装置
CN102760063B (zh) 一种文件加载方法及装置
US20140025870A1 (en) Computer reprogramming method, data storage medium and motor vehicle computer
CN110990052B (zh) 一种配置保存方法及装置
CN106611124B (zh) 计算机装置及其开机方法
EP3783490B1 (en) Operating method of memory controller and storage device
CN108052337A (zh) 一种eMMC量产工具的固件升级方法及装置
CN113791874A (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