用于处理器的锁步控制装置和方法与流程
未命名
10-08
阅读:89
评论:0

1.本技术总体上涉及处理器领域,并且更具体地涉及用于处理器的锁步控制装置和方法。
背景技术:
2.处理器核锁步(lockstep)是一种用于在微处理器系统中实现高可靠性的技术。支持锁步的微处理器系统是指由互相监控的两个或更多个处理器核构成的冗余系统。锁步技术需要保持这些处理器核和内存精确的同步,在正确的相同时钟周期内执行相同的指令,所以需要不间断地检查程序运行的正确性,及时检测出处理器错误,建立故障抑制区,防止故障蔓延。
3.目前,处理器锁步技术较多地应用于在汽车工业、工业控制器、替代能源等领域中广泛使用的微控制器单元(mcu)。对于不需要内部缓存的小尺寸、低性能的mcu,可以使用相对容易实现的三核锁步技术来构建高可靠性的冗余系统,但是对于尺寸相对较大的高性能处理器(例如,具有内部缓存的处理器)而言,通常使用双核锁步技术来构建冗余系统。当前普遍采用的双核锁步技术需要对处理器核中的所有内部数据或地址寄存器堆和缓存数据都进行单错校正双错检测(secded)保护,所以在高性能处理器核上实现锁步的硬件成本和性能损失非常高。
技术实现要素:
4.鉴于以上所述的问题,本技术提供了一种新的用于处理器的锁步控制机制,可以实现硬件成本和性能损失较低的处理器核锁步控制。
5.根据本技术的一方面,提供了一种处理器,包括:两个处理器核,包括第一处理器核和作为冗余处理器核的第二处理器核;最后一级缓存llc,被两个处理器核共享使用;以及锁步控制单元,被配置为:周期性地触发检查点中断,以指示两个处理器核中的每个处理器核将该处理器核在检查点处的运行数据保存到llc和影子寄存器集合中,并且在确定两个处理器核的输出数据或地址不匹配的情况下触发回滚中断,以基于llc和影子寄存器集合中所存储的运行数据将两个处理器核的运行数据恢复为两个处理器核在回滚中断之前的检查点处的运行数据。
6.根据本技术的另一方面,提供了一种用于处理器的锁步控制方法,其中,处理器包括两个处理器核,该两个处理器核包括第一处理器核和作为冗余处理器核的第二处理器核。该锁步控制方法包括:周期性地触发检查点中断,以指示两个处理器核中的每个处理器核将其在检查点处的运行数据保存到llc和影子寄存器集合中;以及在确定两个处理器核的输出数据或地址不匹配的情况下触发回滚中断,以基于llc和影子寄存器集合中所存储的运行数据将两个处理器核的运行数据恢复为其在回滚中断之前的检查点处的运行数据,其中,llc被两个处理器核共享使用,并且被配置为当检查点中断被触发时从每个处理器核接收并存储该处理器核中具有已修改m缓存状态的缓存数据;影子寄存器集合被配置为当
检查点中断被触发时从每个处理器核接收并存储该处理器核的寄存器数据和核状态数据;并且运行数据包括缓存数据、寄存器数据和核状态数据。
7.利用本技术所提出的锁步控制机制,不需要对处理器核内部的寄存器数据和缓存数据(例如,一级数据缓存l1d中的数据)进行secded保护,而只需要对最后一级缓存(llc)中的数据进行secded保护。此外,根据该锁步控制机制,为了实现对处理器核的锁步控制,不需要改变处理器核本身的设计,也就是说,即使处理器核本身并不支持锁步操作也可以使用所提出的锁步控制机制来对处理器核进行锁步控制。因此,该锁步控制机制具有较低的硬件成本,并且对处理器核的性能影响较小,尤其适合用于实现对具有内部缓存的高性能处理器核的锁步控制。
附图说明
8.从下面结合附图对本技术的具体实施方式的描述中可以更好地理解本技术,其中:图1图示了示例处理器和/或片上系统(system on a chip,soc)的框图,该处理器和/或soc可以具有一个或多个核并具有集成存储器控制器。
9.图2示出了应用根据本技术实施例的锁步控制机制的双核处理器的示意性结构框图;图3示出了根据本技术实施例的用于处理器核的锁步控制方法的示意性流程图。
具体实施方式
10.下面将详细描述本技术的各个方面的特征和示例性实施例。在下面的详细描述中,提出了许多具体细节,以便提供对本技术的全面理解。但是,对于本领域技术人员来说很明显的是,本技术可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本技术的示例来提供对本技术的更好的理解。本技术决不限于下面所提出的任何具体配置,而是在不脱离本技术的精神的前提下覆盖了元素、部件和算法的任何修改、替换和改进。在附图和下面的描述中,没有示出公知的结构和技术,以便避免对本技术造成不必要的模糊。
11.图1图示了示例处理器和/或soc 100的框图,该处理器和/或soc 100可以具有一个或多个核并具有集成存储器控制器。实线框图示的处理器100具有单个核102(a)、系统代理单元电路110和一组一个或多个接口控制器单元电路116,而可选地添加的虚线框将替代性处理器100图示为具有多个核102(a)-(n)、系统代理单元电路110中的一组一个或多个集成存储器控制单元电路114、专用逻辑108以及一组一个或多个接口控制器单元电路116。
12.处理器100的不同实现方式可以包括:1)cpu,其中专用逻辑108是集成图形和/或科学(吞吐量)逻辑(可以包括一个或多个核,未示出),核102(a)-(n)是一个或多个通用核(例如,通用有序核、通用乱序核、或这两者的组合);2)协处理器,其中核102(a)-(n)是主要针对图形和/或科学(吞吐量)目的的大量专用核;以及3)协处理器,其中核102(a)-(n)是大量的通用有序核。从而,处理器100可以是通用处理器、协处理器或者专用处理器,例如网络或通信处理器、压缩引擎、图形处理器、gpgpu(通用图形处理单元)、高吞吐量集成众核(mic)协处理器(包括30个或更多个核)、嵌入式处理器,等等。该处理器可被实现在一个或
多个芯片上。处理器100可以是一个或多个衬底的一部分和/或可以使用多种工艺技术中的任何技术来实现在一个或多个衬底上,这些工艺技术例如互补金属氧化物半导体(complementary metal oxide semiconductor,cmos)、双极cmos(bipolar cmos,bicmos)、p型金属氧化物半导体(p-type metal oxide semiconductor,pmos)、或者n型金属氧化物半导体(n-type metal oxide semiconductor,nmos)。
13.存储器层次体系包括核102(a)-(n)内的一级或多级缓存单元电路104(a)-(n)、一组一个或多个共享缓存单元电路106、以及耦合到该组集成存储器控制器单元电路114的外部存储器(未示出)。该组一个或多个共享缓存单元电路106可以包括一个或多个中间级别缓存,例如第2级(l2)、第3级(l3)、第4级(4)或者其他级别的缓存,例如最后一级缓存(last level cache,llc),和/或这些的组合。虽然在一些示例中接口网络电路112(例如,环形互连)对专用逻辑108(例如,集成图形逻辑)、该组共享缓存单元电路106和系统代理单元电路110提供接口,但替代性示例使用任何数目的公知技术来对这些单元提供接口。在一些示例中,在共享缓存单元电路106中的一个或多个电路与核102(a)-(n)之间维持一致性。在一些示例中,接口控制器单元电路116将这些核102耦合到一个或多个其他设备118,例如一个或多个i/o设备、存储装置、一个或多个通信设备(例如,无线网络、有线网络等)等等。
14.在一些示例中,核102(a)-(n)中的一个或多个具有多线程能力。系统代理单元电路110包括对核102(a)-(n)进行协调和操作的那些组件。系统代理单元电路110可以包括例如功率控制单元(power control unit,pcu)电路和/或显示单元电路(未示出)。pcu可以是(或者可以包括)对核102(a)-(n)和/或专用逻辑108(例如,集成图形逻辑)的功率状态进行调节所需的逻辑和组件。显示单元电路用于驱动一个或多个在外部连接的显示器。
15.核102(a)-(n)就指令集体系结构(instruction set architecture,isa)而言可以是同构的。例如,处理器核102(a)-(n)可以均采用risc-v指令集架构。risc-v指令集架构是一个基于精简指令集(risc)原则的全新开源指令集架构,其中的字母“v”包含两层意思,一是berkeley从risc-i开始设计的第五代指令集架构;二是变化(variation)和向量(vectors)。或者,核102(a)-(n)就isa而言也可以是异构的;也就是说,核102(a)-(n)的子集可能能够执行一isa,而其他核可能能够只执行该isa的子集或者能够执行另一isa。但是,当利用两个或更多个处理器核构建冗余系统时,这些处理器核的isa应当是同构的。
16.如上所述,对于尺寸相对较大的高性能处理器(例如,图1所示的处理器)而言,通常使用双核锁步技术来构建冗余系统,以实现高可靠性的计算或控制系统。该冗余系统可以由互相监控的两个或更多个处理器核构成。当前普遍采用的双核锁步技术需要对处理器核中的所有内部数据或地址寄存器堆和缓存数据都进行secded保护,所以在高性能处理器核上实现锁步的硬件成本和性能损失非常高。
17.本技术的实施例提出了一种锁步控制机制,不需要对处理器核内部的寄存器数据和缓存数据(例如,一级数据缓存l1d中的数据)进行secded保护,而只需要对llc中的数据进行secded保护。此外,根据该锁步控制机制,为了实现对处理器核的锁步控制,不需要改变处理器核本身的设计,也就是说,即使处理器核本身并不支持锁步操作也可以使用所提出的锁步控制机制来对处理器核进行锁步控制。
18.图2示出了应用根据本技术实施例的锁步控制机制的双核处理器的示意性结构框图。如图2所示,处理器核0和处理器核1被用来构建高可靠性的冗余系统。例如,处理器核1
作为冗余处理器核。核0和核1共享来自核0的指令缓存的指令代码,并且在没有错误发生的情况下,基于这些指令代码执行相同的操作并输出相同的执行结果数据。通常情况下,核1对指令代码的执行相对于核0对指令代码的执行可以被延迟若干个时钟周期(例如,通过延迟单元延迟2个时钟周期)。锁步技术需要保持两个处理器核和内存的精确同步,在正确的相同时钟周期内执行相同的指令,所以需要不间断地检查程序运行的正确性,及时检测出处理器错误,建立故障抑制区,防止故障蔓延。
19.如图2所示,根据本技术实施例的锁步控制机制可以通过由锁步控制单元、llc和影子寄存器集合构成的锁步控制装置来实现。根据本技术的实施例,为了实现对处理器核的锁步控制,引入了两个高优先级的中断处理,即,检查点中断和回滚中断。具体而言,锁步控制单元可以被配置为:周期性地触发检查点中断,以指示处理器核0和1将其在检查点处的运行数据保存到llc和影子寄存器集合中,并且在确定两个处理器核的输出数据或地址不匹配的情况下触发回滚中断,以基于llc和影子寄存器集合中所存储的运行数据将两个处理器核的运行数据恢复为其在回滚中断之前的检查点处的运行数据。
20.首先,检查点中断可以被用于周期性地设置检查点,以用于在回滚中断被触发时实现处理器核的运行数据的恢复。当检查点中断被触发时,每个处理器核可以将其内部缓存(例如,l1d)中具有已修改m缓存状态的缓存数据冲刷到llc中,同时将这些缓存数据在其内部缓存中的缓存状态修改为独占e或失效i缓存状态。
21.例如,每个处理器核可以基于risc-v指令集架构,并且被配置为当检查点中断被触发时利用预定义的冲刷指令(例如flush m2e)将处理器核中具有m缓存状态的缓存数据冲刷到llc中,同时将这些缓存数据在其内部缓存中的缓存状态修改为e或i缓存状态。
22.这里所提到的m、e和i缓存状态可以是标准的mesi缓存协议中所定义的缓存状态。如表1所示,mesi缓存协议定义了四种缓存状态。
23.表1
24.此外,当检查点中断被触发时,每个处理器核还要将其寄存器数据和核状态数据保存到影子寄存器集合中。该影子寄存器集合可以位于每个处理器核的内部缓存以外的控制寄存器空间中。当处理器核在检查点处的所有寄存器数据和核状态数据都已被保存到影子寄存器集合中时,处理器核可以通知锁步控制单元已完成了检查点设置。
25.根据本技术的一些实施例,影子寄存器集合可以包括第一影子寄存器子集和第二影子寄存器子集。这两个影子寄存器子集可以被配置为按乒乓(ping-pang)模式交替地存
储多个检查点处每个处理器核的寄存器数据和核状态数据。例如,第一影子寄存器子集可以存储第一个检查点处每个处理器核的寄存器数据和核状态数据,第二影子寄存器子集可以存储第二个检查点处每个处理器核的寄存器数据和核状态数据,然后,第一影子寄存器子集可以存储第三个检查点处每个处理器核的寄存器数据和核状态数据,第二影子寄存器子集可以存储第四个检查点处每个处理器核的寄存器数据和核状态数据,以此类推。
26.以乒乓模式来存储处理器核的寄存器数据和核状态数据,可以在检查点中断期间保护处理器核在上一个检查点处的寄存器数据和核状态数据,以使得即使当前的检查点中断处理出现问题,也可以基于上一个检查点处的数据来实现处理器核的运行数据的恢复。
27.此外,锁步控制单元需要不间断地检查两个处理器核中的程序运行的正确性。即,锁步控制单元可以对两个处理器核0和1执行相同的指令代码后所输出的数据或地址进行比较,并且当确定两个处理器核0和1的输出数据或地址不匹配时,触发回滚中断,以使两个处理器核0和1的运行数据恢复为其在回滚中断之前的检查点处的运行数据。
28.具体而言,当回滚中断被触发时,每个处理器核将其内部缓存中的缓存数据的缓存状态变为i状态,从llc中读取该处理器核在回滚中断之前的检查点处保存到llc中的缓存数据,并从影子寄存器集合中读取回滚中断之前的检查点处的寄存器数据和核状态数据,从而将该处理器核的运行数据恢复为回滚中断之前的检查点处的运行数据。
29.根据本技术的实施例,llc被两个处理器核0和1共享使用,并且被配置为当检查点中断被触发时从每个处理器核接收并存储该处理器核中具有已修改m缓存状态的缓存数据。
30.此外,在llc中,除了标准的mesi/moesi缓存协议中所定义的四种数据缓存状态以外,还定义了一种新的数据缓存状态-临时t缓存状态,并且llc中所存储的具有t缓存状态的缓存数据被禁止从llc中移出。如表2所示,llc中的缓存数据可以有五种缓存状态。
31.表2
32.根据本技术的实施例,llc可以被配置为:在检查点中断期间以临时t缓存状态存储来自每个处理器核的具有m缓存状态的缓存数据;在检查点中断结束时将所存储的具有t缓存状态的缓存数据的缓存状态变为已修改m缓存状态;并且在回滚中断开始时将所存储的具有t缓存状态的缓存数据的缓存状态变为失效i缓存状态。这样,可以及时地释放llc中的存储空间,以保存更新的检查点的运行数据。
33.需要注意的是,llc中的缓存数据需要被进行secded保护。并且当llc中的存储空间即将满时(例如,当llc中的存储空间被占用的比例超过预定阈值时),可以触发检查点中断,以便及时地释放llc中的存储空间来保存更新的检查点的运行数据。
34.为了便于更好地理解本技术中所提出的锁步控制机制在处理器中的具体应用,下面将进一步参考图2描述根据本技术的一个实施例的处理器的工作过程,该工作过程将涉及所提出的锁步控制机制。
35.如图2所示,处理器核0从其指令缓存获取要执行的指令代码,同时该指令代码经延迟单元也被提供给作为冗余处理器核的处理器核1以使得处理器核1与处理器核0执行相同的指令。只是通常情况下,处理器核1对指令代码的执行相对于处理器核0对指令代码的执行可以被延迟若干个时钟周期(例如,通过延迟单元延迟2个时钟周期)。
36.在没有错误发生的情况下,处理器核0和处理器核1基于这些指令代码执行相同的操作并输出相同的执行结果数据,但是,当某个处理器核在指令执行过程中出现错误时就可能导致两个处理器核的输出不一致。因而需要采用锁步技术来不间断地检查程序运行的正确性,及时检测出处理器错误,建立故障抑制区,防止故障蔓延。
37.根据本技术所提出的锁步控制机制,锁步控制单元可以周期性地触发检查点中断来设置检查点。锁步控制单元可以针对处理器核0和处理器核1两者触发检查点中断,只是针对处理器核1的检查点中断的触发相对于针对处理器核0的检查点中断的触发可以通过延迟单元被延迟若干个时钟周期,类似于处理器核对指令代码的执行的延迟。需要注意的是,在图2中出现的两个延迟单元可以是两个独立的延迟单元,也可以是共享的同一延迟单元。
38.当检查点中断被触发时,处理器核0和1将其在检查点处的运行数据保存到llc和影子寄存器集合中。例如,处理器核0和处理器核0分别通过核0存储数据线和核1存储数据线将其运行数据保存到llc和影子寄存器集合中。如之前所描述的,该运行数据可以包括将被冲刷到llc中的缓存数据和将被保存到影子寄存器集合中的寄存器数据和处理器核状态数据。
39.此外,根据本技术所提出的锁步控制机制,锁步控制单元将不间断地(例如,每个时钟周期地)对两个处理器核0和1执行相同的指令代码后所输出的数据和地址进行比较。如图2所示,处理器核0的指令地址和内部缓存数据(包括与该数据相关联的地址)可以分别通过地址传输线和核0存储数据线被传输至锁步控制单元,类似地,处理器核1的指令地址和内部缓存数据(包括与该数据相关联的地址)可以分别通过地址传输线和核1存储数据线被传输至锁步控制单元。
40.锁步控制单元在确定两个处理器核的输出数据和地址匹配的情况下将继续对两个处理器核的状态保持监测,而在确定两个处理器核的输出数据或地址不匹配的情况下将触发回滚中断。锁步控制单元将针对处理器核0和处理器核1两者触发回滚中断,只是针对处理器核1的回滚中断的触发相对于针对处理器核0的回滚中断的触发可以通过延迟单元被延迟若干个时钟周期,类似于检查点中断的延迟和处理器核对指令代码的执行的延迟。
41.当回滚中断被触发时,每个处理器核将其内部缓存中的缓存数据的缓存状态变为i状态,从llc中读取该处理器核在回滚中断之前的检查点处保存到llc中的缓存数据,并从影子寄存器集合中读取回滚中断之前的检查点处的寄存器数据和核状态数据,从而将该处
理器核的运行数据恢复为回滚中断之前的检查点处的运行数据。
42.例如,处理器核0可以通过核加载数据线将回滚中断之前的检查点处的运行数据恢复到处理器核0中,并且这些运行数据在经过延迟单元后也被恢复到处理器核1中。这样,在锁步控制单元分别针对处理器核0和处理器核1触发了回滚中断之后,这两个处理器核的运行数据将再次保持匹配,可以继续进行同步操作。此时,锁步控制单元也将继续对两个处理器核的状态保持监测。
43.以上结合图2描述了应用根据本技术实施例的锁步控制机制的双核处理器的示例。下面将参考图3对根据本技术实施例的用于处理器的锁步控制方法进行描述。
44.图3示出了根据本技术实施例的用于处理器的锁步控制方法的示意性流程图。该处理器可以包括两个处理器核,例如第一处理器核和作为冗余处理器核的第二处理器核。如图3所示,该锁步控制方法可以由锁步控制单元执行,并且包括操作310至340。
45.在操作310处,锁步控制单元可以周期性地触发检查点中断,以指示两个处理器核中的每个处理器核将该处理器核在检查点处的运行数据保存到llc和影子寄存器集合中。
46.根据本技术的实施例,llc被每个处理器核共享使用,并且被配置为当检查点中断被触发时从每个处理器核接收并存储该处理器核中具有已修改m缓存状态的缓存数据;影子寄存器集合被配置为当检查点中断被触发时从每个处理器核接收并存储该处理器核的寄存器数据和核状态数据;并且运行数据包括缓存数据、寄存器数据和核状态数据。
47.根据本技术的一些实施例,影子寄存器集合可以包括第一影子寄存器子集和第二影子寄存器子集,被配置为按乒乓模式交替地存储多个检查点处每个处理器核的寄存器数据和核状态数据。影子寄存器集合可以位于每个处理器核的内部缓存以外的控制寄存器空间中。
48.此外,根据本技术的一些实施例,每个处理器核可以基于risc-v指令集架构,并且被配置为:当检查点中断被触发时利用预定义的冲刷指令(例如flush m2e)将处理器核中具有m缓存状态的缓存数据冲刷到llc中,并将所述缓存数据在处理器核中的缓存状态变为独占e或失效i缓存状态。
49.在操作320处,锁步控制单元可以对两个处理器核的输出数据和地址进行比较。如前所述,在没有错误发生的情况下,两个处理器核基于相同的指令代码执行相同的操作并输出相同的执行结果数据,但是,当某个处理器核在指令执行过程中出现错误时就可能导致两个处理器核的输出不一致。因而需要采用锁步技术来不间断地检查程序运行的正确性,及时检测出处理器错误,建立故障抑制区,防止故障蔓延。
50.根据本技术的实施例,锁步控制单元可以不间断地对两个处理器核的输出数据和地址进行比较。为了保持两个处理器核精确的匹配,该比较操作通常是在每个时钟周期都会执行,但本技术的实施例并不局限于此。
51.然后,在操作330处,锁步控制单元判断两个处理器核的输出数据和地址是否匹配。在确定两个处理器核的输出数据和地址匹配的情况下,锁步控制单元将返回到操作320以继续对两个处理器核的状态保持监测,而在确定两个处理器核的输出数据或地址不匹配的情况下,锁步控制单元将进行操作340来触发回滚中断。
52.在操作340处,锁步控制单元可以触发回滚中断,以基于llc和影子寄存器集合中所存储的运行数据将两个处理器核的运行数据恢复为这两个处理器核在回滚中断之前的
检查点处的运行数据。
53.根据本技术的实施例,llc被配置为:在检查点中断期间以临时t缓存状态存储来自每个处理器核的具有m缓存状态的缓存数据;在检查点中断结束时将所存储的具有t缓存状态的缓存数据的缓存状态变为已修改m缓存状态;并且在回滚中断开始时将所存储的具有t缓存状态的缓存数据的缓存状态变为失效i缓存状态。llc中所存储的具有t缓存状态的缓存数据被禁止从llc中移出,并且llc中的缓存数据被进行secded保护。
54.根据本技术的实施例,锁步控制单元还可以在llc中的存储空间被占用的比例超过预定阈值时,触发检查点中断。
55.在操作340完成之后,锁步控制单元可以返回到操作320以继续对两个处理器核的状态保持监测。
56.此外,应注意的是,上述锁步控制方法中的操作仅表示锁步控制单元要执行的相应操作,这些操作不需要按图中所示的顺序执行,也可以按照其他合适的顺序执行或者并行地执行。例如,操作310与操作320可以并行执行。
57.从以上结合图2和图3的描述来看,利用本技术所提出的锁步控制机制,不需要对处理器核内部的寄存器数据和缓存数据(例如,一级数据缓存l1d中的数据)进行secded保护,而只需要对llc中的数据进行secded保护。此外,为了实现对处理器核的锁步控制,不需要改变处理器核本身的设计,也就是说,即使处理器核本身并不支持锁步操作也可以使用所提出的锁步控制机制来对处理器核进行锁步控制。因此,该锁步控制机制具有较低的硬件成本,并且对处理器核的性能影响较小,尤其适合用于实现对具有内部缓存的高性能处理器核的锁步控制。
58.以下段落描述了各种实施例的示例。
59.示例1包括一种处理器,包括:两个处理器核,包括第一处理器核和作为冗余处理器核的第二处理器核;最后一级缓存llc,被两个处理器核共享使用;以及锁步控制单元,被配置为:周期性地触发检查点中断,以指示两个处理器核中的每个处理器核将该处理器核在检查点处的运行数据保存到llc和影子寄存器集合中,并且在确定两个处理器核的输出数据或地址不匹配的情况下触发回滚中断,以基于llc和影子寄存器集合中所存储的运行数据将两个处理器核的运行数据恢复为两个处理器核在回滚中断之前的检查点处的运行数据。
60.示例2包括根据示例1的处理器,其中,llc被配置为当检查点中断被触发时从每个处理器核接收并存储该处理器核中具有已修改m缓存状态的缓存数据;并且影子寄存器集合被配置为当检查点中断被触发时从每个处理器核接收并存储该处理器核的寄存器数据和核状态数据,其中,运行数据包括缓存数据、寄存器数据和核状态数据。
61.示例3包括根据示例2的处理器,其中,llc被配置为:在检查点中断期间以临时t缓存状态存储来自每个处理器核的具有m缓存状态的缓存数据;在检查点中断结束时将所存储的具有t缓存状态的缓存数据的缓存状态变为m缓存状态;并且在回滚中断开始时将所存储的具有t缓存状态的缓存数据的缓存状态变为失效i缓存状态。
62.示例4包括根据示例3的处理器,其中,llc中所存储的具有t缓存状态的缓存数据被禁止从llc中移出。
63.示例5包括根据示例1的处理器,其中,锁步控制单元还被配置为:当llc中的存储
空间被占用的比例超过预定阈值时,触发检查点中断。
64.示例6包括根据示例1的处理器,其中,llc中的缓存数据被进行单错校正双错检测secded保护。
65.示例7包括根据示例1的处理器,其中,影子寄存器集合包括第一影子寄存器子集和第二影子寄存器子集,被配置为按乒乓模式交替地存储多个检查点处每个处理器核的寄存器数据和核状态数据。
66.示例8包括根据示例1的处理器,其中,影子寄存器集合位于每个处理器核的内部缓存以外的控制寄存器空间中。
67.示例9包括根据示例1的处理器,其中,第一处理器核与第二处理器核执行相同的指令,并且相对于第一处理器对指令的执行,第二处理器核对指令的执行被延迟了预定的时钟周期。
68.示例10包括根据示例1至9中任一示例的处理器,其中,每个处理器核被配置为:当检查点中断被触发时将处理器核中具有已修改m缓存状态的缓存数据冲刷到llc中,并将该缓存数据在处理器核中的缓存状态变为独占e或失效i缓存状态。
69.示例11包括根据示例1至9中任一示例的处理器,其中,每个处理器核基于risc-v指令集架构,并且被配置为:当检查点中断被触发时利用预定义的冲刷指令将处理器核中具有已修改m缓存状态的缓存数据冲刷到llc中,并将该缓存数据在处理器核中的缓存状态变为独占e或失效i缓存状态。
70.示例12包括一种用于处理器的锁步控制方法,该处理器包括两个处理器核,该两个处理器核包括第一处理器核和作为冗余处理器核的第二处理器核,该锁步控制方法包括:周期性地触发检查点中断,以指示两个处理器核中的每个处理器核将该处理器核在检查点处的运行数据保存到最后一级缓存llc和影子寄存器集合中;以及在确定两个处理器核的输出数据或地址不匹配的情况下触发回滚中断,以基于llc和影子寄存器集合中所存储的运行数据将两个处理器核的运行数据恢复为两个处理器核在回滚中断之前的检查点处的运行数据,其中,llc被两个处理器核共享使用,并且被配置为当检查点中断被触发时从每个处理器核接收并存储该处理器核中具有已修改m缓存状态的缓存数据;影子寄存器集合被配置为当检查点中断被触发时从每个处理器核接收并存储该处理器核的寄存器数据和核状态数据;并且运行数据包括缓存数据、寄存器数据和核状态数据。
71.上文中提到了“实施例”、
ꢀ“
一些实施例”,然而应理解,在各个实施例中提及的特征并不一定只能应用于该实施例,而是可能用于其他实施例。一个实施例中的特征可以应用于另一实施例,或者可以被包括在另一实施例中。
72.上文中提到了“第一”、“第二
”…
等序数词。然而应理解这些表述仅仅是为了叙述和引用的方便,所限定的对象并不存在次序上的先后关系。
73.本技术可以以其他的具体形式实现,而不脱离其精神和本质特征。例如,特定实施例中所描述的算法可以被修改,而系统体系结构并不脱离本技术的基本精神。因此,当前实施例在所有方面都被看作是示例性的而非限定性的,本技术的范围由所附权利要求而非上述描述定义,并且落入权利要求的含义和等同物的范围内的全部改变都被包括在本技术的范围中。
技术特征:
1.一种处理器,包括:两个处理器核,包括第一处理器核和作为冗余处理器核的第二处理器核;最后一级缓存llc,被所述两个处理器核共享使用;以及锁步控制单元,被配置为:周期性地触发检查点中断,以指示所述两个处理器核中的每个处理器核将该处理器核在检查点处的运行数据保存到所述llc和影子寄存器集合中,并且在确定所述两个处理器核的输出数据或地址不匹配的情况下触发回滚中断,以基于所述llc和所述影子寄存器集合中所存储的运行数据将所述两个处理器核的运行数据恢复为所述两个处理器核在所述回滚中断之前的检查点处的运行数据。2. 根据权利要求1所述的处理器,其中,所述llc被配置为当所述检查点中断被触发时从每个处理器核接收并存储该处理器核中具有已修改m缓存状态的缓存数据;并且所述影子寄存器集合被配置为当所述检查点中断被触发时从每个处理器核接收并存储该处理器核的寄存器数据和核状态数据,其中,所述运行数据包括所述缓存数据、所述寄存器数据和所述核状态数据。3.根据权利要求2所述的处理器,其中,所述llc被配置为:在所述检查点中断期间以临时t缓存状态存储来自每个处理器核的所述具有已修改m缓存状态的缓存数据;在所述检查点中断结束时将所存储的具有t缓存状态的缓存数据的缓存状态变为m缓存状态;并且在所述回滚中断开始时将所存储的具有t缓存状态的缓存数据的缓存状态变为失效i缓存状态。4.根据权利要求3所述的处理器,其中,所述llc中所存储的具有t缓存状态的缓存数据被禁止从所述llc中移出。5.根据权利要求1所述的处理器,其中,所述锁步控制单元还被配置为:当所述llc中的存储空间被占用的比例超过预定阈值时,触发所述检查点中断。6.根据权利要求1所述的处理器,其中,所述llc中的缓存数据被进行单错校正双错检测secded保护。7.根据权利要求1所述的处理器,其中,所述影子寄存器集合包括第一影子寄存器子集和第二影子寄存器子集,被配置为按乒乓模式交替地存储多个检查点处每个处理器核的寄存器数据和核状态数据。8.根据权利要求1所述的处理器,其中,所述影子寄存器集合位于每个处理器核的内部缓存以外的控制寄存器空间中。9.根据权利要求1所述的处理器,其中,所述第一处理器核与所述第二处理器核执行相同的指令,并且相对于所述第一处理器对所述指令的执行,所述第二处理器核对所述指令的执行被延迟了预定的时钟周期。10.根据权利要求1至9中任一权利要求所述的处理器,其中,每个处理器核被配置为:当所述检查点中断被触发时将所述处理器核中具有已修改m缓存状态的缓存数据冲刷到所述llc中,并将所述缓存数据在所述处理器核中的缓存状态变为独占e或失效i缓存状态。
11.根据权利要求1至9中任一权利要求所述的处理器,其中,每个处理器核基于risc-v指令集架构,并且被配置为:当所述检查点中断被触发时利用预定义的冲刷指令将所述处理器核中具有已修改m缓存状态的缓存数据冲刷到所述llc中,并将所述缓存数据在所述处理器核中的缓存状态变为独占e或失效i缓存状态。12. 一种用于处理器的锁步控制方法,其中,所述处理器包括两个处理器核,该两个处理器核包括第一处理器核和作为冗余处理器核的第二处理器核,所述锁步控制方法包括:周期性地触发检查点中断,以指示所述两个处理器核中的每个处理器核将该处理器核在检查点处的运行数据保存到最后一级缓存llc和影子寄存器集合中;以及在确定所述两个处理器核的输出数据或地址不匹配的情况下触发回滚中断,以基于所述llc和所述影子寄存器集合中所存储的运行数据将所述两个处理器核的运行数据恢复为所述两个处理器核在所述回滚中断之前的检查点处的运行数据,其中,所述llc被所述两个处理器核共享使用,并且被配置为当所述检查点中断被触发时从每个处理器核接收并存储该处理器核中具有已修改m缓存状态的缓存数据;所述影子寄存器集合被配置为当所述检查点中断被触发时从每个处理器核接收并存储该处理器核的寄存器数据和核状态数据;并且所述运行数据包括所述缓存数据、所述寄存器数据和所述核状态数据。
技术总结
本申请提供了一种用于处理器的锁步控制装置和方法。提供了一种处理器,包括:两个处理器核,包括第一处理器核和作为冗余处理器核的第二处理器核;最后一级缓存LLC,被两个处理器核共享使用;以及锁步控制单元,被配置为:周期性地触发检查点中断,以指示每个处理器核将该处理器核在检查点处的运行数据保存到LLC和影子寄存器集合中,并且在确定两个处理器核的输出数据或地址不匹配的情况下触发回滚中断,以基于LLC和影子寄存器集合中所存储的运行数据将两个处理器核的运行数据恢复为两个处理器核在回滚中断之前的检查点处的运行数据。核在回滚中断之前的检查点处的运行数据。核在回滚中断之前的检查点处的运行数据。
技术研发人员:张志远 纪海涛 刘凌 吴向斌
受保护的技术使用者:英特尔(中国)研究中心有限公司
技术研发日:2023.08.28
技术公布日:2023/10/5
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/