CN117546123A - 基于探针过滤器保持的低功率状态 - Google Patents

基于探针过滤器保持的低功率状态 Download PDF

Info

Publication number
CN117546123A
CN117546123A CN202280044333.7A CN202280044333A CN117546123A CN 117546123 A CN117546123 A CN 117546123A CN 202280044333 A CN202280044333 A CN 202280044333A CN 117546123 A CN117546123 A CN 117546123A
Authority
CN
China
Prior art keywords
power state
probe filter
low power
data
condition
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
CN202280044333.7A
Other languages
English (en)
Inventor
本杰明·特西恩
阿米特·P·阿普特
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN117546123A publication Critical patent/CN117546123A/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
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • 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
    • G06F1/3215Monitoring of peripheral devices
    • 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
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • 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/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • 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
    • 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
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority 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
    • G06F2212/1024Latency reduction
    • 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/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • 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)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

数据织构在多个请求方和多个响应方之间路由请求。该数据织构包括交叉路由器、耦接到该交叉路由器的一致性从控制器,以及耦接到该一致性从控制器并跟踪存储器的高速缓存行的状态的探针过滤器。功率状态控制电路系统操作以响应于检测到多个指定条件中的任何指定条件而致使该探针过滤器进入保持低功率状态,在该保持低功率状态下,门控到该探针过滤器的时钟信号,同时维持到该探针过滤器的功率。进入该保持低功率状态是在所有进程中探针过滤器查找完成时执行的。

Description

基于探针过滤器保持的低功率状态
背景技术
计算机系统利用各种外围部件以用于不同的输入/输出和通信功能。片上系统(SOC)将数据处理电路诸如中央处理单元(CPU)核心和图形处理单元(GPU)与外围控制器和存储器接口组合在单个集成电路芯片上,并且非常适合于便携式电池供电的操作。例如,SOC可结合显示控制器、图像信号处理器(ISP)以及SOC上的其他外围控制器,以使得能够向计算机系统输入信息以及从计算机系统输出信息。在此类大型且复杂的SOC中,设备通常通过大型片上路由电路或“数据织构”路由访问来在资源诸如存储器之间传送数据。
典型SOC上的电路的多样性给实现节电模式带来了问题。许多外围控制器实时操作并且是等时的,从而需要一定量的带宽来在特定时间段内共享存储器资源。该要求阻碍了全芯片低功率状态的实现。例如,当CPU核心和GPU空闲时,外围控制器可能仍然活动并且接收其可存储在缓冲器中的数据,但必须在缓冲器填满之前将数据发送到存储器。
另一方面,CPU和GPU倾向于具有由空闲时段隔开的高活动时段。当预期空闲周期短时,数据织构、存储器控制器和存储器通常保持活动,使得它们可快速地服务于来自外围控制器的请求以传送更多数据。
附图说明
图1以框图形式例示了现有技术中已知的用于计算机系统功率状态的高级配置和功率接口(ACPI)模型;
图2以框图形式例示了根据一些实施方案的数据处理系统;
图3以框图形式例示了根据一些实施方案的图2的数据织构;
图4示出了例示根据示例性实施方案的用于进入保持低功率状态的过程的流程图;
图5示出了用于离开图4的保持低功率状态过程的过程的流程图;
图6示出了例示根据另一示例性实施方案的用于进入保持低功率状态的另一过程的流程图;并且
图7示出了例示根据示例性实施方案的用于离开和进入保持低功率状态的另一过程的流程图。
在以下描述中,在不同的附图中使用相同的附图标号指示类似或相同的项。除非另有说明,否则字词“耦接”及其相关联的动词形式包括直接连接和通过本领域已知的方式的间接电连接两者,并且除非另有说明,否则对直接连接的任何描述也意味着使用合适形式的间接电连接的另选实施方案。
具体实施方式
一种数据处理器包括多个请求方、多个响应方和数据织构。该数据织构用于在多个请求方和多个响应方之间路由请求,并且包括交叉路由器、连接到交叉路由器的一致性从控制器和连接到一致性从控制器的探针过滤器,以及功率状态控制电路系统。该探针过滤器跟踪存储器的高速缓存行的状态。该功率状态控制电路系统可操作以响应于检测到多个指定条件中的任何指定条件而致使探针过滤器进入保持低功率状态,在该保持低功率状态下,门控到探针过滤器的时钟信号,同时维持到探针过滤器的功率。进入保持低功率状态是在所有进程中探针过滤器查找完成时执行的。
一种方法包括:在数据处理器的数据织构处,在多个请求方和多个响应方之间路由请求。在耦接到数据织构的探针过滤器处,跟踪存储器的高速缓存行的状态。检测到符合探针过滤器保持低功率状态的条件,并且作为响应,命令一致性从控制器禁止或禁用新的探针过滤器查找。门控馈送到探针过滤器的时钟信号。
一种功率状态控制电路控制数据织构的功率状态。该功率状态控制电路包括功率状态控制电路系统、第一时钟门控电路系统和第二时钟门控电路系统。该功率状态控制电路系统可操作以响应于检测到多个指定条件中的任何指定条件而致使数据织构的探针过滤器进入保持低功率状态,在该保持低功率状态下,门控到探针过滤器的时钟信号,同时维持到探针过滤器的功率。该第一时钟门控电路系统连接到功率状态控制电路系统以用于选择性地门控到探针过滤器的第一时钟信号。该第二时钟门控电路系统耦接到功率状态控制电路系统以用于选择性地门控到数据织构的第二时钟信号。进入保持低功率状态是在所有进程中探针过滤器查找完成时执行的。
图1以框图形式例示了现有技术中已知的用于计算机系统功率状态的高级配置和功率接口(ACPI)模型100。ACPI模型100是由各种计算机系统、软件和部件供应商开发以建立用于设备和整个计算机系统两者的设备配置和功率管理的工业标准接口的APCI规范的一部分。
ACPI模型100定义了围绕一组全局系统状态组织的计算机系统中各种设备的状态分级结构,这些全局系统状态包括称为“工作”状态的G0(S0)状态110、称为“睡眠”状态的G1状态120、称为“软关闭”状态的G2(S5)状态130以及称为“机械关闭”状态的G3状态140。此外,ACPI模型100包括称为“传统”状态的状态150,该状态适应与ACPI兼容操作系统加载之前的基本输入/输出系统(BIOS)操作相对应的预先存在的BIOS功率管理接口。ACPI模型100还定义了一组中央处理单元(CPU)状态160,以及用于设备诸如调制解调器、硬盘驱动器(HDD)和光盘只读存储器(CDROM)的一组设备状态或“D”状态170。
ACPI模型100是公知的,并且大多数方面将不进一步讨论。然而,与中央处理单元的功率状态相关的某些方面与理解本公开有关并且现在将进行讨论。
在G0(S0)状态110下,外围设备可使其功率状态动态地改变,同时用户可通过用户界面选择系统的各种性能和功率特性,使得软件系统可针对期望性能或电池寿命而优化计算机。在该状态下,计算机系统实时对外部事件作出响应。计算机系统可在系统固件诸如BIOS的控制下从G0(S0)状态转变到包括各种节电睡眠状态或“S状态”的G1状态120,并且响应于唤醒事件而返回到工作状态。
在G0(S0)状态110下,CPU能够在包括其中处理器执行指令的“C0”状态以及标记为“C1”至“Cn”的各种较低功率或“空闲”状态的各种状态下操作。在C0状态下,CPU能够在其中可使用动态电压和频率缩放(DVFS)来增加或抑制操作频率以支持对当前运行的应用程序的需要的各种性能状态或“P状态”下操作。在空闲状态C1-Cn下,CPU是空闲的并且不执行指令,但具有功耗和唤醒时延的各种组合,其中较低功耗与较长唤醒延迟相权衡。因此,例如,在C1状态下,功耗最高但唤醒时延最短,而在Cn状态下,功耗最低但唤醒时延最长。
使用ACPI模型100,每个特定计算机系统可支持适合于应用环境的P状态和C状态的不同组合。以不由ACPI模型100指定的方式实现降低的功耗和低时延之间的更好权衡仍然是期望的目标。
图2以框图形式例示了根据一些实施方案的数据处理系统200。数据处理系统200包括呈SOC 210形式的数据处理器和呈低功率双倍数据速率同步动态随机存取存储器(LPDDRx SDRAM)273和283形式的外部存储器。实际数据处理系统的许多其他部件通常存在但与理解本公开无关,并且为了便于说明而未在图2中示出。
SOC 210通常包括系统管理单元(SMU)211、系统管理网络(SMN)212、标记为“CCX”的中央处理单元(CPU)核心复合体220、标记为“GFX”的图形控制器230、实时客户端子系统240、存储器/客户端子系统250、数据织构260、存储器通道270和280以及外围部件接口快速(PCIe)子系统290。如本领域普通技术人员将理解的,SOC 210可不具有存在于每个实施方案中的所有这些元件,并且还可具有包括在其中的附加元件。
SMU 211通过SMN 212双向连接到SOC 210中的主要部件。SMN 212形成SOC 210的控制织构。SMU 211是控制SOC 210上的资源的操作并且使这些资源之间的通信同步的本地控制器。SMU 211管理SOC 210上的各种处理器的上电定序,并且经由复位、启用和其他信号控制多个片外设备。SMU 211包括一个或多个时钟源(未示出),诸如锁相环路(PLL),以为SOC 210的部件中的每个部件提供时钟信号。SMU 211还管理各种处理器和其他功能块的功率,并且可从CPU核心复合体220中的CPU核心以及图形控制器230接收测量功耗值以确定适当的P状态。
CPU核心复合体220包括一组CPU核心,该组CPU核心中的每个CPU核心通过SMN 212双向连接到SMU 211。每个CPU核心可以是仅与其他CPU核心共享末级高速缓存的单一核心,或者可与集群中的一些但并非所有其他核心组合。
图形控制器230通过SMN 212双向连接到SMU 211。图形控制器230是能够以高度集成和并行方式执行图形操作诸如顶点处理、片段处理、着色、纹理混合等的高性能图形处理单元。为了执行其操作,图形控制器230需要周期性地访问外部存储器。在图2中示出的实施方案中,图形控制器230与CPU核心复合体220中的CPU核心共享公共存储器子系统,即称为统一存储器架构的架构。因为SOC 210包括CPU和GPU两者,所以它也称为加速处理单元(APU)。
实时客户端子系统240包括一组实时客户端诸如代表性实时客户端242和243,以及标记为“MM集线器”的存储器管理集线器241。每个实时客户端通过SMN 212双向连接到SMU 211,并且双向连接到存储器管理集线器241。实时客户端可以是需要周期性数据移动的任何类型的外围控制器,诸如图像信号处理器(ISP)、音频编码器-解码器(编解码器)、对由图形控制器230生成的对象进行渲染和光栅化以供显示在监视器上的显示控制器等。
存储器/客户端子系统250包括一组存储器元件或外围控制器诸如代表性存储器/客户端设备252和253,以及标记为“SYSHUB/IOHUB”的系统和输入/输出集线器251。每个存储器/客户端设备通过SMN 212双向连接到SMU 211,并且连接到系统和输入/输出集线器251。存储器/客户端设备是存储数据或需要以非周期方式访问数据的电路,诸如非易失性存储器、静态随机存取存储器(SRAM)、外部磁盘控制器诸如串行高级技术附件(SATA)接口控制器、通用串行总线(USB)控制器、系统管理集线器等。
数据织构260是控制SOC 210中的业务流的互连件。数据织构260通过SMN 212双向连接到SMU 211,并且双向连接到CPU核心复合体220、图形控制器230、存储器管理集线器241、系统和输入/输出集线器251。数据织构260包括用于在SOC 210的各种设备中的任一设备之间路由存储器映射的访问请求和响应的交叉开关。该数据织构包括由基本输入/输出系统(BIOS)定义的用于基于系统配置确定存储器访问的目的地的系统存储器映射,以及用于每个虚拟连接的缓冲器。
存储器通道270和280是控制去往和来自外部存储器273和283的数据传送的电路。存储器通道270由存储器控制器271和连接到外部存储器273的标记为“PHY”的物理接口电路272形成。存储器控制器271通过SMN 212双向连接到SMU 211,并且具有双向连接到数据织构260的上行端口以及下行端口。物理接口电路272具有双向连接到存储器控制器271的上行端口和双向连接到外部存储器273的下行端口。类似地,存储器通道280由存储器控制器281和连接到外部存储器283的物理接口电路282形成。存储器控制器281通过SMN 212双向连接到SMU 211,并且具有双向连接到数据织构260的上行端口,以及下行端口。物理接口电路282具有双向连接到存储器控制器281的上行端口和双向连接外部存储器283的下行端口。
外围部件接口快速(PCIe)子系统290包括PCIe控制器291和PCIe物理接口电路292。PCIe控制器291通过SMN 212双向连接到SMU 211,并且具有双向连接到系统和输入/输出集线器251的上行端口以及下行端口。PCIe物理接口电路292具有双向连接到PCIe控制器291的上行端口和双向连接到PCIe织构(图2中未示出)的下行端口。PCIe控制器能够形成PCIe系统的PCIe根复合体,以用于连接到包括PCIe交换机、路由器和设备的PCIe网络。
在操作中,SOC 210在单个芯片上集成了复杂种类的计算和存储设备,包括CPU核心复合体220和图形控制器230。这些控制器中的大多数控制器是公知的,并且将不进一步讨论。SOC 210还实现各种系统监视和节电功能,包括在SMU 211和/或操作系统软件的控制下的P状态提升和抑制以及C状态进入和退出。
例如,SOC 210基于没有指令在执行的空闲周期来控制进入CPU核心复合体220和图形控制器230的各种空闲状态以及从其退出。如所公知的,当CPU核心复合体220和图形控制器230都进入空闲状态时,SOC 210的其他部件也可置于适当空闲状态以节省功率。在一个示例中,CPU核心复合体220支持包括浅空闲状态(C1)和深空闲状态(C6)状态的两种空闲状态。根据ACPI模式,C1状态是最轻C状态,并且可仅涉及时钟门控和供电电压的降低,这允许SOC 210保持其状态而且以非常低的时延返回到活动状态。另一方面,C6状态是极深C状态,并且通过门控各种时钟信号和供电电压来降低功耗,但它也具有极长退出时延。
在一些已知系统中,SOC 210的其他部件也可被置于各种空闲状态以对应于数据处理元件的空闲状态。在一个特定示例中,当每个CPU和GPU进入C1状态时,数据织构和存储器系统保持完全操作,但在通常不需要它们时消耗大量功率。然而,当每个CPU和GPU进入C6状态时,数据织构260也被置于具有功率门控或时钟门控的对应空闲功率状态。在数据织构进入该空闲功率状态之前,该数据织构将外部存储器置于自刷新状态,并且将存储器控制器和PHY置于类似低功率状态。
图3以框图形式例示了根据一些实施方案的图2的数据织构260。数据织构260包括一组主端口310、一组从端口320、交叉路由器330和功率控制器电路350。
主端口310包括用于能够生成存储器访问请求的每个设备的端口,这些端口包括代表性一致性主端口311和312以及代表性主端口313和314。端口311、312、313和314中的每个端口都适于双向连接到如图2所示的对应请求设备,并且具有双向下行端口。每个主端口都具有用于临时存储访问的内部FIFO缓冲器。在各种实施方案中,一致性主端口311和312在上行方向上连接到一致性请求方诸如CCX 220、GFX 230或其他CPU或GPU请求方。主端口313和314在上行方向上分别通过MM集线器241和IO集线器251连接到主要非一致性请求方诸如显示控制器或多媒体控制器。
从端口320包括用于能够对存储器访问请求作出响应的每个设备的端口,这些端口包括代表性从端口321以及代表性一致性从端口322和323。从端口321、322和323中的每个端口具有双向上行端口,并且适于双向连接到如图2所示的对应响应设备。每个从端口都具有用于临时存储访问的内部FIFO缓冲器。一致性从端口322和323各自双向连接到用于跟踪存储器高速缓存行的状态的相应探针过滤器360。每个一致性从端口包括用于该端口的一致性从控制器。
交叉路由器330具有到主端口310的下行双向连接的双向连接和到从端口320的上行双向连接的双向连接。交叉路由器330是数据织构260的核心,并且通过在主端口和对应从端口之间路由访问,基于请求方的目的地地址在主端口和从端口之间形成虚拟连接。
功率控制器电路350包括本地C状态控制器351、时钟门控电路352、功率门控电路353和探针过滤器时钟门控345。本地C状态控制器351具有用于接收标记为“SOC STATE”的信号的第一输入端、连接到探针过滤器时钟门控354的第一输出端、连接到携载标记为“Flushed”的信号的一致性从端口322和323的第二输出端、连接到携载标记为“Disable”的信号的一致性从端口322和323的第三输出端、连接到携载标记为“Wake”的信号的一致性从端口322和323的第四输出端,第五输出端和第六输出端。时钟门控电路352具有用于接收标记为“FCLK”的数据织构时钟信号的输入端、连接到本地C状态控制器351的第五输出端的控制输入端,以及用于向数据织构260提供选择性门控时钟信号的输出端。功率门控电路353具有用于接收标记为“VDD”的数据织构供电电压的输入端、连接到本地C状态控制器351的第六输出端的控制输入端,以及用于向数据织构260提供选择性门控供电电压的输出端。
探针过滤器功率门控354具有接收来自功率门控电路352的时钟信号FCLK的输入端(未示出)和连接到探针过滤器360的输出端。探针过滤器时钟门控354操作以在C状态控制器351的控制下选择性地门控到探针过滤器360的时钟信号以提供低功率保持状态,在该低功率保持状态下,门控到探针过滤器354的时钟信号,同时维持到该探针过滤器的功率,如下文进一步所述。
一般来讲,数据织构260在请求方(诸如CPU核心、GPU、实时客户端控制器等)和响应方(诸如通过存储器控制器和PHY的外部存储器、片上存储器等)之间路由存储器访问请求和响应。在一些场景中,数据织构260实现保持低功率状态,在该保持低功率状态下,探针过滤器被时钟门控但保持功率。该保持低功率状态与C状态一起采用,在该C状态下,探针过滤器360不被功率门控,而是被时钟门控。CCX 220的高速缓存诸如3级高速缓存在采用该保持低功率状态的一些场景中被刷新,但在其他场景中不被刷新。
功率控制器电路350可操作为响应于检测到多个指定条件中的任何指定条件而致使探针过滤器进入保持低功率状态,在该保持低功率状态下,门控到探针过滤器的时钟信号,同时维持到探针过滤器360的功率。进入保持低功率状态包括:一致性从控制器322和323禁止新的探针过滤器查找并且在所有进程中探针过滤器查找完成时发信号通知功率状态控制电路系统。
在该实施方案中,C状态控制器351和探针过滤器时钟门控354包括功率状态控制电路系统,该功率状态控制电路系统操作以提供探针过滤器的保持低功率状态。该状态在该实施方案的C状态期间的所选择时间以及在数据织构260活动时的所选择时间采用。该状态的使用允许探针过滤器360在不使用时通过门控其时钟信号而节省功率,但维持它们的供电以便保持探针过滤器数据。C状态控制器351的功率状态控制电路系统可操作为响应于检测到多个指定条件中的任何指定条件而致使探针过滤器360进入保持低功率状态。如下文进一步所述,进入保持低功率保持状态的过程包括:一致性从控制器诸如在一致性从端口322或323中的一致性从控制器禁止新的探针过滤器查找并且在所有进程中探针过滤器查找完成时通过解除断言“Wake”信号来发信号通知功率状态控制电路系统。
在该实施方案中,三个指定条件各自可致使探针过滤器360进入保持低功率状态。这些条件包括:其中作为探针过滤器客户端的所有请求方已刷新它们的高速缓存的第一条件、其中APU 200或其他主机数据处理器或数据织构260已进入空闲功率状态的第二条件以及其中数据处理器进入其中仅主要非一致性请求方活动的低功率状态的第三条件。在一些实施方案中,仅支持这些条件中的一个或两个条件。
图4示出了例示根据示例性实施方案的用于进入保持低功率状态的过程的流程图400。所描绘的过程适合于在本地C状态控制器351的控制下利用数据织构260来实现,或者利用包括探针过滤器时钟门控能力和与本地C状态控制器351的功率状态控制电路类似的适当功率状态控制器功率状态控制电路的其他适当数据织构电路来实现。
所描绘的过程在框402处开始,在该框处,本地功率状态控制器检测到探针过滤器客户端请求方已刷新它们的高速缓存并且已进入空闲状态的指定条件。在一些实施方案中,探针过滤器客户端包括仅CPU请求方,或仅CPU和GPU请求方。在该实施方案中检测到指定条件包括从系统级功率状态控制器接收到信号。
作为响应,在框404处,本地功率状态控制器断言“Flushed”信号(图3)以向一致性从控制器发信号通知开始进入探针过滤器的保持低功率状态。在所描绘的场景中,该信号用作让一致性从控制器禁止探针过滤器查找的命令。虽然在该示例中描述了多个一致性从控制器,但在一些实施方案中,该过程与仅一个一致性从控制器一起使用。在接收到该信号时,在框406处,一致性从控制器开始禁止新的探针过滤器查找。因为高速缓存已被刷新,所以在框405处,一致性从控制器能够将对先前可高速缓存存储器地址的所有请求视为高速缓存未命中并且不生成探针过滤器查找。
在框408处,一致性从控制器完成当在框404处接收到禁止新的探针过滤器查找的命令时在进程中的所有探针过滤器查找。当那些进程中查找已完成时,在框410处,一致性从控制器解除断言Wake信号以向功率状态控制器发信号通知进程中查找已完成。
在接收到解除断言的Wake信号时,本地功率状态控制器在框412处等待至少从本地功率状态控制器到一致性从控制器并返回的往返信令延迟的延迟时间。然后,在框414处,本地功率状态控制器通过断言Disable信号来向一致性从控制器发信号通知禁用所有探针过滤器查找。本地功率状态控制器还通过激活时钟门控354以门控到探针过滤器的时钟信号来将探针过滤器置于保持低功率状态。在保持低功率状态下,维持探针过滤器供电,并且探针过滤器维持其中所保持的高速缓存行状态数据。
图5示出了用于离开图4的保持低功率状态的过程的流程图500。用于控制进入和退出保持低功率状态的Flush、Disable和Wake信号(图3)提供了根据多个指定条件中提示进入该状态的那个条件而在各种场景中进入和退出保持低功率状态的能力。当框402(图4)的空闲状态条件引起保持低功率状态进入时,则图5的过程用于退出。
在框502处,响应于致使CPU退出空闲状态的CPU中断而开始该过程。在该实施方案中,SOC STATE信号将该状态提供给本地C状态控制器351。在其他实施方案中,类似的信号被提供给本地功率状态控制器。响应于接收到该信号,本地功率状态控制器复原到探针过滤器的时钟信号,并且等待从本地功率状态控制器到一致性从控制器的往返信令延迟时间。
然后,在框506处,本地功率状态控制器通过解除断言Disable信号来向一致性从控制器发信号通知恢复服务于探针过滤器查找。最后,作为离开其空闲状态的CPU过程的一部分,CPU通过打开一致性主端口来重新连接到数据织构。响应于此连接,本地功率状态控制器向一致性从控制器解除断言Flushed信号,从而致使一致性从控制器恢复执行探针过滤器查找。
图6示出了例示根据另一示例性实施方案的用于进入保持低功率状态的另一过程的流程图600。所描绘的过程适合于在本地C状态控制器351的控制下利用数据织构260来实现,或者利用其他适当数据织构电路来实现。
在框602中,该过程检测到用于在不包括CPU的刷新高速缓存的APU的空闲状态期间进入低功率状态诸如上述C状态的条件。因为CPU高速缓存尚未被刷新,所以进入保持低功率状态的过程不同于图4的过程。
在框604处,本地功率状态控制器确定Wake信号是否被断言。如果是,这指示一致性从控制器正在处置探针过滤器查找,则该过程进行到框605,在该框处,本地功率状态控制器暂时中止进入保持低功率状态并且等待Wake信号解除断言。如果Wake信号在框604处未被断言(或当它在框605处被解除断言时),则该过程进行到框606,在该框处,本地功率状态控制器通过断言Disable信号来向一致性从控制器发信号通知禁用探针过滤器查找。
然后,在框608处,本地功率状态控制器等待从本地功率状态控制器到一致性从控制器的往返信令延迟时间。在该等待之后,本地功率状态控制器在框610处再次检查Wake信号是否被断言。如果否,则该过程进行到框612。如果是,则本地功率状态控制器在框611处解除断言Disable信号在框613处中止保持低功率状态进入过程以等待Wake信号解除断言。然后,在框614处,将数据织构置于低功率状态诸如上述C状态。
所描绘的序列具有以下附加优点:允许数据织构从空闲状态移动到C状态,同时在一致性请求在转变过程期间出现的情况下允许它们被服务。
图7示出了例示根据示例性实施方案的用于离开和进入保持低功率状态的另一过程的流程图700。所描绘的过程适合于在本地C状态控制器351的控制下利用数据织构260来实现,或者利用其他适当数据织构电路来实现。优选地,与图6的过程结合支持所描绘的过程,以提供针对来自卡顿客户端(stuttering client)的一致性请求的探针过滤器查找的能力。对图4的进入过程和图5的退出过程的支持与图6、图7或两者的过程结合使用也是有利的。
参考流程图700,该过程在框702处开始,此时数据织构退出空闲状态以服务于卡顿客户端数据业务。卡顿客户端被认为是数据织构上的主要非一致性请求方,因为它们的请求绝大部分都不是一致性请求。在该场景开始时,CPU客户端是空闲的,并且仅卡顿客户端是活动的。该状态可通过检测到耦接到作为探针过滤器客户端的请求方的织构数据端口的断开条件而被检测到。虽然来自卡顿客户端的业务通常是非一致性的,但一小部分来自此类客户端的业务可能是一致性的。因此,这些客户端被称为主要非一致性的。因为此类一致性请求不频繁,所以探针过滤器可退出保持低功率状态以服务于此类请求而不引发有害的附加时延时间性能损失。
在框704处,在探针过滤器处于保持低功率状态时,一致性从控制器接收到一致性请求。响应于该一致性请求,在框706处,一致性从控制器向本地功率状态控制器断言Wake信号。
然后,在框708处,本地功率状态控制器例如通过操作时钟门控354(图3)来复原到探针过滤器的时钟信号。然后,本地功率状态控制器等待从本地功率状态控制器到一致性从控制器的往返信令延迟。在等待之后,在框710处,本地功率状态控制器通过解除断言Disable信号来向一致性从控制器发信号通知恢复生成并服务于针对一致性请求的探针过滤器查找。框702至框710的序列也适合于退出根据图6的过程进入的保持低功率状态。
在框712处,本地功率状态控制器确定该请求是否来自卡顿客户端。该确定优选地基于数据织构的状态和接收请求所通过的端口。如果否,则该过程进行到框713,在该框处,将探针过滤器维持处于操作状态以服务于探针过滤器查找。如果是,则该过程进行到框714,在该框处,一致性从控制器服务于来自卡顿客户端的一致性请求,生成探针过滤器查找并且从探针过滤器接收结果。当卡顿客户端已在当前卡顿循环内完成其数据传输时,在框716处,卡顿客户端向本地功率状态控制器发信号通知卡顿数据传输已完成。
响应于此,在框718处,本地功率状态控制器通过断言Disable信号来向一致性从控制器发信号通知禁用探针过滤器查找,并且门控到探针过滤器的时钟信号以将探针过滤器置于保持低功率状态。然后,在框720处,本地功率状态控制器致使数据织构重新进入空闲状态,这持续直到下一卡顿客户端数据传输循环。
如可理解的,如果卡顿客户端不如框704处所示作出任何一致性请求,如在上述C状态期间通常情况那样,则探针过滤器不需要离开保持低功率状态,并且实现了附加节电。
图2的SOC 210或其任何部分诸如数据织构260可由呈数据库形式的计算机可访问数据结构或可由程序读取并且直接或间接用于制造集成电路的其他数据结构来描述或表示。例如,该数据结构可以是高级设计语言(HDL)诸如Verilog或VHDL中的硬件功能性的行为级描述或寄存器传送级(RTL)描述。描述可由合成工具读取,合成工具可合成描述以产生包括来自合成库的门列表的网表。网表包括门集,门集也表示包括集成电路的硬件的功能性。然后可以放置和路由网表以产生描述待应用于掩码的几何形状的数据集。然后可以在各种半导体制造步骤中使用掩模以产生集成电路。另选地,计算机可访问存储介质上的数据库可以是网表(具有或不具有合成库)或数据集(根据需要)或图形数据系统(GDS)II数据。
虽然已描述了特定实施方案,但是对这些实施方案的各种修改对于本领域技术人员将是显而易见的。结合本文所公开的探针过滤器的保持低功率状态使用的各种技术可独立使用或结合其他技术使用。此外,可使用不同的技术和电路来检测进入保持低功率状态所响应的条件。
因此,所附权利要求书旨在覆盖所公开实施方案的落入所公开实施方案的范围内的所有修改。

Claims (20)

1.一种数据处理器,包括:
多个请求方;
多个响应方;和
数据织构,所述数据织构用于在所述多个请求方和所述多个响应方之间路由请求,所述数据织构包括:
交叉路由器;
一致性从控制器,所述一致性从控制器耦接到所述交叉路由器;
探针过滤器,所述探针过滤器耦接到所述一致性从控制器并且跟踪存储器的高速缓存行的状态;和
功率状态控制电路系统,所述功率状态控制电路系统响应于符合探针过滤器保持低功率状态的条件,致使所述探针过滤器进入保持低功率状态,在所述保持低功率状态下,门控到所述探针过滤器的时钟信号,同时维持到所述探针过滤器的功率,其中进入所述保持低功率状态是在所有进程中探针过滤器查找完成时执行的。
2.根据权利要求1所述的数据处理器,其中,所述一致性从控制器禁止或禁用新的探针过滤器查找,并且在所有进程中探针过滤器查找完成时发信号通知所述功率状态控制电路系统。
3.根据权利要求1所述的数据处理器,其中所述符合探针过滤器保持低功率状态的条件包括:作为探针过滤器客户端的所有请求方已刷新它们的高速缓存并且已进入空闲功率状态的条件。
4.根据权利要求1所述的数据处理器,其中所述符合探针过滤器保持低功率状态的条件包括:所述数据织构已进入空闲低功率状态的条件。
5.根据权利要求1所述的数据处理器,其中所述符合探针过滤器保持低功率状态的条件包括:所述数据处理器已进入其中仅主要非一致性请求方活动的低功率状态的条件。
6.根据权利要求4所述的数据处理器,其中检测到所述数据处理器已进入其中仅主要非一致性请求方活动的低功率状态包括:检测到耦接到作为探针过滤器客户端的请求方的织构数据端口的断开条件。
7.根据权利要求4所述的数据处理器,其中:
在从主要非一致性请求方接收到一致性可高速缓存请求时,所述一致性从控制器向所述功率状态控制电路系统传输唤醒信号;并且
响应于接收到所述唤醒信号,所述功率状态控制电路系统致使所述探针过滤器离开所述保持低功率状态。
8.根据权利要求1所述的数据处理器,其中单独地符合探针过滤器保持低功率状态的条件包括以下项中的两者或更多者:作为探针过滤器客户端的所有请求方刷新它们的高速缓存的条件、所述数据处理器进入空闲功率状态的条件,以及所述数据处理器进入其中仅主要非一致性请求方活动的低功率状态的条件。
9.根据权利要求7所述的数据处理器,其中:
所述作为探针过滤器客户端的请求方包括中央处理单元(CPU)核心;并且
所述主要非一致性请求方包括显示控制器或图形控制器。
10.一种方法,包括:
在数据处理器的数据织构处,在多个请求方和多个响应方之间路由请求;
在耦接到所述数据织构的探针过滤器处跟踪存储器的高速缓存行的状态;
检测到符合探针过滤器保持低功率状态的条件,并且作为响应,命令一致性从控制器禁止或禁用新的探针过滤器查找,
门控馈送到所述探针过滤器的时钟信号。
11.根据权利要求9所述的方法,还包括:从所述一致性从控制器接收信号,所述信号指示在接收到所述对所述一致性从控制器的命令时在进程中的所有探针过滤器查找已完成。
12.根据权利要求9所述的方法,其中所述符合所述探针过滤器保持低功率状态的条件包括:作为探针过滤器客户端的所有请求方已刷新它们的高速缓存并且已进入空闲功率状态。
13.根据权利要求9所述的方法,其中所述符合所述探针过滤器保持低功率状态的条件包括:所述数据处理器进入其中仅主要非一致性请求方活动的低功率状态。
14.根据权利要求13所述的方法,其中检测到所述数据处理器进入其中仅主要非一致性请求方活动的低功率状态包括:检测到耦接到探针过滤器客户端的所述数据织构的多个数据端口的断开条件。
15.根据权利要求13所述的方法,还包括:
响应于在处于所述探针过滤器保持低功率状态时从主要非一致性请求方接收到一致性可高速缓存请求而从所述一致性从控制器传输唤醒信号;并且
响应于接收到所述唤醒信号,致使所述探针过滤器离开所述探针过滤器保持低功率状态并履行所述一致性可高速缓存请求。
16.一种用于控制数据织构的功率状态的功率状态控制电路,包括:
功率状态控制电路系统,所述功率状态控制电路系统能够操作以响应于符合探针过滤器保持低功率状态的条件而致使所述数据织构的探针过滤器进入保持低功率状态,在所述保持低功率状态下,门控到所述探针过滤器的时钟信号,同时维持到所述探针过滤器的功率;和
第一时钟门控电路系统,所述第一时钟门控电路系统耦接到所述功率状态控制电路系统以用于选择性地门控到所述探针过滤器的第一时钟信号;
第二时钟门控电路系统,所述第二时钟门控电路系统耦接到所述功率状态控制电路系统以用于选择性地门控到所述数据织构的第二时钟信号,
其中,所述一致性从控制器禁止或禁用新的探针过滤器查找,并且在所有进程中探针过滤器查找完成时发信号通知所述功率状态控制电路系统。
17.根据权利要求17所述的功率状态控制电路,其中,所述一致性从控制器禁止或禁用新的探针过滤器查找,并且在所有进程中探针过滤器查找完成时发信号通知所述功率状态控制电路系统。
18.根据权利要求17所述的功率状态控制电路,其中所述符合探针过滤器保持低功率状态的条件包括:作为探针过滤器客户端的所有请求方已刷新它们的高速缓存并且已进入空闲功率状态的条件。
19.根据权利要求17所述的功率状态控制电路,其中所述符合探针过滤器保持低功率状态的条件包括:所述数据织构已进入空闲低功率状态的条件。
20.根据权利要求17所述的功率状态控制电路,其中所述符合探针过滤器保持低功率状态的条件包括:主机数据处理器进入其中仅主要非一致性请求方连接到所述数据织构的低功率状态。
CN202280044333.7A 2021-06-24 2022-06-07 基于探针过滤器保持的低功率状态 Pending CN117546123A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/357,104 US11487340B1 (en) 2021-06-24 2021-06-24 Probe filter retention based low power state
US17/357,104 2021-06-24
PCT/US2022/032544 WO2022271445A1 (en) 2021-06-24 2022-06-07 Probe filter retention based low power state

Publications (1)

Publication Number Publication Date
CN117546123A true CN117546123A (zh) 2024-02-09

Family

ID=83809670

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280044333.7A Pending CN117546123A (zh) 2021-06-24 2022-06-07 基于探针过滤器保持的低功率状态

Country Status (6)

Country Link
US (2) US11487340B1 (zh)
EP (1) EP4359889A4 (zh)
JP (1) JP2024525162A (zh)
KR (1) KR102685083B1 (zh)
CN (1) CN117546123A (zh)
WO (1) WO2022271445A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11487340B1 (en) * 2021-06-24 2022-11-01 Advanced Micro Devices, Inc. Probe filter retention based low power state
KR102408829B1 (ko) * 2021-11-09 2022-06-14 삼성전자주식회사 리텐션 강화를 위한 스토리지 장치의 구동 방법 및 이를 수행하는 스토리지 장치

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9317102B2 (en) * 2013-01-03 2016-04-19 Apple Inc. Power control for cache structures
US9792210B2 (en) * 2015-12-22 2017-10-17 Advanced Micro Devices, Inc. Region probe filter for distributed memory system
US20180336143A1 (en) * 2017-05-22 2018-11-22 Microsoft Technology Licensing, Llc Concurrent cache memory access
US10366027B2 (en) * 2017-11-29 2019-07-30 Advanced Micro Devices, Inc. I/O writes with cache steering
US10671148B2 (en) * 2017-12-21 2020-06-02 Advanced Micro Devices, Inc. Multi-node system low power management
CN113126740A (zh) * 2019-12-30 2021-07-16 美光科技公司 管理降低功率的存储器操作
US11487340B1 (en) * 2021-06-24 2022-11-01 Advanced Micro Devices, Inc. Probe filter retention based low power state

Also Published As

Publication number Publication date
WO2022271445A1 (en) 2022-12-29
EP4359889A4 (en) 2024-08-28
KR102685083B1 (ko) 2024-07-16
US20230039289A1 (en) 2023-02-09
EP4359889A1 (en) 2024-05-01
KR20240024940A (ko) 2024-02-26
US11487340B1 (en) 2022-11-01
JP2024525162A (ja) 2024-07-10
US11940858B2 (en) 2024-03-26

Similar Documents

Publication Publication Date Title
US8438416B2 (en) Function based dynamic power control
US8924758B2 (en) Method for SOC performance and power optimization
US8862909B2 (en) System and method for determining a power estimate for an I/O controller based on monitored activity levels and adjusting power limit of processing units by comparing the power estimate with an assigned power limit for the I/O controller
CN106155265B (zh) 有功率效率的处理器体系结构
US11940858B2 (en) Probe filter retention based low power state
US20110078475A1 (en) Transitioning a Computing Platform to a Low Power System State
Gary et al. PowerPC 603, a microprocessor for portable computers
EP4430462A1 (en) Performance management during power supply voltage droop
US12056535B2 (en) Method and apparatus for providing non-compute unit power control in integrated circuits
US11703932B2 (en) Demand based probe filter initialization after low power state
US12135601B2 (en) Data fabric C-state management
JP2024512682A (ja) メモリコントローラ電力状態
US20230195644A1 (en) Last level cache access during non-cstate self refresh
US20230034633A1 (en) Data fabric c-state management
US11822484B2 (en) Low power cache
JP2024541060A (ja) 電源電圧ドループ中の性能管理
WO2024006086A1 (en) Efficient memory power control operations

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