存储控制器和存储装置的制作方法

未命名 07-12 阅读:81 评论:0


1.公开涉及存储控制器和存储装置。


背景技术:

2.随着被实现在半导体装置中的功能的数量增加,包括在半导体装置中的内部模块的数量也在增加。随着包括在半导体装置中的内部模块的数量增加,连接多个模块的总线或互连的复杂度增加。随着总线或互连的复杂度增加,基于总线或互连内的优先级调整任务的次序的调度变得困难。因此,对于每个任务,需要考虑在执行任务时的内部模块的状态的调度,而非一致的调度。


技术实现要素:

3.提供一种具有改进的性能的存储控制器。
4.还提供一种具有改进的性能存储装置。
5.根据公开的一个方面,一种存储控制器包括:处理器,被配置为基于从主机接收的命令执行多个任务;以及调度模块,被配置为通过强化学习调度所述多个任务,并且将调度结果提供给处理器,其中,调度模块包括:资源分析模块,被配置为分析用于所述多个任务的资源的使用历史和使用状态;访问模式分析模块,被配置为分析与所述多个任务对应的访问模式;队列分析模块,被配置为根据从主机提供的命令分析包括在队列中的信息;以及性能分析模块,被配置为分析处理器的任务执行结果,其中,调度模块还被配置为使用状态信息和奖励信息执行强化学习,并且其中,状态信息和奖励信息基于执行所述多个任务的执行而被确定。
6.根据公开的一个方面,一种存储装置包括:非易失性存储器;以及存储控制器,被配置为基于从所述存储装置的外部接收的命令执行与非易失性存储器对应的多个任务,其中,存储控制器包括:机器学习模块,被配置为通过基于状态信息和奖励信息执行强化学习来生成所述多个任务的优先级被确定的调度结果,其中,状态信息和奖励信息通过执行所述多个任务而被确定;资源分析模块,被配置为分析用于所述多个任务的资源的使用历史和使用状态;访问模式分析模块,被配置为分析与所述多个任务对应的访问模式;以及队列分析模块,被配置为根据所述命令分析包括在队列中的信息,并且其中,所述使用历史、所述使用状态、所述访问模式和包括在队列中的信息作为状态信息被提供给机器学习模块。
7.根据公开的一个方面,一种存储装置包括:非易失性存储器;以及存储控制器,被配置为基于从存储控制器的外部接收的命令执行与非易失性存储器对应的多个任务,其中,存储控制器被配置为:获得状态信息,状态信息包括用于所述多个任务的资源的使用历史和使用状态、针对所述多个任务执行的访问模式和包括在与所述命令对应的队列中的信息,使用与所述多个任务对应的执行结果作为奖励信息来执行强化学习,并且通过根据强化学习的结果确定所述多个任务的优先级来执行调度。
8.根据公开的一个方面,一种存储装置包括:非易失性存储器;以及至少一个处理
器,被配置为:接收与多个任务对应的命令,通过基于资源的状态信息和与对应于所述多个任务的执行结果对应的奖励信息执行强化学习来确定所述多个任务的优先级,并且根据确定的优先级执行所述多个任务,其中,状态信息包括用于所述多个任务的资源的使用历史和使用状态、与所述多个任务对应的访问模式以及包括在根据所述命令的队列中的信息,其中,奖励信息包括与所述多个任务对应的时间的量、与所述多个任务对应的延迟时间、和与所述多个任务对应的服务质量中的至少一个,并且其中,状态信息和奖励信息随着所述多个任务被执行而被更新。
9.本公开的目的不限于以上提及的那些,并且从本公开的下面的描述,本领域的技术人员将清楚地理解在此未提及的本公开的附加的目的。
附图说明
10.从下面结合附图的描述,本公开的特定实施例的以上和其他方面、特征和优点将更加明显,其中:
11.图1是示出根据实施例的存储装置的图;
12.图2是示出根据实施例的图1的存储装置的存储控制器和非易失性存储器的图;
13.图3是示出根据实施例的调度模块的图;
14.图4是示出根据实施例的调度模块的图;
15.图5是示出根据实施例的调度模块的操作的流程图;
16.图6是示出根据实施例的编码操作的示例性图;
17.图7至图9是示出根据实施例的由机器学习模块使用的模型的示例性图;
18.图10是示出根据实施例的存储控制器与非易失性存储器之间的通信的图;
19.图11是示出根据实施例的被应用包括存储装置的系统的图;
20.图12是示出根据实施例的包括存储装置的数据中心的示例性框图。
具体实施方式
21.在下文中,将参照附图描述根据本公开的技术精神的实施例。
22.如领域中的传统那样,可根据执行描述的一个或多个功能的块来描述和示出实施例。这些块(如附图中所示,在此可被称为单元或模块等,或者被命名为诸如装置、电路、接收器、互连等)可通过模拟电路或数字电路(诸如,逻辑门、集成电路、微处理器、微控制器、存储器电路、无源电子组件、有源电子组件、光学组件、硬连线电路等)物理地实现,并且可通过固件和软件来驱动。例如,电路可被实现在一个或多个半导体芯片中,或者被实现在基底支撑件(诸如,印刷电路板等)上。包括在块中的电路可通过专用硬件来实现,或者通过处理器(例如,一个或多个编程的微处理器和相关联的电路系统)来实现,或者通过用于执行块的一些功能的专用硬件和用于执行块的其他功能的处理器的组合来实现。实施例的每个块可被物理地划分为两个或更多个交互和分立的块。同样地,实施例的块可被物理地组合为更复杂的块。
23.图1是示出根据本公开的一些实施例的存储装置的图。图2是示出根据实施例的图1的存储装置的存储控制器和非易失性存储器的图。图3是示出根据本公开的一些实施例的调度模块的图。图4是示出根据本公开的一些其他实施例的调度模块的图。
24.参照图1至图4,存储器系统10可包括主机装置100和存储装置200。此外,存储装置200可包括存储控制器210和非易失性存储器(nvm)220。在一些实施例中,主机装置100可包括主机控制器110和主机存储器120。主机存储器120可用作用于临时存储待发送到存储装置200的数据或从存储装置200发送的数据的缓冲存储器。
25.存储装置200可包括用于根据来自主机装置100的请求存储数据的存储介质。作为一个示例,存储装置200可包括固态驱动器(ssd)、嵌入式存储器和可拆卸外部存储器中的至少一个。当存储装置200是ssd时,存储装置200可以是符合非易失性存储器快速(nvme)标准的装置。
26.当存储装置200是嵌入式存储器或外部存储器时,存储装置200可以是符合通用闪存(ufs)标准或嵌入式多媒体卡(emmc)标准的装置。主机装置100和存储装置200中的每个可根据采用的标准协议来生成并发送包。
27.当存储装置200的非易失性存储器220包括闪存时,闪存可包括二维(2d)nand存储器阵列、或可被称为垂直nand(vnand)存储器阵列的三维(3d)nand存储器阵列。作为另一示例,存储装置200可包括其他各种类型的非易失性存储器。例如,磁性随机存取存储器(mram)、自旋转移力矩mram、导电桥接ram(cbram)、铁电ram(feram)、相位ram(pram)、电阻式ram和其他各种类型的存储器可被应用于存储装置200。
28.参照图2,存储装置200可包括非易失性存储器220和存储控制器210。存储装置200可支持多个通道ch1至chm,并且非易失性存储器220和存储控制器210可通过多个通道ch1至chm彼此连接。例如,存储装置200可被实现为存储装置(诸如,固态驱动器(ssd))。
29.非易失性存储器220可包括多个存储体nvm11至nvmmn。存储体nvm11至nvmmn中的每个可通过相应的连接(例如,连接w11至wmn)连接到多个通道ch1至chm中的一个。在实施例中,连接可以是或可包括连接结构或路径。例如,存储体可通过连接w11至w1n连接到第一通道ch1,并且存储体nvm21至nvm2n可通过连接w21至w2n连接到第二通道ch2。在一个示例性实施例中,存储体nvm11至nvmmn中的每个可以以能够根据来自存储控制器210的单独命令进行操作的随机存储器单元来实现。例如,存储体nvm11至nvmmn中的每个可被实现为芯片或裸片,然而实施例不限于此。
30.存储控制器210可通过多个通道ch1至chm向非易失性存储器220发送信号和从非易失性存储器220接收信号。例如,存储控制器210可通过通道ch1至chm将命令cmda至cmdm、地址addra至addrm和数据dataa至datam发送到非易失性存储器220,或者可从非易失性存储器220接收数据dataa至datam。
31.存储控制器210可通过每个通道选择连接到相应的通道的存储体中的一个,并且可向选择的存储体发送信号以及从选择的存储体接收信号。例如,存储控制器210可选择连接到第一通道ch1的存储体nvm11至nvm1n中的存储体nvm11。存储控制器210可通过第一通道ch1将命令cmda、地址addra和数据dataa发送到选择的存储体nvm11,或者可从选择的存储体nvm11接收数据dataa。
32.存储控制器210可通过不同的通道并行地向非易失性存储器220发送信号和从非易失性存储器220接收信号。例如,存储控制器210可在通过第一通道ch1将命令cmda发送到非易失性存储器220的同时,通过第二通道ch2将命令cmdb发送到非易失性存储器220。例如,存储控制器210可在通过第一通道ch1从非易失性存储器220接收数据dataa的同时,通
过第二通道ch2从非易失性存储器220接收数据datab。
33.存储控制器210可控制非易失性存储器220的整体操作。存储控制器210可将信号发送到通道ch1至chm以控制连接到通道ch1至chm的存储体nvm11至nvmmn中的每个。例如,存储控制器210可将命令cmda和地址addra发送到第一通道ch1以控制存储体nvm11至nvm1n中的选择的一个。
34.存储体nvm11至nvmmn中的每个可在存储控制器210的控制下进行操作。例如,存储体nvm11可根据提供给第一通道ch1的命令cmda、地址addra和数据dataa对数据dataa进行编程。例如,存储体nvm21可根据提供给第二通道ch2的命令cmdb和地址addrb来读取数据datab,并且可将读取的数据datab发送到存储控制器210。
35.尽管图2示出非易失性存储器220通过数量为m的通道执行与存储控制器210的通信,并且针对每个通道包括数量为n的非易失性存储器装置,但是实施例不限于此,并且可对通道的数量和连接到一个通道的非易失性存储器装置的数量进行各种修改。
36.在一些实施例中,主机控制器110和主机存储器120中的每个可以被实现为单独的半导体芯片。在一些实施例中,主机控制器110和主机存储器120可被集成到同一半导体芯片中。作为一个示例,主机控制器110可以是设置在应用处理器中的多个模块中的任何一个,并且应用处理器可被实现为片上系统(soc)。此外,主机存储器120可以是设置在应用处理器中的嵌入式存储器,或者可以是布置在应用处理器的外部的非易失性存储器或存储器模块。
37.主机控制器110可将缓冲区域的数据(例如,写入数据)存储在非易失性存储器220中,或者可管理将非易失性存储器220的数据(例如,读取数据)存储在缓冲区域中的操作。
38.存储控制器210可包括主机接口(主机i/f)211、存储器接口(i/f)212和中央处理器(cpu)(在下文中被称为“处理器”)213。存储控制器210还可包括闪存转换层(ftl)214、包管理器215、缓冲存储器216、纠错码(ecc)引擎217和高级加密标准(aes)引擎218。
39.处理器213可根据从存储装置200的外部(例如,主机装置100)提供的命令执行(例如,与非易失性存储器220对应的)多个任务。处理器213可根据优先级来执行多个任务。处理器213可在第一模式下根据从调度模块219提供的调度结果顺序地执行多个任务。在实施例中,在第一模式下,处理器213可在不遵循存储控制器210的预定规则(例如,预先存储在存储控制器210中的预定或预设规则)的情况下,考虑存储装置200的整体状态而根据通过机器学习推断的调度来执行多个任务。
40.在第二模式下,处理器213可在不遵循从调度模块219提供的调度结果的情况下,根据基于存储控制器210的预定规则的调度来执行多个任务。例如,处理器213可顺序地执行与输入队列对应的操作。作为另一示例,处理器213可首先执行多个任务之中需要最少时间的任务。
41.处理器213可选择第一模式和第二模式中的一个。在实施例中,处理器213可根据从调度模块219提供的调度结果和存储控制器210的预定规则中的任何一个来选择性地执行多个任务。
42.存储控制器210还可包括加载有ftl 214的工作存储器,并且处理器213可通过执行ftl 214来控制非易失性存储器的数据写入和读取操作。
43.主机接口211可向主机装置100发送包和从主机装置100接收包。从主机装置100发
送到主机接口211的包可包括命令、或待写入非易失性存储器220中的数据,并且从主机接口211发送到主机装置100的包可包括对命令的响应、或从非易失性存储器220读取的数据。
44.存储器接口212可将待写入非易失性存储器220中的数据发送到非易失性存储器220,或者可接收从非易失性存储器220读取的数据。这样的存储器接口212可被实现为符合标准协议(诸如,toggle或开放nand闪存接口(onfi))。
45.ftl 214可执行各种功能(诸如,地址映射、损耗均衡和垃圾收集)。地址映射操作是将从主机装置100接收的逻辑地址改变为用于将数据实际存储在非易失性存储器220中的物理地址的操作。损耗均衡是用于通过允许非易失性存储器220中的块被均匀地使用来防止特定块的过度劣化的技术,并且可示例性地通过用于平衡物理块的擦除计数的固件技术来实现。垃圾收集是用于通过将块的有效数据复制到新的块然后擦除现有块来确保非易失性存储器220中的可用容量的技术。
46.包管理器215可根据与主机装置100协商的接口的协议来生成包,或者可从自主机装置100接收的包解析各种信息。
47.缓冲存储器216可临时存储待写入非易失性存储器220中的数据或待从非易失性存储器220读取的数据。在实施例中,缓冲存储器216可设置在存储控制器210中,或者可布置在存储控制器210的外部。
48.当存储控制器210执行针对非易失性存储器220的多个任务时,缓冲存储器216可存储关于多个任务的调度环境信息和由调度模块219生成的调度结果信息。缓冲存储器216还可存储由数据提供模块2190提供给机器学习模块2191的状态信息或奖励信息。
49.在实施例中,由调度模块219生成的调度结果信息或由数据提供模块2190提供给机器学习模块2191的状态信息或奖励信息可被存储在单独的存储器中,而非缓冲存储器216中。例如,用于存储用于调度多个任务的数据的单独存储器可被包括。
50.ecc引擎217可对从非易失性存储器220读取的读取数据执行错误检测和纠正功能。例如,ecc引擎217可针对待写入非易失性存储器220中的写入数据生成奇偶校验位,并且生成的奇偶校验位可与写入数据一起被存储在非易失性存储器220中。当从非易失性存储器220读取数据时,ecc引擎217可通过使用与读取数据一起从非易失性存储器220读取的奇偶校验位来对读取数据的错误进行纠正,然后可输出纠错后的读取数据。
51.aes引擎218可通过使用对称密钥算法对输入到存储控制器210的数据执行加密操作和解密操作中的至少一个。
52.参照图3,调度模块219可包括数据提供模块2190、机器学习模块2191和编码模块2196。调度模块219可确定多个任务的优先级,然后通过强化学习来调度多个任务。调度模块219可根据操作模式通过强化学习来改变用于调度多个任务的周期。例如,在第三模式下,每当存在针对多个任务的存储器系统10的命令时,调度模块219可通过执行强化学习来调度多个任务。作为另一示例,在第四模式下,即使不存在针对多个任务的存储器系统10的命令,调度模块219也可通过以预定周期执行强化学习来调度多个任务。
53.数据提供模块2190可包括资源分析模块2192、访问模式分析模块2193、队列分析模块2194和性能分析模块2195。数据提供模块2190可提供用于由机器学习模块2191执行的机器学习的数据。
54.资源分析模块2192可分析执行存储控制器210的任务所需的资源的使用历史和使
用状态。资源分析模块2192可将关于资源的使用历史和使用状态的信息提供给机器学习模块2191。例如,资源分析模块2192可将关于资源的使用历史和使用状态的信息作为用于机器学习模块2191的强化学习的状态信息提供给机器学习模块2191。
55.资源可以指包括在存储装置200中的全部模块。例如,资源可包括当存储控制器210执行任务时使用的模块。例如,资源可包括非易失性存储器220。作为另一示例,资源可包括缓冲存储器216。在实施例中,资源可以指当存储控制器210响应于从主机装置100接收的命令而执行特定任务时所需的模块。
56.资源分析模块2192可分析当存储控制器210执行特定任务时所需的存储装置200的模块的使用历史和使用状态。例如,资源分析模块2192可收集关于包括在非易失性存储器中的多个存储体nvm11至nvmmn中的特定的一个存储数据的地址的信息、以及关于存储在多个存储体中的特定的一个中的数据相对于总容量的比率的信息。
57.访问模式分析模块2193可分析由存储控制器210执行的访问模式。访问模式分析模块2193可将针对存储控制器210的任务而执行的访问模式提供给机器学习模块2191。例如,访问模式分析模块2193可将针对存储控制器210的任务而执行的访问模式作为用于机器学习模块2191的强化学习的状态信息提供给机器学习模块。
58.访问模式分析模块2193可在将关于访问模式的信息提供给机器学习模块2191之前分析多个任务的访问模式。例如,访问模式分析模块2193可在将关于访问模式的信息提供给机器学习模块2191之前分析最近n个任务的访问模式。
59.例如,访问模式分析模块2193可分析针对特定任务执行的访问模式。例如,当存储控制器210响应于从主机装置100提供的第一命令执行第一任务,并且通过使用存储控制器210的处理器213、ftl 214、缓冲存储器216和ecc引擎217来访问非易失性存储器220时,访问模式分析模块2193可在执行第一任务时收集处理器213、ftl 214、缓冲存储器216、ecc引擎217和非易失性存储器220的访问模式。
60.队列分析模块2194可分析包括在队列中的信息。在一个实施例中,队列可与从存储控制器210的外部或存储装置200的外部接收的命令对应。例如,队列分析模块2194可分析包括在队列中的多个命令元素布置的次序。作为另一示例,队列分析模块2194可分析包括在队列中的命令的类型。作为又一示例,队列分析模块2194可收集队列的到达时间。队列分析模块2194可将包括在分析的队列中的信息提供给机器学习模块2191。例如,队列分析模块2194可将包括在分析的队列中的信息作为用于机器学习模块2191的强化学习的状态信息提供给机器学习模块2191。
61.性能分析模块2195可根据存储控制器210的任务的执行来分析结果。性能分析模块2195可分析存储控制器210的处理器213的任务执行结果。在一个实施例中,任务执行结果可包括以时间单位测量的存储控制器210的吞吐量、任务的延迟和与命令对应的服务质量(qos)之中的至少一个。例如,性能分析模块2195可分析当存储控制器210执行第一任务时所需的时间。作为另一示例,性能分析模块2195可分析特定任务的延迟时间。作为又一示例,性能分析模块2195可分析命令的服务质量(qos)。性能分析模块2195可将分析的任务执行结果提供给机器学习模块2191。例如,性能分析模块2195可将分析的任务执行结果作为用于机器学习模块2191的强化学习的奖励信息(reward information)提供给机器学习模块2191。
62.机器学习模块2191可基于从数据提供模块2190提供的数据来执行机器学习。在一些实施例中,机器学习模块2191可执行强化学习。机器学习模块2191可从数据提供模块2190接收状态信息和奖励信息。
63.机器学习模块2191可从资源分析模块2192接收关于资源的使用历史和使用状态的信息。机器学习模块2191可从访问模式分析模块2193接收关于访问模式的信息。机器学习模块2191可从队列分析模块2194接收包括在队列中的信息。机器学习模块2191可从性能分析模块2195接收关于任务执行结果的信息。
64.机器学习模块2191可通过使用关于资源的使用历史和使用状态的信息、关于访问模式的信息、包括在队列中的信息和关于任务执行结果的信息来执行强化学习。
65.强化学习可被描述为代理、动作、环境信息、状态信息和奖励信息的概念。强化学习可以是这样的学习方法,该学习方法用于从能够通过在随机环境中定义的代理识别当前状态而进行选择的动作之中选择动作或动作次序以最大化奖励。
66.机器学习模块2191可使用关于资源的使用历史和使用状态的信息、关于访问模式的信息和包括在队列中的信息作为强化学习的状态信息。机器学习模块2191可在强化学习中考虑关于资源的使用历史和使用状态的信息、关于访问模式的信息和包括在队列中的信息。在实施例中,被机器学习模块2191使用的状态信息可包括通过执行多个任务而确定的信息。例如,被机器学习模块2191用作强化学习的状态信息的关于资源的使用历史和使用状态的信息、关于访问模式的信息和包括在队列中的信息可基于由存储装置200对多个任务的执行而被确定。
67.用作状态信息的关于资源的使用历史和使用状态的信息、关于访问模式的信息和包括在队列中的信息可包括在机器学习模块2191执行强化学习之前基于由存储装置200对多个任务的执行而确定的信息。例如,当存储装置200根据第一访问模式执行第一任务时,机器学习模块2191可使用用于在第一任务之后调度多个任务的强化学习的第一访问模式作为状态信息。
68.机器学习模块2191可使用关于任务执行结果的信息作为强化学习的奖励信息。例如,机器学习模块可选择动作以最大化任务执行结果。在实施例中,被机器学习模块2191使用的奖励信息可包括通过执行多个任务确定的信息。例如,被机器学习模块2191用作强化学习的奖励信息的关于任务执行结果的信息可通过由存储装置200执行多个任务而被确定。
69.用作奖励信息的任务执行结果可包括在机器学习模块2191执行强化学习之前基于由存储装置200对多个任务的执行而确定的信息。例如,在存储装置200执行第一任务时需要第一时间(例如,第一时间量)的情况下,使用整个任务所需的时间作为强化学习的奖励信息的机器学习模块2191可使用关于用于在第一任务之后调度多个任务的强化学习的第一时间的信息作为奖励信息。
70.由机器学习模块2191通过强化学习选择的动作可包括多个任务的准备动作、运行动作、阻止动作或放弃(yield)动作。在实施例中,由机器学习模块2191通过强化学习选择的动作可包括使包括在表示多个任务的队列中的特定元素出列(dequeue)。
71.机器学习模块2191可考虑存储装置200的内部状态(诸如,关于资源的使用历史和使用状态的信息、关于访问模式的信息或包括在队列中的信息)来确定任务的优先级。机器
学习模块2191可确定多个任务的优先级,以通过重复的强化学习来改善存储控制器210的任务执行结果。例如,当机器学习模块2191使用用于强化学习的整个任务所需的时间作为奖励信息时,机器学习模块2191可被调度以优先地执行特定任务,使得整个任务所需的时间被减少。作为另一示例,当机器学习模块2191使用用于强化学习的任务的延迟时间作为奖励信息时,机器学习模块2191可调度多个任务以减少任务的延迟时间。针对其他示例,当机器学习模块2191使用用于强化学习的命令的服务质量(qos)作为奖励信息时,机器学习模块2191可通过确定优先级来调度多个任务以改善qos。
72.在一些实施例中,机器学习模块2191可以以固件或软件实现,并且在存储装置200中被驱动。在这种情况下,机器学习模块2191可控制存储控制器210的操作。在一些实施例中,机器学习模块2191可以以硬件实现,并且在存储装置200中被驱动。在这种情况下,机器学习模块2191可以以单独的机器学习处理器的形式实现、或者被实现为单独的机器学习处理器、或者使用单独的机器学习处理器实现,并且被包括在存储装置200中。
73.编码模块2196可对机器学习模块2191中使用的信息进行编码。例如,编码模块2196可将由数据提供模块2190收集的数据转换为可被应用于由机器学习模块2191用于强化学习的模型的数据。
74.例如,编码模块2196可将由资源分析模块2192提供的关于资源的使用历史和使用状态的信息转换为可被机器学习模块2191用作强化学习中的状态信息的形式。编码模块2196可将由访问模式分析模块2193提供的访问模式转换为可被机器学习模块2191用作强化学习中的状态信息的形式。编码模块2196可将包括在由队列分析模块2194提供的队列中的信息转换成可被机器学习模块2191用作强化学习中的状态信息的形式。编码模块2196可将由性能分析模块2195提供的关于任务执行结果的信息转换为可被机器学习模块2191用作强化学习中的奖励信息的形式。
75.参照图3,编码模块2196可被实现为与数据提供模块2190分离的模块。编码模块2196可从资源分析模块2192接收关于资源的使用历史和使用状态的信息,对该信息进行编码并将编码的信息提供给机器学习模块2191。编码模块2196可从访问模式分析模块2193接收关于访问模式的信息,对该信息进行编码并将编码的信息提供给机器学习模块2191。类似地,编码模块2196可从队列分析模块2194和性能分析模块2195接收包括在队列中的信息和关于任务执行结果的信息,对该信息进行编码并将编码的信息提供给机器学习模块2191。
76.参照图4,编码器2196_1至2196_4可被包括在数据提供模块2190中。包括在资源分析模块2192中的第一编码器2196_1可对关于资源的使用历史和使用状态的信息进行编码,并且将编码的信息提供给机器学习模块2191。包括在访问模式分析模块2193中的第二编码器2196_2可对关于访问模式的信息进行编码,并且将编码的信息提供给机器学习模块2191。包括在队列分析模块2194中的第三编码器2196_3可对包括在队列中的信息进行编码,并且将编码的信息提供给机器学习模块2191。包括在性能分析模块2195中的第四编码器2196_4可对关于任务执行结果的信息进行编码,并且将编码的信息提供给机器学习模块2191。
77.图5是示出根据本公开的一些实施例的调度模块的处理500的流程图。
78.参照图1和图5,在操作s100,调度模块219接收信息以调度多个任务。例如,调度模
块219的机器学习模块2191可从数据提供模块2190接收信息。在一些实施例中,机器学习模块2191可从资源分析模块2192、访问模式分析模块2193、队列分析模块2194和性能分析模块2195接收用于机器学习的信息。
79.随后,在操作s200,调度模块219确定推断是否被需要(或者例如确定推断是否被必需或者是否应该被使用)。例如,当调度模块219从处理器213接收到对任务调度咨询的请求时,调度模块219可确定推断被需要。在实施例中,即使不存在来自处理器213的对任务调度咨询的请求,调度模块219也可每隔预定周期确定推断是否被需要。
80.当推断不被需要时,在操作s300,调度模块219存储并累积收集的信息。例如,当不存在来自处理器213的对任务调度咨询的请求时,或者除了推断被需要的预定周期之外,调度模块219可在不通过机器学习执行调度的情况下,简单地存储并累积收集的信息。在实施例中,在操作s300被执行之后,处理500可返回到处理500的开始,可进行到处理500的结束,或者可返回到任何其他操作(例如,操作s100)。
81.基于在操作s200确定推断被需要(例如,当调度模块219从处理器213接收到对任务调度咨询的请求时),当推断被需要的预定周期出现时,在操作s400,机器学习操作被执行。例如,机器学习模块2191可通过使用从资源分析模块2192、访问模式分析模块2193、队列分析模块2194和性能分析模块2195提供的数据来执行强化学习。
82.随后,在操作s500,调度模块219确定动作并咨询确定的动作。例如,机器学习模块2191可通过强化学习来确定多个任务的优先级以形成多个任务的调度结果,并且可将调度结果提供给处理器213。
83.图6是示出根据本公开的一些实施例的编码操作的示例性图。参照图6描述的编码模块的操作是用于描述的示例性操作,并且编码模块的操作不限于此。
84.参照图1至图3和图6,调度模块219的编码模块2196可对关于非易失性存储器220的存储体nvm11的占用历史的信息进行编码。
85.例如,存储体nvm11可存储数据直到第一时间t1,并且从第一时间t1到第二时间t2可不存储数据。此外,存储体nvm11可处于这样的状态:在第二时间t2与第三时间t3之间的时间、第四时间t4与第五时间t5之间的时间、第六时间t6与第七时间t7之间的时间、第八时间t8与第九时间t9之间的时间期间,数据被存储。
86.如上所述,资源分析模块2192可分析在第一时间t1与第二时间t2之间的时间、第二时间t2与第三时间t3之间的时间、第四时间t4与第五时间t5之间的时间、第六时间t6与第七时间t7之间的时间、和第八时间t8与第九时间t9之间的时间期间存储的数据的历史,并且将分析的历史提供给编码模块2196。
87.编码模块2196可对由资源分析模块2192提供的关于存储体nvm11的占用历史和占用状态的信息进行编码,并且将该信息转换为资源数据。资源数据具有可被机器学习模块2191用于机器学习的形式。实施例不限于此,并且根据实施例,可以以编码模块2196转换信息的形式进行各种修改。
88.图7至图9是示出根据一些实施例的由机器学习模块使用的模型的示例性图。
89.参照图1、图2和图7,机器学习模块2191可使用第一模型cf1。第一模型cf1可以是决策树。
90.第一模型cf1包括根节点rn、第一内部节点in1至第四内部节点in4、和第一叶节点
ln1至第六叶节点ln6。根节点rn、第一内部节点in1至第四内部节点in4、和第一叶节点ln1至第六叶节点ln6可通过分支彼此连接。
91.在根节点rn和第一内部节点in1至第四内部节点in4中的每个中,调度结果信息中的一个的比较可被执行。根据比较的结果,连接到每个节点的多个分支中的一个可被选择。当另外的内部节点连接到选择的分支时,内部节点中的调度结果信息中的另一个的比较可被执行。当叶节点连接到选择的分支时,叶节点的值可被获取作为分类结果。
92.当根据一些实施例的存储装置200在被制造之后被出售时,第一模型cf1可被加载到存储装置200中。例如,第一模型cf1可由存储装置200的制造商基于从多个用户收集的调度结果信息来生成。考虑到信息已经被收集,第一模型cf1可被认为通过“离线”学习被生成或更新。
93.当根据一些实施例的存储装置200被出售和被用户使用时,第一模型cf1可通过用户的调度结果信息继续被更新。更新第一模型cf1可通过用于更新比较值的机器学习被执行,在用于更新比较值的机器学习中,在根节点rn和第一内部节点in1至第四内部节点in4中的每个中比较调度结果信息。在存储装置200被出售之后,考虑到由用户使用实时调度结果信息更新第一模型cf1,第一模型cf1可被认为通过“在线”学习被生成或更新。
94.参照图1、图2和图8,机器学习模块2191可使用第二模型cf2。第二模型cf2可以是神经网络。
95.第二模型cf2可包括第一输入节点in1至第四输入节点in4、第一隐藏节点hn1至第十隐藏节点hn10和输出节点on。当神经网络被实现时,输入节点的数量、隐藏节点的数量和输出节点的数量可被预先确定。
96.第一输入节点in1至第四输入节点in4可形成输入层。第一隐藏节点hn1至第五隐藏节点hn5可形成第一隐藏层。第六隐藏节点hn6至第十隐藏节点hn10可形成第二隐藏层。输出节点on可形成输出层。当神经网络被配置时,隐藏层的数量可被预先确定。
97.调度结果信息可被输入到第一输入节点in1至第四输入节点in4。不同类型的调度结果信息可被输入到不同的输入节点。每个输入节点的调度结果信息可使用权重被传送到第一隐藏层的第一隐藏节点hn1至第五隐藏节点hn5。第一隐藏节点hn1至第五隐藏节点hn5中的每个的输入可使用权重被传送到第二隐藏层的第六隐藏节点hn6至第十隐藏节点hn10。第六隐藏节点hn6至第十隐藏节点hn10的输入可使用权重被传送到输出节点on。
98.可通过根据当调度结果信息被输入到第一输入节点in1至第四输入节点in4时获取的输出节点on的值与当任务根据实际调度结果被执行时获取的调度结果信息之间的差异而重复更新权重,来执行机器学习。
99.基于神经网络的第二模型cf2可通过离线学习被生成,并且可被加载到存储装置200中。随着用户使用存储装置200,基于神经网络的第二模型cf2可通过在线学习被更新。
100.参照图1、图2和图9,机器学习模块2191可使用第三模型cf3。第三模型cf3可以是支持向量机。
101.第三模型cf3的水平轴“x”和垂直轴“y”中的每个表示学习数据。根据一些实施例的在第三模型cf3中分布的样本的形状(例如,正方形和圆形)可以指不同的调度结果的信息。
102.线a和线b可被用于对正方形样本sq和圆形样本cr进行分类。然而,考虑到稍后收
集的样本的可能性,线a可具有比线b大的裕度。第三模型cf3可选择具有与线a类似的更大的裕度的分类标准。第三模型cf3可通过离线学习具有初始分类标准。随着用户使用存储装置200,样本的数量增加,并且第三模型cf3可通过在线学习来更新分类标准。
103.根据一些实施例的被存储装置200用于机器学习的模型不限于以上描述的模型。递归神经网络(rnn)、长短期记忆模型(lstm)、生成对抗网络(gan)、可变自动编码器(vae)和回归模型可被用作模型。
104.图10是示出根据本公开的一些实施例的存储控制器与非易失性存储器之间的通信的图。
105.参照图10,存储装置可包括存储控制器ctrl和非易失性存储器nvm。在一个实施例中,将参照图10描述存储控制器ctrl与非易失性存储器nvm之间的一个通信通道,然而实施例不限于此。存储控制器ctrl和其他非易失性存储器装置可通过与参照图10描述的通道类似的其他通道(即,多个通道)彼此执行通信。
106.存储控制器ctrl可包括第一接口电路ifc_1。在一个实施例中,第一接口电路ifc_1可以是包括在以上描述的存储装置200中的电路。
107.第一接口电路ifc_1可包括第一引脚p11至第八引脚p18。存储控制器ctrl可通过第一接口电路ifc_1的多个引脚p11至p18将各种信号发送到非易失性存储器nvm。例如,存储控制器ctrl可通过第一引脚p11将芯片使能信号nce发送到非易失性存储器nvm,通过第二引脚p12将命令锁存使能信号cle发送到非易失性存储器nvm,通过第三引脚p13将地址锁存使能信号ale发送到非易失性存储器nvm,通过第四引脚p14将写入使能信号nwe发送到非易失性存储器nvm,通过第五引脚p15将读取使能信号nre发送到非易失性存储器nvm,通过第六引脚p16将数据选通信号dqs发送到非易失性存储器nvm,通过第七引脚p17将数据信号dq发送到非易失性存储器nvm,并且通过第八引脚p18从非易失性存储器nvm接收就绪信号(或忙碌信号)nr/b。在一个实施例中,第七引脚p17可根据特定实施方案而包括多个引脚。
108.非易失性存储器nvm可包括第二接口电路ifc_2、控制逻辑电路cl和存储器单元阵列mca。第二接口电路ifc_2可包括第一引脚p21至第八引脚p28。第二接口电路ifc_2可以通过第一引脚p21至第八引脚p28从存储控制器ctrl接收各种信号。
109.第二接口电路ifc_2可基于写入使能信号nwe的切换时序(toggle timing)从在命令锁存使能信号cle的使能时段(例如,高电平状态)接收的数据信号dq获取命令cmd。第二接口电路ifc_2可基于写入使能信号nwe的切换时序从在地址锁存使能信号ale的使能时段(例如,高电平状态)接收的数据信号dq获取地址addr。
110.在一个实施例中,写入使能信号nwe可保持静态状态(例如,高电平或低电平),并且在高电平与低电平之间进行切换。例如,写入使能信号nwe可在命令cmd或地址addr被发送的时段进行切换。因此,第二接口电路ifc_2可基于写入使能信号nwe的切换时序来获取命令cmd或地址addr。
111.在非易失性存储器nvm的数据data输出操作中,第二接口电路ifc_2可在输出数据data之前,通过第五引脚p15接收切换的读取使能信号nre。第二接口电路ifc_2可基于读取使能信号nre的切换而生成切换的数据选通信号dqs。例如,第二接口电路ifc_2可生成数据选通信号dqs,数据选通信号dqs在基于读取使能信号nre的切换开始时间的预定延迟(例如,tdqsre)之后开始进行切换。第二接口电路ifc_2可通过与数据选通信号dqs的切换时序
进行同步来发送包括数据data的数据信号dq。因此,数据data可与数据选通信号dqs的切换时序对齐,并且被发送到存储控制器210。
112.在非易失性存储器nvm的数据data输入操作中,第二接口电路ifc_2可从存储控制器ctrl接收与包括数据data的数据信号dq一起进行切换的数据选通信号dqs。第二接口电路ifc_2可基于数据选通信号dqs的切换时序从数据信号dq获取数据data。例如,第二接口电路ifc_2可通过在数据选通信号dqs的上升沿和下降沿对数据信号dq进行采样来获取数据data。
113.第二接口电路ifc_2可通过第八引脚p28将就绪/忙碌(ready/busy)输出信号nr/b发送到存储控制器ctrl。当非易失性存储器nvm处于忙碌状态时(例如,当内部操作被执行时),第二接口电路ifc_2可将表示忙碌状态的就绪/忙碌输出信号nr/b发送到存储控制器ctrl。当非易失性存储器nvm处于就绪状态时(例如,当内部操作未被执行或已完成时),第二接口电路ifc_2可将表示就绪状态的就绪/忙碌输出信号nr/b发送到存储控制器ctrl。
114.控制逻辑电路cl通常可控制非易失性存储器nvm的各种操作。控制逻辑电路cl可接收从第二接口电路ifc_2获取的命令/地址cmd/addr。控制逻辑电路cl可根据接收的命令/地址cmd/addr生成用于控制非易失性存储器nvm装置的其他元件的控制信号。
115.存储器单元阵列mca可根据控制逻辑电路cl的控制,存储从第二接口电路ifc_2获取的数据data。存储器单元阵列mca可根据控制逻辑电路cl的控制将存储的数据data输出到第二接口电路ifc_2。
116.存储器单元阵列mca可包括多个存储器单元。例如,多个存储器单元可以是闪存单元,然而实施例不限于此。存储器单元可以是电阻式随机存取存储器(rram)单元、铁电随机存取存储器(fram)单元、相变随机存取存储器(pram)单元、晶闸管随机存取存储器(tram)单元和磁性随机存取存储器(mram)单元。
117.图11是示出根据本公开的一些实施例的包括存储装置的系统的图。
118.参照图11,系统1000可以是移动系统(诸如,移动电话、智能电话、平板个人计算机(pc)、可穿戴装置、医疗保健装置或物联网(iot)装置)。在一个实施例中,系统1000不限于移动系统,并且可以是个人计算机、膝上型计算机、服务器、媒体播放器或汽车装置(诸如,导航系统)。
119.系统1000可包括主处理器1100、存储器1200a和1200b、以及存储装置1300a和1300b,并且还可包括图像捕获装置1410、用户输入装置1420、传感器1430、通信装置1440、显示器1450、扬声器1460、供电装置1470和连接接口1480中的一个或多个。
120.主处理器1100可控制系统1000的整体操作,更详细地,控制包括在系统1000中的其他元件的操作。主处理器1100可被实现为通用处理器、专用处理器或应用处理器。
121.主处理器1100可包括一个或多个cpu核1110,并且还可包括用于控制存储器1200a和1200b和/或存储装置1300a和1300b的控制器1120。根据实施例,主处理器1100还可包括作为用于高速数据计算(诸如,人工智能(ai)数据计算)的专用电路的加速器1130。加速器1130可包括图形处理器(gpu)、神经网络处理器(npu)和/或数据处理器(dpu),并且可被实现为物理上独立于主处理器1100的其他元件的单独芯片。
122.存储器1200a和1200b可被用作系统1000的主存储器装置,并且可包括易失性存储器(诸如,sram和/或dram),但是也可包括非易失性存储器(诸如,闪存、pram和/或rram)。存
储器1200a和1200b可被实现在与主处理器1100相同的封装件中。在一个实施例中,存储器1200a和1200b可作为以上描述的主机存储器进行操作。
123.存储装置1300a和1300b可用作用于不管是否被供电都存储数据的非易失性存储装置,并且可具有比存储器1200a和1200b的存储容量相对更大的存储容量。存储装置1300a和1300b可包括存储控制器1310a和1310b以及用于在存储控制器1310a和1310b的控制下存储数据的非易失性存储器(nvm)1320a和1320b。在实施例中,非易失性存储器1320a和1320b可包括2d结构或vnand结构的闪存,或者还可包括其他类型的非易失性存储器(诸如,pram和/或rram)。
124.存储装置1300a和1300b可以以与主处理器1100物理分离的状态被包括在系统1000中,并且可被实现在与主处理器1100相同的封装件中。此外,存储装置1300a和1300b可通过具有与固态装置(ssd)或存储卡的形式相同的形式的接口(诸如,稍后将被描述的连接接口1480)可拆卸地结合到系统1000的其他元件。这样的存储装置1300a和1300b可以是但不限于被应用标准协议(诸如,通用闪存存储(ufs)、嵌入式多媒体卡(emmc)或非易失性存储器快速(nvme))的装置。
125.在一些实施例中,存储装置1300a和1300b可被配置为在主处理器1100的控制下执行各种计算,并且可与参照图1至图10描述的存储装置对应。在一些实施例中,在主处理器1100的控制下执行多个任务时,存储装置1300a和1300b可根据由调度模块(例如,图1的调度模块219)生成的调度结果来执行多个任务。存储装置1300a和1300b可被配置为执行或运行由加速器1130执行的功能中的一些功能。
126.图像捕获装置1410可捕获静止图像或视频,并且可以是相机、便携式摄像机和/或网络摄像头。
127.用户输入装置1420可从系统1000的用户接收各种类型的数据输入,并且可以是触摸板、键区、键盘、鼠标和/或麦克风。
128.传感器1430可感测可从系统1000的外部获取的各种类型的物理量,并且将感测到的物理量转换为电信号。传感器1430可以是温度传感器、压力传感器、照度传感器、位置传感器、加速度传感器、生物传感器和/或陀螺仪传感器。
129.通信装置1440可根据各种通信协议在系统1000的外部的其他装置之间执行信号的发送和接收。这样的通信装置1440可通过包括天线、收发器和/或调制解调器而被实现。
130.显示器1450和扬声器1460可用作分别将视觉信息和听觉信息输出到系统1000的用户的输出装置。
131.供电装置1470可适当地转换从外部电源和/或嵌入在系统1000中的电池供应的电力,以将电力供应给系统1000的每个元件。
132.连接接口1480可提供系统1000与连接到系统1000以与系统1000交换数据的外部装置之间的连接。连接接口1480可以以各种接口方式(诸如,高级技术附件(ata)、串行ata(sata)、外部sata(e-sata)、小型计算机小型接口(scsi)、串行附接scsi(sas)、外围组件互连(pci)、pci快速(pcie)、nvme、ieee 1394、通用串行总线(usb)、安全数字(sd)卡、多媒体卡(mmc)、emmc、ufs、嵌入式通用闪存(eufs)和紧凑型闪存(cf)卡接口)实现。
133.图12是示出被应用根据本公开的一些实施例的存储装置的数据中心或者例如包括根据实施例的存储装置的数据中心的示例性框图。
134.参照图12,数据中心2000管理各种数据并为各种数据提供各种服务,并且可被称为数据存储中心。数据中心2000可以是用于搜索引擎或数据库操作的系统,并且可以是在各种引擎中使用的计算系统。数据中心2000可包括多个应用服务器2100_1至2100_n(例如,第一应用服务器至第n应用服务器)和多个存储服务器2200_1至2200_m(例如,第一存储服务器至第m存储服务器)。实施例不限于此,并且可对多个应用服务器2100_1至2100_n的数量和多个存储服务器2200_1至2200_m的数量进行各种修改。
135.在下文中,为了描述的方便,第一存储服务器2200_1的示例将被描述。其他存储服务器2200_2至2200_m和多个应用服务器2100_1至2100_n中的每个可具有与第一存储服务器2200_1的结构类似的结构。
136.第一存储服务器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可包括各种类型的存储器装置(诸如,双倍数据速率同步动态随机存取存储器(ddr sdram)、高带宽存储器(hbm)、混合存储器立方体(hmc)、双列直插存储器模块(dimm)、傲腾(optane)dimm和非易失性dimm(nvdimm))中的至少一种。
137.在一个实施例中,可对包括在第一存储服务器2200_1中的处理器2210_1和存储器2220_1的数量进行各种修改。在一个实施例中,包括在第一存储服务器2200_1中的处理器2210_1和存储器2220_1可被包括在处理器-存储器对中,并且可对包括在第一存储服务器2200_1中的处理器-存储器对的数量进行各种修改。在一个实施例中,包括在第一存储服务器2200_1中的处理器2210_1的数量和存储器2220_1的数量可彼此不同。处理器2210_1可包括单核处理器或多核处理器。
138.交换机2230_1可根据处理器2210_1的控制,选择性地将处理器2210_1与存储装置2250_1连接或选择性地将nic 2240_1与存储装置2250_1连接。
139.nic 2240_1可被配置为将第一存储服务器2200_1与网络nt连接。nic2240_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)、嵌入式通用闪存(eufs)和紧凑型闪存(cf)卡接口)中的至少一种。在一个实施例中,nic 2240_1可与处理器2210_1、交换机2230_1和存储装置2250_1中的至少一个集成。
140.存储装置2250_1可在处理器2210_1的控制下存储数据或输出存储的数据。存储装置2250_1可包括控制器(ctrl)2251_1、非易失性存储器(nand)2252_1、dram 2253_1和接口(i/f)2254_1。在一个实施例中,为了安全或隐私,存储装置2250_1还可包括安全元件(se)。存储装置2250_1可包括如参照图1至图9所描述的调度模块(例如,图1的调度模块219)。
141.控制器2251_1可控制存储装置2250_1的整体操作。在一个实施例中,控制器2251_1可包括sram。控制器2251_1可响应于通过接口2254_1接收的信号,将数据存储在非易失性
存储器2252_1中或输出存储在非易失性存储器2252_1中的数据。在一个实施例中,控制器2251_1可被配置为基于切换(toggle)接口或onfi接口来控制非易失性存储器2252_1。
142.dram 2253_1可被配置为临时存储待存储在非易失性存储器2252_1中的数据或从非易失性存储器2252_1读取的数据。dram 2253_1可被配置为存储操作控制器2251_1所需的各种数据(例如,元数据、映射数据等)。接口2254_1可提供处理器2210_1、交换机2230_1或nic 2240_1与控制器2251_1之间的物理连接。在一个实施例中,接口2254_1可以以将存储装置2250_1直接连接到专用线缆的直接附接存储(das)方法来实现。在一个实施例中,第m存储服务器2200_m中的处理器2210_m、dram 2253_m、ctrl2251_m、nand 2252_m、i/f 2254_m和交换机2230_m可与第一存储服务器2200_1中的处理器2210_1、dram 2253_1、ctrl 2251_1、nand 2252_1、i/f 2254_1和交换机2230_1对应。
143.第一存储服务器2200_1的以上描述的配置是示例性的,并且实施例不限于此。第一存储服务器2200_1的配置可被应用于其他存储服务器或多个应用服务器中的每个。在一个实施例中,在多个应用服务器2100_1至2100_n中的每个中,存储装置(例如,2150_1)可选择性地被省略。
144.多个应用服务器2100_1至2100_n和多个存储服务器2200_1至2200_m可通过网络nt彼此通信。例如,多个应用服务器2100_1至2100_n和多个存储服务器2200_1至2200_m可经由nic 2140_1至2140_n和nic 2240_1至2240_m通过网络nt彼此通信。网络nt可使用光纤信道(fc)或以太网来实现。在这种情况下,fc是用于相对高速数据传输的介质,并且可使用提供高性能/高可用性的光交换机。存储服务器2200_1至2200_m可根据网络nt的访问方案被设置为文件存储设备、块存储设备或对象存储设备。
145.在一个实施例中,网络nt可以是存储专用网络(诸如,存储区域网络(san))。例如,san可以是使用fc网络并根据fc协议(fcp)实现的fc-san。或者,san可以是使用tcp/ip网络的ip-san并根据通过tcp/ip的scsi或互联网scsi(iscsi)协议来实现。在一个实施例中,网络nt可以是通用网络(诸如,tcp/ip网络)。例如,网络nt可根据协议(诸如,通过太网的fc(fcoe)、网络附接存储(nas)和nvme-of(通过网络的nvme))来实现。
146.在一个实施例中,多个应用服务器2100_1至2100_n中的至少一个可被配置为通过网络nt访问多个应用服务器2100_1至2100_n中的至少另一个或多个存储服务器2200_1至2200_m中的至少一个。
147.例如,第一应用服务器2100_1可通过网络nt将由用户或客户端请求的数据存储在多个存储服务器2200_1至2200_m中的至少一个中。可选地,第一应用服务器2100_1可通过网络nt从多个存储服务器2200_1至2200_m中的至少一个获取由用户或客户端请求的数据。在这种情况下,第一应用服务器2100_1可被实现为网络(web)服务器或数据库管理系统(dbms)。
148.在实施例中,第一应用服务器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的存储装置2250_1至2250_m被移动到存储服务器2200_1至2200_m的存储器2220_1至2220_m,或者可被直接移动到应用服务器2100_1至2100_n的存储器2120_1至2120_n。为了安全或隐私,通过网络nt传送的数据可以是加密的数据。在实施例中,第n应用服务器2100_n中的处理器2110_n可与第一应用服务器2100_1中的处理器2110_1对应,并且应用服务器2100_1至2100_n可包括交换机2130_1至2130_n。
149.在实施例中,存储装置2150_1至2150_n和2250_1至2250_m可包括参照图1至图9描述的调度模块(例如,图1的调度模块219)。
150.本领域技术人员将理解,在实质上不脱离本公开的原理的情况下,可对以上讨论的实施例进行许多变化和修改。因此,以上讨论的实施例仅以一般性和描述性的意义被使用,而不出于限制的目的。

技术特征:
1.一种存储控制器,包括:处理器,被配置为基于从主机接收的命令执行多个任务;以及调度模块,被配置为通过强化学习调度所述多个任务,并且将调度结果提供给处理器,其中,调度模块包括:资源分析模块,被配置为分析用于所述多个任务的资源的使用历史和使用状态;访问模式分析模块,被配置为分析与所述多个任务对应的访问模式;队列分析模块,被配置为根据从主机提供的命令分析包括在队列中的信息;以及性能分析模块,被配置为分析处理器的任务执行结果,其中,调度模块还被配置为使用状态信息和奖励信息执行强化学习,并且其中,状态信息和奖励信息基于执行所述多个任务的执行而被确定。2.根据权利要求1所述的存储控制器,其中,调度模块还被配置为:使用所述使用历史和所述使用状态、所述访问模式和包括在队列中的信息作为状态信息,使用任务执行结果作为奖励信息来执行强化学习,并且通过基于强化学习确定所述多个任务的优先级来生成调度结果。3.根据权利要求1所述的存储控制器,其中,在第一模式下,处理器还被配置为根据从调度模块接收的调度结果来执行所述多个任务。4.根据权利要求3所述的存储控制器,其中,在第二模式下,处理器还被配置为在不遵循从调度模块接收的调度结果的情况下,根据预定规则执行所述多个任务。5.根据权利要求4所述的存储控制器,其中,处理器还被配置为从第一模式和第二模式之中进行选择。6.根据权利要求1所述的存储控制器,其中,调度模块还被配置为根据预定周期执行强化学习。7.根据权利要求1所述的存储控制器,其中,调度模块还被配置为执行强化学习,并且基于处理器的请求将调度结果提供给处理器。8.根据权利要求1所述的存储控制器,其中,调度模块还包括:编码模块,被配置为将状态信息和奖励信息转换为适合于强化学习的转换信息。9.根据权利要求1所述的存储控制器,还包括:专用存储器,被配置为存储由调度模块生成的调度结果、状态信息和奖励信息。10.根据权利要求1所述的存储控制器,其中,调度模块还包括:机器学习模块,被配置为执行强化学习并生成调度结果。11.一种存储装置,包括:非易失性存储器;以及存储控制器,被配置为基于从所述存储装置的外部接收的命令执行与非易失性存储器对应的多个任务,其中,存储控制器包括:机器学习模块,被配置为通过基于状态信息和奖励信息执行强化学习来生成所述多个任务的优先级被确定的调度结果,其中,状态信息和奖励信息通过执行所述多个任务而被确定;
资源分析模块,被配置为分析用于所述多个任务的资源的使用历史和使用状态;访问模式分析模块,被配置为分析与所述多个任务对应的访问模式;以及队列分析模块,被配置为根据所述命令分析包括在队列中的信息,并且其中,所述使用历史、所述使用状态、所述访问模式和包括在队列中的信息作为状态信息被提供给机器学习模块。12.根据权利要求11所述的存储装置,其中,基于所述存储装置在第一模式下进行操作,存储控制器还被配置为根据调度结果执行所述多个任务,并且基于所述存储装置在第二模式下进行操作,存储控制器还被配置为在不遵循调度结果的情况下,根据预定规则执行所述多个任务。13.根据权利要求11所述的存储装置,其中,基于所述存储装置在第一模式下进行操作,存储控制器还被配置为通过基于所述命令执行强化学习来生成调度结果,并且基于所述存储装置在第四模式下进行操作,存储控制器还被配置为根据预定周期执行强化学习。14.根据权利要求11所述的存储装置,其中,存储控制器还包括:编码模块,被配置为将所述使用历史、所述使用状态、所述访问模式和包括在队列中的信息编码为适合于由机器学习模块进行的强化学习的编码信息。15.根据权利要求11所述的存储装置,其中,存储控制器还包括:性能分析模块,被配置为:分析存储控制器的任务执行结果,并且将任务执行结果作为奖励信息提供给机器学习模块。16.根据权利要求15所述的存储装置,其中,任务执行结果包括以时间单位测量的存储控制器的吞吐量、任务的延迟和与所述命令对应的服务质量之中的至少一个。17.一种存储装置,包括:非易失性存储器;以及存储控制器,被配置为基于从存储控制器的外部接收的命令执行与非易失性存储器对应的多个任务,其中,存储控制器被配置为:获得状态信息,状态信息包括用于所述多个任务的资源的使用历史和使用状态、针对所述多个任务执行的访问模式和包括在与所述命令对应的队列中的信息,使用状态信息和奖励信息执行强化学习,奖励信息包括与所述多个任务对应的执行结果,并且通过根据强化学习的结果确定所述多个任务的优先级来执行调度。18.根据权利要求17所述的存储装置,其中,所述资源包括非易失性存储器和包括在存储控制器中的多个模块。19.根据权利要求17所述的存储装置,其中,存储控制器还被配置为根据预定周期执行强化学习。20.根据权利要求17所述的存储装置,其中,存储控制器包括:编码模块,被配置为将所述使用历史、所述使用状态、所述访问模式、包括在队列中的信息和执行结果转换为适合于强化学习的编码信息。

技术总结
提供一种存储控制器和存储装置。所述存储控制器包括:处理器,被配置为执行多个任务;以及调度模块,被配置为通过强化学习调度所述多个任务,并且将调度结果提供给处理器,其中,调度模块包括:资源分析模块,被配置为分析资源的使用历史和使用状态;访问模式分析模块,被配置为分析访问模式;队列分析模块,被配置为分析包括在队列中的信息;以及性能分析模块,被配置为分析任务执行结果,其中,调度模块还被配置为使用状态信息和奖励信息执行强化学习,并且其中,状态信息和奖励信息基于执行所述多个任务的执行而被确定。述多个任务的执行而被确定。述多个任务的执行而被确定。


技术研发人员:金灿河 李汉奎 南庚旻 张昇龙
受保护的技术使用者:三星电子株式会社
技术研发日:2022.12.29
技术公布日:2023/7/11
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐