CN107533511A - 使用假想高速缓存的实时高速缓存行为预报 - Google Patents

使用假想高速缓存的实时高速缓存行为预报 Download PDF

Info

Publication number
CN107533511A
CN107533511A CN201680025719.8A CN201680025719A CN107533511A CN 107533511 A CN107533511 A CN 107533511A CN 201680025719 A CN201680025719 A CN 201680025719A CN 107533511 A CN107533511 A CN 107533511A
Authority
CN
China
Prior art keywords
cache
imaginary
actual
processing system
processor core
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
Application number
CN201680025719.8A
Other languages
English (en)
Inventor
朴熙俊
博胡斯拉夫·雷赫利克
史蒂文·S·汤姆森
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN107533511A publication Critical patent/CN107533511A/zh
Pending legal-status Critical Current

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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • 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/6032Way prediction in set-associative cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/684TLB miss handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

用于预报高速缓存的行为的系统和方法包含假想高速缓存。所述假想高速缓存经配置以模拟高速缓存行为,并且确定所述假想高速缓存的性能度量标准,其中所述性能度量标准可基于高速缓存命中/未命中。也可类似地确定处理系统的处理器核心的实际高速缓存的性能度量标准。至少基于所述假想高速缓存的性能度量标准,且在一些情况下,也基于所述实际高速缓存的性能度量标准(例如,基于所述性能度量标准的比较),预报所述实际高速缓存的行为。可基于所述预报建议和/或执行动作,其中所述动作包含修改所述实际高速缓存大小、关联性或处理器核心的分配,将在一个处理器集群中运行的任务迁移到另一处理器集群,或收集所述实际高速缓存的数据以用于离线分析。

Description

使用假想高速缓存的实时高速缓存行为预报
技术领域
所揭示的方面涉及使用假想高速缓存模拟高速缓存行为来预报高速缓存的行为。在示范性方面中,实际高速缓存的特性的实时动态修改可基于实际高速缓存的所预报的行为。
背景技术
一些处理系统包含一或多个多处理器集成电路(即,芯片)。多处理器芯片包含彼此互连的多个处理器核心。每一处理器核心由含有最近存取的主存储器数据的一或多个高速缓存支持,所述高速缓存是小高速存储器,通常为静态随机存取存储器(Static RandomAccess Memory,SRAM)。高速缓存存储数据文件,称为高速缓存线或高速缓存块。
当请求处理器核心需要存取特定高速缓存线时,请求处理器核心首先在其自身的高速缓存中进行查看。如果请求处理器核心在其自身的高速缓存中查找高速缓存线,那么已发生高速缓存命中。然而,如果请求处理器核心在其自身的高速缓存未找到高速缓存线,那么已发生高速缓存未命中。当发生高速缓存未命中时,检查与其它处理器核心相关联的高速缓存,以确定其它高速缓存中的任一者是否具有所请求的高速缓存线。如果所请求的高速缓存线位于另一处理器核心的高速缓存中,那么所述另一处理器核心的高速缓存可将高速缓存线提供给请求处理器核心。如果其它高速缓存不具有所请求的高速缓存线,那么请求处理器核心必须从主存储器存取所请求的数据文件。
由于高速缓存未命中造成必须从主存储器存取数据可能对于处理系统具有显著性能影响。
发明内容
示范性方面包含与使用假想高速缓存预报高速缓存的行为有关的系统和方法。所述假想高速缓存经配置以模拟高速缓存行为,并且确定所述假想高速缓存的性能度量标准,其中所述性能度量标准可基于高速缓存命中/未命中。也可类似地确定处理系统的处理器核心的实际高速缓存的性能度量标准。至少基于所述假想高速缓存的性能度量标准并且在一些情况下,也基于所述实际高速缓存的性能度量标准(例如,基于所述性能度量标准的比较),预报所述实际高速缓存的行为。可基于所述预报建议和/或执行动作,其中所述动作包含修改所述实际高速缓存大小、关联性或处理器核心的分配,将在一个处理器集群中运行的任务迁移到另一处理器核心或另一处理器集群,或收集所述实际高速缓存的数据以用于离线分析。
举例来说,示范性方面包含一种处理系统,其包括处理器核心和所述处理器核心的实际高速缓存。假想高速缓存经配置以模拟高速缓存行为。优化模块经配置以至少基于所述假想高速缓存的性能度量标准预报所述实际高速缓存的行为。
另一示范性方面涉及一种预报处理器核心的实际高速缓存的行为的方法,所述方法包括:用假想高速缓存模拟高速缓存行为;确定所述假想高速缓存的性能度量标准;和至少基于所述假想高速缓存的所述性能度量标准,预报所述实际高速缓存的行为。
又一示范性方面涉及一种处理系统,其包括:处理器核心和所述处理器核心的实际高速缓存:用于模拟高速缓存的装置;用于确定所述用于模拟的装置的性能度量标准的装置;和用于至少基于所述性能度量标准预报所述实际高速缓存的行为的装置。
附图说明
图1是根据本文中描述的技术的实例实施方案的处理系统。
图2是根据本文中描述的技术的实例实施方案的处理系统。
图3是根据本文中描述的技术的另一实施方案的处理系统。
图4是根据本文中描述的技术的另一实施方案的处理系统。
图5是根据本文中描述的技术的实例实施方案用于操作图4中描绘的假想高速缓存模拟模块的方法的流程图。
图6是根据本文中描述的技术的实例实施方案的处理系统。
图7是说明根据本文中描述的技术的实例实施方案操作图6中描绘的假想高速缓存模拟模块的方法的流程图。
图8是说明根据本文中描述的技术模拟处理系统中的高速缓存的方法的流程图。
图9是展示可采用根据本文中所描述的示范性方面的处理系统的示范性无线通信系统的框图。
具体实施方式参考附图。在图中,参考标号的最左边数字识别所述参考标号首次出现的图。贯穿图式使用相同数字指代相同特征和组件。
具体实施方式
在以下针对本发明的特定方面的描述和相关图式中揭示本发明的方面。可在不脱离本发明的范围的情况下设计替代方面。另外,将不会详细描述或将省略本发明的众所周知的元件以免混淆本发明的相关细节。
词语“示范性”在本文中用于意指“充当实例、例子或说明”。本文中描述为“示范性”的任何方面未必理解为比其它方面优选或有利。同样,术语“本发明的方面”并不要求本发明的所有方面都包含所论述的特征、优点或操作模式。
本文中所使用的术语仅出于描述特定方面的目的,且并不意图限制本发明的方面。如本文中所使用,除非上下文另外清楚地指示,否则单数形式“一”和“所述”希望还包括复数形式。应进一步理解,术语“包括(comprises、comprising)”和/或“包含(includes、including)”当在本文中使用时指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但并不排除一或多个其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。
另外,在将由(例如)计算装置的元件执行的动作序列方面来描述许多方面。将认识到,本文中所描述的各种动作可由特定电路(例如,专用集成电路(applicationspecific integrated circuits,ASIC))、由正由一或多个处理器执行的程序指令或由所述两者的组合执行。另外,可认为本文中所述的这些动作序列完全体现于任何形式的计算机可读存储媒体内,所述计算机可读存储媒体中存储有一组对应的计算机指令,所述计算机指令在被执行时将导致相关联的处理器执行本文中所述的功能性。因此,本发明的各种方面可以数个不同形式来体现,预期所有形式在所主张的标的物的范围内。另外,对于本文所描述的方面中的每一者,任何此类方面的对应形式可在本文中描述为(例如)“经配置以”执行所描述动作的“逻辑”。
一般来说,本文中所描述的技术的实例实施方案是针对模拟处理系统中的高速缓存以致力于实时地优化高速缓存行为。高速缓存未命中率对高速缓存配置取决于高速缓存地址存取模式、高速缓存大小以及高速缓存关联性而具有各种模式。确定这些模式对于优化高速缓存大小和高速缓存关联性可为有用信息。常规地,预硅(即,例如在集成电路制造于硅晶片上之前,集成电路的设计阶段)或针对已经固定的设计使用离线分析执行确定所述模式。
在一个方面中,使用假想高速缓存实时地预报高速缓存命中/未命中分布对高速缓存配置的各种模式。如在此描述中所使用,术语“假想高速缓存”涉及用于模拟高速缓存以便模拟高速缓存行为的结构或适合装置。举例来说,通过确定假想高速缓存的命中/未命中分布,获得至少所述假想高速缓存的性能度量标准(例如,命中/未命中分布、高速缓存的地址的样本等)。使用这些性能度量标准预报“实际高速缓存”的行为,所述实际高速缓存是用于高速缓存指令/数据的一或多个处理器可能主动使用的常规高速缓存。在一些方面中,还类似地获得实际高速缓存的性能度量标准。举例来说,使用假想高速缓存的性能度量标准(并且在一些情况下,结合实际高速缓存的性能度量标准)来预报动态地修改实际高速缓存的特性是否将改进实际高速缓存的性能度量标准。因此,在此上下文中,预报或预测实际高速缓存的模式涉及预报对实际高速缓存的例如大小、分配、功率选通、关联性等特性的任何动态修改是否将在实际高速缓存的未命中率上引起改进。换句话说,所预报的实际高速缓存的行为包括基于实际高速缓存的特性的一或多个修改对实际高速缓存的性能度量标准的预测。
举例来说,优化模块可经配置以至少基于假想高速缓存的性能度量标准预报实际高速缓存的行为。另外,优化模块也可进一步经配置以考虑例如与假想高速缓存的性能度量标准相比,实际高速缓存的性能度量标准。基于所预报的行为,优化模块可进一步经配置以建议动态地修改实际高速缓存的特性的一或多个动作。举例来说,这些动作可包含以下建议:动态地修改实际高速缓存的大小,动态地修改实际高速缓存到处理器核心的分配,将在处理器核心上运行的任务迁移到另一处理器核心,动态地修改实际高速缓存的关联性,收集实际高速缓存的数据(例如,用于离线分析)。在一些方面中,包括实际高速缓存和假想高速缓存的处理系统可经配置以进行或执行优化模块建议的一或多个动作。在此描述中,焦点将集中在做出建议的方式,而非如何在处理系统中可实施所述建议或执行动作的细节。基于本发明,所属领域的技术人员将理解,处理系统可执行优化模块建议的动作所使用的一或多种技术。在将收集预报以用于剖析或离线分析的情况下,可能不必做出对实际高速缓存的特性的进一步修改。因此,在本发明的上下文中,“预报”实际高速缓存的“行为”涉及基于对实际高速缓存的特性的一或多个修改,预报或预测实际高速缓存的性能度量标准为何或实际高速缓存的性能度量标准将如何受影响,并且可基于所预报的行为确定以及实施一或多个动作。
如将从以下说明中所见,假想高速缓存可为出于预报一或多个实际高速缓存的行为的目的所使用的专门配置的块,或可在预报实际高速缓存的行为的任何持续时间(例如,临时)内从现有块、逻辑、硬件、软件等重新目的化假想高速缓存。假想高速缓存在一些情况下可具有实际高速缓存的所有特征和能力,或在一些其它情况下,可具有足以进行预报但不足以实际高速缓存数据的较少功能性(例如,经配置为“高速缓存外壳”)。
确定至少如上所述假想高速缓存以及在一些情况下实际高速缓存的性能度量标准(例如,基于命中/未命中分布、高速缓存的地址的样本等)。可基于至少假想高速缓存的性能度量标准并且在一些情况下连同实际高速缓存的性能度量标准来预报实际高速缓存的行为。如所提到,在一些情况下,所述预报可基于实际高速缓存的性能度量标准与假想高速缓存的性能度量标准的比较。在一些情况下,假想高速缓存可模拟系统中另一高速缓存的行为,而非实际高速缓存的行为(例如,假想高速缓存可模拟第3层级(Level3,L3)高速缓存的行为,而在考虑之中的实际高速缓存可为第2层级(Level 2,L2)高速缓存),其中,可在其它计算中使用实际高速缓存和假想高速缓存的性能度量标准(例如,将性能度量标准的乘积与阈值进行比较)来预报实际高速缓存的行为。
应注意,在本发明中,在用于高速缓存指令或用于高速缓存数据的高速缓存之间不存在所绘制的区别。一般来说,使用术语“数据”涵盖高速缓存的上下文中的数据和指令两者。因此,即使所述说明可能集中于高速缓存数据,在示范性方面中,实际和假想高速缓存仍可能涉及高速缓存指令和/或数据。
在一些方面中,基于预报,可调整或修改例如实际高速缓存的大小等特性。在一些方面中,在例如数个处理器核心共享高速缓存的情况下,并非调整特定高速缓存的大小,而是可调整每处理器核心的高速缓存分配。举例来说,在一些处理系统设计中,例如中央处理单元(central processing unit,CPU)、图形处理单元(graphics processing unit,GPU)、视频编码器/解码器、相机图像处理器等数个不同处理器核心可共享高速缓存。高速缓存的子块(例如,高速缓存的部分或高速缓存的多个高速缓存线)可分配和/或指配给不同处理器核心中的每一者。在一个方面中,可使用预报以根据处理器核心的需求将高速缓存子块重新分配和/或重新映射到处理器核心。
出于说明的目的,假设CPU、GPU以及视频编码器/解码器共享512MB高速缓存。基于初始或原始设计考虑因素,512MB高速缓存的128MB可分配给CPU,128MB可分配给GPU,并且256MB可分配给视频编码器/解码器。基于示范性预报,这些分配可经修改,例如使得给GPU分配较高共享的高速缓存,并且给视频编码器/解码器分配较低共享的高速缓存。因此,在一个实例中,在进行重新分配时,可以给CPU分配128MB,可以给GPU分配256MB,并且可以给视频编码器/解码器分配128MB。
基于所述预报动态地修改实际高速缓存的特性也可涉及将在一个处理器核心或集群上运行的任务迁移到具有用于所述任务(即,软件过程)的更合适高速缓存大小的另一处理器核心或集群。举例来说,在具有包含较小处理器核心(例如,较小CPU)和较大处理器核心(例如,较大CPU)两者的异构处理器核心以及繁重任务工作负荷的系统中,CPU调度器(例如,软件)可基于所述预报(其中假设较大CPU与较小CPU相比具有较高处理容量)将任务从较小处理器核心或CPU迁移到较大处理器核心或CPU。
在此描述中,可使用所述预报,通过功率选通或断开高速缓存的对高速缓存性能具有最小影响的部分来动态地按比例缩放实际高速缓存的大小。在一个方面中,高速缓存具有两个或大于两个子块。在一些设计中,有可能出于功率节约而分别关闭每一子块。如果小尺寸的高速缓存对于特定任务来说足够了并且不会有损任务性能,那么所述方案动态地选通断开或关闭高速缓存的对于所述任务来说不必要的部分。
在将高速缓存地址存取模式纳入考虑中的情况下,可使用所述预报调整实际高速缓存的关联性。各种类型的高速缓存关联性在所属领域中是众所周知的。举例来说,直接映射、2路组关联、4路组关联、完全关联以及更多其它类型。在一或多个实施方案中,可使用任务的读取-写入模式来动态地(实时)选择并且检查最佳高速缓存关联性。
也可使用所述预报收集实际高速缓存的数据以用于离线分析,使得可剖析高速缓存性能。可使用任何已知数据收集技术实施数据收集。
图1是根据本文中描述的技术的实例实施方案的处理系统100。处理系统100包含一或多个处理器核心102、实际高速缓存104以及主存储器106。所说明的实际高速缓存104包含任选的实际高速缓存未命中计数器108。所说明的处理系统100包含假想高速缓存模拟模块110,其包含假想高速缓存111和假想高速缓存未命中计数器112。
所说明的处理系统100还包含比较模块114(示出为任选的)和优化模块116。高速缓存104包含标签RAM 118、高速缓存逻辑120以及数据RAM 122。可使用例如电线或总线(未示出)等允许在处理系统100中的组件之间交换信息的任何适合的互连机构使所述组件相互耦合。
虽然将实际高速缓存104描述为包含标签RAM 118,但实施方案不限于此。举例来说,实际高速缓存104可包含任何标签阵列、任何标签存储器或任何标签阵列存储器。同样地,虽然实际高速缓存104描述为包含数据RAM 122,但实施方案不限于此。举例来说,实际高速缓存104可包含任何数据阵列。
除非上下文另外规定,否则模块涉及如下组件:硬件、固件和/或与软件的组合(例如,计算机程序)。如本文所论述的计算机程序不必对应于文件系统中的文件。计算机程序可存储于文件的保存其它程序或数据(例如,存储于标记语言文档中的一或多个脚本)的部分中,存储于专用于所讨论的程序的单个文件中,或存储于多个协同文件(例如,存储一或多个模块、子程式或代码的部分的文件)中。计算机程序可部署为在一个处理器核心上或在位于一个集群中或分布在多个集群上的多个处理器核心上执行。
所说明的处理系统100可为集成电路,例如芯片上系统(SOC)或使用超大规模集成(Very Large Scale Integration,VLSI)实施的其它硬件装置。可形成例如平板计算机、智能电话或类似者的移动装置的部分。
在一或多个实施方案中,处理器核心102可包含单个集群的处理器核心或多个集群的处理器核心。在单个集群情境中,单个集群中的每一处理器核心可具有其自身的第1层级(L1)实际高速缓存并且与一或多个处理器核心共享L2实际高速缓存。处理器核心102中的一或多者可为一或多个通用微处理器、微控制器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、可编程逻辑装置(Programmable Logic Device,PLD)、控制器、状态机、门控逻辑、离散硬件组件,或可执行计算或信息的其它操控的任何其它合适的实体。处理器核心102可用于处理信息,并且可由专用逻辑电路补充,或并入于专用逻辑电路中。
实际高速缓存104可或可不存储特定高速缓存线。如果处理器核心102中的处理器核心所请求的高速缓存线处于实际高速缓存104中,那么认为发生高速缓存命中。然而,如果所请求的高速缓存线不处于实际高速缓存104中,那么认为发生高速缓存未命中并且请求处理器可向主存储器106存取所请求的数据。实际高速缓存104可为静态随机存取存储器(Static Random Access Memory,SRAM)、动态随机存取存储器(Dynamic Random AccessMemory,DRAM),或硬件中实施的其它适合的存储器。虽然示出一个实际高速缓存104,但是处理系统100中可存在多个实际高速缓存。
更详细地,实际高速缓存104包含标签RAM 118,其识别来自主存储器106的哪个数据目前存储于实际高速缓存104的每一高速缓存线中。存储于标签RAM 118中的值确定高速缓存查询是命中还是未命中。高速缓存逻辑120可为选择实际高速缓存104的关联性的逻辑。所述逻辑可为地址逻辑、缓冲器等。数据RAM 122存储用于实际高速缓存104的实际数据块或高速缓存线。
主存储器106也可为RAM,例如DRAM或SRAM。或者,主存储器106可为快闪存储器、只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read OnlyMemory,PROM)、可抹除可编程只读存储器(Erasable,EPROM Programmable Read OnlyMemory)、寄存器、硬盘、可装卸式磁盘、CD-ROM、DVD,或用于存储信息的任何其它合适的存储装置、计算机程序和/或将由处理器核心102执行的指令。存储器106可存储为用以实施本文中所描述的技术的一或多个计算机程序产生执行环境的代码。
所述指令可在一或多个计算机程序产品中并且根据所属领域的技术人员熟知的任何方法来实施,所述指令即在一或多个计算机可读媒体上经编码以供计算机系统100执行或用以控制计算机系统100的操作的计算机程序指令的一或多个模块。术语“计算机可读媒体”包含计算机存储媒体。举例来说,计算机存储媒体可包含(但不限于)磁性存储装置(例如,硬盘、软盘以及磁带)、光盘(例如,光盘(compact disk,CD)和数字通用光盘(digital versatile disk,DVD))、智能卡、快闪存储器装置(例如,随身盘、棒、钥匙形驱动器以及SD卡),以及易失性和非易失性存储器(例如,RAM、只读存储器(read-only memory,ROM))。
实际高速缓存未命中计数器108(以虚线示出以表示这是任选块)可在硬件或固件中实施,并且可为确定实际高速缓存104的性能度量标准的任何适合装置。在当预报实际高速缓存104的行为时也考虑实际高速缓存104的性能度量标准的情况下,使用实际高速缓存未命中计数器108,同时谨记在一些情况下,预报实际高速缓存104的行为可能仅基于假想高速缓存111的性能度量标准。实际高速缓存未命中计数器108可为能够对硬件相关事件(例如,高速缓存未命中和/或高速缓存命中)进行计数,以搜集实际高速缓存104的一或多个性能度量标准的任何适合的处理器核心计数器。实际高速缓存未命中计数器108还可对实际高速缓存104的高速缓存命中率和/或未命中率进行取样,以搜集实际高速缓存104的呈统计数据形式的一或多个性能度量标准。实际高速缓存104的性能度量标准可为实际高速缓存104的高速缓存未命中分布和/或实际高速缓存104地址的样本。
根据一或多个实施方案,假想高速缓存模拟模块110获取假想高速缓存111的高速缓存性能度量标准。举例来说,假想高速缓存模拟模块110监测假想高速缓存111的高速缓存命中率和/或未命中率。替代地,假想高速缓存模拟模块110可对假想高速缓存111的高速缓存命中率和/或未命中率进行取样。在此实施方案中,所得的性能度量标准可为统计数据。虽然展示一个假想高速缓存模拟模块110,但在处理系统100中可存在多个假想高速缓存模拟模块。
假想高速缓存未命中计数器112检测假想高速缓存111的性能。假想高速缓存未命中计数器112可为任何适合的处理器核心计数器或用于确定假想高速缓存111的性能的装置。举例来说,假想高速缓存未命中计数器112可能能够对硬件相关事件(例如,高速缓存未命中和/或高速缓存命中)进行计数,以搜集假想高速缓存111的一或多个性能度量标准。假想高速缓存未命中计数器112还可对假想高速缓存111的高速缓存命中率和/或未命中率进行取样,以搜集假想高速缓存111的呈统计数据形式的一或多个性能度量标准。假想高速缓存未命中计数器112可将假想高速缓存111的性能度量标准提供到假想高速缓存模拟模块110。如此,假想高速缓存111的性能度量标准可为假想高速缓存111的高速缓存未命中分布和/或假想高速缓存111地址的样本。在一些方面中,在考虑或者不考虑实际高速缓存104的性能度量标准的情况下,可使用假想高速缓存111的性能度量标准预报实际高速缓存104的行为。举例来说,假想高速缓存111可经配置于数个配置中,所述配置包含例如表示或模仿实际高速缓存104的第一配置,以及模仿高速缓存的行为的第二配置,具有被研究以确定如何比较实际高速缓存104的替代配置。在此类情况下,可在预报实际高速缓存104的行为时(例如,在各种配置之间)仅使用假想高速缓存111的性能度量标准。
在还使用实际高速缓存104的性能度量标准的情况下,任选的比较模块114比较假想高速缓存111的性能与实际高速缓存104的性能。所述性能比较可基于实际高速缓存104和假想高速缓存111的相应性能度量标准,例如,分别地,实际高速缓存104的高速缓存未命中分布和假想高速缓存111的高速缓存未命中分布。
优化模块116基于假想高速缓存111的性能度量标准或(如以虚线示出)基于来自比较模块114的比较结果,提供对实际高速缓存104的行为的预报。在一些情况下,优化模块116可使用所述预报建议动态地修改实际高速缓存104特性可采取的特定动作,以便改进实际高速缓存104的性能度量标准。此类动作可能为了调整实际高速缓存104的高速缓存大小分配而将在第一处理器集群上运行的任务迁移到第二处理器集群,动态地按比例缩放实际高速缓存104的大小,调整实际高速缓存104的关联性。在一些情况下,所述预报可用于收集实际高速缓存104的数据以用于离线分析。在一个方面中,可使用硬件与固件的组合、操作系统(operating system,OS)层级软件调度器和/或硬件、固件以及软件工具的组合实施优化模块116。
在一些情况下,上文所描述的实际高速缓存104和一或多个处理器核心102可属于第一处理器集群,而第二处理器集群可能不处于使用中,或者可为轻负载的。在一个实施方案中,第二处理器集群中的空闲高速缓存可用作第一处理器集群的假想高速缓存111。
图2是根据本文中描述的技术的实例实施方案的处理系统200,其中使用另一处理器集群中的空闲高速缓存实施假想高速缓存。在图2中所说明的实施方案中,对第二处理器集群中处于断开模式的高速缓存进行寻址,与作用中的第一处理器集群共享空闲高速缓存。第二处理器集群既不使用其自身的数据RAM也不在空闲时存取所述主存储器。然而,作用中的第一处理器集群使用其标签数据RAM和高速缓存逻辑。
所说明的处理系统200包含实际高速缓存104和主存储器106,以及先前描述的假想高速缓存模拟模块110。使用假想高速缓存226实施假想高速缓存111,将在以下章节中进行详细解释。如先前所述,假想高速缓存未命中计数器112可用以检测假想高速缓存111的性能。在此情况下,在假想高速缓存111实施为假想高速缓存226的情况下,假想高速缓存226可有可能具有另一高速缓存未命中计数器(未示出),在此情况下,可使用假想高速缓存226的高速缓存未命中计数器,而无需假想高速缓存模拟模块110另外具有单独的假想高速缓存未命中计数器112。
所说明的处理系统200还包含第一处理器集群202,其包含如所说明互连的处理器核心204、处理器核心206、处理器核心208以及处理器核心210。所说明的处理系统200还包含第二处理器集群216,其包含如所说明互连的处理器核心218、处理器核心220、处理器核心222、处理器核心224以及假想高速缓存226。假想高速缓存226还包含标签RAM和逻辑模块230以及数据RAM 232。处理系统200还包含高速缓存一致性互连件234和存储器控制器236。
高速缓存一致性互连件234用于维持处理系统200中的高速缓存一致性。存储器控制器236用于控制对主存储器106的存取。
在一个实例中,第一处理器集群202中可使用实际高速缓存104(例如,用于考虑中的特定任务)的一或多个处理器核心204、206、208和210相对于第二处理器集群216的一或多个处理器核心218、220、222和224可为较小的。如所说明,实际高速缓存104和假想高速缓存226是L2高速缓存。也如所说明,实际高速缓存104是相对于大假想高速缓存226的小高速缓存。也如所说明,第二处理器集群216中的一或多个处理器核心218到222(或在一实例中,处理器核心218、220、222和224中的每一者)是空闲的或关断/断电,这指示第二处理器集群216,并且具体来说,假想高速缓存226,是空闲的。然而,大假想高速缓存226的标签RAM和逻辑模块230处于作用中。
一般来说,为了节省处理系统200中的功率,较好的做法可为在处理器集群202中使用较小处理器核心204到210。然而,如下文所描述,在一些情况下,可将一或多个任务迁移到第二处理器集群216的较大处理器核心218到224。
处理系统200在由实际高速缓存104执行的高速缓存是由假想高速缓存226执行的情况下,利用实际高速缓存104确定假想高速缓存226可能如何执行。举例来说,为了在此情境下实施假想高速缓存226,与实际高速缓存104共享假想高速缓存226中的标签RAM和逻辑模块230。假想高速缓存226不使用其数据RAM 232。没有数据存储于假想高速缓存226中,且假想高速缓存226不存取主存储器106。
实际高速缓存104中的地址可经取样并且提供到假想高速缓存226,以搜集命中或未命中。优化模块(例如,图1的优化模块116)可基于命中/未命中使用假想高速缓存226的性能预报实际高速缓存104的行为。替代地,比较模块(例如,图1的任选的比较模块114)可将实际高速缓存104与假想高速缓存226的性能度量标准(即,命中和/或未命中)的比较提供到优化模块,所述优化模块可基于所述比较预报实际高速缓存104的行为。在一些情况下,预报实际高速缓存104的行为可涉及预测将在第一处理器集群202上运行的一或多个任务迁移到第二处理器集群216可能是更好的。
因此,在计算系统200的实例实施方案中,可使用第二处理器集群216的假想高速缓存226实施假想高速缓存111,并且使用性能指示,可将任务从第一处理器集群202转移到第二处理器集群216。将理解,对两个处理器集群之间的处理器核心的相对大小的参考(即,第一处理器集群202的处理器核心204到210小于第二处理器集群216的处理器核心218到224)仅是出于说明目的,并且不是对上述方面的要求。因此,使用空闲或较不忙碌处理器集群的高速缓存作为不同处理器集群的假想高速缓存以及基于性能度量标准在处理器集群之间转移任务的方面可适用于处理器集群之间的任何相对处理器核心大小。
在一些其它实施方案中,可使用具有确定命中或未命中的简化逻辑的高速缓存外壳实施假想高速缓存111,而无需实施完整的高速缓存结构。举例来说,高速缓存外壳可仅包含标签逻辑但无数据(例如,无数据RAM)。
图3是根据本文中描述的技术的实例实施方案的处理系统300,其中假想高速缓存实施为高速缓存外壳。处理系统300类似于处理系统200,其中的一个差别是,不是像在处理系统200中那样利用处理系统中的现有硬件,处理系统300包含出于实施假想高速缓存的目的形成的指定硬件块。
在图3中所说明的的实施方案中,假想高速缓存模拟模块使用实施为高速缓存外壳的假想高速缓存,其不包含数据,但具有例如标签阵列或标签RAM等用于确定特定地址是否命中或未命中的机构。因此,举例来说,高速缓存外壳不包含数据RAM。然而,举例来说,高速缓存外壳包含例如标签RAM等标签结构以及相关逻辑,以提供例如未命中/命中分布等性能度量标准以及有关高速缓存大小和高速缓存关联性的信息。
在此实施方案中,实际高速缓存是功能完整的高速缓存并且包含数据RAM以及对主存储器的存取。假想高速缓存不用于实际高速缓存。如此,假想高速缓存实施为高速缓存外壳并且不包含数据RAM或到主存储器的路径。假想高速缓存用于预报实际高速缓存的行为。
所说明的处理系统300包含实际高速缓存104、任选的实际高速缓存未命中计数器108、标签RAM 118、高速缓存逻辑120以及数据RAM 122。处理系统300还包含假想高速缓存模拟模块110、假想高速缓存111以及假想高速缓存未命中计数器112。如下文将详细地描述,使用假想高速缓存306实施假想高速缓存111,其中假想高速缓存306包含高速缓存外壳。实际高速缓存104还包含比较器302和304,其指示在实际高速缓存104中是否存在针对特定地址的高速缓存命中或高速缓存未命中。当需要实际高速缓存104的性能度量标准时,实际高速缓存未命中计数器108对高速缓存未命中的数目进行计数。标签RAM 118、高速缓存逻辑120以及数据RAM 122执行先前描述的功能。
先前提及的假想高速缓存306包含标签RAM 308。比较器310和312指示在假想高速缓存306中是否存在高速缓存命中或高速缓存未命中。命中/未命中指示可转发到假想高速缓存未命中计数器112(如以虚线示出)以对假想高速缓存306的高速缓存未命中的数目进行计数。在替代方面中,假想高速缓存306也可使用单独的计数器(未示出)对假想高速缓存的高速缓存未命中的数目进行计数。
假想高速缓存306不具有数据RAM,并且因此被视为高速缓存外壳。更详细地,虽然所说明的实际高速缓存104是功能完整的高速缓存并且包含数据RAM 122和到主存储器106(在图1中示出)的路径,但假想高速缓存306不用于实际高速缓存。如此,假想高速缓存306不包含数据RAM或到主存储器的路径。假想高速缓存306用于提供例如命中/未命中分布等性能度量标准,基于所述性能度量标准,可预报(例如,由图1的优化模块116)实际高速缓存104的行为。如前文所述,可使用例如硬件和固件的组合基于命中/未命中分布来配置假想高速缓存306的大小和关联性。
举例来说,可将假想高速缓存306的大小实时地编程为32字节、64字节、128字节、512字节等。也可将假想高速缓存306的关联性实时地编程为例如直接映射、n路关联或完全关联。在直接映射中,主存储器106的每一地址可仅存储于假想高速缓存306中特定高速缓存线中。在完全关联映射中,代替像针对直接映射的情况那样将特定主存储器106地址硬分配到高速缓存线,主存储器106的地址可存储于假想高速缓存306的任何高速缓存线中。在n路关联中,n是数字,通常为2、4、8等,假想高速缓存306分解成组,其中每一组含有n个高速缓存线。主存储器106中的每一地址被指派一组,并且可高速缓存于其经指派组内的那些n个位置中的任一者中。
假想高速缓存的另一实施方案使用经修改的转译后备缓冲器(translationlook-aside buffer,TLB)。在已经存在TLB的系统中,此实施方案在利用现有硬件TLB上类似于处理系统200。
举例来说,TLB存储虚拟存储器到主存储器106的物理存储器的转译或映射。如所属领域中的技术人员所理解,一些系统使用虚拟存储器克服物理存储器的缺点。举例来说,在使用虚拟存储器的情况下,处理器核心规定用于存储器存取的虚拟地址(也被称作“逻辑地址”),且虚拟地址需要在可用以存取主存储器106之前转换成物理地址。TLB高速缓存用于一些虚拟地址(例如最近使用的虚拟地址)的物理地址。使用处理器核心所请求的虚拟地址搜索TLB。如果处理器核心所请求的虚拟地址存在于TLB中,那么这是TLB命中并且从TLB快速获得物理地址转译。但如果虚拟地址不在TLB中,那么这是TLB未命中,并且所述转译过程可涉及在称为页查询的过程中查找存储器的页表。页查询是消耗时间的过程,且因此在存在TLB命中的情况下,TLB提供显著时间个性能优点。
在一或多个示范性方面中,TLB经修改以记录TLB命中发生的时间戳,以及对应的页数。还用计算正被一或多个处理器核心主动地存取的存储器大小的逻辑修改TLB。计算出的存储器大小可用作在预定时间间隔内用于减少高速缓存未命中的最差(上限)高速缓存大小的提示。
图4是根据本文中描述的技术的实例实施方案的处理系统400,其中在包括用以存储虚拟地址到物理地址的转译的一或多个条目的TLB中实施假想高速缓存模拟模块,并且另外包含与每一条目相关联的时间戳。时间戳指示条目的TLB命中发生的时间。参考图5描述处理系统400的操作,图5是说明根据本文中描述的技术的实例实施方案的处理系统400的操作的方法500的流程图。
处理系统400包含实际高速缓存104、任选的实际高速缓存未命中计数器108、标签RAM 118、高速缓存逻辑120以及数据RAM 122。处理系统400还包含假想高速缓存模拟模块110、假想高速缓存111以及假想高速缓存未命中计数器112。
处理系统400还包含处理器核心402、虚拟地址404、TLB 406、页表408、物理地址410以及物理存储器412(其在一些情况下可为图1中描绘的主存储器106)。处理系统400还包含与TLB 406相关联的存取时间戳寄存器414以及与页表408相关联的存取时间戳寄存器416。存取时间戳寄存器414在TLB 406中添加用于每一条目的额外字段。存取时间戳寄存器416可在页表408中添加用于每一条目的额外字段。虚拟地址404包含虚拟页码p和偏移d,物理地址410包含物理页码f和偏移d。
在一个实施方案中,处理器核心402使用从虚拟地址404得出的虚拟页码p存取TLB406。如果存在TLB 406命中,那么获得相关联虚拟地址404的物理地址410,并且使用所述物理地址410存取物理存储器412。存取时间戳寄存器414存储与每一TLB 406命中相关联的时间戳。
如果存在未命中,那么虚拟地址404中的虚拟页码p可用以存取页表408,以获得存取物理存储器412的对应物理地址。存取时间戳寄存器416存储与每一TLB未命中相关联的时间戳。
因此,在处理系统400中,假想高速缓存即假想高速缓存111以转译后备缓冲器(translation look-aside buffer,TLB)406和页表408予以实施,所述转译后备缓冲器406具有指示存取TLB中的页命中的时间的对应时戳,所述页表408具有指示存取TLB中的页未命中的时间的对应时间戳。可设置特定时间点以滤除在所述时间点之前存取的页,以便显露在所述时间点之后存取的作用中的页。这提供对作用中的页的数目的指示。
组合参考图4到5,方法500的框502(图5)对TLB 406中具有大于预配置或预编程时间点(例如,第一时间点)的时间戳的页的数目进行计数。类似地,在一些方面中,方法500还可对页表408中具有大于例如第二时间点的时间戳的页的数目进行计数。所述第一时间点和第二时间点在一些实例中可为相同的,并且可为针对特定任务可编程或用户可配置的。使用所述时间点从所述计数中滤除相对较早页并且仅对较近或作用中页进行计数。
举例来说,在TLB 406中可存在在一段时间内未被存取的页。存取时间戳寄存器414(以及在存在TLB未命中的情况下,时间戳寄存器416)使确定针对特定任务页的的当前工作集成为可能。存取时间戳寄存器414和416显露页被存取时间,可通过从中滤除比所述时间点早的页来获得作用中页的数目的计数。举例来说,配置于假想高速缓存模拟模块110(未明确地示出)内的任何适合逻辑可经配置以滤除具有比预定时间点早的时间戳的页,以便为例如特定任务提供正在使用的多个作用中页。
方法500的框504使TLB 406的页大小与正在用于特定任务的作用中页的数目相乘,以获得被主动地存取的存储器大小或任务的存储器要求。可使用存储器412架构和操作系统(operating system,OS)软件确定页大小。在一个方面中,可使用乘法器(未示出)实施页大小与作用中页的数目的相乘,所述乘法器也可在假想高速缓存模拟模块110内实施。
方法500的框506基于任务的存储器要求确定高速缓存大小的上限,以便预报会减少高速缓存未命中的高速缓存大小。举例来说,优化块(例如图1的优化块116)可与处理系统400的假想高速缓存模拟模块110通信并且在框506中经适合地配置以基于存储器要求预报实际高速缓存104的行为。优化模块可因此经配置以基于存储器要求预报实际高速缓存104的大小的上限。举例来说,优化块可预报,当前工作负荷或任务可能需要高达512MB的数据作为上限存储于实际高速缓存104中,以处置当前工作负荷或任务。因此,可基于此预报的上限动态地修改高速缓存大小。
在一个方面中,可使用硬件逻辑实施框506。在硬件层级实施框506可减少软件层级的开销。在硬件层级实施框506还可达成针对TLB 406的高速响应。替代地,可使用软件(例如固件或操作系统(OS))实施框506。在软件层级实施框506可减少硬件成本并且当在TLB 406中实施时增强假想高速缓存模拟模块的灵活性和/或重新可编程性。
在一或多个实施方案中,假想高速缓存模拟模块使用第3层级(L3)高速缓存实施假想高速缓存111,以提供预报增加第2层级(L2)高速缓存的大小的益处。举例来说,所述预报可用以确定从小的第2层级(L2)高速缓存移动到较大的L2高速缓存是否会是有利的。在假设实例L3高速缓存大于实例L2高速缓存的情况下,提供以下解释,其中基于较大L3高速缓存(实施为假想高速缓存)的命中/未命中率,预报增加L2高速缓存的大小是否会是有利的。
考虑未命中率,如果L3高速缓存的未命中率针对在处理器核心上运行的特定任务为高(例如,是L3高速缓存存取未命中的约80%到95%),那么这可指示移动到较大L2高速缓存不是有利的,这是因为较大L2高速缓存还将经历与高L3高速缓存未命中率类似的高未命中率。反之,当从命中率的角度观察时,如果L3高速缓存命中率针对所述任务为低(例如,是L3高速缓存中的L3高速缓存存取命中的仅约5%到20%),那么使用较大L2高速缓存类似地不是有利的,这是因为较大L2高速缓存还可能经历与L3高速缓存命中率类似地为低的命中率。然而,如果L3高速缓存命中率为高(这也是对L3高速缓存未命中率低的可能指示),那么此情境提供对较大L2高速缓存会是有利的充分指示。
可在数学方程式或L3高速缓存命中率与L2高速缓存未命中率的乘积方面表达以上考虑因素。一般来说,在L2高速缓存经历高未命中率而L3高速缓存经历高命中率的情况下,增加L2高速缓存的大小会是有利的。因此,为了确定或预测增加L2高速缓存的大小是否会是有利的,考虑乘积(L3高速缓存命中率)*(L2高速缓存未命中率),并且将其与例如阈值进行比较。如果所述乘积大于所述阈值,那么可预报增加L2高速缓存的大小会是有利的,基于此,可作出增加L2高速缓存的大小的决策。如果所述乘积小于所述阈值(这将意指L2高速缓存命中率不高且/或L2高速缓存未命中率不高),那么可预报增加L2高速缓存的大小可能不会产生L2高速缓存的较低未命中率,基于此,可作出保持L2高速缓存的大小的决策。
图6是根据本文中描述的技术的实例实施方案的处理系统600,其中使用L2高速缓存和实施为L3高速缓存的假想高速缓存来实施假想高速缓存模拟模块。图7是说明根据本文中描述的技术的实例实施方案的处理系统600的操作的方法700的流程图。
处理系统600包含处理器602、L2实际高速缓存604(类似于图1的实际高速缓存104)以及假想高速缓存模拟模块110。假想高速缓存模拟模块110包含假想高速缓存111,其实施为L3高速缓存605。如所描绘,L3高速缓存605在存储器阶层中存在于L2实际高速缓存604与主存储器606之间。因此,处理器602可针对存储器存取请求存取L2实际高速缓存604。如果在L2实际高速缓存604中存在针对特定请求的未命中,那么检查L3高速缓存605。如果在L3高速缓存605中也存在未命中,那么针对存储器存取请求存取主存储器606(谨记在存储器阶层中可存在其它层级/高速缓存,为清楚起见在此论述中将其省略)。在以下章节中,描述用于基于L2实际高速缓存604的未命中率和L3高速缓存605的命中率确定是否增加L2实际高速缓存604的大小的方法700。
更详细地,L2实际高速缓存604、L2高速缓存未命中计数器608、标签RAM 610、高速缓存逻辑612以及数据RAM 614。实施假想高速缓存111的L3高速缓存605包含L3高速缓存命中计数器609、标签RAM 616、高速缓存逻辑618以及数据RAM 620。L3高速缓存命中计数器609用以对L3高速缓存605的高速缓存命中的数目进行计数。在一些情况下,并非包含用于实施L3高速缓存命中计数器609的逻辑的额外计数器,而是假想高速缓存模拟模块110的假想高速缓存未命中计数器112可经配置以对高速缓存命中的数目(而非L3高速缓存605的高速缓存未命中的数目)进行计数。
处理系统600如下操作。在框702中,假想高速缓存命中计数器614对L3高速缓存605的高速缓存命中进行计数并且将高速缓存命中的计数提供到假想高速缓存模拟模块110。L2高速缓存未命中计数器608对L2实际高速缓存604的高速缓存未命中进行计数并且将高速缓存未命中的计数提供到假想高速缓存模拟模块110。
在框703中,假想高速缓存模拟模块110通过比较L3高速缓存605的高速缓存命中的数目与L3高速缓存605的高速缓存查找的数目来确定L3实际高速缓存605的L3高速缓存命中率。假想高速缓存模拟模块110还通过比较L2实际高速缓存604的高速缓存未命中的数目与L2实际高速缓存604的高速缓存查找的数目来确定L2实际高速缓存604的L2高速缓存未命中率。
在框704中,乘法器(未示出)或其它硬件/软件确定L3高速缓存命中率(针对L3实际高速缓存605)与L2高速缓存未命中率(针对L2实际高速缓存604)的乘积。
在框706中,比较模块624确定L3高速缓存命中率与L2高速缓存未命中率的乘积是否大于预定阈值。可确定特定任务或程序的阈值。应注意,在所示出的特定实施方案中,比较模块624可不同于先前描述的比较模块114,因为比较模块624可能不必比较实际高速缓存(L2实际高速缓存604)的性能度量标准与假想高速缓存(L3高速缓存605)的性能度量标准,而是比较L3高速缓存命中率和L2高速缓存未命中率的乘积与预定阈值。然而,即使在此情况下,所述预报(例如,关于L2高速缓存的高速缓存大小)仍是基于实际高速缓存的性能度量标准和假想高速缓存的性能度量标准。
举例来说,优化模块626接着能够基于所预报的行为使用所述比较的结果建议动作。举例来说,优化模块626经配置以基于所预报的行为,在实际高速缓存(L2实际高速缓存604)的未命中率与假想高速缓存(L3高速缓存605)的命中率的乘积大于预定阈值的情况下,建议增加实际高速缓存的大小的动作,但除此情况以外不建议此动作。
举例来说,在框708中,如果L3高速缓存命中率与L2高速缓存未命中率的乘积大于阈值,那么优化模块626预报较大L2实际高速缓存604可能具有较低未命中率,这可用以形成增加L2实际高速缓存604的大小的决策。基于所述预报,可采取为L2实际高速缓存604分配更大空间(或为当前任务分配L2实际高速缓存604的更大空间)或将当前任务迁移到具有较大L2高速缓存的处理器集群的动作。
在框710中,如果L3高速缓存命中率与L2高速缓存未命中率的乘积小于阈值,那么优化模块626预报较大L2实际高速缓存604将不减少L2实际高速缓存604的未命中率,基于此,可形成保持L2实际高速缓存604的当前大小和/或不采取关于L2实际高速缓存604的大小的进一步动作的决策。虽然图7中不描绘L3高速缓存命中率与L2高速缓存未命中率的乘积恰好等于阈值的情况,但此情况可根据特定实施方案转到框708或框710。出于完整性起见,在一个实施方案中,如果L3高速缓存命中率与L2高速缓存未命中率的乘积恰好等于阈值,那么方法700将前进到框710,其中可基于较大L2实际高速缓存604将不减少L2实际高速缓存604的未命中率的预报,确定关于L2实际高速缓存604的大小的进一步动作是不必要的。
图8是说明根据本文中描述的技术在处理系统中使用假想高速缓存预报实际高速缓存的高速缓存行为的方法800的流程图。
在框802中,方法800包含使用假想高速缓存模拟高速缓存行为。在一或多个实施方案中,如上文所描述,假想高速缓存111从空闲高速缓存、独立块、高速缓存外壳、TLB以及具有时间戳的页表经配置为L3高速缓存等,以模拟各种高速缓存行为和配置。举例来说,可使用如处理系统200中所示的空闲高速缓存实施假想高速缓存111。空闲高速缓存可处于例如不同于实际高速缓存所在的第一处理器集群202的第二处理器集群216的处理器集群中。可使用如处理系统300中所示的高速缓存外壳实施假想高速缓存111,其中假想高速缓存306具有标签RAM 308但不具有数据RAM。可使用如处理系统400中所示的TLB实施假想高速缓存111,其中TLB 402和页表404经修改以包含每一条目的时间戳。可使用如处理系统600中所示的L3高速缓存实施假想高速缓存111,其中性能度量标准涉及L2实际高速缓存604未命中率和L3高速缓存605命中率。
在框804中,方法800获得假想高速缓存的高速缓存性能度量标准。在任选的方面中,也可获得实际高速缓存的性能度量标准。假想高速缓存111和实际高速缓存104的高速缓存性能度量标准可为(例如)对应地未命中的数目、命中的数目、未命中率、命中分布、未命中分布、地址的统计样本和/或命中率。可例如通过假想高速缓存未命中计数器112和任选的实际高速缓存未命中计数器108获得这些相应性能度量标准。
在框806中,方法800至少基于假想高速缓存的性能度量标准,预报实际高速缓存的行为。在一或多个实施方案中,例如比较实际高速缓存104的性能度量标准与假想高速缓存111的高速缓存性能度量标准的比较模块114也可考虑实际高速缓存的性能度量标准,并且将所述比较反馈给优化模块116。在一些实施方案中,比较模块624比较L2实际高速缓存604未命中率和L3高速缓存605命中率的乘积与预定阈值。优化模块116/626将这些比较/性能度量标准纳入到考虑中以预报实际高速缓存行为。
以下方法步骤是任选的并且可为处理系统依据框806中的预报可采取的动作。因此,以虚线示出所述框808到816。
在任选框808中,方法800基于实际高速缓存的高速缓存性能度量标准与假想高速缓存的高速缓存性能度量标准的比较结果,调整高速缓存大小分配。在一或多个实施方案中,可根据处理器核心的需求将高速缓存子块重新分配和/或重新映射到不同处理器核心。
在任选框810中,方法800将在第一处理器集群上运行的任务迁移到另一处理器集群。在一个方面中,在第一处理器集群202上运行的任务可迁移到第二处理器集群216。
在任选框812中,方法800动态地按比例调整实际高速缓存的大小。在一个方面中,可动态地按比例调整实际高速缓存104的大小。
在任选框814中,方法800动态地修改实际高速缓存的关联性。在一个方面中,可动态地修改实际高速缓存104的关联性。
在任选框816中,方法800收集实际高速缓存的数据以用于离线分析。可使用任何适合的常规技术执行数据收集。
应注意,可使用假想高速缓存模拟模块110通过对来自一或多个处理器核心102的事务进行取样以减少处理系统100、200、300、400和600的功率消耗。取样涉及选择模拟高速缓存行为的事务的子集。以此方式的取样可允许较简单事务处理以及较轻假想高速缓存111工作负荷。
另外,使用对假想高速缓存模拟模块110进行取样可能够在与处理系统100、200、300、400和600中的一些其它组件相比较低的时钟频率和电压下运行。这是因为当使用取样仅选择事务的子集时,不必将来自一或多个处理器核心102的所有事务都发送到假想高速缓存模拟模块110。可基于处理系统100的设计目标确定来自处理器核心102的被取样的事务的数目。
作为实例,假想高速缓存模拟模块110可基于特定取样率对来自一或多个处理器核心102的事务进行取样。在一个实施方案中,可通过以取样率设置寄存器来配置取样率。在另一实施方案中,可基于假想高速缓存111的时钟频率自动调整取样率。在又一实施方案中,可使用可由寄存器配置的取样率与可基于假想高速缓存111的时钟频率自动调整的取样率的组合来执行对来自一或多个处理器核心102的事务的取样。仍替代地,可使用经配置以选择固定率、随机率或伪随机率的可选择取样率算法执行对来自一或多个处理器核心102的事务的取样。
作为另一实例,假想高速缓存模拟模块110可以特定时间间隔对来自一或多个处理器核心102的事务进行取样。例如,假想高速缓存模拟模块110可以基于随机序列而不同的时间间隔对来自一或多个处理器核心102的事务进行取样。替代地,假想高速缓存模拟模块110可基于伪随机序列对来自一或多个处理器核心102的事务进行取样。仍替代地,假想高速缓存模拟模块110可基于固定的、规律的和/或周期性的时间间隔对来自一或多个处理器核心102的事务进行取样。在一个实施方案中,假想高速缓存模拟模块110可例如以针对来自一或多个处理器核心102的每第十个事务或来自一或多个处理器核心102的每第五个事务而非针对来自一或多个处理器核心102的所有事务的方式,对来自一或多个处理器核心102的事务的百分比进行取样。
在一个实施方案中,取样时间间隔可基于随机序列、伪随机序列或规律的时间间隔经配置。在其它实施方案中,取样时间间隔可基于取样算法进行选择或可基于假想高速缓存的时钟频率进行调整。举例来说,假想高速缓存模拟模块110可以基于时钟循环计时器的规律时间间隔对来自一或多个处理器核心102的事务进行取样。在此实例中,可以并非每第N个存取事务而是每第C个时钟循环的方式对地址进行取样。当然,可存在除每第N个存取事务或每第C个时钟循环以外的多种取样算法。基于本文中的说明,本领域的普通技术人员将能够基于所要的准确度实施其它取样算法。
依时间间隔的取样具有避免假想高速缓存模拟模块110的模式模式中的取样谐波的优点。举例来说,如果在处理器102上执行的程序的每第十个存取发生在同一地址,那么总是对每第十个地址取样可能造成极易引起误解的的高速缓存性能度量标准。
图9说明示范性无线通信系统900,其中可有利地采用例如包括假想高速缓存模拟模块110的处理系统100的示范性处理系统。出于说明的目的,图9示出三个远程单元920、930和950以及两个基站940。在图9中,远程单元920示出为移动电话,远程单元930示出为便携式计算机,且远程单元950示出为无线本地环路系统中的固定位置远程单元。举例来说,所述远程单元可以是移动电话、手持式个人通信系统(PCS)单元、例如个人数据助理的便携式数据单元、具GPS功能的装置、导航装置、机顶盒、音乐播放器、视频播放器、娱乐单元、例如仪表读取设备的固定位置数据单元,或任何其它存储或检索数据或计算机指令的装置,或其任何组合。举例来说,如本文中所揭示,远程单元920、930或950中的任一者可包含处理系统100。
虽然图9说明根据本发明的教示的远程单元,但本发明不限于说明的这些示范性单元。本发明的方面可适当地用于包含有源集成电路的任何装置中,所述有源集成电路包含存储器和用于测试及表征的芯片上电路。
所属领域的技术人员应了解,可以使用多种不同科技和技术中的任一者来表示信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能提及的数据、指令、命令、信息、信号、位、符号和码片。
另外,所属领域的技术人员将了解,结合本文所揭示的方面而描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件或两者的组合。为清晰地说明硬件与软件的此可互换性,以上已大体就其功能性描述了各种说明性组件、块、模块、电路和步骤。此功能性是实施为硬件还是软件取决于特定应用和施加于整个系统的设计约束。熟练的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但这样的实施决策不应被解释为会引起脱离本发明的范围。
结合本文中所揭示的方面描述的方法、序列和/或算法可以直接用硬件、用由处理器执行的软件模块或用这两者的组合来实施。软件模块可驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸磁盘、CD-ROM,或所属领域中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息并且将信息写入到存储媒体。在替代方案中,存储媒体可集成到处理器。
因此,本发明的方面可包含体现在处理器中实施除法或根计算以及快速结果格式化的方法的计算机可读媒体。因此,本发明不限于所说明的实例,且任何用于执行本文中所描述的功能性的装置包含于本发明的方面中。
虽然前述揭示内容展示本发明的说明性方面,但应注意,在不脱离如所附权利要求书界定的本发明的范围的情况下,可在其中做出各种改变和修改。无需以任何特定次序来执行根据本文中所述的本发明的方面的方法权利要求的功能、步骤和/或动作。此外,虽然可能以单数形式描述或主张本发明的元件,但除非明确陈述限于单数形式,否则也涵盖复数形式。

Claims (30)

1.一种处理系统,其包括:
处理器核心;
所述处理器核心的实际高速缓存;
假想高速缓存,其用以模拟高速缓存行为;和
优化模块,其用以至少基于所述假想高速缓存的性能度量标准预报所述实际高速缓存的行为。
2.根据权利要求1所述的处理系统,其中所述实际高速缓存的所预报的行为包括基于所述实际高速缓存的特性的一或多个修改对所述实际高速缓存的性能度量标准的预测。
3.根据权利要求1所述的处理系统,其中所述优化模块进一步经配置以基于所述所预报的行为,建议如下一或多个动作:
动态地修改所述实际高速缓存的大小;
动态地修改所述实际高速缓存到所述处理器核心的分配;
将在所述处理器核心上运行的任务迁移到另一处理器核心;
动态地修改所述实际高速缓存的关联性;或
收集所述实际高速缓存的数据。
4.根据权利要求1所述的处理系统,其进一步经配置以执行所述优化模块建议的一或多个动作。
5.根据权利要求1所述的处理系统,其包括:
实际高速缓存未命中计数器,其用以提供所述实际高速缓存的性能度量标准;和
假想高速缓存未命中计数器,其用以提供所述假想高速缓存的性能度量标准。
6.根据权利要求5所述的处理系统,其进一步包括:
比较模块,其用以比较所述实际高速缓存的性能度量标准与所述假想高速缓存的性能度量标准,其中所述优化模块进一步经配置以基于所述比较,预报所述实际高速缓存的行为。
7.根据权利要求1所述的处理系统,其中
所述实际高速缓存和所述处理器核心属于第一处理器集群,且所述假想高速缓存是第二处理器集群的空闲高速缓存。
8.根据权利要求7所述的处理系统,其中所述第二处理器集群包括空闲或断电的一或多个处理核心。
9.根据权利要求8所述的处理系统,其经配置以基于所述实际高速缓存的所述所预报的行为,将在所述第一处理器集群的所述处理器核心上运行的任务迁移到所述第二处理器集群。
10.根据权利要求1所述的处理系统,其中所述假想高速缓存是高速缓存外壳,其中所述高速缓存外壳包括标签结构和逻辑以提供所述假想高速缓存的性能度量标准,且其中所述高速缓存外壳不包括数据。
11.根据权利要求10所述的处理系统,其中所述假想高速缓存包括:
转译后备缓冲器TLB和对应的时间戳,其用以指示针对任务存取所述TLB中的页命中的时间;和
页表和对应的时间戳,其用以指示针对所述任务存取所述TLB中的页未命中的时间。
12.根据权利要求11所述的处理系统,其包括逻辑,所述逻辑用以滤除具有比预定时间点早的时间戳的页以提供用于所述任务的作用中页的数目。
13.根据权利要求12所述的处理系统,其进一步包括乘法器,所述乘法器用以使所述作用中页的数目与每一页的页大小相乘以确定所述任务的存储器要求。
14.根据权利要求13所述的处理系统,其中所述优化模块进一步经配置以基于所述存储器要求,预报所述实际高速缓存的大小的上限。
15.根据权利要求1所述的处理系统,其中所述实际高速缓存是所述处理器核心的第2层级L2高速缓存,且所述假想高速缓存被配置成所述处理器核心的第3层级L3高速缓存。
16.根据权利要求15所述的处理系统,其中所述优化模块经配置以基于所述所预报的行为,在所述实际高速缓存的未命中率与所述假想高速缓存的命中率的乘积大于预定阈值的情况下,建议增加所述实际高速缓存的所述大小的动作。
17.根据权利要求16所述的处理系统,其进一步包括假想高速缓存模拟模块,所述假想高速缓存模拟模块经配置以依取样时间间隔对来自所述处理器核心的事务进行取样,所述取样时间间隔基于取样算法从随机序列、伪随机序列或规律的时间间隔中选择,或可基于所述假想高速缓存的时钟频率进行调整。
18.一种预报处理器核心的实际高速缓存的行为的方法,所述方法包括:
用假想高速缓存模拟高速缓存行为;
确定所述假想高速缓存的性能度量标准;和
至少基于所述假想高速缓存的所述性能度量标准,预报所述实际高速缓存的行为。
19.根据权利要求18所述的方法,其进一步包括基于预报所述实际高速缓存的行为,建议一或多个动作,所述一或多个动作包括:
动态地修改所述实际高速缓存的大小;
动态地修改所述实际高速缓存到所述处理器核心的分配;
将在所述处理器核心上运行的任务迁移到另一处理器核心;
动态地修改所述实际高速缓存的关联性;或
收集所述实际高速缓存的数据。
20.根据权利要求18所述的方法,其进一步包括:
确定所述实际高速缓存的性能度量标准。
21.根据权利要求20所述的方法,其进一步包括:
基于所述实际高速缓存的所述性能度量标准与所述假想高速缓存的性能度量标准的比较,预报所述实际高速缓存的行为。
22.根据权利要求18所述的方法,其包括将空闲高速缓存配置为所述假想高速缓存,其中所述实际高速缓存和所述处理器核心属于第一处理器集群,且所述空闲高速缓存属于第二处理器集群。
23.根据权利要求22所述的方法,其进一步包括基于所述实际高速缓存的所述所预报的行为,将在所述第一处理器集群的所述处理器核心上运行的任务迁移到所述第二处理器集群。
24.根据权利要求18所述的方法,其包括将所述假想高速缓存配置为高速缓存外壳,其中所述高速缓存外壳包括标签结构和逻辑以提供所述假想高速缓存的性能度量标准,且其中所述高速缓存外壳不包括数据。
25.根据权利要求18所述的方法,其包括使所述假想高速缓存配置有
转译后备缓冲器TLB和对应的时间戳,其用以指示针对任务存取所述TLB中的页命中的时间;和
页表和对应的时间戳,其用以指示针对所述任务存取所述TLB中的页未命中的时间。
26.根据权利要求25所述的方法,其进一步包括滤除具有比预定时间点早的时间戳的页以提供用于所述任务的作用中页的数目,以及使所述作用中页的数目与每一页的页大小相乘以确定所述任务的存储器要求。
27.根据权利要求26所述的方法,其进一步包括基于所述存储器要求,预报所述实际高速缓存的大小的上限。
28.根据权利要求18所述的方法,其包括将所述实际高速缓存配置为所述处理器核心的第2层级L2高速缓存,并且将所述假想高速缓存配置为所述处理器核心的第3层级L3高速缓存,以及基于所述实际高速缓存的未命中率和所述假想高速缓存的命中率的乘积与预定阈值的比较,预报增加所述实际高速缓存的所述大小的益处。
29.根据权利要求18所述的方法,其进一步包括在所述假想高速缓存处使用取样时间间隔对来自所述处理器核心的事务进行取样,所述取样时间间隔基于取样算法从随机序列、伪随机序列或规律的时间间隔中选择,或可基于所述假想高速缓存的时钟频率进行调整。
30.一种处理系统,其包括:
处理器核心;
所述处理器核心的实际高速缓存;
用于模拟高速缓存的装置;
用于确定所述用于模拟的装置的性能度量标准的装置;和
用于至少基于所述性能度量标准预报所述实际高速缓存的行为的装置。
CN201680025719.8A 2015-05-19 2016-05-05 使用假想高速缓存的实时高速缓存行为预报 Pending CN107533511A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/716,077 US9690708B2 (en) 2015-05-19 2015-05-19 Real-time cache behavior forecast using hypothetical cache
US14/716,077 2015-05-19
PCT/US2016/030895 WO2016186850A1 (en) 2015-05-19 2016-05-05 Real-time cache behavior forecast using hypothetical cache

Publications (1)

Publication Number Publication Date
CN107533511A true CN107533511A (zh) 2018-01-02

Family

ID=55963499

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680025719.8A Pending CN107533511A (zh) 2015-05-19 2016-05-05 使用假想高速缓存的实时高速缓存行为预报

Country Status (4)

Country Link
US (1) US9690708B2 (zh)
EP (1) EP3298494A1 (zh)
CN (1) CN107533511A (zh)
WO (1) WO2016186850A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9811474B2 (en) * 2015-10-30 2017-11-07 International Business Machines Corporation Determining cache performance using a ghost cache list indicating tracks demoted from a cache list of tracks in a cache
US9824030B2 (en) * 2015-10-30 2017-11-21 International Business Machines Corporation Adjusting active cache size based on cache usage
US10628296B1 (en) 2016-04-04 2020-04-21 Omni Ai, Inc. Data composite for efficient memory transfer in a behavorial recognition system
US11003583B2 (en) * 2016-07-25 2021-05-11 Netapp, Inc. Adapting cache processing using phase libraries and real time simulators
WO2018115920A1 (en) * 2016-12-20 2018-06-28 Intel Corporation Methods and apparatus to perform memory copy operations
US11080810B2 (en) * 2017-04-21 2021-08-03 Intel Corporation Dynamically reconfigurable memory subsystem for graphics processors
US10540295B2 (en) * 2017-06-21 2020-01-21 International Business Machines Corporation Processing cache miss rates to determine memory space to add to an active cache to reduce a cache miss rate for the active cache
KR102462507B1 (ko) 2017-06-29 2022-11-02 삼성전자주식회사 프로세서, 이를 포함하는 컴퓨팅 장치 및 프로세서 저전력 모드 진입 방법
CN108989605A (zh) * 2018-07-27 2018-12-11 湖南科技大学 一种图像采集与传输系统及方法
US11138118B2 (en) * 2020-01-13 2021-10-05 EMC IP Holding Company LLC Method and apparatus for dynamically adapting sizes of cache partitions in a partitioned cache
CN112507199B (zh) * 2020-12-22 2022-02-25 北京百度网讯科技有限公司 用于对搜索系统进行优化的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1251446A (zh) * 1999-11-18 2000-04-26 武汉东湖存储技术有限公司 一种以最大带宽工作的硬盘作高速缓存的外存储器加速卡
CN1591358A (zh) * 2003-08-29 2005-03-09 微软公司 物理存储设备中的软件辅助设备模拟
US20100281216A1 (en) * 2009-04-30 2010-11-04 Netapp, Inc. Method and apparatus for dynamically switching cache policies

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6601143B1 (en) 1999-09-25 2003-07-29 International Business Machines Corporation Self-adapting cache management method and system
US6965972B2 (en) * 2002-09-25 2005-11-15 International Business Machines Corporation Real time emulation of coherence directories using global sparse directories
US7424577B2 (en) 2005-08-26 2008-09-09 Network Appliance, Inc. Dynamic optimization of cache memory
US20080263324A1 (en) 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
DE102008046096A1 (de) * 2008-09-05 2010-06-10 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Bestimmen von Anforderungsparametern an mindestens eine physische Hardwareeinheit
US20110112798A1 (en) 2009-11-06 2011-05-12 Alexander Branover Controlling performance/power by frequency control of the responding node
US8527704B2 (en) * 2010-11-11 2013-09-03 International Business Machines Corporation Method and apparatus for optimal cache sizing and configuration for large memory systems
US8850122B2 (en) 2011-11-30 2014-09-30 International Business Machines Corporation Cache optimization via predictive cache size modification
CN103729248B (zh) 2012-10-16 2017-12-15 华为技术有限公司 一种基于缓存感知的确定待迁移任务的方法和装置
US9405686B2 (en) * 2013-03-13 2016-08-02 Cloud Physics, Inc Cache allocation system and method using a sampled cache utility curve in constant space
US9336141B2 (en) * 2013-03-13 2016-05-10 Cloud Physics, Inc. Hash-based spatial sampling for efficient cache utility curve estimation and cache allocation
US9418020B2 (en) * 2013-03-13 2016-08-16 Cloud Physics, Inc. System and method for efficient cache utility curve construction and cache allocation
US9223716B2 (en) * 2013-10-04 2015-12-29 The Penn State Research Foundation Obstruction-aware cache management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1251446A (zh) * 1999-11-18 2000-04-26 武汉东湖存储技术有限公司 一种以最大带宽工作的硬盘作高速缓存的外存储器加速卡
CN1591358A (zh) * 2003-08-29 2005-03-09 微软公司 物理存储设备中的软件辅助设备模拟
US20100281216A1 (en) * 2009-04-30 2010-11-04 Netapp, Inc. Method and apparatus for dynamically switching cache policies

Also Published As

Publication number Publication date
US20160342518A1 (en) 2016-11-24
EP3298494A1 (en) 2018-03-28
WO2016186850A1 (en) 2016-11-24
US9690708B2 (en) 2017-06-27

Similar Documents

Publication Publication Date Title
CN107533511A (zh) 使用假想高速缓存的实时高速缓存行为预报
CN101105772B (zh) 控制计算机可读存储器的方法和管理数据单元的装置
WO2021120789A1 (zh) 数据写入方法、装置及存储服务器和计算机可读存储介质
CN105493053B (zh) 多核处理器及更新多核处理器中的高速缓存的方法
CN103324724B (zh) 数据处理方法及装置
Loh Extending the effectiveness of 3D-stacked DRAM caches with an adaptive multi-queue policy
CN109154920B (zh) 对象被标记的存储器监测方法及处理设备
Salkhordeh et al. An operating system level data migration scheme in hybrid DRAM-NVM memory architecture
CN108874694A (zh) 空间存储器串流预取引擎的设备和方法、制造和测试方法
CN104239233B (zh) 缓存管理方法、缓存管理装置和缓存管理设备
CN103390061B (zh) 以用户为中心且基于多级缓存的海洋时空数据访问方法
CN107315694B (zh) 一种缓存一致性管理方法及节点控制器
CN105393210B (zh) 用于处理数据存储器引用的存储器单元和方法
CN109471732A (zh) 一种面向cpu-fpga异构多核系统的数据分配方法
Pan et al. Caching-aware garbage collection to improve performance and lifetime for NAND flash SSDs
CN109086141A (zh) 内存管理方法和装置以及计算机可读存储介质
Hassan et al. Optimizing the performance of data warehouse by query cache mechanism
CN107229575A (zh) 缓存性能的评估方法及装置
CN108509723A (zh) 基于人工神经网络的LRU Cache预取机制性能收益评估方法
CN103336844A (zh) 大数据rd分割方法
Liu et al. MLCache: A space-efficient cache scheme based on reuse distance and machine learning for NVMe SSDs
CN109597771A (zh) 用于控制分层存储器系统的方法和装置
CN100518146C (zh) 一种用于集群存储系统的全局缓存管理的方法
CN105359116A (zh) 缓存器、共享缓存管理方法及控制器
JP7013360B2 (ja) 情報処理装置、情報処理方法、およびプログラム

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180102

WD01 Invention patent application deemed withdrawn after publication