CN117813592A - 压缩缓存作为缓存层级 - Google Patents
压缩缓存作为缓存层级 Download PDFInfo
- Publication number
- CN117813592A CN117813592A CN202180101274.8A CN202180101274A CN117813592A CN 117813592 A CN117813592 A CN 117813592A CN 202180101274 A CN202180101274 A CN 202180101274A CN 117813592 A CN117813592 A CN 117813592A
- Authority
- CN
- China
- Prior art keywords
- cache
- level
- entry
- compression
- cache entry
- 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.)
- Pending
Links
- 238000007906 compression Methods 0.000 claims abstract description 123
- 230000006835 compression Effects 0.000 claims abstract description 112
- 230000009467 reduction Effects 0.000 claims abstract description 5
- 238000000034 method Methods 0.000 claims description 45
- 230000006837 decompression Effects 0.000 claims description 23
- 230000006870 function Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 3
- 238000013500 data storage Methods 0.000 description 39
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000004615 ingredient Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 235000019633 pungent taste Nutrition 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- 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/0877—Cache access modes
- G06F12/0886—Variable-length word access
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供了一种用于管理存储器的计算设备,该存储器被分为以未压缩状态存储缓存条目的较高缓存层级和以压缩状态存储缓存条目的一个或多个较低缓存层级。针对缓存条目计算一个或多个压缩性能参数。一个或多个压缩性能参数可以指示访问处于压缩状态的缓存条目因解压缩缓存的额外时间而引起的延迟,或者访问处于未压缩状态的缓存条目因访问可能非顺序存储的更多数据的额外时间而引起的延迟。压缩性能参数可以基于缓存条目的预测命中率和/或以压缩状态存储缓存条目的存储需求的减少来计算。根据压缩性能参数将缓存条目移动到较高缓存层级或较低缓存层级中的一个较低缓存层级,以及/或者从较高缓存层级或较低缓存层级中的一个较低缓存层级驱逐。
Description
背景技术
本公开内容在其一些实施方式中涉及缓存,并且更具体地但不排他性地,涉及用于管理缓存以改善访问时间的系统和方法。
缓存是存储数据使得可以更快速地为未来对该数据的请求提供服务的硬件或软件部件。典型的存储系统可以具有:用于缓存的DRAM存储器,其为IO非常快速地提供服务;SCM(storage class memory,SCM),其支持持久快速随机IO但比DRAM慢;以及固态驱动器(solid-state driver,SSD)层级,其支持对读取和写入的相对快速的访问。SSD层级有时也用于缓存。存储系统通常包括硬盘驱动器(hard disk drive,HDD)层级,该HDD层级使得能够相对较快地进行顺序读取和写入,但由于HDD中的寻道时间非常高并且可能高达10毫秒(millisecond,ms),因此对于随机IO具有较差的性能。
发明内容
本公开内容的目的是提供一种用于分层存储管理的计算设备、系统、计算机程序产品和方法。
上述和其他目的通过独立权利要求的特征实现。另外的实现方式根据从属权利要求、说明书和附图是明显的。
根据第一方面,一种用于分层存储管理的计算设备被配置用于:对存储器的缓存上的缓存条目的读取未命中以及该缓存条目的驱逐中的至少一者进行检测;其中,该存储器被分为未压缩的缓存条目的较高缓存层级和压缩后的缓存条目的至少一个较低缓存层级;计算该缓存条目的至少一个压缩性能参数;以及根据所述压缩参数将缓存条目移动到较高缓存层级和/或至少一个较低缓存层级以及/或者从较高缓存层级和/或至少一个较低缓存层级驱逐该缓存。
根据第二方面,一种分层存储管理方法包括:对存储器的缓存上的缓存条目的读取未命中以及该缓存条目的驱逐中的至少一者进行检测;其中,该存储器被分为未压缩的缓存条目的较高缓存层级和压缩后的缓存条目的至少一个较低缓存层级;计算该缓存条目的至少一个压缩性能参数;以及根据所述压缩参数将缓存条目移动到较高缓存层级和/或至少一个较低缓存层级以及/或者从较高缓存层级和/或至少一个较低缓存层级驱逐该缓存。
根据第三方面,一种非暂态介质,其存储用于分层存储管理的程序指令,所述程序指令在由处理器执行时使该处理器执行下述操作:对存储器的缓存上的缓存条目的读取未命中以及该缓存条目的驱逐中的至少一者进行检测;其中,该存储器被分为未压缩的缓存条目的较高缓存层级和压缩后的缓存条目的至少一个较低缓存层级;计算该缓存条目的至少一个压缩性能参数;以及根据所述压缩参数将缓存条目移动到较高缓存层级和/或至少一个较低缓存层级以及/或者从较高缓存层级和/或至少一个较低缓存层级驱逐该缓存。
使用压缩缓存的多个较低层级有助于优化性能,例如,在为数据和/或服务IO请求提供服务时降低总体平均延迟。可压缩的数据越多,解压缩数据所需的CPU就越少,并且解压缩时间就越短。
在第一方面、第二方面和第三方面的另外的实现方式中,至少一个压缩性能参数包括解压缩性能,所述解压缩性能指示访问以压缩状态存储在至少一个较低缓存层级上时或以未压缩状态存储在至少一个较低缓存层级上时的缓存条目所引起的延迟。
当所引起的附加延迟不显著时,访问性能得到提高。
在第一方面、第二方面和第三方面的另外的实现方式中,至少一个压缩性能参数基于缓存条目的预测命中率来计算,所述预测命中率指示在未来时间间隔期间缓存条目将再次被读取的概率。
具有较高命中率的缓存条目更适合保留在缓存中,以避免缓存未命中。命中率可以用于“归一化”所增加的延迟时间,并使得能够比较“归一化”的延迟时间。
在第一方面、第二方面和第三方面的另外的实现方式中,至少一个压缩性能参数还包括以由特定压缩过程限定的压缩比以压缩状态存储缓存条目的存储需求的减少。
高度可压缩的缓存条目更适合保留在缓存中,因为这些缓存条目与其他可压缩性较低的缓存条目相比占用较少的空间。
在第一方面、第二方面和第三方面的另外的实现方式中,至少一个压缩性能参数还包括对下述中的至少一项的平均延迟的影响:(i)当将缓存条目以未压缩状态存储在较高缓存层级上时,访问所述较高缓存层级的缓存条目;以及(ii)当将缓存条目以压缩状态存储在至少一个较低缓存层级上时,访问所述至少一个较低缓存层级的缓存条目,其中,缓存条目被存储在较高缓存层级和/或至少一个较低缓存层级上以及/或者从较高缓存层级和/或至少一个较低缓存层级驱逐,以改善平均延迟。
考虑用于将缓存条目移动到压缩缓存的多个限定的较低层级中的一个较低层级中或移动到未压缩缓存的较高层级中的压缩比和解压缩性能的组合,改善了处理缓存读取未命中的总体性能。
在第一方面、第二方面和第三方面的另外的实现方式中,至少一个较低缓存层级包括两个缓存层级,其中,当至少一个压缩参数指示压缩比高于第一压缩阈值并且解压缩性能指示访问处于压缩状态的缓存条目所引起的延迟低于第一延迟阈值时,将缓存条目移动到第一低缓存层级,并且当至少一个压缩参数指示压缩比高于第二压缩阈值且低于第一压缩阈值并且解压缩性能低于第二延迟阈值大于第一延迟阈值时,将缓存条目移动到第二低缓存层级。
可以例如根据可用的处理资源来选择缓存层级的数目和/或用于将缓存条目移动到每个缓存计时器的阈值和/或值,以获得最佳性能。
在第一方面、第二方面和第三方面的另外的实现方式中,针对在相应较低层级缓存上运行的相应目标压缩过程计算缓存条目的压缩比以对该缓存条目进行压缩,以用于存储在相应较低层级缓存上。
使用在缓存条目可能被移动到的相应较低层级缓存上运行的目标压缩过程来计算压缩比,以帮助评估缓存条目将被移动到的位置。
在第一方面、第二方面和第三方面的另外的实现方式中,响应于缓存已满,选择具有较低相应命中分数的缓存条目以进行驱逐。
具有最低命中分数的数据表示不太可能再次被访问的数据,这表示最适合进行驱逐。
在第一方面、第二方面和第三方面的另外的实现方式中,相应命中分数是相应较低缓存层级的相应压缩因子的函数,其中,对于较高的压缩因子获得较高的命中分数,并且对于较低的压缩因子获得较低的命中分数。
压缩因子有助于保留更加高度压缩的数据,以及/或者有助于驱逐可压缩性较低的数据。具有较高压缩因子的数据将被保留在具有较高优先级的压缩的较低缓存层级中。
在第一方面、第二方面和第三方面的另外的实现方式中,相应命中分数是解压缩压缩后的缓存条目的延迟的函数,其中,对于较低的延迟获得较高的命中分数,并且对于较高的延迟获得较低的命中分数。
命中分数可以通过延迟“归一化”,使得能够基于预测的命中率来比较总预测延迟时间。
在第一方面、第二方面和第三方面的另外的实现方式中,相应命中分数在时间间隔内并基于最后访问时间衰减。
当缓存条目最近不被频繁访问时,预测这些缓存条目在未来也不会被频繁访问。衰减使得能够移除非频繁读取的缓存条目,即使该缓存条目过去常常被频繁读取。
在第一方面、第二方面和第三方面的另外的实现方式中,从至少一个较低缓存层级驱逐数据是根据最近最少使用(least recently used,LRU)策略。
在第一方面、第二方面和第三方面的另外的实现方式中,还包括:将被驱逐的缓存条目的命中分数与其他缓存层级中的缓存条目的命中分数进行比较;以及当该缓存条目的命中分数高于位于另一缓存层级中的当前缓存条目的最低命中分数时,移动该缓存条目。
如果被移动的所驱逐的条目的命中分数低于所选较低缓存层级中的所有缓存条目,则添加所驱逐的条目将使其被再次从所选较低缓存层级驱逐。
在第一方面、第二方面和第三方面的另外实现方式中,读取未命中针对存储在至少一个较低层级缓存上的缓存条目被检测,并且其中,移动包括将缓存条目移动到以未压缩状态存储缓存条目的较高缓存层级。
当这样做相对于存储在较高缓存层级上的当前缓存条目在减少的延迟和/或高的命中率方面提供了最佳性能时,可以将缓存条目移动到较高缓存层级。
在第一方面、第二方面和第三方面的另外的实现方式中,当缓存条目的命中分数高于根据存储在较高缓存层级上的缓存条目的命中分数计算的阈值时,将该缓存条目移动到较高缓存层级。
除非另有定义,否则本文所用的所有技术和/或科学术语都具有与本公开内容所属领域的普通技术人员公知的含义相同的含义。虽然与本文描述的方法和材料类似或等效的方法和材料可以用于本公开内容的实施方式的实践或测试,但下文描述了示例性方法和/或材料。如有冲突,以本专利说明书(包括定义)为准。此外,这些材料、方法和示例仅是说明性的,并不一定具有限制性。
附图说明
本文仅通过示例的方式参照附图描述了本公开内容的一些实施方式。现在详细地具体参照附图,需要强调的是所示的细节只是举例说明和出于本公开内容的实施方式的说明性讨论的目的。就此而言,根据附图进行的描述使得可以如何实践本公开内容的实施方式对本领域技术人员而言是明显的。
在附图中:
图1是根据一些实施方式的根据缓存条目的压缩性能参数,将缓存条目移动到压缩后的缓存条目的较低缓存层级或压缩后的缓存条目的较高缓存层级以及/或者从压缩后的缓存条目的较低缓存层级或压缩后的缓存条目的较高缓存层级驱逐缓存条目的方法的流程图;以及
图2是根据一些实施方式的用于根据缓存条目的压缩性能参数将缓存条目移动到压缩后的缓存条目的较低缓存层级或压缩后的缓存条目的较高缓存层级以及/或者从压缩后的缓存条目的较低缓存层级或压缩后的缓存条目的较高缓存层级驱逐缓存条目的系统的部件的框图。
具体实施方式
本公开内容在其一些实施方式中涉及缓存,并且更具体地但不排他性地,涉及用于管理缓存以改善访问时间的系统和方法。
一些实施方式的一方面涉及用于管理下述存储器(例如,DRAM、SCM)的系统、方法、计算设备和/或装置和/或计算机程序产品(存储由一个或更多个处理器可执行的代码指令),所述存储器被分为以未压缩状态存储缓存条目的较高缓存层级和以压缩状态存储缓存条目的一个或更多个较低缓存层级。检测缓存事件例如缓存条目的读取未命中和/或缓存条目的驱逐。针对缓存条目计算一个或更多个压缩性能参数。压缩性能参数可以指示访问处于压缩状态的缓存条目因解压缩缓存的额外时间而引起的延迟,或者访问处于未压缩状态的缓存条目因访问可能非顺序存储的更多数据的额外时间而引起的延迟。压缩性能参数可以基于缓存条目的预测命中率来计算。压缩性能参数可以基于对以压缩状态存储缓存条目的存储需求的减少来计算。根据压缩性能参数,对缓存条目进行移动和/或驱逐。可以将缓存条目移动到较高缓存层级或者较低缓存层级中的一个较低缓存层级。
除了缓存中的存储未压缩的缓存条目的较高层级之外,本文描述的至少一些实现方式还利用缓存中的存储压缩后的缓存条目的多个限定的较低层级。使用压缩缓存的多个较低层级有助于优化性能,例如,在为数据和/或服务IO请求提供服务时降低总体平均延迟。可压缩的数据越多,解压缩数据所需的CPU就越少,并且解压缩时间就越短。
由于性能问题例如用于压缩和解压缩数据的处理和/或用于压缩和解压缩数据的处理器利用率增加,存储系统的缓存通常不保持压缩。压缩缓存是用于改善对存储器页面的平均访问时间的方法。其将新的级别插入在虚拟存储器层次结构中,其中,主存储器的一部分被分配给压缩缓存并且用于存储通过数据压缩算法压缩的页面。以压缩格式存储多个页面会增加有效存储器大小,并且对于大多数工作负载,这种扩大减少了对备份存储设备(通常是慢速硬盘)的访问次数。这种方法利用了CPU处理能力与硬盘延迟时间之间的差距。在标准压缩缓存系统中,缓存存储器被分为未压缩缓存和压缩缓存。从未压缩缓存驱逐的页面被压缩并被移动到压缩缓存层级。从压缩缓存层级读取的页面被解压缩并被移动到未压缩缓存层级。在一些现有方法中,压缩缓存和未压缩缓存的大小是动态决定的。标准缓存驱逐机制用于将数据从未压缩缓存移动到压缩缓存。这种现有方法没有考虑驱逐方案中的压缩比。充其量可能仅考虑缓存的总压缩比。
不同的压缩过程产生不同的压缩比和/或不同的性能。例如,现代压缩过程可能在单个CPU上以超过4.5千兆字节每秒(GB/sec)的速度解压缩。这意味着解压缩8千字节(kilobyte,KB)例如需要2微秒,比NAND闪存显著更快,但比在1毫秒(millisecond,MS)范围内处理数据的SCM存储器慢。
在详细解释本公开内容的至少一个实施方式之前,应理解,本公开内容在其应用时并不一定限于以下描述中阐述的和/或附图中所示的和/或示例中的部件和/或方法的构造和布置的细节。本公开内容能够有其他实施方式,或者能够以各种方式实践或执行。
本公开内容可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质(或多个介质),其上具有用于使处理器执行本公开内容的各方面的计算机可读程序指令。
计算机可读存储介质可以是能够保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以为,但不限于,例如,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或上述设备的任何合适组合。
本文中描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由诸如因特网、局域网、广域网和/或无线网络的网络下载到外部计算机或外部存储设备。
计算机可读程序指令可以完全在用户的计算机上执行、部分在用户的计算机上执行、作为独立的软件包部分在用户的计算机上执行且部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种场景中,远程计算机可以通过任何类型的网络连接到用户的计算机,这些网络包括局域网(local area network,LAN)或广域网(wide areanetwork,WAN),或者可以(例如,通过使用因特网服务提供商的因特网)连接到外部计算机。在一些实施方式中,包括例如可编程逻辑电路、现场可编程门阵列(field-programmablegate array,FPGA)或可编程逻辑阵列(programmable logic array,PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以执行本公开内容的各方面。
本文参照根据本公开内容的实施方式的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本公开内容的各方面。将理解的是,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以由计算机可读程序指令实现。
图中的流程图和框图示出了根据本公开内容的各个实施方式的系统、方法和计算机程序产品的可能实现方式的架构、功能以及操作。就此而言,流程图或框图中的每个框可以表示模块、区段或部分指令,其包括用于实现一个或多个指定逻辑功能的一个或更多个可执行指令。在一些替选实现方式中,框中说明的功能可以不按照图中说明的顺序实现。例如,事实上,连续示出的两个框可以几乎同时执行,或者有时候可以按照相反的顺序执行,这取决于所涉及的功能。还将说明的是,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框组合可以由基于专用硬件的系统实现,这些系统执行特定的功能或动作或者执行专用硬件和计算机指令的组合。
现在参照图1,图1是根据一些实施方式的根据缓存条目的压缩性能参数,将缓存条目移动到压缩后的缓存条目的较低缓存层级或压缩后的缓存条目的较高缓存层级以及/或者从压缩后的缓存条目的较低缓存层级或压缩后的缓存条目的较高缓存层级驱逐缓存条目的方法的流程图。现在也参照图2,图2是根据一些实施方式的用于根据缓存条目的压缩性能参数将缓存条目移动到压缩后的缓存条目的较低缓存层级或压缩后的缓存条目的较高缓存层级以及/或者从压缩后的缓存条目的较低缓存层级或压缩后的缓存条目的较高缓存层级驱逐缓存条目的系统200的部件的框图。系统200可以通过执行存储在存储器206中的代码指令(例如,代码206C)的计算设备204的一个或多个处理器202实现参照图1描述的方法的动作。
计算设备204管理存储器206的缓存部分206A。缓存部分206A包括一个或更多个较低缓存层级206A-1以及较高缓存层级206A-2。一个或多个较低缓存层级206A-1以压缩状态存储缓存条目。不同的缓存层级可以存储不同压缩比的缓存条目以及/或者由于对压缩后的缓存条目进行解压缩而引起不同的延迟,如本文所述。较高缓存层级206A-2以未压缩状态存储缓存条目。
存储缓存部分206A的存储器206可以被实现为例如动态随机存取存储器(dynamicrandom-access memory,DRAM)和/或存储类存储器(storage class memory,SCM)。存储缓存部分206A的存储器206可以被选择为具有低的访问时间。存储缓存部分206A的存储器206的成本可能高,从而限制了可用于缓存层级的存储量。
计算设备204还可以管理分层存储208,该分层存储208至少包括较低层级数据存储设备210和较高层级数据存储设备212。可以在缓存部分206A与分层存储208之间移动数据块组。较低层级数据存储设备210可以存储较低数据存储层级。较高层级数据存储设备212可以存储较高数据存储层级。
计算设备204可以使用预取过程206B(例如,存储在存储器206上,由一个或多个处理器202执行)来从较低层级数据存储设备210预取数据,如本文所述。预取过程206B可以在下一数据分量被请求之前预测该数据分量的位置,并在请求之前获取下一数据分量。预取可以从较低层级数据存储设备210执行,从而节省较高层级数据存储设备212上的空间。一些预取过程206B被设计成预测非顺序定位例如以跨步(striding)模式定位(例如,相对于先前的地址位置增加固定的地址位置)以及/或者以最初看起来是随机的恒定地址模式定位的数据分量的位置。
与较高层级数据存储设备212相比,较低层级数据存储设备210具有相对较慢的随机访问输入/输出(input/output,IO)(例如,读取)时间。与较低层级数据存储设备210相比,较高层级数据存储设备212具有相对较快的随机I/O(例如,读取和/或写入)时间。
与较高层级数据存储设备212相比,较低层级数据存储设备210可能成本较低(例如,每兆字节)。
较低层级数据存储设备210可以被实现为例如硬盘驱动器(hard disk drive,HDD)。较低层级数据存储设备210可以提供快速的顺序读取和/或写入,但是由于寻道时间可能非常高(例如,高达10毫秒),因此对于随机I/O具有较差的性能。
较高层级数据存储设备212可以被实现为例如固态驱动器(solid-state drive,SSD)和/或相变存储器(phase-change memory,PCM)。
较高层级数据存储设备212可以用作较低层级数据存储设备210的缓存和/或层级(例如,当数据是易失性的并且在较低层级中具有副本时用作缓存,以及/或者当数据是非易失性的和/或可以(例如,仅)保存在较高层级中时用作层级)。
缓存部分206A可以用作分层存储208的缓存,例如用于具有最高命中率的缓存条目。
分层存储208与计算系统214通信,计算系统214将数据存储在分层存储208上和/或读取存储在分层存储208上的数据。分层存储208可以集成在计算系统214内,和/或可以被实现为外部存储设备。计算系统214可以经由计算设备204间接连接至分层存储208,即计算系统214可以与计算设备204通信,其中,计算设备204与分层存储208通信,而不是计算系统214直接与分层存储208通信。
计算系统214和/或计算设备204可以被实现为例如下述中的一个或更多个:计算云、云网络、计算机网络、一个或多个虚拟机(例如,管理程序、虚拟服务器)、网络节点(例如,交换机、虚拟网络、路由器、虚拟路由器)、单个计算设备(例如,客户端终端)、并行布置的一组计算设备、网络服务器、Web服务器、存储服务器、本地服务器、远程服务器、客户端终端、移动设备、固定设备、信息亭、智能电话、笔记本电脑、平板电脑、可穿戴计算设备、眼镜计算设备、手表计算设备和台式计算机。
可选地,分层存储208专门由诸如计算设备214的单个用户使用。替选地,分层存储208由多个用户(例如,通过网络218访问分层存储208的多个客户端终端216)使用,例如,计算系统214向客户端终端216提供云存储服务和/或虚拟存储服务。
计算设备204可以被实现为例如集成在分层存储208内(例如,作为安装在分层存储208内的硬件和/或软件)、集成在计算系统214内(例如,作为安装在计算系统214内的硬件和/或软件例如加速器芯片和/或存储在计算系统214的存储器上并由计算系统214的处理器执行的代码),以及/或者被实现为与分层存储208通信的外部部件(例如,被实现为硬件和/或软件),例如,插件部件。可选地,分层存储208和计算设备204被实现为向一个或多个计算系统214公开存储(例如,功能、特征、能力)的一个存储系统。
计算设备204包括一个或更多个处理器202,一个或更多个处理器202被实现为例如一个或多个中央处理单元(central processing unit,CPU)、一个或多个图形处理单元(graphics processing unit,GPU)、一个或多个现场可编程门阵列(field programmablegate array,FPGA)、一个或多个数字信号处理器(digital signal processor,DSP)、一个或多个专用集成电路(application specific integrated circuit,ASIC)、一个或多个定制电路、用于与其他单元接口的处理器、和/或专用硬件加速器。一个或多个处理器202可以被实现为单个处理器、多核处理器和/或被布置用于并行处理的处理器集群(其可以包括同构和/或异构处理器架构)。需要说明的是,一个或多个处理器202可以被设计成在硬件中实现作为代码指令206C和/或206B存储的一个或更多个特征。
存储器206存储由一个或多个处理器202可实现的代码指令,例如随机存取存储器(random-access memory,RAM)、只读存储器(read-only memory,ROM)和/或存储设备,例如非易失性存储器、磁介质、半导体存储器设备、硬盘驱动器、可移动存储装置和光学介质(例如DVD、CD-ROM)。存储器206可以存储代码206C和/或存储如本文所述的预取过程206B的代码,所述代码206C在由一个或多个处理器208执行时实现参照图1描述的方法的一个或更多个动作。
计算设备204可以包括:数据存储设备220,用于存储数据。数据存储设备220可以被实现为例如存储器、本地硬盘驱动器、可移动存储单元、光盘、存储设备以及或者被实现为远程服务器和/或计算云(例如,使用网络连接来访问)。需要说明的是,由一个或多个处理器202可执行的代码指令可以存储在数据存储设备220中,例如,其中执行部分被加载到存储器206中以供一个或多个处理器202执行。
计算设备204(和/或计算系统214)可以与向用户呈现数据和/或包括用于输入数据的机制的用户接口222通信,用户接口222例如是触摸屏、显示器、键盘、鼠标、语音激活软件和麦克风中的一个或更多个。
网络218可以被实现为例如互联网、局域网、虚拟专用网络、虚拟公共网络、无线网络、蜂窝网络、本地总线、点对点链路(例如,有线的)和/或上述的组合。
在102处,监控缓存以检测缓存条目的缓存事件。可以监控缓存以检测缓存访问模式。所监控的缓存事件和/或缓存访问模式的示例包括缓存条目的读取未命中和/或缓存条目的驱逐。
存储缓存的存储器被分为未压缩的缓存条目的较高缓存层级和压缩后的缓存条目的一个或更多个较低缓存层级。
其他缓存事件和/或缓存访问模式以及/或者用于检测缓存事件和/或缓存访问模式的收集的数据参数包括例如读取、顺序读取、读取的大小、写入、顺序写入和写入的大小、以及数据块组(例如,每个数据块组)的统计数据参数。
可选地,访问模式和/或缓存事件是动态衰减的。衰减可以在每一时间间隔通过将访问模式和/或缓存事件的当前参数乘以小于1的衰减值来执行,以获得访问模式和/或缓存事件的适配参数。可以使用其他衰减方法,例如线性、对数、动态变化值等。可以使用访问模式和/或缓存事件的适配参数来计算预测归一化访问参数和/或缓存事件。衰减值防止无限增大访问参数和/或缓存事件的参数值,以及/或者将访问模式和/或缓存事件的参数值保持在能够在合理时间内进行处理的合理状态。例如,每5分钟将读取的次数(访问模式的参数的示例)乘以0.99,使得如果当前有100次读取,则在5分钟之后,读取次数减少到99。
可以针对每个单独的数据块组(例如,每个数据块组)来计算访问模式和/或缓存事件,其中,单独数据块组包括多个顺序存储的数据块。块可以是由存储系统操作的最小粒度。用户可以读取和/或写入单个块和/或多个块。块的大小可以在约0.5千字节至32千字节(kilobyte,KB)之间,或者在其他范围。缓存条目可以是多个顺序存储的数据块的数据块组,而不是每个块的数据块组。块组可以是例如4兆字节(megabyte,MB)或其他值的连续地址空间。需要说明的是,缓存条目要小得多,例如约8KB,其中,4MB块组可以是数据存储层级的块组。与使用非常大的数据结构来存储每个块的访问模式和/或缓存事件相比,分析每个数据块组而不是每个块的缓存条目的访问模式和/或缓存事件降低了存储需求和/或提高了计算性能(例如,处理器利用率、处理器时间)。可以针对每个数据块组执行移动和/或驱逐(例如,如参照106和/或108所描述的)。
可选地,访问模式和/或缓存事件通过向上分级和向下分级过程来计算,向上分级和向下分级过程在一个或多个缓存层级与分层存储(例如,较高级别数据存储设备与较低级别数据存储设备)之间动态地移动数据块组以进行动态优化。评估一个或多个存储设备的区域的热度(hotness)和/或该区域将被读取的概率的现有向上分级和/或向下分级过程可以用于确定访问模式和/或缓存事件和/或因此进行的分析,以确定对缓存条目的移动和/或驱逐。
可选地,对缓存条目的访问模式和/或缓存事件的分析通过计算缓存条目的未来访问模式的预测来执行。预测的未来访问模式使得能够更好地分配缓存条目。未来访问模式的预测可以作为机器学习(machine learning,ML)模型例如,回归器、神经网络、分类器等的结果而获得。ML模型可以在记录的训练数据集上进行训练,其中,每个记录包括用历史访问模式和/或缓存事件的地面真值标签标记的相应缓存条目。基于学习缓存条目的历史访问模式,ML模型可以提高预测的准确度。可以使用其他方法来获得预测的未来访问模式和/或缓存事件,例如一组规则和/或数学预测模型。
可选地,访问模式和/或缓存事件包括通过预取过程进行的预取模式。可以分析预取方法,以更准确地预测未来访问模式和/或缓存事件。预取模式可以是例如顺序、跨步(即,每次增加固定步长)和/或随机中的一种或其组合。当数据分量尚未存储在较高层级数据存储设备和/或较高缓存层级上时,预取过程将预取的数据分量(其非顺序地位于较低层级数据存储设备上)放置在较高层级数据存储设备和/或较高缓存层级上。预取过程计算在当前数据块组被访问的情况下多个候选后续数据块组中的每个候选后续数据块组被访问的概率,并且在当前数据块组被访问时预取具有最高概率的后续数据块组。计算概率的预取过程使得能够选择获得最高准确度的数据块组,以存储在较高层级数据存储设备和/或较高缓存层级上,这提高了较高层级数据存储设备和/或较高缓存层级的性能,因为与保存在较低层级数据存储设备和/或较低缓存层级上的具有较低概率的其他分量相比,存储的数据块组在未来最有可能实际被访问。
可选地,计算预取模式(例如,每个预取模式)的准确度。预取模式(例如,要预取的数据分量)可以如本文参考下文讨论的信任缓存过程所述的那样进行预测。如本文所使用的,术语信任缓存涉及预测接下来的不一定是顺序的一个或多个位置的预取缓存。准确度可以计算为:预取模式正确预取正确分量的情况相对于所有预取尝试(包括预取模式无法预取正确分量的尝试)的百分比。可以选择准确度高于阈值的两个或更多个提取模式。阈值可以是例如20%、25%、30%、40%、45%、50%或其他值。选择具有最高准确度的两个或更多个预取模式,因为这种预取模式在未来最有可能被重新选择。
可选地,预取过程基于根据当前访问(例如,读取)位置计算下一访问(例如,读取)位置的条件概率,有时也被称为信任缓存预取。预取过程(例如,信任缓存预取)计算在当前数据分量被访问的情况下多个候选后续数据分量中的每个候选后续数据分量被访问的概率,并在当前数据分量被访问时预取具有最高概率的后续数据分量。预取过程计算预取模式提取多个候选分量中的每个候选分量的概率。
当条件概率高于阈值时,可以从下一访问位置预取数据。例如,当对数据存储的访问是非顺序的但是以可重复的模式(例如,以跨步访问(即,每次相对于当前访问将地址增加固定量))和/或以最初看起来是随机的另一可重复模式时,可以使用信任缓存预取。下一要访问的位置是基于当前位置和/或先前的位置计算的,当前位置和/或先前的位置是基于绝对地址位置和/或相对地址位置访问的。现在描述示例性计算:
在第一位置(表示为A)被访问之后,以下存储器位置被访问多次:第二位置(表示为X)被访问10次,第三位置(表示为Y)被访问3次,以及第四位置(表示为Z)被访问5次。
在第五位置(表示为B)被访问之后,以下存储器位置被访问多次:第二位置(表示为X)被访问6次,第三位置(表示为Y)被访问2次,第四位置(表示为Z)被访问4次,以及第六位置(表示为K)被访问7次。
条件概率计算如下:
·p(X|A)=10/18p(Y|A)=3/18p(Z|A)=5/18
·p(X|B)=6/19p(Y|B)=2/19p(Z|B)=4/19p(K|B)=7/19
如果存在两个访问(例如,IO),依次是A和B,则可以通过计算以下位置X、Y、Z、K中的每个位置的候选概率来计算要从其预取的数据位置的建议:
CX=p(X|A)+p(X|B)=10/18+6/19=0.87
CY=p(Y|A)+p(Y|B)=0.27
CZ=p(Z|A)+p(Z|B)=0.71
CK=p(K|A)+p(K|B)=0.36
对概率进行分类,以对从其中获得数据预取的最可能的接下来的位置进行排名。可以访问一个或更多个预取模式,例如,单个预取、两个预取或更多个预取以及/或者根据阈值。第一预取来自位置X。第二预取来自位置Z。第三预取来自位置K。如果使用50%的阈值,则数据从位置X和位置Z预取。
预取位置(即,X、Y、Z、K)可以被称为候选。当前访问位置(即,A、B)可以被称为选举者。
当前位置与接下来的位置之间的关系可以在矩阵中呈现,所述矩阵可以被称为关系矩阵,例如如下(例如,curHis:AB)。
X | Y | Z | K | |
A | 10 | 3 | 5 | 0 |
B | 6 | 2 | 4 | 7 |
在104处,计算缓存条目的一个或更多个压缩性能参数。
可选地,压缩性能参数包括解压缩性能参数。解压缩性能参数指示访问以压缩状态存储在较低缓存层级中的一个较低缓存层级上时的缓存条目或者访问以未压缩状态存储在至少一个较低缓存层级上的缓存条目所引起的附加延迟。由于在服务未压缩数据之前解压缩存储在较低层级缓存中的缓存条目而引起的附加延迟在一些情况下可能是不显著的,或者在其他情况下可能是显著的,例如根据CPU的能力和/或可用性。当所引起的附加延迟不显著时,访问性能可能提高。读取解压缩数据所增加的延迟会影响缓存条目被移动到的位置的缓存层级,因为目标是例如根据所引起的延迟是否显著来降低服务数据时和/或执行IO操作时的总体平均延迟。
替选地或另外地,压缩性能参数基于缓存条目的预测命中率来计算,所述预测命中率指示在未来时间间隔期间该缓存条目将再次被读取的概率。具有较高命中率的缓存条目更适合保留在缓存中,以避免缓存未命中。命中率可以用于“归一化”所增加的延迟时间,并使得能够比较“归一化”的延迟时间。
替选地或另外地,压缩性能参数包括以由特定压缩过程限定的压缩比以压缩状态存储缓存条目的存储需求的减少。高度可压缩的缓存条目更适合保留在压缩缓存中,因为这些缓存条目与其他可压缩性较低的缓存条目相比占用较少的空间。
可以针对在相应较低层级缓存上运行的相应目标压缩过程计算缓存条目的压缩比以对该缓存条目进行压缩,以用于存储在相应较低层级缓存上。不同的压缩过程具有不同的压缩比。使用在缓存条目可能被移动到的相应较低层级缓存上运行的目标压缩过程来计算压缩比,以帮助评估缓存条目将被移动到的位置。
替选地或另外地,压缩性能参数包括对下述中的一者或更多者的平均延迟的影响:(i)当将缓存条目以未压缩状态存储在较高缓存层级上时,访问较高缓存层级的缓存条目;以及(ii)当将缓存条目以压缩状态存储在一个或多个较低缓存层级上时,访问一个或多个较低缓存层级的缓存条目。缓存条目被存储在较高缓存层级和/或至少一个较低缓存层级上以及/或者从较高缓存层级和/或至少一个较低缓存层级驱逐,以改善平均延迟。
考虑用于将缓存条目移动到压缩缓存的多个限定的较低层级中的一个较低层级中或移动到未压缩缓存的较高层级中的压缩比和解压缩性能的组合,改善了处理缓存读取未命中的总体性能。这样的改善可以是获得减少因解压缩压缩后的缓存条目而增加的延迟和/或降低因解压缩压缩后的缓存条目(或当访问未压缩的缓存条目而不是解压缩压缩后的缓存条目时)产生的处理器利用率的最佳组合。压缩比和解压缩性能可以被视为组合,因为解压缩性能可能受到压缩比(例如,压缩比的函数)的影响。可压缩的数据越多(例如,压缩比越高),解压缩过程可以工作的越快(例如,所引起的延迟时延越低)。例如,对于具有4X压缩(即,压缩比为4)的缓存条目,解压缩过程的工作速度可以是压缩比为2X的情况下的两倍。
在106处,可以根据压缩参数将缓存条目移动到较高缓存层级和/或移动到较低缓存层级中的一个较低缓存层级。
为了清楚起见,需要说明的是,本文描述的缓存层级可以被实现为不同的缓存层。缓存层级(例如,缓存层)存储在存储器(例如,DRAM、SCM)中。缓存层级(例如,缓存层)不存储在其他数据存储设备例如硬盘和/或SSD上。硬盘和/或SSD可以是分层存储系统的一部分,其用作存储数据存储层级的分级数据存储设备,但是不存储缓存层级(例如,缓存层)。因此,明确了数据存储层级(例如,由分层存储系统例如硬盘和/或SSD存储的)不同于存储在存储器(例如,DRAM、SCM)中的缓存层级。需要说明的是,数据存储层级是持久的。数据通常存储在仅一个数据存储层级(例如,较高层级或较低层级)中。相比之下,缓存是易失性的,并且存储在缓存中的数据也存储在数据存储层级上。
当一个或多个压缩性能参数已知时,在读取未命中时,缓存条目被移动到缓存的层级中的一个层级。一旦解压缩的缓存条目被提供服务,就可以获得数据的压缩比和/或解压缩性能(例如,由于要服务的数据的解压缩而引起的处理器利用率和/或延迟的量)。已知的一个或多个压缩性能参数用于选择缓存条目以压缩状态被插入到缓存的较低层级中的哪个较低层级,或者是否将缓存条目保持在未压缩状态并插入到缓存的较高层级中。当压缩的缓存较低层级按照一个或多个压缩性能参数(例如,解压缩的延迟和/或压缩比以及/或者其组合)的不同值划分时,每个这种IO与一个压缩的较低缓存层级相关和/或与其他压缩的较低缓存层级无关,或者与任何较低缓存层级无关,在这种情况下,缓存条目将在较高级别缓存层级中保持未压缩。
可以存在一个或更多个较低缓存层级,例如2个、3个或更多个。可以例如根据可用的处理资源来选择缓存层级的数目和/或用于将缓存条目移动到每个缓存定时器的阈值和/或值,以获得最佳性能。缓存层级的数目可以提前决定。
在示例性实现方式中,存在两个较低缓存层级。当压缩参数指示压缩比高于第一压缩阈值且解压缩性能指示访问处于压缩状态的缓存条目所引起的延迟低于第一延迟阈值时,将缓存条目移动到第一较低缓存层级。例如,当压缩比高于第一压缩比阈值3且延迟低于第一延迟阈值10微秒时,将缓存条目移动到第一较低缓存层级。当压缩参数指示压缩比高于第二压缩阈值且低于第一压缩阈值并且解压缩性能低于第一延迟阈值大于第二延迟阈值时,将缓存条目移动到第二较低缓存层级。例如,当压缩比高于第二压缩阈值2但低于第一压缩阈值3并且延迟低于第二延迟阈值30微秒时,将缓存条目移动到第二较低缓存层级。在示例性实现方式中,根据压缩比和最大延迟的组合的最小值来移动缓存条目。例如,当压缩比至少为2且延迟至少为5时,移动缓存条目。否则,缓存条目将不会落入任何队列。
可以针对存储在较低层级缓存中的一个较低层级缓存上的缓存条目检测读取未命中。可以将缓存条目移动到以未压缩状态存储缓存条目的较高缓存层级。当缓存条目的命中分数高于根据存储在较高缓存层级上的缓存条目的命中分数计算的阈值时,可以将缓存条目移动到较高缓存层级。当这样做相对于存储在较高缓存层级上的当前缓存条目在减少的延迟和/或高的命中率方面提供了最佳性能时,可以将缓存条目移动到较高缓存层级。
作为106的替选或附加,在108处,根据压缩参数从较高缓存层级和/或较低缓存层级中的一个较低缓存层级驱逐缓存。
可以根据最近最少使用(least recently used,LRU)策略从较低缓存层级驱逐数据。
可选地,响应于缓存已满,选择具有最低命中分数的缓存条目以进行驱逐。具有最低命中分数的数据表示不太可能再次被访问的数据,这表示最适合进行驱逐。相应较低缓存层级中的数据页(例如,页面)的分数可以基于命中次数,可选地随时间衰减。从多个较低层级缓存驱逐具有最低命中分数的缓存条目。对于较低层级缓存中的每一个,可以驱逐具有最低值的缓存条目。
命中分数可以是相应较低缓存层级的压缩因子的函数。对于较高的压缩因子获得较高的命中分数,并且对于较低的压缩因子获得较低的命中分数。压缩因子有助于保留更加高度压缩的数据,以及/或者有助于驱逐可压缩性较低的数据。具有较高压缩因子的数据将被保留在具有较高优先级的压缩的较低缓存层级中。命中分数可以乘以压缩因子,或者可以使用其他函数。
替选地或另外地,命中分数可以是解压缩压缩后的缓存条目的延迟的函数。命中分数可以通过延迟进行“归一化”,使得能够基于预测的命中率来比较总预测延迟时间。对于较低的延迟获得较高的命中分数,并且对于较高的延迟获得较低的命中分数。命中分数可以是压缩因子和延迟的组合。
替选地或另外地,相应命中分数在时间间隔内并基于最后访问时间衰减。当缓存条目最近不被频繁访问时,预测这些缓存条目在未来也不会被频繁访问。衰减使得能够移除非频繁读取的缓存条目,即使该缓存条目过去常常被频繁读取。
现在描述用于计算每个缓存条目的相应命中分数的示例性方法,并且所述示例性方法可以包括以下特征中的一个或更多个:
1.当读取缓存条目时,将常数(例如,表示为c_1)添加至命中分数。
2.每一时间间隔将命中分数乘以衰减因子(例如,表示为d_1),例如,每1分钟将命中分数乘以0.99。
3.当缓存条目具有某个压缩因子值(例如,表示为p_1)时,将该缓存条目的命中分数乘以调整函数(例如,表示为f(p_1))。例如,f(p_1)=p_1。
4.当缓存条目具有解压缩时间d_1时,将命中分数乘以下述函数(例如,表示为g(d_1)),该函数基于增加的延迟来调整命中分数。例如,g(0)=1和g(较低层级)=1/2,例如,增加的延迟等于通过从较高层级数据存储设备(例如,SSD)读取命中分数而增加的延迟。函数g(x)的示例可以是g(x)=1-x/(x+SSD)。
可以将被驱逐的缓存条目的命中分数与其他缓存层级中的缓存条目的命中分数进行比较。当缓存条目的命中分数高于位于特定缓存层级中的当前缓存条目的最低命中分数时,可以将该缓存条目移动到该特定缓存层级,其中,所述最低命中分数低于其他缓存层级中的缓存条目的命中分数。如果被移动的所驱逐的条目的命中分数低于所选较低缓存层级中的所有缓存条目,则添加所驱逐的条目将仅使其被再次从所选较低缓存层级驱逐。
在110处,例如,针对不同的缓存条目可以迭代参考102至108描述的一个或更多个特征。
将存储器分配到多个较低缓存层级和/或较高缓存层级可以是动态的,例如,每次迭代或多次迭代进行调整。可以根据一组规则执行动态分配,例如,当所述一组规则指示需要更多的存储空间时,扩展某个缓存层级的大小,或者当所述一组规则指示现有的存储空间未被使用时,减小某个缓存层级的大小。
在研究下文附图和详细描述之后,本公开内容的其他系统、方法、特征和优点对于本领域技术人员来说将是明显的或变得明显的。旨在将所有这些附加系统、方法、特征和优点包括在本说明书中、在本公开内容的范围内,并且受所附权利要求的保护。
对本公开内容各个实施方式的描述仅出于说明的目的呈现,而这些描述并不旨在穷举或限于所公开的实施方式。在不脱离所描述的实施方式的范围和精神的情况下,许多修改和变化对本领域技术人员而言将是明显的。选择本文使用的术语可最好地解释本实施方式的原理、实际应用或相比于市场上存在的技术的技术进步,或者使本领域其他技术人员理解本文公开的实施方式。
预计在本申请到期的专利有效期内,许多相关的缓存设备和缓存过程将被开发出来,以及术语缓存的范围旨在先验地包括所有此类新技术。
本文所使用的术语“约”是指±10%。
术语“包括”、“包含”、“含有”、“包括有”、“具有”以及其变化形式表示“包括但不限于”。这个术语包括了术语“由……组成”以及“基本上由……组成”。
短语“基本上由……组成”意味着组成物或方法可以包括附加成分和/或步骤,但仅在是所述附加成分和/或步骤不会实质上改变所要求保护的组成物或方法的基本和新颖特性的情况下。
除非上下文另有明确说明,否则本文使用的单数形式“一”、“一个”和“所述”包括复数含义。例如,术语“复合物”或“至少一种复合物”可以包括多种复合物,包括其混合物。
本文所使用的词语“示例性的”意味着“作为示例、实例或说明”。任何被描述为“示例性的”实施方式并不一定解释为比其他实施方式优选或有利,和/或排除来自其他实施方式的特征的结合。
本文所使用的词语“可选地”意味着“在一些实施方式中提供且在其他实施方式中没有提供”。本公开内容的任何特定的实施方式可以包括多个“可选的”特征,除非这些特征有冲突。
在本申请中,本公开内容的各种实施方式可以以范围格式呈现。应理解,范围格式的描述仅为了方便和简洁起见,并且不应该被解释为对本公开内容的范围的固定限制。因此,对范围的描述应被视为已经具体地公开所有可能的子范围以及该范围内的单独数值。例如,对例如从1到6的范围的描述应被视为已经具体公开了例如从1到3、从1到4、从1到5、从2到4、从2到6、从3到6等的子范围以及该范围内的单独数字例如1、2、3、4、5和6。不论范围有多广,这都适用。
当本文指示数字范围时,意指包括所指示的范围内的任何所列举的数字(分数或整数)。短语“第一指示数字与第二指示数字之间的变动/范围”以及“从第一指示数字到第二指示数字的变动/范围”在本文中可互换使用,并且意指包括第一指示数字和第二指示数字以及二者之间的所有分数和整数。
应当理解,为了清楚起见,在单独实施方式的上下文中描述的本公开内容的某些特征还可以在单个实施方式中组合提供。相反地,为了描述的简洁性,在单个实施方式的上下文中描述的本公开内容的各个特征也可以单独地或以任何合适的子组合来提供或作为本公开内容的任何其他描述的实施方式合适地提供。在各个实施方式的上下文中描述的某些特征不被视为这些实施方式的基本特征,除非在没有这些元件的情况下实施方式是不可操作的。
一个或多个申请人的目的是,本说明书中提及的所有出版物、专利和专利申请书都通过全文引用并入本说明书,如同每个单独的出版物、专利或专利申请书在提及要通过引用并入本文时被具体和单独指出。另外,对本申请的任何参考的引用或标识不应被解释为允许这样的参考可用作本公开内容的现有技术。就使用节标题而言,不应该将节标题理解成必要的限定。另外,本申请的任何一个或多个优先权文件的全部内容通过引用并入本申请。
Claims (17)
1.一种用于分层存储管理(208)的计算设备(204),所述计算设备(204)被配置用于:
对存储器(206)的缓存(206A)上的缓存条目的读取未命中以及所述缓存条目的驱逐中的至少一者进行检测;
其中,所述存储器被分为未压缩的缓存条目的较高缓存层级(206A-2)和压缩后的缓存条目的至少一个较低缓存层级(206A-1);
计算所述缓存条目的至少一个压缩性能参数;以及
根据所述压缩参数将所述缓存条目移动到所述较高缓存层级和/或至少一个较低缓存层级以及/或者从所述较高缓存层级和/或至少一个较低缓存层级驱逐所述缓存。
2.根据权利要求1所述的计算设备,其中,所述至少一个压缩性能参数包括解压缩性能,所述解压缩性能指示访问以压缩状态存储在所述至少一个较低缓存层级上时或以未压缩状态存储在所述至少一个较低缓存层级上时的所述缓存条目所引起的延迟。
3.根据前述权利要求中任一项所述的计算设备,其中,所述至少一个压缩性能参数基于所述缓存条目的预测命中率来计算,所述预测命中率指示在未来时间间隔期间所述缓存条目将再次被读取的概率。
4.根据前述权利要求中任一项所述的计算设备,其中,所述至少一个压缩性能参数还包括以由特定压缩过程限定的压缩比以所述压缩状态存储所述缓存条目的存储需求的减少。
5.根据前述权利要求中任一项所述的计算设备,其中,所述至少一个压缩性能参数还包括对下述中的至少一项的平均延迟的影响:(i)当将所述缓存条目以未压缩状态存储在所述较高缓存层级上时,访问所述较高缓存层级的缓存条目;以及(ii)当将所述缓存条目以所述压缩状态存储在所述至少一个较低缓存层级上时,访问所述至少一个较低缓存层级的缓存条目,其中,所述缓存条目被存储在所述较高缓存层级和/或所述至少一个较低缓存层级上以及/或者从所述较高缓存层级和/或所述至少一个较低缓存层级驱逐,以改善所述平均延迟。
6.根据前述权利要求中任一项所述的计算设备,其中,所述至少一个较低缓存层级包括两个缓存层级,其中,当所述至少一个压缩参数指示压缩比高于第一压缩阈值并且解压缩性能指示访问处于压缩状态的所述缓存条目所引起的延迟低于第一延迟阈值时,将所述缓存条目移动到第一较低缓存层级,以及当所述至少一个压缩参数指示所述压缩比高于第二压缩阈值且低于所述第一压缩阈值并且所述解压缩性能低于第二延迟阈值大于所述第一延迟阈值时,将所述缓存条目移动到第二较低缓存层级。
7.根据前述权利要求中任一项所述的计算设备,其中,针对在相应较低层级缓存上运行的相应目标压缩过程计算所述缓存条目的压缩比以对所述缓存条目进行压缩,以用于存储在所述相应较低层级缓存上。
8.根据前述权利要求中任一项所述的计算设备,
响应于所述缓存已满,选择具有较低相应命中分数的所述缓存条目以进行驱逐。
9.根据权利要求8所述的计算设备,其中,所述相应命中分数是所述相应较低缓存层级的相应压缩因子的函数,其中,对于较高的压缩因子获得较高的命中分数,并且对于较低的压缩因子获得较低的命中分数。
10.根据前述权利要求8至9中任一项所述的计算设备,其中,所述相应命中分数是解压缩所述压缩后的缓存条目的延迟的函数,其中,对于较低的延迟获得较高的命中分数,并且对于较高的延迟获得较低的命中分数。
11.根据前述权利要求8至10中任一项所述的计算设备,其中,所述相应命中分数在时间间隔内并基于最后访问时间衰减。
12.根据前述权利要求8至11中任一项所述的计算设备,其中,从所述至少一个较低缓存层级驱逐数据是根据最近最少使用(LRU)策略。
13.根据前述权利要求8至12中任一项所述的计算设备,还包括:将所述被驱逐的缓存条目的命中分数与其他缓存层级中的缓存条目的命中分数进行比较;以及当所述缓存条目的所述命中分数高于位于另一缓存层级中的当前缓存条目的最低命中分数时,移动所述缓存条目。
14.根据前述权利要求中任一项所述的计算设备,其中,所述读取未命中针对存储在所述至少一个较低层级缓存上的所述缓存条目被检测,并且其中,移动包括将所述缓存条目移动到以未压缩状态存储缓存条目的所述较高缓存层级。
15.根据权利要求14所述的计算设备,其中,当所述缓存条目的命中分数高于根据存储在所述较高缓存层级上的缓存条目的命中分数计算的阈值时,将所述缓存条目移动到所述较高缓存层级。
16.一种分层存储管理的方法,包括:
对存储器的缓存上的缓存条目的读取未命中以及所述缓存条目的驱逐中的至少一者进行检测(102);
其中,所述存储器被分为未压缩的缓存条目的较高缓存层级和压缩后的缓存条目的至少一个较低缓存层级;
计算所述缓存条目的至少一个压缩性能参数(104);以及
根据所述压缩参数将所述缓存条目移动到所述较高缓存层级和/或至少一个较低缓存层级,以及/或者从所述较高缓存层级和/或至少一个较低缓存层级驱逐所述缓存(106)。
17.一种非暂态介质(206),其存储用于分层存储管理的程序指令(206C),所述程序指令(206C)在由处理器(202)执行时使所述处理器执行下述操作:
对存储器的缓存上的缓存条目的读取未命中以及所述缓存条目的驱逐中的至少一者进行检测;
其中,所述存储器被分为未压缩的缓存条目的较高缓存层级和压缩后的缓存条目的至少一个较低缓存层级;
计算所述缓存条目的至少一个压缩性能参数;以及
根据所述压缩参数将所述缓存条目移动到所述较高缓存层级和/或至少一个较低缓存层级,以及/或者从所述较高缓存层级和/或至少一个较低缓存层级驱逐所述缓存。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2021/078249 WO2023061567A1 (en) | 2021-10-13 | 2021-10-13 | Compressed cache as a cache tier |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117813592A true CN117813592A (zh) | 2024-04-02 |
Family
ID=78134977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180101274.8A Pending CN117813592A (zh) | 2021-10-13 | 2021-10-13 | 压缩缓存作为缓存层级 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117813592A (zh) |
WO (1) | WO2023061567A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8527467B2 (en) * | 2011-06-30 | 2013-09-03 | International Business Machines Corporation | Compression-aware data storage tiering |
US11086793B2 (en) * | 2020-01-15 | 2021-08-10 | EMC IP Holding Company LLC | Data reduction techniques for use with caching |
US11204870B2 (en) * | 2020-03-13 | 2021-12-21 | EMC IP Holding Company LLC | Techniques for determining and using caching scores for cached data |
-
2021
- 2021-10-13 CN CN202180101274.8A patent/CN117813592A/zh active Pending
- 2021-10-13 WO PCT/EP2021/078249 patent/WO2023061567A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023061567A1 (en) | 2023-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11797185B2 (en) | Solid-state drive control device and learning-based solid-state drive data access method | |
US10482032B2 (en) | Selective space reclamation of data storage memory employing heat and relocation metrics | |
US8606994B2 (en) | Method for adapting performance sensitive operations to various levels of machine loads | |
EP2539821B1 (en) | Caching based on spatial distribution of accesses to data storage devices | |
US8301836B2 (en) | Methods for determining alias offset of a cache memory | |
US8285931B2 (en) | Methods for reducing cache memory pollution during parity calculations of RAID data | |
US9996476B2 (en) | Management of cache lists via dynamic sizing of the cache lists | |
Laga et al. | Lynx: A learning linux prefetching mechanism for ssd performance model | |
US8219751B2 (en) | Methods for optimizing performance of transient data calculations | |
US20090276600A1 (en) | Method and apparatus for determining memory usage for a computing device | |
US9798665B1 (en) | Cache eviction according to data hit ratio and service level agreement | |
CN117677941A (zh) | 存储系统中的数据压缩和重复数据删除感知分层 | |
CN117813592A (zh) | 压缩缓存作为缓存层级 | |
US11513961B2 (en) | Online heuristic sequentiality detection over input/output streams for cache systems in large address spaces | |
KR100981884B1 (ko) | 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법 | |
CN114385073A (zh) | 操作存储系统的方法和对存储资源的层级进行分区的方法 | |
Li et al. | A self-learning pattern adaptive prefetching method for big data applications | |
CN117916726A (zh) | 数据存储系统的智能碎片整理 | |
CN117203624A (zh) | 可预取数据的智能缓存 | |
CN111796757A (zh) | 一种固态硬盘缓存区管理方法和装置 | |
CN117242439A (zh) | 分层存储上的智能数据放置 | |
Li et al. | Algorithm-Switching-Based Last-Level Cache Structure with Hybrid Main Memory Architecture | |
CN117120989A (zh) | 用于dram高速缓存标签预取器的方法和装置 | |
KR20230026413A (ko) | 조합된 캐시 정책 테스트에 기초한 캐시용 캐시 정책 구성 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |