CN111755062A - 自修复点积引擎 - Google Patents
自修复点积引擎 Download PDFInfo
- Publication number
- CN111755062A CN111755062A CN202010130462.0A CN202010130462A CN111755062A CN 111755062 A CN111755062 A CN 111755062A CN 202010130462 A CN202010130462 A CN 202010130462A CN 111755062 A CN111755062 A CN 111755062A
- Authority
- CN
- China
- Prior art keywords
- memristor
- memristor crossbar
- crossbar array
- dot
- partitioned
- 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.)
- Granted
Links
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/003—Cell access
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- 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
-
- 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/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
-
- 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
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/50—Marginal testing, e.g. race, voltage or current testing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/50—Marginal testing, e.g. race, voltage or current testing
- G11C2029/5006—Current
-
- 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/72—Array wherein the access device being a diode
-
- 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/74—Array wherein each memory cell has more than one access device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Neurology (AREA)
- Detection And Correction Of Errors (AREA)
- Semiconductor Integrated Circuits (AREA)
- Logic Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本公开涉及自修复点积引擎。一种DPE忆阻器交叉开关阵列系统包括多个分区忆阻器交叉开关阵列。所述多个分区忆阻器交叉开关阵列中的每一个包括主忆阻器交叉开关阵列和后备忆阻器交叉开关阵列。所述后备忆阻器交叉开关阵列包括在数学上与所述主忆阻器交叉开关阵列内的值相关的值。另外,所述多个分区忆阻器交叉开关阵列包括耦接到所述多个分区忆阻器交叉开关阵列的共享模拟电路块。所述共享模拟电路块用于确定由所述多个分区忆阻器交叉开关阵列中的至少一个分区忆阻器交叉开关阵列生成的电压值的点积值。
Description
背景技术
尽管当前存在用于检测和校正错误(error)的技术,但是这些技术限于例如有限的一组错误和诸如用于多层神经网络计算的模拟系统之类的系统。然而,增强可靠性和恢复力(包括神经网络加速器和其他基于点积引擎(DPE)的矩阵运算(例如,离散傅里叶变换或图像滤波)的可靠性和恢复力)的错误检测和校正编码方案尚未实现。由于人脑由1011个神经元量级的突触连接构成,因此预期深度神经网络中的突触操作的大小将增长到巨大规模。随着神经网络加速器的使用不断扩展到新的使用场景,提高系统可靠性和恢复力的错误检测和校正编码将变得极其重要。
附图说明
当结合附图阅读时,从以下详细描述中将最佳地理解本公开。需要强调的是,根据行业中的标准实践,各种特征未按比例绘制。实际上,为了论述清楚,各种特征的尺寸可以任意增大或减小。
图1是根据本公开的一个或多个实施方式的忆阻器交叉开关阵列的示意图。
图2是根据本公开的一个或多个实施方式的实施用于容错DPE的编码方案的忆阻器交叉开关阵列的示意图。
图3是根据本公开的一个或多个实施方式的自修复DPE系统的架构。
图4描绘了根据本公开的一个或多个实施方式的自修复状态机过程流。
图5A描绘了根据本公开的一个或多个实施方式的经编码DPE。
图5B描绘了图5A的具有故障忆阻器器件的经编码DPE。
图6是要在图3中所图示的自修复点积引擎系统内共享的备用电容器池的示意图。
图7是根据本公开的一个或多个实施方式的跨阻放大器的图示。
图8是根据本公开的一个或多个示例的计算系统的图示。
具体实施方式
现在可以公开以下所要求保护的主题的说明性示例。为了清楚起见,本说明书中并未描述实际实施方式的所有特征。可以理解,在任何这样的实际实施方式的开发中,可以做出许多特定于实施方式的决策以实现开发人员的特定目标,诸如符合系统相关约束和业务相关约束,这些约束可能因实施方式不同而不同。此外,可以理解,这种开发工作虽然复杂且耗时,但对于受益于本公开的本领域普通技术人员而言将是常规任务。
在提供值的范围的情况下,应理解的是,该范围的上限与下限间的每个之间值(精确到下限单位的十分之一,除非上下文另有明确指定)以及在该规定范围内的任何其他规定值或之间值都涵盖在本公开内。这些较小范围的上限和下限可以独立地包括在这些较小范围内,并且也涵盖在本公开内,服从所规定范围内的任何明确排除的极限。在所规定范围包括极限中的一个或两个的情况下,排除那些被包括的极限中的任一个或那两个的范围也被包括在本公开中。
预计深度神经网络内的突触操作的规模会增大。例如,深度神经网络在边缘、物联网和数据中心部署中的广泛使用说明所部署的加速器的绝对数量无限增长。大容量加速器和巨大数量的乘法效应意味着在统计上不可能发生的问题(例如,六西格码及更高)可能会在部署期间显示出很大程度的错误。在以这种规模将神经网络突触权重从外部存储器转移到裸片上时,基于DPE的解决方案因此承担了提供高可用性和可靠性的义务,这种义务已被转移到高端存储子系统中。另外,存储器控制器的普遍采用已经使得开发并实施错误检查和校正(ECC)、清理(scrubbing)、备份(sparring)等。
在边缘计算中实施的基于忆阻器的DPE的部署提供了各种突破性的应用。例如,基于忆阻器的DPE提供了通过功率循环、物理环境波动以及与云的不可靠连接来获得有效推理结果的能力。然而,此类部署所面临的挑战包括:(1)可能导致故障的潜在缺陷和耗损疲劳;(2)纳米级器件固有的短暂性问题或外部环境扰动;以及(3)将操作范围缩小到可能的操作条件的明确的设计决策。
要使基于DPE的可靠部署达到巨大规模,必须克服若干挑战。例如,在加速器中大量实例化的忆阻器器件的纳米级特征大小提出了重大的设计挑战。
本文中,忆阻器器件被定义为表现出可编程电阻器特性的无源两端子电气部件。忆阻器器件的电导由非易失性状态决定,非易失性状态基于先前施加的电压和电流。有利地,忆阻器器件可以通过忆阻器器件内的离子运动来实现若干种状态,并且可以被编程为四个、八个或更多个(例如,高达28个)状态。值得注意的是,忆阻器器件通常是非易失性的,这意味着它们可以在没有电源的情况下保留记忆。
覆盖实施基于忆阻器的DPE的整个问题域的设计挑战可能起因于DPE所必需的各种操作模式(例如,写入各个器件、读取各个器件、从电流范围更宽的整列来读取等)。
在忆阻器交叉开关阵列内,即使在相邻的忆阻器单元中,忆阻器器件之间也可能存在显著差异,因此DPE内生成的电流也可能显著变化。本公开提供了一种机制,该机制用于调制被分配用于检测忆阻器阵列内的相应忆阻器列的电流/电压的模拟电路操作点(例如,最佳操作中心)以解决忆阻器性能的这种变化。
另外,例如,由于存在临时捕获的电荷,因此随机电报噪声(RTN)导致导电细丝的一部分耗尽。RTN可能导致间歇性读取错误,并且有足够的可能性导致系统无法正常运行。另外,诸如热噪声、电源噪声、地弹反射、信号振铃等其他常见的器件问题可能导致短暂的读取错误。此外,随着时间的推移,松动可能导致忆阻器的状态降级,并且累积读取可能干扰忆阻器的状态。系统的模拟电路(例如,放大器和模数转换器)也可能容易受到降级的影响,从而可能导致错误的向量乘积。例如,在执行向量乘法运算的系统内实施的一些模数转换器(诸如SAR ADC)利用了容易随着时间的推移而耗损的集成电路电容器(例如,深沟槽、金属对金属(metal-on-metal)、或金属对半导体(metal-on-semiconductor)等)。
向量乘法运算以及其他运算可以由DPE执行。DPE是可以近似与神经网络应用相关联的矩阵向量乘法任务的高密度且高功效的加速器。在一些实施方式中,DPE可以使得将神经网络接口中常见的某些乘法元件卸载。DPE可以接受∑q上的l×n矩阵A(其中,A=(ai,j)i∈[l>,j∈[n>)和行向量u=(ui)i∈[l>∈∑′q作为输入,用于计算向量矩阵乘积c=uA,其中,加法和乘法在Z上执行。在一个实施方式中,i和n是固定的正整数,使得矩阵A被实现为除了在结点处包括可编程的纳米级电阻器(例如,忆阻器器件)之外还包括i行导体、n列导体的交叉开关阵列,其中,结点(i,j)处的电阻器被编程为与ai,j成比例的特定电导Gi,j。在本公开的一个实施方式中,矩阵A的修改频率比输入向量u的修改频率低得多。在一些实施方式中,矩阵A被确定一次,然后保持固定,在这种情况下,提供u作为唯一输入。在一个实施方式中,整数q≥2,而∑q表示整数集Z的子集q>={0,1,…,q-1}。通常,字符集合大小q为2的幂。
在一些实施方式中,u的每个条目ui被馈送到数模转换器(DAC),以产生与ui成比例的电压电平。具体地,将电压施加到每条行线上,这在每条列线上生成电流。如果将在每条列线上生成的电流相加,则该总电流的值(其可能是模拟值)就是点积。与忆阻器列的每个忆阻器单元相关联的电流通过放大器(例如,TIA)转换为电压。转换后的电压可以通过模数转换器(ADC)转化为数字值。在一些实施方式中,TIA和ADC电路与若干个忆阻器阵列共享(例如,经由多路复用器)。然后通过在馈入模数转换器(ADC)之后读取(接地的)列导体上的电流来计算乘积uA。忆阻器阵列内的每个忆阻器列可以被同时读取。如此,可以同时生成和计算每个相应忆阻器列的点积。
值得注意的是,不是如通常在存储器读取(例如,所存储位的读取)中那样一次访问一个忆阻器单元,而是忆阻器阵列允许访问忆阻器列中的所有忆阻器单元。在一些实施方式中,由于实施在DPE上训练的神经网络,因此需要对忆阻器阵列内的每个忆阻器单元进行编程。因此,预编程的训练神经网络有时会实时地应用于各种应用以进行推理,该推理主要涉及读取功能而不是写入功能。
图1是根据本公开的一个或多个实施方式的忆阻器交叉开关阵列100的示意图。忆阻器交叉开关阵列100包括忆阻器单元103的阵列(例如,阵列A)。每个忆阻器单元103包括忆阻器器件104和选择器器件105。选择器器件105可以用于有效地控制对忆阻器器件104的切换访问,并且还防止对忆阻器单元103的读取或写入的错误。DPE可以接受∑q上的阵列A(其中,A=(ai,j)i∈[l>,j∈[n>)与行向量u=(ui)i∈[l>∈∑'q作为输入,用于计算向量矩阵乘积c=uA,其中,加法和乘法在Z上执行。在一个实施方式中,忆阻器交叉开关阵列100包括i行导体和n列导体。具体地,将电压施加到每条行线106上,这在每条列线107上生成电流。如果将在每条列线107上生成的电流相加,则该总电流的值(其可能是模拟值)就是点积。
在一些实施方式中,忆阻器交叉开关阵列100被配置为使得可以同时读取忆阻器单元103的整个忆阻器列101。在操作中,可以将输入向量102施加到忆阻器交叉开关阵列100以执行矩阵乘法。例如,忆阻器交叉开关阵列100可以用于整数矩阵乘法。在图1中,输入向量102由u表示。输入向量102可以具有被分配给特定忆阻器单元103的唯一值。
在所示的实施方式中,每个忆阻器器件104具有唯一的电导(G)值。本文中,电导(G)被定义为物体的导电程度。电导是电阻的倒数,以西门子为单位来测量。因此,施加到忆阻器列101的每个忆阻器单元103的输入向量102的每个输入(ui)可以产生电流,该电流可以与忆阻器列101的其他忆阻器单元103中产生的其他电流相加。正确的输出向量(例如,c)等于输入向量102与忆阻器交叉开关阵列100的乘积(例如c=uA)。然而,由于在输出向量(y)生成期间可能会产生错误,因此实际输出向量可以表示为(y)=μA+e,其中,e是错误向量。
耦接到忆阻器单元103的是模拟电路的池108,所述池包括跨阻放大器(TIA)111的池109和模数电路(ADC)112的池110。在一个实施方式中,每个TIA 111是由一个或多个运算放大器实施的电流-电压转换器。然而,本领域普通技术人员应当理解,本公开不限于跨阻放大器111,而是可以使用可以测量模拟电流的任何合适的放大器或器件。电流测量可以使用单个测量装置以并行方式进行(如所示的那样)或以串行方式逐列进行。
因此,当将输入电压施加到忆阻器交叉开关阵列100(例如,忆阻器单元103的忆阻器列101)时,可以针对每个忆阻器列101测量累积电流。在所示的实施方式中,每个ADC 112耦接到TIA 111。在一些实施方式中,用于每个忆阻器列101的ADC 112可以将模拟电压信号转换为数字信号。
值得注意的是,模拟电路的池108可以与其他忆阻器交叉开关阵列(例如,忆阻器交叉开关阵列“X”)分时。因此,模拟电路的池108可以针对一个或多个忆阻器交叉开关阵列执行点积计算。
图2是根据本公开的一个或多个实施方式的实施用于容错DPE的编码方案的忆阻器交叉开关阵列200的示意图。有利地,本公开提供了一种自修复和自优化的DPE。值得注意的是,忆阻器交叉开关阵列200包括主(例如,操作性)忆阻器交叉开关阵列201和后备忆阻器交叉开关阵列202。对于交叉开关阵列201和202,在一些实施方式中,可能存在忆阻器单元的备用列的池。在确定忆阻器单元204有缺陷从而使相关联的忆阻器列203的点积计算错误的情况下,备用列205可以替换列203。在一些实施方式中,在后备忆阻器交叉开关阵列202的每个忆阻器单元204内编程的值(例如,电导值)是根据在主忆阻器交叉开关阵列201的忆阻器单元204内编程的一个或多个值来计算的。
在一个实施方式中,被编程到后备忆阻器交叉开关阵列202中的值在数学上(例如,经由数学式)与被编程到主忆阻器交叉开关阵列201中的值相关。本领域普通技术人员可以理解,忆阻器器件的每次“读取”都可能导致器件本身的性能降级,从而使忆阻器器件每次漂移一点点。随着时间的推移,这些连续的漂移可能导致显著的偏移,使得忆阻器器件生成错误,因为当前与忆阻器单元相关联的值与原始编程值(例如,电导)明显不同。在其他示例中,这些错误可能是由忆阻器单元所经历的温度变化引起的。如此,后备忆阻器交叉开关阵列202可以用于确定主忆阻器交叉开关阵列201中的忆阻器单元204的原始状态。如果引起错误的忆阻器单元204不具有有缺陷的忆阻器器件205,则可以将原始编程的值重新编程到忆阻器单元204上。
在一些实施方式中,关于忆阻器器件的数量,主忆阻器交叉开关阵列201的大小基本大于后备忆阻器交叉开关阵列202的大小。然而,在一些实施方式中,后备忆阻器交叉开关阵列202仍然可以用于校正由主忆阻器交叉开关阵列201中的缺陷引起的每个错误。另外,在一些实施方式中,对后备交叉开关202的编码使得可以在主交叉开关阵列201或后备交叉开关阵列202中的任一者或两者中检测和校正错误。
本领域普通技术人员应当理解,忆阻器器件可能表现出显著的变化,因为它们是纳米级器件。具体地,对交叉开关阵列中的电阻器进行编程时的不准确性以及在读取电流时的噪声是可能影响计算准确性的因素的示例。具体来说,实际读取的行向量y=(yj)j∈[n>∈Zn可能与正确的向量c=uA不同。错误向量在Zn中定义为以下向量:e=(ej)j∈[n>=y-uA.。在这种错误的上下文中,错误的数量可以称为e的L-1范数:||e||=||e||1=∑j∈[n>|ej|在一个实施方式中,e也被称为e的曼哈顿权重,其等于uA与y之间的曼哈顿距离。
另外,由于编程过程中的故障造成的忆阻器交叉开关阵列中的结点短路可能导致计算错误。在这种情况下,在短路列中读取的电流可能会超过某个合规性限制(“∞”),这进而可能会将y中的相应条目标记为“不可用”或擦除(ρ)。另外,潜在的制造缺陷也可能导致短路,在部署DPE之前可能会或可能不会检测到这类短路。在另一示例中,阵列中的结点可能变得无法编程或卡在打开状态,在这种情况下,y中的相应条目可能偏离正确值达+/-(q-1)2之多。可以通过此类错误对错误向量的L-1范数的贡献来对它们进行计数。可替代地,如果这种类型的错误是主要的,则可以采用汉明度量,由此,品质因数(figure of merit)是汉明权重e,等于y与uA不同(忽略各个条目的值实际上不同的程度)的位置数。在一些实施方式中,汉明度量也可以适用于处理擦除。
另外,本公开提供了一种用于采用DPE计算能力来针对错误而自我保护计算的装置。c=uA中的前k(<n)个条目可以携带感兴趣的计算结果,而c的其余n-k个条目可以包含后备符号,这些后备符号可以用于检测或校正计算错误,所述计算错误的数量可以根据上文由一个或多个设计参数界定。
如图2所示,已编程的l×n矩阵的忆阻器交叉开关阵列200可以具有结构A=(A’|A”),其中,主忆阻器交叉开关阵列201(A’)是∑q上的l×k矩阵,其包括A的前k个列,并且后备忆阻器交叉开关阵列202(例如,A”)包括其余的n-k个列。因此,针对输入向量u∈∑q计算的输出行向量为c=(c’|c”),其中,k个前缀c’=uA’(∈Zk)表示目标计算,而(n-k)个后缀c”=uA”(∈Zn-k)是后备分量。在该实施方式中,主忆阻器交叉开关阵列201(A’)和输入向量206(u)是实际输入,后备忆阻器交叉开关阵列202(例如,A”)是在将A’和A”编程到忆阻器交叉开关阵列之前或同时通过专用电路从主忆阻器交叉开关阵列(A’)计算的。在一些实施方式中,鉴于所设计的错误校正能力,将n-k最小化。
主忆阻器交叉开关阵列201的忆阻器单元204可能在不事先通知的情况下不知不觉地发生故障。在出现错误的情况下,可以将测试向量施加至主忆阻器交叉开关阵列201,以基于输出模拟电路(例如,TIA和ADC)207来确定忆阻器列203中的哪个忆阻器单元204变得有缺陷。在一个实施方式中,将测试向量实施为输入向量206,并将其施加至主忆阻器交叉开关阵列201。进一步地,专用解码电路(未示出)可以能够使用α(充当代码定位器的预定义常数)来计算y的校验子s。在一个实施方式中,当T、和ρ为非负整数时,编码方案和解码方案可以在存在ρ个擦除(erasure)的情况下校正T个错误并检测个错误。
给定了非负整数T和的情况下,可以引用编码方案来校正T个错误并检测L-1度量或汉明度量中的t和个错误,如果错误数量为T个或更少,则解码器必须产生目标计算的正确结果;否则,如果错误数量为T和或更少,则解码器可以标记解码失败而不是产生不正确的结果。
本公开提供了一种检测两个错误的DPE编码方案。给定字符集合大小q>=2和代码长度n,m-[logq(2n+1)且k=n=m(因此,m会是后备)。令α=(α0α1...αn-1)是在Zn中满足以下属性的向量:
(i)α的条目是[2n+1>中的非零不同元素
(ii)对于任何两个索引i,j,∈[n>,a1+a2≠2n+1。
(iii)αk+j=qj,j∈[n>。
α被称为代码定位器。针对每个q>=2,可以容易地构造满足条件(i)-(iii)的代码定位器(例如,当qm-1i=<n时,使得{aj}j∈[n>,={1,2,3,...,n),否则,{αj}j∈[n>=({1,2,3,...,n}\{2n+1-qm-1}).)。值得注意的是,qm-1<2n+1并且qm-2=<n,但是当q=2时qm-1可能大于n。
令y=(yj)j∈[n>=c+e=uA是DPE的输出处的读取向量,其中,e∈Zn是具有至多一个非零条目的错误向量,等于+/-1。解码可以通过计算y的校验子开始,所述校验子定义为s=(y-αT)MOD(2n+1)。
本文公开的编码方案利用Lee度量,具体地为Berlekamp(伯利坎普)码(例如,在一些实施方式中实施汉明度量编码方案)。令p为奇质数(odd prime),并且令F=GF(p)。将F的元素表示为0,1,2,.,p-1,该列表中的最后(p-1)、最后(p-1)/2个元素可以称为F中的“负”元素。通过使用元素z∈F的绝对值(在Z中)的以下定义,F上的Lee度量与Z上的L1度量被类似地定义:
如果z为“非负”,则|z|={z}
否则,|z|={p-z}
还令B=(B0 B1...Bn-1)为在扩展字段上的长度为n的向量,其条目为非零且不同,且对于每个i,j∈[n>满足Bi+Bj≠0。相应的Berlekamp码CBer=CBer(B,Τ)被定义为以下上的Τ×n奇偶校验矩阵HBer=HBer*B,Τ的右核中的Fin中的所有行向量的集合;
如此,CBer={C∈Fn:c*HBer T=0}。因此,CBer是F上的线性[n,k]码,其中,后备n-k最多为Th=T[logp(2n+1)].。
图3是根据本公开的一个或多个实施方式的自修复DPE系统300的架构。自修复DPE系统300包括若干个忆阻器交叉开关阵列304-306,它们全部复用到共享模拟电路块307并与所述共享模拟电路块307共享(例如,跨阻放大器和模数转换器)。另外,错误检测和校正逻辑块308耦接到共享模拟电路块307。在本公开的一个实施方式中,可以实施Berlekamp编码方案以检测和校正在部署DPE矩阵乘法过程期间生成的计算错误,如本文先前所述的。
在一个实施方式中,忆阻器交叉开关阵列306是专用测试阵列。忆阻器交叉开关阵列306可以访问共享模拟电路块307,或者可以访问一组专用的模拟电路(例如,TIA和ADC)。忆阻器交叉开关阵列306中的单元可以保存已知值,所述已知值可以用于确定由于模拟电路中的系统性问题而频繁发生的具有某些模式或识别标志(signature)的错误。专用测试阵列306因而有助于诊断特定的模拟子电路故障。
错误检测和校正逻辑块308的结果被路由到自修复状态机302。自修复状态机302可以根据检测到的错误来制定一个或多个响应动作,如会关于图4进行更详细的描述的。自修复状态机302监测DPE系统300中的所有活动。基于响应动作,自修复状态机302可以将这些响应动作传达给本地控制逻辑块303或模拟电路块307。可以将由错误检测和校正逻辑块308生成的与所检测和校正的错误有关的统计信息存储在单独的存储单元301中。自修复状态机302可以标记并记录检测和校正事件。在错误检测和校正逻辑块308检测到不可校正或其他灾难性错误的情况下,自修复状态机302可以向全局处理器控件发送警报以执行异常处理并采取高级校正动作。
图4描绘了根据本公开的一个或多个实施方式的自修复状态机过程流400。自修复状态机过程流400显示错误日志401,所述错误日志401保持跟踪由DPE忆阻器交叉开关阵列(例如,忆阻器交叉开关阵列200)以及错误检测和校正逻辑(例如,块308)生成的错误和统计信息。根据自修复过程流400的框402,状态机检测进行干预的条件。进行干预的条件可以包括存在以下中的任何一项:不可校正的错误、过多数量的可校正错误、故障模式识别标志、或从日志记录的分析中识别出的模式。
接下来,根据框403,过程流包括启动异常处理并确定要采取的动作或动作序列。根据所检测到的错误类型,自修复状态机过程流400可以启动第1类动作(框404)、第2类动作(框407)或第3类动作(框410),如下所描述的。在执行响应动作之后,根据框413,可以执行簿记以标记故障位置、最佳操作条件和输入条件(在适用的情况下)。最后,根据框414,恢复正常操作(例如,DPE)。
根据框404,第1类动作开始于在生成错误的相同条件下重试所述操作(框405)。如果重新生成错误,则可以在改变偏置点或参数设置(例如,微调参数)的同时重试所述操作,以试图纠正所生成的错误(框406)。
图7是根据本公开的一个或多个实施方式的跨阻放大器700的图示。本领域普通技术人员应当理解,本公开不限于图7中所公开的跨阻放大器700。如此,可以采用其他跨阻放大器,只要它们的使用不脱离本公开的精神和范围即可。下文将关于第1类动作示例来描述跨阻放大器700。
示例第1类动作
为了说明强调原位(in-situ)表征的自修复动作(1)的可能用例的各个方面,考虑了跨阻放大器(TIA)700的示例。具有可调增益控制(AGC)701的共源共栅变型(Cascodevariety)的典型TIA 700提供了一些折衷,其可以经由诸如共源共栅器件的偏置设置等参数以及通过调制反馈阻抗进行增益调整来被编程。假设所有列的器件均处于LRS或HRS状态,则可以将默认设置调整为涵盖预计最有可能的最小和最大电流范围。然而,纳米级器件(诸如阵列的列中的忆阻器)的变化可能很大。变化的其他来源是不同的操作模式,诸如对单个单元的读取操作。如果总变化导致电流落在操作窗口之外,则TIA 700的默认参数可能会导致计算结果错误。在这种情况下,对TIA AGC 701进行实时调整可以产生正确的结果。在这种情况下,由自修复状态机执行将各种值施加至TIA的AGC 701并测量结果正确性的异常处理,以找到最佳点。类似地,环境变量(诸如温度)的变化可能会导致TIA 700的输入上出现更大的信号噪声。调整共源共栅器件的Vbias可以提高抗扰度,但是会损失增益。在一些实施方式中,搜索最佳操作点的表征过程可以导致正确的计算。
另外,由于额外的潜电流,一列中的器件中的错误可能会影响相邻列。这些类型的误差是可确定的并且可以通过已知公式校正,这些公式可以调整在感兴趣列中感测到的电流的偏移和增益范围。因此,相邻列中的错误的检测和校正还应当用于对可能尚未触发大到足以被检测到的错误的列进行较小的校正。
返回图4,可以执行第2类动作(框407)。例如,根据框408,部署内置自检以生成用于隔离故障器件(例如,忆阻器器件)的模式。如果确定忆阻器器件有故障,则框409指示将该器件设置为重新编程以验证其正确性。在另一示例中,(例如,由松动引起的)随机波动可能导致已编程忆阻器的状态降级。在一个示例中,由于降级导致的这种不稳定性的物理表现是忆阻器器件的细丝的形状发生变化,从而影响了忆阻器器件的导电性。在一个实施方式中,在忆阻器器件已经由于重复的应力或缺陷的迁移而降级的情况下,可以通过重新配置忆阻器交叉开关阵列以使得主忆阻器交叉开关阵列可以合并存储在忆阻器交叉开关阵列中的备用列来替换故障的忆阻器器件。在将备用列合并到主忆阻器交叉开关阵列中之后,将使用正确的值对其进行重新编程。
最后,框410列出了可以响应于错误而制定的几个第3类动作。第3类动作可以包括框411和412中列出的动作。框411提供了从忆阻器器件或列的后备池中替换忆阻器器件中的故障(例如,忆阻器)器件或故障列。一旦替换了故障器件,就可以使用后备池中的器件或列来验证正确的操作。最后,可以使用后备忆阻器交叉开关阵列来验证正确的操作(框412)。
图5A描绘了根据本公开的一个或多个实施方式的经编码DPE的一个示例。如图所示,图5A描绘了忆阻器交叉开关阵列,其具有与后备忆阻器交叉开关阵列502接近的操作性主忆阻器交叉开关阵列501。如参考图1所描述的,对于每行r,都存在一个输入向量urid,其中,输入向量具有使得读取输出向量y=uridA=[ar0ar1…arkark+1…arn-1]的属性。即,计算出的输出向量y等于在行r的忆阻器器件中编程的值。读取输出向量y的解码校验子s可以唯一地标识y中具有故障忆阻器器件的特定元素以及由故障忆阻器器件引起的所检测错误的大小。
图5B描绘了图5A的具有故障忆阻器器件的经编码DPE。使用输入向量u的初始计算会得出实际读取输出向量y。y的解码校验子s可以唯一地标识y中有错误的特定列(例如,列k)和错误503的大小。根据状态机中制定的度量,如果错误发生得太频繁,则可能触发系统中断。
例如,除了所检测到的错误503的大小之外,输入向量ui|i=0 i=n-1=[00,01…1,0i+1...0n-1]的连续应用也可以用于标识主交叉开关阵列中有故障的特定元件(例如r,h)。导致二进制搜索过程的其他更高效的方法也是可行的。
图6是要由图3所图示的自修复点积引擎系统300内的一个或多个电容数模转换器(CDAC)604、605共享的备用电容器602的池601的示意图。在一个实施方式中,备用电容器602的池601实施在逐次逼近寄存器模数转换器(SAR ADC)内。本文中,SAR ADC是一种模数转换器,其可以在连续模拟波形最终收敛于每次转换的数字输出之前通过对所有可能的量化级别进行二进制搜索而将连续模拟波形转换为离散的数字表示。CDAC 604、605可以经由备用多路复用器603访问备用电容器602的池601。
图8是根据本公开的一个或多个示例的计算系统的图示。计算系统800可以包括非暂态计算机可读介质802,所述非暂态计算机可读介质包括存储在其上的计算机可执行指令803至807,所述指令当由一个或多个处理单元801(示出了一个)执行时使所述一个或多个处理单元801通过使用存储器中的模拟计算来提供加速的神经网络处理。
计算机可执行指令803包括部署DPE忆阻器交叉开关阵列系统。所部署的DPE忆阻器交叉开关阵列系统可以尤其包括多个分区忆阻器交叉开关阵列,其中每个分区忆阻器交叉开关阵列包括主忆阻器交叉开关阵列和后备忆阻器交叉开关阵列。所述后备忆阻器交叉开关阵列包括在数学上与所述主忆阻器交叉开关阵列内的值相关的值。另外,多个分区忆阻器交叉开关阵列中的每一个包括耦接到多个分区忆阻器交叉开关阵列的共享模拟电路块。此外,如本公开中所描述的,共享模拟电路块用于确定由多个分区忆阻器交叉开关阵列中的至少一个生成的模拟点积电流值的数字编码。
计算机可执行指令804包括检测由于DPE忆阻器交叉开关阵列系统的部署而生成的错误。所检测到的错误可以是不可校正的错误、过多数量的可校正错误、故障模式识别标志等中的任何一项。在一个实施方式中,DPE忆阻器交叉开关阵列系统通过实施汉明度量Berlekamp编码方案来检测错误。
计算机可执行指令805包括响应于检测到生成了错误而确定所检测到的错误的错误分类。在本公开的一个实施方式中,若干错误中的每一个都按类型、严重性或频率来分类。计算机可执行指令806包括根据所确定的错误分类来制定校正动作。所制定的校正动作可以根据状态机中列出的自修复过程流程进行。例如,所制定的校正动作包括:停止操作交叉开关中的忆阻器器件列的操作,并且替代地部署来自忆阻器列备用池中的列。最后,计算机可执行指令807包括进行簿记以标记故障位置、最佳操作条件、可调参数值以及需要校正动作以用于将来的继续操作的执行模式指纹(fingerprint)。
出于解释的目的,前述描述使用特定术语来提供对本公开的透彻理解。然而,对于本领域技术人员将显而易见的是,不需要特定的细节即可实践本文所描述的系统和方法。出于说明和描述的目的给出了具体示例的前述描述。所述描述无意于穷举或将本公开限制为所描述的精确形式。显然,鉴于以上教导,许多修改和变化都是可能的。示出并且描述这些示例,以便最佳地解释本公开的原理和实际应用,由此使本领域的其他技术人员能够最佳地利用本公开以及具有适于预期的特定用途的各种修改的各种示例。本公开的范围旨在由权利要求及其等同物来定义。
Claims (20)
1.一种点积引擎(DPE)忆阻器交叉开关阵列,包括:
分区忆阻器交叉开关阵列,所述分区忆阻器交叉开关阵列包括:
主忆阻器交叉开关阵列;以及
后备忆阻器交叉开关阵列,
其中,所述后备忆阻器交叉开关阵列包括在数学上与在所述主忆阻器交叉开关阵列内编程的值相关的值;以及
一组模拟电路,该组模拟电路耦接到所述分区忆阻器交叉开关阵列。
2.如权利要求1所述的点积引擎忆阻器交叉开关阵列,其中,所述主忆阻器交叉开关阵列的大小大于所述后备忆阻器交叉开关阵列的大小。
3.如权利要求2所述的点积引擎忆阻器交叉开关阵列,其中,所述主忆阻器交叉开关阵列和所述后备忆阻器交叉开关阵列具有行数相等的忆阻器器件。
4.如权利要求1所述的点积引擎忆阻器交叉开关阵列,其中,所述主忆阻器阵列包括忆阻器器件的操作列,所述后备忆阻器交叉开关阵列包括忆阻器器件的备用列。
5.如权利要求1所述的点积引擎忆阻器交叉开关阵列,其中,所述分区忆阻器交叉开关阵列包括可编程为至少256个状态的忆阻器器件。
6.如权利要求1所述的点积引擎忆阻器阵列,其中,该组模拟电路包括能够操作用于确定所述主忆阻器交叉开关阵列的每个忆阻器列的点积值的放大器和一组模数转换器。
7.一种点积引擎忆阻器交叉开关阵列系统,包括:
多个分区忆阻器交叉开关阵列,所述多个分区忆阻器交叉开关阵列中的每个分区忆阻器交叉开关阵列包括:
主忆阻器交叉开关阵列;以及
后备忆阻器交叉开关阵列,其中,所述后备忆阻器交叉开关阵列包括在数学上与在所述主忆阻器交叉开关阵列内编程的值相关的值;以及
共享模拟电路块,所述共享模拟电路块耦接到所述多个分区忆阻器交叉开关阵列,并且所述共享模拟电路块用于确定由所述多个分区忆阻器交叉开关阵列中的至少一个分区忆阻器交叉开关阵列生成的电气值的点积值。
8.如权利要求7所述的点积引擎忆阻器交叉开关阵列系统,进一步包括误差检测和校正逻辑块,所述错误检测和校正逻辑块耦接到所述多个分区忆阻器交叉开关阵列,并且所述错误检测和校正逻辑块能够操作用于响应于所检测到的错误而对所述多个分区忆阻器交叉开关阵列中的至少一个分区忆阻器交叉开关阵列实施校正动作。
9.如权利要求8所述的点积引擎忆阻器交叉开关阵列系统,进一步包括状态机块,所述状态机块耦接到所述共享模拟电路块以及所述错误检测和校正逻辑块,所述状态机块用于记录在部署期间与所述多个分区忆阻器交叉开关阵列相关联的错误和校正活动。
10.如权利要求8所述的点积引擎忆阻器交叉开关阵列系统,其中,所述状态机块进一步启动对所检测到的错误和所检测到的具有潜在错误的输入模式的响应动作。
11.如权利要求8所述的点积引擎忆阻器交叉开关阵列系统,其中,所述状态机块进一步启动对所检测到的错误的响应以调制关键电路参数并由此确定无错误操作的最佳操作点,其中所述对所检测到的错误的响应由自检和表征过程构成。
12.如权利要求7所述的点积引擎忆阻器交叉开关阵列系统,其中,所述多个分区忆阻器交叉开关阵列包括用已知值编程的至少一个专用测试忆阻器交叉开关阵列。
13.如权利要求7所述的点积引擎忆阻器交叉开关阵列系统,其中,所述共享模拟电路块包括一组跨阻放大器(TIA)和模数转换器(ADC)。
14.如权利要求7所述的点积引擎忆阻器交叉开关阵列系统,进一步包括备用共享模拟电路块,所述备用共享模拟电路块包括一组跨阻放大器(TIA)和模数转换器(ADC)。
15.如权利要求7所述的点积引擎忆阻器交叉开关阵列系统,其中,所述点积引擎忆阻器交叉开关阵列系统是加速器装置。
16.一种非暂态计算机可读介质,包括存储在其上的计算机可执行指令,所述指令在由一个或多个处理单元执行时使所述一个或多个处理单元执行以下操作:
部署分区点积引擎忆阻器交叉开关阵列系统,所述点积引擎忆阻器交叉开关阵列系统包括:
多个忆阻器交叉开关阵列;以及
共享模拟电路块,所述共享模拟电路块耦接到所述多个忆阻器交叉开关阵列;
检测由所述部署生成的错误;
响应于检测到所述错误,确定所检测到的错误的错误分类;以及
根据所确定的错误分类,对所述多个忆阻器交叉开关阵列中的至少一个制定校正动作。
17.如权利要求16所述的非暂态计算机可读介质,其中,所制定的校正动作包括:停止操作主忆阻器交叉开关内具有缺陷忆阻器器件的忆阻器列,并且部署来自忆阻器列的备用池的忆阻器列。
18.如权利要求16所述的非暂态计算机可读介质,其中,所制定的校正动作包括:停止操作所述共享模拟电路块内的第一模数转换器(ADC),并且部署模拟电路的备用池内的后备电路。
19.如权利要求16所述的非暂态计算机可读介质,其中,所述错误被检测到并且所制定的校正动作被执行是通过状态机。
20.如权利要求16所述的非暂态计算机可读介质,进一步包括用于进行簿记以标记故障位置、最佳操作条件和可调参数值中的至少一个的计算机可执行指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/364,717 US10984860B2 (en) | 2019-03-26 | 2019-03-26 | Self-healing dot-product engine |
US16/364,717 | 2019-03-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111755062A true CN111755062A (zh) | 2020-10-09 |
CN111755062B CN111755062B (zh) | 2022-04-19 |
Family
ID=72607685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010130462.0A Active CN111755062B (zh) | 2019-03-26 | 2020-02-28 | 点积引擎忆阻器交叉开关阵列、系统和存储介质 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10984860B2 (zh) |
CN (1) | CN111755062B (zh) |
DE (1) | DE102020107174A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112308223A (zh) * | 2020-12-30 | 2021-02-02 | 成都科睿埃科技有限公司 | 一种基于忆阻器的深度神经网络 |
WO2022121569A1 (en) * | 2020-12-07 | 2022-06-16 | International Business Machines Corporation | Worst case noise and bound management for rpu crossbar arrays |
CN116521431A (zh) * | 2022-01-20 | 2023-08-01 | 慧与发展有限责任合伙企业 | 模拟内存交叉开关中的模拟错误检测和纠正 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11294763B2 (en) | 2018-08-28 | 2022-04-05 | Hewlett Packard Enterprise Development Lp | Determining significance levels of error values in processes that include multiple layers |
US11893478B2 (en) | 2019-01-18 | 2024-02-06 | Silicon Storage Technology, Inc. | Programmable output blocks for analog neural memory in a deep learning artificial neural network |
US10984860B2 (en) | 2019-03-26 | 2021-04-20 | Hewlett Packard Enterprise Development Lp | Self-healing dot-product engine |
US11316537B2 (en) * | 2019-06-03 | 2022-04-26 | Hewlett Packard Enterprise Development Lp | Fault-tolerant analog computing |
US11886972B2 (en) * | 2020-09-29 | 2024-01-30 | Arm Limited | Non-volatile memory accelerator for artificial neural networks |
US20220136817A1 (en) * | 2020-11-02 | 2022-05-05 | Artilux, Inc. | Reconfigurable Optical Sensing Apparatus and Method Thereof |
KR20220159840A (ko) * | 2021-05-26 | 2022-12-05 | 에스케이하이닉스 주식회사 | 전자 장치 및 그 동작 방법 |
KR20240029074A (ko) * | 2021-07-05 | 2024-03-05 | 실리콘 스토리지 테크놀로지 인크 | 딥 러닝 인공 신경망에서의 아날로그 신경 메모리를 위한 프로그램 가능 출력 블록 |
US11811416B2 (en) * | 2021-12-14 | 2023-11-07 | International Business Machines Corporation | Energy-efficient analog-to-digital conversion in mixed signal circuitry |
CN114881218A (zh) * | 2022-04-22 | 2022-08-09 | 浙江大学 | 基于忆阻器老化感知的神经网络重训练和梯度稀疏方法 |
CN115687869A (zh) * | 2022-11-09 | 2023-02-03 | 深圳先进技术研究院 | 忆阻器精度重构计算的误差校正方法、系统、计算机设备 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140172937A1 (en) * | 2012-12-19 | 2014-06-19 | 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 |
CN106463171A (zh) * | 2014-04-28 | 2017-02-22 | 慧与发展有限责任合伙企业 | 多模态忆阻器存储器 |
US20170178725A1 (en) * | 2014-10-29 | 2017-06-22 | Hewlett Packard Enterprise Development Lp | Memristive dot product engine for vector processing |
US20170345497A1 (en) * | 2016-05-24 | 2017-11-30 | Technion Research & Development Foundation Limited | Logic design with unipolar memristors |
CN107636640A (zh) * | 2016-01-30 | 2018-01-26 | 慧与发展有限责任合伙企业 | 具有求反指示符的点积引擎 |
US20180075337A1 (en) * | 2016-09-14 | 2018-03-15 | Hewlett Packard Enterprise Development Lp | Neuron circuits |
CN108205705A (zh) * | 2016-12-16 | 2018-06-26 | 爱思开海力士有限公司 | 用于归一化神经网络设备的装置和方法 |
CN108431895A (zh) * | 2016-01-27 | 2018-08-21 | 慧与发展有限责任合伙企业 | 具有并联复位控制器件的忆阻阵列 |
US20180364785A1 (en) * | 2015-12-18 | 2018-12-20 | Hewlett Packard Enterprise Development Lp | Memristor crossbar arrays to activate processors |
CN109063833A (zh) * | 2018-10-29 | 2018-12-21 | 南京邮电大学 | 一种基于忆阻器阵列的神经网络突触觉结构 |
CN109448068A (zh) * | 2018-10-16 | 2019-03-08 | 西南大学 | 一种基于忆阻器交叉阵列的图像重构系统 |
CN109472348A (zh) * | 2018-10-23 | 2019-03-15 | 华中科技大学 | 一种基于忆阻交叉阵列的lstm神经网络系统 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5828812A (en) | 1993-03-24 | 1998-10-27 | National Semiconductor Corporation | Recurrent neural network-based fuzzy logic system and method |
US6622260B1 (en) | 1999-12-30 | 2003-09-16 | Suresh Marisetty | System abstraction layer, processor abstraction layer, and operating system error handling |
US6883108B2 (en) | 2001-05-07 | 2005-04-19 | Sun Microsystems, Inc. | Fault-tolerant routing scheme for a multi-path interconnection fabric in a storage network |
JP2004348790A (ja) | 2003-05-20 | 2004-12-09 | Sharp Corp | 半導体記憶装置及び携帯電子機器 |
US7173852B2 (en) | 2003-10-03 | 2007-02-06 | Sandisk Corporation | Corrected data storage and handling methods |
TWI252471B (en) | 2004-04-30 | 2006-04-01 | Mediatek Inc | Method and circuit for reducing SATA data transmission errors by adjusting the period of sending align primitive |
US7840872B2 (en) | 2006-10-10 | 2010-11-23 | O-Mass As | N-dimensional iterative ECC method and apparatus with combined erasure—error information and re-read |
US8041984B2 (en) | 2008-10-17 | 2011-10-18 | International Business Machines Corporation | Redundancy information for adjusting threshold for component failure in a multi-layer system |
US8745279B2 (en) | 2011-10-31 | 2014-06-03 | International Business Machines Corporation | Self-healing and reconfiguration in an integrated circuit |
US8924786B2 (en) | 2012-06-28 | 2014-12-30 | Intel Corporation | No-touch stress testing of memory I/O interfaces |
US9070436B2 (en) | 2013-01-30 | 2015-06-30 | Hewlett-Packard Development Company, L.P. | Memory controller using crisscross error-correcting codes |
WO2014178855A1 (en) | 2013-04-30 | 2014-11-06 | Hewlett-Packard Development Company, L.P. | Memory node error correction |
WO2015163928A1 (en) * | 2014-04-26 | 2015-10-29 | Hewlett-Packard Development Company, L.P. | Switched memristor analog-to-digital conversion |
WO2015163927A1 (en) * | 2014-04-26 | 2015-10-29 | Hewlett-Packard Development Company, L.P. | Switched memristor analog tuning |
US9847129B2 (en) * | 2014-07-28 | 2017-12-19 | Hewlett Packard Enterprise Development Lp | Memristor programming error reduction |
US9947405B2 (en) * | 2014-11-18 | 2018-04-17 | Hewlett Packard Enterprise Development Lp | Memristive dot product engine with a nulling amplifier |
WO2016175781A1 (en) | 2015-04-29 | 2016-11-03 | Hewlett Packard Enterprise Development Lp | Discrete-time analog filtering |
US10062010B2 (en) | 2015-06-26 | 2018-08-28 | Intel Corporation | System for building a map and subsequent localization |
US10540588B2 (en) | 2015-06-29 | 2020-01-21 | Microsoft Technology Licensing, Llc | Deep neural network processing on hardware accelerators with stacked memory |
US10235227B2 (en) | 2015-10-12 | 2019-03-19 | Bank Of America Corporation | Detection, remediation and inference rule development for multi-layer information technology (“IT”) structures |
US10482940B2 (en) * | 2015-12-17 | 2019-11-19 | Hewlett Packard Enterprise Development Lp | Computational accuracy in a crossbar array |
US10013370B2 (en) * | 2015-12-29 | 2018-07-03 | EMC IP Holding Company LLC | Method and system for providing access of a storage system using a shared storage module as a transport mechanism |
US9847974B2 (en) | 2016-04-28 | 2017-12-19 | Xerox Corporation | Image document processing in a client-server system including privacy-preserving text recognition |
US20180012411A1 (en) | 2016-07-11 | 2018-01-11 | Gravity Jack, Inc. | Augmented Reality Methods and Devices |
US10346347B2 (en) * | 2016-10-03 | 2019-07-09 | The Regents Of The University Of Michigan | Field-programmable crossbar array for reconfigurable computing |
US10171084B2 (en) * | 2017-04-24 | 2019-01-01 | The Regents Of The University Of Michigan | Sparse coding with Memristor networks |
US10601868B2 (en) | 2018-08-09 | 2020-03-24 | Microsoft Technology Licensing, Llc | Enhanced techniques for generating and deploying dynamic false user accounts |
US11294763B2 (en) | 2018-08-28 | 2022-04-05 | Hewlett Packard Enterprise Development Lp | Determining significance levels of error values in processes that include multiple layers |
US10984860B2 (en) | 2019-03-26 | 2021-04-20 | Hewlett Packard Enterprise Development Lp | Self-healing dot-product engine |
-
2019
- 2019-03-26 US US16/364,717 patent/US10984860B2/en active Active
-
2020
- 2020-02-28 CN CN202010130462.0A patent/CN111755062B/zh active Active
- 2020-03-16 DE DE102020107174.4A patent/DE102020107174A1/de active Pending
-
2021
- 2021-04-06 US US17/223,435 patent/US11532356B2/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140172937A1 (en) * | 2012-12-19 | 2014-06-19 | 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 |
CN106463171A (zh) * | 2014-04-28 | 2017-02-22 | 慧与发展有限责任合伙企业 | 多模态忆阻器存储器 |
US20170178725A1 (en) * | 2014-10-29 | 2017-06-22 | Hewlett Packard Enterprise Development Lp | Memristive dot product engine for vector processing |
US20180364785A1 (en) * | 2015-12-18 | 2018-12-20 | Hewlett Packard Enterprise Development Lp | Memristor crossbar arrays to activate processors |
CN108431895A (zh) * | 2016-01-27 | 2018-08-21 | 慧与发展有限责任合伙企业 | 具有并联复位控制器件的忆阻阵列 |
CN107636640A (zh) * | 2016-01-30 | 2018-01-26 | 慧与发展有限责任合伙企业 | 具有求反指示符的点积引擎 |
US20170345497A1 (en) * | 2016-05-24 | 2017-11-30 | Technion Research & Development Foundation Limited | Logic design with unipolar memristors |
US20180075337A1 (en) * | 2016-09-14 | 2018-03-15 | Hewlett Packard Enterprise Development Lp | Neuron circuits |
CN108205705A (zh) * | 2016-12-16 | 2018-06-26 | 爱思开海力士有限公司 | 用于归一化神经网络设备的装置和方法 |
CN109448068A (zh) * | 2018-10-16 | 2019-03-08 | 西南大学 | 一种基于忆阻器交叉阵列的图像重构系统 |
CN109472348A (zh) * | 2018-10-23 | 2019-03-15 | 华中科技大学 | 一种基于忆阻交叉阵列的lstm神经网络系统 |
CN109063833A (zh) * | 2018-10-29 | 2018-12-21 | 南京邮电大学 | 一种基于忆阻器阵列的神经网络突触觉结构 |
Non-Patent Citations (1)
Title |
---|
段书凯 等: "忆阻器的图形用户界面设计及在交叉阵列存储中的应用", 《西南大学学报(自然科学版)》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022121569A1 (en) * | 2020-12-07 | 2022-06-16 | International Business Machines Corporation | Worst case noise and bound management for rpu crossbar arrays |
GB2616371A (en) * | 2020-12-07 | 2023-09-06 | Ibm | Worst case noise and bound management for RPU crossbar arrays |
GB2616371B (en) * | 2020-12-07 | 2024-06-05 | Ibm | Worst case noise and bound management for RPU crossbar arrays |
CN112308223A (zh) * | 2020-12-30 | 2021-02-02 | 成都科睿埃科技有限公司 | 一种基于忆阻器的深度神经网络 |
CN116521431A (zh) * | 2022-01-20 | 2023-08-01 | 慧与发展有限责任合伙企业 | 模拟内存交叉开关中的模拟错误检测和纠正 |
Also Published As
Publication number | Publication date |
---|---|
US20200312406A1 (en) | 2020-10-01 |
US20210225440A1 (en) | 2021-07-22 |
US10984860B2 (en) | 2021-04-20 |
US11532356B2 (en) | 2022-12-20 |
DE102020107174A1 (de) | 2020-10-01 |
CN111755062B (zh) | 2022-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111755062B (zh) | 点积引擎忆阻器交叉开关阵列、系统和存储介质 | |
US10861562B1 (en) | Deep learning based regression framework for read thresholds in a NAND flash memory | |
US10896123B2 (en) | Enhancing the effectiveness of read scan performance and reliability for non-volatile memory | |
US7227797B2 (en) | Hierarchical memory correction system and method | |
US9454414B2 (en) | System and method for accumulating soft information in LDPC decoding | |
US9590656B2 (en) | System and method for higher quality log likelihood ratios in LDPC decoding | |
US7307902B2 (en) | Memory correction system and method | |
US8996958B2 (en) | Method, device and computer program product for decoding a codeword | |
US10755787B2 (en) | Efficient post programming verification in a nonvolatile memory | |
US10395754B2 (en) | Method for decoding bits in a solid state drive, and related solid state drive | |
US11436482B2 (en) | Storing neural net works and weights for neural networks | |
US20030023922A1 (en) | Fault tolerant magnetoresistive solid-state storage device | |
US10977125B2 (en) | Adaptive usage of irregular code schemas based on specific system level triggers and policies | |
US10601546B2 (en) | Dynamic interleaver change for bit line failures in NAND flash storage | |
US11355204B2 (en) | Efficient read-threshold calculation method for parametric PV-level modeling | |
CN113393889A (zh) | 记忆体系统 | |
CN111538621B (zh) | 针对位线故障的软芯片猎杀恢复 | |
JP2009271852A (ja) | 半導体記憶装置 | |
US20200403634A1 (en) | Error characteristic estimation for nand flash | |
US5778012A (en) | Memory device with improved yield and reliability | |
TWI701674B (zh) | 記憶體裝置及其資料讀取方法 | |
CN113129993B (zh) | 内存装置及其数据读取方法 | |
EP1286360A2 (en) | Manufacturing test for a fault tolerant magnetoresistive solid-state storage device | |
WO2024124115A1 (en) | Error detection or correction using signed parity codes |
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 |