CN111078131B - 使用交叉写入分开晶片平面 - Google Patents
使用交叉写入分开晶片平面 Download PDFInfo
- Publication number
- CN111078131B CN111078131B CN201910879797.XA CN201910879797A CN111078131B CN 111078131 B CN111078131 B CN 111078131B CN 201910879797 A CN201910879797 A CN 201910879797A CN 111078131 B CN111078131 B CN 111078131B
- Authority
- CN
- China
- Prior art keywords
- hyperplane
- block
- data stream
- data
- plane
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1042—Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明题为“使用交叉写入分开晶片平面”。在一个实施方案中,固态设备包括控制器和非易失性存储器。非易失性存储器包括多个晶片。每个晶片包括多个平面。第一超平面块是由多个晶片的第一平面结构化。第二超平面块是由多个晶片的第二平面结构化。多个存储器操作指令在被控制器执行时使控制器接收第一数据流、将第一数据流写入第一超平面块、接收第二数据流以及将第二数据流写入第二超平面块。
Description
相关申请的交叉引用
本专利申请要求于2018年10月18日提交的美国临时专利申请序列号62/747,525的权益,该美国临时专利申请以引用方式并入本文。
背景技术
技术领域
本公开的实施方案整体涉及用于写入多个数据流的非易失性存储器(NVM)块的固态设备(SSD)管理。
相关技术的描述
SSD由于NAND操作的块擦除性质而受到写入放大的负面影响。SSD通过垃圾回收过程释放无效页面所消耗的存储空间。为了释放既具有有效(现有)数据又具有无效数据(被标记为要擦除的数据)的块中的空间,SSD擦除整个块并将有效数据移动或重写入新的块。与SSD的逻辑容量相比,重写有效数据的过程消耗更多物理容量,并放大SSD所执行的总写入。SSD被预留空间,来补偿这个与逻辑容量相比更多物理容量的需求。根据SSD上预留空间的量,写入放大因子可以从几乎1到无穷大的任何位置。
数据流是SSD从主机接收的顺序工作负荷,用于提高SSD的吞吐量。但是,如果多个数据流被一起写入SSD的同一块池或超块,则顺序工作负荷改变成随机化工作负荷,从而导致SSD性能劣化以及SSD的写入放大增大。因此,需要SSD的NVM块的经改进结构以及操作SSD的经改进方法。
发明内容
本文实施方案通常包括到超平面块的多个数据流的工作负荷跨越用户数据晶片和/或一个或多个XOR晶片的不同平面。
在一个实施方案中,固态设备包括控制器和非易失性存储器。非易失性存储器包括多个晶片。每个晶片包括多个平面。第一超平面块是由多个晶片的第一平面结构化。第二超平面块是由多个晶片的第二平面结构化。多个存储器操作指令在被控制器执行时使控制器接收第一数据流、将第一数据流写入第一超平面块、接收第二数据流以及将第二数据流写入第二超平面块。
在另一实施方案中,固态设备包括控制器、数据流支持装置、和多个存储器操作指令。数据流支持装置用于在NAND闪存存储器上同时写入分开的数据。多个存储器操作指令在被控制器执行时使控制器同时将分开的数据写入数据流支持装置。
在一个实施方案中,一种操作固态设备的方法包括将非易失性存储器结构化成第一超平面块和第二超平面块。第一超平面块由多个晶片的第一平面结构化,并且第二超平面块由多个晶片的第二平面结构化。第一数据流被写入第一超平面块。第二数据流被写入第二超平面块。
在另一实施方案中,一种操作固态设备的方法包括提供包括具有多个平面的多个晶片的非易失性存储器。该非易失性存储器被结构化成多个超平面块。每个超平面块跨越多个晶片的分开的平面。多个数据流被写入到多个超平面块中。
在另外一实施方案中,一种操作固态设备的方法包括提供包括多个用户数据晶片和XOR晶片的非易失性存储器。第一数据流的奇偶校验信息被写入在第一平面上或者XOR晶片的第一组平面上。第二数据流的奇偶校验信息被写入在第二平面上或者XOR晶片的第二组平面上。
附图说明
因此,通过参考实施方案,可以获得详细理解本公开的上述特征的方式、本公开的更具体描述、上述简要概述,所述实施方案中的一些在附图中示出。然而,应当注意的是,附图仅示出了本公开的典型实施方案并且因此不应视为限制其范围,因为本公开可以允许其他同等有效的实施方案。
图1是示出包括主机和固态设备的系统的某些实施方案的示意图。
图2是示出存储器阵列的某些实施方案的示意图。
图3是示出四层单元(QLC)的阈值电压分布的某些实施方案的示意图。
图4是示出将非易失性存储器结构化成多个超块的示意图。
图5A是示出将非易失性存储器结构化成跨越具有两个平面的晶片的两个超平面块的某些实施方案的示意图。
图5B是示出将非易失性存储器结构化成跨越具有四个平面的晶片的四个超平面块的某些实施方案的示意图。
图6是在图5A和/或图5B的非易失性存储器的超平面块中支持两个数据流的某些实施方案的示意图。
图7是能够独立地无效/垃圾回收或在没有垃圾回收的情况下擦除的超平面块结构化的SSD的某些实施方案的示意图。
图8是示出在平面之间切换流的某些实施方案的示意图。
图9是示出SSD超平面块被合并成超块的某些实施方案的示意图。
图10A至图10B是示出具有八个超平面块的八平面晶片组织的SSD对多个数据流清除缓存的某些实施方案的示意图。
图11是示出由于NVM的超平面块所提供的经改善效率而减小的较小逻辑页面高速缓存结构化的SSD的某些实施方案的示意图。
图12是示出将数据流的奇偶校验信息写入在XOR晶片的分开平面上的某些实施方案的示意图。
为了有助于理解,在可能的情况下,使用相同的参考标号来表示附图中共有的相同元件。可以设想是,在一个实施方案中公开的元件可以有利地用于其他实施方案而无需具体叙述。
具体实施方式
在下文中,参考本公开的实施方案。然而,应当理解的是,本公开不限于具体描述的实施方案。相反,思考以下特征和元件的任何组合(无论是否与不同实施方案相关)以实现和实践本公开。此外,尽管本公开的实施方案可以实现优于其他可能解决方案和/或优于现有技术的优点,但是否通过给定实施方案来实现特定优点不是对本公开的限制。因此,以下方面、特征、实施方案和优点仅是说明性的,并且不被认为是所附权利要求书的要素或限制,除非在一条或多条权利要求中明确地叙述。同样地,对“本公开”的引用不应当被解释为本文公开的任何发明主题的概括,并且不应当被认为是所附权利要求书的要素或限制,除非在一条或多条权利要求中明确地叙述。
术语“包括/包含”包括“由…构成/基本上由…构成”的子集含义,并且包括“由…构成/由…组成”的子集含义。
结构化非易失性存储器的某些实施方案可扩展支持多个数据流的固态设备的耐用性、可靠性和/或性能。在某些实施方案中,到超平面块的多个数据流的工作负荷跨越用户数据晶片和/或一个或多个XOR晶片的不同平面就减小了写入放大因子、减小了写入同一平面的晶片争用、减小了超平面块的可擦除单元、简化了XOR操作和数据恢复,和/或减小了数据流高速缓存的大小和成本。
图1是示出包括主机101和固态设备(SSD)102的系统100的某些实施方案的示意图。SSD 102包括非易失性存储器(NVM)110。NVM 110被配置用于信息的长期数据存储,并在通电/断电循环之后保持信息。NVM 110包括非易失性存储器设备的一个或多个阵列,诸如多个存储器晶片111-1至111-N。NVM 110可包括一种或多种类型的存储器设备。存储器设备的示例包括闪存存储器、相变存储器、ReRAM存储器、MRAM存储器、电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、和其他固态存储器。NVM设备也可具有不同的配置。例如,闪存存储器设备可以NAND配置或NOR配置进行配置。由于与NOR闪存相比,NAND闪存的低成本以及高性能,NAND闪存存储器在企业应用中用于写入和读取大量数据。一个或多个存储器晶片111-1至111-N可表示被布置用于存储经由通道105-1至105-N可访问的数据的任何配置或任何类型的存储器晶片或设备。
SSD 102通过用于从主机101到SSD 102的通信进入以及从SSD 102到主机101的通信离开的主机接口103(诸如包括mac和phy部件)与主机101进行操作。SSD 102可为可移除存储器诸如存储卡的形式、可为嵌入式存储器系统的形式、或可为任何合适的形状因数。
SSD 102包括控制器140,用于控制NVM 110。主机接口103和NVM接口158可被视为控制器140的一部分。控制器140控制经由通道105-1至105-N对存储器晶片111-1至111-N的编程/写入、读取和擦除操作。控制器130可包括易失性存储器130,用于在SSD 102操作期间的短期存储或临时存储器。如果断电,则易失性存储器130不保持所存储的数据。易失性存储器的示例包括动态随机存取存储器(DRAM)132、静态随机存取存储器(SRAM)134和其他形式的易失性存储器。系统100可将数据流高速缓存或排队在主机101中的高速缓存中和/或SSD 102中的高速缓存中,诸如SRAM 134、DRAM 132和/或NVM。
控制器140包括闪存转换层(FTL)160。FTL 160确定与主机命令和存储设备任务的逻辑块地址(LBA)相关联的物理块地址(PBA)。FTL 160可被存储在NVM 110中并被加载或部分加载到易失性存储器130。FTL 160可包括逻辑-物理(或虚拟-物理)数据地址映射162。主机设备101可利用逻辑数据地址来指代数据单元,并且控制器140可利用映射162指示将数据写入NVM 110以及从NVM读取数据。FTL 160可包括垃圾回收表164,用于将有效数据从所选择的具有无效数据的块移动到打开块或部分填充块并擦除所选择的块。FTL 160可包括耗损均衡计数器166,用于记录块的编程擦除循环的数量,以均衡NVM 110的块的使用。FTL160可包括空闲块池168,其列出打开用于编程或可供用于编程的块。
控制器140还可包括仲裁器150,该仲裁器有利于在对存储器晶片111的编程/写入、读取和擦除操作中在主机101和SSD 102之间的数据传输。控制器140还可包括错误校正模块136,该错误校正模块用于校正从存储器阵列所取的数据。错误校正模块136可在软件或硬件中实现。错误校正模块136计算要写入NVM 110的主机数据的奇偶校验信息,诸如异或(XOR)奇偶校验信息或冗余校验和奇偶校验信息。奇偶校验信息和解码算法一起验证并校正从存储器阵列所取的数据。错误校正模块所使用的解码的示例包括Hamming、Reed-Solomon、Bose-Chaudhuri-Hocquenghem、和低密度奇偶校验解码。控制器140还包括错误代码校正模块154。
本文所述的技术也可实施或编码在包括被编码以指令的计算机可读存储介质的制品中。嵌入或编码在包括计算机可读存储介质的制品中的指令可使一个或多个可编程处理器或其他处理器实施本文所述的一种或多种技术,诸如当包括或编码在计算机可读存储介质中的指令被一个或多个处理器执行时。计算机可读存储介质可包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存存储器、硬盘、光盘ROM(CD-ROM)、软盘、盒、磁介质、光学介质或其他计算机可读介质。在一些示例中,制品可包括一个或多个计算机可读存储介质。在一些示例中,计算机可读存储介质可包括非暂态介质。术语“非暂态”可指示存储介质不是在载波或传播信号中实现。
在某些实施方案中,控制器140执行计算机可读程序代码(例如,软件或固件)可执行指令(在本文中称为“指令”)。指令可以由控制器140的各种部件执行,该各种部件诸如处理器、神经网络、逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器、嵌入式微控制器以及控制器140的其他部件。
图2是示出存储器阵列310的某些实施方案(诸如图1的存储器晶片111的存储器阵列)的示意图。如图所示,存储器阵列310为3D或垂直NAND存储器阵列或位成本可缩放(BiCS)单元阵列,但也可使用其他存储器阵列。存储器阵列310由多个页面390构成。每个页面390包括一组NAND串350(示出四个NAND串)。每组NAND串350共同连接到位线380。每个页面390具有其自身的位线380,该位线根据页面390的数量从BL0编号到BLM。每个NAND串350包括选择栅极漏极晶体管(SGD)、多个存储器单元360A-360N、和选择栅极源极晶体管(SGS)。一行存储器单元共同连接到字线(WL)370。字线(WL0,WL1等)的数量取决于NAND串350中存储器单元的数量。每个SGS晶体管的源电极沿线385耦接在一起。
存储器单元360A-360N由具有电荷存储元件用于存储表示存储器状态的给定量电荷的晶体管构成。存储器单元360A-360N可在每个单元存储一个存储器位的单层单元(SLC)、每个单元存储两个存储器位的多层单元(MLC)、每个单元存储三个存储器位的三层单元(TLC)、每个单元存储四个存储器位的四层单元(QLC)、或每个单元存储任意数量的位的任何类型的存储器单元中操作。页面390是作为组被编程和读取的一组存储器单元。多个页面390构成块395。单个块395中的存储器单元通常一起擦除。
本文所述的实施方案不限于图2中所述的三维存储器阵列,而是涵盖所有相关的存储器结构。其他阵列也是可能的,诸如以U形状形成的三维NAND串、二维存储器阵列、或由任何存储级存储器构成的其他存储器阵列。多个存储器阵列诸如相同类型或混合类型的存储器阵列可在分开的晶片上形成,然后被封装在一起。
图3是示出四层单元(QLC)362(诸如构成图1的一个或多个存储器晶片111的图2的存储器单元360)的阈值电压分布的某些实施方案的示意图。QLC 362每个单元存储四个位,如由可能阈值电压364所划界,被划分成十六个区域以划界十六个可能的存储器状态。示出了由十六个可能存储器状态364表示的4位格雷编码366的一个示例,但是若干其他4位格雷编码也是可能的。十六个存储器状态中的每一个表示高位、中高位、中低位、和低位的四元组。存储器阵列的四个代码位(即,高位、中高位、中低位、和低位)的阈值电压可在多个巡回中被读取或编程。例如,在读取期间,表示存储器阵列的低位的阈值电压可在一个巡回中被读取,并且表示高位的阈值电压可在另一巡回中被读取。例如,在编程中,存储器阵列的阈值电压可在多个巡回中被编程和验证,直到达到最终期望的阈值电压。由于多个可能阈值电压电平,QLC存储器单元的执行时间比TLC存储器单元的执行时间长。TLC存储器单元的执行时间比MLC存储器单元的执行时间长。MLC存储器单元的执行时间比SLC存储器单元的执行时间长。
每当存储器单元被编程时,存储器栅极就会被耗损或损坏。对于操作多个阈值电压状态(即,每个单元存储两个或更多个位)的存储器单元,由于实现最终期望阈值电压状态所需的多个巡回编程,存储器栅极经历高水平的耗损。类似地,对于每个单元存储更多位的存储器单元,对存储器栅极由于多个阈值电压状态和阈值电压状态之间的测量阈值而导致的误差的容限较小。存储多个阈值电压电平单元的存储器栅极由于阈值电压的伴随移位而对电荷泄漏具有较低容限。由于存储器栅极上的耗损并且由于对测量阈值电压状态中的误差的容限较低,QLC存储器单元的耐久性(即,存储器设备寿命期间的编程/擦除循环的数量)低于TLC存储器单元的耐用性。TLC存储器单元的耐用性低于MLC存储器单元。MLC存储器单元的耐用性低于SLC存储器单元。
图4-12是示出结构化NVM以支持将数据流(即,顺序工作负荷)从主机写入SSD的各种实施方案的示意图,诸如利用图3的QLC存储器单元的图1的系统100,并且为了便于描述,为元件使用类似标号。各种实施方案也适用于其他系统和其他类型的存储器设备/单元。将流数据从主机101写入SSD 102的NVM 110可以来自主机101的高速缓存,来自SSD 102的高速缓存,和/或数据从主机101直接写入SSD 102而没有高速缓存(诸如当SSD 102充当主机101的虚拟存储器时)。数据流可通过流ID来标识,以帮助管理数据流。
图4是示出将NVM 110结构化成多个超块50A的示意图。每个晶片111-1至111-N包括多个平面10。图4示出了每个晶片111两个平面10,但晶片可包括任意数量的平面,诸如2、4、6、8或更多个平面。并行操作可在每个平面10上进行。每个平面10包含多个块20,这些块通常是可被擦除的最小单元。每个块包含多个页面30,这些页面通常是可被编程或读取的最小单元。
SSD可结构化在超块50中,以提供专用流支持以提高SSD的性能。例如,如图4所示,超块50包括在晶片111-1至111-N中的每一者的每个平面10上条带化的一个或多个块20,用于存储数据流以提高SSD的性能和带宽。对于高性能SSD,数据流被同时或并行地写入超块50的多个晶片111上的多个页面30。类似地,可同时或并行地执行超块50的多个晶片111上的页面30的读取操作。
超块50通过将所有通道105-1至105-N跨越在NVM接口158和NVM 110之间以使得能够实现对NVM 110上的晶片111-1至111N的并行操作。并行操作提高SSD的性能。超块50还可存储用于逻辑-物理地址映射的元数据,以减少FTL 160的工作负荷,从而进一步提高SSD的性能。
奇偶校验信息诸如异或(XOR)奇偶校验信息可以与超块50中的数据流存储在同一晶片上,或者在超块50中的单独晶片上组合在一起。在SSD的企业应用中,希望提供完全晶片冗余以在其中一个晶片发生故障或不可读取的情况下保护用户数据。可通过将奇偶校验信息存储在与用户数据分开的一个或多个晶片上来提供完全晶片冗余。例如,如图4所示,数据流52被存储在超块50的第一组用户数据晶片72中,并且数据流的奇偶校验信息54被组合在一起并存储在超块50的单独一个或多个XOR晶片74中。如果存储数据流52的用户数据晶片72中的一个晶片发生故障,则可从一个或多个XOR晶片74上的奇偶校验信息54恢复数据流52。如果数据流52和奇偶校验信息54被写入在同一晶片上,则在晶片发生故障的情况下,数据流将不可恢复。
SSD可提供多个超块50以支持多个数据流。例如,超块50A可支持数据流52A,并且超块50B可支持数据流52B。支持多个数据流52的多个超块50的一个缺点是多个流数据对同一晶片111的同一平面10的操作(即,编程、读取、擦除)的晶片争用。例如,在两个数据流诸如数据流52A和数据流52B被写入同一晶片111上的同一平面10的情况下,数据写入的执行不能同时发生于同一平面10。相反,SSD将数据流52A的一部分写入平面10,然后SSD将数据流52B的一部分写入平面10,然后SSD将数据流52A的一部分写入平面10。写入执行在写入数据流52A和写入数据流52B到平面10之间来回切换。因为SSD 102不能同时将两个数据流从主机101写入同一晶片111的同一平面10,所以数据流52A、52B的一部分在这两个数据流的写入执行之间来回切换期间被高速缓存在主机101中或被高速缓存在SSD 102中,从而导致性能损失。晶片争用可能不良地导致晶片111的性能降低约20%。
在SSD的企业应用中,大量流数据被存储在超块50中。由每个单元存储多个位的NAND存储器设备(诸如QLC单元或TLC单元)构成的SSD具有适于存储大量数据的更高容量。期望SSD的高每秒输入/输出操作(IOPS)性能以改善主机和SSD的整体系统的性能。随着NAND存储器设备每个单元存储更多位,编程、读取和擦除的执行时间不良地増大。另外,随着NAND存储器设备每个单元存储更多位,NAND设备的耐用性(即,寿命期间的编程/擦除循环的数量)不良地降低。包括来自QLC单元的超块50的SSD由于晶片争用而遭受降低的性能。
由于QLC单元具有低的写入性能和低的耐用性,因此希望将整个超块50作为一个单元擦除而没有任何垃圾回收。超块50的任何垃圾回收通过添加读取和写入操作将有效数据移动到打开页面而降低晶片的性能,并且通过添加到超块50的块20的耗损而降低耐用性。
图5A是示出将NVM 110结构化成跨越具有两个平面的晶片的两个超平面块60的某些实施方案的示意图。每个晶片111-1至111-N包括多个平面10。图5A示出了每个晶片111两个平面10,但晶片111可包括任意数量的平面,诸如2、4、6、8或更多个平面。并行操作可在每个平面10上进行。每个平面10包含多个块20,这些块通常是可被擦除的最小单元。每个块包含多个页面30,这些页面通常是可被编程或读取的最小单元。
在某些实施方案中,超平面块60包括跨越晶片111-1至111-N中每一者的某个平面10的一个或多个块20,用于存储流数据以提高SSD 102的性能。例如,如图5A所示,超平面块60包括在晶片111-1至111-N中每一者的每个平面10上条带化的一个或多个块20,用于存储数据流以提高SSD的性能。对于SSD 102的高性能,数据流被同时或并行地写入超平面块60的多个晶片111上的多个页面30。类似地,可同时或并行地执行超平面块60的多个晶片111上的页面30的读取操作。
超平面块60使得能够实现对NVM 110上的晶片111-1至111-N的并行操作。并行操作提高SSD的性能。超平面块60还可存储用于逻辑-物理地址映射的元数据,以减少FTL 160的工作负荷,从而进一步提高SSD 102的性能。
在某些实施方案中,数据流的奇偶校验信息64诸如异或(XOR)奇偶校验信息被一起组合在超平面块60中与超平面块60中的数据流分开的晶片上以实现完全晶片冗余,但在其他实施方案中,奇偶校验信息可被存储在与数据流相同的晶片上。在SSD的企业应用中,希望提供完全晶片冗余以在其中一个晶片发生故障或不可读取的情况下保护用户数据。可通过将奇偶校验信息存储在与用户数据分开的一个或多个晶片上来提供完全晶片冗余。例如,如图5A所示,数据流62被存储在超平面块60的一组用户数据晶片72中,并且数据流的奇偶校验信息64被组合在一起并存储在超平面块60的单独一个或多个XOR晶片74中。如果存储数据流62的用户数据晶片72中的一个晶片发生故障,则可从一个或多个XOR晶片74上的奇偶校验信息64恢复数据流62。如果数据流62和奇偶校验信息64被写入在同一晶片上,则在晶片发生故障的情况下,数据流将不可恢复。
在某些实施方案中,NVM 110可由不同类型的晶片111构成。例如,存储数据流62的用户数据晶片72可包括每个单元存储多个位的存储器单元,诸如QLC或TLC存储器单元。存储奇偶校验信息64的一个或多个XOR晶片74可包括与用户数据晶片72的存储器单元相比每个单元存储更少位的存储器单元。例如,一个或多个XOR晶片74可包括MLC或SLC存储器单元,使得奇偶校验信息64被写入较高耐用性存储单元,以防在存储数据流62的用户数据晶片72的晶片发生故障的情况下发生数据恢复。
SSD 102可提供多个超平面块60以支持多个数据流。例如,对于具有两个平面的晶片,平面10A和平面10B在图5A中示出,超平面块60A包括跨越所有用户数据晶片72的平面10A的一个或多个块20,并且超平面块60B包括跨越所有用户数据晶片72的平面10B的一个或多个块20。超平面块60A、60B可支持两个数据流:数据流62A和数据流62B,其中操作同时被执行到同一晶片,因为操作正在不同的平面10A、10B上发生。
由于数据流62A和数据流62B被写入在不同的平面10A、10B上,因此不存在任何由于对同一平面执行操作的切换而导致不期望的数据高速缓存的晶片争用。SSD 102可在所有用户数据晶片72上将两个数据流62A、62B的页面30写入分开的平面10A、10B。数据流62A和数据流62B在NVM接口158和NVM 110的用户数据晶片72之间的所有通道105上交叉,以提供高性能SSD 102,而没有由于从不同数据流对同一平面的并发操作所导致的晶片争用。数据流62A的奇偶校验信息64A和数据流62B的奇偶校验信息64B在NVM接口158和NVM 110的一个或多个XOR晶片74之间的所有通道105上交叉,以提供高性能SSD 102,从而避免由于从不同数据流对同一平面的并发操作所导致的晶片争用。超平面块60A和超平面块60B的并发交叉操作帮助提高包括每个存储器单元存储多个位的用户晶片72(诸如QLC或TLC存储器单元)的NVM的SSD 102的性能。
尽管图5A中示出了两个平面,平面10A和平面10B,但是晶片111可包括任意数量的平面,诸如2、4、6、8或更多个平面。例如,每个晶片111具有四个平面的SSD 102可具有四个超平面块60,如图5B所示。图5B是示出将非易失性存储器结构化成跨越具有四个平面10的晶片111的四个超平面块60的某些实施方案的示意图。超平面块60A、60B、60C、60D分别跨越平面10A、10B、10C、10D。四个或更少的数据流可被写入到超平面块60A、60B、60C、60D的用户数据晶片72中。四个或更少的数据流的奇偶校验信息可被写入到超平面块60A、60B、60C、60D的XOR晶片74中。例如,每个晶片111具有六个平面的SSD 102可具有六个超平面块60。例如,每个晶片具有八个平面的SSD 102可具有八个超平面块。
图5A和5B的每个超平面块60A-N可在被写入到此类超平面块60中的数据流的无效或更新的情况下作为擦除单元被擦除。将超平面块60作为擦除单元进行擦除可提供来自垃圾回收的零数据重定位。作为擦除单元的超平面块60被擦除而没有数据重定位,并且被标记为空闲块或空闲平面池中的可用块。将超平面块60作为擦除单元进行擦除就将写入放大因子减小至1,因为SSD 102不执行任何附加的写入。总NAND闪存写入被减少,并且因此提高SSD 102的性能和耐用性要求。
在某些实施方案中,超平面块60的擦除单元的尺寸等于晶片111的平面10的尺寸乘以超平面块60的晶片的数量。例如,对于具有两个平面的晶片111,超平面块60的擦除单元等于晶片111的尺寸乘以超平面块60的晶片的数量的一半。例如,对于具有四个平面的晶片111,超平面块60的擦除单元等于晶片111的尺寸乘以超平面块60的晶片的数量的1/4。例如,对于具有六个平面的晶片111,超平面块60的擦除单元等于晶片111的尺寸乘以超平面块60的晶片的数量的1/6。例如,对于具有八个平面的晶片111,超平面块60的擦除单元等于晶片111的尺寸乘以超平面块60的晶片的数量的1/8。在SSD的企业应用中,最小化擦除单元的尺寸就提高SSD的性能,因为晶片111的平面10的数量越多,需要被刷新到超平面块60的主机101或SSD 102的高速缓存尺寸越小。相比之下,类似容量晶片的平面的数量越多,图4的超块50的擦除单元越大。
图6是图5A和/或图5B的NVM 110的超平面块60中支持两个数据流的某些实施方案的示意图,并且为了便于描述,为元件使用类似的数字。当系统100需要新的超平面块60时,平面10被从平面空闲池70获取并被条带化在一起作为超平面块60。例如,平面空闲池70A包含晶片111的平面10A,其被条带化在一起形成超平面块60A。平面空闲池70B包含晶片111的平面10B,其被条带化在一起形成超平面块60B。
形成超平面块60A和超平面块60B就在不同平面10上交叉在用户数据晶片72的通道105上写入数据流62A和数据流62B,从而消除晶片争用。超平面块60A和超平面块60B可以以分开的数据流62A和数据流62B写入,同时避免将两个数据流的数据写入同一平面。这两个数据流被写入同一组用户数据晶片72和一个或多个XOR晶片74,而不必为不同数据流在同一平面上的同一晶片上的块20之间切换。在某些实施方案中,数据流62A始终在平面10A上,并且数据流62B始终在平面10B上。在某些实施方案中,数据流62A可在每个用户数据晶片72上并行写入平面10A,同时数据流62B在每个用户数据晶片72上并行写入平面10B。来自同一平面上多个数据流之间切换的晶片争用被避免,并且SSD的性能被提高。在某些实施方案中,到同一晶片的分开平面10上的并行块的两个数据流提供另一性能増强,因为共享的信号命令可用于对这些块进行编程、读取或擦除。
在某些实施方案中,形成超平面块60A和超平面块60B就在不同平面10上交叉XOR晶片74的通道105上数据流62A和数据流62B的奇偶校验信息64A,消除用于将奇偶校验信息64写入到一个或多个XOR晶片74中的晶片争用。数据流62A的奇偶校验信息64A被写入在超平面块60A的XOR晶片74的平面10A中,并且数据流62B的奇偶校验信息64B被写入在XOR晶片74的平面10B中。XOR晶片74与存储流数据的用户数据晶片72分开以用于完全晶片冗余,以防用户数据晶片72或XOR晶片74发生故障。
图7是被结构化以超平面块60的SSD的某些实施方案的示意图,超平面块可独立地无效/垃圾回收或擦除而没有垃圾回收,诸如图5A和图5B的超平面块60,并且为了便于描述,为元件使用类似的数字。
超平面块60A、60B是独立的。超平面块60A可独立于超平面块60B或其他超平面块(如果在系统100中有两个以上的超平面块(即,四个、六个、八个或更多个超平面块)的话)被无效/垃圾回收或者被擦除而没有垃圾回收。即使数据流被同时写入,也可以发生独立的无效/垃圾回收或擦除。
如果主机101覆写或无效被存储在超平面块60A中的数据流62A的一部分,则超平面块60A的块20可被垃圾回收和擦除,并且释放被置于空闲块池或空闲平面池中的块。由于两个数据流分别被存储在超平面块60A和超平面块60B中,所以覆写或无效被写入在超平面块60A中的数据流62A并不导致被写入在超平面块60B中的数据流62B的垃圾回收。覆写或无效被写入在超平面块60B中的数据流62B并不导致被写入在超平面块60A中的数据流62A的垃圾回收。由于一个数据流的有效数据并不由于另一数据流的无效数据而被移至新块,因此写入放大被减小。
超平面块避免SSD 102将多个数据流写入在图4的跨越同一平面10的多个超块50中。将所有数据流写入到同一平面10或超块50中将导致在一个特定数据流被新数据覆写的情况下其他有效数据流的垃圾回收。如果多个数据流被写入图4的跨越同一平面10的多个超块50,则写入放大因子变得大于1,并且可变得与随机工作负荷的情况一样高。
图8是在平面10诸如图5A和图5B的平面10之间随机化流的某些实施方案的示意图,并且为了便于描述,为元件使用类似的数字。当超平面块60被形成并被映射到数据流时,超平面块60的平面10被改变/或随机化以帮助NVM 110的晶片111之间的耗损均衡。在平面之间随机化数据流就减少单个数据流支配任何特定平面以及导致平面的不均匀耗损或对平面的不均匀操作。
例如,第一超设备810由来自晶片111上的两个超平面块60A、60B形成。数据流62A被写入晶片的平面10A上的超平面块60A,并且数据流62B被写入晶片111的平面10B上的超平面块60B。在第一超设备810的一个或两个超平面块60被擦除并且在平面空闲池中之后,第二超设备820由来自NVM晶片上的两个超平面块60A、60B形成。数据流62A被写入晶片111的平面10B上的超平面块60A,并且数据流62B被写入晶片的平面10A上的超平面块60B。在第二超设备820的一个或两个超平面块60被擦除并且在平面空闲池中之后,第三超设备830由来自晶片111上的两个超平面块60A、60B形成。数据流62A被写入晶片111的平面10A上的超平面块60A,并且数据流62B被写入晶片111的平面10B上的超平面块60B。
虽然图8示出了数据流62A、62B在新的超设备形成之后交替地分配给平面10A、10B,但数据流62A、62B可被分配给随机化平面(即,与在先超设备相同的平面或不同的平面)。
图9是示出超平面块(诸如图5A-5B的超平面块60)被合并成超块(诸如图4的超块50)的某些实施方案的示意图,并且为了易于描述,为元件使用类似的数字。初始写入910分别将数据流A和数据流B写入NVM110的超平面块60A、60B。
在某些实施方案中,NVM的后续写入920(诸如当超平面块60A、60B已被关闭或被完全写入时)将超平面块60A、60B重新映射到在晶片111的所有平面10上条带化的超块50A、50B中,具有来自垃圾回收的零数据重定位。被重新映射到超块50A、50B中的数据流将流数据保持在一起,这可能被一起无效。
在某些实施方案中,NVM的后续写入920,诸如当被存储在超平面块60A中的数据流62A被随机无效时,对超平面块60A执行垃圾回收,其中有效数据被移动到超块50A中。如果被存储在超平面块60B中的数据流61B被随机无效,则对超平面块60B执行垃圾回收,其中有效数据被移动到超块50B中。如果被存储在超平面块60B中的数据流6B被关闭或被完全写入,则超平面块60B被重新映射到超块50B中,具有来自垃圾回收的零数据重定位。
图10A-10B是示出以具有八个超平面块(诸如图5A和图5B的超平面块60)的八平面晶片组织的SSD对多个数据流(诸如来自主机101或SSD102的高速缓存)清除缓存的某些实施方案的示意图,并且为了便于描述,为元件使用类似的数字。
图10A示出某些实施方案,其中八个数据流A-H正以相同速率或大致相同速率被写入超设备并且正以相同速率或大致相同速率填充每个超平面块60A-60H。
图10B示出某些实施方案,其中五个数据流正以不同速率被写入超设备。不同的速率可以是由来自主机101的数据流的停滞或各种其他导致一些数据流比其他数据流更快地被传输的因素导致。控制器140可将数据流分配给多个超平面块60,而不是仅一个超平面块。例如,如图10B所示,数据流A正以比数据流E更快的速率被写入。数据流E正以比数据流F、数据流G、或数据流H更快的速率被写入。数据流A被分配给三个超平面块60A-1、60A-2、60A-3。数据流E被分配给两个超平面块60E-1、60E-2。数据流F、G、H分别被分配给一个超平面块60F、60G、60H。
被写入超平面块60的超设备的并行数据流的数量是超设备的用户数据晶片72的平面10的数量的函数。如果用户数据晶片72具有两个平面10,则两个并行数据流或一个数据流可被写入超平面块60的超设备。如果用户数据晶片72具有四个平面10,则四到两个并行数据流或一个数据流可被写入超平面块60的超设备。如果用户数据晶片72具有六个平面10,则六到两个并行数据流或一个数据流可被写入超平面块的超设备。如果用户数据晶片72具有八个平面10,则八到两个并行数据流或一个数据流可被写入超平面块的超设备。SSD102将每个数据流分别写入到一个或多个平面10中就使得给定数据流的任何覆写不导致其他数据流的垃圾回收,由此减小写入放大。
图11是示出以由于NVM的超平面块60所提供的经改善效率而减小的较小逻辑页面高速缓存结构化的SSD的某些实施方案的示意图。在某些实施方案中,NVM 110(即,被高速缓存在SLC存储器单元中的NAND)、易失性存储器130(即,被高速缓存的DRAM/SRAM)、和/或主机101的易失性存储器被用作逻辑页面高速缓存1110。系统100的性能是逻辑页面高速缓存1110可如何有效地被使用的函数。系统100的成本与逻辑页面高速缓存1110的大小逆反。由于成本而希望逻辑页面高速缓存1110小,但小的逻辑页面高速缓存1110可能在将多个数据流提取到NVM 110的用户数据晶片72以用于长期存储中是效率低下的。为了NAND存储器单元的有效操作,每个数据流的多个数据页面需要被提取到NAND存储器单元的NVM 110。
在某些实施方案中,用户数据晶片72包括每个单元存储较高位的存储器单元,诸如QLC、TLC或MLC存储器单元。具有高数据存储容量的用户数据晶片72使得整个逻辑页面高速缓存1110能够被刷新到SSD的用户数据晶片72的超平面块60。在某些实施方案中,等值多个数据流的整个超平面块60可以被刷新到SSD。每个超平面块60可被作为在超平面块中的整个数据流被覆写或无效的情况下被一起擦除的可擦除单元来对待。超平面块60具有由于数据流在不同平面上的交叉而具有高性能的属性,并且具有作为晶片平面数量的函数的尺寸减小的可擦除单元的属性。每个数据流需要被分阶段在逻辑页面高速缓存1110中的数据的量减少。对于慢数据流(或所有流以相同速率或大致相同速率写入),需要被聚结在逻辑页面高速缓存1110中以填充NAND存储器设备的可擦除单元的最小数据量减小晶片111中的平面10的数量(即,在八平面NAND中减小因子8)。相比而言,图4的超块50的可擦除单元的尺寸随平面数量而増大。
由于包括每单元存储更高位的存储器单元(诸如QLC、TLC或MLC存储器单元)的用户数据晶片72具有更高的容量,因此可以使逻辑页面高速缓存1110更小,因为逻辑页面高速缓存1110的全部内容可被刷新到超平面块60中的NVM的用户数据晶片72,而没有晶片争用。
图12是示出在分开的平面10A、10B或者在一个或多个XOR晶片74的分开组的平面诸如图5A和图5B的超平面块60上写入数据流的奇偶校验信息的某些实施方案的示意图,并且为了便于描述,为元件使用类似的数字。不同的数据流62A、62B被写入不同的用户数据晶片72,但奇偶校验信息64A、64B被存储在相同的一个或多个XOR晶片74上,但被存储在不同的平面10上或不同组平面上。数据流62A、62B不交叉,但奇偶校验信息64A、64B交叉。奇偶校验信息64A、64B被保持与用户数据晶片72分开,以提供完全晶片冗余。奇偶校验信息64A、64B在不同平面10A、10B上或在XOR晶片或XOR晶片组的不同组平面上交叉,以消除一个或多个XOR晶片的晶片争用。例如,对于具有两个以上平面的XOR晶片(诸如四平面NAND晶片或八平面NAND晶片),奇偶校验信息64A被写入在第一组平面上,并且奇偶校验信息64B被写入在不同于第一组平面的第二组平面上。
可能需要不同的用户数据晶片72,这是由于在晶片111的不同NVM组1210A、1210B中结构化NVM 110以提供服务质量隔离区域,其中对一个晶片的操作不影响另一晶片的操作。图12所示的NVM组1210A、1210B通过将XOR奇偶校验信息在一个或多个XOR晶片74上分开的平面10A、10B上交叉来提供完全晶片冗余和XOR晶片的提高的性能。
在不同平面10A、10B上或在不同组平面上交叉数据流62A、62B的奇偶校验信息64A、64B就消除了在对一个或多个XOR晶片74的操作期间的晶片争用。此外,不同平面10A、10B上或不同组平面上数据流62A、62B的奇偶校验信息64A、64B减少了垃圾回收以及一个或多个XOR晶片74的写入放大。例如,如果被存储在NVM组1210A中的数据流62A的一部分被覆写或更新,则奇偶校验信息64A被更新,而不导致数据流62B的奇偶校验信息64B的垃圾回收。如果被存储在NVM组1210B中的数据流62B的一部分被覆写或更新,则奇偶校验信息64B被更新,而不导致数据流62A的奇偶校验信息64A的垃圾回收。另外,将奇偶校验信息64A、64B写入在分开的平面10A、10B上或一个或多个XOR晶片74的分开组平面上就避免将不同数据流62A、62B的奇偶校验信息异或在一起以及为了数据恢复而对不同数据流的奇偶校验信息进行反异或。
结构化非易失性存储器的某些实施方案可扩展支持多个数据流的固态设备的耐用性、可靠性和/或性能。在某些实施方案中,到超平面块的多个数据流的工作负荷跨越用户数据晶片和/或一个或多个XOR晶片的不同平面就减小写入放大因子。覆写或更新一个数据流并不导致另一数据流和/或另一数据流的奇偶校验信息的垃圾回收。在某些实施方案中,到超平面块的多个数据流的工作负荷跨越用户数据晶片和/或一个或多个XOR晶片的不同平面就减少写入同一平面的晶片争用。不同数据流的写入可同时或并行发生到晶片的不同平面,而不导致在对同一平面的数据流写入执行之间来回切换。在某些实施方案中,到超平面块的多个数据流的工作负荷跨越用户数据晶片和/或一个或多个XOR晶片的不同平面就减小超平面块的可擦除单元。随着晶片的平面的数量増加,可一起擦除的整个超平面块的可擦除单元变得更小。在利用每个单元存储较高位的NAND存储器单元诸如QLC存储器单元的企业应用中,较小的可擦除单元是理想的。较小的可擦除单元允许来自数据流的较小单位的数据在被刷新到超平面块之前被存储到高速缓存。擦除整个超平面块就避免垃圾回收并且由于较低的写入放大而提供经改善的耐用性。在某些实施方案中,到超平面块的多个数据流的工作负荷跨越一个或多个XOR晶片的不同平面就简化了XOR操作以及在用户晶片发生故障的情况下的数据恢复。更新一个数据流的奇偶校验信息并不导致另一数据流的奇偶校验信息的垃圾回收。将多个数据流的组合奇偶校验信息写入一个或多个XOR晶片的分开的平面上就避免了组合奇偶校验信息的异或/反异或操作。在某些实施方案中,到超平面块的多个数据流的工作负荷跨越用户数据晶片和/或一个或多个XOR晶片的不同平面就减小数据流高速缓存的大小和成本。整个数据流高速缓存被刷新到超平面块,从而提高数据流高速缓存的更高效率。
在一个实施方案中,固态设备包括控制器和非易失性存储器。非易失性存储器包括多个晶片。每个晶片包括多个平面。第一超平面块是由多个晶片的第一平面结构化。第二超平面块是由多个晶片的第二平面结构化。多个存储器操作指令在被控制器执行时使控制器接收第一数据流、将第一数据流写入第一超平面块、接收第二数据流以及将第二数据流写入第二超平面块。
在另一实施方案中,固态设备包括控制器、数据流支持装置、和多个存储器操作指令。数据流支持装置用于在NAND闪存存储器上同时写入分开的数据。多个存储器操作指令在被控制器执行时使控制器同时将分开的数据写入数据流支持装置。
在一个实施方案中,一种操作固态设备的方法包括将非易失性存储器结构化成第一超平面块和第二超平面块。第一超平面块由多个晶片的第一平面结构化,并且第二超平面块由多个晶片的第二平面结构化。第一数据流被写入第一超平面块。第二数据流被写入第二超平面块。
在另一实施方案中,一种操作固态设备的方法包括提供包括具有多个平面的多个晶片的非易失性存储器。非易失性存储器被结构化成多个超平面块。每个超平面块跨越多个晶片的分开平面。多个数据流被写入到多个超平面块中。
在另外一实施方案中,一种操作固态设备的方法包括提供包括多个用户数据晶片和XOR晶片的非易失性存储器。第一数据流的奇偶校验信息被写入在XOR晶片的第一平面上。第二数据流的奇偶校验信息被写入在XOR晶片的第二平面上。
虽然前述内容针对本公开的实施方案,但是可以在不脱离本公开的基本范围的情况下设想本公开的其他和另外的实施方案,并且本公开的范围由所附权利要求书确定。
Claims (16)
1.一种固态设备,包括:
控制器;
非易失性存储器,所述非易失性存储器包括多个晶片,每个晶片包括第一平面和第二平面;
第一超平面块,所述第一超平面块由所述多个晶片的所述第一平面结构化;
第二超平面块,所述第二超平面块由所述多个晶片的所述第二平面结构化;和
多个存储器操作指令,所述多个存储器操作指令在被所述控制器执行时使所述控制器:
接收第一数据流;
将所述第一数据流写入所述第一超平面块;
接收第二数据流;
将所述第二数据流写入所述第二超平面块;
使所述第一超平面块的数据无效;以及
擦除所述第一超平面块而不导致所述第二超平面块的垃圾回收。
2.根据权利要求1所述的固态设备,其中所述多个存储器操作指令还使所述控制器将所述第一数据流的第一奇偶校验信息写入所述第一超平面块的XOR晶片的第一平面并且将所述第二数据流的第二奇偶校验信息写入所述第二超平面块的XOR晶片的第二平面。
3.根据权利要求1所述的固态设备,其中所述多个存储器操作指令还使所述控制器同时将所述第一数据流写入所述第一超平面块并且将所述第二数据流写入所述第二超平面块。
4.根据权利要求1所述的固态设备,其中所述多个晶片包括四层存储器单元。
5.根据权利要求1所述的固态设备,其中所述第一超平面块和所述第二超平面块形成可擦除单元。
6.根据权利要求1所述的固态设备,还包括逻辑页面高速缓存,其中所述多个存储器操作指令还使所述控制器将所述第一数据流刷新到所述第一超平面块并且将所述第二数据流刷新到所述第二超平面块。
7.一种固态设备,包括:
非易失性存储器,所述非易失性存储器包括具有多个平面的多个晶片;和
控制器,所述控制器耦接到所述非易失性存储器,所述控制器被配置为:
将所述非易失性存储器结构化成多个超平面块,每个超平面块跨越所述多个晶片的分开平面;
将多个数据流缓存到逻辑页面高速缓存;以及
以填充所述多个超平面块中的一个或多个的尺寸刷新所述逻辑页面高速缓存;以及
将多个数据流从所述逻辑页面高速缓存写入所述多个超平面块中;
其中所述多个数据流中的每个数据流被写入所述多个超平面块中的一个或多个分开的超平面块。
8.根据权利要求7所述的固态设备,其中被写入所述多个超平面块的数据流的数量等于或小于所述平面的数量。
9.根据权利要求7所述的固态设备,其中所述逻辑页面高速缓存选自主机高速缓存、SSD SRAM高速缓存、SSD DRAM高速缓存、SSD NAND闪存高速缓存以及它们的组合。
10.根据权利要求7所述的固态设备,其中所述非易失性存储器包括多个用户数据晶片和XOR晶片,其中所述控制器还被配置为:
将第一数据流的奇偶校验信息写入所述XOR晶片的第一平面;以及
将第二数据流的奇偶校验信息写入所述XOR晶片的第二平面。
11.根据权利要求10所述的固态设备,其中所述控制器还被配置为:
将所述非易失性存储器结构化成第一超平面块和第二超平面块,所述第一超平面块跨越每个用户数据晶片的第一平面并且所述第二超平面块跨越每个用户数据晶片的第二平面;
将所述第一数据流写入所述第一超平面块;以及
将所述第二数据流写入所述第二超平面块。
12.根据权利要求11所述的固态设备,其中所述第一数据流和所述第二数据流在所述多个用户数据晶片上交叉并且其中所述第一数据流的所述奇偶校验信息和所述第二数据流的所述奇偶校验信息在所述XOR晶片的所述第一平面和所述第二平面上交叉。
13.一种固态设备,包括:
非易失性存储器,所述非易失性存储器包括具有多个平面的多个用户数据晶片以及具有多个平面的XOR晶片;和
控制器,所述控制器耦接到所述非易失性存储器并且被配置为:
将所述非易失性存储器结构化成第一超平面块和第二超平面块,所述第一超平面块跨越每个所述用户数据晶片的第一平面以及所述XOR晶片的第一平面,所述第二超平面块跨越每个所述用户数据晶片的第二平面以及所述XOR晶片的第二平面;
将第一数据流写入所述第一超平面块;
将第二数据流写入所述第二超平面块;
将所述第一数据流的奇偶校验信息写入所述XOR晶片的第一平面;
将所述第二数据流的奇偶校验信息写入所述XOR晶片的第二平面;
使被写入所述第一超平面块的所述第一数据流的所述奇偶校验信息无效;以及
擦除所述第一数据流的所述奇偶校验信息而不导致所述第二数据流的所述奇偶校验信息的垃圾回收。
14.一种固态设备,包括:
控制器;
数据流支持装置,所述数据流支持装置用于从NAND闪存存储器上的两个分开的数据流同时写入分开的数据;和
多个存储器操作指令,所述多个存储器操作指令在被所述控制器执行时使所述控制器同时将分开的数据写入所述数据流支持装置,其中所述两个分开的数据流之一的分开的数据的无效导致擦除所述两个分开的数据流之一的所述分开的数据而不导致所述两个分开的数据流的另一个的分开的数据的垃圾回收。
15.根据权利要求14所述的固态设备,其中所述分开的数据是来自所述两个分开的数据流的用户数据。
16.根据权利要求14所述的固态设备,其中所述分开的数据是来自所述两个分开的数据流的奇偶校验信息。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862747525P | 2018-10-18 | 2018-10-18 | |
US62/747,525 | 2018-10-18 | ||
US16/440,233 | 2019-06-13 | ||
US16/440,233 US10949123B2 (en) | 2018-10-18 | 2019-06-13 | Using interleaved writes to separate die planes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111078131A CN111078131A (zh) | 2020-04-28 |
CN111078131B true CN111078131B (zh) | 2023-06-30 |
Family
ID=70279175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910879797.XA Active CN111078131B (zh) | 2018-10-18 | 2019-09-18 | 使用交叉写入分开晶片平面 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10949123B2 (zh) |
CN (1) | CN111078131B (zh) |
DE (1) | DE102019123709A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10872035B1 (en) * | 2019-05-29 | 2020-12-22 | Apple Inc. | Systems and methods for managing an artificially limited logical space of non-volatile memory |
WO2020258197A1 (en) * | 2019-06-28 | 2020-12-30 | Yangtze Memory Technologies Co., Ltd. | Computation-in-memory in three-dimensional memory device |
CN110537259A (zh) | 2019-06-28 | 2019-12-03 | 长江存储科技有限责任公司 | 三维存储器件中的存储器内计算 |
KR20210007503A (ko) * | 2019-07-11 | 2021-01-20 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
US11106813B2 (en) | 2019-09-20 | 2021-08-31 | International Business Machines Corporation | Credentials for consent based file access |
US11327665B2 (en) * | 2019-09-20 | 2022-05-10 | International Business Machines Corporation | Managing data on volumes |
US11321488B2 (en) | 2019-09-20 | 2022-05-03 | International Business Machines Corporation | Policy driven data movement |
US11188680B2 (en) | 2019-09-20 | 2021-11-30 | International Business Machines Corporation | Creating research study corpus |
US11443056B2 (en) | 2019-09-20 | 2022-09-13 | International Business Machines Corporation | File access restrictions enforcement |
US11328089B2 (en) | 2019-09-20 | 2022-05-10 | International Business Machines Corporation | Built-in legal framework file management |
KR20210085674A (ko) | 2019-12-31 | 2021-07-08 | 삼성전자주식회사 | 다중-스트림을 지원하도록 구성된 스토리지 장치 및 그것의 동작 방법 |
US11137938B1 (en) * | 2020-04-30 | 2021-10-05 | Micron Technology, Inc. | Converting a multi-plane write operation into multiple single plane write operations performed in parallel on a multi-plane memory device |
US11442646B2 (en) | 2020-09-09 | 2022-09-13 | Western Digital Technologies Inc. | Identified zones for optimal parity sharing zones |
US12019913B2 (en) * | 2021-05-17 | 2024-06-25 | Western Digital Technologies, Inc. | Storing log and user data in SSD with independent plane operations |
US11966618B2 (en) * | 2021-08-25 | 2024-04-23 | Western Digital Technologies, Inc. | Purposeful super device imbalance for ZNS SSD efficiency |
US11960753B2 (en) | 2021-08-25 | 2024-04-16 | Western Digital Technologies, Inc. | Solution for super device imbalance in ZNS SSD |
US20240111422A1 (en) * | 2022-09-30 | 2024-04-04 | Samsung Electronics Co., Ltd | Method of optimizing quality of service (qos) in solid-state drives (ssds) and an ssd thereof |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105917414A (zh) * | 2013-12-13 | 2016-08-31 | 英特尔公司 | 非易失性存储器中冗余信息的管理 |
CN106484319A (zh) * | 2015-09-02 | 2017-03-08 | 爱思开海力士有限公司 | 用于非易失性存储器的支持无效命令 |
TW201738900A (zh) * | 2016-04-27 | 2017-11-01 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8239614B2 (en) * | 2009-03-04 | 2012-08-07 | Micron Technology, Inc. | Memory super block allocation |
US20120023144A1 (en) | 2010-07-21 | 2012-01-26 | Seagate Technology Llc | Managing Wear in Flash Memory |
US9176864B2 (en) | 2011-05-17 | 2015-11-03 | SanDisk Technologies, Inc. | Non-volatile memory and method having block management with hot/cold data sorting |
US9564212B2 (en) * | 2014-05-06 | 2017-02-07 | Western Digital Technologies, Inc. | Solid-state memory corruption mitigation |
US10409526B2 (en) | 2014-12-17 | 2019-09-10 | Violin Systems Llc | Adaptive garbage collection |
US9830093B2 (en) * | 2015-03-27 | 2017-11-28 | Intel Corporation | Method and apparatus for improving immunity to defects in a non-volatile memory |
US9898202B2 (en) * | 2015-11-30 | 2018-02-20 | Samsung Electronics Co., Ltd. | Enhanced multi-streaming though statistical analysis |
US10032488B1 (en) * | 2016-12-29 | 2018-07-24 | Sandisk Technologies Llc | System and method of managing data in a non-volatile memory having a staging sub-drive |
US10228862B2 (en) * | 2017-03-15 | 2019-03-12 | Western Digital Technologies, Inc. | Capacity-aware wear leveling in solid-state storage devices |
JP2018160195A (ja) * | 2017-03-23 | 2018-10-11 | 東芝メモリ株式会社 | メモリシステムおよび不揮発性メモリの制御方法 |
US20190317889A1 (en) * | 2018-04-15 | 2019-10-17 | Synology Inc. | Apparatuses and methods and computer program products for a redundant array of independent disk (raid) reconstruction |
-
2019
- 2019-06-13 US US16/440,233 patent/US10949123B2/en active Active
- 2019-09-04 DE DE102019123709.2A patent/DE102019123709A1/de active Pending
- 2019-09-18 CN CN201910879797.XA patent/CN111078131B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105917414A (zh) * | 2013-12-13 | 2016-08-31 | 英特尔公司 | 非易失性存储器中冗余信息的管理 |
CN106484319A (zh) * | 2015-09-02 | 2017-03-08 | 爱思开海力士有限公司 | 用于非易失性存储器的支持无效命令 |
TW201738900A (zh) * | 2016-04-27 | 2017-11-01 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 |
Also Published As
Publication number | Publication date |
---|---|
DE102019123709A1 (de) | 2020-04-23 |
US20200125294A1 (en) | 2020-04-23 |
CN111078131A (zh) | 2020-04-28 |
US10949123B2 (en) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111078131B (zh) | 使用交叉写入分开晶片平面 | |
US11768610B2 (en) | Storage system having a host that manages physical data locations of a storage device | |
US9645896B2 (en) | Data storage device and flash memory control method | |
US9158681B1 (en) | Process and apparatus to reduce declared capacity of a storage device by conditionally trimming | |
US9263142B2 (en) | Programming a memory cell using a dual polarity charge pump | |
US9665311B2 (en) | Process and apparatus to reduce declared capacity of a storage device by making specific logical addresses unavailable | |
US11262939B2 (en) | Memory system, memory controller, and operation method | |
CN112650442B (zh) | 存储器系统、存储器控制器及操作方法 | |
US9582203B2 (en) | Process and apparatus to reduce declared capacity of a storage device by reducing a range of logical addresses | |
US9524112B2 (en) | Process and apparatus to reduce declared capacity of a storage device by trimming | |
US9563362B2 (en) | Host system and process to reduce declared capacity of a storage device by trimming | |
US9652153B2 (en) | Process and apparatus to reduce declared capacity of a storage device by reducing a count of logical addresses | |
KR20210041233A (ko) | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 | |
US11941272B2 (en) | Memory system and operating method of memory system | |
US11249838B2 (en) | Memory system, memory controller, and method of operating memory controller | |
CN106297881B (zh) | 非挥发性存储器的健康管理 | |
CN114090473A (zh) | 存储器系统、存储器控制器及操作存储器系统的方法 | |
KR20220068535A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN112748871A (zh) | 存储器系统、存储器控制器以及存储器控制器的操作方法 | |
US11822819B2 (en) | Memory system and operating method thereof | |
US11893255B2 (en) | Memory system for managing data corresponding to a plurality of zones and operating method thereof | |
US20230377664A1 (en) | Memory sub-system for memory cell touch-up | |
KR20230048747A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 |
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 |