CN112328508B - 多层存储器中的层交错 - Google Patents

多层存储器中的层交错 Download PDF

Info

Publication number
CN112328508B
CN112328508B CN202010778252.2A CN202010778252A CN112328508B CN 112328508 B CN112328508 B CN 112328508B CN 202010778252 A CN202010778252 A CN 202010778252A CN 112328508 B CN112328508 B CN 112328508B
Authority
CN
China
Prior art keywords
layer
location
memory
determining
candidate
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
CN202010778252.2A
Other languages
English (en)
Other versions
CN112328508A (zh
Inventor
陈觅凯
振刚·陈
C·S·Y·光
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.)
Micron Technology Inc
Original Assignee
Micron Technology 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
Priority claimed from US16/531,305 external-priority patent/US11341046B2/en
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN112328508A publication Critical patent/CN112328508A/zh
Application granted granted Critical
Publication of CN112328508B publication Critical patent/CN112328508B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本申请涉及多层存储器中的层交错。可接收待存储于存储器组件处的数据。可确定用以存储所述数据的第一部分的所述存储器组件的第一层的第一位置。可确定用以存储所述数据的第二部分的所述存储器组件的第二层的第二位置,其中所述第二层不同于所述第一层。可将所述数据的所述第一部分存储于所述存储器组件的所述第一层处,且可将所述数据的所述第二部分存储于所述存储器组件的所述第二层处。

Description

多层存储器中的层交错
技术领域
本公开大体上涉及存储器子系统,且更具体来说,涉及多层存储器子系统中的层交错。
背景技术
存储器子系统可为存储系统,例如固态驱动器(SSD)或硬盘驱动器(HDD)。存储器子系统可为存储器模块,例如双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)或非易失性双列直插式存储器模块(NVDIMM)。存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可为例如非易失性存储器组件及易失性存储器组件。一般来说,主机系统可利用存储器子系统以在存储器组件处存储数据且从存储器组件检索数据。
发明内容
在一个方面中,本申请涉及一种方法,其包括:接收待存储于存储器组件处的数据;确定用以存储所述数据的第一部分的所述存储器组件的第一层的第一位置;确定用以存储所述数据的第二部分的所述存储器组件的第二层的第二位置,其中所述第二层不同于所述第一层;及由处理装置将所述数据的所述第一部分存储于所述存储器组件的所述第一层的所述第一位置处,并将所述数据的所述第二部分存储于所述第二层的所述第二位置处。
在另一方面中,本申请涉及一种包括指令的非暂时性计算机可读媒体,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:接收检索存储于存储器组件处的数据的请求;确定存储所述数据的第一部分的所述存储器组件的第一层的第一位置;确定存储所述数据的第二部分的所述存储器组件的第二层的第二位置,其中所述第二层不同于所述第一层;及从所述存储器组件的所述第一层的所述第一位置及所述第二层的所述第二位置检索所述数据。
在另一方面中,本申请涉及一种系统,其包括:存储器组件;及处理装置,所述处理装置以操作方式与所述存储器组件耦合以进行以下操作:接收待存储于所述存储器组件处的数据;确定用以存储所述数据的第一部分的所述存储器组件的第一层的第一位置;确定用以存储所述数据的第二部分的所述存储器组件的第二层的第二位置,其中所述第二层不同于所述第一层;及将所述数据的所述第一部分存储于所述存储器组件的所述第一层的所述第一位置处,并将所述数据的所述第二部分存储于所述第二层的所述第二位置处。
附图说明
根据下文给出的详细描述及本公开的各种实施方案的附图,将更充分地理解本公开。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算环境。
图2为根据一些实施例的执行用于多层存储器子系统的写入操作的层交错的实例方法的流程图。
图3说明根据本公开的一些实施例的用于多层存储器子系统的层交错的实例。
图4为根据本公开的一些实施例的执行用于多层存储器子系统处的读取操作的层交错的实例方法的流程图。
图5为本公开的实施方案可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的方面涉及存储器子系统中的多层存储器中的层交错。存储器子系统在下文也称为“存储器装置”。存储器子系统的实例为经由外围互连件(例如,输入/输出总线、存储区域网络)耦合到中央处理单元(CPU)的存储装置。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器及硬盘驱动器(HDD)。存储器子系统的另一实例为经由存储器总线耦合到CPU的存储器模块。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)、非易失性双列直插式存储器模块(NVDIMM)等。存储器子系统可为混合式存储器/存储子系统。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供待存储于存储器子系统处的数据且可请求待从存储器子系统检索的数据。
常规存储器子系统可包含具有布置于多个层或“层面”中的存储器单元的存储器组件。通常称为多层或3维(3D)存储器的以此方式配置的存储器可包含若干层,所述层各自包含组织成2维(2D)阵列的多个存储器单元。3D存储器提供优于2D存储器的若干优点,这是由于3D存储器允许存储器单元分层,使得可在不降低单元自身的大小的情况下显著增大存储量。在一些存储器子系统中,使存储器单元分层可允许每一存储器单元较大,相比于2D存储器阵列,这可增大存储容量。
在常规存储器子系统中,可使用例如码字的系统存取单元将主机数据写入到3D存储器单元。通常,码字被写入到存储器子系统的页大小比码字大小小得多的3D存储器单元中。因此,常常可跨越多个页(或其它类似配置的可寻址单元)分割码字的内容。常规存储器子系统通常通过选择将跨越多个页的码字的每一部分写入到的单个层来执行到3D存储器的写入操作。因此,整个码字可位于包含在3D存储器的同一层中的存储器单元上。虽然此配置可降低系统复杂度,但此配置也会降低可靠性且由于对同一层的重复读取及写入而增大错误率。
以此方式配置的常规存储器子系统可通常跨越不同层展现不同特性(写入耗损、干扰等),这可增大误码率。因此,由于层之间的差异,跨越单个层写入的实施方案的总性能及可靠性可能不一致。例如,一个层的性能及可靠性可能在正常限值内,而另一层的性能及可靠性可能降低。在一些情况下,这可能是由于层在层堆叠中的相对位置,涉及所述层的读取及写入相对于其它层的次数等。因此,层之间的性能及可靠性上的差别可能对整个组件的性能及可靠性产生负面影响。另外,由于3D存储器组件在其使用寿命内都在各种噪声机构的组合下操作,因此3D存储器组件的耐用性特性可能会随时间推移展现较大变化。此外,3D存储器的观察到的误码率在从一个读取操作到下一读取操作时会显著增大(通常称为误码率突增)。此外,读取操作可使同一存储器组件中的附近单元随时间推移而发生改变,且因此无意中被编程,这通常称为“读取干扰”。由于3D存储器添加了第三维度方向,因此存储器组件的不同层会展现不同的干扰方向,且因此,当反复地读取一个层时,组件的整体读取干扰的水平将显著增大。
本公开的方面通过执行用于多层存储器中的写入操作的层交错来解决上文及其它不足。当接收到待跨越3D存储器组件的多个页存储的数据时,可将数据写入成使得跨越3D存储器的不同层写入数据的每一部分(例如,每一页)。接收的码字可被划分至待写入的页中,且对于每一页,与先前写入的页相比,可将3D存储器组件的不同层作为写入操作的目标。因此,可跨越3D存储器组件的多个层来交错数据,以减少重复写入及后续读取对任一特定层的影响。
本公开的优势包含但不限于改进可靠性以及降低3D存储器组件在其工作寿命期间的误码率。实施本公开的层交错过程实现了常规实施方案的容量益处而不会使误码率及读取干扰相关联地增大,这是由于在跨越单个层存储单个码字时,与反复地读取及写入同一层相反,读取及写入操作两者都可对于单个码字存取多个层。另外,由于改进了存储器组件的可靠性,因此包含存储器组件的存储器子系统的性能也可得到改进,这是由于使用了较少资源来执行将由存储器组件引起的错误校正操作,所述组件受到由单个层存取引发的增大的误码率的影响。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如存储器组件112A到112N。存储器组件112A到112N可为易失性存储器组件、非易失性存储器组件或此类组件的组合。在一些实施例中,存储器子系统为存储系统。存储系统的实例为SSD。在一些实施例中,存储器子系统110为混合式存储器/存储子系统。一般来说,计算环境100可包含使用存储器子系统110的主机系统120。例如,主机系统120可将数据写入到存储器子系统110并从存储器子系统110读取数据。
主机系统120可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置或包含存储器及处理装置的此类计算装置。主机系统120可包含或耦合到存储器子系统110,使得主机系统120可从存储器子系统110读取数据或将数据写入到存储器子系统。主机系统120可经由物理主机接口耦合到存储器子系统110。如本文中所使用,“耦合到”通常指组件之间的连接,其可为间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线的,包含例如电连接、光学连接、磁连接等的连接。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口来存取存储器组件112A到112N。物理主机接口可提供接口以用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号。
存储器组件112A到112N可包含不同类型的非易失性存储器组件及/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(NAND)类型快闪存储器。存储器组件112A到112N中的每一个可包含存储器单元的一或多个阵列,所述存储器单元例如单层级单元(SLC)或多层级单元(MLC)(例如,三层级单元(TLC)或四层级单元(QLC))。在一些实施例中,特定存储器组件可包含存储器单元的SLC部分及MLC部分两者。存储器单元中的每一个可存储由主机系统120使用的一或多个数据位(例如,数据块)。尽管描述例如NAND类型快闪存储器的非易失性存储器组件,但存储器组件112A到112N可基于任何其它类型的存储器,例如易失性存储器。在一些实施例中,存储器组件112A到112N可为但不限于随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁随机存取存储器(MRAM)、或非(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)及非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在先前不擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。此外,存储器组件112A到112N的存储器单元可分组为存储器页或数据块,其可指用于存储数据的存储器组件的单元。
存储器系统控制器115(下文称为“控制器”)可与存储器组件112A到112N通信以执行操作,例如在存储器组件112A到112N处读取数据、写入数据或擦除数据,以及其它此类操作。控制器115可包含硬件,例如一或多个集成电路及/或离散组件、缓冲存储器,或其组合。控制器115可为微控制器、专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。控制器115可包含配置成执行存储在本地存储器119中的指令的处理器(处理装置)117。在所说明的实例中,控制器115的本地存储器119包含配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程及例程。在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已说明为包含控制器115,但在本公开的另一实施例中,存储器子系统110可不包含控制器115,且可替代地依赖于(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供的)外部控制。
一般来说,控制器115可从主机系统120接收命令或操作,且可将命令或操作转换成指令或适当命令,以实现对存储器组件112A到112N的所要存取。控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测及错误校正码(ECC)操作、加密操作、高速缓存操作及在与存储器组件112A到112N相关联的逻辑块地址与物理块地址之间的地址转译。控制器115可进一步包含主机接口电路以经由物理主机接口与主机系统120通信。主机接口电路可将从主机系统接收到的命令转换成命令指令以存取存储器组件112A到112N,以及将与存储器组件112A到112N相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM)及地址电路(例如,行解码器及列解码器),所述地址电路可从控制器115接收地址且对地址进行解码以存取存储器组件112A到112N。
存储器子系统110包含存储器层组件113,其可用于在待存储于多层(例如,3D)存储器组件112A到112N处的数据的写入操作期间,以及在已存储于存储器组件112A到112N处的数据的读取操作期间执行存储器层交错。在一些实施例中,控制器115包含存储器层组件113的至少一部分。例如,控制器115可包含处理器117(处理装置),其被配置成执行存储在本地存储器119中的指令以用于执行本文中所描述的操作。在一些实施例中,存储器层组件113为主机系统120、应用程序或操作系统的部分。在各种实施例中,存储器层组件113可充当控制器115的地址转译组件的子组件。在此类情况下,存储器层组件113可充当从主机地址到用于存储器子系统110的媒体地址的地址转译的部分。特定来说,可在从物理地址到存储器装置地址的转译期间调用存储器层组件113,如本文中所描述。
在接收到待存储于存储器组件112A到112N处的数据时,存储器层组件113可确定用以存储数据的第一部分的存储器组件112A到112N的第一层的第一位置。存储器层组件113可接着确定用以存储数据的第二部分的存储器组件112A到112N的第二层的第二位置,其中第二层不同于第一层,并跨越第一层的第一位置及第二层的第二位置存储数据。在各种实施方案中,可针对所接收码字中包含的数据的每一部分重复此过程,从而跨越存储器组件112A到112N的不同层交错数据的每一部分。
另外,在接收到从存储器组件112A到112N读取所存储数据的请求时,存储器层组件113可确定存储数据的第一部分的存储器组件112A到112N的第一层的第一位置。存储器层组件113可接着确定存储数据的第二部分的存储器组件的第二层的第二位置,其中第二层不同于第一层,并从存储器组件112A到112N的所确定层检索数据。如同写入操作,在各种实施方案中,可针对从存储器组件112A到112N检索整个码字所需的数据的每一部分重复此过程。下文描述关于存储器层组件113的操作的其它细节。
图2为执行用于多层存储器子系统的写入操作的层交错的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200由图1的存储器层组件113执行。尽管以特定序列或次序示出,但除非另外指定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,在每一实施例中并非需要全部过程。其它过程流程也是可能的。
如图2中所示,在操作210处,处理逻辑接收待存储于存储器组件处的数据。在一些实施方案中,存储器组件可为3维(3D)存储器组件。例如,3D存储器组件可为3D交叉点阵列存储器。如上文所提及,3D存储器可由存储器单元的多个层构成,其中每一层可包含存储器单元的2维(2D)网格,且其中3D存储器组件的层可相对于彼此竖直地堆叠。在一些实施方案中,存储器组件可是可按字节寻址的。换句话说,可通过唯一地址参考存储于存储器组件处的每一字节。可按字节寻址的存储器可允许以几字节,例如4个字节、8个字节、16个字节、32个字节等的粒度进行写入/读取存取。此类单位可被称为页。相比不可按字节寻址的存储器(例如NAND快闪)中的页大小,可按字节寻址的存储器中的页大小可小得多,前者的页大小可为几千字节。在各种实施方案中,存储器装置的页地址可包含可识别存储器组件中的特定层的层地址字段,以及可识别所述层中的页的其它地址字段(例如,层内地址)。
在操作210处接收的数据可为系统存取单元(SAU),例如错误校正码(ECC)码字。在各种实施方案中,SAU可为存储器子系统单元,其包含例如主机数据、ECC奇偶校验信息、元数据或其它类似信息的信息。在一些情况下,SAU可包含多于一个ECC码字。如上文所提及,SAU中的数据可存储于存储器组件的多个可寻址单元(例如,存储器页)中的存储器组件处,其中SAU的大小大于每一可寻址单元(例如,每一存储器页)的大小。例如,可通过使用存储器组件的4个页将单个4千字节码字存储于配置有1千字节存储器页的存储器组件处。
在操作220处,处理逻辑确定用以存储数据的第一部分的存储器组件的第一层的第一位置。如上文所提及,在操作210处接收的数据可存储于存储器组件的多个可寻址单元(例如,存储器页)处。对于待存储数据的一部分的每一可寻址单元,处理逻辑可确定数据写入操作涉及的目标层,使得跨越存储器组件的多个层交错整个码字的数据。因此,在操作220处,处理逻辑可识别用于所接收数据的一部分的目标可寻址单元以及所述可寻址单元的层。
在各种实施方案中,存储器组件可配置有多个层。一旦处理逻辑识别出用以存储数据的可用可寻址单元,接着就可基于先前完成的写入操作或基于与各种层相关联的所收集性能数据来依序、随机地确定目标层。在一个说明性实例中,每次接收到待存储的新码字时,处理逻辑可重设用于指定待存储数据的每一部分的目标层的层计数器。每次写入数据的一部分时,计数器可被更新(例如,递增或递减)并用于识别待存储数据的地址内的目标层。例如,接收的第一数据部分可存储在层‘0’处,第二部分存储在层‘1’处,第三部分存储在层‘2’处等。层计数器值可用作用以存储所接收数据的每一部分的目标位置的存储器地址的分量。
在一些情况下,单个码字的待存储数据量可能会超出存储器组件内的层数。在此类情况下,处理逻辑可考虑到存储器组件的总层数来确定目标层。例如,如果接收到跨越存储器组件的20个页的码字,其中存储器组件配置有10个层,则一旦已写入第十页,处理逻辑就可重设计数器,使得第十一页可被写入于层‘0’处,第十二页被写入于层1处,第十三页被写入于层‘2’处等等。在一些实施方案中,并非在‘0’处开始计数器且并非针对每一页写入使计数器递增,处理逻辑可将计数器设定为总层数,且针对每一页写入使计数器递减,直到计数器到达0为止,之后可再次将计数器设定为总层数。
在一些情况下,可跨越接收的码字维持计数器,而不针对每一码字重设计数器。换句话说,如果码字的最后页被存储于层‘3’处,则下一所接收码字的第一页可被存储于层‘4’处,而不对于计数器递增的实施方案将计数器重设回到‘0’,或对于计数器递减的实施方案将计数器重设到层‘2’。在其它情况下,并非使计数器依序递增或递减,可随机或伪任意地选择层(例如,使用随机数生成器)。
在一些实施方案中,可使用存储器组件的各种层的观察到的性能度量来确定目标层。例如,处理逻辑可基于观察到的耐用性值来确定目标层。存储器组件的耐用性是指在数据不再能够可靠地存储于存储器单元处之前,对存储器组件的存储器单元执行的写入操作的次数或编程/擦除操作的次数。例如,具有较低数据密度的SLC NAND快闪存储器单元可具有100,000编程擦除循环的耐用性阈值,而具有较高数据密度的TLC NAND快闪存储器单元可具有3,000编程擦除循环的耐用性阈值。
在此类情况下,处理逻辑可确定候选层(例如,基于上文所提及技术中的一种),接着确定与目标层的存储器单元相关联的耐用性值。处理逻辑接着可基于层的存储器单元(或多个单元)的观察到的耐用性来确定所述层是否为可行目标。为作出此确定,处理逻辑可将观察到的耐用性值(或多个值)与相关联于存储器组件的存储器单元的预定阈值进行比较。如上文所提及,在存储器单元变得不可靠之前,取决于其密度,单元可具有不同的最大耐用性阈值。在一些实施方案中,比较中使用的耐用性阈值可被设定成此值。替代地,比较中使用的耐用性阈值可被设定成低于最大阈值(例如,70%、80%等)的数字。响应于确定观察到的耐用性值满足耐用性阈值,处理逻辑可将所述层选择为用以存储所接收码字的第一部分的层。例如,如果观察到的耐用性值小于或等于所设定阈值,则观察到的值可满足耐用性阈值。响应于确定目标层的观察到的耐用性值并不满足耐用性阈值,处理逻辑可选择用以存储所述页的数据的存储器组件的另一层。例如,大于所设定阈值的观察到的值将不满足耐用性阈值。
在一些实施方案中,处理逻辑可基于观察到的误码率来确定目标层。如上文关于误码率突增及干扰所提及,重复的读取及写入操作可使观察到的误码率在从一个读取操作到下一读取操作时显著增大。处理逻辑可确定候选层(例如,基于上文所提及技术中的一种),接着确定与目标层的存储器单元相关联的错误率值。处理逻辑接着可基于层的存储器单元(或多个单元)的观察到的误码率来确定所述层是否为可行目标。为作出此确定,处理逻辑可将观察到的误码率值(或多个值)与相关联于存储器组件的存储器单元的预定阈值进行比较。在一些实施方案中,相对于其它存储器单元具有较高错误数的存储器单元可能变得不可靠。在一些实施方案中,比较中使用的错误阈值可被设定成指示存储器组件的最大可接受错误率的值。替代地,比较中使用的错误阈值可被设定成低于最大值(例如,70%、80%等)的数字。响应于确定观察到的错误率值满足错误阈值,处理逻辑可将所述层选择为用以存储所接收码字的第一部分的层。例如,如果观察到的错误率值小于或等于所设定阈值,则观察到的值可满足错误阈值。响应于确定目标层的观察到的错误率值并不满足错误阈值,处理逻辑可选择用以存储所述页的数据的存储器组件的另一层。例如,大于所设定阈值的观察到的值将不满足耐用性阈值。
在操作230处,处理逻辑确定用以存储数据的第二部分的存储器组件的第二层的第二位置,其中第二层不同于第一层。在各种实施方案中,处理逻辑可如上文在操作220处所描述般确定用于数据的第二部分的层的位置。如上文所提及,处理逻辑可基于被选定用于数据的第一部分的层的位置以及存储器组件的总层数的组合来确定第二层的第二位置。例如,处理逻辑可确定与第一层的第一位置相关联的第一地址值。处理逻辑接着可确定存储器组件的总层数,且随后考虑到第一地址值及总层数来确定地址值(例如,通过使层数递增、使层数递减、确定总层数范围内的随机层数等)。
在一些实施方案中,数据的第二部分可存储在存储器组件的与数据的第一部分相同的逻辑单元(例如,相同的裸片)上。在此类情况下,处理逻辑可确定用以存储数据的存储器组件的逻辑单元。在操作220处,处理逻辑可在存储器组件的逻辑单元处确定第一层的第一位置。接着,在操作230处,处理逻辑可在存储器组件的同一逻辑单元处确定第二层的位置。
在一些实施方案中,数据的第二部分可存储在存储器组件的不同于数据的第一部分的逻辑单元(例如,不同的裸片)上。在此类情况下,在操作220处,处理逻辑可确定用以存储数据的第一部分的存储器组件的第一逻辑单元,且随后在存储器组件的第一逻辑单元处确定第一层的第一位置。接着,在操作230处,处理逻辑可确定用以存储数据的第二部分的存储器组件的第二逻辑单元,其中第二逻辑单元不同于第一逻辑单元。随后,处理逻辑可在存储器组件的第二逻辑单元处确定第二层的第二位置。
在操作240处,处理逻辑将数据的第一部分存储在存储器组件的第一层的第一位置处,且将数据的第二部分存储在第二层的第二位置处。在各种实施方案中,可针对操作210处接收的码字的每一数据部分重复操作220及230。因此,虽然方法200描述处理两个数据部分及两个目标层,但在各种实施方案中,可针对具有待存储在存储器组件的额外页及相关联层处的额外数据部分的码字进行类似步骤。另外,虽然方法200将操作220及230描述为以特定次序执行,但在一些实施方案中,可并行执行这些操作。
下文结合图3描述执行层交错过程的说明性实例。
图3说明根据本公开的一些实施例的对使用多层存储器的存储器子系统执行层交错。在一些实施例中,层交错可由图1的存储器层组件113执行且如上文关于图2及下文关于图4所描述。
如图3中所示,可接收待存储于3D存储器组件300处的码字340。码字340包含数据,在分配到存储器组件300的特定可寻址单元大小(例如,页大小)时,所述数据可划分成三个部分(数据段341、数据段342及数据段343)。如上文关于图2所描述,存储器层组件(例如,图1的存储器层组件113)可确定每一数据部分的目标页,以及用以存储可适用数据部分的每一页的目标层。
在接收到码字340时,存储器层组件可确定用以存储数据段341的存储器组件300的层位置。如所示,可寻址单元310可被识别为可用以存储数据段341的目标页。在确定目标页之后,存储器层组件可接着使用上文关于图2所描述的方法中的任一种来确定所述页的目标层。在一些实施方案中,存储器层组件在层‘0’处开始,且对于每一随后存储的页使层数递增。因此,数据段341可存储于可寻址单元(例如,页)310的层315-0(例如,层‘0’)处。
一旦已确定用于数据段341的目标页及层,存储器层组件可行进到确定用于码字340的其它数据段的目标页及层。如上文所描述,存储器层组件可首先识别目标可寻址单元320,接着确定可寻址单元内的层。在一些实施方案中,可基于被选定用于数据段341的层(例如,层‘0’)以及存储器组件300中的总层数(例如,总共3个层)来确定用于数据段342的层。因此,由于使用层‘0’存储数据段341,因此层存储器组件可使层计数器从0递增到1,并将用于数据段342的层数设定为层‘1’。因此,数据段342可存储于可寻址单元320的层325-1处。
类似地,存储器层组件可识别用于数据段343的目标可寻址单元330,且接着确定可寻址单元内的层。在一些实施方案中,可基于被选定用于数据段342的层(例如,层‘1’)以及存储器组件300中的总层数(例如,总共3个层)来确定用于数据段343的层。因此,由于使用层‘1’存储数据段342,因此层存储器组件可使层计数器从1递增到2,并将用于数据段343的层数设定为层‘2’。因此,数据段343可存储于可寻址单元330的层335-2处。
尽管图3说明针对具有三个层的存储器组件执行层交错,但所述过程可适用于具有较少层(例如,两个层)或更多层的存储器组件。例如,在码字340包含多于三个数据段的情况下,存储器层组件可将层计数重设为0并相应地存储任何额外数据段。因此,第四数据段(未描画)可存储于层‘0’处的另一数据段(未描画)处。另外,图3描绘所接收数据存储在每一选定层上的相同相对位置(例如,层的左上存储器单元)中。在一些实施方案中,每一数据部分的相对位置可为上文描述的用于确定用于每一数据段的目标层及存储器单元的过程中的一因素。在此类情况下,对于待存储的每一数据段,可选择相同的相对位置。在其它实施方案中,所接收数据可存储在不同的相对位置中。在说明性实例中,数据段341可存储于层315-0的左上存储器单元处,数据段342可存储于层325-1的左下存储器单元处,且数据段343可存储于层335-2的右下存储器单元处。在其它实例中,数据段可存储在其它的相对位置中。
此外,虽然图3描绘相对于单个存储器组件的数据交错,但在一些实施方案中,可相对于多个存储器组件或逻辑单元交错数据。在此类情况下,可寻址单元310、320及330中的一或多个可位于不同逻辑单元(例如,不同裸片)上。例如,可寻址单元310可位于第一逻辑单元上,可寻址单元320可位于第二逻辑单元上,且可寻址单元330可位于第三逻辑单元上。类似地,一些可寻址单元可共置在单个逻辑单元上,而其它可寻址单元可位于单独的逻辑单元上。例如,可寻址单元310及320可位于第一逻辑单元上,而可寻址单元330可位于第二逻辑单元上等等。
在接收到从存储器组件300检索码字340的请求时,存储器层组件可识别其中已存储数据段的适当可寻址单元310、320及330,确定存储数据的可适用层,并使用检索到的数据建构码字340。下文关于图4进一步详细描述执行用于读取操作的层交错的过程。
图4为根据本公开的一些实施例的执行用于多层存储器子系统的读取操作的层交错的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的存储器层组件113执行。尽管以特定序列或次序示出,但除非另外指定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,在每一实施例中并非需要全部过程。其它过程流程也是可能的。
如图4中所示,在操作410处,处理逻辑接收检索存储于存储器组件处的数据的请求。如上文所提及,存储器组件可为由存储器单元的多个层构成的3D存储器组件,其中每一层可包含存储器单元的2维(2D)网格,且其中3D存储器组件的层可相对于彼此竖直地堆叠。在一些实施方案中,存储器组件可是可按字节寻址的。如上文所提及,可按字节寻址的存储器可允许以几字节的粒度进行读取存取,其中粒度单位表示页。在一些实施方案中,读取单元页大小可不同于写入单元页大小。例如,读取单元可大小设定为4个页,而写入单元可大小设定为16个页(例如,4×4个页)。在两情况下,读取及写入过程可在4个层上交错相关联数据。
在操作420处,处理逻辑确定存储数据的第一部分的存储器组件的第一层的第一位置。如上文所提及,待检索的数据可跨越多个存储器页(例如,多个可寻址单元)被存储,其中可使用3D存储器组件的不同层对每一页进行存储。另外,在一些实施方案中,待检索的数据可跨越多个逻辑单元(例如,多个裸片)被存储。换句话说,不同的可寻址单元可位于不同逻辑单元上。因此,在操作420处,处理逻辑可识别存储待检索码字的一部分的可寻址单元中的一个以及对应层。例如,处理逻辑可接收到对待接收数据的逻辑地址的请求。处理逻辑接着可确定逻辑地址映射到存储器组件处的多个位置,其中每一位置可包含对特定层及所述层内的特定存储器单元的参考。在一些实施方案中,处理逻辑可确定数据的多个部分被存储的次序,且随后以所述次序传回数据部分。替代地,处理逻辑可以不同于数据的存储次序的次序传回数据部分。
在操作430处,处理逻辑确定存储数据的第二部分的存储器组件的第二层的第二位置,其中第二层不同于第一层。在一些实施方案中,处理逻辑可基于与操作420处确定的第一层的第一位置相关联的信息来确定第二层的第二位置。例如,处理逻辑可确定与第一层的第一位置相关联的第一地址值。处理逻辑接着可确定存储器组件的总层数,且随后考虑到第一地址值及总层数来确定地址值(例如,通过使层数递增、使层数递减、确定总层数范围内的随机层数等)。
在一些实施方案中,数据的第二部分可存储在存储器组件的与数据的第一部分相同的逻辑单元(例如,相同的裸片)上。在此类情况下,处理逻辑可确定待从中检索数据的存储器组件的逻辑单元。在操作420处,处理逻辑可在存储器组件的逻辑单元处确定第一层的第一位置。接着,在操作430处,处理逻辑可在存储器组件的同一逻辑单元处确定第二层的位置。
在一些实施方案中,数据的第二部分可存储在存储器组件的不同于数据的第一部分的逻辑单元(例如,不同的裸片)上。在此类情况下,在操作420处,处理逻辑可确定待从中检索数据的第一部分的存储器组件的第一逻辑单元,且随后在存储器组件的第一逻辑单元处确定第一层的第一位置。接着,在操作430处,处理逻辑可确定待从中检索数据的第二部分的存储器组件的第二逻辑单元,其中第二逻辑单元不同于第一逻辑单元。随后,处理逻辑可在存储器组件的第二逻辑单元处确定第二层的第二位置。
在操作440处,处理逻辑从存储器组件的第一层的第一位置及第二层的第二位置检索数据。在各种实施方案中,可针对待由操作410处接收的请求检索的码字的每一数据部分重复操作420及430。因此,虽然方法400描述处理两个数据部分及两个目标层,但在各种实施方案中,可针对具有待从存储器组件的额外页及相关联层检索的额外数据部分的码字进行类似步骤。另外,虽然方法400将操作420及430描述为以特定次序执行,但在一些实施方案中,可并行执行这些操作。
图5说明计算机系统500的实例机器,在所述实例机器内可执行用于使机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统500可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的存储器层组件113的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内联网、外联网及/或互联网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器,或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或网桥、数字或非数字电路,或能够执行(依序地或以其它方式)指定待由所述机器进行的动作的指令集的任何机器。此外,虽然说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多个)指令集以执行本文中所论述的方法中的任何一或多种。
实例计算机系统500包含处理装置502、主存储器504(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器506(例如,快闪存储器、静态随机存取存储器(SRAM)等),及数据存储系统518,它们经由总线530彼此通信。
处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置502也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置502被配置成执行指令526以用于执行本文中所论述的操作及步骤。计算机系统500可进一步包含网络接口装置508以在网络520上通信。
数据存储系统518可包含机器可读存储媒体524(也称为计算机可读媒体),其上存储有一或多个指令集526或体现本文中所描述的方法或功能中的任何一或多种的软件。指令526还可在其由计算机系统500执行期间完全或至少部分地驻存在主存储器504内及/或处理装置502内,主存储器504及处理装置502也构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518及/或主存储器504可对应于图1的存储器子系统110。
在一个实施例中,指令526包含用以实施对应于存储器层组件(例如,图1的存储器层组件113)的功能性的指令。虽然在实例实施例中将机器可读存储媒体524示出为单个媒体,但应认为术语“机器可读存储媒体”包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集,且使机器执行本公开的方法中的任何一或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体及磁性媒体。
已关于计算机存储器内的数据位的操作的算法及符号表示而呈现先前详细描述的一些部分。这些算法描述及表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法在这里且通常被认为是带来期望结果的操作的自洽序列。操作是需要对物理量进行物理操纵的操作。这些量通常但未必呈能够被存储、组合、比较及以其它方式操纵的电或磁信号的形式。有时,主要出于通用的原因,已证明将这些信号称为位、值、元素、符号、字符、术语、数目等是方便的。
然而,应牢记,所有这些及类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可参考计算机系统或类似电子计算装置的动作及过程,所述计算机系统或类似电子计算装置将计算机系统的寄存器及存储器内的表示为物理(电子)量的数据操纵及变换为计算机系统存储器或寄存器或其它此类信息存储系统内的类似地表示为物理量的其它数据。
本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的而专门建构,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘(包含软盘、光盘、CD-ROM及磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。
本文中呈现的算法及显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明建构更专用设备以执行所述方法是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,并不参考任何特定编程语言来描述本公开。应了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,其可包含其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神及范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。

Claims (20)

1.一种用于执行存储器操作的方法,其包括:
接收待存储于存储器组件处的数据;
确定用以存储所述数据的第一部分的所述存储器组件的第一层的第一位置,其中确定所述第一位置包括:
确定在所述存储器组件的第一逻辑单元处的候选层的候选位置;
确定与所述候选层的所述候选位置相关联的耐用性值,其中所述耐用性值包括在所述候选位置上执行写入操作的次数或编程/擦除操作的次数中的一者;以及
响应于确定所述耐用性值满足耐用性阈值,将所述第一层的所述第一位置设定为所述候选层的所述候选位置;
确定用以存储所述数据的第二部分的所述存储器组件的第二逻辑单元处的第二层的第二位置,其中所述第二层不同于所述第一层;及
由处理装置将所述数据的所述第一部分存储于所述存储器组件的所述第一层内的所述第一位置处的第一存储器单元中,并将所述数据的所述第二部分存储于所述第二层内的所述第二位置处的第二存储器单元中。
2.根据权利要求1所述的方法,其中所述存储器组件包括3维存储器,且其中所述第一层相对于所述第二层竖直地堆叠。
3.根据权利要求1所述的方法,其中确定所述第二层的所述第二位置包括:
确定与所述第一层的所述第一位置相关联的第一地址值;
确定所述存储器组件的总层数;及
考虑到所述第一地址值及所述总层数来确定与所述第二层的所述第二位置相关联的第二地址值。
4.根据权利要求1所述的方法,其进一步包括:
响应于确定所述耐用性值并不满足所述耐用性阈值,确定所述存储器组件的所述第一逻辑单元处的另一层的另一位置用于所述第一层的所述第一位置。
5.根据权利要求1所述的方法,其中所述第二逻辑单元不同于所述第一逻辑单元。
6.根据权利要求1所述的方法,其进一步包括:
确定所述存储器组件的候选层的候选位置;
确定与所述候选层的所述候选位置相关联的错误率值;
响应于确定所述错误率值满足错误阈值,将所述第一层的所述第一位置设定为所述候选层的所述候选位置;及
响应于确定所述错误率值并不满足所述错误阈值,确定所述存储器组件的另一层的另一位置用于所述第一层的所述第一位置。
7.根据权利要求1所述的方法,其中所述存储器组件是可按字节寻址的。
8.一种包括指令的非暂时性计算机可读介质,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:
接收待存储于存储器组件处的数据;
确定所述存储器组件的第一层的第一位置以存储所述数据的第一部分,其中确定所述第一位置包括:
确定在所述存储器组件的第一逻辑单元处的候选层的候选位置;
确定与所述候选层的所述候选位置相关联的耐用性值,其中所述耐用性值包括在所述候选位置上执行写入操作的次数或编程/擦除操作的次数中的一者;
响应于确定所述耐用性值满足耐用性阈值,将所述第一层的所述第一位置设定为所述候选层的所述候选位置;以及
确定所述存储器组件的第二逻辑单元处的第二层的第二位置以存储所述数据的第二部分,其中所述第二层不同于所述第一层;及
由处理装置将所述数据的所述第一部分存储于所述存储器组件的所述第一层内的所述第一位置处的第一存储器单元,并将所述数据的所述第二部分存储于所述第二层内的所述第二位置处的第二存储器单元。
9.根据权利要求8所述的非暂时性计算机可读介质,其中所述存储器组件包括3维存储器,且其中所述第一层相对于所述第二层竖直地堆叠。
10.根据权利要求8所述的非暂时性计算机可读介质,其中确定所述第二层的所述第二位置包括:
确定与所述第一层的所述第一位置相关联的第一地址值;
确定所述存储器组件的总层数;及
考虑到所述第一地址值及所述总层数来确定与所述第二层的所述第二位置相关联的第二地址值。
11.根据权利要求8所述的非暂时性计算机可读介质,其中所述操作进一步包括响应于确定所述耐用性值并不满足所述耐用性阈值,确定所述存储器组件的所述第一逻辑单元处的另一层的另一位置用于所述第一层的所述第一位置。
12.根据权利要求8所述的非暂时性计算机可读介质,其中所述第二逻辑单元不同于所述第一逻辑单元。
13.根据权利要求8所述的非暂时性计算机可读介质,其中所述操作进一步包括:
确定所述存储器组件的候选层的候选位置;
确定与所述候选层的所述候选位置相关联的错误率值;
响应于确定所述错误率值满足错误阈值,将所述第一层的所述第一位置设定为所述候选层的所述候选位置;及
响应于确定所述错误率值不满足所述错误阈值,确定所述存储器组件的另一层的另一位置用于所述第一层的所述第一位置。
14.根据权利要求8所述的非暂时性计算机可读介质,其中所述存储器组件是可按字节寻址的。
15.一种存储器系统,其包括:
存储器组件;及
处理装置,其以操作方式与所述存储器组件耦合,其中所述处理装置执行操作,所述操作包括:
接收待存储于所述存储器组件处的数据;
确定用以存储所述数据的第一部分的所述存储器组件的第一层的第一位置,其中确定所述第一位置包括:
确定在所述存储器组件的第一逻辑单元处的候选层的候选位置;
确定与所述候选层的所述候选位置相关联的耐用性值,其中所述耐用性值包括在所述候选位置上执行写入操作的次数或编程/擦除操作的次数中的一者;以及
响应于确定所述耐用性值满足耐用性阈值,将所述第一层的所述第一位置设定为所述候选层的所述候选位置;确定用以存储所述数据的第二部分的所述存储器组件的第二逻辑单元处的第二层的第二位置,其中所述第二层不同于所述第一层;及
将所述数据的所述第一部分存储于所述存储器组件的所述第一层内的所述第一位置处的第一存储器单元中,并将所述数据的所述第二部分存储于所述第二层内的所述第二位置处的第二存储器单元中。
16.根据权利要求15所述的存储器系统,其中所述存储器组件包括3维存储器,且其中所述第一层相对于所述第二层竖直地堆叠。
17.根据权利要求15所述的存储器系统,其中为确定所述第二层的所述第二位置,所述处理装置进一步执行操作,所述操作包括:
确定与所述第一层的所述第一位置相关联的第一地址值;
确定所述存储器组件的总层数;及
考虑到所述第一地址值及所述总层数来确定与所述第二层的所述第二位置相关联的第二地址值。
18.根据权利要求15所述的存储器系统,其中所述处理装置进一步响应于确定所述耐用性值不满足所述耐用性阈值,执行操作,所述操作包括确定所述存储器组件的所述第一逻辑单元处的另一层的另一位置用于所述第一层的所述第一位置。
19.根据权利要求15所述的存储器系统,其中所述第二逻辑单元不同于所述第一逻辑单元。
20.根据权利要求15所述的存储器系统,其中所述处理装置进一步执行操作,所述操作包括:
确定所述存储器组件的候选层的候选位置;
确定与所述候选层的所述候选位置相关联的错误率值;
响应于确定所述错误率值满足错误阈值,将所述第一层的所述第一位置设定为所述候选层的所述候选位置;及
响应于确定所述错误率值并不满足所述错误阈值,确定所述存储器组件的另一层的另一位置用于所述第一层的所述第一位置。
CN202010778252.2A 2019-08-05 2020-08-05 多层存储器中的层交错 Active CN112328508B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/531,305 2019-08-05
US16/531,305 US11341046B2 (en) 2019-08-05 2019-08-05 Layer interleaving in multi-layered memory

Publications (2)

Publication Number Publication Date
CN112328508A CN112328508A (zh) 2021-02-05
CN112328508B true CN112328508B (zh) 2024-07-02

Family

ID=

Similar Documents

Publication Publication Date Title
CN113168875B (zh) 读取干扰扫描合并
US11836392B2 (en) Relocating data to low latency memory
US11733892B2 (en) Partial superblock memory management
US11720286B2 (en) Extended cross-temperature handling in a memory sub-system
US11599416B1 (en) Memory sub-system using partial superblocks
CN116529693A (zh) 加电时的媒体管理
US11928356B2 (en) Source address memory managment
CN112449693B (zh) 在存储系统的两遍编程之前执行读取操作
US11914510B2 (en) Layer interleaving in multi-layered memory
CN112328508B (zh) 多层存储器中的层交错
CN114051605B (zh) 基于耐久性条件而改变待用于条带的存储器组件
US20230015066A1 (en) Memory sub-system for monitoring mixed mode blocks
US11599300B2 (en) Voltage threshold prediction-based memory management
US20230395152A1 (en) Memory cell voltage level selection
US20240028259A1 (en) Buffer allocation for reducing block transit penalty
EP4396667A1 (en) Memory sub-system using partial superblocks
CN117524282A (zh) 使用临时奇偶校验产生对存储器单元进行多遍次编程
CN113126899A (zh) 完全多平面操作启用
CN117950579A (zh) 循序写入的存储器装置中的运行时间存储容量减小避免

Legal Events

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