执行于处理器的架构程序与执行于处理器执行单元的非架构程序间关于共享资源的沟通机制制造技术

技术编号:15225398 阅读:90 留言:0更新日期:2017-04-27 04:03
多个功能单元用以攫取与译码架构程序的架构指令,此架构指令属于处理器的架构指令集。执行单元包括第一存储器,第二存储器,多个处理单元与缓存器。第一存储器以列配置一装载数据。第二存储器装载非架构程序的非架构指令。多个处理单元用以执行非架构程序指令从第一存储器读取数据,对来自第一存储器的数据执行运算以产生结果,以及将结果写入第一存储器。缓存器装载指示非架构程序执行进度的信息。第一存储器并可由架构程序进行读取与写入。架构程序可利用缓存器内的信息决定对第一存储器写入数据或是读取数据的列地址。

【技术实现步骤摘要】

本专利技术涉及一种处理器,特别涉及一种提升人工神经网络的运算效能与效率的处理器。本申请案主张下列的美国临时申请案的国际优先权。这些优先权案的全文并入本案以供参考。本申请案关联于下列同时提出申请的美国申请案。这些关联申请案的全文并入本案以供参考。
技术介绍
近年来,人工神经网络(artificialneuralnetworks,ANN)重新吸引了人们的注意。这些研究通常被称为深度学习(deeplearning)、计算机学习(computerlearning)等类似术语。通用处理器运算能力的提升也推升了人们在数十年后的现在对于人工神经网络的兴趣。人工神经网络近期的应用包括语言与影像辨识等。对于提升人工神经网络的运算效能与效率的需求似乎正在增加。
技术实现思路
有鉴于此,本专利技术提供一种处理器。此处理器包括多个功能单元与一执行单元。其中,多个功能单元用以攫取与译码一架构程序的架构指令,此架构指令属于处理器的一架构指令集。执行单元包括一第一存储器,一第二存储器,多个处理单元与一缓存器。其中,第一存储器用以装载数据,第一存储器以列配置,各列具有一地址。第二存储器用以装载一非架构程序的非架构指令,此非架构指令属于一个不同于前述架构指令集的非架构指令集。多个处理单元用以执行非架构程序指令,从第一存储器读取数据,对来自第一存储器的数据执行运算以产生结果,以及将结果写入第一存储器。缓存器用以装载指示非架构程序执行进度的信息。其中,第一存储器并可由架构程序进行读取与写入。其中,缓存器内的信息可由架构程序读取而使架构程序能够使用此信息以决定对第一存储器写入数据的列地址或是从第一存储器读取数据的列地址。本专利技术还提供一种方法,包括:利用多个功能单元,攫取与译码一架构程序的架构指令,此架构指令属于一处理器的一架构指令集;此处理器包括一执行单元,执行单元包括一第一存储器,一第二存储器,多个处理单元与一缓存器。其中,第一存储器用以装载数据,第一存储器以列配置,各列具有一地址;第二存储器,用以装载一非架构程序的非架构指令,此非架构指令属于一个不同于前述架构指令集的非架构指令集;缓存器用以装载指示非架构程序执行进度的信息。此方法并包括:利用多个处理单元,执行非架构程序指令从第一存储器读取数据,对来自第一存储器的数据执行运算以产生结果,以及将结果写入第一存储器;以及利用架构程序,读取缓存器内的信息,并依据从缓存器读取的信息,在利用多个处理单元执行非架构程序指令的过程中,对第一存储器写入前述数据的列地址或是从第一存储器读取前述数据的列地址。本专利技术还提供一种编码于至少一非瞬时计算机可使用媒体以供一计算机装置使用的一计算机程序产品。此计算机程序产品包括内含于媒体的计算机可使用程序代码,用以描述一处理器。此计算机可使用程序代码包括第一程序代码与第二程序代码。其中,第一程序代码用以描述多个功能单元,多个功能单元用以攫取与译码一架构程序的架构指令,此架构指令属于处理器的一架构指令集。第二程序代码用以描述一执行单元。此执行单元包括一第一存储器,一第二存储器,多个处理单元与一缓存器。其中,第一存储器用以装载数据,第一存储器以列配置,各列具有一地址。第二存储器用以装载一非架构程序的非架构指令,此非架构指令属于一个不同于前述架构指令集的非架构指令集。多个处理单元用以执行非架构程序指令从第一存储器读取数据,对来自第一存储器的数据执行运算以产生结果,以及将结果写入第一存储器。缓存器用以装载指示非架构程序执行进度的信息。其中,第一存储器并可由架构程序进行读取与写入。其中,缓存器内的信息可由架构程序读取而使架构程序能够使用此信息以决定对第一存储器写入数据的列地址或是从第一存储器读取数据的列地址。本专利技术所采用的具体实施例,将通过以下的实施例及图式作进一步的说明。附图说明图1为显示包含神经网络单元(neuralnetworkunit,NNU)的处理器的方块示意图。图2为显示图1的神经处理单元(neuralprocessingunit,NPU)的方块示意图。图3为方块图,显示利用图1的神经网络单元的N个神经处理单元的N个多任务缓存器,对于由图1的数据随机存取存储器取得的一列数据文字执行如同N个文字的旋转器(rotator)或称循环移位器(circularshifter)的运作。图4为表格,显示一个储存于图1的神经网络单元的程序存储器并由该神经网络单元执行的程序。图5为显示神经网络单元执行图4的程序的时序图。图6A为显示图1的神经网络单元执行图4的程序的方块示意图。图6B为流程图,显示图1的处理器执行架构程序,以利用神经网络单元执行关联于人工神经网络的隐藏层的神经元的典型乘法累加启动函数运算的运作,如同由图4的程序执行的运作。图7为显示图1的神经处理单元的另一实施例的方块示意图。图8为显示图1的神经处理单元的又一实施例的方块示意图。图9为表格,显示一个储存于图1的神经网络单元的程序存储器并由该神经网络单元执行的程序。图10为显示神经网络单元执行图9的程序的时序图。图11为显示图1的神经网络单元的一实施例的方块示意图。在图11的实施例中,一个神经元分成两部分,即启动函数单元部分与算术逻辑单元部分(此部分还包含移位缓存器部分),而各个启动函数单元部分由多个算术逻辑单元部分共享。图12为显示图11的神经网络单元执行图4的程序的时序图。图13为显示图11的神经网络单元执行图4的程序的时序图。图14为方块示意图,显示移动至神经网络(MTNN)架构指令以及其对应于图1的神经网络单元的部分的运作。图15为方块示意图,显示移动至神经网络(MTNN)架构指令以及其对应于图1的神经网络单元的部分的运作。图16为显示图1的数据随机存取存储器的一实施例的方块示意图。图17为显示图1的权重随机存取存储器与缓冲器的一实施例的方块示意图。图18为显示图1的可动态配置的神经处理单元的方块示意图。图19为方块示意图,显示依据图18的实施例,利用图1的神经网络单元的N个神经处理单元的2N个多任务缓存器,对于由图1的数据随机存取存储器取得的一列数据文字执行如同旋转器(rotator)的运作。图20为表格,显示一个储存于图1的神经网络单元的程序存储器并由该神经网络单元执行的程序,而此神经网络单元具有如图18的实施例所示的神经处理单元。图21为显示神经网络单元执行图20的程序的时序图,此神经网络单元具有如图18所示的神经处理单元执行于窄配置。图22为显示图1的神经网络单元的方块示意图,此神经网络单元具有如图18所示的神经处理单元以执行图20的程序。图23为显示图1的可动态配置的神经处理单元的另一实施例的方块示意图。图24为方块示意图,显示由图1的神经网络单元使用以执行卷积(convolution)运算的数据结构的一范例。图25为流程图,显示图1的处理器执行架构程序以利用神经网络单元依据图24的数据阵列执行卷积核的卷积运算。图26A为神经网络单元程序的程序列表,此神经网络单元程序利用图24的卷积核执行数据矩阵的卷积运算并将其写回权重随机存取存储器。图26B为显示图1的神经网络单元的控制缓存器的某些字段的一实施例的方块示意图。图27为方块示意图,显示图1中填入输入数据的权重随机存取存储器的一范例,此输入数据由图1本文档来自技高网...

【技术保护点】
一种处理器,其特征在于,包括:多个功能单元,用以攫取与译码一架构程序的架构指令,该架构指令属于该处理器的一架构指令集;以及一执行单元,包括:一第一存储器,用以装载数据,该第一存储器以列配置,各该列具有一地址;一第二存储器,用以装载一非架构程序的非架构指令,该非架构指令属于一个不同于该架构指令集的非架构指令集;多个处理单元,用以执行该非架构程序指令从该第一存储器读取数据,对来自该第一存储器的该数据执行运算以产生结果,以及将该结果写入该第一存储器;以及一缓存器,用以装载指示该非架构程序执行进度的信息;其中,该第一存储器并可由该架构程序进行读取与写入;其中,该缓存器内的该信息可由该架构程序读取而使该架构程序能够使用该信息以决定对该第一存储器写入数据的该列地址或是从该第一存储器读取数据的该列地址。

【技术特征摘要】
2015.10.08 US 62/239,254;2015.12.02 US 62/262,104;1.一种处理器,其特征在于,包括:多个功能单元,用以攫取与译码一架构程序的架构指令,该架构指令属于该处理器的一架构指令集;以及一执行单元,包括:一第一存储器,用以装载数据,该第一存储器以列配置,各该列具有一地址;一第二存储器,用以装载一非架构程序的非架构指令,该非架构指令属于一个不同于该架构指令集的非架构指令集;多个处理单元,用以执行该非架构程序指令从该第一存储器读取数据,对来自该第一存储器的该数据执行运算以产生结果,以及将该结果写入该第一存储器;以及一缓存器,用以装载指示该非架构程序执行进度的信息;其中,该第一存储器并可由该架构程序进行读取与写入;其中,该缓存器内的该信息可由该架构程序读取而使该架构程序能够使用该信息以决定对该第一存储器写入数据的该列地址或是从该第一存储器读取数据的该列地址。2.根据权利要求1所述的处理器,其特征在于,装载于该缓存器的该信息包括该第一存储器中该非架构程序最近写入的一列地址。3.根据权利要求1所述的处理器,其特征在于,装载于该缓存器的该信息包括该第一存储器中该非架构程序最近读取的一列地址。4.根据权利要求1所述的处理器,其特征在于,该执行单元还包括一第三存储器,用以装载数据,该第三存储器以列配置,各该列具有一地址,该第三存储器可由该多个处理单元与该架构程序进行读取与写入,并且,装载于该缓存器的该信息包括该第三存储器中该非架构程序最近写入的一列地址。5.根据权利要求1所述的处理器,其特征在于,该执行单元还包括一第三存储器,用以装载数据,该第三存储器以列配置,各该列具有一地址,该第三存储器可由该多个处理单元与该架构程序进行读取与写入,并且,装载于该缓存器的该信息包括该第三存储器中该非架构程序最近读取的一列地址。6.根据权利要求1所述的处理器,其特征在于,还包括:一程序计数器,指定当前攫取以供该多个执行单元执行使用的该非架构程序的一非架构指令所在的该第二存储器的一地址;其中,装载于该缓存器的该信息包括该程序计数器的一数值。7.根据权利要求1所述的处理器,其特征在于,还包括:一循环计数器,其数值指示该非架构程序的一循环还会执行的次数;其中,该缓存器装载的该信息包括该循环计数器的该数值。8.根据权利要求1所述的处理器,其特征在于,该非架构指令集包括一非架构指令,对从该第一存储器读取的该数据执行一指定次数的运算;其中,该执行单元还包括一迭代次数计数器,其数值指示该非架构指令指定的该运算还会执行的次数,并且,该缓存器装载的该信息包括该迭代次数计数器的该数值。9.根据权利要求1所述的处理器,其特征在于,还包括:多个架构缓存器,可由该架构指令集的架构指令进行存取;其中,该缓存器内装载的该信息可由该架构程序读入该些架构缓存器。10.根据权利要求1所述的处理器,其特征在于,还包括:多个架构缓存器,可由该架构指令集的架构指令进行存取;其中,该处理器用以因应该架构指令集的一架构指令的执行,将数据于该些架构缓存器与该第一存储器间进行传递。11.根据权利要求1所述的处理器,其特征在于,该第二存储器内可透过该架构指令集的一架构指令的执行写入该非架构指令。12.根据权利要求1所述的处理器,其特征在于,还包括:一定序器,从该第二存储器攫取该非架构程序指令并将其译码以产生控制文字以控制该多个处理单元执行该非架构程序指令。13.根据权利要求12所述的处理器,其特征在于,该定序器更新该缓存器内的该信息。14.根据权利要求1所述的处理器,其特征在于,该多个处理单元用以对从该第一存储器接收的该数据执行算术运算以累加数值并对该数值执行启动函数以产生写入该第一存储器的该结果。15.根据权利要求1所述的处理器,其特征在于,该多个处理...

【专利技术属性】
技术研发人员:G·葛兰·亨利泰瑞·派克斯
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海;31

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

1