掌桥专利:专业的专利平台
掌桥专利
首页

半导体设备

文献发布时间:2024-01-17 01:26:37


半导体设备

本申请要求2022年02月25日提交的日本专利申请号2022-027660的优先权,其内容在此通过引用并入本申请。

技术领域

本公开涉及一种半导体设备,并且适用于例如需要执行大量乘积-求和运算的半导体设备。

背景技术

随着深度学习的机器学习的发展,人工智能(AI)正被应用在各种地方。由于该方法需要大量的乘积-求和运算,因此使用AI加速器来加速乘积-求和运算的处理。

AI加速器可以使用存储器内处理(PIM)。例如,日本专利申请特开号2020-129582(专利文献1)公开了一种包括存储器单元的半导体设备,该存储器单元:连接到数据线;存储三值数据;在存储数据、输入数据和数据线上的数据之中执行乘积-求和运算。

发明内容

在专利文献1的配置中,当连接到数据线的存储器单元的数目增加时,由于存储器单元的特性值(诸如电流和容量)的变化,可能无法执行稳定的求和运算。

根据对说明书和附图的描述,本公开的其他问题和新颖特征将变得明显。

本公开的代表性公开的简要概述如下。即,半导体设备包括第一数据线、第二数据线以及连接到第一数据线和第二数据线的存储器单元。存储器单元包括多个开关、第一数据保持电路、第二数据保持电路、第三数据保持电路、第四数据保持电路和输入线。通过基于由第三数据保持电路保持的值来控制多个开关之中的连接到第一数据线的开关,以及通过基于由第四数据保持电路保持的值来控制多个开关之中的连接到第二数据线的开关,存储器单元的特性值可改变。

根据上述半导体设备,可以减少存储器单元的特性值的变化。

附图说明

图1是示出根据一个实施例的推理设备的配置示例的框图。

图2是示出图1中所示的乘积-求和运算设备的配置示例的框图。

图3是示出图2中所示的存储器阵列中的一个存储器单元列及其相关部分的图。

图4是示出图3中所示的乘积运算存储器单元的配置示例的图。

图5是示出图4中所示的乘积运算存储器单元的配置示例的细节的电路图。

图6是示出图5中所示的乘积运算存储器单元的布局的平面图。

图7是示出图3中所示的推理基准单元的配置示例的图。

图8是示出图3中所示的调整基准单元的配置示例的图。

图9是示出图3中所示的微调整单元的配置示例的图。

图10是用于说明A/D转换的图。

图11是用于说明错误出现时的A/D转换的图。

图12A是用于说明乘积运算存储器单元和调整基准单元之间的电流比较的图。

图12B是用于说明乘积运算存储器单元和调整基准单元之间的电流比较的图。

图13是示出乘积运算存储器单元(ME[0])的电流路径的图。

图14是示出调整基准单元的电流路径的图。

图15是示出微调整单元的电流路径的图。

图16是示出第一修改示例中的乘积运算存储器单元的配置的图。

图17是示出第二修改示例中的乘积运算存储器单元的配置的图。

图18是示出第三修改示例中的乘积运算存储器单元的配置的图。

图19是示出第四修改示例中的调整基准单元的配置的图。

图20是示出第五修改示例的存储器单元阵列的配置的图。

图21是示出实施例中的数据线和共用电源线上的电压的图。

图22是示出第五修改示例中的数据线和共用电源线中的电压的图。

图23是示出第六修改中的乘积运算存储器单元的配置的图。

具体实施方式

在下文中,将参考附图描述实施例和修改示例。然而,在下面的描述中,相同的附图标记表示相同的组件,并且可以省略对其的重复描述。

<推理设备的配置>

图1是示出根据一个实施例的推理设备的配置示例的框图。

实施例中的推理设备包括AI加速器130、中央处理单元(CPU)200、成像设备(IMAGING DEVICE)300和显示设备(DISPLAY DEVICE)400。成像设备300是相机、扫描仪等,并且获取图像数据并且将其提供给中央处理单元200。中央处理单元200处理所提供的图像数据,并且将其提供给AI加速器130。AI加速器130基于所提供的图像数据进行推理,并且将其推理结果提供给中央处理单元200。中央处理单元200处理所提供的推理结果,并且将其提供给显示设备400。显示设备400显示所提供的推理结果。

AI加速器130包括:通过集合大量的乘积-求和运算设备100配置的积分块110;以及其控制电路(CNTR)120。乘积-求和运算设备100由PIM架构配置。AI加速器130例如是在一个半导体衬底上形成的半导体设备,诸如包含乘积-求和运算设备100的微控制器。

<乘积-求和运算设备的配置>

图2是示出图1中所示的乘积-求和运算设备的配置示例的框图。除了乘积-求和运算处理以外,该实施例中的乘积-求和运算设备100还具有调整功能,该调整功能减少具有执行乘积-求和运算的乘积-求和运算功能的存储器单元(在下文中被称为“乘积运算存储器单元”)的特性值的变化。

乘积-求和运算设备100包括存储器单元阵列101、电流源(CS)102、作为恒流源(CCS)的共用电源线开关(CVSW)103和感测放大器104。乘积-求和运算设备100还包括推理控制电路(I_CNTR)105、调整控制电路(T_CNTR)106、输入缓冲器(IB)107和存储器控制器(M_CNTR)108。

存储器单元阵列101由多个乘积运算存储器单元(ME)10组成。乘积运算存储器单元10连接到数据线(PBL)13a和数据线(NBL)13b。作为比较电路的感测放大器104基于从输入缓冲器107提供的输入数据,来确定连接到数据线13a、13b的乘积运算存储器单元10的数字之和,从而执行乘积-求和运算。

乘积运算存储器单元10在乘积运算存储器单元10中存储的三值逻辑值与输入数据的逻辑值之间执行乘积运算,并且根据乘积运算的结果进行操作以从数据线13a、13b汲取电流。该实施例的乘积运算存储器单元10是使用电流感测的一个示例。

根据多个乘法运算存储器单元10的乘法运算结果的电流被叠加在数据线13a、13b中的每个数据线上,并且确定数据线13a、13b中的每个数据线上的电流和电压。即,求和运算被执行,以便在多个乘法运算存储器单元10中获得的乘积通过数据线13a和数据线13b进行求和。乘积-求和运算的结果(其是求和运算的结果)经由数据线13a、13b被输出。

推理控制电路105通过控制将稍后描述的推理基准单元等来执行AD转换。调整控制电路106用于优化将稍后描述的乘积运算存储器单元10的电流路径,并且用于减少变化。稍后将描述其细节。

<存储器阵列的存储器单元列的配置>

图3是示出图2中所示的存储器阵列中的一个存储器单元列及其相关部分的图。

存储器单元阵列101中的存储器单元列包括多个乘积运算存储器单元10、多个推理基准单元(IREF)20、调整基准单元(TREF)30和微调整单元(FT)40。相应的单元连接到数据线13a、13b。电流源(CS)102、共用电源开关(CVSW)103和感测放大器(SA)104也连接到数据线13a、13b。下面将描述相应的单元。

<乘积运算存储器单元(ME)的配置>

图4是示出图3中所示的乘积运算存储器单元的配置示例的图。

乘积运算存储器单元10包括两个权重存储器单元(MC)11a、11b和八个开关12a至12d、12i至12l以执行乘积-求和运算。乘积运算存储器单元10还包括四个路径切换存储器单元(MC)11c至11f,以及八个开关12e至12h、12m至12p以切换电流路径。

开关12e、12f连接到数据线13a和存储器单元11c。当存储器单元11c存储例如逻辑值“1”时,开关12e变为导通状态,并且开关12f变为关断状态。开关12c、12d分别连接在节点n1与开关12e、12f之间。开关12c、12d连接到输入线(IL)15,并且在施加到输入线15的输入数据(ID)处于指示例如逻辑值“1”的高水平时,变为导通状态。

开关12a、12b连接到节点n1和存储器单元11a,并且当存储器单元11a存储例如逻辑值“1”时,开关12a、12b变为导通状态。开关12g、12h分别连接在开关12a、12b与共用电源线14之间,并且连接到存储器单元11e。当存储器单元11e存储例如逻辑值“1”时,开关12g变为导通状态并且开关12h变为关断状态。

开关12m、12n连接到数据线13b和存储器单元11d。当存储器单元11d存储例如逻辑值“1”时,开关12m变为导通状态,并且开关12n变为关断状态。开关12k、12l分别连接在节点n2与开关12m、12n之间。开关12k、12l连接到输入线15,并且当施加到输入线15的输入数据例如是逻辑值“1”时变为导通状态。

开关12i、12j连接到节点n2和存储器单元11b,并且当存储器单元11b存储例如逻辑值“1”时,开关12i、12j变成导通状态。开关12o、12p分别连接在开关12i、12j与共用电源线(CVSS)14之间,并且连接到存储器单元11f。当存储器单元11f存储例如逻辑值“1”时,开关12o变为导通状态,并且开关12p变为关断状态。

(乘积-求和运算)

存储器单元11a向开关12a、12b提供同相值(T),并且存储器单元11b向开关12i、12j提供同相值(T)。因此,当提供到输入线15的输入数据(ID)变为指示逻辑值“1”的高水平时,乘积运算存储器单元10的乘积运算由保持在存储器单元11a、11b中的数据控制。

乘积-求和运算由以下(a)至(c)的三个值执行。因此,禁止将存储器单元11a、11b的值都设置为逻辑值“1”:

(a)数据线13a侧与共用电源线14的连接(逻辑值“+1”);

(b)数据线13b侧与共用电源线14的连接(逻辑值“-1”);以及

(c)关断数据线13a侧与共用电源线14的连接以及数据线13b侧与共用电源线14的连接(逻辑值“0”)。

经由数据线13a、13b上的乘积运算存储器单元10的开关,通过电流来执行求和运算。

假设当存储器单元11a、11b两者存储逻辑值“0”时,乘积运算存储器单元10存储逻辑值“0”。还假设当存储器单元11a存储逻辑值“1”并且存储器单元11b存储逻辑值“0”时,乘积运算存储器单元10存储逻辑值“+1”。进一步假设当存储器单元11a存储逻辑值“0”并且存储器单元11b存储逻辑值“1”时,乘积运算存储器单元10存储逻辑值“-1”。这里,假设存储器单元11c、11d、11e和11f存储逻辑值“1”,将描述以下内容。

因此,当逻辑值“0”被存储在乘积运算存储器单元10中时,开关12a、12b、12i和12j变为关断状态。因此,即使输入数据(ID)是例如逻辑值“1”,也没有电流从数据线13a、13b流向共用电源线14。

相比之下,当逻辑值“+1”被存储在乘积运算存储器单元10中时,开关12a、12b变为导通状态并且开关12i、12j变为关断状态。此时,如果输入数据(ID)具有逻辑值“1”,则电流从数据线13a经由导通状态的开关12e、12c、12a、12g流向共用电源线14,并且数据线13a的电压下降。此时,数据线13b的电压不下降。同时,如果此时输入数据(ID)具有逻辑值“0”,则导通状态的开关12c、12d、12k和12l变为关断状态。因此,没有电流从数据线13a、13b流向共用电源线14,并且数据线13a、13b的电压不下降。

此外,当逻辑值“-1”被存储在乘积运算存储器单元10中时,开关12i、12j变为导通状态,并且开关12a、12b变为关断状态。此时,如果输入数据(ID)具有逻辑值“1”,则电流从数据线13b经由导通状态的开关12m、12k、12i、12o流向共用电源线14,并且数据线13b的电压下降,数据线13a的电压不下降。同时,如果此时输入数据具有逻辑值“0”,则导通状态的开关12c、12d、12k和12l变为关断状态。因此,没有电流从数据线13a、13b流向共用电源线14,并且数据线13a、13b的电压不下降。

即,可以认为,乘积运算存储器单元10中的存储器单元11a用于存储逻辑值“+1”,并且乘积运算存储器单元10中的存储器单元11b用于存储逻辑值“-1”。

因此,在被存储在乘积运算存储器单元10中的三个值与输入数据(ID)的值之间执行乘积运算。即,根据输入数据(ID)的逻辑值和乘积运算存储器单元10的逻辑值,形成0×0、0×(+1)、0×(-1)、1×0、1×(+1)、1×(-1)六种状态。在该情况下,在输入数据(ID)的逻辑值与被存储在乘积运算存储器单元10中的逻辑值之间执行乘积运算。当乘积运算的结果是逻辑值“1”时,电流在数据线13a和共用电源线14之间流动,并且数据线13a的电压下降。相比之下,当乘积运算的结果是逻辑值“-1”时,电流在数据线13b和共用电源线14之间流动,并且数据线13b的电压下降。

(电流路径切换)

开关12a至12h中的一些开关串联(级联),以形成将数据线13a连接到共用电源线14的电流路径。可以形成多个电流路径。通过开关12a至12h的导通/关断状态,来选择多个电流路径中的一个电流路径,并且切换电流路径。开关12i至12p中的一些开关串联连接(级联),以形成将数据线13b连接到共用电源线14的电流路径。可以形成多个电流路径。通过开关12i至12p的导通/关断状态,来选择多个电流路径中的一个电流路径,并且切换电流路径。

由于存储器单元11c向开关12e、12f提供互补值(T/B),因此开关12e、12f中的一个开关被设置为导通状态,并且另一个开关被设置为关断状态。由于存储器单元11d向开关12m、12n提供互补值(T/B),因此开关12m、12n中的一个开关被设置为导通状态,并且另一个开关被设置为关断状态。由于存储器单元11e向开关12g、12h提供互补值(T/B),因此开关12g、12h中的一个开关被设置为导通状态,并且另一个开关被设置为关断状态。由于存储器单元11f向开关12o、12p提供互补值(T/B),因此开关12o、12p中的一个开关被设置为导通状态,并且另一个开关被设置为关断状态。因此,针对数据线13a、13b中的每个数据线,选择四种电流路径中的一种电流路径。

<乘积运算存储器单元(ME)的详细配置>

图5是示出图4中所示的乘积运算存储器单元的配置的电路图。

作为乘积运算存储器单元10中的数据保持电路的存储器单元11a至11f由SRAM(静态随机存取存储器)存储器单元组成。SRAM存储器单元由例如六个晶体管组成。保持在存储器单元11a至11f中的数据的每个片段由3个数据线对(BT[2:0],BB[2:0])16a至16f和2个字线(WL[1:0])17a、17b控制,以进行正常的SRAM操作。这使得可以通过从外部指定六个SRAM存储器单元中的一个SRAM存储器单元来写入和读取值。乘积运算存储器单元10中的开关12a至12p由NMOS晶体管组成。

将通过使用存储器单元11c作为示例,来说明存储器单元11a至11f的配置。存储器单元11c由多个P沟道场效应晶体管(被称为PMOS晶体管)和多个N沟道场效应晶体管(被称为NMOS晶体管)组成。顺便提及,在本公开的附图中,PMOS晶体管通过用圆圈标记栅极电极来与NMOS晶体管进行区分。此外,在不区分沟道类型的情况下,在下文中将场效应晶体管称为MOS晶体管。

存储器单元11c包括由PMOS晶体管P1和NMOS晶体管N1组成的第一反相器电路IV1,并且包括由PMOS晶体管P2和NMOS晶体管N2组成的第二反相器电路IV2。第一反相器电路IV1和第二反相器电路IV2连接在向其供给电源电压(Vd)的电源线与向其供给地电位(Vs)的地线之间。此外,第一反相器电路IV1的输入连接到第二反相器电路IV2的输出,并且第二反相器电路IV2的输入连接到第一反相器电路IV1的输出。即,第一反相器电路IV1和第二反相器电路IV2交叉连接,以便形成锁存电路。传输NMOS晶体管N3、N4连接在第二反相器电路IV2的输入和第一反相器电路IV1的输入与一对互补数据线(BT[0],BB[0])16a、16b之间。传输NMOS晶体管N3、N4的栅极电极连接到字线(WL[0])17a。

在将数据写入到存储器单元11c时使用该对互补数据线16a、16b和字线17a。即,在向存储器单元11c写入数据时,根据要写入的数据的逻辑值的互补电压(高水平和低水平)被提供给互补数据线16a、16b,并且高水平被提供给字线17a。因此,该对互补数据线16a、16b上的互补电压经由传输NMOS晶体管N3、N4,被提供给由第一反相器电路IV1和第二反相器电路IV2组成的锁存电路。因此,逻辑值“0”或“1”被写入到存储器单元11c。从节点n3、n4输出存储器单元11c中保持的逻辑值。节点n3、n4连接到形成开关12e、12f的NMOS晶体管的栅极。

存储器单元11a具有与存储器单元11c相同的配置,但是传输NMOS晶体管N3、N4连接到不同于该对互补数据线16a、16b的一对互补数据线(BT[1],BB[1])16c、16d。仅从节点n3输出存储器单元11a中保持的逻辑值。这使得可以将与存储器单元11c的逻辑值不同的逻辑值写入到存储器单元11a中。节点n3连接到形成开关12a、12b的NMOS晶体管的栅极。

存储器单元11e具有与存储器单元11c相同的配置。但是,存储器单元11e的传输NMOS晶体管N3、N4连接到与该对互补数据线16a、16b和该对互补数据线16c、16d不同的一对互补数据线(BT[2],BB[2])16e、16f。这使得可以将与存储器单元11c的逻辑值不同的逻辑值写入到存储器单元11a中。从节点n3、n4输出存储器单元11e中保持的逻辑值。节点n3、n4连接到形成开关12g、12h的NMOS晶体管的栅极。

存储器单元11d具有与存储器单元11c相同的配置,但是传输NMOS晶体管N3、N4的栅极电极连接到不同于字线17a的字线(WL[1])17b。因此,通过在与字线17a不同的定时将字线17b设置为高水平,使得可以将与存储器单元11c的逻辑值不同的逻辑值写入到存储器单元11d中。从节点n3、n4输出存储器单元11d中保持的逻辑值。节点n3、n4连接到形成开关12g、12h的NMOS晶体管的栅极。

存储器单元11b具有与存储器单元11a相同的配置,但是传输NMOS晶体管N3、N4的栅极电极连接到不同于字线17a的字线17b。因此,通过在与字线17a不同的定时将字线17b设置为高水平,使得可以将与存储器单元11a的逻辑值不同的逻辑值写入到存储器单元11d中。即,乘积运算存储器单元10中用于存储逻辑值“+1”的存储器单元11a由字线17a控制,并且乘积运算存储器单元10中用于存储逻辑值“-1”的存储器单元11b由字线17b控制。从节点n3输出存储器单元11b中保持的逻辑值。节点n3连接到形成开关12i、12j的NMOS晶体管的栅极。

存储器单元11f具有与存储器单元11e相同的配置,但是传输NMOS晶体管N3、N4的栅极电极连接到不同于字线17a的字线17b。因此,通过在与字线17a不同的定时将字线17b设置为高水平,使得可以将与存储器单元11e的逻辑值不同的逻辑值写入到存储器单元11f中。从节点n3、n4输出存储器单元11f中保持的逻辑值。节点n3、n4连接到形成开关12o、12p的NMOS晶体管的栅极。

<乘积运算存储器单元(ME)的布局>

图6是示出图5中所示的乘积运算存储器单元的布局示例的平面图。

字线(WL[1:0])和输入线(IL[0])被布置成沿着X方向延伸。数据线对(BT[2:0],BB[2:0])、共用地线(CVSS)、数据线(PBL)、数据线(NBL)被布置成沿着与X方向正交的Y方向延伸。

开关12o、12p被布置在存储器单元11f的左侧,并且共用地线(CVSS)被布置在开关12o、12p的左侧。存储器单元11e被布置在存储器单元11f的右侧,并且开关12g、12h被布置在存储器单元11e的右侧。

开关12a、12b被布置在存储器单元11a、11b的左侧,并且开关12i、12j被布置在开关12a、12b的左侧。开关12k、12l被布置在存储器单元11a、11b的右侧。

数据线(NBL)被布置在存储器单元11d的左侧,并且开关12m、12n被布置在数据线(NBL)的左侧。存储器单元11c被布置在存储器单元11d的右侧。数据线(PBL)被布置在存储器单元11c的右侧,开关12e、12f被布置在数据线(PBL)的右侧,并且开关12c、12d被布置在开关12e、12f的右侧。

两个路径切换存储器单元11f、11e和两个存储器单元11d、11c分别在X方向上并排布置,并且两个权重存储器单元11a、11b在Y方向上并排布置。互补数据线(BT,BB)可以在相邻的存储器单元之间进行共享。

权重存储器单元11a、11b使用具有与路径切换存储器单元11f、11e和存储器单元11d、11c的那些布局不同的布局的单元。前者使用所谓的水平SRAM单元,后者使用垂直SRAM单元。

在图6中,由实线围绕的每个区域指示形成MOS晶体管的栅极电极的布线PO,并且由单点划线围绕的每个区域指示形成MOS晶体管的源极区域或漏极区域的半导体区域OD。此外,由虚线围绕的每个区域指示由第一金属布线层(导电层)M1形成的金属布线。此外,由实线围绕并且标记有x的每个区域指示接触区域CO。例如,与接触区域CO重叠的两个层在两者之间通过接触区域CO电连接。参考图5描述的PMOS晶体管和NMOS晶体管的附图标记被给予栅极电极部分。被给予附图标记的栅极电极部分形成栅极电极,该栅极电极配置具有该附图标记的MOS晶体管。

作为垂直SRAM单元的存储器单元11e将被描述。形成存储器单元11e的PMOS晶体管P1、P2和NMOS晶体管N3、N4的栅极电极平行于X方向布置。此外,形成PMOS晶体管P1、P2的栅极电极被延伸,以分别形成NMOS晶体管N1、N2的栅极电极。即,PMOS晶体管P1的栅极电极和NMOS晶体管N1的栅极电极一体形成。PMOS晶体管P2的栅极电极和NMOS晶体管N2的栅极电极一体形成。PMOS晶体管P1、P2的栅极电极在Y方向上排列。NMOS晶体管N1至N4的栅极电极在Y方向上排列。相邻的存储器单元11f与存储器单元11e点对称地布置。存储器单元11c、11d与存储器单元11e、11f类似地配置。

作为水平SRAM单元的存储器单元11a将被描述。形成存储器单元11a的PMOS晶体管P1、P2和NMOS晶体管N3、N4的栅极电极平行于X方向布置。此外,形成PMOS晶体管P1、P2的栅极电极被延伸,以分别形成NMOS晶体管N1、N2的栅极电极。即,PMOS晶体管P1的栅极电极和NMOS晶体管N1的栅极电极一体形成。PMOS晶体管P2的栅极电极和NMOS晶体管N2的栅极电极一体形成。PMOS晶体管P1、P2的栅极电极在Y方向上排列。NMOS晶体管N1、N3的栅极电极在Y方向上排列。NMOS晶体管N2、N4的栅极电极在Y方向上排列。相邻的存储器单元11b与存储器单元11a线对称地(镜像反转状态)配置。

由于存储器单元11a至11f由六个SRAM单元组成,因此减少面积开销变得很重要。由于权重存储器单元11a、11b仅用于控制T节点,因此它们由水平单元(其中两个单元的T节点在相同侧上)配置。然后,由于路径切换存储器单元11c至11f使用T节点和B节点两者,因此它们由垂直单元(其中T节点和B节点在相同侧上)配置。这些配置可以增强布线效率,从而能够减小相应的单元面积。通过同时使用两种类型的SRAM布局(垂直SRAM单元和水平SRAM单元)来配置存储器单元,使得可以提高面积效率。

<向乘积运算存储器单元(ME)写入逻辑值和乘积运算>

回到图5,将描述向乘积运算存储器单元写入逻辑值。

在将逻辑值“+1”写入乘积运算存储器单元10时,在向互补数据线16c提供高水平并且向互补数据线16d提供低水平的状态下,字线17a被设置为高水平。结果,存储器单元11a被选择,存储器单元11a中的传输NMOS晶体管N3、N4变为导通状态,并且低水平被提供到第一反相器电路IV1的输入。结果,存储器单元11a中的锁存电路锁存使节点n3成为高水平状态的状态。

随后,在向互补数据线16d提供高水平并且向互补数据线16c提供低水平的状态下,字线17b被设置为高水平。结果,存储器单元11b被选择,存储器单元11b中的传输NMOS晶体管N3、N4变为导通状态,并且高水平被提供到第一反相器电路IV1的输入。结果,存储器单元11b中的锁存电路锁存使节点n3成为低水平状态的状态。

因此,开关12a、12b变为导通状态,并且开关12i、12j变为关断状态。此外,在逻辑值“1”被写入在存储器单元11c、11e中的条件下,如果提供给输入线15的输入数据(ID)例如处于高水平,则开关12c、12d、12e和12g变为导通状态。因此,开关12e、12c、12a和12g导致形成允许电流从数据线13a流向共用电源线14的电流路径。

尽管已经描述了将逻辑值“+1”写入乘积运算存储器单元10的情况,但是这同样也适用于写入逻辑值“-1”的情况和写入逻辑值“0”的情况。这里,假设逻辑值“1”被写入在存储器单元11d、11f中。在逻辑值“-1”被写入在乘积运算存储器单元10中的情况下,如果输入数据(ID)处于高水平,则开关12m、12k、12i和12o导致形成连接数据线13b和共用电源线14的电流路径。同时,在逻辑值“0”被写入在乘积运算存储器单元10中的情况下,即使输入数据(ID)处于高水平,也不形成连接数据线13a、13b和共用电源线14的电流路径。

<求和运算>

如图2中所示,大量乘积运算存储器单元(ME)10连接到数据线13a、13b。因此,对应于在每个乘积运算存储器单元10中形成的电流路径的数目之和的电流导致流过数据线13a、13b。即,与逻辑值“+1”侧上的乘积运算之和相对应的电流流过数据线13a,并且与逻辑值“-1”侧上的乘积运算之和相对应的电流流过数据线13b。因此,导致逻辑值“+1”侧上的乘积-求和运算的结果被输出到数据线13a,并且导致逻辑值“-1”侧上的乘积-求和运算的结果被输出到数据线13b。因此,通过对数据线13a中的电流与数据线13b中的电流之间的差异进行模拟/数字转换(A/D转换),可以获得乘积-求和运算的预期结果。当然,也可以对流过数据线13a、13b的每个电流进行A/D转换,并且可以获得所得数字信号的差。

乘积运算存储器单元10存储在乘积-求和运算中使用的三个逻辑值“+1”、“0”和“-1”。因此,可以防止在学习和推理中使用的数据被压缩太多,并且可以改进学习和推理的准确性。此外,即使不改变被存储在乘积运算存储器单元10中的逻辑值,改变输入数据(ID)也使得可以执行大量的乘积-求和运算。因此,可以减少数据传输处理的数目。此外,由于通过相应乘积运算存储器单元10从数据线13a、13b汲取电流来实现求和运算,因此可以在一次运算中执行多个求和运算。这使得可以进一步减少数据传输处理的数目并且减少功耗。

<电流源(CS)>

回到图3,将描述电流源(CS)。

由PMOS晶体管P3至P6组成的电流源(CS)102连接到数据线13a、13b的一个集合。PMOS晶体管P3、P6具有其连接在数据线13a和电压(Vd)的电源之间的源极/漏极路径,并且构成用于对数据线13a进行偏置的偏置电路。PMOS晶体管P4、P5具有其连接在数据线13b和电压(Vd)的电源之间的源极/漏极路径,并且构成用于对数据线13b进行偏置的偏置电路。电流经由电流源102被提供给数据线13a、13b。

<共用电源开关(CVSW)>

地电位(Vs)经由图3中所示的共用电源开关(CVSW)103被提供给共用电源线(CVSS)14。共用电源开关103由NMOS晶体管N5组成,并且乘积-求和运算使能信号(MACE)被提供到NMOS晶体管N5的栅极。代替地电位(Vs),可以连接恒流源(CCS)。

<感测放大器(SA)>

此外,数据线13a、13b经由一对传输开关连接到锁存类型的感测放大器(SA)104。该对传输开关由以下项组成:由比较使能信号(CE)控制的NMOS晶体管N7、N8;以及由其反相信号(/CE)控制的PMOS晶体管P7、P8。

此外,感测放大器(SA)104由反相器电路IV3和与其交叉连接的反相器电路IV4组成。PMOS晶体管P7、P8和NMOS晶体管N7、N8通过比较使能信号(CE)及其反相信号(/CE)变为导通状态。因此,经由该对传输开关供电的数据线13a和数据线13b之间的电位差被放大并且被锁存。即,感测放大器104是比较数据线13a的电流值和数据线13b的电流值的比较电路。

感测放大器104的逻辑值“1”或“0”的输出被提供给推理控制电路105。

<推理基准单元(IREF)>

图7是示出图3中所示的推理基准单元的配置示例的图。

推理基准单元20具有与乘积运算存储器单元10的结构类似的结构。两个单元的区别在于,信号线(PL)21a和信号线(NL)21b(向其提供选择信号(PS,NS),而不是存储器单元11a、11b的输出)连接到开关12a、12b、12i、12j。另一个区别在于,连接了向其提供控制信号(CD)的信号线(RL)25,而不是输入线(IL)15。通过使推理基准单元20在结构上类似于乘积运算存储器单元10,推理基准单元20被配置成对数据线13a、13b具有与乘积运算存储器单元10相同的驱动力。推理基准单元20还具有用于切换电流路径的调整功能。

<调整基准单元(TREF)>

图8是示出图3中所示的调整基准单元的配置示例的图。

调整基准单元30具有与乘积运算存储器单元10的结构类似的结构。两个单元的区别在于,选择开关31a、31b被布置在数据线13a与开关12e、12f之间。另一个区别在于,选择开关32a、32b被布置在数据线13b和开关12m、12n之间。又一个区别在于,开关12e、12f、12m和12n连接到共用节点n6。又一个区别在于连接了向其提供控制信号(TCD)的信号线(TL)35,而不是输入线(IL)15。

当提供给信号线33a的选择信号(TPE)处于高水平,并且提供给信号线33b的选择信号(TPEB)处于低水平时,开关31a、31b将开关12e、12f、12m和12n连接到数据线13a。当提供给信号线34a的选择信号(TNE)处于高水平,并且提供给信号线34b的选择信号(TNEB)处于低水平时,开关32a、32b将开关12e、12f、12m和12n连接到数据线13b。

通过使调整基准单元30在结构上类似于乘积运算存储器单元10,调整基准单元30被配置成对数据线13a、13b具有与乘积运算存储器单元10相同的驱动力。

通过使用与乘积运算存储器单元10类似的多个存储器单元,调整基准单元30具有切换电流路径的功能。此外,由于调整基准单元30不用于乘积-求和运算,因此所有六个存储器单元可以用于路径切换。通过提供连接到数据线13a、13b的选择开关31a、31b、32a和32b,可以选择八个电流路径。通过采用允许路径切换的电路配置,可以实现接近乘积运算存储器单元的电流值的电流值。

<微调整单元(FT)>

图9是示出图3中所示的微调整单元的配置示例的图。微调整单元40用于确定电流的幅度。

微调整单元40包括NMOS晶体管N14至N17,并且包括NMOS晶体管N18_1至N18_n。NMOS晶体管N14至N17具有串联连接在数据线13a和13b之间的源极/漏极路径。NMOS晶体管N18_1至N18_n具有串联连接在连接NMOS晶体管N15、N16的节点与共用电源线14之间的源极/漏极路径。向其提供控制信号(FTL)的信号线(FL)41连接到NMOS晶体管N14、N17的栅极电极。然后,向其提供选择信号(FTPS)的信号线(FPL)42a连接到NMOS晶体管N15的栅极。然后,向其提供选择信号(FTNS)的信号线(FNL)42b连接到NMOS晶体管N16的栅极,并且向其提供电源电压(Vd)(或脉冲控制信号)的电源线43连接到NMOS晶体管N18_1至N18_n的栅极。

由于微调整单元具有在多个级中串联连接的NMOS晶体管N18_1至N18_n,因此极少量的电流可以流过由信号线42a、42b选择的数据线13a、13b。可以通过提供多个微调整单元(FT)40(其中串联的级的数目(NMOS晶体管N18_1至N18_n的数目)被改变),来选择多个微小电流值。例如,微小电流值是乘积运算存储器单元10的电流的1%、2%、5%等。顺便提及,微调整单元40还具有其值是乘积运算存储器单元10的电流的50%的单元,以便它也可以用来确定乘积运算存储器单元10和推理基准单元20之间的电流的幅度,这将在稍后被描述。

通过使用一个示例,将参考图7和图10描述存储器单元阵列101中的A/D转换的操作。图10是用于说明A/D转换的图。A/D转换由推理控制电路105控制,并且基于八个步骤被执行。

推理基准单元20由从推理控制电路105输出的八个控制信号(CD[7:0])控制。在图10中所示的示例的情况下,一个基准单元20连接到向其提供控制信号(CD[0])的信号线。两个基准单元20连接到向其提供控制信号(CD[1])的信号线。四个基准单元20连接到向其提供控制信号(CD[2])的信号线。此外,八个基准单元20连接到向其提供控制信号(CD[3])的信号线。十六个基准单元20连接到向其提供控制信号(CD[4])的信号线。三十二个基准单元20连接到向其提供控制信号(CD[5])的信号线。六十四个基准单元20连接到向其提供控制信号(CD[6])的信号线。即,控制信号(CD[6:0])被加权。此外,为了检测1或更小的差异,将驱动力减半的一个基准单元20(在下文中被称为0.5单元)连接到向其提供控制信号(CD[7])的信号线。

作为一个示例,将描述通过乘积-求和运算,“+1”侧上的乘积-求和值为“32”并且“-1”侧上的乘积-求和值为“21”的情况。即,数据线13a上的电流指示乘积-求和值“32”(#PBL=32),并且数据线13b上的电流指示乘积-求和值“21”(#NBL=21)。在该情况下,乘积-求和值之间的差变为“11”。从推理控制电路105的AD转换控制逻辑单元(ADC)105a输出对应于该差的输出数据(MQ[0])。

在第一步骤(第一)处,作为比较电路的感测放大器104将数据线13a、13b的电流进行比较。因为“32”>“21”,因此控制逻辑单元105a输出指示符号“+”的逻辑值“0”,作为输出数据(MQ[0])。此外,由于数据线13a的电流较大,因此控制逻辑单元105a将选择信号(NS)设置为高水平,并且将选择信号(PS)设置为低水平。此外,控制逻辑单元105a使0.5单元处于能够连接到数据线13a的状态,并且使指定数目的推理基准单元20处于能够连接到数据线13b的状态。指定的数目在这里是“64”。在这里,通过将提供给指定推断基准单元20的信号线21b的选择信号(NS)设置到高水平,开关12k、12l变为导通状态,并且共用电源线(CVSS)变为能够经由指定推断基准单元20的开关连接到数据线13b的状态。此外,通过将提供给0.5单元的信号线21a的选择信号(PS)设置到高水平,开关12a、12b变为导通状态,并且共用电源线(CVSS)变为能够经由0.5单元的开关连接到数据线13a的状态。此后,通过将信号线(RL)25设置为高水平,使开关12c、12d、12k和12l变为导通状态,并且共用电源线(CVSS)经由开关连接到数据线。该状态被称为“单元已经连接到数据线”。

在第二步骤(第二)中,控制逻辑单元105a通过信号线(RL)25使0.5单元的开关12c、12d变为导通状态,并且0.5单元连接到数据线13a。控制逻辑单元105a还通过信号线(RL)25使六十四个推理基准单元20的开关12k、12l变为导通状态,并且将六十四个推理基准单元连接到数据线13b。结果,数据线13a上的值变为“32+α”,并且数据线13b上的值变为“21+64=85”。其中α是由0.5单元添加的电流值,并且小于1。感测放大器104将“32+α”和“85”进行比较。作为比较的结果,数据线13b的值增加,使得控制逻辑单元105a输出逻辑值“0”作为输出数据(MQ[0])。

在第三步骤(第三)中,控制逻辑单元105a将作为“64”的一半的“32”指定为指定数目,并且通过提供给信号线25的控制信号(CD)使开关12k、12l处于导通状态。因此,数据线13a的值与之前一样是“32+α”,但是数据线13b的值变为“21+32=53”。由于感测放大器104的比较确定数据线13b的值大,因此控制逻辑单元105a输出逻辑值“0”作为输出数据(MQ[0])。

在第四步骤(第四)中,控制逻辑单元105a指定“16”作为推理基准单元20的数目。因此,数据线13a的值与之前一样是“32+α”,但是数据线13b的值变为“21+16=37”。由于感测放大器104的比较确定数据线13b的值大,因此控制逻辑单元105a输出逻辑值“0”作为输出数据(MQ[0])。

同样在第五步骤(第五)中,与第四步骤(第四)中一样,控制逻辑单元105a指定推理基准单元20的数目,并且将控制信号(CD)输出到信号线25。然而,在第五步骤(第五)中,控制逻辑单元105a将作为第四步骤的情况的一半的“8”指定为推理基准单元20的数目。因此,感测放大器104将数据线13a上的值“32+α”与数据线13b上的值“21+8=29”进行比较。在第五步骤(第五)中,数据线13a的值变得大于数据线13b的值,使得控制逻辑单元105a输出逻辑值“1”作为输出数据(MQ[0])。

在第五步骤(第五)中,数据线13b上的值被加“8”,但数据线13a的值变得比数据线13b上的值大。在第六步骤(第六)中,控制逻辑单元105a指定“8+4=12”作为推理基准单元20的数目。因此,数据线13a的值与之前一样是“32+α”,但是数据线13b的值变为“21+12=33”。由于感测放大器104的比较确定数据线13b的值较大,因此控制逻辑单元105a输出逻辑值“0”作为输出数据(MQ[0])。

在第七步骤(第七)中,控制逻辑单元105a指定“8+2=10”作为推理基准单元20的数目。因此,数据线13a的值与之前一样是“32+α”,但是数据线13b的值变为“21+10=31”。由于感测放大器104的比较确定数据线13a的值大于数据线13b的值,因此控制逻辑单元105a输出逻辑值“1”作为输出数据(MQ[0])。

在第七步骤(第七)中,数据线13b上的值被加“8+2”,但数据线13a上的值变得比数据线13b上的值大。在第八步骤(第八)中,控制逻辑单元105a指定“8+2+1=11”作为推理基准单元20的数目。因此,数据线13a的值与之前一样是“32+α”,但是数据线13b的值变为“21+11=32”。由于感测放大器104的比较确定数据线13a的值大于数据线13b的值,因此控制逻辑单元105a输出逻辑值“1”作为输出数据(MQ[0])。

如上所述,在改变推理基准单元20的指定数目时,对数据线13a、13b的电流值进行比较。通过比较,当数据线13a的值大于数据线13b的值时,控制逻辑单元105a输出逻辑值“1”作为输出数据(MQ[0])。然后,当数据线13b的值大于数据线13a的值时,控制逻辑单元105a输出逻辑值“0”作为输出数据(MQ[0])。

因此,乘积-求和运算的结果被转换为串行8位。顺便提及,第一位是符号位,并且在符号位之后,从最高有效位到最低有效位依次输出位。在图10中所示的示例中,作为AD转换结果的输出(Output)是0b0000_1011=11(=32-21)。

因此,通过使用二分法,搜索了数据线13a、13b的电流之间的差异,并且其结果被转换为串行数字信号并且被输出。当图10中所示的输出数据(MQ[0])的数据长度达到用户所需的数据长度时,可以终止处理。这使得可以减少无用A/D转换所需的功率和时间。

基准单元的电流被添加到电流较小的数据线的电流,并且通过使用二分法进行比较,使得当要连接到数据线的乘积运算存储器单元的数目较大时,乘积运算存储器单元的电流的变化被叠加,并且生成更高水平的误差。这将参考图11进行描述。图11是用于说明在误差出现时的A/D转换的图。

如在图10中所示的情况中,将描述通过乘积-求和运算,“+1”侧上的乘积-求和值为“32”,并且“-1”侧上的乘积-求和值为“21”的情况。由于存储器单元电流的变化,数据线13a的值如向右箭头“→”所指示的减小β,并且数据线13b的值如向左箭头“←”所指示的增加γ。即,数据线13a的值变为“32-β”,并且数据线13b的值变为“21+γ”。

在图11中所示的示例中,直到第四步骤(第四)才出现存储器单元电流的变化的影响。第一步骤至第四步骤与图10中所示的情况相同。

在第五步骤(第五)中,控制逻辑单元105a指定“8”作为推理基准单元20的数目。因此,数据线13b的值变为“21+γ+8=29+γ”。数据线13a的值为“32+α-β”。这里,例如,假设0<α<1,β=4并且γ=3,则数据线13a上的值“32+α-β”变为“28+α”,并且数据线13b的值“29+γ”变为“32”。由于0<α<1,因此感测放大器104的比较确定数据线13b的值较大。因此,控制逻辑单元105a输出逻辑值“0”作为输出数据(MQ[0])。

同样在第六步骤(第六)中,推理基准单元20的数目被指定为“4”,即第五步骤的情况的一半。因此,数据线13b的值变为“21+γ+4=25+γ”。数据线13a上的值为“32+α-β”。由于β=4并且γ=3,因此数据线13a上的值“32+α-β”变为“28+α”,并且数据线13b上的值“25+γ”变为“28”。由于0<α<1,因此感测放大器104的比较确定数据线13a的值变得大于数据线13b的值。因此,控制逻辑单元105a输出逻辑值“1”作为输出数据(MQ[0])。

在第七步骤(第七)中,控制逻辑单元105a将“4+2=6”指定为推理基准单元20的数目。因此,数据线13a的值与之前一样是“32+α-β”,但数据线13b的值变为“21+γ+6=27+γ”。由于β=4并且γ=3,因此数据线13a的值“32+α-β”变为“28+α”,并且数据线13b的值“27+γ”变为“30”。由于0<α<1,因此感测放大器104的比较确定数据线13b的值较大。因此,控制逻辑单元105a输出逻辑值“0”作为输出数据(MQ[0])。

在第八步骤(第八)中,控制逻辑单元105a将“4+1=5”指定为推理基准单元20的数目。因此,数据线13a的值与之前一样是“32+α-β”,但数据线13b的值变为“21+γ+5=26+γ”。由于β=4并且γ=3,因此数据线13a的值“32+α-β”变为“28+α”,并且数据线13b的值“26+γ”变为“29”。由于0<α<1,因此感测放大器104的比较确定数据线13b的值较大。因此,控制逻辑单元105a输出逻辑值“0”作为输出数据(MQ[0])。

在图11中所示的示例中,作为AD转换的结果的输出(Output)变为0b0000_0100=4,其与正常值“32–21=11”不同,并且误差出现。

<调整操作>

将参考图12A、图12B以及图13至图15描述对乘积运算存储器单元10和推理基准单元20的电流调整,该电流调整使用调整基准单元30和微调整单元40。

图12A是用于说明乘积运算存储器单元与调整基准单元之间的电流比较的图。图12B是用于说明电流比较的图,其中向乘积运算存储器单元和调整基准单元添加了微调整单元。图12A和图12B示出了多个示例,在多个示例中的每个示例中,乘积运算存储器单元(ME[N:0])10的数目是(N+1),并且推理基准单元(IREF[M:0])20的数目是(M+1)。这里,N和M是自然数。图13是示出乘积运算存储器单元(ME[0])的电流路径的图。图14是示出调整基准单元的电流路径的图。图15是示出微调整单元的电流路径的图。

(步骤0)

逻辑值“0”被写入到乘积运算存储器单元10和推理基准单元20的所有传递选择存储器单元11c至11f中,以执行初始化。

(步骤1)

选择一个乘积存储器单元10或推理基准单元20,并且选择由权重存储器单元11a、11b连接的数据线13a或数据线13b。作为一个示例,如图12A中所示,乘积运算存储器单元(ME[0])被选择。此外,如图13中所示,在权重存储器单元11a中写入逻辑值“1”,在存储器单元11b中写入逻辑值“0”,并且连接数据线13a。由于在存储器单元11c至11f中写入了逻辑值“0”,因此形成了如由图13中的粗实线所指示的电流路径。

(步骤2)

通过将调整基准单元30连接在数据线的一侧上来执行比较操作,该数据线与作为调整目标单元的乘积运算存储器单元10或推理基准单元20连接到的数据线不同。此时,通过控制信号(FTL),将微调整单元40设置为不连接到数据线13a、13b中的任一个数据线。连接到数据线13a、13b的感测放大器104确定数据线13a的电流值的幅度和数据线13b的电流值的幅度,并且感测放大器104的输出被存储在寄存器中。

由于在步骤1中选择了乘积运算存储器单元10的数据线13a,因此在调整基准单元30中选择数据线13b。即,选择信号(TNE)、(TPEB)被设置为高水平,选择信号(TNEB)、(TPE)被设置为低水平,并且连接数据线13b。如图14中所示,例如,逻辑值“0”被写入到存储器单元11a中,并且逻辑值“1”被写入到存储器单元11b中。由于在存储器单元11c至11f中写入了逻辑值“0”,因此形成了如由图14中的粗实线所指示的电流路径。

(步骤3)

在步骤2中的第一比较结果的情况下,在微调整单元40连接在具有较小电流的数据线的一侧上时,再次执行比较操作。当调整基准单元30和乘积运算存储器单元10的电流值非常接近时,对微调整单元40添加电流会改变比较结果,因此该改变的检测确定调整基准单元30和乘积运算存储器单元10彼此匹配。

图12B示出了流过数据线13b的电流较小并且在微调整单元40中选择数据线13b的情况。即,控制信号(FTL)和选择信号(FTNS)被设置为高水平,数据线13b被连接,并且形成如由图15中的粗实线指示的电流路径。

(步骤4)

如果乘积运算存储器单元10的电流和调整基准单元30的电流匹配,则该步骤进行到下一个单元,以执行步骤1之后的调整。如果它们不匹配,则写入在传递选择存储器单元11c至11f中的逻辑值被改变,以切换对应单元中的路径,并且步骤2之后的操作被重复。搜索乘积运算存储器单元10的具有与调整基准单元30的电流匹配的电流的电流路径。如果即使在搜索步骤1中选择的乘积运算存储器单元10或推理基准单元20的所有电流路径之后,也不存在与调整基准单元30的电流匹配的电流,则改变调整基准单元30的存储器单元11a至11f的逻辑值,以切换调整基准单元中的电流路径,并且重做在步骤0之后的所有乘积运算存储器单元10和推理基准单元20的路径选择。

以该方式,可以参考一个调整基准单元的电流路径,来调整所有乘积运算存储器单元(ME[N:0])和推理基准单元(IREF[M:0])的电流。

根据实施例,可以获得以下优点中的一个或多个优点。

(1)传递切换使得可以改变乘积运算存储器单元和推理基准单元的特性值。

(2)乘积运算存储器单元和推理基准单元的特性值可以由作为数据保持电路的存储器单元来维持。

(3)可以减少乘积运算存储器单元的电流的变化,以便可以防止推理期间的故障。

(4)执行周期性调整使得可以防止由于晶体管的时间降级引起的故障。

(5)由于可以调整操作条件以便适应诸如温度的使用环境,因此可以改进可靠性。

<修改示例>

下面将说明实施例的一些代表性修改示例。在以下修改示例的描述中,假设与上述实施例中的附图标记相同的附图标记可以用于与上述实施例中描述的那些部分具有相同配置和功能的部分。然后,假设这些部分的描述在技术一致的范围内可以适当地使用上述实施例中的描述。此外,上述实施例的一部分和多个修改示例的全部或一部分可以在技术一致的范围内被适当组合应用。

(第一修改示例)

图16是示出第一修改示例中的乘积运算存储器单元10的配置的电路图。第一修改示例中的乘积运算存储器单元10是适于电容感测以使用电容来执行AD转换(通过使用电压(容量)来执行求和运算)的单元的示例。

第一修改示例中的乘积运算存储器单元10具有:四个存储器单元(MC)11a、11b、11e、11f;对应于存储器单元11a、11b的开关12a、12i;以及基于提供到输入线(IL)的输入数据(ID)而被控制的开关12c、12k。乘积运算存储器单元10还包括:对应于存储器单元11e、11f的开关12g、12o;主电容元件18a;以及对应于存储器单元11e、11f的调整电容元件18b、18c。假设主电容元件18a的电容值为Ca,电容元件18b的电容值为Cb,并且电容元件18c的电容值为Cc,其中Cb、Cc<

如参考图4所描述的,存储器单元11a用于在乘积运算存储器单元10中存储逻辑值“+1”,并且存储器单元11b用于在乘积运算存储器单元10中存储逻辑值“-1”。存储器单元11a的输出被提供给开关12a。存储器单元11b的输出被提供给开关12i。存储器单元11e的输出被提供给开关12g。存储器单元11f的输出被提供给开关12o。输入数据(ID)被提供给开关12c。输入数据(ID)被提供给开关12k。

作为开关12a和12f之间的连接点的节点n5连接到主电容元件18a的一个电极。节点n5经由开关12g连接到电容元件18b的一个电极,并且节点n5经由开关12o连接到电容元件18c的一个电极。共用电源线(CVSS)连接到主电容元件18a、电容元件18b和电容元件18c的其他电极。节点n5经由开关12a、12c连接到数据线13a,并且经由开关12i、12k连接到数据线13b。向其提供电源电压(Vd)的预充电电路(未示出)连接到共用电源线14。向其提供电源电压(Vd)的预充电电路(未示出)也连接到数据线13a、13b。

当输入数据(ID)处于低水平时,开关12c、12k变为关断状态,并且主电容元件18a的一个电极与数据线13a和数据线(NBL)13b电分离。

接下来,当输入数据(ID)变为高水平时,开关12c、12k变为导通状态,以便能够将数据线13a、13b电连接到主电容元件18a的一个电极。当逻辑值“1”被存储在存储器单元11a中并且开关12a变为导通状态时,主电容元件18a连接到数据线13a。因此,电荷在数据线13a的寄生电容19a等与主电容元件18a之间分散,并且数据线13a的电压被确定。当逻辑值“1”被存储在存储器单元11b中并且开关12i变为导通状态时,主电容元件18a连接到数据线13b。因此,数据线13b的电压由主电容元件18a与数据线13b的寄生电容19b等之间的电荷分散确定。

接下来,将描述乘法运算存储器单元10中的乘法运算的结果变为“0”、“+1”和“-1”的情况。

当输入数据(ID)为“0”或当在存储器单元11a、11b两者中存储的数据为“0”时,乘积运算的结果变为“0”。此时,开关12c、12k被设置为关断状态,或者开关12a、12i被设置为关断状态。因此,主电容元件18a被数据线13a、13b屏蔽。

另一方面,当输入数据(ID)为“1”,在存储器单元11a中存储的数据为“1”,并且在存储器单元11b中存储的数据为“0”时,乘积运算的结果变为“+1”。此时,开关12c、12k被设置为导通状态,开关12a被设置为导通状态,并且开关12i被设置为关断状态。因此,主电容元件18a连接到数据线13a并且被数据线13b屏蔽。

当输入数据(ID)为“1”,存储器单元11a中存储的数据为“0”,并且存储器单元11b中存储的数据为“1”时,乘积运算的结果变为“-1”。此时,开关12c、12k被设置为导通状态,开关12a被设置为关断状态,并且开关12i被设置为导通状态。因此,主电容元件18a被数据线13a屏蔽,并且连接到数据线13b。

多个乘积运算存储器单元10连接到数据线13a、13b。因此,充电到连接到数据线13a的电源电压(Vd)的主电容元件18a的数目与充电到连接到数据线13b的电源电压(Vd)的主电容元件18a的数目之间的差变为乘积-求和结果。在该情况下,由于没有电流流过,因此做出处于高阻抗(Hi-Z)的确定。在推理时,通过使用与数据线13a的寄生电容19a和数据线13b的寄生电容19b导通的乘积运算存储器单元10的电容,来执行乘积-求和运算。具体地,数据线13a和数据线13b之间的电压的差变为乘积-求和结果。

为了调整连接到数据线13a、13b的主电容元件18a的电容的变化,调整电容元件18b、18c被连接到主电容元件18a,并且通过路径切换配置适当的合成容量。该配置使得可以以四种方式切换数据线13a、13b的电容。下面将给出具体描述。

当逻辑值“0”被存储在存储器单元11e中,并且逻辑值“0”被存储在存储器单元11f中时,开关12g、12o被设置为关断状态。因此,主电容元件18a的仅一个电极连接到节点n5。

当逻辑值“1”被存储在存储器单元11e中,并且逻辑值“0”被存储在存储器单元11f中时,开关12g被设置为导通状态并且开关12o被设置为关断状态。因此,主电容元件18a的一个电极和电容元件18b的一个电极连接到节点n5。

当逻辑值“0”被存储在存储器单元11e中,并且逻辑值“1”被存储在存储器单元11f中时,开关12g被设置为关断状态并且开关12o被设置为导通状态。因此,主电容元件18a的一个电极和电容元件18c的一个电极连接到节点n5。

当逻辑值“1”被存储在存储器单元11e中,并且逻辑值“1”被存储在存储器单元11f中时,开关12g被设置为导通状态并且开关12o被设置为导通状态。因此,主电容元件18a的一个电极、电容元件18b的一个电极和电容元件18c的一个电极连接到节点n5。

虽然在该修改示例中使用容量确定,但是可以如在实施例中那样改变特性值,并且可以由存储器单元维持该值。此外,通过调整功能将连接到相同数据线的多个乘积运算存储器单元的特性调整为基准值,使得可以防止推理期间的故障。

(第二修改示例)

图17是示出第二修改示例的乘积运算存储器单元的配置的图。

在实施例中,一个权重存储器单元11a被布置在数据线13a侧上,并且一个权重存储器单元11b被布置在数据线13b侧上。另一方面,在第二修改示例中,多个权重存储器单元被布置在数据线13a侧和数据线13b侧中的每个数据线侧上。

四个权重存储器单元11a0至11a3被布置在数据线13a侧上,并且它们的相应输出被提供给四个与电路AN0至AN3。列选择信号线WS0至WS3分别被提供给与电路AN0至AN3。与电路AN0至AN3执行逻辑乘积,并且它们的输出被输出到或电路OR1。或电路OR1执行逻辑求和,并且其输出被输出到与电路AN4。输入数据(ID)通过输入线15被提供给与电路AN4。与电路AN4执行逻辑乘积,并且其输出被提供给开关12a、12b。

四个权重存储器单元11b0至11b3被布置在数据线13b侧上,并且它们的相应输出被提供给四个与电路AN5至AN8。列选择信号线WS0至WS3分别被提供给与电路AN5至AN8。与电路AN5至AN8执行逻辑乘积,并且它们的输出被输出到或电路OR2。或电路OR2执行逻辑求和,并且其输出被输出到与电路AN9。输入数据(ID)通过输入线15被提供给与电路AN9。与电路AN9执行逻辑乘积,并且其输出被提供给开关12i、12j。

例如,当通过将列选择信号线WS0设置为高水平来选择存储器单元11a0、11b0时,在被存储在存储器单元11a0、11b0中的逻辑值与输入数据(ID)的逻辑值之间执行乘积运算。然后,在乘积运算的结果、数据线13a的电流值和数据线13b的电流值之中执行求和运算。顺便提及,此时,列选择信号线WS1至WS3被保持在低水平,以便存储器单元11a1至11a3和11b1至11b3不被选择。

由于多个权重存储器单元被布置成可以选择列,因此可以调整权重存储器单元的位宽。在该情况下,可以大大减少面积。

(第三修改示例)

图18是示出第三修改示例中的乘积运算存储器单元的配置的图。

在根据第三修改示例中的乘积运算存储器单元10中,使用来自布置在存储器阵列101外部的SRAM宏的多个权重布线PW、NW,来代替根据实施例的乘积运算存储器单元10中的权重存储器单元11a、11b。数据线13a侧上的多个权重布线PW中的一个权重布线PW连接到形成开关12a、12b的NMOS晶体管的栅极。然后,数据线13b侧上的多个权重布线NW中的一个权重布线NW连接到形成开关12i、12j的NMOS晶体管的栅极。与存储器阵列101中包括的乘积运算存储器单元10的数目相对应地提供权重布线PW、NW的数目,并且通过向多个乘积运算存储器单元10同时输入权重数据来执行运算。例如,权重布线PW的数目和权重布线NW的数目分别是32。

在面积方面,将权重数据保持在乘积运算存储器单元外部的SRAM宏中并且直接从该SRAM存储器提供权重数据,而不是像在实施例中那样使权重存储器单元在乘积运算存储器单元内部是有利的。

(第四修改示例)

图19是示出第四修改示例中的调整基准单元的配置的图。

实施例中的调整基准单元30在单元内具有在数据线13a侧上的选择开关31a、31b,并且具有在数据线13b侧上的选择开关32a、32b。因此,配置与乘积运算存储器单元10的配置不完全相同,并且恒定电流值的偏差出现。

第四修改示例中的调整基准单元30被配置成:将两个:P侧调整基准单元30a和N侧调整基准单元30b分别分开连接到数据线13a、13b。这使得可以使调整基准单元30的电流值更接近乘积运算存储器单元10的电流值,并且可以执行比实施例中的更精确的乘积-求和运算。可以防止推理期间的故障。顺便提及,乘积运算存储器单元10的调整在P侧调整基准单元30a和N侧调整基准单元30b相互调整之后开始。

(第五修改示例)

图20是示出第五修改示例中的存储器单元阵列的配置的图。图21是示出实施例中的数据线和共用电源线上的电压的图。图22是示出第五修改示例中的数据线和共用电源线上的电压的图。图21和图22的图的每个横轴是时间(TIME),并且每个纵轴是电压(VOLTAGE)。

实施例中的共用电源开关103由一个开关组成。第五修改示例中的共用电源开关103由并联连接的多个开关103a、103b组成。多个开关103a和103b由具有不同驱动功率的NMOS晶体管组成。开关103a、103b经由开关SWa、SWb连接到共用电源线14。

在调整时,诸如乘积运算存储器单元和推理基准单元的单元中的仅一个单元始终导通,并且数据线13a或数据线13b被放电。由于在实际推理期间导通单元的数目针对每个运算不同,因此共用电源线(CVSS)的电位不同。如图21中所示,在推理(IS)期间导通单元的数目较少的情况下的共用电源线(CVSS)的电位,与调整(TU)期间的共用电源线(CVSS)的电位之间的差异较小。在推理(IM)期间导通单元的数目较大的情况下的共用电源线(CVSS)的电位,与调整(TU)期间的共用电源线(CVSS)的电位之间的差异较大。因此,即使电流在调整期间被对齐,电流值也可能偏离,具体取决于在推理期间如何施加主体偏置。

例如,在推理期间,开关SWa被设置为导通状态,开关SWb被设置为关断状态,并且开关103a被使用。在调整期间,开关SWa被设置为关断状态,开关SWb被设置为导通状态,并且开关103b被使用。形成开关103b的NMOS晶体管的栅极宽度被设置为小于形成开关103a的NMOS晶体管的栅极宽度。

当导通单元的数目较大时,准确性往往会下降。因此,如图22中所示,使用开关103b,以便减小在推理(IM)期间导通单元的数目较大的情况下的共用电源线(CVSS)的电位与调整(TU)期间的共用电源线(CVSS)的电位之间的差异。顺便提及,在推理(IS)期间导通单元的数目较少的情况下的共用电源线(CVSS)的电位与调整(TU)期间的共用电源线(CVSS)的电位之间的差异较大,但在导通单元的数目较少的情况下,对准确性的影响较小。

在调整期间使用不同尺寸的共用电源开关,并且再现了在导通单元的数目较大的情况中的推理期间的情况。因此,可以防止推理期间的故障。

(第六修改示例)

图23是示出第六修改示例中的乘积运算存储器单元的配置的图。图23中的图的横轴是时间(TIME),并且纵轴是电压(VOLTAGE)。

SRAM存储器具有正常操作模式(NO_M)和恢复待机(Resume Standby:RS)模式(RS_M)作为操作模式。正常操作模式是用于执行数据读取和数据写入的操作模式。RS模式是用于在通过将电源电压缩窄到不丢失数据的程度来保持数据的状态下减小功耗的操作模式。通过将存储器阵列的接地布线的电位设置为高于地电位(0V)的电位(电源电位和地电位之间的电位),来缩窄电源电压。

在实施例中,地电位(Vs)被提供给形成存储器单元11a至11f的SRAM存储器的NMOS晶体管N1、N2的源极,并且在正常模式下执行推理操作。在该修改示例中,在RS模式中执行推理操作(MAC)。

电流源CSm连接到节点n5,形成该修改示例中的存储器单元11a至11f的SRAM存储器的NMOS晶体管N1、N2的源极连接到节点n5。在RS模式中,电流源CSm的驱动功率被降低,以使节点n5的电位高于地电位(Vs),并且改变源极偏置。这使得可以减少形成存储器单元11a至11f的MOS晶体管的关断状态的亚阈值泄漏电流。

在连接到节点n3、n4(其保持存储器单元11a至11f的互补数据(T,B))的NMOS晶体管的栅极中,高水平(H)侧不受影响,并且低水平(L)侧通过保持被屏蔽而不影响推理,使得可以减少泄漏功率。这将在下面进行说明。

例如,在存储器单元11e中,保持互补数据(T)的节点n3在高水平侧上,并且保持互补数据(B)的节点n4在低水平侧上。即使在从正常操作模式变为RS模式时,节点n3也维持高水平(H)电位,并且形成开关12g的NMOS晶体管的栅极的电位被维持,使得单元电流(IC)不受影响。当节点n4进入RS模式时,低水平(L)电位上升,但由于形成开关12h的NMOS晶体管保持被屏蔽,因此不存在由于泄漏电流(IL)引起的推理影响。

如上所述,已经基于实施例具体描述了本申请的发明人所做出的公开,但是本公开不限于上述实施例,并且不用说,可以在不脱离其范围的范围内进行各种修改。

技术分类

06120116212704