CN109690502A - 使用硬件控制的分离监听目录的相干互连功率降低 - Google Patents

使用硬件控制的分离监听目录的相干互连功率降低 Download PDF

Info

Publication number
CN109690502A
CN109690502A CN201780054611.6A CN201780054611A CN109690502A CN 109690502 A CN109690502 A CN 109690502A CN 201780054611 A CN201780054611 A CN 201780054611A CN 109690502 A CN109690502 A CN 109690502A
Authority
CN
China
Prior art keywords
catalogue
separation
processor
state
power
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
CN201780054611.6A
Other languages
English (en)
Inventor
C·阿瓦尼
L·蒙特佩吕
P·布卡尔
R·K·古普塔
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 CN109690502A publication Critical patent/CN109690502A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/0893Caches characterised by their organisation or structure
    • 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/54Interprogram communication
    • 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
    • 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)
  • Computing Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Power Sources (AREA)

Abstract

本发明的方面包括用于在具有任意数量的处理器、任意数量的功率域和任何数量的处理器高速缓存的计算设备上实现多个分离监听(snoop)目录的计算设备、装置、以及由该装置实现的方法。例如,各个方面可以包括:针对第一功率域启用第一分离监听目录,并且针对第二功率域启用第二分离监听目录,其中第一功率域包括第一多个处理器高速缓存,并且第二功率域包括至少一个处理器高速缓存;确定是否所有的第一多个处理器高速缓存都处于低功率状态;响应于确定第一多个处理器高速缓存都处于低功率状态,禁用第一分离监听目录。可以对N个数量的功率域和M个数量的处理器高速缓存执行类似的操作。

Description

使用硬件控制的分离监听目录的相干互连功率降低
背景技术
监听(snoop)目录有助于提高相干多中央处理器单元(CPU)集群系统的性能。监听目录可以独立于可用的CPU监听带宽或频率来增加监听未命中带宽,降低监听的CPU的性能下降,减少内存的结构性延迟,并降低监听未命中的功耗。但是,为了实现前述的益处,现有的监听目录架构必须在使用大量存储器、具有高动态能量消耗和/或具有较差的功率可扩展性的竞争性缺点之间进行折衷。这些缺点部分地是由于填充监听目录并向CPU指示内存位置的使用的标签。这些标签需要消耗大量功率的高速静态随机存取存储器(SRAM)宏(尤其是在较低技术节点中)。
发明内容
各个公开的方面可以包括用于在计算设备上实现多个分离监听目录的装置和方法。各个实施例可以包括:针对第一功率域启用第一分离监听目录,并且针对第二功率域启用第二分离监听目录,其中第一功率域可以包括多个处理器高速缓存,第二功率域可以包括至少一个处理器高速缓存。一些实施例还可以包括:确定是否所有的所述多个处理器高速缓存都处于低功率状态;响应于确定所有的所述多个处理器高速缓存都处于低功率状态,禁用第一分离监听目录。
一些实施例还可以包括:检测用于将所述多个处理器高速缓存中的至少一个处理器高速缓存改变为低功率状态的条件;响应于检测到用于将所述至少一个处理器高速缓存改变为低功率状态的所述条件,发送将第一分离监听目录改变为低功率状态的请求。
一些实施例还可以包括:接收将第一分离监听目录改变为低功率状态的所述请求,其中,确定是否所有的所述多个处理器高速缓存都处于低功率状态包括:响应于接收到将第一分离监听目录改变为低功率状态的所述请求,确定是否所有的所述多个处理器高速缓存都处于低功率状态。
一些实施例还可以包括:接收用于将所述多个处理器高速缓存中的至少一个处理器高速缓存改变为低功率状态的条件,其中,确定是否所有的所述多个处理器高速缓存都处于低功率状态包括:响应于检测到用于将所述至少一个处理器高速缓存改变为低功率状态的所述条件,确定是否所有的所述多个处理器高速缓存都处于低功率状态。
在一些实施例中,接收用于将所述多个处理器高速缓存中的至少一个处理器高速缓存改变为低功率状态的条件可以包括:从第一功率域接收用于指示所述多个处理器高速缓存中的所述至少一个处理器高速缓存的功率状态的信号。
一些实施例还可以包括:响应于确定所述多个处理器高速缓存中的至少一个处理器高速缓存处于高功率状态,使所述第一分离监听目录保持启用。
一些实施例还可以包括:检测用于将所述多个处理器高速缓存中的至少一个处理器高速缓存改变为高功率状态的条件;响应于检测到用于将所述至少一个处理器高速缓存改变为高功率状态的所述条件,并且确定所述多个处理器高速缓存都处于低功率状态,启用第一分离监听目录。
在一些实施例中,低功率状态可以包括“关闭”状态和“RET”(保持)状态中的一种,高功率状态可以包括“开启”状态。
一些实施例还可以包括:针对N个功率域启用N个分离监听目录,并且针对M个功率域启用M个分离监听目录,其中N和M可以是大于1的整数,所述N个功率域可以包括N批多个处理器高速缓存,所述M个功率域可以包括至少一个处理器高速缓存。一些实施例还可以包括:确定是否所述N批多个处理器高速缓存中的任何一个处理器高速缓存都处于低功率状态;对所有的所述多个处理器高速缓存都处于低功率状态的所述N个分离监听目录中的任何一个分离监听目录进行禁用。
各个实施例可以包括一种被配置为实现多个分离监听目录的计算设备。该计算设备可以包括:包括多个处理器高速缓存的第一功率域;包括至少一个处理器高速缓存的第二功率域;具有用于第一功率域的第一分离监听目录和用于第二功率域的第二分离监听目录的相干互连;通信地连接到第一功率域并且通信地连接到所述相干互连的第一处理设备。第一处理设备可以被配置为执行上面所概述的实施例方法的操作。
各个实施例可以包括一种计算设备,该计算设备被配置为实现多个分离的监听目录,该计算设备具有用于执行上面所概述的实施例方法的功能的单元。
各个实施例可以包括其上存储有处理器可执行指令的非临时性处理器可读存储介质,其中所述处理器可执行指令被配置为使计算设备的处理器执行上面所概述的实施例方法的操作。
附图说明
被并入本文并且构成本说明书一部分的附图,描绘了各个方面的示例性方面,并且连同上面给出的概括描述以及下面给出的详细描述一起来解释本发明的特征。
图1是描绘适合于实现一个方面的计算设备的组件框图。
图2是示出适合于实现一个方面的示例性多核处理器的组件框图。
图3是示出适合于实现一个方面的、用于多个功率域的分离监听目录系统的例子的框图。
图4是示出适合于实现一个方面的、用于多个功率域的分离监听目录系统的例子的框图。
图5是示出适合于实现一个方面的、用于具有多核处理器状态信令的多个功率域的分离监听目录系统的例子的框图。
图6是示出适合于实现一个方面的、用于功率域的示例性功率状态表的表。
图7是根据一个方面,示出用于针对多个功率域实现分离监听目录的方法的处理流程图。
图8是根据一个方面,示出用于针对多个功率域实现分离监听目录加电和启用的方法的处理流程图。
图9是根据一个方面,示出用于针对多个功率域实现分离监听目录加电的方法的处理流程图。
图10是根据一个方面,示出用于针对多个功率域来启用分离监听目录的方法的处理流程图。
图11是根据一个方面,示出用于针对多个功率域实现分离监听目录禁用的方法的处理流程图。
图12是根据一个方面,示出用于针对多个功率域实现分离监听目录禁用的方法的处理流程图。
图13是根据一个方面,示出用于使用多核处理器状态信令来针对多个功率域实现分离监听目录加电和启用的方法的处理流程图。
图14是根据一个方面,示出用于使用多核处理器状态信令针对多个功率域实现分离监听目录禁用的方法的处理流程图。
图15是根据一个方面,示出用于针对多个功率域实现分离监听目录的方法的处理流程图。
图16是示出适合于结合各个方面使用的示例性移动计算设备的组件框图。
图17是示出适合于结合各个方面使用的示例性移动计算设备的组件框图。
图18是示出适合于结合各个方面使用的示例性服务器的组件框图。
具体实施方式
现在参照附图来详细地描述各个方面。在可以的地方,贯穿附图使用相同的附图标记来指代相同或者类似的部件。对于特定示例和实现的引用只是用于说明目的,而不是旨在限制权利要求的保护范围。
各个方面可以包括使用用于具有多个处理器(例如,中央处理单元(CPU))的功率域的分离监听目录架构来实现监听目录的功率控制的方法,以及实现这样的方法的系统和设备。所述多个处理器可以是多核处理器。各个方面的装置和方法可以包括分离监听目录功率控制硬件,以监测功率域功率状态,以及控制具有分离监听目录架构的各种监听目录的分离监听目录功率状态。
本文可互换地使用术语“计算设备”和“移动计算设备”来指代下面中的任何一项或者全部:蜂窝电话、智能电话、个人或移动多媒体播放器、个人数据助理(PDA)、膝上型计算机、平板计算机、可转换笔记本电脑/平板电脑(2合1计算机)、智能本、超级本、上网本、掌上型计算机、无线电子邮件接收机、具备多媒体互联网功能的蜂窝电话、移动游戏控制台、无线游戏控制器、以及包括存储器和可编程处理器的类似个人电子设备。术语“计算设备”还可以指代固定计算设备,其包括个人计算机、桌面型计算机、一体式计算机、工作站、超级计算机、大型计算机、嵌入式计算机、服务器、家庭影院计算机和游戏控制台。
现实的移动设备/智能电话使用案例表明:高性能多核CPU在典型的一天中可能活动少于10%的时间。高性能多核CPU也可以具有最大的高速缓存,这使得一些最流行的监听目录架构(例如,通用标签或统计标签方法)在实际使用情况下非常低效。这些监听目录架构可以服务于多个多核处理器(其包括不同性能级别的多核处理器的组合)。在任何时候,由监听目录服务的多核处理器中的一个或多个可以是不活动的,而由相同的监听目录服务的至少一个多核处理器可以是活动的。虽然所服务的多核处理器中的任何一个都是活动的,但是服务的监听目录可能不会断电以节省用于已断电多核处理器的能量,这是因为监听目录可能不能服务于活动的多核处理器。因此,服务于多个多核处理器的监听目录架构可能难以进行功率扩展。服务于单个多核处理器的监听目录架构(例如,重复标签方法)可能更容易实现功率可扩展,这是因为可以使用接受服务的多核处理器关闭每个监听指挥器。但是,多核处理器和监听目录之间的一对一关系可能非常耗费内存和功耗。
分离监听目录架构可以组合多个监听目录(本文称为分离监听目录)。可以分配每个分离监听目录以服务多核处理器中的一个或多个但不是全部。可以基于功耗的共同特性(其包括共同的功耗水平和时间)将多核处理器划分到一些功率域。在一个例子中,高性能多核CPU(其通常比标准多核CPU更频繁断电)可以由仅分配给该高性能多核CPU或者多个高性能多核CPU的第一分离监听目录来服务。在同一例子中,多个标准多核CPU可以由第二分离监听目录来服务。服务于具有多个多核处理器的第一功率域的分离监听目录可以使用通用标签或统计标签方法,而服务于仅具有一个多核处理器的第二功率域的分离监听目录可以使用重复标签、通用标签、或者统计标签方法。在一个例子中,计算设备的每个多核处理器或多核处理器组可以是其自己的功率域,其中自己的功率域由其自己分配的分离监听目录使用通用标签方法来服务。
分离监听目录可以实现基于多核处理器功率状态来扩展功率的能力。在一些方面,一个分离监听目录可以用于具有一个或多个功率高效多核处理器(如标准性能多核CPU)的功率高效功率域,一个分离监听目录可以用于具有一个或多个性能多核处理器(如,高性能多核CPU)的性能功率域。对于包含性L2缓存,可以使用单个分离监听目录。对于独有的L2缓存,可以使用重复标签和通用标签选项。在一些方面,通用标签方法可以用于分离监听目录以提供分离监听目录的直接大小调整(尤其是对于多核处理器的包含性L2高速缓存);与重复标签方法相比,通用标签方法提供数量减少的SRAM宏。
分离监听目录功率状态可以通过硬件与功率域功率状态相关联,使得功率域功率状态对软件是透明的。功率域功率状态可以包括功率域的所有多核处理器的功率状态。当功率域处于低功率状态时,功率域的所有多核处理器也可以处于低功率状态。
各种多核处理器架构以不同的方式来管理功率状态。例如,第一多核处理器架构可以不提供其功率状态的任何外部指示,第二多核处理器架构可以提供用于指示其功率状态的信号。对于第一多核处理器架构,可以为不同类型的第一多核处理器架构配置硬件实现的功率域低功率监测器,以检测一种类型的第一多核处理器架构的指定的第一多核处理器是否处于低功率状态。当多核处理器没有指示其功率状态时,功率域低功率监测器可以监测功率消耗、温度、多核处理器功率控制单元,和/或可以监测指定的第一多核处理器的输入/输出活动以确定第一多核处理器的功率状态。响应于确定功率域处于低功率状态,功率域低功率监测器可以发信号通知分离监听目录功率控制器,以使该功率域的所分配的分离监听目录断电。类似地,功率域低功率监测器可以检测第一多核处理器何时转换到活动状态(即,功率域发生变化),作为响应,向分离监听目录功率控制器发信号以激活该功率域的分配的分离监听目录。
再举一个例子,在第二多核处理器架构中,分离监听目录功率控制器可以被配置用于不同类型的第二多核处理器架构,以从指定的第二多核处理器接收用于指示第二多核处理器是否处于低功率状态的信号。基于来自第二多核处理器的指示其是否处于低功率状态的信号,分离监听目录功率控制器可以确定功率域是否处于低功率状态,并响应于确定功率域处于低功率状态,使第二多核处理器的分配的分离监听目录断电。类似地,分离监听目录功率控制器可以从指定的第二多核处理器接收信号,并且根据这些信号来确定其是否处于活动状态,并且作为响应来激活该功率域的所分配的分离监听目录。
图1示出了适合于结合各个方面使用的包括计算设备10的系统。计算设备10可以包括具有处理器14、存储器16、通信接口18和存贮存储器接口20的片上系统(SoC)12。计算设备10还可以包括诸如有线或无线调制解调器之类的通信组件22、存贮存储器24、以及用于建立无线通信链路的天线26。处理器14可以包括各种各样的处理设备(例如,多个处理器核)中的任何一种。
本文使用术语“片上系统”(SoC)来指代一组互连的电子电路,其通常包括(但不是仅此而已)处理设备、存储器和通信接口。处理设备可以包括各种各样的不同类型的处理器14和处理器核,例如通用处理器、中央处理单元(CPU)、数字信号处理器(DSP)、图形处理单元(GPU)、加速处理单元(APU)、辅助处理器、单核处理器和多核处理器。处理设备还可以体现其它硬件和硬件组合,例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、其它可编程逻辑器件、分离门逻辑、晶体管逻辑、性能监测硬件、看门狗硬件和时间基准。可以对集成电路进行配置使得集成电路的组件位于单片的半导体材料(例如,硅)上。
SoC 12可以包括一个或多个处理器14。计算设备10可以包括一个以上的SoC 12,从而增加处理器14和处理器核的数量。计算设备10还可以包括与SoC 12不相关联的处理器14。各个处理器14可以是如下面参照图2所描述的多核处理器。处理器14中的每一个可以被配置为用于特定目的,该目的可以与计算设备10的其它处理器14相同或者不同。可以将相同或不同配置的处理器14和处理器核中的一个或多个组合在一起。一组处理器14或处理器核可以称为多处理器簇。
SoC 12的存储器16可以是配置为存储由处理器14进行访问的数据和处理器可执行代码的易失性或者非易失性存储器。计算设备10和/或SoC 12可以包括配置为用于各种目的的一个或多个存储器16。一个或多个存储器16可以包括诸如随机存取存储器(RAM)或主存储器或者高速缓存的易失性存储器。这些存储器16可以被配置为临时地保持从数据传感器或子系统接收的有限数量的数据、以下的数据和/或处理器可执行代码指令:从非易失性存储器请求的数据和/或处理器可执行代码指令、基于各种因素预期未来访问而从非易失性存储器装载到存储器16的、和/或处理器14产生的中间处理数据和/或处理器可执行代码指令、以及临时地存储以便未来快速访问而无需存储在非易失性存储器中的数据和/或处理器可执行代码指令。
存储器16可以被配置为至少临时地存储从另一个存储器设备(例如,另一个存储器16或存贮存储器24)装载到存储器16,以便处理器14的一个或多个进行访问的数据和处理器可执行代码。可以响应于处理器14对于某个功能的执行,对用于装载到存储器16的数据或处理器可执行代码进行装载。响应于某个功能的执行,将数据或处理器可执行代码装载到存储器16,可以源自于不成功或者未命中的针对存储器16的内存访问请求(由于所请求的数据或处理器可执行代码不位于存储器16中)。响应于未命中,可以进行针对另一个存储器16或存贮存储器24的内存访问请求,以便将所请求的数据或处理器可执行代码从另一个存储器16或存贮存储器24装载到存储器设备16中。响应于某个功能的执行,将数据或处理器可执行代码装载到存储器16,可以源自于针对另一个存储器16或存贮存储器24的内存访问请求,可以将数据或处理器可执行代码装载到存储器16中以便稍后访问。
存贮存储器接口20和存贮存储器24可以一致地工作,以允许计算设备10将数据和处理器可执行代码存储在非易失性存储介质上。可以非常类似于存储器16的方面,对存贮存储器24进行配置,其中,存贮存储器24可以存储用于处理器14中的一个或多个进行访问的数据或处理器可执行代码。在计算设备10的电源被关闭之后,存贮存储器24(其是非易失性的)也可以保持信息。当电源被再次打开,计算设备10重新启动时,计算设备10可获得存贮存储器24上存储的该信息。存贮存储器接口20可以控制针对存贮存储器24的访问,允许处理器14从存贮存储器24读取数据和向存贮存储器24写入数据。
可以对计算设备10的组件中的一些或全部进行不同地排列和/或组合,同时仍然服务必要的功能。此外,计算设备10并不限于这些组件中的每一个,在计算设备10的各个配置中可以包括每一个组件的多个实例。
图2示出了适合于实现一个方面的多核处理器。多核处理器14可以包括多种处理器类型,包括例如中央处理单元,图形处理单元和/或数字处理单元。多核处理器14还可以包括定制硬件加速器,其可以包括被配置为实现一组专用功能的定制处理硬件和/或通用硬件。
多核处理器可以具有多个同构或者异构的处理器核200、201、202、203。同构多核处理器可以包括多个同构的处理器核。处理器核200、201、202、203可以是同构的,其在于:多核处理器14的处理器核200、201、202、203可以被配置为用于相同目的,具有相同或类似的性能特性。例如,多核处理器14可以是通用处理器,处理器核200、201、202、203可以是同构的通用处理器核。多核处理器14可以是图形处理单元或者数字信号处理器,处理器核200、201、202、203可以分别是同构的图形处理器核或者数字信号处理器核。多核处理器14可以是具有同构或异构处理器核200、201、202、203的定制硬件加速器。为了便于引用起见,本文可以互换地使用术语“硬件加速器”、“定制硬件加速器”、“多核处理器”、“处理器”和“处理器核”。
异构多核处理器可以包括多个异构的处理器核。处理器核200、201、202、203可以是异构的,其在于:多核处理器14的处理器核200、201、202、203可以被配置为用于不同的目的,和/或具有不同的性能特性。这种异构处理器核的异构性可以包括不同的指令集架构、管道、操作频率等等。这些异构处理器核的例子可以包括称为“big.LITTLE”架构的架构,在该架构中,可以将慢速、低功率处理器核与更强大和功耗更大的处理器核相耦合。在类似的方面,SoC(例如,图1的SoC12)可以包括任何数量的同构或异构多核处理器14。在各个方面,并非所有处理器核200、201、202、203都需要是异构处理器核,这是因为异构多核处理器心可以包括处理器核200、201、202、203(它们包括至少一个异构处理器核)的任意组合。
多核处理器14的处理器核200、201、202、203中的每一个可以被指定为专用高速缓存210、212、214、216,其可以专用于由指定的处理器核200、201、202、203的读和/或写访问。专用高速缓存210、212、214、216可以存储数据和/或指令,使所存储的数据和/或指令可用于该专用高速缓存210、212、214、216所专用到的处理器核200、201、202、203,以供处理器核200、201、202、203在执行时使用。专用高速缓存210、212、214、216可以包括如本文中参照图1的存储器16所描述的易失性存储器。
多核处理器14还可以包括共享高速缓存230,后者可以被配置用于处理器核200、201、202、203的读和/或写访问。专用高速缓存210、212、214、216可以存储数据和/或指令,使所存储的数据和/或指令可用于处理器核200、201、202、203,以供处理器核200、201、202、203在执行时使用。共享高速缓存230还可以用作输入到多核处理器14和/或从多核处理器14输出的数据和/或指令的缓冲器。共享高速缓存230可以包括如本文中参照图1的存储器16所描述的易失性存储器。
在图2所示出的例子中,多核处理器14包括四个处理器核200、201、202、203(即,处理器核0、处理器核1、处理器核2和处理器核3)。在该例子中,向每个处理器核200、201、202、203指定相应的专用高速缓存210、212、214、216(即,处理器核0和专用高速缓存0、处理器核1和专用高速缓存1、处理器核2和专用高速缓存2、以及处理器核3和专用高速缓存3)。为了便于解释起见,本文的例子可以指代图2中所示出的四个处理器核200、201、202、203和四个专用高速缓存210、212、214、216。但是,图2中所示出和本文所描述的四个处理器核200、201、202、203和四个专用高速缓存210、212、214、216只是提供成例子,决不意味着将各个方面限制于具有四个指定专用高速缓存的四核处理器系统。与本文所示出和描述的四个处理器核200、201、202、203和专用高速缓存210、212、214、216相比,计算设备10、SoC 12或多核处理器14可以各自地或者组合地包括更少或者更多的内核。
图3到图5示出了具有和不具有多核处理器状态信令的用于多个功率域的分离监听目录系统的非限制性示例。本文所示出和描述的示例(特别是参照图3到图5所示出和描述的示例以及与图3到图5有关的示例)是非限制性的。分离监听目录系统可以包括任何数量的处理器、处理器核、专用高速缓存、共享高速缓存、功率域、分离监听目录、处理器高速缓存功率控制器和分离监听目录功率控制器。因此,图3到图5中所示出的处理器、处理器核、高速缓存、功率域、分离监听目录、共享高速缓存控制器和分离监听目录功率控制器的数量仅仅用于说明目的。为了便于引用和清楚说明起见,本文使用术语多核处理器来指代多核处理器、单核处理器和/或处理器核。此外,在各种方面方法的描述中对于一个或两个功率域、分离监听目录、共享高速缓存等等的引用仅仅用于说明目的,因为这些方法也可以扩展到任何数量的N个功率域、分离监听目录、共享高速缓存等等。
图3示出了用于多个功率域的分离监听目录系统的示例性方面。被配置为实现分离监听目录系统的计算设备(例如,图1中的计算设备10)可以包括至少两个但是至多任何整数“N”个多核处理器(例如,处理器1 14a和处理器N 14b。每个多核处理器14a、14b可以包括任意数量的处理器核(例如,图2中的处理器核200、201、202、203),例如,多核处理器14a可以包括多达任何整数“M”个处理器核,其包括处理器核1 300a和处理器核M 300b。类似地,多核处理器14b可以包括多达任何整数“P”个处理器核,其包括处理器核1 300c和处理器核P 300d。如本文所讨论的,多核处理器14a、14b中的每一个可以相对于彼此和/或在它们各自的处理器核300a、300b、300c、300d之间是同质的和/或异构的。
每个处理器核300a、300b、300c、300d可以与指定供相关联处理器核300a、300b、300c、300d使用的专用高速缓存(例如,图2中的专用高速缓存210、212、214、216)相关联。例如,专用高速缓存302a可以与处理器核300a相关联并指定供处理器核300a使用。类似地,专用高速缓存302b可以与处理器核300b相关联并指定给处理器核300b,专用高速缓存302c可以与处理器核300c相关联并且指定给处理器核300c,专用高速缓存302d可以与处理器核300d相关联并指定给处理器核300d。
每个多核处理器14a、14b还可以包括被配置用于多核处理器14a、14b(其包括处理器核300a、300b、300c、300d)的读和/或写访问的共享高速缓存(例如,图2中的共享高速缓存230)。在图3所示的例子中,多核处理器14a可以包括共享高速缓存304a,多核处理器14b可以包括共享高速缓存304b。在各个方面,共享高速缓存304a、304b可以仅在其相应的多核处理器14a、14b内可写。在各个方面,共享高速缓存304a、304b可以由另一个多核处理器14a、14b使用监听来读取。
相干互连308可以通信地连接到多核处理器14a、14b、任意数量的输入/输出(I/O)代理306a、306b、以及任意数量的主存储器或随机存取存储器组件312(例如,图1中的存储器16)。相干互连308可以被配置为启用和控制各种连接组件之间的数据传输。I/O代理306a、306b可以将输入数据传送到相干互连308,其中多核处理器14a、14b和/或随机存取存储器组件312作为数据的目的地。I/O代理306a、306b还可以通过相干互连308从多核处理器14a、14b和/或随机存取存储器组件312接收数据。随机存取存储器组件312可以被配置为存储和/或提供用于多核处理器14a,14b和/或I/O代理306a、306b的数据和/或指令。随机存取存储器组件312可以被配置为用于多核处理器14a、14b、I/O代理306a、306b和/或存储设备(例如,图1中的存储存储器24)之间的数据和/或指令的缓冲器。
相干互连308还可以包括随机存取存储器组件(例如,图1中的存储器16)和被配置为存储和提供可用数据(其表示分离监听目录310a、310b)的静态随机存取存储器(SRAM))。如本文所进一步描述的,分离监听目录310a、310b可以与特定的功率域相关。每个分离监听目录310a、310b可以包括与专用高速缓存302a、302b、302c、302d和/或相关联功率域的相应多核处理器14a、14b的共享高速缓存304a、304b的存储器位置相对应的多个标签。每个标签可以与标识以下内容的信息相关联:某种数据是否位于专用高速缓存302a、302b、302c、302d和/或共享高速缓存304a、304b的相应存储器位置。为了便于引用和解释清楚起见,本文可以将专用高速缓存302a、302b、302c、302d和/或共享高速缓存304a、304b称为处理器高速缓存。术语处理器高速缓存的使用并不限制本文所描述的方面必须包括所有的专用高速缓存302a、302b、302c、302d和/或共享高速缓存304a、304b。
可以由多核处理器14a、14b和/或I/O代理306a、306b查询分离监听目录310a、310b,以确定为执行进程而寻求的数据是否为多核处理器14a、14b本地存储在其处理器高速缓存302a、302b、302c、302d、304a、304b上,而不必直接查询处理器高速缓存302a、302b、302c、302d、304a、304b。当数据未存储在处理器高速缓存302a、302b、302c、302d、304a、304b上时,对分离监听目录310a、310b或处理器高速缓存302a、302b、302c、302d、304a、304b的查询称为“未命中”。如果不实现分离监听目录310a、310b,则需要由多核处理器14a、14b向每个其它多核处理器14a、14b发布监听事务以检索查询的数据。响应于发生“未命中”,需要对随机存取存储器组件312的外部事务来检索查询的数据。通过实现分离监听目录310a、310b,可以不需要针对每个其它多核处理器14a、14b的监听事务。而是可以将监听事务指向到分离监听目录310a、310b。响应于在分离监听目录310a、310b中发生的“未命中”,可以实现针对随机存取存储器组件312的外部事务以检索查询的数据。响应于在分离监听目录310a、310b中找到与用于查询的数据相关联的处理器高速缓存302a、302b、302c、302d、304a、304b中的位置的标签(其也称为“命中”),可以实现与“命中”的分离监听目录310a、310b相关联的所有多核处理器14a、14b的监听事务。也可以实现对随机存取存储器组件312的外部事务(根据访问类型和监听的处理器高速缓存行为)。
因此,缺少分离监听目录310a,310b的架构可能需要多核处理器14a、14b、I/O代理306a、306b、相干互连308和随机存取存储器组件312之间的额外事务来检索查询的数据。分离监听目录310a、310b的实现可以允许对于“未命中”,将针对于分离监听目录310a、310b的查询重定向到随机存取存储器组件312。这可以消除相干互连308与多核处理器14a、14b之间的额外事务,否则,将需要这些额外事务来检查处理器高速缓存302a、302b、302c、302d、304a、304b中的数据。该查询可以用于检查分离监听目录310a、310b的标签是否指示所查询的数据是否对于多核处理器14a,14b而言本地存储到处理器高速缓存302a、302b、302c、302d、304a、304b上,而无需在相干互连308和多核处理器14a、14b之间实现事务。在指示“未命中”时,可以从随机存取存储器组件312中检索数据。
图4示出了用于多个功率域的分离监听目录系统的示例方面。图4中所示出的例子并入了图3中所示出的例子的许多方面,其包括多核处理器14a、14b、处理器核300a、300b、300c、300d、专用高速缓存302a、302b、302c、302d、共享高速缓存304a、304b、相干互连308和分离监听目录310a、310b。图4中所示出的例子还包括类似于上面所描述的组件的组件,其包括多核处理器14c、处理器核300e、300f、专用高速缓存302e、302f和共享高速缓存304c。多核处理器14c可以包括多达任何整数“R”个处理器核(其包括处理器核1 300e和处理器核R 300f)。为了清楚说明起见,从图4所示出的例子中省略了I/O代理306a、306b和随机存取存储器组件312。此外,术语处理器高速缓存可以包括图4中的例子的另外专用高速缓存302e、302f和共享高速缓存304c。
此外,图4中所示出的例子还包括两个功率域400a、400b、三个处理器高速缓存功率控制器402a、402b、402c、以及两个分离监听目录功率控制器404a、404b。功率域400a、400b可以是至少一个多核处理器14a、14b、14c的组,可以包括任意数量的N个功率域。每个功率域400a、400b可以包括多个处理器核300a、300b、300c、300d、300e、300f、以及至少一个共享高速缓存304a、304b、304c。功率域400a、400b还可以包括任何数量的专用高速缓存302a、302b、302c、302d、302e、302f。功率域400a、400b中的每一个可以与分离监听目录310a、310b中的一个相关联。在图4所示的例子中,功率域400a可以与分离监听目录310a相关联,功率域400b可以与分离监听目录310b相关联。换言之,分离监听目录310a可以存储与处理器高速缓存302a、302b、302e、302f、304a、304c中的存储器位置相对应的标签,分离监听目录310b可以存储与处理器高速缓存302c、302d、304b中的存储器位置相对应的标签。
处理器高速缓存功率控制器402a、402b、402c可以被配置为检测功率域400a、400b的组件的状况,以便确定功率域的组件是否处于低功率状态或者正在低功率状态和标准状态之间转换。当多核处理器未指示其功率状态、中断和/或指定的多核处理器14a、14b、14c的输入/输出活动时,处理器高速缓存功率控制器402a、402b、402c可以监测功率消耗、温度、多核处理器功率控制单元。处理器高速缓存功率控制器402a、402b、402c可以被配置为向相关联的分离监听目录功率控制器404a、404b,其中该功率控制器404a、404b与相同的分离监听目录310a、310b和功率域400a、400b相关联。处理器高速缓存功率控制器402a、402b、402c和分离监听目录功率控制器404a、404b可以以一对一关系相关联,或者多个处理器高速缓存功率控制器402a、402b、402c与一个分离监听目录功率控制器404a、404b相关联。在各个方面,处理器高速缓存功率控制器402a、402b、402c的数量可以与相关联的功率域400a、400b的专用高速缓存302a、302b、302c、302d、302e、302f或者共享高速缓存304a、304b、304c的数量相同。
分离监听目录功率控制器404a、404b可以被配置为跟踪分离监听目录功率控制器404a、404bis所关联到的功率域400a、400b的组件的功率状态。分离监听目录功率控制器404a、404b可以基于从处理器高速缓存功率控制器402a、402b、402c接收的信号来更新功率域400a、400b的组件的功率状态。如本文所进一步描述的,分离监听目录功率控制器404a、404b可以基于功率域400a、400b的组件的功率状态来控制相关联的分离监听目录310a、310b的功率状态。分离监听目录功率控制器404a、404b可以对相关联的分离监听目录310a、310b进行加电和启用、断电和禁用、或者置于保持。在各个方面,每个分离监听目录功率控制器404a、404b可以与一个分离监听目录310a、310b相关联。
图5示出了用于多个功率域的分离监听目录系统的示例方面。图5中所示出的例子并入了图3和图4中所示出的例子的许多方面,其包括多核处理器14a、14b、14c、处理器核300a、300b、300c、300d、300e、300f、包括专用高速缓存302a、302b、302c、302d、302e、302f和共享高速缓存304a、304b的处理器高速缓存、相干互连308和分离监听目录310a、310b、功率域400a、400b、处理器高速缓存功率控制器402a、402b、402c、以及分离监听目录功率控制器404a、404b。为了清楚说明起见,从图5所示出的例子中省略了I/O代理306a、306b和随机存取存储器组件312。
在图5所示的例子中,多核处理器14a、14b、14c、处理器高速缓存功率控制器402a、402b、402c和分离监听目录功率控制器404a、404b可以以不同于图4所示出的例子的方式进行配置。在各个方面,每个多核处理器14a、14b、14c可以被配置为向相干互连308和分离监听目录功率控制器404a、404b发信号通知该处理器的功率状态和该处理器组件的功率状态。分离监听目录功率控制器404a、404b可以使用从多核处理器14a、14b、14c接收的功率状态信号来跟踪功率域400a、400b的组件的功率状态。因此,处理器高速缓存功率控制器402a、402b、402c可以不需要被配置为检测功率域400a、400b的组件的状况,以便确定功率域的组件是否处于低功率状态,或者正在低功率状态和标准状态之间转换。
在各个方面,分离监听目录功率控制器404a、404b可以如参照图4所描述的那样进行配置,除了使用来自处理器高速缓存功率控制器402a、402b、402c的信号之外,分离监听目录功率控制器404a、404b可以跟踪功率域400a、400b的组件的功率状态,并且基于从多核处理器14a、14b、14c接收的信号来控制分离监听目录310a、310b的功率状态。
图6示出了用于功率域(例如,图4和图5中的功率域400a、400b)的示例性功率状态表600。功率状态表600可以包括用于分离监听目录功率控制器(例如,图4和图5中的分离监听目录功率控制器404a、404b),根据功率域的组件的功率状态来控制相关联的分离监听目录的功率状态(例如,图3到图5中的分离监听目录310a、310b)的各种规则。图6中所示出的例子包括用于两个多核处理器(例如,图3到图5中的多核处理器14a、14b、14c)的处理器高速缓存(例如,图3到图5中的专用高速缓存302a、302b、302c、302d、302e、302f和共享高速缓存304a、304b、304c)的功率状态的两列。为了清楚和简单起见,图6中所示出的例子示出了用于单个功率域的两个多核处理器的两个处理器高速缓存(例如,共享高速缓存)的功率状态的两列。但是,该示例是非限制性的,结合各个方面使用的功率状态表可以包括用于跟踪任何数量的处理器高速缓存、多核处理器或功率域的任何数量的列。
在各个方面,只要至少一个处理器高速缓存处于高功率状态(例如,“开启”功率状态),则与具有“开启”处理器高速缓存的功率域相关联的相对应分离监听目录也可以被设置为“开启”功率状态。在各个方面,对于将分离监听目录设置为低功率状态(例如,“关闭”功率状态),相关联的功率域的所有处理器高速缓存都可以处于“关闭”功率状态。因为分离监听目录由功率域的多个处理器高速缓存进行共享,所以可以对分离监听目录进行供电以能够服务于功率域的任何部分。因此,为了能够关闭分离监听目录,可能需要关闭该功率域的所有处理器高速缓存,使得分离监听目录不需要为该功率域的任何部分提供服务。
在各个方面,在功率域的处理器高速缓存的任何组合处于低功率状态的各种组合(其包括“关闭”状态和处理器高速缓存中的至少一个处于“RET”(保持)状态)中,可以将用于该功率域的分离监听目录设置为“RET”状态。因为数据的保持需要功率(虽然功率低于“开启”状态),所以可以将分离监听目录置于“RET”状态以与处于“RET”状态的至少一个处理器高速缓存相对应,而该功率域的其它处理器高速缓存已关闭。类似于“开启”状态和“关闭”状态处理器高速缓存的组合,对于处于“开启”状态的至少一个处理器高速缓存和处于“RET”和/或“关闭”状态的任何其它处理器高速缓存的任何组合,可以将分离监听目录设置为“开启”状态。在功率状态的这些组合中的每一个中,功率域的至少一个处理器高速缓存的较高功率状态可以指示该分离监听目录的功率状态;“开启”是最高功率状态,则“RET”和“关闭”是最低功率状态。分离监听目录功率控制器可以被配置为跟踪与它们相关联的功率域的组件的功率状态,并且应用规则(例如,图6中所示出的例子中的规则)以控制分离监听目录的功率状态。
各个方面包括方法700、800、900、1000、1100、1200、1300、1400、1500,这些方法可以由多个功率域的一个或多个处理器和多个分离监听目录来实现,如图7到图15中所示出并在下面所描述的。可以针对多个功率域(例如,图4和图5中的功率域400a、400b)以及它们对应的分离监听目录(例如,图4和5中的分离监听目录310a、310b),来单独地和/或并行地实现方法700、800、900、1000、1100、1200、1300、1400、1500。所述多个功率域可以各自包括组件的任意组合,其中这些组件包括多核处理器(例如,图4和5中的多核处理器14a、14b、14c)、处理器核(例如,图4和5中的处理器核300a、300b、300c、300d、300e、300f)、以及包括专用高速缓存(例如,图4和5中的专用高速缓存302a、302b、302c、302d、302e、302f)和/或共享高速缓存(例如,图4和图5中的共享高速缓存304a、304b、304c)的至少一个处理器高速缓存。例如,第一功率域可以包括多个处理器高速缓存,并且第二功率域可以包括至少一个处理器高速缓存。如本文所描述的,每个功率域可以与相对应的分离监听目录相关联。例如,第一功率域可以与第一分离监听目录相关联,并且第二功率域可以与第二分离监听目录相关联。为了清楚和便于引用起见,本文中参照第一功率域和第一分离监听目录描述了方法700、800、900、1000、1100、1200、1300、1400、1500。但是,可以针对第二功率域和第二分离监听目录和/或任何数量的N个功率域和N个分离监听目录,类似地实现方法700、800、900、1000、1100、1200、1300、1400、1500,其中N是大于1的整数。此外,可以针对N个功率域和N个分离监听目录,单独地或并行地实现方面方法700、800、900、1000、1100、1200、1300、1400、1500。
图7根据一个方面,示出了用于针对多个功率域实现分离监听目录的方法700。可以在计算设备中利用在处理器(例如,图1和图2中的处理器14)中执行的软件、利用通用硬件、利用专用硬件(例如,图4和5中的分离监听目录功率控制器404a、404b和/或处理器高速缓存功率控制器402a、402b、402c)、或者利用软件配置的处理器和专用硬件的组合(例如,在包括其它单独组件的分离监听目录系统内执行软件的处理器),来实现方法700。为了涵盖在各个方面中实现的替代配置,在本文中将实现方法700的硬件称为“处理设备”。
在方框702中,处理设备可以监测并检测第一功率域(例如,图4和5中的功率域400a、400b)中的功率状态变化。在各个方面,监测和检测第一功率域中的功率状态变化可以包括:直接监测和检测功率状态变化,或者监测和检测用于改变功率状态的条件。在各个方面,可以针对包括以下组件的第一功率域的任何组件,检测功率状态变化或者用于改变功率状态的条件:多核处理器(例如,图4和图5中的多核处理器14a、14b、14c)、处理器核(例如,图4和5中的处理器核300a、300b、300c、300d、300e、300f)、以及包括专用高速缓存(例如,图4和5中的专用高速缓存302a、302b、302c、302d、302e、302f)或共享高速缓存(例如,图4和5中的共享高速缓存304a、304b、304c)的处理器高速缓存。检测到的功率状态变化可以包括:从任何高功率状态(例如,“开启”状态)和较低功率状态(例如,“关闭”或“RET”状态)到相同功率状态集合中的另一个功率状态的变化。在一些方面,处理设备可以监测N个功率域的功率状态。为了便于引用起见,通过处理器监测和检测一个(“第一”)功率域的功率状态来描述方法700。但是,对第一功率域的引用是任意的并且是非限制性的,这是因为可以对任何数量的N个功率域执行类似的操作。
在方框704中,处理设备可以确定第一功率域的功率状态。第一功率域的功率状态可以链接到第一功率域的组件的任何组合的功率状态。例如,第一功率域的功率状态可以链接到第一功率域的处理器高速缓存的功率状态。如本文所讨论的,第一功率域的功率状态可以是第一功率域的功率状态所链接到的任何一个组件的最高功率状态。在一些方面,处理设备可以确定N个功率域的功率状态。
在确定框706中,处理设备可以确定功率状态改变是否是第一功率域的加电状态改变。加电状态改变可以包括从低功率状态(其包括“关闭”或“RET”功率状态)到高功率状态(其包括“开启”功率状态)的改变。处理设备可以将第一功率域的状态与第一功率域的功率状态变化进行比较,以确定是否存在第一功率域的状态改变以及确定该状态改变是什么。例如,第一功率域中的功率状态改变到比第一功率域更高的功率状态可以导致第一功率域到更高功率状态的状态改变。在另一个例子中,第一功率域中的功率状态改变到比第一功率域更低的功率状态可以导致第一功率域到较低功率状态的状态改变(只要没有第一功率域的其它组件处于比该功率状态改变的功率状态更高的功率状态)。在另一个例子中,第一功率域中的功率状态改变到与第一功率域的功率状态相同的功率状态,可以导致第一功率域不发生功率状态改变。在一些方面,处理设备可以针对N个功率域,执行确定框706中的操作。
响应于确定功率状态改变是第一功率域的加电状态改变(即,确定框706=“是”),在方框710中,处理设备可以启用与第一功率域相对应的第一分离监听目录(例如,图3到图5中的分离监听目录310a、310b)。在一些方面,处理设备可以针对N个功率域,执行方框710中的操作。
响应于确定功率状态改变不是第一功率域的加电状态改变(即,确定框706=“否”),在确定框708中,处理设备可以确定功率状态改变是否是第一功率域的断电或者保持状态改变。“关闭”和“RET”功率状态可以称为低功率状态,并且包括断电或保持状态改变的功率状态改变可以是改变到低功率状态。在一些方面,处理设备可以针对N个功率域,执行方框708中的操作。
响应于确定功率状态改变是第一功率域的断电或保持状态改变(即,确定框708=“是”),在方框712中,处理设备可以禁用与第一功率域相对应的功率状态改变。在一些方面,处理设备可以针对N个功率域,执行方框712中的操作。
在方框714中,处理设备可以根据功率状态改变是针对第一功率域的断电还是保持状态改变,将第一分离监听目录置于保持状态或者使第一分离监听目录断电。在一些方面,处理设备可以针对N个功率域,执行方框714中的操作。
响应于确定功率状态改变不是第一功率域的断电或保持状态改变(即,确定框708=“否”),在方框702中,处理设备可以继续监测并进一步检测第一功率域(或N个功率域)中的功率状态改变。
图8根据一个方面,示出了用于针对多个功率域实现分离监听目录加电和启用的方法800。可以针对任何数量的N个功率域来实现方法800,其中N是大于1的整数。可以在计算设备中利用在处理器(例如,图1和图2中的处理器14)中执行的软件、利用通用硬件、利用专用硬件(例如,图4和5中的分离监听目录功率控制器404a、404b和/或处理器高速缓存功率控制器402a、402b、402c)、或者利用处理器和专用硬件的组合(例如,在包括其它单独组件的分离监听目录系统内执行软件的处理器),来实现方法800。为了涵盖在各个方面中实现的替代配置,在本文中将实现方法800的硬件称为“处理设备”。在各个方面,方法800可以实现为参照图7所描述的方法700的一部分、其扩展,方法800可以结合或者独立于方法700来实现。
在方框802中,处理设备可以检测第一功率域(例如,图4和5中的功率域400a、400b)中的唤醒条件。唤醒条件可以是用于将第一功率域改变为高功率(即,“开启”)状态的条件。检测唤醒条件可以是基于在多核处理器未指示其功率状态、中断和/或第一功率域的组件的输入/输出活动时监测功率消耗、温度、多核处理器功率控制单元活动和/或状态,其中第一功率域的组件包括下面中的任何一个:多核处理器(例如,图4和图5中的多核处理器14a、14b、14c)、处理器核(例如,图4和5中的处理器核300a、300b、300c、300d、300e、300f)、以及包括专用高速缓存(例如,图4和5中的专用高速缓存302a、302b、302c、302d、302e、302f)或共享高速缓存(例如,图4和5中的共享高速缓存304a、304b、304c)的处理器高速缓存。监测的功率消耗水平、温度和/或输入/输出活动水平的增加,检测多核处理器功率控制单元的活动和/或状态,和/或检测中断,可以向处理设备指示已在第一功率域中发生了唤醒事件。在一些方面,处理设备可以针对N个功率域,执行方框802中的操作。
在方框804中,处理设备可以发送针对第一功率域的第一分离监听目录(例如,图3到图5中的分离监听目录310a、310b)的加电请求。可以在确定第一功率域的加电状态改变(例如,在方法700的确定框706中)之后,或者不管这样的确定,发送针对第一功率域的第一分离监听目录的加电请求。在一些方面,处理设备可以针对N个功率域,执行方框804中的操作。
在方框806中,处理设备可以响应于检测到唤醒条件,对多核处理器高速缓存进行加电。在一些方面,处理设备可以针对N个功率域,执行方框806中的操作。
在方框808中,处理设备可以确定是否启用了与第一功率域相关联的第一分离监听目录。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框808中的操作。
在确定框810中,处理设备可以触发与第一功率域相关联的第一分离监听目录的标签初始化,并且触发对第一分离监听目录的启用。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框810中的操作。
响应于确定未启用与第一功率域相关联的第一分离监听目录(即,确定框810=“否”),在方框812中,处理设备可以发送对第一分离监听目录的启用请求。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框812中的操作。
在方框814中,处理设备可以接收对第一分离监听目录的启用的确认。在一些方面,处理器可以针对N个分离监听目录,在方框810中接收对启用的确认。
在方框816中,处理设备可以启用对第一分离监听目录的监听。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框816中的操作。
在方框818中,处理设备可以启用多核处理器高速缓存。
响应于确定与第一功率域相关联的第一分离监听目录被启用(即,确定框810=“是”),在方框816中,处理设备可以启用对第一分离监听目录的监听。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框810中的操作。
图9根据一个方面,示出用于针对多个功率域实现分离监听目录加电的方法900。可以针对任何数量的N个功率域来实现方法900,其中N是大于1的整数。可以在计算设备中利用在处理器(例如,图1和图2中的处理器14)中执行的软件、利用通用硬件、利用专用硬件(例如,图4和5中的分离监听目录功率控制器404a、404b和/或处理器高速缓存功率控制器402a、402b、402c)、或者利用处理器和专用硬件的组合(例如,在包括其它单独组件的分离监听目录系统内执行软件的处理器),来实现方法900。为了涵盖在各个方面中实现的替代配置,在本文中将实现方法900的硬件称为“处理设备”。在各个方面,方法900可以实现为图7中的方法700和/或参照图8所描述的方法800的一部分、其扩展,方法900可以结合或者独立于方法700和/或方法800来实现。
在方框902中,处理设备可以接收与第一功率域(例如,图4和5中的功率域400a、400b)相关联的第一分离监听目录(例如,图3到图5中的分离监听目录310a、310b)的加电请求。该加电请求可以是在方法800的方框804中发送的加电请求。在一些方面,处理器可以针对N个功率域和N个分离监听目录,执行方框902中的操作。
在确定框904中,处理设备可以确定与第一功率域相关联的第一分离监听目录是否已经加电。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框904中的操作。
响应于确定第一分离监听目录尚未加电(即,确定框904=“否”),在方框906中,处理设备可以对第一分离监听目录进行加电。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框906中的操作。
响应于确定第一分离监听目录已经加电(即,确定框904=“是”),在方框902中,处理设备可以接收与第二功率域相关联的第二分离监听目录的加电请求。
图10根据一个方面,示出了用于针对多个功率域来启用分离监听目录的方法1000。可以针对任何数量的N个功率域来实现方法1000,其中N是大于1的整数。可以在计算设备中利用在处理器(例如,图1和图2中的处理器14)中执行的软件、利用通用硬件、利用专用硬件(例如,图4和5中的分离监听目录功率控制器404a、404b和/或处理器高速缓存功率控制器402a、402b、402c)、或者利用处理器和专用硬件的组合(例如,在包括其它单独组件的分离监听目录系统内执行软件的处理器),来实现方法1000。为了涵盖在各个方面中实现的替代配置,在本文中将实现方法1000的硬件称为“处理设备”。在各个方面,方法1000可以实现为参照图7所描述的方法700和/或参照图8所描述的方法800的一部分、其扩展,方法1000可以结合或者独立于方法700和/或方法800来实现。
在方框1002中,处理设备可以接收与第一功率域(例如,图4和5中的功率域400a、400b)相关联的第一分离监听目录(例如,图3到图5中的分离监听目录310a、310b)的启用请求。该启用请求可以是在方法800的方框812中发送的启用请求。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框1002中的操作。
在方框1004中,处理设备可以启用第一分离监听目录。在方框1006中,处理设备可以发送对功率域分离监听目录的启用的确认。该确认可以是在方法800的方框814中接收的确认。
图11根据一个方面,示出了用于针对多个功率域实现分离监听目录禁用的方法1100。可以针对任何数量的N个功率域来实现方法1100,其中N是大于1的整数。可以在计算设备中利用在处理器(例如,图1和图2中的处理器14)中执行的软件、利用通用硬件、利用专用硬件(例如,图4和5中的分离监听目录功率控制器404a、404b和/或处理器高速缓存功率控制器402a、402b、402c)、或者利用处理器和专用硬件的组合(例如,在包括其它单独组件的分离监听目录系统内执行软件的处理器),来实现方法1100。为了涵盖在各个方面中实现的替代配置,在本文中将实现方法1100的硬件称为“处理设备”。在各个方面,方法1100可以实现为图7中的方法700的一部分、其扩展,方法1100可以结合或者独立于方法700来实现。
在方框1102中,处理设备可以检测第一功率域(例如,图4和图5中的功率域400a、400b)到低功率状态(其包括断电和保持(即,RET)状态)的变化的条件。检测断电(即,“关闭”)或保持(即,“RET”)状态可以是基于在多核处理器未指示其功率状态、和/或第一功率域的组件的输入/输出活动时监测功率消耗、温度、多核处理器功率控制单元活动和/或状态,其中第一功率域的组件包括下面中的任何一个:多核处理器(例如,图4和图5中的多核处理器14a、14b、14c)、处理器核(例如,图4和5中的处理器核300a、300b、300c、300d、300e、300f)、以及包括专用高速缓存(例如,图4和5中的专用高速缓存302a、302b、302c、302d、302e、302f)或共享高速缓存(例如,图4和5中的共享高速缓存304a、304b、304c)的处理器高速缓存。监测的功率消耗水平、温度、多核处理器功率控制单元的活动和/或状态、和/或输入/输出活动水平的减小或停止,可以向处理设备指示已在第一功率域中发生了断电或保持事件。在一些方面,处理设备可以针对N个功率域,执行方框1102中的操作。
在可选框1104中,对于断电事件,处理设备可以刷新受断电事件影响的第一功率域的处理器高速缓存。处理器高速缓存刷新可以在断电事件时将存储在处理器高速缓存中的数据发送到另一个存储器(例如,图1中的存储器16和存贮设备24以及图3中的随机存取存储器组件312)。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框1104中的操作。
在方框1106中,处理设备可以针对与改变到低功率状态相关联的处理器高速缓存,禁用与第一功率域相关联的第一分离监听目录的监听。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框1106中的操作。
在方框1108中,处理设备可以将与低功率状态的改变相关联的第一功率域的处理器高速缓存改变为低功率状态。在各个实施例中,将处理器高速缓存改变为低功率状态可以包括:将处理器高速缓存改变为断电(即,“关闭”)状态或保持(即,“RET”)状态。
在方框1110中,处理设备可以发送与第一功率域相关联的第一分离监听目录的禁用通知。该禁用通知可以是响应于在方框1102中检测到用于将第一功率域改变为低功率状态的条件而将第一分离监听目录改变为低功率状态(例如,“关闭”或“RET”状态)的请求。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框1108中的操作。
图12根据一个方面,示出了用于针对多个功率域实现分离监听目录禁用的方法1200。可以针对任何数量的N个功率域来实现方法1200,其中N是大于1的整数。可以在计算设备中利用在处理器(例如,图1和图2中的处理器14)中执行的软件、利用通用硬件、利用专用硬件(例如,图4和5中的分离监听目录功率控制器404a、404b和/或处理器高速缓存功率控制器402a、402b、402c)、或者利用处理器和专用硬件的组合(例如,在包括其它单独组件的分离监听目录系统内执行软件的处理器),来实现方法1200。为了涵盖在各个方面中实现的替代配置,在本文中将实现方法1200的硬件称为“处理设备”。在各个方面,方法1200可以实现为参照图7所描述的方法700和/或参照图11所描述的方法1100的一部分、其扩展,方法1200可以结合或者独立于方法700和/或方法1100来实现。
在方框1202中,处理设备可以接收与第一功率域(例如,图4和5中的功率域400a、400b)相关联的第一分离监听目录(例如,图3到图5中的分离监听目录310a、310b)的禁用通知。该禁用通知可以是在方法1100的方框1110中发送的禁用通知。该禁用通知可以是响应于在方框1102中检测到用于将第一功率域改变为低功率状态的条件,将第一分离监听目录改变为低功率状态(例如,“关闭”或“RET”状态)的请求。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框1202中的操作。
在块确定框1204中,处理设备可以通过将第一功率域的最后供电的处理器高速缓存(例如,图4和5中的专用高速缓存302a、302b、302c、302d、302e、302f或共享高速缓存304a、304b、304c)改变为低功率状态,或者通过对最后一个供电的处理器高速缓存断电为保持或者将最后一个供电的处理器高速缓存置于保持,来确定是否触发了禁用通知。换言之,处理器在方法1100的方框1108中确定将处理器高速缓存改变为低功率状态,是否导致第一功率域的所有处理器高速缓存都处于“关闭”或“RET”功率状态,而没有任何一个处于“开启”功率状态。在一些方面,处理设备可以针对N个功率域,执行确定框1204中的操作。
响应于通过将最后供电的处理器高速缓存改变为低功率状态来确定触发了禁用通知(即,确定框1204=“是”),在方框1206中,处理设备可以禁用与第一功率域相关联的第一分离监听目录。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框1206中的操作。
在方框1208中,处理设备可以将与第一功率域相关联的第一分离监听目录断电或者置于保持。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框1208中的操作。
响应于通过将非最后供电的处理器高速缓存改变为低功率状态来确定触发了禁用通知(即,确定框1204=“否”),在方框1210中,处理设备可以使得第一分离监听目录保持启用。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框1210中的操作。
在本文所描述的方法700、800、900、1000、1100、1200中,可以在分离监听目录功率控制器(例如,图4和5中的分离监听目录功率控制器404a、404b)和与功率域(例如,图4和5中的功率域400a、400b)相关联的处理器高速缓存功率控制器(例如,图4和5中的处理器高速缓存功率控制器402a、402b、402c)之间发生信号的传输(即,发送和接收)、请求和确认。
图13根据一个方面,示出了用于使用多核处理器状态信令来针对多个功率域实现分离监听目录加电和启用的方法1300。可以针对任何数量的N个功率域来实现方法1300,其中N是大于1的整数。可以在计算设备中利用在处理器(例如,图1和图2中的处理器14)中执行的软件、利用通用硬件、利用专用硬件(例如,图4和5中的分离监听目录功率控制器404a、404b和/或处理器高速缓存功率控制器402a、402b、402c)、或者利用处理器和专用硬件的组合(例如,在包括其它单独组件的分离监听目录系统内执行软件的处理器),来实现方法1300。为了涵盖在各个方面中实现的替代配置,在本文中将实现方法1300的硬件称为“处理设备”。在各个方面,方法1300可以实现为图7中的方法700的一部分、其扩展,方法1300可以结合或者独立于方法700来实现。
在方框1302中,处理设备可以接收第一功率域(例如,图4和图5中的功率域400a、400b)中的苏醒条件。苏醒条件可以是用于将第一功率域改变到高功率“开启”状态的条件。接收苏醒条件可以是基于监测包括以下中的任何一个的第一功率域的组件的功率消耗、温度、中断、和/或输入/输出活动:多核处理器(例如,图4和图5中的多核处理器14a、14b、14c)、处理器核(例如,图4和5中的处理器核300a、300b、300c、300d、300e、300f)、以及包括专用高速缓存(例如,图4和5中的专用高速缓存302a、302b、302c、302d、302e、302f)或共享高速缓存(例如,图4和5中的共享高速缓存304a、304b、304c)的处理器高速缓存。监测的功率消耗水平、温度、和/或输入/输出活动水平的增加,可以向处理设备指示已在第一功率域中发生了苏醒事件。在一些方面,处理设备可以针对N个功率域,执行方框1302中的操作。
在确定框1304中,处理设备可以确定用于第一功率域的第一分离监听目录(例如,图3到图5中的分离监听目录310a、310b)是否已经加电。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行确定框1304中的操作。
响应于确定与第一功率域相关联的第一分离监听目录尚未加电(即,确定框1304=“否”),在方框1314中,处理设备可以对第一分离监听目录进行加电。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框1314中的操作。
响应于确定与第一功率域相关联的第一分离监听目录已经加电(即,确定框1304=“是”),在确定框1306中,处理设备可以确定是否启用了第一分离监听目录。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行确定框1306中的操作。
响应于确定第一分离监听目录未被启用(即,确定框1306=“否”)或者在方框1314中加电第一分离监听目录之后,在方框1308中,处理设备可以触发用于与第一功率域相关联的第一分离监听目录的标签初始化,并且触发对于与第一功率域相关联的第一分离监听目录的启用。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框1308中的操作。
在方框1310中,处理设备可以启用与第一功率域相关联的第一分离监听目录。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框1310中的操作。
响应于确定已启用与第一功率域相关联的第一分离监听目录(即,确定框1306=“是”)或者在方框1310中启用第一分离监听目录之后,在方框1312中,处理设备可以发送对第一分离监听目录的启用的确认。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框1312中的操作。
图14根据一个方面,示出了用于使用多核处理器状态信令针对多个功率域实现分离监听目录禁用的方法1400。可以针对任何数量的N个功率域来实现方法1400,其中N是大于1的整数。可以在计算设备中利用在处理器(例如,图1和图2中的处理器14)中执行的软件、利用通用硬件、利用专用硬件(例如,图4和5中的分离监听目录功率控制器404a、404b和/或处理器高速缓存功率控制器402a、402b、402c)、或者利用处理器和专用硬件的组合(例如,在包括其它单独组件的分离监听目录系统内执行软件的处理器),来实现方法1400。为了涵盖在各个方面中实现的替代配置,在本文中将实现方法1400的硬件称为“处理设备”。在各个方面,方法1400可以实现为图7中的方法700的一部分、其扩展,方法1400可以结合或者独立于方法700来实现。
在方框1402中,处理设备可以接收用于将第一功率域(例如,图4和图5中的功率域400a、400b)改变到低功率状态(其包括断电和保持状态)的条件。接收断电、“关闭”或保持(即,“RET”)条件可以是基于监测或者接收包括以下中的任何一个的第一功率域的组件的功率状态、功率消耗、温度、和/或输入/输出活动的信号:多核处理器(例如,图4和图5中的多核处理器14a、14b、14c)、处理器核(例如,图4和5中的处理器核300a、300b、300c、300d、300e、300f)、以及包括专用高速缓存(例如,图4和5中的专用高速缓存302a、302b、302c、302d、302e、302f)或共享高速缓存(例如,图4和5中的共享高速缓存304a、304b、304c)的处理器高速缓存。监测的功率消耗水平、温度、和/或输入/输出活动水平的减小或停止,可以向处理设备指示已在第一功率域中发生了断电或保持事件。在一些方面,处理设备可以针对N个功率域,执行方框1402中的操作。
在确定框1404中,处理设备可以确定用于改变到低功率状态的条件是否是针对于第一功率域的最后供电的处理器高速缓存。换言之,处理器可以通过对处理器高速缓存进行断电或置于保持,来确定改变到低功率状态是否将导致第一功率域的所有处理器高速缓存都处于“关闭”或“RET”功率状态,并且没有任何一个处于“开启”功率状态。在一些方面,处理设备可以针对N个功率域,执行方框1404中的操作。
响应于确定用于改变到低功率状态的条件不是针对于最后供电的处理器高速缓存(即,确定框1404=“否”),在方框1410中,处理设备可以使第一分离监听目录保持启用。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框1410中的操作。
响应于确定用于改变到低功率状态的条件是针对于最后供电的处理器高速缓存(即,确定框1404=“是”),在方框1406中,处理设备可以禁用与第一个功率域相关联的第一分离监听目录。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框1406中的操作。
在方框1408中,处理设备可以将与第一功率域相关联的第一分离监听目录断电或者置于保持。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框1408中的操作。
在本文所描述的方法700、1300、1400中,可以在分离监听目录功率控制器(例如,图4和5中的分离监听目录功率控制器404a、404b)和功率域(例如,图4和5中的功率域400a、400b)之间发生信号的传输(即,发送和接收)、请求和确认。
图15根据一个方面,示出了用于针对多个功率域实现分离监听目录的方法1500。可以针对任何数量的N个功率域来实现方法1500,其中N是大于1的整数。可以在计算设备中利用在处理器(例如,图1和图2中的处理器14)中执行的软件、利用通用硬件、利用专用硬件(例如,图4和5中的分离监听目录功率控制器404a、404b和/或处理器高速缓存功率控制器402a、402b、402c)、或者利用处理器和专用硬件的组合(例如,在包括其它单独组件的分离监听目录系统内执行软件的处理器),来实现方法1500。为了涵盖在各个方面中实现的替代配置,在本文中将实现方法1500的硬件称为“处理设备”。
在方框1502中,处理设备可以初始化多个分离监听目录(例如,图3到图5中的分离监听目录310a、310b),其中每个分离监听目录对应于一个功率域(例如,图4和图5中的功率域400a、400b)。在各个方面,处理设备可以初始化用于第一功率域的第一分离监听目录和用于第二功率域的第二分离监听目录。第一功率域可以包括第一多个处理器高速缓存(例如,图4和5中的专用高速缓存302a、302b、302c、302d、302e、302f和/或共享高速缓存304a、304b、304c),并且第二功率域包括至少一个处理器高速缓存。在一些方面,处理设备可以针对N个(即,第一、第二、第三、第四等等)功率域和N个(即,第一、第二、第三、第四等等)分离监听目录,执行方框1502中的操作。
在方框1504中,处理设备可以针对每个功率域和相应的分离监听目录,单独地和/或并行地实现参照图7到图14所描述的方法700、800、900、1000、1100、1200、1300、1400中的一个或多个。这可以包括第一功率域和相对应的第一分离监听目录以及第二功率域和相对应的第二分离监听目录。在一些方面,处理设备可以针对N个功率域和N个分离监听目录,执行方框1504中的操作。
可以在包括移动计算设备的各种各样的计算系统中实现各个方面(其包括但不限于上面参照图1-5所描述的方面),其中在图16中示出了适合于结合各个方面使用的示例性移动计算设备。移动计算设备1600可以包括耦合到触摸屏控制器1604和内部存储器1606的处理器1602。处理器1602可以是被设计为实现通用或特定处理任务的一个或多个多核集成电路。内部存储器1606可以是易失性存储器或非易失性存储器,还可以是安全和/或加密存储器,或者非安全和/或非加密存储器、或者其任意组合。可以利用的存储器类型的例子,包括但不限于:DDR、LPDDR、GDDR、WIDEIO、RAM、SRAM、DRAM、P-RAM、R-RAM、M-RAM、STT-RAM和嵌入式DRAM。触摸屏控制器1604和处理器1602还可以耦合到触摸屏面板1612,例如,电阻式感应触摸屏、电容感应触摸屏、红外线感应触摸屏等等。另外,计算设备1600的显示器并不需要具有触摸屏能力。
移动计算设备1600可以具有用于发送和接收通信的一个或多个无线电信号收发机1608(例如,Peanut、Bluetooth、Zigbee、Wi-Fi、RF无线电装置)和天线1610,它们彼此之间相耦合和/或耦合到处理器1602。收发机1608和天线1610可以结合上面所提及的电路来使用,以实现各种无线传输协议栈和接口。移动计算设备1600可以包括蜂窝网络无线调制解调器芯片1616,后者经由蜂窝网络来实现通信并耦合到处理器。
移动计算设备1600可以包括耦合到处理器1602的外围设备连接接口1618。外围设备连接接口1618可以被单独地配置为接受一种类型的连接,或者被配置为接受多种类型的物理和通信连接、共同或专有连接(例如,通用串行总线(USB)、火线、Thunderbolt或PCIe)。此外,外围设备连接接口1618还可以耦合到类似配置的外围设备连接端口(没有示出)。
移动计算设备1600还可以包括用于提供音频输出的扬声器1614。移动计算设备1600还可以包括使用塑料、金属、或材料的组合所构成的壳体1620,以包含本文所描述的所有部件或者一些部件。移动计算设备1600可以包括耦合到处理器1602的电源1622,例如一次性或可充电电池。此外,该可充电电池还可以耦合到外围设备连接端口,以便从移动计算设备1600之外的源接收充电电流。移动计算设备1600还可以包括用于接收用户输入的物理按键1624。移动计算设备1600还可以包括用于打开和关闭移动计算设备1600的电源按键1626。
各个方面(其包括但不限于上面参照图1-15所描述的方面)可以实现在包括膝上型计算机1700的各种各样的计算系统中,在图17中示出了膝上型计算机1700的一个例子。很多膝上型计算机包括触摸板触摸接口1717,后者服务成该计算机的指向设备,故可以接收拖动、滚动和滑动手势(其类似于上面所描述的在装备有触摸屏显示器的计算设备上所实现的那些手势)。通常,膝上型计算机1700包括耦合到易失性存储器1712和大容量非易失性存储器(例如,闪存的硬盘驱动器1713)的处理器1711。另外,计算机1700可以具有用于发送和接收电磁辐射的一个或多个天线1708,这些天线1708可以连接到无线数据链路和/或耦合到处理器1711的蜂窝电话收发机1716。计算机1700还可以包括耦合到处理器1711的软盘驱动器1714和压缩光盘(CD)驱动器1715。在笔记本配置中,计算机壳体包括全部都耦合到处理器1711的触摸板1717、键盘1718和显示器1719。该计算设备的其它配置可以包括(例如,经由USB输入)耦合到处理器的计算机鼠标或者跟踪球,如公众所知道的,这些部件也可以结合各个方面来使用。
各个方面(其包括但不限于上面参照图1到图15所描述的方面)可以实现在固定计算系统中(例如,各种各样的商业可用的服务器中的任何一种)。图18示出了一种示例性服务器1800。通常,这种服务器1800包括耦合到易失性存储器1802和大容量非易失性存储器(例如,磁盘驱动器1804)的一个或多个多核处理器组件1801。如图18中所示,可以通过将多核处理器组件1801插入到组装的架中,来添加到服务器1800中。服务器1800还可以包括耦合到处理器1801的软盘驱动器、压缩光盘(CD)或者数字通用光盘(DVD)光盘驱动器1806。服务器1800还可以包括耦合到多核处理器组件1801的网络接入端口1803,以便与网络1805(例如,耦合到其它广播系统计算机和服务器的局域网、互联网、公众交换电话网、和/或蜂窝数据网络(如,CDMA、TDMA、GSM、PCS、3G、4G、LTE或者任何其它类型的蜂窝数据网络))建立网络接口连接。
用于在可编程处理器上运行以执行本文的各个方面的操作的计算机程序代码或“程序代码”,可以利用诸如C、C++、C#、Smalltalk、Java、JavaScript、Visual Basic、结构化查询语言(例如,Transact-SQL)、Perl之类的高级编程语言来编写,或者利用各种其它编程语言来编写。如本申请中所使用的计算机可读存储介质上所存储的程序代码或程序,可以指代其格式是处理器可理解的机器语言代码(例如,目标代码)。
上述的方法描述和处理流程图仅仅是用作为说明性例子,而不是旨在要求或者隐含着必须以所给出的顺序来执行各个方面的步骤。如本领域普通技术人员所应当理解的,可以以任何顺序来执行上述的方面中的操作顺序。诸如“其后”、“转而”、“接着”等等之类的词语,并不旨在限制这些操作的顺序;这些词语仅仅只是用于引导读者遍历该方法的描述。此外,任何对权利要求元素的单数引用(例如,使用冠词“一个(a)”、“某个(an)”或者“该(the)”),不应被解释为将该元素限制为单数形式。
结合本文的各个方面描述的各种示例性的逻辑框、模块、电路和算法操作均可以实现成电子硬件、计算机软件或二者的组合。为了清楚地表示硬件和软件之间的这种可交换性,上面对各种示例性的部件、框、模块、电路和操作均围绕其功能进行了总体描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本发明的保护范围。
用于执行本文所述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件部件或者其任意组合,可以用来实现或执行结合本文所公开的方面描述的用于实现各种示例性的逻辑、逻辑框、模块和电路的硬件。通用处理器可以是微处理器,或者,该处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,DSP和微处理器的组合、若干微处理器、一个或多个微处理器与DSP内核的结合,或者任何其它此种结构。替代地,一些操作或方法可以由特定于给定的功能的电路来执行。
在一个或多个方面,本文所述功能可以用硬件、软件、固件或它们任意组合的方式来实现。当在软件中实现时,可以将这些功能存储成非临时性计算机可读介质或者非临时性处理器可读介质上的一个或多个指令或代码。本文所公开的方法或算法的操作,可以体现在处理器可执行软件模块中,后者可以位于非临时性计算机可读存储介质或处理器可读存储介质上。非临时性计算机可读或处理器可读存储介质可以是计算机或处理器能够存取的任何存储介质。举例而言,但非做出限制,这种非临时性计算机可读介质或者处理器可读介质可以包括RAM、ROM、EEPROM、闪存、CD-ROM或其它光盘存储器、磁盘存储器或其它磁存储设备、或者能够用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。如本文所使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字通用光盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。上述的组合也应当包括在非临时性计算机可读介质和处理器可读介质的保护范围之内。另外,一种方法或算法的操作可以作为一个代码和/或指令集或者其任意组合,位于非临时性处理器可读介质和/或计算机可读介质上,其中该非临时性处理器可读介质和/或计算机可读介质可以并入到计算机程序产品中。
为使本领域任何普通技术人员能够实现或者使用本发明,上面围绕所公开的方面进行了描述。对于本领域普通技术人员来说,对这些方面的各种修改是显而易见的,并且,本文定义的总体原理也可以在不脱离本发明的保护范围的基础上应用于其它方面和实施方式。因此,本公开内容并不限于本文所示出的方面和实施方式,而是与所附权利要求书和本文公开的原理和新颖性特征的最广范围相一致。

Claims (30)

1.一种在计算设备上实现多个分离监听目录的方法,包括:
针对第一功率域启用第一分离监听目录,并且针对第二功率域启用第二分离监听目录,其中,所述第一功率域包括多个处理器高速缓存,并且所述第二功率域包括至少一个处理器高速缓存;
确定是否所有的所述多个处理器高速缓存都处于低功率状态;以及
响应于确定所有的所述多个处理器高速缓存都处于低功率状态,禁用所述第一分离监听目录。
2.根据权利要求1所述的方法,还包括:
检测用于将所述多个处理器高速缓存中的至少一个处理器高速缓存改变为低功率状态的条件;以及
响应于检测到用于将所述至少一个处理器高速缓存改变为低功率状态的所述条件,发送将所述第一分离监听目录改变为低功率状态的请求。
3.根据权利要求2所述的方法,还包括:接收将所述第一分离监听目录改变为低功率状态的所述请求,
其中,确定是否所有的所述多个处理器高速缓存都处于低功率状态包括:响应于接收到将所述第一分离监听目录改变为低功率状态的所述请求,确定是否所有的所述多个处理器高速缓存都处于低功率状态。
4.根据权利要求1所述的方法,还包括:接收用于将所述多个处理器高速缓存中的至少一个处理器高速缓存改变为低功率状态的条件,
其中,确定是否所有的所述多个处理器高速缓存都处于低功率状态包括:响应于检测到用于将所述至少一个处理器高速缓存改变为低功率状态的所述条件,确定是否所有的所述多个处理器高速缓存都处于低功率状态。
5.根据权利要求4所述的方法,其中,接收用于将所述多个处理器高速缓存中的至少一个处理器高速缓存改变为低功率状态的条件包括:从所述第一功率域接收用于指示所述多个处理器高速缓存中的所述至少一个处理器高速缓存的功率状态的信号。
6.根据权利要求1所述的方法,还包括:响应于确定所述多个处理器高速缓存中的至少一个处理器高速缓存处于高功率状态,使所述第一分离监听目录保持启用。
7.根据权利要求1所述的方法,还包括:
检测用于将所述多个处理器高速缓存中的至少一个处理器高速缓存改变为高功率状态的条件;以及
响应于检测到用于将所述至少一个处理器高速缓存改变为高功率状态的所述条件,并且确定所述多个处理器高速缓存都处于低功率状态,启用所述第一分离监听目录。
8.根据权利要求7所述的方法,其中:
低功率状态包括“关闭”状态和“RET”(保持)状态中的一种;以及高功率状态包括“开启”状态。
9.根据权利要求1所述的方法,还包括:
针对N个功率域启用N个分离监听目录,并且针对M个功率域启用M个分离监听目录,其中,N和M是大于1的整数,所述N个功率域包括N批多个处理器高速缓存,并且所述M个功率域包括至少一个处理器高速缓存;
确定是否所述N批多个处理器高速缓存中的任何一个处理器高速缓存都处于低功率状态;以及
对所有的所述多个处理器高速缓存都处于低功率状态的所述N个分离监听目录中的任何一个分离监听目录进行禁用。
10.一种被配置为实现多个分离监听目录的计算设备,包括:
包括多个处理器高速缓存的第一功率域;
包括至少一个处理器高速缓存的第二功率域;
具有用于所述第一功率域的第一分离监听目录和用于所述第二功率域的第二分离监听目录的相干互连;
通信地连接到所述第一功率域并且通信地连接到所述相干互连的第一处理设备;以及
通信地连接到所述第二功率域并且通信地连接到所述相干互连的第二处理设备,
其中,所述第一处理设备被配置为执行包括以下的操作:
启用第一分离监听目录;
确定是否所有的所述多个处理器高速缓存都处于低功率状态;以及
响应于确定所有的所述多个处理器高速缓存都处于低功率状态,
禁用所述第一分离监听目录。
11.根据权利要求10所述的计算设备,还包括通信地连接到所述第一功率域并且通信地连接到所述第一处理设备的第三处理设备,所述第三处理设备被配置为执行包括以下的操作:
检测用于将所述多个处理器高速缓存中的至少一个处理器高速缓存改变为低功率状态的条件;以及
响应于检测到用于将所述至少一个处理器高速缓存改变为低功率状态的所述条件,发送用于所述第一处理设备将所述第一分离监听目录改变为低功率状态的请求。
12.根据权利要求11所述的计算设备,其中,所述第一处理设备被配置为执行还包括以下的操作:接收将所述第一分离监听目录改变为低功率状态的所述请求,
其中,所述第一处理设备被配置为执行操作,使得确定是否所有的所述多个处理器高速缓存都处于低功率状态包括:响应于接收到将所述第一分离监听目录改变为低功率状态的所述请求,确定是否所有的所述多个处理器高速缓存都处于低功率状态。
13.根据权利要求10所述的计算设备,其中,所述第一处理设备被配置为执行还包括以下的操作:接收用于将所述多个处理器高速缓存中的至少一个处理器高速缓存改变为低功率状态的条件,
其中,所述第一处理设备被配置为执行操作,使得确定是否所有的所述多个处理器高速缓存都处于低功率状态包括:响应于检测到用于将所述至少一个处理器高速缓存改变为低功率状态的所述条件,确定是否所有的所述多个处理器高速缓存都处于低功率状态。
14.根据权利要求13所述的计算设备,其中,所述第一处理设备被配置为执行操作,使得接收用于将所述多个处理器高速缓存中的至少一个处理器高速缓存改变为低功率状态的条件包括:从所述第一功率域接收用于指示所述多个处理器高速缓存中的所述至少一个处理器高速缓存的功率状态的信号。
15.根据权利要求10所述的计算设备,其中,所述第一处理设备被配置为执行还包括以下的操作:响应于确定所述多个处理器高速缓存中的至少一个处理器高速缓存处于高功率状态,使所述第一分离监听目录保持启用。
16.根据权利要求10所述的计算设备,还包括通信地连接到所述第一功率域并且通信地连接到所述第一处理设备的第三处理设备,所述第三处理设备被配置为执行包括以下的操作:检测用于将所述多个处理器高速缓存中的至少一个处理器高速缓存改变为高功率状态的条件;以及
其中,所述第一处理设备被配置为执行还包括以下的操作:响应于所述第三处理设备检测到用于将所述至少一个处理器高速缓存改变为高功率状态的所述条件,并且确定所述多个处理器高速缓存都处于低功率状态,启用所述第一分离监听目录。
17.根据权利要求16所述的计算设备,其中:
低功率状态包括“关闭”状态和“RET”(保持)状态中的一种;以及高功率状态包括“开启”状态。
18.根据权利要求16所述的计算设备,其中,所述第一处理设备和所述第三处理设备是相同的处理设备。
19.根据权利要求10所述的计算设备,还包括:
包括多个处理器高速缓存的N个功率域;以及
包括至少一个处理器高速缓存的M个功率域,
其中,所述第一处理设备被配置为执行还包括以下的操作:
针对N个功率域启用N个分离监听目录,并且针对M个功率域启用M个分离监听目录,其中,N和M是大于1的整数;
确定是否所述N批多个处理器高速缓存中的任何一个处理器高速缓存都处于低功率状态;以及
对所有的所述多个处理器高速缓存都处于低功率状态的所述N个分离监听目录中的任何一个分离监听目录进行禁用。
20.一种被配置为实现多个分离监听目录的计算设备,包括:
用于针对第一功率域启用第一分离监听目录,并且针对第二功率域启用第二分离监听目录的单元,其中,所述第一功率域包括多个处理器高速缓存,并且所述第二功率域包括至少一个处理器高速缓存;
用于确定是否所有的所述多个处理器高速缓存都处于低功率状态的单元;以及
用于响应于确定所有的所述多个处理器高速缓存都处于低功率状态,禁用所述第一分离监听目录的单元。
21.根据权利要求20所述的计算设备,还包括:
用于检测用于将所述多个处理器高速缓存中的至少一个处理器高速缓存改变为低功率状态的条件的单元;以及
用于响应于检测到用于将所述至少一个处理器高速缓存改变为低功率状态的所述条件,发送将所述第一分离监听目录改变为低功率状态的请求的单元。
22.根据权利要求21所述的计算设备,还包括:用于接收将所述第一分离监听目录改变为低功率状态的所述请求的单元,
其中,用于确定是否所有的所述多个处理器高速缓存都处于低功率状态的单元包括:用于响应于接收到将所述第一分离监听目录改变为低功率状态的所述请求,确定是否所有的所述多个处理器高速缓存都处于低功率状态的单元。
23.根据权利要求20所述的计算设备,还包括:用于接收用于将所述多个共享高速缓存中的至少一个处理器高速缓存改变为低功率状态的条件的单元,
其中,用于确定是否所有的所述多个处理器高速缓存都处于低功率状态的单元包括:用于响应于检测到用于将所述至少一个处理器高速缓存改变为低功率状态的所述条件,确定是否所有的所述多个处理器高速缓存都处于低功率状态的单元。
24.根据权利要求23所述的计算设备,其中,用于接收用于将所述多个处理器高速缓存中的至少一个处理器高速缓存改变为低功率状态的条件的单元包括:用于从所述第一功率域接收用于指示所述至少一个处理器高速缓存的功率状态的信号的单元。
25.根据权利要求20所述的计算设备,还包括:用于响应于确定所述多个处理器高速缓存中的至少一个处理器高速缓存处于高功率状态,使所述第一分离监听目录保持启用的单元。
26.根据权利要求25所述的计算设备,还包括:
用于检测用于将所述多个处理器高速缓存中的至少一个处理器高速缓存改变为高功率状态的条件的单元;以及
用于响应于检测到用于将所述至少一个处理器高速缓存改变为高功率状态的所述条件,并且确定所述多个处理器高速缓存都处于低功率状态,启用所述第一分离监听目录的单元。
27.根据权利要求26所述的计算设备,其中:
低功率状态包括“关闭”状态和“RET”(保持)状态中的一种;以及高功率状态包括“开启”状态。
28.根据权利要求20所述的计算设备,还包括:
用于针对N个功率域启用N个分离监听目录,并且针对M个功率域启用M个分离监听目录的单元,其中,N和M是大于1的整数,所述N个功率域包括N批多个处理器高速缓存,并且所述M个功率域包括至少一个处理器高速缓存;
用于确定是否所述N批多个处理器高速缓存中的任何一个处理器高速缓存都处于低功率状态的单元;以及
用于对所有的所述多个处理器高速缓存都处于低功率状态的所述N个分离监听目录中的任何一个分离监听目录进行禁用的单元。
29.一种其上存储有处理器可执行指令的非临时性处理器可读存储介质,其中所述处理器可执行指令被配置为使计算设备的处理器执行包括以下的操作:
针对第一功率域启用第一分离监听目录,并且针对第二功率域启用第二分离监听目录,其中,所述第一功率域包括多个处理器高速缓存,并且所述第二功率域包括至少一个处理器高速缓存;
确定是否所有的所述多个处理器高速缓存都处于低功率状态;以及
响应于确定所有的所述多个处理器高速缓存都处于低功率状态,禁用所述第一分离监听目录。
30.根据权利要求29所述的非临时性处理器可读存储介质,其中,所述存储的处理器可执行指令被配置为使所述处理器执行还包括以下的操作:
检测用于将所述多个处理器高速缓存中的至少一个处理器高速缓存改变为低功率状态的条件;
响应于检测到用于将所述至少一个处理器高速缓存改变为低功率状态的所述条件,发送将所述第一分离监听目录改变为低功率状态的请求;以及
接收将所述第一分离监听目录改变为低功率状态的所述请求,
其中,确定是否所有的所述多个处理器高速缓存都处于低功率状态包括:响应于接收到将所述第一分离监听目录改变为低功率状态的所述请求,确定是否所有的所述多个处理器高速缓存都处于低功率状态。
CN201780054611.6A 2016-09-08 2017-09-07 使用硬件控制的分离监听目录的相干互连功率降低 Pending CN109690502A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/259,697 US10606339B2 (en) 2016-09-08 2016-09-08 Coherent interconnect power reduction using hardware controlled split snoop directories
US15/259,697 2016-09-08
PCT/US2017/050450 WO2018049010A1 (en) 2016-09-08 2017-09-07 Coherent interconnect power reduction using hardware controlled split snoop directories

Publications (1)

Publication Number Publication Date
CN109690502A true CN109690502A (zh) 2019-04-26

Family

ID=59901602

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780054611.6A Pending CN109690502A (zh) 2016-09-08 2017-09-07 使用硬件控制的分离监听目录的相干互连功率降低

Country Status (7)

Country Link
US (1) US10606339B2 (zh)
EP (1) EP3510487B1 (zh)
JP (1) JP6748298B2 (zh)
KR (1) KR102132571B1 (zh)
CN (1) CN109690502A (zh)
BR (1) BR112019004001A8 (zh)
WO (1) WO2018049010A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6772007B2 (ja) * 2016-09-12 2020-10-21 キヤノン株式会社 情報処理装置及びその制御方法、コンピュータプログラム
KR102659679B1 (ko) 2019-04-22 2024-04-19 주식회사 엘지에너지솔루션 배터리의 미분 전압 커브를 결정하기 위한 장치 및 방법과, 상기 장치를 포함하는 배터리 팩
US11354239B2 (en) * 2020-09-18 2022-06-07 Microsoft Technology Licensing, Llc Maintaining domain coherence states including domain state no-owned (DSN) in processor-based devices
CN117931529A (zh) * 2024-03-21 2024-04-26 上海励驰半导体有限公司 启动管理方法和设备、电子设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567255A (zh) * 2010-10-29 2012-07-11 飞思卡尔半导体公司 具有监听请求选择性无效的数据处理系统和用于其的方法
CN102668473A (zh) * 2009-10-30 2012-09-12 卡尔克塞达公司 用于高性能、低功率数据中心互连结构的系统和方法
CN103119571A (zh) * 2010-09-25 2013-05-22 英特尔公司 用于竞争激烈的高速缓存行的无缝区域高效目录高速缓存的分配和写策略
US20140189411A1 (en) * 2013-01-03 2014-07-03 Apple Inc. Power control for cache structures
US20140281275A1 (en) * 2013-03-13 2014-09-18 Applied Micro Circuits Corporation Broadcast messaging and acknowledgment messaging for power management in a multiprocessor system
CN104756090A (zh) * 2012-11-27 2015-07-01 英特尔公司 提供扩展的缓存替换状态信息
CN105701030A (zh) * 2014-12-14 2016-06-22 上海兆芯集成电路有限公司 根据卷标比特的动态高速缓存置换路选择
US20160188471A1 (en) * 2014-12-31 2016-06-30 Arteris, Inc. Configurable snoop filters for cache coherent systems

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2403561A (en) * 2003-07-02 2005-01-05 Advanced Risc Mach Ltd Power control within a coherent multi-processor system
US7089361B2 (en) 2003-08-07 2006-08-08 International Business Machines Corporation Dynamic allocation of shared cache directory for optimizing performance
US7752474B2 (en) 2006-09-22 2010-07-06 Apple Inc. L1 cache flush when processor is entering low power mode
CN101689106B (zh) * 2007-06-12 2013-10-09 松下电器产业株式会社 多处理器控制装置、多处理器控制方法以及多处理器控制电路
US8527709B2 (en) * 2007-07-20 2013-09-03 Intel Corporation Technique for preserving cached information during a low power mode
US20130318308A1 (en) 2012-05-24 2013-11-28 Sonics, Inc. Scalable cache coherence for a network on a chip
US9304923B2 (en) 2013-03-12 2016-04-05 Arm Limited Data coherency management
US9361236B2 (en) 2013-06-18 2016-06-07 Arm Limited Handling write requests for a data array
US9342134B2 (en) * 2013-09-27 2016-05-17 Intel Corporation Power consumption reduction in a computing device
US9665153B2 (en) 2014-03-21 2017-05-30 Intel Corporation Selecting a low power state based on cache flush latency determination
US20160314024A1 (en) * 2015-04-24 2016-10-27 Mediatek Inc. Clearance mode in a multicore processor system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102668473A (zh) * 2009-10-30 2012-09-12 卡尔克塞达公司 用于高性能、低功率数据中心互连结构的系统和方法
CN103119571A (zh) * 2010-09-25 2013-05-22 英特尔公司 用于竞争激烈的高速缓存行的无缝区域高效目录高速缓存的分配和写策略
CN102567255A (zh) * 2010-10-29 2012-07-11 飞思卡尔半导体公司 具有监听请求选择性无效的数据处理系统和用于其的方法
CN104756090A (zh) * 2012-11-27 2015-07-01 英特尔公司 提供扩展的缓存替换状态信息
US20140189411A1 (en) * 2013-01-03 2014-07-03 Apple Inc. Power control for cache structures
US20140281275A1 (en) * 2013-03-13 2014-09-18 Applied Micro Circuits Corporation Broadcast messaging and acknowledgment messaging for power management in a multiprocessor system
CN105701030A (zh) * 2014-12-14 2016-06-22 上海兆芯集成电路有限公司 根据卷标比特的动态高速缓存置换路选择
US20160188471A1 (en) * 2014-12-31 2016-06-30 Arteris, Inc. Configurable snoop filters for cache coherent systems

Also Published As

Publication number Publication date
KR102132571B1 (ko) 2020-07-09
BR112019004001A8 (pt) 2023-02-14
WO2018049010A1 (en) 2018-03-15
JP6748298B2 (ja) 2020-08-26
US20180067542A1 (en) 2018-03-08
EP3510487A1 (en) 2019-07-17
JP2019534501A (ja) 2019-11-28
US10606339B2 (en) 2020-03-31
KR20190046840A (ko) 2019-05-07
EP3510487B1 (en) 2023-02-22
BR112019004001A2 (pt) 2019-05-28

Similar Documents

Publication Publication Date Title
CN109690502A (zh) 使用硬件控制的分离监听目录的相干互连功率降低
WO2016137579A1 (en) Return oriented programming attack detection via memory monitoring
US10579528B2 (en) Electronic device and method for controlling shareable cache memory thereof
Mittal et al. A survey of techniques for architecting DRAM caches
CN109074314A (zh) 基于存储器请求大小的预测减少存储器访问带宽
EP3871096B1 (en) Hybrid use of non-volatile memory as storage device and cache
US10503656B2 (en) Performance by retaining high locality data in higher level cache memory
CN106575264A (zh) 异构共享虚拟存储器中的按需共享性转换
CN106537361A (zh) 用于通过组和通路将缓存灵活划分成组件缓存的方法和装置
TW201142588A (en) Data movement engine and memory control method
Seongil et al. Row-buffer decoupling: A case for low-latency DRAM microarchitecture
US20190087344A1 (en) Reducing Clean Evictions In An Exclusive Cache Memory Hierarchy
US11755480B2 (en) Data pattern based cache management
US9251048B2 (en) Memory page management
CN106663059B (zh) 功率感知填充
CN109716306A (zh) 动态输入/输出相干性
CN107003709A (zh) 包括实现指令集架构不同部分的多个不同处理器内核的处理器
US20180336136A1 (en) Input/output-coherent Look-ahead Cache Access
Zhang et al. Fuse: Fusing stt-mram into gpus to alleviate off-chip memory access overheads
US9823730B2 (en) Power management of cache duplicate tags
Zhou et al. Gas: A heterogeneous memory architecture for graph processing
CN109791510A (zh) 在异构计算中管理数据流
CN109863478A (zh) 用于异构并行结构的细粒度功率优化
CN107223239A (zh) 用于改善牺牲(Victim)高速缓存模式的处理调度
US20210224213A1 (en) Techniques for near data acceleration for a multi-core architecture

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

Application publication date: 20190426