CN102043690A - 多核处理器故障处理方法及多核处理器 - Google Patents
多核处理器故障处理方法及多核处理器 Download PDFInfo
- Publication number
- CN102043690A CN102043690A CN 201010619927 CN201010619927A CN102043690A CN 102043690 A CN102043690 A CN 102043690A CN 201010619927 CN201010619927 CN 201010619927 CN 201010619927 A CN201010619927 A CN 201010619927A CN 102043690 A CN102043690 A CN 102043690A
- Authority
- CN
- China
- Prior art keywords
- kernel
- unusual
- synchronously
- main
- kernels
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种多核处理器故障处理方法,包括:各个内核检测自身的运行状态,或者,确定一个内核作为主内核,所述主内核检测其它内核的运行状态;当一个内核被检测到出现异常后,同步挂起所有内核。本发明实施例还提供相应的多核处理器。本发明技术方案可以实现在异常发生时将多个内核同步挂起。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种多核处理器故障处理方法及多核处理器。
背景技术
多核处理器例如数字信号处理器(digital signal processor,DSP)是一种是以数字信号来处理大量信息的器件,是数字化电子世界中日益重要的电脑芯片。随着语音、视频和数据“三合一”服务成为业界潮流,下一代有线和无线基础设施对DSP的处理能力要求越来越高。为了满足大量并行处理能力需求,业界厂商相继推出了多核DSP,即处理器中集成有两个或多个完整的内核的DSP。多核DSP可以通过并行处理来实现性能可扩展性,并允许多个内核在单个芯片上处理多条线程。基于多核DSP的系统能通过共享硬件队列来实现显著的性能提升。
现有的多核DSP中,各个内核的运行一般是相互独立的。当其中一个内核发生异常时,该内核会挂起,此时其它内核继续运行。内核发生异常的原因有两种,一是该内核自身发生异常,二是其它内核发生异常,因跨核读写导致核间干扰,引起该内核异常。由于核间相互独立,当其中一个内核异常挂起时,其它内核继续运行,不能保留异常发生时的多核现场,无法提取完整的多核信息;这就导致在因核间干扰引起内核挂起时,由于未保留多核现场,信息不全,无法定位引起核间干扰的内核,从而无法对异常原因进行分析。
发明内容
本发明实施例提供一种多核处理器故障处理方法和相应的多核处理器。
一种多核处理器故障处理方法,包括:
各个内核检测自身的运行状态,或者,
确定一个内核作为主内核,所述主内核检测其它内核的运行状态;
当一个内核被检测到出现异常后,同步挂起所有内核。
一种多核处理器,包括:
检测单元,用于检测内核的运行状态;
处理单元,用于当一个内核被检测到出现异常后,同步挂起所有内核。
本发明实施例采用在任一个内核发生异常时,由该异常内核或者预先确定的主内核同步挂起所有内核的技术方案,可以在异常发生时保留多核现场。
附图说明
图1是本发明提供的多核处理器故障处理方法实施例的流程图;
图2是本发明提供的多核处理器实施例的示意图。
具体实施方式
本发明实施例提供一种多核处理器故障处理方法,采用在任一个内核发生异常时,由该异常内核或者预先确定的主内核同步挂起所有内核的技术方案,可以在异常发生时保留多核现场。本发明实施例还提供相应的多核处理器。以下分别进行详细说明。
请参考图1,本发明实施例提供一种多核处理器故障处理方法,包括以下步骤:
101、各个内核检测自身的运行状态,或者,确定一个内核作为主内核,该主内核检测其它内核的运行状态。
一种实施方式中,如果多核处理器提供有内存保护机制,则每个内核都可以检测自身的运行状态。
在另一种实施方式中,可以从多核处理器的多个内核中确定一个内核作为住内核,由该主内核检测其它内核的运行状态。
可以随机确定一个内核作为主内核;也可以根据历史记录的内核异常次数,选定一个异常次数最少的内核作为主内核;还可以在运行过程中,改变已确定的主内核,例如,将发生异常的内核改为主内核;当然,还可以根据其它方式确定主内核。
已确定的主内核被用来检测其它内核的运行状态,可以按照预设的周期定时检测,也可以按照预定的时刻检测,还可以按照其它的方式进行检测。所说的运行状态主要包括正常和异常,发生异常的内核将在一定时间内停止运行。每个内核可以预设一个用于表示其运行状态的状态参数,主内核可以通过读取并判断其它内核的状态参数来检测其它内核的运行状态。
102、当一个内核被检测到出现异常后,同步挂起所有内核。
在一种实施方式中,发生异常的内核可以按照预设的方式将所有内核同步挂起,包括先挂起异常内核以外其它内核,再自行挂起。
在另一种实施方式中,主内核检测到主内核以外其它内核中的任意一个异常后,该主内核可以按照预设的方式将所有内核同步挂起,包括先挂起主内核以外其它内核,再自行挂起。
采用本实施例的方法,多核处理器的任一个内核发生异常时,可以同步挂起所有内核,保留了异常发生时的多核现场及完整的信息,从而可以定位引发异常的内核,可以对挂起的原因进行分析。
在其它实施例中,步骤102中同步挂起所有内核可以采用多种方式实现:
在一个实施例中,可以通过改写内核的被保护存储地址挂起内核。
本实施例方法基于多核处理器提供的内存保护机制。内存保护机制为每一个内核设有一个被保护的存储地址,若发生的异常致使该存储地址中的数据被改写,则该内核即挂起。
本实施例是通过由发生异常的内核同步改写异常内核以外其它内核的被保护存储地址同步挂起异常内核以外其它内核;或者,主内核同步改写主内核以外其它内核的被保护存储地址,实现将主内核以外其它内核挂起。
其中,发生异常的内核可以根据内存保护机制下记录的异常访存源地址,计算分析造成该主内核异常的内核,将其挂起。
在一个实施例中,可以通过触发核间共享信号量挂起内核。
本实施例方法基于多核处理器提供的核间共享信号量机制。信号量通常用来协调一组相互竞争的任务对它们共享资源的访问。信号量有一个非负整数的内部计数(count),它对应于可以获得的资源的数目。信号量队列中的每一个任务在进入就绪队列之前,必须获得一个信号量。如果一个等待的任务获得的信号量的计数值大于0,则该任务可以进入就绪队列,不会阻塞,同时该信号量的计数值会减1;如果一个等待的任务获得的信号量的计数值为0,说明当前没有可以利用的资源,则该任务会挂起(停止运行)。任务挂起后的等待时间由预设的超时参数确定,超时参数包括0、预设时间和无限等待(SYS_FOREVER)三种。如果超时参数为无限等待,该挂起的任务为一直异常,直到获得不为0的信号量。
本实施例中,多核处理器预先设置一个核间共享信号量并赋予初值,所赋的初值为0。一个实施例中,开启并使用了内存保护机制的多核处理器,其任一个内核可以自检到本核异常,从而发生异常的内核检测到自身异常后,可以在自行挂起之前,触发该核间共享信号量,则异常内核以外其它内核获得该核间共享信号量后挂起。另一个实施例中,主内核在检测到任意一个内核异常后,触发该核间共享信号量,主内核以外其它内核获得该核间共享信号量后挂起。各个内核可以添加优先级最高的任务,将任务的超时参数设置为无限等待。这样,在获得异常内核或者主内核触发的核间共享主内核发送的信号量后,可以在第一时间挂起。
在一个实施例中,可以通过触发核间中断挂起内核。
本实施例方法基于多核处理器提供的核间中断机制。处理器在执行程序的过程中,当出现异常情况或特殊请求时,处理器停止现当前程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回当前程序的间断处,这就是“中断”。中断是现代计算机能有效合理地发挥效能和提高效率的一个十分重要的功能。
多核处理器提供四种不同类型的执行线程用于中断:硬件中断,软件中断、任务和后台线程。每一类线程又具有不同的执行、抢先和悬挂特性。
硬件中断是从外部影响应用程序进行的一种方式,典型的硬件中断是由片上外围器件或者外部设备引起的。中断触发后,处理器将转向相应的中断向量表。中断处理的完成一般需要两个程序:一个是设置各种中断寄存器的程序,一般在主程序中完成;另一个是中断服务子程序ISR,一般用于响应中断。
本实例可以通过硬件中断的方式来实现多核同步挂起:首先,多核处理器预先设置一个核间硬件中断。一个实施例中,开启并使用了内存保护机制的多核处理器,其任一个内核可以自检到本核异常,从而发生异常的内核检测到自身异常后,可以在自行挂起之前,触发该核间中断,通知异常内核以外其他内核,其他内核在中断服务程序中,执行系统挂起操作,实现同步挂起。另一个实施例中,主内核在检测到任意一个内核异常后,触发核间中断,通知主内核以外其他内核,其他内核在中断服务程序中,执行系统挂起操作,实现同步挂起。
软件中断的优先级低于硬件中断,但高于任务和后台线程,它必须等到所有未结束的硬件中断都执行完才会开始执行。软件中断是通过调用DSP/BIOS的API函数触发的,它必须执行到完成。软件中断可以通过调用软件中断函数来触发,一种触发方式是用软件中断指令(Software Interrupt,SWI)的API(Application Programming Interface)函数通过对SWI对象的存储空间进行操作来启动。每个SWI对象都有一个存储空间例如32bit的邮箱,它可以作为软件中断函数里的一个可修改的值,用来决定是否触发一个软件中断。
本实例也可以通过软件中断的方式来实现多核同步挂起:首先,多核处理器预先设置一个软件中断向量;一个实施例中,开启并使用了内存保护机制的多核处理器,其任一个内核可以自检到本核异常,从而发生异常的内核检测到自身异常后,可以在自行挂起之前,触发该核间中断,异常内核以外其他内核在中断服务程序中,执行系统挂起操作,实现同步挂起。另一个实施例中,主内核在检测到任意一个内核异常后,触发软件核间中断,主内核以外其他内核在中断服务程序中,执行系统挂起操作,实现同步挂起。
本实施例中,还可以通过其它中断方式来实现多核同步挂起。需要说明的是,本实施例需要多核处理器提供核间中断资源共享。
在上述若干个实施例基础上,异常内核同步挂起异常内核以外其它内核之后自行挂起,或者主内核在同步挂起主内核以外其它内核后自行挂起。
本发明实施例提供了基于内存保护机制、核间共享信号量机制和核间中断机制等多种在异常发生时可以使多个内核同步挂起的方法,以保留异常发生时的多核现场。从而,任何提供了上述三种机制中的一种的数字信号处理器,都可以采用本发明实施例方法同步挂起多个内核,来定位引发异常的内核,对挂起的原因进行分析。
请参考图2,本实施例提供一种多核处理器,包括:
检测单元201,用于检测内核的运行状态。
处理单元202,用于当一个内核被检测到出现异常后,,同步挂起所有内核。
在一个实施例中,检测单元201包括分设于各个内核中的子检测单元。各个内核可以通过所设的子检测单元检测自身是否出现异常,各个内核可以挂起所有内核。
在另一个实施例中,检测单元201设于主内核中,用于检测所有内核的运行状态。
在一个实施例中,处理单元202,具体用于通过同步改写该处理单元所在内核以外其它内核的被保护存储地址同步挂其它内核。
在一个实施例中,处理单元202,具体用于通过触发核间共享信号量同步挂起该处理单元所在内核以外其它内核。
在一个实施例中,处理单元202,具体用于通过触发核间中断同步挂起该处理单元所在内核以外其它内核。
本实施例的多核处理器,其处理单元可以基于内存保护机制、核间共享信号量机制和核间中断机制等多种方式,可以在异常发生时使所有内核同步挂起,以保留异常发生时的多核现场及完整的信息,从而可以定位引发异常的内核,可以对挂起的原因进行分析。
以上对本发明实施例所提供的多核处理器故障处理方法及多核处理器进行了详细介绍,本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想不应理解为对本发明的限制。
Claims (13)
1.一种多核处理器故障处理方法,其特征在于,包括:
各个内核检测自身的运行状态,或者,
确定一个内核作为主内核,所述主内核检测其它内核的运行状态;
当一个内核被检测到出现异常后,同步挂起所有内核。
2.根据权利要求1所述的方法,其特征在于,所述同步挂起所有内核包括:
异常内核通过同步改写异常内核以外其它内核的被保护存储地址同步挂异常内核以外其它内核;或者
所述主内核通过同步改写主内核以外其它内核的被保护存储地址同步挂主内核以外其它内核。
3.根据权利要求1所述的方法,其特征在于,所述同步挂起所有内核包括:
异常内核通过触发核间共享信号量同步挂起异常内核以外其它内核;或者
所述主内核通过触发核间共享信号量同步挂起主内核以外其它内核。
4.根据权利要求1所述的方法,其特征在于,所述同步挂起所有内核包括:
异常内核通过触发核间中断同步挂起异常内核以外其它内核;或者
所述主内核通过触发核间中断同步挂起主内核以外其它内核。
5.根据权利要求2、3或4所述的方法,其特征在于,异常内核同步挂起异常内核以外其它内核之后还包括:异常内核自行挂起。
6.根据权利要求2、3或4所述的方法,其特征在于,主内核同步挂起主内核以外其它内核之后还包括:主内核自行挂起。
7.根据权利要求1所述的方法,其特征在于,所述主内核检测其它内核的运行状态具体包括:所述主内核按照预设的周期检测其它内核的运行状态。
8.一种多核处理器,其特征在于,包括:
检测单元,用于检测内核的运行状态;
处理单元,用于当一个内核被检测到出现异常后,同步挂起所有内核。
9.根据权利要求8所述的多核处理器,其特征在于:
所述检测单元包括分设于各个内核中的子检测单元。
10.根据权利要求8所述的多核处理器,其特征在于:
所述检测单元设于主内核中。
11.根据权利要求8所述的多核处理器,其特征在于:
所述处理单元,具体用于通过同步改写该处理单元所在内核以外其它内核的被保护存储地址同步挂其它内核。
12.根据权利要求8所述的多核处理器,其特征在于:
所述处理单元,具体用于通过触发核间共享信号量同步挂起该处理单元所在内核以外其它内核。
13.根据权利要求8所述的多核处理器,其特征在于:
所述处理单元,具体用于通过触发核间中断同步挂起该处理单元所在内核以外其它内核。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010619927 CN102043690A (zh) | 2010-12-31 | 2010-12-31 | 多核处理器故障处理方法及多核处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010619927 CN102043690A (zh) | 2010-12-31 | 2010-12-31 | 多核处理器故障处理方法及多核处理器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102043690A true CN102043690A (zh) | 2011-05-04 |
Family
ID=43909843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010619927 Pending CN102043690A (zh) | 2010-12-31 | 2010-12-31 | 多核处理器故障处理方法及多核处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102043690A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107111886A (zh) * | 2014-09-23 | 2017-08-29 | 三星电子株式会社 | 用于处理医学图像的装置及其处理医学图像的方法 |
CN110928719A (zh) * | 2019-11-19 | 2020-03-27 | 深圳忆联信息系统有限公司 | Ssd低功耗模式异常处理方法、装置、计算机设备及存储介质 |
CN112216333A (zh) * | 2020-09-30 | 2021-01-12 | 深圳市宏旺微电子有限公司 | 芯片测试方法及装置 |
CN114115025A (zh) * | 2021-11-24 | 2022-03-01 | 国汽智控(北京)科技有限公司 | 基于自动驾驶系统的故障信息的保存方法、装置和设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070157011A1 (en) * | 2005-12-30 | 2007-07-05 | Intel Corporation | Fault resilient boot in multi-processor systems |
CN101178679A (zh) * | 2007-12-14 | 2008-05-14 | 华为技术有限公司 | 多核系统中内存核查的方法和系统 |
CN101714108A (zh) * | 2008-10-03 | 2010-05-26 | 富士通株式会社 | 同步控制设备、信息处理设备以及同步管理方法 |
-
2010
- 2010-12-31 CN CN 201010619927 patent/CN102043690A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070157011A1 (en) * | 2005-12-30 | 2007-07-05 | Intel Corporation | Fault resilient boot in multi-processor systems |
CN101178679A (zh) * | 2007-12-14 | 2008-05-14 | 华为技术有限公司 | 多核系统中内存核查的方法和系统 |
CN101714108A (zh) * | 2008-10-03 | 2010-05-26 | 富士通株式会社 | 同步控制设备、信息处理设备以及同步管理方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107111886A (zh) * | 2014-09-23 | 2017-08-29 | 三星电子株式会社 | 用于处理医学图像的装置及其处理医学图像的方法 |
CN110928719A (zh) * | 2019-11-19 | 2020-03-27 | 深圳忆联信息系统有限公司 | Ssd低功耗模式异常处理方法、装置、计算机设备及存储介质 |
CN112216333A (zh) * | 2020-09-30 | 2021-01-12 | 深圳市宏旺微电子有限公司 | 芯片测试方法及装置 |
CN112216333B (zh) * | 2020-09-30 | 2024-02-06 | 深圳市宏旺微电子有限公司 | 芯片测试方法及装置 |
CN114115025A (zh) * | 2021-11-24 | 2022-03-01 | 国汽智控(北京)科技有限公司 | 基于自动驾驶系统的故障信息的保存方法、装置和设备 |
CN114115025B (zh) * | 2021-11-24 | 2024-05-28 | 国汽智控(北京)科技有限公司 | 基于自动驾驶系统的故障信息的保存方法、装置和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2787444B1 (en) | Central processing unit, information processing apparatus, and intra-virtual-core register value acquisition method | |
JP5888629B2 (ja) | マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするための方法、装置、およびシステム | |
US9032254B2 (en) | Real time monitoring of computer for determining speed and energy consumption of various processes | |
US8935698B2 (en) | Management of migrating threads within a computing environment to transform multiple threading mode processors to single thread mode processors | |
US9448864B2 (en) | Method and apparatus for processing message between processors | |
US9460032B2 (en) | Apparatus and method for processing an interrupt | |
KR102024283B1 (ko) | 다중스레드 컴퓨팅 | |
EP2790106A2 (en) | Performance measurement unit, processor core including the same and process profiling method | |
AU2014311461A1 (en) | CPU scheduler configured to support latency sensitive virtual machines | |
US9552221B1 (en) | Monitoring application execution using probe and profiling modules to collect timing and dependency information | |
CN111324432B (zh) | 处理器调度方法、装置、服务器及存储介质 | |
WO2017070861A1 (zh) | 一种中断响应方法、装置及基站 | |
US11126575B1 (en) | Interrupt recovery management | |
KR20130031860A (ko) | 시스템 테스트 방법 | |
CN115269196A (zh) | 线程池动态创建方法、装置、设备及存储介质 | |
KR20170131366A (ko) | 공유 리소스 액세스 제어 방법 및 장치 | |
US20170212852A1 (en) | Method and accelerator unit for interrupt handling | |
CN102043690A (zh) | 多核处理器故障处理方法及多核处理器 | |
US11032159B2 (en) | Apparatus for preformance analysis of virtual network functions in network functional virtualization platform and method thereof | |
US20120317403A1 (en) | Multi-core processor system, computer product, and interrupt method | |
US7631125B2 (en) | Dynamically migrating channels | |
US11061840B2 (en) | Managing network interface controller-generated interrupts | |
EP2395430B1 (en) | Virtual computer allocation method, allocation program, and information processing device having a virtual computer environment | |
CN110837415A (zh) | 一种基于risc-v多核处理器的线程调度方法和装置 | |
US10929164B2 (en) | Enhancing ability of a hypervisor to detect an instruction that causes execution to transition from a virtual machine to the hypervisor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110504 |