CN112148627A - 针对分区命名空间的分区形成 - Google Patents

针对分区命名空间的分区形成 Download PDF

Info

Publication number
CN112148627A
CN112148627A CN202010215411.8A CN202010215411A CN112148627A CN 112148627 A CN112148627 A CN 112148627A CN 202010215411 A CN202010215411 A CN 202010215411A CN 112148627 A CN112148627 A CN 112148627A
Authority
CN
China
Prior art keywords
partition
dies
erase blocks
available
die
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
Application number
CN202010215411.8A
Other languages
English (en)
Inventor
A·D·班纳特
L·帕克
D·L·赫尔米克
S·A·戈洛贝茨
P·格雷森
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.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of CN112148627A publication Critical patent/CN112148627A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明题为“针对分区命名空间的分区形成”。本公开整体涉及操作存储设备的方法。所述存储设备包括控制器和介质单元。所述介质单元的容量被分成多个分区。所述介质单元包括多个管芯,并且所述多个管芯中的每个管芯包括多个擦除块。所述控制器被配置为将所述多个管芯中的每个管芯中的第一可用擦除块的估计年龄彼此进行比较,并基于所述估计年龄从所述多个管芯中的一个或多个管芯选择所述第一可用擦除块中的一个或多个第一可用擦除块以形成第一分区。来自所述多个管芯中的至少一个管芯的至少一个第一可用擦除块被排除在所述第一分区之外。

Description

针对分区命名空间的分区形成
相关申请的交叉引用
本申请要求于2019年6月28日提交的美国临时专利申请序列号 62/868,785的权益,该美国临时专利申请以引用方式并入本文。
背景技术
技术领域
本公开的实施方案整体涉及存储设备,诸如固态驱动器(SSD)。
相关领域的描述
存储设备诸如SSD可用于需要相对低延迟和高容量存储的应用中的计算机中。例如,SSD可表现出比硬盘驱动器(HDD)更低的延迟,尤其是对于随机读取和写入而言。通常,SSD的控制器接收将数据从主机设备读取或写入到存储器设备的命令。数据被读取并写入存储器设备中的一个或多个擦除块。一旦将数据编程到一个或多个擦除块,可擦除或清除擦除块,将擦除块返回到擦除块的空闲池,然后再次使用数据重新编程。
然而,擦除块的每个程序擦除循环增加了擦除块上的磨损年龄和磨损量,潜在地降低擦除块的保留能力和耐用性以及增加数据的误比特率。一个或多个擦除块可比其他擦除块更频繁地被选择,这可导致大量使用的擦除块变得不可用、损坏和/或不可用于存储数据。
因此,需要一种操作存储设备的新方法,该方法减缓擦除块的年龄和磨损。
发明内容
本公开整体涉及操作存储设备的方法。所述存储设备包括控制器和介质单元。所述介质单元的容量被分成多个分区。所述介质单元包括多个管芯,并且所述多个管芯中的每个管芯包括多个擦除块。所述控制器被配置为将所述多个管芯中的每个管芯中的第一可用擦除块的估计年龄彼此进行比较,并基于所述估计年龄从所述多个管芯中的一个或多个管芯选择所述第一可用擦除块中的一个或多个第一可用擦除块以形成第一分区。来自所述多个管芯中的至少一个管芯的至少一个第一可用擦除块被排除在所述第一分区之外。
在一个实施方案中,存储设备包括介质单元。所述介质单元的容量被分成多个分区。所述介质单元包括多个管芯,所述多个管芯中的每个管芯包括多个擦除块。所述存储设备还包括耦接到所述介质单元的控制器,所述控制器被配置为将所述多个管芯中的每个管芯中的第一可用擦除块的估计年龄彼此进行比较,并基于所述估计年龄从所述多个管芯中的一个或多个管芯选择所述第一可用擦除块中的一个或多个第一可用擦除块以形成第一分区。来自所述多个管芯中的至少一个管芯的至少一个第一可用擦除块被排除在所述第一分区之外。
在另一个实施方案中,存储设备包括介质单元。所述介质单元的容量被分成多个分区。所述介质单元包括多个管芯,所述多个管芯中的每个管芯包括多个擦除块。所述存储设备还包括耦接到所述介质单元的控制器,所述控制器被配置为将第一分区从空状态切换到活动状态,将所述多个管芯中的每个管芯的空闲池中的第一可用擦除块的估计年龄彼此进行比较,以及基于所述估计年龄从所述多个管芯中的一个或多个管芯的所述空闲池移除所比较的第一可用擦除块中的一个或多个第一擦除块以形成所述第一分区。来自所述多个管芯中的至少一个管芯的至少一个第一可用擦除块被排除在所述第一分区之外以保留在所述至少一个管芯的所述空闲池中。所述存储设备被进一步配置为将第二分区从所述空状态切换到所述活动状态,将所述多个管芯中的每个管芯中的所述第一可用擦除块的所述估计年龄彼此进行比较,以及基于所述估计年龄从所述多个管芯中的一个或多个管芯移除所比较的第一可用擦除块中的一个或多个第二擦除块以形成所述第二分区。来自所述多个管芯中的至少一个管芯的至少一个第一可用擦除块被排除在所述第二分区之外以保持在所述至少一个管芯的所述空闲池中。
在另一个实施方案中,一种形成存储设备的一个或多个分区的方法包括将第一分区从空状态切换到活动状态。所述存储设备包括多个管芯,并且所述多个管芯中的每个管芯包括多个擦除块。所述方法还包括将所述多个管芯中的每个管芯中的第一可用擦除块的估计年龄彼此进行比较,并基于所述估计年龄从所述多个管芯中的一个或多个管芯选择所述第一可用擦除块中的一个或多个第一可用擦除块以形成所述第一分区。来自所述多个管芯中的至少一个管芯的至少一个第一可用擦除块被排除在所述第一分区之外。
附图说明
因此,通过参考实施方案,可以获得详细理解本公开的上述特征的方式、本公开的更具体描述、上述简要概述,所述实施方案中的一些在附图中示出。然而,应当注意的是,附图仅示出了本公开的典型实施方案并且因此不应视为限制其范围,因为本公开可以允许其他同等有效的实施方案。
图1是示出根据一个实施方案的存储系统的示意框图。
图2示出了根据另一个实施方案的包括耦接到主机设备的存储设备的存储系统。
图3是示出了根据一个实施方案的操作存储设备以执行读取或写入命令的方法的框图。
图4A示出了根据一个实施方案的在存储设备中使用的分区命名空间视图。
图4B示出了根据一个实施方案的针对图4A的存储设备的分区命名空间的状态图。
图5示出了根据一个实施方案的由选自多个管芯的多个擦除块构成的分区。
图6A示出了根据一个实施方案的多个单平面管芯,该多个单平面管芯各自包括用于形成多个分区的多个擦除块。
图6B示出了表,该表显示来自哪些管芯的哪些擦除块用于形成图6A 的每个分区。
图7A-7C示出了由选自多个管芯的多个擦除块构成的分区的示例性实施方案。
为了有助于理解,在可能的情况下,使用相同的参考标号来表示附图中共有的相同元件。可以设想是,在一个实施方案中公开的元件可以有利地用于其他实施方案而无需具体叙述。
具体实施方式
在下文中,参考本公开的实施方案。然而,应当理解的是,本公开不限于具体描述的实施方案。相反,思考以下特征和元件的任何组合(无论是否与不同实施方案相关)以实现和实践本公开。此外,尽管本公开的实施方案可以实现优于其他可能解决方案和/或优于现有技术的优点,但是否通过给定实施方案来实现特定优点不是对本公开的限制。因此,以下方面、特征、实施方案和优点仅是说明性的,并且不被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。同样地,对“本公开”的引用不应当被解释为本文公开的任何发明主题的概括,并且不应当被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。
本公开整体涉及操作存储设备的方法。所述存储设备包括控制器和介质单元。所述介质单元的容量被分成多个分区。所述介质单元包括多个管芯,并且所述多个管芯中的每个管芯包括多个擦除块。所述控制器被配置为将所述多个管芯中的每个管芯中的第一可用擦除块的估计年龄彼此进行比较,并基于所述估计年龄从所述多个管芯中的一个或多个管芯选择所述第一可用擦除块中的一个或多个第一可用擦除块以形成第一分区。来自所述多个管芯中的至少一个管芯的至少一个第一可用擦除块被排除在所述第一分区之外。
图1是示出根据本公开的一种或多种技术的存储系统100的示意性框图,其中存储设备106可以用作主机设备104的存储设备。例如,主机设备104可以利用包括在存储设备106中的非易失性存储器设备110来存储和检索数据。主机设备104包括主机DRAM 138。在一些示例中,存储系统100可以包括可作为存储阵列操作的多个存储设备,诸如存储设备106。例如,存储系统100可以包括多个存储设备106,其被配置作为共同用作主机设备104的大容量存储设备的廉价/独立磁盘(RAID)冗余阵列。
存储系统100包括主机设备104,该主机设备可以向一个或多个存储设备诸如存储设备106存储数据和/或从其检索数据。如图1所示,主机设备104可以经由接口114与存储设备106通信。主机设备104可以包括多种设备中的任何一种,包括计算机服务器、网络附接存储(NAS)单元、台式计算机、笔记本(即膝上型)计算机、平板计算机、机顶盒、电话手机诸如所谓的“智能”电话、所谓的“智能”平板电脑、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备等。
该存储设备106包括控制器108、非易失性存储器110(NVM 110)、电源111、易失性存储器112和接口114。控制器108包括内部存储器120或缓冲器。在一些示例中,为了清楚起见,存储设备106可以包括图1中未示出的附加部件。例如,存储设备106可以包括印刷板(PB),存储设备106 的部件机械地附接到该印刷板,并且该印刷板包括电互连存储设备106的部件等的导电迹线。在一些示例中,存储设备106的物理尺寸和连接器配置可以符合一个或多个标准形状因数。一些示例性标准形状因子包括但不限于3.5”数据存储设备(例如,HDD或SSD)、2.5”数据存储设备、1.8”数据存储设备、外围部件互连(PCI)、PCI扩展(PCI-X)、PCI Express(PCIe) (例如,PCIe x1、x4、x8、x16、PCIe Mini卡、MiniPCI等)。在一些示例中,存储设备106可以直接耦接(例如,直接焊接)到主机设备104的母板。
存储设备106的接口114可以包括用于与主机设备104交换数据的数据总线和用于与主机设备104交换命令的控制总线中的一者或两者。接口 114可以根据任何合适的协议操作。例如,接口114可以根据以下协议中的一个或多个协议来操作:高级技术附件(ATA)(例如,串行ATA(SATA)和并行ATA(PATA))、光纤信道协议(FCP)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、PCI和PCIe、非易失性存储器express(NVMe)、 OpenCAPI、GenZ、高速缓存相干接口加速器(CCIX)、开放信道SSD (OCSSD)等。接口114的电连接(例如,数据总线、控制总线或两者)电连接到控制器108,从而提供主机设备104与控制器108之间的电连接,允许在主机设备104与控制器108之间交换数据。在一些示例中,接口114 的电连接还可以允许存储设备106从主机设备104接收电力。例如,如图1 所示,电源111可以经由接口114从主机设备104接收电力。
存储设备106包括NVM 110,该NVM 110可以包括多个存储器设备或介质单元。NVM110可以被配置成存储和/或检索数据。例如,NVM 110 的介质单元可以从控制器108接收数据和指示介质单元存储数据的消息。类似地,NVM 110的介质单元可以从控制器108接收指示介质单元检索数据的消息。在一些示例中,介质单元中的每个介质单元可以被称为管芯。在一些示例中,单个物理芯片可以包括多个管芯(即,多个介质单元)。在一些示例中,每个介质单元可以被配置为存储相对大量的数据(例如, 128MB、256MB、512MB、1GB、2GB、4GB、8GB、16GB、32GB、 64GB、128GB、256GB、512GB、1TB等)。
在一些示例中,NVM 110的每个介质单元可以包括任何类型的非易失性存储器设备,诸如闪存存储器设备、相变存储器(PCM)设备、电阻随机存取存储器(ReRAM)设备、磁阻随机存取存储器(MRAM)设备、铁电随机存取存储器(F-RAM)、全息存储器设备、以及任何其他类型的非易失性存储器设备。
NVM 110可以包括多个闪存存储器设备或介质单元。闪存存储器设备可以包括基于NAND或NOR的闪存存储器设备,并且可以基于包含在用于每个闪存存储器单元的晶体管的浮栅中的电荷来存储数据。在NAND闪存存储器设备中,闪存存储器设备可以被分成多个块,这些块可以被分成多个页面。特定存储器设备内的多个块中的每个块可以包括多个NAND单元。NAND单元的行可以使用字线来电连接以限定多个页面中的页面。多个页面中的每个页面中的相应单元可以电连接到相应位线。此外,NAND 闪存存储器设备可以是2D或3D设备,并且可以是单级单元(SLC)、多级单元(MLC)、三级单元(TLC)或四级单元(QLC)。控制器108可能以页面等级向NAND闪存存储器设备写入数据以及从NAND闪存存储器设备读取数据,并且以块等级从NAND闪存存储器设备擦除数据。
存储设备106包括电源111,其可以向存储设备106的一个或多个部件提供电力。当以标准模式操作时,电源111可以使用由外部设备诸如主机设备104提供的电力向一个或多个部件供电。例如,电源111可以使用经由接口114从主机设备104接收的电力向一个或多个部件供电。在一些示例中,电源111可以包括一个或多个电力存储部件,其被配置成当以关闭模式操作时向一个或多个部件供电,诸如在停止从外部设备接收电力的情况下。以这种方式,电源111可以用作机载备用电源。一个或多个电力存储部件的一些示例包括但不限于电容器、超级电容器、电池等。在一些示例中,可由一个或多个电力存储部件存储的电量可以是一个或多个电力存储部件的成本和/或尺寸(例如,面积/体积)的函数。换句话说,随着由一个或多个电力存储部件存储的电量增加,一个或多个电力存储部件的成本和/或尺寸也增加。
存储设备106还包括易失性存储器112,该易失性存储器可由控制器 108用来存储信息。易失性存储器112可以包括一个或多个易失性存储器设备。在一些示例中,控制器108可以使用易失性存储器112作为高速缓存。例如,控制器108可以将高速缓存的信息存储在易失性存储器112 中,直到高速缓存的信息被写入非易失性存储器110。如图1所示,易失性存储器112可以消耗从电源111接收的电力。易失性存储器112的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态 RAM(SRAM)和同步动态RAM(SDRAM(例如,DDR1、DDR2、 DDR3、DDR3L、LPDDR3、DDR4、LPDDR4等))。
存储设备106包括控制器108,其可以管理存储设备106的一个或多个操作。例如,控制器108可以管理从NVM 110读取数据和/或将数据写入该 NVM 110。在一些实施方案中,当存储设备106从主机设备104接收写入命令时,控制器108可以发起数据存储命令以将数据存储到该NVM 110并且监测数据存储命令的进度。控制器108可以确定存储系统100的至少一个操作特性,并且将至少一个操作特性存储到该NVM 110。在一些实施方案中,当存储设备106从主机设备104接收到写入命令时,控制器108在将数据发送至NVM 110之前将与写入命令相关联的数据暂时存储在内部存储器120中。
图2示出了根据另一个实施方案的包括耦接到主机设备204的存储设备206的存储系统200。存储系统200可以是图1的存储系统100、主机设备104和存储设备106。
存储设备206可以从主机设备204发送和接收命令和数据,并且包括命令处理器220。命令处理器220可为图1中的控制器108。命令处理器 220可以调度存储器设备访问(诸如NAND访问),并且可以在先前接收的命令需要写入相同存储器备之前执行对存储器设备的读取。命令处理器220耦接到一个或多个存储器设备228和命令获取222。一个或多个存储器设备228可以是NAND非易失性存储器设备。命令获取222耦接到提交队列仲裁224。提交队列仲裁224耦接到一个或多个提交队列头和尾指针 226。
主机设备204包括耦接到一个或多个处理单元或CPU应用程序234的一个或多个主机软件应用程序232。在一个实施方案中,软件应用程序232 具有有限的固态驱动器队列深度以便为系统200的每个用户导出延迟 QoS。主机设备204还包括没有相关QoS的操作系统(OS)或软件应用程序 240。CPU 234耦接到互连件236和主机DRAM 238。主机DRAM 238可以存储提交队列数据。互连件236耦接到存储设备206。互连件236可以与提交队列头和尾指针226以及命令获取222两者通信。
CPU 234生成一个或多个命令216以发送到存储设备206,并且可以经由命令获取信号244从存储设备206发送和接收命令。CPU 234还可以向存储设备206发送中断或门铃218,以向存储设备206通知一个或多个命令 216。CPU 234可以限制提交给存储设备206的数据队列深度。队列深度 (QD)是排队到存储设备206的命令的最大数量,而数据-QD是与用QD排队的命令相关联的数据量。在一个实施方案中,存储设备206的数据-QD 242等于存储设备206的带宽。数据-QD 242限于在其下存储设备206仍然可以维持期望的延迟QoS的最高等级。命令处理器220然后处理从主机设备204接收到的命令。
图3是示出了根据一个实施方案的操作存储设备以执行读取或写入命令的方法300的框图。方法300可以与存储系统100一起使用,该存储系统具有主机设备104和包括控制器108的存储设备106。方法300可以与存储系统200一起使用,该存储系统具有主机设备204和包括命令处理器220 的存储设备206。
方法300开始于操作350,其中主机设备将命令作为条目写入提交队列中。在操作350处,主机设备可以将一个或多个命令写入提交队列中。命令可以是读取命令或写入命令。主机设备可以包括一个或多个提交队列。
在操作352中,主机设备写入一个或多个更新的提交队列尾指针并且敲响门铃或发送中断信号以向存储设备通知或发信号告知准备好执行的新命令。门铃信号可以是图2的门铃218。如果存在多于一个提交队列,则主机可以写入更新的提交队列尾指针并为提交队列中的每个提交队列发送门铃或中断信号。在操作354中,响应于接收到门铃或中断信号,存储设备的控制器从一个或多个提交队列获取命令,并且该控制器接收该命令。
在操作356中,控制器处理命令并将与该命令相关联的数据写入或转移到主机设备存储器。该控制器一次可以处理多于一个命令。该控制器可以按提交顺序或按顺序处理一个或多个命令。处理写入命令可以包括:识别用于将与命令相关联的数据写入的分区,将该数据写入该分区的一个或多个LBA,以及推进该分区的写入指针以识别该分区内的下一个可用 LBA。
在操作358中,一旦该命令已被充分处理,控制器就将对应于执行的命令的完成条目写入主机设备的完成队列,并且移动或更新CQ头指针以指向新写入的完成条目。
在操作360中,控制器生成中断信号或门铃并将其发送到主机设备。中断信号指示该命令已被执行并且与该命令相关联的数据在该存储器设备中可用。中断信号进一步通知主机设备完成队列已准备好被读取或处理。
在操作362中,主机设备处理完成条目。在操作364中,主机设备将更新的CQ头指针写入存储设备并敲响门铃或向存储设备发送中断信号以释放完成条目。
图4A示出了根据一个实施方案的在存储设备400中使用的分区命名空间(ZNS)402视图。存储设备400可将ZNS 402视图呈现给主机设备。图 4B示出了根据一个实施方案的针对存储设备400的ZNS 402的状态图 450。存储设备400可为图1的存储系统100的存储设备106或图2的存储系统200的存储设备206。存储设备400可具有一个或多个ZNS 402,并且每个ZNS 402可具有不同的大小。除该一个或多个分区命名空间402之外,存储设备400还可包括一个或多个常规命名空间。此外,ZNS 402可以是用于SAS的分区块命令(ZBC)和/或用于SATA的分区设备ATA命令集 (ZAC)。
在存储设备400中,ZNS 402是可被格式化成逻辑块使得容量被分成多个分区406a-406n(统称为分区406)的NVM的数量。分区406中的每个分区包括介质单元或NVM 404的多个物理块或擦除块(现在示出),并且该擦除块中的每个擦除块与多个逻辑块(未示出)相关联。当控制器408 从诸如主机设备(未示出)或主机设备的提交队列接收命令时,控制器408可以从与ZNS 402的多个擦除块相关联的多个逻辑块读取数据以及将数据写入该多个逻辑块。该逻辑块中的每个逻辑块与唯一LBA或扇区相关联。
在一个实施方案中,NVM 404为NAND设备。该NAND设备包括一个或多个管芯。该一个或多个管芯中的每个管芯包括一个或多个平面。该一个或多个平面中的每个平面包括一个或多个擦除块。该一个或多个擦除块中的每个擦除块包括一条或多条字线(例如,256条字线)。该一条或多条字线中的每条字线可以在一个或多个页面中寻址。例如,MLC NAND管芯可使用上页面和下页面来达到整个字线的每个单元中的两个位(例如,每页16kB)。此外,可以以等于或小于完整页面的粒度访问每个页面。控制器可以频繁地访问用户数据粒度LBA大小为512字节的NAND。因此,如全文所提及的,NAND位置等于512字节的粒度。因此,MCLNAND的两个页面的LBA大小为512字节并且页面大小为16kB,这将导致大约每个字线16个NAND位置。然而,NAND位置大小不旨在是限制性的,并且仅用作非限制性示例。
当将数据写入擦除块时,在分区406内对应地更新一个或多个逻辑块,以跟踪数据在NVM 404内的位置。数据可一次写入一个分区406,直到分区406变满,或被写入多个分区406,使得多个分区406可部分变满。类似地,当将数据写入特定分区406时,数据可按NAND位置的顺序、逐页或逐字线地一次一个块地写入多个擦除块,直到移动到相邻块(即,写入第一擦除块直到在移动到第二擦除块之前第一擦除块变满),或者可按 NAND位置的顺序、逐页或逐字线地一次多个块地写入多个擦除块,来以更平行的方式部分填充每个块(即,在写入每个擦除块的第二NAND位置或页面之前写入每个擦除块的第一NAND位置或页面)。
分区406中的每个分区与分区开始逻辑块地址(ZSLBA)相关联。 ZSLBA是分区406中的第一可用LBA。例如,第一分区406a与ZaSLBA 相关联,第二分区406b与ZbSLBA相关联,第三分区406c与ZcSLBA相关联,第四分区406d与ZdSLBA相关联,并且第n分区406n(即最后一个分区)与ZnSLBA相关联。每个分区406由其ZSLBA标识,并且被配置为接收顺序写入(即,以接收写入命令的顺序来将数据写入NVM 110)。
当将数据写入分区406时,写入指针410被推进或更新以指向或指示分区406中的用于将数据写入的下一个可用块,以便跟踪下一个写入起始点(即,先前写入的完成点等于后续写入的起始点)。因此,写入指针410 指示对分区406的后续写入将在何处开始。后续写入命令是“分区附加”命令,其中与该后续写入命令相关联的数据在写入指针410指示为下一个起始点的位置处被附加到分区406。分区406内的LBA的排序列表可被存储用于写入排序。每个分区406可以具有其自身的写入指针410。因此,当接收到写入命令时,分区406由其ZSLBA标识,并且写入指针410确定在所识别的分区406内数据的写入开始的位置。
图4B示出了针对图4A的ZNS 402的状态图450。在状态图450中,每个分区可处于不同状态,诸如空的、活动的、满的或脱机。当分区为空的时,该分区不含数据(即,分区中的任何擦除块当前均未存储数据),并且写入指针位于ZSLBA(即,WP=0)处。一旦向分区调度写入或由主机发出分区开放命令后,空分区将切换到开放和活动分区。分区管理(ZM)命令可用于在分区开放和分区关闭状态(都是活动状态)之间移动分区。如果分区是活动的,则该分区包括可写入的开放块,并且可由ZM或控制器向主机提供活动状态下的推荐时间的描述。控制器可包括ZM。
术语“写入”包括当用户数据未填充所有可用字线时,在擦除块中的 0个或更多字线、擦除和/或擦除块中的部分填充字线上编程用户数据。术语“写入”还可包括由于以下原因而关闭分区:内部驱动器处理需要(因为误比特在开放的擦除块上更快地累积而导致的开放块数据保持问题),存储设备400由于资源限制(像太多开放分区要跟踪或者已发现的缺陷状态等等)而关闭分区,或者主机设备因为诸如没有更多数据要发送给驱动器、计算机关闭、主机上的错误处理、用于跟踪的有限主机资源等等问题而关闭分区。
活动分区可以是开放的或关闭的。开放分区是已准备好写入并具有当前已分配资源的空分区或部分填满分区。利用写入命令或分区附加命令从主机设备接收的数据可被编程到当前未填充先前数据的开放的擦除块。从主机设备中拉入的新数据或正在重定位的有效数据可以写入开放分区。有效数据可从一个分区(例如,第一分区402a)移动到另一个分区(例如,第三分区402c)以用于垃圾回收目的。已关闭分区是当前未从主机持续不断地接收写入的空分区或部分填满分区。分区从开放状态移动到关闭状态允许控制器408将资源重新分配给其他任务。这些任务可包括但不限于其他开放的分区、其他常规的非分区区域、或其他控制器需要。
在开放分区和关闭分区中,写入指针指向分区中位于ZSLBA和分区的最后LBA的末端之间的某个位置(即,WP>0)。活动分区可根据由ZM 进行的指定在开放和关闭状态之间切换,或者在将写入调度到分区时进行该切换。另外,ZM可重置活动分区以清除或擦除存储在分区中的数据,使得该分区切换回空分区。一旦活动分区已满,该分区就会切换到满的状态。满的分区是完全填充有数据的分区,并且没有用于写入数据的更多可用块(即,WP=分区容量(ZCAP))。仍可执行满的分区中存储的数据的读取命令。
ZM可重置满的分区,从而调度对存储在该分区中的数据的擦除,使得该分区切换回空分区。如果重置了满的分区,那么可能不会立即清除该分区的数据,尽管该分区可能标记为可供写入的空分区。但是,在切换到活动分区之前,必须擦除重置的分区。可在ZM重置和ZM开放之间的任何时间擦除分区。脱机分区是无法将数据写入的分区。脱机分区可处于满的状态、空状态或处于部分满的状态而不处于活动状态。
由于重置分区会清除存储在分区中的数据或调度对存储在分区中的数据的擦除,因此消除了对各个擦除块进行垃圾回收的需要,从而改善了存储设备400的整体垃圾回收过程。存储设备400可标记一个或多个擦除块以用于擦除。当将要形成新分区并且存储设备400预计ZM开放时,则可擦除被标记用于擦除的一个或多个擦除块。存储设备400还可在擦除该擦除块时决定和创建该分区的物理支持。因此,一旦新分区被开放并且擦除块被选择以形成分区,该擦除块将被擦除。此外,每次重置分区时,可选择分区406的LBA和写入指针410的新顺序,从而使分区406能够容忍以顺序方式接收命令。可任选地关闭写入指针410,使得命令可被写入为命令指示的任何起始LBA。
重新参见图4A,当控制器408发起或拉入写入命令时,控制器408可选择空分区406以将与命令相关联的数据写入,并且空分区406切换到活动分区406。如本文所用,控制器408发起、接收或拉入写入命令包括接收写入命令或直接存储器访问(DMA)读取该写入命令。该写入命令可以是用于写入新数据的命令,或者是将有效数据移动到另一个分区以用于垃圾回收目的的命令。控制器408被配置为从由主机设备填充的提交队列中 DMA读取或拉入新命令。
在刚切换到活动分区406的空分区406中,数据在ZSLBA处开始被写入分区406,因为写入指针410将与ZSLBA相关联的逻辑块指示为第一可用逻辑块。该数据可被写入一个或多个擦除块或针对分区406的物理位置而已分配的NAND位置。在将与写入命令相关联的数据写入分区406之后,写入指针410被更新为指向分区406中的下一个可用块,以跟踪下一个写入起始点(即,第一写入的完成点)。另选地,控制器408可选择用于将数据写入的活动分区。在活动分区中,将数据写入由写指针410指示为下一个可用块的逻辑块。
例如,控制器408可接收第一写入命令或第一分区附加命令或将该第一写入命令拉入到第三分区406c。主机按顺序识别分区406的哪个逻辑块用来写入与第一命令相关联的数据。然后将与第一命令相关联的数据写入第三分区406c中的如由写入指针410所指示的第一或下一个或多个可用 LBA,并且写入指针410被推进或更新以指向可用于主机写入的下一个可用LBA(即,WP>0)。如果控制器408接收第二写入命令或者将第二写入命令拉入到第三分区406c,则与第二写入命令相关联的数据被写入第三分区406c的由写入指针410识别的下一个或多个可用LBA。一旦将与第二命令相关联的数据写入第三分区406c,则写入指针410就再次推进或更新以指向可用于主机写入的下一个可用LBA。重置分区406c将写入指针410移动回到ZcSLBA(即,WP=0),并且分区406c切换到空分区。
图5示出了根据一个实施方案的由选自多个管芯502的多个擦除块504 构成的分区500。分区500可为图4A的ZNS 402的分区406。分区500可为图1的耦接到控制器108的NVM110的分区。
存储设备诸如图1的存储设备106或图2的存储设备206耦接到存储器设备,诸如图1的NVM 110,其包括多个管芯502。尽管示出了32个管芯502,但可包括任何数量的管芯。每个管芯502由一对平面506构成,并且每个平面506由多个擦除块504构成。
通过从32个管芯502中的30个管芯的每个平面506中选择擦除块504 并将对应于擦除块504的逻辑块地址分配或关联到分区500来形成分区500。在总共32个管芯502中,可使用30个管芯502来存储数据,一个 XOR管芯502a可用于存储XOR数据,并且一个被排除或跳过的管芯502b 由未在分区500中使用的最不希望的擦除块504构成。XOR管芯502a是可选的,并且在使用时提供管芯故障保护并使杠杆最大化。该跳过的管芯 502b的被排除的擦除块504保留在块的可用的空闲池中,使得可选择该被排除的擦除块以形成另一个分区,从而消除优化问题。
分区500可具有任何容量(ZCAP),诸如256MiB或512MiB。然而,分区500的一小部分可能不可访问而不能将数据写入,但仍可被读取,诸如分区500的存储XOR数据的部分和该跳过的管芯502b的一个或多个被排除的擦除块504。例如,如果分区500的总容量为512MiB,那么 ZCAP可能为470MiB,这是可用于将数据写入的容量,而42MiB不可用于写入数据。
图6A示出了根据一个实施方案的多个单平面管芯602,该多个单平面管芯各自包括用于形成多个分区600的多个擦除块604。图6B示出了表 650,其显示来自哪些管芯602的哪些擦除块604用于形成每个分区600。每个分区600可为图4A的ZNS 402的分区406或图5的分区500。每个分区600可为图1的耦接到控制器108的NVM 110的分区,并且NVM 110 可包括多个管芯602。另外,分区600可具有任何容量,诸如256MiB或 512MiB。然而,分区600的一小部分可能不可访问而不能将数据写入,但仍可被读取,诸如分区600的存储XOR数据的部分和一个或多个跳过的管芯(像图5的跳过的管芯502b)的被排除的擦除块。例如,如果分区600 的总容量为512MiB、470MiB,那么ZCAP可能为470MiB,这是可用于写入数据的容量,而42MiB不可用于写入数据。
在图6A-6B的实施方案中,每个分区6000-6003(统称为分区600)包括选自总共四个管芯602中的三个不同管芯602的三个擦除块604,以及可选的XOR管芯(未示出)。虽然仅示出了四个管芯602,但可利用任何数量的管芯602。另外,虽然每个管芯602显示为仅包括四个擦除块604,但管芯602可包括任意数量的擦除块604。此外,可利用双平面管芯602,诸如图5的管芯502,而不是单平面管芯602。
在图6A中,每个管芯6020-6023(统称为管芯602)包括多个擦除块 (EB)604。例如,第一管芯6020包括EB3、EB7、EB11和EB15,第二管芯6021包括EB4、EB8、EB12和EB16,第三管芯6022包括EB5、EB9、 EB13和EB17,并且第四管芯6023包括EB6、EB10、EB14和EB18。擦除块604中的每个擦除块位于擦除块604的空闲池(未示出)中,直到擦除块被选择用于分区形成。擦除块604的空闲池是当前未在分区600中使用的所有未选择的或可用的擦除块604的池。
每个擦除块604被示出为具有估计特定擦除块604的年龄的数字。例如,EB3的估计年龄为0,而EB6的估计年龄为2。当选择擦除块604以形成分区600时,首先选择具有最低估计年龄的擦除块604(即,最年轻的擦除块)。该最年轻的擦除块604可以是目前具有最少的程序擦除循环数、具有最大估计耐久性和/或具有最大估计保留的擦除块604。可指示年轻擦除块604的其他因素包括数据的当前误比特率(BER)、读取速度、编程速度、数据保留定量、读取/编程干扰、最近最多使用以及最近最少使用。可组合或聚合擦除块604的一个或多个年龄因素以确定估计年龄。相似地,当选择擦除块604以形成分区600时,可估计管芯602的年龄,并且擦除块604可选自最年轻的管芯602。每次为分区600选择擦除块604时,就从空闲池中移除擦除块604。
表650示出了多个分区6000-6003。分区600中的每个分区可以是为了切换到活动分区而形成的空分区。为了形成每个分区600,控制器或ZM被配置为比较每个管芯602内的第一可用擦除块604的估计年龄,以便选择最年轻的擦除块604。控制器或ZM为分区600选择三个最年轻的擦除块 604,同时排除最年老的擦除块,从而允许擦除块604中的每个擦除块的磨损水平被减轻并均匀地分布在块之间。
为了形成第一分区6000,将管芯602中的每个管芯中的第一可用擦除块604中的每个第一可用擦除块的估计年龄彼此比较,并且跳过具有最大估计年龄的擦除块604。这样,第一分区6000由以下擦除块构成:来自第一管芯6020的估计年龄为0的EB3,来自第二管芯6021的估计年龄为0的 EB4,以及来自第三管芯6022的具有估计年龄为1的EB5。由于第四管芯 6023的第一可用擦除块604(EB6)具有为2的估计年龄,其大于第一、第二和第三管芯6020-6022中的第一可用擦除块604(例如EB3、EB4、EB5) 的估计年龄,因此EB6被排除或跳过,并且针对第一分区6000不从第四管芯6023选择擦除块604。因此,第四管芯6023被排除向第一分区6000提供擦除块。EB6保留在用于第四芯6023的擦除块的空闲池中,并且可被选择用于形成另一个分区600以消除优化问题。将EB6留在空闲池中使得EB6 能够恢复,并且还使得每个管芯602中的每个擦除块604的磨损水平能够减轻或尽可能均匀地分布。
由于选择EB3、EB4和EB5来形成第一分区6000,因此EB3、EB4和 EB5在用于第一、第二和第三管芯6020-6022的块的空闲池中不再可用。这样,估计年龄为0的EB7为来自第一管芯6020的第一可用擦除块604,估计年龄为0的EB8为来自第二管芯6021的第一可用擦除块604,估计年龄为1的EB9为来自第三管芯6022的第一可用擦除块604,并且估计年龄为 2的EB6为来自第四管芯6023的第一可用擦除块604。再次选择三个最年轻的第一可用擦除块604以形成第二分区6001,同时跳过最年老的擦除块 604。
因此,第二分区6001由来自第一管芯6020的EB7、来自第二管芯6021的EB8以及来自第三管芯6022的EB9构成。由于第四管芯6023的第一可用擦除块604(EB6)具有为2的估计年龄,其大于第一、第二和第三管芯 6020-6022中的第一可用擦除块604(例如EB7、EB8、EB9)的估计年龄,因此EB6被再一次排除或跳过,并且针对第二分区6001不从第四管芯6023选择擦除块604。因此,第四管芯6023被排除向第二分区6001提供擦除块。同样,EB6保留在用于第四芯6023的擦除块的空闲池中,并且可被选择用于形成另一个分区600以消除优化问题。
类似地,第三分区6002由以下擦除块构成:来自第一管芯6020的估计年龄为0的EB11,来自第三管芯6022的估计年龄为2的EB13,以及来自第四管芯6023的估计年龄为2的EB6。由于第二管芯6021的第一可用擦除块604(EB12)具有为3的估计年龄,其大于第一、第三和第四管芯 6020、6022、6023中的第一可用擦除块604(例如EB11、EB13、EB6)的估计年龄,因此EB12被排除或跳过,并且针对第三分区6002不从第二管芯6021选择擦除块604。因此,第二管芯6021被排除向第三分区6002提供擦除块。EB12保留在用于第二管芯6021的擦除块的空闲池中,并且可被选择用于形成另一个分区600以消除优化问题。
在形成第三分区6002之后,估计年龄为1的EB15为来自第一管芯 6020的第一可用擦除块604,估计年龄为3的EB12为来自第二管芯6021的第一可用擦除块604,估计年龄为2的EB17为来自第三管芯6022的第一可用擦除块604,并且估计年龄为3的EB10为来自第四管芯6023的第一可用擦除块604。为了形成第四分区6003,从第一管芯6020选择EB15,从第三管芯6022选择EB17,以及选择来自第二管芯6021的EB12或者选择来自第四管芯6023的EB10。由于第二管芯6021的第一可用擦除块604(EB12) 和第四管芯6023的第一可用擦除块(EB10)具有相同的估计年龄3,因此可以选择EB12或EB10以形成第四分区6003
然而,在其中一个或多个管芯602的第一可用擦除块604具有相同的估计年龄(例如,EB12和EB10)的实施方案中,从具有擦除块604的更大可用空闲池的管芯602选择擦除块604。因此,在第四分区6003的示例中,第二管芯6021在空闲池中具有两个擦除块604(例如,EB12和EB 16),而第四管芯6023在空闲池中具有三个擦除块604(例如,EB10、 EB14和EB18)。因此,第二管芯6021被排除向第四分区6003提供擦除块。同样,EB12保留在用于第二管芯6021的擦除块的空闲池中,并且可被选择用于形成另一个分区600以消除优化问题。
另外,当一个或多个管芯602的第一可用擦除块604具有相同的估计年龄时,可考虑其他因素以防止始终选择首先遇到的管芯602(例如,第二管芯6021)。例如,可选择具有最大估计保留的擦除块604,可针对最多拾取的管芯602对最少拾取的管芯602的增量设置限制,或者可改变分区形成的起始点(即,以与第一管芯6020不同的管芯602开始)。
每次将分区600擦除数据,切换至擦除状态,然后切换到活动状态时,可根据上述方法用新的擦除块604来重新形成分区600。在擦除分区 600并切换至擦除状态时,将分区600的擦除块604返回到每个管芯602中的擦除块604的空闲池中。当返回到空闲池时,可重新估计擦除块604中的每个擦除块的年龄。
图7A-7C示出了根据本文公开的实施方案的分别由选自多个管芯702 的多个擦除块704构成的分区700、750、770。分区700、750、770中的每个分区可单独地为图4A的ZNS 402的分区406或图6A-6B的分区600。每个分区700、750、770可为图1的耦接到控制器108的NVM110的分区,并且NVM 110可包括多个管芯702。另外,可如图6A-6B中所述那样来形成分区700、750、770中的每个分区,其中控制器或分区管理(ZM)被配置为比较每个管芯702内的第一可用擦除块704的估计年龄,以便选择最年轻的擦除块704。
尽管管芯702中的每个管芯被示为具有两个平面706,但管芯702可包括一个或多个平面706。控制器被配置为将多个管芯702中的每个管芯702 的每个平面706中的第一可用擦除块704的估计年龄彼此进行比较,从一个或多个管芯702中选择一个或多个平面706,以及基于所估计年龄从所述一个或多个平面706选择一个或多个擦除块704以形成分区700、750、 770。将来自管芯(即,跳过的管芯702b)的至少一个平面706的至少一个擦除块704排除不向分区提供一个或多个擦除块704。
此外,每个分区700、750、770可具有任何容量,诸如256MiB或 512MiB。然而,每个分区700、750、770的一小部分可能不可访问而不能将数据写入,但仍可被读取,诸如分区700、750、770的存储XOR数据的部分和来自该跳过的管芯702b的被排除的擦除块704。例如,如果分区 700、750、770的总容量为512MiB,那么470MiB可用于写入数据,而 42MiB不可用于写入数据。
图7A示出了由包括16个管芯702的存储器设备形成的示例性分区 700。在16个管芯702中,有14个管芯702用于存储数据,一个XOR管芯702a用于XOR数据,并且包括最年老或最差擦除块的一个跳过的管芯 702b不包括在分区700中。该跳过的管芯702b的一个或多个被排除的擦除块704保留在空闲池中,并且可被选择以形成另一个分区以消除优化问题。
图7B示出了由包括8个管芯702的存储器设备形成的另一示例性分区 750。在8个管芯702中,有6个管芯702用于存储数据,一个XOR管芯 702a用于XOR数据,并且包括最年老或最差擦除块的一个跳过的管芯 702b不包括在分区750中。该跳过的管芯702b的一个或多个被排除的擦除块704保留在空闲池中,并且可被选择以形成另一个分区以消除优化问题。
图7C示出了由包括16个管芯702的存储器设备形成的再一个示例性分区770。在16个管芯702中,有11个管芯702用于存储数据,一个 XOR管芯702a用于XOR数据,并且包括最年老或最差擦除块的四个跳过的管芯702b不包括在分区770中。尽管图6A-6B描述了跳过来自一个管芯702的仅一个擦除块704,但可跳过来自多个管芯702的多个擦除块704。该跳过的管芯702b的一个或多个被排除的擦除块704保留在空闲池中,并且可被选择以形成另一个分区以消除优化问题。
通过在形成分区时排除具有最大估计年龄、最大程序擦除循环数或最小估计保留量的擦除块,可尽可能均匀地分布所有擦除块的磨损水平同时消除优化问题。被排除或跳过的一个或多个擦除块可在使用最年轻的擦除块时恢复,从而使每个擦除块之间的年龄差距最小化并防止一个或多个擦除块经历不成比例的程序擦除循环量。这样,擦除块中的每个擦除块的磨损水平将被减轻,从而使变得不可用或损坏的擦除块的数量最小化。
在一个实施方案中,存储设备包括介质单元。所述介质单元的容量被分成多个分区。所述介质单元包括多个管芯,所述多个管芯中的每个管芯包括多个擦除块。所述存储设备还包括耦接到所述介质单元的控制器,所述控制器被配置为将所述多个管芯中的每个管芯中的第一可用擦除块的估计年龄彼此进行比较,并基于所述估计年龄从所述多个管芯中的一个或多个管芯选择所述第一可用擦除块中的一个或多个第一可用擦除块以形成第一分区。来自所述多个管芯中的至少一个管芯的至少一个第一可用擦除块被排除在所述第一分区之外。
控制器还可被配置为重复将多个管芯中的每个管芯中的第一可用擦除块的估计年龄彼此进行比较,以及从该多个管芯的中的一个或多个管芯选择第一可用擦除块中的一个或多个第一可用擦除块以形成第二分区,其中来自该多个管芯中的至少一个管芯的至少一个第一可用擦除块被排除在第二分区之外。排除在所述第一分区之外的所述至少一个第一可用擦除块可以与排除在所述第二分区之外的所述至少一个第一可用擦除块相同。排除在所述第一分区之外的所述至少一个第一可用擦除块可以是与排除在所述第二分区之外的所述至少一个第一可用擦除块不同的擦除块。排除在所述第一分区之外的所述至少一个管芯的所述至少一个第一可用擦除块可具有比被选择用于形成所述第一分区的一个或多个擦除块更大的估计年龄。所述第一分区还可包括用于存储XOR数据的至少一个XOR擦除块。排除在所述第一分区之外的所述至少一个管芯的至少一个第一可用擦除块可保留在所述至少一个管芯的空闲池中。
在另一个实施方案中,存储设备包括介质单元。所述介质单元的容量被分成多个分区。所述介质单元包括多个管芯,所述多个管芯中的每个管芯包括多个擦除块。所述存储设备还包括耦接到所述介质单元的控制器,所述控制器被配置为将第一分区从空状态切换到活动状态,将所述多个管芯中的每个管芯的空闲池中的第一可用擦除块的估计年龄彼此进行比较,以及基于所述估计年龄从所述多个管芯中的一个或多个管芯的所述空闲池移除所比较的第一可用擦除块中的一个或多个第一擦除块以形成所述第一分区。来自所述多个管芯中的至少一个管芯的至少一个第一可用擦除块被排除在所述第一分区之外以保留在所述至少一个管芯的所述空闲池中。所述存储设备被进一步配置为将第二分区从所述空状态切换到所述活动状态,将所述多个管芯中的每个管芯中的所述第一可用擦除块的所述估计年龄彼此进行比较,以及基于所述估计年龄从所述多个管芯中的一个或多个管芯移除所比较的第一可用擦除块中的一个或多个第二擦除块以形成所述第二分区。来自所述多个管芯中的至少一个管芯的至少一个第一可用擦除块被排除在所述第二分区之外以保持在所述至少一个管芯的所述空闲池中。
排除在所述第一分区之外的所述至少一个第一可用擦除块可以是与排除在所述第二分区之外的所述至少一个第一可用擦除块不同的擦除块。排除在所述第一分区之外的所述至少一个管芯的所述至少一个第一可用擦除块可具有比被移除以形成所述第一分区的一个或多个第一擦除块更大的估计年龄。排除在所述第一分区之外的所述至少一个管芯的所述至少一个第一可用擦除块可能已经经历比被移除以形成所述第一分区的所述一个或多个第一擦除块更大的估计程序擦除循环数。排除在所述第二分区之外的所述至少一个管芯的所述至少一个第一可用擦除块可能已经经历比被移除以形成所述第二分区的所述一个或多个第二擦除块更大的估计程序擦除循环数。
控制器还可被配置为确定第一可用擦除块中的一个或多个第一可用擦除块具有相同的估计年龄,对包括具有相同的估计年龄的一个或多个第一可用擦除块的管芯中的每个管芯的空闲池的大小进行比较,以及基于空闲池的大小排除具有相同估计年龄的该一个或多个第一可用擦除块中的擦除块。被排除的擦除块可设置在具有最小大小的空闲池的管芯中。
在另一个实施方案中,一种形成存储设备的一个或多个分区的方法包括将第一分区从空状态切换到活动状态。所述存储设备包括多个管芯,并且所述多个管芯中的每个管芯包括多个擦除块。所述方法还包括将所述多个管芯中的每个管芯中的第一可用擦除块的估计年龄彼此进行比较,并基于所述估计年龄从所述多个管芯中的一个或多个管芯选择所述第一可用擦除块中的一个或多个第一可用擦除块以形成所述第一分区。来自所述多个管芯中的至少一个管芯的至少一个第一可用擦除块被排除在所述第一分区之外。
该方法还可包括确定第一可用擦除块中的一个或多个第一可用擦除块具有相同的估计年龄,以及基于擦除块的估计保留或误比特率来排除具有相同的估计年龄的该一个或多个第一可用擦除块中的擦除块。所述第一可用擦除块中的被选择用于形成所述第一分区的一个或多个第一可用擦除块可从所述一个或多个管芯的空闲池移除。排除在所述第一分区之外的所述至少一个管芯的至少一个第一可用擦除块可保留在所述至少一个管芯的擦除块的空闲池中。排除在所述第一分区之外的所述至少一个管芯的所述至少一个第一可用擦除块可具有比被选择用于形成所述第一分区的所述一个或多个第一可用擦除块更大的估计年龄或更大的估计程序擦除循环量。将多个管芯中的每个管芯中的第一可用擦除块的估计年龄彼此进行比较可还包括将多个管芯中的每个管芯的空闲池的大小或擦除块彼此进行比较。
虽然前述内容针对本公开的实施方案,但是可以在不脱离本公开的基本范围的情况下设想本公开的其他和另外的实施方案,并且本公开的范围由所附权利要求书确定。

Claims (20)

1.一种存储设备,包括:
介质单元,其中所述介质单元的容量被分成多个分区,并且其中所述介质单元包括多个管芯,所述多个管芯中的每个管芯包括多个擦除块;和
控制器,所述控制器耦接到所述介质单元,所述控制器被配置为:
将所述多个管芯中的每个管芯中的第一可用擦除块的估计年龄彼此进行比较;以及
基于所述估计年龄从所述多个管芯中的一个或多个管芯选择所述第一可用擦除块中的一个或多个第一可用擦除块以形成第一分区,其中来自所述多个管芯中的至少一个管芯的至少一个第一可用擦除块被排除在所述第一分区之外。
2.根据权利要求1所述的存储设备,其中所述控制器被进一步配置为:
重复将所述多个管芯中的每个管芯中的所述第一可用擦除块的所述估计年龄彼此进行比较;以及
基于所述估计年龄从所述多个管芯中的一个或多个管芯选择所述第一可用擦除块中的一个或多个第一可用擦除块以形成第二分区,其中来自所述多个管芯中的至少一个管芯的至少一个第一可用擦除块被排除在所述第二分区之外。
3.根据权利要求2所述的存储设备,其中排除在所述第一分区之外的所述至少一个第一可用擦除块与排除在所述第二分区之外的至少一个第一可用擦除块相同。
4.根据权利要求2所述的存储设备,其中排除在所述第一分区之外的所述至少一个第一可用擦除块是与排除在所述第二分区之外的所述至少一个第一可用擦除块不同的擦除块。
5.根据权利要求1所述的存储设备,其中排除在所述第一分区之外的所述至少一个管芯的所述至少一个第一可用擦除块具有比被选择用于形成所述第一分区的所述一个或多个第一可用擦除块更大的估计年龄。
6.根据权利要求1所述的存储设备,其中所述第一分区还包括用于存储XOR数据的至少一个XOR擦除块。
7.根据权利要求1所述的存储设备,其中排除在所述第一分区之外的所述至少一个管芯的所述至少一个第一可用擦除块保留在所述至少一个管芯的空闲池中。
8.一种存储设备,包括:
介质单元,其中所述介质单元的容量被分成多个分区,并且其中所述介质单元包括多个管芯,所述多个管芯中的每个管芯包括多个擦除块;和
控制器,所述控制器耦接到所述介质单元,所述控制器被配置为:
将第一分区从空状态切换至活动状态;
将所述多个管芯中的每个管芯的空闲池中的第一可用擦除块的估计年龄彼此进行比较;
基于所述估计年龄从所述多个管芯中的一个或多个管芯的所述空闲池移除所比较的第一可用擦除块中的一个或多个第一擦除块以形成所述第一分区,其中来自所述多个管芯中的至少一个管芯的至少一个第一可用擦除块被排除在所述第一分区之外以保留在所述至少一个管芯的所述空闲池中;
将第二分区从所述空状态切换至所述活动状态;
将所述多个管芯中的每个管芯中的所述第一可用擦除块的所述估计年龄彼此进行比较;以及
基于所述估计年龄从所述多个管芯中的一个或多个管芯移除所比较的第一可用擦除块中的一个或多个第二擦除块以形成所述第二分区,其中来自所述多个管芯中的至少一个管芯的至少一个第一可用擦除块被排除在所述第二分区之外以保留在所述至少一个管芯的所述空闲池中。
9.根据权利要求8所述的存储设备,其中排除在所述第一分区之外的所述至少一个第一可用擦除块是与排除在所述第二分区之外的所述至少一个第一可用擦除块不同的擦除块。
10.根据权利要求8所述的存储设备,其中排除在所述第一分区之外的所述至少一个管芯的所述至少一个第一可用擦除块具有比被移除以形成所述第一分区的所述一个或多个第一擦除块更大的估计年龄。
11.根据权利要求8所述的存储设备,其中排除在所述第一分区之外的所述至少一个管芯的所述至少一个第一可用擦除块已经经历比被移除以形成所述第一分区的所述一个或多个第一擦除块更大的估计程序擦除循环数。
12.根据权利要求8所述的存储设备,其中排除在所述第二分区之外的所述至少一个管芯的所述至少一个第一可用擦除块已经经历比被移除以形成所述第二分区的所述一个或多个第二擦除块更大的估计程序擦除循环数。
13.根据权利要求8所述的存储设备,其中所述控制器被进一步配置为:
确定所述第一可用擦除块中的一个或多个第一可用擦除块具有相同的估计年龄;
将包括具有所述相同的估计年龄的所述一个或多个第一可用擦除块的所述管芯中的每个管芯的所述空闲池的大小进行比较;以及
基于所述空闲池的所述大小,排除具有所述相同的估计年龄的所述一个或多个第一可用擦除块中的擦除块。
14.根据权利要求13所述的存储设备,其中所排除的擦除块设置在具有最小大小的空闲池的管芯中。
15.一种形成存储设备的一个或多个分区的方法,包括:
将第一分区从空状态切换至活动状态,其中所述存储设备包括多个管芯,并且所述多个管芯中的每个管芯包括多个擦除块;
将所述多个管芯中的每个管芯中的第一可用擦除块的估计年龄彼此进行比较;以及
基于所述估计年龄从所述多个管芯中的一个或多个管芯选择所述第一可用擦除块中的一个或多个第一可用擦除块以形成所述第一分区,其中来自所述多个管芯中的至少一个管芯的至少一个第一可用擦除块被排除在所述第一分区之外。
16.根据权利要求15所述的方法,还包括:
确定所述第一可用擦除块中的一个或多个第一可用擦除块具有所述相同的估计年龄;以及
基于所述擦除块的估计保留或误比特率来排除具有所述相同的估计年龄的所述一个或多个第一可用擦除块中的擦除块。
17.根据权利要求15所述的方法,其中所述第一可用擦除块中的被选择用于形成所述第一分区的所述一个或多个第一可用擦除块从所述一个或多个管芯的空闲池移除。
18.根据权利要求15所述的方法,其中排除在所述第一分区之外的所述至少一个管芯的所述至少一个第一可用擦除块保留在所述至少一个管芯的擦除块的空闲池中。
19.根据权利要求15所述的方法,其中排除在所述第一分区之外的所述至少一个管芯的所述至少一个第一可用擦除块具有比被选择用于形成所述第一分区的所述一个或多个第一可用擦除块更大的估计年龄或更大的估计程序擦除循环量。
20.根据权利要求15所述的方法,其中将所述多个管芯中的每个管芯中的所述第一可用擦除块的所述估计年龄彼此进行比较还包括将所述多个管芯中的每个管芯的空闲池的大小或擦除块彼此进行比较。
CN202010215411.8A 2019-06-28 2020-03-24 针对分区命名空间的分区形成 Pending CN112148627A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962868785P 2019-06-28 2019-06-28
US62/868,785 2019-06-28

Publications (1)

Publication Number Publication Date
CN112148627A true CN112148627A (zh) 2020-12-29

Family

ID=73747497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010215411.8A Pending CN112148627A (zh) 2019-06-28 2020-03-24 针对分区命名空间的分区形成

Country Status (4)

Country Link
US (1) US11416161B2 (zh)
KR (1) KR102370760B1 (zh)
CN (1) CN112148627A (zh)
DE (1) DE102020107659A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117369729A (zh) * 2023-12-04 2024-01-09 武汉麓谷科技有限公司 一种zns ssd的附加写入实现方法

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11402999B2 (en) * 2019-12-03 2022-08-02 Burlywood, Inc. Adaptive wear leveling using multiple partitions
US11797433B2 (en) * 2019-12-20 2023-10-24 Sk Hynix Nand Product Solutions Corp. Zoned namespace with zone grouping
US11249896B2 (en) * 2019-12-20 2022-02-15 Micron Technology, Inc. Logical-to-physical mapping of data groups with data locality
KR20210125774A (ko) * 2020-04-09 2021-10-19 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
US11789611B2 (en) 2020-04-24 2023-10-17 Netapp, Inc. Methods for handling input-output operations in zoned storage systems and devices thereof
TWI775268B (zh) 2021-01-07 2022-08-21 慧榮科技股份有限公司 儲存裝置、快閃記憶體控制器及其控制方法
CN117120985A (zh) * 2021-02-04 2023-11-24 华为技术有限公司 用于存储设备应用的基于nvm主机控制器接口规范的持久性日志记录
US11340987B1 (en) 2021-03-04 2022-05-24 Netapp, Inc. Methods and systems for raid protection in zoned solid-state drives
US11630593B2 (en) * 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11816345B2 (en) * 2021-03-29 2023-11-14 Micron Technology, Inc. Zone block staging component for a memory subsystem with zoned namespace
JP2022171208A (ja) 2021-04-30 2022-11-11 キオクシア株式会社 メモリシステムおよび制御方法
US11797377B2 (en) 2021-10-05 2023-10-24 Netapp, Inc. Efficient parity determination in zoned solid-state drives of a storage system
US11803329B2 (en) 2021-11-22 2023-10-31 Netapp, Inc. Methods and systems for processing write requests in a storage system
US11687263B2 (en) 2021-12-01 2023-06-27 Western Digital Technologies, Inc. Full die recovery in ZNS SSD
WO2023113944A1 (en) * 2021-12-16 2023-06-22 Netapp, Inc. Scalable solid-state storage system and methods thereof
US11816359B2 (en) 2021-12-16 2023-11-14 Netapp, Inc. Scalable solid-state storage system and methods thereof
US20240111456A1 (en) * 2022-10-02 2024-04-04 Silicon Motion, Inc. Storage device controller and method capable of allowing incoming out-of-sequence write command signals

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130326117A1 (en) * 2012-06-04 2013-12-05 Fusion-Io, Inc. Apparatus, system, and method for grouping data stored on an array of solid-state storage elements
US20150046635A1 (en) * 2013-08-07 2015-02-12 SMART Storage Systems, Inc. Electronic System with Storage Drive Life Estimation Mechanism and Method of Operation Thereof
US20150043277A1 (en) * 2013-08-07 2015-02-12 SMART Storage Systems, Inc. Data Storage System with Dynamic Erase Block Grouping Mechanism and Method of Operation Thereof
CN109117084A (zh) * 2017-06-26 2019-01-01 西部数据技术公司 将逻辑储存块动态地重新调整尺寸
CN109508152A (zh) * 2014-09-26 2019-03-22 西部数据技术公司 一种用于逻辑存储管理的多级方案

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144516A1 (en) 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units
US20060282610A1 (en) 2005-06-08 2006-12-14 M-Systems Flash Disk Pioneers Ltd. Flash memory with programmable endurance
EP2888666B1 (en) 2012-08-23 2016-10-12 Apple Inc. Host-assisted compaction of memory blocks
US20150046664A1 (en) * 2013-08-08 2015-02-12 SMART Storage Systems, Inc. Storage Control System with Settings Adjustment Mechanism and Method of Operation Thereof
JP2019020788A (ja) 2017-07-11 2019-02-07 東芝メモリ株式会社 メモリシステムおよび制御方法
US11294594B2 (en) 2017-08-07 2022-04-05 Kioxia Corporation SSD architecture supporting low latency operation
KR20190063054A (ko) 2017-11-29 2019-06-07 삼성전자주식회사 메모리 시스템 및 이의 동작 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130326117A1 (en) * 2012-06-04 2013-12-05 Fusion-Io, Inc. Apparatus, system, and method for grouping data stored on an array of solid-state storage elements
US20150046635A1 (en) * 2013-08-07 2015-02-12 SMART Storage Systems, Inc. Electronic System with Storage Drive Life Estimation Mechanism and Method of Operation Thereof
US20150043277A1 (en) * 2013-08-07 2015-02-12 SMART Storage Systems, Inc. Data Storage System with Dynamic Erase Block Grouping Mechanism and Method of Operation Thereof
CN109508152A (zh) * 2014-09-26 2019-03-22 西部数据技术公司 一种用于逻辑存储管理的多级方案
CN109117084A (zh) * 2017-06-26 2019-01-01 西部数据技术公司 将逻辑储存块动态地重新调整尺寸

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117369729A (zh) * 2023-12-04 2024-01-09 武汉麓谷科技有限公司 一种zns ssd的附加写入实现方法
CN117369729B (zh) * 2023-12-04 2024-02-06 武汉麓谷科技有限公司 一种zns ssd的附加写入实现方法

Also Published As

Publication number Publication date
US11416161B2 (en) 2022-08-16
DE102020107659A1 (de) 2020-12-31
KR20210001898A (ko) 2021-01-06
KR102370760B1 (ko) 2022-03-04
US20200409589A1 (en) 2020-12-31

Similar Documents

Publication Publication Date Title
KR102370760B1 (ko) 존 네임스페이스에 대한 존 형성
CN113196226B (zh) 固态驱动器中的分区命名空间
US11126378B1 (en) Rate limit on the transitions of zones to open
KR102569783B1 (ko) 비순차적 구역 네임스페이스들
US11520660B2 (en) Storage devices hiding parity swapping behavior
US20200409601A1 (en) Hold of Write Commands in Zoned Namespaces
US11500727B2 (en) ZNS parity swapping to DRAM
US11436153B2 (en) Moving change log tables to align to zones
CN117043753A (zh) Zns设备中的不同写入优先级
US11960753B2 (en) Solution for super device imbalance in ZNS SSD
CN114730250A (zh) 根据存储设备中的分区对读取命令加权
US11853565B2 (en) Support higher number of active zones in ZNS SSD
US11656984B2 (en) Keeping zones open with intermediate padding
WO2023101719A1 (en) Full die recovery in zns ssd
US11409459B2 (en) Data parking for SSDs with zones
CN114730605A (zh) 用于存储设备的加权读取命令和开放块定时器

Legal Events

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