【技术实现步骤摘要】
用于执行多线程系统的子线程的方法和多线程系统本申请要求于2018年12月4日提交的名称为“SYSTEMANDMETHODFORHANDLINGDEPENDENCIESINDYNAMICTHREADSPAWNINGFORAMULTI-THREADINGPROCESSOR”的美国临时申请16/209,663的优先权,其全部内容通过引用结合在本申请中。
本申请的主题一般地涉及并行处理环境中的多线程处理。更具体地,本申请主题涉及用于执行多线程系统的子线程的方法和多线程系统。
技术介绍
并行处理可以是计算机处理中非常强大的架构。为了提高规模,设计一种能源和资源高效的系统架构是重要的,因为低效的缺陷可能会被极大地放大到超大规模系统。
技术实现思路
针对多线程系统提出了本申请的各方面,该多线程系统被配置成从父线程动态地增殖子线程以操作一个或更多个软件程序。在一些实施方式中,提出了一种用于执行多线程系统的子线程的方法。该多线程系统可以包括主线程控制单元(masterthreadcontrolunit,MTCU)、多个线程控制单元(TCU)以及存储低线程父寄存器、高线程父寄存器和至少一个子ID寄存器的存储器。该方法可以包括:通过MTCU初始化第一父并行线程,该第一父并行线程具有在低线程父寄存器与高线程父寄存器之间且包括低线程父寄存器和高线程父寄存器的第一父ID值;通过MTCU初始化第二父并行线程,该第二父并行线程具有在低线程父寄存器与高线程父寄存器之间且包括低线程父寄存器和高线程父寄存器的第二ID值,该第二 ...
【技术保护点】
1.一种用于执行多线程系统的子线程的方法,其特征在于,所述多线程系统包括主线程控制单元MTCU、多个线程控制单元TCU、以及存储低线程父寄存器、高线程父寄存器和至少一个子ID寄存器的存储器,所述方法包括:/n通过所述MTCU初始化第一父并行线程,所述第一父并行线程具有在所述低线程父寄存器与所述高线程父寄存器之间且包括所述低线程父寄存器和所述高线程父寄存器的第一父ID值;/n通过所述MTCU初始化第二父并行线程,所述第二父并行线程具有在所述低线程父寄存器与所述高线程父寄存器之间且包括所述低线程父寄存器和所述高线程父寄存器的第二ID值,所述第二ID值与所述第一父ID值不同;/n通过第一TCU执行所述第一父并行线程;/n通过第二TCU与所执行的第一父并行线程并行地执行所述第二父并行线程;/n通过所述第一TCU生成第一子并行线程,所述第一子并行线程具有比所述高线程父寄存器高一个值的第一子ID值;/n通过所述第二TCU生成第二子并行线程,所述第二子并行线程具有比所述第一子ID值高一个值的第二子ID值;/n将所述第一子ID值存储在所述至少一个子ID寄存器中;/n将所述第二子ID值存储在所述至少一个 ...
【技术特征摘要】
20181204 US 16/209,6631.一种用于执行多线程系统的子线程的方法,其特征在于,所述多线程系统包括主线程控制单元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向量的位更新为值一。
8...
【专利技术属性】
技术研发人员:文兴植,付鹏,
申请(专利权)人:北京磐易科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。