CN117999547A - 用于存储器子系统中的两遍次编程的虚拟管理单元方案 - Google Patents
用于存储器子系统中的两遍次编程的虚拟管理单元方案 Download PDFInfo
- Publication number
- CN117999547A CN117999547A CN202280064887.3A CN202280064887A CN117999547A CN 117999547 A CN117999547 A CN 117999547A CN 202280064887 A CN202280064887 A CN 202280064887A CN 117999547 A CN117999547 A CN 117999547A
- Authority
- CN
- China
- Prior art keywords
- memory
- mus
- virtual
- entry
- data item
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 348
- 238000013507 mapping Methods 0.000 claims abstract description 57
- 238000000034 method Methods 0.000 claims description 48
- 238000012545 processing Methods 0.000 claims description 47
- 230000008569 process Effects 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 23
- 238000013519 translation Methods 0.000 claims description 11
- 238000007726 management method Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 3
- 239000003990 capacitor Substances 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
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/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
- 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
- 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/0625—Power saving in 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
-
- 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
- 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
- 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/7201—Logical to physical mapping or translation of blocks or pages
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)
- Memory System (AREA)
Abstract
将数据项编程到与一或多个存储器装置的第一部分相关联的第一组管理单元(MU)。所述第一部分包含第一类型的存储器单元。所述第一组MU与第一物理地址相关联。在将所述第一物理地址与和所述一或多个存储器装置相关联的一组虚拟MU相关联的虚拟MU数据结构中产生映射。与所述数据项相关联的条目被添加到与所述一或多个存储器装置相关联的逻辑到物理(L2P)表。所述条目包含与和所述一或多个存储器装置相关联的所述一组虚拟MU相关联的识别符。检测所述数据项被编程到与所述一或多个存储器装置的第二部分相关联的第二组MU。所述第二部分包含第二类型的存储器单元。所述第二组MU与第二物理地址相关联。更新所述映射以将所述一组虚拟MU与所述第二物理地址相关联。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体来说涉及用于存储器子系统中的两遍次编程存储器的虚拟管理单元(vMU)方案。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。举例来说,所述存储器装置可为非易失性存储器装置及易失性存储器装置。一般来说,主机系统可利用存储器子系统来将数据存储于存储器装置处及从存储器装置检索数据。
附图说明
将从下面给出的详细描述及从本公开的各种实施例的附图中更充分地理解本公开。然而,图式不应被视为将本公开限定于特定实施例,而仅用于解释及理解。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2是根据本公开的一些实施例的用于实施用于存储器子系统处的二遍次编程的虚拟管理单元(MU)方案的实例方法的流程图。
图3A到3F描绘根据本公开的一些实施例的用于存储器子系统处的二遍次编程的MU方案的实例。
图4是根据本公开的一些实施例的用于根据vMU方案存取驻留在存储器装置的一部分处的数据项的流程图。
图5是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的方面涉及用于存储器子系统中的两遍次编程的虚拟管理单元(vMU)方案。存储器子系统可为存储装置、存储器模块或存储装置与存储器模块的组合。下面结合图1描述存储装置及存储器模块的实例。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统,所述存储器组件例如存储数据的存储器装置。主机系统可提供待存储在存储器子系统处的数据,并且可请求待从存储器子系统检索的数据。
存储器子系统可利用一或多个存储器装置,包含不同类型的非易失性存储器装置及/或易失性存储器装置的任一组合,以存储由主机系统提供的数据。在一些实施例中,非易失性存储器装置可由与非(NAND)型快闪存储器装置提供。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置是一或多个裸片的封装。每一裸片可包含一或多个平面。平面是包含多个存储器单元的存储器装置的一部分。一些存储器装置可包含两个或更多个平面。对于一些类型的非易失性存储器装置(例如,NAND装置),每一平面包含一组物理块。每一块包含一组页面。本文的“块”应是指一组连续或不连续存储器页面。“块”的实例是“可擦除块”,其为存储器的最小可擦除单元,而“页面”是存储器的最小可写入单元。每一页面包含一组存储器单元。存储器单元是存储信息的电子电路。
存储器装置可包含布置成二维网格的多个存储器单元。存储器单元以列及行的阵列形成到硅晶片上。存储器单元包含保持电荷的电容器及充当控制对电容器的存取的开关的晶体管。因此,可通过施加某个电压来对存储器单元进行编程(写入),这导致电荷由电容器保持。存储器单元由字线及位线连接,所述字线是电连接到存储器单元的控制栅极的传导线,所述位线是电连接到存储器单元的漏极电极的传导线。
下文中的块是指用于存储数据的存储器装置的单位,且可包含一群组存储器单元。一或多个块可分组在一起以形成存储器装置的平面以便允许在每一平面上发生并发操作。存储器装置可包含执行两个或更多个存储器平面的并发存储器页面存取的电路系统。例如,存储器装置可包含用于存储器装置的每一平面的相应存取线驱动器电路及电力电路以促进对包含不同页面类型的两个或更多个存储器平面的页面的并发存取。
数据操作可由存储器子系统执行。数据操作可为主机启动的操作。举例来说,主机系统可在存储器子系统上启动数据操作(例如,写入、读取、擦除等)。主机系统可向存储器子系统发送存取请求(例如,写入命令、读取命令),例如以将数据存储在存储器子系统处的存储器装置上,及从存储器子系统上的存储器装置读取数据。如由主机请求指定的待读取或写入的数据在下文称为“主机数据”。主机请求可包含主机数据的逻辑地址(例如,逻辑块地址(LBA)及命名空间),其为主机系统与主机数据相关联的位置。逻辑地址信息(例如,LBA、命名空间)可为主机数据的元数据的部分。元数据还可包含错误处置数据(例如,ECC码字、奇偶校验码)、数据版本(例如,用于区分写入数据的年限)、有效位图(指定哪些LBA含有有效数据)等等。
为了将由存储器子系统采用的存储器装置的物理实施方案的各个方面与主机系统隔离,存储器子系统可维持将每一逻辑地址映射到对应物理地址的数据结构。在一些实施方案中,物理地址可包含通道识别符、裸片识别符、页面识别符、块识别符、平面识别符及/或帧识别符。映射数据结构在本文中称为逻辑到物理(L2P)表。
针对一些类型的存储器(例如,NAND),页面可经分组以形成块。一些类型的存储器(例如3D交叉点)可跨越裸片及通道对页面进行分组以形成管理单元(MU)(也称为逻辑单位(LUN))。因此,L2P表的每一条目可参考一或多个MU,其可对应于出于管理目的而分组在一起的一或多个页面(例如,跨通道、裸片及/或分区的一组页面)。除非另有特别注明,否则在本公开中利用术语“管理单元”来指代“管理单元”及“超级管理单元”(其为出于管理目的而分组在一起的一组管理单元)两者。
每一L2P表条目可将逻辑地址映射到物理地址。L2P表由存储器子系统控制器的固件维持且存储在存储器子系统的一或多个非易失性存储器装置上。为了改进主机系统与存储器子系统之间的数据传送的整体效率,L2P表可至少部分地由存储器子系统的一或多个易失性存储器装置高速缓存。存储器子系统控制器可实施适当高速缓存管理策略以便管理高速缓存条目的收回。
四电平单元(QLC)存储器装置(即,每单元存储4位值的存储器装置)可引入两遍次编程方案来减轻编程干扰。编程干扰是指位在页面编程事件期间被无意地从“1”编程到“0”(反之亦然)的现象。由QLC存储器装置引入的两遍次编程方案指定经由“第一遍次”(即,第一编程操作)及“第二遍次”(即,第二编程操作)将同一数据编程到同一QLC存储器两次。在第一编程遍次之后,编程到QLC存储器的数据不可用于服务读取操作,且在第二编程遍次之后被认为被最终确定且准备好服务读取操作。由于数据被编程到QLC存储器在数据在第二编程遍次之后被最终确定之前不可用于服务读取操作,因此数据也可被编程到单电平单元(SLC)存储器高速缓存(即,每单元存储1位值的存储器的一部分)。在QLC存储器中数据的第二编程遍次之前,编程到SLC高速缓存的数据可用于服务读取操作。
如上文描述,每一L2P表条目可将与数据项(即,写入到存储器子系统的MU及/或从存储器子系统的MU读取的数据的原子单元)相关联的逻辑地址映射到与存储所述数据项的存储器子系统的存储器装置的一部分相关联的物理地址。因此,在实施两遍次编程方案的系统中,存储器子系统可更新用于数据项的L2P表条目以将与数据项相关联的逻辑地址与和在第一编程遍次之后存储数据项的SLC高速缓存的部分相关联的物理地址进行映射。在第二编程遍次完成之后(即,在数据项在QLC存储器处被最终确定且可用于服务读取之后),存储器子系统控制器可更新数据项的L2P表条目以将与所述数据项相关联的逻辑地址映射到与存储所述数据项的QLC存储器的部分相关联的物理地址。
如上文描述,L2P表存储在存储器子系统的一或多个非易失性存储器装置上,且在一些系统中,可至少部分地由存储器子系统的一或多个易失性存储器装置高速缓存。因此,在数据项的两遍次编程方案的每一编程遍次之后,在一或多个非易失性存储器装置处且在一些例子中在一或多个易失性存储器装置处更新与数据项相关联的L2P条目。由于在两遍次编程方案中的每一编程遍次之后在非易失性存储器装置及易失性存储器装置处更新L2P表条目,因此消耗了大量存储器子系统资源(例如,处理周期等)。因此,较少存储器子系统资源可用于其它进程,这可显著增加总体系统延迟且降低总体系统效率。
本公开的方面通过提供用于两遍次编程存储器装置的虚拟管理单元(MU)方案来解决上述及其它缺陷。主机系统可将对数据项进行编程的请求传输到与存储器装置相关联的逻辑地址。在一些实施例中,逻辑地址可对应于包含QLC存储器的存储器装置的一部分。在一些实施例中,存储器子系统控制器还可为数据项分配一组vMU。所述一组vMU中的每一者可表示存在于虚拟存储器空间中的抽象MU。在一些实施例中,所述一组vMU中的每一者可对应于虚拟块。在此实施例中,所述一组vMU可对应于存储器子系统的一或多个块条带。存储器子系统控制器可为存储器子系统维持vMU数据结构。vMU数据结构的每一条目可存储存储器的存储数据项的一部分(例如,SLC存储器、QLC存储器等)处的一组MU之间的映射,所述数据项具有分配给所述数据项的一组vMU的指示。在一些实施例中,vMU数据结构可驻留在存储器子系统的一或多个易失性存储器装置处。存储器子系统可将请求的数据项编程到SLC高速缓存的一部分及QLC存储器的一部分。
响应于将数据项编程到SLC高速缓存的部分,存储器子系统控制器可更新vMU数据结构的条目以包含所分配的一组vMU与存储数据项的SLC高速缓存的部分的物理地址之间的映射。在一些实施例中,存储器子系统控制器还可更新存储器子系统的L2P表的条目以包含与数据项相关联的逻辑地址(例如,如从主机系统接收的请求中所指示)与分配给数据项的所述一组vMU之间的映射。在一些实施例中,存储器子系统控制器可检测QLC存储器处的数据项的第二编程遍次完成(即,数据项在QLC存储器处被最终确定且可用于服务读取)。在此类实施例中,存储器子系统控制器可更新与数据项相关联的vMU数据结构的条目以包含所分配的一组vMU与存储数据项的QLC存储器的部分的物理地址之间的映射。由于L2P表的条目已经包含与数据项相关联的逻辑地址与分配给数据项的所述一组vMU之间的映射,因此存储器子系统控制器在完成QLC存储器处的第二次编程遍次之后不更新L2P表。
在一些实施例中,主机系统可传输存取(例如,读取等)数据项的请求(例如,在第二编程遍次之前或之后)。存储器子系统控制器可识别对应于数据项的L2P表的条目,且可从所识别L2P表条目确定分配给数据项的所述一组vMU。然后,存储器子系统控制器可基于所确定的一组vMU来识别对应于数据项的vMU数据结构的条目,且可基于包含在所识别条目中的所述一组MU来确定存储数据项的SLC或QLC存储器的部分的物理地址。存储器子系统控制器可根据请求执行存储器存取操作(例如,读取操作等)以存取QLC存储器的部分的物理地址处的数据项。
本公开的优点包含(但不限于)提供一种虚拟管理单元方案,其减少在存储器子系统处的数据项的两遍次编程过程期间更新L2P表的例子的数目。存储器子系统可将逻辑地址与分配给数据项的一组vMU之间的映射存储在L2P表处,而非将与数据项相关联的逻辑地址与存储数据项的存储器的一部分的物理地址之间的映射存储在L2P表处。驻留在存储器子系统的一或多个易失性存储器装置处的vMU数据结构可经配置以存储所述一组vMU与存储数据项的SLC高速缓存的部分的物理地址之间的映射。在两遍次编程过程的第二遍次之后,存储器子系统控制器可更新vMU数据结构的条目以指示存储数据项的QLC存储器的部分的物理地址,而不是更新与数据项相关联的L2P表条目。因此,每一L2P表条目在两遍次编程过程期间仅更新一次。通过在两遍次编程过程期间仅更新每一L2P表条目一次,显著减少了存储器子系统资源(例如,进程周期)的消耗。因此,大量系统资源可用于其它进程,从而减少了总体系统延迟且改进了总体系统效率。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此组合。
存储器子系统110可为存储装置、存储器模块或存储装置与存储器模块的组合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)及各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它交通工具)、具有物联网(IoT)能力的装置、嵌入式计算机(例如,包含在交通工具、工业装备或联网商业装置中的计算机),或包含存储器及处理装置的此类计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的多个存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文使用,“耦合到”或“与……耦合”一般是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,不具有中介组件),无论是有线的还是无线的,包含例如电连接、光学连接、磁连接等的连接。
主机系统120可包含处理器芯片组及由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,NVDIMM控制器)及存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120例如使用存储器子系统110将数据写入到存储器子系统110并从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含(但不限于)串行高级技术附接(SATA)接口、外围组件互连快速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、双数据速率(DDR)存储器总线、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM插槽接口)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。主机系统120可进一步利用NVM快速(NVMe)接口以在存储器子系统110通过物理主机接口(例如,PCIe总线)与主机系统120耦合时存取组件(例如,存储器装置130)。所述物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。图1说明存储器子系统110作为实例。一般来说,主机系统120可经由相同通信连接、多个单独通信连接及/或通信连接的组合来存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置及/或易失性存储器装置的任一组合。易失性存储器装置(例如,存储器装置140)可为(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包括“与非”(NAND)型快闪存储器及就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器单元的交叉点阵列可基于体电阻的变化结合可堆叠的交叉网格数据存取阵列执行位存储。另外,与许多基于快闪的存储器相反,交叉点非易失性存储器可执行就地写入操作,其中可对非易失性存储器单元进行编程而无需事先擦除非易失性存储器单元。NAND型快闪存储器包含例如二维NAND(2D NAND)及三维NAND(3DNAND)。
存储器装置130中的每一者可包含一或多个存储器单元阵列。一种类型的存储器单元(例如单电平单元(SLC))可每单元存储一个位。其它类型的存储器单元(例如多电平单元(MLC)、三电平单元(TLC)、四电平单元(QLC)及五电平单元(PLC))可每单元存储多个位。在一些实施例中,存储器装置130中的每一者可包含存储器单元的一或多个阵列,例如SLC、MLC、TLC、QLC、或PLC或此任一组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可被分组为可指代用于存储数据的存储器装置的逻辑单位的页面。针对一些类型的存储器(例如,NAND),页面可经分组以形成块。
尽管描述例如非易失性存储器单元的3D交叉点阵列及NAND型快闪存储器(例如,2D NAND、3D NAND)的非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选择存储器、其它硫属化物基存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻式随机存取存储器(RRAM)、氧化物基RRAM(OxRAM)、“或非”(NOR)快闪存储器或电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见控制器115)可与存储器装置130通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据的操作以及其它此类操作。存储器子系统控制器115可包含例如一或多个集成电路及/或离散组件、缓冲存储器或其组合的硬件。硬件可包含具有用以执行本文所描述的操作的专用(即,硬编码)逻辑的数字电路系统。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适处理器。
存储器子系统控制器115可包含处理装置,其包含经配置以执行存储在本地存储器119中的指令的一或多个处理器(例如,处理器117)。在所说明实例中,存储器子系统控制器115的本地存储器119包含经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流程以及例程的指令的嵌入式存储器,所述操作包含处置存储器子系统110与主机系统120之间的通信。
在一些实施例中,本地存储器119可包含存储存储器指针、获取数据等的存储器寄存器。本地存储器119还可包含用于存储微代码的只读存储器(ROM)。尽管图1中的实例存储器子系统110已经说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,并且可将命令或操作转换为指令或适当命令以实现对存储器装置130的期望存取。存储器子系统控制器115可负责其它操作,例如损耗均衡操作、废弃项目收集操作、错误检测及错误校正代码(ECC)操作、加密操作、高速缓存操作以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、命名空间)与物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收的命令转换为命令指令以存取存储器装置130以及将与存储器装置130相关联的响应转换为用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含可从存储器子系统控制器115接收地址并解码所述地址以存取存储器装置130的高速缓存或缓冲器(例如,DRAM)及地址电路系统(例如,行解码器及列解码器)。
在一些实施例中,存储器装置130包含本地媒体控制器135,其与存储器子系统控制器115结合操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子系统110是被管理存储器装置,其为具有在裸片上的控制逻辑(例如,本地控制器132)及用于在同一存储器装置封装内进行媒体管理的控制器(例如,存储器子系统控制器115)的原始存储器装置130。被管理存储器装置的实例是被管理NAND(MNAND)装置。
存储器子系统110包含vMU管理器组件113,其可管理为存储在存储器装置130、140的一或多个部分处的主机数据产生的冗余数据。在一些实施例中,存储器子系统控制器115包含vMU管理器组件113的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(处理装置),其经配置以执行存储在本地存储器119中的用于执行本文描述的操作的指令。在一些实施例中,vMU管理器组件113是主机系统120、应用程序或操作系统的部分。
VMU管理器组件113可经配置以实施用于存储器子系统110处的二遍次编程的vMU方案。在一些实施例中,存储器装置130、140的一或多个部分可包含单电平存储器单元(SLC)(在本文中称为SLC部分)。如上文描述,SLC是指经配置以每存储器单元存储1位的存储器的一部分。存储器装置130、140的一或多个额外部分可包含经配置以每存储器单元存储多于1位的存储器。例如,存储器装置130、140的一或多个额外部分可包含一或多个QLC存储器单元。
在一些实施例中,存储器子系统控制器115可接收来自主机系统120的将数据项存储到存储器装置130、140的QLC部分的请求。存储器子系统控制器115可根据与QLC存储器相关联的两通次编程方案将数据项编程到驻留在存储器装置130、140的SLC部分处的高速缓存(在本文中称为SLC高速缓存)及存储器装置130、140的QLC部分。响应于检测到存储器子系统控制器115已将数据项编程到SLC高速缓存,vMU管理器组件113可将一组vMU分配给数据项,且在所述一组vMU与和存储数据项的SLC高速缓存的所述一组MU相关联的物理地址之间产生映射。在一些实施例中,根据本文描述的实施例,vMU管理器组件113可将所产生映射存储在vMU数据结构处。VMU管理器组件113还可更新与存储器装置130、140相关联的L2P表的条目以包含与数据项相关联的逻辑地址与分配给数据项的所述一组vMU的指示之间的映射。响应于检测到两遍次编程方案中的第二编程遍次完成(即,编程到存储器装置130、140的QLC部分的数据项被最终确定且可用于服务读取请求),vMU管理器组件113可更新vMU数据结构处与数据项相关联的映射,以将分配给数据项的一组vMU与和存储数据项的存储器装置130、140的QLC部分的一组MU相关联的物理地址相关联。响应于从主机系统120接收存取数据项的请求,vMU管理器113可根据下文提供的实施例使用L2P表及vMU数据结构来识别存储数据项的存储器装置130、140的部分。本文提供关于用于两遍次编程的vMU方案的另外细节。
图2是根据本公开的一些实施例的用于实施用于存储器子系统处的二遍次编程的虚拟管理单元(vMU)方案的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200由图1的vMU管理器组件113执行。在其它或类似实施例中,方法200的一或多个操作由存储器子系统控制器115的另一组件或由本地媒体控制器135的组件执行。尽管以特定序列或顺序展示,除非另有指定,否则可修改过程的顺序。因此,所说明实施例应仅被理解为实例,并且所说明过程可以不同顺序执行,并且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可能的。
在框210处,处理逻辑将数据项编程到与一或多个存储器装置的第一部分相关联的第一组管理单元(MU)。在一些实施例中,一或多个存储器装置可对应于存储器300,如在图3A中所说明。在一些实施例中,存储器300可对应于上文描述的一或多个存储器装置130、140。如在图3A中所说明,存储器300可包含第一部分302及第二部分304。存储器300的第一部分302可包含第一类型的存储器单元306,且第二部分304可包含第二类型的存储器单元308。例如,第一部分302可包含单电平单元(SLC),且第二部分304可包含多电平单元(MLC)、三电平单元(TLC)或四电平单元(QLC)中的一或多者。在说明性实例中,第一部分302可包含SLC,且第二部分304可包含QLC。在一个实施例中,存储器300的第一部分302可驻留在一或多个存储器装置130、140上,且存储器300的第二部分302可驻留在一或多个额外存储器装置130、140上。在其它或类似实施例中,存储器300的第一部分可驻留于单个存储器装置130、140上,且存储器300的第二部分可驻留在同一存储器装置130、140上。
如上文描述,在一些实施例中,vMU管理器组件113可经配置以实施两遍次编程方案以将数据项编程到存储器300的第二部分304的一或多个MU(例如,存储器页面、块、平面、裸片等)。在此类实施例中,存储器300的第一部分302的存储器单元306可被分配为用于存储器子系统110的存储器高速缓存(例如,SLC高速缓存)的部分。存储器高速缓存可经配置以在两遍次编程方案中的第二遍次完成之前临时存储正被编程到存储器300的第二部分304的数据。在一些实施例中,vMU管理器组件113可接收来自主机系统120的将包含数据项的数据编程到存储器300的QLC部分(即,第二部分304)的请求。处理逻辑可将数据项编程到第一部分302处的第一组MU及第二部分304处的第二组MU。每一组MU可与存储器装置110的相应物理地址(例如,页面识别符、页面条带识别符、块识别符、块条带识别符等)相关联。
返回参考图2,在框212处,处理逻辑产生将与第一组MU相关联的第一物理地址与和存储器子系统110相关联的一组vMU相关联的映射。在一些实施例中,处理逻辑可响应于确定数据项被编程到第一组MU而产生映射,即使对数据项进行编程的第一遍次,第二组MU不完整。在一些实施例中,处理逻辑可将所产生映射添加到vMU数据结构的一或多个条目,例如图3B的vMU数据结构320。VMU数据结构320可为经配置以存储存储相应数据项的存储器300的一组MU与分配给数据项的一组vMU之间的映射的数据结构。在一些实施例中,vMU数据结构320可驻留在存储器子系统110的一或多个易失性存储器装置处。
vMU数据结构320的每一条目可对应于存储器300的一组相应vMU(例如,块条带、页面条带等)。在一些实施例中,数据结构320的每一条目可包含包括分配给相应数据项的一组vMU的识别符的vMU识别符(ID)字段322,以及包含存储相应数据项的一组MU的识别符的物理MU识别符字段324。在一些实施例中,vMU管理器组件113可响应于确定(例如,存储器子系统控制器115等)使一组新MU(例如,块条带)可用于存储器300处的主机数据而产生vMU数据结构320的新条目。例如,在接收到将数据项编程到存储器300的QLC部分的请求之前或之后,vMU管理器组件113可确定块条带310在存储器300处打开且可产生数据结构320的新条目。VMU管理器113可将一组vMU分配给数据项,且通过更新所产生条目的物理MU ID字段324以包含与第一组MU相关联的识别符来产生所分配的一组MU与第一组MU之间的映射。如在图3B中所说明,vMU管理器113可通过更新条目328的vMU ID字段322以包含与分配给数据项的一组vMU相关联的识别符(例如,“0”)及更新条目328的物理MU ID字段324以包含与第一组MU相关联的识别符(即,物理地址)(例如,“10”)来产生被编程到存储器300的SLC高速缓存的数据项的映射。
在一些实施例中,vMU管理器113可通过识别存储器300的一组可用vMU来将一组vMU分配给数据项。例如,vMU管理器113可从图3C中所说明的存储器转换数据结构350获得一组可用vMU的识别符。存储器转换数据结构350可由存储器子系统控制器115维持,且可经配置以存储将存储器300的第一部分302(例如,SLC高速缓存)的一或多组MU与存储器300的第二部分304(例如,存储器300的QLC部分)的一组MU相关联的映射。下文提供关于存储器转换数据结构350的另外细节。
如先前描述,vMU管理器113可响应于从主机系统120接收将包含数据项的数据存储到存储器的QLC部分的请求而启动将数据项编程到存储器的QLC部分的过程。在一些例子中,所接收请求的数据的大小可对应于SLC高速缓存的四组块条带310的存储容量,其也可对应于存储器300的QLC部分的一个块条带312的存储容量。在从主机系统120接收请求之前或之后,存储器子系统控制器115可分配SLC高速缓存的四个块条带310及存储器300的QLC部分的一个块条带312以存储从主机系统120接收的数据。响应于分配块条带310、312,vMU管理器113可产生将SLC高速缓存的块条带310中的每一者关联到存储器300的QLC部分的块条带312的映射,且将所述映射存储在存储器转换数据结构350处。块条带310与块312之间的映射可包含在数据结构350的条目的SLC MU ID字段352及QLC MU ID字段354中,如在图3C中所说明。映射还可包含对应于SLC高速缓存的每一块条带310的一组虚拟MU的指示,如在条目的vMU ID字段356中所指示。如上文描述,在一些实施例中,vMU管理器113可通过使用存储器转换数据结构获得一组可用vMU的识别符来将一组vMU分配给数据项。例如,响应于检测到数据被编程到SLC高速缓存的块条带310,vMU管理器113可识别对应于块条带310的存储器转换数据结构处的映射,且可基于所识别映射来确定一组可用vMU的识别符。根据前面描述的实施例,VMU管理器113可在一组可用vMU与SLC高速缓存的一组MU之间产生映射以存储在vMU数据结构320中。
VMU管理器113可为映射到存储器的QLC部分的块条带312的SLC高速缓存的每一块条带310产生映射,且将每一所产生映射存储在vMU数据结构320的相应条目中。如在图3B中所说明,数据结构320的第一条目可包含SLC高速缓存的第一块条带的第一组vMU(例如,与vMU ID“0”相关联)与第一组MU(即,与物理MU ID“10”相关联)之间的映射,且第二条目可包含SLC高速缓存的第二块条带的第二组vMU(例如,与vMU ID“1”相关联)与第二组MU(即,与物理MU ID“15”相关联)之间的映射,依此类推。
在一些实施例中,vMU数据结构320的每一条目可进一步包含存取模式字段326。存取模式字段326可指示经执行以存取编程到与数据结构320的相应条目相关联的一组MU的数据存储器存取操作的模式(例如,SLC模式、QLC模式等)。在一个实例中,在数据项被编程到存储器300的第一部分302(例如,SLC高速缓存)处的第一组MU之后,vMU管理器113可更新与数据项相关联的条目的存取模式字段326以指示数据项当前与第一存取模式(例如,SLC存取模式)相关联。在将数据项编程到存储器300的第二部分304(例如,QLC部分)处的第二组MU完成之后(即,在两遍次编程方案中的第二遍次之后),vMU管理器113可更新条目的存取模式字段326以指示数据项当前与第二存取模式(例如,QLC存取模式)相关联。
在框214处,处理逻辑将与数据项相关联的条目添加到与存储器装置相关联的逻辑到物理(L2P)表。如本文所述,L2P表是指维持与编程到存储器300的数据相关联的每一逻辑地址到与分配给编程数据的一组虚拟MU相关联的地址之间的映射的数据结构。在一些实施例中,与存储器装置相关联的L2P表可对应于图3D中所说明的L2P表370。如在图3D中所说明,L2P表370的每一条目可包含逻辑地址字段372及物理地址字段374。相应条目的逻辑地址字段372可包含与数据项相关联的逻辑地址的指示,且物理地址字段372可包含分配给数据项的一组虚拟MU的指示。
根据本公开中描述的实施例,处理逻辑(例如,vMU管理器113)可在与编程到第一组MU的数据项相关联的逻辑地址与和分配给数据项的一组vMU相关联的识别符之间产生映射。在一些实施例中,VMU管理器113可从主机系统120获得与数据项相关联的逻辑地址。例如,主机系统120可将与数据项相关联的逻辑地址的指示与将数据项编程到存储器300的QLC部分的请求包含在一起。在一些实施例中,vMU管理器113可通过更新L2P表370的条目的逻辑地址字段372以对应于与数据项相关联的逻辑地址及更新条目的物理地址字段374以包含分配给数据项的一组vMU的识别符来产生映射。在说明性实例中,vMU管理器113可产生L2P表370的条目376,且产生编程到块条带310的存储器单元306的一或多个数据项的映射。如在图3D中所说明,条目376的逻辑地址字段372指示一或多个数据项与逻辑地址“0”相关联。根据关于图3B提供的实例,编程到块条带310的存储器单元306的一或多个数据项可与具有vMU识别符“0”的一组特定vMU相关联,如由vMU数据结构320所指示。因此,条目376的物理地址字段374可指示vMU识别符“0”以指示一或多个数据项与一组特定vMU相关联。
应注意,尽管一些实施例描述在将与数据项相关联的条目添加到L2P表之前产生将与第一组MU相关联的第一物理地址与分配给数据项的所述一组vMU相关联的vMU数据结构中的映射,但在一些实施例中,可在将与数据项相关联的条目添加到L2P表之后产生vMU数据结构320中的映射。
返回参考图2,在框216处,处理逻辑检测数据项被编程到与存储器装置的第二部分相关联的第二组MU。例如,处理逻辑可检测将数据项编程到存储器300的第二部分304(例如,QLC部分)的两遍次编程方案中的第二遍次完成。响应于检测到将数据项编程到第二组MU的过程完成,处理逻辑可更新对应于数据项的数据结构320的条目的存取模式字段326以指示数据项与第二存取模式相关联。例如,vMU管理器113可更新条目328的存取模式字段326以指示数据项当前与QLC模式相关联,如在图3E中所说明。
在框218处,处理逻辑更新映射以将所述一组vMU与和第二组MU相关联的第二物理地址相关联。如在图3E中所说明,vMU管理器113可识别对应于数据项的数据结构320的条目,且可更新数据结构320的物理MU ID字段324以识别与存储器300的第二部分304(例如,QLC部分)处的第二组MU相关联的第二物理地址。如先前描述,包含在从主机系统120接收的请求中的数据的大小可对应于存储容量SLC高速缓存的四个块条带310,其也对应于存储器300的QLC部分的一个块条带312的存储容量。因此,在两遍次编程方案中的第二编程遍次之后,存储在存储器300的QLC部分的块条带312处的数据的大小可对应于存储在SLC高速缓存的四个块条带310处的数据的大小。在此实例中,vMU管理器113可更新与SLC高速缓存的相应块条带310相关联的每一条目以指示块条带312现在存储此数据。例如,如在图3E中所说明,vMU管理器113可更新与数据结构320的每一条目相关联(即,与vMU ID“0”、“1”、“2”及“3”相关联)的块条带310之间的映射以对应于块条带312(即,与物理MU ID“50”相关联)。
响应于更新映射以将一组vMU与第二物理地址相关联,vMU管理器113可从存储器300的第一部分302处的第一组MU擦除数据项,如在图3F中所说明。在一些实施例中,存储器子系统控制器115可使对应于数据项的存储器转换数据结构的条目无效及/或将其移除。
图4是根据本公开的一些实施例的用于根据vMU方案存取驻留在存储器装置的一部分处的数据项的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的vMU管理器组件113执行。在其它或类似实施例中,方法400的一或多个操作由存储器子系统控制器的另一组件或由本地媒体控制器135的组件执行。尽管以特定序列或顺序展示,除非另有指定,否则可修改过程的顺序。因此,所说明实施例应仅被理解为实例,并且所说明过程可以不同顺序执行,并且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可能的。
在框410处,处理逻辑接收执行存储器存取操作以存取存储在存储器装置处的数据项的请求。存储器存取操作可包含读取操作或写入操作中的至少一者。在一些实施例中,处理逻辑可从主机系统120接收执行存储器存取操作的请求。在一些实施例中,请求可包含与数据项相关联的逻辑地址的指示。
在框412处,处理逻辑从与存储器装置相关联的L2P表识别对应于与所接收请求的数据项相关联的逻辑地址的条目。在一些实施例中,与存储器装置相关联的L2P表可对应于关于图3D描述的L2P表370。如上文描述,L2P表370的每一条目可包含与数据项相关联的逻辑地址(即,如由条目的逻辑地址字段372所指示)与分配给数据项的一组vMU的指示(即,由条目的物理地址字段374所指示)之间的映射。处理逻辑可基于包含在L2P表370的一或多个条目的逻辑地址字段372中的值来识别对应于与数据项相关联的逻辑地址的L2P表370的条目。
在框414处,处理逻辑获得与所识别条目相关联的一组vMU的识别符。响应于识别对应于数据项的L2P表的条目,处理逻辑可从所识别条目获得与数据项相关联的一组vMU的识别符。如上文描述,所识别条目的物理地址字段374可包含分配给数据项的一组vMU的识别符。处理逻辑可从所识别条目提取一组vMU的识别符。
在框416处,处理逻辑识别将一组vMU与和存储所接收请求的数据项的存储器装置的一部分(例如,一组Mu)相关联的物理地址进行映射的记录。如上文描述,vMU管理器113可产生将存储数据项的存储器300处的一组MU与和分配给数据项的存储器子系统110相关联的一组vMU相关联的映射,且将所述映射存储在vMU数据结构320处。处理逻辑(例如,vMU管理器113)可通过识别对应于从L2P表370的条目获得的一组vMU的vMU数据结构320的条目来识别与数据项相关联的映射。例如,vMU管理器113可确定数据结构320的一或多个条目的vMU ID字段322的值是否对应于在框414处从L2P表的条目获得的一组vMU。响应于识别对应于与数据项相关联的一组vMU的数据结构320的条目,vMU管理器113可提取存储数据项的一组物理MU的识别符且确定与MU相关联的物理地址。
在一些实施例中,所述一组物理MU的所提取识别符可对应于存储器300的一部分的物理地址。例如,所述一组物理MU的识别符可对应于物理块号,其可指示存储器300的一部分的物理地址。因此,vMU管理器113可基于所述一组物理MU的所提取识别符来确定存储器300的存储数据项的部分的物理地址。在另一实例中,vMU管理器113可将所提取识别符作为输入提供到经配置以基于所接收输入来计算物理地址的函数。VMU管理器113可从函数获得输出且基于所获得输出来确定存储器300的部分的物理地址。
在框418处,处理逻辑使用物理地址来执行存储器存取操作。处理逻辑可识别对应于所确定物理地址的存储器300的部分的一或多个存储器单元,且在一或多个存储器单元处执行存储器存取操作。如上文描述,在一些实施例中,vMU数据结构的每一条目可包含存取模式字段326,其指示待执行以存取编程到与一组相应MU相关联的存储器单元的数据的存储器存取操作的模式。例如,如在图3B及3E中所指示,在一些实施例中,存取模式可对应于SLC存取模式或QLC存取模式。VMU管理器113可基于vMU数据结构320的所识别条目来确定与存储数据项的一组MU相关联的存取模式,且根据所确定存取模式执行存储器存取操作。
在说明性实例中,vMU管理器113可在数据项已被编程到存储器300的SLC高速缓存之后且在将数据项编程到存储器300的QLC部分的两遍次编程方案中的第二遍次完成之前,接收执行存储器存取操作(例如,读取操作)以存取存储在存储器300处的数据项的请求。响应于接收请求,vMU管理器113可识别对应于所请求数据项的L2P表370的条目。出于此说明性实例的目的,与数据项相关联的逻辑地址可为逻辑地址“0”,然而,其它逻辑地址可与数据项相关联。
VMU管理器113可基于与数据项相关联的逻辑地址来获得与存储器300相关联的一组vMU的识别符。在此说明性实例中,vMU管理器113可基于存储在L2P表370处的映射来确定用于一组vMU的识别符的值为“0”,如在图3D中所说明。VMU管理器113可基于vMU数据结构320处的一组MU与一组vMU之间的映射来确定存储数据项的存储器300的一组MU。如在图3B中所说明,vMU管理器113可基于存储在vMU数据结构320处的映射来确定存储数据项的存储器300的一组MU的识别符的值为“10”。因为在数据项被编程到SLC高速缓存之后且在两遍次编程方案中的第二遍次完成之前接收到请求,所以存储器300的所确定的一组MU对应于包含在存储器300的第一部分处的SLC高速缓存中的存储器单元。VMU管理器113还可基于包含在vMU数据结构320的条目的存取模式字段326中的值来确定与所确定的一组MU相关联的存取模式是SLC存取模式。响应于获得一组MU的识别符及与一组MU相关联的存取模式,vMU管理器113可根据所确定存取模式来确定与一组MU相关联的物理地址,且在与所确定物理地址相关联的存储器单元处执行存储器存取操作。
在另一说明性实例中,vMU管理器113可在两遍次编程方案中的第二遍次完成之后接收执行存储器存取操作以存取数据项的请求。VMU管理器113可确定与存储器300相关联的一组vMU的识别符,且可确定存储数据项的存储器300的一组MU,如上文描述。如在图3D中所说明,vMU管理器113可确定存储数据项的存储器300的一组MU的识别符的值为“50”。因为请求是在两遍次编程方案中的第二遍次完成之后接收的,所以存储器300的所确定的一组MU对应于包含在存储器300的QLC部分中的存储器单元。VMU管理器113还可确定与所确定的一组MU相关联的存取模式是QLC存取模式。VMU管理器113可根据QLC存取模式在与对应于所确定的一组MU的物理地址相关联的存储器单元处执行存储器存取操作。
图5说明计算机系统500的实例机器,在计算机系统500内可执行用于致使所述机器执行本文所论述的方法中的任一或多者的一组指令。在一些实施例中,计算机系统500可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110),或者可用以执行控制器的操作(例如,执行操作系统以执行对应于图1的vMU管理器组件113的操作)。在替代实施例中,所述机器可连接(例如,联网)到LAN、内联网、外联网及/或因特网中的其它机器。所述计算机可在客户端-服务器网络环境中以服务器或客户端机器的身份操作,在对等(或分布式)网络环境中作为对等机器操作,或在云计算基础设施或环境中作为服务器或客户端机器操作。
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络器械、服务器、网络路由器、交换机或网桥或能够执行指定待由所述机器采取的动作的一组指令(循序或以其它方式)的任何机器。此外,虽然说明单个机器,但是术语“机器”也应被认为包含机器的任何集合,其个别地或共同地执行一组(或多组)指令以执行本文所论述的方法中的任一者或多者。
实例计算机系统500包含处理装置502、主存储器504(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或RDRAM等)、静态存储器506(例如,快闪存储器、静态随机存取存储器(SRAM)等)及数据存储器系统518,其经由总线530彼此通信。
处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元或类似者。更特定来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或者是实施其它指令集的处理器,或者是实施指令集的组合的处理器。处理装置502也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似者。处理装置502经配置以执行用于执行本文所论述的操作及步骤的指令526。计算机系统500可进一步包含用于通过网络520进行通信的网络接口装置508。
数据存储系统518可包含机器可读存储媒体524(也称为计算机可读媒体),在其上存储体现本文所描述的方法或功能中的任一者或多者的一或多组指令526或软件。在由计算机系统500执行指令526期间,指令552也可全部或至少部分地驻留在主存储器504内及/或处理装置502内,主存储器504及处理装置502也构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518及/或主存储器704可对应于图1的存储器子系统110。
在一个实施例中,指令526包含用以实施对应于电压箱边界组件(例如,图1的vMU管理器组件113)的功能性的指令。尽管在实例实施例中将机器可读存储媒体524展示为单个媒体,但是术语“机器可读存储媒体”应被认为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”也应被认为包含能够存储或编码一组指令以供机器执行并且使机器执行本公开的方法中的任一者或多者的任何媒体。因此,术语“机器可读存储媒体”应被认为包含(但不限于)固态存储器、光学媒体及磁性媒体。
已经根据对计算机存储器内的数据位的操作的算法及符号表示来呈现前述详细描述的一些部分。这些算法描述及表示是数据处理领域的技术人员用来最有效地向所属领域的其它技术人员传达其工作实质的方式。算法在此处且通常被认为是导致所需结果的自洽操作序列。所述操作是需要对物理量的物理操纵的操作。通常但不是必须的,这些量采用能够被存储、组合、比较及以其它方式操纵的电或磁信号的形式。有时已经证明,主要出于通用的原因将这些信号称为位、值、元素、符号、字符、项、数字或类似者是方便的。
然而,应牢记,所有这些术语及类似术语均应与适当物理量相关联并且仅仅是应用于这些量的方便标签。本公开可涉及计算机系统或类似电子计算装置的动作及过程,所述计算机系统或类似电子计算装置将表示为计算机系统的寄存器及存储器内的物理(电子)数的数据操纵及变换为类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量。
本公开还涉及用于执行本文的操作的设备。此设备可经专门构造用于预期目的,或者其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如(但不限于)任何类型的磁盘,包含软盘、光盘、CD-ROM及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适用于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
本文提出的算法及显示并非固有地与任何特定计算机或其它设备相关。各种通用系统可与根据本文的教示的程序一起使用,或者可证明构造更专用设备来执行所述方法是方便的。各种这些系统的结构将如下文描述中所阐述那样出现。另外,未参考任何特定编程语言来描述本公开。将了解,可使用各种编程语言来实施如本文所描述的本公开的教示。
本公开可被提供为计算机程序产品或软件,其可包含其上存储有指令的机器可读媒体,所述指令可用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读媒体包含用于以由机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,已经参考本公开的特定实例实施例描述本公开的实施例。显而易见的是,在不脱离如所附权利要求书中阐述的本公开的实施例的更广泛精神及范围的情况下,可对其进行各种修改。因此,说明书及图式应被认为是说明意义而不是限制意义的。
Claims (20)
1.一种方法,其包括:
将数据项编程到与一或多个存储器装置的第一部分相关联的第一组管理单元(MU),其中所述第一部分包括第一类型的存储器单元,且其中所述第一组MU与第一物理地址相关联;
在虚拟MU数据结构中产生将所述第一物理地址与和所述一或多个存储器装置相关联的一组虚拟MU相关联的映射;
将与所述数据项相关联的条目添加到与所述一或多个存储器装置相关联的逻辑到物理(L2P)表,其中所述条目包括与和所述一或多个存储器装置相关联的所述一组虚拟MU相关联的识别符;
检测所述数据项被编程到与所述一或多个存储器装置的第二部分相关联的第二组MU,其中所述第二部分包括第二类型的存储器单元,且其中所述第二组MU与第二物理地址相关联;以及
更新所述映射以将所述一组虚拟MU与所述第二物理地址相关联。
2.根据权利要求1所述的方法,其进一步包括:
确定所述一组虚拟MU可用于分配给所述数据项;以及
更新所述虚拟MU数据结构的条目的第一字段以包含所述一组虚拟MU与所述第一物理地址之间的所述映射。
3.根据权利要求2所述的方法,其中更新所述映射以将所述一组虚拟MU与所述第二物理地址相关联包括:
更新所述虚拟MU数据结构的所述条目的所述第一字段以包含所述一组虚拟MU与所述第二物理地址之间的所述映射。
4.根据权利要求3所述的方法,其中所述虚拟MU数据结构的所述条目进一步包括第二字段,所述第二字段包含所述数据项是被编程到所述第一类型的存储器单元还是所述第二类型的存储器单元的指示,且其中所述方法进一步包括:
响应于将所述条目添加到所述虚拟MU数据结构,设置所述条目的所述第二字段以指示所述数据项被编程到所述第一类型的存储器单元;以及
响应于更新所述虚拟MU数据结构的所述条目的所述第一字段以包含所述一组虚拟MU与所述第二物理地址之间的所述映射,更新所述条目的所述第二字段以指示所述数据项被编程到所述第二类型的存储器单元。
5.根据权利要求1所述的方法,其进一步包括:
根据与所述存储器装置相关联的两遍次编程方案中的第一遍次编程操作,将所述数据项编程到所述第二组MU,且其中检测所述数据项被编程到所述第二组MU包括确定所述两遍次编程方案中的第二遍次编程操作完成。
6.根据权利要求5所述的方法,其进一步包括:
响应于根据所述第一遍次编程操作而检测到所述数据项被编程到所述第二组MU,更新存储器转换数据结构的条目以包含将所述第一组MU与所述第二组MU及所述一组虚拟MU相关联的映射。
7.根据权利要求6所述的方法,其进一步包括:
响应于检测到所述数据项被编程到所述第二组MU,擦除所述存储器转换数据结构的所述条目。
8.根据权利要求1所述的方法,其中所述第一类型的所述存储器单元包括单电平单元(SLC),且所述第二类型的所述存储器单元包括多电平单元(MLC)、三电平单元(TLC)或四电平单元(QLC)中的至少一或多者。
9.一种系统,其包括:
一或多个存储器装置;及
处理装置,其耦合到所述一或多个存储器装置中的每一者,所述处理装置用以执行包括以下的操作:
接收执行存储器存取操作以存取存储在所述一或多个存储器装置处的数据项的请求;
响应于在与所述一或多个存储器装置相关联的逻辑到物理(L2P)表中识别对应与所述所接收请求的所述数据项相关联的逻辑地址的条目,从所述所识别条目获得与所述一或多个存储器装置相关联的一组虚拟管理单元(MU)的识别符;
在虚拟MU数据结构中,识别将所述一组虚拟MU映射到与存储所述所接收请求的所述数据项的所述一或多个存储器装置的一部分相关联的物理地址的记录;以及
使用所述物理地址执行所述存储器存取操作。
10.根据权利要求9所述的系统,其中识别将所述一组虚拟MU映射到与存储所述所接收请求的所述数据项的所述一或多个存储器装置的一部分相关联的所述物理地址的所述记录包括:
确定所述虚拟MU数据结构的条目包含至少所述一组虚拟MU与存储所述数据项的所述一或多个存储器装置的所述一组MU之间的所述映射;以及
从所述虚拟MU数据结构的所述条目提取所述物理地址。
11.根据权利要求10所述的系统,其中所述虚拟MU数据结构的所述条目包括所述数据项是被编程到第一类型的存储器单元还是第二类型的存储器单元的指示,且其中鉴于所述指示来执行所述存储器存取操作以存取所述物理地址处的所述数据项。
12.根据权利要求11所述的系统,其中所述第一类型的所述存储器单元包括单电平单元(SLC),且所述第二类型的所述存储器单元包括多电平单元(MLC)、三电平单元(TLC)或四电平单元(QLC)中的至少一者。
13.根据权利要求9所述的系统,其中所述一或多个存储器装置包括第一部分及第二部分,所述第一部分包括与第一类型相关联的存储器单元,且所述第二部分包括第二类型的存储器单元,且其中在将所述数据项编程到与所述存储器装置的所述第二部分相关联的一组MU的过程完成之前,接收执行所述存储器存取操作的所述请求。
14.根据权利要求9所述的系统,其中所述存储器存取操作包括读取操作或写入操作中的至少一者。
15.一种非暂时性计算机可读存储媒体,其包括指令,当所述指令由处理装置执行时致使所述处理装置执行包括以下的操作:
将数据项编程到与一或多个存储器装置的第一部分相关联的第一组管理单元(MU),其中所述第一部分包括第一类型的存储器单元,且其中所述第一组MU与第一物理地址相关联;
在虚拟MU数据结构中产生将所述第一物理地址与和所述一或多个存储器装置相关联的一组虚拟MU相关联的映射;
将与所述数据项相关联的条目添加到与所述一或多个存储器装置相关联的逻辑到物理(L2P)表,其中所述条目包括与和所述一或多个存储器装置相关联的所述一组虚拟MU相关联的识别符;
检测所述数据项被编程到与所述一或多个存储器装置的第二部分相关联的第二组MU,其中所述第二部分包括第二类型的存储器单元,且其中所述第二组MU与第二物理地址相关联;以及
更新所述映射以将所述一组虚拟MU与所述第二物理地址相关联。
16.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述操作进一步包括:确定所述一组虚拟MU可用于分配给所述数据项;以及
更新所述虚拟MU数据结构的条目的第一字段以包含所述一组虚拟MU与所述第一物理地址之间的所述映射。
17.根据权利要求16所述的非暂时性计算机可读存储媒体,更新所述映射以将所述一组虚拟MU与所述第二物理地址相关联包括:
更新所述虚拟MU数据结构的所述条目的所述第一字段以包含所述一组虚拟MU与所述第二物理地址之间的所述映射。
18.根据权利要求17所述的非暂时性计算机可读存储媒体,其中所述虚拟MU数据结构的所述条目进一步包括第二字段,所述第二字段包含所述数据项是被编程到所述第一类型的存储器单元还是所述第二类型的存储器单元的指示,且其中所述操作进一步包括:
响应于将所述条目添加到所述虚拟MU数据结构,设置所述条目的所述第二字段以指示所述数据项被编程到所述第一类型的存储器单元;以及
响应于更新所述虚拟MU数据结构的所述条目的所述第一字段以包含所述一组虚拟MU与所述第二物理地址之间的所述映射,更新所述条目的所述第二字段以指示所述数据项被编程到所述第二类型的存储器单元。
19.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述操作进一步包括:根据与所述存储器装置相关联的两遍次编程方案中的第一遍次编程操作,将所述数据项编程到所述第二组MU,且其中检测所述数据项被编程到所述第二组MU包括确定所述两遍次编程方案中的第二遍次编程操作完成。
20.根据权利要求19所述的非暂时性计算机可读存储媒体,其中所述操作进一步包括:
响应于根据所述第一遍次编程操作而检测到所述数据项被编程到所述第二组MU,更新存储器转换数据结构的条目以包含将所述第一组MU与所述第二组MU及所述一组虚拟MU相关联的映射。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/464,442 | 2021-09-01 | ||
US17/464,442 US11922011B2 (en) | 2021-09-01 | 2021-09-01 | Virtual management unit scheme for two-pass programming in a memory sub-system |
PCT/US2022/042390 WO2023034535A1 (en) | 2021-09-01 | 2022-09-01 | Virtual management unit scheme for two-pass programming in a memory sub-system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117999547A true CN117999547A (zh) | 2024-05-07 |
Family
ID=85287513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280064887.3A Pending CN117999547A (zh) | 2021-09-01 | 2022-09-01 | 用于存储器子系统中的两遍次编程的虚拟管理单元方案 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11922011B2 (zh) |
CN (1) | CN117999547A (zh) |
WO (1) | WO2023034535A1 (zh) |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5838614A (en) * | 1995-07-31 | 1998-11-17 | Lexar Microsystems, Inc. | Identification and verification of a sector within a block of mass storage flash memory |
GB9903490D0 (en) * | 1999-02-17 | 1999-04-07 | Memory Corp Plc | Memory system |
US7139864B2 (en) | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US8214579B2 (en) * | 2008-09-30 | 2012-07-03 | Tdk Corporation | Memory controller, flash memory system with memory controller, and method of controlling flash memory |
US20120017039A1 (en) * | 2010-07-16 | 2012-01-19 | Plx Technology, Inc. | Caching using virtual memory |
US9472248B2 (en) * | 2014-03-28 | 2016-10-18 | Intel Corporation | Method and apparatus for implementing a heterogeneous memory subsystem |
US9837145B2 (en) * | 2015-08-28 | 2017-12-05 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Multi-level flash storage device with minimal read latency |
JP6448571B2 (ja) * | 2016-03-08 | 2019-01-09 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
US9817593B1 (en) | 2016-07-11 | 2017-11-14 | Sandisk Technologies Llc | Block management in non-volatile memory system with non-blocking control sync system |
WO2018136094A1 (en) | 2017-01-23 | 2018-07-26 | Micron Technology, Inc. | Partially written block treatment |
US10372353B2 (en) | 2017-05-31 | 2019-08-06 | Micron Technology, Inc. | Apparatuses and methods to control memory operations on buffers |
JP7030463B2 (ja) * | 2017-09-22 | 2022-03-07 | キオクシア株式会社 | メモリシステム |
US20190034105A1 (en) * | 2017-12-28 | 2019-01-31 | Intel Corporation | Storage device having programmed cell storage density modes that are a function of storage device capacity utilization |
US10880401B2 (en) * | 2018-02-12 | 2020-12-29 | Micron Technology, Inc. | Optimization of data access and communication in memory systems |
CN110908926B (zh) * | 2018-09-14 | 2022-03-22 | 慧荣科技股份有限公司 | 数据储存装置及逻辑至物理地址映射表的写入方法 |
US10748606B2 (en) * | 2018-12-14 | 2020-08-18 | Western Digital Technologies, Inc. | Multi-state programming for memory devices |
US11216189B2 (en) * | 2019-04-01 | 2022-01-04 | Silicon Motion, Inc. | Method and computer program product for reading partial data of a page on multiple planes |
JP7003169B2 (ja) * | 2020-03-24 | 2022-01-20 | 株式会社日立製作所 | ストレージシステム及びストレージシステムのssdの交換方法 |
US11442666B2 (en) * | 2020-11-17 | 2022-09-13 | Western Digital Technologies, Inc. | Storage system and dual-write programming method with reverse order for secondary block |
-
2021
- 2021-09-01 US US17/464,442 patent/US11922011B2/en active Active
-
2022
- 2022-09-01 CN CN202280064887.3A patent/CN117999547A/zh active Pending
- 2022-09-01 WO PCT/US2022/042390 patent/WO2023034535A1/en active Application Filing
-
2024
- 2024-01-10 US US18/409,661 patent/US20240160349A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023034535A8 (en) | 2024-03-21 |
US20240160349A1 (en) | 2024-05-16 |
US11922011B2 (en) | 2024-03-05 |
WO2023034535A1 (en) | 2023-03-09 |
US20230061180A1 (en) | 2023-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11640354B2 (en) | Logical-to-physical mapping of data groups with data locality | |
US11693768B2 (en) | Power loss data protection in a memory sub-system | |
CN113035262A (zh) | 存储器子系统中奇偶校验数据的管理 | |
CN113946283B (zh) | 存储器装置的分区命名空间中的部分区存储器单元处置 | |
CN113093990B (zh) | 存储器子系统处的数据块切换 | |
US20240028239A1 (en) | Zone block staging component for a memory sub-system with zoned namespace | |
US20230350798A1 (en) | Namespace management for memory sub-systems | |
WO2023201462A1 (en) | Namespace level valid translation unit count | |
US20230195350A1 (en) | Resequencing data programmed to multiple level memory cells at a memory sub-system | |
US20220171713A1 (en) | Temperature-aware data management in memory sub-systems | |
CN115705159A (zh) | 存储器子系统中双字的智能交换和有效编码 | |
US11922011B2 (en) | Virtual management unit scheme for two-pass programming in a memory sub-system | |
CN113918479B (zh) | 用于并行独立线程的低位密度存储器高速缓存的方法及系统 | |
US11934685B2 (en) | Performing memory access operations based on quad-level cell to single-level cell mapping table | |
US20240118971A1 (en) | Temporary parity buffer allocation for zones in a parity group | |
US20230129363A1 (en) | Memory overlay using a host memory buffer | |
CN113094293B (zh) | 存储器系统及相关方法和计算机可读存储介质 | |
US20230266897A1 (en) | Dynamic zone group configuration at a memory sub-system | |
US20230056287A1 (en) | Dynamic partition command queues for a memory device | |
CN113253917A (zh) | 用于存储器子系统的媒体管理的多状态炼狱 | |
CN115729454A (zh) | 用于视频/图像记录的可配置存储粒度 | |
CN115729459A (zh) | 管理存储器子系统中的页地址和分区号的分布 | |
CN113126899A (zh) | 完全多平面操作启用 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |