CN1902593B - 使用推测存储器支持的冗余多线程系统中缓冲未检验存储的方法 - Google Patents

使用推测存储器支持的冗余多线程系统中缓冲未检验存储的方法 Download PDF

Info

Publication number
CN1902593B
CN1902593B CN2004800396450A CN200480039645A CN1902593B CN 1902593 B CN1902593 B CN 1902593B CN 2004800396450 A CN2004800396450 A CN 2004800396450A CN 200480039645 A CN200480039645 A CN 200480039645A CN 1902593 B CN1902593 B CN 1902593B
Authority
CN
China
Prior art keywords
period
storage
memory
redundant
thread
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
Application number
CN2004800396450A
Other languages
English (en)
Other versions
CN1902593A (zh
Inventor
S·K·赖因哈德特
S·S·穆克赫尔吉
J·S·埃默
C·T·韦弗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1902593A publication Critical patent/CN1902593A/zh
Application granted granted Critical
Publication of CN1902593B publication Critical patent/CN1902593B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1497Details of time redundant execution on a single processing unit

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开一种多线程体系结构,其在使用推测存储器支持的冗余多线程系统中为错误检测缓冲未检验存储。特别地,通过使用推测存储器支持,以便缓冲主线程存储直到它们能够与它们的从线程对应部分相比较为止,提高了SRT处理器的性能。在存储器系统中缓冲这些存储允许它们从存储缓冲区中去除。由于推测存储器系统将具有比存储缓冲区更大的容量,在将要强迫主线程停止之前可以缓冲额外的存储。这将导致在线程之间余量的增加,并且从而增加了性能。

Description

使用推测存储器支持的冗余多线程系统中缓冲未检验存储的方法
相关申请
该美国专利申请与下面的美国专利申请相关:于2003年12月30日提交的“在使用推测存储器支持的RMS中为错误检测管理外部存储器更新(MANAGING EXTERNAL MEMORY UPDATE FORFAULT DETECTION IN RMS USING SPECULATIVE MEMORYSUPPORT)”,申请号(代理人文档号P17403)。
背景技术
处理器正逐渐变得易于被瞬时错误损坏,这些瞬时错误由阿尔法粒子和宇宙射线击打而引起。这些错误可以引起称为“软”差错的操作差错,因为这些差错并不导致处理器永久的故障。由诸如中子之类的宇宙射线颗粒的击打特别危险,因为缺少对处理器的实际保护。瞬时错误目前占基于处理器设备中错误的90%以上。
由于晶体管尺寸压缩,各个晶体管变得不易被宇宙射线击打损坏。然而,对于处理器来说,降低电压水平、伴随着降低晶体管尺寸以及相应增加处理器的晶体管数量导致对宇宙射线击打的整个处理器敏感性的指数增加或者软差错的其它原因。为了配合该问题,为了多处理器系统获得选定的失误率,需要对于各个处理器来说更低的失误率。作为这些趋势的结果,通常预备用于任务危急的应用的错误检测和恢复技术正日益变得可应用于其它处理器应用。
当差错不被检测时产生无声的数据损坏(SDC),并且会导致能够持续到处理器重启为止的受损的数据数值。SDC率是发生SDC事件的比率。软差错是例如通过使用奇偶检验检测的差错,但是不能修正。
在错误能够传播到永久存储装置之前,错误检测支持(faultdetection support)通过暂停计算而能够减少处理器的SDC率。奇偶校验例如是公知的错误检测机制,其避免在存储器结构中单比特差错的无声的数据损坏。不幸的是,在高性能处理器中为锁存器或逻辑电路增加奇偶校验会不利地影响周期时间和整体性能。因此,处理器设计者已经求助于冗余执行机制来检测处理器中的错误。
当前冗余执行系统通常采用已知为“步锁(lockstepping)”的技术,其通过在两个相同的步锁(周期同步)处理器上运行相同程序的同一拷贝来检测处理器错误。在每个周期中,两个处理器均被送进相同的输入并且检验器电路比较输出。在输出不匹配时,检验器标记差错并且能够起动恢复序列。步锁通过检测在检验器处表明的每个错误而能够减少处理器SDC FIT。不幸的是,步锁浪费处理器资源,否则这些处理器资源可以用于提高性能。
发明内容
按照本发明的第一方面,提供了一种使用推测存储器支持改进同步和冗余线程SRT处理器的性能的方法,包括:将动态顺序程序分割为多个时期,其中每个时期包括两个或更多的指令;在具有主和从线程的冗余多线程系统中,对于每个时期并行地冗余执行第一实例和第二实例作为在冗余多线程系统中的主和从线程;对于每个时期执行的第一实例和第二实例,保存作为推测的存储的存储结果到推测存储器中,并暴露该推测的存储,其中暴露的存储是在时期内到特定位置的最后存储;比较所保存的暴露的存储;以及当暴露的存储匹配时,提交单组的暴露的存储给与动态顺序程序相对应的体系结构存储器状态。
优选地,推测的存储从重新排序缓冲区中退出。
优选地,在时期执行完成之前缓冲响应于对于每个时期的第一实例和第二实例的执行而执行的两个或更多的指令。
优选地,推测存储器是L1高速缓冲存储器。
按照本发明的第二方面,提供了一种使用推测存储器支持改进同步和冗余线程SRT处理器的性能的方法,包括:分割要执行的程序为多个时期,其中每个时期具有两个或更多的指令;通过分开冗余执行每个时期来冗余执行所述程序,并且对于每个时期发送作为推测的结果的存储结果到存储器中;对于彼此相对的每个时期,检查推测存储器中的推测的结果;以及当推测的结果匹配时,提交单组的推测的结果给与程序相对应的体系结构存储器状态。
优选地,推测的结果是推测的存储。
按照本发明的第三方面,提供了一种使用推测存储器支持改进同步和冗余线程SRT处理器的性能的装置,包括:在具有主和从线程的冗余多线程系统中,用于对于每个时期并行地冗余执行第一实例和第二实例作为在冗余多线程系统中的主和从线程的部件;对于每个时期执行的第一实例和第二实例,用于保存作为推测的存储的存储结果到存储器中并暴露该推测的存储的部件;用于比较所保存的暴露的存储的部件;以及当暴露的存储匹配时,用于提交单组的暴露的存储给与动态顺序程序相对应的体系结构存储器状态的部件。
附图说明
从附图中示出的优选实施例的如下描述中将会明白本发明的不同特征,其中在整个附图中相同的附图标记一般指示相同的部分。附图不必成比例,而是把重点放在说明本发明的原理上。
图1是具有冗余线程的冗余多线程体系结构的一个实施例的框图。
图2是同步和冗余线程体系结构的一个实施例的框图。
图3示出对于同步和冗余线程体系结构的一个实施例来说的最小和最大松散关系。
图4是用于管理时期间(interepoch)存储器数据依赖性的存储器系统扩展的流程图。
图5是在冗余多线程体系结构中缓冲未检验存储的推测存储器系统的一个实施例的框图。
图6是在冗余多线程体系结构中缓冲未检验存储的推测存储器系统的流程图。
具体实施方式
在下面的说明中,出于说明而非限制的目的,阐述了具体的细节,例如特定的结构、体系、接口、技术等等,以便提供本发明各个方面的彻底理解。然而,很显然,本领域技术人员可以从本发明中获益,将会明白在脱离这些具体细节的其它实例中可以实践本发明的各个方面。在某些实例中,省略了公知装置、线路和方法的说明,以免不必要的细节妨碍本发明的说明。
复制范围
图1是冗余多线程体系结构的一个实施例的框图。在冗余多线程体系结构中,通过执行作为单独线程的两个程序副本能够检测错误。每个线程均提供有相同的输入,并且对输出进行比较以便确定差错是否已经产生。可以参考此处称为“复制范围”的概念来描述冗余多线程。复制范围是逻辑或物理冗余操作的边界。
在复制范围130内的组件(例如,执行主线程110的处理器和执行从线程120的处理器)经受冗余执行。相反,在复制范围130外部的组件(例如,存储器150、RAID 160)不经受冗余执行。通过其它技术、例如用于存储器150的纠错码和用于RAID 160的奇偶校验来提供错误保护。其它装置可以处在复制范围130外部和/或其它技术可以被用来提供用于复制范围130外部的装置的错误保护。
进入复制范围130的数据通过输入复制代理170进入,所述输入复制代理170复制数据并且发送数据副本到主线程110和从线程120。类似地,退出复制范围130的数据通过输出比较代理180退出,所述输出比较代理180比较数据并且确定是否产生差错。改变复制范围130的边界导致性能与硬件数量的折衷。例如,复制存储器150通过避免存储指令的输出比较将会允许更快访问存储器,但是通过使系统中存储器数量翻倍将会增加系统成本。
一般,存在两个复制范围,其可以被称为“SoR-寄存器”和“SoR-高速缓冲存储器”。在SoR-寄存器体系结构中,寄存器文件和高速缓冲存储器在复制范围的外部。来自SoR-寄存器复制范围的输出包括比较的寄存器写入和存储地址及数据来检测错误。在SoR-高速缓冲存储器体系结构中,指令高速缓冲存储区和数据高速缓冲存储器在复制范围外部,比较所有的存储地址和数据而不是寄存器写入以检查错误。
SoR-高速缓冲存储器体系结构具有为了仅仅比较存储(和可能地有限数量的其它所选择的指令)来检查错误的优点,这减小检验器带宽并且通过不延迟存储操作而提高性能。相反,SoR-寄存器体系结构需要比较多数指令来检查错误,这需要更大的检验器带宽并且会延迟存储操作直到检验器确定在存储操作之前所有指令无错误为止。SoR-高速缓冲存储器能够提供与SoR-寄存器相同等级的瞬时错误覆盖,因为在复制范围的边界处不显示为差错的错误不会破坏系统状态,并且因此被有效屏蔽。
为了提供错误覆盖,每个指令结果应当进行比较以提供对应于每个指令的检验点。因此,在这里更详细地描述SoR-寄存器体系结构。
同步和冗余线程(SRT)体系结构的概述
图2是同步和冗余线程体系结构的一个实施例的框图。图2的体系结构是SoR-寄存器体系结构,在所述体系结构中比较来自每个指令的输出或结果以便检测差错。
主线程210和从线程220代表利用时间差来执行的相应线程,使得在从线程220执行相同指令之前主线程210执行该指令。在一个实施例中,主线程210和从线程220是相同的。可替换地,主线程210和/或从线程220能够包括在对应线程中所未包含的控制或其它信息。能够通过相同的处理器执行主线程210和从线程220,或者能够通过不同的处理器来执行主线程210和从线程220。
指令地址经由指令复制队列230从主线程210被传递到从线程220。将指令传递通过指令复制队列230允许对在主线程210中指令的执行和在从线程220中相同指令的执行之间的时间差或“松散(slack)”进行控制。
输入数据通过源寄存器数值队列240从主线程210被传递到从线程220。在一个实施例中,源寄存器数值队列240为主线程210和从线程220两者复制输入数据。输出数据通过目标寄存器数值队列250从从线程220被传递到主线程210。在一个实施例中,目标寄存器数值队列240比较来自主线程210和从线程220两者的输出数据。
在一个实施例中,主线程210在从线程220之前运行数百个指令。能够使用任何数量的“松散”的指令。在一个实施例中,松散由减慢和/或延迟从线程220的指令获取引起。在一个替换实施例中,如果指令复制不由指令复制队列230完成,则所述松散能够由指令复制队列230或者指令复制机制引起。
用于在同步和冗余线程体系结构中引起松散的技术的进一步细节能够在2002年5月的Proc.29th Int’l Symp.on Computer Architecture中Shubhendu S.Mukherjee,Michael Kontz和Steven K.Reinhardt的“冗余多线程交替物的详细设计和评价(Detailed Design and Evaluation of RedundantMultithreading Alternatives)”以及在2000年6月的Proc.27th Int’l Symp.onComputer Architecture中Steven K.Reinhardt和Shubhendu S.Mukherjee的“经由同步多线程的瞬时错误检测(Transient Fault Detection viaSimultaneous Multithreading)”中找到。
图3示出对于同步和冗余线程体系结构的一个实施例来说最小和最大松散关系。图3的实施例是上述的SoR-寄存器体系结构。最小松散是高速缓冲存储器缺失的总等待时间、从执行到退出的等待时间、和将装入地址和数值发送到从线程带来的等待时间。如果从线程遭受高速缓冲存储器缺失(cache miss)并且来自从线程的相应装入在最小松散之前到达执行点,则停止从线程。
类似地,最大松散是在主线程中从退出到错误检测的等待时间。一般,具有一定量的缓冲以便允许来自主线程的退出的指令在退出之后保持在处理器中。这限定了在主和从线程之间的最大松散。如果缓冲区装满,停止主线程以便允许从线程消耗来自缓冲区的额外指令。从而,如果在两个线程之间的松散大于最大松散,则整体性能降低。
推测存储器支持(Speculative memory support)
在推测多线程系统中,顺序的程序被分割为逻辑上的顺序段,称为时期(epochs)或任务(tasks)。多个时期或者在单独的处理器核上或者作为在SMT处理器内的单独线程被并行地执行。在时间上任意给出的点,仅仅最旧的时期相应于初始顺序程序的执行。所有其它时期的执行基于推测过去的潜在控制和数据冲突(hazard)。在时期间误推测的情况下,该误推测的时期被挤压(squash)。如果时期完成执行并且变为最旧的时期,将其结果提交给计算的顺序体系结构状态。
在推测多线程系统的一个实施例中,编译器可以基于直观推断将代码静态地分为多个时期。例如,可以经常使用循环体来形成时期。在该情况下,循环的多个迭代将会在运行时间产生被并行执行的多个时期。
该系统必须使时期间的数据冲突在该平行执行上维持顺序程序的语义。在一个实施例中,编译器负责时期形成,因此其能够显式地管理基于寄存器的时期间通信(可能通过硬件支持)。基于存储器的数据冲突(一般)不是静态可预测的,并且从而必须在运行时处理。存储器系统扩展是任何推测多线程系统的关键组件,其中所述存储器系统扩展用于管理时期间存储器数据的依赖性,当可能时满足它们,否则就检测违反并且挤压多个时期。
图4说明用于管理时期间存储器数据依赖性的存储器系统扩展。检测违反和挤压时期是任何推测多线程系统的重要特征。在一个实施例中,装入必须将存储数值返回到在程序的逻辑顺序执行中直接先于其的相同地址,步骤400。例如,系统必须以优先顺序返回如下。首先,如果有的话,数值来自在相同时期内最近的在先存储。其次,如果有的话,数值来自在最接近的逻辑上在前的时期中最迟的存储。最后,数值来自提交的顺序存储器状态。而且,装入必须不受已经执行的任何逻辑上接连的存储影响。这假定处理器保证存储器参考在时期内顺序地执行,因此任何逻辑上接连的存储将属于逻辑上接连的时期。
下面,存储必须检测是否已经执行任何逻辑上接连的装入,410。如果已经如此,则它们违反了数据依赖。包含这种装入的任何时期以及潜在地任何后面的时期那么必须被挤压。提交操作获得在一个时期过程中执行的一组被暴露的存储,并且将它们自动应用到所提交的顺序存储器状态,420。被暴露的存储是在时期内到特定位置的最后存储。未被暴露的存储、也即其数值在相同时期内被改写的存储在它们执行的时期的外部不可观察。最后,异常中止操作获得在一个时期过程中执行的一组存储,并且将它们丢弃,430。
图5是在冗余多线程体系结构中缓冲未检验存储的推测存储器支持的一个实施例的框图。主线程510和从线程520并行地执行时期。指令复制队列530将所述时期从主线程510发送到从线程520。主线程510和从线程520两者均具有复制范围500。
特定时期的单个执行已知为时期“实例”。时期的两个实例由RMT系统的主线程510和从线程520并行地执行。一旦执行,存储被发送到存储器系统540。使用上述的推测存储器支持,这些存储被保留在存储器系统中作为推测存储。一旦该时期的两个实例均已经完成,比较被暴露的存储550。如果所比较的存储匹配,将单组被暴露的存储提交给体系结构存储器状态560。
图6示出可以应用到在冗余多线程体系结构中未检验存储的缓冲的推测存储器支持。在一个实施例中,动态顺序程序执行被分割为多个时期,如在推测多线程中一样,600。理想地,为了维持向后兼容性,将会不需要编译器支持。然后,每个时期被执行两次,610。一个时期的两个实例由RMT系统的主线程510和从线程520并行地执行。不像前面提出的RMT实现,存储不保留在存储缓冲区中来等待检验。相反,将从重新排序缓冲区中退出的存储(即,无序执行意义上的提交)从存储缓冲区去除并且发送到存储器系统,但是保留作为推测存储(使用上述的推测存储器支持),620。最后,在一个时期的两个实例均已经完成之后,比较被暴露的存储,630。如果结果匹配,那么将单组被暴露的存储提交给体系结构存储器状态。
因为未检验存储被缓冲在存储器系统中而没有缓冲在存储缓冲区中,可用于缓冲这些存储的总容量被极大增加。(不像存储缓冲区,其通常受周期时间约束而被限定为数十个条目(entry),在推测存储器系统中可用的缓冲经常对应于L1高速缓冲存储器的容量,即,几千字节。)作为这种更大容量的结果,在主线程和从线程之间的可实现松散的最大量增加,使得能够得到更高的性能。也减小了在主线程和从线程之间死锁的可能。
在下面的描述中,出于说明而不是限制的目的,阐述了诸如特定结构、体系结构、接口、技术等等之类的具体细节,以便提供本发明各个方面的彻底理解。然而,得益于当前公开的本领域技术人员将会明白在脱离这些具体细节的其它实例中可以实践本发明的各个方面。在某些实例中,省略了公知装置、线路和方法的说明,以免不必要的细节妨碍本发明的说明。

Claims (6)

1.一种使用推测存储器支持改进同步和冗余线程SRT处理器的性能的方法,包括:
将动态顺序程序分割为多个时期,其中每个时期包括两个或更多的指令;
在具有主和从线程的冗余多线程系统中,对于每个时期并行地冗余执行第一实例和第二实例作为在冗余多线程系统中的主和从线程;
对于每个时期执行的第一实例和第二实例,保存作为推测的存储的存储结果到推测存储器中,并暴露该推测的存储,其中暴露的存储是在时期内到特定位置的最后存储;
比较所保存的暴露的存储;以及
当暴露的存储匹配时,提交单组的暴露的存储给与动态顺序程序相对应的体系结构存储器状态。
2.根据权利要求1所述的方法,其中推测的存储从重新排序缓冲区中退出。
3.根据权利要求2所述的方法,其中在时期执行完成之前缓冲响应于对于每个时期的第一实例和第二实例的执行而执行的两个或更多的指令。
4.根据权利要求1所述的方法,其中推测存储器是L1高速缓冲存储器。
5.一种使用推测存储器支持改进同步和冗余线程SRT处理器的性能的方法,包括:
分割要执行的程序为多个时期,其中每个时期具有两个或更多的指令;
通过分开冗余执行每个时期来冗余执行所述程序,并且对于每个时期发送作为推测的结果的存储结果到推测存储器中;
对于彼此相对的每个时期,检查推测存储器中的推测的结果;以及
当推测的结果匹配时,提交单组的推测的结果给与程序相对应的体系结构存储器状态。
6.根据权利要求5所述的方法,其中推测存储器是L1高速缓冲存储器。
CN2004800396450A 2003-12-30 2004-12-23 使用推测存储器支持的冗余多线程系统中缓冲未检验存储的方法 Expired - Fee Related CN1902593B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/749,618 US20050193283A1 (en) 2003-12-30 2003-12-30 Buffering unchecked stores for fault detection in redundant multithreading systems using speculative memory support
US10/749,618 2003-12-30
PCT/US2004/043685 WO2005066784A1 (en) 2003-12-30 2004-12-23 Buffering unchecked stores for fault detection in redundant multithreading systems using speculative memory support

Publications (2)

Publication Number Publication Date
CN1902593A CN1902593A (zh) 2007-01-24
CN1902593B true CN1902593B (zh) 2012-12-05

Family

ID=34749305

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800396450A Expired - Fee Related CN1902593B (zh) 2003-12-30 2004-12-23 使用推测存储器支持的冗余多线程系统中缓冲未检验存储的方法

Country Status (3)

Country Link
US (1) US20050193283A1 (zh)
CN (1) CN1902593B (zh)
WO (1) WO2005066784A1 (zh)

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7555634B1 (en) 2004-04-22 2009-06-30 Sun Microsystems, Inc. Multiple data hazards detection and resolution unit
US7418582B1 (en) 2004-05-13 2008-08-26 Sun Microsystems, Inc. Versatile register file design for a multi-threaded processor utilizing different modes and register windows
US7366829B1 (en) 2004-06-30 2008-04-29 Sun Microsystems, Inc. TLB tag parity checking without CAM read
US7290116B1 (en) 2004-06-30 2007-10-30 Sun Microsystems, Inc. Level 2 cache index hashing to avoid hot spots
US7509484B1 (en) 2004-06-30 2009-03-24 Sun Microsystems, Inc. Handling cache misses by selectively flushing the pipeline
US7571284B1 (en) 2004-06-30 2009-08-04 Sun Microsystems, Inc. Out-of-order memory transactions in a fine-grain multithreaded/multi-core processor
US7581152B2 (en) * 2004-12-22 2009-08-25 Intel Corporation Fault free store data path for software implementation of redundant multithreading environments
US7818744B2 (en) * 2005-12-30 2010-10-19 Intel Corporation Apparatus and method for redundant software thread computation
US7882336B2 (en) * 2007-02-01 2011-02-01 International Business Machines Corporation Employing a buffer to facilitate instruction execution
CN101551764B (zh) * 2009-02-27 2010-11-10 北京时代民芯科技有限公司 基于同步冗余线程与编码技术的抗单粒子效应系统及方法
US8255742B2 (en) * 2009-11-18 2012-08-28 Microsoft Corporation Dynamically replicated memory
US8543863B2 (en) * 2009-11-18 2013-09-24 Microsoft Corporation Efficiency of hardware memory access using dynamically replicated memory
US8516356B2 (en) 2010-07-20 2013-08-20 Infineon Technologies Ag Real-time error detection by inverse processing
JP5850774B2 (ja) * 2012-03-22 2016-02-03 ルネサスエレクトロニクス株式会社 半導体集積回路装置及びそれを用いたシステム
US9032244B2 (en) 2012-11-16 2015-05-12 Microsoft Technology Licensing, Llc Memory segment remapping to address fragmentation
US9251014B2 (en) 2013-08-08 2016-02-02 International Business Machines Corporation Redundant transactions for detection of timing sensitive errors
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9413626B2 (en) 2014-12-05 2016-08-09 Amazon Technologies, Inc. Automatic management of resource sizing
US9727725B2 (en) 2015-02-04 2017-08-08 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
GB2537942B (en) * 2015-05-01 2017-06-14 Imagination Tech Ltd Fault tolerant processor for real-time systems
CN105243708B (zh) * 2015-09-22 2017-08-29 中国船舶重工集团公司第七一八研究所 一种智能锁内分层程序及冗余控制架构
US9928108B1 (en) 2015-09-29 2018-03-27 Amazon Technologies, Inc. Metaevent handling for on-demand code execution environments
US10042660B2 (en) 2015-09-30 2018-08-07 Amazon Technologies, Inc. Management of periodic requests for compute capacity
US9830449B1 (en) 2015-12-16 2017-11-28 Amazon Technologies, Inc. Execution locations for request-driven code
US9811363B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9830175B1 (en) 2015-12-16 2017-11-28 Amazon Technologies, Inc. Predictive management of on-demand code execution
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US10002026B1 (en) 2015-12-21 2018-06-19 Amazon Technologies, Inc. Acquisition and maintenance of dedicated, reserved, and variable compute capacity
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10013240B2 (en) 2016-06-21 2018-07-03 Advanced Micro Devices, Inc. Fingerprinting of redundant threads using compiler-inserted transformation code
US9952896B2 (en) 2016-06-28 2018-04-24 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10282229B2 (en) 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10277708B2 (en) 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10203990B2 (en) 2016-06-30 2019-02-12 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10572375B1 (en) 2018-02-05 2020-02-25 Amazon Technologies, Inc. Detecting parameter validity in code including cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1182557A2 (en) * 2000-08-18 2002-02-27 Hewlett-Packard Company, A Delaware Corporation Performance of a service on a computing platform
EP1267265A2 (fr) * 1998-10-12 2002-12-18 Centre National D'etudes Spatiales Dispositif de surveillance des acces memoire
CN1434941A (zh) * 1999-12-21 2003-08-06 英特尔公司 纠正软错误的固件机制

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5415835A (en) * 1992-09-16 1995-05-16 University Of New Mexico Method for fine-line interferometric lithography
JP4065468B2 (ja) * 1998-06-30 2008-03-26 キヤノン株式会社 露光装置及びこれを用いたデバイスの製造方法
US20020023202A1 (en) * 2000-04-19 2002-02-21 Mukherjee Shubhendu S. Load value queue input replication in a simultaneous and redundantly threaded processor
US7730213B2 (en) * 2000-12-18 2010-06-01 Oracle America, Inc. Object-based storage device with improved reliability and fast crash recovery
US7249358B2 (en) * 2003-01-07 2007-07-24 International Business Machines Corporation Method and apparatus for dynamically allocating processors

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1267265A2 (fr) * 1998-10-12 2002-12-18 Centre National D'etudes Spatiales Dispositif de surveillance des acces memoire
CN1434941A (zh) * 1999-12-21 2003-08-06 英特尔公司 纠正软错误的固件机制
EP1182557A2 (en) * 2000-08-18 2002-02-27 Hewlett-Packard Company, A Delaware Corporation Performance of a service on a computing platform

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Eric Rotenberg.AR-SMT: A Microarchitectural Approach toFaultToleranceinMicroprocessors.Twenty-Ninth Annual International Symposium on Fault-Tolerant Computing.1999,第85页左栏第1行至第87行右栏第20行、图2-4. *
Steven K. Reinhardt, Shubhendu S, Mukherjee.Transient fault detection via simultaneous multithreading.ACM SIGARCH Computer Architecture News28 2.2000,28(2),全文.
Steven K. Reinhardt, Shubhendu S, Mukherjee.Transient fault detection via simultaneous multithreading.ACM SIGARCH Computer Architecture News28 2.2000,28(2),全文. *

Also Published As

Publication number Publication date
WO2005066784A1 (en) 2005-07-21
US20050193283A1 (en) 2005-09-01
CN1902593A (zh) 2007-01-24

Similar Documents

Publication Publication Date Title
CN1902593B (zh) 使用推测存储器支持的冗余多线程系统中缓冲未检验存储的方法
US10671468B2 (en) Enhanced dump data collection from hardware fail modes
US7373548B2 (en) Hardware recovery in a multi-threaded architecture
US7308607B2 (en) Periodic checkpointing in a redundantly multi-threaded architecture
US7243262B2 (en) Incremental checkpointing in a multi-threaded architecture
KR101546033B1 (ko) Smt 기계에서 비교 및 전달 명령어를 사용한 안정적 실행
US7921331B2 (en) Write filter cache method and apparatus for protecting the microprocessor core from soft errors
US8086827B2 (en) Mechanism for irrevocable transactions
CN100480996C (zh) 在冗余多线程系统中管理外部存储器更新的方法和设备
CN101286123A (zh) 高效且一致的软件事务存储器
US10635555B2 (en) Verifying a graph-based coherency verification tool
CN101470629A (zh) 用于在事务性存储器系统中实现强原子性的机制
US9146746B2 (en) Systems and methods for providing deterministic execution
WO2006039595A2 (en) Executing checker instructions in redundant multithreading environments
US11113164B2 (en) Handling errors in buffers
CN1510567A (zh) 用于使用记录板机制处理加载锁定指令的方法和装置
US7216252B1 (en) Method and apparatus for machine check abort handling in a multiprocessing system
US8745440B1 (en) Computer-implemented system and method for providing software fault tolerance
EP4336364A1 (en) Pseudo lock-step execution across cpu cores

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: 20121205

Termination date: 20131223