流水线控制方法、运算模块及相关产品技术

技术编号:31820041 阅读:30 留言:0更新日期:2022-01-12 12:09
本申请公开了一种流水线控制方法、运算模块及相关产品,应用于组合处理装置,该组合处理装置包括电子设备、接口装置、其他处理装置和存储装置,电子设备中可以包括一个或多个计算装置,该计算装置可以配置用于执行流水线控制方法。采用本申请实施例可以防止在流水线的输出端导致输出结果的乱序。输出端导致输出结果的乱序。输出端导致输出结果的乱序。

【技术实现步骤摘要】
流水线控制方法、运算模块及相关产品


[0001]本申请涉及数据处理领域,尤其涉及一种流水线控制方法、运算模块及相关产品。

技术介绍

[0002]传统的处理器设计中使用单一流水线在同一个运算模块中实现多种运算功能,该流水线一般只有1个入口和1个出口,使用同一条运算通路,并且流水线中各个流水级之间通过握手协议传递数据和控制信号,但是,这样的设计会导致不同种类的运算指令都要经过所有的流水级,即使在某些流水级中未进行任何操作,而只是原样传递数据和控制信息,也需要经过所有的流水级,导致计算延迟,降低了计算效率。

技术实现思路

[0003]本申请实施例提供一种流水线控制方法、运算模块及相关产品,能够基于多条流水线多个出口入口的设计,提升计算效率,且能够防止在流水线的输出端导致输出结果的乱序。
[0004]第一方面,本申请实施例还提供了一种运算模块,所述运算模块包括K条流水线以及P个流水线入口、Q个流水线出口以及数拍控制器,所述K、所述P、所述Q均为大于或等于2的整数;所述数拍控制器中保存所述K条流水线中正在执行的指令中所需拍数最长的第一指令的剩余拍数;
[0005]所述运算模块用于:
[0006]获取所述第一指令的剩余拍数;
[0007]获取待发射的第二指令的执行拍数;
[0008]在所述第二指令的执行拍数小于所述第一指令的剩余拍数时,允许所述第二指令进入相应的流水线。
[0009]第二方面,本申请实施例还提供了一种流水线控制方法,应用于运算模块,所述运算模块包括K条流水线以及P个流水线入口、Q个流水线出口以及数拍控制器,所述K、所述P、所述Q均为大于或等于2的整数;所述数拍控制器中保存所述K条流水线中正在执行的指令中所需拍数最长的第一指令的剩余拍数;所述方法包括:
[0010]获取所述第一指令的剩余拍数;
[0011]获取待发射的第二指令的执行拍数;
[0012]在所述第二指令的执行拍数小于所述第一指令的剩余拍数时,允许所述第二指令进入相应的流水线。
[0013]第三方面,本申请实施例还提供了一种神经网络芯片,所述神经网络芯片包括如第一方面中任一方面所述的运算模块,或者,用于执行如第二方面所述的方法。
[0014]第四方面,本申请实施例还提供了一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如第三方面所述的神经网络芯片;
[0015]其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接口装置分别
连接;
[0016]所述存储器件,用于存储数据;
[0017]所述接口装置,用于实现所述芯片与外部设备之间的数据传输;
[0018]所述控制器件,用于对所述芯片的状态进行监控。
[0019]第五方面,本申请实施例还提供了一种电子设备,所述电子设备包括如第一方面任一项所述的运算模块,或者,所述电子设备用于执行如第二方面所述的方法,或者,所述电子设备包括如第三方面所述的神经网络芯片,或者,所述电子设备包括如第四方面所述的板卡。
[0020]第六方面,本申请实施例还提供了一种流水线控制装置,应用于运算模块,所述运算模块包括K条流水线以及P个流水线入口、Q个流水线出口以及数拍控制器,所述K、所述P、所述Q均为大于或等于2的整数;所述数拍控制器中保存所述K条流水线中正在执行的指令中所需拍数最长的第一指令的剩余拍数;所述装置包括:获取单元和执行单元,其中,
[0021]所述获取单元,用于获取所述第一指令的剩余拍数;
[0022]所述获取单元,还用于获取待发射的第二指令的执行拍数;
[0023]所述执行单元,用于在所述第二指令的执行拍数小于所述第一指令的剩余拍数时,允许所述第二指令进入相应的流水线。
[0024]第七方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第二方面中所描述的部分或全部步骤。
[0025]第八方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第二方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
[0026]采用本申请实施例,具备如下有益效果:
[0027]可以看出,本申请实施例所描述的流水线控制方法、运算模块及相关产品,应用于运算模块,运算模块包括K条流水线以及P个流水线入口、Q个流水线出口以及数拍控制器,K、P、Q均为大于或等于2的整数;数拍控制器中保存K条流水线中正在执行的指令中所需拍数最长的第一指令的剩余拍数,运算模块获取第一指令的剩余拍数,获取待发射的第二指令的执行拍数,在执行拍数小于剩余拍数时,允许第二指令进入相应的流水线,一方面,能够基于多条流水线多个出口入口的设计,提升计算效率,另一方面能够防止在流水线的输出端导致输出结果的乱序。
[0028]本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
[0029]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0030]图1A为本申请实施例提供的一种运算模块的结构示意图;
[0031]图1B为本申请实施例提供的一种流水线的演示示意图;
[0032]图2为本申请实施例提供的一种流水线控制方法的流程示意图;
[0033]图3为本申请实施例提供的一种电子设备的结构示意图;
[0034]图4是本申请实施例提供的一种流水线控制装置的功能单元组成框图;
[0035]图5是本申请实施例提供的一种组合处理装置的功能单元组成框图;
[0036]图6是本申请实施例提供的一种板卡的功能单元组成框图。
具体实施方式
[0037]以下分别进行详细说明。
[0038]本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0039]在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种运算模块,其特征在于,所述运算模块包括K条流水线以及P个流水线入口、Q个流水线出口以及数拍控制器,所述K、所述P、所述Q均为大于或等于2的整数;所述数拍控制器中保存所述K条流水线中正在执行的指令中所需拍数最长的第一指令的剩余拍数;所述运算模块用于:获取所述第一指令的剩余拍数;获取待发射的第二指令的执行拍数;在所述第二指令的执行拍数小于所述第一指令的剩余拍数时,允许所述第二指令进入相应的流水线。2.根据权利要求1所述的运算模块,其特征在于,所述运算模块还具体用于:在所述第二指令的执行拍数大于或等于所述第一指令的剩余拍数时,等待所述第一指令执行完成,并在所述第一指令执行完成后,允许所述第二指令进入相应的流水线,更新所述数拍控制器中所述第一指令的剩余拍数。3.根据权利要求1或2所述的运算模块,其特征在于,所述流水线包括多个流水级,每一流水级对应至少一个运算电路,所述数拍控制器中还保存有资源表格,所述运算模块还用于:依据所述资源表格更新所述第一指令的剩余拍数。4.根据权利要求3所述的运算模块,其特征在于,所述运算模块还用于:依据所资源表格和所述第二指令需占用的运算电路,确定是否允许所述第二指令进入相应的流水线。5.根据权利要求3或4所述的运算模块,其特征在于,所述资源表格还用于记录正在执行的每一指令的执行时长,所述运算模块还用于通过所述数拍控制器获取所述执行时长,并依据所述执行时长确定相应的运算电路的剩余占用时长。6.根据权利要求1-5任一项所述的运算模块,其特征在于,所述K条流水线中至少两条流水线支持SIMD硬件指令,该至少两条流水线中每一流水线均包括多个运算电路,该运算电路为以下至少...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:

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

1