CN112783425A - 将耐久性组应用于分区命名空间 - Google Patents
将耐久性组应用于分区命名空间 Download PDFInfo
- Publication number
- CN112783425A CN112783425A CN202010546253.4A CN202010546253A CN112783425A CN 112783425 A CN112783425 A CN 112783425A CN 202010546253 A CN202010546253 A CN 202010546253A CN 112783425 A CN112783425 A CN 112783425A
- Authority
- CN
- China
- Prior art keywords
- ssd
- die
- data
- blocks
- zone
- 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.)
- Granted
Links
- 238000005192 partition Methods 0.000 claims abstract description 29
- 238000000034 method Methods 0.000 claims description 37
- 238000012545 processing Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 14
- 230000000007 visual effect Effects 0.000 claims description 8
- 239000007787 solid Substances 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 abstract description 5
- 230000003321 amplification Effects 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 9
- 238000003199 nucleic acid amplification method Methods 0.000 description 9
- 239000000470 constituent Substances 0.000 description 7
- 238000013507 mapping Methods 0.000 description 7
- 238000002955 isolation Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000000926 separation method Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000012005 ligant binding assay Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 235000012431 wafers Nutrition 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 241000053227 Themus Species 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/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/0614—Improving the reliability of 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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/7202—Allocation control and policies
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及将耐久性组应用于分区命名空间。EG可与ZNS组合以提供对如何、在何处以及在何种配置下将数据存储到SSD上的各种用户定义的区段的更大控制。在实施方案中,这样将控制功能暴露于SSD主机向数据中心和其它超大规模用户及其客户端提供了改善的性能。在实施方案中,可将较大的SSD划分成区的组以供主机设备更好地使用。在实施方案中,组可包括例如各自包含限定数量的区的EG、集和MU。在一个或多个实施方案中,主机可使用不同EG来访问设备,并由此管理SSD中的管芯或信道冲突。
Description
相关申请的交叉引用
本申请要求2019年11月5日提交的美国临时专利申请序列号62/930,897的权益,该美国临时专利申请以引用方式并入本文。
背景技术
技术领域
本公开的实施方案总体涉及非易失性存储器管理和配置,并且更具体地涉及通过将耐久性组与分区命名空间(ZNS)一起应用来配置固态设备(SSD)。
相关领域的描述
非易失性存储器(NVM)集和耐久性组(EG)是用于管理大于单个非易失性存储器标准(NVMe)1命名空间的存储池的两个最近开发的组织构造。应注意,EG是NVM集的集合,其由命名空间和未分配的存储装置组成。出于磨损均衡的目的,每个EG包括单独存储池。它们具有其自身的专用备用块池,并且通常,驱动器报告每个EG的单独磨损统计值。在具有多于一个EG的驱动器上,可以完全磨损一个EG并使其保持只读,而其它耐久性组保持可用。
因此,驱动器可以被设计来将特定的NAND管芯或信道映射到不同NVM集或耐久性组,以实质上将其分成多个相对独立的驱动器。这不仅可提供磨损的分离,而且可提供刚性分配性能。例如,云托管提供商可以将来自单独客户的虚拟机放在不同NVM集或EG上,以确保来自一个客户的繁忙工作负载不影响另一个客户所经历的延迟。因此,EG和NVM集通常力图用于数据中心和其它超大规模上下文中。ZNS(NVMe工作组中的技术方案)是允许SSD的区被顺序编程的新接口标准。
写入放大是与闪存存储器和固态驱动器(SSD)相关联的不期望的现象,其中物理写入存储介质的信息的实际量是旨在写入的逻辑量的倍数。因为闪存存储器在其可被重写之前必须用(当与写入操作相比时)更粗粒度的擦除操作进行擦除,所以执行这些操作的过程导致移动(或重写)用户数据和元数据多于一次。因此,重写一些数据需要:读取、更新闪存的已使用的部分并将其写入新位置,以及在先前已在某个时间点使用新位置时首先擦除该新位置。由于闪存工作的方式,必须擦除和重写闪存的比新数据量实际所需更大的部分。这种倍增效应增加了在SSD的使用期内所需的写入次数,这缩短了其能够可靠地操作的时间。增加的写入还消耗带宽。
发明内容
在实施方案中,EG可与ZNS组合以提供对如何、在何处以及在何种配置下将数据存储到SSD上的各种用户定义的区段的更大控制。在实施方案中,这样将控制功能暴露于SSD主机(先前仅由设备控制器处理)向数据中心和其它超大规模用户及其客户端提供了改善的性能。因此,在实施方案中,可将较大的驱动器划分成区的组以供主机设备更好地使用。在实施方案中,组可包括例如各自包含限定的一组区的NVMe EG和NVM集。另外,在实施方案中,主机可以使用不同EG来访问设备,并由此管理SSD中的管芯或信道冲突。
在一个实施方案中,一种配置固态设备(SSD)的方法包括:将所述SSD的至少一部分配置为分区命名空间;将所述分区命名空间划分成一个或多个耐久性组(EG),每个EG包括一个或多个集,其中每个集具有其自身的一组预定义属性。另外,所述方法包括:每个EG的每个集包括一个或多个区,并且每个区包括一个或多个块。
在一个实施方案中,将所述SSD的另一部分配置为常规命名空间。
在一个实施方案中,每个EG的每个集包括两个或更多个区。
在另一个实施方案中,所述方法还包括:提供被配置为向用户呈现所述分区命名空间的配置选项的主机接口;从所述用户接收针对所述分区命名空间的配置命令;以及根据所述命令配置所述分区命名空间。
在所述方法的另一个实施方案中,所述主机接口显示所述SSD的管芯的视觉表示,并且接收关于EG边界和集边界的用户输入。
在所述方法的另一个实施方案中,所述用户输入包括围绕或跨所述管芯的所述视觉表示绘制的线。
在另一个实施方案中,一种系统包括非易失性存储器(NVM)设备和所述NVM设备的控制器,所述控制器包括:主机接口,所述主机接口被配置为从主机计算机接收针对所述NVM设备的配置命令;和耦接到所述主机接口的处理电路。所述处理电路被配置为:响应于从所述主机计算机接收的至少一个命令而将所述NVM的分区命名空间配置为包括一个或多个EG。每个EG将具有其自身的一组属性,并且每个EG包括一个或多个区,其中每个区包括一个或多个块。
在另一个实施方案中,一种计算装置包括:用于接收用于将SSD的至少一部分配置为分区命名空间(ZNS)的一个或多个用户命令的装置;和用于响应于所述命令而将所述SSD的至少一部分配置为ZNS的装置。在所述实施方案中,所述用于配置的装置包括:用于将所述分区命名空间划分成一个或多个耐久性组(EG)的装置,每个EG包括一个或多个集。在所述实施方案中,每个集具有其自身的一组预定义属性,其中每个EG的每个集包括一个或多个区,并且每个区包括一个或多个块。
附图说明
因此,通过参考实施方案,可以获得详细理解本公开的上述特征的方式、本公开的更具体描述、上述简要概述,所述实施方案中的一些在附图中示出。然而,应当注意的是,附图仅示出了本公开的典型实施方案并且因此不应视为限制其范围,因为本公开可以允许其他同等有效的实施方案。
图1A示出了示例性NAND存储设备,示出了管芯上的存储器元件的各种分组。
图1B示出了根据各种实施方案的NAND的分组中的管芯的示例性集合。
图2A示出了根据各种实施方案的将驱动器划分成区以及顺序写入区的各个方面。
图2B示出了根据各种实施方案的示例性驱动器的ZNS和任选的常规命名空间。
图3A示出了示例性用例的接口视图,其中两个数据流被映射到SSD的各个管芯。
图3B示出了根据各种实施方案的映射到SSD的三个区上的图3A的示例性用例的物理视图。
图4A示出了图3A的示例性用例,但现在管芯的部分被分配到被绘制成彼此隔离的每个数据流。
图4B示出了根据各种实施方案的图4A的隔离用例到SSD上的三个EG的映射,每个EG包括多个区,这些区跨各个EG具有不同大小。
图4C示出了根据各种实施方案的图4B所示的映射的变型,其中第一EG已被进一步划分成两个集,并且因此每区擦除块的数量已减半。
图4D示出了根据各种实施方案的图4C的另外的变型,其中第二EG现在也已经被划分成两个集,其中细微差别在于这些组各自仅包括管芯的部分,并且不包括完整的管芯。
图5是根据一些示例的用于将SSD的一部分配置为ZNS的方法的流程图。
图6示出了根据各种实施方案的设置在SSD中的示例性NAND控制器。
专利或申请文件包含至少一个以颜色执行的绘图。具有彩色图的本专利或专利申请公布的副本将在请求并支付所需费用后由专利局提供。
为了有助于理解,在可能的情况下,使用相同的参考标号来表示附图中共有的相同元件。可以设想是,在一个实施方案中公开的元件可以有利地用于其他实施方案而无需具体叙述。
具体实施方式
在下文中,参考本公开的实施方案。然而,应当理解的是,本公开不限于具体描述的实施方案。相反,思考以下特征和元件的任何组合(无论是否与不同实施方案相关)以实现和实践本公开。此外,尽管本公开的实施方案可以实现优于其他可能解决方案和/或优于现有技术的优点,但是否通过给定实施方案来实现特定优点不是对本公开的限制。因此,以下方面、特征、实施方案和优点仅是说明性的,并且不被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。同样地,对“本公开”的引用不应当被解释为本文公开的任何发明主题的概括,并且不应当被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。
如上所述,EG和NVM集通常是超大规模客户(诸如例如数据中心操作者)所需的。ZNS是允许区被顺序编程的新接口标准。在实施方案中,通过将EG与ZNS组合,主机可以移除系统写入放大,因为主机文件系统写入放大和SSD垃圾收集一起执行。
根据本公开的各种实施方案涉及数据中心中的存储设备。根据此类实施方案,每个此类存储设备可用作针对主机设备的存储设备,并且在主机设备和存储设备之间可存在接口。接口可以包括用于与主机设备交换数据的数据总线以及用于与主机设备交换命令的控制总线中的一者或两者。接口可以根据任何合适的协议操作。例如,接口可以根据以下协议中的一者或多者来操作:高级技术附件(ATA)(例如,串行ATA(SATA)和并行ATA(PATA))、光纤信道协议(FCP)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、PCI和PCIe、非易失性存储器标准(NVMe)、OpenCAPI、GenZ、高速缓存相干接口加速器(CCIX)、开放信道SSD(OCSSD)等。
在实施方案中,存储设备包括NVM,该NVM可包括多个存储器设备。在一些实施方案中,存储器设备中的每个存储器设备可以称为管芯。在一些示例中,单个物理芯片可以包括多个管芯(即,多个存储器设备)。在一些示例中,存储器设备中的每个存储器设备可以被配置为存储相对大量的数据(例如,128MB、256MB、512MB、1GB、2GB、4GB、8GB、16GB、32GB、64GB、128GB、256GB、512GB、1TB等)。
在一些示例中,NVM的每个介质单元可以包括任何类型的非易失性存储器设备,诸如例如闪存存储器设备、相变存储器(PCM)设备、电阻随机存取存储器(ReRAM)设备、磁阻随机存取存储器(MRAM)设备、铁电随机存取存储器(F-RAM)、全息存储器设备、以及任何其它类型的非易失性存储器设备。
如上所述,在一些实施方案中,NVM可包括多个闪存存储器设备。闪存存储器设备可以包括基于NAND或NOR的闪存存储器设备,并且可以基于包含在用于每个闪存存储器单元的晶体管的浮栅中的电荷来存储数据。在NAND闪存存储器设备中,闪存存储器设备可以被分成多个块,这些块可以被分成多个页面。特定存储器设备内的多个块中的每个块可以包括多个NAND单元。NAND单元的行可以使用字线来电连接以限定多个页面中的页面。多个页面中的每个页面中的相应单元可以电连接到相应位线。此外,NAND闪存存储器设备可以是2D或3D设备,并且可以是单级单元(SLC)、多级单元(MLC)(其包括两级)、三级单元(TLC)或四级单元(QLC)。可在页面等级向NAND闪存存储器设备写入数据以及从NAND闪存存储器设备读取数据,并且可在块等级从NAND闪存存储器设备擦除数据。
通过后台,NAND闪存存储器被组织成网格。整个网格布局称为块,而构成网格的各个行被称为页面。常见的页面大小为2K、4K、8K或16K,其中每块128至256个页面。因此,典型的NAND闪存的块大小通常在256KB(页面大小为2K并且每块128个页面)和4MB(页面大小为16K并且每块256个页面)之间变化。图1A示出了示例性NAND闪存存储器,示出了元件的组织分级结构。NAND闪存存储器单元容纳在NAND芯片内。NAND芯片或管芯的布局由四个区域组成。参考图1A,按大小的降序,这些区域是管芯101、平面110、111、块130和字线(WL)140。图1A示出了这四个区域在示例性NAND芯片上的组织方式。参考图1A,最大元件为管芯101。半导体晶圆从电子级硅块切割而成。从块切割而成的晶圆件称为管芯。管芯包含一至两个平面。在图1A的管芯101内示出了两个平面110和111。一般来讲,平面可一起执行相同的操作。平面包含不同数量的块130。块是有用的指示符,因为NAND闪存单元只可在块等级进行擦除。正是由于此原因,块有时称为“最小擦除单元”或“擦除块单元”。
在图1A的示例中,在每个平面110中存在B行块,在以块130-0开始的顶行处开始,并且在以块130-B开始的底行处结束。每行块中具有K个块,从而导致每个平面具有B行和K列。因此,第一行以块130-K结束,并且最后一行在块130-(B+1)处结束。因此,在此示例中,平面0 110和平面1 111中的每一者具有总共(B+1)*K个块。另外,在此示例中,每个块130具有如图所示的P个WL,以WL 0在每个块的左上部开始,并且以WL P在每个块的右下部结束。如上所述,P可以是例如128或256、或者二的其它更高的倍数。尽管此细节未在图1A中示出,但每个WL由页面构成。在实施方案中,存储器单元可以是单级单元(SLC)(其中每个单元存储一位)或多级单元(MLC)(其中每个单元存储多位)。因此,在此类实施方案中,虽然SLC将具有一个页面,但MLC将具有两个页面,即上部页面(UP)和下部页面(LP)。TLC具有三个页面,向LP和UP添加中间页面(MP),诸如此类。
图1B示出了根据各种实施方案的NAND的分组中的管芯的示例性集合。参考图1B,示出了32个管芯101至132,每个管芯例如为图1A所示的类型。图1B所示的32个管芯各自具有两个平面110和111,并且如上所述,每个平面包括若干块130。为方便起见,这些块可被编号为130-0至130-N,其中N是每平面块的总数量。因此,N=(B+1)*K,其使用图1A所示的编号方案。此外,图1B的32个管芯101至132通过使用管芯中的一者(此处为管芯132)逐块地存储其它31个管芯的XOR结果来相互保护。因此,管芯132不存储任何附加数据,而是存储关于存储在管芯101-131中的每一者中的数据的元数据。在所描绘的示例中,管芯132将所有其它31个管芯中的每一者的相应平面110的块130-0上的XOR操作的结果存储在其平面110的第一块中。此外,该管芯将所有其它31个管芯中的每一者的相应平面111的块130-0上的XOR操作的结果存储在其平面111的第一块中。这由在图1B中的32个管芯中的每一者的每个平面110、111的每个左上角中示出的暗色块130-0(暗色块130-0仅在管芯103和132中进行标记,以免使附图过度复杂化)示出。虽然图1B中的每个管芯的每个平面的第一块被用作例示,但是对应块130-1至130-N中的每一者的类似的XOR结果也存储在管芯132的每个平面中。因此,管芯132的每个平面仅用于在相应逐块的基础上存储其它31个管芯的对应平面的XOR数据。
如上所述,在NVMe接口中,存在限定的EG以及NVM集。公开了其中分区命名空间与这些结构组合的各种实施方案。然而,应注意,另选的实施方案可以类似的方式将ZNS与其它接口组合。此处,应注意,在NVMe标准中提供了术语ZNS。然而,其它接口也可具有用于功能等效机制的不同名称。例如,SAS和SCSI都具有针对叠瓦式磁记录(SMR)HDD开发的类似特征,称为“分区块命令集”或“ZBC”,并且SATA使用“分区ATA命令集”或“ZAC”。但是,应进一步注意,虽然SATA和SAS都不提供NVMe的EG或NVM集概念,但可向任何接口添加这些特征。此外,还应注意,诸如LUN的相关特征可被扩展以提供标称替换功能。因此,应当理解,来自NVMe的EG和NVM集被理解为本文所公开的系统和方法的许多可能的示例性实施方案中的一个。
在实施方案中,EG可应用于ZNS以提供对如何、在何处以及在何种配置下将数据存储到SSD上的各种用户定义的区段的更大控制。在实施方案中,这样将控制功能暴露于SSD主机(先前仅由设备控制器处理)向数据中心和其它超大规模用户及其客户端提供了改善的性能。因此,在实施方案中,可将较大的驱动器划分成区的组以供主机设备更好地使用。在实施方案中,这些组可包括例如EG和NVM集。另外,在实施方案中,主机可以使用不同EG来访问设备,并由此管理SSD中的管芯或信道冲突。
在实施方案中,实现了通过EG对介质耐久性能力进行不同的描述。此外,在实施方案中,促进了不同EG中的不同区大小以及不同EG中的不同位或单元的使用。
图2A示出了根据各种实施方案的将驱动器的逻辑块地址空间划分成区201以及示例性区中的一个的细节。参考图2A,示例性盘的逻辑块地址(LBA)范围201被划分成各个区,包括区210、213、215、217,并且继续直至最终区220。区201中的每个区开始于限定的LBA上,并且每个区被分配有LBA地址的范围。在实施方案中,区大小不是固定的,并且可由用户选择。在一些实施方案中,区大小是预定义数量的倍数,诸如例如擦除块(在本文中有时简称为“块”)的大小。因此,在此类实施方案中,区的大小虽然是可变的,但总是SSD的块大小的倍数。
继续参考图2A,在附图的底部处详细地示出区215。应注意,区可为两种类型,即需要常规写入的类型和需要顺序写入的类型。在常规类型的区中,数据可随机地或顺序地写入区。然而,在需要顺序写入的区中,数据仅可顺序地写入区。因此,如图2A所示,区215为需要顺序写入的类型。区215具有以230示出的开始LBA和以237示出的最终LBA。在任何给定时间处,都存在写入指针(此处示出在写入指针位置235处),并且所执行的每个附加写入命令向前推进写入指针。因此,在图2A的示例中,写入指针位置随着所执行的每个附加写入命令而向附图的右侧推进。此外,该区必须在被重写之前完全复位。在实施方案中,这可通过“区管理(ZM)复位”命令以及之后的ZM打开命令来实现,如图2A的底部所示。在执行ZM复位命令以及之后的ZM打开时,写入指针被移动到区的第一LBA。因此,该区可仅从最低逻辑块地址(LBA)或扇区写入,直到最高LBA,直到填满,或直到完全复位,此时写入指针移动回到区的开始LBA 230。图2B示出了根据各种实施方案的示例性SSD的ZNS 260和任选的常规命名空间270中的每一者。此外,图2B示出了ZNS驱动器通常如何显现在接口等级处,如例如由SSD耦接到的主机计算机的用户所见。参考图2B,示出了跨越LBA 0至LBA N的分区命名空间260,如图所示。在实施方案中,每个区由开始LBA(称为区开始LBA(ZSLBA))识别。图2B中的ZSLBA由沿ZNS 260均匀间隔开的水平线257表示。继续参考图2B,还示出了指向前四个ZSLBA 255中的每个ZSLBA的箭头。如上文参考图2A所述,需要对分区命名空间中的每个区进行顺序写入。这迫使驱动器跟踪每个区的区附加点(等同于图2A的写入指针位置235),并由此启用可由分布式多线程主机使用的称为“Zone_Append”的新命令。
应注意,对所有LBA的读取总是有效的,并且如果LBA被解除分配,则对其的读取返回默认修整值。在实施方案中,区具有属性,诸如例如大小、最佳写入大小和最小写入大小。在实施方案中,如上所述,区大小是可变的,并且可由用户根据某些参数来设置。这将在下文中参考图4B至图4C更详细地描述。
最后,参考图2B,常规命名空间270不受任何区属性的约束,并因此可被随机地写入。另外,与ZNS 260的给定区不同,常规命名空间270可包含各种位和单元的使用的数据,如下文所详述。
图3A示出了显示在主机(诸如例如图6的主机650)上的示例性用户配置接口的接口视图。示例性接口视图对应于其中两个数据流映射到SSD的各种管芯的示例性用例。如本文所用,数据流是互连或相关的一组数据。例如,数据流中的数据可与一些特定应用或使用相关。例如,为了支持计算机辅助或自主驾驶(CA/AD)车辆的车队,可能存在收集所有类型的交通数据并将其发送到数据中心以用于处理的若干边缘设备。每个边缘设备可位于预定义区的不同位置中,并且可在例如特定于给定道路、交叉口、邻域或场所的持续基础上收集数据。从每个设备收集的数据可用于训练模式识别或决策模块,例如人工神经网络(ANN),这些模块共同用于车辆的决策中。在此类情况下,通常有用的是,首先分离从每个边缘设备接收的数据,用场所特定算法对其进行处理,并且然后在区范围或甚至系统范围算法中使用来自若干边缘设备的数据的较大部分。因此,对于用户而言,有用的是调整他们的各种处理算法,以从存储器中的已知特定位置提取有待输入到那些算法的数据。
此外,又如,企业收集和使用的一些数据可能比其它数据更快过时。例如,在上述CA/AD示例中,每个边缘设备可具有其获得新数据的给定频率,其中新数据替换较早的数据集。或者,例如,在非常高的数据应用中,所收集的原始数据可能在其中具有许多错误,并且在将错误校正编码应用于原始数据之后,原始数据发生显著变化。因此,“修订的”数据是用于后续处理的数据。在实施方案中,数据的过时可用于收集相同存储块中的具有相同估计的过时的数据,以便于在块的数据的全部或其大部分变得过时时进行那些块的写入放大缩小和擦除。
为了便于数据存储的此类用户优化,在实施方案中,可向用户提供对NVM组织的某些方面的访问,这允许用户控制将其数据中的哪个存储在NVM的哪个部分中,从而允许其分离具有馈送到数据特定算法中的共同属性的共同数据。此外,在实施方案中,用户可被提供对NVM的此类部分的边界的控制,并且可根据需要(包括在动态中)改变这些边界。这允许用户从例如使用场所特定的模型和算法处理数据切换到更一般的区或甚至系统范围的算法和模型。例如,这在图3A和图3B中示出。
因此,图3A的视图是从被配置为允许操作主机计算机的用户指定各种数据流及其特性的示例性用户接口看到的视图。参考图3A,示出了用户通过示例性接口配置的示例性SSD的四个管芯350的示意图。这些管芯包括管芯0至管芯3。还示出了两个数据流,即数据流1 301和数据流2302。这些在图3A中由分别分配给它们的块的不同着色指示,如图所示。如上所述,数据流涉及以下过程:存储在SSD上的数据的部分可通过该过程可基于例如该组中所有数据的估计的删除时间而一起分组在包括一个或多个块的限定组中。通过将可能一起删除的数据存储在相同的擦除块或擦除块组(即,相同的数据流)中,可以减轻与SSD存储相关联的许多问题。因此,数据流可包括跨若干管芯的若干块。
继续参考图3A,所描绘的四个管芯(管芯0、管芯1、管芯2和管芯3)中的每一者具有两个平面,即平面0和平面1,如图所示。在实施方案中,数据流被映射到各个管芯的各个块,每个块包括两个部分,管芯中的每一者的每个平面中具有一个部分。因此,数据流1 301分别在管芯0和管芯1中的每一者的顶行中包括来自管芯0和管芯1中的每一者的两个块,并且数据流2 305包括四个块,两个块分别示出在管芯2和管芯3中的每一者的顶行处,并且两个块分别示出在管芯0和管芯1中的每一者的第二行中。此外,应注意,在每个数据流内,还可能将数据进一步分组为子流,其中每个子流被分配到块内的一个或多个特定页面。在实施方案中,两个数据流可分别映射到区。
图3B示出了根据各种实施方案的映射到示例性SSD的具有标记区开始LBA(ZSLBA)的示例性LBA空间上的图3A的示例性数据流。图3A所示的两个示例性数据流因此被映射到示例性SSD的四个区上。如图3B的底部所示,在物理视图381中,图3A的数据流1被映射到图3B的区0,并且图3A的数据流2被分别映射到图3B的区1和区3。两个数据流到四个管芯的区的这些映射因此反映了用户输入的两个数据流到管芯的分配,如图3A所示。在图3A中,数据流1被分配到管芯0和管芯1中的每一者的第一行。因此,如图3B所示,数据流1被映射到占据管芯0和管芯1中的每一者的第一行的区0。另外,数据流2在图3A中被分配到管芯(管芯2和管芯3)中的每一者的第一行、以及管芯(管芯0和管芯1)中的每一者的第二行。因此,如图3B所示,数据流2被映射到区1和区3。区3占据管芯2和管芯3中的每一者的第一行,并且区1占据管芯0和管芯1中的每一者的第二行。
继续参考图3B,在附图的顶部中心处还示出了SSD的逻辑视图380,并且在图3B的最右侧处示出了EG1、其单个集(集1)及其六个区(为区0至区5)的线性视图310。
继续参考图3B的逻辑视图380,此视图描绘了SSD的EG(EG1)的六个区。EG1映射到图3A的接口视图中所示的相同的四个管芯,即管芯0、管芯1、管芯2和管芯3。这六个区全包含在EG1的唯一NVM集(此处称为集1)中,如图所示。就这一点而言,应注意,在实施方案中,EG可具有多个集。每个集可包括多个区,如下文更充分地描述的。如上所述,在实施方案中,图3A的数据流可各自映射到图3B的EG内的一个或多个区。因此,逻辑视图380一目了然地呈现根据各种实施方案的组织分级结构。EG处于最高等级处。每个EG可具有多个NVM集,但一般来讲,最常见的是,EG具有单个集。在每个集内可存在多个区。因此,在此示例中,存在六个区,即区0至区5。每个区包括多个块(或者如在图3B中称为“擦除块”310)。在所描绘的示例中,每个区包括四个擦除块,每管芯两个擦除块。
继续参考图3B,物理视图381描绘了SSD控制器390和包括在EG1中的四个管芯。如图所示,围绕这四个管芯绘制了两个边界,即内边界351和外边界350。在实施方案中,内边界是指集,并且外边界是指该集所属的EG。这里,EG仅包含一个NVM集,如上所述,这是最常见的情况。然而,在一般情况下,在实施方案中,在单个外边界350内可存在若干内边界351,这表示在每个EG内可存在若干集的事实。
继续参考图3B,如上所述,每个区包括四个块。这反映在图3B的底部所示的色键中,其中区被示出为黄色或浅暗色框320,而其组成擦除块被示出为蓝色或深暗色框310。因此,在物理视图381中,作为视觉呈现,黄色框(区)将包含若干蓝色框(擦除块)。这是图3B所示的六个区中的每个区的情况。
最后,如上所述,在图3B中,数据流2被映射到区1和区3两者。区3占据管芯2和管芯3中的每一者的第一行,并且区1占据管芯0和管芯1中的每一者的第二行,如图所示。因此,数据流1的唯一区被标记为“301”,跟踪图3A中的数据流1的标签,并且数据流2的两个区因此被标记为“305”,跟踪图3A中的数据流2的标签。图3B的LBA空间线性视图310中的区也被类似地标记。因此,通过在视觉上比较图3A和图3B,在到图3B的区和擦除块的映射中分别保留图3A中的数据流1和数据流2中的每一者的组成块的管芯和行位置。
应注意,因为图3B中的区全部属于一个单个EG,所以它们都具有相同的特性。然而,在实施方案中,通过将驱动器的LBA空间分成两个或更多个EG,从而将一个EG的区与其它EG的区隔离,每个EG可限定其相应组成区的特性。如下文参考图4D所述,当EG被进一步划分成多个NVM集时,此隔离特性也以集等级进行操作。因此,如下所述,EG内的每个集也可具有其自身的区特性。在实施方案中,借助于使用通过将SSD的LBA空间划分成若干EG(每个EG具有一个或多个集)而提供的巨大灵活性,可以在各种用户定义的分级结构中限定具有不同特性的各个区。这允许主机对在哪个区以及在什么时间存储、读取和擦除哪些数据具有重要的控制。接下来描述的图4A至图4D示出了根据本公开的各种实施方案的此隔离特征提供的灵活性。
图4A示出了与图3A相同的示例性数据流用例,但现在管芯的部分被分配到被绘制成彼此隔离的每个数据流。在一个或多个实施方案中,可提供诸如图4A所示的接口,该接口允许用户绘制所描绘的边界线。因此,通过这种用户接口,用户可以围绕来自各个管芯的多个块绘制内边界351和外边界350,如图4A所示,并且然后在实施方案中,将这些边界映射到围绕组成区的集边界和EG边界,如图4B的物理视图所示。在图4A的具体示例中,现在通过隔离数据流1 301和数据流2 305中的每一者来组织图3A的数据流用例,并且将此隔离映射到两个单独的EG,如接下来参考图4B所述。应注意,因为图4A中的每个数据流的内边界和外边界包括完全相同的块,所以在此示例中,内边界是多余的。这种类型的边界情况映射到EG内的单个NVM集。如果内边界和外边界不相同并且用户已经在每个外边界350内的多个内边界351中进行绘制,则在实施方案中,这将以SSD等级映射到每个EG内的多个集。这种示例在图4C和图4D中示出,如下所述。
因此,图4B示出了根据各种实施方案的图4A的用例的隔离型式到SSD上的两个EG的映射,每个EG包括多个区,这些区跨各个EG具有不同大小。此外,在图4B中,在映射中使用八个管芯,而不是图4A的示例中的四个管芯。这允许EG1和EG3之间的不同区大小。参考图4B,示出了三个EG,即EG1、EG2和EG3。每个EG具有内边界351以及外边界350,并且如就图4A而言,在每种情况下,在图4B的EG中,内边界和外边界是相同的,因此每个EG仅包括一个集。在此示例中,数据流1被映射到EG1,具体地映射到管芯0和管芯1中的每一者的第一行。数据流2被映射到EG2,该EG2现在具有每区八个块,可在仅一个区中容纳数据流2,该区包括管芯(管芯4、管芯5、管芯6和管芯7)中的每一者的顶行。因为剩余两个管芯,所以第三EG(EG3)由管芯2和管芯3构造而成,如图所示。
继续参考图4B,在每个EG中示出了三个区。这在逻辑视图480以及物理视图481中示出。参考物理视图481,EG1具有由内边界351限定的单个集(集1)。EG1在其内包括两个管芯,即管芯0和管芯1。EG1的三个区420中的每个区跨越EG1的组成管芯中的两者,并且因此包括四个擦除块410。这与接下来描述的EG2的每区擦除块的数量形成对比,并且是根据各种实施方案的这两个EG彼此隔离的函数。
继续参考图4B,再次参考物理视图481,EG2包括由EG2的内边界351限定的单个集(集2)。EG2包括四个管芯,即管芯4、管芯5、管芯6和管芯7。EG2具有三个区。EG1的三个区中的每个区跨越EG2的组成管芯中的全部四者,并且因此包括每区420八个擦除块410。这与上述EG1和EG3中的每一者的每区420擦除块410的数量形成对比。EG3具有与EG1相同的特性,但包括管芯(管芯2和管芯3)以及单个集(集3)。如上所述,EG3不具有映射到其的任何数据流。
最后,参考图4B,逻辑视图480跟踪刚刚描述的三个EG的特征。EG1被示出为具有一个NVM集(集1)。在集1的内部示出了标记为“NS1”的一个命名空间,并且该命名空间具有三个区,即区0至区2。类似地,EG2被示出为具有一个NVM集(集2)。集包含命名空间(NS),并且集1内为NS1,其该NS1包含三个区,即区0至区2。最后,EG3也被示出为具有一个集(集3),该集3包含NS3,该NS3继而包括三个区,即区0至区2。逻辑视图480不指示每区块的差异,并且因此在逻辑视图480中的所有三个EG之间存在对称性。如上所述,在实施方案中,EG可包含一个或多个NVM集。此外,NVM集可包含一个或多个NS,但在图3B、图4B、图4C和图4D的示例中,每集存在仅一个NS。NS本身可以是主机使用例如512B大小的LBA来访问驱动器中的任何位置的常规种类中的任一者。或者,例如,命名空间可以是如上所述的分区种类。在实施方案中,可以与常规类似的方式读取NS的分区种类,这受制于上文结合图2A所述的对写入的约束。
在实施方案中,使用EG,如图4A和图4B所示,逻辑层可以一直通过软件编程堆栈与物理层关联在一起。
因此,由于根据各种实施方案的EG的隔离特性,EG1和EG2被视为在分别构成其组成区420中的每个区的擦除块410的数量上有所不同。然而,根据各种实施方案,在EG之间、在单个EG内以及另外在该EG的组成集之间可能存在EG特性的许多其它变化。在图4C和图4D中的每一者中突出显示了一种此类变型。接下来对这些进行描述。
图4C示出了图4B所示的区映射的变型。在图4C的映射中,根据各种实施方案,包括管芯0和管芯1的第一EG(EG1)已被进一步划分成两个集,其中每集一个管芯,并且因此对于EG1中的所有区,每区420擦除块410的数量已减半,从每区四个块到现在的每区仅两个块。因此,在EG2和EG3的内边界350和外边界351尚未改变的同时,并且在EG1的外边界350尚未改变的同时,EG1的内边界已改变。现在在EG1中存在两个集,由内边界405限定以包括管芯0的第一集(集1)以及由内边界407限定以包括管芯1的第二集(集2)。此变化现在反映在逻辑视图480中。现在仍然存在此SSD的三个EG,但是总共存在四个集。EG1现在具有两个集,即集1和集2,EG2具有集3并且EG3现在具有集4。
此外,因为EG1的集边界现在已将管芯0与管芯1分离,所以任一集中的区不可包括来自另一集的管芯的任何擦除块。因此,由于已绘制新边界,在图4C的示例中,EG1的每个集中的每个区仅具有两个擦除块。虽然区可跨管芯边界或甚至可在管芯上创建边界,但在实施方案中,区无法跨集边界。这是由于以下事实:一个集具有特定的特性和属性,并且作为集的子划分的区必须共享那些特性和属性。因此,对于图4C的三个EG中的每个EG,每区擦除块的数量现在是不同的。在EG1中,三个区420中的每个区存在两个块410。在EG3中,三个区420中的每个区存在四个块410。管芯0至管芯3各自具有每区两个或四个块,并且这在图4C中的这些管芯的左侧处的框中示出,该框表明“2/4EB区”,这意味着这些EG(EG1和EG2)在其相应的区中具有2个或4个擦除块。
应注意,通常有用的是不使区跨管芯边界延伸,其中这些区中的一个或多个是镜像或奇偶校验保护方案的一部分。这是因为:虽然可能发生单个管芯的失效,但NVM设备中的多个管芯将同时失效的可能性要小得多。因此,例如,如果存储在EG1的区中的数据通过管芯0和管芯1形成镜像,则与镜像的元素涉及同一管芯上的区的情况相比,数据受到更好的保护。
继续参考图4C,EG2(其未从图4B的示例改变)具有相同的内边界和外边界,并且因此还仍然具有三个区,每个区各自具有八个擦除块。这在图4C中的管芯4至管芯7的左侧处的框中示出,该框表明“8EB区”,这意味着此EG3在其相应的区中的每个区中具有8个擦除块。然而,应注意,参考图4C,附图中的每个EG具有相同数量的区,但它们的每区块的数量可不同。在根据本公开的其它实施方案中,每个EG以及EG内的每个集可设置其自身的特性,包括其区的数量。接下来参考图4D描述这种情况的示例。
图4D示出了根据各种实施方案的图4C的另外的变型,其中EG3现在也已经被划分成两个集,其中附加细微差别在于,EG3的新的集边界各自仅包括管芯的部分,并且EG3的集不再包括完整的管芯。
参考图4D,EG3的内边界350和外边界351以及EG1的内边界405、407以及外边界350相对于图4C所示的示例尚未改变。尽管EG2的外边界350尚未改变,但EG2的内边界已改变。现在在EG2中存在两个集:第一集(集3),其由内边界430限定以包括管芯4至管芯7中的每一者的顶行;以及第二集(集4),其由内边界440限定以包括管芯4至管芯7中的每一者的一组下部行。此变化现在反映在图4D的逻辑视图480中。现在仍然存在此SSD的三个EG,但是总共存在五个集和五个对应的NS。EG1具有包括NS1的集1和包括NS2的集2,EG2具有包括NS3的集3和包括NS4的集4,并且EG3现在具有包括NS5的集5。
此外,每集区的数量已改变,并且现在在填充EG2的两个集之间是相异的。集3的NS3现在具有单个区(区0),其包括八个擦除块(包括每管芯两个擦除块),作为每个管芯4-7的顶行。另一方面,集4在其唯一的NS(NS4)内具有多个区,涵盖管芯3-7中的每一者的两个下部行,如图4D所示。
因此,继续参考图4D,EG2的两个集(即集3和集4)的边界跨管芯的内部延伸,这示出了根据各种实施方案的重要特征。如果单个管芯上的擦除块是两个不同集的一部分或者是两个不同EG的一部分(因为EG边界也可延伸穿过管芯),则它们可具有并且可能将具有不同特性。在图4D的示例中,例如,包括单个区的集3可被指定为存储SLC数据,并且集4可被指定为仅存储多级数据,诸如例如MLC、TLC或QLC数据。在一个或多个实施方案中,单个EG的集之间的这种示例性特性区别支持QLC块的专用编程,如下所述。
应注意,虽然图4D中的EG2的两个新的集保留了每区块的数量,两个集均具有每区八个块,但这不是必需的,并且在实施方案中,可以绘制新的集边界以改变这一点。例如,集3可被绘制成排除管芯7中的任一者。在这种示例性情况下,此假设的集3(出于本讨论的目的称为“集3A”)则将具有每区六个擦除块,而集4保持具有每区八个擦除块。可然后将管芯7的顶行置于其自身的附加集中,或者在另选的实施方案中,简单地将其从任何集中略去(并因此使其离线)。如果期望后一选项,则应注意,然后也将需要通过重新绘制EG2的外边界来从EG2中排除管芯7的顶行。
在实施方案中,尽管在图4B至图4D的示例中未示出,但也可诸如例如沿着信道绘制EG和集的竖直边界。参考图4A至图4D,应进一步注意,在实施方案中,主机计算机可以向控制器发送命令以在动态中重新配置EG内的集。因此,例如,图4B和图4C之间或图4C和图4D之间的变化可由控制器490响应于从主机计算机接收到的持续命令在任何时间顺序地实现。应当理解,仅在停止受变化影响的所有区域的与SSD的有效交互之后才对集边界作出改变。例如,使那些EG离线。就这一点而言,应注意,可能使一个或多个EG离线而不影响SSD的其它EG。因此,在实施方案中,可以将EG视为单独且独立的虚拟SSD。此外,EG边界也可在动态中改变,因此例如单个EG可被分成许多EG,或者许多EG可合并成一个EG。
在实施方案中,改变EG内的集边界允许主机计算机将SSD的使用调整为当时发生的任何处理。例如,如上所述,主机计算机可以运行基于人工智能(AI)的程序,该程序采集大量数据,存储数据,并且然后在该数据上训练处理网络(例如,人工神经网络(ANN))。在此类应用中,存在时间间隔,其中例如当处理所采集的数据时快速连续地进行许多计算。在此类时间期间,EG内的集的一个配置和每个集的一组属性可能是有用的,诸如例如,在需要区内块的较少冗余的情况下,因为所有中间计算结果都是暂时的。在此类时间期间,可以指定区内的所有块来存储结果,并且没有块用作冗余或奇偶校验,并且因此包含那些区的集的属性具有一个定义。然后,在其它时间,同一集可以存储计算的最终结果,并且需要更多奇偶校验块,并因此需要更多冗余以保护最终结果数据。有用的是,主机重新绘制集边界并重新配置集属性以在每个时间间隔处匹配需求。
如上文参考图4A所述,在实施方案中,主机计算机可以例如提供视觉接口,用户可以通过该视觉接口绘制和重新绘制EG及其内的集的边界。在此类接口中,可向用户呈现示出SSD的管芯的示意图,其等同于如图4B至图4D中的每一者所示的物理视图481,并且可通过绘制EG并设置围绕管芯或甚至通过管芯的边界线来在接口内指示用户输入,如上文所讨论的图4B至图4D中的每一者所示。然后,用户输入可例如被转换为通过控制器的主机接口发送到控制器以用于实现的命令,如图所示。
因此,在实施方案中,使用单独EG内的区或EG的单独集内的区,促进了相同存储介质的各种混合使用。这些包括例如在每个集或EG中具有每单元(诸如例如MLC、TLC、SLC和QLC)不同数量的位。或者,例如,在不同EG中使用不同介质,诸如例如在一个EG中使用FastNAND,并且在另一个EG中使用存储级存储器(SCM)等。或者,例如,如上所述,同一介质上的不同大小的区,诸如例如,8个管芯条、4个管芯条或2个管芯条。或者,例如,具有通过介质特性(诸如例如当前使用年限、预测的老化、可靠性、边缘EB等)来表征的NAND的不同分组。
另外,如上所述,在一个或多个实施方案中,EG可被成形(例如绘制其边界(例如,如上文所示)),以便避免冲突。这可例如通过以下来完成:在信道、管芯或平面中设置一个或多个EG,并存储具体类型的数据,或者仅向EG发送特定类型的命令或操作。例如,社交媒体企业可以具有关于给定数据中心处的读取操作相对于编程操作或擦除操作的频率的内部知识。基于该知识,社交媒体公司可能希望优先处理读取操作,并确保它们的某个延迟规范。例如,如果社交媒体平台的用户希望访问某些数据,诸如贴子、存储的文件、照片等,则存在此类访问的最大延迟。还可能期望调整其算法以将定期读取但不写入的数据存储在仅执行读取操作的一个或多个专用EG中,从而保证期望的最大延迟。
因此,在实施方案中,可绘制EG和集中的每一者的边界以分离NAND管芯、NAND管芯平面、擦除块、一个或多个擦除块的集或一个或多个擦除块的一部分。此外,应注意,也可使用如未来可能存在或可能已知的其它逻辑分离。因此,例如,NVMe标准最近添加了“介质单元”(MU)作为EG→NVM集→MU的附加层层级。因此,给定NVM集可以与NVM EG可具有多个集类似的方式具有多个MU。
在实施方案中,用户可因此绘制每个EG的每个集内的MU边界,并为每个MU设置特性和属性。然后,每个MU包括具有用户定义的区特性和用户定义的区边界的一个或多个区。例如,不同EG、集和MU可具有彼此不同的特性,诸如耐久性能力,其可例如在SSD的寿命开始时确定,或者例如,不同EG、集和MU可反映预期的使用寿命差异,这是基于计划将哪种类型的数据存储在每个EG、集或MU中。例如,如上所述,给定EG、集或MU可被指定用于存储SLC数据,而另一者用于MLC数据。然而,应进一步注意,在NVMe标准中,集、EG和MU的使用是任选的,并且在一个或多个实施方案中,可使用这些逻辑分组中的全部或不使用这些逻辑分组。
应注意,实现MU描述符的最近的NVMe标准开发还实现由一个或多个MU构造区的可能性。因此,如果存储设备将MU限定为等于一个擦除块,则区可由4个MU构成以形成4EB大小的区。相反地,如果MU是管芯上的一对EB,则可由2个MU创建类似大小的区。MU结构实现覆盖不同物理布局的区的更动态且主机控制的创建。在一些示例中,也可以动态地配置EG和NVM集。
作为用于存储不同类型的数据的不同区的示例,应注意,QLC SSD有时构造其数据流以使程序能够到达更快的SLC高速缓存区。通常首先通过层将其写入SLC单元,并且然后,一旦被保护,就再次写入QLC单元。此操作有时称为折叠。每层的数据可存储在SLC单元中达预定义的时间,例如或者直到SSD控制器满足QLC数据在QLC单元中稳定且无错误。除了SLC区的上述写入高速缓存使用之外,还可存在此SLC区的读取高速缓存操作的使用。这将是以下情况:驱动器将数据从较慢响应的QLC区提升到较快响应的SLC区,该较快响应的SLC区还能更加鲁棒地读取数据的经常读取区段的打扰干扰。
此外,甚至从SLC单元写入QLC单元的过程也可具有两个或更多个级。第一“模糊编程”,其中数据被推送到QLC单元,但具有已知的粗度,然后在之后进行“精细编程”操作。由于给定字线(WL)的精细编程操作可与QLC存储块中的相邻WL交互的方式,WL的编程在模糊编程操作和精细编程操作之间迭代。
在根据本公开的实施方案中,SSD的不同区可用于对QLC数据进行编程。在第一选项中,可将QLC数据的每个层写入单独SLC区而不是SLC高速缓存。一旦完成,数据现在被保护,并且可被写入QLC块,指定区中的SLC数据操作为备份,直到数据成功存储在QLC单元中。在此示例中,出于此目的,上述图4D的EG2的集3可被指定为SLC区。
另选地,在第二选项中,若干管芯的一部分可作为常规命名空间的一部分保留,并且由于其不受制于任何区属性,因此其可用作混合数据SLC/TLC高速缓存,并且然后写入QLC块,这些QLC块可被设置为EG、集或MU内的一个或多个区。
此外,通过使用根据本公开的实施方案的EG内的区,主机现在可以逐区地控制哪些区是SLC、哪些是QLC,并且进一步控制QLC单元的编程。这样给予了主机更大的控制,并且使客户能够微调其算法以在主机迄今不可用的程度上控制SSD编程。
如上所述,写入放大是与闪存存储器、SSD以及另外的主机级文件系统和数据库应用程序相关联的不期望的现象。这要求物理写入存储介质的信息的实际量是旨在写入的逻辑量的倍数。因为闪存存储器在其可被重写之前必须用(当与写入操作相比时)更粗粒度的擦除操作进行擦除,所以执行这些操作的过程导致移动(或重写)用户数据和元数据多于一次。由于闪存存储器工作的方式,必须擦除和重写闪存的比新数据量实际所需更大的部分。这种倍增效应增加了在SSD的使用期内所需的写入次数,这缩短了其能够可靠地操作的时间。增加的写入还消耗带宽。在实施方案中,可使用ZNS来改善写入放大。
一般来讲,主机接口利用结构化文件系统来管理SSD上的数据。使用该文件系统(诸如例如日志结构化文件系统),主机执行“垃圾收集”,这涉及写入放大。还对SSD执行写入放大,如上所述。在一个或多个实施方案中,在运行于SSD的主机接口上的文件系统中表示的数据的一部分可被视为区。因此,在实施方案中,主机的文件系统写入放大操作和SSD的写入放大一起协作,并且操作仅需执行一次。
在一个或多个实施方案中,EG或集还可包括常规命名空间(非分区命名空间)以改善与EG或集的区中存在的有效性的隔离。例如,此技术可用于将驱动器上的一个EG的失效与同一驱动器上的其它EG隔离。因此,在此类实施方案中,它们在无每驱动器的分离(相对于每EG的分离)的问题的情况下分散其区有效性。每EG的分离因此使得更多潜在的隔离资源能够分散其带宽问题。
图5描绘了根据一些实施方案的将SSD的存储器空间的一部分配置为ZNS的方法500的实施方案。在实施方案中,方法500由示例性SSD(诸如例如图6的SSD 601)响应于通过由主机显示给用户的用户配置接口输入并在于主机上处理之后发送到SSD的用户命令而执行。在实施方案中,用户配置接口可向用户显示诸如上述图3A所示的视图。
以框510开始,将SSD的至少第一部分配置为ZNS。例如,用户可通过主机计算机的用户配置接口来指示形成此配置以及将哪些LBA包括在ZNS中。如上所述,这允许将ZNS划分成各个区。
方法500从框510前进至框520,在框520处,其中将ZNS划分成一个或多个EG,每个EG包括一个或多个集,其中每个集具有其自身的一组预定义属性,每个集包括一个或多个区,并且每个区包括一个或多个块。例如,如图4A所示,使用所显示的用户配置接口,用户可围绕表示SSD的管芯内的平面内的块的各种图标绘制线或边界。指定的块可以例如全部在一个管芯中,或者可以包括跨各个管芯的块的行,如图4A所示。
方法500可以可选地从框520前进至可选的框530(以虚线边界示出),其中用户还可以将SSD的存储器空间的至少第二部分配置为常规命名空间。
接下来描述的图6示出了根据各种实施方案的设置在示例性SSD中的示例性存储器设备控制器。参考图6,示出了SSD 601。在实施方案中,SSD 601可以包括非易失性NAND存储装置630。SSD 601包括设备控制器610和NAND存储装置630。NAND存储装置630可例如被组织为一组管芯,每个管芯如上文图1A所示进行组织。此外,该组管芯总体上可包括32个管芯,其中一个管芯用于XOR保护,如上述图1B所示。
继续参考图6,设备控制器610通过链路605连接到主机,出于说明的目的,该链路是可包括多个信道以在主机(未示出)和设备控制器610之间交换数据和命令的简化链路。在实施方案中,链路605可以是PCIe链路,或者可包括可能已知的其它链路。设备控制器610还包括ZNS管理器615,该ZNS管理器实现例如通过主机显示的用户接口在主机处输入的用户命令,以将SSD 601配置为具有ZNS。例如,NAND存储装置630的LBA的一部分可被指定为ZNS。一旦这样进行,就可将ZNS划分成一个或多个EG,每个EG包括一个或多个集,其中每个集具有其自身的一组预定义属性,每个集包括一个或多个区,并且每个区包括一个或多个块,如上文参考图5的方法500所述。最后,如图所示,设备控制器610通过通信链路625连接到NAND存储装置630。
因此,在实施方案中,EG和集可与ZNS组合以提供对如何、在何处以及在何种配置下将数据存储到SSD上的各种用户定义的区段的更大控制。在实施方案中,这样将控制功能暴露于SSD主机允许主机精细地控制在指定区进行的写入操作、编程操作和擦除操作,并根据需要改变那些规范。这种扩展的功能向数据中心和其它超大规模用户及其客户端提供了改善的性能。在实施方案中,可将较大的SSD划分成区的组以供主机设备更好地使用。在实施方案中,组可包括例如EG,EG包括一个或多个集,每个集包含限定的一组区,该集具有其自身的一组集特性,或如果仅存在一个集,则EG。在一个或多个实施方案中,主机可以使用不同EG或其内的集来访问设备,并由此管理SSD中的管芯或信道冲突。
在实施方案中,一种配置固态设备(SSD)的方法包括:将所述SSD的至少一部分配置为分区命名空间;将所述分区命名空间划分成一个或多个EG,每个EG包括一个或多个集,其中每个集具有其自身的一组预定义属性,并且其中每个EG的每个集包括一个或多个区,并且每个区包括一个或多个块。
在实施方案中,所述方法还包括:将所述SSD的另一部分配置为常规命名空间。
在一些实施方案中,每个EG的每个集包括两个或更多个区。在一些实施方案中,所述分区命名空间被划分成三个EG,每个EG包括至少一个集。在一些此类实施方案中,每个EG具有单个集,并且第一EG具有每区八个块,并且第二EG和第三EG各自具有每区四个块。
在一些实施方案中,集的所述一个或多个区中的每个区包括每区预定义数量的块。在一些实施方案中,集的数据属性包括以下中的至少一者:每区块的数量、每单元位的数量或单元上所允许的一组存储操作。在一些此类实施方案中,集的每个区被配置为以下中的任一者:只允许读取操作,只允许读取操作和写入操作,或允许读取操作、写入操作和擦除操作中的每一者。
在一些实施方案中,集包括所述SSD的一个或多个完整的管芯。在一些实施方案中,EG或集边界延伸穿过所述SSD的一个或多个管芯。
在一些实施方案中,所述方法还包括:改变一个集的所述预定义属性而不改变所述ZNS的任何其它集的所述预定义属性。在其它实施方案中,所述方法还包括:向用户提供被配置为向所述用户呈现所述ZNS的配置选项的主机接口;从所述用户接收针对所述ZNS的配置命令;以及根据所述用户的命令配置所述ZNS。在一些此类实施方案中,所述主机接口显示所述SSD的管芯的视觉表示,并且接收关于EG边界和集边界的用户输入。在一些此类实施方案中,所述用户输入包括围绕或跨所述管芯的所述视觉表示绘制的线。
在一些实施方案中,一种系统包括:NAND存储器和NAND控制器,所述NAND控制器包括:主机接口,所述主机接口被配置为从主机计算机接收所述NAND存储器的配置命令;和耦接到所述主机接口的处理电路,所述处理电路被配置为响应于从所述主机计算机接收的至少一个命令而将所述NAND存储器的分区命名空间配置为包括一个或多个EG,每个EG具有其自身的一组属性,其中每个EG包括一个或多个区,并且每个区包括一个或多个块。
在一些实施方案中,所述处理电路被进一步配置为响应于所述至少一个命令将每个EG配置成具有一个或多个集,所述一个或多个集中的每个集包括所述EG的一个或多个区。另外,在一些实施方案中,所述处理电路被进一步配置为:响应于从所述主机计算机接收的至少一个附加命令,改变EG内的一个或多个集的边界,向EG添加新的集,或组合EG的两个集,而不改变存储在所述EG的所述区中的数据。
在一些实施方案中,一种计算装置包括:用于接收用于将SSD的至少一部分配置为ZNS的一个或多个用户命令的装置;和用于响应于所述命令而将所述SSD的至少一部分配置为ZNS的装置。在此类实施方案中,所述用于配置的装置包括:用于将所述ZNS划分成一个或多个EG的装置,每个EG包括一个或多个集,每个集具有其自身的一组预定义属性,并且每个EG的每个集包括一个或多个区,每个区包括一个或多个块。
在所述装置的一些实施方案中,集的所述一个或多个区中的每个区包括每区预定义数量的块。在所述装置的一些实施方案中,所述用于配置的装置还包括:用于响应于一个或多个附加用户命令而改变EG内的一个或多个集的边界的装置。
虽然前述内容针对本公开的实施方案,但是可以在不脱离本公开的基本范围的情况下设想本公开的其他和另外的实施方案,并且本公开的范围由所附权利要求书确定。
Claims (20)
1.一种配置固态设备(SSD)的方法,包括:
将所述SSD的至少一部分配置为分区命名空间;
将所述分区命名空间划分成一个或多个耐久性组(EG),每个EG包括一个或多个集,其中每个集具有其自身的一组预定义属性,
其中每个EG的每个集包括一个或多个区,并且每个区包括一个或多个块。
2.根据权利要求1所述的方法,其中将所述SSD的另一部分配置为常规命名空间。
3.根据权利要求1所述的方法,其中每个EG的每个集包括两个或更多个区。
4.根据权利要求1所述的方法,其中所述分区命名空间被划分成三个EG,每个EG包括至少一个集。
5.根据权利要求4所述的方法,其中每个EG具有单个集,并且其中第一EG具有每区八个块,并且第二EG和第三EG各自具有每区四个块。
6.根据权利要求1所述的方法,其中集的所述一个或多个区中的每个区包括每区预定义数量的块。
7.根据权利要求1所述的方法,其中集的数据属性包括以下中的至少一者:每区块的数量、每单元位的数量或单元上允许的存储操作。
8.根据权利要求7所述的方法,其中集的每个区被配置为以下中的任一者:只允许读取操作,只允许读取操作和写入操作,或允许读取操作、写入操作和擦除操作。
9.根据权利要求1所述的方法,其中集包括所述SSD的一个或多个完整的管芯。
10.根据权利要求1所述的方法,其中EG或集边界延伸穿过所述SSD的一个或多个管芯。
11.根据权利要求1所述的方法,还包括:改变集的所述预定义属性而不改变所述分区命名空间的任何其它集的所述预定义属性。
12.根据权利要求1所述的方法,还包括:
提供被配置为向用户呈现所述分区命名空间的配置选项的主机接口;
从所述用户接收针对所述分区命名空间的配置命令;以及
根据所述命令配置所述分区命名空间。
13.根据权利要求12所述的方法,其中所述主机接口显示所述SSD的管芯的视觉表示,并且接收关于EG边界和集边界的用户输入。
14.根据权利要求14所述的方法,其中所述用户输入包括围绕或跨所述管芯的所述视觉表示绘制的线。
15.一种系统,所述系统包括:
NAND存储器和NAND控制器;
所述NAND控制器包括:
主机接口,所述主机接口被配置为从主机计算机接收针对所述NAND存储器的配置命令;和
耦接到所述主机接口的处理电路,所述处理电路被配置为响应于从所述主机计算机接收的至少一个命令:
将所述NAND存储器的分区命名空间配置为包括:
一个或多个EG,每个EG具有其自身的一组属性,其中每个EG包括一个或多个区,并且每个区包括一个或多个块。
16.根据权利要求15所述的系统,其中所述处理电路被进一步配置为响应于所述至少一个命令将每个EG配置成具有一个或多个集,所述一个或多个集中的每个集包括所述EG的一个或多个区。
17.根据权利要求16所述的系统,其中所述处理电路被进一步配置为:响应于从所述主机计算机接收的至少一个附加命令,改变EG内的一个或多个集的边界,向EG添加新的集,或组合EG的两个集,而不改变存储在所述EG的所述区中的所述数据。
18.一种计算装置,包括:
用于接收用于将SSD的至少一部分配置为分区命名空间的一个或多个用户命令的装置;和
用于响应于所述命令而将所述SSD的至少一部分配置为分区命名空间的装置,
其中所述用于配置的装置包括:
用于将所述分区命名空间划分成一个或多个耐久性组(EG)的装置,每个EG包括一个或多个集,其中每个集具有其自身的一组预定义属性,其中每个EG的每个集包括一个或多个区,并且每个区包括一个或多个块。
19.根据权利要求18所述的装置,其中集的所述一个或多个区中的每个区包括每区预定义数量的块。
20.根据权利要求18所述的装置,其中所述用于配置的装置还包括:用于响应于一个或多个附加用户命令而改变EG内的一个或多个集的边界的装置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962930897P | 2019-11-05 | 2019-11-05 | |
US62/930,897 | 2019-11-05 | ||
US16/868,354 | 2020-05-06 | ||
US16/868,354 US11726679B2 (en) | 2019-11-05 | 2020-05-06 | Applying endurance groups to zoned namespaces |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112783425A true CN112783425A (zh) | 2021-05-11 |
CN112783425B CN112783425B (zh) | 2024-08-09 |
Family
ID=75687275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010546253.4A Active CN112783425B (zh) | 2019-11-05 | 2020-06-16 | 将耐久性组应用于分区命名空间 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11726679B2 (zh) |
KR (1) | KR102438308B1 (zh) |
CN (1) | CN112783425B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138193A (zh) * | 2021-11-25 | 2022-03-04 | 郑州云海信息技术有限公司 | 一种分区命名空间固态硬盘的数据写入方法、装置及设备 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11789611B2 (en) | 2020-04-24 | 2023-10-17 | Netapp, Inc. | Methods for handling input-output operations in zoned storage systems and devices thereof |
US11550727B2 (en) * | 2020-06-18 | 2023-01-10 | Micron Technology, Inc. | Zone-aware memory management in memory subsystems |
US11442646B2 (en) * | 2020-09-09 | 2022-09-13 | Western Digital Technologies Inc. | Identified zones for optimal parity sharing zones |
KR20220048569A (ko) * | 2020-10-13 | 2022-04-20 | 에스케이하이닉스 주식회사 | 메모리 시스템에서 저장 공간을 제어하는 장치 및 방법 |
KR20220060372A (ko) * | 2020-11-04 | 2022-05-11 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
US11604591B2 (en) * | 2020-12-17 | 2023-03-14 | Micron Technology, Inc. | Associating data types with stream identifiers for mapping onto sequentially-written memory devices |
US11340987B1 (en) * | 2021-03-04 | 2022-05-24 | Netapp, Inc. | Methods and systems for raid protection in zoned solid-state drives |
US11733895B2 (en) * | 2021-03-31 | 2023-08-22 | Silicon Motion, Inc. | Control method of flash memory controller and associated flash memory controller and storage device |
US11748011B2 (en) * | 2021-03-31 | 2023-09-05 | Silicon Motion, Inc. | Control method of flash memory controller and associated flash memory controller and storage device |
US11809328B2 (en) * | 2021-04-01 | 2023-11-07 | Silicon Motion, Inc. | Control method of flash memory controller and associated flash memory controller and storage device |
JP2023044518A (ja) * | 2021-09-17 | 2023-03-30 | キオクシア株式会社 | メモリシステムおよび方法 |
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 |
US11861231B2 (en) | 2021-12-16 | 2024-01-02 | Netapp, Inc. | Scalable solid-state storage system and methods thereof |
US11940911B2 (en) | 2021-12-17 | 2024-03-26 | Netapp, Inc. | Persistent key-value store and journaling system |
US11853612B2 (en) | 2022-04-06 | 2023-12-26 | Western Digital Technologies, Inc. | Controlled system management based on storage device thermal load |
US11941273B2 (en) * | 2022-05-12 | 2024-03-26 | Western Digital Technologies, Inc. | Variable capacity Zone Namespace (ZNS) flash storage data path |
US11880604B2 (en) * | 2022-05-12 | 2024-01-23 | Western Digital Technologies, Inc. | Read fused groups with uniform resource allocation |
US11922036B2 (en) | 2022-05-12 | 2024-03-05 | Western Digital Technologies, Inc. | Host data stream assignment with space-leveling across storage block containers |
US11853203B1 (en) * | 2022-06-23 | 2023-12-26 | Western Digital Technologies, Inc. | Systems and methods with variable size super blocks in zoned namespace devices |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BE670911A (zh) * | 1964-10-14 | 1966-01-31 | ||
JPH0335227A (ja) * | 1989-06-30 | 1991-02-15 | Nec Corp | 波長変換素子およびその製造方法 |
WO2010025614A1 (zh) * | 2008-09-05 | 2010-03-11 | 中兴通讯股份有限公司 | 一种分片存储实现媒体分发、定位的方法及其流媒体系统 |
US7685109B1 (en) * | 2005-12-29 | 2010-03-23 | Amazon Technologies, Inc. | Method and apparatus for data partitioning and replication in a searchable data service |
US9015439B1 (en) * | 2014-05-30 | 2015-04-21 | SanDisk Technologies, Inc. | Event lock storage device |
CN105009091A (zh) * | 2012-12-26 | 2015-10-28 | 西部数据技术公司 | 用于数据存储系统的动态预留空间 |
WO2017195928A1 (ko) * | 2016-05-13 | 2017-11-16 | 주식회사 맴레이 | 플래시 기반 저장 장치 및 이를 포함하는 컴퓨팅 디바이스 |
US20180188985A1 (en) * | 2016-12-29 | 2018-07-05 | Intel Corporation | Persistent storage device with a virtual function controller |
US10115437B1 (en) * | 2017-06-26 | 2018-10-30 | Western Digital Technologies, Inc. | Storage system and method for die-based data retention recycling |
US20190034120A1 (en) * | 2017-12-29 | 2019-01-31 | Intel Corporation | Stream classification based on logical regions |
CN109799950A (zh) * | 2017-11-17 | 2019-05-24 | 西部数据技术公司 | 中间存储的适应性管理 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
JP6403162B2 (ja) | 2015-07-23 | 2018-10-10 | 東芝メモリ株式会社 | メモリシステム |
US20190220680A1 (en) * | 2016-03-07 | 2019-07-18 | HangZhou HaiCun Information Technology Co., Ltd. | Distributed Pattern Processor Package |
US10372344B2 (en) * | 2016-12-08 | 2019-08-06 | Western Digital Technologies, Inc. | Read tail latency reduction |
CN108108811B (zh) * | 2017-12-18 | 2021-07-30 | 南京地平线机器人技术有限公司 | 神经网络中的卷积计算方法和电子设备 |
US20190073302A1 (en) * | 2018-11-06 | 2019-03-07 | Intel Corporation | Ssd boot based on prioritized endurance groups |
US10949120B2 (en) * | 2019-02-19 | 2021-03-16 | Intel Corporation | Host defined bandwidth allocation for SSD tasks |
US11797433B2 (en) * | 2019-12-20 | 2023-10-24 | Sk Hynix Nand Product Solutions Corp. | Zoned namespace with zone grouping |
-
2020
- 2020-05-06 US US16/868,354 patent/US11726679B2/en active Active
- 2020-06-15 KR KR1020200072299A patent/KR102438308B1/ko active IP Right Grant
- 2020-06-16 CN CN202010546253.4A patent/CN112783425B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BE670911A (zh) * | 1964-10-14 | 1966-01-31 | ||
JPH0335227A (ja) * | 1989-06-30 | 1991-02-15 | Nec Corp | 波長変換素子およびその製造方法 |
US7685109B1 (en) * | 2005-12-29 | 2010-03-23 | Amazon Technologies, Inc. | Method and apparatus for data partitioning and replication in a searchable data service |
WO2010025614A1 (zh) * | 2008-09-05 | 2010-03-11 | 中兴通讯股份有限公司 | 一种分片存储实现媒体分发、定位的方法及其流媒体系统 |
CN105009091A (zh) * | 2012-12-26 | 2015-10-28 | 西部数据技术公司 | 用于数据存储系统的动态预留空间 |
US9015439B1 (en) * | 2014-05-30 | 2015-04-21 | SanDisk Technologies, Inc. | Event lock storage device |
WO2017195928A1 (ko) * | 2016-05-13 | 2017-11-16 | 주식회사 맴레이 | 플래시 기반 저장 장치 및 이를 포함하는 컴퓨팅 디바이스 |
US20180188985A1 (en) * | 2016-12-29 | 2018-07-05 | Intel Corporation | Persistent storage device with a virtual function controller |
US10115437B1 (en) * | 2017-06-26 | 2018-10-30 | Western Digital Technologies, Inc. | Storage system and method for die-based data retention recycling |
CN109799950A (zh) * | 2017-11-17 | 2019-05-24 | 西部数据技术公司 | 中间存储的适应性管理 |
US20190034120A1 (en) * | 2017-12-29 | 2019-01-31 | Intel Corporation | Stream classification based on logical regions |
CN110007852A (zh) * | 2017-12-29 | 2019-07-12 | 英特尔公司 | 基于逻辑区域的流分类 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138193A (zh) * | 2021-11-25 | 2022-03-04 | 郑州云海信息技术有限公司 | 一种分区命名空间固态硬盘的数据写入方法、装置及设备 |
CN114138193B (zh) * | 2021-11-25 | 2024-03-26 | 郑州云海信息技术有限公司 | 一种分区命名空间固态硬盘的数据写入方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112783425B (zh) | 2024-08-09 |
KR102438308B1 (ko) | 2022-08-30 |
US20210132827A1 (en) | 2021-05-06 |
KR20210054440A (ko) | 2021-05-13 |
US11726679B2 (en) | 2023-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112783425B (zh) | 将耐久性组应用于分区命名空间 | |
US10185658B2 (en) | Efficient implementation of optimized host-based garbage collection strategies using xcopy and multiple logical stripes | |
US9921956B2 (en) | System and method for tracking block level mapping overhead in a non-volatile memory | |
CN102622189B (zh) | 存储虚拟化的装置、数据存储方法及系统 | |
CN101458613B (zh) | 一种混合分级阵列的实现方法、混合分级阵列和存储系统 | |
EP2042995B1 (en) | Storage device and deduplication method | |
US9239781B2 (en) | Storage control system with erase block mechanism and method of operation thereof | |
US20200110537A1 (en) | File system metadata decoding for optimizing flash translation layer operations | |
US20170242785A1 (en) | Efficient Implementation of Optimized Host-Based Garbage Collection Strategies Using Xcopy and Arrays of Flash Devices | |
US10394493B2 (en) | Managing shingled magnetic recording (SMR) zones in a hybrid storage device | |
CN102779096B (zh) | 一种基于页块面三维的闪存地址映射方法 | |
CN102317925B (zh) | 存储器系统和控制存储器系统的方法 | |
US8131926B2 (en) | Generic storage container for allocating multiple data formats | |
CN102521152B (zh) | 一种分级存储方法及系统 | |
CN108733319A (zh) | 用于非易失性存储器中的混合推拉数据管理的系统和方法 | |
CN103827804B (zh) | 在物理区块间拷贝数据的磁盘阵列装置、磁盘阵列控制器以及方法 | |
US20060085594A1 (en) | Metadata for a grid based data storage system | |
US20150186259A1 (en) | Method and apparatus for storing data in non-volatile memory | |
CN105739915A (zh) | 存储系统中执行的条带重建方法和存储系统 | |
CN111373383B (zh) | 存储器高速缓存管理 | |
US10481979B2 (en) | Storage system, computing system, and methods thereof | |
EP4185963B1 (en) | Zone hints for zoned namespace storage devices | |
CN101566929B (zh) | 虚拟磁盘驱动系统和方法 | |
CN115705168A (zh) | 非易失性存储器装置中的名称空间管理的块大小的选择 | |
CN114442946A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240829 Address after: California, USA Patentee after: SanDisk Technology Co. Country or region after: U.S.A. Address before: California, USA Patentee before: Western Digital Technologies, Inc. Country or region before: U.S.A. |
|
TR01 | Transfer of patent right |