CN106133707A - 高速缓存管理 - Google Patents
高速缓存管理 Download PDFInfo
- Publication number
- CN106133707A CN106133707A CN201480077784.6A CN201480077784A CN106133707A CN 106133707 A CN106133707 A CN 106133707A CN 201480077784 A CN201480077784 A CN 201480077784A CN 106133707 A CN106133707 A CN 106133707A
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- region
- request
- rule
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6042—Allocation of cache space to multiple users or processors
- G06F2212/6046—Using a specific cache allocation policy other than replacement policy
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
用于高速缓存管理的存储控制器包括高速缓存存储器和高速缓存管理模块。高速缓存管理模块用于在从主机接收区域指定请求时,从区域指定请求提取高速缓存规则,用于管理存储阵列的数据存储设备的区域,并且在从主机接收到数据操作请求时,基于提取出的高速缓存规则处理数据操作请求。
Description
背景技术
计算系统可以包括能够与存储系统通信以向存储系统写入数据并从存储系统读取数据的主机。存储系统可以包括高速缓存存储器,其可以用以更快的方式取回对数据的后续请求的方式存储所述数据。
附图说明
在后续详细说明中以及参考附图描述了特定例子,在附图中:
图1是根据本申请的技术的存储系统的示例性框图。
图2是根据本申请的技术的高速缓存管理的方法的示例性过程流程图。
图3是根据本申请的技术的高速缓存管理的方法的另一示例性过程流程图。
图4是根据本申请的技术的高速缓存管理的方法的又一示例性过程流程图。
图5A-5F是根据本申请的技术的高速缓存管理的示例性过程流程图。
图6A-6E是根据本申请的技术的高速缓存管理的示例性过程流程图。
图7是根据本申请的技术的高速缓存管理的另一示例性过程流程图。
图8是示出根据本申请的技术的存储用于高速缓存管理的指令的非瞬态计算机可读介质的示例性框图。
具体实施方式
计算系统可以包括主机或主机设备,其耦合到存储系统上以向存储系统的数据存储设备存储数据并从数据存储设备中取回数据。在一个例子中,存储系统可以包括存储控制器,其耦合到管理数据存储资源的数据存储阵列上。存储控制器可以处理来自主机的数据操作请求。数据操作请求可以包括向存储阵列写入数据的请求,以及从数据存储阵列读取数据的请求。数据存储阵列可以管理数据存储设备,例如,磁盘驱动等。存储控制器可以包括高速缓存存储器,其可以存储数据的一些部分,从而对所述数据的后续请求可以以更快的方式取回。存储控制器可以接收从数据存储设备读取数据的读取请求。存储控制器可以使用高速缓存存储器来从较慢速度访问数据存储设备(例如,磁盘驱动)加载数据块到较快速度存储设备(例如,可以包括随机存取存储器(RAM)的高速缓存存储器)。后续的读取请求可以直接到较快速度存储设备,例如高速缓存存储器,其可以帮助减少由于较慢速度数据存储设备(例如,磁盘驱动)造成的延迟
期望的是,存储控制器能够提供高速缓存管理技术来以有效的方式管理数据操作请求。例如,高速缓存管理技术可以应用一组统一的高速缓存规则,来基于数据在数据存储设备的位置以及数据的相对优先级管理高速缓存存储器。然而,这些技术可能不能区分经常访问或重要的数据与不常访问或较不重要的数据。另外,这些技术可能不能区分对处理重要的高优先级数据与低优先级数据。此外,高速缓存存储器是有限的存储资源,因为其通常是RAM,相较于以较低速度和较低成本而具有较高容量的磁盘驱动存储设备,RAM提供较快的访问速度但是有较高的成本。因为高速缓存存储器是有限存储资源,所以高速缓存管理技术可以确定关于从高速缓存存储器驱逐或移除哪些数据,来为来自数据存储设备的其它数据腾出空间。这些技术可能导致热点或其它启发性行为,使得当较高优先级的数据应当保留在高速缓存存储器中时可能清除(flush)或驱逐这种数据。一些技术可以将数据保持或“钉住”在高速缓存存储器中,这表示可以使得数据持续在高速缓存存储器中,但是这种行为难以被保证。这里,术语“钉”或“钉住”或“持续”指的是在高速缓存存储器中标记数据以便除非有明确的清除操作否则不被从高速缓存存储器中驱逐或移除的概念。在一个例子中,明确的清除操作可以是明确的清除请求,其包括同步化高速缓存请求,用于从高速缓存存储器发送所有数据到数据存储设备,例如存储介质。换句话说,当存储控制器执行稍后的对数据的请求或试图从高速缓存存储器读取或上传数据时,其可能不存在于高速缓存存储器中,或者其可能被要求在数据存储于或加载到高速缓存存储器之前等待。
本申请可以改善高速缓存管理技术的性能。这些技术可以应用于具有耦合在主机和数据存储阵列之间的存储控制器的存储系统。例如,这些技术可以允许存储控制器从主机接收数据操作请求,例如从数据存储设备读取读取数据的请求。在该情况下,读取请求可以指定来自数据存储设备的数据块,其保持在高速缓存存储器中。例如,读取请求可以包括逻辑块地址(LBA)或父母逻辑单元(LU)的范围或与以持续方式存储于高速缓存存储器中的特定请求相关联的数据。此外,这些技术可以允许完成更多的数据操作(读取和写入数据操作),这些操作允许高速缓存存储器更灵活且允许主机数据操作请求用于从存储设备读取数据并写入数据到存储设备。例如,这可以允许主机请求加载和指定高速缓存规则,所述规则指定以持续方式处理特定数据,从而其可以保持在高速缓存存储器,由此允许主机或用户创建存储设备的热点区域。
本技术可以改善存储系统的高速缓存管理性能。例如,这些技术可以允许以区域指定请求形式的主机请求(其指定用于高速缓存存储器的否则从高速缓存存储器驱逐或移除数据的高速缓存规则)现在使得数据保留在高速缓存存储器中,由此覆写其它高速缓存管理处理或算法。主机可以向存储控制器发送区域指定请求,其包括指定与不被清除或被写入存储设备(磁盘驱动器或介质)而仍持续保留在高速缓存存储器中的特定LBA区域相关联的数据的高速缓存规则。在一个例子中,区域指定请求可以与数据操作请求不同且分离,所述数据操作请求可以包括从存储设备读取数据或向存储设备写入数据的实际请求。在另一例子中,区域指定请求可以与数据操作请求组合。在另一实例中,高速缓存规则可以指定与指定的LBA区域相关联的特定数据,所述指定的LBA区域存储于数据结构中以允许在必要时或在特定条件下数据被从高速缓存存储器清除到数据存储设备。
高速缓存规则可以指定与指定的LBA区域相关联的特定数据在高速缓存存储器中保持持续的,并位于与不同集合的高速缓存规则相关联的高速缓存存储器中其它数据附近。主机或主机应用可以用不同的高速缓存规则向存储控制器传达指定多个LBA区域或者范围的高速缓存规则,以允许不同的行为调整。主机可以提供指定在存储器中创建磁盘驱动类型配置的高速缓存规则,有时指的是软RAM类型磁盘驱动配置,并将来自高速缓存存储器的数据硬备份到正常的磁盘驱动卷。高速缓存规则可以指定特定的数据与其它数据相比相对较不重要,以使得存储控制器避免将所述数据全部存储或写入到高速缓存存储器。在其它例子中,高速缓存规则可以指定其它行为,例如,要求将所请求的数据加载到高速缓存存储器中并将其保持或保留在高速缓存存储器中。
本申请的技术可以允许存储控制器改善存储系统的高速缓存管理性能。例如,该技术可以允许主机或用户创建一组高速缓存规则或暗示,用于指定在目标数据存储设备上如何由高速缓存存储器处理特定数据操作请求(例如,写入存储设备或从存储设备读取)的特定LBA区域或范围。在一个例子中,存储控制器可以从主机接收区域指定请求,其包括LBA区域的高速缓存规则,用于指定如何应用高速缓存规则以处理带有数据操作请求的数据并确定数据存储设备处理请求的方式。在一个实例中,高速缓存规则可以指定与LBA区域相关联的特定数据将被以持续方式钉住或保持(高速缓存钉住情况)。可以通过使高速缓存存储器(例如,高速缓存存储器的高速缓存行)中的数据被移动到指定从不将存储于该结构中的数据清除到数据存储设备直到发生特定情况的单独的元数据结构来响应存储控制器。
在一个例子中,高速缓存规则可以指定当存储控制器接收到清除数据的主机请求时清除特定的数据。在另一例子中,高速缓存规则可以指定当存储控制器已经达到在要求将数据清除到数据存储设备的结构中的数据量中的充满率或阈值时,清除特定的数据以允许高速缓存存储器接受其他数据。在另一例子中,所述技术可以允许通过与持续(钉住)区域相关联的元数据执行数据查找功能,而类似于通过非持续(非钉住)区域执行元数据查找功能的方式。
本申请的技术可以允许主机向存储控制器提供包括管理高速缓存存储器的高速缓存规则的请求。例如,高速缓存规则可以指定存储控制器以从不等待接受新接收到的数据的空间或地方的方式管理高速缓存存储器。在其它例子中,高速缓存规则可以指定当接收到对与指定的LBA区域相关联的数据的请求时,存储控制器将管理高速缓存存储器总是等待高速缓存存储器中的空间。在另一例子中,高速缓存规则可以指定当接收对与数据存储设备的数据的指定的LBA区域相关联的数据的请求时,高速缓存存储器应该从不等待高速缓存存储器中的空间。在一个例子中,高速缓存规则可以指定当接收对与数据存储设备的数据的指定的LBA区域相关联的数据的请求时,高速缓存存储器应该总是绕过高速缓存存储器。在又一例子中,高速缓存规则可以指定当接收读取与数据存储设备的数据的指定的LBA区域相关联的数据的请求时,高速缓存存储器应该以持续方式存储或加载数据到高速缓存存储器中。
本申请的技术可以改善存储系统的性能。例如,主机可以向存储控制器发送高速缓存规则,该规则指定高速缓存存储器将以基于数据存储设备的数据的指定的相关联LBA区域的方式处理接收到的数据。结果,存储系统可以展示涉及基于指定持续区域的高速缓存规则从数据存储设备读取数据和向存储设备写入数据的改善的性能。存储系统可以处理管理高速缓存存储器的高速缓存规则或暗示,其可以向用户或应用提供对高速缓存管理的控制。以这种方式,这些技术可以允许重要的或关键的数据保持高优先级,并且以持续方式保持(钉住)在高速缓存存储器中。这些技术可以帮助减少到已经指定为重要的LBA区域的写入操作的数量,同时对没有必要以持续方式(钉住)在高速缓存存储器中存储数据的区域或领域保留更多数据存储设备(磁盘驱动)性能。这些技术可以有助于在高速缓存存储器中创建磁盘驱动状区域(软RAM磁盘区域),其可以允许创建可以以安全方式持续存储于高速缓存存储器内的高性能区域。这些技术可以配置存储控制器加载并持续存储数据,这可以允许用户指定将以持续方式预先加载到高速缓存存储器的即将的热数据,由此帮助改善整个存储系统性能。
在一个例子中,本申请公开了用于高速缓存管理的存储控制器,其包括高速缓存存储器和高速缓存管理模块。高速缓存管理模块配置为接收来自主机的区域指定请求,并作为响应,从区域指定请求提取用于管理存储阵列的数据存储的区域的高速缓存规则。高速缓存管理模块配置为从主机接收数据操作请求,并作为响应基于提取出的高速缓存规则处理数据操作请求。
在一些例子中,数据操作请求可以包括从存储设备读取数据的主机请求以及向存储设备写入数据的主机请求。区域指定请求可以指定高速缓存存储器相对于与存储设备的逻辑块地址(LBA)相关联的存储的区域的行为。区域指定请求可以包括相对于存储设备的LBA区域,管理高速缓存存储器的高速缓存规则。例如,高速缓存规则可以指定将数据存储到存储设备并绕过高速缓存存储器。在另一例子中,高速缓存规则可以指定基于高速缓存存储器的空间可用性将数据存储于高速缓存存储器。在另一例子中,高速缓存规则可以指定以在高速缓存存储器中非持续方式将数据存储于高速缓存存储器中。例如,高速缓存规则可以指定以在高速缓存存储器中持续方式存储数据。高速缓存管理模块可以配置为从主机接收数据操作请求,其包括向存储设备写入数据的写入请求以及对待写入的数据存储设备的区域的识别。在另一例子中,高速缓存管理模块可以配置为从主机接收数据操作请求,其包括待写入数据的数据存储设备的区域的数据和识别。高速缓存管理模块可以配置为比较来自请求的区域与从区域指定请求接收到的区域列表。
图1是根据本申请的技术的存储系统100的示例性框图。
系统100包括配置为用于高速缓存管理的存储控制器104,其包括高速缓存存储器112和高速缓存管理模块108。存储控制器104示出为耦合在主机102和数据存储阵列106之间,该阵列包括数据存储114-1到114-n。
高速缓存管理模块108配置为执行高速缓存管理功能,例如,处理如本文所述的来自主机102的区域指定请求和数据操作请求。在一个例子中,高速缓存管理模块108配置为从主机102接收区域指定请求,并且作为响应从区域指定请求提取高速缓存规则110,用于管理高速缓存存储器112和数据存储阵列106的数据存储设备114的区域。高速缓存管理模块108配置为从主机接收数据操作请求,并且作为响应,基于提取出的高速缓存规则110处理数据操作请求。
高速缓存管理模块108配置为管理来自主机102的数据操作请求。数据操作请求可以包括从数据存储设备114读取数据的主机请求。例如,主机102可以发送包括LBA区域信息的数据操作请求,用于识别将从数据存储设备114读取或取回的数据的位置。在另一例子中,数据操作请求可以包括用于向数据存储设备114写入数据的主机请求。例如,主机102可以发送包括数据和LBA区域信息的数据操作请求,以识别将数据写入到数据存储设备114的指定位置的位置。高速缓存管理模块108配置为处理LBA区域信息,以确定如何处理数据操作请求。例如,高速缓存管理模块108可以对与请求一起包含的LBA区域和从区域指定请求接收到的LBA区域的列表(例如,高速缓存规则110)进行比较。高速缓存管理模块108执行该比较,以确定如何处理相对于高速缓存存储器112的请求,如下文更详细解释的。
高速缓存管理模块108可以配置为接收区域指定请求。在一个例子中,区域指定请求可以指定与存储设备的逻辑块地址(LBA)相关联的存储设备的区域。在一个例子中,区域指定请求可以包括高速缓存规则110(有时称作高速缓存暗示)以管理高速缓存存储器112。高速缓存规则的一些例子包括:绕过规则:用于LBA的范围的数据将被直接发送给磁盘;从不等待空间规则:所述范围的数据如果不能立即放置在数据高速缓存中则直接被发送给磁盘并且数据将在需要时被驱逐;总是等待空间规则:所述范围的数据如果不能立即放置在高速缓存存储器内则将排队等待稍后处理并且数据将在需要时被驱逐;钉住规则:所述范围的数据如果不能立即放置在数据高速缓存中则需排队等待稍后处理并且数据仅在主机请求时被驱逐。在一个例子中,高速缓存规则110可以包括高速缓存规则或暗示,以将数据存储到存储设备并绕过指定的LBA区域的高速缓存存储器。在其它例子中,高速缓存规则110可以包括高速缓存规则或暗示,以基于指定的LBA区域的高速缓存存储器的空间可用性而将数据存储到高速缓存存储器112。
在其它例子中,高速缓存规则110可以包括高速缓存规则或暗示,以将数据以在指定的LBA区域的高速缓存存储器中的非持续方式存储到高速缓存存储器112。在一个例子中,非持续可以被定义为如果需要空间则将数据从高速缓存存储器112驱逐的条件或规则。另一方面,持续(钉住)可以被定义为如果除非指定,数据不被从高速缓存存储器112驱逐的条件或规则。在其它例子中,高速缓存规则110可以包括高速缓存规则或暗示,以在指定的LBA区域的高速缓存存储器112中以持续方式存储数据。应该理解的是,其它示例性高速缓存规则可以应用于实现本申请的技术。
主机102可以是任意的电子设备或计算设备,其能够进行数据处理和与其它电子设备交换数据。主机102可以包括计算系统,其代表自己或代表耦合到主机上的系统使用存储设备。例如,主机102可以是处理大型数据库的超级计算机,或维持事务记录的事务处理服务器。在另一例子中,主机102可以是局域网(LAN)或广域网(WAN)上的文件服务器,其为企业提供存储服务。文件服务器可以包括磁盘控制器和/或RAID控制器,其配置为管理多个磁盘驱动。主机102可以经由通信连接(例如,光纤通道(FC)连接)连接存储控制器104作为存储网络的一部分。主机102可以是向其它计算或数据处理系统或设备提供服务的服务器。例如,主机102可以是客户端计算机,其可以通过其它主机访问存储控制器104和数据存储阵列106。主机102可以向客户端计算机提供文件服务,并可以提供其它服务,例如事务处理服务、电子邮件服务等。因此,客户端计算机可以配置为直接使用由主机102消耗的存储设备。存储控制器104示出为耦合在主机102和数据存储阵列106之间。存储控制器104可以是任意电子设备或计算设备,其能够处理和管理来自主机的访问来自数据存储阵列106的数据的请求。存储控制器104可以管理在存储阵列106之间的数据操作和转移。存储控制器104可以实现为具有处理器和存储器的插入卡。存储控制器104可以包括双主机适配器端口(未示出),其提供到主机102的接口(即,通过通信网络,例如交换结构)。存储控制器104可以包括通信端口(未示出),以支持在其它存储控制器之间的通信连接。通信连接可以实现为FC点对点连接,或依照任意其它适当的通信协议。
存储控制器104可以配置为与数据存储阵列106通信。在一个例子中,存储控制器104可以包括多个光纤通道仲裁回路(FCAL)端口(未示出),其实现与数据存储阵列106和多个数据存储设备114的FCAL通信连接。虽然FCAL连接可以用于与存储阵列106通信,但是应该理解的是,可以使用其它通信协议实现与存储阵列的通信连接。例如,不是FCAL配置,可以使用FC交换结构。数据存储阵列106可以管理对作为存储网络一部分的数据存储设备114的访问。数据存储设备114可以包括具有一些存储空间的存储池。在一个例子中,数据存储设备可以具有由用于实现数据存储设备的特定硬件所确定的大小或存储容量。存储控制器104可以配置数据存储设备114作为多个逻辑磁盘,其可以分配在数据存储设备或存储池内。每个逻辑单元或LBA区域可以包括连续范围的逻辑地址,其可以由主机102寻址,对来自主机所使用的协议的请求进行映射,以唯一地识别逻辑单元。
相比起来,高速缓存存储器112一般具有较快的访问时间,而数据存储设备114具有较慢的访问时间。高速缓存存储器112可以是任意的非瞬态的计算机可读介质,其可以包括一个或多个非易失性存储器、易失性存储器和/或一个或多个存储设备。非易失性存储器的例子包括但不限于:RAM、电可擦除可编程只读存储器(EEPROM)和只读存储器(ROM)。易失性存储器的例子包括但不限于:静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。类似于高速缓存存储器112,数据存储设备114可以是任意的非瞬态计算机可读介质,其可以包括一个或多个非易失性存储器、易失性存储器和/或一个或多个存储设备。在其它例子中,高速缓存存储器112和数据存储设备114可以包括但不限于:硬盘驱动、压缩盘驱动、数字通用盘驱动、光驱动以及闪存设备。
系统100可以配置为存储网络,其可以用于实现数据存储设备114形成的存储池。所述网络可以包括利用通信网络连接到存储控制器104的主机102,所述通信网络可以实现为私有的专用网络,例如FC交换结构。在其它例子中,可以利用公用通信网络依照适当的通信协议(例如,互联网小型计算机串行接口(iSCSI)协议)来实现通信网络的一部分。
图1的系统100示出为具有存储控制器104,其耦合在主机102和数据存储阵列106之间。然而,应该理解的是,图1所示的系统100是出于图示的目的,并且其它配置可以实现本申请的技术。在一个例子中,本申请的技术可以实现于硬件、软件或其组合中。在另一例子中,主机102可以包括耦合到存储控制器104的单个主机或多个主机。存储控制器104示出为单个设备,但是存储控制器的功能可以分布在多个存储控制器之间。类似地,单个数据存储阵列106示出为单个设备,但是数据存储阵列的功能可以分布在多个数据存储阵列之间。在其它例子中,系统100的部件可以集成作一个部件、具有跨多个部件分布的系统的功能的多个部件、或其组合。
图2是根据本申请的技术的高速缓存管理的方法的示例性过程流程图200。
处理可以开始于框202,其中存储控制器104检查是否已经从主机102处接收到区域指定请求。例如,如果高速缓存管理模块108从主机102处接收到区域指定请求,则高速缓存管理模块处理进行到框204。在另一方面,如果高速缓存管理模块108尚未接收到区域指定请求,则高速缓存管理模块处理进行回框202,其中高速缓存管理模块可以继续检查区域指定请求的接收。
在框204处,存储控制器104从区域指定请求中提取高速缓存规则110,以用于管理存储阵列106的数据存储设备114的区域。在一个例子中,高速缓存管理模块108可以处理区域指定请求,该请求指定高速缓存存储器112相对于与数据存储设备的逻辑块地址(LBA)相关联的数据存储设备114的区域的行为。在另一例子中,区域指定请求可以包括高速缓存规则,用于相对于数据存储设备的LBA区域管理高速缓存存储器112。高速缓存规则110可以指定高速缓存管理模块108将数据存储到存储设备并绕过高速缓存存储器,基于高速缓存存储器的空间可用性而将数据存储到高速缓存存储器,以在高速缓存存储器中非持续方式将数据存储到高速缓存存储器,以在高速缓存存储器中持续方式存储数据,等等。在一个例子中,高速缓存管理模块108可以将来自区域指定请求的信息存储为高速缓存规则110以供后续处理。高速缓存管理模块108处理然后进行到框206。
在框206处,存储控制器104检查是否已经从主机102处接收到数据操作请求。在一个例子中,如果高速缓存管理模块108从主机102处接收到数据操作请求,则处理进行到框208。在另一方面,如果高速缓存管理模块108尚未从主机102处接收到数据操作请求,则处理进行回框206,以继续检查数据操作请求的接收。在另一例子中,如果高速缓存管理模块108尚未从主机102处接收到数据操作请求,则高速缓存管理模块处理可以进行回框202,以继续检查其它区域指定请求的接收。
在框208处,响应于从主机设备接收到数据操作请求,存储控制器104基于提取出的高速缓存规则处理数据操作请求。在一个例子中,高速缓存管理模块108可以从主机102处接收包括写入请求的数据操作请求,所述写入请求包括写入到存储设备的数据和将写入数据的数据存储设备的区域的识别。在另一例子中,高速缓存管理模块108可以从主机102处接收包括读取请求的数据操作请求,所述读取请求包括将读取数据的数据存储设备114的区域的识别。在其它例子中,高速缓存管理模块108可以配置为比较来自数据操作请求的LBA区域信息与高速缓存规则110的列表和从先前由主机102提供的区域指定请求中提取出的相关联的LBA区域。在一个例子中,高速缓存管理模块108可以基于从区域指定请求中提取出的高速缓存规则处理数据操作请求。处理可以进行回框202,以继续检查其它区域指定请求的接收。在其它例子中,高速缓存管理模块108可以继续回框206,以继续检查数据操作请求的接收。应该理解的是,相对图2描述的过程是出于图示的目的,并且可以采用其它例子来实现本申请的技术。
图3是根据本申请的技术的高速缓存管理的方法的另一示例性过程流程图300。
处理可以开始于框302,其中存储控制器104接收未指定额外高速缓存规则的数据操作请求。在一个例子中,高速缓存管理模块108接收数据操作请求,其可以指定写入操作以将数据写入数据存储设备,并包括将写入的数据和将写入数据的数据存储设备114中的位置的LBA区域。在另一例子中,数据操作请求可以指定读取操作,以从数据存储设备读取数据,并包括将读取数据的数据存储设备中的位置的LBA区域。高速缓存管理模块108处理然后进行到框304。
在框304处,存储控制器104借助接收到的区域请求搜索先前指定的区域规则集合。为了示出操作,在一个例子中,可以假设高速缓存管理模块108先前从主机102接收到区域指定请求,该请求包括与LBA区域相关联的高速缓存规则,用于在从主机接收到后续数据操作请求时处理高速缓存存储器112。高速缓存管理模块108可以从区域指定请求提取高速缓存规则,并存储这些提取出的高速缓存规则110和相关联的LBA区域,以供后续处理来自主机102的数据操作请求。例如,高速缓存管理模块108可以比较在高速缓存规则中指定的区域与在数据操作请求中指定的区域,以确定如何相对高速缓存存储器112处理数据操作请求。高速缓存管理模块108处理然后进行到框306。
在框306处,存储控制器104检查在数据操作请求中指定的区域是否匹配从先前接收到的区域指定请求指定的区域。在一个例子中,高速缓存管理模块108借助来自数据操作请求的区域信息检查在高速缓存规则110中的区域信息。如果高速缓存管理模块108确定存在匹配,则处理进行到框308。在另一方面,如果高速缓存管理模块108确定不存在匹配,则高速缓存管理模块处理进行到框310。
在框308处,存储控制器104为所述区域应用规则。如上所解释的,区域指定请求可以指定高速缓存存储器112相对于与存储设备的逻辑块地址(LBA)相关联的存储设备的区域的行为。区域指定请求可以包括高速缓存规则110,用于指定如何相对于存储设备的LBA区域管理高速缓存存储器112。例如,高速缓存规则110可以指定将特定数据存储到存储设备并绕过高速缓存存储器112。在另一例子中,高速缓存规则110可以指定基于高速缓存存储器的空间的可用性将数据存储到高速缓存存储器112。另一高速缓存规则110可以指定以非持续方式将数据存储到高速缓存存储器112。在一个例子中,高速缓存管理模块108可以基于LBA区域来处理数据操作请求,所述LBA区域与匹配先前从区域指定请求接收到的LBA区域的数据操作请求一起被包括。高速缓存管理模块108处理进行到框312。
在框310处,存储控制器104正常地或通过指定的默认行为处理请求。在一些例子中,当高速缓存管理模块108确定在数据操作请求的LBA区域和先前从区域指定请求接收到的LBA区域之间不存在匹配时,那么以正常方式或通过指定的默认行为处理数据操作请求。处理进行到框312。
在框312处,存储控制器104借助指定的高速缓存规则110处理数据操作请求。在一个例子中,高速缓存管理模块108处理可以进行回框302,以继续接收或监视数据操作请求的接收。
应该理解的是,相对图3描述的过程是出于图示的目的,并且可以采用其它例子来实现本申请的技术。
图4是根据本申请的技术的高速缓存管理的方法的又一示例性过程流程图400。
处理可以进行到框402,其中存储控制器104接收或监视指定高速缓存规则110的数据操作请求的接收。如上所解释的,高速缓存管理模块108可以从主机102处接收区域指定请求,其可以指定高速缓存存储器112相对于与存储设备的逻辑块地址(LBA)相关联的存储设备的区域的行为。区域指定请求可以包括高速缓存规则110,以相对于存储设备的LBA区域管理高速缓存存储器112。高速缓存管理模块108处理进行到框404。
在框404处,存储控制器104应用针对请求的规则(钉住)。为了示出操作,在一个例子中,高速缓存管理模块108已经接收到区域指定请求,其包括高速缓存规则110或暗示,以将数据以在高速缓存存储器112中持续的方式(钉住)进行存储。应该理解的是,其它示例性高速缓存规则可以用于实现本申请的技术。高速缓存管理模块108处理进行到框406。
在框406处,存储控制器104借助指定的规则处理数据操作请求。在一个例子中,假设继续上述例子,高速缓存管理模块108接收高速缓存规则110,从而以在高速缓存存储器112中的持续方式(钉住)存储数据。在该情况中,可以假设高速缓存管理模块108确定在数据操作请求的LBA区域与先前接收到的相关于钉住的LBA区域之间不存在匹配,然后可以以正常方式或通过指定的默认行为处理数据操作请求。在另一方面,如果高速缓存管理模块108确定在数据操作请求的LBA区域与先前接收到的相关于钉住的LBA区域之间存在匹配,则可以通过应用相关于钉住的高速缓存规则而处理数据操作请求。一旦执行了框406的处理,高速缓存管理模块108处理可以进行回框402,以继续接收或监视指定用于管理高速缓存存储器112的高速缓存规则110的数据操作请求的接收,以及指定从数据存储设备读取数据的请求、将数据写入到数据存储设备的请求的数据操作请求的接收。
应该理解的是,相对图4描述的过程是出于图示的目的,并且可以采用其它例子来实现本申请的技术。
图5A-5F是根据本申请的技术的高速缓存管理技术的示例性过程流程图。图5A-5F的过程流程图描述了存储控制器104如何管理高速缓存存储器112。如上所解释的,存储控制器104可以从主机102接收区域指定请求,该请求可以指定高速缓存管理模块108如何管理或控制高速缓存存储器112相对于与数据存储设备114的LBA相关联的存储设备的区域的行为。也就是说,区域指定请求可以包括高速缓存规则110,以控制高速缓存管理模块108如何相对于数据存储设备114的LBA区域管理高速缓存存储器112。存储控制器104然后可以从主机102接收数据操作请求,其可以指定写入操作以将数据写入到数据存储设备114,并包括将写入的数据和将写入数据的数据存储设备114中的位置的LBA区域。在另一例子中,数据操作请求可以指定读取操作,以从数据存储设备114读取数据,并包括将读取数据的数据存储设备中的位置的LBA区域。如以下更详细解释的,存储控制器104可以基于在与数据操作请求一起包括的LBA区域与先前接收到的LBA区域之间比较的比较结果和来自存储作高速缓存规则110的区域指定请求的高速缓存规则来处理数据操作请求。
图5A示出了根据本申请的技术的高速缓存管理技术的示例性过程流程图500。
处理可以开始于框502,其中存储控制器104经由区域指定请求接收针对区域的规则。如上所解释的,高速缓存管理模块108可以从主机102处接收区域指定请求,其可以包括高速缓存规则110,以指定或指示如何相对于数据存储设备114的LBA区域管理高速缓存存储器112。高速缓存管理模块108处理然后进行到框504。
在框504处,存储控制器104利用接收到的区域搜索先前接收到的指定区域规则集。在一个例子中,在框512处,高速缓存管理模块108可以比较:接收到的包括高速缓存规则以及区域的对应的LBA的区域指定信息,与包括高速缓存规则110的区域指定信息的列表。高速缓存管理模块108处理然后进行到框506。
在框506处,存储控制器104检查接收到的区域以确定它们是否是新的区域或是否存在重叠。例如,如果在框512处高速缓存管理模块108确定接收到的LBA区域信息指定新的区域信息并且高速缓存规则不存在于当前高速缓存规则110列表中,则高速缓存管理模块108处理进行到框508。例如,在一种情况下,当接收到的高速缓存规则和/或与高速缓存规则相关联的区域不存在于高速缓存规则110内时可能发生该条件。在另一方面,如果高速缓存管理模块108确定接收到的LBA区域信息指定新的区域信息并且高速缓存规则与当前高速缓存规则110重叠,则高速缓存管理模块处理进行到框510。例如,在一种情况下,当接收到的高速缓存规则和/或与高速缓存规则相关联的区域与高速缓存规则和/或与在高速缓存规则110中的高速缓存规则相关联的区域重叠时,可以发生重叠条件。
在框508处,存储控制器104借助提供的规则创建新的区域。例如,可以假设在框512处高速缓存管理模块108确定接收到的LBA区域信息指定新的区域信息并且高速缓存规则不存在于当前高速缓存规则110中。在该情况下,在框512处,高速缓存管理模块108在新的区域高速缓存规则110中创建条目,条目值对应于指定LBA区域和相关联的高速缓存规则的请求的高速缓存规则。在一个例子中,高速缓存管理模块108处理可以进行回框502,以继续检查进一步输入区域指定请求。
在框510处,存储控制器104调整针对现有区域的规则。在一个例子中,如上所解释的,高速缓存管理模块108从主机102处接收区域指定请求,该请求包括与在框512处先前存储在高速缓存规则110中的高速缓存规则重叠的高速缓存规则。也就是说,在框512处,接收到的LBA区域信息指定新的区域信息以及高速缓存规则,其与当前高速缓存规则110重叠。当接收到的高速缓存规则和/或与高速缓存规则相关联的区域与在高速缓存规则110内的高速缓存规则和/或与高速缓存规则相关联的区域重叠时,可以发生重叠条件。在该情况下,在框512处,高速缓存管理模块108根据接收到的高速缓存规则调整高速缓存规则110。在一个例子中,在框512处,高速缓存管理模块108可以修正或调整在高速缓存规则110中的信息,例如高速缓存规则本身、与规则相关联的LBA区域或其组合。在一个例子中,高速缓存管理模块108处理可以进行回框502,以继续检查进一步的输入区域指定请求。
图5B示出了根据本申请的技术的高速缓存管理技术的示例过程流程图520。图5B示出的过程类似于图5A,除了图5B描述了存储控制器104接收特殊的区域指定请求,并由此过程跟随特定路径。
为了示出操作,还将假设框512在接收到新接收的区域指定请求之前提供原始规则的高速缓存规则110,并且框514基于来自新接收到的区域指定请求的高速缓存规则提供更新后的高速缓存规则110。例如,可以假设在框512处高速缓存规则110包括后续高速缓存规则和相关联的LBA区域。对于区域0,条目指定对于具有LAB区域0到99的数据操作请求,高速缓存规则指定高速缓存管理模块108将以在高速缓存存储器112中的持续方式存储数据。对于区域1,条目指定对于具有LBA区域100到199的数据操作请求,高速缓存规则指定高速缓存管理模块108将数据存储到存储设备并绕过高速缓存存储器112。对于区域2,条目指定对于具有LBA区域200到299的数据操作请求,高速缓存规则指定高速缓存管理模块108等待,以基于高速缓存存储器的空间的可用性而将数据存储到高速缓存存储器112。默认地,也就是说,对于在上述LBA区域(区域0、1和2)的范围外的请求,条目指定高速缓存管理模块108将从不等待高速缓存存储器112中的空间而将数据存储到高速缓存存储器中。应该理解的是,在框512处,高速缓存规则110的条目是出于图示的目的,并且可以采用不同数量和类型的高速缓存规则和相关联的LBA区域来实践本申请的技术。例如,在框512处,高速缓存规则110可以包括不同数量的条目指定不同的LBA区域和与区域相关联的不同高速缓存规则。
处理可以开始于框502,其中存储控制器104经由区域指定请求操作接收区域的规则。在该例子中,为了说明,可以假设高速缓存管理模块108接收指定LBA区域300-399的区域指定请求和指定在与LBA区域300-399相关联或位于LBA区域300-399处的高速缓存存储器112中钉住数据的相关联的高速缓存规则。也就是说,在该情况下,高速缓存规则指定如果与数据操作请求相关联的区域匹配LBA区域300-399,则高速缓存管理模块108以在高速缓存存储器112中持续的方式(钉住情况)存储数据。高速缓存管理模块108处理随后进行到框504。
在框504处,存储控制器104借助接收到的区域请求搜索先前指定的区域规则集。在一个例子中,在框512处,高速缓存管理模块108搜索高速缓存规则110,以确定接收到的区域是否被列出或者具有在高速缓存规则中的条目。在该情况下,在框512处,高速缓存管理模块108确定接收到的区域请求(LBA区域300-399以及带有在高速缓存存储器中钉住数据的相关联的高速缓存规则)不存在于高速缓存列表中。高速缓存管理模块108处理进行到框506以进行进一步的分析。
在框506处,存储控制器104检查接收到的区域以确定它们是否是新的区域或者是否存在重叠。在该情况下,为了示出操作,可以假设在框512处高速缓存管理模块108确定接收到的区域不存在于高速缓存规则110中,并因此这是个新的高速缓存规则和相关联的LBA区域。在这种情况下,处理进行到框508,其中在框514处高速缓存管理模块108在高速缓存规则110中借助具有提供的高速缓存规则的新区域创建条目。在该情况下,高速缓存管理模块108在框514处创建具有对应于请求的条目值的条目。也就是说,区域3用于指定LBA区域300-399以及带有在高速缓存112中钉住数据的相关联的高速缓存规则。在一个例子中,高速缓存管理模块108处理可以进行回框502,以继续检查输入区域指定请求。
图5C示出了根据本申请的技术的高速缓存管理技术的示例性过程流程图530。图5C示出的过程类似于图5A,除了图5C描述存储控制器104接收特殊的区域请求,并由此过程跟随特定路径。还将假设框512提供当前或原始高速缓存规则110的列表,并且框514在接收到区域指定请求之后提供新的或更新后的高速缓存规则的列表,如下文所描述的。
处理可以开始于框502,其中存储控制器104经由区域指定请求操作接收区域的规则。在该例子中,为了说明,可以假设高速缓存管理模块108接收指定带有相关联的高速缓存规则110的LBA区域100-199的请求,所述相关联的高速缓存规则110指定或指示高速缓存管理模块在写入数据到高速缓存存储器112时总是等待高速缓存存储器112中的空间。也就是说,在该情况下,高速缓存规则110指定或指示高速缓存管理模块108在将数据存储到高速缓存存储器中之前等待高速缓存存储器112中的空间。高速缓存管理模块108处理进行到框504,其中搜索先前指定的具有接收到的输入区域请求的区域规则110。在一个例子中,在框512处,高速缓存管理模块108搜索高速缓存规则110,以在框512处确定接收到的区域和高速缓存规则是否列在高速缓存规则110中。在该情况下,在框512处,高速缓存管理模块108确定接收到的区域请求(LBA区域100-199被高速缓存规则指定总是等待高速缓存存储器中的空间)出现在高速缓存规则110中。高速缓存管理模块108处理进行到框506用于进一步的分析。
在框506处,存储控制器104检查接收到的区域以确定它们是否是新的区域或是否存在重叠。在该情况下,在框512处高速缓存管理模块108确定在接收到的区域和在高速缓存规则110中列出的区域之间存在重叠。在该情况下,处理进行到框510,其中高速缓存管理模块108调整现有条目的规则,在该情况下,合并两个相邻区域导致在框514处的条目。也就是说,区域1现在指定对于100到299的LBA,高速缓存规则用于指定在将数据写入高速缓存存储器之前高速缓存管理模块108总是等待高速缓存存储器112中的空间。在一个例子中,高速缓存管理模块108处理可以进行回框502,以继续检查输入区域指定请求。
图5D示出了根据本申请的技术的高速缓存管理技术的示例性过程流程图540。图5D示出的过程类似于图5A,除了图5D描述存储控制器104接收特殊的区域请求,并由此过程跟随特定路径。还将假设框512提供原始高速缓存规则110的列表,并且框514提供新的或调整后的高速缓存规则的列表,如下文所描述的。
处理可以开始于框502,其中存储控制器104经由区域指定请求操作接收区域的规则。在该例子中,为了说明,可以假设请求指定具有没有高速缓存规则的LBA区域100-199的区域。也就是说,在该情况下,高速缓存规则指定应用默认规则,用于当稍后接收具有LBA区域100-199的数据操作请求时如何处理高速缓存存储器112。高速缓存管理模块108处理进行到框504,其中存储控制器104借助接收到的区域请求搜索先前指定的高速缓存规则110。在一个例子中,在框512处,高速缓存管理模块108搜索高速缓存规则110,以确定接收到的区域是否在高速缓存规则中列出。在该情况下,在框512处,高速缓存管理模块108确定接收到的区域请求(不具有高速缓存规则的LBA区域100-199)出现在高速缓存规则110中。高速缓存管理模块108处理进行到框506,以进行进一步的分析。
在框506处,存储控制器104检查接收到的区域以确定它们是否是新的区域或是否存在重叠。在该情况下,在框512处高速缓存管理模块108确定在接收到的区域和在高速缓存规则110中列出的区域之间存在重叠。在该情况下,处理进行到框510,其中存储控制器104调整现有条目的规则,在该情况下,以移除不具有规则的区域。在一个例子中,高速缓存管理模块108移除在高速缓存规则110中与在框514处导致条目的LBA区域100-199相关联的条目。也就是说,在框512处,区域1(具有绕过规则的LBA 100-199)不再如框514所示存在。在一个例子中,高速缓存管理模块108处理可以进行回框502,以继续检查输入区域指定请求。
图5E示出了根据本申请的技术的高速缓存管理技术的示例性过程流程图550。图5E示出的过程类似于图5A,除了图5E描述存储控制器104接收特殊的区域请求,并由此过程跟随特定路径。还将假设框512提供原始或当前高速缓存规则110的列表,并且框514在处理请求之后提供新的或修正后的高速缓存规则的列表,如下文所描述的。
处理可以开始于框502,其中存储控制器104经由区域指定请求操作接收区域的规则。在该例子中,为了说明,可以假设请求指定具有LBA区域100-199的区域,所述LBA区域100-199具有指定总是等待高速缓存存储器112中的空间的高速缓存规则。也就是说,在该情况下,高速缓存规则指定或指示高速缓存管理模块108在将数据存储到高速缓存存储器之前等待高速缓存存储器中的空间。高速缓存管理模块108处理进行到框504,其中存储控制器104借助接收到的区域请求搜索先前指定的区域规则集。在一个例子中,在框512处,高速缓存管理模块108搜索高速缓存列表,以确定接收到的区域是否在高速缓存列表中列出。在该情况下,在框512处,高速缓存管理模块108确定接收到的区域请求(具有指定总是等待高速缓存存储器中的空间的高速缓存规则的LBA区域100-199)出现在列表中。高速缓存管理模块108处理进行到框506,以进行进一步的分析。
在框506处,存储控制器104检查接收到的区域以确定它们是否是新的区域或是否存在重叠。在该情况下,在框512处高速缓存管理模块108确定在接收到的区域和在高速缓存列表中列出的区域之间存在重叠。在该情况下,处理进行到框510,其中高速缓存管理模块108调整现有条目的规则,在该情况下,合并两个相邻区域。在一个例子中,高速缓存管理模块108调整在框512中导致框514的条目的区域列表中的条目。也就是说,现在区域1用于指定如框514所示的总是等待的高速缓存规则。在一个例子中,高速缓存管理模块108处理可以进行回框502,以继续检查输入区域指定请求。
图5F示出了根据本申请的技术的高速缓存管理技术的示例性过程流程图560。图5F示出的过程类似于图5A,除了图5F描述存储控制器104接收特殊的区域请求,并由此过程跟随特定路径。还将假设框512提供原始的规则的列表,并且框514提供新的规则的列表,如下文所描述的。
处理可以开始于框502,其中存储控制器104经由区域指定请求操作接收区域的规则。在该例子中,为了说明,可以假设请求指定默认的行为绕过。也就是说,在该情况下,高速缓存规则指定或指示高速缓存管理模块108如果在区域指定请求中指定的区域没有出现在高速缓存列表中,则默认行为是绕过高速缓存存储器,并将数据存储到数据存储设备114而不是高速缓存存储器112。高速缓存管理模块108处理进行到框504,其中存储控制器104借助接收到的区域请求搜索先前指定的区域规则集。在一个例子中,在框512处,高速缓存管理模块108搜索高速缓存列表,以确定接收到的区域是否在高速缓存规则中列出。在该情况下,在框512处,高速缓存管理模块108确定接收到的区域请求(指定默认行为绕过)出现在列表中。高速缓存管理模块108处理进行到框506,以进行进一步的分析。
在框506处,存储控制器104检查接收到的区域以确定它们是否是新的区域或是否存在重叠。在该情况下,存储控制器104确定在接收到的区域和在区域列表中列出的区域之间存在匹配。在该情况下,处理进行到框510,其中存储控制器104调整现有条目的规则,在该情况下,高速缓存管理模块108移除对应于区域1(具有绕过的高速缓存规则的LBA 100-199)的条目,因为高速缓存规则指定绕过匹配接收到的区域指定请求的高速缓存规则。在该情况下,高速缓存管理模块108调整导致框514处的条目的在框512处的高速缓存规则中的条目。在一个例子中,高速缓存管理模块108处理可以进行回框502,以继续检查输入区域指定请求。
应该理解的是,结合图5A-5F描述的过程是出于图示的目的,并且可以采用其它例子实现本申请的技术。例如,高速缓存规则列表512的条目是出于图示的目的,并且可以采用不同数量和类型的高速缓存规则和相关联的LBA区域来实践本申请的技术。
图6A-6E是根据本申请的技术的高速缓存管理技术的示例性过程流程图。图6A-6E的过程流程图描述了当处理数据操作请求时存储控制器104如何管理高速缓存存储器112。如上所解释的,存储控制器104可以从主机102接收区域指定请求,该请求可以指定高速缓存管理模块108如何控制高速缓存存储器112相对于指定与数据存储设备114的LBA相关联的存储设备的区域的数据操作请求的行为。存储控制器104然后可以从主机102接收数据操作请求,其可以指定写入操作以将数据写入到数据存储设备,并且请求可以包括将写入的数据和将写入数据的数据存储设备114的位置的LBA区域。在另一例子中,数据操作请求可以指定读取操作,以从数据存储设备读取数据,并且所述请求包括将读取数据的数据存储设备的位置的LBA区域。如以下更详细解释的,与包含先前从来自区域指定请求的LBA区域接收到的信息的高速缓存规则110相比,存储控制器104可以基于来自数据操作请求的LBA区域的信息来处理数据操作请求。
图6A(图6A-1和图6A-2)示出了根据本申请的技术的高速缓存管理技术的示例性过程流程图600。
处理可以开始于框602,其中存储控制器104接收未指定额外规则的数据操作请求。在一个例子中,高速缓存管理模块108可以从主机102处接收数据操作请求,该请求可以指定将数据写入数据存储设备的写入操作,并且该请求可以包括将写入的数据和写入数据的数据存储设备114中的位置的LBA区域。在另一例子中,高速缓存管理模块108可以接收数据操作请求,该请求可以指定读取操作,以从数据存储设备114读取数据,并且该请求可以包括读取数据的数据存储设备中的位置的LBA区域。高速缓存管理模块108处理然后进行到框604,其中存储控制器104利用接收到的LBA搜索包含先前指定的LBA区域规则集的高速缓存规则110。
在框608处,在一个例子中,高速缓存管理模块108可以搜索高速缓存规则110,其包括先前接收到的LBA区域的条目和相关联的高速缓存规则。高速缓存管理108处理然后进行到框606,其中存储控制器104检查接收到的请求是否匹配在高速缓存规则110内的条目。如果高速缓存管理108确定存在匹配,则处理进行到框610。在另一方面,如果高速缓存管理108确定不存在匹配,则处理进行到框608。
在框608处,存储控制器104检查是否有区域剩余。在一个例子中,高速缓存管理108可以利用线性搜索、二分搜索或任意其它适当的搜索技术来搜索高速缓存规则110。如果高速缓存管理108确定在高速缓存规则110中有剩余区域待检查,则处理进行回框604,以继续搜索在高速缓存规则中先前指定的区域规则。在另一方面,如果高速缓存管理108确定在高速缓存规则110中没有区域剩余待检查,则处理进行到框612。
在框612处,存储控制器104正常处理请求或通过指定的默认行为处理请求。在一个例子中,该框可以描述查找操作的结果,例如在图6B中,查找操作包括在框605处检查高速缓存规则。如果在框606处发现高速缓存规则,则处理进行到框610;但是如果过程没有发现匹配输入请求的高速缓存规则,则处理进行以执行默认行为。在一个例子中,存储控制器104可以指定默认行为,如图6C所示(从不等待空间),或者可以留给存储控制器来在没有指定时选择默认行为。该行为然后可以根据所选的高速缓存规则应用于请求。高速缓存管理模块108处理然后进行到框614。
在框610处,存储控制器104为区域应用规则。在一个例子中,为了示出操作,高速缓存管理模块108可以应用高速缓存规则110,其指定以在高速缓存存储器112中持续(钉住)的方式处理数据。在一个例子中,在数据高速缓存方案中,方案可以包括单独的存储区域,其可以提供比用于处理请求的存储介质更快的访问。在该情况下,高速缓存管理模块108可以使用专用于服务于请求的存储器。高速缓存管理模块108处理然后进行到框614。
在框614处,存储控制器104确定应用哪些高速缓存规则,如以下各自的框616、620、624和630结合本文描述的例子所描述的。
在框616处,存储控制器104执行高速缓存规则以使得高速缓存管理模块108绕过高速缓存存储器112。在一个例子中,高速缓存管理模块108可以绕过高速缓存存储器112,并替代地将数据直接写入在数据存储设备114中的对应的LBA。在一个例子中,数据存储设备114可以是数据存储介质,其可以具有比高速缓存存储器112慢的访问,但是具有相当程度上更大的容量。在该情况下,这可以表示主机102写入的所有数据的结束位置。高速缓存管理模块108处理然后进行到框618。
在框618处,存储控制器104使请求LBA的高速缓存无效,并发送到可能是磁盘驱动存储设备的数据存储设备。在一个例子中,数据存储设备114可以是数据存储介质。在该情况下,不能由高速缓存存储器112服务的请求可以由数据存储设备114服务。由例子指定的高速缓存规则描述了绕过操作,这表示该规则描述了高速缓存存储器112将不被用于服务请求,而是将由数据存储阵列106服务。在一个例子中,高速缓存管理模块108发送请求到数据存储阵列106,以将数据写入到与LBA区域相关联的数据存储设备114。在一个例子中,高速缓存管理模块108处理然后可以进行回到框602,以处理其它的输入数据操作请求。
在框620处,存储控制器104基于可用性将数据公布或写入到高速缓存存储器112。在一个例子中,高速缓存规则110可以指定高速缓存管理模块108不应该必须等待高速缓存存储器112中的空间或地方来将数据写入到高速缓存存储器112。在一个例子中,通常高速缓存存储器112可以比数据存储阵列更快地服务请求,因此可能在高速缓存存储器内没有可用空间用于服务请求。在该情形下,高速缓存管理模块108将查找从高速缓存存储器中驱逐的数据。在从不等待空间高速缓存规则的情况下,如果没有可用空间,则高速缓存管理模块108将直接发送请求到数据存储阵列106。高速缓存管理模块108处理然后进行到框622以供后续处理。
在框622处,存储控制器104检查高速缓存存储器112,以确定在高速缓存存储器中是否存在空间或地方。在一个例子中,在总是等待空间高速缓存规则情况和在高速缓存中钉住数据规则中,输入请求可以与指示高速缓存管理模块108在高速缓存存储器112中放置数据的规则相关联。在该情形下,将要求完成如上所述的数据驱逐来服务这些请求。如上所述,数据存储阵列106可以具有比高速缓存存储器112慢的访问,并且等待时间取决于数据存储阵列服务在数据被从高速缓存存储器驱逐时创建的请求所用的时间。在一个例子中,如果高速缓存管理模块108确定有可用空间,则处理进行到框626,如下所述。在另一方面,如果高速缓存管理模块108确定没有可用空间,则处理进行到框618处,如上所述。
在框624处,存储控制器104确保数据被发布或写入到高速缓存存储器112,但是确保数据不被钉到高速缓存存储器。在一个例子中,高速缓存管理模块108可以通过总是等待高速缓存存储器112以具有存储空间或地方来保存数据,来处理该高速缓存规则。在一个例子中,在总是等待空间高速缓存规则情况和钉住数据高速缓存规则中,输入请求可以与指示高速缓存管理模块108将数据放置在高速缓存存储器112中的规则相关联。在该情形中,将要求完成上述数据驱逐以服务这些请求。如上所述,数据存储阵列106可以具有比高速缓存存储器112更低的访问速度,等待时间取决于数据存储阵列服务在从高速缓存存储器驱逐数据时创建的请求所用的时间。高速缓存管理模块108处理然后进行到框628。
在框626处,存储控制器将请求LBA的数据放置在高速缓存中。在一个例子中,高速缓存管理模块108可以使用先进先出(FIFO)技术或任意其它相关技术来执行该功能。在一个例子中,FIFO技术可以包括用于从高速缓存存储器112驱逐数据的方法。可以采用其它技术,例如随机技术(在高速缓存存储器中选择随机数据单元并从高速缓存存储器驱逐这种数据)或分类技术(以LBA顺序选择数据并从高速缓存驱逐所选的数据)。这些技术中的每一个取决于数据存储阵列106中介质的类型而具有不同的优点和缺点。在一个例子中,高速缓存管理模块108处理可以随后进行回框602,以处理其它的输入数据操作请求。
在框628处,存储控制器104检查高速缓存存储器112,以确定在高速缓存存储器中是否存在空间或地方。如上所述,在一个例子中,在总是等待空间高速缓存规则情况和在高速缓存中钉住数据规则中,输入请求可以与指示高速缓存管理模块108将数据放置在高速缓存存储器112的规则相关联。在该情形下,将要求完成上述数据驱逐以服务这些请求。如上所述,数据存储阵列106具有比高速缓存存储器112更低的访问速度,等待时间取决于数据存储阵列服务在从高速缓存存储器驱逐数据时创建的请求所用的时间。在一个例子中,如果高速缓存管理模块108确定在高速缓存存储器112中存在空间以写入数据,则处理进行到框626,如上所述。在另一方面,如果高速缓存管理模块108确定没有可用空间,则处理进行到框634,如下所述。
在框630处,存储控制器104将数据钉住在高速缓存存储器112中。在一个例子中,高速缓存管理模块108将数据以持续方式写入到高速缓存存储器112中。如上所述在一个例子中,非持续可以定义为如果需要空间则从高速缓存存储器驱逐数据的条件或规则。在另一方面,持续(钉住)可以定义为除非指定否则不从高速缓存存储器驱逐数据的条件或规则。高速缓存管理模块108处理然后进行到框632。
在框632处,存储控制器104检查高速缓存存储器,以确定在高速缓存存储器中是否存在空间或地方。如上所述,在一个例子中,在总是等待空间高速缓存规则和在高速缓存中钉住数据规则中,输入请求可以与指示高速缓存管理模块108将数据放置在高速缓存存储器112中的规则相关联。在该情形下,将要求完成上述数据驱逐以服务这些请求。如上所述,数据存储阵列106具有比高速缓存存储器112更低的访问速度,等待时间取决于数据存储阵列服务在从高速缓存存储器驱逐数据时创建的请求所用的时间。在一个例子中,如果高速缓存管理模块108确定在高速缓存存储器112中存在空间,则处理进行到框636。在另一方面,如果高速缓存管理模块108确定没有可用空间,则处理进行到框634。
在框634处,存储控制器104等待空间变成可用于将请求LBA放置于高速缓存存储器112中。在一个例子中,当请求指定在空间可用时总是等待,高速缓存管理模块108处理可以进行到框626。如上所述,在一个例子中,在总是等待空间高速缓存规则情况和在高速缓存中钉住数据规则中,输入请求可以与指示高速缓存管理模块108将数据放置在高速缓存存储器112中的规则相关联。在该情形下,要求完成上述数据驱逐过程以服务这些请求。如上所述,数据存储阵列106具有比高速缓存存储器112更低的访问速度,并且等待时间取决于数据存储阵列服务在从高速缓存存储器驱逐数据时创建的请求所用的时间。在另一例子中,当请求指定以持续方式(钉住请求)管理数据时以及当在高速缓存存储器中有可用空间时,高速缓存管理模块108处理进行到框636。
在框636处,存储控制器104将请求LBA的数据以持续方式(钉住)放置到高速缓存存储器中。在一个例子中,高速缓存管理模块108可以配置为不从高速缓存存储器驱逐数据,直到满足指定阈值。在一个例子中,高速缓存管理模块108可以配置为管理钉住区域的量,从而不超过高速缓存存储器112的整体大小。如果是这种情况,则存储控制器104可能不能满足指定的钉住规则。所述“阈值”是上述要求的实现。在一个例子中,高速缓存管理模块108处理可以进行回框602,以处理其它的输入数据操作请求。
图6B示出了根据本申请的技术的高速缓存管理技术的示例性过程流程图650。图6B所示的过程类似于图6A,除了图6B描述存储控制器104接收具有数据操作请求的区域信息,并由此过程跟随特定路径,如下文更详细描述的。
为了示出操作,还将假设框606表示提供指定高速缓存管理模块108如何相对特定LBA区域处理高速缓存存储器112的高速缓存规则110。例如,可以假设在框605处高速缓存规则包括以下高速缓存规则的列表和相关联的LBA区域。对于区域0,条目指定对于具有LBA区域0到99的数据操作请求,高速缓存规则110指定高速缓存管理模块108以在高速缓存存储器112中持续的方式(钉住)来存储数据。对于区域1,条目指定对于具有LBA区域100到199的数据操作请求,高速缓存规则110指定高速缓存管理模块108将数据存储到存储设备并绕过高速缓存存储器112。对于区域2,条目指定对于具有LBA区域200到299的数据操作请求,高速缓存规则110指定高速缓存管理模块108等待以基于高速缓存存储器的空间的可用性而将数据存储到高速缓存存储器112。默认地,也就是说,对于在上述LBA区域(区域0、1和2)的范围外的请求,条目指定高速缓存管理模块108将不等待高速缓存存储器112中的空间而将数据存储到高速缓存存储器中。应该理解的是,在框605处,高速缓存规则110的条目是出于图示的目的,并且可以采用不同数量和类型的高速缓存规则和相关联的LBA区域来实践本申请的技术。例如,在框605处,高速缓存规则110可以包括不同数量的条目,其指定不同的LBA区域和与区域相关联的不同高速缓存规则。
处理可以开始于框602,其中存储控制器104接收提供指定LBA 150的区域的数据操作的数据操作请求。高速缓存管理模块108处理进行到框604,存储控制器104借助接收到的请求LBA搜索先前指定的LBA区域和在框605处的相关联的高速缓存规则110。在一个例子中,为了示出操作,处理进行到框604,其中存储控制器104确定应用高速缓存规则110属于框616。在框616处,存储控制器104执行高速缓存规则110,以绕过高速缓存存储器112。高速缓存管理模块108处理进行到框618,其中存储控制器104使得请求LBA的高速缓存存储器112无效,并发送到可能是磁盘驱动存储设备的数据存储设备。在一个例子中,高速缓存管理模块108处理进行回框602,以处理其它输入数据操作请求。
图6C示出了根据本申请的技术的高速缓存管理技术的示例性过程流程图660。图6C所示的过程类似于图6A,除了图6C描述存储控制器104接收具有数据操作请求的区域信息,并由此过程跟随特定路径,如下文更详细描述的。
处理可以开始于框602,其中存储控制器104接收提供指定LBA 300的区域的数据操作的数据操作请求。高速缓存管理模块108处理进行到框604,其中存储控制器104借助接收到的请求LBA搜索先前指定的LBA区域和在框605处的高速缓存规则110。在一个例子中,为了示出操作,高速缓存管理模块108处理进行到框604,其中存储控制器104确定应用高速缓存规则110属于框620。在框620处,存储控制器104以类似于上述方式基于可用性将数据发布或写入到高速缓存存储器112中。
图6D示出了根据本申请的技术的高速缓存管理技术的示例性过程流程图670。图6D所示的过程类似于图6A,除了图6D描述存储控制器104接收具有数据操作请求的区域信息,并由此过程跟随特定路径,如下文更详细描述的。
处理可以开始于框602,其中存储控制器104接收提供指定LBA 250的区域的数据操作的数据操作请求。高速缓存管理模块108处理进行到框604,在其中借助接收到的请求LBA搜索先前指定的LBA区域和在框605处的高速缓存规则110。在一个例子中,为了示出操作,高速缓存管理模块108处理进行到框614,其中确定应用高速缓存规则110属于框624。在框624处,存储控制器104以类似上述方式确保数据被发布或写入到高速缓存存储器112并且确保数据不被钉住到高速缓存存储器(例如,总是等待空间或地方)。
图6E示出了根据本申请的技术的高速缓存管理技术的示例性过程流程图680。图6E所示的过程类似于图6A,除了图6E描述存储控制器104接收具有数据操作请求的区域信息,并由此过程跟随特定路径,如下文更详细描述的。
处理可以开始于框602,其中存储控制器104接收提供指定LBA“0”的区域的数据操作的数据操作请求。高速缓存管理模块108处理进行到框604,其中存储控制器104借助接收到的请求LBA搜索先前指定的LBA区域和在框605处的高速缓存规则110。在一个例子中,为了示出操作,处理进行到框614,其中存储控制器104确定应用高速缓存规则110属于框630。在框630处,存储控制器104以类似上述方式将数据钉住在高速缓存存储器112中。
应该理解的是,结合图6A-6E描述的过程是出于图示的目的,并且可以采用其它例子来实现本申请的技术。例如,框605处的高速缓存规则110的条目是出于图示的目的,并且可以采用不同数量和类型的高速缓存规则和相关联的LBA区域来实践本申请的技术。
图7是根据本申请的技术的高速缓存管理技术的另一示例性过程流程图700。
处理可以开始于框702,其中存储控制器104从主机102接收请求。在一些例子中,高速缓存管理模块108可以接收请求,所述请求可以是从数据存储设备读取数据的数据操作请求以及将数据写入到数据存储设备的数据操作请求。高速缓存管理模块108处理进行到框704。
在框704处,存储控制器104检查请求是从数据存储设备读取数据的数据操作请求还是将数据写入到数据存储设备的数据操作请求。例如,如果高速缓存管理模块108确定请求是从数据存储设备读取数据的数据操作请求,则处理进行到框706,以供读取数据操作的后续处理。在另一方面,如果高速缓存管理模块108确定请求是将数据写入到数据存储设备的数据操作请求,则处理进行到框710,以供写入数据操作的后续处理。
在框706处,存储控制器104检查来自读取数据操作的与LBA区域信息相关联的数据是否存储于高速缓存存储器中。在一个例子中,如果高速缓存管理模块108确定所述数据存储于高速缓存存储器112中,则处理进行到框708。在另一方面,如果高速缓存管理模块108确定所述数据不存储于高速缓存存储器112中,则处理进行到框712。
在框708处,存储控制器104将数据从高速缓存存储器返回。在一个例子中,高速缓存管理模块108从高速缓存存储器112取回读取数据操作的与LBA区域信息相关联的数据。在一些例子中,高速缓存管理模块108处理可以进行回框702,以检查从主机102的其它数据操作请求的接收。
在框710处,存储控制器104通过发现并应用适当的高速缓存规则而处理数据操作请求。例如,如果高速缓存管理模块108发现适当的高速缓存规则110,则处理进行到各自的处理框712、714、716或718,如下所述。
在框712处,存储控制器104将请求发送到数据存储设备。在一个例子中,高速缓存管理模块108基于在操作中指定的LBA区域通过发送所请求的数据到数据存储设备114,来处理数据操作请求。高速缓存管理模块108处理进行到框720。
在框714处,存储控制器104等待高速缓存存储器中的空间。在一个例子中,在进行将数据写入到高速缓存存储器之前,高速缓存管理模块108等待高速缓存存储器112中的存储空间或地方。在一些例子中,高速缓存管理模块108处理可以进行回框702,以检查从主机102接收其它数据操作请求。
在框716处,存储控制器104将数据钉住到高速缓存存储器。在一个例子中,高速缓存管理模块108进行用持续模式将数据写入到高速缓存存储器112。在一些例子中,高速缓存管理模块108处理可以进行回框702,以检查从主机102接收其它数据操作请求。
在框718处,存储控制器104将数据放置到高速缓存存储器中。在一个例子中,高速缓存管理模块108进行将数据写入到高速缓存存储器112。在一些例子中,高速缓存管理模块108处理可以进行回框702,以检查从主机102接收其它数据操作请求。
在框720处,存储控制器104确认LBA不存在于高速缓存中或绕过操作。在一个例子中,高速缓存管理模块108进行通知相关主机具有相关联的LBA的数据不存在于高速缓存存储器112中,或者绕过操作。在一些例子中,高速缓存管理模块108处理可以进行回框702,以检查从主机102接收其它数据操作请求。
应该理解的是,结合图7描述的过程是出于图示的目的,并且可以采用其它例子来实现本申请的技术。
图8是示出根据本申请的技术的存储用于高速缓存管理的指令的非瞬态计算机可读介质的示例性框图。非瞬态计算机可读介质通常由附图标记800表示,并且可以包含于系统100的设备中,如本文所述。非瞬态计算机可读介质800可以对应于任意典型的存储设备,其存储计算机实现的指令,例如编程代码等。例如,非瞬态计算机可读介质800可以包括一个或多个非易失性存储器、易失性存储器、和/或一个或多个存储设备。非易失性存储器的例子包括但不限于:电可擦除可编程只读存储器(EEPROM)和只读存储器(ROM)。易失性存储器的例子包括但不限于:静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。存储设备的例子包括但不限于:硬盘驱动、压缩盘驱动、数字通用盘驱动、光驱动和闪存设备。
处理器802一般取回和执行在非瞬态计算机可读介质800中存储的指令,以操作根据例子的系统100的设备。在例子中,有形的机器可读介质800可以由处理器802通过总线804访问。非瞬态计算机可读介质800的第一区域806可以包括如本文所述的高速缓存管理模块功能。非瞬态计算机可读介质800的第二区域808可以包括如本文所描述的高速缓存规则数据。非瞬态计算机可读介质800的第三区域810可以包括如本文所描述的高速缓存存储器。
虽然示出为连续框,但软件部件可以以任何顺序或配置存储。例如,如果非瞬态计算机可读介质800是硬驱动,则软件部件可以存储于不连续的或者甚至重叠的扇区内。
Claims (15)
1.一种用于高速缓存管理的存储控制器,所述存储控制器包括:
高速缓存存储器;以及
高速缓存管理模块,用于:
响应于从主机接收区域指定请求,从所述区域指定请求提取高速缓存规则,所述高速缓存规则用于管理所述高速缓存存储器和存储阵列的数据存储设备的区域;以及
响应于从主机接收数据操作请求,基于提取出的高速缓存规则处理所述数据操作请求。
2.根据权利要求1所述的存储控制器,其中,所述高速缓存管理模块配置为接收包括从存储设备读取数据和将数据写入到存储设备的主机请求中的至少一个的所述数据操作请求。
3.根据权利要求1所述的存储控制器,其中,所述高速缓存管理模块配置为接收所述区域指定请求,所述区域指定请求指定所述高速缓存存储器相对于与存储设备的逻辑块地址(LBA)相关联的存储设备的区域的行为。
4.根据权利要求1所述的存储控制器,其中,所述高速缓存管理模块配置为接收包括高速缓存规则的区域指定请求,所述高速缓存规则用于相对于存储设备的LBA区域管理所述高速缓存存储器,所述高速缓存规则至少包括:用于将所述数据存储到存储设备中并绕过所述高速缓存存储器的一个高速缓存规则,用于基于所述高速缓存存储器的空间的可用性将所述数据存储到高速缓存存储器中的一个高速缓存规则,用于将所述数据以在所述高速缓存存储器中的非持续方式存储到所述高速缓存存储器中的一个高速缓存规则,用于将所述数据以在所述高速缓存存储器中的持续方式存储的一个高速缓存规则。
5.根据权利要求1所述的存储控制器,其中,所述高速缓存管理模块配置为从所述主机接收数据操作请求,其至少包括:写入请求中的一个和读取请求中的一个,所述写入请求包括将写入到存储设备的数据和将写入所述数据的数据存储设备的区域的识别,所述读取请求包括将读取所述数据的数据存储设备的区域的识别,并且其中所述高速缓存管理模块配置为比较来自所述请求的区域和从所述区域指定请求接收到的区域的列表。
6.一种高速缓存管理的方法,所述方法包括:
响应于从主机接收区域指定请求,从所述区域指定请求提取高速缓存规则,所述高速缓存规则用于管理存储阵列的数据存储设备的区域;以及
响应于从主机接收数据操作请求,基于提取出的高速缓存规则处理所述数据操作请求。
7.根据权利要求6所述的方法,其中,所述数据操作请求包括从存储设备中读取数据和将数据写入到存储设备的主机请求中的至少一个。
8.根据权利要求6所述的方法,其中,所述区域指定请求指定所述高速缓存存储器相对于与存储设备的逻辑块地址(LBA)相关联的存储设备的区域的行为。
9.根据权利要求6所述的方法,其中,所述区域指定请求包括用于相对于存储设备的LBA区域管理所述高速缓存存储器的高速缓存规则,所述高速缓存规则至少包括:用于将所述数据存储到存储设备并绕过所述高速缓存存储器的高速缓存规则,用于基于所述高速缓存存储器的空间的可用性将所述数据存储到高速缓存存储器中的高速缓存规则,用于将所述数据以在所述高速缓存存储器中的非持续方式存储到所述高速缓存存储器中的高速缓存规则,用于将所述数据以在所述高速缓存存储器中的持续方式存储的高速缓存规则。
10.根据权利要求6所述的方法,其中,所述高速缓存管理模块配置为从所述主机接收数据操作请求,其至少包括:写入请求中的一个和读取请求中的一个,所述写入请求包括将写入到存储设备的数据和将写入所述数据的数据存储设备的区域的识别,所述读取请求包括将读取所述数据的数据存储设备的区域的识别,并且其中所述高速缓存管理模块比较来自所述请求的区域和从所述区域指定请求接收到的区域的列表。
11.一种存储有用于高速缓存管理的计算机可执行指令的非瞬态计算机可读介质,所述指令能够由处理器执行以进行以下操作:
响应于从主机接收区域指定请求,从所述区域指定请求提取高速缓存规则,所述高速缓存规则用于管理存储阵列的数据存储设备的区域;以及
响应于从主机接收数据操作请求,基于提取出的高速缓存规则处理所述数据操作请求。
12.根据权利要求11所述的非瞬态计算机可读介质,还包括在被执行时使得处理器进行以下操作的指令:接收所述数据操作请求,其包括从存储设备中读取数据和将数据写入到存储设备的主机请求中的至少一个。
13.根据权利要求11所述的非瞬态计算机可读介质,还包括在被执行时使得处理器进行以下操作的指令:接收所述区域指定请求,所述区域指定请求指定所述高速缓存存储器相对于与存储设备的逻辑块地址(LBA)相关联的存储设备的区域的行为。
14.根据权利要求11所述的非瞬态计算机可读介质,还包括在被执行时使得处理器进行以下操作的指令:接收所述区域指定请求,所述区域指定请求包括用于相对于存储设备的LBA区域管理所述高速缓存存储器的高速缓存规则,所述高速缓存规则至少包括:用于将所述数据存储到存储设备并绕过所述高速缓存存储器的高速缓存规则,用于基于所述高速缓存存储器的空间的可用性将所述数据存储到高速缓存存储器中的高速缓存规则,用于将所述数据以在所述高速缓存存储器中的非持续方式存储到所述高速缓存存储器中的高速缓存规则,以及用于将所述数据以在所述高速缓存存储器中的持续方式存储的高速缓存规则。
15.根据权利要求11所述的非瞬态计算机可读介质,还包括在被执行时使得处理器进行以下操作的指令:从所述主机接收数据操作请求,其至少包括:写入请求中的一个和读取请求中的一个,所述写入请求包括将写入到存储设备的数据和将写入所述数据的数据存储设备的区域的识别,所述读取请求包括将读取所述数据的数据存储设备的区域的识别,并且其中所述高速缓存管理模块比较来自所述请求的区域和从所述区域指定请求接收到的区域的列表。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2014/035736 WO2015167435A1 (en) | 2014-04-28 | 2014-04-28 | Cache management |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106133707A true CN106133707A (zh) | 2016-11-16 |
CN106133707B CN106133707B (zh) | 2020-03-20 |
Family
ID=54358994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480077784.6A Expired - Fee Related CN106133707B (zh) | 2014-04-28 | 2014-04-28 | 高速缓存管理 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10296240B2 (zh) |
CN (1) | CN106133707B (zh) |
WO (1) | WO2015167435A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9830356B2 (en) * | 2014-07-17 | 2017-11-28 | Software Ag Usa, Inc. | Systems and/or methods for enabling storage tier selection and usage at a granular level |
US10466936B2 (en) * | 2014-09-26 | 2019-11-05 | Oracle International Corporation | Scalable, multi-dimensional search for optimal configuration |
US10126981B1 (en) * | 2015-12-14 | 2018-11-13 | Western Digital Technologies, Inc. | Tiered storage using storage class memory |
US11182306B2 (en) * | 2016-11-23 | 2021-11-23 | Advanced Micro Devices, Inc. | Dynamic application of software data caching hints based on cache test regions |
US10769062B2 (en) | 2018-10-01 | 2020-09-08 | Western Digital Technologies, Inc. | Fine granularity translation layer for data storage devices |
US10956071B2 (en) | 2018-10-01 | 2021-03-23 | Western Digital Technologies, Inc. | Container key value store for data storage devices |
US10740231B2 (en) | 2018-11-20 | 2020-08-11 | Western Digital Technologies, Inc. | Data access in data storage device including storage class memory |
US11016905B1 (en) | 2019-11-13 | 2021-05-25 | Western Digital Technologies, Inc. | Storage class memory access |
US11249921B2 (en) | 2020-05-06 | 2022-02-15 | Western Digital Technologies, Inc. | Page modification encoding and caching |
US20230359553A1 (en) * | 2020-10-23 | 2023-11-09 | Hewlett-Packard Development Company, L.P. | Access to volatile memories |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101276260A (zh) * | 2007-03-26 | 2008-10-01 | 株式会社东芝 | 信息记录装置及其控制方法 |
CN101467136A (zh) * | 2006-06-09 | 2009-06-24 | 微软公司 | 高速非易失性存储器设备 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7761594B1 (en) | 2001-10-15 | 2010-07-20 | Netapp, Inc. | Method and apparatus for forwarding requests in a cache hierarchy based on user-defined forwarding rules |
US7020745B1 (en) * | 2002-12-20 | 2006-03-28 | Lsi Logic Corporation | AMBA-based secondary cache controller and method of operating the same |
US7853699B2 (en) | 2005-03-15 | 2010-12-14 | Riverbed Technology, Inc. | Rules-based transaction prefetching using connection end-point proxies |
JP4141391B2 (ja) | 2004-02-05 | 2008-08-27 | 株式会社日立製作所 | ストレージサブシステム |
US8127088B2 (en) | 2005-01-27 | 2012-02-28 | Hewlett-Packard Development Company, L.P. | Intelligent cache management |
US20090070526A1 (en) * | 2007-09-12 | 2009-03-12 | Tetrick R Scott | Using explicit disk block cacheability attributes to enhance i/o caching efficiency |
EP2263159B1 (en) | 2008-04-09 | 2016-05-25 | Level 3 Communications, LLC | Rule-based content request handling |
JP5999645B2 (ja) * | 2009-09-08 | 2016-10-05 | ロンギチュード エンタープライズ フラッシュ エスエイアールエル | ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法 |
US8285918B2 (en) | 2009-12-11 | 2012-10-09 | Nimble Storage, Inc. | Flash memory cache for data storage device |
BR112014015051B1 (pt) | 2011-12-21 | 2021-05-25 | Intel Corporation | método e sistema para utilizar dicas de liberação de memória dentro de um sistema de computador |
WO2013153581A1 (en) * | 2012-04-13 | 2013-10-17 | Hitachi, Ltd. | Storage apparatus and data management method |
WO2013175529A1 (en) * | 2012-05-23 | 2013-11-28 | Hitachi, Ltd. | Storage system and storage control method for using storage area based on secondary storage as cache area |
-
2014
- 2014-04-28 US US15/117,585 patent/US10296240B2/en not_active Expired - Fee Related
- 2014-04-28 CN CN201480077784.6A patent/CN106133707B/zh not_active Expired - Fee Related
- 2014-04-28 WO PCT/US2014/035736 patent/WO2015167435A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101467136A (zh) * | 2006-06-09 | 2009-06-24 | 微软公司 | 高速非易失性存储器设备 |
CN101276260A (zh) * | 2007-03-26 | 2008-10-01 | 株式会社东芝 | 信息记录装置及其控制方法 |
US20080244188A1 (en) * | 2007-03-26 | 2008-10-02 | Kabushiki Kaisha Toshiba | Information recording apparatus and control method thereof |
Also Published As
Publication number | Publication date |
---|---|
WO2015167435A1 (en) | 2015-11-05 |
CN106133707B (zh) | 2020-03-20 |
US20160357463A1 (en) | 2016-12-08 |
US10296240B2 (en) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106133707A (zh) | 高速缓存管理 | |
US10459657B2 (en) | Storage system with read cache-on-write buffer | |
US9632826B2 (en) | Prioritizing deferred tasks in pending task queue based on creation timestamp | |
US10826980B2 (en) | Command process load balancing system | |
CN100362462C (zh) | 磁盘阵列缓存的管理方法 | |
CN102486752B (zh) | Sas扩展器中数据预取 | |
US9244980B1 (en) | Strategies for pushing out database blocks from cache | |
JP2013509658A (ja) | 将来の使用推量に基づく記憶メモリの割り当て | |
US10614004B2 (en) | Memory transaction prioritization | |
CA2987731C (en) | Database memory monitoring and defragmentation of database indexes | |
US9817754B2 (en) | Flash memory management | |
US20200034040A1 (en) | Data Architecture Based on Sub-allocation and References from Fragmented Data Blocks | |
US11042491B2 (en) | Point in time copy operations from source volumes to space efficient target volumes in two stages via a non-volatile storage | |
US20220067549A1 (en) | Method and Apparatus for Increasing the Accuracy of Predicting Future IO Operations on a Storage System | |
CN115470157A (zh) | 预取方法、电子设备、存储介质及程序产品 | |
EP3293625B1 (en) | Method and device for accessing file, and storage system | |
US20140304226A1 (en) | Storage system | |
CN108052296B (zh) | 一种数据读取方法、设备及计算机存储介质 | |
US9384135B2 (en) | System and method of caching hinted data | |
US9256648B2 (en) | Data handling in a cloud computing environment | |
FR3074939A1 (fr) | Procede de gestion du systeme de fichiers d'un terminal informatique | |
US11003578B2 (en) | Method and system for parallel mark processing | |
US11245607B2 (en) | Dynamic data movement between cloud and on-premise storages | |
US20160070715A1 (en) | Storing data in a distributed file system | |
US20110047332A1 (en) | Storage system, cache control device, and cache control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200320 |
|
CF01 | Termination of patent right due to non-payment of annual fee |