CN104541253B - 与保护写入到非易失性存储器的系统关键数据相关联的技术 - Google Patents

与保护写入到非易失性存储器的系统关键数据相关联的技术 Download PDF

Info

Publication number
CN104541253B
CN104541253B CN201380044717.XA CN201380044717A CN104541253B CN 104541253 B CN104541253 B CN 104541253B CN 201380044717 A CN201380044717 A CN 201380044717A CN 104541253 B CN104541253 B CN 104541253B
Authority
CN
China
Prior art keywords
data
protection scheme
format
encoded
nonvolatile memory
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
CN201380044717.XA
Other languages
English (en)
Other versions
CN104541253A (zh
Inventor
K.潘加尔
R.H.莫特瓦尼
P.S.丹勒
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 CN104541253A publication Critical patent/CN104541253A/zh
Application granted granted Critical
Publication of CN104541253B publication Critical patent/CN104541253B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/403Error protection encoding, e.g. using parity or ECC codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles

Abstract

公开了针对与保护被写入到非易失性存储器的系统关键数据相关联的技术的示例。在一些示例中,系统关键数据可以通过使用第一数据保护方案而被写入到非易失性存储器。包括非系统关键数据的用户数据还可以通过使用第二数据保护方案而被写入到非易失性存储器。针对这些示例,两个数据保护方案可以具有相同的给定数据格式大小。提供针对第一数据保护方案的使用的各种示例,其与通过使用第二数据保护方案提供给用户数据的保护相比,可以提供针对系统关键数据的增强的保护。描述并要求保护其它示例。

Description

与保护写入到非易失性存储器的系统关键数据相关联的技术
背景技术
计算设备可以包括诸如两级存储器(2LM)设备或固态驱动(SSD)设备之类的存储器设备的类型的使用。这些类型的存储器设备可以包括诸如NAND闪速存储器、NOR闪速存储器或相变存储器之类的非易失性存储器。经常,诸如针对计算设备和/或存储器设备的固件镜像(firmware image)之类的系统关键数据可以被存储在非易失性存储器中。如果该系统关键数据可能变为损坏(例如不可校正的错误),那么可能致使计算设备或存储器设备是不运转的(non-functional)(例如锁死(lockup))。与非易失性存储器相关联的物理机制可以导致数据保留问题。例如NAND闪速存储器中的电荷损失可能导致数据保留问题。相变存储器中的漂移(drift)或结晶化也可能导致数据保留问题。
附图说明
图1 图示了示例性存储器系统。
图2图示了示例性第一数据格式。
图3图示了示例性第二数据格式。
图4图示了示例性第三数据格式。
图5图示了示例性第四数据格式。
图6图示了示例性第五数据格式。
图7图示了示例性漂移计时器。
图8图示示例性多脉冲验证过程。
图9图示了示例性装置。
图10图示了示例性逻辑流程。
图11图示了示例性储存介质。
图12图示了示例性计算平台。
具体实施方式
如在本公开中所预计的,与非易失性存储器相关联的物理机制或随机错误可能导致针对系统关键数据的数据保留问题。包括非系统关键数据的用户数据可能面临相同的数据保留问题。然而,用户数据中的数据损坏(corruption)可能是不可能使计算或存储器设备变为不运转的。因此,与系统关键数据相比,对于用户数据可以允许对于数据损坏的更高的容忍度。通常,由于对于错误的较低的容忍度,相比于用户数据,系统关键数据可能具有附加的保护水平。附加的保护水平尝试消除或者大体上减少至少一些数据损坏的影响,所述至少一些数据损坏潜在地由与非易失性存储器相关联的物理机制引起或者来自随机错误。
在一些示例中,针对系统关键数据的附加的保护水平可以包括存储系统关键数据的多份副本用于冗余。在使用多级单元(MLC)技术(诸如针对NAND闪速存储器)的示例中,附加的保护水平可以包括以单级单元(SLC)格式存储或写入系统关键数据。对于这些示例,与以MLC格式存储相比,以SLC格式存储系统关键数据可以增加保留裕度。
即使更多存储器容量的使用对于保护系统关键数据是可接受的,引起数据损坏问题的物理机制可以在各类易失性存储器之间变化。例如,在NAND闪速存储器中,当对于这类非易失性存储器的写入循环增加时,数据保留机制被负面地影响。由于与用户数据相比,系统关键数据可能不经受显著的写入循环,存储系统关键数据的非易失性存储器单元可以自然地具有较高的保护水平。但是对于诸如相变存储器(PCM)、PCM和开关(PCMS)、纳米线或铁电晶体管随机存取存储器(FeTRAM)之类的其它类型的非易失性存储器来说,当不频繁地被循环时,系统关键数据可能面临数据保留问题的增加的可能性。例如,存储在不被循环的相变存储器单元中的系统关键数据必须在长时间段内保留它们的状态而不作为写入循环的结果而被“刷新”。系统关键数据的多个副本可能有帮助,但是诸如漂移之类的相变存储器物理机制可能使系统关键数据的所有副本被损坏并且潜在地不可恢复。
在一些示例中,可以经由错误校正码(ECC)方案的使用来解决数据校正错误。由于用户数据通常具有对于错误的较高的容忍度,用于保护用户数据以及系统关键数据二者的单ECC或数据保护方案可能是过度设计的(overdesign)。此外,如果设计了针对用户数据和系统关键数据的单独的ECC引擎,那么这些单独的ECC引擎可能需要诸如额外的逻辑门之类的额外的硬件元件。过度设计的数据保护方案或者针对非易失性存储器的单独的ECC引擎可能导致浪费的资源,以便向被写入到非易失性存储器的相对少量的数据提供添加的保护。需要关于这些和其它挑战的此处所述的示例。
在一些示例中,可以实现与保护写入到非易失性存储器的系统关键数据相关联的技术。这些技术可以包括:接收针对向非易失性存储器写入系统关键数据的第一写入请求,并且通过使用具有给定数据格式大小的第一数据保护方案来使系统关键数据被写入到非易失性存储器。所述技术还可以包括:接收针对向非易失性存储器写入包括非系统关键数据的用户数据的第二写入请求,并且通过使用第二数据保护方案来使用户数据被写入到非易失性存储器。对于这些示例,第二数据保护方案可以具有与根据第一数据保护方案向非易失性存储器写入的系统关键数据相同的给定的数据格式大小。
图1图示了示例性存储器系统100。如在图1中所示,存储器系统100包括控制器110、非易失性存储器120和通信链路130。根据一些示例,控制器110可以经由通信链路130来接收和/或完成(fulfill)读取/写入请求。
虽然未在图1中示出,但是在一些示例中,通信链路130可以将控制器110通信地耦合到与用于计算设备的操作系统相关联的元件或特征。在一些示例中,存储器系统100可以作为两级存储器(2LM)系统起作用,所述两级存储器(2LM)系统充当针对操作系统的主存储器。针对这些示例,除了非易失性存储器120之外,存储器系统100还可以包括诸如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)之类的易失性存储器(未示出),其可以充当2LM系统的第一级或者近存储器。非易失性存储器120可以充当2LM系统的第二级或者远存储器。充当第二级存储器的非易失性存储器120可以具有比包括在第一级存储器中的易失性类型的存储器大体上更大的存储器容量。因而,可以大体上从与在非易失性存储器120处维持的非易失性存储器单元相关联的存储器地址读取数据(例如用户数据和/或系统关键数据)并且向其写入数据(例如用户数据和/或系统关键数据)。
在其它示例中,存储器系统100可以作为针对计算设备的固态驱动(SSD)设备起作用。针对这些示例,通信链路130可以将控制器110通信地耦合到计算设备,并且使得计算设备的元件能够进行读取/写入请求,以将数据存储在非易失性存储器120中。要被存储在非易失性存储器120或者向非易失性存储器120写入的数据可以包括用户数据和系统关键数据二者。
根据一些示例,非易失性存储器120可以包括一个或多个类型的非易失性存储器,以包括但不限于:NAND闪速存储器、NOR闪速存储器、相变存储器、铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、诸如铁电聚合物存储器之类的聚合物存储器、铁电晶体管随机存取存储器(FeTRAM)或FeRAM)、奥式(ovonic)存储器或电可擦除可编程只读存储器(EEPROM)。
根据一些示例,控制器110可以包括逻辑和/或特征以接收针对向非易失性存储器120写入系统关键数据的第一写入请求。针对这些示例,控制器110可以通过使用来自一个或多个系统关键数据保护方案之中的第一数据保护方案来使系统关键数据被写入到非易失性存储器120。如下面更详细所述,一个或多个系统关键数据保护方案112可以包括一个或多个数据保护方案,以向写入到非易失性存储器120的系统关键数据提供附加的保护。同样,如下面更多提到的,包括在一个或多个系统关键数据保护方案中的每个数据保护方案都具有给定数据格式大小,例如给定的位数。
在一些示例中,控制器110还可以包括逻辑和/或特征以接收针对向非易失性存储器120写入用户数据的第二写入请求。该用户数据可以包括非系统关键数据,而控制器110可以通过使用来自一个或多个用户数据保护方案114之中的第二数据保护方案来使用户数据被写入到非易失性存储器120。针对这些示例,来自一个或多个用户数据保护方案114之中的第二数据保护方案可以具有与根据来自一个或多个系统关键数据保护方案112之中的第一数据保护方案写入到非易失性存储器的系统关键数据相同的给定数据格式大小。
根据一些示例,控制器110对针对第一数据保护方案和第二数据保护方案二者的相同的给定数据格式大小的使用可以允许相对类似数量的资源(例如逻辑门)来支持用于通过使用这些不同的数据保护方案来对数据进行编码的编码器或解码器。换言之,相同的ECC引擎可以被用来支持用于保护用户数据和保护系统关键数据二者的数据保护方案,并且然而ECC引擎可以仅仅需要相对少量的附加的资源(例如缓冲器)以支持不同数据保护方案中的至少一些。
图2图示了示例性数据格式210和220。在一些示例中,如图2中所示,数据格式210和220二者都可以包括L位的给定数据格式大小,其中L等于任何正整数。同样,如图2中所示,数据格式210可以包括与一个或多个系统关键数据保护方案112相关联的数据,而数据格式220可以包括与一个或多个用户数据保护方案114相关联的数据。根据一些示例,一个或多个系统关键数据保护方案112可以包括:经由各种保护方案的实现来对系统关键数据进行编码,使得以示例性数据格式210的格式的编码的和保护的系统关键数据的总大小被维持在L位。同样,根据一些示例,一个或多个用户数据保护方案114可以包括:经由各种保护方案的实现来对用户数据进行编码,使得以示例性数据格式220的格式的编码的和保护的用户数据的总大小同样被维持在L位的相同的给定数据格式大小。
图3图示了示例性数据格式310、320和330。在一些示例中,如图3中所示,所有三个数据格式具有L位的相同的给定数据格式大小。在一些示例中,数据格式310可以用于数据保护方案以保护存储到诸如非易失性存储器120之类的非易失性存储器的用户数据。针对这些示例,数据格式320和330可以用于不同的数据保护方案以保护存储到相同的非易失性存储器的系统关键数据。
根据一些示例,用以保护包括在数据格式310中的用户数据以及保护包括在数据格式320和330中的系统关键数据的数据保护方案可以包括ECC(例如,里德所罗门(Reed-Solomon)(RS码)或二进制Bose、Chaudhuri和Hocquenghem(BCH码))的使用。针对这些示例,控制器110可以包括逻辑和/或特征以使用具有(n,k)的码格式的用于一个或多个用户数据保护方案114的ECC,其中n等于码字的大小,而k等于要以示例性数据格式310的数据格式编码在L位的数据中的信息的大小。因而,如图3中所示,n-k位可以用于ECC奇偶校验位,一旦用户数据根据一个或多个用户数据保护方案114编码,所述ECC奇偶校验位就保护用户数据的k位。
同样,针对使用ECC来保护存储到非易失性存储器120的系统关键数据的示例,控制器110可以包括逻辑和/或特征以使用具有(n-s,n-k)的码格式的用于一个或多个系统关键数据保护方案112的ECC,其中s等于要以示例性数据格式320的数据格式编码在L位的数据中的信息的缩短。因而,如图3中所示,(n-s)-(k-s)位可以用于ECC奇偶校验位,一旦系统关键数据根据一个或多个系统关键数据保护方案112而被编码,所述ECC奇偶校验位就保护系统关键数据的k位。换言之,通过缩短保护的信息的量,但是使用相同数目的奇偶校验位,可以向系统关键数据提供更高的保护水平。
根据一些示例,以数据格式320的示例性格式包括在L位的数据中的缩短的位数s可以被指示给解码器(例如与控制器110位于一起),用于解码器来确定哪些位包括存储在非易失性存储器120的经编码的信息。所述指示可以包括给解码器的标记指示,其可以指示系统关键数据包括在L位的数据中,并且还可以指示针对n、k和s的值。针对这些示例,如果s位被放置在数据格式320的左边,那么解码器然后可以确定需要解码L位的数据中的哪些位以及可以忽略或掩盖哪些位。
同样,针对使用ECC来保护存储到非易失性存储器120的系统关键数据的示例,控制器110可以包括逻辑和/或特征以使用具有(n/2,k/2)的码格式的用于一个或多个系统关键数据保护方案112的ECC,其中该码格式中的信息可以编码在部分332-1中,且相同的信息可以冗余地编码在部分332-2中。针对这些示例,部分332-1和部分332-2可以以示例性数据格式320的数据格式编码总共L位的数据。冗余地编码的系统关键数据可以允许较高的保护水平。一些附加的存储器容量可以被该冗余使用,但是针对系统关键数据的较高的保护水平可以证明附加的存储器容量使用是正确的。
图4图示了示例性数据格式410和420。在一些示例中,如图4中所示,两个数据格式具有L位的相同的给定数据格式大小。在一些示例中,数据格式410可以用于数据保护方案以保护存储到非易失性存储器(诸如非易失性存储器120)的用户数据,其还包括一些用于损耗(wear)管理的元数据(例如写入计数)。针对这些示例,数据格式420可以用于不同的数据保护方案以保护存储到相同的非易失性存储器的系统关键数据。由于可能仅仅偶然地存取系统关键数据,可能不需要损耗管理,且元数据被示出为在图4中针对数据格式420被消除。
根据一些示例,用以保护包括在数据格式410中的用户数据并且保护包括在数据格式420中的系统关键数据的数据保护方案可以包括ECC(例如,RS码或二进制BCH码)的使用。针对这些示例,控制器110可以包括逻辑和/或特征以使用具有(n,k)的码格式的用于一个或多个用户数据保护方案114的ECC,其中n等于码字的大小,而k等于要被编码的信息的大小。大小为n的码字然后可以与m位的元数据组合,以形成以示例性数据格式410的数据格式的L位的总数据。因而,数据格式410的部分412-1、412-2和412-3分别包括元数据位、ECC奇偶校验位和用户数据位。
在一些示例中,通过消除数据格式420中的元数据,与使用数据格式410来保护的用户数据相比,附加的ECC奇偶校验位可以用来提供针对系统关键数据的更高的保护水平。针对这些示例,控制器110可以包括逻辑和/或特征以使用具有(n,k)的码格式的用于一个或多个系统关键数据保护方案112的ECC,其中n等于码字的大小,而k等于要以示例性数据格式420的数据格式编码在L位的数据中的信息的大小。如图4中所示,n-k位可以用于ECC奇偶校验位,一旦根据一个或多个系统关键数据保护方案112对系统关键数据进行编码,所述ECC奇偶校验位就保护系统关键数据的k位。因而,数据格式420的部分422-1和422-2分别包括ECC奇偶校验位和用户数据位。
图5图示了示例性数据格式510和520。在一些示例中,如图5中所示,数据格式510和520二者都可以包括L位的给定数据格式大小。然而,为了提供针对系统关键数据的较高的保护水平,数据格式520可以将系统关键数据的副本编码在单独的码字522和524中。
根据一些示例,用以保护包括在数据格式510中的用户数据或者包括在数据格式520中的系统关键数据的数据保护方案可以包括ECC(例如,RS码或二级制BCH码)的使用。虽然由于系统关键数据的冗余副本可以使用一些附加的存储器容量,但是针对系统关键数据的较高的保护水平可以证明与数据格式520相关联的附加的存储器容量使用是正确的。同样,针对一些示例,可以将非易失性存储器设计成使得即使用冗余副本,用于系统关键数据的存储器容量也可以大体上小于对于存储用户数据仍然可用的存储器容量。
图6图示了示例性数据格式610和620。在一些示例中,如图6中所示,两个数据格式都具有L位的相同的给定数据格式大小。根据一些示例,数据格式610可以包括与一个或多个用户数据保护方案114相关联的数据,并且数据格式610可以包括与一个或多个系统关键数据保护方案112相关联的数据。
在一些示例中,一个或多个系统关键数据保护方案112可以包括基于RS码的ECC的使用。针对这些示例,为了提供与可能复制系统关键数据相比针对系统关键数据甚至更好的保护,可以如图6中所示针对数据格式620使用四个单独的RS码。包括在码字622-1到622-4中的四个单独的RS码可以包括如图6中所示的重叠的系统关键数据。因此,如果针对通过使用RS1和RS2被编码在码字622-1和622-2中的系统关键数据产生不可恢复的错误,则系统关键数据仍然可以被恢复,如果通过使用RS3和RS4被编码在码字612-3和612-4中的系统关键数据没有错误或者可恢复的话。
根据一些示例,如图6中所示,码字622-1到622-4可以以数据格式620被布置在三个部分中。这三个部分在图6中被示为625-1、625-2和625-3。为了维持L位的给定数据格式大小,这些部分中的一些可以包括填充位,其在码字被解码时可以被忽略或掩盖。例如,部分625-2和625-3可以包括掩盖的位,而部分625-1可以不包括掩盖的位。
在一些示例中,控制器110可以包括逻辑和/或特征以当向非易失性存储器120写入时通过使用数据格式620来保护系统关键数据。针对这些示例,控制器110可以包括至少一些缓冲能力,以至少临时存储在部分625-1到625-3中接收到的中间/重叠的系统关键数据,以能够实现如上面提到的从错误中恢复。
图7图示了示例性漂移计时器710和720。在一些示例中,如图7中所示,漂移计时器710包括时间段712-1。同样,漂移计时器720被示出为包括时间段722-1。根据一些示例,一个或多个系统关键数据保护方案112可以包括(例如使用数据格式520)向诸如非易失性存储器120之类的非易失性存储器写入系统关键数据的第一副本和第二副本。第一副本(副本#1)可以与漂移计时器710相关联,而第二副本(副本#2)可以与漂移计时器720相关联。如图7中所示,时间段712-1不同于时间段722-1。
根据一些示例,控制器110可以包括逻辑和/或特征以维持漂移计时器710和720二者。针对这些示例,一旦系统关键数据的副本#1和副本#2被写入到非易失性存储器120,那么可以发起两个计时器。如图7中所示,可以在时间段712-1到期之后刷新副本#1,并且可以在时间段722-1到期之后刷新副本#2。在一些示例中,两个计时器可以被复位,并且在这些复位的计时器到期时,针对系统关键数据的副本的后续的刷新可以发生。
在一些示例中,可以设置时间段712-1和722-1,使得副本#1和副本#2在交错的时间被刷新。时间段的交错可以解决与可能对彼此不利的一些类型的非易失性存储器相关联的物理机制。例如,漂移对结晶化、或者漂移对读取扰动可能是针对诸如相变存储器之类的非易失性存储器的类型的对彼此不利的物理机制。
图8图示了示例性多脉冲验证过程800。在一些示例中,控制器110可以包括逻辑和/或特征以使用多脉冲验证过程800作为进一步保护存储到非易失性存储器120的系统关键数据的方式,并且可以被看作从一个或多个系统关键数据保护方案112之中所选择的数据保护方案。在一些示例中,系统关键数据可以首先以与用户数据类似的方式被写入到包括在非易失性存储器120中的非易失性存储器单元。然而,如更下面所述,控制器110可以实现多脉冲验证过程800以通过收窄(narrow)针对与用来存储系统关键数据的非易失性存储器120相关联的存储器单元的阈值电压(Vt)分布,来可能地减少错误。
从开始移动到框810,控制器110可以包括逻辑和/或特征,以使数据从与在存储系统关键数据的非易失性存储器120处的存储器单元相关联的存储器地址读取。一旦数据从非易失性存储器单元读取,那么通过使用可能已经用来将系统关键数据写入到存储器单元(例如RS码或者二进制BCH码)的ECC方案,可以校正与数据相关联的可能的错误。
根据一些示例,控制器110可以包括逻辑和/或特征,以使得经错误校正的数据被至少临时地保存到由控制器110维持的写入高速缓存。
从框810进行到框820,控制器110可以包括逻辑和/或特征,以使得开始于框820的多脉冲验证算法被使用。可以使用多脉冲验证算法,以便收窄在针对非易失性存储器120处的存储器单元的单元Vt分布。在一些示例中,可以在针对其中数据=1的存储器单元的位上断言置位脉冲(set pulse)。然后可以增加置位脉冲计数,还可以增加置位脉冲幅度和/或置位脉冲宽度。
从框820进行到框830,控制器110可以包括逻辑和/或特征以使得所述写入高速缓存中的经校正的数据被用来验证针对其中数据=1的存储器单元的位,并且然后使得经验证的位被关闭(turn off)。
从框830进行到决定框840,控制器110可以包括逻辑和/或特征以确定是否所有的位已经被验证成被置位(例如写回到存储器单元)或者最大脉冲被递送。如果针对存储器单元的所有位已经被验证成被置位或者最大脉冲被递送,那么过程移动到框850。否则,过程移动到框820。
从决定框840移动到框850,控制器110可以包括逻辑和/或特征,以引起开始于框820的多脉冲验证算法的继续使用,以便收窄针对存储器单元的单元Vt分布。在一些示例中,可以在针对其中数据=0的存储器单元的位上断言复位脉冲(reset pulse)。然后可以增加复位脉冲计数,也可以增加复位脉冲幅度和/或复位脉冲宽度。
从框850进行到框860,控制器110可以包括逻辑和/或特征,以使得经校正的数据写入高速缓存被用来验证针对其中数据=0的存储器单元的位,并且然后使得经验证的位被关闭。
从框860进行到决定框870,控制器110可以包括逻辑和/或特征,以确定是否所有的位已经被验证成被复位(例如写回到存储器单元)或者最大脉冲被递送。如果针对存储器单元的所有位已经被验证成被复位或者最大脉冲被递送,那么过程移动到决定框880。如果并非所有的位已经被验证成被复位或者最大脉冲被递送,那么过程移动到框850。
从决定框870移动到决定框880,控制器110可以确定存储系统关键数据的非易失性存储器120的附加的存储器地址是否仍然需要通过多脉冲验证过程800。如果附加的存储器地址仍然需要通过多脉冲验证过程800,那么过程移动到框810。否则,过程被完成。
图9图示了示例性装置900。虽然图9中所示的装置900在某个拓扑中具有有限数目的元件,可以领会的是,装置900可以在可替换的拓扑中包括更多或更少的元件,如针对给定的实现方式所期望的那样。
装置900可以包括计算机实现的装置,其可以包括上文针对对于图1至8的控制器110提到的逻辑和/或特征中的至少一些。计算机实现的装置900可以被布置成执行一个或多个软件组件922-a。值得注意的是,如此处使用的“a”和“b”和“c”以及类似的指示符旨在作为表示任何正整数的变量。因而,例如,如果实现方式设置对于a的值=5,那么软件组件922-a的完整集合可以包括模块922-1、922-2、922-3、922-4或922-5。实施例不限于本上下文。
根据一些示例,装置900可以能够与计算设备位于一起,并且可以是诸如存储器系统100之类的存储器系统的一部分(例如控制器110)。针对这些示例,装置900可以被包括在处理器或处理器电路中或者由其实现。在其它示例中,装置900可以被实现为固件(例如BIOS)的一部分,或者被实现为中间件应用。示例不限于该上下文。
在一些示例中,如果实现在处理器中,那么处理器可以被一般地布置成执行一个或多个软件组件922-a。处理器可以是各种商业可购买的处理器中的任何一个,包括但不限于AMD®Athlon®、Duron®和Opteron®处理器;ARM®应用、嵌入式和安全处理器;IBM®和Motorola®DragonBall®和PowerPC®处理器;IBM和Sony®单元处理器;Intel®Celeron®、Core(2)Duo®、Core i3、Core i5、Core i7、Pentium®和XScale®处理器;以及类似的处理器。多核处理器和其它多处理器架构也可以被采用来实现装置900。
根据一些示例,装置900可以包括系统关键数据组件922-1。系统关键数据组件922-1可以被布置以供由处理器电路920执行,以接收包括在系统关键数据读取/写入请求910中的写入请求。针对这些示例,写入请求可以用于向诸如非易失性存储器120之类的非易失性存储器写入系统关键数据。系统关键数据组件922-1还可以被布置成使系统关键数据通过使用具有给定数据格式大小的一个或多个保护方案924-a而被写入到非易失性存储器120。在一些示例中,一个或多个保护方案924-a可以包括以上针对图2到8提到的保护方案中的一个或多个。用于实现这些一个或多个保护方案924-a的指令可以由系统关键数据组件922-1至少临时地维持,例如存储在诸如查找表(LUT)之类的数据结构中。
在一些示例中,装置900还可以包括用户数据组件922-2。用户数据组件922-2可以被布置以供由处理器电路920来执行,以接收包括在用户数据读取/写入请求915中的写入请求。针对这些示例,写入请求可以用于向非易失性存储器120写入用户数据。用户数据组件922-2还可以被布置成使用户数据通过使用一个或多个保护方案924-b而被写入到非易失性存储器120,所述一个或多个保护方案924-b具有与由系统关键数据组件922-1写入到非易失性存储器120的系统关键数据相同的给定数据格式大小。在一些示例中,一个或多个保护方案924-b还可以包括以上针对图2到8提到的保护方案中的一个或多个。用于实现这些一个或多个保护方案924-b的指令可以由用户数据组件922-2至少临时地维持,例如存储在诸如LUT之类的数据结构中。
在一些示例中,装置900还可以包括编码组件922-3。编码组件922-3可以被布置以供由处理器电路920执行,以根据具有给定数据格式大小的一个或多个保护方案924-a来对系统关键数据进行编码。经编码的系统关键数据可以被存储在非易失性存储器120处作为已存储的系统关键数据930。编码组件922-3还可以被布置成根据一个或多个保护方案924-b来对用户数据进行编码,所述一个或多个保护方案924-b具有与一个或多个保护方案924-a用来对系统关键数据进行编码的相同的给定数据格式大小。经编码的用户数据可以被存储在非易失性存储器120处作为已存储的用户数据935。
根据一些示例,装置900还可以包括解码组件922-4。解码组件922-4可以被布置以供由处理器电路920执行,以响应于包括在接收到的系统关键数据读取/写入请求910中的读取请求来对经编码的已存储系统关键数据930进行解码。解码组件922-4还可以响应于包括在接收到的用户数据读取/写入请求915中的读取请求来对经编码的已存储用户数据935进行解码。
此处包括的是表示用于执行所公开的架构的新颖方面的示例性方法的逻辑流程的集合。虽然,为了解释的简单的目的,此处所示的一个或多个方法被示出和描述为一系列动作,但是本领域的技术人员将理解并领会的是,方法不限于动作的次序。一些动作可以根据其以不同的次序发生,和/或与来自此处示出和描述的其它动作同时发生。例如,本领域的技术人员将理解并领会的是,方法可以可替换地表示为一系列相互关联的状态或事件,诸如在状态图中。此外,对于新颖的实现可能并不要求图示在方法中的所有动作。
可以以软件、固件、和/或硬件来实现逻辑流程。在软件和固件的实施例中,逻辑流程可以由存储在至少一个非临时计算机可读介质或机器可读介质(诸如光学、磁性或半导体储存)上的计算机可执行指令来实现。实施例不限于该上下文。
图10图示了逻辑流程1000。逻辑流程1000可以表示由此处所述的一个或多个逻辑、特征或设备所执行的操作中的一些或全部,诸如可以用针对诸如存储器系统100之类的存储器系统的控制器包括的或者为其一部分的装置900。更特别地,逻辑流程1000可以由系统关键数据组件922-1、用户数据组件922-2、编码组件922-3或解码组件922-4实现。
根据一些示例,逻辑流程1000可以在框1002处接收针对向非易失性存储器写入系统关键数据的第一写入请求。针对这些示例,第一写入请求可以由系统关键数据组件922-1接收,并且可以用于向存储器系统100的非易失性存储器120写入系统关键数据。
在一些示例中,逻辑流程1000可以在框1004处通过使用具有给定数据格式大小的第一数据保护方案来对系统关键数据进行编码。针对这些示例,编码组件922-3可以根据具有L位的给定数据格式大小的一个或多个保护方案924-a来对系统关键数据进行编码,如以上针对对于图2到7的数据格式提到的那样。
根据一些示例,逻辑流程1000可以在框1006处使经编码的系统关键数据被写入到非易失性存储器。针对这些示例,系统关键数据组件922-1或者编码组件922-3可以使经编码的系统关键数据被写入到非易失性存储器120。
在一些示例中,逻辑流程100可以在框1008处接收针对向非易失性存储器写入包括非系统关键数据的用户数据的第二写入请求。针对这些示例,第二写入请求可以由用户数据组件922-a接收,并且可以用于向非易失性存储器120写入用户数据。同样,用户数据可以包括非系统关键数据。
根据一些示例,逻辑流程1000可以在框1010处通过使用第二数据保护方案来对用户数据进行编码,所述第二数据保护方案具有与根据第一数据保护方案写入到非易失性存储器的经编码的系统关键数据相同的给定数据格式大小。针对这些示例,编码组件922-3可以根据也具有L位的相同的给定数据格式大小的一个或多个保护方案924-b来对用户数据进行编码。
在一些示例中,逻辑流程100可以在框1012处使经编码的用户数据被写入到非易失性存储器。针对这些示例,用户数据组件922-2或编码组件922-3可以使经编码的系统关键数据被写入到非易失性存储器120。
图11图示了储存介质1100的实施例。储存介质1100可以包括制造的物品。在一些示例中,储存介质1100可以包括任何非临时计算机可读介质或机器可读介质,诸如光学、磁性或半导体储存。储存介质1100可以包括各种类型的计算机可执行指令,诸如用以实现逻辑流程1000的指令。计算机可读或机器可读储存介质的示例可以包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移除或非可移除存储器、可擦除或非可擦除存储器、可写入或可重写入存储器等等。计算机可执行指令的示例可以包括任何合适类型的代码,诸如源代码、编译的代码、解释的代码、可执行代码、静态代码、动态代码、面向对象的代码、视觉代码等等。示例不限于此上下文。
图12图示了示例性计算平台1200。在一些示例中,如图12中所示,计算平台1200可以包括存储器系统1230、处理组件1240、其它平台组件1250或通信接口1260。根据一些示例,计算平台1200可以被实现在计算设备中。
根据一些示例,存储器系统1230可以类似于存储器系统100。针对这些示例,驻留在存储器系统1230或者与其位于一起的逻辑和/或特征(例如包括在控制器中)可以执行针对装置900的至少一些处理操作或逻辑。同样,存储器系统1230可以包括可以以与针对存储器系统100如上所述的类似的方式基于要写入的数据的类型(例如,用户数据或系统关键数据)以及所使用的数据保护方案来向其写入或从其中读取的非易失性存储器(未示出)。
根据一些示例,处理组件1240还可以执行针对装置900和/或储存介质1000的至少一些处理操作或逻辑。处理组件1240可以包括各种硬件元件、软件元件、或者两者的组合。硬件元件的示例可以包括设备、逻辑设备、组件、处理器、微处理器、电路、处理器电路、电路元件(例如晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件元件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或者其任何组合。确定是否通过使用硬件元件和/或软件元件来实现示例可以根据任何数目的因素而变化,诸如期望的计算率、功率水平、热容忍度、处理循环预算、输入数据率、输出数据率、存储器资源、数据总线速度以及其它设计或性能约束,如针对给定的示例所期望的那样。
在一些示例中,其它平台组件1250可以包括共同的计算元件,诸如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外设、接口、振荡器、计时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件(例如数字显示器)、电源等等。与其它平台组件1250或者存储器系统1230相关联的存储器单元的示例可以包括但不限于:以一个或多个更高速度的存储器单元的形式的各种类型的计算机可读和机器可读储存介质,诸如ROM、RAM、DRAM、双数据率DRAM(DDRAM)、同步DRAM(SDRAM)、SRAM、可编程ROM(PROM)、EPROM、EEPROM、NAND闪速存储器、NOR闪速存储器、诸如铁电聚合物存储器之类的聚合物存储器、铁电晶体管随机存取存储器(FeTRAM或FeRAM)、纳米线、奥式存储器、相变或铁电存储器、SONOS存储器、磁性或光学卡、诸如独立盘冗余阵列(RAID)驱动之类的设备的阵列、固态存储器设备(例如USB存储器)、SSD和适合于存储信息的任何其它类型的储存介质。
在一些示例中,通信接口1260可以包括逻辑和/或特征,以支持通信接口。针对这些示例,通信接口1260可以包括根据各种通信协议或标准操作以通过直接的或网络通信链路进行通信的一个或多个通信接口。直接通信可以经由使用在一个或多个工业标准中描述的通信协议或标准(包括后代和变型)来发生,诸如与系统管理总线(SMBus)规范、PCI快速规范、串行高级技术附接(SATA)规范或者通用串行总线(USB)规范相关联的那些。网络通信可以经由使用诸如在以太网标准中描述的那些之类的通信协议或标准来发生。
计算平台1200可以是计算设备的一部分,所述计算设备可以是例如用户设备、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、服务器、服务器阵列或者服务器群、web(网络)服务器、网络服务器、因特网服务器、工作站、小型计算机、大型计算机、超级计算机、网络设施、web设施、分布式计算系统、微处理器系统、基于处理器的系统、或者其组合。因此,此处所述的计算平台1200的功能和/或特定配置可以在计算平台1200的各种实施例中被包括或省略,如合适地期望的那样。
计算平台1200的组件和特征可以通过使用分立电路、专用集成电路(ASIC)、逻辑门和/或单芯片架构的任何组合来实现。此外,计算平台1200的特征可以通过使用微控制器、可编程逻辑阵列和/或微处理器或者合适地适当的前述各项的组合来实现。应该注意的是,硬件、固件和/或软件元件可以在此共同地或者单独地被称为“逻辑”或“电路”。
应该领会的是,在图12的框图中示出的示例性的计算平台1200可以表示许多潜在实现方式的一个功能上描述性的示例。因此,在附图中描绘的框功能的分开、省略或包括不暗示用于实现这些功能的硬件组件、电路、软件和/或元件必要地在实施例中被分开、省略或包括。
至少一个示例的一个或多个方面可以由存储在至少一个机器可读介质上的代表性指令来实现,所述至少一个机器可读介质表示处理器内的各种逻辑,当其被机器、计算设备或系统读取时使机器、计算设备或系统制造逻辑以执行此处所述的技术。被称为“IP核”的这样的表示可以被存储在有形的、机器可读介质上,并且被供给到各种客户或制造设施以装载到实际上制作逻辑或处理器的制造机器中。
通过使用硬件元件、软件元件或二者的组合,可以实现各种示例。在一些示例中,硬件元件可以包括设备、组件、处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。在一些示例中,软件元件可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或者其任何组合。确定是否通过硬件元件和/或软件元件来实现示例可以根据任何数目的因素而变化,诸如期望的计算率、功率水平、热容忍度、处理循环预算、输入数据率、输出数据率、存储器资源、数据总线速度以及其它设计或性能约束,如针对给定的实现方式所期望的那样。
一些示例可以包括制造的物品或者至少一个计算机可读介质。计算机可读介质可以包括非临时储存介质以存储逻辑。在一些示例中,非临时储存介质可以包括能够存储电子数据的一个或多个类型的计算机可读储存介质,包括易失性存储器或非易失性存储器、可移除或非可移除存储器、可擦除或非可擦除存储器、可写入或可重写入存储器等等。在一些示例中,逻辑可以包括各种软件元件,诸如软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、API、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或者其任何组合。
根据一些示例,计算机可读介质可以包括非临时储存介质以存储或维持指令,所述指令当被机器、计算设备或系统执行时使得机器、计算设备或系统执行根据所述示例的方法和/或操作。指令可以包括任何合适类型的代码,诸如源代码、编译的代码、解释的代码、可执行代码、静态代码、动态代码等等。指令可以根据预定义的计算机语言、方式或语法来被实现,用于指导机器、计算设备或系统来执行某个功能。通过使用任何合适的高级、低级、面向对象的、视觉、编译的和/或解释的编程语言,可以实现指令。
通过使用表述“在一个示例中”或“示例”连同其衍生物,可以描述一些示例。这些术语意指关于示例所述的特定的特征、结构或特性被包括在至少一个示例中。短语“在一个示例中”在说明书中的各种地方的出现不一定全部指的是相同的示例。
通过使用表述“耦合”和“连接”连同它们的衍生物,可以描述一些示例。这些术语不一定意图作为彼此的同义词。例如,使用术语“连接”和/或“耦合”的描述可以指示两个或更多个元件彼此直接物理或电接触。然而,术语“耦合”还可以意指两个或更多个元件不是彼此直接接触,但是仍然彼此协作或与彼此交互。
在一些示例中,示例性第一方法可以包括接收针对向非易失性存储器写入系统关键数据的第一写入请求,并且通过使用具有给定数据格式大小的第一数据保护方案来使系统关键数据被写入到非易失性存储器。还可以接收针对向非易失性存储器写入包括非系统关键数据的用户数据的第二写入请求。然后可以通过使用第二数据保护方案来使用户数据被写入到非易失性存储器,所述第二数据保护方案具有与根据第一数据保护方案被写入到非易失性存储器的系统关键数据相同的给定数据格式大小。
根据针对示例性第一方法的一些示例,非易失性存储器可以是包括2LM设备或SSD设备中的一个的存储器设备的部分。针对这些示例,系统关键数据可以包括数据,所述数据如果在被写入到非易失性存储器之后是不可读取的则致使存储器设备或使用存储器设备的计算设备是不运转的。
在针对示例性第一方法的一些示例中,第一数据保护方案和第二数据保护方案二者都包括里德所罗门ECC的使用。用于第二数据保护方案的里德所罗门ECC的使用具有(n,k)的码格式,其中n等于码字的大小且k等于要被编码的信息的大小。用于第一数据保护方案的里德所罗门ECC的使用具有(n-s,k-s)的码格式,其中s等于要被编码的信息的缩短。
根据针对示例性第一方法的一些示例,第一数据保护方案可以包括二者都使用里德所罗门ECC的第一数据保护方案和第二数据保护方案。用于第二数据保护方案的里德所罗门ECC的使用具有(n,k)的第一码格式,其中n等于码字的大小且k等于要被编码的信息的大小。用于第一数据保护方案的里德所罗门ECC的使用具有(n/2,k/2)的第二码格式,其中以第二码格式的信息被编码在第一部分中,且相同的信息被冗余地编码在第二部分中。
在针对示例性第一方法的一些示例中,第一数据保护方案可以包括第一数据格式,所述第一数据格式包括具有与ECC相关联的奇偶校验位的第一部分以及具有系统关键数据的第二部分。第二数据保护方案可以包括第二数据格式,所述第二数据格式包括具有针对非易失性存储器的损耗管理的元数据的第一部分、具有与ECC相关联的奇偶校验位的第二部分、以及具有用户数据的第三部分。与针对第二数据格式的第二部分的奇偶校验位相比,第一数据格式的第一部分可以具有更多的奇偶校验位。
根据针对示例性第一方法的一些示例,第一数据保护方案可以包括在单独的码字的对中复制系统关键数据。
在针对示例性第一方法的一些示例中,第一数据保护方案可以包括里德所罗门ECC的使用,其使用具有重叠的系统关键数据的四个单独的里德所罗门码字。
根据一些示例,示例性第一方法还可以包括使系统关键数据的第一和第二副本被写入到非易失性存储器,以及维持针对第一副本的第一漂移计时器以及针对第二副本的第二漂移计时器。第一漂移计时器可以被设置成在第一时间段之后到期,且第二漂移计时器可以被设置成在第二时间段之后到期。针对这些示例,第一时间段可以不同于第二时间段。同样,第一副本可以在第一漂移计时器的到期之后被刷新,且可以使第二副本在第二漂移计时器的到期之后被刷新。
在针对示例性第一方法的一些示例中,使系统关键数据被写入到非易失性存储器可以包括使系统关键数据通过使用多脉冲验证过程而被写入。多脉冲验证过程可以能够收窄针对与其中存储系统关键数据的非易失性存储器相关联的存储器单元的Vt分布。
根据针对示例性第一方法的一些示例,非易失性存储器可以包括PCM、PCMS、NAND闪速存储器、NOR闪速存储器、纳米线、FeRAM、FeTRAM、铁电存储器、SONOS存储器、诸如铁电聚合物存储器之类的聚合物存储器、奥式存储器或EEPROM中的至少一个。
根据一些示例,包括响应于在系统上被执行的多个指令的至少一个机器可读介质使系统执行如上面提到的那样的示例性方法。
根据一些示例,示例性第一装置可以包括处理器电路和系统关键数据组件,其被布置以供由处理器电路执行,以接收针对向非易失性存储器写入系统关键数据的第一写入请求,并且使系统关键数据通过使用具有给定数据格式大小的第一数据保护方案而被写入到非易失性存储器。示例性第一装置还可以包括用户数据组件,其被布置以供由处理器电路执行,以接收针对向非易失性存储器写入包括非系统关键数据的用户数据的第二写入请求,并且使用户数据通过使用第二数据保护方案而被写入到非易失性存储器,所述第二数据保护方案具有与根据第一数据保护方案写入到非易失性存储器的系统关键数据相同的给定数据格式大小。
根据一些示例,示例性装置还可以包括编码组件,其被布置以供由处理器电路执行,以根据第一数据保护方案来对系统关键数据进行编码,并且根据第二数据保护方案来对用户数据进行编码。示例性装置还可以包括解码组件,其被布置以供由处理器电路执行,以响应于针对经编码的系统关键数据的第一读取请求来对经编码的系统关键数据进行解码,或者响应于针对经编码的用户数据的第二读取请求来对经编码的用户数据进行解码。
在针对示例性装置的一些示例中,非易失性存储器可以是包括2LM设备或SSD设备中的一个的存储器设备的部分,且系统关键数据包括数据,所述数据如果在被写入到非易失性存储器之后是不可读取的则可以致使存储器设备或使用存储器设备的计算设备是不运转的。
根据针对示例性装置的一些示例,第一数据保护方案和第二数据保护方案的使用包括里德所罗门ECC的使用。用于第二数据保护方案的里德所罗门ECC的使用具有(n,k)的码格式,其中n等于码字的大小且k等于要被编码的信息的大小。用于第一数据保护方案的里德所罗门ECC的使用具有(n-s,k-s)的码格式,其中s等于要被编码的信息的缩短。
在针对示例性装置的一些示例中,第一数据保护方案和第二数据保护方案的使用可以包括里德所罗门ECC的使用。用于第二数据保护方案的里德所罗门ECC的使用具有(n,k)的第一码格式,其中n等于码字的大小且k等于要被编码的信息的大小。用于第一数据保护方案的里德所罗门ECC的使用具有(n/2,k/2)的第二码格式,其中以第一码格式的信息被编码在第一部分中,且相同的信息被冗余地编码在第二部分中。
根据针对示例性装置的一些示例,第一数据保护方案包括第一数据格式,所述第一数据格式包括具有与ECC相关联的奇偶校验位的第一部分以及具有系统关键数据的第二部分。第二数据保护方案包括第二数据格式,所述第二数据格式包括具有针对非易失性存储器的损耗管理的元数据的第一部分、具有与ECC相关联的奇偶校验位的第二部分、以及具有用户数据的第三部分。与针对第二数据格式的第二部分的奇偶校验位相比,第一数据格式的第一部分可以具有更多的奇偶校验位。
在针对示例性装置的一些示例中,系统关键数据组件可以被布置成使用第一数据保护方案,使得系统关键数据可以被复制在单独的码字中。
根据针对示例性装置的一些示例,系统关键数据组件可以被布置成使用第一数据保护方案以包括里德所罗门ECC的使用,其能够具有具有重叠的系统关键数据的四个单独的里德所罗门码字。
在针对示例性装置的一些示例中,系统关键数据组件还被布置成维持第一漂移计时器以及第二漂移计时器,且第一数据保护方案的使用包括系统关键数据组件使系统关键数据的第一和第二副本被写入到非易失性存储器。第一漂移计时器被设置成在第一时间段之后到期,且第二漂移计时器被设置成在第二时间段之后到期。第一时间段可以不同于第二时间段。系统关键数据组件可以被布置成,使第一副本在第一漂移计时器的到期之后被刷新,并且还使第二副本在第二漂移计时器的到期之后被刷新。
根据针对示例性装置的一些示例,系统关键数据组件使系统关键数据被写入到非易失性存储器包括系统关键数据经由多脉冲验证算法的使用而被写入,所述多脉冲验证算法能够收窄针对与其中存储系统关键数据的非易失性存储器相关联的存储器单元的阈值电压分布。
在针对示例性装置的一些示例中,非易失性存储器可以包括PCM、PCMS、NAND闪速存储器、NOR闪速存储器、纳米线、FeRAM、FeTRAM、铁电存储器、SONOS存储器、诸如铁电聚合物存储器之类的聚合物存储器、奥式存储器或EEPROM中的至少一个。
在一些示例中,示例性第二方法可以包括:接收针对向非易失性存储器写入系统关键数据的第一写入请求;通过使用具有给定数据格式大小的第一数据保护方案来对系统关键数据进行编码;以及使经编码的系统关键数据被写入到非易失性存储器。这些第二示例性方法还可以包括:接收针对向非易失性存储器写入包括非系统关键数据的用户数据的第二请求;通过使用第二数据保护方案来对用户数据进行编码,所述第二数据保护方案具有与根据第一数据保护方案写入到非易失性存储器的经编码的系统关键数据相同的给定数据格式大小;以及使经编码的用户数据被写入到非易失性存储器。
在一些示例中,示例性第二方法还可以包括:接收读取请求以读取被写入到非易失性存储器的系统关键数据;评估来自非易失性存储器的经编码的系统关键数据;以及使用第一数据保护方案来对经编码的系统关键数据进行解码。针对这些示例,与从非易失性存储器读取经编码的系统关键数据或者在非易失性存储器处存储经编码的系统关键数据相关联的错误可以被校正,并且系统关键数据然后可以被提供给针对读取请求的请求者。
根据针对示例性第二方法的一些示例,第一数据保护方案和第二数据保护方案可以使用里德所罗门ECC。用于第二数据保护方案的里德所罗门ECC的使用包括(n,k)的码格式,其中n等于码字的大小且k等于要被编码的信息的大小。用于第一数据保护方案的里德所罗门ECC的使用包括(n-s,k-s)的码格式,其中s等于要被编码的信息的缩短。
在一些示例中,示例性第二方法还可以包括:维持第一漂移计时器以及第二漂移计时器;并且使用第一数据保护方案包括系统使系统关键数据的第一副本和第二副本被写入到非易失性存储器。第一漂移计时器可以被设置成在第一时间段之后到期,且第二漂移计时器可以被设置成在第二时间段之后到期。第一时间段可以不同于第二时间段。第一数据保护方案系统的使用还包括系统使第一副本在第一漂移计时器的到期之后被刷新,并且还使第二副本在第二漂移计时器的到期之后被刷新。
根据针对示例性第二方法的一些示例,多个指令还可以使系统使用第一数据保护方案以在单独的码字中复制系统关键数据。
应该强调的是,公开的摘要被提供以符合37 C.F.R. 章节 1.72(b),其要求了将允许读者快速确定技术公开的本质的摘要。在理解其将不会被用来解释或限制权利要求的范围或含义的情况下而被提交。另外,在之前的具体实施方式中,可以看出的是,为了简化公开的目的,各种特征被一起成组在单个示例中。本公开的方法不被解释为反映如下意图:要求保护的示例需要比在每个权利要求中明确记载的更多的特征。而是,如下面的权利要求所反映,发明的主题在于少于单个公开的示例的所有特征。因而,下面的权利要求由此并入具体实施方式中,其中每个权利要求独自作为单独的示例。在所附权利要求中,术语“包括”以及“在其中”分别被用作相应的术语“包含”和“其中”的简明的英语的等同物。此外,术语“第一”、“第二”、“第三”等仅仅作为标签使用,而不意图对它们的对象施加数字要求。
虽然已经以特定于结构特征和/或方法动作的语言描述了主题,但是应该理解的是在所附权利要求中所限定的主题不一定限于上述的特定特征或动作。而是,上述的特定特征和动作作为实现权利要求的示例性形式而被公开。

Claims (21)

1.一种用于向非易失性存储器写入数据的方法,包括:
接收针对向所述非易失性存储器写入系统关键数据的第一写入请求;
通过使用具有给定数据格式大小的第一数据保护方案来使系统关键数据被编码并写入到非易失性存储器;
接收针对向非易失性存储器写入包括非系统关键数据的用户数据的第二写入请求;以及
通过使用第二数据保护方案来使用户数据被编码并写入到非易失性存储器,所述第二数据保护方案具有与根据第一数据保护方案被编码并写入到非易失性存储器的系统关键数据相同的给定数据格式大小。
2.根据权利要求1的方法,所述非易失性存储器是包括两级存储器(2LM)设备或固态驱动(SSD)设备中的一个的存储器设备的部分。
3.根据权利要求2的方法,系统关键数据包括数据,所述数据如果在被编码并写入到非易失性存储器之后是不可读取的则致使存储器设备或使用存储器设备的计算设备是不运转的。
4.根据权利要求1的方法,包括第一数据保护方案和第二数据保护方案二者都包括里德所罗门错误校正码(ECC)的使用,用于第二数据保护方案的里德所罗门ECC的使用具有(n,k)的码格式,其中n等于码字的大小且k等于要被编码的信息的大小,用于第一数据保护方案的里德所罗门ECC的使用具有(n-s,k-s)的码格式,其中s等于要被编码的信息的缩短。
5.根据权利要求1的方法,第一数据保护方案包括,第一数据保护方案和第二数据保护方案二者都包括里德所罗门错误校正码(ECC)的使用,用于第二数据保护方案的里德所罗门ECC的使用具有(n,k)的第一码格式,其中n等于码字的大小且k等于要被编码的信息的大小,用于第一数据保护方案的里德所罗门ECC的使用具有(n/2,k/2)的第二码格式,其中以第二码格式的信息被编码在第一部分中,且相同的信息被冗余地编码在第二部分中。
6.根据权利要求1的方法,第一数据保护方案包括第一数据格式,所述第一数据格式包括具有与错误校正码(ECC)相关联的奇偶校验位的第一部分以及具有系统关键数据的第二部分,第二数据保护方案包括第二数据格式,所述第二数据格式包括具有针对非易失性存储器的损耗管理的元数据的第一部分、具有与ECC相关联的奇偶校验位的第二部分、以及具有用户数据的第三部分,与针对第二数据格式的第二部分的奇偶校验位相比,第一数据格式的第一部分具有更多的奇偶校验位。
7.根据权利要求1的方法,第一数据保护方案包括在单独的码字的对中复制系统关键数据。
8.根据权利要求1的方法,第一数据保护方案包括里德所罗门错误校正码(ECC)的使用,其使用具有重叠的系统关键数据的四个单独的里德所罗门码字。
9.根据权利要求1的方法,第一数据保护方案包括:
使系统关键数据的第一和第二副本被编码并写入到非易失性存储器;
维持针对第一副本的第一漂移计时器以及针对第二副本的第二漂移计时器,第一漂移计时器在第一时间段之后到期,且第二漂移计时器在第二时间段之后到期,第一时间段不同于第二时间段;
使第一副本在第一漂移计时器的到期之后被刷新;以及
使第二副本在第二漂移计时器的到期之后被刷新。
10.根据权利要求1的方法,使系统关键数据被编码并写入到非易失性存储器包括使系统关键数据通过使用多脉冲验证过程而被写入,所述多脉冲验证过程能够收窄针对与其中存储系统关键数据的非易失性存储器相关联的存储器单元的阈值电压分布。
11.一种用于向非易失性存储器写入数据的装置,其包括用于执行根据权利要求1到10中的任一项的方法的部件。
12.一种用于向非易失性存储器写入数据的装置,包括:
处理器电路;
系统关键数据组件,其被布置以供由处理器电路执行,以接收针对向所述非易失性存储器写入系统关键数据的第一写入请求,并且使系统关键数据通过使用具有给定数据格式大小的第一数据保护方案而被编码并写入到非易失性存储器;以及
用户数据组件,其被布置以供由处理器电路执行,以接收针对向非易失性存储器写入包括非系统关键数据的用户数据的第二写入请求,并且使用户数据通过使用第二数据保护方案而被编码并写入到非易失性存储器,所述第二数据保护方案具有与根据第一数据保护方案被编码并写入到非易失性存储器的系统关键数据相同的给定数据格式大小。
13.根据权利要求12的装置,包括:
编码组件,其被布置以供由处理器电路执行,以根据第一数据保护方案来对系统关键数据进行编码,并且根据第二数据保护方案来对用户数据进行编码;以及
解码组件,其被布置以供由处理器电路执行,以响应于针对经编码的系统关键数据的第一读取请求来对经编码的系统关键数据进行解码,或者响应于针对经编码的用户数据的第二读取请求来对经编码的用户数据进行解码。
14.根据权利要求12的装置,所述非易失性存储器是包括两级存储器(2LM)设备或固态驱动(SSD)设备中的一个的存储器设备的部分,并且系统关键数据包括数据,所述数据如果在被编码并写入到非易失性存储器之后是不可读取的则致使存储器设备或使用存储器设备的计算设备是不运转的。
15.根据权利要求12的装置,第一数据保护方案和第二数据保护方案的使用包括里德所罗门错误校正码(ECC)的使用,用于第二数据保护方案的里德所罗门ECC的使用具有(n,k)的码格式,其中n等于码字的大小且k等于要被编码的信息的大小,用于第一数据保护方案的里德所罗门ECC的使用具有(n-s,k-s)的码格式,其中s等于要被编码的信息的缩短。
16.根据权利要求12的装置,第一数据保护方案和第二数据保护方案的使用包括里德所罗门错误校正码(ECC)的使用,用于第二数据保护方案的里德所罗门ECC的使用具有(n,k)的第一码格式,其中n等于码字的大小且k等于要被编码的信息的大小,用于第一数据保护方案的里德所罗门ECC的使用具有(n/2,k/2)的第二码格式,其中以第一码格式的信息被编码在第一部分中,且相同的信息被冗余地编码在第二部分中。
17.根据权利要求12的装置,第一数据保护方案包括第一数据格式,所述第一数据格式包括具有与错误校正码(ECC)相关联的奇偶校验位的第一部分以及具有系统关键数据的第二部分,第二数据保护方案包括第二数据格式,所述第二数据格式包括具有针对非易失性存储器的损耗管理的元数据的第一部分、具有与ECC相关联的奇偶校验位的第二部分、以及具有用户数据的第三部分,与针对第二数据格式的第二部分的奇偶校验位相比,第一数据格式的第一部分具有更多的奇偶校验位。
18.根据权利要求12的装置,被布置成使用第一数据保护方案的系统关键数据组件包括里德所罗门错误校正码(ECC)的使用,其能够具有具有重叠的系统关键数据的四个单独的里德所罗门码字。
19.根据权利要求12的装置,包括系统关键数据组件还被布置成维持第一漂移计时器以及第二漂移计时器,且第一数据保护方案的使用包括系统关键数据组件使系统关键数据的第一和第二副本被编码并写入到非易失性存储器,第一漂移计时器在第一时间段之后到期,且第二漂移计时器被设置成在第二时间段之后到期,第一时间段不同于第二时间段,系统关键数据组件被布置成使第一副本在第一漂移计时器的到期之后被刷新,并且还使第二副本在第二漂移计时器的到期之后被刷新。
20.根据权利要求12的装置,系统关键数据组件使得系统关键数据被编码并写入到非易失性存储器包括系统关键数据经由多脉冲验证算法的使用而被写入,所述多脉冲验证算法能够收窄针对与其中存储系统关键数据的非易失性存储器相关联的存储器单元的阈值电压分布。
21.一种机器可读介质,其上面存储指令,所述指令在被执行时导致所述机器执行如权利要求1-10中任一项所述的方法。
CN201380044717.XA 2012-09-26 2013-06-24 与保护写入到非易失性存储器的系统关键数据相关联的技术 Active CN104541253B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/627,407 US20140089561A1 (en) 2012-09-26 2012-09-26 Techniques Associated with Protecting System Critical Data Written to Non-Volatile Memory
US13/627407 2012-09-26
PCT/US2013/047442 WO2014051775A1 (en) 2012-09-26 2013-06-24 Techniques associated with protecting system critical data written to non-volatile memory

Publications (2)

Publication Number Publication Date
CN104541253A CN104541253A (zh) 2015-04-22
CN104541253B true CN104541253B (zh) 2018-07-24

Family

ID=50340064

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380044717.XA Active CN104541253B (zh) 2012-09-26 2013-06-24 与保护写入到非易失性存储器的系统关键数据相关联的技术

Country Status (5)

Country Link
US (1) US20140089561A1 (zh)
EP (1) EP2901292B1 (zh)
KR (2) KR101984665B1 (zh)
CN (1) CN104541253B (zh)
WO (1) WO2014051775A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9483599B1 (en) * 2014-09-23 2016-11-01 Xilinx, Inc. Circuit design-specific failure in time rate for single event upsets
US9786386B2 (en) 2015-02-27 2017-10-10 Microsoft Technology Licensing, Llc Dynamic approximate storage for custom applications
CN105068939A (zh) * 2015-07-21 2015-11-18 广东明阳龙源电力电子有限公司 一种应用于工业级嵌入式软件系统的存储芯片及其方法
CN106708650B (zh) * 2015-11-17 2022-02-08 恩智浦美国有限公司 保护嵌入式非易失性存储器免受干扰
US10033411B2 (en) 2015-11-20 2018-07-24 Intel Corporation Adjustable error protection for stored data
US9478286B1 (en) * 2015-12-26 2016-10-25 Intel Corporation Transient current-protected threshold switching devices systems and methods
CN106020726B (zh) * 2016-05-23 2019-11-26 联想(北京)有限公司 写入元数据的方法、设备、以及存储装置
US10547326B2 (en) * 2017-01-12 2020-01-28 Proton World International N.V. Error correction in a flash memory
US10620879B2 (en) 2017-05-17 2020-04-14 Macronix International Co., Ltd. Write-while-read access method for a memory device
US10445088B2 (en) 2018-01-11 2019-10-15 Macronix International Co., Ltd. System boot code clone
US10977050B2 (en) 2018-01-11 2021-04-13 Macronix International Co., Ltd. Method for managing system boot code memory, memory device and electronic system using the same
CN109857340B (zh) * 2019-01-14 2022-05-06 普联技术有限公司 Nor flash中文件的存储和读取方法、装置及存储介质
US11082168B1 (en) 2020-03-19 2021-08-03 Western Digital Technologies, Inc. Entropy driven endurance for normalized quality of service
TWI738390B (zh) * 2020-06-19 2021-09-01 群聯電子股份有限公司 資料保護方法、記憶體儲存裝置及記憶體控制電路單元
US20220113879A1 (en) * 2020-10-14 2022-04-14 Microchip Technology Incorporated System with Increasing Protected Storage Area and Erase Protection
CN112073541B (zh) * 2020-11-11 2021-02-26 卡斯柯信号(北京)有限公司 一种安全苛求设备关键数据置信存储方法及系统
US11372700B1 (en) 2020-12-08 2022-06-28 Xilinx, Inc. Fault-tolerant data transfer between integrated circuits
US11961547B2 (en) * 2022-02-09 2024-04-16 Micron Technology, Inc. Techniques for memory system refresh

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768296A (en) 1994-07-01 1998-06-16 Quantum Corporation ECC system supporting different-length Reed-Solomon codes whose generator polynomials have common roots
US5956454A (en) * 1994-09-26 1999-09-21 Mitsubishi Denki Kabushiki Kaisha Digital VTR
US6769088B1 (en) * 1999-06-30 2004-07-27 Maxtor Corporation Sector-coding technique for reduced read-after-write operations
US7079422B1 (en) * 2000-04-25 2006-07-18 Samsung Electronics Co., Ltd. Periodic refresh operations for non-volatile multiple-bit-per-cell memory
US20030041300A1 (en) * 2001-08-23 2003-02-27 Koninklijke Philips Electronics N.V. Universal device for processing Reed-Solomon forward error-correction encoded messages
US7221592B2 (en) * 2005-02-25 2007-05-22 Micron Technology, Inc. Multiple level programming in a non-volatile memory device
US8533562B2 (en) 2007-09-12 2013-09-10 Sandisk Technologies Inc. Data protection after possible write abort or erase abort
US8032497B2 (en) 2007-09-26 2011-10-04 International Business Machines Corporation Method and system providing extended and end-to-end data integrity through database and other system layers
KR101398212B1 (ko) * 2008-03-18 2014-05-26 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법
CN101677018B (zh) * 2008-09-16 2012-05-23 盛群半导体股份有限公司 存储器的保密系统及存储器烧录模式下读取的保密方法
US9075999B2 (en) 2009-04-28 2015-07-07 Sandisk Technologies Inc. Memory device and method for adaptive protection of content
TWI417893B (zh) * 2009-05-06 2013-12-01 Silicon Motion Inc 資料存取裝置及資料存取方法
US8245112B2 (en) * 2009-06-04 2012-08-14 Lsi Corporation Flash memory organization
JP5798737B2 (ja) * 2009-12-28 2015-10-21 パナソニックIpマネジメント株式会社 半導体記録装置、半導体記録装置の制御方法及び半導体記録システム
US8356137B2 (en) * 2010-02-26 2013-01-15 Apple Inc. Data storage scheme for non-volatile memories based on data priority
KR101650130B1 (ko) * 2010-05-14 2016-08-24 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 카피-백 방법
US8533550B2 (en) * 2010-06-29 2013-09-10 Intel Corporation Method and system to improve the performance and/or reliability of a solid-state drive
US8386887B2 (en) 2010-09-24 2013-02-26 Texas Memory Systems, Inc. High-speed memory system
US8458568B2 (en) 2010-09-24 2013-06-04 International Business Machines Corporation Systems and methods for memory devices
TWI459396B (zh) * 2010-12-30 2014-11-01 Phison Electronics Corp 資料寫入與讀取方法、記憶體控制器與記憶體儲存裝置
TWI459197B (zh) * 2011-04-21 2014-11-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置

Also Published As

Publication number Publication date
EP2901292B1 (en) 2018-11-21
KR20170003716A (ko) 2017-01-09
KR20150036399A (ko) 2015-04-07
CN104541253A (zh) 2015-04-22
US20140089561A1 (en) 2014-03-27
WO2014051775A1 (en) 2014-04-03
EP2901292A4 (en) 2016-04-13
EP2901292A1 (en) 2015-08-05
KR101984665B1 (ko) 2019-05-31

Similar Documents

Publication Publication Date Title
CN104541253B (zh) 与保护写入到非易失性存储器的系统关键数据相关联的技术
US8832530B2 (en) Techniques associated with a read and write window budget for a two level memory system
US9747148B2 (en) Error monitoring of a memory device containing embedded error correction
Yoon et al. FREE-p: Protecting non-volatile memory against both hard and soft errors
US8782329B2 (en) Method for performing data shaping, and associated memory device and controller thereof
US9141299B2 (en) Method for reducing power consumption in solid-state storage device
US10120751B2 (en) Techniques to recover data using exclusive OR (XOR) parity information
CN104956443B (zh) Ram刷新率
CN106462480A (zh) 用于处理持久存储器中的错误的技术
CN104583964B (zh) 与用于编码的数据的纠错相关联的方法和设备
TW201351425A (zh) 用於解碼取決於干擾條件下之資料之系統與方法
US20120254694A1 (en) Redundant storage in non-volatile memory by storing redundancy information in volatile memory
US10698765B2 (en) Techniques to recover data in a network storage system
CN104541249A (zh) 用于非易失性存储器的耐久性感知纠错码(ecc)保护
KR101557572B1 (ko) 메모리 회로들, 메모리에 액세스하는 방법 및 메모리를 복구하는 방법
US20210019218A1 (en) Media management logger for a memory sub-system
CN103680639A (zh) 一种随机存储器的周期性自检错恢复方法
CN105931673A (zh) 数据储存器件及其操作方法
CN103984506A (zh) 闪存存储设备数据写的方法和系统
CN103700396A (zh) 一种面向sram的抗seu错误累积的控制器及方法
CN109783005A (zh) 控制记忆装置的方法、记忆装置、及其控制器和电子装置
CN101634938A (zh) 固态硬盘的数据迁移方法、数据迁移装置及固态硬盘
CN107562655B (zh) 一种数据存储方法和装置
CN204833243U (zh) 嵌入式微处理器高速缓存的混合纠错装置
Wang Architecting Memory Systems Upon Highly Scaled Error-Prone Memory Technologies

Legal Events

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