CN106663472A - 非易失性存储器中的恢复算法 - Google Patents

非易失性存储器中的恢复算法 Download PDF

Info

Publication number
CN106663472A
CN106663472A CN201580044846.8A CN201580044846A CN106663472A CN 106663472 A CN106663472 A CN 106663472A CN 201580044846 A CN201580044846 A CN 201580044846A CN 106663472 A CN106663472 A CN 106663472A
Authority
CN
China
Prior art keywords
logic
xor
controller
data
memory devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201580044846.8A
Other languages
English (en)
Other versions
CN106663472B (zh
Inventor
R.H.莫特瓦尼
K.潘加尔
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN106663472A publication Critical patent/CN106663472A/zh
Application granted granted Critical
Publication of CN106663472B publication Critical patent/CN106663472B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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
    • 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
    • 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
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • 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 Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

描述了用于存储器中的恢复算法的装置、系统和方法。在一个实施例中,控制器包括逻辑用于以下的逻辑:从主机设备接收读取到存储器设备的数据行的读取请求,其中数据跨多个(N个)管芯散布并且包括跨所述多个(N个)管芯散布的纠错码(ECC);从存储器设备检索数据行;对从存储器设备检索到的数据行执行纠错码(ECC)校验;以及响应于从存储器设备检索到的数据行上的ECC校验中的错误而调用恢复算法。还公开和要求保护其它实施例。

Description

非易失性存储器中的恢复算法
技术领域
本公开一般涉及电子器件的领域。更特别地,本发明的一些实施例一般地涉及用于电子设备的存储器中的恢复算法。
背景技术
许多电子设备包括可以使用经常体现为非易失性存储器(例如闪速存储器等)的本地、快速访问存储器实现的存储器系统。在一些示例中,纠错码(ECC)可以用于保护数据以防原始位错误(RBER)。为了得到RBER多样性优点,ECC码字可以在多个管芯之上散布。ECC码字的示例可以包括BCH码、里德-所罗门码、低密度奇偶校验(LDPC)、卷积码、汉明码等。为了提供对管芯故障的弹性,RAID机制可以用于存储所有管芯的内容的XOR。
相应地,改进经加密的存储器中的RBER性能的技术可以例如在用于电子设备的存储器系统中找到实用性。
附图说明
参照随附各图来提供详细描述。在不同图中使用相同参考数字指示类似或等同的项目。
图1是依照本文所讨论的各种示例的实现非易失性存储器中的恢复算法的装置的组件的示意性框图图示。
图2-3是依照本文所讨论的各种示例的实现非易失性存储器中的写入操作中的恢复算法的存储器架构的示意性框图图示。
图4-5是图示了依照本文所讨论的各种实施例的实现非易失性存储器中的读取操作中的恢复算法的方法中的操作的流程图。
图6-10是可以适配成实现依照本文所讨论的各种实施例的存储器恢复管理的电子设备的示意性框图图示。
具体实施方式
在以下描述中,阐述众多具体细节以便提供对各种实施例的透彻理解。然而,本发明的各种实施例可以在没有所述具体细节的情况下实践。在其它实例中,并未详细描述公知的方法、过程、组件和电路以免使本发明的特定实施例模糊。另外,本发明的实施例的各种方面可以使用各种构件来执行,诸如集成半导体电路(“硬件”)、组织成一个或多个程序的计算机可读指令(“软件”)或硬件和软件的某种组合。出于本公开的目的,对“逻辑”的引用应当意味着硬件、软件或其某种组合。
图1是依照本文所讨论的各种示例的实现存储器中的恢复算法的装置的组件的示意性框图图示。参照图1,在一些实施例中,可以包括一个或多个处理器110的中央处理单元(CPU)封装100耦合到控制中枢120和本地存储器130。控制中枢120包括存储器控制器122和存储器接口124。
存储器接口124通过通信总线160耦合到远程存储器140。在一些示例中,通信总线160可以实现为印刷电路板上的迹线、具有铜导线的线缆、光纤线缆、连接插座或以上的组合。存储器140可以包括控制器142和一个或多个存储器设备150。在各种实施例中,存储器设备150中的至少一些可以使用以下来实现:易失性存储器,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM);或非易失性存储器,例如相变存储器、NAND(闪速)存储器、铁电随机存取存储器(FeRAM)、基于纳米线的非易失性存储器、合并忆阻器技术的存储器、三维(3D)交叉点存储器(诸如相变存储器(PCM))、自旋转移力矩存储器(STT-RAM)、磁阻随机存取存储器(MRAM)或NAND闪速存储器。存储器140中的(一个或多个)存储器设备150的具体配置不是关键的。
在其中数据跨存储器140中的存储器设备150中的多个管芯存储的一些示例中,ECC码字可以类似地跨多个管芯存储。在图2中描绘的示例中,数据可以跨存储器中的数个(N个)管芯拆分并且ECC码字的部分可以存储在每一个管芯中。N+1管芯可以用于存储N个管芯的内容的异或(XOR)。
存储器中的管芯的特定数目N不是关键的。取决于存储器配置,数目N可以在2和30之间变化。在一个示例中,存储器可以配置有数目N等于18个管芯以持有数据,并且288字节BCH码字可以跨18个管芯散布,其中每个管芯存储16字节(B)的突发(burst)。第19个管芯存储18个管芯的内容的XOR。通过获取单个BCH码字的288字节的XOR来获取存储在XOR管芯中的16B突发。
图4描绘了实现存储器中的恢复算法的方法的第一方面中的操作。在一些示例中,图4中所描绘的操作可以单独或与CPU封装100中的存储器控制器122中的逻辑组合地通过控制器142中的逻辑来实现。现在参照图4,在操作410处控制器142从主机设备接收读取请求,例如从存储器控制器122。读取请求可以包括针对存储在(一个或多个)存储器设备150中的数据块的逻辑地址。控制器142可以将与读取请求一起接收到的逻辑地址翻译成(一个或多个)存储器设备150中的物理地址,并且在操作415处可以从存储器检索数据。
如果在操作420处不存在针对检索数据的读取错误,则控制传递到操作425并且控制器142返回从存储器检索到的数据。相比之下,如果在操作420处存在读取错误,则控制传递到操作430并且控制器142实现ECC例程以尝试校正读取错误。
如果在操作435处,ECC例程在校正读取错误中成功,则控制传递到操作440并且控制器142返回从存储器检索到的数据。相比之下,如果在操作435处ECC例程在校正读取错误中不成功,则控制传递到操作445并且控制器142实现恢复算法。
将参照图3和5来描述恢复算法的一个示例。参照图5,在操作510处计算第二XOR。在一个示例中,阶段“第二XOR”应当是指计算来自(一个或多个)存储器设备150中的N个管芯和XOR管芯的16字节突发的XOR。参照图2-3,在包括用于数据的N个管芯和包含数据的XOR的附加管芯(N+1)的存储器设备150中,通过取从指示为310A、310B到310(N)的相应管芯读取的数据突发和来自指示为图3中的310(N+1)的XOR管芯的突发的XOR来确定第二XOR。
如果在操作515处第二XOR为零,其指示不存在读取错误,则控制传递到操作520并且从(一个或多个)设备150读取的数据被返回到发起请求的主机设备。相比之下,如果在操作515处第二XOR包括任何个1,其指示数据中存在错误,则控制传递到操作525。
如果每一个管芯中的错误在不同的位置处,第二XOR将包含对应位置中的一。因此,为了试图校正错误,恢复算法实现这样的过程,所述过程后续翻转对应于第二XOR中的一的位置的数据突发中对应位置中的位,然后重新计算第二XOR。该过程可以在第二XOR的任一端处开始并且定位第二XOR中的下一个一的位置。控制然后传递到操作530,并且循环发起,所述循环遍历突发数据并且翻转突发数据中的对应位置处的位(操作535)。在操作540处,重新计算第二XOR。
如果在操作545处第二XOR为零,其指示不存在读取错误,则控制传递到操作520并且将从(一个或多个)存储器设备150读取的数据返回到发起请求的主机设备。相比之下,如果在操作545处第二XOR包括任何个1,其指示数据中存在错误,则控制传递到操作550并且计数器的值(i)递增。
如果在操作555处计数器的值(i)还未达到管芯的数目(N),则控制传递回到操作535。相比之下,如果在操作555处计数器的值(i)已达到管芯的数目(N),其指示循环已经循环通过存储器设备中的所有管芯,则控制传递到操作560。
如果在操作560处第二XOR中存在更多的一,则控制传递回到操作525,并且定位第二XOR中的下一个一的位置。因此,操作525到560限定按照其定位第二XOR中的每一个一的循环,并且由操作535至555限定的嵌套循环限定按照其重新计算对应于第二XOR中的一的位置处的数据突发中的位和第二XOR的循环。相比之下,如果在操作560处第二XOR中不存在更多的一,则控制传递到操作565并且返回错误。
如以上所描述的,在一些实施例中,电子设备可以体现为计算机系统。图6图示了依照本发明的实施例的计算系统600的框图。计算系统600可以包括经由互连网络(或总线)604通信的一个或多个中央处理单元(CPU)602或处理器。处理器602可以包括通用处理器、网络处理器(其处理通过计算机网络603传送的数据),或其它类型的处理器(包括精简指令集计算机(RISC)处理器或复杂指令集计算机(CISC))。而且,处理器602可以具有单核或多核设计。具有多核设计的处理器602可以在相同的集成电路(IC)管芯上集成不同类型的处理器核。而且,具有多核设计的处理器602可以实现为对称或非对称多处理器。在实施例中,一个或多个处理器602可以与图1的处理器102相同或类似。例如,一个或多个处理器602可以包括参照图1-3讨论的控制单元120。而且,参照图3-5讨论的操作可以由系统600的一个或多个组件执行。
芯片组606还可以与互连网络604通信。芯片组606可以包括存储器控制中枢(MCH)608。MCH 608可以包括与存储器612(其可以与图1的存储器130相同或类似)通信的存储器控制器610。存储器412可以存储数据,包括指令序列,所述数据可以由CPU 602或包括在计算系统600中的任何其它设备运行。在本发明的一个实施例中,存储器612可以包括一个或多个易失性存储(或存储器)设备,诸如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)或其它类型的存储设备。还可以利用非易失性存储器,诸如硬盘或固态驱动(SSD)。附加设备可以经由互连网络604进行通信,诸如多个CPU和/或多个系统存储器。
MCH 608还可以包括与显示设备616通信的图形接口614。在本发明的一个实施例中,图形接口614可以经由加速图形端口(AGP)与显示设备616通信。在本发明的实施例中,显示器616(诸如平板显示器)可以与图形接口614通过例如信号转换器来通信,所述信号转换器将存储在诸如视频存储器或系统存储器之类的存储设备中的图像的数字表示翻译成由显示器616解释和显示的显示信号。由显示设备产生的显示信号可以在由显示器616解释并且后续在显示器616上显示之前经过各种控制设备。
中枢接口618可以允许MCH 608和输入/输出控制中枢(ICH)620进行通信。ICH 620可以提供对与计算系统600通信的(一个或多个)I/O设备的接口。ICH 620可以通过外围桥接器(或控制器)624与总线622通信,诸如外围组件互连(PCI)桥接器、通用串行总线(USB)控制器或其它类型的外围桥接器或控制器。桥接器624可以提供CPU 602与外围设备之间的数据路径。可以利用其它类型的拓扑。而且,多个总线可以与ICH 620通信,例如通过多个桥接器或控制器。而且,在本发明的各种实施例中,与ICH 620通信的其它外设可以包括集成驱动电子器件(IDE)或(一个或多个)小型计算机系统接口(SCSI)硬盘驱动、(一个或多个)USB端口、键盘、鼠标、(一个或多个)并行端口、(一个或多个)串行端口、(一个或多个)软盘驱动、数字输出支持(例如数字视频接口(DVI))或其它设备。
总线622可以与音频设备626、一个或多个盘驱动628和网络接口设备630(其与计算机网络603通信)通信。其它设备可以经由总线622进行通信。而且,在本发明的一些实施例中,各种组件(诸如网络接口设备630)可以与MCH 608通信。此外,处理器602和本文所讨论的一个或多个其它组件可以组合以形成单个芯片(例如以提供片上系统(SOC))。另外,在本发明的其它实施例中,图形加速器616可以包括在MCH 608内。
另外,计算系统600可以包括易失性和/或非易失性存储器(或存储装置)。例如,非易失性存储器可以包括以下中的一个或多个:只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电EPROM(EEPROM)、盘驱动(例如628)、软盘、致密盘ROM(CD-ROM)、数字多功能盘(DVD)、闪速存储器、磁光盘或能够存储电子数据(包括指令)的其它类型的非易失性机器可读介质。
图7图示了根据本发明的实施例的计算系统700的框图。系统700可以包括一个或多个处理器702-1至702-N(在本文中一般称为“多个处理器702”或“处理器702”)。处理器702可以经由互连网络或总线704通信。每一个处理器可以包括各种组件,为了清楚起见仅参照处理器702-1讨论其中的一些。相应地,其余处理器702-2至702-N中的每一个可以包括参照处理器702-1讨论的相同或类似的组件。
在实施例中,处理器702-1可以包括一个或多个处理器核706-1至706-N(在本文中称为“多个核706”或更一般地称为“核706”)、共享高速缓存708、路由器710和/或处理器控制逻辑或单元720。处理器核706可以实现在单个集成电路(IC)芯片上。而且,芯片可以包括一个或多个共享和/或私有高速缓存(诸如高速缓存708)、总线或互连(诸如总线或互连网络712)、存储器控制器或其它组件。
在一个实施例中,路由器710可以用于在处理器702-1和/或系统700的各种组件之间进行通信。而且,处理器702-1可以包括多于一个路由器710。另外,多个路由器710可以处于通信中以使得能够实现处理器702-1内部或外部的各种组件之间的数据路由。
共享高速缓存708可以存储由处理器702-1的一个或多个组件(诸如核706)利用的数据(例如包括指令)。例如,共享高速缓存708可以在本地对存储在存储器714中的数据进行缓存以供处理器702的组件更快地访问。在实施例中,高速缓存708可以包括中级高速缓存(诸如2级(L2)、3级(L3)、4级(L4)或其它级高速缓存)、末级高速缓存(LLC)和/或其组合。而且,处理器702-1的各种组件可以直接、通过总线(例如总线712)和/或存储器控制器或中枢而与共享高速缓存708通信。如图7中所示,在一些实施例中,一个或多个核706可以包括1级(L1)高速缓存716-1(在本文中一般称为“L1高速缓存716”)。在一个实施例中,控制单元720可以包括实现以上参照图2中的存储器控制器122描述的操作的逻辑。
图8图示了根据本发明的实施例的计算系统的处理器核706和其它组件的部分的框图。在一个实施例中,图8中所示的箭头图示了指令通过核706的流动方向。一个或多个处理器核(诸如处理器核706)可以实现在单个集成电路芯片(或管芯)上,诸如参照图7所讨论的。而且,芯片可以包括一个或多个共享和/或私有高速缓存(例如图7的高速缓存708)、互连(例如图7的互连704和/或112)、控制单元、存储器控制器或其它组件。
如图8中所图示的,处理器核706可以包括提取单元802以提取供核706执行的指令(包括具有条件分支的指令)。指令可以从诸如存储器714之类的任何存储设备提取。核706还可以包括解码单元804以解码所提取的指令。例如,解码单元804可以将所提取的指令解码成多个uop(微操作)。
此外,核706可以包括调度单元806。调度单元806可以执行与存储经解码的指令(例如从解码单元804接收的)相关联的各种操作,直到指令准备好分派为止,例如直到经解码的指令的所有源值变成可用为止。在一个实施例中,调度单元806可以向运行单元808调度和/或发出(或分派)经解码的指令以供运行。运行单元808可以在它们被解码(例如通过解码单元804)并且分派(例如通过调度单元806)之后运行所分派的指令。在实施例中,运行单元808可以包括多于一个运行单元。运行单元808还可以执行各种算术操作,诸如加法、减法、乘法和/或除法,并且可以包括一个或多个算术逻辑单元(ALU)。在实施例中,协处理器(未示出)可以结合运行单元808而执行各种算术操作。
另外,运行单元808可以乱序运行指令。因而,处理器核706在一个实施例中可以是乱序处理器核。核706还可以包括引退单元810。引退单元810可以在已运行的指令被提交之后引退它们。在实施例中,已执行的指令的引退可以造成处理器状态从指令的运行被提交、由指令使用的物理寄存器被解除分配等。
核706还可以包括总线单元714以使得能够实现经由一个或多个总线(例如总线804和/或812)的处理器核706的组件与其它组件(诸如参照图8讨论的组件)之间的通信。核706还可以包括一个或多个寄存器816以存储由核706的各种组件访问的数据(诸如涉及功率消耗状态设置的值)。
另外,即便图7图示了控制单元720经由互连812耦合到核706,但是在各种实施例中控制单元720可以位于其它地方,诸如在核706内部,经由总线704耦合到核等。
在一些实施例中,本文所讨论的一个或多个组件可以体现为片上系统(SOC)设备。图9图示了依照实施例的SOC封装的框图。如图9中所图示的,SOC 902包括一个或多个中央处理单元(CPU)核920、一个或多个图形处理器单元(GPU)核930、输入/输出(I/O)接口940和存储器控制器942。SOC封装902的各种组件可以耦合到互连或总线,诸如本文参照其它图所讨论的。而且,SOC封装902可以包括更多或更少的组件,诸如本文参照其它图讨论的那些。另外,SOC封装902的每一个组件可以包括一个或多个其它组件,例如如参照本文中的其它图所讨论的。在一个实施例中,SOC封装902(及其组件)提供在一个或多个集成电路(IC)管芯上,例如这些管芯被封装到单个半导体设备中。
如图9中所图示的,SOC封装902经由存储器控制器942耦合到存储器960(其可以与本文参照其它图讨论的存储器类似或相同)。在实施例中,存储器960(或其部分)可以集成在SOC封装902上。
I/O接口940可以例如经由诸如本文参照其它图所讨论的互连和/或总线耦合到一个或多个I/O设备970。(一个或多个)I/O设备970可以包括以下中的一个或多个:键盘、鼠标、触摸垫、显示器、图像/视频捕获设备(诸如相机或摄录像机/视频记录器)、触摸屏、扬声器等。
图10图示了根据本发明的实施例的布置在点对点(PtP)配置中的计算系统1000。特别地,图10示出其中处理器、存储器和输入/输出设备通过数个点对点接口互连的系统。参照图2讨论的操作可以由系统1000的一个或多个组件执行。
如图10中所图示的,系统100可以包括若干处理器,为了清楚起见仅示出其中的两个——处理器1002和1004。处理器1002和1004可以每一个包括本地存储器控制器中枢(MCH)1006和1008以使得能够实现与存储器1010和1012的通信。在一些实施例中,MCH 1006和1008可以包括图1的存储器控制器120和/或逻辑125。
在实施例中,处理器1002和1004可以是参照图7讨论的处理器702中的一个。处理器1002和1004可以经由点对点(PtP)接口1014分别使用PtP接口电路1016和1018来交换数据。而且,处理器1002和1004可以每一个经由各个PtP接口1022和1024使用点对点接口电路1026、1028、1030和1032与芯片组1020交换数据。芯片组1020还可以经由高性能图形接口1036例如使用PtP接口电路1037与高性能图形电路1034交换数据。
如图10中所示,图1的核106和/或高速缓存108中的一个或多个可以位于处理器902和904内。然而,本发明的其它实施例可以存在于图9的系统900内的其它电路、逻辑单元或设备中。另外,本发明的其它实施例可以遍及图9中图示的若干电路、逻辑单元或设备而分布。
芯片组920可以使用PtP接口电路941与总线940通信。总线940可以具有与其通信的一个或多个设备,诸如总线桥接器942和I/O设备943。经由总线944,总线桥接器943可以与其它设备通信,诸如键盘/鼠标945、通信设备946(诸如调制解调器、网络接口设备或可以与计算机网络803通信的其它通信设备)、音频I/O设备和/或数据存储设备948。数据存储设备948(其可以是硬盘驱动或基于NAND闪速的固态驱动)可以存储可以由处理器902和/或904运行的代码949。
以下示例关于另外的实施例。
示例1是一种存储器,包括存储器设备和控制器,所述控制器耦合到存储器设备并且包括用于进行以下的逻辑:从主机设备接收读取存储在存储器设备中的数据的读取请求,其中数据的部分存储在多个(N个)管芯中的每一个中并且与数据相关联的纠错码(ECC)的部分存储在所述多个(N个)管芯中的每一个中;响应于读取请求,从存储器设备检索数据;对从存储器设备检索到的数据执行纠错码(ECC)校验;以及响应于从存储器设备检索到的数据上的ECC校验中的错误而调用恢复算法。
在示例2中,示例1的主题可以可选地包括其中数据包括ECC码字的布置,并且ECC校验包括评估对数据和ECC码执行异或(XOR)运算的结果。
在示例3中,示例1-2中任一个的主题可以可选地包括至少部分地包括硬件逻辑的逻辑,所述逻辑从对检索自存储器设备的数据执行XOR运算的结果和检索自存储器设备的数据来计算第二XOR。
在示例4中,示例1-3中任一个的主题可以可选地包括至少部分地包括硬件逻辑的逻辑,所述逻辑在执行第二XOR运算的结果为全零时向主机设备返回数据。
在示例5中,示例1-4中任一个的主题可以可选地包括至少部分地包括硬件逻辑的逻辑,所述逻辑在第二XOR的内容为全零时向主机设备返回数据。
在示例6中,示例1-5中任一个的主题可以可选地包括至少部分地包括硬件逻辑的逻辑,所述逻辑在第二XOR的内容为全零时向主机设备返回数据。
在示例7中,示例1-6中任一个的主题可以可选地包括至少部分地包括硬件逻辑的逻辑,所述逻辑在第二XOR的内容包括1时向主机设备返回读取错误。
示例8是一种电子设备,包括处理器、存储器设备和控制器,所述控制器耦合到存储器设备并且包括用于进行以下的逻辑:从主机设备接收读取存储在存储器设备中的数据的读取请求,其中数据的部分存储在多个(N个)管芯中的每一个中并且与数据相关联的纠错码(ECC)的部分存储在所述多个(N个)管芯中的每一个中;响应于读取请求,从存储器设备检索数据;对从存储器设备检索到的数据执行纠错码(ECC)校验;以及响应于从存储器设备检索到的数据上的ECC校验中的错误而调用恢复算法。
在示例9中,示例8的主题可以可选地包括其中数据包括ECC码字的布置,并且ECC校验包括评估对数据和ECC码执行异或(XOR)运算的结果。
在示例10中,示例8-9中任一个的主题可以可选地包括至少部分地包括硬件逻辑的逻辑,所述逻辑从对检索自存储器设备的数据执行XOR运算的结果和检索自存储器设备的数据来计算第二XOR。
在示例11中,示例8-10中任一个的主题可以可选地包括至少部分地包括硬件逻辑的逻辑,所述逻辑在执行第二XOR运算的结果为全零时向主机设备返回数据。
在示例12中,示例8-11中任一个的主题可以可选地包括至少部分地包括硬件逻辑的逻辑,所述逻辑在第二XOR的内容为全零时向主机设备返回数据。
在示例13中,示例8-12中任一个的主题可以可选地包括至少部分地包括硬件逻辑的逻辑,所述逻辑在第二XOR的内容为全零时向主机设备返回数据。
在示例14中,示例8-13中任一个的主题可以可选地包括至少部分地包括硬件逻辑的逻辑,所述逻辑在第二XOR的内容包括1时向主机设备返回读取错误。
示例15是一种计算机程序产品,包括存储在非暂时性计算机可读介质上的逻辑指令,所述逻辑指令在由耦合到存储器设备的控制器运行时将控制器配置成:从主机设备接收读取到存储器设备的数据行的读取请求,其中数据跨多个(N个)管芯散布并且包括跨所述多个(N个)管芯散布的纠错码(ECC);从存储器设备检索数据行;对从存储器设备检索到的数据行执行纠错码(ECC)校验;以及响应于从存储器设备检索到的数据行上的ECC校验中的错误而调用恢复算法。
在示例16中,示例15的主题可以可选地包括其中数据包括ECC码字的布置,并且ECC校验包括评估对数据和ECC码执行异或(XOR)运算的结果。
在示例17中,示例15-16中任一个的主题可以可选地包括存储在非暂时性计算机可读介质上的逻辑指令,所述逻辑指令在由耦合到存储器设备的控制器运行时,将控制器配置成从对检索自存储器设备的数据执行XOR运算的结果和检索自存储器设备的数据来计算第二XOR。
在示例18中,示例15-17中任一个的主题可以可选地包括存储在非暂时性计算机可读介质上的逻辑指令,所述逻辑指令在由耦合到存储器设备的控制器运行时,将控制器配置成在执行第二XOR运算的结果为全零时向主机设备返回数据。
在示例19中,示例15-18中任一个的主题可以可选地包括存储在非暂时性计算机可读介质上的逻辑指令,所述逻辑指令在由耦合到存储器设备的控制器运行时,将控制器配置成在第二XOR的内容为全零时向主机设备返回数据。
在示例20中,示例15-19中任一个的主题可以可选地包括存储在非暂时性计算机可读介质上的逻辑指令,所述逻辑指令在由耦合到存储器设备的控制器运行时,将控制器配置成在第二XOR的内容为全零时向主机设备返回数据。
在示例21中,示例15-20中任一个的主题可以可选地包括存储在非暂时性计算机可读介质上的逻辑指令,所述逻辑指令在由耦合到存储器设备的控制器运行时,将控制器配置成在第二XOR的内容包括1时向主机设备返回读取错误。
在本发明的各种实施例中,本文例如参照图1-10所讨论的操作可以实现为硬件(例如电路)、软件、固件、微代码或它们的组合,所述组合可以被提供为计算机程序产品,例如包括有形(例如非暂时性)机器可读或计算机可读介质,所述介质具有存储在其上的用于将计算机编程为执行本文所讨论的处理的指令(或软件过程)。而且,术语“逻辑”可以包括,作为示例,软件、硬件或软件和硬件的组合。机器可读介质可以包括诸如本文所讨论的那些之类的存储设备。
在说明书中对“一个实施例”或“一实施例”的引用意味着结合实施例描述的特定特征、结构或特性可以包括在至少一种实现中。短语“在一个实施例中”在说明书各处出现可以或可以不都是指相同的实施例。
而且,在说明书和权利要求中,可以使用术语“耦合”和“连接”连同其派生词。在本发明的一些实施例中,“连接”可以用于指示两个或更多元件与彼此直接物理或电气接触。“耦合”可以意味着两个或更多元件处于直接物理或电气接触。然而,“耦合”还可以意味着两个或更多元件可以不与彼此直接接触,但是仍旧可以与彼此协作或交互。
因此,尽管已经以特定于结构特征和/或方法动作的语言描述了本发明的实施例,但是要理解的是,所要求保护的主题可以不限于所描述的特定特征或动作。而是,特定特征和动作作为实现所要求保护的主题的样例形式而公开。

Claims (21)

1.一种存储器,包括:
存储器设备;以及
控制器,所述控制器耦合到存储器设备并且包括至少部分地包括硬件逻辑的逻辑,所述逻辑用于:
从主机设备接收读取存储在存储器设备中的数据的读取请求,其中数据的部分存储在多个(N个)管芯中的每一个中,并且与数据相关联的纠错码(ECC)的部分存储在所述多个(N个)管芯中的每一个中;
响应于读取请求,从存储器设备检索数据;
对从存储器设备检索到的数据执行纠错码(ECC)校验;以及
响应于从存储器设备检索到的数据上的ECC校验中的错误而调用恢复算法。
2.权利要求1的存储器,其中:
数据包括ECC码字;并且
ECC校验包括评估对数据和ECC码执行异或(XOR)运算的结果。
3.权利要求2的存储器,其中控制器还包括至少部分地包括硬件逻辑的逻辑,所述逻辑用于:
从对检索自存储器设备的数据执行XOR运算的结果和检索自存储器设备的数据来计算第二XOR。
4.权利要求3的存储器,其中控制器还包括至少部分地包括硬件逻辑的逻辑,所述逻辑用于:
在执行第二XOR运算的结果为全零时向主机设备返回数据。
5.权利要求3的存储器,其中控制器还包括至少部分地包括硬件逻辑的逻辑,所述逻辑用于接连地:
定位第二XOR中的1的位置;以及
实现循环,所述循环遍历管芯以接连地:
翻转对应于第二XOR中的1的位置的位置处的管芯中的位;并且
重新计算第二XOR。
6.权利要求5的存储器,其中控制器还包括至少部分地包括硬件逻辑的逻辑,所述逻辑用于:
在第二XOR的内容为全零时向主机设备返回数据。
7.权利要求5的存储器,其中控制器还包括至少部分地包括硬件逻辑的逻辑,所述逻辑用于:
在第二XOR的内容包括1时向主机设备返回读取错误。
8.一种电子设备,包括:
处理器;以及
存储器,包括:
存储器设备;以及
控制器,所述控制器耦合到存储器设备并且包括至少部分地包括硬件逻辑的逻辑,所述逻辑用于:
从主机设备接收读取到存储器设备的数据行的读取请求,其中数据跨多个(N个)管芯散布并且包括跨所述多个(N个)管芯散布的纠错码(ECC);
从存储器设备检索数据行;
对从存储器设备检索到的数据行执行纠错码(ECC)校验;以及
响应于从存储器设备检索到的数据行上的ECC校验中的错误而调用恢复算法。
9.权利要求8的电子设备,其中:
数据行包括ECC码字,
ECC校验包括评估数据行和ECC码的XOR。
10.权利要求9的电子设备,其中控制器还包括至少部分地包括硬件逻辑的逻辑,所述逻辑用于:
从检索自存储器设备的数据行的XOR和检索自存储器设备的数据行来计算第二XOR。
11.权利要求10的电子设备,其中控制器还包括至少部分地包括硬件逻辑的逻辑,所述逻辑用于:
在第二XOR的内容为全零时向主机设备返回数据。
12.权利要求3的电子设备,其中控制器还包括至少部分地包括硬件逻辑的逻辑,所述逻辑用于接连地:
定位第二XOR中的1的位置;以及
实现循环,所述循环遍历管芯以接连地:
翻转对应于第二XOR中的1的位置的位置处的管芯中的位;并且
重新计算第二XOR。
13.权利要求12的电子设备,其中控制器还包括至少部分地包括硬件逻辑的逻辑,所述逻辑用于:
在第二XOR的内容为全零时向主机设备返回数据。
14.权利要求12的电子设备,其中控制器还包括至少部分地包括硬件逻辑的逻辑,所述逻辑用于:
在第二XOR的内容包括1时向主机设备返回读取错误。
15.一种计算机程序产品,包括存储在非暂时性计算机可读介质上的逻辑指令,所述逻辑指令在由耦合到存储器设备的控制器运行时将控制器配置成:
从主机设备接收读取到存储器设备的数据行的读取请求,其中数据跨多个(N个)管芯散布并且包括跨所述多个(N个)管芯散布的纠错码(ECC);
从存储器设备检索数据行;
对从存储器设备检索到的数据行执行纠错码(ECC)校验;以及
响应于从存储器设备检索到的数据行上的ECC校验中的错误而调用恢复算法。
16.权利要求15的计算机程序产品,其中:
数据行包括ECC码字,
ECC校验包括评估数据行和ECC码的XOR。
17.权利要求16的计算机程序产品,其中控制器还包括存储在非暂时性计算机可读介质上的逻辑指令,所述逻辑指令在由耦合到存储器设备的控制器运行时,将控制器配置成:
从检索自存储器设备的数据行的XOR和检索自存储器设备的数据行来计算第二XOR。
18.权利要求17的计算机程序产品,其中控制器还包括存储在非暂时性计算机可读介质上的逻辑指令,所述逻辑指令在由耦合到存储器设备的控制器运行时,将控制器配置成:
在第二XOR的内容为全零时向主机设备返回数据。
19.权利要求17的计算机程序产品,其中控制器还包括存储在非暂时性计算机可读介质上的逻辑指令,所述逻辑指令在由耦合到存储器设备的控制器运行时,将控制器配置成接连地:
定位第二XOR中的1的位置;以及
实现循环,所述循环遍历管芯以接连地:
翻转对应于第二XOR中的1的位置的位置处的管芯中的位;并且
重新计算第二XOR。
20.权利要求19的计算机程序产品,还包括存储在非暂时性计算机可读介质上的逻辑指令,所述逻辑指令在由耦合到存储器设备的控制器运行时,将控制器配置成:
在第二XOR的内容为全零时向主机设备返回数据。
21.权利要求19的计算机程序产品,还包括存储在非暂时性计算机可读介质上的逻辑指令,所述逻辑指令在由耦合到存储器设备的控制器运行时,将控制器配置成:
在第二XOR的内容包括1时向主机设备返回读取错误。
CN201580044846.8A 2014-09-23 2015-08-20 非易失性存储器中的恢复算法 Active CN106663472B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/493,956 US9652321B2 (en) 2014-09-23 2014-09-23 Recovery algorithm in non-volatile memory
US14/493956 2014-09-23
PCT/US2015/046024 WO2016048495A1 (en) 2014-09-23 2015-08-20 Recovery algorithm in non-volatile memory

Publications (2)

Publication Number Publication Date
CN106663472A true CN106663472A (zh) 2017-05-10
CN106663472B CN106663472B (zh) 2021-08-27

Family

ID=55525837

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580044846.8A Active CN106663472B (zh) 2014-09-23 2015-08-20 非易失性存储器中的恢复算法

Country Status (5)

Country Link
US (1) US9652321B2 (zh)
KR (1) KR102242872B1 (zh)
CN (1) CN106663472B (zh)
TW (1) TWI587308B (zh)
WO (1) WO2016048495A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111989745A (zh) * 2018-04-16 2020-11-24 国际商业机器公司 通用高和低随机位纠错逻辑
CN112543909A (zh) * 2018-08-08 2021-03-23 美光科技公司 用于媒体持久和诊断的增强码字
CN113010100A (zh) * 2019-12-20 2021-06-22 美光科技公司 用于机器学习框架的并行迭代器

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10115446B1 (en) 2015-04-21 2018-10-30 Spin Transfer Technologies, Inc. Spin transfer torque MRAM device with error buffer
US10163479B2 (en) 2015-08-14 2018-12-25 Spin Transfer Technologies, Inc. Method and apparatus for bipolar memory write-verify
US10033411B2 (en) 2015-11-20 2018-07-24 Intel Corporation Adjustable error protection for stored data
US10818331B2 (en) 2016-09-27 2020-10-27 Spin Memory, Inc. Multi-chip module for MRAM devices with levels of dynamic redundancy registers
US10437491B2 (en) 2016-09-27 2019-10-08 Spin Memory, Inc. Method of processing incomplete memory operations in a memory device during a power up sequence and a power down sequence using a dynamic redundancy register
US10192602B2 (en) 2016-09-27 2019-01-29 Spin Transfer Technologies, Inc. Smart cache design to prevent overflow for a memory device with a dynamic redundancy register
US10460781B2 (en) 2016-09-27 2019-10-29 Spin Memory, Inc. Memory device with a dual Y-multiplexer structure for performing two simultaneous operations on the same row of a memory bank
US10628316B2 (en) 2016-09-27 2020-04-21 Spin Memory, Inc. Memory device with a plurality of memory banks where each memory bank is associated with a corresponding memory instruction pipeline and a dynamic redundancy register
US10437723B2 (en) 2016-09-27 2019-10-08 Spin Memory, Inc. Method of flushing the contents of a dynamic redundancy register to a secure storage area during a power down in a memory device
US10366774B2 (en) 2016-09-27 2019-07-30 Spin Memory, Inc. Device with dynamic redundancy registers
US10546625B2 (en) 2016-09-27 2020-01-28 Spin Memory, Inc. Method of optimizing write voltage based on error buffer occupancy
US10192601B2 (en) 2016-09-27 2019-01-29 Spin Transfer Technologies, Inc. Memory instruction pipeline with an additional write stage in a memory device that uses dynamic redundancy registers
US10446210B2 (en) 2016-09-27 2019-10-15 Spin Memory, Inc. Memory instruction pipeline with a pre-read stage for a write operation for reducing power consumption in a memory device that uses dynamic redundancy registers
US10360964B2 (en) 2016-09-27 2019-07-23 Spin Memory, Inc. Method of writing contents in memory during a power up sequence using a dynamic redundancy register in a memory device
US10481976B2 (en) 2017-10-24 2019-11-19 Spin Memory, Inc. Forcing bits as bad to widen the window between the distributions of acceptable high and low resistive bits thereby lowering the margin and increasing the speed of the sense amplifiers
US10656994B2 (en) 2017-10-24 2020-05-19 Spin Memory, Inc. Over-voltage write operation of tunnel magnet-resistance (“TMR”) memory device and correcting failure bits therefrom by using on-the-fly bit failure detection and bit redundancy remapping techniques
US10529439B2 (en) 2017-10-24 2020-01-07 Spin Memory, Inc. On-the-fly bit failure detection and bit redundancy remapping techniques to correct for fixed bit defects
US10489245B2 (en) 2017-10-24 2019-11-26 Spin Memory, Inc. Forcing stuck bits, waterfall bits, shunt bits and low TMR bits to short during testing and using on-the-fly bit failure detection and bit redundancy remapping techniques to correct them
US10424726B2 (en) 2017-12-28 2019-09-24 Spin Memory, Inc. Process for improving photoresist pillar adhesion during MRAM fabrication
US10811594B2 (en) 2017-12-28 2020-10-20 Spin Memory, Inc. Process for hard mask development for MRAM pillar formation using photolithography
US10360962B1 (en) 2017-12-28 2019-07-23 Spin Memory, Inc. Memory array with individually trimmable sense amplifiers
US10891997B2 (en) 2017-12-28 2021-01-12 Spin Memory, Inc. Memory array with horizontal source line and a virtual source line
US10395711B2 (en) 2017-12-28 2019-08-27 Spin Memory, Inc. Perpendicular source and bit lines for an MRAM array
US10395712B2 (en) 2017-12-28 2019-08-27 Spin Memory, Inc. Memory array with horizontal source line and sacrificial bitline per virtual source
US10840436B2 (en) 2017-12-29 2020-11-17 Spin Memory, Inc. Perpendicular magnetic anisotropy interface tunnel junction devices and methods of manufacture
US10546624B2 (en) 2017-12-29 2020-01-28 Spin Memory, Inc. Multi-port random access memory
US10784439B2 (en) 2017-12-29 2020-09-22 Spin Memory, Inc. Precessional spin current magnetic tunnel junction devices and methods of manufacture
US10367139B2 (en) 2017-12-29 2019-07-30 Spin Memory, Inc. Methods of manufacturing magnetic tunnel junction devices
US10840439B2 (en) 2017-12-29 2020-11-17 Spin Memory, Inc. Magnetic tunnel junction (MTJ) fabrication methods and systems
US10424723B2 (en) 2017-12-29 2019-09-24 Spin Memory, Inc. Magnetic tunnel junction devices including an optimization layer
US10886330B2 (en) 2017-12-29 2021-01-05 Spin Memory, Inc. Memory device having overlapping magnetic tunnel junctions in compliance with a reference pitch
US10438995B2 (en) 2018-01-08 2019-10-08 Spin Memory, Inc. Devices including magnetic tunnel junctions integrated with selectors
US10438996B2 (en) 2018-01-08 2019-10-08 Spin Memory, Inc. Methods of fabricating magnetic tunnel junctions integrated with selectors
US10446744B2 (en) 2018-03-08 2019-10-15 Spin Memory, Inc. Magnetic tunnel junction wafer adaptor used in magnetic annealing furnace and method of using the same
US11107978B2 (en) 2018-03-23 2021-08-31 Spin Memory, Inc. Methods of manufacturing three-dimensional arrays with MTJ devices including a free magnetic trench layer and a planar reference magnetic layer
US10529915B2 (en) 2018-03-23 2020-01-07 Spin Memory, Inc. Bit line structures for three-dimensional arrays with magnetic tunnel junction devices including an annular free magnetic layer and a planar reference magnetic layer
US11107974B2 (en) 2018-03-23 2021-08-31 Spin Memory, Inc. Magnetic tunnel junction devices including a free magnetic trench layer and a planar reference magnetic layer
US10784437B2 (en) 2018-03-23 2020-09-22 Spin Memory, Inc. Three-dimensional arrays with MTJ devices including a free magnetic trench layer and a planar reference magnetic layer
CN110309012B (zh) * 2018-03-27 2021-01-26 杭州海康威视数字技术股份有限公司 一种数据处理方法及其装置
US10411185B1 (en) 2018-05-30 2019-09-10 Spin Memory, Inc. Process for creating a high density magnetic tunnel junction array test platform
US10692569B2 (en) 2018-07-06 2020-06-23 Spin Memory, Inc. Read-out techniques for multi-bit cells
US10559338B2 (en) 2018-07-06 2020-02-11 Spin Memory, Inc. Multi-bit cell read-out techniques
US10593396B2 (en) 2018-07-06 2020-03-17 Spin Memory, Inc. Multi-bit cell read-out techniques for MRAM cells with mixed pinned magnetization orientations
US10600478B2 (en) 2018-07-06 2020-03-24 Spin Memory, Inc. Multi-bit cell read-out techniques for MRAM cells with mixed pinned magnetization orientations
US10725862B2 (en) * 2018-07-06 2020-07-28 Macronix International Co., Ltd. Data recovery method to error correction code in memory
US10650875B2 (en) 2018-08-21 2020-05-12 Spin Memory, Inc. System for a wide temperature range nonvolatile memory
US10699761B2 (en) 2018-09-18 2020-06-30 Spin Memory, Inc. Word line decoder memory architecture
US11621293B2 (en) 2018-10-01 2023-04-04 Integrated Silicon Solution, (Cayman) Inc. Multi terminal device stack systems and methods
US10971680B2 (en) 2018-10-01 2021-04-06 Spin Memory, Inc. Multi terminal device stack formation methods
US11107979B2 (en) 2018-12-28 2021-08-31 Spin Memory, Inc. Patterned silicide structures and methods of manufacture
US10936415B2 (en) * 2019-06-28 2021-03-02 Western Digital Technologies, Inc. Error correction scheme in flash memory
US11183267B2 (en) 2019-07-12 2021-11-23 Micron Technology, Inc. Recovery management of retired super management units
CN113050874A (zh) * 2019-12-26 2021-06-29 华为技术有限公司 一种内存设置方法以及装置
KR20210141156A (ko) 2020-05-15 2021-11-23 삼성전자주식회사 페이지 장애에 기초하여 메모리 고장을 예견하고, 예견되는 메모리 고장을 관리하는 시스템의 운영 체계 핸들링
US11593197B2 (en) * 2020-12-23 2023-02-28 Samsung Electronics Co., Ltd. Storage device with data quality metric and selectable data recovery scheme
US11722151B2 (en) * 2021-08-09 2023-08-08 Micron Technology, Inc. Bit flipping decoder based on soft information
US11777522B1 (en) 2022-03-28 2023-10-03 Micron Technology, Inc. Bit flipping decoder with dynamic bit flipping criteria

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060039196A1 (en) * 2003-10-03 2006-02-23 Gorobets Sergey A Corrected data storage and handling methods
CN101473308A (zh) * 2006-05-18 2009-07-01 矽玛特公司 非易失性存储器纠错系统和方法
US20110041005A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System
TW201421483A (zh) * 2012-11-30 2014-06-01 Taiwan Semiconductor Mfg 記憶體錯誤修正方法以及記憶體錯誤修正裝置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028213B2 (en) * 2001-09-28 2006-04-11 Hewlett-Packard Development Company, L.P. Error indication in a raid memory system
US8291295B2 (en) * 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7490263B2 (en) * 2006-01-17 2009-02-10 Allen King Apparatus, system, and method for a storage device's enforcing write recovery of erroneous data
DE112008004033T5 (de) * 2008-10-09 2012-01-19 Numonyx B.V. Virtualisiertes Ecc Nand
US8225069B2 (en) * 2009-03-31 2012-07-17 Intel Corporation Control of on-die system fabric blocks
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
US20110040924A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Detecting a Transmission Error Over a NAND Interface Using Error Detection Code
US8595411B2 (en) * 2009-12-30 2013-11-26 Sandisk Technologies Inc. Method and controller for performing a sequence of commands
US8443263B2 (en) * 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US20120110244A1 (en) * 2010-11-02 2012-05-03 Micron Technology, Inc. Copyback operations
KR101778782B1 (ko) * 2011-04-08 2017-09-27 삼성전자주식회사 데이터 저장 장치 및 그것의 동작 방법
US9086983B2 (en) * 2011-05-31 2015-07-21 Micron Technology, Inc. Apparatus and methods for providing data integrity
US8589761B2 (en) * 2011-05-31 2013-11-19 Micron Technology, Inc. Apparatus and methods for providing data integrity
US20130304970A1 (en) * 2012-04-20 2013-11-14 Stec, Inc. Systems and methods for providing high performance redundant array of independent disks in a solid-state device
KR20130130484A (ko) * 2012-05-22 2013-12-02 삼성전자주식회사 읽기 카운터 로직을 포함하는 플래시 메모리 시스템
KR20140031515A (ko) * 2012-09-03 2014-03-13 삼성전자주식회사 메모리 컨트롤러 및 상기 메모리 컨트롤러를 포함하는 전자장치
US8959407B2 (en) * 2012-11-28 2015-02-17 Intel Corporation Scaling factors for hard decision reads of codewords distributed across die
US9021339B2 (en) * 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
JP2015018451A (ja) * 2013-07-11 2015-01-29 株式会社東芝 メモリコントローラ、記憶装置およびメモリ制御方法
US10073731B2 (en) * 2013-11-27 2018-09-11 Intel Corporation Error correction in memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060039196A1 (en) * 2003-10-03 2006-02-23 Gorobets Sergey A Corrected data storage and handling methods
CN101473308A (zh) * 2006-05-18 2009-07-01 矽玛特公司 非易失性存储器纠错系统和方法
US20110041005A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System
TW201421483A (zh) * 2012-11-30 2014-06-01 Taiwan Semiconductor Mfg 記憶體錯誤修正方法以及記憶體錯誤修正裝置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111989745A (zh) * 2018-04-16 2020-11-24 国际商业机器公司 通用高和低随机位纠错逻辑
CN112543909A (zh) * 2018-08-08 2021-03-23 美光科技公司 用于媒体持久和诊断的增强码字
CN112543909B (zh) * 2018-08-08 2022-09-13 美光科技公司 用于媒体持久和诊断的增强码字
CN113010100A (zh) * 2019-12-20 2021-06-22 美光科技公司 用于机器学习框架的并行迭代器

Also Published As

Publication number Publication date
US20160085621A1 (en) 2016-03-24
KR20170032424A (ko) 2017-03-22
WO2016048495A1 (en) 2016-03-31
TWI587308B (zh) 2017-06-11
US9652321B2 (en) 2017-05-16
TW201618119A (zh) 2016-05-16
CN106663472B (zh) 2021-08-27
KR102242872B1 (ko) 2021-04-21

Similar Documents

Publication Publication Date Title
CN106663472A (zh) 非易失性存储器中的恢复算法
CN106575346B (zh) 存储器中的加密完整性校验
KR101767018B1 (ko) 비휘발성 메모리에서의 오류 정정
CN105659332B (zh) 存储器中的错误校正
CN105474184B (zh) 用来管理高容量储存器装置的设备和方法
US10572339B2 (en) Memory latency management
KR102533062B1 (ko) 비휘발성 메모리에서 결함에 대한 내성을 향상시키기 위한 방법 및 장치
CN111566738B (zh) 存储器系统中的有效和选择性的备用位
CN105474183B (zh) 存储器管理
CN105264342A (zh) 嵌入的ecc地址映射
CN106663456A (zh) 非易失性存储器模块
US9147499B2 (en) Memory operation of paired memory devices
US8964495B2 (en) Memory operation upon failure of one of two paired memory devices
US10579470B1 (en) Address failure detection for memory devices having inline storage configurations
WO2023035136A1 (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