CN100407135C - 跟踪对差错中立的指令来减少微处理器中的虚假差错检测 - Google Patents
跟踪对差错中立的指令来减少微处理器中的虚假差错检测 Download PDFInfo
- Publication number
- CN100407135C CN100407135C CN2005100768286A CN200510076828A CN100407135C CN 100407135 C CN100407135 C CN 100407135C CN 2005100768286 A CN2005100768286 A CN 2005100768286A CN 200510076828 A CN200510076828 A CN 200510076828A CN 100407135 C CN100407135 C CN 100407135C
- Authority
- CN
- China
- Prior art keywords
- instruction
- subclauses
- clauses
- processor
- mistake
- 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.)
- Expired - Fee Related
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 25
- 230000007935 neutral effect Effects 0.000 title abstract description 8
- 238000000034 method Methods 0.000 claims abstract description 19
- 230000008520 organization Effects 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 5
- 230000015572 biosynthetic process Effects 0.000 claims description 2
- 239000000203 mixture Substances 0.000 claims description 2
- 238000005755 formation reaction Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 239000002245 particle Substances 0.000 description 4
- 230000001052 transient effect Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/0721—Error 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
- G06F11/1052—Bypassing or disabling error detection or correction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/1407—Checkpointing the instruction stream
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3865—Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明提供的技术通过跟踪对差错中立的指令,减少了微处理器中的虚假差错检测。当一条指令被译码时,将反pi位加标签到译码后的指令。当检测到奇偶差错时,指令队列首先检验反pi位是否被置位。如果反pi位被置位,则指令是对差错中立的,并且pi位不需要被置位。预取指令、分支预测提示指令和NOP指令是对差错中立的指令类型。
Description
相关申请:本申请涉及以下共同转让的同时待审查申请,这些申请是在同一天提交的,其一为2004年6月17日提交的,名称为“在微处理器中减少虚假差错检测的方法和装置(Method And Apparatus For Reducing False Error Detection In A Microprocessor)”,序列号为No._______的申请,另一个为2004年6月17日提交的,名称为“通过跟踪动态死指令来减少微处理器中的虚假差错检测(Reducing False Error Detection In A Microprocessor ByTracking Dynamically Dead Instructions)”,序列号为No.________的申请。
技术领域
本发明涉及微处理器中的差错(error)检测,具体地说,涉及通过跟踪对差错中立(neutral)的指令来减少微处理器中的虚假差错检测。
背景技术
由于中子和阿尔发粒子的撞击造成的瞬态故障(fault)正在成为未来处理技术中处理器晶体管数量增多的明显阻碍。虽然个别晶体管的故障率可能不会升高很多,但是向一个器件中加入更多的晶体管就使得该器件更有可能遇到故障。结果,预计将处理器差错率保持在可接受的水平上将需要更多设计方面的努力。
由瞬态故障引起的单比特翻转已成为今天微处理器设计中很重要的挑战之一。这些故障因带能量粒子而起,例如宇宙射线中的中子以及来自封装材料的阿尔法粒子。晶体管源节点和扩散节点可以收集这些电荷。足够量的累积电荷可以反转逻辑器件(例如SRAM单元、锁存器或者门电路)的状态,从而向电路运行中引入逻辑故障。因为这一类型的故障并不反映器件的永久失效,所以它被称为软差错或瞬态差错。
随着片上晶体管的数量不断呈指数上升,软差错对于微处理器的设计者而言正成为越来越大的负担。对于下几代技术而言,计划每锁存器或SRAM位的原始差错率要大致保持常数或略微下降。因此,除非有另外的差错保护机制或者使用更具鲁棒性的技术(例如全耗尽型SOI),在接下来的每一代中,微处理器的差错率可能随附加到处理器的器件的数量而成正比地上升。
发明内容
为解决以上问题,本发明提供了一种通过跟踪对差错中立的指令,来减少微处理器中的虚假差错检测的技术。当一条指令被译码时,将反pi位加标签到译码后的指令。当检测到奇偶差错时,指令队列首先检验反pi位是否被置位。如果反pi位被置位,则指令是对差错中立的,并且pi位不需要被置位。预取指令、分支预测提示指令和NOP指令是对差错中立的指令类型。
根据本发明的一个方面,提供了一种处理器,包括:对指令进行译码的译码模块;与译码后指令相关联的第一位;与译码后指令相关联的第二位,其中所述第二位用于标识所述指令上的故障;和耦合到所述译码模块的存储结构,所述存储结构将检测所述指令上的故障检测结果,其中所述存储结构基于所述故障检测结果来检验所述指令的第一位,如果所述第一位被置位,则所述第二位不被置位。在以上处理器中,还包括如果所述第一位没有被置位,则所述第二位被置位。
根据本发明的另一个方面,提供了一种方法,包括:对指令进行译码;连同所述指令一起加载第一位;连同所述指令一起加载第二位;检测故障;检验所述第一位,以基于检测故障的操作来确定是否置位第一位;以及如果所述第一位没有被置位,则置位所述第二位。
根据本发明的又一个方面,提供了一种装置,包括:对条目进行译码的译码模块;和耦合到所述译码模块的存储元件,该存储元件存储与所述条目相关联的第一检测位,该检测位标识出是否发生了破坏所述条目的位状态变化,所述存储元件还存储与所述条目相关联的第二检测位,其中只有当所述第一检测位没有被所述位状态变化置位时,所述第二检测位才被置位。
根据本发明的再一个方面,提供了一种系统,包括:在条目取出之前存储条目的片外存储器;耦合到所述片外存储器的处理器,其中所述处理器还包括:接收条目的译码模块;和存储与所述条目相关联的第一位和第二位的存储元件,其中所述第一位标识出是否发生了破坏所述条目的位状态变化,并且其中,只有在所述第一位没有被所述位状态变化置位时,所述第二位才被置位。
附图说明
参考附图,根据以下对优选实施方案的描述,将会清楚本发明的各种特征,在整个附图中一般用相同的标号来表示相同的部分。附图不一定是按比例绘制的,重点放在说明本发明的原理上。
图1是微处理器中的故障位的可能结果的框图。
图2是当在指令流路径上使用反pi位来指示对差错中立的位时,图示了本发明的一种实施方案的框图。
图3是图示了根据本发明一种实施方案的操作的流程图。
图4是图示了实现本发明以检测软差错的示例性计算机系统的框图。
具体实施方式
在以下描述中,出于解释而非限制的目的,阐述了很多具体的细节,例如具体的结构、体系结构、接口、技术等,以提供对本发明各个方面的完整理解。然而,获知本发明公开内容的本领域的技术人员将会清楚,在不偏离这些具体细节的其他实施例中也可以实现本发明的各个方面。此外,忽略了对公知的器件、电路和方法的描述,以免因不必要的细节而模糊了对本发明的说明。
图1图示了微处理器中单个位故障的可能结果。一开始,微处理器确定是否已读出了故障位100。如果故障位未被读出110,则它被认为是一个良性故障,因而没有差错。如果已读出了故障位,则处理器接下来确定该位是否具有差错保护115。当读出故障位时,至少有三种可能的结果。首先,如果对于该位检测到差错保护并进行了校正,则认为所述故障已被校正120。
第二,如果所述位不具有差错保护,则处理器判断指令是否会影响程序的结果125。如果指令不影响程序的结果,则故障位被认为是一个良性故障130。故障110、120和130全都表示非差错条件,因为该故障没有什么影响,或者已被检测出来并被校正。
如果指令的确影响程序的结果,则它被认为是一个沉寂(silent)数据破坏(SDC)135。SDC 135是一种最可怕形式的差错,在这种情况下,故障导致系统生成错误的输出。为了避免SDC 135,设计者可以采用基本的差错检测机制,例如奇偶检验。
第三种可能的结果是当位具有差错保护时,检测出差错的情况140。具有检测故障但不校正它的能力,系统就可以避免生成无效的输出,但是当差错发生时不能恢复。因此,单纯的差错检测不会减小差错率,但是能够提供故障终止的行为,从而可减少任何数据破坏。这些类型的差错被称为可检测但无法恢复的差错(DUE)。
根据检测出的差错是否会影响执行的最终结果,DUE事件又被进一步划分。检测出的良性差错被称为虚假DUE事件145,其他的则被称为真实DUE事件150。在微处理器中,虚假DUE事件可能因对错误路径指令、虚假预测指令的撞击以及对正确路径指令的撞击而产生,所述正确路径指令是指不影响最终程序状态的指令,包括无操作指令、预取指令和动态死指令。
为了跟踪虚假DUE事件,微处理器可以将一个被称为pi(即,可能不正确的)位的位附加到每条指令,并潜在地附加到各种硬件结构(在相关申请中有详细的论述)。当检测出差错时,硬件将对受影响指令的pi位进行置位,而不是发信令通知该差错。随后,通过检查pi位并且识别所述指令的特性,硬件可以判定是否真的发生了可见差错。
区分虚假差错和真实差错是复杂的。处理器在它检测出差错的时候可能没有足够的信息来进行区分。例如,当指令队列在一条指令上检测到差错时,它也许无法判断该指令是否原是一条错误路径指令。结果,处理器可能需要将所述差错信息沿流水线向下传播,并且在它有足够的信息进行区分时才唤起所述差错。
为了在微处理器硬件的不同部分之间传播差错信息,系统利用了pi位。当指令沿流水线从译码到退休(retirement)向下流动时,pi位与每条指令相互逻辑关联。
pi位机制有助于避免因故障检测机制(例如奇偶检验)而产生的虚假正匹配。具体地说,对于一条指令,当指令被译码时,pi位被附加到该指令,并被初始化为0以表示该指令还未遇到任何差错。当所述指令流过流水线时,它将被变换多次以适于机器,并被写入很多不同的存储结构并从中读出。如果这些存储结构具有某种形式的故障检测,例如奇偶检验,并且所述指令积累了单比特翻转,则标记出奇偶差错。通常,这将引发一次机器检验例外,一般会使所述机器崩溃。这里,不再造成机器崩溃,处理器通过将pi位的值改变为1,而在pi位中公告这一差错。
差错检验以及pi位的更新也可以被用在流水线的多个阶段中,和/或被用在指令执行过程中的多种不同结构上。差错检验逻辑可以采用奇偶检验器的形式或者其他已知的或可另外获得的不同差错检测技术。此外,差错检测和校正技术可被用在这些不同的阶段中或者不同的结构上,只要在发生不可恢复的差错时对pi位进行置位。
在流水线的提交阶段,提交硬件有足够的信息来判断指令是一个错误路径指令、虚假预测指令还是NOP指令。在这些情形中,处理器不会引发机器检验例外,而会让机器继续正常运行。但是,在其他情形中,可能已存在了真实差错,必须引发机器检验例外。
pi位可以在硬件结构之间传播(潜在的)差错信息,从而延迟机器检验例外,一直到机器必须完全地宣告所述差错。然而,pi位自身不能断定某一具体结构是否遇到了故障,以及所述故障是否最终将对用户可见。
图2图示了当反pi位在指令流路径上被用来指示对差错中立的指令时的一个实施方案。在微处理器中,在很多情况下某些指令类型上的故障不会产生用户可见的差错,因而不会影响程序的最终结果。例如,将数据块从存储器预取到缓存中的预取指令对程序的正确性而言不是必需的;相反,它对程序的性能而言是必需的。类似地,体系结构中的分支预测提示指令通过向微处理器提供有关程序的控制流路径的提示,允许程序提高其性能。还有其他一些指令类型(例如NOP)对微处理器的正确性没有任何影响,但是可能需要用来填充程序中的空白静态指令隙(instruction slot)。这些类型的指令被称为对差错中立的。这些指令的大多数位在受到引起位翻转的阿尔法粒子或中子的撞击时,不会产生用户可见的差错。因此,硬件不需要在这些指令的非操作码位上引发差错。
当包括对差错中立的指令在内的指令流过流水线200时,它们存在于不同的结构、缓冲器和锁存器中。一种这样的结构就是指令队列210,指令在准备好被发往执行单元之前一直驻留在该队列中。然而,当指令穿过这些不同的结构时,它们在所述结构中的表现形式可能会发生改变,以适于特定的结构。
当硬件访问指令队列210中的指令并且检测奇偶差错时,在没有反pi位的情况下,它只是对pi位进行置位。然而,如上所述,对差错中立的指令不需要使它们的pi位置位,因为这样一个差错将对用户不可见。
相反,当指令在流水线200早期被译码205时,可以将被称为反pi位的另一个位加标签到所译码的指令上。于是,当指令队列210在中立指令的非操作码位上检测到奇偶差错时,指令队列210首先检验反pi位。如果反pi位被置位,则意味着所述指令对差错中立,它就不会置位pi位。否则,它置位pi位,以在流水线后期做进一步处理。
最终,指令将提交215。在提交阶段,提交硬件有足够的信息来判断所述指令是不是一个错误路径指令,并且它是不是对差错中立的指令。换言之,反pi位使pi位对中立指令类型保持中立。此外,与pi位一起,反pi位有助于进一步降低虚假差错检测率。
在对差错中立的指令中的某些控制位需要额外关注。例如,如果对差错中立的指令的操作码位受到撞击,则系统可能不得不引发机器检验例外,因为它能够准确地识别出指令类型。然而,保护反pi位远离数据和控制位,这使得所述结构能够避免因对差错中立的指令的控制位中的故障而置位pi位。如果反pi位只具有差错检测功能(经由奇偶或电路技术),那么当在反pi位上发生奇偶差错时,硬件将不得不引发机器检验。然而,如果反pi位具有差错恢复功能(经由ECC或电路技术),则硬件甚至可以从反pi位上的故障以及条目的控制和数据位上的故障中恢复过来。
可替换地,存在另一种与反pi位有关的可能设计。在先前描述的设计中,各个结构检查反pi位来置位pi位。相反,各个结构可以在置位pi位时忽视反pi位。于是,在提交阶段215中,退休单元可能既检验反pi位又检验pi位,以判断它是否应当引发机器检验例外。
反pi位机制也可以被概括为对差错中立的其他硬件活动。例如,由硬件预取而生成的地址上的差错可能对差错是中立的,并且可由反pi位来标记。
图3是图示了检测软差错的方法的一个实施方案的流程图。在这个具体实施方案中,流程图300图示了这样一种情形,其中处理器判断在对差错中立的指令上是否发生了差错。一开始,当指令被译码(305)时,反pi位(307)和pi位(310)与所述指令相关联。接下来,所述指令与它的反pi位和pi位一起被入队到流水线中(315)。当所述指令流过流水线时,它将被转换多次以适于机器,并且被写入很多不同的存储元件并且从这些元件中读出。
在指令流过流水线期间,该指令可能会累积出单个位翻转,于是为这条指令标记上一个奇偶差错(320)。如果对所述指令检测出一个差错,那么要是该指令被确定为对差错中立的,则流水线可以将受影响指令的反pi位设置为1(322)。如果所述指令不是对差错中立的,那么反pi位不被置位。如果反pi位不被设置为1的话,则pi位只可以被设置为1(325)。pi位被置位,而不是引发机器检验例外。如果没有检测到差错,则指令继续通过流水线,直到它被提交(330)。提交硬件然后可以判断所述指令是否原是一条错误路径指令(335)。如果所述指令被确定为一条错误路径指令,则pi位被忽视(340),否则处理器有权选择引发一个差错,例如机器检验差错(345)。
图4图示了用于检测软差错的一种典型系统实现方式。在所示出的计算机400中,处理器405用作单独一个处理器或者多个处理器之一,包括中央处理单元(CPU)或计算机400的单元。典型地,处理器405被实现为单个集成电路芯片。处理器405可以包括执行(处理)核410,它具有一个或多个执行单元。处理器405的一部分专用于包括指令处理装置415。指令处理装置415被示为与核410耦合。
根据以上描述来实现本发明,以在核410中执行指令。存储器可能位于片上(如片上存储器420所示)或片外(如片外存储器425所示)。典型地,片上存储器可以是缓存存储器或者主存储器(RAM)的一部分。片外存储器一般由主存储器(以及片外缓存,如果有的话)和其他存储设备(例如盘存储介质)组成。片上存储器420和片外存储器425或者个别地或者单独地可以连接到不同的设备,例如音频接口设备430。然而,需要注意的是,可以用其他方式来构造本发明,以处理指令供核410来执行。
在以上描述中,出于解释而非限制的目的,阐述了很多具体的细节,例如具体的结构、体系结构、接口、技术等,以提供对本发明各个方面的完整理解。然而,获知本公开内容的本领域的技术人员将会清楚,也可以在不偏离这些具体细节的其他实施例中实现本发明的各个方面。在某些情况下,省略了对公知设备、电路和方法的描述,以免用不必要的细节模糊了对本发明的描述。
Claims (39)
1.一种处理器,包括:
译码模块,用于对指令进行译码,将第一位与译码后指令相关联,将第二位与译码后指令相关联,其中所述第一位用于指示所述译码后指令是否对差错中立,所述第二位用于标识所述指令上的差错;以及
耦合到所述译码模块的存储结构,所述存储结构检测所述指令上的差错,其中所述存储结构检验所述第一位,如果所述第一位被置位,则不置位所述第二位。
2.如权利要求1所述的处理器,其中,如果检测到差错,且所述第一位没有被置位,则所述存储结构置位所述第二位。
3.如权利要求1所述的处理器,还包括耦合到所述存储结构的指令处理单元,该单元由处理所述译码后指令的多级组成。
4.如权利要求1所述的处理器,其中所述存储结构检测所述译码后指令的非操作码位上的差错。
5.如权利要求1所述的处理器,其中所述第一位是反pi位。
6.如权利要求1所述的处理器,其中所述第二位是pi位。
7.如权利要求1所述的处理器,其中所述差错是奇偶差错。
8.如权利要求4所述的处理器,其中基于指令的类型来置位所述第一位。
9.如权利要求8所述的处理器,其中所述指令是NOP指令。
10.如权利要求8所述的处理器,其中所述指令是预取指令。
11.如权利要求8所述的处理器,其中所述指令是分支预测提示指令。
12.如权利要求1所述的处理器,其中所述存储结构是指令队列。
13.如权利要求3所述的处理器,其中所述指令发出并流过所述多级。
14.一种方法,包括:
对指令进行译码;
连同所述指令一起加载第一位,所述第一位指示所述指令是否对差错中立;
连同所述指令一起加载第二位;
检测故障;
检验所述第一位,以基于检测故障的操作来确定第一位是否被置位;以及
如果所述第一位没有被置位,则置位所述第二位。
15.如权利要求14所述的方法,其中所述第一位与一类指令相关联。
16.如权利要求14所述的方法,还包括:
使所述指令入队;
传播所述指令通过流水线的多级,以处理所述指令;以及
确定所述指令是否是错误路径指令。
17.如权利要求15所述的方法,其中检测故障的操作检测所述指令的非操作码位上的故障。
18.一种装置,包括:
对条目进行译码的译码模块;以及
耦合到所述译码模块的存储元件,该存储元件存储与所述条目相关联、指示所述条目是否对差错中立的第一检测位,所述存储元件还存储与所述条目相关联的第二检测位,所述第二检测位标识出是否发生了破坏所述条目的位状态变化,其中只有当所述第一检测位没有被置位时,所述第二检测位才被置位。
19.如权利要求18所述的装置,还包括:
处理所述条目的指令队列;以及
使条目流传播通过多级的指令流路径。
20.如权利要求19所述的装置,还包括提交模块,该模块确定条目是否在错误路径上。
21.如权利要求18所述的装置,其中所述位状态变化发生在所述条目的非操作码位上。
22.如权利要求21所述的装置,其中对于NOP指令,所述第一检测位被置位。
23.如权利要求21所述的装置,其中对于预取指令,所述第一检测位被置位。
24.如权利要求21所述的装置,其中对于分支预测提示指令,所述第一检测位被置位。
25.如权利要求19所述的装置,其中所述条目发出并流过所述指令流路径的多级。
26.如权利要求19所述的装置,其中所述第二检测位是pi位。
27.如权利要求19所述的装置,其中所述第一检测位是反pi位。
28.如权利要求19所述的装置,其中对于对差错中立的条目,所述第一检测位被置位。
29.一种系统,包括:
在条目取出之前存储条目的片外存储器;
耦合到所述片外存储器的处理器,其中所述处理器还包括:
接收条目的译码模块;以及
存储与所述条目相关联的第一位和第二位的存储元件,其中所述第一位指示所述条目是否对差错中立,其中,当发生了破坏所述条目的位状态变化且所述第一位没有被置位时,所述第二位才被置位。
30.如权利要求29所述的系统,还包括:
处理所述条目的指令队列;
传播条目流通过多级的指令流路径;以及
确定条目是否在错误路径上的提交模块。
31.如权利要求29所述的系统,还包括:
片上存储器;以及
耦合到所述片上存储器的音频接口设备。
32.如权利要求29所述的系统,还包括耦合到所述片外存储器的音频接口设备。
33.如权利要求29所述的系统,其中所述第一位是反pi位。
34.如权利要求29所述的系统,其中所述第二位是pi位。
35.如权利要求29所述的系统,其中所述位状态变化发生在所述条目的非操作码位上。
36.如权利要求29所述的系统,其中对于NOP条目,所述第一位被置位。
37.如权利要求29所述的系统,其中对于预取条目,所述第一位被置位。
38.如权利要求29所述的系统,其中对于分支预测提示条目,所述第一位被置位。
39.如权利要求29所述的系统,其中对于对差错中立的条目,所述第一位被置位。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/871,429 US7386756B2 (en) | 2004-06-17 | 2004-06-17 | Reducing false error detection in a microprocessor by tracking instructions neutral to errors |
US10/871,429 | 2004-06-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1710532A CN1710532A (zh) | 2005-12-21 |
CN100407135C true CN100407135C (zh) | 2008-07-30 |
Family
ID=35056837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005100768286A Expired - Fee Related CN100407135C (zh) | 2004-06-17 | 2005-06-17 | 跟踪对差错中立的指令来减少微处理器中的虚假差错检测 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7386756B2 (zh) |
EP (1) | EP1612676A3 (zh) |
KR (1) | KR100736963B1 (zh) |
CN (1) | CN100407135C (zh) |
TW (1) | TWI293429B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050283590A1 (en) * | 2004-06-17 | 2005-12-22 | Weaver Christopher T | Reducing false error detection in a microprocessor by tracking dynamically dead instructions |
US7581152B2 (en) * | 2004-12-22 | 2009-08-25 | Intel Corporation | Fault free store data path for software implementation of redundant multithreading environments |
US7849387B2 (en) * | 2008-04-23 | 2010-12-07 | Intel Corporation | Detecting architectural vulnerability of processor resources |
US7921280B2 (en) * | 2008-06-27 | 2011-04-05 | Intel Corporation | Selectively powered retirement unit using a partitioned allocation array and a partitioned writeback array |
CN101853151B (zh) * | 2009-05-19 | 2013-06-26 | 威盛电子股份有限公司 | 适用于微处理器的装置及方法 |
US8327249B2 (en) * | 2009-08-20 | 2012-12-04 | Broadcom Corporation | Soft error rate protection for memories |
CN101866281B (zh) * | 2010-06-13 | 2013-05-22 | 清华大学 | 一种多周期指令执行方法和装置 |
US9063836B2 (en) * | 2010-07-26 | 2015-06-23 | Intel Corporation | Methods and apparatus to protect segments of memory |
US9606902B2 (en) * | 2012-07-03 | 2017-03-28 | Hitachi, Ltd. | Malfunction influence evaluation system and evaluation method using a propagation flag |
CN103294169B (zh) * | 2013-05-31 | 2015-10-28 | 上海交通大学 | 一种功耗优化的众核系统的冗余保护系统及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4224681A (en) * | 1978-12-15 | 1980-09-23 | Digital Equipment Corporation | Parity processing in arithmetic operations |
US5835944A (en) * | 1996-03-08 | 1998-11-10 | Vlsi Technology, Inc. | Method for storing, transferring decompressing and reconstructing wave table audio sample |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3531631A (en) * | 1967-01-11 | 1970-09-29 | Ibm | Parity checking system |
US4604750A (en) * | 1983-11-07 | 1986-08-05 | Digital Equipment Corporation | Pipeline error correction |
US4794517A (en) * | 1985-04-15 | 1988-12-27 | International Business Machines Corporation | Three phased pipelined signal processor |
US5761413A (en) * | 1987-12-22 | 1998-06-02 | Sun Microsystems, Inc. | Fault containment system for multiprocessor with shared memory |
US4888679A (en) * | 1988-01-11 | 1989-12-19 | Digital Equipment Corporation | Method and apparatus using a cache and main memory for both vector processing and scalar processing by prefetching cache blocks including vector data elements |
JP2618958B2 (ja) * | 1988-03-28 | 1997-06-11 | 株式会社東芝 | パリティチェック制御装置 |
US5649090A (en) * | 1991-05-31 | 1997-07-15 | Bull Hn Information Systems Inc. | Fault tolerant multiprocessor computer system |
EP0529303A3 (en) * | 1991-08-29 | 1993-09-22 | International Business Machines Corporation | Checkpoint synchronization with instruction overlap enabled |
EP0596144A1 (en) | 1992-10-07 | 1994-05-11 | International Business Machines Corporation | Hierarchical memory system for microcode and means for correcting errors in the microcode |
US5535226A (en) * | 1994-05-31 | 1996-07-09 | International Business Machines Corporation | On-chip ECC status |
US5781722A (en) * | 1996-05-10 | 1998-07-14 | Symantec Corporation | Method for diagnosis and repair of compressed volumes utilizing a bitmap |
US5872910A (en) * | 1996-12-27 | 1999-02-16 | Unisys Corporation | Parity-error injection system for an instruction processor |
US6247118B1 (en) * | 1998-06-05 | 2001-06-12 | Mcdonnell Douglas Corporation | Systems and methods for transient error recovery in reduced instruction set computer processors via instruction retry |
US6253306B1 (en) * | 1998-07-29 | 2001-06-26 | Advanced Micro Devices, Inc. | Prefetch instruction mechanism for processor |
KR20010002479A (ko) * | 1999-06-15 | 2001-01-15 | 윤종용 | 고속 명령 수행을 위한 명령어 프리디코더 |
US6457119B1 (en) * | 1999-07-23 | 2002-09-24 | Intel Corporation | Processor instruction pipeline with error detection scheme |
US6738892B1 (en) * | 1999-10-20 | 2004-05-18 | Transmeta Corporation | Use of enable bits to control execution of selected instructions |
US6675341B1 (en) * | 1999-11-17 | 2004-01-06 | International Business Machines Corporation | Extended error correction for SEC-DED codes with package error detection ability |
US6862677B1 (en) * | 2000-02-16 | 2005-03-01 | Koninklijke Philips Electronics N.V. | System and method for eliminating write back to register using dead field indicator |
KR20010087046A (ko) | 2000-03-06 | 2001-09-15 | 서평원 | 컴퓨터 시스템 |
US6543028B1 (en) * | 2000-03-31 | 2003-04-01 | Intel Corporation | Silent data corruption prevention due to instruction corruption by soft errors |
US6654909B1 (en) * | 2000-06-30 | 2003-11-25 | Intel Corporation | Apparatus and method for protecting critical resources against soft errors in high performance microprocessors |
US6662319B1 (en) * | 2000-08-31 | 2003-12-09 | Hewlett-Packard Development Company, L.P. | Special encoding of known bad data |
US6895527B1 (en) * | 2000-09-30 | 2005-05-17 | Intel Corporation | Error recovery for speculative memory accesses |
US6823448B2 (en) * | 2000-12-15 | 2004-11-23 | Intel Corporation | Exception handling using an exception pipeline in a pipelined processor |
US6704890B1 (en) * | 2000-12-22 | 2004-03-09 | Nortel Networks Limited | Skew compensating interface for operation with arbitrary data |
US6804799B2 (en) * | 2001-06-26 | 2004-10-12 | Advanced Micro Devices, Inc. | Using type bits to track storage of ECC and predecode bits in a level two cache |
US7318169B2 (en) | 2002-05-15 | 2008-01-08 | David Czajkowski | Fault tolerant computer |
US6944791B2 (en) * | 2002-07-18 | 2005-09-13 | Lsi Logic Corporation | Method of handling unreadable blocks during write of a RAID device |
US7222270B2 (en) * | 2003-01-10 | 2007-05-22 | International Business Machines Corporation | Method for tagging uncorrectable errors for symmetric multiprocessors |
US20050138478A1 (en) * | 2003-11-14 | 2005-06-23 | Safford Kevin D. | Error detection method and system for processors that employ alternating threads |
-
2004
- 2004-06-17 US US10/871,429 patent/US7386756B2/en not_active Expired - Fee Related
-
2005
- 2005-05-20 TW TW094116575A patent/TWI293429B/zh not_active IP Right Cessation
- 2005-06-01 EP EP05253361A patent/EP1612676A3/en not_active Withdrawn
- 2005-06-16 KR KR1020050051806A patent/KR100736963B1/ko not_active IP Right Cessation
- 2005-06-17 CN CN2005100768286A patent/CN100407135C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4224681A (en) * | 1978-12-15 | 1980-09-23 | Digital Equipment Corporation | Parity processing in arithmetic operations |
US5835944A (en) * | 1996-03-08 | 1998-11-10 | Vlsi Technology, Inc. | Method for storing, transferring decompressing and reconstructing wave table audio sample |
Non-Patent Citations (2)
Title |
---|
Wikipedia's classic RISC pipeline,revision. 第4-16段. 2004 |
Wikipedia's classic RISC pipeline,revision. 第4-16段. 2004 * |
Also Published As
Publication number | Publication date |
---|---|
TWI293429B (en) | 2008-02-11 |
KR20060049614A (ko) | 2006-05-19 |
KR100736963B1 (ko) | 2007-07-09 |
TW200604944A (en) | 2006-02-01 |
EP1612676A2 (en) | 2006-01-04 |
CN1710532A (zh) | 2005-12-21 |
EP1612676A3 (en) | 2009-04-22 |
US7386756B2 (en) | 2008-06-10 |
US20050283685A1 (en) | 2005-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100407135C (zh) | 跟踪对差错中立的指令来减少微处理器中的虚假差错检测 | |
CN100449480C (zh) | 用于降低微处理器内的虚假差错检测的方法和装置 | |
CN100578462C (zh) | 降低时钟同步双模冗余系统中错误率的装置、方法和系统 | |
CN100419695C (zh) | 将进程删除错误引向应用程序 | |
US9361170B2 (en) | Method for checking data consistency in a system on chip | |
US8127205B2 (en) | Error correction code generation method and memory control device | |
US20070044003A1 (en) | Method and apparatus of detecting and correcting soft error | |
CN105320579A (zh) | 面向sparc v8处理器的自修复双冗余流水线及容错方法 | |
JPH0548502B2 (zh) | ||
TWI242120B (en) | Method and apparatus for providing error correction within a register file of a CPU | |
US20160179611A1 (en) | Low overhead error checking and correction apparatus and method | |
CN105260256A (zh) | 一种双模冗余流水线的故障检测及回退方法 | |
CN1710533B (zh) | 通过跟踪动态死指令来减少微处理器中的虚假差错检测 | |
Lee et al. | Evaluation of error detection coverage and fault-tolerance of digital plant protection system in nuclear power plants | |
US20060143551A1 (en) | Localizing error detection and recovery | |
US8069376B2 (en) | On-line testing for decode logic | |
JP2008016163A (ja) | メモリ装置およびメモリ読み出しエラー検出方法 | |
US20020087842A1 (en) | Method and apparatus for performing architectural comparisons | |
US20240095113A1 (en) | Processor and method of detecting soft error from processor | |
US20240289213A1 (en) | System, method and apparatus for reducing power consumption of error correction coding using compacted data blocks | |
JPH02271432A (ja) | マイクロコード試験方法及びその装置 | |
Chen et al. | Method for improving data security in register files based on multiple pipeline restart | |
Soundararajan et al. | Fault Tolerant Memory In Processor-SuperComputer On a Chip | |
JPH04242835A (ja) | 故障検出システム | |
JPH03256131A (ja) | セグメント属性としてパリティモードを持つ電子計算機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080730 Termination date: 20100617 |