记忆体计算电路的制作方法

文档序号:19637660发布日期:2020-01-07 12:15阅读:315来源:国知局
记忆体计算电路的制作方法

本揭示内容是关于一种记忆体,特别是关于一种记忆体计算电路与记忆体计算方法。



背景技术:

记忆体阵列经常用于储存及存取用于各种类型计算(诸如逻辑或数学运算)的数据。为了执行这些运算,数据位元在记忆体阵列与用于执行计算的电路之间移动。在一些情形中,计算包括多层运算,并且第一运算的结果用作第二运算中的输入数据。



技术实现要素:

本揭示内容至实施方式是关于一种电路,其包含记忆体阵列、写入电路、读取电路以及计算电路。写入电路用以将数据储存在记忆体阵列的记忆体单元中。读取电路用以从记忆体阵列的记忆体单元撷取储存数据。计算电路用以对撷取的储存数据执行一或多个逻辑运算。记忆体阵列在写入电路与读取电路之间定位。

附图说明

当结合随附附图阅读时,自以下详细描述将很好地理解本揭示的态样。应注意,根据工业中的标准实务,各个特征并非按比例绘制。事实上,出于论述清晰的目的,可任意增加或减小各个特征的尺寸。

图1是根据一些实施例的记忆体电路的图;

图2a是根据一些实施例的系统的图;

图2b是根据一些实施例的网络电路的图;

图2c是根据一些实施例的神经网络电路的图;

图3是根据一些实施例的记忆体电路的图;

图4是根据一些实施例的记忆体单元电路的图;

图5是根据一些实施例的记忆体电路运算参数的图表;

图6是根据一些实施例的执行记忆体中计算的方法的流程图。

【符号说明】

100记忆体电路

100-1记忆体电路

100-1-i输入端口

100-1-o输出端口

100-2记忆体电路

100-2-i输入端口

100-2-o输出端口

100a区段

100-i输入端口

100-l记忆体电路

100-l-i输入端口

100-l-o输出端口

100-o100-o

110记忆体阵列

110a区段

110b区段

112记忆体单元

114[1]位元线

114[c]位元线

116[1]字线

116[2]字线

116[r]字线

116[r-1]字线

120行解码电路

130写入电路

140写入控制电路

150读取电路

160读取控制电路

170计算电路

180控制电路

200a系统

200b网络电路

200c神经网络电路

200i输入层

200i-i输入端口

210处理器

300记忆体电路

310w[1]记忆体阵列区段

310w[n]记忆体阵列区段

310x[1]记忆体阵列区段

310x[n]记忆体阵列区段

320行解码电路

350读取电路

370a运算电路

370b加法电路

372逻辑单元

400记忆体单元电路

412w记忆体单元

412x记忆体单元

600方法

610操作

620操作

630操作

640操作

650操作

660操作

670操作

680操作

690操作

具体实施方式

以下揭示内容提供许多不同实施例或实例,以便实施所提供标的的不同特征。下文描述部件、值、操作、材料、布置或类似者的具体实例以简化本揭示。当然,这些仅为实例且并不意欲为限制性。可以预期其他部件、值、操作、材料、布置或类似者。例如,以下描述中在第二特征上方或第二特征上形成第一特征可包括以直接接触形成第一特征及第二特征的实施例,且亦可包括在第一特征与第二特征之间形成额外特征以使得第一特征及第二特征可不处于直接接触的实施例。另外,本揭示可在各个实例中重复元件符号及/或字母。此重复是出于简便性及清晰的目的且本身并不指示所论述的各个实施例及/或构造之间的关系。

另外,为了便于描述,本文可使用空间相对性术语(诸如“之下”、“下方”、“下部”、“之上”、“上部”及类似者)来描述诸图中所示出的一个元件或特征与另一元件(或多个元件)或特征(或多个特征)的关系。除了附图所描绘的定向外,空间相对性术语意欲包含使用或操作中装置的不同定向。设备可经其他方式定向(旋转90度或处于其他定向)且由此可类似解读本文所使用的空间相对性描述词。

在各个实施例中,一种电路包括在写入电路与读取电路之间定位的记忆体阵列。写入电路基于在输入端口处接收的数据将数据储存在记忆体阵列中,并且读取电路撷取储存数据来用于将结果数据输出到输出端口的计算电路。通过执行其中数据从输入端口向输出端口流动的此记忆体中计算,与不执行此种记忆体中计算的方法相比,电路能够减少数据移动,尤其是在电路用于网络电路(诸如神经网络)的一或多层的情形中。

在一些实施例中,电路通过与记忆体阵列的至少一个其他区段分开地操作记忆体阵列的至少一个区段来执行记忆体中计算,并且与其中电路基于不分开地操作区段的多个记忆体阵列执行计算的方法相比,进一步能够减少数据移动。

图1是根据一些实施例的记忆体电路100的图。记忆体电路100包括记忆体阵列110、行解码电路120、写入电路130、写入控制电路140、读取电路150、读取控制电路160、计算电路170、及控制电路180。

记忆体阵列110在写入电路130与读取电路150之间定位并且与写入电路130及读取电路150的每一个耦合。读取电路150在记忆体阵列110与计算电路170之间定位并且与记忆体阵列110及计算电路170的每一个耦合。写入控制电路140邻近写入电路130并且与写入电路130耦合;行解码电路120邻近记忆体阵列110并且与记忆体阵列110耦合;以及读取控制电路160邻近读取电路150并且与读取电路150耦合。

在图1所描绘的实施例中,写入电路130及写入控制电路140均在记忆体阵列110的顶部处定位,并且读取电路150、读取控制电路160、及计算电路170在记忆体阵列110的底部处定位。在一些实施例中,写入电路130及写入控制电路140均在记忆体阵列110的底部处定位,并且读取电路150、读取控制电路160、及计算电路170在记忆体阵列110的顶部处定位。

行解码电路120在写入控制电路140与读取控制电路160之间定位并且与写入控制电路140及读取控制电路160的每一个耦合。控制电路180与写入控制电路140、行解码电路120、读取控制电路160、及计算电路170的每一个耦合。在一些实施例中,控制电路180不与写入控制电路140、行解码电路120、读取控制电路160、或计算电路170的一或多个耦合。

基于一或多个直接信号连接及/或一或多个间接信号连接,两个或多个电路元件被认为是耦合的,在两个或多个电路元件之间包括一或多个逻辑装置,例如,反向器或逻辑门。在一些实施例中,能够通过一或多个逻辑装置修改(例如,反向或有条件的)在两个或多个耦合的电路元件之间的信号通讯。

在图1所描绘的实施例中,控制电路180邻近写入控制电路140、行解码电路120、读取控制电路160、及计算电路170的每一个。在各个实施例中,控制电路180与写入控制电路140、行解码电路120、读取控制电路160、或计算电路170的一或多个隔开地定位,及/或控制电路180包括写入控制电路140、行解码电路120、读取控制电路160、或计算电路170的一或多个。

在一些实施例中,记忆体电路100不包括控制电路180,并且行解码电路120、写入控制电路140、读取控制电路160、或计算电路170的一或多个用以从记忆体电路100外部的一或多个电路(例如,下文关于图2a论述的处理器210)接收一或多个控制信号(未图示)。

记忆体阵列110是以行及列排列的记忆体单元112的阵列。在图1所描绘的实施例中,记忆体阵列110包括区段110a(包括一或多列记忆体单元112)以及区段110b(包括一或多列记忆体单元112)。在各个实施例中,记忆体阵列110包括单个区段、或两个以上区段,每个区段包括一或多列记忆体单元112。在一些实施例中,记忆体阵列110包括下文关于图3论述的记忆体阵列区段310x[1]~310x[n]及/或310w[1]~310w[n]的一或多个。

在记忆体阵列110包括一个以上区段的实施例中,如下文论述,记忆体电路100用以与至少一个其他区段分开地操作至少一个区段。

记忆体阵列110的记忆体单元112包括用以储存由逻辑状态表示的位元数据的电气、机电、电磁、或其他装置。

列数量为c的记忆体单元112的每列与位元线114[1]~114[c]中的对应位元线耦合,经由这些位元线在写入操作中程式化并且在读取操作中侦测逻辑状态。行数量为r的记忆体单元112的每行与字线116[1]~116[r]中的对应字线耦合,经由这些字线在读取及写入操作中选择记忆体单元112。

在一些实施例中,逻辑状态对应于在给定记忆体单元112中储存的电荷的电压位准。在一些实施例中,逻辑状态对应于给定记忆体单元112的部件的物理性质,例如,电阻或磁性取向。

在一些实施例中,记忆体单元112包括静态随机存取记忆体(sram)单元。在各个实施例中,sram单元包括五个晶体管(5t)sram单元、六个晶体管(6t)sram单元、八个晶体管(8t)sram单元、九个晶体管(9t)sram单元、或具有其他数量的晶体管的sram单元。在一些实施例中,记忆体单元112包括动态随机存取记忆体(dram)单元或能够储存位元数据的其他记忆体单元类型。在一些实施例中,记忆体单元112包括下文关于图4论述的记忆体单元412x及412w。

行解码电路120是用以基于从控制电路180或从记忆体电路100外部的一或多个电路(例如,下文关于图2a论述的处理器210)接收的一或多个控制信号(未图示)在字线116[1]~116[r]上产生一或多个字线信号(未标识)的电子电路。一或多个字线信号能够导致一或多个记忆体单元112在读取及写入操作期间被激活,由此在读取或写入操作期间选择一或多个记忆体单元112。

在一些实施例中,行解码电路120用以在读取或写入操作期间选择记忆体单元112的全部给定行。在一些实施例中,在读取或写入操作期间,行解码电路120用以通过在字线116[1]~116[r]的一或多个子集上产生字线信号的一或多个子集来选择记忆体单元112的给定行的一或多个子集,记忆体电路100的部分从而用以与记忆体阵列110的至少一个其他区段(例如,区段110b)分开地操作记忆体阵列110的至少一个区段(例如,区段110a)。

在一些实施例中,行解码电路120包括下文关于图3论述的用以产生在字线316x[1]~316x[m]上的字线信号wx[1]~wx[m]或在字线316w[1]~316w[m]上的字线信号ww[1]~ww[m]中的一或多个的行解码电路320。

写入电路130是用以在写入操作期间在位元线114[1]~114[c]上产生对应于逻辑状态的电压位准的电子电路,在写入操作期间选择的一或多个记忆体单元112从而程式化为基于位元线114[1]~114[c]上的电压位准的逻辑状态。在图1所描绘的实施例中,每个记忆体单元112与位元线114[1]~114[c]中的单个位元线耦合,并且写入电路130用以输出对应于给定记忆体单元112的位元线114[1]~114[c]中的单个位元线上的单个电压位准。在一些实施例中,每个记忆体单元112与位元线114[1]~114[c]中的一对位元线耦合,并且写入电路130用以输出对应于给定记忆体单元112的位元线114[1]~114[c]中的一对位元线上的互补的电压位准。

写入电路130用以基于在输入端口100-i处接收的数据in并且基于从写入控制电路140或从记忆体电路100外部的一或多个电路(例如,下文关于图2a论述的处理器210)接收的一或多个控制信号(未图示)来产生电压位准。

端口(例如,输入端口100-i)是用以将一或多个信号(例如,数据in)传导至及/或传导出电路或电路部分的多个电气连接。数据in包括多个电压位准,每个电压位准在输入端口100-i的一或多个电气连接上被携带,并且对应于数据in的数据位元的逻辑状态。

在一些实施例中,写入电路130用以针对在写入操作期间记忆体单元112的整体列产生一或多个电压位准。在一些实施例中,在写入操作期间,写入电路130用以写入记忆体单元112的列的一或多个子集,记忆体电路100的部分从而用以与记忆体单元110的至少一个其他区段(例如,区段110b)分开地操作记忆体阵列110的至少一个区段(例如,区段110a)。

在一些实施例中,记忆体电路100用以使得写入电路130基于如上文论述的在写入操作期间由行解码器120激活的记忆体单元112的列的一或多个子集来写入记忆体单元112的列的一或多个子集。在一些实施例中,写入电路130用以通过在写入操作期间遮蔽数据in的一或多个部分来写入记忆体单元112的列的一或多个子集。

写入控制电路140是用以基于从控制电路180或从记忆体电路100外部的一或多个电路(例如,下文关于图2a论述的处理器210)接收的一或多个控制信号(未图示)产生一或多个控制信号并将此控制信号输出至写入电路130的电子电路。

读取电路150是用以在读取操作期间接收一或多个位元线114[1]~114[c]上的电压信号(未标识)的电子电路,电压信号是基于在读取操作期间选择的一或多个记忆体单元112的逻辑状态。读取电路150用以基于位元线114[1]~114[c]的一或多个上的电压信号决定在读取操作期间选择的一或多个记忆体单元112的逻辑状态。在一些实施例中,读取电路150包括用以决定一或多个记忆体单元112的逻辑状态的一或多个感测放大器,例如,下文关于图3论述的感测放大器sa。

在图1所描绘的实施例中,每个记忆体单元112与位元线114[1]~114[c]中的单个位元线耦合,并且读取电路150用以基于对应于给定记忆体单元112的位元线114[1]~114[c]中的单个位元线上的电压信号来决定给定记忆体单元112的逻辑状态。在一些实施例中,每个记忆体单元112与位元线114[1]~114[c]中的一对位元线耦合,并且读取电路150用以基于对应于给定记忆体单元112的位元线114[1]~114[c]中的一对位元线上的电压信号来决定给定记忆体单元112的逻辑状态。

读取电路150用以基于所决定的记忆体单元112的逻辑状态并且基于从读取控制电路160接收的一或多个控制信号(未图示)来产生一或多个数据信号(未图示)。

在一些实施例中,读取电路150用以基于在读取操作期间记忆体单元112的整个列来产生一或多个数据信号。在一些实施例中,在读取操作期间,读取电路150用以基于记忆体单元112的列的一或多个子集产生一或多个数据信号,记忆体电路100的部分从而用以与记忆体单元110的至少一个其他区段(例如,区段110b)分开地操作记忆体阵列110的至少一个区段(例如,区段110a)。在一些实施例中,读取电路150用以通过在读取操作期间遮蔽位元线114[1]~114[c]上的一或多个电压信号来基于记忆体单元112的列的一或多个子集产生一或多个数据信号。

在一些实施例中,记忆体电路100用以使得读取电路150基于如上文论述的在读取操作期间由行解码器120激活的记忆体单元112的列的一或多个子集来产生一或多个数据信号。在一些实施例中,读取电路150包括下文关于图3论述的用以产生数据信号x[1]~x[n]及w[1]~w[n]的读取电路350。

读取控制电路160是用以基于从控制电路180或从记忆体电路100外部的一或多个电路(例如,下文关于图2a论述的处理器210)接收的一或多个控制信号(未图示)产生一或多个控制信号并将此控制信号输出至读取电路150的电子电路。

计算电路170是用以基于从控制电路180或从记忆体电路100外部的一或多个电路(例如,下文关于图2a论述的处理器210)接收的一或多个数据信号以及一或多个控制信号(未图示)来从读取电路150接收一或多个数据信号并且执行一或多个逻辑及/或数学运算的电子电路。

在一些实施例中,记忆体电路100用以使得由计算电路170执行的一或多个逻辑及/或数学运算与由读取电路150执行的一或多个运算协调,记忆体电路100从而用以执行记忆体中计算。在一些实施例中,记忆体电路100用以使得计算电路170在与读取电路150决定记忆体单元112的逻辑状态的序列协调的序列中执行一或多个逻辑及/或数学运算。在一些实施例中,记忆体电路100用以使得协调读取电路150及计算电路170的运算以执行如下文关于图2c及图5的非限制性实例论述的矩阵计算。

在一些实施例中,计算电路170用以基于对一或多个数据信号的第一子集执行第一运算并且对一或多个数据信号的第二子集执行第二运算来执行一或多个逻辑功能,记忆体电路100的部分从而用以与记忆体阵列110的至少一个其他区段(例如,区段110b)分开地操作记忆体阵列110的至少一个区段(例如,区段100a)。

在一些实施例中,计算电路170用以使用一或多个数据信号的第一子集作为输入数据以及一或多个数据信号的第二子集作为权重数据来执行矩阵计算。在一些实施例中,计算电路170包括用以执行乘法-累加运算的乘法器-累加器。在一些实施例中,计算电路170包括下文关于图3论述的运算电路370a及加法电路370b。

计算电路170用以在输出端口100-o上输出数据out。数据out包括多个电压位准,每个电压位准在输出端口100-o的一或多个电气连接上被携带。在各个实施例中,数据out包括的电压位准的数量与数据in中包括的电压位准的数量相同、较大、或较少。

数据out的多个电压位准是基于一或多个逻辑及/或数学运算的一或多个结果。在一些实施例中,一或多个电压位准是基于由计算电路170对记忆体阵列110中储存并且由读取电路150撷取的两个或多个数据位元执行的逻辑或数学运算的一或多个结果。在各个实施例中,记忆体电路100用以产生数据out,数据out不包括、包括一或多个、或包括全部的表示在记忆体阵列110中的记忆体单元112的逻辑状态的数据out的多个电压位准。

在图1所描绘的实施例中,记忆体阵列110在记忆体电路100的顶部处的输入端口100-i与记忆体电路100的底部处的输出端口100-o之间定位。在一些实施例中,其中写入电路130及写入控制电路140在记忆体阵列110的底部处定位,并且读取电路150、读取控制电路160、及计算电路170在记忆体阵列110的顶部处定位,记忆体阵列110在记忆体电路100的底部处的输入端口100-i与记忆体电路100的顶部处的输出端口100-o之间定位。在各个实施例中,基于在记忆体电路100的一侧或多侧处定位的输入端口100-i或输出端口100-o中的一个或两个,记忆体阵列110在输入端口100-i与输出端口100-o之间定位。

通过上文论述的构造,在操作中,记忆体电路100能够在输入端口100-i处接收数据in、基于数据in储存逻辑状态、基于所储存的逻辑状态执行一或多个逻辑功能、以及在输出端口100-o处产生数据out。记忆体电路100从而用以执行记忆体中计算,其中数据在由输入端口100-i及输出端口100-o的定位决定的流动方向。

通过包括分开地定位的输入及输出端口、以及记忆体中计算,记忆体电路100能够包括在电路中,在这些电路中,与其中记忆体电路不包括分开地定位的输入端口及输出端口或记忆体中计算的一个或两个的方法相比,数据移动距离减少。通过减少数据移动距离,与其中记忆体电路不包括分开地定位的输入端口及输出端口或记忆体中计算中的一个或两个的方法相比,记忆体电路100通过减少与数据汇流排长度及/或数据缓冲器数量相关联的寄生电容来实现减少的功率及简化的电路构造。

在一些实施例中,其中记忆体电路100用以通过与记忆体阵列110的至少一个其他区段分开地操作记忆体阵列110的至少一个区段来执行记忆体中计算,与其中记忆体电路包括多个记忆体阵列(这些记忆体阵列不包括记忆体中计算或分段阵列)的方法相比,记忆体电路100进一步能够减少数据移动距离。

图2a是根据一些实施例的系统200a的图。系统200a包括上文关于图1论述的记忆体电路100以及处理器210。处理器210是用以执行一或多个逻辑运算的电子电路,并且经由数据汇流排bus与记忆体电路100耦合。

系统200a是用以基于由处理器210执行的一或多个逻辑运算并且基于由如上文关于图1论述的包括计算电路170的记忆体电路100执行的数据及记忆体中计算操作来执行一或多个预定功能的电子或机电系统。在各个实施例中,系统200a用以执行神经网络的一或多个功能,例如,前向馈送或乘法-累加功能。

在一些实施例中,系统200a包括除了记忆体电路100及处理器210之外的一或多个电路(未图示)。在一些实施例中,系统200a包括网络电路,例如,下文关于图2b论述的网络电路200b,此网络电路包括多个记忆体电路100。

数据汇流排bus是用以在记忆体电路100与处理器210之间传导一或多个信号的多个电气连接。数据汇流排bus与记忆体电路100的输入端口100-i及输出端口100-o耦合,并且从而用以传导从处理器210至记忆体电路100的数据in或从记忆体电路100至处理器210的数据out中的一个或两个。

在一些实施例中,数据汇流排bus进一步与记忆体电路100耦合,并且从而用以在记忆体电路100与处理器210之间传导一或多个控制信号或其他信号(未图示)。

通过上文论述的构造,包括记忆体电路100的系统200a能够实现上文关于记忆体电路100论述的益处。

图2b是根据一些实施例的网络电路200b的图。网络电路200b包括上文关于图1论述的记忆体电路100的多层。

网络电路200b包括标识为100-1直至100-l的数量为l层的记忆体电路100,这些层包括相应的输入端口100-1-i直至100-l-i以及输出端口100-i-o直至100-l-o。输入端口100-1-i是网络电路200b的输入端口,并且输出端口100-l-o是网络电路200b的输出端口。

输出端口100-1-o与输入端口100-2-i耦合,并且输出端口100-2-o与相邻层的输入端口(未图示)耦合,此模式经由输入端口100-l-i重复,使得从输入端口100-1-i至输出端口100-l-o的数据路径包括记忆体电路100-1直至100-l中的每一个。

通过上文论述的构造,在操作中,记忆体电路100-1在输入端口100-1-i处接收数据in-1,且在输出端口100-1-o上输出数据out-1,并且记忆体电路100-2在输入端口100-2-i处接收数据out-1作为数据in-2,且在输出端口100-2-o上输出数据out-2,重复此模式使得数据经由记忆体电路100-1直至100-l中的每一个从输入端口100-1-i向输出端口100-l-o流动。

在图2b所描绘的实施例中,网络电路200b包括数量l层等于三的记忆体电路100。在各个实施例中,网络电路200b包括数量为l层少于或大于三的记忆体电路100。

在图2b所描绘的实施例中,输入端口100-1-i直至100-l-i在相应的记忆体电路100-1直至100-l的顶部处定位,并且输出端口100-1-o直至100-l-o在相应的记忆体电路100-1直至100-l的底部处定位,使得在操作中,数据从网络电路200b的顶部处的输入端口100-1-i向网络电路200b的底部处的输出端口100-l-o流动。在一些实施例中,输入端口100-1-i直至100-l-i在相应的记忆体电路100-1直至100-l的底部处定位,并且输出端口100-1-o直至100-l-o在相应的记忆体电路100-1直至100-l的顶部处定位,使得在操作中,数据从网络电路200b的底部处的输入端口100-1-i向网络电路200b的顶部处的输出端口100-l-o流动。

在各个实施例中,输入端口100-1-i直至100-l-1的一或多个子集及/或输出端口100-1-o直至100-l-o的一或多个子集在相应的记忆体电路100-1直至100-l上除了图2b所描绘的彼等之外的一或多个位置处定位,使得在操作中,数据在网络电路200b内的一个以上的方向上流动。在一些实施例中,网络电路200b包括在多个行及/或列中排列的记忆体电路100-1直至100-l,使得在操作中,数据在网络电路200b内以多方向模式(例如,蛇形模式)流动。

在各个实施例中,网络电路200b的每层的输入端口及输出端口具有相同数量的电气连接,或者网络电路200b的相邻层的至少一对输入端口及输出端口具有与网络电路200b的相邻层的一或多个其他对输入端口及输出端口的电气连接的一或多个数量不同的一或多个数量的电气连接。

在各个实施例中,网络电路200b的每层的记忆体电路100用以输出并且接收具有相同数量的数据位元的数据,或者网络电路200b的相邻层的至少一对记忆体电路100用以输出并且接收具有与网络电路200b的相邻层的一或多个其他对记忆体电路100所输出并且接收的数据的数据位元的数量不同的数量的数据位元的数据。

在一些实施例中,在网络电路200b的给定层的记忆体电路100的输出端口上输出的数据与在网络电路200b的对应相邻层的记忆体电路的输入端口处接收的数据为相同的数据。在各个实施例中,从给定层输出的一或多个数据是在对应相邻层处接收的数据的子集或超集,从给定层输出的数据包括由除了对应相邻层之外的电路(例如,上文关于图2a论述的处理器210)接收的数据,或者在对应相邻层处接收的数据包括从除了给定层之外的电路(例如,上文关于图2a论述的处理器210)输出的数据。

因为记忆体电路100-1直至100-l中的每一个包括上文关于图1论述的计算电路170,并且网络电路200b包括如上文论述构造的记忆体电路100-1直至100-l,网络电路200b用以执行一系列计算,其中记忆体电路100-1直至100-(l-1)中的每一个的计算结果包括在由对应的记忆体电路100-2直至100-l中的每一个执行的一或多个计算中。网络电路200b从而用以基于在输入端口100-1-i处接收的数据执行层化计算操作并且在输出端口100-l-o上输出层化计算操作的结果。

在一些实施例中,网络电路200b包括用以与记忆体阵列110的至少一个其他区段分开地操作记忆体阵列110的至少一个区段的至少一个记忆体电路100。在一些实施例中,例如,下文关于图2c论述的神经网络电路200c,网络电路200b包括至少一个记忆体电路100,此记忆体电路包括用以使用在记忆体阵列110的区段110a中储存的数据作为输入数据以及在记忆体阵列110的区段110b中储存的数据作为权重数据来执行矩阵计算的计算电路170。

通过上文论述的构造,与其中网络电路不包括记忆体电路100使得数据在给定方向上流动并且其中在数据流内执行记忆体中计算的方法相比,在网络电路200b中的数据移动距离减少。通过减少数据移动距离,与其中网络电路不包括记忆体电路(如上文关于记忆体电路100论述的,这些记忆体电路包括分开地定位的输入端口及输出端口或记忆体中计算中的一个或两个)的方法相比,网络电路200b实现减少的功率及简化的电路构造。

在一些实施例中,其中网络电路200b包括用以通过与记忆体阵列110的至少一个其他区段(例如,区段110b)分开地操作记忆体阵列110的至少一个区段(例如,区段110a)来执行记忆体中计算的至少一个记忆体电路100,与其中网络电路包括多个记忆体阵列(这些记忆体阵列不包括记忆体中计算或分段阵列)的方法相比,网络电路200b进一步能够减少数据移动距离。

图2c是根据一些实施例的神经网络电路200c的图。神经网络电路200c是上文关于图2b论述的网络电路200b的非限制性实例,其中记忆体电路100的l-1层的用以深度学习神经网络的隐藏层。

神经网络电路200c包括上文关于图2b论述的记忆体电路100-1直至100-l、以及与记忆体电路100-1的输入端口100-1-i耦合的输入层200i。输入层200i包括神经网络电路200c的输入端口200i-i,并且记忆体电路100-l通过包括输出端口100-l-o用以做为神经网络电路200c的输出层,其中输出端口100-l-o用以做为神经网络电路200c的输出端口。

在神经网络电路200c中,记忆体电路100-1直至100-l中的每一个包括区段110a及110b、以及如上文关于图1论述的用以基于区段110a及110b对数据信号执行一或多个矩阵计算的计算电路170。在图2c中将一或多个矩阵计算表示为在计算电路170的每个实例中的相交线段。

在一些实施例中,计算电路170的实例用以基于区段110a及110b对数据信号的相同部分或全部执行相同的一或多个矩阵计算。在各个实施例中,计算电路170的多个实例中用以使得计算电路170的至少一个实例用以执行与基于计算电路170的至少一个其他实例用以执行的一或多个矩阵计算不同的一或多个矩阵计算。在各个实施例中,计算电路170的多个实例中用以使得计算电路170的至少一个实例用以对与基于计算电路170的至少一个其他实例用以对其执行一或多个矩阵计算的数据信号的一部分或全部不同的数据信号的一部分或全部执行一或多个矩阵计算。

输入层200i是用以接收一或多个数据及/或控制信号并且回应于一或多个数据及/或控制信号将数据in-1输出至输入端口100-1-i的电子电路。数据in-1包括数量为m1的输入数据位元x1-xm1以及数量为n1的权重数据位元w1-wn1。

记忆体电路100-1用以将对应于输入数据位元x1-xm1的位元数据储存在区段110a中并且将对应于权重数据位元w1-wn1的位元数据储存在区段110b中、通过结合在区段110a中储存的数据与在区段110b中储存的数据来执行一或多个矩阵计算、以及将数据out-1输出至输出端口100-1-o。数据out-1包括数量为m2的输入数据位元x1-xm2以及数量为n2的权重数据位元w1-wn2。

记忆体电路100-2用以在输入端口100-2-i处接收数据out-1作为数据in-2、将对应于输入数据位元x1-xm2的位元数据储存在区段110a中并且将对应于权重数据位元w1-wn2的位元数据储存在区段110b中、通过结合在区段110a中储存的数据与在区段110b中储存的数据来执行一或多个矩阵计算、以及将数据out-2输出至输出端口100-2-o。数据out-2包括数量为m3的输入数据位元x1-xm3以及数量为n3的权重数据位元w1-wn3。

记忆体电路100-l用以在输入端口100-l-i处接收数据in-l、将对应于输入数据位元x1-xml的位元数据储存在区段110a中并且将对应于权重数据位元w1-wnl的位元数据储存在区段110b中、通过结合在区段110a中储存的数据与在区段110b中储存的数据来执行一或多个矩阵计算、以及将数据out-l输出至输出端口100-l-o。数据out-l包括数量为k的数据位元y1-yk。

在一些实施例中,数量m1-m(l-1)与输入数据位元的数量相同,并且数量n1-n(l-1)与权重数据位元的数量相同。在各个实施例中,数量m1-m(l-1)中的至少一个不同于数量m1-m(l-1)中的至少另一个,及/或数量n1-n(l-1)中的至少一个不同于数量n1-n(l-1)中的至少另一个。在各个实施例中,数据位元y1-yk的数量k是与数量m1-m(l-1)及/或数量n1-n(l-1)中的至少一个相同或不同。

通过上文论述的构造,在操作中,记忆体电路100-1对输入数据位元x1-xm1及权重数据位元w1-wn1执行矩阵计算,以产生输入数据位元x1-xm2及权重数据位元w1-wn2,并且记忆体电路100-2对输入数据位元x1-xm2及权重数据位元w1-wn2执行矩阵计算,以产生输入数据位元x1-xm3及权重数据位元w1-wn3,重复此模式使得数据经由记忆体电路100-1直至100-l中的每一个从输入端口100-1-i向输出端口100-l-o流动。

因为神经网络电路200c包括在输入端口200i-i与记忆体电路100-1之间的输入层200i,并且记忆体电路100-(l-1)通过用以做为输出层的记忆体电路100-l与输出端口100-l-o分开,记忆体电路100-1直至100-(l-1)有时被称为神经网络电路200c的隐藏层。

在一些实施例中,神经网络电路200c包括在神经网络中,并且神经网络电路200c的每层是神经网络的层。在一些实施例中,神经网络电路200c的每个隐藏层是前向馈送神经电路的乘法器-累加器层。

包括神经网络电路200c(包括如上文论述构造的记忆体电路100-1直至100-l)的神经网络由此能够实现上文关于网络电路200b论述的益处。

图3是根据一些实施例的记忆体电路300的图。记忆体电路300可用作上文关于图1论述的记忆体电路100的一部分。

记忆体电路300包括可用作记忆体阵列110(包括区段110a及110b)的全部或一部分的记忆体阵列区段310x[1]~310x[n]及310w[1]~~310w[n]、可用作行解码电路120的全部或一部分的行解码电路320、写入电路130、可用作读取电路150的全部或一部分的读取电路350、以及可共同用作如上文关于图1论述的计算电路170的全部或一部分的运算电路370a及加法电路370b。

记忆体阵列区段310x[1]~~310x[n]及310w[1]~~310w[n]中的每一个对应于区段110a或110b,并且包括与对应于上文关于图1论述的位元线114[1]~114[c]中的一位元线的位元线blx[1a]~blx[na]、blx[1b]~blx[nb]、blw[1a]~blw[na]、或blw[1b]~blw[nb]中的一位元线耦合的记忆体单元112的至少一列。在图3所描绘的实施例中,给定记忆体单元112与位元线blx[1a]~blx[na]、blx[1b]~blx[nb]、blw[1a]~blw[na]、或blw[1b]~blw[nb]中的单个位元线耦合。在一些实施例中,给定记忆体单元112与位元线blx[1a]~blx[na]、blx[1b]~blx[nb]、blw[1a]~blw[na]、或blw[1b]~blw[nb]中的一对位元线耦合。

在图3所描绘的实施例中,记忆体阵列区段310x[1]~310x[n]及310w[1]~310w[n]中的每一个包括两列记忆体单元112。在各个实施例中,记忆体阵列区段310x[1]~310x[n]或310w[1]~310w[n]中的一或多个包括一列或两列以上的记忆体单元112。

在图3所描绘的实施例中,记忆体阵列区段310x[1]~310x[n]及310w[1]~310w[n]中的每一个包括相同数量列的记忆体单元112。在一些实施例中,记忆体阵列区段310x[1]~310x[n]中的一或多个包括第一数量列的记忆体单元112,并且记忆体阵列区段310w[1]~310w[n]中一或多个包括不同于第一数量列的记忆体单元112的第二数量列的记忆体单元112。

记忆体阵列区段310x[1]~310x[n]及310w[1]~310w[n]经定位为使得每个记忆体阵列区段310x[n]邻近对应的记忆体阵列区段310w[n]。

记忆体单元112的给定行从而包括与记忆体阵列区段310w[1]~310w[n]中的记忆体单元112的第二子集交替的记忆体阵列区段310x[1]~310x[n]中的记忆体单元112的第一子集。给定行m的记忆体单元112的第一子集与字线316x[m]中的一个耦合,并且给定行m的记忆体单元112的第二子集与字线316w[m]中的一个耦合。

在一些实施例中,记忆体单元112的给定行m包括下文关于图4论述的与字线316x[m]耦合的记忆体单元412x以及与字线316w[m]耦合的记忆体单元412w。

行解码电路320用以在字线316x[1]~316x[m]上输出对应于记忆体单元112的第一子集的字线信号wx[1]~wx[m],并且在字线316w[1]~316w[m]上输出对应于记忆体单元112的第二子集的字线信号ww[1]~ww[m]。

行解码电路320由此用以在读取或写入操作期间,通过在对应字线316x[m]上产生字线信号wx[m]来选择行m的记忆体单元112的第一子集,及/或通过在对应字线316w[m]上产生字线信号ww[m]来选择行m的记忆体单元112的第二子集。

因为写入电路130用以基于在输入端口100-i处接收的数据in在位元线blx[1a]~blx[na]、blx[1b]~blx[nb]、blw[1a]~blw[na]、及blw[1b]~blw[nb]上产生电压位准,记忆体电路300从而用以在写入操作中将数据in的第一子集写入记忆体阵列区段310x[1]~310x[n]、将数据in的第二子集写入记忆体阵列区段310w[1]~310w[n]、或将数据in的整体写入记忆体阵列区段310x[1]~310x[n]及310w[1]~310w[n]。

读取电路350包括经由多个选择电路sel与位元线blx[1a]~blx[na]、blx[1b]~blx[nb]、blw[1a]~blw[na]、及blw[1b]..blw[nb]耦合的多个感测放大器sa。在图3所描绘的实施例中,给定的感测放大器sa经由对应选择电路sel与位元线blx[1a]~blx[na]、blx[1b]~blx[nb]、blw[1a]~blw[na]、或blw[1b]~blw[nb]中的一对位元线耦合。

在一些实施例中,读取电路不包括多个选择电路sel,并且给定的感测放大器sa与位元线blx[1a]~blx[na]、blx[1b]~blx[nb]、blw[1a]~blw[na]、或blw[1b]~blw[nb]中的单个位元线耦合。在一些实施例中,给定的感测放大器sa经由对应选择电路sel与位元线blx[1a]~blx[na]、blx[1b]~blx[nb]、blw[1a]~blw[na]、或blw[1b]~blw[nb]中的两个以上位元线耦合。

在一些实施例中,选择电路sel包括多工器。在一些实施例中,读取电路350不包括选择电路sel,并且记忆体阵列区段310x[1]~310x[n]及/或310w[1]~310w[n]中的每一个包括选择电路sel。

每个感测放大器sa是用以在读取操作期间决定对应的所选记忆体单元112的逻辑状态的电子电路。感测放大器sa的第一子集与对应于记忆体阵列区段310x[1]~310x[n]的记忆体单元112的行的第一子集耦合,并且感测放大器sa的第二子集与对应于记忆体阵列区段310w[1]..310w[n]的记忆体单元112的行的第二子集耦合。

感测放大器sa的第一子集用以在读取操作期间基于对应的所选记忆体单元112的逻辑状态产生具有电压位准的数据信号x[1]~x[n],并且感测放大器sa的第二子集用以在读取操作期间基于对应的所选记忆体单元112的逻辑状态产生具有电压位准的数据信号w[1]~w[n]。

在一些实施例中,感测放大器sa的第一子集的每个感测放大器sa包括用以产生具有锁存电压位准的数据信号x[1]~x[n]的锁存电路。在一些实施例中,感测放大器sa的第二子集的每个感测放大器sa包括用以产生具有锁存电压位准的数据信号w[1]~w[n]的锁存电路。

运算电路370a包括数量为n的逻辑单元372。第n个逻辑单元372用以接收一对数据信号x[n]及w[n]、基于数据信号x[n]及w[n]的电压位准执行一或多个逻辑或数学运算、以及产生具有表示一或多个逻辑或数学运算的结果的电压位准的信号r[1]~r[n]中的信号r[n]。

在各个实施例中,第n个逻辑单元372用以仅仅基于数据信号x[n]及w[n]执行一或多个逻辑或数学运算,或基于除了数据信号x[n]及w[n]之外的一或多个数据信号(未图示)执行一或多个逻辑或数学运算。

在各个实施例中,逻辑单元372用以执行or、nor、xor、and、nand、或乘法运算中的一或多个,或者适用于处理两个或多个数据位元的一或多个其他运算。

在一些实施例中,每个逻辑单元372用以执行相同逻辑或数学运算。在各个实施例中,至少一个逻辑单元372用以执行与由一或多个其他逻辑单元372执行的一或多个逻辑或数学运算不同的逻辑或数学运算。

在一些实施例中,每个逻辑单元372用以在全部运算期间执行相同的逻辑或数学运算。在各个实施例中,至少一个逻辑单元372是用以回应于一或多个接收的信号(未图示)执行多个变化的逻辑或数学运算中的至少一个逻辑或数学运算。

通过上文论述的配置,记忆体电路300能够通过协调产生数据信号x[n]及w[n]的读取电路350与对数据信号x[n]及w[n]执行一或多个逻辑及/或数学运算的运算电路170a来执行记忆体中计算。

通过上文论述的配置,运算电路370a能够通过与相应的记忆体阵列区段310w[1]~310w[n]中的数据分开地对记忆体阵列区段310x[1]~310x[n]中的数据进行运算来对记忆体单元112中储存的数据执行多个逻辑及/或数学运算。

在一些实施例中,记忆体电路300用以在记忆体中计算操作中使用第一感测放大器sa来产生数据信号x[n]或w[n]中的锁存数据信号、使用对应的第二感测放大器sa来通过相继从给定列中的多个行选择记忆体单元112动态地产生数据信号x[n]或w[n]中的另一个、以及使用第n个逻辑单元372来重复地执行给定的逻辑或数学运算以产生信号r[n]。记忆体电路300用以通过在改变值m时在字线316x[m]上产生字线信号wx[m]或在字线316w[m]上产生字线信号ww[m]来相继从给定列中的多个行选择记忆体单元112。

在各个实施例中,记忆体电路300用以通过从1直至m、从m直至1、从1至小于m的值、从m至大于1的值的步进值m或使用另一次序在1直至m的跨距内改变值m来在记忆体中计算操作中相继选择记忆体单元112。

在一些实施例中,记忆体电路300用以使得在记忆体中计算操作中,运算电路370a重复第n个逻辑单元372,从而重复地执行给定的逻辑或数学运算以针对多个值n产生信号r[n]。

在各个实施例中,记忆体电路300用以在记忆体中计算操作中通过使用从1直至n的每个值n或通过使用从1直至n的跨距内的值n的子集来针对多个值n产生信号r[n]。在各个实施中,记忆体电路300用以在记忆体中计算操作中通过并联、串联或并联与串联操作组合使用多个逻辑单元372来针对多个值n产生信号r[n]。

在一些实施例中,记忆体电路300用以执行下文关于图5论述的记忆体中计算操作的非限制性实例。

加法电路370b用以接收信号r[1]~r[n]、基于由信号r[1]~r[n]的电压位准表示的结果执行加法运算、产生数据out、以及在输出端口100-o上输出数据out。

在一些实施例中,加法电路370b用以通过使第n个逻辑单元372的每个结果相加来执行加法运算,从而针对信号r[1]~r[n]中的每个信号r[n]重复地执行由信号r[n]表示的给定逻辑或数学运算。在各个实施例中,加法电路370b用以通过使第n个逻辑单元372的结果的一或多个子集相加来执行加法运算,从而针对信号r[1]~r[n]中的每个信号r[n]重复地执行由信号r[n]表示的给定逻辑或数学运算。

在各个实施例中,加法电路370b用以产生具有n个数据位元、少于n个数据位元、或大于n个数据位元的数据out。

通过上文论述的构造,记忆体电路300能够基于与相应的记忆体阵列区段310w[1]~310w[n]中的数据分开的记忆体阵列区段310x[1]~310x[n]中的数据来执行一系列记忆体中计算操作,例如,矩阵计算。记忆体电路100、系统200a、或包括记忆体电路300的网络电路200b由此能够实现上文关于记忆体电路100、系统200a、及网络电路200b论述的益处。

在实施例中,其中记忆体电路300用以通过从给定列中的多个行相继选择记忆体单元112来动态地产生数据信号x[n]或w[n]中的一个(锁存数据信号x[n]或w[n]中的另一个),与其中记忆体电路不动态地产生具有第二数据信号的第一数据信号的方法相比,记忆体电路300实现减少的功率及简化的电路构造。

图4是根据一些实施例的记忆体单元电路400的图。记忆体单元电路400可用作上文关于图1及图3论述的记忆体电路100或300的一部分。

记忆体单元电路400包括上文关于图3论述的用以携带字线信号wx[m]的字线316x[m]以及用以携带字线信号ww[m]的字线316w[m]。记忆体单元电路400亦包括记忆体单元412x及412w(各者可用作记忆体单元112)、以及位元线bl及bld(各者可用作位元线114[1]~114[c]中的一位元线),各者在上文关于图1论述。

图4出于说明目的描绘了包括记忆体单元412x及412w中的每一个的记忆体单元电路400。在各个实施例中,记忆体单元电路400包括一个以上的记忆体单元412x及412w中的一个或两个中的每个。

记忆体单元412x及412w中的每一个通过包括功率节点vdd及vss、pmos晶体管p1及p2、以及nmos晶体管n1、n2、n3、及n4而构造为6tsram单元,其中晶体管对p1与n1以及p2与n2中的每对用以做为在功率节点vdd与vss之间耦合的反向器。

晶体管p2与n2的栅极一起耦合到晶体管p1与n1的漏极终端,并且耦合到晶体管n3的源极或漏极终端中的一个。晶体管n3的源极或漏极终端的另一个与位元线bl耦合。

晶体管p1与n1的栅极一起耦合到晶体管p2与n2的漏极终端,并且耦合到晶体管n4的源极或漏极终端中的一个。晶体管n4的源极或漏极终端的另一个与互补的位元线blb耦合。晶体管对p1与n1以及p2与n2由此交叉耦合,并且用以经由相应的晶体管n3及n4与位元线bl及blb选择性耦合。

记忆体单元412x包括与字线316x[m]耦合的晶体管n3及n4的栅极,并且从而用以回应于字线信号wx[m]与位元线bl及blb耦合。记忆体单元412w包括与字线316w[m]耦合的晶体管n3及n4的栅极,并且从而用以回应于字线信号ww[m]与位元线bl及blb耦合。

记忆体单元电路400从而用以在读取或写入操作中选择性激活记忆体单元412x或412w中的一个或两个。包括记忆体单元电路400的记忆体电路100或300由此能够实现上文关于记忆体电路100、系统200a、及网络电路200b论述的益处。

图5是根据一些实施例的记忆体电路运算参数的图表。图5描绘了记忆体中计算操作的非限制性实例,其中锁存数据信号w1[m],而数据信号x1[m]基于时脉信号clk通过从m=m至m=1步进来动态地产生。数据信号w1[m]及x1[m]是针对n=1的情形的上文关于图3论述的相应数据信号w[n]及x[n]的非限制性实例。

出于说明目的,数据信号w1[m]及x1[m]包括脉冲,这些脉冲不指示由感测放大器sa决定的特定逻辑状态。而是,数据信号脉冲指示感测放大器sa正基于所选记忆体单元112的任何决定的逻辑状态来主动地输出数据信号w1[m]或x1[m]。时脉信号clk包括指示步骤数量的脉冲。

数据信号w1[m]从步骤1直至步骤m是被致能的,从而说明对应的感测放大器sa正输出锁存的数据信号w1[m]至一电压位准,此电压位准指示在记忆体阵列区段310w[1]中的给定列的行m中的记忆体单元112的逻辑状态。

数据信号w1[m-1]从步骤m+1直至步骤2m(未图示)是被致能的,从而说明对应的感测放大器sa正输出锁存的数据信号w1[m-1]至一电压位准,此电压位准指示在记忆体阵列区段310w[1]中的给定列的行m-1中的记忆体单元112的逻辑状态。

数据信号x1[m]在步骤1及m+1期间是被致能的,从而说明对应的感测放大器sa正在一电压位准下输出数据信号x1[m],此电压位准指示仅在m步骤序列中的第一步骤期间在记忆体阵列区段310x[1]中的给定列的行m中的记忆体单元112的逻辑状态。

数据信号x1[m-1]在步骤2及m+2期间是被致能的,从而说明对应的感测放大器sa正在一电压位准下输出数据信号x1[m-1],此电压位准指示仅在m步骤序列中的第二步骤期间在记忆体阵列区段310x[1]中的给定列的行m-1中的记忆体单元112的逻辑状态。

数据信号x1[m-2]在步骤3及m+3(未图示)期间是被致能的,从而说明对应的感测放大器sa正在一电压位准下输出数据信号x1[m-2],此电压位准指示仅在m步骤序列中的第三步骤期间在记忆体阵列区段310x[1]中的给定列的行m-2中的记忆体单元112的逻辑状态。

数据信号x1[1]在步骤m及2m期间是被致能的,从而说明对应的感测放大器sa正在一电压位准下输出数据信号x1[1],此电压位准指示仅在m步骤序列中的第m步骤期间在记忆体阵列区段310x[1]中的给定列的行1中的记忆体单元112的逻辑状态。

步骤1直至m对应于矩阵计算的第一部分,其中通过结合锁存的数据信号w1[m]与在每个步骤处相继选择的数据信号x1[m]直至x1[1],例如,使用上文关于图3论述的运算电路370a来重复地执行给定逻辑运算。类似地,步骤m+1直至2m对应于矩阵计算的第二部分,其中通过结合锁存的数据信号w1[m-1]与在每个步骤处相继选择的数据信号x1[m]直至x1[1]来重复地执行给定逻辑运算。矩阵计算的额外部分对应于结合锁存的数据信号w1[m-2]直至w1[1]中的每个与在对应步骤处相继选择的数据信号x1[m]直至x1[1]。

为了完成矩阵计算,对数据信号w[1]~[m]及x[1]~x[m]的组合所执行的每个逻辑运算的结果被加总,例如,使用上文关于图3论述的加法电路370b。

在一些实施例中,数据信号w[m-2]直至w[1]对应于权重数据,并且数据信号x[m]直至x[1]对应于乘法-累加运算的输入数据。

在一些实施例中,针对n>1的情形,针对m及n中的每个值重复步骤1直至m,由此得到以下矩阵乘法运算:

矩阵乘法运算的输出out由以下等式表示:

其中xi表示数据信号xi[1]直至xi[m],并且wi表示数据信号wi[1]直至wi[m]。

根据图5所描绘的非限制性实例的用以执行记忆体中计算操作的记忆体电路100或300能够与至少一个其他记忆体阵列区段分开地操作一个记忆体阵列区段,并且由此能够实现上文关于记忆体电路100、系统200a、及网络电路200b论述的益处。

图6是根据一或多个实施例的执行记忆体中计算的方法600的流程图。方法600可与记忆体电路(例如,上文关于图1论述的记忆体电路100)、系统(例如,上文关于图2a论述的系统200a)、或网络电路(例如,上文关于图2b论述的网络电路200b)一起使用。

其中在图6中描绘方法600的操作的序列是仅用于说明;方法600的操作能够在与图6描绘的序列不同的序列中执行。在一些实施例中,除了图6所描绘的彼等之外的操作在图6所描绘的操作之前、之间、期间、及/或之后执行。

在一些实施例中,方法600的操作的一些或全部是执行记忆体电路或网络(例如,神经网络)计算的方法的操作的子集。在一些实施例中,方法600的操作的一些或全部用于根据图5所描绘的非限制性实例执行记忆体中计算操作。

在操作610处,在一些实施例中,在记忆体电路的输入端口处接收输入数据。记忆体电路包括在输入端口与输出端口之间定位的记忆体阵列、在输入端口与记忆体阵列之间定位的写入电路、以及在记忆体阵列与输出端口之间定位的读取电路。

在一些实施例中,在输入端口处接收输入数据包括上文关于图1论述的在输入端口100-i处接收输入数据in。

在一些实施例中,在输入端口处接收输入数据包括从另一记忆体电路的输出端口接收数据。在一些实施例中,在输入端口处接收输入数据包括上文关于第2图论述的在记忆体电路100-2直至100-l中的一个记忆体电路处从记忆体电路100-1直至100-(l-1)中的相邻记忆体电路接收数据。

在操作620处,在一些实施例中,将输入数据的第一子集储存在记忆体阵列的第一区段中,并且将输入数据的第二子集储存在记忆体阵列的第二区段中。在一些实施例中,将第一子集储存在第一区段中以及将第二子集储存在第二区段中包括将输入数据储存在第一或第二区段的一个中并且将权重数据储存在第一或第二区段的另一个中。

将输入数据的第一子集储存在第一区段中并且将输入数据的第二子集储存在第二区段中包括使用与读取电路分开的写入电路储存第一及第二子集。在一些实施例中,储存第一及第二子集包括在与读取电路于此定位的记忆体阵列的列的第二端相对的记忆体阵列的列的第一端处使用写入电路。在一些实施例中,储存第一及第二子集包括使用上文关于图1及图3论述的写入电路130。

在一些实施例中,将第一子集储存在第一区段中包括上文关于图3论述的将第一子集储存在记忆体阵列区段310x[1]~310x[n]的一个中,并且将第二子集储存在第二区段中包括将第二子集储存在记忆体阵列区段310w[1]~310w[n]的一个中。

在操作630处,在一些实施例中,锁存在记忆体阵列的第一区段或记忆体阵列的第二区段的一个区段中来自记忆体单元的第一列的第一数据位元。在一些实施例中,锁存第一数据位元包括锁存权重数据的权重位元。在一些实施例中,锁存第一数据位元包括锁存输入数据的输入位元。

在一些实施例中,锁存第一数据位元包括用读取电路的感测放大器锁存第一数据位元。在一些实施例中,锁存第一数据位元包括使用选择电路(例如,多工器)选择第一列。在一些实施例中,锁存第一数据位元包括上文关于图3论述的锁存数据信号x[n]或w[n]中的一个。

在操作640处,在一些实施例中,相继读取在第一区段或第二区段的另一个区段中来自记忆体单元的第二列的多个第二数据位元。在一些实施例中,相继读取第二数据位元包括相继读取输入数据的输入数据位元。在一些实施例中,相继读取第二数据位元包括相继读取权重数据的权重数据位元。

在一些实施例中,相继读取第二数据位元包括用读取电路的感测放大器相继读取第二数据位元。在一些实施例中,相继读取第二数据位元包括使用选择电路(例如,多工器)选择第二列。在一些实施例中,相继读取第二数据位元包括上文关于图3论述的相继读取数据信号x[n]或w[n]中的一个。

在操作650处,在一些实施例中,对锁存的第一数据位元与多个第二数据位元的每个第二数据位元的每个组合执行逻辑运算。在各个实施例中,执行逻辑运算包括下列中的一或多个:执行or、nor、xor、and、nand、或乘法运算、或适用于处理至少两个数据位元的一或多个其他运算。在一些实施例中,执行逻辑运算包括结合权重数据位元与输入数据位元。

执行逻辑运算包括使用逻辑电路。在一些实施例中,执行逻辑运算包括使用上文关于图1论述的计算电路170。在一些实施例中,执行逻辑运算包括使用上文关于图3论述的逻辑单元372。

在操作660处,在一些实施例中,重复操作630直至650的一或多个或者全部。在一些实施例中,重复操作630直至650中的一或多个或者全部包括锁存来自记忆体单元的第一列的第三数据位元,相继读取来自记忆体单元的第二列的多个第二数据位元、以及对锁存的第三数据位元与多个第二数据位元的每个第二数据位元的每个组合执行逻辑运算。

在一些实施例中,重复操作630直至650中的一或多个或者全部包括重复以下操作:锁存给定数据位元、相继读取对应的多个数据位元、以及对相应第一及第二记忆体阵列区段中的多个列的所得组合执行逻辑运算。在一些实施例中,相应第一及第二记忆体阵列区段是上文关于图3论述的记忆体阵列区段310w[1]~310w[n]及310x[1]~310x[n]。

在操作670处,在一些实施例中,总和通过使对每个锁存的数据位元与每个相继读取的数据位元的每个组合执行逻辑运算的结果的一些或全部相加来计算。在一些实施例中,计算总和是执行矩阵计算的部分。在一些实施例中,计算总和是执行权重及输入数据的矩阵计算的部分。

计算总和包括使用加法电路。在一些实施例中,计算总和包括使用上文关于图1论述的计算电路170。在一些实施例中,计算总和包括使用上文关于图3论述的加法电路370b。

在操作680处,在一些实施例中,总和由记忆体电路输出。输出总和包括在记忆体电路的输出端口处输出总和。在一些实施例中,输出总和包括在上文关于图1论述的输出端口out处输出总和。

在操作690处,在一些实施例中,总和包括在到网络电路层的输出中。在一些实施例中,在输出中包括总和包括在到另一记忆体电路的输出端口的输出中包括总和。在一些实施例中,在输出中包括总和包括在到上文关于第2图论述的记忆体电路100-2直至100-(l-1)中的一个的输出中包括总和。

在一些实施例中,在输出中包括总和包括在到神经网络计算层的输出中包括总和。

通过执行方法600的操作的一些或全部,执行记忆体中计算的一些或全部,由此获得上文关于记忆体电路100、系统200a、及网络电路200b论述的益处。

在一些实施例中,一种电路包括记忆体阵列、用以将数据储存在记忆体阵列的记忆体单元中的写入电路、用以从记忆体阵列的记忆体单元撷取储存数据的读取电路、以及用以对所撷取的储存数据执行一或多个逻辑运算的计算电路,其中记忆体阵列在写入电路与读取电路之间定位。

在一些实施例中,上述的电路用以协调执行一或多个读取操作的读取电路与执行一或多个逻辑运算的计算电路。

在一些实施例中,上述的电路还包含多个第一字线与多个第二字线。第一字线与记忆体阵列的第一区段中的记忆体单元的多个行耦合。第二字线与记忆体阵列的第二区段中的记忆体单元的多个行耦合。

在一些实施例中,上述的电路中,计算电路用以通过结合从第一区段撷取的储存数据的第一子集与从第二区段撷取的储存数据的第二子集来执行矩阵计算。

在一些实施例中,上述的电路中,读取电路包含与第一区段或第二区段的一个中的记忆体单元的第一列耦合的锁存电路,以及计算电路用以通过相继结合锁存电路中储存的数据位元与从第一区段或第二区段的另一个中的记忆体单元的第二列撷取的多个数据位元来执行矩阵计算。

在一些实施例中,上述的电路中,计算电路用以基于矩阵计算输出累加的总和数据。

在一些实施例中,上述的电路还包含用以将累加的总和数据储存在另一记忆体阵列的记忆体单元中的另一写入电路。

在一些实施例中,上述的电路中,记忆体阵列是多个记忆体阵列的第一记忆体阵列,以及写入电路用以从在写入电路与该些记忆体阵列的第二阵列之间定位的另一读取电路接收数据。

在一些实施例中,一种记忆体电路包括记忆体阵列(包括记忆体单元的第一区段及记忆体单元的第二区段)、以及用以通过结合从第一区段的记忆体单元撷取的第一数据与从第二区段的记忆体单元撷取的第二数据来执行矩阵计算的计算电路。

在一些实施例中,上述的记忆体电路还包含感测放大器。感测放大器包含与第一区段的记忆体单元的第一列耦合的锁存电路。计算电路用以通过相继结合在锁存电路中储存的第一数据的数据位元与从第二区段的记忆体单元的第二列撷取的第二数据来执行矩阵计算。

在一些实施例中,上述的记忆体电路还包含多个第一字线与多个第二字线。第一字线与第一列耦合。第二字线与第二列耦合。在矩阵计算期间,记忆体电路用以相继激活第二字线。

在一些实施例中,上述的记忆体电路中,第一区段包含用以储存第一数据的记忆体单元的多个第一列,第二区段包含用以储存第二数据的记忆体单元的多个第二列,以及该些第一列邻近该些第二列。

在一些实施例中,上述的记忆体电路还包含多个第一字线与多个第二字线。该些第一字线中的每个第一字线与该些第一列的每个第一列的记忆体单元耦合。该些第二字线中的每个第二字线与该些第二列的每个第二列的记忆体单元耦合。

在一些实施例中,上述的记忆体电路中,该些第一列的第一列的数量等于该些第二列的第二列的数量。

在一些实施例中,上述的记忆体电路中,记忆体单元的第一区段及记忆体单元的第二区段的每个记忆体单元是静态随机存取记忆体(sram)单元。

在一些实施例中,执行记忆体中计算的方法包括锁存在记忆体阵列的第一区段或记忆体阵列的第二区段中的一个区段中来自记忆体单元的第一列的第一数据位元、相继读取在第一区段或第二区段的另一个中来自记忆体单元的第二列的多个第二数据位元、以及对锁存的第一数据位元与多个第二数据位元的每个数据位元的每个组合执行逻辑运算。

在一些实施例中,上述的方法还包含锁存来自记忆体单元的第一列的第三数据位元、相继读取来自记忆体单元的第二列的该些第二数据、以及对锁存的第三数据位元与该些第二数据位元的每个第二数据位元的每个组合执行逻辑运算。

在一些实施例中,上述的方法还包含通过使对锁存的第一数据位元与该些第二数据位元的每个第二数据位元的每个组合执行逻辑元算的结果与对锁存的第三数据位元与该些第二数据位元的每个第二数据位元的每个组合执行逻辑运算的结果相加来计算总和。

在一些实施例中,上述的方法中,计算总和的步骤包含进一步使对来自记忆体单元的第三列的锁存的第五数据位元与来自记忆体单元的第四列的多个第六数据位元的每个第六数据位元的每个组合执行逻辑运算的结果相加。

在一些实施例中,上述的方法还包含将总和包括在到神经网络计算的层的输入中。

前述内容概述了若干实施例的特征,使得熟悉此项技术者可更好地理解本揭示的态样。熟悉此项技术者应了解,可轻易使用本揭示作为设计或修改其他制程及结构的基础,以便实施本文所介绍的实施例的相同目的及/或实现相同优点。熟悉此项技术者亦应认识到,此类等效构造并未脱离本揭示的精神及范畴,且可在不脱离本揭示的精神及范畴的情况下产生本文的各种变化、替代及更改。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1