CN110286963A - 控制代码加载方法、装置、启动控制器以及电子设备 - Google Patents

控制代码加载方法、装置、启动控制器以及电子设备 Download PDF

Info

Publication number
CN110286963A
CN110286963A CN201910580480.6A CN201910580480A CN110286963A CN 110286963 A CN110286963 A CN 110286963A CN 201910580480 A CN201910580480 A CN 201910580480A CN 110286963 A CN110286963 A CN 110286963A
Authority
CN
China
Prior art keywords
loaded
data
core
code
target core
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
CN201910580480.6A
Other languages
English (en)
Other versions
CN110286963B (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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201910580480.6A priority Critical patent/CN110286963B/zh
Publication of CN110286963A publication Critical patent/CN110286963A/zh
Application granted granted Critical
Publication of CN110286963B publication Critical patent/CN110286963B/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/44505Configuring for program initiating, e.g. using registry, configuration files
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本申请实施例公开了一种控制代码加载方法、装置、启动控制器以及电子设备。所述方法包括:响应于代码加载指令,所述启动控制器读取待加载数据;确定所述待加载数据所对应的目标核;将所述待加载数据中的待加载代码加载到所述目标核。从而通过本方法实现了有多核处理的以外的设备来对每个核的控制代码进行加载,以便实现可以并行的对多个核的控制代码进行加载,进而提升控制代码的加载效率。

Description

控制代码加载方法、装置、启动控制器以及电子设备
技术领域
本申请涉及嵌入式技术领域,更具体地,涉及一种控制代码加载方法、装置、启动控制器以及电子设备。
背景技术
对于多核片上系统,在系统上电的时候需要对每个核加载代码。在相关的代码加载方式中是通过串行的方式进行代码的加载,即先加载某个核的代码,然后由该首先加载代码的核去串行加载其他核的代码,等所有的核都加载完成之后整个系统才会开始工作,进而会造成整体代码加载效率较低。
发明内容
鉴于上述问题,本申请提出了一种控制代码加载方法、装置、启动控制器以及电子设备,以改善上述问题。
第一方面,本申请提供了一种控制代码加载方法,应用于电子设备的启动控制器,所述电子设备还包括多核处理器,所述方法包括:响应于代码加载指令,所述启动控制器读取待加载数据;确定所述待加载数据所对应的目标核;将所述待加载数据中的待加载代码加载到所述目标核。
第二方面,本申请提供了一种控制代码加载装置,运行于电子设备的启动控制器,所述电子设备还包括多核处理器,所述装置包括:数据获取单元,用于响应于代码加载指令,所述启动控制器读取待加载数据;目标确定单元,用于确定所述待加载数据所对应的目标核;代码加载单元,用于将所述待加载数据中的待加载代码加载到所述目标核。
第三方面,本申请提供了一种启动控制器,用于配置于包括多核处理器的电子设备;所述驱动控制器,用于响应于代码加载指令,读取待加载数据;
确定所述待加载数据所对应的目标核;将所述待加载数据中的待加载代码加载到所述目标核。
第四方面,本申请提供了一种电子设备,包括多核处理器、启动控制器以及存储器,所述存储器用于存储待加载的数据;一个或多个程序被存储在所述启动控制器中并被配置为由所述启动控制器执行以实现上述的方法。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被启动控制器运行时执行上述的方法。
本申请提供的一种控制代码加载方法、装置、启动控制器以及电子设备,该电子设备包括启动控制器以及多核处理器,在代码的加载过程中,当响应于代码加载指令时,所述启动控制器读取待加载数据,确定所述待加载数据所对应的目标核,将所述待加载数据中的待加载代码加载到所述目标核。从而通过本方法实现了有多核处理的以外的设备来对每个核的控制代码进行加载,以便实现可以并行的对多个核的控制代码进行加载,进而提升控制代码的加载效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例提出的一种控制代码加载方法的应用场景示意图;
图2示出了本申请一实施例提出的一种控制代码加载方法的流程图;
图3示出了本申请另一实施例提出的一种控制代码加载方法的流程图;
图4示出了本申请另一实施例提出的一种控制代码加载方法的中待加载数据的数据结构示意图;
图5示出了本申请另一实施例提出的一种控制代码加载方法的中多段待加载数据的数据结构示意图;
图6示出了本申请再一实施例提出的一种控制代码加载方法的流程图;
图7示出了本申请实施例提出的一种控制代码加载装置的结构框图;
图8示出了本申请另一实施例提出的一种控制代码加载装置的结构框图;
图9示出了本申请的用于执行根据本申请实施例的控制代码加载方法的电子设备的结构框图;
图10是本申请实施例的用于保存或者携带实现根据本申请实施例的控制代码加载方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
片上系统(SoC:System-on-a-chip)指的是在单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术。所谓完整的系统一般包括中央处理器(CPU)、存储器、以及外围电路等。片上系统技术通常应用于小型的,日益复杂的客户电子设备。例如,声音检测设备的片上系统是在单个芯片上为所有用户提供包括音频接收端、模数转换器(ADC)、微处理器、必要的存储器以及输入输出逻辑控制等设备。此外系统芯片还应用于单芯片无线产品,诸如蓝牙设备,支持单芯片WLAN和蜂窝电话解决方案。
而随着技术的发展,更多的片上系统开始采用多核处理器(多核CPU)。多核处理器是指在一枚处理器中集成两个或多个完整的计算引擎(核),此时处理器能支持系统总线上的多个处理器,由总线控制器提供所有总线控制信号和命令信号。而发明人在研究中发现,在相关的片上系统的多核处理器中,在进行处理器的控制代码加载的过程中,是先完成其中的某一个核的控制代码的加载,然后再由先加载控制代码的核来控制其他的核进行控制代码的加载,那么在这个过程中,由于必须依靠在先加载控制代码的核来加载后续其他核的控制代码,因而在这种串行的方式中,如果在先被配置加载控制代码的核无法完成控制代码的加载或者加载控制代码后无法正常运行,都会影响后续的核的控制代码的加载。
因此,发明人提出了本申请中可以改善上述问题的控制代码加载方法、装置、启动控制器以及电子设备。通过本申请实施例提供的方法实现了有多核处理的以外的设备来对每个核的控制代码进行加载,以便实现可以并行的对多个核的控制代码进行加载,进而提升控制代码的加载效率。
下面先对本申请实施例所运行的硬件环境进行介绍。
如图1所示,在图1所示的硬件环境中包括有多核处理器的四个核,分别为核0、核1、核2以及核3。还包括启动控制器以及存储器。其中,启动控制器为boot控制器。需要说明的是,作为一种方式,启动控制器为一个具备数据存储以及处理能力的硬件单元,可以通过烧录的方式向启动控制器中写入程序代码,以便其可以实现从外部存储器读取数据,并向处理器的核中写入控制代码的能力。可以理解的是,这里向处理器的核中写入控制代码,可以是向核的数据存储器中写入数据,也可以是向指令存储器中写入数据。其中,启动控制器与存储器之间的通信可以采用私有协议,或者诸如AXI/AHB等总线进行通信。启动控制器与核之间的通信方式也可以基于私有协议进行通信。其中,存储器中存储有核所需要的控制代码,那么在代码的加载过程中,启动控制器可以从存储器中读取待进行加载的数据,然后从待加载的数据中解析出待进行加载的代码,进而将该代码加载待目标核中。
下面将结合附图具体描述本申请的各实施例。
请参阅图2,本申请实施例提供的一种控制代码加载方法,应用于电子设备的启动控制器,所述电子设备还包括多核处理器,所述方法包括:
步骤S110:响应于代码加载指令,所述启动控制器读取待加载数据。
其中,代码加载指令可以为因为检测到指定事件触发后生成的代码加载指令。也可以为用户手动触发的代码加载指令。
其中,在因为检测到指定事件触发后生成的代码加载指令的这种方式中,指定事件可以为检测到电子设备上电事件,也可以为检测到电子设备进行重新启动这个事件,还可以为检测到电子设备进行数据恢复初始化这个事件。再者,在一种方式中,电子设备包括片上系统以及外部元器件,并且片上系统与外部元器件是采用不同的电源供电,那么在这种方式下,当片上系统进行断电或者断电重启的情况下,并不会影响外部元器件的运行,对应的,指定事件还可以包括检测到片上系统上电事件,也可以为检测到片上系统进行重新启动这个事件,还可以为检测到片上系统进行数据恢复初始化这个事件。
需要说明的是,在本实施例中,代码加载指令为启动控制器内的一个单元生成并传输给另一个单元的。可以理解的是,其中生成代码加载指令的单元是基于前述的检测到到指定事件触发后生成代码加载指令,然后将代码加载指令传输给另一个负责后续控制代码加载的单元。其中,生成代码加载指令的单元和后续负责控制代码加载的单元可以为启动控制器内烧录的程度所包括的软件单元,也可以为硬件单元。
需要说明的是,待加载数据可以为所有的需要加载的数据,也可以为所有的需要加载的数据中的一段。可以理解的是,存储器中存储的数据可以配置为数据格式相同的多段数据,那么启动控制器可以在控制代码(每段数据中携带的一段控制代码)的加载过程中一段一段的进行控制代码的加载操作。
步骤S120:确定所述待加载数据所对应的目标核。
在本实施例中,对于待进行加载的数据可以通过多种方式来标识自身需要被加载到哪个核中。例如,作为一种方式,可以通过待进行加载的数据的长短来标识需要被加载到哪个核中,还可以通过待进行加载的数据的的编码方式来标识需要被加载到哪个核中,还可以通过在待进行加载的数据中添加目标核标识来标识需要被加载到哪个核中。
可选的,如前述内容所示,待加载到处理器的多个核中的数据是可以分为多段的,那么在这种方式下,可以配置分别加载到不同核的数据具有不同的长度,那么启动控制器在获取到待加载的数据后通过识别数据的长度就可以了解到当前获取的这段数据是需要加载到哪个核。
例如,在电子设备的多核处理器具有核0、核1、核2以及核3的情况下,可以配置为加载到核0的数据的长度不超过a(bit),可以配置为加载到核1的数据的长度不超过b(bit),可以配置为加载到核2的数据的长度不超过c(bit),可以配置为加载到核3的数据的长度不超过d(bit)。那么启动控制器在获取到一段待加载的数据后,识别到该段数据的长度为a(bit),那么就可以确定这段数据的目标核为核0;若获取到一段待加载的数据后,识别到该段数据的长度为b(bit),那么就可以确定这段数据的目标核为核1;若获取到一段待加载的数据后,识别到该段数据的长度为c(bit),那么就可以确定这段数据的目标核为核2;若获取到一段待加载的数据后,识别到该段数据的长度为d(bit),那么就可以确定这段数据的目标核为核3。
需要说明的是,在进行数据分段配置的过程中,可能会出现剩余的待配置的到数据中的控制代码长度不足以达到该代码所需要加载的目标核所对应的数据长度的情况。其中,可以理解的是,启动控制器在进行控制代码的加载过程中,并不是直接获取到的控制代码,而是先获取待携带有控制代码的待加载数据,然后从该待加载数据中解析出待加载的控制代码,那么对于待加载数据中的控制代码即为配置到数据中的控制代码。在一种方式中,所有的需要加载到核a中的控制代码的长度为20bit,而配置需要加载到核a所对应的每段数据的长度为8,那么其中每段数据中携带有6个数据位的控制代码,因而会出现有一段数据中的控制代码长度只有2(20-6*3),那么就可能会造成该段数据整体长度无法达到8,进而会造成启动控制器误将该段数据识别到加载到其他核的数据,而非前述的核a的数据。
那么为了避免该问题,对于控制代码长度不足的那段数据中,可以通过添加冗余数据的方式来使得该段数据的长度达到目标长度,该目标长度可以使得该段数据的目标核不会被误识别。例如,对于前述的携带的控制代码只有2的那段数据中,可以通过添加冗余数据使得该段数据的长度达到8,进而依然会被识别为目标核为核a。可以理解的是,为了避免将冗余数据加载到核中,可以在具体的控制代码加载过程中将冗余数据删除。
作为另外的方式,对于配置的加载到不同核中的数据,可以通过不同的编码方式先进行编码。例如,通过不同的编码因子进行编码。然后建立不同的编码因子与对应的核之间的映射关系。
在这种方式下,若通过某一个编码因子解码成功后,就可以将该编码因子所映射的核作为目标核。例如,依然是多核处理器具有核0、核1、核2以及核3的情况下,可以配置为加载到核0的数据的编码因子为a,可以配置为加载到核1的数据的编码因子为b,可以配置为加载到核2的数据的编码因子为c,可以配置为加载到核3的数据的编码因子为d。那么可以理解的是在存储器中存储的待加载到核0的数据是将a作为编码因子进行编码后的数据。同理,在存储器中存储的待加载到核1的数据是将b作为编码因子进行编码后的数据,在存储器中存储的待加载到核2的数据是将c作为编码因子进行编码后的数据,在存储器中存储的待加载到核3的数据是将d作为编码因子进行编码后的数据。
在这种方式下,启动控制器在获取到待加载的数据后,会依次基于a、b、c以及d这几个编码因子进行解码,若基于其中一个编码因子解码成功,那么就将解码成功的那个解码因子所对应的核作为目标核。需要说明的是,对于其中一些控制代码是需要同时加载到多个核中的,那么对于这需要同时加载到多个核中的控制代码,可以采用其他的编码因子进行编码,例如,可以采用编码因子“tongbu_x”进行编码,其中“x”为需要加载的核的标识。例如,对于需要同时加载到核0和核1的控制代码,那么对应的编码因子可以为“tongbu_01”,而对于需要同时加载待核2和核3的控制代码,那么对应的编码因子可以为“tongbu_23”。
步骤S130:将所述待加载数据中的待加载代码加载到所述目标核。
本申请提供的一种控制代码加载方法,该电子设备包括启动控制器以及多核处理器,在代码的加载过程中,当响应于代码加载指令时,所述启动控制器读取待加载数据,确定所述待加载数据所对应的目标核,将所述待加载数据中的待加载代码加载到所述目标核。从而通过本方法实现了有多核处理的以外的设备来对每个核的控制代码进行加载,以便实现可以并行的对多个核的控制代码进行加载,进而提升控制代码的加载效率。
请参阅图3,本申请实施例提供的一种控制代码加载方法,应用于电子设备的启动控制器,所述电子设备还包括多核处理器,所述方法包括:
步骤S210:响应于代码加载指令,所述启动控制器读取待加载数据。
作为一种方式,所述待加载数据有多个;且每个待加载数据包括依次排列的多个数据位,其中,所述多个数据位中的第一数据位作为所述代码类型标识,所述多个数据位中的第二数据位的值表征当前待加载数据的数据量,所述多个数据位中的第三数据位作为所述目标核标识,所述多个数据位中的第四数据位用于存储待加载代码。例如,如图4所示,图4示出了一段待进行加载数据的数据结构。其中的标识符为第一个数据位,为代码类型标识,用于标识这段数据的数据类型。名称为大小的数据位为第二数据位,该数据数据位标识后续的内容那个数据位有多少bit数据。而其中的名称为掩码的数据位即为第三数据位。名称为内容的数据位为记录控制代码的数据位。
步骤S220:所述启动控制器获取所述待加载数据中的目标核标识。
那么基于本实施例中提供的数据结构,每段数据中的掩码这个数据位即为目标核标识,那么启动控制器通过识别其中的掩码这个数据位的值就可以识别到当前这段待加载数据是需要加载到哪个核中,进而就可以获取所述待加载数据中的目标核标识。
步骤S230:将所述目标核标识所标识的核作为所述待加载数据所对应的目标核。
需要说明的是,CPU(处理器)中的存储器包括CPU片内缓存和寄存器组,是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。对于多核处理器中的每个核都有对应的DTCM(Data Tightly CoupledMemory,数据存储器)以及ITCM(Instruction Tightly Coupled Memory,指令存储器)。
数据存储器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。
其中,32位CPU有4个32位的通用寄存器EAX、EBX、ECX和EDX。对低16位数据的存取,不会影响高16位的数据。这些低16位寄存器分别命名为:AX、BX、CX和DX,它和先前的CPU中的寄存器相一致。4个16位寄存器又可分割成8个独立的8位寄存器(AX:AH-AL、BX:BH-BL、CX:CH-CL、DX:DH-DL),每个寄存器都有自己的名称,可独立存取。寄存器AX和AL通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间。累加器可用于乘、除、输入/输出等操作,它们的使用频率很高;寄存器BX称为基地址寄存器(Base Register)。它可作为存储器指针来使用;寄存器CX称为计数寄存器(Count Register)。在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多位时,要用CL来指明移位的位数;寄存器DX称为数据寄存器(Data Register)。在进行乘、除运算时,它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。
32位CPU把指令指针扩展到32位,并记作EIP,EIP的低16位与先前CPU中的IP作用相同。指令指针EIP、IP(Instruction Pointer)是存放下次将要执行的指令在代码段的偏移量。用来提供指令在指令存储器中的地址。在具有预取指令功能的系统中,下次要执行的指令通常已被预取到指令队列中,除非发生转移情况。所以,在理解它们的功能时,不考虑存在指令队列的情况。
那么对应的,需要加载到某个核的控制代码有的是作为数据类型对的代码加载到数据存储器中,而有的控制代码是作为指令类型的控制代码加载到指令存储器。
步骤S240:识别所述待加载数据中的代码类型标识所表征的数据类型。
步骤S250:若识别所述代码类型标识表征为数据类型,将所述待加载代码加载到所述目标核的数据存储器。
步骤S260:若识别所述代码类型标识表征为指令类型,将所述待加载代码加载到所述目标核的指令存储器。
例如,如图5所示的三段数据,当启动控制器获取到标识符为0x1的这段数据后,会识别到这段数据所携带的控制代码为需要加载到指令存储器的控制的代码。然后进一步的识别到这段数据的掩码为0xf,进而确定目标核为所有的核,那么启动控制器就会将该段数据中的控制代码同时加载到所有核的指令存储器中。进一步的,启动控制器会获取到标识符为0x2的数据,然后进一步的会解析到其掩码也为0xf,因此会识别到这段数据所携带的控制代码为需要加载到所有核的数据存储器的控制代码。然后,会识别到表征加载结束的标识符0x03。
需要说明的是,如前述内容所示,在本申请实施例中,会有多种方式来标识每段数据需要加载到哪个核。如前述的可以通过待进行加载的数据的长短来标识需要被加载到哪个核中,还可以通过待进行加载的数据的的编码方式来标识需要被加载到哪个核中,还可以通过在待进行加载的数据中添加目标核标识来标识需要被加载到哪个核中。那么在不同的时候,电子设备中存储的待加载的数据可能会基于不同的方式来标识自身需要加载到哪个核中。
那么作为一种自动识别的方式,电子设备可以依次基于前述的方式来进行检测。若可以以其中的某一种方式成功获取到待进行加载的数据,就判定待进行加载的数据是以何种方式标识自身需要加载到哪个核中。
其中,基于预设的优先级方式,电子设备可以首先基于通过在待进行加载的数据中添加目标核标识来标识需要被加载到哪个核中这种方式来进行检测,其检测原理是直接读取数据的首个数据位是否为0x开头的字符,若能够成功读取到0x开头的字符,那么表示所检测的数据是通过在待进行加载的数据中添加目标核标识来标识需要被加载到哪个核中,若未能成功的获取到0x开头的字符,那么就可以基于前述的编码因子来进行解码,若能够成功的解码出数据,那么就判定是通过待进行加载的数据的的编码方式来标识需要被加载到哪个核中,若所有的编码因子均无法成功解码出数据,那么就判定是通过待进行加载的数据的长短来标识需要被加载到哪个核中。
本申请提供的一种控制代码加载方法,通过本方法实现了有多核处理的以外的设备来对每个核的控制代码进行加载,以便实现可以并行的对多个核的控制代码进行加载,进而提升控制代码的加载效率。并且对于控制代码还可以进一步的区分数据类型,进而可以实现同步加载数据类型的控制代码以及指令类型的控制代码。再者,因为对于同时加载到多个核的控制代码是通过控制代码所在的待加载数据中的目标核标识符来标识的,所以对于控制代码只需要存储一份即可,问不用单独针对每个核都存储一份,进而实现了存储空间的节约。
请参阅图6,本申请实施例提供的一种控制代码加载方法,应用于电子设备的启动控制器,所述电子设备还包括多核处理器,所述方法包括:
步骤S310:响应于代码加载指令,所述启动控制器读取待加载数据。
步骤S320:确定所述待加载数据所对应的目标核。
步骤S330:将所述待加载数据中的待加载代码加载到所述目标核。
步骤S340:若识别所述待加载数据为最后一个待加载数据,将所述目标核从复位状态切换为解复位状态;其中,所述目标核为在所述电子设备上电时处于所述复位状态。可以理解的是,在片上系统上电后处理器的多个核就会处于复位状态,而每个核所对应的指令存储器以及数据存储器则处于解复位状态。因为要加载控制代码到DTCM/ITCM里面,所以这两者是不能出于复位状态的,否则控制代码是加载不进去的。而对于核的话一旦解复位完了就会开始运行代码,所以在控制代码没有完全加载完全之前是不能让核处于解复位状态的。
需要说明的是,对于不同的标识自身对应的目标核的方式不同,那么对应的,如何标识最后一个待加载数据的方式也不同。
例如,对于以通过待进行加载的数据的长短来标识需要被加载到哪个核中的这种方式中,可以将添加有前述所示的冗余数据的待加载数据作为最后一个待加载数据。其中,需要说明的是,若待加载的控制代码可以平均的配置到多个数据中,那么可以在最后添加一个只有冗余数据且不包括待加载控制代码的待加载数据,以便可以对最后一个待加载数据进行标识。例如,待加载控制代码长度为24bit,那么这24bit的控制代码平均的配置在4个待加载数据中,即每段待加载数据中配置有6bit待加载控制代码。那么在这种方式下,可以在最后增加一个只携带冗余数据的待加载数据,以便可以作为最后一个待加载数据的标识。
再例如,在通过待进行加载的数据的的编码方式来标识需要被加载到哪个核中的这种方式中。除了可以通过不同的编码因子对应不同的核的方式来使得启动控制器可以根据编码因子确定目标核以外,还可以配置一个专用的编码因子来标识最后一段待加载数据。进而,通过这种方式使得当启动控制器通过该专用的编码因子解码成功后,可以同时了解到该段数据为最后一个待加载数据。
例如,依然基于前述编码因子的实例,若电子设备(或者电子设备中的片上系统)包括的多核处理器具有核0、核1、核2以及核3的情况下,可以配置为加载到核0的数据的编码因子为a,可以配置为加载到核1的数据的编码因子为b,可以配置为加载到核2的数据的编码因子为c,可以配置为加载到核3的数据的编码因子为d。那么在这种方式下,可以配置其他的编码因子,例如,不同于编码因子a、编码因子b、编码因子c以及编码因子d的专用的编码因子e,进而在这种方式下,启动控制器在通过专用的编码因子e解码成功后,就可以识别到该数据为最后一个数据。可以理解的是,专用的的编码因子e并未对应有多核处理的某个核,那么基于专用的编码因子所编码的数据可以仅包括冗余数据,进而当启动控制器在基于专用的的编码因子e解码得到对应的数据后,可以当做冗余数据直接丢弃。
再例如,通过在待进行加载的数据中添加目标核标识来标识需要被加载到哪个核的方式中。如前述内容所示,作为一种数据结构,每一段待加载数据均包括多个数据位,其中,所述多个数据位中的第一数据位作为所述代码类型标识,所述多个数据位中的第二数据位的值表征当前待加载数据的数据量,所述多个数据位中的第三数据位作为所述目标核标识,所述多个数据位中的第四数据位用于存储待加载代码。在这种方式下,第一数据位除了可以作为所述代码类型标识外,还可以用于作为加载结束的标识符。
作为一种方式,延迟指定时钟周期后,将所述目标核从复位状态切换为解复位状态。其中,时钟周期也称为振荡周期,定义为时钟频率的倒数。时钟周期是计算机(片上系统)中最基本的、最小的时间单位。在一个时钟周期内,处理器可以仅完成一个最基本的动作。
其中,可以理解的是,对于不同的控制代码,处理器所完成实际的加载需要消耗的时间可能会有不同。那么在这种情况下,可以针对不同的待加载数据配置延迟不同的指定时钟周期。作为一种方式,以通过在待进行加载的数据中添加目标核标识来标识需要被加载到哪个核的方式为例,在待进行加载的数据包括前述所示的多个数据位的情况下,可以将最后一段待加载数据的最后一个数据位配置为用于标识前述的指定时钟周期,进而使得启动控制器了解需要在什么时刻将所述目标核从复位状态切换为解复位状态。例如,请再参阅图5,对于0x03这个标识符,表征这段数据位最后一段待加载数据(实际最后一段待加载数据中并不包括实际需要加载到核中的控制代码),而这个最后一段待加载数据的最后一个数据位的值为0,那么也就表征不需要延迟。若这个值为1,那么表征需要延迟1个时钟周期。
本申请提供的一种控制代码加载方法,通过本方法实现了有多核处理的以外的设备来对每个核的控制代码进行加载,以便实现可以并行的对多个核的控制代码进行加载,进而提升控制代码的加载效率。并且,在加载完成控制代码后,会延迟指定时钟周期后再将所述目标核从复位状态切换为解复位状态,以避免代码还未完成实际的加载就进行状态的切换造成代码运行错误。
请参阅图7,本申请实施例提供的一种控制代码加载装置400,运行于电子设备的启动控制器,所述电子设备还包括多核处理器,所述装置400包括:
数据获取单元410,用于响应于代码加载指令,所述启动控制器读取待加载数据。
作为一种方式,所述待加载数据有多个;且每个待加载数据包括依次排列的多个数据位,其中,所述多个数据位中的第一数据位作为所述代码类型标识,所述多个数据位中的第二数据位的值表征当前待加载数据的数据量,所述多个数据位中的第三数据位作为所述目标核标识,所述多个数据位中的第四数据位用于存储待加载代码。
目标确定单元420,用于确定所述待加载数据所对应的目标核。
可选的,该目标核可以为1个、2个或者全部核。
作为一种方式,目标确定单元420,具体用于获取所述待加载数据中的目标核标识;将所述目标核标识所标识的核作为所述待加载数据所对应的目标核。
代码加载单元430,用于将所述待加载数据中的待加载代码加载到所述目标核。
作为一种方式,每个核包括数据存储器以及指令存储器,所述待加载数据还包括代码类型标识。代码加载单元430,具体用于若识别所述代码类型标识表征为数据类型,将所述待加载代码加载到所述目标核的数据存储器;若识别所述代码类型标识表征为指令类型,将所述待加载代码加载到所述目标核的指令存储器。
如图8所示,本装置还包括状态切换单元440,用于若识别所述待加载数据为最后一个待加载数据,将所述目标核从复位状态切换为解复位状态;其中,所述目标核为在所述电子设备上电时处于所述复位状态。具体的,状态切换单元440,具体用于延迟指定时钟周期后,将所述目标核从复位状态切换为解复位状态。
需要说明的是,本申请中装置实施例与前述方法实施例是相互对应的,装置实施例中具体的原理可以参见前述方法实施例中的内容,此处不再赘述。
下面将结合图9对本申请提供的一种电子设备进行说明。
请参阅图9,基于上述的控制代码加载方法、装置,本申请实施例还提供的另一种可以执行前述控制代码加载方法的电子设备200。电子设备200包括相互耦合的一个或多个(图中仅示出一个)处理器102、存储器104、网络模块106以及启动控制器108。其中,该存储器104中存储有可以执行前述实施例中内容的程序,而处理器102可以执行该存储器104中存储的程序。此外,存储器104中还可以存储有处理器102控制电子设备所需的控制代码,其中,启动控制器108可以从存储器中读取该控制代码并加载到处理器102的核中。
其中,处理器102可以包括一个或者多个用于处理数据的核。处理器102利用各种接口和线路连接整个电子设备200内的各个部分,通过运行或执行存储在存储器104内的指令、程序、代码集或指令集,以及调用存储在存储器104内的数据,执行电子设备200的各种功能和处理数据。可选地,处理器102可以采用数字信号处理(Digital SignalProcessing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器102可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics ProcessingUnit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器102中,单独通过一块通信芯片进行实现。
存储器104可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器104可用于存储指令、程序、代码、代码集或指令集。存储器104可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
所述网络模块106用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯,例如和音频播放设备进行通讯。所述网络模块106可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。所述网络模块106可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。例如,网络模块106可以与基站进行信息交互。
请参考图10,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质1100中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质1100可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质1100包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质1100具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1110可以例如以适当形式进行压缩。
本申请提供的一种控制代码加载方法、装置、启动控制器以及电子设备,当所述电子设备通过无线方式接收到满足指定格式的广播数据后,获取所述广播数据中表征场景类型的场景参数,并进一步获取与所述场景参数对应的目标工作模式,将所述电子设备切换为所述目标工作模式。从而通过本方法实现了电子设备根据接收到的指定格式的广播数据中的场景参数来调节自身的工作模式,并且是切换为场景参数所对应的目标工作模式,进而提升了模式切换过程中的灵活性,提升了用户体验。并且,还可以避免电子设备用户因为遗忘而忘记切换电子设备的工作模式而给周围人群带来的不便。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (11)

1.一种控制代码加载方法,其特征在于,应用于电子设备的启动控制器,所述电子设备还包括多核处理器,所述方法包括:
响应于代码加载指令,所述启动控制器读取待加载数据;
确定所述待加载数据所对应的目标核;
将所述待加载数据中的待加载代码加载到所述目标核。
2.根据权利要求1所述的方法,其特征在于,所述确定所述待加载数据所对应的目标核的步骤包括:
所述启动控制器获取所述待加载数据中的目标核标识;
将所述目标核标识所标识的核作为所述待加载数据所对应的目标核。
3.根据权利要求2所述的方法,其特征在于,每个核包括数据存储器以及指令存储器,所述待加载数据还包括代码类型标识;所述将所述待加载数据中的待加载代码加载到所述目标核的步骤包括:
若识别所述代码类型标识表征为数据类型,将所述待加载代码加载到所述目标核的数据存储器;
若识别所述代码类型标识表征为指令类型,将所述待加载代码加载到所述目标核的指令存储器。
4.根据权利要求3所述的方法,其特征在于,所述待加载数据有多个;且每个待加载数据包括依次排列的多个数据位,其中,所述多个数据位中的第一数据位作为所述代码类型标识,所述多个数据位中的第二数据位的值表征当前待加载数据的数据量,所述多个数据位中的第三数据位作为所述目标核标识,所述多个数据位中的第四数据位用于存储待加载代码。
5.根据权利要求1-4任一所述的方法,其特征在于,所述目标核包括所述多核处理器的至少一个核。
6.根据权利要求1所述的方法,其特征在于,所述将所述待加载数据中的待加载代码加载到所述目标核的步骤之后还包括:
若识别所述待加载数据为最后一个待加载数据,将所述目标核从复位状态切换为解复位状态;其中,所述目标核为在所述电子设备上电时处于所述复位状态。
7.根据权利要求6所述的方法,其特征在于,所述将所述目标核从复位状态切换为解复位状态的步骤包括:
延迟指定时钟周期后,将所述目标核从复位状态切换为解复位状态。
8.一种控制代码加载装置,其特征在于,运行于电子设备的启动控制器,所述电子设备还包括多核处理器,所述装置包括:
数据获取单元,用于响应于代码加载指令,所述启动控制器读取待加载数据;
目标确定单元,用于确定所述待加载数据所对应的目标核;
代码加载单元,用于将所述待加载数据中的待加载代码加载到所述目标核。
9.一种启动控制器,其特征在于,用于配置于包括多核处理器的电子设备;
所述驱动控制器,用于响应于代码加载指令,读取待加载数据;
确定所述待加载数据所对应的目标核;
将所述待加载数据中的待加载代码加载到所述目标核。
10.一种电子设备,其特征在于,包括多核处理器、启动控制器以及存储器,所述存储器用于存储待加载的数据;
一个或多个程序被存储在所述启动控制器中并被配置为由所述启动控制器执行以实现权利要求1-7任一所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被启动控制器运行时执行权利要求1-7任一所述的方法。
CN201910580480.6A 2019-06-28 2019-06-28 控制代码加载方法、装置、启动控制器以及电子设备 Active CN110286963B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910580480.6A CN110286963B (zh) 2019-06-28 2019-06-28 控制代码加载方法、装置、启动控制器以及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910580480.6A CN110286963B (zh) 2019-06-28 2019-06-28 控制代码加载方法、装置、启动控制器以及电子设备

Publications (2)

Publication Number Publication Date
CN110286963A true CN110286963A (zh) 2019-09-27
CN110286963B CN110286963B (zh) 2022-08-12

Family

ID=68019819

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910580480.6A Active CN110286963B (zh) 2019-06-28 2019-06-28 控制代码加载方法、装置、启动控制器以及电子设备

Country Status (1)

Country Link
CN (1) CN110286963B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102135904A (zh) * 2011-03-11 2011-07-27 华为技术有限公司 一种面向多核目标系统的映射方法及装置
CN109086086A (zh) * 2018-08-06 2018-12-25 深圳忆联信息系统有限公司 一种非空间共享的多核cpu的启动方法及装置
CN109901890A (zh) * 2019-03-07 2019-06-18 深圳忆联信息系统有限公司 一种控制器加载多核固件的方法、装置、计算机设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102135904A (zh) * 2011-03-11 2011-07-27 华为技术有限公司 一种面向多核目标系统的映射方法及装置
CN109086086A (zh) * 2018-08-06 2018-12-25 深圳忆联信息系统有限公司 一种非空间共享的多核cpu的启动方法及装置
CN109901890A (zh) * 2019-03-07 2019-06-18 深圳忆联信息系统有限公司 一种控制器加载多核固件的方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN110286963B (zh) 2022-08-12

Similar Documents

Publication Publication Date Title
CN102200923B (zh) 从mmc/sd设备引导主机设备的方法及相关设备
CN104380257A (zh) 在处理器核之间调度任务
US11074083B2 (en) Fast loading kernel image file for booting
EP3091434A1 (en) Chip starting method, multi-core processor chip and storage medium
CN107548488B (zh) 具有dsp引擎及增强上下文切换能力的中央处理单元
US11016769B1 (en) Method and apparatus for processing information
CN110928935B (zh) 数据的访问命令处理方法、装置和系统
US20130036426A1 (en) Information processing device and task switching method
CN110046497B (zh) 一种函数挂钩实现方法、装置和存储介质
CN110688160B (zh) 一种指令流水线处理方法、系统、设备及计算机存储介质
CN112867120A (zh) 低功耗控制系统、方法、计算机设备和可读存储介质
WO2017080383A1 (zh) 加载软件模块的方法和装置
CN113741971A (zh) 微控制芯片上的程序运行方法、装置及存储介质
CN111209243A (zh) 数据处理装置、方法及相关产品
CN111209231B (zh) 数据处理方法、装置及相关产品
CN110998524A (zh) 处理配置文件的方法、处理单元、触摸芯片、装置及介质
CN104424142A (zh) 一种多核处理器系统中访问共享资源的方法与装置
CN110286963A (zh) 控制代码加载方法、装置、启动控制器以及电子设备
CN109857469B (zh) 显示屏控制方法及相关产品
CN109388531B (zh) 基于dsp板卡的测试装置及其测试方法
CN102789428B (zh) 一种指令高速缓冲存储器装置及其控制方法
US10832132B2 (en) Data transmission method and calculation apparatus for neural network, electronic apparatus, computer-readable storage medium and computer program product
JP2018505489A (ja) システムオンチップにおける動的メモリ利用
CN111210012A (zh) 数据处理方法、装置及相关产品
CN111258653A (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