本实用新型专利技术涉及多线程处理器和容错多线程处理器。描述了使用在两个或多于两个不同的线程中运行的指令的时间和/或空间分离的容错多线程处理器。指令由两个或多于两个线程中的每个取出、解码并执行以针对两个或多于两个线程中的每个产生一个结果。然后使用比较硬件逻辑来比较这些结果,且如果在所得到的结果之间有不匹配,则错误或事件产生。该比较被在逐个指令基础上执行,使得错误被快速地识别(且因此可被解决)。
【技术实现步骤摘要】
本申请涉及但不限于多线程处理器。
技术介绍
容错系统是被设计成甚至在存在一些错误的情况下也继续工作的系统。这样的系统因此可涉及错误检查机制的冗余和使用。在实时容错系统中,在计算中的错误可被快速识别并解决很重要。实时容错系统可以例如被用在这样的系统中:其中安全是关键的(例如汽车、飞机、航天器或核电站的控制系统)、其中维护是频繁的(例如对于太空应用例如在卫星上)或其中错误可能有严重的后果(例如在金融系统中)。在所有这些应用中,错误需要被尽可能快地(例如实时地)识别和解决,因为以后矫正它们可能是不可行的或不可能的。
技术实现思路
下面所述的实施方式不限于解决已知的容错处理器的任何或所有缺点的实现。本概述被提供来以简化的形式介绍一系列概念,其在下面在详细描述中被进一步描述。这个概述并不打算识别所要求保护的主题的关键特征或本质特征,也不打算用作在确定所要求保护的主题的范围时的帮助。描述了使用在两个或多于两个不同的线程中运行的指令的时间和/或空间分离的容错多线程处理器。指令由两个或多于两个线程中的每个取出、解码并执行以为两个或多于两个线程中的每个产生结果。然后使用比较硬件逻辑来比较这些结果,并且如果在所得到的结果之间有不匹配,则错误或事件产生。该比较在逐个指令基础上被执行,使得错误被快速识别(且因此可被解决)。第一方面提供多线程处理器,其包括:调度器,其被在硬件逻辑中实现并被在第一操作模式中布置为引起使程序中的指令由多个线程中的每个取出;执行级,其被在硬件逻辑中实现并被在第一操作模式中被布置为执行指令的每个被取出的实例以产生指令的多个结果,多个线程中的每个线程一个结果;以及比较硬件逻辑,其被在第一操作模式中被布置为比较指令的多个结果以确定是否所有结果都匹配。第二方面提供操作多线程处理器的方法,其包括:由多个线程中的每个取出程序中的指令;执行指令的每个被取出的实例以产生指令的多个结果,多个线程中的每个线程一个结果;以及比较多个结果。另外的方面提供:在其上编码有用于产生如本文所述的处理器的计算机可读程序代码的计算机可读存储介质;在其上存储有计算机可读指令的非暂时性计算机可读存储介质,所述指令当在计算机系统处被执行用于根据电路元件的定义和定义用于组合那些电路元件的规则的数据产生数字电路的表示时引起计算机系统产生如本文所述的处理器;以及在其上编码有用于产生被配置成执行本文所述的方法的处理器的计算机可读程序代码的计算机可读存储介质。本申请的实施方式还涉及以下方面:1)一种多线程处理器,包括:调度器,其包括引起程序中的指令由多个线程中的每个取出的硬件逻辑;执行级,其包括输出端和用于执行所述指令的每个被取出的实例的硬件逻辑,所述输出端用于输出所述指令的多个结果,所述多个线程中的每个线程一个结果;以及比较硬件逻辑,其包括用于存储所述指令的所述结果的一个或多个缓冲器和连接到所述一个或多个缓冲器并被配置成对所述指令的存储的结果进行比较的比较器硬件逻辑。2)根据项目1)所述的多线程处理器,其中所述比较硬件逻辑还包括事件/错误触发逻辑,所述事件/错误触发逻辑连接到所述比较器硬件逻辑并被布置成响应于所述比较器硬件逻辑识别出所述指令的所述结果不都是相同的而触发错误/事件。3)根据项目2)所述的多线程处理器,还包括连接到所述事件/错误触发逻辑的性能计数器。4)根据项目1)所述的多线程处理器,还包括:第一指令缓冲器,其用于存储指令的第一被取出的实例;以及第二指令缓冲器,其用于存储所述指令的第二被取出的实例。5)一种容错多线程处理器,包括:取出级,其包括调度器;第一指令缓冲器,其连接到所述取出级的输出端以用于存储指令的第一被取出的实例;以及第二指令缓冲器,其连接到所述取出级的输出端以用于存储所述指令的第二被取出的实例;执行级,其包括输出端和用于执行所述指令的每个被取出的实例的硬件逻辑,所述执行级)的所述输出端用于输出所述指令的多个结果,所述多个线程中的每个线程一个结果;以及比较硬件逻辑,其包括用于存储所述指令的所述多个结果的一个或多个缓冲器和连接到所述一个或多个缓冲器并被配置成对所述指令的所述结果进行比较的比较器硬件逻辑。如将对技术人员明显的是,优选特征可在适当时进行组合,并可与本技术的任何方面进行组合。附图说明将参考以下的附图通过示例的方式来描述本技术的实施方式,在附图中:图1示出示例容错多线程有序处理器的示意图;图2是示出例如在图1中示出的处理器的多线程处理器的示例容错操作模式的流程图;以及图3示出来自图1中所示的处理器的比较硬件逻辑的示例实现的示意图。公共参考数字在全部附图中用于指示类似的特征。具体实施方式下面仅通过示例的方式来描述本技术的实施方式。这些示例表示申请人当前已知的实施本技术的最佳方式,尽管它们不是以其这可被实现的仅有的方式。本描述阐述示例的功能和用于构造并操作示例的步骤的顺序。然而,相同或等效的功能和顺序可由不同的示例实现。容错处理器必须甚至在存在多个错误的情况下也继续操作。在现有容错处理器中使用的技术涉及使用多个处理器核心来执行相同的代码,其中结果在每个操作结束时被比较。如果结果不相同,则该比较用信号通知错误。可选地,在有多于两个核心的场合,投票系统可用于决定哪个结果是正确的(即:其中由占多数的核心得到的结果被视为正确的结果)。在本文描述了使用在单个处理器核心内的多线程(且特别是细粒度多线程)并使用在多线程处理器管线中的两个不同线程中运行的指令的时间和/或空间分离的容错处理器的可选设计。这导致在处理器的尺寸(或面积)和处理器的功率消耗两者中的降低(与多个核心的使用相比较)。如下所述的容错处理器因此可特别适合于在空间和/或功率被约束的情况下的应用(例如电池供电的便携式计算设备、可穿戴的设备等);然而,它们还可被用在其它应用中。图1示出实现细粒度多线程并因而在每个循环上改变线程的示例容错多线程有序处理器100的示意图。在这个示例中,多线程处理器100是两线程处理器(具有被表示为线程0和线程1的线程);然而,方法还可适用于具有不同数量的线程(例如四个或多于四个线程)的多线程处理器。多线程处理器100包括多级管线,其包括取出级102、解码级106、发布级111、执行级109、存储器存取级112(尽管这可在一些处理器中被省略)和写回级114。执行级109、存储器存取级112(在被提供的情况下)和写回级114被在线程之间共享,而在前端(包括取出级102、解码级106和发布级111)中,一些元件(例如缓冲器)对每个线程是分离的(即重复的)。在各种示例中,解码级106也可以是重复的,对每个线程有单独的解码级106。取出级102被配置成从程序(以程序顺序)取出如由程序计数器(PC)指示的指令。程序可被存储在存储器104(其可包括高速缓冲存储器以减小访问存储器的时延)中。在取出级102内的调度器105(其可被称为“管线调度器”)控制指令被取出的顺序和由哪个线程取出。解码级106被布置成解译已经由取出级102取出的指令,且这一般涉及从一个或多个寄存器文件(FR)读取,且在图1中所示的示例中,为每个线程提供单独的寄存器文件107、108。发布级111选择将被在每个循环执行的线程并因而控制指令沿着管线被传本文档来自技高网...
【技术保护点】
一种多线程处理器(100),包括:调度器(105),其包括引起程序中的指令由多个线程中的每个取出的硬件逻辑;执行级(109),其包括输出端和用于执行所述指令的每个被取出的实例的硬件逻辑,所述输出端用于输出所述指令的多个结果,所述多个线程中的每个线程一个结果;以及比较硬件逻辑(115),其包括用于存储所述指令的所述多个结果的一个或多个缓冲器(302)和连接到所述一个或多个缓冲器并被配置成对所述指令的存储的结果进行比较的比较器硬件逻辑(304)。
【技术特征摘要】
2015.05.01 GB 1507585.61.一种多线程处理器(100),包括:调度器(105),其包括引起程序中的指令由多个线程中的每个取出的硬件逻辑;执行级(109),其包括输出端和用于执行所述指令的每个被取出的实例的硬件逻辑,所述输出端用于输出所述指令的多个结果,所述多个线程中的每个线程一个结果;以及比较硬件逻辑(115),其包括用于存储所述指令的所述多个结果的一个或多个缓冲器(302)和连接到所述一个或多个缓冲器并被配置成对所述指令的存储的结果进行比较的比较器硬件逻辑(304)。2.根据权利要求1所述的多线程处理器,其中所述比较硬件逻辑还包括事件/错误触发逻辑(306),所述事件/错误触发逻辑(306)连接到所述比较器硬件逻辑并被布置成响应于所述比较器硬件逻辑识别出所述指令的所述多个结果不都是相同的而触发错误/事件。3.根据权利要求2所述的多线程处理器,还包括连...
【专利技术属性】
技术研发人员:朱利安·贝利,
申请(专利权)人:想象技术有限公司,
类型:新型
国别省市:英国;GB
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。