以锁步方式操作的监测处理器的制作方法

文档序号:30709599发布日期:2022-07-10 04:39阅读:129来源:国知局
以锁步方式操作的监测处理器的制作方法

1.本发明涉及片上系统(system-on-chip,soc)或多芯片模块(multi-chip module,mcm)的监测处理器。


背景技术:

2.在高集成系统中,已知利用在soc上以锁步方式运行的两个中央处理单元(cpu)。两个cpu在冗余备份配置下以相同的速度运行相同的代码。一个cpu充当主设备,另一个充当校验器。主设备的存储器访问请求被传播至系统存储器,而校验器的访问请求可能不被传播至系统存储器。提供锁步监测器以交叉校验主设备和校验器的存储器访问请求。具体地,锁步监测器查看主设备和校验器是否以相同的顺序请求对相同存储器地址的访问。锁步监测器还查看主设备和校验器是否请求以相同的顺序将相同数据写入存储器。主设备和校验器的相应存储器访问请求的偏差被识别出。
3.通常,锁步监测器以片外方式提供,并且不实时地执行交叉校验操作。因此,在导致两个cpu存储器访问请求偏差的错误和锁步监测器检测到的错误之间存在明显延迟。
4.期望提高以锁步方式操作的cpu交叉检验速度,并且还期望提高锁步监测器识别cpu的偏差行为的速率。


技术实现要素:

5.根据第一方面,提供了一种集成电路(ic)芯片,包括:系统电路,系统电路包括系统存储器,以及被配置为以锁步方式操作的主处理器和校验器处理器;以及监测电路,监测电路包括内锁步监测器、主跟踪器和校验器跟踪器,内锁步监测器被配置为:观察主处理器和校验器处理器的内部信号的状态,比较观察到的主处理器和校验器处理器的对应状态,并且如果观察到的对应状态不同:触发主跟踪器输出从主处理器的输出记录的已存储的主跟踪数据,并且触发校验器跟踪器输出从校验器处理器的输出记录的已存储的校验器跟踪数据。
6.内锁步监测器还可以被配置为如果观察到的对应状态不同,则输出观察到的对应状态。
7.内锁步监测器可以包括:内部主缓冲器,内部主缓冲器被配置为累积观察到的主处理器的状态;内部校验器缓冲器,内部校验器缓冲器被配置为累积观察到的校验器处理器的状态;以及比较器,比较器被配置为将来自内部主缓冲器的观察到的主处理器的每个状态与来自内部校验器缓冲器的观察到的校验器处理器的对应状态进行比较。
8.内锁步监测器还可以包括计时器,计时器被配置为:对在内部主缓冲器中累积的观察到的主处理器的状态与在内部校验器缓冲器中累积的观察到的校验器处理器的状态之间的经过时间进行计数;以及如果经过时间超过超时阈值,则输出警报。
9.监测电路还可以包括输出锁步监测器,输出锁步监测器被配置为:观察主处理器和校验器处理器请求的存储器访问,比较主处理器和校验器处理器请求的对应存储器访
问,并且如果请求的对应存储器访问不同:触发主跟踪器输出从主处理器的输出记录的已存储的主跟踪数据,触发校验器跟踪器输出从校验器处理器的输出记录的已存储的校验器跟踪数据,并且触发内锁步监测器输出观察到的主处理器和校验器处理器的状态。
10.内锁步监测器可以被配置为如果观察到的对应状态不同,则触发输出锁步监测器输出主处理器和校验器处理器请求的存储器访问。
11.监测电路还可以包括锁步访问过滤器,锁步访问过滤器被配置为:接收主处理器的输出;接收校验器处理器的输出;防止校验器处理器请求的存储器访问传播至系统存储器;并且从系统存储器向校验器处理器发送旨在用于主处理器的消息。
12.内锁步监测器可以被配置为如果观察到的对应状态不同,则触发锁步访问过滤器输出主处理器和校验器处理器请求的存储器访问。
13.系统电路还可以包括被配置另一校验器处理器,另一校验器处理器被配置为与主处理器和校验器处理器以锁步方式操作,并且内锁步监测器可以被配置为观察另一校验器处理器的内部信号的状态,比较观察到的另一校验器处理器与主处理器和校验器处理器的对应状态,并且如果任何观察到的对应状态不同:触发主跟踪器输出从主处理器的输出记录的已存储的主跟踪数据,并且触发校验器跟踪器输出从校验器处理器的输出记录的已存储的校验器跟踪数据。
14.内锁步监测器可以被配置为在主处理器和校验器处理器运行期间执行观察、比较和触发步骤。
15.根据第二方面,提供了一种ic芯片,包括:系统电路,系统电路包括系统存储器,以及被配置为以锁步方式操作的主处理器和校验器处理器;以及监测电路,监测电路包括输出锁步监测器和分析电路,输出锁步监测器被配置为:观察主处理器和校验器处理器请求的存储器访问,比较主处理器和校验器处理器请求的对应存储器访问,并且如果请求的对应存储器访问不同,触发分析电路输出记录的观察到的主处理器和校验器处理器的内部信号的状态。
16.监测电路还可以包括主跟踪器和校验器跟踪器,其中,如果请求的对应存储器访问不同,则输出锁步监测器可以被配置为:触发主跟踪器输出从主处理器的输出记录的已存储的主跟踪数据,并且触发校验器跟踪器输出从校验器处理器的输出记录的已存储的校验器跟踪数据。
17.分析电路可以包括主分析器,主分析器被配置为观察主处理器的内部信号的状态,以及校验器分析器,校验器分析器被配置为观察校验器处理器的内部信号的状态。
18.分析电路可以是内锁步监测器,并且被配置为:观察主处理器和校验器处理器的内部信号的状态,比较观察到的主处理器和校验器处理器的对应状态,并且如果观察到的对应状态不同:触发主跟踪器输出从主处理器的输出记录的已存储的主跟踪数据,并且触发校验器跟踪器输出从校验器处理器的输出记录的已存储的校验器跟踪数据。
19.如果观察到的对应状态不同,内锁步监测器可以被配置为触发输出锁步监测器输出主处理器和校验器处理器请求的存储器访问。
20.输出锁步监测器还可以被配置为如果请求的对应存储器访问不同,输出请求的对应存储器访问。
21.输出锁步监测器可以包括:输出主缓冲器,输出主缓冲器被配置为累积主处理器
的存储器访问请求;输出校验器缓冲器,输出校验器缓冲器被配置为累积校验器处理器的存储器访问请求;以及比较器,比较器被配置为将来自输出主缓冲器的主处理器的每个存储器访问请求与来自输出校验器缓冲器的校验器处理器的对应存储器访问请求进行比较。
22.输出锁步监测器还可以包括计时器,计时器被配置为:对在输出主缓冲器中累积的主处理器的存储器访问请求与在输出校验器缓冲器中累积的校验器处理器的存储器访问请求之间的经过时间进行计数;并且如果经过时间超过超时阈值,则输出警报。
23.监测电路还可以包括锁步访问过滤器,锁步访问过滤器被配置为:接收主处理器的输出;接收校验器处理器的输出;防止校验器处理器请求的存储器访问传播至系统存储器;并且从系统存储器向校验器处理器发送旨在用于主处理器的消息。
24.输出锁步监测器可以被配置为如果请求的对应存储器访问不同,则触发锁步访问过滤器输出主处理器和校验器处理器请求的存储器访问。
25.系统电路还可以包括另一校验器处理器,另一校验器处理器被配置为与主处理器和校验器处理器以锁步方式操作,并且输出锁步监测器被配置为:观察另一校验器处理器请求的存储器访问,比较另一校验器处理器与主处理器和校验器处理器请求的对应存储器访问,并且如果任何请求的对应存储器访问不同,则触发分析电路输出记录的观察到的主处理器和校验器处理器以及另一校验器处理器的内部信号的状态。
26.输出锁步监测器可以被配置为在主处理器和校验器处理器运行期间执行观察、比较和触发步骤。
附图说明
27.现在将参考附图通过示例的方式描述本发明。在附图中:
28.图1是示例性集成电路芯片设备的示意图;
29.图2是集成电路芯片设备上的示例性监测网络和系统电路的示意图;
30.图3是示例性输出锁步监测器的示意图;
31.图4是检测和响应以锁步方式操作的处理器的系统访问偏差的方法流程图;
32.图5是集成电路芯片设备上的示例性监测网络和系统电路的示意图;
33.图6是示例性内锁步监测器的示意图;并且
34.图7是检测和响应以锁步方式操作的处理器的内部信号状态偏差的方法流程图。
具体实施方式
35.以下公开描述了适合在集成电路芯片上实现的监测架构。集成电路芯片可以是soc或多芯片模块(mcm)。
36.图1、图2、图3、图5和图6是示例性系统架构以及系统架构内的部件的示意图。这些图以功能块的形式呈现结构。在这些图中已经省略了一些用于执行本领域公知的功能的功能块。图4和图7是响应以锁步方式(lockstep)操作的处理器的偏差行为的方法流程图。每个流程图均描绘了该流程图所示方法可能的执行顺序。然而,流程图并非旨在将所描述的方法限制为以所描绘的顺序实现。方法的步骤也可以以流程图中所描绘顺序的替代顺序来执行。
37.图1示出用于soc100的示例性监测网络的总体结构。监测电路101被布置为监测系
统电路102。例如以用于检测与安全或安全问题相关的系统电路的核心设备的不当操作的目的。
38.图2示出包括监测电路和系统电路的示例性集成电路芯片设备。在图2中,系统电路包括主设备201和校验器设备202。主设备(master device)包括处理器203和存储器204。校验器(checker device)包括处理器205和存储器206。校验器设备202的处理器205和存储器206在功能上与主设备201的处理器203和存储器204相同。校验器设备的处理器205被配置为与主设备的处理器203以锁步方式操作。换句话说,处理器205运行与处理器203相同的代码。适当地,处理器205以与处理器203相同的时钟速度运行代码。处理器203和205可以是时间同步的,从而同时运行相同的代码。替代地,处理器203和205可以在时间上偏移n个时钟周期。例如,0.5<n<32。这有助于减轻soc中的瞬时错误影响,该影响会导致在两个处理器执行代码时发生相同的错误。处理器203和205可以由同一时钟来计时。如果处理器203和205都直接从同一时钟接收相同的时钟信号,则处理器203和20是时间同步的。替代地,可以将延迟引入由其中一个处理器相对于另一处理器接收的时钟信号中,以实现n个周期的时间偏移。处理器可以替代地由不同的时钟来计时。这些不同的时钟可以具有相同的时钟频率。在这种情况下,处理器在时间上偏移n个时钟周期。不同的时钟可以具有不同的时钟频率。这导致处理器以不同的时钟速度操作。
39.尽管在图2中仅示出了一个校验器设备202,但另一校验器设备也可以集成到soc上。每个另一校验器设备包括处理器和存储器,处理器和存储器在功能上分别与主设备201的处理器203和存储器204相同,并且如上所述以锁步方式操作。因此,主设备201和一个或多个校验器设备202形成冗余备份配置。
40.主设备201是发起诸如网络中的读取/写入请求的业务的设备。主设备的示例是诸如dsp(数字信号处理器)、视频处理器、应用处理器、cpu(中央处理器单元)和gpu(图形处理器单元)的处理器。任何可编程处理器均可以是主设备。主设备的其它示例是具有dma(直接存储器访问)能力的设备,诸如用于将数据从一个位置移动至另一位置的传统dma、具有dma能力的自主协处理器(诸如加密(encryption)引擎),以及具有dma能力的外围设备(诸如以太网控制器)。
41.图2的系统电路还包括系统存储器207。系统存储器可以是soc上的单个存储器。替代地,系统存储器可以分布在soc之间。在以下描述的方法的上下文中,主设备向系统存储器207发出读取/写入请求。
42.图2的系统电路还包括其它元件部分208。其它元件部分208可以包括上面列出的其它类型的主设备。其它元件部分208还可以包括响应于主设备的命令的从设备。从设备的示例是片上存储器、用于片外存储器(诸如dram)的存储器控制器、以及外围单元。
43.最后,图2的系统电路还包括互连电路209。互连电路形成用于soc的通信骨干,系统电路的部件通过该通信骨干彼此通信。这些通信是双向的。互连电路分别通信连接至主设备201、校验器设备202、系统存储器207和其它元件部分208中的每一个。互连电路209的拓扑是依赖于soc的。例如,互连电路209的拓扑可以包括以下类型的网络中的任何一个或组合,以在系统电路周围传输通信:总线网络、环形网络、树形网络或网状网络。
44.监测电路包括若干监测部件,这些监测部件均通过监测互连电路211连接至通信器210。适当地,监测部件和监测互连电路211之间的连接是双向的。适当地,监测互连电路
211和通信器210之间的连接是双向的。通信器210可以是用于与片外实体通信的接口。例如,监测部件可以经由通信器210与片外分析器通信。附加地或替代地,通信器210可以被配置为与其它片上实体(entities on-chip)通信。例如,监测部件可以经由通信器210与片上分析器通信。尽管图2示出了一个通信器210,但可以在soc上集成任何数量的通信器。所采用的通信器根据待执行连接的类型来选择。示例性通信器包括:jtag、并行跟踪输入/输出、基于aurora的高速串行接口;以及诸如usb、以太网、rs232、pcie和can的系统接口的重用。
45.监测互连电路211的拓扑可以包括以下类型的网络中的任何一个或组合,以在监测电路周围传输通信:总线网络、环形网络、树形网络或网状网络。监测部件与通信器210之间的通信链路是双向的。
46.监测电路包括输出锁步监测器212。输出锁步监测器212接收主设备201的输出和校验器设备202的输出作为输入。输出锁步监测器212观察接收到的主设备201和校验器设备202的输出,并对其进行比较。如果主处理器和校验器处理器被计时为相同速度,则由输出锁步监测器212比较的相应项可以是从单个比特到整个业务之间的任何长度。如果主处理器和校验器处理器被计时为不同速度,则由输出锁步监测器212比较的相应项更长,即为整个业务。换句话说,因为主处理器和校验器处理器不是时间同步的,所以输出锁步监测器212要等待主处理器和校验器处理器两者完成整个业务之后(将在不同的时间完成)才能对主处理器和校验器处理器的输出进行比较。输出锁步监测器212的输出经由监测互连电路211连接至通信器210。
47.图3示出输出锁步监测器212的示例内部结构。主处理器203的输出作为输入被提供给输出主缓冲器301。校验器处理器205的输出作为输入被提供给输出校验器缓冲器302。如果每个缓冲器301和302中存在至少一个项,则将每个缓冲器中的居前项输出至比较器303。比较器303比较两个居前项。比较器的输出标识项是相同的还是不同的。将比较器输出被输入至消息构造器305。消息构造器305生成消息。适当地,如果比较器识别出缓冲器301和302的头项不同,则消息构造器305生成消息。该消息可以标识主处理器203和校验器处理器205的对应输出是不同的。消息可以附加地包括主处理器203和校验器处理器205的不同输出。然后,消息构造器305将该消息从输出锁步监测器输出至监测互连电路211。如将在下面进一步讨论的,可以响应于该消息而采取各种不同的动作。
48.输入缓冲器301和302的项可以是主处理器203和校验器处理器205访问系统存储器207的请求。在该示例中,输出锁步监测器212检查由主处理器203命令的相同存储器访问是否也由校验器处理器205以相同的顺序命令。例如,可以从主设备输出中提取主处理器203的读取请求并输入至输出主缓冲器301,并且可以从校验器设备输出中提取校验器处理器202的读取请求并输入至输出校验器缓冲器302。作为另一示例,可以从主设备输出中提取主处理器203的写入请求并输入至输出主缓冲器301,并且可以从校验器设备输出中提取校验器处理器202的写入请求并输入至输出校验器缓冲器302。输出锁步监测器212可以包括成组输出主缓冲器,每个输出主缓冲器用于存储主处理器203的不同输出。输出锁步监测器212还可以包括对应的成组输出校验器缓冲器,每个输出校验器缓冲器用于存储与主处理器203的输出对应的校验器处理器205的不同输出。输出锁步监测器212可以包括一个或成组比较器,用于比较来自相应的输出主缓冲器和输出校验器缓冲器的对应处理器输出项。(一个或多个)比较器输出至消息构造器305,消息构造器305构造关于识别主处理器203
和校验器处理器205的任何对应输出之间的差异的消息。
49.适当地,输出锁步监测器在处理器203和205运行期间操作。因此,主处理器203和生成不同输出的校验器处理器205之间存在最小延迟,并且该输出由输出锁步监测器识别并传送至监测互连电路211。
50.输出锁步监测器还可以包括计时器304。计时器304对在输出主缓冲器301中累积的主处理器203的输出与在输出校验器缓冲器302中累积的校验器处理器205的对应输出之间的经过时间进行计数。计时器304具有超时阈值。如果在两个对应输出处于缓冲器301和302中之前,计数达到超时阈值的值,则计时器将该指示输出至消息构造器305。消息构造器305生成警报消息,并将警报消息从输出锁步监测器212输出至监测互连电路212。
51.回到图2,监测电路还包括锁步访问过滤器213。锁步访问过滤器213接收主设备201的输出和校验器设备202的输出作为输入。锁步访问过滤器213具有到主设备201和校验器设备202的双向连接。锁步访问过滤器213还具有到互连电路209的双向连接。锁步访问过滤器213还输出至监测互连电路211,并且具有与监测互连电路211的双向连接。锁步访问过滤器213可以设置在输出锁步监测器212内部。替代地,如图2所示,锁步访问过滤器可以设置在输出锁步监测器212的外部。锁步访问过滤器213过滤主设备和校验器设备的输出,然后发送至互连电路209以路由(routing)至其它系统电路。该操作在主处理器203和校验器处理器205运行期间执行。
52.例如,锁步访问过滤器213可以接收主处理器203和校验器处理器205两者的系统存储器访问请求。锁步访问过滤器213可以防止由校验器处理器请求的系统存储器访问传播至系统存储器207。例如,锁步访问过滤器213可以从主处理器203和校验器处理器205接收对应的读取请求。锁步访问过滤器213通过互连电路209将主处理器203的读取请求转发到系统存储器207上。锁步访问过滤器213防止校验器处理器203的读取请求经由互连电路209传播至系统存储器207。然后,锁步访问过滤器213经由互连电路209从系统存储器207接收对主处理器203的读取请求的读取响应。锁步访问过滤器213将来自系统存储器207的读取响应转发至主处理器203和校验器处理器205两者上。在存在若干读取响应的情况下,锁步访问过滤器213以相同的顺序将读取响应转发至主处理器203和校验器处理器205两者。锁步访问过滤器213可以包括计数器,计数器对从校验器处理器305接收的读取请求进行计数。只有当计数器大于零时,锁步访问过滤器213才将下一读取响应转发至校验器处理器305。这确保了在从校验器处理器305发送读取请求之前,不向校验器处理器305发送读取响应。
53.作为另一示例,锁步访问过滤器213可以从主处理器203和校验器处理器205接收对应的写入请求。锁步访问过滤器213通过互连电路209将主处理器203的写入请求转发到系统存储器207上。锁步访问过滤器213终止校验器处理器203的写入请求。因此,防止了校验器处理器205的写入请求经由互连电路209传播至系统存储器207。一旦请求的数据已经写入系统存储器207,锁步访问过滤器213就经由互连电路209从系统存储器207接收写入响应。锁步访问过滤器213将来自系统存储器207的写入响应转发至主处理器203和校验器处理器205两者上。在存在若干写入响应的情况下,锁步访问过滤器213以相同的顺序将写入响应转发至主处理器203和校验器处理器205两者。锁步访问过滤器213可以包括计数器,计数器对从校验器处理器305接收的写入请求进行计数。只有当计数器大于零时,锁步访问过
滤器213才将下一写入响应转发至校验器处理器305。这确保了在从校验器处理器305发送写入请求之前,不向校验器处理器305发送写入响应。
54.锁步访问过滤器213可以过滤从如上所述的主控处理器和校验器处理器接收的读取请求和写入请求。在这种情况下,锁步访问过滤器213具有读取计数器,用于对来自校验器处理器的读取请求进行计数的,并且单独地具有写入计数器,用于对来自校验器处理器的写入请求进行计数。
55.图2的监测电路还包括主跟踪器214。主跟踪器214接收主处理器203的输出。主跟踪器214将主处理器203的输出记录在缓冲器中。例如,主跟踪器214可以包括循环缓冲器,主处理器203的输出记录在循环缓冲器中。该缓缓冲器被布置为一旦达到其存储容量,就以循环方式重写较早接收的数据。当被触发时,主跟踪器214经由监测互连电路211将其缓冲器的内容作为主跟踪数据输出至通信器210。当被触发时,随着其它主跟踪数据被收集在主跟踪器214的缓冲器中,主跟踪器214还可以将其它主跟踪数据输出至通信器210。
56.图2的监测电路还包括校验器跟踪器215。校验器跟踪器215接收校验器处理器205的输出。校验器跟踪器215将校验器处理器205的输出记录在缓冲器中。例如,校验器跟踪器215可以包括循环缓冲器,校验器处理器205的输出记录在循环缓冲器中。该缓冲器被布置为一旦达到其存储容量,就以循环方式重写较早接收的数据。当被触发时,校验器跟踪器215经由监测互连电路211将其缓冲器的内容作为校验器跟踪数据输出至通信器210。当被触发时,随着另一校验器跟踪数据被收集在校验器跟踪器215的缓冲器中,校验器跟踪器215还可以将另一校验器跟踪数据输出至通信器210。
57.图2的监测电路还包括由主分析器216和校验器分析器217组成的分析电路。主分析器216连接至主处理器203。主分析器216输出至监测互连电路211。校验器分析器217连接至校验器处理器205。校验器分析器217输出至监测互连电路211。这些分析器216和217中的每一个观察与之相连的处理器的内部信号的状态。然后,可以将这些观察到的状态记录在分析器内的缓冲器中。缓冲器可以是例如循环缓冲器。循环缓冲器被布置为一旦达到其存储容量,就以循环方式重写较早的观察状态。观察到的内部信号可以是以下一个或多个:由处理器执行的指令、连接至处理器的存储器的寄存器(诸如控制状态寄存器)的状态、连接至处理器的存储器的寄存器中的特定条目的值、程序计数器中断状态、处理器的停机信号。当被触发时,每个分析器216、217经由监测互连电路211将其缓冲器的内容输出至通信器210。当被触发时,每个分析器216、217还可以将观察到的其它状态输出至通信器210,因为这些观察到的状态都被记录在分析器的缓冲器中。
58.现在将参考图4描述用于检测和响应由以锁步方式操作的处理器执行的偏差存储器访问的方法。
59.在步骤401,输出锁步监测器212从主处理器203和校验器处理器205接收请求的对应存储器访问。这些请求存储器访问可以存储在例如缓冲器301和302中。在步骤402,如果已经从主处理器和校验器处理器二者接收到至少一个请求存储器访问,则确定对于由主处理器执行的存储器访问,由校验器处理器执行的对应存储器访问是否不同。步骤402可以例如在比较器303处实现。如果由校验器处理器执行的对应存储器访问相同,则该方法返回到步骤402,针对主设备的下一次存储器访问重复上述问题。如果在步骤402中,由校验器处理器执行的对应存储器访问不同,则方法进行至步骤403和404。在步骤403,输出锁步监测器
212输出不同的对应存储器访问。
60.在步骤404,生成触发消息并将触发消息发送至监测互连电路211。例如,触发消息可以由消息构造器305生成和发送。监测互连电路211将触发消息路由至其它监测部件。例如,在步骤405,监测互连电路211可以将触发消息路由至主分析器216和校验器分析器217。在步骤406,主分析器216通过经由监测互连电路211将所记录的观察到的主处理器的内部信号的状态从其缓冲器输出至通信器210来响应触发的接收。主分析器216还可以通过在来自主处理器的内部信号被收集在主分析器216的缓冲器中时,输出观察到的这些内部信号的其它状态来响应触发的接收。类似地,在步骤406,校验器分析器217通过经由监测互连电路211将所记录的观察到的校验器处理器的内部信号的状态从其缓冲器输出至通信器210来响应触发的接收。校验器分析器217还可以通过在来自校验器处理器的内部信号被收集在校验器分析器217的缓冲器中时,输出观察到的这些内部信号的其它状态来响应触发的接收。然后,通信器210可以将观察到的状态路由至片外或片上分析器以用于后续分析。上述随后分析可以离线进行。换句话说,不在处理器203和205运行期间进行。
61.在步骤407,监测互连电路211还可以将触发消息路由至主跟踪器214和校验器跟踪器215。在步骤408,主跟踪器214通过经由监测互连电路211将所记录的主处理器203的输出作为主跟踪数据,从其缓冲器输出至通信器210来响应触发的接收。随着其它主跟踪数据被收集在主跟踪器214的缓冲器中,主跟踪器214还可以通过输出其它主跟踪数据来响应触发的接收。类似地,在步骤408,校验器跟踪器215通过经由监测互连电路211将所记录的校验器处理器205的输出作为校验器跟踪数据,从其缓冲器输出至通信器210来响应触发的接收。随着其它校验器跟踪数据被收集在校验器跟踪器215的缓冲器中,校验器跟踪器215还可以通过输出其它主跟踪数据来响应触发的接收。然后,通信器210可以将跟踪数据路由至片外或片上分析器以用于后续分析。上述随后分析可以离线进行。换句话说,不在处理器203和205运行期间进行。
62.在步骤409,监测互连电路211还可以将触发消息路由至锁步访问过滤器213。在步骤410,锁步访问过滤器213通过经由监测互连电路211向通信器210输出主处理器和校验器处理器请求的存储器访问来响应触发的接收。然后,通信器210可以将请求的存储器访问路由至片外或片上分析器以用于后续分析。上述随后分析可以离线进行。换句话说,不在处理器203和205运行期间进行。
63.除了触发监测部件之外,监测互连电路还可以向通信器210发送警报,然后通信器210将该警报路由至芯片外或芯片上分析器。监测互连电路可以使主处理器203和校验器处理器205暂停处理。监测互连电路可以使主处理器203和校验器处理器205(或整个系统电路)复位。
64.图5示出包括监测电路和系统电路的另一示例性集成电路芯片设备。图5的设备与图2的设备的不同之处在于,没有单独的主分析器216和校验器分析器217。相反,图5的设备具有连接至主处理器203和校验器处理器205两者的内锁步监测器501。内锁步监测器501输出至监测互连电路211。内锁步监测器501观察主处理器203和校验器处理器205两者的内部信号的状态。然后,可以将观察到的这些状态记录在分析器内的缓冲器中。每个缓冲器可以是例如循环缓冲器。观察到的内部信号可以是以下一个或多个:由处理器执行的指令、连接至处理器的存储器的寄存器(诸如控制状态寄存器)的状态、连接至处理器的存储器的寄存
器中的特定条(entry)目的值、程序计数器中断状态、处理器的停机信号。分析器可以将记录的观察到的状态输出至监测互连电路211。图5的设备的其它部件与图2相同,因此这里不再赘述。
65.图6示出内锁步监测器501的示例性内部结构。主处理器203的内部信号的状态作为内部主缓冲器601的输入提供。校验器处理器205的内部信号的状态作为内部校验器缓冲器602的输入提供。如果每个缓冲器601和602中存在至少一个项,则将每个缓冲器中的居前项输出至比较器603。比较器603比较两个居前项。比较器的输出标识项是相同的还是不同的。将比较器输出输入至消息构造器605。消息构造器605生成消息。适当地,如果比较器识别出缓冲器601和602的头项不同,则消息构造器605生成消息。该消息可以标识主处理器203和校验器处理器205的内部信号的对应状态是不同的。消息可以附接地包括来自主处理器203和校验器处理器205的内部信号的不同状态。然后,消息构造器605将该消息从内锁步监测器输出至监测互连电路211。如将在下面进一步讨论的,可以响应于该消息而采取各种不同的动作。
66.适当地,内锁步监测器501在处理器203和205运行期间操作。因此,主处理器203和校验器处理器205之间具有最小延迟,最小延迟具有不同的内部信号状态,并且这些不同的状态由内锁步监测器501识别并传送至监测互连电路211。
67.内锁步监测器还可以包括计时器604。计时器604对在内部主缓冲器601中累积的主处理器203的内部信号的状态与在内部校验器缓冲器602中累积的校验器处理器205的内部信号的对应状态之间的经过时间进行计数。计时器604具有超时阈值。如果在两个对应输出处于缓冲器601和602中之前,计数达到该超时阈值,则计时器将该信息输出至消息构造器605。消息构造器605生成警报消息,并将警报消息从内锁步监测器501输出至监测互连电路212。
68.图4的方法可以在图5的集成电路芯片设备上实现。除了步骤405和406之外,该方法的所有步骤都是相同的。代替步骤405,将触发器路由至内锁步监测器501。内锁步监测器501通过经由监测互连电路211将所记录的观察到的主处理器和校验器处理器的对应内部信号的状态从其缓冲器输出至通信器210来响应触发的接收。然后,通信器210可以将观察到的状态路由至片外或片上分析器以用于后续分析。上述随后分析可以离线进行。换句话说,不在处理器203和205运行期间进行。
69.现在将参照图7描述用于检测和响应以锁步方式操作的处理器的内部信号的偏差状态的方法。
70.在步骤701,内锁步监测器501观察来自主处理器203和校验器处理器205的内部信号的对应状态。内部信号的这些状态可以存储在例如缓冲器601和602中。在步骤702,如果已经从主处理器和校验器处理器二者接收到内部信号的至少一个状态,则确定对于主处理器的内部信号的状态,校验器处理器的内部信号的对应状态是否不同。步骤702可以例如在比较器603处实现。如果校验器处理器的内部信号的对应状态是相同的,则该方法返回到步骤702,针对主处理器内部信号的下一状态重复上述问题。如果在步骤702中,校验器处理器的内部信号的对应状态是不同的,则方法进行至步骤703和704。在步骤703,内锁步监测器501输出不同的对应内部信号状态。
71.在步骤704,生成触发消息并将触发消息发送至监测互连电路211。例如,触发消息
可以由消息构造器605生成和发送。监测互连电路211将触发消息路由至其它监测部件。例如,在步骤705,监测互连电路211可以将触发消息路由至主跟踪器214和校验器跟踪器215。在步骤706,主跟踪器214通过经由监测互连电路211将所记录的主处理器203的输出作为主跟踪数据,从其缓冲器输出至通信器210来响应触发的接收。随着其它主跟踪数据被收集在主跟踪器214的缓冲器中,主跟踪器214还可以通过输出其它主跟踪数据来响应触发的接收。类似地,在步骤706,校验器跟踪器215通过经由监测互连电路211将所记录的校验器处理器205的输出作为校验器跟踪数据,从其缓冲器输出至通信器210来响应触发的接收。随着其它校验器跟踪数据被收集在校验器跟踪器215的缓冲器中,校验器跟踪器215还可以通过输出其它主跟踪数据来响应触发的接收。然后,通信器210可以将跟踪数据路由至片外或片上分析器以用于后续分析。上述随后分析可以离线进行。换句话说,不在处理器203和205运行期间进行。
72.在步骤707,监测互连电路211还可以将触发消息路由至输出锁步监测器212。在步骤708,输出锁步监测器212通过经由监测互连电路211向通信器210输出主处理器和校验器处理器请求的存储器访问来响应触发的接收。然后,通信器210可以将请求的存储器访问路由至片外或片上分析器以用于后续分析。上述随后分析可以离线进行。换句话说,不在处理器203和205运行期间进行。
73.在步骤709,监测互连电路211还可以将触发消息路由至锁步访问过滤器213。在步骤710,锁步访问过滤器213通过经由监测互连电路211向通信器210输出主处理器和校验器处理器请求的存储器访问来响应触发的接收。然后,通信器210可以将请求的存储器访问路由至片外或片上分析器以用于后续分析。上述随后分析可以离线进行。换句话说,不在处理器203和205运行期间进行。
74.除了触发监测部件之外,监测互连电路还可以向通信器210发送警报,然后通信器210将该警报路由至芯片外或芯片上分析器。监测互连电路可以使主处理器203和校验器处理器205暂停处理。监测互连电路可以使主处理器203和校验器处理器205(或整个系统电路)复位。
75.图2的主分析器216和校验器分析器217可以在运行期间被配置为改变其观察到的内部信号的状态。例如,片上或片外分析器可以经由监测互连电路211向主分析器和校验器分析器发送配置命令,命令主分析器和校验器分析器观察主处理器203和校验器处理器205的特定内部信号。类似地,图5的内锁步监测器501可以在运行期间被配置为改变其观察到的内部信号的状态。例如,片上或片外分析器可以经由监测互连电路211向内锁步监测器501发送配置命令,命令内锁步监测器501观察主处理器203和校验器处理器205的特定内部信号。在检测到触发时,片上或片外分析器可以向内锁步监测器501发送配置命令,命令内锁步监测器501改变正在观察的主处理器203和校验器处理器205的特定内部信号。
76.如上所述,(图2或图5的)集成电路芯片设备可以包括多于一个校验器设备202。每个另一校验器设备包括另一校验器处理器和另一校验器存储器。每个另一校验器处理器与主处理器和校验器处理器以锁步方式操作。输出锁步监测器212可以包括用于每个附加的另一校验器处理器的附加输出校验器缓冲器。比较器303可以被配置为比较所有主处理器、校验器处理器和每个另一校验器处理器的对应输出。如果任何对应输出不同,则消息构造器305生成触发并发送至监测互连电路。如上所述,监测互连电路211对该触发做出响应。锁
步访问过滤器213对每个另一校验器处理器执行与对校验器处理器相同的动作。
77.在图2的集成电路芯片设备的情况下,为每个另一校验器设备提供另一校验器分析器和另一校验器跟踪器。每个另一校验器分析器和另一校验器跟踪器分别如前述校验器分析器和校验器跟踪器那样操作。在图4的步骤405和407中,每个另一校验器分析器和另一校验器跟踪器从监测互连电路接收触发消息,并以与校验器分析器和校验器跟踪器相同的方式做出响应。
78.在图5的集成电路芯片设备的情况下,内锁步监测器501可以包括用于每个附加的另一校验器处理器的附加内部校验器缓冲器。比较器603可以被配置为比较所有主处理器、校验器处理器和每个另一校验器处理器的内部信号的对应状态。如果任何内部信号的对应状态不同,则消息构造器605生成触发并发送至监测互连电路。如上所述,监测互连电路211对该触发做出响应。
79.所有的校验器处理器和另一校验器处理器均可以与主处理器同时操作。替代地,校验器处理器和另一校验器处理器可以使用表决或另一冗余方案。在表决系统中,可能需要具有到主设备的不同对应输出的多于m个校验器设备,以使消息构造器生成触发并发送至监测互连电路。m》1。例如,m可以是2。校验器处理器和另一校验器处理器可以替代地以分离/锁定模式操作,在该模式下,每个校验器处理器的锁步功能可以与主处理器动态地接合和分离。这允许处理器在有容量时以冗余模式运行,并且在需要时还分别执行不同的代码以实现更高性能的soc。
80.本文描述的设备和方法通过校验主处理器可靠、安全地操作来辅助soc的功能安全性。
81.图1、图2、图3、图5和图6中所示的socs的每个部件均可以用专用硬件实现。这样做使得本文描述的方法能够以线速实现,从而不增加soc的执行开销。替代地,图1、图2、图3、图5和图6中所示的socs的每个部件均可以用软件实现。一些部件可以用软件实现,而其它部件可以用专用硬件实现。
82.所描述的soc被适当地并入基于计算的设备中。基于计算的设备可以是电子设备。适当地,基于计算的设备包括一个或多个处理器,用于处理计算机可执行指令以控制设备的操作,从而实现本文描述的方法。计算机可执行指令可以使用诸如存储器的任何计算机可读介质来提供。本文描述的方法可以由有形存储介质上的机器可读形式的软件来执行。可以在基于计算的设备处提供软件以实现本文描述的方法。
83.以上描述将系统电路和监测电路描述为包含在同一soc上。在一个替代实施方式中,系统电路和监测电路包含在mcm的两个或更多个集成电路芯片上。在mcm中,集成电路芯片通常堆叠或相邻地设置在内插衬底上。一些系统电路可以位于一个集成电路芯片上,其它系统电路可以位于mcm的不同集成电路芯片上。类似地,监测电路可以分布在mcm的多于一个集成电路芯片上。因此,在soc的上下文中描述的方法和装置也适用于mcm的上下文。
84.申请人由此孤立地公开了本文的每个单独特征以及两个或更多个此类特征的任意组合,其公开程度为此类特征或组合能够根据本领域技术人员的公知常识基于本说明书整体执行,无论此类特征或特征组合是否解决本文所公开的任何问题,但不限制权利要求的范围。申请人指出,本发明的各方面可以由任何此类单独特征或特征组合组成。鉴于前面的描述,对于本领域技术人员来说,显然可以在本发明的范围内进行各种修改。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1