[发明专利]用于执行多线程系统的子线程的方法和多线程系统有效
申请号: | 201911227804.4 | 申请日: | 2019-12-04 |
公开(公告)号: | CN111078289B | 公开(公告)日: | 2021-11-23 |
发明(设计)人: | 文兴植;付鹏 | 申请(专利权)人: | 北京奕斯伟智慧技术有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/48;G06F9/50 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 杨华 |
地址: | 100744 北京市通州区北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 执行 多线程 系统 线程 方法 | ||
1.一种用于执行多线程系统的子线程的方法,其特征在于,所述多线程系统包括主线程控制单元MTCU、多个线程控制单元TCU、以及存储低线程父寄存器、高线程父寄存器和至少一个子ID寄存器的存储器,所述方法包括:
通过所述MTCU初始化第一父并行线程,所述第一父并行线程具有在所述低线程父寄存器与所述高线程父寄存器之间且包括所述低线程父寄存器和所述高线程父寄存器的第一父ID值;
通过所述MTCU初始化第二父并行线程,所述第二父并行线程具有在所述低线程父寄存器与所述高线程父寄存器之间且包括所述低线程父寄存器和所述高线程父寄存器的第二ID值,所述第二ID值与所述第一父ID值不同;
通过第一TCU执行所述第一父并行线程;
通过第二TCU与所执行的第一父并行线程并行地执行所述第二父并行线程;
通过所述第一TCU生成第一子并行线程,所述第一子并行线程具有比所述高线程父寄存器高一个值的第一子ID值;
通过所述第二TCU生成第二子并行线程,所述第二子并行线程具有比所述第一子ID值高一个值的第二子ID值;
将所述第一子ID值存储在所述至少一个子ID寄存器中;
将所述第二子ID值存储在所述至少一个子ID寄存器中;
通过所述第一TCU初始化所述第一子并行线程;
通过所述第二TCU初始化所述第二子并行线程;
在所述第一子并行线程完成初始化之前,通过所述第一TCU使用所述至少一个子ID寄存器访问所述第一子ID值;
在所述第二子并行线程完成初始化之前,通过所述第二TCU使用所述至少一个子ID寄存器访问所述第二子ID值;
在所述第一子并行线程或所述第二子并行线程完成初始化之后,通过所述MTCU将所述高线程父寄存器递增一;以及
通过第三TCU执行已完成初始化的所述第一子并行线程或所述第二子并行线程。
2.根据权利要求1所述的方法,其特征在于,所述多线程系统还包括控制电路,并且所述方法还包括:
通过所述第二TCU向所述控制电路发送所述第二子并行线程已经完成初始化的指示;
通过所述控制电路确定所述第一子并行线程尚未完成初始化;以及
通过所述控制电路防止所述第一子并行线程和所述第二子并行线程二者执行,直到所述控制电路接收到所述第一子并行线程也已经完成初始化的指示。
3.根据权利要求2所述的方法,其特征在于,还包括:
通过所述第一TCU将所述第一子并行线程已经完成初始化的指示发送至所述控制电路;以及
响应于所述第二子并行线程已经完成初始化的指示以及所述第一子并行线程已经完成初始化的指示的发送,通过所述控制电路引起所述第一子并行线程和所述第二子并行线程的执行。
4.根据权利要求3所述的方法,其特征在于,还包括:
在所述第二子并行线程已经完成初始化的指示以及所述第一子并行线程已经完成初始化的指示的发送之后,通过所述控制电路使所述高线程父寄存器再递增一,以使总增量为二。
5.根据权利要求2所述的方法,其特征在于,所述控制电路包括子ID向量,所述子ID向量包括多个位,其中,所述多个位中的每一个对应于子并行线程是否被初始化的指示。
6.根据权利要求5所述的方法,其特征在于,未初始化的子并行线程的数目超过所述子ID向量的所述多个位的数目;并且所述方法还包括:
通过父并行线程延迟向所述控制电路发送子并行线程已完成初始化的指示,直到未初始化的子并行线程的数目小于或等于所述子ID向量的所述多个位。
7.根据权利要求5所述的方法,其特征在于,还包括:
在所述控制电路接收到子并行线程已经完成初始化的指示之后,将所述子ID向量的位更新为值一。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奕斯伟智慧技术有限公司,未经北京奕斯伟智慧技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911227804.4/1.html,转载请声明来源钻瓜专利网。