CN114730287A - 具有由主机选择的控制水平的基于分区的设备 - Google Patents

具有由主机选择的控制水平的基于分区的设备 Download PDF

Info

Publication number
CN114730287A
CN114730287A CN202080078983.4A CN202080078983A CN114730287A CN 114730287 A CN114730287 A CN 114730287A CN 202080078983 A CN202080078983 A CN 202080078983A CN 114730287 A CN114730287 A CN 114730287A
Authority
CN
China
Prior art keywords
data storage
storage device
host
host device
data
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
CN202080078983.4A
Other languages
English (en)
Inventor
I·阿尔罗德
S·班尼斯提
A·纳冯
J·G·哈恩
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 CN114730287A publication Critical patent/CN114730287A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of 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/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/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/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/0658Controller construction arrangements
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

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

Abstract

本公开总体涉及主机数据存储设备系统的柔性或软架构解决方案。允许主机对存储器管理承担不同的中间级别的责任。存储器设备的存储器管理中的不同主机参与级别是现有分区命名空间(ZNS)解决方案和开放信道解决方案之间的任何级别。数据存储设备提供对主机设备的特定存储器管理选项的选择。然后,主机设备选择期望的存储器管理水平并配置该数据存储设备以满足存储器管理选择。在这样做时,主机设备控制存储器管理的主机设备开销和主机设备灵活性之间的权衡。

Description

具有由主机选择的控制水平的基于分区的设备
相关申请的交叉引用
本申请要求2020年4月27日提交的美国申请第16/859,940号的优先权,该申请全文以引用方式并入本文。
背景技术
技术领域
本公开的实施方案总体涉及根据主机特定需要允许存储器管理的主机开销和主机灵活性之间的权衡。
相关领域的描述
分区命名空间(ZNS)是存储领域的新方向,其中数据存储设备限制写入顺序分区。ZNS旨在通过将主机写入模式与内部设备几何结构对准并减少对不直接链接到主机写入的设备侧写入的需要,从而减少设备侧写入放大和过度预配。
ZNS提供许多益处,包括:由于每个SSD的最小DRAM要求而降低了TCO;由于减少了对NAND介质的过度预配的需要而潜在地节省;通过减少写入放大而获得更好的SSD寿命;显著降低的延迟;显著改善的吞吐量;以及具有实现强大软件和硬件外部系统的标准化接口。
在开放信道环境中,主机设备跨多个设备执行闪存管理的许多方面,并且设备向主机设备呈现其内部几何结构。为了减少设备侧写入放大和过度预配,ZNS和开放信道架构均提供主机设备对数据存储设备责任增强的解决方案。ZNS和开放信道架构之间的主要差异是,在开放信道中,主机设备知道数据存储设备的物理结构(例如,信道、管芯、平面和块的数目),并且主机设备负责处理存储器维护,诸如垃圾收集、数据重新定位等。分区抽象可以直接或间接地映射到特定的设备结构。
ZNS和开放信道提出两个不同的解决方案,每个解决方案都具有在数据存储设备上的主机设备的固定控制水平。这些方法中的每一种方法都具有相关缺点。对于开放信道,主机设备的灵活性更高,但代价是存储器维护的主机设备开销更高。对于ZNS,减少了主机对存储器维护的责任,但是主机设备被迫遵守ZNS上对写入模式的严格限制。
因此,本领域需要一种灵活的系统架构解决方案,其允许根据主机特定需要在存储器管理的主机设备开销和主机设备灵活性之间进行权衡。
发明内容
本公开总体涉及主机数据存储设备系统的柔性或软架构解决方案。允许主机对存储器管理承担不同的中间级别的责任。存储器设备的存储器管理中的不同主机参与级别是现有分区命名空间(ZNS)解决方案和开放信道解决方案之间的任何级别。数据存储设备提供对主机设备的特定存储器管理选项的选择。然后,主机设备选择期望的存储器管理水平并配置该数据存储设备以满足存储器管理选择。在这样做时,主机设备控制存储器管理的主机设备开销和主机设备灵活性之间的权衡。
在一个实施方案中,一种数据存储设备包括:存储器设备;和控制器,该控制器耦接到存储器设备,其中该控制器被配置为:将支持特征列表递送到主机设备,其中该支持特征列表包括磨损水平处理、垃圾收集、数据标记、读取清理;以及管理表更新;从主机设备接收对支持特征的选择;以及根据所选支持特征配置数据存储设备。
在另一个实施方案中,一种数据存储设备包括:存储器设备;和控制器,该控制器耦接到存储器设备,其中该控制器被配置为:将配置选择递送到主机设备,其中该配置选择包括开放信道配置、分区命名空间(ZNS)配置以及在ZNS配置和开放信道配置之间的配置。
在另一个实施方案中,一种数据存储设备包括:存储器设备;控制器,该控制器耦接到存储器设备;用于接收主机设备指令以在由主机设备选择的配置中配置数据存储设备的装置,其中在接收到主机设备指令之前,数据存储设备能够以开放信道配置、ZNS配置或在开放信道配置和ZNS配置之间的配置操作;和用于将数据存储设备配置为能够操作由主机设备选择的配置的装置。
附图说明
因此,通过参考实施方案,可以获得详细理解本公开的上述特征的方式、本公开的更具体描述、上述简要概述,所述实施方案中的一些在附图中示出。然而,应当注意的是,附图仅示出了本公开的典型实施方案并且因此不应视为限制其范围,因为本公开可以允许其他同等有效的实施方案。
图1是示出根据本公开的一种或多种技术的具有可以用作主机设备的存储设备的存储设备的存储系统的示意性框图。
图2A是传统块存储设备的示意图。
图2B是分区块存储设备的示意图。
图3A是传统SSD的设备控制的示意图。
图3B是ZNS SSD的设备控制的示意图。
图4是SSD中开放信道逻辑并行性的示意图。
图5是示出允许主机根据主机特定需要调整配置的方法的流程图。
为了有助于理解,在可能的情况下,使用相同的参考标号来表示附图中共有的相同元件。可以设想是,在一个实施方案中公开的元件可以有利地用于其他实施方案而无需具体叙述。
具体实施方式
在下文中,参考本公开的实施方案。然而,应当理解的是,本公开不限于具体描述的实施方案。相反,思考以下特征和元件的任何组合(无论是否与不同实施方案相关)以实现和实践本公开。此外,尽管本公开的实施方案可以实现优于其他可能解决方案和/或优于现有技术的优点,但是否通过给定实施方案来实现特定优点不是对本公开的限制。因此,以下方面、特征、实施方案和优点仅是说明性的,并且不被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。同样地,对“本公开”的引用不应当被解释为本文公开的任何发明主题的概括,并且不应当被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。
本公开总体涉及主机数据存储设备系统的柔性或软架构解决方案。允许主机对存储器管理承担不同的中间级别的责任。存储器设备的存储器管理中的不同主机参与级别是现有分区命名空间(ZNS)解决方案和开放信道解决方案之间的任何级别。数据存储设备提供对主机设备的特定存储器管理选项的选择。然后,主机设备选择期望的存储器管理水平并配置该数据存储设备以满足存储器管理选择。在这样做时,主机设备控制存储器管理的主机设备开销和主机设备灵活性之间的权衡。
图1是示出根据本公开的一种或多种技术的存储系统100的示意性框图,其中数据存储设备106可以用作主机设备104的存储设备。例如,主机设备104可以利用包括在数据存储设备106中的NVM 110来存储和检索数据。主机设备104包括主机DRAM 138,该主机DRAM包括读取缓冲器140。读取缓冲器140可用于存储待发送到数据存储设备106的读取命令。在一些示例中,存储系统100可以包括可作为存储阵列工作的多个存储设备,诸如数据存储设备106。例如,存储系统100可以包括多个数据存储设备106,其被配置成共同用作主机设备104的大容量存储设备的廉价/独立磁盘(RAID)冗余阵列。
存储系统100包括主机设备104,该主机设备可以向一个或多个存储设备诸如数据存储设备106存储数据和/或从其检索数据。如图1所示,主机设备104可以经由接口114与数据存储设备106通信。主机设备104可以包括多种设备中的任何一种,包括计算机服务器、网络附接存储(NAS)单元、台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、电话手机诸如所谓的“智能”电话、所谓的“智能”平板电脑、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备等。
数据存储设备106包括控制器108、非易失性存储器110(NVM 110)、电源111、易失性存储器112、接口114和写入缓冲器116。在一些示例中,为了清楚起见,数据存储设备106可以包括图1中未示出的附加部件。例如,数据存储设备106可以包括印刷板(PB),数据存储设备106的部件机械地附接到该印刷板,并且该印刷板包括电互连数据存储设备106的部件等的导电迹线。在一些示例中,数据存储设备106的物理尺寸和连接器配置可以符合一个或多个标准形状因数。一些示例性标准形状因子包括但不限于3.5″数据存储设备(例如,HDD或SSD)、2.5″数据存储设备、1.8″数据存储设备、外围部件互连(PCI)、PCI扩展(PCI-X)、PCIExpress(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可以被配置成存储和/或检索数据。例如,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闪存存储器设备擦除数据。
数据存储设备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。在一些实施方案中,当数据存储设备106从主机设备104接收写入命令时,控制器108可以发起数据存储命令以将数据存储到该NVM 110并且监测数据存储命令的进度。控制器108可以确定存储系统100的至少一个操作特性,并且将至少一个操作特性存储到该NVM 110。在一些实施方案中,当数据存储设备106从主机设备104接收到写入命令时,控制器108在将数据发送至NVM 110之前将与写入命令相关联的数据暂时存储在内部存储器或写入缓冲器116中。
图2A和图2B是根据各种实施方案的块存储设备的示意图。在一个实施方案中,图2A和图2B的块存储设备可以是图1的数据存储设备106的NVM 110。此外,根据各种实施方案,图2A和图2B的块存储设备可以是多级单元,诸如SLC、MLC、TLC、QLC或未列出的多级单元的任何其他迭代。图2A和图2B的块存储设备的每个正方形表示可用于数据存储的块。阴影正方形或块表示该块包括数据。数据可以是用户数据、XOR或奇偶校验数据、设备元数据或要存储在块存储设备中的任何其他合适的数据。
图2A是传统块存储设备的示意图。在传统块存储系统中,数据按顺序写入存储设备。然而,数据可能被低效地写入驱动器,从而导致驱动器的工作或有效容量降低。在图2A中,数据已被写入分散在整个块存储设备中的块。为了克服对驱动器的低效写入,块存储系统可以被过度预配,使得暴露的容量(即,可用于数据的容量)类似于有效写入的块存储设备容量。存储设备的增加的容量和对存储设备的低效写入可能在易失性存储器(诸如图1的易失性存储器112)内需要大映射表(诸如逻辑到物理(L2P)表)来存储数据在块存储设备内的位置。大映射表可能需要高容量易失性存储器112,这可能是成本低效的或昂贵的。
图2B是分区块存储设备的示意图。分区块存储设备被划分为各个分区,其中第N个分区对应于存储设备中的最后一个分区,并且每个分区的容量相等。在另一个实施方案中,分区块存储设备被划分为各种流,其中每个流的容量不同。在分区块存储系统中,系统包括固件,诸如ZNS。ZNS将数据写入限制为在分区内按顺序写入。在图2B中,数据已经被按顺序写入到分区1的前四个块中,按顺序写入到分区2的前六个块中,以及按顺序写入到分区N的前四个块中。由于ZNS将数据写入限制为在分区内按顺序写入,因此每个分区的容量被优化。因此,存储设备的可用容量(即,数据的可用容量)增加而不是必须过度预配存储设备以维持相同量的可用容量。对分区块存储设备的数据的可用容量的更好利用可以减小存储在易失性存储器112中的映射表或L2P表的大小,这可以减小所需的易失性存储器112的大小。
图3A和图3B是根据各种实施方案的SSD的设备控制的示意图。图2A和图2B的方面可以适用于对图3A和图3B的理解。在一个实施方案中,图3A和图3B的闪存设备可以是图1的数据存储设备106的NVM 110。此外,根据各种实施方案,图3A和图3B的闪存设备可以是多级单元,诸如SLC、MLC、TLC、QLC或未列出的多级单元的任何其他迭代。图3A和图3B的块存储设备的每个正方形表示可用于数据存储的块。阴影正方形或块表示该块包括数据。该数据可以是用户数据、XOR或奇偶校验数据、设备元数据或要存储在SSD的闪存中的任何其他合适的数据。
图3A是传统SSD的设备控制的示意图。SSD从多个应用程序诸如应用程序1、应用程序2和应用程序3接收数据。数据存储在SSD的闪存中。在SSD中,存储设备控制数据放置。数据按顺序写入闪存,使得来自每个应用程序的数据可以按接收数据的顺序被写入。因为来自每个应用程序的数据在整个顺序写入中可以是随机的,所以耐久性和设备寿命可能受到负面影响。ZNS设备相对倾向于具有较低的吞吐量,因为当单独访问分区时,并行性较少。然而,在分区中的所有写入是按顺序的,并且分区只能一次性全部重置,这意味着无需垃圾收集并且自主写入较少,从而产生更好的写入放大和更长的设备寿命。
图3B是ZNS SSD的设备控制的示意图。类似于图3A,SSD从多个应用程序(诸如应用程序1、应用程序2和应用程序3)接收数据。数据存储在SSD的闪存中。在SSD中,应用程序或主机(诸如图1的主机设备104)控制分区中的数据放置。SSD的闪存被划分为各种相等容量分区。这些分区可被视为并行单元,其中主机设备104可将工作负载或数据引导至特定并行单元(即,主机具有闪存的块访问)。例如,与应用程序1相关联的数据位于第一分区中,而与应用程序2相关联的数据位于第二分区中,并且与应用程序3相关联的数据位于第三分区中。由于分区预配,与传统SSD设备相比,耐久性和设备寿命可以改进。
在开放信道环境中,主机设备跨多个数据存储设备执行闪存管理的许多方面,并且数据存储设备向主机设备呈现其内部几何结构。图4是SSD中开放信道逻辑并行性的示意图。在图4中,结构被划分为组、平行单元(PU)、分块和逻辑块。组是开放信道SSD内的共享总线,其中在附接的PU之间共享带宽和传输开销(PCIe、控制器、DRAM、读取/写入/重置之间没有阻断)。PU是SSD内的并行性单元,并且PU访问完全独立于其他PU。例如,如果向一个PU发出写入,则另一个PU不应忙碌,除了通过共享同一组引入的延迟之外。注意,表示不一定是物理介质附件,并且可以是逻辑表示。在PU内,存在一组分块。分块表示逻辑块的线性范围。分块需要按顺序发出对分块的写入,并且在再次写入之前将分块重置。
如上所述,ZNS在一方面需要主机设备在数据存储设备管理中的最小参与,但在另一方面严格限制主机设备诸如以顺序方式仅写入大分块数据。开放信道解决方案允许主机设备更多的灵活性,但代价是主机设备几乎完全负责处理存储器维护。
如本文所讨论的,公开了可配置的分级主机存储器管理架构,其将允许主机设备选择主机设备想要处理的“软”水平的存储器管理。数据存储设备将根据主机设备配置支持存储器管理的这些多选项。主机干扰水平的配置可以是静态的,或者在一个实施方案中是动态的。
在某种意义上,数据存储设备将呈现用于存储器管理的选项“菜单”。选项范围为从开放信道配置(其中主机设备处理绝大多数存储器管理)到ZNS(数据存储设备借此将处理绝大多数存储器管理)以及位于其间的每一处。主机设备可以从存储器管理选项“菜单”中选择。主机设备可以选择主机设备将管理的存储器管理选项,并且因此留下要由数据存储设备管理的剩余存储器管理选项。另选地,主机设备可以选择数据存储设备将管理的存储器管理选项,并留下要由主机设备管理的剩余存储器管理选项。在任何情况下,可以通过允许主机设备选择期望的存储器管理水平来定制或制定存储器管理以满足主机设备的特定需要。此外,如果需要,主机设备可以改变存储器管理分布。尽管预期是罕见的,但是可以想到主机设备可能想要改变存储器管理分布,并且因此发起对数据存储设备再次呈现菜单的请求。为了做出这种改变,数据存储设备可以在任何时间接收请求,但是之后在数据存储设备的下一空闲时间期间呈现“菜单”。虽然不太可能,但是可以设想存储器管理的动态变化是可能的,由此在数据存储设备不空闲时呈现“菜单”。
有许多特征可以由数据存储设备或主机设备进行管理。操作中的一个操作是磨损水平处理,其是平衡沿着整个数据存储设备的物理块的程序/擦除计数的水平。另一个操作是垃圾收集,其是沿着数据存储设备重新排列数据以将相关数据收集在一起,并且避免碎片化数据排列。另一个操作是数据标记,其是交叉温度调平、数据可靠性、冷/热水平(即,访问频率和数据重要性)。又一个操作是读取清理,其是刷新存储的数据以减少由于若干存储器干扰(诸如数据保持)引起的错误。另一个操作是更新管理表,而另一个操作是编码和解码数据的纠错代码(ECC)。ECC将优选地保持在数据存储设备中的存储器控制器水平上,但是如果需要可以从主机设备完成。
如本文所讨论的,向主机设备呈现用于存储器管理的选项菜单,该菜单从开放信道管理到ZNS管理变化,并且具有其间所有事件。菜单提供存储器管理操作的不同预定义组合,以由数据存储设备或主机设备完成。数据存储设备向主机设备呈现存储器管理选项,并且主机设备选择所需的存储器管理水平。下表示出了可以由数据存储设备呈现给主机设备的若干选项。可以设想,可以将上文所讨论的各个选项呈现给主机设备,或者可以将各个选项的预设组合呈现给主机设备。
磨损水平处理 垃圾收集 数据标记 读取清理 管理表更新
选项1 主机 主机 主机 主机 主机
选项2 设备 设备 主机 设备 设备
选项3 主机 设备 主机 设备 设备
选项4 主机 设备 主机 设备 设备
选项5 设备 设备 设备 设备 设备
选项6 主机 主机 主机 主机 设备
选项7 设备 设备 设备 主机 设备
应理解,虽然表中已经示出了七个选项,但也可以考虑其他选项。实际上,通常来说,考虑了磨损水平处理、垃圾收集、数据标记、读取清理和管理表更新的任何组合。还应理解,可以细分成更高的粒度,使得数据标记的一部分可由主机完成,另一部分由数据存储设备控制器完成。主机管理水平的配置可以是静态的,这意味着在启动后无法改变主机管理水平。然而,可以设想主机管理水平可以是动态的,使得主机设备可以触发数据存储设备以使用其他不在预定义列表之内的、主机设备和数据存储设备均支持的此类干扰选项。本文所讨论的实施方案包括处理同一存储器阵列内的若干个区,或者数据存储设备的一起连接到同一主机设备的若干不同管芯或不同存储器设备,在该同一主机设备处,每个区/管芯/设备将以不同的干扰水平由主机设备处理。
图5是示出允许主机设备根据主机特定需要调整配置的方法的流程图。作为框502中的主机设备协议(例如,NVMe)初始化的一部分,在框504,数据存储设备向主机设备报告数据存储设备能力和灵活性支持。例如,数据存储设备向主机设备报告支持特征和非支持特征(即,根据上表或基于单独的选项)。然后在框506中,主机设备通过启用期望特征来配置数据存储设备。然后在框508中,主机设备和数据存储设备根据该配置工作。在某个时间点,在框510中,主机设备可能希望改变配置,并且因此在框512中,主机设备需要等待直到数据存储设备在重新配置开始之前处于空闲状态。
由数据存储设备提供给主机设备的选项菜单为主机设备提供了更大灵活性,以在主机设备操作数据存储设备存储器的灵活性与存储器管理相关操作中产生的开销之间进行权衡。当选项可以改变并适应系统当前状态时,选择选项的能力可以节省功率并提高性能。例如,主机设备通常写入大分块顺序数据,但是在一些情况下,主机设备需要随机写入访问。因此,系统可以切换到那些罕见写入命令的开放信道模式,然后返回到ZNS模式。
通过向主机设备提供对特定存储器管理选项的选择,主机设备可以选择期望的存储器管理水平。在这样做时,主机设备控制存储器管理的主机设备开销和主机设备灵活性之间的权衡。
在一个实施方案中,一种数据存储设备包括:存储器设备;和控制器,该控制器耦接到存储器设备,其中该控制器被配置为:将支持特征列表递送到主机设备,其中该支持特征列表包括磨损水平处理、垃圾收集、数据标记、读取清理;以及管理表更新;从主机设备接收对支持特征的选择;以及根据所选支持特征配置数据存储设备。接收对支持特征的选择包括接收对主机设备将管理的支持特征的选择。所接收的选择包括为主机设备选择足够的支持特征以进行管理,使得数据存储设备作为分区命名空间(ZNS)设备操作。所接收的选择包括为主机设备选择足够的支持特征以进行管理,使得数据存储设备作为开放信道设备操作。该控制器被配置为编码和解码数据。接收对支持特征的选择包括接收对主机设备将管理的磨损水平处理和数据标记的选择。该控制器被配置为从主机设备接收主机设备想要改变对支持特征的选择的通知。该控制器被配置为在改变对支持特征的选择之前等待,直到数据存储设备空闲。
在另一个实施方案中,一种数据存储设备包括:存储器设备;和控制器,该控制器耦接到存储器设备,其中该控制器被配置为:将配置选择递送到主机设备,其中该配置选择包括开放信道配置、分区命名空间(ZNS)配置以及在ZNS配置和开放信道配置之间的配置。该控制器被进一步配置为接收主机设备管理数据标记的主机选择。该控制器被进一步配置为接收主机设备管理磨损水平处理的主机选择。该控制器被进一步配置为接收主机设备管理磨损水平处理、垃圾收集、数据标记、读取清理以及管理表更新的主机选择。该控制器被被进一步配置为接收数据存储设备将管理磨损水平处理、垃圾收集、数据标记、读取清理以及管理表更新的主机选择。该控制器被配置为管理纠错代码。
在另一个实施方案中,一种数据存储设备包括:存储器设备;控制器,该控制器耦接到存储器设备;用于接收主机设备指令以在由主机设备选择的配置中配置数据存储设备的装置,其中在接收到主机设备指令之前,数据存储设备能够以开放信道配置、ZNS配置或在开放信道配置和ZNS配置之间的配置操作;和用于将数据存储设备配置为能够操作由主机设备选择的配置的装置。该数据存储设备还包括用于配置数据存储设备以管理垃圾收集的装置;和用于配置数据存储设备以允许主机设备管理磨损水平处理的装置。该数据存储设备还包括用于配置数据存储设备以允许主机设备管理数据标记的装置。该数据存储设备还包括用于配置数据存储设备以管理纠错代码的装置。该数据存储设备还包括用于配置数据存储设备以允许主机设备管理读取清理的装置。该数据存储设备还包括用于配置数据存储设备以允许主机设备管理更新管理表的装置。
虽然前述内容针对本公开的实施方案,但是可以在不脱离本公开的基本范围的情况下设想本公开的其他和另外的实施方案,并且本公开的范围由所附权利要求书确定。

Claims (20)

1.一种数据存储设备,所述数据存储设备包括:
存储器设备;和
控制器,所述控制器耦接到所述存储器设备,其中所述控制器被配置为:
将支持特征列表递送到主机设备,其中所述支持特征列表包括磨损水平处理、垃圾收集、数据标记、读取清理;以及管理表更新;
从所述主机设备接收对所述支持特征的选择;以及
根据所选支持特征配置所述数据存储设备。
2.根据权利要求1所述的数据存储设备,其中接收对所述支持特征的所述选择包括接收对所述主机设备将管理的所述支持特征的选择。
3.根据权利要求1所述的数据存储设备,其中所接收的选择包括为所述主机设备选择足够的支持特征以进行管理,使得所述数据存储设备作为分区命名空间(ZNS)设备操作。
4.根据权利要求1所述的数据存储设备,其中所接收的选择包括为所述主机设备选择足够的支持特征以进行管理,使得所述数据存储设备作为开放信道设备操作。
5.根据权利要求1所述的数据存储设备,其中所述控制器被配置为编码和解码数据。
6.根据权利要求1所述的数据存储设备,其中接收所述支持特征的所述选择包括接收对所述主机设备将管理的所述磨损水平处理和数据标记的选择。
7.根据权利要求1所述的数据存储设备,其中所述控制器被配置为从所述主机设备接收所述主机设备想要改变对所述支持特征的所述选择的通知。
8.根据权利要求7所述的数据存储设备,其中所述控制器被配置为在改变对所述支持特征的所述选择之前等待,直到所述数据存储设备空闲。
9.一种数据存储设备,所述数据存储设备包括:
存储器设备;和
控制器,所述控制器耦接到所述存储器设备,其中所述控制器被配置为:
将配置选择递送到主机设备,其中所述配置选择包括开放信道配置、分区命名空间(ZNS)配置以及在所述ZNS配置和所述开放信道配置之间的配置。
10.根据权利要求9所述的数据存储设备,其中所述控制器被进一步配置为接收所述主机设备管理数据标记的主机选择。
11.根据权利要求10所述的数据存储设备,其中所述控制器被进一步配置为接收所述主机设备管理磨损水平处理的主机选择。
12.根据权利要求9所述的数据存储设备,其中所述控制器被进一步配置为接收所述主机设备管理磨损水平处理、垃圾收集、数据标记、读取清理以及管理表更新的主机选择。
13.根据权利要求9所述的数据存储设备,控制器被进一步配置为接收所述数据存储设备将管理磨损水平处理、垃圾收集、数据标记、读取清理和管理表更新的主机选择。
14.根据权利要求9所述的数据存储设备,其中所述控制器被进一步配置为管理纠错代码。
15.一种数据存储设备,所述数据存储设备包括:
存储器设备;
控制器,所述控制器耦接到所述存储器设备;
用于接收主机设备指令以在由所述主机设备选择的配置中配置所述数据存储设备的装置,其中在接收到所述主机设备指令之前,所述数据存储设备能够以开放信道配置、ZNS配置或在所述开放信道配置和所述ZNS配置之间的配置操作;和
用于将所述数据存储设备配置为能够操作由所述主机设备选择的所述配置的装置。
16.根据权利要求15所述的数据存储设备,所述数据存储设备还包括:
用于配置所述数据存储设备以管理垃圾收集的装置;和
用于配置所述数据存储设备以允许所述主机设备管理磨损水平处理的装置。
17.根据权利要求16所述的数据存储设备,还包括用于配置所述数据存储设备以允许所述主机设备管理数据标记的装置。
18.根据权利要求17所述的数据存储设备,还包括用于配置所述数据存储设备以管理纠错代码的装置。
19.根据权利要求18所述的数据存储设备,还包括用于配置所述数据存储设备以允许所述主机设备管理读取清理的装置。
20.根据权利要求19所述的数据存储设备,还包括用于配置所述数据存储设备以允许所述主机设备管理更新管理表的装置。
CN202080078983.4A 2020-04-27 2020-12-14 具有由主机选择的控制水平的基于分区的设备 Pending CN114730287A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/859,940 US11194489B2 (en) 2020-04-27 2020-04-27 Zone-based device with control level selected by the host
US16/859,940 2020-04-27
PCT/US2020/064916 WO2021221725A1 (en) 2020-04-27 2020-12-14 Zone-based device with control level selected by the host

Publications (1)

Publication Number Publication Date
CN114730287A true CN114730287A (zh) 2022-07-08

Family

ID=78222431

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080078983.4A Pending CN114730287A (zh) 2020-04-27 2020-12-14 具有由主机选择的控制水平的基于分区的设备

Country Status (4)

Country Link
US (1) US11194489B2 (zh)
CN (1) CN114730287A (zh)
DE (1) DE112020004959T5 (zh)
WO (1) WO2021221725A1 (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100823171B1 (ko) 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
US9329990B2 (en) 2013-01-11 2016-05-03 Micron Technology, Inc. Host controlled enablement of automatic background operations in a memory device
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9229854B1 (en) 2013-01-28 2016-01-05 Radian Memory Systems, LLC Multi-array operation support and related devices, systems and software
US9542118B1 (en) * 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US10552058B1 (en) * 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
US10254979B1 (en) 2017-09-28 2019-04-09 Intel Corporation Relocating or aborting a block of data by a host, based on media policies managed by a storage device
US20210117117A1 (en) * 2019-10-22 2021-04-22 Micron Technology, Inc. Construction of a block device

Also Published As

Publication number Publication date
US20210334022A1 (en) 2021-10-28
WO2021221725A1 (en) 2021-11-04
DE112020004959T5 (de) 2022-06-30
US11194489B2 (en) 2021-12-07

Similar Documents

Publication Publication Date Title
US11068170B2 (en) Multi-tier scheme for logical storage management
US11126378B1 (en) Rate limit on the transitions of zones to open
KR101908581B1 (ko) 저장 디바이스들에서의 웨어 레벨링
US9927999B1 (en) Trim management in solid state drives
KR20210001898A (ko) 존 네임스페이스에 대한 존 형성
JP2017079050A (ja) 保護されたデータとは別個のパリティデータの記憶
US11599304B2 (en) Data aggregation in ZNS drive
US9971515B2 (en) Incremental background media scan
CN114730604A (zh) 动态zns开放分区活动限制
CN114730282A (zh) Zns奇偶校验交换到dram
CN114746834A (zh) 基于分区状态的分区附加命令调度
KR20220022092A (ko) 존 구획 네임스페이스를 갖는 호스트 관리 하드웨어 압축
CN114730289A (zh) Zns需求的数据完整性保护
US20210373809A1 (en) Write Data-Transfer Scheduling in ZNS Drive
KR20220103340A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR102589609B1 (ko) 분할된 저장장치에서의 스냅샷 관리
KR20100105127A (ko) Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
US11556274B1 (en) Endurance groups ECC allocation
CN116897341A (zh) 隐含流
US11194489B2 (en) Zone-based device with control level selected by the host
CN113196226B (zh) 固态驱动器中的分区命名空间
US20240143227A1 (en) Data Storage Device and Method for Reducing Flush Latency
US11550487B2 (en) Data storage device and method for enabling endurance re-evaluation
US20220357878A1 (en) Data Storage Device and Method for Host-Initiated Cached Read to Recover Corrupted Data Within Timeout Constraints
WO2023069148A1 (en) Data storage devices, systems, and related methods for grouping commands of doorbell transactions from host devices

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