数据存储装置及其方法

文档序号:6611160阅读:195来源:国知局
专利名称:数据存储装置及其方法
技术领域
本发明涉及具有进行主计算机和存储装置之间的数据发送接收处理的控制功能的数据存储装置及方法。
背景技术
例如,作为将多个HDD用作存储装置的数据存储装置,有磁盘阵列装置。这样的数据存储装置,具有单个或多个存储装置,和进行主计算机和存储装置之间的数据发送接收处理的控制装置。尤其在利用RAID功能而管理多个HDD的磁盘阵列装置的控制装置中,具有能够以比存储装置更高速地进行存取的高速缓冲存储器,并且还具备用于使来自主计算机的存取性能得到提高的读高速缓存(ReadCache)功能。
在具备了读高速缓存功能的数据存储装置中,作为主计算机发出顺序(sequential)的读请求时使存取性能提高的方法,广泛使用从存储装置预读(或者也称为预取)数据的功能。
所谓数据的预读功能,是如下功能在判断为从主计算机所发出的读请求是有顺序的请求的情况下,预先将作为下一个要进行接收的顺序的区域(后续的区域)的数据先行从存储装置读入高速缓冲存储器。所谓顺序,是读请求对于后续的数据区域连续地发生。由控制装置判断从主计算机所发出的读请求是否为有顺序的请求,并在接收到来自主计算机的请求之前,预先先行将作为其次将要进行接收的顺序的区域(后续的区域)的数据从存储装置向高速缓冲存储器读入。
由于进行数据的预读而大体得到2种效果。其一是因为在从主计算机接收后续的指令之前就开始从存储装置进行读入,所以能够缩短对后续的指令的响应时间。另一则为在预读中一并读入集中为某种程度的尺寸的数据,能够缩短下面所发出的多个指令的响应时间,并且因为对存储装置的存取次数减少所以装置整体的吞吐性能有所提高。这样,数据的预读为对于存储性能提高来说非常地有用的功能。
图10是现有的数据预读功能的说明图。假设在地址连续起来的区域,传输尺寸(大小)的最初的指令0为从某地址号码起的规定的尺寸(例如256kB)的数据请求。然后,设其次的指令1为连续于该规定的尺寸的规定的尺寸(例如256kB)的数据请求,再次的指令2为连续于该规定的尺寸的规定的尺寸(例如256kB)的数据请求。这样,在连续起来的规定的尺寸连续了3次的数据请求的情况下,判断为有顺序存取性的读请求,并将以下的数据区域的规定的数据范围的数据进行预读。即,关于来自主计算机的读请求是否为有顺序存取性的请求的判定,当大于等于规定的次数(预读判定次数)连续地接收到来自主计算机的对连续的数据区域的读请求时,就判断为是有顺序存取性的请求。
在此,作为具备了在向磁盘驱动器写入的数据中以预定块长单位附加冗余数据的功能的磁盘控制装置,有以下装置有效利用以对数据进行记录的磁盘的扇区为单位而使之具有冗余信息的技术,将多个顺序数据高效地进行预读,从而能够实现向主机的高响应性的数据返回。例如,参照日本公开专利2004-355040号公报。
但是,在现有的数据预读功能的情况下,一直到判断为来自主计算机的读请求是有顺序存取性的请求为止,需要接收大于等于规定的次数(预读判定次数)的来自主计算机的读请求。因此,每次读请求的接收时也发生从存储装置的读出处理。
通常,因为预读判定次数为2次或3次左右,所以在像来自主计算机的读请求以2次或3次就结束的次数少的顺序的读请求中,存在难以得到数据的预读的效果的方面。即,虽然当接收到2次或3次的读请求时,就判断为是有顺序存取性的读请求而将后续的数据进行预读,但是在读请求以2次或3次就结束的情况下,该预读过的数据结果未被使用而浪费,有可能使装置的吞吐性能恶化。
一般来说,主计算机的文件系统、接口驱动器(例如SCSI、FiberChannel等用的驱动器)等,关于从应用程序等所请求的数据(文件)的读请求,未必以所请求的数据的尺寸本身向控制装置发出读请求而从存储装置读入。根据文件系统、驱动器等的规格,在向控制装置发出的读请求上具有一定的尺寸上限,将来自应用程序等的读请求按该尺寸分割为多个读请求而向控制装置发出。
根据以上,在现有的预读功能中,例如在大多处理256kB左右的文件的系统中,在根据文件系统、接口驱动器等的规格,将向存储装置的存取请求(具体为,读的SCSI指令等)分割为128kB而发出指令的系统的情况下,在该文件的读出中发生连续起来的2~3次的读请求。该情况下,在使预读判定次数大于等于3次的情况下,预读不工作或即使工作该预读了的数据也未被使用而得不到预读的效果。在实际的系统中,这样的次数少的有顺序存取性的读请求经常发生。
本发明的目的,使提供能够适当地判断有顺序存取性的读请求,能够使从控制装置向存储装置的存取次数变少同时使响应时间、吞吐性能等也得到提高的数据存储装置及方法。

发明内容
根据本发明的一个实施方式的数据存储装置,特征为,具备包括存储在主计算机进行运算处理的数据的单个或多个记录媒体的存储装置,和连接于该存储装置和前述主计算机,处理两者间的数据传输的控制装置;该控制装置,进一步具备控制与前述主计算机之间的连接的第1接口控制电路,控制与前述存储装置的连接的第2接口控制电路,连接于这些第1、第2接口控制电路的微处理器,连接于该微处理器的本地存储器,和同样连接于前述微处理器的高速缓冲存储器;前述微处理器在来自前述主计算机的读请求的传输尺寸与预先设定的预读判定尺寸相同的情况下,判断为是有顺序存取性的读请求,将与该读请求相对应的数据发送给前述主计算机,并且将与该读请求连续的后续的存储区域的数据从前述存储装置向前述高速缓冲存储器先行读入。
在根据本发明的其他的实施方式的数据存储装置中,特征为前述预先设定的预读判定尺寸,是系统固有的分割尺寸。
在根据本发明的其他的实施方式的数据存储装置中,特征为前述预先设定的预读判定尺寸,为2的n次幂KB。
在根据本发明的其他的实施方式的数据存储装置中,特征为前述微处理器具有多个预读判定尺寸作为预先设定的预读判定尺寸,当来自前述主计算机的读请求的传输尺寸相符合于多个预先设定的预读判定尺寸的任一个时,就判断为是有顺序存取性的读请求。
在根据本发明的另外的实施方式的数据存储装置中,特征为前述微处理器,根据前述主计算机对预读到前述高速缓冲存储器的数据的命中率而判断是否进行预读。
在根据本发明的另外的实施方式的数据存储装置中,特征为前述微处理器,根据前述主计算机对预读到前述高速缓冲存储器的数据的命中率而改变前述预读判定尺寸。
在根据本发明的另外的实施方式的数据存储装置中,特征为前述微处理器,在根据来自主计算机的读请求从存储装置读入对象的数据时,对存储装置发出对从主计算机所读请求的数据和预读部分的数据进行了合计的尺寸的读请求从而将主计算机的读请求部分的数据和预读部分的数据一并向高速缓冲存储器读入。
在根据本发明的另外的实施方式的数据存储装置中,特征为前述微处理器,在根据来自主计算机的读请求从存储装置读入对象的数据时,首先,对存储装置发出根据来自主计算机的读请求所指定的尺寸的读请求而将主计算机的读请求部分的数据向高速缓冲存储器读入,其次对存储装置重新发出预读部分的尺寸的读请求而将预读部分的数据向高速缓冲存储器读入。
在根据本发明的另外的实施方式的数据存储装置中,特征为前述预读部分的数据,为预读判定尺寸的n倍的尺寸部分。
在根据本发明的另外的实施方式的数据存储装置中,特征为前述预读部分的数据,在通过RAID功能管理多个存储装置的情况下,根据数据相对于这些个存储装置的配置结构,决定其尺寸。
根据本发明的一个实施方式的数据存储方法,是将在主计算机进行运算处理的数据存储于单个或多个记录媒体,并通过高速缓冲存储器处理前述主计算机和前述存储装置之间的数据传输的数据存储方法;特征为,包括以下步骤当有了来自前述主计算机的读请求时判定前述读请求的数据是否已被读入到高速缓冲存储器中,当高速缓冲存储器中有前述被读请求的数据时将该数据发送给前述主计算机,当前述高速缓冲存储器中没有前述被读请求的数据时判定来自前述主计算机的被读请求的数据的传输尺寸是否与预先设定的预读判定尺寸相同,当来自前述主计算机的被读请求的数据的传输尺寸不与预先设定的预读判定尺寸相同时将与该读请求相对应的数据读出到高速缓冲存储器中并发送给前述主计算机,和在来自前述主计算机的被读请求的数据的传输尺寸与预先设定的预读判定尺寸相同的情况下将与该读请求相对应的数据读出到高速缓冲存储器中并发送给前述主计算机,并且将与该读请求连续的后续的存储区域的数据从前述存储装置向前述高速缓冲存储器先行读入。
并且,根据本发明的其他的实施方式的数据存储方法,是将在主计算机进行运算处理的数据存储于单个或多个记录媒体,并通过高速缓冲存储器处理前述主计算机和前述存储装置之间的数据传输的数据存储方法;特征为,包括以下步骤当有了来自前述主计算机的读请求时判定前述读请求的数据是否已被读入到高速缓冲存储器中,当高速缓冲存储器中有前述被读请求的数据时将前述数据发送给前述主计算机,当高速缓冲存储器中没有前述被读请求的数据时判定来自前述主计算机的被读请求的数据的传输尺寸是否与预先设定的预读判定尺寸相同,当来自前述主计算机的被读请求的数据的传输尺寸不与预先设定的预读判定尺寸相同时将与前述读请求相对应的数据读出到高速缓冲存储器中并发送给前述主计算机,和在来自前述主计算机的被读请求的数据的传输尺寸与预先设定的预读判定尺寸相同的情况下将对与前述读请求相对应的数据和预读部分的数据进行了合计的尺寸的数据一并向高速缓冲存储器读出,并将与前述读请求相对应的数据发送给前述主计算机。
根据上述的本发明的实施方式,则因为在来自主计算机的读请求的传输尺寸与预先设定的预读判定尺寸相同的情况下,即使是第1次的读请求也判断为是有顺序存取性的读请求,所以即使是根据文件系统、接口驱动器等的规格,将向存储装置的读请求在其系统中分割为固定的传输尺寸单位而发出指令的情况,也不分割而处理来自应用程序等的读请求。即,因为以来自主计算机的第1次的读请求对于控制装置发出数据的预读的读请求,所以不会发生增加从控制装置向存储装置的存取次数等的问题。


图1是本发明的实施例中的数据存储装置的方框构成图。
图2是本发明的实施例中的数据存储装置的基本动作的说明图。
图3是表示根据本发明的实施例的在数据存储装置中的第1实施例的运算处理内容的流程图。
图4是表示根据本发明的实施例的在数据存储装置中的第2实施例的运算处理内容的流程图。
图5是表示根据本发明的实施例的在数据存储装置中的第3实施例的运算处理内容的流程图。
图6是表示根据本发明的实施例的在数据存储装置中的第4实施例的运算处理内容的流程图。
图7是表示根据本发明的实施例的在数据存储装置中的第5实施例的运算处理内容的流程图。
图8是表示根据本发明的实施例的在数据存储装置中的第6实施例的运算处理内容的流程图。
图9是表示根据本发明的实施例的在数据存储装置中的第7实施例的运算处理内容的流程图。
图10是现有的数据预读功能的说明图。
具体实施例方式
以下,对本发明的实施例进行说明。图1是本发明的实施例中的数据存储装置的方框构成图。数据存储装置,由对在主计算机11中进行运算处理的数据进行存储的记录装置12,和对主计算机11和存储装置12之间的数据传输进行处理的控制装置13所构成。存储装置12利用由硬盘装置HDD或者光盘装置构成的多个记录媒体14所构成。
并且,控制装置13对存储装置12的多个存储装置21进行控制,并进行与主计算机11的数据接收发送,与主计算机11以接口控制电路15a相连接,与存储装置12以接口控制电路15b相连接。接口控制电路15a、15b按照SCSI、Fiber Channel等的规格所构成。
控制装置13还具备非易失性存储器(ROM)16,本地存储器17,微处理器18,芯片组19及高速缓冲存储器20。在非易失性存储器(ROM)16中存储控制装置13的程序,在本地存储器17中,存储关于控制装置13的与各种处理动作有关的程序。并且,在本地存储器17上确保有在进行动作时使用的工作区域。即,微处理器18按照从ROM16复制到本地存储器17中的程序代码,执行控制装置13的各种处理动作。另外,芯片组19用于将微处理器18及外部电路连接于内部总线,高速缓冲存储器20是暂时性地保持与主计算机11的读写数据的DRAM等的高速的存储器,是可以比存储装置12更高速地从主计算机11进行存取的存储器。
微处理器18判定来自主计算机11的读请求的传输尺寸是否与预先设定的预读判定尺寸相同,并在是相同的情况下,判断为是有顺序存取性的读请求。然后,将与该读请求相对应的数据发送给主计算机11,并且将与该读请求连续的后续的存储区域的数据先行从存储装置12向高速缓冲存储器20读入。
在此,预先设定的预读判定尺寸设定为如下。如前述地,一般来说,根据主计算机11的文件系统、驱动器等的规格,向存储装置12的控制装置13发出的读请求的数据传输尺寸有一定的上限,将来自应用程序等的读请求按该尺寸分割为多个读请求而向控制装置发出。例如,该被分割了的数据尺寸,如128KB、256KB、512KB或者1024KB那样,设定为2的n次幂的值。从而通过预先设定好这样的数据尺寸中的任一个作为预读判定尺寸,在有了指示了这样的数据尺寸的传输的读请求的情况下,判断为被分割了的读请求,从而进行预读。
图2是本发明的实施例中的数据存储装置的基本动作的说明图。在本发明的实施例中判定来自主计算机11的传输尺寸是否一致于预读判定尺寸。如示于图2中地,判定最初的指令0是否一致于预读判定尺寸,并在相一致的情况下,判定为该读请求是有顺序存取性的请求,并对规定的范围的数据进行预读。
即,将系统固有的分割尺寸作为预读判定尺寸而预先设定于控制装置13的本地存储器17内。当判断为从主计算机11接收到的读请求与该预读判定尺寸相同时,控制装置13的微处理器18就判断为该读请求是有顺序存取性的请求,对后续的区域的读请求发生的可能性高,从而进行预读处理。由此,即使在较少次数的顺序的读请求时也可得到预读的效果。
还有,在本发明的实施例中,还同时并存示于图10中的预读功能。即,在从主计算机11接收到的读请求与该预读判定尺寸不相同的情况下,利用示于图10中的现有的预读功能进行预读。即,本发明的预读功能,对现有的预读功能进行补足。
图3是表示根据本发明的第1实施例的数据存储装置中的预读处理的流程图。首先,控制装置13的微处理器18如果从主计算机11收到读请求(指令),则判定是否命中高速缓冲存储器,即,在高速缓冲存储器20中是否有读指令进行请求的数据(S1)。其结果,在高速缓冲存储器20中没有读指令进行请求的数据的情况下,判定读指令进行请求的传输尺寸是否为预读判定尺寸(S2)。该判定的结果,在传输尺寸是预读判定尺寸的情况下,将在传输尺寸上相加了预读部分的数据从存储装置12向高速缓冲存储器20读入(S3)。然后,向主计算机11发送高速缓冲存储器20的数据(S4)。
在步骤S2的判定中,在读指令进行请求的传输尺寸不是预读判定尺寸的情况下,将传输尺寸部分从存储装置12向高速缓冲存储器20读入(S5),向主计算机11发送高速缓冲存储器20的数据(S4)。并且,在步骤S1的判定中,在高速缓冲存储器20中有读指令进行请求的数据的情况下,向主计算机11发送高速缓冲存储器20的数据(S4)。
这样,在由主计算机11接收到的读请求的处理中,在所请求的数据未进入高速缓冲存储器(未命中高速缓冲存储器),而需要从存储装置12的进行读入的情况下,在从该计算机11接收到的读指令进行请求的数据的传输尺寸是预先设定的预读判定尺寸的情况下,在来自主计算机11的读请求的处理的基础上进行预读的处理。预读判定尺寸设定为与在其系统中固有的指令的分割传输尺寸相同的尺寸。另外,作为预读的方法,将由主计算机接收到的读指令进行请求的数据,和为其后续的区域的预读部分的数据一并从存储装置12读入。
在此,关于从存储装置12比来自主计算机11的读请求多读入预读尺寸部分的情况下的优点进行研讨。因为从存储装置12比来自主计算机11的读请求多读入预读尺寸部分,所以虽然从存储装置12向控制装置13的数据传输时间变长,但是一般说来HDD等存储装置,其直到开始数据传输的存取时间比数据传输时间长。从而,即使数据传输尺寸增大,也是减少了存取次数的一方的总体的性能提高。
关于此点更具体地进行考察。在最近一般所用的HDD的情况下,在将256kB的读请求分为128kB×2次的情况下,和以256kB×1次进行处理的情况下对其处理时间进行比较。在该情况下,存取时间为平均寻找时间与平均旋转等待时间之和,不依赖于传输尺寸而为9ms左右。数据传输时间在128kB为2ms左右,在256kB为4ms左右。因为处理时间为存取时间与数据传输时间之和,所以若将读请求分为2次则处理时间变成22ms左右,若以1次进行则变成13ms左右。
从而,加大1次的传输尺寸而减少了存取次数的一方缩短了整体的处理时间。还有,若使1次的传输尺寸过大,则直到其传输结束不能完成来自计算机11的读请求,读请求的响应时间反而恶化。从而,最好是考虑双方的平衡而设定为适合其系统的预读尺寸。
根据上述第1实施例,因为对来自主计算机的读请求的传输尺寸是否与预先设定的预读判定尺寸相同进行判定,所以即使是第1次的读请求也能够判断为是有顺序存取性的读请求,能够缩短对于有连续性的数据的读出指令的存取时间。并且,因为将由主计算机11接收到的读请求的对象数据和为其后续的区域的预读部分的数据一并从存储装置12读入,所以作为整体能够减少存储装置12的存取时间(寻找时间,旋转等待时间等)。
图4是表示本发明的第2实施例中的数据存储装置的预读处理的流程图。在该第2实施例中,相对于示于图3中的第1实施例,在以下这一点上不同作为预先设定的预读判定尺寸而设置多个预读判定尺寸,当来自主计算机11的读请求的传输数据相符合于多个预先设定的预读判定尺寸的任一个时,就判断为是有顺序存取性的读请求。步骤S2的处理变成了步骤S2’。
首先,控制装置13的微处理器18若从主计算机11收到读请求处理,则判定是否命中高速缓冲存储器(S1)。在该命中高速缓冲存储器的判定中,在高速缓冲存储器20中没有读请求的指令进行请求的数据的情况下,判定来自主计算机11的读请求的传输尺寸是否相符合于预先设定的多个(n个)预读判定尺寸的任一个(S2’)。判定的结果,在来自主计算机11的读请求的传输尺寸相符合于预先设定的多个(n个)预读判定尺寸的任一个的情况下,将在传输尺寸上相加了预读部分的数据从存储装置12读入到高速缓冲存储器20中(S3)。然后,向主计算机11发送高速缓冲存储器20的数据(S4)。
在步骤S2’的判定中,在读指令进行请求的传输尺寸不是任何预读判定尺寸的情况下,将传输尺寸部分从存储装置12读入到高速缓冲存储器20中(S5),向主计算机11发送高速缓冲存储器20的数据(S4)。并且,在步骤S1的判定中,在高速缓冲存储器20中有读请求的指令进行请求的数据的情况下,向主计算机11发送高速缓冲存储器20的数据(S4)。
根据第2实施例,因为在第1实施例的效果的基础上,设置多个预读判定尺寸,当传输尺寸相符合于任一个时进行预读,所以变得即使对于不同的数据分割尺寸的读出请求也可以进行预读处理,变得对于指令的分割传输尺寸不相同的多个系统可以进行预读处理。
图5是表示根据本发明的第3实施例中的数据存储装置的预读处理的流程图。该第2实施例相对于示于图4中的第2实施例,追加步骤S6至S7,并对来自主计算机11的向高速缓冲存储器20进行了预读的数据的命中率进行判定,而在其命中率超过了阈值的情况下进行预读。
首先,控制装置13的微处理器18若从主计算机11接受读请求处理,则对读请求的传输尺寸是否相符合于预先设定的多个(n个)预读判定尺寸的任一个进行判定(S6)。在判定的结果一致于任一个的情况下,将请求计数器增加+1(S7)。其次,微处理器18对在高速缓冲存储器20中是否有从主计算机11接受了的读请求指令进行请求的数据,即,是否命中高速缓冲存储器进行判断。该结果,在判断为命中高速缓冲存储器的情况下,将命中计数器增加+1(S9)。
接着控制装置13的微处理器18再次对从主计算机11接受了的读请求的对象数据是否命中高速缓冲存储器进行判断(S1)。在该命中高速缓冲存储器的判定中,在高速缓冲存储器20中没有读请求的指令进行请求的数据的情况下,对来自主计算机11的读请求的传输尺寸是否相符合于预先设定的多个(n个)预读判定尺寸的任一个进行判定(S2’)。判定的结果,在来自主计算机11的读请求的传输尺寸相符合于预先设定的多个(n个)预读判定尺寸的任一个的情况下,对来自主计算机11的向高速缓冲存储器20进行了预读的数据的命中率进行判定(S6),在该命中率超过了阈值的情况下,将在传输尺寸上相加了预读部分的数据从存储装置12读入到高速缓冲存储器20中(S3)。然后,向主计算机11发送高速缓冲存储器20的数据(S4)。
在此,向高速缓冲存储器20进行了预读的数据的命中率的判定,通过对在步骤7所计数了的读请求的计数值,即,相对预读请求的次数的在步骤9所计数了的命中计数值,即,命中次数的比例由微处理器18进行计算所得到。
另一方面,在步骤S2’的判定中,在读请求的指令进行请求的传输尺寸不是任何预读判定尺寸的情况下,将传输尺寸部分从存储装置12读入到高速缓冲存储器20中(S5),向主计算机11发送高速缓冲存储器20的数据(S4)。并且,在步骤S6的判定中,在命中率小于等于阈值的情况下,也将传输尺寸部分从存储装置12读入到高速缓冲存储器中(S5),向主计算机11发送高速缓冲存储器20的数据(S4)。并且,在步骤S1的判定中,在高速缓冲存储器20中有读请求的指令进行请求的数据的情况下,向主计算机11发送高速缓冲存储器20的数据(S4)。
在此,虽然根据来自主计算机11的向高速缓冲寄存器20进行了预读的数据的命中率而区分为进行预读的情况和不进行的情况,但是也可以根据来自主计算机11的向高速缓冲寄存器20进行了预读的数据的命中率而对预读判定尺寸进行变更。
根据这样的第3实施例,因为在第2实施例的效果的基础上,在来自主计算机11的向高速缓冲寄存器20进行了预读的数据的命中率超过了阈值的情况下进行预读,所以能够防止进行徒劳的预读。并且,在根据向高速缓冲寄存器20进行了预读的数据的命中率而改变了预读判定尺寸的情况下,能够更有效地进行预读。
图6是表示根据本发明的第4实施例中的数据存储装置中的预读处理的流程图。该第4实施例相对于示于图3中的第1实施例,在基于来自主计算机11的读请求而从存储装置12读入对象数据时,代之于将主计算机11的读请求部分的数据和预读部分的数据一并向高速缓冲存储器20读入,而将主计算机11的读请求部分的数据向高速缓冲存储器20读入,然后对存储装置12重新发出预读部分的尺寸的读请求而将预读部分的数据向高速缓冲存储器20读入。
即,首先控制装置13的微处理器18若从主计算机11收到读请求处理,则对是否命中高速缓冲存储器进行判定(S11)。在该高速缓冲命中的判定中,在高速缓冲存储器20中没有读请求的指令进行请求的数据的情况下,将传输尺寸部分从存储装置12读入到高速缓冲存储器中(S12),向主计算机11发送高速缓冲存储器20的数据(S13)。
然后,对读请求的指令进行请求的传输尺寸是否为预读判定尺寸进行判定(S14),在是预读判定尺寸的情况下,起动预读处理(S15),由此,将预读部分从存储装置12读入到高速缓冲存储器20中,向主计算机11发送高速缓冲存储器20的数据。另一方面,在来自主计算机11的读请求的传输尺寸不相符合于预先设定的多个(n个)预读判定尺寸的任一个的情况下结束处理。
根据这样的第4实施例,因为在从存储装置12读入了由主计算机11接收到的读请求的数据之后,另行从存储装置12读入为其后续的区域的预读部分的数据,所以在以最初的读请求向主计算机11发送数据期间,能够与其并行地开始后续的区域的预读。因此,能够不使由主计算机11接收到的读请求的响应时间延长地执行预读。
图7是表示在根据本发明的第5实施例中的数据存储装置的预读处理的流程图。在该第5实施例中,相对于示于图6中的第4实施例,作为预先设定的预读判定尺寸而设置多个(n个)预读判定尺寸,当来自主计算机11的读请求的传输尺寸相符合于多个预先设定的预读判定尺寸的任一个时,就判断为是有顺序存取性的读请求。在步骤S14的处理变成了步骤S14’这一点上不相同。
即,首先控制装置13的微处理器18若从主计算机11收到读请求处理,则对是否高速缓冲命中进行判定(S11)。在该高速缓冲命中的判定中,在高速缓冲存储器20中没有读指令进行请求的数据的情况下,将传输尺寸部分从存储装置12读入到高速缓冲存储器20中(S12),向主计算机11发送高速缓冲存储器20的数据(S13)。
对来自主计算机11的读请求的传输尺寸是否相符合于预先设定的多个(n个)预读判定尺寸的任一个进行判定(S14’)。判定的结果,在来自主计算机11的读请求的传输尺寸相符合于预先设定的多个(n个)预读判定尺寸的任一个的情况下,起动预读处理(S15),由此,将预读部分从存储装置12读入到高速缓冲存储器20中,向主计算机11发送高速缓冲存储器20的数据。另一方面,在来自主计算机11的读请求的传输尺寸不相符合于预先设定的多个(n个)预读判定尺寸的任一个的情况下则结束处理。
根据第5实施例,因为在第4实施例的效果的基础上,设置多个预读判定尺寸,当传输尺寸相符合于任一个时进行预读,所以能够较宽地设定预读处理的范围。
图8是表示在本发明的第6实施例中的数据存储装置的预读处理的流程图。在该第6实施例中,相对于示于图7中的第5实施例,追加步骤S6,并对来自主计算机11的向高速缓冲存储器20进行了预读的数据的命中率进行判定,而在其命中率超过了阈值的情况下进行预读。还有,追加示于同图或图5中的命中率的计算所需的步骤S6至S9。
首先,控制装置13的微处理器18若从主计算机11接受读请求处理,则对读请求的传输尺寸是否相符合于预先设定的多个(n个)预读判定尺寸的任一个进行判定(S6)。在判定的结果一致于任一个的情况下,将请求计数器增加+1(S7)。其次,微处理器18对在高速缓冲存储器20中是否有从主计算机11接受了的读请求指令进行请求的数据,即,是否高速缓冲命中进行判断。该结果,在判断为高速缓存命中的情况下,将命中计数器增加+1(S9)。
接着控制装置13的微处理器18若从主计算机11接受读请求处理,就对是否高速缓存命中进行判定(S11)。在该高速缓存命中的判定中,在高速缓冲存储器20中没有读请求的指令进行请求的数据的情况下,将传输尺寸部分从存储装置12读入到高速缓冲存储器20中(S12),向主计算机11发送高速缓冲存储器20的数据(S13)。
对来自主计算机11的读请求的传输尺寸是否相符合于预先设定的多个(n个)预读判定尺寸的任一个进行判定(S14’)。判定的结果,在来自主计算机11的读请求的传输尺寸相符合于预先设定的多个(n个)预读判定尺寸的任一个的情况下,对来自主计算机11的向高速缓冲存储器20进行了预读的数据的命中率进行判定(S16),在该命中率超过了阈值的情况下,起动预读处理(S15),由此,将预读部分从存储装置12读入到高速缓冲存储器20中,向主计算机11发送高速缓冲存储器20的数据。另一方面,在来自主计算机11的读请求的传输尺寸不相符合于预先设定的多个(n个)预读判定尺寸的任一个的情况下则结束处理。
在此,虽然根据来自主计算机11的向高速缓冲寄存器20进行了预读的数据的命中率而区分为进行预读的情况和不进行的情况,但是也可以根据来自主计算机11的向高速缓冲寄存器20进行了预读的数据的命中率而改变预读判定尺寸。
根据这样的第6实施例,因为在第5实施例的效果的基础上,在来自主计算机11的向高速缓冲寄存器20进行了预读的数据的命中率超过了阈值的情况下进行预读,所以能够防止进行徒劳的预读。并且,在根据向高速缓冲寄存器进行了预读的数据的命中率而改变了预读判定尺寸的情况下,能够更有效地进行预读。
其次,对进行预读的数据的尺寸进行说明。在预读部分的数据为预先设定的预读判定尺寸的n倍的尺寸大小,或者利用RAID的功能存储装置12由多个存储媒体14构成并管理的情况下,按照数据对于这些多个存储媒体14的配置结构而决定其尺寸。
图9是表示在本发明的第7实施例中的数据存储装置的预读处理的流程图。在该第7实施例中,关于进行预读的数据的尺寸设定多个模式,并在当进行预读处理时决定该模式。在图9中,作为预读尺寸,例如设定将与前述过的系统中固有的指令的分割传输尺寸相同的尺寸作为“预先设定的预读尺寸”的第1模式,为“预先设定的预读判定尺寸的n倍的尺寸”的第2模式,为“依从RAID功能的尺寸”的第3模式;并从这些模式选择1个模式。该模式的设定,通过在控制装置13的本地存储器17内存储模式信息来进行。
首先每当进行预读处理时,微处理器18就对在读指令中所指定的数据尺寸是否为预先设定的预读尺寸的n倍的尺寸大小,即,预读尺寸的决定模式是否为第2模式进行判定(S21)。在预读尺寸的决定模式为预先设定的预读尺寸的n倍的尺寸大小的情况下,微处理器18将预读尺寸决定为所设定的预读尺寸的n倍(S22),并将所决定的预读尺寸部分从存储装置12向高速缓冲存储器20进行数据读入(S23)。
微处理器18在步骤S21的判定中,在读指令中所指定的数据尺寸,预读尺寸的决定模式不是n倍的尺寸大小的情况下,对是否为RAID模式,即,预读尺寸的决定模式是否为第3模式进行判定(S24)。在预读尺寸的决定模式是RAID模式的情况下,把预读尺寸决定为最适合于RAID的结构的传输尺寸(S25),将所决定的预读尺寸部分从存储装置12向高速缓冲存储器20进行数据读入(S23)。
微处理器18在步骤S24的判定中,在读指令中所指定的数据尺寸不是RAID模式的情况下,使预读尺寸的决定模式为预先设定的预读判定尺寸,即第1模式(S26),将所决定的预读尺寸部分从存储装置12向高速缓冲存储器20进行数据读入(S23)。
在此,在将预读的尺寸设定为预读判定尺寸的n倍的情况下,n的值是作为最适合于其系统的值而单独向控制装置13进行设定的值。n并不一定相对于控制装置13固定,也可以按逻辑量单位而变化,或按用途、时间段等而变化。
在将预读的尺寸设定为预读判定尺寸的n倍的情况下,由于进行来自主计算机11的读请求的n倍的尺寸大小的预读,所以在来自主计算机11的读请求具有顺序存取性的情况下,向存储装置12的存取次数最大能够削减到1/n。从而,作为总体能够改善存取时间。
其次,在数据存储装置是通过RAID功能所实现的磁盘阵列装置的情况下,用户的数据在连续性地存储到1台存储装置14存储以外,还跨多个存储媒体14而条带化进行配置。在该情况下,即使从主计算机11看的区域为连续性的,也不一定在作为存储装置12的存储媒体14存储在1个连续区域。从而,即使进行预读,将多大尺寸的数据进行预读最合适,也与数据的配置(条带化)有较大关联。
一般性地,可考虑进行条带化的单位尺寸大小的预读使得多个存储媒体14并列动作。在基于RAID功能的情况下,将该预读尺寸决定为考虑了RAID的条带化结构的值,而追求最高的效率。
根据第7实施例,由于预读尺寸的数据在为预先设定的预读判定尺寸的11倍的尺寸大小或者基于RAID功能的存储装置12的情况下,根据数据对于多个存储媒体14的配置结构而决定其尺寸,所以能够与使用的存储装置12相适应地预先决定预读大小的数据。
权利要求
1.一种数据存储装置,其特征在于,具备包括存储在主计算机进行运算处理的数据的单个或多个记录媒体的存储装置;和连接于该存储装置和前述主计算机、处理两者间的数据传输的控制装置;该控制装置进一步具备控制与前述主计算机之间的连接的第1接口控制电路;控制与前述存储装置的连接的第2接口控制电路;连接于这些第1、第2接口控制电路的微处理器;连接于该微处理器的本地存储器;和同样连接于前述微处理器的高速缓冲存储器;其中,前述微处理器在来自前述主计算机的读请求的传输尺寸与预先设定的预读判定尺寸相同的情况下,判断为是有顺序存取性的读请求,将与该读请求相对应的数据发送给前述主计算机,并且将与该读请求连续的后续的存储区域的数据从前述存储装置向前述高速缓冲存储器先行读入。
2.根据权利要求1所述的数据存储装置,其特征在于前述预先设定的预读判定尺寸是系统固有的分割尺寸。
3.根据权利要求2所述的数据存储装置,其特征在于前述预先设定的预读判定尺寸为2的n次幂KB。
4.根据权利要求1所述的数据存储装置,其特征在于前述控制装置具有多个预读判定尺寸作为预先设定的预读判定尺寸;前述微处理器当来自前述主计算机的读请求的传输尺寸相符合于多个预先设定的预读判定尺寸的任一个时,判断为是有顺序存取性的读请求。
5.根据权利要求1或4所述的数据存储装置,其特征在于前述微处理器根据前述主计算机对预读到前述高速缓冲存储器的数据的命中率而判断是否进行预读。
6.根据权利要求5所述的数据存储装置,其特征在于根据在来自前述主计算机的读请求的传输尺寸与预先设定的1或n个预读判定尺寸相同的情况下增加其值的请求计数值,和在来自前述主计算机的读请求的数据已被读入到高速缓冲存储器中的情况下增加其值的命中计数值,由前述微处理器判定前述数据的命中率。
7.根据权利要求5所述的数据存储装置,其特征在于前述微处理器根据前述主计算机对预读到前述高速缓冲存储器的数据的命中率而改变前述预读判定尺寸。
8.根据权利要求7所述的数据存储装置,其特征在于前述微处理器在根据来自主计算机的读请求从存储装置读入对象的数据时,对于存储装置发出对从主计算机所读请求的数据和预读部分的数据进行了合计的尺寸的读请求从而将主计算机的读请求部分的数据和预读部分的数据一并向高速缓冲存储器读入。
9.根据权利要求1所述的数据存储装置,其特征在于前述微处理器在根据来自主计算机的读请求从存储装置读入对象的数据时,首先,对存储装置发出根据来自主计算机的读请求所指定的尺寸的读请求而将主计算机的读请求部分的数据向高速缓冲存储器读入,其次对存储装置重新发出预读部分的尺寸的读请求而将预读部分的数据向高速缓冲存储器读入。
10.根据权利要求9所述的数据存储装置,其特征在于前述预读部分的数据为预读判定尺寸的n倍的尺寸部分。
11.根据权利要求10所述的数据存储装置,其特征在于前述预读部分的数据,在通过RAID功能管理多个存储装置的情况下,根据数据相对于这些个存储装置的配置结构,决定其尺寸。
12.一种数据存储方法,将在主计算机进行运算处理的数据存储于单个或多个记录媒体,并通过高速缓冲存储器处理前述主计算机和前述存储装置之间的数据传输,其特征在于,包括以下步骤当有了来自前述主计算机的读请求时判定该读请求的数据是否已被读入到高速缓冲存储器中,当高速缓冲存储器中有前述被读请求的数据时将该数据发送给前述主计算机,当前述高速缓冲存储器中没有前述被读请求的数据时判定来自前述主计算机的被读请求的数据的传输尺寸是否与预先设定的预读判定尺寸相同,当来自前述主计算机的被读请求的数据的传输尺寸不与预先设定的预读判定尺寸相同时将与该读请求相对应的数据读出到高速缓冲存储器中并发送给前述主计算机,和在来自前述主计算机的被读请求的数据的传输尺寸与预先设定的预读判定尺寸相同的情况下,将与该读请求相对应的数据读出到高速缓冲存储器中并发送给前述主计算机,并且将与该读请求连续的后续的存储区域的数据从前述存储装置向前述高速缓冲存储器先行读入。
13.根据权利要求12所述的数据存储方法,其特征在于前述预先设定的预读判定尺寸是系统固有的分割尺寸。
14.根据权利要求13所述的数据存储装置,其特征在于前述预先设定的预读判定尺寸为2的n次幂KB。
15.根据权利要求12所述的数据存储方法,其特征在于前述控制装置具有多个预读判定尺寸作为预先设定的预读判定尺寸,前述微处理器当来自前述主计算机的读请求的传输尺寸相符合于多个预先设定的预读判定尺寸的任一个时,判断为是有顺序存取性的读请求。
16.根据权利要求12或15所述的数据存储方法,其特征在于前述微处理器根据前述主计算机对预读到前述高速缓冲存储器的数据的命中率而判断是否进行预读。
17.根据权利要求16所述的数据存储方法,其特征在于根据在来自前述主计算机的读请求的传输尺寸与预先设定的1或n个预读判定尺寸相同的情况下增加其值的请求计数值,和在来自前述主计算机的读请求的数据已被读入到高速缓冲存储器中的情况下增加其值的命中计数值,通过前述微处理器判定前述数据的命中率。
18.根据权利要求16所述的数据存储方法,其特征在于前述微处理器根据前述主计算机对预读到前述高速缓冲存储器的数据的命中率而改变前述预读判定尺寸。
19.根据权利要求18所述的数据存储方法,其特征在于前述微处理器在根据来自主计算机的读请求从存储装置读入对象的数据时,对存储装置发出对从主计算机所读请求的数据和预读部分的数据进行了合计的尺寸的读请求从而将主计算机的读请求部分的数据和预读部分的数据一并向高速缓冲存储器读入。
20.一种数据存储方法,将在主计算机进行运算处理的数据存储于单个或多个记录媒体,并通过高速缓冲存储器处理前述主计算机和前述存储装置之间的数据传输;其特征在于,包括以下步骤当有了来自前述主计算机的读请求时判定前述读请求的数据是否已被读入到高速缓冲存储器中,当高速缓冲存储器中有前述被读请求的数据时将前述数据发送给前述主计算机,当高速缓冲存储器中没有前述被读请求的数据时判定来自前述主计算机的读请求的传输尺寸是否与预先设定的预读判定尺寸相同,当来自前述主计算机的被读请求的数据的传输尺寸不与预先设定的预读判定尺寸相同时将与前述读请求相对应的数据读出到高速缓冲存储器中并发送给前述主计算机,和在来自前述主计算机的被读请求的数据的传输尺寸与预先设定的预读判定尺寸相同的情况下将对与前述读请求相对应的数据和预读部分的数据进行了合计的尺寸的数据一并向高速缓冲存储器读出,并将与前述读请求相对应的数据发送给前述主计算机。
全文摘要
数据存储装置的控制装置(13)内的微处理器(18),在由来自主计算机(11)的读请求所指定的数据的传输尺寸与预先设定的预读判定尺寸相同的情况下,判断为是有顺序存取性的读请求,将与该读请求相对应的数据发送给主计算机(11),并且将与该读请求连续的后续的存储区域的数据从前述存储装置(12)向高速缓冲存储器(20)先行读入。对于有顺序存取性的读请求,能够与减少从控制装置(13)向存储装置(12)的存取次数的同时使响应时间、吞吐性能也得到提高。
文档编号G06F12/08GK101038532SQ20071013595
公开日2007年9月19日 申请日期2007年3月13日 优先权日2006年3月13日
发明者笹本享一 申请人:株式会社东芝, 东芝解决方案株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1