Nothing Special   »   [go: up one dir, main page]

CN112930519B - 带有纠错及数据刷洗电路的存储器系统 - Google Patents

带有纠错及数据刷洗电路的存储器系统 Download PDF

Info

Publication number
CN112930519B
CN112930519B CN201980067024.XA CN201980067024A CN112930519B CN 112930519 B CN112930519 B CN 112930519B CN 201980067024 A CN201980067024 A CN 201980067024A CN 112930519 B CN112930519 B CN 112930519B
Authority
CN
China
Prior art keywords
memory
data
ecc
circuit
data word
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201980067024.XA
Other languages
English (en)
Other versions
CN112930519A (zh
Inventor
陆宇
林潔予
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
American Business Ruoxiang Semiconductor Co ltd
Original Assignee
American Business Ruoxiang Semiconductor Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by American Business Ruoxiang Semiconductor Co ltd filed Critical American Business Ruoxiang Semiconductor Co ltd
Publication of CN112930519A publication Critical patent/CN112930519A/zh
Application granted granted Critical
Publication of CN112930519B publication Critical patent/CN112930519B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/102Error in check bits
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/04Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B61/00Magnetic memory devices, e.g. magnetoresistive RAM [MRAM] devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/161Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect details concerning the memory cell structure, e.g. the layers of the ferromagnetic memory cell
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Detection And Correction Of Errors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明为一种纠错存储器系统及操作该存储器系统的方法。在一些实施例中,存储器系统包括:数据存储器;ECC存储器;及数据刷洗电路,其电耦合至ECC存储器及数据存储器。数据刷洗电路系可配置对接收刷洗数据命令作出回应,用以纠正数据存储器中的错误。用以纠错的码字长度可比数据存储器正常存取期间使用的字长度长。在一些实施例中,存储器系统包括与第一位错误率相关联的第一存储器电路,及与第二位错误率相关联的第二存储器电路。在一些实施例中,存储器系统包括可纠错的多层存储单元(MLC)阵列。

Description

带有纠错及数据刷洗电路的存储器系统
技术领域
本发明一般相关运算存储器,更具体地,本发明相关用于运算存储器纠错的装置及方法。
背景技术
磁性随机存取存储器(MRAM)、相变存储器(PCM)、电阻式随机存取存储器(RRAM)和铁电随机存取存储器(FRAM)是一些非易失性存储器技术,可比FLASH具有更快的数据写入速度和更高的重写耐久性。例如,高效能MRAM可用于边缘人工智能运算(Edge-AI)应用中,其在模型优化后会需要复杂的数据结构。
为要达成高效能,像MRAM的非易失性存储器存在许多独特的电路挑战。尤其,在较高电压读取操作下,读取效能会因读取干扰错误受到限制,以及写入效能会在更高电压操作下因电击穿损伤(hard break down)而受到限制。另一障碍可能是在较高温度下或较高温度事件期间需要更高阶的纠错才能达成长期数据保留。在这些情况下,可使用二位纠正电路,但电路对于读取和写入操作会增添额外的延迟。
此外,这些非易失性RAM技术和传统挥发性存储器技术中的一些技术可能对环境干扰敏感。例如,DRAM中的数据对高温外向电离辐射敏感,以及MRAM中的数据可能会因高温或大磁场而产生错误。
功率可能是电子装置设计的主要限制因素,并且随着存储器密度的持续增加,存储装置会消耗总功率的部分不断增加。减少存储器操作功率消耗对于数据保留和读写操作均会增加错误率。
为达成适当的纠错强度可能需要耗用大面积的冗余电路。例如,使用低延迟的汉明码(hamming code),可能需要五个纠错码(ECC)位以保护8位字免于单个位错误。作为另一范例,使用Bose、Chaudhuri和Hocquenghem(BCH)码或低密度奇偶校验(LDPC)码,可利用较少的ECC检查位以保护较大数据块(例如1024位或更多位)。但是这些ECC码需要较复杂的编码和解码操作,并且可能会影响效能。
为降低成本以及为实现存储器内运算(PIM),可使用多层存储单元(MLC)装置(例如浮闸或电荷捕捉FLASH装置、eDRAM电容器、RRAM、PCM、模拟存储器)借由以多重状态或连续的模拟特性表示矩阵被乘数来执行存储器中运算操作。然而,大部分这些装置会在操作过程中出现漂移,会逐渐改变矩阵被乘数的值。如果装置漂移超过临界值,则无法采用简单地“读取及恢复”操作以保持正确的数值。
发明内容
本发明涉及一种带纠错功能之存储器系统以及操作该等存储器系统的方法。在一些实施例中,存储器系统包括:数据存储器;ECC存储器;以及数据刷洗电路,其电耦合到ECC存储器和数据存储器。数据刷洗电路可配置对接收刷洗数据命令作出回应,用以纠正数据存储器中的错误。用于纠错的码字长度可比数据存储器正常存取期间使用的字长度长。在一些实施例中,存储器系统包括与第一位错误率相关联的第一存储器电路,以及与第二位错误率相关联的第二存储器电路。在一些实施例中,存储器系统包括可纠错多层存储单元(MLC)阵列。
在一些实施例中,存储器系统包括:数据存储器;ECC存储器;以及数据刷洗电路,其电耦合到ECC存储器和数据存储器。
在一些实施例中,数据刷洗电路系配置对接收刷洗数据命令作出回应,用以纠正数据存储器中的错误。
在一些实施例中,纠错用的码字长度比数据存储器正常存取期间使用的字长度长。
在一些实施例中,数据刷洗电路包括数据缓冲器、数据刷洗控制器、ECC编码电路,以及ECC解码电路。
在一些实施例中,数据刷洗电路配置在存取数据存储器的同时用以纠正数据存储器中的错误。
在一些实施例中,存储器系统尚包括环境干扰感测器,配置用以检测环境条件,以及其中数据刷洗电路系基于检测到的环境条件以产生刷洗数据命令。
在一些实施例中,环境条件包括温度和磁场中的至少一者。
在一些实施例中,数据刷洗电路配置用以检测已知数据中的变化,以及基于变化的检测以产生刷洗数据命令。
在一些实施例中,存储器系统尚包括计时器电路,计时器电路配置用以:追踪经过的时间;以及判定经过的时间是否大于计时临界值,并且根据经过的时间大于计时临界值的判定以产生刷洗数据命令。
在一些实施例中,ECC存储器包括多个分区,并且数据存储器包括多个存储器地址范围,各分区对应到一个在数据存储器中的存储器地址范围。
在一些实施例中,ECC存储器包括一个具有多个ECC位的分区,并且ECC位的数目系基于与数据刷洗演算法相关联的ECC编码方法。
在一些实施例中,ECC存储器包括一组暂存器,其中:各暂存器对应到一ECC码字,各ECC码字对应到一个在数据存储器中的区段,并且各暂存器存储该区段的状态。
在一些实施例中,选自数据存储器和ECC存储器中的至少一者包括磁性随机存取存储器(MRAM)。
在一些实施例中,选自数据存储器和ECC存储器中的至少一者包括存储单元,其包括磁隧道结(MTJ),与具有位错误率在10-12至10-2之间的存储单元相比,具有选自以下特性中的一者:尺寸减小、矫顽磁场(coercive field)减弱、磁性各向异性减低,以及饱和磁化强度降低。
在一些实施例中,与具有位错误率在10-12至10-2之间的存储单元相比,MJT具有选自以下特性中的二者:尺寸减小、矫顽磁场场减弱、磁性各向异性减低,以及饱和磁化强度降低。
在一些实施例中,数据存储器包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM),或嵌入式DRAM(eDRAM)。
在一些实施例中,数据刷洗电路或主机配置用以判定数据存储器是否受到保护,以及ECC存储器系配置成:根据数据存储器受到保护的判定,用以存储ECC检查位;以及根据数据存储器未受保护的判定,用以存储运算数据。
在一些实施例中,数据存储器和ECC存储器包括在不同存储器电路中。
在一些实施例中,数据存储器和ECC存储器包括在同一存储器电路中。
在一些实施例中,存储器系统电耦合到主机装置。
在一些实施例中,数据存储器和ECC存储器包括存储单元,其包括有尺寸在20纳米至200纳米之间的MTJ,以及宽长比在1至200之间的MOS晶体管。
在一些实施例中,数据刷洗电路配置用以:接收数据保护命令;用于待保护数据中的各数据字,对接收保护命令作出回应:识别与数据字相关联的数据码字的地址;根据该地址判定该数据字是否在数据存储器中;对判定该数据字在数据存储器中作出回应,从数据存储器中读取该数据字;对判定该数据字不在数据存储器中作出回应:接收该数据字;并将该数据字写入数据存储器;对该数据字执行ECC编码运算;基于ECC编码运算以产生数据码字;在该地址将数据码字写入数据存储器;基于ECC编码运算以产生ECC检查位;将产生的ECC检查位写入ECC存储器中的对应分区。
在一些实施例中,数据刷洗电路配置用以:接收刷洗数据命令;以及用于各待刷洗数据字,对接收刷洗数据命令作出回应:识别:数据码字的起始地址和对应的ECC存储分区;从数据存储器中读取与起始地址相关联的数据字;从ECC存储器中读取与对应的ECC存储器分区相关联的ECC检查位;根据数据字和ECC检查位以执行ECC解码运算;基于ECC解码运算以判定数据字是否包括错误;对判定该数据字中包括错误作出回应,用数据字中的可纠错位取代错误位,其中包括有可纠错位的数据字为刷洗后的数据字;对判定数据字未包括错误作出回应,放弃以数据字中的可纠错位取代错误位,其中数据字为刷洗后的数据字;判定主机是否请求刷洗后的数据字;对判定主机请求刷洗后的数据作出回应,将刷洗后的数据字输出到存储器控制器,其电耦合到主机;对判定主机未请求刷洗后的数据作出回应,放弃将刷洗后的数据字输出到存储器控制器。
在一些实施例中,揭示一种操作存储器系统的方法,该存储器系统包括:数据存储器;ECC存储器;以及数据刷洗电路,其电耦合到ECC存储器和数据存储器,该方法包括:对接收刷洗数据命令作出回应,使用数据刷洗电路以纠正数据存储器中的错误。
在一些实施例中,用以纠错的码字长度比数据存储器正常存取期间使用的字长度长。
在一些实施例中,数据刷洗电路包括数据缓冲器、数据刷洗控制器、ECC编码电路,以及ECC解码电路。
在一些实施例中,该方法尚包括在数据存储器中纠正错误的同时存取数据存储器。
在一些实施例中,该方法尚包括使用环境干扰感测器以检测环境条件;以及基于检测的环境条件以产生刷洗数据命令。
在一些实施例中,环境条件包括温度和磁场中的至少一者。
在一些实施例中,该方法尚包括检测已知数据中的变化;以及基于变化的检测以产生刷洗数据命令。
在一些实施例中,该方法尚包括追踪经过的时间;判定经过的时间是否大于计时临界值,以及根据经过的时间大于计时临界值的判定以产生刷洗数据命令。
在一些实施例中,ECC存储器包括多个分区,以及数据存储器包括多个存储器地址范围,各分区对应到一个在数据存储器中的存储器地址范围。
在一些实施例中,ECC存储器包括一个分区,其具有多个与数据刷洗演算法相关联的ECC位,该方法尚包括使用该等ECC位以执行ECC编码方法。
在一些实施例中,ECC存储器包括一组暂存器,其中:各暂存器对应到一ECC码字,各ECC码字对应到一个在数据存储器中的区段,以及各暂存器存储该区段的状态。
在一些实施例中,选自数据存储器和ECC存储器中的至少一者包括磁性随机存取存储器(MRAM)。
在一些实施例中,选自数据存储器和ECC存储器中的至少一者包括存储单元,其包括有磁隧道结(MTJ),与具有位错误率在10-12至10-2之间的存储单元相比,具有选自以下特性中的一者:尺寸减小、矫顽磁场减弱、磁性各向异性减低,以及饱和磁化强度降低。
在一些实施例中,与具有位错误率10-12至10-2之间的存储单元相比,MTJ具有选自以下特性中的二者:尺寸减小、矫顽磁场减弱、磁性各向异性减低,以及饱和磁化强度降低。
在一些实施例中,数据存储器包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM),或嵌入式DRAM(eDRAM)。
在一些实施例中,该方法尚包括判定数据存储器是否受到纠错保护;以及根据数据存储器受到纠错保护的设定,将ECC检查位存储在ECC存储器中;以及根据数据存储器未受纠错保护的设定,将运算数据存储在ECC存储器中。
在一些实施例中,数据存储器和ECC存储器包括在不同存储器电路中。
在一些实施例中,数据存储器和ECC存储器包括在同一存储器电路中。
在一些实施例中,存储器系统电耦合到主机装置。
在一些实施例中,数据存储器和ECC存储器包括存储单元,其包括有尺寸在20纳米至200纳米之间的MTJ,以及宽长比在1至200之间的MOS晶体管。
在一些实施例中,该方法尚包括接收数据保护命令;用于待保护数据中的各数据字,对接收保护命令作出回应:识别与数据字相关联的数据码字的地址;根据该地址以判定该数据字是否在数据存储器中;对判定该数据字在数据存储器中作出回应,从数据存储器中读取该数据字;对判定该数据字不在数据存储器中作出回应:将该数据字写入数据存储器;对该数据字执行ECC编码运算;基于ECC编码运算以产生数据码字;在该地址将数据码字写入数据存储器;基于ECC编码运算以产生ECC检查位;将产生的ECC检查位写入ECC存储器中的对应分区。
在一些实施例中,该方法尚包括:用于各待刷洗数据字,对接收刷洗数据命令作出回应:识别:数据码字的起始地址和对应的ECC存储器分区;以及从数据存储器中读取与起始地址相关联的数据字;从ECC存储器中读取与对应的ECC存储器分区相关联的ECC检查位;基于数据字和ECC检查位以执行ECC解码运算;基于ECC解码运算以判定数据字是否包括错误;对判定数据字包括错误作出回应,用数据字中的可纠错位取代错误位,其中包括有可纠错位的数据字为刷洗后的数据字;对判定数据字未包括错误作出回应,放弃用数据字中的可纠错位取代错误位,其中数据字为刷洗后的数据字;判定主机是否请求刷洗后的数据字;对判定主机请求刷洗后的数据作出回应,将刷洗后的数据字输出到存储器控制器,其电耦合到主机;以及对判定主机未请求刷洗后的数据作出回应,放弃将刷洗后的数据字输出到存储器控制器。
在一些实施例中,存储器系统包括在选自以下项目中的一者中:人工智能边缘运算(edge-AI)系统、在数据中心的类神经网络系统、物联网系统、汽车电子系统、微控制器系统、行动通信系统、可编程运算系统、硬件安全系统、远程信息服务系统、生物医学电子装置,机器人,以及无人机。
在一些实施例中,存储器系统包括:第一存储器电路,其与第一位错误率相关联;第二存储器电路,其与第二位错误率相关联,其中第一位错误率大于第二位错误率;以及存储在第一和第二存储器电路中的数据字,其中:数据字包括与第一位错误率相关联的第一分区,以及与第二位错误率相关联的第二分区,数据字的第一分区存储在第一存储器电路中,数据字的第二分区存储在第二存储器电路中。
在一些实施例中,存储器系统尚包括数据刷洗电路,其电耦合到第一存储器电路和第二存储器电路,其中:数据刷洗电路控制第一存储器电路以使第一错误率减少到第三错误率,数据刷洗电路控制第二存储器电路以使第二错误率减少到第四错误率,以及第一位错误率的减少幅度大于第二位错误率的减少幅度。
在一些实施例中,第一存储器电路包括第一存储单元,其包括有具有第一尺寸的第一磁隧道结(MTJ)和具有第一通道宽长(W/L)比的第一MOS晶体管,第二存储器电路包括第二存储单元,其包括有具有第二尺寸的第二MTJ和具有第二W/L比的第二MOS晶体管,第一尺寸大于第二尺寸,以及第一W/L比大于第二W/L比。
在一些实施例中,第一存储器电路包括存储单元,其包括有尺寸在40纳米至200纳米之间的MTJ和W/L比在2至200之间的MOS晶体管。
在一些实施例中,第二存储器电路包括存储单元,其包括有尺寸在20纳米至100纳米之间的MTJ和W/L比在1至100之间的MOS晶体管。
在一些实施例中,第一存储器电路使用第一读取电压、第一感测时间和第一字线(WL)电压,第二存储器电路使用第二读取电压、第二感测时间和第二WL电压,第一读取电压大于第二读取电压,第一感测时间大于第二感测时间,以及第一WL电压大于第二WL电压。
在一些实施例中,第一存储器电路使用第一写入电压、第一写入时间和第一WL电压.第二存储器电路使用第二写入电压、第二写入时间和第二WL电压,第一写入电压大于第二写入电压,第一写入时间大于第二写入时间,以及第一WL电压大于第二WL电压。
在一些实施例中,在浮点格式中,第一分区包括符号位、指数位和尾数位的较高阶部分。
在一些实施例中,在整数格式中,第一分区包括符号位和较高阶位。
在一些实施例中,在浮点格式中,第二分区包括尾数位的较低阶部分。
在一些实施例中,在整数格式中,第二分区包括较低阶位。
在一些实施例中,揭示一种操作存储器系统的方法,该存储器系统包括第一存储器电路和第二存储器电路,该方法包括:基于第一位错误率以判定待存储在存储器系统中的数据字的第一分区;基于第二位错误率以判定待存储在存储器系统中的数据字的第二分区,第一位错误率大于第二位错误率;将数据字的第一分区存储在第一存储器电路中;将数据字的第二分区存储在第二存储器电路中,其中:第一存储器电路与第一位错误率相关联,以及第二存储器电路与第二位错误率相关联。
在一些实施例中,该方法尚包括控制第一存储器电路以使第一错误率减少到第三错误率;以及控制第二存储器电路以使第二错误率减少到第四错误率,其中第一位错误率的减少幅度大于第二位错误率的减少幅度。
在一些实施例中,第一存储器电路包括第一存储单元,其包括有具有第一尺寸的第一MTJ和具有第一通道W/L比的第一MOS晶体管,第二存储器电路包括第二存储单元,其包括有具有第二尺寸的第二MTJ和具有第二W/L比的第二MOS晶体管,第一尺寸大于第二尺寸,以及第一W/L比大于第二W/L比。
在一些实施例中,第一存储器电路包括存储单元,其包括有尺寸在40纳米至200纳米之间的MTJ和W/L比在2至200之间的MOS晶体管。
在一些实施例中,第二存储器电路包括存储单元,其包括有尺寸在20纳米至100纳米之间的MTJ和W/L比在1至100之间的MOS晶体管。
在一些实施例中,该方法尚包括在第一存储器电路中使用第一读取电压、第一感测时间和第一WL电压;以及在第二存储器电路中使用第二读取电压、第二感测时间和第二WL电压,其中:第一读取电压大于第二读取电压,第一感测时间大于第二感测时间,以及第一WL电压大于第二WL电压。
在一些实施例中,该方法尚包括在第一存储器电路中使用第一写入电压、第一写入时间和第一WL电压;以及在第二存储器电路中使用第二写入电压、第二写入时间和第二WL电压,其中:第一写入电压大于第二写入电压,第一写入时间大于第二写入时间,以及第一WL电压大于第二WL电压。
在一些实施例中,在浮点格式中,第一分区包括符号位、指数位和尾数位的较高阶部分。
在一些实施例中,在整数格式中,第一分区包括符号位和较高阶位。
在一些实施例中,在浮点格式中,第二分区包括尾数位的较低阶部分。
在一些实施例中,在整数格式中,第二分区包括较低阶位。
在一些实施例中,存储器系统包括在选自以下项目中的一者中:人工智能边缘运算(edge-AI)系统、在数据中心的类神经网络系统、物联网系统、汽车电子系统、微控制器系统、行动通信系统、可编程运算系统、硬件安全系统、远程信息服务系统、生物医学电子装置,机器人,以及无人机。
在一些实施例中,一种存储器系统包括:数据输入;多层存储单元(MLC)阵列;写入电路,其电耦合到MLC阵列和数据输入;格雷码至二进制解码器电路,其电耦合到写入电路;读出电路,其电耦合到MLC阵列;二进制至格雷码编码器电路,其电耦合到读出电路和数据输入;存储器电路,配置用以存储ECC检查位;ECC编码器,其电耦合到存储器电路和二进制至格雷码编码器电路;ECC解码器,其电耦合到存储器电路和格雷码至二进制编码器电路并配置用以输出恢复的数据;以及数据刷洗控制器,配置用以控制存储器系统中的数据恢复。
在一些实施例中,MLC阵列包括存储器单元电路,其具有超过二个稳定物理状态。
在一些实施例中,存储器单元电路选自以下项目中的一者:组织为NOR单元的浮闸FLASH单元、组织为NAND单元的浮闸FLASH单元、组织为NOR单元的电荷捕捉FLASH单元、组织为NAND单元的电荷捕捉FLASH单元、相变存储器(PCM)单元,以及电阻性存储器(RRAM)单元。
在一些实施例中,ECC编码器和解码器在选自以下项目中的一者中使用:汉明码、BCH码、里德-所罗门码,以及LDPC码。
在一些实施例中,存储器电路与MLC阵列位在不同集成电路上。
在一些实施例中,存储器电路位在MLC阵列的一预定分区中。
在一些实施例中,数据刷洗控制器配置对环境干扰的检测作出回应或对从主机接收到命令作出回应,用以在预定间隔启动数据刷洗操作。
在一些实施例中,一种对MLC进行数据刷洗的方法包括:从MLC读取数据,数据以二进制码或模拟值表示;将数据转换到格雷码;从配置用以存储ECC检查位的存储器电路中读取对应的检查位数据;运算可纠正错误在格雷码形式的数据中的位置并加以纠正;将纠正后的数据转换到二进制码或纠正后的模拟值;以及借由写入电路将纠正后的数据重写到MLC中的数据上。
在一些实施例中,MLC阵列包括存储器单元电路,其具有超过二个稳定物理状态。
在一些实施例中,存储器单元电路选自以下项目中的一者:组织为NOR单元的浮闸FLASH单元、组织为NAND单元的浮闸FLASH单元、组织为NOR单元的电荷捕捉FLASH单元、组织为NAND单元的电荷捕捉FLASH单元、相变存储器(PCM)单元,以及电阻性存储器(RRAM)单元。
在一些实施例中,该方法尚包括用选自以下项目中的一者进行ECC编码和解码:汉明码、BCH码、里德-所罗门码,以及LDPC码。
在一些实施例中,存储器电路与MLC阵列位在不同集成电路上。
在一些实施例中,存储器电路系位在MLC阵列的预定分区中。
在一些实施例中,该方法尚包括对环境干扰的检测作出回应或对从主机接收到命令作出回应,以预定间隔启动数据刷洗操作。
在一些实施例中,存储器系统包括在选自以下项目的一者中:人工智能边缘运算(edge-AI)系统、在数据中心的类神经网络系统、物联网系统、汽车电子系统、微控制器系统、行动通信系统、可编程运算系统、硬件安全系统、远程信息服务系统、生物医学电子装置、机器人,以及无人机。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1为根据实施例描绘包括有存储器系统的系统。
图2为根据实施例描绘数据存储器和ECC存储器。
图3为根据实施例描绘操作存储器系统的方法。
图4为根据实施例描绘操作存储器系统的方法。
图5为根据实施例描绘存储器系统。
图6为根据实施例描绘数据字分区。
图7为根据实施例描绘操作存储器系统的方法。
图8为根据实施例描绘存储器系统。
图9为根据实施例描绘数据恢复。
图10为根据实施例描绘操作存储器系统的方法。
图11为根据实施例描绘包括有存储器系统的系统。
图12为根据实施例描绘包括有存储器系统的运算装置范例。
具体实施方式
在以下的实施例说明中,参考附图作为说明的一部分,以举例方式显示可实行的特定实施例。不背离所揭示实施例的范围,当然可使用其他实施例,并且在结构上作出变化。
图1描绘包括有存储器系统100的存储器系统。在一些实施例中,存储器系统100是电耦合到主机160和存储器控制器170。在一些范例中,存储器系统100可在单个晶粒上包括超过1GB的存储空间。
在一些范例中,主机160或存储器控制器170可产生刷洗数据命令以启动在存储器系统100中对数据存储器的数据刷洗,或产生保护命令以启动在存储器系统100中对数据存储器的保护。在一些范例中,可借由主机160或存储器控制器170将产生启动刷洗数据命令的条件程式化。在一些范例中,可借由主机160或存储器控制器170将产生启动保护命令的条件程式化。
作为示范优点,存储器系统100可达成高效率的纠错和数据刷洗。例如,如以下的说明,存储器系统100的示范实施例与未使用所揭示刷洗数据命令的存储器系统相比,可对特定条件(如改变中的环境)作出回应以减低二到四倍的功率消耗,且不需降低实质效能或增加面积。未使用所揭示刷洗数据命令或所揭示保护命令的存储器系统会在可能不需要刷洗或保护(如位错误率足以满足系统要求)时进行数据刷洗或保护。这类存储器系统可能因为不加区别地保护或刷洗数据(如仅在系统开机或关机期间)而造成操作之低效率(如功率消耗较高、速度较慢)。在一些范例中,由于效率提高,可能放宽MRAM使用自旋转移力矩(STT)用于写入操作的设计要求。作为另一范例,可使用较为简单的MTJ制造过程(如可降低装置制造成本)以减少数据保留错误。作为又一范例,使用存储器系统100,MRAM装置可由于要求放宽而缩小线性尺寸多达70%。
本文所使用的“刷洗数据命令”是配置用以启动数据存储器的数据刷洗操作的命令,根据满足特定条件的判定以产生刷洗数据命令并将其传输到数据刷洗电路。这类特定条件可包括正常操作期间所识别的条件,例如环境条件、时间流逝,以及已知数据中的变化(如本文的说明)。正常操作包括(但不限于)读取和写入操作、列启动和预充电操作、更新操作、扇区写入和拭除操作、缺陷修复操作,以及耗损平均(wear-leveling)操作。当未满足这些特定条件时,不会产生刷洗数据命令,用以避免不必要的数据刷洗。例如,在传统存储器系统中,可在系统开机或关机期间自动刷洗数据。在所揭示存储器系统中,可仅对接收到刷洗数据命令作出回应以刷洗数据;开机或关机不足以导致刷洗数据命令的产生。
本文中使用的“保护命令”是配置用以启动数据存储器的数据保护的命令。根据满足特定条件的判定以产生保护命令并将其传输到数据刷洗电路。当未满足这些特定条件时,将不会产生保护命令,用以避免不必要的编码。例如,在传统的存储器系统中,可借由预设以保护数据。在所揭示存储器系统中,可仅对接收到保护命令才作出回应以保护数据。
例如,包括在存储器系统100中的高效能MRAM可高效率地进行保护或刷洗,并且更适用在人工智能边缘运算(edge-AI)(如智能音箱、行车记录器、无人机、机器人、自动驾驶汽车)或类神经网络应用,它们都要求更快速和更高效率的存储器(如高频宽和低潜期、类神经网络模型压缩后仍具高效能、在高温仍具高效能、不间断的数据存取)。写入机制为非确定性的存储器技术会面临高位错误率(BER)的困扰。存储器系统100使用所揭示数据刷洗和保护方法,可有利地在系统如自动驾驶汽车中能达成更稳固的操作。
存储器系统100可包括数据刷洗电路110、数据存储器120,以及ECC存储器130。在一些实施例中,数据存储器120是电脑系统的随机存取存储器(RAM)。在一些实施例中,数据存储器120和ECC存储器130是非易失性RAM。
在一些实施例中,数据刷洗电路110执行数据刷洗而不影响数据存储器120的读取或写入存取。借由在存储器数据存取的同时执行数据保护或数据刷洗,可减少存储器错误(如磁隧道结(MTJ)错误),不需增加关键电路的延迟(如以较高读取和写入速度来刷洗数据,在不影响额定读取和写入速度的情况下刷洗数据)。例如,延迟减少可允许存储器系统以每秒TB的频宽操作。
在一些实施例中,数据刷洗电路110包括ECC解码器电路和本埠暂存器,用以暂存在码字内与ECC码相关联的目前位置。在一些实施例中,数据存储器120系划分为多个子电路,通常称为存储库。各存储库可配置用以独立于其他存储库而操作。
作为范例,在保护或数据刷洗操作期间,存储器系统100可从主机(如人工智能边缘运算(edge-AI)系统)接收数据存取命令。当进行中的数据保护或数据刷洗操作在一存储库执行时,数据存取命令可与另一数据存储库上的操作(如读取数据、写入数据)相关联。在这种情况下,进行中的数据保护或数据刷洗操作可与数据存取同时进行。
当进行中的数据保护或数据刷洗操作是在同一数据存储库上执行时,数据存取命令可与数据存储库上的操作(如读取数据、写入数据)相关联。在这种情况下,数据刷洗控制器113可暂停数据保护或数据刷洗操作,并将数据存储库的控制让给数据存取操作如读取操作或写入操作。数据存取操作完成后,数据刷洗控制器取回数据存储库的控制,并且暂停的数据保护或数据刷洗操作从中断之前在ECC码字的位置(如对应地址)再开始。在一些范例中,在这段期间,数据刷洗控制器113可在另一存储库上执行数据保护或数据刷洗操作。
在一些范例中,数据刷洗电路或主机(如中央处理单元(CPU)、图形处理单元(GPU)、单芯片系统(SoC)、可编程处理器、特殊应用集成电路,或微控制器)是配置用以判定数据存储器是否受到保护(如数据刷洗电路或主机检查ECC存储器中的暂存器,用以查看对应区段是否受到纠错保护),以及ECC存储器是配置成根据数据存储器受到保护的判定以存储ECC检查位,以及根据数据存储器未受保护的判定以存储运算数据。例如,若数据存储器中的运算数据未受保护(如不需要ECC),则ECC存储器可用以存储额外的运算数据。如图显示,数据刷洗电路可电耦合到ECC存储器和数据存储器。作为示范优点,若未期望产品会在恶劣的环境中使用(如不在高温或高磁场环境中的穿戴电子装置),则可将ECC存储器的数据存储容量释出到主机系统。
在一些范例中,ECC存储器是配置成在第一时间用以存储运算数据,以及对保护数据命令的启动作出回应,更新ECC存储器以存储ECC检查位。在这些范例中,可将运算数据移到数据存储器中的空白区域、系统中的另一存储装置,或透过数据网络移到远端存储装置。若这些都不可行,则存储器系统可向主机传送一错误信息。
在一些实施例中,数据存储器和ECC存储器是包括在不同存储器电路中。例如,数据存储器和ECC存储器是包括在不同芯片上。在一些实施例中,数据存储器和ECC存储器是包括在同一存储器电路中。例如,数据存储器和ECC存储器是包括在同一芯片上。作为另一范例,数据存储器和ECC存储器是包括在同一存储器阵列中;例如,数据存储器是包括在阵列的第一部分中,以及ECC存储器是包括在阵列的第二部分中。
借由达成本文所述高效率纠错和数据刷洗的好处,存储单元可配置用以增强重写耐久性或效能、减低功率消耗,或这些期望特性的组合。这不需减低存储器系统的错误率便可达成(如所揭示系统的高效率纠错和数据刷洗可至少抵消与这些期望特性相关联的递增错误率)。
例如,写入操作的电压准位可降低5至50%,在不需减低存储器系统的错误率的情况下,增强存储单元的重写耐久性并减低功率消耗(如在不用额外的电路设计、减低写入操作期间的故障机率的情况下,写入电压或写入时间足以减轻装置与电路不匹配和/或随机STT效应)。作为另一范例,存储单元的读取操作的电压准位可增加5至50%,或者读取时间可减少5至50%,在不减低存储器系统的错误率的情况下,增强读取效能(如在不用额外的电路设计的情况下,读取电压或读取时间足以减轻装置与电路的不匹配,可减少读取干扰错误)。在一些范例中,用于1MB阵列,读取效能可提高到每秒超过7GB。
在一些实施例中,数据存储器可包括一部分磁性随机存取存储器(MRAM)。在一些实施例中,ECC存储器亦可包括一部分MRAM。在一些范例中,选自数据存储器和ECC存储器中的至少一者采用的存储单元,其包括有磁隧道结(MTJ),与具有位错误率在10-12至10-2之间的存储单元相比,具有选自以下特性中的一者:尺寸减小、矫顽磁场减弱、磁性各向异性减低,以及饱和磁化强度降低。在一些范例中,数据存储器和ECC存储器包括存储单元,其包括有尺寸在20纳米至200纳米之间的MTJ和宽长比在1至200之间的MOS晶体管。
在一些实施例中,数据存储器可包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM),或嵌入式DRAM(eDRAM)。在一些实施例中,ECC存储器可包括SRAM、DRAM,或eDRAM。例如,SRAM,DRAM或eDRAM可包括存储单元,其以次微米(如28纳米及其以下)技术实作,具有位错误率在10-16至10-10之间。因此,存储器系统100可有利地允许SRAM、DRAM或eDRAM工艺技术缩到较小的技术节点,不需牺牲功率、面积,或效能或软错误率(如读取干扰、写入错误、保留错误)等方面的优化。此外,使用存储器系统100,在较小技术节点的SRAM、DRAM或eDRAM可在更宽的温度区间工作以及更耐辐射。
在一些实施例中,数据刷洗电路是配置对接收刷洗数据命令作出回应,用以纠正存储器中的错误。当数据存储器可能不需要刷洗时(如位错误率(如可用位错误率(UBER)足以满足系统要求)),未利用所揭示刷洗数据命令的存储器系统会刷洗数据。这类存储器系统可能因为不加区别地刷洗数据而效率降低(如功率消耗较高,速度减慢)。借由包括有数据刷洗电路配置对接收刷洗数据命令作出回应以纠正数据存储器中的错误,可有效率地刷洗数据,避免不必要的刷洗。
在一些实施例中,用于纠错的码字长度比数据存储器正常存取期间使用的字长度长。例如,在正常存取期间的字组是ECC码字的一部分,以便这些字组受到ECC保护。意即,在正常读取操作期间(如存取正常存取字部分)不会使用到整个ECC码字。有很多方式用以处理写入操作,例如,码字长度可具有8192位的长度,而未编码字可具有64位的长度。
在一些实施例中,数据存储器120划分成多页,各页具有ECC码字长度的大小(如8192位)。当主机(如人工智能边缘运算(edge-AI)系统)发送带有数据字(如长度为64位的字)的写入命令时,数据刷洗控制器113会使用各页中包含的额外位(如页标记位)将数据字的目标页标记为“未受保护”。当数据刷洗控制器113在“未受保护”页上启动数据刷洗操作时,不会立即使用对应ECC存储器130中的ECC检查位数据。相反地,数据刷洗控制器会先执行保护操作以产生与新页数据相对应的一组ECC检查位,并在执行数据刷洗操作之前将页标记位从“未受保护”更新为“受保护”。
作为示范优点,在纠错期间较长的码字长度会提增效率,亦即需要较少数量的ECC检查位即可将原始位错误率(RBER)修正为所需的UBER。因此,存储器系统的尺寸可减小并且成本可降低。
在一些实施例中,数据刷洗电路110包括数据缓冲器111、ECC运算引擎112,以及数据刷洗控制器113。数据刷洗电路尚可配置用以使用与码字长度相关联的码字以纠正数据存储器中的错误。
例如,当启动数据刷洗命令时,从数据存储器120中读出与ECC码相关联的所有数据字(如ECC页),并且从ECC存储器130中读出与该ECC页相关联的ECC检查位。透过数据缓冲器111将数据字和ECC检查位发送到ECC运算引擎112。在一些范例中,数据缓冲器111可配置为先进先出(FIFO)存储器。在一些范例中,当ECC运算引擎112正执行ECC解码操作时,可暂停数据存储器120中读取数据字的正常数据存取(如从主机或存储器控制器来的读取请求)。在ECC运算引擎112已将ECC页解码后,检测到可纠正错误。可将ECC运算引擎检测到的错误的数量和位置发送到数据刷洗控制器113。借由将正确的数据写回到数据存储器120中的对应位置(如使用数据刷洗控制器)以纠正所有检测到的错误。
图2为根据实施例描绘数据存储器和ECC存储器。在一些实施例中,ECC存储器230包括多个分区,以及数据存储器包括多个存储器地址范围,各分区对应到一个在数据存储器中的存储器地址范围。例如,ECC存储器包括ECC检查位分区231,以及数据存储器包括ECC码字221。ECC检查位分区231可对应到与ECC码字221相关联的一个存储器地址范围。
在一些实施例中,ECC检查位分区包括多个ECC位,并且ECC位的数量基于与数据刷洗演算法相关联的ECC编码方法。例如,数据刷洗演算法是Bose、Chaudhuri和Hocquenghem(BCH)码和低密度奇偶校验(LDPC)码中的一者。在一范例中,在BCH(8640、8192、32)码中,448个ECC位是与8192位中的各ECC码字(如ECC页)相关联,并且能纠正ECC码字中的错误多达32个。作为示范优点,为实作此编码方案大约会需要耗用5.2%的面积以存储ECC检查位,相较之下,在64位字上使用2位ECC的系统中需耗用超过20%的面积。
例如,以下说明BCH编码的范例。可使用数据刷洗电路来执行BCH编码和解码。n-k维状态向量R(t)=(rn-k-1(t),rn-k-1(t),…,r1(t),r0(t))T,其中ri(t)代表第i个提醒暂存器在时间t的状态,而u(t)表示在时间t的单个位输入。R(t+1)可表示为:
(1)R(t+1)=A·R(t)+b·u(t),
其中矩阵A为
(2)以及向量b为
(3)b=(gn-k-1,gn-k-1,…,g1,g0)T.
递归地,R(t+p)可计算为
(4)R(t+p)=
Ap·R(t)+(Ap-1b,Ap-2b,…,b)·(u(t),u(t+1),…,u(t+p-1))T
Ap·R(t)+Bp·Up(t).
在一些实施例中,ECC存储器包括一组暂存器。各暂存器对应到一个ECC码字。各ECC码字对应到数据存储器中的一个区段。各暂存器存储该区段的状态。例如,暂存器可用以存储页标记位。
在一些实施例中,数据存储器220大体上与数据存储器120相似,并且ECC存储器230大体上与ECC存储器130相似。虽然使用区块描绘数据存储器和ECC存储器,但不背离本发明的范围,数据存储器和ECC存储器当然可包括在一或多个存储器阵列中。
在一些实施例中,存储器系统100包括环境干扰感测器140,其配置用以检测环境条件并基于检测到的环境条件以产生刷洗数据命令。在一些实施例中,环境条件包括选自温度和磁场中的至少一者。在一些实施例中,环境干扰感测器是包括在数据刷洗控制器(如数据刷洗控制器113)中。
例如,环境干扰感测器检测到温度达到临界值(如与临界位错误率相关联的临界温度)。对检测到温度达到临界值作出回应,数据刷洗控制器产生刷洗数据命令以启动数据存储器的数据刷洗。
作为另一范例,环境干扰感测器检测到磁场达到临界值(如与临界位错误率相关联的临界磁场强度)。对检测到磁场达到临界值作出回应,数据刷洗控制器产生刷洗数据命令以启动数据存储器的数据刷洗。
在一些实施例中,数据刷洗电路是配置用以检测已知数据(如主机或存储器系统100已知的数据,预定数据(如具有0和1交替的棋盘数据))中的变化,并基于变化的检测以产生刷洗数据命令。例如,MRAM可对高磁场(如大于100至1000奥斯特的磁场)敏感,并且高磁场可增加与已知数据相关联的错误机率。
作为另一范例,存储器可能对高温(如超过摄氏150度的温度)敏感,并且高温可增加与存储器相关联的错误机率。环境干扰感测器可检测温度达到特定温度临界值,并启动刷洗数据命令的产生以纠正因高温造成的错误数据。
虽然使用磁场和温度作为示范参数用于可能增加与存储器相关联的错误机率的环境条件检测,但是环境干扰感测器当然也可检测其他条件。例如,环境干扰感测器可检测电离辐射,电离辐射可导致基于电荷的存储器电路丢失数据。在另一范例中,环境干扰感测器可检测机械应力偏移。
作为示范优点,感测器和可编程闭环控制可管理存储器(如MRAM)以减轻由高温、温度波动、磁场或其他干扰造成的影响。因此,在不添加补偿电路的情况下,可在较高温度下或较宽温度范围下操作并增加的耐久性。例如,大约在室温,环境干扰感测器可判定不需要任何数据刷洗(如0%的存储器操作用于刷洗)。而在摄氏125度时,一个具有60%固有保留能力(intrinsic retention capability)的存储器装置(包括MTJ在内)可能只要2%额外读写操作即可刷洗全部数据。对照之下,其他系统会需要大于20%的额外操作才能在类似情况下纠正错误。
在一些实施例中,存储器系统100包括计时器电路150,配置用以追踪经过的时间并判定经过的时间是否大于计时临界值,以及根据经过的时间大于计时临界值的判定以产生刷洗数据命令。例如,存储器的位错误率(BER)与时间成比例地增加(如BER是累积的),并且计时临界值对应到临界BER(如系统BER要求)。计时器电路150追踪在开始时间(即ECC检查位生成的时间)之后的时间流逝(如在1微秒至100小时之间),并且可在数据存储器累积的BER超出ECC方法无法纠正的程度之前启动刷洗数据命令的产生。在一些实施例中,计时器电路150是包括在数据刷洗控制器(如数据刷洗控制器113)中。
图3为根据实施例描绘操作存储器系统的方法300。方法300包括步骤302,接收保护数据的命令。例如,从数据刷洗电路110、主机160或存储器控制器170接收保护命令。作为另一范例,在判定数据存储器需要保护(如达到温度、磁场、计时临界值,位错误率临界值)后接收保护命令。
作为示范优点,存储器系统可达成高效率的纠错和数据刷洗。例如,与不利用所揭示刷洗数据命令或所揭示保护命令的存储器系统相比,存储器系统100的示范实施例不用降低实质效能或增加面积即可减低四倍的功率消耗。不利用所揭示保护命令的存储器系统会在可能不需要保护(如位错误率已经满足系统要求时)时也会保护数据。这类的存储器系统因为不加区别地保护数据,因此可能效率不佳(如功率消耗较高,速度减慢)。例如,当没有接收到保护命令时,数据刷洗电路或存储ECC检查位的存储器的一部分或全部便会关机。借由使用保护数据命令,可有效率地保护数据,避免不必要的保护。
在一些实施例中,对接收到保护命令作出回应,执行方法300以用于待保护数据中的各数据字(步骤304)。例如,各待保护数据字可以是数据存储器120的一部分,例如数据存储器中具有较敏感位错误率的一部分。作为另一范例,各待保护数据字可以是数据存储器120的整体。在一些实施例中,循序地保护多个字。在一些实施例中,并行地保护多个字。
在一些实施例中,方法300包括步骤306,识别地址以用于与该数据字相关联的数据码字。例如,保护命令包括与待保护数据相关联的地址范围。作为另一范例,由主机识别与ECC码字221相关联的地址(如主机判定存储器中对系统功能较为重要的部分)。
在一些实施例中,方法300包括步骤308,根据地址以判定数据字是否在数据存储器中。例如,保护命令中加上一位用以指示数据字是否在数据存储器中。作为另一范例,数据刷洗电路110判定待保护数据字是否存储在数据存储器120中。
在一些实施例中,方法300包括步骤310,对判定数据字在数据存储器中作出回应,从数据存储器中读取数据字。例如,读取的数据是存储在缓冲存储器中。作为另一范例,数据刷洗电路110判定待保护数据字是存储在数据存储器120中,而从数据存储器120读取待保护数据字。
在一些实施例中,方法300包括步骤312,对判定数据字不在数据存储器中作出回应,接收数据字(步骤312a)并将数据字写入数据存储器(步骤312b)。例如,数据刷洗电路110判定数据字未存储在数据存储器120中而将数据字写入数据存储器120。在一些实施例中,待写入和受保护的数据字是由主机160提供。
在一些实施例中,方法300包括步骤314,在数据字上执行ECC编码运算。例如,基于数据刷洗演算法,将待保护数据字根据与数据刷洗演算法相关联的ECC编码运算进行编码。
在一些实施例中,方法300包括步骤316,基于ECC编码运算以产生数据码字。例如,基于ECC编码运算以产生ECC码字221。
在一些实施例中,方法300包括步骤318,在该地址将数据码字写入数据存储器。例如,在该地址将ECC码字221写入数据存储器220。
在一些实施例中,方法300包括步骤320,根据ECC编码运算以产生ECC检查位。例如,根据ECC编码运算,产生与ECC检查位分区221相关联的ECC检查位。
在一些实施例中,方法300包括步骤322,将所产生的ECC检查位写入ECC存储器中的对应分区。例如,将ECC检查位写入ECC检查位分区221。在一些实施例中,在完成保护命令的指示去保护数据存储器之后,发送完成信号以通知主机。
在一些实施例中,在集成电路的封装操作之前执行方法300以保护写入集成电路的存储器中的数据。作为示范优点,使用方法300的存储器系统在用于需要长期存储或需要经过标准封装方法过程(例如260℃,90秒)的时候会别具优势。例如,存储在非易失性存储器如MRAM和PCM中的数据在封装操作后会具有较高的错误率。
在一些实施例中,在集成电路的长时间存储之后执行方法300以保护写入集成电路的存储器中的数据。产生的ECC检查位可用以移除存储期间累积的错误,以提增产品的数据保留规格。
图4为根据实施例描绘操作存储器系统的方法400。方法400包括步骤402,接收刷洗数据命令。例如,从数据刷洗电路110、主机160或存储器控制器170接收刷洗数据命令。作为另一范例,在达到临界值(如温度、磁场、计时临界值、位错误率临界值)之后,数据刷洗控制器会送出刷洗数据命令。
作为示范优点,存储器系统可达成高效率的纠错和数据刷洗。例如,与不利用所揭示刷洗数据命令的存储器系统相比,如所讨论的,对特定条件作出回应,在不用牺牲实质效能或增加面积的情况下,存储器系统100的示范实施例的功耗可降低四倍。而不利用所揭示刷洗数据命令的存储器系统可能会在不需要刷洗(如在位错误率已经达到系统要求时)时刷洗或保护数据。因为不加区别地刷洗数据,这类的存储器系统可能效率不佳(如功率消耗较高,速度减慢)。例如,部分或全部的数据刷洗电路或存储ECC检查位的存储器可在没接收刷洗数据命令时关机。借由使用刷洗数据命令,可有效率地刷洗数据,无不必要的刷洗。
在一些实施例中,对接收刷洗数据命令作出回应,执行方法400以用于各待刷洗数据字(步骤404)。例如,各待刷洗数据字可以是数据存储器120的一部分,例如数据存储器中具有较敏感位错误率的一部分。作为另一范例,各待刷洗数据字可以是数据存储器120的整体。在一些实施例中,循序地刷洗多个待刷洗的字。在一些实施例中,并行地刷洗多个待刷洗的字。
在一些实施例中,方法400包括步骤406,识别:数据码字的起始地址(步骤406a)和对应的ECC存储器分区(步骤406b)。例如,刷洗数据命令中包含有与待刷洗数据相关联的地址。作为另一范例,由主机识别与ECC码字221相关联的地址和ECC检查位分区231(如主机判定存储器中对系统功能最重要的部分)。
在一些实施例中,方法400包括步骤408,从数据存储器中读取与起始地址相关联的数据字。例如,读取的数据系存储在缓冲存储器中。作为另一范例,从数据存储器中读取与数据码字相关联的数据字。
在一些实施例中,方法400包括步骤410,从ECC存储器中读取与对应ECC存储器分区相关联的ECC检查位。例如,从ECC存储器230中读取与ECC检查位分区231相关联的ECC检查位。
在一些实施例中,方法400包括步骤412,基于数据字和ECC检查位以执行ECC解码运算。例如,基于数据刷洗演算法,ECC运算引擎112根据数据字和与ECC检查位分区231相关联的ECC检查位以执行ECC解码运算。
在一些实施例中,方法400包括步骤414,基于ECC解码运算以判定数据字是否存在错误。例如,基于数据刷洗演算法和ECC解码运算,ECC运算引擎112判定数据字是否有错误。
在一些实施例中,方法400包括步骤416,对判定数据字存在错误作出回应,以数据字中的可纠错位取代错误位,其中包括有可纠错位的数据字是刷洗后的数据字。例如,ECC运算引擎112判定数据字存在错误,并且数据字包括可纠错位。作为回应,取代并纠正数据字的可纠错位,并且纠正后的数据字是刷洗后的数据字。
在一些实施例中,方法400包括步骤418,对判定数据字未包含错误作出回应,放弃以数据字中的可纠错位取代错误位,其中数据字是刷洗后的数据字。例如,ECC运算引擎112判定数据字未包含错误,并且作为回应,没有取代数据字中的任何位。
在一些实施例中,方法400包括步骤420,判定主机是否请求刷洗后的数据字。例如,主机160的请求是来自电脑系统(包括存储器系统100和主机160)的处理器的数据请求。
在一些实施例中,方法400包括步骤422,对判定主机请求刷洗后的数据作出回应,将刷洗后的数据字输出到和主机电耦合的存储器控制器。例如,对判定(如借由存储器控制器)主机做出数据请求作出回应,将刷洗后的数据字输出到存储器控制器并提供给主机,并且刷洗后的数据字驻留在数据存储器中。
在一些实施例中,方法400包括步骤424,对判定主机未请求刷洗后的数据作出回应,放弃将刷洗后的数据字输出到存储器控制器。例如,对判定(如借由存储器控制器)主机未做出数据请求作出回应,刷洗后的数据字驻留在数据存储器中,并不输出到存储器控制器。在一些实施例中,在基于刷洗数据的命令而送完刷洗数据存储器之后,发送完成信号以通知主机。
数据字的不同部分可对错误具有不同的敏感性。例如,比起较低阶位中的错误,在整数的最高有效位(MSB)中的错误将会造成更为严重的结果,其与所表示数值相关联。另外,许多现代运算应用程式如机器学习以及视频和图像处理)在本质上是容错的;在整个系统上强制执行保守的纠错方案可能并非必要。然而,传统的存储器电路可能依照同一数据字的所有部分都具有相同的错误率而设计。在这些传统的存储器电路中,会因为使用为了低容错而设计的存储器电路来存储可以容错较多的数据而浪费功率和面积。
图5为根据实施例描绘存储器系统500。在一些实施例中,存储器系统500是包括在存储器系统100中。在一些实施例中,存储器系统500可包括在机器学习或视频或成像处理系统中。
在一些实施例中,存储器系统500包括第一存储器电路502和第二存储器电路504。第一存储器电路502可与第一位错误率相关联,第二存储器电路504可与第二位错误率相关联,并且第一位错误率可大于第二位错误率。例如,第一位错误率是在10-16至10-12之间,并且第二位错误率是在10-12至10-6之间。
在一些实施例中,第一存储器电路502包括数据保护电路,如纠错编码电路、数据刷洗电路、冗余电路,或这些电路的组合,以使第一错误率减低到第三错误率。例如,系统可能无法容忍一部分的数据具有第一错误率;该数据部分可存储在第一存储器电路中,使第一错误率减低到第三错误率以满足系统要求。在一些实施例中,第一存储器电路502包括在写入操作之后配置用以验证数据并减低错误率的电路,或配置用以防止位反转(bit flip)并减少有效功率(active power)的电路。
在一些实施例中,第二存储器电路504包括数据保护电路,如纠错编码电路、数据刷洗电路、冗余电路,或这些电路的组合,以使错误率从第二错误率减低到第四错误率。在一些实施例中,第二存储器电路504包括在写入操作之后配置用以验证数据并减低错误率的电路,或者配置用以防止位反转并减少有效功率的电路。在一些实施例中,与第一存储器电路502中相当的电路相比,包括在第二存储器电路504中的这些电路可消耗更少的功率并且具有较小的面积。
在一些实施例中,数据字508是存储在第一存储器电路和第二存储器电路中。数据字508可包括与第一位错误率相关联的第一分区510和与第二位错误率相关联的第二分区512。数据字508的第一分区510可存储在第一存储器电路502中,以及数据字508的第二分区512可存储在第二存储器电路504中。
在一些实施例中,各分区的大小是由主机(如主机160)判定。例如,用于8位带符号的整数数据,主机可判定符号位和三个最高有效位是存储在与较低位错误率相关联的第一分区中,以及四个最低有效位是存储在与较高位错误率相关联的第二分区中。位的有效性可由软件所使用的数字格式来判定,并可将结果传达给主机。例如,从最高有效位到最低有效位的顺序可以是:符号位,指数位,尾数中的MSB到LSB。
在一些实施例中,对变化的条件作出回应以更新各分区的大小。例如,可基于影响存储器电路的磁场和温度条件以更新各分区的大小。作为另一范例,可判定第一存储器电路中的一分区不再重要,并可将该分区移到第二存储器电路。
数据字508可与地址516相关联。在一些实施例中,地址516对应到存储器电路中存储分区的位置。数据字可系实体地存储在不同分区中,但对存储器系统500(如主机,存储器控制器)的使用者而言,数据字看起来是存储在与地址516相关联的一个位置中。
在一些实施例中,存储器系统包括第三存储器电路506。数据字508可包括第三分区514,并且第三分区可存储在第三存储器电路506中。数据字508可不包括第三分区,并且数据字508可以是存储在第一存储器电路和第二存储器电路中。
虽然说明包括有两个存储器电路和三个存储器电路以及两个分区和三个分区的实施例,但是不背离本发明的范围,存储器系统当然可包括更多或更少的存储器电路,并且数据字可包括更多或更少的分区存储在各别存储器电路中。
在一些实施例中,存储器系统500包括有电耦合到第一存储器电路和第二存储器电路的数据刷洗电路516。数据刷洗电路516可控制第一存储器电路502,以使第一错误率减低到第三错误率,并且可控制第二存储器电路504,以使第二错误率减低到第四错误率。在一些实施例中,第一位错误率的减低幅度大于第二位错误率的减低幅度。例如,第三错误率是在10-20至10-16之间,第四错误率是在10-16至10-10之间。在一些实施例中,数据刷洗电路516和其他处理电路是与存储器电路在同一芯片上。在一些实施例中,数据刷洗电路516和其他处理电路是与存储器电路在不同芯片上。
作为示范优点,可减少功率和面积。例如,较多的电路面积或者功率消耗资源会适当地偏向具有较高位错误率或较高错误敏感的分区(如存储器中最重要的部分),而较少资源会适当地指向具有较低位错误率或较低错误敏感的分区(如不会浪费资源用于位错误率较低或错误敏感较低的分区);借此节省功率并减少纠错电路设计的面积。作为另一范例,运算应用如类神经网络应用、机器学习和视频或图像处理系统可以是容错的,并且数据的一些部分可对错误较不敏感。借由区分数据中具有较小错误敏感度的部分,可减少存储器电路的功率和面积的消耗。
作为另一示范优点,在大数值数据如类神经网络参数中,存储器系统的设计可据数据字内的位对错误的敏感度而有效率地划分,从而避免使用不必要的运算资源。
在一些实施例中,第一存储器电路502包括第一存储单元,其包括具有第一尺寸的第一磁隧道结(MTJ)和具有第一通道宽长(W/L)比的第一MOS晶体管。第二存储器电路504包括第二存储单元,其包括具有第二尺寸的第二MTJ和具有第二W/L比的第二MOS晶体管。第一尺寸大于第二尺寸,并且第一W/L比大于第二W/L比。
例如,第一存储器电路包括存储单元,其包括尺寸在40纳米至200纳米之间的MTJ和W/L比在2至200之间的MOS晶体管。作为另一范例,其中第二存储器电路包括存储单元,其包括尺寸在20纳米至100纳米之间的MTJ和W/L比在1至100之间的MOS晶体管。
作为示范优点,可减少面积。例如,较多面积(如具有较低错误率的较大装置)会适当地偏向具有较高位错误率或较高错误敏感的分区(如存储器中最重要的部分),而较少面积(如具有较低错误率的较小装置)会适当地指向具有较低位错误率或较低错误敏感的分区(如不会浪费面积用于具有较低位错误率或较低错误敏感的分区);借此减少存储器电路的面积。作为另一范例,运算应用如机器学习和视频或图像处理系统可以是容错的,并且数据的一些部分可以对错误较不敏感。借由划分数据中具有较小错误敏感的部分,可减少存储器电路的面积。
在一些实施例中,第一存储器电路502使用第一读取电压、第一感测时间和第一字线(WL)电压,以及第二存储器电路504使用第二读取电压、第二感测时间和第二WL电压。第一读取电压大于第二读取电压,第一感测时间大于第二感测时间,以及第一WL电压大于第二WL电压。
例如,第一读取电压是在50毫伏特至300毫伏特之间的范围内,或者第一感测时间是在3纳秒至500纳秒之间的范围内,或是两者,用以减少感测错误率。在读取操作过程中,第一WL电压可在额定闸极电压的100%至200%之间的范围内以用于存取晶体管。第二读取电压可在30毫伏特至100毫伏特的范围内,或者第二感测时间可在2纳秒至100纳秒的范围内,或是两者,用以减少读出功率消耗。在读取操作过程中,第二WL电压可在额定闸极电压的70%至150%之间的范围内以用于存取晶体管。
在一些实施例中,第一存储器电路502使用第一写入电压、第一写入时间和第一字线(WL)电压,以及第二存储器电路504使用第二写入电压、第二写入时间和第二WL电压。第一写入电压大于第二写入电压,第一写入时间大于第二写入时间,以及第一WL电压大于第二WL电压。
例如,第一写入电压是在500毫伏特至1500毫伏特的范围内,或较长的写入时间是在5纳秒至1000纳秒的范围内,或是两者,用以减低写入错误率。在写入操作过程中,第一WL电压可在额定闸极电压的100%至300%之间的范围内以用于存取晶体管。第二写入电压可在300毫伏特至1000毫伏特之间的范围内,或者较短的写入时间可在2纳秒至500纳秒之间的范围内,或是两者,用以减少写入功率消耗。在写入操作过程中,第二WL电压可在额定闸极电压的70%至200%之间的范围内以用于存取晶体管。
作为示范优点,可减少功率。例如,较多资源(如较高电压、较长感测/写入时间)将会适当地偏向具有较高位错误率或较高错误敏感的分区(如存储器中最重要的部分),而较少资源(如较低电压、较短感测/写入时间)将会适当地指向具有较低位错误率或较低错误敏感的分区(如不会浪费资源用于具有较低位错误率或较低错误敏感的分区);借此节省读取及/或写入功率。作为另一范例,运算应用如机器学习和视频或图像处理系统可以是容错的,并且数据的一些部分可能对错误较不敏感。借由划分数据中具有较小错误敏感的部分,可减少功率。
图6为根据实施例描绘数据字分区。在一些实施例中,数据字600包括分区602和604。例如,数据字600包括以标准单精确度格式(standard single-precision format)形成的分区,划分成对错误较敏感的位(MESB)(如分区602)和对错误较不敏感的位(LESB)(如分区604)。在一些实施例中,分区602和604大体上与分区510和512相似,并且数据字600可存储在存储器系统500中。在一些实施例中,数据字600的长度是2的乘幂。
在一些范例中,数据字600是在浮点格式中。第一分区602包括符号位、指数位和尾数位的较高阶部分,并且第二分区604包括尾数位的较低阶部分。在一些范例中,数据字600是在整数格式中,第一分区602包括符号位和较高阶位,并且第二分区604包括较低阶位。
虽然关于数据字600说明包括二分区的实施例,但不背离本发明的范围,数据字600当然可包括更多分区,各分区与位错误率相关联。
图7为根据实施例描绘操作存储器系统的方法。在一些实施例中,方法700包括步骤702,基于第一位错误率以判定待存储在存储器系统中的数据字的第一分区。例如,判定(如由主机根据与数据相关联的系统容错性,根据数据字600的数字格式)分区602对错误较敏感(如具有较高错误率)。
在一些实施例中,方法700包括步骤704,基于第二位错误率以判定待存储在存储器系统中的数据字的第二分区,第一位错误率大于第二位错误率。例如,判定(如由主机)分区604与第一分区相比,对错误较不敏感(如与第一分区相比,具有较低错误率)。
在一些实施例中,方法700包括步骤706,将数据字的第一分区存储在第一存储器电路中。例如,第一分区602存储在第一存储器电路502中。第一存储器电路502可配置用以纠正具有第一位错误率的数据。
在一些实施例中,方法700包括步骤708,将数据字的第二分区存储在第二存储器电路中。例如,第二分区604存储在第二存储器电路504中。第二存储器电路504可配置用以纠正具有第二位错误率的数据。
在一些实施例中,第一存储器电路是与第一位错误率相关联,第二存储器电路是与第二位错误率相关联。例如,存储器电路502是与第一位错误率相关联,存储器电路504是与第二位错误率相关联,并且第二位错误率大于第一位错误率。
图8为根据实施例描绘存储器系统。存储器系统800包括:数据输入802;多层存储单元(MLC)存储器阵列804;写入电路806,电耦合到MLC存储器阵列和数据输入;格雷码至二进制解码器电路808,电耦合到写入电路;读出电路810,电耦合到MLC存储器阵列;二进制至格雷码编码器电路812,电耦合到读出电路和数据输入;存储器电路814,配置用以存储ECC检查位;ECC编码器816,电耦合到存储器电路和二进制至格雷码编码器电路;ECC解码器818,电耦合到存储器电路和格雷码至二进制编码器电路且配置用以输出恢复的数据;以及数据刷洗控制器820,配置用以控制存储器系统中的数据恢复。
在一些范例中,可借由表示具有多重状态或连续模拟特征的矩阵被乘数,将多层存储单元(MLC)装置用于存储器中的运算操作(如在类神经网络运算中)。在一些实施例中,MLC是模拟存储器。存储器装置在操作期间可能呈现漂移,可能会逐渐改变矩阵被乘数的值。作为示范优点,存储器系统800使用格雷码在数据经历漂移之后有效率地加以恢复(如在简单的“读取和恢复”操作无法纠正有错误数据之前纠正漂移);可降低数据重新刷新的频率。格雷编码是一种数字数据表示形式,其中相邻状态相差一个位。此特性有利地确保装置状态中的小变化只改变少数的位,减少纠错电路的需求,借此减少与存储器相关联的纠错电路的功率和面积。
在一些实施例中,存储器电路814与MLC存储器804是位在不同集成电路上。例如,存储器电路、ECC编码器电路和ECC解码器电路是在同一芯片上,该芯片与MLC存储器804所在的芯片不同。在一些实施例中,MLC存储器804和存储器电路814是在同一芯片上。例如,MLC存储器804和存储器电路814可包括在同一存储器阵列中。在一些情况下,存储器电路可位于MLC存储器阵列的预定分区中(如MLC存储器阵列和存储器电路是包括在同一存储器中)。
在一些实施例中,MLC存储器阵列包括存储器单元电路,具有超过二个稳定物理状态。例如,存储器单元电路可具有八个稳定状态,并且各稳定状态表示二进制中从零到七的数字。在一些实施例中,MLC存储器阵列包括模拟存储器装置(如配置用以存储一系列连续值的模拟装置)。例如,存储器单元电路可以是选自以下项目中的一者:组织为NOR单元的浮闸FLASH单元、组织为NAND单元的浮闸FLASH单元、组织为NOR单元的电荷捕捉FLASH单元、组织为NAND单元的电荷捕捉FLASH单元、相变存储器(PCM)单元,以及电阻性存储器(RRAM)单元。
在一些实施例中,ECC编码器和解码器使用选自下列项目中的一者:汉明码、BCH码、里德-所罗门码,以及LDPC码。在一些范例中,检查位存储器(check-bit memory)814中的检查位大小是由ECC方法决定的。在一些实施例中,读出电路810包括模拟至数字转换器(ADC)。
在一些实施例中,数据刷洗控制器820大体上类似于数据刷洗电路110,但是使用于MLC存储器。在一些实施例中,存储器系统800包括环境干扰感测器140及/或计时器150,用以判定何时应启动数据刷洗。在一些范例中,数据刷洗控制器是配置成对环境干扰的检测作出回应(如使用环境干扰感测器140,如在本文的说明),或如在本文所说明,对从主机接收命令作出回应,以预定间隔(如使用计时器150,如在本文所说明)启动数据刷洗操作。例如,可周期性地读出数据并且在数据上进行数据刷洗以减轻数据中的漂移。
图9为根据实施例描绘数据恢复。二进制值902对应到格雷码值904;各列的上限值和下限值在数学上是同等的。曲线906对应到可存储在MLC存储器中的各离散值的理想范围(如电压)。在一些情况下,由于如装置漂移的非理想情况,曲线可能偏离曲线906。例如,由于漂移,对应到曲线908中的二进制值“100”的曲线向右位移;在这些范例中,包括“100”的数据可能错误地被改变成“101”。可使用存储器系统800或方法1000以恢复对应到“100”的理想水准。
图10为根据实施例描绘操作存储器系统的方法1000。方法1000包括步骤1002,从MLC存储器中读取数据,数据是以二进制码或模拟值表示。例如,使用读出电路810从MLC存储器804读取部分或全部的数据。可循序或并行地读取和刷洗数据。当并行地读取和刷洗数据时,存储器系统800可包括超过一个非存储器阵列元件(如读出电路、格雷码编码器/解码器、ECC存储器、ECC编码器/解码器、写入电路),以使MLC数据的同时数据刷洗能达成。
在一些实施例中,方法1000包括步骤1004,将数据转换成格雷码。例如,二进制至格雷码编码器电路812将读取的数据转换成格雷码。
在一些实施例中,方法1000包括步骤1006,从配置用以存储ECC检查位的存储器电路中读取对应的检查位数据。例如,读取ECC检查位,其对应到存储器电路814中的读取数据,用以在读取的数据上执行数据刷洗操作。
在一些实施例中,方法1000包括步骤1008,用格雷码运算数据中可纠正错误的位置。例如,在读取的数据上执行ECC操作之后,基于ECC操作的结果,数据刷洗控制器820运算可纠正错误的位置(如基于解码后的ECC字元)。
在一些实施例中,方法1000包括步骤1010,用格雷码纠正数据中的可纠正错误。例如,基于ECC方法,数据刷洗控制器820用格雷码纠正可纠正错误。
在一些实施例中,方法1000包括步骤1012,将纠正后的数据转换成二进制码或纠正后的模拟值。例如,使用格雷码至二进制解码器电路808将纠正后的格雷码数据转换回二进制值(如用于MLC存储器)或纠正后的模拟值(如在模拟存储器中)。
在一些实施例中,方法1000包括步骤1014,利用写入电路将纠正后的数据重写在MLC存储器中的数据上。例如,若判定正刷洗的数据有错误,则使用写入电路806将纠正并转换后的数据写入存储器804。
虽然已参考图8至图10说明特定架构和方法,但不背离本发明的范围,所揭示的MLC或模拟存储器当然可对纠错MLC或模拟存储器运用二进制纠错架构和方法。
图11为根据实施例描绘包括有存储器系统的系统1100。系统1100可包括:存储器系统1110(如存储器系统100、500、800),电耦合到存储器控制器1120;处理器1130;直接存储器存取(DMA)控制器1140;周边界面1150;即时计时器(RTC)1160;以及其他电路1170。系统1100的示范元件是电耦合到汇流排数据总线1180。在一些实施例中,系统1100是可携式电子装置(如智能型手表或智能型手机)的一部分。在一些实施例中,系统1100是机器学习系统的一部分。在一些实施例中,系统1100是分散式信息收集和处理网络(如云端、类神经网络)的一部分。
在一些实施例中,存储器系统1110是包括在选自以下项目中的一者:人工智能边缘运算(edge-AI)系统、在数据中心的类神经网络系统、物联网系统、汽车电子系统、微控制器系统、行动通信系统、可编程运算系统(例如FPGA)、硬件安全系统、远程信息服务系统、生物医学电子装置、机器人,以及无人机。
图12系根据实施例描绘运算装置1200的范例。在一些实施例中,装置1200是配置用以耦合到所揭示系统,并且配置用以执行与本文所揭示系统相关联的操作方法。
装置1200可以是连接到网络的电脑主机。装置1200可以是客户端电脑或伺服器。如图12所示,装置1200可以是任何合适类型基于微处理器的装置,如专用运算装置、个人电脑、工作站、伺服器、手持运算装置(可携式电子装置)如手机或平板电脑、人工智能边缘运算(edge-AI)装置,或类神经网络装置。例如,该装置可包括一或多个处理器1202、输入装置1206、输出装置1208、存储器1210,以及通信装置1204。输入装置1206和输出装置1208通常可对应到以上所揭示者,并且可连接到电脑或与电脑一体成型。
输入装置1206可以是提供输入的任何合适装置,如相机感测器、触控萤幕、键盘或小键盘、滑鼠,或语音识别装置。输出装置1208可以是提供输出的任何合适装置,如照明器、触控萤幕、触觉装置,或音箱扬声器。
存储器1210可以是提供存储的任何合适装置,如包括有电、磁或光学存储器的RAM、快取存储器、硬碟,或可移除式存储磁碟。在一些范例中,存储器1210包括存储器系统100、500,或800。通信装置1204可包括能透过网络传送和接收信号的任何合适装置,如网络界面芯片或装置。电脑的组件可依任何合适方式加以连接,如经由实体汇流排或无线方式。
软件1212,其可存储在存储器1210中并由处理器1210执行,例如可包括将本发明的功能具体化(如具体化在上述装置中)的程式设计。
软件1212尚可存储及/或传输到非暂时性、电脑可读的任何存储媒体内,供指令执行系统、设备或装置(如上述者)使用或与其连接而使用,存储媒体从指令执行系统,设备或装置撷取与软件相关联的指令并执行指令。在本发明的上下文中,电脑可读存储媒体可以是任何媒体,如存储器1210,其可包含或存储程式设计,供指令执行系统、设备或装置使用或与其连接而使用。
软件1212尚可在任何传输媒体内传播,以供指令执行系统、设备或装置(如上述者)使用或与其连接而使用,传输媒体可从指令执行系统、设备或装置中撷取与软件相关联的指令并执行指令。在本发明的上下文中,传输媒体可以是可通信、传播或传输程式设计以供指令执行系统、设备或装置使用或与其连接而使用的任何媒体。传输可读取媒体可包括(但不限于)电子、磁性、光学、电磁,或红外线有线或无线传播媒体。
装置1200可连接到网络,网络可以是任何合适类型的互连通信系统。网络可实作任何合适的通信协议,并且可由任何合适的安全协议来保护。网络可包括任何合适安排的网络连结,其可实作网络信号的发送和接收,如无线网络连接、T1或T3线路、缆线网络、数字用户线路(DSL),或电话线。
装置1200可实作任何适合在网络上操作的作业系统。软件1212可用任何合适的程序语言编写,如C、C++、Java或Python。在各种实施例中,使本发明的功能具体化的应用软件可部署在不同配置中,如在主从式安排中或透过网页浏览器,例如作为基于网络的应用程式或网络服务。
在一方面,存储器系统包括:数据存储器;ECC存储器;以及数据刷洗电路,其电耦合到ECC存储器和数据存储器。
在上述存储器系统的一些方面,数据刷洗电路是配置对接收刷洗数据命令作出回应,用以纠正数据存储器中的错误。
在上述存储器系统的一些方面,用以纠错的码字长度比数据存储器正常存取期间使用的字长度长。
在上述存储器系统的一些方面,数据刷洗电路包括数据缓冲器、数据刷洗控制器、ECC编码电路,以及ECC解码电路。
在上述存储器系统的一些方面,数据刷洗电路是配置在存取数据存储器的同时用以纠正数据存储器中的错误。
在上述存储器系统的一些方面,存储器系统尚包括环境干扰感测器,配置用以检测环境条件,并且其中数据刷洗电路是基于检测到的环境条件以产生刷洗数据命令。
在上述存储器系统的一些方面,环境条件包括温度和磁场中的至少一者。
在上述存储器系统的一些方面,数据刷洗电路是配置用以检测已知数据中的变化并基于变化的检测以产生刷洗数据命令。
在上述存储器系统的一些方面,存储器系统尚包括计时器电路,配置用以:追踪经过的时间;以及判定经过的时间是否大于计时临界值,并根据经过的时间大于计时临界值的判定以产生刷洗数据命令。
在上述存储器系统的一些方面,ECC存储器包括多个分区,以及数据存储器包括多个存储器地址范围,各分区对应到数据存储器中的一个存储器地址范围。
在上述存储器系统的一些方面,ECC存储器包括一个具有多个ECC位的分区,以及ECC位的数目系基于与数据刷洗演算法相关联的ECC编码方法。
在上述存储器系统的一些方面,ECC存储器包括一组暂存器,其中:各暂存器对应到一个ECC码字,各ECC码字对应到数据存储器中的一区段,并且各暂存器存储该区段的状态。
在上述存储器系统的一些方面,选自数据存储器和ECC存储器中的至少一者包括磁性随机存取存储器(MRAM)。
在上述存储器系统的一些方面,选自数据存储器和ECC存储器中的至少一者包括存储单元,其包括有磁隧道结(MTJ),与具有位错误率在10-12至10-2之间的存储单元相比,具有选自以下特性中的一者:尺寸减小、矫顽磁场减弱、磁性各向异性减低,以及饱和磁化强度降低。
在上述存储器系统的一些方面中,与位错误率在10-12至10-2之间的存储单元相比,MJT具有选自以下特性中的二者:尺寸减小、矫顽磁场减弱、磁性各向异性减低,以及饱和磁化强度降低。
在上述存储器系统的一些方面,数据存储器包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM),或嵌入式DRAM(eDRAM)。
在上述存储器系统的一些方面,数据刷洗电路或主机是配置用以判定数据存储器是否受到保护,以及ECC存储器是配置用以:根据数据存储器受到保护的判定以存储ECC检查位;以及根据数据存储器未受保护的判定以存储运算数据。
在上述存储器系统的一些方面,数据存储器和ECC存储器是包括在不同存储器电路中。
在上述存储器系统的一些方面,数据存储器和ECC存储器是包括在同一存储器电路中。
在上述存储器系统的一些方面,存储器系统是电耦合到主机装置。
在上述存储器系统的一些方面,数据存储器和ECC存储器包括存储单元,其包括有尺寸在20纳米至200纳米之间的MTJ,以及宽长比在1至200之间的MOS晶体管。
在上述存储器系统的一些方面,数据刷洗电路是配置用以:接收数据保护命令以用于数据;以及用于待保护数据中的各数据字,对接收到保护命令作出回应:识别地址以用于与数据字关联的数据码字;根据该地址以判定该数据字是否在数据存储器中;对判定该数据字在数据存储器中作出回应,从数据存储器中读取该数据字;对判定该数据字不在数据存储器中作出回应:接收该数据字;并将该数据字写入数据存储器;在该数据字上执行ECC编码运算;基于ECC编码运算以产生数据码字;在该地址将数据码字写入数据存储器;基于ECC编码运算以产生ECC检查位;并且将产生的ECC检查位写入ECC存储器中的对应分区。
在上述存储器系统的一些方面,数据刷洗电路是配置用以:接收刷洗数据命令;用于各待刷洗数据字,对接收到刷洗数据命令作出回应:识别:数据码字的起始地址和对应的ECC存储器分区;从数据存储器中读取与起始地址相关联的数据字;从ECC存储器中读取与对应的ECC存储器分区相关联的ECC检查位;基于数据字和ECC检查位以执行ECC解码运算;基于ECC解码运算以判定数据字是否包括错误;对判定数据字中包括错误作出回应,用数据字中的可纠错位取代错误位,其中包括可纠错位的数据字是刷洗后的数据字;对判定数据字不包括错误作出回应,放弃用数据字中的可纠错位取代错误位,其中数据字是刷洗后的数据字;判定主机是否请求刷洗后的数据字;对判定主机请求刷洗后的数据作出回应,将刷洗后的数据字输出到存储器控制器,其电耦合到主机;对判定主机未请求刷洗后的数据作出回应,放弃将刷洗后的数据字输出到存储器控制器。
在一方面,揭示一种操作存储器系统的方法,该存储器系统包括:数据存储器;ECC存储器;以及数据刷洗电路,其电耦合到ECC存储器和数据存储器。该方法包括:对接收刷洗数据命令作出回应,使用数据刷洗电路以纠正数据存储器中的错误。
在上述方法的一些方面,用以纠错的码字长度是比数据存储器正常存取期间使用的字长度长。
在上述方法的一些方面,数据刷洗电路包括数据缓冲器、数据刷洗控制器、ECC编码电路,以及ECC解码电路。
在上述方法的一些方面,该方法尚包括在纠正数据存储器中的错误的同时存取数据存储器。
在上述方法的一些方面,该方法尚包括使用环境干扰感测器以检测环境条件;并且基于检测到的环境条件以产生刷洗数据命令。
在上述方法的一些方面,环境条件包括温度和磁场中的至少一者。
在上述方法的一些方面,该方法尚包括检测已知数据中的变化;以及基于变化的检测以产生刷洗数据命令。
在上述方法的一些方面,该方法尚包括追踪经过的时间;判定经过的时间是否大于计时临界值,以及根据经过的时间大于计时临界值的判定以产生刷洗数据命令。
在上述方法的一些方面,ECC存储器包括多个分区,以及数据存储器包括多个存储器地址范围,各分区分别对应到数据存储器中的一个存储器地址范围。
在上述方法的一些方面,ECC存储器包括一分区,其具有与数据刷洗演算法相关联的多个ECC位,该方法尚包括使用该等ECC位以执行ECC编码方法。
在上述方法的一些方面,ECC存储器包括一组暂存器,其中:各暂存器对应到一ECC码字,各ECC码字对应到数据存储器中的一区段,并且各暂存器存储该区段的状态。
在上述方法的一些方面,选自数据存储器和ECC存储器中的至少一者包括磁性随机存取存储器(MRAM)。
在上述方法的一些方面,选自数据存储器和ECC存储器中的至少一者包括存储单元,其包括有磁隧道结(MTJ),与位错误率在10-12至10-2之间的存储单元相比,具有选自以下特性中的一者:尺寸减小、矫顽磁场减弱、磁性各向异性减低,以及饱和磁化强度降低。
在上述方法的一些方面,与具有位错误率在10-12至10-2之间的存储单元相比,MJT具有选自以下特性中的二者:尺寸减小、矫顽磁场减弱、磁性各向异性减低,以及饱和磁化强度降低。
在上述方法的一些方面,数据存储器包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM),或嵌入式DRAM(eDRAM)。
在上述方法的一些方面,该方法尚包括判定数据存储器是否受到保护;根据数据存储器受到保护的判定,将ECC检查位存储在ECC存储器中;以及根据数据存储器未受保护的判定,将运算数据存储在ECC存储器中。
在上述方法的一些方面,数据存储器和ECC存储器是包括在不同存储器电路中。
在上述方法的一些方面,数据存储器和ECC存储器是包括在同一存储器电路中。
在上述方法的一些方面,存储器系统是电耦合到主机装置。
在上述方法的一些方面,数据存储器和ECC存储器包括存储单元,其包括有尺寸在20纳米至200纳米之间的MTJ和宽长比(width-to-length ratio)在1至200之间的MOS晶体管。
在上述方法的一些方面,该方法尚包括:接收数据保护命令;用于待保护数据中的各数据字,对接收保护命令作出回应:识别与数据字相关联的数据码字的地址;基于该地址以判定数据字是否在数据存储器中;对判定数据字在数据存储器中作出回应,从数据存储器中读取数据字;对判定数据字不在数据存储器中作出回应:接收数据字;将数据字写入数据存储器;在数据字上执行ECC编码运算;基于ECC编码运算以产生数据码字;在该地址将数据码字写入数据存储器;基于ECC编码运算以产生ECC检查位;将产生的ECC检查位写入ECC存储器中的对应分区。
在上述方法的一些方面,该方法尚包括:用于待刷洗的各数据字,对接收刷洗数据命令作出回应:识别:用于数据码字的起始地址,以及对应的ECC存储器分区;从数据存储器中读取与起始地址相关联的数据字;从ECC存储器中读取与对应的ECC存储器分区相关联的ECC检查位;基于数据字和ECC检查位以执行ECC解码运算;基于ECC解码运算以判定数据字是否包括错误;对判定数据字包括错误作出回应,用数据字中的可纠错位取代错误位,其中包括有可纠错位的数据字是刷洗后的数据字;对判定数据字不包括错误作出回应,放弃用数据字中的可纠错位取代错误位,其中数据字是刷洗后的数据字;判定主机是否请求刷洗后的数据字;对判定主机请求刷洗后的数据作出回应,将刷洗后的数据字输出到存储器控制器,其电耦合到主机;对判定主机未请求刷洗后的数据作出回应,放弃将刷洗后的数据字输出到存储器控制器。
在上述存储器系统的一些方面,存储器系统是包括在选自以下项目中的一者:人工智能边缘运算(edge-AI)系统、在数据中心的类神经网络系统、物联网系统、汽车电子系统、微控制器系统、行动通信系统、可编程运算系统、硬件安全系统、远程信息服务系统、生物医学电子装置、机器人,以及无人机。
在一方面,存储器系统包括:第一存储器电路,其与第一位错误率相关联;以及第二存储器电路,其与第二位错误率相关联,其中第一位错误率大于第二位错误率;以及数据字是存储在第一存储器电路和第二存储器电路中,其中:数据字包括第一分区,其与第一位错误率相关联,以及第二分区,其与第二位错误率相关联,数据字的第一分区存储在第一存储器电路中,数据字的第二分区存储在第二存储器电路中。
在上述存储器系统的一些方面,存储器系统尚包括数据刷洗电路,其电耦合到第一存储器电路和第二存储器电路,其中:数据刷洗电路控制第一存储器电路,以使第一错误率减少到第三错误率;数据刷洗电路控制第二存储器电路,以使第二错误率减少到第四错误率;以及第一位错误率的减少幅度大于第二位错误率的减少幅度。
在上述存储器系统的一些方面,第一存储器电路包括第一存储单元,其包括具有第一尺寸的第一磁隧道结(MTJ)和具有第一通道宽长(W/L)比的第一MOS晶体管;第二存储器电路包括第二存储单元,其包括具有第二尺寸的第二MTJ和具有第二W/L比的第二MOS晶体管,第一尺寸大于第二尺寸,并且第一W/L比大于第二W/L比。
在上述存储器系统的一些方面,第一存储器电路包括存储单元,其包括有尺寸在40纳米至200纳米之间的MTJ和W/L比在2至200之间的MOS晶体管。
在上述存储器系统的一些方面,第二存储器电路包括存储单元,其包括有尺寸在20纳米至100纳米之间的MTJ和W/L比在1至100之间的MOS晶体管。
在上述存储器系统的一些方面,第一存储器电路使用第一读取电压、第一感测时间和第一字线(WL)电压,第二存储器电路使用第二读取电压、第二感测时间和第二WL电压,第一读取电压大于第二读取电压,第一感测时间大于第二感测时间,并且第一WL电压大于第二WL电压。
在上述存储器系统的一些方面,第一存储器电路使用第一写入电压、第一写入时间和第一WL电压,第二存储器电路使用第二写入电压、第二写入时间和第二WL电压,第一写入电压大于第二写入电压,第一写入时间大于第二写入时间,并且第一WL电压大于第二WL电压。
在上述存储器系统的一些方面,在浮点格式中,第一分区包括符号位、指数位,以及尾数位的较高阶部分。
在上述存储器系统的一些方面,在整数格式中,第一分区包括符号位和较高阶位。
在上述存储器系统的一些方面,在浮点格式中,第二分区包括尾数位的较低阶部分。
在上述存储器系统的一些方面,在整数格式中,第二分区包括较低阶位。
在一方面,揭示一种操作存储器系统的方法,该存储器系统包括有第一存储器电路和第二存储器电路,该方法包括:基于第一位错误率以判定待存储在存储器系统中的数据字的第一分区;基于第二位错误率以判定待存储在存储器系统中的数据字的第二分区,第一位错误率大于第二位错误率;将数据字的第一分区存储在第一存储器电路中;以及将数据字的第二分区存储在第二存储器电路中,其中:第一存储器电路是与第一位错误率相关联,以及第二存储器电路是与该第二位错误率相关联。
在上述方法的一些方面,该方法尚包括控制第一存储器电路,以使第一错误率减少到第三错误率;以及控制第二存储器电路,以使第二错误率减少到第四错误率,其中第一位错误率的减少幅度大于第二位错误率的减少幅度。
在上述方法的一些方面,第一存储器电路包括第一存储单元,其包括具有第一尺寸的第一MTJ和具有第一通道W/L比的第一MOS晶体管;第二存储器电路包括第二存储单元,其包括具有第二尺寸的第二MTJ和具有第二W/L比的第二MOS晶体管,第一尺寸大于第二尺寸,并且第一W/L比大于第二W/L比。
在上述方法的一些方面,第一存储器电路包括存储单元,其包括有尺寸在40纳米至200纳米之间的MTJ和W/L比在2至200之间的MOS晶体管。
在上述方法的一些方面,第二存储器电路包括存储单元,其包括有尺寸在20纳米至100纳米之间的MTJ和W/L比在1至100之间的MOS晶体管。
在上述方法的一些方面,该方法尚包括:在第一存储器电路中使用第一读取电压、第一感测时间和第一WL电压;以及在第二存储器电路中使用第二读取电压、第二感测时间和第二WL电压,其中:第一读取电压大于第二读取电压,第一感测时间大于第二感测时间,以及第一WL电压大于第二WL电压。
在上述方法的一些方面,该方法尚包括:在第一存储器电路中使用第一写入电压、第一写入时间和第一WL电压;以及在第二存储器电路中使用第二写入电压、第二写入时间和第二WL电压,其中:第一写入电压大于第二写入电压,第一写入时间大于第二写入时间,以及第一WL电压大于第二WL电压。
在上述方法的一些方面,在浮点格式中,第一分区包括符号位,指数位,以及尾数位的较高阶部分。
在上述方法的一些方面,在整数格式中,第一分区包括符号位和较高阶位。
在上述方法的一些方面,在浮点格式中,第二分区包括尾数位的较低阶部分。
在上述方法的一些方面,在整数格式中,第二分区包括较低阶位。
在上述存储器系统的一些方面,存储器系统是包括在选自以下项目中的一者:人工智能边缘运算(edge-AI)系统、在数据中心的类神经网络系统、物联网系统、汽车电子系统、微控制器系统、行动通信系统、可编程运算系统、硬件安全系统、远程信息服务系统、生物医学电子装置、机器人,以及无人机。
在一方面,存储器系统包括:数据输入;多层存储单元(MLC)阵列;写入电路,其电耦合到MLC阵列和数据输入;格雷码至二进制解码器电路,其电耦合到写入电路;读出电路,其电耦合到MLC阵列;二进制至格雷码编码器电路,其电耦合到读出电路和数据输入;存储器电路,配置用以存储ECC检查位;ECC编码器,其电耦合到存储器电路和二进制至格雷码编码器电路;ECC解码器,其电耦合到存储器电路和格雷码至二进制编码器电路并配置用以输出恢复的数据;以及数据刷洗控制器,配置用以控制存储器系统中的数据恢复。
在上述存储器系统的一些方面,MLC阵列包括存储器单元电路,其具有超过二个稳定物理状态。
在上述存储器系统的一些方面,存储器单元电路是选自以下项目中的一者:组织为NOR单元的浮闸FLASH单元、组织为NAND单元的浮闸FLASH单元、组织为NOR单元的电荷捕捉FLASH单元、组织为NAND单元的电荷捕捉FLASH单元、相变存储器(PCM)单元,以及电阻性存储器(RRAM)单元。
在上述存储器系统的一些方面,ECC编码器和解码器使用选自以下项目中的一者:汉明码、BCH码、里德-所罗门码,以及LDPC码。
在上述存储器系统的一些方面,存储器电路是与MLC阵列位在不同集成电路上。
在上述存储器系统的一些方面,存储器电路是位于MLC阵列的预定分区中。
在上述存储器系统的一些方面,数据刷洗控制器是配置对环境干扰的检测作出回应或者对从主机接收到命令作出回应,用以在预定间隔启动数据刷洗操作。
在一方面,对MLC进行数据刷洗的方法包括:从MLC读取数据,该数据系以二进制码或模拟值表示;将数据转换成格雷码;从配置用以存储ECC检查位的存储器电路中读取对应的检查位数据;运算可纠正错误在格雷码形式的数据中的位置,并加以纠正;将纠正后的数据转换成二进制码或纠正后的模拟值;以及借由写入电路将纠正后的数据重写到MLC中的数据上。
在上述方法的一些方面,MLC阵列包括存储器单元电路,其具有超过二个稳定物理状态。
在上述方法的一些方面,存储器单元电路是选自以下项目中的一者:组织为NOR单元的浮闸FLASH单元、组织为NAND单元的浮闸FLASH单元、组织为NOR单元的电荷捕捉FLASH单元、组织为NAND单元的电荷捕捉FLASH单元、相变存储器(PCM)单元,以及电阻性存储器(RRAM)单元。
在上述方法的一些方面,该方法尚包括用选自以下项目中的一者进行ECC编码和解码:汉明码、BCH码、里德-所罗门码,以及LDPC码。
在上述方法的一些方面,存储器电路是与MLC阵列位在不同集成电路上。
在上述方法的一些方面,存储器电路是位于MLC阵列的预定分区中。
在上述方法的一些方面,该方法尚包括对检测到环境干扰作出回应,或者对从主机接收到命令作出回应,以预定间隔启动数据刷洗操作。
在上述存储器系统的一些方面,存储器系统是包括在选自以下项目中的一者中:人工智能边缘运算(edge-AI)系统、在数据中心的类神经网络系统、物联网系统、汽车电子系统、微控制器系统、行动通信系统、可编程运算系统、硬件安全系统、远程信息服务系统、生物医学电子装置、机器人,以及无人机。
虽然在本发明中使用“电耦合”和“耦合”来说明读出电路的两个元件之间的电连接,但是电连接当然不一定需要在组件的端子之间直接连接而耦合在一起。不背离本发明的范围,所述组件的不同组合和连接可达成定电流和可调偏置电压读出电路。例如,将电路连接在电耦合一起的组件的端子之间。在另一范例中,将闭合(导电)开关连接在耦合一起的组件的端子之间。在又一范例中,将附加元件连接在耦合一起的组件的端子之间,不会影响电路的定电流特性。例如,可添加缓冲器、放大器和被动电路元件,不会影响读出电路的特性并且不背离本发明的范围。
在一些实施例中,两个电耦合组件可以拓扑方式耦合。如在本文所使用,如果两个组件在一拓扑内或在拓扑的同一部分内彼此提供电影响,则为“以拓扑方式耦合”。例如,所揭示读出电路的参考感测器和第一电流源是电耦合在读出电路的同一支路上。
同样地,虽然在本发明中使用“非电耦合”来说明读出电路的两个元件之间的电力切断,但是电力切断当然不一定需要在要开关的组件的端子之间实质地打开。而且,“非耦合”不局限于表示阻止两个元件之间的电能传递。例如,将高阻抗元件连接在非耦合的组件的端子之间。在另一范例中,将开放(非导电)开关连接在断开的组件的端子之间,有效地断开组件。
通常,如本文使用的“大体上”一词是用以说明(多个)元件或数量理想地具有精确品质(如固定、相同、统一、相等、相似、成比例),但是实际上具有功能上同等于精确品质的品质。例如,将元件或数量描述为大体上固定或统一,可偏离该固定或统一值,只要偏差系在系统(如准确度要求等)的公差之内。作为另一范例,将两个元件或数量描述为大体上相等可以是近似相等,只要差异是在公差之内,在功能上不影响系统操作即可。
同样地,虽然以绝对意义描述一些元素或数量,不用”大体上”一词,但是这些元素和数量当然能具有功能上同等于绝对描述的品质。例如,在一些实施例中,将比率描述为1。然而,当然该比率可大于或小于1,只要该比率是在系统(如准确度要求等)的公差之内即可。
如本文使用“大体上相同的”感测器对给定的刺激产生相似的回应。例如,对于给定的温度变化,“大体上相同的”辐射热计产生相似的电阻变化。
虽然已参考附图充分描述所揭示的实施例,但是应注意的是,各种改变和修改对熟谙本领域的技术人员将是显而易见。这类的改变和修改应理解为包括在所揭示实施例如后附权利要求所限定的范围内。
在本文对所述各种实施例的说明中使用的术语仅为描述特定实施例的目的,并非意欲用于限制。如在所述各种实施例和后附权利要求的说明中使用的单数形式“一”、“一个”和“该”意欲用以包括多形式,除非在上下文另外清楚指明。而且,本文中使用的“及/或”一词当然是指并涵盖所列相关联项目中的一或多者的任何和所有可能组合。应进一步了解的是,当在本说明书使用“包含”、“包含有”,“包括”及/或“包括有”等词时明确指出所述特征、整数、步骤、操作、元件及/或组件的存在,但不排除一或多个其他特征、整数、步骤、操作、元件、组件及/或其群组的存在或添加。

Claims (80)

1.一种存储器系统,其特征在于,包括:
数据存储器;
ECC存储器;及
数据刷洗电路,其电耦合至ECC存储器及数据存储器,用以数据刷洗之码字长度比数据存储器正常存取期间使用的字长度长;
其中,正常存取期间不会使用到整个ECC码字,数据刷洗期间从数据存储器中读出与ECC码相关联的所有数据字,并且从ECC存储器中读出与该ECC码字相关联的ECC检查位,通过ECC检查位完成数据刷洗。
2.如权利要求1所述的存储器系统,其特征在于,数据刷洗电路系配置对接收刷洗数据命令作出回应,用以纠正数据存储器中之错误。
3.如权利要求1所述的存储器系统,其特征在于,数据刷洗电路包括数据缓冲器、数据刷洗控制器、ECC编码电路,及ECC解码电路。
4.如权利要求1所述的存储器系统,其特征在于,数据刷洗电路配置在存取数据存储器的同时用以纠正数据存储器中的错误。
5.如权利要求1所述的存储器系统,其特征在于,尚包括环境干扰感测器,配置用以检测环境条件,及其中数据刷洗电路系基于检测到的环境条件以产生刷洗数据命令。
6.如权利要求5所述的存储器系统,其特征在于,环境条件包括温度及磁场中的至少一者。
7.如权利要求1所述的存储器系统,其特征在于,数据刷洗电路配置用以检测已知数据中的变化,及基于变化的检测以产生刷洗数据命令。
8.如权利要求1所述的存储器系统,其特征在于:
存储器系统尚包括计时器电路,系配置用以:
追踪经过的时间;及
判定经过的时间是否大于计时临界值,及根据经过的时间大于计时临界值之判定以产生刷洗数据命令。
9.如权利要求1所述的存储器系统,其特征在于:
ECC存储器包括多个分区,及
数据存储器包括多个存储器地址范围,各分区对应至一个在数据存储器中的存储器地址范围。
10.如权利要求1所述的存储器系统,其特征在于:
ECC存储器包括一分区,其具有多个ECC位,及
ECC位的数目基于与数据刷洗演算法相关联的ECC编码方法。
11.如权利要求1所述的存储器系统,其特征在于:
ECC存储器包括一组暂存器,其中:
各暂存器对应至一ECC码字,
各ECC码字对应至一个在数据存储器中的区段,及
各暂存器存储该区段的状态。
12.如权利要求1所述的存储器系统,其特征在于,选自数据存储器及ECC存储器中的至少一者包括磁性随机存取存储器(MRAM)。
13.如权利要求1所述的存储器系统,其特征在于,选自数据存储器及ECC存储器中的至少一者包括存储单元,其包括磁隧道结(MTJ),与具有位错误率在10-12至10-2间之存储单元相比,具有选自以下特性中的一者:尺寸减小、矫顽磁场减弱、磁性各向异性减低,及饱和磁化强度降低。
14.如权利要求13所述的存储器系统,其特征在于,与具有位错误率在10-12至10-2间的存储单元相比,MJT具有选自以下特性中的二者:尺寸减小、矫顽磁场减弱、磁性各向异性减低,及饱和磁化强度降低。
15.如权利要求1所述的存储器系统,其特征在于,数据存储器包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM),或嵌入式DRAM(eDRAM)。
16.如权利要求1所述的存储器系统,其特征在于:
数据刷洗电路或主机配置用以判定数据存储器是否受到保护,及
ECC存储器配置成:
根据数据存储器受到保护的判定,用以存储ECC检查位;及
根据数据存储器未受保护的判定,用以存储运算数据。
17.如权利要求1所述的存储器系统,其特征在于,数据存储器及ECC存储器包括在不同存储器电路中。
18.如权利要求1所述的存储器系统,其特征在于,数据存储器及ECC存储器包括在同一存储器电路中。
19.如权利要求1所述的存储器系统,其特征在于,存储器系统电耦合至主机装置。
20.如权利要求1所述的存储器系统,其特征在于,数据存储器及ECC存储器包括存储单元,其包括尺寸在20纳米至200纳米间的MTJ,及宽长比在1至200间的MOS晶体管。
21.如权利要求1所述的存储器系统,其特征在于,数据刷洗电路系配置用以:
接收用于数据的保护命令;及
用于待保护数据中的各数据字,对接收保护指令作出回应:
识别与数据字相关联的数据码字的地址;
根据该地址以判定该数据字是否在数据存储器中;
对判定该数据字在数据存储器中作出回应,从数据存储器中读取该数据字;
对判定该数据字不在数据存储器中作出回应:
接收该数据字;及
将该数据字写入数据存储器中;
在该数据字上执行ECC编码运算;
基于ECC编码运算以产生数据码字;
在该地址将该数据码字写入数据存储器中;
基于ECC编码运算以产生ECC检查位;及
将产生的ECC检查位写入ECC存储器中的对应分区。
22.如权利要求1所述的存储器系统,其特征在于,数据刷洗电路配置用以:
接收数据刷洗命令;
用于各待刷洗数据字,对接收刷洗数据命令作出回应:
识别:
数据码字的起始地址,及
对应的ECC存储器分区;
从数据存储器中读取与起始地址相关联的数据字;
从ECC存储器中读取与对应ECC存储器分区相关联的ECC检查位;
基于数据字及ECC检查位以执行ECC解码运算;
基于ECC解码运算以判定数据字是否包括错误;
对判定数据字包括错误作出回应,以数据字中的可纠错位取代错误位,其中包括有可纠错位的数据字刷洗后之数据字;
对判定数据字未包括错误作出回应,放弃以数据字中的可纠错位取代错误位,其中数据字系刷洗后的数据字;
判定主机是否请求刷洗后的数据字;
对判定主机请求刷洗后的数据作出回应,将刷洗后的数据字输出至存储器控制器,其电耦合至主机;及
对判定主机未请求刷洗后的数据作出回应,放弃将刷洗后的数据字输出至该存储器控制器。
23.一种操作存储器系统的方法,其特征在于,该存储器系统包括:
数据存储器;
ECC存储器;及
数据刷洗电路,其电耦合至ECC存储器及数据存储器,
该方法包括:
对接收刷洗数据命令作出回应,使用数据刷洗电路以纠正数据存储器中的错误,用以数据刷洗之码字长度比数据存储器正常存取期间使用的字长度长;
其中,正常存取期间不会使用到整个ECC码字,数据刷洗期间从数据存储器中读出与ECC码相关联的所有数据字,并且从ECC存储器中读出与该ECC码字相关联的ECC检查位,通过ECC检查位完成数据刷洗。
24.如权利要求23所述的方法,其特征在于,数据刷洗电路包括数据缓冲器、数据刷洗控制器、ECC编码电路,及ECC解码电路。
25.如权利要求23所述的方法,其特征在于,尚包括在数据存储器中纠正错误的同时存取数据存储器。
26.如权利要求23所述的方法,其特征在于,尚包括:
使用环境干扰感测器以检测环境条件;及
基于检测到的环境条件以产生刷洗数据命令。
27.如权利要求26所述的方法,其特征在于,环境条件包括温度及磁场中的至少一者。
28.如权利要求23所述的方法,其特征在于,尚包括:
检测已知数据中的变化;及
基于变化的检测以产生刷洗数据命令。
29.如权利要求23所述的方法,其特征在于,尚包括:
追踪经过的时间;
判定经过的时间是否大于计时临界值,及
根据经过的时间大于计时临界值的判定以产生刷洗数据命令。
30.如权利要求23所述的方法,其特征在于:
ECC存储器包括多个分区,及
数据存储器包括多个存储器地址范围,各分区对应至一个在数据存储器中的存储器地址范围。
31.如权利要求23所述的方法,其特征在于,ECC存储器包括一分区,其具有多个与数据刷洗演算法相关联的ECC位,该方法尚包括使用该ECC位以执行ECC编码方法。
32.如权利要求23所述的方法,其特征在于:
ECC存储器包括一组暂存器,其中:
各暂存器对应至一ECC码字,
各ECC码字对应至一个在数据存储器中的区段,及
各暂存器存储该区段的状态。
33.如权利要求23所述的方法,其特征在于,选自数据存储器及ECC存储器中的至少一者包括磁性随机存取存储器(MRAM)。
34.如权利要求23所述的方法,其特征在于,选自数据存储器及ECC存储器中的至少一者包括存储单元,其具有磁隧道结(MTJ),与位错误率在10-12至10-2间的存储单元相比,具有选自以下特性中的一者:尺寸减小、矫顽磁场减弱、磁性各向异性减低,及饱和磁化强度降低。
35.如权利要求34所述的方法,其特征在于,与具有位错误率在10-12至10-2间的存储单元相比,该MTJ具有选自以下特性中的二者:尺寸减小、矫顽磁场减弱、磁性各向异性减低,及饱和磁化强度降低。
36.如权利要求23所述的方法,其特征在于,数据存储器包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM),或嵌入式DRAM(eDRAM)。
37.如权利要求23所述的方法,其特征在于,尚包括:
判定数据存储器是否受到保护;
根据数据存储器受到保护的判定,将ECC检查位存储于ECC存储器中;及
根据数据存储器未受保护的判定,将运算数据存储于ECC存储器中。
38.如权利要求23所述的方法,其特征在于,数据存储器及ECC存储器包括在不同存储器电路中。
39.如权利要求23所述的方法,其特征在于,数据存储器及ECC存储器包括在同一存储器电路中。
40.如权利要求23所述的方法,其特征在于,存储器系统电耦合至主机装置。
41.如权利要求23所述的方法,其特征在于,数据存储器及ECC存储器包括存储单元,其包括尺寸在20纳米至200纳米间之MTJ,及宽长比在1至200间之MOS晶体管。
42.如权利要求23所述的方法,其特征在于,尚包括:
接收用于数据的保护命令;及
用于待保护数据中的各数据字,对接收保护指令作出回应:
识别与数据字相关联的数据码字的地址;
根据该地址判定该数据字是否在数据存储器中;
对判定该数据字在数据存储器中作出回应,从数据存储器中读取该数据字;
对判定该数据字不在数据存储器中作出回应:
接收该数据字;及
将该数据字写入数据存储器;
在该数据字上执行ECC编码运算;
基于ECC编码运算以产生数据码字;
在该地址将该数据码字写入数据存储器;
基于ECC编码运算以产生ECC检查位;及
将产生之ECC检查位写入ECC存储器中之对应分区。
43.如权利要求23所述的方法,其特征在于,尚包括:
用于各待刷洗数据字,对接收刷洗数据命令作出回应:
识别:
数据码字的起始地址,及
对应之ECC存储器分区;
从数据存储器中读取与起始地址相关联的数据字;
从ECC存储器中读取与对应的ECC存储器分区相关联的ECC检查位;
基于数据字及ECC检查位以执行ECC解码运算;
基于ECC解码运算以判定数据字是否包括错误;
对判定数据字包括错误作出回应,以数据字中的可纠错位取代错误位,其中包括有可纠错位的数据字为刷洗后的数据字;
对判定数据字未包括错误作出回应,放弃以数据字中的可纠错位取代错误位,其中数据字为刷洗后的数据字;
判定主机是否请求刷洗后的数据字;
对判定主机请求刷洗后的数据字作出回应,将刷洗后的数据字输出至存储器控制器,其电耦合至主机;及
对判定主机未请求刷洗后的数据字作出回应,放弃将刷洗后的数据字输出至存储器控制器。
44.如权利要求1至22项中任一所述的存储器系统,其特征在于,存储器系统包括在选自以下项目中的一者中:人工智能边缘运算(edge-AI)系统、在数据中心之类神经网络系统、物联网系统、汽车电子系统、微控制器系统、行动通信系统、可编程运算系统、硬件安全系统、远程信息服务系统、生物医学电子装置、机器人,及无人机。
45.一种存储器系统,其特征在于,包括:
第一存储器电路,其与第一位错误率相关联;
第二存储器电路,其与第二位错误率相关联,其中第一位错误率大于第二位错误率;
数据刷洗电路,其电耦合至第一存储器电路及第二存储器电路;及
存储于第一存储器电路及第二存储器电路中的数据字,其中:
数据字包括与第一位错误率相关联之第一分区,及与第二位错误率相关联之第二分区,
数据字之第一分区存储于第一存储器电路中,及
数据字之第二分区存储于第二存储器电路中,其中:
数据刷洗电路控制第一存储器电路,将第一错误率减少至第三错误率,
数据刷洗电路控制第二存储器电路,将第二错误率减少至第四错误率,
第一位错误率的减少幅度大于第二位错误率之减少幅度。
46.如权利要求45所述的存储器系统,其特征在于:
第一存储器电路包括第一存储单元,其包括具有第一尺寸的第一磁隧道结(MTJ)及具有第一通道宽长比(W/L)之第一MOS晶体管,
第二存储器电路包括第二存储单元,其包括具有第二尺寸的第二MTJ及具有第二W/L比的第二MOS晶体管,
第一尺寸大于第二尺寸,及
第一W/L比大于第二W/L比。
47.如权利要求45所述的存储器系统,其特征在于,第一存储器电路包括存储单元,其包括有尺寸在40纳米至200纳米间的MTJ,及W/L比在2至200间的MOS晶体管。
48.如权利要求45所述的存储器系统,其特征在于,第二存储器电路包括存储单元,其包括有尺寸在20纳米至100纳米间的MTJ,及W/L比在1至100间的MOS晶体管。
49.如权利要求45所述的存储器系统,其特征在于:
第一存储器电路使用第一读取电压、第一感测时间,及第一字线(WL)电压,
第二存储器电路使用第二读取电压、第二感测时间,及第二WL电压,
第一读取电压大于第二读取电压,
第一感测时间大于第二感测时间,及
第一WL电压大于第二WL电压。
50.如权利要求45所述的存储器系统,其特征在于:
第一存储器电路使用第一写入电压、第一写入时间,及第一WL电压,
第二存储器电路使用第二写入电压、第二写入时间,及第二WL电压,
第一写入电压大于第二写入电压,
第一写入时间大于第二写入时间,及
第一WL电压大于第二WL电压。
51.如权利要求45所述的存储器系统,其特征在于,在浮点格式中,第一分区包括符号位、指数位,及尾数位的较高阶部分。
52.如权利要求45所述的存储器系统,其特征在于,在整数格式中,第一分区包括符号位及较高阶位。
53.如权利要求45所述的存储器系统,其特征在于,在浮点格式中,第二分区包括尾数位的较低阶部分。
54.如权利要求45所述的存储器系统,其特征在于,在整数格式中,第二分区包括较低阶位。
55.一种操作存储器系统之方法,该存储器系统包括第一存储器电路及第二存储器电路,其特征在于,该方法包括:
基于第一位错误率以判定存储器系统中待存储数据字的第一分区;
基于第二位错误率以判定存储器系统中待存储数据字的第二分区,第一位错误率大于第二位错误率;
将数据字之第一分区存储于第一存储器电路中;及
将数据字之第二分区存储于第二存储器电路中,其中:
第一存储器电路与第一位错误率相关联,及
第二存储器电路与第二位错误率相关联;
控制第一存储器电路,将第一错误率减少至第三错误率;及
控制第二存储器电路,将第二错误率减少至第四错误率,其中第一位错误率的减少幅度大于第二位错误率的减少幅度。
56.如权利要求55所述的方法,其特征在于:
第一存储器电路包括第一存储单元,其包括具有第一尺寸的第一MTJ及具有第一通道W/L比的第一MOS晶体管,
第二存储器电路包括第二存储单元,其包括具有第二尺寸的第二MTJ及具有第二W/L比的第二MOS晶体管,
第一尺寸大于第二尺寸,及
第一W/L比大于第二W/L比。
57.如权利要求55所述的方法,其特征在于,第一存储器电路包括存储单元,其包括有具有尺寸在40纳米至200纳米间的MTJ,及具有W/L比在2至200间的MOS晶体管。
58.如权利要求55所述的方法,其特征在于,第二存储器电路包括存储单元,其包括有具有尺寸在20纳米至100纳米间的MTJ,及具有W/L比在1至100间的MOS晶体管。
59.如权利要求55所述的方法,其特征在于,尚包括:
在第一存储器电路中,使用第一读取电压、第一感测时间,及第一WL电压;及
在第二存储器电路中,使用第二读取电压、第二感测时间,及第二WL电压,其中:
第一读取电压大于第二读取电压,
第一感测时间大于第二感测时间,及
第一WL电压大于第二WL电压。
60.如权利要求55所述的方法,其特征在于,尚包括:
在第一存储器电路中,使用第一写入电压、第一写入时间,及第一WL电压;及
在第二存储器电路中,使用第二写入电压、第二写入时间,及第二WL电压,其中:
第一写入电压大于第二写入电压,
第一写入时间大于第二写入时间,及
第一WL电压大于第二WL电压。
61.如权利要求55所述的方法,其特征在于,在浮点格式中,第一分区包括符号位、指数位,及尾数位的较高阶部分。
62.如权利要求55所述的方法,其特征在于,在整数格式中,第一分区包括符号位及较高阶位。
63.如权利要求55所述的方法,其特征在于,在浮点格式中,第二分区包括尾数位的较低阶部分。
64.如权利要求55所述的方法,其特征在于,在整数格式中,第二分区包括较低阶位。
65.如权利要求45至54项中任一所述的存储器系统,其特征在于,存储器系统包括在选自以下项目中之一者中:人工智能边缘运算(edge-AI)系统、在数据中心的类神经网络系统、物联网系统、汽车电子系统、微控制器系统、行动通信系统、可编程运算系统、硬件安全系统、远程信息服务系统、生物医学电子装置、机器人,及无人机。
66.一种存储器系统,其特征在于,包括:
数据输入;
多层存储单元(MLC)阵列;
写入电路,其电耦合至MLC阵列及数据输入;
格雷码至二进制解码器电路,其电耦合至写入电路;
读出电路,其电耦合至MLC阵列;
二进制至格雷码编码器电路,其电耦合至读出电路及数据输入;
存储器电路,配置用以存储ECC检查位;
ECC编码器,其电耦合至存储器电路及二进制至格雷码编码器电路;
ECC解码器,其电耦合至存储器电路及格雷码至二进制编码器电路,及配置用以输出恢复的数据;及
数据刷洗控制器,配置用以控制存储器系统中的数据恢复。
67.如权利要求66所述的存储器系统,其特征在于,MLC阵列包括存储器单元电路,其具有超过二个稳定物理状态。
68.如权利要求67所述的存储器系统,其特征在于,存储器单元电路选自以下项目中的一者:组织为NOR单元的浮闸FLASH单元、组织为NAND单元的浮闸FLASH单元、组织为NOR单元的电荷捕捉FLASH单元、组织为NAND单元的电荷捕捉FLASH单元、相变存储器(PCM)单元,及电阻式存储器(RRAM)单元。
69.如权利要求66所述的存储器系统,其特征在于,ECC编码器及解码器在选自以下项目中的一者中使用:汉明码、BCH码、里德-所罗门码,及LDPC码。
70.如权利要求66所述的存储器系统,其特征在于,存储器电路与MLC阵列位于不同集成电路上。
71.如权利要求66所述的存储器系统,其特征在于,存储器电路位于MLC阵列的预定分区中。
72.如权利要求66所述的存储器系统,其特征在于,数据刷洗控制器配置对环境干扰的检测作出回应,或对从主机接收命令作出回应,以预定间隔启动数据刷洗操作。
73.一种对多层存储单元(MLC)进行数据刷洗的方法,其特征在于,包括:
从MLC读取数据,该数据系以二进制码或模拟值表示;及
将数据转换至格雷码;
从配置用以存储ECC检查位的存储器电路中读取对应的检查位数据;
运算可纠正错误在格雷码形式的数据中的位置;
纠正在格雷码形式的数据的可纠正错误;
将纠正后的数据转换至二进制码或纠正后的模拟值;及
利用写入电路将纠正后的数据重写至MLC中的数据上。
74.如权利要求73所述的方法,其特征在于,MLC阵列包括存储器单元电路,其具有超过二个稳定物理状态。
75.如权利要求74所述的方法,其特征在于,存储器单元电路选自以下项目中的一者:组织为NOR单元的浮闸FLASH单元、组织为NAND单元的浮闸FLASH单元、组织为NOR单元的电荷捕捉FLASH单元、组织为NAND单元为电荷捕捉FLASH单元、相变存储器(PCM)单元,及电阻式存储器(RRAM)单元。
76.如权利要求73所述的方法,其特征在于,尚包括在选自以下项目中的一者中进行ECC编码及解码:汉明码、BCH码、里德-所罗门码,及LDPC码。
77.如权利要求73所述的方法,其特征在于,使存储器电路与MLC阵列位于不同集成电路上。
78.如权利要求73所述的方法,其特征在于,使存储器电路位于MLC阵列的预定分区中。
79.如权利要求73所述的方法,其特征在于,尚包括对环境干扰的检测作出回应,或对从主机接收命令作出回应,以预定间隔启动数据刷洗操作。
80.如权利要求66至72项中任一所述的存储器系统,其特征在于,存储器系统系包括在选自以下项目中的一者中:人工智能边缘运算(Edge-AI)系统、在数据中心的类神经网络系统、物联网系统、汽车电子系统、微控制器系统、行动通信系统、可编程运算系统、硬件安全系统、远程信息服务系统、生物医学电子装置、机器人,及无人机。
CN201980067024.XA 2018-10-12 2019-10-11 带有纠错及数据刷洗电路的存储器系统 Active CN112930519B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201862745204P 2018-10-12 2018-10-12
US62/745,204 2018-10-12
US201862755702P 2018-11-05 2018-11-05
US62/755,702 2018-11-05
US201962886967P 2019-08-15 2019-08-15
US62/886,967 2019-08-15
PCT/US2019/055963 WO2020077283A1 (en) 2018-10-12 2019-10-11 Error correcting memory systems

Publications (2)

Publication Number Publication Date
CN112930519A CN112930519A (zh) 2021-06-08
CN112930519B true CN112930519B (zh) 2024-09-24

Family

ID=70164037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980067024.XA Active CN112930519B (zh) 2018-10-12 2019-10-11 带有纠错及数据刷洗电路的存储器系统

Country Status (7)

Country Link
US (3) US11204835B2 (zh)
EP (1) EP3864500A4 (zh)
JP (1) JP7224689B2 (zh)
KR (2) KR102687054B1 (zh)
CN (1) CN112930519B (zh)
TW (2) TWI792682B (zh)
WO (1) WO2020077283A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12034015B2 (en) 2018-05-25 2024-07-09 Meta Platforms Technologies, Llc Programmable pixel array
CN112930519B (zh) 2018-10-12 2024-09-24 美商若响半导体股份有限公司 带有纠错及数据刷洗电路的存储器系统
US11962928B2 (en) 2018-12-17 2024-04-16 Meta Platforms Technologies, Llc Programmable pixel array
US11888002B2 (en) 2018-12-17 2024-01-30 Meta Platforms Technologies, Llc Dynamically programmable image sensor
US12108141B2 (en) 2019-08-05 2024-10-01 Meta Platforms Technologies, Llc Dynamically programmable image sensor
US11935291B2 (en) 2019-10-30 2024-03-19 Meta Platforms Technologies, Llc Distributed sensor system
US11948089B2 (en) 2019-11-07 2024-04-02 Meta Platforms Technologies, Llc Sparse image sensing and processing
US11825228B2 (en) 2020-05-20 2023-11-21 Meta Platforms Technologies, Llc Programmable pixel array having multiple power domains
US12075175B1 (en) 2020-09-08 2024-08-27 Meta Platforms Technologies, Llc Programmable smart sensor with adaptive readout
CN116457761A (zh) * 2020-12-08 2023-07-18 华为技术有限公司 一种存储装置、存储控制装置及片上系统
US11935575B1 (en) * 2020-12-23 2024-03-19 Meta Platforms Technologies, Llc Heterogeneous memory system
US20220269599A1 (en) * 2021-02-25 2022-08-25 International Business Machines Corporation Sensor based memory array data scrubbing
TWI794967B (zh) 2021-09-10 2023-03-01 臺灣發展軟體科技股份有限公司 資料處理電路及故障修補方法
US11972822B2 (en) * 2021-09-24 2024-04-30 Sandisk Technologies Llc Programmable ECC for MRAM mixed-read scheme
US11640332B1 (en) * 2021-10-15 2023-05-02 Infineon Technologies Ag Execute in place architecture with integrity check
CN114822611B (zh) * 2022-06-27 2022-09-27 波平方科技(杭州)有限公司 用于近似计算的磁性存储芯片、模组及系统级封装芯片
CN115083487B (zh) * 2022-08-23 2022-12-06 北京灵汐科技有限公司 存储器件、存储方法、读取装置和读取方法
FR3140183A1 (fr) * 2022-09-22 2024-03-29 Stmicroelectronics (Rousset) Sas Procédé de gestion de la consommation d’un dispositif de mémoire lors de l’utilisation d’un code correcteur d’erreurs et système correspondant
CN115938461A (zh) * 2022-12-06 2023-04-07 上海美仁半导体有限公司 存储装置、纠错存储系统、芯片和车辆
WO2024206318A1 (en) * 2023-03-28 2024-10-03 Qualcomm Incorporated System and method for providing a processor boot for safety protected memories

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2447842A1 (en) * 2010-10-28 2012-05-02 Thomson Licensing Method and system for error correction in a memory array
CN102820049A (zh) * 2011-06-09 2012-12-12 三星电子株式会社 用于刷新以及数据清理存储器件的方法和装置
CN103137214A (zh) * 2011-11-21 2013-06-05 株式会社东芝 存储装置、纠错方法及存储系统

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6845472B2 (en) * 2000-01-25 2005-01-18 Hewlett-Packard Development Company, L.P. Memory sub-system error cleansing
US6832340B2 (en) * 2000-01-26 2004-12-14 Hewlett-Packard Development Company, L.P. Real-time hardware memory scrubbing
US6751769B2 (en) * 2000-06-06 2004-06-15 International Business Machines Corporation (146,130) error correction code utilizing address information
JP2003308698A (ja) 2002-04-12 2003-10-31 Toshiba Corp 不揮発性半導体メモリ装置
WO2004109709A1 (ja) 2003-06-06 2004-12-16 Fujitsu Limited 半導体記憶装置、および半導体記憶装置のビット線選択方法
US7080200B2 (en) 2003-08-14 2006-07-18 Hitachi Global Storage Technologies Netherlands B.V. System and method for handling writes in HDD using 4K block sizes
JP4993118B2 (ja) 2005-02-08 2012-08-08 日本電気株式会社 半導体記憶装置及び半導体記憶装置の読み出し方法
US7496823B2 (en) * 2005-03-16 2009-02-24 Hewlett-Packard Development Company, L.P. Hardware based memory scrubbing
US20060256615A1 (en) 2005-05-10 2006-11-16 Larson Thane M Horizontal and vertical error correction coding (ECC) system and method
US7562285B2 (en) * 2006-01-11 2009-07-14 Rambus Inc. Unidirectional error code transfer for a bidirectional data link
US8042029B2 (en) * 2006-05-21 2011-10-18 Ramot At Tel Aviv University Ltd. Error correction decoding by trial and error
US8041989B2 (en) * 2007-06-28 2011-10-18 International Business Machines Corporation System and method for providing a high fault tolerant memory system
US8255772B1 (en) * 2008-06-18 2012-08-28 Cisco Technology, Inc. Adaptive memory scrub rate
US20110258362A1 (en) * 2008-12-19 2011-10-20 Mclaren Moray Redundant data storage for uniform read latency
KR101069670B1 (ko) 2009-03-12 2011-10-04 주식회사 하이닉스반도체 반도체 메모리 장치
US8171234B2 (en) * 2009-03-16 2012-05-01 Mosys, Inc. Multi-bank multi-port architecture
US8775865B2 (en) * 2009-06-24 2014-07-08 Headway Technologies, Inc. Method and apparatus for scrubbing accumulated disturb data errors in an array of SMT MRAM memory cells including rewriting reference bits
US8769374B2 (en) * 2010-10-13 2014-07-01 International Business Machines Corporation Multi-write endurance and error control coding of non-volatile memories
US20120110411A1 (en) * 2010-10-29 2012-05-03 Brocade Communications Systems, Inc. Content Addressable Memory (CAM) Parity And Error Correction Code (ECC) Protection
US9116781B2 (en) 2011-10-17 2015-08-25 Rambus Inc. Memory controller and memory device command protocol
US8988954B2 (en) 2012-09-13 2015-03-24 Arm Limited Memory device and method of performing a read operation within such a memory device
US9065483B2 (en) * 2013-01-21 2015-06-23 Micron Technology, Inc. Determining soft data using a classification code
KR102024033B1 (ko) * 2013-03-04 2019-09-24 삼성전자주식회사 이동 통신 시스템에서 메모리 제어 방법 및 장치
US9136873B2 (en) * 2013-03-11 2015-09-15 Intel Corporation Reduced uncorrectable memory errors
US9268637B2 (en) * 2013-03-15 2016-02-23 Silicon Space Technology Corporation Memory circuit incorporating error detection and correction (EDAC), method of operation, and system
JP6130758B2 (ja) 2013-09-06 2017-05-17 株式会社東芝 メモリ制御回路およびキャッシュメモリ
WO2016143168A1 (en) * 2015-03-10 2016-09-15 Kabushiki Kaisha Toshiba Memory device and memory system
JP6047188B2 (ja) 2015-03-12 2016-12-21 インテル・コーポレーション クロスポイントアレイにおける結合キャパシタを利用したタイルレベルでのスナップバック検出
US9823962B2 (en) * 2015-04-22 2017-11-21 Nxp Usa, Inc. Soft error detection in a memory system
TWI566091B (zh) * 2015-09-10 2017-01-11 慧榮科技股份有限公司 用來對一錯誤更正碼進行解碼之方法與解碼電路
KR102435181B1 (ko) * 2015-11-16 2022-08-23 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
US9965352B2 (en) * 2015-11-20 2018-05-08 Qualcomm Incorporated Separate link and array error correction in a memory system
US9530513B1 (en) 2015-11-25 2016-12-27 Intel Corporation Methods and apparatus to read memory cells based on clock pulse counts
US9659604B1 (en) 2015-12-07 2017-05-23 Globalfoundries Inc. Dual-bit 3-T high density MTPROM array
US9823964B2 (en) * 2015-12-08 2017-11-21 Nvidia Corporation Method for memory scrub of DRAM with internal error correcting code (ECC) bits during either memory activate and/or precharge operation
US10049006B2 (en) * 2015-12-08 2018-08-14 Nvidia Corporation Controller-based memory scrub for DRAMs with internal error-correcting code (ECC) bits contemporaneously during auto refresh or by using masked write commands
US9880900B2 (en) * 2015-12-08 2018-01-30 Nvidia Corporation Method for scrubbing and correcting DRAM memory data with internal error-correcting code (ECC) bits contemporaneously during self-refresh state
US9646692B1 (en) 2015-12-10 2017-05-09 Macronix International Co., Ltd. Programming verify for nonvolatile memory
KR101795217B1 (ko) * 2016-03-07 2017-11-08 이화여자대학교 산학협력단 패리티가 포함된 전송 패킷을 인코딩 또는 디코딩하는 장치 및 방법
US20170286216A1 (en) * 2016-04-01 2017-10-05 Intel Corporation Energy efficient read/write support for a protected memory
US10042700B2 (en) * 2016-05-28 2018-08-07 Advanced Micro Devices, Inc. Integral post package repair
KR102647418B1 (ko) * 2016-06-23 2024-03-13 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
US10642492B2 (en) * 2016-09-30 2020-05-05 Amazon Technologies, Inc. Controlling access to previously-stored logic in a reconfigurable logic device
KR102508132B1 (ko) * 2016-10-31 2023-03-09 주식회사 멤레이 자기 저항 메모리 모듈 및 이를 포함하는 컴퓨팅 디바이스
KR20180060084A (ko) * 2016-11-28 2018-06-07 삼성전자주식회사 반도체 메모리 장치의 스크러빙 컨트롤러, 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
JP6538741B2 (ja) 2017-03-09 2019-07-03 株式会社東芝 管理装置、情報処理装置および管理方法
KR102410022B1 (ko) * 2017-11-24 2022-06-21 에스케이하이닉스 주식회사 에러스크럽방법 및 이를 이용한 반도체모듈
US11048434B2 (en) 2018-09-28 2021-06-29 Intel Corporation Compute in memory circuits with time-to-digital computation
CN112930519B (zh) * 2018-10-12 2024-09-24 美商若响半导体股份有限公司 带有纠错及数据刷洗电路的存储器系统
JP6945581B2 (ja) 2019-03-20 2021-10-06 ヤフー株式会社 情報処理装置、情報処理方法および情報処理プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2447842A1 (en) * 2010-10-28 2012-05-02 Thomson Licensing Method and system for error correction in a memory array
CN102820049A (zh) * 2011-06-09 2012-12-12 三星电子株式会社 用于刷新以及数据清理存储器件的方法和装置
CN103137214A (zh) * 2011-11-21 2013-06-05 株式会社东芝 存储装置、纠错方法及存储系统

Also Published As

Publication number Publication date
US12124332B2 (en) 2024-10-22
US20210311827A1 (en) 2021-10-07
US11204835B2 (en) 2021-12-21
JP7224689B2 (ja) 2023-02-20
US20220188187A1 (en) 2022-06-16
KR102657783B1 (ko) 2024-04-15
TW202230386A (zh) 2022-08-01
KR20240051328A (ko) 2024-04-19
CN112930519A (zh) 2021-06-08
KR20210075138A (ko) 2021-06-22
EP3864500A1 (en) 2021-08-18
KR102687054B1 (ko) 2024-07-22
JP2022508694A (ja) 2022-01-19
TWI792682B (zh) 2023-02-11
US20240054050A1 (en) 2024-02-15
WO2020077283A1 (en) 2020-04-16
EP3864500A4 (en) 2022-10-12
TW202025167A (zh) 2020-07-01
TWI750517B (zh) 2021-12-21
US11748194B2 (en) 2023-09-05

Similar Documents

Publication Publication Date Title
CN112930519B (zh) 带有纠错及数据刷洗电路的存储器系统
CN107203435B (zh) 非易失性存储器设备和所述非易失性存储器设备的操作方法
US8464137B2 (en) Probabilistic multi-tier error correction in not-and (NAND) flash memory
CN102385538B (zh) 半导体存储器件及其控制方法
CN107133122B (zh) 存储器控制方法
JP4538034B2 (ja) 半導体記憶装置、及びその制御方法
KR100842680B1 (ko) 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
CN107408069B (zh) 用于检测和缓解闪速存储器中的位线开路的装置和方法
US11211950B2 (en) Decoding device and decoding method
US9405624B2 (en) On-die error detection and correction during multi-step programming
KR20160051328A (ko) 데이터 복구 방법 및 이를 사용한 비휘발성 메모리 시스템
US10572189B2 (en) Method and decoder to adjust an error locator polynomial based on an error parity
US10804935B2 (en) Techniques for reducing latency in the detection of uncorrectable codewords
US11095310B2 (en) Error correction apparatus, operation method thereof and memory system using the same
US11106518B2 (en) Failure mode study based error correction
US10163500B1 (en) Sense matching for hard and soft memory reads
US10084487B2 (en) Apparatuses and methods for erasure-assisted ECC decoding
US9824778B2 (en) Nonvolatile memory system and data recovery method thereof
CN117909122A (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