CN103688249B - 固态盘的自适应记录高速缓存 - Google Patents

固态盘的自适应记录高速缓存 Download PDF

Info

Publication number
CN103688249B
CN103688249B CN201280035909.XA CN201280035909A CN103688249B CN 103688249 B CN103688249 B CN 103688249B CN 201280035909 A CN201280035909 A CN 201280035909A CN 103688249 B CN103688249 B CN 103688249B
Authority
CN
China
Prior art keywords
storage
track
fragmented
record
fragmented storage
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.)
Active
Application number
CN201280035909.XA
Other languages
English (en)
Other versions
CN103688249A (zh
Inventor
M.T.本哈斯
L.M.古普塔
J.S.海德二世
L.C.拉弗里斯
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103688249A publication Critical patent/CN103688249A/zh
Application granted granted Critical
Publication of CN103688249B publication Critical patent/CN103688249B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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/0888Addressing 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
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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
    • 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/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • 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/604Details relating to cache allocation
    • 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/608Details relating to cache mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

存储控制器接收对应于访问高速缓存中的轨道的请求。做出该轨道是否对应于存储在固态盘中的数据的确定。响应于确定该轨道对应于存储在固态盘中的数据,执行从固态盘到高速缓存的记录分段存储,其中每个轨道包括多个记录。

Description

固态盘的自适应记录高速缓存
技术领域
本公开涉及一种固态盘的自适应记录高速缓存的方法、系统和制造品。
背景技术
存储控制器可以控制可包括硬盘、磁带等的多个存储设备。高速缓存也可以由存储控制器维持,其中所述高速缓存可以包含高速存储器,其与诸如硬盘、磁带等的某些其它存储设备相比可以更快速地访问。然而,高速缓存的存储容量的总量与诸如硬盘等的由存储控制器控制的某些其它存储设备的存储容量相比可能是相对较小的。
在某些存储控制器中,可以使用各种预期的或自适应的高速缓存机制以将数据存储在高速缓存中。某些被更频繁使用的数据或者可能被更频繁使用的数据在可能在不久的将来访问该数据的预期下被移动到高速缓存中。这样类型的高速缓存机制可被称为预期的或自适应的高速缓存,并且可以通过在存储控制器中维持的自适应高速缓存应用程序来执行。响应于对数据的请求,如果在高速缓存中没有找到所请求的数据,则存储控制器可以从该存储控制器控制的存储设备中取得所请求的数据。
固态盘(SSD)可包括使用固态存储器来存储持久数字数据的存储设备。固态盘可包括闪存或其他类型的存储器。相较于诸如硬盘的机电式访问的数据存储设备可以更快地访问固态盘。
发明内容
提供了一种方法、系统和计算机程序产品,其中存储控制器接收对应于访问高速缓存中的轨道的请求。做出该轨道是否对应于存储在固态盘中的数据的确定。响应于确定该轨道对应于存储在固态盘中的数据,执行从固态盘到高速缓存的记录分段存储(staging),其中每个轨道包括多个记录。
在进一步的实施例中,做出该轨道是否对应于存储在硬盘中的数据的确定。响应于确定该轨道对应于存储在硬盘中的数据,基于在存储控制器中维持的标准,在执行从硬盘到高速缓存的部分轨道分段存储、完整轨道分段存储和记录分段存储之中做出选择。在完整轨道分段存储中分段存储整个轨道,在部分轨道分段存储中分段存储从所请求的扇区的起始开始到轨道末尾的所有扇区,在记录分段存储中只分段存储所请求的扇区。
在进一步的实施例中,当相对地最近没有访问轨道时,执行从固态盘的记录分段存储,并且当相对地最近访问了该轨道时,至少在执行部分轨道分段存储和执行完整轨道分段存储之中做出选择,
在附加的实施例中,维持轨道的最近最少使用的列表,其中,按照在高速缓存中对每个轨道的访问以单调递增的顺序为该列表中的每个轨道顺序编号,然后将其放置在最近最少使用的列表中。基于预定的标准,做出关于最近是否使用了所选轨道的确定,所述预定的标准基于轨道的最近最少使用的列表中轨道的序列号、存储在高速缓存中的那些轨道所消耗的高速缓存空间量和指示存储量的阈值。
在另一附加的实施例中,记录分段存储被用作耦合到存储控制器的固态盘的默认分段存储操作,并且部分轨道分段存储被用作耦合到存储控制器的硬盘的默认分段存储操作,其中在部分轨道分段存储中分段存储从所请求的扇区的起始开始到轨道末尾的所有扇区,在记录分段存储中只分段存储所请求的扇区。
附图说明
现在参考附图,其中全部附图中相同的参考标号表示相应的部件:
图1示出根据某些实施例的包括耦合到多个主机的存储控制器、多个硬盘和多个固态盘的计算环境的框图;
图2示出根据某些实施例的显示了贮存器的逻辑表示的框图;
图3A示出根据某些实施例的显示了示例性分段存储操作的框图;
图3B示出根据某些实施例的显示了完整轨道分段存储、部分轨道分段存储和记录分段存储的框图;
图4示出根据某些实施例的显示了用于自适应高速缓存的数据结构的框图;
图5示出根据某些实施例的显示了自适应高速缓存的操作的框图;
图6示出根据某些实施例的显示了固态盘的示例性实施例的框图;
图7示出根据某些实施例的显示了某些操作的流程图;
图8示出根据某些实施例的显示了某些操作的流程图;以及
图9示出根据某些实施例的显示了可以被包括在图1的存储控制器中的某些元件的计算系统的框图。
具体实施方式
在以下描述中,参考了组成本说明书的一部分并说明若干实施例的附图。应当理解,可以利用其他实施例,并且可作出结构和操作上的改变。
自适应高速缓存机制
可以为耦合到存储控制器的硬盘设计自适应高速缓存机制。在某些实施例中,固态设备也可耦合到存储控制器。然而,固态盘具有与硬盘不同的特性。虽然与硬盘相比可以更快地访问固态盘,但是固态盘在大块传输上的性能可能会比小块传输差很多。然而,为硬盘设计的自适应高速缓存机制可以执行大块传输。在使用固态盘的某些实施例中,可以修改这样的自适应高速缓存机制以提高固态盘的性能。
在某些实施例中,与为硬盘优选的部分轨道高速缓存相比,为固态盘优选记录高速缓存。与部分轨道高速缓存或用于此的完整轨道高速缓存相比,记录高速缓存(即,分段存储(staging)或复制被请求到高速缓存的记录/扇区)导致相对较小的块传输。应注意,轨道由多个记录组成,并且传输整个轨道或部分轨道与传输所选记录相比通常会导致大块传输。
此外,在某些实施例中,如果固态盘的轨道最近没有被使用(即,该轨道在为高速缓存维持的最近最少使用(LRU)列表中较低),则使用记录高速缓存。在某些实施例中,当固态盘的轨道最近已被使用时(即,该轨道在为高速缓存维持的LRU列表中较高),可以通过在记录分段存储、部分轨道分段存储或者完整轨道分段存储中进行选择,以类似于从硬盘到高速缓存的分段存储操作的方式,执行从固态盘到高速缓存的分段存储操作。
因此,在某些实施例中,修改用于硬盘的自适应高速缓存应用程序,以生成可被用于硬盘和固态设备两者的增强的自适应高速缓存应用程序。
示例性实施例
图1示出根据某些实施例的包括耦合到多个主机104a、104b……104n、多个硬盘106和多个固态盘108的存储控制器102的计算环境100的框图。
存储控制器102和主机104a、104b……104n可以包括任何合适的计算设备,包括那些在本领域中目前已知的,诸如,个人计算机、工作站、服务器、大型机、手持式计算机、掌上计算机、电话设备、网络装置、刀片计算机、服务器等。所述多个硬盘106可以包括本领域中已知的任何合适的物理硬盘。所述多个固态盘108可包括本领域中已知的任何合适的物理固态盘。
存储控制器102、主机104a、104b……104n、多个硬盘106和多个固态盘108可以在诸如因特网、存储区域网络、广域网、局域网等的网络上进行通信。所述多个硬盘106可在一个或多个硬盘驱动之内进行配置,并且所述多个固态盘108可在一个或多个固态盘驱动之内进行配置。
存储控制器102执行增强的自适应高速缓存应用程序110,并且控制在存储控制器102内示出的高速缓存112。在可替换实施例中,高速缓存112可以存在于存储控制器102的外部。
增强的自适应高速缓存应用程序110为用于硬盘106的部分轨道的分段存储增加了用于固态盘108的记录高速缓存。在某些实施例中,当固态盘的轨道最近没有被使用时,仅记录分段存储用于固态盘。应用程序110被称为增强的自适应高速缓存应用程序110,这是因为为硬盘设计的自适应高速缓存应用程序可以被修改或利用附加的操作进行增强,以创建增强的自适应高速缓存应用程序110,使得固态盘和硬盘两者可以在存储控制器102的控制下高效地运作。
图2示出根据某些实施例的显示了贮存器202的逻辑表示的框图200。
增强的自适应高速缓存应用程序110可以动态地改变用于数据的分段存储操作。自适应的粒度是柱面带(cylinder band)204,其是设备上任意数量的连续柱面206a……206n。在某些实施例中,所述带中柱面的数量可以是126。每个柱面带可以包含数据结构以管理与该带相关联的自适应高速缓存统计信息。
每个柱面可以包括多个轨道,其中每个轨道可以包括多个扇区。例如,柱面206a被示为具有多个轨道208a……208p,其中轨道208a包含多个扇区210a……210m。扇区是硬盘驱动、固态盘或任何其它类型的存储介质的特定大小的划分。操作系统可以参考对应于存储在存储介质上的扇区的记录。
图3A示出根据某些实施例的显示了示例性分段存储操作302的框图300。分段存储操作可以将硬盘或某些其他储存介质上的数据复制到高速缓存112。增强的自适应高速缓存应用程序110支持下面的三个分段存储策略:
(a)扇区分段存储(也被称为记录分段存储或记录高速缓存)304:在扇区分段存储中只将满足当前请求所需的(多个)扇区分段存储到高速缓存112;
(b)部分轨道分段存储306:在部分轨道分段存储中,分段存储从轨道上的初始访问点到轨道末尾的部分轨道,以及
(c)完整轨道分段存储308:在完整轨道分段存储中,不考虑轨道上的访问点,将整个轨道分段存储到高速缓存112。
图3B示出根据某些实施例的显示了完整轨道分段存储、部分轨道分段存储和记录分段存储的框图310。图3B中显示了包含多个扇区314、316、318、320、322、324、326、328、330、332、334、336的完整轨道312。诸如主机104a的主机向存储控制器102请求显示为所请求扇区338的扇区,其中经由图3b的参考标号340指示所请求扇区的开始。还显示了完整轨道312的轨道开始342和轨道末尾344。完整轨道分段存储是将完整的轨道312分段存储到高速缓存112中。部分轨道分段存储346是将从所请求扇区的开始340到轨道末尾344的扇区分段存储到高速缓存112中。记录分段存储是将所请求扇区338分段存储到高速缓存112中。
图4示出根据某些实施例的显示了用于自适应高速缓存的数据结构402的框图400。在自适应高速缓存中,为了确定对于特定的请求使用哪个分段存储策略,经由数据结构402为每个柱面带维持下列计数器:
1)未中(miss)404,如果轨道不在高速缓存112中则递增;
2)命中(hit)406:如果轨道在高速缓存112中则递增;
3)前端访问(FA)408:如果轨道在高速缓存中并且所请求的第一扇区在导致该轨道被提升的扇区之前,则递增;
4)后端访问(BA)410:如果轨道在高速缓存中并且所请求的第一扇区在导致该轨道被提升的扇区之后,则递增;
5)历史前端访问比率(HFEAR)412;以及
6)历史交替记录访问比率(HARAR)414。
每次访问轨道,这些计数器就更新。大约每访问128次柱面带之后,更新历史比率并更新用于柱面带的当前分段存储策略。
图5示出根据某些实施例的显示了自适应高速缓存的操作500的框图。图5中,如下计算下列历史比率(参考标号502):
新HFEAR=((FA/(命中+未中))+HFEAR)/2
新HARAR=(((FA+BA)/(命中+未中))+HARAR)/2
柱面带分段存储策略被设置为仅当HARAR小于0.10时(参考标号506)分段存储所请求的扇区504,如果HARAR大于或等于0.10并且HFEAR小于0.05(参考标号510)则分段存储部分轨道508,以及如果HARAR大于或等于0.10并且HFEAR大于或等于0.05(参考标号514)则分段存储完整轨道(参考标号512)。
在某些实施例中图5示出的自适应高速缓存操作可以被应用到硬盘。可以根据图5所示的计算和条件执行扇区、部分轨道或完整的轨道的分段存储。在可替换实施例中,可使用其它的计算和条件来实施自适应高速缓存操作。
图6示出根据某些实施例的显示了固态盘108的示例性实施例602的框图600。
高速缓存112中的每个轨道具有全局序列号,其中所述全局序列号是单调递增的号码。当在高速缓存112中访问示例性轨道604时,轨道604被分配该全局序列号,并被添加(605)到最近最少使用(LRU)列表606的最近使用端。随后全局序列号递增。因此,LRU列表606中的所有轨道都已分配了序列号,使得在最近最少使用端的轨道608具有最低的序列号,而在最近使用端的轨道610具有最高的序列号。
图7示出根据某些实施例的显示了某些操作的流程图700。图7所示的操作对应于由增强的自适应高速缓存应用程序110所执行的操作,所述增强的自适应高速缓存应用程序110可通过修改图3a、3b、4和5所示的用于硬盘中的自适应高速缓存的自适应高速缓存应用程序来生成。
控制开始于方框702,其中维持轨道的LRU列表606。(在方框704)维持单调递增全局序列号的数据结构。(在方框706)访问高速缓存中的轨道,并且(在方框708)将全局序列号分配给所访问的轨道作为变量“THISSeq”,然后(在方框710)递增全局序列号。(在方框712)所访问的轨道被添加到LRU列表606的最近使用端。
控制前进到方框714,其中对于固态盘轨道,如果该轨道的位置在LRU列表606中是低的(即访问该轨道是独立于先前的访问的)则执行记录高速缓存。换句话说,记录高速缓存被用于处在LRU列表606的低端的固态设备轨道。部分轨道分段存储/高速缓存仍为硬盘的默认项。如下执行对低位置的确定:
如果(((MRUseq-THISseq)*Consumed_Cache_Space/(MRUseq–LRUseq))>16GB)则执行记录高速缓存,
其中:
MRUSeq=LRU列表的MRU端的轨道的序列号;
LRUSeq=LRU列表的LRU端的轨道的序列号;
THISseq=该轨道的序列号;以及
Consumed_Cache_Space=这是高速缓存中轨道所消耗的高速缓存空间总量。
因此,在图7中,当访问独立于先前的访问时,即正在访问的轨道最近没有被访问时,将记录分段存储用于固态盘。在这种情况下,优选通过分段存储扇区/记录执行小块传输,而不是将完整的或部分的轨道分段存储到高速缓存中。
图8示出根据某些实施例的显示了某些操作的流程图800。在某些实施例中,图8所示的操作可以通过在存储控制器102中实施的增强的自适应高速缓存应用程序110来执行。
控制开始于方框802,其中存储控制器102接收对应于访问高速缓存112中的轨道的请求。该请求可以通过存储控制器102从主机104a……104n之一接收。该请求可以针对驻留在轨道中的一个或多个记录(对应于扇区)。
控制前进到方框804,其中存储控制器102中的增强的自适应高速缓存应用程序110确定该轨道是否对应于存储在固态盘108中的数据。如果是,则(在方框806)增强的自适应高速缓存应用程序110确定该轨道是否在相对的最近已经被访问过。可以根据图7的方框714所示的操作来做出该轨道是否在相对的最近已经被访问过的确定,在图7的方框714所示的操作中,确定该轨道具有低的序列号(在此情况下,在相对的最近该轨道没有被访问过)或是高的序列号(在这种情况下,在相对的最近该轨道已经被访问过)。
如果在方框806中确定该轨道在相对的最近没有被访问过,则控制前进到方框808,其中增强的自适应高速缓存应用程序110执行从固态盘108到高速缓存112的记录分段存储。可以注意到,每个轨道包括多个记录。在固态硬盘中,一次传输较少数据块更有效。因此,除非存在未请求的相邻记录有可能在不久的将来被使用的很大的可能性,否则优选地为固态盘执行到高速缓存112的记录分段存储。因此,当轨道最近没有被访问时(即,该轨道朝向LRU列表606的最近最少使用端),优选地对固态盘只执行记录高速缓存(即,只分段存储所请求的扇区/记录)。
如果在方框806中确定该轨道在相对的最近已经被访问过(即,该轨道朝向LRU列表606的最近使用端),则控制前进到方框810,其中增强的自适应高速缓存应用程序110基于存储控制器102中维持的标准,在执行从固态盘108到高速缓存112的部分轨道分段存储、完整轨道分段存储和记录分段存储之间进行选择。在某些实施例中,用于选择执行部分轨道分段存储、完整轨道分段存储或者记录分段存储的标准可以基于图5所示的操作,方框504、506、508、510、512、514显示何时分段存储所请求的扇区/记录504,何时分段存储部分轨道508以及何时分段存储完整轨道512。因此,当轨道朝向高速缓存112中的LRU列表606中的最近使用端时,增强的自适应高速缓存应用程序110以类似方式对固态盘和硬盘起作用。
如果在方框804中确定该轨道不对应于存储在固态盘中的数据,则控制前进到方框812,其中做出关于该轨道是否对应于存储在硬盘106中的数据的确定。如果是,则(在方框814)增强的自适应高速缓存应用程序110基于存储控制器102维持的标准,在执行从硬盘106到高速缓存112的部分轨道分段存储、完整轨道分段存储和记录分段存储之间进行选择。在某些实施例中,用于选择执行部分轨道分段存储、完整轨道分段存储或者记录分段存储的标准可以基于图5所示的操作,其显示何时分段存储所请求的扇区/记录504,何时分段存储部分轨道508以及何时分段存储完整轨道512。
如果在方框812处,做出该轨道不对应于存储在硬盘106中的数据的确定,则(在方框816)该处理停止。控制也从方框808、810和814前进到该处理停止的方框816。
因此,图1-8说明了在其中利用对固态盘的记录高速缓存来增强对硬盘的部分轨道的分段存储的某些实施例,其中,当固态盘轨道最近未被使用时,只对固态盘使用记录高速缓存。可以注意到,在完整轨道分段存储中,分段存储整个轨道,在部分轨道分段存储中,分段存储从所请求的扇区起始到轨道末尾的所有扇区,在记录分段存储中只分段存储所请求的扇区。某些实施例提供了一些条件,在这些条件下,由控制硬盘和固态盘两者的存储控制器执行部分轨道分段存储、记录分段存储和/或完整轨道分段存储。
附加实施例的详细信息
所描述的操作可以使用标准的编程和/或工程技术生产出的软件、固件、硬件或者任何上述的组合来实现为装置、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件的上下文中,计算机可读存储介质可以是任何可包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明各方面操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java*、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明各方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
计算机程序指令也可以被加载到计算机、其它可编程数据处理装置或其它设备上,以引起在计算机、其它可编程装置或其他设备上执行一系列操作步骤以产生计算机实现的处理,使得在计算机或其他可编程装置上执行的指令能够提供用于实现流程图和/或框图中的一个或多个方框中规定的功能/动作的处理。
图9示出根据某些实施例的显示了可以被包括在存储控制器102或主机104a……104n中的某些元件的框图。系统900可以包括存储控制器102或主机104a……104n,并且可以包括电路902,其可在某些实施例中至少包括处理器904。该系统900还可以包括存储器906(例如,易失性存储器设备)和贮存器908。贮存器908可包括非易失性存储器设备(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、闪存、固件、可编程逻辑等)、磁盘驱动器、光盘驱动器、磁带驱动器等。贮存器908可以包括内部存储设备、附接存储设备和/或网络可访问的存储设备。系统900可以包括包含代码912的程序逻辑910,代码912可以被加载到存储器906并由处理器904或电路902执行。在某些实施例中,包括代码912的程序逻辑910可以被存储在贮存器908中。在某些其它实施例中,程序逻辑910可以在电路902中实现。因此,虽然图9显示程序逻辑910与其它元件分离,但是程序逻辑910可以在存储器906和/或电路902中实现。
某些实施例可针对一种用于通过人工或集成计算机可读代码的自动处理来将计算指令部署到计算系统的方法,其中所述代码与所述计算系统相结合能够执行所描述的实施例的操作。
除非明确地另有规定,术语“一实施例”、“实施例”、“多个实施例”、“该实施例”、“该多个实施例”、“一个或多个实施例”、“一些实施例”和“一个实施例”是指“本发明的一个或多个(但不是全部的)实施例”。
除非明确地另有规定,术语“包括”、“包含”、“具有”及其各种变型是指“包括但不限于”。
除非明确地另有规定,列举的项目列表并不意味着任何或全部项目是相互排斥的。
除非明确地另有规定,术语“一”、“一个”和“该”是指“一个或多个”。
除非明确地另有规定,相互通信的设备不需要彼此不断地通信。此外,相互通信的设备可以通过一个或多个媒介直接或间接地通信。
对于具有若干相互通信的组件的实施例的描述,并不意味着需要所有这些组件。相反,描述了多种可选组件以说明本发明的各种可能的实施例。
此外,尽管可以以顺序的次序描述处理步骤、方法步骤、算法等,但是这样的处理、方法和算法可以被配置为以交替的顺序工作。换句话说,所描述的步骤的任何顺序或次序不一定表明要求该步骤以所述次序执行。可以任何可实现的次序来执行本文所描述的处理的步骤。此外,可以同时进行一些步骤。
当本文描述单个设备或物品时,显然,可以使用多于一个的设备/物品(无论它们是否协作)来代替单个设备/物品。类似地,在本文描述的一个以上的设备或物品的地方(无论它们是否协作),显然,可以使用单个设备/物品来代替多个设备或物品,或者可以使用不同数量的设备/物品来代替所显示数量的设备或程序。设备的功能和/或特征可以可替换地由一个或多个没有被明确描述为具有此类功能/特性的其它设备实施。因此,本发明的其它实施例不必包括设备本身。
可能已在附图中所示的至少某些操作显示以一定的次序发生的某些事件。在可替换实施例中,某些操作可以以不同的次序来执行、修改或删除。此外,步骤可以被添加到上述逻辑并且仍然符合所描述的实施例。此外,本文所描述的操作可以顺序地发生,或者可以并行地处理某些操作。更进一步地,可以由单个处理单元或通过分布式处理单元来执行所述操作。
已经为了说明和描述的目的而提出本发明的各种实施例的前述描述。并非旨在穷举或将本发明限制为所公开的精确形式。根据上述教导许多修改和变型是可能的。意图是,本发明的范围不受该详细描述的限制,而是由所附的权利要求书所限定。以上说明、示例和数据提供了本发明的组合物的制造和使用的完整描述。由于可以不脱离本发明的精神和范围地做出本发明的许多实施例,因此本发明存在于所附的权利要求书中。

Claims (16)

1.一种存储控制方法,包括:
由存储控制器接收对应于访问高速缓存中的轨道的请求;
确定所述轨道是否对应于存储在固态盘中的数据;以及
响应于确定所述轨道对应于存储在固态盘中的数据,执行从固态盘到高速缓存的记录分段存储,其中每个轨道包括多个记录,
其中:
记录分段存储被用作耦合到存储控制器的固态盘的默认分段存储操作;并且
部分轨道分段存储被用作耦合到存储控制器的硬盘的默认分段存储操作,其中在部分轨道分段存储中分段存储从所请求的扇区的起始开始到轨道末尾的所有扇区,在记录分段存储中只分段存储所请求的扇区。
2.根据权利要求1所述的方法,所述方法进一步包括:
确定所述轨道是否对应于存储在硬盘中的数据;以及
响应于确定所述轨道对应于存储在硬盘中的数据,基于由存储控制器维持的标准,在执行从硬盘到高速缓存的部分轨道分段存储、完整轨道分段存储和记录分段存储之中做出选择,其中,在完整轨道分段存储中分段存储整个轨道,在部分轨道分段存储中分段存储从所请求的扇区的起始开始到轨道末尾的所有扇区,在记录分段存储中只分段存储所请求的扇区。
3.根据权利要求1所述的方法,其中,当相对地最近没有访问轨道时,执行从固态盘的记录分段存储,并且当相对地最近访问了所述轨道时,至少在执行部分轨道分段存储和执行完整轨道分段存储之中做出选择。
4.根据权利要求1所述的方法,进一步包括:
维持轨道的最近最少使用的列表,其中,按照在高速缓存中对每个轨道的访问,以单调递增的顺序为该列表中的每个轨道顺序编号,然后放置在最近最少使用的列表中;以及
基于预定的标准,确定最近是否使用了所选择的轨道,所述预定的标准基于轨道的最近最少使用的列表中轨道的序列号、存储在高速缓存中的那些轨道所消耗的高速缓存空间量和指示存储量的阈值。
5.一种存储控制系统,包括:
存储器;以及
耦合到所述存储器的处理器,其中,所述处理器执行操作,所述操作包括:
接收对应于访问高速缓存中的轨道的请求;
确定所述轨道是否对应于存储在固态盘中的数据;以及
响应于确定所述轨道对应于存储在固态盘中的数据,执行从固态盘到高速缓存的记录分段存储,其中每个轨道包括多个记录,
其中:
记录分段存储被用作固态盘的默认分段存储操作;并且
部分轨道分段存储被用作硬盘的默认分段存储操作,其中在部分轨道分段存储中分段存储从所请求的扇区的起始开始到轨道末尾的所有扇区,在记录分段存储中只分段存储所请求的扇区。
6.根据权利要求5所述的系统,所述操作进一步包括:
确定所述轨道是否对应于存储在硬盘中的数据;以及
响应于确定所述轨道对应于存储在硬盘中的数据,基于维持的标准,在执行从硬盘到高速缓存的部分轨道分段存储、完整轨道分段存储和记录分段存储之中做出选择,其中,在完整轨道分段存储中分段存储整个轨道,在部分轨道分段存储中分段存储从所请求的扇区的起始开始到轨道末尾的所有扇区,在记录分段存储中只分段存储所请求的扇区。
7.根据权利要求5所述的系统,其中,当相对地最近没有访问轨道时,执行从固态盘的记录分段存储,并且当相对地最近访问了所述轨道时,至少在执行部分轨道分段存储和执行完整轨道分段存储之中做出选择。
8.根据权利要求5所述的系统,所述操作进一步包括:
维持轨道的最近最少使用的列表,其中,按照在高速缓存中对每个轨道的访问,以单调递增的顺序为所述列表中的每个轨道顺序编号,然后放置在最近最少使用的列表中;以及
基于预定的标准,确定最近是否使用了所选择的轨道,所述预定的标准基于轨道的最近最少使用的列表中轨道的序列号、存储在高速缓存中的那些轨道所消耗的高速缓存空间量和指示存储量的阈值。
9.一种与固态盘和硬盘通信的存储控制器,所述存储控制器包括:
处理器;
耦合到所述处理器的高速缓存,其中所述存储控制器执行:
接收对应于访问高速缓存中的轨道的请求;
确定所述轨道是否对应于存储在固态盘中的数据;以及
响应于确定所述轨道对应于存储在固态盘中的数据,执行从固态盘到高速缓存的记录分段存储,其中每个轨道包括多个记录,
其中:
记录分段存储被用作耦合到存储控制器的固态盘的默认分段存储操作;并且
部分轨道分段存储被用作耦合到存储控制器的硬盘的默认分段存储操作,其中在部分轨道分段存储中分段存储从所请求的扇区的起始开始到轨道末尾的所有扇区,在记录分段存储中只分段存储所请求的扇区。
10.根据权利要求9所述的存储控制器,其中所述存储控制器进一步执行:
确定所述轨道是否对应于存储在硬盘中的数据;以及
响应于确定所述轨道对应于存储在硬盘中的数据,基于由存储控制器维持的标准,在执行从硬盘到高速缓存的部分轨道分段存储、完整轨道分段存储和记录分段存储之中做出选择,其中,在完整轨道分段存储中分段存储整个轨道,在部分轨道分段存储中分段存储从所请求的扇区的起始开始到轨道末尾的所有扇区,
在记录分段存储中只分段存储所请求的扇区。
11.根据权利要求9所述的存储控制器,其中,当相对地最近没有访问轨道时,执行从固态盘的记录分段存储,并且当相对地最近访问了所述轨道时,至少在执行部分轨道分段存储和执行完整轨道分段存储之中做出选择。
12.根据权利要求9所述的存储控制器,其中,所述存储控制器进一步执行:
维持轨道的最近最少使用的列表,其中,按照在高速缓存中对每个轨道的访问,以单调递增的顺序为所述列表中的每个轨道顺序编号,然后放置在最近最少使用的列表中;以及
基于预定的标准,确定最近是否使用了所选择的轨道,所述预定的标准基于轨道的最近最少使用的列表中轨道的序列号、存储在高速缓存中的那些轨道所消耗的高速缓存空间量和指示存储量的阈值。
13.一种用于部署计算基础设施的方法,包括将计算机可读代码集成到存储控制器中,其中所述代码结合存储控制器执行操作,所述操作包括:
由存储控制器接收对应于访问高速缓存中的轨道的请求;
确定所述轨道是否对应于存储在固态盘中的数据;以及
响应于确定所述轨道对应于存储在固态盘上的数据,执行从固态盘到高速缓存的记录分段存储,其中每个轨道包括多个记录,
其中:
记录分段存储被用作耦合到存储控制器的固态盘的默认分段存储操作;并且
部分轨道分段存储被用作耦合到存储控制器的硬盘的默认分段存储操作,其中在部分轨道分段存储中分段存储从所请求的扇区的起始开始到轨道末尾的所有扇区,在记录分段存储中只分段存储所请求的扇区。
14.根据权利要求13所述的部署计算基础设施的方法,所述操作进一步包括:
确定所述轨道是否对应于存储在硬盘中的数据;以及
响应于确定所述轨道对应于存储在硬盘中的数据,基于由存储控制器维持的标准,在执行从硬盘到高速缓存的部分轨道分段存储、完整轨道分段存储和记录分段存储之中做出选择,其中,在完整轨道分段存储中分段存储整个轨道,在部分轨道分段存储中分段存储从所请求的扇区的起始开始到轨道末尾的所有扇区,在记录分段存储中只分段存储所请求的扇区。
15.根据权利要求13所述的部署计算基础设施的方法,其中,当相对地最近没有访问轨道时,执行从固态盘的记录分段存储,并且当相对地最近访问了所述轨道时,至少在执行部分轨道分段存储和执行完整轨道分段存储之中做出选择。
16.根据权利要求13所述的部署计算基础设施的方法,所述操作进一步包括:
维持轨道的最近最少使用的列表,其中,按照在高速缓存中对每个轨道的访问,以单调递增的顺序为所述列表中的每个轨道顺序编号,然后放置在最近最少使用的列表中;以及
基于预定的标准,确定最近是否使用了所选择的轨道,所述预定的标准基于轨道的最近最少使用的列表中轨道的序列号、存储在高速缓存中的那些轨道所消耗的高速缓存空间量和指示存储量的阈值。
CN201280035909.XA 2011-07-26 2012-06-26 固态盘的自适应记录高速缓存 Active CN103688249B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/190,833 2011-07-26
US13/190,833 US9069678B2 (en) 2011-07-26 2011-07-26 Adaptive record caching for solid state disks
PCT/CN2012/077504 WO2013013549A1 (en) 2011-07-26 2012-06-26 Adaptive record caching for solid state disks

Publications (2)

Publication Number Publication Date
CN103688249A CN103688249A (zh) 2014-03-26
CN103688249B true CN103688249B (zh) 2016-11-16

Family

ID=47598233

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280035909.XA Active CN103688249B (zh) 2011-07-26 2012-06-26 固态盘的自适应记录高速缓存

Country Status (4)

Country Link
US (6) US9069678B2 (zh)
CN (1) CN103688249B (zh)
DE (1) DE112012002452B4 (zh)
WO (1) WO2013013549A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9069678B2 (en) 2011-07-26 2015-06-30 International Business Machines Corporation Adaptive record caching for solid state disks
JP5798459B2 (ja) * 2011-11-28 2015-10-21 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ファイル要求アクセスを制御する方法
US20140351532A1 (en) * 2013-05-23 2014-11-27 International Business Machines Corporation Minimizing destaging conflicts
JP2015170160A (ja) * 2014-03-07 2015-09-28 富士通株式会社 情報処理システム,情報処理装置,情報処理プログラム及び情報処理方法
US9665493B2 (en) * 2014-10-03 2017-05-30 International Business Machines Corporation Increased cache performance with multi-level queues of complete tracks
FR3041796B1 (fr) * 2015-09-24 2017-10-20 Stmicroelectronics Rousset Stockage et lecture d'un code d'authentification de message dans une memoire externe
US10424040B2 (en) * 2017-04-21 2019-09-24 Intel Corporation Dynamic allocation of cache based on instantaneous bandwidth consumption at computing devices
US11080622B2 (en) 2018-08-01 2021-08-03 International Business Machines Corporation Determining sectors of a track to stage into cache by training a machine learning module
US11062232B2 (en) 2018-08-01 2021-07-13 International Business Machines Corporation Determining sectors of a track to stage into cache using a machine learning module
KR102612911B1 (ko) * 2018-08-31 2023-12-13 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US11151058B2 (en) 2020-01-21 2021-10-19 International Business Machines Corporation Adaptive caching in a multi-tier cache
US11030104B1 (en) 2020-01-21 2021-06-08 International Business Machines Corporation Picket fence staging in a multi-tier cache
CN114077293A (zh) * 2020-08-21 2022-02-22 宏碁股份有限公司 电子装置及其固态硬盘的温度控制方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0109309A2 (en) * 1982-11-15 1984-05-23 Storage Technology Corporation Method of operating a computer system
CN101488354A (zh) * 2008-01-16 2009-07-22 三星电子株式会社 稳定的数据存储系统和方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5594885A (en) 1991-03-05 1997-01-14 Zitel Corporation Method for operating a cache memory system using a recycled register for identifying a reuse status of a corresponding cache entry
US6098153A (en) * 1998-01-30 2000-08-01 International Business Machines Corporation Method and a system for determining an appropriate amount of data to cache
US7464246B2 (en) 2004-09-30 2008-12-09 International Business Machines Corporation System and method for dynamic sizing of cache sequential list
US7260679B2 (en) 2004-10-12 2007-08-21 International Business Machines Corporation Apparatus and method to manage a data cache using a first and second least recently used list
US7899987B2 (en) 2007-05-15 2011-03-01 Sandisk Il Ltd. File storage in a computer system with diverse storage media
US9134917B2 (en) 2008-02-12 2015-09-15 Netapp, Inc. Hybrid media storage system architecture
US20100030963A1 (en) * 2008-08-04 2010-02-04 Sandisk Il Ltd. Managing storage of cached content
US9208104B2 (en) * 2008-08-28 2015-12-08 Citrix Systems, Inc. Content replacement and refresh policy implementation for a content distribution network
US20100088459A1 (en) * 2008-10-06 2010-04-08 Siamak Arya Improved Hybrid Drive
US20100199036A1 (en) 2009-02-02 2010-08-05 Atrato, Inc. Systems and methods for block-level management of tiered storage
US8195878B2 (en) * 2009-02-19 2012-06-05 Pmc-Sierra, Inc. Hard disk drive with attached solid state drive cache
US9176883B2 (en) 2009-04-30 2015-11-03 HGST Netherlands B.V. Storage of data reference blocks and deltas in different storage devices
US8095738B2 (en) 2009-06-15 2012-01-10 International Business Machines Corporation Differential caching mechanism based on media I/O speed
US20100318734A1 (en) 2009-06-15 2010-12-16 Microsoft Corporation Application-transparent hybridized caching for high-performance storage
US9069678B2 (en) 2011-07-26 2015-06-30 International Business Machines Corporation Adaptive record caching for solid state disks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0109309A2 (en) * 1982-11-15 1984-05-23 Storage Technology Corporation Method of operating a computer system
CN101488354A (zh) * 2008-01-16 2009-07-22 三星电子株式会社 稳定的数据存储系统和方法

Also Published As

Publication number Publication date
US9477607B2 (en) 2016-10-25
WO2013013549A9 (en) 2013-05-02
US20150261440A1 (en) 2015-09-17
US9207867B2 (en) 2015-12-08
US9069678B2 (en) 2015-06-30
DE112012002452T5 (de) 2014-03-13
US20130031295A1 (en) 2013-01-31
US20130031297A1 (en) 2013-01-31
US20160055092A1 (en) 2016-02-25
US20150261441A1 (en) 2015-09-17
CN103688249A (zh) 2014-03-26
US20160055090A1 (en) 2016-02-25
DE112012002452B4 (de) 2020-09-10
US9477606B2 (en) 2016-10-25
US9069679B2 (en) 2015-06-30
WO2013013549A1 (en) 2013-01-31
US9213488B2 (en) 2015-12-15

Similar Documents

Publication Publication Date Title
CN103688249B (zh) 固态盘的自适应记录高速缓存
US7721043B2 (en) Managing write requests in cache directed to different storage groups
US7783839B2 (en) Using different algorithms to destage different types of data from cache
CN103562843A (zh) 在具有多个高速缓存的存储系统中高速缓存数据
CN104937574B (zh) 在计算存储环境中数据处理的方法和系统
CN103703440B (zh) 预取用于使更新轨道离台的数据轨道和奇偶校验数据
CN102436354B (zh) 使用跨步对象管理写入高速缓存的方法和系统
US20070118695A1 (en) Decoupling storage controller cache read replacement from write retirement
CN104145252A (zh) 两级高速缓存系统中的自适应高速缓存提升
CN104040508B (zh) 用于在高速缓存系统中管理数据的方法和系统
US9478249B2 (en) Cache data management for program execution
WO2016044112A2 (en) Efficient data movement within file system volumes
CN107018172A (zh) 用于在分布式缓存存储器中自适应分区的系统和方法
CN103124960A (zh) 连续磁道的智能写入高速缓存
CN103946820B (zh) 从盘的内径和外径周期性降级以改善读响应时间
CN103150245A (zh) 确定数据实体的访问特性的方法和存储控制器
CN100429633C (zh) 一种处理来自磁盘的数据的方法以及使用该方法的装置
JP5673232B2 (ja) ストレージシステム
JP5292813B2 (ja) ストレージ装置と方法とプログラム
JP3083530B2 (ja) キャッシュメモリのデータ管理方法およびキャッシュ制御装置
KR101288276B1 (ko) 메모리의 삭제 블록을 고려한 버퍼 관리 장치 및 방법
CN104182179A (zh) 使得离台冲突最小化的方法和系统

Legal Events

Date Code Title Description
PB01 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