CN116501655A - 将存储器块解除分配的存储控制器及其操作方法 - Google Patents
将存储器块解除分配的存储控制器及其操作方法 Download PDFInfo
- Publication number
- CN116501655A CN116501655A CN202310039206.4A CN202310039206A CN116501655A CN 116501655 A CN116501655 A CN 116501655A CN 202310039206 A CN202310039206 A CN 202310039206A CN 116501655 A CN116501655 A CN 116501655A
- Authority
- CN
- China
- Prior art keywords
- page number
- memory
- memory block
- physical
- region
- 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 433
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000004891 communication Methods 0.000 claims abstract description 9
- 238000013507 mapping Methods 0.000 claims description 76
- 230000004044 response Effects 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 14
- 230000007704 transition Effects 0.000 claims description 11
- 238000005192 partition Methods 0.000 claims description 9
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 47
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 37
- 238000010586 diagram Methods 0.000 description 18
- 101100481703 Arabidopsis thaliana TMK2 gene Proteins 0.000 description 15
- 101100353051 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) epp-1 gene Proteins 0.000 description 14
- 101150034591 PPN1 gene Proteins 0.000 description 14
- 238000007726 management method Methods 0.000 description 14
- 230000007423 decrease Effects 0.000 description 12
- 101100244635 Paramecium tetraurelia Ppn2 gene Proteins 0.000 description 11
- 239000000872 buffer Substances 0.000 description 10
- 101150043224 Amigo1 gene Proteins 0.000 description 7
- 102100032044 Amphoterin-induced protein 1 Human genes 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 101000648827 Homo sapiens TPR and ankyrin repeat-containing protein 1 Proteins 0.000 description 4
- 102100028173 TPR and ankyrin repeat-containing protein 1 Human genes 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 101150029893 AMIGO3 gene Proteins 0.000 description 2
- 102100031993 Amphoterin-induced protein 3 Human genes 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101001122833 Paramecium tetraurelia Serine/threonine-protein phosphatase PP2A catalytic subunit 2 Proteins 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- 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/0253—Garbage collection, i.e. reclamation of unreferenced 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/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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
公开了一种操作存储控制器的方法、操作存储装置的方法和存储控制器,该存储控制器与主机和非易失性存储器装置通信。该操作存储控制器的方法包括:从主机接收第一擦除请求,该第一擦除请求针对非易失性存储器装置的多个区中的第一区;基于第一擦除请求从分配清单表加载第一区的第一分配清单信息;基于第一分配清单信息将分配给第一区的存储器块解除分配,其中,存储器块的顺序物理页编号分别被映射至顺序逻辑页编号;以及向非易失性存储器装置提供对第一区的解除分配的存储器块的物理擦除请求。
Description
相关申请的交叉引用
本申请要求2022年1月26日提交于韩国知识产权局的韩国专利申请No.10-2022-0011769和2022年5月24日提交于韩国知识产权局的韩国专利申请No.10-2022-0063763的优先权,其各自整体以引用方式并入本文中。
技术领域
本文所描述的本公开的一些示例实施例涉及存储控制器,更具体地,涉及一种将存储器块解除分配的存储控制器、操作该存储控制器的方法和操作包括该存储控制器的存储装置的方法。
背景技术
存储器装置响应于写请求而存储数据,并且响应于读请求而输出存储在其中的数据。分类为易失性存储器装置的存储器装置在供电中断时丢失存储在其中的数据,例如动态随机存取存储器(DRAM)装置、静态RAM(SRAM)装置。分类为非易失性存储器装置的存储器装置即使在供电中断时也保留存储在其中的数据,例如闪速存储器装置、相变RAM(PRAM)、磁性RAM(MRAM)或电阻RAM(RRAM)。
通常,非易失性存储器装置可根据随机访问而存储数据。随机访问伴随着对整个区域的频繁垃圾收集操作。频繁垃圾收集操作导致存储装置的寿命缩短。当为频繁垃圾收集、磨损均衡和坏块管理分配了大的过度供给(OP)区域时,存储装置的可用存储容量可减小。
发明内容
本公开的一些示例实施例提供了一种将存储器块解除分配的存储控制器、操作该存储控制器的方法和操作包括存储控制器的存储装置的方法。
根据示例实施例,一种操作存储控制器的方法,该存储控制器与主机和非易失性存储器装置通信,该方法包括:从主机接收第一擦除请求,该第一擦除请求针对存储器装置的多个区中的第一区;基于第一擦除请求从分配清单表加载第一区的第一分配清单信息;基于第一分配清单信息将分配给第一区的存储器块解除分配,其中,存储器块的顺序物理页编号分别被映射到顺序逻辑页编号;以及向非易失性存储器装置提供针对第一区的解除分配的存储器块的物理擦除请求。
根据示例实施例,一种操作存储装置的方法,该存储装置与主机通信,包括:从主机接收擦除请求,该擦除请求针对非易失性存储器装置的多个区中的目标区;基于擦除请求从分配清单表加载目标区的分配清单信息;基于分配清单信息将分配给目标区的存储器块解除分配,其中,存储器块的顺序物理页编号分别被映射到顺序逻辑页编号;物理擦除目标区的解除分配的存储器块;以及在解除分配的存储器块被物理擦除之后,向主机提供指示擦除请求被处理的响应。
根据示例实施例,一种存储控制器包括:处理电路,其被配置为实现与主机和非易失性存储器装置通信的分区命名空间(ZNS)管理器;映射表,其管理逻辑地址和物理地址之间的映射关系;分配清单表,其管理多个区中的目标区的分配清单信息;以及有效页计数(VPC)表,其管理分配给目标区的多个存储器块的VPC值。ZNS管理器被配置为接收针对主机的目标区的擦除请求,基于擦除请求从分配清单表加载目标区的分配清单信息,基于目标区的分配清单信息从映射表移除分配给目标区的多个存储器块的映射关系,并且向非易失性存储器装置提供针对映射关系被移除的多个存储器块的物理擦除请求。目标区的多个存储器块的顺序物理页编号分别被映射到顺序逻辑页编号。
附图说明
通过参照附图详细描述其示例实施例,本公开的以上和其它目的和特征将变得显而易见。
图1是根据本公开的一些示例实施例的存储系统的框图。
图2是详细示出根据本公开的一些示例实施例的图1的存储控制器的框图。
图3是详细示出根据本公开的一些示例实施例的图1的非易失性存储器装置的框图。
图4是描述根据本公开的一些示例实施例的顺序写操作的图。
图5是描述根据本公开的一些示例实施例的存储装置的状态的图。
图6是描述根据本公开的一些示例实施例的存储系统的图。
图7是描述根据本公开的一些示例实施例的分配清单信息的数据结构的图。
图8是描述传统存储系统的解除分配操作的图。
图9是描述传统存储控制器的操作方法的流程图。
图10是描述根据本公开的一些示例实施例的存储系统的解除分配操作的图。
图11是描述根据本公开的一些示例实施例的存储控制器的操作方法的流程图。
图12是描述根据本公开的一些示例实施例的存储控制器的操作方法的流程图。
具体实施方式
下面,将详细且清楚地描述本公开的一些示例实施例,以使本领域技术人员容易地实施本公开。
图1是根据本公开的一些示例实施例的存储系统的框图。参照图1,存储系统10可包括主机11和存储装置100。在一些示例实施例中,存储系统10可以是被配置为处理各种信息的计算系统,例如个人计算机(PC)、笔记本、膝上型计算机、服务器、工作站、平板PC、智能电话、数字相机和黑匣子。
主机11可控制存储系统10的总体操作。例如,主机11可将数据存储在存储装置100中,或者可读取存储在存储装置100中的数据。例如,主机11可向存储装置100提供写数据,或者主机11可请求存储在存储装置100中的读数据。
存储装置100可包括存储控制器110和非易失性存储器装置120。非易失性存储器装置120可存储数据。存储控制器110可将数据存储在非易失性存储器装置120中,或者可读取存储在非易失性存储器装置120中的数据。非易失性存储器装置120可在存储控制器110的控制下操作。例如,基于指示操作的命令CMD和指示数据位置的地址ADD,存储控制器110可将数据存储在非易失性存储器装置120中,或者可读取存储在非易失性存储器装置120中的数据。
在一些示例实施例中,存储装置100可根据主机11的请求将对应的存储器块分配给区,并且可将数据顺序地存储在所分配的存储器块中。区在概念上可指多个存储器块当中物理上彼此连续的一些存储器块。例如,存储控制器110和非易失性存储器装置120可支持非易失性存储器高速(NVMe)的分区命名空间(ZNS)标准。ZNS标准将参照图4和图5详细描述。
在一些示例实施例中,非易失性存储器装置120可以是NAND闪存装置,但本公开不限于此。例如,非易失性存储器装置120可以是即使断电也保留存储在其中的数据的各种存储装置之一,例如相变随机存取存储器(PRAM)、磁性随机存取存储器(MRAM)、电阻随机存取存储器(RRAM)和铁电随机存取存储器(FRAM)。
存储控制器110可包括分区命名空间(ZNS)管理器111、分配清单表112和有效页计数(VPC)表113。
ZNS管理器111可与主机11和非易失性存储器装置120通信。ZNS管理器111可从主机11接收符合ZNS标准的请求,并且可处理符合ZNS标准的请求。例如,根据主机11的请求,ZNS管理器111可改变区的状态(即,可允许区的状态转变),可将存储器块分配给区或者可将所分配的存储器块解除分配(或释放),并且可针对不包括有效数据的存储器块生成物理擦除请求。解除分配的存储器块可被称为“自由存储器块”。自由存储器块可用于根据写请求存储数据。当对自由存储器块进行准备的速度提高时,写延迟可减小。
在一些示例实施例中,ZNS管理器111可支持基于页的解除分配和基于组块(chunk)的解除分配两者。组块可指一系列数据集。例如,在ZNS标准中,组块可指分配给目标区的所有数据。由于ZNS标准支持顺序写操作,所以存储器块中的物理页可仅存储属于同一组块的数据。在数据顺序性的前提下,ZNS管理器111可支持以存储器块为单位的解除分配(例如,存储器块的所有页的同时擦除和生成物理擦除请求),以及以存储器块的页为单位的解除分配(例如,逻辑地址和物理地址之间的基于页的映射关系的删除)。这将参照图10和图11详细描述。
分配清单表112可管理分别与存储控制器110所管理的多个区对应的多个分配清单信息。分配清单信息可指示分配给对应区的所有存储器块的索引编号。例如,在第一存储器块和第二存储器块被分配给第一区的情况下,第一区的分配清单信息可指示第一存储器块和第二存储器块作为分配给第一区的所有存储器块。分配清单信息可用于搜索分配给对应区的所有存储器块。将参照图6和图7详细描述分配清单信息。
在一些示例实施例中,每当进行块分配的改变时,ZNS管理器111可更新分配清单表112的分配清单信息。例如,当从主机11接收到分配新存储器块的请求时,ZNS管理器111可更新分配清单表112的分配清单信息。当从主机11接收到将先前分配的存储器块解除分配的请求时,ZNS管理器111可更新分配清单表112的分配清单信息。
VPC表113可管理分配给存储控制器110所管理的多个区中的每一个的至少一个存储器块的VPC值。VPC值可以存储器块为单位而被管理,并且可指示对应存储器块中的多个物理页中的有效物理页的数量。
例如,存储控制器110还可包括管理从主机11接收的逻辑地址与非易失性存储器装置120的存储器块的物理地址之间的映射关系的映射表。ZNS管理器111可参考映射表来更新VPC表113的VPC值。当目标存储器块的所有映射关系在映射表中被移除(或取消映射)时,ZNS管理器111可将VPC表113的VPC值改变为目标值(例如,“0”),并且可向非易失性存储器装置120提供对目标存储器块的物理擦除请求。
如上所述,根据本公开的一些示例实施例,存储控制器110可支持基于页的解除分配和基于存储器块的解除分配。因此,可提供其中对自由存储器块进行准备的速度提高并且写延迟减小的存储控制器110。
图2是详细示出根据本公开的一些示例实施例的图1的存储控制器的框图。参照图1和图2,存储控制器110可与主机11和非易失性存储器装置120通信。
存储控制器110可包括ZNS管理器111、分配清单表112、VPC表113、易失性存储器装置114、处理器115、只读存储器(ROM)116、纠错码(ECC)引擎117、主机接口电路118和非易失性存储器接口电路119。
ZNS管理器111、分配清单表112和VPC表113可被称为或实现于“区管理装置”上。区管理装置可对多个区执行存储器分配操作和存储器解除分配操作。ZNS管理器111、分配清单表112和VPC表113可分别对应于图1的ZNS管理器111、分配清单表112和VPC表113。
在一些示例实施例中,区管理装置的至少一部分可由固件或可编程硬件实现,例如现场可编程门阵列(FPGA)。例如,非易失性存储器装置120可存储与区管理装置对应的指令。处理器115可将非易失性存储器装置120的指令加载到易失性存储器装置114上。处理器115可执行加载的指令,使得区管理装置操作。诸如处理器115和区管理装置的处理电路可实现ZNS管理器111、分配清单表112和VPC表113。处理电路可通过执行存储在易失性存储器装置114或ROM 116(或其上存储有用于操作存储控制器110的指令的另一存储器)上的计算机可执行指令来操作。因此,存储控制器110的处理电路可通过执行来自易失性存储器装置114和/或ROM 116(或存储有用于操作存储控制器110的指令的另一存储器)的指令来执行ZNS管理器111、分配清单表112和VPC表113的所有动作。
易失性存储器装置114可用作存储控制器110的缓冲存储器、主存储器、高速缓存存储器或工作存储器。例如,易失性存储器装置114可利用静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实现。在一些示例实施例中,易失性存储器装置114可包括映射表。映射表可管理逻辑地址和物理地址之间的映射关系。
处理器115可控制存储控制器110的总体操作。ROM 116可用作存储存储控制器110的操作所需或期望的信息的只读存储器。ECC引擎117可检测并纠正从非易失性存储器装置120读取的数据的错误。例如,ECC引擎117可具有给定级别的纠错能力。ECC引擎117可将其错误级别(例如,翻转比特的数量)超过纠错能力的数据作为不可纠正的错误进行处理。
存储控制器110可通过主机接口电路118与主机11通信。在一些示例实施例中,主机接口电路118可基于各种接口中的至少一种来实现,例如串行ATA(SATA)接口、外围组件互连高速(PCIe)接口、串行附接SCSI(SAS)、非易失性存储器高速(NVMe)接口和通用闪存(UFS)接口。另外,主机接口电路118可支持NVMe的ZNS标准。
存储控制器110可通过非易失性存储器接口电路119与非易失性存储器装置120通信。在一些示例实施例中,非易失性存储器接口电路119可基于NAND接口来实现。另外,非易失性存储器接口电路119可支持符合NVMe的ZNS标准的顺序写操作。
图3是详细示出根据本公开的一些示例实施例的图1的非易失性存储器装置的框图。参照图1和图3,非易失性存储器装置120可与存储控制器110通信。例如,非易失性存储器装置120可从存储控制器110接收地址ADD和命令CMD。非易失性存储器装置120可与存储控制器110交换数据。
非易失性存储器装置120可包括控制逻辑121、电压生成器122、行解码器123、存储器单元阵列124、页缓冲器单元125、列解码器126和输入/输出(I/O)电路127。
控制逻辑121可从存储控制器110接收命令CMD和地址ADD。命令CMD可指指示非易失性存储器装置120要执行的操作的信号,例如读操作、写操作或擦除操作。地址ADD可包括行地址ADDR和列地址ADDC。控制逻辑121可基于命令CMD和地址ADD来控制非易失性存储器装置120的总体操作。控制逻辑121可基于地址ADD来生成行地址ADDR和列地址ADDC。
在控制逻辑121的控制下,电压生成器122可控制要通过行解码器123施加到存储器单元阵列124的电压。
行解码器123可从控制逻辑121接收行地址ADDR。行解码器123可通过串选择线SSL、字线WL和接地选择线GSL与存储器单元阵列124连接。行解码器123可对行地址ADDR进行解码,并且可基于解码结果和从电压生成器122接收的电压来控制要施加到串选择线SSL、字线WL和接地选择线GSL的电压。
根据从行解码器123施加的电压,存储器单元阵列124可存储数据或者可输出所存储的数据。存储器单元阵列124可包括多个存储器块BLK。多个存储器块BLK中的每一个可包括多个物理页。物理页可存储数据。在一些示例实施例中,存储器块BLK可利用基于垂直NAND(VNAND)的存储器块来实现。
页缓冲器单元125可包括多个页缓冲器PB。页缓冲器单元125可通过位线BL与存储器单元阵列124连接。页缓冲器单元125可通过感测位线BL的电压以页为单位从存储器单元阵列124读取数据。
列解码器126可从控制逻辑121接收列地址ADDC。列解码器126可对列地址ADDC进行解码,并且可基于解码结果将页缓冲器单元125所读取的数据提供给I/O电路127。
列解码器126可通过数据线DL从I/O电路127接收数据。列解码器126可从控制逻辑121接收列地址ADDC。列解码器126可对列地址ADDC进行解码,并且可基于解码结果将从I/O电路127接收的数据提供给页缓冲器单元125。页缓冲器单元125可以页为单位将从I/O电路127提供的数据通过位线BL存储在存储器单元阵列124中。
I/O电路127可通过数据线DL与列解码器126连接。I/O电路127可通过数据线DL将从存储控制器110接收的数据提供给列解码器126。I/O电路127可将通过数据线DL接收的数据输出到存储控制器110。
图4是描述根据本公开的一些示例实施例的顺序写操作的图。将参照图1、图3和图4描述存储控制器110将数据顺序地写入非易失性存储器装置120的存储器单元阵列124中的操作。
传统存储控制器可根据随机访问来存储数据。例如,在根据随机访问存储数据的情况下,与逻辑上顺序的地址块对应的存储器块可能随机地分布在非易失性存储器装置中。非易失性存储器装置在结构上可能无法被覆写。在执行擦除操作的情况下,可执行在其中读取数据、确定所读取的数据是否有效、并且将确定为有效的数据复制到另一存储器块的垃圾收集操作,以单独地管理存储器块中的有效数据和无效数据。
传统存储控制器可能频繁地对非易失性存储器装置的整个区域执行垃圾收集操作,从而缩短非易失性存储器装置的寿命(例如,增加编程/擦除(P/E)循环的数量)。另外,由于为频繁垃圾收集、磨损均衡和坏块管理分配了大的过度供给(OP)区域,所以非易失性存储器装置的可用存储容量可减小。
根据本公开的一些示例实施例,存储控制器110可执行顺序写操作。为了更好理解本公开,第一区至第N区的逻辑区域和第一区至第N区的物理区域被一起示出。本文中,“N”是任意自然数。逻辑区域可包括主机11能够识别的逻辑地址。物理区域可包括非易失性存储器装置120中的存储器块的位置或地址。逻辑区域和物理区域可具有映射关系。
参考逻辑区域,存储控制器110可管理第一区至第N区。第一区至第N区可彼此独立地管理。例如,主机11可执行第一应用和第二应用。第一应用可管理包括在第一区中的数据。第二应用可管理包括在第二区中的数据。即,可在同一区内管理同一应用所管理的数据当中具有相似目的和使用周期的数据。
第一区至第N区中的每一个可包括多个逻辑块地址。例如,第一区可包括第一逻辑块地址LBA1至第m逻辑块地址LBAm。本文中,“m”是任意自然数。第一逻辑块地址LBA1至第m逻辑块地址LBAm可以是逻辑上顺序的。
存储控制器110可使用写指针将数据顺序地存储在存储器单元阵列124中。例如,在与第一逻辑块地址LBA1和第二逻辑块地址LBA2对应的数据被顺序地编程在存储器单元阵列124中并且存储控制器110的缓冲存储器存储与第三逻辑块地址LBA3对应的数据的情况下,写指针可指示第三逻辑块地址LBA3。
参考物理区域,存储器单元阵列124可包括多个块BLK。多个块BLK可被分类为第一区至第N区。第一区的多个块BLK可以是物理上顺序的第一存储器块BLK1至第m存储器块BLKm。第一区的第一存储器块BLK1至第m存储器块BLKm可分别对应于第一区的第一逻辑块地址LBA1至第m逻辑块地址LBAm。存储控制器110可根据写请求管理从主机11接收的数据,以将其在逻辑上和物理上顺序地存储在存储器单元阵列124中。即,存储控制器110可支持顺序写操作。
为了更好理解本公开,作为逻辑块地址对应于一个块来给出描述,但本公开不限于此。在维持逻辑顺序性的同时,逻辑块地址可分别对应于一个块(例如,存储器单元被编程的单位)中的顺序子块或顺序编程单元。逻辑块地址和存储器块的对应关系可由本领域技术人员不同地改变和实施。
如上所述,根据本公开的一些示例实施例,存储控制器110可以区为单位管理数据,而非针对存储器单元阵列124的整个区域随机管理数据。由于以区为单位进行数据管理,所以由于垃圾收集(GC)而引起的I/O负载以及附加的读操作和写操作可减少。因此,存储装置100的数据处理速度可提高,并且存储装置100的功耗可降低。另外,随着由于垃圾收集而引起的负载减小,过度供给(OP)区域可减小。这可意味着非易失性存储器装置120的可用存储容量增加。
图5是描述根据本公开的一些示例实施例的存储装置的状态的图。将参照图1和图5描述根据ZNS标准而与存储装置100的区关联的状态机。
根据本公开的一些示例实施例,存储装置100所管理的区可具有区空间空(ZSE)状态、区空间隐含打开(ZSIO)状态、区空间明确打开(ZSEO)状态、区空间关闭(ZSC)状态、区空间满(ZSF)状态、区空间只读(ZSRO)状态和区空间离线(ZSO)状态之一。随着存储装置100处理从主机11接收的请求,区的状态可转变。
ZSE状态、ZSF状态、ZSRO状态和ZSO状态可被分类为非活动状态。ZSIO状态、ZSEO状态和ZSC状态可被分类为活动状态。活动状态的区可由最大活动资源字段限制。ZSIO状态和ZSEO状态可被分类为打开状态。打开状态的区可由最大打开资源字段限制。
ZSE状态可指示空状态。ZSE状态可指数据还未存储在存储器块中或者通过重置操作物理地擦除存储器块的数据的状态;在这种情况下,写指针可指示最低逻辑块地址(例如,区所管理的逻辑块地址当中编号最低的逻辑块地址)。ZSE状态的写指针可为有效的。ZSE状态可转变为ZSIO状态、ZSEO状态、ZSC状态和ZSF状态之一。
ZSIO状态可指示隐含打开状态。ZSIO状态可以是通过执行从主机11接收的写命令而隐含打开的状态。在ZSIO状态下,存储器块可存储与写命令对应的数据。ZSIO状态可转变为ZSE状态、ZSEO状态、ZSC状态和ZSF状态之一。当打开资源饱和时,即使不存在关闭命令,ZSIO状态也可转变为ZSC状态。
ZSEO状态可指示明确打开状态。ZSEO状态可以是通过执行从主机11接收的打开命令而明确打开的状态。在ZSEO状态下,存储器块可存储与随后接收的写命令对应的数据。ZSEO状态可转变为ZSE状态、ZSC状态和ZSF状态之一。与ZSIO状态相比,ZSEO状态可对打开资源具有更高的优先级。ZSEO状态可仅通过关闭命令转变为ZSC状态。
ZSC状态可指示关闭状态。1)当在ZSE状态下存在可用活动资源并且接收到设定区描述符扩展命令时,2)当在ZSIO状态下,接收到关闭命令或者打开资源饱和时,或者3)当在ZSEO状态下,接收到关闭命令时,可进行向ZSC状态的转变。在ZSC状态下,存储器块无法存储与写命令对应的数据。ZSC状态可转变为ZSE状态、ZSIO状态、ZSEO状态和ZSF状态之一。
ZSF状态可指示满状态。在ZSE状态下,存储器块可被存储在其中的数据填充,并且写指针可指示最高逻辑块地址(例如,区所管理的逻辑块地址当中数最大的逻辑块地址)。ZSF状态的写指针可为无效的。ZSF状态可通过指示对区进行重置的命令转变为ZSE状态。
ZSRO状态可指示只读状态。具有ZSRO状态的区可以是这样的空间,在该空间处,在区的性能的一部分停止操作之后主机继续使用分区命名空间。ZSRO状态可通过离线区命令转变为ZSO状态。
ZSO状态可指示离线状态。ZSO状态可以不具有有效写指针,可以不具有活动资源,并且可以没有打开的资源。ZSO状态可以不具有能够转变的任何其它状态。
在一些示例实施例中,存储装置100可根据区管理发送命令执行重置区的区发送动作。例如,存储装置100的目标区可在ZSIO状态、ZSEO状态、ZSC状态或ZSF状态下操作。存储装置100可从主机11接收对目标区的区管理发送命令。区管理发送命令可指示目标区的重置操作,并且可指示目标区向ZSE状态转变。存储装置100可根据区管理发送命令执行区发送动作。
图6是描述根据本公开的一些示例实施例的存储系统的图。参照图6,存储系统10可包括主机11、存储控制器110和非易失性存储器装置120。
主机11可与存储控制器110通信。主机11可向存储控制器110提供满足ZNS标准的请求(例如,重置操作的擦除请求、向打开状态的状态转变的打开请求以及存储数据的写请求)。主机11可从存储控制器110接收与一些请求对应的响应。
存储控制器110可包括映射表、ZNS管理器111、分配清单表112和VPC表113。
ZNS管理器111可与主机11、映射表、分配清单表112、VPC表113和非易失性存储器装置120通信。ZNS管理器111可处理来自主机11的请求,可向区分配新块或者可将所分配的块解除分配,并且可管理非易失性存储器装置120的存储器块的物理擦除操作。
映射表可管理逻辑地址和物理地址之间的映射关系。映射表可由ZNS管理器111管理。映射表可实现于图2的易失性存储器装置114上。逻辑地址可指示从主机11接收的逻辑页编号。逻辑页编号可指示主机11能够识别的数据的位置。物理地址可包括非易失性存储器装置120的存储器块的物理页编号。物理页编号可指示存储在非易失性存储器装置120中的数据的位置。
例如,主机11可向存储控制器110提供对第一数据DT1至第四数据DT4的写请求。第一数据DT1至第四数据DT4可分别对应于逻辑上顺序的第一逻辑页编号LPN1至第四逻辑页编号LPN4。ZNS管理器111可基于写请求或先前接收的打开请求将非易失性存储器装置120的第一存储器块BLK1和第二存储器块BLK2分配给第一区。第一存储器块BLK1可包括物理上顺序的第一物理页和第二物理页。第二存储器块BLK2可包括物理上顺序的第一物理页和第二物理页。
ZNS管理器111可将第一逻辑页编号LPN1映射到第一存储器块BLK1的第一物理页编号PPN1,可更新映射表的映射关系,并且可将第一数据DT1存储在第一存储器块BLK1的第一物理页。
ZNS管理器111可将第二逻辑页编号LPN2映射到第一存储器块BLK1的第二物理页编号PPN2,可更新映射表的映射关系,并且可将第二数据DT2存储在第一存储器块BLK1的第二物理页。
ZNS管理器111可将第三逻辑页编号LPN3映射到第二存储器块BLK2的第一物理页编号PPN1,可更新映射表的映射关系,并且可将第三数据DT3存储在第二存储器块BLK2的第一物理页。
ZNS管理器111可将第四逻辑页编号LPN4映射到第二存储器块BLK2的第二物理页编号PPN2,可更新映射表的映射关系,并且可将第四数据DT4存储在第二存储器块BLK2的第二物理页。
同时,第三存储器块BLK3可存储任何其它数据,但是为了防止或阻止附图复杂,可省略第三存储器块BLK3的第一物理页编号PPN1和第二物理页编号PPN2之间的映射关系。
为了更好理解示例实施例,作为第一存储器块BLK1和第二存储器块BLK2被分配给第一区并且一个存储器块包括两个物理页给出描述,但示例实施例不限于此。要分配给一个区的存储器块的数量可增加或减小,并且要包括在一个存储器块中的物理页的数量可增加或减小。
分配清单表112可管理分别与存储控制器110所管理的多个区对应的多个分配清单信息。分配清单信息可指示分配给对应区的所有存储器块的索引编号。
例如,分配清单表112可管理第一分配清单信息ALI 1和第二分配清单信息ALI2。第一分配清单信息ALI 1可指示第一存储器块BLK1和第二存储器块BLK2作为分配给第一区的所有存储器块。第一分配清单信息ALI 1可用于搜索分配给第一区的所有存储器块。当新的存储器块被分配给第一区或者先前分配的存储器块被解除分配时,ZNS管理器111可更新分配清单表112的第一分配清单信息ALI 1。
如上面的描述中,第二分配清单信息ALI2可指示第三存储器块BLK3作为分配给第二区的所有存储器块。第二分配清单信息ALI2可用于搜索分配给第二区的所有存储器块。当新的存储器块被分配给第二区或者先前分配的存储器块被解除分配时,ZNS管理器111可更新分配清单表112的第二分配清单信息ALI2。
VPC表113可管理分配给存储控制器110所管理的多个区中的每一个的至少一个存储器块的VPC值。VPC表113的块索引项可指示用于标识对应块的编号。VPC表113的VPC项可指示对应块的VPC值。VPC值可以存储器块为单位管理,并且可指示对应存储器块中的多个物理页中的有效物理页的数量。
例如,在ZNS管理器111的控制下,VPC表113可管理设定为“2”的第一存储器块BLK1的VPC值,可管理设定为“2”的第二存储器块BLK2的VPC值,可管理设定为“2”的第三存储器块BLK3的VPC值,并且可管理设定为“0”的第四存储器块BLK4的VPC值。
在一些示例实施例中,ZNS管理器111可参考映射表来更新VPC表113。
例如,ZNS管理器111可从主机11接收对第一数据DT1和第二数据DT2的写请求。ZNS管理器111可更新映射表中的第一存储器块BLK1的第一物理页编号PPN1和第二物理页编号PPN2的映射关系。ZNS管理器111可参考映射表将VPC表113中的第一存储器块BLK1的VPC值设定为“2”。
当从主机11接收到对第一存储器块BLK1的擦除请求时,ZNS管理器111可将映射表中的第一存储器块BLK1的第一物理页编号PPN1和第二物理页编号PPN2的映射关系取消映射,并且可将VPC表113中的第一存储器块BLK1的VPC值从“2”改变为“0”。当VPC值改变为“0”时,ZNS管理器111可向非易失性存储器装置120提供对对应存储器块的物理擦除请求。
非易失性存储器装置120可包括第一存储器块BLK1至第四存储器块BLK4。第一存储器块BLK1至第四存储器块BLK4中的每一个可包括第一物理页和第二物理页,并且第一物理页和第二物理页可通过第一物理页编号PPN1和第二物理页编号PPN2来区分。第一物理页和第二物理页可为物理上顺序的。
ZNS管理器111可在将非易失性存储器装置120中的多个存储器块分成区的状态下管理多个存储器块。例如,ZNS管理器111可将第一存储器块BLK1和第二存储器块BLK2分配给第一区,并且可将与第一区关联的第一数据DT1至第四数据DT4存储在第一存储器块BLK1和第二存储器块BLK2中。ZNS管理器111可将第三存储器块BLK3分配给第二区,并且可将与第三区关联的任何其它数据存储在第三存储器块BLK3中。
在一些示例实施例中,存储控制器110可支持顺序写操作。分配给非易失性存储器装置120的第一区的第一存储器块BLK1的第一物理页编号PPN1和第二物理页编号PPN2以及分配给第一区的第二存储器块BLK2的第一物理页编号PPN1和第二物理页编号PPN2可以是顺序物理页编号,并且可分别映射到逻辑上顺序的第一逻辑页编号LPN1至第四逻辑页编号LPN4。
图7是描述根据本公开的一些示例实施例的分配清单信息的数据结构的图。将参照图6和图7描述由分配清单表112管理的分配清单信息的数据结构。
分配清单信息的数据结构具有链表的格式。链表可指每个节点具有数据和指针并且各节点在单条线上连接的形式。
参考第一分配清单信息ALI 1,数据结构可指示:第一存储器块BLK1被分配在第一区中,并且在分配第一存储器块BLK1之后,第二存储器块BLK2被分配在第一区中。由于在分配第二存储器块BLK2之后还未分配另一存储器块,所以第二存储器块BLK2可指示空(null)。
当进一步将另一存储器块分配给第一区时,ZNS管理器111可更新第一分配清单信息ALI 1以进一步指向第二存储器块BLK2之后的该另一存储器块。
当第二存储器块BLK2在第一区中被解除分配时,ZNS管理器111可更新第一分配清单信息ALI 1,使得第二存储器块BLK2被移除并且第一存储器块BLK1指示空。
参考第二分配清单信息ALI2,数据结构可指示第三存储器块BLK3被分配给第二区。由于在分配第三存储器块BLK3之后还未分配另一存储器块,所以第三存储器块BLK3可指示空。
参考第三分配清单信息ALI3,数据结构可指示尚未将存储器块分配给第三区。例如,第三分配清单信息ALI3可指示空。
如上所述,根据本公开的一些示例实施例,分配清单信息的数据结构可具有链表格式。链表可适合于快速地搜索分配给目标区的存储器块,并且可适合于在进行存储器块的分配或解除分配时快速更新分配改变。在分配给区的所有存储器块被同时或并发地清空(或取消映射)或删除的操作(例如,区重置操作)中,ZNS管理器111可参考具有链表格式的分配清单信息来核查存储器块,并且可将核查出的存储器块解除分配。根据优化的数据结构,对自由存储器块进行准备的速度可提高,并且写延迟可减小。
图8是描述传统存储系统的解除分配操作的图。将参照图8描述传统存储系统SS的基于页的解除分配操作。
为了更好理解示例实施例,将描述传统存储系统SS的解除分配操作。然而,以下描述可包括不与现有技术相关联的技术特征,并且以下描述并非旨在限制示例实施例。
传统存储系统SS可包括主机、存储控制器和非易失性存储器装置。主机和非易失性存储器装置可分别对应于图6的主机11和非易失性存储器装置120。存储控制器可包括映射表、随机访问管理器和VPC表。映射表和VPC表可分别对应于图6的映射表和VPC表113。
随机访问管理器可支持随机写操作和基于页的解除分配操作。非易失性存储器装置的存储器块可根据随机写操作来分布和存储数据。具有相似目的和使用周期的数据可被分布和存储在多个存储器块中。随机访问管理器可以页为单位将分布到多个存储器块的数据解除分配。
下面,将描述传统存储系统SS的解除分配操作。
在第一操作①中,随机访问管理器可从主机接收擦除请求。擦除请求可指示擦除分别与第一逻辑页编号LPN1至第四逻辑页编号LPN4对应的第一数据DT1至第四数据DT4。第一数据DT1可存在于第一存储器块BLK1的第一物理页中。第二数据DT2可存在于第二存储器块BLK2的第一物理页中。第三数据DT3可存在于第三存储器块BLK3的第一物理页中。第四数据DT4可存在于第一存储器块BLK1的第二物理页中。
在第二操作②中,随机访问管理器可将第一逻辑页编号LPN1解除分配。例如,解除分配可包括删除映射表中的第一逻辑页编号LPN1和第一存储器块BLK1的第一物理页编号PPN1之间的映射关系。在随机访问管理器删除映射关系之后,随机访问管理器可将VPC表中的第一存储器块BLK1的VPC值从“2”减小至“1”。随机访问管理器可确定减小的VPC值是否是目标值(例如,“0”)。
当确定减小的VPC值不是目标值时,与减小的VPC值对应的存储器块可包括至少一个有效页。随机访问管理器可仅删除映射关系,并且可以不请求非易失性存储器装置物理地擦除对应存储器块。接下来,随机访问管理器可针对下一页或任何其它请求处理解除分配。相比之下,当确定减小的VPC值是目标值时,对应存储器块可不包括有效页。随机访问管理器可请求非易失性存储器装置物理地擦除对应存储器块。
在第三操作③中,随机访问管理器可将第二逻辑页编号LPN2解除分配。例如,解除分配可包括删除映射表中的第二逻辑页编号LPN2和第二存储器块BLK2的第一物理页编号PPN1之间的映射关系。在随机访问管理器删除映射关系之后,随机访问管理器可将VPC表中的第二存储器块BLK2的VPC值从“2”减小至“1”。随机访问管理器可确定减小的VPC值是否是目标值。
在第四操作④中,随机访问管理器可将第三逻辑页编号LPN3解除分配。例如,解除分配可包括删除映射表中的第三逻辑页编号LPN3和第三存储器块BLK3的第一物理页编号PPN1之间的映射关系。在随机访问管理器删除映射关系之后,随机访问管理器可将VPC表中的第三存储器块BLK3的VPC值从“2”减小至“1”。随机访问管理器可确定减小的VPC值是否是目标值。
在第五操作⑤中,随机访问管理器可将第四逻辑页编号LPN4解除分配。例如,解除分配可包括删除映射表中的第四逻辑页编号LPN4和第一存储器块BLK1的第二物理页编号PPN2之间的映射关系。在随机访问管理器删除映射关系之后,随机访问管理器可将VPC表中的第一存储器块BLK1的VPC值从“1”减小至“0”。随机访问管理器可确定减小的VPC值是否是目标值。
在第六操作⑥中,随机访问管理器可确定在第五操作⑤中减小的第一存储器块BLK1的VPC值是否是目标值。VPC值是目标值可意指与VPC值对应的存储器块中不存在有效页。
在第七操作⑦中,基于在第六操作⑥中确定第一存储器块BLK1的VPC值是目标值,随机访问管理器可擦除第一存储器块BLK1。例如,随机访问管理器可向非易失性存储器装置提供对第一存储器块BLK1的物理擦除请求。非易失性存储器装置可根据物理擦除请求擦除存在于第一存储器块BLK1中的数据。
同时,由于第二存储器块BLK2中的第一物理页的第二数据DT2无效,但任何其它数据存在于第二存储器块BLK2的第二物理页,因此第二存储器块BLK2不会被物理擦除。如上面的描述中,由于第三存储器块BLK3中的第一物理页的第三数据DT3无效,但任何其它数据存在于第三存储器块BLK3的第二物理页,因此第三存储器块BLK3不会被物理擦除。
如上所述,传统存储系统SS可支持随机写操作和基于页的解除分配操作。当数据由于随机写操作而分布到多个存储器块时,无法进行基于存储器块的解除分配。另外,每当随机访问管理器执行基于页的解除分配操作并将页解除分配时,可能需要或期望检查VPC值的操作,从而导致对自由存储器块的准备的推迟以及写延迟的增加。将参照图9详细描述传统存储系统SS的存储控制器的操作方法。
图9是描述传统存储控制器的操作方法的流程图。参照图9,传统存储控制器可与主机和非易失性存储器装置通信。传统存储控制器可对应于图8的传统存储系统SS的存储控制器。
在操作S11中,传统存储控制器可接收对第一逻辑页编号LPN1至第K逻辑页编号LPNK的擦除请求。本文中,“K”是任意自然数。第一逻辑页编号LPN1可以是擦除请求的起始逻辑页编号。第K逻辑页编号LPNK可以是擦除请求的结束逻辑页编号。
在操作S12中,传统存储控制器可将当前逻辑页编号设定为第一逻辑页编号LPN1。
在操作S13中,传统存储控制器可确定当前逻辑页编号是否等于第(K+1)逻辑页编号LPNK+1。当前逻辑页编号等于第(K+1)逻辑页编号LPNK+1可意指操作S11中的擦除请求被完全处理。当确定当前逻辑页编号等于第(K+1)逻辑页编号LPNK+1时,传统存储控制器可结束该方法。当确定当前逻辑页编号不等于第(K+1)逻辑页编号LPNK+1时,传统存储控制器可执行操作S14。
在操作S14中,传统存储控制器可参考映射表的映射信息将当前逻辑页编号解除分配。例如,传统存储控制器可从映射表移除当前逻辑页编号与对应物理页编号之间的映射关系。
在操作S15中,传统存储控制器可减小与当前逻辑页编号对应的存储器块的VPC值。例如,传统存储控制器可将具有与操作S14中解除分配的逻辑页编号对应的物理页编号的存储器块的VPC值减小单位值(例如,“1”)。
在操作S16中,传统存储控制器可确定减小的VPC值是否等于目标值。例如,目标值可为“0”。当确定减小的VPC值等于目标值时,传统存储控制器可执行操作S17。当确定减小的VPC值不等于目标值时,传统存储控制器可执行操作S18。
在操作S17中,传统存储控制器可擦除VPC值为目标值的存储器块。例如,VPC值为目标值的存储器块可以是不包括有效页的存储器块。基于VPC值减小至目标值,传统存储控制器可向非易失性存储器装置提供对存储器块的物理擦除请求。
在操作S18中,传统存储控制器可将当前逻辑页编号重置为增加了单位值(例如,“1”)的数字。即,传统存储控制器可准备下一逻辑页编号的解除分配,或者可准备操作S11中的擦除请求的处理完成。
在执行操作S18之后,传统存储控制器可再次执行操作S13。在如此再次执行的操作S13中,当前逻辑页编号可以是在操作S18中重置的逻辑页编号。传统存储控制器可重复地执行操作S13至操作S18,直至在操作S13中确定当前逻辑页编号等于第(K+1)逻辑页编号LPNK+1。
如上所述,为了管理由于随机写操作而分布到多个存储器块的数据,传统存储控制器可执行基于页的解除分配操作。在应用了ZNS标准的存储装置中,可频繁地执行区重置操作以处理写请求。然而,基于页的解除分配操作可使得对自由存储器块进行准备的速度变慢,从而导致写延迟增加。因此,可能需要或期望基于存储器块的解除分配操作。
图10是描述根据本公开的一些示例实施例的存储系统的解除分配操作的图。将参照图10描述根据本公开的一些示例实施例的存储系统10的基于存储器块的解除分配操作。
存储系统10可包括主机11、存储控制器110和非易失性存储器装置120。主机11、存储控制器110和非易失性存储器装置120可分别对应于图6的主机11、存储控制器110和非易失性存储器装置120。
下面,将描述存储系统10的解除分配操作。
在第一操作①中,ZNS管理器111可从主机11接收对第一区的擦除请求。对第一区的擦除请求可指示擦除分别与第一逻辑页编号LPN1至第四逻辑页编号LPN4对应的第一数据DT1至第四数据DT4。
在一些示例实施例中,第一区中的所有存储器块的顺序物理页编号可分别被映射到顺序逻辑页编号。可在多个块上维持物理页编号的顺序性。
例如,在第一存储器块BLK1被分配给第一区之后,第二存储器块BLK2可被分配给第一区。与第一逻辑页编号LPN1对应的第一数据DT1可被存储在第一存储器块BLK1的第一物理页。与第二逻辑页编号LPN2对应的第二数据DT2可被存储在第一存储器块BLK1的第二物理页。与第三逻辑页编号LPN3对应的第三数据DT3可被存储在第二存储器块BLK2的第一物理页。与第四逻辑页编号LPN4对应的第四数据DT4可被存储在第二存储器块BLK2的第二物理页。可认为第一存储器块BLK1的第二物理页和第二存储器块BLK2的第一物理页具有物理顺序性。
即,第一数据DT1至第四数据DT4可具有逻辑上顺序的逻辑页编号LPN1、LPN2、LPN3和LPN4以及物理上顺序的物理页编号PPN1(BLK1)、PPN2(BLK1)、PPN1(BLK2)和PPN2(BLK2)。
在一些示例实施例中,分配给第一区的所有存储器块可仅存储与第一区对应的数据。例如,在第一操作①之前,存储控制器110可处理写请求以将与第一区对应的第一数据DT1至第四数据DT4存储在第一存储器块BLK1的顺序物理页(即,第一存储器块BLK1的第一物理页和第二物理页)和第二存储器块BLK2的顺序物理页(即,第二存储器块BLK2的第一物理页和第二物理页)中。第一存储器块BLK1和第二存储器块BLK2可不包括与不同于第一区的区对应的数据。
在一些示例实施例中,ZNS管理器111可从主机11接收重置目标区的擦除请求。例如,擦除请求可指示转变为ZNS标准的ZSE状态,并且可包括重置第一区的区管理发送命令。重置操作可指在无法被覆写的基于ZNS的存储装置中对写操作的预处理操作。分配给重置完成的区的存储器块可存储与写请求对应的数据。
在第二操作②中,ZNS管理器111可加载与第一区对应的第一分配清单信息ALI 1。第一分配清单信息ALI 1可指示分配给第一区的所有存储器块的索引编号。例如,第一分配清单信息ALI 1可指示第一存储器块BLK1和第二存储器块BLK2作为分配给第一区的所有存储器块。第一分配清单信息ALI 1可用于指分配给第一区的所有存储器块。
在一些示例实施例中,分配清单信息的数据结构可具有链表格式。例如,第一分配清单信息ALI 1的数据结构可指示:第一存储器块BLK1被分配给第一区,并且在分配第一存储器块BLK1之后,第二存储器块BLK2被分配给第一区。
在第三操作③中,ZNS管理器111可基于如此加载的第一分配清单信息ALI 1将分配给第一区的所有存储器块解除分配。ZNS管理器111可更新(或设定或减小)解除分配的存储器块的VPC值。
例如,分配给第一区的所有存储器块可以是第一存储器块BLK1和第二存储器块BLK2。在ZNS管理器111基于如此加载的第一分配清单信息ALI 1从映射表同时或并发地移除第一存储器块BLK1和第二存储器块BLK2的所有映射信息之后,ZNS管理器111可将VPC表113中的第一存储器块BLK1的VPC值从“2”减小至“0”,并且可将VPC表113中的第二存储器块BLK2的VPC值从“2”减小至“0”。
即,当存储系统10同时或并发地移除与擦除请求对应的目标区的所有映射信息,而非以页为单位移除映射信息时,与图8的传统存储系统SS相比,存储系统10可快速地执行解除分配操作。详细地,在基于ZNS的存储装置中,由于在逻辑顺序性和物理顺序性的前提下处理重置目标区的擦除请求,所以存储系统10可在没有确定存储器块中的物理页是否有效的情况下执行基于存储器块的解除分配操作。
在第四操作④中,基于在第三操作③中第一存储器块BLK1的VPC值减小至目标值,ZNS管理器111可擦除第一存储器块BLK1。例如,ZNS管理器111可向非易失性存储器装置120提供对第一存储器块BLK1的物理擦除请求。非易失性存储器装置120可根据物理擦除请求擦除存在于第一存储器块BLK1中的数据。
在第五操作⑤中,基于在第三操作③中第二存储器块BLK2的VPC值减小至目标值,ZNS管理器111可擦除第二存储器块BLK2。例如,ZNS管理器111可向非易失性存储器装置120提供对第二存储器块BLK2的物理擦除请求。非易失性存储器装置120可根据物理擦除请求擦除存在于第二存储器块BLK2中的数据。
在一些示例实施例中,第四操作④和第五操作⑤的顺序可改变。例如,在执行第四操作④之后,可执行第五操作⑤;在执行第五操作⑤之后,可执行第四操作④;可替换地,第四操作④和第五操作⑤可同时或几乎同时或并发地执行。
在一些示例实施例中,存储系统10可彼此独立地执行不同区的重置操作。例如,在正在执行参照图10描述的操作的同时,ZNS管理器111可从主机11接收对第二区的擦除请求,可基于对第二区的擦除请求从分配清单表112加载第二分配清单信息ALI2,可基于第二分配清单信息ALI2将分配给第二区的所有存储器块解除分配,并且可向非易失性存储器装置120提供对第二区的所有解除分配的存储器块的物理擦除请求。
在这种情况下,与第一区类似,可在逻辑顺序性和物理顺序性的前提下处理对第二区的擦除请求。例如,对第二区的擦除请求可指示将对应于第二区并且逻辑上顺序的第五逻辑页编号和第六逻辑页编号解除分配。分配给第二区的存储器块可包括第三存储器块BLK3。第五逻辑页编号和第六逻辑页编号可分别对应于第三存储器块BLK3的第一物理页编号PPN1和第二物理页编号PPN2。
图11是描述根据本公开的一些示例实施例的存储控制器的操作方法的流程图。参照图11,存储控制器可与主机和非易失性存储器装置通信。存储控制器可对应于参照图1、图2、图6和图10描述的存储控制器110。
在操作S110中,存储控制器可从主机接收对多个区中的目标区的擦除请求。
在操作S120中,存储控制器可基于擦除请求从分配清单表加载目标区的分配清单信息。
在操作S130中,存储控制器可基于分配清单信息将分配给目标区的所有存储器块解除分配。在这种情况下,目标区中的所有存储器块的顺序物理页编号可分别被映射至顺序逻辑页编号。
在操作S140中,存储控制器可向非易失性存储器装置提供对目标区的所有解除分配的存储器块的物理擦除请求。
在一些示例实施例中,存储控制器可支持NVM高速(NVMe)的ZNS标准。
图12是描述根据本公开的一些示例实施例的存储控制器的操作方法的流程图。参照图12,存储控制器可与主机和非易失性存储器装置通信。存储控制器可对应于参照图1、图2、图6和图10描述的存储控制器110。操作S210和操作S220与图11的操作S110和操作S120相似或相同,因此,将省略附加描述以避免冗余。
在操作S230中,存储控制器可将与分配清单信息对应的第一存储器块BLK1和第二存储器块BLK2解除分配。例如,分配给目标区的所有存储器块可包括第一存储器块BLK1和第二存储器块BLK2。
在一些示例实施例中,操作S230可包括:同时或并发地移除映射表中的第一存储器块BLK1和第二存储器块BLK2的映射信息,并且基于映射信息被移除,在VPC表中将第一存储器块BLK1的VPC值和第二存储器块BLK2的VPC值设定为目标值。
在操作S240中,存储控制器可向非易失性存储器装置提供对如此解除分配的第一存储器块BLK1的第一物理擦除请求。在执行操作S240之后,存储控制器可从非易失性存储器装置接收指示第一物理擦除请求被处理的第一响应。
在操作S241中,存储控制器可向非易失性存储器装置提供对如此解除分配的第二存储器块BLK2的第二物理擦除请求。在执行操作S241之后,存储控制器可从非易失性存储器装置接收指示第二物理擦除请求被处理的第二响应。
在一些示例实施例中,存储控制器可在执行操作S240之后执行操作S241,可在操作S241执行之后执行操作S240,或者可同时或几乎同时或并发地执行操作S240和操作S241。
在操作S250中,存储控制器可向主机提供指示操作S210中的擦除请求被处理的响应。例如,存储控制器可从非易失性存储器装置接收指示操作S240中的第一物理擦除请求被处理的第一响应。存储控制器可从非易失性存储器装置接收指示操作S241中的第二物理擦除请求被处理的第二响应。响应于第一响应和第二响应,存储控制器可向主机提供指示操作S210中的擦除请求被处理的响应。
在操作S260中,存储控制器可从主机接收对目标区的打开请求或对目标区的写请求。例如,打开请求可用于允许重置完成的目标区的状态转变为ZSIO状态至ZSEO状态。写请求可用于将新数据存储在重置完成的目标区中。
根据本公开的一些示例实施例,提供了一种将存储器块解除分配的存储控制器。操作该存储控制器的方法和操作包括该存储控制器的存储装置的方法。
另外,提供了一种存储控制器、操作该存储控制器的方法和操作包括该存储控制器的存储装置的方法,该存储控制器以存储器块为单位将存储顺序数据的存储器块解除分配,使得对自由存储器块进行准备的速度提高并且写延迟减小。
上面公开的任何元件和/或功能块可包括处理电路(例如,包括逻辑电路的硬件)、硬件/软件组合(例如,执行软件的处理器)或其组合,或者以它们实现。例如,存储控制器110和区管理装置可被实现为处理电路。具体地,处理电路可包括但不限于中央处理单元(CPU)、算术逻辑单元(ALU)、数字信号处理器、微计算机、现场可编程门阵列(FPGA)、系统芯片(SoC)、可编程逻辑单元、微处理器、专用集成电路(ASIC)等。处理电路可包括诸如晶体管、电阻器、电容器等中的至少一个的电子组件。处理电路可包括诸如逻辑门的电子组件,逻辑门包括与门、或门、与非门、非门等中的至少一个。
处理器、控制器和/或处理电路可被配置为通过被专门编程为执行动作或步骤(例如利用FPGA或ASIC)来执行这些动作或步骤,或者可被配置为通过执行从存储器接收的指令来执行动作或步骤,或其组合。
尽管参考其示例实施例描述了本公开,但对于本领域普通技术人员而言将显而易见的是,在不脱离所附权利要求中阐述的本公开的精神和范围的情况下,可对其进行各种改变和修改。
Claims (20)
1.一种操作存储控制器的方法,所述存储控制器与主机和非易失性存储器装置通信,所述方法包括步骤:
从所述主机接收第一擦除请求,所述第一擦除请求针对所述非易失性存储器装置的多个区中的第一区;
基于所述第一擦除请求从分配清单表加载所述第一区的第一分配清单信息;
基于所述第一分配清单信息将分配给所述第一区的存储器块解除分配,其中,所述存储器块的顺序物理页编号分别被映射至顺序逻辑页编号;以及
向所述非易失性存储器装置提供对所述第一区的解除分配的存储器块的物理擦除请求。
2.根据权利要求1所述的方法,其中,在提供所述物理擦除请求之前,分配给所述第一区的存储器块存储与所述第一区对应的数据。
3.根据权利要求1所述的方法,其中,所述第一分配清单信息指示分配给所述第一区的存储器块的索引编号。
4.根据权利要求1所述的方法,其中,
分配给所述第一区的存储器块包括第一存储器块和第二存储器块,并且
所述第一分配清单信息的数据结构指示:所述第一存储器块被分配给所述第一区,并且在分配所述第一存储器块之后,所述第二存储器块被分配给所述第一区。
5.根据权利要求1所述的方法,其中,
基于所述第一分配清单信息将分配给所述第一区的存储器块解除分配的步骤包括:
基于所述第一分配清单信息从映射表移除分配给所述第一区的存储器块的映射信息,以及
在所述映射信息被移除之后,在有效页计数表中将分配给所述第一区的存储器块的有效页计数值设定为目标值,并且向所述非易失性存储器装置提供对所述第一区的解除分配的存储器块的物理擦除请求的步骤包括:
向所述非易失性存储器装置提供对所述第一区的其有效页计数值被设定为所述目标值的存储器块的物理擦除请求。
6.根据权利要求1所述的方法,其中,
所述第一擦除请求指示第一逻辑页编号、第二逻辑页编号、第三逻辑页编号和第四逻辑页编号的解除分配,所述第一逻辑页编号、所述第二逻辑页编号、所述第三逻辑页编号和所述第四逻辑页编号对应于所述第一区并且逻辑上是顺序的,
分配给所述第一区的存储器块包括:
第一存储器块,其具有第一物理页编号和第二物理页编号,所述第一物理页编号和所述第二物理页编号在物理上是顺序的;以及
第二存储器块,其具有第三物理页编号和第四物理页编号,所述第三物理页编号和所述第四物理页编号在物理上顺序的,并且
其中,所述第一逻辑页编号至所述第四逻辑页编号分别被映射至所述第一物理页编号至所述第四物理页编号。
7.根据权利要求1所述的方法,还包括步骤:
从所述非易失性存储器装置接收第一响应,所述第一响应指示所述物理擦除请求被处理;以及
基于所述第一响应向所述主机提供第二响应,所述第二响应指示所述第一擦除请求被处理。
8.根据权利要求7所述的方法,还包括步骤:
在向所述主机提供所述第二响应之后,从所述主机接收对所述第一区的打开请求或对所述第一区的写请求。
9.根据权利要求1所述的方法,还包括步骤:
从所述主机接收对所述多个区中的第二区的第二擦除请求;
基于所述第二擦除请求从所述分配清单表加载所述第二区的第二分配清单信息;
基于所述第二分配清单信息将分配给所述第二区的存储器块解除分配;以及
向所述非易失性存储器装置提供对所述第二区的解除分配的存储器块的物理擦除请求。
10.根据权利要求9所述的方法,其中,
所述第二擦除请求指示第五逻辑页编号和第六逻辑页编号的解除分配,所述第五逻辑页编号和所述第六逻辑页编号对应于所述第二区并且逻辑上是顺序的,
其中,分配给所述第二区的存储器块包括具有第五物理页编号和第六物理页编号的第三存储器块,所述第五物理页编号和所述第六物理页编号在物理上是顺序的,并且
所述第五逻辑页编号和所述第六逻辑页编号分别被映射至所述第五物理页编号和所述第六物理页编号。
11.根据权利要求1所述的方法,其中,所述存储控制器支持非易失性存储器高速的分区命名空间标准。
12.根据权利要求11所述的方法,其中,所述第一擦除请求指示转变为分区命名空间标准的区空间空状态,并且包括重置所述第一区的区管理发送命令。
13.一种操作存储装置的方法,所述存储装置与主机通信,所述方法包括步骤:
从所述主机接收擦除请求,所述擦除请求针对存储器装置的多个区中的目标区;
基于所述擦除请求从分配清单表加载所述目标区的分配清单信息;
基于所述分配清单信息将分配给所述目标区的存储器块解除分配,其中,所述存储器块的顺序物理页编号分别被映射至顺序逻辑页编号;
物理地擦除所述目标区的解除分配的存储器块;以及
在解除分配的存储器块被物理地擦除之后,向所述主机提供指示所述擦除请求被处理的响应。
14.根据权利要求13所述的方法,其中,
基于所述分配清单信息将分配给所述目标区的存储器块解除分配的步骤包括:
基于所述分配清单信息从映射表同时移除分配给所述目标区的存储器块的映射信息,以及
在所述映射信息被移除之后,在有效页计数表中将分配给所述目标区的存储器块的有效页计数值设定为目标值,并且物理地擦除所述目标区的解除分配的存储器块的步骤包括:
物理地擦除所述目标区的其有效页计数值被设定为目标值的存储器块。
15.一种存储控制器,包括:
处理电路,其被配置为实现
分区命名空间管理器,其被配置为与主机和非易失性存储器装置通信,
映射表,其被配置为管理逻辑地址和物理地址之间的映射关系,
分配清单表,其被配置为管理所述非易失性存储器装置的多个区中的目标区的分配清单信息,以及
有效页计数表,其被配置为管理分配给所述目标区的多个存储器块的有效页计数值,
其中,所述分区命名空间管理器还被配置为接收对所述主机的目标区的擦除请求,
基于所述擦除请求从所述分配清单表加载所述目标区的分配清单信息,
基于所述目标区的分配清单信息从所述映射表移除分配给所述目标区的所述多个存储器块的映射关系,以及
向所述非易失性存储器装置提供对其映射关系被移除的所述多个存储器块的物理擦除请求,并且
其中,所述目标区的所述多个存储器块的顺序物理页编号分别被映射至顺序逻辑页编号。
16.根据权利要求15所述的存储控制器,其中,
所述擦除请求包括第一逻辑页编号和第二逻辑页编号,所述第一逻辑页编号和所述第二逻辑页编号对应于所述目标区并且逻辑上是顺序的,
分配给所述目标区的所述多个存储器块中的第一存储器块具有第一物理页编号和第二物理页编号,所述第一物理页编号和所述第二物理页编号在物理上是顺序的,并且
所述第一逻辑页编号和所述第二逻辑页编号通过所述映射表分别被映射至所述第一物理页编号和所述第二物理页编号。
17.根据权利要求15所述的存储控制器,其中,
通过所述分配清单信息分配给所述目标区的所述多个存储器块包括第一存储器块和第二存储器块,并且
所述目标区的分配清单信息的数据结构指示:所述第一存储器块被分配给所述目标区,并且在分配所述第一存储器块之后,所述第二存储器块被分配给所述目标区。
18.根据权利要求15所述的存储控制器,其中,所述分区命名空间管理器还被配置为:
在分配给所述目标区的所述多个存储器块的映射关系被移除之后,将所述有效页计数表中的所述多个存储器块的有效页计数值设定为目标值,并且
在所述有效页计数值被设定为所述目标值之后,向所述非易失性存储器装置提供所述物理擦除请求。
19.根据权利要求15所述的存储控制器,其中,所述分区命名空间管理器还被配置为:
从所述非易失性存储器装置接收第一响应,所述第一响应指示所述物理擦除请求被处理;
基于所述第一响应向所述主机提供第二响应,所述第二响应指示所述擦除请求被处理;并且
在所述第二响应被提供给所述主机之后,接收对所述目标区的打开请求或对所述目标区的写请求。
20.根据权利要求15所述的存储控制器,其中,所述存储控制器支持非易失性存储器高速的分区命名空间标准。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2022-0011769 | 2022-01-26 | ||
KR1020220063763A KR20230115196A (ko) | 2022-01-26 | 2022-05-24 | 메모리 블록을 할당 해제하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법 |
KR10-2022-0063763 | 2022-05-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116501655A true CN116501655A (zh) | 2023-07-28 |
Family
ID=87317265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310039206.4A Pending CN116501655A (zh) | 2022-01-26 | 2023-01-13 | 将存储器块解除分配的存储控制器及其操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116501655A (zh) |
-
2023
- 2023-01-13 CN CN202310039206.4A patent/CN116501655A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9507711B1 (en) | Hierarchical FTL mapping optimized for workload | |
CN110781096B (zh) | 用于通过预测需求时间来执行垃圾收集的设备和方法 | |
US8819358B2 (en) | Data storage device, memory system, and computing system using nonvolatile memory device | |
CN110806984B (zh) | 在存储器系统中搜索有效数据的设备和方法 | |
US20160062885A1 (en) | Garbage collection method for nonvolatile memory device | |
US11747989B2 (en) | Memory system and method for controlling nonvolatile memory | |
KR20200068941A (ko) | 메모리 시스템 내 저장된 데이터를 제어하는 방법 및 장치 | |
CN110825659B (zh) | 用于检查存储器系统中的块中的有效数据的设备和方法 | |
CN111158579B (zh) | 固态硬盘及其数据存取的方法 | |
TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN112835811A (zh) | 存储器系统及其操作方法 | |
CN115458013A (zh) | 存储装置及其操作方法 | |
KR20210012641A (ko) | 메모리 시스템, 데이터 시스템 및 그 동작방법 | |
US20230236765A1 (en) | Storage controller performing active zone refresh, method of operating storage controller, and method of operating storage device having storage controller | |
US20220012180A1 (en) | Memory system for meta data management and operating method of memory system | |
US20230236964A1 (en) | Storage controller deallocating memory block, method of operating the same, and method of operating storage device including the same | |
CN116501655A (zh) | 将存储器块解除分配的存储控制器及其操作方法 | |
CN111857565A (zh) | 存储器系统、数据处理系统及其操作方法 | |
TWI808010B (zh) | 資料處理方法及對應之資料儲存裝置 | |
US20240241642A1 (en) | Storage device including non-volatile memory device and operating method of storage device | |
CN110825317B (zh) | 用于分布式存储输入数据的存储器系统和数据处理系统 | |
TWI814590B (zh) | 資料處理方法及對應之資料儲存裝置 | |
TWI808011B (zh) | 資料處理方法及對應之資料儲存裝置 | |
US20230236737A1 (en) | Storage Controller Managing Different Types Of Blocks, Operating Method Thereof, And Operating Method Of Storage Device Including The Same | |
EP4220414A1 (en) | Storage controller managing different types of blocks, operating method thereof, and operating method of storage device including the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |