CN107111553A - 用于在多集群异构处理器架构中提供动态高速缓存扩展的系统和方法 - Google Patents

用于在多集群异构处理器架构中提供动态高速缓存扩展的系统和方法 Download PDF

Info

Publication number
CN107111553A
CN107111553A CN201680005459.8A CN201680005459A CN107111553A CN 107111553 A CN107111553 A CN 107111553A CN 201680005459 A CN201680005459 A CN 201680005459A CN 107111553 A CN107111553 A CN 107111553A
Authority
CN
China
Prior art keywords
processor
cache
cluster
caches
processor cluster
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201680005459.8A
Other languages
English (en)
Other versions
CN107111553B (zh
Inventor
H·J·朴
K·V·万卡
S·K·安巴普拉姆
S·K·阿加瓦尔
A·纳姆乔希
H·布塔达
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 CN107111553A publication Critical patent/CN107111553A/zh
Application granted granted Critical
Publication of CN107111553B publication Critical patent/CN107111553B/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
    • 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
    • G06F11/3409Recording 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 for performance assessment
    • G06F11/3433Recording 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 for performance assessment for load management
    • 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
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/452Instruction code
    • 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/601Reconfiguration of cache memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

描述了多集群异构处理器架构中的动态高速缓存扩展:系统包括具有第一二级(L2)高速缓存的第一处理器集群和具有第二L2高速缓存的第二处理器集群。系统还包括与第一L2高速缓存和第二L2高速缓存通信的控制器。控制器从第一处理器集群接收处理器工作负荷输入和高速缓存工作负荷输入。基于处理器工作负载输入和高速缓存工作负荷输入,高速缓存控制器确定与第一处理器集群相关联的当前任务是否受第一L2高速缓存的大小阈值或第一处理器集群的性能阈值限制。如果当前任务受第一L2高速缓存的大小阈值的限制,则控制器使用第二L2高速缓存的至少一部分作为第一L2高速缓存的扩展。

Description

用于在多集群异构处理器架构中提供动态高速缓存扩展的系 统和方法
背景技术
便携式计算设备(例如,蜂窝电话、智能手机、平板电脑、便携式数字助理(PDAs)和便携式游戏主机)持续提供不断增加的一系列特征和服务,并且为用户提供对信息、资源和通信的前所未有的访问水平。为了跟上这些服务增强的步伐,这些设备已经变得更强大和更复杂。便携式计算设备目前通常包括片上系统(SoC),该片上系统包括一个或多个嵌入在单个基板上的芯片组件(例如,一个或多个中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器等)。
这样的便携式计算设备或其它计算机系统或设备可以包括多集群异构处理器架构,将多集群异构处理器架构的一个示例称为“大、小集群(big.LITTLE)”异构架构。“大、小集群”和其它异构架构通常包括一组处理器核心,其中相对较慢、功率较低的处理器核心的集合与相对更强大的处理器核心的集合相耦合。例如,通常将具有较高执行能力的处理器或处理器核心的集合称为“大集群”,而将具有最小功耗但是能够提供合适的性能(但是比大集群的性能低)的处理器或处理器核心的另外的集合称为“小集群”。高速缓存控制器可以根据会基于各种使用情况而变化的性能和/或功率需求来调度要由大集群或者小集群执行的任务。大集群可以用于期望更高性能的情况(例如,图形、游戏等),并且可以将小集群用于相对较低功率的使用情况(例如,文本应用程序)。
然而,在某些使用情况中,现有的多集群异构处理器架构不能有效地优化性能/功率。例如,具有大的存储器存取但是相对轻的CPU工作负荷的使用情况可能经历不期望的二级(L2)高速缓存未命中。由于执行延时,现有的架构可能将这种类型的使用情况/工作负荷解释为相对重的CPU工作负荷。因此,如果将任务迁移到大集群,则系统可能会遭受功率损失。替代地,如果将任务留在小集群上运行,则性能可能会受影响。此外,如果调度器将任务从具有较小大小的L2高速缓存的小集群迁移到具有较大L2高速缓存的大集群,则系统可能消耗过多的功率。如果调度器将任务留在具有较小大小的L2高速缓存的小集群中,则可能导致低性能和不期望的用户体验。
因此,本领域需要用于在多集群异构处理器架构中调度和管理任务的具有优化的性能和功耗的系统和方法。
发明内容
公开了用于在便携式计算设备中的多集群异构处理器架构中提供动态高速缓存扩展的方法、系统和计算机程序的各种实施例。一种这样的方法包括:在包括第一处理器集群和具有相关联的第二高速缓存的第二处理器集群的多集群异构处理器架构中,接收针对第一处理器集群和相关联的第一高速缓存的处理器工作负荷输入和高速缓存工作负荷输入。基于该处理器工作负荷输入和该高速缓存工作负荷输入,确定与该第一处理器集群相关联的当前任务是否受该第一高速缓存的大小阈值或该第一处理器集群的性能阈值限制。如果该当前任务受该第一高速缓存的该大小阈值限制,则可以将与该第二处理器集群相关联的该第二高速缓存的至少一部分用作该第一高速缓存的扩展。
另外的实施例是具有多集群异构处理器架构的用于提供动态高速缓存扩展的系统。该系统包括:包括第一二级(L2)高速缓存的第一处理器集群和包括第二L2高速缓存的第二处理器集群。与该第一L2高速缓存和该第二L2高速缓存通信的高速缓存控制器被配置为从该第一处理器集群接收处理器工作负荷输入和高速缓存工作负荷输入。基于该处理器工作负荷输入和该高速缓存工作负荷输入,该高速缓存控制器可以确定与该第一处理器集群相关联的当前任务是否受该第一L2高速缓存的大小阈值或该第一处理器集群的性能阈值限制。如果该当前任务受该第一L2高速缓存的该大小阈值限制,则该高速缓存控制器可以使用与该第二处理器集群相关联的该第二L2高速缓存的至少一部分作为该第一L2高速缓存的扩展。
附图说明
在附图中,除非另有指示,否则遍及各个视图的相同附图标记指代相同部分。针对具有诸如“102A”或“102B”的字母字符名称的附图标记,字母字符名称可以区分同一附图中呈现的两个相似的部分或要素。当旨在使附图标记涵盖在所有附图中具有相同附图标记的所有部分时,可以省略针对附图标记的字母字符名称。
图1是包括多集群异构处理器架构的系统的实施例的方块图,该架构包括用于在处理器集群之间提供动态高速缓存扩展和动态高速缓存重新分配的高速缓存调度器。
图2是示出图1的系统中的高速缓存调度器的实施例的数据输入和输出的方块图。
图3是示出图2中的高速缓存调度器的示例性数据输入和结果数据输出的数据表。
图4是示出由高速缓存调度器实现的用于提供动态高速缓存扩展和动态高速缓存重新分配的方法的实施例的流程图。
图5a是示出用于实现动态高速缓存扩展的图1的系统的实施例的功能方块图。
图5b示出了图5a的系统,其中通过使用另一个处理器集群的L2高速缓存的部分作为额外的L2高速缓存来扩展一个处理器集群的L2高速缓存。
图5c示出了图5a的系统,其中通过使用另一个处理器集群的L2高速缓存的部分作为L3高速缓存来扩展一个处理器集群的L2高速缓存。
图6是示出用于实现动态高速缓存扩展的物理到逻辑高速缓存映射的方块图。
图7是由高速缓存控制器管理的用于实现图6的物理到逻辑映射的查找表的实施例。
图8a是示出用于实现动态高速缓存重新分配的图1的系统的实施例的功能方块图。
图8b示出了图8a的系统,其中将任务从一个处理器集群重新分配到另一个处理器集群。
图9示出了图1的系统的另外的实施例,该系统用于基于监听命中计数器,在已经将任务迁移到另外的处理器集群中的目的地L2高速缓存之后,关闭源L2高速缓存。
图10示出了并入示例性便携式计算设备(PCD)的图1-9的系统和方法。
具体实施方式
在本文中,词语“示例性”用于意指“用作示例、实例或举例说明”。本文描述为“示例性”的任何方面不一定被解释为相对于其它方面是优选的或有利的。
在本说明书中,术语“应用程序”或“图像”还可以包括具有可执行内容的文件,例如:目标代码、脚本、字节码、标记语言文件和补丁。此外,本文提及的“应用程序”还可以包括本质上不可执行的文件,例如可能需要打开的文档或需要访问的其它数据文件。
术语“内容”还可以包括具有可执行内容的文件,例如:目标代码、脚本、字节码、标记语言文件和补丁。此外,本文中提及的“内容”还可以包括本质上不可执行的文件,例如可能需要打开的文档或需要访问的其它数据文件。
如在本说明书中所使用的,术语“组件”、“数据库”、“模块”、“系统”等旨在指代计算机相关实体,或者是硬件、固件、硬件和软件的组合、软件或者是执行中的软件。例如,组件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。作为说明,运行在计算设备上的应用程序和计算设备两者都可以是组件。一个或多个组件可以驻留在进程和/或执行线程内,并且可以将组件本地化在一个计算机上和/或可以将组件分布在两个或多个计算机之间。此外,这些组件可以从具有存储于其上的各种数据结构的各种计算机可读介质执行。组件可以通过诸如根据具有一个或多个数据分组的信号的本地进程和/或远程进程的方式进行通信(例如,来自一个组件的数据与本地系统中的、分布式系统中的另外的组件通过信号的方式进行交互和/或跨越诸如因特网的网络与其它系统通过信号的方式进行交互)。
图1是包括多集群异构处理器架构的系统100的实施例的方块图。系统100可以在任何计算设备中实现,包括个人计算机、工作站、服务器、诸如蜂窝电话、便携式数字助理(PDA)、便携式游戏主机、掌上电脑或平板电脑的便携式计算设备(PCD)。多集群异构处理器架构包括耦合到高速缓存控制器101的多个处理器集群。如本领域已知的,每个处理器集群可以包括带有相应的专用高速缓存的一个或多个处理器或处理器核心(例如,中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)等)。
在图1的实施例中,如前所述,处理器集群102和104可以包括“大、小集群”异构架构,其中处理器集群102包括小集群并且处理器集群104包括大集群。小处理器集群102包括相对较慢并且比大处理器集群104中的CPU核心114和116消耗较少功率的多个中央处理单元(CPU)核心108和110。应当理解,大集群CPU核心114和116可以通过如下各项与小集群CPU核心108和110区分开:例如,相对较高的每周期指令数(IPC)、较高的工作频率、和/或具有以消耗额外的功率为代价使得相对更多的性能成为可能的微架构特征。此外,诸如例如包括GPU核心120和122的处理器集群106的额外的处理器集群可以包括在系统100中。
处理器集群102、104和106可以具有由系统100中的相应处理器使用的独立高速缓存存储器,以减少用于从主存储器144访问数据的平均时间。在实施例中,可以将独立高速缓存存储器和主存储器144组织为高速缓存级别的层级(例如,一级(L1)、二级(L2)、三级(L3))。处理器集群102可以包括L2高速缓存112,处理器集群104可以包括L2高速缓存118,并且处理器集群106可以包括L2高速缓存124。
如图1中所示,高速缓存控制器101可以包括高速缓存调度器140、高速缓存互连111以及用于分别监视L2高速缓存112、118和124的性能的多个高速缓存监视器126、128和130。高速缓存互连111包括具有用于维持主存储器144和L2高速缓存112、118和124之间一致性的相关联的逻辑的互连或总线。如下面更详细描述的,高速缓存调度器140通常包括被配置为监视处理器和高速缓存性能并且根据系统100的功率和性能要求来最佳地管理向处理器集群101、104和106的任务调度的逻辑。
图2是示出高速缓存调度器140的实施例的数据输入和输出的方块图。高速缓存调度器140可以从每个处理器集群接收处理器使用输入数据202和L2高速缓存使用率/未命中率输入数据204作为数据输入。应当理解,处理器使用输入数据202可以基于从处理器集群102、104和106接收的以下的或其它的参数中的一个或多个参数来指示处理器工作负荷:每周期指令数(IPC)、每秒百万条指令数(MIPS)、频率、CPU活动持续时间百分比。L2高速缓存输入数据204可以基于经由高速缓存监视器126、128和130接收的以下的或其它的参数中的一个或多个参数来指示L2高速缓存工作负荷或性能:每1000条指令高速缓存未命中数(MPKI)、每1000条指令高速缓存访问数(APKI)、L2高速缓存未命中率(MPKI/APKI)、由高速缓存未命中造成的CPU停顿时间/比率或停顿时钟数、以及指示由高速缓存未命中造成的CPU停顿数量的每秒百万周期数(MCPS)。
基于输入数据202和204,高速缓存调度器140确定是否由于(1)处理器/CPU性能或(2)L2高速缓存的大小正在(或将要)导致处理瓶颈或其它系统限制。例如,高速缓存调度器140可以确定与小处理器集群102相关联的当前任务受CPU性能限制。处理器使用输入数据202可能指示CPU工作负荷大于能够由小处理器集群102理想地处理的工作负荷。作为响应,高速缓存调度器140(例如,动态高速缓存重新分配模块152)可以启动任务迁移模式208以将任务从小处理器集群102迁移到大处理器集群104,其中该任务能够由CPU 114或CPU 116来执行,该CPU 114或CPU 116执行该任务的性能比经由CPU 108或CPU 100可获得的性能更理想。替代地,高速缓存调度器140可以确定与小处理器集群102相关联的当前任务受L2高速缓存112的大小限制。输入数据204可以指示L2高速缓存112的大小是限制(而不是CPU性能)。作为响应,高速缓存调度器140(例如,动态高速缓存扩展模块150)可以启动高速缓存扩展模式206以经由小处理器集群102,但是通过使用L2高速缓存118(其在大处理器集群104中)的部分作为扩展的L2高速缓存或L3高速缓存来处理任务。如果当前任务没有性能问题,则缓存调度器140可以启动默认分隔L2模式210以利用小处理器集群102的L2高速缓存112继续当前任务。
如图3所示,高速缓存调度器140可以访问和管理表300以确定是启动高速缓存扩展模式206,还是启动任务迁移模式208,还是启动默认分隔L2模式210。表300可以定义高速缓存大小阈值(阈值2)和性能阈值(阈值1)。基于数据输入202和204,高速缓存调度器140可以确定四个示例性场景。在场景4中,当小处理器集群102具有不超过阈值1的CPU使用百分比,但是具有超过阈值2的L2高速缓存使用率/未命中率时,高速缓存调度器140可以启动高速缓存扩展模式206。在场景3中,当小处理器集群102具有超过阈值1的CPU使用百分比时,不管L2高速缓存使用率/未命中率如何,高速缓存调度器140可以启动任务迁移模式208。在场景2中,当小处理器集群102具有不超过阈值1的CPU使用百分比和不超过阈值2的L2高速缓存使用率/未命中率时,高速缓存调度器140可以启动默认分隔L2模式210。情景1指大处理器集群104正在活动地处理任务并且系统100在针对大处理器集群104的默认分隔L2模式210中进行操作的情况。
图4是示出由高速缓存调度器140实现的方法400的实施例的流程图。在方块402处,高速缓存调度器140接收针对小处理器集群102及相关联的L2高速缓存112的处理器工作负荷输入和高速缓存工作负荷输入。处理器工作负荷输入和高速缓存工作负荷输入可以包括上述任何参数(输入202和204-图2)。在方块404处,高速缓存调度器140确定与小处理器集群102相关联的当前任务是否受L2高速缓存112的大小阈值或者CPU 108或CPU110的性能阈值限制。性能阈值和大小阈值可以以类似图3中的表300的方式来定义。应当理解,可以编程方式定义阈值或以其它方式定义阈值。如果高速缓存调度器140确定当前任务受L2高速缓存112的大小阈值限制(判定块406),则高速缓存调度器140可以使用与大处理器集群104相关联的L2高速缓存118的至少一部分作为L2高速缓存112的扩展(方块408)。
图5a-5c以示意形式示出了用于动态扩展L2高速缓存112的两个示例性实施例。如图5a中所示,当前任务可以与小处理器集群102中的CPU 108相关联。CPU 108和L2高速缓存112被突出显示为灰色方块。在图5b中,可以将L2高速缓存118(大处理器集群104)的部分502分配作为针对L2高速缓存112(小处理器集群102)的扩展L2高速缓存。图5c示出了另外的实施例,其中将L2高速缓存118(大处理器集群104)的部分504分配作为由L2高速缓存112(小处理器集群102)使用的L3高速缓存。应当理解,可以根据在系统100中实现的高速缓存级别的层级来采用各种高速缓存技术。
图6示出了用于实现动态高速缓存扩展模块150的物理高速缓存602到逻辑高速缓存604的示例性映射。可以将物理高速缓存602按如下内容分配。处理器集群A可以在L2高速缓存A中包括物理高速缓存部分A1和A2。处理器集群B可以在L2高速缓存B中包括物理高速缓存部分B1、B2、B3和B4。处理器集群C可以在L2高速缓存C中包括物理高速缓存部分C1、C2和C3。在操作中并且基于数据输入202和204,高速缓存调度器140可以将来自L2高速缓存B(处理器集群B)的物理高速缓存部分B1、B2和B3分配给L2高速缓存A(处理器集群A)。可以将来自高速缓存B(处理器集群B)的物理高速缓存部分B分配给L2高速缓存C(处理器集群C)。在该操作使用情况中,可以将处理器集群B停用并且将其功率关闭以节省功耗。图7示出了用于实现图6的物理到逻辑高速缓存映射的映射表700。
再次参考图4,如果高速缓存调度器140确定当前任务不受L2高速缓存112的大小阈值限制(判定块406),则控制可以流向判定块410以确定当前任务是否受L2高速缓存112的性能阈值限制。如果不超过性能阈值,则高速缓存调度器140可以使用默认L2分隔模式210处理当前任务(方块412)。如果超过性能阈值,则高速缓存调度器可以将当前任务从小处理器集群102迁移到大处理器集群104(方块414)。图8a和8b以示意的形式示出了示例性任务迁移。在图8a中,当前任务802与小处理器集群102中的CPU 110相关联。如图8b中所示,如果超过性能阈值,则高速缓存调度器140可以将任务802从CPU 110迁移到CPU 114。
根据系统100的另外的示例性实施例,当任务从小处理器集群102迁移到大处理器集群104时,大处理器集群104中的L2高速缓存118可以从小处理器集群102中的L2高速缓存112获取其所有工作集。替代地,L2高速缓存118可以从小处理器集群102中的L2高速缓存112获取其工作集的部分,同时从主存储器144或较低级高速缓存(例如,L3高速缓存)获取新的集合。在这方面,可以将源L2高速缓存定义为被执行的线程正在从其中迁移出的L2高速缓存。高速缓存调度器140还可以被配置为只要从源L2高速缓存能够维持阈值高速缓存命中比率,就保持源L2高速缓存在线。当命中比率跌到低于阈值高速缓存命中比率时,可以清空并关闭源L2高速缓存。
如图9所示,系统100可以被配置为调整阈值高速缓存命中率以优化性能和/或功率。在实施例中,调度器907和低功率模式驱动器901可以以软件实现,并且超时选择算法903可以以硬件实现。例如,考虑操作系统905经常执行任务迁移的情况。如上面更详细地描述的那样,调度器907可以接收任务唤醒输入902并且确定是否应该执行任务迁移(判定块904)。如果调度器907确定不执行任务迁移,则在方块906处,可以将该任务调度在原始处理器集群上。如果需要迁移任务,则在方块908处,可以将任务迁移到目的地处理器集群。
在示例性实施例中,调整/超时技术由图9中的步骤A、B、C、D和E表示。在步骤A处,任务迁移可以触发例如对低功率模式驱动器901的控制信号。在方块910处,低功率模式驱动器901确定是否应当将源处理器中的核心关闭。如果源L2高速缓存909能够关闭(判定块910),则在步骤B处,可以设置关闭超时和监听命中阈值。可以基于由超时选择算法903接收的推荐超时(步骤C)来设置关闭超时(方块920)。在步骤D处,可以在方块922和924处分别将监听命中阈值和监听命中超时存储在源L2高速缓存903中。在步骤E处,响应于基于监听命中阈值、监听命中计数器和监听命中超时的超时IRQ线,可以关闭源L2高速缓存909(方块928)。
系统100可以并入任何期望的计算系统中。图10示出了并入示例性便携式计算设备(PCD)1000中的系统100。片上系统(SoC)103可以包括高速缓存调度器140和处理器集群102、104和106。可以将显示控制器328和触摸屏控制器1006耦合到一个或多个处理器集群。反过来,可以将片上系统103外部的触摸屏显示器1006耦合到显示控制器328和触摸屏控制器330。
图10还示出了将诸如相位交替行(PAL)编码器、按顺序传送彩色与存储(SECAM)编码器或国家电视系统委员会(NTSC)编码器的视频编码器334耦合到一个或多个处理器集群102、104和106。此外,将视频放大器336耦合到视频编码器334和触摸屏显示器1006。此外,将视频端口338耦合到视频放大器336。如图10中所示,将通用串行总线(USB)控制器340耦合到一个或多个处理器集群。此外,将USB端口342耦合到USB控制器340。还可以将存储器144和用户身份模块(SIM)卡346耦合到处理器集群。
此外,如图10中所示,可以将数字照相机348耦合到处理器集群。在示例性方面,数字照相机348是电荷耦合器件(CCD)照相机或互补金属氧化物半导体(CMOS)照相机。
此外,如图10中所示,可以将立体声音频编码器-解码器(CODEC)350耦合到处理器集群。此外,可以将音频放大器352耦合到立体声音频CODEC 350。在示例性方面中,将第一立体声扬声器354和第二立体声扬声器356耦合到音频放大器352。还可以将麦克风放大器358耦合到立体声音频CODEC 350。额外地,可以将麦克风360耦合到麦克风放大器358。在特定方面中,可以将调频(FM)无线电调谐器362耦合到立体声音频CODEC 350。而且,将FM天线364耦合到FM无线电调谐器362。此外,可以将立体声耳机366耦合到立体声音频CODEC 350。
图10还示出了可以将射频(RF)收发机368耦合到处理器集群。可以将RF开关370耦合到RF收发机368和RF天线372。可以将键盘204、具有麦克风376的单声道耳机和振动器设备378耦合到处理器集群。
图10还示出了可以将电源380耦合到片上系统103。在特定方面中,电源380是向需要能量的PCD 1000的各种组件提供能量的直流(DC)电源。此外,在特定方面中,电源是可充电DC电池或者从连接到交流(AC)能量源的AC到DC变压器导出的DC电源。
图10还示出PCD 1000还可以包括能够用于访问诸如局域网、个域网或任何其它网络的数据网络的网卡388。网卡388可以是蓝牙网卡、WiFi网卡、个域网(PAN)卡、个域网超低功率技术(PeANUT)网卡、电视/有线/卫星调谐器或本领域公知的任何其它网卡。此外,网卡388可以并入芯片中,即,网卡388可以是芯片中的完整解决方案,并且可以不是单独的网卡388。
参考图10,应当理解,存储器144、RAM卡105、触摸屏显示器1006、视频端口338、USB端口342、照相机348、第一立体声扬声器354、第二立体声扬声器356、麦克风360、FM天线364、立体声耳机366、RF开关370、RF天线372、键盘374、单声道耳机376、振动器378和电源380可以在片上系统103的外部。
在本说明书中描述的过程或过程流程中的某些步骤自然地先于其它步骤以使本发明如所描述地运行。然而,如果这样的顺序或次序不改变本发明的功能,则本发明不限于所描述的步骤的顺序。也就是说,应当认识到,在不脱离本发明的范围和精神的情况下,可以在其它步骤之前、之后执行一些步骤或与其它步骤并行地(基本上同时)执行一些步骤。在一些实例中,在不脱离本发明的情况下,可以省略或不执行某些步骤。此外,诸如“之后”、“然后”、“下一个”等的词语不旨在限制步骤的顺序。这些词语简单地用于引导读者贯穿示例性方法的描述。
额外地,编程领域的普通技术人员能够编写计算机代码或确定合适的的硬件和/或电路以基于例如本说明书中的流程图和相关联的描述来毫无困难地实现所公开的发明。
因此,不能认为程序代码指令或详细硬件设备的特定集合的公开对于充分理解如何制造和使用本发明是必要的。在上述描述中并结合可以示出各种处理流程的附图更详细地解释了要求保护的计算机实现的过程的创造性功能。
在一个或多个示例性方面中,所描述的功能可以在硬件、软件、固件或其任何组合中实现。如果在软件中实现,这些功能可以作为一个或多个指令或代码存储在计算机可读介质上或作为在计算机可读介质上的一个或多个指令或代码进行发送。计算机可读介质包括计算机存储介质和包括便于将计算机程序从一个地方传送到另外的地方的任何介质的通信介质两者。存储介质可以是能够由计算机访问的任何可用介质。作为示例而非限制,这种计算机可读介质可以包括RAM、ROM、EEPROM、NAND闪存、NOR闪存、M-RAM、P-RAM、R-RAM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁存储设备或者可以用于以指令或数据结构的形式携带或存储所期望的程序代码并且可以由计算机访问的任何其它介质。
此外,可以将任何连接适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(“DSL”)或诸如红外、无线电和微波的无线技术从网站、服务器或其它远程源发送软件,那么同轴电缆、光纤电缆、双绞线、DSL或诸如红外、无线电和微波的无线技术则被包括在介质的定义中。
如本文所使用的,磁盘和光盘包括压缩光盘(“CD”)、激光光盘、光盘、数字多功能光盘(“DVD”)、软盘和蓝光光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。以上的组合也应当包括在计算机可读介质的范围内。
在不脱离本发明的精神和范围的情况下,对于本发明所属的技术领域的普通技术人员而言,替代实施例将变得显而易见。因此,尽管已经详细地示出和描述了所选择的方面,但是将理解的是,在不脱离如由随后的权利要求限定的本发明的精神和范围的情况下,可以进行各种替换和变更。

Claims (30)

1.一种用于在便携式计算设备中的多集群异构处理器架构中提供动态高速缓存扩展的方法,所述方法包括:
在包括第一处理器集群和具有相关联的第二高速缓存的第二处理器集群的多集群异构处理器架构中,接收针对所述第一处理器集群和相关联的第一高速缓存的处理器工作负荷输入和高速缓存工作负荷输入;
基于所述处理器工作负荷输入和所述高速缓存工作负荷输入来确定与所述第一处理器集群相关联的当前任务是否受所述第一高速缓存的大小阈值或所述第一处理器集群的性能阈值限制;以及
如果所述当前任务受所述第一高速缓存的所述大小阈值限制,则使用与所述第二处理器集群相关联的所述第二高速缓存的至少一部分作为所述第一高速缓存的扩展。
2.根据权利要求1所述的方法,还包括:
如果所述当前任务受所述第一高速缓存的所述性能阈值限制,则将所述当前任务从所述第一处理器集群迁移到所述第二处理器集群。
3.根据权利要求2所述的方法,还包括:
监视与所述第一高速缓存相关联的监听命中计数器;以及
如果所述监听命中计数器下降到低于阈值或如果达到关闭超时,则关闭所述第一高速缓存。
4.根据权利要求1所述的方法,其中,所述处理器工作负荷输入包括涉及如下各项中的一项或多项的信息:每时钟指令数、每单位时间指令数、频率水平、和处理器活动持续时间百分比,以及所述高速缓存工作负荷输入包括涉及如下各项中的一项或多项的信息:高速缓存未命中数、高速缓存访问数、高速缓存未命中率、以及由高速缓存未命中引起的处理器停顿时间或处理器停顿数。
5.根据权利要求1所述的方法,其中,确定与所述第一处理器集群相关联的所述当前任务受所述第一处理器集群的所述性能阈值限制包括:
确定如下各项中的一项或多项超过所述大小阈值:与所述第一处理器集群中的第一处理器相关联的处理器活动持续时间百分比、每时钟指令数、每单位时间指令数、和频率水平。
6.根据权利要求1所述的方法,其中,确定与所述第一处理器集群相关联的所述当前任务受所述第一高速缓存的所述大小阈值限制包括:
确定如下各项中的一项或多项超过所述大小阈值:高速缓存未命中数、高速缓存访问数、高速缓存未命中率、和由高速缓存未命中引起的处理器停顿时间或处理器停顿数。
7.根据权利要求1所述的方法,其中,所述第一处理器集群包括具有第一处理器类型的一个或多个处理器设备,并且所述第二处理器集群包括具有第二处理器类型的一个或多个处理器设备。
8.根据权利要求7所述的方法,其中,所述第一处理器类型和所述第二处理器类型包括如下各项中的一项或多项:多核处理器、中央处理单元(CPU)、图形处理器单元(GPU)和数字信号处理器(DSP)。
9.根据权利要求1所述的方法,其中,所述多集群异构处理器架构包括“大、小集群”异构架构,其中所述第一处理器集群包括一个或多个处理器核心,所述处理器核心的功率比包括于所述第二处理器集群的一个或多个处理器核心的功率低,并且其中,所述第一处理器集群中的所述第一高速缓存的大小比所述第二处理器集群中的所述第二高速缓存的大小更小。
10.根据权利要求1所述的方法,其中所述第一高速缓存和所述第二高速缓存包括针对相关联的处理器集群的二级(L2)高速缓存,并且其中,使用与所述第二处理器集群相关联的所述第二高速缓存的所述至少一部分作为所述第一高速缓存的扩展包括:使用所述第二高速缓存作为针对所述第一处理器集群的三级(L3)高速缓存。
11.一种用于在便携式计算设备中的多集群异构处理器架构中提供动态高速缓存扩展的系统,所述系统包括:
用于在包括第一处理器集群和具有相关联的第二高速缓存的第二处理器集群的多集群异构处理器架构中,接收针对所述第一处理器集群和相关联的第一高速缓存的处理器工作负荷输入和高速缓存工作负荷输入的单元;
用于基于所述处理器工作负荷输入和所述高速缓存工作负荷输入来确定与所述第一处理器集群相关联的当前任务是否受所述第一高速缓存的大小阈值或所述第一处理器集群的性能阈值限制的单元;以及
用于如果所述当前任务受所述第一高速缓存的所述大小阈值限制,则使用与所述第二处理器集群相关联的所述第二高速缓存的至少一部分作为所述第一高速缓存的扩展的单元。
12.根据权利要求11所述的系统,还包括:
用于如果所述当前任务受所述第一高速缓存的所述性能阈值限制,则将所述当前任务从所述第一处理器集群迁移到所述第二处理器集群的单元。
13.根据权利要求12所述的系统,还包括:
用于监视与所述第一高速缓存相关联的监听命中计数器的单元;以及
用于如果所述监听命中计数器超过阈值或如果达到关闭超时,则关闭所述第一高速缓存的单元。
14.根据权利要求1所述的系统,其中,所述处理器工作负荷输入包括涉及如下各项中的一项或多项的信息:每时钟指令数、每单位时间指令数、频率水平和处理器活动持续时间百分比,以及所述高速缓存工作负荷输入包括涉及如下各项中的一项或多项的信息:高速缓存未命中数、高速缓存访问数、高速缓存未命中率、以及由高速缓存未命中引起的处理器停顿时间或处理器停顿数。
15.根据权利要求11所述的系统,其中,用于确定与所述第一处理器集群相关联的所述当前任务受所述第一处理器集群的所述性能阈值限制的所述单元包括:
用于确定如下各项中的一项或多项超过所述大小阈值的单元:与所述第一处理器集群中的第一处理器相关联的处理器活动持续时间百分比、每时钟指令数、每单位时间指令数、和频率水平。
16.根据权利要求11所述的系统,其中,用于确定与所述第一处理器集群相关联的所述当前任务受所述第一高速缓存的所述大小阈值限制的所述单元包括:
用于确定如下各项中的一项或多项超过所述大小阈值的单元:高速缓存未命中数、高速缓存访问数、高速缓存未命中率和由高速缓存未命中引起的处理器停顿时间或处理器停顿数。
17.根据权利要求11所述的系统,其中,所述第一处理器集群包括具有第一处理器类型的一个或多个处理器设备,并且所述第二处理器集群包括具有第二处理器类型的一个或多个处理器设备。
18.根据权利要求17所述的系统,其中,所述第一处理器类型和所述第二处理器类型包括如下各项中的一项或多项:多核处理器、中央处理单元(CPU)、图形处理器单元(GPU)和数字信号处理器(DSP)。
19.根据权利要求11所述的系统,其中,所述多集群异构处理器架构包括“大、小集群”异构架构,其中所述第一处理器集群包括一个或多个处理器核心,所述处理器核心的功率比包括于所述第二处理器集群的一个或多个处理器核心的功率低,并且其中,所述第一处理器集群中的所述第一高速缓存的大小比所述第二处理器集群中的所述第二高速缓存的大小更小。
20.根据权利要求11所述的系统,其中,所述第一高速缓存和所述第二高速缓存包括针对相关联的处理器集群的二级(L2)高速缓存,并且其中,使用与所述第二处理器集群相关联的所述第二高速缓存的所述至少一部分作为所述第一高速缓存的扩展包括:使用所述第二高速缓存作为针对所述第一处理器集群的三级(L3)高速缓存。
21.一种体现在计算机可读介质中的计算机程序,并且所述计算机程序可以由处理器执行以在便携式计算设备中的多集群异构处理器架构中提供动态高速缓存扩展,所述计算机程序包括被配置为进行以下操作的逻辑:
在包括第一处理器集群和具有相关联的第二高速缓存的第二处理器集群的多集群异构处理器架构中,接收针对所述第一处理器集群和相关联的第一高速缓存的处理器工作负荷输入和高速缓存工作负荷输入;
基于所述处理器工作负荷输入和所述高速缓存工作负荷输入来确定与所述第一处理器集群相关联的当前任务是否受所述第一高速缓存的大小阈值或所述第一处理器集群的性能阈值限制;以及
如果所述当前任务受所述第一高速缓存的所述大小阈值限制,则使用与所述第二处理器集群相关联的所述第二高速缓存的至少一部分作为所述第一高速缓存的扩展。
22.根据权利要求21所述的计算机程序,还包括被配置为进行以下操作的逻辑:
如果所述当前任务受所述第一高速缓存的所述性能阈值限制,则将所述当前任务从所述第一处理器集群迁移到所述第二处理器集群。
23.根据权利要求22所述的计算机程序,还包括被配置为进行以下操作的逻辑:
监视与所述第一高速缓存相关联的监听命中计数器;以及
如果所述监听命中计数器超过阈值或如果达到关闭超时,则关闭所述第一高速缓存。
24.根据权利要求21所述的计算机程序,其中,所述处理器工作负荷输入包括涉及如下各项中的一项或多项的信息:每时钟指令数、每单位时间指令数、频率水平和处理器活动持续时间百分比,以及所述高速缓存工作负荷输入包括涉及如下各项中的一项或多项的信息:高速缓存未命中数、高速缓存访问数、高速缓存未命中率、以及由高速缓存未命中引起的处理器停顿时间或处理器停顿数。
25.根据权利要求21所述的计算机程序,其中,被配置为确定与所述第一处理器集群相关联的所述当前任务受所述第一处理器集群的所述性能阈值限制的所述逻辑包括被配置为进行以下操作的逻辑:
确定如下各项中的一项或多项超过所述大小阈值:与所述第一处理器集群中的第一处理器相关联的处理器活动持续时间百分比、每时钟指令数、每单位时间指令数、和频率水平。
26.一种用于提供动态高速缓存扩展的具有多集群异构处理器架构的系统,所述系统包括:
包括第一二级(L2)高速缓存的第一处理器集群;
包括第二L2高速缓存的第二处理器集群;以及
与所述第一L2高速缓存和第二L2高速缓存通信的控制器,所述高速缓存被配置为:
从所述第一处理器集群接收处理器工作负荷输入和高速缓存工作负荷输入;
基于所述处理器工作负荷输入和所述高速缓存工作负荷输入来确定与所述第一处理器集群相关联的当前任务是否受所述第一L2高速缓存的大小阈值或所述第一处理器集群的性能阈值限制;以及
如果所述当前任务受所述第一L2高速缓存的所述大小阈值限制,则使用与所述第二处理器集群相关联的所述第二L2高速缓存的至少一部分作为所述第一L2高速缓存的扩展。
27.根据权利要求26所述的系统,其中,所述控制器还被配置为:
如果所述当前任务受所述第一L2高速缓存的所述性能阈值限制,则将所述当前任务从所述第一处理器集群迁移到所述第二处理器集群。
28.根据权利要求27所述的系统,其中,所述控制器还被配置为:
监视与所述第一L2高速缓存相关联的监听命中计数器;以及
如果所述监听命中计数器超过阈值或如果达到关闭超时,则关闭所述第一高速缓存。
29.根据权利要求26所述的系统,其中,所述处理器工作负荷输入包括涉及如下各项中的一项或多项的信息:每时钟指令数、每单位时间指令数、频率水平和处理器活动持续时间百分比,以及所述高速缓存工作负荷输入包括涉及如下各项中的一项或多项的信息:高速缓存未命中数、高速缓存访问数、高速缓存未命中率、以及由高速缓存未命中引起的处理器停顿时间或处理器停顿数。
30.根据权利要求26所述的系统,其中,确定与所述第一处理器集群相关联的所述当前任务受所述第一处理器集群的所述性能阈值限制包括:
确定如下各项中的一项或多项超过所述大小阈值:与所述第一处理器集群中的第一处理器相关联的处理器活动持续时间百分比、每时钟指令数、每单位时间指令数、和频率水平。
CN201680005459.8A 2015-01-13 2016-01-06 用于在多集群异构处理器架构中提供动态高速缓存扩展的系统和方法 Active CN107111553B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/595,998 2015-01-13
US14/595,998 US9697124B2 (en) 2015-01-13 2015-01-13 Systems and methods for providing dynamic cache extension in a multi-cluster heterogeneous processor architecture
PCT/US2016/012374 WO2016114961A1 (en) 2015-01-13 2016-01-06 Systems and methods for providing dynamic cache extension in a multi-cluster heterogeneous processor architecture

Publications (2)

Publication Number Publication Date
CN107111553A true CN107111553A (zh) 2017-08-29
CN107111553B CN107111553B (zh) 2018-10-12

Family

ID=55310902

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680005459.8A Active CN107111553B (zh) 2015-01-13 2016-01-06 用于在多集群异构处理器架构中提供动态高速缓存扩展的系统和方法

Country Status (6)

Country Link
US (1) US9697124B2 (zh)
EP (1) EP3245587B1 (zh)
JP (1) JP6355853B2 (zh)
KR (1) KR101799253B1 (zh)
CN (1) CN107111553B (zh)
WO (1) WO2016114961A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108614782A (zh) * 2018-04-28 2018-10-02 张家口浩扬科技有限公司 一种用于数据处理系统的高速缓存访问方法
CN111124947A (zh) * 2018-10-31 2020-05-08 阿里巴巴集团控股有限公司 一种数据处理方法及其装置
CN113392604A (zh) * 2021-06-04 2021-09-14 中国科学院计算技术研究所 基于先进封装技术的多cpu共封架构下高速缓存的动态扩容方法及系统

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6451538B2 (ja) * 2015-07-22 2019-01-16 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US11289133B2 (en) * 2015-09-16 2022-03-29 Arm Limited Power state based data retention
CN105744342B (zh) * 2016-01-28 2019-04-12 腾讯科技(深圳)有限公司 移动终端的数据传输方法和装置
KR101887741B1 (ko) * 2016-04-11 2018-09-11 전자부품연구원 적응적 블록 캐시 운용 방법 및 이를 적용한 dbms
US10275280B2 (en) 2016-08-10 2019-04-30 International Business Machines Corporation Reserving a core of a processor complex for a critical task
US10248457B2 (en) 2016-08-10 2019-04-02 International Business Machines Corporation Providing exclusive use of cache associated with a processing entity of a processor complex to a selected task
US10152243B2 (en) * 2016-09-15 2018-12-11 Qualcomm Incorporated Managing data flow in heterogeneous computing
US10223164B2 (en) 2016-10-24 2019-03-05 International Business Machines Corporation Execution of critical tasks based on the number of available processing entities
US10248464B2 (en) * 2016-10-24 2019-04-02 International Business Machines Corporation Providing additional memory and cache for the execution of critical tasks by folding processing units of a processor complex
US11360891B2 (en) * 2019-03-15 2022-06-14 Advanced Micro Devices, Inc. Adaptive cache reconfiguration via clustering
GB2579682B (en) * 2019-03-25 2021-03-24 Trustonic Ltd Trusted execution environment migration method
US11734180B2 (en) * 2021-07-28 2023-08-22 EMC IP Holding Company LLC Memory efficient approach to extending cache
US20230094030A1 (en) * 2021-09-30 2023-03-30 Advanced Micro Devices, Inc. Cache resizing based on processor workload

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110107031A1 (en) * 2009-11-05 2011-05-05 International Business Machines Corporation Extended Cache Capacity
US20120042131A1 (en) * 2010-08-15 2012-02-16 International Business Machines Corporation Flexible use of extended cache using a partition cache footprint

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021466A (en) 1996-03-14 2000-02-01 Compaq Computer Corporation Transferring data between caches in a multiple processor environment
DE60041444D1 (de) 2000-08-21 2009-03-12 Texas Instruments Inc Mikroprozessor
US7076609B2 (en) * 2002-09-20 2006-07-11 Intel Corporation Cache sharing for a chip multiprocessor or multiprocessing system
US7822105B2 (en) 2003-09-02 2010-10-26 Sirf Technology, Inc. Cross-correlation removal of carrier wave jamming signals
US20060112226A1 (en) * 2004-11-19 2006-05-25 Hady Frank T Heterogeneous processors sharing a common cache
US7554909B2 (en) * 2005-03-21 2009-06-30 Intel Corporation Dynamic service management for multicore processors
US20070294693A1 (en) * 2006-06-16 2007-12-20 Microsoft Corporation Scheduling thread execution among a plurality of processors based on evaluation of memory access data
JP2008046685A (ja) * 2006-08-10 2008-02-28 Fujitsu Ltd 二重化システム及び系切り換え方法
US20080235454A1 (en) 2007-03-22 2008-09-25 Ibm Corporation Method and Apparatus for Repairing a Processor Core During Run Time in a Multi-Processor Data Processing System
US8725953B2 (en) * 2009-01-21 2014-05-13 Arm Limited Local cache power control within a multiprocessor system
US20110066830A1 (en) * 2009-09-11 2011-03-17 Andrew Wolfe Cache prefill on thread migration
KR101697937B1 (ko) 2010-01-08 2017-02-01 삼성전자주식회사 멀티프로세서 시스템에서 동적 태스크 마이그레이션을 위한 방법 및 시스템
US8533505B2 (en) * 2010-03-01 2013-09-10 Arm Limited Data processing apparatus and method for transferring workload between source and destination processing circuitry
US8522251B2 (en) 2011-01-10 2013-08-27 International Business Machines Corporation Organizing task placement based on workload characterizations
US9038088B2 (en) * 2011-03-10 2015-05-19 Nec Laboratories America, Inc. Load balancing on hetrogenous processing cluster based on exceeded load imbalance factor threshold determined by total completion time of multiple processing phases
US9311250B2 (en) * 2011-12-19 2016-04-12 Intel Corporation Techniques for memory de-duplication in a virtual system
US8924644B2 (en) 2011-12-28 2014-12-30 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Extending cache in a multi-processor computer
US8943343B2 (en) 2012-06-20 2015-01-27 Intel Corporation Controlling an asymmetrical processor
WO2014196976A1 (en) * 2013-06-06 2014-12-11 Empire Technology Development, Llc Shared cache data movement in thread migration
US20150324234A1 (en) * 2013-11-14 2015-11-12 Mediatek Inc. Task scheduling method and related non-transitory computer readable medium for dispatching task in multi-core processor system based at least partly on distribution of tasks sharing same data and/or accessing same memory address(es)
US9632958B2 (en) * 2014-07-06 2017-04-25 Freescale Semiconductor, Inc. System for migrating stash transactions
US20160077871A1 (en) * 2014-09-17 2016-03-17 Advanced Micro Devices, Inc. Predictive management of heterogeneous processing systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110107031A1 (en) * 2009-11-05 2011-05-05 International Business Machines Corporation Extended Cache Capacity
US20120042131A1 (en) * 2010-08-15 2012-02-16 International Business Machines Corporation Flexible use of extended cache using a partition cache footprint

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HYUNLIN LEE ET AL: "《INTERNATIONAL SYMPOSIUM ON HIGH-PERFORMANCE 》", 12 February 2011 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108614782A (zh) * 2018-04-28 2018-10-02 张家口浩扬科技有限公司 一种用于数据处理系统的高速缓存访问方法
CN108614782B (zh) * 2018-04-28 2020-05-01 深圳市华阳国际工程造价咨询有限公司 一种用于数据处理系统的高速缓存访问方法
CN111124947A (zh) * 2018-10-31 2020-05-08 阿里巴巴集团控股有限公司 一种数据处理方法及其装置
CN111124947B (zh) * 2018-10-31 2023-04-18 阿里巴巴集团控股有限公司 一种数据处理方法及其装置
CN113392604A (zh) * 2021-06-04 2021-09-14 中国科学院计算技术研究所 基于先进封装技术的多cpu共封架构下高速缓存的动态扩容方法及系统
CN113392604B (zh) * 2021-06-04 2023-08-01 中国科学院计算技术研究所 基于先进封装技术的多cpu共封架构下高速缓存的动态扩容方法及系统

Also Published As

Publication number Publication date
CN107111553B (zh) 2018-10-12
EP3245587A1 (en) 2017-11-22
JP6355853B2 (ja) 2018-07-11
KR20170093234A (ko) 2017-08-14
JP2018505476A (ja) 2018-02-22
US9697124B2 (en) 2017-07-04
EP3245587B1 (en) 2020-07-15
WO2016114961A1 (en) 2016-07-21
KR101799253B1 (ko) 2017-12-12
US20160203083A1 (en) 2016-07-14

Similar Documents

Publication Publication Date Title
CN107111553B (zh) 用于在多集群异构处理器架构中提供动态高速缓存扩展的系统和方法
CN106170743B (zh) 多处理器片上系统中的能效感知热管理的方法和系统
CN103797437B (zh) 用于管理异构多核处理器中的热能产生的系统和方法
TWI549001B (zh) 基於背景資訊之功率及負載管理
KR20170062493A (ko) 이종 스레드 스케줄링
US10064141B2 (en) Core frequency/count decision-based thermal mitigation optimization for a multi-core integrated circuit
Wang et al. A prediction based energy conserving resources allocation scheme for cloud computing
CN105359057A (zh) 设置计算机参数使得电源工作在基于电源的功率效率峰值的范围内
CN106776036A (zh) 一种资源分配方法及装置
Xia Resource scheduling for piano teaching system of internet of things based on mobile edge computing
US20160019089A1 (en) Method and system for scheduling computing
US8799474B2 (en) Apparatus and method to allocate limited resources
TW201732496A (zh) 用於經由記憶體時延控制來提供功率效率的系統和方法
CN111338745B (zh) 一种虚拟机的部署方法、装置及智能设备
CN115562878B (zh) Gpu计算资源的管理方法、装置、电子设备及可读存储介质
CN113392863A (zh) 一种机器学习训练数据集的获取方法、获取装置及终端
CN104937551A (zh) 用于图形设备的上下文感知功率管理
CN115345464A (zh) 业务订单的派单方法、装置、计算机设备及存储介质
CN107197013A (zh) 一种增强云计算环境节能系统
CN114003238B (zh) 一种基于转码卡的容器部署方法、装置、设备及存储介质
CN107315635A (zh) 手持设备和该手持设备的资源量的调整方法
CN104468379B (zh) 基于最短逻辑距离的虚拟Hadoop集群节点选择方法及装置
CN116955475A (zh) 一种异构数据库的数据同步方法、装置、设备及存储介质
Bu An intelligent efficient scheduling algorithm for big data in communication systems
CN105828421A (zh) 一种终端及终端省电的方法

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