[发明专利]用于执行多个线程的数据处理设备中的共享资源有效
申请号: | 201580046904.0 | 申请日: | 2015-07-28 |
公开(公告)号: | CN106716348B | 公开(公告)日: | 2021-05-18 |
发明(设计)人: | 鲁纳·霍姆;大卫·汉纳·曼塞尔 | 申请(专利权)人: | ARM有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/52 |
代理公司: | 北京东方亿思知识产权代理有限责任公司 11258 | 代理人: | 林强 |
地址: | 英国*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 执行 线程 数据处理 设备 中的 共享资源 | ||
数据处理设备(100)执行线程且包括通用程序计数器(PC)(120),该通用程序计数器标识要针对线程的至少一子集执行的指令。每一线程具有线程PC(184)。线程的子集具有至少一个锁定参数(188,500‑504)用于追踪对共享资源的独占访问。响应于针对线程执行的第一指令,处理器(160)修改至少一个锁定参数(188)、(500‑504)以指示线程已经获得对共享资源的独占访问。响应于第二指令,处理器修改至少一个锁定参数(188,500‑504)以指示线程不再具有独占访问。选择器(110)基于至少一个锁定参数(188,500‑504)选择线程的子集中的一者且将通用PC(120)设定为选定线程的线程PC(184)。
技术领域
本技术涉及数字处理领域。具体地,本技术研究在其中执行多个线程的数据处理设备和方法。
背景技术
数据处理设备可执行多个线程。线程可以步调一致(lockstep)的方式进展。具体地,每一线程可维护它自身的程序计数器。系统本身可维护自身的通用程序计数器,以使得针对(程序计数器与通用程序计数器匹配的)线程执行由通用程序计数器所指示的指令。此类系统可称为例如单指令多线程(SIMT)系统。因此,在每一步骤处,针对多个线程中的至少一子集执行单个指令。一旦已针对线程的子集执行指令,可改变通用程序计数器来指示新的指令。在此类系统中可以优选地设定通用程序计数器以匹配由线程中的每个线程维护的程序计数器中的最小者。以此方式,可允许最落后的线程取得进展,并且从而追赶上具有更高的程序计数器的线程。此可引发线程进入收敛,即共享相同程序计数器值以使得可在尽可能多的线程上执行单个指令。
对此方案的修改涉及追踪每个线程的函数调用深度。具体地,每当线程做出函数调用时,此线程的函数调用深度计数器递增,且每当线程自函数调用返回时,此线程的函数调用深度计数器递减。当通用程序计数器要变化时,即它被设定为匹配首先具有最高函数调用深度计数器的线程的程序计数器,且其次(若存在多个这样的线程)匹配此集合中具有最低程序计数器值的一个或多个线程的程序计数器。换言之,仅考虑具有最高函数调用深度的全部线程间的程序计数器值。因此,这帮助防止在仅考虑程序计数器值情况下将会发生的性能问题或死锁情形。当线程的子集做出函数调用时,这可使得与那些线程关联的程序计数器显著增加,使得应在函数本身之后下一个执行的指令并不具有最低程序计数器值。通过基于函数调用深度选择用于执行的线程,即便该函数不具有最低程序计数器也可先处理该函数。
上述两种机制皆倾向于遭受死锁,其中待执行的代码包含要求独占访问的共享资源。举例而言,可在任何一个瞬时处由单个线程保持锁定,从而允许线程且仅此线程访问共享资源。
访问共享资源的线程可比不可访问共享资源的其余线程具有更高的程序计数器。因此,将能够执行其余线程,但将无法执行具有对共享资源的访问权的线程。由于另一线程具有对共享资源的访问权的同时其余线程将不能够访问共享资源,将发生死锁。然而,具有对共享资源的访问权的线程可能永远不被允许执行。因此,无线程取得任何进展且系统暂停。
发明内容
根据本技术的一个方面,提供了一种被配置为执行多个线程的数据处理设备,所述数据处理设备包括:通用程序计数器,用于标识指令流中要针对所述多个线程的至少一子集执行的一个指令,其中所述子集中的每一线程具有相关联的、用于标识所述指令流中的一个指令的线程程序计数器;选择器,被配置为选择线程的所述子集中的选定线程并且将所述通用程序计数器设定为与所述选定线程相关联的线程程序计数器;以及处理器,被配置为针对线程的所述子集中包括所述选定线程的一个或多个线程执行由所述通用程序计数器标识的指令,其中线程的所述子集与至少一个锁定参数相关联,该至少一个锁定参数用于追踪线程的所述子集中的哪个线程具有对共享资源的独占访问;其中所述处理器被配置为响应于针对一线程执行的第一指令而修改所述至少一个锁定参数来指示此线程已经获得对所述共享资源的独占访问,并且响应于针对此线程执行的第二指令而修改与所述线程相关联的所述至少一个锁定参数来指示所述线程不再具有对所述共享资源的独占访问;并且其中所述选择器被配置为基于所述至少一个锁定参数选择所述选定线程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于ARM有限公司,未经ARM有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201580046904.0/2.html,转载请声明来源钻瓜专利网。