CN114237954A - 非对称多核amp分时循环工作方法 - Google Patents

非对称多核amp分时循环工作方法 Download PDF

Info

Publication number
CN114237954A
CN114237954A CN202111539445.3A CN202111539445A CN114237954A CN 114237954 A CN114237954 A CN 114237954A CN 202111539445 A CN202111539445 A CN 202111539445A CN 114237954 A CN114237954 A CN 114237954A
Authority
CN
China
Prior art keywords
core
processor
window
interrupt
working
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
Application number
CN202111539445.3A
Other languages
English (en)
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.)
Shandong Institute of Space Electronic Technology
Original Assignee
Shandong Institute of Space Electronic Technology
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 Shandong Institute of Space Electronic Technology filed Critical Shandong Institute of Space Electronic Technology
Priority to CN202111539445.3A priority Critical patent/CN114237954A/zh
Publication of CN114237954A publication Critical patent/CN114237954A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

本发明涉及嵌入式多核计算机系统技术领域,提供非对称多核AMP分时循环工作方法,其包括产生每个处理器核的工作时间窗口、不同处理器核之间的交接时间窗口,并设定每个工作时间窗口、交接时间窗口的最大运行时间的过程;在每个工作时间窗口内,设定处理器只有一个核处于工作状态的过程;并设置看门狗程序,由当前处于工作状态的处理器核完成喂狗程序的过程。本发明设置在同一时间段只设置一个处理器核工作,可减少为处理同时访问资源造成冲突导致的开销;处理器多核按照预设顺序逐一工作,可确保多核功能的执行顺序,使多核处理器行为表现出良好的可确定性;本发明只要当前处理器核可正常工作,系统就可以维持正常工作状态,提高了系统可用性。

Description

非对称多核AMP分时循环工作方法
技术领域
本发明涉及嵌入式多核计算机系统技术领域,具体为非对称多核AMP分时循环工作方法。
背景技术
多核处理器一般工作在对称(Symmetry MultiProcessing,SMP)模式或AMP模式下。SMP模式是在处理器中由一个操作系统或一个应用程序统一管理所有处理器核,具有统一的内存空间。AMP模式则是处理器中的每个处理器核都拥有各自独立的内存空间,各自独立运行一个操作系统或应用程序,处理器核之间仅有少量信息交互。在AMP模式下,处理器各核运行的操作系统或应用程序可能是相同的,也可能是不同的,即各核的功能行为可能是相同的,也可能是不同的。本发明仅涉及AMP模式。
多核处理器在启动时通常由一个核负责执行系统初始化工作,该核称为主核,其它核称为从核。主核完成初始化工作后,负责对外数据通信,并根据任务需要唤醒其它从核。从核根据预先的程序设定独立行使各自的功能。由于多个处理器核是共享处理器内部的系统总线、存储器、I/O接口等资源的,为避免多个处理器核同时对共享资源进行读写产生冲突,造成数据错误或异常操作,需要对多核共享资源的访问进行同步处理,如加锁处理,使得处理器在同一时刻只能有一个处理器核获取并控制共享资源,其它核则等待共享资源的释放。
但处理器核通过加锁获得资源的过程具有一定的不确定性,即抢到锁的处理器核的顺序受到启动时机不同、各核功能相异运行时间长短不同、外部中断等多种因素的影响具有一定的随机性,这使得处理器各核在表现其功能行为的顺序上也带有一定的随机性。在对各核的功能行为之间有严格顺序要求的领域,或对功能行为顺序的确定性具有较强要求的领域,如航天器控制,处理器行为顺序的不确定性会给系统的安全性、可靠性等带来不利影响。
在处理器架构中通常包含一个看门狗的硬件组件计数器,该计数器设置为某个值,然后递减至零。软件有责任经常将计数设置为其原始值,以确保计数永远不会达到零。如果确实达到零,则认为软件已以某种方式发生故障,并且CPU已复位。当主核因恶劣环境的影响发生程序跑飞,或功能中断故障时,无论其它几个从核是否正常,整个处理器会因不能及时喂狗导致系统复位。
发明内容
本发明的目的在于提供非对称多核AMP分时循环工作方法,以解决上述背景技术中提出的问题。
非对称多核AMP分时循环工作方法,其包括:
步骤一:所述步骤一包括设定处理器各核按顺序被唤醒并执行各自程序的过程;
步骤二:所述步骤二包括利用多核处理器的通用计数器产生每个处理器核的工作时间窗口、不同处理器核之间的交接时间窗口,并设定每个工作时间窗口、交接时间窗口的最大运行时间的过程;
步骤三:所述步骤三包括初始化及实时更新处理器核的健康标志flag的过程;
步骤四:所述步骤四包括在每个工作时间窗口内,设定处理器只有一个核处于工作状态,其它核均处于挂起状态的过程,并设置看门狗程序,由当前处于工作状态的处理器核完成喂狗程序;且:
当窗口内处理器核的工作时间到达最大工作时间窗口时,当前处理器核自主进入挂起状态,并按规定顺序唤醒下一个处理器核;
如果在预设的交接时间窗口内没有完成下一个核的唤醒,则判断下一个核故障,当前处理器核按顺序去唤醒另一个处理器核,直到在预设的交接时间窗口内完成另一个处理器核的唤醒;
被唤醒的处理器核接管系统,执行其程序。
进一步,步骤二的具体步骤包括:
设定处理器核编号0,1,2,...,n,其中n为处理器中核的最大数量,编号为i的处理器核称为核i;
设定核i的工作时间窗口称为工作窗口i,设定工作窗口i的时间宽度;
设定核i的交接时间窗口称为交接窗口i,设定交接窗口i的时间宽度。
步骤四中,核i的执行过程如下:
S12.核i被唤醒,核i首先初始化处理器的通用计数器,然后启动计数器开始计数;
S13.核i运行自身功能程序;
S14.当通用计数器的计数值满足窗口i设定值时,触发中断A;
S15.核i响应中断A,并进入中断A的服务程序;
S16.确定是否还有可用核,如果还有,令(i+1)为下一个可用核的编号,若i已为可用核的最大编号,则令(i+1)为可用核最小编号,跳至步骤S6;如果已经没有可用核,则(i+1)为当前核自己,跳至步骤S1;
S17.核i去唤醒核(i+1);
S18.核i产生中断B,并通过核间中断机制传递给核(i+1);
S19.查询标志flag,若:
S8.1在交接窗口内标志被修改,认为核(i+1)健康,跳至步骤S9;
S8.2在交接窗口内标志未被修改,判断核(i+1)故障,修改处理器核的健康记录表,跳至步骤S5;
S20.核i初始化并启动计数器;
S21.核i再次唤醒核(i+1),由核(i+1)控制系统;
S22.核i自行进入挂起状态等待再次被唤醒。
进一步,核i+1的执行过程如下:
P5.对应S6,核i去唤醒核(i+1),核(i+1)被唤醒;如果不是第一次被唤醒,核(i+1)从挂起被唤醒后自动退出前一次的中断A服务程序;如果由于各种原因核(i+1)未被唤醒,则核(i+1)不能完成S3中对标记flag的修改,根据S8处理该情况;
P6.对应S7,核(i+1)响应核i传递过来的中断B,并进入中断B的服务程序;
P7.对应S8,在中断B的服务程序中修改标志flag;
P8.核(i+1)自行进入挂起状态,等待被再次唤醒。
与现有技术相比,本发明的有益效果是:
第一、本发明设置在同一时间段只设置一个处理器核工作,可减少为处理同时访问资源造成冲突导致的开销;
第二、处理器多核按照预设顺序逐一工作,可确保多核功能的执行顺序,使多核处理器行为表现出良好的可确定性;
第三、由当前处理器核完成喂狗,即使有n-1个核故障,只要当前处理器核可正常工作,系统就可以维持正常工作状态,提高了系统可用性。
附图说明
图1为4核处理器AMP模式下结构示意图;
图2为分时循环工作流程图;
图3为正常状态下分时循环工作示意图;
图4为图1中发生一个核故障时其后的分时循环工作示意图;
图5为图1中有两个核故障时其后的分时循环工作示意图;
图6为图1中有三个核故障时其后的分时循环工作示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1-6,非对称多核AMP分时循环工作方法,步骤一:设定处理器各核按顺序执行各自程序;
步骤二:利用多核处理器的通用计数器产生每个处理器核的工作时间窗口、不同处理器核之间的交接时间窗口,并设定每个工作时间窗口、交接时间窗口的最大运行时间;
步骤三:初始化及实时更新处理器核的健康标志flag;
步骤四:在每个工作时间窗口内,设定处理器只有一个核处于工作状态,其它核均处于挂起状态的过程,并设置看门狗程序,由当前处于工作状态的处理器核完成喂狗程序;且:
当窗口内处理器核的工作时间到达最大工作时间窗口时,当前处理器核自主进入挂起状态,并按规定顺序唤醒下一个处理器核;
如果在预设的交接时间窗口内没有完成下一个核的唤醒,则判断下一个核故障,当前处理器核按顺序去唤醒另一个处理器核,直到在预设的交接时间窗口内完成另一个处理器核的唤醒;
被唤醒的处理器核接管系统,执行其程序。
步骤二的具体步骤包括:
设定处理器核编号0,1,2,...,n,其中n为处理器中核的最大数量,编号为i的处理器核称为核i;
设定核i的工作时间窗口称为工作窗口i,设定工作窗口i的时间宽度;
设定核i的交接时间窗口称为交接窗口i,设定交接窗口i的时间宽度。
步骤四中,核i的执行过程如下:
S23.核i被唤醒,核i首先初始化处理器的通用计数器,然后启动计数器开始计数;
S24.核i运行自身功能程序;
S25.当通用计数器的计数值满足窗口i设定值时,触发中断A;
S26.核i响应中断A,并进入中断A的服务程序;
S27.确定是否还有可用核,如果还有,令(i+1)为下一个可用核的编号,若i已为可用核的最大编号,则令(i+1)为可用核最小编号,跳至步骤S6;如果已经没有可用核,则(i+1)为当前核自己,跳至步骤S1;
S28.核i去唤醒核(i+1);
S29.核i产生中断B,并通过核间中断机制传递给核(i+1);
S30.查询标志flag,若:
S8.1在交接窗口内标志被修改,认为核(i+1)健康,跳至步骤S9;
S8.2在交接窗口内标志未被修改,判断核(i+1)故障,修改处理器核的健康记录表,跳至步骤S5;
S31.核i初始化并启动计数器;
S32.核i再次唤醒核(i+1),由核(i+1)控制系统;
S33.核i自行进入挂起状态等待再次被唤醒。
核i+1的执行过程如下:
P9.对应S6,核i去唤醒核(i+1),核(i+1)被唤醒;如果不是第一次被唤醒,核(i+1)从挂起被唤醒后自动退出前一次的中断A服务程序;如果由于各种原因核(i+1)未被唤醒,则核(i+1)不能完成S3中对标记flag的修改,根据S8处理该情况;
P10.对应S7,核(i+1)响应核i传递过来的中断B,并进入中断B的服务程序;
P11.对应S8,在中断B的服务程序中修改标志flag;
核(i+1)自行进入挂起状态,等待被再次唤醒。
实施例1:
以Leon3/4处理器为例,说明分时循环工作流程的具体实施。其中,处理器设定为4核;通用计数器使用中断9;核间中断使用中断8。
核0具体实施过程:
处理器启动后,只有核0处于工作状态,其它核自动均处于挂起(power-down)状态。
(1)进入核0,完成中断8和中断9的挂载,并清除中断屏蔽。核0初始化处理器的通用计数器,首先将计数器控制寄存器置全0,然后将计数器载入比例寄存器置全0,在计数器载入值寄存器中置工作时间长度,如0x00F00000,最后在计数器控制寄存器中写入0x0000000F来启动计数器开始计数。计数器将从0x00F00000开始递减,至0x0时产生中断。
(2)核0运行自身功能程序,如进行维度为32*32的矩阵乘法。
(3)当通用计数器的计数值从0x00F00000递减至0x0,满足工作时间窗口设定长度值时,触发中断9。
(4)核0响应中断9,并进入中断9的服务程序。
(5)在中断服务程序中,确定是否还有可用核。如果还有,令(i+1)为下一个可用核的编号,如核1,跳转步骤(6);如果除了自身外已经没有其余可用核,则下一个可用核为当前核自己,即核0,跳转步骤(1)。
(6)核0通过汇编语句往多核状态寄存器MSR的Status域对应核1的第2位写1,去唤醒核1。
(7)随后,核0通过往下一个可用核,如核1,对应的中断强制寄存器的相应位置1,强制在核1产生中断8。
(8)核0查询标志flag,这里分两种情况:
(8.1)在交接窗口内标志flag被修改,认为核1健康,跳至步骤(9)。
(8.2)在交接窗口内标志flag未被修改,判断核1发生故障,修改处理器核的健康记录表,跳至步骤(5)。
(9)核0再次初始化并启动计数器。
(10)核0再次唤醒核1,操作如步骤(6)。
(11)核0通过汇编语句wrasr向寄存器%asr19写全0,使得核0自行进入挂起(power-down)状态。
核1具体实施过程:
(1)核1被唤醒(对应核0的步骤(6))。如果核1不是第一次被唤醒,此时从挂起状态被唤醒的核1会自动退出前一次中断9的服务程序。
(2)核1响应核0传递过来的中断8,并进入本地中断8的服务程序(对应核0的步骤(7))。
(3)在中断8的服务程序中修改标志flag(对应核0的步骤(8))。
(4)核1通过汇编语句wrasr向寄存器%asr19写全0,使得核1自行进入挂起(power-down)状态。
(5)核1被核0再次唤醒(对应核0的步骤(10))。
(6)本步骤与原来核0的步骤(1)相同。此时核0与核1完成了交接,核1已转变成原来核0的角色,控制了计算机系统。
(7)核1的后续步骤与原来核0的步骤(2)及其后续步骤相同。
以中断方式触发当前处理器核执行喂狗程序,该中断优先级高于其他中断,确保只要有一个核正常,系统可持续喂狗,维持工作。
对于核1,如果由于各种原因未被唤醒,则核1不能完成步骤(3)对标记flag的修改。对应的,核0在步骤(8)中有不同分支对这种情况进行处理。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (4)

1.非对称多核AMP分时循环工作方法,其特征在于,其包括:
步骤一:所述步骤一包括设定处理器各核按顺序被唤醒并执行各自程序的过程;
步骤二:所述步骤二包括利用多核处理器的通用计数器产生每个处理器核的工作时间窗口、不同处理器核之间的交接时间窗口,并设定每个工作时间窗口、交接时间窗口的最大运行时间的过程;
步骤三:所述步骤三包括初始化及实时更新处理器核的健康标志flag的过程;
步骤四:所述步骤四包括在每个工作时间窗口内,设定处理器只有一个核处于工作状态,其它核均处于挂起状态的过程;并设置看门狗程序,由当前处于工作状态的处理器核完成喂狗程序;且:
当窗口内处理器核的工作时间到达最大工作时间窗口时,当前处理器核自主进入挂起状态,并按规定顺序唤醒下一个处理器核;
如果在预设的交接时间窗口内没有完成下一个核的唤醒,则判断下一个核故障,当前处理器核按顺序去唤醒另一个处理器核,直到在预设的交接时间窗口内完成另一个处理器核的唤醒;
被唤醒的处理器核接管系统,执行其程序。
2.根据权利要求1所述的非对称多核AMP分时循环工作方法,其特征在于:步骤二的具体步骤包括:
设定处理器核编号0,1,2,...,n,其中n为处理器中核的最大数量,编号为i的处理器核称为核i;
设定核i的工作时间窗口称为工作窗口i,设定工作窗口i的时间宽度;
设定核i的交接时间窗口称为交接窗口i,设定交接窗口i的时间宽度。
3.根据权利要求2所述的非对称多核AMP分时循环工作方法,其特征在于:步骤四中,核i的执行过程如下:
S1.核i被唤醒,核i首先初始化处理器的通用计数器,然后启动计数器开始计数;
S2.核i运行自身功能程序;
S3.当通用计数器的计数值满足窗口i设定值时,触发中断A;
S4.核i响应中断A,并进入中断A的服务程序;
S5.确定是否还有可用核,如果还有,令(i+1)为下一个可用核的编号,若i已为可用核的最大编号,则令(i+1)为可用核最小编号,跳至步骤S6;如果已经没有可用核,则(i+1)为当前核自己,跳至步骤S1;
S6.核i去唤醒核(i+1);
S7.核i产生中断B,并通过核间中断机制传递给核(i+1);
S8.查询标志flag,若:
S8.1在交接窗口内标志被修改,认为核(i+1)健康,跳至步骤S9;
S8.2在交接窗口内标志未被修改,判断核(i+1)故障,修改处理器核的健康记录表,跳至步骤S5;
S9.核i初始化并启动计数器;
S10.核i再次唤醒核(i+1),由核(i+1)控制系统;
S11.核i自行进入挂起状态等待再次被唤醒。
4.根据权利要求3所述的非对称多核AMP分时循环工作方法,其特征在于:核i+1的执行过程如下:
P1.对应S6,核i去唤醒核(i+1),核(i+1)被唤醒;如果不是第一次被唤醒,核(i+1)从挂起被唤醒后自动退出前一次的中断A服务程序;如果由于各种原因核(i+1)未被唤醒,则核(i+1)不能完成S3中对标记flag的修改,根据S8处理该情况;
P2.对应S7,核(i+1)响应核i传递过来的中断B,并进入中断B的服务程序;
P3.对应S8,在中断B的服务程序中修改标志flag;
P4.核(i+1)自行进入挂起状态,等待被再次唤醒。
CN202111539445.3A 2021-12-15 2021-12-15 非对称多核amp分时循环工作方法 Pending CN114237954A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111539445.3A CN114237954A (zh) 2021-12-15 2021-12-15 非对称多核amp分时循环工作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111539445.3A CN114237954A (zh) 2021-12-15 2021-12-15 非对称多核amp分时循环工作方法

Publications (1)

Publication Number Publication Date
CN114237954A true CN114237954A (zh) 2022-03-25

Family

ID=80756836

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111539445.3A Pending CN114237954A (zh) 2021-12-15 2021-12-15 非对称多核amp分时循环工作方法

Country Status (1)

Country Link
CN (1) CN114237954A (zh)

Similar Documents

Publication Publication Date Title
US4663709A (en) Control system for tightly-coupled multiprocessing units
US8176489B2 (en) Use of rollback RCU with read-side modifications to RCU-protected data structures
EP0425320A2 (en) Multiprocessor system and process synchronisation method therefor
EP2182438A1 (en) Virtual machine control method and virtual machine system
US7386864B2 (en) Automatic serialization for event driven multi-threaded programs in an object structured system
US9378069B2 (en) Lock spin wait operation for multi-threaded applications in a multi-core computing environment
US10942824B2 (en) Programming model and framework for providing resilient parallel tasks
RU2437144C2 (ru) Способ устранения исключительной ситуации в одном из ядер многоядерной системы
EP2972852B1 (en) System management interrupt handling for multi-core processors
US20080126650A1 (en) Methods and apparatus for parallel processing in system management mode
US20140026143A1 (en) Exclusive access control method and computer product
US6182238B1 (en) Fault tolerant task dispatching
US7043729B2 (en) Reducing interrupt latency while polling
US20220035664A1 (en) Reverse restartable sequences for lock polling scalability
JPH1021094A (ja) リアルタイム制御方式
CN112540871B (zh) 通用寄存器保留恢复的实现方法
CN114237954A (zh) 非对称多核amp分时循环工作方法
US11169857B2 (en) System and method for reserving a portion of CPU time for host execution
CN103077081A (zh) 资源调整的方法及装置
CN109313581B (zh) 用于多核处理器的同步操作的方法
US8291419B2 (en) Fault tolerant system for execution of parallel jobs
CN114064128B (zh) 内核重启方法
US9223637B1 (en) Method and apparatus to advise spin and yield decisions
US20230305872A1 (en) Efficient central processing unit overcommit for virtual machines with symmetric multi-processing
KR20190077235A (ko) 반도체 장치

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