System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 指令运行方法、可读存储介质及电子设备技术_技高网

指令运行方法、可读存储介质及电子设备技术

技术编号:40386980 阅读:7 留言:0更新日期:2024-02-20 22:20
本申请涉及人工智能技术领域,特别涉及一种指令运行方法、可读存储介质及电子设备。该指令运行方法应用于电子设备中,在电子设备的处理器在基于流水线机制执行第一指令的运算时,在流水线中的执行流水线中的各个计算阶段执行第一指令解码后的各个微操作的信息满足输入新指令的微操作的条件时,向执行流水线输入下一道与第一指令的类型相同的第二指令,从而并行执行第一指令和第二指令的运算,提高流水线执行指令的效率以及流水线的吞吐量。

【技术实现步骤摘要】

本申请涉及人工智能,特别涉及一种指令运行方法、可读存储介质及电子设备


技术介绍

1、人工智能技术(artificial intelligence,ai)领域在人们生产生活中应用越来越广泛。例如,可以通过神经网络模型对文字、视频、音频、图像等数据进行处理,从而获得所需要的结果。

2、目前,一些神经网络模型的计算过程中,通过流水线技术(pipeline)可以提高计算指令的并行能力,进而提高处理器的处理效率。例如,电子设备可以将指令的执行过程分成多个连续的流水阶段,每个流水阶段通过相应的单元来实现各个流水阶段的功能。例如,电子设备可以将指令分为取指、译码、执行和回写4个流水阶段。在取指阶段,处理器从存储器中获取指令;在解码阶段,处理器对指令进行解码处理得到指令的操作码和操作数的地址;在执行阶段,处理器基于操作数的地址从寄存器中获取操作数,并基于操作码对操作数进行算术或者逻辑处理,得到执行结果;在写回阶段,处理器将执行结果写入寄存器。

3、在执行阶段,用于实现执行阶段的单元(例如执行单元)可以执行指令对应的多个依次运行的微操作(micro-operation,uop)来完成指令对应的运算。但是,如果执行单元当前执行的指令的微操作中,执行顺序在后的微操作的输入数据包括执行顺序在前的微操作的计算结果,执行单元在该指令的全部微操作执行完成前,就不会执行其他指令的微操作,导致执行单元中的计算资源浪费,影响处理器执行指令的效率。


技术实现思路

1、有鉴于此,本申请提供一种指令运行方法、可读存储介质及电子设备。

2、第一方面,本申请提供一种指令运行方法,应用于电子设备,该方法包括:检测到第一指令,第一指令包括依次执行的多个微操作,其中,多个微操作包括至少一个第一类微操作和执行顺序在第一类微操作后的至少一个第二类微操作,其中,第一类微操作的输入数据都为第一指令的输入数据,第二类微操作的至少一个输入数据为多个微操作中执行顺序在各自的执行顺序前的微操作的执行结果;基于n个计算阶段的执行流水线执行多个微操作,其中,n>2,并且在执行完多个微操作前的每个时钟周期内:对应于当前时钟周期内各计算阶段执行的微操作的信息满足输入新指令的微操作条件,向执行流水线的第1个计算阶段输入第二指令的微操作,其中,第二指令为第一指令的下一个指令,并且第二指令与第一指令的类型相同。

3、示例性地,在本申请的一些实施例中,基于流水线机制运行第一指令。流水线例如可以包括取指、译码、执行(在本申请的一些实施例中,执行阶段的执行主体可以称为执行流水线或者执行单元)和回写等四个流水阶段。在取指阶段,处理器从存储器中获取第一指令;在解码阶段,处理器对第一指令进行解码处理得到第一指令的微操作;在执行阶段,处理器执行第一指令的微操作(即对第一指令的微操作按顺序依次进行算术或者逻辑处理,得到执行结果);在写回阶段,处理器将执行结果写入寄存器。示例性地,在本申请的一些实施例中,执行阶段包括n个计算阶段,每个计算阶段执行一次微操作的运算需要一个时钟周期。其中,n>2,例如,在一些实施例中,n=5。

4、示例性地,第一指令的微操作包括第一类微操作和第二类微操作,其中,第一类微操作的执行顺序在第二类微操作的执行顺序之前。并且第一类微操作的输入数据为第一指令的输入数据,第二类微操作的输入数据包括第一类微操作的执行结果或者执行顺序在各自的执行顺序之前的第二类微操作的执行结果。

5、在执行完第一指令的所有微操作之前的每个时钟周期,对应当前时钟周期的各个计算阶段执行微操作的信息满足输入新指令的微操作条件时,向执行流水线的第1个计算阶段输入第二指令。第二指令为第一指令的下一个指令,并且,第二指令与第一指令的类型相同。例如,第二指令与解码后的微操作的个数、第一类微操作的数量,第二类微操作的数量、各个微操作的执行顺序以及各个微操作的运算过程均与第一指令相同。如此,执行流水线可以并行执行第一指令和第二指令,从而提高执行流水线的执行效率,提高流水线的吞吐量。

6、在上述第一方面的一种可能实现中,上述执行流水线的第1个计算阶段用于输入指令的微操作、输入指令对应的输入数据以及确定当前时钟周期输入到第1个计算阶段的微操作;执行流水线的第2个计算阶段至第n个计算阶段用于执行微操作;各计算阶段执行一次微操作的时间为一个时钟周期。

7、示例性地,在本申请的一些实施例中,执行流水线的第1个计算阶段用于输入指令解码后的微操作以及指令的输入数据。并且,在每个时钟周期,执行流水线的第1个计算阶段需要确定当前时钟周期需要执行的微操作。执行流水线的第2个计算阶段至第n个计算阶段用于执行微操作,例如,对微操作进行算术或者逻辑处理等。并且,各个计算阶段执行一次微操作的时间为一个时钟周期。

8、在上述第一方面的一种可能实现中,上述输入新指令的微操作条件,包括:对应第一指令的第一类微操作均输入到过n个计算阶段的第2个计算阶段;对应第n个计算阶段未执行微操作或者第n个计算阶段运行的微操作为输出对应指令执行结果的微操作;对应n>3,对于第3个计算阶段至第n-1个计算阶段中的任意一个计算阶段,当前所执行的微操作剩余的计算阶段的数量大于或等于第一指令中的第一类微操作的数量,或者当前执行的微操作为输出对应指令的执行结果的微操作。

9、示例性地,在本申请的一些实施例中,由于第一指令的第一类微操作的输入数据为第一指令的输入数据,因此,执行流水线可以直接执行第一类微操作。如果第一类微操作在一个时钟周期内无法全部执行(例如第一指令的第一类微操作大于1个),则执行流水线需要在连续的时钟周期内执行第一类微操作。如果在当前时钟周期第1个计算阶段确定执行第一类微操作。在下一个之中周期,第2个计算计阶段开始执行第一类微操作,并且第2个计算阶段执行的微操作为第一指令的最后一个微操作(即第一指令的所有的第一类微操作都输入到过第2个计算阶段),则第2个计算阶段可以确定执行流水线满足输入新指令的微操作条件。

10、对于第3个计算阶段至第n-1个计算阶段中的任意一个计算阶段,如果当前执行的微操作是输出对应指令结果的微操作,则表示当前的微操作的执行结果不会再作为输入数据输入到执行流水线中,因此不会影响新指令的输入,则对应计算阶段可以确定满足输入新指令的微操作条件。在另一些实施例中,对应计算阶段当前执行的微操作的剩余计算阶段的数量小于第一类微操作的数量,则表示,当前微操作还需要执行的时钟周期大于输入新指令的第一类微操作的时钟周期。在当前时钟周期输入新的指令不会影响当前微操作的执行结果作为输入数据再次输入到执行流水线中。也可以确定对应的计算阶段满足输入新指令的微操作条件。

11、对于第n个计算阶段,如果当前执行的微操作是输出对应指令结果的微操作,则表示当前的微操作的执行结果不会再作为输入数据输入到执行流水线中,因此不会影响新指令的输入,则第n个计算阶段可以确定满足输入新指令的微操作条件。

12、应理解,在所有计算阶段均满足本文档来自技高网...

【技术保护点】

1.一种指令运行方法,应用于电子设备,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述执行流水线的第1个计算阶段用于输入指令的微操作、输入指令对应的输入数据以及确定当前时钟周期输入到所述第1个计算阶段的微操作;

3.根据权利要求2所述的方法,其特征在于,所述输入新指令的微操作条件,包括:

4.根据权利要求3所述的方法,其特征在于,所述输入新指令的微操作条件,包括:所述第1个计算阶段未接收控制信号,其中,所述控制信号包括以下控制信号中的任意一种:

5.根据权利要求1至4中任一项所述的方法,其特征在于,所述第一指令的类型为q型BFDOT指令,所述q型BFDOT指令包括依次执行的第一乘法计算的微操作、第二乘法计算的微操作、第一加法计算的微操作、第二加法计算的微操作、第三加法计算的微操作、第四加法计算的微操作,其中,

6.根据权利要求5所述的方法,其特征在于,N=5。

7.根据权利要求1至4中任一项所述的方法,其特征在于,所述第一指令的类型为非q型BFDOT指令,所述非q型BFDOT指令包括第一乘法计算的微操作、第一加法计算的微操作和第二加法计算的微操作,其中,

8.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:

9.一种电子设备,其特征在于,包括:存储器,用于存储指令;

10.一种计算机可读存储介质,其特征在于,所述可读存储介质上存储有指令,所述指令在计算机上执行时,使所述计算机执行权利要求1至8中任一项所述方法。

...

【技术特征摘要】

1.一种指令运行方法,应用于电子设备,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述执行流水线的第1个计算阶段用于输入指令的微操作、输入指令对应的输入数据以及确定当前时钟周期输入到所述第1个计算阶段的微操作;

3.根据权利要求2所述的方法,其特征在于,所述输入新指令的微操作条件,包括:

4.根据权利要求3所述的方法,其特征在于,所述输入新指令的微操作条件,包括:所述第1个计算阶段未接收控制信号,其中,所述控制信号包括以下控制信号中的任意一种:

5.根据权利要求1至4中任一项所述的方法,其特征在于,所述第一指令的类型为q型bfdot指令,所述q型bfdot指令包括依次执行的第一乘法计算的微操作、第二乘法计算的...

【专利技术属性】
技术研发人员:王胜仁韩康康蔡亮包恒
申请(专利权)人:安谋科技中国有限公司
类型:发明
国别省市:

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

1