[发明专利]使用编译器插入的转换代码对冗余线程进行指纹识别的方法和设备有效
申请号: | 201780036459.9 | 申请日: | 2017-06-21 |
公开(公告)号: | CN109313551B | 公开(公告)日: | 2021-02-23 |
发明(设计)人: | 丹尼尔·I·洛厄尔 | 申请(专利权)人: | 超威半导体公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 上海胜康律师事务所 31263 | 代理人: | 樊英如;张华 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 使用 编译器 插入 转换 代码 冗余 线程 进行 指纹识别 方法 设备 | ||
第一处理元件被配置为执行第一线程,并且一个或多个第二处理元件被配置为执行对所述第一线程来说是冗余的一个或多个第二线程。所述第一线程和所述一个或多个第二线程将根据自从对结果的先前编码值的先前比较以来,用于所述比较的事件触发器是否已经发生了可配置的次数,选择性地绕过对由所述第一线程和所述一个或多个第二线程执行的运算的结果的一个或多个比较。例如,基于当前运算和一个或多个先前运算的结果的散列(或编码)值来执行所述比较。
背景技术
相关技术的描述
诸如中央处理单元(CPU)、图形处理单元(GPU)和加速处理单元(APU)之类的处理单元实现多个计算单元(例如,处理器核)以同时或并行地处理多个指令。例如,GPU可以使用多个计算单元来实现,每个计算单元都包括用于同时或并行地执行指令流(通常称为“工作项”或“线程”)的多个处理元件。根据单指令多数据(SIMD)架构运算的计算单元使用不同的数据集来执行相同的指令。可以在诸如GPU之类的处理单元上同时或并行执行的线程数可以从数十个线程到数千个线程,工程师们渴望将这种能力用于超出通常在GPU上实现的二维(2-D)或三维(3-D)图形应用程序的应用程序。但是,通用应用程序需要比传统图形应用程序更高级别的容错能力,以避免应用程序错误或系统崩溃。
附图说明
通过参考附图,可以更好地理解本公开,并且其众多特征和优点对于本领域技术人员而言将显而易见。在不同附图中使用相同的附图标记表示相似或相同的项目。
图1是根据一些实施方案的加速处理装置的框图。
图2是根据一些实施方案的可以在图1所示的加速处理装置上执行的线程分组的层次结构的框图。
图3是根据一些实施方案的加速处理装置的框图,该加速处理装置基于自从对指纹的先前比较以来发生的事件触发器的数量来选择性地绕过对冗余线程的指纹的比较。
图4是示出根据一些实施方案的在程序代码编译期间由编译器插入的转换代码对程序代码的修改的图。
图5是根据一些实施方案的用于选择性地绕过或执行在冗余线程之间的共享和比较运算(share-and-compare operation)以检测错误的方法的流程图。
图6是根据一些实施方案的用于执行退出检查以确定在退出程序代码之前是否在冗余线程之间执行共享和比较运算的方法的流程图。
具体实施方式
冗余多线程(RMT)可用于通过在不同处理元件上执行两个或更多个冗余线程,然后比较冗余线程的结果来检测错误,从而提高处理单元的可靠性。通过检测由对相同数据执行相同指令的两个冗余线程产生的结果之间的差异,可指出至少一个冗余线程中的错误。由对相同数据执行相同指令的三个或更多个冗余线程产生的结果之间的相似性和差异可以用于检测错误并且可能纠正错误,例如,使用应用于三个或更多个结果的投票方案。在冗余线程之间传递数据以支持RMT错误检测或纠正的机制会产生显著的开销。例如,自旋锁机制可用于同步冗余线程之间的数据和消息传递。RMT系统的性能可能会因开销而显著降低,至少部分是因为典型的RMT系统会在每个存储指令(或其他事件触发器)之前比较冗余线程产生的结果,以避免存储可能包含错误的数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于超威半导体公司,未经超威半导体公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780036459.9/2.html,转载请声明来源钻瓜专利网。