高可靠性处理器的片上机制的制作方法

文档序号:6375084阅读:123来源:国知局
专利名称:高可靠性处理器的片上机制的制作方法
发明
背景技术
领域本发明涉及微处理器,具体来讲涉及用于处理启用FRC的处理器中的错误的机制。
背景技术
服务器及其它高端计算和通信系统被设计成能提供高水平的可靠性和可用性。软错误对这些属性中的所有属性都提出了一个主要的难题。软错误是由高能粒子(例如,α粒子)之间的碰撞以及存储节点的电荷而引起的。它们一般是在诸如高速缓存、TLB等等之类的存储阵列中,所述存储阵列包括大量的存储节点的电荷。它们还以随机状态的元件和逻辑出现。软错误的出现率(软错误率或SER)可能会随着设备几何尺寸缩小和设备密度增加而升高。
高度可靠的系统包含保护措施以便在软错误导致信号不通(silent)(例如,漏检、数据损坏(SDC))之前检测并管理软错误。然而,若到了支持高可靠性工作的错误检测/处理机制使系统远离其正常工作的程度,则会降低所述系统的可用性。例如,如果检测到错误,则一个这样的机制就将系统重置到其最近已知的有效状态。所述系统当它忙于重置操作时不可用来执行其指定的任务。
一个众所周知的用于检测软错误的机制就是功能性冗余检查(FRC)。针对FRC启用的单个处理器可以包括复制的指令执行核心,在所述指令执行核心上运行相同的指令码。依据特定的实施例,每个复制的执行核心除基本的执行单元(整数、浮点、加载存储等等)之外还可以包括一个或多个高速缓存、寄存器堆和支持资源。FRC硬件比较每个核心产生的结果,并且如果检测到差异的话,则所述FRC系统就把控制权传递给错误处理例程。在其上比较来自不同执行核心的结果的点表示系统的FRC边界。在FRC边界上未检测到的错误可能会导致SDC。
由于FRC错误仅仅表示执行核心在结果上不一致,因而FRC错误是可检测的而不是可恢复的。如上所述,所述FRC错误处理例程通常将系统重置到可靠数据的最后一个已知点。这个重置机制是相对费时的。它使系统远离其正常工作,从而降低了系统可用性。
FRC仅仅是一种用于处理软错误的机制,而对于随机逻辑和随机状态的元件而言,它是初级的机制。阵列结构显现了不同的画面。阵列结构典型地包括奇偶校验和/或ECC硬件,所述奇偶校验和/或ECC硬件通过检查数据的属性来检测软错误。在很多情况下,所述系统能够利用相对快速的硬件或软件机制来纠正数据损坏所产生的错误。然而,对于启用FRC的处理器而言,这类错误很可能被表明成FRC错误,因为它们占用了锁步(lock-step)以外的执行核心。通过重置机制来处理这些另外的可恢复错误降低了系统可用性。
本发明致力解决用于有效地在启用FRC的处理器中组合可恢复的和无法恢复的错误处理机制的机制。
附图简要说明参照下列附图理解本发明,在附图中相似的元件是用相同的数字标记的。提供这些附图以举例说明本发明的选定实施例,而不是用于限定本发明的范围。


图1是包括双执行核心和FRC检测和处理逻辑的处理器的框图;图2是图1的处理器的实施例的框图,所述处理器能在多种模式下进行工作;图3A是实现图2的多模式处理器的计算系统的一个实施例的框图;图3B是用于发信号通知图3A的计算系统中的可恢复错误的机制的框图;图4是表示图3A的计算系统的数据路径的框图;图5是表示用于从执行核心中的软错误恢复的机制的一个实施例的流程图;图6是表示用于从多执行核心处理器中的软错误恢复的机制的一个实施例的流程图;图7是表示减轻可恢复的和无法恢复的错误机制之间的竞赛状况的FRC检验器的一个实施例的框图。
发明详述下列论述阐述了许多的具体细节以便于对本发明的彻底理解。然而,得益于本公开的利益的本领域的普通技术人员将会认识到本发明可以在没有这些具体细节的情况下加以实施。另外,为了把注意力集中在本发明的特征上,没有详细描述各种众所周知的方法、程序、组件和电路。例如,本发明利用双核心处理器来举例说明的多个方面,但是本领域的技术人员将会认识到可以按照对重置和恢复机制的适当修改来使用两个核心以上的核心。
图1是依照本发明的表示启用FRC的处理器110的一个实施例的框图。处理器110包括第一和第二执行核心120(a)、120(b)(一般是,执行核心120)、FRC检验器130、错误检测器140、恢复模块150、重置模块160和共享资源170。用虚线104表示FRC边界的一部分。为了说明起见,恢复模块150和重置模块160都示作为处理器110的一部分。这些模块可以完全或部分地作为硬件、固件或软件来实现,并且位于处理器小片之上或之外。同样,共享资源170可以包括位于处理器小片上的组件以及位于一个或多个不同的小片上的组件。
每个执行核心120都包括分别进入FRC检验器130和错误检测器140的数据流水线124和错误流水线128。数据流水线124表示对各种类型的数据进行操作的逻辑,因为它是经处理器110朝FRC检验器130移动的。数据流水线124所处理的数据可以包括在代码执行期间通过处理器110产生和分级的结果操作数、状态标志、地址、指令等等。错误流水线128表示对各种类型的数据进行操作以检测数据中的错误并向错误检测器140提供适当信号的逻辑。例如,所述信号可以是表示从处理器110的各种存储阵列(未示出)中检索出的数据的奇偶校验或ECC状态的一个或多个位(标志)。当遭破坏的数据被存取时,这些阵列中的软错误可以表现为奇偶校验或ECC错误标志。
如果错误从任一核心120到达错误检测器140,则就激活恢复模块150以执行恢复例程。可以以相对低的等待时间来通过硬件、软件、固件或这些硬件、软件和固件的某种组合来实现恢复。例如,存在极小的可能性就是数据是在相同的(或几乎相同的)时间上、在两个执行核心120中遭破坏的。这留下可用数据的未遭破坏的复本以恢复到处理器110的数据完整性。然而,如果在激活恢复模块150之前允许来自一个执行核心的遭破坏的数据和来自其它执行心的未遭破坏的数据版本到达FRC检验器130,则将触发FRC错误。由于FRC错误是不可恢复的,因此如果FRC检验器130在已检测到下层的奇偶校验/ECC错误之前发信号通知FRC错误,则重置模块160就会重置系统。
并非所有的FRC错误对于下层的奇偶校验/ECC或其它可纠正的软错误而言都是可追踪的。对于那些而言,错误检测器140寻址下层的软错误比当遭破坏的数据到达FRC边界104时的FRC检验器寻址FRC错误更快。如上所述,重置过程具有比恢复过程明显更长的等待时间,并且如果能够通过恢复模块150来纠正所述错误的话,则将会避免这种情况的发生。另外,重置通常引起整个系统瘫痪,而恢复仅仅导致临时的性能损失。为此,由于执行核心120不再在锁步中,因此如果错误检测器140检测到任一条错误流水线128中的错误,则就暂时地FRC检验器130无效。
执行核心120在正常的FRC模式期间在锁步中工作,但数据流水线124和错误流水线128可以相对独立地进行工作。例如,BCC硬件是相对复杂的,因此是相对慢的,特别是对于2位的错误而言更是如此。发信号通知这样一个错误的标志可以在与之相关联的数据到达FRC检验器130之前、之后和同时到达错误检测器140。这种灵活性通常是有利的。例如,它允许数据在它的错误状态得到确定之前被投机性地使用。由于软错误是相对比较罕见的,而错误流水线128通常同数据流水线124一样快,因此这种灵活性是纯积极的。只要错误标记及时地到达错误检测器140以便在FRC检验器130对因遭破坏的数据而造成的失配起作用之前使该FRC检验器无效,恢复例程就占用相对低的等待时间。
正如下面论述的那样,处理器110可以实施减轻可恢复的错误机制和无法恢复的错误机制之间的竞赛的策略。例如,可以在FRC模式下使用流线化的发信号机制,以便万一发生非FRC错误时加速FRC检验器130的无效。另外,假如最近到达的可恢复错误信号消除了对重置的需要,则可以在重置之前先使FRC错误延迟一段时间间隔。
对于本发明的一个实施例而言,处理器110能够在高可靠性(例如,FRC)模式或高性能(例如,多核心)模式下进行工作。例如,当引导或重置包括处理器110的计算系统时,可以选择搡作模式。在FRC模式下,执行核心120(a)和120(b)可能对于操作系统而言看起来是单个逻辑处理器。执行核心120(a)和120(b)处理相同的代码序列,并且由FRC检验器130来比较所产生的结果。如果结果一致,则更新与代码序列相对应的机器状态。
在FRC模式下,可以把执行核心120之一指定为主执行核心。所述主执行核心是指负责更新执行核心120所共享的资源的执行核心。可以把其它执行核心120指定为从执行核心。所述从执行核心负责从将要相对于那些主执行核心检验的相同代码序列中得出结果。由于在主执行核心或从执行核心中可能会发生错误,因此本发明的实施例允许主/从执行核心指定被动态地改变。正如下面论述的那样,如果在目前指定作为主执行核心的执行核心中检测到可恢复错误,则这允许从执行核心能够接替主执行核心指定以执行恢复。
在多核心模式下,执行核心120(a)和120(b)可能对于操作系统而言看起来像单个处理器小片上的两个不同的逻辑处理器。在这种模式下,执行核心120(a)和120(b)处理不同的代码序列,并且每一个执行核心都更新与它处理的代码序列相关联的机器状态。可以把逻辑处理器的部分机器状态存储在与对应的执行核心相关联的高速缓存和/或寄存器中。在处理器小片上的某些点上,将来自执行核心120(a)和120(b)的结果路由至共享资源170,以供例如在处理器小片(总线)以外进行存储(高速缓存)或传输。对于这个实施例而言,提供附加的逻辑以调解执行核心120(a)和120(b)对共享资源170的存取。一般而言,多核心模式允许处理器的执行核心被独立地控制权。
图2是表示能在多种模式(例如,FRC模式和多核心模式)下工作的处理器110的实施例的框图。对于所公开的实施例而言,当处理器110在多核心模式下工作时,提供仲裁单元180来管理到执行核心120(a)和120(b)的共享资源170的事务。仲裁单元180是与FRC单元130相关联的,它将多核心模式工作的仲裁点置于邻近FRC模式工作的FRC边界的地方。在多核心模式下,可以由仲裁单元180对来自执行核心120的信号(例如,事务请求信号)进行处理,所述仲裁单元管理对共享资源(170)的存取。在FRC模式下,可以由FRC检验器130处理来自执行核心120的信号,所述FRC检验器130将它们进行比较以检测任一执行核心中的软错误。紧密接近地定位FRC检验器130和仲裁单元180扩大了FRC边界以包含大部分的逻辑(不一定都包含),对于所述大部分的逻辑而言来自两个执行核心的信号仍然是有差别的。在FRC和多核心模式下还减少了支持处理器110所必需的导线。
以这种方式扩大FRC边界自然地增加了向FRC检验器130传送信号需要的时间。这种增加的“飞行时间(flight time)”为奇偶校验或ECC错误到达检测器140提供了更多的时间,从而提升了错误恢复的机会。如上所述,错误检测器140所触发的恢复例程提供了比FRC检验器130所触发的重置例程更高的系统可用性。扩大FRC边界由此增加了为执行核心120复制的逻辑的数量,还增加了其间可以识别可检测到的错误的飞行时间。虽然通过重置机制,但前者增强了FRC保护。后者增加了通过恢复而非重置来对可通过奇偶校验、ECC或类似的核心特定的保护而识别出的错误进行处理的可能性。
图3A是表示依照本发明的计算系统300的一个实施例的框图。所公开的系统300的实施例包括处理器310、芯片组370、主存储器380、非易失性存储器390和外围设备398。对于所公开的系统300的实施例而言,可以在FRC模式或多核心模式下操作处理器310。例如当引导或重置计算系统300时,可以选择所述模式。芯片组370管理处理器310、主存储器380、非易失性存储器390和外围设备398之间的通信。
处理器310分别包括第一和第二执行核心320(a)和320(b)(一般地,执行核心320)。每一个执行核心都包括执行资源324和总线簇328。执行资源324例如可以包括一个或多个整数、浮点、加载/存储和分支执行单元以及寄存器堆和高速缓存,以给它们提供数据(例如,指令、操作数、地址)。总线簇328表示用于管理到执行核心320(a)和320(b)所共享的高速缓存340的事务以及到前侧总线360的事务的逻辑,针对那些事务该前侧总线360(?)可能会在共享的高速缓存340中丢失。与图1和2的错误流水线相对应的资源可能是与执行资源324和/或总线簇328相关联的。
接口单元(IFU)330(a)、330(b)(一般地,IFU 330)表示执行核心320和共享资源、高速缓存340和FSB 360之间的边界。所公开的IFU 330的实施例包括FRC单元332和仲裁单元334。如上所述,FRC单元332和仲裁单元334从执行核心320那里接收信号,并且将它们定位在彼此邻近的位置上导致处理器小片上的导线的显著节省。在图3A中还示出的是错误单元336(a)和336(b),其包括监视执行核心320(a)和320(b)中的可检测到的错误的组件。
对于FRC模式而言,FRC单元332为到像高速缓存340和FSB 360这样的共享资源的事务而比较来自执行核心320的信号。由此,FRC单元332形成处理器310的FRC边界的一部分。对于多核心模式而言,仲裁单元334监视来自执行核心320的信号并且根据仲裁算法来批准对其相关联的共享资源的存取。仲裁单元334所实施的仲裁算法例如可以是循环方案、基于优先级的方案或类似的仲裁算法。对于FRC和多核心模式这两种模式而言,错误单元336可以针对可恢复的错误监视来自执行核心320的信号。
恢复模块150和重置模块160的一些部分(图2)可以位于处理器310上或者位于系统300中的其他地方。对于一个实施例而言,可以把恢复例程392和重置例程394存储在非易失性存储器390中,并且可以把这些例程的映像加载到主存储器380中以待执行。对于这个实施例而言,恢复模块150和重置模块160可以分别包括指向恢复例程392和重置例程394的指针(或它们在主存储器380中的映像)。
所公开的系统300的实施例还包括中断控制器370(a)和370(b)(一般地,中断控制器370),用于分别处理执行核心320(a)和320(b)的中断。示出了每一个中断控制器370都分别具有第一和第二组件374和378,以适应中断控制器370可以按之工作的不同时钟域。例如,FSB 360典型地以与处理器310不同的频率工作。因此,直接与FSB 360进行交互的处理器310的组件典型地按其时钟域进行工作,所述时钟域表示为处理器310上的区域364。
所公开的中断控制器370的实施例还包括XOR 372形式的类似FRC边界的组件。如果XOR 372检测到来自执行核心320(a)和320(b)的组件374(a)和374(b)的输出信号(例如,中断响应)之间的失配,则该XOR 372就会发信号通知FRC错误。然而,可归因于中断控制器370的错误仍然可能源自于FSB时钟域364中的组件378(a)、378(b)中的软错误。这些错误可以通过执行核心320(a)和320(b)的后续操作之间的它们引入的差异得以检测出来。
对于所公开的系统300的实施例而言,常见的监听块362处理往返于执行核心320(a)和320(b)的监听事务。XOR 366提供对来自执行核心320(a)、320(b)的监听响应的FRC检验,并且如果检测到失配则发信号通知错误。如果处理器310是在多核心模式下工作的,则可以使XOR 372和366无效。
图3B是表示用于向计算系统300的组件广播可恢复的错误状况的设备344的一个实施例的框图。例如,错误单元336(a)和336(b)可以分别表示针对执行核心320(a)和320(b)的各种阵列(寄存器、高速缓存、缓冲器等等)的ECC或奇偶错误检测逻辑和/或用于处理这些错误的异常逻辑。或门338监视来自于执行核心320的错误信号,并且如果声明了任一错误信号则声明信号以使FRC单元332无效。所述错误信号可以是高级中断、比如为Itanium处理器定义的机器检查取消(MCA)。此外还将或门338的输出反馈到执行核心320以向无误差执行核心表明将要启动恢复机制。提供第二或门339以便从所述共享资源向执行核心320传送错误信号。
如果错误信号未使FRC单元332无效,则遭破坏的数据就触发FRC错误,并且把另外的可恢复错误当作为不可恢复的错误(例如,FRC错误)。也就是说,所述系统经历了重置操作而非较短的恢复操作。取决于所述系统的特定实施方式,可能有许多种情况,其中结束了来自执行核心的错误信号和失配数据信号之间对FRC单元332的(由可恢复错误所产生的)竞赛。为此,设备344可以包括一个用以至少在FRC模式下加速错误信号传送的机制。
对于一个实施例而言,设备334支持诸如在FRC和高性能模式这两种模式下工作的MCA的高级中断。在高性能模式下,错误信号例如在执行核心的前端中或在L2高速缓存中经历流水线停顿。这确保了不会占用不必要的MCA,因为触发所述停顿的事件可能使错误信号未解决(moot)。在FRC模式下,错误信号绕过这些停顿。绕过FRC中的停顿可能导致某些不必要错误信号的处理,但是它同时也降低了在(非FRC)错误信号使FRC单元332无效之前触发FRC错误的可能性。正如结合图7论述的那样,处理器110的实施例还可以包括用于减轻错误信号和反映遭破坏的数据的核心信号之间的竞赛的硬件机制。
图4是表示用于计算系统310的一个实施例的数据路径的框图,所述计算系统包括FRC组件以在FRC模式下支持处理器310。对于所公开的实施例而言,高速缓存340、FSB 360和执行核心320是经由一系列缓冲器耦合起来的。例如,写输出缓冲器(WOB)410将从高速缓存340中驱逐出的数据分级到主存储器380,并且监听数据缓冲器(SDB)420响应于执行核心320或高速缓存340当中的监听命中,把来自这些结构的监听数据提供给FSB 360(执行核心320除共享高速缓存340之外还可能每一个都具有一层或多层高速缓存)。
一对写线缓冲器(WLB)430(a)、430(b)分别将来自执行核心320(a)、320(b)的数据分级到高速缓存340或FSB 360,并且一对读线缓冲器440(a)、440(b)将来自FSB 360的数据分级到高速缓存340或执行核心320。聚结缓冲器(CB)450(a)、450(b)把将要写入存储器380的数据集合起来并周期性地将其转发到FSB 360。例如,可以在触发FSB 360上的写事务之前,在CB 450中把写到存储器的同一行中的多个数据集中起来。
对于所公开的实施例而言,当处理器310在FRC模式下工作时,与这些缓冲器相关联的逻辑提供FRC检验和数据路由选择功能。例如,逻辑块454表示CB 450(a)、450(b)中的数据的MUX和XOR功能。如果处理器310是在FRC模式下工作的,则所述XOR功能就提供FRC检查。如果处理器是在多核心模式下工作的,则所述MUX功能就提供数据路由选择。逻辑块434和444分别提供WLB 430(a)、430(b)和RLB 440(a)、440(b)中的数据的类似功能。MUX 460、470和480将来自不同源的数据路由到高速缓存340、FSB 360和执行核心320。
如上所述,针对在FRC边界内检测到的错误的恢复机制可以通过硬件、软件和固件模块的各种组合来处理。恢复机制的一个实施例采用了与处理器密切相关联的代码。例如,英特尔公司的Itanium处理器系列采用了称为处理器提取层(PAL)的固件层,所述处理器提取层给其余的计算系统提供了处理器的提取。在PAL中实施恢复隐藏了来自系统级代码的恢复过程、比如系统提取层(SAL)(例如BIOS)和操作系统。基于PAL的恢复机制实施方式将能足够快地避免触发操作系统所强制的超时周期。恢复机制还可以利用系统级代码(例如,SAL/BIOS)或操作系统代码来实现。后一种实施方式可以不必受到与基于PAL的实施方式相同的时间限制的支配。除非另作说明,否则下面论述的恢复机制都可以利用与任何上述源相关联的代码加以实施。
图5是表示用于在错误触发FRC重置之前从其中一个执行核心中检测到的错误恢复的机制的流程图。响应于在其中一个执行核心中检测到的奇偶校验、ECC或其它错误,广播信号以表明恢复例程的启动(510)。只要在错误触发FRC重置之前检测到该错误,那么就能够将遭破坏的数据定位到其中一个执行核心上,从而留下可用于恢复的其它执行核心的机器状态数据。所以,保存好核心的机器状态(520)。为了准备处理器以供恢复,将两个核心初始化成指定的状况(530),并且将已保存的机器状态恢复540到被初始化的核心。继而,恢复FRC模式(550)并且处理器返回到中断码(560)。
对于本发明的实施例而言,当处理器110是在FRC模式下工作时,可以把其中一个执行核心120指定为主核心,而把其它的指定为从核心。对于这个实施例而言,在FRC边界上比较主核心和从核心所产生的信号,以判断重置是否是必需的。如果没有批准FRC重置,则就把主核心所产生的信号传送给共享资源170,并且丢弃从核心所产生的信号。对于这个实施例而言,每一个执行核心120的状态寄存器中的位都可以用来表示它作为主核心或从核心的状态。例如当引导或重置系统时,可以设置所述位。正如在下面更加详细地论述的那样,也可以动态地改变执行的主/从状态以允许恢复任一核心中的错误。对于在FRC边界内检测到的错误而言(例如,可恢复错误),主和从核心的动作可能依哪个核心产生所述错误而有所不同。
图6是表示用于从执行核心中检测到的错误的恢复的机制600的一个实施例的流程图,所述执行核心被指定为从执行核心。在左边显示了从执行核心的操作,在右边显示了主执行核心的操作。
如果从执行核心检测到错误(奇偶校验、ECC等等)(610),则启动例程600。从核心触发中断以向计算系统的其它组件发信号通知错误状况(620)。对于PAL或类似的处理器级代码所实现的例程600的实施例而言,中断信号的广播可以限于处理器芯片内的组件、比如主执行核心。除发信号通知错误之外,所述从执行核心使FRC单元无效并暂停它的活动(630)。使FRC单元无效防止了错误在到达FRC边界时触发FRC重置,而暂停从核心中的活动防止它干扰恢复过程。
作为对中断的响应(624),主执行核心确定它的状态数据是否包含任何的错误(640)。例如,每一个执行核心都可以包含状态位,如果检测到错误的话就设置该状态位。所述主执行核心可以检验这个位以确定它是否也已经产生了错误。除如下的极为罕见的情况之外,在该情况下软错误几乎同时地发生在两个执行核心中,主核心很可能将被清除(clean)。如果未被清除(640),则就不存在用以实施恢复的未遭破坏的处理器状态。在这种情况下,所述主核心向从核心发信号通知重置状况(642),并且计算系统执行完全的重置(例如,FRC级重置)(644)。
如果针对主核心的状态数据未遭破坏,那么主核心保存它的机器状态(660)并清洗其流水线中的队列和缓冲器(664)。例如,所述主核心可以保存其数据的内容并且将寄存器和低级高速缓存控制到存储器的受保护区中。所述主核心还向从核心发信号通知受限重置(668),并将它的资源设置成指定的状态(676),例如,初始化其流水线。所述从核心检测到受限的重置(670)并且初始化其流水线(674),从而使所述核心的状态同步化。
随着由此同步化所述核心,重激活FRC模式(680)。这例如可以通过让每一个核心执行处理程序的例程来实现,所述处理程序的例程在其状态/控制寄存器中设置了适当的状态位。将已存的状态恢复到两个执行核心(684),并且将控制权返回到中断码序列(690)。
方法600表示针对如下情况的恢复机制的实施例,在所述情况下在目前被指定为从核心的执行核心中检测到错误。对于一个实施例而言,所述从核心是没有“控制”共享资源的执行核心。例如,在FRC模式下,根据在FRC边界上与那些来自主执行核心的信号的比较结果,丢弃来自从执行核心的信号。如果没有检测到FRC错误,则就使用来自主核心的信号来控制FRC边界外面的共享资源。
如果错误起源于主核心而非从核心,则可以通过改变执行核心的主/从指定来处理恢复。例如,主/从指定可以通过与每个执行核心相关联的状态寄存器中的位的状态来表示。这个状态位处于主状态中的执行核心控制共享资源,使用该共享资源来执行恢复例程600的状态保存操作(例如,操作660)。
对于恢复例程的一个实施例而言,错误所源自的执行核心可以检验它的主/从状态位。如果状态位表明它是从执行核心,则可以按所述的那样执行方法600。如果状态位表明它是主执行核心,则它可以发信号通知从执行核心将它的状况改变成主执行核心,将它自己的状态改变成从执行核心,并且暂停活动。
图7是表示减轻可恢复的和无法恢复的错误处理之间的竞赛状况的FRC检验器730的实施例的框图。所公开的FRC检验器730的实施例包含比较单元734、队列736和计时器单元738。队列736从执行核心(a)中接收数据,并且比较单元734比较来自核心A和B的数据,并设置状态标志以表明所述比较结果是否产生匹配。如果所述数据匹配,则就设置状态标志以表明匹配。
如果所述数据不匹配,则设置所述状态标志以表明失配,并且触发计时器单元738开始对时间间隔倒计数。如果错误检测器140在超时时间间隔期满之前接收到错误标记,则它使FRC检验器730无效并且触发恢复单元150以执行恢复例程。
由此,已经公开了一种用于处理多核心处理器中的可恢复的和无法恢复的错误的机制。所述多个核心可以在FRC模式下进行工作,在这种情况下,一个或多个检验器单元比较来所述核心的信号以检测无法恢复的错误。另外,每个核心都包含错误单元以检测可恢复的错误。如果检测到可恢复的错误,则使检验器单元无效并且执行恢复例程。多核心处理器的多核心模式实施例可以包含邻近于检验器的仲裁单元,以控制对共享资源的存取。对共享资源的FRC边界的接近性增多了受FRC边界保护的逻辑,并减少了多核心模式实施方式所必需的导线。
本发明的实施例实际上检测到在非启用FRC的系统中漏检的所有错误,并且它们支持实际上所有可检测的错误的恢复,包括那些实际上通过在其它启用FRC的处理器中进行重置所处理的可检测的错误。
已经提供了所公开的实施例以举例说明本发明的各种特征。持有本公开的利益的处理器设计领域的技术人员将会认识到所公开的实施例的变形和修改仍然落入所附权利要求的精神和范围内。
权利要求
1.一种处理器,其包括在FRC模式下工作的第一和第二执行核心;用于处理来自第一和第二执行核心中的至少一个的事务的资源;和接口控制单元,用于调节第一和第二执行核心对资源的存取,所述接口控制单元包括FRC检验单元,用于比较来自第一和第二执行核心的事务信号并且如果所述比较结果表明失配则发信号通知错误。
2.如权利要求1所述的处理器,还包括错误检测器,用于检测第一和第二执行核心中的错误并且用于响应于对错误的检测而使FRC检验器无效。
3.如权利要求2所述的处理器,其中所述错误检测器包括第一和第二错误检验器,用于分别检测第一和第二执行核心中的错误。
4.如权利要求3所述的处理器,其中第一错误检测器响应于第一执行核心中的错误而触发错误信号,以便使FRC检验单元无效并且利用第二执行核心启动恢复过程。
5.如权利要求4所述的处理器,其中把第二执行核心指定为FRC从执行核心,并且响应于错误信号将其重新指定为FRC主执行核心。
6.如权利要求5所述的处理器,其中第二执行核心将它的机器状态数据保存到存储单元,并且执行重置序列。
7.如权利要求2所述的处理器,其中第一和第二执行核心还可以在多核心模式下进行工作,并且所述接口控制单元还包括仲裁单元,用于如果执行核心在多核心模式下进行工作则调节该执行核心对共享资源的存取。
8.如权利要求7所述的处理器,其中所述共享资源包括高速缓存,其可以在多核心模式下处理来自第一和第二核心两者的事务,并且可以在FRC模式下处理仅来自第一和第二核心的其中一个的事务。
9.如权利要求7所述的处理器,其中,响应于对错误的检测,如果所述处理器处于多核心模式则所述错误检测器触发中断,而如果所述处理器处于FRC模式则触发加速的中断。
10.如权利要求9所述的处理器,其中所述加速的中断在多核心模式下绕过通过中断而横穿的执行核心的部分。
11.一种系统,其包括第一存储单元,用于存储恢复例程;第二存储单元,用于存储重置例程;能在FRC模式下进行工作的第一和第二执行核心;错误单元,用于响应于对第一和第二执行核心的其中一个中的错误的检测而启动恢复例程;和FRC检验器,用于响应于对来自第一和第二执行核心的信号之间的失配的检测而启动重置例程。
12.如权利要求11所述的系统,其中所述错误单元响应于对第一和第二执行核心的其中一个中的错误的检测而使FRC检验器无效。
13.如权利要求12所述的系统,其中所述重置例程包括由第一和第二执行核心可执行的指令,用于在多核心模式或FRC模式下初始化第一和第二执行核心。
14.如权利要求13所述的系统,如果在多核心模式下初始化第一和第二执行核心,则还包括将由第一和第二执行核心共享的高速缓存。
15.如权利要求14所述的系统,还包括仲裁单元,用于在多核心模式下管理第一和第二执行核心对高速缓存的存取。
16.如权利要求15所述的系统,其中所述FRC检验器在FRC模式下监视从第一和第二执行核心到仲裁单元的事务信号,并响应于事务信号中的失配而启动重置例程。
17.如权利要求11所述的系统,其中第一和第二执行核心在FRC模式下分别作为主和从执行核心进行工作。
18.如权利要求17所述的系统,其中响应于第一执行核心中的错误,使第一执行核心无效并且第二执行核心作为主执行核心进行工作。
19.如权利要求11所述的系统,其中可以在多核心模式或FRC模式下初始化第一和第二执行核心。
20.如权利要求19所述的系统,其中所述错误单元响应于执行核心的其中一个中的错误,对第一和第二执行核心触发中断。
21.如权利要求20所述的系统,其中如果执行核心处于FRC模式,则所述中断是加速的中断。
22.如权利要求21所述的系统,其中所述加速的中断绕过执行核心的一部分。
23.一种方法,其包括在FRC模式下操作第一和第二执行核心;针对错误监视第一和第二执行核心的数据;比较第一和第二执行核心所产生的信号;响应于第一或第二执行核心中的错误,执行恢复例程;以及响应于由第一和第二执行核心产生的信号之间的失配,执行重置例程。
24.如权利要求23所述的方法,还包括响应于第一或第二执行核心中的错误而暂停信号比较。
25.如权利要求24所述的方法,其中响应于所述失配而执行重置例程还包括响应于所述失配而触发延迟时间间隔;如果在延迟时间间隔期满之前没有在执行核心中监视到错误则执行重置例程。
26.如权利要求25所述的方法,还包括如果在延迟时间间隔期满之前在其中一个执行核心中检测到错误则执行恢复例程。
27.如权利要求23所述的方法,其中在FRC模式下操作第一和第二执行核心包括响应于重置信号,在FRC模式下或在多核心模式下操作第一和第二核心。
28.如权利要求27所述的方法,其中执行恢复例程包括如果所述核心是在多核心模式下工作的,则响应于通过中断发信号通知的错误而执行恢复例程;以及如果所述核心是在FRC模式下工作的,则响应于通过加速的中断发信号通知的错误而执行恢复例程。
29.如权利要求23所述的方法,其中在FRC模式下操作第一和第二执行核心还包括分别把第一和第二执行核心指定为主执行核心和从执行核心。
30.如权利要求23所述的方法,其中执行恢复例程还包括响应于第一执行核心中的错误,使第一执行核心无效并且把第二执行核心指定为主执行核心。
全文摘要
一种处理器包括在冗余(FRC)模式下工作的第一和第二执行核心;FRC检验单元,用于比较来自第一和第二执行核心的结果;和错误检验单元,用于检测第一和第二核心中的可恢复错误。所述错误检测器响应于可恢复错误的检测来使FRC检验器无效。处理器的多模式的实施例除FRC模式之外还实现了多核心模式。仲裁单元在多核心模式下调节对第一和第二执行核心所共享的资源的存取。在多模式的实施例中,所述FRC检验器位于邻近仲裁单元的地方。
文档编号G06F11/16GK1729456SQ200380106657
公开日2006年2月1日 申请日期2003年11月13日 优先权日2002年12月19日
发明者H·阮, S·屠, A·洪查里克, S·亚米尔 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1