CN101256512B - 异构多核体系中主引导核的自动选举方法 - Google Patents
异构多核体系中主引导核的自动选举方法 Download PDFInfo
- Publication number
- CN101256512B CN101256512B CN2008100857758A CN200810085775A CN101256512B CN 101256512 B CN101256512 B CN 101256512B CN 2008100857758 A CN2008100857758 A CN 2008100857758A CN 200810085775 A CN200810085775 A CN 200810085775A CN 101256512 B CN101256512 B CN 101256512B
- Authority
- CN
- China
- Prior art keywords
- nuclear
- main guiding
- guiding nucleus
- nucleus
- identity
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Medical Treatment And Welfare Office Work (AREA)
Abstract
本发明公开了一种异构多核体系中主引导核的自动选举方法,步骤包括:多核CPU上电后调用选举机制,所述选举机制用于确定主引导核;所述多核CPU中的各个核执行所述选举机制,并根据所述选举机制判断自己是否为主引导核;同时,记录所有状态正常的从核;被确定的主引导核加载操作系统,并初始化外围硬件设备以及操作系统;所述从核进入睡眠状态;主引导核唤醒所有状态正常的从核,所述从核在被唤醒后加载并初始化各自的操作系统代码段,然后,主引导核和从核进入正常运行状态。本发明能够避免由于主引导核出现故障而导致整个系统无法启动的缺陷。
Description
技术领域
本发明涉及一种计算机技术,尤其涉及一种异构多核体系中主引导核的自动选举方法。
背景技术
随着芯片设计水平的提高以及应用需求的提升,多核CPU越来越多的被运用到产品中。目前采用多核CPU的异构体系大多选用CPU中的一个核作为主核,承担主要的资源管理和复杂逻辑运算;其余的核作为从核承担逻辑简单但数据量大的工作。
在异构多核体系中,每个核运行着各自独立的操作系统并发执行。CPU上电之初,各个核并不是独立地加载各自的操作系统代码段的,而是由一个主引导核对单板进行必要的硬件初始化,并加载自身的操作系统并初始化。与此同时,其他核处于睡眠状态。主引导核一切就绪后会向其他睡眠中的核发出通知以唤醒它们,这些被唤醒的核被称为从核。从核在被唤醒后将分别加载各自的操作系统代码段并初始化。但由于主引导核已经完成了外围硬件设备的初始化,所以从核在初始化时将省略外围硬件初始化的过程。
目前实际应用中,主引导核的选择完全由代码开发人员指定。代码生成后主引导核也随之确定,无法动态更改。这就造成了如果被指定的主引导核发生故障无法正常启动以及唤醒其他从核,则整个系统都无法正常引导。
发明内容
本发明要解决的技术问题是提供一种异构多核体系中主引导核的自动选举方法,能够避免由于主引导核出现故障而导致整个系统无法启动的缺陷。
技术方案如下:
一种异构多核体系中主引导核的自动选举方法,步骤包括:
(1)多核CPU上电后调用选举机制,所述选举机制用于确定主引导核;
(2)所述多核CPU中的各个核执行所述选举机制,并根据所述选举机制判断自己是否为主引导核;同时,记录所有状态正常的从核;
(3)被确定的主引导核加载操作系统,并初始化外围硬件设备以及操作系统;所述从核进入睡眠状态;
(4)主引导核唤醒所有状态正常的从核,所述从核在被唤醒后加载并初始化各自的操作系统代码段,然后,主引导核和从核进入正常运行状态。
进一步,所述选举机制的步骤包括:
A、多核CPU的每个核读取各自的内部寄存器,获得自己的身份编号;
B、所述核获得自己的身份编号后,利用核之间的通信通路向所述多核CPU中其他核广播自己的身份编号;
C、所述核根据所述身份编号来确定自己是否为主引导核。
进一步,所述选举机制中,选择状态良好且所述身份编号最小的核作为主引导核。
进一步,步骤C中,所述多核CPU中的核完成身份广播后,查看收到的来自于其他核的身份编号并进行比较;如果自己的身份编号最小,则判定自己为主引导核;如果收到比自己身份编号更小的身份编号,将收到的最小编号的判定为主引导核,记录该最小编号,并进入睡眠状态。
进一步,所述核在利用所述选举机制进行确定主引导核的过程中,判断自己的身份编号是否为最小;如果是,所述核为主引导核;如果不是,所述核为从核,并进入睡眠状态以等待被主引导核唤醒。
与现有技术相比较,本发明引入了异构多核体系下主引导核的选举机制。该选举机制避免了目前技术中,由于人为指定主引导核出现故障而导致整个系统无法启动的缺陷。
附图说明
图1是本发明中CPU确定主引导核并加载引导程序的流程图;
图2是本发明中各个核利用选举机制确定主引导核的总体流程图;
图3是本发明中各个核利用选举机制确定主引导核的具体流程图。
具体实施方式
本发明在现有的多核体系引导程序之前增加了主引导核的选举机制。该选举机制是利用多核CPU硬件提供的核间通信手段,在系统上电后在CPU多个核中选举出一个可用的核作为主引导核。CPU上电后,每个核都会执行该选举机制,直至选出主引导核,同时其他核都能实时知道自己为从核。
多核CPU的硬件架构为CPU中的每个核都赋予了一个唯一的身份编号,该身份编号用于标识每个核并放置在内部寄存器中,每个核都可以读取各自的内部寄存器来获得自己的身份编号。
每个核获得自己的身份编号后会向CPU中其他各个核广播自己的身份编号。如果某个核有故障,则针对本核的广播消息发送不会成功。广播消息接收方会记录下这个有故障的核,将来选举出来的主引导核可以利用这个记录不去唤醒有故障的从核。
本发明的选举机制是从多个核中选出状态良好的主引导核。由于核间通讯的速度非常快,每个核完成身份广播后,选择一个相对较长的等待时间以确保CPU中的各个核都完成身份广播,然后查看收到的来自于其他核的身份编号,并根据其他核的身份编号来判定自己是否为主引导核,再等待一段时间以同步CPU内其他核完成选举过程。
下面参照附图并结合具体实施例对本发明做详细说明。
如图1所示,是本发明中CPU确定主引导核并加载引导程序的流程图,具体过程如下:
步骤S101,CPU上电;
步骤S102,CPU中的各个核调用并执行选举机制;
步骤S103,各个核根据该选举机制判断自己是否为主引导核;如果某个核判断自己为主引导核,执行步骤S104;否则,执行步骤S108;
步骤S104,主引导核加载操作系统;
步骤S105,主引导核初始化外围硬件设备以及操作系统;
步骤S106,主引导核唤醒记录中所有状态正常的从核;
步骤S107,主引导核进入正常运行状态;
步骤S108,从核进入睡眠状态;
步骤S109,从核判断是否被唤醒;如果被唤醒,执行步骤S110,否则执行步骤S108;
步骤S110,从核在被唤醒后,加载各自的操作系统代码段;
步骤S111,从核初始化操作系统,但是并不初始化外围硬件;
步骤S112,从核进入正常运行状态。
如图2所示,是各个核利用选举机制确定主引导核的总体流程图,选举机制主要包括如下步骤:
步骤S201,身份确认;
多核CPU的每个核读取各自的内部寄存器,获得自己的身份编号;
步骤S202,广播身份编号;
每个核获得自己的身份编号后,通过核之间的通信通路向CPU中其他各个核广播自己的身份编号;
步骤S203,各个核根据身份编号来确定自己是否为主引导核;
本优选实施例中选择状态良好且编号最小的核作为主引导核。某个核完成身份广播后,查看收到的来自于其他核的身份编号并进行比较;如果没有收到比自己身份编号更小的身份编号,则判定自己为主引导核;如果收到比自己身份编号更小的身份编号,将收到的最小编号的判定为主引导核,记录该最小编号,并进入睡眠状态。
如图3所示,是本发明中各个核利用选举机制确定主引导核的具体流程图,该实施例中,选择状态良好且编号最小的核作为主引导核,CPU中某个核利用选举机制确定主引导核的具体步骤如下:
步骤S301,启动自身的定时器A以等待所有核完成身份广播;
步骤S302,该核等待来自其他核的广播消息中的身份编码;
步骤S303,判定定时器A是否超时;如果超时,执行步骤S308;否则,执行步骤S302;
步骤S304,判断是否收到来自其他核的广播消息;如果收到,执行步骤S305;否则,执行步骤S302;
步骤S305,提取出发送方广播消息中的身份编号;
步骤S306,判断该身份编号是否是当前编号中最小的身份编号,该判断过程包括该核自己的身份编号;如果是,执行步骤S307;否则转步骤S302;
步骤S307,记录下这个当前最小的身份编号,并转步骤S302;
步骤S308,如果定时器A超时,删除定时器A,并执行步骤S309;
步骤S309,进一步判断在上述过程中是否记录下比自己的身份编号更小的核发来的广播消息;如果有,执行步骤S310;否则执行步骤S312;
步骤S310,确定被记录下的核为主引导核;
步骤S311,当前核为从核,并进入睡眠状态以等待被主引导核唤醒;
步骤S312,由于当前核所接收到的身份编码没有比自己更小的,所以当前核判定自己为主引导核;
步骤S313,启动定时器B以等待所有从核都完成选举机制的执行;
步骤S314,等待定时器B超时;后转步骤12
步骤S315,定时器B超时后,删除定时器B。
之后,该核作为主引导核进入后续的初始化外围硬件设备以及加载操作系统的过程。
Claims (4)
1.一种异构多核体系中主引导核的自动选举方法,步骤包括:
(1)多核CPU上电后调用选举机制,所述选举机制用于确定主引导核;
(2)所述多核CPU中的各个核执行所述选举机制,并根据所述选举机制判断自己是否为主引导核;同时,记录所有状态正常的从核;
(3)被确定的主引导核加载操作系统,并初始化外围硬件设备以及操作系统;所述从核进入睡眠状态;
(4)主引导核唤醒所有状态正常的从核,所述从核在被唤醒后加载并初始化各自的操作系统代码段,然后,主引导核和从核进入正常运行状态;
其中,所述选举机制的步骤包括:
A、多核CPU的每个核读取各自的内部寄存器,获得自己的身份编号;
B、所述核获得自己的身份编号后,利用核之间的通信通路向所述多核CPU中其他核广播自己的身份编号;
C、所述核根据所述身份编号来确定自己是否为主引导核。
2.如权利要求1所述的异构多核体系中主引导核的自动选举方法,其特征在于,所述选举机制中,选择状态良好且所述身份编号最小的核作为主引导核。
3.如权利要求1或2所述的异构多核体系中主引导核的自动选举方法,其特征在于,步骤C中,所述多核CPU中的核完成身份广播后,查看收到的来自于其他核的身份编号并进行比较;如果自己的身份编号最小,则判定自己为主引导核;如果收到比自己身份编号更小的身份编号,将收到的最小编号的判定为主引导核,记录该最小编号,并进入睡眠状态。
4.如权利要求1或2所述的异构多核体系中主引导核的自动选举方法,其特征在于,所述核在利用所述选举机制进行确定主引导核的过程中,判断自己的身份编号是否为最小;如果是,所述核为主引导核;如果不是,所述核为从核,并进入睡眠状态以等待被主引导核唤醒。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100857758A CN101256512B (zh) | 2008-03-20 | 2008-03-20 | 异构多核体系中主引导核的自动选举方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100857758A CN101256512B (zh) | 2008-03-20 | 2008-03-20 | 异构多核体系中主引导核的自动选举方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101256512A CN101256512A (zh) | 2008-09-03 |
CN101256512B true CN101256512B (zh) | 2011-06-22 |
Family
ID=39891355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100857758A Expired - Fee Related CN101256512B (zh) | 2008-03-20 | 2008-03-20 | 异构多核体系中主引导核的自动选举方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101256512B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8653785B2 (en) | 2009-03-27 | 2014-02-18 | Qualcomm Incorporated | System and method of managing power at a portable computing device and a portable computing device docking station |
US8707061B2 (en) | 2009-03-27 | 2014-04-22 | Qualcomm Incorporated | System and method of providing scalable computing between a portable computing device and a portable computing device docking station |
US8630088B2 (en) | 2009-03-27 | 2014-01-14 | Qualcomm Incorporated | Portable docking station for a portable computing device |
US9201593B2 (en) | 2009-03-27 | 2015-12-01 | Qualcomm Incorporated | System and method of managing displays at a portable computing device and a portable computing device docking station |
US9128669B2 (en) | 2009-03-27 | 2015-09-08 | Qualcomm Incorporated | System and method of managing security between a portable computing device and a portable computing device docking station |
CN102081525A (zh) * | 2009-11-30 | 2011-06-01 | 英业达集团(天津)电子技术有限公司 | 自动执行操作系统核心的方法 |
CN101901159B (zh) * | 2010-08-03 | 2014-04-30 | 中兴通讯股份有限公司 | 一种多核CPU加载Linux操作系统的方法及系统 |
CN102023898A (zh) * | 2010-12-21 | 2011-04-20 | 中兴通讯股份有限公司 | 中央处理器热插拔的实现方法及装置 |
CN103608792B (zh) * | 2013-05-28 | 2016-03-09 | 华为技术有限公司 | 支持多核架构下资源隔离的方法及系统 |
CN104657240B (zh) * | 2013-11-18 | 2018-08-21 | 华为技术有限公司 | 多内核操作系统的失效控制方法及装置 |
CN109634672A (zh) * | 2018-12-04 | 2019-04-16 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于核间通信的多核处理器加载方法 |
CN114817120A (zh) * | 2022-06-29 | 2022-07-29 | 湖北芯擎科技有限公司 | 一种跨域数据共享方法、系统级芯片、电子设备及介质 |
-
2008
- 2008-03-20 CN CN2008100857758A patent/CN101256512B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101256512A (zh) | 2008-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101256512B (zh) | 异构多核体系中主引导核的自动选举方法 | |
US11470681B2 (en) | Apparatus and method for paging overlap mitigation | |
CN104220985B (zh) | 使用用户空间同步增强休眠和恢复处理的方法和装置 | |
CN104750510A (zh) | 一种芯片启动方法及多核处理器芯片 | |
US20070234123A1 (en) | Method for detecting switching failure | |
CN1142085A (zh) | 计算机系统及其控制方法 | |
CN101470518A (zh) | 用于不依赖于操作系统的服务的方法和装置 | |
CN104199691B (zh) | 一种基于安卓平台的开机自启动apk的方法及终端 | |
CN108121842B (zh) | 多处理器系统芯片的低功耗工作方式的验证方法和装置 | |
US20120159222A1 (en) | Method and system for rapid entry into and for rapid exiting from sleep states for processors of a portable computing device | |
CN102736013B (zh) | 一种SoC芯片的空闲状态测试方法、系统及测试装置 | |
CN110058973B (zh) | 数据储存装置的测试系统与数据储存装置的测试方法 | |
US9971535B2 (en) | Conversion method for reducing power consumption and computing apparatus using the same | |
CN104427133A (zh) | 通信终端待机省电的控制方法和控制装置 | |
CN103596229B (zh) | 小区重选方法及移动终端 | |
CN110764829B (zh) | 一种多路服务器cpu隔离方法及系统 | |
CN101631044B (zh) | 通信设备平滑升级方法及系统 | |
CN101923503B (zh) | 调整内存内部参数的方法及使用其的电脑系统 | |
CN106603526A (zh) | WiFi/热点的开启方法及装置 | |
CN108804150B (zh) | 终端待机过程处理方法及终端 | |
US20020124125A1 (en) | Method and apparatus to permit a peripheral device to become the default system bus master | |
CN101158920A (zh) | 一种检测操作系统故障的方法和装置 | |
CN101174230B (zh) | 一种多核处理器活性检测方法及系统 | |
CN101369243A (zh) | 功率消耗状态测试方法 | |
CN113115417B (zh) | 遥控器程序的无线升级方法、装置、遥控器和电器系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110622 Termination date: 20200320 |
|
CF01 | Termination of patent right due to non-payment of annual fee |