CN111164687A - 数字支持的闪存刷新 - Google Patents

数字支持的闪存刷新 Download PDF

Info

Publication number
CN111164687A
CN111164687A CN201880053312.5A CN201880053312A CN111164687A CN 111164687 A CN111164687 A CN 111164687A CN 201880053312 A CN201880053312 A CN 201880053312A CN 111164687 A CN111164687 A CN 111164687A
Authority
CN
China
Prior art keywords
volatile memory
value
digital non
values
analog
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
Application number
CN201880053312.5A
Other languages
English (en)
Other versions
CN111164687B (zh
Inventor
K.F.布什
J.H.霍利曼三世
P.沃伦坎普
S.W.贝利
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.)
Morita Co
Syntiant Corp
Original Assignee
Morita Co
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 Morita Co filed Critical Morita Co
Publication of CN111164687A publication Critical patent/CN111164687A/zh
Application granted granted Critical
Publication of CN111164687B publication Critical patent/CN111164687B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • G06N3/105Shells for specifying net layout
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Read Only Memory (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)

Abstract

描述了一种方法,所述方法包括以下步骤:响应于定时器到期,从定时器向电路传输信号;响应于接收到信号,由电路检索(i)存储在模拟阵列中的第一值,和(ii)存储在数字非易失性存储器中的第二值;由电路执行包括第一值和第二值的比较的操作;由电路分析比较结果,以确定误差是否大于或等于预定义阈值;响应于确定所述误差大于或等于预定义阈值,由电路发起利用第二值对模拟阵列进行重新编程的操作。

Description

数字支持的闪存刷新
优先权
本申请要求于2018年8月17日提交的美国专利申请No.16/104,788以及2017年8月17日提交的题为“Digital Backed Flash Refresh”的美国临时专利申请No.62/547,007的优先权权益,特此通过引用将所述申请在其整体上并入本申请中。
技术领域
本公开的实施例涉及神经形态计算的领域。更具体地,本公开的实施例涉及用于利用存储在数字非易失性存储器设备中的值对模拟阵列进行重新编程的系统和方法。
背景技术
传统的中央处理单元“CPU”基于“计时时间”处理指令。具体地,CPU操作使得以规律的时间间隔传输信息。基于互补金属氧化物半导体“CMOS”技术,可以利用每管芯多于50亿个晶体管来制造硅基芯片,所述管芯具有与10 nm一样小的特征。CMOS技术中的进步已经发展为并行计算的进步,并行计算无所不在地用于包含多个处理器的个人计算机和蜂窝电话中。
然而,随着机器学习对于包括生物信息学、计算机视觉、视频游戏、市场营销、医学诊断、在线搜索引擎等的众多应用而言正变得普遍,传统的CPU经常不能在保持低功耗的同时供应足够量的处理能力。特别地,机器学习是计算机科学的子部分,其针对具有从数据中学习并且关于数据做出预测的能力的软件。此外,机器学习的一个分支包括深度学习,其针对利用深度(多层)神经网络。
当前,正在进行研究以开发深度神经网络的直接硬件实现方式,其可以包括尝试对“硅”神经元进行仿真(例如,“神经形态计算”)的系统。神经形态芯片(例如,被设计用于神经形态计算的硅计算芯片)通过使用以非均匀间隔传输的电流脉冲串而并行处理指令(例如,与传统的顺序计算机相反)来操作。作为结果,神经形态芯片对于处理信息、特别是人工智能(AI)算法而言需要少得多的功率。为了实现这点,神经形态芯片可能包含与传统处理器的五倍一样之多的晶体管,而消耗少至1/2000的功率。因此,神经形态芯片的开发针对提供一种具有巨大处理能力的芯片,所述芯片比常规处理器消耗少得多的功率。此外,神经形态芯片被设计成支持在复杂和非结构化数据的上下文中的动态学习。
当利用模拟阵列时,存储在其上的值可能易受泄漏或漂移的影响,这可能引起输出电压中的误差。具体地,电流泄漏可能被引入模拟阵列的电路,这可能引起输出处的电压漂移。本文中提供的是用于检测电流泄漏或电压漂移并作为响应来对模拟阵列进行重新编程的系统和方法。
发明内容
本文中公开的是执行数字支持的闪存刷新的方法。尽管下面的描述包含许多具体特征,但是这些具体特征不应当被解释为限制本发明的范围,而应当被解释为仅仅提供本发明的一些目前优选的实施例的说明。在其范围内的各种其他实施例是可能的。因而,本发明的范围应当不由说明的实施例、而是由所附权利要求及其等同物来确定。
在许多实施例中,所述方法包括:响应于定时器到期,从定时器向电路传输信号;响应于接收到信号,由电路检索存储在模拟阵列中的第一值和存储在数字非易失性存储器中的第二值;由电路执行包括第一值和第二值的比较的操作;由电路分析比较结果,以确定误差是否大于或等于预定义阈值;响应于确定所述误差大于或等于预定义阈值,由电路发起利用第二值对模拟阵列进行重新编程的操作。
另外的实施例包括定时器,所述定时器被配置成以周期性间隔到期。
附加实施例包括间隔,所述间隔从一分钟、两分钟、一小时、二十四小时或一周的集合中被选择。
再另外的实施例包括间隔,所述间隔被动态生成。
再附加的实施例包括误差,所述误差包括第一值中的一个或多个与第二值的对应值之间的差异。
更多的实施例包括阈值,所述阈值包括预定义百分比。
再更多的实施例包括阈值百分比,所述阈值百分比在存储于数字非易失性存储器中的值的百分之九十与百分之一百一十之间。
再又另外的实施例包括误差,所述误差具有在存储于数字非易失性存储器中的对应范围之外的第一值的数量。
再又附加的实施例包括阈值,所述阈值具有第一值的阈值数量或第一值的预定义阈值百分比。
许多更多的实施例实施例包括作为后台刷新执行的对模拟阵列的重新编程。
多个实施例包括后台刷新,所述后台刷新具有包括以下各项的操作:利用存储在数字非易失性存储器中的第二值对复制模拟阵列进行编程,以及利用复制模拟阵列替换模拟阵列。
甚至更多的实施例包括具有预定义容量的模拟阵列,并且后台刷新包括包含以下各项的操作:利用存储在数字非易失性存储器中的第二值的部分对模拟阵列的单元存储体进行编程,所述单元存储体和第二值的所述部分具有是总模拟阵列的大小的因子的相等大小。
另一另外的实施例包括由微控制器执行的重新编程的操作。
另一这样的实施例包括由状态机执行的重新编程的操作。
又另外的实施例包括在第二值的检索之前的第一值的检索。
又附加的实施例包括在第一值的检索之前的第二值的检索。
一些实施例包括第一值和第二值的并发检索。
某些实施例包括作为内部数字非易失性存储器的数字非易失性存储器。
某些附加实施例包括作为外部数字非易失性存储器的数字非易失性存储器。
另外的附加实施例包括作为内部数字非易失性存储器和外部数字非易失性存储器的组合的数字非易失性存储器。
附图说明
在附图的各图中,通过示例的方式而非通过限制的方式图示了本公开的实施例,其中同样的引用指示类似的元件,并且其中:
图1提供了图示根据一些实施例的用于设计和更新神经形态集成电路“IC”的系统100的示意图;
图2提供了图示根据一些实施例的模拟乘法器阵列的示意图;
图3提供了图示根据一些实施例的模拟乘法器阵列的示意图;
图4提供了图示根据一些实施例的模拟乘法器阵列的无偏置、二象限乘法器的示意图;
图5提供了用于对模拟闪存/乘法器阵列进行重新编程的系统的一个示例性实施例的框图,该框图包括图示模拟闪存/乘法器阵列的示意图;以及
图6提供了用于响应于利用存储在模拟阵列内的值检测到误差而对模拟阵列内的值进行重新编程的示例性方法的图示。
具体实施方式
术语
在以下描述中,某个术语用于描述本发明的特征。例如,在某些情形下,术语“逻辑”可以代表被配置成执行一个或多个功能的硬件、固件和/或软件。作为硬件,逻辑可以包括具有数据处理或存储功能性的电路。这样的电路的示例可以包括但不限于或局限于微处理器、一个或多个处理器核心、可编程门阵列、微控制器、控制器、专用集成电路、无线接收器、发射器和/或收发器电路、半导体存储器或组合逻辑。
术语“过程”可以包括计算机程序的实例(例如,指令的集合,其在本文中也被称为应用)。在一个实施例中,过程可以包括在并发执行的一个或多个线程(例如,每个线程可以正并发执行相同或不同的指令)中。
术语“处理”可以包括执行二进制或脚本,或者启动其中处理对象的应用,其中启动应当被解释为将应用置于打开状态中,并且在一些实现方式中执行以人类与应用交互为典型的动作的仿真。
术语“对象”一般指代数据的集合——无论是在传输中(例如通过网络)还是处于静止(例如所存储的),其经常具有使得能够对它进行分类或类型化的逻辑结构或组织。
最后,如本文中使用的术语“或”和“和/或”要被解释为包含性的或者意味着任何一个或任何组合。因此,“A、B或C”或“A、B和/或C”意味着“以下各项中的任何一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元素、功能、步骤或动作的组合在某种程度上内在地相互排斥时,对该定义的例外才将发生。
现在参考图1,根据一些实施例,提供了图示用于设计和更新神经形态IC的系统100的示意图。如所示出的,系统100可以包括被配置用于设计和更新神经形态IC(诸如神经形态IC 102)的仿真器110、神经形态合成器120和云130。如进一步示出的,设计和更新神经形态IC可以包括基于特定问题利用仿真器110创建机器学习架构。如本领域技术人员可以领会的,基于云的计算机系统可以包括但不限于可以提供软件即服务(“SaaS”)、平台即服务(“PaaS”)和或基础设施即服务(“IaaS”)资源的系统。神经形态合成器120后续可以将机器学习架构变换成针对神经形态IC 102的电子部件和电子部件所连接到的节点的网表(netlist)。此外,神经形态合成器120可以将机器学习架构变换成详细描述神经形态IC102的IC布局的图形数据库系统(“GDS”)文件。根据神经形态IC 102的网表和GDS文件,神经形态IC 102本身可以根据当前IC制造技术来被制造。一旦神经形态IC 102被制造,它就可以被部署成致力于它被设计所用于的特定问题。虽然初始制造的神经形态IC 102可以包括具有节点之间的定制突触权重的初始固件,但是初始固件可以通过云130按照需要进行更新以调整权重。由于云130被配置成更新神经形态IC 102的固件,因此不需要云130用于每日使用。
神经形态IC(诸如神经形态IC 102)可以比图形处理单元(“GPU”)解决方案能量高效高达100倍或更多,以及比数字CMOS解决方案能量高效高达280倍或更多,其具有满足或超过可比较的软件解决方案的精度。这使得这样的神经形态IC适合用于电池供电的应用。
神经形态IC(诸如神经形态IC 102)可以被配置用于专用标准产品“ASSP”,所述专用标准产品包括但不限于关键词定位(keyword spotting)、说话者标识、一个或多个音频滤波器、姿势识别、图像识别、视频对象分类和分割或者包括无人机的自主交通工具。例如,如果特定问题是关键词定位中的一个,则仿真器110可以创建关于关键词定位的一个或多个方面的机器学习架构。神经形态合成器120后续可以将机器学习架构变换成与用于关键词定位的神经形态IC相对应的网表和GDS文件,所述神经形态IC可以根据当前IC制造技术来被制造。一旦用于关键词定位的神经形态IC被制造,它就可以被部署成致力于例如系统或设备中的关键词定位。
神经形态IC(诸如神经形态IC 102)可以被部署在玩具、传感器、可穿戴设备、增强现实“AR”系统或设备、移动系统或设备、器具、物联网“IoT”设备或可听设备中。
现在参考图2,根据一些实施例,提供了图示模拟乘法器阵列200的示意图。这样的模拟乘法器阵列可以基于数字NOR闪存阵列,这是因为模拟乘法器阵列的核心可以类似于数字NOR闪存阵列的核心或者与数字NOR闪存阵列的核心相同。也就是说,至少模拟乘法器阵列的选择和读出电路不同于数字NOR阵列。例如,输出电流作为模拟信号被路由到下一层,而不是通过位线去往感测放大器/比较器来被转换至位。字线模拟由模拟输入信号而不是数字地址解码器驱动。此外,模拟乘法器阵列200可以用于神经形态IC(诸如神经形态IC102)中。
由于模拟乘法器阵列200是模拟电路,因此输入和输出电流值(或信号值)可以在连续的范围中变化,而不是简单地开或关。如与数字位相对的,这对于存储神经网络的权重(亦称系数)而言是有用的。在某些实施例的操作中,权重可以乘以输入电流值231、232、233、234,以提供输出电流值,所述输出电流值被组合以得出神经网络的决策。在许多实施例中,输入电流值231、232、233、234由输入生成器230提供。本领域技术人员将认识到,这样的输入电流值可以从系统内的各种设备或其他部件生成或获得。此外,乘法器210内的所存储电荷可以使浮栅上的电压移位,并且通过权重
Figure DEST_PATH_IMAGE001
来缩放漏极电流。
如本领域技术人员可以领会的,模拟乘法器阵列200可以利用标准编程和擦除电路来生成隧穿和擦除电压。
现在参考图3,根据一些实施例,提供了图示模拟乘法器阵列300的示意图。模拟乘法器阵列300可以使用两个晶体管(例如,正晶体管和负晶体管)来执行带符号的权重(例如,正权重或负权重)与非负输入电流值的二象限乘法,所述两个晶体管诸如但不限于金属氧化物半导体场效应晶体管“MOSFET”或场效应晶体管“FET”。在许多实施例中,输入电流值可以由单独的输入生成器330提供。在某些实施例中,330的输入生成可以类似于图2中所描绘的输入生成器的输入生成。如果由输入生成器330提供的输入电流值乘以正或负权重,则乘积或输出电流值可以相应地为正的或负的。正加权的乘积可以存储在第一列(例如,模拟乘法器阵列300中对应于
Figure 688839DEST_PATH_IMAGE002
的列)中,并且负加权的乘积可以存储在第二列(例如,模拟乘法器阵列300中对应于
Figure DEST_PATH_IMAGE003
的列)中。通过示例而非限制的方式,
Figure 871559DEST_PATH_IMAGE004
Figure DEST_PATH_IMAGE005
可以被视为差分电流输出310,然后差分电流输出310被提供给多个电流感测电路,所述多个电流感测电路包括但不限于电流镜、电荷积分器和/或跨阻抗放大器。前述差分输出310、320可以提供正加权和负加权的乘积,或者输出信号值可以视为差分电流值,以提供用于做出决策的有用信息。
因为来自正或负晶体管的每个输出电流被线接到地,并且相应地与输入电流值和正或负权重的乘积成比例,所以当输入电流值或权重处于零或接近零时,正或负晶体管的功耗接近零。即,如果输入信号值是“
Figure 713613DEST_PATH_IMAGE006
”,或者如果权重是“
Figure 374401DEST_PATH_IMAGE006
”,则模拟乘法器阵列300的对应晶体管将不消耗功率。这是有意义的,因为在许多神经网络中,经常大部分的值或权重、尤其是在训练之后是“
Figure 454353DEST_PATH_IMAGE006
”。因此,当没有事情要做或者没有事情发生时节省了能量。这不同于基于差分对的乘法器,后者消耗恒定电流(例如,借助于尾部偏置电流),而不管输入信号如何。
现在参考图4,根据一些实施例,提供了图示模拟乘法器阵列(诸如模拟乘法器阵列300)的无偏置、二象限乘法器400的示意图。如先前阐述的,因为来自正晶体管(例如,二象限乘法器400的正输出电流M1 415)或负晶体管(例如,二象限乘法器400的负输出电流M2425)的每个输出电流相应地与输入电流值和正或负权重的乘积成比例,所以当输入电流值或权重接近零时,正晶体管430或负晶体管440的功耗接近零。这不同于基于差分对的乘法器,后者消耗恒定电流(例如,借助于尾部偏置电流),而不管输入信号如何。
当对诸如无偏置、二象限乘法器400之类的二象限乘法器进行编程时,常见的是擦除其每个可编程单元(例如,包括正晶体管M1 430的单元和包括负晶体管M2 440的单元),以在将每个单元设置为其目标权重值之前将单元设置为一个极端权重值。将此扩展到诸如模拟乘法器阵列300的完整阵列,在将每个单元设置为其目标权重值之前,完整阵列中的所有可编程单元被设置为一个极端权重值。当将单元设置为它们的期望权重值时,如果利用比目标高的权重值来设置一个或多个单元,则过冲问题存在。作为结果,然后必须在将单元重新设置为它们的目标权重值之前将完整阵列中的许多或所有单元重新设置为一个极端权重值。然而,本文中提供的模拟乘法器阵列的每个无偏置、二象限乘法器的差分结构允许通过编程来补偿这样的过冲,从而避免擦除和重新设置阵列中的所有单元的耗时过程。
在通过编程补偿过冲的示例中,二象限乘法器400的负电压输入
Figure 667028DEST_PATH_IMAGE008
410和正电压输入
Figure DEST_PATH_IMAGE009
420可以用于擦除,以将单元设置为一个极端权重值。在擦除单元之后,如果负电压输入
Figure 261958DEST_PATH_IMAGE010
410被编程为具有过大的权重值,则正电压输入
Figure 726437DEST_PATH_IMAGE009
420可以被编程为具有比初始目标大的权重值,以补偿负电压输入
Figure 926474DEST_PATH_IMAGE010
410的权重值并且实现初始目标效果。因此,可以利用差分结构来补偿编程过冲,而不必擦除任何一个或多个单元并重新开始。
现在参考图5,示出了用于对模拟闪存/乘法器阵列进行重新编程的系统的一个示例性实施例的框图,该框图包括图示模拟闪存/乘法器阵列的示意图。系统500包括模拟闪存/乘法器阵列(“模拟阵列”)502、定时器504、读出电路506和数字非易失性存储器508。模拟阵列502可以由NOR闪存阵列组成,所述NOR闪存阵列包括存储多个值的多个浮栅晶体管(如本文中使用的,术语“NOR”的使用指代布尔逻辑)。浮栅晶体管可以起到双重目的作用:(i)传导作为输入的函数的电流,以及(ii)存储对应的值。在一些实施例中,由模拟阵列502存储的值可以是在神经网络内使用的权重。在其他实施例中,所述值可以用作执行数学运算和/或计算的逻辑函数中的参数(例如滤波器,诸如无限脉冲响应(IIR)滤波器和/或有限脉冲响应(FIR)滤波器中的系数)。在又其他实施例中,所述值可以用作可编程均衡器中的参数。
基于模拟阵列502的浮栅晶体管周围的电介质的绝缘属性,所述值可以被维护在包括模拟阵列502的电路内。具体地,可以通过例如在距浮栅晶体管预定距离内感应电场来将电荷添加到浮栅阵列或从浮栅阵列移除。在“典型”条件下,例如,浮栅晶体管没有暴露于在预定义强度以上的电场(即,电荷),驻留在浮栅晶体管上的电荷将在显著时间量内保持。
尽管未示出,但是模拟阵列502可以耦合到提供模拟输入信号的输入驱动器阵列。在某些实施例中,这些可以类似于图2和/或图3中描绘的输入生成器。附加地,模拟阵列可以耦合到至少一个输出感测电路,所述输出感测电路被配置成接收(例如,读取)输出(例如,一个或多个当前值),并且将所述输出提供为去往后续处理阶段的输入。例如,模拟阵列502的输出可以被认为是“特征向量”,其是去往神经网络的第一层的输入(例如,特征向量可以是图像像素的集合、来自对音频信号进行滤波的滤波输出等)。
仍然参考图5,数字非易失性存储器508尤其可以是电阻随机存取存储器“RRAM”或硅-氧化物-硝酸盐-氧化物-硅“SONOS”存储器。在其他实施例中,可以利用其他类型的熟知的非易失性存储器,但不限于包括只读存储器“ROM”、非易失性随机存取存储器“NVRAM”机械存储装置(例如,硬盘驱动器、光盘驱动器)等。在多个实施例中,数字非易失性存储器508可以是系统内的板载存储器。在附加的实施例中,数字非易失性存储器508可以关于系统是外部的。在再更多的实施例中,数字非易失性存储器508可以包括板载存储器和外部存储器二者的混合。在某些实施例中,数字存储器可以包括易失性存储器而不是非易失性存储器,这包括但不限于静态RAM“SRAM”和/或动态RAM“DRAM”。在再更多的实施例中,系统500可以包括易失性和非易失性存储器508二者的混合。本领域技术人员将认识到,任何合适的存储器技术都可以被用作系统500中的易失性或非易失性存储器的替换物,并且可以基于应用的特定要求而内部地和/或外部地定位。
定时器504被配置成以预定间隔(例如,周期性地)向读出电路506传输信号。在某些实施例中,信号可以包括但不限于电压信号、电流信号和/或逻辑信号。示例间隔可以包括但不限于或局限于一分钟、两分钟、一小时、24小时、一周等。附加地,定时器504可以以之传输信号的间隔可以是动态可调整的(即,被重新编程为不同的持续时间)。在附加的实施例中,(例如,来自人类分析师的)输入可以引起信号被传输到读出电路506。定时器504向读出电路506传输信号,以发起如下操作:所述操作引起读出电路506检索存储在模拟阵列502中的值。附加地,读出电路502检索存储在数字非易失性存储器508中的值。后续,读出电路502可以执行从模拟阵列502检索的值与从数字非易失性存储器508检索的值的比较510,以确定由模拟阵列502存储的值的任何退化是否已经发生。存储在数字非易失性存储器508内的值可以是范围的集合或特定值的集合。例如,当存储在数字非易失性存储器508中的值是范围的集合时,比较510可以确定从模拟阵列502检索的值是否在存储的范围内。在这样的实施例中,在确定是否发起模拟阵列502的重新编程过程中使用的阈值可以是预定义的阈值数量,使得当从模拟阵列502检索的在对应范围之外的值的数量满足或超过预定义的阈值数量时,发起重新编程过程。
在替代示例中,当存储在数字非易失性存储器508中的值可以是特定值的集合时。在这样的示例中,比较510可以确定从模拟阵列502检索的值是否在存储于数字非易失性存储器508中的值的特定阈值百分比(例如,90-110%)内。在这样的实施例中,在确定是否发起模拟阵列502的重新编程过程中使用的阈值可以是预定义的阈值百分比范围,使得当从模拟阵列502检索的在对应范围之外的一个或多个值满足或超过预定义的阈值百分比时,可以发起重新编程过程。
当比较510结果得到在预定义阈值以上的误差时,读出电路506可以使用存储在数字非易失性存储器508中的值发起对模拟阵列502重新编程的操作。在一些实施例中,所述误差包括从模拟阵列检索的一个或多个值与被存储在数字非易失性存储器中的对应值之间的差异。在这样的实施例中,所述阈值包括预定义的百分比。在其他实施例中,所述误差包括从模拟阵列检索的在存储于数字非易失性存储器中的对应范围之外的值的数量。在这样的实施例中,所述阈值包括值的预定义数量或值的预定义百分比。
现在参考图6,示出了用于响应于利用存储在模拟阵列内的值检测到误差而对模拟阵列内的值进行重新编程的示例性方法的图示。图6中图示的每个框表示在响应于利用存储在模拟阵列中的值检测到误差而利用模拟阵列对值进行重新编程的方法600中执行的操作。方法600在框602处开始,并且当定时器的到期已经发生时,方法600前进到框604。如上面讨论的,定时器可以被配置成以周期性间隔到期。当定时器到期时(框602处为是),信号被传输到读出电路(诸如例如图5中图示的系统500),所述信号可以导致激活读出电路以检索被存储在模拟阵列(诸如图5中描绘的阵列502)中的值(框604)。
附加地,响应于接收到作为定时器到期的结果的信号,读出电路的许多实施例检索被存储在数字非易失性存储器中的值(框606)。应当注意到,框604和606不必以特定次序执行。例如,框604和606的操作可以如图6中图示的那样被执行,并且在第二实施例中,框606的操作可以在框604的操作执行之前被执行。在又另一实施例中,框604和606的操作可以并发执行(在时间上至少部分地重叠)。
响应于框604和606的操作的完成,读出电路可以执行从模拟阵列检索的值与从数字非易失性存储器检索的值的比较(框608)。在多个实施例中,读出电路分析比较结果,以确定大于或等于预定义阈值的误差是否存在(例如,存储在模拟阵列中的值是否已经遭受了电压漂移或电流泄漏)。响应于在预定义阈值以上的误差的存在(框608处为是),读出电路可以发起利用存储在数字非易失性存储器中的值自动对模拟阵列进行重新编程的操作(框610)。在一个实施例中,可以包括微控制器和/或状态机来执行对如图5中所描绘的模拟阵列以及定时器和读出电路的重新编程。在一些实施例中,模拟阵列、定时器、读出电路和微控制器和/或状态机被包括在集成控制器上。
利用模拟阵列(例如,诸如图5的模拟阵列502)而不是数字存储器来向神经网络的第一层供应输入的一些优点包括但不限于或局限于:增加的速度、增加的密度(即,存储在IC的给定区域中的更多值,例如,权重)、在处理值以提供输出中的更低的能量成本(例如,在模拟阵列中,存储元件和乘法器是相同的晶体管,因此不存在将数据从存储器移动到乘法器的能量或时间成本)和/或改进的功率效率。
附加地,在一些实施例中,通过执行从用户角度在后台中发生的刷新(“后台刷新”),可以使存储器刷新过程(例如,基于数字存储器对模拟阵列进行重新编程)对用户不可见。通过执行作为后台刷新的存储器刷新,用户体验是不中断的(或可忽略的中断)。在一个这样的实施例中,活动模拟存储器的复制品可以被重新编程,使得利用复制品来替换(例如,交换)活动模拟存储器。在第二这样的实施例中,活动模拟存储器可以被划分成单元存储体,例如,被划分成N个单元存储体(其中N
Figure DEST_PATH_IMAGE011
1)。例如,每个单元存储体可以具有相同的存储容量,使得每个单元存储体将需要总存储器存储能力的1/N(例如,N是活动模拟存储器的总大小的因子)。利用一个附加的冗余单元存储体于是将导致在N个循环中整个活动模拟存储器的刷新。在第二实施例中,后台更新所需要的模拟存储器开销被限制到总活动模拟存储器内容的1/N。
在前述描述中,参考本发明的特定示例性实施例来描述本发明。然而,将明显的是,在不脱离如所附权利要求中阐述的本发明的更宽的精神和范围的情况下,可以对其进行各种修改和改变。

Claims (20)

1.一种方法,包括:
响应于定时器到期,从定时器向电路传输信号;
响应于接收到信号,由电路检索:
存储在模拟阵列中的第一值;和
存储在数字非易失性存储器中的第二值;
由电路执行包括第一值和第二值的比较的操作;
由电路分析比较结果,以确定误差是否大于或等于预定义阈值;
响应于确定所述误差大于或等于预定义阈值,由电路发起利用第二值对模拟阵列进行重新编程的操作。
2.根据权利要求1所述的方法,其中,定时器被配置成以周期性间隔到期。
3.根据权利要求1所述的方法,其中所述间隔可以从包括以下各项的集合中选择:一分钟、两分钟、一小时、二十四小时或一周。
4.根据权利要求2所述的方法,其中动态生成所述间隔。
5.根据权利要求1所述的方法,其中,所述误差包括第一值中的一个或多个与第二值的对应值之间的差异。
6.根据权利要求5所述的方法,其中所述阈值包括预定义百分比。
7.根据权利要求6所述的方法,其中阈值百分比在存储于数字非易失性存储器中的值的百分之九十与百分之一百一十之间。
8.根据权利要求1所述的方法,其中所述误差包括在存储于数字非易失性存储器中的对应范围之外的第一值的数量。
9.根据权利要求8所述的方法,其中所述阈值包括第一值的阈值数量或第一值的预定义阈值百分比。
10.根据权利要求1所述的方法,其中作为后台刷新来执行对模拟阵列进行重新编程。
11.根据权利要求10所述的方法,其中后台刷新包括包含以下各项的操作:
利用存储在数字非易失性存储器中的第二值对复制模拟阵列进行编程;和
利用复制模拟阵列替换模拟阵列。
12.根据权利要求10所述的方法,其中模拟阵列具有预定义容量,并且其中后台刷新包括包含以下各项的操作:
利用存储在数字非易失性存储器中的第二值的部分对模拟阵列的单元存储体进行编程,所述单元存储体和第二值的所述部分具有是总模拟阵列的大小的因子的相等大小。
13.根据权利要求1所述的方法,其中重新编程的操作由微控制器执行。
14.根据权利要求1所述的方法,其中重新编程的操作由状态机执行。
15.根据权利要求1所述的方法,其中第一值的检索发生在第二值的检索之前。
16.根据权利要求1所述的方法,其中第二值的检索发生在第一值的检索之前。
17.根据权利要求1所述的方法,其中第一值和第二值的检索并发地发生。
18.根据权利要求1所述的方法,其中数字非易失性存储器是内部数字非易失性存储器。
19.根据权利要求1所述的方法,其中数字非易失性存储器是外部数字非易失性存储器。
20.根据权利要求1所述的方法,其中数字非易失性存储器是内部数字非易失性存储器和外部数字非易失性存储器的组合。
CN201880053312.5A 2017-08-17 2018-08-17 数字支持的闪存刷新 Active CN111164687B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762547007P 2017-08-17 2017-08-17
US62/547007 2017-08-17
PCT/US2018/046991 WO2019036684A1 (en) 2017-08-17 2018-08-17 REFRESHMENT OF DIGITAL SAVED FLASH MEMORY

Publications (2)

Publication Number Publication Date
CN111164687A true CN111164687A (zh) 2020-05-15
CN111164687B CN111164687B (zh) 2021-11-26

Family

ID=65360500

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880053312.5A Active CN111164687B (zh) 2017-08-17 2018-08-17 数字支持的闪存刷新

Country Status (4)

Country Link
US (4) US10698754B2 (zh)
CN (1) CN111164687B (zh)
DE (1) DE112018004191B4 (zh)
WO (1) WO2019036684A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112365910A (zh) * 2020-11-03 2021-02-12 北京灵汐科技有限公司 一种存储器及神经形态芯片
CN112365912A (zh) * 2020-11-03 2021-02-12 北京灵汐科技有限公司 一种存储器、神经形态芯片及数据处理方法
WO2022095786A1 (zh) * 2020-11-03 2022-05-12 北京灵汐科技有限公司 存储器及神经形态芯片、数据处理方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3743843B1 (en) * 2018-01-24 2023-03-01 HRL Laboratories, LLC System for continuous validation and protection of mobile applications
US11443176B2 (en) * 2018-05-17 2022-09-13 International Business Machines Corporation Acceleration of convolutional neural networks on analog arrays
US11257543B2 (en) 2019-06-25 2022-02-22 Stmicroelectronics International N.V. Memory management device, system and method
US11360667B2 (en) 2019-09-09 2022-06-14 Stmicroelectronics S.R.L. Tagged memory operated at lower vmin in error tolerant system

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4891646A (en) * 1988-12-29 1990-01-02 Westinghouse Electric Corp. Modulated single channel digital radio frequency memory (DRFM)
US20010040750A1 (en) * 2000-03-28 2001-11-15 Masayuki Murakami Automatic selection mechanism of external flash ROM or internal mask ROM
US20020018403A1 (en) * 2000-07-31 2002-02-14 Brandt Kenneth A. Electronic clock
US6421757B1 (en) * 1998-09-30 2002-07-16 Conexant Systems, Inc Method and apparatus for controlling the programming and erasing of flash memory
US20050075758A1 (en) * 2003-10-06 2005-04-07 Wakefield Theodore D. Method and apparatus for reprogramming a programmed controller of a power driven wheelchair
CN101044578A (zh) * 2004-10-21 2007-09-26 皇家飞利浦电子股份有限公司 提供基于平均阈值的刷新机制的存储器件和方法
US20090091977A1 (en) * 2007-10-04 2009-04-09 Arc Innovations Limited Method and system for updating a stored data value in a non-volatile memory
US20120271982A1 (en) * 2011-04-25 2012-10-25 Microsoft Corporation Intelligent flash reprogramming
US20150006604A1 (en) * 2013-07-01 2015-01-01 International Business Machines Corporation Method and apparatus for performing a fft computation
US20150025831A1 (en) * 2013-07-16 2015-01-22 Intellectual Property Administration Dynamically updating a time interval of a gps
US20160027406A1 (en) * 2013-03-11 2016-01-28 Renesas Electronics Europe Limited Video output checker
US20160086288A1 (en) * 2013-05-03 2016-03-24 Mark J. ITRI Budget tracking system
US20160182369A1 (en) * 2014-12-23 2016-06-23 Anil Vasudevan Reorder resilient transport
US9495232B2 (en) * 2014-03-28 2016-11-15 Intel IP Corporation Error correcting (ECC) memory compatibility
CN106663046A (zh) * 2014-10-06 2017-05-10 桑迪士克科技有限责任公司 用于刷新存储器设备中的数据的系统和方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BRPI0621925B1 (pt) * 2006-07-24 2021-01-05 Siemens Aktiengesellschaft modem para comunicação de linha submarina de energia
US8856055B2 (en) * 2011-04-08 2014-10-07 International Business Machines Corporation Reconfigurable and customizable general-purpose circuits for neural networks
KR102116983B1 (ko) * 2013-08-14 2020-05-29 삼성전자 주식회사 메모리 장치 및 메모리 시스템의 동작 방법.
WO2015163901A1 (en) * 2014-04-25 2015-10-29 Empire Technology Development Llc Storing data in storage devices
GB201413836D0 (en) * 2014-08-05 2014-09-17 Arm Ip Ltd Device security apparatus and methods
US10203998B2 (en) * 2017-02-22 2019-02-12 Accenture Global Solutions Limited Automatic analysis of a set of systems used to implement a process

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4891646A (en) * 1988-12-29 1990-01-02 Westinghouse Electric Corp. Modulated single channel digital radio frequency memory (DRFM)
US6421757B1 (en) * 1998-09-30 2002-07-16 Conexant Systems, Inc Method and apparatus for controlling the programming and erasing of flash memory
US20010040750A1 (en) * 2000-03-28 2001-11-15 Masayuki Murakami Automatic selection mechanism of external flash ROM or internal mask ROM
US20020018403A1 (en) * 2000-07-31 2002-02-14 Brandt Kenneth A. Electronic clock
US20050075758A1 (en) * 2003-10-06 2005-04-07 Wakefield Theodore D. Method and apparatus for reprogramming a programmed controller of a power driven wheelchair
CN101044578A (zh) * 2004-10-21 2007-09-26 皇家飞利浦电子股份有限公司 提供基于平均阈值的刷新机制的存储器件和方法
US20090091977A1 (en) * 2007-10-04 2009-04-09 Arc Innovations Limited Method and system for updating a stored data value in a non-volatile memory
US20120271982A1 (en) * 2011-04-25 2012-10-25 Microsoft Corporation Intelligent flash reprogramming
US20160027406A1 (en) * 2013-03-11 2016-01-28 Renesas Electronics Europe Limited Video output checker
US20160086288A1 (en) * 2013-05-03 2016-03-24 Mark J. ITRI Budget tracking system
US20150006604A1 (en) * 2013-07-01 2015-01-01 International Business Machines Corporation Method and apparatus for performing a fft computation
US20150025831A1 (en) * 2013-07-16 2015-01-22 Intellectual Property Administration Dynamically updating a time interval of a gps
US9495232B2 (en) * 2014-03-28 2016-11-15 Intel IP Corporation Error correcting (ECC) memory compatibility
CN106663046A (zh) * 2014-10-06 2017-05-10 桑迪士克科技有限责任公司 用于刷新存储器设备中的数据的系统和方法
US20160182369A1 (en) * 2014-12-23 2016-06-23 Anil Vasudevan Reorder resilient transport

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112365910A (zh) * 2020-11-03 2021-02-12 北京灵汐科技有限公司 一种存储器及神经形态芯片
CN112365912A (zh) * 2020-11-03 2021-02-12 北京灵汐科技有限公司 一种存储器、神经形态芯片及数据处理方法
WO2022095786A1 (zh) * 2020-11-03 2022-05-12 北京灵汐科技有限公司 存储器及神经形态芯片、数据处理方法

Also Published As

Publication number Publication date
DE112018004191B4 (de) 2021-02-18
US10698754B2 (en) 2020-06-30
DE112018004191T5 (de) 2020-04-30
US20220237068A1 (en) 2022-07-28
US11334412B2 (en) 2022-05-17
CN111164687B (zh) 2021-11-26
WO2019036684A1 (en) 2019-02-21
US20190056987A1 (en) 2019-02-21
US10949281B2 (en) 2021-03-16
US11880226B2 (en) 2024-01-23
US20210200617A1 (en) 2021-07-01
US20200327930A1 (en) 2020-10-15

Similar Documents

Publication Publication Date Title
CN111164687B (zh) 数字支持的闪存刷新
CN111742330B (zh) 始终开启的关键字检测器
US20220157384A1 (en) Pulse-Width Modulated Multiplier
US8676734B2 (en) Methods and systems for replaceable synaptic weight storage in neuro-processors
AU2020274862B2 (en) Training of artificial neural networks
US11868876B2 (en) Systems and methods for sparsity exploiting
US20190065962A1 (en) Systems And Methods For Determining Circuit-Level Effects On Classifier Accuracy
US20190026629A1 (en) Systems and Methods for Overshoot Compensation
CN111527502B (zh) 用于部分数字再训练的系统和方法
CN111656360B (zh) 稀疏性利用的系统和方法
AU2020399273B2 (en) Capacitive processing unit
CN116504291A (zh) 存内计算装置、神经网络加速器和电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant