存储控制器、存储装置和存储装置的操作方法与流程

文档序号:29703996发布日期:2022-04-16 15:13阅读:177来源:国知局
存储控制器、存储装置和存储装置的操作方法与流程
存储控制器、存储装置和存储装置的操作方法
1.本专利申请要求于2020年10月14日在韩国知识产权局提交的第10-2020-0132838号韩国专利申请的优先权,所述韩国专利申请的公开通过引用全部包含于此。
技术领域
2.在此描述的本公开的实施例涉及半导体存储器,更具体地,涉及被配置为支持多流的存储控制器、存储装置及其操作方法。


背景技术:

3.半导体存储器是用于数字数据存储的数字电子半导体器件。半导体存储器可包括易失性存储器或非易失性存储器。在易失性存储器中,当电源关闭时,存储的数据丢失。易失性存储器的示例包括静态随机存取存储器(sram)和动态随机存取存储器(dram)。在非易失性存储器中,即使电源关闭,存储的数据也被保持。非易失性存储器的示例包括闪存、相变ram(pram)、磁性ram(mram)、电阻式ram(rram)和铁电ram(fram)。
4.包括闪存的固态驱动器(ssd)被广泛用作计算系统的高容量存储介质。ssd可根据应用为主机生成不同类型的数据。然而,ssd生成数据的操作未针对不同类型的数据被优化,并且当这些类型中的一些类型的数据被生成时,ssd的使用期限可被减少。


技术实现要素:

5.本公开的至少一个实施例提供了一种通过将来自主机的数据分类为流的单元而具有提高的性能和提高的寿命的存储控制器、存储装置以及存储装置的操作方法。
6.根据公开的示例性实施例,一种包括非易失性存储器装置的存储装置的操作方法包括:从外部主机接收第一写入请求;将第一写入请求添加到第一片段;当第一片段的大小大于等于(》=)参考值时,基于第一片段与多个预分配的流中的每个之间的余弦相似度,在所述多个预分配的流之中选择至少“n”个(例如,至少两个)流;将输入信息应用于机器学习模型,以从所述至少“n”个流之中检测与第一片段相关联的第一顺序流,将第一顺序流的流标识符分配给第一片段;和基于分配的第一顺序流的流标识符,将包括在第一片段中的写入数据存储在非易失性存储器装置中。输入信息包括所述“n”个流中的至少一个和第一片段的统计信息。
7.根据公开的示例性实施例,提供了一种被配置为控制非易失性存储器装置的存储控制器。所述存储控制器包括:主机接口电路,从外部主机接收第一写入请求;流管理器,将第一写入请求添加到第一片段;闪存转换层;处理器和存储器接口电路。当第一片段大于等于(》=)参考值时,流管理器将第一片段和多个预分配的流中的至少一个的统计信息应用于机器学习模型,以将第一顺序流分配给第一片段。闪存转换层基于第一顺序流将第一写入请求的逻辑块地址转换为物理块地址。处理器驱动闪存转换层。存储器接口电路将物理块地址、第一写入请求的写入数据和写入命令提供给非易失性存储器装置。
8.根据公开的实施例,一种存储装置包括多个非易失性存储器和存储控制器,存储
控制器通过多个通道与所述多个非易失性存储器进行通信。存储控制器被配置为:从外部主机接收多个写入请求;对因此而接收到的接收的所述多个写入请求的统计信息和多个预分配的流中的至少一个的统计信息执行机器学习;基于机器学习的结果将第一顺序流分配给接收的所述多个写入请求;和基于分配的第一顺序流,将与所述多个写入请求对应的多个写入数据存储在所述多个非易失性存储器之一。
9.根据公开的实施例,一种存储装置包括存储控制器和非易失性存储器装置。非易失性存储器装置包括多个第一区域和多个第二区域,其中,所述多个第一区域中的每个与多个流标识符中的一个相关联。存储控制器被配置为确定写入请求的地址是否与所述多个流标识符中的给定的流标识符相关联。当存储控制器确定所述地址与给定的流标识符相关联时,存储控制器将写入请求的写入数据编程到与给定的流标识符相关联的所述多个第一区域中的一个。当存储控制器确定所述地址不与所述多个流标识符中的任何流标识符相关联时,存储控制器创建新的流标识符,使所述多个第二区域之中的给定的区域与新的流标识符相关联,并且将写入数据编程到给定的区域。
附图说明
10.通过参照附图详细描述本公开的示例性实施例,本公开将变得清楚。
11.图1是示出根据本公开的示例性实施例的存储系统的框图。
12.图2是示出图1的存储系统的软件层的示图。
13.图3是示出图1的非易失性存储器装置的框图。
14.图4是用于描述在存储装置处管理的流的示图。
15.图5是示出图1的流管理器的示图。
16.图6是示出图5的流属性表的示图。
17.图7是示出根据公开的示例性实施例的图1的存储控制器的流分配操作的流程图。
18.图8是用于描述图7的操作s120的示图。
19.图9是用于描述图7的操作s140的示图。
20.图10是示出根据公开的示例性实施例的图7的操作s180的流程图。
21.图11是示出图5的流分类模块的框图。
22.图12是示出图11的机器学习模型的示图。
23.图13是示出应用了根据本公开的示例性实施例的存储装置的存储系统的框图。
24.图14是用于描述根据本公开的存储装置的提高的性能的示图。
25.图15是示出根据本公开的示例性实施例的存储系统的框图。
26.图16是示出应用了根据本公开的示例性实施例的存储装置的数据中心的框图。
具体实施方式
27.下面,以使本领域普通技术人员可实现本公开的程度详细并清楚地描述了本公开的实施例。
28.说明书中通过使用术语“部件”、“单元”、“模块”、“引擎”、“管理器”等描述的组件以及附图中示出的功能块可用软件、硬件或它们的组合实现。例如,软件可以是机器码、固件、嵌入码和应用软件。例如,硬件可包括电路、电子电路、处理器、计算机、集成电路、集成
电路核、压力传感器、惯性传感器、微机电系统(mems)、无源元件或它们的组合。
29.图1是示出根据本公开的示例性实施例的存储系统的框图。参照图1,存储系统10包括主机11(例如,主机装置)和存储装置100。在一个实施例中,存储系统10可以是被配置为处理各种信息并存储处理的信息的多个信息处理装置(诸如,个人计算机(pc)、膝上型计算机、服务器、工作站、智能电话、平板pc、数字相机或黑匣子)之一。
30.主机11可控制存储装置100的整体操作。例如,主机11可向存储装置100发送用于将数据“data”存储在存储装置100中或者读取存储在存储装置100中的数据“data”的请求(rq)。在一个实施例中,主机11可以是被配置为控制存储系统10的中央处理器(cpu)或处理器核(诸如,应用处理器(ap)),或者可以是通过网络连接的计算节点。
31.在一个实施例中,主机11包括主机控制器12(例如,控制电路)和主机存储器13。主机控制器12可以是被配置为控制主机11的整体操作或控制主机11外部的存储装置100的装置。主机存储器13可以是在主机11中使用的缓冲存储器、高速缓冲存储器或工作存储器。
32.存储装置100可在主机11的控制下进行操作。在一个实施例中,存储装置100包括存储控制器110(例如,控制电路)和非易失性存储器装置120。在主机11的控制下,存储控制器110可将数据存储在非易失性存储器装置120中,或者可读取存储在非易失性存储器装置120中的数据。在一个实施例中,存储控制器110可执行用于高效地使用非易失性存储器装置120的各种管理操作。
33.在一个实施例中,存储控制器110包括中央处理器(cpu)111、闪存转换层(ftl)112、纠错码(ecc)(引擎)113、高级加密标准(aes)(引擎)114、缓冲存储器115、主机接口电路116、存储器接口电路117以及流管理器118。
34.cpu 111可执行存储控制器110的整体操作。ftl112可执行用于高效地使用非易失性存储器件120的各种操作。例如,主机11可通过使用逻辑地址来管理存储装置100的存储空间。ftl112可被配置为管理来自主机11的逻辑地址与存储装置100的物理地址之间的地址映射。例如,存储控制器110可使用ftl 112将来自主机11的逻辑地址转换为存储装置100的物理地址。ftl 112可执行损耗均衡操作,以防止非易失性存储器装置120的存储器块中的特定存储器块的过度劣化。非易失性存储器装置120的寿命或使用期限可通过ftl 112的损耗均衡操作被提高。ftl 112可对非易失性存储器装置120执行垃圾收集操作,以确保一个或多个空闲的存储器块。例如,垃圾收集操作可将有效数据从一组存储器块复制到单个存储器块,并且对该组存储器块执行擦除操作。
35.在一个实施例中,ftl 112可以以硬件或软件的形式实现。在ftl 112以软件的形式实现的情况下,与ftl 112相关的程序代码或信息可被存储在缓冲存储器115中,并且可由cpu 111执行。在ftl 112以硬件的形式实现的情况下,被配置为执行ftl 112的操作的硬件加速器可被独立于cpu 111被提供。
36.ecc引擎113可对从非易失性存储器装置120读取的数据执行错误检测和纠错。例如,ecc引擎113可针对将被写入非易失性存储器装置120中的数据生成纠错码(或奇偶校验位)。因此生成的纠错码(或奇偶校验位)可与将被写入的数据一起被存储在非易失性存储器装置120中。之后,当写入非易失性存储器装置120中的数据被读取时,ecc引擎113可基于读取的数据和对应的纠错码(或对应的奇偶校验位)来检测和校正读取的数据的错误。
37.aes引擎114可对从主机11或非易失性存储器装置120接收的数据执行加密操作或
解密操作。在一个实施例中,加密操作或解密操作可基于对称密钥算法执行。
38.缓冲存储器115可以是被配置为临时存储输入到存储控制器110的数据的写入缓冲器或读取缓冲器。可选地,缓冲存储器115可被配置为存储存储控制器110操作所需的各种信息。例如,缓冲存储器115可存储由ftl 112管理的映射表。可选地,缓冲存储器115可存储与ftl 112相关的软件、固件或信息。
39.在一个实施例中,缓冲存储器115是sram,但是本公开不限于此。例如,缓冲存储器115可使用各种类型的存储器装置(诸如,dram、mram和pram)实现。为了附图的简洁和描述的方便,在图1中示出了缓冲存储器115被包括在存储控制器110中的实施例,但是本公开不限于此。缓冲存储器115可位于存储控制器110外部,存储控制器110可通过单独的通信通道或接口与缓冲存储器115进行通信。
40.主机接口电路116可被配置为按照给定的接口协议与主机11进行通信。在一个实施例中,给定的接口协议可包括用于下面的接口的协议中的至少一个:ata(高级技术附件)接口、sata(串行ata)接口、e-sata(外部sata)接口、scsi(小型计算机小型接口)接口、sas(串行连接scsi)接口、pci(外围组件互连)接口、pcie(pci快速)接口、nvme(nvm快速)接口、ieee 1394接口、usb(通用串行总线)接口、sd(安全数字)卡接口、mmc(多媒体卡)接口、emmc(嵌入式多媒体卡)接口、ufs(通用闪存)接口、eufs(嵌入式通用闪存)接口、cf(紧凑型闪存)卡接口以及网络接口。主机接口电路116可按照给定的接口协议从主机11接收信号,并且可基于接收的信号进行操作。可选地,主机接口电路116可按照给定的接口协议向主机11发送信号。
41.存储器接口电路117可被配置为按照给定的接口协议与非易失性存储器装置120进行通信。在一个实施例中,给定的接口协议可包括用于下面的接口的协议中的至少一个:切换(toggle)接口和开放nand闪存接口(onfi)。在一个实施例中,存储器接口电路117可基于切换接口与非易失性存储器装置120进行通信。在这种情况下,存储器接口电路117可通过多个通道ch与非易失性存储器装置120进行通信。在一个实施例中,多个通道ch中的每个可包括被配置为发送各种控制信号(例如,/ce、cle、ale、/we、/re和r/b)、数据信号dq和数据选通信号dqs的多条信号线。
42.流管理器118可以以流为单位管理从主机11接收的数据,或者可将接收的数据分类为多个流。例如,从主机11接收的数据可具有各种属性。在数据被存储在非易失性存储器装置120中而没有单独的数据分类的情况下,针对非易失性存储器装置120的维护操作(例如,垃圾收集操作)可被频繁地执行。由于维护操作被频繁地执行,因此存储装置100的整体性能可被降低。
43.根据本公开的示例性实施例的存储控制器110的流管理器118基于接收的数据的各种属性(例如,逻辑块地址、数据大小和数据频率)将从主机11接收的数据分类为流的单元,并且基于分类的流将数据存储在非易失性存储器装置120中。在这种情况下,因为具有相似特征的数据被分类为相同流的一部分,所以对非易失性存储器装置120执行维护操作的次数可减少。因此,存储装置100的整体性能的降低可被防止。在一个示例性实施例中,流管理器118基于机器学习对来自主机11的数据执行流分配。将参照下面的附图更全面地描述本公开的流分配方法。
44.如上所述,根据本公开的示例性实施例,即使不存在从主机11提供的数据的特征
信息(例如,显式流指定),存储装置100也对数据执行分类以基于关于数据的各种属性的信息将数据分类为多个流,并且基于分类的分类结果管理数据。在这种情况下,因为对非易失性存储器装置120执行维护操作(诸如,垃圾收集操作)的次数的减少被实现,所以具有提高的性能和提高的寿命的存储装置100被提供。
45.图2是示出图1的存储系统的软件层的示图。参照图1和图2,存储系统10的软件层可包括应用层app、文件系统层fs、装置驱动器层或装置驱动器dd、流管理器118以及闪存转换层112。
46.应用层app可包括由主机11驱动的各种应用程序(例如,一个或多个应用)。文件系统层fs可被配置为组织由应用层app使用的文件或数据。例如,文件系统层fs可被配置为通过使用逻辑块地址(lba)来管理存储装置100的存储空间。文件系统层fs可被配置为向将被存储在存储装置100中的数据分配和管理逻辑块地址。在一个实施例中,文件系统层fs的文件系统可根据主机11的操作系统而可变。例如,文件系统层fs可包括各种文件系统(诸如,文件分配表(fat)、fat32、nt文件系统(ntfs)、分层文件系统(hfs)、日志文件系统2(jsf2)、xfs、盘上结构-5(ods-5)、udf、zfs、unix文件系统(ufs)、ext2、ext3、ext4、reiserfs、reiser4、iso 9660、gnome vfs、bfs以及winfs)中的至少一种。装置驱动器dd可执行将来自文件系统层fs或应用层app的信息转换为存储装置100可识别的信息的操作。在一个实施例中,应用层app、文件系统层fs和装置驱动器dd可以以软件的形式实现,并且可在主机11上被驱动。
47.流管理器118可被配置为响应于从主机11接收的请求来分配流。在一个实施例中,流管理器118被配置为基于机器学习来分配流。
48.ftl 112可被配置为将从主机11接收的请求的逻辑块地址转换为将在非易失性存储器装置120中使用的物理块地址(或物理地址)。在一个实施例中,ftl112从流管理器118接收关于分配的流标识符的信息,并且执行地址映射,使得响应于从主机11接收的请求而为每个流分配存储在非易失性存储器装置120中的数据。
49.图3是示出图1的非易失性存储器装置的框图。图4是用于描述在存储装置处管理的流的示图。参照图1、图3和图4,非易失性存储器装置120可包括多个非易失性存储器nvm11至nvm44。多个非易失性存储器nvm11至nvm44中的每个可使用一个半导体芯片、一个半导体裸片或一个半导体封装件实现。
50.非易失性存储器nvm11可包括多个平面pl1、pl2以及外围电路peri。平面pl1可包括多个存储器块blk11至blk14,平面pl2可包括多个存储器块blk21至blk24。多个存储器块blk11至blk14以及blk21至blk24中的每个可包括多个页。在一个实施例中,包括在同一平面(例如,pl1)中的多个存储器块(例如,blk11至blk14)可被配置为共享相同的位线,但是本公开不限于此。
51.非易失性存储器nvm11的外围电路peri可与多个通道ch1至ch4之中的相关通道(例如,ch1)连接。响应于通过相关通道接收的各种信号,外围电路peri可将通过相关通道接收的数据存储在多个平面pl1和pl2中,或者可通过相关通道输出从多个平面pl1和pl2读取的数据。针对上面的操作,外围电路peri可包括各种组件(诸如,地址解码器、电压生成器、页缓冲电路、输入/输出电路以及控制逻辑电路等)。
52.为了附图的简洁,实施例被示出为一个非易失性存储器nvm11包括两个平面pl1和
pl2,并且平面pl1和pl2中的每个包括四个存储器块,但是本公开不限于此。例如,平面的数量、存储器块的数量或页的数量可被不同地改变或修改。在一个实施例中,剩余的非易失性存储器nvm12至nvm44在结构上类似于上述非易失性存储器nvm11,因此,附加描述将被省略以避免冗余。
53.多个非易失性存储器nvm11至nvm44之中的属于第一部分的非易失性存储器nvm11、nvm12、nvm13和nvm14可通过第一通道ch1与存储控制器110进行通信,多个非易失性存储器nvm11至nvm44之中的属于第二部分的非易失性存储器nvm21、nvm22、nvm23和nvm24可通过第二通道ch2与存储控制器110进行通信,多个非易失性存储器nvm11至nvm44之中的属于第三部分的非易失性存储器nvm31、nvm32、nvm33和nvm34可通过第三通道ch3与存储控制器110进行通信,多个非易失性存储器nvm11至nvm44之中的属于第四部分的非易失性存储器nvm41、nvm42、nvm43和nvm44可通过第四通道ch4与存储控制器110进行通信。非易失性存储器nvm11、nvm21、nvm31和nvm41可构成第一路way1,非易失性存储器nvm12、nvm22、nvm32和nvm42可构成第二路way2,非易失性存储器nvm13、nvm23、nvm33和nvm43可构成第三路way3,非易失性存储器nvm14、nvm24、nvm34和nvm44可构成第四路way4。也就是说,非易失性存储器装置120可具有多路/多通道结构,可理解,本公开的实施例不限于图3中示出的结构。
54.在一个实施例中,存储装置100可基于多个流来管理包括在非易失性存储器装置120中的多个存储器块。例如,如图4中所示,存储装置100可将多个存储器块中的第一存储器块blk1作为与第一流标识符sid1对应的第一流进行管理,可将多个存储器块中的第二存储器块blk2作为与第二流标识符sid2对应的第二流进行管理,可将多个存储器块中的第三存储器块blk3作为与第三流标识符sid3对应的第三流进行管理,并且可将多个存储器块中的第四存储器块blk4作为与第四流标识符sid4对应的第四流进行管理。
55.在一个实施例中,与同一流标识符(例如,sid1)对应的存储器块(例如,第一存储器块blk1)可被包括在同一平面中,可被包括在同一非易失性存储器中,可被包括在与同一通道连接的非易失性存储器中,或者可被包括在同一路中所包括的非易失性存储器中。可选地,与流标识符(例如,sid1)对应的存储器块(例如,第一存储器块blk1)可被分布在多个非易失性存储器上。然而,上面的描述是示例性的,并且本公开不限于此。
56.如上所述,在一个实施例中,流管理器118管理具有与同一流的特征相似的特征的数据,因此,相似的特征的数据可被存储在与同一流对应的存储器块中。在这种情况下,因为存储在同一流处的数据具有相似的特征,所以存储装置100的性能可被防止由于维护操作(例如,垃圾收集操作)而引起降低,或者写入放大因子(waf)可降低。
57.图5是示出图1的流管理器的示图。图6是示出图5的流属性表的示图为了易于理解,下面描述公开的实施例,其中,存储装置100从主机11接收第一写入请求rq1并响应于第一写入请求rq1分配流。在一个实施例中,从主机11提供的第一写入请求rq1不包括关于流标识符的信息。然而,本公开不限于此。
58.在一个实施例中,将参照下面的附图主要描述将流分配给第一写入请求rq1的方法,但是本公开不限于此。例如,存储装置100可基于参照图1至图4描述的方法来执行下面的操作(即,地址映射操作和编程操作),使得针对每个分配的流,与写入请求对应的写入数据被存储在非易失性存储器装置120中。
59.下面,术语“流”、“流标识符”、“片段(fragment)”等用于描述本公开。流可表示具有相同特征或相似特征的数据集。可选地,流可表示这样的数据集:由主机11管理的该数据集的逻辑块地址是顺序的。流标识符可作为用于区分多个流的独有信息被分配给多个流中的每个。片段可指示数据单元,一个流以该数据单元被划分。例如,流可被划分为多个片段。在一个实施例中,即使特定数据组(即,具有相同特征或相似特征的数据的组)由主机11通过使用连续或顺序的逻辑块地址而被管理,特定数据组也可通过主机11的内核层或文件系统层的操作而被分段。在这种情况下,从主机11不连续或非顺序地接收的写入请求可具有连续或顺序的逻辑块地址。也就是说,在不连续或非顺序的时间接收的并且其逻辑块地址是连续或顺序的至少两个写入请求可被包括在一个片段中。在一个实施例中,一个片段包括至少一个请求,一个流包括至少一个片段。然而,本公开不限于此。
60.下面,术语“顺序流(sequential stream)”用于描述本公开。顺序流可指示对特定写入请求而言是顺序的流或具有与特定片段的特征相似的特征的流。也就是说,与写入请求相关联的顺序流可指示预分配的流之中的对写入请求而言是顺序的流。与特定片段相关联的顺序流可指示具有与特定片段的属性相同或相似的属性的流。
61.参照图1、图5和图6,流管理器118可包括流属性表sat、顺序性检测模块sdm、片段收集模块fcm和流分类模块scm。在一个实施例中,流管理器118可以以软件、硬件或它们的组合的形式实现。例如,流管理器118的组件可以以软件的形式实现。在这种情况下,软件组件可被存储在缓冲存储器115(参照图1)中,并且可由cpu 111执行或管理。可选地,流管理器118的组件可以以硬件的形式实现。在这种情况下,用于实施流管理器118的操作的硬件加速器还可被包括在存储控制器110中。可选地,流管理器118的组件可以以软件和硬件的组合的形式实现。在这种情况下,软件组件可被存储在缓冲存储器115或单独的存储电路中,并且可由实现硬件组件的专用硬件执行。然而,本公开不限于此。例如,在不脱离本公开的技术思想的情况下,流管理器118可被不同地改变或修改。
62.流属性表sat可被配置为包括关于每个预分配的流的统计信息。统计信息可包括关于每个预分配的流的以下信息:流标识符sid、开始逻辑块地址slba、结束逻辑块地址elba、开始时间st、结束时间et、吞吐量tp以及大小向量sv。
63.流标识符sid可以是分配给多个预分配的流中的每个的独有信息。例如,如图6中所示,多个流标识符sid_1至sid_n可被分别分配给多个预分配的流。多个预分配的流可通过多个流标识符sid_1至sid_n彼此区分。
64.下面,为了便于描述,术语“流标识符”和“流”以及参考符号可被互换使用。也就是说,“sid_1”可以是指示第一流标识符的参考符号,并且可直接指示与第一流标识符对应的第一流。
65.开始逻辑块地址slba可指示包括在多个预分配的流中的每个中的写入请求(或写入数据)的逻辑块地址中的最小逻辑块地址。例如,如图6中所示,包括在第一流sid_1中的写入请求或写入数据的逻辑块地址中的最小逻辑块地址可以是第一开始逻辑块地址slba_1。包括在第二流sid_2中的写入请求或写入数据的逻辑块地址中的最小逻辑块地址可以是第二开始逻辑块地址slba_2。同样地,包括在第n流sid_n中的写入请求或写入数据的逻辑块地址中的最小逻辑块地址可以是第n开始逻辑块地址slba_n。
66.结束逻辑块地址elba可指示包括在多个预分配的流中的每个中的写入请求(或写
入数据)的逻辑块地址中的最大逻辑块地址。例如,如图6中所示,包括在第一流sid_1中的写入请求或写入数据的逻辑块地址中的最大逻辑块地址可以是第一结束逻辑块地址elba_1。包括在第二流sid_2中的写入请求或写入数据的逻辑块地址中的最大逻辑块地址可以是第二结束逻辑块地址elba_2。同样地,包括在第n流sid_n中的写入请求或写入数据的逻辑块地址中的最大逻辑块地址可以是第n结束逻辑块地址slba_n。
67.在一个实施例中,多个写入流中的每个的逻辑块地址范围可基于多个预分配的流中的每个的开始逻辑块地址和结束逻辑块地址而被计算。例如,第一流sid_1的逻辑块地址范围可从第一开始逻辑块地址slba_1到第一结束逻辑块地址elba_1。
68.开始时间st可指示多个预分配的流中的每个被生成的时间。例如,如图6中所示,第一流sid_1可在第一开始时间st_1被生成,第二流sid_2可在第二开始时间st_2被生成,第n流sid_n可在第n开始时间t_n被生成。在一个实施例中,特定流被生成可表示写入请求或写入数据第一次被分配给特定流。
69.结束时间et可指示写入请求或写入数据被添加到多个预分配的流中的每个的最终时间。例如,如图6中所示,写入请求或写入数据被添加到第一流sid_1的最终时间可以是第一结束时间et_1,写入请求或写入数据被添加到第二流sid_2的最终时间可以是第二结束时间et_1,写入请求或写入数据被添加到第n流sid_n的最终时间可以是第n结束时间et_n。
70.吞吐量tp可指示每单位时间的被添加到多个预分配的流中的每个的写入数据的大小。例如,如图6中所示,每单位时间的被添加到第一流sid_1的写入数据的大小可以是第一吞吐量tp_1,每单位时间的被添加到第二流sid_2的写入数据的大小可以是第二吞吐量tp_2,每单位时间的被添加到第n流sid_n的写入数据的大小可以是第n吞吐量tp_n。
71.大小向量sv可指示与多个预分配的流中的每个对应的写入请求或写入数据的大小分布。例如,如图6中所示,包括在第一流sid_1中的写入请求或写入数据的大小分布可以是第一大小向量sv_1,包括在第二流sid_2中的写入请求或写入数据的大小分布可以是第二大小向量sv_2,包括在第n流sid_n中的写入请求或写入数据的大小分布可以是第n大小向量sv_n。在一个实施例中,如从下面的等式1所理解的,大小向量sv可以以请求的数据的大小和频率的向量形式表示。
[0072][0073]
参照等式1,“v”指示大小向量sv,“r”指示请求的数据的大小,“c”指示针对该请求的数据的大小的频率。
[0074]
如上所述,流属性表sat可包括关于每个预分配的流的以下统计信息:开始逻辑块地址、结束逻辑块地址、开始时间、结束时间、吞吐量以及大小向量。在一个实施例中,流属性表sat可被存储在存储控制器110的缓冲存储器115中,或者被存储在单独的存储电路中。
[0075]
顺序性检测模块sdm可被配置为基于流属性表sat来检测与从主机11接收的第一写入请求rq1对应的顺序流。例如,顺序性检测模块sdm可基于流属性表sat来确定第一写入请求rq1对预分配的流中的任何流而言是否是顺序的。
[0076]
在一个示例性实施例中,顺序性检测模块sdm确定第一写入请求rq1的逻辑块地址是否被包括在预分配的流的逻辑块地址范围中。在第一写入请求rq1的逻辑块地址被包括在预分配的流中的特定流的逻辑块地址范围中的情况下,顺序性检测模块sdm确定第一写
入请求rq1对特定流而言是顺序的。在这种情况下,特定流可以是与第一写入请求rq1相关的顺序流。
[0077]
在与第一写入请求rq1相关联的顺序流由顺序性检测模块sdm检测到的实施例中,关于第一写入请求rq1的信息被提供给流分类模块scm,并且流分类模块scm使用该信息将检测到的顺序流分配给第一写入请求rq1(即,可将对应的流标识符分配给顺序流)。
[0078]
在第一写入请求rq1的逻辑块地址不被包括在预分配的流的逻辑块地址范围中的实施例中,顺序性检测模块sdm确定第一写入请求rq1对预分配的流而言不是顺序的。在这种情况下,与第一写入请求rq1相关联的顺序流可不存在于预分配的流中。当确定第一写入请求rq1对预分配的流而言不是顺序的时,与第一写入请求rq1相关联的信息(例如,逻辑块地址和数据大小)被提供给片段收集模块fcm。
[0079]
片段收集模块fcm可以以片段为单位管理、分类或收集第一写入请求rq1。例如,片段收集模块fcm可以以片段为单位管理、分类或收集从顺序性检测模块sdm接收的写入请求之中的对预分配的流而言不是顺序的写入请求。在一个示例性实施例中,片段收集模块fcm通过使用散列表来查找对写入请求而言是顺序的片段。
[0080]
当对从顺序性检测模块sdm接收的写入请求而言是顺序的片段未被找到时,片段收集模块fcm可将关于写入请求的信息传送到流分类模块scm。在一个示例性实施例中,流分类模块scm将随机流的流标识符分配给从片段收集模块fcm接收的写入请求。在一个实施例中,随机流标识符可指示任何流标识符。可选地,随机流标识符可指示与预分配的流不同的流的流标识符。
[0081]
当对从顺序性检测模块sdm接收的写入请求而言是顺序的片段被找到时,片段收集模块fcm可将关于写入请求的信息添加到找到的片段。
[0082]
当包括在特定片段中的请求的数量、请求的大小、包括在特定片段中的数据的数量或数据的大小等于或大于参考值时,片段收集模块fcm可将关于特定片段的属性信息传送到流分类模块scm。也就是说,片段收集模块fcm可以以片段为单位分类、管理或收集请求或数据,直到包括在同一片段中的请求或数据的大小达到参考值。
[0083]
流分类模块scm可被配置为基于从片段收集模块fcm或顺序性检测模块sdm接收的信息来识别与请求相关联的流。例如,如上所述,关于写入请求从顺序性检测模块sdm被接收的信息可表示写入请求对特定流而言是顺序的。在这种情况下,流分类模块scm可将特定流的流标识符分配给写入请求。
[0084]
可选地,如上所述,关于写入请求从片段收集模块fcm被接收的信息可表示写入请求对预分配的流而言不是顺序的并且对片段而言也不是顺序的。在这种情况下,流分类模块scm可将随机流的流标识符分配给写入请求。
[0085]
可选地,特定片段的属性信息从片段收集模块fcm被接收可表示特定片段包括其数量等于或大于参考值的写入请求或者其大小等于或大于参考值的写入数据。在这种情况下,流分类模块scm可基于特定片段的属性信息和流属性表sat将预分配的流之中的与特定片段对应的流的流标识符分配给特定片段。在一个示例性实施例中,将流标识符分配给特定片段的操作基于机器学习来执行。
[0086]
图7是示出根据公开的示例性实施例的图1的存储控制器的流分配操作的流程图。为了便于描述,图7的操作由图1的存储控制器110执行,但是本公开不限于此。
[0087]
参照图1、图5和图7,在操作s110中,存储控制器110从主机11接收写入请求。在一个实施例中,写入请求可通过基于主机11与存储装置100之间的给定的接口协议的信号而被接收。写入请求可包括关于写入命令、写入数据和逻辑块地址的信息。在一个实施例中,写入请求不包括流标识符或流信息。
[0088]
在操作s120中,存储控制器110确定接收的写入请求对预分配的流而言是否是顺序的。例如,存储控制器110可基于写入请求的逻辑块地址和流属性表sat来确定写入请求对预分配的流中的任何流而言是否是顺序的。详细地,如参照图5和图6所述,流属性表sat可包括关于每个预分配的流的统计信息。流属性表sat在上面被描述,因此,附加描述将被省略以避免冗余。在一个实施例中,“确定接收的写入请求是否是顺序的”通过确定存储器的用于对写入请求的写入数据进行编程的区域是否是与预分配的流相关联的存储器的多个区域之一而被执行。
[0089]
当接收的写入请求的逻辑块地址被包括在特定流的逻辑块地址范围(即,从特定流的开始逻辑块地址到结束逻辑块地址的范围)中时,存储控制器110确定接收的写入请求对特定流而言是顺序的。在这种情况下,特定流可以是与写入请求相关联的顺序流。在操作s130中,存储控制器110将对应的顺序流(即,被确定为顺序的流)的流标识符分配给写入请求。
[0090]
当包括在流属性表sat中的预分配的流之中的与写入请求对应的流不存在时(即,当与写入请求相关联的顺序流不存在时),在操作s140中,存储控制器110确定写入请求对任何片段而言是否是顺序的。例如,存储控制器110可通过基于写入请求的逻辑块地址检查散列表来确定写入请求对任何片段而言是否是顺序的。下面,为了便于描述,“写入请求对特定片段而言是顺序的”将被描述为写入请求对应于特定片段。
[0091]
当与写入请求对应的片段不存在时(即,当对写入请求而言是顺序的片段不存在时),在操作s150中,存储控制器110将随机标识符分配给写入请求。例如,与写入请求相关联的顺序流不存在表示与写入请求对应的流先前未被分配。此外,与写入请求对应的片段不存在指示具有与接收的写入请求的属性相似的属性的任何其它写入请求尚未被接收。因此,存储控制器110可将随机标识符分配给接收的写入请求。在一个实施例中,在随机标识符被分配之后,散列表可被更新。也就是说,随机标识符被分配到的写入请求可在散列表处被新注册。
[0092]
当与写入请求对应的片段存在时(即,当写入请求对于对应的片段而言是顺序的时),在操作s160中,存储控制器110将写入请求添加到对应的片段。在一个实施例中,将写入请求添加到对应的片段表示将关于写入请求或写入请求的属性的信息添加到散列表,或者管理或存储与写入请求相关联的写入数据以及与对应的片段相关联的数据。
[0093]
在操作s170中,存储控制器110确定包括在对应的片段中的写入请求或写入数据的大小是否等于或大于参考大小。在一个实施例中,参考大小可指示非易失性存储器装置120的编程单元。当包括在对应的片段中的写入请求或写入数据的大小不大于参考大小时,存储控制器110再次执行操作s110。也就是说,存储控制器110可重复地执行操作s110至操作s170,直到包括在对应的片段中的写入请求或写入数据的大小等于或大于参考大小。
[0094]
当包括在对应的片段中的写入请求或写入数据的大小等于或大于参考大小时,在操作s180中,存储控制器110确定与包括在特定片段中的写入请求对应的流是否存在。例
如,存储控制器110可基于包括在流属性表sat中的多个流的统计信息和特定片段的统计信息或属性信息来确定与特定片段对应的流(即,与特定片段相关联的顺序流)是否存在。在一个实施例中,存储控制器110基于机器学习来检测具有与特定片段的统计信息或属性信息的特征相似的特征的流。
[0095]
当确定与特定片段对应的流存在时,在操作s130中,存储控制器110将找到的顺序流(即,对应的流)的流标识符分配给特定片段。
[0096]
当确定与特定片段对应的流不存在时,在操作s190中,存储控制器110生成新的流,并且将新的流的流标识符分配给特定片段。在一个实施例中,在操作s130、操作s150或操作s190之后,存储控制器110可基于关于分配后的流的信息来更新流属性表sat。
[0097]
在一个实施例中,在流(即,顺序流或随机流)被分配给写入请求或片段之后,存储控制器110执行地址映射,使得数据针对分配了写入请求或片段的每个流被存储在非易失性存储器装置120中。也就是说,存储控制器110可执行地址映射,使得具有相同流的请求或片段的数据被存储在非易失性存储器装置120的同一组的存储器块中,并且可控制非易失性存储器装置120。
[0098]
因此,即使关于数据的单独的信息(例如,流标识符或流信息)未从主机11提供,根据本公开的至少一个实施例的存储装置100也可以以流为单位分类和管理数据。在这种情况下,如上所述,因为非易失性存储器装置120的不必要的维护操作的数量减少,所以存储装置100的寿命和性能可被提高。
[0099]
图8是用于描述图7的操作s120的示图。为了附图的简洁和描述的方便,假设存储控制器110预先分配第一流sid_1和第二流sid_2。在一个实施例中,将参照图8描述的操作将基于存储控制器110被描述,但是本公开不限于此。例如,将参照图8描述的操作可由存储控制器110的流管理器118执行。可选地,将参照图8描述的操作可由流管理器118的顺序性检测模块sdm执行。
[0100]
参照图1、图7和图8,存储控制器110基于从主机11接收的请求的逻辑块地址来检测与该请求相关联的顺序流。例如,如图8中所示,主机11可识别的存储装置100的存储空间可对应于逻辑块地址范围lba_range。也就是说,主机11可通过逻辑块地址范围lba_range来管理存储装置100的存储空间。
[0101]
存储控制器110可接收具有第0逻辑块地址lba_0的第0写入请求rq0。在这种情况下,第0逻辑块地址lba_0被包括在从第一开始逻辑块地址slba_1到第一结束逻辑块地址elba_1的范围(例如,第一范围psid_1)内。第一开始逻辑块地址slba_1和第一结束逻辑块地址elba_1可对应于第一流sid_1。在这种情况下,存储控制器110确定具有第0逻辑块地址lba_0的第0写入请求rq0对第一流sid_1而言是顺序的。也就是说,与具有第0逻辑块地址lba_0的第0写入请求rq0相关联的顺序流可以是第一流sid_1。存储控制器110将第一流sid_1的流标识符(即,sid_1)分配给具有第0逻辑块地址lba_0的第0写入请求rq0。这可对应于图7的操作s120中的“是”。
[0102]
存储控制器110接收具有第一逻辑块地址lba_1的第一写入请求rq1。在这种情况下,第一逻辑块地址lba_1不被包括在分别与第一流sid_1和第二流sid_2对应的可用逻辑块地址范围(例如,从slba_1到elba_1的范围和从slba_2到elba_2的范围(例如,第二范围psid_2))中。也就是说,与具有第一逻辑块地址lba_1的第一写入请求rq1相关联的顺序流
不存在于预分配的流中。在这种情况下,存储控制器110可对第一写入请求rq1执行片段搜索操作(或片段收集操作)。这可对应于图7的操作s120中的“否”。
[0103]
如上所述,存储控制器110可基于流属性表sat从预分配的流之中检测与接收的写入请求相关联的顺序流。当顺序流被检测到时,存储控制器110可将检测到的顺序流分配给接收的写入请求。当顺序流未被检测到时,存储控制器110可对接收的写入请求执行片段搜索操作或片段收集操作。
[0104]
图9是用于描述图7的操作s140的示图。在一个实施例中,将参照图9描述的操作将基于存储控制器110被描述,但是本公开不限于此。例如,将参照图9描述的操作可由存储控制器110的流管理器118执行。可选地,将参照图9描述的操作可由流管理器118的片段收集模块fcm执行。
[0105]
参照图5、图7和图9,片段收集模块fcm从顺序性检测模块sdm接收关于具有第一逻辑块地址lba_1的第一写入请求rq1的信息。在一个实施例中,由顺序性检测模块sdm确定与具有第一逻辑块地址lba_1的第一写入请求rq1相关联的顺序流不存在。
[0106]
片段收集模块fcm可基于第一逻辑块地址lba_1查找对第一写入请求rq1而言是顺序的片段。例如,片段收集模块fcm可对第一逻辑块地址lba_1执行散列操作(或哈希运算)hf,并且可将散列操作的结果与索引ind进行比较。索引ind可包括与多个片段fr1至fr8中的每个对应的值。多个片段fr1至fr8中的每个可包括关于一个或多个相关写入请求的信息。例如,第一片段fr1可包括关于写入请求rqa和写入请求rqb的信息,第三片段fr3可包括关于写入请求rqc的信息,第六片段fr6可包括关于写入请求rqd和写入请求rqe的信息。
[0107]
在与散列操作hf的结果一致的索引ind存在的情况下,片段收集模块fcm可将关于写入请求的信息添加到与散列操作hf的结果一致的索引ind。例如,在图9的实施例中,散列操作hf的结果可对应于第六片段fr6。在这种情况下,片段收集模块fcm将关于第一写入请求rq1的信息添加到第六片段fr6。
[0108]
如上所述,片段收集模块fcm可搜索对接收的写入请求而言是顺序的片段,并且可将写入请求添加到找到的片段。换句话说,片段收集模块fcm可以以片段为单位管理、收集或累积具有相似特征的写入请求。
[0109]
在与散列操作hf的结果一致的索引ind不存在的情况下,片段收集模块fcm可将关于第一写入请求rq1的信息传送到流分类模块scm,流分类模块scm可将随机流标识符分配给第一写入请求rq1。例如,如果散列操作hf的结果不对应于任何可用片段,则片段收集模块fcm可将关于第一写入请求rq1的信息传送到流分类模块scm。
[0110]
图10是示出根据示例性实施例的图7的操作s180的流程图。在一个实施例中,将参照图10描述的操作将基于存储控制器110被描述,但是本公开不限于此。例如,将参照图10描述的操作可由存储控制器110的流管理器118执行。可选地,将参照图10描述的操作可由流管理器118的流分类模块scm执行。
[0111]
下面,为了便于描述,术语“收集的片段”被使用。收集的片段可指示这样的片段:在该片段中,写入请求或写入数据被片段收集模块fcm收集或累积多达参考值或更多。然而,本公开不限于此。
[0112]
参照图1、图7和图10,操作s180可包括操作s181、操作s182和操作s183。在操作s181中,存储控制器110获得余弦相似度。例如,存储控制器110可基于收集的片段的属性信
息和流属性表sat来获得收集的片段与每个预分配的流之间的余弦相似度。将参照图11更全面地描述操作s181。
[0113]
在操作s182中,存储控制器110基于余弦相似度选择预分配的流中的“n”个流或至少“n”个流,其中,“n”可以是至少为2的自然数。例如,存储控制器110可从预分配的流之中选择具有高余弦相似度的“n”个流。在一个实施例中,“n”可以是“3”,但是本公开不限于此。例如,具有高于特定阈值的余弦相似度的预分配的流可对应于具有高余弦相似度的“n”个流。
[0114]
在操作s183中,存储控制器110通过使用机器学习从选择的“n”个流之中确定与收集的片段对应的流(即,与收集的片段相关联的顺序流)。存储控制器110可根据操作s183的结果来执行操作s130或操作s190。
[0115]
图11是示出根据公开的实施例的图5的流分类模块的框图。图12是示出根据公开的实施例的图11的机器学习模型的示图。参照图5、图10、图11和图12,流分类模块scm包括余弦相似度模块csm、机器学习模型ml、流选择模块ssm和sat更新模块sum。如上所述,流分类模块scm可被配置为分配与从顺序性检测模块sdm或片段收集模块fcm接收的第一写入请求rq1相关联的顺序流或随机流,或者分配与从片段收集模块fcm接收的收集的片段对应的流。
[0116]
首先,将描述分配与从顺序性检测模块sdm接收的第一写入请求rq1相关联的顺序流的操作。如上所述,在与第一写入请求rq1相关联的顺序流由顺序性检测模块sdm检测到的情况下,流分类模块scm从顺序性检测模块sdm接收关于第一写入请求rq1的信息。在这种情况下,流分类模块scm可基于流属性表sat来分配与第一写入请求rq1相关联的顺序流。
[0117]
接下来,将描述分配与从片段收集模块fcm接收的第一写入请求rq1相关联的随机流的操作。如上所述,第一写入请求rq1从片段收集模块fcm被接收表示对第一写入请求rq1而言是顺序的流和片段两者不存在。在这种情况下,流选择模块ssm可将随机流分配给第一写入请求rq1。
[0118]
然后,将描述将流分配给从片段收集模块fcm接收的收集的片段的操作。流分类模块scm从片段收集模块fcm接收关于收集的片段的信息(在下文中,被称为“目标片段信息”)fr_t。流分类模块scm的余弦相似度模块csm可基于目标片段信息fr_t和流属性表sat来计算目标片段信息fr_t与每个预分配的流的余弦相似度。
[0119]
例如,如上所述,流属性表sat可包括关于每个预分配的流的大小向量sv的信息。目标片段信息fr_t可包括关于包括在目标片段中的写入请求或写入数据的大小和频率的信息。由下面的等式2表示的余弦相似度可基于上述信息而被计算。
[0120][0121]
在上面的等式2中,“cosθ”指示余弦相似度,“a”和“b”指示每个预分配的流的大小向量sv以及针对包括在目标片段中的写入请求的大小和频率的向量。基于等式2的余弦相似度可具有-1与1之间的大小。在一个实施例中,接近
“‑
1”的余弦相似度sim的值表示两个向量不相似,接近“1”的余弦相似度sim的值表示两个向量相似。
[0122]
在一个实施例中,在统计上,“与包括在目标片段中的写入请求的大小和频率相关
联的分布类似于预分配的流中的特定流的大小向量的分布”可表示目标片段对特定流而言是顺序的概率高或超过特定阈值概率。也就是说,预分配的流之中的具有与目标片段的分布相似的分布的一些流可基于上述余弦相似度而被选择。在一个实施例中,选择的流可以是预分配的流之中的具有最接近“1”的余弦相似度(例如,高于特定阈值的余弦相似度)的“n”个流或至少“n”个流。在一个实施例中,“n”可以是“3”,但是本公开不限于此。
[0123]
在预分配的流中的“n”个流被选择之后,流分类模块scm可基于机器学习模型ml确定“n”个流之中的与目标片段对应的流。
[0124]
例如,如图12中所示,机器学习模型ml可包括三个层lay1、lay2和lay3。第一层lay1可包括线性组合层以及修正线性单元(又称为线性整流函数)与脱落(relu&dropout)层。第二层lay2可包括线性组合层和relu&dropout层。第三层lay3可包括线性组合层和柔性最大(softmax)层。
[0125]
第一层lay1至第三层lay3的操作可通过下面的等式3表示。
[0126]
l1=max(0,xw1+b1)
[0127]
l2=max(0,l1w2+b2)
[0128]
out=softmax(l3w3+b3)[等式3]
[0129]
在上面的等式3中,“l
1”可指示第一层lay1的输出,“l
2”可指示第二层lay2的输出,“out”可指示第三层lay3的输出(即,概率值prb)。在每个层中,“x”指示输入到每个层的向量,“w
k”(例如,w1、w2、w3)指示每个层的隐藏向量,“b
k”(例如,b1、b2、b3)指示每个层的偏置。
[0130]
也就是说,流属性表sat、目标片段信息fr_t和余弦相似度sim的统计信息可被输入到机器学习模型ml。在一个实施例中,通过机器学习模型ml,余弦相似度sim是最接近“1”的“n”个流可被选择,概率值prb可通过对选择的流的统计信息(即,从流属性表sat获得的统计信息)和目标片段信息fr_t执行机器学习而被计算。
[0131]
在一个实施例中,目标片段信息fr_t可包括与包括在流属性表sat中的统计信息相似的信息。例如,目标片段信息fr_t可包括目标片段的开始逻辑块地址、结束逻辑块地址、开始时间、结束时间、吞吐量以及大小向量。也就是说,机器学习模型ml可被配置或训练为检测具有与目标片段信息fr_t的统计信息相同或相似的统计信息的流。在一个实施例中,机器学习模型ml可被预先学习/训练,并且可在流分配操作被执行时被另外训练。
[0132]
在一个实施例中,概率值prb是“目标片段对应于选择的“n”个流中的每个”的可能性以向量的形式被表示的值。
[0133]
在一个实施例中,机器学习模型ml基于决策树模型,但是本公开不限于此。例如,机器学习模型ml可以是人工神经网络。
[0134]
流选择模块ssm可基于概率值prb为目标片段分配流。例如,流选择模块ssm可基于概率值prb来确定哪个流是与目标片段相关联的顺序流。流选择模块ssm可将选择的顺序流分配给目标片段。在一个实施例中,在流选择模块ssm未能基于概率值prb确定顺序流与目标片段相关联的情况下(即,在与目标片段相关联的顺序流不存在的情况下),流选择模块ssm生成新的流,生成与新的流对应的新的流标识符,并且将新的流标识符分配给目标片段。
[0135]
在一个实施例中,在流被分配之后,sat更新模块sum更新流属性表sat,使得关于分配的流的信息被注册/存储在流属性表sat中。
[0136]
如上所述,根据本公开的实施例的流分类模块scm可基于特定条件(即,逻辑块地址的顺序性)来收集分段的写入请求,并且可将流分配或分类给收集的写入请求。在这种情况下,流分类模块scm可基于上述余弦相似度来选择预分配的流中的一些流,并且可通过对选择的流执行机器学习来将流分配给收集的写入请求。也就是说,因为学习或计算对预分配的流中的一些而不是所有的预分配的流被执行,所以计算量可减少。因此,流分类模块scm的计算量可减少,流分类模块scm可能变得小尺寸化。
[0137]
图13是示出应用了根据本公开的存储装置的存储系统的框图。图13的储存系统的配置可类似于图1的储存系统10的配置。然而,为了更清楚地描述本公开的实施例,存储系统被概念性地示出。
[0138]
参照图1和图13,多个应用app1至app4可由存储系统10驱动。在一个实施例中,多个应用app1至app4可在主机11上被驱动。在一个实施例中,主机11可使用多租户(multi-tenant)实现,多个应用app1至app4可分别在不同的租户上被驱动。
[0139]
多个应用app1至app4中的每个可被配置为通过文件系统fs访问存储装置100。在一个实施例中,由多个应用app1至app4分别生成的文件或数据可具有不同的特征。然而,在多个应用app1至app4通过同一文件系统fs访问存储装置100的情况下,除非单独的信息(例如,由主机11管理的流信息)被提供,否则存储装置100可以以一般方式管理分别由多个应用app1至app4生成的文件或数据。在这种情况下,因为由多个应用app1至app4分别生成的文件或数据在非易失性存储器装置120内未被分类,所以维护操作可被频繁地执行。
[0140]
相比之下,根据本公开实施例的存储装置100的流管理器118基于参照图1至图12描述的流分配方法将由多个应用app1至app4分别生成的文件或数据分类为多个流sid_1至sid_4。也就是说,由第一应用app1生成的文件或数据可被分类为第一流sid_1,由第二应用app2生成的文件或数据可被分类为第二流sid_2,由第三应用app3生成的文件或数据可被分类为第三流sid_3,并且/或者由第四应用app4生成的文件或数据可被分类为第四流sid_4。在这种情况下,因为由一个应用生成的文件或数据通过使用同一流而被管理,所以非易失性存储器装置120的维护操作的次数可被减少,或者waf特性可被提高。
[0141]
图14是用于描述根据本公开的存储装置的提高的性能的示图。如上所述,根据本公开的存储装置100可在没有来自主机11的单独的信息(例如,流分类信息)的情况下基于输入数据的属性和预分配的流的统计信息来分类、分配或管理与输入数据相关联的流。在这种情况下,将在存储装置100处被执行的维护操作的数量可减少,或者waf特性可被提高。
[0142]
例如,图14的曲线图示出了通过使用雅虎云服务基准(ycsb,yahoo cloud serving benchmark)测量的结果。第一情况case1对应于与插入和读取-修改-写入(rmw)的比是50:50的工作负荷相关联的结果,第二情况case2对应于与插入和rmw的比是25:75的工作负荷相关联的结果,第三情况case3对应于与插入和rmw的比是10:90的工作负荷相关联的结果。如从图14的曲线图所理解的,与不对输入数据执行流分配的情况(即,非流化(non-streamed))相比,当根据本公开的至少一个实施例的流管理器118被应用(即,深度流化(deep-streamed))时,waf大小可减小。也就是说,在根据本公开的至少一个实施例的流管理器或流分配方法被应用的情况下,存储装置的性能和寿命可被提高。
[0143]
图15是示出根据本公开的示例性实施例的存储系统的框图。为了方便,与上述组件相关联的附加描述将被省略以避免冗余。参照图15,存储系统1000包括主机1100和存储
装置1200。主机1100可包括主机控制器1110、主机存储器1120、装置驱动器1130和流管理器1140。存储装置1200包括存储控制器1210和非易失性存储器装置1220。
[0144]
在参照图1至图14描述的实施例中,存储装置可管理与写入请求相关联的流;但是,在图15的实施例中,主机1100被配置为管理与将被存储在存储装置1200中的数据相关联的流。在一个实施例中,主机1100的流管理器1140可以是参照图1至图14描述的流管理器118,或者可基于参照图1至图14描述的流分配方法进行操作。
[0145]
在一个实施例中,关于由主机1100的流管理器1140分配的流的信息与写入请求一起被提供给存储装置1200。
[0146]
在一个实施例中,存储装置1200被配置为基于从主机1100提供的流信息来管理数据。在一个实施例中,存储装置1200被配置为与从主机1100提供的流信息分开地在内部管理与写入请求相关联的内部流。在这种情况下,存储装置1200可基于参照图1至图14描述的流分配方法来管理内部流。
[0147]
图16是示出可应用根据本公开的示例性实施例的存储装置的数据中心的框图。作为维护各种数据并将各种服务提供给数据的设施的数据中心2000可被称为“数据存储中心”。数据中心2000可以是用于搜索引擎或数据库管理的系统,或者可以是在各种体系中使用的计算系统。数据中心2000可包括多个应用服务器2100_1至2100_n和多个存储服务器2200_1至2200_m。应用服务器2100_1至2100_n的数量和存储服务器2200_1至2200_m的数量可被不同地改变或修改。
[0148]
下面,为了便于描述,将通过示例的方式描述第一存储服务器2200_1。剩余的存储服务器2200_2至2200_m和多个应用服务器2100_1至2100_n中的每个可具有与第一存储服务器2200_1的结构相似的结构。
[0149]
第一存储服务器2200_1包括处理器2210_1、存储器2220_1、交换机2230_1、网络接口连接器(nic)2240_1和存储装置2250_1。处理器2210_1可控制第一存储服务器2200_1的整体操作。存储器2220_1可在处理器2210_1的控制下存储各种指令或数据。处理器2210_1可被配置为访问存储器2220_1,以执行各种指令或处理数据。在一个实施例中,存储器2220_1可包括各种类型的存储器装置(诸如,双倍数据速率同步dram(ddr sdram)、高带宽存储器(hbm)、混合存储器立方体(hmc)、双列直插存储器模块(dimm)、光学dimm或非易失性dimm(nvdimm))中的至少一种。
[0150]
在一个实施例中,包括在第一存储服务器2200_1中的处理器2210_1的数量和包括在第一存储服务器2200_1中的存储器2220_1的数量可被不同地改变或修改。在一个实施例中,包括在第一存储服务器2200_1中的处理器2210_1和存储器2220_1可构成处理器-存储器对,包括在第一存储服务器2200_1中的处理器-存储器对的数量可被不同地改变或修改。在一个实施例中,包括在第一存储服务器2200_1中的处理器2210_1的数量可与包括在第一存储服务器2200_1中的存储器2220_1的数量不同。处理器2210_1可包括单核处理器或多核处理器。
[0151]
在处理器2210_1的控制下,交换机2230_1可选择性地将处理器2210_1与存储装置2250_1连接,或者可选择性地将nic 2240_1与存储装置2250_1连接。
[0152]
nic 2240_1可将第一存储服务器2200_1与网络nt连接。nic 2240_1可包括网络接口卡或网络适配器。nic 2240_1可通过有线接口、无线接口、蓝牙接口或光学接口与网络nt
连接。nic 2240_1可包括内部存储器、数字信号处理器(dsp)和主机总线接口中的至少一个,并且可通过主机总线接口与处理器2210_1或交换机2230_1连接。主机总线接口可包括各种接口(诸如,高级技术附件(ata)接口、串行ata(sata)接口、外部sata(e-sata)接口、小型计算机小型接口(scsi)接口、串行连接scsi(sas)接口、外围组件互连(pci)接口、pci快速(pcie)接口、nvm快速(nvme)接口、ieee 1394接口、通用串行总线(usb)接口、安全数字(sd)卡接口、多媒体卡(mmc)接口、嵌入式多媒体卡(emmc)接口、通用闪存(ufs)接口、嵌入式通用闪存存储接口以及紧凑型闪存(cf)卡接口)中的至少一种。在一个实施例中,nic 2240_1可与处理器2210_1、交换机2230_1和存储装置2250_1中的至少一个集成。
[0153]
在处理器2210_1的控制下,存储装置2250_1可存储数据或者可输出存储的数据。存储装置2250_1可包括控制器(ctrl)2251_1、非易失性存储器(nvm)2252_1、dram 2253_1和接口(i/f)2254_1。在一个实施例中,存储装置2250_1还可包括用于安全或隐私的安全元件(se)。
[0154]
控制器2251_1可控制存储装置2250_1的整体操作。在一个实施例中,控制器2251_1可包括sram。响应于通过接口2254_1接收的信号,控制器2251_1可将数据存储在非易失性存储器2252_1中,或者可输出存储在非易失性存储器2252_1中的数据。在一个实施例中,控制器2251_1可被配置为基于切换接口或onfi来控制非易失性存储器2252_1。
[0155]
dram 2253_1可被配置为临时存储将被存储在非易失性存储器2252_1中的数据或者从非易失性存储器2252_1读取的数据。dram 2253_1可被配置为存储控制器2251_1操作所需的各种数据(例如,元数据和映射数据)。接口2254_1可提供控制器2251_1与处理器2210_1、交换机2230_1或nic2240_1之间的物理连接。在一个实施例中,接口2254_1可被实现为支持允许通过专用电缆直接连接存储装置2250_1的直接连接存储(das)方式。在一个实施例中,接口2254_1可通过主机接口总线基于上述接口中的至少一个来实现。
[0156]
第一存储服务器2200_1的上述组件是示例性的,并且本公开不限于此。第一存储服务器2200_1的上述组件可被应用于剩余的存储服务器2200_2至2200_m中的每个或多个应用服务器2100_1至2100_n中的每个。在一个实施例中,在各个应用服务器2100_1至2100_n中,存储装置2150_1可被选择性地省略。
[0157]
多个应用服务器2100_1至2100_n和多个存储服务器2200_1至2200_m可通过网络nt彼此进行通信。网络nt可通过使用光纤通道(fc)或以太网来实现。在这种情况下,fc可以是在高速数据传输中使用的介质,并且可使用提供高性能/高可用性的光开关。根据网络nt的访问方式,存储服务器2200_1至2200_m可被提供为文件存储、块存储或对象存储。
[0158]
在一个实施例中,网络nt可以是存储专用网络(诸如,存储区域网络(san))。例如,san可以是使用fc网络并且按照fc协议(fcp)来实现的fc-san。可选地,san可以是使用tcp/ip网络并且按照iscsi(或tcp/ip上的scsi或互联网scsi)协议实现的ip-san。在一个实施例中,网络nt可以是普通网络(诸如,tcp/ip网络)。例如,网络nt可按照诸如以太网上的fc(fcoe)、网络连接存储(nas)或结构(fabric)上的nvme(nvme-of)的协议来实现。
[0159]
在一个实施例中,多个应用服务器2100_1至2100_n中的至少一个可被配置为通过网络nt访问剩余应用服务器中的至少一个或多个存储服务器2200_1至2200_m中的至少一个。
[0160]
例如,第一应用服务器2100_1可通过网络nt将用户或客户端请求的数据存储在多
个存储服务器2200_1至2200_m中的至少一个中。可选地,第一应用服务器2100_1可通过网络nt从多个存储服务器2200_1至2200_m中的至少一个获得用户或客户端请求的数据。在这种情况下,第一应用服务器2100_1可用网络服务器或数据库管理系统(dbms)来实现。
[0161]
也就是说,第一应用服务器2100_1的处理器2110_1可通过网络nt访问另一应用服务器(例如,2100_n)的存储器(例如,2120_n)或存储装置(例如,2150_n)。可选地,第一应用服务器2100_1的处理器2110_1可通过网络nt访问第一存储服务器2200_1的存储器2220_1或存储装置2250_1。这样,第一应用服务器2100_1可对存储在剩余的应用服务器2100_2至2100_n或多个存储服务器2200_1至2200_m中的数据执行各种操作。例如,第一应用服务器2100_1可执行或发出用于在剩余的应用服务器2100_2至2100_n之间或在多个存储服务器2200_1至2200_m之间移动或复制数据的指令。在这种情况下,作为移动或复制的目标的数据可通过存储服务器2200_1至2200_m的存储器2220_1至2220_m从存储服务器2200_1至2200_m的存储装置2250_1至2250_m移动到应用服务器2100_1至2100_n的存储器2120_1至2120_n,或者直接从存储服务器2200_1至2200_m的存储装置2250_1至2250_m移动到应用服务器2100_1至2100_n的存储器2120_1至2120_n。通过网络nt传送的数据可以是为了安全或隐私而被加密的数据。
[0162]
在一个实施例中,上述存储服务器2200_1至2200_m或存储装置2150_1至2150_n和2250_1至2250_m可包括根据本公开的实施例的流管理器。也就是说,存储服务器2200_1至2200_m或存储装置2150_1至2150_n和2250_1至2250_m中的至少一个可被配置为基于参照图1至图15描述的方法来分配和管理与输入数据相关联的流。
[0163]
根据本公开的实施例,存储装置可基于机器学习针对从主机接收的写入请求分配流。因此,因为具有相似特征的写入请求通过使用同一流被管理,所以存储装置的性能和寿命可被提高。
[0164]
虽然已经参照本公开的实施例描述了本公开,但是对于本领域普通技术人员将清楚的是,在不脱离本公开的精神和范围的情况下,可进行各种改变和修改。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1