CN113077829B - 基于忆阻器阵列的数据处理方法、电子装置 - Google Patents
基于忆阻器阵列的数据处理方法、电子装置 Download PDFInfo
- Publication number
- CN113077829B CN113077829B CN202110426351.9A CN202110426351A CN113077829B CN 113077829 B CN113077829 B CN 113077829B CN 202110426351 A CN202110426351 A CN 202110426351A CN 113077829 B CN113077829 B CN 113077829B
- Authority
- CN
- China
- Prior art keywords
- memristor
- convolution
- array
- row
- matrix
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 51
- 239000011159 matrix material Substances 0.000 claims abstract description 195
- 238000012545 processing Methods 0.000 claims abstract description 108
- 238000000034 method Methods 0.000 claims description 42
- 238000013507 mapping Methods 0.000 claims description 28
- 238000006243 chemical reaction Methods 0.000 claims description 19
- 238000003491 array Methods 0.000 claims description 17
- 238000007781 pre-processing Methods 0.000 claims description 9
- 238000013519 translation Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 abstract description 25
- 210000004027 cell Anatomy 0.000 description 73
- 230000008569 process Effects 0.000 description 36
- 239000013598 vector Substances 0.000 description 30
- 238000010586 diagram Methods 0.000 description 24
- 238000001914 filtration Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000001537 neural effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 210000005036 nerve Anatomy 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000015654 memory Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 210000004556 brain Anatomy 0.000 description 2
- 230000005669 field effect Effects 0.000 description 2
- 238000007917 intracranial administration Methods 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 210000000225 synapse Anatomy 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- 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/15—Correlation function computation including computation of convolution operations
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
- 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
-
- 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
- G06N3/09—Supervised learning
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0007—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising metal oxide memory material, e.g. perovskites
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/003—Cell access
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0023—Address circuits or decoders
- G11C13/0026—Bit-line or column circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0023—Address circuits or decoders
- G11C13/0028—Word-line or row circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/70—Resistive array aspects
- G11C2213/79—Array wherein the access device being a transistor
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Biophysics (AREA)
- Mathematical Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Chemical & Material Sciences (AREA)
- Materials Engineering (AREA)
- Analogue/Digital Conversion (AREA)
- Logic Circuits (AREA)
Abstract
一种基于忆阻器阵列的数据处理方法、电子装置。该基于忆阻器阵列的数据处理方法包括:获取多个第一模拟信号;设置忆阻器阵列,将对应于卷积处理的卷积参数矩阵的数据写入忆阻器阵列;将多个第一模拟信号分别输入设置后的忆阻器阵列的多个列信号输入端,控制忆阻器阵列操作以对多个模拟信号进行卷积处理,在忆阻器阵列的多个行信号输出端分别得到执行卷积处理后的多个第二模拟信号。该基于忆阻器阵列的数据处理方法通过将卷积参数矩阵多次映射于忆阻器阵列中不同的多个忆阻器子阵列,实现一次计算即可得到卷积处理操作的所有结果,大大减少了移位所需的时间,降低了功耗,提高了计算速度。
Description
技术领域
本公开的实施例涉及一种基于忆阻器阵列的数据处理方法、电子装置。
背景技术
随着科学技术的进步和信息技术的快速发展,人们可以通过物联网传感技术采集得到大量的数据,并且需要对这些大量数据进行低功耗、高能效的分析及处理,以快速提取数据特征和信息。
卷积处理是一种常用的线性运算,广泛应用于信号处理领域、图像处理领域、神经网络领域等。对两个对象进行卷积处理所得到的卷积结果,表示其中一个对象如何被另一个对象修改,例如,在信号处理领域,可以利用卷积处理对信号进行滤波等处理。
发明内容
本公开至少一实施例提供一种基于忆阻器阵列的数据处理方法,所述忆阻器阵列包括阵列排布的多个忆阻器单元且配置为能进行乘和运算,所述方法包括:获取多个第一模拟信号;设置所述忆阻器阵列,将对应于卷积处理的卷积参数矩阵的数据写入所述忆阻器阵列,其中,所述卷积参数矩阵为第一矩阵且包括阵列排布的多个参数元素,所述多个参数元素对应地按照所述第一矩阵的形式被多次分别映射于所述忆阻器阵列中不同的多个忆阻器子阵列,且所述多个忆阻器子阵列在所述忆阻器阵列的行方向和列方向上均不重叠;将所述多个第一模拟信号分别输入设置后的所述忆阻器阵列的多个列信号输入端,控制所述忆阻器阵列操作以对所述多个模拟信号进行所述卷积处理,在所述忆阻器阵列的多个行信号输出端分别得到执行所述卷积处理后的多个第二模拟信号。
例如,在本公开至少一实施例提供一种基于忆阻器阵列的数据处理方法中,获取所述多个第一模拟信号,包括:获取多个初始数字信号;对所述多个初始数字信号进行数模转换处理,以分别得到所述多个第一模拟信号。
例如,在本公开至少一实施例提供一种基于忆阻器阵列的数据处理方法中,每个忆阻器子阵列对应于所述第一矩阵,不同的所述忆阻器子阵列分别对应于不同的列信号输入端,所述多个参数元素对应地按照所述第一矩阵的形式被多次分别映射于所述忆阻器阵列中不同的多个忆阻器子阵列,包括:从所述多个列信号输入端中,依次选择需要进行所述卷积处理的对象列组,其中,每个对象列组包括至少一个列信号输入端;对于每个被选择的对象列组,将所述多个参数元素对应地按照所述第一矩阵的形式映射到对象忆阻器子阵列中,其中,所述对象忆阻器子阵列为所述多个忆阻器子阵列中对应于所述被选择的对象列组的忆阻器子阵列。
例如,在本公开至少一实施例提供一种基于忆阻器阵列的数据处理方法中,每个忆阻器子阵列包括多个目标忆阻器单元,对于每个被选择的对象列组,将所述多个参数元素对应地按照所述第一矩阵的形式,映射到所述对象忆阻器子阵列中,包括:将所述第一矩阵中同一行的参数元素分别映射于所述对象忆阻器子阵列中同一行的目标忆阻器单元;将所述第一矩阵中同一列的参数元素分别映射于所述对象忆阻器子阵列中同一列的目标忆阻器单元。
例如,在本公开至少一实施例提供一种基于忆阻器阵列的数据处理方法中,所述卷积参数矩阵的每行包括Q个参数元素,每个忆阻器单元包括至少一个忆阻器,每个忆阻器可被设置为初始状态,将所述第一矩阵的同一行参数元素映射于所述对象忆阻器子阵列中同一行的目标忆阻器单元,包括:对于所述卷积参数矩阵的每行参数元素,在所述忆阻器阵列中对应于所述对象忆阻器子阵列的一行忆阻器单元中选择Q个目标忆阻器单元以一一对应于所述Q个参数元素,再将所述一行忆阻器单元中除所述Q个目标忆阻器单元外的忆阻器单元中的忆阻器设置为所述初始状态,其中,Q为大于1的正整数。
例如,在本公开至少一实施例提供一种基于忆阻器阵列的数据处理方法中,在所述忆阻器阵列中对应于所述对象忆阻器子阵列的一行忆阻器单元中选择Q个目标忆阻器单元以一一对应于所述Q个参数元素,包括:根据所述Q个参数元素中每个参数元素的数值,将所述选择的Q个目标忆阻器单元中包括的忆阻器整体上设定为可用于计算的导电状态且具有对应于所述数值的电导值。
例如,在本公开至少一实施例提供一种基于忆阻器阵列的数据处理方法中,从所述多个列信号输入端中,依次选择需要进行所述卷积处理的对象列组,包括:按照所述卷积处理的平移步长,从所述多个列信号输入端中,依次选择需要进行所述卷积处理的对象列组。
例如,在本公开至少一实施例提供一种基于忆阻器阵列的数据处理方法中,所述卷积参数矩阵为排布成2*P行Q列的第一矩阵,所述卷积参数矩阵包括P行Q列的第一子卷积参数矩阵和对应的P行Q列的第二子卷积参数矩阵,所述第一子卷积参数矩阵和所述第二子卷积参数矩阵中对应行列位置的参数元素共同表示执行所述卷积处理的一个参数元素,其中P为大于等于1的正整数,Q为大于1的正整数。
例如,在本公开至少一实施例提供一种基于忆阻器阵列的数据处理方法中,所述第一子卷积参数矩阵包括P行第一参数元素,所述第二子卷积参数矩阵包括P行第二参数元素,所述P行第一参数元素与所述P行第二参数元素的行列位置一一对应,在所述忆阻器阵列的多个行信号输出端分别得到执行所述卷积处理后的多个第二模拟信号,包括:针对每个忆阻器子阵列,确定至少一组待处理行,其中,每组待处理行包括与一行第一参数元素所对应的一行目标忆阻器单元,以及与对应于所述一行第一参数元素的一行第二参数元素所对应的一行目标忆阻器单元;对每组待处理行包括的两行目标忆阻器单元分别对应的两个行信号输出端的电流信号进行电流预处理,以得到所述每组待处理行对应的第二模拟信号。
例如,在本公开至少一实施例提供一种基于忆阻器阵列的数据处理方法中,所述忆阻器阵列包括第一忆阻器阵列和第二忆阻器阵列,所述卷积参数矩阵包括第一子卷积参数矩阵和第二子卷积参数矩阵,所述第一子卷积参数矩阵和所述第二子卷积参数矩阵均为所述第一矩阵形式,所述第一子卷积参数矩阵对应地按照所述第一矩阵的形式被多次映射于所述第一忆阻器阵列中不同的多个忆阻器子阵列,所述第二子卷积参数矩阵对应地按照所述第一矩阵的形式被多次映射于所述第二忆阻器阵列中不同的多个忆阻器子阵列。
例如,在本公开至少一实施例提供一种基于忆阻器阵列的数据处理方法中,在所述忆阻器阵列的多个行信号输出端分别得到执行所述卷积处理后的多个第二模拟信号,包括:对所述第一忆阻器阵列中的每个行信号输出端的电流信号和所述第二忆阻器阵列中对应的行信号输出端的电流信号进行电流预处理,以得到所述多个第二模拟信号。
例如,在本公开至少一实施例提供一种基于忆阻器阵列的数据处理方法中,所述电流预处理为电流相减处理或电流相加处理。
例如,本公开至少一实施例提供一种基于忆阻器阵列的数据处理方法还包括:对所述多个第二模拟信号进行模数转换处理,以将所述多个第二模拟信号分别转换为多个数字信号以用于进行后续处理。
例如,在本公开至少一实施例提供一种基于忆阻器阵列的数据处理方法中,所述第一模拟信号为模拟电压信号,所述第二模拟信号为模拟电流信号。
本公开至少一实施例提供一种电子装置,包括:忆阻器阵列,配置为能进行乘和运算;信号获取装置,配置为获取多个第一模拟信号;控制驱动电路,其中,所述控制驱动电路配置为执行以下步骤:设置所述忆阻器阵列,将对应于卷积处理的卷积参数矩阵的数据写入所述忆阻器阵列,其中,所述卷积参数矩阵为第一矩阵且包括阵列排布的多个参数元素,所述多个参数元素对应地按照所述第一矩阵的形式被多次分别映射于所述忆阻器阵列中不同的多个忆阻器子阵列,且所述多个忆阻器子阵列在所述忆阻器阵列的行方向和列方向上均不重叠;将所述多个第一模拟信号分别输入设置后的所述忆阻器阵列的多个列信号输入端,控制所述忆阻器阵列操作以对所述多个模拟信号进行所述卷积处理,在所述忆阻器阵列的多个行信号输出端分别得到执行所述卷积处理后的多个第二模拟信号。
例如,在本公开至少一实施例提供一种电子装置中,所述信号获取装置包括数字信号获取电路和数模转换电路,所述数字信号获取电路配置为获取多个初始数字信号;所述数模转换电路配置为对所述多个初始数字信号进行数模转换处理,以分别得到所述多个第一模拟信号。
例如,在本公开至少一实施例提供一种电子装置中,所述控制驱动电路包括:源线驱动电路,配置为对所述多个第二模拟信号进行检测和对所述忆阻器阵列执行初始化操作;字线驱动电路,配置为对所述忆阻器阵列的多个信号控制端施加开启信号和对所述忆阻器阵列执行初始化操作;以及位线驱动电路,配置为对所述多个列信号输入端施加输入信号和对所述忆阻器阵列执行初始化操作,其中,所述输入信号至少包括所述多个第一模拟信号。
例如,本公开至少一实施例提供一种电子装置还包括数据输出电路,其中,所述数据输出电路配置为将所述多个第二模拟信号转换为数字信号,以将所述多个第二模拟信号分别转换为多个数字信号以用于进行后续处理。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了一种忆阻器阵列的示意性结构;
图2A为1T1R结构的忆阻器单元的示意图;
图2B为2T2R结构的忆阻器单元的示意图;
图3为本公开至少一实施例提供的一种基于忆阻器阵列的数据处理方法的示意性流程图;
图4为本公开至少一实施例提供的一种写入卷积参数矩阵后的忆阻器阵列的示意图;
图5A为本公开至少一实施例提供的一种写入卷积参数矩阵后的忆阻器阵列的示意图;
图5B为本公开至少一实施例提供的另一种写入卷积参数矩阵后的忆阻器阵列的示意图;
图6为本公开至少一实施例提供的再一种写入卷积参数矩阵后的忆阻器阵列的示意图;
图7为本公开至少一实施例提供的再一种写入卷积参数矩阵后的忆阻器阵列的示意图;
图8为本公开至少一实施例提供的基于忆阻器阵列的数据处理方法的处理流程示意图;
图9A为本公开至少一实施例提供的一种电子装置的示意性框图;
图9B为本公开至少一实施例提供的一种电子装置示意图;
图9C为本公开至少一实施例提供的另一种电子装置示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
目前,对大量数据进行处理通常采用传统的技术平台,例如CPU(CentralProcessing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)等采用冯诺依曼架构的平台,由于摩尔定律逼近极限,通过这些传统的计算平台所得到的算力提升面临终结。
忆阻器(例如阻变存储器、相变存储器、导电桥存储器等)是一种新型的微纳电子器件,可以通过施加外部激励,调节其电导状态。忆阻器的工作机理与人脑中的神经突触、神经元等具有一定的相似性,所以它们在神经形态计算中有广泛的应用前景。根据基尔霍夫电流定律和欧姆定律,由这类器件构成的阵列可以并行的完成乘累加计算,且存储和计算都发生在该阵列的各器件中。基于这种计算架构,可以实现不需要大量数据搬移的存算一体计算,减少了数据搬运的时间,计算时能效较高、功耗较低、面积较小。
例如,可以基于忆阻器阵列,利用物理定律实现模拟计算,例如卷积处理。
目前,基于忆阻器阵列的全模拟计算,需要在运算时采用模拟输入电压和模拟电导,在执行信号的滤波等常用卷积处理操作的时候,每次只能得到对应于一个时间点的结果值,获得不同时间点的结果值需要对模拟输入电压进行移位得到,因此这种方式需要大量次数的数据移位才能完成一次完整的卷积处理,计算延时高、功耗大。
本公开至少一实施例提供一种基于忆阻器阵列的数据处理方法和电子装置。该基于忆阻器阵列的数据处理方法包括:获取多个第一模拟信号;设置忆阻器阵列,将对应于卷积处理的卷积参数矩阵的数据写入忆阻器阵列,其中,卷积参数矩阵为第一矩阵且包括阵列排布的多个参数元素,多个参数元素对应地按照第一矩阵的形式被多次分别映射于忆阻器阵列中不同的多个忆阻器子阵列,且多个忆阻器子阵列在忆阻器阵列的行方向和列方向上均不重叠;将多个第一模拟信号分别输入设置后的忆阻器阵列的多个列信号输入端,控制忆阻器阵列操作以对多个模拟信号进行卷积处理,在忆阻器阵列的多个行信号输出端分别得到执行卷积处理后的多个第二模拟信号。
该基于忆阻器阵列的数据处理方法通过将卷积参数矩阵多次映射于忆阻器阵列中不同的多个忆阻器子阵列,进行一次计算(或一个计算周期)即可得到卷积处理操作的所有结果值,这大大减少了数据移位所需的时间,降低了功耗,提高了计算速度。
本公开的至少一实施例还提供该基于忆阻器阵列的数据处理方法对应的电子装置。
下面结合附图对本公开的实施例进行详细说明,但是本公开并不限于这些具体的实施例。
图1示出了一种忆阻器阵列的示意性结构,该忆阻器阵列由多个忆阻器单元构成,该多个忆阻器单元构成一个m行n列的阵列,m和n均为正整数。每个忆阻器单元包括开关元件和一个或多个忆阻器。在图1中,WL<1>、WL<2>……WL<m>分别表示第一行、第二行……第m行的字线,每一行的忆阻器单元中的开关元件的控制极(例如晶体管的栅极)和该行对应的字线连接;BL<1>、BL<2>……BL<n>分别表示第一列、第二列……第n列的位线,每一列的忆阻器单元中的忆阻器和该列对应的位线连接;SL<1>、SL<2>……SL<m>分别表示第一行、第二行……第m行的源线,每一行的忆阻器单元中的晶体管的源极和该行对应的源线连接。根据基尔霍夫定律,通过设置忆阻器单元的状态(例如阻值)并且在字线与位线施加相应的字线信号与位线信号,上述忆阻器阵列可以并行地完成乘累加计算。
图1的忆阻器阵列中的忆阻器单元例如可以具有1T1R结构或者2T2R结构,其中,1T1R结构的忆阻器单元包括一个晶体管和一个忆阻器,2T2R结构的忆阻器单元包括两个晶体管和两个忆阻器。需要说明的是,本公开对忆阻器单元的结构不作限制,也可以采用可以实现乘累加运算的其他结构形式的忆阻器单元。
需要说明的是,本公开的实施例中采用的晶体管均可以为薄膜晶体管或场效应晶体管(例如MOS场效应晶体管)或其他特性相同的开关器件。这里采用的晶体管的源极、漏极在结构上可以是对称的,所以其源极、漏极在结构上可以是没有区别的。在本公开的实施例中,为了区分晶体管除栅极之外的两极(即源极和漏极),直接描述了其中一极为第一极,而另一极为第二极。
图2A为1T1R结构的忆阻器单元的示意图。如图2A所示,1T1R结构的忆阻器单元包括一个晶体管M1和一个忆阻器R1。
本公开的实施例对采用的晶体管的类型不作限定,例如当晶体管M1采用N型晶体管时,其栅极和字线WL连接,例如字线WL输入高电平时晶体管M1导通;晶体管M1的第一极可以是源极并配置为和源线SL连接,例如晶体管M1可以通过源线SL接收复位电压;晶体管M1的第二极可以是漏极并配置为和忆阻器R1的第二极(例如负极)连接,忆阻器R1的第一极(例如正极)和位线BL连接,例如忆阻器R1可以通过位线BL接收置位电压。例如当晶体管M1采用P型晶体管时,其栅极和字线WL连接,例如字线WL输入低电平时晶体管M1导通;晶体管M1的第一极可以是漏极并配置为和源线SL连接,例如晶体管M1可以通过源线SL接收复位电压;晶体管M1的第二极可以是源极并配置为和忆阻器R1的第二极(例如负极)连接,忆阻器R1的第一极(例如正极)和位线BL连接,例如忆阻器R1可以通过位线BL接收置位电压。需要说明的是,忆阻器结构还可以实现为其他结构,例如忆阻器R1的第二极与源线SL连接的结构,本公开的实施例对此不作限制。
下面各实施例均以晶体管M1采用N型晶体管为例进行说明。
字线端WL的作用是对晶体管M1的栅极施加相应电压,从而控制晶体管M1导通或关闭。在对忆阻器R1进行操作时,例如进行置位操作或复位操作,均需要先开启晶体管M1,即需要通过字线端WL对晶体管M1的栅极施加导通电压。在晶体管M1导通后,例如,可以通过在源线端SL和位线端BL向忆阻器R1施加电压,以改变忆阻器R1的阻态。例如,可以通过位线端BL施加置位电压,以使得该忆阻器R1处于低阻态;又例如,可以通过源线端SL施加复位电压,以使得该忆阻器R1处于高阻态。例如,高阻态的电阻值为低阻态的电阻值100倍以上,例如1000倍以上。
需要说明的是,在本公开的实施例中,通过字线端WL和位线端BL同时施加电压,可以使得忆阻器R1的电阻值越来越小,即忆阻器R1从高阻态变为低阻态,将使得忆阻器R1从高阻态变为低阻态的操作称为置位操作;通过字线端WL和源线端SL同时施加电压,可以使得忆阻器R1的电阻值越来越大,即忆阻器R1从低阻态变为高阻态,将使得忆阻器R1从低阻态变为高阻态的操作称为复位操作。例如,忆阻器R1具有阈值电压,在输入电压幅度小于忆阻器R1的阈值电压时,不会改变忆阻R1的电阻值(或电导值)。在这种情况下,可以通过输入小于阈值电压的电压,利用忆阻器R1的电阻值(或电导值)进行计算;可以通过输入大于阈值电压的电压,改变忆阻器R1的电阻值(或电导值)。
图2B为2T2R结构的忆阻器单元的示意图。如图2B所示,2T2R结构的忆阻器单元包括两个晶体管M1和M2以及两个忆阻器R1和R2。下面以晶体管M1和M2均采用N型晶体管为例进行说明。
晶体管M1的栅极和字线端WL1相连,例如M1的字线端WL1输入高电平时晶体管M1导通,晶体管M2的栅极和字线端WL2相连,例如M2的字线端WL2输入高电平时晶体管M2导通;晶体管M1的第一极可以是源极并被配置为和源线端SL连接,例如晶体管M1可以通过源线端SL接收复位电压,晶体管M2的第一极可以是源极并被配置为和源线端SL连接,例如晶体管M2可以通过源线端SL接收复位电压,晶体管M1的第一极与晶体管M2的第一极相连,并一起连接至源线端SL。晶体管M1的第二极可以是漏极并被配置为和忆阻器R1的第二极(例如负极)连接,忆阻器R1的第一极(例如正极)和位线端BL1连接,例如忆阻器R1可以通过位线端BL1接收置位电压;晶体管M2的第二极可以是漏极并被配置为和忆阻器R2的第二极(例如负极)连接,忆阻器R2的第一极(例如正极)和位线端BL2连接,例如忆阻器R2可以通过位线端BL2接收置位电压。
需要说明的是,2T2R结构的忆阻器单元中的晶体管M1和M2也可以均采用P型晶体管,这里不再赘述。
图3为本公开至少一实施例提供的一种基于忆阻器阵列的数据处理方法的示意性流程图。
例如,如图3所示,本公开实施例提供的基于忆阻器阵列的数据处理方法包括步骤S110至S130,并且,该忆阻器阵列包括阵列排布的多个忆阻器单元且配置为能进行乘和运算(也即乘积累加运算,将乘法的乘积结果进行累加处理,以得到乘加结果累加后的和值),例如,该忆阻器阵列的结构示意图如图1所示,每个忆阻器单元可以为如图2A所示的1T1R结构或者如图2B所示的2T2R结构。
在步骤S110,获取多个第一模拟信号。
在步骤S120,设置忆阻器阵列,将对应于卷积处理的卷积参数矩阵的数据写入忆阻器阵列,其中,卷积参数矩阵为第一矩阵且包括阵列排布的多个参数元素,多个参数元素对应地按照第一矩阵的形式被多次分别映射于忆阻器阵列中不同的多个忆阻器子阵列,且多个忆阻器子阵列在忆阻器阵列的行方向和列方向上均不重叠。
在步骤S130,将多个第一模拟信号分别输入设置后的忆阻器阵列的多个列信号输入端,控制忆阻器阵列操作以对多个模拟信号进行卷积处理,在忆阻器阵列的多个行信号输出端分别得到执行卷积处理后的多个第二模拟信号。
例如,多个第一模拟信号为待进行卷积处理的输入信号,多个第二模拟信号为对输入信号执行卷积处理后的输出信号,例如,第一模拟信号为模拟电压信号,第二模拟信号为模拟电流信号。
例如,第二模拟信号的个数可以根据计算需要设定。例如,第二模拟信号的个数可以为(N+Q-1),这里N表示第一模拟信号的个数,Q表示卷积参数矩阵的列数,对应的,忆阻器阵列的行数也可以根据第二模拟信号的个数变化对应设置,例如,第二模拟信号的个数还可以其他形式得到,本公开的实施例对此不作限制。
例如,卷积处理用于对输入信号进行信号滤波处理,卷积参数矩阵中的每行参数元素表示一个滤波系数向量,例如,卷积参数矩阵的行数大于等于1,例如为1时,则卷积参数矩阵表示一个用于执行特定滤波处理的滤波系数向量。
例如,用于滤波处理的滤波器是有限脉冲响应滤波器,例如,多个有限脉冲响应滤波器可以构成一个有限脉冲相响应滤波器组。有限脉冲响应滤波器组的输入输出关系可以由下面的公式(1)表示:
在上述公式(1)中,m表示在滤波器组中的序号,M表示滤波器组中的滤波器总个数,K表示滤波器阶数,x表示输入信号向量,y表示输出信号向量,hm(k)表示第m个滤波器的滤波系数向量,n例如可以表示某个时刻。
例如,卷积参数矩阵可以表示滤波器组,也即卷积参数矩阵由多个滤波系数向量组成,例如,卷积参数矩阵的行数有至少一行,每行参数元素表示一个滤波系数向量,不同行的参数元素表示不同滤波器的滤波系数向量,例如每行参数元素为公式(1)中的hm(k)。
例如,当卷积参数矩阵由多个滤波系数向量组成时,利用忆阻器可以进行乘累加计算的特点,可以并行对输入信号进行处理,不仅能够在一个计算周期得到卷积处理的全部结果值,在此基础上还可以同时得到不同滤波器的卷积处理的结果,加快处理速度,提升计算效率。
例如,当待进行卷积处理的信号为数字信号时,需要将数字信号通过数模转换器变为模拟信号,再通过忆阻器阵列进行计算。目前,基于忆阻器阵列的全模拟计算需要多次将待计算的数字信号转换为模拟信号,以作为忆阻器的输入,因此这种方式还需要大量次数的数模转换才能完成一次完整的卷积处理。
例如,在一些示例中,步骤S110可以包括:获取多个初始数字信号;对多个初始数字信号进行数模转换处理,以分别得到多个第一模拟信号。
例如,多个初始数字信号可以为预先存储的数字信号;例如,多个初始数字信号可以为实时获取的数字信号。将多个初始数字信号进行数模转换处理以得到多个第一模拟信号。
在本公开至少一实施例提供的信号处理方法中,模数转换处理仅执行一次,将得到的多个第一模拟信号输入忆阻器阵列中即可得到所有的卷积处理的结果值,从而大大减少了多次模数转换带来的转换时间,进一步提高了计算速度。
例如,在另一些示例中,可以通过对连续的模拟信号进行采样,得到多个第一模拟信号。
例如,步骤S110可以包括:获取初始模拟电压信号,初始模拟电压信号的长度为预设时长;将初始模拟电压信号的电压值调整至预设电压范围内,以得到调整后模拟电压信号;以预设采样频率对调整后模拟电压信号进行采样,以得到分别对应于预设时长内的不同时刻的多个第一模拟信号。
对于步骤S120,例如,每个忆阻器子阵列对应于第一矩阵,不同的忆阻器子阵列分别对应于不同的列信号输入端,多个参数元素对应地按照第一矩阵的形式被多次分别映射于忆阻器阵列中不同的多个忆阻器子阵列,这可以包括:从多个列信号输入端中,依次选择需要进行卷积处理的对象列组,其中,每个对象列组包括至少一个列信号输入端;对于每个被选择的对象列组,将多个参数元素对应地按照第一矩阵的形式映射到对象忆阻器子阵列中,其中,对象忆阻器子阵列为多个忆阻器子阵列中对应于被选择的对象列组的忆阻器子阵列。
例如,每个忆阻器子阵列包括多个目标忆阻器单元。对于每个被选择的对象列组,将多个参数元素对应地按照第一矩阵的形式,映射到对象忆阻器子阵列中,包括:将第一矩阵中同一行的参数元素分别映射于对象忆阻器子阵列中同一行的目标忆阻器单元;将第一矩阵中同一列的参数元素分别映射于对象忆阻器子阵列中同一列的目标忆阻器单元。
例如,卷积参数矩阵的每行包括Q个参数元素,每个忆阻器单元包括至少一个忆阻器,每个忆阻器可被设置为初始状态,例如,初始状态可以为忆阻器在初始化后的高阻状态(低电导状态)。将第一矩阵的同一行参数元素映射于对象忆阻器子阵列中同一行的目标忆阻器单元,包括:对于卷积参数矩阵的每行参数元素,在忆阻器阵列中对应于对象忆阻器子阵列的一行忆阻器单元中选择Q个目标忆阻器单元以一一对应于Q个参数元素,再将一行忆阻器单元中除Q个目标忆阻器单元外的忆阻器单元中的忆阻器设置为初始状态,其中,Q为大于1的正整数。
例如,在忆阻器阵列中对应于对象忆阻器子阵列的一行忆阻器单元中选择Q个目标忆阻器单元以一一对应于Q个参数元素,包括:根据Q个参数元素中每个参数元素的数值,将选择的Q个目标忆阻器单元中包括的忆阻器整体上设定为可用于计算的导电状态且具有对应于数值的电导值。
根据上文描述的忆阻器的特性,例如,可以通过在列信号输入端(也即位线端BL)和行信号输出端(也即源线端SL)向忆阻器施加置位电压或者重置电压来改变忆阻器的电导值,从而可以使得每个忆阻器具有不同的电导值,也即通过改变忆阻器的电导值来改变滤波器的滤波系数向量,从而设计出符合滤波要求的滤波器。
例如,每个忆阻器单元可以为1T1R结构,如图2A所示,也即每个忆阻器单元包括1个忆阻器,通过该忆阻器的电导值表示对应的参数元素。
例如,每个忆阻器单元可以为2T2R结构,如图2B所示,也即每个忆阻器单元包括两个忆阻器,在获取多个第一模拟信号之后,该方法还可以包括:获取多个第一模拟信号分别对应的多个反相模拟信号,其中,两个忆阻器中的一个忆阻器用于接收多个第一模拟信号中选择的一个第一模拟信号,另一个忆阻器用于接收该选择的一个第一模拟信号对应的反相模拟信号。
例如,当忆阻器单元为2T2R结构时,可以利用两个忆阻器的电导值实现参数元素的负值,从而可以利用多个目标忆阻器单元实现更加丰富、复杂的卷积处理。
例如,从多个列信号输入端中,依次选择需要进行卷积处理的对象列组,可以包括:按照卷积处理的平移步长,从多个列信号输入端中,依次选择需要进行卷积处理的对象列组。
例如,对于卷积处理y=xT*W,这里,“*”代表卷积运算,x表示输入向量且为N维列向量,W表示参数元素排布为P行M列的卷积参数矩阵,则卷积处理也可以重新写作y=xTH,其中,H=[O11,W;O21,W,O22;…;W,Os1],这里,H为(N+M-1)行N列的矩阵,Oa(a表示任意下标)表示零矩阵,零矩阵的行数为P行,各个零矩阵的列数可以按照由卷积参数矩阵W所划分得到的分块矩阵的要求唯一确定,这里,P、M和N均为正整数,且M和N均大于1。
图4为本公开至少一实施例提供的一种写入卷积参数矩阵后的忆阻器阵列的示意图。
例如,卷积处理用于信号滤波处理,卷积参数矩阵为W=[w11,w12,...,w1M;w21,w22,...,w2M;...;wP1,wP2,...,wPM]。卷积参数矩阵中的第一行参数元素[w11,w12,...,w1M]表示滤波系数向量(1),卷积参数矩阵中的第二行参数元素[w21,w22,...,w2M]表示滤波系数向量(2),...,卷积参数矩阵中的第P行参数元素[wP1,wP2,...,wPM]表示滤波系数向量(P)。
例如,忆阻器阵列可以包括(N+M-1)行、N列,忆阻器阵列的列信号输入端分别输入N个第一模拟信号,也即x1,x2,x3,...,xN,忆阻器阵列的行信号输出端分别输出(N+M-1)个第二模拟信号,也即y1,y2,y3,..,yN-M+1,行列线交汇处的黑色方块表示一个忆阻器单元。例如,忆阻器单元旁的数字“0”表示该忆阻器单元的忆阻器处于初始状态,忆阻器单元旁的标记“wij”表示该忆阻器单元的忆阻器的电导值为参数元素“wij”的数值,这里i和j均为正整数,i小于等于P,j小于等于M。
如图4所示,卷积参数矩阵被映射于忆阻器子阵列(1)、……、忆阻器子阵列(n)、……、忆阻器子阵列(N-M+1)等忆阻器子阵列中,以同时得到对N个第一模拟信号进行卷积处理后的结果y1,y2,y3,……,yN-M+1,这里,n为大于1且小于(N-M+1)的正整数。
例如,结合公式(1),各个忆阻器子阵列分别对应不同的对象列组,例如,如图4所示,忆阻器子阵列(1)对应的对象列组包括M个列信号输入端,且这M个列信号输入端所输入的第一模拟信号分别为x1至xM。
例如,如图4所示,各个忆阻器子阵列在忆阻器阵列的行方向和列方向上均不重叠,并且,当卷积处理的平移步长为a时,按照平移步长a来依次选择需要进行卷积处理的对象列组,例如,对象列组(1)可以为第一模拟信号x1至xM,对象列组(2)可以为第一模拟信号xa至xa+M,以此类推得到需要进行卷积处理的对象列组,这里,a为正整数。
例如,当多个第一模拟信号的相对位置关系如图4所示时,忆阻器子阵列从忆阻器阵列的左上角(或右下角)开始,每个忆阻器子阵列依次向左(或向右)移动a列,a=1。需要说明的是,当多个第一模拟信号的相对位置关系变化时,忆阻器子阵列的移动方向也会随之发生变化,本公开的实施例对此不作限制。
对于步骤S130,例如,可以将多个第一模拟信号分别施加至设置后的忆阻器阵列的多个列信号输入端,同时将开启信号施加至忆阻器阵列的多个信号控制端,检测并获取忆阻器阵列的多个行信号输出端的多个电流信号,并基于多个电流信号得到多个第二模拟信号。
图5A为本公开至少一实施例提供的一种写入卷积参数矩阵后的忆阻器阵列的示意图。
例如,卷积参数矩阵W=[W1;W2]=[G1[0],G1[1],G1[2],G1[3];G2[0],G2[1],G2[2],G2[3]],也即第一矩阵为参数元素排布为2行4列的矩阵,行向量W1为对应于第一滤波器的滤波系数向量,行向量W2为对应于第二滤波器的滤波系数向量,G1[0]至G1[3]和G2[0]至G2[3]分别为参数元素。
例如,如图5A所示,忆阻器阵列包括14行、10列,例如,其是一个更大的忆阻器阵列的一部分。忆阻器阵列的示意图中每个方框表示一个忆阻器单元,方框中的文字表示忆阻器单元中的忆阻器的电导值,例如,“0”表示忆阻器单元的忆阻器处于初始状态,例如可以将忆阻器单元中的忆阻器复位至高阻值的状态使其处于初始状态,忆阻器初始状态的电阻值远大于置位状态的电阻值,如果将初始状态的电阻值视为无穷大,则其倒数对应于0。例如,“G1[0]”至“G1[3]”和“G2[0]”至“G2[3]”表示忆阻器单元的忆阻器的电导值为参数元素的数值。每个忆阻器单元可以为1T1R结构,也可以为2T2R结构。
例如,图5A中的V[0]至V[9]分别为10个第一模拟信号,分别输入10个列信号输入端,图5A中的I1[0]至I1[6]和I2[0]至I2[6]分别为14个行信号输出端所输出的14个第二模拟信号。
例如,如图5A所示,每个由粗实线框所限定的2行4列的忆阻器单元为忆阻器子阵列,多个忆阻器子阵列在忆阻器阵列的行方向和列方向上均不重叠,不同的忆阻器子阵列分别对应于不同的列信号输入端。
例如,选择第一模拟信号V[0]至第一模拟信号V[3]为对象列组(1),位于忆阻器阵列的第一行和第二行的忆阻器子阵列为对应于对象列组(1)的对象忆阻器子阵列,将参数元素G1[0]至G1[3]和G2[0]至G2[3]按照第一矩阵形式映射至该对象忆阻器子阵列中。
例如,如图5A所示,参数元素G1[0]至G1[3]映射至第一行中的4个目标忆阻器单元(也即忆阻器阵列中以左上角为起始的第1行第7列至第1行第10列的忆阻器单元),4个目标忆阻器单元一一对应于4个参数元素G1[0]至G1[3],第一行中的除这4个目标忆阻器单元外的6个忆阻器单元中的忆阻器设置为初始状态,也即图5A中第1行第1列至第1行第6列的“0”。
例如,参数元素G2[0]至G2[3]映射至第二行中的4个目标忆阻器单元(也即忆阻器阵列中的第2行第7列至第2行第10列的忆阻器单元),4个目标忆阻器单元一一对应于4个参数元素G2[0]至G2[3],第二行中的除这4个目标忆阻器单元外的6个忆阻器单元中的忆阻器设置为初始状态,也即图5A中第2行第1列至第2行第6列的“0”。
例如,选择第一模拟信号V[1]至第一模拟信号V[4]为对象列组(2),位于忆阻器阵列的第三行和第四行的忆阻器子阵列为对应于对象列组(2)的对象忆阻器子阵列,将参数元素G1[0]至G1[3]和G2[0]至G2[3]按照第一矩阵形式映射至该对象忆阻器子阵列中,具体映射过程如前所述,这里不再赘述。
例如,选择第一模拟信号V[2]至第一模拟信号V[5]为对象列组(3),位于忆阻器阵列的第五行和第六行的忆阻器子阵列为对应于对象列组(3)的对象忆阻器子阵列,将参数元素G1[0]至G1[3]和G2[0]至G2[3]按照第一矩阵形式映射至该对象忆阻器子阵列中,具体映射过程如前所述,这里不再赘述。
以此类推,将参数元素G1[0]至G1[3]和G2[0]至G2[3]按照第一矩阵形式分别映射至不同的忆阻器子阵列中,以得到如图5A所示的忆阻器阵列。
例如,将10个第一模拟信号分别输入设置后的忆阻器阵列的多个列信号输入端,控制忆阻器阵列操作以对多个模拟信号进行卷积处理。根据基尔霍夫定律,忆阻器阵列的输出电流可以根据下述公式(2)得出:
其中,j=1,…,M,k=1,…,N。
在上述公式(2)中,Vk表示多个列信号输入端中第k个列信号输入端输入的电压,Ij表示多个行信号输出端中第j个行信号输出端输出的电流信号。Gjk表示位于第j行第k列的忆阻器单元整体电导值。根据基尔霍夫定律可知,忆阻器阵列可以并行地完成乘累加计算。
例如,对于图5A中第一个行信号输出端输出的第二模拟信号I1[0],结合公式(2)可以得到,I1[0]=V[3]*G1[0]+V[2]*G1[1]+V[1]*G1[2]+V[0]*G1[3],参考公式(1)可以看出,第二模拟信号I1[0]为对对象列组(1)中的4个第一模拟信号执行卷积处理后的卷积结果。
同样的,对于图5A中第三个行信号输出端输出的第二模拟信号I1[1],结合公式(2)可以得到,I1[1]=V[4]*G1[0]+V[3]*G1[1]+V[2]*G1[2]+V[1]*G1[3],参考公式(1)可以看出,第二模拟信号I1[1]为对对象列组(2)中的4个第一模拟信号执行卷积处理后的卷积结果。
以此类推,在忆阻器阵列的14个行信号输出端分别得到执行卷积处理后的14个第二模拟信号,也即图5A中的I1[0]至I1[6]和I2[0]至I2[6],其中,I1[0]至I1[6]为7个对应于第一滤波器的卷积处理结果,I2[0]至I2[6]为7个对应于第二滤波器的卷积处理结果。
图5B为本公开至少一实施例提供的另一种写入卷积参数矩阵后的忆阻器阵列的示意图,该实施例可以与图5A所示的实施例实现相同的卷积的计算。
例如,图5B所示的忆阻器阵列、卷积参数矩阵、10个第一模拟信号以及对象列组的定义与图5A完全相同,这里不再赘述。
例如,将忆阻器阵列中位于左上角的忆阻器单元作为位于第一行第一列的忆阻器单元,对应于对象列组(1)的对象忆阻器阵列为位于忆阻器阵列第一行第7列至第一行第10列的4个目标忆阻器单元以及位于忆阻器阵列第八行第7列至第八行第10列的4个目标忆阻器单元,参数元素G1[0]至G1[3]和G2[0]至G2[3]尽管分开设置在不再直接相邻的两行中,但是仍然构成一个子阵列。同样的,对应于对象列组(2)的对象忆阻器阵列为位于忆阻器阵列第二行第6列至第二行第9列的4个目标忆阻器单元以及位于忆阻器阵列第九行第6列至第九行第9列的4个目标忆阻器单元,以此类推,这里不再赘述。
例如,每行参数元素包括Q个参数元素,对于卷积参数矩阵的每行参数元素,例如第一行参数元素G1[0]至G1[3]或第二行参数元素G2[0]至G2[3],将每行参数元素映射至忆阻器阵列中的多个忆阻器行,每个忆阻器行包括的Q个目标忆阻器单元一一对应于Q个参数元素,例如,将第一行参数元素映射至忆阻器阵列中的第一行至第七行,将第二行参数元素映射至忆阻器阵列中的第八行至第十四行,例如,如图5B所示,对于忆阻器阵列中的第一行至第七行,每个忆阻器行包括4个目标忆阻器单元,且这4个目标忆阻器单元一一对应于4个参数元素G1[0]至G1[3],对于忆阻器阵列中的第八行至第十四行,每个忆阻器行包括4个目标忆阻器单元,且这4个目标忆阻器单元一一对应于4个参数元素G2[0]至G2[3]。
例如,如图5A和图5B所示,忆阻器子阵列的大小与卷积参数矩阵的大小相同,例如,卷积参数矩阵为P行Q列的第一矩阵形式,忆阻器子阵列也包括P行Q列个目标忆阻器单元。
需要说明的是,在本公开中,忆阻器阵列中的一个忆阻器行唯一对应于卷积参数矩阵中的一行参数元素,本公开对于忆阻器子阵列中的每行目标忆阻器单元之间的位置关系以及每个忆阻器行中的目标忆阻器单元之间的位置关系不作限制。
例如,如图5A和图5B所示,忆阻器子阵列中的每行目标忆阻器单元可以是彼此相邻且连续的多个目标忆阻器单元,例如,根据多个第一模拟信号之间的相对位置关系的变化,忆阻器子阵列中的每行目标忆阻器单元也可以是不连续的多个目标忆阻器单元,本公开对此不作限制。
例如,当忆阻器子阵列包括多行目标忆阻器单元时,忆阻器子阵列中的每行目标忆阻器单元之间不限制为相邻的形式,例如,如图5A所示,每个忆阻器子阵列中的两行目标忆阻器单元彼此相邻,或者如图5B所示,每个忆阻器子阵列中的两行目标忆阻器单元彼此不相邻,本公开对此不作限制。
例如,参数元素的数值可能为正数也可能为负数,例如,每个参数元素可以利用两个忆阻器的电导值来表示,例如,利用两个忆阻器的电导值之差来代表一个参数元素,或者,利用两个忆阻器的电导值之和来代表一个参数元素。
例如,卷积参数矩阵为排布成2*P行Q列的第一矩阵,卷积参数矩阵包括P行Q列的第一子卷积参数矩阵和对应的P行Q列的第二子卷积参数矩阵,第一子卷积参数矩阵和第二子卷积参数矩阵中对应行列位置的参数元素共同表示执行卷积处理的一个参数元素,由此得到运算后实质上的P行Q列的卷积参数矩阵,其中P为大于等于1的正整数,Q为大于1的正整数。例如,“对应行列位置”指忆阻器阵列中在行方向和列方向上对应的位置。
此时对于步骤S130,例如,第一子卷积参数矩阵包括P行第一参数元素,第二子卷积参数矩阵包括P行第二参数元素,P行第一参数元素与P行第二参数元素的行列位置一一对应,在忆阻器阵列的多个行信号输出端分别得到执行卷积处理后的多个第二模拟信号,包括:针对每个忆阻器子阵列,确定至少一组待处理行,其中,每组待处理行包括与一行第一参数元素所对应的一行目标忆阻器单元,以及与对应于一行第一参数元素的一行第二参数元素所对应的一行目标忆阻器单元;对每组待处理行包括的两行目标忆阻器单元分别对应的两个行信号输出端的电流信号进行电流预处理,以得到每组待处理行对应的第二模拟信号。
例如,电流预处理为电流相减处理或电流相加处理。
例如,卷积参数矩阵W’=[W+;W-]=[G+[0],G+[1],G+[2],G+[3];G-[0],G-[1],G-[2],G-[3]],第一矩阵为参数元素排布为2行4列的矩阵,行向量W+为第一子卷积参数矩阵,第一子卷积参数矩阵包括一行第一参数元素(G+[0],G+[1],G+[2]),行向量W-为第二子卷积参数矩阵,第二子卷积参数矩阵包括一行第二参数元素(G-[0],G-[1],G-[2],G-[3])。
参数元素G+[0]和参数元素G-[0]共同表示执行卷积处理的参数元素G[0],参数元素G+[1]和参数元素G-[1]共同表示执行卷积处理的参数元素G[1],参数元素G+[2]和参数元素G-[2]共同表示执行卷积处理的参数元素G[2],参数元素G+[3]和参数元素G-[3]共同表示执行卷积处理的参数元素G[3],也即是,用于执行卷积处理的滤波系数向量为(G[0],G[1],G[2],G[3]),滤波系数向量由第一子卷积参数矩阵和对应的第二子卷积参数矩阵共同表示,从而可以利用第一子卷积参数矩阵和对应的第二子卷积参数矩阵实现参数元素的负值,以执行更加丰富、复杂的卷积处理。
图6为本公开至少一实施例提供的再一种写入卷积参数矩阵后的忆阻器阵列的示意图。
例如,图6中的V[0]至V[9]分别为10个第一模拟信号,分别输入10个列信号输入端,图6中的I+[0]至I+[6]和I-[0]至I-[6]分别为14个行信号输出端所输出的14个电流信号,基于14个电流信号得到7个第二模拟信号I[0]至I[6]。
例如,将卷积参数矩阵W’按照第一矩阵的形式多次映射至忆阻器阵列中不同的多个忆阻器子阵列,每个忆阻器子阵列如图6中黑色粗实线标记的区域所示,以得到图6所示的忆阻器阵列,每个忆阻器阵列对应的卷积参数矩阵W’为运算后实质上的1行4列的卷积参数矩阵,具体过程如前所述,这里不再赘述。
例如,每个用于执行卷积处理的参数元素由第一子卷积参数矩阵W+和第二子卷积参数矩阵W-中对应行列位置的参数元素之差表示。
例如,对于位于忆阻器阵列中的第一行和第二行的、由黑色粗实线框标记的忆阻器子阵列(1),其对应的一组待处理行包括位于忆阻器阵列第一行中的一行目标忆阻器单元,以及位于忆阻器阵列第二行中的一行目标忆阻器单元。例如,将忆阻器阵列中的第一行的行信号输出端的电流信号I+[0]和第二行的行信号输出端的电流信号I-[0]相减,以得到第二模拟信号I[0]。
例如,对于位于忆阻器阵列中的第三行和第四行的、由黑色粗实线标记的忆阻器子阵列(2),其对应的一组待处理行包括位于忆阻器阵列第三行中的一行目标忆阻器单元,以及位于忆阻器阵列第四行中的一行目标忆阻器单元。例如,将忆阻器阵列中的第三行的行信号输出端的电流信号I+[1]和第四行的行信号输出端的电流信号I-[1]相减,以得到第二模拟信号I[1]。
以此类推,按照上述方式得到第二模拟信号I[2]至第二模拟信号[6],以得到执行卷积处理后的7个第二模拟信号。
例如,还可以利用两个对应设置的第一忆阻器阵列和第二忆阻器阵列,并将对应的行信号输出端的电流信号进行预处理以得到第二模拟信号,以实现参数元素的负值,执行更加丰富、复杂的卷积处理。
例如,忆阻器阵列包括第一忆阻器阵列和第二忆阻器阵列,卷积参数矩阵包括第一子卷积参数矩阵和第二子卷积参数矩阵,第一子卷积参数矩阵和第二子卷积参数矩阵均为第一矩阵形式,第一子卷积参数矩阵对应地按照第一矩阵的形式被多次映射于第一忆阻器阵列中不同的多个忆阻器子阵列,第二子卷积参数矩阵对应地按照第一矩阵的形式被多次映射于第二忆阻器阵列中不同的多个忆阻器子阵列。
此时对于步骤S130,例如,在忆阻器阵列的多个行信号输出端分别得到执行卷积处理后的多个第二模拟信号,可以包括:对第一忆阻器阵列中的每个行信号输出端的电流信号和第二忆阻器阵列中对应的行信号输出端的电流信号进行电流预处理,以得到多个第二模拟信号。
例如,电流预处理为电流相减处理或电流相加处理。
例如,卷积参数矩阵W’=[W+;W-]=[G+[0],G+[1],G+[2],G+[3];G-[0],G-[1],G-[2],G-[3]],第一矩阵为参数元素排布为1行4列的矩阵,也即一个4维行向量。行向量W+为第一子卷积参数矩阵,行向量W-为第二子卷积参数矩阵,第一子卷积参数矩阵和第二子卷积参数矩阵均为第一矩阵形式。
同样的,第一子卷积参数矩阵和第二子卷积参数矩阵中对应行列位置的参数元素共同表示执行所述卷积处理的一个参数元素。例如,参数元素G+[0]和参数元素G-[0]共同表示执行卷积处理的参数元素G[0],参数元素G+[1]和参数元素G-[1]共同表示执行卷积处理的参数元素G[1],参数元素G+[2]和参数元素G-[2]共同表示执行卷积处理的参数元素G[2],参数元素G+[3]和参数元素G-[3]共同表示执行卷积处理的参数元素G[3],也即是,用于执行卷积处理的滤波系数向量为(G[0],G[1],G[2],G[3]),滤波系数向量由第一子卷积参数矩阵和对应的第二子卷积参数矩阵共同表示,从而可以利用第一子卷积参数矩阵和对应的第二子卷积参数矩阵实现参数元素的负值,以执行更加丰富、复杂的卷积处理。
图7为本公开至少一实施例提供的再一种写入卷积参数矩阵后的忆阻器阵列的示意图,该实施例可以与图6所示的实施例实现相同的卷积的计算。
图7所示的忆阻器阵列包括第一忆阻器阵列和第二忆阻器阵列,每个忆阻器阵列具有独立的控制电路,例如具有独立的列信号输入端,以分别输入10个第一模拟信号V[0]至V[9],以及独立的行信号输出端,以输出电流信号I+[0]至电流信号I+[6]和电流信号I-[0]至电流信号I-[6]。例如,图7中的I[0]至I[6]表示7个经过卷积处理后的第二模拟信号。
例如,将卷积参数矩阵W’中的第一子卷积参数矩阵W+按照第一矩阵的形式多次映射至第一忆阻器阵列中不同的多个忆阻器子阵列,将卷积参数矩阵W’中的第二子卷积参数矩阵W-按照第一矩阵的形式多次映射至第二忆阻器阵列中不同的多个忆阻器子阵列,以得到图7所示的忆阻器阵列,具体过程如前所述,这里不再赘述。
例如,每个用于执行卷积处理的参数元素由第一子卷积参数矩阵W+和第二子卷积参数矩阵W-中对应行列位置的参数元素之差表示。
例如,将第一忆阻器阵列中的第一行的行信号输出端的电流信号I+[0]和第二忆阻器阵列中的第一行的行信号输出端的电流信号I-[0]相减,以得到第二模拟信号I[0]。
例如,将第一忆阻器阵列中的第二行的行信号输出端的电流信号I+[1]和第二忆阻器阵列中的第二行的行信号输出端的电流信号I-[1]相减,以得到第二模拟信号I[1]。
以此类推,如图7所示,按照上述方式得到第二模拟信号I[2]至第二模拟信号[6],以得到执行卷积处理后的7个第二模拟信号。
例如,本公开至少一实施例提供的基于忆阻器阵列的数据处理方法还可以包括:对多个第二模拟信号进行模数转换处理,以将多个第二模拟信号分别转换为多个数字信号以用于进行后续处理。
例如,图8为本公开至少一实施例提供的基于忆阻器阵列的数据处理方法的处理流程示意图。
下面结合图8,具体说明该基于忆阻器阵列的数据处理方法的执行过程。
首先,如图8所示,将对应于卷积处理的卷积参数矩阵的数据写入忆阻器阵列,具体过程如步骤S120所述,这里不再赘述。
接着,将用于进行卷积处理的初始数字信号转换为多个第一模拟信号,这里,第一模拟信号为模拟电压信号,具体过程如步骤S110所述,这里不再赘述。
最后,将多个第一模拟信号施加至对应的列信号输入端,以得到多个第二模拟信号,并对多个第二模拟信号进行模数转换处理以得到数字化的滤波结果,具体过程如步骤S130所述,这里不再赘述。
该基于忆阻器阵列的数据处理方法可以实现一次计算(或一个计算周期)即可得到卷积处理操作的所有结果,大大减少了数据移位以及获取第一模拟信号过程中的模数转换次数和所需的时间,降低了功耗,提高了计算速度。
例如,本公开所提供的基于忆阻器阵列的数据处理方法可以用于神经信号的分析,例如,可以用于颅内系统设计,以对采集得到的初始神经信号进行处理,例如特征提取等,进一步降低卷积处理过程的功耗,提高运算速度,满足颅内系统设计严格的功耗和面积要求。
例如,初始神经信号可以为脑神经信号、脊神经信号等,初始神经信号包括但不限于各种动物的神经信号。
例如,当卷积参数矩阵包括多个滤波系数向量时,每个滤波系数向量用于提取不同的特征信息,从而可以并行的利用忆阻器阵列对多个初始神经信号进行多种不同的特征的提取,以得到多个第二模拟信号,也即多个特征信息,计算效率更高,功耗更低。
与上述基于忆阻器阵列的数据处理方法相对应,本公开至少一实施例还提供一种电子装置,图9A为本公开至少一实施例提供的一种电子装置的示意性框图。
如图9A所示,电子装置900包括忆阻器阵列901、信号获取装置902以及控制驱动电路903。忆阻器阵列901配置为能进行乘和运算,以上述执行卷积处理。信号获取装置902配置为获取多个第一模拟信号。控制驱动电路903被配置为执行步骤S120至S130。
例如,忆阻器阵列901可以采用图1所示的忆阻器阵列,忆阻器阵列包括阵列排布的多个忆阻器单元,例如,忆阻器阵列包括m行n列。例如,每个忆阻器单元包括忆阻器,每个忆阻器包括第一端和第二端,且该忆阻器能被设置为初始状态,也能被设置(置位)为具有一定电阻值的置位状态。当忆阻器处于初始状态时,其电阻值远大于处于置位状态的电阻。例如,每个忆阻器单元还包括开关元件,开关元件包括控制端、第一极和第二极,忆阻器的第一端与开关元件的第一极电连接。
例如,忆阻器阵列还包括m条字线、m条源线和n条位线。m条字线分别与m行对应,每条字线与一行忆阻器单元的各个开关元件的控制端电连接,m条源线分别与m行对应;m条源线分别与m行对应,每条源线与一行忆阻器单元的各个开关元件的第二极电连接;n条位线分别于n列对应,且每条位线与一列忆阻器单元的各个忆阻器的第二端电连接。
例如,信号获取装置902包括数字信号获取电路和数模转换电路。例如,数字信号获取电路配置为获取多个初始数字信号;数模转换电路配置为对多个初始数字信号进行数模转换处理,以分别得到多个第一模拟信号。
例如,控制驱动电路903可以包括源线驱动电路、字线驱动电路和位线驱动电路。源线驱动电路配置为对多个第二模拟信号进行检测和对忆阻器阵列执行初始化操作;字线驱动电路配置为对忆阻器阵列的多个信号控制端施加开启信号和对忆阻器阵列执行初始化操作;位线驱动电路配置为对多个列信号输入端施加输入信号和对忆阻器阵列执行初始化操作,其中,输入信号至少包括多个第一模拟信号。
例如,控制驱动电路903可以通过位线驱动电路向忆阻器阵列的多个列信号输入端施加输入信号,通过字线驱动电路同时将开启信号施加至忆阻器阵列的多个信号控制端,最终通过源线驱动电路对设置后的忆阻器阵列的多个行信号输出端的电流信号进行处理,以得到多个第二模拟信号。
例如,电子装置900还可以进一步包括数据输出电路,其中,该数据输出电路配置为将多个第二模拟信号转换为数字信号,以将多个第二模拟信号分别转换为多个数字信号以用于进行后续处理。
需要说明的是,关于通过信号获取装置902获取多个第一模拟信号的具体说明可以参考上述基于忆阻器阵列的数据处理方法的实施例中图3所示的步骤S110的相关描述;控制驱动电路903用于实现图3所示的步骤S120至步骤S130,关于控制驱动电路903的具体说明可以参考上述基于忆阻器阵列的数据处理方法的实施例中图3所示的步骤S120至步骤S130的相关描述。此外,电子装置可以实现与前述基于忆阻器阵列的数据处理方法相似的技术效果,在此不再赘述。
图9B为本公开至少一实施例提供的一种电子装置示意图。例如,如图9B所示,电子装置包括信号获取装置、字线驱动电路、位线驱动电路、源线驱动电路、忆阻器阵列以及数据输出电路。
例如,信号获取装置配置为将数字信号通过DAC(Digital to Analog converter,数字模拟转换器)转换为多个第一模拟信号,以在进行卷积处理时输入至忆阻器阵列的多个列信号输入端。
例如,忆阻器阵列包括M条源线、M条字线和N条位线,以及阵列排布为M行N列的多个忆阻器单元。例如,每个忆阻器单元为1T1R结构,将用于卷积处理的卷积参数矩阵多次映射于忆阻器阵列中不同的多个子阵列,具体过程如步骤S120所述,这里不再赘述。
例如,通过字线驱动电路、位线驱动电路和源线驱动电路实现卷积处理的过程如前所述,这里不再赘述。
例如,字线驱动电路包括多个多路选择器(Multiplexer,简称Mux),用于切换源线输入电压,位线驱动电路包括多个多路选择器,用于切换位线输入电压,源线驱动电路也包括多个多路选择器,用于切换源线输入电压。
例如,忆阻器阵列包括操作模式和计算模式。当忆阻器阵列处于操作模式时,忆阻器单元处于初始化状态,可以将卷积参数矩阵中的参数元素的数值写入忆阻器阵列中。例如,将忆阻器的源线输入电压、位线输入电压和字线输入电压通过多路选择器切换至对应的预设电压区间,例如,通过图9B中的字线驱动电路中的多路选择器的控制信号V_WL[1:M]将字线输入电压切换至第一区间,例如将字线输入电压设置为0V(伏特),通过图9B中的源线驱动电路中的多路选择器的控制信号V_SL[1:M]将源线输入电压切换至第二区间,例如将源线输入电压设置为2V,通过图9B中的位线驱动电路中的多路选择器的控制信号V_BL[1:N]将位线输入电压切换至第三区间,例如将位线输入电压设置为2V,从而设置忆阻器的电导值。
当忆阻器阵列处于计算模式时,此时,忆阻器阵列中的忆阻器处于可用于计算的导电状态,列信号输入端输入的位线输入电压不会改变忆阻器的电导值,以通过忆阻器阵列执行乘和运算完成卷积处理。例如,通过图9B中的字线驱动电路中的多路选择器的控制信号V_WL[1:M]将字线输入电压切换至第四区间,例如将字线输入电压设置为5V(伏特),通过图9B中的源线驱动电路中的多路选择器的控制信号V_SL[1:M]将源线输入电压切换至第五区间,例如将源线输入电压设置为0V,从而使得多个行信号输出端的电流信号可以流入数据输出电路,通过图9B中的位线驱动电路中的多路选择器的控制信号V_BL[1:N]将位线输入电压切换至第六区间,例如将位线输入电压设置为0.1V-0.3V,从而利用忆阻器阵列可进行乘和运算的特性完成卷积操作。
例如,数据输出电路包括多个ADC(Analog to Digital converter,模拟数字转换器),可以将多个行信号输出端的电流信号转换为数字信号,以用于后续处理。
图9C为本公开至少一实施例提供的另一种电子装置示意图。
图9C所示的电子装置与图9B所示的电子装置的结构相同,也包括信号获取装置、字线驱动电路、位线驱动电路、源线驱动电路、忆阻器阵列以及数据输出电路。
例如,忆阻器阵列包括M条源线、2M条字线和2N条位线,以及阵列排布为M行N列的多个忆阻器单元。例如,每个忆阻器单元为2T2R结构,将用于卷积处理的卷积参数矩阵多次映射于忆阻器阵列中不同的多个子阵列,具体过程如步骤S120所述,这里不再赘述。
需要说明的是,忆阻器阵列也可以包括M条源线、M条字线和2N条位线,以及阵列排布为M行N列的多个忆阻器单元。由于在执行步骤S130时为同时将开启信号施加至忆阻器阵列的多个信号控制端,可以由每条字线同时控制每行忆阻器单元中的两个忆阻器。
关于信号获取装置、控制驱动电路以及数据输出电路的描述如前所述,这里不再赘述。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
对于本公开,还有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种基于忆阻器阵列的数据处理方法,其中,所述忆阻器阵列包括阵列排布的多个忆阻器单元且配置为能进行乘和运算,所述方法包括:
获取多个第一模拟信号;
设置所述忆阻器阵列,将对应于卷积处理的卷积参数矩阵的数据写入所述忆阻器阵列,其中,所述卷积参数矩阵为第一矩阵且包括阵列排布的多个参数元素,所述多个参数元素对应地按照所述第一矩阵的形式被多次分别映射于所述忆阻器阵列中不同的多个忆阻器子阵列,且所述多个忆阻器子阵列在所述忆阻器阵列的行方向和列方向上均不重叠;
将所述多个第一模拟信号分别输入设置后的所述忆阻器阵列的多个列信号输入端,控制所述忆阻器阵列操作以对所述多个第一模拟信号进行所述卷积处理,在所述忆阻器阵列的多个行信号输出端分别得到执行所述卷积处理后的多个第二模拟信号。
2.根据权利要求1所述的数据处理方法,其中,获取所述多个第一模拟信号,包括:
获取多个初始数字信号;
对所述多个初始数字信号进行数模转换处理,以分别得到所述多个第一模拟信号。
3.根据权利要求1所述的数据处理方法,其中,每个忆阻器子阵列对应于所述第一矩阵,不同的所述忆阻器子阵列分别对应于不同的列信号输入端,
所述多个参数元素对应地按照所述第一矩阵的形式被多次分别映射于所述忆阻器阵列中不同的多个忆阻器子阵列,包括:
从所述多个列信号输入端中,依次选择需要进行所述卷积处理的对象列组,其中,每个对象列组包括至少一个列信号输入端;
对于每个被选择的对象列组,将所述多个参数元素对应地按照所述第一矩阵的形式映射到对象忆阻器子阵列中,其中,所述对象忆阻器子阵列为所述多个忆阻器子阵列中对应于所述被选择的对象列组的忆阻器子阵列。
4.根据权利要求3所述的数据处理方法,其中,每个忆阻器子阵列包括多个目标忆阻器单元,
对于每个被选择的对象列组,将所述多个参数元素对应地按照所述第一矩阵的形式,映射到所述对象忆阻器子阵列中,包括:
将所述第一矩阵中同一行的参数元素分别映射于所述对象忆阻器子阵列中同一行的目标忆阻器单元;
将所述第一矩阵中同一列的参数元素分别映射于所述对象忆阻器子阵列中同一列的目标忆阻器单元。
5.根据权利要求4所述的数据处理方法,其中,所述卷积参数矩阵的每行包括Q个参数元素,
每个忆阻器单元包括至少一个忆阻器,每个忆阻器可被设置为初始状态,
将所述第一矩阵的同一行参数元素映射于所述对象忆阻器子阵列中同一行的目标忆阻器单元,包括:
对于所述卷积参数矩阵的每行参数元素,在所述忆阻器阵列中对应于所述对象忆阻器子阵列的一行忆阻器单元中选择Q个目标忆阻器单元以一一对应于所述Q个参数元素,再将所述一行忆阻器单元中除所述Q个目标忆阻器单元外的忆阻器单元中的忆阻器设置为所述初始状态,
其中,Q为大于1的正整数。
6.根据权利要求5所述的数据处理方法,其中,在所述忆阻器阵列中对应于所述对象忆阻器子阵列的一行忆阻器单元中选择Q个目标忆阻器单元以一一对应于所述Q个参数元素,包括:
根据所述Q个参数元素中每个参数元素的数值,将所述选择的Q个目标忆阻器单元中包括的忆阻器整体上设定为可用于计算的导电状态且具有对应于所述数值的电导值。
7.根据权利要求3所述的数据处理方法,其中,从所述多个列信号输入端中,依次选择需要进行所述卷积处理的对象列组,包括:
按照所述卷积处理的平移步长,从所述多个列信号输入端中,依次选择需要进行所述卷积处理的对象列组。
8.根据权利要求1所述的数据处理方法,其中,所述卷积参数矩阵为排布成2*P行Q列的第一矩阵,
所述卷积参数矩阵包括P行Q列的第一子卷积参数矩阵和对应的P行Q列的第二子卷积参数矩阵,
所述第一子卷积参数矩阵和所述第二子卷积参数矩阵中对应行列位置的参数元素共同表示执行所述卷积处理的一个参数元素,其中P为大于等于1的正整数,Q为大于1的正整数。
9.根据权利要求8所述的数据处理方法,其中,所述第一子卷积参数矩阵包括P行第一参数元素,所述第二子卷积参数矩阵包括P行第二参数元素,所述P行第一参数元素与所述P行第二参数元素的行列位置一一对应,
在所述忆阻器阵列的多个行信号输出端分别得到执行所述卷积处理后的多个第二模拟信号,包括:
针对每个忆阻器子阵列,确定至少一组待处理行,其中,每组待处理行包括与一行第一参数元素所对应的一行目标忆阻器单元,以及与对应于所述一行第一参数元素的一行第二参数元素所对应的一行目标忆阻器单元;
对每组待处理行包括的两行目标忆阻器单元分别对应的两个行信号输出端的电流信号进行电流预处理,以得到所述每组待处理行对应的第二模拟信号。
10.根据权利要求1所述的数据处理方法,其中,所述忆阻器阵列包括第一忆阻器阵列和第二忆阻器阵列,所述卷积参数矩阵包括第一子卷积参数矩阵和第二子卷积参数矩阵,所述第一子卷积参数矩阵和所述第二子卷积参数矩阵均为所述第一矩阵形式,
所述第一子卷积参数矩阵对应地按照所述第一矩阵的形式被多次映射于所述第一忆阻器阵列中不同的多个忆阻器子阵列,
所述第二子卷积参数矩阵对应地按照所述第一矩阵的形式被多次映射于所述第二忆阻器阵列中不同的多个忆阻器子阵列。
11.根据权利要求10所述的数据处理方法,其中,在所述忆阻器阵列的多个行信号输出端分别得到执行所述卷积处理后的多个第二模拟信号,包括:
对所述第一忆阻器阵列中的每个行信号输出端的电流信号和所述第二忆阻器阵列中对应的行信号输出端的电流信号进行电流预处理,以得到所述多个第二模拟信号。
12.根据权利要求1-11任一项所述的数据处理方法,还包括:
对所述多个第二模拟信号进行模数转换处理,以将所述多个第二模拟信号分别转换为多个数字信号以用于进行后续处理。
13.根据权利要求1-11任一项所述的数据处理方法,其中,所述第一模拟信号为模拟电压信号,所述第二模拟信号为模拟电流信号。
14.一种电子装置,包括:
忆阻器阵列,配置为能进行乘和运算;
信号获取装置,配置为获取多个第一模拟信号;
控制驱动电路,其中,所述控制驱动电路配置为执行以下步骤:
设置所述忆阻器阵列,将对应于卷积处理的卷积参数矩阵的数据写入所述忆阻器阵列,其中,所述卷积参数矩阵为第一矩阵且包括阵列排布的多个参数元素,所述多个参数元素对应地按照所述第一矩阵的形式被多次分别映射于所述忆阻器阵列中不同的多个忆阻器子阵列,且所述多个忆阻器子阵列在所述忆阻器阵列的行方向和列方向上均不重叠;
将所述多个第一模拟信号分别输入设置后的所述忆阻器阵列的多个列信号输入端,控制所述忆阻器阵列操作以对所述多个第一模拟信号进行所述卷积处理,在所述忆阻器阵列的多个行信号输出端分别得到执行所述卷积处理后的多个第二模拟信号。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110426351.9A CN113077829B (zh) | 2021-04-20 | 2021-04-20 | 基于忆阻器阵列的数据处理方法、电子装置 |
PCT/CN2021/137845 WO2022222498A1 (zh) | 2021-04-20 | 2021-12-14 | 基于忆阻器阵列的数据处理方法、电子装置 |
US17/788,408 US20240170060A1 (en) | 2021-04-20 | 2021-12-14 | Data processing method based on memristor array and electronic apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110426351.9A CN113077829B (zh) | 2021-04-20 | 2021-04-20 | 基于忆阻器阵列的数据处理方法、电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113077829A CN113077829A (zh) | 2021-07-06 |
CN113077829B true CN113077829B (zh) | 2023-04-28 |
Family
ID=76618229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110426351.9A Active CN113077829B (zh) | 2021-04-20 | 2021-04-20 | 基于忆阻器阵列的数据处理方法、电子装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240170060A1 (zh) |
CN (1) | CN113077829B (zh) |
WO (1) | WO2022222498A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113077829B (zh) * | 2021-04-20 | 2023-04-28 | 清华大学 | 基于忆阻器阵列的数据处理方法、电子装置 |
CN113517016B (zh) * | 2021-07-21 | 2023-04-18 | 清华大学 | 计算装置及其鲁棒性处理方法 |
CN113792010A (zh) * | 2021-09-22 | 2021-12-14 | 清华大学 | 存算一体芯片及数据处理方法 |
CN114121089B (zh) * | 2021-11-24 | 2023-05-09 | 清华大学 | 基于忆阻器阵列的数据处理方法及装置 |
CN114282164B (zh) * | 2021-12-01 | 2024-07-16 | 北京大学 | 一种模拟计算矩阵乘法电路及其在dft/idft中的应用 |
CN114268320B (zh) * | 2021-12-23 | 2024-09-24 | 北京超弦存储器研究院 | 数模转换电路、电子装置以及操作方法 |
CN116450998A (zh) * | 2022-01-07 | 2023-07-18 | 清华大学 | 基于忆阻器阵列的数据处理方法、电子装置 |
CN116805370A (zh) * | 2022-03-15 | 2023-09-26 | 清华大学 | 图像识别方法、装置及相关设备 |
CN115099396B (zh) * | 2022-05-09 | 2024-04-26 | 清华大学 | 基于忆阻器阵列的全权重映射方法及装置 |
CN114819093A (zh) * | 2022-05-09 | 2022-07-29 | 清华大学 | 利用基于忆阻器阵列的环境模型的策略优化方法和装置 |
CN114781631B (zh) * | 2022-05-13 | 2024-08-02 | 清华大学 | 卷积层的映射方法及映射装置、卷积运算方法及运算装置 |
CN115553789B (zh) * | 2022-09-09 | 2024-06-21 | 清华大学 | 信号采集处理装置、电子设备以及信号采集处理方法 |
CN115906968B (zh) * | 2022-11-09 | 2023-12-08 | 南方科技大学 | 双有符号操作数非易失性存算一体单元、阵列及运算方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800729A (zh) * | 2019-01-28 | 2019-05-24 | 清华大学 | 信号处理装置及信号处理方法 |
CN110826709A (zh) * | 2019-10-18 | 2020-02-21 | 华中科技大学 | 一种基于三维相变存储器的3d卷积运算装置及方法 |
CN111428857A (zh) * | 2020-02-28 | 2020-07-17 | 上海集成电路研发中心有限公司 | 一种基于忆阻器的卷积运算装置及方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105390520B (zh) * | 2015-10-21 | 2018-06-22 | 清华大学 | 忆阻器交叉阵列的参数配置方法 |
CN107305538B (zh) * | 2016-04-22 | 2020-07-31 | 中科寒武纪科技股份有限公司 | 一种子矩阵运算装置及方法 |
WO2018058426A1 (zh) * | 2016-09-29 | 2018-04-05 | 清华大学 | 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统 |
WO2018138603A1 (en) * | 2017-01-26 | 2018-08-02 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device and electronic device including the semiconductor device |
US10496374B2 (en) * | 2018-03-22 | 2019-12-03 | Hewlett Packard Enterprise Development Lp | Crossbar array operations using ALU modified signals |
US11132423B2 (en) * | 2018-10-31 | 2021-09-28 | Hewlett Packard Enterprise Development Lp | Partition matrices into sub-matrices that include nonzero elements |
CN109543827B (zh) * | 2018-12-02 | 2020-12-29 | 清华大学 | 生成式对抗网络装置及训练方法 |
US11694070B2 (en) * | 2019-05-07 | 2023-07-04 | Hrl Laboratories, Llc | Bipolar all-memristor circuit for in-memory computing |
CN110569962B (zh) * | 2019-08-08 | 2022-02-15 | 华中科技大学 | 一种基于1t1r存储器阵列的卷积计算加速器及其操作方法 |
US11195080B1 (en) * | 2021-03-29 | 2021-12-07 | SambaNova Systems, Inc. | Lossless tiling in convolution networks—tiling configuration |
CN113077829B (zh) * | 2021-04-20 | 2023-04-28 | 清华大学 | 基于忆阻器阵列的数据处理方法、电子装置 |
-
2021
- 2021-04-20 CN CN202110426351.9A patent/CN113077829B/zh active Active
- 2021-12-14 WO PCT/CN2021/137845 patent/WO2022222498A1/zh active Application Filing
- 2021-12-14 US US17/788,408 patent/US20240170060A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800729A (zh) * | 2019-01-28 | 2019-05-24 | 清华大学 | 信号处理装置及信号处理方法 |
CN110826709A (zh) * | 2019-10-18 | 2020-02-21 | 华中科技大学 | 一种基于三维相变存储器的3d卷积运算装置及方法 |
CN111428857A (zh) * | 2020-02-28 | 2020-07-17 | 上海集成电路研发中心有限公司 | 一种基于忆阻器的卷积运算装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2022222498A1 (zh) | 2022-10-27 |
US20240170060A1 (en) | 2024-05-23 |
CN113077829A (zh) | 2021-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113077829B (zh) | 基于忆阻器阵列的数据处理方法、电子装置 | |
US10692570B2 (en) | Neural network matrix multiplication in memory cells | |
US10990651B2 (en) | Systems and methods for efficient matrix multiplication | |
CN110807519B (zh) | 基于忆阻器的神经网络的并行加速方法及处理器、装置 | |
Yakopcic et al. | Memristor crossbar deep network implementation based on a convolutional neural network | |
CN108921290B (zh) | 神经突触单元电路、神经网络电路和信息处理系统 | |
EP3262651B1 (en) | Crossbar arrays for calculating matrix multiplication | |
CN111406265A (zh) | 具有非易失性突触阵列的神经网络电路 | |
US11157810B2 (en) | Resistive processing unit architecture with separate weight update and inference circuitry | |
US11544540B2 (en) | Systems and methods for neural network training and deployment for hardware accelerators | |
Fumarola et al. | Accelerating machine learning with non-volatile memory: Exploring device and circuit tradeoffs | |
CN115410621A (zh) | 包括突触的神经形态器件的突触阵列及其操作方法 | |
CN115458005A (zh) | 数据处理方法和存算一体装置、电子设备 | |
CN113643175B (zh) | 数据处理方法及电子装置 | |
CN113806687A (zh) | 信号处理电路及信号处理方法 | |
CN114781631A (zh) | 卷积层的映射方法及映射装置、卷积运算方法及运算装置 | |
WO2022212282A1 (en) | Compute-in-memory devices, systems and methods of operation thereof | |
WO2023130487A1 (zh) | 基于忆阻器阵列的数据处理方法、电子装置 | |
CN111859261B (zh) | 计算电路及其操作方法 | |
CN117037877A (zh) | 基于NOR Flash的存内计算芯片及其控制方法 | |
CN113222131B (zh) | 基于1t1r的可实现带符号权重系数的突触阵列电路 | |
CN113592081A (zh) | 数据处理装置及数据处理方法 | |
CN114143412B (zh) | 图像处理方法和图像处理装置 | |
CN116450996A (zh) | 基于忆阻器阵列的数据处理方法、电子装置 | |
Dorzhigulov | Hybrid CMOS-NVM Integrated Circuits for Energy-Efficient Neuromorphic Computing and Edge-AI |
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 |