利用处理器架构指令加载架构缓存器文件的微运算的执行单元的直接执行制造技术

技术编号:14690953 阅读:92 留言:0更新日期:2017-02-23 13:33
一种处理器,包括一架构缓存器文件与一执行单元。处理器的一架构指令集的架构指令可将微运算加载架构缓存器文件。执行单元用以执行指令。此指令为架构指令或转译出的微指令。执行单元包括一译码器,一模式指针,一个多层级管线与一多工器多工器。其中,译码器将指令译码为微运算。模式指针在第一与第二模式中指定其一。微运算提供至多层级管线,以控制管线中多个层级的电路。当模式指针指示第一模式,多工器多工器选择一个接收自译码器的微运算提供至管线。当模式指针指示第二模式,多工器多工器选择一个接收自架构缓存器文件的微运算提供至管线。

【技术实现步骤摘要】

本专利技术涉及一种处理器,特别涉及一种提升人工神经网络的运算效能与效率的处理器。本申请案主张下列的美国临时申请案的国际优先权。这些优先权案的全文并入本案以供参考。本申请案关联于下列同时提出申请的美国申请案。这些关联申请案的全文并入本案以供参考。
技术介绍
近年来,人工神经网络(artificialneuralnetworks,ANN)重新吸引了人们的注意。这些研究通常被称为深度学习(deeplearning)、计算机学习(computerlearning)等类似术语。通用处理器运算能力的提升也推升了人们在数十年后的现在对于人工神经网络的兴趣。人工神经网络近期的应用包括语言与影像辨识等。对于提升人工神经网络的运算效能与效率的需求似乎正在增加。
技术实现思路
有鉴于此,本专利技术提供一种处理器。此处理器包括一架构缓存器文件与一执行单元。处理器的一架构指令集的架构指令可用以将微运算加载架构缓存器文件。执行单元用以执行指令。此指令为架构指令或架构指令转译出的微指令。执行单元包括一译码器,一模式指针,一个多层级(stage)的管线与一多工器。其中,译码器用以将指令译码为微运算。模式指针在第一与第二模式中指定其一。微运算提供至多层级管线,以控制管线中多个层级的电路。当模式指针指示第一模式,多工器选择一个接收自译码器的微运算提供至管线。当模式指针指示第二模式,多工器选择一个接收自架构缓存器文件的微运算提供至管线。本专利技术还提供一种运作一处理器的方法。此方法包括:利用处理器的一架构指令集的架构指令,将微运算加载架构缓存器文件。利用一执行单元执行指令,此指令为架构指令或架构指令转译出的微指令,执行指令的步骤包括:将指令译码为微运算;确认一模式指针指定第一模式或第二模式;当模式指针指示第一模式时,选择一个接收自码器的微运算提供至执行单元的一个多层级(stage)管线,以控制管线的多个层级的电路;以及当模式指针指示第二模式,选择一个接收自架构缓存器文件的微运算提供至管线,以控制管线的多个层级的电路。本专利技术还提供一种编码于至少一非瞬时计算机可使用媒体以供一计算机装置使用的一计算机程序产品。此计算机程序产品包括内含于该媒体的计算机可使用程序代码,用以描述一处理器。此计算机可使用程序代码包括第一程序代码与第二程序代码。第一程序代码用以描述一架构缓存器文件,此架构缓存器文件可利用处理器的一架构指令集的架构指令加载微运算。第二程序代码用以描述一执行单元,执行单元用以执行指令,此指令为架构指令或架构指令转译出的微指令。执行单元包括一译码器,一模式指针,一多层级的管线与一多工器。其中,译码器用以将指令译码为微运算。模式指针在第一与第二模式中指定其一。微运算提供至多层级管线,以控制管线的多个层级的电路。当模式指针指示第一模式时,多工器选择一个接收自译码器的微运算提供至管线。当模式指针指示第二模式时,多工器选择一个接收自架构缓存器文件的微运算提供至管线。本专利技术所采用的具体实施例,将通过以下的实施例及图式作进一步的说明。附图说明图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的神经网络单元执行共源运算(poolingoperation)。图28为神经网络单元程序的程序列表,此神经网络单元程序执行图27的输入数据矩阵的共源运算并将其写回权重随机存取存储器。图29A为显示图1的控制缓存器的一实施例的方块示意图。图29B为显示图1的控制缓存器的另一实施例的方块示意图。图29C为显示以两个部分储存图29A的倒数(reciprocal)的一实施例的方块示意图。图30为显示图2的启动函数单元(AFU)的一实施例的方块示意图。图31为显示图30的启动函数单元的运作的一范例。图32为显示图30的启动函数单元的运作的第二个范例。图33为显示图30的启动函数单元的运作的第三个范例。图34为显示图1的处理器以及神经网本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201610864607.html" title="利用处理器架构指令加载架构缓存器文件的微运算的执行单元的直接执行原文来自X技术">利用处理器架构指令加载架构缓存器文件的微运算的执行单元的直接执行</a>

【技术保护点】
一种处理器,其特征在于,包括:一架构缓存器文件,可利用该处理器的一架构指令集的架构指令将微运算加载该架构缓存器文件;一执行单元,用以执行指令,该指令为架构指令或该架构指令转译出的微指令,该执行单元包括:一译码器,将该指令译码为微运算;一模式指针,在第一与第二模式中指定其一;一个多层级(stage)的管线,该微运算提供至该多层级管线,以控制该管线的该些层级的电路;以及一多工器多工器;当该模式指针指示该第一模式,该多工器多工器选择一个接收自该译码器的该微运算提供至该管线;当该模式指针指示该第二模式,该多工器多工器选择一个接收自该架构缓存器文件的该微运算提供至该管线。

【技术特征摘要】
2015.10.08 US 62/239,254;2015.12.02 US 62/262,104;1.一种处理器,其特征在于,包括:一架构缓存器文件,可利用该处理器的一架构指令集的架构指令将微运算加载该架构缓存器文件;一执行单元,用以执行指令,该指令为架构指令或该架构指令转译出的微指令,该执行单元包括:一译码器,将该指令译码为微运算;一模式指针,在第一与第二模式中指定其一;一个多层级(stage)的管线,该微运算提供至该多层级管线,以控制该管线的该些层级的电路;以及一多工器多工器;当该模式指针指示该第一模式,该多工器多工器选择一个接收自该译码器的该微运算提供至该管线;当该模式指针指示该第二模式,该多工器多工器选择一个接收自该架构缓存器文件的该微运算提供至该管线。2.根据权利要求1所述的处理器,其特征在于,该模式指针在一个由该第一指针,该第二指针与一第三指针的群组中选择其一,该执行单元还包括:一程序存储器;以及一定序器,该定序器从该程序存储器攫取指令并译码该被攫取指令以产生微运算;当该模式指针指示该第三模式,该多工器选择一个接收自该定序器的该微运算提供至该管线。3.根据权利要求2所述的处理器,其特征在于,该译码器译码该指令以产生该模式指针,当该指令的其中之一指定开始执行该程序存储器内该指令的一程序,该译码器产生该模式指针以指示该第三模式,并且,当该指令的其中之一指定停止执行该程序存储器内该指令的一程序,该译码器产生该模式指针以指示该第一模式或该第二模式。4.根据权利要求3所述的处理器,其特征在于,当该指令的其中之一指定直接执行来自该架构缓存器文件的一微运算,该译码器产生该模式指针以指示该第二模式,否则,该译码器产生该模式指针以指示该第一模式。5.根据权利要求1所述的处理器,其特征在于,该执行单元执行的该指令是该处理器中由该处理器的一指令转译器将架构指令转译出的一微指令集的微指令。6.根据权利要求1所述的处理器,其特征在于,该译码器译码该指令以产生该模式指针。7.根据权利要求6所述的处理器,其特征在于,当该指令的其中之一指定一第一函数(function),该译码器产生该第一模式,当该指令的其中之一指定一第二函数,该译码器产生该第二模式。8.根据权利要求7所述的处理器,其特征在于,该处理器为一兼容于x86指令集架构的处理器。9.根据权利要求8所述的处理器,其特征在于,该架构缓存器文件包括至少宽度至少为128位的x86指令集架构通用缓存器。10.根据权利要求1所述的处理器,其特征在于,该执行单元包括一神经网络单元。11.根据权利要求10所述的处理器,其特征在于,该神经网络单元包括一个或多个存储器以储存操作数;并且,该微运算包括一个或多个字段以指定一个或多个地址提供至该一个或多个存储器。12.根据权利要求10所述的处理器,其特征在于,该神经网络单元包括一程序存储器,以储存可由该神经网络单元的算术单元执行的指令;该可由该算术单元执行的指令不同于由该执行单元执行的该指令;并且,该微运算包括一字段指定一地址提供至该程序存储器。13.根据权利要求10所述的处理器,其特征在于,该神经网络单元包括一N个文字旋转器,用以将数据文字在N个该算术单元间旋转;该N个算术单元中的各该算术单元内具有一多任务缓存器,该N个文字旋转器包括该多任务缓存器;并且,该微运算包括一字段,指定一控制输入提供至该N个多任务缓存器。14.根据权利要求10所述的处理器,其特征在于,该微运算包括一字段,指定一装载于该执行单元的一累加器的一累加值的二进制小数点位置...

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

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

1