CN115910151A - 存储器电路及其操作方法 - Google Patents

存储器电路及其操作方法 Download PDF

Info

Publication number
CN115910151A
CN115910151A CN202210834518.XA CN202210834518A CN115910151A CN 115910151 A CN115910151 A CN 115910151A CN 202210834518 A CN202210834518 A CN 202210834518A CN 115910151 A CN115910151 A CN 115910151A
Authority
CN
China
Prior art keywords
signal
data elements
circuit
selection
data
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
CN202210834518.XA
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
Publication of CN115910151A publication Critical patent/CN115910151A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Manipulation Of Pulses (AREA)
  • Logic Circuits (AREA)
  • Static Random-Access Memory (AREA)
  • Complex Calculations (AREA)

Abstract

本申请实施例提供了一种存储器电路及其操作方法。存储器电路包括被配置为接收包括多个数据元素的信号的数据寄存器、耦接到数据寄存器的第一选择电路、计数器、耦接到计数器的第二选择电路以及耦接在计数器和第二选择电路之间的反相器。数据寄存器将每个数据元素的多个位输出到第一选择电路,计数器和反相器生成互补信号,其中序列数据元素具有在相反方向上步进的循环值,第二选择电路向第一选择电路交替输出每个互补信号作为选择信号,并且第一选择电路响应于选择信号以交替序列次序输出数据元素的多个位。

Description

存储器电路及其操作方法
技术领域
本申请实施例涉及存储器电路及其操作方法。
背景技术
存储器阵列通常用于储存和存取用于各种类型计算(诸如逻辑操作或数学操作)的数据。为了执行这些操作,数据位在执行计算的存储器阵列和电路之间移动。在一些情况下,计算包括多层的操作,并且第一操作的结果被用作第二操作中的输入数据。
发明内容
根据本申请实施例的一个方面,提供了一种存储器电路,包括:第一数据寄存器,被配置为接收包括第一多个数据元素的第一信号;第一选择电路,耦接到第一数据寄存器;第一计数器;第二选择电路,耦接到第一计数器;以及反相器,耦接在第一计数器和第二选择电路之间,其中,第一数据寄存器被配置为向第一选择电路输出第一多个数据元素的每个数据元素的多个位,第一计数器和反相器被配置为生成互补信号,在互补信号中序列数据元素具有在相反方向上步进的循环值,第二选择电路被配置为向第一选择电路交替地输出互补信号中的每个作为第一选择信号,并且第一选择电路被配置为响应于第一选择信号以交替序列次序输出第一多个数据元素的数据元素的多个位。
根据本申请实施例的另一个方面,提供了一种存储器电路,包括:输入电路,输入电路包括:第一选择电路,被配置为接收第一选择信号和包括第一多个数据元素的第一信号;和第一计数器和第二计数器,耦接到第二选择电路,其中第一计数器和第二计数器以及第二选择电路被配置为生成第一选择信号和第二选择信号;第一乘法器,耦接到第一选择电路;加法器,耦接到第一乘法器;以及累加器,耦接到加法器并且被配置为接收第二选择信号,其中,响应于第一选择信号,第一选择电路被配置为向第一乘法器以交替序列次序输出第一多个数据元素的数据元素的多个位,并且响应于第二选择信号,累加器被配置为基于第一选择电路以交替序列输出第一多个数据元素的数据元素的多个位来执行第一累加操作和第二累加操作。
根据本申请实施例的又一个方面,提供了一种操作存储器电路的方法,方法包括:在输入电路处接收第一信号,第一信号包括第一多个数据元素;生成互补信号,在互补信号中序列数据元素具有在相反方向上步进的循环值;通过交替地选择互补信号中的每个来生成选择信号;以及响应于选择信号,以交替序列次序输出第一多个数据元素的数据元素的多个位。
附图说明
当结合附图进行阅读时,从以下详细描述可最佳理解本发明的各个方面。应该强调,根据工业中的标准实践,各个部件未按比例绘制并且仅用于说明的目的。实际上,为了清楚的讨论,各个部件的尺寸可以任意地增大或减小。
图1是根据一些实施例的数据序列电路的示意图。
图2是根据一些实施例的输入电路的示意图。
图3A和图3B是根据一些实施例的输入电路和输入电路的操作参数的相应示意图。
图4A和图4B是根据一些实施例的累加器的示意图。
图5是根据一些实施例的执行数据排序操作的方法的流程图。
具体实施方式
以下公开内容提供了许多用于实现本发明的不同特征不同的实施例或实例。下面描述了组件和布置的具体实施例或实例以简化本发明。当然,这些仅是实例而不旨在限制。例如,在以下描述中,在第二部件上方或者上形成第一部件可以包括第一部件和第二部件直接接触形成的实施例,并且也可以包括在第一部件和第二部件之间可以形成额外的部件,从而使得第一部件和第二部件可以不直接接触的实施例。此外,本发明可以在各个示例中重复参考数字和/或字母。该重复是为了简单和清楚的目的,并且其本身不指示讨论的各个实施例和/或配置之间的关系。
此外,为了便于描述,本文中可以使用诸如“在…下方”、“在…下面”、“下部”、“在…上面”、“上部”等的间隔关系术语,以描述如图中所示的一个元件或部件与另一元件或部件的关系。除了图中所示的方位外,间隔关系术语旨在包括器件在使用或操作工艺中的不同方位。器件可以以其它方式定位(旋转90度或在其它方位),并且在本文中使用的间隔关系描述符可以同样地作相应地解释。
在各种实施例中,数据序列电路被配置为以交替序列次序传输数据元素的位,使得连续传输的数据元素的相邻位与最高有效位(MSB)或最低有效位(LSB)中的一个相同。在应用(例如存储器中计算(CIM)操作)中,其中连续数据元素更有可能具有相同值的MSB和/或LSB,因此数据序列电路能够降低信号触发速率,并且因此,与不以交替序列次序传输位的方法相比降低功耗。
图1是根据一些实施例的数据序列电路100的示意图。数据序列电路100,在一些实施例中也称为电路100或存储器电路100,包括输入电路110、储存元件120、乘法器M0和M1、加法器130、累加器140和数据总线OUTB。
输入电路110包括输入路径111和113,输入路径111和113被配置为接收相应的信号IN0[0:n]和IN1[0:n],输出端子112和114耦接到乘法器M0和M1并且被配置为输出信号X和Y,并且输出端子116耦接到累加器140的输入端子141并且被配置为输出信号SeqSel,在一些实施例中也称为选择信号SeqSel。乘法器M0和M1还耦接到储存元件120和加法器130,从而被配置为从储存元件120接收相应的数据元素W0和W1,并将相应的数据元素P0和P1输出到加法器130。加法器130通过数据总线PSB耦接到累加器140并且被配置为在数据总线PSB上输出部分和PS。累加器140被配置为接收数据总线PSB上的部分和PS以及输入端子141上的信号SeqSel,并在数据总线OUTB上输出信号OUT。
在一些实施例中,数据序列电路100不包括储存元件120、乘法器M0和M1、加法器130、累加器140和数据总线OUTB,而是包括输入电路110,输入电路110被配置为在与图1所示不同的配置(例如,耦接到一个或多个外部电路)的输出端子112和114上输出信号X和Y。
两个或多个电路元件被认为是基于直接电连接的或者包括一个或多个附加电路元件的电连接的耦接,并且因此能够例如通过一个或多个晶体管或其他开关器件制成阻态或开态而被控制。
图1所示的实施例是为了说明的目的而简化的非限制性示例。在一些实施例中,数据序列电路100包括除了图1所示的以及在下面讨论的电路元件之外的电路元件,例如,控制电路或所示电路元件的附加实例。在一些实施例中,图1中所示的元件是存储器阵列的部分,存储器阵列包括对应于输入电路110、储存元件120、乘法器M0和M1、加法器130和/或累加器140的多个实例的行和列。
在一些实施例中,数据序列电路100是CIM电路的部分,CIM电路包括被配置为执行存储器中计算的元件,例如执行卷积神经网络(CNN),其中阵列包括储存的权重数据元素,例如数据元素W0和W1,权重数据元素在乘法操作和累加(MAC)操作中被应用于一组或多组输入数据元素(例如信号IN0[0:n]和IN1[0:n])。
图1所示的电路元件之间的关系是为了说明目的而提供的非限制性示例。在一些实施例中,总共多于两个的乘法器M0和M1对应于储存元件120、加法器130和/或累加器140的单个实例。
信号IN0[0:n]和IN1[0:n]中的每个(在一些实施例中也称为输入信号IN0[0:n]和IN1[0:n])包括数据元素的组,每个数据元素包括等于n+1的预定总位数量,如下所讨论的。
输入电路110是被配置为接收一个或多个输入信号(例如信号IN0[0:n]和IN1[0:n])并且将输入信号的数据元素输出为对应的一个或多个输出信号(例如,信号X和Y)的连续部分的电子电路,例如集成电路(IC)。如下面所讨论的,输入电路110被配置为以交替序列次序传输数据元素的位,使得连续传输的数据元素的相邻位是MSB或LSB中的相同一个。在一些实施例中,输入电路110包括下面关于图2讨论的输入电路200。
输入路径111和113中的每个是被配置为接收各自的信号IN0[0:n]和IN1[0:n]的一个或多个信号路径。在各种实施例中,输入路径111和113中的每个是被配置为接收串行传输的各自的信号IN0[0:n]或IN1[0:n]或者是被配置为接收以并行配置传输的各自的信号IN0[0:n]或IN1[0:n]的输入端子。
在图1所示的实施例中,输入电路110被配置为接收总共两个输入信号,每个输入信号包括数据元素,每个数据元素包括n个位。随着输入信号的数量、数据元素的数量和每数据元素位的数量中的每个的增加,电路复杂性和功耗随着功能能力(例如,有效处理大型数据集的能力)的增加而增加。
在一些实施例中,输入电路110被配置为接收总共一个或多于两个的输入信号。在一些实施例中,输入电路110被配置为接收范围从4到32的总数量的输入信号。在一些实施例中,输入电路110被配置为接收从8到16的总数量的输入信号。
在一些实施例中,输入电路110被配置为接收每个数据元素包括等于四的位数量。在一些实施例中,输入电路110被配置为接收每个数据元素包括少于或多于四的位数量。在一些实施例中,输入电路110被配置为接收每个数据元素的位数量范围从1到16。在一些实施例中,输入电路110被配置为接收每个数据元素的位数量范围从8到12。
在一些实施例中,输入电路110被配置为接收信号IN0[0:n]和IN1[0:n]中的每个的数据元素的数量范围从4到512。在一些实施例中,输入电路110被配置为接收信号IN0[0:n]和IN1[0:n]中的每个的数据元素的数量范围从32到128。
输入电路110包括一个或多个数据寄存器(图1中未示出),数据寄存器被配置为例如通过包括一个或多个锁存器或触发器电路而接收和临时储存信号IN0[0:n]和IN1[0:n]的数据元素。在各种实施例中,一个或多个数据寄存器被配置为并行或串行接收信号IN0[0:n]和IN1[0:n]的数据元素的位数据。
一个或多个数据寄存器耦接到一个或多个选择电路(图1中未示出),例如多路复用器,并且被配置为将给定数据元素的位输出到一个或多个选择电路。一个或多个选择电路被配置为按顺序输出信号IN0[0:n]和IN1[0:n]的数据元素作为信号X和Y,在信号X和Y中数据元素的位具有基于信号SeqSel的逻辑电平的序列次序。
输入电路110包括信号生成部分,生成部分被配置为接收一个或多个时钟信号(图1中未示出),例如下面关于图3A和图3B讨论的时钟信号CLK,并生成信号SeqSel,信号SeqSel在对应于第一序列次序(例如,0到n)的第一逻辑电平和对应于与第一序列次序相反的第二序列次序(例如,n到0)的第二逻辑电平之间交替。在一些实施例中,第一序列次序是对应于从给定数据元素的LSB到给定数据元素的MSB的进程的LSB到MSB次序,并且第二序列次序是对应于从给定数据元素的MSB到给定数据元素的LSB的进程的MSB到LSB次序。
信号生成部分被配置为生成信号SeqSel,信号SeqSel具有与数据元素同步的第一和第二逻辑电平,使得给定数据元素的全部n个位以相同的序列次序输出。在一些实施例中,第一逻辑电平对应于数据序列电路100的第一操作模式,并且第二逻辑电平对应于数据序列电路100的第二操作模式。
输入电路110由此被配置为生成信号X和Y,信号X和Y包括以交替序列次序的各自的信号IN0[0:n]和IN1[0:n]的数据元素的位,使得连续发送的数据元素的相邻位是MSB或LSB中的相同一个,并且被配置为生成信号SeqSel,信号SeqSel具有与交替序列次序同步的交替逻辑电平。
储存元件(例如储存元件120)是被配置为储存一个或多个数据元素的电气器件、机电器件、电磁器件或其他器件,每个数据元素包括由逻辑状态表示的一个或多个数据位。在一些实施例中,逻辑状态对应于储存在储存元件的部分或全部中的电荷的电压电平。在一些实施例中,逻辑状态对应于储存元件的部分或全部的物理特性,例如电阻或磁取向。
在一些实施例中,储存元件包括一个或多个静态随机存取存储器(SRAM)单元。在各种实施例中,SRAM单元(例如五晶体管(5T)、六晶体管(6T)、八晶体管(8T)或九晶体管(9T)SRAM单元)包括晶体管的数量范围从两个到十二。在一些实施例中,SRAM单元包括多轨SRAM单元。在一些实施例中,SRAM单元的长度至少是宽度的两倍。
在一些实施例中,储存元件包括一个或多个动态随机存取存储器(DRAM)单元、电阻式随机存取存储器(RRAM)单元、磁阻随机存取存储器(MRAM)单元、铁电随机存取存储器(FeRAM)单元、NOR(异或)闪存单元、NAND(与非)闪存单元、导电桥接随机存取存储器(CBRAM)单元、数据寄存器、非易失性存储器(NVM)单元、3DNVM单元或其他能够储存位数据的存储器单元类型。在一些实施例中,储存元件是存储器阵列的部分或全部。
储存元件120包括数据元素W0和W1。在其中数据序列电路100被包括在CIM电路中的一些实施例中,数据元素W0和W1对应于一个或多个矩阵计算的权重数据。
随着储存在储存元件120中的数据元素的数量和每数据元素位的数量的增加,电路复杂性和功耗随着功能能力(例如,增加的权重数据分辨率)的增加而增加。
在图1所示的实施例中,储存元件120总共包括两个数据元素W0和W1。在一些实施例中,储存元件120包括一个或多于两个的数据元素W0和W1。在一些实施例中,储存元件120包括数据元素的数量范围从4到1024。在一些实施例中,储存元件120包括数据元素的数量范围从8到128。
在一些实施例中,储存元件120被配置为储存每数据元素(例如数据元素W0和W1)的位数量范围从1到16。在一些实施例中,储存元件120被配置为储存每数据元素的位数量范围从4到8。
储存元件120包括一个或多个I/O连接件(未示出),通过I/O连接件,逻辑状态在写入操作中被编程并且在读取操作(例如乘法操作)中被存取。
乘法器(例如乘法器M0或M1)是包括一个或多个逻辑门的电子电路,一个或多个逻辑门被配置为基于接收的数据位(例如,信号X或Y的位中的一个)以及接收的数据元素(例如从储存元件120接收的数据元素W0或W1)执行数学操作(例如乘法),从而生成乘积数据元素(例如数据元素P0或P1),乘积数据元素等于输入数据位和输入数据元素的乘积。在一些实施例中,乘法器被配置为生成乘积数据元素,乘积数据元素包括位数量等于接收的数据元素的位数量。在各种实施例中,乘法器包括一个或多个AND(与)或NOR门或适用于执行一些或全部乘法操作的其他电路。
包括输入电路110和乘法器M0和M1的数据序列电路100由此被配置为使得乘法器M0和M1接收以上面讨论的交替位序列次序的各自的信号X和Y,以便按顺序生成数据元素P0和P1的对应实例作为各自的数据元素W0和W1乘以信号X和Y的交替排序的位的乘积。
加法器130是包括多层加法器电路(未示出)的电子电路,其中第一层被配置为接收多个数据元素,例如数据元素P0和P1,最后一层包括单个逻辑加法器件,被配置为基于接收的多个数据元素生成数据元素,例如部分和PS。在一些实施例中,第一层和最后一层之间的一个或多个连续层中的每个被配置为接收由前一层生成的第一数量的和数据元素,并且基于第一数量的和数据元素生成第二数量的和数据元素,第二数量是第一数量的一半。因此,总层数包括第一层和最后一层以及每个相继层(如果存在的话)。
加法器130的层的总数量被配置为对应于接收的数据元素(例如数据元素P0和P1)的数量。在一些实施例中,加法器130包括层的总数量范围从1到9。在一些实施例中,加法器130包括层的总数量范围从2到6。
加法器电路是包括一个或多个逻辑门的电子电路,一个或多个逻辑门被配置为基于接收的第一和第二数据元素(例如,数据元素P0和P1)执行数学操作(例如,加法),从而生成和数据元素,和数据元素等于接收的第一和第二数据元素之和。在一些实施例中,加法器电路被配置为生成包括比接收的第一和第二数据元素中的每个的位数量大一的和数据元素的位数量。在各种实施例中,加法器电路包括一个或多个全加器门、半加器门、波纹进位加法器电路、进位保存加法器电路、进位选择加法器电路、进位先行加法器电路或适合于执行部分或全部加法操作的其他电路。
在一些实施例中,加法器130的每个层中的每个加法器电路被配置为生成对应的和数据元素,和数据元素包括比前一层的和数据元素(或者在第一层的情况下,接收的多个数据元素的数据元素)的位数量大一的位数量。
数据总线PSB包括信号路径的数量至少等于加法器电路的最后一层的和数据元素的位数量。加法器130被配置为在数据总线PSB上从LSB到MSB布置的输出部分和PS的位。
在一些实施例中,数据总线PSB包括信号路径的数量至少比加法器电路的最后一层的和数据元素的位数量大两倍,并且,加法器130被配置为通过包括比最后一层加法器电路的和数据元素的位数量大至少两倍的位数量而生成部分和PS且追加部分和PS。
在这样的实施例中,附加的至少两个位中的每个具有低逻辑电平,并且加法器130被配置为在数据总线PSB的最外信号路径处输出附加的位,使得在操作中,通过至少一位具有低逻辑电平而在LSB方向和MSB方向中的每个上扩展部分和PS。在一些实施例中,加法器130被配置为在数据总线PSB的最外信号路径处输出附加的位,使得在操作中,通过低逻辑电平位的总数量比信号IN0[0:n]、IN1[0:n]、X和Y的每数据元素的位数量少1(即每个方向上的低逻辑电平位的总数量等于n),而在LSB方向和MSB方向中的每个上扩展部分和PS。
包括输入电路110和加法器130的数据序列电路100由此被配置为使得加法器130接收按顺序生成的数据元素P0和P1的实例,并且根据上面讨论的信号X和Y的交替排序的位按顺序生成部分和PS的实例,部分和PS的实例作为按顺序生成的数据元素P0和P1的和。
累加器140是包括加法器电路、数据寄存器、第一移位器和第二移位器以及第一选择电路和第二选择电路(图1中未示出)的电子电路,它们共同耦接成反馈装置。反馈装置包括串联耦接在数据总线PSB和OUTB之间的第一选择电路、加法器电路和数据寄存器,第一反馈路径包括耦接在数据总线OUTB和加法器电路之间的第二选择电路和第一移位器,第二反馈路径包括耦接在数据总线OUTB和加法器电路之间的第二选择电路和第二移位器。在一些实施例中,累加器140包括以下关于图4A和图4B讨论的累加器400。
在各种实施例中,加法器电路、数据寄存器、两个移位器和两个选择电路中的给定一个是独立电路、电路的集合或者较大电路的部分。在一些实施例中,两个移位器是相同移位器电路(例如可重配置电路)的部分,和/或两个选择电路是相同电路的部分。
第一选择电路通过数据总线PSB耦接到加法器130,从而被配置为在数据总线PSB上接收部分和PS的实例,并且第一选择电路和第二选择电路中的每个通过输入端子141耦接到输入电路110并由此被配置为从输入电路110接收信号SeqSel。
在操作中,第一选择电路被配置为通过选择如上所讨论的追加在第一LSB/MSB端的部分和PS的实例来响应于具有第一逻辑电平的信号SeqSel,通过选择如上所讨论的追加在第二LSB/MSB端的部分和PS的实例来响应于具有第二逻辑电平的信号SeqSel,并将所选择的部分和PS的实例(如追加的)输出到加法器电路。在各种实施例中,第一选择电路被配置为基于从如上所讨论的加法器130接收的附加位或者例如从第一选择电路内的一个或多个其他源接收的附加位来选择追加的部分和PS。
在操作中,第二选择电路被配置为通过在第一反馈路径中耦接第一移位器来响应于具有第一逻辑电平的信号SeqSel,并且通过在第二反馈路径中耦接第二移位器来响应于具有第二逻辑电平的信号SeqSel。第一移位器被配置为执行右移位(在LSB方向上)或左移位(在MSB方向上)操作中的一个,并且第二移位器被配置为执行右移位或左移位操作中的另一个。
在操作中,第一选择电路和第二选择电路由此被配置为选择追加在LSB端的部分和PS的给定实例同时耦接被配置为执行右移位操作的第一或第二移位器,以及选择追加在MSB端的部分和PS的给定实例同时耦接被配置为执行左移位操作的第一或第二移位器。
在操作中,包括被配置为生成信号SeqSel的输入电路110的数据序列电路100,由此例如在第一操作模式中选择追加在LSB端的部分和PS的实例并且耦接被配置为执行右移位操作的第一或第二移位器,右移位操作与信号X和Y具有LSB到MSB序列次序同时执行,并且例如在第二操作模式中选择追加在MSB端的部分和PS的实例并且耦接被配置为执行左移位操作的第一或第二移位器,左移位操作与信号X和Y具有MSB到LSB序列次序同时执行。
在操作中,加法器电路被配置为接收以对应的序列次序的部分和PS的实例(如追加的)以及从第一或第二移位器输出的移位的数据元素,并且基于部分和PS的实例的序列和移位的数据元素生成内部和数据元素(图1中未示出)的序列。
数据寄存器被配置为接收和存储内部和数据元素中的每个,并将内部和元素输出为信号OUT到数据总线OUTB以及第一和第二反馈路径。
累加器140由此被配置为响应于在输入端子141处接收的信号SeqSel,以部分和PS的实例的序列次序执行第一累加操作,该部分和PS的实例的序列次序对应于信号X和Y具有LSB到MSB序列次序,以及以部分和PS的实例的序列次序执行第二累加操作,该部分和PS的实例的序列次序对应于信号X和Y具有MSB到LSB序列次序。
例如在第一和第二操作模式中,数据序列电路100被配置为如上所讨论的将信号IN0[1:n]和IN1[1:n]的连续数据元素的n个位作为信号X和Y以交替序列次序传输到乘法器M0和M1,使得连续发送的数据元素的相邻位是MSB或LSB中的相同一个。与不以交替序列次序传输位的方法相比,包括配置为如上所讨论的累加器140的数据序列电路100由此能够执行包括降低的信号触发速率以及因此降低的功耗的矩阵操作。
图2是根据一些实施例的输入电路200的示意图。输入电路200可用作以上关于图1讨论的输入电路110的一些或全部。
输入电路200包括信号生成部分210、数据寄存器R1和R2以及选择电路S2和S3。信号生成部分210包括计数器CTRA和CTRB、反相器INV1和选择电路S1。在一些实施例中,选择电路S1-S3也被称为多路复用器S1-S3。
在图2所示的实施例中,输入电路200包括上面讨论的输入路径111和113中的每个,输入路径111和113被配置为在其上接收各自的信号IN0[0:n]和IN1[0:n]的数据总线,对于n=3的情况,对应于每数据元素总共四位。在一些实施例中,输入电路200包括输入路径111和113中的每个,输入路径111和113例如另被配置为接收对应于总共少于或多于每数据元素四位的信号IN0[0:n]和IN1[0:n]。
数据寄存器R1耦接到输入路径111,并且由此被配置为接收信号IN0[0:n],信号IN0[0:n]在图2中表示为包括位IN0[0]到IN0[3]的单个数据元素。数据寄存器R1的输出端子(未标记)耦接到选择电路S2的输入端子(未标记)。
数据寄存器R2耦接到输入路径113,并且由此被配置为接收信号IN1[0:n],信号IN1[0:n]在图2中表示为包括位IN1[0]到IN1[3]的单个数据元素。数据寄存器R2的输出端子(未标记)耦接到选择电路S3的输入端子(未标记)。
在图2所示的实施例中,数据寄存器R1和R2中的每个包括总共四个数据触发器DFF,四个数据触发器DFF对应于每数据元素IN0[0]到IN0[3]和IN1[0]到IN1[3]的四个位。每个数据触发器DFF被配置为接收时钟信号(图2中未示出),使得基于时钟信号,信号IN0[0:n]和IN1[0:n]的数据元素的连续实例被同步锁存并且同步输出到各自的选择电路S2和S3。在一些实施例中,每个数据触发器DFF被配置为接收上面讨论的信号SeqSel。
计数器CTRA和CTRB中的每个被配置为接收时钟信号,并且基于时钟信号生成上面讨论的信号SA或信号SeqSel中的对应一个。计数器CTRA的输出端子(未标示)耦接到选择电路S1和反相器INV1中的每个的输入端子(未标示),反相器INV1的输出端子(未标示)耦接到选择电路S1的输入端子(未标示),并且计数器CTRB的输出端子(未标记)耦接到选择电路S1的输入端子(未标记)和上面讨论的输出端子116。选择电路S1的输出端子(未标记)耦接到选择电路S2和S3中的每个的输入端子(未标记),并且选择电路S2和S3的输出端子(未标记)耦接到上面讨论的各自的输出端子112和114。
在图2所示的实施例中,计数器CTRA被配置为生成信号SA,信号SA包括具有从信号IN0[0:n]和IN1[0:n]的每个数据元素的最高编号位递减到零(例如从3到0)的循环值的序列数据元素。基于信号SA,反相器INV1生成信号SAb,信号SAb包括具有从零递增到信号IN0[0:n]和IN1[0:n]的每个数据元素的最高编号位(例如从0到3)的循环值的序列数据元素。
计数器CTRA和反相器INV1由此被配置为将互补信号SA和SAb输出到选择电路S1,在互补信号SA和SAb中序列数据元素具有在相反方向上步进的循环值。在一些实施例中,例如通过包括被配置为生成信号SA的计数器CTRA,信号SA包括具有从零递增到信号IN0[0:n]和IN1[0:n]的每个数据元素的最高编号位的循环值的序列数据元素,计数器CTRA和反相器INV1另被配置为将互补信号SA和SAb输出到选择电路S1,在互补信号SA和SAb中序列数据元素具有在相反方向上步进的循环值。
计数器CTRB被配置为生成信号SeqSel,信号SeqSel包括具有低逻辑电平和高逻辑电平中的每个的序列位,低逻辑电平和高逻辑电平持续的时钟信号的周期数量等于信号IN0[0:n]和IN1[0:n]的每个数据元素的位数量。计数器CTRA和CTRB被配置为使得值的循环的端点(即CTRA重新开始值的循环的时间处)与信号SeqSel在低逻辑电平和高逻辑电平之间的转换同步。
选择电路S1被配置为响应于信号SeqSel的交替的逻辑电平,将交替的信号SA或SAb中的一个作为信号SEL(在一些实施例中也称为选择信号SEL)输出到每个选择电路S2和S3。响应于信号SEL,选择电路S2被配置为通过以与所选信号SA和SAb相对应的交替次序按顺序选择位IN0[0]至IN0[3]来生成信号X,并且选择电路S3被配置为通过以与所选信号SA和SAb相对应的交替次序按顺序选择位IN1[0]至IN1[3]来生成信号Y。
图2所示的被配置为接收信号SEL并且以交替次序按顺序选择位的选择电路的数量是非限制性示例。在各种实施例中,输入电路200包括选择电路S2或S3中的单个一个,或者除了配置成接收信号SEL的选择电路S2和S3之外还包括一个或多个选择电路。
通过以上讨论的配置,输入电路200能够执行以上关于输入电路110和图1讨论的操作,例如在第一和第二操作模式中操作,使得包括输入电路200的电路能够实现以上关于数据序列电路100讨论的益处。
图3A和图3B是根据一些实施例的输入电路200的部分和对应的操作参数的相应示意图。图3A包括计数器CTRA和CTRB、反相器INV1、选择电路S1和S2以及数据寄存器R1,每个都在上面关于图2进行了讨论。图3B描绘了上面所讨论的针对n=3对应于信号IN0[0:n]的每数据元素总共4位的非限制性实施例的时钟信号CLK和信号IN0[0:n](描绘为IN0[3:0])、SA、SeqSel、SEL和X中的每个。
在图3B所示的示例中,信号IN0[3:0]包括第一数据元素0011,第一数据元素0011包括对应于时钟信号CLK的四个周期的四个位,以及第二数据元素0101,第二数据元素0101包括对应于时钟信号CLK的四个周期的四个位。
计数器CTRA生成信号SA,信号SA具有以从11到00的递减次序的循环值,并且计数器CTRB生成在低逻辑电平和高逻辑电平之间交替的信号SeqSel。选择电路S1由此生成信号SEL,信号SEL具有以从11到00的递减次序的值的第一序列(对应于信号SA)和以从00到11递增次序的值的第二序列(对应于信号SAb)。
选择电路S2通过以第一次序选择信号IN0[3:0]的第一数据元素0011的位而生成信号X的第一数据元素0011,使得信号X的第一数据元素0011与信号IN0[3:0]的第一数据元素0011匹配。选择电路S2通过以第二次序选择信号IN0[3:0]的第二数据元素0101的位而生成信号X的第二数据元素1010,使得信号X的第二数据元素1010具有与信号IN0[3:0]的第二数据元素0101的次序相反的次序。
图4A和图4B是根据一些实施例的累加器400的示意图。累加器400可用作以上关于图1讨论的累加器140的一些或全部。图4A描绘了累加器400,例如在第一操作模式下操作,累加器400对应于具有第一逻辑电平的信号SeqSel以及具有LSB到MSB序列次序的信号X和Y中的每个,并且图4B描绘了累加器400,例如在第二操作模式下操作,累加器400对应于具有第二逻辑电平的信号SeqSel以及具有MSB到LSB序列次序的信号X和Y中的每个。
累加器400包括串联耦接在数据总线PSB和OUTB之间的选择电路S4、加法器电路A1和数据寄存器R3,第一反馈路径FB1包括耦接在数据总线OUTB和加法器电路A1之间的选择电路S5和右移位器SHR,第二反馈路径FB2包括耦接在数据总线OUTB和加法器电路A5之间的选择电路S5和左移位器SHL。
选择电路S4包括通过数据总线PSB耦接到加法器130的多个输入端子(未标记),从而被配置为接收数据总线PSB上的部分和PS的实例,如上文关于加法器130和图1所附加讨论的那样。在图4A和图4B所示的实施例中,选择电路S4被配置为从加法器130接收至少一个附加位BL和至少一个附加位BM。在一些实施例中,选择电路S4另被配置为从选择电路S4内接收附加位BL和BM中的一些或全部。
选择电路S4包括耦接到输入端子141的输入端子(未标记),因此被配置为从输入电路110接收信号SeqSel。在操作中,选择电路S4被配置为通过选择在LSB端追加有至少一个附加位BL的部分和PS的实例而响应于具有第一逻辑电平的信号SeqSel,如图4A所示,以及通过选择在MSB端追加有至少一个附加位BM的部分和PS的实例来响应于具有第二逻辑电平的信号SeqSel,如图4B所示。
选择电路S4包括耦接到加法器电路A1的多个输入端子(未标记)的多个输出端子(未标记),并且由此被配置为输出所选的附加有至少一个附加位BL的部分和PS的实例到加法器电路A1作为数据元素PSL的实例,如图4A所示,并且被配置为输出所选的附加有至少一个附加位BM的部分和PS的实例到加法器电路A1作为数据元素PSM的实例,如图4B所示。
选择电路S5包括耦接到输入端子141的输入端子(未标记),因此被配置为从输入电路110接收信号SeqSel。在操作中,选择电路S5被配置为通过耦接第一反馈路径FB1中的右移位器SHR来响应于具有第一逻辑的信号SeqSel,如图4A所示,并且通过耦接第二反馈路径FB2中的左移位器SHL来响应于具有第二逻辑电平的信号SeqSel,如图4B所示。
选择电路S4和S5由此被配置为使得在操作中,选择电路S4输出数据元素PSL的实例同时选择电路S5耦接第一反馈路径FB1中的移位器SHR,以及选择电路S4输出数据元素PSM的实例同时选择电路S5耦接第二反馈路径FB2中的移位器SHL。
包括输入电路110的数据序列电路100被配置为生成信号SeqSel,由此在操作中,选择电路S4和S5输出数据元素PSL的实例和耦接第一反馈路径FB1中的移位器SHR与信号X和Y具有LSB到MSB序列次序(例如,在第一操作模式中)同时执行,并且选择电路S4和S5输出数据元素PSM的实例和耦接第二反馈路径FB2中的移位器SHL与信号X和Y具有MSB到LSB序列次序(例如,在第二操作模式中)同时执行。
移位器SHR和SHL中的每个包括耦接到数据总线OUTB的多个输入端子(未标记)和耦接到选择电路S5的多个输入端子(未标记)的多个输出端子(未标记),选择电路S5包括与加法电路A1的多个输入端子耦接的多个输出端子(未标出)。
移位器SHR由此被配置为在操作中在数据总线OUTB上接收信号OUT的实例,对接收的实例执行右移功能,并且将右移的实例作为数据元素DER的实例输出到选择电路S5。移位器SHL由此被配置为在操作中在数据总线OUTB上接收信号OUT的实例,对接收的实例执行左移功能,并且将左移的实例作为数据元素DEL的实例输出到选择电路S5。
在选择电路S5耦接第一反馈路径FB1中的移位器SHR期间,选择电路S5由此将数据元素DER的实例输出到加法器电路A1,如图4A所示,并且在选择电路S5耦接第二反馈路径FB2中的移位器SHL期间,选择电路S5由此将数据元素DEL的实例输出到加法器电路A1,如图4B所示。
加法器电路A1由此被配置为在操作中接收数据元素PSL的实例同时接收数据元素DER的实例,如图4A所示,接收数据元素DEL的实例同时接收数据元素PSM的实例,如图4B所示。
加法器电路A1包括耦接到数据寄存器R3的多个输入端子(未标记)的多个输出端子(未标记),并且由此被配置为向数据寄存器R3生成且输出和数据元素SDE的实例,和数据元素SDE的实例例如等于第一操作模式中的数据元素PSL和DER的实例之和,或者例如等于第二操作模式中的数据元素PSM和DEL的实例之和。
数据寄存器R3被配置为接收时钟信号(例如上面关于图3A和图3B讨论的时钟信号CLK),并且包括耦接到数据总线OUTB的多个输出端子(未标记)。数据寄存器R3由此被配置为根据时钟信号接收、储存和输出数据元素SDE的实例,并数据元素SDE的实例其作为信号OUT输出到数据总线OUTB以及第一反馈路径FB1和第二反馈路径FB2。在各种实施例中,时钟信号是由输入电路110接收的一个或多个时钟信号或与由输入电路100接收的一个或多个时钟信号同步的单独时钟信号,由此如上所讨论的累加器400的操作与输入电路110的操作同步。
累加器400由此被配置为在操作中响应于信号SeqSel具有第一逻辑电平,基于与具有LSB到MSB序列次序的信号X和Y相对应的数据元素PSL的实例来执行第一累加操作,并且响应于信号SeqSel具有第二逻辑电平,基于与具有MSB到LSB序列次序的信号X和Y相对应的数据元素PSM的实例来执行第二累积操作。
通过上面讨论的配置,累加器400能够执行上面关于累加器140和图1讨论的矩阵操作,例如在第一和第二操作模式中操作,使得包括累加器400的电路能够实现上文关于数据序列电路100讨论的益处。
图5是根据一些实施例的操作数据序列电路的方法500的流程图。方法500可以与数据序列电路(例如上面关于图1至图4B讨论的数据序列电路100)一起使用。在各种实施例中,方法500包括执行包括操作510-550中的一些或全部操作的序列操作和/或执行包括操作510-550中的一些或全部操作的矩阵操作,操作510-550分别在下面讨论。
方法500的操作的顺序在图5中的描述仅用于说明;方法500的操作能够以不同于图5所示的顺序执行。在一些实施例中,在图5所示的操作之前、之间、期间和/或之后执行除了图5中描述的那些之外的操作。在一些实施例中,方法500的操作是执行CIM操作的方法的子集。
在操作510处,在一些实施例中,在输入电路处接收包括第一多个数据元素的第一信号。在一些实施例中,接收第一信号包括在输入电路110处接收信号IN0[0:n],如上面关于图1至图3B所讨论的。
在一些实施例中,在输入电路处接收第一信号包括在输入电路处接收第二信号,第二信号包括第二多个数据元素。在一些实施例中,在输入电路处接收第二信号包括在输入电路110处接收信号IN1[0:n],如上面关于图1至图3B所讨论的。
在操作520处,生成互补信号,在互补信号中序列数据元素具有在相反方向上步进的循环值。在一些实施例中,生成互补信号包括生成信号SA和SAb,如上面关于图2至图3B所讨论的。
在一些实施例中,生成互补信号包括使用第一计数器(例如上面关于图2至图3B所讨论的计数器CTRA),以生成包括序列数据元素的互补信号中的第一互补信号,序列数据元素具有从第一多个数据元素的每个数据元素的最高编号位递减到零的值,例如信号SA,并且使用反相器(例如反相器INV1),以生成包括序列数据元素的第二互补信号,序列数据元素具有从零递增到第一多个数据元素的每个数据元素的最高编号位的值,例如信号SAb。
在操作530处,通过交替地选择互补信号中的每个来生成选择信号。在一些实施例中,生成选择信号包括生成选择信号SEL,如上面关于图1至图3B所讨论的。
交替地选择互补信号中的每个包括使用选择电路,例如上面关于图2讨论的选择电路S1。
在一些实施例中,选择信号是第一选择信号,并且生成选择信号包括生成第二选择信号,例如上面关于图1至图4B讨论的信号SeqSel。
在一些实施例中,生成第二选择信号包括使用第二计数器(例如上面关于图2讨论的计数器CTRB),以生成第二选择信号。在一些实施例中,生成第二选择信号包括从输入电路输出第二选择信号,例如从输入电路110输出信号SeqSel,如上面关于图1至图4B所讨论的。
在操作540处,响应于选择信号,以交替序列次序输出第一多个数据元素的数据元素的多个位。在一些实施例中,输出第一多个数据元素的数据元素的多个位包括输出信号X,如上文关于图1至图4B所讨论的。
在一些实施例中,输出第一多个数据元素的数据元素的多个位包括以交替序列次序输出第二多个数据元素的数据元素的多个位。在一些实施例中,输出第二多个数据元素的数据元素的多个位包括输出信号Y,如上面关于图1至图4B所讨论的。
在一些实施例中,输出第一和/或第二多个数据元素的数据元素的多个位包括将多个位输出到一个或多个乘法器,例如,上面关于图1至图4B所讨论的乘法器M0和/或M1。
在操作550处,在一些实施例中,使用累加器基于输入电路以交替序列次序输出第一多个数据元素的数据元素的多个位,以执行第一和第二累加操作。在一些实施例中,使用累加器包括使用如上面关于图1至图4B所讨论的累加器140。
在一些实施例中,使用累加器以执行第一累加操作包括使用被配置为执行右移位操作的第一移位器,例如上面关于图4A和图4B所讨论的移位器SHR,并且使用累加器执行第二累加操作包括使用被配置为执行左移位操作的第二移位器,例如移位器SHL。
在一些实施例中,使用累加器执行第一累加操作包括执行右移位操作同时选择电路以交替序列次序的第一序列次序输出第一多个数据元素的数据元素的多个位,第一序列次序是LSB到MSB序列次序,并且使用累加器执行第二累加操作包括执行左移位操作同时第一选择电路以交替序列次序的第二序列次序输出第一多个数据的数据元素的多个位,第二序列次序是MSB到LSB序列次序。
通过执行方法500的一些或全部操作,例如在第一和第二操作模式中,输入信号的连续数据元素的位以交替序列次序传输到乘法器,使得连续传输的数据元素的相邻位是MSB或LSB中的相同一个,从而实现上文关于数据序列电路100所讨论的益处。
在一些实施例中,一种电路包括:第一数据寄存器,被配置为接收包括第一多个数据元素的第一信号;第一选择电路,耦接到第一数据寄存器;第一计数器;第二选择电路,耦接到第一计数器;以及反相器,耦接在第一计数器和第二选择电路之间,其中,第一数据寄存器被配置为向第一选择电路输出第一多个数据元素的每个数据元素的多个位,第一计数器和反相器被配置为生成互补信号,在互补信号中序列数据元素具有在相反方向上步进的循环值,第二选择电路被配置为向第一选择电路交替地输出互补信号中的每个作为第一选择信号,并且第一选择电路被配置为响应于第一选择信号以交替序列次序输出第一多个数据元素的数据元素的多个位。在一些实施例中,第一计数器被配置为生成包括序列数据元素的互补信号中的第一个,序列数据元素具有从第一多个数据元素中的每个数据元素的最高编号位递减到零的值,并且反相器被配置为生成包括序列数据元素的互补信号中的第二个,序列数据元素具有从零递增到第一多个数据元素中的每个数据元素的最高编号位的值。在一些实施例中,该电路包括第二计数器,其被配置为向第二选择电路输出第二选择信号,其中第二选择电路被配置为响应于第二选择信号具有第一逻辑电平,输出互补信号中的第一个作为第一选择信号,以及响应于第二选择信号具有第二逻辑电平,输出互补信号中的第二个作为第一选择信号。在一些实施例中,第一选择电路被配置为将第一信号的数据元素的多个位输出到CIM电路的乘法器,并且第二选择电路被配置为将第二选择信号输出到CIM电路的累加器。在一些实施例中,第一计数器和第二计数器被配置为使得第二计数器生成具有在第一逻辑电平和第二逻辑电平之间的转变的第二选择信号同步于第一计数器重新开始互补信号的循环值的循环。在一些实施例中,该电路包括:第二数据寄存器,被配置为接收包括第二多个数据元素的第二信号;以及第三选择电路,耦接到第二数据寄存器并且被配置为接收第一选择信号,第二数据寄存器被配置为将第二多个数据元素中的每个数据元素的多个位输出到第三选择电路,并且第三选择电路被配置为响应于第一选择信号以交替序列次序输出第二多个数据元素的数据元素的多个位。在一些实施例中,第一数据寄存器包括多个触发器,多个触发器被配置为按顺序储存第一多个数据元素中的每个数据元素的对应多个位。在一些实施例中,第一多个数据元素中的每个数据元素的多个位包括总共四个位。
在一些实施例中,存储器电路包括输入电路,该输入电路包括第一选择电路,第一选择电路被配置为接收第一选择信号和包括第一多个数据元素的第一信号,以及耦接到第二选择电路的第一和第二计数器,其中第一计数器和第二计数器以及第二选择电路被配置为生成第一选择信号和第二选择信号,第一乘法器耦接到第一选择电路,加法器耦接到第一乘法器,累加器耦接到加法器并且被配置为接收第二选择信号。响应于第一选择信号,第一选择电路被配置为向第一乘法器以交替序列次序输出第一多个数据元素的数据元素的多个位,并且响应于第二选择信号,累加器被配置为基于第一选择电路以交替序列输出第一多个数据元素的数据元素的多个位来执行第一累加操作和第二累加操作。在一些实施例中,输入电路包括第三选择电路,第三选择电路被配置为接收第一选择信号和包括第二多个数据元素的第二信号,存储器电路包括耦接到加法器的第二乘法器,响应于第一选择信号,第三选择电路被配置为将第二多个数据元素的数据元素的多个位以交替序列次序输出到第二乘法器,并且累加器被配置为进一步基于第三选择电路以交替序列次序输出第二多个数据元素的数据元素的多个位来执行第一累加操作和第二累加操作。在一些实施例中,存储器电路包括被配置为储存第一储存数据元素和第二储存数据元素的储存器件,其中第一乘法器被配置为通过将第一储存数据元素与第一多个数据元素的每个位相乘来将第一乘积数据元素输出到加法器。第二乘法器被配置为通过将第二储存数据元素与第二多个数据元素的每个位相乘来将第二乘积数据元素输出到加法器,并且加法器被配置为通过将对应的第一乘积数据元素和第二乘积数据元素求和来将部分和数据元素输出到累加器。在一些实施例中,加法器被配置为进一步输出在部分和数据元素的LSB方向上具有低逻辑电平的第一位和在部分和数据元素的MSB方向上具有低逻辑电平的第二位中的每个。在一些实施例中,累加器包括第四选择电路,第四选择电路被配置为响应于第二选择信号,选择在第一累加操作中附加有第一位并且在第二累积操作中附加有第二位的部分和数据元素。在一些实施例中,第一计数器和反相器被配置为生成互补信号,在互补信号中序列数据元素具有在相反方向上步进的循环值,第二计数器被配置为生成包括交替逻辑电平的第二选择信号,并且第二选择电路被配置为响应于第二选择信号输出互补信号中的每个作为第一选择信号。在一些实施例中,累加器包括:第一移位器,被配置为执行右移位操作;以及第二移位器,被配置为执行左移位操作,其中,累加器被配置为在第一累加操作中将第一移位器耦接在第一反馈路径中并且在第二累加操作中将第二移位器耦接在第二反馈路径中。在一些实施例中,累加器被配置为执行包括右移位操作的第一累积操作,同时第一选择电路以交替序列次序的第一序列次序输出第一多个数据元素的数据元素的多个位,第一序列次序是LSB到MSB序列次序,并且执行包括左移位操作的第二累积操作,同时第一选择电路以交替次序的第二序列次序输出第一多个数据元素的数据元素的多个位,第二序列次序是MSB到LSB序列次序。
在一些实施例中,操作电路的方法包括:在输入电路处接收第一信号,第一信号包括第一多个数据元素;生成互补信号,在互补信号中序列数据元素具有在相反方向上步进的循环值;通过交替地选择互补信号中的每个来生成选择信号;以及响应于选择信号,以交替序列次序输出第一多个数据元素的数据元素的多个位。在一些实施例中,在输入电路处接收第一信号包括在输入电路处接收第二信号,第二信号包括第二多个数据元素,并且输出第一多个数据元素的数据元素的多个位包括以交替序列次序输出第二多个数据元素的数据元素的多个位。在一些实施例中,生成互补信号包括:使用计数器以生成包括序列数据元素的互补信号中的第一个,序列数据元素具有从第一多个数据元素中的每个数据元素的最高编号位递减到零的值,以及使用反相器以生成包括序列数据元素的互补信号中的第二个,序列数据元素具有从零递增到第一多个数据元素中的每个数据元素的最高编号位的值。在一些实施例中,该方法包括:使用累加器以基于输入电路以交替序列次序输出第一多个数据元素的数据元素的多个位来执行第一累加操作和第二累加操作。
上述概述了几个实施例的特征,以便本领域技术人员可以更好地理解本公开的各个方面。本领域技术人员应当理解,他们可以容易地使用本公开作为设计或修改用于实现本文所介绍的实施例的相同目的和/或实现其相同优点的其它过程和结构的基础。本领域技术人员还应当认识到,此类等效结构不背离本发明的精神和范围,并且它们可以在不背离本发明的精神和范围的情况下在本发明中进行各种改变、替换以及改变。

Claims (10)

1.一种存储器电路,包括:
第一数据寄存器,被配置为接收包括第一多个数据元素的第一信号;
第一选择电路,耦接到所述第一数据寄存器;
第一计数器;
第二选择电路,耦接到所述第一计数器;以及
反相器,耦接在所述第一计数器和所述第二选择电路之间,
其中
所述第一数据寄存器被配置为向所述第一选择电路输出所述第一多个数据元素的每个数据元素的多个位,
所述第一计数器和所述反相器被配置为生成互补信号,在所述互补信号中序列数据元素具有在相反方向上步进的循环值,
所述第二选择电路被配置为向所述第一选择电路交替地输出所述互补信号中的每个作为第一选择信号,并且
所述第一选择电路被配置为响应于所述第一选择信号以交替序列次序输出所述第一多个数据元素的所述数据元素的所述多个位。
2.根据权利要求1所述的存储器电路,其中,
所述第一计数器被配置为生成所述互补信号中的第一个,所述互补信号中的第一个包括的序列数据元素具有从所述第一多个数据元素中的每个数据元素的最高编号位递减到零的值,并且
所述反相器被配置为生成所述互补信号中的第二个,所述互补信号中的第二个包括的序列数据元素具有从零递增到所述第一多个数据元素中的每个数据元素的最高编号位的值。
3.根据权利要求1所述的存储器电路,还包括第二计数器,被配置为向所述第二选择电路输出第二选择信号,其中所述第二选择电路被配置为:
响应于所述第二选择信号具有第一逻辑电平,输出所述互补信号中的第一个作为所述第一选择信号,以及
响应于所述第二选择信号具有第二逻辑电平,输出所述互补信号中的第二个作为所述第一选择信号。
4.根据权利要求3所述的存储器电路,其中,
所述第一选择电路被配置为将所述第一信号的所述数据元素的所述多个位输出到存储器中计算(CIM)电路的乘法器,并且
所述第二选择电路被配置为将所述第二选择信号输出到所述CIM电路的累加器。
5.根据权利要求3所述的存储器电路,其中,所述第一计数器和所述第二计数器被配置为使得所述第二计数器生成具有在所述第一逻辑电平和所述第二逻辑电平之间的转变的所述第二选择信号同步于所述第一计数器重新开始所述互补信号的所述循环值的循环。
6.根据权利要求1所述的存储器电路,还包括:
第二数据寄存器,被配置为接收包括第二多个数据元素的第二信号;和
第三选择电路,耦接到所述第二数据寄存器并且被配置为接收所述第一选择信号,
其中
所述第二数据寄存器被配置为将所述第二多个数据元素中的每个数据元素的多个位输出到所述第三选择电路,并且
所述第三选择电路被配置为响应于所述第一选择信号以交替序列次序输出所述第二多个数据元素的所述数据元素的所述多个位。
7.根据权利要求1所述的存储器电路,其中,所述第一数据寄存器包括多个触发器,所述多个触发器被配置为按顺序储存所述第一多个数据元素中的每个数据元素的对应多个位。
8.根据权利要求1所述的存储器电路,其中,所述第一多个数据元素中的每个数据元素的所述多个位包括总共四个位。
9.一种存储器电路,包括:
输入电路,包括:
第一选择电路,被配置为接收第一选择信号和包括第一多个数据元素的第一信号;和
第一计数器和第二计数器,耦接到第二选择电路,其中所述第一计数器和所述第二计数器以及所述第二选择电路被配置为生成所述第一选择信号和第二选择信号;
第一乘法器,耦接到所述第一选择电路;
加法器,耦接到所述第一乘法器;以及
累加器,耦接到所述加法器并且被配置为接收所述第二选择信号,
其中,
响应于所述第一选择信号,所述第一选择电路被配置为向所述第一乘法器以交替序列次序输出所述第一多个数据元素的所述数据元素的所述多个位,并且
响应于所述第二选择信号,所述累加器被配置为基于所述第一选择电路以所述交替序列输出所述第一多个数据元素的所述数据元素的所述多个位来执行第一累加操作和第二累加操作。
10.一种操作存储器电路的方法,所述方法包括:
在输入电路处接收第一信号,所述第一信号包括第一多个数据元素;
生成互补信号,在所述互补信号中序列数据元素具有在相反方向上步进的循环值;
通过交替地选择所述互补信号中的每个来生成选择信号;以及
响应于所述选择信号,以交替序列次序输出所述第一多个数据元素的所述数据元素的多个位。
CN202210834518.XA 2021-12-06 2022-07-14 存储器电路及其操作方法 Pending CN115910151A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163286324P 2021-12-06 2021-12-06
US63/286,324 2021-12-06
US17/729,692 2022-04-26
US17/729,692 US11853596B2 (en) 2021-12-06 2022-04-26 Data sequencing circuit and method

Publications (1)

Publication Number Publication Date
CN115910151A true CN115910151A (zh) 2023-04-04

Family

ID=86382039

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210834518.XA Pending CN115910151A (zh) 2021-12-06 2022-07-14 存储器电路及其操作方法

Country Status (5)

Country Link
US (2) US11853596B2 (zh)
KR (1) KR20230085057A (zh)
CN (1) CN115910151A (zh)
DE (1) DE102022110841A1 (zh)
TW (1) TWI844086B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2907877A (en) * 1954-05-18 1959-10-06 Hughes Aircraft Co Algebraic magnitude comparators
CA2287034A1 (en) * 1998-12-03 2000-06-03 Lucent Technologies, Inc. A memory operated in a modified ping-pong mode
EP1676197B1 (en) 2003-10-16 2012-01-18 Canon Kabushiki Kaisha Operation circuit and operation control method thereof
CN101782893B (zh) 2009-01-21 2014-12-24 上海芯豪微电子有限公司 可重构数据处理平台
KR20200066953A (ko) 2018-12-03 2020-06-11 삼성전자주식회사 Pim을 채용하는 반도체 메모리 장치 및 그 동작 방법

Also Published As

Publication number Publication date
US20230176770A1 (en) 2023-06-08
TWI844086B (zh) 2024-06-01
KR20230085057A (ko) 2023-06-13
US11853596B2 (en) 2023-12-26
DE102022110841A1 (de) 2023-06-07
US20240094943A1 (en) 2024-03-21
TW202324411A (zh) 2023-06-16

Similar Documents

Publication Publication Date Title
CN110597484B (zh) 基于存内计算的多比特全加器、多比特全加运算控制方法
CN113571109B (zh) 存储器电路及其操作方法
CN108182959B (zh) 基于阻变器件交叉阵列结构实现逻辑计算的方法
US9933998B2 (en) Methods and apparatuses for performing multiplication
WO2021199386A1 (ja) 曖昧検索回路
CN114974337B (zh) 一种基于自旋磁随机存储器的时间域存内计算电路
CN114675805A (zh) 存储器中计算累加器
CN116860696A (zh) 一种基于非易失性存储器的存内计算电路
Rai et al. Perspectives on emerging computation-in-memory paradigms
US5369618A (en) Serial access memory
CN114072775B (zh) 存储器处理单元和包括零位跳过的计算点积的方法
CN115910151A (zh) 存储器电路及其操作方法
CN116932456A (zh) 电路、存内计算电路及操作方法
CN112951290B (zh) 一种基于非易失性随机存储器的内存计算电路及装置
Fernandez et al. Reliability-Aware Ratioed Logic Operations for Energy-Efficient Computational ReRAM
US20230418557A1 (en) Data computation circuit and method
Mandal et al. ReRAM-based in-memory computation of galois field arithmetic
US12032959B2 (en) Non-volatile memory die with latch-based multiply-accumulate components
US20220334800A1 (en) Exact stochastic computing multiplication in memory
CN114721622B (zh) 基于忆阻器的加法器、驱动方法及电子设备
CN117789791A (zh) 可配置多比特的存算一体阵列、存算一体芯片及电子设备
CN115658012B (zh) 向量乘加器的sram模拟存内计算装置和电子设备
CN116126285A (zh) 计算装置和操作计算装置的方法
CN115860074A (zh) 集成电路以及操作存储器中计算器件的方法
CN116701295A (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