The invention relates to a hardware processing unit, a neural network unit and a computer usable medium. The hardware processing unit comprises an accumulator, a multiplier and an adder for receiving the corresponding first and second factors on the first and second inputs, and an adder on the third input, which generates the sum of the product and the additive of the first and second factors, and provides the sum on the output of the multiplier and the adder; A first multiplexer, which receives the first operand, positive 1 and negative 1 and selects one of them to provide to the multiplier-adder as the first factor; a second multiplexer, which receives the second operand, positive 1 and negative 1 and selects one of them to provide to the multiplier-adder as the second factor; a third multiplexer, which receives the first operand and the second operand One of them is selected to provide on the output of the third multiplexer, and the fourth multiplexer, which receives the output and sum of the third multiplexer, and selects one of them to provide to the accumulator.
【技术实现步骤摘要】
硬件处理单元、神经网络单元和计算机可用介质
本专利技术涉及一种硬件处理单元、神经网络单元和计算机可用介质。
技术介绍
最近,人工神经网络(artificialneuralnetwork,ANN)重新吸引了人们的兴趣,并且这种研究通常被称为深度学习、计算机学习和类似的术语。通用处理器计算能力的提高使得重新提起数十年前所消退的兴趣。ANN的最新应用包括语音识别和图像识别等。对于改进与ANN相关联的计算的性能和效率的需求正在增大。
技术实现思路
一种硬件处理单元,包括:累加器,其具有输入和输出;乘加器,其具有输出以及第一输入、第二输入和第三输入,所述乘加器用于在第一输入和第二输入上接收相应的第一因子和第二因子、并且在第三输入上接收加数,所述乘加器产生所述第一因子和所述第二因子的乘积与所述加数的总和、并将所述总和提供于所述乘加器的输出上;第一复用器,其具有耦接至所述乘加器的第一输入的输出,并且所述第一复用器用于接收第一操作数、正1和负1并选择其中之一以作为所述第一因子提供至所述乘加器;第二复用器,其具有耦接至所述乘加器的第二输入的输出,并且所述第二复用器用于接收第二操作数、正1和负1并选择其中之一以作为所述第二因子提供至所述乘加器;第三复用器,其具有输出,所述第三复用器用于接收所述第一操作数和所述第二操作数并选择其中之一以提供于所述第三复用器的输出上;以及第四复用器,其具有耦接至所述累加器的输入的输出,所述第四复用器用于接收所述第三复用器的输出和所述总和、并选择其中之一以提供至所述累加器。一种神经网络单元,包括:N个硬件处理单元的阵列,其中所述N个硬件处理单元各自包括 ...
【技术保护点】
1.一种硬件处理单元,包括:累加器,其具有输入和输出;乘加器,其具有输出以及第一输入、第二输入和第三输入,所述乘加器用于在第一输入和第二输入上接收相应的第一因子和第二因子、并且在第三输入上接收加数,所述乘加器产生所述第一因子和所述第二因子的乘积与所述加数的总和、并将所述总和提供于所述乘加器的输出上;第一复用器,其具有耦接至所述乘加器的第一输入的输出,并且所述第一复用器用于接收第一操作数、正1和负1并选择其中之一以作为所述第一因子提供至所述乘加器;第二复用器,其具有耦接至所述乘加器的第二输入的输出,并且所述第二复用器用于接收第二操作数、正1和负1并选择其中之一以作为所述第二因子提供至所述乘加器;第三复用器,其具有输出,所述第三复用器用于接收所述第一操作数和所述第二操作数并选择其中之一以提供于所述第三复用器的输出上;以及第四复用器,其具有耦接至所述累加器的输入的输出,所述第四复用器用于接收所述第三复用器的输出和所述总和、并选择其中之一以提供至所述累加器。
【技术特征摘要】
2017.04.11 US 62/484,3531.一种硬件处理单元,包括:累加器,其具有输入和输出;乘加器,其具有输出以及第一输入、第二输入和第三输入,所述乘加器用于在第一输入和第二输入上接收相应的第一因子和第二因子、并且在第三输入上接收加数,所述乘加器产生所述第一因子和所述第二因子的乘积与所述加数的总和、并将所述总和提供于所述乘加器的输出上;第一复用器,其具有耦接至所述乘加器的第一输入的输出,并且所述第一复用器用于接收第一操作数、正1和负1并选择其中之一以作为所述第一因子提供至所述乘加器;第二复用器,其具有耦接至所述乘加器的第二输入的输出,并且所述第二复用器用于接收第二操作数、正1和负1并选择其中之一以作为所述第二因子提供至所述乘加器;第三复用器,其具有输出,所述第三复用器用于接收所述第一操作数和所述第二操作数并选择其中之一以提供于所述第三复用器的输出上;以及第四复用器,其具有耦接至所述累加器的输入的输出,所述第四复用器用于接收所述第三复用器的输出和所述总和、并选择其中之一以提供至所述累加器。2.根据权利要求1所述的硬件处理单元,其中,还包括:控制逻辑,用于响应于向所述累加器写入所述第一操作数和所述第二操作数的乘积与所述累加器的总和的第一命令而进行以下操作:控制所述第一复用器选择所述第一操作数;控制所述第二复用器选择所述第二操作数;以及控制所述第四复用器选择所述总和,其中,所述控制逻辑响应于使所述累加器包含所述第一操作数和所述累加器中的最大值的第二命令而进行以下操作:控制所述第一复用器选择所述第一操作数;控制所述第二复用器选择负1;控制所述第三复用器选择所述第一操作数;以及控制所述第四复用器在所述总和为负的情况下选择所述第一操作数,否则使所述累加器保留所述累加器的值。3.根据权利要求2所述的硬件处理单元,其中,还包括:第五复用器,其具有耦接至所述乘加器的第三输入的输出,所述第五复用器用于接收所述第三复用器的输出和所述累加器的输出并选择其中之一以作为所述加数提供至所述乘加器,其中,所述控制逻辑响应于向所述累加器写入所述第二操作数与所述第一操作数的差的第三命令而进行以下操作:控制所述第一复用器选择负1;控制所述第二复用器选择所述第二操作数;控制所述第三复用器选择所述第一操作数;控制所述第五复用器选择所述第三复用器的输出;以及控制所述第四复用器选择所述总和。4.根据权利要求3所述的硬件处理单元,其中,所述控制逻辑响应于向所述累加器写入所述第二操作数和所述累加器的总和的第四命令而进行以下操作:控制所述第一复用器选择正1;控制所述第二复用器选择所述第二操作数;控制所述第五复用器选择所述累加器的输出;以及控制所述第四复用器选择所述总和。5.根据权利要求3所述的硬件处理单元,其中,所述第五复用器还接收零,并在零、所述第三复用器的输出和所述累加器的输出中选择其中之一以作为所述加数提供至所述乘加器,以及其中,所述控制逻辑响应于向所述累加器写入所述第一操作数和所述第二操作数的乘积的第四命令而进行以下操作:控制所述第一复用器选择所述第一操作数;控制所述第二复用器选择所述第二操作数;控制所述第五复用器选择所述零;以及控制所述第四复用器选择所述总和。6.根据权利要求3所述的硬件处理单元,其中,所述第一复用器还接收零,并在零、所述第一操作数、正1和负1中选择其中之一以作为所述第一因子提供至所述乘加器,所述第五复用器还接收所述累加器的输出的取反版本,并在所述累加器的输出的所述取反版本、所述第三复用器的输出和所述累加器的输出中选择其中之一以作为所述加数提供至所述乘加器,以及所述控制逻辑响应于使所述累加器包含所述累加器的绝对值的第四命令而进行以下操作:控制所述第一复用器选择零;控制所述第五复用器选择所述累加器的输出的所述取反版本;以及控制所述第四复用器在所述累加器为负的情况下选择所述总和,否则使所述累加器保留所述累加器的值。7.根据权利要求3所述的硬件处理单元,其中,所述第一复用器还接收零,并在零、所述第一操作数、正1和负1中选择其中之一以作为所述第一因子提供至所述乘加器,所述第五复用器还接收所述累加器的输出的倒置版本,并在所述累加器的输出的所述倒置版本、所述第三复用器的输出和所述累加器的输出中选择其中之一以作为所述加数提供至所述乘加器,所述乘加器具有用于接收第二加数的第四输入,所述乘加器产生所述第一因子和所述第二因子的乘积与所述第一加数和所述第二加数的总和,并将所述总和提供于所述乘加器的输出上,以及所述控制逻辑响应于使所述累加器包含所述累加器的绝对值的第四命令而进行以下操作:控制所述第一复用器选择零;控制所述第五复用器选择所述累加器的输出的所述倒置版本;在所述累加器为负的情况下提供正1作为所述第二加数,否则提供零;以及控制所述第四复用器在所述累加器为负的情况下选择所述总和,否则使所述累加器保留所述累加器的值。8.根据权利要求3所述的硬件处理单元,其中,所述第一复用器还接收零,并在零、所述第一操作数、正1和负1中选择其中之一以作为所述第一因子提供至所述乘加器,所述第五复用器还接收所述累加器的输出的倒置版本,并在所述累加器的输出的所述倒置版本、所述第三复用器的输出和所述累加器的输出中选择其中之一以作为所述加数提供至所述乘加器,所述乘加器具有用于接收第二加数的第四输入,所述乘加器产生所述第一因子和所述第二因子的乘积与所述第一加数和所述第二加数的总和,并将所述总和提供于所述乘加器的输出上,以及所述控制逻辑响应于使所述累加器加载...
【专利技术属性】
技术研发人员:道格拉斯·R·瑞德,G·葛兰·亨利,金·C·霍克,帕尔维兹·帕朗查尔,
申请(专利权)人:上海兆芯集成电路有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。