一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于核同步的调试跟踪流的制作方法

2022-06-05 04:31:58 来源:中国专利 TAG:


1.本公开内容一般涉及并行使用多个处理核的计算系统。更具体地,本公开内容涉及经由包括跟踪单元的调试工具来检测和处理多个核之间的去同步,以验证各个核是否彼此步调一致,并且当核不同步时采取补救措施。


背景技术:

2.各种系统使用多个处理器来彼此并行地处理指令,以向系统提供额外的确定性和弹性。例如,在电离环境中使用的航天器、飞机和其他设备受到可能导致单事件翻转(seu)的环境条件的影响。这些设备通常在其计算系统中使用三重模式冗余(tmr),以便三个处理器并行地执行相同的任务。使用tmr的系统使用多数判决(即,其中三个处理器中的至少两个产生相同的结果)作为输出。在未达成完全一致的情况下(即,三个处理器中的至少一个产生独特结果的情况下),使用tmr的系统重新同步不一致的处理器或者重置所有三个处理器,以确保使用全套处理器执行下一次计算。重置过程可能在关键时刻降低系统可用性,并且包括多个处理器以及整个处理系统的tmr表决逻辑的开销增加了系统的复杂性和尺寸。


技术实现要素:

3.本公开在一个方面提供了一种方法,该方法包括:监视冗余操作系统的多个调试跟踪数据流,该冗余操作系统包括并行地执行任务的对应的多个核;响应于检测到多个调试跟踪数据流中的一个调试跟踪数据流相对于多个调试跟踪数据流中的其他调试跟踪数据流的状态差异:将与所述一个调试跟踪数据流相关联的给定核标记为受影响的核;以及重新启动受影响的核。
4.在一个方面,结合以上或者以下的任何示例方法,对应的多个核由两个活动核组成,包括受影响的核和第二核,该方法还包括,响应于检测到状态差异:将第二核标记为第二受影响的核;以及与受影响的核同时重置第二核。
5.在一个方面,结合以上或者以下的任何示例方法,对应的多个核由三个活动核组成,包括受影响的核、第一未受影响核和第二未受影响核,该方法还包括,响应于检测到状态差异:停止受影响的核;并且监视以一致冗余模式并行地执行任务的第一未受影响核和第二未受影响核;并且其中重新启动受影响的核包括,响应于检测到安全重新启动时间:用来自第一未受影响核的寄存器数据加载受影响的核;以及重新初始化受影响的核。
6.在一个方面,结合以上或者以下的任何示例方法,对应的多个核包括多于三个的活动核,包括受影响的核、第一未受影响核、第二未受影响核和第三未受影响核;响应于检测到状态差异:停止受影响的核;以及监视以多数模式并行地执行任务的第一未受影响核、第二未受影响核和第三未受影响核;并且其中重新启动受影响的核包括,响应于检测到安全重新启动时间:用来自第一未受影响核的寄存器数据重新加载受影响的核;以及重新初始化受影响的核。
7.在一个方面,结合以上或者以下的任何示例方法,对应的多个核被包括在具有监
视器的共享片上系统上,其中监视器是以下之一:抗辐射处理器;硬件定义的状态机;和维护处理器。
8.在一个方面,结合以上或者以下的任何示例方法,对应的多个核中的至少一个核被包括在与对应的多个核中的其他核分离的集成电路上。
9.本公开在一个方面提供了一种系统,该系统包括:多个核,其被配置为并行地执行任务的对应的多个实例;以及监视器,其被配置为:从多个核接收调试跟踪数据流;以及基于与受影响的核和多个核中的其他核相关联的调试跟踪数据流之间的状态差异来识别多个核中受影响的核。
10.在一个方面,结合以上或者以下的任何示例系统,多个核和监视器被布置在单个集成电路上。
11.在一个方面,结合以上或者以下的任何示例系统,监视器被布置在第一集成电路上,并且多个核中的至少一个核被布置在第二集成电路上。
12.在一个方面,结合以上或者以下的任何示例系统,监视器还被配置为:从执行任务的多个核中移除受影响的核,直到安全重新启动时间;以及响应于达到安全重新启动时间,重新启动受影响的核。
13.在一个方面,结合以上或者以下的任何示例系统,当移除受影响的核之后多个核包括至少两个核时,监视器还被配置为:使用来自与至少两个核中的一个未受影响的核相关联的未受影响的寄存器的数据来重新加载与受影响核相关联的受影响的寄存器;重新初始化受影响的核;以及将受影响的核返回给多个核。
14.在一个方面,结合以上或者以下的任何示例系统,基于由系统控制的设备的安全简档来确定安全重新启动时间。
15.在一个方面,结合以上或者以下的任何示例系统,当多个核由两个核组成时,监视器还被配置为:与受影响的核同时重置第二核。
16.在一个方面,结合以上或者以下的任何示例系统,调试跟踪数据流经由以下各项中的至少一项来接收:指令跟踪;数据跟踪和系统跟踪。
17.在一个方面,本公开提供了一种计算机可读存储设备,该计算机可读存储设备包括指令,该指令在由处理器执行时执行包括以下的操作:监视冗余操作系统的多个调试跟踪数据流,该冗余操作系统包括并行地执行任务的对应的多个核;响应于检测到多个调试跟踪数据流中的一个调试跟踪数据流相对于多个调试跟踪数据流中的其他调试跟踪数据流的状态差异:将与所述一个调试跟踪数据流相关联的核标记为受影响的核;以及重新启动受影响的核。
18.在一个方面,结合以上或者以下的任何示例计算机可读存储设备,对应的多个核由两个活动核组成,包括受影响的核和第二核,所述操作还包括,响应于检测到状态差异:将第二核标记为第二受影响的核;以及与受影响的核同时重置第二核。
19.在一个方面,结合以上或者以下的任何示例计算机可读存储设备,对应的多个核由三个活动核组成,包括受影响核、第一未受影响核和第二未受影响核,所述操作还包括,响应于检测到状态差异:停止受影响的核;以及监视以一致冗余模式并行地执行任务的第一未受影响核和第二未受影响核;并且其中重新启动受影响的核包括,响应于检测到安全重新启动时间:用来自第一未受影响核的寄存器数据加载受影响的核;以及重新初始化受
影响的核。
20.在一个方面,结合以上或者以下的任何示例计算机可读存储设备,对应的多个核包括多于三个的活动核,包括受影响的核、第一未受影响核、第二未受影响核和第三未受影响核,所述操作还包括,响应于检测到状态差异:停止受影响的核;以及监视以多数模式并行地执行任务的第一未受影响核、第二未受影响核和第三未受影响核;并且其中重新启动受影响的核包括,响应于检测到安全重新启动时间:用来自第一未受影响核的寄存器数据加载受影响的核;以及重新初始化受影响的核。
21.在一个方面,结合以上或者以下的任何示例计算机可读存储设备,对应的多个核被包括在共享片上系统上,该片上系统具有被配置为监视多个调试跟踪数据流的监视器。
22.在一个方面,结合以上或者以下的任何示例计算机可读存储设备,对应的多个核中的至少一个核被包括在与对应的多个核中的其他核分离的集成电路上。
附图说明
23.为了能够详细理解上述特征,可以参考示例方面进行以上简要概述的更具体的描述,其中一些示例方面在附图中示出。
24.图1根据本公开的多个方面示出了卫星,其作为包括多核控制系统的设备的示例。
25.图2a-2c根据本公开的多个方面示出了多核控制系统的操作图。
26.图3是根据本公开的多个方面的使用调试跟踪流进行核同步的方法的流程图。
27.图4根据本公开的多个方面示出了计算设备,例如可以用作多核控制系统。
具体实施方式
28.本公开内容提供了多核处理器系统中的改进的核同步。本公开内容使用来自每个处理核(通常为多个核)的实时(或者接近实时)信息,该信息从每个处理核中的调试跟踪被监视。这些调试跟踪流通常被传输到芯片外以供外部调试器核查,但在本文中用于将一个核的输出与其它核(无论是芯片上还是芯片外)的输出进行比较,以检测这些核是否彼此同步。在各种实施例中,当发现核不同步时,系统继续利用同步核的缩减集合操作(例如,最初利用n个核操作,然后利用n-1个核操作,并且可能调整冗余模式),直到系统处于安全环境或者状态以执行核重置。附加地或替换地,使用来自锁步中的核的状态信息,使不同步的核与其他核重新锁步。因此,本公开内容减少了重新启动的核的数量,并且提高了非锁步核恢复在线的速度。
29.根据本公开的多个方面,图1示出了卫星110,其作为包括多核控制系统130的冗余操作系统100的示例。多核控制系统130使用若干处理器或者处理核(通常为多个核)来彼此并行地执行计算或者任务的若干实例,以便活动核之间的一致性被用于控制系统100,而不是单个核的输出。当核不处于锁步中时,例如,产生用于输出的非一致值时,产生不同于多数输出的(多个)核被称为失步/不同步或受影响,并且当受影响的核不再与其它核同步时,可以继续产生不同的值。多核控制系统130去激活、禁用或者以其他方式忽略受影响的核和由此产生的值,直到这些核经由重新启动事件被带回与其他核锁步。重新启动事件可以包括重置一个或者更多个核,或者可以包括用已知的良好数据加载一个或者更多个核,并且重新初始化受影响的核以在与未受影响的核相同的处理周期使用相同的输入。
30.本公开内容可以在使用多核控制系统130提供与seu相关的处理弹性的任何系统或者设备中实践,例如,航天器、飞机、x射线设备和其它设备,这些设备预计在太空、高海拔或者电离辐射可能改变处理器的位的状态的其他环境中使用。这些影响也发生在地面应用中,并且处理这些影响对于自动驾驶汽车等高可靠性应用至关重要。例如,所示卫星110被宇宙射线120撞击,宇宙射线120携带足够的能量以在卫星110的核中诱发seu(例如,将逻辑输出a改变为逻辑输出b,反之亦然)。
31.因为卫星110包括多核控制系统130,而不是单核控制系统,因此多个核串联操作以控制卫星110,使得引起一个核产生异常结果的seu不会导致在卫星110中的异常操作。例如,多核控制系统130可以包括n个核(其中n》1),其每个核并行地执行计算任务以便卫星110使用对于计算一致的值操作,而不是仅仅使用单个处理器的输出。因此,当宇宙射线120在多核控制系统130中诱发seu时,多核控制系统130识别出发生了seu并且采取适当的补救措施。这些措施包括停止受影响的核,使用缩减的核集合操作,重新启动受影响的核,及其组合。
32.多核控制系统130可以控制系统100的各种子系统,如图1所示卫星110的通信系统140、操纵系统150以及太阳能板管理系统160。取决于多核控制系统130在给定时间正在处理什么任务,离线(甚至短暂地)重置受seu影响的一个或者更多个处理器可以以不同的方式影响各种子系统,这进而又会影响系统100的操作安全。例如,当多核控制系统130联合通信系统140处理通信时,重置核可能会干扰到达或者来自卫星的通信,这可能需要在多核控制系统130离线时重传(或者请求重传)数据、丢失数据的保真度(例如,传输的间隙)等。在另一示例中,当多核控制系统130正在控制操纵系统150时,重置核可能扰乱卫星110的位置和运动,消耗有限的燃料来撤销不正确执行的操纵,错过操纵窗口,增加碰撞风险等。因此,多核控制系统130确定如何以及何时最好地处理受影响的核以减少少一个可用的核来处理设备的处理任务的影响并减少重新启动受影响的核所需的停机时间,从而改进系统100的正常运行时间.
33.多核控制系统130可以根据活动/未受影响的核的数量以及系统100是否处于重新启动的安全时间来执行各种重新启动事件。因此,不同的子系统可以具有不同的优先级以重新启动或者继续使用核的缩减集合进行处理。
34.例如,卫星110的操纵系统150可以被列为高优先级子系统,以便当多核控制系统130正在处理操纵系统150的指令或者任务并经历了seu时,重新启动事件被延迟到任务完成后。在对比示例中,卫星110的太阳能板管理系统160可以被列为低优先级子系统,以便当多核控制系统130正在处理太阳能板管理系统160的指令或者任务并经历了seu时,在任务完成前执行重新启动事件。在另一个示例中,通信系统140可以根据正在传输的数据被列为高优先级或者低优先级,从而在处理高优先级传输时延迟重新启动事件或者在处理低优先级传输时优先重新启动。
35.在一些方面,多核控制系统130基于核处理的指令中指示的标签来识别用于执行受影响的核的重新启动的安全时间。例如,标签可以指示子例程或函数(例如,任务中的中断)的结束,即,可以在不干扰系统100的操作的情况下在之后执行重启事件。在另一个例子中,标签可以指示给定子例程或函数预期在预定时间窗口内的后续动作,或者可以经受来自高优先级子系统的中断,并且因此在不潜在地干扰系统100的操作的情况下甚至不能在
期间或之后执行重新启动。
36.图2a-2c根据本公开的多个方面示出了多核控制系统130的操作图,例如图1中所描述的。在图2a-2c的每一个中,多个核210a-n(一般地或者统称为核210)通过相关联的调试跟踪数据流230a-n(一般地或者统称为调试跟踪数据或者调试跟踪数据流230)连接到监视器220。监视器220又经由相关联的重新启动路径240a-n(一般地或者统称为重新启动路径240)连接到核210的每一个,以在给定核210要被脱机、重置、重新初始化、使用来自另一个核210的数据重新加载及其组合时发出信号。核210代表各种处理设备,在一些方面,其可包含嵌入式精简指令集核(risc)的核或者外部设备。监视器220被选择为对seu具有弹性,并且可以包括各种防辐射处理器、硬件定义的状态机、维护处理器等,以监视和控制各种核210。
37.监视器220经由各种调试跟踪流230与每个核210通信,调试跟踪流230可以包括指令跟踪、数据跟踪、系统跟踪、地址同步跟踪(async)、指令同步跟踪(isync)及其组合。async和isync包括单独编码到跟踪数据流中的模式和数据,并且可以选择性地包括时间戳数据。
38.监视器220经由调试跟踪数据流230从核210接收数据输出,并且经由相关联的重新启动路径240(控制相关联的核210的停止和重新启动)向各种核210发送命令。在各个方面,核210和监视器220位于共享集成电路或者片上系统(soc)上,并且调试跟踪数据流230和重新启动路径240包括在该集成电路上定义的各种踪迹。在其他方面,一个或者多个核210被定义在与其他核210或者监视器220不同的集成电路上,并且调试跟踪数据流230和重新启动路径240包括不同集成电路之间的通信路径和总线。
39.在各个方面,监视器220可选地包括存储器250,连接的核210的状态被存储在此并用于管理比较器225如何随着活动核210的数量在操作期间改变而操作。在一些方面,存储器250包括tmr寄存器、触发器或者锁存器以捕获状态机的当前状态,其也可用作小型处理器的程序和数据存储。在其他方面,监视器220使用的存储器250使用稳健的纠错编码(ecc)(即,ecc存储器)。
40.根据监视器220正在监视的活动核210的数量,监视器220针对不同的比较模式配置比较器225。
41.图2a示出了多个核210,其中活动核210a-n提供相应的输入到监视器220以进行比较。监视器220将比较器225配置为用于多数模式比较,以便当核210经由调试跟踪数据流230输出的值出现不一致时,监视器220使用由第一组核210提供的第一个值并禁用提供第二个值的第二组核210,其中第二组比第一组具有更少的成员。例如,如果监视器220监视n个核210,并且在t1时刻,x个核210返回输出a并且y个核返回输出b,其中x y=n并且x》y,那么监视器220使用输出a作为控制系统的值并禁用或者忽略从t2时刻返回输出b的y个核210,直到这些核210重新启动。在各个方面,当活动核210的数目为偶数时,监视器220启用死锁处理例程以供比较器225在相等数目的核210返回不同值(即,n/2返回输出b和n/2返回输出a)时将所有核210标记为受影响。例如,如果仅两个核210并行操作以提供检测不一致和重置两个处理器和/或者切换到另一对并行操作的核的技术,则可能发生这种情况。
42.图2b示出了多个核210,其中三个活动核210a-c提供输入到监视器220以进行比较。在各个方面,监视器220在禁用额外的核210之后监视三个活动核210a-c(例如,监视n个
核210,其中最初n》3并且当前n=3)。当监视三个活动核210时,监视器220配置比较器225用于多数模式比较,以便当经由调试跟踪数据流230从核210输出的值出现不一致时,监视器220使用由两个核210提供的第一个值,并且禁用提供第二个值的一个核210。例如,如果监视器220监视三个核210a-c,并且在t1时刻,第一个核210a返回输出a,第二个核210b和第三个核210c都返回输出b,则监视器220使用输出b作为控制系统的值,并且从时间t2起禁用或者忽略第一个核210a,直到第一个核210a被重新启动。
43.图2c示出了多个核210,其中两个活动核210a-b向监视器220提供用于比较的输入。在各个方面,监视器220在禁用第三个核210c之后监视两个活动核210a-b(例如,监视n个核210,其中最初n≥3并且当前n=2)。当监视两个活动核210时,监视器220配置比较器225用于一致模式比较,以便当经由调试跟踪数据流230从核210输出的值中出现不一致时,监视器220忽略这两个值,因为两个核210都不能被确认为提供“正确”输出,并且使用一个核210进行将不会为将来的计算提供任何冗余。因此,在继续执行任务以控制系统之前在核210a-b之间检测到状态差异时,监视器220向两个核210a-b发出同时重新启动的信号。
44.图3是根据本公开的各方面的使用调试跟踪流进行核同步的方法300的流程图。方法300开始于框310,其中,监视器220监视针对包括并行地执行任务以实现冗余的多个核210的系统的多个调试跟踪数据流230。监视器220确保来自不同核220的调试跟踪流在时间上互相对齐,以便(名义上)等效的输出被互相比较,尽管其到达比较器225的时间略有不同。在一个示例中,监视器220监视由相关联的核210在相同的时钟周期中产生的逻辑值,以识别一个核210何时产生了与来自其他核210的输出逻辑值匹配的逻辑值。在其他示例中,当核210在不同的集成电路上操作或者以其他方式异步产生输出时,监视器220可以缓冲输出以使输出对齐以用于互相比较。在另一示例中,当调试跟踪流包含时间戳时,监视器220确保与同一时间戳关联的数据值被互相比较。
45.在各个方面,监视器220可以选择性地去激活或者以其他方式忽略从核210报告的值,该核210先前已被标识为受seu的影响或者以其他方式产生与其他核210的输出不匹配的逻辑值。因此,监视器220监视已被确认为产生互相匹配的输出的活动核210。被标记为受影响的任何核210可以被忽略,直到被重新启动并带回到与其他核210锁步。
46.在框320中,监视器220中的比较器225比较每个调试跟踪流230上携带的值,以识别活动核210中的任何一个是否在相同的时钟周期产生的值彼此不同。响应于在一个调试跟踪数据流230上检测到相对于其他调试跟踪数据流230的状态差异,方法300进行到框330。否则,当调试跟踪数据流230中的每一个所携带的状态值相等(即,不存在状态差异)时,方法300返回到框310以继续监视调试跟踪数据流230。
47.在框330中,监视器将产生与其他核210的输出不匹配的输出的核210标记为受影响的核210,系统100不能再依赖该受影响的核来提供与其余核210的冗余计算。在各个方面,一个或者更多个核210可以在重新启动之前同时或者一段时间内被标记为受影响的核210。例如,当在一致模式中操作两个核210时,其中两个核210a-b的输出必须匹配以被系统使用,当第一核210a被记录为与第二核210b不同步时,第一核210a和第二核210b都被标记为受影响的。类似地,当操作五个核210时,当第一核210a和第二核210b的输出与其他三个核210的输出(彼此匹配)不匹配时,第一核210a和第二核210b都被标记为受影响的。
48.在另一示例中,当操作n个核210时,第一核210a可以在t1时刻被标记为受影响的
核,并且第二核210b可以在t2时刻被标记为受影响的核210。如果在t1时刻和t2时刻之间发生重新启动事件,则第一核210a不再被标记为受影响的核210,但是第二核210b被标记为受影响的核210。否则,如果在t1时刻和t2时刻之间没有发生重新启动事件,则第一核210a和第二核210b都被标记为受影响的核210。因此,受影响的核210的数量可随时间增加,直到重新启动事件发生。
49.在框340中,监视器220确定在多个核210中剩余多少个未受影响的核210。当少于两个核210保持不受影响时,方法300进行到框370。否则,当两个或者更多个核210保持不受影响时,方法300进行到框350。
50.在框350中,监视器220停止任何受影响的核210并继续监视未受影响的核210的调试跟踪数据流230(例如,按照框310),从而减少可用于提供冗余计算的核210的数量,但确保其余核210处于锁步中。
51.根据多个核210中剩余的为计算提供冗余的未受影响的核210的数量,监视器220可以改变比较器225所使用的冗余模式。例如,当多个核210从三个活动核210减少到两个活动核210时(例如,第一核210a受到影响并停止,而第二核210b和第三核210c不受影响并继续处理),监视器220将比较器225从多数冗余模式切换到一致冗余模式。在另一示例中,当多个核210从四个或者更多个活动核210减少到至少三个活动核210(即,从n到n-1个核210,其中n≥4)时,监视器220将比较器225保持在多数冗余模式。另外,当活动核210的数量在冗余模式中从奇数变为偶数或者反之时,监视器220可以启用或者禁用死锁处理例程以当返回第一结果的核210的数量与返回第二结果的核210的数量相等(即,n/2个返回输出b和n/2个返回输出a)时,将所有核210标记为受影响的。
52.在框360中,监视器220确定系统是否已达到安全重新启动时间。在各个方面,由核210控制的系统100可以提供安全简档以指示系统100何时处于可安全地暂时中止处理以允许有时间重新启动一个或者一个以上核210的状况。例如,卫星110(如图1所示)可以在卫星110没有正在执行机动动作(例如,调整轨道或者避开碎片)或者接收来自地面控制器的命令时指示重新启动事件是安全的。因此,当卫星110可以选择使用核210的缩减集合继续处理(例如,从多个核210中禁用或者移除至少一个受影响的核210)时,监视器220等待重新启动受影响的核210,直到卫星110达到安全重新启动时间(也称为安全重置时间)。在各个方面,安全重新启动时间由核210所执行的过程中的标签来指示,该标签将监视器220中的安全重置位设置为指示系统是否处于安全重新启动时间的输出a或者输出b。
53.响应于确定系统100不处于安全重新启动时间,方法300返回到框350以继续使用活动核210的缩减集合来操作系统100。然而,响应于确定系统100已达到或者处于安全重新启动时间,方法300进行到框370以重新启动一个或者多个核210。
54.在框370中,监视器220重新启动受影响的核210。在各个方面,除了受影响的核210之外,监视器220还将未受影响的核210重置以将所有核210从新开始进入锁步(例如,清除相应的寄存器并以相同的指令启动所有核210)。在其他方面,监视器220用来自未受影响的核210的寄存器的数据(即,“良好”寄存器数据)重新加载受影响的核210的寄存器,并且重新初始化受影响核210以与未受影响核210锁步。
55.如果核210在分开的集成电路上或者在分开的电源域中,则用于重新启动受影响的核210的另一选项是对受影响的核210进行电力循环。在集成电路易受闩锁影响的情况
下,电力循环重新启动可能特别有用,并且对给定核断电然后加电的电力循环可以在硬故障发生之前校正闩锁。在设备没有针对这种可能性进行加固或者可以结合该设备的电流测量来使用跟踪流错误比较的情况下,可以假设闩锁状况检测。或者,系统设计人员可以重置电源循环,而不是重置或者停止受影响的核。
56.通过重新加载和重新初始化受影响的核210来重新启动受影响的核210允许未受影响的核210保持激活,并使受影响的核210重新与未受影响的核210一致。一旦重新启动,监视器220将受影响的核210标记为未受影响(例如,移除受影响的状态)并且重新配置比较器225以监视来自所有核210的调试跟踪数据流230。在各个方面,监视器220从一致模式(例如,对于两个活动核210)到多数模式(例如,对于三个或者更多核210)重置冗余模式用于核210的比较。
57.如本文所使用的,停止核210可以意味着经由等待指令、经由硬件断点或者硬件触发、应用重置、电源重置、软件重置或者将核210保持在重置状态以停止该核210上的指令执行。如本文所使用的,重新启动核210可以意味着通过恢复电源、去激活重置、移除将核210保持在暂停状态的硬件条件、重写软件等待或者重写暂停指令来移除暂停条件。如这里所使用的,重新初始化核210可以意味着经由调试基础结构恢复核210的寄存器和/或者专用存储器,使用调试基础结构来验证寄存器和/或者存储器是完整的(软错误),或者使用包括引导程序的重置过程来将核210恢复到已知状态。调试基础结构可以包括提供核210到外部硬件的任何可用硬件路径,例如jtag(联合测试行动组)或者到调试机制的存储器映射数据总线。
58.在监视器220重新启动(一个或者更多个)核210之后,方法300返回到框310以使用现在恢复的可用核210的全集继续监视调试跟踪数据流230。
59.图4根据本发明的多个方面示出了计算设备400,例如可用作多核控制系统130。计算设备400包括处理器410、存储器420和通信接口430,其中处理器410包括多个核210a-n。在各种方面中,监视器220可与处理器410包括在一起或者作为单独元件。处理器410和存储器420提供计算功能以运行用于相应计算设备400的各种程序和/或者操作,包括存储和检索本文所述的各种数据。
60.处理器410可以是能够执行本文所述功能的任何计算机处理器,其基于从用户或者传感器接收的输入以及从通信接口430接收的数据来执行命令。
61.存储器420是计算机可读存储器存储设备,其通常包括各种处理器可执行指令,当由处理器410执行时,所述指令执行与如本文所述的受潜在seu影响的系统(例如,卫星110、航天器、飞行器等)的控制相关的各种功能。在各种方面中,存储器420可附接到各个处理器410或者核210,或者可为由若干处理器410或者核210共享的存储器子系统。处理器可执行指令通常可以被描述或者组织到存储器420中的各种“应用”或者“模块”中,尽管可替换的实现可以具有不同的功能和/或者功能的组合。存储器420通常还包括存储供各种应用或者模块使用或者输出的信息的数据结构。在本公开中,存储器420至少包括用于操作系统421、一个或者更多个应用422的指令。存储器420在各个方面可以包括诸如奇偶校验或纠错码的冗余,使得在存储器数据由相关联的核210访问的情况下,可以经由本文描述的跟踪比较来检测由相关联的核210独占使用的单独存储器420中的故障。存储器420可以是一个或者更多个存储器设备,例如随机存取存储器(ram)、只读存储器(rom)、闪存、磁介质、光介质、灵
活数据存储或者包括处理器410可以执行的指令的任何其他类型的易失性或者非易失性存储介质。如本文所使用的,存储器存储设备应被理解为描述装置而不是非瞬态信号。
62.通信接口430将计算设备400连接到外部设备,例如外部存储器设备、外部计算设备、电源、无线发射器等,并且可以包括各种连接端口(例如,通用串行总线(usb)、以太网、太空线、同轴插孔)和电缆。通信接口430用于在计算设备400之间发送和接收通信。
63.在本公开中,参考了各个方面。然而,应当理解,本公开不限于具体描述的方面。相反,以下特征和元件的任何组合,无论是否涉及不同方面,都被预期用于实现和实践本文所提供的指导。另外,当以“a和b中的至少一个”的形式描述各方面的元件时,将理解,仅包括元件a、仅包括元件b以及包括元件a和b的各方面均是预期的。此外,尽管一些方面可实现优于其它可能的解决方案和/或者优于现有技术的优点,但特定优点是否由给定方面实现并不限制本发明。因此,在此公开的方面、特征、方面和优点仅仅是说明性的,并且不被认为是所附权利要求的元素或者限制,除非在权利要求中明确陈述。同样,对“本发明”的引用不应被解释为对本文所公开的任何发明主题的概括,并且不应被认为是所附权利要求的元素或者限制,除非在权利要求中明确陈述。
64.如本领域技术人员将理解的,本文描述的方面可以体现为系统、方法或者计算机程序产品。因此,各方面可以采取完全硬件方面、完全软件方面(包括固件、嵌入式软件、驻留软件、微代码等)或者组合软件和硬件方面的形式,其在这里可以被统称为“电路”、“模块”或者“系统”。此外,本文描述的方面可以采取在其上包含计算机可读程序代码的一个或者更多个计算机可读存储介质中包含的计算机程序产品的形式。
65.可以使用任何适当的介质来传输在计算机可读存储介质上包含的程序代码,该介质包括但不限于无线、有线、光纤电缆、rf等或者前述的任何适当组合。
66.用于执行针对本公开内容的各方面的操作的计算机程序代码可以用一种或者多种编程语言的任何组合来编写,包括诸如java、smalltalk、c 等的面向对象编程语言和诸如“c”编程语言或者类似编程语言的常规过程编程语言。程序代码可以完全在用户的计算机上执行、部分在用户的计算机上执行、作为独立的软件包执行、部分在用户计算机上并且部分在远程计算机上执行或者完全在远程计算机或者服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(lan)或者广域网(wan))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用因特网服务提供商的因特网)。
67.这里参考根据本公开内容的各方面的方法、装置(系统)和计算机程序产品的流程图和/或者框图来描述本公开的各方面。应当理解,流程图和/或者框图中的每个框以及流程图和/或者框图中的框的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或者其他可编程数据处理设备的处理器以产生机器,使得经由计算机或者其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或者框图的框中指定的功能/操作的装置。
68.这些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质可以引导计算机、其他可编程数据处理装置或者其他设备以特定的方式运行,使得存储在计算机可读取介质中的指令产生包括实现在流程图和/或者框图的框中指定的功能/操作的指令的制品。
69.计算机程序指令还可以被加载到计算机、其他可编程数据处理装置或者其他设备
上,以使一系列操作步骤在计算机、其他可编程装置或者其他设备上执行,以产生计算机实现的过程,使得在计算机、其他可编程数据处理装置、或者其它设备上执行的指令提供用于实现在流程图和/或者框图的框中指定的功能/操作的过程。
70.附图中的流程图和框图示出了根据本公开的各个方面的系统、方法和计算机程序产品的可能实现的体系结构、功能和操作。在这点上,流程图或者框图中的每个框可以表示代码的模块、段或者部分,其包括用于实现指定的逻辑功能的一个或者多个可执行指令。还应注意,在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序或者不按顺序执行,这取决于所涉及的功能。还将注意,框图和/或者流程图的每个框以及框图和/或者流程图中的框的组合可以由执行指定功能或者操作的基于专用硬件的系统或者专用硬件和计算机指令的组合来实现。
71.此外,本公开内容包括根据以下条款的实施例:
72.条款1.一种方法,包括:
73.监视(310)用于冗余操作系统的多个调试跟踪数据流(230),所述冗余操作系统包括并行地执行任务的对应的多个核(210);
74.响应于检测到(320)所述多个调试跟踪数据流中的一个调试跟踪数据流相对于所述多个调试跟踪数据流中的其他调试跟踪数据流的状态差异:
75.将与所述一个调试跟踪数据流相关联的给定核标记(330)为受影响的核;和
76.重新启动(370)受影响的核。
77.条款2.根据条款1所述的方法,其中所述对应的多个核由两个活动核组成,包括所述受影响的核和第二核,所述方法还包括,响应于检测到所述状态差异:
78.将所述第二核标记为第二受影响核;和
79.与所述受影响的核同时重置所述第二核。
80.条款3.根据条款1所述的方法,其中所述对应的多个核由三个活动核组成,包括所述受影响的核、第一未受影响核和第二未受影响核,所述方法还包括,响应于检测到所述状态差异:
81.停止(350)所述受影响的核;和
82.监视以一致冗余模式并行执行所述任务的所述第一未受影响核和所述第二未受影响核;和
83.其中重新启动所述受影响的核包括,响应于检测到安全重新启动时间:
84.用来自第一未受影响核的寄存器数据加载受影响的核;和
85.重新初始化受影响的核。
86.条款4.根据条款1所述的方法,其中,所述对应的多个核包括多于三个的活动核,所述多于三个的活动核包括所述受影响核、第一未受影响核、第二未受影响核和第三未受影响核,响应于检测到所述状态差异:
87.停止(350)所述受影响的核;和
88.监视以多数模式并行地执行所述任务的所述第一未受影响核、所述第二未受影响核和所述第三未受影响核;和
89.其中重新启动所述受影响的核包括,响应于检测到(360)安全重新启动时间:
90.用来自第一未受影响核的寄存器数据重新加载受影响的核;和
91.重新初始化受影响的核。
92.条款5.根据条款1所述的方法,其中,所述对应的多个核被包括在具有监视器(220)的共享片上系统(soc)上,其中,所述监视器是以下之一:
93.抗辐射处理器;
94.硬件定义的状态机;和
95.维护处理器。
96.条款6.根据条款1所述的方法,其中,所述对应的多个核中的至少一个核被包括在与所述对应的多个核中的其他核分离的集成电路上。
97.条款7.一种系统(100),包括:
98.多个核(210),被配置为并行地执行任务的对应的多个实例;和
99.监视器(220),其被配置为:
100.从所述多个核接收调试跟踪数据流(230);和
101.基于与所述多个核中的受影响的核和其他核相关联的调试跟踪数据流之间的状态差异来识别所述多个核中的所述受影响的核。
102.条款8.根据条款7所述的系统,其中所述多个核和所述监视器被布置在单个集成电路上。
103.条款9.根据条款7所述的系统,其中所述监视器被布置在第一集成电路上,并且所述多个核中的至少一个核被布置在第二集成电路上。
104.条款10.根据条款7所述的系统,其中所述监视器还被配置成:
105.从执行所述任务的所述多个核中移除所述受影响的核,直到安全重新启动时间;和
106.响应于达到安全重新启动时间,重新启动受影响的核。
107.条款11.根据条款10所述的系统,其中,当在移除受影响的核之后所述多个核包括至少两个核时,所述监视器还被配置为:
108.用来自与所述至少两个核中的一个未受影响的核相关联的未受影响的寄存器的数据重新加载与所述受影响的核相关联的受影响的寄存器;
109.重新初始化受影响的核;和
110.将所述受影响的核返回到所述多个核。
111.条款12.根据条款10所述的系统,其中,所述安全重新启动时间是基于由所述系统控制的设备的安全简档来确定的。
112.条款13.根据条款10所述的系统,其中,当所述多个核由两个核组成时,所述监视器还被配置为:
113.与受影响的核同时重置第二核。
114.条款14.根据条款7所述的系统,其中所述调试跟踪数据流是经由以下各项中的至少一个接收的:
115.指令跟踪;
116.数据跟踪;和
117.系统跟踪。
118.条款15.一种包括指令的计算机可读存储设备,所述指令在由处理器执行时执行操作,所述操作包括:
119.监视用于冗余操作系统的多个调试跟踪数据流(230),所述冗余操作系统包括并行地执行任务的对应的多个核(210);
120.响应于检测到所述多个调试跟踪数据流中的一个调试跟踪数据流相对于所述多个调试跟踪数据流中的其他调试跟踪数据流的状态差异:
121.将与所述一个调试跟踪数据流相关联的核标记为受影响的核;和
122.重新启动受影响的核。
123.条款16.根据条款15所述的计算机可读存储设备,其中所述对应的多个核由两个活动核组成,包括所述受影响的核和第二核,所述操作还包括,响应于检测到所述状态差异:
124.将所述第二核标记为第二受影响的核;和
125.与所述受影响的核同时重置所述第二核。
126.条款17.根据条款15所述的计算机可读存储设备,其中,所述对应的多个核由三个活动核组成,包括所述受影响的核、第一未受影响的核和第二未受影响的核,所述操作还包括,响应于检测到所述状态差异:
127.停止受影响的核;和
128.监视所述第一未受影响的核和所述第二未受影响的核以一致冗余模式并行执行所述任务;和
129.其中重新启动所述受影响的核包括,响应于检测到安全重新启动时间:
130.用来自第一未受影响的核的寄存器数据加载受影响的核;和
131.重新初始化受影响的核。
132.条款18.根据条款15所述的计算机可读存储设备,其中,所述对应的多个核包括多于三个的活动核,所述多于三个的活动核包括所述受影响核、第一未受影响的核、第二未受影响的核和第三未受到影响的核,所述操作还包括响应于检测到所述状态差异:
133.停止受影响的核;和
134.监视所述第一未受影响的核、所述第二未受影响的核和所述第三未受影响的核以多数模式并行地执行所述任务;和
135.其中重新启动所述受影响的核包括,响应于检测到安全重新启动时间:
136.用来自第一未受影响的核的寄存器数据加载受影响的核;和
137.重新初始化受影响的核。
138.条款19.根据条款15所述的计算机可读存储设备,其中,所述对应的多个核被包括在具有监视器(220)的共享片上系统(soc)上,所述监视器被配置为监视所述多个调试跟踪数据流。
139.条款20.如条款15所述的计算机可读存储设备,其中所述对应的多个核中的至少一个核被包括在与所述对应的多个核中的其他核分离的集成电路上。
140.条款21.本文描述的任何方面。
141.虽然前述内容针对本公开内容的方面,但是可以在不脱离本公开的基本范围的情况下设计本公开的其它和进一步的方面,并且本公开范围由所附权利要求确定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献