指令执行方法、执行引擎、处理器、芯片及电子设备技术

技术编号:35742920 阅读:14 留言:0更新日期:2022-11-26 18:46
本申请实施例提供一种指令执行方法、执行引擎、处理器、芯片及电子设备,其中方法包括:通过多条流水线将多条指令的数据输入执行引擎,一条流水线输入一条指令的数据;所述执行引擎中的逻辑运算单元划分为多个逻辑运算分组,并且一个逻辑运算分组配置给一条流水线单独使用;将各条流水线输入的数据,选择给各条流水线配置的逻辑运算分组,以便各个逻辑运算分组对各条流水线输入的数据进行逻辑运算;输出各个逻辑运算分组的逻辑运算结果。本申请实施例能够降低逻辑运算单元的数据位宽资源被闲置浪费的程度,提升逻辑运算单元的资源利用率。率。率。

【技术实现步骤摘要】
指令执行方法、执行引擎、处理器、芯片及电子设备


[0001]本申请实施例涉及处理器
,具体涉及一种指令执行方法、执行引擎、处理器、芯片及电子设备。

技术介绍

[0002]为提升处理器的性能,处理器可以采用超标量结构(Superscalar Architectures)来提高处理器的指令集并行度。超标量结构可以认为是一种处理器设计,使用超标量结构的处理器(简称超标量处理器)能够在一个时钟周期执行多个指令。
[0003]超标量处理器的执行引擎在执行指令时,执行引擎中的逻辑运算单元可对指令启动运算的数据(简称指令的数据)进行逻辑运算;此时,如何提升逻辑运算单元的资源利用率,成为了本领域技术人员亟需解决的技术问题。

技术实现思路

[0004]有鉴于此,本申请实施例提供一种指令执行方法、执行引擎、处理器、芯片及电子设备,以提升逻辑运算单元的资源利用率。
[0005]为实现上述目的,本申请实施例提供如下技术方案。
[0006]第一方面,本申请实施例提供一种指令执行方法,包括:
[0007]通过多条流水线将多条指令的数据输入执行引擎,一条流水线输入一条指令的数据;其中,所述执行引擎中的逻辑运算单元划分为多个逻辑运算分组,并且一个逻辑运算分组配置给一条流水线单独使用;
[0008]将各条流水线输入的数据,选择给各条流水线配置的逻辑运算分组,以便各个逻辑运算分组对各条流水线输入的数据进行逻辑运算;
[0009]输出各个逻辑运算分组的逻辑运算结果。
[0010]第二方面,本申请实施例提供一种执行引擎,包括:数据选择器以及逻辑运算单元;所述逻辑运算单元划分为多个逻辑运算分组,并且一个逻辑运算分组配置给一条流水线单独使用;
[0011]所述执行引擎在指令发射阶段获取多条流水线输入的多条指令的数据,一条流水线输入一条指令的数据;
[0012]所述数据选择器用于,将各条流水线输入的数据,选择给各条流水线对应配置的逻辑运算分组;
[0013]所述逻辑运算分组用于,从所述数据选择器获得对应流水线输入的数据,对对应流水线输入的数据进行逻辑运算,并且输出逻辑运算结果。
[0014]第三方面,本申请实施例提供一种处理器,包括如上述所述的执行引擎。
[0015]第四方面,本申请实施例提供一种芯片,包括如上述所述的处理器。
[0016]第五方面,本申请实施例提供一种电子设备,包括如上述所述的芯片。
[0017]本申请实施例提供的指令执行方法,可将执行引擎中的逻辑运算单元划分为多个
逻辑运算分组,并且一个逻辑运算分组配置给一条流水线单独使用;在此基础上,多条指令的数据可通过多条流水线输入执行引擎,并且一条流水线输入一条指令的数据;基于流水线与逻辑运算分组的配置关系,各条流水线输入的数据可选择给各条流水线配置的逻辑运算分组,以便各个逻辑运算分组对各条流水线输入的数据进行逻辑运算;进而本申请实施例可输出各个逻辑运算分组的逻辑运算结果,完成指令执行。
[0018]可以看出,本申请实施例在将逻辑运算单元划分为多个逻辑运算分组的情况下,处理器中支持逻辑运算的各条流水线可单独使用一个逻辑运算分组进行数据的逻辑运算;因此在各条流水线输入的数据,选择给对应配置的逻辑运算分组后,多个逻辑运算分组能够并行的处理多条流水线输入的数据;而且不同逻辑运算分组在逻辑运算单元中对应不同的数据位宽范围,因此逻辑运算单元中不同范围的数据位宽资源能够通过并行的处理多条流水线输入的数据,使得逻辑运算单元中的数据位宽资源得到充分的利用,进而降低了逻辑运算单元的数据位宽资源被闲置浪费的程度,提升了逻辑运算单元的资源利用率。
附图说明
[0019]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0020]图1为两条流水线分别占用逻辑运算单元的示例图。
[0021]图2为两条流水线分别占用逻辑运算单元的另一示例图。
[0022]图3A为对逻辑运算单元进行资源分组的示例图。
[0023]图3B为逻辑运算单元的单位执行单元示例图。
[0024]图3C为将逻辑运算单元划分为逻辑运算分组的方法流程图。
[0025]图3D为逻辑运算单元的逻辑运算分组的示例图。
[0026]图4为指令执行方法的流程图。
[0027]图5A为实现指令执行的系统架构图。
[0028]图5B为实现指令执行的另一系统架构图。
[0029]图5C为实现指令执行的再一系统架构图。
[0030]图6为指令执行方法的实现示例图。
[0031]图7为指令执行方法的另一流程图。
[0032]图8为指令执行方法的另一实现示例图。
具体实施方式
[0033]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0034]超标量处理器在指令译码之后,可将译码后的指令(也称微指令)通过多发射的方式发射给执行引擎进行执行。也就是说,在同一指令发射周期内,多条流水线可向执行引擎
输入多条指令的数据。此处所指的指令可以是SIMD(Single Instruction Multiple Data,单指令多数据)指令。其中,SIMD是一项提高数据级并行度的技术,即采用单条指令可对多个数据进行相同运算;也就是说,使用SIMD技术的超标量处理器,可利用单条指令启动多个数据的相同运算操作,从而提升处理器的指令执行效率以及降低处理器的能耗。
[0035]在指令执行时,执行引擎中的逻辑运算单元可对流水线输入的数据进行逻辑运算,为了节省超标量处理器的面积,每条流水线并不会配置一套完整功能的逻辑运算单元,而是采用仅部分流水线配置某功能的逻辑运算单元,或者采用多条流水线竞争同一逻辑运算单元的硬件资源的方式,来实现对多条流水线输入的数据进行处理;例如,为流水线分配单独使用逻辑运算单元的时钟周期,从而多条流水线在各自的时钟周期内,分别单独占用逻辑运算单元来进行数据处理。本申请实施例主要针对多条流水线竞争同一逻辑运算单元的硬件资源的情况进行优化。
[0036]为便于理解,以两条流水线为例,图1示例性的示出了两条流水线分别占用逻辑运算单元的示例图。如图1所示,数据101和数据102为指令启动运算的数据,例如SIMD指令启动相同运算操作的两个数据,并且数据101通过流水线111输入执行引擎,数据102通过流水线112输入执行引擎;
[0037]在执行引擎中,逻辑运算单元113被流水线111和流水本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种指令执行方法,其特征在于,包括:通过多条流水线将多条指令的数据输入执行引擎,一条流水线输入一条指令的数据;其中,所述执行引擎中的逻辑运算单元划分为多个逻辑运算分组,并且一个逻辑运算分组配置给一条流水线单独使用;将各条流水线输入的数据,选择给各条流水线配置的逻辑运算分组,以便各个逻辑运算分组对各条流水线输入的数据进行逻辑运算;输出各个逻辑运算分组的逻辑运算结果。2.根据权利要求1所述的方法,其特征在于,还包括:根据形成所述逻辑运算单元的多个单位执行单元,以及逻辑运算分组的数量,将所述逻辑运算单元划分为多个逻辑运算分组;其中,逻辑运算分组的数量小于或者等于所述多条流水线的条数。3.根据权利要求2所述的方法,其特征在于,所述根据形成所述逻辑运算单元的多个单位执行单元,以及逻辑运算分组的数量,将所述逻辑运算单元划分为多个逻辑运算分组包括:确定所述逻辑运算单元的多个单位执行单元,一个单位执行单元支持对单位位宽的数据进行逻辑运算,所述单位位宽为所述单位执行单元的数据位宽;根据逻辑运算分组的数量,将单位执行单元进行组合,以得到多个逻辑运算分组;其中,一个逻辑运算分组的数据位宽为所组合的单位执行单元的数据位宽的总和。4.根据权利要求3所述的方法,其特征在于,所述根据逻辑运算分组的数量,将单位执行单元进行组合,以得到多个逻辑运算分组包括:根据逻辑运算分组的数量以及所述多个单位执行单元的数量,确定一个逻辑运算分组所对应的单位执行单元的组合数量;将所述组合数量的单位执行单元组合为一个逻辑运算分组,以通过所述多个单位执行单元,组合得到多个逻辑运算分组。5.根据权利要求1

4任一项所述的方法,其特征在于,一条流水线输入的数据的数据位宽,小于或者等于对应配置的逻辑运算分组的数据位宽;或者,一条流水线输入的数据的数据位宽,大于对应配置的逻辑运算分组的数据位宽。6.根据权利要求5所述的方法,其特征在于,如果流水线输入的数据的数据位宽,大于对应配置的逻辑运算分组的数据位宽,则流水线输入的数据包括多个数据分组,一个数据分组的数据位宽不大于逻辑运算分组的数据位宽;其中,流水线输入的数据根据对应配置的逻辑运算分组的数据位宽,划分为多个数据分组。7.根据权利要求6所述的方法,其特征在于,所述将各条流水线输入的数据,选择给各条流水线配置的逻辑运算分组,以便各个逻辑运算分组对各条流水线输入的数据进行逻辑运算包括:将流水线的多个数据分组,依次选择给流水线配置的逻辑运算分组,以使得流水线配置的逻辑运算分组依次对多个数据分组进行逻辑运算;其中,逻辑运算分组在完成一个数据分组的逻辑运算后,暂存该数据分组的逻辑运算结果,并获得下一个进行逻辑运算的数据分组;所述输出各个逻辑运算分组的逻辑运算结果包括:
将逻辑运算分组得到的多个数据分组的逻辑运算结果进行拼接,以得到流水线输入的数据的逻辑运算结果,输出数据的逻辑运算结果。8.根据权利要求5所述的方法,其特征在于,所述通过多条流水线将多条指令的数据输入执行引擎包括:通过多条流水线将多条指令的数据输入执行引擎的数据选择器;所述将各条流水线输入的数据,选择给各条流水线配置的逻辑运算分组包括:通过数据选择器,将各条流水线输入的数据传输给各条流水线配置的逻辑运算分组;所述输出各个逻辑运算分组的逻辑运算结果包括:将逻辑运算分组的逻辑运算结果,输出到对应配置的流水线所对应的结果数据总线上;其中,一条流水线对应配置一条结果数据总线。9.根据权利要求8所述的方法,其特征在于,所述数据选择器包括多个数据选择器,其中一个逻辑运算分组...

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

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

1