Sas扩展器中数据预取的制作方法

文档序号:6357669阅读:203来源:国知局
专利名称:Sas扩展器中数据预取的制作方法
技术领域
本公开大体上涉及串行连接小型计算机系统接口(SAQ设备领域,尤其涉及一种利用SAS扩展器实现数据预取的设备、系统和方法。
背景技术
在串行连接SCSI中,设备是SAS发起者、SAS目标、或SAS扩展器。SAS发起者是引发设备服务请求和任务管理请求的设备。SAS目标是接收并处理来自SAS目标的请求的设备。SAS扩展器是用来促进多SAS发起者或目标到单个端口之间通信的设备。在SAS拓扑中,多SAS扩展器可以级联形式相互连接。当在SAS拓扑内发生多个到SAS发起者或SAS 目标的请求时,SAS发起者或SAS目标可能忙于执行其它的任务。

发明内容
一种促进存储系统中数据读取的方法,包括,但不限于收集与发起者和目标之间的连接相关的数据访问信息,确定所述发起者和所述目标之间的连接是否超出一使用率阈值,该确定基于与所述发起者和所述目标之间的连接相关的数据访问信息,接收来自所述发起者的第一数据请求,该第一数据请求针对所述目标的至少一个第一数据块,在确定所述发起者和所述目标之间的连接超出所述使用率阈值后,基于所述第一数据请求识别所述目标的至少一个第二可能被访的数据块,并将所述至少一个第二可能被访的数据块包括在来自所述发起者的未来数据请求内,发出第二数据请求到所述目标,该第二数据请求针对所述的至少一个第二可能被访的数据块,接收来自所述目标的所述至少一个第二可能被访的数据块,并在SAS扩展器内存储来自所述目标的所述至少一个第二可能被访的数据块。一种系统,可以包括,但不限于用于收集与发起者和目标之间的连接相关的数据访问信息的装置,用于确定所述发起者和所述目标之间的连接是否超出一使用率阈值的装置,该确定基于与所述发起者和所述目标之间的连接相关的数据访问信息,用于为所述目标的至少一个第一数据块接收来自所述发起者的第一数据请求的装置,用于在确定所述发起者和所述目标之间的连接超出使用率阈值后,基于所述第一数据请求识别所述目标的至少一个第二可能被访的数据块,并将所述至少一个第二可能被访的数据块包括在来自所述发起者的未来数据请求内的装置,用于为所述的至少一个第二可能被访的数据块发出第二数据请求到所述目标的装置,用于接收来自所述目标的所述至少一个第二可能被访的数据块并在SAS扩展器内存储来自所述目标的所述至少一个第二可能被访的数据块的装置。一种SAS扩展器设备,可以包括,但不限于第一端口,其与发起者通信地耦接用于数据通信,第二端口,其与目标通信地耦接用于数据通信,用于存储数据的缓冲存储器, 以及通信地耦接到所述第一端口、第二端口和缓冲存储器的处理器,该处理器被构形以执行一种促进数据读取的方法,该方法包括以下步骤收集与发起者和目标之间的连接相关的数据访问信息,确定所述发起者和所述目标之间的连接是否超出一使用率阈值,该确定基于与所述发起者和所述目标之间的连接相关的数据访问信息,为所述目标的至少一个第一数据块接收来自所述发起者的第一数据请求,在确定所述发起者和所述目标之间的连接超出使用率阈值后,基于所述第一数据请求识别所述目标的至少一个第二可能被访的数据块,并将所述至少一个第二可能被访的数据块包括在来自所述发起者的未来数据请求内, 为所述的至少一个第二可能被访的数据块发出第二数据请求到所述目标,接收来自所述目标的所述至少一个第二可能被访的数据块并在所述缓冲存储器内存储来自所述目标的所述至少一个第二可能被访的数据块。需要理解的是,上述大体的描述和以下详细的说明都只是示范性和解释性说明并不是本公开必要的限制。附图,其被包含在说明书中并构成说明书的一部分,阐明了本公开的主旨。同时,说明书和附图用于解释本公开的原理。


本领域一般技术人员通过参照以下附图可更好理解本公开的众多优势,其中图1是阐述使用SAS扩展器的网络拓扑的框图;图2是阐述用于数据预取的指令序列程序的流程图;和图3是阐述促进存储系统中数据读取的方法的流程图。
具体实施例方式现在将详细地对本公开的主题进行参照,其在附图中做出了阐述。图1示出了本公开示例实施例所述的SAS扩展器为特征的串行连接小型计算机系统接口(SAQ网络。所述网络100可以包括SAS扩展器110。网络100可以包括一个或多个与扩展器110连接的源设备120用以数据通信。例如,源设备120可包括发起者(例如主机系统,服务器系统)或另一 SAS扩展器。所述一个或多个源设备120可以通过扩展器 110的源设备端口 130连接扩展器110。网络100可以包括一个或多个与扩展器110连接的目标设备140用以数据通信。例如,目标设备140可包括一目标(例如SAS磁盘、SAS兼容磁盘、SAS磁盘阵列、或SATA磁盘阵列)或另一 SAS扩展器。所述一个或多个目标设备 140可通过扩展器110的目标设备端口 150连接扩展器110。扩展器110可进一步包括用于扩展器110的控制和操作的处理器160。扩展器110 可进一步包括与处理器160通信地耦接的存储器170用以扩展器110内数据的存储。扩展器110可以被构形以建立通过源设备端口 130连接到扩展器110的发起者与通过目标设备端口 150连接到扩展器110的目标之间的连接。扩展器110可以为通过源设备端口 130(例如源设备120)直接连接到扩展器110的发起者建立连接或可以为通过一个或多个通过源设备端口 130连接到扩展器110的扩展器的网络连接到扩展器110的发起者建立连接。扩展器110可以建立与通过源设备端口 130(例如目标设备120)直接连接到扩展器110的目标的连接或可以建立与通过一个或多个通过目标设备端口 150连接到扩展器110的扩展器的网络连接到扩展器110的目标的连接。建立的包括网络100的特定发起者和网络100的特定目标的连接被称为节点。如图1所示,处理器160和存储器170可以在扩展器110内运行。在另一实施例中,一个或多个处理器160和存储器170可以作为存储系统的部分在扩展器110外部运行。扩展器110的处理器160可以收集与网络100的特定节点相关的数据访问信息。链路利用信息可以包括与单个端口(如源设备端口 130或目标设备端口 150中的一个)相关的信息。例如,链路利用信息可以包括一个或多个利用率(例如链路被使用时间与链路被建立时间的比率)或带宽要求(如链路上传输数据的速度)。处理器160可以收集为特定的发起者和特定的目标建立的连接的多组链路利用信息并修改所述链路利用信息以提供节点利用信息。节点利用信息可以包括一个或多个节点利用率(例如节点被使用时间与节点被建立时间的比率)或节点带宽要求(例如节点上传输的数据的速度)。处理器160 可以通过节点利用信息收集与网络100的特定节点相关的数据访问信息。与网络100的特定节点相关的数据访问信息可以进一步包括与由扩展器110执行的储存和转发过程相关的信息。在储存和转发过程中,扩展器可以接收来自发起者的连接。 扩展器可以在建立与该连接的期望目标的连接之前缓冲来自该发起者的输出帧。执行储存和转发过程可以提供扩展器访问含有一个或多个连接的有效载荷大小的数据访问信息 (例如被转移到单个帧的数据量)、一个或多个与连接的数据相关的标签(例如,单个输入 /输出的指定的标识符)、与该连接相关的逻辑块地址(LBAs),或与该连接相关的指令。在一示例中,主机可以发起通过扩展器连接到驱动器。在另一示例中,驱动器可以发起通过扩展器连接到主机。存储和转发数据访问信息可以通过处理器160收集和修改以提供与网络 100的特定节点相关的数据访问信息。处理器160可以通过所述存储和转发数据访问信息收集与网络100的特定节点相关的数据访问信息。处理器160可以修改一个或多个存储和转发数据访问信息或链路利用信息以提供与网络100的特定节点的使用率的频率相关的信息。而且,处理器160可以修改一个或多个存储和转发数据访问信息或链路利用信息以提供与在网络100的特定节点上传输的数据量相关的信息。处理器160可以利用与特定节点相关的信息来确定数据预取操作是否适用于网络100的特定节点(例如,是否网络100的特定节点具有高效利用)。使用率阈值可以包括一种或多种类型的与特定节点相关的信息。例如,处理器160可以确定是否与网络100的特定节点相关的数据访问信息满足或超出使用率阈值。在一示例中,处理器160可以利用矩阵来确定是否所述与特定节点相关的信息满足或超出使用率阈值。使用率阈值可以是可编程的。而且,使用率阈值可以是用户可配置的。处理器160可以为数据预取操作识别数据块。而且,在确定是否数据预取操作适用于网络100的特定节点后为数据预取操作识别数据块。例如,处理器160可以为特定节点接收数据读取请求(例如,数据读取请求由所述节点的发起者发出并且所述数据读取请求被指向所述节点的目标)。所述数据读取请求可以为源数据集。在接收所述数据读取请求之前,处理器160可以已确定适用于与数据读取请求相关的节点的数据预取操作。在另一实施例中,在接收所述数据读取请求之后,所述处理器160可以确定数据预取操作是否适用于与数据读取请求相关的节点。处理器160可以基于所述源数据集为数据预取操作识别潜在数据集。例如,处理器160可以基于邻近所述源数据集识别潜在数据集(例如,所述潜在数据集位于邻近所述源数据集的LBA的LBA内)。在另一示例中,处理器160可以基于与所述源数据集相关的内容识别潜在数据集(例如,所述潜在数据集和所述源数据集都是一更大数据集的部分)。 在另一示例中,处理器160可以基于与源数据集相关的时间识别潜在数据集(例如,在所述潜在数据集的先前数据读取请求之后所述源数据集的先前数据读取请求已被发出)。在另一示例中,处理器160可以基于一个或多个上述的因素或关联识别潜在数据集(例如邻近性、内容性、和时间)。在识别一潜在数据集之后,在为潜在数据集接收来自所述节点的发起者的数据读取请求之前,处理器160可以为该潜在数据集发出数据读取请求到节点的目标。例如,处理器160可以结合所述潜在数据集与所述源数据集发出一个或多个数据读取请求。在另一示例中(未示出),处理器160可以为所述潜在数据集和所述源数据集发出独立的数据读取请求。在处理器160可以为所述潜在数据集和所述源数据集发出独立的数据读取请求的示例中,处理器160可以在为所述源数据集发出数据读取请求之后为所述潜在数据集发出数据读取请求。而且,在所述数据读取请求的目标(例如所述节点的目标)减少活动时(例如目标闲置时),处理器160可以为潜在数据集发出数据请求。接收来自所述节点的目标的潜在数据集后,处理器160可以存储所述潜在数据集于扩展器110的存储器170内。如在此使用的,预取所述潜在数据集可以指为所述潜在数据集接收来自节点的发起者的数据读取请求之前为所述潜在数据集发出数据读取请求到所述节点的目标。如在此使用的,预取所述潜在数据集的高速缓存可以指的是在为所述潜在数据集接收来自节点的发起者的数据读取请求之前存储所述潜在数据集于存储器170内。处理器160可以在为所述潜在数据集接收来自节点的发起者的数据读取请求之后发布所述潜在数据集到节点的发起者。在另一示例中,存储于存储器170内的所述潜在数据集可被用于实现到除了所述节点的发起者的一发起者的数据读取请求。而且,处理器 160可以在确定存储于存储器170内的所述潜在数据集有效之后发布所述潜在数据集到来自扩展器110的存储器170的发起者。例如,正如扩展器110可以直接连接节点的目标,处理器160可以监控与节点的目标的数据通信,以确定存储在所述节点的目标内所述潜在数据集的LBAs内的数据是否与存储在存储器170内的潜在数据集相同。在确定存储于存储器170内的潜在数据集无效之后,处理器160可以更新存储于存储器170内的潜在数据集。 例如,处理器160可以通过发出数据读取请求到节点的目标来更新存储于存储器170内的潜在数据集。在另一示例中,处理器160可以利用通过扩展器110写入节点的目标的数据来更新存储于存储器170内的潜在数据集。在另一实施例中,处理器160可以从存储器170 清除无效的潜在数据集并允许潜在数据集的数据读取请求操作而没有受益于数据预取。在确定节点的目标很忙之后,处理器160可以发布潜在数据集到来自存储器170 的发起者。在另一实施例中,不论节点的目标是否很忙,处理器160可以发布潜在数据集到来自存储器170的发起者。为了发布潜在数据集到来自存储器170的发起者,扩展器110 可以代表节点的目标接收所述数据读取请求。一般参照附图2,提供的流程图阐述了用于数据预取的指令序列程序200。程序 200可以在如图1中所述的系统中实现(例如含有主机202的系统(如节点的发起者)、扩展器204、和驱动器206 (如节点的目标))。程序200可能包含步骤210阐述了位于驱动器 206的一组LBA内的数据的数据读取请求(例如图2中所示的LBAs 1、2、和3)。扩展器204 的处理器(如处理器160)可以确定位于主机202和驱动器206之间的节点是数据预取的候选者。而且,处理器(如处理器160)可以在接收步骤210的数据读取请求之前确定位于主机202和驱动器206之间的节点是数据预取的候选者。在另一示例中,处理器(如处理器160)可以在接收步骤210的数据读取请求之后确定位于主机202和驱动器206之间的节点是数据预取的候选者。如图2中所述,扩展器204(例如,通过处理器160)基于所述源数据集识别潜在数据集(例如,LBAs 4和5内的数据是基于LBAs 1、2和3内的数据识别的)。因此,如步骤 220所示,扩展器204对所述源数据集和所述潜在数据集(例如,在LBAs 1、2、3、4和5内的数据)均发出单一的数据读取请求到所述驱动器206(例如,节点的目标)。响应所述数据读取请求,驱动器可以读取存储在LBAs 1至5内的数据。例如,如步骤220所示,驱动器 206可以为LBA 1执行查找指令和顺序读取直到LBA 5。用于读取所述源数据集和所述潜在数据集的其它方法均通过本公开而想到。在另一实施例中,扩展器204可以发出所述源数据集和所述潜在数据集(未示出) 的独立数据读取请求至所述驱动器206。在这特定的实施例中,在所述驱动器206活动减少时(例如,当驱动器206闲置时)扩展器204可以发出数据读取请求至所述驱动器206。程序200可以进一步包括步骤230,其阐述了驱动器206返回LBAs 1至5内的数据至扩展器204。扩展器204可以在接收来自驱动器206的数据之后存储所述潜在数据集于所述预取缓存内。例如,处理器160可以存储来自驱动器206的LBAs4和5的数据于存储器170内。程序200可以进一步包括步骤M0,其阐述了扩展器204返回所述源数据读取请求的源数据集至所述主机(例如,节点的发起者)。例如,处理器160可以返回来自LBAs 1-3 的被请求的数据至发行主机。主机202可以使用该被请求的数据。程序200可以进一步包括步骤250,其阐述了主机202请求一个或多个来自所述驱动器206的可能被访的数据块。例如,如图2中所示,主机202可以对存储于所述驱动器 206的LBA 4内的数据发出数据读取请求至扩展器204。在确定存储于存储器170内的数据有效之后(例如,存储于存储器170内的数据与驱动器206内的相应的数据相同),扩展器204可以代表驱动器206接收该数据读取请求。程序200可以进一步包括步骤沈0,其阐述了扩展器204从存储器170返回所述的一个或多个可能被访的数据块至主机202。在识别存储于存储器170内的所述的一个或多个可能被访的数据块有效之后,扩展器204可以从存储器170返回一个或多个可能被访的数据块至主机202。在为一个或多个所述可能被访的数据块接收所述数据读取请求之后,扩展器204可以识别存储于存储器170内的数据是有效的。在另一示例中,扩展器204可以通过在存储所述可能被访的数据块于存储器170之后监控写入驱动器206的数据来验证存储于存储器170内的数据是有效的。主机202可以在接收来自扩展器204的一个或多个可能被访的数据块之后使用所述一个或多个可能被访的数据块。一般参照图3,示出了一种促进存储系统中数据读取的方法。所述方法300可以包括步骤305,其阐述了收集与发起者(例如主机20 和目标(例如驱动器206)之间的连接相关的数据访问信息。例如,扩展器110的处理器160可以收集与网络100的特定节点相关的数据访问信息。方法300可以进一步包括步骤310,其阐述了确定所述发起者(例如主机202)和目标(例如驱动器206)之间的连接是否超出一使用率阈值。例如,处理器160 可以利用与特定节点相关的信息来确定数据预取操作是否适用于网络100的特定节点。方法300可以进一步包括步骤315,其阐述了为所述目标的至少一个第一数据块接收来自所述发起者的第一数据请求。例如,处理器160可以为节点接收数据读取请求(例如,通过所述节点的发起者发出的数据读取请求(如主机20 和被指向所述节点的目标的数据读取请求(如驱动器206))。所述数据读取请求可以是为一源数据集。方法300可以进一步包括步骤320,其阐述了在确定所述发起者和所述目标之间的连接超出使用率阈值之后,基于所述第一数据请求为来自所述发起者的未来数据请求内的内含物(inclusion) 识别所述目标的至少一个第二可能被访的数据块。例如,处理器160可以在确定数据预取操作是否适用于网络100的特定节点之后为数据预取操作识别数据块。方法300可以进一步包括步骤325,其阐述了为所述的至少一个第二可能被访的数据块发出第二数据请求至所述目标。例如,在为所述潜在数据集接收来自节点的发起者的数据读取请求之前,处理器160可以对所述潜在数据集发出数据读取请求至所述节点的所述目标。方法300可以进一步包括步骤330,其阐述了接收来自所述目标的所述至少一个第二可能被访的数据块。例如,处理器160可以接收来自所述节点的目标的潜在数据集。方法300可以进一步包括步骤335,其阐述了在所述SAS扩展器内存储来自所述目标的至少一个第二可能被访的数据块。例如,在接收来自所述节点的目标的潜在数据集之后,处理器160可以存储所述潜在数据集于扩展器110的存储器170内。方法300可以进一步包括步骤340,其阐述了为来自所述目标的至少一个第二可能被访的数据块中的至少一个接收来自所述发起者的第三数据请求。例如,处理器160可以为来自所述节点的发起者的潜在数据集接收数据读取请求。方法300可以进一步包括步骤345,其阐述了确定存储于SAS扩展器内的至少一个第二可能被访的数据块中的至少一个是否有效。例如,处理器160可以监控与所述节点的目标的数据通信以确定存储于所述节点的目标内的潜在数据集的LBAs内的数据是否与存储于存储器170内的潜在数据集相同。方法300可以进一步包括步骤350,其阐述了在确定至少一个第二可能被访的数据块中的至少一个有效之后发送至少一个第二可能被访的数据块中的至少一个至所述发起者。例如,在确定存储于存储器170内的潜在数据集有效之后,处理器160可以发布所述潜在数据集至来自扩展器110的存储器170的发起者。方法300可以进一步包括步骤355,其阐述了在确定所述存储于SAS扩展器内的至少一个第二可能被访的数据块无效之后更新存储于SAS扩展器内的至少一个第二可能被访的数据块。例如,处理器160可以在确定存储于存储器170内的潜在数据集无效之后,更新存储于存储器170内的潜在数据集。在本公开中,公开的所述方法可以由设备可读取的指令集或软件或固件实现。这样的软件可以包括计算机程序产品,其利用含有用于编程计算机处理器的储存的计算机代码的计算机可读存储介质以实现本公开的功能和本发明的过程。所述计算机可读介质可以包括,但不限于任何类型的传统式软盘、光盘、CD-ROM、磁盘、硬盘驱动器、磁光盘、ROM、RAM、 EPROM、EEPR0M、磁卡或光卡,或任何其它适合的用于存储电子指令的介质。而且,据了解本公开的方法中的具体的顺序或步骤的层级是示范方法的示例。基于设计偏好,据了解本方法中的具体的顺序或步骤的层级能够在保留于本公开发明主旨的同时进行重新排列。所附方法权利要求呈现出在一示例顺序中多个步骤要素,并非意味着受到本发明的具体顺序或步骤层级的限制。可以认为本公开和它伴随的众多优势将通过上述说明来理解,显然,在不偏离本发明的主旨或不牺牲所有实质性优势的情况下可以进行形式上、结构和部件安排的各种变型。所述的形式仅仅是解释性的,且以下所附权利要求的目的是包含并包括这些变型。
权利要求
1.一种促进包含SAS扩展器的存储系统中数据读取的方法,该方法包括 收集与一发起者和一目标之间的一连接相关的数据访问信息;确定所述发起者和所述目标之间的所述连接是否超出一使用率阈值,该确定基于与所述发起者和所述目标之间的所述连接相关的所述数据访问信息;接收来自所述发起者的一数据请求,该数据请求针对所述目标的至少一个数据块; 在确定所述发起者和所述目标之间的所述连接超出所述使用率阈值之后,基于所述数据请求识别所述目标的至少一个可能被访的数据块,并将所述至少一个可能被访的数据块包括在来自所述发起者的一未来数据请求内;发出一数据请求至所述目标,所述数据请求针对所述至少一个可能被访的数据块;接收来自所述目标的所述至少一个可能被访的数据块;和在所述SAS扩展器内存储来自所述目标的所述至少一个可能被访的数据块。
2.如权利要求1所述的方法,进一步包括接收来自所述发起者的一数据请求,该数据请求针对所述目标的所述至少一个可能被访的数据块;确定存储于所述SAS扩展器内的所述至少一个可能被访的数据块是否有效;和在确定至少一个第二可能被访的数据块有效之后发送所述至少一个可能被访的数据块至所述发起者。
3.如权利要求1所述的方法,其中所述收集与所述发起者和所述目标之间的所述连接相关的信息包括收集与所述发起者和所述目标之间的所述连接的一使用率的频率或在所述发起者和所述目标之间的所述连接上传输的一数据量中的至少一个相关的信息。
4.如权利要求1所述的方法,其中与所述发起者和所述目标之间的所述连接相关的所述信息包括通过所述扩展器的一存储转发过程收集的信息。
5.如权利要求4所述的方法,其中通过所述扩展器的一存储转发过程收集的所述信息包括有效载荷大小信息、标签信息、逻辑块地址信息、或在所述发起者和所述目标之间的所述连接上发送的指令的标识。
6.如权利要求1所述的方法,其中所述使用率阈值包括一用户可配置的使用率阈值和一可编程使用率阈值中的至少一个。
7.如权利要求1所述的方法,其中所述在确定所述发起者和所述目标之间的所述连接超出所述使用率阈值之后,基于所述数据请求识别所述目标的至少一个可能被访的数据块,并将所述至少一个可能被访的数据块包括在来自所述发起者的一未来数据请求内包括基于一系列在先被请求的数据块识别所述目标的至少一个可能被访的数据块。
8.如权利要求1所述的方法,其中所述在确定所述发起者和所述目标之间的所述连接超出所述使用率阈值之后,基于所述数据请求识别所述目标的至少一个可能被访的数据块,并将所述至少一个可能被访的数据块包括在来自所述发起者的一未来数据请求内包括基于邻近所述至少一个数据块的逻辑块地址识别所述至少一个可能被访的数据块。
9.如权利要求1所述的方法,其中所述在确定所述发起者和所述目标之间的所述连接超出所述使用率阈值之后,基于所述数据请求识别所述目标的至少一个可能被访的数据块,并将所述至少一个可能被访的数据块包括在来自所述发起者的一未来数据请求内包括基于与所述至少一个数据块相关的内容识别所述至少一个可能被访的数据块。
10.如权利要求1所述的方法,其中所述发出一数据请求至所述目标,所述数据请求针对所述至少一个可能被访的数据块包括结合所述至少一个数据块和所述至少一个可能被访的数据块发出至少一个数据请求。
11.如权利要求1所述的方法,其中所述发出一数据请求至所述目标,所述数据请求针对所述至少一个可能被访的数据块包括为所述至少一个第一数据块发出至少一个第一数据请求和为所述至少一个可能被访的数据块发出至少一个数据请求。
12.如权利要求1所述的方法,进一步包括在确定所述SAS扩展器内的所述至少一个可能被访的数据块无效之后,更新存储于所述SAS扩展器内的所述至少一个可能被访的数据块。
13.一种系统,包括用于收集与一发起者和一目标之间的一连接相关的数据访问信息的装置;用于确定所述发起者和所述目标之间的所述连接是否超出一使用率阈值的装置,该确定基于与所述发起者和所述目标之间的所述连接相关的所述数据访问信息;用于接收来自所述发起者的一数据请求的装置,该数据请求针对所述目标的至少一个数据块;用于在确定所述发起者和所述目标之间的连接超出所述使用率阈值之后,基于所述数据请求识别所述目标的至少一个可能被访的数据块,并将所述至少一个可能被访的数据块包括在来自所述发起者的一未来数据请求内的装置;用于发出一数据请求至所述目标的装置,所述数据请求针对所述至少一个可能被访的数据块;用于接收来自所述目标的所述至少一个可能被访的数据块的装置;和用于存储来自所述目标的所述至少一个可能被访的数据块的装置。
14.如权利要求13所述的系统,进一步包括用于接收来自所述发起者的一数据请求的装置,该数据请求针对所述目标的所述至少一个可能被访的数据块;用于确定存储于所述SAS扩展器内的所述至少一个可能被访的数据块是否有效的装置;和用于在确定所述至少一个存储的可能被访的数据块有效之后发送所述至少一个存储的可能被访的数据块至所述发起者的装置。
15.如权利要求13所述的系统,其中用于收集与所述发起者和所述目标之间的所述连接相关的信息的所述装置包括用于收集与所述发起者和所述目标之间的所述连接的一使用率的频率或所述发起者和所述目标之间的所述连接上传输的一数据量中的至少一个相关的信息的装置。
16.如权利要求13所述的系统,其中与发起者和所述目标之间的所述连接相关的所述信息包括有效载荷大小信息、标签信息、逻辑块地址信息、或在所述发起者和所述目标之间的所述连接上发送的指令的标识。
17.如权利要求13所述的系统,进一步包括用于在确定所述SAS扩展器内的所述至少一个第二可能被访的数据块无效之后更新存储于SAS扩展器内的所述至少一个第二可能被访的数据块的装置。
18.—种SAS扩展器设备,包括一第一端口,其用于与一发起者通信地耦接以数据通信; 一第二端口,其用于与一目标通信地耦接以数据通信; 一缓冲存储器,其用于存储数据;和一处理器,其通信地耦接所述第一端口、所述第二端口和所述缓冲存储器,该处理器被构形以执行一促进数据读取的方法,该方法包括以下步骤收集与一发起者和一目标之间的一连接相关的数据访问信息,该数据访问信息包括以下至少一个所述发起者和所述目标之间的所述连接的一使用率的频率、所述发起者和所述目标之间的所述连接上传输的一数据量、有效载荷大小信息、标签信息、逻辑块地址信息,以及所述发起者和所述目标之间的所述连接上发送的指令的标识;确定所述发起者和所述目标之间的所述连接是否超出一使用率阈值,该确定基于与所述发起者和所述目标之间的所述连接相关的所述数据访问信息;接收来自所述发起者的一数据请求,该数据请求针对所述目标的至少一个数据块; 在确定所述发起者和所述目标之间的所述连接超出所述使用率阈值之后,基于所述数据请求识别所述目标的至少一个可能被访的数据块,并将所述至少一个可能被访的数据块包括在来自所述发起者的一未来数据请求内;发出一数据请求至所述目标,所述数据请求针对所述的至少一个可能被访的数据块; 接收来自所述目标的所述至少一个可能被访的数据块;并存储来自所述目标的所述至少一个可能被访的数据块于所述缓冲存储器内; 接收来自所述发起者的一数据请求,该数据请求针对为所述至少一个储存的可能被访的数据块;确定存储于所述SAS扩展器内的所述至少一个储存的可能被访的数据块是否有效; 在确定所述至少一个储存的可能被访的数据块有效之后发送来自所述缓冲存储器的所述至少一个可能被访的数据块中的至少一个至所述发起者;和在确定所述至少一个储存的可能被访的数据块无效之后更新存储于所述SAS扩展器内的所述至少一个储存的可能被访的数据块。
19.如权利要求18所述的SAS扩展器,其中所述的在确定所述发起者和所述目标之间的所述连接超出所述使用率阈值之后,基于所述数据请求识别所述目标的至少一个可能被访的数据块,并将所述至少一个可能被访的数据块包括在来自所述发起者的一未来数据请求内包括基于一系列在先被请求的数据块识别所述目标的至少一个可能被访的数据块。
20.如权利要求18所述的SAS扩展器,其中所述的在确定所述发起者和所述目标之间的所述连接超出所述使用率阈值之后,基于所述数据请求识别所述目标的至少一个可能被访的数据块,并将所述至少一个可能被访的数据块包括在来自所述发起者的一未来数据请求内包括基于邻近所述至少一个数据块的逻辑块地址识别所述至少一个可能被访的数据块。
全文摘要
SAS扩展器中数据预取。一种SAS扩展器,收集与节点相关的数据访问信息并确定数据预取是否恰当。所述SAS扩展器利用所述的节点的在先数据请求识别潜在的数据块。所述SAS扩展器为所述潜在的数据块发出数据请求至目标。所述SAS扩展器将所述潜在的数据块存储于预取高速缓存内用于数据读取内未来使用。
文档编号G06F12/06GK102486752SQ20111008606
公开日2012年6月6日 申请日期2011年4月7日 优先权日2010年12月3日
发明者加布里埃尔·L·罗梅罗, 弗雷德里克·G·史密斯 申请人:Lsi公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1