CN115552422A - 用于加速神经网络的存储器故障映射 - Google Patents
用于加速神经网络的存储器故障映射 Download PDFInfo
- Publication number
- CN115552422A CN115552422A CN202180026739.8A CN202180026739A CN115552422A CN 115552422 A CN115552422 A CN 115552422A CN 202180026739 A CN202180026739 A CN 202180026739A CN 115552422 A CN115552422 A CN 115552422A
- Authority
- CN
- China
- Prior art keywords
- memory
- map
- address
- neural network
- fault
- 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.)
- Withdrawn
Links
Images
Classifications
-
- 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
- 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/0703—Error 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/0706—Error 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/073—Error 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
-
- 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/0703—Error 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/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/076—Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
-
- 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/0703—Error 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/0793—Remedial or corrective actions
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- 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
- G11C2029/4402—Internal storage of test result, quality data, chip identification, repair information
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Neurology (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及与用于加速神经网络的存储器故障映射相关的方法、系统及设备。人工神经网络可通过在存储器的基线操作参数外操作所述存储器来加速。然而,如此做通常增加所述存储器中的故障数据位置量。然而,通过创建及使用所公开故障映射,人工神经网络可更快且使用更少带宽训练,其降低所述神经网络对这些额外故障数据位置的敏感性。使神经网络硬化到这些存储器故障允许所述神经网络有效操作,即使在存储器的基线操作参数外使用所述存储器。
Description
背景技术
人工神经网络由于其能够再现及建模非线性过程而已被证明在许多应用中有用。实例用途包含对象辨识、垃圾电子邮件过滤、系统控制及医疗诊断。因为人工神经网络越来越普遍,所以改进其执行及训练的方式也激增。这些改进包含神经网络加速器,其使用经专门设计以与人工神经网络一起工作的计算机硬件。
附图说明
本发明中参考以下图式描述用于加速神经网络的存储器故障映射的一或多个方面的细节。贯穿图式使用相同数字来指代相似特征及组件。
图1-1说明其中可实施创建及/或使用用于加速神经网络的存储器故障映射的技术的实例环境。
图1-2说明用于图1-1中说明的故障模块的实例操作实施方案。
图2说明图1-1及1-2中说明的故障模块的实例能力。
图3说明存储器的简化视觉表示,作为图1-1及1-2中说明的存储器的一个实例。
图4说明经配置以使用图1-1到3中说明的存储器故障映射来训练存储器映射应用的实例故障缓解训练器的能力。
图5说明其中可实施用于加速神经网络的存储器故障映射的实例架构的操作。
图6说明具有主机及存储器的操作及通信以使用加速神经网络的存储器故障映射的实例序列图。
图7描绘用于创建用于存储器映射应用的未来训练的存储器故障映射的实例方法。
图8描绘使用由图7的方法创建的存储器故障映射来训练存储器映射应用的实例方法。
具体实施方式
概述
本发明描述用于加速神经网络的存储器故障映射。人工神经网络可通过在存储器的基线操作参数外操作存储器来加速。然而,如此做通常增加存储器中的故障数据位置量。然而,通过创建及使用所公开故障映射,可训练人工神经网络以降低错误数据值的数值重要性,其降低神经网络对这些额外故障数据位置的敏感性。将神经网络训练到这些存储器故障允许神经网络有效操作,即使在存储器的基线操作参数外使用存储器。
举例来说,考虑经设计以加速人工神经网络(也简称为“神经网络”)的神经网络加速器。此神经网络加速器可由例如主机装置的处理器或存储器装置的电路系统实施。因为神经网络可高度依赖存储器,所以加速器可通过修改存储器的操作参数(例如,增大存储器操作的频率或降低由存储器使用的电压)来改进性能。然而,这些性能改进使用存储器的经修改操作参数,如上所述,其在存储器的基线操作参数外且因此通常增加存储器故障。一些神经网络实施方案本质上是容错的,其意味着即使其模型或模型所依赖的存储器存在一些瑕疵,但神经网络可操作。所描述的存储器故障映射可用于训练或重新训练(例如,硬化)神经网络以减少与存储器中的故障相关联的神经网络的模型的部分的依赖性。借此,现在硬化的神经网络可使用存储器以更高性能或存储器的基线操作参数外的条件操作。
考虑替代性神经网络加速器,其包含经设计以在存储器的基线操作参数内操作的更小、更便宜或更不复杂结构。此处,假设神经网络加速器包含存储器、存储器控制器及计算机处理器,但进一步假设神经网络加速器经设计以使用所描述的存储器故障映射。由于存储器故障映射,此替代设计可经设计为更小、更便宜或具有更少组件。可避免一些组件及其伴随大小及成本,例如避免或校正存储器故障所需的一些错误校正组件及冗余(错误位置的知识仍在使用,但没有校正)。这是准许的,因为存储器故障映射可用于使神经网络硬化到存储器故障,借此准许许多应用(其无法容忍存储器中的故障)无法可靠操作的故障。因此,存储器故障映射还可用于训练神经网络用于与在存储器的基线操作参数内操作时具有众多故障的存储器一起使用。此准许使用更便宜或更高性能存储器或加速器结构。
类似地,考虑使用快速及密集存储器,尽管其因快速及密集而优越,但可能具有更高数量的故障。在此情况中,提供更高速度及减小占用面积的此快速及密集存储器仍可用于例如神经网络的应用,如果所述应用使用存储器故障映射来训练且可使其至少在一定程度上容忍应用映射到的存储器中的故障。
与本文公开的存储器故障映射相比,存储这些错误的另一方式是作为错误位置列表,例如,每一错误位置被列为每一故障位所在的单独地址。此列表包含全位级故障表,其减慢或使神经网络的训练无用,因为存取及存储此列表的时间及资源过高。相比来说,存储器故障映射可将多个错误位置(甚至沿一个、两个或三个维度的错误位置)存储为单个条目。举例来说,例如二维存储器中一列存储器的一半的区域可通过存储器故障映射以单个条目存储,借此减少存储器故障映射的开销。此外,当训练神经网络时,存储器故障映射准许快速及高效指示映射到所述错误位置的神经网络的部分。通过此快速及高效方式来确定与存储器故障相关联的神经网络的部分,训练调整神经网络的属性以降低使用故障存储器位置的重要性。可调整的实例神经网络属性包含网络结构(例如层的类型及数目或节点的互连)、节点连接的权重及偏置。例如,训练可减小映射到具有存储器故障映射的单个条目的地址的神经网络的节点的权重及/或偏置。借此,可快速且以减少存储需求执行训练神经网络,甚至针对不同存储器及不同操作参数进行多次。
考虑其中用于加速神经网络的存储器故障映射以分布式方式跨存储器及具有存储器控制器及计算机处理器的主机实施的环境。主机包含可使用存储器故障映射来训练神经网络的神经网络加速器模块。神经网络加速器模块还可基于相关联操作参数来操作经训练神经网络。在此架构中,存储器实施故障模块以基于观察到的存储器故障产生存储器故障映射。接着,主机从存储器获得存储器故障映射。
通过在存储器处实施故障模块,故障模块靠近存储器以检测及调查故障且将所得故障区域记录到存储器故障映射中。故障模块接着可将所记录故障区域中的每一者压缩为单条目故障范围的指示以将存储器故障映射变换为具有减小大小的存储器故障映射。通过在存储器处产生存储器故障映射,存储器故障信息占用更少空间且因此可容易地通过互连件从存储器传输到主机。此节省主机与存储器之间的带宽。此外,可简化主机,因为其无需理解存储器架构的低级方面,其信息用于调查检测到的故障且创建存储器故障映射。代替地,主机处的神经网络加速器模块可仅从存储器请求存储器故障映射且接着使用其在相关联操作参数处加速神经网络。
这些只是可如何实施用于加速神经网络的存储器故障映射的几个例子。贯穿本发明描述其它实例及实施方案。本发明现转向实例操作环境,此后描述实例装置及方法。
操作环境
图1-1说明其中可操作本发明中描述的各种技术及装置的实例环境100。此环境100假设使用故障模块预先创建存储器故障映射且预先训练例如神经网络的存储器映射应用。一旦经训练,则经训练存储器映射应用使用神经网络加速器执行。尽管假设预先动作,但此环境100展示使用所描述存储器故障映射来降低神经网络对故障数据位置的敏感性的一个实例结果,例如通过在存储器的基线操作参数外使用存储器来引起的故障数据位置。
更详细地,环境100说明神经网络加速器102、一或多个计算机处理器104、存储器控制器106、存储器108、故障模块110及非易失性存储器112。计算机处理器104以经修改操作参数执行应用,其中应用经训练以补偿存储器108中在所述操作参数处的错误。此用经训练存储器映射应用114-1到114-N说明,其中1到N表示1到某整数N个操作参数。如本文使用,存储器映射应用指代应用的存储器地址或其部分已知或预定的应用。应用经相应存储器故障映射116-1到116-N训练,其中1到N表示操作参数。计算机处理器104执行经训练存储器映射应用114且通过存储器控制器106从存储器108读取及写入到存储器108。尽管一或多个处理器104被说明为经配置用于执行神经网络的处理器,但处理器104可改为包含主机计算机装置的CPU或GPU或其它。
存储器108被说明为用于神经网络加速器(例如神经网络加速器102)的主存储器;然而,存储器108可与加速器分离且可为各种类型。举例来说,存储器108可包含集成电路存储器、动态或静态随机存取存储器(例如DRAM、SRAM)或快闪存储器或类似者。可使用具有物理存储器故障的可知位置的任何存储器。
故障模块110被展示与神经网络加速器102集成,但其可与神经网络加速器102分离或与其一部分集成,例如存储器控制器106或存储器108。下文参考图1-2描述用于实施故障模块110的实例位置。本文描述的模块中的每一者可包含具有软件、硬件、固件或其组合中的处理器可执行指令的计算机可读媒体。
在更详细地描述环境100的每一元件之前,考虑创建或改进存储器故障映射116的一种替代或额外方式。此处,错误检测模块118在以经修改操作参数中的一者操作时指示存储器108中的故障且将这些故障传递到故障模块110(用虚线箭头说明)。故障模块110接着可更改或记录且随后更改用于所述操作参数的适当存储器故障映射用于存储于非易失性存储器112中(用另一虚线箭头说明)。
图1-2说明图1-1中说明的故障模块110的实例操作实施方案。实例设备200包含至少一个主机202及至少一个存储器108。主机202包含至少一个处理器104及至少一个存储器控制器106。处理器104及存储器控制器106可为物理分离装置(例如分离芯片或小芯片)或可为单个装置的不同元件,例如CPU、ASIC或FPGA。主机202使用互连件204耦合到存储器108。举例来说,处理器104可使用存储器控制器106经由互连件204通信地耦合到存储器108。互连件204可使用芯片上互连件、芯片间互连件、总线、印刷电路系统板(PCB)上的迹线、电缆或交换结构等实现。
故障模块110或多个此类故障模块可经定位用于在设备200的一或多个位置中执行。如展示,故障模块110可定位于处理器104、存储器控制器106或存储器108处。故障模块110可替代地在一或多个其它位置中。此外,故障模块110可跨两个或更多个组件分布,例如存储器108及处理器104或存储器控制器106及处理器104。下文参考图5及6描述其中存储器108包含故障模块110的至少部分的实例实施方案。
实例故障模块
图2说明图1-1及1-2的故障模块110的实例能力。故障模块110经配置以创建图1-1的存储器故障映射116。此存储器故障映射116希望用于存储器映射应用(例如神经网络应用)的未来训练,其中存储器故障映射116-1到N中的每一者与特定操作参数(1到N)及特定存储器(例如存储器108)相关联。因此,如果希望使用多个存储器,那么可由故障模块110创建多个存储器故障映射116。故障模块110的能力展示于虚线框内,其中存储器故障映射的创建用从存储器108(在不同经修改操作参数处)到对应存储器故障映射116的箭头展示。
确定物理存储器故障
故障模块110经配置以通过确定存储器108中多个物理存储器故障的多个地址来创建存储器故障映射116。当存储器108以不同于存储器108的基线操作参数的经修改操作参数操作时,确定这些物理存储器故障。这些确定可在应用执行之前或执行期间通过由错误检测模块118检测到的错误执行,错误接着传递到故障模块110(见图1-1)。
此处,基线操作参数是其中存储器的制造商指定存储器可以给定可靠性水平操作的特定参数或操作参数范围。使用基线操作参数,存储器制造商可在销售之前测试存储器,创建错误故障列表(如果存在任何错误),且在一些情况中,在存储器以规定基线操作参数下操作时保证非常低或零错误(所列错误除外)。因此,在存储器108以经修改操作参数操作时确定的多个物理存储器故障包含除在基线操作参数内操作时在与存储器108相关联的基线故障列表中发现的故障之外的故障。
实例经修改操作参数包含高频存储器存取、低压存储器存储、低刷新率、数据清理操作及高温操作。高频存储器存取高于存储器的指定基线频率存储器存取,其中基线频率存储器存取是其中存储器经设计以在界限错误率内操作的频率存取。如本文别处所述,以较高频率操作存储器可增加存储器中的故障,但也可提高操作速度且因此提高性能。举例来说,高频存储器存取可包含比存储器的基线频率存取快5%、10%或20%的时钟循环。
低压存储器存储低于存储器的基线电压存储器存储,其中基线电压存储器存储是其中存储器经设计以在界限错误率内操作的电压。使用较低电压用于存储器存储可节省电力且改进性能,但可增加存储器中的故障。这些额外故障由故障模块110编码于存储器故障映射116中。实例降低电压是0.8伏及1.2伏,其中基线电压改为在1.2到1.8伏的范围内。
其它经修改操作参数包含以高于基线温度范围的温度操作存储器108,其可提高性能或节省电力(例如,因无需时间来冷却存储器或无需电力来操作温度降低装置)。
故障模块110可以各种方式确定多个物理存储器故障的多个地址。举例来说,故障模块110可通过测试邻近于已知错误的地址来确定故障地址以确定到错误区域的物理界限。此确定可来自已知具有故障的地址,例如来自基线故障列表或故障模块110的先前操作。
在一种情况中,故障模块110一次一位地测试邻近地址(其中每一位相邻于已知故障地址),直到在存储器的同一列、存储器的同一行或感测电路系统、存储器的同一编程电路系统、存储器的存储体、存储器的同一刷新电路系统或沿其中驻留具有所确定故障的位置的存储器的同一通路的地址的每一界限处确定无错误位。一种逐位进行的方式是通过测试列中的相邻(邻近或在行/列/存储体内)位、接着行缓冲器、接着存储体及接着通道。为了加快过程,故障模块110可改为在测试另一位之前跳过一些位。此测试的结果可为发现行、列、存储体、通路区域等的一部分或全部是错误区域且因此应在存储器故障映射116中表示。
替代地,故障模块110可通过测试多个物理存储器故障的已知故障地址(“错误位置”)的区域内的一些地址来测试错误区域以确定其它故障是否在区域内。如果其它故障的数目超过数目或百分比阈值,那么故障模块110将此确定区域表示为存储器故障映射116中的错误区域。
对物理存储器故障进行编码
当确定多个物理存储器故障时,故障模块110经配置以对存储器故障映射116中的地址范围进行编码。此地址范围包含经确定为在存储器108中的多个物理存储器故障的多个地址中的至少两者。为了视觉解释,考虑图3。
图3说明存储器的简化视觉表示,此处存储器108被展示为具有经扩展以展示具有无故障地址304及故障地址306的位级存储器位置的部分302。如用地址范围308说明,可对涵盖以下四个地址的存储器故障映射116中的单个映射条目进行编码:三个故障地址306-1、306-2及306-3以及一个无故障地址304。因此,地址范围308包含经确定为在存储器108中的多个物理存储器故障的多个地址中的至少两者。地址范围308实际上包含错误区域的界限,例如指示外界限,外界限指示行的起始地址以及关于起始地址周围有多少额外位(此处包含四个位)包含于错误区域中的一些指示符(也称为“掩码”)。另外,由地址范围308表示的错误区域包含未确定为物理存储器故障的至少一个位。包含未确定为有故障的位(称为“无故障位”)同时牺牲一些可用存储器节省存储器故障映射116的存储空间且加速训练,如下所述。此是错误区域的一个实例,此处具有四种可能性中的三个错误,其经编码为单个条目。此在存储器故障映射116的减小大小外具有益处,如下文稍后将描述。在地址范围308的此实例中,编码包含两个整数,一者用于起始物理位置且另一者用于设置结束物理位置。
在一些情况中,存储器故障映射116随着故障地址被发现而逐步创建,例如当在应用执行期间或在执行故障测试时通过对地址范围进行编码来更改故障映射时。此部分展示于图1-1中,其中错误检测模块118检测错误且将其传递到故障模块110。然而,当发现故障地址时,故障模块110可避免在存储器故障映射116中添加另一条目。假设检测到具有故障地址306-4的错误。故障模块110不是对新地址范围进行编码,而是可更改地址范围308以使外界限延伸到包含故障地址306-4。
类似地,故障地址的相交点可由故障模块110对照现有地址范围确定。相交点共享掩码地址(例如行或列),但可或可不在掩码地址的界限内。因此,当发现相交点时,故障模块110可简单地在其在界限内时忽略新故障地址或在其不在时更改现有地址范围以涵盖故障地址。举例来说,如果在某未来时间故障地址306-2与306-3之间的无故障地址经确定为故障地址,那么故障模块110可确定相交点且放弃或更改现有地址范围,借此不更改存储器故障映射116或更改但不添加另一地址范围。
计算系统(例如图2的设备200)可包含抵制故障存储器的其它技术。一些系统可包含尝试错误校正、修复及/或重新映射数据以缓解可能影响主机操作的存储器故障的模块或电路系统。因此,可在固定操作条件下创建存储器故障映射116,固定操作条件由在确定及编码不可校正物理存储器故障以产生存储器故障映射116之前应用此故障缓解方案导致。举例来说,硬件或软件错误校正码(ECC)及相关修复技术可首先尝试减少存储器错误的数量。接着将剩余不可校正存储器错误位置编码到存储器故障映射中。
返回到图2,故障模块110经配置以使存储器故障映射116与其中确定存储器108中故障的经修改操作参数相关联。基于此相关联,可对适当经修改操作参数及存储器执行未来训练。如下文图4中说明,存储器故障映射116可用于训练存储器映射应用以补偿及降低对经修改操作参数处的多个物理存储器故障的敏感性。
训练存储器映射应用
图4说明经配置以使用由图1-1到3的故障模块110创建的存储器故障映射116来训练存储器映射应用404的故障缓解训练器402的能力。图1-1到3中的其它组件也包含于上下文中。故障缓解训练器402经配置以选择与操作参数相关联的存储器故障映射、使用存储器故障映射来训练存储器映射应用及接着使经训练应用与所述操作条件(且在一些情况中在由加速器使用多于一个存储器时的存储器)相关联。
更详细地,故障缓解训练器402经配置以选择存储器故障映射116-1到N,其中故障映射116中的每一者与存储器108的不同经修改操作参数1到N相关联。因此,针对可能经修改操作参数中的每一者(例如高频或低压)选择相关联存储器故障映射116。
使用选定存储器故障映射116,故障缓解训练器402经配置以训练存储器映射应用404以补偿存储器108中的故障,从而导致存储器映射应用404的经训练版本,此处为经训练存储器映射应用114-1到N。存储器映射应用404的此训练将存储器映射应用404训练到表示于存储器故障映射116中的多个物理存储器故障。此训练通过重新训练存储器映射应用的一或多个神经网络节点来硬化应用。
尽管不是必需的,但存储器映射应用404可为神经网络,例如深度神经网络。为了硬化深度神经网络,故障缓解训练器402经配置以重新训练深度神经网络的至少一个属性,例如网络结构(例如层的类型及数目或节点之间的互连)、节点连接的权重及/或偏置。举例来说,故障缓解训练器402可通过更改具有到由存储器故障映射116中的地址范围表示的存储器中的故障的固定映射的多个神经网络节点的权重来重新训练一或多个神经网络节点。
通过识别存储器故障映射116内的地址范围与存储器108中存储器映射应用404的神经网络节点包含到其的固定映射的位置之间的相交点,训练可更快或使用更少资源。这些相交点指示神经网络节点与具有故障的存储器的一些部分相关联。借此,可减小节点的权重(或其它方式,取决于存储器映射应用的类型)以减少故障存储器的影响。如上所述,此相交点可为快速及高效的,即使是由硬件或软件执行的单级比较。
尽管此训练实例涉及应用与存储器中的物理位置之间的固定存储器映射,但虚拟存储器仍可在训练及执行期间使用,例如出于安全目的。只要应用使用相同物理地址训练及执行,那么训练是有效的,因为存储器中故障的物理位置仍映射到应用的一部分(例如节点),但在此情况中也通过虚拟映射。
图5说明其中可实施用于加速神经网络的存储器故障映射的设备500的实例架构及方案的操作。如展示,设备500包含主机202及存储器108。主机202包含神经网络加速器模块502。存储器108包含故障模块110及存储阵列510,且故障模块110包含存储器故障映射116。互连件204包含地址路径504及数据路径506。神经网络加速器模块502可执行上文参考图4描述的操作以使用存储器故障映射从存储器映射应用404产生经训练存储器映射应用114。此处,故障模块110例示于存储器108处且因此产生远离主机202及神经网络加速器模块502的存储器故障映射116。
方案描绘用于将存储器故障映射116从存储器108处的故障模块110传送到主机202处的神经网络加速器模块502的过程。故障模块110具有对存储阵列510的近端存取且知晓其在存储体、行、列及三维存储器通路方面的架构。因此,故障模块110可在存储器108处本地产生存储器故障映射116,如上文参考图3描述。此包含将故障信息压缩到低开销状态,其减小将故障信息从存储器108传送到主机202的带宽。举例来说,存储器故障映射116可包含多个故障条目,例如所说明故障条目512。故障条目512可包含故障地址514及范围指示符516。如上文描述,故障地址514可指定存储位置或多个地址的网格或矩阵中的单个地址位置,例如行或列。范围指示符516可被实施为相对于故障地址514细化或扩展故障区域的掩码。
在实例操作中,神经网络加速器模块502通过互连件204(例如通过地址路径504或命令总线(未展示))向故障模块110传输请求508。请求508可涉及当前存储器故障映射116。替代地,请求508可识别与一或多个目标经修改操作参数相关联的存储器故障映射116。响应于请求508,故障模块110通过互连件204(例如通过数据路径506)向神经网络加速器模块502回传存储器故障映射116。尽管存储器故障映射116被描绘为具有单个故障条目512,但存储器故障映射116可包含多个故障条目512。因此,存储器故障映射116的通信可通过将多个故障条目512从存储器108传输到主机202来执行。接下来参考图6描述跨主机202与存储器108之间的接口传送此信息的实例方法。
设备500可以各种方式实施。举例来说,主机202及存储器108可集成于单个芯片(例如单芯片系统(SoC))上。在此类情况中,互连件204是芯片内互连件。替代地,主机202及存储器108可构建于单独集成电路芯片、模块或印刷电路系统板(PCB)上。在此类情况中,互连件204是芯片间互连件,例如PCB上的迹线或不同离散服务器组件之间的布线。此外,互连件204可以各种方式实现。举例来说,地址及数据路径可合并,或互连件204可包含命令总线或其它控制电路系统。
图6说明具有主机202及存储器108的操作及通信以使用加速神经网络的存储器故障映射的实例序列图600。在主机202处,神经网络加速器模块(NNAM)502执行各种操作。在存储器108处,故障模块110执行所描绘操作。尽管未展示,但神经网络加速器模块502可首先指示存储器108以某个经修改操作参数操作。在602处,故障模块110通过检测故障或通过将一或多个检测到的故障转换为紧凑故障条目512(或两者)来产生存储器故障映射116。产生可根据指定经修改操作参数来执行。
在604处,神经网络加速器模块502将请求508放置于互连件204上。响应于请求508,故障模块110在606处回传存储器故障映射116。因此,在608处,神经网络加速器模块502接收存储器故障映射116。更具体来说,故障模块110随时间以多个部分传输存储器故障映射116。举例来说,故障模块110在606-1处回传故障条目512-1,且神经网络加速器模块502在608-1处接收故障条目512-1。此处,存储器故障映射116包含M个故障条目512-1到M,其中M表示正整数。故障条目的交换一直持续到故障模块110在606-M处通过互连件204传输第M故障条目512-M。
因此,神经网络加速器模块502经由互连件204在608-M处接收第M故障条目512-M。神经网络加速器模块502在主机202处将M个故障条目512-1到M组合为存储器故障映射116。在610处,神经网络加速器模块502(例如,使用图4的故障缓解训练器402)训练存储器映射应用404以产生经训练存储器映射应用114。举例来说,神经网络加速器模块502可用存储器故障映射116来训练神经网络以产生硬化神经网络,硬化神经网络在硬化神经网络的执行期间降低使用存储器108中的错误区域的重要性,其中错误区域由存储器故障映射116指示。在612处,神经网络加速器模块502可执行经训练存储器映射应用114。举例来说,图1的神经网络加速器102可在614处在至少一个相关联经修改操作参数下使用存储器108执行经训练存储器映射应用114。
尽管图5及6根据用于神经网络应用的神经网络加速器模块描述,但原理一般适用于其它结构及存储器映射应用。
实例方法
本节说明可全部或部分单独或一起操作的实例方法。描述各种实例方法,为便于阅读,每一方法阐述于小节中;这些小节标题不希望限制这些方法中的每一者的彼此互操作性。
创建或更改存储器故障映射
图7描绘用于创建用于存储器映射应用的未来训练的存储器故障映射的实例方法700。在以下论述的部分中,可参考图1到4的实例操作环境100或其它图中详述的实体或过程,其参考仅作为实例。
在702处,确定存储器中多个物理存储器故障的多个地址。当存储器以不同于存储器的基线操作参数的经修改操作参数操作时,可确定这些多个地址。然而,在一些情况中,存储器是其中在基线操作参数处存在高性能但高错误率的存储器,例如上述快速及密集存储器。因此,可针对各种操作参数创建存储器故障映射,无论操作参数是从基线修改还是为基线操作参数本身。尽管不是必需的,但故障的确定可包含识别多个物理存储器故障中的每一者的硬故障错误或瞬时故障错误。例如,如果ECC检查失败且位在再次写入之后继续响应不正确值,那么可识别硬故障。此硬故障错误可具有高于阈值错误率(例如90%、95%或99%)的各种错误率或仅为单个已知错误。瞬时故障是未通过ECC检查但接着后来被正确写入及读取的那些存储器位置。此类瞬时故障也可作为潜在错误存储器位置包含于存储器故障映射中。
参考图1到4的实例组件作为实例,在702处,故障模块110借助或不借助错误检测模块118来确定物理存储器故障的地址。如上所述,存储器中的故障可通过在存储器的读取期间识别错误来确定,例如在某个应用的执行期间,用错误检测模块118展示。故障及其地址的此识别可通过清理过程来执行,其中清理过程检查存储器位置及其错误校正码(如果错误校正包含于存储器内或与存储器相关联)。
在一些情况中,故障模块110可确定错误区域,如替代操作702-1及702-2处说明。总之,故障模块110可逐位确定错误区域以确定错误区域的外界限,或通过测试区域内的地址且响应于区域中的故障超过数目或百分比阈值而设置错误区域。更详细地,在替代操作702-1处且响应于确定存储器中多个物理存储器故障的多个地址中的一者,引导测试硬件测试邻近地址以确定到具有多个位置中的确定者的错误区域的物理界限。在替代操作702-2处,从测试硬件接收错误区域的界限地址。这些界限地址指示错误区域的外界限,其中错误区域在其中分析存储器的经修改操作参数处具有多个物理存储器故障。
在704处,在存储器故障映射中对地址范围进行编码。此地址范围包含在操作702处确定为在存储器中的多个物理存储器故障的多个地址中的至少两者。如本文所述,编码在存储器故障映射116中存储具有地址范围的多个故障地址。在确定物理存储器故障的地址且对其进行编码(通常为特定经修改操作参数)的此过程的一或多次迭代之后,创建(或更改)存储器故障映射且使其准备用于训练存储器映射应用,例如图4的存储器映射应用404。
替代地或另外地,在704处执行包含704-1及704-2处的替代操作的编码。在替代操作704-1处,响应于确定单个物理存储器故障的地址且在对地址范围进行编码之前,对照存储器故障映射中的现有地址范围检查地址。借此,可发现物理存储器故障的地址与存储器故障映射中的当前条目之间的相交点。在704-2处,响应于确定单个物理存储器故障的地址与存储器故障映射中的地址范围之间的相交点(例如由地址范围涵盖的地址及因此重叠),编码忽略地址或更改存储器故障映射中的现有地址范围。如果地址完全在地址范围内,那么编码操作无实际意义,因为地址被忽略。如果地址与地址范围的部分(例如行或列的部分但不在所述行或列的范围内)相交,那么在704处,更改现有地址范围以增大范围。此仅为可改进故障映射的一种方式,例如包含基线操作参数处的故障但经改进以包含在经修改操作参数处确定的额外故障的方式。
在706处,使存储器故障映射与操作参数及存储器相关联。存储器故障映射有效地实现未来用于训练存储器映射应用中以降低在经修改操作参数处对多个物理存储器故障的敏感性(或训练其在具有众多错误的存储器(例如一些快速及密集或廉价存储器)的基线操作参数处处置错误)。应注意,存储器故障映射还与一或若干特定存储器相关联且因此通常也与特定神经网络加速器相关联。因此,存储器故障映射的使用将应用训练到特定存储器,例如与处理器104及/或神经网络加速器102相关联的存储器108。
使用存储器故障映射训练应用
图8描绘用于使用在方法700处创建的存储器故障映射来训练存储器映射应用的实例方法800。在以下论述的部分中,可参考图1到4的实例操作环境100或其它图中详述的实体或过程,其参考仅作为实例。技术不限于由在一个装置(例如单个神经网络加速器)上操作的一个实体或多个实体执行。
在802处,为存储器选择与经修改操作参数相关联的存储器故障映射。存储器故障映射与其中可稍后执行存储器映射应用的经修改操作参数相关联。尽管单个存储器故障映射可用于选择,但可存在与不同经修改操作参数及不同存储器相关联的众多存储器故障映射。如上文详述,经修改操作参数可为多种类型,例如高频存取、低压存储、高温及其它,例如其中存储器在基线处包含众多故障的基线参数。
在804处,将存储器映射应用训练到表示于存储器故障映射中的多个物理存储器故障。这些物理存储器故障可为除存在于基线操作参数处的故障之外的故障,且在此情况中,训练可用于硬化已经训练应用,借此重新训练其以补偿额外物理存储器故障。如上所述,存储器映射应用可为神经网络应用。在此情况中,训练包含重新训练一或多个神经网络节点以减少映射到表示于存储器故障映射中的多个物理存储器故障的那些节点的权重。上文还描述训练应用的各种方式,包含快速及高效识别存储器故障映射内的地址范围与应用具有到其的固定映射的存储器中的位置的地址之间的相交点。
在806处,当存储器在经修改操作参数的阈值范围内操作时,使用存储器执行经训练存储器映射的映射应用。因此,如果存储器故障映射与特定操作参数(例如以1200MHz频率操作的存储器)相关联,那么用以高于1200MHz频率超过5%、10%或甚至20%操作的存储器执行经训练应用。只要其中训练应用的物理存储器故障位置是其中执行经训练应用的存储器位置,那么经训练应用可用或不用虚拟映射执行。
通过方法800可在其中操作的一个实例设备,考虑图1。此处,神经网络加速器102通过处理器104、使用存储器控制器106及在其中训练应用的存储器108的操作参数处执行经训练存储器映射应用114。针对所述操作参数更改存储器故障映射116可由错误检测模块118进行或记录用于稍后更改。
图1到6的实体可进一步划分、组合及与其组件一起使用。以此方式,可使用神经网络加速器102、存储器108、故障模块110、存储器故障映射116及存储器映射应用404的不同实施方案。图1的实例操作环境100及图2到6的详细说明仅说明能够采用所描述技术的许多可能环境及装置中的一些。此外,本发明中描述的方法被展示为指定所执行的操作的块组,但不一定限于展示为由相应块执行操作的顺序或组合。可重复、组合、重组或链接操作中的一或多者中的任何者以提供各种额外及/或替代方法,包含本文描述的其它方法。技术不限于由在一个装置(例如单个神经网络加速器)上操作的一个实体或多个实体执行。
计算机可读媒体包含非暂时性计算机存储媒体及通信媒体两者,包含促进计算机程序(例如应用程序、故障模块或故障映射)从一个实体转移到另一实体的任何媒体。非暂时性存储媒体可为可由计算机存取的任何可用媒体,例如RAM、ROM、EEPROM、光盘ROM及磁盘。
除非上下文另有规定,否则本文使用的词语“或”可被视为使用“包含性或”或准许包含或应用由词语“或”链接的一或多个项目的术语(例如,短语“A或B”可被解译为仅准许“A”、仅准许“B”或准许“A”及“B”两者)。此外,如本文使用,涉及项目列表“中的至少一者”的短语指代所述项目的任何组合,包含单个成员。例如,“a、b或c中的至少一者”可涵盖a、b、c、a-b、a-c、b-c及a-b-c以及与同一元件的倍数的任何组合(例如a-a、a-a-a、a-a-b、a-a-c、a-b-b、a-c-c、b-b、b-b-b、b-b-c、c-c及c-c-c或a、b及c的任何其它排序)。此外,本文论述的附图及术语中表示的项目可指示一或多个项目或术语,且因此在此书面描述中,可互换地参考项目及术语的单数或复数形式。
结论
尽管已以特定于特征及/或方法的语言描述用于加速神经网络的存储器故障映射的创建及使用的技术及促进其创建及使用的设备的实施方案,但应理解,所附权利要求书的标的物不一定限于所描述的特定特征或方法。确切来说,特定特征及方法被公开为促进用于加速神经网络的存储器故障映射创建及使用的实例实施方案。
Claims (38)
1.一种方法,其包括:
当存储器以操作参数操作时,确定所述存储器中多个物理存储器故障的多个地址,所述操作参数不同于所述存储器的基线操作参数;
对存储器故障映射中的地址范围进行编码,所述地址范围包含经确定为在所述存储器中的所述多个物理存储器故障的所述多个地址中的至少两者;及
使所述存储器故障映射与所述操作参数相关联。
2.根据权利要求1所述的方法,其进一步包括:
测试所述多个物理存储器故障中的一者的邻近地址以确定到错误区域的物理界限,及
对所述存储器故障映射中所述错误区域的界限地址进行编码。
3.根据权利要求2所述的方法,其中所述错误区域的所述界限地址指示所述错误区域的外界限,所述错误区域具有所述多个物理存储器故障中的所述一者及一或多个其它物理存储器故障。
4.根据权利要求2所述的方法,其中所述错误区域包含未确定为物理存储器故障的至少一个位。
5.根据权利要求2所述的方法,其中测试邻近地址一次测试一个位,每一位相邻于所述多个物理存储器故障中的所述一者,直到在所述存储器的同一列、所述存储器的同一感测电路系统、所述存储器的同一编程电路系统、所述存储器的同一刷新电路系统或其中驻留所述多个物理存储器故障中的所述一者的所述存储器的同一通路的每一界限处确定无错误位。
6.根据权利要求1所述的方法,其进一步包括:
测试具有所述多个物理存储器故障中的一者的区域内的地址以确定其它故障是否在所述区域内;
响应于所述其它故障的数目超过数目或百分比阈值,确定所述区域是错误区域;及
对所述存储器故障映射中的所述错误区域进行编码。
7.根据权利要求6所述的方法,其中测试所述区域内的地址测试所述存储器的行、所述存储器的列、所述存储器的存储体或沿所述存储器的通路的地址。
8.根据权利要求1所述的方法,其进一步包括:
响应于确定所述存储器中所述多个物理存储器故障的所述多个地址中的一者,引导测试硬件测试邻近地址以确定到具有所述多个地址中的所述确定者的错误区域的物理界限;
从所述测试硬件接收所述错误区域的界限地址,所述界限地址指示所述错误区域的外界限,所述错误区域具有所述操作参数处的多个物理存储器故障;及
对所述存储器故障映射中的所述错误区域进行编码。
9.根据权利要求1所述的方法,其中对所述地址范围进行编码将所述地址范围编码为单个映射条目。
10.根据权利要求9所述的方法,其中将所述地址范围编码为所述单个映射条目用两个整数对所述单个映射条目进行编码,第一整数对应于存储器地址且第二整数对应于掩码,所述掩码指示相对于所述存储器地址的多个地址的范围。
11.根据权利要求9所述的方法,其中所述地址范围由两个整数表示,所述两个整数中的一者对应于指示所述存储器中的行、列或存储体的掩码。
12.根据权利要求1所述的方法,其进一步包括识别所述多个物理存储器故障中的每一者的硬故障错误,所述硬故障错误具有高于阈值错误率的错误率。
13.根据权利要求12所述的方法,其中确定所述多个地址中的每一者在所述存储器的读取期间识别所述硬故障错误期间或之后立即执行。
14.根据权利要求1所述的方法,其进一步包括执行清理过程,所述清理过程检查存储器位置及其错误校正码。
15.根据权利要求1所述的方法,其中在所述存储器以所述操作参数操作时确定的多个物理存储器故障是在以所述基线操作参数操作时在与所述存储器相关联的基线故障列表中未发现的故障。
16.根据权利要求1所述的方法,其中所述操作参数是高频存储器存取,所述高频存储器存取高于所述存储器的基线频率存储器存取,其中设计所述存储器以在经界限错误率内操作的所述存储器的所述基线频率存储器存取。
17.根据权利要求1所述的方法,其中所述操作参数是低压存储器存储,所述低压存储器存储低于所述存储器的基线电压存储器存储,其中设计所述存储器以在经界限错误率内操作的所述存储器的所述基线电压存储器存储。
18.根据权利要求1所述的方法,其进一步包括:
响应于确定单个物理存储器故障的地址且在对涵盖所述单个物理存储器错误的所述地址的所述地址范围进行编码之前,检查所述地址与所述存储器故障映射中的现有地址范围的相交点;及
响应于确定所述相交点:
如果所述单个物理存储器故障的所述地址完全在所述现有地址范围内,那么抑制对所述地址进行编码;或
如果所述地址不完全在所述现有地址范围内,那么更改所述存储器故障映射中的所述现有地址范围以包含所述单个物理存储器故障的所述地址。
19.一种方法,其包括:
选择与存储器的操作参数相关联的存储器故障映射,所述存储器故障映射与所述操作参数相关联;
至少部分基于表示于所述存储器故障映射中的多个物理存储器故障来训练存储器映射应用,所述训练包括重新训练所述存储器映射应用的一或多个神经网络节点;及
当所述存储器在所述操作参数的阈值范围内操作时,使用所述存储器执行所述经训练存储器映射应用。
20.根据权利要求19所述的方法,其进一步包括从与相应及不同操作参数相关联的多个存储器故障映射选择。
21.根据权利要求19所述的方法,其中与所述存储器故障映射相关联的所述操作参数是高频存储器存取,所述高频存储器存取高于所述存储器的基线频率存储器存取,其中设计所述存储器以在经界限错误率内操作的所述存储器的所述基线频率存储器存取。
22.根据权利要求19所述的方法,其中与所述存储器故障映射相关联的所述操作参数是低压存储器存储,所述低压存储器存储低于所述存储器的基线电压存储器存储,其中设计所述存储器以在经界限错误率内操作的所述存储器的所述基线电压存储器存储。
23.根据权利要求19所述的方法,其中与所述存储器故障映射相关联的所述操作参数是高温条件,所述高温条件高于所述存储器的基线温度条件,其中设计所述存储器以在经界限错误率内操作的所述存储器的所述基线温度条件。
24.根据权利要求19所述的方法,其中:
所述存储器映射应用是在深度神经网络硬件加速器内操作的深度神经网络应用;
所述存储器是所述深度神经网络硬件加速器的随机存取存储器;且
重新训练所述一或多个神经网络节点包括更改具有到由所述存储器故障映射中的紧凑地址表示的所述存储器中的故障的固定映射的多个神经网络节点的权重。
25.根据权利要求24所述的方法,其中到所述存储器中的所述故障的所述固定映射是通过来自所述固定映射的虚拟映射。
26.根据权利要求19所述的方法,其进一步包括识别所述存储器故障映射内的地址范围与所述存储器映射应用的神经网络节点包含到其的固定映射的所述存储器中的位置之间的相交点。
27.根据权利要求26所述的方法,其中所述相交点的所述识别准许在表示于所述存储器故障映射中的所述多个物理存储器故障与映射到所述存储器中的位置的所述存储器映射应用的部分之间进行单级比较。
28.一种设备,其包括:
互连件;
存储器,其耦合到所述互连件且包含存储阵列,所述存储器经配置以:
产生表示所述存储阵列中的多个物理存储器故障的存储器故障映射;及
响应于对所述存储器故障映射的请求,经由所述互连件提供所述存储器故障映射;及
主机,其耦合到所述互连件且包含神经网络加速器模块,所述神经网络加速器模块经配置以:
将对所述存储器故障映射的所述请求放置于所述互连件上;
基于所述请求,经由所述互连件从所述存储器接收所述存储器故障映射;及
使用所述存储器故障映射来训练神经网络关于所述存储阵列中的所述多个物理存储器故障硬化。
29.根据权利要求28所述的设备,其中:
所述主机包括耦合到存储器控制器的处理器;及
所述互连件包括芯片上互连件、芯片间互连件、总线、印刷电路系统板(PCB)上的迹线、电缆或交换结构中的至少一者。
30.根据权利要求29所述的设备,其中所述存储器经配置以使用通过所述互连件的多个传输在部分中提供所述存储器故障映射。
31.根据权利要求28所述的设备,其中:
所述存储器故障映射包括多个故障条目;且
所述多个故障条目中的每一故障条目包含故障地址及范围指示符。
32.根据权利要求31所述的设备,其中:
所述故障地址指示所述存储阵列中所述多个物理存储器故障的至少一个故障位置;且
所述范围指示符指示相对于所述故障地址的错误区域,所述错误区域包含所述多个物理存储器故障中的一或多个物理存储器故障及所述存储阵列中没有故障的至少一个位置。
33.根据权利要求32所述的设备,其中所述存储器经配置以通过测试从所述故障地址开始的向外方向上的存储器位置来确定所述错误区域以确定到所述错误区域的至少一个物理界限。
34.根据权利要求28所述的设备,其中所述神经网络加速器模块经配置以:
使用多个接收操作在多个部分中通过所述互连件接收所述存储器故障映射;及
将所述多个部分组合为所述存储器故障映射。
35.根据权利要求34所述的设备,其中所述多个部分中的每一部分包括故障条目,所述故障条目包含共同定义错误区域的故障地址及范围指示符。
36.根据权利要求35所述的设备,其中所述神经网络加速器模块经配置以用所述存储器故障映射来训练所述神经网络以产生硬化神经网络,所述硬化神经网络在所述硬化神经网络的执行期间降低使用所述错误区域的重要性。
37.根据权利要求28所述的设备,其中所述神经网络加速器模块经配置以在由所述存储器用于产生所述存储器故障映射的所述多个物理存储器故障中的至少一个故障位置的检测期间通过所述互连件向所述存储器指定对所述存储器有效的操作参数。
38.根据权利要求37所述的设备,其中所述神经网络加速器模块经配置以:
使用所述存储器故障映射来训练所述神经网络以产生硬化神经网络;及
根据所述指定操作参数来使用所述存储器执行所述硬化神经网络。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/846,259 US11507443B2 (en) | 2020-04-10 | 2020-04-10 | Memory fault map for an accelerated neural network |
US16/846,259 | 2020-04-10 | ||
PCT/US2021/020300 WO2021206827A1 (en) | 2020-04-10 | 2021-03-01 | Memory fault map for an accelerated neural network |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115552422A true CN115552422A (zh) | 2022-12-30 |
Family
ID=78006742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180026739.8A Withdrawn CN115552422A (zh) | 2020-04-10 | 2021-03-01 | 用于加速神经网络的存储器故障映射 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11507443B2 (zh) |
EP (1) | EP4133425A1 (zh) |
KR (1) | KR20220152566A (zh) |
CN (1) | CN115552422A (zh) |
WO (1) | WO2021206827A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11507443B2 (en) | 2020-04-10 | 2022-11-22 | Micron Technology, Inc. | Memory fault map for an accelerated neural network |
DE102020207616A1 (de) * | 2020-06-19 | 2021-12-23 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren zum Betreiben einer Recheneinheit |
TWI752713B (zh) * | 2020-11-04 | 2022-01-11 | 臺灣發展軟體科技股份有限公司 | 資料處理電路及故障減輕方法 |
US12032434B2 (en) * | 2022-05-10 | 2024-07-09 | Western Digital Technologies, Inc. | Machine learning supplemented storage device inspections |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4950886B2 (ja) | 2005-07-15 | 2012-06-13 | パナソニック株式会社 | 不揮発性記憶装置、メモリコントローラ及び不良領域検出方法 |
US8145960B2 (en) | 2006-07-20 | 2012-03-27 | Arm Limited | Storage of data in data stores having some faulty storage locations |
US8627158B2 (en) | 2011-12-08 | 2014-01-07 | International Business Machines Corporation | Flash array built in self test engine with trace array and flash metric reporting |
CN109146073B (zh) * | 2017-06-16 | 2022-05-24 | 华为技术有限公司 | 一种神经网络训练方法和装置 |
US10691572B2 (en) * | 2017-08-30 | 2020-06-23 | Nvidia Corporation | Liveness as a factor to evaluate memory vulnerability to soft errors |
US20190095299A1 (en) * | 2017-09-28 | 2019-03-28 | Cnex Labs, Inc. | Storage system with machine learning mechanism and method of operation thereof |
US11294747B2 (en) * | 2018-01-31 | 2022-04-05 | Advanced Micro Devices, Inc. | Self-regulating power management for a neural network system |
US20200380369A1 (en) * | 2019-05-31 | 2020-12-03 | Nvidia Corporation | Training a neural network using selective weight updates |
US11514295B2 (en) * | 2019-10-25 | 2022-11-29 | EMC IP Holding Company LLC | Continuous learning techniques with machine learning systems to adapt to new input data sets |
US11514314B2 (en) * | 2019-11-25 | 2022-11-29 | International Business Machines Corporation | Modeling environment noise for training neural networks |
US11436132B2 (en) * | 2020-03-16 | 2022-09-06 | International Business Machines Corporation | Stress test impact isolation and mapping |
US11494370B2 (en) * | 2020-03-20 | 2022-11-08 | Nvidia Corporation | Hardware-controlled updating of a physical operating parameter for in-field fault detection |
US11507443B2 (en) | 2020-04-10 | 2022-11-22 | Micron Technology, Inc. | Memory fault map for an accelerated neural network |
US20210390414A1 (en) * | 2020-06-10 | 2021-12-16 | Nvidia Corporation | Accelerated training for neural network models |
US20220035684A1 (en) * | 2020-08-03 | 2022-02-03 | Nvidia Corporation | Dynamic load balancing of operations for real-time deep learning analytics |
-
2020
- 2020-04-10 US US16/846,259 patent/US11507443B2/en active Active
-
2021
- 2021-03-01 WO PCT/US2021/020300 patent/WO2021206827A1/en unknown
- 2021-03-01 KR KR1020227035091A patent/KR20220152566A/ko unknown
- 2021-03-01 EP EP21785202.9A patent/EP4133425A1/en not_active Withdrawn
- 2021-03-01 CN CN202180026739.8A patent/CN115552422A/zh not_active Withdrawn
-
2022
- 2022-11-09 US US18/054,019 patent/US11775370B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
KR20220152566A (ko) | 2022-11-16 |
EP4133425A1 (en) | 2023-02-15 |
US20210318922A1 (en) | 2021-10-14 |
US20230114921A1 (en) | 2023-04-13 |
WO2021206827A1 (en) | 2021-10-14 |
US11775370B2 (en) | 2023-10-03 |
US11507443B2 (en) | 2022-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115552422A (zh) | 用于加速神经网络的存储器故障映射 | |
CN107943609B (zh) | 存储器模块、存储器控制器和系统及其相应操作方法 | |
US7900100B2 (en) | Uncorrectable error detection utilizing complementary test patterns | |
KR101374455B1 (ko) | 메모리 에러와 리던던시 | |
JP5523562B2 (ja) | ストレージデバイス内のエラーデータを追跡するシステムおよび方法 | |
CN104240768B (zh) | 用于测试存储器的方法和存储器系统 | |
US8862953B2 (en) | Memory testing with selective use of an error correction code decoder | |
CN107766172A (zh) | 用于ddr sdram接口的dram辅助纠错机制 | |
WO2018118837A1 (en) | Method to dynamically inject errors in a repairable memory on silicon and a method to validate built-in-self-repair logic | |
US10248497B2 (en) | Error detection and correction utilizing locally stored parity information | |
US9437327B2 (en) | Combined rank and linear address incrementing utility for computer memory test operations | |
CN112612637B (zh) | 内存数据存储方法、内存控制器、处理器芯片及电子设备 | |
CN114203253A (zh) | 芯片的存储器故障修复装置和芯片 | |
GB2201016A (en) | Memories and the testing thereof | |
CN114730607A (zh) | 一种存储器故障修复方法及装置 | |
US9009548B2 (en) | Memory testing of three dimensional (3D) stacked memory | |
JP2008262325A (ja) | メモリ制御装置、メモリ制御方法、情報処理システム、そのプログラム及び記憶媒体 | |
CN111078462A (zh) | 数据校验方法及电路 | |
CN113470723A (zh) | 读重试测试方法、装置、可读存储介质及电子设备 | |
El-Bayoumi | An enhanced algorithm for memory systematic faults detection in multicore architectures suitable for mixed-critical automotive applications | |
JP7558857B2 (ja) | 冗長化記憶装置および方法 | |
CN116467131B (zh) | 一种处理器的ecc功能验证方法、装置、介质和设备 | |
SRINIVAS et al. | Reconfigurable BISR Scheme with ECC Based Repairable RAMs for Reliable SOC Design | |
TWI569279B (zh) | 記憶體保護裝置與方法 | |
CN117421162A (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20221230 |