译码器和原子指令解析方法技术

技术编号:24459015 阅读:25 留言:0更新日期:2020-06-10 16:25
本申请涉及一种译码器和原子指令解析方法,包括:指令解析单元、多个选择单元以及配置单元;所述指令解析单元,用于对人工神经网络运算关联的计算指令的类型进行解析;所述多个选择单元,用于对多个源操作数的类型进行选择并输出;所述配置单元,用于对所述多个源操作数的数目进行配置;所述配置单元,还用于输出不同位宽的源操作数;其中,所述多个源操作数的类型包括地址和立即数。采用本译码器和原子指令解析方法能够根据不同的原子指令功能,对其所需的源操作数进行配置。

Decoder and atomic instruction parsing

【技术实现步骤摘要】
译码器和原子指令解析方法
本申请涉及信息处理
,特别是涉及一种译码器和原子指令解析方法。
技术介绍
随着信息技术的不断发展和人们日益增长的需求,人们对信息及时性的要求越来越高。对于高速I/O设备以及神经网络处理器中批量数据处理的情况,通常需要增加原子操作功能。传统的多核处理器中,通过指令解析单元对现有的计算指令进行解析,且仅能实现单一源操作数的计算指令。
技术实现思路
基于此,有必要针对上述技术问题,提供一种能够根据不同的原子指令功能,对其所需的源操作数进行配置的译码器和原子指令解析方法。第一方面,提供一种译码器,包括:指令解析单元、多个选择单元以及配置单元;所述指令解析单元,用于对人工神经网络运算关联的计算指令的类型进行解析;所述多个选择单元,用于对多个源操作数的类型进行选择并输出;所述配置单元,用于对所述多个源操作数的数目进行配置;所述配置单元,还用于输出不同位宽的源操作数;其中,所述多个源操作数的类型包括地址和立即数。第二方面,本申请实施例提供了一种神经网络运算装置,该神经网络运算装置包括一个或者多个上述数据传输装置。该神经网络运算装置用于从其他处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置。第三方面,本申请实施例提供了一种组合处理装置,该组合处理装置包括如第二方面所述的机器学习处理装置、通用互联接口,和其他处理装置。该神经网络运算装置与上述其他处理装置进行交互,共同完成用户指定的操作。该组合处理装置还可以包括存储装置,该存储装置分别与所述神经网络运算装置和所述其他处理装置连接,用于保存所述神经网络运算装置和所述其他处理装置的数据。第四方面,本申请实施例提供了一种神经网络芯片,该神经网络芯片包括上述第一方面所述的译码器、上述第二方面所述的神经网络运算装置或者上述第三方面所述的组合处理装置。第五方面,本申请实施例提供了一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述第四方面所述的神经网络芯片;第六方面,本申请实施例提供了一种板卡,该板卡包括上述第五方面所述的神经网络芯片封装结构。第七方面,本申请实施例提供了一种电子装置,该电子装置包括上述第五方面所述的神经网络芯片或者上述第六方面所述的板卡。第八方面,本申请实施例还提供了一种原子指令解析方法,包括:对原子指令进行解析,得到多个原子运算指令;根据所述多个原子运算指令,获取第一源操作数;通过选择单元对所述第一源操作数的类型进行选择,并将选择结果发送至配置单元;所述配置单元根据所述选择结果对所述第一源操作数的数目进行配置,得到第二源操作数;将所述第二源操作数发送至运算单元。上述译码器和原子指令解析方法,通过多个选择单元对多个源操作数的类型进行选择并输出,通过配置单元对多个源操作数的数目进行配置,并输出不同位宽的源操作数,能够针对不同的原子指令进行功能解析,并实现多个源操作数的原子访存指令和原子计算指令。附图说明图1为一个实施例中译码器1000的结构框架图;图2为一个实施例中译码器1000的工作流程示意图;图3为一个实施例中译码器2000的结构框架图;图4为一个实施例中组合处理装置的结构示意图;图5为另一个实施例中组合处理装置的结构示意图;图6为一个实施例中板卡的结构示意图;图7为一个实施例中原子指令解析方法的流程示意图;图8为另一个实施例中原子指令解析方法的流程示意图;图9为另一个实施例中原子指令解析方法的流程示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选的还包括没有列出的步骤或单元,或可选的还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在一个实施例中,如图1所示,提供了一种译码器1000,该译码器包括:指令解析单元1001、多个选择单元1002以及配置单元1003。指令解析单元1001,用于对人工神经网络运算关联的计算指令的类型进行解析;多个选择单元1002连接于指令解析单元1001和配置单元1003之间,用于对多个源操作数的类型进行选择并输出;配置单元1003,用于对多个源操作数的数目进行配置,以及还用于输出不同位宽的源操作数;其中,多个源操作数的类型包括地址和立即数。作为一种可选的实施方式,指令解析单元1001具体用于解析人工神经网络运算关联的计算指令是否是原子类指令。指令解析单元1001通过计算指令的Name域,判断该计算指令是否是原子类指令,例如:Name=15表示指令类型为原子类指令。其中,多个选择单元1002根据计算指令的功能,获取执行该计算指令所需的多个源操作数,并通过该计算指令的源操作数类型(Src1vec或Src2vec)域,选择执行该计算指令所需的源操作数类型。作为一种可选的实施方式,选择单元1002的数目与源操作数的数目一一对应,例如:三个源操作数需要设置三个选择单元1002,分别对每一源操作数的类型进行选择。其中,不同数目的源操作数进行原子操作时,配置单元1003通过该计算指令的SrcOp域完成该计算指令的源操作数数目配置,并输出不同位宽的源操作数,例如:SrcOp={Src1,Src2},表示该计算指令包括两个源操作数,分别为Src1和Src2。可选的,源操作数的数目可以为一个、两个或三个。上述译码器中,通过多个选择单元对多个源操作数的类型进行选择并输出,通过配置单元对多个源操作数的数目进行配置,从而输出不同位宽的源操作数。该译码器和原子指令解析方法能够根据不同的原子指令功能,从编程角度实现不同数目源操作数的原子操作。在其中一个实施例中,如图1所示,例如:源操作数的数目为两个,分别为Src1和Src2,不同数目的源操作数进行原子操作时,其中一个选择单元1002对Src1的类型进行选择,通过该计算指令的Src1vec域判断所选择的Src1为地址还是立即数,例如:Src1vec=1表本文档来自技高网...

【技术保护点】
1.一种译码器,其特征在于,所述译码器包括:指令解析单元、多个选择单元以及配置单元;/n所述指令解析单元,用于对人工神经网络运算关联的计算指令的类型进行解析;/n所述多个选择单元,用于对多个源操作数的类型进行选择并输出;/n所述配置单元,用于对所述多个源操作数的数目进行配置;/n所述配置单元,还用于输出不同位宽的源操作数;/n其中,所述多个源操作数的类型包括地址和立即数。/n

【技术特征摘要】
1.一种译码器,其特征在于,所述译码器包括:指令解析单元、多个选择单元以及配置单元;
所述指令解析单元,用于对人工神经网络运算关联的计算指令的类型进行解析;
所述多个选择单元,用于对多个源操作数的类型进行选择并输出;
所述配置单元,用于对所述多个源操作数的数目进行配置;
所述配置单元,还用于输出不同位宽的源操作数;
其中,所述多个源操作数的类型包括地址和立即数。


2.根据权利要求1所述的译码器,其特征在于,所述指令解析单元,还用于解析所述人工神经网络运算关联的计算指令是否是原子类指令。


3.根据权利要求1所述的译码器,其特征在于,所述多个选择单元中的每一选择单元,用于对所述多个源操作数中每一源操作数的类型进行选择。


4.根据权利要求3所述的译码器,其特征在于,所述选择单元根据所述计算指令中的源操作数类型,对所述源操作数的类型进行选择并输出。


5.根据权利要求1所述的译码器,其特征在于,所述译码器还包括:指令存储单元以及存储队列单元;
所述指令存储单元,用于存储所述人工神经网络运算关联的计算指令;
所述存储队列单元,用于存储指令队列,所述指令队列包括:按所述指令队列的前后顺序待执行的多个运算指令或计算指令。


6.根据权利要求5所述的译码器,其特征在于,所述译码器还包括:依赖关系处理单元;
所述依赖关系处理单元,用于确定第一运算指令与所述第一运算指令之前的第零运算指令是否存在关联关系,如所述第一运算指令与所述第零运算指令存在关联关系,将所述第一运算指令缓存在所述指令存储单元内,在所述第零运算指令执行完毕后,从所述指令存储单元提取所述第一运算指令传输至运算单元;
所述确定该第一运算指令与第一运算指令之前的第零运算指令是否存在关联关系包括:
依据所述第一运算指令提取所述第一运算指令中所需数据的第一存储地址区间,依据所述第零运算指令提取所述第零运算指令中所需数据的第零存储地址区间,如所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,确定所述第一运算指令与所述第零运算指令具有关联关系,如所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,确定所述第一运算指令与所述第零运算指令不具有关联关系。


7.一种机器学习芯片,其特征在于,所述机器学习芯片包括如权利要求1-5中任意一项所述的译码器。


8.一种神经网络运算装置,其特征在于,所述神经网络运算装置包括一个或多个如权利要求1-6中任意一项所述的译码器,所述神经网络运算装置用于从处理装置中获取待运算输入数据和控制信息,并执行机器学习运算,将执行结果通过输入/输出接口传递给所述处理装置。


9.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求8所述的神经网络运算装置、处理装置以及通用互联接口;
所述神经网络运算装置与所述处理装置进行交互,共同完成用户的计算操作。


10.根据权利要求9所述的组合处理装置,其特征在于,还包括...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:上海;31

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

1