首页 / 专利库 / 信号处理 / 加窗 / 处理序列输入/输出串流的方法及装置

处理序列输入/输出串流的方法及装置

阅读:0发布:2023-05-31

专利汇可以提供处理序列输入/输出串流的方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 提供一种可以有效地处理序列的输入/输出 请求 并行串流的方法。当接收到输入/输出串流时,则确认输入/输出请求是否对应于有效串流。如果输入/输出请求对应于有效串流,则针对与有效串流对应的有效表的目前的有效表入口进行更新。如果输入/输出请求没有对应于有效串流,则将非有效表的非有效表入口转变为新的有效表入口。非有效表存储有可利用但未经配置的资源,而有效表存储有经过配置的资源。有效表头端对应于最近最常使用的有效表入口,而有效表尾端对应于最近最少使用的有效表入口。,下面是处理序列输入/输出串流的方法及装置专利的具体信息内容。

1.一种有效处理存储控制器之序列输入/输出请求的多个并行串流的方法,以便反应存储控制器接收到来自于主机电脑的主机输入/输出请求的情形,该方法包括:
通过该存储控制器,判断该主机输入/输出请求是否对应于一有效串流;
如果该主机输入/输出请求对应于该有效串流时,接着通过该存储控制器对于一有效表中的目前的有效表入口进行更新,其中该有效表对应于一有效串流;
如果该主机输入/输出请求没有对应于该有效串流,接着:通过该存储控制器,将一非有效表中的一非有效表入口转变为该有效表中的一个新的有效表入口;以及通过该存储控制器,配置该新的有效表入口,其中该非有效表存储有可用但未配置的数个存储控制器记忆体资源,其中,该有效表存储有已配置的存储控制器记忆体资源,该有效表包含有一有效表头端以及一相对的有效表尾端,该有效表头端对应于一个最近最常使用的有效表入口,而该有效表尾端对应于一个最近最少使用的有效表入口。
2.如权利要求1所述的方法,其中,判断该主机输入/输出请求是否对应于该有效串流的步骤更包含:
通过该存储控制器,判断该有效表是否是空的;
如果该有效表是空的,则该主机输入/输出请求没有对应于于该有效串流;以及如果该有效表不是空的,则通过该存储控制器,从该有效表头端开始检索该些有效表入口;
确认是否有一个有效表入口位于一串流视窗的范围内,其中该串流视窗对应于该有效表;
如果有一个有效表入口位于该串流视窗的范围内,则该主机输入/输出请求对应于该有效串流;
如果没有一个有效表入口位于该串流视窗的范围内,则该主机输入/输出请求没有对应于该有效串流;以及
在没有确认是否有主动表位于该串流视窗的范围内的情况下,重复地进行检索与确认,直到确认有一个有效表入口位于该串流视窗的范围内或者检索完整个有效表为止;
其中该串流视窗包含一逻辑区地址范围,该逻辑区块地址范围介于一串流视窗逻辑区块地址上限以及一串流视窗逻辑区块地址下限之间。
3.如权利要求2所述的方法,其中,对于与该有效串流相对应的该有效表的该目前的有效表入口进行更新的步骤更包含:
通过该存储控制器,从该有效表移除该目前的有效表入口;通过该存储控制器,更新一个与该有效表入口相对应的串流时间上次选中,其中该串流时间上次选中包含一时间标记,该时间标记确认何时该存储控制器接收到该主机输入/输出请求;通过该存储控制器,调整一个与该目前的有效表入口相对应的移动视窗,该移动视窗用以确认该串流视窗逻辑区块地址上限以及该串流视窗逻辑区块地址下限是否需要改变;以及
通过该存储控制器,将该目前的有效表入口放置于该有效表头端。
4.如权利要求3所述的方法,其中,该移动视窗包含一逻辑区块地址范围,该逻辑区块地址范围介于一移动视窗逻辑区块地址上限与一移动视窗逻辑区块地址下限之间,如果该主机输入/输出请求的开启逻辑区块地址位于该移动视窗之外,该方法更包含:
如果该主机输入/输出请求的开启逻辑区块地址直接接续于先前的主机输入/输出请求,通过该存储控制器,使用一序列串流视窗修改量来调整该移动视窗逻辑区块地址上限以及该移动视窗逻辑区块地址下限;以及
如果该主机输入/输出请求的开启逻辑区块地址没有直接接续于先前的主机输入/输出请求,通过该存储控制器,使用一半序列串流视窗修改量来调整该移动视窗逻辑区块地址上限以及该移动视窗逻辑区块地址下限。
5.如权利要求3所述的方法,其中,将该非有效表的该非有效表入口转变为该有效表的新的有效表入口的步骤更包含:通过该存储控制器判断是否该非有效表是空的;
如果该非有效表是空的,则通过该存储控制器从该有效表中的一个或数个旧有串流回收至该非有效表再利用;以及如果该非有效表不是空的,则通过该存储控制器从该非有效表中移除一个非有效表入口。
6.如权利要求5所述的方法,其中,从该有效表中回收一个或数个旧有串流至该非有效表再利用的步骤更包含:
通过该存储控制器,从该有效表尾端开始检索该些有效表入口;以及
通过该存储控制器,判断是否一目前时间与该串流时间上次选中的差异小于一个被检索的目前的有效表的串流回收利用时间;如果该目前时间与该串流时间上次选中的差异没有小于该串流回收利用时间,接着:
如果有更多有效表入口位于该有效表中,则通过该存储控制器,从该有效表尾端选择下一个最近的有效表入口;以及重复地确认是否该目前时间与该串流时间上次选中的差异小于该串流回收利用时间;
如果该目前时间与该串流时间上次选中之差异小于该串流回收利用时间,接着通过该存储控制器,从该有效表中移除该目前的有效表入口;
为了使该目前的有效表入口为0,通过该存储控制器对于该时间上次选中以及该串流视窗进行初始化;以及
通过该存储控制器,将该目前的有效表入口放置于该非有效表。
7.如权利要求6所述的方法,更包括:
通过该存储控制器,维持每一有效表入口中逾期的输入/输出的计数值;以及对于每个有效表入口:
当该存储控制器接收到对应于该有效表入口的主机输入/输出请求时,通过该存储控制器增加与该有效表入口相对应的逾期的输入/输出的计数值;
通过该存储控制器减少与该有效表入口对应的逾期的输入/输出计数值,以便回应与该有效表入口相对应的主机输入/输出请求;
当该逾期的输入/输出计数值从1转变为0时,通过该存储控制器,开启与该有效表入口相对应的一丛发计时器;以及
当该逾期的输入/输出计数值从0转变为1时,通过该存储控制器,停止该丛发计时器;
为了回应停该丛发计时器:
将该丛发计时器的值存储于一上次丛发序列位置后的时间,其中该上次丛发序列位置后的时间经由一上次丛发指标后的时间来确认;以及
增加该上次丛发指标后的时间来确认下一个上次丛发序列位置后的时间,该存储控制器维持一上次丛发序列后的时间以及每个有效表入口中的上次丛发指标后的时间,其中该上次丛发序列后的时间为具有预定数目位置的循环序列。
8.如权利要求7所述的方法,更包括:
通过该存储控制器,判断该上次丛发序列后的时间何时被填满,如果每个预定数目的位置包含上次丛发入口后的非零时间,则该上次丛发序列后的时间为填满;
如果该上次丛发序列后的时间为填满时,通过该存储控制器,依据该上次丛发序列位置后的时间的平均值来计算该串流回收利用时间;以及
通过该存储控制器,将该串流回收利用时间,存储于一个存储控制器记忆体位置。
9.如权利要求8所述的方法,其中,该串流回收利用时间为一加权平均值,该加权平均值包含较大的权重值以及较小的权重值,其中该较大权重值提供给较多的上次丛发后的目前时间,该较小的权重值提供给较少的上次丛发后的目前时间。
10.一种有效地处理序列输入/输出请求的并行串流的存储控制器,包括:
一处理器;以及
一记忆体,耦接于该处理器,该记忆体包含:
一有效表,该有效表存储有经过配置的存储控制器记忆体资源,该有效表包含:
一有效表头端,对应于最近最常使用的有效表入口;以及
一有效表尾端,对应于最近最少使用的有效表入口;以及
一非有效表,该非有效表存储有可以使用但尚未经过配置的记忆体资源;
为了回应于接收来自一主机电脑的主机输入/输出请求的存储控制器,该存储控制器判断是否该主机输入/输出请求相对应于一有效串流;
如果该主机输入/输出请求相对应于该有效串流,则该存储控制器对于该有效表的一个目前的有效表入口进行更新,其中该有效表对应于该有效串流;
如果该主机输入/输出请求没有对应于该有效串流时,该存储控制器将该非有效表的一个非有效表入口转变为该有效表中的一个新的有效表入口,并且配置该新的有效表入口。
11.如权利要求10所述的存储控制器,其中,该存储控制器判断是否该主机输入/输出请求对应于该有效串流,该存储控制器判断该有效表是否是空的,如果该有效表是空的,则该主机输入/输出请求没有对应于该有效串流,如果该有效表不是空的,该存储控制器从该有效表头端开始检索该些有效表入口,并且确认是否有一个有效表入口位于一串流视窗的范围内,其中该串流视窗对应于该有效表,如果该有效表入口位于该串流视窗的范围内,则该主机输入/输出请求对应于该有效串流,如果该有效表入口没有位于该串流视窗的范围内,则该主机输入/输出请求没有对应于该有效串流,在没有确认是否有主动表位于该串流视窗的范围内的情况下,该存储控制器重复地进行检索与确认,直到确认有一个有效表入口位于该串流视窗的范围内或者检索完整个有效表为止。
12.如权利要求11所述的存储控制器,其中,该存储控制器更新与该有效串流对应的该有效表的一个目前的有效表入口,该存储控制器从该有效表中移除该目前的有效表入口,而且更新与该目前的有效表入口相对应的一个串流时间上次选中,该串流时间上次选中包含一时间标记,该时间标记确认何时该存储控制器接收到该主机输入/输出请求,该存储控制器调整一移动视窗,该移动视窗相对应于该目前的有效表入口,该移动视窗用来确认是否该串流视窗逻辑区块地址上限以及该串流视窗逻辑区块地址下限需要改变,该存储控制器将该目前的有效表入口放置于该有效表头端。
13.如权利要求12所述的存储控制器,其中,该移动视窗包含一逻辑区块地址范围,该逻辑区块地址范围介于一移动视窗逻辑区块地址上限以及一移动视窗逻辑区块地址下限,如果在该主机输入/输出请求的开启逻辑区块地址位位于该移动视窗之外的条件下,如果该开启逻辑区块地址直接续接于先前的主机输入/输出请求,则该存储控制器使用一序列串流视窗修改量来调整该移动视窗逻辑区块地址上限以及该移动视窗逻辑区块地址下限,如果在该主机输入/输出请求的开启逻辑区块地址位于该移动视窗之外的条件下,该开启逻辑区块地址位没有直接续接于先前的主机输入/输出请求,则使用半序列串流视窗修改量来调整该移动视窗逻辑区块上限以及该移动视窗逻辑区块下限。
14.如权利要求12所述的存储控制器,其中,该存储控制器将该非有效表的非有效表入口转换为该有效表的新的有效表入口,该存储控制器判断该非有效表是否为空的,如果该非有效表是空的,则该存储控制器从该有效表将一个或多个旧有串流回收利用于该非有效表,如果该非有效表不是空的,则该存储控制器从该非有效表中移除一个非有效表入口。
15.如权利要求14所述的存储控制器,其中,该存储控制器从该有效表中,将一个或数个旧有串流回收利用于该非有效表,该存储控制器从该有效表尾端开始检索该些有效表入口并且确认一目前时间与该串流时间上次选中之间的差异是否少于一被检索的目前有效表入口中的一串流回收利用时间,如果该目前时间与该串流时间上次选中之间的差异没有少于该串流回收利用时间,则该存储控制器从该有效表尾端选择下一个最近的有效表入口,如果该有效表内有更多有效表入口,则重复确认该目前时间与该串流时间上次选中的差异是否少于该串流回收利用时间,如果该目前时间与该串流时间上次选中之差异少于该串流回收利用时间,则该存储控制器从该有效表移除该目前有效表入口,对于该目前有效表入口中的串流时间上次选中以及该串流视窗初始化为零,以及将该目前有效表入口放置于该非有效表。
16.如权利要求15所述的存储控制器,其中,该存储控制器维持每个有效表入口中的一个逾期输入/输出计数,以及当该存储控制器接收到与该有效表入口相对应的主机输入/输出请求时,增加每个有效表入口中与该有效表入口相对应的逾期输入/输出计数,为了回应一主机输入/输出请求对应于完成的有效表入口,减少与该有效表入口对应的逾期输入/输出计数,当该逾期输入/输出计数从1转变为0时,启动与该有效表入口对应的一丛发的计时器,以及当逾期输入/输出计数从0转变为1时,则停止该丛发的计时器,为了回应于停止该丛发的计时器,该存储控制器将该丛发的计时器的值存储于由一上次丛发序列位置后的目前时间,其中该上次丛发序列位置后的目前时间经由一上次丛发指标后的时间来确认,以及增加该上次丛发指标后的时间来确认下一个上次丛发序列位置后的时间,其中该存储控制器维持每个有效表入口中的上次丛发序列后的时间以及上次丛发指标后的时间,该上次丛发序列后的时间为具有预定数目位置的循环序列。
17.如权利要求16所述的存储控制器,其中,该存储控制器确认何时上次丛发序列后的时间被填满,如果每个预定数目位置包含非零的上次丛发入口后的时间,则上次丛发序列后的时间被填满,如果该上次丛发序列后的时间被填满时,该存储控制器依据该上次丛发序列位置后的时间的平均值来计算该串流回收利用时间,并且将该串流回收利用时间存储于一存储控制器记忆体位置。
18.如权利要求17所述的存储控制器,其中,该串流回收利用时间为一加权平均值,其中较大的权重值提供给该些上次丛发后的时间之中较大者,至于较小的权重值提供给该些上次丛发后的时间之中较小者。
19.一种有效地处理序列输入/输出请求的并行串流的系统,包括:
一主机电脑;
一存储控制器,耦接于该主机电脑,该主机电脑包含:
一处理器;以及
一记忆体,耦接于该处理器,该记忆体包含:
数个有效表入口,每个有效表入口相对应于主机输入/输出请求中不同的序列输入/输出串流中的经过配置的记忆体资源,每个有效表入口包含:
一串流时间上次选中,该串流时间上次选中为针对一序列输入/输出串流的上次接收到的主机输入/输出请求的时间标记;以及
数个非有效表入口,每个非有效表入口对应于新的序列输入/输出串流中的可使用的记忆体资源;
一个或数个存储装置,耦接于该存储控制器,回应于该接收到来自该主机电脑的主机输入/输出请求的存储控制器,以及确认该主机输入/输出请求没有对应于该有效表中的一序列输入/输出串流,以及该非有效表中没有非有效表入口,该存储控制器将一个目前的有效表入口转变为一个新的有效表入口,该新的有效表入口对应于已接收到的主机输入/输出请求。
20.如权利要求19所述的系统,其中,当目前时间与该串流时间上次选中的差异小于一串流回收利用时间之时该存储控制器确认至少一个有效表入口,该存储控制器,依据属于与该有效表入口对应的该序列输入/输出串流中的预定数目的串流时间上次选中的历史的加权平均值,来计算该串流回收利用时间,该存储控制器将至少一经过确认的有效表入口转变为至少一新的有效表入口。

说明书全文

处理序列输入/输出串流的方法及装置

技术领域

[0001] 本发明有关于存储电脑数据的装置及方法,尤指一种处理序列输入/输出串流的装置及方法。

背景技术

[0002] 存储数字档案、数字文件、数字图片、数字影像及其他数字数据的需求持续地快速增加。连接于数据的电子存储,包含有一个或多个的数据存储控制器的系统已经设计出来。存储控制器接收来自于主机电脑的数据读取请求以及数据写入请求,并且控制一个或多个有形的存储装置,以便有利于存储来自主机电脑的请求数据或者提供请求数据至主机电脑。
[0003] 存储控制器通常会缓冲读取数据请求与写入数据请求,经常将主机数据读取请求以及主机数据写入请求转变为容错式磁盘阵列、存储装置读取请求、或存储装置写入请求。许多的存储控制器将读取数据以及写入数据存储于数个快取记忆体,该些快取记忆体包含一部分的存储控制器。快取记忆体的体积相较于外部存储装置(例如硬盘)较小,而且通常数量级较快。然而,快取记忆体每一位元组的成本明显地大于存储装置,因此快取记忆体的存储空间相对应的较小,以便降低成本。目前有需要一种快取记忆体,其可以有效率的运作,以便所有连接于主机电脑的存储控制器的效能能够最大化。
[0004] 主机电脑通过提供随机或序列的输入/输出请求来与数据存储系统相互作用。关于序列的输入/输出串流请求,希望存储控制器尽可能处理许多序列的输入/输出串流,以使得效能最大化。序列的输入/输出串流包含连续输入/输出请求的序列,而该序列针对相同的存储装置、逻辑区域或虚拟磁盘。当相同的序列的输入/输出串流可为读取请求,其他序列的输入/输出串流可为写入请求。

发明内容

[0005] 本发明解决现有技术的缺点。在本发明的实施例中,提供一种于存储控制器中有效处理序列输入/输出串流的方法。当存储控制器接收来自主机电脑的主机输入/输出请求时,则通过存储控制器判断主机输入/输出请求是否与有效串流相符。如果主机输入/输出请求与有效串流相符,则通过存储控制器对于与有效串流相符的有效表的现存的有效表入口进行更新。如果主机输入/输出请求与有效串流不相符,则通过存储控制器将非有效表的非有效表入口转变为有效表的新的有效表入口。非有效表存储可用但未配置的存储控制器记忆体资源,而有效表存储配置存储控制器记忆体资源。有效表的相对两端包含有有效表头以及有效表尾。有效表头与最近使用最多的有效表入口相符,而有效表尾与最近使用最少的有效表入口相符。
[0006] 在本发明的其他实施例中,提供一种存储控制器,使得电脑可以有效率处理序列输入/输出串流。该存储控制器包含一处理器以及一记忆体,而记忆体与处理器耦接。记忆体包含一有效表,该有效表存储配置的存储控制器记忆体资源。有效表的相对两端分别包含一有效表头以及一有效表尾,而有效表头与最近使用最多的有效表入口相符。有效表尾与最近最少使用的有效表入口相符。记忆体也包含一非有效表,非有效表存储可用但不配置的记忆体资源。当存储控制器接收来自主机电脑的主机输入/输出请求,存储控制器判断主机输入/输出请求是否与有效串流相符。如果主机输入/输出串流与有效串流相符,存储控制器对于与有效串流相符的有效表的现存的有效表入口进行更新。如果主机输入/输出请求与有效串流不相符,存储控制器将非有效表的非有效表入口转变为有效表的新的有效表入口,而且架构新的有效表入口。
[0007] 在本发明的其他实施例中,提供一种可有效处理序列输入/输出请求的系统。该系统包含一主机电脑、一耦接于主机电脑的存储控制器、以及一个或多个耦接于存储控制器的存储装置。存储控制器包含一处理器以及一耦接于处理器的记忆体。该记忆体包含数个有效表入口,对于主机输入/输出请求的不相同的序列输入/输出串流,每个有效表入口与配置的记忆体资源相符。每个有效表入口包含一时间上次选中(time last hit),时间上次选中为针对于序列输入/输出串流的最近接收的主机输入/输出请求的时间标记。记忆体也包含数个非有效表入口,为了新的序列输入/输出串流,每个非有效表入口与可用记忆体资源相符。当存储控制器接收来自主机电脑的主机输入/输出请求,判断出主机输入/输出请求不相符于有效表中的序列输入/输出串流,以及非有效表中没有非有效表入口之时,存储控制器将现存的有效表入口转变为一个新的有效表入口。该新的有效表入口与接收的主机输入/输出请求相符。
[0008] 本发明的优点在于:针对序列输入/输出读取以及写入串流,有效率地使用存储控制器记忆体资源。在任何已知时序,所有的存储控制器具有一定量的机上记忆体资源。本发明将有限的记忆体资源配置于序列输入/输出串流,使得资源的使用效率达到极致。
[0009] 本发明的另一优点在于:利用限量的历史数据来管理进行中的序列输入/输出串流。因此,小的记忆空间被配置于串流追踪大数据(stream tracking metadata),意指有更多可用的空间作其他使用,包含存储读取与写入快取数据。
[0010] 本发明的实施例的附加特征与优点明显地揭露于说明书,特别是可与附图共同参酌。

附图说明

[0011] 图1a绘示本发明第一实施例的非主机为基础型的数据存储系统的方图;
[0012] 图1b绘示本发明第二实施例的非主机为基础型的数据存储系统的方块图;
[0013] 图1c绘示本发明第三实施例的非主机为基础型的数据存储系统的方块图;
[0014] 图2a绘示本发明第一实施例的主机为基础型的数据存储系统的方块图;
[0015] 图2b绘示本发明第二实施例的主机为基础型的数据存储系统的方块图;
[0016] 图2c绘示本发明第三实施例的主机为基础型的数据存储系统的方块图;
[0017] 图3绘示本发明一实施例的数据存储系统的方块图;
[0018] 图4绘示本发明一实施例的主机数据串流的方块图;
[0019] 图5绘示本发明第一实施例的主机数据串流的示意图;
[0020] 图6a绘示本发明第二实施例的主机数据串流的示意图;
[0021] 图6b绘示本发明一实施例的丛发参数的示意图;
[0022] 图7绘示本发明一实施例的每个丛发中未处理输入/输出的示意图;
[0023] 图8绘示本发明一实施例的逻辑区域、虚拟磁盘与存储装置大数据的示意图;
[0024] 图9a绘示本发明一实施例的存储于数据串流大数据记忆体内的有效表与非有效表的示意图;
[0025] 图9b绘示本发明一实施例的存储于有效表入口的串流大数据的示意图;
[0026] 图10绘示本发明一实施例的指令完成步骤的流程图
[0027] 图11绘示本发明一实施例的新的输入/输出请求更新步骤的流程图;
[0028] 图12绘示本发明一实施例的指令完成步骤的流程图;
[0029] 图13绘示本发明一实施例的输入/输出请求更新步骤的流程图;
[0030] 图14绘示本发明一实施例的串流群集处理的流程图;
[0031] 图15a绘示本发明第一实施例的单一旧串流再利用步骤的流程图;
[0032] 图15b绘示本发明第二实施例的预定数目旧串流再利用步骤的流程图;
[0033] 图15c绘示本发明第三实施例的所有旧串流再利用步骤的流程图;
[0034] 图16绘示本发明一实施例的有效串流架构步骤的流程图;以及
[0035] 图17绘示本发明一实施例的移动视窗调整步骤的流程图。
[0036] 其中,附图标记说明如下:
[0037] 100数据存储系统104主机电脑
[0038] 108存储控制器108a冗余存储控制器
[0039] 108b冗余存储控制器112主机汇流排
[0040] 116a-116n存储装置120存储装置汇流排
[0041] 124存储子系统128数据存储系统
[0042] 132存储子系统136数据存储系统
[0043] 140内部控制器通讯链路
[0044] 200数据存储系统204数据存储系统
[0045] 208数据存储系统
[0046] 300数据存储系统308、308a、308b主机数据串流
[0047] 312中央处理器316记忆体
[0048] 324读取数据快取记忆体328写入数据快取记忆体
[0049] 320数据串流大数据332主机输入/输出请求
[0050] 340计时器
[0051] 404主机丛发0  412主机丛发1
[0052] 420主机丛发2  428主机丛发3
[0053] 440输入/输出长度444输入/输出地址
[0054] 504、504a-504c、504g-504j、504n-504q主机输入/输出请求
[0055] 504d、504e、504f、504k、504l、504m非序列主机输入/输出请求
[0056] 508串流视窗512移动视窗
[0057] 516输入/输出空间520逻辑区块地址范围
[0058] 524开启逻辑区块地址528指定时间
[0059] 532结束逻辑区块地址
[0060] 608丛发尺寸612时差
[0061] 616丛发616a丛发0
[0062] 616b丛发1  616c丛发2
[0063] 616d丛发3  616e丛发4
[0064] 616f丛发5  620丛发长度
[0065] 624上次丛发后的时间
[0066] 704逾期输入/输出708指令完成
[0067] 712停止计时器720存储停止时间标记
[0068] 804a-804e逻辑区域808a-808e大数据集合
[0069] 904非有效表904a-904j串流资源
[0070] 908有效表912a-912j有效串流
[0071] 924串流时间上次选中928串流视窗逻辑区块地址上限
[0072] 932串流视窗逻辑区块地址下限
[0073] 936移动视窗逻辑区块地址上限
[0074] 940移动视窗逻辑区块地址下限
[0075] 944串流回收利用时间
[0076] 948上次丛发序列后的时间
[0077] 948a-948j上次丛发后的时间
[0078] 952上次丛发指标后的目前时间
[0079] 960串流逾期输入/输出
[0080] 964a丛发开始时间
[0081] 964b丛发停止时间

具体实施方式

[0082] 针对主机电脑序列读取请求与写入请求,本发明提出一种存储控制器的序列输入/输出串流的资源配置的改良方法。为了达成通过限制主机板上记忆体资源的数量,来降低存储控制器的成本之目的,需要改良序列输入/输出的处理效率。
[0083] 改良序列输入/输出效能的一种简单方法,就是尽可能地增加存储控制器记忆体的数量,以便对于目前所有有效的输入/输出串流进行追踪以及提供快取记忆体配置。然而,这样通常会使得存储控制器记忆体的内部,装满了一些主机电脑不曾请求或很晚请求的很少取用的数据或没有价值的数据。此外,系统内的存储控制器与复数个主机电脑相耦合,将快取记忆体内装满指定主机电脑之大量的数据,会妨碍其他的主机电脑来使用此存储控制器记忆体内的资源,严重地限制其他主机电脑的读取及/或写入效能。
[0084] 每个主机电脑通过执行应用程序或其他程序来发出读取数据请求与写入数据请求。在大部分的情况下,不相同的主机电脑所执行的应用程序也不相同。因此,每个主机电脑发出不同的序列读取请求集或写入请求集(即为已知的主机串流)。已知的主机电脑可发出复数个主机串流。
[0085] 对于提供相对稳定读取请求串流的主机电脑而言,静态的读取快取记忆体之大小是可以胜任的,但对于发出读取请求丛发(burst)至存储控制器的主机电脑而言,却不是这么一回事。丛发为来自相同主机电脑的序列主机读取请求的连序群组。主机读取请求丛发创造了高的初始序列深度(queue depth)。如果主机读取请求丛发增加至大于读取快取的静态先行读取空间,则主机串流终究会追上预先读取,而快取失误将随着每个丛发发生,因此降低了读取效能。
[0086] 存储控制器有需要对于所有的主机串流维持重要统计数字的追踪,并且配置限量的记忆体资源至最有效的序列输入/输出串流。非有效串流,或较少利用的串流,或较旧的串流会被回收以提供记忆体资源给较新以及较有效的串流。
[0087] 图1a绘示本发明第一实施例的非主机为基础型的数据存储系统100的元件方块图。
[0088] 数据存储系统100包含一个或数个主机电脑104。主机电脑104一般为伺服器,但是也可为桌上型电脑或行动型电脑。主机电脑104执行应用程序而产生读取请求以及写入请求,通过主机汇流排112(或网络)将读取请求以及写入请求传送至存储控制器108。在本实施例中,主机汇流排(或网络)112可为SCSI,FC-AL,USB,Firewire,SSA,SAS,SATA,或高速汇流排(Infiniband)。在其他实施例中,主机汇流排(或网络)112可为Ethernet,iSCSI,Fiber Channel,SSA,ESCON,ATM,FICON,NVMe,或高速汇流排(Infiniband)。
[0089] 主机电脑104可与多个存储控制器108相连接,为了清楚起见,附图中仅显示出一个存储控制器108。在本实施例中,存储控制器108为磁盘阵列(RAID)控制器。在其他实施例中,存储控制器108为存储装置,例如调度、虚拟化、复制或备份装置。存储控制器108通过存储装置汇流排120将数据至存储子系统124内的两个存储装置116a、116b,或者通过存储装置汇流排120接收来自两个存储装置116a、116b的数据。存储装置汇流排120可为任何合适的存储汇流排或汇流排组,其包含但不仅限于SCSI,Fiber Channel,SAS,SATA,or SSA,以便于存储控制器108与存储装置116之间直接传送数据。
[0090] 在本实施例中,存储子系统124包含十二个存储装置116。在其他实施例中,存储子系统124可包含少于或多于十二个存储装置116。存储装置116包含多种类的存储装置,其包含硬盘驱动器、固态驱动器、光学驱动器、以及磁带驱动器。在指定的存储装置种类的范围内,有数个存储装置116的子类依据效能进行配置,例如硬盘驱动器依据快取空间、驱动频率(例如5400,7200,10000,以及1500RPM)、序列深度、随机传送率、或序列传送率。
[0091] 图1b绘示本发明第二实施例的非主机为基础型的数据存储系统128的方块图。本实施例的数据存储系统128与第一实施例的数据存储系统100相似,差别在于存储子系统132与存储装置116设于存储控制器108内。如图1b所示,存储控制器108为一个容错式磁盘阵列控制器。然而在其他实施例中,存储控制器108可为多个容错式磁盘阵列控制器。
[0092] 图1c绘示本发明第三实施例的非主机为基础型的数据存储系统136的方块图。本实施例的数据存储系统136与第一及第二实施例的数据存储系统100、128相似,差别在于存储控制器108包含有两个冗余存储控制器108a、108b。在本实施例中,当冗余存储控制器108a、108b其中一个发生失效状况时,由于冗余存储控制器108a、108b利用有效-有效(active-active)失效切换功能,使得存储装置116可被主机104持续地使用。内部控制器通讯链路140为冗余存储控制器108a、108b之间的通讯及数据传递路径,以便反映写入数据以及同步失效切换以及自动恢复的操作。
[0093] 图2a绘示本发明第一实施例的主机为基础型的数据存储系统200的方块图。本实施例的数据存储系统200相似于图1a的数据存储系统100,差别在于存储控制器108设于主机电脑104内。存储控制器108连接主机电脑104的区域汇流排,其包含Rapid IO,PCI,PCI-X,或PCI Express。存储控制器108可整合于主机电脑104的主机板,或者为附加的板体或其他形式与主机电脑104相组接。
[0094] 图2b绘示本发明第二实施例的主机为基础型的数据存储系统204的方块图。数据存储系统204将存储子系统124的功能整合于主机电脑104中。数据存储系统204为高度自给式整合数据系统。
[0095] 图2c绘示本发明第三实施例的主机为基础型的数据存储系统208的方块图。本实施例的数据存储系统208与数据存储系统200相似,但是将存储控制器108改由软件方式取代。主机电脑104与存储装置汇流排120之间通过主机汇流排配接器212来连接,藉此提供适当的数据与命令缓冲功能,就如同协定控制以及低阶错误操作一样。中央处理器216执行记忆体220内的应用程序240以便控制记忆体220与存储子系统124内的存储装置116a、116b之间的数据流通。
[0096] 图3绘示本发明一实施例的数据存储系统300的方块图。数据存储系统300包含一个或多个主机电脑104,而主机电脑104通过汇流排112(或网络)与存储控制器108连接。主机电脑104产生主机串流,而主机串流为主机输入/输出请求332的数个群组。
[0097] 存储控制器108包含一中央处理器312(或处理器),其执行存储于记忆体316内的程序指令,而记忆体316与中央处理器312耦接。中央处理器312包含任何适用于执行存储控制器108的程序的任何处理装置,例如微软x-86相容处理器、嵌入式处理器、行动处理器、且/或RSIC处理器。中央处理312可包含数个装置,其包含现场可编辑逻辑闸阵列(FPGAs)、记忆体控制器、北桥装置、且或南桥装置。
[0098] 记忆体316可为挥发性记忆体、非挥发性记忆体、或挥发性与非挥发性记忆体的组合。记忆体316包含韧体,其包含中央处理器312取得与执行的程序指令。非挥发性记忆体包含但不限制为快闪记忆体、SD、EPROM、EEPROM、硬盘、及NOVRAM。挥发性记忆体存储数个数据结构以及使用者数据。挥发性记忆体包含但不限制为SRAM、DDRRAM、DDR2RAM、DDR3RAM、Z-RAM、TTRAM、A-RAM、ETA RAM、及其他形式的暂存记忆体。
[0099] 记忆体316包含读取数据快取记忆体(read data cache)324。在其他实施例中,记忆体316还可包含一写入数据快取记忆体328,读取数据快取记忆体324以及写入数据快取记忆体328分别改善了对于主机电脑104的读取与写入效能。记忆体316也包含数据串流大数据320。数据串流大数据320存储与主机输入/输出请求332相关的参数,且用于控制序列输入运作。
[0100] 存储控制器108与存储子系统124、132相耦接,存储子系统124、132包含一个或数个存储装置116a-116n。经常取用数据从存储装置116读取并传送至读取数据快取记忆体324,如此一来,对于主机输入/输出请求332的反应,相较于直接从存储装置116读取而言快速许多。写入数据起初存储于写入数据快取记忆体328,其相较于直接写入存储装置116而言快速许多。
[0101] 在其他实施例中,存储控制器108包含数个计时器340。计时器340可为中央处理器312控制的硬件,或者为中央处理器312内执行的软件。计时器340量测各丛发616之时差,其详细内容将随后讨论。计时器340的数量并未受限,在本发明中,只有一个计时器340配置于每个有效串流912a-j,有效串流912a-j对应于逻辑区域、虚拟磁盘或存储装置804。
[0102] 可以理解的,存储控制器108可配置于数种不同的功能组织与架构,前提在不超出本发明附图与说明书的范围。
[0103] 图4绘示本发明一实施例的主机数据串流308的方块图。主机数据串流308包含数个由连续的主机输入/输出请求332所组成的群组,例如丛发或主机丛发。虽然主机数据串流308可包含任何数量的丛发或主机丛发。如图4a所示,包含主机丛发0至主机丛发3(404、412、420、428),而每个主机丛发可包含相同或不同数量的主机输入/输出请求332。主机丛发0(404)包含主机输入/输出请求0至主机输入/输出请求q(408a-408q)。主机丛发1(412)包含主机输入/输出请求0至主机输入/输出请求t(416a-416t)。主机丛发2(420)包含主机输入/输出请求0至主机输入/输出请求w(424a-424w)。主机丛发3(428)包含主机输入/输出请求0至主机输入/输出请求z(432a-432z)。
[0104] 每个主机输入/输出请求332、408、416、424、432包含一输入/输出长度440以及一输入/输出地址444。输入/输出长度440为从存储装置读取或写入存储装置116的区块(或位元)的数量,而输入/输出地址444为主机输入/输出请求332、408、416、424、432的起始地址。
[0105] 图5绘示本发明第一实施例的主机数据串流308a的示意图。主机数据串流308a包含复数个于指定时间528内接收到的主机输入/输出请求332,而该些主机输入/输出请求332分别被视为主机输入/输出请求504。图5绘示序列主机输入/输出请求504a、504b、504c组成的第一丛发、主机输入/输出请求504g、504h、504i、504j组成的第二丛发、主机输入/输出请求504n、504o、504p、504q组成的第三丛发。在接收序列输入/输出请求的三个丛发的期间,存储控制器108可接收非序列主机输入/输出请求504d、504e、504f、504k、504l、504m。
[0106] 每个主机输入/输出请求504具有相关联的输入/输出空间516。简单来说,所有的主机输入/输出请求504具有相同的输入/输出尺寸516。再加上,每个主机输入/输出请求504定址于逻辑区块地址(LBA)520,逻辑区块地址520包含有开启逻辑区块地址524与结束逻辑区块地址532。存储控制器108接收每个主机输入/输出请求504于指定时间528。例如,存储控制器108分别于时间t0,时间t1,时间t2时接收序列主机输入/输出请求0(504a)、主机输入/输出请求1(504b)、主机输入/输出请求2(504c)。
[0107] 存储控制器108判断每个接收到的主机输入/输出请求504是否序列,而更详细的内容可参见附图与随后说明书内容。对于序列的主机输入/输出请求504,存储控制器108建立串流视窗508与移动视窗512,其中移动视窗512的逻辑区块地址520的范围小于串流视窗508的逻辑区块地址520的范围,而且涵盖于串流视窗508的界线内。串流视窗508对于目前的主机数据串流308a建立逻辑区块地址的界线,同时,存储控制器108使用移动视窗512去判断何时移动视窗512与串流视窗508的界线需要改变。如果序列主机输入/输出请求504在串流视窗508的范围内,而且在移动视窗512的范围之外,则移动视窗512与串流视窗508的界线需要改变,其目的在于:对于移动视窗512与串流视窗508的范围内相同的主机数据串流308a维持序列主机输入/输出请求504。
[0108] 起初,存储控制器108基于序列的主机输入/输出请求504a、504b、504c的逻辑区块地址建立移动视窗512a。当主机输入/输出请求504d、504e、504f明确地位于移动视窗512a与串流视窗508a的范围之外时,存储控制器108则指示移动视窗512a与串流视窗508a需改变。接着,存储控制器108使主机输入/输出请求504g、504h、504i、504j成为序列的主机输入/输出请求504,且改变移动视窗512与串流视窗508而让移动视窗512与串流视窗508分别具有移动视窗边界512b以及串流视窗边界508b。主机输入/输出请求504k、504l、504m明确地位于移动视窗512b与串流视窗508b的范围外,则存储控制器108指示移动视窗512与串流视窗508需要改变。接着,存储控制器108使主机输入/输出请求504n、504o、504p、504q成为序列主机输出/输出请求504且改变移动视窗512与串流视窗508而让移动视窗512与串流视窗508分别具有移动视窗边界512c以及串流视窗边界508c。其中,移动视窗512与串流视窗508的追踪为本发明重要的步骤,则详细说明于图10至图17之中。
[0109] 图6a绘示本发明第二实施例的主机数据串流308b的示意图。存储控制器108于指定时间612内接收六个分别有百万位元的丛发尺寸608。如图6a所示,序列的主机输入/输出请求332组成丛发0至丛发5(616a-616f)。
[0110] 上次丛发后的时间624为tlb,丛发0(616a)与丛发1(616b)的时差为tlb0,丛发1(616b)与丛发2(616c)的时差为tlb1,丛发2(616c)与丛发3(616d)的时差为tlb2,丛发3(616d)与丛发4(616e)的时差为tlb3,而丛发4(616e)与丛发5(616f)的时差为tlb4。
[0111] 图6b绘示本发明一实施例的丛发参数的示意图。图6b阐述丛发参数存储于大数据记忆体。
[0112] 每个丛发616都具有一个丛发长度620的参数,丛发0(616a)的丛发长度620为2MB,丛发1(616b)的丛发长度620为1MB,丛发2(616c)的丛发长度620为6MB,丛发3(616d)的丛发长度620为2MB,丛发4(616e)的丛发长度620为1MB,而丛发5(616f)的丛发长度620为2MB。tlb0为200ms,tlb1为30ms,tlb2为60ms,tlb3为120ms,而tlb4为200ms。
[0113] 图7绘示本发明一实施例的每个丛发616的逾期输入/输出的示意图。图7阐述对于主机输入/输出请求332的丛发616的数个参数的实际影响的示意图。为了简化起见,假设对于所有的主机输入/输出请求332的输入/输出长度440为1(例如,1块)。
[0114] 对于丛发616,在接收第一个主机输入/输出请求332之前,逾期输入/输出704为0。当存储控制器108接收到第一个主机输入/输出请求332时,逾期输入/输出704改变为1。针对第一个接收的主机输入/输出请求332的尺寸,可执行停止计时器712的步骤或执行存储停止时间标记720之步骤。
[0115] 存储控制器108调整逾期输入/输出704以作为更多接收到的主机输入/输出请求332。然而,当执行指令完成708的步骤时,存储控制器108藉由每个完整的主机输入/输出请求以减少逾期输入/输出704。一旦逾期输入/输出704变为0时(指示目前的丛发616的一端),存储控制器108可于大数据记忆体执行启动计时器716的步骤或执行存储起始时间标记724的步骤。接着,对于每个随后的丛发616重复操作的顺序。
[0116] 图8绘示本发明一实施例的逻辑区域(虚拟磁盘或存储装置)的示意图。序列的主机输入/输出请求332、504可指向至逻辑区域(虚拟磁盘s或存储装置),而存储控制器108具有一个或多个逻辑区域(虚拟磁盘或存储装置)。图8揭示五组逻辑区域(虚拟磁盘或存储装置)804a-804e。
[0117] 在本实施例中,逻辑区域(虚拟磁盘或存储装置)804a-804e分别具有对应的大数据集合808a-808e,且每个大数据集合808a-808e相互独立。在较佳的实施例中,存储控制器108可追踪大约1000个逻辑区域(虚拟磁盘或存储装置),其中65个序列输入/输出串流308指向起初32个逻辑区域(虚拟磁盘或存储装置),其中4个序列的主机输入/输出串流308指向剩下的逻辑区域(虚拟磁盘或存储装置)。
[0118] 在其他实施例中,所有逻辑区域(虚拟磁盘或存储装置)的有效串流908的共用槽替代为配置于每个逻辑区域(虚拟磁盘或存储装置)的有效串流表908。在附加的管理复杂的损失,使得指派或限制传送至每个逻辑区域的串流而言更具备弹性。
[0119] 图9a绘示本发明一实施例的存储于大数据记忆体的有效表908与非有效表904的方块图。大数据记忆体用以存储参数。每个逻辑区域(虚拟磁盘或存储装置)具有对应的有效表908与非有效表904。每个逻辑区域(虚拟磁盘或存储装置)具有预设数目的可使用的串流资源904a-904j,而且每个串流资源对于单一的主机输入/输出串流308存储有大数据参数。起初,所有的串流资源904a-904j位于非有效表904。后来,当主机输入/输出串流308被追踪时,串流资源904a-904j变为有效串流912a-912j。在所有的例子中,串流资源904a-904j的数目加上有效串流912a-912j的数目总是相等于预设数目。在较佳的实施例中,串流资源904a-904j的预设数目加上有效串流912a-912j的数目为65个,而该数目乃由存储控制器108上的记忆体316的尺寸来决定,并且同时追踪逻辑区域(虚拟磁盘或存储装置)的尺寸以及序列主机输入/输出串流308的数目。
[0120] 非有效表904包含可使用的资源,其可被分配为新的主机数据串流308。当串流资源904a-904j被分配为有效串流912a-912j,通过串流资源904a-904j减少非有效表。同样地,所有的串流资源904a-904j可分配至有效串流912a-912j。在此例子中,非有效表904上没有更多的串流资源904a-904j,而且存储控制器必须于有效表908上释放至少一个有效串流912a-912j,以便分配串流资源904a-904j至新的主机数据串流308。在所有方面,非有效表904上所有的串流资源904a-904j均相等,而且任何串流资源904a-904j被选为新的主机输入/输出串流308。
[0121] 有效表908包含有效串流908a-908j,以便主机输入/输出串流308分配置目前的逻辑区域(虚拟磁盘或存储装置)。在开机时,所有的有效表908为空的,而且没有包含有效串流912a-912j。当串流资源904a-904j被分配至有效串流912a-912j时,有效表908被填充。同样地,所有的串流资源904a-904j会被分配至有效表908,而且有效表908将包含预设数目的有效串流912a-912j。有效串流912a-912j序列地排列于有效表908,目前使用最多的有效串流912a设置于有效表908的头端,而目前使用最少的有效串流912j设置于有效表908的尾端(相对于顶端)。
[0122] 每个有效串流入口包含许多被存储控制器108所使用的大数据参数,以便追踪每个有效串流912a-912j。时间上次选中(tlh)924所存储的时间乃对应于上次取得的串流。目前的串流视窗508具有串流视窗逻辑区块地址上限928以及串流视窗逻辑区块地址下限932。目前的移动视窗512具有移动视窗逻辑区块地址上限936以及移动视窗逻辑区块地址下限940。每个主机输入/输出串流308也具有一串流回收利用时间944,串流回收利用时间
944用来计算有效串流912a-912j何时需要再利用至非有效表904以产生新的可使用的串流资源904a-904j。每个主机数据串流308对于串流逾期输入/输出960进行计数,存储控制器
108根据计数值来辨别主机输入/输出串流308何时开始与停止。串流逾期输入/输出960存储未处理输入/输出(图7)的计数。
[0123] 存储控制器108持续地追踪丛发开始时间964a以及丛发停止时间964b以计算自上次丛发入口后的时间(tlb),以便得到上次丛发序列后的时间948。当未处理输入/输出960由1转变为0时,则存储丛发开始时间964a。当未处理输入/输出960从0转变为1时,则存储丛发停止时间964b。
[0124] 上次丛发序列后的时间948为具有特定数目的上次丛发入口后的时间的一种循环序列。在最佳的实施例中,自上次丛发序列后的时间948包含10组上次丛发入口后的时间。在其他实施例中,也可以少于10组入口。上次丛发指标后的目前时间952可识别上次丛发序列后的时间948,且上次丛发指标后的目前时间952朝单方向增加。
[0125] 存储控制器108可测量上次丛发后的时间tlb。在本实施例中,存储控制器108包含一计时器340。当丛发616结束时,存储控制器108启动计时器340。当下一个的丛发616开始时,停止计时器340。当上次丛发指标后的目前时间952识别大数据记忆体的上次丛发后的时间948a-948j,存储计时器340的值。在其他实施例中,大数据记忆体包含丛发开始时间964a以及丛发停止时间964b。当丛发616结束时,自由运行的计时器存储丛发开始时间
964a。当下一个的丛发616结束时,自由运行的计时器存储丛发停止时间964b。丛发开始时间964a与丛发停止时间964b之间的差异被存储于大数据记忆体320内的上次丛发入口后的时间,其中大数据记忆体320被上次丛发指标后的目前时间952所识别。
[0126] 上次丛发序列后的时间为一循环序列,可理解的是,本发明领域具有通常知识者可利用任何数量的数据结构来存储上次丛发后的时间948a-948j。
[0127] 图10绘示本发明一实施例的初始化步骤的流程图。由步骤1004开始。
[0128] 在步骤1004中,存储控制器108将预定数量的串流资源904a-904j填满所有的非有效表904。在较佳的实施例中,串流资源904a-904j的数量为65个。在其他的实施例中,串流资源904a-904j的数量可大于或小于65个。接着进入步骤1008。
[0129] 在步骤1008中,存储控制器108将串流视窗逻辑区块地址的极限(例如:串流视窗逻辑区块地址上限928、串流视窗逻辑区块地址下限932、移动视窗逻辑区块地址上限936、移动视窗逻辑区块地址下限940)以及串流时间上次选中(tlh)924均设定为0,并且该设定为0的步骤将执行于每个逻辑区域(虚拟磁盘或存储装置)以便初始化每个逻辑区域(虚拟磁盘或存储装置)的大数据集合,以及追踪序列的主机输入/输出串流308。接着进入步骤
1012。
[0130] 在步骤1012中,存储控制器108将每个逻辑区域(虚拟磁盘或存储装置)的大数据集合的串流回收利用时间944设定为隐含值。通过隐含值的设定来判断有效串流912何时需要再利用。在较佳的实施例中,串流再利用时间的隐含值为6秒。在其他实施例中,串流回收利用时间944的隐含值可少于或多于6秒。接着结束初始化步骤。
[0131] 图11绘示本发明一实施例的新的输入/输出请求的更新步骤的流程图。对于每个有效串流912a-912j,基于逾期输入/输出704持续地追踪进入的主机输入/输出请求332,并且调整串流回收利用时间944。接着进入步骤1104。
[0132] 在步骤1104中,存储控制器108接收主机电脑104的主机输入/输出请求332。接着进入步骤1108。
[0133] 在步骤1108中,为了相应于接收到的主机输入/输出请求332的有效串流912a-912j,存储控制器108增加串流逾期输入/输出960的计数。串流逾期输入/输出960的计数为当前的输入/输出请求332的计数,其分配至未完成的逻辑区域(虚拟磁盘或存储装置)。接着进入步骤1112。
[0134] 在步骤1112中,存储控制器108判断串流逾期输入/输出960的计数是否等于1。如果串流逾期输入/输出960的计数等于1,则新的丛发616开始于当前的有效串流912a-912j(意即接收到主机输入/输出请求332之前,串流逾期输入/输出960的计数等于0)。如果串流逾期输入/输出960的计数等于1,则进入步骤1116。如果串流逾期输入/输出960的计数不等于1,则新的丛发616不会开始。为了达到本发明的目的,知道丛发616是何时开始与结束是很重要的因素,且要维持上次丛发后的时间的大数据。
[0135] 在步骤1116中,为了对应于接收到的主机输入/输出请求332的有效串流912a-912j,存储控制器108停止丛发的计时器340。当未处理输入/输出计数960由0变为1后,开始新的丛发616。因此,需要纪录上次丛发后的时间。接着进入步骤1120。
[0136] 在步骤1120中,存储控制器108将丛发的计时器340的值存储为丛发停止时间964b,计算上次丛发序列后的时间948,以作为丛发停止时间964b与丛发开始时间964a的差距,且将上次丛发后的时间存储于对应上次丛发指标后的目前时间的时间序列中。接着进入步骤1124。
[0137] 在步骤1124中,存储控制器108增加目前的上次丛发指标后的目前时间952,并且初始化丛发的计时器340。在其他实施例中,丛发的计时器340自由运行而不需初始化。然而,在这些实施例中,需存储丛发开始时间964a。需准备将上次丛发后的时间948a-948j存储在上次丛发序列后的时间948中。当目前的丛发结束时,丛发的计时器340开始计数。接着进入步骤1128。
[0138] 在步骤1128中,存储控制器108判断上次丛发序列后的时间948是否已填满。如果上次丛发序列后的时间948的每个位置都填入丛发的计时器340的值,则表示上次丛发序列后的时间948已填满。当上次丛发序列后的时间948填满时,则进入步骤1132。如果上次丛发序列后的时间948未填满,则结束流程。如果上次丛发序列后的时间948填满时,仅需计算新的串流回收利用时间944。上次丛发序列后的时间948填满前,隐含值用于串流回收利用时间944。在较佳的实施例中,串流回收利用时间944的隐含值为6秒。在其他的实施例中,串流回收利用时间944的隐含值少于或大于6秒。
[0139] 在步骤1132中,存储控制器108计算上次丛发序列后的时间948的加权平均值,以建立串流回收利用时间944。较佳地,提供给最近的上次丛发后的时间948a-948j的权重将大于提供给较旧的上次丛发后的时间948a-948j的权重。在较佳的实施例中,上次丛发序列后的时间948具有10组上次丛发后的时间948a-948j,而且加权平均值等于每一个加权后的上次丛发后的时间948a-948j的总合除以10阶乘。存储控制器108可计算加权后的上次丛发后的时间948a-948j,最近的上次丛发后的时间948a-948j乘以10,第二近的上次丛发后的时间948a-948j乘以9,依此类推,最旧的上次丛发后的时间948a-948j乘以1。藉由上次丛发指标后的目前时间952的位置来辨别最近的上次丛发后的时间948a-948j。在其他的实施例中,可依据不同方式来计算权重平均值,或者串流回收利用时间944为上次丛发序列后的时间948的未加权的平均值。接着进入步骤1136。
[0140] 在步骤1136中,存储控制器108存储对应于接受到的输入/输出请求332的串流回收利用时间944。接着结束流程。
[0141] 图12绘示本发明一实施例的指令完成步骤的示意图。开始于步骤1204。
[0142] 在步骤1204中,完成主机输入/输出请求332。主机输入/输出请求332指向特定的逻辑区域(虚拟磁盘或存储装置)。接着进入步骤1208。
[0143] 在步骤1208中,为了对应于已完成的主机输入/输出请求332的有效串流912a-912j,存储控制器108减少串流逾期输入/输出960的计数。对于已完成的主机输入/输出请求332指向的逻辑区域(虚拟磁盘或存储装置),具有少量的逾期输入/输出704。接着进入步骤1212。
[0144] 在步骤1212中,存储控制器108判断串流逾期输入/输出960的计数是否等于0。如果串流逾期输入/输出960的计数等于0,则结束目前的丛发并且进入步骤1216。如果串流逾期输入/输出960的计数不等于0,则不结束目前的丛发并且结束流程。
[0145] 在步骤1216中,为了对应于已完成的主机输入/输出请求332的有效串流912a-912j,存储控制器108初始化以及开启丛发的计时器340。接着进入步骤1220。
[0146] 在步骤1220中,为了对应于已完成的主机输入/输出请求332的有效串流912a-912j,存储控制器108存储丛发的计时器340的值作为丛发开始时间964a。
[0147] 图13绘示本发明一实施例的主机输入/输出请求332更新步骤的流程图。流程从步骤1304开始。
[0148] 在步骤1304中,存储控制器108接收到主机电脑104的主机输入/输出请求332。接着进入步骤1308。
[0149] 在步骤1308中,存储控制器108检索主机输入/输出请求332指向的逻辑区域(虚拟磁盘或存储装置)相对应的有效表908。接着进入步骤1312。
[0150] 在步骤1312中,存储控制器108判断接收到的主机输入/输出请求332的开启逻辑区块地址524是否位于有效串流视窗508的范围内。检索有效表908并且比较开启逻辑区块地址524与串流视窗508的极限的步骤,将于图14中详细说明。如果接收到的主机输入/输出请求332的开启逻辑区块地址524位于有效串流视窗508的范围内,则进入步骤1336。如果接收到的主机输入/输出请求332的开启逻辑区块地址524没有位于有效串流视窗508的范围内,则进入步骤1316。
[0151] 在步骤1316中,存储控制器108判断主机输入/输出请求332指向的逻辑区域(虚拟磁盘或存储装置)所对应的非有效表904是否是空的。主机输入/输出请求332不在有效串流视窗908的范围内,因此需要建立新的有效串流908a-908j。如果主机输入/输出请求332指向的逻辑区域(虚拟磁盘或存储装置)所对应的非有效表904是空的,则进入步骤1320。如果主机输入/输出请求332指向的逻辑区域(虚拟磁盘或存储装置)所对应的非有效表904不是空的,则进入步骤1328。
[0152] 在步骤1320中,存储控制器108再利用旧有的串流。非有效表904内没有可利用的串流资源904a-904j,而且存储控制器108需要再利用有效表908的一个或多个有效串流912a-912j。图15a至图15c将详细地介绍有效串流再利用流程。再利用单一有效串流912a-
912j使用图15a的步骤。再利用超过预定数目的有效串流912a-912j使用图15b的步骤。再利用所有符合再利用标准的有效串流912a-912j则使用图15c的步骤。接着进入步骤1324。
[0153] 在步骤1324中,存储控制器108再次判断主机输入/输出请求332指向的逻辑区域(虚拟磁盘或存储装置)所对应的非有效表904是否是空的。有可能没有任何旧有串流可以使用图15a-15c的方法再利用,接着流程结束于步骤1324。然而,如果图15a-15c的方法确认至少一个旧有串流可被再利用,而且可放置于非有效表904,接着进入步骤1328。
[0154] 在步骤1328中,存储控制器108移除非有效表904的串流资源904a-904j。使得非有效表904的串流资源904a-904j比先前更少,在执行步骤1328前,如果非有效表904只有一个串流资源904a-904j,则执行步骤1328后将使得非有效表904没有串流资源904a-904j。接着进入步骤1332。
[0155] 在步骤1332中,存储控制器108使用非有效表904上最新恢复的串流资源904a-904j来架构新的有效串流。如何架构新的有效串流912a-912j如图16所示。接着进入步骤
1340。
[0156] 在步骤1336中,存储控制器108移除有效表908中的有效串流912a-912j。接受到的主机输入/输出请求332的开启逻辑区块地址524位于有效串流视窗508的范围内,而且存储控制器108从有效表908中移除对应于接收到的主机输入/输出请求332的有效串流912a-912j。接着进入步骤1340。
[0157] 在步骤1340中,为了被移除的有效串流912a-912j,存储控制器108更新串流时间上次选中924以反应目前的时间。接着进入步骤1344。
[0158] 在步骤1344中,如果有需要的话,为了移除的有效串流912a-912j,存储控制器108可调整移动视窗512。如果接收到的主机输入/输出请求332的开启逻辑区块地址524位于目前的移动视窗512之外,存储控制器108可调整移动视窗逻辑区块地址上限936以及移动视窗逻辑区块地址上限940(如图17所示)。接着进入步骤1348。
[0159] 在步骤1348中,存储控制器108将调整后的有效串流912a-912j放置于有效表916的头端。如此可维持在有效表908中,最近最常使用的有效串流位于有效表的头端,最近最少使用的有效串流位于有效表920的尾端。有效表908与非有效表904已调整以计数接收到的主机输入/输出请求332,接着流程结束于步骤1348。
[0160] 图14绘示本发明一实施例的串流群集处理的流程图。串流群集处理确认有效串流912a-912j,如果出现于接收到的主机输入/输出请求332指向的逻辑区域(虚拟磁盘或存储装置)所相对应的有效表908。流程开始于步骤1404。
[0161] 在步骤1404中,存储控制器108判断有效表908是否是空的。因为有效表908内有可能没有任何有效串流912a-912j,例如在开机初始化时。如果有效表908是空的,接着进入步骤1412。如果有效表908不是空的,则进入步骤1408。
[0162] 在步骤1408中,存储控制器108从有效表916的头端选出第一有效表入口。至少有一个有效串流912a-912j位于有效表908,而且选择最近的入口。接着进入步骤1416。
[0163] 在步骤1416中,存储控制器108判断接收到的主机输入/输出请求332的开启逻辑区块地址524是否少于串流视窗逻辑区块地址上限928。如果开启逻辑区块地址524少于串流视窗逻辑区块地址上限928,则进入步骤1420。如果接收到的主机输入/输出请求332的开启逻辑区块地址524未少于串流视窗逻辑区块地址上限928,则接收到的主机输入/输出请求332不位于串流视窗508的范围内并且进入步骤1428。
[0164] 在步骤1420中,存储控制器108判断接收到的主机输入/输出请求332的开启逻辑区块地址524是否多于串流视窗逻辑区块地址下限932。如果开启逻辑区块地址524多于串流视窗逻辑区块地址下限932,则进入步骤1424。如果开启逻辑区块地址524未多于串流视窗逻辑区块地址下限932,则接收到的主机输入/输出请求332不位于串流视窗508并且进入步骤1428。
[0165] 在步骤1424中,存储控制器108已经确认接收到的主机输入/输出请求332位于所选择的有效串流视窗508的范围内。流程结束于步骤1424,再返回至图13的步骤1312,并且接着进入步骤1336。
[0166] 在步骤1428中,存储控制器108判断是否检索更多的有效表入口。如果检索更多有效表入口,则进入步骤1436。如果没有检索更多的有效表入口,则进入步骤1432。
[0167] 在步骤1432中,存储控制器108已经确认接收到的主机输入/输出请求332没有对应于有效表908中的任何有效串流912a-912j。流程结束于步骤1432,再返回至图13的步骤1312,并且接着进入步骤1316。
[0168] 在步骤1436中,存储控制器108选择下一个有效表入口。一旦存储控制器108从有效表916的头端选择起初的有效表入口,下一个有效表入口将为下一个最新的有效表入口。接着进入步骤1416来测试串流视窗逻辑区块地址上限928以及串流视窗逻辑区块地址下限
932。
[0169] 改良后的找寻符合有效串流的方法可以减少检索有效表908的尾端所需要的时间。在其他实施例中,可使用包含线段树或跳跃表数据结构,以允许查表串流视窗逻辑区块地址以及通过快速地使得主机输入/输出请求332与有效串流912相符来改善效能。
[0170] 图15a绘示本发明第一实施例的旧的串流回收利用步骤的流程图。在本实施例中,有效表908上仅再利用一个有效串流912a-912j。流程开始于步骤1504。
[0171] 在步骤1504中,存储控制器108从有效表908的尾端开始检查有效表920中的第一个旧的有效串流912a-912j。有效表920的尾端包含目前较少使用的有效表入口。接着进入步骤1508。
[0172] 在步骤1508中,为了所选择的有效串流912a-912j,存储控制器108判断目前时间与串流时间上次选中924之间的差异是否小于串流回收利用时间944。如图11所示,存储控制器108计算串流回收利用时间944。如果目前时间与串流时间上次选中924之间的差异少于串流回收利用时间944,则进入步骤1512。如果目前时间与串流时间上次选中924之间的差异没有少于串流回收利用时间944,则进入步骤1528。
[0173] 在步骤1512中,存储控制器108从有效表908移除所选择的有效串流912a-912j。选择的有效串流912a-912j符合步骤1508所述的串流回收利用之标准。接着进入步骤1516。
[0174] 在步骤1516中,存储控制器108将所选择的有效串流912a-912j中的串流时间上次选中924设定为0。此时开始有效串流912a-912j的初始化以预备使得有效串流912a-912j返回至串流资源904a-904j。接着进入步骤1520。
[0175] 在步骤1520中,为了,存储控制器108将所选择的有效串流912a-912j中所有的串流视窗逻辑区块地址的极限值(包含串流视窗逻辑区块地址上限928、串流视窗逻辑区块地址下限932、移动视窗逻辑区块地址上限936、移动视窗逻辑区块地址下限940)均设定为0。如此便完成有效串流912a-912j的初始化,以预备将有效串流912a-912j返回至串流资源
904a-904j。接着进入步骤1524。
[0176] 在步骤1524中,存储控制器108将所选择且初始化后的有效串流912a-912j放置于非有效表904,以作为串流资源904a-904j。单一的有效串流912a-912j已经再利用,而流程结束于步骤1524。流程进入图13的步骤1324。
[0177] 在步骤1528中,候选的有效串流912a-912j尚未被识别可回收利用至非有效表904,而且存储控制器108判断是否有更多的有效串流912a-912j位于有效表908中。如果有更多的有效串流912a-912j位于有效表908中,接着进入步骤1532。如果有效表908内没有更多的有效串流912a-912j,则不会有效串流912a-912j被再次利用,而流程结束于步骤1528。
流程进入图13的步骤1324。
[0178] 在步骤1532中,存储控制器108判断有效表908内下一个最近的有效串流912a-912j是否可使用。如果可以使用的话,则进入步骤1536。如果无法使用的话,则流程结束于步骤1532并且有效表908上没有有效串流912a-912j符合再利用准则。流程进入图13的步骤
1324。
[0179] 在步骤1536中,存储控制器108从有效表920的尾端选择下一个最近的有效串流912a-912j。流程进入步骤1508来检查所选择的有效串流912a-912j是否符合回收利用之准则。
[0180] 图15b绘示本发明第二实施例的预定数目的旧有的串流回收利用过程的流程图。在一段时间内,从有效表908中回收利用预定数目的有效串流912a-912j。流程开始于步骤
1540。
[0181] 在步骤1540中,为了预定数目的旧有有效串流912a-912j,存储控制器108开始于有效表908的尾端检查有效表908。有效表920的尾端包含有最近最少使用的有效表入口。接着进入步骤1544。
[0182] 在步骤1544中,为了所选择的有效串流912a-912j,存储控制器108判断目前时间与串流时间上次选中924之间的差异是否小于串流回收利用时间944。存储控制器108计算串流回收利用时间944(计算方法可参见图11)。如果两者之间差异小于串流回收利用时间944,接着进入步骤1548。如果两者的差异没有小于串流回收利用时间944,接着进入步骤
1568。
[0183] 在步骤1548中,存储控制器108从有效表908移除所选择的有效串流912a-912j。所选择的有效串流912a-912j符合步骤1544的串流回收利用之准则。接着进入步骤1522。
[0184] 在步骤1522中,为了所选择的有效串流912a-912j,存储控制器108设定串流时间上次选中924为0。如此开启了有效串流912a-912j的初始化,以准备将有效串流912a-912k再返回至串流资源904a-904j。接着进入步骤1556。
[0185] 在步骤1556中,为了所选择的有效串流912a-912j,存储控制器108将所有的视窗逻辑区块地址的极限值(包含视窗逻辑区块地址上限928、串流视窗逻辑区块地址下限932、移动视窗逻辑区块地址上限936、移动视窗逻辑区块地址下限940)均设定为0。如此完成有效串流912a-912j的初始化,以准备将有效串流912a-912j返回至串流资源904a-904j。接着进入步骤1560。
[0186] 在步骤1560中,存储控制器108将所选择且经过初始化的有效串流912a-912j置放于非有效表904以作为串流资源904a-904j。单一的有效串流912a-912j已经回收利用,而流程进入步骤1564。
[0187] 在步骤1564中,存储控制器108判断预定数目的有效串流912a-912j是否已经回收利用。如果已经回收利用,则流程结束。接着进入图13的步骤1324。如果没有回收利用,则进入步骤1570。
[0188] 在步骤1568中,存储控制器108判断有效表908内是否有更多的有效串流912a-912j。如果有效表908内有更多的有效串流912a-912j,则进入步骤1570。如果有效表908内没有更多的有效串流912a-912j,则没有有效串流912a-912j可被再利用,而流程结束于步骤1568。接着进入图13的步骤1324。
[0189] 在步骤1570中,存储控制器108判断有效表908中下一个最近的有效串流912a-912j是否可使用。如果可以使用的话,进入步骤1572。如果不能使用的话,进入步骤1570。接着流程进入图13的步骤1324。
[0190] 在步骤1572中,存储控制器108从有效表920的尾端选择下一个最近的有效串流912a-912j。流程进入步骤1544来检查所选择的有效串流912a-912j是否符合回收利用之标准。
[0191] 图15c绘示本发明第三实施例的所有旧有串流回收利用步骤的流程图。在本实施例中,从有效表908回收利用许多有效串流912a-912j。流程开始于步骤1574。
[0192] 在步骤1574中,存储控制器108从有效表908的尾端检查有效表908内所有旧的有效串流912a-912j。有效表908的尾端包含有最近最少使用的有效表入口。接着进入步骤1576。
[0193] 在步骤1576中,为了所选择的有效串流912a-912j,存储控制器108判断目前时间与串流时间上次选中924之差异是否小于串流回收利用时间944。存储控制器108计算串流回收利用时间944(如图11所示)。如果两者的差异小于串流回收利用使间944,则进入步骤1578。如果两者的差异没有小于串流回收利用时间944,则进入步骤1588。
[0194] 在步骤1578中,存储控制器108从有效表908中移除所选择的有效串流912a-912j。所选择的有效串流912a-912j符合步骤1576的串流回收利用之准则。接着进入步骤1580。
[0195] 在步骤1580中,为了所选择的有效串流912a-912j,存储控制器108将串流时间上次选中924设定为0。如此将开启有效串流912a-912j的初始化,以准备将有效串流912a-912j返回于串流资源904a-904j。接着进入步骤1582。
[0196] 在步骤1582中,存储控制器108将所选择的有效串流912a-912j中所有的视窗逻辑区块地址的极限值(包含视窗逻辑区块地址上限928、串流视窗逻辑区块地址下限932、移动视窗逻辑区块地址上限936、移动视窗逻辑区块地址下限940)均设定为0。如此将完成有效串流912a-912j的初始化,准备将有效串流912a-912j返回于串流资源904a-904j。接着进入步骤1584。
[0197] 在步骤1584中,存储控制器108将所选择且经过初始化的有效串流912a-912j放置于非有效表904以作为串流资源904a-904j。所选择的有效串流912a-912j已经被回收利用,而进入步骤1586。
[0198] 在步骤1586中,存储控制器108判断是否检索更多的有效串流912a-912j。如果检索更多的有效串流912a-912j,则进入步骤1590。如果没有检索更多的有效串流912a-912j,则结束流程。接着流程进入图13的步骤1324。
[0199] 在步骤1588中,存储控制器108判断有效表908内是否有更多的有效串流912a-912j。如果有更多的有效串流912a-912j,则进入步骤1590。如果没有更多的有效串流912a-
912j,则没有有效串流912a-912j被回收利用,而且结束流程。接着流程进入图13的步骤
1324。
[0200] 在步骤1590中,存储控制器108从有效表908的尾端选择下一个最近的有效串流912a-912j。接着流程进入步骤1576来检查所选的有效串流912a-912j是否符合回收利用标准。
[0201] 图16绘示本发明一实施例的有效串流架构步骤的流程图。在本实施例中,从非有效表的串流资源904a-904j架构有效串流912a-912j。流程开始于步骤1604。
[0202] 在步骤1604中,存储控制器108将主机输入/输出请求的尺寸乘以8以便建立串流视窗偏移。接着进入步骤1608。
[0203] 在步骤1608中,存储控制器108将步骤1604中的串流视窗偏移加入至主机输入/输出请求332的开启逻辑区块地址524,而且将造成的串流视窗逻辑区块地址上限928存储至串流大数据。接着进入步骤1612。
[0204] 在步骤1612中,存储控制器108将串流视窗偏移从开启逻辑区块地址524去除,以便建立暂时串流视窗逻辑区块地址下限。接着进入步骤1616。
[0205] 在步骤1616中,存储控制器108判断暂时串流视窗逻辑区块地址下限是否小于0。如果小于0,则进入步骤1624。如果没有小于0,则进入步骤1620。
[0206] 在步骤1620中,存储控制器108将步骤1612中的暂时串流视窗逻辑区块地址下限存储至串流视窗逻辑区块地址下限932。接着流程进入图13的步骤1340。
[0207] 在步骤1624中,存储控制器108将0存储至串流视窗逻辑区块地址下限932。流程结束于步骤1624。接着进入图13的步骤1340。
[0208] 图17绘示本发明一实施例的移动视窗调整步骤的流程图。该移动视窗调整步骤判断移动视窗512的移动视窗逻辑区块地址上限936以及移动视窗逻辑区块地址下限940是否需要基于主机输入/输出请求332的逻辑区块地址520作调整。图17更详细的揭露图13的步骤1344。流程开始于步骤1704。
[0209] 在步骤1704中,存储控制器108判断接收到的主机输入/输出请求332的开启逻辑区块地址524(步骤1304)是否位于移动视窗512(对应于有效串流视窗508)之外。如果开启逻辑区块地址524位于移动视窗512之外,接着移动视窗512需要调整并且进入步骤1708。如果开启逻辑区块地址524没有位于移动视窗512之外,接着移动视窗512不需要改变并且结束流程。接着进入图13的步骤1348。
[0210] 在步骤1708中,存储控制器108将串流视窗逻辑区块地址下限932从串流视窗逻辑区块地址上限928去除以获得串流视窗508的尺寸。接着进入步骤1712。
[0211] 在步骤1712中,存储控制器108将串流视窗508的尺寸除以2并且加入至串流视窗逻辑区块地址下限932以获得串流视窗中心。接着进入步骤1716。
[0212] 在步骤1716中,存储控制器108判断接收到的主机输入/输出请求332的开启逻辑区块地址524是否直接接续于先前的主机输入/输出请求332。其中直接接续的意思指的是接收到的主机输入/输出请求332的开启逻辑区块地址524直接接续在先前的主机输入/输出请求332的结束逻辑区块地址532之后。如果开启逻辑区块地址524直接接续于先前的主机输入/输出请求332,接着进入步骤1720。如果开启逻辑区块地址524没有直接接续于先前的主机输入/输出请求332,接着进入步骤1724。
[0213] 在步骤1720中,存储控制器108将串流视窗508的尺寸乘以序列串流视窗修改量,以便获得新的移动视窗512的尺寸。当接收到的主机输入/输出请求332的开启逻辑区块地址524直接接续于先前的主机输入/输出请求332时,则使用序列串流视窗修改量。在较佳的实施例中,序列串流视窗修改量为0.5。在其他实施例中,序列串流视窗修改量少于或多于0.5。接着进入步骤1728。
[0214] 在步骤1724中,存储控制器108将串流视窗508的尺寸乘以半序列串流视窗修改量,以便获得新的移动视窗512的尺寸。当接收到的主机输入/输出请求332的开启逻辑区块地址524没有直接接续于先前的主机输入/输出请求332时,使用该半序列串流视窗修改量。在较佳的实施例中,半序列串流视窗修改量为0.4。在其他实施例中,半序列串流视窗修改量少于或多于0.4。接着进入步骤1728。
[0215] 在步骤1728中,存储控制器108将新的移动视窗512的尺寸除以2,以便获得一半新移动视窗尺寸。接着进入步骤1732与1740。
[0216] 在步骤1732中,存储控制器108将该一半新移动视窗尺寸加入串流视窗中心,以便获得新的移动视窗逻辑区块地址上限。接着进入步骤1736。
[0217] 在步骤1736中,存储控制器108将新的移动视窗逻辑区块地址上限存储于串流大数据内的移动视窗逻辑区块地址上限936。流程结束于步骤1736。
[0218] 在步骤1740中,存储控制器108从串流视窗中心去除一半新移动视窗尺寸,以便获得新的移动视窗逻辑区块地址下限。接着进入步骤1744。
[0219] 在步骤1744中,存储控制器108将新的移动视窗逻辑区块地址下限存储于串流大数据内的移动视窗逻辑区块地址下限940。流程结束于步骤1744。
[0220] 虽然本发明揭露通过存储控制器108执行该些步骤,但该发明技术领域中具有通常知识者而言,也可改用CPU或处理器312执行这些步骤。然而,在其他实施例中,也可改用为一个或更多个处理器,有限状态机、可程序逻辑装置、或其他可执行该些步骤的装置。
[0221] 以上叙述依据本发明多个不同实施例,其中各项特征可以单一或不同结合方式实施。因此,本发明实施方式的揭露为阐明本发明原则的具体实施例,应不拘限本发明于所揭示的实施例。进一步言之,先前叙述及其附图仅为本发明示范之用,并不受其限囿。其他元件的变化或组合皆可能,且不悖于本发明的精神与范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈