CN1902593B - 使用推测存储器支持的冗余多线程系统中缓冲未检验存储的方法 - Google Patents
使用推测存储器支持的冗余多线程系统中缓冲未检验存储的方法 Download PDFInfo
- 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
Links
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
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高速缓冲存储器。
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)
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)
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)
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 |
-
2003
- 2003-12-30 US US10/749,618 patent/US20050193283A1/en not_active Abandoned
-
2004
- 2004-12-23 CN CN2004800396450A patent/CN1902593B/zh not_active Expired - Fee Related
- 2004-12-23 WO PCT/US2004/043685 patent/WO2005066784A1/en active Application Filing
Patent Citations (3)
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)
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 |