System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 线程控制方法及装置、处理器和计算机可读存储介质制造方法及图纸_技高网

线程控制方法及装置、处理器和计算机可读存储介质制造方法及图纸

技术编号:41834735 阅读:1 留言:0更新日期:2024-06-27 18:18
本公开的至少一实施例提供了一种线程控制方法及装置、处理器和计算机可读存储介质。该线程控制方法包括:对于被处理器执行的多个线程,获取多个线程对处理器中的物理寄存器的占用状态;以及响应于占用状态满足溢出阈值条件,选择多个线程中的目标线程,将目标线程所占用的至少部分物理寄存器中的数据存储到扩展存储器中,释放数据被存储到扩展存储器中的物理寄存器以用于多个线程中除目标线程之外的其他线程。该线程控制方法可以在合理数量的物理寄存器下,使得多线程能够共享这些物理寄存器,满足主频,功耗和多线程性能的要求。

【技术实现步骤摘要】

本公开的实施例涉及一种线程控制方法及装置、处理器和计算机可读存储介质


技术介绍

1、现代多发射的高性能cpu(中央处理器,central processing unit)中包括至少一个处理器核(core),每个处理器核包括有多个执行单元来对指令进行执行。例如,指令执行的流水线过程包括:取指(if,instruction fetch)、译码(id,instruction dispatch/decode)、执行(ex,execution)、访存(mem,memory)和写回(wb,write back,将指令执行完得出的结果更新到寄存器中)五个阶段。

2、为了提高处理器中指令执行的并行度,处理器可以采用同时多线程(simultaneous multithreading,smt)技术,使得处理器中用于指令执行的流水线结构(也简称“流水线”)可以支持两个或多个(硬件)线程同时执行。例如,smt处理器可以是smt2(支持最多两个并发线程)、smt4(支持最多四个并发线程)或smt8(支持最多八个并发线程)等。在单线程处理器运行时,由于缓存未命中等停顿原因,处理器内部的多个执行单元可能闲置,而对于采用smt技术的处理器,即使某一线程暂停时,其他线程也可继续使用这些硬件资源,这提高了硬件资源的利用率,可以避免空转,提高了处理器吞吐量及性能功耗比。

3、多线程技术中物理寄存器一般是多个线程共享的,每个线程消耗(或占用)的物理寄存器个数一般是该线程的逻辑寄存器个数,并且处理器运行过程中还存在空闲运行(free running)的物理寄存器。因此,多线程技术中实际需要的物理寄存器数量巨大。然而,受限于高主频和低功耗的要求,一般难以设计能存放很大项(entry)数的物理寄存器堆。这给多线程下物理寄存器的共享带来挑战。因此,如何在合理的物理寄存器个数下共享这些寄存器成为需要解决的问题。


技术实现思路

1、本公开的至少一实施例提供了一种线程控制方法,包括:对于被处理器执行的多个线程,获取多个线程对处理器中的物理寄存器的占用状态;以及响应于占用状态满足溢出阈值条件,选择多个线程中的目标线程,将目标线程所占用的至少部分物理寄存器中的数据存储到扩展存储器中,释放数据被存储到扩展存储器中的物理寄存器以用于多个线程中除目标线程之外的其他线程。

2、例如,根据本公开的至少一实施例的线程控制方法,溢出阈值条件包括数量阈值,其中数量阈值与多个线程中的至少部分线程可占用的处理器中的物理寄存器的最大数量相关联。

3、例如,根据本公开的至少一实施例的线程控制方法,数量阈值指示至少部分线程可占用的处理器中的物理寄存器的最大个数,并且获取多个线程对处理器中的物理寄存器的占用状态,包括:统计至少部分线程所占用的处理器中的物理寄存器的个数。

4、例如,根据本公开的至少一实施例的线程控制方法,统计至少部分线程所占用的处理器中的物理寄存器的个数,包括:对至少部分线程中的每个线程的有效映射的个数进行计数,其中有效映射指示一个逻辑寄存器对应一个有效的物理寄存器;以及将计数进行求和作为至少部分线程所占用的处理器中的物理寄存器的个数。

5、例如,根据本公开的至少一实施例的线程控制方法,数量阈值指示部分线程或所有线程可占用的处理器中的物理寄存器的最大个数。

6、例如,根据本公开的至少一实施例的线程控制方法,还包括:响应于获取的至少部分线程所占用的处理器中的物理寄存器的个数大于或等于最大个数,确定占用状态满足溢出阈值条件。

7、例如,根据本公开的至少一实施例的线程控制方法,溢出阈值条件包括第一时间阈值,其中第一时间阈值指示多个线程中的至少部分线程的逻辑寄存器不使用的最长时间,并且获取多个线程对处理器中的物理寄存器的占用状态,包括:获取至少部分线程的逻辑寄存器的非占用时间。

8、例如,根据本公开的至少一实施例的线程控制方法,还包括:响应于获取至少部分线程的逻辑寄存器的非占用时间大于或等于第一时间阈值,确定占用状态满足溢出阈值条件。

9、例如,根据本公开的至少一实施例的线程控制方法,至少部分线程的逻辑寄存器包括多个逻辑寄存器组,其中,获取至少部分线程的逻辑寄存器的非占用时间,包括:获取多个逻辑寄存器组中的目标逻辑寄存器组内的逻辑寄存器的非占用时间,以及其中,响应于占用状态满足溢出阈值条件,选择多个线程中的目标线程,将目标线程所占用的至少部分物理寄存器中的数据存储到扩展存储器中,包括:响应于多个逻辑寄存器组中的目标逻辑寄存器组内的逻辑寄存器的非占用时间大于或等于第一时间阈值,将相应的线程选择为目标线程,将目标线程的目标逻辑寄存器组内的逻辑寄存器所对应的至少部分物理寄存器中的数据存储到扩展存储器中。

10、例如,根据本公开的至少一实施例的线程控制方法,还包括:响应于目标线程需要重新执行指令,从扩展存储器中将数据填充到处理器中的当前可用物理寄存器中。

11、例如,根据本公开的至少一实施例的线程控制方法,还包括:获取指令被停止分派的时间,其中,指令响应于占用状态满足溢出阈值条件而被停止分派;以及响应于指令被停止分派的时间大于或等于第二时间阈值,确定目标线程需要重新执行指令,其中第二时间阈值指示目标线程对应的指令需要被停止分派的时间最小时间。

12、例如,根据本公开的至少一实施例的线程控制方法,目标线程的逻辑寄存器中包括多个逻辑寄存器组,其中,响应于目标线程需要重新执行指令,从扩展存储器中将填充到可用物理寄存器中,包括:响应于指令需要使用第一逻辑寄存器,仅将第一逻辑寄存器所在的逻辑寄存器组中的每个逻辑器对应的数据从扩展存储器填充到当前可用物理寄存器中。

13、例如,根据本公开的至少一实施例的线程控制方法,扩展存储器包括多个存储地址,每个存储地址专用于存储多个线程中的相应线程的逻辑寄存器对应的数据。

14、例如,根据本公开的至少一实施例的线程控制方法,通过线程号和逻辑寄存器号来访问存储地址。

15、本公开的至少一实施例提供了一种线程控制装置,包括:获取模块,被配置为对于被处理器执行的多个线程,获取多个线程对处理器中的物理寄存器的占用状态;以及处理模块,被配置为响应于占用状态满足溢出阈值条件,选择多个线程中的目标线程,将目标线程所占用的至少部分物理寄存器中的数据存储到扩展存储器中,释放数据被存储到扩展存储器中的物理寄存器以用于多个线程中除目标线程之外的其他线程。

16、例如,根据本公开的至少一实施例的线程控制装置,溢出阈值条件包括数量阈值,其中数量阈值与多个线程中的至少部分线程可占用的处理器中的物理寄存器的最大数量相关联。

17、例如,根据本公开的至少一实施例的线程控制装置,溢出阈值条件包括第一时间阈值,其中第一时间阈值指示多个线程中的至少部分线程的逻辑寄存器不使用的最长时间,并且获取模块包括:时间获取模块,被配置为获取至少部分线程的逻辑寄存器的非占用时间。

18、例如,本文档来自技高网...

【技术保护点】

1.一种线程控制方法,包括:

2.根据权利要求1所述的线程控制方法,其中,所述溢出阈值条件包括数量阈值,其中所述数量阈值与所述多个线程中的至少部分线程可占用的所述处理器中的物理寄存器的最大数量相关联。

3.根据权利要求2所述的线程控制方法,所述数量阈值指示所述至少部分线程可占用的所述处理器中的物理寄存器的最大个数,并且

4.根据权利要求3所述的线程控制方法,其中,统计所述至少部分线程所占用的所述处理器中的物理寄存器的个数,包括:

5.根据权利要求3所述的线程控制方法,其中,所述数量阈值指示所述部分线程或所有线程可占用的所述处理器中的物理寄存器的最大个数。

6.根据权利要求3所述的线程控制方法,还包括:

7.根据权利要求1所述的线程控制方法,其中,所述溢出阈值条件包括第一时间阈值,其中所述第一时间阈值指示所述多个线程中的至少部分线程的逻辑寄存器不使用的最长时间,并且

8.根据权利要求7所述的线程控制方法,还包括:

9.根据权利要求7所述的线程控制方法,其中,所述至少部分线程的逻辑寄存器包括多个逻辑寄存器组,

10.根据权利要求1-9中任一项所述的线程控制方法,还包括:

11.根据权利要求10所述的线程控制方法,还包括:

12.根据权利要求10所述的线程控制方法,其中,所述目标线程的逻辑寄存器中包括多个逻辑寄存器组,

13.根据权利要求10所述的线程控制方法,其中,所述扩展存储器包括多个存储地址,每个存储地址专用于存储所述多个线程中的相应线程的逻辑寄存器对应的数据。

14.一种线程控制装置,包括:

15.根据权利要求14所述的线程控制装置,其中,所述溢出阈值条件包括第一时间阈值,其中所述第一时间阈值指示所述多个线程中的至少部分线程的逻辑寄存器不使用的最长时间,并且所述获取模块包括:

16.根据权利要求15所述的线程控制装置,其中,所述至少部分线程的逻辑寄存器包括多个逻辑寄存器组,

17.根据权利要求14所述的线程控制装置,其中,所述处理模块还包括:

18.根据权利要求17所述的线程控制装置,其中,所述目标线程的逻辑寄存器中包括多个逻辑寄存器组,并且所述填充存储控制单元包括:

19.根据权利要求14所述的线程控制装置,其中,所述扩展存储器设置在所述物理寄存器的周围,并且所述目标线程所占用的至少部分物理寄存器中的数据能够通过所述扩展存储器和所述物理寄存器之间的直接数据通道进行传输。

20.一种线程控制装置,包括至少一个处理单元和存储器;其中,

21.一种处理器,包括根据权利要求14-20中任一所述的线程控制装置。

22.一种计算机可读存储介质,其中,所述计算机可读存储介质中存储有计算机可读指令,当处理器执行所述计算机可读指令时,实现根据权利要求1-13中任一项所述的线程控制方法。

...

【技术特征摘要】

1.一种线程控制方法,包括:

2.根据权利要求1所述的线程控制方法,其中,所述溢出阈值条件包括数量阈值,其中所述数量阈值与所述多个线程中的至少部分线程可占用的所述处理器中的物理寄存器的最大数量相关联。

3.根据权利要求2所述的线程控制方法,所述数量阈值指示所述至少部分线程可占用的所述处理器中的物理寄存器的最大个数,并且

4.根据权利要求3所述的线程控制方法,其中,统计所述至少部分线程所占用的所述处理器中的物理寄存器的个数,包括:

5.根据权利要求3所述的线程控制方法,其中,所述数量阈值指示所述部分线程或所有线程可占用的所述处理器中的物理寄存器的最大个数。

6.根据权利要求3所述的线程控制方法,还包括:

7.根据权利要求1所述的线程控制方法,其中,所述溢出阈值条件包括第一时间阈值,其中所述第一时间阈值指示所述多个线程中的至少部分线程的逻辑寄存器不使用的最长时间,并且

8.根据权利要求7所述的线程控制方法,还包括:

9.根据权利要求7所述的线程控制方法,其中,所述至少部分线程的逻辑寄存器包括多个逻辑寄存器组,

10.根据权利要求1-9中任一项所述的线程控制方法,还包括:

11.根据权利要求10所述的线程控制方法,还包括:

12.根据权利要求10所述的线程控制方法,其中,所述目标线程的逻辑寄存器中包括多个逻辑寄存器组,

13....

【专利技术属性】
技术研发人员:陈静
申请(专利权)人:海光信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1