CN109992536A - 数据处理方法、固态硬盘以及计算机设备 - Google Patents
数据处理方法、固态硬盘以及计算机设备 Download PDFInfo
- Publication number
- CN109992536A CN109992536A CN201810005236.2A CN201810005236A CN109992536A CN 109992536 A CN109992536 A CN 109992536A CN 201810005236 A CN201810005236 A CN 201810005236A CN 109992536 A CN109992536 A CN 109992536A
- Authority
- CN
- China
- Prior art keywords
- ssd
- application
- storage unit
- physical memory
- memory cell
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 239000007787 solid Substances 0.000 title claims description 32
- 238000012545 processing Methods 0.000 claims abstract description 76
- 238000000034 method Methods 0.000 claims abstract description 34
- 238000013507 mapping Methods 0.000 claims description 99
- 230000006399 behavior Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- SQVRNKJHWKZAKO-PFQGKNLYSA-N N-acetyl-beta-neuraminic acid Chemical compound CC(=O)N[C@@H]1[C@@H](O)C[C@@](O)(C(O)=O)O[C@H]1[C@H](O)[C@H](O)CO SQVRNKJHWKZAKO-PFQGKNLYSA-N 0.000 description 5
- 238000010276 construction Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
-
- 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
- G06F13/1678—Details of memory controller using bus width
-
- 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
- G06F13/1694—Configuration of memory controller to different memory types
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
本申请涉及存储技术领域,更具体的说涉及一种数据处理技术。在本申请的一种数据处理方法中,计算机设备的固态硬盘SSD接收数据处理请求,确定发送数据处理请求的目标应用,然后从SSD的多个物理存储单元中,确定出分配给目标应用的至少一个目标物理存储单元,并依据数据处理请求,向至少一个目标物理存储单元中执行数据处理操作。由于SSD中多个物理存储单元被分配给多个应用,且每个物理存储单元仅被分配给一个应用,使得SSD为不同应用分配的物理存储单元不同,这样,SSD在执行应用的数据处理请求时,只能在应用对应的物理存储单元内执行数据处理操作,从而可以避免多个应用之间竞争存储资源,也可以避免多个应用之间的相关干扰。
Description
技术领域
本申请涉及存储技术领域,更具体地说,涉及一种数据存取技术。
背景技术
固态硬盘(Solid State Disk,SSD)是用固态电子存储芯片阵列制成的硬盘。由于SSD具有读写速度快、能耗低等诸多优点,而被广泛应用于服务器、笔记本电脑等设备中。
其中,SSD可以满足设备(如,服务器等)中多个应用的数据读写需求。然而,由于SSD的带宽、数据读写速率等性能指标是相对恒定的,如果多个应用同时向SSD发起读或写请求,就可能由于该多个应用之间的竞争以及相互干扰,而导致部分应用的数据存取效率过低,甚至无法正常存取数据。如,假设SSD读取数据的总带宽是3GB/s,如果同时有5个应用向SSD发起读请求,那么由于这5个应用对于带宽的争抢,就可能出现SSD为一个应用分配了2GB/s的带宽,而使得其他4个应用共享剩余的1GB/s的带宽的情况,而如果SSD为应用分配的带宽无法满足应用存取数据所需的带宽,就可能导致应用的数据存取效率过低;又如,在多个应用通过SSD读取数据的过程中,如果某个应用的读写业务突然增大,那么该应用可能会从SSD申请更多带宽,而使得SSD分配给其余应用的带宽突然变小,导致其余应用的业务性能出现波动,甚至无法正常存取数据。
发明内容
有鉴于此,本申请实施例提供了一种数据处理方法、固态硬盘以及计算机设备,以降低由于多个应用之间的竞争而导致SSD的性能利用率过低的情况,减少应用存取数据效率过低,甚至数据存取异常的情况。
为实现上述目的,本申请的第一方面提供了一种数据处理方法,该方法应用于计算机设备中的固态硬盘SSD,该SSD中多个物理存储单元被分配给多个应用,每个应用分配有至少一个物理存储单元,且每个物理存储单元仅被分配给一个应用,该物理存储单元包括SSD中的至少一个晶圆体。在该方法中,SSD在接收到数据处理请求,并确定处发送数据处理请求的目标应用(该目标应用属于该多个应用)之后,会从该多个物理存储单元中,确定出分配给该目标应用的至少一个目标物理存储单元,而由于SSD为每个应用分配了至少一个物理存储单元,且每个物理存储单元仅被分配给一个应用,这样,SSD可以依据该数据处理请求,仅向该目标应用对应的该至少一个目标物理存储单元中执行数据处理操作,从而使得每个应用的读或写请求所能操作的物理存储单元是相互独立的,既避免了多个应用竞争SSD的存储资源,也避免了该多个应用之间的相关干扰,进而可以减少由于多个应用之间的竞争和干扰,而导致部分应用的存取数据效率过低,以及应用存取数据的性能不稳定的情况,提高了SSD的性能利用率。
在一种可能的设计中,为了便于管理为各个应用与物理存储单元的对应关系,SSD将多个物理存储单元分配给多个应用具体为:SSD将该多个物理存储单元分配给SSD为该多个应用创建的多个虚拟的逻辑存储单元,SSD中存储有逻辑存储单元与分配给逻辑存储单元的至少一个物理存储单元的映射关系,其中,一个应用对应一个逻辑存储单元,且一个物理存储单元仅被分配给一个应用的逻辑存储存储单元。相应的,在确定出发送该数据处理请求的目标应用之后,可以从该SSD创建的多个逻辑存储单元中,确定出SSD为该目标应用创建的目标逻辑存储单元,然后,根据逻辑存储单元与物理存储单元的映射关系,确定该SSD为该目标逻辑存储单元分配的至少一个目标物理存储单元。
在一种可能的设计中,为了能够更为合理的为各个应用分配物理存储单元,以满足应用的需求,该SSD可以通过如下方式,将多个物理存储单元被分配给所述SSD为所述多个应用创建的多个虚拟的逻辑存储单元:
为所述多个应用中的每个应用分别创建一个虚拟的逻辑存储单元,并存储所述应用与所述SSD为所述应用创建的逻辑存储单元的映射关系;
根据所述应用的存取需求,以及所述物理存储单元的存储参数,从所述SSD的多个物理存储单元中,选取出至少一个未被分配的物理存储单元分配给与所述应用具有映射关系的逻辑存储单元,并存储所述逻辑存储单元与分配给所述逻辑存储单元的至少一个物理存储单元的映射关系。
在一种可能的设计中,该应用的存取需求可以为应用的存储性能需求(如,对于读取速度或带宽等性能的需求),而该物理存储单元的存储参数为性能参数(如,读取速度、带宽等),相应的,可以根据该应用的存取性能需求,以及该物理存储单元的性能参数,从SSD的多个物理存储单元中,选取出至少一个未被分配的物理存储单元分配给与该应用具有映射关系的逻辑存储单元。
在一种可能的设计中,该应用的存取需求可以为应用的存取容量需求(如,对于存取数据所需的存储空间的大小的需求),而该物理存储单元的存储参数为容量参数(如,物理存储单元的存储空间的大小等,),相应的,SSD可以根据应用的存取容量需求,以及物理存储单元的容量参数,从SSD的多个物理存储单元中,选取出至少一个未被分配的物理存储单元分配给与所述应用具有映射关系的逻辑存储单元。
在一种可能的设计中,SSD的物理存储单元可以为该SSD的闪存芯片、SSD的闪存芯片中的片选或者SSD的片选中的晶圆体。
在本申请的第二方面,本申请还提供了一种固态硬盘,固态硬盘SSD的多个物理存储单元被分配给多个应用,每个应用分配有至少一个物理存储单元,且每个物理存储单元仅被分配给一个应用,所述物理存储单元包括所述SSD中的至少一个晶圆体。该SSD用于接收数据处理请求;确定该数据处理请求的目标应用,目标应用属于该多个应用;从多个物理存储单元中,确定出分配给该目标应用的至少一个目标物理存储单元;依据数据处理请求,向至少一个目标物理存储单元中执行数据处理操作。
在一种可能的设计中,SSD的多个物理存储单元被分配给SSD为多个应用创建的多个虚拟的逻辑存储单元,且该SSD存储有逻辑存储单元与分配给逻辑存储单元的至少一个物理存储单元的映射关系;其中,每个应用对应一个逻辑存储单元,且,一个物理存储单元仅被分配给一个应用的逻辑存储存储单元;相应的,SSD在从所述多个物理存储单元中,确定出分配给所述目标应用的至少一个目标物理存储单元时,具体用于,从所述SSD创建的多个逻辑存储单元中,确定所述SSD为所述目标应用创建的目标逻辑存储单元;根据逻辑存储单元与物理存储单元的映射关系,确定所述SSD为所述目标逻辑存储单元分配的至少一个目标物理存储单元。
在一种可能的设计中,SSD还用于,通过如下方式,将多个物理存储单元被分配给所述SSD为所述多个应用创建的多个虚拟的逻辑存储单元:
为所述多个应用中的每个应用分别创建一个虚拟的逻辑存储单元,并存储所述应用与所述SSD为所述应用创建的逻辑存储单元的映射关系;
根据所述应用的存取需求,以及所述物理存储单元的存储参数,从所述SSD的多个物理存储单元中,选取出至少一个未被分配的物理存储单元分配给与所述应用具有映射关系的逻辑存储单元,并存储所述逻辑存储单元与分配给所述逻辑存储单元的至少一个物理存储单元的映射关系。
在一种可能的设计中,所述物理存储单元为所述SSD的闪存芯片、所述SSD的闪存芯片中的片选或者所述片选中的晶圆体。
在本申请的第三方面,本申请还提供了一种计算机设备,包括:处理器,以及如上任一项描述的固态硬盘SSD;其中,该处理器,用于运行多个应用,并将所述应用发送的数据处理请求下发给所述SSD。本申请实施例的第三方面以及第二方面与第一方面设计思路一致,技术手段类似,技术方案带来的具体有益效果请参考第一方面,不再赘述。
附图说明
图1示出了本申请的方案所适用的一种计算机设备的组成结构示意图;
图2示出了本申请实施例中将固态硬盘的物理存储单元分配给应用的一种流程示意图;
图3示出了本申请实施例中将固态硬盘的物理存储单元分配给应用的一种流程示意图;
图4示出了应用、逻辑存储单元与SSD中的flash芯片之间的映射关系示意图;
图5示出了本申请实施例中将固态硬盘的物理存储单元分配给应用的又一种流程示意图;
图6示出了本申请实施例中将固态硬盘的物理存储单元分配给应用的又一种流程示意图;
图7示出了本申请实施例中数据处理方法的一种流程示意图;
图8示出了本申请实施例中数据处理方法的又一种流程示意图。
具体实施方式
本申请实施例的方案适用于多种数据存取场景。如,在虚拟化场景中,通过SSD可以为设备内构建出的多个虚拟机提供数据存取服务。
为了便于理解本申请的方案,先对SSD进行简单介绍。根据SSD的存储芯片所采用的介质不同,可以分为采用闪存芯片(Flash Memory)作为存储介质的SSD,以及采用动态随机存取存储器((Dynamic Random Access Memory,DRAM)作为存储介质的SSD。
由于采用DRAM构成的固态硬盘的应用范围较窄,在本申请中SSD是指采用flash芯片作为存储介质的SSD。
其中,SSD中的闪存芯片可以简称为flash芯片。由于flash芯片分为与非(Nand)闪存芯片(简称为NAND Flash)以及或非(NOR)闪存芯片(简称为NOR Flash)等,因此,采用flash芯片构成的SSD又可以分为采用NAND Flash芯片的SSD,以及采用NOR Flash芯片的SSD。
其中,该flash芯片由至少一个片选(EC)构成,每个片选由至少一个晶圆体(die)构成,die也称为晶片晶圆体,其为flash芯片中最小的物理单元,flash芯片会在die的存储区域内存储数据。其中,Die又可以分为多个块(Block),每个Block又包括多个页Page。
结合SSD的如上介绍,发明人经研究发现:
在SSD需要为多个应用提供数据存取服务的情况下,由于该多个应用共享该SSD中全部的存储资源,使得该多个应用之间会存在竞争以及干扰。其中,多个应用之间的竞争关系导致的结果是:该多个应用从SSD获得的存储性能会有所差异。而多个应用之间的干扰,除了与多个应用之间的竞争而导致存储性能相互影响之外,还与SSD读取数据的方式有关。为了便于理解,先对SSD读取数据的过程进行介绍。
以采用NAND Flash芯片构成的SSD进行说明。如果SSD的控制器接收到应用的读请求,该SSD会通过数据通道向NAND Flash芯片下发该读请求对应的读命令。而如果SSD的控制器接收到应用下发的写请求,SSD需要先选择执行该写请求所需操作的块,并检测是否需要对该块进行擦除(Erase)操作(擦除操作可以包括将块中的有效数据转移到其他块,清除该块内的数据),如果该块需要进行擦除,则SSD需要生成该应用的写请求触发的擦除命令,并通过数据通道向该块所在的NAND Flash芯片下发该擦除命令,然后再通过数据通道向该块所在的NAND Flash芯片下发该应用的写请求对应的写命令,以执行写请求所请求的写操作。当然,如果不需要对SSD选择出的该块进行擦除,SSD可以直接根据该写请求生成写命令,并向该块所在的NAND Flash芯片下发该写命令。
由于读命令对应的读操作,以及写命令对应的写操作所操作的基本单元都是该SSD中的页,而该擦除命令所操作的基本单元是一个块,即擦除操作一次需要擦除一个块,而一个块一般会包括多个页,因此,执行擦除命令对应的擦除操作的耗时远大于读操作以及写操作的耗时。
通常SSD会通过多个数据通道,并行操作该SSD中的多个NAND Flash芯片,每个数据通道可以连接有多个NAND Flash芯片,因此,每个数据通道都可能会接收到多个读命令、写命令以及擦除命令。由于执行擦除命令对应的擦除操作的耗时较高,这样,在某个NANDFlash芯片执行该擦除命令的过程中,数据通道中处于擦除命令之后且需要由该NANDFlash芯片处理的读命令和写命令就可能会被长时间堵塞,而无法被及时处理。而在多个应用共享SSD中所有NAND Flash芯片的情况中,SSD的每个数据通道中会存在多个不同应用对应的多个读命令、写命令以及擦除命令,因此,如果NAND Flash芯片执行某个应用的写请求对应的擦除命令的耗时较长,就可能导致其他应用对应的读命令以及写命令被堵塞在数据通道中,而无法被及时处理,从而使得多个应用向该SSD中读写数据的处理过程存在干扰。
同时,在NAND Flash芯片执行该擦除命令,导致数据通道中需要由该NAND Flash芯片处理的读命令和写命令被堵塞的原因为:在NAND Flash芯片通过数据通道获取某个应用对应的擦除命令之后,NAND Flash芯片会确定该擦除命令所指示擦除的块所在的die,并将die中该块上的数据进行擦除,然而,在擦除die中该块中数据的过程中,该数据通道中其他需要对该die进行数据读写的读命令以及写命令就无法被执行,从而有可能使得该应用之外的其他应用的读、写命令无法被及时执行。
结合以上发现,为了避免多个应用共享该SSD的全部存储资源,发明人想到可以将SSD中的存储区域从逻辑上划分为多个逻辑存储单元,每个逻辑存储单元对应该SSD的存储区域中的一部分存储区域,并为不同的应用分配不同的逻辑存储单元,这样,通过设备的处理器可以控制应用只能在该应用的逻辑存储单元对应的部分存储区域中进行读写操作。然而由于处理器无法获取SSD中存储区域的内部构成,所以无法获取存储区域与NAND Flash芯片的对应关系,因此,有可能出现将同一个NAND Flash芯片(或者同一个芯片内的片选或者die)对应的存储区域分配给多个应用的逻辑存储单元的情况,这样,仍可能会出现多个应用同时向同一个NAND Flash芯片中读写数据的情况,从而有可能出现由于该多个应用竞争该NAND Flash芯片中的die的存储资源,而使得该多个应用之间存在竞争或者干扰。
在以上基础上,发明人进一步研究发现,如果不同应用只能向SSD中不同的die内存取数据,就可以避免各个应用之间相互竞争SSD的存储资源,且可以避免多个应用之间的相互干扰。
结合以上研究发现,本申请的基本思想为:SSD将该SSD中的多个物理存储单元分配给需要该SSD提供数据存取服务的多个应用,其中,每个物理存储单元包括至少一个die。每个应用被分配给至少一个物理存储单元,且每个物理存储单元仅能分配给一个应用,SSD在接收到应用的读或写请求时,会先确定分配给该应用的至少一个物理存储单元,并依据该读或写请求,向该至少一个物理存储单元中执行读或写操作。
可见,由于每个应用所对应的物理存储单元固定的,且SSD为不同应用分配物理存储单元也是相互独立的,使得每个应用对应的该至少一个存储单元所能提供的带宽以及读写速率等存储性能也是固定的,从而实现多个应用之间的性能隔离,这样,即使多个应用同时向SSD中存取数据,也不会出现多个应用竞争SSD的存储性能的情况,从而有利于减少由于多个应用竞争和干扰,而导致部分应用存取效率过低,甚至数据存储失败等的情况。
结合以上内容,对本申请实施例的数据处理方法进行详细介绍。
本申请实施例的数据处理方法可以应用于设备内的SSD,而本申请实施例所适用的设备可以有多种可能,如,设备可以为服务器、笔记本电脑等计算机设备。
为了便于理解,先对本申请实施例的数据处理方法所适用的计算机设备进行介绍,如参见图1,其示出了本申请的方案所适用的一种计算机设备的组成结构示意图。
在图1中,该计算机设备100可以包括:处理器110、固态硬盘(Solid State Disk,SSD)120、存储器130、输入装置140以及显示器150等部件。其中,处理器110、固态硬盘120、存储器130、输入装置140以及显示器150通过通信总线160相连。
下面结合图1对计算机设备100的各个构成部件进行具体的介绍:
处理器110是计算机设备100的控制中心,利用各种数据接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器130内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行计算机设备100的各种功能和处理数据,从而对计算机设备进行整体监控。
其中,该处理器可以为中央处理器(Central Processing Unit,CPU),也可以是其他形式的处理器。
在一种可能的情况中,该处理器110至少可以用于:运行多个应用,并将该应用发送的数据处理请求下发给所述固态硬盘120;
该固态硬盘120包括:控制器和多个物理存储单元构成。该物理存储单元可以是固态硬盘中的存储芯片,也可以是存储单元中一个物理介质。在本申请实施例中,以该固态硬盘的存储芯片采用flash芯片为例,相应的,该物理存储单元可以为flash芯片、flash芯片中的一个片选或者片选中的晶圆体die。在本申请实施例中,固态硬盘的多个物理存储单元被分配给多个应用,每个应用分配有至少一个物理存储单元,且每个物理存储单元仅被分配给一个应用,该物理存储单元包括固态硬盘中的至少一个晶圆体;
在本申请实施例中,该固态硬盘的控制器至少用于:接收数据处理请求;确定发送数据处理请求的目标应用,目标应用属于该多个应用;从多个物理存储单元中,确定出分配给目标应用的至少一个目标物理存储单元;依据数据处理请求,向至少一个目标物理存储单元中执行数据处理操作。
具体的,该固态硬盘的控制器可以执行如下图2至图8实施例中固态硬盘侧所执行的相关操作。
需要说明的是,根据实际需要,计算机设备中可以设置一块或多块SSD,如,计算机设备中应用数量较多,所需存储的数据量也较大的情况下,计算机设备内部可以设置有多块SSD,每块SSD分别负责一个或多个应用的数据存取。
存储器130可用于存储软件程序以及模块,如。该存储器中可以存储多个应用程序的数据,构建的虚拟机的相关参数等等。
在一种可能的实现方式中,该存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能(比如声音播放功能、图像播放功能等)所需的应用程序等。在本申请实施例中,该存储程序区可以存储用于向SSD请求数据存取操作的多个应用的数据。该存储数据区可存储根据计算机设备100的使用所创建的数据,比如,音频数据、图像数据等等。
输入装置140可用于接收输入的数字或者字符信息等,以及产生与计算机设备100的用户设置以及功能控制有关的键信号输入。如,以该输入装置140可以包括触控面板以及其他输入设备。
显示器150(也可以称为显示模块),可用于显示由用户输入的信息或提供给用户的信息以及计算机设备100的各种菜单。
计算机设备100还可包括至少一种传感器,比如光传感器、运动传感器以及其他传感器,还可以包括通信模块、图像采集器,以及为计算机设备中各个部件供电的电源等。
本领域技术人员可以理解,图1中示出的计算机设备的结构并不构成对计算机设备的限定,在实际中,该计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
可以理解的是,为了将SSD中的多个物理存储单元分配给多个应用,该SSD可以为每个应用分别创建一个虚拟的逻辑存储单元,并将SSD中多个物理存储单元划归到该多个逻辑存储单元,且每个物理存储单元仅能划归到一个逻辑存储单元,从而建立每个逻辑存储单元与至少一个物理存储单元的映射关系。
为了便于理解本申请实施例的数据处理方法,先对SSD为每个应用创建并分配逻辑单元的过程进行介绍。为了便于描述,本申请以下实施例以采用NAND flash芯片的SSD为例进行介绍。但是可以理解的是,对于采用NOR flash芯片的SSD,SSD分配逻辑存储单元的过程相同。
如,参见图2,其示出了本申请实施例中创建逻辑存储单元的一种实现流程示意图,本实施例可以包括:
S201,SSD接收用户输入的至少两个待配置的应用的标识。
其中,待配置的应用为具有向SSD中存取数据的需求的应用,由于本申请实施例中需要为该应用配置逻辑存储单元,因此,将具有向SSD中存取数据的需求的应用称为待配置的应用。
需要说明的是,在计算机设备中,需要利用SSD实现数据存取的应用可以有多种类型,在本申请实施例中该待配置的应用除了计算机设备中常规安装的应用之外,还可以包括计算机设备中虚拟出的虚拟机等。
在本申请实施例中,SSD可以配置可供调用的接口,这样,用户通过调用SSD提供的接口,可以向SSD的控制器中输入所需配置的应用的相关信息。在一种实现方式中,用户向SSD的控制器中输入待配置的应用的标识可以是通过调用SSD的接口向SSD的控制器发送配置命令,该配置命令携带有待配置的应用的标识,且该配置命令用于指示SSD为待配置的应用创建逻辑存储单元。
其中,该应用的标识用于唯一标识待配置的每个应用,如,该应用的标识可以为应用的名称等。
S202,针对每个待配置的应用,SSD为该待配置的应用创建一个虚拟的逻辑存储单元,并存储该待配置的应用与该逻辑存储单元的第一映射关系。
如,该第一映射关系中可以包括应用的标识与逻辑存储单元的标识之间的映射关系。其中,逻辑存储单元的标识可以为唯一标识该逻辑存储单元的名称、标识符等等。
可以理解的是,逻辑存储单元并不是一个物理存在的存储单元,而是虚拟出的用于表征SSD中分配给应用的部分物理存储单元所构成的存储空间。因此,SSD的控制器为该待配置的应用创建一个逻辑存储单元可以认为是创建了一个虚拟的存储空间。
其中,为了便于区分,在本申请实施例中,将为应用创建的逻辑存储单元与应用之间的映射关系成为第一映射关系。
S203,SSD根据创建出的逻辑存储单元的总数量,将SSD的多个NAND Flash芯片平均分配给该总数量个逻辑存储单元,并存储逻辑存储单元与分配给该逻辑存储单元的至少一个NAND Flash芯片的第二映射关系,以使得每个逻辑存储单元包括至少一个NAND Flash芯片,且一个NANA Flash芯片仅属于一个逻辑存储单元。
其中,为了便于区分,将逻辑存储单元与分配给该逻辑单元的至少一个NANDFlash芯片之间的映射关系称为第二映射关系。本申请实施例中,将应用的逻辑存储单元与SSD中的物理存储单元的映射关系均称为第二映射关系。图2的实施例中,是以一个NANDFlash作为一个物理存储单元为例进行说明,使得构建每个逻辑存储单元与至少一个NANDFlash具有第二映射关系。
可以理解的是,对于任意一个应用而言,与该应用具有映射关系的逻辑存储单元实际上就是该应用的读或写请求能操作的NAND Flash芯片的集合。
需要说明的是,将SSD的多个NAND Flash芯片平均分配给该总数量个逻辑存储单元,并不是从物理上对该多个NAND Flash芯片进行划分,而只是从逻辑上将该多个NANDFlash芯片划归到该总数量个逻辑存储单元,以将该多个NAND Flash芯片映射到该总数量个逻辑存储单元中,并使得每个逻辑存储单元可以映射有至少一个NAND Flash芯片。
同时,在将该多个NAND Flash芯片划归到该总数量个逻辑存储单元时,一个NANDFlash芯片只能划归给(或者说分配给)一个逻辑存储单元,以使得各个逻辑存储单元内的NAND Flash芯片是相互独立的。
举例说明,假设待配置的应用包括应用1和应用2,且假设SSD中包括60个NANDFlash芯片,则SSD可以分别为应用1创建一个逻辑存储单元1,并为应用2创建一个逻辑存储单元2,同时,将这60个NAND Flash芯片划归给这两个逻辑存储单元,则可以将前1-30个NAND Flash芯片分配给逻辑存储单元1,并剩余的30个NAND Flash芯片分配给逻辑存储单元,则应用1与逻辑存储单元1之间具有映射关系,且逻辑存储单元1与前面30个NAND Flash芯片具有映射关系,这样,逻辑存储单元1对应的虚拟的存储空间由前30个NAND Flash芯片构成。相应的,应用2与逻辑存储单元2具有映射关系,且逻辑存储单元2与后面30个NANDFlash芯片具有映射关系。
可以理解的是,将SSD的多个NAND Flash芯片平均分配给该总数量个逻辑存储单元是指相对平均的分配,以使得任意两个逻辑存储单元包括的NAND Flash芯片的数量之差不大于1。如,假设NAND Flash芯片有50个,而逻辑存储单元的数量为4个时,则其中2个逻辑存储单元可以分配有13个NAND Flash芯片,而另外2个逻辑存储单元可以分配有12个NANDFlash芯片。
当然,在实际应用中,SSD确定出逻辑存储单元映射的至少一个NAND Flash芯片之后,还可以根据与逻辑存储单元具有映射关系的待配置的应用,直接建立待配置的应用、逻辑存储单元以及该至少一个NAND Flash芯片之间的映射关系。
需要说明的是,在该步骤S203中将SSD的多个NAND Flash芯片平均分配给该总数量个逻辑存储单元,以使得每个逻辑存储单元包括的NAND Flash芯片的数量相同仅仅是一种实现方式,在实际应用中,SSD还可以根据该逻辑存储单元的总数量,还可以随机将多个NAND Flash芯片分配给该总数量个逻辑存储单元,而不同逻辑存储单元所分配的NANDFlash芯片的数量可以不同。可以理解的是,为了使得不同应用可以向SSD中不同的NANDFlash芯片中存取数据,为每个应用创建一个逻辑存储单元,并为逻辑存储单元分配至少一个NAND Flash芯片仅仅是一种实现方式。在实际应用中,也可以直接为每个应用分配至少一个NAND Flash芯片,并直接存储应用与分配该应用的至少一个NAND Flash芯片的映射关系,从而使得应用只能向与该应用具有映射关系的该至少一个NAND Flash芯片。
相应的,在图2实施例中,可以不执行该步骤S203中创建逻辑存储单元的操作,而在该步骤S203中可以直接根据待配置的应用的总数量,将SSD的多个NAND Flash芯片平均分配给该总数量个待配置的应用,并待配置的应用与分配给该待配置的应用的至少一个NAND Flash芯片的映射关系,以使得每个待配置的应用映射有至少一个NAND Flash芯片,且一个NANA Flash芯片仅与一个应用具有映射关系。
在图2中是根据该至少两个待配置的应用的数量,将该多个NAND Flash芯片平均或者随机分配给该至少两个待配置的应用各自对应的逻辑存储单元。考虑到各个应用的存取需求会有所不同,如,不同应用对于存取数据所需的存储容量的需求不同,或者不同应用对于存储速度等存储性能的需求不同,为了能够兼顾各个应用的存取需求,为各个应用合理分配SSD中可操作的NAND Flash芯片,本申请实施例在将多个物理存储单元分配给不同的应用的逻辑存储单元时,还可以根据应用的存取需求,以及物理存储单元的存取参数(如存储容量、存取速度等),从该SSD中未被分配的物理存储单元中,选取出至少一个物理存储单元分配给与该应用映射关系的逻辑存储单元。
下面以应用的存取需求为存取性能需求为例进行介绍。
如,参见图3,其示出了本申请实施例中创建逻辑存储单元的又一种实现流程示意图,本实施例可以包括:
S301,SSD接收用户输入的至少两个待配置的应用的标识以及每个待配置的应用的存取性能需求。
应用的存取性能需求是指应用向SSD读或写数据所需满足的性能要求。该存取性能需求可以包括应用对于向SSD中存取数据所需的带宽以及读写速率等性能的要求。如,应用的性能需求可以为带宽为300MB/s。
其中,SSD的控制器接收该待配置的应用的标识以及性能需求的方式可以与前面图2实施例中的方式相似,在此不再赘述。
S302,SSD为每个待配置的应用创建一个虚拟的逻辑存储单元,并存储该待配置的应用与该逻辑存储单元的第一映射关系。
该步骤可以参见前面步骤S202的相关介绍,在此不再赘述。
S303,针对每个逻辑存储单元,SSD根据该逻辑存储单元对应的待配置的应用的存取性能需求,以及SSD中NAND Flash芯片所具有的性能参数,从SSD的多个NAND Flash芯片中,选取出至少一个未被分配的NAND Flash芯片分配给该逻辑存储单元,并存储该逻辑存储单元与分配给该逻辑存储单元的至少一个NAND Flash芯片的第二映射关系,以使得该至少一个NAND Flash芯片的总性能满足该逻辑存储单元对应的待配置的应用的性能需求。
其中,SSD中的每个NAND Flash芯片仅能与一个逻辑存储单元具有第二映射关系。
与图2实施例中将SSD的多个NAND Flash芯片平均分配给多个逻辑存储单元不同,在图3的实施例中,SSD的控制器是根据应用的性能需求,将SSD的多个NAND Flash芯片分配给各个应用的逻辑存储单元,以实现SSD性能的按需分配。其中,SSD根据该应用的性能需求,为该应用对应的逻辑存储单元分配的至少一个NAND Flash芯片所具有的性能应至少可以满足该应用的性能需求。
举例说明,假设待配置的应用包括应用A和应用B,并以带宽这一性能进行说明,同时,假设SSD中每个NAND Flash芯片的带宽为200MB/s,而应用A的读或写请求所需的带宽为600MB/s,而应用B的读或写请求所需的带宽为800MB/s,则在为应用A创建了逻辑存储单元A,并为B创建了逻辑存储单元B。为了满足应用A的带宽需求,SSD的控制器分配给逻辑存储单元A的NAND Flash芯片的数量至少为3个,分配给逻辑存储单元B的NAND Flash芯片的数量至少为4个,如,参见图4,SSD的控制器可以将SSD中NAND Flash芯片(简称为Flash)1,Flash2以及Flash3分配给应用A对应的逻辑存储单元A,并将Flash4、Flash5、Flash6以及Flash7分配给应用B对应的逻辑存储单元。
结合图4可知,应用A与逻辑存储单元A之间具有映射关系,且Flash1,Flash2以及Flash3映射到逻辑存储单元A,使得逻辑存储单元的存储容量为Flash1,Flash2以及Flash3的容量之和,且逻辑存储单元A所能提供的带宽为Flash1,Flash2以及Flash3的带宽之和。同时,应用B与逻辑存储单元B具有映射关系,且逻辑存储单元B与Flash4、Flash5、Flash6以及Flash7具有映射关系。
可以理解的是,图2和图3仅仅是SSD为待配置的应用的逻辑存储单元分配NANDFlash芯片的两种可能的实现方式中,在实际应用中,在SSD为待配置的应用创建了逻辑存储单元之后,SSD为逻辑存储单元分配NAND Flash芯片的方式还有其他可能,如,SSD还可以为每个逻辑存储单元分配预设数量个NAND Flash芯片,例如,假设预设数量为6个,SSD不关心待配置的应用的数量,对于每个应用的逻辑存储单元,SSD都是从SSD中选取未分配的5个NAND Flash芯片分配给该逻辑存储单元。在本申请实施例中,对于SSD为逻辑存储单元分配NAND Flash芯片的具体方式不加以限制。
需要说明的是,SSD为应用的逻辑存储单元分配的至少一个物理存储单元就是该应用向SSD中存取数据所能操作的存储空间。相应的,SSD为待配置的应用对应的逻辑存储单元分配的至少一个NAND Flash芯片,实际上就是SSD执行该待配置的应用的读或写请求所能操作的存储区域。由于为各个应用的逻辑存储单元分配的NAND Flash芯片均不相同,使得各个应用的逻辑存储单元相互独立,从而可以避免多个应用同时向一个NAND Flash芯片中存取数据而产生的干扰情况。而且,每个应用从SSD获取到的存储性能只有由应用的逻辑存储单元所对应的至少一个NAND Flash芯片的存储性能决定,从而避免了多个应用竞争SSD的存储性能的情况。
在图3实施例中,同样可以不执行步骤S302,而直接根据每个待配置的应用的存储性能需求,以及SSD中NAND Flash芯片所具有的性能参数,从SSD的多个NAND Flash芯片中,选取出至少一个未被分配的NAND Flash芯片分配给待配置的应用,并存储待配置的应用与分配给该待配置的应用的至少一个NAND Flash芯片的映射关系,以使得每个待配置的应用映射有至少一个NAND Flash芯片,且一个NANA Flash芯片仅与一个应用具有映射关系。在该种情况中,每个应用映射的NANA Flash芯片就是该应用向SSD中存取数据所能操作的NANA Flash芯片。
可以理解的是,以上是以根据应用的存取性能需求,对SSD为应用的逻辑存储单元分配物理存储单元的过程为例进行介绍,但是当存储需求为存储容量需求时,根据应用的存取容量需求(如,对于存储空间大小的需求),以及物理存储单元的容量参数(如,每个物理存储单元的存储空间的大小),为应用的逻辑存储单元分配至少一个物理存储单元的过程,与该图3实施例的过程相似,在此不再赘述。
可以理解的是,在图2和图3的实施例中,是以NAND Flash芯片作为应用的逻辑存储单元中的一个物理存储单元为例进行介绍,结合前面发明人的研究发现可知,只要不同应用所能操作的SSD中的die不同,就可以避免多个应用之间的竞争和干扰,相应的,只要不同应用的逻辑存储单元包括的SSD中的die不存在重合,就可以避免多个应用之间的竞争和干扰,因此,只要SSD中每个die仅映射到一个逻辑存储单元即可。而为了保证SSD中每个die仅映射到一个逻辑存储单元,则可以限定SSD中与逻辑存储单元存在映射的物理存储单元可以为由至少一个die组成存储单元。
为了便于理解,下面再分别以逻辑存储单元包含的每个物理存储单元为一个die,以及每个物理存储单元为包含多个die的片选EC这两种情况为例,对SSD为每个应用构建逻辑存储单元的过程进行介绍。
首先以每个逻辑存储单元包括的最小的物理存储单元为片选为例,如,参见图5,其示出了SSD创建逻辑存储单元的又一种实现流程示意图,本实施例可以包括:
S501,SSD接收用户输入的至少两个待配置的应用的标识以及每个待配置的应用的性能需求。
S502,SSD为每个待配置的应用创建一个虚拟的逻辑存储单元,并存储该待配置的应用与该逻辑存储单元的第一映射关系。
该步骤S501和S502可以分别参见前面实施例的相关介绍,在此不再赘述。
S503,针对每个逻辑存储单元,SSD根据该逻辑存储单元对应的待配置的应用的性能需求,以及SSD中每个片选所具有的性能标准,从SSD的多个片选中,选取出至少一个未被分配的片选分配给该逻辑存储单元,并存储该逻辑存储单元与分配给该逻辑存储单元的至少一个片选的第二映射关系,以使得该至少一个片选的总性能满足该逻辑存储单元对应的待配置的应用的性能需求。
其中,SSD中每个片选仅能与一个逻辑存储单元具有第二映射关系。在本实施例中是以SSD的片选作为分配给该逻辑存储单元的最小的物理存储单元,从而构建出每个逻辑存储单元与至少一个片选之间的第二映射关系。
由于SSD中的每个NAND Flash芯片是由多个片选构成,而每个片选包括一个或多个die,这样,如果SSD中的一个片选仅仅分配给一个逻辑存储单元,这样,不同逻辑存储单元也不会具有相同的die。
可以理解的是,SSD中每个片选所能提供的存储性能也是固定的,因此,根据应用的性能需求,可以从SSD中选取至少一个片选分配给该应用的逻辑存储单元,从而每个应用对应的逻辑存储单元可以满足该应用的性能需求,实现了按照应用的性能需求,为各个应用的逻辑存储单元合理分配片选。
举例说明,假设待配置的应用M,仍以带宽这一性能进行说明,同时,假设SSD中每个片选的带宽为20MB/s,而应用M的读或写请求所需的带宽为300MB/s,为了满足应用A的带宽需求,SSD的控制器可以选取至少15个片选分配给该应用M的逻辑存储单元。
需要说明的是,图5的实施例是以按照应用的性能需求为每个待配置的应用的逻辑存储单元分配片选为例进行说明,但是可以理解的是,当根据应用的容量需求等其他存取需求,为每个应用的逻辑存储单元分配片选的过程相似,具体可以参见前面的相关介绍,在此不再赘述。
同时,当将片选作为为逻辑存储单元分配的最小的物理存储单元时,也可以仅仅根据待配置的应用的数量,将SSD的多个片选,平均分配给待配置的多个应用。在该种情况下,在该步骤S501中可以仅仅接收待配置的应用的标识,而无需获取待配置的应用的性能,相应的,在该步骤S503中SSD可以根据创建出的逻辑存储单元的总数量(或者是待配置的应用的总数量),将SSD的多个片选平均分配给该总数量个逻辑存储单元,并存储逻辑存储单元与分配给该逻辑存储单元的至少一个片选的第二映射关系,以使得每个逻辑存储单元包括至少一个片选,且一个片选仅属于一个逻辑存储单元。对于按照待配置的应用的总数量,平均为各个应用的逻辑存储单元分配片选的情况,与为每个逻辑存储单元平均NAND Flash芯片相似,具体可以参照步骤S203的相关介绍,在此不再赘述。
下面以每个逻辑存储单元包括的最小的物理存储单元为SSD的一个die为例进行说明,如,参见图6,其示出了SSD创建逻辑存储单元的又一种实现流程示意图,本实施例可以包括:
S601,SSD接收用户输入的至少两个待配置的应用的标识以及每个待配置的应用的性能需求。
S602,SSD为每个待配置的应用创建一个虚拟的逻辑存储单元,并存储该待配置的应用与该逻辑存储单元的第一映射关系。
该步骤S601和S602可以分别参见前面实施例的相关介绍,在此不再赘述。
S603,针对每个逻辑存储单元,SSD根据该逻辑存储单元对应的待配置的应用的性能需求,以及SSD中每个die所具有的性能标准,从SSD的多个die中,选取出至少一个未被分配的die分配给该逻辑存储单元,并存储该逻辑存储单元与分配给该逻辑存储单元的至少一个die的第二映射关系,以使得该至少一个die的总性能满足该逻辑存储单元对应的待配置的应用的性能需求。
其中,SSD中每个die仅能与一个逻辑存储单元具有第二映射关系。在本实施例中是以SSD的die作为分配给该逻辑存储单元的最小的物理存储单元,从而构建出每个逻辑存储单元与至少一个片选之间的第二映射关系。
可以理解的是,SSD中每个die所能提供的存储性能也是固定的,因此,根据应用的性能需求,可以从SSD中选取至少一个die分配给该应用的逻辑存储单元,实现了按照应用的性能需求,从而可以为各个应用的逻辑存储单元合理分配die。
需要说明的是,图6的实施例是以按照应用的性能需求为每个待配置的应用的逻辑存储单元分配die为例进行说明,但是可以理解的是,当根据应用的容量需求等其他存取需求,为每个应用的逻辑存储单元分配片选的过程与图6实施例相似,具体可以参见前面的相关介绍,在此不再赘述。
当然,也可以仅仅根据待配置的应用的数量,将SSD的多个die,平均分配给多个待配置的应用。如,SSD可以根据创建出的逻辑存储单元的总数量(或者是待配置的应用的总数量),将SSD的多个片选平均分配给该总数量个逻辑存储单元,每个逻辑存储单元包括至少一个die,且一个片选片仅属于一个逻辑存储单元,该过程可以参照步骤S203的相关介绍,在此不再赘述。
需要说明的是,在图5和图6的实施例中,同样可以不构建逻辑存储单元,而直接根据每个待配置的应用的总数量或者存取需求(如性能需求或者容量需求),直接确定需要分配给该待配置的应用的至少一个片选或者die,并存储待配置的应用与分配给该待配置的应用的至少一个片选或者die的映射关系,其中,每个片选或者die仅与一个应用具有映射关系。
需要说明的是,以上是以每个物理存储单元组成SSD的存储区域的各个物理介质为例进行说明,可以理解的是,每个物理存储单元也可以是由SSD中的多个物理介质构成,如,每个物理存储单元可以为两个die,或者三个片选等等,在该种情况下,构建逻辑存储单元的过程与前面几个实施例的过程相似,在此不再赘述。
另外,以上实施例是以一个SSD中构建逻辑存储单元的过程为例进行介绍,当计算机设备中包括多个SSD时,每个SSD中构建逻辑存储单元的过程均与前面几个实施例相同,在此不再重复介绍。
在以上内容的基础上,对本申请实施例中SSD在接收到应用的读请求或写请求的处理过程进行介绍。参见图7,其示出了本申请一种数据处理方法一个实施例的流程示意图,本实施例的方法可以包括:
S701,SSD接收应用发送的数据处理请求。
该数据处理请求用于请求数据读或写。如,该数据处理请求可以为读请求或者写请求。其中,读命令用于请求从SSD的存储空间中读取数据;写命令用于请求向SSD的存储空间中写入数据。
其中,应用可以同时向SSD下发多个数据处理命令,且该多个数据处理命令中可以同时包括读命令和写命令。但是可以理解的是,对于SSD同时接收到多个数据处理命令的情况下,SSD的控制器处理每个数据处理命令的过程都是一样的,因此,本实施例以SSD处理一个数据处理请求的过程进行介绍。
S702,SSD根据预先建立的应用与逻辑存储单元的第一映射关系,确定与该应用具有映射关系的目标逻辑存储单元。
其中,为了便于区分,将与发送该数据处理请求的应用具有映射关系的逻辑存储单元称为目标逻辑存储单元。
可以理解的是,由于SSD预先为每个应用分别构建了不同的逻辑存储单元,而逻辑存储单元用于表征应用具备读或写操作权限的至少一个物理存储单元(如,NAND Flash芯片、片选或者die)所组成的存储空间,因此,为了能够该应用具有操作权限的存储空间,需要根据该第一映射关系,确定出该应用映射的目标逻辑存储单元。
S703,SSD根据预先建立的逻辑存储单元与物理存储单元的第二映射关系,从SSD的多个物理存储单元中,确定与该目标逻辑存储单元具有映射关系的至少一个目标物理存储单元。
其中,该物理存储单元可以为NAND Flash芯片、片选或者die。当然,该物理存储芯片也可以为至少两个NAND Flash芯片、片选或者die的组合。
SSD的控制器依据预先存储的该第二映射关系,可以得到该目标逻辑存储单元所指向的该至少一个物理存储单元。为了便于区分,将与目标逻辑存储单元具有映射关系的物理存储单元称为目标物理存储单元。
其中,该至少一个目标NAND Flash芯片所构成的存储区域就是该应用具备读或写权限的存储区域。
可以理解的是,在SSD直接为应用分配至少一个物理存储单元,并存储应用与物理存储单元的映射关系的情况下,在SSD接收到该应用的数据处理请求之后,可以不执行该步骤S702,而在该步骤S703中可以是根据应用与该物理存储单元的映射关系,确定出与该应用具有映射关系的至少一个目标物理存储单元。
S704,SSD根据该数据处理请求,向该至少一个目标物理存储单元中执行数据处理请求对应的数据处理操作。
其中,该应用的逻辑存储单元映射到的该至少一个目标物理存储单元就是该应用向SSD中存取数据所能操作的存储空间,因此,SSD的控制器可以依据该数据处理请求,向该至少一个目标物理存储单元中执行数据读或写操作。如,SSD依据该数据处理请求所生成的读命令、写命令以及擦除命令都下发到该至少一个目标物理存储单元中。
可见,由于SSD为每个应用构建了一个逻辑存储单元,并为每个逻辑存储单元分配了至少一个物理存储单元,这样,在SSD接收到应用的数据处理请求之后,SSD可以依据该数据处理请求,仅在该应用的逻辑存储单元映射到的该至少一个物理存储单元内执行数据处理操作,从而可以避免多个应用竞争SSD的存储资源;而且,即使多个应用同时向SSD中存取数据,由于不同应用的逻辑存储单元所映射的物理存储单元不同,也可以避免该多个应用之间的相关干扰,进而可以减少由于多个应用之间的竞争和干扰,而导致部分应用的存取数据效率过低,以及应用存取数据的性能不稳定的情况。
可以理解的是,数据处理请求可以为写请求或者读请求,而SSD针对读请求以及写请求的具体处理可能会有所不同。
如,当该数据处理请求为读请求时,该读请求会携带有待读取的数据的数据标识,该数据标识可以用于标识待读取的数据,或者标识待读取的数据的存储地址。相应的,该SSD会依据读请求携带的该数据标识,确定该至少一个目标物理存储单元中存储该待读取的数据的存储地址,并依据该存储地址,从该至少一个目标物理存储单元中读取出该读请求所请求读取的数据。
又如,当该数据处理请求为写请求时,SSD可以从该至少一个目标物理存储单元中,确定该写请求对应的写操作的起始地址,并依据该起始地址,向该至少一个目标物理存储单元中写入该写请求所请求写入的数据。其中,该起始地址可以为该目标物理存储单元中待写入数据的目标块,以及目标块的多个页中当前可以写入数据的起始页。当然,在确定待写入数据的目标块以及目标块中的起始页之后,SSD仍会判断是否需要对该目标块进行擦除操作,如果需要擦除该目标块中的数据,则SSD先对该目标块执行擦除操作,然后再从该目标块的该起始页开始写入该写请求所请求写入的数据,直至该写请求所请求写入的数据全部被写入到该目标物理存储单元中。
相应的,在SSD将数据写入该至少一个目标物理存储单元之后,SSD会存储写入的数据的存储地址,以便后续根据该存储地址读取该数据。
为了便于理解,以将SSD中的NAND Flash芯片作为最小的物理存储单元,将SSD中的多个NAND Flash芯片分配给多个应用的逻辑存储单元为例进行介绍。
如,参见图8,其示出了本申请一种数据处理方法又一种流程示意图,本实施例的方法可以包括:
S801,SSD接收数据处理请求,并确定发送该数据处理请求的目标应用。
如,该数据处理请求中可以携带发送该数据处理请求的应用的标识,SSD可以根据该应用的标识区分各个应用。
与图7实施例相似,本实施例也是以SSD对一个数据处理请求为例进行介绍,为了便于区分,本申请实施例中发送给数据处理请求的应用称为目标应用。
S802,SSD根据预先建立的应用与逻辑存储单元的第一映射关系,确定与该应用具有映射关系的目标逻辑存储单元。
其中,为了便于区分,将与发送该数据处理请求的应用具有映射关系的逻辑存储单元称为目标逻辑存储单元。
以上步骤S801和S802可以参见前面实施例的相关介绍,在此不再赘述。
S803,SSD根据预先建立的逻辑存储单元与NAND flash芯片的第二映射关系,从SSD的多个NAND flash芯片中,确定与该目标逻辑存储单元具有映射关系的至少一个目标NAND flash芯片。
在本实施例中,以每个物理存储单元为一个NAND flash芯片为例,因此,与该应用的目标逻辑存储单元具有映射关系的为至少一个NAND flash芯片。为了便于区分,将与该目标逻辑存储单元具有映射关系的NAND flash芯片称为目标NAND flash芯片。
S804,SSD根据该数据处理请求,向该至少一个目标NAND flash芯片中执行数据处理请求对应的数据处理操作。
如,该数据处理请求为读请求中,根据该读请求携带的待读取的数据的数据标识,从该至少一个目标NAND flash芯片中确定出待读取的数据的存储地址,并按照该存储地址从该至少一个目标NAND flash芯片定位待读取的数据,并读取出相应的数据。
又如,该数据处理请求为写请求时,也需要先从该至少一个目标NAND flash芯片中,确定出SSD写入该写请求所请求写入的目标数据的起始地址,并依据该起始地址向该至少一个目标NAND flash芯片中写入数据。例如,可以根据该起始地址,从该至少一个目标NAND flash芯片中确定起始地址所在的目标NAND flash芯片,并从该目标NAND flash芯片选取待写入数据的块,然后检测是否需要擦除该块中的数据,如果需要则需要先擦除该块中的数据之后,再向该块中写入数据;如果不需要擦除该块中的数据,则可以直接向该块中的空白页中写入该写请求所请求写入的数据。
为了便于理解,本申请方案的有益效果,下面结合图4进行说明。由图4可知,SSD为应用A构建的逻辑存储单元A与SSD中的flash1、flash2和flash3这3个flash芯片具有映射关系,使得分配给应用A的flash芯片有三个。同时,SSD为应用B构建的逻辑存储单元B与SSD中的flash4、flash5、flash5和flash7这4个flash芯片具有映射关系,使得分配给应用B的flash芯片有4个。
在图4中,假设SSD不需要针对该应用A的写请求生成擦除命令,且SSD需要针对应用B的两个写请求中的一个写请求生成擦除命令为例进行说明。
在以上映射关系的基础上,该应用A向SSD发送读请求之后,SSD的控制器会先确定为该应用A构建的逻辑存储单元A,以及SSD中与该逻辑存储单元A具有映射关系的这3个flash芯片。然后,SSD会根据该读请求生成读命令,并从该逻辑存储单元A映射的flash1、flash2和flash3中确定出执行该读命令的目标flash芯片,并将该读命令下发给该目标flash芯片。
同时,在应用A向SSD下发了写请求之后,SSD会先确定该应用A的该逻辑存储单元A对应的flash1、flash2和flash3,且在生成该写请求对应的写命令之后,该SSD的控制器只能向该逻辑存储单元A对应的flash1、flash2和flash3下发写命令,而不会向不属于该逻辑存储单元A的其他flash芯片下发写命令。
相应的,在应用B向SSD下发了读请求之后,SSD根据该读请求生成的读命令也只会下发了该应用B的逻辑存储单元B所对应的4个flash芯片中。而且,应用B向SSD下发了写请求之后,SSD根据该写请求生成的擦除命令和写命令(对于仅生成一个写命令也同样适用)也只能下发给该逻辑存储单元B对应的flash4、flash5、flash5和flash7。这样,由于SSD根据应用B的写请求所生成擦除命令并不会分配给应用A的flash芯片中,从而不会由于flash芯片执行应用B对应的擦除命令,而使得SSD为应用A生成写命令被堵塞。
可见,对于应用A的读或写请求,SSD仅仅在应用A的逻辑存储单元A对应的3个flash芯片内执行相应的读或写操作;而对于应用B的读或写请求,SSD仅仅在应用B的逻辑存储单元B对应的4个flash芯片内执行相应的读或写操作,这样,应用A和应用B从SSD获取到的存储性能仅仅与这两个应用各自的逻辑存储单元所包含的flash芯片有关,实现了这两个应用的性能隔离;而且,SSD在执行这两个应用的读或写请求所对应的读或写操作时,所操作的flash芯片也会有所不同,从而可以避免这两个应用之间的相互干扰。
需要说明的是,图8是以物理存储单元为flash芯片为例进行说明,但是可以理解的是,当物理存储单元为片选或者die时,SSD依据数据处理请求执行数据处理的过程相似,在此不再赘述。
可以理解的是,以上实施例都是以SSD中的flash芯片为NAND Flash芯片为例进行介绍,但是由于NOR Flash芯片与NAND Flash芯片的构成相似,因此,对于SSD中的flash芯片采用NOR Flash芯片的情况,本申请实施例的方案也同样适用。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可能全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介绍传输。例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘(Solid State Disk(SSD))等。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。
Claims (15)
1.一种数据处理方法,其特征在于,应用于计算机设备中的固态硬盘SSD,所述SSD中多个物理存储单元被分配给多个应用,每个应用分配有至少一个物理存储单元,且每个物理存储单元仅被分配给一个应用,所述物理存储单元包括所述SSD中的至少一个晶圆体,所述方法包括:
所述SSD接收数据处理请求;
所述SSD确定发送所述数据处理请求的目标应用,所述目标应用属于所述多个应用;
所述SSD从所述多个物理存储单元中,确定出分配给所述目标应用的至少一个目标物理存储单元;
所述SSD依据所述数据处理请求,向所述至少一个目标物理存储单元中执行数据处理操作。
2.根据权利要求1所述的数据处理方法,其特征在于,所述SSD的多个物理存储单元被分配给所述SSD为所述多个应用创建的多个虚拟的逻辑存储单元,且所述SSD中存储有所述逻辑存储单元与分配给所述逻辑存储单元的至少一个物理存储单元的映射关系;其中,每个应用对应一个逻辑存储单元,且,一个物理存储单元仅被分配给一个应用的逻辑存储存储单元;
所述从所述多个物理存储单元中,确定出分配给所述目标应用的至少一个目标物理存储单元,包括:
从所述SSD创建的多个逻辑存储单元中,确定所述SSD为所述目标应用创建的目标逻辑存储单元;
根据逻辑存储单元与物理存储单元的映射关系,确定所述SSD为所述目标逻辑存储单元分配的至少一个目标物理存储单元。
3.根据权利要求2所述的数据处理方法,其特征在于,所述SSD通过如下方式,将多个物理存储单元被分配给所述SSD为所述多个应用创建的多个虚拟的逻辑存储单元:
为所述多个应用中的每个应用分别创建一个虚拟的逻辑存储单元,并存储所述应用与所述SSD为所述应用创建的逻辑存储单元的映射关系;
根据所述应用的存取需求,以及所述物理存储单元的存储参数,从所述SSD的多个物理存储单元中,选取出至少一个未被分配的物理存储单元分配给与所述应用具有映射关系的逻辑存储单元,并存储所述逻辑存储单元与分配给所述逻辑存储单元的至少一个物理存储单元的映射关系。
4.根据权利要求3所述的数据处理方法,其特征在于,所述根据所述应用的存取需求,以及所述物理存储单元的存储参数,从所述SSD的多个物理存储单元中,选取出至少一个未被分配的物理存储单元分配给与所述应用具有映射关系的逻辑存储单元,包括:
根据所述应用的存取性能需求,以及所述物理存储单元的性能参数,从所述SSD的多个物理存储单元中,选取出至少一个未被分配的物理存储单元分配给与所述应用具有映射关系的逻辑存储单元。
5.根据权利要求3所述的数据处理方法,其特征在于,所述根据所述应用的存取需求,以及所述物理存储单元的存储参数,从所述SSD的多个物理存储单元中,选取出至少一个未被分配的物理存储单元分配给与所述应用具有映射关系的逻辑存储单元,包括:
根据所述应用的存取容量需求,以及所述物理存储单元的容量参数,从所述SSD的多个物理存储单元中,选取出至少一个未被分配的物理存储单元分配给与所述应用具有映射关系的逻辑存储单元。
6.根据权利要求1所述的数据处理方法,其特征在于,所述数据处理请求为写请求或者读请求,所述读请求携带有待读取的数据的数据标识;
所述依据所述数据处理请求,向所述至少一个目标物理存储单元中执行数据处理操作,包括:
当所述数据处理请求为写请求时,从所述至少一个目标物理存储单元中,确定所述写请求对应的写操作的起始地址,并依据所述起始地址,向所述至少一个目标物理存储单元中写入所述写请求所请求写入的数据;
当所述数据处理请求为读请求时,依据所述读请求携带的所述数据标识,确定所述至少一个目标物理存储单元中存储所述待读取的数据的存储地址,并依据所述存储地址,从所述至少一个目标物理存储单元中读取出所述读请求所请求读取的数据。
7.根据权利要求1所述的数据处理方法,其特征在于,所述物理存储单元为所述SSD的闪存芯片、所述SSD的闪存芯片中的片选或者所述SSD的片选中的晶圆体。
8.一种固态硬盘,其特征在于,
固态硬盘SSD的多个物理存储单元被分配给多个应用,每个应用分配有至少一个物理存储单元,且每个物理存储单元仅被分配给一个应用,所述物理存储单元包括所述SSD中的至少一个晶圆体;
所述SSD,用于接收数据处理请求;确定发送所述数据处理请求的目标应用,所述目标应用属于所述多个应用;从所述多个物理存储单元中,确定出分配给所述目标应用的至少一个目标物理存储单元;依据所述数据处理请求,向所述至少一个目标物理存储单元中执行数据处理操作。
9.根据权利要求8所述的固态硬盘,其特征在于,所述SSD的多个物理存储单元被分配给所述SSD为所述多个应用创建的多个虚拟的逻辑存储单元,且所述SSD存储有所述逻辑存储单元与分配给所述逻辑存储单元的至少一个物理存储单元的映射关系;其中,每个应用对应一个逻辑存储单元,且,一个物理存储单元仅被分配给一个应用的逻辑存储存储单元;
所述SSD在从所述多个物理存储单元中,确定出分配给所述目标应用的至少一个目标物理存储单元时,具体用于,从所述SSD创建的多个逻辑存储单元中,确定所述SSD为所述目标应用创建的目标逻辑存储单元;根据逻辑存储单元与物理存储单元的映射关系,确定所述SSD为所述目标逻辑存储单元分配的至少一个目标物理存储单元。
10.根据权利要求9所述的固态硬盘,其特征在于,所述SSD还用于,通过如下方式,将多个物理存储单元被分配给所述SSD为所述多个应用创建的多个虚拟的逻辑存储单元:
为所述多个应用中的每个应用分别创建一个虚拟的逻辑存储单元,并存储所述应用与所述SSD为所述应用创建的逻辑存储单元的映射关系;
根据所述应用的存取需求,以及所述物理存储单元的存储参数,从所述SSD的多个物理存储单元中,选取出至少一个未被分配的物理存储单元分配给与所述应用具有映射关系的逻辑存储单元,并存储所述逻辑存储单元与分配给所述逻辑存储单元的至少一个物理存储单元的映射关系。
11.根据权利要求10所述的固态硬盘,其特征在于,所述SSD在根据所述应用的存取需求,以及所述物理存储单元的存储参数,从所述SSD的多个物理存储单元中,选取出至少一个未被分配的物理存储单元分配给与所述应用具有映射关系的逻辑存储单元时,具体用于,根据所述应用的存取性能需求,以及所述物理存储单元的性能参数,从所述SSD的多个物理存储单元中,选取出至少一个未被分配的物理存储单元分配给与所述应用具有映射关系的逻辑存储单元。
12.根据权利要求3所述的固态硬盘,其特征在于,所述SSD在根据所述应用的存取需求,以及所述物理存储单元的存储参数,从所述SSD的多个物理存储单元中,选取出至少一个未被分配的物理存储单元分配给与所述应用具有映射关系的逻辑存储单元时,具体用于,根据所述应用的存取容量需求,以及所述物理存储单元的容量参数,从所述SSD的多个物理存储单元中,选取出至少一个未被分配的物理存储单元分配给与所述应用具有映射关系的逻辑存储单元。
13.根据权利要求8所述的固态硬盘,其特征在于,所述SSD接收到的数据处理请求为写请求或者读请求,所述读请求携带有待读取的数据的数据标识;
所述SSD在依据所述数据处理请求,向所述至少一个目标物理存储单元中执行数据处理操作时,具体用于:
当所述数据处理请求为写请求时,从所述至少一个目标物理存储单元中,确定所述写请求对应的写操作的起始地址,并依据所述起始地址,向所述至少一个目标物理存储单元中写入所述写请求所请求写入的数据;
当所述数据处理请求为读请求时,依据所述读请求携带的所述数据标识,确定所述至少一个目标物理存储单元中存储所述待读取的数据的存储地址,并依据所述存储地址,从所述至少一个目标物理存储单元中读取出所述读请求所请求读取的数据。
14.根据权利要求8所述的固态硬盘,其特征在于,所述物理存储单元为所述SSD的闪存芯片、所述SSD的闪存芯片中的片选或者所述片选中的晶圆体。
15.一种计算机设备,其特征在于,包括:处理器,以及权利要求8至14任一项所述的固态硬盘SSD;
其中,所述处理器,用于运行多个应用,并将所述应用发送的数据处理请求下发给所述SSD。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810005236.2A CN109992536A (zh) | 2018-01-03 | 2018-01-03 | 数据处理方法、固态硬盘以及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810005236.2A CN109992536A (zh) | 2018-01-03 | 2018-01-03 | 数据处理方法、固态硬盘以及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109992536A true CN109992536A (zh) | 2019-07-09 |
Family
ID=67128892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810005236.2A Pending CN109992536A (zh) | 2018-01-03 | 2018-01-03 | 数据处理方法、固态硬盘以及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109992536A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111581127A (zh) * | 2020-04-23 | 2020-08-25 | 深圳佰维存储科技股份有限公司 | 映射关系处理方法及装置 |
WO2021168626A1 (zh) * | 2020-02-24 | 2021-09-02 | 华为技术有限公司 | 一种存储装置、带宽调整方法及电子设备 |
CN113741787A (zh) * | 2020-05-27 | 2021-12-03 | 浙江宇视科技有限公司 | 一种数据存储方法、装置、设备、介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101997918A (zh) * | 2010-11-11 | 2011-03-30 | 清华大学 | 异构san环境中的海量存储资源按需分配的实现方法 |
CN103036914A (zh) * | 2011-09-29 | 2013-04-10 | 北京飞杰信息技术有限公司 | 一种避免高并发下数据读写瓶颈的方法 |
CN103377149A (zh) * | 2012-04-16 | 2013-10-30 | 群联电子股份有限公司 | 保护数据的方法、存储器控制器与存储器储存装置 |
KR20130135618A (ko) * | 2012-06-01 | 2013-12-11 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법 |
CN103729300A (zh) * | 2013-12-25 | 2014-04-16 | 华为技术有限公司 | 非易失内存的管理方法和相关装置 |
CN105786732A (zh) * | 2014-12-26 | 2016-07-20 | 华为技术有限公司 | 数据访问方法及装置 |
-
2018
- 2018-01-03 CN CN201810005236.2A patent/CN109992536A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101997918A (zh) * | 2010-11-11 | 2011-03-30 | 清华大学 | 异构san环境中的海量存储资源按需分配的实现方法 |
CN103036914A (zh) * | 2011-09-29 | 2013-04-10 | 北京飞杰信息技术有限公司 | 一种避免高并发下数据读写瓶颈的方法 |
CN103377149A (zh) * | 2012-04-16 | 2013-10-30 | 群联电子股份有限公司 | 保护数据的方法、存储器控制器与存储器储存装置 |
KR20130135618A (ko) * | 2012-06-01 | 2013-12-11 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법 |
CN103729300A (zh) * | 2013-12-25 | 2014-04-16 | 华为技术有限公司 | 非易失内存的管理方法和相关装置 |
CN105786732A (zh) * | 2014-12-26 | 2016-07-20 | 华为技术有限公司 | 数据访问方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021168626A1 (zh) * | 2020-02-24 | 2021-09-02 | 华为技术有限公司 | 一种存储装置、带宽调整方法及电子设备 |
CN111581127A (zh) * | 2020-04-23 | 2020-08-25 | 深圳佰维存储科技股份有限公司 | 映射关系处理方法及装置 |
CN111581127B (zh) * | 2020-04-23 | 2023-08-29 | 深圳佰维存储科技股份有限公司 | 映射关系处理方法及装置 |
CN113741787A (zh) * | 2020-05-27 | 2021-12-03 | 浙江宇视科技有限公司 | 一种数据存储方法、装置、设备、介质 |
CN113741787B (zh) * | 2020-05-27 | 2024-04-05 | 浙江宇视科技有限公司 | 一种数据存储方法、装置、设备、介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11698876B2 (en) | Quality of service control of logical devices for a memory sub-system | |
EP3132355B1 (en) | Fine-grained bandwidth provisioning in a memory controller | |
US7231504B2 (en) | Dynamic memory management of unallocated memory in a logical partitioned data processing system | |
US8250390B2 (en) | Power estimating method and computer system | |
US8943294B2 (en) | Software architecture for service of collective memory and method for providing service of collective memory using the same | |
US10235047B2 (en) | Memory management method, apparatus, and system | |
US20080229040A1 (en) | Network storage system, management method therefor, and control program product therefor | |
JP6783645B2 (ja) | メモリシステムおよび制御方法 | |
CN109992536A (zh) | 数据处理方法、固态硬盘以及计算机设备 | |
CN110389710A (zh) | 分配存储资源的方法和装置 | |
US7421543B2 (en) | Network device, fiber channel switch, method for shared memory access control, and computer product | |
CN112988387A (zh) | 一种内存页管理方法及计算设备 | |
CN117687569A (zh) | 磁盘性能优化方法、系统、电子设备及存储介质 | |
CN108139983A (zh) | 用于在多级系统存储器中固定存储器页面的方法和设备 | |
US20190332289A1 (en) | Devices, systems, and methods for reconfiguring storage devices with applications | |
CN106155910B (zh) | 一种实现内存访问的方法、装置和系统 | |
CN110308865A (zh) | 存储器系统、计算系统及其操作方法 | |
JP2016076108A (ja) | 情報処理装置、メモリ制御装置及び情報処理装置の制御方法 | |
CN109783002A (zh) | 数据读写方法、管理设备、客户端和存储系统 | |
CN109831391A (zh) | 分布式存储系统中流控的方法、存储设备和系统 | |
CN112463027B (zh) | 一种i/o处理方法、系统、设备及计算机可读存储介质 | |
CN108153489B (zh) | 一种nand闪存控制器的虚拟数据缓存管理系统与方法 | |
Lee et al. | Highly VM-scalable SSD in cloud storage systems | |
CN116996385A (zh) | 资源共享方法及相关装置 | |
CN116069451B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190709 |
|
RJ01 | Rejection of invention patent application after publication |