CN104199699A - 程序加载方法、芯片启动方法、装置及主控设备 - Google Patents

程序加载方法、芯片启动方法、装置及主控设备 Download PDF

Info

Publication number
CN104199699A
CN104199699A CN201410437192.2A CN201410437192A CN104199699A CN 104199699 A CN104199699 A CN 104199699A CN 201410437192 A CN201410437192 A CN 201410437192A CN 104199699 A CN104199699 A CN 104199699A
Authority
CN
China
Prior art keywords
processor core
main control
control equipment
chip centroid
program
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
CN201410437192.2A
Other languages
English (en)
Other versions
CN104199699B (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 Runke General Technology Co Ltd
Original Assignee
Beijing Jingwei Hirain Tech 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 Jingwei Hirain Tech Co Ltd filed Critical Beijing Jingwei Hirain Tech Co Ltd
Priority to CN201410437192.2A priority Critical patent/CN104199699B/zh
Publication of CN104199699A publication Critical patent/CN104199699A/zh
Application granted granted Critical
Publication of CN104199699B publication Critical patent/CN104199699B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种程序加载方法、芯片启动方法、装置及主控设备,主控设备和多处理器核心芯片预先进行交互确定主控设备内存空间与多处理器核心芯片的内存空间和寄存器空间的映射关系,从而当确定与每一个目标处理器核心相对应的待加载程序后,主控设备可以将与第i个目标处理器核心相对应的待加载程序写入多处理器核心芯片中与第i个目标处理器核心对应的内存中;并在确定与第i个目标处理器核心相对应的待加载程序在多处理器核心芯片的内存中的第一入口地址后,可以将第一入口地址写入与第i个目标处理器核心相对应的第二寄存器中。从而实现了独立对每一个处理器核心进行程序加载的过程,进而可以对不同的处理器核心加载不同的程序。

Description

程序加载方法、芯片启动方法、装置及主控设备
技术领域
本发明涉及电子技术领域,更具体地说,涉及一种程序加载方法、芯片启动方法、装置及主控设备。
背景技术
C66x系列的DSP芯片是德州仪器(TI)公司推出的基于Keystone架构的多处理器核心DSP芯片(即多核DSP芯片,以下简称DSP芯片)。该种DSP芯片最多拥有8个C66x处理器核心,可与多种外部设备进行通信。
C66x系列的DSP芯片在启动过程中,根据实际需要会将DSP程序从主控设备加载到DSP芯片中。DSP程序的加载是在DSP芯片启动的过程中完成的。DSP芯片的一种启动方式为二次引导启动方式,该启动方式包括一级启动引导过程和二级启动引导过程。在二次引导启动方式中,DSP程序的加载过程为:DSP芯片上电后,在一级启动引导过程中第一处理器核心获取一级启动设备类型,然后从相应类型的主控设备中读取并执行二级启动引导程序以执行二级启动引导过程,在二级启动引导过程中,第一处理器核心获取二级启动设备类型,然后等待主控设备以与该二级启动设备类型相对应的通信方式将待加载DSP程序写入DSP芯片的内存中,并将待加载DSP程序的入口地址写入与第一处理器核心相对应的寄存器中,实现DSP程序加载。
目前,在C66x系列的DSP芯片的二次引导启动的过程中,只有一个处理器核心(即第一处理器核心)可以执行一级启动过程和二级启动过程,其它的处理器核心只执行一级启动过程,且在执行完一级启动过程后,均处于空闲状态,而不参与DSP程序加载过程,如果需要为其它的处理器核心加载DSP程序,则需要由第一处理器核心将待加载DSP程序的入口地址写入与其它处理器核心相对应的寄存器中,实现其他处理器核心的DSP程序加载,然后第一处理器核心向其它处理器核心发送中断信号以唤醒其它处理器核心,从而其它处理器可以跳转至程序入口地址执行所加载的DSP程序。
由此可知,目前的DSP加载过程中,由于只有第一处理器核心可以执行DSP加载过程,其它的处理器核心的DSP程序加载则需要通过第一处理器核心引导加载方式实现,即由第一处理器核心将待加载DSP程序的入口地址写入与其它处理器核心相对应的寄存器中实现DSP程序加载,那么,这就意味着,目前的这种DSP程序加载方式,DSP芯片中的所有处理器核心只能加载同一套DSP程序,而在实际使用过程中,可能需要不同的处理器核心加载不同的DSP程序,因此,如何实现不同的处理器核心加载不同的DSP程序成为亟待解决的问题。
发明内容
本发明的目的是提供一种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个目标处理器核心相对应的第二寄存器中。从而实现了独立对每一个处理器核心进行程序加载的过程,进而可以对不同的处理器核心加载不同的程序。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的程序加载方法的一种实现流程图;
图2为本申请实施例提供的程序加载方法的另一种实现流程图;
图3为本申请实施例提供的芯片启动方法的一种实现流程图;
图4为本申请实施例提供的程序加载装置的一种结构示意图;
图5为本申请实施例提供的程序加载装置的另一种结构示意图;
图6为本申请实施例提供的主控设备与多处理器核心芯片的通信系统图。
说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的部分,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示的以外的顺序实施。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请实施例提供的程序加载方法的主要思想是通过主控设备实现独立向每一个处理器核心加载程序。本申请实施例中,主控设备和多处理器核心芯片预先进行交互确定主控设备内存空间(即主控设备的全局地址空间)与多处理器核心芯片的内存空间和寄存器空间的映射关系,从而所述主控设备通过访问为所述多处理器核心芯片分配的内存空间实现对所述多处理器核心芯片的内存空间和寄存器空间的访问。
在主控设备侧确定主控设备内存空间与多处理器核心芯片的内存空间和寄存器空间的映射关系的具体实现过程可以为:
主控设备在接收到所述多处理器核心芯片发送的内存分配请求时,从所述主控设备的内存空间中分配与所述多处理器核心芯片中的内存空间和寄存器空间相对应的内存空间,并将为所述多处理器核心芯片分配的内存空间的起始地址写入所述多处理器核心芯片中的第一寄存器中,以便于所述主控设备通过访问为所述多处理器核心芯片分配的内存空间实现对所述多处理器核心芯片的内存空间和寄存器空间的访问;
其中,所述内存分配请求由所述多处理器核心芯片在二级启动引导过程中向主控设备发送;
具体主控设备如何通过访问为所述多处理器核心芯片分配的内存空间实现对所述多处理器核心芯片的内存空间和寄存器空间的访问属于本领域的公知常识,这里不再赘述。
本申请实施例提供的程序加载方法及装置可以应用于基于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个处理器核心从所述第一入口地址处开始执行加载至所述多处理器核心芯片的内存中的程序,完成启动。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种程序加载方法,应用于主控设备,所述主控设备可以与多处理器核心芯片进行通信,其特征在于,所述主控设备在接收到所述多处理器核心芯片在二级启动引导过程中发送的内存分配请求时,从所述主控设备的内存空间中分配与所述多处理器核心芯片中的内存空间和寄存器空间相对应的内存空间,并将为所述多处理器核心芯片分配的内存空间和寄存器空间的起始地址写入所述多处理器核心芯片中的第一寄存器中,以便于所述主控设备通过访问为所述多处理器核心芯片分配的内存空间实现对所述多处理器核心芯片的内存空间和寄存器空间的访问;所述程序加载方法包括:
确定至少一个目标处理器核心;
确定与每一个目标处理器核心相对应的待加载程序;
将与第i个目标处理器核心相对应的待加载程序写入多处理器核心芯片中与所述第i个目标处理器核心对应的内存中;
确定所述与第i个目标处理器核心相对应的待加载程序在所述多处理器核心芯片的内存中的第一入口地址;
将所述第一入口地址写入与所述第i个目标处理器核心相对应的第二寄存器中。
2.根据权利要求1所述的方法,其特征在于,在将所述第一入口地址写入与所述第i个目标处理器核心相对应的第二寄存器中之后,还包括:
写与所述第i个目标处理器核心相对应的第三寄存器,以向所述第i个目标处理器核心发送中断信号,以指示所述第i个目标处理器核心从所述第一入口地址处开始执行加载至与所述第i个处理器核心相对应的内存中的程序。
3.根据权利要求1或2所述的方法,其特征在于,在确定至少一个目标处理器核心之后,将与第i个目标处理器核心相对应的待加载程序写入多处理器核心芯片中与所述第i个目标处理器核心对应的内存中之前还包括:
写与所述第i个目标处理器核心相对应的第四寄存器,以指示所述目标处理器核心在所述第i个目标处理器核心重新启动后进入空闲状态;
写与所述第i个目标处理器核心相对应的第五寄存器,以指示所述第i个目标处理器核心重新启动。
4.一种芯片启动方法,应用于多处理器核心芯片,所述多处理器核心芯片可以与主控设备进行通信,其特征在于,所述启动方法包括:
在一级启动引导过程中,第一处理器核心获取一级启动设备类型;
第一处理器核心从相应一级启动设备类型的主控设备中读取并执行二级启动引导程序以执行二级启动引导过程;
在二级启动引导过程中,第一处理器核心获取二级启动设备类型,并以与所述二级启动设备类型相对应的通信方式向所述主控设备发送内存分配请求,所述分配请求用于指示所述主控设备分配与所述多处理器核心芯片中的内存空间和寄存器空间对应的主控设备内存空间,并将为所述多处理器核心芯片分配的内存空间的起始地址写入所述多处理器核心芯片中的第一寄存器中,以便于所述主控设备可以通过访问为所述多处理器核心芯片分配的内存空间实现对所述多处理器核心芯片的内存空间和寄存器空间的访问;
在所述二级启动引导过程完成后,控制所述多处理器核心芯片中的各个处理器核心进入空闲状态;
当第i个处理器核心接收到中断信号时,所述第i个处理器核心从与所述第i个处理器核心相对应的第二寄存器中读取第一入口地址;
所述第i个处理器核心从所述第一入口地址处开始执行加载至所述多处理器核心芯片的内存中的程序;
其中,所述第一入口地址为所述主控设备在将与第i个处理器核心相对应的待加载程序写入多处理器核心芯片中与所述第i个处理器核心对应的内存中后,所述待加载程序在所述多处理器核心芯片的内存中的入口地址,所述第一入口地址由所述主控设备写入与所述第i个处理器核心相对应的第二寄存器中。
5.根据权利要求4所述的方法,其特征在于,所述多处理器核心芯片中的寄存器空间包括与每一个处理器核心相对应的寄存器空间。
6.一种程序加载装置,应用于主控设备,所述主控设备可以与多处理器核心芯片进行通信,其特征在于,所述主控设备包括配置模块,用于在接收到所述多处理器核心芯片在二级启动引导过程中发送的内存分配请求时,从所述主控设备的内存空间中分配与所述多处理器核心芯片中的内存空间和寄存器空间相对应的内存空间,并将为所述多处理器核心芯片分配的内存空间的起始地址写入所述多处理器核心芯片中的第一寄存器中,以便于所述主控设备通过访问为所述多处理器核心芯片分配的内存空间实现对所述多处理器核心芯片的内存空间和寄存器空间的访问;所述程序加载装置包括:
第一确定模块,用于确定至少一个目标处理器核心;
第二确定模块,用于确定与每一个目标处理器核心相对应的待加载程序;
第一写模块,用于将与第i个目标处理器核心相对应的待加载程序写入多处理器核心芯片中与所述第i个目标处理器核心对应的内存中;
第三确定模块,用于确定所述与第i个目标处理器核心相对应的待加载程序在所述多处理器核心芯片的内存中的第一入口地址;
第二写模块,用于将所述第一入口地址写入与所述第i个目标处理器核心相对应的第二寄存器中。
7.根据权利要求6所述的装置,其特征在于,还包括:
第三写模块,用于写与所述第i个目标处理器核心相对应的第三寄存器,以向所述第i个目标处理器核心发送中断信号,以指示所述第i个目标处理器核心从所述第一入口地址处开始执行加载至所述多处理器核心芯片的内存中的程序。
8.根据权利要求6或7所述的装置,其特征在于,还包括:
第四写模块,用于在所述第一确定模块确定至少一个目标处理器核心后,写与第i个目标处理器核心相对应的第四寄存器,以指示所述目标处理器核心在所述第i个目标处理器核心重启后进入空闲状态;
第五写模块,用于写与所述第i个目标处理器核心相对应的第五寄存器,以指示所述第i个目标处理器核心重新启动;
所述第一写模块具体用于在所述第五写模块写与所述第i个目标处理器核心相对应的第五寄存器后,将与第i个目标处理器核心相对应的待加载程序写入多处理器核心芯片中与所述第i个目标处理器核心对应的内存中。
9.一种主控设备,其特征在于,包括如权利要求6-8任意一项所述的程序加载装置。
CN201410437192.2A 2014-08-29 2014-08-29 程序加载方法、芯片启动方法、装置及主控设备 Active CN104199699B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410437192.2A CN104199699B (zh) 2014-08-29 2014-08-29 程序加载方法、芯片启动方法、装置及主控设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410437192.2A CN104199699B (zh) 2014-08-29 2014-08-29 程序加载方法、芯片启动方法、装置及主控设备

Publications (2)

Publication Number Publication Date
CN104199699A true CN104199699A (zh) 2014-12-10
CN104199699B CN104199699B (zh) 2017-06-16

Family

ID=52084996

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410437192.2A Active CN104199699B (zh) 2014-08-29 2014-08-29 程序加载方法、芯片启动方法、装置及主控设备

Country Status (1)

Country Link
CN (1) CN104199699B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598724A (zh) * 2015-10-14 2017-04-26 三星电子株式会社 用于在计算系统中管理内存的方法
CN106648758A (zh) * 2016-11-30 2017-05-10 中国电子科技集团公司第五十八研究所 一种多核处理器boot启动系统及方法
CN109800032A (zh) * 2019-01-31 2019-05-24 深圳忆联信息系统有限公司 Bootrom多核加载方法及装置
CN111949989A (zh) * 2020-07-27 2020-11-17 首都师范大学 一种多核处理器的安全管控装置及方法
CN112764822A (zh) * 2021-02-07 2021-05-07 中国第一汽车股份有限公司 操作系统启动方法、装置、设备及介质
CN114721493A (zh) * 2022-06-10 2022-07-08 深圳市航顺芯片技术研发有限公司 芯片启动方法、计算机设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978903A (en) * 1997-08-19 1999-11-02 Advanced Micro Devices, Inc. Apparatus and method for automatically accessing a dynamic RAM for system management interrupt handling
US20030061531A1 (en) * 2001-09-25 2003-03-27 Fletcher Terry M. Reconfiguring memory to reduce boot time
CN1916849A (zh) * 2006-09-04 2007-02-21 华为技术有限公司 一种多处理器系统的初始化方法和多处理器系统
CN101464807A (zh) * 2009-01-08 2009-06-24 杭州华三通信技术有限公司 一种应用程序的加载方法及装置
CN101604252A (zh) * 2009-07-10 2009-12-16 深圳华为通信技术有限公司 多处理器系统以及多处理器系统启动方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978903A (en) * 1997-08-19 1999-11-02 Advanced Micro Devices, Inc. Apparatus and method for automatically accessing a dynamic RAM for system management interrupt handling
US20030061531A1 (en) * 2001-09-25 2003-03-27 Fletcher Terry M. Reconfiguring memory to reduce boot time
CN1916849A (zh) * 2006-09-04 2007-02-21 华为技术有限公司 一种多处理器系统的初始化方法和多处理器系统
CN101464807A (zh) * 2009-01-08 2009-06-24 杭州华三通信技术有限公司 一种应用程序的加载方法及装置
CN101604252A (zh) * 2009-07-10 2009-12-16 深圳华为通信技术有限公司 多处理器系统以及多处理器系统启动方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598724A (zh) * 2015-10-14 2017-04-26 三星电子株式会社 用于在计算系统中管理内存的方法
CN106598724B (zh) * 2015-10-14 2022-01-14 三星电子株式会社 用于在计算系统中管理内存的方法
CN106648758A (zh) * 2016-11-30 2017-05-10 中国电子科技集团公司第五十八研究所 一种多核处理器boot启动系统及方法
CN109800032A (zh) * 2019-01-31 2019-05-24 深圳忆联信息系统有限公司 Bootrom多核加载方法及装置
CN109800032B (zh) * 2019-01-31 2022-03-25 深圳忆联信息系统有限公司 Bootrom多核加载方法及装置
CN111949989A (zh) * 2020-07-27 2020-11-17 首都师范大学 一种多核处理器的安全管控装置及方法
CN111949989B (zh) * 2020-07-27 2021-09-10 首都师范大学 一种多核处理器的安全管控装置及方法
CN112764822A (zh) * 2021-02-07 2021-05-07 中国第一汽车股份有限公司 操作系统启动方法、装置、设备及介质
CN114721493A (zh) * 2022-06-10 2022-07-08 深圳市航顺芯片技术研发有限公司 芯片启动方法、计算机设备及可读存储介质
CN114721493B (zh) * 2022-06-10 2022-09-27 深圳市航顺芯片技术研发有限公司 芯片启动方法、计算机设备及可读存储介质

Also Published As

Publication number Publication date
CN104199699B (zh) 2017-06-16

Similar Documents

Publication Publication Date Title
CN104199699A (zh) 程序加载方法、芯片启动方法、装置及主控设备
DE102013104328B4 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE102013104329B4 (de) Aufgabenzuteilung in großen und kleinen Kernen
US9658930B2 (en) Method and device for managing hardware errors in a multi-core environment
CN101876911B (zh) 基于PCI/PCIe总线多CPU系统启动方法及模块
KR20130125039A (ko) 멀티-cpu 시스템과 이를 포함하는 컴퓨팅 시스템
US20150293774A1 (en) Data processing systems
RU2012127580A (ru) Подход многоэтапного планирования на уровне исходных кодов для разработки и тестирования программного обеспечения для многопроцессорных сред
US10996729B2 (en) Balancing a power load among USB ports
CN104881105A (zh) 电子装置
CN102253844A (zh) 一种启动处理器的方法和设备
CN105630599A (zh) 基于32/64位混合操作系统的显存分配方法及装置
US20130120408A1 (en) Graphics processing unit module
CN106293825A (zh) 一种基于硬件信号量的多核启动同步方法
US20170212569A1 (en) Load discovery
CN112965755A (zh) 多核处理器的初始化方法、装置、电子设备及存储介质
WO2024108800A1 (zh) 数据处理方法和装置、电子设备和计算机可读存储介质
KR20190021726A (ko) 운영 체제의 운용 방법 및 이를 지원하는 전자 장치
JP2014056390A (ja) 情報処理装置及び正当性検証方法
US20130007768A1 (en) Atomic operations on multi-socket platforms
CN102789384B (zh) 一种面向龙芯3b处理器的服务器操作系统实现方法
CN105512091A (zh) 一种内存分配方法及装置
US10877918B2 (en) System and method for I/O aware processor configuration
CN107301037B (zh) 操作系统内核的加载方法和装置
US20110153901A1 (en) Virtual usb key for blade server

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
CP03 Change of name, title or address

Address after: 4 / F, building 1, No.14 Jiuxianqiao Road, Chaoyang District, Beijing 100020

Patentee after: Beijing Jingwei Hengrun Technology Co.,Ltd.

Address before: 8 / F, block B, No. 11, Anxiang Beili, Chaoyang District, Beijing 100101

Patentee before: Beijing Jingwei HiRain Technologies Co.,Ltd.

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20230606

Address after: 100192 5th floor, Zhizhen building, 7 Zhichun Road, Haidian District, Beijing

Patentee after: BEIJING RUNKE GENERAL TECHNOLOGY Co.,Ltd.

Address before: 4 / F, building 1, No.14 Jiuxianqiao Road, Chaoyang District, Beijing 100020

Patentee before: Beijing Jingwei Hengrun Technology Co.,Ltd.

TR01 Transfer of patent right