用于同步多线程的中央处理单元、方法、设备及存储介质技术

技术编号:27876901 阅读:17 留言:0更新日期:2021-03-31 00:55
本公开提供了用于同步多线程(SMT)的中央处理单元、方法、设备及存储介质。该中央处理单元包括:优先化线程调度寄存器,设置有优先化线程调度寄存器值;以及中央处理单元核,在该中央处理单元核上同步运行多个线程,其中,该中央处理单元核被配置为:基于该优先化线程调度寄存器值确定该多个线程各自被执行的概率,并且基于所确定的该多个线程各自被执行的概率来执行该多个线程中的相应线程。本公开的中央处理单元可以实现预设的线程调度和/或优先化线程调度。

【技术实现步骤摘要】
用于同步多线程的中央处理单元、方法、设备及存储介质
本公开涉及同步多线程,并且更具体地,涉及用于同步多线程的中央处理单元、方法、设备及存储介质。
技术介绍
现代CPU核内部一般有多个流水阶段,比如分支预测(Branchprediction)、指令提取(Instructionfetch)、指令解码(Decode)、指令分发与重命名(DispatchandRename)、指令执行(Execute),指令退出(Retire)等。为了支持高运行频率,每一个流水阶段又可能包含多个流水级。同步多线程(SimultaneousMulti-Threading,SMT)的一个重要特点是在同一个时钟周期,同一个指令执行流水级内的指令可以来自多个线程;而在其他流水阶段,往往一个时钟只选择、处理一个线程的指令。因此,在这些阶段,就需要从多个线程中选择一个来传递到下一个流水阶段,这叫做线程调度。线程调度的选择对SMT整体性能、功耗、线程之间的公平性有重要影响。
技术实现思路
需要一种优化的SMT技术,以实现预设的线程调度和/或优先化线程调度。本公开的实施例的一方面公开了一种用于同步多线程的中央处理单元,包括:优先化线程调度寄存器,设置有优先化线程调度寄存器值;以及中央处理单元核,在该中央处理单元核上同步运行多个线程,其中,该中央处理单元核被配置为:基于该优先化线程调度寄存器值确定该多个线程各自被执行的概率,并且基于所确定的该多个线程各自被执行的概率来执行该多个线程中的相应线程。例如,根据本公开的实施例提供的中央处理单元,其中,该中央处理单元核被配置为通过以下步骤来基于该优先化线程调度寄存器值确定该多个线程各自被执行的概率:基于该优先化线程调度寄存器值确定该多个线程各自被执行的预设次数,其中该多个线程各自被执行的预设次数与该多个线程中的所有线程被执行的预设次数的总和之间的比值分别为该多个线程中的相应线程被执行的概率;并且其中该中央处理单元核被配置为通过以下步骤来基于所确定的该多个线程各自被执行的概率来执行该多个线程中的相应线程:基于所确定的该多个线程各自被执行的预设次数来执行该多个线程中的相应线程。例如,根据本公开的实施例提供的中央处理单元,该中央处理单元核被配置为通过以下步骤来基于该优先化线程调度寄存器值确定该多个线程各自被执行的预设次数:将该优先化线程调度寄存器值设置为分别对应于该多个线程的多个数值,并且将该多个数值中的各个数值分别设置为该多个线程中的相应线程被执行的预设次数;或者将该优先化线程调度寄存器值设置为单个数值并将该单个数值设置为该多个线程中的优先化线程被执行的预设次数,并且设置至少一个系统默认数值并将该至少一个系统默认数值中的各个系统默认数值分别设置为该多个线程中的至少一个非优先化线程中的相应非优先化线程被执行的预设次数,其中该至少一个系统默认数值中的各个数值均小于该单个数值。例如,根据本公开的实施例提供的中央处理单元,其中,该中央处理单元核被配置为通过以下步骤来基于所确定的该多个线程各自被执行的预设次数来执行该多个线程中的相应线程:执行该多个线程中的第一线程;判断该第一线程被执行的次数是否为该第一线程的相应预设次数;以及响应于该第一线程被执行的次数为该第一线程的相应预设次数,执行第二线程。例如,根据本公开的实施例提供的中央处理单元,其中,该中央处理单元核被配置为通过以下第一方式或第二方式来判断该第一线程被执行的次数是否为该第一线程的相应预设次数:其中,该第一方式包括:对该第一线程被执行的次数进行计数,该计数包括:设置该第一线程被执行的次数的计数值的初始值为0,响应于执行一次该第一线程,将该计数值加1,并且响应于该计数值大于或等于该第一线程的相应预设次数,判断出该第一线程被执行的次数为该第一线程的相应预设次数;其中,该第二方式包括:对该第一线程被执行的次数进行计数,该计数包括:设置该第一线程被执行的次数的计数值的初始值为该第一线程的相应预设次数,响应于执行一次该第一线程,将该计数值减1,并且响应于该计数值小于或等于0,判断出该第一线程被执行的次数为该第一线程的相应预设次数。例如,根据本公开的实施例提供的中央处理单元,还包括:响应于该第一线程被执行的次数不为该第一线程的相应预设次数,继续执行该第一线程。例如,根据本公开的实施例提供的中央处理单元,其中,该多个线程各自被执行的概率不完全相等。本公开的实施例的另一方面公开了一种用于同步多线程的方法,包括:在优先化线程调度寄存器中设置优先化线程调度寄存器值,该优先化线程调度寄存器包括在中央处理单元中;基于该优先化线程调度寄存器值确定该多个线程各自被执行的概率,以及基于所确定的该多个线程各自被执行的概率来执行该多个线程中的相应线程,其中,该多线程在中央处理单元核上执行,并且该中央处理单元核包括在该中央处理单元中。例如,根据本公开的实施例提供的方法,其中,基于该优先化线程调度寄存器值确定该多个线程各自被执行的概率包括:基于该优先化线程调度寄存器值确定该多个线程各自被执行的预设次数,其中该多个线程各自被执行的预设次数与该多个线程中的所有线程被执行的预设次数的总和之间的比值分别为该多个线程中的相应线程被执行的概率;并且其中基于所确定的该多个线程各自被执行的概率来执行该多个线程中的相应线程:基于所确定的该多个线程各自被执行的预设次数来执行该多个线程中的相应线程。例如,根据本公开的实施例提供的方法,其中,基于该优先化线程调度寄存器值确定该多个线程各自被执行的预设次数包括:将该优先化线程调度寄存器值设置为分别对应于该多个线程的多个数值,并且将该多个数值中的各个数值分别设置为该多个线程中的相应线程被执行的预设次数;或者将该优先化线程调度寄存器值设置为单个数值并将该单个数值设置为该多个线程中的优先化线程被执行的预设次数,并且设置至少一个系统默认数值并将该至少一个系统默认数值中的各个系统默认数值分别设置为该多个线程中的至少一个非优先化线程中的相应非优先化线程被执行的预设次数,其中该至少一个系统默认数值中的各个数值均小于该单个数值。例如,根据本公开的实施例提供的方法,其中,基于所确定的该多个线程各自被执行的预设次数来执行该多个线程中的相应线程包括:执行该多个线程中的第一线程;判断该第一线程被执行的次数是否为该第一线程的相应预设次数;以及响应于该第一线程被执行的次数为该第一线程的相应预设次数,执行第二线程。例如,根据本公开的实施例提供的方法,其中,判断所述第一线程被执行的次数是否为所述第一线程的相应预设次数包括以下第一方式或第二方式包括:其中,该第一方式包括:对该第一线程被执行的次数进行计数,该计数包括:设置该第一线程被执行的次数的计数值的初始值为0,响应于执行一次该第一线程,将该计数值加1,并且响应于该计数值大于或等于该第一线程的相应预设次数,判断出该第一线程被执行的次数为该第一线程的相应预设次数;其中,该第二方式包括:对该第一线程被执行的次数进行计数,该计数包括:设置该第一线程被执行的次数的计数值的初始值为该第一线程的相应预本文档来自技高网...

【技术保护点】
1.一种用于同步多线程的中央处理单元,包括:/n优先化线程调度寄存器,设置有优先化线程调度寄存器值;以及/n中央处理单元核,在所述中央处理单元核上同步运行多个线程,/n其中,所述中央处理单元核被配置为:基于所述优先化线程调度寄存器值确定所述多个线程各自被执行的概率,并且基于所确定的所述多个线程各自被执行的概率来执行所述多个线程中的相应线程。/n

【技术特征摘要】
1.一种用于同步多线程的中央处理单元,包括:
优先化线程调度寄存器,设置有优先化线程调度寄存器值;以及
中央处理单元核,在所述中央处理单元核上同步运行多个线程,
其中,所述中央处理单元核被配置为:基于所述优先化线程调度寄存器值确定所述多个线程各自被执行的概率,并且基于所确定的所述多个线程各自被执行的概率来执行所述多个线程中的相应线程。


2.根据权利要求1所述的中央处理单元,其中,
所述中央处理单元核被配置为通过以下步骤来基于所述优先化线程调度寄存器值确定所述多个线程各自被执行的概率:
基于所述优先化线程调度寄存器值确定所述多个线程各自被执行的预设次数,其中所述多个线程各自被执行的预设次数与所述多个线程中的所有线程被执行的预设次数的总和之间的比值分别为所述多个线程中的相应线程被执行的概率;并且其中
所述中央处理单元核被配置为通过以下步骤来基于所确定的所述多个线程各自被执行的概率来执行所述多个线程中的相应线程:
基于所确定的所述多个线程各自被执行的预设次数来执行所述多个线程中的相应线程。


3.根据权利要求2所述的中央处理单元,其中,所述中央处理单元核被配置为通过以下步骤来基于所述优先化线程调度寄存器值确定所述多个线程各自被执行的预设次数:
将所述优先化线程调度寄存器值设置为分别对应于所述多个线程的多个数值,并且将所述多个数值中的各个数值分别设置为所述多个线程中的相应线程被执行的预设次数;或者
将所述优先化线程调度寄存器值设置为单个数值并将所述单个数值设置为所述多个线程中的优先化线程被执行的预设次数,并且设置至少一个系统默认数值并将所述至少一个系统默认数值中的各个系统默认数值分别设置为所述多个线程中的至少一个非优先化线程中的相应非优先化线程被执行的预设次数,其中所述至少一个系统默认数值中的各个数值均小于所述单个数值。


4.根据权利要求2所述的中央处理单元,其中,所述中央处理单元核被配置为通过以下步骤来基于所确定的所述多个线程各自被执行的预设次数来执行所述多个线程中的相应线程:
执行所述多个线程中的第一线程;
判断所述第一线程被执行的次数是否为所述第一线程的相应预设次数;以及
响应于所述第一线程被执行的次数为所述第一线程的相应预设次数,执行第二线程。


5.根据权利要求4所述的中央处理单元,其中,所述中央处理单元核被配置为通过以下第一方式或第二方式来判断所述第一线程被执行的次数是否为所述第一线程的相应预设次数:
其中,所述第一方式包括:对所述第一线程被执行的次数进行计数,所述计数包括:设置所述第一线程被执行的次数的计数值的初始值为0,响应于执行一次所述第一线程,将所述计数值加1,并且
响应于所述计数值大于或等于所述第一线程的相应预设次数,判断出所述第一线程被执行的次数为所述第一线程的相应预设次数;
其中,所述第二方式包括:对所述第一线程被执行的次数进行计数,所述计数包括:设置所述第一线程被执行的次数的计数值的初始值为所述第一线程的相应预设次数,响应于执行一次所述第一线程,将所述计数值减1,并且
响应于所述计数值小于或等于0,判断出所述第一线程被执行的次数为所述第一线程的相应预设次数。


6.根据权利要求4所述的中央处理单元,还包括:
响应于所述第一线程被执行的次数不为所述第一线程的相应预设次数,继续执行所述第一线程。


7.根据权利要求1所述的中央处理单元,其中,所述多个线程各自被执行的概率不完全相等。


8.一种用于同步多线程的方法,包括:
在优先化线程调度寄存器中设置优先化...

【专利技术属性】
技术研发人员:胡世文
申请(专利权)人:海光信息技术股份有限公司
类型:发明
国别省市:天津;12

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

1