CN112231631A - 存算一体芯片并行工作的流水线控制方法 - Google Patents
存算一体芯片并行工作的流水线控制方法 Download PDFInfo
- Publication number
- CN112231631A CN112231631A CN202011187603.9A CN202011187603A CN112231631A CN 112231631 A CN112231631 A CN 112231631A CN 202011187603 A CN202011187603 A CN 202011187603A CN 112231631 A CN112231631 A CN 112231631A
- Authority
- CN
- China
- Prior art keywords
- storage
- calculation
- unit array
- time delay
- pipeline control
- 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.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 79
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000003491 array Methods 0.000 claims abstract description 64
- 238000013528 artificial neural network Methods 0.000 claims abstract description 25
- 239000011159 matrix material Substances 0.000 claims abstract description 13
- 238000011217 control strategy Methods 0.000 claims description 28
- 238000006243 chemical reaction Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 16
- 230000009471 action Effects 0.000 claims description 6
- 238000004519 manufacturing process Methods 0.000 claims description 6
- 230000001934 delay Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000007667 floating Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 229920005994 diacetyl cellulose Polymers 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
Images
Classifications
-
- 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/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Biomedical Technology (AREA)
- Computational Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种存算一体芯片并行工作的流水线控制方法,所述存算一体芯片包括多个阵列排布的存算一体单元阵列,同行的存算一体单元阵列共用DAC,同列的存算一体单元阵列共用ADC,非同行非同列的存算一体单元阵列可以同时并行工作,并行工作的每个存算一体单元阵列用于实现一层神经网络的矩阵乘加运算;所述存算一体芯片并行工作的流水线控制方法包括:获取实现一层神经网络的各步骤的时延;根据各步骤的时延对同时并行工作的非同行非同列的多个存算一体单元阵列进行流水线控制,实现多任务时分复用,提高处理速度,提高吞吐量。
Description
技术领域
本发明涉及集成电路技术领域,尤其涉及一种存算一体芯片并行工作的流水线控制方法。
背景技术
近年来,为了解决传统冯诺依曼计算体系结构的存储墙瓶颈,存算一体芯片架构得到人们的广泛关注,其基本思想是直接利用存储器进行计算,从而减少甚至消除存储器与处理器之间的数据传输,降低功耗的同时提高性能。
存算一体芯片架构被认为是目前解决大数据实时智能处理的高能效硬件平台之一,而存算一体单元阵列是存算一体芯片的核心电路。基于浮栅晶体管的存算一体芯片单元阵列如图1所示,每个存算一体单元阵列对应神经网络的一层,其中,每个存算一体单元阵列周围均设有ADC、DAC、行列译码器等外围电路,参见图2;在上述存算一体芯片架构中,神经网络的多层对应多个存算一体单元阵列,导致外围电路的面积较大,尤其是ADC和DAC,相比存算一体单元阵列的面积较大,带来成本开销。同时传统存算一体芯片依据神经网络的串行数据流方式进行串行计算,时延较大。
发明内容
针对现有技术中的问题,本发明提供一种存算一体芯片并行工作的流水线控制方法,能够至少部分地解决现有技术中存在的问题。
为了实现上述目的,本发明采用如下技术方案:
第一方面,提供一种存算一体芯片阵列并行工作的流水线控制方法,所述存算一体芯片包括多个阵列排布的存算一体单元阵列,同行的存算一体单元阵列共用DAC,同列的存算一体单元阵列共用ADC,非同行非同列的存算一体单元阵列可以同时并行工作,并行工作的每个存算一体单元阵列用于实现一层神经网络的矩阵乘加运算;
所述存算一体芯片并行工作的流水线控制方法包括:
获取实现一层神经网络的各步骤的时延;
根据各步骤的时延对同时并行工作的非同行非同列的多个存算一体单元阵列进行流水线控制。
进一步地,所述根据各步骤的时延对同时并行工作的非同行非同列的多个存算一体单元阵列进行流水线控制,包括:
根据各步骤的时延产生流水线控制策略;
根据所述流水线控制策略对同时并行工作的非同行非同列的多个存算一体单元阵列进行流水线控制。
进一步地,所述流水线控制策略包括:控制第一个存算一体单元阵列执行第1步骤;依据已执行步骤的时延控制各存算一体单元阵列的动作,直至最后一个存算一体单元阵列执行第1步骤。
进一步地,所述依据已执行步骤的时延控制各存算一体单元阵列的动作,包括:根据第1步骤的时延控制第二个存算一体单元阵列执行第1步骤,同时,所述第一个存算一体单元阵列执行第2步骤;根据第1步骤的时延、第2步骤的时延控制第三个存算一体单元阵列执行第1步骤,同时,所述第一个存算一体单元阵列执行第2步骤,所述第二个存算一体单元阵列执行第1步骤,依此类推。
进一步地,一层神经网络运算包括4个步骤:输入、数模转换(DA)、模数转换(AD)、输出,这4个步骤的时延分别为D1、D2、D3、D4;
所述流水线控制策略为4级流水线控制策略,包括:
控制第一个存算一体单元阵列执行输入步骤;
根据输入步骤的时延,当第一个存算一体单元阵列执行输入步骤结束后,控制第二个存算一体单元阵列执行输入步骤,同时,所述第一个存算一体单元阵列执行数模转换步骤;
根据输入步骤的时延以及数模转换步骤的时延,当第二个存算一体单元阵列执行输入步骤结束,并且,所述第一个存算一体单元阵列执行数模转换步骤结束后,控制第三个存算一体单元阵列执行输入步骤,同时,所述第一个存算一体单元阵列执行模数转换步骤,第二个存算一体单元阵列执行数模转换步骤;
根据输入步骤的时延、数模转换步骤的时延以及模数转换步骤的时延,当第三个存算一体单元阵列执行输入步骤结束,并且,所述第一个存算一体单元阵列执行模数转换步骤结束,并且,第二个存算一体单元阵列执行数模转换步骤结束后,控制第四个存算一体单元阵列执行输入步骤,同时,所述第三个存算一体单元阵列执行数模转换步骤,并且,所述第一个存算一体单元阵列执行输出步骤,并且,第二个存算一体单元阵列执行模数转换步骤。
第二方面,提供一种存算一体芯片并行工作的流水线控制装置,所述存算一体芯片包括多个阵列排布的存算一体单元阵列,同行的存算一体单元阵列共用DAC,同列的存算一体单元阵列共用ADC,非同行非同列的存算一体单元阵列可以同时并行工作,并行工作的每个存算一体单元阵列用于实现一层神经网络的矩阵乘加运算;
所述存算一体芯片并行工作的流水线控制装置包括:
时延获取模块,获取实现一层神经网络的各步骤的时延;
流水线控制模块,根据各步骤的时延对同时并行工作的非同行非同列的多个存算一体单元阵列进行流水线控制。
进一步地,所述流水线控制模块包括:
策略产生单元,根据各步骤的时延产生流水线控制策略;
流水线控制单元,根据所述流水线控制策略对同时并行工作的非同行非同列的多个存算一体单元阵列进行流水线控制。
进一步地,所述流水线控制策略包括:控制第一个存算一体单元阵列执行第1步骤;依据已执行步骤的时延控制各存算一体单元阵列的动作,直至最后一个存算一体单元阵列执行第1步骤。
第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的存算一体芯片存算一体单元阵列并行工作的流水线控制方法的步骤。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的存算一体芯片存算一体单元阵列并行工作的流水线控制方法的步骤。
本发明提供的存算一体芯片并行工作的流水线控制方法,所述存算一体芯片包括多个阵列排布的存算一体单元阵列,同行的存算一体单元阵列共用DAC,同列的存算一体单元阵列共用ADC,非同行非同列的存算一体单元阵列可以同时并行工作,并行工作的每个存算一体单元阵列用于实现一层神经网络的矩阵乘加运算;所述存算一体芯片存算一体单元阵列并行工作的流水线控制方法包括:获取实现一层神经网络的各步骤的时延;根据各步骤的时延对同时并行工作的非同行非同列的多个存算一体单元阵列进行流水线控制,通过采用上述技术方案,实现多任务时分复用,一方面能够减少芯片面积,提高并行度,提高处理速度提高吞吐量,减少阵列个数,降低成本。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为现有基于浮栅晶体管的存算一体芯片单元阵列的电路图;
图2为现有基于浮栅晶体管的存算一体芯片的结构图;
图3是本发明实施例中的存算一体单元阵列的电路图;
图4示出了本发明实施例中另一种存算一体单元阵列的电路图;
图5示出了图4中的存储单元为浮栅晶体管时存算一体单元阵列的电路图;
图6示出了本发明实施例中多个不同行不同列的存算一体单元阵列并行工作的示意图;
图7示出了本发明实施例中图6所示时刻的下一时刻另外多个不同行不同列存算一体单元阵列并行工作的示意图;
图8示出了本发明实施例中的存算一体芯片并行工作的流水线控制方法的流程图;
图9示出了图6所示多个存算一体单元阵列的各个步骤;
图10示出了图9中的多个存算一体单元阵列的流水线控制原理;
图11示出了图9中的多个存算一体单元阵列的流水线控制过程。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图3是本发明实施例中的存算一体单元阵列的电路图;存算一体芯片包括多个阵列排布的存算一体单元阵列,同行的存算一体单元阵列共用DAC,同列的存算一体单元阵列共用ADC,非同行非同列的存算一体单元阵列可以同时并行工作,并行工作的每个存算一体单元阵列用于实现一层神经网络的矩阵乘加运算;每个存算一体单元阵列的本地字线(sWL)通过一个开关管接到全局WL,通过sWL即可控制开关管的开、闭状态,从而控制每个存算一体单元阵列是否激活。
图4示出了本发明实施例中另一种存算一体单元阵列的电路图,多个阵列排布的存算一体单元阵列2011~20nm用于分别执行不同的模拟向量-矩阵乘法运算;
每个存算一体单元阵列均包括:多个开关单元K以及多个阵列排布的存储单元M,该存储单元的阈值电压可调,通过调节存储单元的阈值电压,将每个存储单元看作一个可变的等效模拟权重,相当于模拟矩阵数据,对存算一体单元阵列施加模拟电压,实现矩阵乘法运算功能。
每一列的所有存储单元的第一端均连接源线SL,第二端均连接位线BL,每一行的所有存储单元的第三端均通过一开关单元K连接字线WL,多行存储单元对应连接多个开关单元,多个开关单元的控制端均连接该存算一体单元阵列的本地字线SWL11,通过控制所述本地字线控制该存算一体单元阵列是否激活。
具体地,当需要该存算一体单元阵列参与运算时,控制该本地字线SWL11,进而控制该存算一体单元阵列的各开关单元的开闭状态,以控制该存算一体单元阵列激活或非激活。
值得说明的是,通过控制各存算一体单元阵列的本地字线,将需要投入工作的存算一体单元阵列激活。
待运算信号可为数字信号,具有多个数字位,每一个数字位均通过一个DAC转换为模拟信号,多个数字位通过多个DAC分别转换为多个模拟信号,多个模拟信号分别输入已激活的存算一体单元阵列对应的多个字线WL,经已激活的存算一体单元阵列进行模拟向量-矩阵乘法运算后,通过已激活的存算一体单元阵列对应的多个位线输出运算结果,多个位线对应多个ADC,多个位线输出的多个模拟信号经多个ADC转换为数字信号后输出。
在一个可选的实施例中,该开关单元可包括:第一开关元件以及第二开关元件;
所述第一开关元件的第一端接入第一电平,第二端连接所述第二开关元件的第一端,所述第二开关元件的第二端连接字线,所述第一开关元件的第三端和所述第二开关元件的第三端均连接所述本地字线,所述开关单元对应行的所有存储单元的第三端均连接在所述第一开关元件的第二端与所述第二开关元件第一端之间;
其中,工作时,该存算一体单元阵列所对应的开关单元的第一开关元件和第二开关元件中的一个处于导通状态,另一个处于关闭状态。
本领域技术人员能够明了,开关元件可采用NMOS晶体管或PMOS晶体管实现,开关元件的第一端可为源极,开关元件的第二端可为漏极,开关元件的第三端可为栅极。当然,本发明实施例中开关元件的第一端也可以为漏极,则开关元件的第二端为源极,本发明对此不作限定,可根据晶体管的类型合理选择即可。
另外,该第一电平可为低电平或地电平。
其中,第一开关元件可为NMOS晶体管,第二开关元件可为PMOS晶体管;或者,第一开关元件可为PMOS晶体管,第二开关元件可为NMOS晶体管,本发明实施例对此不作限制,只需满足工作时,该存算一体单元阵列所对应的开关单元的第一开关元件和第二开关元件中的一个处于导通状态,另一个处于关闭状态即可,即二者互补导通。
举例来说,当第一开关元件为PMOS晶体管、第二开关元件为NMOS晶体管时,当一个存算一体单元阵列的本地字线上加载高电平时,NMOS晶体管导通,PMOS晶体管关闭,该存算一体单元阵列被激活,各存储单元的第三端接收字线上的输入信号。当一个存算一体单元阵列的本地字线上加载地电平时,NMOS晶体管关闭,PMOS晶体管关闭,该存算一体单元阵列未被激活,各存储单元的第三端通过PMOS晶体管接地。图5示出了存储单元为浮栅晶体管时存算一体单元阵列的电路图。
本发明实施例中利用一个大的存算一体单元阵列实现多层神经网络,以减小外围电路的开销,如图6所示,可以把存算一体单元阵列分成n个(这里n=16)个小阵列,每个小阵列对应完成一层神经网络的矩阵乘加运算,多个小阵列(满足非同行非同列)可以并行工作,如图6所示,标黑的4个子阵列可以同时并行工作,以减小面积,提高并行度,提高处理速度(多个子阵列并行工作),实现多任务时分复用,比如第一个时刻是如图6所示(1,7,10,16个子阵列工作);那第二个时刻可以运行(2,8,11,13子阵列)对应的神经网络任务,如图7所示。
图8示出了本发明实施例中的存算一体芯片并行工作的流水线控制方法的流程图,该流水线控制方法用于控制上述存算一体单元阵列并行工作,以提高芯片并行度,进而提高算力;如图8所示,该存算一体芯片并行工作的流水线控制方法可以包括以下内容:
步骤S100:获取实现一层神经网络的各步骤的时延;
其中,一层神经网络的各步骤的时延可以通过统计学手段得到,或者根据以往的经验获取。
步骤S200:根据各步骤的时延对同时并行工作的非同行非同列的多个存算一体单元阵列进行流水线控制。
具体地,首先根据各步骤的时延产生流水线控制策略;而后,根据所述流水线控制策略对同时并行工作的非同行非同列的多个存算一体单元阵列进行流水线控制,即根据流水线控制策略将输入加载至各存算一体单元阵列,以便存算一体单元阵列执行对应运算。
通过采用上述技术方案,实现多任务时分复用,一方面能够减少芯片面积,提高并行度,提高处理速度提高吞吐量,减少阵列个数,降低成本。
在一个可选的实施例中,流水线控制策略包括:控制第一个存算一体单元阵列执行第1步骤;依据已执行步骤的时延控制各存算一体单元阵列的动作,直至最后一个存算一体单元阵列执行第1步骤。
其中,依据已执行步骤的时延控制各存算一体单元阵列的动作,包括:根据第1步骤的时延控制第二个存算一体单元阵列执行第1步骤,同时,所述第一个存算一体单元阵列执行第2步骤;根据第1步骤的时延、第2步骤的时延控制第三个存算一体单元阵列执行第1步骤,同时,所述第一个存算一体单元阵列执行第2步骤,所述第二个存算一体单元阵列执行第1步骤,依此类推。
为了使本领域技术人员更好地理解本申请,下面举例对本申请进行说明:
其中,一个包含多个存算一体单元阵列的芯片执行矩阵乘加运算的多个层,每层神经网络运算通常包括4个步骤:输入、数模转换(DA)、模数转换(AD)、输,实际运算基于电流电压定律,可以忽略延时。假设这4个步骤所需的时延分别为D1、D2、D3、D4。因为各个步骤有时延,为了提高吞吐量,可以设计4级流水线。通过采用一个4X4的存算一体单元阵列结构实现上述运算,可以设计4级流水线如图9所示(因为不同行不同列的阵列子块可以同时工作,但需要4X4个阵列),通过设计流水线可以减小阵列的个数,从而减小芯片面积,图10示出了图9中的多个存算一体单元阵列的流水线控制原理。
其中,所述流水线控制策略为4级流水线控制策略,该步骤S200可以包括:
根据输入、DA、AD、输出的时延产生4级流水线控制策略;
根据所述4级流水线控制策略对同时并行工作的非同行非同列的4个存算一体单元阵列进行4级流水线控制。
其中,4级流水线控制策略包括:
控制第一个存算一体单元阵列执行输入1步骤;
根据输入步骤的时延,当第一个存算一体单元阵列执行输入1步骤结束后,控制第二个存算一体单元阵列执行输入2步骤,同时,所述第一个存算一体单元阵列执行DA1步骤;
根据输入步骤的时延以及DA步骤的时延,当第二个存算一体单元阵列执行输入2步骤结束,并且,所述第一个存算一体单元阵列执行DA1步骤结束后,控制第三个存算一体单元阵列执行输入3步骤,同时,所述第一个存算一体单元阵列执行AD1步骤,第二个存算一体单元阵列执行DA2步骤;
根据输入步骤的时延、DA步骤的时延以及AD步骤的时延,当第三个存算一体单元阵列执行输入3步骤结束,并且,所述第一个存算一体单元阵列执行AD1步骤结束,并且,第二个存算一体单元阵列执行DA2步骤结束后,控制第四个存算一体单元阵列执行输入4步骤,同时,所述第三个存算一体单元阵列执行DA3步骤,并且,所述第一个存算一体单元阵列执行输出1步骤,并且,第二个存算一体单元阵列执行AD2步骤。
基于同一发明构思,本申请实施例还提供了一种存算一体芯片并行工作的流水线控制装置,可以用于实现上述实施例所描述的方法,如下面的实施例所述。由于存算一体芯片并行工作的流水线控制装置解决问题的原理与上述方法相似,因此存算一体芯片并行工作的流水线控制装置的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
该存算一体芯片并行工作的流水线控制装置包括:
时延获取模块,获取实现一层神经网络的各步骤的时延;
流水线控制模块,根据各步骤的时延对同时并行工作的非同行非同列的多个存算一体单元阵列进行流水线控制。
在一个可选的实施例中,所述流水线控制模块包括:
策略产生单元,根据各步骤的时延产生流水线控制策略;
流水线控制单元,根据所述流水线控制策略对同时并行工作的非同行非同列的多个存算一体单元阵列进行流水线控制。
在一个可选的实施例中,所述流水线控制策略包括:控制第一个存算一体单元阵列执行第1步骤;依据已执行步骤的时延控制各存算一体单元阵列的动作,直至最后一个存算一体单元阵列执行第1步骤。
上述实施例阐明的装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为电子设备,具体的,电子设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
在一个典型的实例中电子设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述存算一体芯片并行工作的流水线控制方法的步骤。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述存算一体芯片并行工作的流水线控制方法的步骤。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变存储器(PRAM)、阻变存储器(RRAM),静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种存算一体芯片并行工作的流水线控制方法,其特征在于,所述存算一体芯片包括多个阵列排布的存算一体单元阵列,同行的存算一体单元阵列共用DAC,同列的存算一体单元阵列共用ADC,非同行非同列的存算一体单元阵列可以同时并行工作,并行工作的每个存算一体单元阵列用于实现一层神经网络的矩阵乘加运算;
所述存算一体芯片存算一体单元阵列并行工作的流水线控制方法包括:
获取实现一层神经网络的各步骤的时延;
根据各步骤的时延对同时并行工作的非同行非同列的多个存算一体单元阵列进行流水线控制。
2.根据权利要求1所述的存算一体芯片并行工作的流水线控制方法,其特征在于,所述根据各步骤的时延对同时并行工作的非同行非同列的多个存算一体单元阵列进行流水线控制,包括:
根据各步骤的时延产生流水线控制策略;
根据所述流水线控制策略对同时并行工作的非同行非同列的多个存算一体单元阵列进行流水线控制。
3.根据权利要求2所述的存算一体芯片并行工作的流水线控制方法,其特征在于,所述流水线控制策略包括:控制第一个存算一体单元阵列执行第1步骤;依据已执行步骤的时延控制各存算一体单元阵列的动作,直至最后一个存算一体单元阵列执行第1步骤。
4.根据权利要求3所述的存算一体芯片并行工作的流水线控制方法,其特征在于,所述依据已执行步骤的时延控制各存算一体单元阵列的动作,包括:根据第1步骤的时延控制第二个存算一体单元阵列执行第1步骤,同时,所述第一个存算一体单元阵列执行第2步骤;根据第1步骤的时延、第2步骤的时延控制第三个存算一体单元阵列执行第1步骤,同时,所述第一个存算一体单元阵列执行第2步骤,所述第二个存算一体单元阵列执行第1步骤,依此类推。
5.根据权利要求1所述的存算一体芯片并行工作的流水线控制方法,其特征在于,一层神经网络运算包括4个步骤:输入、数模转换、模数转换、输出,这4个步骤的时延分别为D1、D2、D3、D4;
所述流水线控制策略为4级流水线控制策略,包括:
控制第一个存算一体单元阵列执行输入步骤;
根据输入步骤的时延,当第一个存算一体单元阵列执行输入步骤结束后,控制第二个存算一体单元阵列执行输入步骤,同时,所述第一个存算一体单元阵列执行数模转换步骤;
根据输入步骤的时延以及数模转换步骤的时延,当第二个存算一体单元阵列执行输入步骤结束,并且,所述第一个存算一体单元阵列执行数模转换步骤结束后,控制第三个存算一体单元阵列执行输入步骤,同时,所述第一个存算一体单元阵列执行模数转换步骤,第二个存算一体单元阵列执行数模转换步骤;
根据输入步骤的时延、数模转换步骤的时延以及模数转换步骤的时延,当第三个存算一体单元阵列执行输入步骤结束,并且,所述第一个存算一体单元阵列执行模数转换步骤结束,并且,第二个存算一体单元阵列执行数模转换步骤结束后,控制第四个存算一体单元阵列执行输入步骤,同时,所述第三个存算一体单元阵列执行数模转换步骤,并且,所述第一个存算一体单元阵列执行输出步骤,并且,第二个存算一体单元阵列执行模数转换步骤。
6.一种存算一体芯片并行工作的流水线控制装置,其特征在于,所述存算一体芯片包括多个阵列排布的存算一体单元阵列,同行的存算一体单元阵列共用DAC,同列的存算一体单元阵列共用ADC,非同行非同列的存算一体单元阵列可以同时并行工作,并行工作的每个存算一体单元阵列用于实现一层神经网络的矩阵乘加运算;
所述存算一体芯片并行工作的流水线控制装置包括:
时延获取模块,获取实现一层神经网络的各步骤的时延;
流水线控制模块,根据各步骤的时延对同时并行工作的非同行非同列的多个存算一体单元阵列进行流水线控制。
7.根据权利要求6所述的存算一体芯片并行工作的流水线控制装置,其特征在于,所述流水线控制模块包括:
策略产生单元,根据各步骤的时延产生流水线控制策略;
流水线控制单元,根据所述流水线控制策略对同时并行工作的非同行非同列的多个存算一体单元阵列进行流水线控制。
8.根据权利要求7所述的存算一体芯片并行工作的流水线控制装置,其特征在于,所述流水线控制策略包括:控制第一个存算一体单元阵列执行第1步骤;依据已执行步骤的时延控制各存算一体单元阵列的动作,直至最后一个存算一体单元阵列执行第1步骤。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至5任一项所述的存算一体芯片并行工作的流水线控制方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至5任一项所述的存算一体芯片并行工作的流水线控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011187603.9A CN112231631A (zh) | 2020-10-29 | 2020-10-29 | 存算一体芯片并行工作的流水线控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011187603.9A CN112231631A (zh) | 2020-10-29 | 2020-10-29 | 存算一体芯片并行工作的流水线控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112231631A true CN112231631A (zh) | 2021-01-15 |
Family
ID=74122655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011187603.9A Pending CN112231631A (zh) | 2020-10-29 | 2020-10-29 | 存算一体芯片并行工作的流水线控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112231631A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115312095A (zh) * | 2022-10-10 | 2022-11-08 | 电子科技大学 | 一种支持内部数据更新的存内计算流水乘加电路 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018103736A1 (en) * | 2016-12-09 | 2018-06-14 | Beijing Horizon Information Technology Co., Ltd. | Systems and methods for data management |
CN209766043U (zh) * | 2019-06-26 | 2019-12-10 | 北京知存科技有限公司 | 存算一体芯片、存储单元阵列结构 |
CN110990060A (zh) * | 2019-12-06 | 2020-04-10 | 北京瀚诺半导体科技有限公司 | 一种存算一体芯片的嵌入式处理器、指令集及数据处理方法 |
-
2020
- 2020-10-29 CN CN202011187603.9A patent/CN112231631A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018103736A1 (en) * | 2016-12-09 | 2018-06-14 | Beijing Horizon Information Technology Co., Ltd. | Systems and methods for data management |
CN209766043U (zh) * | 2019-06-26 | 2019-12-10 | 北京知存科技有限公司 | 存算一体芯片、存储单元阵列结构 |
CN110990060A (zh) * | 2019-12-06 | 2020-04-10 | 北京瀚诺半导体科技有限公司 | 一种存算一体芯片的嵌入式处理器、指令集及数据处理方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115312095A (zh) * | 2022-10-10 | 2022-11-08 | 电子科技大学 | 一种支持内部数据更新的存内计算流水乘加电路 |
CN115312095B (zh) * | 2022-10-10 | 2023-01-03 | 电子科技大学 | 一种支持内部数据更新的存内计算流水乘加电路 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7173709B2 (ja) | ニューラルネットワーク回路 | |
CN110597555B (zh) | 非易失性存内计算芯片及其运算控制方法 | |
US20200233923A1 (en) | Binary, ternary and bit serial compute-in-memory circuits | |
US11335400B2 (en) | Computing-in-memory chip and memory cell array structure | |
KR102139213B1 (ko) | 디램 기반 프로세싱 유닛 | |
JP6920169B2 (ja) | Dram基盤の確率論的コンピューティングシステム | |
CN107533459A (zh) | 使用电阻存储器阵列的数据处理 | |
CN209766043U (zh) | 存算一体芯片、存储单元阵列结构 | |
CN110597484B (zh) | 基于存内计算的多比特全加器、多比特全加运算控制方法 | |
JP2023513129A (ja) | インメモリ計算のためのスケーラブルなアレイアーキテクチャ | |
US11934798B2 (en) | Counter-based multiplication using processing in memory | |
US9922696B1 (en) | Circuits and micro-architecture for a DRAM-based processing unit | |
CA3137231A1 (en) | Training of artificial neural networks | |
WO2020172951A1 (zh) | 可软件定义存算一体芯片及其软件定义方法 | |
Chen et al. | Partition SRAM and RRAM based synaptic arrays for neuro-inspired computing | |
US11018687B1 (en) | Power-efficient compute-in-memory analog-to-digital converters | |
CN110941185A (zh) | 一种用于二值神经网络的双字线6tsram单元电路 | |
Wang et al. | Device Variation Effects on Neural Network Inference Accuracy in Analog In‐Memory Computing Systems | |
CN112231631A (zh) | 存算一体芯片并行工作的流水线控制方法 | |
Le Gallo et al. | Using the IBM analog in-memory hardware acceleration kit for neural network training and inference | |
CN110729017B (zh) | 存储器装置以及电子装置 | |
KR20210001574A (ko) | 벡터-매트릭스 곱셈을 수행하는 연산 회로 및 이를 포함하는 반도체 장치 | |
Dhakad et al. | In-Memory Computing with 6T SRAM for Multi-operator Logic Design | |
CN117157636A (zh) | 存算一体装置、系统及其操作方法 | |
KR20220008743A (ko) | 메모리 내의 컴퓨팅 회로 및 방법 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210115 |