CN118043768A - 用户可配置的slc存储器大小 - Google Patents

用户可配置的slc存储器大小 Download PDF

Info

Publication number
CN118043768A
CN118043768A CN202280042636.5A CN202280042636A CN118043768A CN 118043768 A CN118043768 A CN 118043768A CN 202280042636 A CN202280042636 A CN 202280042636A CN 118043768 A CN118043768 A CN 118043768A
Authority
CN
China
Prior art keywords
logic
nand
cell region
cell
user
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
CN202280042636.5A
Other languages
English (en)
Inventor
C·A·克拉克
F·科拉多
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.)
Aisikai Hynix Memory Product Solutions Co
Original Assignee
Aisikai Hynix Memory Product Solutions Co
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 Aisikai Hynix Memory Product Solutions Co filed Critical Aisikai Hynix Memory Product Solutions Co
Publication of CN118043768A publication Critical patent/CN118043768A/zh
Pending legal-status Critical Current

Links

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0629Configuration or reconfiguration 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/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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

一种电子装置的实施例可以包括一个或多个基板;以及耦合到所述一个或多个基板的控制器,该控制器包括逻辑,该逻辑用于:控制对基于NAND的存储介质的访问,该基于NAND的存储介质包括具有第一数量级的第一单元区域和具有与第一数量级不同的第二数量级的第二区域;确定对应于用户可配置容量占位符的逻辑块地址位置;以及基于逻辑块地址位置在运行时调整第一单元区域和第二单元区域的相应大小。公开并要求保护其他实施例。

Description

用户可配置的SLC存储器大小
相关申请的交叉引用
本申请要求2021年4月15日提交的美国专利申请第17/231,893号的权益,其由此通过引用以其整体并入本文中。
背景技术
单级单元(SLC)缓冲区可以包括被组织成多个单元的NAND型闪速存储器(NAND存储器),其中每个单元包含一比特数据。三级单元(TLC)存储器可以包括被组织成多个单元的NAND存储器,其中每个单元包含三比特数据。四级单元(QLC)存储器可以包括被组织成多个单元的NAND存储器,其中每个单元包含四比特数据。每个单元的比特数可以一般取决于在与写入到该单元、从该单元读取和/或擦除该单元相关联的(一个或多个)编程操作期间使用多少不同的电压电平。因此,在TLC存储器的情况下,为了支持每个单元三比特,可以使用八个电压电平来在写入到该单元的一和零的八种可能组合(例如,000、001、010、011、100、101、110、111)之间区分。
一些存储系统包括确定与存储设备相关联的可编程驱逐比率(evictionratio)并根据可编程驱逐比率将存储设备中的SLC区域的一部分转换成多级单元(MLC)区域的技术。MLC可以包括TLC(例如,3比特或8级MLC)、QLC(例如,4比特或16级MLC)等。例如,转换成MLC区域的部分的量作为填入存储设备的百分比容量的函数逐渐变化。
一些存储系统可能包括动态SLC存储器控制器技术。例如,控制器可以在运行时确定SLC区域的动态部分中的有效数据量,并且基于SLC区域的动态部分中的所确定的有效数据量,在运行时调整SLC区域的动态部分的大小。
一些存储系统可能包括用于多级存储器再利用的技术。例如,存储器控制器可以响应于修改持久存储介质的配置的请求,重新提供持久存储介质。
附图说明
在附图中,本文中描述的材料通过示例的方式、并且不通过限制的方式来说明。为了说明的简单性和清楚性,图中所图示的元件不一定按比例绘制。例如,为了清楚起见,一些元件的尺寸可能相对于其他元件被夸大。另外,在认为适当的场合,附图标记已经在各图当中重复,以指示对应或类似的元件。在各图中:
图1是根据实施例的电子存储系统的示例的框图;
图2是根据实施例的电子装置的示例的框图;
图3是根据实施例的控制存储的方法的示例的流程图;
图4是根据实施例的过程流程的示例的说明性图;
图5是根据实施例的过程流程的另一示例的说明性图;
图6是根据实施例的存储系统的示例的框图;
图7是根据实施例的计算系统的另一示例的框图;以及
图8是根据实施例的固态驱动(SSD)设备的示例的框图。
具体实施方式
现在参考附图描述一个或多个实施例或实施方式。虽然讨论了具体的配置和布置,但是应该理解,这仅是为了说明性的目的而进行的。相关领域的技术人员将认识到,在不脱离本描述的精神和范围的情况下,可以采用其他配置和布置。对于相关领域的技术人员来说,将显而易见的是,除了本文中描述的系统和应用以外,本文中描述的技术和/或布置也可以用于各种其他系统和应用中。
虽然以下描述阐述了例如可以在诸如片上系统(SoC)架构之类的架构中表现的各种实施方式,但是本文中描述的技术和/或布置的实施方式不限于特定的架构和/或计算系统,并且可以由用于类似目的的任何架构和/或计算系统来实现。例如,采用例如多个集成电路(IC)芯片和/或封装、和/或各种计算设备和/或消费电子(CE)设备(诸如机顶盒、智能电话等)的各种架构可以实现本文中描述的技术和/或布置。另外,虽然以下描述可能阐述了许多具体细节,诸如逻辑实施方式、系统组件的类型和相互关系、逻辑划分/集成选择等,但是所要求保护的主题可以在没有这样的具体细节的情况下实践。在其他实例中,一些材料(诸如例如控制结构和完整的软件指令序列)可能没有详细示出,以免模糊本文中公开的材料。
本文中公开的材料可以以硬件、固件、软件或其任何组合来实现。本文中公开的材料也可以实现为存储在机器可读介质上的指令,其可以由一个或多个处理器读取和执行。机器可读介质可以包括用于以由机器(例如,计算设备)可读的形式存储或传输信息的任何介质和/或机构。例如,机器可读介质可以包括:只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光学存储介质;闪速存储器设备;电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等),以及其他。
说明书中对“一个实施方式”、“实施方式”、“示例实施方式”等的引用指示所描述的实施方式可以包括特定的特征、结构或特性,但是每一个实施例可能不一定都包括该特定的特征、结构或特性。此外,这样的短语不一定指相同的实施方式。另外,当结合实施例描述特定的特征、结构或特性时,兹提出结合其他实施方式实现这样的特征、结构或特性是在本领域技术人员的知识范围内,无论是否在本文中明确描述。
本文中描述的各种实施例可以包括存储器组件和/或到存储器组件的接口。这样的存储器组件可以包括易失性和/或非易失性(NV)存储器。易失性存储器可以是需要电力来维持由介质存储的数据的状态的存储介质。易失性存储器的非限制性示例可以包括各种类型的RAM,诸如动态RAM(DRAM)或静态RAM(SRAM)。可以用于存储器模块中的一种特定类型的DRAM是同步动态RAM(SDRAM)。NV存储器(NVM)可以是不需要电力来维持由介质存储的数据的状态的存储介质。在一个实施例中,存储器设备可以包括块可寻址存储器设备,诸如基于NAND技术的那些。在一个实施例中,存储器设备可以是或可以包括使用多阈值电平NAND闪速存储器或其他存储器的存储器设备。存储器设备可以指管芯本身和/或封装的存储器产品。
参考图1,电子存储系统10的实施例可以包括基于NAND的存储介质12,其包括具有第一数量级的第一单元区域12a和具有与第一数量级不同的第二数量级的第二区域12b,以及通信地耦合到基于NAND的存储介质12的控制器11。控制器11可以包括逻辑13,用于:确定对应于用户可配置容量占位符的逻辑块地址(LBA)位置,以及基于LBA位置在运行时调整第一单元区域12a和第二单元区域12b的相应大小。在一些实施例中,逻辑13可以进一步被配置为响应于命令启用用于用户配置第一单元区域12a的大小的特征。例如,逻辑13还可以被配置为保留LBA的范围,用于管理第一单元区域12a和第二单元区域12b之间的容量转换。
在一些实施例中,逻辑13可以进一步被配置为当该特征被启用时,在基于NAND的存储介质12上保存用户数据。例如,逻辑13可以被配置为将第二单元区域12b的块转换成第一单元区域12a的块,并将数据从第二单元区域12b移动到第一单元区域12a的经转换的块中。在本文中的任一实施例中,控制器11和基于NAND的存储介质12可以被并入固态驱动(SSD)中。
上述控制器11、基于NAND的存储介质12、逻辑13、和其他系统组件中的每一个的实施例可以以硬件、软件或其任何合适的组合来实现。例如,硬件实施方式可以包括可配置逻辑,诸如例如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑设备(CPLD)、或使用电路技术(诸如例如专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)或晶体管-晶体管逻辑(TTL)技术)的固定功能逻辑硬件、或其任何组合。控制器11的实施例可以包括通用控制器、专用控制器、存储器控制器、存储控制器、微控制器、通用处理器、专用处理器、中央处理器单元(CPU)、执行单元等。在一些实施例中,基于NAND的存储介质12、逻辑13和/或其他系统存储器可以位于包括控制器11的各种组件中,或者与包括控制器11的各种组件共同定位(例如,在同一管芯上)。
替代地或附加地,这些组件中的全部或部分可以在一个或多个模块中实现为存储在机器或计算机可读存储介质(诸如RAM、ROM、可编程ROM(PROM)、固件、闪速存储器等)中的逻辑指令集,以由处理器或计算设备执行。例如,实行组件操作的计算机程序代码可以以一种或多种操作系统(OS)适用的/适当的编程语言的任何组合来编写,该编程语言包括:面向对象的编程语言,诸如PYTHON、PERL、JAVA、SMALLTALK、C++、或C#等;以及传统的过程编程语言,诸如“C”编程语言或类似的编程语言。例如,基于NAND的存储介质12、其他基于NAND的存储介质、或其他系统存储器可以存储指令集,该指令集当由控制器11执行时使系统10实现系统10的一个或多个组件、特征或方面(例如,逻辑13:确定对应于用户可配置容量占位符的LBA位置,基于LBA位置在运行时调整第一单元区域12a和第二单元区域12b的相应大小,等等)。
现在转到图2,电子装置14的实施例可以包括一个或多个基板15,以及耦合到一个或多个基板15的控制器16。控制器16可以包括逻辑17,用于:控制对基于NAND的存储介质的访问,该基于NAND的存储介质包括具有第一数量级的第一单元区域和具有与第一数量级不同的第二数量级的第二区域;确定对应于用户可配置容量占位符的LBA位置;以及基于LBA位置在运行时调整第一单元区域和第二单元区域的相应大小。在一些实施例中,逻辑17可以进一步被配置为响应于命令启用用于用户配置第一单元区域的大小的特征。例如,逻辑17还可以被配置为保留LBA的范围,用于管理第一单元区域和第二单元区域之间的容量转换。
在一些实施例中,逻辑17可以进一步被配置为当该特征被启用时,在基于NAND的存储介质上保存用户数据。例如,逻辑17可以被配置为将第二单元区域的块转换成第一单元区域的块,并将数据从第二单元区域移动到第一单元区域的经转换的块中。在本文中的任一实施例中,控制器16和基于NAND的存储介质可以被并入SSD中。
例如,逻辑17的实施例可以在例如系统、装置、计算机、设备等中实现,诸如本文中描述的那些。更特别地,逻辑17的硬件实施方式可以包括可配置逻辑(诸如例如PLA、FPGA、CPLD),或者以使用电路技术(诸如例如ASIC、CMOS或TTL技术)的固定功能逻辑硬件,或者它们的任何组合。替代地或附加地,逻辑17可以在一个或多个模块中实现为存储在机器或计算机可读存储介质(诸如RAM、ROM、PROM、固件、闪速存储器等)中的逻辑指令集,以由处理器或计算设备执行。例如,实行组件操作的计算机程序代码可以以一种或多种OS适用的/适当的编程语言的任何组合来编写,该编程语言包括:面向对象的编程语言,诸如PYTHON、PERL、JAVA、SMALLTALK、C++、或C#等;以及传统的过程编程语言,诸如“C”编程语言或类似的编程语言。
例如,逻辑17可以在半导体装置上实现,该半导体装置可以包括一个或多个基板15,其中逻辑17耦合到一个或多个基板15。在一些实施例中,逻辑17可以至少部分地在(一个或多个)半导体基板(例如,硅、蓝宝石、砷化镓等)上的可配置逻辑和固定功能硬件逻辑中的一个或多个中实现。例如,逻辑17可以包括耦合到(一个或多个)基板15的晶体管阵列和/或其他集成电路组件,其中晶体管沟道区定位在(一个或多个)基板15内。逻辑17和(一个或多个)基板15之间的接口可以不是突变结。逻辑17也可以被认为包括生长在(一个或多个)基板15的初始晶片上的外延层。
现在转到图3,控制存储的方法20的实施例可以包括:在框21处,控制对基于NAND的存储介质的访问,该基于NAND的存储介质包括具有第一数量级的第一单元区域和具有与第一数量级不同的第二数量级的第二区域;在框22处,确定对应于用户可配置容量占位符的LBA位置;以及在框23处,基于LBA位置在运行时调整第一单元区域和第二单元区域的相应大小。方法20的一些实施例可以进一步包括在框24处,响应于命令启用用于用户配置第一单元区域的大小的特征。例如,方法20可以包括在框25处,保留LBA的范围,用于管理第一单元区域和第二单元区域之间的容量转换。
在一些实施例中,方法20可以进一步包括在框26处,当启用该特征时在基于NAND的存储介质上保存用户数据。例如,方法20可以包括:在框27处,将第二单元区域的块转换成第一单元区域的块;以及在框28处,将数据从第二单元区域移动到第一单元区域的经转换的块中。在本文中的任一实施例中,在框29处,基于NAND的存储介质可以被并入SSD中。
方法20的实施例可以在例如系统、装置、计算机、设备等中实现,诸如本文中描述的那些。更特别地,方法20的硬件实施方式可以包括可配置逻辑(诸如例如PLA、FPGA、CPLD、粗粒度可重构结构(CGRA)),或者以使用电路技术(诸如例如ASIC、CMOS或TTL技术)的固定功能逻辑硬件,或者它们的任何组合。替代地或附加地,方法20可以在一个或多个模块中实现为存储在机器或计算机可读存储介质(诸如RAM、ROM、PROM、固件、闪速存储器等)中的逻辑指令集,以由处理器或计算设备执行。例如,实行组件操作的计算机程序代码可以以一种或多种OS适用的/适当的编程语言的任何组合来编写,该编程语言包括:面向对象的编程语言,诸如PYTHON、PERL、JAVA、SMALLTALK、C++、或C#等;以及传统的过程编程语言,诸如“C”编程语言或类似的编程语言。
例如,方法20可以在计算机可读介质上实现,如下面结合示例22至28所描述的。方法20的实施例或部分可以在固件、应用(例如,通过应用程序编程接口(API))、或运行在操作系统(OS)上的驱动程序软件中实现。附加地,逻辑指令可以包括汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微码、状态设置数据、用于集成电路的配置数据、使电子电路和/或硬件固有的其他结构组件(例如,主处理器、中央处理单元/CPU、微控制器等)个性化的状态信息。
一些实施例可以有利地提供用于在为NAND存储设备保存用户数据的同时使得用户能够配置SLC缓冲区/高速缓存大小的技术。通常,当向NAND存储设备提供每个单元多个比特时,可以提供SLC的高速缓存或缓冲区来改善设备的性能。然而,因为专用于SLC缓冲区的每个单元仅持有1比特,所以驱动的总容量降低了。文件系统和分区系统依赖于驱动容量来放置它们的数据结构中的一些。因为设备的总容量是基于SLC缓冲区的大小确定的,所以用户无法根据其自己的需要调整SLC量的大小,而没有数据丢失和文件系统损坏的风险。用户可以在提供时选择性能(例如,SLC大小)和总容量(例如,QLC大小、TLC大小等)之间的折衷。要改变用户选择的折衷,必须擦除驱动的内容。
具有动态SLC缓冲区的存储系统可以在运行时调整SLC缓冲区的大小。但是该调整不是用户可配置的。用户无法选择驱动如何以性能换取容量,并且用户无法保证驱动上一定量的SLC。具有多级存储器再利用技术(例如,即时块再利用)的存储系统可能能够基于用户请求重新配置存储介质,但是一般涉及使驱动离线并改变驱动的报告容量,这干扰了文件系统的操作。有利的是,一些实施例提供了克服前述问题中的一个或多个的技术。
一些实施例可以利用主机软件组件(诸如存储驱动程序)来在存储设备的文件系统上创建文件。创建的文件将不包含数据。在与所创建的文件相关联的LBA位置被传送给SSD的固件之后,SSD可以基于各个设备的NAND擦除块(EB)特性将SSD的SLC缓冲区增加对应的量。例如,对于SLC-QLC设备,该增加将对应于4:1的比率。
有利的是,用户控制SLC的可配置性。例如,如果用户具有基于QLC的SSD,并且用户知道他们的应用将使用少于SSD容量的四分之一(1/4),则一些实施例使得用户能够将存储系统配置为100%SLC,而不丢失已经在驱动上的用户数据。稍后,如果用户需要更多容量,则用户可以撤消此操作,或者按照需要为驱动提供另一个比率,同样不丢失或破坏当前在设备上的数据。
回收的SLC可以用于任何有用的存储需求。例如,应用可以利用一个实施例将释放的SLC专用于智能缓存解决方案(例如,而不是仅作为写入缓冲区)。有利的是,SSD设备可以具有利用其最大容量的能力(例如,具有对应的有利的成本/千兆字节(GB)值)。当部署时,用户可以在运行时按照需要重新配置性能和容量之间的折衷,同时保存用户数据。
一些实施例可以利用主机软件驱动程序和文件系统来提供一种机制,以使得用户能够在容量和性能之间进行无缝折衷。例如,可以通过创建容量占位符或填充文件来实现期望的折衷,以使得特定的SSD LBA范围对于系统的其余部分(例如,OS、其他app等)不可访问,并且代替地保留它们用于QLC和SLC容量之间的转换的固件(FW)管理。例如,用户可以选择增加SLC容量的折衷,因为SLC访问输送比QLC更好的性能。
在一些实施例中,当对应的特征被启用时,填充文件被创建。例如,LBA范围可以经由供应商唯一的命令被传递到SSD,并且然后填充文件将在每一次OS初始化时被某个守护程序服务打开用于保留的、独占的访问。在SSD FW接收到LBA范围并确定需要创建多少个新的SLC块之后,FW通过按照需要将数据从当前的QLC块移出并移入新的SLC块而创建附加的SLC。只要对应的特征被启用,填充文件就将会存在。
参考图4,过程流程40的实施例示出了用户可以如何重新配置1太字节(TB)的驱动。在启用用于用户配置SLC容量的特征之前,整个1TB的驱动可能可用于OS和文件系统。在用户启用该特征并请求最大SLC容量之后,驱动的100%被转换为SLC存储。对于QLC驱动,这产生256GB的SLC容量(例如,从QLC转换到SLC的1024GB驱动的4:1容量下降),具有更好得多的读取和写入访问性能。创建768GB的填充文件作为容量占位符,以计及原始1TB的剩余容量。有利的是,填充文件使得驱动看起来好像SSD对于OS和文件系统保持不变。即使驱动已经重新配置,也不需要重新提供硬件来计及容量的物理改变,并且系统可以继续正常操作。
参考图5,过程流程50的实施例示出了用户可以如何重新配置1TB驱动的另一示例。在启用用于用户配置SLC容量的特征之前,整个1TB的驱动可能可用于OS和文件系统。在用户启用该特征并请求50%的SLC容量之后,驱动的50%被转换为SLC存储。对于QLC驱动,这产生128GB的SLC容量(例如,从QLC转换到SLC的512GB驱动的4:1容量下降),具有更好得多的读取和写入访问性能。创建384GB填充文件作为容量占位符,以计及转换为SLC的原始512GB的剩余容量。有利的是,填充文件使得驱动看起来好像SSD对于OS和文件系统保持不变。即使驱动已经重新配置,也不需要重新提供硬件来计及容量的物理改变,并且系统可以继续正常操作。
在一些实施例中,指定比率的实际细分可以由用户在图形用户接口(GUI)中设置。例如,接口可以查询驱动的特定NAND单元特性。该接口还可以确定容量折衷并将其传送给用户。如图4和图5中所图示,对于QLC SSD,该特征将需要为回收的SLC的每一比特保留4比特。对于支持除了SLC和QLC之外的模式的NAND SSD,该特征的实施例可以被配置为在其他支持的模式(例如,两级单元(MLC)、TLC等)之间转换。
参考图6,存储系统60的实施例可以包括具有多个文件的文件系统。文件系统创建平移到LBA位置的文件。然后,SSD FW使用逻辑到物理(L2P)表将LBA位置平移到NAND单元位置。SSD可能包含某个量的SLC,其由SSD FW用作缓冲区/高速缓存。在一些实施例中,当用于用户配置的特征被启用时,SSD FW在L2P中创建不映射到物理NAND位置的位置(例如,在图6中被标识为回收的LBA)。因为那些位置被分配给填充文件,所以SSD FW知道那些位置不能映射到有效数据。因此,SSDFW可以创建更多的SLC(例如,在图6中被标识为回收的SLC)来改善存储设备的性能。例如,如果SSD具有足够的1TB的QLC块,但当用户启用用于用户配置的特征时保留了512GB的该空间,则SSD FW可以安全地将价值512GB的QLC容量用于128GB的SLC块。因为实施例利用SSD的L2P间接表来标记与填充文件相关联的位置,所以填充文件的碎片不是问题。
在一些实施例中,其中填充文件被用作容量占位符来以这种方式保留空间,存在分配给填充文件的LBA位置将被改变的风险。在一些实施例中,分配给填充的LBA位置的改变可以由SSD FW本身经由自动回退该特征的故障保护选项来检测。在一些实施例中,故障保护选项指的是检测对保留的LBA发生的写入,并且然后校正被映射回到QLC的SLC。如果SSD FW曾经接收到对保留的LBA范围内的任何LBA的写入(例如,或TRIM)请求,则SSD FW可以立即在内部取消该特征(例如,针对用户配置禁用该特征),将该范围内的任何有效的SLC数据转换成QLC,并回复到没有任何回收的SLC的NAND配置(例如,当用户启用该特征时之前的配置,或原始配置)。注意,可以安全地向主机系统上的填充文件发出读取,因为SSD可以返回零(例如,类似于SSD在读取微调位置时所做的)。
例如,如果文件系统作为数据驱动安装在不知道此特征的OS上,并且擦除或覆写了先前已经利用FW保留的那些LBA,则可能发生对保留范围内的LBA的写入请求。文件系统破坏是故障保护选项的附加的可能触发因素。恢复该特征的过程可能触发SSD的NAND垃圾收集过程,以将SLC转换回到QLC,从而导致暂时性的性能下降,但没有数据丢失。例如,转换过程可以通过利用适当的操作码(例如,OP码)或特征集来执行,该操作码或特征集可以将整个NAND管芯置于期望的模式(例如,SLC、MLC、TLC、QLC等)中。SSDFW标识目标块和目标模式。SSD FW首先将NAND管芯转换为目标模式,并向目标块发出特定操作(例如,擦除、编程或读取)。可以为每一个目标块执行转换过程,并且SSD FW为每一个目标块维护目标模式。
除了启用和禁用用于用户配置的特征之外,相关联的主机软件可以负责最小化触发故障保护选项的情况,并且在故障保护选项出现时从故障保护选项中恢复。为了便于这样,应该为填充文件分配最严格的文件系统访问属性,以消除最有问题的程序和避免用户触发故障保护选项。应该禁用可能潜在地干扰用于用户配置的特征的主机文件系统特征(诸如文件系统压缩),并且应该由适当的主机文件系统过滤器拦截和处理有问题的操作,诸如写入、移动、文件创建或文件删除。
为了系统正常运转,文件系统中填充文件的LBA位置必须与SSD固件L2P中指定为回收的位置相匹配。为确保这一点,在开机时,主机软件手动从SSD请求此信息,并检查任何差异。如果SSD FW曾检测到不匹配,则SSD FW通知主机驱动程序。
在通知不匹配时,主机驱动程序可以完全禁用该特征,或者尝试校正不匹配。仅在仍存在足够的未使用容量来创建所期望大小的填充文件的情况下,才可能校正不匹配。例如,如果用户在没有该特征的保护性主机SW的系统上删除了512GB填充文件,然后填满SSD,剩下少于512GB空闲,则可能不再创建512GB填充文件。在这种情况下,该特征被简单地禁用。
对于一些实施例,不需要预OS或统一可扩展固件接口(UEFI)驱动程序组件,因为在OS启动并运行之前不需要访问填充文件(例如,直到OS初始化为止,将不需要用于用户配置的特征的主机SW组件)。
在替代实施例中,单独的填充分区可以被用作SSD容量的回收部分的容量占位符,而不是填充文件。使用填充分区作为容量占位符可能类似于使用填充文件,除非当用户想要消耗容量来创建更多的SLC时。在这种情况下,原始数据分区可能使其文件跨更大的LBA空间分散,并且在分区的开头或结尾可能不存在足够的空闲空间来足够收缩数据分区。对于某些文件(例如分页文件),这些文件在运行时期间甚至可以不是可移动的。因此,可能需要诸如UEFI之类的“离线”环境来移动这些种类的受保护文件。在任一实施例中,SSD的LBA空间的数据布局被用来留出已知未被使用和未被映射的位置,使得SSD可以如用户所配置的那样分配更多更快的SLC。
本文中讨论的技术可以在各种计算系统(例如,包括:非移动计算设备,诸如台式机、工作站、服务器、机架式系统等;移动计算设备,诸如智能电话、平板、超移动个人计算机(UMPC)、膝上型计算机、超极本计算设备、智能手表、智能眼镜、智能手环等;和/或客户端/边缘设备,诸如物联网(IoT)设备(例如,传感器、相机等))中提供。
现在转到图7,计算系统100的一个实施例可以包括一个或多个处理器102-1至102-N(本文中一般称为“(一个或多个)处理器102”)。处理器102可以经由互连或总线104进行通信。每个处理器102可以包括各种组件,为了清楚起见,仅参考处理器102-1来讨论其中的一些组件。因此,其余处理器102-2至102-N中的每一个可以包括参考处理器102-1讨论的相同或相似的组件。
在一些实施例中,处理器102-1可以包括一个或多个处理器核106-1至106-M(本文中称为“(多个)核106”,或者更一般地称为“核106”)、高速缓存108(其在各种实施例中可以是共享高速缓存或专用高速缓存)、和/或路由器110。处理器核106可以在单个集成电路(IC)芯片上实现。此外,芯片可以包括一个或多个共享和/或专用高速缓存(诸如高速缓存108)、总线或互连(诸如总线或互连112)、逻辑170、存储器控制器、或其他组件。
在一些实施例中,路由器110可以用于在处理器102-1和/或系统100的各种组件之间通信。此外,处理器102-1可以包括多于一个路由器110。此外,多个路由器110可以进行通信,以实现处理器102-1的内部或外部的各种组件之间的数据路由。
高速缓存108可以存储由处理器102-1的一个或多个组件(诸如核106)利用的数据(例如,包括指令)。例如,高速缓存108可以本地缓存存储在存储器114中的数据,以供处理器102的组件更快地访问。如图7中所示,存储器114可以经由互连104与处理器102通信。在一些实施例中,高速缓存108(其可以是共享的)可以具有各种级别,例如,高速缓存108可以是中级高速缓存和/或末级高速缓存(LLC)。此外,每个核106可以包括1级(L1)高速缓存(116-1)(本文中一般称为“L1高速缓存116”)。处理器102-1的各种组件可以通过总线(例如,总线112)和/或存储器控制器或集线器直接与高速缓存108通信。
如图7中所示,存储器114可以通过存储器控制器120耦合到系统100的其他组件。存储器114可以包括易失性存储器,并且可以可互换地称为主存储器或系统存储器。即使存储器控制器120被示为耦合在互连104和存储器114之间,但是存储器控制器120可以位于系统100中的其他地方。例如,在一些实施例中,存储器控制器120或其部分可以提供在处理器102之一内。
系统100可以经由网络接口128与其他设备/系统/网络通信(例如,其经由有线或无线接口与计算机网络和/或云129通信)。例如,网络接口128可以包括天线(未示出)以无线地(例如,经由电气和电子工程师协会(IEEE)802.11接口(包括IEEE 802.11a/b/g/n/ac等)、蜂窝接口、3G、4G、LTE、蓝牙等)与网络/云129通信。
系统100还可以包括经由SSD控制器逻辑125耦合到互连104的存储设备,诸如SSD130。因此,逻辑125可以控制由系统100的各种组件对SSD 130的访问。此外,即使逻辑125在图7中被示为直接耦合到互连104,但是逻辑125可以替代地经由存储总线/互连(诸如SATA(串行高级技术附件)总线、外围组件互连(PCI)(或PCI EXPRESS(PCIe)接口)、NYM EXPRESS(NVMe)等)与系统100的一个或多个其他组件通信(例如,其中存储总线经由如总线桥、芯片集等的一些其他逻辑耦合到互连104)。附加地,在各种实施例中,逻辑125可以被并入到存储器控制器逻辑(诸如参考图8讨论的那些)中,或者被提供在相同的集成电路(IC)设备上(例如,在与SSD 130相同的电路板设备上或者在与SSD 130相同的外壳中)。
此外,逻辑125和/或SSD 130可以耦合到一个或多个传感器(未示出)以接收信息(例如,以一个或多个比特或信号的形式)来指示由一个或多个传感器检测到的状态或值。这些(一个或多个)传感器可以被提供为接近系统100(或本文中讨论的其他计算系统)的组件,其包括核106、互连104或112、处理器102外部的组件、SSD 130、SSD总线、SATA总线、逻辑125、逻辑160、逻辑170等,以感测影响系统/平台的功率/热行为的各种因素(诸如温度、操作频率、操作电压、功耗、和/或核间通信活动等)的变化。
图8图示了根据实施例的SSD 130的各种组件的框图。如图8中所图示,逻辑160可以位于各种位置中(诸如在SSD 130或控制器382等内部),并且可以包括如结合图7讨论的类似的技术。SSD 130包括控制器382(其进而包括一个或多个处理器核或处理器384和存储器控制器逻辑386)、高速缓存138、RAM 388、固件存储390、和一个或多个存储器设备392-1至392-N(统称为存储器392,其可以包括NAND介质或其他类型的非易失性存储器)。存储器392经由一个或多个存储器通道或总线耦合到存储器控制器逻辑386。此外,SSD 130经由接口(诸如SATA、SAS、PCIe、NVMe等接口)与逻辑125通信。处理器384和/或控制器382可以压缩/解压缩写入到存储器设备392-1至392-N或从存储器设备392-1至392-N读取的数据。
如图7和图8中所图示,SSD 130可以包括逻辑160,其可以与SSD 130在同一外壳中和/或完全集成在SSD 130的印刷电路板(PCB)上。系统100可以包括SSD 130外部的另外的逻辑170。参考图1-图6讨论的特征/方面/操作中的一个或多个可以由图7和/或8的一个或多个组件来执行。此外,图1-图6的特征/方面/操作中的一个或多个可以被编程到固件390中。另外,SSD控制器逻辑125还可以包括逻辑160。有利的是,逻辑160和/或逻辑170可以包括实现系统10(图1)、装置14(图2)、方法20(图3)、过程流程40(图4)、过程流程50(图5)、存储系统60(图6)、和/或本文中讨论的任一特征的一个或多个方面的技术。例如,逻辑170可以包括实现本文中描述的各种实施例的主机设备/计算机系统/代理方面的技术,而逻辑160可以包括实现本文中描述的各种实施例的存储设备方面的技术。
例如,存储器392可以包括基于NAND的存储介质,该基于NAND的存储介质包括具有第一数量级的第一单元区域(例如,SLC)和具有与第一数量级不同的第二数量级的第二区域(例如,QLC)。控制器382中的逻辑160可以被配置为确定对应于用户可配置容量占位符(例如,填充文件、填充分区等)的LBA位置,以及基于LBA位置在运行时调整第一单元区域和第二单元区域的相应大小。在一些实施例中,逻辑160可以进一步被配置为响应于命令(例如,供应商唯一命令)启用用于用户配置第一单元区域的大小的特征。例如,逻辑160还可以被配置为保留LBA的范围,用于管理第一单元区域和第二单元区域之间的容量转换。
在一些实施例中,逻辑160可以进一步被配置为当该特征被启用时,在存储器392上保存用户数据。例如,逻辑160可以被配置为将第二单元区域的块转换成第一单元区域的块,并将数据从第二单元区域移动到第一单元区域的经转换的块中。
在其他实施例中,SSD 130可以用任何合适的存储/存储器技术/介质来替换。在一些实施例中,逻辑160/170可以耦合到一个或多个基板(例如,硅、蓝宝石、砷化镓、印刷电路板(PCB)等),并且可以包括定位在一个或多个基板内的晶体管沟道区。在其他实施例中,SSD 130可以包括两种或更多种类型的存储介质。例如,大容量存储可以是NAND,并且可以进一步包括一些更快、更小粒度的可访问(例如,字节可寻址)NVM。替代地或附加地,SSD130可以包括持久易失性存储器(例如,电池或电容器备份的DRAM或SRAM)。例如,SSD 130可以包括具有储能电容器的即将断电(PLI)技术。储能电容器可以提供足够的能量(功率)来完成正在进行的任何命令,并确保DRAM/SRAM中的任何数据被提交给非易失性NAND介质。电容器可以充当持久易失性存储器的备份电池。如图7和图8中所示,逻辑160和/或逻辑170的特征或方面可以贯穿系统100分布,和/或与系统100的各种组件共同定位/集成。
附加注释和示例
示例1包括一种电子装置,该电子装置包括一个或多个基板和耦合到所述一个或多个基板的控制器,所述控制器包括逻辑,所述逻辑用于:控制对基于NAND的存储介质的访问,所述基于NAND的存储介质包括具有第一数量级的第一单元区域和具有与第一数量级不同的第二数量级的第二区域;确定对应于用户可配置容量占位符的逻辑块地址位置;以及基于逻辑块地址位置在运行时调整第一单元区域和第二单元区域的相应大小。
示例2包括示例1的装置,其中所述逻辑进一步用于响应于命令启用用于用户配置第一单元区域的大小的特征。
示例3包括示例2的装置,其中所述逻辑进一步用于保留逻辑块地址的范围,用于管理第一单元区域和第二单元区域之间的容量转换。
示例4包括示例2至3中任一项的装置,其中所述逻辑进一步用于当所述特征被启用时在基于NAND的存储介质上保存用户数据。
示例5包括示例4的装置,其中所述逻辑进一步用于将第二单元区域的块转换成第一单元区域的块。
示例6包括示例5的装置,其中所述逻辑进一步用于将数据从第二单元区域移动到第一单元区域的经转换的块中。
示例7包括示例1至6中任一项的装置,其中所述控制器和基于NAND的存储介质被并入在固态驱动中。
示例8包括一种电子存储系统,所述电子存储系统包括:基于NAND的存储介质,所述基于NAND的存储介质包括具有第一数量级的第一单元区域和具有与第一数量级不同的第二数量级的第二区域;以及通信地耦合到基于NAND的存储介质的控制器,所述控制器包括逻辑,所述逻辑用于:确定对应于用户可配置容量占位符的逻辑块地址位置,并基于逻辑块地址位置在运行时调整第一单元区域和第二单元区域的相应大小。
示例9包括示例8的系统,其中所述逻辑进一步用于响应于命令启用用于用户配置第一单元区域的大小的特征。
示例10包括示例9的系统,其中所述逻辑进一步用于保留逻辑块地址的范围,用于管理第一单元区域和第二单元区域之间的容量转换。
示例11包括示例9至10中任一项的系统,其中所述逻辑进一步用于当所述特征被启用时在基于NAND的存储介质上保存用户数据。
示例12包括示例11的系统,其中所述逻辑进一步用于将第二单元区域的块转换成第一单元区域的块。
示例13包括示例12的系统,其中所述逻辑进一步用于将数据从第二单元区域移动到第一单元区域的经转换的块中。
示例14包括示例8至13中任一项的系统,其中所述控制器和基于NAND的存储介质被并入在固态驱动中。
示例15包括一种控制存储的方法,所述方法包括:控制对基于NAND的存储介质的访问,所述基于NAND的存储介质包括具有第一数量级的第一单元区域和具有与第一数量级不同的第二数量级的第二区域;确定对应于用户可配置容量占位符的逻辑块地址位置;以及基于逻辑块地址位置在运行时调整第一单元区域和第二单元区域的相应大小。
示例16包括示例15的方法,进一步包括响应于命令启用用于用户配置第一单元区域的大小的特征。
示例17包括示例16的方法,进一步包括保留逻辑块地址的范围,用于管理第一单元区域和第二单元区域之间的容量转换。
示例18包括示例16至17中任一项的方法,进一步包括当所述特征被启用时在基于NAND的存储介质上保存用户数据。
示例19包括示例18的方法,进一步包括将第二单元区域的块转换成第一单元区域的块。
示例20包括示例19的方法,进一步包括将数据从第二单元区域移动到第一单元区域的经转换的块中。
示例21包括示例15至20中任一项的方法,其中所述基于NAND的存储介质被并入固态驱动中。
示例22包括至少一种非暂时性机器可读介质,所述至少一种非暂时性机器可读介质包括多个指令,所述多个指令响应于在计算设备上被执行而使计算设备:控制对基于NAND的存储介质的访问,所述基于NAND的存储介质包括具有第一数量级的第一单元区域和具有与第一数量级不同的第二数量级的第二区域;确定对应于用户可配置容量占位符的逻辑块地址位置;以及基于逻辑块地址位置在运行时调整第一单元区域和第二单元区域的相应大小。
示例23包括示例22的至少一种非暂时性机器可读介质,包括多个另外的指令,所述多个另外的指令响应于在计算设备上被执行而使计算设备响应于命令启用用于用户配置第一单元区域的大小的特征。
示例24包括示例23的至少一种非暂时性机器可读介质,包括多个另外的指令,所述多个另外的指令响应于在计算设备上被执行而使计算设备保留逻辑块地址的范围,用于管理第一单元区域和第二单元区域之间的容量转换。
示例25包括示例23至24中任一项的至少一种非暂时性机器可读介质,包括多个另外的指令,所述多个另外的指令响应于在计算设备上被执行而使计算设备当所述特征被启用时,在基于NAND的存储介质上保存用户数据。
示例26包括示例25的至少一种非暂时性机器可读介质,包括多个另外的指令,所述多个另外的指令响应于在计算设备上被执行而使计算设备将第二单元区域的块转换成第一单元区域的块。
示例27包括示例26的至少一种非暂时性机器可读介质,包括多个另外的指令,所述多个另外的指令响应于在计算设备上被执行而使计算设备将数据从第二单元区域移动到第一单元区域的经转换的块中。
示例28包括示例22至27中任一项的至少一种非暂时性机器可读介质,其中所述基于NAND的存储介质被并入固态驱动中。
示例29包括一种存储控制器装置,所述存储控制器装置包括:用于控制对基于NAND的存储介质的访问的部件,所述基于NAND的存储介质包括具有第一数量级的第一单元区域和具有与第一数量级不同的第二数量级的第二区域;用于确定对应于用户可配置容量占位符的逻辑块地址位置的部件;以及用于基于逻辑块地址位置在运行时调整第一单元区域和第二单元区域的相应大小的部件。
示例30包括示例29的装置,进一步包括用于响应于命令启用用于用户配置第一单元区域的大小的特征的部件。
示例31包括示例30的装置,进一步包括用于保留逻辑块地址范围以管理第一单元区域和第二单元区域之间的容量转换的部件。
示例32包括示例30至31中任一项的装置,进一步包括用于当启用所述特征时在基于NAND的存储介质上保存用户数据的部件。
示例33包括示例32的装置,进一步包括用于将第二单元区域的块转换成第一单元区域的块的部件。
示例34包括示例33的装置,进一步包括用于将数据从第二单元区域移动到第一单元区域的经转换的块中的部件。
示例35包括示例29至34中任一项的装置,其中所述基于NAND的存储介质被并入固态驱动中。
术语“耦合”在本文中可以用来指所讨论的组件之间的任何类型的直接或间接关系,并且可以应用于电气的、机械的、流体的、光学的、电磁的、机电的或其他连接。此外,术语“第一”、“第二”等在本文中仅用于便于讨论,并且除非另有指示,否则不携带特定的时间或年代意义。
如在本申请中和权利要求中所使用的,由术语“……中的一个或多个”联结的项目列表可以意味着所列术语的任何组合。例如,短语“A、B和C中的一个或多个”和短语“A、B或C中的一个或多个”都可以意指:A;B;C;A和B;A和C;B和C;或者A、B和C。本文中描述的系统的各种组件可以以软件、固件和/或硬件和/或其任何组合来实现。例如,本文中讨论的系统或设备的各种组件可以至少部分地由计算SoC的硬件来提供,诸如可以在诸如例如智能电话的计算系统中找到。本领域技术人员可以认识到,本文中描述的系统可以包括没有在对应的各图中描绘的附加组件。例如,本文中讨论的系统可以包括为了清楚起见没有描绘的附加组件,诸如比特流复用器或解复用器模块以及诸如此类。
虽然本文中讨论的示例过程的实施方式可以包括以所图示次序示出的所有操作,但是本公开不限于这一点,并且在各种示例中,本文中的示例过程的实施方式可以仅包括所示操作的子集、以与所图示不同的次序执行的操作、或者附加操作。
此外,响应于由一个或多个计算机程序产品提供的指令,可以进行本文中讨论的操作中的任何一个或多个。这样的程序产品可以包括提供指令的信号承载介质,该指令当由例如处理器执行时可以提供本文中描述的功能。计算机程序产品可以以一种或多种机器可读介质的任何形式提供。因此,例如,包括一个或多个图形处理单元或处理器核的处理器可以响应于由一个或多个机器可读介质传送给处理器的程序代码和/或指令或指令集来进行本文中的示例过程中的一个或多个框。一般而言,机器可读介质可以以程序代码和/或指令或指令集的形式传送软件,该软件可以使本文中描述的设备和/或系统中的任何一个实现本文中所讨论的操作的至少一部分和/或如本文中所讨论的设备、系统、或任何模块或组件的任何部分。
如在本文中描述的任何实施方式中使用的,术语“模块”指的是被配置为提供本文中描述的功能的软件逻辑、固件逻辑、硬件逻辑和/或电路的任何组合。软件可以体现为软件包、代码和/或指令集或指令,并且如在本文中描述的任何实施方式中使用的“硬件”可以包括例如单独的或以任何组合的硬连线电路、可编程电路、状态机电路、固定功能电路、执行单元电路、和/或存储由可编程电路执行的指令的固件。这些模块可以共同地或单独地体现为形成更大系统(例如集成电路(IC)、片上系统(SoC)等等)的一部分的电路。
各种实施例可以使用硬件元件、软件元件或两者的组合来实现。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑设备(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片集等等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序编程接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任何组合。确定实施例是否使用硬件元件和/或软件元件来实现可以根据任何数量的因素而变化,这些因素诸如期望的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度、和其他设计或性能约束。
至少一个实施例的一个或多个方面可以通过存储在机器可读介质上的代表性指令来实现,所述代表性指令表示处理器内的各种逻辑,所述代表性指令当被机器读取时使机器制造逻辑来执行本文中描述的技术。被称为IP核的这样的表示可以被存储在有形的机器可读介质上,并被供应给各种客户或制造设施,以加载到实际制造逻辑或处理器的制造机器中。
虽然已经参考各种实施方式描述了本文中阐述的某些特征,但是该描述不意图被解释为限制性的含义。因此,对于本公开所属领域的技术人员来说显而易见的在本文中描述的实施方式的各种修改以及其他实施方式被认为落在本公开的精神和范围内。
将认识到,实施例不限于如此描述的实施例,而是可以在不脱离所附权利要求的范围的情况下通过修改和更改来实践。例如,上述实施例可以包括特征的具体组合。然而,上述实施例不限于这一点,并且在各种实施方式中,上述实施例可以包括仅承担这样特征的子集、承担这样特征的不同次序、承担这样特征的不同组合、和/或承担除了明确列出的那些特征之外的附加特征。因此,实施例的范围应当参考所附权利要求连同这样权利要求所享有的等同物的全部范围来确定。

Claims (20)

1.一种电子装置,包括:
一个或多个基板;和
耦合到所述一个或多个基板的控制器,所述控制器包括逻辑,所述逻辑用于:
控制对基于NAND的存储介质的访问,所述基于NAND的存储介质包括具有第一数量级的第一单元区域和具有与第一数量级不同的第二数量级的第二区域,
确定对应于用户可配置容量占位符的逻辑块地址位置,以及
基于所述逻辑块地址位置,在运行时调整第一单元区域和第二单元区域的相应大小。
2.根据权利要求1所述的装置,其中所述逻辑进一步用于:
响应于命令,启用用于用户配置第一单元区域的大小的特征。
3.根据权利要求2所述的装置,其中所述逻辑进一步用于:
保留逻辑块地址的范围,用于管理第一单元区域和第二单元区域之间的容量转换。
4.根据权利要求2所述的装置,其中所述逻辑进一步用于:
当所述特征被启用时,在基于NAND的存储介质上保存用户数据。
5.根据权利要求4所述的装置,其中所述逻辑进一步用于:
将第二单元区域的块转换成第一单元区域的块。
6.根据权利要求5所述的装置,其中所述逻辑进一步用于:
将数据从第二单元区域移动到第一单元区域的经转换的块中。
7.根据权利要求1所述的装置,其中所述控制器和所述基于NAND的存储介质被并入在固态驱动中。
8.一种电子存储系统,包括:
基于NAND的存储介质,所述基于NAND的存储介质包括具有第一数量级的第一单元区域和具有与第一数量级不同的第二数量级的第二区域;和
通信地耦合到基于NAND的存储介质的控制器,所述控制器包括逻辑,所述逻辑用于:
确定对应于用户可配置容量占位符的逻辑块地址位置,以及
基于所述逻辑块地址位置,在运行时调整第一单元区域和第二单元区域的相应大小。
9.根据权利要求8所述的系统,其中所述逻辑进一步用于:
响应于命令,启用用于用户配置第一单元区域的大小的特征。
10.根据权利要求9所述的系统,其中所述逻辑进一步用于:
保留逻辑块地址的范围,用于管理第一单元区域和第二单元区域之间的容量转换。
11.根据权利要求9所述的系统,其中所述逻辑进一步用于:
当所述特征被启用时,在基于NAND的存储介质上保存用户数据。
12.根据权利要求11所述的系统,其中所述逻辑进一步用于:
将第二单元区域的块转换成第一单元区域的块。
13.根据权利要求12所述的系统,其中所述逻辑进一步用于:
将数据从第二单元区域移动到第一单元区域的经转换的块中。
14.根据权利要求8所述的系统,其中所述控制器和所述基于NAND的存储介质被并入在固态驱动中。
15.一种控制存储的方法,包括:
控制对基于NAND的存储介质的访问,所述基于NAND的存储介质包括具有第一数量级的第一单元区域和具有与第一数量级不同的第二数量级的第二区域;
确定对应于用户可配置容量占位符的逻辑块地址位置;以及
基于所述逻辑块地址位置,在运行时调整第一单元区域和第二单元区域的相应大小。
16.根据权利要求15所述的方法,进一步包括:
响应于命令,启用用于用户配置第一单元区域的大小的特征。
17.根据权利要求16所述的方法,进一步包括:
保留逻辑块地址的范围,用于管理第一单元区域和第二单元区域之间的容量转换。
18.根据权利要求16所述的方法,进一步包括:
当所述特征被启用时,在基于NAND的存储介质上保存用户数据。
19.根据权利要求18所述的方法,进一步包括:
将第二单元区域的块转换成第一单元区域的块。
20.根据权利要求19所述的方法,进一步包括:
将数据从第二单元区域移动到第一单元区域的经转换的块中。
CN202280042636.5A 2021-04-15 2022-04-14 用户可配置的slc存储器大小 Pending CN118043768A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/231,893 US12093547B2 (en) 2021-04-15 2021-04-15 User configurable SLC memory size
US17/231893 2021-04-15
PCT/US2022/024865 WO2022221564A1 (en) 2021-04-15 2022-04-14 User configurable slc memory size

Publications (1)

Publication Number Publication Date
CN118043768A true CN118043768A (zh) 2024-05-14

Family

ID=76969331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280042636.5A Pending CN118043768A (zh) 2021-04-15 2022-04-14 用户可配置的slc存储器大小

Country Status (6)

Country Link
US (1) US12093547B2 (zh)
EP (1) EP4323859A1 (zh)
JP (1) JP2024513953A (zh)
KR (1) KR20240007167A (zh)
CN (1) CN118043768A (zh)
WO (1) WO2022221564A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12093547B2 (en) * 2021-04-15 2024-09-17 Sk Hynix Nand Product Solutions Corp. User configurable SLC memory size
US20240160376A1 (en) * 2022-11-15 2024-05-16 Microsoft Technology Licensing, Llc User selectable transitional storage partition

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100858241B1 (ko) * 2006-10-25 2008-09-12 삼성전자주식회사 하이브리드 플래시 메모리 장치 및 그것의 가용 블록 할당방법
WO2011007599A1 (ja) 2009-07-17 2011-01-20 株式会社 東芝 メモリ管理装置
US9582203B2 (en) * 2014-09-02 2017-02-28 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by reducing a range of logical addresses
US9811626B2 (en) 2014-09-18 2017-11-07 Samsung Electronics Co., Ltd. Method of designing layout of semiconductor device
KR20180031289A (ko) 2016-09-19 2018-03-28 삼성전자주식회사 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US10379782B2 (en) * 2017-08-18 2019-08-13 Intel Corporation Host managed solid state drivecaching using dynamic write acceleration
US10229735B1 (en) 2017-12-22 2019-03-12 Intel Corporation Block management for dynamic single-level cell buffers in storage devices
KR20190124015A (ko) 2018-04-25 2019-11-04 에스케이하이닉스 주식회사 저항 변화 메모리 장치를 포함하는 메모리 시스템 및 그 동작 방법
US11069425B2 (en) 2018-08-21 2021-07-20 Intel Corporation Multi-level memory repurposing technology to process a request to modify a configuration of a persistent storage media
US11119672B2 (en) 2019-08-06 2021-09-14 Intel Corporation Dynamic single level cell memory controller
US12093547B2 (en) 2021-04-15 2024-09-17 Sk Hynix Nand Product Solutions Corp. User configurable SLC memory size

Also Published As

Publication number Publication date
JP2024513953A (ja) 2024-03-27
US12093547B2 (en) 2024-09-17
KR20240007167A (ko) 2024-01-16
EP4323859A1 (en) 2024-02-21
WO2022221564A1 (en) 2022-10-20
US20210232313A1 (en) 2021-07-29

Similar Documents

Publication Publication Date Title
US12093173B2 (en) Zoned namespace with zone grouping
US11797180B2 (en) Apparatus and method to provide cache move with non-volatile mass memory system
TWI645334B (zh) 用於管理操作狀態資料之方法、記憶體模組及主機裝置
US11119672B2 (en) Dynamic single level cell memory controller
US9740437B2 (en) Mechanism to adapt garbage collection resource allocation in a solid state drive
CN118043768A (zh) 用户可配置的slc存储器大小
US10754785B2 (en) Checkpointing for DRAM-less SSD
CN111580747A (zh) 用于ssd任务的主机定义的带宽分配
US20200363998A1 (en) Controller and persistent memory shared between multiple storage devices
US11567862B2 (en) Configurable NVM set to tradeoff between performance and user space
CN117255986A (zh) 随机写入固态驱动器工作负荷的动态程序挂起停用
KR20180094386A (ko) 메모리 시스템 및 그것의 동작 방법
CN115428074A (zh) 利用单向命令的on-ssd纠删码

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