[发明专利]用于执行多个线程的数据处理设备中的共享资源有效
申请号: | 201580046904.0 | 申请日: | 2015-07-28 |
公开(公告)号: | CN106716348B | 公开(公告)日: | 2021-05-18 |
发明(设计)人: | 鲁纳·霍姆;大卫·汉纳·曼塞尔 | 申请(专利权)人: | ARM有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/52 |
代理公司: | 北京东方亿思知识产权代理有限责任公司 11258 | 代理人: | 林强 |
地址: | 英国*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 执行 线程 数据处理 设备 中的 共享资源 | ||
1.一种被配置为执行多个线程的数据处理设备,所述数据处理设备包括:
通用程序计数器,用于标识指令流中要针对所述多个线程的至少一子集执行的一个指令,其中所述子集中的每一线程具有相关联的、用于标识所述指令流中的一个指令的线程程序计数器;
选择器,被配置为选择线程的所述子集中的选定线程并且将所述通用程序计数器设定为与所述选定线程相关联的线程程序计数器;以及
处理器,被配置为针对线程的所述子集中包括所述选定线程的两个或更多个线程执行由所述通用程序计数器标识的指令,其中针对线程的所述子集中的所述两个或更多个线程的所述线程程序计数器的值与所述通用程序计数器的值相匹配,
其中线程的所述子集与至少一个锁定参数相关联,该至少一个锁定参数用于追踪线程的所述子集中的哪个线程具有对共享资源的独占访问;
其中所述处理器被配置为响应于针对一线程执行的第一指令而修改所述至少一个锁定参数来指示此线程已经获得对所述共享资源的独占访问,并且响应于针对此线程执行的第二指令而修改与所述线程相关联的所述至少一个锁定参数来指示所述线程不再具有对所述共享资源的独占访问;并且
其中所述选择器被配置为基于所述至少一个锁定参数选择所述选定线程,以避免死锁的出现。
2.如权利要求1所述的数据处理设备,
其中所述处理器被配置为响应于包括针对一线程执行的至少一个锁定指令的锁定序列而授权此线程对所述共享资源的独占访问。
3.如权利要求2所述的数据处理设备,
其中所述锁定序列不包括所述第一指令。
4.如任一前述权利要求所述的数据处理设备,
其中所述处理器被配置为响应于包括针对一线程执行的至少一个解锁指令的解锁序列而为此线程放弃对所述共享资源的独占访问。
5.如权利要求4所述的数据处理设备,
其中所述解锁序列不包括所述第二指令。
6.如权利要求1所述的数据处理设备,
其中所述选择器被配置为优先于由所述至少一个锁定参数指示为不具有对所述共享资源的独占访问的第二线程而选择由所述至少一个锁定参数指示为具有对所述共享资源的独占访问的第一线程来作为所述选定线程。
7.如权利要求1所述的数据处理设备,
其中所述选择器被配置为基于与线程的所述子集中的每一线程相关联的函数调用深度参数来选择所述选定线程。
8.如权利要求1所述的数据处理设备,
其中所述选择器被配置为基于与线程的所述子集中的每一线程相关联的所述线程程序计数器来选择所述选定线程。
9.如权利要求1所述的数据处理设备,其中所述子集中的每一线程具有相应的锁定参数,其中所述处理器被配置为:响应于针对一线程执行的第一指令而修改与此线程相对应的锁定参数来指示所述线程已经获得对所述共享资源的独占访问,并且响应于针对所述线程执行的第二指令而修改与所述线程相对应的锁定参数来指示所述线程不再具有对所述共享资源的独占访问。
10.如权利要求9所述的数据处理设备,其中所述处理器被配置为容许第一线程具有对第一共享资源的独占访问,同时第二线程具有对第二共享资源的独占访问。
11.如权利要求9和10中任一项所述的数据处理设备,
其中所述选择器被配置为基于线程的所述子集中的每一线程的相应锁定参数选择第一组线程;
其中所述选择器被配置为基于函数调用深度参数从所述第一组线程间选择第二组线程;
其中所述选择器被配置为基于与所述第二组线程中的线程相关联的线程程序计数器从所述第二组线程中选择所述选定线程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于ARM有限公司,未经ARM有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201580046904.0/1.html,转载请声明来源钻瓜专利网。