CN112965755B - 多核处理器的初始化方法、装置、电子设备及存储介质 - Google Patents
多核处理器的初始化方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112965755B CN112965755B CN202110352864.XA CN202110352864A CN112965755B CN 112965755 B CN112965755 B CN 112965755B CN 202110352864 A CN202110352864 A CN 202110352864A CN 112965755 B CN112965755 B CN 112965755B
- Authority
- CN
- China
- Prior art keywords
- core
- initialization
- slave
- initialization information
- processor
- 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
- 238000011423 initialization method Methods 0.000 title abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 47
- 230000000903 blocking effect Effects 0.000 claims description 22
- 230000001360 synchronised effect Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 5
- 230000001276 controlling effect Effects 0.000 description 25
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000000875 corresponding effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000036541 health Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003862 health status Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 101100016034 Nicotiana tabacum APIC gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种多核处理器的初始化方法、装置、电子设备及存储介质,属于计算机技术领域。所述方法包括:在开始初始化处理器信息时,控制处理器的主核执行主核初始化操作,并将所得到的主核初始化信息添加至初始化信息表;在完成主核初始化操作后,控制主核向处理器的从核发出核间中断,以指示从核执行从核初始化操作,并将所得到的从核初始化信息添加至初始化信息表;在各从核执行完毕从核初始化操作后,控制主核根据初始化信息表中的主核初始化信息和从核初始化信息,启动操作系统。本方案实现了在固件阶段各CPU核对于核初始化信息的自枚举,无需针对不同的处理器对固件中的核初始化信息进行专门配置,提高了处理器初始化的效率。
Description
技术领域
本申请属于计算机技术领域,特别是涉及一种多核处理器的初始化方法、装置、电子设备及存储介质。
背景技术
对于多核处理器,其所承载的操作系统从上电到操作系统启动完成的过程中,处理器的固件和内核都需要知晓处理器中各CPU核的固件初始化参数、健康状态等核初始化信息,以供操作系统在启动过程中分配核资源使用。
现有技术中通常是通过在板卡的固件中预先存储CPU核的核初始化信息,从而在处理器的信息初始化时由固件直接写入相关数据结构中,以达到将核初始化信息传递给处理器的作用。显然这种方式需要板卡固件中的核初始化信息与处理器的实际情况吻合,那么在更换板卡上的处理器时,也需要对板卡固件中的核初始化信息进行重新设置,从而使得板卡固件中的核初始化信息适配于更换后的处理器。这就增加了每次更换处理器时,处理器初始化所需的工作量,从而降低了处理器初始化的效率。
发明内容
有鉴于此,本申请提供一种多核处理器的初始化方法、装置、电子设备及存储介质,在一定程度上解决现有技术中操作系统启动时,处理器初始化依赖于板卡固件中固定的核初始化信息,导致处理器更换时需要耗费工作量对固件中的核初始化信息进行重新配置,才能使得处理器获取到的核初始化信息与更换后的处理器的实际情况吻合,降低了处理器初始化的效率的问题。
依据本申请的第一方面,提供了一种多核处理器的初始化方法,该方法可以包括:
在开始初始化处理器信息时,控制所述处理器的主核执行主核初始化操作,并将所得到的主核初始化信息添加至初始化信息表;
在完成所述主核初始化操作后,控制所述主核向所述处理器的从核发出核间中断,以指示所述从核执行从核初始化操作,并将所得到的从核初始化信息添加至所述初始化信息表;
在各所述从核执行完毕所述从核初始化操作后,控制所述主核根据所述初始化信息表中的主核初始化信息和从核初始化信息,启动操作系统。
可选地,所述在完成所述主核初始化操作后,控制所述主核向所述处理器的从核发出核间中断之前,所述方法还包括:
控制所述从核访问死循环地址。
可选地,在所述控制所述主核向从核发出核间中断之后,还包括:
按照预设时间周期查询所述初始化信息表已写入的从核初始化信息;
在所述从核初始化信息的数量大于或等于核数量阈值时,确定各所述从核执行完毕所述从核初始化操作。
可选地,在所述按照预设时间周期查询所述初始化信息表已包含的从核初始化信息之后,还包括:
在按照预设时间周期对所述初始化信息表的查询次数大于次数阈值时,确定各所述从核执行完毕所述从核初始化操作。
可选地,在所述控制所述主核向从核发出核间中断之后,所述方法还包括:
将各所述从核作为队列节点,创建阻塞同步队列;
在所述初始化信息表正在被访问时,对所述阻塞同步队列执行禁止访问的原子操作,以使得各所述从核停止执行对于所述初始化信息表的访问操作;
在所述初始化信息表未正在被访问时,对所述阻塞同步队列执行允许访问的原子操作,以使得各所述节点通过访问所述初始化信息表以将从核初始化信息写入所述初始化信息表。
可选地,所述控制所述主核向从核发出核间中断,包括:
控制所述主核向所述主核的目标寄存器写入从核唤醒执行地址以及从核初始化数据结构地址,以向所述从核发送核间中断,所述从核唤醒执行地址用于指示所述从核通过访问所述从核初始化数据结构地址,以使得所述从核执行从核初始化操作。
可选地,在所述控制所述主核执行主核初始化操作之前,所述方法还包括:
获取处理器中每个核的核标识;
将所述核标识为主核标识的核作为主核,并除所述主核以外的其他核作为从核。
依据本申请的第二方面,提供了一种多核处理器的初始化装置,该装置可以包括:
主核初始化模块,被配置为在开始初始化处理器信息时,控制所述处理器的主核执行主核初始化操作,并将所得到的主核初始化信息添加至初始化信息表;
从核初始化模块,被配置为在完成所述主核初始化操作后,控制所述主核向所述处理器的从核发出核间中断,以指示所述从核执行从核初始化操作,并将所得到的从核初始化信息添加至所述初始化信息表;
处理器初始化模块,被配置为在各所述从核执行完毕所述从核初始化操作后,控制所述主核根据所述初始化信息表中的主核初始化信息和从核初始化信息,启动操作系统。
可选地,所述从核初始化模块,还被配置为:
控制所述从核访问死循环地址。
可选地,所述处理器初始化模块,还被配置为:
按照预设时间周期查询所述初始化信息表已写入的从核初始化信息;
在所述从核初始化信息的数量大于或等于核数量阈值时,确定各所述从核执行完毕所述从核初始化操作。
可选地,所述处理器初始化模块,还被配置为:
在按照预设时间周期对所述初始化信息表的查询次数大于次数阈值时,确定各所述从核执行完毕所述从核初始化操作。
可选地,所述从核初始化模块,还被配置为:
将各所述从核作为队列节点,创建阻塞同步队列;
在所述初始化信息表正在被访问时,对所述阻塞同步队列执行禁止访问的原子操作,以使得各所述从核停止执行对于所述初始化信息表的访问操作;
在所述初始化信息表未正在被访问时,对所述阻塞同步队列执行允许访问的原子操作,以使得各所述节点通过访问所述初始化信息表以将从核初始化信息写入所述初始化信息表。
可选地,所述从核初始化模块,还被配置为:
控制所述主核向所述主核的目标寄存器写入从核唤醒执行地址以及从核初始化数据结构地址,以向所述从核发送核间中断,所述从核唤醒执行地址用于指示所述从核通过访问所述从核初始化数据结构地址,以使得所述从核执行从核初始化操作。
可选地,所述装置还包括:判断模块,被配置为:
获取处理器中至少两个核的核标识;
将所述核标识为主核标识的核作为主核,并将所述核标识不为主核标识的核作为从核。
第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的多核处理器的初始化方法的步骤。
第四方面,本申请提供了一种电子设备包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的多核处理器的初始化方法的步骤。
针对在先技术,本申请具备如下优点:
本申请实施例提供一种多核处理器的初始化方法、装置、电子设备及存储介质,本方案通过在处理器的主核执行完毕主核初始化操作时,由主核通过核间中断的方式唤醒从核执行从核初始化操作,并将所得到的从核初始化信息通过写入主核提供的初始化信息表,以将各CPU核的初始化信息提供给主核来启动操作系统,从而实现了在固件阶段各CPU核对于核初始化信息的自枚举,使得处理器可以动态获取到各CPU核的实际核初始化信息,无需再针对不同的处理器对固件中的核初始化信息进行专门配置,提高了处理器初始化的效率。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本申请实施例提供的一种多核处理器的初始化方法的步骤流程图;
图2是本申请实施例提供的另一种多核处理器的初始化方法的步骤流程图;
图3是本申请实施例提供的一种多核处理器的初始化方法的逻辑流程图;
图4是本申请实施例提供的一种多核处理器的初始化装置的结构框图;
图5是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
下面对本申请实施例中的多核处理器的初始化方法进行详细说明。
图1是本申请实施例提供的一种多核处理器的初始化方法的步骤流程图,如图1所示,该方法可以包括:
步骤101,在开始初始化处理器信息时,控制所述处理器的主核执行主核初始化操作,并将所得到的主核初始化信息添加至初始化信息表。
在本申请实施例中,处理器(CPU,central processing unit)是指包含有多个CPU核的处理器。在操作系统需要启动时,通常需要对处理器中的各CPU核进行初始化,而处理器中的各CPU核的初始化信息通常是由例如UEFI(Unified Extensible FirmwareInterface,统一可扩展固件接口)等固件通过写入特定数据结构的方式来传递给CPU核,这就造成了在操作系统的启动过程中获取到CPU核的初始化信息只能是固件包含的固定信息,无法适应于CPU核的实时变动来动态获取CPU核的初始化信息。
因此本申请实施例中通过在处理器初始化时,首先控制主核执行主核初始化操作,该主核初始化操作可以是CPU核中相关固件的初始化操作,例如对于核相关寄存器、HT前端总线、桥片、内存控制器等的初始化。然后本申请实施例实施例还将初始化一个用于存放各CPU核的初始化信息的数据结构struct cpu_mp_data来作为初始化信息表,该初始化信息表是用于存放各CPU核的核初始化信息,因此主核将首先写入主核自身的主核初始化信息写入该初始化信息表,后续将继续供从核继续写入从核初始化信息使用。
步骤102,在完成所述主核初始化操作后,控制所述主核向所述处理器的从核发出核间中断,以指示所述从核执行从核初始化操作,并将所得到的从核初始化信息添加至所述初始化信息表。
在本申请实施例中,核间中断(IPI,Inter-Processor Interrupt)是一种特殊类型的中断,即在多核处理器中,如果一个CPU核需要其他CPU核执行特定动作,该一个CPU核可以向其他CPU核发出核间中断来指示其他CPU核执行相应的动作。从核初始化操作与上述主核初始化操作类似,是对于从核中相关固件设备的初始化,具体操作可以通过主核设置,也就是说主核在初始化过程中,将设置用于指导从核初始化的相关配置。在主核完成初始化后,可以通过控制该主核向各从核发出核间中断,以唤醒各从核执行从核初始化操作。而区别于现有技术的地方是,现有技术中是在从核初始化过程中仅会在主核提供的MP table中添加自身的核ID,而本申请实施例还需要在从核执行完毕从核初始化操作后,将从核初始化信息写入主核提供的初始化信息表,以使得主核可以实时获取到从核的从核初始化信息。
步骤103,在各所述从核执行完毕所述从核初始化操作后,控制所述主核根据所述初始化信息表中的主核初始化信息和从核初始化信息,启动操作系统。
在本申请实施例中,主核等待各从核执行完初始化操作后,并将从核初始化信息写入初始化信息表中,即可通过解析该初始化信息表中的主核初始化信息和从核初始化信息,来获取启动操作系统所需的处理器的核初始化信息,依据CPU核的核初始化信息启动操作系统可以是依据核初始化信息中各CPU的健康状态,为操作系统中的各进程分配核资源,或者为主操作系统和从操作系统分配CPU核等等,具体过程可以参照现有技术中操作系统的启动方法,此处不再赘述。相较于现有技术中通过固件直接将CPU核的核初始化信息传递给处理器的方案,本申请实施例通过在CPU核执行完毕CPU核初始化操作后,由主核通过核间中断控制各从核将核初始化信息写入初始化信息表,实现了CPU核对于核初始化信息的自枚举,从而在固件在启动操作系统的阶段可以动态获取到真实的核初始化信息。并且由于固件无需直接向CPU核提供CPU核初始化信息,即使在板卡更换后,也无需重新对板卡固件中的核初始化信息进行设置,节省了处理器初始化所需的工作量。
本申请实施例提供的一种多核处理器的初始化方法,通过在处理器的主核执行完毕主核初始化操作时,由主核通过核间中断的方式唤醒从核执行从核初始化操作,并将所得到的从核初始化信息通过写入主核提供的初始化信息表,以将各CPU核的初始化信息提供给主核来启动操作系统,从而实现了在固件阶段各CPU核对于核初始化信息的自枚举,使得处理器可以动态获取到各CPU核的实际核初始化信息,无需再针对不同的处理器对固件中的核初始化信息进行专门配置,提高了处理器初始化的效率。
在一实施例中,为了提高初始化效率,不需要频繁重启从核,在所述在完成所述主核初始化操作后,控制所述主核向所述处理器的从核发出核间中断之前,控制所述从核访问死循环地址执行死循环操作,进而使得从核进行等待主核唤醒的状态。
在又一实施例中,由于初始化信息表只有一个,而从核可能存在多个,因此为了保证多个从核可以依次将自己的从核初始化信息写入初始化信息表中,从而依次增加核数和核健康状态,需要提供控制从核有序访问初始化信息表的原子操作。具体的,可以在所述控制所述主核向从核发出核间中断之后,将各所述从核作为队列节点,创建阻塞同步队列;在所述初始化信息表正在被访问时,对所述阻塞同步队列执行禁止访问的原子操作,以使得各所述从核停止执行对于所述初始化信息表的访问操作;在所述初始化信息表未正在被访问时,对所述阻塞同步队列执行允许访问的原子操作,以使得各所述节点通过访问所述初始化信息表以将从核初始化信息写入所述初始化信息表。
图2是本申请实施例提供的另一种多核处理器的初始化方法的步骤流程图,所述方法包括:
步骤201,获取处理器中至少两个核的核标识。
在本申请实施例中,核标识是指处理器中各CPU核的APIC ID(AdvancedProgrammable Interrupt ControllerIdentity Document,高级可编程中断控制器的身份标识),CPU核的物理ID是用于表征CPU核身份的标识。
步骤202,将所述核标识为主核标识的核作为主核,并将所述核标识不为主核标识的核作为从核。
在本申请实施例中,核是指处理器中的CPU核。处理器的初始化代码中可以预先设置有主核标识,只需要将各CPU核的核标识和主核标识进行比对即可确定哪个CPU核是负责主导操作系统启动的CPU核,在确定主核后,除主核以外的剩余CPU核将被自动确定为从核。当然初始化代码也可以通过设置对于核标识的筛选逻辑,例如根据从核的规格参数、数据处理效率、响应时间等对核标识相对应的CPU核进行筛选来确定主核,具体的主核标识确定方式可以根据实际需求设置,此处不做限定。在根据主核标识确定主核后,该主核可以通过在A32_APIC_BASE寄存器的BSP标志位为1来表明自己的身份,此时各从何进入wait forSIPI(Start-up IPI)的状态,也就是等待主核唤醒的状态。
步骤203,在开始初始化处理器信息时,控制所述处理器的主核执行主核初始化操作,并将所得到的主核初始化信息添加至初始化信息表。
该步骤可参照步骤101的详细描述,此处不再赘述。
步骤204,控制所述从核访问死循环地址。
在本申请实施例中,若CPU核的核标识不是主核标识时,则可以通过控制从核访问死循环地址执行死循环操作,该死循环操作地址可以是任一死循环函数的访问地址,从而使得从核进行等待主核唤醒的状态。
步骤205,在所述主核执行完毕所述主核初始化操作后,控制所述主核向所述主核的目标寄存器写入从核唤醒执行地址以及从核初始化数据结构地址,以向所述从核发送核间中断,所述从核唤醒执行地址用于指示所述从核通过访问所述从核初始化数据结构地址,以使得所述从核执行从核初始化操作,并将所得到的从核初始化信息添加至所述初始化信息表。
在本申请实施例中,由于核间中断通常是通过向特定寄存器写入需要的值来产生,从而实现CPU核之间的通讯。因此可以通过控制主核向主核的mailbox0写入从核唤醒执行地址,以及向主核的mailbox3写入从核需要初始化的初始化数据结构地址来使得主核向各从核发出核间中断来唤醒从核。
步骤206,将各所述从核作为队列节点,创建阻塞同步队列。
在本申请实施例中,从核被主核唤醒并执行完从核初始化操作后,需要访问主核提供的初始化信息表,从而将自身的从核初始化信息写入该初始化信息表中,但是由于初始化信息表只有一个,而从核可能存在多个,因此为了保证多个从核可以依次将自己的从核初始化信息写入初始化信息表中,从而依次增加核数和核健康状态,需要提供控制从核有序访问初始化信息表的原子操作。具体的,可以通过将从核作为队列节点来创建阻塞的同步队列。
步骤207,在所述初始化信息表正在被访问时,对所述阻塞同步队列执行禁止访问的原子操作,以使得各所述从核停止执行对于所述初始化信息表的访问操作。
在本申请实施例中,原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束。在初始化信息表正在被任一从核访问时,可以通过将特定寄存器中的值写为0来指示阻塞同步队列中的各从核停止访问初始化信息表的访问地址。
步骤208,在所述初始化信息表未正在被访问时,对所述阻塞同步队列执行允许访问的原子操作,以使得各所述节点通过访问所述初始化信息表以将从核初始化信息写入所述初始化信息表。
在本申请实施例中,在初始化信息表未正在被任一从核访问时,可以通过将特定寄存器中的值写入1来指示组合同步队列中的各从核访问初始化信息表的访问地址,也就是向各从核共享1个semaphore(令牌),仅允许首先获取到该semaphore的从核访问初始化信息表,从而使得初始化信息表可以有序访问初始化信息表,保证初始化信息表中可以依次增加核数和核健康状态。
步骤209,按照预设时间周期查询所述初始化信息表已写入的从核初始化信息。
在本申请实施例中,在主核向从核发出核间中断后,主核将开启定时器开始计时,等待从核执行完成从核初始化操作,可以在例如10ms、20ms等预设时间周期后查询该初始化信息表中从核初始化信息的数量,确认从核初始化操作的执行情况。
步骤210,在所述从核初始化信息的数量大于或等于核数量阈值时,确定各所述从核执行完毕所述从核初始化操作。
在本申请实施例中,核数量阈值可以是指处理器中从核的总数量,也可以是根据实际需求所设置的特定数量,但是该核数量阈值需要小于或等于处理器中从核的总数量,具体可以根据操作系统启动所需的核数量确定,此处不做限定。若初始化信息表中从核初始化信息的数量大于或等于该核数量阈值,则表明当前执行完从核初始化操作的从核数量已经满足操作系统启动的需求,则可以确定各所述从核执行完毕从核初始化操作,无需再等待从核初始化操作执行,可以进入一下处理器的初始化步骤。
当然,若从核初始化信息的数量小于核数量阈值,则可以继续计时并周期性访问该初始化信息表,直至从核初始化信息的数量大于或等于核数量阈值。
步骤211,在按照预设时间周期对所述初始化信息表的查询次数大于次数阈值时,确定各所述从核执行完毕所述从核初始化操作。
在本申请实施例中,考虑到部分从核可能由于硬件、通讯等因素,无法顺利执行从核初始化操作以将自身的从核初始化信息写入初始化信息表,若一直等待的话将会消耗较多时间,甚至无法顺利初始化处理器,因此若周期性查询初始化信息表的查询次数大于次数阈值,则可以直接确定各从核执行完毕,利用初始化信息表中已包含的从核初始化信息,即可进入一下处理器的初始化步骤。
本申请实施例在查询初始化信息表的次数超出查询阈值时,直接确认各从核初始化操作执行完毕以准备执行下一步骤,从而保证了多核处理器初始化的效率。
步骤212,在各所述从核执行完毕所述从核初始化操作后,控制所述主核根据所述初始化信息表中的主核初始化信息和从核初始化信息,启动操作系统。
该步骤可参照步骤103的详细描述,此处不再赘述。
为了便于理解,参照图3示出本申请实施例提供的一种多核处理器的初始化方法的逻辑流程图,其中:
在处理器的系统开始后,获取各CPU核的核标识以判断CPU核是否为主核;若是主核则控制该主核执行主核初始化代码进行初始化;若不是主核则控制该从核访问死循环函数地址来等待主核唤醒;在主核初始化完成后,将向从核发出核间中断来唤醒从核,以使得从核从访问循环函数地址跳转至访问从核初始化代码的对应地址来进行从核初始化并向主核提供从核初始化信息,在从核在初始化完成后继续访问死循环地址等待主核唤醒;主核在确认各从核初始化完成并获取到各从核的从核初始化信息后,根据各CPU核的初始化信息继续执行初始化操作系统,在操作系统初始化完成后引导CPU核执行其他应用程序运行所需的操作。
本申请实施例提供的另一种多核处理器的初始化方法,通过在处理器的主核执行完毕主核初始化操作时,由主核通过核间中断的方式唤醒从核执行从核初始化操作,并将所得到的从核初始化信息通过写入主核提供的初始化信息表,以将各CPU核的初始化信息提供给主核来启动操作系统,从而实现了在固件阶段各CPU核对于核初始化信息的自枚举,使得处理器可以动态获取到各CPU核的实际核初始化信息,无需再针对不同的处理器对固件中的核初始化信息进行专门配置,提高了处理器初始化的效率。
图4是本申请实施例提供了一种多核处理器的初始化装置30的结构框图,所述装置包括:
主核初始化模块301,被配置为在开始初始化处理器信息时,控制所述处理器的主核执行主核初始化操作,并将所得到的主核初始化信息添加至初始化信息表;
从核初始化模块302,被配置为在完成所述主核初始化操作后,控制所述主核向所述处理器的从核发出核间中断,以指示所述从核执行从核初始化操作,并将所得到的从核初始化信息添加至所述初始化信息表;
处理器初始化模块303,被配置为在各所述从核执行完毕所述从核初始化操作后,控制所述主核根据所述初始化信息表中的主核初始化信息和从核初始化信息,启动操作系统。
可选地,从核初始化模块302,还被配置为:
控制所述从核访问死循环地址。
可选地,处理器初始化模块303,还被配置为:
按照预设时间周期查询所述初始化信息表已写入的从核初始化信息;
在所述从核初始化信息的数量大于或等于核数量阈值时,确定各所述从核执行完毕所述从核初始化操作。
可选地,处理器初始化模块303,还被配置为:
在按照预设时间周期对所述初始化信息表的查询次数大于次数阈值时,确定各所述从核执行完毕所述从核初始化操作。
可选地,从核初始化模块302,还被配置为:
将各所述从核作为队列节点,创建阻塞同步队列;
在所述初始化信息表正在被访问时,对所述阻塞同步队列执行禁止访问的原子操作,以使得各所述从核停止执行对于所述初始化信息表的访问操作;
在所述初始化信息表未正在被访问时,对所述阻塞同步队列执行允许访问的原子操作,以使得各所述节点通过访问所述初始化信息表以将从核初始化信息写入所述初始化信息表。
可选地,所述从核初始化模块302,还被配置为:
控制所述主核向所述主核的目标寄存器写入从核唤醒执行地址以及从核初始化数据结构地址,以向所述从核发送核间中断,所述从核唤醒执行地址用于指示所述从核通过访问所述从核初始化数据结构地址,以使得所述从核执行从核初始化操作。
可选地,所述装置还包括:判断模块,被配置为:
获取处理器中至少两个核的核标识;
将所述核标识为主核标识的核作为主核,并将所述核标识不为主核标识的核作为从核。
本申请实施例提供的多核处理器的初始化装置具备执行多核处理器的初始化方法相应的功能模块,可执行上述任一所述的多核处理器的初始化方法,且能达到相同的有益效果。
在本申请提供的又一实施例中,还提供了一种电子设备,电子设备可以包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述多核处理器的初始化方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。示例的,如图5所示,该电子设备具体可以包括:处理器401、存储装置402、具有触摸功能的显示屏403、输入装置404、输出装置405以及通信装置406。该电子设备中处理器401的数量可以是一个或者多个,图5中以一个处理器401为例。该电子设备的处理器401、存储装置402、显示屏403、输入装置404、输出装置405以及通信装置406可以通过总线或者其他方式连接。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的多核处理器的初始化方法。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的多核处理器的初始化方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (7)
1.一种多核处理器的初始化方法,其特征在于,所述方法包括:
在开始初始化处理器信息时,控制所述处理器的主核执行主核初始化操作,并将所得到的主核初始化信息添加至初始化信息表;
控制从核访问死循环地址;
在完成所述主核初始化操作后,控制所述主核向所述主核的目标寄存器写入从核唤醒执行地址以及从核初始化数据结构地址,以向所述从核发送核间中断,所述从核唤醒执行地址用于指示所述从核通过访问所述从核初始化数据结构地址,以使得所述从核执行从核初始化操作,并将所得到的从核初始化信息添加至所述初始化信息表;
将各所述从核作为队列节点,创建阻塞同步队列;
在所述初始化信息表正在被访问时,对所述阻塞同步队列执行禁止访问的原子操作,以使得各所述从核停止执行对于所述初始化信息表的访问操作;
在所述初始化信息表未正在被访问时,对所述阻塞同步队列执行允许访问的原子操作,以使得各所述节点通过访问所述初始化信息表以将从核初始化信息写入所述初始化信息表;
在各所述从核执行完毕所述从核初始化操作后,控制所述主核根据所述初始化信息表中的主核初始化信息和从核初始化信息,启动操作系统。
2.根据权利要求1所述的方法,其特征在于,在所述控制所述主核向从核发出核间中断之后,还包括:
按照预设时间周期查询所述初始化信息表已写入的从核初始化信息;
在所述从核初始化信息的数量大于或等于核数量阈值时,确定各所述从核执行完毕所述从核初始化操作。
3.根据权利要求2所述的方法,其特征在于,在所述按照预设时间周期查询所述初始化信息表已包含的从核初始化信息之后,还包括:
在按照预设时间周期对所述初始化信息表的查询次数大于次数阈值时,确定各所述从核执行完毕所述从核初始化操作。
4.根据权利要求1-3任一项所述的方法,其特征在于,在所述控制所述主核执行主核初始化操作之前,所述方法还包括:
获取处理器中每个核的核标识;
将所述核标识为主核标识的核作为主核,并除所述主核以外的其他核作为从核。
5.一种多核处理器的初始化装置,其特征在于,所述装置包括:
主核初始化模块,被配置为在开始初始化处理器信息时,控制所述处理器的主核执行主核初始化操作,并将所得到的主核初始化信息添加至初始化信息表;
从核初始化模块,被配置为控制所述从核访问死循环地址;在完成所述主核初始化操作后,控制所述主核向所述主核的目标寄存器写入从核唤醒执行地址以及从核初始化数据结构地址,以向所述从核发送核间中断,所述从核唤醒执行地址用于指示所述从核通过访问所述从核初始化数据结构地址,以使得所述从核执行从核初始化操作,并将所得到的从核初始化信息添加至所述初始化信息表;将各所述从核作为队列节点,创建阻塞同步队列;在所述初始化信息表正在被访问时,对所述阻塞同步队列执行禁止访问的原子操作,以使得各所述从核停止执行对于所述初始化信息表的访问操作;在所述初始化信息表未正在被访问时,对所述阻塞同步队列执行允许访问的原子操作,以使得各所述节点通过访问所述初始化信息表以将从核初始化信息写入所述初始化信息表;处理器初始化模块,被配置为在各所述从核执行完毕所述从核初始化操作后,控制所述主核根据所述初始化信息表中的主核初始化信息和从核初始化信息,启动操作系统。
6.一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至4中任一项所述的多核处理器的初始化方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现权利要求1至4中任一所述的多核处理器的初始化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110352864.XA CN112965755B (zh) | 2021-03-31 | 2021-03-31 | 多核处理器的初始化方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110352864.XA CN112965755B (zh) | 2021-03-31 | 2021-03-31 | 多核处理器的初始化方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112965755A CN112965755A (zh) | 2021-06-15 |
CN112965755B true CN112965755B (zh) | 2023-12-08 |
Family
ID=76280693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110352864.XA Active CN112965755B (zh) | 2021-03-31 | 2021-03-31 | 多核处理器的初始化方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112965755B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827079B (zh) * | 2023-01-09 | 2023-07-28 | 深流微智能科技(深圳)有限公司 | 启动图形处理器的控制方法、控制装置和电子设备 |
CN116974636B (zh) * | 2023-08-03 | 2024-04-26 | 上海合芯数字科技有限公司 | 多路互联系统及其总线接口初始化方法、装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063295A (zh) * | 2014-06-26 | 2014-09-24 | 北京控制工程研究所 | 一种多核操作系统可重构容错启动方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140139371A (ko) * | 2013-05-27 | 2014-12-05 | 한국전자통신연구원 | 멀티 코어 시스템 반도체 제어 장치 및 방법 |
US10776131B2 (en) * | 2018-08-30 | 2020-09-15 | Dell Products, L.P. | Method and apparatus for UEFI firmware boot journal recording |
-
2021
- 2021-03-31 CN CN202110352864.XA patent/CN112965755B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063295A (zh) * | 2014-06-26 | 2014-09-24 | 北京控制工程研究所 | 一种多核操作系统可重构容错启动方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112965755A (zh) | 2021-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108701040B (zh) | 用户级别线程暂停的方法、设备、和指令 | |
EP3039540B1 (en) | Virtual machine monitor configured to support latency sensitive virtual machines | |
KR101623892B1 (ko) | 분산된 멀티코어 메모리 초기화 | |
US9223596B1 (en) | Virtual machine fast provisioning based on dynamic criterion | |
CN112965755B (zh) | 多核处理器的初始化方法、装置、电子设备及存储介质 | |
US9454397B2 (en) | Data processing systems | |
JP2010044770A (ja) | モニタメモリ待機を用いたキューされたロック | |
US11243795B2 (en) | CPU overcommit with guest idle polling | |
US11099884B2 (en) | Dynamic control of halt polling based on receiving a monitoring instruction executed by a guest | |
US10459771B2 (en) | Lightweight thread synchronization using shared memory state | |
US8745446B2 (en) | Integrated circuit, debugging circuit, and debugging command control method | |
CN111913822A (zh) | 一种基于amp架构的核间通信方式 | |
US10437308B2 (en) | Predictive virtual machine halt | |
JP5866430B2 (ja) | オペレーティング・システムを実行するプロセッサ・コアの動的割当 | |
US10459747B2 (en) | Exitless timer access for virtual machines | |
US10437623B2 (en) | Fast switching between virtual machines without interrupt virtualization for high-performance, secure trusted-execution environment | |
US20180267829A1 (en) | Method for configuring an it system, corresponding computer program and it system | |
CN115309463A (zh) | 一种amp系统引导和配置的方法 | |
CN114064128B (zh) | 内核重启方法 | |
CN110333899B (zh) | 数据处理方法、装置和存储介质 | |
US9471361B2 (en) | Virtual machine (VM) sequencer and scheduler to avoid boot storm | |
EP3391213A1 (en) | Method and arrangement for utilization of a processing arrangement | |
CN114579195B (zh) | 一种操作系统重启方法、系统及相关组件 | |
CN104424027B (zh) | 线程运行方法及装置 | |
US20230161600A1 (en) | Kernel reboot method |
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 |