CN102486752A - Sas扩展器中数据预取 - Google Patents

Sas扩展器中数据预取 Download PDF

Info

Publication number
CN102486752A
CN102486752A CN2011100860625A CN201110086062A CN102486752A CN 102486752 A CN102486752 A CN 102486752A CN 2011100860625 A CN2011100860625 A CN 2011100860625A CN 201110086062 A CN201110086062 A CN 201110086062A CN 102486752 A CN102486752 A CN 102486752A
Authority
CN
China
Prior art keywords
data
target
promoter
data block
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011100860625A
Other languages
English (en)
Other versions
CN102486752B (zh
Inventor
加布里埃尔·L·罗梅罗
弗雷德里克·G·史密斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avago Technologies General IP Singapore Pte Ltd
Original Assignee
Infineon Technologies North America Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies North America Corp filed Critical Infineon Technologies North America Corp
Publication of CN102486752A publication Critical patent/CN102486752A/zh
Application granted granted Critical
Publication of CN102486752B publication Critical patent/CN102486752B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Abstract

SAS扩展器中数据预取。一种SAS扩展器,收集与节点相关的数据访问信息并确定数据预取是否恰当。所述SAS扩展器利用所述的节点的在先数据请求识别潜在的数据块。所述SAS扩展器为所述潜在的数据块发出数据请求至目标。所述SAS扩展器将所述潜在的数据块存储于预取高速缓存内用于数据读取内未来使用。

Description

SAS扩展器中数据预取
技术领域
本公开大体上涉及串行连接小型计算机系统接口(SAS)设备领域,尤其涉及一种利用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扩展器为特征的串行连接小型计算机系统接口(SAS)网络。所述网络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可以进一步包括步骤240,其阐述了扩展器204返回所述源数据读取请求的源数据集至所述主机(例如,节点的发起者)。例如,处理器160可以返回来自LBAs 1-3的被请求的数据至发行主机。主机202可以使用该被请求的数据。
程序200可以进一步包括步骤250,其阐述了主机202请求一个或多个来自所述驱动器206的可能被访的数据块。例如,如图2中所示,主机202可以对存储于所述驱动器206的LBA 4内的数据发出数据读取请求至扩展器204。在确定存储于存储器170内的数据有效之后(例如,存储于存储器170内的数据与驱动器206内的相应的数据相同),扩展器204可以代表驱动器206接收该数据读取请求。
程序200可以进一步包括步骤260,其阐述了扩展器204从存储器170返回所述的一个或多个可能被访的数据块至主机202。在识别存储于存储器170内的所述的一个或多个可能被访的数据块有效之后,扩展器204可以从存储器170返回一个或多个可能被访的数据块至主机202。在为一个或多个所述可能被访的数据块接收所述数据读取请求之后,扩展器204可以识别存储于存储器170内的数据是有效的。在另一示例中,扩展器204可以通过在存储所述可能被访的数据块于存储器170之后监控写入驱动器206的数据来验证存储于存储器170内的数据是有效的。主机202可以在接收来自扩展器204的一个或多个可能被访的数据块之后使用所述一个或多个可能被访的数据块。
一般参照图3,示出了一种促进存储系统中数据读取的方法。所述方法300可以包括步骤305,其阐述了收集与发起者(例如主机202)和目标(例如驱动器206)之间的连接相关的数据访问信息。例如,扩展器110的处理器160可以收集与网络100的特定节点相关的数据访问信息。方法300可以进一步包括步骤310,其阐述了确定所述发起者(例如主机202)和目标(例如驱动器206)之间的连接是否超出一使用率阈值。例如,处理器160可以利用与特定节点相关的信息来确定数据预取操作是否适用于网络100的特定节点。
方法300可以进一步包括步骤315,其阐述了为所述目标的至少一个第一数据块接收来自所述发起者的第一数据请求。例如,处理器160可以为节点接收数据读取请求(例如,通过所述节点的发起者发出的数据读取请求(如主机202)和被指向所述节点的目标的数据读取请求(如驱动器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、EEPROM、磁卡或光卡,或任何其它适合的用于存储电子指令的介质。而且,据了解本公开的方法中的具体的顺序或步骤的层级是示范方法的示例。基于设计偏好,据了解本方法中的具体的顺序或步骤的层级能够在保留于本公开发明主旨的同时进行重新排列。所附方法权利要求呈现出在一示例顺序中多个步骤要素,并非意味着受到本发明的具体顺序或步骤层级的限制。
可以认为本公开和它伴随的众多优势将通过上述说明来理解,显然,在不偏离本发明的主旨或不牺牲所有实质性优势的情况下可以进行形式上、结构和部件安排的各种变型。所述的形式仅仅是解释性的,且以下所附权利要求的目的是包含并包括这些变型。

Claims (20)

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扩展器,其中所述的在确定所述发起者和所述目标之间的所述连接超出所述使用率阈值之后,基于所述数据请求识别所述目标的至少一个可能被访的数据块,并将所述至少一个可能被访的数据块包括在来自所述发起者的一未来数据请求内包括:
基于邻近所述至少一个数据块的逻辑块地址识别所述至少一个可能被访的数据块。
CN201110086062.5A 2010-12-03 2011-04-07 Sas扩展器中数据预取 Active CN102486752B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/960,118 2010-12-03
US12/960,118 US8566496B2 (en) 2010-12-03 2010-12-03 Data prefetch in SAS expanders

Publications (2)

Publication Number Publication Date
CN102486752A true CN102486752A (zh) 2012-06-06
CN102486752B CN102486752B (zh) 2016-05-04

Family

ID=45747082

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110086062.5A Active CN102486752B (zh) 2010-12-03 2011-04-07 Sas扩展器中数据预取

Country Status (6)

Country Link
US (1) US8566496B2 (zh)
EP (1) EP2461245A3 (zh)
JP (1) JP5480834B2 (zh)
KR (1) KR101378270B1 (zh)
CN (1) CN102486752B (zh)
TW (1) TWI444833B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104601711A (zh) * 2015-01-27 2015-05-06 曙光云计算技术有限公司 用于云服务器的基于fpga的数据存储方法和系统
CN104956348A (zh) * 2013-04-02 2015-09-30 惠普发展公司,有限责任合伙企业 Sata发起方寻址和存储设备分片

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8626981B1 (en) * 2011-03-24 2014-01-07 Maxim Integrated Products, Inc. SAS expander with non-blocking virtual PHY architecture
US8689044B2 (en) * 2011-11-16 2014-04-01 Hewlett-Packard Development Company, L.P. SAS host controller cache tracking
US8694826B2 (en) * 2012-02-29 2014-04-08 Hewlett-Packard Development Company, L.P. SAS host cache control
US8898506B2 (en) 2012-07-25 2014-11-25 Lsi Corporation Methods and structure for hardware serial advanced technology attachment (SATA) error recovery in a serial attached SCSI (SAS) expander
US8589607B1 (en) * 2012-08-07 2013-11-19 Lsi Corporation Methods and structure for hardware management of serial advanced technology attachment (SATA) DMA non-zero offsets in a serial attached SCSI (SAS) expander
US8756345B2 (en) 2012-10-31 2014-06-17 Lsi Corporation Methods and structure for managing protection information with a serial attached SCSI expander
US8904108B2 (en) 2012-10-31 2014-12-02 Lsi Corporation Methods and structure establishing nested Redundant Array of Independent Disks volumes with an expander
US8782292B2 (en) 2012-10-31 2014-07-15 Lsi Corporation Methods and structure for performing a rebuild of a logical volume with a serial attached SCSI expander
US8904119B2 (en) 2012-10-31 2014-12-02 Lsi Corporation Method and structures for performing a migration of a logical volume with a serial attached SCSI expander
US9135198B2 (en) 2012-10-31 2015-09-15 Avago Technologies General Ip (Singapore) Pte Ltd Methods and structure for serial attached SCSI expanders that self-configure by setting routing attributes of their ports based on SMP requests
US9026706B2 (en) 2012-12-14 2015-05-05 Lsi Corporation Method and system for detecting multiple expanders in an SAS topology having the same address
US8990448B2 (en) 2013-03-08 2015-03-24 Lsi Corporation Smart discovery model in a serial attached small computer system topology
US20140297910A1 (en) * 2013-03-29 2014-10-02 Hewlett-Packard Development Company, L.P. Sas expander
WO2015126420A1 (en) * 2014-02-24 2015-08-27 Hewlett-Packard Development Company, L.P. Sas zone configuration management
US11289137B2 (en) * 2017-11-16 2022-03-29 Micron Technology, Inc. Multi-port storage-class memory interface
US10990307B2 (en) * 2018-07-27 2021-04-27 Broadcom International Pte. Ltd. System and method for providing a configurable storage media interface

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6721870B1 (en) * 2001-06-12 2004-04-13 Emc Corporation Prefetch algorithm for short sequences
US20090138672A1 (en) * 2007-11-22 2009-05-28 Hitachi, Ltd. Storage controller and storage controller control method
CN100511118C (zh) * 2004-12-21 2009-07-08 普安科技股份有限公司 储存虚拟化控制器、子系统及系统与方法

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55118168A (en) * 1979-03-02 1980-09-10 Hitachi Ltd Memory reading control system
JPS615358A (ja) * 1984-06-07 1986-01-11 Fujitsu Ltd デ−タ処理装置
JPS61221966A (ja) * 1985-03-28 1986-10-02 Nec Corp ベクトル命令処理装置
US4878219A (en) * 1988-04-28 1989-10-31 Digital Equipment Corporation Method and apparatus for nodes in network to avoid shrinkage of an interframe gap
JPH02127742A (ja) * 1988-11-07 1990-05-16 Nec Corp 空き領域検索方式
SE469402B (sv) * 1991-05-02 1993-06-28 Swedish Inst Of Computer Scien Foerfarande foer att haemta data till ett cache-minne
US5634025A (en) * 1993-12-09 1997-05-27 International Business Machines Corporation Method and system for efficiently fetching variable-width instructions in a data processing system having multiple prefetch units
US5881254A (en) * 1996-06-28 1999-03-09 Lsi Logic Corporation Inter-bus bridge circuit with integrated memory port
JPH1016115A (ja) * 1996-07-08 1998-01-20 Mitsui Petrochem Ind Ltd 透湿性シート
US6138192A (en) * 1996-12-31 2000-10-24 Compaq Computer Corporation Delivering a request to write or read data before delivering an earlier write request
US6298407B1 (en) * 1998-03-04 2001-10-02 Intel Corporation Trigger points for performance optimization in bus-to-bus bridges
FI105749B (fi) * 1998-06-12 2000-09-29 Ericsson Telefon Ab L M Dataverkkoliikennöinti
JP3149856B2 (ja) * 1998-08-31 2001-03-26 日本電気株式会社 磁気ディスク制御装置
US6286074B1 (en) * 1999-03-24 2001-09-04 International Business Machines Corporation Method and system for reading prefetched data across a bridge system
US6636927B1 (en) * 1999-09-24 2003-10-21 Adaptec, Inc. Bridge device for transferring data using master-specific prefetch sizes
US6678782B1 (en) * 2000-06-27 2004-01-13 International Business Machines Corporation Flow architecture for remote high-speed interface application
US6820161B1 (en) * 2000-09-28 2004-11-16 International Business Machines Corporation Mechanism for allowing PCI-PCI bridges to cache data without any coherency side effects
KR100649300B1 (ko) * 2000-11-07 2006-11-24 주식회사 케이티 통신 시스템에서의 적응적인 데이터 전송 방법 및 그 장치
US7047327B1 (en) * 2000-12-20 2006-05-16 Adaptec, Inc. Method and structure for supporting flow control by a SCSI initiator during the data out phase of the packetized SCSI protocol
US6792496B2 (en) * 2001-08-02 2004-09-14 Intel Corporation Prefetching data for peripheral component interconnect devices
US6578130B2 (en) * 2001-10-18 2003-06-10 International Business Machines Corporation Programmable data prefetch pacing
US6973528B2 (en) * 2002-05-22 2005-12-06 International Business Machines Corporation Data caching on bridge following disconnect
US7089369B2 (en) * 2003-03-31 2006-08-08 Sun Microsystems, Inc. Method for optimizing utilization of a double-data-rate-SDRAM memory system
US7139878B2 (en) * 2003-06-20 2006-11-21 Freescale Semiconductor, Inc. Method and apparatus for dynamic prefetch buffer configuration and replacement
US7424562B2 (en) * 2004-03-01 2008-09-09 Cisco Technology, Inc. Intelligent PCI bridging consisting of prefetching data based upon descriptor data
US7107384B1 (en) * 2004-03-01 2006-09-12 Pericom Semiconductor Corp. Dynamic PCI-bus pre-fetch with separate counters for commands of commands of different data-transfer lengths
US9495263B2 (en) 2004-12-21 2016-11-15 Infortrend Technology, Inc. Redundant SAS storage virtualization subsystem and system using the same, and method therefor
JP2006331252A (ja) * 2005-05-30 2006-12-07 Matsushita Electric Ind Co Ltd バスブリッジ装置
US7657690B1 (en) * 2005-06-14 2010-02-02 Globalfoundries Inc. Control of PCI memory read behavior using memory read alias and memory command reissue bits
US20070005833A1 (en) 2005-06-30 2007-01-04 Pak-Lung Seto Transmit buffers in connection-oriented interface
US8079031B2 (en) * 2005-10-21 2011-12-13 Intel Corporation Method, apparatus, and a system for dynamically configuring a prefetcher based on a thread specific latency metric
US8081827B2 (en) * 2006-02-28 2011-12-20 Ricoh Co., Ltd. Compressed data image object feature extraction, ordering, and delivery
JP5052193B2 (ja) * 2007-04-17 2012-10-17 株式会社日立製作所 記憶制御装置および記憶制御方法
JP4809413B2 (ja) * 2008-10-08 2011-11-09 株式会社日立製作所 ストレージシステム
US8490088B2 (en) * 2010-09-10 2013-07-16 International Business Machines Corporation On demand virtual machine image streaming
US8949579B2 (en) * 2010-10-04 2015-02-03 International Business Machines Corporation Ineffective prefetch determination and latency optimization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6721870B1 (en) * 2001-06-12 2004-04-13 Emc Corporation Prefetch algorithm for short sequences
CN100511118C (zh) * 2004-12-21 2009-07-08 普安科技股份有限公司 储存虚拟化控制器、子系统及系统与方法
US20090138672A1 (en) * 2007-11-22 2009-05-28 Hitachi, Ltd. Storage controller and storage controller control method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104956348A (zh) * 2013-04-02 2015-09-30 惠普发展公司,有限责任合伙企业 Sata发起方寻址和存储设备分片
CN104956348B (zh) * 2013-04-02 2018-04-20 慧与发展有限责任合伙企业 Sata发起方寻址和存储设备分片
CN104601711A (zh) * 2015-01-27 2015-05-06 曙光云计算技术有限公司 用于云服务器的基于fpga的数据存储方法和系统

Also Published As

Publication number Publication date
JP5480834B2 (ja) 2014-04-23
JP2012118958A (ja) 2012-06-21
US20120144082A1 (en) 2012-06-07
TW201224777A (en) 2012-06-16
KR20120061710A (ko) 2012-06-13
EP2461245A2 (en) 2012-06-06
CN102486752B (zh) 2016-05-04
TWI444833B (zh) 2014-07-11
US8566496B2 (en) 2013-10-22
KR101378270B1 (ko) 2014-03-25
EP2461245A3 (en) 2012-11-21

Similar Documents

Publication Publication Date Title
CN102486752A (zh) Sas扩展器中数据预取
CN101258493B (zh) 用于在顺序存取数据存储子系统中执行搜索操作的系统和方法
US7162550B2 (en) Method, system, and program for managing requests to an Input/Output device
US7272687B2 (en) Cache redundancy for LSI raid controllers
TWI668626B (zh) 自主空間壓縮之儲存裝置以及方法
CN101375241A (zh) 集群文件系统中的有效数据管理
JP2005258918A (ja) ストレージシステムおよびストレージシステムのキャッシュメモリ制御方法
US11042328B2 (en) Storage apparatus and method for autonomous space compaction
CN103530066A (zh) 一种数据存储方法、装置及系统
CN113656364B (zh) 传感器数据处理方法、装置和计算机可读存储介质
JP2008225558A (ja) データ中継集積回路、データ中継装置およびデータ中継方法
US20160283379A1 (en) Cache flushing utilizing linked lists
CN101957728A (zh) 用于向本地物理卷复制远程虚拟卷的装置和方法
WO2013038465A1 (en) Storage system and method of controlling storage system
US8527718B2 (en) Explicit data segment boundaries with SCSI I/O referrals
US8055815B2 (en) Optimal paths with SCSI I/O referrals
CN103942007A (zh) Raid控制器及其命令处理方法
CN1773502A (zh) 验证信息存储和检索系统的配置的设备和方法
US6950905B2 (en) Write posting memory interface with block-based read-ahead mechanism
CN105827681A (zh) 一种san网络下备份数据传输方法
CN103064638B (zh) 一种处理数据的方法、装置及系统
US20130259062A1 (en) Multi-protocol bridge with integrated performance accelerating cache
CN100412872C (zh) 向数据存储和检索系统提供一个或多个命令的装置和方法
CN101251787A (zh) 用于处理读取和写入请求的方法和系统
CN102215162A (zh) 一种基于现场可编程门阵列的光纤i/o乱序帧处理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160721

Address after: Singapore Singapore

Patentee after: Avago Technologies General IP (Singapore) Pte. Ltd.

Address before: Milpitas, California, USA

Patentee before: LSI Corp.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20181022

Address after: Singapore Singapore

Patentee after: Avago Technologies General IP (Singapore) Pte. Ltd.

Address before: Singapore Singapore

Patentee before: Avago Technologies General IP (Singapore) Pte. Ltd.