CN113344193A - 计算电路和包括计算电路的深度学习系统 - Google Patents

计算电路和包括计算电路的深度学习系统 Download PDF

Info

Publication number
CN113344193A
CN113344193A CN202010803936.3A CN202010803936A CN113344193A CN 113344193 A CN113344193 A CN 113344193A CN 202010803936 A CN202010803936 A CN 202010803936A CN 113344193 A CN113344193 A CN 113344193A
Authority
CN
China
Prior art keywords
drain
weight
path
data
value
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
Application number
CN202010803936.3A
Other languages
English (en)
Inventor
南智勋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN113344193A publication Critical patent/CN113344193A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8046Systolic arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining
    • G06F2207/3892Systolic array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks

Abstract

本公开涉及一种计算电路,该计算电路可以包括构成由多行和多列组成的脉动阵列的多个计算器组,其中多行中的每一行中包括的计算器组在数据传播方向上通过与该行相对应的单个数据路径传播数据值集,并在漏极传播方向上通过与该行相对应的多个漏极路径传播多个漏极值集,其中多行中的每一行中包括的计算器组中的一计算器组包括多个MAC(乘法累加器)电路,并且MAC电路同时生成漏极值集中分别包括的漏极值。每一列中包括的计算器组可以进一步通过与该列相对应的多个权重数据路径来传播与该列相对应的权重值集。

Description

计算电路和包括计算电路的深度学习系统
相关申请的交叉引用
本申请要求于2020年2月18日向韩国知识产权局提交的申请号为 10-2020-0019532的韩国申请的优先权,该韩国申请通过引用整体并入 本文。
技术领域
各个实施例总体涉及一种计算电路,并且更特别地,涉及一种包 括MAC(乘法累加器)电路的计算电路。
背景技术
通过处理大数据或大规模数据来获得有用信息的深度学习系统是 一项逐日发展的前沿技术,以更高的速度处理更多数据。深度学习系 统可能需要大量的MAC(乘法累加)计算,这需要较长的计算时间和 较高的功耗。因此,MAC操作电路的操作性能可能与深度学习系统的 性能直接相关。
发明内容
各个实施例针对一种可以以较高的操作效率和较高的钟点吞吐量 来操作的计算电路,以及包括该计算电路的深度学习系统。
在实施例中,一种计算电路可以包括构成由多行和多列组成的脉 动阵列的多个计算器组,其中多行中的每一行中包括的计算器组在数 据传播方向上通过与该行相对应的单个数据路径传播数据值集,并在 漏极传播方向上通过与该行相对应的多个漏极路径传播多个漏极值集, 其中多行中的每一行中包括的计算器组中的一计算器组包括多个MAC(乘法累加器)电路,并且MAC电路同时生成漏极值集中分别包 括的漏极值。
在实施例中,一种计算电路可以包括构成由多行和多列组成的脉 动阵列的多个计算器组,其中多行中的每一行中包括的计算器组通过 与该行相对应的单个数据路径联接,其中多列中的每一列中包括的计 算器组通过与该列相对应的多个权重路径联接。
在实施例中,一种深度学习系统可以包括:多个计算器组,构成 由多行和多列组成的脉动阵列;以及多个激活组,分别与多行相对应, 其中多行中的每一行中包括的计算器组联接到与该行相对应的单个数 据路径和与该行相对应的多个漏极路径,其中激活组中的每一个包括 被配置成同时从相应行的漏极路径接收多个漏极值集的多个子激活单元,并且子激活单元中的每一个基于相应的漏极值集执行激活函数计 算。
根据实施例,计算电路和包括该计算电路的深度学习系统可以以 较高的操作效率和较高的钟点吞吐量来操作。
附图说明
图1A示出了包括3×3脉动阵列的计算电路。
图1B示出了图1A的计算电路的计算结果。
图2A示出了包括n×m脉动阵列的计算电路。
图2B示出了在图2A的n×m脉动阵列的第一行中的第一计算器和 第m计算器的操作。
图3是示出漏极冲突的时序图。
图4是示出用于防止图3中的漏极冲突的操作的时序图。
图5示出了根据实施例的包括高级脉动阵列的计算电路。
图6详细示出了根据实施例的图5的计算器组。
图7是示出根据实施例的图5的高级脉动阵列的第一行中包括的第 一计算器组和第j计算器组的操作的时序图。
图8示出了根据实施例的计算电路。
图9详细示出了根据实施例的图8的计算器组。
图10是示出根据实施例的图8的高级脉动阵列的第一行中包括的 第一计算器组和第j计算器组的操作的时序图。
图11示出了根据实施例的计算电路。
图12详细示出了根据实施例的图11的计算器组。
图13是示出根据实施例的图11的计算电路的第一行中包括的第一 计算器组和第j计算器组的操作的时序图。
图14详细示出了根据实施例的计算器组。
图15示出了深度学习系统。
图16示出了根据实施例的高级深度学习系统。
图17示出了应用了根据实施例的高级深度学习系统的LSTM(长短 时记忆)网络。
图18A是应用了图17的高级深度学习系统的LSTM网络的输出时 序图。
图18B是应用了图15的深度学习系统的LSTM网络的输出时序图。
图19示出了根据实施例的包括漏极路径选择单元的高级深度学习 系统。
具体实施方式
下面将参照附图,通过以下实施例来描述本公开的优点和特征以 及用于实现这些优点和特征的方法。然而,本公开不限于本文描述的 实施例,而是可以以不同的方式实施。提供实施例仅是为了详细描述 本公开,使得本公开所属领域的技术人员可以容易地执行本公开的技 术思想。
实施例不限于附图中示出的特定形状,而且为了清楚起见可能被 夸大。在本说明书中,使用了特定术语。然而,术语仅用于描述本公 开,并不限制权利要求中所描述的本公开的范围。
在本说明书中,诸如“和/或”的表述可以指示包括该表述之前/ 之后列出的一个或多个组件。然而,诸如“连接/联接”的表述可以指 示一个元件直接连接/联接到另一元件,或者通过又一元件间接连接/ 联接到另一元件。除非相反地指出,否则单数形式的术语可以包括复 数形式。此外,“包含”和“包括”或“包含有”和“包括有”的意义 可以指定组件、步骤、操作和元件,并且不排除一个或多个其它组件、 步骤、操作和元件的存在或添加。
下文中,将参照附图详细地描述说明性实施例。
图1A示出了包括3×3脉动阵列的计算电路SA1。
计算电路SA1可以包括构成由三行和三列组成的脉动阵列的计算 器MACU11至MACU13、MACU21至MACU23以及MACU31至 MACU33。计算器MACU11至MACU13、MACU21至MACU23以及 MACU31至MACU33中的每一个可以包括MAC(乘法累加器)电路。 三行可以分别联接到数据值被传播到的数据路径IP1至IP3,并且可以 分别连接到漏极值被传播到的漏极路径DP1至DP3。三列可以分别联接 到权重值被传播到的权重路径WP1至WP3。
脉动阵列的每一行可以通过相应的数据路径接收包括三个数据值 的数据值集。第一行(图1A中的底行)可以首先开始接收在第一输入 周期(例如第一时钟周期)中的数据值集,并且从第二行到最后一行 的其它行中的每一行可以接收比前一行晚一个时钟周期的数据值集。
脉动阵列的每一列可以通过相应的权重路径接收包括三个权重值 的权重值集。第一列(图1A中的最左列)可以首先开始接收在第一输 入周期(例如第一时钟周期)中的权重值集,并且从第二列到最后一 列的其它列中的每一列可以接收比前一列晚一个时钟周期的权重值集。
在每一行中,可以在每个时钟周期中逐一地将三个数据值顺序输 入到相应行的第一计算器。每一行中的计算器可以在当前时钟周期中 将在前一时钟周期中输入的数据值沿数据传播方向(此处,从左到右) 传播到下一计算器。数据值可以向右传播到每一行中的最后的计算器。
在每一列中,可以在每个时钟周期中逐一地将三个权重值顺序输 入到相应列的第一计算器。每一列中的计算器可以在当前时钟周期中 将在前一时钟周期中输入的权重值沿权重传播方向(此处,向上)传 播到下一计算器。权重值可以向上传播到每一列中的最后的计算器。
例如,在第一时钟t1,可以通过数据路径IP1将数据值i11输入到计 算器MACU11,并且可以通过权重路径WP1将权重值w11输入到计算器 MACU11。
在第二时钟t2,计算器MACU11可以通过数据路径IP1将数据值i11 传播到计算器MACU12,并且通过权重路径WP1将权重值w11传播到计 算器MACU21。此外,可以通过数据路径IP1和IP2分别将数据值i12和 i21输入到计算器MACU11和MACU21。可以通过权重路径WP1和WP2 分别将权重值w21和w12输入到计算器MACU11和MACU12。
在第三时钟t3,计算器MACU12可以通过数据路径IP1将数据值i11 传播到计算器MACU13,并且通过权重路径WP2将权重值w12传播到计 算器MACU22。计算器MACU21可以通过数据路径IP2将数据值i21传播 到计算器MACU22,并且通过权重路径WP1将权重值w11传播到计算器 MACU31。计算器MACU11可以通过数据路径IP1将数据值i12传播到计 算器MACU12,并且通过权重路径WP1将权重值w21传播到计算器 MACU21。此外,可以通过数据路径IP1、IP2和IP3分别将数据值i13、 i22和i31输入到计算器MACU11、MACU21和MACU31。可以通过权重 路径WP1、WP2和WP3分别将权重值w31、w22和w13输入到计算器 MACU11、MACU12和MACU13。
通过这种方式,可以将其它数据值和权重值在第四时钟t4和第五 时钟t5输入到计算器。可以将数据值向右传播到行中的最后计算器 MCU13、MACU23和MACU33,并且可以将权重值向上传播到列中的 最后计算器MCU11、MACU21和MACU31。
尽管未示出,计算电路SA1可以进一步包括控制单元。控制单元 可以在它们各自的适当时钟周期中将数据值和权重值输入到脉动阵列。
图1B是示出图1A的计算电路SA1的计算结果的示图。
参照图1B,计算器MACU11至MACU13、MACU21至MACU23和 MACU31至MACU33中的每一个可以在各自的时钟周期中将输入的数 据值和权重值相乘,并且通过累加乘积结果生成结果值,即,漏极值。
脉动阵列中的每一行可以通过相应的漏极路径输出包括三个漏极 值的漏极值集。脉动阵列的所有行可以同时开始输出漏极值集。
每一行中的每个计算器可以沿漏极传播方向(此处,从右到左) 传播其漏极值,然后传播从上一计算器传播的后续漏极值。因此,第 一行的第一计算器MACU11可以在时钟t11至t13顺序地输出计算器 MACU11至MACU13的漏极值d11、d12和d13,第二行的第一计算器 MACU21可以在时钟t11至t13顺序地输出计算器MACU21至MACU23 的漏极值d21、d22和d23,并且第三行的第一计算器MACU31可以在时 钟t11至t13顺序地输出计算器MACU31至MACU33的漏极值d31、d32 和d33。
图2A是示出包括n×m脉动阵列的计算电路SA2的框图。
计算电路SA2可以包括构成由n行和m列组成的脉动阵列的计算器 MACU11至MACU1m、MACU21至MACU2m、……、以及MACUn1 至MACUnm。计算器MACU11至MACU1m、MACU21至MACU2m、……、以及MACUn1至MACUnm中的每一个可以包括MAC。 计算器MACU11至MACU1m、MACU21至MACU2m、……、以及 MACUn1至MACUnm可以联接到数据路径IP1至IPn、漏极路径DP1至 DPn和权重路径WP1至WPm。n行中的每一行可以联接到数据路径IP1 至IPn之中的相应的单个数据路径。n行中的每一行可以联接到漏极路 径DP1至DPn之中的相应的单个漏极路径。m列中的每一列可以联接到 权重路径WP1至WPm之中的相应的单个权重路径。
图2A还示出了开始将数据值集输入到数据路径IP1至IPn的时间t1 至tn。时间可以指示时钟周期。例如,计算器MACU11可以在时间t1 开始从数据路径IP1接收数据值集。然后,计算器MACU11可以在下一 时间t2通过数据路径IP1将数据值传播到计算器MACU12。
此外,图2A还示出了开始将权重值集输入到权重路径WP1至WPm 的时间t1至tm。例如,计算器MACU11可以在时间t1开始从权重路径 WP1接收权重值集。然后,计算器MACU11可以在下一时间t2通过权 重路径WP1将权重值传播到计算器MACU21。
在各自的行中生成的漏极值集可以同时通过漏极路径DP1至DPn 开始从行中的第一计算器MACU11至MACUn1输出。
图2B是示出图2A的n×m脉动阵列的第一行中的第一计算器 MCU11和第m计算器MCU1m的操作的时序图。
参照图2A和图2B,将描述第一行中的计算器MACU11至MACU1m 的操作。首先,可以通过数据路径IP1和权重路径WP1将n个数据值i11 至i1n和n个权重值w11至wn1顺序地输入到第一计算器MACU11。数据 值i11至i1n可以构成与第一行相对应的数据值集,并且权重值w11至 wn1可以构成与第一列相对应的权重值集。
在自通过第一计算器MCU11接收到最后的数据值i1n起经过操作 时间opt2之后,第一计算器MACU11可以输出其漏极值d11。在实施例 中,操作时间opt2可以对应于第一计算器MCU11执行乘法累加运算所 需的时间。
图2B未示出通过第二计算器MCU12接收的数据值和权重值。然而, 第二计算器MCU12以与第一计算器MCU11类似的方式操作。也就是说, 第二计算器MACU12可以使用与第一行相对应的n个数据值i11至i1n和 与第二列相对应的n个权重值w12至wn2来生成漏极值d12,并且通过漏 极路径DP1将漏极值d12传播到第一计算器MCU11。在输出漏极值d11 之后,第一计算器MACU11可以通过漏极路径DP1输出漏极值d12。
可以通过数据路径IP1将数据值i11至i1n顺序地传播到第一至第m 计算器MACU11至MACU1m。数据传播时间prt21可以指示直到第一数 据值i11从第一计算器MCU11传播到第m计算器MCU1m所需的时间。 可以通过权重路径WPm将权重值w1m至wnm输入到第m计算器MCU1m。权重值w1m至wnm可以构成与第m列相对应的权重值集。
在自通过第m计算器MCU1m接收最后的数据值i1n起经过操作时 间opt2之后,第m计算器MACU1m可以输出其漏极值d1m。可以通过漏 极路径DP1将漏极值d1m从第m个计算器MCU1m传播到第一计算器 MCU11,然后从第一计算器MCU11输出。漏极传播时间prt22可以指示 通过漏极路径DP1将漏极值d1m从第m计算器MCU1m传播并且然后从 第一计算器MCU11输出所需的时间。漏极值d11至d1m可以构成与第一 行相对应的漏极值集。
此外,漏极时间drt2可以指示第一计算器MACU11输出第一行的计 算器MACU11至MACU1m的所有漏极值d11至d1m所需的时间。
图3是示出漏极冲突301的时序图。图3示出了图2A的计算电路SA2 的第一(即,底部)行中包括的第一计算器MCU11和第m计算器MCU1m 的操作。
参照图3,计算电路SA2可以处理第一数据,然后处理第二数据。
第一计算器MCU11输出第一数据的漏极值d11至d1m的过程可以 以与参照图2B描述的过程类似的方式执行。然而,当图3的n小于图2B 的n或者构成图3中的数据值集的数据值的数量小于图2B中的时,直到 数据值i11至i1n输入到计算器MACU11至MACU1m所需的总时间可能 小于图2B的时间。当图2B的m等于图3的m时,数据传播时间prt21和漏 极传播时间prt22可以大体上等于图2B的时间prt21和prt22。
在通过第一计算器MCU11生成第一数据的漏极值d11之后,可以输 入第二数据的数据值i11’至i1n’和权重值w11’至wn1’。在这种情况下, 当在从第一计算器MCU11输出第一数据的漏极值d11至d1m的同时生 成并输出第二数据的第一计算器MCU11的漏极值d11’时,可能发生漏 极冲突301。
可导致漏极冲突301的一个因素可能是数据传播时间prt21和漏极 传播时间prt22。也就是说,当数据传播时间prt21较长时,通过第m计 算器MCU1m计算第一数据的操作的开始可能被延迟。此外,当漏极传 播时间prt22较长时,通过第一计算器MACU11输出第一数据的漏极值 d11至d1m的操作的完成可能被延迟。因此,处理第一数据的操作的完 成可能被延迟,从而导致漏极冲突301。
图4是示出用于防止图3中示出的漏极冲突301的操作的时序图。图 4示出了图2A的计算电路SA2的第一(即,底部)行中包括的第一计算 器MCU11和第m计算器MCU1m的操作。
参照图4,第一计算器MCU11输出第一数据的漏极值d11至d1m的 过程可以以与图3的过程类似的方式执行。然而,为了防止漏极冲突301, 在自第一计算器MACU11的操作完成起经过等待时间wt4之后,第一计 算器MACU11可以接收第二数据。可以设置等待时间wt4,以便在第一 计算器MACU11输出第一数据的所有漏极值d11至d1m之后,生成并输 出第二数据的漏极值d11’。
然而,尽管等待时间wt4的设置可以防止漏极冲突301,但是它可 能导致诸如操作效率低和脉动阵列中的钟点吞吐量降低的副作用。
图5是示出根据实施例的包括高级脉动阵列的计算电路ASA1的框 图。
计算电路ASA1可以包括构成由n行和j列组成的高级脉动阵列的 计算器组MACGR11至MACGR1j、MACGR21至MACGR2j、……、以 及MACGRn1至MACGRnj。计算器组MACGR11至MACGR1j、 MACGR21至MACGR2j、……、以及MACGRn1至MACGRnj中的每一 个可以包括两个MAC电路。图5示出了计算器组中的每一个中包括两 个MAC电路的情况。然而,根据实施例,计算器组中的每一个可以包 括三个或更多个MAC电路。
计算器组MACGR11至MACGR1j、MACGR21至MACGR2j、……、 以及MACGRn1至MACGRnj可以通过数据路径IP1至IPn、漏极路径DP11至DPn1和DP12至DPn2以及权重路径WP1至WPm联接。n行中的 每一行可以联接到数据路径IP1至IPn之中的一个相应的数据路径。n行 中的每一行可以联接到漏极路径DP11至DPn1和DP12至DPn2之中的两 个相应的漏极路径。j列中的每一列可以联接到权重路径WP1至WPm之 中的两个相应的权重路径。此处,j可以是m的1/2。在类似于图5但在 每个计算器组中具有三个或更多个MAC电路的实施例中,j列中的每一列可以联接到数量与每个计算器组中的MAC电路的数量相等的多个 权重路径,n行中的每一行可以联接到数量与每个计算器组中的MAC 电路的数量相等的多个漏极路径,并且j可以与m除以每个计算器组中 MAC电路的数量相等,但是实施例并不限于此。
图5还示出了开始将数据值集输入到数据路径IP1至IPn的时间t1至 tn。例如,计算器组MACGR11可以在时间t1开始从数据路径IP1接收数 据值集。然后,计算器组MACGR11可以在下一时间t2通过数据路径IP1 将数据值传播到计算器组MACGR12。在实施例中,每一个时间可以对 应于时钟的各自的周期,但是实施例并不限于此。
此外,图5还示出了开始将权重值集输入到权重路径WP1至WPm 的时间t1至tj。例如,计算器组MACGR11可以在时间t1开始分别从权 重路径WP1和WP2接收两个权重值集。然后,计算器组MACGR11可以 在下一时间t2通过权重路径WP1和WP2将权重值传播到计算器组MACGR21。
在行中生成的漏极值集可以同时通过漏极路径DP11至DPn1和 DP12至DPn2开始从各行的第一计算器组MACGR11至MACGRn1输出。 如下文将描述的,计算器组中的每一个中的两个MAC电路可以同时生 成两个漏极值,并且每一行可以同时通过两个漏极路径输出两个漏极 值集。
计算电路ASA1可以进一步包括用于通过控制信号控制计算器组 MACGR11至MACGRn1的操作的控制单元CTLU。控制单元CTLU可以 在它们适当的时钟周期中将数据值和权重值输入到脉动阵列。
图6是详细示出根据实施例的图5的计算器组MACGR11的示图。
参照图6,输入数据路径I_IP1和输出路径数据O_IP1可以包括在图 5的数据路径IP1中。第一输入权重路径I_WP1和第一输出权重路径 O_WP1可以包括在图5的权重路径WP1中。第二输入权重路径I_WP2 和第二输出权重路径O_WP2可以包括在图5的权重路径WP2中。第一输 入漏极路径I_DP11和第一输出漏极路径O_DP11可以包括在图5的漏极 路径DP11中。第二输入漏极路径I_DP12和第二输出漏极路径O_DP12 可以包括在图5的漏极路径DP12中。
计算器组MACGR11可以包括第一和第二MAC电路MAC11和 MAC12、存储单元R1至R5以及选择单元S1和S2。第一MAC电路 MAC11可以包括第一乘法器MUL1和第一累加器ACC1。第二MAC电 路MAC12可以包括第二乘法器MUL2和第二累加器ACC2。存储单元R1 至R5可以被配置为触发器(例如,边沿触发D触发器)或锁存器。计 算器组MACGR11中包括的构成单元可以在图5示出的控制单元CTLU 的控制下操作。
存储单元R1可以从输入数据路径I_IP1接收数据值并且将所接收 到的数据值存储在其中。存储器单元R1可被称为数据值存储单元。存 储单元R1可以响应于控制信号CS1,将存储的数据值输出到第一乘法 器MUL1、第二乘法器MUL2和输出数据路径O_IP1。可以将输出到输 出数据路径O_IP1的数据值传播到计算器组MACGR12。
存储单元R2可以从第一输入权重路径I_WP1接收权重值并且将所 接收到的权重值存储在其中。存储器单元R2可被称为权重值存储单元。 存储单元R2可以响应于控制信号CS1,将存储的权重值输出到第一乘 法器MUL1和第一输出权重路径O_WP1。可以将输出到第一输出权重 路径O_WP1的权重值传播到计算器组MACGR21。
存储单元R3可以从第二输入权重路径I_WP2接收权重值并且将所 接收到的权重值存储在其中。存储单元R3可以响应于控制信号CS1, 将存储的权重值输出到第二乘法器MUL2和第二输出权重路径O_WP2。 可以将输出到第二输出权重路径O_WP2的权重值传播到计算器组 MACGR21。
存储单元R1至R3可以响应于控制信号CS1,在随后的时间同时输 出在先前时间接收到的值。
第一乘法器MUL1可以接收从存储单元R1输出的数据值以及从存 储单元R2输出的权重值,将所接收到的值相乘,并且将相乘结果输出 到第一累加器ACC1。第一累加器ACC1可以通过接收并累加第一乘法 器MUL1的输出而生成第一漏极值,并且将该第一漏极值输出到选择单 元S1。
第二乘法器MUL2可以接收从存储单元R1输出的数据值以及从存 储单元R3输出的权重值,将所接收到的值相乘,并且将相乘结果输出 到第二累加器ACC2。第二累加器ACC2可以通过接收并累加第二乘法 器MUL2的输出而生成第二漏极值,并且将该第二漏极值输出到选择单 元S2。
选择单元S1可以将从第一累加器ACC1输出的第一漏极值输出到 存储单元R4。在输出第一累加器ACC1的第一漏极值之后,选择单元 S1可以将通过第一输入漏极路径I_DP11从计算器组MACGR12传播的 后续漏极值顺序地输出到存储单元R4。存储单元R4可以接收从选择单 元S1输出的漏极值,将所接收到的漏极值存储在其中,并且响应于控 制信号CS2将存储的漏极值输出到第一输出漏极路径O_DP11。存储器 单元R4可被称为漏极值存储单元。
选择单元S2可以将从第二累加器ACC2输出的第二漏极值输出到 存储单元R5。在输出第二累加器ACC2的第二漏极值之后,选择单元 S2可以将通过第二输入漏极路径I_DP12从计算器组MACGR12传播的 后续漏极值顺序地输出到存储单元R5。存储单元R5可以接收从选择单 元S2输出的漏极值,将所接收到的漏极值存储在其中,并且响应于控 制信号CS2将存储的漏极值输出到第二输出漏极路径O_DP12。
存储单元R4和R5可以响应于控制信号CS2同时输出存储在其中的 漏极值。
图5的其它计算器组可以以与计算器组MACGR11类似的方式配置。 然而,行中的最后计算器组MACGR1j至MACGRnj可以不包括输出数 据路径O_IP1。此外,行中的最后计算器组MACGR1j至MACGRnj可以 不包括第一输入漏极路径I_DP11、第二输入漏极路径I_DP12以及选择 单元S1和S2,并且从第一和第二累加器ACC1和ACC2输出的漏极值可 以被直接输入到存储单元R4和R5。此外,列中的最后计算器组 MACGRn1至MACGRnj可以不包括第一输出权重路径O_WP1和第二 输出权重路径O_WP2。
图7是示出根据实施例的图5的高级脉动阵列的第一行中包括的第 一计算器组MACGR11和第j计算器组MACGR1j的操作的时序图。
参照图5至图7,可以通过数据路径IP1将n个数据值i11至i1n顺序地 输入到第一计算器组MACGR11。同时,可以通过权重路径WP1将n个 权重值w11至wn1顺序地输入到第一计算器组MACGR11,并且可以通 过权重路径WP2将n个权重值w12至wn2顺序地输入到第一计算器组 MACGR11。数据值i11至i1n可以构成与第一行相对应的数据值集,并 且权重值w11至wn1和权重值w12至wn2可以构成与第一列相对应的权 重值集。
第一计算器组MACGR11的第一MAC MAC11和第二MAC MAC12 可以同时操作以生成漏极值d11和d12。在自通过第一计算器组 MACGR11接收到最后的数据值i1n起经过操作时间opt7之后,第一计算 器组MACGR11可以通过漏极路径DP11和DP22,即第一和第二输出漏极路径O_DP11和O_DP12,输出漏极值d11和d12。
数据传播时间prt71可以指示直到数据值i11从第一计算器组MACGR11传播到第j计算器MCUGR1j所需的时间。对于相同的m值, 数据传播时间prt71可以是图4的数据传播时间prt21的1/2。简而言之, 因为两个权重路径WP1和WP2同时传播两个权重值w11和w12,所以第 一MAC MAC11和第二MAC MAC12可以同时接收数据值,并且同时执 行计算。也就是说,数据值i11可以在一个输入周期期间通过图2A的脉 动阵列中的一个MAC,但在一个输入周期期间通过图5的脉动阵列中 的两个MAC。因此,数据值i11通过图5的脉动阵列ASA1传播可以比在 图2A的脉动阵列SA2中快两倍。
可以通过数据路径IP1将数据值i11至i1n顺序地传播到第一至第j计 算器组MACGR11至MACGR1j。在将数据值i11至i1n输入到第j计算器 组MACGR1j的同时,可以通过权重路径WP(m-1)将n个权重值w1(m-1) 至wn(m-1)顺序地输入到第j计算器组MACGR1j,并且可以通过权重 路径WPm将n个权重值w1m至wnm顺序地输入到第j计算器组 MACGR1j。权重值w1(m-1)至wn(m-1)和权重值w1m至wnm可以 分别构成与第j列相对应的权重值集。
第j计算器组MACGR1j的第一MAC电路MAC1(m-1)和第二MAC 电路MAC1m可以同时操作以生成漏极值d1(m-1)和d1m。在自通过 第j计算器组MACGR1j接收到最后的数据值i1n起经过操作时间opt7之 后,第j计算器组MACGR1j可以分别通过漏极路径DP11和DP12输出漏极值d1(m-1)和d1m。
漏极传播时间prt72可以指示直到漏极值d1(m-1)和d1m通过漏极路 径DP11和DP12从第j计算器组MACGR1j传播并且然后从第一计算器 组MACGR11输出所需的时间。在这种情况下,对于相同的m值,漏极 传播时间prt72可以是图4的漏极传播时间prt22的1/2。也就是说,不同 于图2A中通过一个漏极路径DP1传播由漏极值d11至d1m构成的一个 漏极值组的配置,可以通过两个漏极路径DP11和DP12分别传播由漏极 值d11至d1(m-1)和漏极值d12至d1m构成的两个漏极值组。因此,图5的脉动阵列ASA1中的m个漏极值的通过速度可以比图2A的脉动阵列 快两倍。
在自第一计算器组MACGR11的操作完成起经过等待时间wt7之后, 第一计算器组MACGR11可以接收第二数据。可以设置等待时间wt7, 以便从第一计算器组MACGR11输出第一数据的所有漏极值d11至d1m 之后,开始输出第二数据的漏极值d11’和d1m’。换句话说,可以设置等 待时间wt7,以便不发生漏极冲突。
当数据传播时间prt71比图4的数据传播时间prt21更短时,可以更 早地开始计算器组MACGR11至MACGR1j的计算操作。此外,当漏极 传播时间prt72比图4的漏极传播时间prt22更短时,可以提前通过第一计 算器组MACGR11的漏极值d11至d1m的输出操作。在这种情况下,漏 极时间drt7可能比图4的漏极时间drt2更短,并且等待时间wt7可能比图4 的等待时间wt4更短。因此,与图2示出的电路SA2相比,图5的计算电 路ASA1可以以较高的操作效率和较高的钟点吞吐量来操作。
图8是示出根据实施例的计算电路ASA2的框图。
计算电路ASA2可以包括构成由n行和j列组成的高级脉动阵列的 计算器组2MACGR11至2MACGR1j、2MACGR21至2MACGR2j、……、 以及2MACGRn1至2MACGRnj。计算器组2MACGR11至2MACGR1j、 2MACGR21至2MACGR2j、……、以及2MACGRn1至2MACGRnj中的 每一个可以包括两个MAC电路。图8示出了在计算器组中的每一个中 包括两个MAC电路的情况。然而,根据实施例,计算器组中的每一个 可以包括三个或更多个MAC电路。
计算器组2MACGR11至2MACGR1j、2MACGR21至 2MACGR2j、……、以及2MACGRn1至2MACGRnj可以联接到数据路 径IP1至IPn、漏极路径DP1至DPn和权重路径WP1至WPm。n行中的每 一行可以联接到数据路径IP1至IPn之中的一个相应的数据路径。n行中 的每一行可以联接到漏极路径DP1至DPn之中的一个相应的漏极路径。j列中的每一列可以联接到权重路径WP1至WPm之中的两个相应的权 重路径。在类似于图8但在每个计算器组中具有三个或更多个MAC电 路的实施例中,j列中的每一列可以联接到数量与每个计算器组中的 MAC电路的数量相等的多个权重路径,并且j可以与m除以每个计算器 组中MAC电路的数量相等,但是实施例并不限于此。
图8还示出了开始将数据值集输入到数据路径IP1至IPn的时间t1至 tn以及开始将权重值集输入到权重路径WP1至WPm的时间t1至tj。可以 以与参照图5描述的大体上相同的方式来执行在各自的时间的操作。
在行中生成的漏极值集可以同时通过漏极路径DP1至DPn开始从 各自行的第一计算器组2MACGR11至2MACGRn1输出。每一行可以通 过一条漏极路径输出一个漏极值集。
尽管未示出,计算电路ASA2可以进一步包括用于通过控制信号控 制计算器组2MACGR11至2MACGR1j、2MACGR21至2MACGR2j、……、 以及2MACGRn1至2MACGRnj的操作的控制单元。
图9是详细示出根据实施例的图8的计算器组2MACGR11的示图。
参照图9,输入数据路径I_IP1和输出路径数据O_IP1可以包括在图 8的数据路径IP1中。第一输入权重路径I_WP1和第一输出权重路径 O_WP1可以包括在图8的权重路径WP1中。第二输入权重路径I_WP2 和第二输出权重路径O_WP2可以包括在图8的权重路径WP2中。输入漏 极路径I_DP1和输出漏极路径O_DP1可以包括在图8的漏极路径DP1中。
计算器组2MACGR11可以包括第一MAC电路MAC11和第二MAC 电路MAC12、存储单元2R1至2R4和2R6以及选择单元2S1。第一MAC 电路MAC11和第二MAC电路MAC12可以以与图6的第一MAC MAC11 和第二MAC MAC12大体上相同的方式配置。存储单元2R1至2R3可以 以与图6的存储单元R1至R3大体上相同的方式配置。
存储单元2R6可以接收从第二累加器ACC2输出的第二漏极值,并 且将所接收到的第二漏极值存储在其中。存储单元2R6可以响应于控制 信号2CS3将存储的第二漏极值输出到选择单元2S1。
选择单元2S1可以将从第一累加器ACC1输出的第一漏极值输出到 存储单元2R4。在输出第一累加器ACC1的第一漏极值之后,选择单元 2S1可以将从存储单元2R6输出的第二漏极值输出到存储单元2R4。在 输出存储单元2R6的第二漏极值之后,选择单元2S1可以将通过输入漏 极路径I_DP1从计算器组2MACGR12传播的后续漏极值顺序地输出到 存储单元2R4。
存储单元2R4可以接收从选择单元2S1输出的漏极值,将所接收到 的漏极值存储在其中,并且响应于控制信号2CS2将存储的漏极值输出 到输出漏极路径O_DP1。
图8的其它计算器组可以以与计算器组2MACGR11类似的方式配 置。然而,行中的最后计算器组2MACGR1j至2MACGRnj可以不包括 输出数据路径O_IP1和输入漏极路径I_DP1。此外,列中的最后计算器 组2MACGRn1至2MACGRnj可以不包括第一输出权重路径O_WP1和 第二输出权重路径O_WP2。
图10是示出根据实施例的图8的高级脉动阵列ASA2的第一行中包 括的第一计算器组2MACGR11和第j计算器组2MACGR1j的操作的时 序图。
参照图8至图10,可以通过数据路径IP1将n个数据值i11至i1n顺序 地输入到第一计算器组2MACGR11。同时,可以通过权重路径WP1将n 个权重值w11至wn1顺序地输入到第一计算器组2MACGR11。另外,同 时地,可以通过权重路径WP2将n个权重值w12至wn2顺序地输入到第 一计算器组2MACGR11。数据值i11至i1n可以构成与第一行相对应的数 据值集,并且权重值w11至wn1和权重值w12至wn2可以分别构成与第 一列相对应的权重值集。
第一计算器组2MACGR11的第一MAC MAC11和第二MAC MAC12可以同时操作以生成漏极值d11和d12。然而,因为第一计算器 组2MACGR11联接到一个漏极路径DP1,所以在自通过第一计算器组 2MACGR11接收到最后的数据值i1n起经过操作时间opt10之后,第一计 算器组2MACGR11可以通过漏极路径DP1顺序地输出漏极值d11和d12。
数据传播时间prt101可以指示直到数据值i11从第一计算器组 2MACGR11传播到第j计算器2MCUGR1j所需的时间。对于相同的m值, 数据传播时间prt101可以是图4的数据传播时间prt21的1/2。也就是说, 因为计算器组2MACGR1j至2MACGR1j联接到两个权重路径,因此可 以缩短数据传播时间prt101。
可以通过数据路径IP1将数据值i11至i1n顺序地传播到第一至第j计 算器组2MACGR11至2MACGR1j。在将数据值i11至i1n输入到第j计算 器组2MACGR1j的同时,可以通过权重路径WP(m-1)将n个权重值 w1(m-1)至wn(m-1)顺序地输入到第j计算器组2MACGR1j,并且 可以通过权重路径WPm将n个权重值w1m至wnm顺序地输入到第j计算 器组2MACGR1j。权重值w1(m-1)至wn(m-1)和权重值w1m至wnm 可以分别构成与第j列相对应的权重值集。
第j计算器组2MACGR1j的第一MAC MAC1(m-1)和第二MAC MAC1m可以同时操作以生成漏极值d1(m-1)和d1m。然而,因为第j 计算器组2MACGR1j联接到一个漏极路径DP1,所以在自通过第j计算 器组2MACGR1j接收到最后的数据值i1n起经过操作时间opt10之后,第 j计算器组2MACGR1j可以通过漏极路径DP1顺序地输出漏极值d1(m-1) 和d1m。
漏极传播时间prt102可以指示直到漏极值d1(m-1)和d1m通过漏极 路径DP1从第j计算器组2MACGR1j传播并且然后从第一计算器组 2MACGR11输出所需的时间。漏极值d11至d1m可以构成与第一行相对 应的漏极值集。
在自第一计算器组2MACGR11的操作完成起经过等待时间wt10之 后,第一计算器组2MACGR11可以接收第二数据。可以设置等待时间wt10,使得在从第一计算器组2MACGR11输出第一数据的所有漏极值 d11至d1m之后,开始输出第二数据的漏极值d11’和d1m’。换句话说, 可以设置等待时间wt10,以便不发生漏极冲突。
当数据传播时间prt101变得比图4的数据传播时间prt21更短时,可 以更早地开始计算器组2MACGR11至2MACGR1j的计算操作。在这种 情况下,漏极时间drt10可变得比图4的漏极时间drt2更短,并且等待时 间wt10可变得比图4的等待时间wt4更短。因此,与图2示出的电路SA2 相比,计算电路ASA2可以以较高的操作效率和较高的钟点吞吐量来操 作。
图11是示出根据实施例的计算电路ASA3的框图。
计算电路ASA3可以包括构成由n行和j列组成的高级脉动阵列的 计算器组3MACGR11至3MACGR1j、3MACGR21至3MACGR2j、……、 以及3MACGRn1至3MACGRnj。计算器组3MACGR11至3MACGR1j、 3MACGR21至3MACGR2j、……、以及3MACGRn1至3MACGRnj中的 每一个可以包括两个MAC电路。图11示出了在计算器组中的每一个中 包括两个MAC电路的情况。然而,根据实施例,计算器组中的每一个 可以包括三个或更多个MAC电路。
计算器组3MACGR11至3MACGR1j、3MACGR21至 3MACGR2j、……、以及3MACGRn1至3MACGRnj可以通过数据路径 IP1至IPn、漏极路径DP11至DPn1和DP12至DPn2以及权重路径WP1至 WPm联接。n行中的每一行可以联接到数据路径IP1至IPn之中的一个相 应的数据路径。n行中的每一行可以联接到漏极路径DP11至DPn1之中 的一个相应的漏极路径以及漏极路径DP12至DPn2之中的一个相应的 漏极路径。j列中的每一列可以联接到权重路径WP1至WPm之中的两个 相应的权重路径。
图11还示出了开始将数据值集输入到数据路径IP1至IPn的时间t1 至tn。例如,计算器组3MACGR11可以在时间t1开始从数据路径IP1接 收数据值集。然后,计算器组3MACGR11可以在下一时间t2通过数据 路径IP1将数据值传播到计算器组3MACGR12。
此外,图11还示出了开始将权重值集输入到权重路径WP1至WPm 的时间t1至tm。例如,计算器组3MACGR11可以在时间t1开始从权重 路径WP1接收权重值集,并且在时间t2通过权重路径WP1将权重值传 播到计算器组3MACGR21。另外,计算器组3MACGR11可以在时间t2 开始从权重路径WP2接收权重值集,并且在时间t3通过权重路径WP2 将权重值传播到计算器组3MACGR21。
在行中生成的漏极值集可以同时通过漏极路径DP11至DPn1和 DP12至DPn2开始从各自的行的第一计算器组3MACGR11至 3MACGRn1输出。将如下所述,计算器组中的每一个中的两个MAC可 以分别生成两个漏极值,并且每一行可以同时通过两个漏极路径输出 两个漏极值集。
尽管未示出,计算电路ASA3可以进一步包括用于通过控制信号控 制计算器组3MACGR11至3MACGR1j、3MACGR21至3MACGR2j、……、 以及3MACGRn1至3MACGRnj的操作的控制单元。
图12是详细示出根据实施例的图11的计算器组3MACGR11的示图。
参照图12,输入数据路径I_IP1和输出路径数据O_IP1可以包括在 图11的数据路径IP1中。第一输入权重路径I_WP1和第一输出权重路径 O_WP1可以包括在图11的权重路径WP1中。第二输入权重路径I_WP2 和第二输出权重路径O_WP2可以包括在图11的权重路径WP2中。第一 输入漏极路径I_DP11和第一输出漏极路径O_DP11可以包括在图11的 漏极路径DP11中。第二输入漏极路径I_DP12和第二输出漏极路径 O_DP12可以包括在图11的漏极路径DP12中。
计算器组3MACGR11可以包括:第一MAC电路MAC11和第二 MAC电路MAC12,存储单元3R1、3R2、3R4、3R5、3R7和3R8,以及 选择单元3S1和3S2。第一MAC电路MAC11可以包括第一乘法器MUL1 和第一累加器ACC1。第二MAC电路MAC12可以包括第二乘法器 MUL2和第二累加器ACC2。
存储单元3R1可以从输入数据路径I_IP1接收数据值,将所接收到 的数据值存储在其中,并且响应于控制信号3CS1将存储的数据值输出 到第一乘法器MUL1和存储单元3R7。
存储单元3R2可以从第一输入权重路径I_WP1接收权重值,将所接 收到的权重值存储在其中,并且响应于控制信号3CS1将存储的权重值 输出到第一乘法器MUL1和第一输出权重路径O_WP1。可以将输出到 第一输出权重路径O_WP1的权重值传播到计算器组3MACGR21。
存储单元3R1和3R2可以响应于控制信号3CS1,在随后的时间同时 输出在先前时间接收到的值。
存储单元3R7可以从存储单元3R1接收数据值,将所接收到的数据 值存储在其中,并且响应于控制信号3CS4将存储的数据值输出到第二 乘法器MUL2和输出数据路径O_IP1。可以将输出到输出数据路径 O_IP1的数据值传播到计算器组3MACGR12。
存储单元3R8可以从第二输入权重路径I_WP2接收权重值,将所接 收到的权重值存储在其中,并且响应于控制信号3CS4将存储的权重值 输出到第二乘法器MUL2和第二输出权重路径O_WP2。可以将输出到 第二输出权重路径O_WP2的权重值传播到计算器组3MACGR21。
存储单元3R7和3R8可以响应于控制信号3CS4,在随后的时间同时 输出在先前时间接收到的值。
第一乘法器MUL1可以接收从存储单元3R1输出的数据值以及从 存储单元3R2输出的权重值,将所接收到的值相乘,并且将相乘结果输 出到第一累加器ACC1。第一累加器ACC1可以通过接收并累加第一乘 法器MUL1的输出而生成第一漏极值,并且将该第一漏极值输出到选择 单元3S1。
第二乘法器MUL2可以接收从存储单元3R7输出的数据值以及从 存储单元3R8输出的权重值,将所接收到的值相乘,并且将相乘结果输 出到第二累加器ACC2。第二累加器ACC2可以通过接收并累加第二乘 法器MUL2的输出而生成第二漏极值,并且将该第二漏极值输出到选择 单元3S2。
选择单元3S1可以将从第一累加器ACC1输出的第一漏极值输出到 存储单元3R4。在输出第一累加器ACC1的第一漏极值之后,选择单元 3S1可以将通过第一输入漏极路径I_DP11从计算器组3MACGR12传播 的后续漏极值顺序地输出到存储单元3R4。存储单元3R4可以接收从选 择单元3S1输出的漏极值,将所接收到的漏极值存储在其中,并且响应 于控制信号3CS3将存储的漏极值输出到第一输出漏极路径O_DP11。
选择单元3S2可以将从第二累加器ACC2输出的第二漏极值输出到 存储单元3R5。在输出第二累加器ACC2的第二漏极值之后,选择单元 3S2可以将通过第二输入漏极路径I_DP12从计算器组3MACGR12传播 的后续漏极值顺序地输出到存储单元3R5。存储单元3R5可以接收从选 择单元3S2输出的漏极值,将所接收到的漏极值存储在其中,并且响应 于控制信号3CS3将存储的漏极值输出到第二输出漏极路径O_DP12。
存储单元3R4和3R5可以响应于控制信号3CS3同时输出存储在其 中的漏极值。
图11的其它计算器组可以以与计算器组3MACGR11类似的方式配 置。然而,行中的最后计算器组3MACGR1j至3MACGRnj可以不包括 输出数据路径O_IP1。此外,行中的最后计算器组3MACGR1j至 3MACGRnj可以不包括第一输入漏极路径I_DP11、第二输入漏极路径 I_DP12以及选择单元3S1和3S2,并且从第一和第二累加器ACC1和 ACC2输出的第一和第二漏极值可以直接被分别输入到存储单元3R4和 3R5。此外,列中的最后计算器组3MACGRn1至3MACGRnj可以不包 括第一输出权重路径O_WP1和第二输出权重路径O_WP2。
图13是示出根据实施例的图11的计算电路ASA3的第一行中包括 的第一计算器组3MACGR11和第j计算器组3MACGR1j的操作的时序 图。
参照图11至图13,可以通过数据路径IP1将n个数据值i11至i1n顺序 地输入到第一计算器组3MACGR11。同时,可以通过权重路径WP1将n 个权重值w11至wn1顺序地输入到第一计算器组3MACGR11,并且可以 通过权重路径WP2将n个权重值w12至wn2顺序地输入到第一计算器组 3MACGR11。数据值i11至i1n可以构成与第一行相对应的数据值集,并 且权重值w11至wn1和权重值w12至wn2可以分别构成与第一列相对应 的权重值集。
当在时间t1开始将权重值w11至wn1输入到第一计算器组 3MACGR11时,可以在比时间t1晚一个输入周期的时间t2开始输入权重 值w12至wn2。因此,在自第一计算器组3MACGR11的第一MAC电路 MAC11生成漏极值d11起一个输入周期之后,第二MAC电路MAC12可以生成漏极值d12。因为第一计算器组3MACGR11联接到两个漏极路径 DP11和DP12,所以在自第一计算器组3MACGR11接收到最后的权重值 wn2起经过操作时间opt13之后,可以分别通过漏极路径DP11和DP12 输出漏极值d11和d12。
数据传播时间prt131可以指示直到数据值i11从第一计算器组 3MACGR11传播到第j计算器3MCUGR1j所需的时间。数据传播时间 prt131可以比图4的数据传播时间prt21早一个输入周期。这是因为,在 图13中,可以在输入权重值w11的时间t1将数据值i11输入到第一计算器 组3MACGR11,并且在输入权重值w1(m-1)的时间t(m-1)将数据 值i11传播到第j计算器组3MACGR1j。然而,在图2B中,在输入权重值 w11的时间t1将数据值i11输入到第一计算器组MACGR11,并且在输入 权重值w1m的时间tm将数据值i11传播到第j计算器组MACGR1j。
可以通过数据路径IP1将数据值i11至i1n顺序地传播到第一至第j计 算器组3MACGR11至3MACGR1j。在将数据值i11至i1n输入到第j计算 器组3MACGR1j的同时,可以通过权重路径WP(m-1)将n个权重值 w1(m-1)至wn(m-1)顺序地输入到第j计算器组3MACGR1j,并且 在一个输入周期开始之后,可以通过权重路径WPm将n个权重值w1m 至wnm顺序地输入到第j计算器组3MACGR1j。权重值w1(m-1)至wn (m-1)和权重值w1m至wnm可以分别构成与第j列相对应的权重值集。
当在时间t(m-1)开始将权重值w1(m-1)至wn(m-1)输入到第 j计算器组3MACGR1j时,可以在比时间t(m-1)晚一个输入周期的时 间tm开始输入权重值w1m至wnm。因此,在自第j计算器组3MACGR1j 的第一MAC电路MAC1(m-1)生成漏极值d1(m-1)起一个输入周期 之后,第二MAC电路MAC1m可以生成漏极值d1m。因为第j计算器组 3MACGR1j联接到两个漏极路径DP11和DP12,所以在自第j计算器组 3MACGR1j接收到最后的权重值wnm起经过操作时间opt13之后,可以 分别通过漏极路径DP11和DP12输出漏极值d1(m-1)和d1m。
漏极传播时间prt132可以指示直到漏极值d1(m-1)和d1m通过漏极 路径DP11和DP12从第j计算器组3MACGR1j传播并且然后从第一计算 器组3MACGR11输出所需的时间。在这种情况下,对于相同的m值, 漏极传播时间prt132可能是图4的漏极传播时间prt22的1/2。也就是说, 不同于图2A中通过一个漏极路径DP1传播由漏极值d11至d1m构成的 一个漏极值组的配置,由漏极值d11至d1(m-1)和漏极值d12至d1m构 成的两个漏极值组可以分别通过两个漏极路径DP11和DP12传播。因此, 图5的脉动阵列中的m个漏极值的通过速度可以比在图2A的脉动阵列 中快两倍。
在自第一计算器组3MACGR11的操作完成起经过等待时间wt13之 后,第一计算器组3MACGR11可以接收第二数据。可以设置等待时间 wt13,以便在从第一计算器组3MACGR11输出第一数据的所有漏极值 d11至d1m之后,开始输出第二数据的漏极值d11’和d1m’。换句话说, 可以设置等待时间wt13,以便不发生漏极冲突。
当漏极传播时间prt132变得比图4的漏极传播时间prt22更短时,可 以提前第一计算器组3MACGR11中的漏极值d11至d1m的输出操作。在 这种情况下,漏极时间drt13可变得比图4的漏极时间drt2更短,并且等 待时间wt13可变得比图4的等待时间wt4更短。因此,与图2示出的电路 SA2相比,计算电路ASA3可以以较高的操作效率和较高的钟点吞吐量 来操作。
图14是详细示出根据实施例的计算器组4MACGR11的示图。
参照图14,计算电路的计算器组可以以与计算器组4MACGR11大 体上相同的方式来配置。在这种情况下,计算电路可以具有与图5示出 的计算电路ASA1大体上相同的配置。输入数据路径I_IP1和输出路径数 据O_IP1可以包括在图5的数据路径IP1中。第一输入权重路径I_WP1和 第一输出权重路径O_WP1可以包括在图5的权重路径WP1中。第二输入 权重路径I_WP2和第二输出权重路径O_WP2可以包括在图5的权重路 径WP2中。第一输入漏极路径I_DP11和第一输出漏极路径O_DP11可以 包括在图5的漏极路径DP11中。第二输入漏极路径I_DP12和第二输出 漏极路径O_DP12可以包括在图5的漏极路径DP12中。
计算器组4MACGR11可以包括第一MAC电路MAC11和第二MAC 电路MAC12、存储单元4R1至4R6以及选择单元4S1和4S2。第一MAC 电路MAC11可以包括第一乘法器MUL1和第一累加器ACC1。第二 MAC电路MAC12可以包括第二乘法器MUL2和第二累加器ACC2。第 一MACMAC11和第二MAC MAC12可以以与图6的第一MAC电路 MAC11和第二MAC电路MAC12大体上相同的方式配置。存储单元4R1 至4R3可以以与图6的存储单元R1至R3大体上相同的方式配置。
存储单元4R4至4R6以及选择单元4S1和4S2可以包括在漏极路径 选择单元DPSEL中。
漏极路径选择单元DPSEL可以根据计算器组4MACGR11是在高性 能模式下还是低功率模式下操作,选择性地使用第一和第二输入漏极 路径I_DP11和I_DP12以及第一和第二输出漏极路径O_DP11和O_DP12。
具体地,漏极路径选择单元DPSEL可以控制计算器组4MACGR11 以在高性能模式下通过两个漏极路径来操作。也就是说,在高性能模 式下,漏极路径选择单元DLSEL可以使用所有的第一和第二输入漏极 路径I_DP11和I_DP12以及第一和第二输出漏极路径O_DP11和O_DP12。
漏极路径选择单元DPSEL可以控制计算器组4MACGR11以在低功 率模式下通过一个漏极路径来操作。也就是说,在低功率模式下,漏 极路径选择单元DPSEL可以仅使用第一输入漏极路径I_DP11和第一输 出漏极路径O_DP11,而不使用第二输入漏极路径I_DP12和第二输出漏 极路径O_DP12。
下面将详细描述漏极路径选择单元DPSEL的操作方法。在低功率 模式下,存储单元4R6可以接收从第二累加器ACC2输出的第二漏极值, 并且将所接收到的第二漏极值存储在其中。存储单元4R6可以响应于控 制信号4CS3将存储的第二漏极值输出到选择单元4S1。
在低功率模式下,选择单元4S1可以将从第一累加器ACC1输出的 第一漏极值输出到存储单元4R4。在输出第一累加器ACC1的第一漏极 值之后,选择单元4S1可以将从存储单元4R6输出的第二漏极值输出到 存储单元4R4。在输出存储单元4R6的第二漏极值之后,选择单元4S1 可以将通过第一输入漏极路径I_DP11从计算器组4MACGR12传播的 后续漏极值顺序地输出到存储单元4R4。存储单元4R4可以接收从选择 单元4S1输出的漏极值,将所接收到的漏极值存储在其中,并且响应于 控制信号4CS2将存储的漏极值输出到第一输出漏极路径O_DP11。
在低功率模式下,可以不使用第二输入漏极路径I_DP12和第二输 出漏极路径O_DP12,并且可以不操作选择单元4S2和存储单元4R5。
因此,可以以与参照图10描述的图8的计算电路ASA2的操作方法 大体上相同的方式来执行计算电路在低功率模式下的操作方法。
在高性能模式下,存储单元4R6可能无法操作。
在高性能模式下,选择单元4S1可以将从第一累加器ACC1输出的 第一漏极值输出到存储单元4R4。在输出第一累加器ACC1的第一漏极 值之后,选择单元4S1可以将通过第一输入漏极路径I_DP11从计算器组 4MACGR12传播的后续漏极值顺序地输出到存储单元4R4。存储单元 4R4可以接收从选择单元4S1输出的漏极值,将所接收到的漏极值存储 在其中,并且响应于控制信号4CS2将存储的漏极值输出到第一输出漏 极路径O_DP11。
在高性能模式下,选择单元4S2可以将从第二累加器ACC2输出的 第二漏极值输出到存储单元4R5。在输出第二累加器ACC2的第二漏极 值之后,选择单元4S2可以将通过第二输入漏极路径I_DP12从计算器组 4MACGR12传播的后续漏极值顺序地输出到存储单元4R5。存储单元 4R5可以接收从选择单元4S2输出的漏极值,将所接收到的漏极值存储 在其中,并且响应于控制信号4CS2将存储的漏极值输出到第二输出漏 极路径O_DP12。
因此,可以以与参照图7描述的图5的计算电路ASA1的操作方法大 体上相同的方式来执行计算电路在高性能模式下的操作方法。
计算电路的计算器组可以同时以相同的操作模式来操作。
图15是示出深度学习系统DLS1的框图。
参照图15,深度学习系统DSL1可以包括计算电路SA2、激活单元 ACTU1至ACTUn和特殊单元SFU1至SFUn。例如,计算电路SA2可以 以与图2A示出的计算电路SA2大体上相同的方式来配置。
激活单元ACTU1至ACTUn可以对应于计算电路SA2的脉动阵列 的相应行。激活单元ACTU1至ACTUn可以分别联接到漏极路径DP1至 DPn。激活单元ACTU1至ACTUn中的每一个可以基于从相应的漏极路 径输出的漏极值集来执行激活函数计算(诸如,阶跃函数计算、逻辑 函数计算、双曲正切函数计算、整流线性函数计算等),并且输出一个 或多个激活函数值。
特殊单元SFU1至SFUn可以联接到各自的激活单元ACTU1至 ACTUn。特殊单元SFU1至SFUn中的每一个可以基于从相应的激活单 元输出的一个或多个激活函数值来执行特殊函数计算(例如,加权输 入函数计算),并且输出特殊函数值。
图16示出了根据实施例的高级深度学习系统ADLS1的框图。
参照图16,高级深度学习系统ADSL1可以包括计算电路ASA1、激 活组ACTGR1至ACTGRn和特殊单元SFU1至SFUn。例如,在实施例中, 高级深度学习系统ADLS1可以包括图5示出的计算电路ASA1。然而, 实施例并不限于此,并且在其它实施例中,高级深度学习系统ADLS1 可以包括例如图11的计算电路ASA3。
激活组ACTGR1至ACTGRn可以对应于计算电路ASA1的高级脉 动阵列的相应行。激活组ACTGR1至ACTGRn中的每一个可以包括子 激活单元。激活组ACTGR1至ACTGRn中的每一个中包括的子激活单 元的数量可以与联接到脉动阵列的每一行的漏极路径的数量相等。
例如,激活组ACTGR1可以包括子激活单元SACTU11和SACTU12。 子激活单元SACTU11和SACTU12可以分别联接到高级脉动阵列的第 一行的漏极路径DP11和DP12。子激活单元SACTU11和SACTU12可以 基于从漏极路径DP11和DP12输出的漏极值集分别执行激活函数计算, 并分别输出激活函数值。子激活单元SACTU11和SACTU12可以执行相 同或不同的激活函数计算。可以与其它激活组相同的方式来应用激活 组的操作和配置。
特殊单元SFU1至SFUn可以联接到各自的激活组ACTGR1至 ACTGRn。特殊单元SFU1至SFUn中的每一个可以基于从相应的激活组 输出的激活函数值来执行特殊函数运算,并且输出特殊函数值。
计算电路ASA1的高级脉动阵列的每一行可以同时通过两倍于图 14示出的漏极路径来输出两个漏极值集。因此,子激活单元SACTU11 和SACTU12可以同时操作,并且可以减少高级深度学习系统ADLS1的 输出延迟。
图17是示出应用了根据实施例的高级深度学习系统ADLS2的 LSTM(长短时记忆)网络的框图。
可以将高级深度学习系统ADLS2应用于LSTM网络。根据实施例, 高级深度学习系统ADLS2不仅可以应用于LSTM网络,还可以应用于 基于诸如GRU(门控递归单元)的RNN(递归神经网络)的其它网络。
高级深度学习系统ADLS2可以包括计算器组5MACGR11、激活组 ACTGR1和特殊单元SFU1。
计算器组5MACGR11可以是高级深度学习系统ADLS2中包括的 高级脉动阵列(未示出)中的第一行的第一计算器组。计算器组 5MACGR11可以联接到数据路径IP1、漏极路径DP11至DP14以及权重 路径WP1至WP4。计算器组5MACGR11可以在时间t1开始从数据路径IP1接收数据值集。计算器组5MACGR11可以在时间t1开始从权重路径 WP1至WP4接收权重值集。计算器组5MACGR11可以在时间t1之后同 时通过漏极路径DP11至DP14开始输出漏极值集。
计算器组5MACGR11可以包括第一MAC电路MAC11、第二MAC 电路MAC12、第三MAC电路MAC13和第四MAC电路MAC14。第一至 第四MAC电路MAC11至MAC14可以以与图5的第一和第二MAC电路 MAC11和MAC12的操作类似的方式同时操作。
激活组ACTGR1可以包括子激活单元SACTU11至SACTU14。子激 活单元SACTU11至SACTU14可以分别联接到漏极路径DP11至DP14。 特殊单元SFU1可以联接到子激活单元SACTU11至SACTU14。
子激活单元SACTU11至SACTU14可以通过LSTM网络的以下激活 函数F1至F4来操作,并且分别输出激活函数值(ft,it,ot,gt)。在激 活函数F1至F4中,W表示权重矩阵,x表示数据值,以及b表示偏置矢 量。
ft=σ(Wxh_f·xt+Whh_f·ht-1+bh_f) 函数F1
it=σ(Wxh_i·xt+Whh_i·ht-1+bh_i) 函数F2
ot=σ(Wxh_o·xt+Whh_o·ht-1+bh_o) 函数F3
gt=tanh(Wxh_g·xt+Whh_g·ht-1+bh_g) 函数F4
特殊单元SFU1可以由LSTM网络的以下特殊函数F5和F6来操作, 并且输出特殊函数值(ct,ht)。
ct=ft·ct-1+it·gt 函数F5
ht=ot·tanh(ct) 函数F6
图18A是根据实施例的应用了图17的高级深度学习系统ASDLS2 的LSTM网络的输出时序图。图18B是应用了图15的深度学习系统DLS1 的LSTM网络的输出时序图。
首先,参照图18A,子激活单元SACTU11至SACTU14可以同时通 过漏极路径DP11至DP14接收漏极值集来操作,并且因此基于激活函数 在第一时钟周期clk0中同时输出激活函数值(ft,it,ot,gt)。
然后,在第二时钟周期clk1内,特殊单元SFU1可以基于激活函数 值(ft,it,gt)和先前特殊函数值ct-1计算中间值(ft*ct-1,it*gt)。
在第三时钟周期clk2内,特殊单元SFU1可以通过将中间值(ft*ct-1, it*gt)应用于特殊函数来计算特殊函数值ct
在第四时钟周期clk3内,特殊单元SFU1可以通过将激活函数值ot和特殊函数值ct应用于特殊函数来计算特殊函数值ht
参照图18B,激活单元可以基于激活函数在时钟周期clk内同时输 出激活函数值(ft、it、ot、gt),在第一时钟周期clk0内输出ft,在第二 时钟周期clk1内输出it,在第三时钟周期clk2内输出ot,并且在第四时钟 周期clk3内输出gt
在第二时钟周期clk1内,特殊函数单元可以基于激活函数值ft和先 前特殊函数值ct-1来计算中间值(ft*ct-1)。
在第四时钟周期clk3内,特殊函数单元可以基于激活函数值(it, gt)来计算中间值(it*gt)。
在第五时钟周期clk4内,特殊单元可以通过将中间值(ft*ct-1,it*gt) 应用于特殊函数来计算特殊函数值ct
在第六时钟周期clk5内,特殊单元可以通过将特殊函数值ot和特殊 函数值ct应用于特殊函数来计算特殊函数值ht
简而言之,图17的子激活单元SACTU11至SACTU14可以同时通过 四个漏极路径DP11至DP14接收四个漏极值集来同时操作。因此,与诸 如图15示出的电路相比,可以减少高级深度学习系统ADLS2的输出延 迟。
图19是示出根据实施例的包括漏极路径选择单元DPSEL2的高级 深度学习系统ADLS3的框图。
参照图19,与图17的计算器组5MACGR11相比,计算器组 6MACGR11可以进一步包括漏极路径选择单元DPSEL2。漏极路径选择 单元DPSEL2可以接收第一至第四计算器MAC11至MAC14的输出,并 且仅通过漏极路径DP11至DP14之中的一个或多个所选择的漏极路径 来输出漏极值。漏极路径选择单元DPSEL2可以以与图14的漏极路径选 择单元DPSEL类似的方式来操作。
具体地,漏极路径选择单元DPSEL2可以在高性能模式下使用所有 漏极路径DP11至DP14。例如,高性能模式可以包括LSTM操作。再例 如,高性能模式可以包括执行相对较少数量的MAC操作的情况。
例如,在低功率模式下,漏极路径选择单元DPSEL2可以仅使用漏 极路径DP11,而不使用漏极路径DP12至DP14。在这种情况下,在低 功率模式下,仅子激活单元SACTU11可以操作,并且子激活单元 SACTU12至SACTU14可不操作。例如,低功率模式可以包括MLP(多 层感知器)操作。再例如,低功率模式可以包括执行相对较大数量的 MAC操作的情况。
尽管未示出,计算器组6MACGR11可以通过相同行联接到具有大 体上相同结构的计算器组。在这种情况下,相同行中的计算器组的漏 极路径选择单元可以以相同的操作模式操作。
尽管上面已经描述了各个实施例,但是本领域技术人员将理解的 是,所描述的实施例仅是示例。因此,本文描述的数据存储装置的操 作方法不应基于所描述的实施例而受到限制。

Claims (18)

1.一种计算电路,包括:
多个计算器组,构成由多行和多列组成的脉动阵列,
其中多行中的每一行中包括的计算器组在数据传播方向上通过与该行相对应的单个数据路径传播数据值集,并且在漏极传播方向上通过与该行相对应的多个漏极路径传播多个漏极值集,
其中多行中的每一行中包括的计算器组中的一计算器组包括多个MAC电路即乘法累加器电路,并且
所述MAC电路同时生成分别包括在所述漏极值集中的漏极值。
2.根据权利要求1所述的计算电路,其中该一计算器组进一步包括:
多个选择单元,分别联接到所述MAC电路,以及
多个漏极值存储单元,分别联接到所述选择单元,
其中所述MAC电路将漏极值输出到所述选择单元,
其中所述选择单元从所述MAC电路接收漏极值,将该漏极值输出到所述漏极值存储单元,从漏极路径接收后续的漏极值,并且将后续的漏极值输出到所述漏极值存储单元,并且
其中所述漏极值存储单元存储从所述选择单元输出的漏极值,并将存储的漏极值输出到漏极路径。
3.根据权利要求2所述的计算电路,
其中该漏极路径包括输入漏极路径和输出漏极路径,
其中所述选择单元从输入漏极路径接收所述后续的漏极值,并且
其中所述漏极值存储单元将存储的漏极值输出到输出漏极路径。
4.根据权利要求3所述的计算电路,
其中计算器组在所述数据传播方向上联接到相同行的第二计算器组,并且
输入漏极路径联接到该第二计算器组的输出漏极路径,并且从该第二计算器组的输出漏极路径接收所述后续的漏极值。
5.根据权利要求1所述的计算电路,其中该一计算器组进一步包括:
数据值存储单元,共同联接到所述MAC电路,
其中所述数据值存储单元从数据路径接收包括在数据值集中的数据值,将该数据值存储在其中,并且将存储的数据值输出到所述MAC电路和数据路径。
6.根据权利要求5所述的计算电路,其中该数据路径包括:
输入数据路径和输出数据路径,
其中所述数据值存储单元从输入数据路径接收数据值,将该数据值存储在其中,并且将存储的数据值输出到输出数据路径。
7.根据权利要求6所述的计算电路,
其中计算器组在所述数据传播方向上联接到相同行的第二计算器组,并且
其中输出数据路径联接到该第二计算器组的输入数据路径。
8.根据权利要求5所述的计算电路,其中该计算器组进一步包括:
多个权重值存储单元,分别联接到所述MAC电路,
其中所述权重值存储单元从权重路径接收分别包括在权重值集中的权重值,将该权重值存储在其中,并将存储的权重值输出到所述MAC电路和权重路径。
9.根据权利要求8所述的计算电路,
其中权重路径包括输入权重路径和输出权重路径,并且
其中所述权重值存储单元从输入权重路径接收权重值,将该权重值存储在其中,并且将存储的权重值输出到输出权重路径。
10.根据权利要求9所述的计算电路,
其中计算器组在所述权重传播方向上联接到相同列的第三计算器组,并且
输出权重路径联接到所述第三计算器组的输入权重路径。
11.根据权利要求1所述的计算电路,
其中每一行中包括的计算器组中的每个计算器组包括漏极路径选择单元,并且
其中所述漏极路径选择单元选择一个或多个漏极路径,并且仅将漏极值传播到所选择的漏极路径。
12.一种计算电路,包括:
多个计算器组,构成由多行和多列组成的脉动阵列,
其中多行中的每一行中包括的计算器组通过与该行相对应的单个数据路径联接,并且
其中多列中的每一列中包括的计算器组通过与该列相对应的多个权重路径联接。
13.根据权利要求12所述的计算电路,
其中多行中的每一行中包括的计算器组在数据传播方向上通过与该行相对应的数据路径传播与该行相对应的数据值集,并且
其中多列中的每一列中包括的计算器组在权重传播方向上通过与该列相对应的权重路径同时传播与该列相对应的多个权重值集。
14.根据权利要求12所述的计算电路,
其中所述多个计算器组中的计算器组包括多个MAC电路,
其中所述MAC电路联接到与该计算器组联接的数据路径,同时从该数据路径接收数据值,分别联接到与该计算器组联接的权重路径,当接收所述数据值时同时从权重路径接收各自的权重值,并且基于所述数据值和所述各自的权重值同时执行MAC操作。
15.一种深度学习系统,包括:
多个计算器组,构成由多行和多列组成的脉动阵列;以及
多个激活组,分别与多行相对应,
其中多行中的每一行中包括的计算器组联接到与该行相对应的单个数据路径和与该行相对应的多个漏极路径,
其中所述激活组中的每个激活组包括同时从相应行的漏极路径接收多个漏极值集的多个子激活单元,并且
所述多个子激活单元中的每个子激活单元基于相应的漏极值集执行激活函数计算。
16.根据权利要求15所述的深度学习系统,其中所述子激活单元分别执行LSTM网络即长短时记忆网络的不同激活函数计算。
17.根据权利要求15所述的深度学习系统,其中多行中的每一行中包括的计算器组在数据传播方向上通过所述单个数据路径传播数据值集,并且在漏极传播方向上通过漏极路径同时传播漏极值集。
18.根据权利要求15所述的深度学习系统,其中多列中的每一列中包括的计算器组联接到与该列相对应的多个权重路径,并且在权重传播方向上通过权重路径同时传播与该列相对应的多个权重值集。
CN202010803936.3A 2020-02-18 2020-08-11 计算电路和包括计算电路的深度学习系统 Pending CN113344193A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0019532 2020-02-18
KR1020200019532A KR20210105053A (ko) 2020-02-18 2020-02-18 연산 회로 및 그것을 포함하는 딥 러닝 시스템

Publications (1)

Publication Number Publication Date
CN113344193A true CN113344193A (zh) 2021-09-03

Family

ID=77061000

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010803936.3A Pending CN113344193A (zh) 2020-02-18 2020-08-11 计算电路和包括计算电路的深度学习系统

Country Status (5)

Country Link
US (1) US20210256360A1 (zh)
JP (1) JP2021131849A (zh)
KR (1) KR20210105053A (zh)
CN (1) CN113344193A (zh)
DE (1) DE102020216533A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11823018B1 (en) 2020-06-30 2023-11-21 Cadence Design Systems, Inc. Method, product, and apparatus for a machine learning process using weight sharing within a systolic array having reduced memory bandwidth
US11651283B1 (en) 2020-06-30 2023-05-16 Cadence Design Systems, Inc. Method, product, and apparatus for a machine learning process using dynamic rearrangement of sparse data and corresponding weights
US11676068B1 (en) 2020-06-30 2023-06-13 Cadence Design Systems, Inc. Method, product, and apparatus for a machine learning process leveraging input sparsity on a pixel by pixel basis
US11615320B1 (en) 2020-06-30 2023-03-28 Cadence Design Systems, Inc. Method, product, and apparatus for variable precision weight management for neural networks
US11687831B1 (en) * 2020-06-30 2023-06-27 Cadence Design Systems, Inc. Method, product, and apparatus for a multidimensional processing array for hardware acceleration of convolutional neural network inference
KR20220015680A (ko) * 2020-07-31 2022-02-08 삼성전자주식회사 딥러닝 연산 수행 방법 및 장치

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE576519A (fr) * 1958-03-10 1959-07-01 Ncr Co Dispositif de commande de programme
FR73245E (fr) * 1957-05-08 1960-09-23 Siemens Ag Appareil calculateur déterminant la répartition de la charge totale entre des centrales de force motrice fonctionnant en interconnexion, pour l'obtention des frais de production les plus réduits de la charge totale
JPH08241294A (ja) * 1994-08-18 1996-09-17 Nikon Syst:Kk カオスニューラルネットワークを用いた運動制御方法及びカオス計算機と群運動制御方法。
US5636130A (en) * 1995-07-05 1997-06-03 Sun Microsystems, Inc. Method of determining signal propagation delay through circuit elements
DE102004016196A1 (de) * 2004-04-01 2005-11-03 Forschungszentrum Karlsruhe Gmbh Verfahren zur Verringerung/Unterdrückung unerwünschter Schwingungsmodi eines elektromechanischen Systems und Vorrichtung zur Durchführung des Verfahrens
WO2017186830A1 (fr) * 2016-04-27 2017-11-02 Commissariat A L'energie Atomique Et Aux Energies Alternatives Dispositif et procede de distribution de donnees de convolution d'un reseau de neurones convolutionnel
CN107454966A (zh) * 2015-05-21 2017-12-08 谷歌公司 用于神经网络处理器的预取权重
CN107533667A (zh) * 2015-05-21 2018-01-02 谷歌公司 神经网络处理器中的向量计算单元
CN107578095A (zh) * 2017-09-01 2018-01-12 中国科学院计算技术研究所 神经网络计算装置及包含该计算装置的处理器
CN107918794A (zh) * 2017-11-15 2018-04-17 中国科学院计算技术研究所 基于计算阵列的神经网络处理器
US20190026250A1 (en) * 2017-07-24 2019-01-24 Tesla, Inc. Vector computational unit
CN110610236A (zh) * 2017-10-30 2019-12-24 上海寒武纪信息科技有限公司 一种用于执行神经网络运算的装置
US20200026989A1 (en) * 2018-07-19 2020-01-23 Xilinx, Inc. Performing consecutive mac operations on a set of data using different kernels in a mac circuit
CN110751277A (zh) * 2018-07-23 2020-02-04 爱思开海力士有限公司 运算电路、包括该运算电路的运算装置和系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10915297B1 (en) * 2017-11-15 2021-02-09 Habana Labs Ltd. Hardware accelerator for systolic matrix multiplication
KR20200019532A (ko) 2018-08-14 2020-02-24 삼우산기 주식회사 일반 화재와 리튬이온 배터리의 화재를 감지하는 적외선 불꽃 감지기
US11681902B2 (en) * 2019-09-27 2023-06-20 Amazon Technologies, Inc. Transposed convolution using systolic array

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR73245E (fr) * 1957-05-08 1960-09-23 Siemens Ag Appareil calculateur déterminant la répartition de la charge totale entre des centrales de force motrice fonctionnant en interconnexion, pour l'obtention des frais de production les plus réduits de la charge totale
BE576519A (fr) * 1958-03-10 1959-07-01 Ncr Co Dispositif de commande de programme
JPH08241294A (ja) * 1994-08-18 1996-09-17 Nikon Syst:Kk カオスニューラルネットワークを用いた運動制御方法及びカオス計算機と群運動制御方法。
US5636130A (en) * 1995-07-05 1997-06-03 Sun Microsystems, Inc. Method of determining signal propagation delay through circuit elements
DE102004016196A1 (de) * 2004-04-01 2005-11-03 Forschungszentrum Karlsruhe Gmbh Verfahren zur Verringerung/Unterdrückung unerwünschter Schwingungsmodi eines elektromechanischen Systems und Vorrichtung zur Durchführung des Verfahrens
CN107454966A (zh) * 2015-05-21 2017-12-08 谷歌公司 用于神经网络处理器的预取权重
CN107533667A (zh) * 2015-05-21 2018-01-02 谷歌公司 神经网络处理器中的向量计算单元
WO2017186830A1 (fr) * 2016-04-27 2017-11-02 Commissariat A L'energie Atomique Et Aux Energies Alternatives Dispositif et procede de distribution de donnees de convolution d'un reseau de neurones convolutionnel
US20190026250A1 (en) * 2017-07-24 2019-01-24 Tesla, Inc. Vector computational unit
CN107578095A (zh) * 2017-09-01 2018-01-12 中国科学院计算技术研究所 神经网络计算装置及包含该计算装置的处理器
CN110610236A (zh) * 2017-10-30 2019-12-24 上海寒武纪信息科技有限公司 一种用于执行神经网络运算的装置
CN107918794A (zh) * 2017-11-15 2018-04-17 中国科学院计算技术研究所 基于计算阵列的神经网络处理器
US20200026989A1 (en) * 2018-07-19 2020-01-23 Xilinx, Inc. Performing consecutive mac operations on a set of data using different kernels in a mac circuit
CN110751277A (zh) * 2018-07-23 2020-02-04 爱思开海力士有限公司 运算电路、包括该运算电路的运算装置和系统

Also Published As

Publication number Publication date
US20210256360A1 (en) 2021-08-19
KR20210105053A (ko) 2021-08-26
JP2021131849A (ja) 2021-09-09
DE102020216533A1 (de) 2021-08-19

Similar Documents

Publication Publication Date Title
CN113344193A (zh) 计算电路和包括计算电路的深度学习系统
CN109284825B (zh) 用于执行lstm运算的装置和方法
US8745608B2 (en) Scheduler of reconfigurable array, method of scheduling commands, and computing apparatus
CN105957470B (zh) 移位寄存器单元、栅极驱动电路及其驱动方法、显示器件
Xu et al. Efficient fast convolution architectures for convolutional neural network
Dinelli et al. Advantages and limitations of fully on-chip CNN FPGA-based hardware accelerator
US11593628B2 (en) Dynamic variable bit width neural processor
WO2023045160A1 (zh) 数据处理装置以及数据处理方法
CN115423081A (zh) 一种基于fpga的cnn_lstm算法的神经网络加速器
WO2022272303A1 (en) Compute in memory-based machine learning accelerator architecture
Sun et al. An OpenCL-based hybrid CNN-RNN inference accelerator on FPGA
Iliev et al. Low latency CMOS hardware acceleration for fully connected layers in deep neural networks
US6886088B2 (en) Memory that allows simultaneous read requests
US11705171B2 (en) Switched capacitor multiplier for compute in-memory applications
US20220188612A1 (en) Npu device performing convolution operation based on the number of channels and operating method thereof
KR102555621B1 (ko) 메모리 내의 컴퓨팅 회로 및 방법
US11664070B2 (en) In-memory computation device and in-memory computation method to perform multiplication operation in memory cell array according to bit orders
CN110705701B (zh) 一种高并行度的卷积运算方法和电路
CN111652361A (zh) 长短时记忆网络的复合粒度近存储近似加速结构和方法
US7275168B2 (en) System and method for providing clock signals based on control signals from functional units and on a hibernate signal
CN114911453B (zh) 一种多比特乘累加全数字存内计算装置
CN114527957A (zh) 一种基于忆阻器的混合逻辑乘累加电路
US20230273733A1 (en) In-memory compute core for machine learning acceleration
Li et al. RAWAtten: Reconfigurable accelerator for window attention in hierarchical vision transformers
Mun et al. Bottleneck-Stationary Compact Model Accelerator With Reduced Requirement on Memory Bandwidth for Edge Applications

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