CN110705701B - 一种高并行度的卷积运算方法和电路 - Google Patents
一种高并行度的卷积运算方法和电路 Download PDFInfo
- Publication number
- CN110705701B CN110705701B CN201910839119.0A CN201910839119A CN110705701B CN 110705701 B CN110705701 B CN 110705701B CN 201910839119 A CN201910839119 A CN 201910839119A CN 110705701 B CN110705701 B CN 110705701B
- Authority
- CN
- China
- Prior art keywords
- control unit
- data
- unit
- register group
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Biophysics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Neurology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种高并行度的卷积运算方法和电路,所述方法包括以下步骤:第一读取控制单元根据时钟周期依次从主存储单元中读取第一数据,并通过第一写入控制单元将读取到的第一数据依次写入预存储缓存单元中;第二读取控制单元在第一写入控制单元向预存储缓存单元中写入最后一个第一数据时,根据时钟周期依次从主存储单元中读取第二数据,并通过第二写入控制单元将读取到的第二数据写入第二运算寄存器组中;乘加阵列单元获取运算寄存器组中的第一数据和第二数据,并进行乘加运算并输出运算结果。上述技术方案能够在卷积运算过程中大幅降低数据带宽需求和功耗消耗,从而降低了整个神经网络电路的面积和功耗。
Description
技术领域
本发明涉及神经网络电路领域,特别涉及一种高并行度的卷积运算方法和电路。
背景技术
随着人工智能产业的快速发展,用户对神经网络的运算速度和运行功耗要求越来越高。而卷积神经网络作为最重要的一种神经网络类型,其核心的卷积运算占用了神经网络加速电路中的绝大部分,因此卷积运算的效率和电路面积将会直接影响到整个神经网络加速电路的最终效率和电路面积。然而现有技术中卷积运算电路还没有很好的处理高并行度下的高效率数据复用和低功耗设计问题,造成神经网络运算电路面积和功耗仍然较高且效率低下。
发明内容
为此,需要提供一种高并行度的卷积运算的技术方案,用以解决现有的卷积运算电路运算效率低、电路面积大的问题。
为实现上述目的,发明人提供了一种高并行度的卷积运算电路,所述电路包括读取控制单元、写入控制单元、预存储缓存单元、运算导入控制单元、运算寄存器组和乘加阵列单元;所述读取控制单元包括第一读取控制单元和第二读取控制单元,所述写入控制单元包括第一写入控制单元和第二写入控制单元,所述运算寄存器组包括第一运算寄存器组和第二运算寄存器组;
所述第一读取控制单元与第一写入控制单元连接,所述第一写入控制单元与预存储缓存单元连接,所述预存储缓存单元与运算导入控制单元连接,所述运算导入控制单元与第一运算寄存器组连接;所述第二读取控制单元与第二写入控制单元连接,所述第二写入控制单元与第二运算寄存器组连接,所述第一运算寄存器组、第二运算寄存器组还分别与乘加阵列单元连接;
所述第一读取控制单元用于根据时钟周期依次从主存储单元中读取第一数据,并通过所述第一写入控制单元将读取到的第一数据依次写入预存储缓存单元中;
所述运算导入控制单元用于在预存储缓存单元中的第一数据填满后,将当前预存储缓存单元中的所有数据导入所述第一运算寄存器组中;
所述第二读取控制单元用于在第一写入控制单元向预存储缓存单元中写入最后一个第一数据时,根据时钟周期依次从主存储单元中读取第二数据,并通过所述第二写入控制单元将读取到的第二数据写入所述第二运算寄存器组中;
所述乘加阵列单元用于获取当前第一运算寄存器组中的第一数据以及当前第二运算寄存器组中的第二数据,进行乘加运算并输出运算结果。
进一步地,所述预存储缓存单元包括多个缓存寄存器;
所述第一读取控制单元用于在每个时钟周期内读取一个第一数据,并将读取的第一数据写入到一个缓存寄存器中。
进一步地,所述第一运算寄存器组包括多个第一运算寄存器,所述第一运算寄存器的数量与缓存寄存器的数量一致。
进一步地,所述第二运算寄存器组包括多个第二运算寄存器;
所述第二写入控制单元将当前时钟周期内读取到的第二数据,复制若干份并写入所有第二运算寄存器中。
进一步地,乘加阵列单元在进行乘加运算的时钟周期内,所述第一读取控制单元用于从主存储单元中读取新的第一数据,并通过所述第一写入控制单元将新的第一数据更新至预存储缓存单元中。
发明人还提供了一种高并行度的卷积运算方法,所述方法应用于高并行度的卷积运算电路,所述电路包括读取控制单元、写入控制单元、预存储缓存单元、运算导入控制单元、运算寄存器组和乘加阵列单元;所述读取控制单元包括第一读取控制单元和第二读取控制单元,所述写入控制单元包括第一写入控制单元和第二写入控制单元,所述运算寄存器组包括第一运算寄存器组和第二运算寄存器组;
所述第一读取控制单元与第一写入控制单元连接,所述第一写入控制单元与预存储缓存单元连接,所述预存储缓存单元与运算导入控制单元连接,所述运算导入控制单元与第一运算寄存器组连接;所述第二读取控制单元与第二写入控制单元连接,所述第二写入控制单元与第二运算寄存器组连接,所述第一运算寄存器组、第二运算寄存器组还分别与乘加阵列单元连接;
所述方法包括以下步骤:
第一读取控制单元根据时钟周期依次从主存储单元中读取第一数据,并通过第一写入控制单元将读取到的第一数据依次写入预存储缓存单元中;
运算导入控制单元在预存储缓存单元中的第一数据填满后,将当前预存储缓存单元中的所有数据导入第一运算寄存器组中;
第二读取控制单元在第一写入控制单元向预存储缓存单元中写入最后一个第一数据时,根据时钟周期依次从主存储单元中读取第二数据,并通过第二写入控制单元将读取到的第二数据写入第二运算寄存器组中;
乘加阵列单元获取当前第一运算寄存器组中的第一数据以及当前第二运算寄存器组中的第二数据,进行乘加运算并输出运算结果。
进一步地,所述预存储缓存单元包括多个缓存寄存器;所述方法包括:
第一读取控制单元在每个时钟周期内读取一个第一数据,并将读取的第一数据写入到一个缓存寄存器中。
进一步地,所述第一运算寄存器组包括多个第一运算寄存器,所述第一运算寄存器的数量与缓存寄存器的数量一致。
进一步地,所述第二运算寄存器组包括多个第二运算寄存器;所述方法包括:
第二写入控制单元将当前时钟周期内读取到的第二数据,复制若干份并写入所有第二运算寄存器中。
进一步地,所述方法包括:
乘加阵列单元在进行乘加运算的时钟周期内,第一读取控制单元从主存储单元中读取新的第一数据,并通过第一写入控制单元将新的第一数据更新至预存储缓存单元中。
上述技术方案所述的高并行度的卷积运算方法和电路,所述方法包括以下步骤:第一读取控制单元根据时钟周期依次从主存储单元中读取第一数据,并通过第一写入控制单元将读取到的第一数据依次写入预存储缓存单元中;运算导入控制单元在预存储缓存单元中的第一数据填满后,将当前预存储缓存单元中的所有数据导入第一运算寄存器组中;第二读取控制单元在第一写入控制单元向预存储缓存单元中写入最后一个第一数据时,根据时钟周期依次从主存储单元中读取第二数据,并通过第二写入控制单元将读取到的第二数据写入第二运算寄存器组中;乘加阵列单元获取当前第一运算寄存器组中的第一数据以及当前第二运算寄存器组中的第二数据,进行乘加运算并输出运算结果。上述方案在保证卷积运算高并行度运算的基础上仍保持很高的运算效率和数据复用,大幅降低数据带宽需求和功耗消耗,从而降低了整个神经网络电路的面积和功耗。
附图说明
图1为本发明一实施例涉及的高并行度的卷积运算电路的示意图;
图2为本发明一实施例涉及的高并行度的卷积运算电路在进行卷积运算时的时序图;
图3为本发明一实施例涉及的高并行度的卷积运算方法的流程图。
附图标记说明:
10、高并行度的卷积运算电路;20、主存储单元;
101、第一读取控制单元;
102、第二读取控制单元;
103、第一写入控制单元;
104、第二写入控制单元;
105、第一运算寄存器组;
106、第二运算寄存器组;
107、预存储缓存单元;
108、运算导入控制单元;
109、乘加阵列单元。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
请参阅图1,为本发明一实施例涉及的高并行度的卷积运算电路的示意图。所述电路10包括读取控制单元、写入控制单元、预存储缓存单元107、运算导入控制单元108、运算寄存器组和乘加阵列单元109;所述读取控制单元包括第一读取控制单元101和第二读取控制单元102,所述写入控制单元包括第一写入控制单元103和第二写入控制单元104,所述运算寄存器组包括第一运算寄存器组105和第二运算寄存器组106;
所述第一读取控制单元101与第一写入控制单元103连接,所述第一写入控制单元103与预存储缓存单元107连接,所述预存储缓存单元107与运算导入控制单元108连接,所述运算导入控制单元108与第一运算寄存器组105连接;所述第二读取控制单元102与第二写入控制单元104连接,所述第二写入控制单元104与第二运算寄存器组106连接,所述第一运算寄存器组105、第二运算寄存器组106还分别与乘加阵列单元109连接;
所述第一读取控制单元101用于根据时钟周期依次从主存储单元中读取第一数据,并通过所述第一写入控制单元103将读取到的第一数据依次写入预存储缓存单元107中。
所述运算导入控制单元108用于在预存储缓存单元107中的第一数据填满后,将当前预存储缓存单元107中的所有数据导入所述第一运算寄存器组105中;
所述第二读取控制单元102用于在第一写入控制单元103向预存储缓存单元107中写入最后一个第一数据时,根据时钟周期依次从主存储单元20中读取第二数据,并通过所述第二写入控制单元104将读取到的第二数据写入所述第二运算寄存器组106中;
所述乘加阵列单元109用于获取当前第一运算寄存器组105中的第一数据以及当前第二运算寄存器组106中的第二数据,进行乘加运算并输出运算结果。
在本实施方式中,所述主存储单元为存储有第一数据和第二数据的存储单元,优选为DDR。所述第一数据为卷积运算所需的权重数据,所述第二数据为卷积运算所需的特征数据,卷积运算即是对读取到的权重数据和特征数据进行乘加运算。当然,在另一些实施例中,第一数据也可以为特征数据,第二数据为权重数据。所述权重数据和特征数据可以为矩阵数据,如16x16矩阵,32x32矩阵等。
通过上述方案,当预存储缓存单元在填入最后一个第一数据时,第二读取控制单元也相应从主存储单元读取当前需要进行计算的第二数据,而后预存储缓存单元中的第一数据和读取的第二数据分别在下一时钟周期内被写入到各自的运算寄存器组中,以便乘加单元进行乘加运算。乘加阵列单元在进行乘加运算时,预存储缓存单元也同步开始存储下一乘加运算所需的第一数据,从而有效提高了卷积运算的并行度,提升了数据处理效率。
在某些实施例中,所述预存储缓存单元包括多个缓存寄存器;所述第一读取控制单元用于在每个时钟周期内读取一个第一数据,并将读取的第一数据写入到一个缓存寄存器中。优选的,所述第一运算寄存器组包括多个第一运算寄存器,所述第一运算寄存器的数量与缓存寄存器的数量一致。这样,一方面可以保证第一数据读取有序进行,另一方面可以便于运算导入控制单元将预存储缓存单元中的数据导入至第一运算寄存器组中。
例如第一运算器寄存器的数量与缓存寄存器的数量均为16个,则在进行卷积运算时,在前16个时钟周期内,每个时钟周期第一读取控制单元都会从主存储单元中读取一个权重数据,当第16个时钟周期时预存储缓存单元被第一数据填满,此时第二读取控制单元也会从主存储单元时读取运算所需的一个特征数据。而后在第17个时钟周期时,运算导入控制单元将当前预存储缓存单元中填满的16个第一数据导入至第一运算寄存器组中,此时在当前时钟周期内(第17个时钟周期),第一读取控制单元会从主存储单元中读取新的权重数据,并更新至预存储缓存单元中的第一个缓存寄存器中,第二写入控制单元也会将在第16个时钟周期读取到的特征数据导入至第二运算寄存器组中,乘加阵列单元会在第17个时钟周期读取当前第一运算寄存器组中的所有第一数据以及第二运算寄存器组中的第二数据进行乘加运算并输出运算结果,以完成一个点的卷积运算。
在某些实施例中,所述第二运算寄存器组包括多个第二运算寄存器;所述第二写入控制单元将当前时钟周期内读取到的第二数据,复制若干份并写入所有第二运算寄存器中。优选的,所述第二运算寄存器的数量与第一运算寄存器的数量相同,一个第二运算寄存器存储的特征数据对应与一个第一运算寄存器中的权重数据进行乘加运算。这样,在进行乘加运算时,乘加阵列单元可以从多个第二运算寄存器中同步获取当前需要进行运算的特征数据。相比于将特征数据只存储在一个运算寄存器中的方式,上述方案可以有效提升电路整体的驱动能力,节省功耗。
在某些实施例中,乘加阵列单元在进行乘加运算的时钟周期内,所述第一读取控制单元用于从主存储单元中读取新的第一数据,并通过所述第一写入控制单元将新的第一数据更新至预存储缓存单元中。这样,可以有效提升电路整体的并行度,提升数据处理效率。
如图2所示,下面以第一运算器寄存器的数量与缓存寄存器的数量均为16个,第一数据为权重数据,第二数据为特征数据为例,对本发明涉及的电路进行卷积运算的过程作具体说明。
在前16个时钟周期,weight读取控制单元(即第一读取控制单元)在每个时钟周期完成一个channel(即通道)的weight数据(即第一数据,这里为权重数据)的读入。在第16个时钟周期时,weight预存储缓存单元存储已经存储满1~16channel的weight数据。在第17个时钟周期(即预存储缓存单元被填满后的下一时钟周期)时,weight并行运算导入控制单元(即运算导入控制单元108)会将weight预存储缓存单元中的weight数据全部一次性导入weight并行运算寄存器组(即第一运算寄存器组105)。
从第16个时钟周期开始,特征数据读取控制单元(即第二读取控制单元)会在每个时钟周期完成一个channel(通道)的feature_data数据(即第二数据,此实施例为特征数据)读入。
从第17个时钟周期开始,weight读取控制单元开始每在个时钟周期完成一个channel的weight数据读入后,再通过weight写入控制单元重新写入weight预存储缓存单元,直到第32个时钟周期时weight预存储缓存单元中存储的前16个时钟周期的数据均被重新写入。
在第17个时钟周期时,第二写入控制单元会同步复制16份上一时钟周期读取到的特征数据,并将16份特征数据填写至第二运算寄存器组中,同时,第二读取控制单元会从主存储单元中读取下一个特征数据,并在第18个时钟周期时,将第17个时钟周期读取到的特征数据复制16份更新至第二运算寄存器组中。从第个17时钟周期到第32个时钟周期,完成1~16channel的复制写入第二运算寄存器组。
乘加阵列单元从第17个时钟周期开始运算,在每个时钟周期完成一次乘加运算。具体的,在第17时钟周期至第32时钟周期,完成channel 1~16的乘加卷积,从33周期开始到48周期完成channel17~32,以此类推,直到所有channel都完成卷积运算。
当然,在另外一些实施例中,通道channel的数量、缓存寄存器的数量、第一运算寄存器的数量、第二运算寄存器的数量都可以根据实际需要进行调整,在进行卷积运算时只需相应调整时钟周期即可,此处不再赘述。
如图3所示,发明人还提供了一种高并行度的卷积运算方法,所述方法应用于高并行度的卷积运算电路,所述电路包括读取控制单元、写入控制单元、预存储缓存单元、运算导入控制单元、运算寄存器组和乘加阵列单元;所述读取控制单元包括第一读取控制单元和第二读取控制单元,所述写入控制单元包括第一写入控制单元和第二写入控制单元,所述运算寄存器组包括第一运算寄存器组和第二运算寄存器组;
所述第一读取控制单元与第一写入控制单元连接,所述第一写入控制单元与预存储缓存单元连接,所述预存储缓存单元与运算导入控制单元连接,所述运算导入控制单元与第一运算寄存器组连接;所述第二读取控制单元与第二写入控制单元连接,所述第二写入控制单元与第二运算寄存器组连接,所述第一运算寄存器组、第二运算寄存器组还分别与乘加阵列单元连接;
所述方法包括以下步骤:
首先进入步骤S401第一读取控制单元根据时钟周期依次从主存储单元中读取第一数据,并通过第一写入控制单元将读取到的第一数据依次写入预存储缓存单元中;
而后进入步骤S402运算导入控制单元在预存储缓存单元中的第一数据填满后,将当前预存储缓存单元中的所有数据导入第一运算寄存器组中;
而后进入步骤S403第二读取控制单元在第一写入控制单元向预存储缓存单元中写入最后一个第一数据时,根据时钟周期依次从主存储单元中读取第二数据,并通过第二写入控制单元将读取到的第二数据写入第二运算寄存器组中;
而后进入步骤S404乘加阵列单元获取当前第一运算寄存器组中的第一数据以及当前第二运算寄存器组中的第二数据,进行乘加运算并输出运算结果。
在某些实施例中,所述预存储缓存单元包括多个缓存寄存器;所述方法包括:第一读取控制单元在每个时钟周期内读取一个第一数据,并将读取的第一数据写入到一个缓存寄存器中。优选的,所述第一运算寄存器组包括多个第一运算寄存器,所述第一运算寄存器的数量与缓存寄存器的数量一致。这样,一方面可以保证第一数据读取有序进行,另一方面可以便于运算导入控制单元将预存储缓存单元中的数据导入至第一运算寄存器组中。
在某些实施例中,所述第二运算寄存器组包括多个第二运算寄存器;所述方法包括:第二写入控制单元将当前时钟周期内读取到的第二数据,复制若干份并写入所有第二运算寄存器中。这样,在进行乘加运算时,乘加阵列单元可以从多个第二运算寄存器中同步获取当前需要进行运算的特征数据。相比于将特征数据只存储在一个运算寄存器中的方式,上述方案可以有效提升电路整体的驱动能力,节省功耗。
在某些实施例中,所述方法包括:乘加阵列单元在进行乘加运算的时钟周期内,第一读取控制单元从主存储单元中读取新的第一数据,并通过第一写入控制单元将新的第一数据更新至预存储缓存单元中。
本发明提供了一种高并行度的卷积运算方法和电路,所述方法包括以下步骤:第一读取控制单元根据时钟周期依次从主存储单元中读取第一数据,并通过第一写入控制单元将读取到的第一数据依次写入预存储缓存单元中;第二读取控制单元在第一写入控制单元向预存储缓存单元中写入最后一个第一数据时,根据时钟周期依次从主存储单元中读取第二数据,并通过第二写入控制单元将读取到的第二数据写入第二运算寄存器组中;乘加阵列单元获取运算寄存器组中的第一数据和第二数据,并进行乘加运算并输出运算结果。上述技术方案能够在卷积运算过程中大幅降低数据带宽需求和功耗消耗,从而降低了整个神经网络电路的面积和功耗。
需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。
Claims (10)
1.一种高并行度的卷积运算电路,其特征在于,所述电路包括读取控制单元、写入控制单元、预存储缓存单元、运算导入控制单元、运算寄存器组和乘加阵列单元;所述读取控制单元包括第一读取控制单元和第二读取控制单元,所述写入控制单元包括第一写入控制单元和第二写入控制单元,所述运算寄存器组包括第一运算寄存器组和第二运算寄存器组;
所述第一读取控制单元与第一写入控制单元连接,所述第一写入控制单元与预存储缓存单元连接,所述预存储缓存单元与运算导入控制单元连接,所述运算导入控制单元与第一运算寄存器组连接;所述第二读取控制单元与第二写入控制单元连接,所述第二写入控制单元与第二运算寄存器组连接,所述第一运算寄存器组、第二运算寄存器组还分别与乘加阵列单元连接;
所述第一读取控制单元用于根据时钟周期依次从主存储单元中读取第一数据,并通过所述第一写入控制单元将读取到的第一数据依次写入预存储缓存单元中;
所述运算导入控制单元用于在预存储缓存单元中的第一数据填满后,将当前预存储缓存单元中的所有数据导入所述第一运算寄存器组中;
所述第二读取控制单元用于在第一写入控制单元向预存储缓存单元中写入最后一个第一数据时,根据时钟周期依次从主存储单元中读取第二数据,并通过所述第二写入控制单元将读取到的第二数据写入所述第二运算寄存器组中;
所述乘加阵列单元用于获取当前第一运算寄存器组中的第一数据以及当前第二运算寄存器组中的第二数据,进行乘加运算并输出运算结果。
2.如权利要求1所述的高并行度的卷积运算电路,其特征在于,所述预存储缓存单元包括多个缓存寄存器;
所述第一读取控制单元用于在每个时钟周期内读取一个第一数据,并将读取的第一数据写入到一个缓存寄存器中。
3.如权利要求2所述的高并行度的卷积运算电路,其特征在于,所述第一运算寄存器组包括多个第一运算寄存器,所述第一运算寄存器的数量与缓存寄存器的数量一致。
4.如权利要求1至3任一项所述的高并行度的卷积运算电路,其特征在于,所述第二运算寄存器组包括多个第二运算寄存器;
所述第二写入控制单元将当前时钟周期内读取到的第二数据,复制若干份并写入所有第二运算寄存器中。
5.如权利要求1所述的高并行度的卷积运算电路,其特征在于,乘加阵列单元在进行乘加运算的时钟周期内,所述第一读取控制单元用于从主存储单元中读取新的第一数据,并通过所述第一写入控制单元将新的第一数据更新至预存储缓存单元中。
6.一种高并行度的卷积运算方法,其特征在于,所述方法应用于高并行度的卷积运算电路,所述电路包括读取控制单元、写入控制单元、预存储缓存单元、运算导入控制单元、运算寄存器组和乘加阵列单元;所述读取控制单元包括第一读取控制单元和第二读取控制单元,所述写入控制单元包括第一写入控制单元和第二写入控制单元,所述运算寄存器组包括第一运算寄存器组和第二运算寄存器组;
所述第一读取控制单元与第一写入控制单元连接,所述第一写入控制单元与预存储缓存单元连接,所述预存储缓存单元与运算导入控制单元连接,所述运算导入控制单元与第一运算寄存器组连接;所述第二读取控制单元与第二写入控制单元连接,所述第二写入控制单元与第二运算寄存器组连接,所述第一运算寄存器组、第二运算寄存器组还分别与乘加阵列单元连接;
所述方法包括以下步骤:
第一读取控制单元根据时钟周期依次从主存储单元中读取第一数据,并通过第一写入控制单元将读取到的第一数据依次写入预存储缓存单元中;
运算导入控制单元在预存储缓存单元中的第一数据填满后,将当前预存储缓存单元中的所有数据导入第一运算寄存器组中;
第二读取控制单元在第一写入控制单元向预存储缓存单元中写入最后一个第一数据时,根据时钟周期依次从主存储单元中读取第二数据,并通过第二写入控制单元将读取到的第二数据写入第二运算寄存器组中;
乘加阵列单元获取当前第一运算寄存器组中的第一数据以及当前第二运算寄存器组中的第二数据,进行乘加运算并输出运算结果。
7.如权利要求6所述的高并行度的卷积运算方法,其特征在于,所述预存储缓存单元包括多个缓存寄存器;所述方法包括:
第一读取控制单元在每个时钟周期内读取一个第一数据,并将读取的第一数据写入到一个缓存寄存器中。
8.如权利要求7所述的高并行度的卷积运算方法,其特征在于,所述第一运算寄存器组包括多个第一运算寄存器,所述第一运算寄存器的数量与缓存寄存器的数量一致。
9.如权利要求6至8任一项所述的高并行度的卷积运算方法,其特征在于,所述第二运算寄存器组包括多个第二运算寄存器;所述方法包括:
第二写入控制单元将当前时钟周期内读取到的第二数据,复制若干份并写入所有第二运算寄存器中。
10.如权利要求6所述的高并行度的卷积运算方法,其特征在于,所述方法包括:
乘加阵列单元在进行乘加运算的时钟周期内,第一读取控制单元从主存储单元中读取新的第一数据,并通过第一写入控制单元将新的第一数据更新至预存储缓存单元中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910839119.0A CN110705701B (zh) | 2019-09-05 | 2019-09-05 | 一种高并行度的卷积运算方法和电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910839119.0A CN110705701B (zh) | 2019-09-05 | 2019-09-05 | 一种高并行度的卷积运算方法和电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110705701A CN110705701A (zh) | 2020-01-17 |
CN110705701B true CN110705701B (zh) | 2022-03-29 |
Family
ID=69194364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910839119.0A Active CN110705701B (zh) | 2019-09-05 | 2019-09-05 | 一种高并行度的卷积运算方法和电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110705701B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111523282A (zh) * | 2020-05-07 | 2020-08-11 | 深圳探科技术有限公司 | 集成电路仿真中数据处理的方法、模块、存储介质及*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301455A (zh) * | 2017-05-05 | 2017-10-27 | 中国科学院计算技术研究所 | 用于卷积神经网络的混合立方体存储***及加速计算方法 |
CN107392309A (zh) * | 2017-09-11 | 2017-11-24 | 东南大学—无锡集成电路技术研究所 | 一种基于fpga的通用定点数神经网络卷积加速器硬件结构 |
WO2018074012A1 (ja) * | 2016-10-19 | 2018-04-26 | ソニーセミコンダクタソリューションズ株式会社 | 演算処理回路および認識システム |
CN108537331A (zh) * | 2018-04-04 | 2018-09-14 | 清华大学 | 一种基于异步逻辑的可重构卷积神经网络加速电路 |
CN108647774A (zh) * | 2018-04-23 | 2018-10-12 | 福州瑞芯微电子股份有限公司 | 一种优化稀疏性矩阵运算的神经网络方法和电路 |
CN109032781A (zh) * | 2018-07-13 | 2018-12-18 | 重庆邮电大学 | 一种卷积神经网络算法的fpga并行*** |
CN109858622A (zh) * | 2019-01-31 | 2019-06-07 | 福州瑞芯微电子股份有限公司 | 深度学习神经网络的数据搬运电路和方法 |
-
2019
- 2019-09-05 CN CN201910839119.0A patent/CN110705701B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018074012A1 (ja) * | 2016-10-19 | 2018-04-26 | ソニーセミコンダクタソリューションズ株式会社 | 演算処理回路および認識システム |
CN109844738A (zh) * | 2016-10-19 | 2019-06-04 | 索尼半导体解决方案公司 | 运算处理电路和识别*** |
CN107301455A (zh) * | 2017-05-05 | 2017-10-27 | 中国科学院计算技术研究所 | 用于卷积神经网络的混合立方体存储***及加速计算方法 |
CN107392309A (zh) * | 2017-09-11 | 2017-11-24 | 东南大学—无锡集成电路技术研究所 | 一种基于fpga的通用定点数神经网络卷积加速器硬件结构 |
CN108537331A (zh) * | 2018-04-04 | 2018-09-14 | 清华大学 | 一种基于异步逻辑的可重构卷积神经网络加速电路 |
CN108647774A (zh) * | 2018-04-23 | 2018-10-12 | 福州瑞芯微电子股份有限公司 | 一种优化稀疏性矩阵运算的神经网络方法和电路 |
CN109032781A (zh) * | 2018-07-13 | 2018-12-18 | 重庆邮电大学 | 一种卷积神经网络算法的fpga并行*** |
CN109858622A (zh) * | 2019-01-31 | 2019-06-07 | 福州瑞芯微电子股份有限公司 | 深度学习神经网络的数据搬运电路和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110705701A (zh) | 2020-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109087677B (zh) | 存储器装置及其数据读取方法 | |
CN110705701B (zh) | 一种高并行度的卷积运算方法和电路 | |
CN112712457B (zh) | 数据处理方法以及人工智能处理器 | |
CN116431562B (zh) | 一种基于加速处理器的多头注意力机制融合计算分配方法 | |
CN110968538B (zh) | 一种数据缓冲方法和装置 | |
CN116051345A (zh) | 图像数据处理方法、装置、计算机设备及可读存储介质 | |
CN111694513A (zh) | 包括循环指令存储器队列的存储器器件和方法 | |
CN114707649B (zh) | 一种通用卷积运算装置 | |
JPS63244245A (ja) | 並列アクセス可能な多次元メモリ装置 | |
CN115146769A (zh) | 一种基于范围可寻址查找表计算tanh函数的数字电路模块 | |
CN112837256B (zh) | 一种用于Harris角点检测的电路***及检测方法 | |
CN109685209B (zh) | 一种加快神经网络运算速度的装置和方法 | |
CN110751263B (zh) | 一种高并行度的卷积运算取数方法和电路 | |
CN113673691A (zh) | 基于存算结合的多通道卷积fpga架构及其工作方法 | |
EP3757821A1 (en) | Apparatus and method for transforming matrix, and dataprocessing system | |
JP2003208788A (ja) | 2ポートメモリによるバッファ | |
CN102622318B (zh) | 一种存储器控制电路及其控制的向量数据寻址方法 | |
US6477625B1 (en) | Method and system for reading a memory by applying control signals thereto | |
CN117234462B (zh) | 一种超高速伪随机数信号产生装置 | |
CN111078486B (zh) | 一种在fpga中模拟储存器掉电的方法 | |
CN114741352B (zh) | 一种基于fpga的双线性插值重采样实现方法及装置 | |
CN115456858B (zh) | 图像处理方法、装置、计算机设备及计算机可读存储介质 | |
US20230307036A1 (en) | Storage and Accessing Methods for Parameters in Streaming AI Accelerator Chip | |
CN115129233B (zh) | 数据处理装置、方法及相关产品 | |
CN111260536B (zh) | 可变参数的数字图像多尺度卷积处理器及其实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 350003 building 18, No.89, software Avenue, Gulou District, Fuzhou City, Fujian Province Applicant after: Ruixin Microelectronics Co.,Ltd. Address before: 350003 building 18, No.89, software Avenue, Gulou District, Fuzhou City, Fujian Province Applicant before: FUZHOU ROCKCHIP ELECTRONICS Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |