CN112286838A - 存储设备可配置的映射粒度系统 - Google Patents
存储设备可配置的映射粒度系统 Download PDFInfo
- Publication number
- CN112286838A CN112286838A CN201910675677.8A CN201910675677A CN112286838A CN 112286838 A CN112286838 A CN 112286838A CN 201910675677 A CN201910675677 A CN 201910675677A CN 112286838 A CN112286838 A CN 112286838A
- Authority
- CN
- China
- Prior art keywords
- addresses
- logical
- storage
- storage device
- mapping
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013507 mapping Methods 0.000 title claims abstract description 216
- 238000000034 method Methods 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 26
- 230000010365 information processing Effects 0.000 claims description 2
- 239000008187 granular material Substances 0.000 claims 6
- 230000004044 response Effects 0.000 abstract description 10
- 235000019580 granularity Nutrition 0.000 description 92
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- 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/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种存储设备,包括存储子系统和逻辑/物理存储位置映射数据库,其将逻辑分配地址映射到在存储子系统中标识物理位置的物理分配地址。存储控制器从主机接收存储设备映射粒度配置命令,该命令标识与多个逻辑分配地址相关联的逻辑块地址的数量,并且作为响应,将多个逻辑分配地址中的每一个与在命令中标识的逻辑块地址的数量相关联。然后,存储控制器将数据写入物理分配地址,该物理分配地址包括数据大小,该数据大小等于在命令中标识并且与多个逻辑分配地址中的每一个相关联的逻辑块地址的数量的组合逻辑块地址大小,以及在逻辑/物理存储位置映射数据库中,将物理分配地址映射到与命令中标识的逻辑块地址的数量相关联的多个逻辑分配地址中的一个。
Description
技术领域
本公开一般涉及信息处理系统,且更具体地涉及为信息处理系统中的存储设备配置映射粒度(mapping granularity)。
背景技术
随着信息的价值和使用持续增加,个人和企业寻求处理和存储信息的其他方式。用户可以使用的一个选项是信息处理系统。信息处理系统通常为商业、个人或其他目的处理、编译、存储和/或传送信息或数据,从而允许用户利用信息的价值。由于不同用户或应用之间的技术和信息处理需求和要求各不相同,因此信息处理系统也可能因处理的信息、信息处理方式、信息处理、存储或传送的量以及信息处理、存储或传送的速度和效率而不相同。信息处理系统的不同允许信息处理系统是通用的或为特定用户或特定用途配置,诸如金融交易处理、航空预订、企业数据存储或全球通信。另外,信息处理系统可以包括可以被配置为处理、存储和传送信息的各种硬件和软件部件,并且可以包括一个或多个计算机系统、数据存储系统和网络系统。
信息处理系统通常包括存储设备,例如,用于存储数据的固态驱动器(SSD)存储设备。如本领域技术人员将理解的,SSD存储设备将数据存储在诸如NAND闪存设备的非易失性存储器设备中,并且包括可以利用双数据速率(DDR)动态随机存取存储器(DRAM)子系统(通常为DDR3或DDR4)的SSD控制器,以用于存储用于管理这些NAND闪存设备的管理数据。使用存储在DDR DRAM子系统上的管理数据执行的管理操作之一包括将与SSD存储设备相关联的逻辑存储位置映射到包括在NAND闪存中的物理存储位置。如本领域的技术人员将了解,此类逻辑/物理存储位置映射可将逻辑分配地址(LAA)与物理分配地址(PAA)映射,其允许SSD控制器接收数据命令(例如,写入命令),其指向逻辑块地址(LBA)以标识与该LBA相关联的LAA,然后确定映射到该LAA并标识存储该数据的NAND闪存的物理位置的PAA。
然而,传统的映射表具有固定的映射粒度,其为映射到相应PAA的每个LAA提供八个LBA,这可能导致使用存储逻辑/物理存储位置映射的映射表的效率低下。例如,在要写入SSD存储设备的数据大小等于8个LBA的情况下,可以将其写入与NAND闪存设备相关联的单个PAA,并且可以在映射表中提供单个LAA/PAA映射条目,其标识与该PAA关联的LAA(并且提供8个用于标识该数据的逻辑存储位置的LBA)。但是,在要写入SSD存储设备的数据大小大于8个LBA的情况下,它将被分成多个数据部分,每个数据部分的大小等于8个LBA,并且这些数据部分中的每一个可以被写入与NAND闪存设备相关联的相应PAA,其中在LAA/PAA映射表中提供的多个映射条目,每个条目标识与每个相应PAA相关联的LAA(并且每个条目提供8个LBA,其定义相应数据部分的逻辑存储位置)。因此,大小等于32个LBA的数据将分成4个8-LBA大小的数据部分,每个数据部分写入与NAND闪存设备相关的相应PAA,并且可以在映射表中提供4个映射条目,其中每个用于与相应的PAA中相关联的每个LAA中的一个(并且每个提供8个LBA,其定义其相应的8个LBA大小的数据部分的逻辑存储位置)。因此,对于大的数据写入,映射表可以非常快速地增长,并且已经发现在SSD存储设备中占据多达80%的DDRDRAM子系统。
此外,这种固定的映射粒度还创建了读-修改-写(RMW)事件。例如,当使用尺寸小于8个LBA的新数据来修改与NAND闪存设备中的PAA相关联的现有数据时,必须从NAND闪存中读取与该PAA相关联地存储的所有现有数据,通过将新数据写入被改变的现有数据的一部分来进行修改,并将其写回到NAND闪存设备。如本领域技术人员将理解的,这样的RMW操作需要额外的SSD控制器处理周期,其操作以降低SSD存储设备的性能,特别是相对于对NAND闪存设备中的现有数据的修改修改所有这些数据(例如,因为新数据可以简单地直接写入存储现有数据的NAND闪存设备,而不是要求上面讨论的RMW操作)的情况。
因此,期望提供一种解决上述问题的存储设备映射粒度系统。
发明内容
根据本发明的一方面,提供了一种信息处理系统(IHS),其包括处理系统;存储系统,其耦合到处理系统并且包括指令,当该指令由处理系统执行时,使处理系统提供存储控制器引擎,该存储控制器引擎被配置为:从主机引擎接收第一存储设备映射粒度配置命令,该第一存储设备映射粒度配置命令标识与第一多个逻辑分配地址相关联的逻辑块地址的第一数量;将第一多个逻辑分配地址中的每一个与第一存储设备映射粒度配置命令中标识的逻辑块地址的第一数量相关联;将具有第一数据大小的第一数据写入标识在存储子系统中的第一物理位置的第一物理分配地址,第一数据大小等于在第一存储设备映射粒度配置命令中标识并且与第一多个逻辑分配地址中的每一个相关联的逻辑块地址的第一数量的第一组合逻辑块地址大小;以及在逻辑/物理存储位置映射数据库中,将第一物理分配地址映射到第一逻辑分配地址,第一逻辑分配地址包括在第一多个逻辑分配地址中并且与第一存储设备映射粒度配置命令中标识的逻辑块地址的第一数量相关联。
附图说明
图1是示出信息处理系统(IHS)的实施例的示意图。
图2是示出包括本公开的存储设备可配置的映射粒度系统的计算设备的实施例的示意图。
图3是示出可以在图2的计算设备中提供的存储设备的实施例的示意图。
图4是示出用于为存储设备配置映射粒度的方法的实施例的流程图。
图5是示出在图4的方法期间提供的逻辑/物理存储设备映射的实施例的示意图。
图6是示出在图4的方法期间提供的逻辑/物理存储设备映射的实施例的示意图。
图7是示出在图4的方法期间提供的逻辑/物理存储设备映射的实施例的示意图。
具体实施方式
出于本公开的目的,信息处理系统可以包括可用于计算、估算、确定、分类、加工、发送、接收、检索、发起、切换、存储、显示、传送、表明、检测、记录、复制、处理或利用用于商业、科学、控制或其他目的的任何形式的信息、情报或数据的任何手段或手段集合。例如,信息处理系统可以是个人计算机(例如,台式计算机或笔记本计算机)、平板计算机、移动设备(例如,个人数字助理(PDA)或智能电话)、服务器(例如,刀片式服务器或机架服务器)、网络存储设备或任何其他合适的设备,并且可以在大小、形状、性能、功能和价格上有所不同。信息处理系统可以包括随机存取存储器(RAM)、一个或多个处理资源(诸如中央处理单元(CPU)或硬件或软件控制逻辑)、只读存储器(ROM)和/或其他类型的非易失性存储器。信息处理系统的附加部件可以包括一个或多个磁盘驱动器、用于与外部设备通信的一个或多个网络端口以及各种输入和输出(I/O)设备,诸如键盘、鼠标、触摸屏和/或视频显示器。信息处理系统还可以包括可操作以在各种硬件部件之间传输通信的一个或多个总线。
在一个实施例中,图1的信息处理系统100包括处理器102,其连接到总线104。总线104用作处理器102与信息处理系统100的其他组件之间的连接。输入设备106耦合到处理器102以向处理器102提供输入。输入设备的示例可包括键盘、触摸屏、诸如鼠标、轨迹球和触控板之类的指示设备,和/或本领域中已知的各种其他输入设备。应用程序和数据存储在大容量存储设备108上,大容量存储设备108耦合到处理器102。大容量存储设备的示例可以包括硬盘、光盘、磁光盘、固态存储设备和/或各种其他本领域已知的大容量存储装置。信息处理系统100还包括显示器110,其通过视频控制器112耦合到处理器102。系统存储器114耦合到处理器102以向处理器提供快速存储以便于处理器102执行计算机程序。系统存储器的示例可以包括随机存取存储器(RAM)设备,诸如动态RAM(DRAM)、同步DRAM(SDRAM)、固态存储设备和/或本领域已知的各种其他存储设备。在一个实施例中,机箱116容纳信息处理系统100的一些或全部部件。应当理解,可以在上述部件和处理器102之间部署其他总线和中间电路,以促进这些部件和处理器102之间的互连。
现在参考图2,其示出了计算设备200的实施例。在一个实施例中,计算设备200可以由上面参考图1讨论的信息处理系统100提供,和/或可以包括信息处理系统100的一些或所有部件。在下面的实施例中,参考本公开的本领域技术人员将认识到计算设备200被示出和讨论为由服务器设备提供,但是也将认识到计算设备200可以由存储系统、桌面计算设备,膝上型/笔记本计算设备和/或可以被配置为与下面讨论的计算设备200类似地操作的任何其他设备提供。在所示实施例中,计算设备200包括容纳计算设备200的部件的机箱202,下面仅示出其中一些部件。然而,虽然计算设备200的部件被示出为提供在机箱202中,但是本领域技术人员将理解,图2中示出的部件(或类似部件)可以分布在不同的机箱同时也落入本公开的范围内。在一个示例中,机箱202可以容纳处理系统(未示出,但是其可以包括上面参考图1讨论的处理器102)和存储系统(未示出,但是其可以包括上面参考图1讨论的存储器114),该存储系统耦合到处理系统并且包括指令,当该指令由处理系统执行时,使处理系统提供主机引擎204,该主机引擎204被配置为执行主机引擎、主机和/或下面讨论的计算设备的功能。
机箱202还可以容纳存储系统(未示出,但是其可以包括上面参考图1讨论的存储设备108),该存储系统耦合到主机引擎204(例如,通过在存储系统和处理系统之间的耦合),并且在所示实施例中,由多个存储设备206a,206b且至206c提供。在下面讨论的实施例中,存储设备206a-206c由固态驱动器(SSD)存储设备提供,但是参考本公开的本领域技术人员将认识到其他类型的存储设备可以受益于本公开的教导,并且那些类型的存储设备也将落入本公开的范围内。在所示实施例中,机箱202容纳主机数据库208,主机数据库208可由主机引擎204访问并且被配置为存储由下面讨论的主机引擎204使用的任何信息。虽然已经示出了特定计算设备200,但是参考本公开的本领域技术人员将认识到,计算设备(或根据本公开的教导以与下面针对计算设备200所描述的方式类似的方式操作的其他设备)可以包括用于提供传统计算设备功能以及下面讨论的功能的各种部件和/或部件配置,同时也落入在本公开的范围内。
现在参考图3,示出了存储设备300的实施例,其可以提供上面参考图2讨论的任何或所有存储设备206a-206c。这样,存储设备300可以包括在上面参考图1讨论的信息处理系统100中,并且在具体示例中,可以由SSD存储设备提供。然而,虽然被示出和讨论为SSD存储设备,但是参考本公开的本领域技术人员将认识到,下面讨论的存储设备300的功能可以由被配置为与下面讨论的存储设备300类似地操作的其他存储设备提供。在所示实施例中,存储设备300包括容纳存储设备300的部件的机箱302,下面仅示出其中一些部件。例如,机箱302可以容纳处理系统(未示出,但可以包括上面参考图1讨论的处理器102)和存储系统(未示出,但是可以包括上面参考体1讨论的存储器114),该存储系统耦合到处理系统并且包括指令,当该指令由处理系统执行时,使处理系统提供具有存储控制器引擎的存储控制器305,该存储控制器引擎被配置为执行下面讨论的存储控制器和/或存储设备的功能。在下面讨论的实施例中,机箱302容纳存储器子系统304,其耦合到存储控制器305(例如,通过存储器子系统304和处理系统之间的耦合)并且包括逻辑/物理存储位置映射数据库306。如参考本公开的本领域技术人员将理解的,存储器子系统304可以是与处理系统一起使用以提供存储控制器305的存储系统的一部分,或者可以是与存储控制器305分离的存储系统304的一部分,其也同样落入在本公开的范围内。在特定示例中,存储器子系统304可以由DDRDRAM子系统提供,但是其他存储器子系统也将落入本公开的范围内。
机箱302还可以容纳通信系统308,该通信系统308耦合到存储控制器305(例如,通过通信系统308和处理系统之间的耦合)并且可以由各种存储控制器中的任何一个提供(其中参考本公开的本领域技术人员将认识到,这些存储控制器中的任何一个将提供上面参考图2讨论的存储控制器305和主机引擎204之间的通信)。机箱302还可以容纳存储子系统310,其耦合到存储控制器305(例如,通过存储子系统310和处理系统之间的耦合),并且包括存储设备300中用于存储数据的存储部件。例如,参考本公开的本领域技术人员将认识到,SSD存储设备包括由NAND闪存设备提供的存储系统,尽管本公开的教导也可以有益于其他类型的存储设备。在下面讨论的特定示例中,参考本公开的本领域技术人员将认识到,存储子系统310中的NAND闪存设备提供与存储器子系统304一起使用的DDR DRAM提供的易失性存储器不同的非易失性存储器。然而,虽然已经示出了特定存储设备300,但是参考本公开的本领域技术人员将认识到,存储设备(或根据本公开的教导以类似于下面针对存储设备300所述的操作的其他设备)可以包括用于提供传统存储设备功能以及下面讨论的功能的各种部件和/或部件配置,其也落入在本公开的范围内。
现在参考图4,示出了用于为存储设备配置映射粒度的方法400的实施例。如下所述,本公开的系统和方法提供了主机配置与逻辑分配地址(LAA)和逻辑块地址(LBA)相关联的映射粒度的能力,以便提供对映射表在将LAA映射到物理分配地址(PAA)的SSD存储设备的更有效使用,同时还减少甚至消除了传统SSD存储设备中所需的读-修改-写(RMW)操作,特别是在修改存储在PAA中的数据时,其中该数据的大小小于与映射到该PAA的LAA相关联的LBA的数量。例如,SSD中的存储控制器可以从主机接收存储设备映射粒度配置命令,该命令标识要与多个LAA相关联的逻辑块地址LBA的数量,并且可以操作以将多个LAA中的每一个与第一存储设备映射粒度配置命令中标识的LBA的数量相关联。这样,当存储控制器随后将数据写入PAA时,该PAA包括的数据大小等于在存储设备映射粒度配置命令中标识的并且与多个LAA中的每一个相关联的LBA的数量的组合LBA大小,它可以用映射表中的单个映射条目将PAA映射到第一LAA(其包括在多个LAA中并且与第一存储设备映射粒度配置命令中标识的多个LBA相关联)。此外,由于PAA映射到与LBA的数量相关联的第一LAA,其中LBA具有等于写入该PAA的数据的数据大小的组合LBA大小,因此该数据可以直接写入由该PAA标识的NAND闪存存储设备,而不需要上面讨论的RMW操作。这样,能够更有效地使用映射表、存储控制器和SSD存储设备。
参考图5并且为了清楚起见(关于以下讨论中使用的术语),示出了可以在计算设备300的存储器子系统304中的逻辑/物理存储位置映射数据库306中提供多个逻辑/物理存储位置映射500的实施例。在所示实施例中,逻辑/物理存储位置映射500被示为被提供用于存储设备逻辑空间502,其被映射到存储设备物理空间504,该存储设备物理空间504可以包括在存储子系统310中并由SSD存储设备中的NAND闪存设备提供,如上所述。在图5所示的特定示例中,存储设备逻辑空间502包括多个LBA,诸如LBA 0、LBA 1、LBA 2、以及直到LBA N。此外,如上所述,LBA的组可以与存储设备逻辑空间502中的相应LAA相关联,其中图5示出了8个LBA与每个LAA的传统关联(例如,LBA 0-LBA 7与LAA 0相关联,LBA 8-LBA 15与LAA 1相关联,依此类推)。每个LAA还与存储设备逻辑空间502中的相应PAA相关联(例如,LAA0与PAAX相关联,LAA 1与PAA Y相关联,依此类推),其中每个PAA标识存储设备物理空间504中的特定存储位置(例如,在NAND闪存设备中)。如参考本公开的本领域技术人员将理解的,SSD存储设备中的NAND闪存设备中的存储位置通常以4KB“分配单元”或“页面大小”提供。此外,在传统的SSD存储设备中,标识用于存储数据的那些存储位置之一的每个PAA被映射到相应的LAA(如上面所讨论的在映射表中),并且这些LAA/PAA映射中的每一个可以被认为是与图5所示的8个LBA的“映射粒度”相关联。
方法400开始于框402,其中存储控制器接收存储设备映射粒度配置命令,该命令标识要与多个逻辑分配地址(LAA)相关联的逻辑块地址(LBA)的数量。在一个实施例中,在框402处或框402之前,主机引擎204可以确定将用于存储数据的逻辑/物理存储位置映射的期望映射粒度。例如,主机引擎204可以标识要写入存储设备206a/300中的存储子系统310的多个数据的数据大小,标识等于该数据大小的LBA的数量的组合LBA大小,并基于LBA的数量确定所需的映射粒度。如参考本公开的本领域技术人员将理解的,存储设备206a-206c和/或在那些存储设备中的存储子系统310可以提供多个命名空间,并且主机引擎204可以选择数据将被写入的命名空间,然后如上所述确定该命名空间的所需映射粒度。如下面进一步详细讨论的,可以针对由存储设备206a-206c和/或在那些存储设备中的存储子系统310提供的不同命名空间确定不同的映射粒度,因此不同大小的数据可以写入具有基于该数据/那些数据大小确定的映射粒度的命名空间。
这样,在一些示例中,主机引擎204可以标识要写入存储设备206a/300中的存储子系统310的多个数据,包括等于1个LBA的数据大小,并且作为响应,可以确定每个LAA对应一个LBA的期望映射粒度。类似地,在一些示例中,主机引擎204可以标识要写入存储设备206a/300中的存储子系统310的多个数据,包括等于2个LBA的数据大小,并且作为响应,可以确定每个LAA对应两个LBA的期望映射粒度。类似地,在一些示例中,主机引擎204可以标识要写入存储设备206a/300中的存储子系统310的多个数据,包括等于4个LBA的数据大小,并且作为响应,可以确定每个LAA对应4个LBA的期望映射粒度。类似地,在一些示例中,主机引擎204可以标识要写入存储设备206a/300中的存储子系统310的多个数据,包括等于8个LBA的数据大小,并且作为响应,可以确定每个LAA对应8个LBA的期望映射粒度。
类似地,在一些示例中,主机引擎204可以标识要写入存储设备206a/300中的存储子系统310的多个数据,包括等于16个LBA的数据大小,并且作为响应,可以确定每个LAA对应16个LBA的期望映射粒度。类似地,在一些示例中,主机引擎204可以标识要写入存储设备206a/300中的存储子系统310的多个数据,包括等于32个LBA的数据大小,并且作为响应,可以确定每个LAA对应32个LBA的期望映射粒度。参考本公开的本领域技术人员将认识到,可以提供上面讨论的每个LAA对应8个LBA传统映射粒度作为默认映射粒度,并且因此对每个LAA对应8个LBA的期望映射粒度的确定可能不需要下面讨论的映射粒度配置操作。然而,参考本公开的本领域技术人员还将认识到,可以提供任何映射粒度作为命名空间的默认值,以及也可以确定任何期望的映射粒度(例如,与上述期望的映射粒度的特定示例不同的),其也将落入在本公开的范围内。
因此,在一个实施例中,在框404,主机引擎204可以生成标识上面讨论的期望映射粒度的存储设备映射粒度配置命令,并且可以将该存储设备映射粒度配置命令发送到存储设备206a/300。然而,虽然被讨论为被发送到存储设备206a/300,但是本领域技术人员将理解,存储设备映射粒度配置命令可以被发送到任何存储设备206-206c,同时也落入在本公开的范围内。这样,在框404,存储设备206a/300中的存储控制器305可以经由通信系统308接收存储设备映射粒度配置命令。在一些实施例中,存储设备映射粒度配置命令可以由粒度设置(GR_Set)命令提供,其可以由存储控制器305经由GR_Set命令接口接收,该GR_Set命令接口在存储设备206a/300中的固件中提供,并且用于打开由该存储设备206a/300提供给本公开的GR_Set命令的命名空间。如本领域技术人员将理解的,可以使用NVMe规范中定义的用于管理命令功能的操作码和/或通过本领域中已知的任何其他技术来提供GR_Set命令。
然后,方法400前进到框404,其中存储控制器将多个LAA中的每一个与在存储设备映射粒度配置命令中标识的LBA的数量相关联。在一个实施例中,在框404处并且响应于在框402处接收存储设备映射粒度配置命令,存储设备202a中的存储控制器305可以操作以将在存储设备映射粒度配置命令中标识的多个LAA中的每一个(例如,存储设备映射粒度配置命令中标识的命名空间的多个LAA中的每一个)与在存储设备映射粒度配置命令中标识的映射粒度(例如,在存储设备映射粒度配置命令中标识的LBA的数量)相关联。
在特定示例中,在框404处,存储控制器305可以解析(例如,经由在存储设备206a/300中的固件中提供的GR_Set命令接口并且其操作以打开由该存储设备206a/300提供给本公开的GR_Set命令的命名空间)存储设备映射粒度配置命令(例如,GR_Set命令),以标识命名空间和其中提供的映射粒度,并将该映射粒度保存在与该命名空间相关联的命名空间表中。这样,为该命名空间提供的多个LAA与在该命名空间表中的期望映射粒度中标识的LBA的数量相关联。在与命名空间相关联地命名空间表中保存映射粒度之后,命名空间表可以与由存储器子系统304提供的逻辑/物理存储位置映射数据库306中的该命名空间的映射表相关联地存储,该存储器子系统304操作以根据主机引擎204的请求设置LAA映射到PAA的映射粒度。此外,在一些实施例中,命名空间表也可以保存到存储子系统310。例如,参考本公开的本领域技术人员将认识到存储子系统310可以包括提供用于存储主机/用户数据的NAND存储器设备,以及提供用于存储闪存转换层(FTL)信息的NAND存储器设备,以及命名空间表的副本如何可以存储为FTL信息的一部分,以便例如在后续启动、重置和/或其他用于计算设备200的初始化操作中允许将命名空间表从存储子系统310加载到由存储器子系统304提供的逻辑中/物理存储位置映射数据库306,其实施例在下面进一步详细讨论。
然后,方法400前进到框406,其中存储控制器向物理分配地址(PAA)写入数据,该数据的数据大小等于在存储设备中映射粒度配置命令标识的以及与多个LAA中的每一个相关联的LBA的数量的组合LBA大小。在一个实施例中,在框406处并且在如上所述设置命名空间的映射粒度之后,存储设备206a/300中的存储控制器305可以经由其通信系统308接收数据以写入存储子系统310,并且作为响应,可以将该数据写入定义存储子系统310中的存储位置的PAA。如上所述,可以基于将写入该命名空间的特定的数据大小来执行框404处的命名空间的映射粒度的配置,并且因此,接收该数据可以使存储控制器305标识为其配置映射粒度以存储该数据的命名空间,标识由该命名空间提供的存储位置的PAA,并将数据存储在该PAA标识的存储位置。
这样,在框406,存储控制器305可以接收具有等于1个LBA的数据大小的数据,并且可以将该数据写入与在框406处配置的命名空间相关联的PAA中,其中为该命名空间提供每个LAA对应1个LBA的映射粒度。类似地,在框406,存储控制器305可以接收具有等于2个LBA的数据大小的数据,并且可以将该数据写入与在框406处配置的命名空间相关联的PAA中,其中为该命名空间提供每个LAA对应2个LBA的映射粒度。类似地,在框406,存储控制器305可以接收具有等于4个LBA的数据大小的数据,并且可以将该数据写入与在框406处配置的命名空间相关联的PAA中,其中为该命名空间提供每个LAA对应4个LBA的映射粒度。类似地,在框406处,存储控制器305可以接收具有等于8个LBA的数据大小的数据,并且可以将该数据写入与在框406处配置的命名空间相关联的PAA中,其中为该命名空间提供每个LAA对应8个LBA的映射粒度。
类似地,在框406处,存储控制器305可以接收具有等于16个LBA的数据大小的数据,并且可以将该数据写入与在框406处配置的命名空间相关联的PAA中,其中为该命名空间提供每个LAA对应16个LBA的映射粒度。类似地,在框406处,存储控制器305可以接收具有等于32个LBA的数据大小的数据,并且可以将该数据写入与在框406处配置的命名空间相关联的PAA中,其中为该命名空间提供每个LAA对应32个LBA的映射粒度。然而,虽然已经提供了各种具体示例,但是参考本公开的本领域技术人员将认识到,可以将数据写入到配置有任何映射粒度的存储子系统310,同时也落入在本公开的范围内。
然后,方法400前进到框408,其中存储控制器将PAA映射到包括在存储设备映射粒度配置命令中标识的与LBA的数量相关联的多个LAA中的第一LAA。在一个实施例中,在框408,存储控制器305可以操作以将PAA(在框406中,数据写入到其中)映射到与该PAA相关联的命名空间相关联的多个LAA中的一个。例如,参考图6,示出了逻辑/物理存储位置映射600的实施例,其可以在框408处在计算设备300的存储器子系统304中的逻辑/物理存储位置映射数据库306中提供。类似地,如上面利用图5的逻辑/物理存储位置映射500所描述的,逻辑/物理存储位置映射600被示出为具有存储设备逻辑空间602,其可以被映射到存储设备物理空间604,其可包括在存储子系统310中并由SSD存储设备中的NAND闪存设备提供。在图6所示的具体示例中,存储设备逻辑空间602包括多个LBA,包括LBA 0、LBA 1、LBA 2、直到LBA N,并且根据方法400提供每个LAA对应32个LBA的映射粒度。
这样,在框406,将大小等于32个LBA的数据写入由PAA 0标识的存储设备物理空间604中的存储设备物理位置604a,并且在框408,存储控制器将PAA 0映射至与32个LBA(LBA0-LBA 31)相关联的LAA 0。如参考本公开的本领域技术人员将理解的,在这种情况下,PAA到LAA的映射仅需要单个映射条目,诸如以下映射表的部分中的映射条目:
逻辑分配地址 | 物理分配地址 |
LAA 0 | PAA 0 |
如参考本公开的本领域技术人员将理解的,通过LAA 0对应32个LBA的映射粒度来实现将映射条目提供为单个条目的能力,其提供组合的LBA大小,等于写入PAA 0的数据大小,如本例所示。相比之下,每个LAA对应8个LBA的传统映射粒度将要求将该数据分解为4个8个-LBA大小的部分并写入四个PAA,因此需要四个映射条目(例如,每个PAA/LAA组合一个)。然而,虽然已经描述了每个LAA对应32个LBA的特定映射粒度,但是本领域技术人员将认识到其他映射粒度也将提供类似的益处。
在另一示例中,参考图7,示出了逻辑/物理存储位置映射700的实施例,其可以在框408在计算设备的存储器子系统304中的逻辑/物理存储位置映射数据库306中提供。类似于如上所述的图5的逻辑/物理存储位置映射500,逻辑/物理存储位置映射700被示出具有可以映射到存储设备物理空间704的存储设备逻辑空间702,该存储设备物理空间704可以包括在存储子系统310中并且由SSD存储设备中的NAND闪存设备提供。在图7所示的具体示例中,存储设备逻辑空间702包括多个LBA,包括LBA 0、LBA 1、LBA 2、直到LBA N,并且根据方法400提供了每个LAA对应4个LBA的映射粒度。这样,在框406,将大小与4个LBA相等的数据写入由PAA 0标识的存储设备物理空间604中的存储设备物理位置604a,并且在框408,存储控制器将PAA 0映射到与4个LBA(LBA 0-LBA 3)相关联的LAA0。如参考本公开的本领域技术人员所理解的,在这种情况下PAA到LAA的映射仅需要与上述类似的单个映射条目。
此外,如本领域技术人员还将理解的,通过配置具有相对小的映射粒度的那些命名空间(例如,图7中所示的每个LAA对应4个LBA的映射粒度),可以为具有相对小的数据大小的数据提供命名空间,以便减少和/或消除对上述RMW操作的需要。例如,可以通过简单地将新数据写入具有等于4个LBA的数据大小的存储设备物理位置604a(例如,由PAA0标识的NAND闪存设备)来修改写入由PAA0标识并且包括等于四个LBA的数据大小的存储设备物理空间604中的存储设备物理位置604a的数据。与每个LAA对应8个LBA的传统映射粒度相比,写入具有等于4个LBA的数据大小的新数据将需要从PAA标识的存储设备物理位置读取8个LBA大小的现有数据,使用新数据修改现有数据以提供被修改数据,并将该8个-LBA大小的被修改数据写回由PAA标识的存储设备物理位置。这样,可以通过本公开的映射粒度配置来节省存储控制器305的资源。
然后,方法400前进到框410,其中存储控制器接收存储设备映射粒度报告命令,该命令请求与多个LAA相关联的映射粒度。在一个实施例中,在框410,主机引擎204可以生成存储设备映射粒度报告命令,该命令请求与存储设备206-206c中的存储子系统310提供的任何命名空间相关联的映射粒度,并发送该存储设备映射粒度报告命令到存储设备206a-206c。例如,在计算设备200的启动、重置和/或其他初始化操作期间,主机引擎204可以操作以请求与存储设备206a-206c提供的任何命名空间相关联的映射粒度。这样,在框404,存储设备300中的存储控制器305可以经由通信系统308接收存储设备映射粒度报告命令。类似于下面针对GR-Set命令所描述的,存储设备映射粒度配置命令可以由粒度获取(GR_Get)命令提供,该命令可以由存储控制器305经由GR_Get命令接口接收,该GR_Get命令接口在存储设备300中的固件中提供,并且用于打开由该存储设备300提供给本公开的GR_Get命令的命名空间。如参考本公开的本领域技术人员将理解的,可以使用NVMe规范中定义的用于管理命令的操作码功能和/或通过本领域中已知的任何其他技术来提供GR_Get命令。
然后,方法400前进到框412,其中存储控制器标识与多个LAA相关联的LBA的数量。在一个实施例中,在框412处并且响应于在框412处接收存储设备映射粒度报告命令,存储设备202a中的存储控制器305可以操作以检索存储在存储子系统310中的命名空间表(例如,在如上所述的NAND闪存设备中的FTL信息中),并在存储器子系统304中的逻辑/物理存储位置映射数据库306中提供该命名空间表。然后,存储控制器305可以访问存储设备映射粒度报告命令中标识的命名空间,检索与该命名空间相关联的映射粒度,并将该映射粒度发送到主机引擎204。如参考本公开的本领域技术人员将理解的,主机引擎204然后可以提供映射粒度显示给用户,和/或使用该映射粒度来执行现有技术中已知的各种其他动作。
然后,方法400可以返回到框402,使得方法400可以重复。这样,由存储设备206a-206c/300中的存储子系统310提供的不同命名空间可以基于例如将存储在那些命名空间中的数据的数据大小和/或对于参考本公开的本领域技术人员显而易见的任何其他考虑因素而配置有不同的映射粒度。这样,主机引擎204可以尝试优化存储设备206a-206c中的存储控制器的数据处理操作,减少存储设备206a-206c中的映射表大小,和/或提供对于参考本公开的本领域技术人员显而易见的各种其他益处。例如,处理相对较大数据的主机可以配置其可访问命名空间的较高百分比使用相对较大的映射粒度,而处理相对较小数据的主机可以配置其可访问命名空间的较高百分比使用相对较小的映射粒度。此外,处理各种大小数据的主机可以根据层级配置映射粒度,如下表所示:
命名空间的百分比 | 命名空间的粒度 |
10% | 32X LBA |
20% | 16X LBA |
50% | 8X LBA |
15% | 4X LBA |
5% | 1X LBA |
在一些实施例中,可以通过修改PAA的数据结构以便例如确保损耗均衡算法可以正确地起作用来实现本公开的系统和方法。例如,一些耗损均衡算法需要固定大小的NAND存储器设备,因此可以修改本公开的PAA的数据结构以确保耗损均衡操作单元是完整的有效载荷(payload)。例如,存储在PAA中的每个数据有效载荷可以与包括与存储该数据的命名空间相关联的信息的元数据(例如,命名空间标识符),与标识该数据的存储位置的PAA相关联的LAA(例如,LAA值),有效载荷总数和有效载荷偏移(以及纠错码(ECC)信息)相关联。这样,每个NAND存储器设备(例如,分配单元或页面)可以在下表中存储以下数据:
此外,如所讨论的,如上表中详述的存储在NAND存储器设备(例如,分配单元或页面)中的每个元数据部分可以包括下表中的以下数据:
命名空间标识符 | LAA值 | 有效载荷总数 | 有效载荷偏移 |
如参考本公开的本领域的技术人员将了解,对于耗损均衡操作的一部分的每个数据操作(例如,读取、写入、擦除操作),可以对有效载荷总数/偏移进行检查以确保正在操作完整的有效载荷,并且不同的命名空间之间不存在干扰。例如,上面的四个有效载荷部分及其相关元数据可能包括下表中的信息:
命名空间标识符 | LAA值 | 有效载荷总数 | 有效载荷偏移 |
3 | 100 | 4 | 0 |
3 | 100 | 4 | 1 |
3 | 100 | 4 | 2 |
3 | 100 | 4 | 3 |
这样,四个有效载荷部分中的元数据标识其每个与相同的命名空间、LAA和有效载荷相关联,并且以特定顺序(例如,根据有效载荷偏移值0-3)提供。
因此,已经描述了系统和方法,其为主机提供配置与逻辑存储位置标识符相关联的映射粒度的能力,以便更有效地使用映射逻辑存储位置标识符到物理存储位置标识符的存储设备中的映射表,并且当修改存储在物理位置中并且数据大小小于与映射到标识该物理位置的物理标识符逻辑标识符相关联的映射粒度的数据时,减少或消除传统存储设备中所需的读-修改-写(RMW)操作的需要。例如,存储设备中的存储控制器可以从主机接收配置命令,该配置命令标识与多个LAA相关联的LBA的数量,并且可以操作以将多个LAA中的每一个与在配置命令中标识的LBA的数量相关联。这样,当存储控制器随后将数据写入PAA时,该PAA包括数据大小,该数据大小等于在配置命令中标识并且与多个LAA中的每一个相关联的LBA的数量的组合LBA大小,它可以将PAA映射到第一LAA,第一LAA包括在多个LAA中并且将配置命令中标识的LBA的数量与映射表中的单个映射条目相关联。此外,由于PAA映射到与LBA的数量相关的第一LAA,且其大小等于写入该PAA的数据的数据大小,因此该数据可以直接写入由该PAA标识的NAND闪存设备,而不需要上面讨论的RMW操作。这样,能够更有效地使用映射表、存储控制器和存储设备。
尽管已经示出和描述了说明性实施例,但是在前述公开中预期了不同的修改、改变和替换,并且在一些情况下,可以采用实施例的一些特征而不相应地采用其他特征。因此,适当的是,所附权利要求应被广泛地解释以及以与本文公开的实施例的范围一致的方式解释。
Claims (20)
1.一种存储设备,包括:
存储子系统;
逻辑/物理存储位置映射数据库,其被配置为将逻辑分配地址映射到标识在所述存储子系统中的物理位置的物理分配地址;以及
存储控制器,其耦合到所述存储子系统和所述逻辑/物理存储位置映射数据库,其中所述存储控制器被配置为:
从主机引擎接收第一存储设备映射粒度配置命令,所述第一存储设备映射粒度配置命令标识与第一多个逻辑分配地址相关联的逻辑块地址的第一数量;
将所述第一多个逻辑分配地址中的每一个与所述第一存储设备映射粒度配置命令中标识的逻辑块地址的所述第一数量相关联;
将具有第一数据大小的第一数据写入第一物理分配地址,所述第一数据大小等于在第一存储设备映射粒度配置命令中标识并且与所述第一多个逻辑分配地址中的每一个相关联的逻辑块地址的所述第一数量的第一组合逻辑块地址大小;以及
在所述逻辑/物理存储位置映射数据库中,将第一物理分配地址映射到第一逻辑分配地址,所述第一逻辑分配地址包括在所述第一多个逻辑分配地址中并且与所述第一存储设备映射粒度配置命令中标识的逻辑块地址的所述第一数量相关联。
2.根据权利要求1所述的存储设备,其中,所述存储控制器被配置为:
从所述主机引擎接收第二存储设备映射粒度配置命令,所述第二存储设备映射粒度配置命令标识要与第二多个逻辑分配地址相关联的逻辑块地址的第二数量,其中逻辑块地址的所述第二数量不同于逻辑块地址的所述第一数量;
将第二多个逻辑分配地址中的每一个与所述第二存储设备映射粒度配置命令中标识的逻辑块地址的所述第二数量相关联;
将具有第二数据大小的第二数据写入第二物理分配地址,所述第二数据大小等于在第二存储设备映射粒度配置命令中标识并且与所述第二多个逻辑分配地址中的每一个相关联的逻辑块地址的所述第二数量的第二组合逻辑块地址大小;以及
在所述逻辑/物理存储位置映射数据库中,将所述第二物理分配地址映射到第二逻辑分配地址,所述第二逻辑分配地址包括在所述第二多个逻辑分配地址中并且与所述第二存储设备映射粒度配置命令中标识的逻辑块地址的所述第二数量相关联。
3.根据权利要求2所述的存储设备,其中所述第一多个逻辑分配地址与由所述存储子系统提供的第一命名空间相关联,并且所述第二多个逻辑分配地址与由所述存储子系统提供的第二命名空间相关联,并且所述第二命名空间与所述第一命名空间不同。
4.根据权利要求1至3中任一项所述的存储设备,其中,所述存储控制器被配置为:
从所述主机引擎接收存储设备映射粒度报告命令,所述存储设备映射粒度报告命令请求与所述第一多个逻辑分配地址相关联的映射粒度;以及
向所述主机引擎标识与所述第一多个逻辑分配地址中的每一个相关联的逻辑块地址的所述第一数量。
5.根据权利要求1至3中任一项所述的存储设备,其中所述存储子系统包括NAND闪存设备。
6.根据权利要求1至3中任一项所述的存储设备,其中所述存储控制器被配置为:
在映射粒度表中,将所述第一多个逻辑分配地址与第一存储设备映射粒度配置命令中标识的逻辑块地址的所述第一数量相关联;以及
将所述映射粒度表保存在所述存储子系统中。
7.一种信息处理系统,包括:
处理系统;以及
存储系统,其耦合到所述处理系统并且包括指令,所述指令在由所述处理系统执行时使所述处理系统提供存储控制器引擎,该存储控制器引擎被配置为:
从主机引擎接收第一存储设备映射粒度配置命令,所述第一存储设备映射粒度配置命令标识与第一多个逻辑分配地址相关联的逻辑块地址的第一数量;
将所述第一多个逻辑分配地址中的每一个与所述第一存储设备映射粒度配置命令中标识的逻辑块地址的所述第一数量相关联;
将具有第一数据大小的第一数据写入标识在所述存储子系统中的第一物理位置的第一物理分配地址,所述第一数据大小等于在所述第一存储设备映射粒度配置命令中标识并且与第一多个逻辑分配地址中的每一个相关联的逻辑块地址的所述第一数量的第一组合逻辑块地址大小;以及
在所述逻辑/物理存储位置映射数据库中,将第一物理分配地址映射到第一逻辑分配地址,所述第一逻辑分配地址包括在所述第一多个逻辑分配地址中并且与第一存储设备映射粒度配置命令中标识的逻辑块地址的所述第一数量相关联。
8.根据权利要求7所述的信息处理系统,其中所述存储控制器引擎被配置为:
从所述主机引擎接收第二存储设备映射粒度配置命令,所述第二存储设备映射粒度配置命令标识与第二多个逻辑分配地址相关联的逻辑块地址的第二数量,其中逻辑块地址的所述第二数量不同于逻辑块地址的所述第一数量;
将所述第二多个逻辑分配地址中的每一个与所述第二存储设备映射粒度配置命令中标识的逻辑块地址的所述第二数量相关联;
将具有第二数据大小的第二数据写入标识在所述存储子系统中的第二物理位置的第二物理分配地址,所述第二数据包括第二数据大小,所述第二数据大小等于在所述第二存储设备映射粒度配置命令中标识并且与所述第二多个逻辑分配地址中的每一个相关联的逻辑块地址的所述第二数量的第二组合逻辑块地址大小;以及
在所述逻辑/物理存储位置映射数据库中,将所述第二物理分配地址映射到第二逻辑分配地址,所述第二逻辑分配地址包括在所述第二多个逻辑分配地址中并且与第二存储设备映射粒度配置命令中标识的逻辑块地址的所述第二数量相关联。
9.根据权利要求8所述的信息处理系统,其中所述第一多个逻辑分配地址与由所述存储子系统提供的第一命名空间相关联,并且所述第二多个逻辑分配地址与由所述存储子系统提供的第二命名空间相关联,并且所述第二命名空间与所述第一命名空间不同。
10.根据权利要求7至9中任一项所述的信息处理系统,其中所述存储控制器引擎被配置为:
从所述主机引擎接收存储设备映射粒度报告命令,所述存储设备映射粒度报告命令请求与所述第一多个逻辑分配地址相关联的映射粒度;以及
向所述主机引擎标识与所述第一多个逻辑分配地址中的每一个相关联的逻辑块地址的所述第一数量。
11.根据权利要求7至9中任一项所述的信息处理系统,其中所述存储子系统包括NAND闪存设备。
12.根据权利要求7至9中任一项所述的信息处理系统,其中所述存储控制器引擎被配置为:
在映射粒度表中,将所述第一多个逻辑分配地址与所述第一存储设备映射粒度配置命令中标识的逻辑块地址的所述第一数量相关联;以及
将所述映射粒度表保存在所述存储子系统中。
13.根据权利要求12所述的信息处理系统,其中所述映射粒度表是命名空间表,并且所述第一多个逻辑分配地址与在所述命名空间表中标识的第一命名空间相关联。
14.一种用于为存储设备配置映射粒度的方法,包括:
由存储控制器从主机引擎接收第一存储设备映射粒度配置命令,所述第一存储设备映射粒度配置命令标识与第一多个逻辑分配地址相关联的逻辑块地址的第一数量;
由所述存储控制器将第一多个逻辑分配地址中的每一个与第一存储设备映射粒度配置命令中标识的逻辑块地址的所述第一数量相关联;
由所述存储控制器将具有第一数据大小的第一数据写入标识在所述存储子系统中的第一物理位置的第一物理分配地址,所述第一数据大小等于在所述第一存储设备映射粒度配置命令中标识并且与所述第一多个逻辑分配地址中的每一个相关联的逻辑块地址的所述第一数量的第一组合逻辑块地址大小;以及
在所述逻辑/物理存储位置映射数据库中,由所述存储控制器将第一物理分配地址映射到第一逻辑分配地址,所述第一逻辑分配地址包括在所述第一多个逻辑分配地址中并且与所述第一存储设备映射粒度配置命令中标识的逻辑块地址的所述第一数量相关联。
15.根据权利要求14所述的方法,还包括:
由所述存储控制器从所述主机引擎接收第二存储设备映射粒度配置命令,所述第二存储设备映射粒度配置命令标识与第二多个逻辑分配地址相关联的逻辑块地址的第二数量,其中逻辑块地址的所述第二数量不同于逻辑块地址的所述第一数量;
由所述存储控制器将所述第二多个逻辑分配地址中的每一个与所述第二存储设备映射粒度配置命令中标识的逻辑块地址的所述第二数量相关联;
由所述存储控制器将具有第二数据大小的第二数据写入标识在所述存储子系统中的第二物理位置的第二物理分配地址,所述第二数据包括第二数据大小,所述第二数据大小等于在所述第二存储设备映射粒度配置命令中标识并且与所述第二多个逻辑分配地址中的每一个相关联的逻辑块地址的所述第二数量的第二组合逻辑块地址大小;以及
在所述逻辑/物理存储位置映射数据库中,由所述存储控制器将所述第二物理分配地址映射到第二逻辑分配地址,所述第二逻辑分配地址包括在所述第二多个逻辑分配地址中并且与所述第二存储设备映射粒度配置命令中标识的逻辑块地址的所述第二数量相关联。
16.根据权利要求15所述的方法,其中所述第一多个逻辑分配地址与由所述存储子系统提供的第一命名空间相关联,并且所述第二多个逻辑分配地址与由所述存储子系统提供的第二命名空间相关联,并且所述第二命名空间与所述第一命名空间不同。
17.根据权利要求14至16中任一项所述的方法,还包括:
由所述存储控制器从所述主机引擎接收存储设备映射粒度报告命令,所述存储设备映射粒度报告命令请求与所述第一多个逻辑分配地址相关联的映射粒度;以及
由所述存储控制器向所述主机引擎标识与所述第一多个逻辑分配地址中的每一个相关联的逻辑块地址的第一数量。
18.根据权利要求14至16中任一项所述的方法,其中所述存储子系统包括NAND闪存设备。
19.根据权利要求14至16中任一项所述的方法,还包括:
在映射粒度表中,由所述存储控制器将所述第一多个逻辑分配地址与第一存储设备映射粒度配置命令中标识的逻辑块地址的所述第一数量相关联;以及
由所述存储控制器将所述映射粒度表保存在所述存储子系统中。
20.根据权利要求19所述的方法,其中所述映射粒度表是命名空间表,并且所述第一多个逻辑分配地址与在所述命名空间表中标识的第一命名空间相关联。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910675677.8A CN112286838A (zh) | 2019-07-25 | 2019-07-25 | 存储设备可配置的映射粒度系统 |
US16/750,594 US11314655B2 (en) | 2019-07-25 | 2020-01-23 | Storage device configurable mapping granularity system where data is written without performing read-modify-write operations |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910675677.8A CN112286838A (zh) | 2019-07-25 | 2019-07-25 | 存储设备可配置的映射粒度系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112286838A true CN112286838A (zh) | 2021-01-29 |
Family
ID=74187507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910675677.8A Pending CN112286838A (zh) | 2019-07-25 | 2019-07-25 | 存储设备可配置的映射粒度系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11314655B2 (zh) |
CN (1) | CN112286838A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114942858A (zh) * | 2021-02-16 | 2022-08-26 | 美光科技公司 | 基于条目未中的主机系统通知 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6898393B2 (ja) * | 2019-03-22 | 2021-07-07 | 株式会社日立製作所 | ストレージシステム及びデータ転送方法 |
US11734110B1 (en) * | 2022-04-27 | 2023-08-22 | Dell Products L.P. | Storage device reclassification system |
US20240061767A1 (en) * | 2022-08-22 | 2024-02-22 | Micron Technology, Inc. | Logical address granularity configurations for logical address space partitions |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077235A (zh) * | 2013-03-26 | 2014-10-01 | 擎泰科技股份有限公司 | 分割物理块的方法及存储器系统 |
CN106557428A (zh) * | 2015-09-30 | 2017-04-05 | 西部数据技术公司 | 数据存储设备的映射系统选择 |
CN108268380A (zh) * | 2016-12-30 | 2018-07-10 | 北京兆易创新科技股份有限公司 | 一种读写数据的方法和装置 |
US20190079681A1 (en) * | 2017-09-08 | 2019-03-14 | Intel Corporation | Multiple indirection granularities for mass storage devices |
US20190146913A1 (en) * | 2019-01-10 | 2019-05-16 | Intel Corporation | On-device-copy for hybrid ssd |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101979735B1 (ko) * | 2012-11-02 | 2019-05-17 | 삼성전자 주식회사 | 비휘발성 메모리 시스템 및 이와 통신하는 호스트 |
US10048865B2 (en) * | 2014-10-24 | 2018-08-14 | Microsoft Technology Licensing, Llc | Disk partition stitching and rebalancing using a partition table |
US20160342463A1 (en) * | 2015-05-20 | 2016-11-24 | Kabushiki Kaisha Toshiba | Data protection in a namespace |
US9823849B2 (en) * | 2015-06-26 | 2017-11-21 | Intel Corporation | Method and apparatus for dynamically allocating storage resources to compute nodes |
US10152278B2 (en) * | 2017-03-21 | 2018-12-11 | Vmware, Inc. | Logical to physical sector size adapter |
US10871907B2 (en) * | 2018-12-31 | 2020-12-22 | Micron Technology, Inc. | Sequential data optimized sub-regions in storage devices |
-
2019
- 2019-07-25 CN CN201910675677.8A patent/CN112286838A/zh active Pending
-
2020
- 2020-01-23 US US16/750,594 patent/US11314655B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077235A (zh) * | 2013-03-26 | 2014-10-01 | 擎泰科技股份有限公司 | 分割物理块的方法及存储器系统 |
CN106557428A (zh) * | 2015-09-30 | 2017-04-05 | 西部数据技术公司 | 数据存储设备的映射系统选择 |
CN108268380A (zh) * | 2016-12-30 | 2018-07-10 | 北京兆易创新科技股份有限公司 | 一种读写数据的方法和装置 |
US20190079681A1 (en) * | 2017-09-08 | 2019-03-14 | Intel Corporation | Multiple indirection granularities for mass storage devices |
US20190146913A1 (en) * | 2019-01-10 | 2019-05-16 | Intel Corporation | On-device-copy for hybrid ssd |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114942858A (zh) * | 2021-02-16 | 2022-08-26 | 美光科技公司 | 基于条目未中的主机系统通知 |
CN114942858B (zh) * | 2021-02-16 | 2023-01-24 | 美光科技公司 | 基于条目未中的主机系统通知 |
Also Published As
Publication number | Publication date |
---|---|
US20210026781A1 (en) | 2021-01-28 |
US11314655B2 (en) | 2022-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10324832B2 (en) | Address based multi-stream storage device access | |
US10564872B2 (en) | System and method for dynamic allocation to a host of memory device controller memory resources | |
KR102137761B1 (ko) | 이종 통합 메모리부 및 그것의 확장 통합 메모리 스페이스 관리 방법 | |
US11314655B2 (en) | Storage device configurable mapping granularity system where data is written without performing read-modify-write operations | |
EP3729251A1 (en) | Virtualized ocssds spanning physical ocssd channels | |
US20140095555A1 (en) | File management device and method for storage system | |
US20140089585A1 (en) | Hierarchy memory management | |
CN107908571B (zh) | 一种数据写入方法、闪存装置及存储设备 | |
KR102585883B1 (ko) | 메모리 시스템의 동작 방법 및 메모리 시스템 | |
KR20200132495A (ko) | 메모리 시스템, 컨트롤러 및 컨트롤러의 동작 방법 | |
US20190042415A1 (en) | Storage model for a computer system having persistent system memory | |
US11740816B1 (en) | Initial cache segmentation recommendation engine using customer-specific historical workload analysis | |
US20130173855A1 (en) | Method of operating storage device including volatile memory and nonvolatile memory | |
CN113918087B (zh) | 存储装置以及用于管理存储装置中的命名空间的方法 | |
CN115458013A (zh) | 存储装置及其操作方法 | |
KR20200117032A (ko) | 하이브리드 메모리 시스템 | |
US12020764B2 (en) | Memory device for selectively operating multiple memory groups in different speeds and memory system including the same | |
US20190138236A1 (en) | System and Method to Reserve Persistent Memory Space in an NVDIMM for NVDIMM Namespace Support | |
US11327683B2 (en) | RAID storage-device-assisted read-modify-write system | |
US11023139B2 (en) | System for speculative block IO aggregation to reduce uneven wearing of SCMs in virtualized compute node by offloading intensive block IOs | |
US20210096767A1 (en) | Raid storage-device-assisted data update system | |
US11544013B2 (en) | Array-based copy mechanism utilizing logical addresses pointing to same data block | |
US11797183B1 (en) | Host assisted application grouping for efficient utilization of device resources | |
US20180032265A1 (en) | Storage assist memory module | |
US20230359389A1 (en) | Operation method of host configured to communicate with storage devices and memory devices, and system including storage devices and memory 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 |