CN220569161U - 可调适存储器内运算电路 - Google Patents

可调适存储器内运算电路 Download PDF

Info

Publication number
CN220569161U
CN220569161U CN202321914913.5U CN202321914913U CN220569161U CN 220569161 U CN220569161 U CN 220569161U CN 202321914913 U CN202321914913 U CN 202321914913U CN 220569161 U CN220569161 U CN 220569161U
Authority
CN
China
Prior art keywords
data element
memory
circuit
output
adder
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
Application number
CN202321914913.5U
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.)
Taiwan Semiconductor Manufacturing Co TSMC Ltd
Original Assignee
Taiwan Semiconductor Manufacturing Co TSMC Ltd
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 Taiwan Semiconductor Manufacturing Co TSMC Ltd filed Critical Taiwan Semiconductor Manufacturing Co TSMC Ltd
Application granted granted Critical
Publication of CN220569161U publication Critical patent/CN220569161U/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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/0464Convolutional networks [CNN, ConvNet]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Logic Circuits (AREA)
  • Complex Calculations (AREA)

Abstract

一种可调适存储器内运算电路,包括一个数据缓冲器,配置为依序地输出第一与第二位元,一个具有总数的存储器巨集,以及连接在数据缓冲器和存储器巨集之间的分布网络。分布网络将这些第一位元分割为总数个第一子集,并将每一个第一子集输出至相对应的一存储器巨集,而且将这些第二位元的全部输出至每一个存储器巨集,或将第二位元分割为不多于总数个的第二子集,并将每一个第二子集输出至一个或多个相对应的存储器巨集。每一个存储器巨集输出相对应的第一子集与这些第二位元的全部或这些第二位元的相对应的第二子集的乘积。

Description

可调适存储器内运算电路
技术领域
本公开实施例是关于一种运算电路,特别是关于一种可调适存储器内运算电路。
背景技术
存储阵列常被用来存储和存取用于各种计算的数据,例如逻辑运算、部分和计算或其他数学运算。为了进行这些运算,数据位元会在存储阵列和用于进行运算的电路之间移动。在某些情况下,例如基于权重和输入数据的神经网络应用,运算包含多层操作,第一个操作的结果会作为第二个操作的输入数据。
实用新型内容
本公开提供一种可调适存储器内运算电路,包括一个数据缓冲器,配置为依序地输出多个第一位元与多个第二位元、一个具有总数个的存储器巨集、以及连接在数据缓冲器和这些存储器巨集之间的一分布网络。分布网络配置以将这些第一位元分割为总数个第一子集,并将每一个第一子集输出至这些存储器巨集中相对应的一存储器巨集,而且将这些第二位元的全部输出至这些存储器巨集中每一个存储器巨集,或将这些第二位元分割为不多于或等于总数个的第二子集,并将每一个第二子集输出至这些存储器巨集中一个或多个相对应的存储器巨集。这些存储器巨集中每一个存储器巨集配置以输出相对应的第一子集与这些第二位元的全部的乘积或与这些第二位元的相对应的第二子集的乘积。
在一些实施例中,所述多个第一位元包括一权重数据元件,并且所述多个第二位元包括一输入数据元件;或者所述多个第一位元包括一输入数据元件,并且所述多个第二位元包括一权重数据元件。
在一些实施例中,所述可调适存储器内运算电路更包括:一第一层解多工器,耦接于所述多个存储器巨集;一第一层加法器,耦接于该第一层解多工器;其中该第一层解多工器中的每一个解多工器配置以:接收由所述多个存储器巨集中一相对应存储器巨集所输出的一乘积;当该乘积是基于所述多个第二位元中的该第二子集时,将该乘积输出至该第一层加法器中的一个加法器;以及当该乘积是基于所述多个第二位元中的全部时,将该乘积由该可调适存储器内运算电路输出;该可调适存储器内运算电路更包括:一第二层解多工器,耦接于该第一层加法器;以及一第二层加法器,耦接于该第二层解多工器;其中该第二层解多工器中的每一个解多工器配置以:接收该第一层加法器中相对应的一加法器所输出的一部分和;当该部分和对应于数目为总数个的第二子集时,输出该部分和到第二层加法器中的一加法器;当该部分和对应于数目小于总数个的第二子集时,将该部分和由该可调适存储器内运算电路输出。
在一些实施例中,所述可调适存储器内运算电路更包括一控制电路,配置以产生一或多个控制信号,其中因应于该一或多个控制信号,该分布电路配置以执行相对应的分割与输出操作;因应于该一或多个控制信号,该第一层解多工器中的每一个解多工器配置以执行相对应的输出操作。
在一些实施例中,该分布电路包括多个路径电路;每一个路径电路包括两个输出分支并且配置以:从另一个路径电路或从该数据缓冲器接收一数据元件;将所接收到的该数据元件的一半或全部输出到每一个输出分支。
本公开提供一种可调适存储器内运算电路,包括一数据缓冲器,配置以依序地输出一第一数据元件与一第二数据元件、第一存储器巨集至第四存储器巨集、以及第一路径电路至第三路径电路,耦接于该数据缓冲器以及该第一存储器巨集至第四存储器巨集之间。第一路径电路配置以将第一数据元件的前半部分以及后半部分个别地输出到第二路径电路以及第三路径电路,并且将第二数据元件输出到第二路径电路以及第三路径电路的每一者,或将第二数据元件的前半部分以及后半部分个别地输出到第二路径电路以及第三路径电路。第二路径电路配置以将第一数据元件的一第一个四分之一部分以及一第二个四分之一部分个别地输出到第一存储器巨集以及第二存储器巨集,并且将第二数据元件或第二数据元件的前半部分输出到第一存储器巨集以及第二存储器巨集的每一者,或将第二数据元件的一第一个四分之一部分以及一第二个四分之一部分个别地输出到第一存储器巨集以及第二存储器巨集。第三路径电路配置以将第一数据元件的一第三个四分之一部分以及一第四个四分之一部分个别地输出到第三存储器巨集以及第四存储器巨集,并且将第二数据元件或第二数据元件的后半部分输出到第三存储器巨集以及第四存储器巨集的每一者,或将第二数据元件的一第三个四分之一部分以及一第四个四分之一部分个别地输出到第三存储器巨集以及第四存储器巨集。第一存储器巨集至第四存储器巨集中的每一个存储器巨集配置以输出第一数据元件中第一个四分之一部分至第四个四分之一部分中相对应的四分之一部分与该第二数据元件的全部、相对应的前半部分与后半部分之一者或第一个四分之一部分至第四个四分之一部分中相对应的四分之一部分的乘积。
在一些实施例中,该第一数据元件以及该第二数据元件个别包括权重数据元件以及输入数据元件,或者个别包括输入数据元件以及权重数据元件。
在一些实施例中,所述可调适存储器内运算电路更包括一控制电路,配置以产生多个控制信号,其中该第一路径电路至该第三路径电路的每一者因应于所述多个控制信号配置以输出相对应的该第一数据元件的前半部分及后半部分、相对应的该第一数据元件的该第一个四分之一部分至该第四个四分之一部分、该第二数据元件、相对应的该第二数据元件的前半部分及后半部分以及相对应的该第二数据元件的该第一个四分之一部分至该第四个四分之一部分。
在一些实施例中,所述可调适存储器内运算电路更包括:一第一解多工器至一第四解多工器,分别耦接于该第一存储器巨集至该第四存储器巨集;一第一加法器,耦接于该第一解多工器与一第三解多工器的每一者;以及一第二加法器,耦接于一第二解多工器与该第四解多工器的每一者;其中该第一解多工器至该第四解多工器中每一者因应于所述多个控制信号配置以:接收相对应的一乘积;当该乘积是基于该第二数据元件的前半部分及后半部分或该第二数据元件的该第一个四分之一部分至该第四个四分之一部分时,输出该乘积至相对应的该第一加法器或第二加法器;以及当该乘积是基于该第二数据元件时,由该可调适存储器内运算电路输出该乘积;其中该可调适存储器内运算电路,更包括:第五及第六解多工器,分别耦接于该第一加法器与第二加法器;以及一第三加法器,耦接于该第五及第六解多工器的每一者;其中,该第五及第六解多工器中每一者因应于所述多个控制信号配置以:接收由该第一加法器与第二加法器中相对应的一者所输出的一部分和;当该部分和对应于该第二数据元件的该第一个四分之一部分至该第四个四分之一部分时,输出该部分和至该第三加法器;当该部分和对应于该第二数据元件的前半部分及后半部分时,由该可调适存储器内运算电路输出该部分和。
在一些实施例中,该第一数据元件的位元的总数大于该第二数据元件的位元的总数。
附图说明
本公开可借由之后的详细说明并配合图示而得到清楚的了解。要强调的是,按照业界的标准做法,各种特征并没有按比例绘制,并且仅用于说明之目的。事实上,为了能够清楚的说明,因此各种特征的尺寸可能会任意地放大或者缩小。
图1为根据某些实施例的一可调适存储器内运算电路的示意图。
图2A至图2G为根据某些实施例的一可调适存储器内运算电路中的数据流的示意图。
图3是根据一些实施例的一可调适存储器内运算电路的操作的方法的流程图。
其中,附图标记说明如下:
100:可调适存储器内运算电路
110:控制电路
120:数据缓冲器
130:分布电路
140A~140D:存储器巨集
150:累积网络
A1~A3:加法器
B1~B2:输出分支
CS:控制信号
DE:数据元件
DE1:第一数据元件
DE2:第二数据元件
D1~D6:解多工器
D1P1~D1P2:第一部分
D1PA~D1PD:第一部分
D2PA~D2PD:第二数据元件部分
D2P1~D2P2:第二数据元件部分
R1~R3:路径电路
PA~PD:输出乘积
PS1~PS2:部分和
FS:全和
300:方法
310、320、330、340、350、360、370、380:操作
具体实施方式
以下公开提供了许多不同的实施例或示例,用于实现所提供主题的不同特征。元件、值、操作、材料、布置等的具体示例将在下面描述以简化本公开。当然,这些例子只是举例,并不意味着具有限制性。其他元件、数值、操作、材料、排列方式或类似事项皆可被考虑进去。例如,在下文中描述的第一特征形成于第二特征之上或之上时,可能包括第一和第二特征直接接触形成的实施方式,也可能包括在第一和第二特征之间形成其他特征的实施方式,因此第一和第二特征可能不直接接触。此外,本文可能会在各种示例中重复使用参考数字和/或字母。此重复是为了简化和清晰起见,并不意味着不同实施方式和/或配置之间存在某种关系。
此外,为了方便描述元件或特征之间的关系,本文中可能使用空间相对词语,如“下方”、“在下”、“较低”、“上方”、“较高”等。这些空间相对词语旨在描述设备在使用或操作中与其他元件或特征的关系,除了图中所示的方向外,还包括其他方向。该装置可能以其他方式定向(旋转90度或其他方向),并且本文中使用的空间相对描述词语可以相应地进行解释。
在各种实施例中,可调适存储器内运算(configurable compute-in-memory,CIM)电路包括一个数据缓冲器,通过一分布网络与多个存储器巨集相连。数据缓冲器依序输出第一和第二数据元件,例如权重和输入数据元件,而分布网络可以配置为将第一个数据元件的部分输出给存储器巨集,并将第二数据元件的部分或全部输出给存储器巨集。相较于不通过可配置网络来分配数据元件的方法,此电路能够改善存储器内运算的利用率,包括在各种工作负载下提高输出和能源效率。
图1至图2G中的每一个是根据某些实施例的一可调适存储器内运算电路100的部分或全部的示意图。可调适存储器内运算电路100在某些实施例中也被称为电路或存储器电路,其包括一控制电路110、一数据缓冲器120、一分布电路130(又可称分布网络)、存储器巨集140A-140B以及一累积网络150。
数据缓冲器120是通过分布电路130与存储器巨集140A~140B的输入端(未标示)相耦接,而存储器巨集140A~140B的输出端(未标示)则与累积网络150相耦接。
两个或多个电路元件被视为是基于直接电性连接或包括一个或多个附加电路元件的电性连接而耦合,并因此能够被控制,例如,借由一个或多个电晶体或其他开关设备使其有电阻性质或开路状态。
在某些实施例中,可调适存储器内运算电路100是神经网络的一部分,例如卷积神经网络(convolutional neural network,CNN),其中数据元件包括权重数据元件,这些权重数据元件是应用在乘积累加(multiply and accumulate,MAC)操作中,用于一或多组输入数据元件。
图1描述了可调适存储器内运算电路100的整体配置,而图2A至图2G则描述了可调适存储器内运算电路100的部分或全部在操作中的数据流,如下文所讨论的。
控制电路110是一个电子电路,例如集成电路(integrated circuit,IC),包括一个或多个配置为产生多个控制信号CS的逻辑装置,并通过一个或多个数据总线(未表示)将控制信号CS输出给数据缓冲器120、分布电路130(或称分布网络)和累积网络150。在某些实施例中,控制电路110配置以将控制信号输出给存储器巨集140A~140D及/或与数据缓冲器120结合作为一信号电路。在某些实施例中,可调适存储器内运算电路100不包括控制电路110,而是配置以从一外部电路(例如用于包含可调适存储器内运算电路100的神经网络的控制电路)接收控制信号CS。
控制电路110配置以产生控制信号CS,而数据缓冲器120、分布电路130和累积网络150中的每一者是配置以对控制信号CS做出回应,以便根据下文所讨论的可调适存储器内运算电路100和方法300来执行各种操作。
数据缓冲器120是一个电子电路,包括一个或多个存储装置,配置以作为一统一缓冲器,能够存储并分别输出第一和第二数据元件,如图1中集合表示的数据元件DE。在某些实施例中,数据缓冲器120包括一个或多个数据暂存器(未表示),配置以接收并暂存数据元件DE,例如通过包含一个或多个闩锁电路或正反器电路。
在某些实施例中,第一或第二数据元件DE中的一者是权重数据元件,而另一者是输入数据元件,也在某些实施例中被称为触发数据元件。
数据元件(例如数据元件DE)是一个具有预定的总数的多个位元,例如对应于神经网络中的一个或多个矩阵操作。在某些实施例中,预定的总位数的位元是对应于人工智能(AI)或其他机器学习演算法的一个或多个计算。
数据缓冲器120配置以在操作中存储并依序输出第一、第二数据元件DE,其具有可变总数的多个位元,取决于控制信号CS。随着第一或第二数据元件DE中的位元的总数增加,相应的计算的能力和复杂性增加,计算时间也随之增加。
在某些实施例中,数据缓冲器120配置以存储并依序输出具有位元总数从8到1024的第一和第二数据元件DE。在某些实施例中,数据缓冲器120配置以存储并依序输出具有位元总数从36到256的第一、第二数据元件DE。
分布电路130是一个电子电路,包括多个因应于控制信号CS的切换装置,以在操作中接收依序输出的第一以及第二数据元件DE,并可根据在接下来所讨论的多个预定的数据流之一者配置以将第一或第二数据元件DE的一部分或全部输出到每个存储器巨集140A~140D中。
在图1以及图2D~图2G所示的实施例中,分布电路130包括三个路径电路R1~R3,每个路径电路包括两个输出分支B1和B2。路径电路(例如路径电路R1~R3)是一个电子电路,包括多个切换装置,配置以接收多个位元(例如部分或全部数据元件DE),并根据控制信号CS作出回应,将多个位元输出到每个输出分支B1和B2,或者将多个位元的第一部分(例如前一半)输出到输出至输出分支B1并将多个位元的第二部分(例如后一半)输出到输出分支B2。
在图1和图2D~图2G所示的实施例中,路径电路R1与数据缓冲器120相耦合,从而配置以接收从数据缓冲器120输出的第一和第二数据元件DE的每一者,并将第一和第二数据元件DE的全部或一半,在输出分支B1和B2上输出。路径电路R2和R3各自与路径电路R1相耦合,从而配置以接收相应的全部或一半的第一或第二数据元件DE。
路径电路R2包括与存储器巨集140A相耦合的输出分支B1,以及与存储器巨集140B相耦合的输出分支B2,从而配置以将相应的全部、一半或四分之一的第一或第二数据元件DE输出到每个存储器巨集140A和140B。路径电路R3包括与存储器巨集140C相耦合的输出分支B1,以及与存储器巨集140D相耦合的输出分支B2,从而配置以将相应的全部、一半或四分之一的第一或第二数据元件DE输出到每个存储器巨集140C和140D。
在图1和图2D~图2G中描述的实施例中,分布电路130因此配置以将第一或第二数据元件DE的一部分或全部分配给总共四个存储器巨集140A~140D。在一些实施例中,分布电路130包括一个单一的路径电路,例如路径电路R1,并因此配置以将第一或第二数据元件DE中的每一者的一部分或全部分配到总共两个存储器巨集。在一些实施例中,除了路径电路R1~R3外,分布电路130还包括一个或多个路径电路(未示出),并因此配置以将第一或第二数据元件DE中每一者的一部分或全部分配给除了存储器巨集140A~140D之外的一个或多个的存储器巨集(未示出),例如借由包括总共7个路径电路,配置以将第一或第二数据元件DE中的每一者的一部分或全部分配到总共8个存储器巨集。
存储器巨集,例如存储器巨集140A~140D,是包括一存储器阵列(例如静态随机存取存储器(static random access memory,SRAM)阵列)以及配置以执行一或多个乘法运算并输出结果乘积的一或多个计算电路的电子电路。在一些实施例中,一个存储器巨集包括一存储器内运算电路巨集,配置以借由执行一个或多个乘法运算来输出相对应的乘积以作为矩阵或向量计算的一部分。
存储器巨集140A~140D中的每一者包括存储器阵列,其容量足以存储第一数据元件DE的至少四分之一以及第二数据元件DE的全部,并对其执行一个或多个乘法运算。
在图1至图2G中描述的实施例中,可调适存储器内运算电路100包括总共四个存储器巨集140A~140D。在一些实施例中,可调适存储器内运算电路100包括总共少于或多于四个存储器巨集。
存储器巨集140A~140D中的每一个都与累积网络150耦接,并因此配置以将各自的乘积PA~PD输出到累积网络150。
累积网络150是一个电子电路,包括多个切换装置以及一个或多个加法器电路。在操作中,累积网络150配置以根据预定的数据流单独地或组合地接收乘积PA~PD以及将乘积PA~PD输出,如以下所讨论的。
在图1和图2D~图2G所示的实施例中,累积网络150包括与存储器巨集140A~140D分别耦合的第一层解多工器D1~D4、与解多工器D1~D4耦合的第一层加法器A1以及A2、与加法器A1和A2耦合的第二层解多工器D5以及D6,以及包括与解多工器D5和D6耦合的单一个加法器A3的第二层加法器。
一个解多工器,例如解多工器D1~D6,是一个电子电路,其包括多个切换装置,配置以在操作中接收一数据元件(例如乘积PA~PD),并且根据控制信号CS来选择性地输出数据元件。
一个加法器,例如加法器A1~A3,是一个电子电路,其包括一个或多个逻辑闸,配置以根据接收的第一和第二数据元件进行数学运算(例如加法),从而产生一个和数据元件(sum data element),其等于所接收的第一和第二数据元件的总和。在各种实施例中,一个加法器包括一个或多个全加法器闸、半加法器闸、行波进位加法器(ripple-carry adder)电路、进位保存(carry-save)加法器电路、进位选择(carry-select)加法器电路、超前进位(carry-look-ahead)加法器电路或其他适合执行部分或全部加法运算的电路。
解多工器D1是配置以接收并选择性地将乘积PA输出到加法器A1或从可调适存储器内运算电路100输出。解多工器D2是配置以接收并选择性地将乘积PB输出到加法器A2或从可调适存储器内运算电路100输出。解多工器D3是配置以接收并选择性地将乘积PC输出到加法器A1或从可调适存储器内运算电路100输出。解多工器D4是配置以接收并选择性地将乘积PD输出到加法器A2或从可调适存储器内运算电路100输出。
加法器A1是配置以从解多工器D1接收乘积PA以及从解多工器D3接收乘积PC,并将第一和数据元件(图1中未标注)输出至解多工器D5。加法器A2是配置以从解多工器D2接收乘积PB以及从解多工器D4接收和数据PD,并将第二和数据元件(图1中未标注)输出至解多工器D6。
解多工器D5是配置以接收并选择性地将第一和数据元件输出到加法器A3或从可调适存储器内运算电路100输出。解多工器D6是配置以接收并选择性地将第二和数据元件输出到加法器A3或从可调适存储器内运算电路100输出。
加法器A3是配置以接收第一、第二和数据元件,并从可调适存储器内运算电路100输出一第三和数据元件(未在图1中标记)。
在图1~图2G所示的实施例中,累积网络150因此配置以将从总共四个存储器巨集140A~140D所接收到数据乘积单独地或组合地输出。在一些实施例中,累积网络150配置以将从总共少于四个存储器巨集所接收到数据乘积单独地或组合地输出,例如,借由包括单一层的解多工器D1~D6以及单一层的加法器A1~A3。在一些实施例中,累积网络150配置以将从总共多于四个存储器巨集所接收到数据乘积单独地或组合地输出,例如借由包括除了解多工器D1~D6之外的一层或多层解多工器(未示出)以及除了加法器A1~A3之外的一层或多层加法器(未示出)。
在一些实施例中,可调适存储器内运算电路100不包括累积网络150,而存储器巨集140A~140D配置以直接从可调适存储器内运算电路100直接输出个别的乘积PA~PD。
图2A~图2G描述了关于可调适存储器内运算电路100的预定数据流的非限制性的示例。图2A~图2C描绘了简化的示意图,图2D描述了关于第一数据元件DE1的数据流。图2E~图2G描述了关于第二数据元件DE2的数据流。
每一个预定数据流对应于数据缓冲器120所输出的第一数据元件DE1,随后是第二数据元件DE2。在一些实施例中,第一数据元件DE1是一权重数据元件,第二数据元件DE2是一输入数据元件,并且预定数据流是对应于权重固定(weight stationary,WS)数据流。在一些实施例中,第一数据元件DE1是输入数据元件,第二数据元件DE2是权重数据元件,并且预定数据流是对应于输入固定(input stationary,IS)数据流。
在图2A~图2C所示的实施例中,存储器巨集140A~140D根据各自的4x1、2x2和1x4布局从分布电路130(未示出)接收部分或全部的第二数据元件DE2。图2A~图2C所描绘的每个布局是对应于存储器巨集140A~140D中的每一者,其在关于第二数据元件DE2的数据流之前已经接收了第一数据元件DE1(未示出)的相对应的四分之一。
在图2A所示的4x1布局中,存储器巨集140A~140D接收各自的第二数据元件部分D2PA~D2PD,其每一个是代表第二数据元件DE2的四分之一。加法器A1接收乘积PA与PC并产生部分和PS1(partial sum)。加法器A2接收乘积PB与PD并产生部分和PS2。加法器A3接收了部分和PS1和PS2并产生全和FS(full sum)。因此,在4x1的布局中,可调适存储器内运算电路100配置以将第一数据元件DE1的每一个四分之一乘以第二数据元件DE2中相对应的四分之一,并将累积和(cumulative sum)输出以作为全和FS。
存储器巨集140A和140B的每一者接收第二数据元件部分D2P1,存储器巨集140C和140D的每一者接收第二数据元件部分D2P2。加法器A1接收乘积PA和PC,并且产生且输出部分和PS1。加法器A2接收乘积PB和PD,并产生且输出部分和PS2。加法器A3没有被使用。因此,在2x2布局中,可调适存储器内运算电路100配置以将第一数据元件DE1的每一个四分之一乘以第二数据元件DE2的相对应的一半,并将部分和PS1与PS2输出以作为一个集合的全和。
如图2C所描述的1x4布局所示,存储器巨集140A~140D的每一者接收第二数据元件DE2的全部。加法器A1~A3没有被使用,因此在1x4布局中,可调适存储器内运算电路100配置以将第一数据元件DE1的每个四分之一乘以第二数据元件DE2的全部,并将乘积PA~PD输出以作为一个集合的全和。
图2D描述了根据每个布局的第一个数据元件DE1的分布。如图2D所示,路径电路R1从数据缓冲器120接收第一数据元件DE1,并将对应于第一数据元件DE1的前半部分的第一部分D1P1输出到路径电路R2,并将对应于第一数据元件DE1的后半部分的第一部分D1P2输出到路径电路R3。
路径电路R2从路径电路R1接收第一部分D1P1,并将对应于第一部分D1P1的前半部分的第一部分D1PA输出到存储器巨集140A,并将对应于第一部分D1P1的后半部分的第二部分D1PB输出到存储器巨集140B。
路径电路R3从路径电路R1接收第二部分D1P2,并将对应于第二部分D1P2的前半部分的第一部分D1PC输出到存储器巨集140C,并将对应于第二部分D1P2的后半部分的第二部分D1PD输出到存储器巨集140D。
包括可调适的分布电路130的可调适存储器内运算电路100因此配置以根据布局的每一者将第一数据元件DE1的前述四分之一(第一部分D1PA、D1PC以及第二部分D1PB、D1PD)分配给相对应的存储器巨集140A~140D。
图2E描述了根据4x1布局的第二数据元件DE2以及随后的累积的分配。在图2E所示的实施例中,第二数据元件DE2的分布方式与第一数据元件DE1相同,使得路径电路R1将部分D2P1输出到路径电路R2,并将部分D2P2输出到路径电路R3。路径电路R2将部分D2PA输出到存储器巨集140A,将部分D2PB输出到存储器巨集140B,并且路径电路R3将部分D2PC输出到存储器巨集140C,并将部分D2PD输出到存储器巨集140D。
解多工器D1和D3分别输出乘积PA和PC到加法器A1,并且解多工器D2和D4分别输出乘积PB和PD到加法器A2。加法器A1和A2分别输出部分和PS1与PS2到解多工器D5与D6,其是输出相对应的部分和PS1与PS2到加法器A3。加法器A3产生全和FS并从可调适存储器内运算电路100输出。
包括可调适的分布电路130以及可调适的累积网络150的可调适存储器内运算电路100因此配置以将第二数据元件DE2的多个四分之一部分P2PA~D2PD分配到相对应的存储器巨集140A~140D,并按照4x1布局执行后续的累加操作。
图2F描述了根据2x2布局的第二数据元件DE2和随后的累积的分布。在图2F所示的实施例中,第二数据元件DE2的分布使得路径电路R1将部分D2P1输出到路径电路R2,并将部分D2P2输出到路径电路R3。路径电路R2将部分D2P1输出到存储器巨集140A和140B的每一者,并且路径电路R3将部分D2P2输出到存储器巨集140C和140D的每一者。
解多工器D1与D3分别输出乘积PA和PC到加法器A1,并且解多工器D2与D4分别输出乘积PB和PD到加法器A2。加法器A1和A2分别输出部分和PS1和PS2至解多工器D5与D6,其是从可调适存储器内运算电路100输出相对应的部分和PS1和PS2。
包括可调适的分布电路130以及可调适的累积网络150的可调适存储器内运算电路100因此配置以将第二数据元件DE2的一半的部分D2P1和D2P2分配到相对应的存储器巨集140A~140D,并按照2x2布局执行后续的累加操作。
图2G描述了根据1x4布局的第二数据元件DE2以及随后的累积的分配。在图2G所示的实施例中,第二数据元件DE2的分布使得路径电路R1将第二数据元件DE2分别输出到路径电路R2与R3。路径电路R2将第二数据元件DE2输出到存储器巨集140A和140B的每一者,并且路径电路R3将第二数据元件DE2输出到存储器巨集140C和140D的每一者。
解多工器D1~D4从可调适存储器内运算电路100输出各自的乘积PA~PD。
包括可调适的分布电路130以及可调适的累积网络150的可调适存储器内运算电路100因此配置以将第二数据元件DE2分配给存储器巨集140A~140D的每一者,并按照1x4布局执行后续输出操作。
通过上面讨论的配置,可调适存储器内运算电路100包括透过分布电路130耦合到存储器巨集140A~140D的数据缓冲器120。数据缓冲器120配置以依序地输出第一、第二数据元件DE,分布电路130配置以将第一数据元件DE1的部分输出到存储器巨集140A~140D以及输出部分或全部的第二数据元件DE2至存储器巨集140A~140D。与不通过可配置网络分配数据元件的方法相比,可调适存储器内运算电路100可以提高CIM利用率,包括提高各种工作负载的产量和能源效率。
图3是根据一些实施例的一电路的操作的方法300的流程图。方法300可与可调适存储器内运算电路一起使用,例如图1~图2G中的可调适存储器内运算电路100。
图3中所描绘的方法300的操作的顺序仅供说明之用;方法300的操作能够以不同于图3所示的顺序执行。在一些实施例中,除图3所示的操作外,在其之前、之间、期间及/或之后可执行其他操作。在一些实施例中,方法300的操作是操作一神经网络(例如卷积神经网络)的方法的一子集。
在操作310中,在一些实施例中,一控制电路是用于产生多个控制信号。在一些实施例中,使用这个控制电路产生多个控制信号包括使用控制电路110产生控制信号CS,如上文关于图1所讨论的。
在操作320中,一第一数据元件是从一数据缓冲器输出到一分布电路。在一些实施例中,从数据缓冲器输出到分布电路的第一数据元件包括将第一数据元件DE1从数据缓冲器120输出到分布电路130,如上文关图1与图2D所讨论的。
在操作330中,第一数据元件的一部分是从分布电路输出到多个存储器巨集中相对应的存储器巨集。在一些实施例中,将第一数据元件的一部分从分布电路输出到多个巨集中的相对应巨集包括将第一数据元件DE1的部分从分布电路130输出到相应的巨集140A~140D,如上文关于图1和图2D所讨论的。
在操作340时,一第二数据元件从数据缓冲器输出到分布电路。在一些实施例中,从数据缓冲器输出第二数据元件到分布电路包括将第二数据元件DE2从数据缓冲器120输出到分布电路130,如上文关于图1与图2E~图2G所讨论的。
在操作350中,第二数据元件从分布电路输出以作为第二数据元件的一整体而输出到多个存储器巨集的每一个存储器巨集,或者作为第二数据元件的部分输出到多个存储器巨集中相对应的存储器巨集。在某些实施例中,从分布电路将第二数据元件作为第二数据元件的整体输出到多个存储器巨集中的每一个存储器巨集或将第二数据元件的部分输出到多个存储器巨集中相对应的存储器巨集包括从分布电路130输出第二数据元件DE2作为第二数据元件DE2到存储器巨集140A~140D中的每一个,或者作为部分D2P1和D2P2或部分D2PA~D2PD输出到相对应的存储器巨集140A~140D,如上文关于图1与图2E至图2G所讨论的。
在操作360中,从多个存储器巨集中的每一个存储器巨集输出第一数据元件的相对应部分与第二数据元件的全部或相对应部分的乘积。在某些实施例中,从多个存储器巨集中的每一个存储器巨集输出第一数据元件的相对应部分与第二数据元件的全部或相对应部分的乘积包括从各自的存储器巨集140A~140D输出乘积PA~PD,如上文中图1至图2G所讨论的。
在操作370中,在某些实施例中,使用第一层解多工器中的每一个解多工器将相对应的乘积输出到第一层加法器中的一个或从可调适存储器内运算电路输出对应的乘积。在某些实施例中,使用第一层解多工器中的每一个解多工器将相对应的乘积输出到第一层加法器中的那个加法器或从电路输出相对应的乘积包括使用解多工器D1~D4将相对应的乘积PA~PD输出到加法器A1和A2或从可调适存储器内运算电路100输出,如上文关于图1至图2G所讨论的。
在操作380中,在某些实施例中,使用第二层解多工器的每一个解多工器将相对应的部分和输出到第二层的一加法器或从可调适存储器内运算电路输出相对应的部分和。在某些实施例中,使用第二层解多工器的解多工器将相对应的部分和输出到第二层的加法器或从电路输出相对应的部分和包括使用解多工器D5和D6将个别的部分和PS1与PS2输出到加法器A3或从可调适存储器内运算电路100输出,如上文图1至图2G所讨论的。
在一些实施例中,操作380包括使用除了第一层和第二层之外的层来执行附加的累积操作,如上文关于图1所讨论的。
借由执行方法300的一些或全部的操作,电路配置以将第一和第二数据元件分配给多个存储器巨集,并且执行后续的乘法运算,从而达到上面讨论关于可调适存储器内运算电路100的益处。
在一些实施例中,一种可调适存储器内运算电路包括一个数据缓冲器,配置为依序地输出多个第一位元与多个第二位元、一个具有总数个的存储器巨集、以及连接在数据缓冲器和这些存储器巨集之间的一分布网络。分布网络配置以将这些第一位元分割为总数个第一子集,并将每一个第一子集输出至这些存储器巨集中相对应的一存储器巨集,而且将这些第二位元的全部输出至这些存储器巨集中每一个存储器巨集,或将这些第二位元分割为不多于或等于总数个的第二子集,并将每一个第二子集输出至这些存储器巨集中一个或多个相对应的存储器巨集。这些存储器巨集中每一个存储器巨集配置以输出相对应的第一子集与这些第二位元的全部的乘积或与这些第二位元的相对应的第二子集的乘积。
在一些实施例中,一种可调适存储器内运算电路,包括一数据缓冲器,配置以依序地输出一第一数据元件与一第二数据元件、第一存储器巨集至第四存储器巨集、以及第一路径电路至第三路径电路,耦接于该数据缓冲器以及该第一存储器巨集至第四存储器巨集之间。第一路径电路配置以将第一数据元件的前半部分以及后半部分个别地输出到第二路径电路以及第三路径电路,并且将第二数据元件输出到第二路径电路以及第三路径电路的每一者,或将第二数据元件的前半部分以及后半部分个别地输出到第二路径电路以及第三路径电路。第二路径电路配置以将第一数据元件的一第一个四分之一部分以及一第二个四分之一部分个别地输出到第一存储器巨集以及第二存储器巨集,并且将第二数据元件或第二数据元件的前半部分输出到第一存储器巨集以及第二存储器巨集的每一者,或将第二数据元件的一第一个四分之一部分以及一第二个四分之一部分个别地输出到第一存储器巨集以及第二存储器巨集。第三路径电路配置以将第一数据元件的一第三个四分之一部分以及一第四个四分之一部分个别地输出到第三存储器巨集以及第四存储器巨集,并且将第二数据元件或第二数据元件的后半部分输出到第三存储器巨集以及第四存储器巨集的每一者,或将第二数据元件的一第三个四分之一部分以及一第四个四分之一部分个别地输出到第三存储器巨集以及第四存储器巨集。第一存储器巨集至第四存储器巨集中的每一个存储器巨集配置以输出第一数据元件中第一个四分之一部分至第四个四分之一部分中相对应的四分之一部分与该第二数据元件的全部、相对应的前半部分与后半部分之一者或第一个四分之一部分至第四个四分之一部分中相对应的四分之一部分的乘积。
在一些实施例中,一种可调适存储器内运算电路的操作方法包括将来自一数据缓冲器的一第一数据元件输出到一分布电路,其中第一数据元件系一权重数据元件以及一输入数据元件之其中一者;将来自分布电路的第一数据元件的多个部分输出到多个存储器巨集中相对应的存储器巨集;将来自数据缓冲器的一第二数据元件输出到分布电路,其中第二数据元件系权重数据元件以及输入数据元件之其中另一者;将来自分布电路的第二数据元件输出如以下其中之一:将第二数据元件的全部输出到多个存储器巨集中的每一个存储器巨集;或将第二数据元件的多个部分输出到这些存储器巨集中相对应的存储器巨集;以及从这些存储器巨集中的每一个存储器巨集输出第一数据元件中相对应的部分与第二数据元件的全部或与第二数据元件的相对应部分的一乘积。
以上概述了几个实施例的特征,以便本领域的技术人员可以更好地理解本公开的方面。本领域的技术人员应该理解,他们可以容易地使用本公开作为设计或修改其他工艺和结构的基础,以实现与本文介绍的实施例相同的目的和/或实现相同的优点。本领域的技术人员也应该认识到,这样的等同结构并不脱离本公开的精神和范围,并且他们可以在不脱离本公开的精神和范围的情况下对其进行各种更改、替换和更改。

Claims (10)

1.一种可调适存储器内运算电路,其特征在于,包括:
一数据缓冲器,配置以依序地输出多个第一位元与多个第二位元;
多个存储器巨集,具有一个总数个的存储器巨集;以及
一分布电路,耦接于该数据缓冲器以及所述多个存储器巨集之间,其中该分布电路配置以:
将所述多个第一位元分割为该总数个第一子集,并且将每一个第一子集输出至所述多个存储器巨集中相对应的一存储器巨集,并且:
将所述多个第二位元的全部输出至所述多个存储器巨集中每一个存储器巨集,或
将所述多个第二位元分割为不多于该总数个或等于该总数个的第二子集,并将每一个第二子集输出至所述多个存储器巨集中一个或多个相对应的存储器巨集;
其中所述多个存储器巨集中每一个存储器巨集配置以输出相对应的该第一子集与所述多个第二位元的全部或所述多个第二位元中相对应的该第二子集的乘积。
2.如权利要求1所述的可调适存储器内运算电路,其特征在于,
所述多个第一位元包括一权重数据元件,并且所述多个第二位元包括一输入数据元件,或者
所述多个第一位元包括一输入数据元件,并且所述多个第二位元包括一权重数据元件。
3.如权利要求1所述的可调适存储器内运算电路,其特征在于,更包括:
一第一层解多工器,耦接于所述多个存储器巨集;
一第一层加法器,耦接于该第一层解多工器;
其中该第一层解多工器中的每一个解多工器配置以:
接收由所述多个存储器巨集中一相对应存储器巨集所输出的一乘积;
当该乘积是基于所述多个第二位元中的该第二子集时,将该乘积输出至该第一层加法器中的一个加法器;以及
当该乘积是基于所述多个第二位元中的全部时,将该乘积由该可调适存储器内运算电路输出;
该可调适存储器内运算电路,更包括:
一第二层解多工器,耦接于该第一层加法器;以及
一第二层加法器,耦接于该第二层解多工器;
其中该第二层解多工器中的每一个解多工器配置以:
接收该第一层加法器中相对应的一加法器所输出的一部分和;
当该部分和对应于数目为总数个的第二子集时,输出该部分和到第二层加法器中的一加法器;
当该部分和对应于数目小于总数个的第二子集时,将该部分和由该可调适存储器内运算电路输出。
4.如权利要求3所述的可调适存储器内运算电路,其特征在于,更包括一控制电路,配置以产生一或多个控制信号,其中
因应于该一或多个控制信号,该分布电路配置以执行相对应的分割与输出操作;
因应于该一或多个控制信号,该第一层解多工器中的每一个解多工器配置以执行相对应的输出操作。
5.如权利要求1所述的可调适存储器内运算电路,其特征在于,
该分布电路包括多个路径电路;
每一个路径电路包括两个输出分支并且配置以:
从另一个路径电路或从该数据缓冲器接收一数据元件;
将所接收到的该数据元件的一半或全部输出到每一个输出分支。
6.一种可调适存储器内运算电路,其特征在于,包括:
一数据缓冲器,配置以依序地输出一第一数据元件与一第二数据元件;
一第一存储器巨集至一第四存储器巨集;以及
一第一路径电路至一第三路径电路,耦接于该数据缓冲器以及该第一存储器巨集至该第四存储器巨集之间;
其中该第一路径电路配置以:
将该第一数据元件的前半部分以及后半部分个别地输出到一第二路径电路以及该第三路径电路;
将该第二数据元件输出到该第二路径电路以及该第三路径电路的每一者,或将该第二数据元件的前半部分以及后半部分个别地输出到该第二路径电路以及该第三路径电路;
该第二路径电路配置以:
将该第一数据元件的一第一个四分之一部分以及一第二个四分之一部分个别地输出到该第一存储器巨集以及一第二存储器巨集;
将该第二数据元件或该第二数据元件的前半部分输出到该第一存储器巨集以及该第二存储器巨集的每一者,或将该第二数据元件的一第一个四分之一部分以及一第二个四分之一部分个别地输出到该第一存储器巨集以及该第二存储器巨集;
该第三路径电路配置以:
将该第一数据元件的一第三个四分之一部分以及一第四个四分之一部分个别地输出到一第三存储器巨集以及该第四存储器巨集;
将该第二数据元件或该第二数据元件的后半部分输出到该第三存储器巨集以及该第四存储器巨集的每一者,或将该第二数据元件的一第三个四分之一部分以及一第四个四分之一部分个别地输出到该第三存储器巨集以及该第四存储器巨集;
其中该第一存储器巨集至该第四存储器巨集中的每一个存储器巨集配置以输出该第一数据元件中该第一个四分之一部分至该第四个四分之一部分中相对应的四分之一部分与该第二数据元件的全部、相对应的该前半部分与后半部分之一者或该第一个四分之一部分至该第四个四分之一部分中相对应的四分之一部分的乘积。
7.如权利要求6所述的可调适存储器内运算电路,其特征在于,该第一数据元件以及该第二数据元件个别包括权重数据元件以及输入数据元件,或者个别包括输入数据元件以及权重数据元件。
8.如权利要求6所述的可调适存储器内运算电路,其特征在于,更包括:
一控制电路,配置以产生多个控制信号,
其中该第一路径电路至该第三路径电路的每一者因应于所述多个控制信号配置以输出相对应的该第一数据元件的前半部分及后半部分、相对应的该第一数据元件的该第一个四分之一部分至该第四个四分之一部分、该第二数据元件、相对应的该第二数据元件的前半部分及后半部分以及相对应的该第二数据元件的该第一个四分之一部分至该第四个四分之一部分。
9.如权利要求8所述的可调适存储器内运算电路,其特征在于,更包括:
一第一解多工器至一第四解多工器,分别耦接于该第一存储器巨集至该第四存储器巨集;
一第一加法器,耦接于该第一解多工器与一第三解多工器的每一者;以及
一第二加法器,耦接于一第二解多工器与该第四解多工器的每一者;
其中,该第一解多工器至该第四解多工器中每一者因应于所述多个控制信号配置以:
接收相对应的一乘积;
当该乘积是基于该第二数据元件的前半部分及后半部分或该第二数据元件的该第一个四分之一部分至该第四个四分之一部分时,输出该乘积至相对应的该第一加法器或第二加法器;以及
当该乘积是基于该第二数据元件时,由该可调适存储器内运算电路输出该乘积;
该可调适存储器内运算电路,更包括:
第五及第六解多工器,分别耦接于该第一加法器与第二加法器;以及
一第三加法器,耦接于该第五及第六解多工器的每一者;
其中,该第五及第六解多工器中每一者因应于所述多个控制信号配置以:
接收由该第一加法器与第二加法器中相对应的一者所输出的一部分和;
当该部分和对应于该第二数据元件的该第一个四分之一部分至该第四个四分之一部分时,输出该部分和至该第三加法器;
当该部分和对应于该第二数据元件的前半部分及后半部分时,由该可调适存储器内运算电路输出该部分和。
10.如权利要求6所述的可调适存储器内运算电路,其特征在于,
该第一数据元件的位元的总数大于该第二数据元件的位元的总数。
CN202321914913.5U 2022-08-10 2023-07-20 可调适存储器内运算电路 Active CN220569161U (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202263370961P 2022-08-10 2022-08-10
US63/370,961 2022-08-10
US18/311,124 2023-05-02
US18/311,124 US20240053899A1 (en) 2022-08-10 2023-05-02 Configurable compute-in-memory circuit and method

Publications (1)

Publication Number Publication Date
CN220569161U true CN220569161U (zh) 2024-03-08

Family

ID=89846047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202321914913.5U Active CN220569161U (zh) 2022-08-10 2023-07-20 可调适存储器内运算电路

Country Status (3)

Country Link
US (1) US20240053899A1 (zh)
CN (1) CN220569161U (zh)
TW (1) TW202407703A (zh)

Also Published As

Publication number Publication date
TW202407703A (zh) 2024-02-16
US20240053899A1 (en) 2024-02-15

Similar Documents

Publication Publication Date Title
US9760373B2 (en) Functional unit having tree structure to support vector sorting algorithm and other algorithms
US7971172B1 (en) IC that efficiently replicates a function to save logic and routing resources
US5509106A (en) Triangular scalable neural array processor
US9740659B2 (en) Merging and sorting arrays on an SIMD processor
Jain et al. A domain-specific architecture for accelerating sparse matrix vector multiplication on fpgas
US7263602B2 (en) Programmable pipeline fabric utilizing partially global configuration buses
EP0459222A2 (en) Neural network
Song et al. BRAHMS: Beyond conventional RRAM-based neural network accelerators using hybrid analog memory system
Bondalapati et al. Reconfigurable meshes: Theory and practice
US4796219A (en) Serial two's complement multiplier
Sima et al. An 8x8 IDCT Implementation on an FPGA-augmented TriMedia
CN220569161U (zh) 可调适存储器内运算电路
CN113055060B (zh) 面向大规模mimo信号检测的粗粒度可重构架构系统
Ji et al. Hubpa: High utilization bidirectional pipeline architecture for neuromorphic computing
US7818361B1 (en) Method and apparatus for performing two's complement multiplication
Dimitrakopoulos et al. Sorter based permutation units for media-enhanced microprocessors
CN115878074A (zh) 用于专门的过程块中的稀疏性操作的系统和方法
TWI851030B (zh) 用於人工智慧加速器的處理核心、可重組態處理元件及其操作方法
US7765249B1 (en) Use of hybrid interconnect/logic circuits for multiplication
Mora et al. Partial product reduction based on look-up tables
Lo et al. Building a multi-fpga virtualized restricted boltzmann machine architecture using embedded mpi
US12106068B2 (en) Computational memory for sorting multiple data streams in parallel
EP4195027A1 (en) Computational circuit with hierarchical accumulator
Nagaoka et al. A high-throughput multiply-accumulate unit with long feedback loop using low-voltage rapid single-flux quantum circuits
Fey et al. Architecture and simulation of a hybrid memristive multiplier network using redundant number representation

Legal Events

Date Code Title Description
GR01 Patent grant
GR01 Patent grant