指令分发方法、装置、电子设备和计算机可读存储介质制造方法及图纸

技术编号:37432921 阅读:12 留言:0更新日期:2023-05-05 19:47
一种指令分发方法、装置、电子设备和计算机可读存储介质。该指令分发方法包括:获取多个调度队列每个的调度队列信息,多个调度队列中的至少一个配置为可既存储第一类型的第一指令又可存储第二类型的第二指令;基于第一指令的指令数,调整用于第一指令的第一分发配置信息,并且根据第一分发配置信息,向多个调度队列中的至少部分分发多个第一指令;以及在分发多个第一指令之后更新当前令牌数,基于更新后的当前令牌数,调整用于第二指令的第二分发配置信息,并且根据第二分发配置信息,向多个调度队列中的至少部分分发多个第二指令。该方法可以均衡多个调度队列的负载。法可以均衡多个调度队列的负载。法可以均衡多个调度队列的负载。

【技术实现步骤摘要】
指令分发方法、装置、电子设备和计算机可读存储介质


[0001]本公开的实施例涉及一种指令分发方法、装置、电子设备和计算机可读存储介质。

技术介绍

[0002]中央处理器(Central Processing Unit,CPU)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。CPU自产生以来,在逻辑结构、运行效率以及功能外延上取得了巨大发展。处理器核(Core)是CPU内部最核心的部分,CPU所有的计算和处理数据等都由Core执行。

技术实现思路

[0003]本公开至少一个实施例提供一种指令分发方法,包括:获取多个调度队列每个的调度队列信息,其中,所述多个调度队列中的至少一个配置为可既存储第一类型的第一指令又可存储第二类型的第二指令,所述调度队列信息至少包括对应于各个调度队列的当前令牌数和当前时刻所述第一指令的指令数,所述当前令牌数指示所述当前时刻调度队列最多接收的指令数;基于所述第一指令的指令数,动态调整用于所述第一指令的第一分发配置信息,并且根据所述第一分发配置信息,向所述多个调度队列中的至少部分分发多个第一指令;以及在分发所述多个第一指令之后更新所述当前令牌数,基于更新后的当前令牌数,动态调整用于所述第二指令的第二分发配置信息,并且根据所述第二分发配置信息,向所述多个调度队列中的至少部分分发多个第二指令。
[0004]本公开至少一个实施例提供一种指令分发装置,包括:获取单元,配置为获取多个调度队列每个的调度队列信息,其中,所述多个调度队列中的至少一个配置为可既存储第一类型的第一指令又可存储第二类型的第二指令,所述调度队列信息至少包括对应于各个调度队列的当前令牌数和当前时刻所述第一指令的指令数,所述当前令牌数指示所述当前时刻调度队列最多接收的指令数;第一调整分发单元,配置为基于所述第一指令的指令数,动态调整用于所述第一指令的第一分发配置信息,并且根据所述第一分发配置信息,向所述多个调度队列中的至少部分分发多个第一指令;以及第二调整分发单元,配置为在分发所述多个第一指令之后更新所述当前令牌数,基于更新后的当前令牌数,动态调整用于所述第二指令的第二分发配置信息,并且根据所述第二分发配置信息,向所述多个调度队列中的至少部分分发多个第二指令。本公开至少一个实施例提供一种电子设备,包括处理器;存储器,包括一个或多个计算机程序指令;其中,一个或多个计算机程序指令被存储在所述存储器中,并由所述处理器执行时实现本公开任一实施例提供的指令分发方法的指令。
[0005]本公开至少一个实施例提供一种计算机可读存储介质,非暂时性存储有计算机可读指令,其中,当所述计算机可读指令由处理器执行时实现本公开任一实施例提供的指令分发方法。
[0006]本公开至少一个实施例提供的指令分发方法能够提高相同类型指令在对应的混合调度队列之间数的均衡性,并且提高各个调度队列之间缓存的微指令的总数的均衡性。
附图说明
[0007]为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
[0008]图1A示出了一种处理器核的微架构的示意图;
[0009]图1B示出了一种图1A中分发单元的指令分发方法的流程图;
[0010]图2示出了本公开至少一实施例提供的一种指令分发方法的流程图;
[0011]图3示出了本公开至少一个实施例提供的图2中步骤S30中动态调整用于第二指令的第二分发配置信息的方法流程图;
[0012]图4A示出了本公开至少一个实施例提供的图3中步骤S31的方法流程图;
[0013]图4B示出了本公开至少一个实施例提供的图3中步骤S32的方法流程图;
[0014]图5示意性示出了本公开至少一个实施例提供的图3中步骤S31和步骤S32的方法流程图;
[0015]图6示出了本公开至少一个实施例提供的一种指令分发单元的示意图;
[0016]图7示出了本公开至少一个实施例提供的一种指令分发装置的示意框图;
[0017]图8A示出了本公开至少一个实施例提供的一种电子设备的示意框图;
[0018]图8B示出了本公开至少一个实施例提供的另一种电子设备的示意框图;以及
[0019]图9示出了本公开至少一个实施例提供的一种计算机可读存储介质的示意图。
具体实施方式
[0020]为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0021]除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
[0022]图1A示出了一种处理器核(Core)的微架构的微架构100的示意图。
[0023]如图1A所示,该处理器核的微架构100包括一级(L1)指令缓存单元101、取指单元102、译码单元103、分发单元104、重命名单元105、物理寄存器106、调度队列(Schedule Queue,SQ)、算术和逻辑运算单元(Arithmetic Logical Unit,ALU)、虚拟地址计算单元(Address GenerationUnit,AGU)、访存单元107和L1数据缓存单元108。
[0024]如图1A所示,调度队列包括SQ0、SQ1、SQ2以及SQ3。SQ0、SQ1以及SQ2均为混合队列,混合队列是指用于存储不同类型的指令的队列。例如,在图1A的示例中SQ0、SQ1、SQ2中的每
个都配置为既存储ALU指令又存储AGU指令。SQ3为单一队列,单一队列为存储相同类型的指令的队列。例如,SQ3配置为存储ALU指令。
[0025]如图1A所示,该处理器核的微架构100包括多个ALU,分别为ALU20、ALU21、ALU22和ALU23;该处理器核的微架构100包括多个AGU,分别为AGU10、AGU11和AGU12。ALU和AGU均为执行单元。在图1A的示例中,每个混合队列与一组执行单元对应,一组执行单元包括混合队列中存储的不同类型的指本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种指令分发方法,包括:获取多个调度队列每个的调度队列信息,其中,所述多个调度队列中的至少一个配置为可既存储第一类型的第一指令又可存储第二类型的第二指令,所述调度队列信息至少包括对应于各个调度队列的当前令牌数和当前时刻所述第一指令的指令数,所述当前令牌数指示所述当前时刻调度队列最多接收的指令数;基于所述第一指令的指令数,动态调整用于所述第一指令的第一分发配置信息,并且根据所述第一分发配置信息,向所述多个调度队列中的至少部分分发多个第一指令;以及在分发所述多个第一指令之后更新所述当前令牌数,基于更新后的当前令牌数,动态调整用于所述第二指令的第二分发配置信息,并且根据所述第二分发配置信息,向所述多个调度队列中的至少部分分发多个第二指令。2.根据权利要求1所述的方法,其中,所述多个调度队列中的第一调度队列组合配置为存储所述第一类型的指令,所述多个调度队列中的第二调度队列组合配置为存储所述第二类型的指令,所述第一调度队列组合为所述第二调度队列组合的子集。3.根据权利要求2所述的方法,其中,根据所述第一分发配置信息,向所述多个调度队列中的至少部分分发多个第一指令,包括:根据所述第一分发配置信息,向所述第一调度队列组合分发多个第一指令;根据所述第二分发配置信息,向所述多个调度队列中的至少部分分发多个第二指令,包括:根据所述第二分发配置信息,向所述第二调度队列组合分发多个第二指令。4.根据权利要求3所述的方法,其中,所述第一分发配置信息包括所述第一调度队列组合中各个调度队列的优先级。5.根据权利要求4所述的方法,其中,基于所述第一指令的指令数,动态调整用于所述第一指令的所述第一分发配置信息,包括:将所述第一调度队列组合中所述第一指令的指令数大的调度队列的优先级调整为低于所述第一调度队列组合中所述第一指令的指令数小的调度队列的优先级。6.根据权利要求4所述的方法,其中,根据所述第一分发配置信息,向所述多个调度队列中的至少部分分发多个第一指令,包括:按照所述第一调度队列组合中各个调度队列的优先级,向所述第一调度队列组合中当前令牌数不为0的调度队列依次分发所述多个第一指令。7.根据权利要求2所述的方法,其中,所述第二分发配置信息包括第二调度队列组合中各个调度队列的优先级。8.根据权利要求7所述的方法,其中,所根据所述第二分发配置信息,向所述多个调度队列中的至少部分分发多个第二指令,包括:按照所述第二调度队列组合中各个调度队列的优先级,向所述第二调度队列组合中当前令牌数不为0的调度队列依次分发所述多个第二指令。9.根据权利要求7或8所述的方法,其中,在分发所述多个第一指令之后更新所述当前令牌数,基于所述更新后的当前令牌数,动态调整用于所述第二指令的所述第二分发配置
信息,包括:针对所述第二调度队列组合中的调度队列,在分发所述多个第一指令之后更新所述当前令牌数,所述更新后的当前令牌数多的调度队列的优先级高于所述更新后的当前令牌数少的调度队列的优先级。10.根据权利要求7或8所述的方法,其中,所述调度队列信息还包括对应于第二调度队列组合中每个调度队列在当前时刻所述第二指令的指令数,在分发所述多个第一指令之后更新所述当前令牌数,基于所述更新后的当前令牌数,动态调整用于所述第二指令的所述第二分发配置信息,包括:根据所述第二调度队列组合中每个调度队列的所述第二指令的指令数,从所述第二调度队列组合中选择需要对所述更新后的当前令牌数进行调整的目标调度队列;根据所述第二类型的指令数,将所述目标调...

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

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

1