CN110383282A - 用于混合信号计算的***和方法 - Google Patents
用于混合信号计算的***和方法 Download PDFInfo
- Publication number
- CN110383282A CN110383282A CN201880010267.5A CN201880010267A CN110383282A CN 110383282 A CN110383282 A CN 110383282A CN 201880010267 A CN201880010267 A CN 201880010267A CN 110383282 A CN110383282 A CN 110383282A
- Authority
- CN
- China
- Prior art keywords
- current
- summing junction
- electric current
- circuit
- difference
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000005611 electricity Effects 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 15
- 230000008859 change Effects 0.000 claims description 10
- 238000007667 floating Methods 0.000 claims description 9
- 238000010801 machine learning Methods 0.000 claims description 6
- 238000003860 storage Methods 0.000 claims description 5
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 230000003993 interaction Effects 0.000 claims description 3
- 230000008929 regeneration Effects 0.000 claims 1
- 238000011069 regeneration method Methods 0.000 claims 1
- 230000004913 activation Effects 0.000 abstract description 6
- 238000003062 neural network model Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 11
- 238000012549 training Methods 0.000 description 8
- 238000013473 artificial intelligence Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 229910002056 binary alloy Inorganic materials 0.000 description 5
- 230000015654 memory Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 239000003990 capacitor Substances 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 229910044991 metal oxide Inorganic materials 0.000 description 2
- 150000004706 metal oxides Chemical class 0.000 description 2
- 210000005036 nerve Anatomy 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001172 regenerating effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- WCUXLLCKKVVCTQ-UHFFFAOYSA-M Potassium chloride Chemical compound [Cl-].[K+] WCUXLLCKKVVCTQ-UHFFFAOYSA-M 0.000 description 1
- 241000625014 Vir Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000005138 cryopreservation Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 229910052738 indium Inorganic materials 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000001459 lithography Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000036651 mood Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000819 phase cycle Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06G—ANALOGUE COMPUTERS
- G06G7/00—Devices in which the computing operation is performed by varying electric or magnetic quantities
- G06G7/12—Arrangements for performing computing operations, e.g. operational amplifiers
- G06G7/14—Arrangements for performing computing operations, e.g. operational amplifiers for addition or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06J—HYBRID COMPUTING ARRANGEMENTS
- G06J1/00—Hybrid computing arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K5/22—Circuits having more than one input and one output for comparing pulses or pulse trains with each other according to input signal characteristics, e.g. slope, integral
- H03K5/24—Circuits having more than one input and one output for comparing pulses or pulse trains with each other according to input signal characteristics, e.g. slope, integral the characteristic being amplitude
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Computer Hardware Design (AREA)
- Automation & Control Theory (AREA)
- Fuzzy Systems (AREA)
- Logic Circuits (AREA)
- Analogue/Digital Conversion (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
提供了用于执行加权求和计算的集成电路和方法。该电路包括:相互连接并成对布置的多个电流发生器、正求和节点、负求和节点和输入生成电路。对于每对电流发生器,每个元件的控制端子电连接至输入节点。电流发生器中的一个的漏极连接至正求和节点,而另一个电流发生元件的漏极连接至负求和节点。两个电流发生器上的剩余端子连接至可以是共享的参考。当出现下述情况:输入节点处于激活电压并且两个求和节点处于预定的目标电压时,每对电流发生器向两个求和节点提供预定量的电流。
Description
相关申请的交叉引用
本申请要求于2017年2月7日提交的美国临时申请第62/455,703号的权益。以上申请的全部公开内容通过引用并入本文中。
政府条款
本发明是根据空军研究实验室授予的合同第FA8650-14-C-1805号在政府的支持下完成的。政府对本发明具有特定的权利。
技术领域
本文中的公开内容通常涉及集成电路架构领域,并且更具体地涉及集成电路架构领域中的新的且有用的混合信号集成电路和混合信号计算方法。
背景技术
当今,人工智能和机器学习的各种实现正在推动许多技术领域的创新。人工智能(AI)***和人工智能模型(包括算法)由实现机器(例如,计算机和/或计算服务器)的机器学习(深度学习)、论证、推理能力以及大数据处理能力的许多***架构和模型限定。这些AI***和模型通常被集中训练,以执行一个或更多个特定任务,例如自然语言处理、图像识别、计划、决策等。例如,这些AI***和模型的子集包括人工神经网络模型。在许多情况下,训练人工神经网络模型可能需要在整个训练周期内数千小时和许多兆兆字节的训练数据,以在使用前对模型的相关联的神经网络算法进行微调。
然而,一旦经过训练,就可以基于在与训练周期期间所使用的较大的训练数据集相比时相对较小的数据集对神经网络模型或算法进行快速部署来进行推理,以完成特定任务(例如,根据语音输入数据等识别语音)。基于较小数据集由神经网络模型或算法做出的推理可以是关于神经网络模型计算出什么是正确答案的预测或关于情况的指示。
尽管如此,虽然实现一个或更多个神经网络算法的神经网络模型可能不需要如在训练阶段中所需的相同量的计算资源,但是在现场部署神经网络模型仍然需要大量的电路区域、能量以及计算能力,以对数据进行分类并推断或预测结果。例如,加权求和计算通常用于包括神经网络应用的模式匹配和机器学习应用中。在加权求和计算中,集成电路可以用于将输入(xi)的集合乘以加权(wi)的集合,并对每个乘法运算的结果求和,以计算最终结果(z)。然而,针对机器学习应用的典型加权求和计算包括数百或数千个加权,这使得利用传统数字电路计算加权求和计算在计算上成本高。具体地,从数字存储器访问数百或数千个加权需要大量的计算时间(即,增加的延迟)和大量的能量。
因此,用于计算神经网络模型等的加权求和计算所需的传统数字电路往往很大,以容纳存储神经网络模型所需的数十万个加权所需的大量数字存储器电路。由于电路的大尺寸,因此需要更多的能量来实现许多传统计算机和电路的计算能力。
另外,这些用于实现人工智能模型和即神经网络模型的传统计算机和电路可以适用于远程计算过程,例如在分布式计算***(例如,云)中,或者当使用许多现场计算服务器时等。然而,当这些远程人工智能处理***用于远程、边缘计算装置或现场装置的计算推理等时,延迟问题是明显的。也就是说,当这些传统的远程***试图实现用于生成要在远程现场装置中使用的推理的神经网络模型时,因为输入数据通常必须通过具有不同带宽的网络传输并且随后由远程计算***生成的推理必须经由相同或类似的网络传输回远程现场装置,因此在从远程现场装置接收输入数据时存在不可避免的延迟。
在现场级(例如,在远程现场装置处本地地)实现AI处理***可以是解决一些延迟问题的建议解决方案。然而,尝试在边缘装置(例如,远程现场装置)处实现这些传统AI计算机和***中的一些可能导致如上所述的具有许多电路的笨重***,该笨重***由于在处理数据和生成推理中所使用的计算***的所需复杂架构而消耗大量能量。因此,在没有更多建议的情况下这种建议可能是不可行的并且/或对当前技术不是可持续的。
因此,存在对用于在现场本地地实现人工智能模型(例如,本地AI)并且优选地用于边缘装置的可部署***的需要,该可部署***不会导致大且笨重(边缘)装置、减少延迟并且具有必要的计算能力以进行实时或基本实时地预测或推理,同时还具有高能效。
本申请的下述实施方式提供了这样的先进和改进的集成电路和实现技术,其能够解决用于实现AI和机器学习的传统***和集成电路架构的缺点。
发明内容
本节提供了对本公开内容的总体概述,而这并非是对本公开内容的全部范围或其所有特征的全面公开。
在一个实施方式中,一种用于计算加权求和计算的混合信号电路包括:成对布置的多个可编程电流源,每对可编程电流源中的第一可编程电流源被配置成存储指示正加权的值,并且每对可编程电流源中的第二可编程电流源被配置成存储指示负加权的值,每个可编程电流源具有输入和输出端子,使得第一可编程电流源的输出端子在正求和节点处电耦接在一起,并且第二可编程电流源的输出端子在负求和节点处电耦接在一起;差分电流电路,电耦接至正求和节点和负求和节点,并且差分电流电路操作成向正求和节点和负求和节点中的每一个提供电流,其中,提供至正求和节点的电流与提供至负求和节点的电流呈现出差;以及控制器,控制器与差分电流电路和比较电路接口,其中,控制器与差分电流电路相互作用,以改变提供至正求和节点的电流与提供至负求和节点的电流之间的差的大小。
在一个实施方式中,混合信号电路的控制器接收由比较电路输出的信号,并且响应于指示在正求和节点处的电压和在负求和节点处的电压相等的信号,对提供至正求和节点的电流与提供至负求和节点的电流之间的差进行记录。
在一个实施方式中,混合信号电路的控制器与差分电流电路相互作用,以扫描在值范围中的差的大小,其中,值范围被限定在最大负值与最大正值之间。
在一个实施方式中,混合信号电路还包括电耦接至正求和节点和负求和节点的共模电流电路,其中,共模电流电路确定在正求和节点处的电压和在负求和节点处的电压的平均值,并且向正求和节点和负求和节点中的每一个提供电流,使得平均值维持在目标电压处并且提供至正求和节点的电流和提供至负求和节点的电流大小相等。
在一个实施方式中,混合信号电路的每个可编程电流还被限定为一个或更多个浮栅晶体管,使得一个或更多个浮栅晶体管的控制端子电耦接至输入电路,一个或更多个浮栅晶体管的漏极端子电耦接至相应的求和节点,并且一个或更多个浮栅晶体管的源极端子电耦接至地。
在一个实施方式中,每个可编程电流源还被限定为忆阻器。
在一个实施方式中,混合信号电路的比较电路包括运算放大器或再生锁存器(或再生放大器)。
在一个实施方式中,混合信号电路还包括电耦接在正求和节点与负求和节点之间的电阻器。
在一个实施方式中,集成电路包括:多个成对电流源,其中,多个成对电流源中的每一对的第一电流源和第二电流源被布置成电连通,其中,第一电流源和第二电流源中的每一个包括漏极端子和源极端子;其中,多个成对电流源中的每一对包括被布置成与输入节点电连通的控制端子;一对电流求和节点,包括第一电流求和节点和第二电流求和节点,其中:多个成对电流源中的每一对的第一电流源和第二电流源中的每一个电流源的源极端子连接至地;多个成对电流源中的每一对的第一电流源的漏极端子被布置成与第一电流求和节点电连通,并且多个成对电流源中的每一对的第二电流源的漏极端子被布置成与第二电流求和节点电连通;差分电流电路,包括差分电流控制器和两个差分电流源,其中,差分电流控制器与两个差分电流源可操作地控制连通,其中,两个差分电流源中的每个差分电流源被布置成与第一电流求和节点和第二电流求和节点中的一个电连通;共模电流电路,包括共模电流控制器和两个公共电流源,其中,共模电流控制器与两个公共电流源可操作地控制连通,其中,两个公共电流源中的每个公共电流源被布置成与第一电流求和节点和第二电流求和节点中的一个电连通;以及比较器电路,比较器电路与第一电流求和节点的端子端部和第二电流求和节点的端子端部电连通。
在一个实施方式中,集成电路的输入节点向多个成对电流源中的每一对的控制端子提供电压输入信号;并且响应于电压输入信号,多个成对电流源中的每一对产生两个差分电流,其中,由多个成对电流源中的每一对产生的两个差分电流之间的差值不同,并且其中,多个成对电流源中的每一对的两个差分电流中的每个差分电流被提供至第一求和节点和第二求和节点中的一个。
在一个实施方式中,集成电路的共模电流电路识别第一电流求和节点和第二电流求和节点的平均电压值,响应于识别到第一电流求和节点和第二电流求和节点的平均电压值,共模控制器通过生成两个公共电流信号并且分别向第一电流求和节点和第二电流求和节点中的每一个提供两个公共电流信号中的第一公共电流信号和第二公共电流信号来将第一电流求和节点和第二电流求和节点的平均电压值设置为预定目标电压,其中,两个公共电流信号的大小和方向相同。
在一个实施方式中,集成电路的差分电流控制器使两个差分电流源生成具有相同预定大小和相反方向的两个预定差分电流信号,差分电流电路分别向第一电流求和节点和第二电流求和节点提供两个预定差分电流中的第一差分电流和第二差分电流。
在一个实施方式中,集成电路的比较器电路将从第一电流求和节点提供的总求和电流与从第二电流求和节点提供的总求和电流进行比较;并且当从第一电流求和节点提供的总求和电流与从第二电流求和节点提供的总求和电流相等时,比较器电路输出指示符。
在一个实施方式中,集成电路的比较器电路通过感测第一求和节点和第二求和节点的电压或求和电流将从第一电流求和节点提供的总求和电流与从第二电流求和节点提供的总求和电流进行比较;并且当第一电流求和节点提供的总求和电流与从第二电流求和节点提供的总求和电流相等时,比较器电路对由差分电流电路提供的差分电流信号的值进行记录。
在一个实施方式中,集成电路将所记录的由差分电流电路提供的差分电流信号的值转换为数字输出。
在一个实施方式中,集成电路的多个成对电流源中的每一对中的第一电流源和第二电流源包括预编程有机器学习模型的预定加权的可编程电流发生器。
在一个实施方式中,集成电路第一求和节点被配置成对从多个成对电流源中的每一对的第一电流源提供的具有正加权(或正系数)的电流信号进行求和;并且第二求和节点被配置成对从多个成对电流源中的每一对的第二电流源提供的具有负加权(或负系数)的电流信号进行求和。
在一个实施方式中,集成电路的差分电流电路基于从最大负电流值至最大正电流值范围内的预定电流信号值的集合向第一电流求和节点和第二电流求和节点提供多个预定电流信号。
在一个实施方式中,一种使用集成电路的方法,该方法包括:向多个成对电流源中的每一对的控制端子提供电压输入信号;响应于电压输入信号,在多个成对电流源中的每一对处产生两个差分电流,其中,由多个成对电流源中的每一对产生的两个差分电流之间的差值不同,并且其中,将多个成对电流源中的每一对的两个差分电流中的每个差分电流提供至所述第一求和节点和第二求和节点中的一个;识别第一电流求和节点和第二电流求和节点的平均电压值;响应于识别到第一电流求和节点和第二电流求和节点的平均电压值,通过生成两个公共电流信号并且分别向第一电流求和节点和第二电流求和节点中的每一个提供两个公共电流信号中的第一公共电流信号和第二公共电流信号来将第一电流求和节点和第二电流求和节点的平均电压值设置为预定目标电压,其中,两个公共电流信号的大小和方向相同;生成具有相同大小和相反方向的两个预定差分电流信号;分别向第一电流求和节点和第二电流求和节点提供两个预定差分电流中的第一差分电流和第二差分电流;将从第一电流求和节点提供的总求和电流与从第二电流求和节点提供的总求和电流进行比较;以及当从第一电流求和节点提供的总求和电流与从第二电流求和节点提供的总求和电流相等时,输出指示符。
适用的其他领域将根据本文中所提供的描述变得明显。本发明内容中的描述和具体示例仅旨在说明目的,并且不旨在限制本公开内容的范围。
附图说明
本文中描述的附图用于所选定的实施方式的仅说明目的,而不是全部可能的实现方式,并且不旨在限制本公开内容的范围。
图1示出了根据本申请的一个或更多个实施方式的集成电路100的示意图;
图2示出了根据本申请的一个或更多个实施方式的用于使用集成电路执行加权求和计算的方法;
图3示出了根据本申请的一个或更多个实施方式的集成电路的第二示意性架构;
图4示出了根据本申请的一个或更多个实施方式的集成电路的第三示意性架构;
图5示出了根据本申请的一个或更多个实施方式的集成电路的第四示意性架构;
图6示出了根据本申请的一个或更多个实施方式的集成电路的第五示意性架构;
图7示出了根据本申请的一个或更多个实施方式的集成电路的第六示意性架构;
图8示出了根据本申请的一个或更多个实施方式的集成电路的第七示意性架构;
图9示出了根据本申请的一个或更多个实施方式的集成电路的第八示意性架构;
图10示出了根据本申请的一个或更多个实施方式的集成电路的差分电流电路的操作;
图11示出了利用根据本申请的一个或更多个实施方式的集成电路实现的多步骤数字输入;
图12示出了利用根据本申请的一个或更多个实施方式的集成电路实现的不同的多步骤数字输入;
图13示出了根据本申请的一个或更多个实施方式的集成电路的差分电流电路的不同操作;
图14示出了根据本申请的一个或更多个实施方式的集成电路的差分电流电路的另一不同操作;
图15示出了根据本申请的一个或更多个实施方式的集成电路的示例可编程电流源;以及
图16A至图16C示出了利用根据本申请的一个或更多个实施方式的共模电路实现的示例补偿电路。
贯穿附图的多个视图,对应的附图标记表示对应的部件。
具体实施方式
以下对本申请的优选实施方式的描述并非旨在将本发明限制于这些优选实施方式,而是使本领域的任何技术人员能够制造和使用这些发明。
概述
在实现计算密集型程序或应用(例如,深度神经网络算法)等中所使用的传统集成电路中,典型的集成电路(IC)架构包括需要大区域和大电力来操作并执行计算的相对大的电路。这是因为处理数字信号(例如,二进制信号)通常需要大且耗电的电路实现。因此,对于诸如人工智能模型的计算密集型程序的许多技术实现,具有用于处理数字信号的这些大电路的所得到的计算机IC也很大,并且因此所得到的计算机IC不太可能包括在空间受限的边缘装置等中。
此外,在实现计算密集型应用例如神经网络模型中,集成电路的绝大部分计算工作涉及执行数千至数百万的矩阵乘法。此外,在用于神经网络模型的数字信号处理中,还可以执行其中计算两个数的乘积并且然后将该乘积加至累加器的乘法累加运算。因此,当仅使用或主要使用数字电路来实现神经网络模型时,所得到的数字电路消耗大量能量来执行计算并存储用于神经元和许多乘法累加运算的结果乘积的加权系数。
作为减少计算所需的电力和能够进行计算密集型过程的集成电路的整体尺寸的技术解决方案包括提供可以利用极其区域有效的数模转换器(DAC)(而不是基本上大的或区域密集的标准DAC)与集成电路的各种其他电路一起所实现的混合信号计算架构,以实现区域和能量效率。因此,尽管DAC架构的传统实现对于减少集成电路所需的能量和整体尺寸可能是有用的,但由于处理计算密集型AI程序和应用程序可能需要大量的DAC,因此DAC架构的这些传统实现可能是不可行的。
然而,本申请的实施方式通过以各种形式实现可以与一个或更多个模数转换器可操作的连通的全局(参考信号源)DAC来解决至少上述技术问题。
因此,提供了一种执行加权求和计算的集成电路。该集成电路优选地包括:相互连接并成对布置的多个电流生成元件、正求和节点、负求和节点和输入生成电路。对于每对电流生成元件,每个元件的输入端子电连接至输入生成电路。每个电流生成元件包括输入端子和输出端子。在一个示例中,电流生成元件可以是忆阻器或类似的两个终端装置。在该示例中,忆阻器的输入端子耦接至输入生成电路,并且忆阻器的输出端子耦接至求和节点之一。在另一示例中,电流生成元件可以是浮栅晶体管或类似的三端子装置。在该示例中,装置的控制端子用作输入并且耦接至输入生成电路;而源极端子或漏极端子中的一个用作输出并且耦接至求和节点之一。当出现下述情况:输入节点处于激活电压并且两个求和节点处于预定的目标电压时,每对电流生成元件向两个求和节点提供预定量的电流。这里提到的激活电压涉及由可编程电流源提供的电流随电压开始增加的电压值。因此,激活电压可以涉及使可编程电流源生成可检测电流信号的电压值。这些所提供的两个电流中的差表示值,并且该值在多个电流生成元件对之间不同。由于每对电连接至相同的两个求和节点,因此它们的电流自然地在这些节点上求和,使得两个节点之间的总电流差等于该对值的求和。
为实现上述目的,集成电路包括共模电流生成电路、差分电流生成电路和比较电路。共模电流电路测量两个求和节点的平均电压,并向每个节点输出相等的电流,使得平均电压变得等于目标电压。差分电流电路向每条线输出已知的不同电流,该电流大小相等但方向相反。另外地或替代地,如本文所讨论的,差分电流电路可以用于向每条线输出已知的不同电流,该电流的大小沿相同(即相同的符号)或相反(例如,不同的符号)的方向不同。比较电路输出表示哪个求和线的电压较大的信号。当比较输出电路改变时,已知两个求和节点瞬时等于目标电压(例如,交叉),由差分电流电路产生的电流等于求和值,并且该差分电流值可以作为结果被记录。
因此,可以实现DAC架构区域的减少以及使边缘计算装置等能够执行复杂且计算机密集型操作包括在输入数据源处本地地进行AI计算的计算机和电力效率。
1.用于混合信号计算的***
如图1所示,用于实现计算密集型程序和/或应用的混合信号计算的集成电路100包括输入电路110、多个可编程电流源120、第一求和节点130、第二求和节点140和读出电路150。优选地,读出电路150包括差分电流电路151和共模电流电路156。
集成电路100优选地用于通过将计算加权或类似系数预先存储在电流生成元件中并响应于输入使用电流生成元件生成电流值来对模拟域(而不是数字域)中的计算密集型应用或程序执行加权求和计算,同时混合信号电路可以被实现为基于由电流生成元件生成的电流值的加权求和计算来识别输出代码(例如,数字输出)。
输入(生成)电路110优选地用于向可编程电流源120的阵列中的一个或更多个提供输入信号。在一些实施方式中,输入电路110被配置成生成和/或提供用于多个可编程电流源120的输入信号的集合。输入电路可以用于从一个或更多个输入信号源接收数字(例如,二进制)输入信号或模拟输入信号。一个或更多个输入信号源可以包括与输入电路110可操作的信号连通的另一集成电路层、外部输入传感器(例如,摄像装置等)、开关、芯片外装置或电路(例如,芯片外存储器等)等。如图11至图12中的示例所示,输入电路110可以另外地或替代地用于在多步骤方式内在集成电路100内提供数字输入信号,其中每对可编程电流源接收一系列输入信号并且作为响应产生一系列对应的输出。
在一些实施方式中,输入电路110可以被配置成具有多个信号输出端口的单个电路,其中多个输出端口中的每一个可以与可编程电流源120的信号输入端子电连通。也就是说,每个信号输出端口可以电耦接或以其他方式电连接至可编程电流源120或成对的可编程电流源120的相应信号输入接收端子。另外地或替代地,输入电路110可以被配置成多个不同电路,其中多个不同电路中的每一个包括被设置成与可编程电流源120的信号输入端子电连通的单个信号输出端口。
在一些实施方式中,输入电路110可以被配置成将数字输入信号转换为模拟输入信号。在这样的实施方式中,输入电路110可以包括用于接收数字输入信号并将数字输入信号转换为电路100的模拟电路可理解的模拟输出信号的数模转换器。例如,输入电路110可以用于从数字传感器接收二进制输入信号并将该二进制输入信号转换为电压信号并将该电压信号传递至可编程电流源120。因此,输入电路110可以包括被配置成基于所接收的输入信号生成不同的电压信号以控制可编程电流源120的电压控制器电路(例如,具有计算机处理器等的微控制器)。
在优选实施方式中,多个可编程电流源120可以成对布置,多个可编程电流源120被设置成电连通或者通过对成对的可编程电流源120的栅极端子进行连接而被电连接;然而,应该注意,可编程电流源可以以任何合适的方式连接成对。优选地,不同的可编程电流源对以行布置,从而形成列或纵向阵列;然而,在各种实施方式中,可编程电流源对可以以多于或少于三行或以任何合适数目的行布置。另外,如上所述,每对电连接的可编程电流源120还可以被设置成与输入电路110电连通或者可以电连接至输入电路110。也就是说,一对可编程电流源120中的一个或更多个栅极端子可以用于将该对可编程电流源120彼此电连接以及连接至输入电路110的输入节点(端口)或电路。在一些实施方式中,每对可编程电流源120包括被布置成与输入电路110的输入节点电连通的控制端子,并且该对中的一个或更多个端子可以连接至可以在多个成对的可编程电流源中的每一个之间共享的参考发生器或参考电路。在一些实施方式中,参考发生器包括任何合适的参考源,例如全局数模转换器(DAC),参考发生器可以用于针对每对可编程电流源120生成和提供参考值。这种配置的结果为:输入电路110可以能够通过一对可编程电流源120的栅极端子传输单个输入信号,并且该对中的每个电流源可以用于从输入电路110接收相同的单个输入信号。
一对可编程电流源120中的每个可编程电流源120的源极端子可以连接至地或任何合适的参考电压,同时每个可编程电流源120的漏极端子连接至相应的电流求和节点。在优选实施方式中,一对电流源的第一可编程电流源120的漏极端子可以电连接至第一电流求和节点130,并且该对电流源的第二可编程电流源120的漏极端子可以电连接至第二电流求和节点140。同样地,该对电流源中的第一可编程电流源120和第二可编程电流源120中的每一个的源极端子可以电连接至相应的地或电连接至任何合适的参考电压。
在优选实施方式中,成对的可编程电流源120的阵列可以布置在电路100中。在这种实施方式中,阵列中的每个成对的可编程电流源120的第一可编程电流源可以共享第一电流求和节点130,并且每个成对的可编程电流源120的第二可编程电流源可以共享第二电流求和节点140。在这种实施方式中,第一求和节点130可以用于对由每个第一可编程电流源提供的正电流求和,并且第二求和节点140可以用于对由每个第二可编程电流源提供的负电流求和。因此,成对的可编程电流源120的阵列可以布置在电路100中,以利用基尔霍夫电流定律(KCL)用于沿第一求和节点130和第二求和节点140中的每一个对由可编程电流源120的阵列提供的电流进行求和的目的。
在一个实施方式中,可编程电流源120的两个或更多个阵列可以布置在电路100中,如图5中的示例所示。在该多列布置中,可编程电流源120的两个或更多个阵列中的每一个形成共享输入生成电路110和差分电流电路151的控制逻辑152(例如,具有计算机处理器、处理电路等的微控制器)的列,如图3至图4中的示例所示。在该配置中,可以在电路100中实现缩放,这是因为包括输入生成电路110和差分电流电路151的至少微控制器的电路100的一个或更多个部件是不重复的。
在其中可编程电流源阵列120的两个或更多阵列可以布置在电路100中的第二实现方式中,可以在电路100内另外地布置模拟多路复用器170,以使可编程电流源120的多个列或阵列共享差分电流源153、共模电流电路156和电流源158以及比较电路160,如图6中的示例所示。优选地,模拟多路复用器170用于从可编程电流源120的第一列或阵列并且单独地从可编程电流源120的第二列或阵列接收加权求和电流。在操作中,模拟多路复用器170可以用于将来自可编程电流源的每列或阵列的加权求和电流交替至读出电路150中。以这样方式,读出电路150的模数转换器的功能可以在多列上分摊。尽管利用可编程电流源120的两列或阵列示出了该实现方式,但是应当理解,可以对模拟多路复用器进行缩放,以实现可编程电流源120的任意数目的列或阵列。
在第二实现方式的变型中,多列可编程电流源120中的每一列的输出状态可以在移位链中连接在一起,使得来自可编程电流源120的每列的输出结果可以在电路100中执行的加权求和计算结束时从移位链中移出。在没有足够的空间来针对电路100中所实现的多列可编程电流源120中每一列定位输出电路的情况下,这实现了电路100的电路区域的效率。
第一求和节点130和求和节点140可以包括能够传输或携带电荷的任何类型的导管。例如,第一求和节点130和第二求和节点140可以包括电导体(例如,金属线或迹线、导电流体等)。应注意,可以使用任何合适的电导管来实现第一求和节点130和第二求和节点140。
多个可编程电流源120中的每一个优选地用于响应于输入信号来生成电流值。在优选实施方式中,可编程电流源120包括用于在施加电压时产生电流值的电阻电路。电阻电路可以是任何类型的可重新配置的电阻器(即,可调电阻器),并且优选地,电阻电路包括电阻随机存取存储器(RRAM或ReRAM),电阻随机存取存储器(RRAM或ReRAM)是操作成改变电介质固态材料上的电阻的非易失性随机存取计算机存储器,其也可以称为忆阻器。在一些实施方式中,可编程电流源120可以使用1T(或2T)NOR闪存晶体管和/或其他闪速存储器来实现,如图15中的示例所示。虽然在一些实施方式中实现为NOR闪存晶体管,但是应当理解,可编程电流源可以由各种电流生成装置来实现,电流生成装置包括:其他类型的NOR和NAND闪存装置、RRAM装置或本领域已知的任何合适的装置。
在优选实施方式中,可编程电流源120可以预先配置有加权或系数。例如,机器学习模型(例如,神经网络模型)的加权求和/或系数可以被映射至成对的可编程电流源120。
如前所述,可编程电流源120被优选地成对布置并且被预先编程(即,预编程),使得当在一对可编程电流源120上施加相同的输入电压信号时,该对可编程电流源120输出具有被编程为特定或预定值的差的一对电流(由该对的每个相应电流源输出的电流)。因此,可以通过将被布置成与(正)求和节点130电连通的可编程电流源编程为预定值(例如,正加权或正系数)和/或将被布置成与(负)求和节点140电连通的可编程电流源编程为预定值(例如,正加权或正系数)来生成由该对可编程电流源120提供的各个电流之间的差。因此,当输入电路100在两个求和节点各自处于目标电压(VTARGET)的条件期间提供包括输入至该对可编程电流源120的电压的输入信号时,可以实现通过可编程电流源120输出的具有预定差值的一对电流。此外,如下面更详细描述的,读出电路150可以用于创建两个求和节点的目标电压条件,并且在创建该条件时,读出电路150还可以用于确定针对可编程电流源120的电流的求和差。因此,可以通过确定针对给定的输入集合的求和电流差以这种方式来确定加权求和计算结果。
读出电路150优选地用于根据加权求和电流信号确定数字输出信号或代码。读出电路150优选地包括差分电流电路151、共模电流电路156和比较器电路160,它们协同操作以确定针对给定输入集合的加权求和计算结果。
差分电流电路151优选地包括:电流源153;以及用于使用电流源153来控制产生电流的电流的差分微控制器电路152。差分电流电路151优选地用于生成差分电流值并将该差分电流值提供至第一电流求和节点130和第二电流求和节点140中的每一个。在使用中,差分电流电路151和相关联的电流源153可以用于以已知的差来一次产生两个电流,并且将一个电流提供至第一求和节点130和第二求和节点140中的每一个。优选地,由差分电流电路的电流源生成的两个差分电流的大小可以相等但是具有相反的符号(例如,一个正电流,一个相同大小的负电流,[50A,-50A])。另外地或替代地,由差分电流电路151的两个电流源153生成的两个差分电流的大小可以不同,使得由两个电流源153基于来自差分电流电路151的输入信号提供的第一电流信号和第二电流信号可以具有不同的大小(例如,[+8A,+2A],[+4A,+6A]等。
差分电流电路151的两个差分电流源153中的每一个可以与第一电流求和节点130和第二电流求和节点140中的一个电连通。在一些实施方式中,两个差分电流源153中的每一个与第一电流求和节点130和第二电流求和节点140中的一个共享直接电连接,使得两个电流源中的每一个的端子电连接或电耦接至第一电流求和节点130和第二电流求和节点140中的一个。
在一个实施方式中,差分电路151包括具有用作控制器的电流镜的数模转换器(DAC),并且数模转换器(DAC)预编程有或可访问已知的数字输入值或代码的集合。DAC优选地用于通过将已知或预设的数字输入值转换为模拟信号(例如,差分电流信号)来改变由两个电流源153提供的差分电流信号。电流镜可以用于通过在保持输出电流恒定而与负载无关的同时控制另一有源装置中的电流来复制通过一个有源装置(或电流源)的第一电流。在优选实施方式中,限定电流镜的电路包括用于对电流方向进行反转的反相电流放大器等。
在使用中,具有电流镜的DAC可以用于斜坡(ramp)或扫描通过该已知数字值的集合作为到DAC的输入,并输出可以添加至第一求和节点130和第二求和节点140中的每一个的得到的(且不同的)电流信号。在优选实施方式中,DAC可以从最大的负已知数字值斜坡或扫描至最大的正已知数字值。另外地或替代地,DAC可以从最大正的已知数字值扫描至最大的负已知数字值。虽然这些实施方式中的一些可以实现包括具有电流镜的DAC等的用于产生两个差分电流的差分电流电路,但是应当理解可以实现用于产生差分电流的任何合适的和/或已知的装置。
在第二实现方式中,可以在多个读出电路150(或多个模数转换器)上执行多个DAC值扫描。在该第二实现方式中,差分电流源153、共模电流电路156和电流源158和比较器电路160中的一个或更多个可以包括使其功能停用以保存能量的附加休眠信号,如图13中的示例所示。优选地,比较器电路160可以可操作地耦接或连接至控制电路161(例如,具有计算机处理器、处理电路等的微控制器)、一组粗略(MSB)寄存器以及一组精细(LSB)寄存器。在操作中,可以由其中差分电流电路151通过粗略代码变化步进的微控制器执行一组路线寄存器的第一粗略扫描(例如,已知和预设数字值的子集),并且当比较电路触发、切断(trip)或检测两个求和节点之间的电压变化时,对粗略位进行记录。随后,由微控制器执行已知数字值的完全扫描,除非在所记录的粗略位与来自差分电流电路151的粗略位不匹配时,否则微控制器电路发送休眠信号,以降低列的功耗。因此,该第二实现方式通过对电路的部分休眠达2^N-1/2^n的精细扫描时间来实现相当大的功率降低,其中N是精细位的数目,如图14中的示例所示。因此,比较器电路160和/或相关联的输出电路可以用于在与求和电流等于零或交叉(crossed)的时间对应的随后的通过期间对LSB进行记录。
在第三实现方式中,可以使可编程电流源120对差分电流电路151的不同扫描分辨率进行搜索,如图14中的示例所示。优选地,这种可配置的扫描分辨率方法通常可以通过将由差分电路发送的数字代码改变为差分电流源153来实现。在电路100的一个实例或时间事件中,差分电流电路153可以生成表示N位分辨率的数字代码的集合,在下一个实例或时间事件中,差分电流电路151可以生成表示(N+1)位分辨率或(N-1)位分辨率的数字代码的集合。这使得电路100能够改善性能或降低电路100中消耗的能量。电路100通常可以生成任何(N+X)位分辨率,其中X是预定范围的值,使得X=(-N,+{***的最大分辨率-N}]。这种配置可以通过改变LSB(即,一组精细寄存器)或MSB(即一组粗略寄存器)来执行。
共模电流电路156优选地包括两个电流源158、共模控制电路157(例如,具有计算机处理器、处理电路等的微控制器)、放大器和共源放大器级,如图1和图9中的示例所示。共模电流电路优选地用于经由测量电路(其可以感测电压、电流或任何电参数或电荷)测量第一求和节点130和第二求和节点140的平均电压。相应地,共模电路可以用于对电流源158进行调制,以将电流信号输出至第一求和节点130和第二求和节点140中的每一个,使得第一求和节点130和第二求和节点140的平均电压等于或基本等于目标电压(VTARGET)。在优选实施方式中,由两个电流源158产生或者提供并被输出至每个相应求和节点的电流信号的大小和符号相同。
由于电路100的电路设计中的不完美的电路部件和/或一个或更多个负面效果,因此可以在电路100内实现补偿电路和/或补偿方法,以减轻电路100设计中的负面效果或其他意外问题。作为一个示例,共模电流驱动晶体管之间的偏移可以用于引起通过可编程电流源120的电流偏移,从而破坏来自输入电路110的输入信号。因此,在实现电路100之前,可以对共模电路156进行校准,以补偿电流的偏移(即,对电流偏移进行校准)。
优选地,在补偿校准的第一阶段中,所选择的可编程电流源120的组可以电连接至第一求和节点130(例如,正求和节点),如图16A中所示。在该实现方式中,共模电路156的放大器用于对以电压参考(Vref)作为参考的第一电容器进行驱动,使得第一求和节点130等于或基本等于目标电压(Vtarget)。在该阶段中,对Vref进行选择,以用于实现共模电路156的放大器的良好操作条件,并且可以表示在P型金属氧化物半导体(PMOS)装置(例如,晶体管)的栅极上所需的标称值以实现没有偏移的Vtarget。因此,共模电流电路156的放大器对第一电容器两端表示该晶体管偏移理想状态的电压进行驱动。
在第二阶段中,可编程电流源120(具有相同的电流信号)的所选择可编程电流源120的组(即,相同组)可以连接至第二求和节点140(例如,负求和节点),如图16B中的示例所示。共模电流电路156的放大器可以用于对也可以以电压参考(Vref)作为参考的第二电容器进行驱动,使得第二求和节点140等于或基本等于目标电压(Vtarget)。
作为补偿校准的第一阶段和第二阶段的结果,第一电容器与第二电容器之间的电压差可以表示由两个PMOS装置产生的偏移电流(例如,补偿电流)的差,如图16C中的示例所示。应当注意,补偿校准可以在第一校准阶段与第二校准阶段之间实现任何相同的组的可编程电流源120,并且补偿校准可以用于在第一阶段和第二阶段中在第一求和节点130或负求和节点140上操作。还应注意,电路100中所实现的晶体管可以是n沟道金属氧化物半导体场效应(NMOS),而共模电路156的晶体管可以是PMOS,NMOS晶体管和PMOS晶体管的布置可以被翻转或切换,使得共模电路156实现NMOS晶体管,并且PMOS晶体管可以在包括差分电流电路151的其他处实现。
在操作中,共模电路156的放大器可以用于对差分存储电容器的底板进行驱动,使得共模电流驱动源158各自接收由其对应存储的偏移量修改的电压。
第一求和节点130和第二求和节点140优选地具有包括求和可编程电流源120和差分电流电路151的两个差分电流源。在操作中,当两个差分电流源相等但相反时,它们将抵消,并且结果将不是总差分电流。当满足零差分电流的这种条件时,共模电流电路156和两个电流源158将使第一求和节点130和第二求和节点140等于VTARGET,从而实现下述情况:所有差分电流通过处于正确的电压条件而被已知。
读出电路150优选地用于通过改变由电流源153产生的差分电流并读取比较电路160的输出来识别或确定两个差分电流源之间的相等但相反的电流条件。当两个差分电流源之间的差不相等时,两个求和节点130,140中的一个求和节点将具有大于另一个求和节点的确定电压的确定电压,并且比较电路160将维持或生成指示哪个求和节点的电压更大的第一输出。具有较高电压值的节点可以取决于:与可编程电流源120的求和相比,差分电流电路151是否被提供了更正或更负的差分电流。如上面详细描述的,由差分电流电路151提供的差分电流可以从最大负值扫描至最大正值,或相反地,从最大正值扫描至最大负值,并且比较电路160将在电流的两个电流差交叉的点处改变其输出。也就是说,当两个差分电流源的求和等于零或者第一求和节点130和第二求和节点140二者中的电压值等于(VTARGET)时,比较电路160将改变其输出。在比较电路160改变其输出时,由差分电流电路提供至求和节点的差分电流值可以由模数转换器记录和参考,以产生表示两个可编程电流源120的加权求和差的数字输出代码。此外,在那时,已知,由差分电流电路提供的所记录的两个差分电流值相对于第一求和节点130和第二求和节点140的两个差分电流的求和大小相等但方向相反。
控制器优选地与差分电流电路和/或比较电路接口。控制器与差分电流电路相互作用,以改变提供至正求和节点的电流与提供至负求和节点的电流之间的差的大小。例如,控制器可以扫描在值范围中的差的大小,其中值范围被限定在如上所述的最大负值与最大正值之间。响应于指示正求和节点和负求和节点处的电压相等的信号,控制器还接收由比较电路输出的信号,并对提供至正求和节点的电流与提供至负求和节点的电流之间的差进行记录。在一个实施方式中,控制器由微控制器或其他合适的电路实现。
在一个实现方式中,读出电路150还包括优选地布置在第一求和节点130与第二求和节点140之间的电压限制器155,如图7中的示例所示。在该实现方式中,电压限制器155可以用于限制在第一求和节点130与第二求和节点140之间产生的电压,从而改善电路100的性能,这是因为对于共模电路156可以知道或识别在两个求和节点中可以实现的电压的限制。因为电压限制器155的电阻器不向求和节点提供电流,因此两个求和节点的功能通常不会随着电压限制器的增加而改变。应当理解,电压限制器155的电阻器可以以任何合适的方式实现,包括实现为晶体管。另外,可以基于电路100的电流操作模式启用或实现不同的电阻器强度。
在上述电路100的一个变型中,电路100可以包括沿着第一电流求和节点130和/或第二电流求和节点140的长度的分布式的多组差分电流源153和公共电流源158,如图8中的示例所示。在这种配置中,可以不需要为了控制沿着第一电流求和节点130和第二电流求和节点140的多组差分电流源153和公共电流源158而对差分电流电路或共模电流电路的微控制器电路进行复制。这种配置的技术益处在于:可以减轻由于长导线(例如,求和节点)和大电流(即,多个电流的聚集)而倾向于发生的电压降。
2.用于使用混合信号电路执行加权求和计算的方法
如图2所示,方法200包括:生成输入信号S210;生成差分电流信号S220;沿着一对求和节点对电流进行求和S230;向该对求和节点提供预定的差分电流信号S240;向该对求和节点提供公共电流信号S250;以及识别该对求和节点的加权求和差S260。
S210包括生成输入信号,S210用于响应于数字(例如,二进制)或模拟输入来生成至可编程电流源的一个或更多个输入信号。在优选实施方式中,可以在输入电路处接收数字输入或模拟输入。在接收到数字输入的情况下,S210可以用于实现仅在下述状态下生成数字输入信号的输入电路:在与预定电流相关联的激活状态下;或者在其中可编程电流源不产生差分电流的停用状态下。也就是说,每个数字或二进制输入与单个或有限相关联的模拟电流响应关联,其还包括对于电流信号的零值。
另外地或替代地,在接收到至实现方法200的***(例如,电路100)的模拟输入情况下,S210可以用于实现在下述状态下生成模拟输入信号的输入电路:在具有多个对应预定电流的多个激活状态下;以及其中可编程电流源不产生差分电流的停用状态的情态下。
在一个或更多个可编程电流源处接收模拟输入信号的情况下,S220可以用于在可编程电流源上施加模拟输入信号,以生成一个或多更个电流信号。在优选实施方式中,在S210中所实现的输入电路包括电压受控的输入电路,并且因此,由每个可编程电流源接收到的输入信号包括电压信号。因此,当在可编程电流源的电阻元件上施加电压信号时,产生所得电流。优选地,可编程电流源还包括用于修改每个可编程电流源的电阻元件的电阻强度的预先存储的加权或系数。
在一个或更多个可编程电流源处接收二进制输入信号的情况下,可以由处理二进制输入信号的可编程电流源生成预定电流信号。
S230包括沿着一对求和节点中的每一个的求和电流,S230用于在第一求和节点处对多个电流信号进行求和并且在第二求和节点处对多个电流信号进行求和。具体地,在优选实施方式中,可编程电流源可以成对布置,其中该对中的第一电流源与第一求和节点电连通,并且该对中的第二电流源与第二求和节点电连通。此外,可以布置多对可编程电流源,使得多对中的每一对的第一电流源(通过电连接的方式)共享第一求和节点并且多对中的每一对的第二电流源(通过电连接的方式)共享第二求和节点。因此,在这种配置中,每对的第一电流源可以向第一求和节点提供电流,并且每对的第二电流源可以向第二求和节点提供电流。
因此,S230优选地用于对通过可编程电流源的阵列提供至第一求和节点的电流信号以及提供至第二求和节点的电流信号进行求和。
S240包括向一对求和节点提供差分电流信号,S240用于向一对求和节点中的第一求和节点和第二求和节点中的每一个生成具有相同大小但不同方向(即,一个为正和一个为负)的差分电流信号。S240优选地通过实现差分电流电路例如具有电流镜的数模转换器或任何合适的差分电流电路来生成差分电流信号。
在操作中,由S240所实现的用于向一对求和节点提供差分电流的差分电流电路可以被预编程或者可以访问预定的数字(二进制)代码的集合,当预定的数字(二进制)代码的集合被提供至差分电流电路的电流源时产生被提供至一对求和节点的不同的差分电流。在优选实施方式中,差分电流电路可以用于以任何合适的方式扫描或斜坡通过预定的数字代码的集合,直至可以确定该对求和节点之间的求和差为止,如图10中的示例所示。
S250包括将公共电流信号施加至一对求和节点中的每个求和节点,S250用于测量该对求和节点之间的平均电压,并且相应地生成两个公共电流信号并将两个公共电流信号提供至该对求和节点。两个公共电流信号优选地具有相同的大小和方向。因此,S250用于使用两个公共电流信号来调整一对求和节点的平均电压,以与预定的目标电压相匹配。
在优选实施方式中,S250用于使用包括两个电流源和微控制器电路的共模电流电路来生成公共电流信号。当由S250实现时,微控制器测量一对求和节点的平均电压,计算公共电流信号以实现该对求和节点中的平均目标电压,并经由两个公共电流源将公共电流信号提供至该对求和节点中的每个求和节点。
S260包括确定一对求和节点的加权求和差,S260用于将第一求和节点与第二求和节点的电压值进行比较,并且识别第一电压和第二电压的电压值相等的时间或实例。具体地,当差分电流电路向一对求和节点施加差分电流时,如S240中所述,实现比较器电路的S260将该对求和节点的电压值进行比较。
因此,当第一求和节点和第二求和节点的电压值相等时,S260用于对由差分电流电路提供的差分电流进行记录。以这种方式,S260可以另外地执行计算,该计算通过所记录的差分电流来减小第一求和节点和第二求和节点中的每一个的总求和电流(即,来自包括可编程电流源和差分电流电路的两个差分电流源的电流)。计算的结果应当包括由可编程电流源提供的一对求和节点的求和差分电流值。
S260可以用于将求和差分电流值的差值转换为优选地为数字的输出代码。另外地或替代地,S260可以用于识别至产生所记录的差分电流的差分电流电路中的相关联的数字输入代码并且输出相关联的数字输入代码。另外地或替代地,S260可以用于收集比较器电路的值或将比较器电路的值传递至可以用于对经比较的电流值交叉的时间(例如,当求和电流等于零时)进行记录的计数器电路。可以将所记录的时间与数字信号在DAC中有效以产生一组差分电流的时间进行比较。
另外地或替代地,S260可以用于输出对应于数字代码输入或在经比较的电流值交叉时DAC内有效的数字代码(例如,多位信号)。
应当理解,方法200是可以以任何合适的顺序实现的示例性方法,以在权限范围内实现本发明和/或本发明的实施方式,或者鉴于本文提供的公开内容可以容易地预期。因此,顺序和处理步骤不应限于本文提供的示例性顺序。
优选实施方式及其变型的方法可以至少部分地体现和/或实现为被配置成接收存储计算机可读指令的计算机可读介质的机器。指令优选地由计算机可执行部件执行,所述计算机可执行组件优选地与光刻***和处理器的一个或更多个部分和/或由此实现的控制器集成。计算机可读介质可以存储在任何合适的计算机可读介质上,例如RAM、ROM、闪存、EEPROM、光学装置(CD或DVD)、硬盘驱动器、软盘驱动器或任何合适装置。计算机可执行部件优选地是通用或专用处理器,但是任何合适的专用硬件或硬件/固件组合装置可以替代地或另外地执行指令。
尽管为了简明而省略,但是优选实施方式包括本文描述的各种方法、装置和***的每种组合和置换。
如本领域技术人员将从前面的详细描述和附图和权利要求书中认识到的,在不脱离所附权利要求书所限定的本发明的范围的情况下,可以对本发明的优选实施方式进行修改和改变。
Claims (19)
1.一种用于计算加权求和计算的混合信号电路,包括:
成对布置的多个可编程电流源,每对可编程电流源中的第一可编程电流源被配置成存储指示正加权的值,并且每对可编程电流源中的第二可编程电流源被配置成存储指示负加权的值,每个可编程电流源具有输入端子和输出端子,使得所述第一可编程电流源的输出端子在正求和节点处电耦接在一起,并且所述第二可编程电流源的输出端子在负求和节点处电耦接在一起;
输入电路,电耦接至所述多个可编程电流源中的每对可编程电流源,并且所述输入电路操作成向所述多个可编程电流源中的每对可编程电流源提供电流;
比较电路,电耦接至所述正求和节点和所述负求和节点,其中,所述比较电路操作成将在所述正求和节点处的电压与在所述负求和节点处的电压进行相互比较并且输出表示比较结果的信号;
差分电流电路,电耦接至所述正求和节点和所述负求和节点,并且所述差分电流电路操作成向所述正求和节点和所述负求和节点中的每一个提供电流,其中,提供至所述正求和节点的电流与提供至所述负求和节点的电流呈现出差;以及
控制器,所述控制器与所述差分电流电路和所述比较电路接口,其中,所述控制器与所述差分电流电路相互作用,以改变提供至所述正求和节点的电流与提供至所述负求和节点的电流之间的所述差的大小。
2.根据权利要求1所述的混合信号电路,其中,所述控制器接收由所述比较电路输出的所述信号,并且响应于指示在所述正求和节点处的电压和在所述负求和节点处的电压相等的信号,对提供至所述正求和节点的电流与提供至所述负求和节点的电流之间的所述差进行记录。
3.根据权利要求1所述的混合信号电路,其中,所述控制器与所述差分电流电路相互作用,以扫描在值范围中的所述差的大小,其中,所述值范围被限定在最大负值与最大正值之间。
4.根据权利要求1所述的混合信号电路,还包括电耦接至所述正求和节点和所述负求和节点的共模电流电路,其中,所述共模电流电路确定在所述正求和节点处的电压和在所述负求和节点处的电压的平均值并且向所述正求和节点和所述负求和节点中的每一个提供电流,使得所述平均值维持在目标电压处并且提供至所述正求和节点的电流和提供至所述负求和节点的电流大小相等。
5.根据权利要求1所述的混合信号电路,其中,每个可编程电流源还被限定为一个或更多个浮栅晶体管,使得所述一个或更多个浮栅晶体管的控制端子电耦接至所述输入电路,所述一个或更多个浮栅晶体管的漏极端子电耦接至相应的求和节点,并且所述一个或更多个浮栅晶体管的源极端子电耦接至地。
6.根据权利要求1所述的混合信号电路,其中,每个可编程电流源还被限定为忆阻器。
7.根据权利要求1所述的混合信号电路,其中,所述比较电路包括运算放大器或再生锁存器。
8.根据权利要求1所述的混合信号电路,还包括电耦接在所述正求和节点与所述负求和节点之间的电阻器。
9.一种集成电路,包括:
多个成对电流源,其中,所述多个成对电流源中的每一对的第一电流源和第二电流源被布置成电连通,其中,所述第一电流源和所述第二电流源中的每一个包括漏极端子和源极端子;其中,所述多个成对电流源中的每一对包括被布置成与输入节点电连通的控制端子;
一对电流求和节点,包括第一电流求和节点和第二电流求和节点,
其中:
所述多个成对电流源中的每一对的所述第一电流源和所述第二电流源中的每一个的所述源极端子连接至地;
所述多个成对电流源中的每一对的所述第一电流源的所述漏极端子被布置成与所述第一电流求和节点电连通,并且所述多个成对电流源中的每一对的所述第二电流源的所述漏极端子被布置成与所述第二电流求和节点电连通;
差分电流电路,包括差分电流控制器和两个差分电流源,其中,所述差分电流控制器与所述两个差分电流源可操作地控制连通,其中,所述两个差分电流源中的每个差分电流源被布置成与所述第一电流求和节点和所述第二电流求和节点中的一个电连通;
共模电流电路,包括共模电流控制器和两个公共电流源,其中,所述共模电流控制器与所述两个公共电流源可操作地控制连通,其中,所述两个公共电流源中的每个公共电流源被布置成与所述第一电流求和节点和所述第二电流求和节点中的一个电连通;以及
比较器电路,所述比较器电路与所述第一电流求和节点的端子端部和所述第二电流求和节点的端子端部电连通。
10.根据权利要求9所述的集成电路,其中,
所述输入节点向所述多个成对电流源中的每一对的所述控制端子提供电压输入信号;并且
响应于电压输入信号,所述多个成对电流源中的每一对产生两个差分电流,其中,由所述多个成对电流源中的每一对产生的所述两个差分电流之间的差值不同,并且其中,所述多个成对电流源中的每一对的所述两个差分电流中的每个差分电流被提供至所述第一求和节点和所述第二求和节点中的一个。
11.根据权利要求10所述的集成电路,其中,
所述共模电流电路识别所述第一电流求和节点和所述第二电流求和节点的平均电压值,
响应于识别到所述第一电流求和节点和所述第二电流求和节点的所述平均电压值,所述共模控制器通过生成两个公共电流信号并且分别向所述第一电流求和节点和所述第二电流求和节点中的每一个提供所述两个公共电流信号中的第一公共电流信号和第二公共电流信号来将所述第一电流求和节点和所述第二电流求和节点的所述平均电压值设置为预定目标电压,其中,所述两个公共电流信号的大小和方向相同。
12.根据权利要求11所述的集成电路,其中,
所述差分电流控制器使所述两个差分电流源生成具有相同预定大小和相反方向的两个预定差分电流信号,
所述差分电流电路分别向所述第一电流求和节点和所述第二电流求和节点提供所述两个预定差分电流中的第一差分电流和第二差分电流。
13.根据权利要求12所述的集成电路,其中,
所述比较器电路将从所述第一电流求和节点提供的总求和电流与从所述第二电流求和节点提供的总求和电流进行比较;并且
当从所述第一电流求和节点提供的所述总求和电流与从所述第二电流求和节点提供的所述总求和电流相等时,所述比较器电路输出指示符。
14.根据权利要求12所述的集成电路,其中,
所述比较器电路将从所述第一电流求和节点提供的总求和电流与从所述第二电流求和节点提供的总求和电流进行比较;并且
当从所述第一电流求和节点提供的所述总求和电流与从所述第二电流求和节点提供的所述总求和电流相等时,所述比较器电路对由所述差分电流电路提供的所述差分电流信号的值进行记录。
15.根据权利要求14所述的集成电路,其中,
所述集成电路将所记录的由所述差分电流电路提供的所述差分电流信号的值转换为数字输出。
16.根据权利要求9所述的集成电路,其中,
所述多个成对电流源中的每一对中的所述第一电流源和所述第二电流源包括预编程有机器学习模型的预定加权的可编程电流发生器。
17.根据权利要求9所述的集成电路,其中,
所述第一求和节点被配置成对从所述多个成对电流源中的每一对的所述第一电流源提供的正电流信号进行求和;并且
所述第二求和节点被配置成对从所述多个成对电流源中的每一对的所述第二电流源提供的负电流信号进行求和。
18.根据权利要求12所述的集成电路,其中,
所述差分电流电路基于从最大负电流值至最大正电流值范围内的预定电流信号值的集合向所述第一电流求和节点和所述第二电流求和节点提供多个预定电流信号。
19.一种使用集成电路的方法,所述方法包括:
向多个成对电流源中的每一对的控制端子提供电压输入信号;
响应于所述电压输入信号,在所述多个成对电流源中的每一对处产生两个差分电流,其中,由所述多个成对电流源中的每一对产生的所述两个差分电流之间的差值不同,并且其中,将所述多个成对电流源中的每一对的所述两个差分电流中的每个差分电流提供至第一求和节点和第二求和节点中的一个;
识别所述第一电流求和节点和所述第二电流求和节点的平均电压值;
响应于识别到所述第一电流求和节点和所述第二电流求和节点的所述平均电压值,通过生成两个公共电流信号并且分别向所述第一电流求和节点和所述第二电流求和节点中的每一个提供所述两个公共电流信号中的第一公共电流信号和第二公共电流信号来将所述第一电流求和节点和所述第二电流求和节点的所述平均电压值设置为预定目标电压,其中,所述两个公共电流信号的大小和方向相同;
生成具有相同大小和相反方向的两个预定差分电流信号;
分别向所述第一电流求和节点和所述第二电流求和节点提供所述两个预定差分电流中的第一差分电流和第二差分电流;
将从所述第一电流求和节点提供的总求和电流与从所述第二电流求和节点提供的总求和电流进行比较;以及
当从所述第一电流求和节点提供的总求和电流与从所述第二电流求和节点提供的总求和电流相等时,输出指示符。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762455703P | 2017-02-07 | 2017-02-07 | |
US62/455,703 | 2017-02-07 | ||
PCT/US2018/017243 WO2018148293A1 (en) | 2017-02-07 | 2018-02-07 | Systems and methods for mixed-signal computing |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110383282A true CN110383282A (zh) | 2019-10-25 |
Family
ID=63107049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880010267.5A Pending CN110383282A (zh) | 2017-02-07 | 2018-02-07 | 用于混合信号计算的***和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10255551B2 (zh) |
EP (1) | EP3580699B1 (zh) |
KR (1) | KR102542532B1 (zh) |
CN (1) | CN110383282A (zh) |
WO (1) | WO2018148293A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10536182B2 (en) * | 2015-11-24 | 2020-01-14 | Georgia Tech Research Corporation | Bidirectional oscillator-based radio with integrated antenna |
CN111448573B (zh) | 2017-09-15 | 2024-01-30 | 米西克有限公司 | 用于混合信号计算的***和方法 |
EP3769426A4 (en) | 2018-03-19 | 2021-12-22 | Mythic, Inc. | SYSTEM AND METHOD FOR CALCULATION OF MIXED SIGNALS |
US10489483B1 (en) * | 2018-09-21 | 2019-11-26 | National Technology & Engineering Solutions Of Sandia, Llc | Circuit arrangement and technique for setting matrix values in three-terminal memory cells |
US11886987B2 (en) * | 2019-06-25 | 2024-01-30 | Arm Limited | Non-volatile memory-based compact mixed-signal multiply-accumulate engine |
US20210064981A1 (en) * | 2019-08-26 | 2021-03-04 | International Business Machines Corporation | Controlling performance of deployed deep learning models on resource constrained edge device via predictive models |
US20210064379A1 (en) | 2019-08-29 | 2021-03-04 | Arm Limited | Refactoring MAC Computations for Reduced Programming Steps |
EP3992862A1 (en) | 2020-10-28 | 2022-05-04 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Electronic circuit for calculating weighted sums |
US11256988B1 (en) * | 2021-07-19 | 2022-02-22 | Information Systems Laboratories, Inc. | Process and method for real-time sensor neuromorphic processing |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5150450A (en) * | 1990-10-01 | 1992-09-22 | The United States Of America As Represented By The Secretary Of The Navy | Method and circuits for neuron perturbation in artificial neural network memory modification |
CN1528047A (zh) * | 2000-12-22 | 2004-09-08 | ӡ�����Ƽ��ɷ�����˾ | 低噪声完全差分放大的电路布置 |
CN101663819A (zh) * | 2007-04-23 | 2010-03-03 | 高通股份有限公司 | 开关电容器积分与求和电路 |
CN102158659A (zh) * | 2010-02-05 | 2011-08-17 | 西门子公司 | 用于图像的差分测量的方法和装置 |
US20130141474A1 (en) * | 2011-12-01 | 2013-06-06 | Ki-Duk Kim | Voltage summing buffer, digital-to-analog converter and source driver of display device including the same |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5479578A (en) * | 1989-06-15 | 1995-12-26 | General Electric Company | Weighted summation circuitry with digitally controlled capacitive structures |
US5039870A (en) * | 1990-05-21 | 1991-08-13 | General Electric Company | Weighted summation circuits having different-weight ranks of capacitive structures |
JPH04281584A (ja) * | 1990-08-01 | 1992-10-07 | General Electric Co <Ge> | 複数の入力信号の重みづけられた複数の加算を行う装置 |
US5155377A (en) * | 1991-08-20 | 1992-10-13 | Intel Corporation | Charge domain differential conductance synapse cell for neural networks |
AU1555495A (en) * | 1993-12-23 | 1995-07-10 | State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Portland State University, The | Programmable analog array circuit |
US5630024A (en) * | 1994-01-19 | 1997-05-13 | Nippon Telegraph And Telephone Corporation | Method and apparatus for processing using neural network with reduced calculation amount |
US9760533B2 (en) | 2014-08-14 | 2017-09-12 | The Regents On The University Of Michigan | Floating-gate transistor array for performing weighted sum computation |
-
2018
- 2018-02-07 CN CN201880010267.5A patent/CN110383282A/zh active Pending
- 2018-02-07 US US15/890,402 patent/US10255551B2/en active Active
- 2018-02-07 KR KR1020197025728A patent/KR102542532B1/ko active IP Right Grant
- 2018-02-07 EP EP18751745.3A patent/EP3580699B1/en active Active
- 2018-02-07 WO PCT/US2018/017243 patent/WO2018148293A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5150450A (en) * | 1990-10-01 | 1992-09-22 | The United States Of America As Represented By The Secretary Of The Navy | Method and circuits for neuron perturbation in artificial neural network memory modification |
CN1528047A (zh) * | 2000-12-22 | 2004-09-08 | ӡ�����Ƽ��ɷ�����˾ | 低噪声完全差分放大的电路布置 |
CN101663819A (zh) * | 2007-04-23 | 2010-03-03 | 高通股份有限公司 | 开关电容器积分与求和电路 |
CN102158659A (zh) * | 2010-02-05 | 2011-08-17 | 西门子公司 | 用于图像的差分测量的方法和装置 |
US20130141474A1 (en) * | 2011-12-01 | 2013-06-06 | Ki-Duk Kim | Voltage summing buffer, digital-to-analog converter and source driver of display device including the same |
Also Published As
Publication number | Publication date |
---|---|
US10255551B2 (en) | 2019-04-09 |
EP3580699A1 (en) | 2019-12-18 |
EP3580699B1 (en) | 2023-12-06 |
KR20190107143A (ko) | 2019-09-18 |
US20180247192A1 (en) | 2018-08-30 |
EP3580699A4 (en) | 2020-12-23 |
KR102542532B1 (ko) | 2023-06-12 |
WO2018148293A1 (en) | 2018-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110383282A (zh) | 用于混合信号计算的***和方法 | |
Yang et al. | Research progress on memristor: From synapses to computing systems | |
US10339202B2 (en) | Resistive memory arrays for performing multiply-accumulate operations | |
EP3262571B1 (en) | Hardware accelerators for calculating node values of neural networks | |
US11348002B2 (en) | Training of artificial neural networks | |
CN111433792B (zh) | 可编程可重置人工神经网络的基于计数器的电阻处理单元 | |
Ma et al. | Neuromorphic computing with memristive devices | |
US11544540B2 (en) | Systems and methods for neural network training and deployment for hardware accelerators | |
US11580368B2 (en) | Artificial neural network circuit | |
CN106934457B (zh) | 一种可灵活时分复用的脉冲神经元实现架构 | |
US20210342678A1 (en) | Compute-in-memory architecture for neural networks | |
CN111052153A (zh) | 使用半导体存储元件的神经网络运算电路及动作方法 | |
US20200286553A1 (en) | In-memory computation device with inter-page and intra-page data circuits | |
CN114614865A (zh) | 基于忆阻器阵列的预编码装置和信号处理方法 | |
Velasquez et al. | Automated synthesis of crossbars for nanoscale computing using formal methods | |
US11699721B2 (en) | Integrate-and-fire neuron circuit using single-gated feedback field-effect transistor | |
JP2023547069A (ja) | 分散型マルチコンポーネントシナプス計算構造 | |
Hassan et al. | Hybrid spiking-based multi-layered self-learning neuromorphic system based on memristor crossbar arrays | |
Wu et al. | ReRAM crossbar-based analog computing architecture for naive bayesian engine | |
US20220138546A1 (en) | Expandable neuromorphic circuit | |
Van Nguyen et al. | Quantization, training, parasitic resistance correction, and programming techniques of memristor-crossbar neural networks for edge intelligence | |
KR20230029759A (ko) | 아날로그 크로스바 어레이들을 업데이트하기 위한 희소 수정가능 비트 길이 결정 펄스 생성 | |
CN113222131B (zh) | 基于1t1r的可实现带符号权重系数的突触阵列电路 | |
US20080147954A1 (en) | Crossbar arithmetic and summation processor | |
CN115857871B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: michigan Applicant after: University of Michigan Board of Directors Applicant after: Mythic, Inc. Address before: michigan Applicant before: THE REGENTS OF THE University OF MICHIGAN Applicant before: Mythic, Inc. |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20191025 |