CN101933002A - 包含用于逻辑错误保护的混合冗余的处理器 - Google Patents
包含用于逻辑错误保护的混合冗余的处理器 Download PDFInfo
- Publication number
- CN101933002A CN101933002A CN2009801039612A CN200980103961A CN101933002A CN 101933002 A CN101933002 A CN 101933002A CN 2009801039612 A CN2009801039612 A CN 2009801039612A CN 200980103961 A CN200980103961 A CN 200980103961A CN 101933002 A CN101933002 A CN 101933002A
- Authority
- CN
- China
- Prior art keywords
- integer
- execution
- floating point
- instruction
- execution units
- 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.)
- Pending
Links
- 238000007667 floating Methods 0.000 claims description 42
- 238000000034 method Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 abstract description 3
- 230000015654 memory Effects 0.000 description 41
- 230000015572 biosynthetic process Effects 0.000 description 23
- 238000005755 formation reaction Methods 0.000 description 23
- 238000000605 extraction Methods 0.000 description 12
- 238000003860 storage Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 239000000284 extract Substances 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- LBDSXVIYZYSRII-IGMARMGPSA-N alpha-particle Chemical compound [4He+2] LBDSXVIYZYSRII-IGMARMGPSA-N 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 229910044991 metal oxide Inorganic materials 0.000 description 2
- 150000004706 metal oxides Chemical class 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000011109 contamination Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000037452 priming Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
- 238000011144 upstream manufacturing 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
- 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/1497—Details of time redundant execution on a single processing unit
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
- G06F11/1645—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components and the comparison itself uses redundant hardware
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Hardware Redundancy (AREA)
- Storage Device Security (AREA)
Abstract
一种包含指令译码单元(140)的处理器核心(100),该指令译码单元可派送相同的整数指令流至多个整数执行单元(154a、154b),并且可连续地派送相同的浮点指令流至浮点单元(160)。该整数执行单元可操作在锁定步骤中,使得在每个时钟周期期间,每个个别的整数执行单元可执行该相同的整数指令,而该浮点单元则可执行该相同的浮点指令流两次。在该整数指令引退之前,比较逻辑(158a、158b、163)可检测来自各整数执行单元之执行结果间的不匹配。此外在浮点指令流的结果从该浮点单元转移出来之前,该比较逻辑也可检测各连续的浮点指令流的执行结果之间的不匹配。再者,于检测到任何不匹配时,该比较逻辑可产生使该不匹配再次执行的指令来做为响应。
Description
技术领域
本发明乃关于处理器,尤系关于处理器内逻辑错误的保护。
背景技术
有各式各样的原因会让电子组件失效。包含存储器数组的构件会因为位失效而呈现数据错误。逻辑电路则可能发生固定位值(stuck-at bit)及/或延迟误差(delay error)。这些原因可继续罗列下去。有许多错误是制造时的缺陷造成。举例来说,由于制造期间的微粒污染导致硬错误(hard error)而表现在当下与稍后的操作期间。有许多这类的错误可归类成硬错误,因为所检测出的故障是永久的。虽然在制造测试与烧入(burn-in)期间可检测出许多硬错误,但是仍有一些不易察觉,或是恰好没被发现。而有些种类的错误会比其它种类的错误更具破坏性。例如,像是因为存储器数据损毁造成的无症状(silent)错误便可能成为灾难,这是因为只有检测到错误并且存在修正或复原机制才有办法予以回复之故。因此已发展出多种检测/修正机构,尤其是错误检测码(error detection code,EDC)与错误修正码(error correction code,ECC)以及已经建立在设计中的EDC/ECC硬件。过去此类技术虽然已用于微处理器的设计以保护免于存储器的错误,但是大多数的逻辑错误却只有在制造测试与烧入的期间进行检测,故大部分的逻辑仍然是没有被保护的。
在另一方面,软错误(soft error)则是间歇性的且随机出现,故很难检测并修正。在过去软错误通常被隔离于采用缆线与具有连接器之电路板一类的系统以外。然而如今由于制造技术的进步以及组件尺寸越来越小(像是小于90nm),便出现新的软错误来源,这种情形特别是发生在金属氧化物半导体(metal oxide semiconductor,MOS)组件上。此类新的软错误可由中子或α粒子轰击造成,直接轰击在存储器数组上会呈现存储器错误,而轰击在逻辑单元(像是正反器)上则呈现逻辑错误。
在像是微处理器等包含数以百万计个晶体管的组件中,如果软错误没有被检测出来便会造成灾难性的后果。因此,像是传统芯片层级冗余(chip level redundancy)的检测方法已经被发展出来,可检测出在芯片范围的错误。在传统芯片层级冗余的架构中,由于该类错误已经损毁了处理器内部执行的状态,因此就算是检测出错误却仍无法修正,并且系统也不能透通地(transparently)回复而必须重新启动。故虽然此类配置可以检测到错误,但是对于高可靠与高可用的系统而言仍是无法接受的。
发明内容
本发明揭露包含用于逻辑错误保护之混合冗余的处理器的各种实施例。实施例的处理器核心可运算在正规执行模式(normal execution mode)与可靠执行模式(reliable execution mode)。该处理器核心包含指令译码单元,该指令译码单元可配置成派送(dispatch)相同的整数指令流至多个整数执行单元,且配置成连续地派送相同的浮点指令流至浮点单元。举例来说,当运算在该可靠执行模式中时,该指令译码单元可派送该相同的整数指令流至该整数执行群集(cluster),并派送浮点指令流的指令至该浮点单元连续两次。该多个整数执行单元可配置成在锁定步骤中运算,以致于在每个时钟周期期间,该多个整数执行单元执行该相同的整数指令,且因此应该得到完全相同的结果。该浮点单元可配置成执行该相同浮点指令流两次,且也应该具有完全相同的结果。该处理器核心也包含比较逻辑,该比较逻辑耦接至该多个整数执行单元以及至该浮点单元。举例来说,在该相同整数指令流中的指令永久地引退(retire)或确定(commit)它们的结果之前,可将该比较逻辑配置成检测来自各该多个整数执行单元的执行结果之间的不匹配。此外,在该浮点单元把该浮点指令流的执行结果从该浮点单元转移出来之前,可进一步将该比较逻辑配置成检测各个连续的浮点指令流执行结果间的不匹配。再者,当比较逻辑检测到任何不匹配时,可将该比较逻辑配置成再次执行造成该不匹配的指令来做为响应。
附图说明
图1是处理器核心的实施例方块图;
图2是该处理器核心逻辑错误保护的实施例架构方块图;
图3是描述图1和图2中处理器实施例的运作流程图;
图4是描述图1和图2中处理器另一实施例的运作流程图;以及
图5是包含多个显示在图1之处理器核心的处理器实施例方块图。
具体实施方式
虽然本发明容许各种修改与替代形式,本发明的具体实施例系以图式中的范例方式来显示且将在此详细描述。然而应了解的是,该图式与其详细描述并非意欲限制本发明仅仅在所揭露的特定形式,相反地,本发明是涵盖落入如所附申请专利范围所界定之本发明的精神与范围内所有的修改、等效物、和替代形式。应注意的是,在本申请全文中的用语「可(may)」是容许的意思(即具有...的可能、能够),而不是强制的意思(即必须)。
图1说明处理器核心100的实施例。一般来说,核心100可配置成执行可储存在系统存储器(显示在图5)中的指令,该系统存储器是直接或间接地耦接至核心100。此类指令可根据特定的指令集架构(instruction set architecture,ISA)来定义。举例来说,可将核心100配置成实作x86ISA的其中一个版本,惟在其它实施例中,核心100可实作成不同的ISA或ISA的组合。
在本示范实施例中,核心100可包含指令缓存(instruction cache,简称IC)110,其被耦接成提供指令至指令提取单元(instruction fetch unit,简称IFU)120。可将IFU 120耦接至分支预测单元(branch prediction unit,简称BPU)130且耦接至指令译码单元140。可将译码单元140耦接成提供运算至多个整数执行群集150a和150b、以及至浮点单元(FPU)160。群集150a和150b的每一个可包含耦接至个别多个整数执行单元154a和154b的个别群集调度器(scheduler)152a和152b。群集150a和150b也可包含经耦接成提供数据至执行单元154a和154b的个别数据缓存156a和156b。在说明的实施例中,数据缓存156a和156b也可提供数据至FPU 160的浮点执行单元164,而该浮点执行单元164则可被耦接成接收来自FP调度器162的运算。可额外地耦接数据缓存156a和156b以及指令缓存110至核心接口单元170,而该核心接口单元170可依次耦接至统一的(unified)L2缓存180以及耦接至核心100外部的系统接口单元(system interface unit,SIU)(显示在图2中且将在下面描述)。应注意的是虽然图1反映出在各种单元之间某些指令与数据流的路径,但是也可提供未具体显示在图1中的额外路径或数据方向或指令流。
以下将详述,可将核心100配置成用于多线程执行(multithreaded execution),其中,来自不同执行线程(thread,又称执行绪)的指令可同时被执行。实施例的群集150a和150b的每一个可专门用来执行对应至两线程其中之一的指令,而在该等线程之间可共享FPU 160和该上游指令的提取以及译码逻辑。而在其它实施例中,可设想不同数量的线程以支持同时执行,且可提供不同数量的群集150和FPU 160。
可将指令缓存110配置成在指令被撷取、译码与发布执行之前,储存该指令。在各种实施例中,可视需要配置指令缓存110为任何类型的缓存并可为任意大小,且可实体或虚拟寻址、仅虚拟寻址或结合该两者(例如虚拟索引位和实体卷标位)。在一些实施例中,指令缓存110也可包含转译后备缓冲器(translation look-aside buffer,简称TLB)逻辑,该转译后备缓冲器逻辑配置成以缓存贮存用于指令提取地址之虚拟至实体的转译(virtual-to-physical translation),然而TLB和转译逻辑也可包含在核心100内其它地方。
IFU 120可协调存取指令缓存110的指令提取。举例来说,IFU 120可追踪各种执行线程之当前程序计数器的状态,并发布对于指令缓存110的提取以撷取额外的执行指令。在指令缓存未中(miss)的情况中,不是由指令缓存110便是由IFU 120来协调从L2缓存180撷取指令数据。在一些实施例中,IFU 120也可为了减轻存储器等待时间(memory latency)的影响,而在预期使用指令之前协调从存储器的其它阶层来预提取(prefetch)该指令。举例来说,成功的指令预提取可增加指令在需要时存在于指令缓存110中的可能性,故能避免在多层存储器阶层间缓存未中的延迟影响。
各种类型的分支(例如条件式或非条件式的跳跃(jump)、呼叫(call)/返回(return)指令等)可改变特定线程的执行流程。分支预测单元130通常被配置以预测将由IFU 120所使用的提取地址。在一些实施例中,BPU 130可包含分支目标缓冲区(branch target buffer,简称BTB)(未图示),可配置该分支目标缓冲区以储存与该指令流中的可能分支相关的许多信息。在实施例可去耦接(decouple)IFU 120和BPU 130的执行管线(pipeline)而容许该分支预测去「预先运行(run ahead)」指令提取,使得多个将提取的地址能被预测并放入队列,直到IFU 120准备好要使用它们。可设想在多线程运算期间,将该预测与提取管线配置成在不同的线程上同时运作。
由于提取的关系,可将IFU 120配置成产生指令字节的序列(sequence),该指令字节的序列也可称为提取封包(fetch packet)。举例来说,提取封包的长度可为32个字节、或另一适当的数值。在一些实施例中,特别是用于实作可变长度(variable-length)指令的ISA,在指定的提取封包内可存在变动数目的有效指令,沿着该封包的任意边界排列,且在一些情况中指令可跨越不同的提取封包。一般来说,可将译码单元140配置成用以识别提取封包内的指令边界、以译码或转换指令成为适合由群集150或FPU 160所执行的运算,以及派送此类运算以供执行。
在一实施例中,可将DEC 140配置成首先判定从一个或多个提取封包抽取出的字节给定窗口内的可能指令的长度。举例来说,对于相容于x86的ISA而言,可将DEC 140配置成标识符首(prefix)、运算码(opcode)、mod/rm和SIB字节的有效序列(从该给定提取封包内每一个字节的位置开始)。之后在某实施例中,可配置DEC 140内的挑选逻辑(pick logic)以识别该窗口内最多四个有效指令的边界。实施例中多个提取封包以及用来识别指令边界的指令指针(instruction pointer)的多个群组可队列在DEC 140内,使得该译码程序从提取功能中被去耦接,而让IFU 120可偶尔在译码前就「预先提取(fetch ahead)」。
之后可将指令从提取封包储存体导入DEC 140内的多个指令译码器其中之一。在一实施例中,可将DEC 140配置成于每个周期发送多达四个要执行的指令,且DEC 140可提供对应的四个独立的指令译码器,惟其它配置也是可能且可预期的。在核心100支持微码指令(microcoded instruction)的实施例中,可将每个指令译码器配置成判定给定的指令是否为微码,而如果是的话可引动(invoke)微码引擎的运算以变换该指令成为一序列的运算。否则,该指令译码器可变换该指令成为适合由群集150或FPU 160所执行的一个运算(或在一些实施例中可能是许多个运算)。所产生的运算也可称为微运算(micro-operation)、micro-ops或μops,且可储存在一个或多个队列内以等待被派送执行。在一些实施例中,可把微码运算与非微码(或「快速路径(fastpath)」)运算储存在个别的队列中。
为了组合派送包(dispatch parcel),可配置DEC 140内的派送逻辑以检查等待派送之队列运算的状态,以及执行资源与派送规则的状态。举例来说,DEC 140可考虑等待派送之运算队列的可用度、群集150及/或FPU 160内已进入队列且等待执行的运算数量、以及可应用至要被派送的运算的任何资源限制(constraint)。在一实施例中,可将DEC140配置成于给定的执行周期期间派送最多包含四个运算的派送包至群集150或FPU 160的其中一者。
在一实施例中,可将DEC 140配置成在给定的执行周期期间译码并派送仅用于单一线程的运算。然而要注意的是,IFU 120和DEC 140不需要在相同的线程上同时运算。在指令提取与译码期间可设想使用各种类型的线程切换策略(thread-switching policy)。举例来说,可采用轮流(round robin fashion)的方式将IFU 120和DEC 140配置为每N个周期(N可少至1)便选择不同的线程。另一种状况是线程的切换会被像是队列占用(queue occupancy)的动态条件所影响。举例来说,如果DEC140内某特定线程已译码运算的队列深度、或是特定群集150之已派送运算的队列深度下降至低于阈值,则解碼处理可切换至该线程,直到有不同线程之队列内的运算快处理完为止。在一些实施例中,核心100可支持多个不同的线程切换策略,该等线程切换策略的任何一个可经由软件或是在制造(例如制造屏蔽选择(fabrication mask option))期间来选择。
一般说来,可将群集150配置成实行整数算术、逻辑运算以及进行加载/储存运算。在一实施例中,群集150a和150b的每一个可专供某个别线程的运算执行,使得当核心100被配置成在单一线程模式进行运算时,运算指令只会被发送至群集150的其中之一。每个群集150可包含它自己的调度器152,且可将该调度器152配置成用以管理先前派送至该群集之运算的执行发布(issuance for execution)。每个群集150可进一步包含它自己的整数实体缓存器档案的副本,以及它自己的完成逻辑(completion logic)(例如记录器缓冲区(recorder buffer)、或用以管理运算完成与引退的其它结构)。
如下面将详细说明的,除了上述的运算之外,在一实施例中,可将处理器核心100配置成在可靠执行模式中进行运算。举例来说,在一实作中,可通过把一外部接脚(显示于图5)连接至例如VDD或GND的预定参考电压而将处理器核心100选择性地配置成在正规执行模式进行运算或在该可靠执行模式进行运算。当选择该可靠执行模式时,可将DEC 140内的派送逻辑配置成在同一时钟周期派送该相同的指令序列至群集150a和150b的每一个。此外,可将群集150a和150b配置成运行在锁定步骤(lock-step)中,使得对于每个时钟周期而言,该相同的指令是在该管线的相同阶段中,且在每个阶段时期,每个群集应该产生完全相同的结果。此外当运算在锁定步骤中时,所有处理器状态在群集150a和150b之间应该是完全相同的,且对于L2缓存180的存取应该实质上同时发生。下面将进一步描述可使用这些特性以保护免于软件逻辑错误的传播(propagation)。
在每个群集150内,执行单元154可支持同时执行各种不同类型的运算。举例来说,实施例的执行单元154可支持两个同时加载/储存的地址产生(AGU)运算与两个同步算术/逻辑(ALU)运算,故每个群集同时共有四个整数运算。执行单元154可支持例如整数相乘与相除的额外运算,惟在各种实施例中,群集150可采用其它的ALU/AGU运算来实行对于这种额外运算的处理量(throughput)与同时处理上的调度限制。此外,每个群集150可具有它自己的数据缓存156,如同指令缓存110可使用各种缓存结构的其中之一来实行。要注意的是,数据缓存156的缓存结构可不同于指令缓存110的缓存结构。
在已说明的实施例中,FPU 160不同于群集150而可配置成执行来自不同线程的浮点运算,且在一些情况中可同时执行。FPU 160可包含FP调度器162,该FP调度器162与群集调度器152一样可配置成用以接收、队列与发布于FP执行单元164内执行的运算。FPU 160也可包含配置成用来管理浮点操作数的浮点实体缓存器档案。可将FP执行单元164配置成实行许多种类的浮点运算(例如加、减、除、积和(multiply-accumulate))、以及可由ISA所定义的其它浮点、多媒体或其它运算。在各种实施例中,FPU 160可支持特定不同类型之浮点运算的同时执行,且也可支持不同程度的精确度(例如64位操作数、128位操作数等等)。如图所示,FPU 160可以不包含数据缓存,但却可配置成存取包含在群集150内的资料缓存156。在一些实施例中,FPU 160可配置成执行浮点加载和储存指令,而在其它实施例中,群集150则可代表FPU 160来执行这些指令。
如前所述,如果选择可靠执行模式,则可将DEC 140内的派送逻辑配置成每当FPU 160执行一个线程时连续派送该相同的线程至FPU
160。因此如下述可为求精确而比较每个连续相同线程的执行结果。
可将指令缓存110和数据缓存156配置成经由核心接口单元170来存取L2缓存180。在一实施例中CIU 170可对核心100和其它系统内的核心100之间、以及和外部系统存储器、周边等之间提供通用的接口。在一实施例中,可配置L2缓存180为采用任何适合缓存结构的统一缓存。通常L2缓存180的容量远大于第一阶指令与数据缓存。
在一些实施例中,核心100可支持无序(out oforder)运算的执行(包含加载和储存运算)。也就是说,在群集150和FPU 160内的运算执行顺序可不同于该等运算所对应指令在原始程序中的顺序。这种宽松的执行顺序可促进执行资源更有效地调度,而改善整体执行效能。
此外,核心100可实行各种控制与数据的推测(speculation)技术。如上所述,核心100为了预测线程的执行控制流将进行的方向,可实行各种分支预测与推测的预提取技术。此种控制推测技术在确切明白指令是否可用,或是发生推测错误(如分支预测错误)之前,通常会试着提供前后一致的指令流。如果发生了控制推测错误,则可将核心100配置成抛弃该错误推测路径上的运算与数据,并将执行控制导向至正确路径。举例来说,在一实施例中,可将群集150配置成成执行条件式的分支指令并判定该分支结果是否吻合该已预测的结果。如果没有,则可将群集150配置将IFU 120重新导向以沿着正确的路径开始提取。
核心100可各自独立地实行各种资料推测技术,其中,该等资料推测技术企图在得知该数据数值是否正确之前,便提供数据数值供将来执行之用。举例来说,在集合相联缓存(set-associative cache)中,在知道是否有资料确实命中在某条路(way)之前,便可能从该缓存的多条路中取得资料。在一实施例中,为了在得知路命中/未中状态之前企图提供缓存结果,可将核心100配置成进行路的预测,如同指令缓存110、数据缓存156及/或L2缓存180中的数据推测方式。如果发生不正确的数据推测,则依照错误推测数据所做的运算可被「重新进行(replay)」或重新发布以再次执行。举例来说,对于预测不正确之路的加载运算可重新进行。当再次执行时,根据实施例的不同而可依据稍早推测错误的结果来再次推测该加载运算(例如使用如先前所判定该正确的路来推测)或是执行该加载运算而不需推测数据(例如在产生结果之前仍继续进行,直到路命中/未中的检查完成)。在各种实施例中,核心100可实行许多其它类型的数据推测,例如地址预测、依照地址或地址操作数形态(address operand pattern)的加载/储存相依性(dependency)检测、推测的储存至载入(store-to-load)结果的转递(forwarding)、数据同调性的推测(data coherence speculation)、或其它合适的技术或上述技术的组合。
在不同实施例中,处理器的实作可包含将多个核心100的实例连同其它结构制造成单一集成电路的一部份。图5说明此种处理器的实施例。
如同前面所简短描述的,处理器核心100可在可靠执行模式中进行运算。在运算于该可靠执行模式期间,群集150a和150b每一个内的逻辑是配置成在锁定步骤中运算,每个群集执行相同的指令流。如果没有错误,放置于该逻辑内的结果总线(result bus)上的结果应该在每个阶段的每个时钟周期是完全相同的。因此一旦发生错误(例如因为α粒子对于一个群集中的逻辑组件的轰击),则在该逻辑组件受到影响之后的某个时钟周期内,便会造成位于结果总线上某处的结果不同于在相同时钟周期内位于其它群集中相对应之结果总线上的结果。
如图1所示,每个群集150包含个别的签字产生器单元(signature generator unit)157和个别的比较单元158。在运算期间,在一实施例中,当来自各种阶段的结果产生在该结果总线上时,签字产生单元157a和157b可配置成从该个别结果总线而来的信号产生签字。比较单元158a和158b可配置成用以比较用来比对的该签字,且如果发生不匹配则通知CIU 170。CIU 170可配置成使得在两个群集中都受影响的指令被从两个群集150的执行管线中清除并重新执行。在一实施例中,CIU 170可导致机器检查故障(machine check fault)以响应不匹配通知。
在各种实施例中,可使用任何类型的签字或压缩来产生该等结果的签字。使用签字或压缩技术来产生该等结果的签字或散列(hash)可减少必须排定至每个群集中比较单元与该FPU 160内线路的数量。只要所产生的签字具有代表原始信号的高度可能性,则该签字便是适当的。另外尽管效率不高,但是可预期在一个实施例中可没有任何压缩而需要比较所有的结果信号。
此外,如前面所提到的,在两个群集150中的执行逻辑应该在实质上同一时间存取该L2缓存180。因此,在CIU 170内的比较单元171可配置成检查L2存取何时发生,而如果它们没有实质上同时发生,则如上所述,CIU 170可使得在两个群集中都受影响的指令被清除并重新执行。
以相似的方式,如果分支错误预测发生在一个群集中,则它也应该发生在另一个群集中。因此,在CIU 170内的比较单元171也可配置成检查该两个群集的错误预测状态。
如上述FPU 160为共享资源,在相同逻辑上可连续两次执行相同的线程或浮点指令流。在一实施例中,类似于上述的签字产生器,可将签字产生器157c配置成从每个线程执行的结果来产生签字。在FPU160和所指定的FP比较单元163内的比较单元可配置成在该等结果被容许离开FPU 160而存进该引退队列中之前比较每个流的执行结果;如果检测到不匹配,则把该不匹配通知CIU 170。与前面相同,CIU 170可使得该等结果被清除并使得该线程被再次重新执行两次。
因此,上述的逻辑错误保护可视为该群集150内群集层级的空间冗余与该FPU 170内线程层级的时间冗余。如图2中所显示的,该签字的产生和结果的比较是与该指令的执行平行发生,并且是在该指令被储存进该引退队列(显示在图2中)之前发生的。因此,在该指令永久地被引退或确定之前便可检测到错误,而达到透通的(transparent)错误恢复。再者,既然是平行于该指令的执行来进行比较,故该比较不在关键路径中。在传统芯片位准冗余结构中,要检查的结果是取自该引退队列,故系位于关键路径中。此外,可视需要使用EDC/ECC的逻辑与码来保护其它的存储器、缓存器、与其它系统逻辑。因此,此种具有空间、时间、与EDC/ECC错误保护冗余的结合便产生用来保护逻辑错误的混合冗余(hybrid redundancy)设备。
参照图2的架构方块图,系显示该处理器核心逻辑错误保护的一个实施例。为了简化,对应至图1中组件的组件系使用相同的编号。为了清楚表示,已经从图2中省略许多组件。处理器核心100包含指令缓存、以及「指令提取暨译码逻辑」,两者在图2中一起标示为组件符号210。此外和图1一样,耦接至该译码单元210的处理器核心100包含整数执行群集150与浮点单元(标示为FP单元160)。处理器核心100也包含引退队列290,该引退队列290系经由个别结果总线来耦接至群集150以及FP单元160。该等结果总线也耦接至签字产生器265,该签字产生器265再耦接至比较单元275。签字产生器265也会被耦接以接收处理器状态信息295。
在已说明的实施例中,该签字产生器265是显示成单一单元。然而,要注意的是该签字产生器265可代表分布式功能(distributed function),其中可有多个签字产生方块,如图1中所显示与如上所述。
在已说明的实施例中,签字产生器265是配置成,当该等结果出现在多条结果总线上且在该等结果被储存进引退队列290之前产生该等结果的签字或散列。因此如上所提到的,该错误检查是进行在该关键路径之外。
此外,在一实施例中,处理器状态信息包括例如EFLAGS缓存器数值、缓存器档案奇偶性错误状态(register file parity error state)、外部中断等等,可包含在每个被产生的签字中。如前说明图1时所述,该签字可送至比较单元275来作比较。通过检查该处理器状态信息,可检测到伴随该处理器状态的潜在问题,即使该问题可能不会出现在该等结果中亦然。
在该说明的实施例中,引退队列290是由ECC逻辑291来保护。因此,一旦检查过的结果被储存在该引退队列290中,则通过奇偶性或一些其它类型的错误检测/校正码便能保护检查过的结果免于受到软错误。
图3系显示描述于图1和图2的处理器核心100之实施例的运作流程图。共同参照图1至图3,且从图3的方块300开始,处理器核心100是运作在可靠执行模式中,并且提取指令。如上所述,DEC 140实质上同时派送相同的整数指令至群集150a和150b(方块305)。在可靠执行模式中,该群集150是配置成在锁定步骤中运作(方块310)。当可获得不同管线阶段的结果时,便在每个群集中互相比较对应至那些结果的信号。更具体地说,每个群集可把对应至在该给定阶段处的局部结果的信号,与同一阶段对应至来自另一群集的结果信号作比较。因为该群集150是运行在锁定步骤中,所以结果应该完全相同。如上所述,在比较该信号之前,该结果信号可压缩至签字或散列中。如果任一比较单元158检测到不匹配(方块320),则比较单元158可通知CIU170,而CIU 170可发出机器检查故障、或其它类型的故障,造成该指令被从两个群集中清除(方块325)、并且被重新执行(方块330)。之后的运作如前述以及方块305的叙述继续进行。
回头参照方块320,如果没有检测到不匹配,则可写入该结果至该引退队列290(方块350)。要注意的是在其它实施例中,可检查来自额外阶段的额外结果。在这样的实施例中,在每个阶段处可检查对应至该结果的信号的不匹配,且如果发现不匹配,则可清除与重新执行该指令。然而如果没有检测到不匹配,则可在该引退队列290中写入或储存该结果。
回头参照方块300,如果所提取的指令是浮点指令,则DEC 140可派送包含指令流的浮点线程至FPU 160(方块355)。该线程执行的结果(或对应至该结果的信号)是保存在例如FP比较单元163内(方块360)。此外,当运作在该可靠执行模式中时,DEC 140会派送刚被执行之相同的浮点指令流至该FPU 160(方块365)。FP比较单元163则比较该线程当前的执行结果与先前的线程执行结果(方块370)。
如果没有不匹配(方块375),则该结果从该FPU 160中释放、并储存在该引退队列290中。然而,如果FP比较单元检测到不匹配(方块375),则在该线程中的浮点指令便被清除(方块380)、且被再次重新执行,共两次(方块385)。之后的运作如前述以及方块355的叙述继续进行。
如上所述,为了减少用于传送比较结果所必需的线路数量,可使用该结果信号的签字或散列。如此,可使用图1的签字产生方块157与图2的签字产生器265来实施此功能。此外,对比于许多传统系统,显示在图1至图4中的签字产生与后续的比较系与该处理平行进行(也就是可获得该结果时)。因此,该签字的产生与比较便从该处理的关键路径中移除。图4是描述图1和图2的处理器核心100的另一实施例的运作流程图。更具体来说,描述在图4中的运作相似于描述在图3中的运作。然而,显示在图4中的运作包含额外的步骤。因此为了清楚说明,将只描述不同于显示在图3中的运作。
共同参照图1至图4,且从图4的方块410开始,处理器核心100正运作在可靠执行模式中,且已经提取与派送相同的整数指令至每个群集150。每个群集在锁定步骤中执行该指令。在沿着每个群集之结果总线的一个或多个所选择的位置处,拦截该结果总线的信号。当该结果变得可获得时,签字产生器(例如157a、157b、265)便产生该结果与该处理器状态的签字或散列,如上所述(方块415)。所产生的签字被传送至其它群集,且每个群集比较自己的签字与从其它群集接收到的签字(方块420)。该签字的产生与后续的比较是和该指令的执行平行发生的。依照比较的结果,该结果可能被储存在引退队列290中、或是该指令被清除并被重新执行(方块425至435)。
参照方块455,如之前图3中方块355的描述,该DEC 140可派送浮点指令线程至该FPU 160。签字产生器157c从该浮点指令流的执行结果产生签字(方块460)。在一实施例中,该结果是保持在FP比较单元163中。如上所述,DEC 140派送刚被执行之相同的浮点指令流至该FPU 160(方块465)。签字产生器157c从该浮点指令流第二次执行的结果产生签字(方块470)。FP比较单元163比较该线程当前执行的结果与所保存之先前的线程执行结果(方块475)。依照比较的结果,该结果可能储存在引退队列290中,或是该线程中的指令可被清除并重新执行(方块480至495)。
翻至图5,处理器500包含四个核心100a至100d,可如前所述配置每个核心。在该说明的实施例中,每个核心100可经由系统接口单元(system interface unit,SIU)510来耦接至L3缓存520与存储器控制器/周边接口单元(memory controller/peripheral interface unit,MCU)530。在该说明的实施例中,可靠执行模式的选择接脚可耦接至SIU 510。然而,可预期到在其它实施例中,该接脚可连接至其它方块。在一实施例中,L3缓存520可配置成使用任何合适的结构来实作的统一缓存,在核心100的L2缓存180与相对较慢的系统存储器540之间,以L3缓存520作为中间的缓存。
MCU 530可配置作为处理器500直接与系统存储器540相接的接口。举例来说,MCU 530可配置来产生支持一种或多种不同类型的随机存取存储器(RAM)(例如双数据速率同步动态RAM(DDR SDRAM)、DDR-2SDRAM、全缓冲双直列存储器模块(Fully Buffered Dual Inline Memory Module,FB-DIMM)、或其它适合实作系统存储器540的存储器)所必要的信号。可配置系统存储器540来储存可在处理器500的不同核心100上运作的指令和数据,且可由上述不同的缓存来缓存该系统存储器540的内容。
此外,MCU 530可支持连接至处理器500其它类型的接口。举例来说,MCU 530可实作出专属的图形处理器接口,例如加速/进阶图形端口(Accelerated/Advanced Graphics Port,AGP)界面其中一个版本,可使用该图形处理器接口作为将处理器500连接至图形处理子系统的接口;该图形处理子系统可包含独立的图形处理器、图形存储器及/或其它组件。MCU 530也可配置来实行一个或更多个类型的周边接口,例如PCI-Express总线标准的一个版本;透过该PCI-Express总线标准,处理器500可连接至接口设备,例如储存装置、图形装置、网络装置等等。在一些实施例中,可使用在处理器500外部的第二总线桥接器(例如「南桥」),通过其它类型的总线或互连件来耦接处理器500至其它周边装置。要注意的是虽然存储器控制器和周边接口功能是图标为经由MCU 530而整合在处理器500内,但是在其它实施例中可经由传统「北桥」的配置,而在处理器500的外部也可实行这些功能。举例来说,MCU 530的多种功能可经由独立芯片组来实行,而不需整合于处理器500内。
虽然以上已经相当详细地描述了实施例,熟知此技术领域的人士一旦完全了解本发明,则许多的变化形式与修改型式对他们来说将变得显而易见。本发明下列的申请专利范围是打算涵盖所有此类的变化与修改。
产业利用性
本发明一般可应用于处理器。
Claims (10)
1.一种处理器核心(100),配置成在可靠执行模式中运作,该处理器核心包括:
指令译码单元(140),配置成派送相同的整数指令流至多个整数执行单元(154a、154b),且连续派送相同的浮点指令线程至浮点单元(160);
其中,该多个整数执行单元配置成在锁定步骤中运作,使得在每个时钟周期期间,该多个整数执行单元执行相同的整数指令;
其中,该浮点单元配置成执行该相同的浮点指令流两次;
比较逻辑(158a、158b、163),耦接至该多个整数执行单元与该浮点单元,其中,在该相同的整数指令流中的指令引退之前,该比较逻辑配置成检测来自该多个整数执行单元的每一个的执行结果之间的不匹配;
其中,在该浮点单元把该浮点指令流的执行结果从该浮点单元转移出去之前,该比较逻辑进一步配置成检测在每个连续的浮点指令流的执行结果之间的不匹配;
其中,响应该比较逻辑检测到的任何不匹配,该比较逻辑配置成使得造成该不匹配的指令被重新执行。
2.如权利要求1所述的处理器核心,其中,该多个整数执行单元包括多个整数执行群集(150a、150b),每个整数执行群集包含一个或多个第一整数执行单元(154a)与一个或多个第一调度器单元(152a)。
3.如权利要求2所述的处理器核心,其中,该比较逻辑进一步配置成用来比较与该多个整数执行群集的第一执行群集的执行结果相对应的信号、以及与该多个整数执行群集的第二执行群集的执行结果相对应的信号。
4.如权利要求3所述的处理器核心,其中,该比较逻辑包括分布式比较功能,该分布式比较功能被包含在该第一执行群集、该第二执行群集、与该浮点单元内。
5.如权利要求1所述的处理器核心,其中,对应于来自该多个整数执行单元的每一个的执行结果的信号包括签字,该签字产生自结果信号,而该结果信号则是被传送在该多个整数执行单元的每一个内的结果总线上。
6.一种在处理器核心(100)中用于保护免于逻辑错误的方法,该方法包括:
使该处理器核心在可靠执行模式中运作;
派送相同的整数指令流至多个整数执行单元(305),并且连续派送相同的浮点指令流至浮点单元(355、360);
使该多个整数执行单元在锁定步骤(310)中运作,使得在每个时钟周期期间,该多个整数执行单元执行相同的整数指令;
该浮点单元执行该相同的浮点指令流两次;
在该相同的整数指令流中的指令引退之前,比较逻辑比较(315)并检测来自该多个整数执行单元的每一个的执行结果之间的不匹配(320);
在该浮点单元把该浮点指令流的执行结果从该浮点单元转移出来之前,比较逻辑比较(365)并检测每个连续的浮点指令流的执行结果之间的不匹配(370);
响应检测到的任何不匹配,重新执行导致该不匹配的指令。
7.如权利要求6所述的方法,其中,该多个整数执行单元包括多个整数执行群集(150a、150b),每个整数执行群集包含一个或多个第一整数执行单元(154a)以及一个或多个第一调度器单元(152a)。
8.如权利要求7所述的方法,还包括:该比较逻辑比较与该多个整数执行群集的第一执行群集的执行结果相对应的信号、以及与该多个整数执行群集的第二执行群集的执行结果相对应的信号。
9.如权利要求8所述的方法,其中,该比较逻辑包括分布式比较功能,该分布式比较功能被包含在该第一执行群集、该第二执行群集、与该浮点单元内。
10.如权利要求6所述的方法,还包括通过从传送在该多个整数执行单元的每一个内的结果总线上的结果信号来产生签字,以产生对应于来自该多个整数执行单元的每一个的执行结果的信号。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/972,166 | 2008-01-10 | ||
US11/972,166 US20090183035A1 (en) | 2008-01-10 | 2008-01-10 | Processor including hybrid redundancy for logic error protection |
PCT/US2009/000111 WO2009089033A1 (en) | 2008-01-10 | 2009-01-09 | Processor including hybrid redundancy for logic error protection |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101933002A true CN101933002A (zh) | 2010-12-29 |
Family
ID=40566375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801039612A Pending CN101933002A (zh) | 2008-01-10 | 2009-01-09 | 包含用于逻辑错误保护的混合冗余的处理器 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20090183035A1 (zh) |
JP (1) | JP2011509490A (zh) |
KR (1) | KR20100108591A (zh) |
CN (1) | CN101933002A (zh) |
DE (1) | DE112009000117T5 (zh) |
GB (1) | GB2468465A (zh) |
TW (1) | TW200945025A (zh) |
WO (1) | WO2009089033A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573502A (zh) * | 2013-10-23 | 2015-04-29 | 英飞凌科技股份有限公司 | 用于确保计算机程序的执行完整性的数据处理布置和方法 |
CN106095390A (zh) * | 2015-05-01 | 2016-11-09 | 想象技术有限公司 | 实时系统的容错处理器 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100555240C (zh) * | 2007-01-16 | 2009-10-28 | 国际商业机器公司 | 用于诊断应用程序的方法和系统 |
US7865770B2 (en) * | 2008-01-10 | 2011-01-04 | Advanced Micro Devices, Inc. | Processor including efficient signature generation for logic error protection |
JP5507830B2 (ja) * | 2008-11-04 | 2014-05-28 | ルネサスエレクトロニクス株式会社 | マイクロコントローラ及び自動車制御装置 |
US8489919B2 (en) * | 2008-11-26 | 2013-07-16 | Arizona Board Of Regents | Circuits and methods for processors with multiple redundancy techniques for mitigating radiation errors |
US8082425B2 (en) * | 2009-04-29 | 2011-12-20 | Advanced Micro Devices, Inc. | Reliable execution using compare and transfer instruction on an SMT machine |
US8484508B2 (en) * | 2010-01-14 | 2013-07-09 | Arm Limited | Data processing apparatus and method for providing fault tolerance when executing a sequence of data processing operations |
US8793533B2 (en) | 2010-08-03 | 2014-07-29 | Siemens Aktiengesellschaft | Method and device for performing failsafe hardware-independent floating-point arithmetic |
US9552206B2 (en) * | 2010-11-18 | 2017-01-24 | Texas Instruments Incorporated | Integrated circuit with control node circuitry and processing circuitry |
DE102012207215A1 (de) * | 2012-04-30 | 2013-10-31 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems, vorzugsweise eines Motorsteuersystems eines Kraftfahrzeuges |
JP6050083B2 (ja) * | 2012-10-18 | 2016-12-21 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US9268563B2 (en) * | 2012-11-12 | 2016-02-23 | International Business Machines Corporation | Verification of a vector execution unit design |
US20140156975A1 (en) * | 2012-11-30 | 2014-06-05 | Advanced Micro Devices, Inc. | Redundant Threading for Improved Reliability |
KR20140134376A (ko) * | 2013-05-14 | 2014-11-24 | 한국전자통신연구원 | 오류감지가 가능한 프로세서 및 이를 이용한 프로세서 코어 오류 감지 방법 |
KR101978984B1 (ko) * | 2013-05-14 | 2019-05-17 | 한국전자통신연구원 | 프로세서의 오류를 검출하는 장치 및 방법 |
US9465746B2 (en) * | 2014-01-24 | 2016-10-11 | International Business Machines Corporation | Diagnostics for transactional execution errors in reliable transactions |
US9304935B2 (en) * | 2014-01-24 | 2016-04-05 | International Business Machines Corporation | Enhancing reliability of transaction execution by using transaction digests |
US10521327B2 (en) | 2016-09-29 | 2019-12-31 | 2236008 Ontario Inc. | Non-coupled software lockstep |
US10423504B2 (en) * | 2017-08-04 | 2019-09-24 | The Boeing Company | Computer architecture for mitigating transistor faults due to radiation |
GB2567190B (en) | 2017-10-05 | 2020-02-26 | Advanced Risc Mach Ltd | Error recovery for intra-core lockstep mode |
US11106466B2 (en) | 2018-06-18 | 2021-08-31 | International Business Machines Corporation | Decoupling of conditional branches |
US10831578B2 (en) | 2018-09-28 | 2020-11-10 | Nxp Usa, Inc. | Fault detection circuit with progress register and status register |
CN113326524B (zh) * | 2021-06-18 | 2024-05-28 | 鹏城实验室 | 指令处理方法及处理器 |
WO2023022035A1 (ja) * | 2021-08-18 | 2023-02-23 | 株式会社エヌエスアイテクス | プロセッサ |
GB2619357A (en) * | 2022-05-30 | 2023-12-06 | Advanced Risc Mach Ltd | Data processors |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6357024B1 (en) * | 1998-08-12 | 2002-03-12 | Advanced Micro Devices, Inc. | Electronic system and method for implementing functional redundancy checking by comparing signatures having relatively small numbers of signals |
US20020073357A1 (en) * | 2000-12-11 | 2002-06-13 | International Business Machines Corporation | Multiprocessor with pair-wise high reliability mode, and method therefore |
US6640313B1 (en) * | 1999-12-21 | 2003-10-28 | Intel Corporation | Microprocessor with high-reliability operating mode |
US20050138478A1 (en) * | 2003-11-14 | 2005-06-23 | Safford Kevin D. | Error detection method and system for processors that employ alternating threads |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5586278A (en) * | 1994-03-01 | 1996-12-17 | Intel Corporation | Method and apparatus for state recovery following branch misprediction in an out-of-order microprocessor |
US5915110A (en) * | 1996-07-26 | 1999-06-22 | Advanced Micro Devices, Inc. | Branch misprediction recovery in a reorder buffer having a future file |
US5966544A (en) * | 1996-11-13 | 1999-10-12 | Intel Corporation | Data speculatable processor having reply architecture |
US6625756B1 (en) * | 1997-12-19 | 2003-09-23 | Intel Corporation | Replay mechanism for soft error recovery |
DE19861088A1 (de) * | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
US6981176B2 (en) * | 1999-05-10 | 2005-12-27 | Delphi Technologies, Inc. | Secured microcontroller architecture |
US6615366B1 (en) * | 1999-12-21 | 2003-09-02 | Intel Corporation | Microprocessor with dual execution core operable in high reliability mode |
US6625749B1 (en) * | 1999-12-21 | 2003-09-23 | Intel Corporation | Firmware mechanism for correcting soft errors |
JP4090669B2 (ja) * | 2000-06-01 | 2008-05-28 | 富士通株式会社 | 演算処理装置、情報処理装置及びそれらの制御方法 |
DE10349581A1 (de) * | 2003-10-24 | 2005-05-25 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit |
US20050108509A1 (en) * | 2003-11-13 | 2005-05-19 | Safford Kevin D. | Error detection method and system for processors that employs lockstepped concurrent threads |
US7613950B2 (en) * | 2004-02-27 | 2009-11-03 | Hewlett-Packard Development Company, L.P. | Detecting floating point hardware failures |
US7287185B2 (en) * | 2004-04-06 | 2007-10-23 | Hewlett-Packard Development Company, L.P. | Architectural support for selective use of high-reliability mode in a computer system |
US7904775B2 (en) * | 2004-04-21 | 2011-03-08 | Stmicroelectronics Sa | Microprocessor comprising signature means for detecting an attack by error injection |
US7461312B2 (en) * | 2004-07-22 | 2008-12-02 | Microsoft Corporation | Digital signature generation for hardware functional test |
US7793080B2 (en) * | 2007-12-31 | 2010-09-07 | Globalfoundries Inc. | Processing pipeline having parallel dispatch and method thereof |
US7865770B2 (en) * | 2008-01-10 | 2011-01-04 | Advanced Micro Devices, Inc. | Processor including efficient signature generation for logic error protection |
-
2008
- 2008-01-10 US US11/972,166 patent/US20090183035A1/en not_active Abandoned
-
2009
- 2009-01-09 GB GB1011944A patent/GB2468465A/en not_active Withdrawn
- 2009-01-09 KR KR1020107017697A patent/KR20100108591A/ko not_active Application Discontinuation
- 2009-01-09 CN CN2009801039612A patent/CN101933002A/zh active Pending
- 2009-01-09 WO PCT/US2009/000111 patent/WO2009089033A1/en active Application Filing
- 2009-01-09 JP JP2010542273A patent/JP2011509490A/ja active Pending
- 2009-01-09 DE DE112009000117T patent/DE112009000117T5/de not_active Withdrawn
- 2009-01-10 TW TW098100826A patent/TW200945025A/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6357024B1 (en) * | 1998-08-12 | 2002-03-12 | Advanced Micro Devices, Inc. | Electronic system and method for implementing functional redundancy checking by comparing signatures having relatively small numbers of signals |
US6640313B1 (en) * | 1999-12-21 | 2003-10-28 | Intel Corporation | Microprocessor with high-reliability operating mode |
US20020073357A1 (en) * | 2000-12-11 | 2002-06-13 | International Business Machines Corporation | Multiprocessor with pair-wise high reliability mode, and method therefore |
US20050138478A1 (en) * | 2003-11-14 | 2005-06-23 | Safford Kevin D. | Error detection method and system for processors that employ alternating threads |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573502A (zh) * | 2013-10-23 | 2015-04-29 | 英飞凌科技股份有限公司 | 用于确保计算机程序的执行完整性的数据处理布置和方法 |
CN106095390A (zh) * | 2015-05-01 | 2016-11-09 | 想象技术有限公司 | 实时系统的容错处理器 |
Also Published As
Publication number | Publication date |
---|---|
TW200945025A (en) | 2009-11-01 |
GB2468465A (en) | 2010-09-08 |
US20090183035A1 (en) | 2009-07-16 |
KR20100108591A (ko) | 2010-10-07 |
DE112009000117T5 (de) | 2011-02-17 |
GB201011944D0 (en) | 2010-09-01 |
JP2011509490A (ja) | 2011-03-24 |
WO2009089033A1 (en) | 2009-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101933002A (zh) | 包含用于逻辑错误保护的混合冗余的处理器 | |
US7865770B2 (en) | Processor including efficient signature generation for logic error protection | |
CN102439561B (zh) | 在同步多线程机上使用比较和传送指令的可靠执行 | |
CN101110017B (zh) | 一种组合指令的技术 | |
CN104412232B (zh) | 事务处理方法、系统、介质 | |
US7370243B1 (en) | Precise error handling in a fine grain multithreaded multicore processor | |
CN104335177B (zh) | 有选择地控制事务处理中的指令执行 | |
CN100489801C (zh) | 纠正软错误的固件机制 | |
CN104335186B (zh) | 处理器辅助设施 | |
KR102484125B1 (ko) | 벡터 처리회로를 사용한 에러 검출 | |
US20070186056A1 (en) | Hardware acceleration for a software transactional memory system | |
US6505296B2 (en) | Emulated branch effected by trampoline mechanism | |
JPH0778738B2 (ja) | ディジタル・コンピュータ・システム | |
US10303566B2 (en) | Apparatus and method for checking output data during redundant execution of instructions | |
US8904227B2 (en) | Cache self-testing technique to reduce cache test time | |
JPH04503582A (ja) | コンピュータの分散型パイプライン制御装置及び方法 | |
US20120221838A1 (en) | Software programmable hardware state machines | |
US5742755A (en) | Error-handling circuit and method for memory address alignment double fault | |
WO2002003200A2 (en) | Method and apparatus to replay transformed instructions | |
US11403108B2 (en) | Exception handling | |
US11263017B2 (en) | Exception register delay | |
US20020087842A1 (en) | Method and apparatus for performing architectural comparisons | |
Hua et al. | TRSTR: A fault-tolerant microprocessor architecture based on SMT | |
Yalcin et al. | Using tag-match comparators for detecting soft errors | |
CN104380265A (zh) | 运行时间检测控制发出指令 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20101229 |