CN106445724B - 与受保护数据分开存储奇偶校验数据 - Google Patents

与受保护数据分开存储奇偶校验数据 Download PDF

Info

Publication number
CN106445724B
CN106445724B CN201610656869.0A CN201610656869A CN106445724B CN 106445724 B CN106445724 B CN 106445724B CN 201610656869 A CN201610656869 A CN 201610656869A CN 106445724 B CN106445724 B CN 106445724B
Authority
CN
China
Prior art keywords
data
parity
memory devices
block
memory device
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
CN201610656869.0A
Other languages
English (en)
Other versions
CN106445724A (zh
Inventor
Z.Z.班迪克
R.E.马蒂斯库
宋承桓
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.)
SanDisk Technologies LLC
Original Assignee
Western Digital Technologies Inc
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 Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of CN106445724A publication Critical patent/CN106445724A/zh
Application granted granted Critical
Publication of CN106445724B publication Critical patent/CN106445724B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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/1064Adding 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 cache or content addressable memories
    • 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
    • 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
    • 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
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • 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
    • 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
    • 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
    • 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
    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

一种储存装置包括包含多个存储器装置的主储存阵列,一个或多个奇偶校验存储器装置和配置为存储数据块的控制器。控制器可以被配置为至少通过以下来存储数据块:将数据块写入到主储存阵列,确定用于数据块的奇偶校验数据,和将所确定的奇偶校验数据的至少一部分写入到一个或多个奇偶校验存储器装置。

Description

与受保护数据分开存储奇偶校验数据
技术领域
本公开涉及存储器管理,以及更加具体地,涉及在存储装置中分配奇偶校验数据。
背景技术
计算机或者其他电子装置中使用的存储器装置可以是非易失性存储器或者易失性存储器。非易失性存储器和易失性存储器之间的主要差异在于非易失性存储器可以持续地存储数据而不需要永久的电源。结果,非易失性存储器装置发展为用于各种电子应用的普及类型的存储器。例如,包括闪存存储器装置的非易失性存储器装置通常并入固态存储装置,比如固态驱动器(SSD)中。
在某些实例中,当写入数据到非易失性存储器装置时,控制器可以执行一个或多个操作以保护数据免受存储器错误。例如,除写入数据到非易失性存储器装置之外,控制器可以生成奇偶校验数据和将奇偶校验数据写入到存储器装置,该存储器装置可以用于在比如存储器错误的情况下恢复数据。
发明内容
在一个实例中,储存装置包括包含多个存储器装置的主储存阵列,一个或多个奇偶校验存储器装置和配置为存储数据块的控制器。在该实例中,控制器配置为通过至少将数据块写入到主储存阵列、确定用于数据块的奇偶校验数据和将所确定的奇偶校验数据的至少一部分写入到一个或多个奇偶校验存储器装置,来存储数据块。
在另一实例中,一种方法包括:由储存装置的控制器将数据块写入到包括多个存储器装置的主储存阵列,由控制器确定用于数据块的奇偶校验数据,和由控制器将所确定的奇偶校验数据写入到一个或多个奇偶校验存储器装置。
在另一实例中,一种计算机可读存储介质存储指令,该指令当被执行时,使得储存装置的一个或多个处理器:将数据块写入到包括多个存储器装置的主储存阵列,确定用于数据块的奇偶校验数据,和将所确定的奇偶校验数据写入到一个或多个奇偶校验存储器装置。
在另一实例中,一种系统,包括:包括多个存储器装置的主储存阵列,一个或多个奇偶校验存储器装置,用于将数据块写入到主储存阵列的装置,用于确定用于数据块的奇偶校验数据的装置和用于将所确定的奇偶校验数据写入到一个或多个奇偶校验存储器装置的装置。
在以下的附图和说明书中提到一个或多个实例的细节。其他特征、目的和优点将从说明书、附图和从权利要求是明显的。
附图说明
图1是图示根据本公开的一个或多个技术的储存装置可以用作主机装置的储存装置的示例储存环境的概念性和示意性框图。
图2是图示根据本公开的一个或多个技术的包括多个块的示例存储器装置的概念性框图,其中每个块包括多个页。
图3是图示根据本公开的一个或多个技术的控制器的示例细节的概念性和示意性框图。
图4是图示根据本公开的一个或多个技术的在存储器装置的相同页存储的用户数据和相应的奇偶校验数据的示例逻辑配置的概念图。
图5是图示根据本公开的一个或多个技术的在存储器装置的相同页存储的用户数据和相应的奇偶校验数据的示例物理配置的概念图。
图6是图示根据本公开的一个或多个技术的在存储器装置的不同页存储的用户数据和至少一些奇偶校验数据的示例逻辑配置的概念图。
图7是图示根据本公开的一个或多个技术的在存储器装置的不同页存储的用户数据和至少一些奇偶校验数据的示例物理配置的概念图。
图8是图示根据本公开的一个或多个技术的在不同存储器装置存储的用户数据和至少一些奇偶校验数据的示例逻辑配置的概念图。
图9是图示根据本公开的一个或多个技术的在不同存储器装置存储的用户数据和至少一些奇偶校验数据的示例物理配置的概念图。
图10是根据本公开的一个或多个技术的用于在与关联用户数据不同的存储器装置中存储至少一些奇偶校验数据的示例技术的流程图。
具体实施方式
本公开描述了包括控制器的存储装置,该控制器配置为在主存储器装置中存储用户数据和在奇偶校验存储器装置中存储与用户数据相关联的至少一些纠错码(ECC)奇偶校验数据。通过在奇偶校验存储器装置中存储至少一些ECC奇偶校验数据,可以由ECC奇偶校验数据使用大量的储存设备,这可以允许更强的ECC奇偶校验技术,更好地保护用户数据的完整性。比较起来,在一些存储装置中,ECC奇偶校验数据的大小可能限于用户数据块的大小和存储器装置的物理页的大小之间的差值。例如,在存储器装置中的物理页包括8320字节且用户数据块的大小是8192字节的情况下,奇偶校验数据的大小可能限于128字节。在奇偶校验存储器装置中存储至少一些ECC奇偶校验数据还可以促进灵活的ECC强度,例如,随着存储装置的年龄增加而增加ECC奇偶校验数据的量。
另外,在奇偶校验存储器装置中存储至少一些ECC奇偶校验数据与使用主存储器装置内数据的多个页来存储ECC奇偶校验信息相比,可以减少主存储器装置的读取访问。在某些实例中,比如在控制器使用先进的逻辑到物理地址映射方案的情况下,可以使得由控制器使用的奇偶校验数据的大小独立于存储器装置的物理页的大小。具体来说,控制器可以分配多个物理页地址以存储奇偶校验数据。以这种方式,控制器可以使用较高的ECC强度。但是,因为奇偶校验数据的一部分存储在存储器装置的与用户数据分开的页中,控制器可能需要读取第一物理页和第二物理页两者以检索用户数据。类似地,当存储用户数据时,控制器可能需要写入到存储器装置中的两个不同物理地址,这可能不是期望的(例如,由于增加的周期计数、降低的性能、降低的可靠性和增加的读取干扰)。减少主存储器装置的读取和写入访问可以减少耗损并延长主存储器装置的寿命。
根据本公开的一个或多个技术,控制器可以在单独的奇偶校验存储器装置中存储ECC奇偶校验数据的至少一部分。例如,控制器可以确定与用户数据块相关联的奇偶校验数据,在主存储器装置中存储用户数据块,和在与主存储器装置分开的奇偶校验存储器装置中存储奇偶校验数据的至少一部分。在某些实例中,控制器可以并行地将奇偶校验数据的至少一部分写入到奇偶校验存储器装置并将用户数据块写入到主存储器装置。类似地,在某些实例中,控制器可以并行地从奇偶校验存储器装置读取奇偶校验数据的至少一部分和从主存储器装置读取用户数据块。以这种方式,控制器可以使用更大尺寸的奇偶校验数据而不显著地降低性能。
在某些实例中,奇偶校验存储器装置可以是与主存储器装置相同类型的存储器装置。例如,在某些实例中,奇偶校验存储器装置和主存储器装置两者都可以是NAND闪存存储器装置,但是可以是由控制器分开地可寻址的。但是,奇偶校验数据的大小可以显著地小于用户数据的大小;因此,奇偶校验存储器装置的大小可以显著地小于主存储器装置的大小。例如,奇偶校验存储器装置中存储的奇偶校验数据的大小可以小于主存储器装置中存储的用户数据的大小的十分之一。
根据本公开的一个或多个技术,存储装置可以包括主存储器装置和作为与主装置不同类型的存储器装置的奇偶校验存储器装置。在某些实例中,主存储装置可以是NAND闪存存储器装置且奇偶校验存储器装置可以是储存类的类型的存储器装置,比如磁阻随机存取存储器(MRAM)装置、相变随机存取存储器(PRAM)装置或者阻抗随机存取存储器(ReRAM)装置。与一些闪存存储器装置(例如,NAND闪存存储器装置)相比,这种储存类的存储器装置可以具有每比特增加的成本和减小的等待时间(例如,毫微秒相对微秒)。如上所述,奇偶校验数据的大小可以显著地小于用户数据的大小。因此,奇偶校验存储器装置的大小可以显著地小于主存储器装置的大小,这可以使得奇偶校验存储器装置的成本更不显著。另外,因为奇偶校验存储器装置可以具有比主存储器装置更短的等待时间,奇偶校验数据到奇偶校验存储器装置的写入和读取可以占用比用户数据到主存储器装置的写入和读取更少的时间。以这种方式,控制器可以使用更大尺寸的奇偶校验数据而不显著地降低性能。
图1是图示根据本公开的一个或多个技术的储存装置6可以用作主机装置4的储存装置的示例储存环境2的概念性和示意性框图。例如,主机装置4可以使用储存装置6中包括的非易失性存储器装置以存储和检索数据。在某些实例中,储存环境2可以包括可以操作为储存阵列的多个储存装置,比如储存装置6。例如,储存环境2可以包括配置为集合地用作用于主机装置4的大容量储存装置的廉价/独立盘(RAID)的冗余阵列的多个储存装置6。
储存环境2可以包括主机装置4,该主机装置4可以存储数据到比如储存装置6的一个或多个储存装置和/或从该一个或多个储存装置检索数据。如图1所示,主机装置4可以经由接口14与储存装置6通信。主机装置4可以包括各种装置中的任意,包括计算机服务器、网络附加存储(NAS)单元、台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、比如所谓的“智能”电话的电话机、所谓的“智能”平板、电视、相机、显示装置、数字媒体播放器、视频游戏主机、视频流装置,等等。
如图1所示,储存装置6可以包括控制器8、非易失性存储器阵列10(NVMA10)、易失性存储器12、接口14和一个或多个奇偶校验存储器装置20。在某些实例中,储存装置6可以包括为了清楚起见而在图1中未示出的附加组件。例如,储存装置6可以包括印制电路板(PB)等,储存装置6的组件机械地附于该印制电路板,且该印制电路板包括电气地互连储存装置6的组件的导电迹线。在某些实例中,储存装置6的连接器配置和物理尺寸可以符合一个或多个标准形式因素。一些示例标准形式因素包括,但是不限于3.5”硬盘驱动器(HDD)、2.5”HDD、1.8”HDD、外围组件互连(PCI)、PCI-扩展(PCI-X)、高速PCI(PCIe)(例如,PCIe x1、x4、x8、x16、PCIe迷你卡、MiniPCI等)。在某些实例中,储存装置6可以直接耦合(例如,直接焊接)到主机装置4的母板。
储存装置6可以包括用于与主机装置4接口连接的接口14。接口14可以包括用于与主机装置4交换数据的数据总线和用于与主机装置4交换命令的控制总线中的一个或者两个。接口14可以根据任何适当的协议操作。例如,接口14可以根据一个或多个以下协议操作:先进技术附件(ATA)(例如,串行-ATA(SATA)和并行-ATA(PATA))、光纤信道、小型计算机系统接口(SCSI)、串行附加SCSI(SAS)、外围组件互连(PCI)、PCI-直达、或者非易失性高速存储器(NVMe)。接口14的电连接(例如,数据总线、控制总线或者两者)电连接到控制器8,提供主机装置4和控制器8之间的电连接,允许数据在主机装置4和控制器8之间交换。在某些实例中,接口14的电连接还可以允许储存装置6从主机装置4接收功率。
储存装置6可以包括NVMA10,其可以包括多个存储器装置16Aa-16Nn(集合地,“存储器装置16”)。存储器装置16中的每一个可以配置为存储和/或检索数据。例如,存储器装置16的一存储器装置可以从指令存储器装置存储数据的控制器8接收数据和消息。类似地,存储器装置16的存储器装置可以从指令存储器装置检索数据的控制器8接收消息。在某些实例中,存储器装置16中的每一个可以被称为模(die)。在某些实例中,单个物理芯片可以包括多个模(即,多个存储器装置16)。在某些实例中,存储器装置16中的每一个可以配置为存储相对大量的数据(例如,128MB、256MB、512MB、1GB、2GB、4GB、8GB、16GB、32GB、64GB、128GB、256GB、512GB、1TB等)。
在某些实例中,存储器装置16可以包括闪存存储器装置。闪存存储器装置可以包括基于NAND或者NOR的闪存存储器装置,且可以基于每个闪存存储器单元的晶体管的浮置栅极中包括的电荷来存储数据。在NAND闪存存储器装置中,闪存存储器装置可以被划分为多个块。图2是图示包括多个块17A-17N(集合地,“块17”)的示例存储器装置16Aa的概念性框图,其中每个块包括多个页19Aa-19Nm(集合地,“页19”)。块17中的每个块可以包括多个NAND单元。可以使用字线串行地电连接NAND单元的行以定义页(页19的一个页)。多个页19中的每一个的各个单元可以电连接到各个比特线。控制器8可以在页级别写入数据到NAND闪存存储器装置和从NAND闪存存储器装置读取数据,并在块级别从NAND闪存存储器装置擦除数据。
在某些实例中,存储器装置16可以包括任何类型的非易失性存储器装置。存储器装置16的一些实例包括,但不限于闪存存储器装置(例如,NAND或者NOR)、相变存储器(PCM)装置、阻抗随机存取存储器(ReRAM)装置、磁阻随机存取存储器(MRAM)装置、铁电随机存取存储器(F-RAM)、全息存储器装置和任何其他类型的非易失性存储器装置。
在某些实例中,控制器8分开地连接到存储器装置16的每个存储器装置可能是不实际的。这样,存储器装置16和控制器8之间的连接可以多路复用。作为示例,存储器装置16可以被分组为信道18A-18N(集合地,“信道18”)。例如,如图1所示,存储器装置16Aa-16An可以被分组为第一信道18A,且存储器装置16Na-16Nn可以被分组为第N信道18N。分组为信道18中的每一个的存储器装置16可以共享到控制器8的一个或多个连接。例如,分组为第一信道18A的存储器装置16可以附加到公共I/O总线和公共控制总线。储存装置6可以包括用于信道18的每个信道的公共I/O总线和公共控制总线。在某些实例中,信道18的每个信道可以包括可以用于每个信道上的多路存储器装置的一组芯片启用(CE)线。例如,每个CE行可以连接到存储器装置18中的各个存储器装置。以这种方式,可以减少控制器8和存储器装置18之间的单独连接的数目。另外,因为每个信道具有到控制器8的独立的一组连接,由于控制器8可以同时发布不同命令到每个信道,连接的减少可以不显著地影响数据吞吐率。
储存装置6可以包括电源11,该电源11可以向储存装置6的一个或多个组件提供功率。当在标准模式下操作时,电源11可以使用由外部装置,比如主机装置4提供的功率,来向一个或多个组件提供功率。例如,电源11可以使用经由接口14从主机装置4接收到功率而向一个或多个组件提供功率。在某些实例中,电源11可以包括配置为当在关闭模式下操作时,比如在停止从外部装置接收到功率的情况下向一个或多个组件提供功率的一个或多个储能组件。以这种方式,电源11可以用作机载备用电源。一个或多个储能组件的一些实例包括,但不限于电容器、超级电容器、电池等。
储存装置6还可以包括由控制器8使用以存储信息的易失性存储器12。在某些实例中,控制器8可以使用易失性存储器12作为高速缓存。例如,控制器8可以在易失性存储器12中存储高速缓存的信息13,直到高速缓存的信息13被写入到存储器装置16为止。如图1所示,易失性存储器12可以消耗从电源11接收到的功率。易失性存储器12的实例包括,但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态RAM(SRAM)和同步动态RAM(SDRAM(例如,DDR1、DDR2、DDR3、DDR3L、LPDDR3、DDR4等))。
储存装置6包括可以管理储存装置6的一个或多个操作的控制器8。例如,控制器8可以管理数据从存储器装置16的读取和/或数据到存储器装置16的写入。在某些实例中,控制器8可以执行一个或多个操作以管理由存储器装置16存储的数据。例如,控制器8可以执行一个或多个操作以保证由存储器装置16存储的数据的完整性,比如存储用于由存储器装置16存储的用户数据的奇偶校验数据。以下参考图3讨论控制器8的附加细节。
根据本公开的一个或多个技术,储存装置6可以包括一个或多个奇偶校验存储器装置20,其可以由控制器8使用以存储至少一些奇偶校验信息。在某些实例中,奇偶校验存储器装置20可以包括任何类型的非易失性存储器装置。奇偶校验存储器装置20的一些实例包括,但不限于闪存存储器装置,比如NAND闪存存储器装置和/或NOR闪存存储器装置,储存类的存储器装置,全息存储器装置和任何其他类型的非易失性存储器装置。储存类的存储器装置的一些实例包括,但不限于相变存储器(PCM)装置、阻抗随机存取存储器(ReRAM)装置、磁阻随机存取存储器(MRAM)装置和铁电随机存取存储器(F-RAM)。在某些实例中,储存类的存储器装置可以是字节可访问的,具有相对高的耐久性(可与闪存存储器相比或者大于闪存存储器),具有相对低的写和读等待时间(例如,低于闪存存储器,在某些实例中可与DRAM相比)。
如上所述,控制器8可以使得存储器装置16、奇偶校验存储器装置20或者两者存储与由存储器装置16存储的用户数据相关联的奇偶校验数据。例如,当存储用户数据块时,控制器8可以确定和存储用户数据块与用户数据的异或(XOR)。当检索用户数据块时,控制器8可以读取存储的用户数据块和与用户数据块相关联的存储的奇偶校验数据两者,并使用所存储的奇偶校验数据以验证用户数据块。在某些实例中,控制器8可以在存储器装置的相同物理页中存储奇偶校验数据与用户数据。例如,控制器8可以在图2的存储器装置16Aa的块17A的页19Aa中与用户数据一起存储奇偶校验数据。
由控制器8使用的奇偶校验数据的大小可以被称为ECC强度。在某些实例中,奇偶校验数据的较大的大小可以提供相对于数据损坏错误的更好的保护。但是,随着奇偶校验数据的大小增加,由奇偶校验数据消耗的存储器的量也增加。在某些实例中,比如在控制器8在存储器装置的相同物理页中存储奇偶校验数据与用户数据的情况下,奇偶校验数据的大小可能限于用户数据块的大小和存储器装置的物理页的大小之间的差值。例如,在物理页19Aa的大小是8320字节且用户数据块的大小是8192字节的情况下,控制器8可以在与用户数据相同的页中存储的奇偶校验数据的大小可能限于128字节。但是,在某些实例中,可能期望控制器8存储比用户数据块的大小和存储器装置的物理页的大小之间的有限大小差值更大的奇偶校验数据,例如,以提供相对于数据损坏错误的更强的保护。
在某些实例中,控制器8可以使得奇偶校验数据的大小独立于存储器装置16的物理页的大小,存储器装置16的物理页的大小和用户数据块的大小之间的差值,或者两者。例如,控制器8可以在存储器装置16内的不同物理页存储用户数据和至少一些奇偶校验数据。作为一个实例,控制器8可以在存储器装置16Aa的页19Aa中与用户数据一起存储奇偶校验数据的第一部分,并在存储器装置16Aa的页19Ab中存储奇偶校验数据的第二部分。但是,因为奇偶校验数据的第二部分存储在存储器装置16的与用户数据分开的页中,控制器8可能需要读取两个页(例如,页19Aa和页19Ab)以检索和解码用户数据。类似地,当存储用户数据时,控制器8可能需要写入到存储器装置16中的两个不同物理页,这可能不是期望的(例如,由于增加的周期计数、降低的性能、降低的可靠性和增加的读取干扰)。作为另一实例,与在存储器装置16的存储器装置内与相应的用户数据不同的物理页存储奇偶校验数据相反地,控制器8可以在奇偶校验存储器装置20中存储奇偶校验数据的至少一部分。例如,控制器8可以确定用于用户数据块的奇偶校验数据,在存储器装置16中存储用户数据块,和在奇偶校验存储器装置20中存储奇偶校验数据的至少一部分。在某些实例中,控制器8可以并行地将奇偶校验数据的至少一部分写入到奇偶校验存储器装置20和将用户数据块写入到存储器装置16。类似地,在某些实例中,控制器8可以并行地从奇偶校验存储器装置20读取奇偶校验数据的至少一部分和从存储器装置16读取用户数据块。以这种方式,控制器8可以使用较大尺寸的奇偶校验数据而没有或者具有减少的不想要的效果(例如,增加周期计数、降低的性能、降低的可靠性和增加的读取干扰)。
图3是图示控制器8的示例细节的概念性和示意性框图。在某些实例中,控制器8可以包括地址转换模块22、写入模块24、维护模块26、读取模块28、调度模块30和多个信道控制器32A-32N(集合地,“信道控制器32”)。在其他实例中,控制器8可以包括附加的模块或者硬件单元,或者可以包括更少的模块或者硬件单元。控制器8可以包括微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他数字逻辑电路。
控制器8可以经由接口14与主机装置4接口连接,并管理数据到存储器装置16的存储和数据从存储器装置16的检索。例如,控制器8的写入模块24可以管理到存储器装置16的写入。例如,写入模块24可以经由接口14从主机装置4接收消息,该消息指令储存装置6存储与逻辑地址相关联的数据和可以被称为用户数据的数据。写入模块24可以管理用户数据到存储器装置16的写入。
例如,写入模块24可以与地址转换模块22通信,该地址转换模块22管理在由主机装置4使用以管理数据的储存位置的逻辑地址和由写入模块24使用以指导数据到存储器装置的写入的物理块地址之间的转换。控制器8的地址转换模块22可以使用将由存储器装置16存储的数据的逻辑地址(或者逻辑块地址)转换为由存储器装置16存储的数据的物理块地址的闪存转换层或者表。例如,主机装置4可以在到储存装置6的指令或者消息中使用由存储器装置16存储的数据的逻辑块地址,同时写入模块24使用数据的物理块地址以控制数据到存储器装置16的写入。(类似地,读取模块28可以使用物理块地址以控制数据从存储器装置16的读取。)物理块地址对应于存储器装置16的实际的物理块。在某些实例中,地址转换模块22可以在易失性存储器12中,比如高速缓存的信息13内存储闪存转换层或者表。
以这种方式,可以允许主机装置4使用用于某个数据集的静态逻辑块地址,同时数据实际上存储的物理块地址可以改变。地址转换模块22可以维持闪存转换层或者表以将逻辑块地址映射到物理块地址,以允许由主机装置4使用静态逻辑块地址同时数据的物理块地址可以改变,例如,由于耗损均衡、垃圾收集等。
如上所述,控制器8的写入模块24可以执行一个或多个操作以管理数据到存储器装置16的写入。例如,写入模块24可以通过选择存储器装置16内的一个或多个块以存储数据和使得包括所选的块的存储器装置16的存储器装置实际上存储数据,来管理数据到存储器装置16的写入。如上所述,写入模块24可以使得地址转换模块22基于所选的块更新闪存转换层或者表。例如,写入模块24可以从主机装置4接收包括数据和逻辑块地址的单元的消息,选择存储器装置16的特定的存储器装置内的块以存储数据,使得存储器装置16的特定的存储器装置实际上存储数据(例如,经由与特定的存储器装置对应的信道控制器32的信道控制器),和使得地址转换模块22更新闪存转换层或者表以指示逻辑块地址对应于特定的存储器装置内的所选的块。
读取模块28可以类似地控制数据从存储器装置16的读取。例如,读取模块28可以从主机装置4接收请求具有相关联的逻辑块地址的数据的消息。地址转换模块22可以使用闪存转换层或者表将逻辑块地址转换为物理块地址。读取模块28然后可以控制一个或多个信道控制器32以从物理块地址检索数据。类似于写入模块24,读取模块28可以选择一个或多个块并将可以使得信道控制器32从所选的块读取数据的消息传递到信道控制器32。
为了将具有逻辑值0(充电的)的比特写入到具有前一逻辑值1(未充电的)的比特,使用大电流。该电流可以充分地大,使得其可能导致相邻闪存存储器单元的电荷的无意改变。为了保护免于无意改变,闪存存储器单元的整个块可以在将任何数据写入到块内的单元之前被擦除到逻辑值1(未充电的)。因此,闪存存储器单元可以在块级别被擦除和在页级别被写入。
因此,即使为了写入可能消耗小于一个页的量的数据,控制器8也可能使得整个块被擦除。这可能导致写入放大,这指的是要写入到存储器装置16的从主机装置4接收到数据量和实际上写入到存储器装置16的数据量之间的比率。写入放大促成了闪存存储器单元比不发生写入放大时更快的耗损。当由于用于擦除闪存存储器单元的相对高的电压而擦除闪存存储器单元时,闪存存储器单元的耗损可能发生。在多个擦除周期上,相对高的电压可能造成闪存存储器单元的改变。最终,闪存存储器单元可能损坏,以使得数据可能不再被写入到单元。
控制器8可以实现以减小闪存存储器单元的写入放大和耗损的一个技术包括将从主机装置4接收到的数据写入到未使用的块(例如,图2的块17)或者部分地使用的块。例如,如果主机装置4发送数据到仅包括已经由储存装置6存储的数据的小改变的储存装置6。则控制器可以将旧的数据标记为陈旧的或者不再有效的。随着时间,与擦除保存旧的数据的块和将所更新的数据写入到相同块相比,这可能减少暴露的擦除操作块的数目。
响应于从主机装置4接收写入命令,写入模块24可以确定在存储器装置16的哪个物理位置(块17)写入数据。例如,写入模块24可以从地址转换模块22或者维护模块26请求为空的(例如,不存储数据)、部分地空的(例如,仅块的一些页存储数据)或者存储至少一些无效(或者陈旧的)数据的一个或多个物理块地址。在接收一个或多个物理块地址的情况下,写入模块24可以定义和/或选择一个或多个块,并将使得信道控制器32写入数据到块的消息传递到信道控制器32A-32N(集合地,“信道控制器32”)。
信道控制器32的每个信道控制器可以连接到信道18的各个信道。在某些实例中,控制器8可以包括与储存装置2的信道18的数目相同数目的信道控制器32。信道控制器32可以例如,在写入模块24、读取模块28和/或维护模块26的控制之下,执行连接到各个信道的存储器装置16的寻址、编程、擦除和读取的亲密控制。
维护模块26可以配置为执行与维持储存装置6(例如,存储器装置16)的性能和延伸使用寿命有关的操作。例如,维护模块26可以实现耗损均衡或者垃圾收集中的至少一个。
控制器8的调度模块30可以执行一个或多个操作以调度要由存储器装置16执行的活动。例如,调度模块30可以调度从控制器8的其他组件接收到的请求以命令一个或多个存储器装置16在运行时间期间执行一个或多个活动。在某些实例中,调度模块30可以调度而以接收请求的次序执行这些请求(例如,先进先出或者FIFO)。在某些实例中,调度模块30可以基于一个或多个因素调度请求,该一个或多个因素可以包括,但不限于请求的类型(例如,读取请求、写入请求、擦除请求、垃圾收集请求等)、从接收到请求开始经过的时间量、由请求的执行消耗的功率的量、带宽考虑等。
在某些实例中,除使得由存储器装置16存储用户数据的单元之外,写入模块24还可以使得存储器装置16存储可以用于如果一个或多个块故障或者变得损坏则恢复和/或验证数据单元的信息(奇偶校验数据)。在某些实例中,写入模块24使得在存储器装置16的存储器装置的相同物理页中存储奇偶校验数据与用户数据。例如,地址转换模块22可以实现可以将单个物理页地址映射到单个逻辑页地址的简单的逻辑到物理地址映射方案。以下参考图4和图5描述这种方案的实例。
在某些实例中,可能期望写入模块24使得对于用户数据块存储更多奇偶校验数据。例如,随着使用存储器装置16和老化,存储器装置16的存储器单元的可靠性可能恶化。在某些实例中,存储器装置16的存储器单元的可靠性可以量化为比特误码率(BER)。同样地,为了改进读取模块28成功地检索用户数据块的概率,写入模块24可以随着BER增加存储更大大小的奇偶校验数据。作为一个实例,在BER小于阈值的情况下,写入模块24可以对于每个用户数据块存储比当BER大于阈值时更少的奇偶校验数据。
但是,在某些实例中,写入模块24可能不能容易地使得存储的奇偶校验数据的量更大。例如,在写入模块24使得用于用户数据块的奇偶校验数据与用户数据存储在存储器装置16的存储器装置的相同物理页中的实例中,奇偶校验数据的大小可能限于用户数据块的大小和存储器装置的页面的大小之间的差值。例如,在存储器装置中的物理页可以存储8320字节且用户数据块的大小是8192字节的情况下,奇偶校验数据的大小可能限于128字节。该大小限制可以防止写入模块24容易地增加存储的奇偶校验数据的量,这可能是不期望的。
图4是图示在存储器装置的相同页存储的用户数据和相应的奇偶校验数据的示例逻辑配置的概念图。如图4所示,用户数据40A和相应的奇偶校验数据42A可以与逻辑页地址44A相关联,且用户数据40B和相应的奇偶校验数据42B可以与逻辑页地址44B相关联。长度46可以表示在每个逻辑页地址用户数据和奇偶校验数据的组合长度。在某些实例中,用户数据40A和用户数据40B每个可以是8192字节长且奇偶校验数据42A和奇偶校验数据42B每个是128字节长,以使得在每个逻辑页地址要存储的数据的组合长度可以是8320字节。图5是在存储器装置的相同页存储的用户数据和相应的奇偶校验数据的示例物理配置的概念图。在某些实例中,物理页地址50A和物理页地址50B可以分别对应于图2的页19Aa和页19Ab。长度48可以表示写入模块24可以使得在每个物理页地址存储的数据的最大尺寸。在某些实例中,长度48可以是8320字节。
在逻辑页地址的数据块的组合大小小于或等于可以在每个物理页地址存储的数据的最大大小的情况下,写入模块24可以使得在每个逻辑页地址的数据块写入到物理页地址而不重排。在图4和图5的实例中,因为逻辑页地址44A的数据块(即,用户数据40A和奇偶校验数据42A)的组合长度小于或等于长度48,所以写入模块24可以使得在逻辑页地址44A的数据块写入到物理页地址50A而不重排。但是,在该实例中,在用户数据40A和奇偶校验数据42A的组合大小不大于长度48的情况下,写入模块24不可能增加奇偶校验数据42A的大小。如上所述,该限制可能是不期望的。
在某些实例中,写入模块24可以使得奇偶校验数据的大小独立于存储器装置16的物理页的大小。例如,写入模块24可以在存储器装置16内的不同物理页存储用户数据和至少一些奇偶校验数据。作为一个实例,控制器8可以在存储器装置16Aa的页19Aa中与用户数据一起存储奇偶校验数据的第一部分,并在存储器装置16Aa的页19Ab中存储奇偶校验数据的第二部分。因为奇偶校验数据的第二部分存储在存储器装置16的与用户数据分开的页中,读取模块28可以读取两个页(例如,页19Aa和页19Ab)以检索用户数据。类似地,当存储用户数据时,写入模块24可以写入到存储器装置16中的两个不同物理页。
在某些实例中,可以使得由写入模块24存储的奇偶校验数据的大小独立于存储器装置的物理页的大小。例如,地址转换模块22可以实现可以将逻辑页地址映射到多个物理页地址的先进的逻辑到物理地址映射方案。以下参考图6和图7描述这种方案的实例。
图6是图示在存储器装置的不同页存储的用户数据和至少一些奇偶校验数据的示例逻辑配置的概念图。如图6所示,用户数据40A和相应的奇偶校验数据42A1和奇偶校验数据42A2可以与逻辑页地址44A相关联,且用户数据40B和相应的奇偶校验数据42B1和奇偶校验数据42B2可以与逻辑页地址44B相关联。长度46可以表示在每个逻辑页地址的用户数据和奇偶校验数据的组合长度。在图6的实例中,用户数据40A和用户数据40B每个可以是8192字节长且奇偶校验数据42A1、奇偶校验数据42A2、奇偶校验数据42B1和奇偶校验数据42B2每个可以是128字节长,以使得要在每个逻辑页地址存储的数据的组合长度可以是8448字节。图7是图示在存储器装置的不同页存储的用户数据和至少一些奇偶校验数据的示例物理配置的概念图。在某些实例中,物理页地址50A、物理页地址50B和物理页地址50C可以分别对应于图2的页19Aa、19Ab和页19Ac。长度48可以表示写入模块24可以使得在每个物理页地址存储的数据的最大尺寸。在图7的实例中,长度48可以是8320字节。
如上所述,在逻辑页地址的数据块的组合大小小于或等于可以在每个物理页地址存储的数据的最大大小的情况下,写入模块24可以使得在每个逻辑页地址的数据块写入到物理页地址而不重排。但是,在图6和图7的实例中,因为在逻辑页地址44A的数据块(即,用户数据40A、奇偶校验数据42A1和奇偶校验数据42A2)的组合长度大于长度48,所以写入模块24可以使得在逻辑页地址44A的数据块被写入到多个物理页地址。例如,为了使写入模块24能够在逻辑页地址44A存储数据块,地址转换模块22可以将逻辑页地址44A映射到物理页地址50A的全部和物理页地址50B的第一部分。类似地,为了使写入模块24能够在逻辑页地址44B存储数据块,地址转换模块22可以将逻辑页地址44B映射到物理页地址50B的第二部分和物理页地址50C的第一部分。基于该映射,写入模块24可以在物理页地址50A存储用户数据40A和奇偶校验数据42A1,在物理页地址50B存储奇偶校验数据42A2和用户数据40B,并在物理页地址50C存储奇偶校验数据42B1和奇偶校验数据42B2。以这种方式,写入模块24可以存储较大尺寸的奇偶校验数据。
因为奇偶校验数据的一部分可以存储在与用户数据分开的页中,所以写入模块24可以执行两个写操作以存储用户数据块。类似地,读取模块28可以执行两个读操作以检索用户数据块。在某些实例中,检索或者存储单个用户数据块的多个读或者写操作可能是不期望的(例如,由于增加的周期计数、降低的性能、降低的可靠性和增加的读取干扰)。
因此,在某些实例中,代替在单个存储器装置(例如,存储器装置16的存储器装置)内与相应的用户数据不同的物理页存储奇偶校验数据的至少一部分,写入模块24可以在奇偶校验存储器装置20中存储奇偶校验数据的至少一部分。例如,写入模块24可以确定用于用户数据块的奇偶校验数据,在存储器装置16中存储用户数据块,和在奇偶校验存储器装置20中存储奇偶校验数据的至少一部分。以下参考图8和图9描述这种方案的实例。在某些实例中,写入模块24可以并行地将奇偶校验数据的至少一部分写入到奇偶校验存储器装置20和将用户数据块写入到存储器装置16。类似地,在某些实例中,读取模块28可以并行地从奇偶校验存储器装置20读取奇偶校验数据的至少一部分和从存储器装置16读取用户数据块。以这种方式,写入模块24可以使用较大尺寸的奇偶校验数据而没有或者具有减少的不想要的效果(例如,增加周期计数、降低性能、降低可靠性和增加读取干扰)。
图8是图示在不同存储器装置存储的用户数据和至少一些奇偶校验数据的示例逻辑配置的概念图。如图8所示,用户数据40A和相应的奇偶校验数据42A1和奇偶校验数据42A2可以与逻辑页地址44A相关联,且用户数据40B和相应的奇偶校验数据42B1和奇偶校验数据42B2可以与逻辑页地址44B相关联。长度46可以表示在每个逻辑页地址用户数据和奇偶校验数据的组合长度。在图8的实例中,用户数据40A和用户数据40B每个可以是8192字节长且奇偶校验数据42A1、奇偶校验数据42A2、奇偶校验数据42B1和奇偶校验数据42B2每个可以是128字节长,以使得要在每个逻辑页地址存储的数据的组合长度可以是8448字节。
图9是图示在不同存储器装置存储的用户数据和至少一些奇偶校验数据的示例物理配置的概念图。在某些实例中,物理页地址50A和物理页地址50B可以分别对应于图2的页19Aa和页19Ab。长度48可以表示写入模块24可以使得在存储器装置16的每个物理页地址存储的数据的最大尺寸。在图9的实例中,长度48可以是8320字节。长度52可以表示写入到奇偶校验存储器装置20的奇偶校验存储器装置的奇偶校验数据的大小。
如图9所示,写入模块24可以在奇偶校验存储器装置20中存储奇偶校验数据的至少一部分。例如,写入模块24可以确定用于用户数据40A的第一奇偶校验数据42A1和第二奇偶校验数据42A2。如图8所示,用户数据40A、第一奇偶校验数据42A1和第二奇偶校验数据42A2可以全部与逻辑页地址44A相关联。地址转换模块22可以提供将用户数据40A和第一奇偶校验数据42A1映射到可以对应于图2的页19Aa的存储器装置16的物理页地址50A,并将第二奇偶校验数据42A2映射到奇偶校验存储器装置20的映射。基于该映射,写入模块24可以使得用户数据40A和第一奇偶校验数据42A1写入到图2的存储器装置16Aa的页19Aa,和使得第二奇偶校验数据42A2写入到奇偶校验存储器装置20。
图10是根据本公开的一个或多个技术的用于在与相应的用户数据不同的存储器装置中存储奇偶校验数据的示例技术的流程图。为了描述的便利,将同时参考图1和图3的储存装置6和控制器8来描述图10的技术,虽然具有与储存装置6或者控制器8的配置不同的配置的计算装置可以执行图10的技术。
如图10所示,控制器8可以接收要存储的数据块(1002)。例如,控制器8的写入模块24可以从图1的主机4接收要存储的用户数据块。控制器8可以确定用于数据块的奇偶校验数据(1004)。例如,写入模块24可以确定用于从主机装置4接收到的用户数据块的XOR奇偶校验数据。在某些实例中,写入模块24可以选择奇偶校验数据的大小以确定用于数据块。例如,写入模块24可以基于存储器装置16的一个或多个健康统计,比如比特误码率(BER)来选择奇偶校验数据的大小。作为一个实例,在BER小于阈值的情况下,写入模块24可以选择较小尺寸的奇偶校验数据(例如,在数据块的大小是8192字节的情况下128字节)以然后当BER大于阈值(例如,在数据块的大小是8192字节的情况下256字节)时确定用于数据块。
控制器8可以确定奇偶校验数据和数据块的组合大小是否大于主储存阵列的页的大小(1006)。例如,写入模块24可以确定奇偶校验数据和数据块的组合大小是否大于非易失性存储器阵列10的存储器装置16的存储器装置的页的大小。
如果奇偶校验数据和数据块的组合大小不大于主储存阵列的页的大小(1006的“否”分支),则控制器8可以将数据块和奇偶校验数据写入到主储存阵列的页(1008)。例如,写入模块24可以使得信道控制器32A将数据块和奇偶校验数据写入到图2的存储器装置16Aa的块17A的页19Aa。
如果奇偶校验数据和数据块的组合大小大于主储存阵列的页的大小(1006的“是”分支),则控制器8可以将数据块和奇偶校验数据的第一部分写入到主储存阵列的页,且将奇偶校验数据的第二部分写入到奇偶校验存储器装置(1010)。例如,写入模块24可以使得信道控制器32A将数据块和奇偶校验数据的第一部分写入到页19Aa,并使得奇偶校验存储器装置20的奇偶校验存储器装置存储奇偶校验数据的第二部分。以这种方式,控制器8可以在与相应的数据块分开的存储器装置中存储奇偶校验数据的至少一部分。
上述操作仅是一个实例且考虑其它变型。例如,在某些实例中,控制器8可以不在主储存阵列中存储任意奇偶校验数据且可以总是在奇偶校验存储器装置存储奇偶校验数据,而无论奇偶校验数据的大小如何。
本公开中描述的技术可以至少部分地以硬件、软件、固件或者其任何组合实现。例如,所描述的技术的各种方面可以在一个或多个处理器内实现,处理器包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者任何其他等效的集成或者分立逻辑电路,以及这种组件的任何组合。术语“处理器”或者“处理电路”可以单独地或者与其他逻辑电路结合地泛指任何前述逻辑电路,或者任何其他等效电路。包括硬件的控制单元也可以执行本公开的一个或多个技术。
这种硬件、软件和固件可以在相同装置内或者分开的装置内实现,以支持本公开中描述的各种技术。另外,任何所描述的单元、模块或组件可以一起实现或者分开地实现为分立的但是可互操作的逻辑器件。作为模块或者单元的不同特征的叙述意在强调不同功能方面,且不必须意味着这种模块或者单元必须由分开的硬件、固件或者软件组件实现。而是,与一个或多个模块或单元相关联的功能性可以由分开的硬件、固件或者软件组件执行,或者集成在公共的或者分开的硬件、固件或者软件组件内。
本公开中描述的技术也可以以包括以指令编码的计算机可读存储介质的制造物具体表现或者编码。在包括编码的计算机可读存储介质的制造物中嵌入或者编码的指令可以使得一个或多个可编程处理器或者其他处理器实现在这里描述的一个或多个技术,比如当在计算机可读存储介质中包括或者编码的指令由一个或多个处理器执行时。计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、闪存存储器、硬盘、致密盘ROM(CD-ROM)、软盘、磁带、磁介质、光介质或者其他计算机可读介质。在某些实例中,制造物可以包括一个或多个计算机可读存储介质。
在某些实例中,计算机可读存储介质可以包括非瞬时介质。术语“非瞬时”可以指示存储介质不具体表现为载波或者传播的信号。在某些实例中,非瞬时存储介质可以存储可能随时间改变的数据(例如,在RAM或者高速缓存中)。
已经描述了各种实例。这些及其他实例在以下权利要求的范围内。

Claims (10)

1.一种储存装置,包括:
主储存阵列,包括多个存储器装置;
一个或多个奇偶校验存储器装置;和
控制器,被配置为至少通过以下来存储数据块:
将数据块写入到所述主储存阵列;
确定用于数据块的奇偶校验数据;
基于所述主储存阵列的可靠性的级别选择奇偶校验数据的大小以确定用于数据块;和
在选择的奇偶校验数据的大小和数据块的组合大小大于所述主储存阵列的页的大小的情况下,将所确定的奇偶校验数据的所有写入到所述一个或多个奇偶校验存储器装置。
2.如权利要求1所述的储存装置,其中,所述控制器被进一步配置为至少通过以下来检索数据块:
从所述主储存阵列读取数据块;
从所述一个或多个奇偶校验存储器装置读取奇偶校验数据;和
基于奇偶校验数据验证数据块。
3.如权利要求1所述的储存装置,其中,所述一个或多个奇偶校验存储器装置是与所述主储存阵列的多个存储器装置不同类型的存储器装置。
4.如权利要求3所述的储存装置,其中,所述主储存阵列的多个存储器装置包括多个闪存存储器装置,且其中,所述一个或多个奇偶校验存储器装置包括一个或多个磁阻随机存取存储器(MRAM)、相变随机存取存储器(PRAM)、或阻抗随机存取存储器(ReRAM)存储器装置。
5.一种用于在储存装置中分配奇偶校验数据的方法,包括:
由所述储存装置的控制器将数据块写入到包括多个存储器装置的主储存阵列;
由所述控制器确定用于数据块的奇偶校验数据;
由所述控制器基于所述主储存阵列的可靠性的级别选择奇偶校验数据的大小以确定用于数据块;和
由所述控制器在选择的奇偶校验数据的大小和数据块的组合大小大于所述主储存阵列的页的大小的情况下将所确定的奇偶校验数据的所有写入到一个或多个奇偶校验存储器装置。
6.如权利要求5所述的方法,进一步包括至少通过以下来检索数据块:
从所述主储存阵列读取数据块;
从所述一个或多个奇偶校验存储器装置读取奇偶校验数据;和
基于奇偶校验数据验证数据块。
7.如权利要求5所述的方法,其中,所述一个或多个奇偶校验存储器装置是与所述主储存阵列的多个存储器装置不同类型的存储器装置。
8.如权利要求7所述的方法,其中,所述主储存阵列的多个存储器装置包括多个闪存存储器装置,且其中,所述一个或多个奇偶校验存储器装置包括一个或多个磁阻随机存取存储器(MRAM)、相变随机存取存储器(PRAM)、或阻抗随机存取存储器(ReRAM)存储器装置。
9.一种存储指令的计算机可读存储介质,所述指令当被执行时使得储存装置的一个或多个处理器:
将数据块写入到包括多个存储器装置的主储存阵列;
确定用于数据块的奇偶校验数据;
基于所述主储存阵列的可靠性的级别选择奇偶校验数据的大小以确定用于数据块;和
在选择的奇偶校验数据的大小和数据块的组合大小大于所述主储存阵列的页的大小的情况下,将所确定的奇偶校验数据的所有写入到一个或多个奇偶校验存储器装置。
10.如权利要求9所述的计算机可读存储介质,其中,所述一个或多个奇偶校验存储器装置是与所述主储存阵列的多个存储器装置不同类型的存储器装置。
CN201610656869.0A 2015-08-11 2016-08-11 与受保护数据分开存储奇偶校验数据 Active CN106445724B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/823,796 US10133625B2 (en) 2015-08-11 2015-08-11 Storing parity data separate from protected data
US14/823,796 2015-08-11

Publications (2)

Publication Number Publication Date
CN106445724A CN106445724A (zh) 2017-02-22
CN106445724B true CN106445724B (zh) 2020-06-16

Family

ID=57799964

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610656869.0A Active CN106445724B (zh) 2015-08-11 2016-08-11 与受保护数据分开存储奇偶校验数据

Country Status (8)

Country Link
US (1) US10133625B2 (zh)
JP (1) JP2017079050A (zh)
KR (1) KR101861924B1 (zh)
CN (1) CN106445724B (zh)
AU (1) AU2016213809B2 (zh)
CA (1) CA2938584A1 (zh)
DE (1) DE102016009806A1 (zh)
GB (1) GB2541299B (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10133625B2 (en) 2015-08-11 2018-11-20 Western Digital Technologies, Inc. Storing parity data separate from protected data
US10120751B2 (en) * 2015-09-25 2018-11-06 Intel Corporation Techniques to recover data using exclusive OR (XOR) parity information
US10120797B1 (en) * 2016-09-30 2018-11-06 EMC IP Holding Company LLC Managing mapping metadata in storage systems
US20180137005A1 (en) * 2016-11-15 2018-05-17 Intel Corporation Increased redundancy in multi-device memory package to improve reliability
US10474527B1 (en) * 2017-06-30 2019-11-12 Seagate Technology Llc Host-assisted error recovery
US10459809B2 (en) 2017-06-30 2019-10-29 Intel Corporation Stacked memory chip device with enhanced data protection capability
US10970204B2 (en) * 2017-08-29 2021-04-06 Samsung Electronics Co., Ltd. Reducing read-write interference by adaptive scheduling in NAND flash SSDs
US11635894B2 (en) * 2018-03-16 2023-04-25 Micron Technology, Inc. Clustered parity for NAND data placement schema
US10997071B2 (en) * 2018-11-27 2021-05-04 Micron Technology, Inc. Write width aligned storage device buffer flush
US10949297B2 (en) * 2018-12-05 2021-03-16 Micron Technology, Inc. NAND device mixed parity management
US10942809B2 (en) * 2018-12-20 2021-03-09 Micron Technology, Inc. Changing of error correction codes based on the wear of a memory sub-system
US11106534B2 (en) 2019-02-27 2021-08-31 Western Digital Technologies, Inc. 3-dimensional NAND flash layer variation aware SSD raid
CN109992444A (zh) * 2019-03-25 2019-07-09 深圳忆联信息系统有限公司 一种基于硬件的端对端数据保护方法、装置、计算机设备及存储介质
US11164652B2 (en) 2019-06-21 2021-11-02 Micron Technology, Inc. Two-layer code with low parity cost for memory sub-systems
US10838811B1 (en) * 2019-08-14 2020-11-17 Silicon Motion, Inc. Non-volatile memory write method using data protection with aid of pre-calculation information rotation, and associated apparatus
TWI714248B (zh) * 2019-09-09 2020-12-21 新唐科技股份有限公司 記憶體控制器與資料保護方法
KR20210034711A (ko) 2019-09-20 2021-03-31 삼성전자주식회사 메모리 셀의 신뢰성에 따라 패리티 비트들을 선택적으로 생성하는 저장 장치 및 그것의 동작 방법
US11416336B2 (en) 2019-10-15 2022-08-16 International Business Machines Corporation Managing parity data associated with configuration register data
CN110708513B (zh) * 2019-10-18 2021-06-01 中国科学院长春光学精密机械与物理研究所 一种8k视频多核异构处理装置
US11119855B2 (en) * 2019-10-24 2021-09-14 International Business Machines Corporation Selectively storing parity data in different types of memory
US11004535B1 (en) 2019-12-17 2021-05-11 Sandisk Technologies Llc Robust storage of bad column data and parity bits on word line
US11099929B2 (en) * 2019-12-17 2021-08-24 Micron Technology, Inc. Separating parity data from host data in a memory sub-system
US11630725B2 (en) * 2019-12-24 2023-04-18 Micron Technology, Inc. Management of parity data in a memory sub-system
US11200162B2 (en) * 2020-04-28 2021-12-14 Western Digital Technologies, Inc. Condensing logical to physical table pointers in SSDs utilizing zoned namespaces
US11296729B2 (en) 2020-07-23 2022-04-05 Micron Technology, Inc. Data reliability for extreme temperature usage conditions in data storage
US11385961B2 (en) * 2020-08-14 2022-07-12 Micron Technology, Inc. Adaptive parity techniques for a memory device
CN112764683B (zh) * 2021-01-22 2023-01-10 苏州浪潮智能科技有限公司 存储块管理信息同步记录方法、系统、终端及存储介质
JP2022146585A (ja) 2021-03-22 2022-10-05 キオクシア株式会社 メモリシステム
US12019913B2 (en) 2021-05-17 2024-06-25 Western Digital Technologies, Inc. Storing log and user data in SSD with independent plane operations
US11822814B2 (en) * 2022-02-28 2023-11-21 Western Digital Technologies, Inc. Dynamic XOR bin mapping in memory devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136067A (zh) * 2011-11-30 2013-06-05 索尼公司 存储控制器、存储设备、信息处理系统以及存储控制方法
CN103164343A (zh) * 2013-02-27 2013-06-19 山东大学 基于相变存储器的分页、ecc校验及多位预取方法及其结构
CN103324548A (zh) * 2012-03-19 2013-09-25 株式会社东芝 存储器控制器

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05326871A (ja) 1992-05-26 1993-12-10 Kokusai Electric Co Ltd メモリモジュール
KR20080080882A (ko) * 2007-03-02 2008-09-05 삼성전자주식회사 Ecc용 레이어를 구비하는 다층 구조 반도체 메모리 장치및 이를 이용하는 에러 검출 및 정정 방법
CN103984587B (zh) * 2008-06-12 2017-10-20 普安科技股份有限公司 储存虚拟化系统中更新实体储存装置的控制程序的方法
WO2010054410A2 (en) 2008-11-10 2010-05-14 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for predicting failures in solid-state storage
KR101526497B1 (ko) * 2008-11-27 2015-06-10 삼성전자주식회사 시스템 온 칩 및 이에 대한 정보 처리 방법
US7818525B1 (en) 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory
US8437183B2 (en) 2009-12-16 2013-05-07 Sandisk Il Ltd. Auxiliary parity bits for data written in multi-level cells
US8726126B2 (en) 2010-03-23 2014-05-13 Apple Inc. Non-regular parity distribution detection via metadata tag
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
US8769374B2 (en) 2010-10-13 2014-07-01 International Business Machines Corporation Multi-write endurance and error control coding of non-volatile memories
CN103329103B (zh) 2010-10-27 2017-04-05 希捷科技有限公司 使用用于基于闪存的数据存储的自适应ecc技术的方法和设备
US9058288B2 (en) 2011-04-03 2015-06-16 Apple Inc. Redundant storage in non-volatile memory by storing redundancy information in volatile memory
US9032269B2 (en) * 2011-07-22 2015-05-12 Sandisk Technologies Inc. Systems and methods of storing data
JP5845876B2 (ja) 2011-12-20 2016-01-20 ソニー株式会社 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
US8656257B1 (en) 2012-01-11 2014-02-18 Pmc-Sierra Us, Inc. Nonvolatile memory controller with concatenated error correction codes
KR101938210B1 (ko) 2012-04-18 2019-01-15 삼성전자주식회사 낸드 플래시 메모리, 가변 저항 메모리 및 컨트롤러를 포함하는 메모리 시스템의 동작 방법
US8601347B1 (en) 2012-06-21 2013-12-03 Hitachi, Ltd. Flash memory device and storage control method
US8924820B2 (en) * 2012-07-27 2014-12-30 Kabushiki Kaisha Toshiba Memory controller, semiconductor memory system, and memory control method
US9021339B2 (en) 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
CN104969202B (zh) 2012-11-30 2018-04-03 学校法人中央大学 半导体存储装置及其控制方法
KR101977684B1 (ko) 2012-12-12 2019-05-13 삼성전자 주식회사 저항체를 이용한 비휘발성 메모리 장치를 제어하는 메모리 컨트롤러 동작방법, 상기 메모리 컨트롤러, 상기 메모리 컨트롤러를 포함하는 메모리 시스템 및 비휘발성 메모리 장치
US9262267B2 (en) 2013-12-02 2016-02-16 Intel Corporation Error correction in solid state drives (SSD)
US9262268B2 (en) * 2013-12-20 2016-02-16 Seagate Technology Llc Method to distribute user data and error correction data over different page types by leveraging error rate variations
KR101857670B1 (ko) 2014-05-08 2018-06-19 엘지전자 주식회사 Mimo 수신기에서 re 그룹을 형성하여 수신 신호를 처리하는 방법
US9348695B2 (en) * 2014-05-21 2016-05-24 Sandisk Technologies Inc. System and method of storing redundancy data
KR102298607B1 (ko) * 2015-02-17 2021-09-06 삼성전자주식회사 저항성 메모리 시스템 및 저항성 메모리 시스템의 동작 방법
US9830093B2 (en) * 2015-03-27 2017-11-28 Intel Corporation Method and apparatus for improving immunity to defects in a non-volatile memory
US10133625B2 (en) 2015-08-11 2018-11-20 Western Digital Technologies, Inc. Storing parity data separate from protected data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136067A (zh) * 2011-11-30 2013-06-05 索尼公司 存储控制器、存储设备、信息处理系统以及存储控制方法
CN103324548A (zh) * 2012-03-19 2013-09-25 株式会社东芝 存储器控制器
CN103164343A (zh) * 2013-02-27 2013-06-19 山东大学 基于相变存储器的分页、ecc校验及多位预取方法及其结构

Also Published As

Publication number Publication date
AU2016213809A1 (en) 2017-03-02
CN106445724A (zh) 2017-02-22
GB2541299A (en) 2017-02-15
DE102016009806A1 (de) 2017-02-16
JP2017079050A (ja) 2017-04-27
AU2016213809B2 (en) 2017-11-23
CA2938584A1 (en) 2017-02-11
US20170046221A1 (en) 2017-02-16
KR20170019330A (ko) 2017-02-21
GB2541299B (en) 2020-02-05
US10133625B2 (en) 2018-11-20
KR101861924B1 (ko) 2018-05-28

Similar Documents

Publication Publication Date Title
CN106445724B (zh) 与受保护数据分开存储奇偶校验数据
CN107301134B (zh) 存储装置中的磨损均衡
US10275310B2 (en) Updating exclusive-or parity data
KR101933763B1 (ko) 연판정 디코딩을 위한 물리적 페이지 어드레스들을 상관시키는 것
US10289408B2 (en) Managing wear of system areas of storage devices
US20170336990A1 (en) Multi-tier scheme for logical storage management
US9645769B2 (en) Performance acceleration during shutdown of a data storage device
US20180173419A1 (en) Hybrid ssd with delta encoding
US20170206170A1 (en) Reducing a size of a logical to physical data address translation table
US9582192B2 (en) Geometry aware block reclamation
US10459803B2 (en) Method for management tables recovery
US11556268B2 (en) Cache based flow for a simple copy command
CN114730247A (zh) 具有数据的最小写入大小的存储设备
US10025664B2 (en) Selective buffer protection
US20180024751A1 (en) Metadata management on a storage device
CN114168067B (zh) 使用虚设虚拟功能的NVMe简单复制命令支持
US9836215B2 (en) Real time protocol generation
US20160211024A1 (en) Decoding data using a reserved word line
WO2023043501A1 (en) Data storage devices, systems, and related methods to determine writing fragmentation levels of memory devices

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20190123

Address after: California, USA

Applicant after: Western Digital Technologies, Inc.

Address before: Amsterdam, The Netherlands

Applicant before: HGST Netherlands B.V.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240919

Address after: Delaware, USA

Patentee after: SANDISK TECHNOLOGIES Inc.

Country or region after: U.S.A.

Address before: California, USA

Patentee before: Western Digital Technologies, Inc.

Country or region before: U.S.A.