CN116127257A - 基于1t1r实现矢量乘法运算的电路构架及运算方法 - Google Patents

基于1t1r实现矢量乘法运算的电路构架及运算方法 Download PDF

Info

Publication number
CN116127257A
CN116127257A CN202210311144.3A CN202210311144A CN116127257A CN 116127257 A CN116127257 A CN 116127257A CN 202210311144 A CN202210311144 A CN 202210311144A CN 116127257 A CN116127257 A CN 116127257A
Authority
CN
China
Prior art keywords
circuit
row
units
output
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210311144.3A
Other languages
English (en)
Inventor
周煜梁
汪毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xinyuan Semiconductor Shanghai Co ltd
Original Assignee
Xinyuan Semiconductor Shanghai Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xinyuan Semiconductor Shanghai Co ltd filed Critical Xinyuan Semiconductor Shanghai Co ltd
Priority to CN202210311144.3A priority Critical patent/CN116127257A/zh
Publication of CN116127257A publication Critical patent/CN116127257A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/16Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/22Arrangements for performing computing operations, e.g. operational amplifiers for evaluating trigonometric functions; for conversion of co-ordinates; for computations involving vector quantities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4814Non-logic devices, e.g. operational amplifiers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Power Engineering (AREA)
  • Logic Circuits (AREA)

Abstract

本发明提供了一种基于1T1R实现矢量乘法运算的电路构架,包括输入电路、1T1R计算阵列以及输出电路,其中,所述1T1R计算阵列包括至少两行运算单元,各行运算单元的输入端共节点后作为所述1T1R计算阵列的输入端与所述输入电路相连,各行运算单元的输出端与所述输出电路相连;并且,各行运算单元均包括至少两个相并联1T1R忆阻器单元,所述输入电路用于对各运算单元输入输入信号;所述输入信号与各行运算单元内的T1R忆阻器单元相作用实现矢量乘法运算并产生输出信号;所述输出信号存储至所述输出电路内。本发明提供的基于1T1R实现矢量乘法运算以解决单个忆阻器无法实现多bit运算的问题。

Description

基于1T1R实现矢量乘法运算的电路构架及运算方法
技术领域
本发明涉及忆阻器数据存储设计技术领域,更为具体地,涉及一种基于1T1R实现矢量乘法运算的电路构架。
背景技术
忆阻器(ReRAM)是一种有记忆功能的非线性电阻,通过控制电流的变化可改变其阻值,如果把高阻值定义为“1”,低阻值定义为“0”,则这种电阻就可以实现存储数据的功能。具体地,在实际使用过程中,通常使用对忆阻器进行卷积运算的方式实现不同数据的存储。如附图1所示,取忆阻器的电导G(电阻R倒数,R=1/G)为卷积权重,电压为输入数据,那么每个并联的忆阻器电路的电流I=V*G。如果将一系列的忆阻器进行并联,那么对应电流输出则为所有权重与数据的乘加结果I=I1+I2+I3=V1*G1+V2*G2+V3*G3。
由于忆阻器本身是利用电阻存数据,因此,根据附图1的原理可知,忆阻器是一个很好的利用电阻做卷积运算的原理器件。现有的利用忆阻器做卷积核的运算架构如附图2所示,由附图2可知,显然,这种存算合一的架构能够提高运算性能,降低功耗损失。然而,在实际使用时,为满足存储需求,这种运算架构对忆阻器单元本身有要求。例如,如果要实现多bit(位)的乘法,则需要单个忆阻器单元支持多bit,为使单个忆阻器单元实现支持多bit,则对需要对每个忆阻器的电导值进行单独精确调控,进而实现对每个忆阻器设置任意权值的目的。并且,即便经过量化后的忆阻器,其权值通常也需要6~8bit(位)。此时,忆阻器的精确调控在量产的时候就需要耗费大量时间,严重抬高整个芯片的生产成本。
需要说明的是,通过忆阻器实现1bit(0,1)的数据是最为简单,但是如何仅使用1bit这一类忆阻器来快速降低成本,完成多bit数据的矢量矩阵乘法,是需要解决的问题。
此外,由附图2可知,在现有的利用忆阻器做卷积核的运算架构中,对ADC/DAC(讲模数转换,Analog Digital Converter/数模转换,Digital Analog Convert)的需求非常高,理论上每一行都需要一个DAC,每一列也需要一个ADC,这对于运算架构来说,也是一个很大的开销。
基于上述技术问题,亟需一种既能够高效地完成多bit运算,又能够降低运算单元使用ADC/DAC的成本的方法。
发明内容
鉴于上述问题,本发明的目的是提供一种基于1T1R实现矢量乘法运算的电路构架及运算方法,以解决单个忆阻器无法实现多bit运算的问题。
本发明提供的基于1T1R实现矢量乘法运算的电路构架包括输入电路、1T1R计算阵列以及输出电路,其中,
所述1T1R计算阵列包括至少两行运算单元,各行运算单元的输入端共节点后作为所述1T1R计算阵列的输入端与所述输入电路相连,各行运算单元的输出端与所述输出电路相连;并且,
各行运算单元均包括至少两个相并联1T1R忆阻器单元,所述输入电路用于对各运算单元输入输入信号;所述输入信号与各行运算单元内的T1R忆阻器单元相作用实现矢量乘法运算并产生输出信号;所述输出信号存储至所述输出电路内。
此外,优选的方案是,设待实现的矢量乘法运算为两个w bit矢量的乘法运算,所述1T1R计算阵列包括k行运算单元,各运算单元均包括相互并联的m个1T1R忆阻器单元;则,
所述1T1R计算阵列中的各参数满足如下约束条件:
k*log2m=w。
此外,优选的方案是,所述输入电路包括第一移位寄存器以及与所述第一移位寄存器相连的第一控制单元;其中,
所述输入电路通过所述第一移位寄存器配合所述第一控制单元将w bit的输入信号按位拆分为w个模拟输入信号,并通过w个时钟周期输入至所述1T1R计算阵列;并且,
所述输入电路自低位至高位向所述1T1R计算阵列输入所述模拟输入信号,每个时钟周期输入一个所述模拟输入信号;所述模拟输入信号与各行运算单元内的T1R忆阻器单元相作用实现矢量乘法运算并产生模拟输出信号;所述模拟输出信号经所述输出电路转换为数字输出信号并进行存储。
此外,优选的方案是,所述输出电路包括k行输出单元,各行输出单元的输入端与对应行的运算单元的输出端相连,各行输出单元的输出端输出的数字输出信号经预设的结果加法器累加后形成最终数字输出信号并存入预设的最终输出寄存器。
此外,优选的方案是,各行输出单元均包括ADC电路和循环移位加法器,其中,
所述ADC电路用于将对应行的运算单元输出的所述模拟输出信号转换为所述数字输出信号;
所述循环移位加法器用于对w个时钟周期的所述数字输出信号循环移位累加,以形成单行累加数字输出信号;
各行的所述单行累加数字输出信号经所述结果加法器累加后形成所述最终数字输出信号并存入所述最终输出寄存器。
此外,优选的方案是,所述1T1R忆阻器单元包括相串联的1bit忆阻器和晶体管,所述晶体管与预设的第二控制单元相连;其中,
所述第二控制单元通过所述晶体管控制所述1bit忆阻器的导通与关断。
另一方面,本发明还提供一种基于1T1R实现矢量矩阵乘法运算的电路构架,包括如前述的基于1T1R实现矢量乘法运算的电路构架;其中,
所述1T1R计算阵列设置有L个,各1T1R计算阵列的输入端单独连接相应的所述输入电路,各1T1R计算阵列的对应行的运算单元的输出端共节点后与所述输出电路相连;并且,
设待实现的矢量矩阵乘法运算为两个n*n的矢量矩阵的乘法运算;则,L=n*n。
相应地,本发明还提供一种w bit矢量的乘法运算方法,利用如前述的基于1T1R实现矢量乘法运算的电路构架实现w bit矢量的乘法运算,所述w bit矢量的乘法运算方法包括:
通过所述输入电路将w bit的输入信号按位拆分为w个模拟输入信号,并通过w个时钟周期输入至所述1T1R计算阵列;其中,所述输入电路自低位至高位向所述1T1R计算阵列输入所述模拟输入信号,每个时钟周期输入一个所述模拟输入信号;
各bit的所述模拟输入信号与所述1T1R计算阵列中各行运算单元内的T1R忆阻器单元相作用实现各bit的矢量乘法运算,并产生各bit的模拟输出信号;
各bit的模拟输出信号经所述输出电路的ADC电路转换为各bit的数字输出信号;
各bit的数字输出信号经所述循环移位加法器循环移位累加后,形成所述单行累加数字输出信号;
各行的所述单行累加数字输出信号经移位以及所述结果加法器的累加后形成所述最终数字输出信号,以实现w bit的矢量乘法运算。
相应地,本发明还提供一种w bit矢量矩阵的乘法运算方法,利用如前述的基于1T1R实现矢量矩阵乘法运算的电路构架实现w bit矢量矩阵的乘法运算,所述w bit矢量矩阵的乘法运算方法包括:
各输入电路分别将输入矢量矩阵中相对应的输入信号拆分为w个模拟输入信号,并通过w个时钟周期输入至相对应的1T1R计算阵列;其中,各输入电路均自低位至高位向相对应的1T1R计算阵列输入所述模拟输入信号,每个时钟周期输入一个所述模拟输入信号;
在同一1T1R计算阵列内,各bit的所述模拟输入信号与所述1T1R计算阵列中各行运算单元内的1T1R忆阻器单元相作用实现各bit的矢量乘法运算,并产生各1T1R计算阵列内的各bit的模拟输出信号;并且,将所有的1T1R计算阵列内对应行的运算单元的各bit的模拟输出信号按位相加后形成各bit的累加模拟输出信号;
各bit的累加模拟输出信号经所述输出电路的ADC电路转换为各bit的数字输出信号;
各bit的数字输出信号经所述循环移位加法器循环移位累加后,形成所述单行累加数字输出信号;
各行的所述单行累加数字输出信号经移位以及所述结果加法器的累加后形成所述最终数字输出信号,以实现w bit的矢量乘法运算。
和现有技术相比,上述根据本发明的基于1T1R实现矢量乘法运算的电路构架,有如下有益效果:
本发明提供的基于1T1R实现矢量乘法运算的电路构架及其运算方法采用单bit的忆阻器单元实现了多bit矢量的乘法以及加法运算,能够降低对忆阻器单元的多态要求;此外,通过采用1T1R计算阵列的多行并行运算以及对输入信号的按位拆分的方法,能够降低对于ADC电路精度的要求,同时将DAC电路的需求可以下降为0,显著减少ADC电路与DAC电路的开销。
为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。
附图说明
通过参考以下结合附图的说明及权利要求书的内容,并且随着对本发明的更全面理解,本发明的其它目的及结果将更加明白及易于理解。在附图中:
图1为根据本发明实施例的利用现有的忆阻器做乘加运算的原理图;
图2为根据本发明实施例的利用现有的忆阻器做矢量矩阵乘法的原理图;
图3为根据本发明实施例的输入电路的框架图;
图4为根据本发明实施例的基于1T1R实现第一矢量矩阵乘法运算的构架图;
图5为根据本发明实施例的基于1T1R实现第一矢量矩阵乘法运算的输出电路的原理图;
图6为根据本发明实施例的基于1T1R实现第二矢量矩阵乘法运算的构架图;
图7为根据本发明实施例的基于1T1R实现第二矢量矩阵乘法运算的输出电路的原理图;
在所有附图中相同的标号指示相似或相应的特征或功能。
具体实施方式
在下面的描述中,出于说明的目的,为了提供对一个或多个实施例的全面理解,阐述了许多具体细节。然而,很明显,也可以在没有这些具体细节的情况下实现这些实施例。在其它例子中,为了便于描述一个或多个实施例,公知的结构和设备以方框图的形式示出。
需要提前说明的是,由于本发明提供的基于1T1R实现矢量乘法运算的电路构架根据忆阻器构成的电路架构进行矩阵卷积运算,因此,在详细介绍本发明提供的基于1T1R实现矢量乘法运算的电路构架的具体结构之前,需要先对矩阵卷积运算原理进行简单介绍,矩阵卷积运算原理如下公式(以3*3的矩阵与2*2的矩阵卷积为例):
Figure BDA0003568357520000061
从上述公式可知,卷积运算主要是乘法与加法运算。如果相乘矩阵大小不一致,则有会有移位操作,但是最基本的运算是乘法与加法,卷积后的矩阵每一个元素都是乘加结果。所以在卷积运算中乘加器为核心,因此,乘加器的改进与优化直接决定了电路架构整体的性能与开销。所以本发明所实际解决的最主要的问题是如何使用1bit的忆阻器单元实现多bit的乘加器。
下面结合附图对本发明提供的基于1T1R实现矢量乘法运算的电路构架及其运算方法进行详细说明。
图3示出了根据本发明实施例的输入电路的框架,图4示出了根据本发明实施例的基于1T1R实现第一矢量矩阵乘法运算的构架,图5为根据本发明实施例的基于1T1R实现第一矢量矩阵乘法运算的输出电路的原理图,图6示出了根据本发明实施例的基于1T1R实现第二矢量矩阵乘法运算的构架,图7为根据本发明实施例的基于1T1R实现第二矢量矩阵乘法运算的输出电路的原理图。
结合图3至图7共同所示,本发明提供的基于1T1R实现矢量乘法运算的电路构架包括输入电路、1T1R计算阵列以及输出电路,其中,输入电路用于提供第一个矢量数据(通常为电压型数据),1T1R计算阵列(通常为电导型数据)用于表示第二矢量数据,当输入电路提供的第一个矢量数据输入至1T1R计算阵列后,即可实现第一个矢量数据与第二矢量数据的乘法运算(电压型数据与电导型数据的乘积),并产生第三矢量数据(乘法运算结果,通常为电流型数据),并通过输出电路将第三矢量数据进行输出保存。
具体地,1T1R计算阵列包括多行(至少两行)运算单元,各行运算单元的输入端共节点后作为1T1R计算阵列的输入端与输入电路相连,各行运算单元的输出端与输出电路相连;并且,各行运算单元均包括多行(至少两行)相并联1T1R忆阻器单元,输入电路用于对各运算单元输入输入信号(即第一个矢量数据);输入信号与各行运算单元内的T1R忆阻器单元相作用实现矢量乘法运算并产生输出信号(即第三矢量数据);输出信号存储至输出电路内。
需要说明的是,本发明提供的基于1T1R实现矢量乘法运算的电路构架可实现任意两个相同位数(二进制,用bit表示)的矢量数据的乘法运算,设待实现的矢量乘法运算为两个w bit矢量的乘法运算,1T1R计算阵列包括k行运算单元,各运算单元均包括相互并联的m个1T1R忆阻器单元;则,
1T1R计算阵列中的各参数满足如下约束条件:k*log2m=w。
具体地,由图3可知,输入电路包括第一移位寄存器以及与第一移位寄存器相连的第一控制单元;其中,输入电路通过第一移位寄存器配合第一控制单元将w bit的输入信号按位拆分为w个模拟输入信号,并通过w个时钟周期输入至1T1R计算阵列;并且,输入电路自低位至高位向1T1R计算阵列输入模拟输入信号,每个时钟周期输入一个模拟输入信号;模拟输入信号与各行运算单元内的T1R忆阻器单元相作用实现矢量乘法运算并产生模拟输出信号;模拟输出信号经输出电路转换为数字输出信号并进行存储。
通过将第一移位寄存器以及与第一移位寄存器相连的第一控制单能够将数字型的输入信号按位拆分为w个模拟输入信号通过w个时钟周期输入至1T1R计算阵列;实现数字信号相模拟信号的转换,省去了DAC模块,显著降低了开销。
具体地,输出电路包括k行输出单元,各行输出单元的输入端与对应行的运算单元的输出端相连,各行输出单元的输出端输出的数字输出信号经预设的结果加法器累加后形成最终数字输出信号并存入预设的最终输出寄存器。
更为具体地,各行输出单元均包括ADC电路和循环移位加法器,其中,
ADC电路用于将对应行的运算单元输出的模拟输出信号转换为数字输出信号;循环移位加法器用于对w个时钟周期的数字输出信号循环移位累加,以形成单行累加数字输出信号;各行的单行累加数字输出信号经结果加法器累加后形成最终数字输出信号并存入最终输出寄存器。
通过将1T1R计算阵列采用多行并行的运算,使得每行才使用一个ADC电路,能够有效减少降低ADC的使用寿命以及对于ADC精度的要求,进一步减小开销。
具体地,1T1R忆阻器单元包括相串联的1bit忆阻器和晶体管,晶体管与预设的第二控制单元相连;其中,第二控制单元通过晶体管控制1bit忆阻器的导通与关断,实现1bit忆阻器高阻态与低阻态之间的转换;并且,1T1R忆阻器单元中所有的1bit忆阻器的电导值共同构成的第二矢量数据的表征。
显然,本发明提供的基于1T1R实现矢量乘法运算的电路构架通过采用1bit忆阻器(单bit忆阻器单元)能够实现多bit的矢量运算的运算逻辑与方法,降低了对忆阻器的多态要求。
为说明本发明提供的基于1T1R实现矢量乘法运算的电路构架的工作原理,本发明还提供一种w bit矢量的乘法运算方法,利用如前述的基于1T1R实现矢量乘法运算的电路构架实现w bit矢量的乘法运算,w bit矢量的乘法运算方法包括:
通过输入电路将w bit的输入信号按位拆分为w个模拟输入信号,并通过w个时钟周期输入至1T1R计算阵列;其中,输入电路自低位至高位向1T1R计算阵列输入模拟输入信号,每个时钟周期输入一个模拟输入信号;
各bit的模拟输入信号与1T1R计算阵列中各行运算单元内的T1R忆阻器单元相作用实现各bit的矢量乘法运算,并产生各bit的模拟输出信号;
各bit的模拟输出信号经输出电路的ADC电路转换为各bit的数字输出信号;
各bit的数字输出信号经循环移位加法器循环移位累加后,形成单行累加数字输出信号;
各行的单行累加数字输出信号经移位以及结果加法器的累加后形成最终数字输出信号,以实现w bit的矢量乘法运算。
需要说明的是,上述本发明提供的基于1T1R实现矢量乘法运算的电路构架只能实现两个具有相同bit的矢量的乘法运算,对应两个具有相同bit的矢量矩阵的乘法运算,则不能实现。
为此,本发明还提供一种基于1T1R实现矢量矩阵乘法运算的电路构架,包括如前述的基于1T1R实现矢量乘法运算的电路构架;其中,1T1R计算阵列设置有L个,各1T1R计算阵列的输入端单独连接相应的输入电路,各1T1R计算阵列的对应行的运算单元的输出端共节点后与输出电路相连;并且,设待实现的矢量矩阵乘法运算为两个n*n的矢量矩阵的乘法运算;则,L=n*n。
通过增加至n*n个1T1R计算阵列,并将各1T1R计算阵列的输入端单独连接相应的输入电路,各1T1R计算阵列的对应行的运算单元的输出端共节点后与输出电路相连,能够使每一个1T1R计算阵列与与之对应的输入电路的乘积代表一个乘法运算,由于n*n的矢量矩阵的乘法运算结果为n*n个乘法运算的加和,显然,通过设置n*n个1T1R计算阵列并通过控制输入信号以及各1T1R计算阵列中1bit忆阻器的阻态,即可实现矢量矩阵乘法运算的表征。
相应地,本发明也提供一种与之对应的w bit矢量矩阵的乘法运算方法,利用如前述的基于1T1R实现矢量矩阵乘法运算的电路构架实现w bit矢量矩阵的乘法运算,w bit矢量矩阵的乘法运算方法包括:
各输入电路分别将输入矢量矩阵中相对应的输入信号拆分为w个模拟输入信号,并通过w个时钟周期输入至相对应的1T1R计算阵列;其中,各输入电路均自低位至高位向相对应的1T1R计算阵列输入模拟输入信号,每个时钟周期输入一个模拟输入信号;
在同一1T1R计算阵列内,各bit的模拟输入信号与1T1R计算阵列中各行运算单元内的1T1R忆阻器单元相作用实现各bit的矢量乘法运算,并产生各1T1R计算阵列内的各bit的模拟输出信号;并且,将所有的1T1R计算阵列内对应行的运算单元的各bit的模拟输出信号按位相加后形成各bit的累加模拟输出信号;
各bit的累加模拟输出信号经输出电路的ADC电路转换为各bit的数字输出信号;
各bit的数字输出信号经循环移位加法器循环移位累加后,形成单行累加数字输出信号;
各行的单行累加数字输出信号经移位以及结果加法器的累加后形成最终数字输出信号,以实现w bit的矢量乘法运算。
为更为详细说明本发明提供的基于1T1R实现矢量乘法运算的电路构架及运算方法的工作原理,下面以两个8bit的矢量矩阵的乘法运算为例(矩阵大小为n*n)做进一步说明。
如图4所示,整个电路构架可以分为三部分:输入电路,1T1R计算阵列,以及输出电路。
首先,我们说明1T1R计算阵列运算原理:
在图4中,中间方框部分表示一组8bit乘法的1T1R计算阵列,代表了两个8bit数据相乘(其中输入电路输入一个8bit数据,1T1R计算阵列本身表征一个8bit数据),此处,本发明使用了16个忆阻器代表4bit的数(作为一行,即运算单元,共两行)。其中,16个忆阻器低阻的数量代表的是:比如,如果有7个低阻,就代表该值为7。上下两行则分别代表8bit数据(1T1R计算阵列本身表征的8bit数据)中高4bit与低4bit的数值,计算原理如下:
X=A*(BH*24+BL)
其中,A代表输入,通过输入电路给到1T1R计算阵列里,然后第一行计算高4bit的运算,第二行计算低4bit的运算,最终将高、低4bit的运算结果送到输出电路里,输出电路再进行移位加法,得到最终的一个乘法结果。
在图4中,整个运算阵列(所有1T1R计算阵列的总称)有2行,每一行有多个4bit运算单元,其数量等同于矢量矩阵乘法的单元个数。对于一个n*n的矩阵,就有n^2个运算单元。比如常见的3*3的矩阵,那么图4中第一行就有9个4bit运算单元,每个运算单元对应一个输入,这样两行运算单元就可以完成矢量矩阵乘法。
接下来描述输入电路,回到公式1,输入的值为A。为了减少对输入DAC模块的依赖,对A进行按位拆分,这样等式1可以化为:
X=∑(Aig2i)g(BHg24+BL)
这样在每一个clock输入端仅有一个bit,如下等式:
Ai2ig(BHg24+BL)
这样中间的1T1R计算阵列,每个clock计算一个bitd的数据,然后下个周期,再送下一个bit。第i个时钟周期实现如等式2的运算(其中,i从0开始计算)。这样,该输入电路的具体结构如图2所示,由图2可知,利用一个移位寄存器(第一移位寄存器),每个时钟周期移位输出1bit数据到1T1R计算阵列,然后control(第一控制单元)会不断把数据送出到第一移位寄存器中。
从上述几个公式可以看出,对于输出电路来讲,需要对输出结果做移位与加法运算,并且需要把两路(两行)的结果做一个结合。具体的电路架构如图5所示,第一行输入代表的是电路中高4bit的计算结果,第二行输入代表电路中低4bit的计算结果。然后每行的结果进行计算。计算的过程如下:
1)结果进入ADC电路,模拟计算结果转换成数字信号,ADC精度的要求是4bit+log2n2((该式前面式为本来的精度要求,后面的log2n2,则是矢量矩阵元素的累加而形成的精度要求)。
2)当计算结果输出到8bit寄存器后(默认n<=4,如果n变大,则该处寄存器会变大),该计算结果会依据公式:Ai2ig(BHg24+BL),进行移位操作,在第i时钟周期移位i位。
3)移位的结果会送入加法器,并根据公式:X=∑(Aig2i)g(BHg24+BL)对之前的计算结果进行加法操作。
4)8个时钟周期后,第一行与第二行所有的累加计算已经完成,即完成高4bit与低4bit的运算。
5)最后一个时钟周期,分别将高4bit的计算结果做移位后与低4bit的计算结果一起送入加法器(根据公式X=∑(Aig2i)g(BHg24+BL)),得到最终的输出结果。
至此,即完成8bit的矢量矩阵乘法的全部运算。
需要说明的是,在上述方案描述中,本发明是采用了16个忆阻器实现4bit的阻值阶梯,同时采用两行共同完成8bit的电路运算。这里的行数k、单个1T1R计算阵列的忆阻器的数目m与需要计算的数据的位宽w有如下关系:
k*log2m=w
每行的忆阻器数目M与矩阵大小有关,假设矩阵大小为n*n,那每行的忆阻器数目为:
M=m*n*n
当然,也可以根据上述两个公司来计算任意位宽的矢量矩阵乘法及所需要的忆阻器数目。比如,如果是一个7*7的32bit矢量矩阵乘法,则n=7,w=32。
具体地,例如,假设采用16个忆阻器替代4bit的值,则m=16。那么根据上述公式可知,k=8(一共需要8行),每行忆阻器数目M=16*7*7=784,则需要的整个忆阻器数目为784*8。
再如,如果采用4个忆阻器替代2bit,则m=4。那么根据上述公式,则k=16(一共需要16行),每行忆阻器数目M=2*7*7=98,需要的整个忆阻器数目为98*16。
同样地,当根据上述公式对忆阻器行列进行调整时,整个的电路结构也会发生变化。为进一步说明其结构,现在对8bit的n*n的矩阵进行另一种方式实现,我们采用4个忆阻器替代2bit的值,则m=4。根据上述公司,则k=4(一共需要4行),每行的忆阻器数目为M=4*n*n,则相应的1T1R计算阵列电路结构会变化为如图6所示的结构,输入电路的结构不变。
在图6中,每个小运算单元的忆阻器数目变化为了4,且整个的行数变多变为4行,同样输出的运算电路也会发生变化,变化后的结构如图7所示,由图7可以发现除了输出变为4行以外,输出的数的移位也发生变化,从图5的4变为移位6,移位4,移位2,然后将4个数结果相加。
因此,可以通过修改忆阻器的个数来调整整个电路,这些电路及方式只要采用了此方法,即处于本发明的专利保护范围内。
如上参照图1至图7以示例的方式描述根据本发明的基于1T1R实现矢量乘法运算的电路构架。但是,本领域技术人员应当理解,对于上述本发明所提出的基于1T1R实现矢量乘法运算的电路构架,还可以在不脱离本发明内容的基础上做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。

Claims (9)

1.一种基于1T1R实现矢量乘法运算的电路架构,其特征在于,包括输入电路、1T1R计算阵列以及输出电路,其中,
所述1T1R计算阵列包括至少两行运算单元,各行运算单元的输入端共节点后作为所述1T1R计算阵列的输入端与所述输入电路相连,各行运算单元的输出端与所述输出电路相连;并且,
各行运算单元均包括至少两个相并联1T1R忆阻器单元,所述输入电路用于对各运算单元输入输入信号;所述输入信号与各行运算单元内的T1R忆阻器单元相作用实现矢量乘法运算并产生输出信号;所述输出信号存储至所述输出电路内。
2.如权利要求1所述的基于1T1R实现矢量乘法运算的电路构架,其特征在于,
设待实现的矢量乘法运算为两个w bit矢量的乘法运算,所述1T1R计算阵列包括k行运算单元,各运算单元均包括相互并联的m个1T1R忆阻器单元;则,
所述1T1R计算阵列中的各参数满足如下约束条件:
k*log2m=w。
3.如权利要求2所述的基于1T1R实现矢量乘法运算的电路构架,其特征在于,
所述输入电路包括第一移位寄存器以及与所述第一移位寄存器相连的第一控制单元;其中,
所述输入电路通过所述第一移位寄存器配合所述第一控制单元将w bit的输入信号按位拆分为w个模拟输入信号,并通过w个时钟周期输入至所述1T1R计算阵列;并且,
所述输入电路自低位至高位向所述1T1R计算阵列输入所述模拟输入信号,每个时钟周期输入一个所述模拟输入信号;所述模拟输入信号与各行运算单元内的T1R忆阻器单元相作用实现矢量乘法运算并产生模拟输出信号;所述模拟输出信号经所述输出电路转换为数字输出信号并进行存储。
4.如权利要求3所述的基于1T1R实现矢量乘法运算的电路构架,其特征在于,
所述输出电路包括k行输出单元,各行输出单元的输入端与对应行的运算单元的输出端相连,各行输出单元的输出端输出的数字输出信号经预设的结果加法器累加后形成最终数字输出信号并存入预设的最终输出寄存器。
5.如权利要求4所述的基于1T1R实现矢量乘法运算的电路构架,其特征在于,
各行输出单元均包括ADC电路和循环移位加法器,其中,
所述ADC电路用于将对应行的运算单元输出的所述模拟输出信号转换为所述数字输出信号;
所述循环移位加法器用于对w个时钟周期的所述数字输出信号循环移位累加,以形成单行累加数字输出信号;
各行的所述单行累加数字输出信号经所述结果加法器累加后形成所述最终数字输出信号并存入所述最终输出寄存器。
6.如权利要求5所述的基于1T1R实现矢量乘法运算的电路构架,其特征在于,
所述1T1R忆阻器单元包括相串联的1bit忆阻器和晶体管,所述晶体管与预设的第二控制单元相连;其中,
所述第二控制单元通过所述晶体管控制所述1bit忆阻器的导通与关断。
7.一种基于1T1R实现矢量矩阵乘法运算的电路构架,其特征在于,包括如权利要求5或6所述的基于1T1R实现矢量乘法运算的电路构架;其中,
所述1T1R计算阵列设置有L个,各1T1R计算阵列的输入端单独连接相应的所述输入电路,各1T1R计算阵列的对应行的运算单元的输出端共节点后与所述输出电路相连;并且,
设待实现的矢量矩阵乘法运算为两个n*n的矢量矩阵的乘法运算;则,
L=n*n。
8.一种w bit矢量的乘法运算方法,其特征在于,利用如权利要求5或6所述的基于1T1R实现矢量乘法运算的电路构架实现w bit矢量的乘法运算,所述w bit矢量的乘法运算方法包括:
通过所述输入电路将w bit的输入信号按位拆分为w个模拟输入信号,并通过w个时钟周期输入至所述1T1R计算阵列;其中,所述输入电路自低位至高位向所述1T1R计算阵列输入所述模拟输入信号,每个时钟周期输入一个所述模拟输入信号;
各bit的所述模拟输入信号与所述1T1R计算阵列中各行运算单元内的T1R忆阻器单元相作用实现各bit的矢量乘法运算,并产生各bit的模拟输出信号;
各bit的模拟输出信号经所述输出电路的ADC电路转换为各bit的数字输出信号;
各bit的数字输出信号经所述循环移位加法器循环移位累加后,形成所述单行累加数字输出信号;
各行的所述单行累加数字输出信号经移位以及所述结果加法器的累加后形成所述最终数字输出信号,以实现w bit的矢量乘法运算。
9.一种w bit矢量矩阵的乘法运算方法,其特征在于,利用如权利要求7所述的基于1T1R实现矢量矩阵乘法运算的电路构架实现w bit矢量矩阵的乘法运算,所述w bit矢量矩阵的乘法运算方法包括:
各输入电路分别将输入矢量矩阵中相对应的输入信号拆分为w个模拟输入信号,并通过w个时钟周期输入至相对应的1T1R计算阵列;其中,各输入电路均自低位至高位向相对应的1T1R计算阵列输入所述模拟输入信号,每个时钟周期输入一个所述模拟输入信号;
在同一1T1R计算阵列内,各bit的所述模拟输入信号与所述1T1R计算阵列中各行运算单元内的1T1R忆阻器单元相作用实现各bit的矢量乘法运算,并产生各1T1R计算阵列内的各bit的模拟输出信号;并且,将所有的1T1R计算阵列内对应行的运算单元的各bit的模拟输出信号按位相加后形成各bit的累加模拟输出信号;
各bit的累加模拟输出信号经所述输出电路的ADC电路转换为各bit的数字输出信号;
各bit的数字输出信号经所述循环移位加法器循环移位累加后,形成所述单行累加数字输出信号;
各行的所述单行累加数字输出信号经移位以及所述结果加法器的累加后形成所述最终数字输出信号,以实现w bit的矢量乘法运算。
CN202210311144.3A 2022-03-28 2022-03-28 基于1t1r实现矢量乘法运算的电路构架及运算方法 Pending CN116127257A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210311144.3A CN116127257A (zh) 2022-03-28 2022-03-28 基于1t1r实现矢量乘法运算的电路构架及运算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210311144.3A CN116127257A (zh) 2022-03-28 2022-03-28 基于1t1r实现矢量乘法运算的电路构架及运算方法

Publications (1)

Publication Number Publication Date
CN116127257A true CN116127257A (zh) 2023-05-16

Family

ID=86296027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210311144.3A Pending CN116127257A (zh) 2022-03-28 2022-03-28 基于1t1r实现矢量乘法运算的电路构架及运算方法

Country Status (1)

Country Link
CN (1) CN116127257A (zh)

Similar Documents

Publication Publication Date Title
CN110427171B (zh) 可扩展的定点数矩阵乘加运算的存内计算设备和方法
CN107636640B (zh) 点积引擎、忆阻器点积引擎以及用于计算点积的方法
TW202044122A (zh) 運用於類神經網路系統的乘積累加電路之相關控制電路
US11886987B2 (en) Non-volatile memory-based compact mixed-signal multiply-accumulate engine
US20200286553A1 (en) In-memory computation device with inter-page and intra-page data circuits
CN111478703A (zh) 基于忆阻交叉阵列的处理电路及输出电流的补偿方法
EP4022426A1 (en) Refactoring mac operations
CN114707647A (zh) 适用于多精度神经网络的精度无损存算一体装置及方法
CN116127257A (zh) 基于1t1r实现矢量乘法运算的电路构架及运算方法
JP7255068B2 (ja) メモリデバイス及びその動作方法
WO2022150939A1 (zh) 用于差分输出电压的模数转换器以及模数转换方法
US11640255B2 (en) Memory device and operation method thereof
CN111988031B (zh) 一种忆阻存内矢量矩阵运算器及运算方法
CN114168107A (zh) 一种存内精度可调的矢量矩阵乘法运算方法及运算器
CN111429954B (zh) 电压校准电路、半导体存储结构及其电压校准方法
KR20180089701A (ko) 내부 연산 구조를 포함하는 mtj 메모리 장치
JP7279293B2 (ja) メモリデバイスおよびその動作方法
US11621723B2 (en) Input-shaping method and input-shaping unit for group-modulated input scheme in computing-in-memory applications
CN116150557A (zh) 卷积运算电路及运算方法
JP7206531B2 (ja) メモリデバイスおよびその動作方法
TWI783573B (zh) 記憶體裝置及其操作方法
Cheng et al. A Low-Power High-Throughput In-Memory CMOS-ReRAM Accelerator for Large-Scale Deep Residual Neural Networks
TWI777645B (zh) 記憶體裝置及其操作方法
US20240223207A1 (en) Multiply-accumulate successive approximation devices and methods
CN116127254A (zh) ReRAM卷积简化实现方法

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