发明内容
本发明的目的是提供一种DSP程序加载方法、芯片启动方法、装置及主控设备,以实现不同的处理器核心加载不同的DSP程序。
为实现上述目的,本发明提供了如下技术方案:
一种程序加载方法,应用于主控设备,所述主控设备可以与多处理器核心芯片进行通信,所述主控设备在接收到所述多处理器核心芯片在二级启动引导过程中发送的内存分配请求时,从所述主控设备的内存空间中分配与所述多处理器核心芯片中的内存空间和寄存器空间相对应的内存空间,并将为所述多处理器核心芯片分配的内存空间和寄存器空间的起始地址写入所述多处理器核心芯片中的第一寄存器中,以便于所述主控设备通过访问为所述多处理器核心芯片分配的内存空间实现对所述多处理器核心芯片的内存空间和寄存器空间的访问;所述程序加载方法包括:
确定至少一个目标处理器核心;
确定与每一个目标处理器核心相对应的待加载程序;
将与第i个目标处理器核心相对应的待加载程序写入多处理器核心芯片中与所述第i个目标处理器核心对应的内存中;
确定所述与第i个目标处理器核心相对应的待加载程序在所述多处理器核心芯片的内存中的第一入口地址;
将所述第一入口地址写入与所述第i个目标处理器核心相对应的第二寄存器中。
上述方法,优选的,在将所述第一入口地址写入与所述第i个目标处理器核心相对应的第二寄存器中之后,还包括:
写与所述第i个目标处理器核心相对应的第三寄存器,以向所述第i个目标处理器核心发送中断信号,以指示所述第i个目标处理器核心从所述第一入口地址处开始执行加载至与所述第i个处理器核心相对应的内存中的程序。
上述方法,优选的,在确定至少一个目标处理器核心之后,将与第i个目标处理器核心相对应的待加载程序写入多处理器核心芯片中与所述第i个目标处理器核心对应的内存中之前还包括:
写与所述第i个目标处理器核心相对应的第四寄存器,以指示所述目标处理器核心在所述第i个目标处理器核心重新启动后进入空闲状态;
写与所述第i个目标处理器核心相对应的第五寄存器,以指示所述第i个目标处理器核心重新启动。
一种芯片启动方法,应用于多处理器核心芯片,所述多处理器核心芯片可以与主控设备进行通信,所述启动方法包括:
在一级启动引导过程中,第一处理器核心获取一级启动设备类型;
第一处理器核心从相应一级启动设备类型的主控设备中读取并执行二级启动引导程序以执行二级启动引导过程;
在二级启动引导过程中,第一处理器核心获取二级启动设备类型,并以与所述二级启动设备类型相对应的通信方式向所述主控设备发送内存分配请求,所述分配请求用于指示所述主控设备分配与所述多处理器核心芯片中的内存空间和寄存器空间对应的主控设备内存空间,并将为所述多处理器核心芯片分配的内存空间的起始地址写入所述多处理器核心芯片中的第一寄存器中,以便于所述主控设备可以通过访问为所述多处理器核心芯片分配的内存空间实现对所述多处理器核心芯片的内存空间和寄存器空间的访问;
在所述二级启动引导过程完成后,控制所述多处理器核心芯片中的各个处理器核心进入空闲状态。
当第i个处理器核心接收到中断信号时,所述第i个处理器核心从与所述第i个处理器核心相对应的第二寄存器中读取第一入口地址;
所述第i个处理器核心从所述第一入口地址处开始执行加载至所述多处理器核心芯片的内存中的程序;
其中,所述第一入口地址为所述主控设备在将与第i个处理器核心相对应的待加载程序写入多处理器核心芯片中与所述第i个处理器核心对应的内存中后,所述待加载程序在所述多处理器核心芯片的内存中的入口地址,所述第一入口地址由所述主控设备写入与所述第i个处理器核心相对应的第二寄存器中。
上述方法,优选的,所述多处理器核心芯片中的寄存器空间包括与每一个处理器核心相对应的寄存器空间。
一种程序加载装置,应用于主控设备,所述主控设备可以与多处理器核心芯片进行通信,所述主控设备包括配置模块,用于在接收到所述多处理器核心芯片在二级启动引导过程中发送的内存分配请求时,从所述主控设备的内存空间中分配与所述多处理器核心芯片中的内存空间和寄存器空间相对应的内存空间,并将为所述多处理器核心芯片分配的内存空间的起始地址写入所述多处理器核心芯片中的第一寄存器中,以便于所述主控设备通过访问为所述多处理器核心芯片分配的内存空间实现对所述多处理器核心芯片的内存空间和寄存器空间的访问;所述程序加载装置包括:
第一确定模块,用于确定至少一个目标处理器核心;
第二确定模块,用于确定与每一个目标处理器核心相对应的待加载程序;
第一写模块,用于将与第i个目标处理器核心相对应的待加载程序写入多处理器核心芯片中与所述第i个目标处理器核心对应的内存中;
第三确定模块,用于确定所述与第i个目标处理器核心相对应的待加载程序在所述多处理器核心芯片的内存中的第一入口地址;
第二写模块,用于将所述第一入口地址写入与所述第i个目标处理器核心相对应的第二寄存器中。
上述装置,优选的,还包括:
第三写模块,用于写与所述第i个目标处理器核心相对应的第三寄存器,以向所述第i个目标处理器核心发送中断信号,以指示所述第i个目标处理器核心从所述第一入口地址处开始执行加载至所述多处理器核心芯片的内存中的程序。
上述装置,优选的,还包括:
第四写模块,用于在所述第一确定模块确定至少一个目标处理器核心后,写与第i个目标处理器核心相对应的第四寄存器,以指示所述目标处理器核心在所述第i个目标处理器核心重启后进入空闲状态;
第五写模块,用于写与所述第i个目标处理器核心相对应的第五寄存器,以指示所述第i个目标处理器核心重新启动;
所述第一写模块具体用于在所述第五写模块写与所述第i个目标处理器核心相对应的第五寄存器后,将与第i个目标处理器核心相对应的待加载程序写入多处理器核心芯片中与所述第i个目标处理器核心对应的内存中。
一种主控设备,包括如上任意一项所述的程序加载装置。
通过以上方案可知,本申请实施例提供的一种程序加载方法、芯片启动方法、装置及主控设备,主控设备和多处理器核心芯片预先进行交互确定主控设备内存空间与多处理器核心芯片的内存空间和寄存器空间的映射关系,从而所述主控设备通过访问为所述多处理器核心芯片分配的内存空间实现对所述多处理器核心芯片的内存空间和寄存器空间的访问,因此,当确定与每一个目标处理器核心相对应的待加载程序后,主控设备可以将与第i个目标处理器核心相对应的待加载程序写入多处理器核心芯片中与所述第i个目标处理器核心对应的内存中;并在确定所述与第i个目标处理器核心相对应的待加载程序在所述多处理器核心芯片的内存中的第一入口地址后,可以将所述第一入口地址写入与所述第i个目标处理器核心相对应的第二寄存器中。从而实现了独立对每一个处理器核心进行程序加载的过程,进而可以对不同的处理器核心加载不同的程序。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请实施例提供的程序加载方法的主要思想是通过主控设备实现独立向每一个处理器核心加载程序。本申请实施例中,主控设备和多处理器核心芯片预先进行交互确定主控设备内存空间(即主控设备的全局地址空间)与多处理器核心芯片的内存空间和寄存器空间的映射关系,从而所述主控设备通过访问为所述多处理器核心芯片分配的内存空间实现对所述多处理器核心芯片的内存空间和寄存器空间的访问。
在主控设备侧确定主控设备内存空间与多处理器核心芯片的内存空间和寄存器空间的映射关系的具体实现过程可以为:
主控设备在接收到所述多处理器核心芯片发送的内存分配请求时,从所述主控设备的内存空间中分配与所述多处理器核心芯片中的内存空间和寄存器空间相对应的内存空间,并将为所述多处理器核心芯片分配的内存空间的起始地址写入所述多处理器核心芯片中的第一寄存器中,以便于所述主控设备通过访问为所述多处理器核心芯片分配的内存空间实现对所述多处理器核心芯片的内存空间和寄存器空间的访问;
其中,所述内存分配请求由所述多处理器核心芯片在二级启动引导过程中向主控设备发送;
具体主控设备如何通过访问为所述多处理器核心芯片分配的内存空间实现对所述多处理器核心芯片的内存空间和寄存器空间的访问属于本领域的公知常识,这里不再赘述。
本申请实施例提供的程序加载方法及装置可以应用于基于PCIE总线的主控设备中。
本申请实施例提供的程序加载方法应用于主控设备侧,请参阅图1,图1为本申请实施例提供的程序加载方法的一种实现流程图,可以包括:
步骤S11:确定至少一个目标处理器核心;
本申请实施例中,可以选择两个或更多个处理器核心进行程序加载。
步骤S12:确定与每一个目标处理器核心相对应的待加载程序;
与各个目标处理器核心相对应的待加载程序可以为同一套待加载程序,也可以为不同的待加载程序。
步骤S13:将与第i个目标处理器核心相对应的待加载程序写入多处理器核心芯片中与所述第i个目标处理器核心对应的内存中;其中,i=1,2,3,……
本申请实施例中,与第i个处理器核心相对应的内存可以是第i个目标处理器核心可以独立访问的内存,也可以是多处理器核心芯片中所有处理器核心的共享内存。
可以预先建立主控设备的第一内存空间以及与所述第i个目标处理器核心对应的内存空间之间的映射关系,从而,主控设备可以通过访问所述主控设备的第一内存空间访问与所述第i个目标处理器核心对应的内存空间,从而主控设备可以将与第i个目标处理器核心相对应的待加载程序写入多处理器核心芯片中与所述第i个目标处理器核心对应的内存中。
步骤S14:确定所述与第i个目标处理器核心相对应的待加载程序在所述多处理器核心芯片的内存中的第一入口地址;
在将与第i个目标处理器核心相对应的待加载程序写入多处理器核心芯片中与所述第i个目标处理器核心对应的内存中后,确定该待加载程序在与所述第i个目标处理器核心对应的内存中的入口地址。
步骤S15:将所述第一入口地址写入与所述第i个目标处理器核心相对应的第二寄存器中。
将所述确定的第一入口地址写入所述第i个目标处理器核心相对应的第二寄存器中,以便于第i个目标处理器核心可以从该第一入口地址处开始执行所加载的程序。
同理,可以预先建立主控设备的第二内存空间以及与所述第i个目标处理器核心相对应的第二寄存器之间的映射关系,从而,主控设备可以通过访问主控设备的第二内存空间访问与所述第i个目标处理器核心相对应的第二寄存器,从而主控设备可以将所述第一入口地址写入与所述第i个目标处理器核心相对应的第二寄存器中。
本申请实施例提供的程序加载方法,主控设备和多处理器核心芯片预先进行交互确定主控设备内存空间与多处理器核心芯片的内存空间和寄存器空间的映射关系,从而所述主控设备通过访问为所述多处理器核心芯片分配的内存空间实现对所述多处理器核心芯片的内存空间和寄存器空间的访问,因此,当确定与每一个目标处理器核心相对应的待加载程序后,主控设备可以将与第i个目标处理器核心相对应的待加载程序写入多处理器核心芯片中与所述第i个目标处理器核心对应的内存中;并在确定所述与第i个目标处理器核心相对应的待加载程序在所述多处理器核心芯片的内存中的第一入口地址后,可以将所述第一入口地址写入与所述第i个目标处理器核心相对应的第二寄存器中。从而实现了独立对每一个处理器核心进行程序加载的过程,进而可以对不同的处理器核心加载不同的程序。
在图1所示实施例的基础上,本申请实施例提供的程序加载方法的另一种实现流程图如图2所示,还可以包括:
步骤S21:写与所述第i个目标处理器核心相对应的第三寄存器,以向所述第i个目标处理器核心发送中断信号,以指示所述第i个目标处理器核心从所述第一入口地址处开始执行加载至与所述第i个处理器核心相对应的内存中的程序。
可以预先建立主控设备的第三内存空间以及与所述第i个目标处理器核心相对应的第三寄存器之间的映射关系,从而主控设备可以通过访问主控设备的第三内存空间访问与所述第i个目标处理器核心相对应的第三寄存器,从而主控设备可以在与所述第i个目标处理器核心相对应的第三寄存器中写中断信息。
本申请实施例中,在将待加载程序加载至与所述第i个处理器核心相对应的内存中后,写与所述第i个目标处理器核心相对应的第三寄存器,从而唤醒处于空闲状态的处理器核心,从而唤醒后的处理器核心可以从所述第一入口地址处开始执行加载至与所述第i个处理器核心相对应的内存中的程序。
上述实施例中,优选的,在一次程序加载完成后,当需要再次向多处理器核心芯片加载程序时(例如,在需要频繁在线切换DSP应用程序的应用场合,则需要重复向多处理器核心芯片加载程序),在确定至少一个目标处理器核心之后,将与第i个目标处理器核心相对应的待加载程序写入多处理器核心芯片中与所述第i个目标处理器核心对应的内存中之前所述方法还可以包括:
写与所述第i个目标处理器核心相对应的第四寄存器,以指示所述目标处理器核心在所述第i个目标处理器核心重新启动后进入空闲状态;
写与所述第i个目标处理器核心相对应的第五寄存器,以指示所述第i个目标处理器核心重新启动。
同理,可以预先建立主控设备的第四内存空间以及与所述第i个目标处理器核心相对应的第四寄存器之间的映射关系,并预先建立主控设备的第五内存空间以及与所述第i个目标处理器核心相对应的第五寄存器之间的映射关系,主控设备可以通过访问主控设备的第四内存空间访问与所述第i个目标处理器核心相对应的第四寄存器,可以通过访问主控设备的第五内存空间访问与所述第i个目标处理器核心相对应的第五寄存器,从而主控设备可以写与所述第i个目标处理器核心相对应的第四寄存器,并可以写与所述第i个目标处理器核心相对应的第五寄存器。
本申请实施例中,当需要再次向多处理器核心芯片加载程序时,只重新启动待加载程序的处理器核心,而非重新启动多处理器核心芯片,并且处理器核心芯片在重新启动后进入空闲状态,从而可以在不重新启动多处理器核心芯片和主控设备的情况下实现程序的多次重复加载。而现有技术中的程序加载方法在多处理器核心芯片启动后只能进行一次程序加载,当需要重新为多处理器核心芯片加载程序时,需要重新启动多处理器核心芯片和主控设备才能实现再次向多处理器核心芯片加载程序。
本申请实施例还提供一种芯片启动方法,应用于多处理器核心芯片,所述多处理器核心芯片可以与主控设备进行通信,本申请实施例提供的芯片启动方法的一种实现流程图如图3所示,可以包括:
步骤S31:在一级启动引导过程中,第一处理器核心获取一级启动设备类型;
步骤S32:第一处理器核心从相应一级启动设备类型的主控设备中读取并执行二级启动引导程序以执行二级启动引导过程;
步骤S33:在二级启动引导过程中,第一处理器核心获取二级启动设备类型,并以与所述二级启动设备类型相对应的通信方式向所述主控设备发送内存分配请求,所述分配请求用于指示所述主控设备分配与所述多处理器核心芯片中的内存空间和寄存器空间对应的主控设备内存空间,并将为所述多处理器核心芯片分配的内存空间的起始地址写入所述多处理器核心芯片中的第一寄存器中,以便于所述主控设备可以通过访问为所述多处理器核心芯片分配的内存空间实现对所述多处理器核心芯片的内存空间和寄存器空间的访问;
本申请实施例中,在二级启动引导过程中除了获取二级启动设备类型外,还向主控设备发送内存分配请求,以建立主控设备的内存空间与多处理器核心芯片的内存空间与寄存器空间的映射关系,更进一步的,在建立映射关系时,除了将多处理器核心芯片的内存空间与主控设备的内存空间建立映射关系外,还将多处理器核心芯片中的寄存器空间与主控设备的内存空间建立映射关系,从而主控设备可以访问多处理器核心芯片中的寄存器空间实现对多处理器核心芯片的控制。
具体的,所述内存分配请求中可以包括多处理器核心芯片的本地内存空间和寄存器空间的配置信息。以便于主控设备根据多处理器核心芯片的本地内存空间和寄存器空间的配置信息为多处理器核心芯片的本地内存空间和寄存器空间分配主控设备的内存空间。
例如,当多处理器芯片与主控设备通过PCIE总线进行通信时,多处理器核心芯片的本地内存空间和寄存器空间的配置信息可以通过BAR寄存器实现,下面表1给出一个通过BAR寄存器实现多处理器核心芯片的本地内存空间和寄存器空间的配置方式的一个具体实例,当然,本申请实施例中,并不限于表1所示的配置方式,还可以根据需要改变各个BAR寄存器中起始地址以及空间的大小信息。
表1
表1中,BAR0寄存器用于标示所配置的进行PCIESS配置的寄存器空间的起始地址和大小,其为默认配置;
BAR1寄存器用于标示所配置的多处理器核心芯片中控制/状态寄存器的空间的起始地址和大小;其中,“Power Sleep Controller”寄存器用于对处理器核心是否进行重新启动进行控制。
BAR2寄存器用于标示所配置的多处理器核心芯片中所有处理器核心的共享内存空间的起始地址和大小;
BAR3寄存器用于标示所配置的多处理器核心芯片中各个处理器核心的独立访问内存空间的起始地址和大小;
BAR3寄存器用于标示所配置的多处理器核心芯片中第三代双倍数据率同步动态随机存取存储器(DDR3)的起始地址和大小。
需要说明的是,上述表1只示出了多处理器核心芯片中内存空间和/或寄存器的部分配置信息,具体配置信息可以根据实际需求进行详细配置。
下面给出基于表1所建立的主控设备与多处理器核心芯片的内存的映射关系表的示意,如表2所示:
表2
BAR编号 |
主控设备端地址 |
芯片端地址 |
BAR1 |
由主机分配 |
0x02310000 |
BAR2 |
由主机分配 |
0x0C000000 |
BAR3 |
由主机分配 |
0x10800000 |
BAR4 |
由主机分配 |
0x80000000 |
表2中,主控设备端地址即是由主控设备为多处理器核心芯片中的内存空间分配的内存空间的起始地址。
其中,主控设备与多处理器核心芯片的内存的映射关系可以通过写多处理器核心芯片中的PCIE Inbound模式寄存器进行配置。
本申请实施例中,优选的,第二主控设备类型可以为I2C设备,所述多处理器核心芯片可以主动从I2C设备的EEPROM中读取程序,基于此,本申请实施例中,可以由主控设备侧的DSP芯片或FGPA芯片从I2C设备的EEPROM中读取程序,并将所读取的程序写入多处理器核心芯片中。
步骤S34:在所述二级启动引导过程完成后,控制所述多处理器核心芯片中的各个处理器核心进入空闲状态。
步骤S35:当第i个处理器核心接收到中断信号时,所述第i个处理器核心从与所述第i个处理器核心相对应的第二寄存器中读取第一入口地址;
本申请实施例中,多处理器核心芯片中的各个处理器核心在多处理器芯片上电后均处于空闲状态、并在接收到中断信号时,从与所述第i个处理器核心相对应的第二寄存器中读取入口地址;
其中,中断信号由主控设备写与所述第i个目标处理器核心相对应的第三寄存器触发发送。
步骤S36:所述第i个处理器核心从所述第一入口地址处开始执行加载至所述多处理器核心芯片的内存中的程序;
其中,所述第一入口地址为所述主控设备在将与第i个处理器核心相对应的待加载程序写入多处理器核心芯片中与所述第i个处理器核心对应的内存中后,所述待加载程序在所述多处理器核心芯片的内存中的入口地址,所述第一入口地址由所述主控设备写入与所述第i个处理器核心相对应的第二寄存器中。
当处理器核心开始执行所加载的程序时,完成了芯片的启动过程。
上述实施例中,优选的,所述多处理器核心芯片中的寄存器空间包括与每一个处理器核心相对应的寄存器空间。
与方法实施例相对应,本申请实施例还提供一种程序加载装置,本申请实施例提供的程序加载装置应用于主控设备,该主控设备可以与多处理器核心芯片进行通信,所述主控设备包括配置模块,用于在接收到所述多处理器核心芯片发送的内存分配请求时,从所述主控设备的内存空间中分配与所述多处理器核心芯片中的内存空间和寄存器空间相对应的内存空间,并将为所述多处理器核心芯片分配的内存空间的起始地址写入所述多处理器核心芯片中的第一寄存器中,以便于所述主控设备通过访问为所述多处理器核心芯片分配的内存空间实现对所述多处理器核心芯片的内存空间和寄存器空间的访问;本申请实施例提供的程序加载装置的一种结构示意图如图4所示,可以包括:
第一确定模块41,第二确定模块42,第一写模块43,第三确定模块44和第二写模块45;其中,
第一确定模块41用于确定至少一个目标处理器核心;
第二确定模块42用于确定与每一个目标处理器核心相对应的待加载程序;
第一写模块43用于将与第i个目标处理器核心相对应的待加载程序写入多处理器核心芯片中与所述第i个目标处理器核心对应的内存中;
第三确定模块44用于确定所述与第i个目标处理器核心相对应的待加载程序在所述多处理器核心芯片的内存中的第一入口地址;
第二写模块45用于将所述第一入口地址写入与所述第i个目标处理器核心相对应的第二寄存器中。
本申请实施例提供的一种程序加载装置,主控设备和多处理器核心芯片预先进行交互确定主控设备内存空间与多处理器核心芯片的内存空间和寄存器空间的映射关系,从而所述主控设备通过访问为所述多处理器核心芯片分配的内存空间实现对所述多处理器核心芯片的内存空间和寄存器空间的访问,因此,当确定与每一个目标处理器核心相对应的待加载程序后,主控设备可以将与第i个目标处理器核心相对应的待加载程序写入多处理器核心芯片中与所述第i个目标处理器核心对应的内存中;并在确定所述与第i个目标处理器核心相对应的待加载程序在所述多处理器核心芯片的内存中的第一入口地址后,可以将所述第一入口地址写入与所述第i个目标处理器核心相对应的第二寄存器中。从而实现了独立对每一个处理器核心进行程序加载的过程,进而可以对不同的处理器核心加载不同的程序。
在图4所示实施例的基础上,本申请实施例提供的程序加载装置的另一种结构示意图如图5所示,还可以包括:
第三写模块51,用于写与所述第i个目标处理器核心相对应的第三寄存器,以向所述第i个目标处理器核心发送中断信号,以指示所述第i个目标处理器核心从所述第一入口地址处开始执行加载至所述多处理器核心芯片的内存中的程序。
本申请实施例中,在将待加载程序加载至与所述第i个处理器核心相对应的内存中后,写与所述第i个目标处理器核心相对应的第三寄存器,从而唤醒处于空闲状态的处理器核心,从而唤醒后的处理器核心可以从所述第一入口地址处开始执行加载至与所述第i个处理器核心相对应的内存中的程序。
本在图4或图5所示实施例的基础上,本申请实施例提供的程序加载装置还可以包括:
第四写模块,用于写与所述第i个目标处理器核心相对应的第四寄存器,以指示所述目标处理器核心在所述第i个目标处理器核心重启后进入空闲状态;
第五写模块,用于写与所述第i个目标处理器核心相对应的第五寄存器,以指示所述第i个目标处理器核心重新启动。
本申请实施例中,当需要再次向多处理器核心芯片加载程序时,只重新启动待加载程序的处理器核心,而非重新启动多处理器核心芯片,并且处理器核心芯片在重新启动后进入空闲状态,从而可以在不重新启动多处理器核心芯片和主控设备的情况下实现程序的多次重复加载。而现有技术中的程序加载方法在多处理器核心芯片启动后只能进行一次程序加载,当需要重新为多处理器核心芯片加载程序时,需要重新启动多处理器核心芯片和主控设备才能实现再次向多处理器核心芯片加载程序。
本申请实施例还提供一种主控设备,该主控设备包括如任意一实施例所述的程序加载装置。
下面结合主控设备与多处理器核心芯片的通信系统图对本申请实施例进行说明,本申请实施例提供的主控设备与多处理器核心芯片的通信系统图如图6所示:
本实施例中,主控设备中运行Windows系统,多处理器核心芯片为DSPC6678(该多处理器核心芯片中包含8个处理器核心),二者通过PCIE总线进行通信;
主控设备侧执行以下步骤:
确定至少一个目标处理器核心;
选择与所确定的各个目标处理器核心相对应的待加载程序;
将与第i个目标处理器核心相对应的待加载程序写入多处理器核心芯片中与所述第i个目标处理器核心对应的内存中;
确定所述与第i个目标处理器核心相对应的待加载程序在所述多处理器核心芯片的内存中的第一入口地址;
将所述第一入口地址写入与所述第i个目标处理器核心相对应的第二寄存器中;
写与所述第i个目标处理器核心相对应的第三寄存器,以向所述第i个目标处理器核心发送中断信号,以指示所述第i个目标处理器核心从所述第一入口地址处开始执行加载至与所述第i个处理器核心相对应的内存中的程序,完成程序加载。
多处理器核心芯片侧执行以下步骤:
在一级启动引导过程中,第一处理器核心获取一级启动设备类型;
第一处理器核心从相应一级启动设备类型的主控设备中读取并执行二级启动引导程序以执行二级启动引导过程;
在二级启动引导过程中,第一处理器核心获取二级启动设备类型,并向所述主控设备发送内存分配请求,所述分配请求用于指示所述主控设备分配与所述多处理器核心芯片中的内存空间和寄存器空间对应的主控设备内存空间,并将为所述多处理器核心芯片分配的内存空间的起始地址写入所述多处理器核心芯片中的第一寄存器中,以便于所述主控设备可以通过访问为所述多处理器核心芯片分配的内存空间实现对所述多处理器核心芯片的内存空间和寄存器空间的访问;
在所述二级启动引导过程完成后,控制所述多处理器核心芯片中的各个处理器核心进入空闲状态。
当第i个处理器核心接收到中断信号时,所述第i个处理器核心从与所述第i个处理器核心相对应的第二寄存器中读取第一入口地址;
所述第i个处理器核心从所述第一入口地址处开始执行加载至所述多处理器核心芯片的内存中的程序,完成启动。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。