CN111611534B - 一种动态偏置模拟向量-矩阵乘法运算电路及其运算控制方法 - Google Patents
一种动态偏置模拟向量-矩阵乘法运算电路及其运算控制方法 Download PDFInfo
- Publication number
- CN111611534B CN111611534B CN201910143504.1A CN201910143504A CN111611534B CN 111611534 B CN111611534 B CN 111611534B CN 201910143504 A CN201910143504 A CN 201910143504A CN 111611534 B CN111611534 B CN 111611534B
- Authority
- CN
- China
- Prior art keywords
- weight
- matrix multiplication
- constant
- semiconductor device
- programmable semiconductor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 239000011159 matrix material Substances 0.000 title claims abstract description 72
- 238000000034 method Methods 0.000 title claims abstract description 28
- 239000004065 semiconductor Substances 0.000 claims abstract description 79
- 230000009467 reduction Effects 0.000 claims abstract description 6
- 230000001276 controlling effect Effects 0.000 claims description 11
- 239000000758 substrate Substances 0.000 claims description 7
- 238000004088 simulation Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 4
- 238000007667 floating Methods 0.000 claims description 3
- 230000001105 regulatory effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 230000003071 parasitic effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000087 stabilizing effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000002784 hot electron Substances 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/08—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices
- H03K19/094—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices using field-effect transistors
- H03K19/0944—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices using field-effect transistors using MOSFET or insulated gate field-effect transistors, i.e. IGFET
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/5443—Sum of products
-
- 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/16—Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/0175—Coupling arrangements; Interface arrangements
- H03K19/017581—Coupling arrangements; Interface arrangements programmable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Power Engineering (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Complex Calculations (AREA)
- Logic Circuits (AREA)
Abstract
本发明提供一种动态偏置模拟向量‑矩阵乘法运算电路及其运算控制方法,该动态偏置模拟向量‑矩阵乘法运算电路包括:正值权重列,常数列和减法器,减法器的数量等于正值权重列的数量且二者一一对应连接,常数列的数量小于正值权重列的数量;减法器的被减数输入端对应连接正值权重列的输出端,减数输入端连接常数列的输出端,输出端输出运算结果;其中,多个减法器的减数输入端连接同一常数列。在将权重写入可编程半导体器件之前,将权重阵列中每一个元素均加上一个常数正值得到待配置权重阵列,将待配置权重阵列写入正值权重列,将常数正值写入该常数列中,以此,不需要设置负值权重列,能够简化电路结构。
Description
技术领域
本发明涉及半导体集成电路领域,尤其涉及一种动态偏置模拟向量-矩阵乘法运算电路及其运算控制方法。
背景技术
矩阵乘法运算广泛应用于图像处理、推荐系统、数据降维等数据挖掘领域,然而,传统的技术架构和仅靠单台计算机基于串行的方式越来越不适应当前海量数据处理的要求。因此,扩大矩阵乘法的运算规模并降低其运算时间,将有利于满足矩阵分解算法处理大规模数据的要求。
但是,现有模拟向量-矩阵乘法运算电路(如图1所示)将权重存储在闪存晶体管阵列当中,实际应用时,模拟向量-矩阵乘法运算的权重有正值也有负值,但是闪存晶体管只能存储正值权重,所以,对于负值权重,需要通过减法电路来实现,此时闪存阵列需要设置多个正值权重列和多个负值权重列,通常,正值权重列和负值权重列需要间隔设置,比如奇数列存储正值权重,偶数列存储负值权重,或者反之,并且一个正值权重列与一个负值权重列连接至一减法电路,形成一个可存储正值也可存储负值的权重列,这种方法极大地造成面积浪费与成本开销。
发明内容
有鉴于此,本发明提供了一种动态偏置模拟向量-矩阵乘法运算电路及其运算控制方法,能够简化电路结构,有效减少元器件数量,减小电路面积,降低成本开销,利于集成化。
为了实现上述目的,本发明采用如下技术方案:
第一方面,提供一种动态偏置模拟向量-矩阵乘法运算电路,包括:可编程半导体器件阵列以及减法器;
该可编程半导体器件阵列包括:正值权重列和常数列,该减法器的数量等于该正值权重列的数量且二者一一对应连接,该常数列的数量小于该正值权重列的数量;
其中,常数列可以是一列或者复制多列;
减法器的被减数输入端对应连接正值权重列的输出端,减数输入端连接常数列的输出端,输出端输出模拟向量-矩阵乘法运算结果;
其中,多个减法器的减数输入端连接同一常数列。
进一步地,动态偏置模拟向量-矩阵乘法运算电路还包括:稳流模块,该稳流模块连接在该常数列的输出端。
进一步地,动态偏置模拟向量-矩阵乘法运算电路还包括:
编程电路,连接可编程半导体器件阵列中每一个可编程半导体器件的源极、栅极和/或衬底,用于调控可编程半导体器件的阈值电压。
进一步地,该编程电路包括:电压产生电路和电压控制电路,该电压产生电路用于产生编程电压或者擦除电压,该电压控制电路用于将该编程电压加载至选定的可编程半导体器件的源极,或者,将擦除电压加载至选定的可编程半导体器件的栅极或衬底,以调控可编程半导体器件的阈值电压。
进一步地,动态偏置模拟向量-矩阵乘法运算电路还包括:
控制器,连接该编程电路,通过控制该编程电路工作,控制投入工作的可编程半导体器件的数量以及各可编程半导体器件的阈值电压。
进一步地,动态偏置模拟向量-矩阵乘法运算电路还包括:行列译码器,用于选通待编程的可编程半导体器件。
进一步地,该可编程半导体器件采用浮栅晶体管。
第二方面,提供一种模拟向量-矩阵乘法运算控制方法,应用于上述的动态偏置模拟向量-矩阵乘法运算电路,所述运算控制方法包括:
根据模拟向量-矩阵乘法运算需求得到对应的权重阵列,所述权重阵列包含负值权重和正值权重;
将所述权重阵列中所有权重值均加上常数C,得到待配置权重阵列,其中,所述常数C大于等于所述绝对值最大的负值权重的绝对值;
将待配置权重阵列写入正值权重列中,并将常数C写入常数列中。
本发明提供的动态偏置模拟向量-矩阵乘法运算电路及其运算控制方法,该动态偏置模拟向量-矩阵乘法运算电路的可编程半导体器件阵列包括:正值权重列,常数列和减法器,减法器的数量等于正值权重列的数量且二者一一对应连接,常数列的数量小于正值权重列的数量;减法器的被减数输入端对应连接正值权重列的输出端,减数输入端连接常数列的输出端,输出端输出运算结果;其中,多个减法器的减数输入端连接同一常数列。在将权重写入可编程半导体器件之前,将权重阵列中每一个元素均加上一个常数正值得到待配置权重阵列,该常数正值大于等于该权重阵列中绝对值最大的负值权重的绝对值,以此使得待配置权重阵列中没有负值权重,将待配置权重阵列写入正值权重列,将常数正值写入该常数列中,减法器的被减数输入端对应连接正值权重列的输出端,减数输入端连接常数列的输出端,输出端输出运算结果,即通过减法器在运算结果中减去该常数正值的影响,以此,不需要设置负值权重列,且多个正值权重列共享常数列,能够简化电路结构,有效减少元器件数量,减小电路面积,降低成本开销,利于集成化。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有模拟向量-矩阵乘法运算电路的电路结构图;
图2为本发明实施例动态偏置模拟向量-矩阵乘法运算电路的电路结构图一;
图3为本发明实施例动态偏置模拟向量-矩阵乘法运算电路的电路结构图二;
图4为本发明实施例动态偏置模拟向量-矩阵乘法运算电路的电路结构图三;
图5为本发明实施例动态偏置模拟向量-矩阵乘法运算电路的运算控制方法;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有模拟向量-矩阵乘法运算电路设置多个正值权重列和多个负值权重列,分别用于存储正值权重与负值权重,通常,正值权重列和负值权重列需要间隔设置,比如奇数列存储正值权重,偶数列存储负值权重,或者反之,根据可编程半导体器件特性:I=VW,I表示输出电流,V表示承载电压、W表示可编程半导体器件的权重,现有电路通常将上式变为I=(VW+)-(VW-),其中W+与W-分别表示正值权重与负值权重,用正值权重列和负值权重列分别存储正值权重和负值权重,极大造成面积浪费和成本开销。
为解决现有技术中的上述技术问题,本发明实施例提供一种动态偏置模拟向量-矩阵乘法运算电路,如图2所示,该动态偏置模拟向量-矩阵乘法运算电路包括:可编程半导体器件阵列以及减法器301~30n。
该可编程半导体器件阵列包括:正值权重列101~10n和常数列20,该减法器301~30n的数量等于该正值权重列101~10n的数量且二者一一对应连接,该常数列20的数量小于该正值权重列301~30n的数量(本实施例中以常数列20的数量为1对本申请的方案进行示例性说明)。
减法器的被减数输入端对应连接正值权重列的输出端,减数输入端连接该常数列20的输出端,输出端运算结果;
其中,多个减法器301~30n的减数输入端连接同一常数列20。
其中,模拟向量-矩阵乘法运算电路实现模拟向量-矩阵乘法运算的原理如下:针对一个M行×N列的可编程半导体器件阵列,每一列的所有可编程半导体器件的源极均连接至同一模拟电压输入端,N列可编程半导体器件对应连接N个模拟电压输入端,每一行的所有可编程半导体器件的栅极均连接至同一偏置电压输入端,M行可编程半导体器件对应连接M个偏置电压输入端,每一列的所有可编程半导体器件的漏极均连接至同一个模拟电流输出端,N列可编程半导体器件对应连接N个模拟电流输出端,其中,每个可编程半导体器件的阈值电压均可调节。N为大于等于零的正整数,M为大于等于零的正整数,M和N可以相等,也可以不等,以此形成源极耦合、漏极求和的拓扑结构。
其中,通过预先按照一定规则动态调节各可编程半导体器件的阈值电压VTH,可将各可编程半导体器件看作一个可变的等效模拟权重(记为Wk,j,其中0<k<M和0<j<N分别代表行号和列号),相当于存储一个模拟数据,而可编程半导体器件阵列则存储一个模拟数据阵列
电路工作时,将一行模拟电压信号V1~VN分别施加至N列可编程半导体器件,其中第K列所有可编程半导体器件的源极均得到一模拟电压信号Vk,栅极输入一偏置电压Vb,漏极分别输出电流信号Ik,1~Ik,N,其中,根据可编程半导体器件特性,I=V×W每个可编程半导体器件的漏极输出电流等于源极电压乘以该可编程半导体器件的权重,即Ik,1=VkWk,1,Ik,N=VkWk,N,因为每一列的所有可编程半导体器件的漏极均连接至同一个模拟电流输出端,根据基尔霍夫定律,所以在该模拟电流输出端的电流Ij为该列所有可编程半导体器件的漏极电流之和,即为多个模拟电流输出端输出多个电流和/>实现矩阵乘法运算功能。
当然,该可编程半导体器件阵列也可以采用栅极耦合、源极求和的拓扑结构或栅极耦合、漏极求和的拓扑结构,本发明实施例对此不作限制。
下面,对利用本发明实施例动态偏置模拟向量-矩阵乘法运算电路实现减法运算的原理进行说明:
在将权重阵列写入可编程半导体器件之前,将权重阵列中每一个元素均加上一个常数正值C,得到待配置权重阵列,该常数正值大于等于该权重阵列中绝对值最大的负值权重的绝对值,以此使得待配置权重阵列中没有负值权重;然后,将待配置权重阵列写入正值权重列,将常数正值写入该常数列中,一减法器的被减数输入端对应连接一正值权重列的输出端,减数输入端连接一常数列的输出端,输出端输出模拟向量-矩阵乘法运算结果,即通过减法器在运算结果中减去该常数正值的影响,以此,不需要设置负值权重列,且多个正值权重列共享一常数列,能够简化电路结构,有效减少元器件数量,减小电路面积,降低成本开销,利于集成化。
下面,针对某一行来说,以权重为【5,-3,6,-8】,输入电压为V为例,说明本申请的原理(本例为了简洁说明本申请原理,选用了最为简单的权重行为例,在实际应用中,权重阵列的规模依运算需求而定,对于深度神经网络运算来说,权重阵列往往规模很大,本发明的优势更加明显)。
若是采用现有模拟向量-矩阵乘法运算电路,针对该行,则需要在第一正值权重晶体管(对应第一正值权重列)中写入5,其对应的第一负值权重晶体管(对应第一负值权重列)中写入0,通过对应的减法器后,输出5V;在第二正值晶体管中写入0,第二负值晶体管中写入-3,通过对应的减法器后,输出-3V;在第三正值晶体管中写入6,第三负值晶体管中写入0,通过对应的减法器后,输出6V;在第四正值晶体管中写入0,第四负值晶体管中写入-8,通过对应的减法器后,输出-8V,进而得到最终的结果【5V,-3V,6V,-8V】,共需要8个晶体管实现。
而采用本发明实施例提供的模拟向量-矩阵乘法运算电路,先将所有权重值均加上9(大于等于8即可),得到待配置权重列【14,6,15,1】,则需要在第一正值权重晶体管(对应第1正值权重列)中写入14,第二正值晶体管中写入6,第三正值晶体管中写入14,第四正值晶体管中写入1,常数晶体管(对应常数列)中写入9,通过对应的减法器后,输出最终的结果【5V,-3V,6V,-8V】,共需要5个晶体管实现,由此可知,与现有技术相比,本申请有效减少了约38%的晶体管。
本领域技术人员可以理解的是,运算规模越大,本申请的优势越明显。
在一个可选的实施例中,参见图3,该动态偏置模拟向量-矩阵乘法运算电路可以设置多个常数列,将多个常数列等分或不等分地穿插在整个可编程半导体器件阵列中,从而在可编程半导体器件阵列规模较大时,能有效减小共享该常数列的正值权重列的列数,以此,能够减少寄生参数的影响,提高驱动力,电路的使用和控制也能更灵活,提高运算的精度和速度。
本领域技术人员可以理解的是,当该常数列为多个时,可以统一设置该常数列的权重,此时,将权重阵列作为一个整体来考虑;也可以将每个常数列与其对应的正值权重列一起,作为一个运算单元,在进行实际应用中,可将权重阵列按列拆分,然后分配到不同的运算单元中,每个运算单元根据自身的运算任务,设置常数列的权重值,进行各自的运算,以此能够更加灵活地实现运算,并且,也可以实现多运算任务并行处理,能够有效提高运算速度和效率。
在一个可选的实施例中,参见图4,该动态偏置模拟向量-矩阵乘法运算电路还包括:稳流模块40,该稳流模块40连接在该常数列20的输出端。
其中,通过在常数列20的输出端设置稳流模块,可以有效减小寄生参数的影响,进一步提高驱动力,提高运算的精度和速度。
在一个可选的实施例中,该动态偏置模拟向量-矩阵乘法运算电路还包括:编程电路,连接可编程半导体器件阵列中每一个可编程半导体器件的源极、栅极和/或衬底,用于调控可编程半导体器件的阈值电压。
其中,该编程电路可以包括:电压产生电路和电压控制电路,该电压产生电路用于产生编程电压或者擦除电压,该电压控制电路用于将该编程电压加载至选定的可编程半导体器件的源极,或者,将擦除电压加载至选定的可编程半导体器件的栅极或衬底,以调控可编程半导体器件的阈值电压。
具体地,编程电路利用热电子注入效应,根据可编程半导体器件阈值电压需求数据,向可编程半导体器件的源极施加高电压,将沟道电子加速到高速,以增加可编程半导体器件的阈值电压。
并且,编程电路利用隧穿效应,根据可编程半导体器件阈值电压需求数据,向可编程半导体器件的栅极或衬底施加高电压,从而减少可编程半导体器件的阈值电压。
在一个可选的实施例中,该动态偏置模拟向量-矩阵乘法运算电路还可以包括:控制器,连接该编程电路,通过控制该编程电路工作,控制投入工作的可编程半导体器件的数量以及各可编程半导体器件的阈值电压;并且,该控制器还可以根据模拟向量-矩阵乘法运算需求对运算进行控制。
在一个可选的实施例中,该动态偏置模拟向量-矩阵乘法运算电路还可以包括:行列译码器,用于选通待编程的可编程半导体器件。
在上述实施例中,该可编程半导体器件可以采用浮栅晶体管。
在上述实施例中,该动态偏置模拟向量-矩阵乘法运算电路还可以包括:偏置电压产生电路,用于产生预设的偏置电压,输入至偏置电压输入端,可以理解的是,该模拟向量-矩阵乘法运算电路还可以不设置偏置电压产生电路,通过复用编程电路中的电压产生电路,控制该电压产生电路产生预设的偏置电压,输入至偏置电压输入端。
在一个可选的实施例中,该动态偏置模拟向量-矩阵乘法运算电路还可以包括:转换装置,连接在多个模拟电压输入端之前,用于将多个模拟电流输入信号分别转换为模拟电压输入信号,输至对应的模拟电压输入端。
其中,该转换装置可以包括:多个运算放大器以及与多个运算放大器一一对应连接的多个可编程半导体器件。每个运算放大器的反相输入端均连接至对应可编程半导体器件的漏极,正相输入端连接第一固定偏压Vd,运算放大器的输出端与可编程半导体器件的源极相连,并连接至对应的模拟电压输入端,可编程半导体器件的栅极连接第一固定偏压Vd,运算放大器的反相输入端用于接收模拟电流输入信号Iin1~IinN。
在一个可选的实施例中,该动态偏置模拟向量-矩阵乘法运算电路还可以包括:电流检测输出电路,连接在模拟电流输出端之后,用于对模拟电流输出端输出的模拟电流输出信号进行处理和输出。
其中,通过该电流检测输出电路对运算完的电流进行精确处理并输出,或者接到下一个可编程半导体阵列的输入,能够有效实现电流精准输出。
该电流检测输出电路可以包括:多个运算放大器,每个运算放大器的正相输入端连接第二固定偏置Vs,反相输入端连接至对应的模拟电流输出端,并且,反相输入端与输出端之间连接一电阻器或晶体管等。其中,该第二固定偏置一般为高电压,该运算放大器将模拟电流输出端的电压控制在与正相输入端的电压相等,用来保证可编程半导体器件的栅源电压仅由该可编程半导体器件对应的输入电压控制,进而使得运算放大器的输出端电压代表对应列可编程半导体器件的输出电流的幅度。
以上仅是举例说明本发明实施例提供的模拟向量-矩阵乘法运算电路中各模块的具体结构,在具体实施时,上述各模块的具体结构不限于本发明实施例提供的上述结构,还可以是本领域技术人员可知的其他结构,在此不作限定。
本申请实施例还提供了一种动态偏置模拟向量-矩阵乘法运算电路的运算控制方法,可以用于控制上述各实施例所描述的动态偏置模拟向量-矩阵乘法运算电路,如下面的实施例所述。由于运算控制方法解决问题的原理与上述电路相似,因此运算控制方法的实施可以参见上述电路的实施,重复之处不再赘述。
该模拟向量-矩阵乘法运算控制方法的流程如图5所示,该模拟向量-矩阵乘法运算控制方法应用于上述的动态偏置模拟向量-矩阵乘法运算电路,具体包括以下内容:
步骤S100:根据模拟向量-矩阵乘法运算需求得到对应的权重阵列,所述权重阵列包含负值权重和正值权重。
其中,通过从模拟向量-矩阵乘法运算需求中抽取每一项对应的权重,能够得到该权重阵列。
步骤S200:将权重阵列中所有权重值均加上常数C,得到待配置权重阵列,其中,所述常数C大于等于所述绝对值最大的负值权重的绝对值。
步骤S300:将待配置权重阵列写入正值权重列中,并将常数C写入常数列中。
通过上述技术方案可知,本发明提供的动态偏置模拟向量-矩阵乘法运算电路的运算控制方法,在将权重写入可编程半导体器件之前,将权重阵列中每一个元素均加上一个常数正值得到待配置权重阵列,该常数正值大于等于该权重阵列中绝对值最大的负值权重的绝对值,以此使得待配置权重阵列中没有负值权重,将待配置权重阵列写入正值权重列,将常数正值写入该常数列中,一减法器的被减数输入端对应连接一正值权重列的输出端,减数输入端连接一常数列的输出端,输出端输出模拟向量-矩阵乘法运算结果,即通过减法器在运算结果中减去该常数正值的影响,以此,不需要设置负值权重列,且多个正值权重列共享一常数列,能够简化电路结构,有效减少元器件数量,减小电路面积,降低成本开销,利于集成化。
在另一个实施例中,当该动态偏置模拟向量-矩阵乘法运算电路的常数列为多个时,该运算控制方法包括以下内容:
步骤1:根据模拟向量-矩阵乘法运算需求得到对应的权重阵列,所述权重阵列包含负值权重和正值权重。
步骤2:将根据模拟向量-矩阵乘法运算需求得到对应的权重阵列按列拆分成多个权重子阵列;
步骤3:针对每个权重子阵列,将该权重子阵列中所有权重值均加上一常数,得到待配置权重子阵列,其中,所述常数大于等于该权重子阵列中绝对值最大的负值权重的绝对值。
步骤S300:针对每个权重子阵列,将待配置权重子阵列写入正值权重列中,并将对应的常数写入该正值权重列对应的常数列中。
通过上述技术方案可知,本发明提供的动态偏置模拟向量-矩阵乘法运算电路的运算控制方法,不仅不需要设置负值权重列,能够简化电路结构,而且还能减少寄生参数的影响,提高驱动力,并且能够更加灵活地实现运算,并且,也可以实现多运算任务并行处理,能够有效提高运算速度和效率。
另一方面,本发明实施例还提供一种芯片,该芯片包括上述动态偏置模拟向量-矩阵乘法运算电路。
另外,本发明实施例还提供一种电子设备,该电子设备可以包括上述的动态偏置模拟向量-矩阵乘法运算电路,具体的,电子设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
另外,根据本发明的实施例,上文运算控制方法可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种动态偏置模拟向量-矩阵乘法运算电路,其特征在于,包括:可编程半导体器件阵列以及减法器;
所述可编程半导体器件阵列包括:正值权重列和常数列,所述减法器的数量等于所述正值权重列的数量且二者一一对应连接,所述常数列的数量小于所述正值权重列的数量;
所述常数列是一列或者复制多列;
减法器的被减数输入端对应连接正值权重列的输出端,减数输入端连接常数列的输出端,输出端输出运算结果;
其中,多个减法器的减数输入端连接同一常数列;
其中,所述动态偏置模拟向量-矩阵乘法运算电路还包括:电流检测输出电路,每一列的所有可编程半导体器件的漏极均连接至同一个模拟电流输出端,所述电流检测输出电路连接在模拟电流输出端之后,用于对模拟电流输出端输出的模拟电流输出信号进行处理和输出。
2.根据权利要求1所述的动态偏置模拟向量-矩阵乘法运算电路,其特征在于,还包括:稳流模块,所述稳流模块连接在所述常数列的输出端。
3.根据权利要求1所述的动态偏置模拟向量-矩阵乘法运算电路,其特征在于,还包括:
编程电路,连接可编程半导体器件阵列中每一个可编程半导体器件的源极、栅极和/或衬底,用于调控可编程半导体器件的阈值电压。
4.根据权利要求3所述的动态偏置模拟向量-矩阵乘法运算电路,其特征在于,所述编程电路包括:电压产生电路和电压控制电路,所述电压产生电路用于产生编程电压或者擦除电压,所述电压控制电路用于将所述编程电压加载至选定的可编程半导体器件的源极,或者,将擦除电压加载至选定的可编程半导体器件的栅极或衬底,以调控可编程半导体器件的阈值电压。
5.根据权利要求1所述的动态偏置模拟向量-矩阵乘法运算电路,其特征在于,还包括:
控制器,连接编程电路,通过控制所述编程电路工作,控制投入工作的可编程半导体器件的数量以及各可编程半导体器件的阈值电压。
6.根据权利要求1所述的动态偏置模拟向量-矩阵乘法运算电路,其特征在于,还包括:行列译码器,用于选通待编程的可编程半导体器件。
7.根据权利要求1至6任一项所述的动态偏置模拟向量-矩阵乘法运算电路,其特征在于,所述可编程半导体器件采用浮栅晶体管。
8.一种模拟向量-矩阵乘法运算控制方法,其特征在于,应用于权利要求1至7任一项所述的动态偏置模拟向量-矩阵乘法运算电路,所述运算控制方法包括:
根据模拟向量-矩阵乘法运算需求得到对应的权重阵列,所述权重阵列包含负值权重和正值权重;
将所述权重阵列中所有权重值均加上常数C,得到待配置权重阵列,其中,所述常数C大于等于负值权重的最大绝对值;
将待配置权重阵列写入正值权重列中,并将常数C写入常数列中。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910143504.1A CN111611534B (zh) | 2019-02-26 | 2019-02-26 | 一种动态偏置模拟向量-矩阵乘法运算电路及其运算控制方法 |
US17/434,099 US12093342B2 (en) | 2019-02-26 | 2019-04-03 | Dynamic bias analog vector-matrix multiplication operation circuit and operation control method therefor |
PCT/CN2019/081337 WO2020172950A1 (zh) | 2019-02-26 | 2019-04-03 | 一种动态偏置模拟向量-矩阵乘法运算电路及其运算控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910143504.1A CN111611534B (zh) | 2019-02-26 | 2019-02-26 | 一种动态偏置模拟向量-矩阵乘法运算电路及其运算控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111611534A CN111611534A (zh) | 2020-09-01 |
CN111611534B true CN111611534B (zh) | 2023-12-01 |
Family
ID=72202982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910143504.1A Active CN111611534B (zh) | 2019-02-26 | 2019-02-26 | 一种动态偏置模拟向量-矩阵乘法运算电路及其运算控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12093342B2 (zh) |
CN (1) | CN111611534B (zh) |
WO (1) | WO2020172950A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10819362B1 (en) * | 2019-02-21 | 2020-10-27 | Ambient Scientific, Inc. | High speed analog to digital converter |
CN112464156B (zh) * | 2020-12-17 | 2022-08-23 | 长江先进存储产业创新中心有限责任公司 | 矩阵与向量的乘法运算方法及装置 |
CN113672860B (zh) * | 2021-08-25 | 2023-05-12 | 恒烁半导体(合肥)股份有限公司 | 一种正负数兼容的存内运算方法、乘加运算装置及其应用 |
CN114781296B (zh) * | 2022-04-27 | 2024-09-20 | 山东大学 | 一种基于矩阵分解的逻辑电路简化方法及系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007192718A (ja) * | 2006-01-20 | 2007-08-02 | Oki Electric Ind Co Ltd | 温度センサ |
CN101777876A (zh) * | 2010-01-21 | 2010-07-14 | 清华大学 | 对数放大器 |
JP2011171854A (ja) * | 2010-02-16 | 2011-09-01 | Canon Inc | バッファリング回路および増幅回路 |
CN102929842A (zh) * | 2012-10-23 | 2013-02-13 | 南京航空航天大学 | 基于fpaa的可重构矢量-矩阵乘法器设计方法 |
CN102983853A (zh) * | 2012-11-26 | 2013-03-20 | 电子科技大学 | 一种模拟平方电路 |
CN103345291A (zh) * | 2013-07-10 | 2013-10-09 | 广州金升阳科技有限公司 | 可调正负温度系数的恒流源及其调节方法 |
CN104460810A (zh) * | 2014-12-25 | 2015-03-25 | 武汉众为信息技术有限公司 | 一种可固定温度系数的电压基准电路 |
CN106055008A (zh) * | 2016-06-15 | 2016-10-26 | 泰凌微电子(上海)有限公司 | 电流偏置电路及提高正温度系数的方法 |
CN108763163A (zh) * | 2018-08-02 | 2018-11-06 | 北京知存科技有限公司 | 模拟向量-矩阵乘法运算电路 |
CN109086249A (zh) * | 2018-08-02 | 2018-12-25 | 北京知存科技有限公司 | 模拟向量-矩阵乘法运算电路 |
CN109359269A (zh) * | 2018-08-27 | 2019-02-19 | 北京大学 | 进行矩阵向量乘法运算的系统及进行神经网络运算方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102969995B (zh) | 2012-11-23 | 2015-05-06 | 锐迪科创微电子(北京)有限公司 | 应用于线性模式功率放大器的动态偏置控制电路 |
US9152827B2 (en) * | 2012-12-19 | 2015-10-06 | The United States Of America As Represented By The Secretary Of The Air Force | Apparatus for performing matrix vector multiplication approximation using crossbar arrays of resistive memory devices |
CN107615389B (zh) * | 2016-02-25 | 2021-04-13 | 慧与发展有限责任合伙企业 | 忆阻乘法器件、用于复数乘法累加运算的方法及忆阻阵列 |
CN109146070B (zh) * | 2017-06-16 | 2021-10-22 | 华为技术有限公司 | 一种支撑基于rram的神经网络训练的外围电路及系统 |
CN209514618U (zh) * | 2019-02-26 | 2019-10-18 | 北京知存科技有限公司 | 动态偏置模拟向量-矩阵乘法运算电路 |
CN111949935A (zh) * | 2019-05-16 | 2020-11-17 | 北京知存科技有限公司 | 模拟向量-矩阵乘法运算电路以及芯片 |
CN209657299U (zh) * | 2019-05-16 | 2019-11-19 | 北京知存科技有限公司 | 模拟向量-矩阵乘法运算电路以及芯片 |
CN111128279A (zh) * | 2020-02-25 | 2020-05-08 | 杭州知存智能科技有限公司 | 基于NAND Flash的存内计算芯片及其控制方法 |
CN213847079U (zh) | 2020-11-24 | 2021-07-30 | 深圳市双向诚科技有限公司 | 一种动态偏置电压基准led电源 |
CN112865727B (zh) | 2021-01-22 | 2024-04-12 | 上海华虹宏力半导体制造有限公司 | 一种动态偏置的功率放大器 |
-
2019
- 2019-02-26 CN CN201910143504.1A patent/CN111611534B/zh active Active
- 2019-04-03 US US17/434,099 patent/US12093342B2/en active Active
- 2019-04-03 WO PCT/CN2019/081337 patent/WO2020172950A1/zh active Application Filing
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007192718A (ja) * | 2006-01-20 | 2007-08-02 | Oki Electric Ind Co Ltd | 温度センサ |
CN101777876A (zh) * | 2010-01-21 | 2010-07-14 | 清华大学 | 对数放大器 |
JP2011171854A (ja) * | 2010-02-16 | 2011-09-01 | Canon Inc | バッファリング回路および増幅回路 |
CN102929842A (zh) * | 2012-10-23 | 2013-02-13 | 南京航空航天大学 | 基于fpaa的可重构矢量-矩阵乘法器设计方法 |
CN102983853A (zh) * | 2012-11-26 | 2013-03-20 | 电子科技大学 | 一种模拟平方电路 |
CN103345291A (zh) * | 2013-07-10 | 2013-10-09 | 广州金升阳科技有限公司 | 可调正负温度系数的恒流源及其调节方法 |
CN104460810A (zh) * | 2014-12-25 | 2015-03-25 | 武汉众为信息技术有限公司 | 一种可固定温度系数的电压基准电路 |
CN106055008A (zh) * | 2016-06-15 | 2016-10-26 | 泰凌微电子(上海)有限公司 | 电流偏置电路及提高正温度系数的方法 |
CN108763163A (zh) * | 2018-08-02 | 2018-11-06 | 北京知存科技有限公司 | 模拟向量-矩阵乘法运算电路 |
CN109086249A (zh) * | 2018-08-02 | 2018-12-25 | 北京知存科技有限公司 | 模拟向量-矩阵乘法运算电路 |
CN109359269A (zh) * | 2018-08-27 | 2019-02-19 | 北京大学 | 进行矩阵向量乘法运算的系统及进行神经网络运算方法 |
Also Published As
Publication number | Publication date |
---|---|
US12093342B2 (en) | 2024-09-17 |
US20220137924A1 (en) | 2022-05-05 |
WO2020172950A1 (zh) | 2020-09-03 |
CN111611534A (zh) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111611534B (zh) | 一种动态偏置模拟向量-矩阵乘法运算电路及其运算控制方法 | |
CN108763163B (zh) | 模拟向量-矩阵乘法运算电路 | |
CN109086249B (zh) | 模拟向量-矩阵乘法运算电路 | |
CN108777155B (zh) | 闪存芯片 | |
US11244225B2 (en) | Neural network processor configurable using macro instructions | |
US11461621B2 (en) | Methods and systems of implementing positive and negative neurons in a neural array-based flash memory | |
CN209657299U (zh) | 模拟向量-矩阵乘法运算电路以及芯片 | |
TW202036394A (zh) | 快閃記憶體之非揮發性計算方法 | |
CN111950718B (zh) | 利用存算一体芯片实现递进式cnn运算的方法 | |
US11216723B2 (en) | Pulse-width modulated multiplier | |
CN111949935A (zh) | 模拟向量-矩阵乘法运算电路以及芯片 | |
US11366874B2 (en) | Analog circuit for softmax function | |
CN111128279A (zh) | 基于NAND Flash的存内计算芯片及其控制方法 | |
US12033064B2 (en) | Neural network weight matrix adjusting method, writing control method and related apparatus | |
US10340002B1 (en) | In-cell differential read-out circuitry for reading signed weight values in resistive processing unit architecture | |
CN211016545U (zh) | 基于NAND Flash的存内计算芯片、存储装置以及终端 | |
CN112632460B (zh) | 源极耦合、漏极求和的模拟向量-矩阵乘法运算电路 | |
US11610101B2 (en) | Formation failure resilient neuromorphic device | |
CN111859261B (zh) | 计算电路及其操作方法 | |
CN209514618U (zh) | 动态偏置模拟向量-矩阵乘法运算电路 | |
US20200117984A1 (en) | Capacitor based resistive processing unit with symmetric weight update | |
CN116185336A (zh) | 一种基于sram的有符号数模拟存内计算电路 | |
CN114723027A (zh) | 基于神经网络权重矩阵缩放控制的存算一体芯片和方法 | |
CN109273035B (zh) | 闪存芯片的控制方法、终端 | |
CN111611535A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: Room 213-175, 2nd Floor, Building 1, No. 180 Kecheng Street, Qiaosi Street, Linping District, Hangzhou City, Zhejiang Province, 311100 Patentee after: Hangzhou Zhicun Computing Technology Co.,Ltd. Country or region after: China Address before: 1416, shining building, No. 35, Xueyuan Road, Haidian District, Beijing 100083 Patentee before: BEIJING WITINMEM TECHNOLOGY Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |