一种运算装置及其处理方法制造方法及图纸

技术编号:23050435 阅读:24 留言:0更新日期:2020-01-07 14:50
本发明专利技术实施例提供了一种运算装置及其处理方法,该运算装置包括:寄存器组、处理单元阵列和数据线,寄存器组包括第一寄存器组和第二寄存器组,数据线包括n条第一广播线和m条第二广播线;每一条第一广播线的一端连接第一寄存器组,另一端连接处理单元阵列中的一行处理单元,用于将第一寄存器组输出的第一数据传输给一行处理单元;每一条第二广播线的一端连接第二寄存器组,另一端连接处理单元阵列中的一列处理单元,用于将第二寄存器组输出的第二数据传输给一列处理单元;处理单元阵列中的每一个处理单元,用于依据第一数据和第二数据进行运算,输出运算结果。本发明专利技术实施例避免了运算过程产生大量重复数据导致运算开销的问题,降低运算开销。

An operation device and its processing method

【技术实现步骤摘要】
一种运算装置及其处理方法
本专利技术涉及计算机
,特别是涉及一种运算装置和一种运算装置的处理方法。
技术介绍
随着人工智能技术的快速发展,以深度神经网络为代表的机器学习方法在计算机视觉、语音识别、围棋等领域取得了实际应用,成为研究热点。目前,诸如循环神经网络(RecurrentNeuralNetwork,RNN)、卷积神经网络(ConvolutionalNeuralNetwork,CNN)等深度学习方法的广泛应用为数据中心带来了更大的工作负载。例如,在深度神经网络的卷积层、全连接层的实现中,卷积运算是必不可少且花费大量时间的关键运算,需要占用大量访存和计算资源。现有技术通常基于纯软件重整卷积运算,使得卷积运算可以使用矩阵乘的加速手段进行加速。具体的,由于卷积运算是一系列乘累加操作,通过软件可以将卷积运算转化为维度更高的矩阵运,从而可以使用矩阵运算的方式完成卷积运算。但是,通过软件对卷积运算进行重整将提高总体的维数,且重整过程中带来了大量的数据搬运,以及,操作后数据规模将大幅上涨。具体的,为了将卷积表达成矩阵形式,需要重复对卷积运算中的元素进行存储。在这一过程中产生的大量重复数据,将在运算时带来大量的重复访问和缓存,增加开销。
技术实现思路
鉴于上述问题,提出了本专利技术实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种运算装置和一种运算装置的处理方法,以降低开销。为了解决上述问题,本专利技术实施例公开了一种运算装置,包括:寄存器组、处理单元阵列和数据线,所述寄存器组包括第一寄存器组和第二寄存器组,所述数据线包括n条第一广播线和m条第二广播线,m和n均为大于等于1的自然数;所述处理单元阵列包含的处理单元行数为n,且所述处理单元阵列包含的处理单元列数为m;每一条所述第一广播线的一端连接所述第一寄存器组,另一端连接所述处理单元阵列中的一行处理单元,用于将所述第一寄存器组输出的第一数据传输给所述一行处理单元,其中,不同的所述第一广播线连接的处理单元行号不同;每一条所述第二广播线的一端连接所述第二寄存器组,另一端连接所述处理单元阵列中的一列处理单元,用于将所述第二寄存器组输出的第二数据传输给所述一列处理单元,其中,不同的第二广播线连接的处理单元列号不同;所述处理单元阵列中的每一个处理单元,用于依据所述第一数据和所述第二数据进行运算,输出运算结果。可选地,还包括控制器;所述处理单元包括:乘加器、累加变量寄存器、结果寄存器以及选择器;所述乘加器,用于接收所述第一数据和所述第二数据,并将所述第一数据与第二数据相乘,得到乘积结果,以及将所述乘积结果与所述选择器输出的累加变量进行相加,得到累加结果;所述累加变量寄存器的输入端连接所述乘加器,用于存储所述乘加器输出的累加结果,并将所述累加结果传输给所述选择器;所述选择器与所述控制器相连接,用于依据所述控制器输出的控制信号,将所述累加结果作为累加变量,传输给所述乘加器;或者,将所述累加结果作为运算结果,传输给所述结果寄存器;所述结果寄存器,用于对所述运算结果进行输出。可选地,所述选择器包括第一选择器和第二选择器,且所述累加变量寄存器的输出端分别连接所述第一选择器和第二选择器,所述乘加器包括乘法器和加法器;所述乘法器的输出端与所述加法器相连接,用于接收所述第一数据和所述第二数据,并将所述第一数据与第二数据相乘,输出乘积结果给所述加法器;所述加法器的输出端连接所述累加变量寄存器,用于将所述乘积结果与所述第一选择器输出的累加变量进行相加,得到累加结果,以及,将所述累加结果输出给所述累加变量寄存器;第一选择器的输出端连接所述加法器,用于接收所述累加结果和所述累加变量寄存器对应的清零信号,以及,依据所述累加结果和/或所述清零信号,输出累加变量给所述加法器;所述第二选择器的输出端连接所述结果寄存器,用于接收所述控制信号,依据所述控制信号将所述累加结果作为运算结果,并传输给所述结果寄存器。可选地,所述处理单元阵列包括至少一行处理单元,所述一行处理单元包括依次连接的至少两个处理单元,所述两个处理单元分为第一处理单元和第二处理单元;所述第一处理单元的结果寄存器的输出端连接所述第二处理单元的第二选择器,用于将所述第一处理单元输出的运算结果传输给所述第二处理单元的第二选择器;所述第二处理单元的第二选择器,还用于接收所述第一处理单元输出的运算结果,并传输给所述第二处理单元中的结果寄存器。可选地,所述第一寄存器组包括至少一个第一缓存寄存器,每一个第一缓存寄存器包括至少一个输出端,所述第二寄存器组包括至少一个第二缓存寄存器,每一个第二缓存寄存器包括至少一个输出端;所述第一缓存寄存器的每一个输出端通过所述第一广播线,与一行处理单元中的每一个处理单元相连接,用于对接收到的第一数据进行缓存,并通过所述第一广播线,将所述第一数据分别传输给所述一行处理单元中的每一个处理单元;所述第二缓存寄存器的每一个输出端通过所述第二广播线,与一列处理单元中所包含的每一个处理单元相连接,用于对接收到的第二数据进行缓存,并通过所述第二广播线,将所述第二数据分别传输给所述一列处理单元中所包含的每一个处理单元。可选地,还包括时序调整模块;所述时序调整模块包括:第一时序调整模块和/或第二时序调整模块;所述第一缓存寄存器与所述第一时序调整模块相连接,用于依据所述第一时序调整模块输出的第一时序信号,对缓存的第一数据进行输出;所述第二缓存寄存器与所述第二时序调整模块相连接,用于依据所述第二时序调整模块输出的第二时序信号,对缓存的第二数据进行输出。可选地,当所述第一缓存寄存器为卷积化寄存器时,所述第一缓存寄存器,还用于依据所述处理单元阵列输出的第一反馈信号,对缓存的第一数据进行输出;和/或,当所述第二缓存寄存器为卷积化寄存器时,所述第二缓存寄存器,还用于依据所述处理单元阵列输出的第二反馈信号,对缓存的第二数据进行输出。本专利技术实施例还公开了一种运算装置的处理方法,该运算装置包括上述任一个运算装置,所述方法包括:通过所述运算装置中的第一广播线,将第一寄存器组输出的第一数据传输给处理单元阵列中的各行处理单元;通过第二广播线,将第二寄存器组输出的第二数据传输给所述处理单元阵列中的各列处理单元;在所述处理单元阵列中的每一个处理单元中,分别依据接收到的第一数据和第二数据进行运算,得到各处理单元对应的运算结果;对所述各处理单元对应的运算结果进行输出。可选地,还包括:依据所述处理单元阵列的行数,将接收到的第一数据缓存到所述第一寄存器组中;依据所述处理单元阵列的列数,将接收到的第二数据缓存到所述第二寄存器组中。可选地,所述在所述处理单元阵列中的每一个处理单元中,分别依据接收到的第一数据和第二数据进行运算,得到各处理单元对应的运算结果,包括:在每一处理单元中,通过乘加器对接收到的第一数据和第二数据进行相乘,得到乘积结果,以及,将所述乘积结果与选择器输出的累加变量进行相加,得到累加结果,其中,所述累加变量为所述选择器依据累加变量寄存器中存本文档来自技高网...

【技术保护点】
1.一种运算装置,其特征在于,包括:寄存器组、处理单元阵列和数据线,所述寄存器组包括第一寄存器组和第二寄存器组,所述数据线包括n条第一广播线和m条第二广播线,m和n均为大于等于1的自然数;所述处理单元阵列包含的处理单元行数为n,且所述处理单元阵列包含的处理单元列数为m;/n每一条所述第一广播线的一端连接所述第一寄存器组,另一端连接所述处理单元阵列中的一行处理单元,用于将所述第一寄存器组输出的第一数据传输给所述一行处理单元,其中,不同的所述第一广播线连接的处理单元行号不同;/n每一条所述第二广播线的一端连接所述第二寄存器组,另一端连接所述处理单元阵列中的一列处理单元,用于将所述第二寄存器组输出的第二数据传输给所述一列处理单元,其中,不同的第二广播线连接的处理单元列号不同;/n所述处理单元阵列中的每一个处理单元,用于依据所述第一数据和所述第二数据进行运算,输出运算结果。/n

【技术特征摘要】
1.一种运算装置,其特征在于,包括:寄存器组、处理单元阵列和数据线,所述寄存器组包括第一寄存器组和第二寄存器组,所述数据线包括n条第一广播线和m条第二广播线,m和n均为大于等于1的自然数;所述处理单元阵列包含的处理单元行数为n,且所述处理单元阵列包含的处理单元列数为m;
每一条所述第一广播线的一端连接所述第一寄存器组,另一端连接所述处理单元阵列中的一行处理单元,用于将所述第一寄存器组输出的第一数据传输给所述一行处理单元,其中,不同的所述第一广播线连接的处理单元行号不同;
每一条所述第二广播线的一端连接所述第二寄存器组,另一端连接所述处理单元阵列中的一列处理单元,用于将所述第二寄存器组输出的第二数据传输给所述一列处理单元,其中,不同的第二广播线连接的处理单元列号不同;
所述处理单元阵列中的每一个处理单元,用于依据所述第一数据和所述第二数据进行运算,输出运算结果。


2.根据权利要求1所述的运算装置,其特征在于,还包括控制器;
所述处理单元包括:乘加器、累加变量寄存器、结果寄存器以及选择器;
所述乘加器,用于接收所述第一数据和所述第二数据,并将所述第一数据与第二数据相乘,得到乘积结果,以及将所述乘积结果与所述选择器输出的累加变量进行相加,得到累加结果;
所述累加变量寄存器的输入端连接所述乘加器,用于存储所述乘加器输出的累加结果,并将所述累加结果传输给所述选择器;
所述选择器与所述控制器相连接,用于依据所述控制器输出的控制信号,将所述累加结果作为累加变量,传输给所述乘加器;或者,将所述累加结果作为运算结果,传输给所述结果寄存器;
所述结果寄存器,用于对所述运算结果进行输出。


3.根据权利要求2所述的运算装置,其特征在于,所述选择器包括第一选择器和第二选择器,且所述累加变量寄存器的输出端分别连接所述第一选择器和第二选择器,所述乘加器包括乘法器和加法器;
所述乘法器的输出端与所述加法器相连接,用于接收所述第一数据和所述第二数据,并将所述第一数据与第二数据相乘,输出乘积结果给所述加法器;
所述加法器的输出端连接所述累加变量寄存器,用于将所述乘积结果与所述第一选择器输出的累加变量进行相加,得到累加结果,以及,将所述累加结果输出给所述累加变量寄存器;
第一选择器的输出端连接所述加法器,用于接收所述累加结果和所述累加变量寄存器对应的清零信号,以及,依据所述累加结果和/或所述清零信号,输出累加变量给所述加法器;
所述第二选择器的输出端连接所述结果寄存器,用于接收所述控制信号,依据所述控制信号将所述累加结果作为运算结果,并传输给所述结果寄存器。


4.根据权利要求3所述的运算装置,其特征在于,所述处理单元阵列包括至少一行处理单元,所述一行处理单元包括依次连接的至少两个处理单元,所述两个处理单元分为第一处理单元和第二处理单元;
所述第一处理单元的结果寄存器的输出端连接所述第二处理单元的第二选择器,用于将所述第一处理单元输出的运算结果传输给所述第二处理单元的第二选择器;
所述第二处理单元的第二选择器,还用于接收所述第一处理单元输出的运算结果,并传输给所述第二处理单元中的结果寄存器。


5.根据权利要求1至4任一所述的运算装置,其特征在于,所述第一寄存器组包括至少一个第一缓存寄存器,每一个第一缓存寄存器包括至少一个输出端,所述第二寄存器组包括至少一个第二缓存寄存器,每一个第二缓存寄存器包括至少一个输出端;
...

【专利技术属性】
技术研发人员:谭弘泽章隆兵李文青肖俊华王剑
申请(专利权)人:龙芯中科技术有限公司
类型:发明
国别省市:北京;11

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

1