CN107111557B - 在共享高速缓存存储器系统中提供共享高速缓存存储器分配控制 - Google Patents

在共享高速缓存存储器系统中提供共享高速缓存存储器分配控制 Download PDF

Info

Publication number
CN107111557B
CN107111557B CN201580061555.XA CN201580061555A CN107111557B CN 107111557 B CN107111557 B CN 107111557B CN 201580061555 A CN201580061555 A CN 201580061555A CN 107111557 B CN107111557 B CN 107111557B
Authority
CN
China
Prior art keywords
cache
qos
service quality
area
classification
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
CN201580061555.XA
Other languages
English (en)
Other versions
CN107111557A (zh
Inventor
德瑞克·罗伯特·霍华
哈罗德·韦德·凯恩三世
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 CN107111557A publication Critical patent/CN107111557A/zh
Application granted granted Critical
Publication of CN107111557B publication Critical patent/CN107111557B/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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • 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/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • 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/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • 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/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • 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
    • 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
    • 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/1041Resource optimization
    • G06F2212/1044Space efficiency 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/31Providing disk cache in a specific location of a storage system
    • G06F2212/314In storage network, e.g. network attached 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/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements

Landscapes

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

Abstract

本发明揭示在共享高速缓存存储器系统中提供共享高速缓存存储器分配控制。在一个方面中,提供包括多个高速缓存线的共享高速缓存存储器系统的高速缓存控制器。高速缓存控制器包括高度缓存分配电路,其提供用于将服务质量QoS类别映射到高速缓存线的最小分割区的最小映射位掩码,及用于将QoS类别映射到高速缓存线的最大分割区的最大映射位掩码。高速缓存分配电路接收包括QoS类别的QoS识别符QoSID的存储器存取请求,且经配置以确定存储器存取请求是否对应于多个高速缓存线中的高速缓存线。如果确定为“否”,那么高速缓存分配电路选择经映射到QoS类别的最小分割区或经映射到QoS类别的最大分割区作为目标分割区。

Description

在共享高速缓存存储器系统中提供共享高速缓存存储器分配 控制
优先权主张
本申请案根据35 U.S.C.§119(e)规定主张2014年11月25日申请且名为“PROVIDING FINE-GRAINED AND FLEXIBLE SHARED CACHE MEMORY ALLOCATION CONTROL,AND RELATED METHODS AND SYSTEMS”的美国临时专利申请案第62/084,480号的优先权,所述美国临时专利申请案的内容的全文是以引用的方式并入本文中。
本申请案还主张2015年9月22日申请且名为“PROVIDING SHARED CACHE MEMORYALLOCATION CONTROL IN SHARED CACHE MEMORY SYSTEMS”的美国专利申请案第14/861,025号的优先权,所述美国专利申请案的内容的全文是以引用的方式并入本文中。
技术领域
本发明的技术大体上是关于共享高速缓存存储器系统,且尤其是关于控制共享高速缓存存储器的分配。
背景技术
越来越多数目个计算机硬件单元(例如(作为非限制性实例),中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理(DSP)单元及/或直接存储器存取(DMA)引擎)经配置以共享诸如高速缓存、存储器、互连带宽及高速缓存带宽的存储器系统资源。计算机硬件单元之间的资源干扰及冲突可引起负面结果,诸如(作为非限制性实例)未命中移动系统单芯片(SoC)上的实时期限,或违反合并服务器上的服务等级协议(SLA)。另外,与一些计算机硬件单元相关联的参考流可具有很小时间局部性(temporal locality),从而在未经检查的情况下导致高速缓存污染及对总性能的负面影响。在这点上,可需要使得用户能够控制共享资源的使用量。
然而,不同于系统的大多数其它性能关键分量(例如,CPU使用量、存储器使用量、网络带宽及/或磁盘带宽),常规共享高速缓存存储器很大程度上保持不受用户控制。因此,此等常规共享高速缓存存储器系统可保持使用量过低以在存在高速缓存干扰的情况下保护免遭最差状况性能。此外,现有高速缓存服务质量(QoS)及分割方案可缺乏为处理诸如(作为非限制性实例)严格容量分配及/或输贯量最大化的多个使用案例所必要的灵活性。
发明内容
【实施方式】中所揭示的方面包含在共享高速缓存存储器系统中提供共享高速缓存存储器分配控制。在这点上,在一个方面中,提供一种共享高速缓存存储器的高速缓存控制器。所述高速缓存控制器支持多个服务质量(QoS)类别,所述多个QoS类别中的每一者对应于一QoS识别符(QoSID)。所述高速缓存控制器提供高速缓存分配电路,其使得所述共享高速缓存存储器的高速缓存线能够基于由所述高速缓存控制器接收的存储器存取请求的QoSID而被选择性地分配。所述高速缓存分配电路包括最小映射位掩码,其将QoS类别映射到所述共享高速缓存存储器的所述高速缓存线的最小分割区。所述最小分割区表示可被分配到所述QoS类别的所述共享高速缓存存储器的最小部分。相似地,所述高速缓存分配电路还包括最大映射位掩码,其将所述QoS类别映射到所述共享高速缓存存储器的所述高速缓存线的最大分割区。所述最大分割区表示可被分配到所述QoS类别的所述共享高速缓存存储器的最大部分。在接收到存储器存取请求后,所述高速缓存分配电路就确定所述存储器存取请求是否对应于多个高速缓存线中的一高速缓存线。如果否(即,如果发生高速缓存未命中),那么所述高速缓存分配电路选择由所述最小映射位掩码映射到对应于所述QoSID的所述QoS类别的所述最小分割区或由所述最大映射位掩码映射到对应于所述QoSID的所述QoS类别的所述最大分割区作为目标分割区。所述高速缓存分配电路接着将高速缓存线分配在所述目标分割区内以用于高速缓存填充操作。以此方式,可在多个QoS类别当中分割所述共享高速缓存存储器以使得能够经由分配所述共享高速缓存存储器的所述高速缓存线而进行精细粒度级且灵活的控制。
在另一方面中,提供一种共享高速缓存存储器系统的高速缓存控制器。所述共享高速缓存存储器系统包括多个高速缓存线。所述高速缓存控制器包括高速缓存分配电路。所述高速缓存分配电路包括用于将多个QoS类别中的一QoS类别映射到所述多个高速缓存线的最小分割区的最小映射位掩码。所述高速缓存分配电路进一步包括用于将所述多个QoS类别中的所述QoS类别映射到所述多个高速缓存线的最大分割区的最大映射位掩码。所述高速缓存分配电路经配置以接收包括对应于所述多个QoS类别中的所述QoS类别的QoS识别符(QoSID)的存储器存取请求。所述高速缓存分配电路经进一步配置以确定所述存储器存取请求是否对应于所述多个高速缓存线中的一高速缓存线。所述高速缓存分配电路还经配置以响应于确定所述存储器存取请求不对应于所述多个高速缓存线中的所述高速缓存线而选择由所述最小映射位掩码映射到对应于所述QoSID的所述QoS类别的所述最小分割区及由所述最大映射位掩码映射到对应于所述QoSID的所述QoS类别的所述最大分割区中的一者作为目标分割区。所述高速缓存分配电路另外经配置以将高速缓存线分配在所述目标分割区内以用于高速缓存填充操作。
在另一方面中,提供一种共享高速缓存存储器系统的高速缓存控制器。所述高速缓存控制器包括用于接收包括对应于多个QoS类别中的一QoS类别的QoSID的存储器存取请求的装置。所述高速缓存控制器进一步包括用于确定所述存储器存取请求是否对应于所述共享高速缓存存储器系统的多个高速缓存线中的一高速缓存线的装置。所述高速缓存控制器还包括用于响应于确定所述存储器存取请求不对应于所述多个高速缓存线中的所述高速缓存线而选择由最小映射位掩码映射到对应于所述QoSID的所述QoS类别的最小分割区及由最大映射位掩码映射到对应于所述QoSID的所述QoS类别的最大分割区中的一者作为目标分割区的装置。所述高速缓存控制器另外包括用于响应于确定所述存储器存取请求不对应于所述多个高速缓存线中的所述高速缓存线而将所述多个高速缓存线中的所述高速缓存线分配在所述目标分割区内以用于高速缓存填充操作的装置。
在另一方面中,提供一种用于分配共享高速缓存存储器系统的高速缓存线的方法。所述方法包括由高速缓存控制器的高速缓存分配电路接收包括对应于多个QoS类别中的一QoS类别的QoSID的存储器存取请求。所述方法进一步包括确定所述存储器存取请求是否对应于所述共享高速缓存存储器系统的多个高速缓存线中的一高速缓存线。所述方法还包括响应于确定所述存储器存取请求不对应于所述多个高速缓存线中的所述高速缓存线而选择由最小映射位掩码映射到对应于所述QoSID的所述QoS类别的最小分割区及由最大映射位掩码映射到对应于所述QoSID的所述QoS类别的最大分割区中的一者作为目标分割区。所述方法另外包括将所述多个高速缓存线中的所述高速缓存线分配在所述目标分割区内以用于高速缓存填充操作。
附图说明
图1为说明包含高速缓存控制器的例示性共享高速缓存存储器系统的框图,所述高速缓存控制器包括高速缓存分配电路以用于提供共享高速缓存存储器分配控制;
图2A到2C为说明由图1的高速缓存分配电路使用以用于强制分配图1的共享高速缓存存储器系统的例示性最小映射位掩码及最大映射位掩码的框图;
图3A到3C为说明用于提供共享高速缓存存储器分配控制的图1的高速缓存控制器的例示性操作的流程图;及
图4为可包含图1的高速缓存控制器以提供共享高速缓存存储器分配控制的例示性基于处理器的系统的框图。
具体实施方式
现在参看图式,描述本发明的若干例示性方面。本文中使用词语“例示性”以意谓“充当实例、例项或说明”。未必将本文中被描述为“例示性”的任何方面认作比其它方面较佳或有利。
在这点上,提供图1以说明共享高速缓存存储器系统100的结构。作为非限制性实例,可将共享高速缓存存储器系统100提供在半导体裸片中。在一些方面中,共享高速缓存存储器系统100可为存储器阶层(未图示)中的层级1(L1)高速缓存、层级2(L2)高速缓存或层级3(L3)高速缓存等等。106(L)106(L)106(L)在图1的实例中,共享高速缓存存储器系统100为经组织成存储体102(0)到102(X)的存储器阵列。存储体102(0)到102(X)中的每一者包括一或多个集合104(0)到104(Y),其中集合104(0)到104(Y)中的每一者是由高速缓存线106(0)到106(L)的子集构成。集合104(0)到104(Y)中的每一者中的高速缓存线106(0)到106(L)的数目Z被称作共享高速缓存存储器系统100的“关联性(associativity)”,且集合104(0)到104(Y)中的每一者内的位于从0到Z的特定位置处的所述群高速缓存线106(0)到106(L)被称作对应“通路(way)”108(0)到108(Z)。每一通路108(0)到108(Z)可因此被视为所有集合104(0)到104(Y)中的高速缓存线106(0)到106(L)的垂直“切片(slice)”。
应理解,本文中所描述的方面并不限于任何特定元件布置,且所揭示技术可容易地延伸到共享高速缓存存储器系统100的各种结构及布局。图1所说明的配置仅是为了说明性目的。在一些方面中,共享高速缓存存储器系统100可包括比本文中所说明者更少或更多的存储体102(0)到102(X)、更少或更多的集合104(0)到104(Y)、更少或更多的高速缓存线106(0)到106(L)及/或更少或更多的通路108(0)到108(Z)。
继续参看图1,高速缓存控制器110连接性地耦接到每一存储体102(0)到102(X)。在常规操作中,诸如执行软件应用程序的请求代理程序(未图示)可请求存储在存储器地址(未图示)处的指令或值(未图示)。如果未在共享高速缓存存储器系统100中找到经请求指令或值,那么会引起高速缓存未命中。作为响应,高速缓存控制器110可启动高速缓存填充操作,其致使大小等于高速缓存线106(0)到106(L)中的一或多者且含有经请求指令或值的系统存储器(未图示)的一部分被检索及存储在高速缓存线106(0)到106(L)中的一者中。
共享高速缓存存储器系统100提供针对多个QoS类别112(0)到112(N)的支持以用于实施针对共享存储器使用量的QoS支持。QoS类别112(0)到112(N)中的每一者与唯一QoSID 114(0)到114(N)相关联。为了更高效地在多个请求代理程序当中分配高速缓存线106(0)到106(L),高速缓存控制器110在一些方面中可提供高速缓存分配电路116。高速缓存分配电路116可使得用户能够通过使QoSID 114(0)到114(N)中的每一者与特定请求代理程序相关联且针对那个QoSID 114(0)到114(N)指定高速缓存线106(0)到106(L)的分配而控制共享高速缓存存储器系统100的高速缓存资源。
虽然常规高速缓存控制器可使得能够分配高速缓存线106(0)到106(L),但常规高速缓存控制器可不提供为处理不同使用案例所需要的灵活性。举例来说,在云端计算环境使用案例中,可需要提供高速缓存线106(0)到106(L)的严格分配,使得多个执行虚拟机(VM)能够独占式地存取高速缓存线106(0)到106(L)的子集。在其它使用案例中,可需要更灵活的分配。在使用灵活分配机制的情况下,高速缓存使用量在共享高速缓存存储器系统100的完全利用下接近指定平均值。在低争用下,或当高速缓存消费者正独自地执行时,使用量应接近规定最大分配。当高速缓存消费者不在执行时,使用量应接近规定最小值。最后,当高速缓存消费者不需要足够高速缓存线106(0)到106(L)以满足平均分配时,应由另一类别使用额外容量。
在这点上,高速缓存分配电路116针对QoS类别112(0)到112(N)中的一或多者中的每一者提供最小映射位掩码(未图示)及最大映射位掩码(未图示)。每一最小映射位掩码用以将对应QoS类别112(0)到112(N)映射到多个高速缓存线106(0)到106(L)的最小分割区(即,可被分配到那个QoS类别112(0)到112(N)的多个高速缓存线106(0)到106(L)的最小部分)。同样地,每一最大映射位掩码将其对应QoS类别112(0)到112(N)映射到多个高速缓存线106(0)到106(L)的最大分割区,所述最大分割区表示可被分配到那个QoS类别112(0)到112(N)的多个高速缓存线106(0)到106(L)的最大部分。在一些方面中,最小映射位掩码可存储在最小映射表(未图示)中,而最大映射位掩码可存储在最大映射表(未图示)中。
对于包括数目N个位的每一最小映射位掩码及最大映射位掩码,每一位对应于共享高速缓存存储器系统100的多个高速缓存线106(0)到106(L)的不相交1/N分割区。最小映射位掩码及最大映射位掩码中的每一者因此表示高速缓存分割的逻辑视图,其中特定方面确定如何将最小映射位掩码及最大映射位掩码翻译成可实现的分割。如下文更详细地所论述,一些方面还可规定:针对QoS类别112(0)到112(N)中的每一者指定平均分配目标值(未图示)。在此等方面中,平均分配目标值可被指定为共享高速缓存存储器系统100的高速缓存线106(0)到106(L)的百分比,且可在与每一QoS类别112(0)到112(N)相关联的最小映射位掩码及最大映射位掩码相异时用作目标分配。
高速缓存分配电路116经进一步配置以从请求代理程序(未图示)接收存储器存取请求118。存储器存取请求118包含对应于QoS类别112(0)到112(N)中的一者的QoSID 120。在图1的实例中,QoSID 120对应于QoS类别112(0)的QoSID 114(0)。高速缓存分配电路116确定存储器存取请求118是否对应于共享高速缓存存储器系统100的多个高速缓存线106(0)到106(L)中的一者。如果存储器存取请求118不对应于多个高速缓存线106(0)到106(L)中的任一者(即,高速缓存未命中),那么高速缓存分配电路116选择由最小映射位掩码映射到对应于QoSID 120的QoS类别112(0)的最小分割区或由最大映射位掩码映射到对应于QoSID 120的QoS类别112(0)的最大分割区。如下文更详细地所论述,在一些方面中,高速缓存分配电路116可在必要时确定性地选择最小映射位掩码或最大映射位掩码以确保高速缓存使用量接近平均分配目标值,或可机率性地选择最小映射位掩码或最大映射位掩码。
高速缓存分配电路116接着将高速缓存线106(0)到106(L)中的一者分配在目标分割区内以用于高速缓存填充操作。在一些方面中,高速缓存分配电路116可通过首先识别一或多个高速缓存线106(0)到106(L)而将高速缓存线106(0)到106(L)中的一者分配在目标分割区内作为一或多个逐出候选者(在本文中被称作“逐出候选者106(0)到106(L)”)。高速缓存分配电路116接着可从共享高速缓存存储器系统100逐出一或多个逐出候选者106(0)到106(L)中的一逐出候选者106(0)到106(L)。
通过在QoSID 114(0)到114(N)当中分配高速缓存线106(0)到106(L)(因此有效地在对应QoS类别112(0)到112(N)当中分配高速缓存线106(0)到106(L)),共享高速缓存存储器系统100可在数种使用案例情境中改进高速缓存性能。举例来说,在一些方面中,共享高速缓存存储器系统100可使得能够服务实时约束以确保由请求代理程序进行的潜时关键操作具有足够高速缓存存储器以满足实时要求。为了提供响应于实时约束的服务,高速缓存分配电路116可经配置以保证用于时间关键请求代理程序的高速缓存线106(0)到106(L)的最小工作集合将保留在共享高速缓存存储器系统100中。由高速缓存分配电路116分配高速缓存线106(0)到106(L)还可有用于强制云端计算服务等级协议(SLA),及/或用于限定用于某些请求代理程序的高速缓存线106(0)到106(L)的高速缓存配额以改进计算机处理系统的总输贯量。下文关于图2A到2C更详细地论述由图1的高速缓存分配电路116使用以用于在不同使用案例中强制分配图1的共享高速缓存存储器系统100的例示性最小映射位掩码及最大映射位掩码。
在一些方面中,高速缓存分配电路116还可针对QoS类别112(0)到112(N)中的每一者提供平均分配目标值。当随后选择最小分割区或最大分割区作为目标分割区以用于对应于QoSID 120的QoS类别112(0)到112(N)时,高速缓存分配电路116可使其选择基于无论哪一目标分割区将致使经分配到QoS类别112(0)到112(N)的高速缓存线106(0)到106(L)的实际分配接近平均分配目标值。因此,当QoS类别112(0)到112(N)积极地执行在争用系统中时,高速缓存分配电路116将尝试使用于QoS类别112(0)到112(N)的多个高速缓存线106(0)到106(L)的实际分配保持接近平均分配目标值。如果QoS类别112(0)到112(N)未被排程,或如果QoS类别112(0)到112(N)正使用小于平均分配的多个高速缓存线106(0)到106(L)的分配,那么实际分配将接近由对应最小映射位掩码表示的最小位准。如果QoS类别112(0)到112(N)正隔离地或与具有轻微高速缓存压力的其它工作负载一起执行,那么实际分配将接近由对应最大映射位掩码表示的最大位准。
根据一些方面,高速缓存分配电路116可使用来自高速缓存使用量监视器124的多个高速缓存线106(0)到106(L)在多个QoS类别112(0)到112(N)当中的分配的指示122以指导选择最小分割区或最大分割区作为目标分割区。作为非限制性实例,指示122可表示由给定QoS类别112(0)到112(N)进行的高速缓存使用量的近似测量。基于指示122,高速缓存分配电路116在一些方面中接着可依照需要选择最小分割区或最大分割区以致使用于那个QoS类别112(0)到112(N)的高速缓存分配倾向于平均分配目标值。
通过使用最小映射位掩码或最大映射位掩码以确定高速缓存填充操作期间的分割,多个高速缓存线106(0)到106(L)的所得分配将自然地在最小使用量与最大使用量之间振荡。举例来说,如果高速缓存分配电路116选择最小映射位掩码,那么用于对应QoS类别112(0)到112(N)的高速缓存使用量将朝向其最小分割区渐缩。如果高速缓存分配电路116选择最大映射位掩码,那么用于对应QoS类别112(0)到112(N)的高速缓存使用量将朝向最大分割区增加。因此,在一些方面中,高速缓存分配电路116可确定性地在当前高速缓存使用量高于平均分配目标值时选择最小映射位掩码,且在当前高速缓存使用量低于平均分配目标值时选择最大映射位掩码。
在一些方面中,可需要使高速缓存分配电路116机率性地选择最小映射位掩码或最大映射位掩码,使得高速缓存分配电路116周期性地选择“错误”位掩码(即,引起当前高速缓存使用量远离平均分配目标值的位掩码)。通过机率性地选择,高速缓存分配电路116可更有效地针对QoS类别112(0)到112(N)中的每一者探索有利于自然高速缓存模式的高速缓存分配,从而引起更有效地且高效地使用共享高速缓存存储器系统100。
根据一些方面,高速缓存分配电路116可经配置以基于由机率函数提供者电路126提供的机率函数(未图示)而机率性地选择最小映射位掩码或最大映射位掩码。一些方面可规定:作为非限制性实例,机率函数提供者电路126可基于线性机率函数及/或S型机率函数。举例来说,线性机率函数可在实施简易性为重要的方面中为较佳的。根据一些方面,使用S型机率函数可引起较快地倾向于平均分配目标值,借此使得高速缓存分配电路116能够随着发生改变(例如,作为非限制性实例,QoS类别112(0)到112(N)具有频繁相变的情形)更具响应性。在使用S型机率函数的方面中,机率函数提供者电路126可结合线性反馈移位寄存器(未图示)而被实施为经重新填入硬件查找表(未图示)作为随机性源。下文展示采取形状参数μ的例示性S型函数:
为了说明可由图1的高速缓存分配电路116使用以用于强制分配共享高速缓存存储器系统100的例示性最小映射位掩码及最大映射位掩码,提供图2A到2C。特别是,图2A说明可用以严格地使QoS类别112(0)及112(1)相互隔离的例示性最小映射位掩码及最大映射位掩码。图2B说明用于将QoS类别112(0)、112(1)映射到为每一QoS类别112(0)、112(1)所独占的最小分割区的例示性最小映射位掩码,及用于将QoS类别112(0)、112(1)映射到不为每一QoS类别112(0)、112(1)所独占的最大分割区的例示性最大映射位掩码。图2C说明可用以缩减QoS类别112(0)到112(N)可引起高速缓存辗转现象(cache thrashing)的影响的例示性最小映射位掩码及最大映射位掩码。在图2A到2C中,QoS类别112(0)到112(2)通过高速缓存分配电路116而分别与最小映射位掩码200(0)到200(2)、最大映射位掩码202(0)到202(2)及平均分配目标值204(0)到204(2)相关联。最小映射位掩码200(0)到200(2)针对QoS类别112(0)到112(2)映射最小分割区206(0)到206(2),而最大映射位掩码202(0)到202(2)针对QoS类别112(0)到112(2)映射最大分割区208(0)到208(2)。
在图2A的实例中,最小映射位掩码200(0)、200(1)及最大映射位掩码202(0)、202(1)将QoS类别112(0)、112(1)映射到为每一QoS类别112(0)、112(1)所独占的多个高速缓存线106(0)到106(L)的同一目标分割区。此引起QoS类别112(0)、112(1)在共享高速缓存存储器系统100内严格地相互隔离,其在诸如云端计算应用的使用案例中可为理想的。因为最小映射位掩码200(0)、200(1)及最大映射位掩码202(0)、202(1)针对给定QoS类别112(0)、112(1)为相同的,所以QoS类别112(0)、112(1)将决不超过由最小映射位掩码200(0)、200(1)及最大映射位掩码202(0)、202(1)指定的使用量。在最小映射位掩码200(0)、200(1)及最大映射位掩码202(0)、202(1)相同的一些方面中,高速缓存分配电路116可在选择目标分割区时使用最小映射位掩码200(0)、200(1)及最大映射位掩码202(0)、202(1)中的单一者。
在图2B中,最大映射位掩码202(0)、202(1)中的每一者被指定为用于给定QoS类别112(0)、112(1)的各别最小映射位掩码200(0)、200(1)的超集。因此,最小映射位掩码200(0)、200(1)将QoS类别112(0)、112(1)映射到为QoS类别112(0)、112(1)所独占的最小分割区206(0)、206(1)。相似地,最大映射位掩码202(0)、202(1)将QoS类别112(0)、112(1)映射到不为QoS类别112(0)、112(1)所独占的最大分割区208(0)、208(1)(即,在QoS类别112(0)、112(1)之间共享最大分割区208(0)、208(1)的部分)。这个配置可允许用户确保QoS类别112(0)、112(1)各自能够独占式地存取多个高速缓存线106(0)到106(L)的部分,但还允许QoS类别112(0)、112(1)在轻微争用下使用多个高速缓存线106(0)到106(L)中的更多者。如在图2B中所见,当无低优先权应用程序在执行时或当那些低优先权应用程序未在使用多个高速缓存线106(0)到106(L)中的25%以上的高速缓存线时,QoS类别112(0)、112(1)被保证25%的最小分配,但被允许使用多个高速缓存线106(0)到106(L)中的高达75%的高速缓存线。应注意,在这个配置中,位的置放是重要的。特别是,QoS类别112(0)、112(1)各自被独占式地给出多个高速缓存线106(0)到106(L)中的25%的高速缓存线,这是因为其最小映射位掩码200(0)、200(1)中的位不重迭。
现在参看图2C,为了最大化输贯量,可设置最小映射位掩码200(0)到200(2)及最大映射位掩码202(0)到202(2)以缩减使高速缓存发生辗转现象的应用程序的影响。在图2C的实例中,最小映射位掩码200(0)及最大映射位掩码202(0)严格地限制用于QoS类别112(0)的分配。最小映射位掩码200(1)、200(2)及最大映射位掩码202(1)、202(2)使得QoS类别112(1)、112(2)能够共享多个高速缓存线106(0)到106(L)的剩余部分,同时确保用于QoS类别112(1)、112(2)的最小分配。因此,由与QoS类别112(1)、112(2)相关联的应用程序造成的高速缓存的任何辗转现象将限于最大分割区208(1)、208(2)的重迭分割区,且将不影响高速缓存的剩余部分。
图3A到3C为说明用于提供共享高速缓存存储器分配控制的图1的高速缓存分配电路116的例示性操作的流程图。为了清晰起见,在描述图3A到3C时参考图1及图2A到2C的元件。在一些方面中,操作始于高速缓存分配电路116提供平均分配目标值204(0)(块300)。因此,高速缓存分配电路116可在本文中被称作“用于提供平均分配目标值的装置”。高速缓存分配电路116接收包括对应于多个QoS类别112(0)到122(N)中的一QoS类别112(0)的QoSID120的存储器存取请求118(块302)。高速缓存分配电路116因此可在本文中被称作“用于接收包括对应于多个QoS类别中的一QoS的QoSID的存储器存取请求的装置”。
高速缓存分配电路116接着确定存储器存取请求118是否对应于共享高速缓存存储器系统100的多个高速缓存线106(0)到106(L)中的一高速缓存线106(0)(块304)。在这点上,高速缓存分配电路116可在本文中被称作“用于确定存储器存取请求是否对应于共享高速缓存存储器系统的多个高速缓存线中的一高速缓存线的装置”。如果高速缓存分配电路116在决策块304处确定存储器存取请求118对应于多个高速缓存线106(0)到106(L)中的一高速缓存线106(0),那么高速缓存分配电路116传回高速缓存线106(0)(即,高速缓存命中)(块306)。然而,如果存储器存取请求118不对应于多个高速缓存线106(0)到106(L)中的一高速缓存线106(0)(即,高速缓存未命中),那么处理在图3B的块308处恢复执行。
现在参看图3B,高速缓存分配电路116选择由最小映射位掩码200(0)映射到对应于QoSID 120的QoS类别112(0)的最小分割区206(0)及由最大映射位掩码202(0)映射到对应于QoSID 120的QoS类别112(0)的最大分割区208(0)中的一者作为目标分割区(块308)。因此,高速缓存分配电路116可在本文中被称作“用于选择由最小映射位掩码映射到对应于QoSID的QoS类别的最小分割区及由最大映射位掩码映射到对应于QoSID的QoS类别的最大分割区中的一者作为目标分割区的装置”。在一些方面中,用于选择最小分割区206(0)及最大分割区208(0)中的一者的块308的操作包含选择最小分割区206(0)及最大分割区208(0)中的一者以致使经分配到对应于QoSID 120的QoS类别112(0)的高速缓存线106(0)到106(L)的实际分配接近平均分配目标值204(0)(块310)。高速缓存分配电路116因此可在本文中被称作“用于选择最小分割区及最大分割区中的一者以致使经分配到对应于QoSID的QoS类别的高速缓存线的实际分配接近平均分配目标值的装置”。一些方面可规定:用于选择最小分割区206(0)及最大分割区208(0)中的一者的块310的操作是基于由高速缓存使用量监视器124提供的多个高速缓存线106(0)到106(L)在多个QoS类别112(0)到122(N)当中的分配的指示122(块312)。作为非限制性实例,指示122可表示由给定QoS类别112(0)到112(N)进行的高速缓存使用量的近似测量。基于由指示122指示的高速缓存使用量的近似测量,高速缓存分配电路116在一些方面中接着可在需要时选择最小分割区或最大分割区以致使用于那个QoS类别112(0)到122(N)的高速缓存分配倾向于平均分配目标值204(0)。在这点上,高速缓存分配电路116可在本文中被称作“用于基于由高速缓存使用量监视器提供的多个高速缓存线在多个QoS类别当中的分配的指示而选择最小分割区及最大分割区中的一者的装置”。
在一些方面中,用于由高速缓存分配电路116选择最小分割区206(0)及最大分割区208(0)中的一者的块308的操作包含机率性地选择最小分割区206(0)及最大分割区208(0)中的一者(块314)。因此,高速缓存分配电路116可在本文中被称作“用于机率性地选择最小分割区及最大分割区中的一者的装置”。一些方面可规定:用于机率性地选择最小分割区206(0)及最大分割区208(0)中的一者的块314的操作是基于机率函数提供者电路126(块316)。处理在图3C的块318处恢复执行。
现在转到图3C,高速缓存分配电路116然后将高速缓存线106(0)分配在目标分割区内以用于高速缓存填充操作(块318)。在这点上,高速缓存分配电路116可在本文中被称作“用于响应于确定存储器存取请求不对应于多个高速缓存线中的一高速缓存线而将所述高速缓存线分配在目标分割区内以用于高速缓存填充操作的装置”。根据一些方面,用于将高速缓存线106(0)分配在目标分割区内以用于高速缓存填充操作的块318的操作包含:高速缓存分配电路116将目标分割区内的一或多个高速缓存线106(0)到106(L)识别为一或多个逐出候选者106(0)到106(L)(块320)。因此,高速缓存分配电路116可在本文中被称作“用于将目标分割区内的一或多个高速缓存线识别为一或多个逐出候选者的装置”。高速缓存分配电路116接着可从共享高速缓存存储器系统100逐出一或多个逐出候选者106(0)到106(L)中的一逐出候选者106(0)(块322)。高速缓存分配电路116因此可在本文中被称作“用于从共享高速缓存存储器系统逐出一或多个逐出候选者中的一逐出候选者的装置”。
在共享高速缓存存储器系统中提供共享高速缓存存储器分配控制可提供在或集成到任何基于处理器的装置中。在无限制的情况下,实例包含机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝电话、计算机、便携式计算机、桌上型计算机、个人数字助理(PDA)、监视器、计算机监视器、电视、调谐器、收音机、卫星收音机、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器,及便携式数字视频播放器。
在这点上,图4为例示性基于处理器的系统400的框图,基于处理器的系统400可包含具有图1的高速缓存控制器110的共享高速缓存存储器系统(SCMS)100。在此实例中,基于处理器的系统400包含一或多个CPU 402,其各自包含一或多个处理器404。CPU 402可为主控器装置。CPU 402可具有耦接到处理器404以用于快速存取经暂时存储数据的高速缓存存储器406。在一些方面中,高速缓存存储器406可包括图1的共享高速缓存存储器系统100及/或高速缓存分配电路116。CPU 402耦接到系统总线408,且可相互耦接包含在基于处理器的系统400中的主控器装置及受控器装置。众所周知,CPU 402通过经由系统总线408交换地址、控制及数据信息而与这些其它装置通信。举例来说,CPU 402可将总线异动请求传达到作为受控器装置的实例的存储器控制器410。
其它主控器装置及受控器装置可连接到系统总线408。如图4所说明,作为实例,这些装置可包含存储器系统412、一或多个输入装置414、一或多个输出装置416、一或多个网络接口装置418,及一或多个显示控制器420。输入装置414可包含任何类型的输入装置,包含但不限于输入按键、开关、语音处理器等等。输出装置416可包含任何类型的输出装置,包含但不限于音频、视频、其它视觉指示器等等。网络接口装置418可为经配置以允许数据到及从网络422的交换的任何装置。网络422可为任何类型的网络,包含但不限于有线或无线网络、私用或公用网络、局域网络(LAN)、无线局域网络(WLAN)、广域网(WAN)、BLUETOOTHTM网络及因特网。网络接口装置418可经配置以支持任何类型的所要通信协议。存储器系统412可包含一或多个存储器单元424(0)到424(N)。
CPU 402还可经配置以经由系统总线408而存取显示控制器420以控制经发送到一或多个显示器426的信息。显示控制器420将信息发送到显示器426以经由一或多个视频处理器428而显示,视频处理器428将待显示的信息处理成适合于显示器426的格式。显示器426可包含任何类型的显示器,包含但不限于阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器等等。
所属领域的技术人员将进一步了解,可将结合本文中所揭示的方面而描述的各种说明性逻辑块、模块、电路及算法实施为电子硬件。作为实例,可在任何电路、硬件组件、集成电路(IC)或IC芯片中使用本文中所描述的装置。本文中所揭示的存储器可为任何类型及大小的存储器,且可经配置以存储任何类型的所要信息。为了清楚地说明此互换性,上文已大体上在功能性方面描述各种说明性组件、块、模块、电路及步骤。如何实施此功能性取决于特定应用、设计选择,及/或强加于总系统的设计约束。所属领域的技术人员可针对每一特定应用而以不同方式实施所描述的功能性,但此等实施决策不应被解译为致使脱离本发明的范围。
可运用经设计以执行本文中所描述的功能的处理器、数字信号处理器(DSP)、特殊应用集成电路(ASIC)、场可程序化门阵列(FPGA)或其它可程序化逻辑装置、离散闸或晶体管逻辑、离散硬件组件或其任何组合来实施或执行结合本文中所揭示的方面而描述的各种说明性逻辑块、模块及电路。处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可被实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器,或任何其它此类配置。
还应注意,描述本文中在例示性方面中的任一者中所描述的操作步骤以提供实例及论述。可以除了所说明的顺序以外的众多不同顺序来执行所描述的操作。此外,可实际上在数个不同步骤中执行单一操作步骤中所描述的操作。另外,可组合例示性方面中所论述的一或多个操作步骤。应理解,对于所属领域的技术人员而言将显而易见,流程图中所说明的操作步骤可经受众多不同修改。所属领域的技术人员还将理解,可使用多种不同技术中的任一者来表示信息及信号。举例来说,可由电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或其任何组合表示可贯穿以上描述而参考的数据、指令、命令、信息、信号、位、符号及芯片。
提供本发明的前述描述以使得任何所属领域的技术人员能够作出或使用本发明。在不脱离本发明的精神或范围的情况下,对本发明的各种修改对于所属领域的技术人员而言将显而易见,且可将本文中所定义的一般原理应用于其它变化。因此,本发明不意欲限于本文中所描述的实例及设计,而应符合与本文中所揭示的原理及新颖特征相一致的最广泛范围。

Claims (29)

1.一种包括多个高速缓存线的共享高速缓存存储器系统的高速缓存控制器,所述高速缓存控制器包括高速缓存分配电路,所述高速缓存分配电路包括:
用于将多个服务质量(QoS)类别中的一服务质量(QoS)类别映射到所述多个高速缓存线的最小分割区的最小映射位掩码;
用于将所述多个服务质量(QoS)类别中的所述服务质量(QoS)类别映射到所述多个高速缓存线的最大分割区的最大映射位掩码;且
所述高速缓存分配电路经配置以:
接收包括对应于所述多个服务质量(QoS)类别中的所述服务质量(QoS)类别的服务质量识别符(QoSID)的存储器存取请求;
确定所述存储器存取请求是否对应于所述多个高速缓存线中的高速缓存线;及
响应于确定所述存储器存取请求不对应于所述多个高速缓存线中的所述高速缓存线:
选择由所述最小映射位掩码映射到对应于所述服务质量识别符(QoSID)的所述服务质量(QoS)类别的所述最小分割区及由所述最大映射位掩码映射到对应于所述服务质量识别符(QoSID)的所述服务质量(QoS)类别的所述最大分割区中的一者作为目标分割区;及
将高速缓存线分配在所述目标分割区内以用于高速缓存填充操作。
2.根据权利要求1所述的高速缓存控制器,其中所述高速缓存分配电路经配置以通过以下操作将所述高速缓存线分配在所述目标分割区内:
将所述目标分割区内的所述多个高速缓存线中的一或多个高速缓存线识别为一或多个逐出候选者;及
从所述共享高速缓存存储器系统逐出所述一或多个逐出候选者中的一逐出候选者。
3.根据权利要求1所述的高速缓存控制器,其中:
所述高速缓存分配电路经进一步配置以提供平均分配目标值;
所述高速缓存分配电路经配置以选择所述最小分割区及所述最大分割区中的所述一者作为所述目标分割区以致使经分配到对应于所述服务质量识别符(QoSID)的所述服务质量(QoS)类别的高速缓存线的实际分配接近所述平均分配目标值。
4.根据权利要求3所述的高速缓存控制器,其中:
所述高速缓存控制器进一步包括高速缓存使用量监视器,其用于提供所述多个高速缓存线在所述多个服务质量(QoS)类别当中的分配的指示;且
所述高速缓存分配电路经配置以基于由所述高速缓存使用量监视器提供的所述指示而选择所述最小分割区及所述最大分割区中的所述一者作为所述目标分割区。
5.根据权利要求1所述的高速缓存控制器,其中所述高速缓存分配电路经配置以通过机率性地选择所述最小分割区及所述最大分割区中的所述一者而选择所述最小分割区及所述最大分割区中的所述一者作为所述目标分割区。
6.根据权利要求5所述的高速缓存控制器,其进一步包括机率函数提供者电路;
其中所述高速缓存分配电路经配置以基于所述机率函数提供者电路而机率性地选择所述最小分割区及所述最大分割区中的所述一者。
7.根据权利要求1所述的高速缓存控制器,其中所述最小映射位掩码及所述最大映射位掩码将所述多个服务质量(QoS)类别中的所述服务质量(QoS)类别映射到为所述服务质量(QoS)类别所独占的所述多个高速缓存线的同一分割区。
8.根据权利要求1所述的高速缓存控制器,其中:
所述最小映射位掩码将所述多个服务质量(QoS)类别中的所述服务质量(QoS)类别映射到为所述服务质量(QoS)类别所独占的所述最小分割区;且
所述最大映射位掩码将所述多个服务质量(QoS)类别中的所述服务质量(QoS)类别映射到不为所述服务质量(QoS)类别所独占的所述最大分割区。
9.根据权利要求1所述的高速缓存控制器,其集成到集成电路IC中。
10.根据权利要求1所述的高速缓存控制器,其集成到选自由以下各者组成的群组的装置中:机顶盒;娱乐单元;导航装置;通信装置;固定位置数据单元;移动位置数据单元;个人数字助理PDA;电视;及调谐器。
11.根据权利要求1所述的高速缓存控制器,其集成到选自由以下各者组成的群组的装置中:移动电话;计算机;监视器;收音机;音乐播放器;及视频播放器。
12.根据权利要求1所述的高速缓存控制器,其集成到选自由以下各者组成的群组的装置中:蜂窝电话;便携式计算机;桌上型计算机;计算机监视器;卫星收音机;数字音乐播放器;便携式音乐播放器;及数字视频播放器。
13.根据权利要求1所述的高速缓存控制器,其集成到选自由以下各者组成的群组的装置中:数字视频光盘(DVD)播放器;及便携式数字视频播放器。
14.一种共享高速缓存存储器系统的高速缓存控制器,其包括:
用于接收包括对应于多个服务质量(QoS)类别中的一服务质量(QoS)类别的服务质量识别符(QoSID)的存储器存取请求的装置;
用于确定所述存储器存取请求是否对应于所述共享高速缓存存储器系统的多个高速缓存线中的一高速缓存线的装置;
用于响应于确定所述存储器存取请求不对应于所述多个高速缓存线中的所述高速缓存线而选择由最小映射位掩码映射到对应于所述服务质量识别符(QoSID)的所述服务质量(QoS)类别的最小分割区及由最大映射位掩码映射到对应于所述服务质量识别符(QoSID)的所述服务质量(QoS)类别的最大分割区中的一者作为目标分割区的装置;及
用于响应于确定所述存储器存取请求不对应于所述多个高速缓存线中的所述高速缓存线而将所述多个高速缓存线中的所述高速缓存线分配在所述目标分割区内以用于高速缓存填充操作的装置。
15.根据权利要求14所述的高速缓存控制器,其中所述用于将所述高速缓存线分配在所述目标分割区内的装置包括:
用于将所述目标分割区内的所述多个高速缓存线中的一或多个高速缓存线识别为一或多个逐出候选者的装置;及
用于从所述共享高速缓存存储器系统逐出所述一或多个逐出候选者中的一逐出候选者的装置。
16.根据权利要求14所述的高速缓存控制器,其进一步包括用于提供平均分配目标值的装置;
其中所述用于选择所述最小分割区及所述最大分割区中的所述一者作为所述目标分割区的装置包括用于选择所述最小分割区及所述最大分割区中的所述一者以致使经分配到对应于所述服务质量识别符(QoSID)的所述服务质量(QoS)类别的高速缓存线的实际分配接近所述平均分配目标值的装置。
17.根据权利要求16所述的高速缓存控制器,其中所述用于选择所述最小分割区及所述最大分割区中的所述一者作为所述目标分割区的装置包括用于基于由高速缓存使用量监视器提供的所述多个高速缓存线在所述多个服务质量(QoS)类别当中的分配的指示而选择所述最小分割区及所述最大分割区中的所述一者的装置。
18.根据权利要求14所述的高速缓存控制器,其中所述用于选择所述最小分割区及所述最大分割区中的所述一者作为所述目标分割区的装置包括用于机率性地选择所述最小分割区及所述最大分割区中的所述一者的装置。
19.根据权利要求18所述的高速缓存控制器,其中所述用于机率性地选择所述最小分割区及所述最大分割区中的所述一者的装置是基于机率函数提供者电路。
20.根据权利要求14所述的高速缓存控制器,其中所述最小映射位掩码及所述最大映射位掩码将所述多个服务质量(QoS)类别中的所述服务质量(QoS)类别映射到为所述服务质量(QoS)类别所独占的所述多个高速缓存线的同一分割区。
21.根据权利要求14所述的高速缓存控制器,其中:
所述最小映射位掩码将所述多个服务质量(QoS)类别中的所述服务质量(QoS)类别映射到为所述服务质量(QoS)类别所独占的所述最小分割区;且
所述最大映射位掩码将所述多个服务质量(QoS)类别中的所述服务质量(QoS)类别映射到不为所述服务质量(QoS)类别所独占的所述最大分割区。
22.一种用于分配共享高速缓存存储器系统的高速缓存线的方法,其包括:
由高速缓存控制器的高速缓存分配电路接收包括对应于多个服务质量(QoS)类别中的一服务质量(QoS)类别的服务质量识别符(QoSID)的存储器存取请求;
确定所述存储器存取请求是否对应于所述共享高速缓存存储器系统的多个高速缓存线中的一高速缓存线;及
响应于确定所述存储器存取请求不对应于所述多个高速缓存线中的所述高速缓存线:
选择由最小映射位掩码映射到对应于所述服务质量识别符(QoSID)的所述服务质量(QoS)类别的最小分割区及由最大映射位掩码映射到对应于所述服务质量识别符(QoSID)的所述服务质量(QoS)类别的最大分割区中的一者作为目标分割区;及
将所述多个高速缓存线中的所述高速缓存线分配在所述目标分割区内以用于高速缓存填充操作。
23.根据权利要求22所述的方法,其中将所述多个高速缓存线中的所述高速缓存线分配在所述目标分割区内包括:
将所述目标分割区内的一或多个高速缓存线识别为一或多个逐出候选者;及
从所述共享高速缓存存储器系统逐出所述一或多个逐出候选者中的一逐出候选者。
24.根据权利要求22所述的方法,其进一步包括提供平均分配目标值;
其中选择所述最小分割区及所述最大分割区中的所述一者作为所述目标分割区包括选择所述最小分割区及所述最大分割区中的所述一者以致使经分配到对应于所述服务质量识别符(QoSID)的所述服务质量(QoS)类别的高速缓存线的实际分配接近所述平均分配目标值。
25.根据权利要求24所述的方法,其中选择所述最小分割区及所述最大分割区中的所述一者作为所述目标分割区包括基于由高速缓存使用量监视器提供的所述多个高速缓存线在所述多个服务质量(QoS)类别当中的分配的指示而选择所述最小分割区及所述最大分割区中的所述一者。
26.根据权利要求22所述的方法,其中选择所述最小分割区及所述最大分割区中的所述一者作为所述目标分割区包括机率性地选择所述最小分割区及所述最大分割区中的所述一者。
27.根据权利要求26所述的方法,其中机率性地选择所述最小分割区及所述最大分割区中的所述一者是基于机率函数提供者电路。
28.根据权利要求22所述的方法,其中所述最小映射位掩码及所述最大映射位掩码将所述多个服务质量(QoS)类别中的所述服务质量(QoS)类别映射到为所述服务质量(QoS)类别所独占的所述多个高速缓存线的同一分割区。
29.根据权利要求22所述的方法,其中:
所述最小映射位掩码将所述多个服务质量(QoS)类别中的所述服务质量(QoS)类别映射到为所述服务质量(QoS)类别所独占的所述最小分割区;且
所述最大映射位掩码将所述多个服务质量(QoS)类别中的所述服务质量(QoS)类别映射到不为所述服务质量(QoS)类别所独占的所述最大分割区。
CN201580061555.XA 2014-11-25 2015-11-09 在共享高速缓存存储器系统中提供共享高速缓存存储器分配控制 Active CN107111557B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462084480P 2014-11-25 2014-11-25
US62/084,480 2014-11-25
US14/861,025 2015-09-22
US14/861,025 US9678875B2 (en) 2014-11-25 2015-09-22 Providing shared cache memory allocation control in shared cache memory systems
PCT/US2015/059677 WO2016085641A1 (en) 2014-11-25 2015-11-09 Providing shared cache memory allocation control in shared cache memory systems

Publications (2)

Publication Number Publication Date
CN107111557A CN107111557A (zh) 2017-08-29
CN107111557B true CN107111557B (zh) 2018-09-14

Family

ID=56010346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580061555.XA Active CN107111557B (zh) 2014-11-25 2015-11-09 在共享高速缓存存储器系统中提供共享高速缓存存储器分配控制

Country Status (11)

Country Link
US (1) US9678875B2 (zh)
EP (1) EP3224728B1 (zh)
JP (1) JP6262407B1 (zh)
KR (1) KR101851294B1 (zh)
CN (1) CN107111557B (zh)
AU (1) AU2015354703A1 (zh)
BR (1) BR112017010809A2 (zh)
ES (1) ES2693341T3 (zh)
HU (1) HUE040009T2 (zh)
TW (1) TWI619016B (zh)
WO (1) WO2016085641A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10055158B2 (en) * 2016-09-22 2018-08-21 Qualcomm Incorporated Providing flexible management of heterogeneous memory systems using spatial quality of service (QoS) tagging in processor-based systems
US10678690B2 (en) * 2017-08-29 2020-06-09 Qualcomm Incorporated Providing fine-grained quality of service (QoS) control using interpolation for partitioned resources in processor-based systems
US10649900B2 (en) * 2017-11-06 2020-05-12 Samsung Electronics Co., Ltd. Method to avoid cache access conflict between load and fill
CN109240829B (zh) * 2018-08-29 2021-02-02 盛科网络(苏州)有限公司 用于交换芯片的申请、管理独占资源的方法及装置
US10884959B2 (en) * 2019-02-13 2021-01-05 Google Llc Way partitioning for a system-level cache
EP3924832A4 (en) * 2019-02-14 2022-11-23 Telefonaktiebolaget Lm Ericsson (Publ) MEMORY MANAGEMENT CONTROL METHODS AND DEVICES
US11093287B2 (en) 2019-05-24 2021-08-17 Intel Corporation Data management for edge architectures
US11762770B2 (en) * 2020-10-22 2023-09-19 EMC IP Holding Company LLC Cache memory management

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101042682A (zh) * 2006-03-22 2007-09-26 株式会社东芝 访问控制装置、系统和方法,处理器
CN101504628A (zh) * 2007-11-28 2009-08-12 国际商业机器公司 用于干预共享高速缓存线的方法和系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147218A (ja) * 1994-11-24 1996-06-07 Fujitsu Ltd キャッシュ制御装置
US20040199727A1 (en) * 2003-04-02 2004-10-07 Narad Charles E. Cache allocation
US7047366B1 (en) 2003-06-17 2006-05-16 Emc Corporation QOS feature knobs
EP1913533A1 (en) * 2005-08-05 2008-04-23 Pfizer Products Incorporated Automated batch manufacturing
US7725657B2 (en) * 2007-03-21 2010-05-25 Intel Corporation Dynamic quality of service (QoS) for a shared cache
US8296522B2 (en) 2007-12-20 2012-10-23 Intel Corporation Method, apparatus, and system for shared cache usage to different partitions in a socket with sub-socket partitioning
TW201110619A (en) * 2009-09-01 2011-03-16 Fiber Logic Communications Inc Telecommunication network transmission diver system and method
US8621149B2 (en) 2009-12-23 2013-12-31 Intel Corporation Controlling access to a cache memory using privilege level information
TWI584662B (zh) * 2011-06-01 2017-05-21 內數位專利控股公司 內容傳遞網路互連(cdni)機制
US8850122B2 (en) 2011-11-30 2014-09-30 International Business Machines Corporation Cache optimization via predictive cache size modification
US8751746B2 (en) 2011-12-15 2014-06-10 Apple Inc. QoS management in the L2 cache
US9824013B2 (en) 2012-05-08 2017-11-21 Qualcomm Incorporated Per thread cacheline allocation mechanism in shared partitioned caches in multi-threaded processors
KR101593161B1 (ko) * 2014-10-02 2016-02-15 한국전자통신연구원 메모리 관리 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101042682A (zh) * 2006-03-22 2007-09-26 株式会社东芝 访问控制装置、系统和方法,处理器
CN101504628A (zh) * 2007-11-28 2009-08-12 国际商业机器公司 用于干预共享高速缓存线的方法和系统

Also Published As

Publication number Publication date
WO2016085641A1 (en) 2016-06-02
KR101851294B1 (ko) 2018-04-23
KR20170087457A (ko) 2017-07-28
TWI619016B (zh) 2018-03-21
EP3224728B1 (en) 2018-08-15
AU2015354703A1 (en) 2017-05-04
TW201633148A (zh) 2016-09-16
HUE040009T2 (hu) 2019-02-28
US9678875B2 (en) 2017-06-13
US20160147656A1 (en) 2016-05-26
ES2693341T3 (es) 2018-12-11
BR112017010809A2 (pt) 2017-12-26
JP2018503888A (ja) 2018-02-08
JP6262407B1 (ja) 2018-01-17
EP3224728A1 (en) 2017-10-04
CN107111557A (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
CN107111557B (zh) 在共享高速缓存存储器系统中提供共享高速缓存存储器分配控制
US20200192715A1 (en) Workload scheduler for memory allocation
CN113424160B (zh) 一种处理方法、装置及相关设备
TWI509519B (zh) 維持公平和秩序的資源管理子系統
US20130111135A1 (en) Variable cache line size management
JP7108135B2 (ja) 並び替えの間のキャッシュ一貫性を維持する方法
Beckmann et al. Scaling distributed cache hierarchies through computation and data co-scheduling
CN109582600A (zh) 一种数据处理方法及装置
CN108932150A (zh) 基于ssd和磁盘混合存储的缓存方法、装置及介质
JP6262408B1 (ja) 共有キャッシュメモリシステムに関する概算使用測定値の生成
Ghandeharizadeh et al. CAMP: A cost adaptive multi-queue eviction policy for key-value stores
TW201015334A (en) Enhanced coherency tracking with implementation of region victim hash for region coherence arrays
TW202238368A (zh) 記憶體通道控制器之晶片上互連
US10540217B2 (en) Message cache sizing
CN109451008B (zh) 一种云平台下多租户的带宽保障框架和成本优化方法
Denz et al. Think global, act local: A buffer cache design for global ordering and parallel processing in the WAFL file system
Sivaramakrishnan et al. Next generation SPARC processor cache hierarchy
Zhang et al. A multi-level cache framework for remote resource access in transparent computing
CN104809078B (zh) 基于退出退让机制的共享高速缓存硬件资源访问方法
Yu et al. FaaSwap: SLO-Aware, GPU-Efficient Serverless Inference via Model Swapping
US8621156B1 (en) Labeled cache system
Li et al. Application controlled caching for web servers
Eads et al. NbQ-CLOCK: A non-blocking queue-based CLOCK algorithm for web-object caching
De Klerk et al. Cache balancer: Access rate and pain based resource management for chip multiprocessors
Young et al. Dynamic partitioned global address spaces for power efficient dram virtualization

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
GR01 Patent grant
GR01 Patent grant