CN112840329A - 低功率高速缓存的环境计算 - Google Patents

低功率高速缓存的环境计算 Download PDF

Info

Publication number
CN112840329A
CN112840329A CN201980067609.1A CN201980067609A CN112840329A CN 112840329 A CN112840329 A CN 112840329A CN 201980067609 A CN201980067609 A CN 201980067609A CN 112840329 A CN112840329 A CN 112840329A
Authority
CN
China
Prior art keywords
cache
low power
power state
computing device
memory
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
CN201980067609.1A
Other languages
English (en)
Other versions
CN112840329B (zh
Inventor
维诺德·沙马蒂
劳伦斯·J·马达尔三世
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Priority to CN202410191547.8A priority Critical patent/CN118227520A/zh
Publication of CN112840329A publication Critical patent/CN112840329A/zh
Application granted granted Critical
Publication of CN112840329B publication Critical patent/CN112840329B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/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
    • 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
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • 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/17Embedded application
    • G06F2212/171Portable consumer electronics, e.g. mobile phone
    • 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/6022Using a prefetch buffer or dedicated prefetch cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Power Sources (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明提供方法、系统和设备,包括在计算机存储介质上编码的计算机程序,用于执行预取过程,以准备环境计算装置在低功率状态下操作,而无需唤醒存储器装置。所述方法中的一个包括:通过环境计算装置执行预取过程,所述预取过程用所述环境计算装置所需的预取指令和数据填充高速缓存以在所述低功率状态下时处理对所述系统的输入;以及进入所述低功率状态;以及通过所述环境计算装置在所述低功率状态下使用存储在所述高速缓存中的所述预取指令和数据来处理对所述系统的输入。

Description

低功率高速缓存的环境计算
相关申请的交叉引用
本申请要求享有根据35U.S.C.§119(e)在2019年2月13日提交的标题为“低功率高速缓存的环境计算”的第62/805,207号美国申请的权益,该申请通过引用全文并入本文。
背景技术
本说明书涉及具有集成电路装置的系统。
高速缓存是一种装置,所述装置存储从存储器检索的数据、或要写入到系统中的一个或多个不同硬件装置的存储器的数据。硬件装置可以是集成到片上系统(SOC)中的不同组件。在本说明书中,通过高速缓存提供读取请求和写入请求的装置将称为客户端装置。作为在到达存储器之前的最后一个高速缓存,一些高速缓存服务于针对集成到单个系统(例如,SOC)中的多个不同客户端装置的存储器请求。此类高速缓存可以称为系统级高速缓存(SLC)。
高速缓存可以用于通过减少对主存储器的总体请求来减少功耗。另外,只要客户端装置可以在高速缓存中访问它们所需的数据,就可以通过将主存储器以及通往主存储器的数据路径置于低功率状态来进一步节省功率。因此,高速缓存使用与总功耗相关,并且增加高速缓存使用导致了总功率的降低。因此,依赖电池电源的装置(例如,移动计算装置)可以通过增加针对集成客户端装置的高速缓存使用来延长其电池寿命。
一些SOC客户端装置是能够在SOC保持在低功率状态时监视并处理传感器输入的环境计算装置。如果环境计算装置检测到传感器输入,例如到达麦克风的声音,则如果需要附加处理功率以处理传感器输入的话,环境计算装置可以触发所述SOC退出低功率状态。
发明内容
本说明书描述用于环境计算装置的技术,以执行高速缓存准备过程,使得环境计算装置可以在低功率状态期间仅使用存储在高速缓存中的数据来操作。这允许系统在低功率状态期间将其它高功率装置断电,在所述低功率状态下,环境计算装置仍可以处理传感器输入。例如,这些技术允许系统将主存储器、高速缓存层级中的其它较大高速缓存、以及这些组件的相关数据路径和电源域断电。
可以实施在本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。当该装置处于低功率状态时,计算装置可以处理传感器输入。当处于低功率状态时,计算装置可以将其功率消耗组件中的一个或多个断电,例如RAM、客户端装置、数据路径、以及在组件与控制器(例如,存储器控制器)之间的接口。
计算装置可以包括一个或多个环境计算装置(ACD),所述环境计算装置被配置成在计算装置的低功率状态期间处理传感器输入。ACD能够确定在计算装置处于低功率状态时用于处理输入可能需要的数据和指令。在计算装置进入低功率状态之前,ACD将此类数据和指令预取到本地高速缓存的存储器部分中。通过使用预取数据和指令,ACD可以在不唤醒存储器控制器或存储器装置的情况下处理传感器输入,这有助于最小化在低功率状态期间的功率消耗。
另外,在低功率状态期间,ACD可能仅需要本地高速缓存存储器的部分来处理输入。因此,可以在低功率状态期间将本地高速缓存存储器的其余部分断电,从而导致进一步节省功率消耗。
在低功率状态期间在ACD需要比本地高速缓存存储器的专用于ACD操作的部分更多的资源的情况下,则ACD可以触发计算装置退出低功率状态。替代地或另外,ACD可以确定存储器装置的具有ACD所需的资源的特定部分,并且触发所述存储器装置的所述特定部分退出低功率状态。因此,当ACD从所述存储器的特定部分提取其所需的数据时,计算装置的其它组件可以保持在低功率模式。
在附图和以下具体实施方式中阐述本说明书的主题的一个或多个实施例的细节。主题的其它特征、方面和优点将从具体实施方式、附图和权利要求书变得显而易见。可以按系统、方法、设备或计算机可读存储介质(例如,存储与所述方法有关的指令)的形式提供所述主题。
附图说明
图1是实例系统的图式。
图2是说明用于转换成低功率状态的实例过程的序列图。
图3是说明用于退出低功率状态的实例过程的序列图。
图4是说明用于从低功率状态执行部分功率转换的实例过程的序列图。
图5是包括低功率环境计算系统的实例计算装置的图式。
在各个附图中的相似参考数字和标号表示相似的元件。
具体实施方式
图1是实例系统100的图式。系统100包括通信地耦合到存储器装置140的片上系统(SOC)102。SOC 102具有环境计算装置160、多个其它客户端装置110a-n、以及高速缓存120和122的层级。高速缓存122是本地高速缓存,其仅服务于来自环境计算装置的存储器请求。高速缓存120是系统级高速缓存,其服务于来自包括ACD 160的所有客户端装置的存储器请求。在本说明书中描述的技术还可以用于在ACD 160与存储器140之间具有附加高速缓存层的系统。
SOC 102是可以安装在任何合适的计算装置上或集成到任何适当计算装置中的装置的实例,所述装置可以称为主机装置。因为在本说明书中描述的技术特别适合于节省主机装置的功率消耗,所以当安装在依赖于电池电源的移动主机装置(例如,仅举几例,智能电话、智能手表或另一可穿戴计算装置、平板计算机,或膝上型计算机)上时,SOC 102可能会特别有益。在低功率模式下时,SOC 102可以从主机装置的集成传感器接收输入,例如传感器输入。仅举几例,此类传感器的实例包括位置传感器、存在传感器、手势传感器、心率传感器以及音频传感器。
SOC 102具有多个客户端装置110a-n。客户端装置110a-n中的每一个可以是任何适当模块、装置或功能组件,其被配置成通过SOC结构150读取在存储器装置140中的数据以及将数据存储在存储器装置140中。例如,客户端装置可以是能够通过SOC结构150发起通信的CPU、专用集成电路或SOC本身的低级组件。
客户端装置中的一个或多个可以是环境计算装置(ACD)160。环境计算装置是配置成在SOC 102处于低功率状态时执行计算操作的组件。环境计算装置160被配置成在SOC102处于低功率状态时处理SOC102的输入。另外,在SOC 102的其它功率状态期间,环境计算装置160可以像任何其它客户端装置一样操作。
SOC结构150是SOC 102的通信子系统。SOC结构150包括通信路径,所述通信路径允许客户端装置110a-n彼此通信以及通过使用存储器装置140作出读取和写入数据的请求。SOC结构150可以包括通信硬件的任何适当组合,例如总线或专用互连电路。
系统100还包括:通信路径152,所述通信路径允许在SLC 120与存储器控制器130之间的通信;以及芯片间通信路径154,所述芯片间通信路径允许在存储器控制器130与存储器装置140之间的通信。
在低功率状态期间,SOC 102可以通过将通信路径152和154中的一个或多个断电来节省功率。替代地或另外,SOC 102可以将存储器装置140、存储器控制器130和/或一个或多个客户端计算装置110a-n断电来进一步节省功率。作为另一实例,SOC 102可以进入时钟关闭模式,在所述时钟关闭模式下针对一个或多个装置将相应时钟电路断电。
高速缓存120和122位于在ACD 160与存储器控制器130之间的数据路径中。存储器控制器130可以处理到达和来自存储器装置140的请求。因此,来自环境计算装置160的从存储器装置140读取或写入到存储器装置140的请求通过高速缓存120和122。例如,ACD 160可以作出从存储器装置140读取的请求,所述请求通过本地高速缓存122、SOC结构150并且传给SLC 120。在将请求转发到存储器装置140的存储器控制器130之前,SLC 120可以处理所述请求。
SLC 120可以高速缓存来自客户端装置110a-n和环境计算装置160的读取请求、写入请求或两者。SLC 120可以通过用存储在高速缓存中的数据对请求作出响应,而不是从存储器装置140提取数据,来高速缓存读取请求。类似地,SLC 120可以通过将新数据写入高速缓存中,而不是将新数据写入存储器装置140中,来高速缓存写入请求。SLC 120可以在稍后时间执行回写,以将更新的数据存储在存储器装置140中。
当SOC 102处于低功率状态时,环境计算装置160可以通过仅使用存储在高速缓存120或122中的一个中的指令和数据,来处理SOC102的输入。因此,SOC 102可以减小或去除系统的一个或多个其它组件或系统的所有其它组件的功率。例如,在一些实施方案中,在处于低功率状态时,即使环境计算装置160正处理输入,SOC 102仍可以将存储器装置140断电,因为环境计算装置160不需要访问存储器装置140。出于相同的原因,SOC 102还可以将存储器控制器130断电。
为了准备进入低功率状态,SOC 102可以将在低功率状态期间处理SOC 102的输入所需的指令和数据预取到高速缓存120或122中的一个中。SOC 102随后可以通过将其它组件断电而进入低功率状态,并且当SOC 102处于低功率状态时,环境计算装置160可以使用存储在高速缓存中的指令和数据来处理SOC 102的输入。
图2是说明用于将片上系统(SOC)转换成低功率状态的实例过程的事件200的序列的序列图。在此实例中,低功率状态称为休眠。实例过程200可以由SOC 102的组件执行。
图2中所说明的过程由四个主要组件:软件电源管理器(SPM)202、环境计算装置(ACD)204、高速缓存206和硬件电源管理器(HPM)208执行。SPM 202控制一个或多个电压轨,每个电压轨对应于在SOC的多个组件之间的数据路径。例如,ACD 204可以与高速缓存206的多个部分通信,并且每个部分可以通过数据路径连接到ACD 204。当SPM 202将一个或多个电压轨断电时,ACD 204和高速缓存206可能会失去其通过与一个或多个电压轨相关联的数据路径的连接。
HPM 208控制SOC的组件的功率。例如,HPM 208指示哪些组件通电以及哪些组件断电。
在SOC 102进入低功率状态之前,SPM 202将通知210发送到ACD 204。在接收到通知210后,ACD 204准备在SOC的低功率状态期间操作。ACD 204确定ACD是否应在低功率状态期间使用高速缓存206(212)。在一些实施方案中,此确定可以基于装置正进入若干低功率状态中的哪一个。例如,装置可以支持多个低功率状态,并且在一些低功率状态中,ACD可以排他性地使用高速缓存,而无需访问存储器。
作为此过程的一部分,ACD 204或另一组件可以确定高速缓存层级中的哪个高速缓存应当用于低功率状态。通常,随着高速缓存更接近存储器,高速缓存的速度减小并且高速缓存的存储容量和功耗增加。因此,ACD 204可以确定将在特定低功率状态期间执行的低功率过程的大小,并且可以选择可以容纳在低功率状态期间执行低功率过程所需的指令和数据的最小高速缓存。
为了准备在SOC的低功率状态期间使用的高速缓存206,ACD 204执行预取过程的指令以预填充高速缓存(214)。预取过程的指令包括用于预填充高速缓存的预取加载和预取存储。此预取过程通过确保在低功率状态期间需要的所有指令读取和数据读取都被存储在高速缓存中,来准备高速缓存。换句话说,ACD 204针对在低功率状态中需要的所有读取发布指令。如果任一读取导致了高速缓存未命中,则将所请求数据从DRAM或从高速缓存层级中较低的较大高速缓存填充到所述高速缓存中。
另外,预取过程214还可以通过执行在低功率状态期间可能需要的写入来准备高速缓存。换句话说,ACD 204执行写入指令,使得在低功率状态期间预分配对应的高速缓存线以供ACD 204使用。预取过程的写入指令不必使用实际数据。相反,仅重要的是高速缓存分配用于写入的高速缓存线,使得ACD 204在低功率状态下执行的未来写入指令将导致高速缓存命中,并且不会唤醒存储器控制器、存储器装置、或这些组件的任何数据路径。因此,当执行预取写入时,ACD 204可以使用虚拟数据值,例如全部为零或随机值。
预取过程214还可以从高速缓存逐出在低功率状态期间不使用的其它数据和指令。如果高速缓存206是系统级高速缓存,则逐出的数据可以是代表ACD 204或系统的其它客户端装置存储的数据。
在一些实施方案中,可以通过响应于ACD 204执行读取和写入指令而模拟高速缓存206的行为,来生成预取过程的指令。生成预取过程的指令随后可以包括将预取加载和预取存储指令添加到预取过程,直到在低功率状态期间执行的实际加载和存储很可能不会导致高速缓存未命中。此模拟技术还可以用于确定在低功率状态期间要分配给ACD 204的高速缓存的数量。例如,如果所述模拟指示在低功率状态期间可能存在高速缓存未命中,则系统可以增加用于ACD 204的高速缓存分区大小。
在进入低功率状态之前,可以将ACD 204未使用的其它高速缓存分区断电。在断电之前,可以保存高速缓存206的状态,以便在退出低功率状态之后恢复那些非ACD高速缓存分区的状态。
当预取过程(214)完成时,ACD 204将通知发送到SPM 202,从而向SPM 202通知ACD204已完成准备休眠(216)。在一些实施方案中,ACD 204还为高速缓存206的部分提供将在低功率状态期间使用的标识信息。例如,ACD 204可以选择高速缓存206的一个或多个高速缓存通道,以在低功率状态期间操作。在一些实施方案中,SOC将高速缓存206的默认部分专用于在低功率状态期间的ACD 204操作。
SPM 202可以配置用于在低功率状态期间在ACD 204与所选择的高速缓存206之间通信的数据路径(218)。此过程涉及确定在ACD 204与所选择的高速缓存之间进行通信所需的数据路径。例如,如果所选择的高速缓存对于ACD 204是本地的,则SPM 202可以仅配置在这两个组件之间的数据路径。但是如果所选择的高速缓存是系统级高速缓存,则SPM 202可能需要在到达系统级高速缓存的途中配置通过其它较小高速缓存的附加路径。
SPM 202指导高速缓存206准备低功率状态(220)。作为响应,高速缓存206可以执行高速缓存刷新(222),以将高速缓存的数据的非ACD分区写入到允许在低功率状态结束之后进行检索的存储器装置中。例如,存储器装置可以是非易失性存储器装置,或仅在低功率状态期间保留在保持模式的存储装置。在保持模式中,存储器装置可以通过维持先前存储的值、但不支持先前存储的值的更新来节省功率。
因此,高速缓存206可以在SOC进入低功率状态之前保存高速缓存206的非ACD分区的状态。高速缓存206的保存状态指示SOC进入低功率状态之前的高速缓存通道的状态。例如,高速缓存206的保存状态可以指示在ACD 204发起预取过程214以将指令和数据预取到高速缓存206中之前的高速缓存通道的状态。高速缓存206可以将高速缓存状态保存到非易失性存储器或保留在保持模式的存储器装置中。在退出低功率状态后,高速缓存206可以恢复所保存的高速缓存状态,并且覆写在低功率状态期间分配到ACD 204的高速缓存部分,例如高速缓存通道。高速缓存206将用于指示高速缓存206准备好SOC进入低功率状态的通知226发送到SPM 202。
作为响应,SPM 202启动低功率状态。例如,SPM 202可以指令高速缓存206改变其RAM功率状态(226)。此高速缓存205随后可以将ACD 204在低功率状态期间不使用的高速缓存的部分断电(228)。例如,高速缓存可以将ACD 204不使用的高速缓存通道或整个分区断电。高速缓存205随后通知SPM 202断电过程已完成(230)。
SPM 202将要在低功率状态期间断电的一个或多个电压轨断电(236)。所述一个或多个电压轨通常不包括专用于在ACD 204与高速缓存206的预取部分之间的通信的电压轨。
高速缓存206可以通过用于验证已完成进入休眠的准备的验证消息作出响应(230)。系统随后可以进入低功率状态。在低功率状态期间,ACD 204可以在不唤醒存储器控制器或存储器装置的情况下处理传感器输入。替代地,ACD 204可以仅使用预取到高速缓存206中的指令和数据来处理所有传感器输入。
SPM 202还可以将与ACD 204连接的其它组件断电。例如,如果SPM 202可以将与要在低功率状态期间断电的装置相关联的一个或多个电压轨断电(236)。SPM 202还可以将与存储器装置相关联的存储器控制器、存储器装置本身、以及在存储器控制器与存储器装置之间的一个或多个通信接口(例如,DDR PHY接口)断电。为了这样做,SPM 202可以将断电的电压轨的信息或与相应电压轨相关联的组件的信息传送到HPM 208,使得HPM 208可以将这些相应组件断电。
SOC还可以将高速缓存层级中低于被选择为低功率状态的高速缓存的任何其它高速缓存断电。例如,如图1中所示,如果本地高速缓存122被选择为低功率状态,则系统可以将SLC 120断电。在这种情况下,HPM 208可以在改变高速缓存功率状态之前保存所述SLC状态。在退出低功率状态后,HPM 208可以恢复所保存的SLC状态。
图3是说明用于将片上系统(SOC)从低功率状态退出的实例过程的事件300的序列的序列图。实例过程300可以由SOC 102的组件执行。
SOC可以响应于接收到服务请求而退出低功率状态,所述服务请求需要比ACD 204可以仅使用高速缓存206访问或提供的资源更多的资源。这种服务请求的实例可以包括与所述装置的传感器中的任一个有关的输入,例如接听电话、激活通电传感器、或识别话音命令。因此,ACD 204可以触发退出过程。
例如,SOC可以是用户交互式计算装置的一部分。用户交互式计算装置可以在空闲60秒之后进入休眠模式。用户交互式计算装置可以包括能够进行话音识别的ACD。在ACD检测到用户的话音后,ACD可以触发计算装置退出休眠模式。
参考图3,在SOC退出低功率状态之前,SPM 202可以将通知310发送到ACD 204。在接收到通知310后,ACD 204准备SOC从低功率状态退出。ACD 204可以将用于指示ACD 204准备SOC退出低功率状态的通知312发送到SPM 202。
作为响应,SPM 202识别要通电以退出低功率状态的电压轨。在一些实施方案中,SPM 202恢复当SOC进入低功率状态时在236处断电的电压轨的记录。SPM 202将从所述记录中恢复信息的全部或部分电压轨通电。
在一些实施方案中,ACD 204可以提供ACD 204在214处用于预取或在SOC的低功率状态期间使用的高速缓存部分的标识信息。使用此标识信息,SPM 202可以识别在低功率状态期间断电的高速缓存部分,并且可以将与此类高速缓存部分相关联的一个或多个电压轨通电。
在一些实施方案中,无论在低功率状态期间操作的组件的标识信息如何,SPM 202都将与需要在SOC不处于低功率模式时操作的SOC组件相关联的所有电压轨通电。
在任一种情况下,SPM 202将用于向HPM 208通知SOC将通电的通知316发送到HPM208。作为响应,HPM 208将相应组件通电。HPM 208可以向SPM 202发送通知320,以向SPM202通知HPM 208完成将相应SOC组件通电或恢复相应SOC组件的功率。
在一些实施方案中,HPM 208恢复在SOC进入低功率状态之前在234处保存的高速缓存功率状态(318)。在这些实施方案中,如果高速缓存206的一个或多个高速缓存通道在SOC进入低功率状态之前没有电源,则当SOC退出低功率状态时,HPM 208保持这一个或多个高速缓存通道的电源断电。
除了电压轨之外,SPM 202可以确定在低功率状态期间断电的SOC组件。例如,SPM202可能已存储在SOC进入低功率状态时断电的存储器控制器和通信接口(例如,DDR PHY)的列表,并且触发HPM208将相应的存储器控制器和通信接口通电。
SPM 202可以例如通过将消息发送到高速缓存206,来触发高速缓存206退出低功率状态。为了退出低功率模式,高速缓存206将高速缓存RAM通电(322)。
在将相应组件通电后,SOC退出低功率状态,并且SOC可以处理导致SOC从低功率状态退出的输入。所述输入可以是由客户端装置提交的请求。SPM 202可以通知客户端装置:SOC准备好处理请求(324)。
在一些实施方案中,当SOC退出低功率状态时,高速缓存206将所有高速缓存RAM通电。在一些实施方案中,高速缓存206记录在SOC进入低功率状态之前可操作的高速缓存RAM的记录,并且仅将相应的高速缓存RAM通电。例如,高速缓存206可能已在进入低功率状态之前将此记录存储在非易失性存储器中。
如上所述,在一些实施方案中,高速缓存206可以在SOC进入低功率状态之前保存高速缓存206的状态。在退出低功率状态后,高速缓存206可以恢复保存的状态,并且覆写在低功率状态期间分配到ACD 204的高速缓存部分,例如高速缓存通道。
当SOC退出低功率状态时,高速缓存206可以开始如其在SOC进入低功率状态之前那样操作。例如,高速缓存206可以执行高速缓存分配算法(326),以便在退出低功率状态之后分配用于服务于存储器请求的高速缓存分区。
类似地,SOC的其它组件可以开始如在SOC进入低功率状态之前那样操作。例如,高速缓存206可以开始与存储器装置(例如,存储器装置140)通信,以服务于由一个或多个客户端装置提交的存储器请求(328)。
SOC可以响应于接收到输入而退出低功率状态,所述输入需要使用比ACD 204和高速缓存206的预取部分可以提供的资源更多的资源。ACD 204可以确定高速缓存206中的预取信息不足以处理特定输入。例如,ACD 204可以从指纹传感器接收指纹输入。ACD 204可以确定所述指纹与存储在预取的高速缓存部分中的任何指纹图案不匹配。因此,ACD 204可以触发SOC从低功率模式退出,以访问已存储更多指纹图案的存储器。
在一些实施方案中,可能不需要将整个SOC从低功率模式退出;相反,仅将SOC的部分通电可足以处理比ACD 204和预取的高速缓存部分需要更多资源的特定输入。在这些实施方案中,SOC在低功率状态下执行转换,其中出于处理特定输入的目的,将一些、但不是全部SOC组件通电。
在以上实例中,SOC可以确定:提供对更多指纹图案的访问可以向ACD 204提供其需要的信息。因此,SOC可以确定已存储指纹图案的高速缓存206的部分或非易失性存储器装置,并且仅将相应SLC部分或到达非易失性存储器装置的路径通电,以向ACD 204提供ACD204处理接收到的指纹输入所需的信息。
图4是说明用于执行从SOC的低功率状态的部分功率转换的实例过程的事件400的序列的序列图。实例过程400可以由SOC 102的组件执行。SOC通过将SOC的一个或多个附加组件通电,而无需完全将整个系统通电,来执行转换。将一个或多个组件通电以提供ACD204处理特定输入所需的资源,其中ACD 204无法通过仅使用在高速缓存206中预取的信息来处理所述特定输入。
当ACD 204在SOC的低功率状态期间处理SOC的输入(410)时,ACD 204可以确定其需要的特定信息,其中ACD 204没有在SOC进入低功率状态之前将所述特定信息预取到高速缓存206中。例如,ACD 204可以确定处理特定传感器输入需要非预取的信息(412)。所需信息可以存储在高速缓存层级的下游高速缓存中或在RAM中。因此,系统可以将用于获得所述信息所需的附加组件通电,以便ACD 204在不唤醒整个系统的情况下继续处理。
ACD 204将用于请求SPM 202启用访问特定信息所需的数据路径的请求发送到SPM202。ACD 404可以确定所述信息的位置并且请求启用到达所述位置的数据路径(414)。
SPM 202将到达所确定位置的数据路径通电(416)。例如,SPM202可以将所需数据路径上的电压轨通电。SPM 202还可以与HPM通信以将相应下游高速缓存通电,或存储器装置包括特定信息。SPM 202可以将用于确认数据路径和存储器部分被通电的确认消息418发送到ACD 204。
作为此过程的一部分,ACD 204可以利用高速缓存206。因此,ACD 204可以启动高速缓存的ACD分区(420)。这允许在所需信息已存储在高速缓存206的情况下从其中提取所需信息,或在需要从其它下游高速缓存或存储器提取所需信息的情况下高速缓存所需信息。启用ACD分区可以使高速缓存206执行分区算法,以确定分配给ACD 204的高速缓存通道的数量以及哪些高速缓存通道分配给ACD 204。在此期间,ACD可以轮询高速缓存206以完成分区算法(422)。
当完成分区算法时,高速缓存的ACD分区已准备好供使用。因此,ACD 204可以提取(424)所需信息,这可能导致此信息存储在高速缓存206的ACD分区中。ACD用例随后可以在低功率状态下继续(426)。换句话说,系统可以在不唤醒系统的所有组件(例如,所有客户端装置)的情况下恢复低功率状态。另外,一旦ACD 204完成提取特定信息,被提取特定信息的存储器部分就可以被再次断电,并且在低功率状态下加入SOC的其它非活动组件。
在本公开中,在任两个组件之间发送的通知或通信消息中的任一个可以采用中断形式或响应于轮询而提供。例如,响应于从第二装置接收到询问第一装置是否已执行工作的轮询,第一装置可以将消息发送到第二装置。替代地,一旦第一装置完成工作,第一装置就可以将消息发送到第二装置,而不管第二装置是否发送轮询。
图5是包括低功率环境计算系统510的实例计算装置100的图式。环境计算系统510是可以执行上述环境计算装置的功能的系统的实例。下文描述的功能使用两个其它实例计算系统,即主CPU群集540和主机器学习(ML)引擎550。这两个组件中的每一个可以用作上文参考图1描述的SOC 102的客户端装置110a-n中的一个。换句话说,环境计算系统510、主CPU群集540和主ML引擎550可以都集成到同一SOC中并且共享同一系统级高速缓存,例如SLC120。
实例装置500可以包括在任何适当的计算装置中实施的系统,所述计算装置例如,智能电话、智能手表、健身追踪器、个人数字助理、电子平板计算机、膝上型计算机,仅举几例。可以使用计算装置500的系统,使得计算装置500可以保持在低功率状态,但是通过依序地唤醒所述系统的适当处理组件而连续地监视来自环境的输入并对其作出响应。在本说明书中,术语“唤醒”和“激活”将用于表示将增加的电力量供应到特定处理组件或其它电子电路。系统可能已经或可能没有为正在被唤醒或激活的处理组件或其它电路供电。换句话说,被唤醒或激活的组件可能先前已完全断电或可能先前没有完全断电。唤醒或激活处理组件可能导致所述处理组件执行开机过程,并且使所述处理组件的指令和数据加载到随机存取存储器中。替代地或另外,唤醒或激活处理组件可以包括从先前的挂起状态恢复。
计算装置500的一个或多个组件可以在计算装置内的片上系统(SoC)上实施。SoC可以是例如使用硅中介层、堆叠裸片或互连桥的集成电路,所述集成电路包括在单个硅衬底或多个互连裸片上的系统的每个组件。计算装置的其它组件(包括主CPU群集540)可以在同一或不同裸片上实施。计算装置500可以包括与SoC分离且独立于SoC的组件,包括传感器512、一个或多个显示器、电池和其它组件,并且可以例如安装在公共外壳上。
简单地说,且如下文进一步详细地描述的,装置500包括多个外围传感器512,所述外围传感器被配置成基于来自计算装置的环境的输入而生成传感器信号。装置500包括控制子系统520,用于控制功率和传感器信号到系统中的组件的供应。并且装置500包括处理子系统530,用于处理传感器信号并生成输出。
装置500还包括主CPU群集540。主CPU群集540是计算装置的组件,所述计算装置包括与处理子系统530中的装置分离的一个或多个通用处理器。主CPU群集540的处理器通常比处理子系统530中的任何装置具有更多计算能力,并且因此,主CPU群集540的处理器也可能比处理子系统530中的任何装置消耗更多功率。
装置500还可以任选地包括主机器学习(ML)引擎550。主ML引擎550是专用处理装置,所述专用处理装置被配置成通过一个或多个机器学习模型执行推断遍历。每个推断遍历使用机器学习模型的输入和学习参数值,以生成由学习模型预测的一个或多个输出。主ML引擎550可以包括一个或多个计算瓦片。通常,计算瓦片是被配置成独立地执行一组计算的独立计算组件。主ML引擎550的瓦片可以布置在网络中并进行编程,使得主ML引擎550的每个瓦片被配置成通过机器学习模型执行推断遍历的一个部分的操作。例如,如果机器学习模型是神经网络,则主ML引擎550中的每个瓦片可以被配置成计算一层神经网络的计算。在通过引用方式并入本文中的第9,710,265号美国专利中描述具有多个计算瓦片的合适机器学习引擎。主ML引擎550还比环境计算系统510的处理子系统530中的任何装置提供更高性能的计算能力。因此,主ML引擎550也比处理子系统530中的任何装置消耗更多功率。
处理子系统530包括环境计算学习引擎534。环境ML引擎534也是专用处理装置,所述专用处理装置被配置成通过一个或多个机器学习模型执行推断遍历。当装置500包括主ML引擎550和环境ML引擎534两者时,环境ML引擎534具有较少计算瓦片,并且因此比主ML引擎550具有更少处理能力且比主ML引擎550消耗更少功率。例如,环境ML引擎534可以实施为一个或两个瓦片,而主ML引擎550可以具有8至16个或更多个互连瓦片。
尽管未描绘,但是计算装置500还可以包括在此类计算装置上常见的一个或多个其它组件,例如显示器、调制解调器、图形处理单元、显示处理器、或专用图像处理器,仅举几例。这些组件可以在下文描述的低功率状态期间断电,并且如果系统确定传感器信号与需要其激活的应用程序匹配,则这些组件可以被激活。
装置500包括多个外围传感器512。外围传感器512包括一个或多个音频传感器502、一个或多个雷达传感器504、一个或多个触摸传感器506、全球定位系统(GPS)传感器508和加速计510。系统可以包括附加、更少或替代的外围传感器。例如,系统可以包括Wi-Fi信号检测器、蜂窝信号检测器、气压计、温度计、磁力计、或其它类型的外围传感器。
外围传感器512可以是配置成响应于环境输入而生成传感器信号的装置。一个或多个音频传感器502(例如,麦克风)可以基于环境中的声音而生成音频信号。例如,音频传感器502可以生成对应于人类语音的音频信号。一个或多个雷达传感器504可以基于由计算装置的发射器发射的反射无线电波来检测雷达信号。反射无线电波的变化可以指示在所述环境中的移动。例如,雷达传感器504可以生成雷达信号,所述雷达信号由于例如在用户在计算装置附近做出手势时从用户反射而接收到。类似地,一个或多个触摸传感器506可以由于计算装置的用户在所述装置的存在敏感的或压力敏感的界面上做出的触摸手势而生成信号。GPS传感器508可以响应于接收到的位置数据通信而生成信号。并且,加速计510可以由于计算装置所经历的加速度而生成信号。在本说明书中,每当将传感器信号描述为其它处理组件的输入时,所述输入可以是由传感器本身生成的模拟电信号、传感器信号的数字表示、或用于表示原始信号的一个或多个特性的传感器信号的处理后数字表示。计算装置500的外围传感器还可以包括惯性测量传感器、气压计、特定吸收率接近传感器,以及WiFi网络名称传感器,仅举几例。
环境计算系统510包括一个或多个外围接口514。外围接口514可以是即使在装置处于其最低功率状态时也通电的计算装置500的组件。外围接口514可以包括任何适当的外围接口,用于将从外围传感器512接收到的输入转换成将由环境计算系统510使用的传感器信号。例如,外围接口514可以包括脉冲密度调制(PDM)接口、IC间声音(I2S)接口、集成电路间(I2C)接口、I3C接口、时分复用(TDM)接口、以及串行外围接口(SPI),仅举几例。
外围接口514中的每一个被配置成在检测到环境输入后生成相应的中断。通常,每个中断可以标识传感器数据的源,例如,负责所述中断的外围接口或传感器的标识符。通过一个或多个中断控制器524接收并处理中断。例如,在接收到中断后,中断控制器524可以唤醒电源控制单元(PCU)521,所述PCU包括电源管理单元(PMU)522和时钟控制单元523。PMU522可以控制装置500的哪些组件接收功率以及每个组件接收多少功率。时钟控制单元523可以控制装置500的组件操作的频率。在一些实施方案中,每个处理组件具有作为基本时钟频率的倍数或分数的不同时钟频率。通过具有作为基本时钟频率的倍数或分数的时钟频率,每个处理组件可以更有效地与其它处理组件交换信号。
在接收到中断后,PCU 521可以基于中断源确定应当激活所述环境计算系统510的哪些其它组件,以便进一步处理导致所述中断的传感器信号。为了提高对此类组件的处理支持,PCU 521可以唤醒静态随机存取存储器(SRAM)539和系统通信结构。所述结构是通信地耦合环境计算系统510的内部组件、其与外部组件的通信、或这些的某种组合的通信子系统。所述结构可以包括例如总线或专用互连电路的通信硬件的任何适当组合。
静态随机存取存储器(SRAM)539可以是可以由处理子系统530的多个处理组件共享的通用随机存取存储器装置。例如,SRAM 539可以存储传感器信号、处理器指令和数据、系统输出和其它数据,例如由环境ML引擎534实施或将由环境ML引擎534实施的神经网络模型的神经网络参数。通常,SRAM与动态随机存取存储器(DRAM)的不同之处在于SRAM不需要定期更新。如下文更详细地描述,SRAM 539可直接或通过一个或多个DMA控制器由处理子系统530中的处理组件访问。在一些实施方案中,SRAM 539包括多个存储体,每个存储体可以存储基本相似量的数据,例如,每个存储1、10或100MB。另外,每个个别的存储体可以包括多个块,当进入低功率状态时可以分别地将所述多个块断电。通过仔细地对将四个存储体中的块断电的顺序进行排序,SRAM地址空间可以保持连续。
当PCU 521唤醒SRAM 539时,PCU 521可以唤醒少于SRAM 539的所有块或所有存储器存储体。替代地,PCU 521可以仅唤醒足以使处理子系统530的下一组件确定是否进一步扩大所述装置500的组件的通电的块数目。
PCU 521还可以将不同功率电平供应到SRAM 539的不同块。例如,在监视功率状态下,PMU 522可以将较低的保持电压供应到整个SRAM 539以减少其功率消耗。如果没有处理组件需要访问SRAM 539,则PMU 522还可以将保持电压供应到SRAM 539。在处理功率状态下,PMU 522可以将标准电压提供到SRAM 539的全部或部分,并且将降低的电压提供到SRAM539的其它部分或不将电压提供到SRAM 539的其它部分。
在处理中断的过程期间,环境计算系统510还可以唤醒一个或多个DMA控制器528。DMA控制器528可以管理DMA路径,所述DMA路径允许用于传入的传感器信号的更高的数据带宽。例如,DMA控制器528可以用于将来自麦克风的音频数据连续地流式传输到SRAM 539,以由处理子系统530中的处理组件访问。相反,DMA控制器还可以用于连续地流式传输存储在SRAM 539中的音频数据,以作为声音通过一个或多个扬声器输出。DMA控制器528还可以用于将任何适当的传感器数据流式传输到SRAM 539中,但是使用编程的IO可能比为少量数据激活DMA控制器在计算上更便宜。因此,环境计算系统510可以激活并使用用于相对高带宽的传感器数据(例如,音频数据和雷达数据)的DMA控制器528,并且可以将编程的IO用于其它类型的传感器数据。
在准备所述结构和SRAM 539之后,PCU 521随后可以使用中断来确定要唤醒处理子系统530的哪个其它组件。例如,取决于一个或多个传感器中的哪一个生成中断,PMU 522可以控制是否向低功率CPU 532、低功率DSP 536、或处理子系统530的其它组件提供功率。在一些实施方案中,外围接口514和控制子系统520的组件是在监视功率状态下通电的装置500的唯一组件,所述监视功率状态是其中系统等待接收由于计算装置的环境输入而引起的中断的功率状态。
处理子系统530的处理组件包括低功率CPU 532、环境ML引擎534、低功率DSP 536和高功率DSP 538。在一些实施方案中,处理子系统具有这些组件中的一个或多个的多个实例,例如,多个低功率DSP或多个高功率DSP。例如,处理子系统530可以具有专用于处理音频信号的一个高功率DSP以及专用于处理雷达信号的另外的高功率DSP。替代地或另外地,处理子系统530可以具有专用于处理图像数据的高功率DSP。
当执行上文参考图2描述的预取过程时,环境计算系统510可以发布用于处理子系统130中的装置的任何适当组合的预取加载和存储指令。换句话说,环境计算系统510可以预取用于低功率CPU、环境ML引擎534、低功率DSP 536、高功率DSP 538、或这些项的某一组合的指令。在一些实施方案中,环境计算系统510仅预取用于消耗最少功率量的组件的指令。例如,环境计算系统510可以预取用于仅低功率CPU 532和低功率DSP 536的指令。这将允许系统在不唤醒存储器控制器或存储器装置的情况下,在低功率状态期间处理大部分传感器信号。如果需要附加处理,则系统可以在唤醒存储器控制器或存储器装置之后使用DMA控制器528预取此类指令。
预取过程有效地扩展在低功率状态下可用于环境计算系统510的存储器的大小。换句话说,代替在低功率状态期间仅限于内部SRAM 539的数量,环境计算系统510还可以访问用于预取过程的高速缓存的SRAM。这有效地将可用存储器扩展为至少与内部SRAM 539加上分配给环境计算系统510的高速缓存的大小相同。
在监视功率状态下,可以将处理子系统530中的处理组件维持在保持模式中。PCU521可以通过减少或消除提供给组件的功率来将组件维持在保持模式中。例如,在保持模式下,PCU 521可以为处理组件供应仅足够的功率来维持寄存器状态,但没有足够功率来处理寄存器中的数据。
低功率CPU 532可以是包括寄存器、控制电路和算术逻辑单元(ALU)的通用可编程处理器。通常,低功率CPU 532比计算装置的主CPU群集540消耗更少功率,并且可以包含更少处理核。在一些实施方案中,低功率CPU 532主要是对单个指令和单个数据输入操作的标量处理器。
当系统进入处理功率状态时,低功率CPU 532可以接收中断和传感器信号。基于低功率CPU 532接收的传感器信号的类型以及基于这些传感器信号的特性,低功率CPU 532可以确定应当被激活的所述系统的其它组件,例如,通信结构、DMA控制器528、SRAM 539、或这些项的某一组合。在激活这些组件之后,低功率CPU 532可以任选地返回到非操作状态。
低功率CPU 532可以将传感器信号或其处理后版本提供到环境ML引擎534,以用于进一步解释。例如,如果低功率CPU 532接收对应于加速计输入的传感器信号,则低功率CPU532可以确定环境ML引擎534应当进一步处理传感器信号。例如,环境ML引擎534随后可以进一步处理传感器信号,以确定所述信号表示步行、慢跑、骑自行车、跌倒或在汽车中行驶。
低功率CPU 532还可以绕过环境ML引擎534以获取一些信号。如果例如,低功率CPU532接收与计算装置的触摸界面的简单触摸输入相对应的传感器信号,则低功率CPU 532可以在不需要其它处理组件的帮助的情况下处理触摸输入,例如通过使计算装置的显示器由主CPU群集540或图形处理器打开。低功率CPU 532还可以确定计算装置的主CPU群集540或在装置500外部的计算装置的另一组件应当进一步处理某些传感器信号。低功率CPU 532可以例如确定是否确定装置500中的其它处理组件可以适当地处理传感器信号。
环境ML引擎534的一个任务是使用传感器信号在模型上执行推断遍历,以生成可以触发唤醒其它处理组件以进一步处理传感器信号的输出。换句话说,环境ML引擎534可以接收传感器信号、或由低功率CPU 532或另一处理组件生成的其处理后版本,并且环境ML引擎534可以生成输出,所述输出表示哪些其它处理组件应当进一步处理所述传感器信号。由环境ML引擎534生成的输出可以显式地指定处理组件ID或枚举的功率状态的标识符的组合,或者所述输出可以是由低功率处理组件(例如低功率CPU或低功率DSP)解释的功率状态的表示,以便识别应当处理所述传感器信号的其它较高功率处理组件。作为此过程的一部分,低功率处理组件可以显式地或隐式地确定是否需要任何其它处理。例如,低功率处理组件可以基于机器学习引擎的输出来确定不需要进一步处理并且所述系统可以转换回监视功率状态。
在最低水平的监视功率状态下,PCU 521可以将环境ML引擎534保持在低功率状态或完全断电。在处理功率状态下,PCU 521可以或可以不向环境ML引擎534提供功率,这取决于哪些传感器信号在外围接口514处可用以及低功率CPU 532或低功率DSP 536如何解释所述信号。在一些实施方案中,低功率DSP 536或低功率CPU 532解所述释信号,以指令PCU521为附加的中间功率状态提供功率,其中环境ML引擎534也通电以用于推断遍历,但是其它高功率处理组件仍然尚未通电。
环境ML引擎534还可以实施其它机器学习模型以处理传感器信号。例如,环境ML引擎534可以实施简化的语音识别模型,所述语音识别模型允许环境ML引擎534识别一些基于话音的命令。因为模型可以安装在具有有限存储器容量的移动计算装置上,所以识别命令的数目可以少于用于在线话音识别过程的命令的数目。
环境ML引擎534可以替代地或另外地实施提供片上自动语音识别的机器学习模型。换句话说,环境ML引擎534可以通过模型执行推断遍历,以便生成在音频信号中捕获的语音的实时转录。
作为另一实例,环境ML引擎534可以实施从特定文本输入生成音频输出信号的文本语音转换模型,其中音频输出信号可以由用户解释为特定语言的人类语音。在一些实施方案中,装置500可以串联使用语音识别模型和文本语音转换模型,以提供低功率对话引擎。例如,在环境ML引擎534识别特定命令之后,低功率CPU 532可以采取特定动作来实现所述命令并且还将特定文本响应提供回环境ML引擎534。环境ML引擎534随后可以使用文本语音转换模型来生成音频输出,所述音频输出表示对初始命令的响应。在一些实施方案中,可以在不唤醒装置的主CPU群集540的情况下执行语音识别、动作执行和文本语音转换响应的整个数据流。
例如,如果用户提供话音命令“大声点”,则环境ML引擎534可以生成表示对应于话音命令的音频信号的输出,以增加装置正在播放的音乐的音量。机器学习引擎534可以将输出提供到低功率CPU 532,所述低功率CPU可以通过向一个或多个集成的扬声器子系统发出信号来实现命令。低功率CPU 532随后可以将文本响应“级别5处的音量”提供到环境ML引擎534。环境ML引擎534随后可以通过文本语音转换模型来处理文本响应以生成音频输出,装置可以在一个或多个集成的扬声器子系统上播放所述音频输出。因此,环境计算系统510在不唤醒装置的主CPU的情况下处理整个对话序列。
环境ML引擎534还可以实施多种其它模型中的任一个。环境ML引擎534还可以实施手势识别模型,所述手势识别模型解释由计算装置的用户做出的手势的特征。例如,模型的输入可以是由计算装置接收到的处理后的雷达信号,并且模型的输出可以是用户做出的手势的预测。每一手势可以对应于特定命令,并且环境ML引擎534可以将输出提供到低功率CPU 532或另一个处理组件,以用于进一步动作。
环境ML引擎534可以包括用于存储模型参数和其它模型配置信息的一个或多个存储器存储体。例如,机器学习引擎534可以存储用于表示神经网络连接和神经网络参数的数据。环境ML引擎534可以包括用于计算神经网络激活或其它神经网络层输出的一个或多个乘法累加(MAC)单元和一个或多个和数寄存器,以及用于控制在存储器存储体与MAC单元之间的数据交换的控制器。环境ML引擎534还可以包括指令存储器、直接存储器访问路径、寄存器、以及其它处理组件。在一些实施方案中,环境ML引擎534是机器学习计算瓦片,所述机器学习计算瓦片被配置成加速机器学习推断遍历的计算。
低功率DSP 536和高功率DSP 538是专用处理器,所述专用处理器被配置用于高度矢量化的信号的有效解码和处理。处理子系统530可以包括出于不同目的而设计的各种DSP。例如,处理子系统530可以包括:配置成处理雷达信号的DSP;配置成处理音频信号的DSP;配置成执行数据平面算法的DSP;配置成处理无线通信信号的DSP;以及配置成处理GPS信号的DSP,仅举几例。
如上所述,低功率DSP 536可以执行来自控制子系统520的传感器信号的初始解释。低功率DSP 536也可以执行其它信号处理任务。通常,高功率DSP比低功率DSP消耗更高的功率电平,因为高功率DSP具有更多的激活寄存器,高功率DSP并行访问和处理更多数据,因为高功率DSP更严重地依赖于存储器操作,或这些项的某种组合。
控制子系统520还可以包括计时器529,所述计时器是可以检测到系统故障并且解决这些故障的电子计时器。在正常操作期间,系统可以定期复位计时器529,以防止计时器529超时。例如,如果由于硬件故障或程序错误,系统无法复位计时器,则计时器将经历并生成超时信号。超时信号可以用于发起一个或多个纠正动作。纠正动作可以包括将系统放置于安全状态并且恢复正常系统运行。
本说明书中描述的主题和功能操作的实施例可以在数字电子电路、在有形地实施的计算机软件或固件、在计算机硬件(包括本说明书中所公开的结构以及其结构等效物)、或在其中的一者或多者的组合中实施。本说明书中描述的主题的实施例可以实施为一个或多个计算机程序,即,在有形的非暂时性存储介质上编码以供数据处理设备执行或控制数据处理设备的操作的计算机程序指令的一个或多个模块。计算机存储介质可以是机器可读存储装置、机器可读存储衬底、随机或串行存取存储器装置、或其中的一者或多者的组合。替代地或另外地,程序指令可以在例如机器生成的电信号、光信号或电磁信号等人为生成的传播信号上编码,所述人为生成的传播信号被生成以对信息进行编码以传输到合适接收器设备以供数据处理设备执行。
本发明的实施例包括用于在低功率状态下进入系统的系统和方法。所述系统包括多个集成客户端装置,包括:环境计算装置,所述环境计算装置被配置成在系统处于低功率状态时控制系统的操作;存储器控制器,所述存储器控制器被配置成从存储器装置读取数据以供客户端装置消耗;以及高速缓存,所述高速缓存被配置成将由环境计算装置发出的数据请求高速缓存到存储器控制器。所述系统被配置成通过执行操作进入低功率状态,所述操作包括:通过环境计算装置执行预取过程,所述预取过程用环境计算装置在低功率状态下处理对系统的输入所需的预取指令和数据来填充高速缓存;以及进入低功率状态。在低功率状态下,环境计算装置被配置成通过使用存储在高速缓存中的预取指令和数据来处理对系统的输入。
在一些实施例中,高速缓存是系统级高速缓存,所述系统级高速缓存被配置成针对多个集成客户端装置中的每一个将数据请求高速缓存到存储器控制器。在一些实施例中,高速缓存是本地高速缓存,所述本地高速缓存被配置成服务于仅用于环境计算装置、而不用于其它集成客户端装置中的任一个的存储器请求。
执行预取过程可以增加在低功率状态期间可用于环境计算装置的SRAM存储器的量。在一些实施例中,在低功率状态期间可用于环境计算装置的存储器包括环境计算装置的内部SRAM和高速缓存的SRAM。
在一些实施例中,在低功率状态下,环境计算装置被配置成在不唤醒存储器装置或不唤醒存储器控制器的情况下使用预取指令和数据来处理计算装置的输入。
执行预取过程可以包括发出预取存储存储器请求,所述预取存储存储器请求针对环境计算装置将在低功率状态期间存储的数据来分配高速缓存中的高速缓存线。预取存储存储器请求的每一个将虚拟数据写入到高速缓存。
在一些实施例中,系统包括多个高速缓存的层级,所述高速缓存包括系统级高速缓存,所述系统级高速缓存被配置成针对多个集成客户端装置中的每一个将数据请求高速缓存到存储器控制器。进入低功率状态可以包括:确定用于将由环境计算装置在低功率状态下执行的低功率过程的存储器大小;基于用于将由环境计算装置在低功率状态下执行的低功率过程的存储器大小,确定多个高速缓存的层级中的哪一个高速缓存应该用于存储环境计算装置在低功率状态下时处理对系统的输入所需的预取指令和数据;以及基于所述确定,从所述层级中的多个高速缓存中选择高速缓存。
进入低功率状态可以包括将高速缓存层级中低于所选择高速缓存的所有高速缓存断电。进入低功率状态可以包括将到达在高速缓存层级中低于所选择高速缓存的高速缓存的所有数据路径断电。将高速缓存层级中低于所选择高速缓存的所有高速缓存断电可以包括将系统级高速缓存断电。
术语“数据处理设备”是指数据处理硬件并且涵盖用于处理数据的所有种类的设备、装置和机器,包括例如可编程处理器、计算机、或多个处理器或计算机。所述设备还可以是或可以进一步包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,所述设备还可以任选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或其中的一者或多者的组合的代码。
也可以称为或描述为程序、软件、软件应用程序、应用程序、模块、软件模块、脚本或代码的计算机程序可以用任何形式的编程语言编写,包括编译或解释性语言、或声明性或程序性语言;它可以以任何形式进行部署,包括作为独立程序或作为模块、组件、子例程或适用于计算环境的其它单元进行部署。程序可以(但不是必需)对应于文件系统中的文件。程序可以存储在文件的一部分中,所述文件将其它程序或数据(例如,存储在标记语言文档中的一个或多个脚本)保存在专用于所讨论的程序的单个文件中、或多个协调文件(例如,用于存储一个或多个模块、子程序或代码的一部分的文件)中。计算机程序可以被部署为在一个计算机上或在多个计算机上执行,所述多个计算机位于一个位置处或跨越多个位置分布并且通过通信网络互连。
对于要配置成执行特定操作或动作的一个或多个计算机的系统,意味着所述系统已在其上安装在操作时使系统执行操作或动作的软件、固件、硬件或它们的组合。对于要配置成执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当由数据处理设备执行时使设备执行操作或动作的指令。
在本说明书中描述的过程和逻辑流程可以通过专用逻辑电路(例如,FPGA或ASIC)或者通过专用逻辑电路和一个或多个编程计算机的组合来执行。
适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器装置,包括例如,半导体存储器装置,例如,EPROM、EEPROM和闪存存储器装置;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在主机装置上实施,所述主机装置具有用于将信息显示给用户的显示装置(例如,电子显示器),以及键盘和指向装置(例如,鼠标、轨迹球),或存在敏感的显示器,或用户可以用于将输入提供到主机装置的其它表面。其它种类的装置也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;以及从用户产生的输入可以用任何形式接收,包括声音、语音或触觉输入。另外,通过将文档发送到用户使用的装置以及从所述装置接收文档,例如,通过响应于从网络浏览器接收的请求而将网页发送到用户装置上的网络浏览器,主机装置可以与用户交互。此外,主机装置可以通过将文本消息或其它形式的消息发送到个人装置(例如,运行消息传递应用程序的智能电话),并进而从用户接收响应消息来与用户交互。
尽管本说明书含有许多特定实施方案细节,但是这些细节不应解释为限制任何发明的范围或可以主张的内容的范围,而是对可能特定于特定发明的特定实施例的特征的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各个特征也可以分开地在多个实施例中或在任何合适的子组合中实施。此外,尽管特征可以在上文描述为在某些组合中起作用且甚至初始地如此主张,但是来自所主张组合的一个或多个特征在一些情况下可以从所述组合中删除,并且所主张组合可以指向子组合或子组合的变体。
类似地,尽管在图中以特定次序描绘操作,但是这不应理解为需要按所示的特定次序或按顺序执行此类操作、或执行所有所说明的操作以实现所需要的结果。在某些情况下,多任务和并行处理可以是有利的。此外,上述实施例中的各个系统模块和组件的分离不应理解为在所有实施例中需要此种分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或封装成多个软件产品。
已描述主题的特定实施例。其它实施例在所附权利要求书的范围内。例如,权利要求书中叙述的动作可以按不同次序执行并且仍实现所需要的结果。作为另一实例,附图中描绘的过程不一定需要所示的特定次序或连续次序来实现期望的结果。在特定的一些情况下,多任务和并行处理可以是有利的。
权利要求附后。

Claims (20)

1.一种系统,包括:
多个集成客户端装置,所述客户端装置包括环境计算装置,所述环境计算装置被配置成在所述系统处于低功率状态时控制所述系统的操作;
存储器控制器,所述存储器控制器被配置成从存储器装置读取数据以供所述客户端装置消耗;以及
高速缓存,所述高速缓存被配置成将由所述环境计算装置发出的数据请求高速缓存到所述存储器控制器,
其中,所述系统被配置成通过执行操作进入所述低功率状态,所述操作包括:
通过所述环境计算装置执行预取过程,所述预取过程用所述环境计算装置所需的预取指令和数据填充所述高速缓存以在所述低功率状态下时处理对所述系统的输入,以及
进入所述低功率状态,其中在所述低功率状态下,所述环境计算装置被配置成使用存储在所述高速缓存中的所述预取指令和数据来处理对所述系统的输入。
2.根据权利要求1所述的系统,其中所述高速缓存是系统级高速缓存,所述系统级高速缓存被配置成针对所述多个集成客户端装置中的每一个将数据请求高速缓存到所述存储器控制器。
3.根据权利要求1所述的系统,其中所述高速缓存是本地高速缓存,所述本地高速缓存被配置成服务于仅用于所述环境计算装置、而不用于其它集成客户端装置中的任一个的存储器请求。
4.根据任一前述权利要求所述的系统,其中执行所述预取过程增加了在所述低功率状态期间可用于所述环境计算装置的SRAM存储器的量。
5.根据权利要求4所述的系统,其中在所述低功率状态期间可用于所述环境计算装置的所述存储器包括所述环境计算装置的内部SRAM和所述高速缓存的SRAM。
6.根据任一前述权利要求所述的系统,其中在所述低功率状态下,所述环境计算装置被配置成在不唤醒所述存储器装置或不唤醒所述存储器控制器的情况下通过使用所述预取指令和数据来处理所述计算装置的所述输入。
7.根据任一前述权利要求所述的系统,其中执行所述预取过程包括发出预取存储存储器请求,所述预取存储存储器请求为所述环境计算装置将在所述低功率状态期间存储的数据分配所述高速缓存中的高速缓存线。
8.根据权利要求7所述的系统,其中所述预取存储存储器请求的每一个将虚拟数据写入到所述高速缓存。
9.根据任一前述权利要求所述的系统,其中所述系统包括含有系统级高速缓存的多个高速缓存的层级,所述系统级高速缓存被配置成针对所述多个集成客户端装置中的每一个将对所述存储器控制器的数据请求进行高速缓存,并且其中进入所述低功率状态包括:
确定用于将由所述环境计算装置在所述低功率状态下执行的低功率过程的存储器大小;
基于用于将由所述环境计算装置在所述低功率状态下执行的所述低功率过程的所述存储器大小,确定所述多个高速缓存的层级中的哪一个高速缓存应该用于存储所述环境计算装置在所述低功率状态下时处理对所述系统的输入所需的所述预取指令和数据;以及
基于所述确定从所述层级中的所述多个高速缓存中选择所述高速缓存。
10.根据权利要求9所述的系统,其中进入所述低功率状态进一步包括:
将所述高速缓存层级中低于所选择高速缓存的所有高速缓存断电。
11.根据权利要求10所述的系统,其中进入所述低功率状态进一步包括将到达所述高速缓存层级中低于所选择高速缓存的所述高速缓存的所有数据路径断电。
12.根据权利要求11所述的系统,其中将所述高速缓存层级中低于所选择高速缓存的所有高速缓存断电包括将所述系统级高速缓存断电。
13.一种系统进入低功率状态的方法,所述系统包括:
多个集成客户端装置,所述客户端装置包括环境计算装置,所述环境计算装置被配置成在所述系统处于所述低功率状态时控制所述系统的操作;
存储器控制器,所述存储器控制器被配置成从存储器装置读取数据以供所述客户端装置消耗;以及
高速缓存,所述高速缓存被配置成将由所述环境计算装置发出的数据请求高速缓存到所述存储器控制器,
其中所述方法包括:
通过所述环境计算装置执行预取过程,所述预取过程用所述环境计算装置所需的预取指令和数据填充所述高速缓存以在所述低功率状态下时处理对所述系统的输入;
进入所述低功率状态;以及
通过所述环境计算装置在所述低功率状态下使用存储在所述高速缓存中的所述预取指令和数据来处理对所述系统的输入。
14.根据权利要求13所述的方法,其中所述高速缓存是系统级高速缓存,所述系统级高速缓存被配置成针对所述多个集成客户端装置中的每一个将对所述存储器控制器的数据请求进行高速缓存。
15.根据权利要求13所述的方法,其中所述高速缓存是本地高速缓存,所述本地高速缓存被配置成服务于仅用于所述环境计算装置、而不用于其它集成客户端装置中的任一个的存储器请求。
16.根据权利要求13至15中任一项所述的方法,其中执行所述预取过程增加了在所述低功率状态期间可用于所述环境计算装置的SRAM存储器的量。
17.根据权利要求16所述的方法,其中在所述低功率状态期间可用于所述环境计算装置的所述存储器包括所述环境计算装置的内部SRAM和所述高速缓存的SRAM。
18.根据权利要求13至17中任一项所述的方法,其进一步包括在不唤醒所述存储器装置或不唤醒所述存储器控制器的情况下,通过所述环境计算装置在所述低功率状态下使用所述预取指令和数据来处理所述计算装置的所述输入。
19.根据权利要求13至18中任一项所述的方法,其中执行所述预取过程包括发出预取存储存储器请求,所述预取存储存储器请求为所述环境计算装置将在所述低功率状态期间存储的数据分配所述高速缓存中的高速缓存线。
20.根据权利要求13至19中任一项所述的方法,其中所述系统包括含有系统级高速缓存的多个高速缓存的层级,所述系统级高速缓存被配置成针对所述多个集成客户端装置中的每一个将对所述存储器控制器的数据请求进行高速缓存,并且其中进入所述低功率状态包括:
确定用于将由所述环境计算装置在所述低功率状态下执行的低功率过程的存储器大小;
基于用于将由所述环境计算装置在所述低功率状态下执行的所述低功率过程的所述存储器大小,确定所述多个高速缓存的层级中的哪一个高速缓存应该用于存储所述环境计算装置在所述低功率状态下时处理对所述系统的输入所需的所述预取指令和数据;以及
基于所述确定从所述层级中的所述多个高速缓存中选择所述高速缓存。
CN201980067609.1A 2019-02-13 2019-11-26 低功率高速缓存的环境计算 Active CN112840329B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410191547.8A CN118227520A (zh) 2019-02-13 2019-11-26 低功率高速缓存的环境计算

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962805207P 2019-02-13 2019-02-13
US62/805,207 2019-02-13
US16/518,644 2019-07-22
US16/518,644 US11023379B2 (en) 2019-02-13 2019-07-22 Low-power cached ambient computing
PCT/US2019/063274 WO2020167358A1 (en) 2019-02-13 2019-11-26 Low-power cached ambient computing

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202410191547.8A Division CN118227520A (zh) 2019-02-13 2019-11-26 低功率高速缓存的环境计算

Publications (2)

Publication Number Publication Date
CN112840329A true CN112840329A (zh) 2021-05-25
CN112840329B CN112840329B (zh) 2024-03-05

Family

ID=71944831

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201980067609.1A Active CN112840329B (zh) 2019-02-13 2019-11-26 低功率高速缓存的环境计算
CN202410191547.8A Pending CN118227520A (zh) 2019-02-13 2019-11-26 低功率高速缓存的环境计算

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202410191547.8A Pending CN118227520A (zh) 2019-02-13 2019-11-26 低功率高速缓存的环境计算

Country Status (6)

Country Link
US (2) US11023379B2 (zh)
EP (1) EP3850489A1 (zh)
KR (3) KR102536359B1 (zh)
CN (2) CN112840329B (zh)
TW (3) TWI759656B (zh)
WO (1) WO2020167358A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11023379B2 (en) 2019-02-13 2021-06-01 Google Llc Low-power cached ambient computing
TWI695313B (zh) * 2019-02-15 2020-06-01 矽統科技股份有限公司 音訊介面偵測裝置及方法
US11256318B2 (en) * 2019-08-09 2022-02-22 Intel Corporation Techniques for memory access in a reduced power state
US11996166B2 (en) * 2019-08-29 2024-05-28 Advanced Micro Devices, Inc. Adaptable allocation of SRAM based on power
US20220004399A1 (en) * 2020-07-03 2022-01-06 Mediatek Inc. Dynamic loading neural network inference at dram/on-bus sram/serial flash for power optimization
US20230315588A1 (en) * 2020-09-11 2023-10-05 Google Llc Hardware-Based Save-and-Restore Controller
US20240111442A1 (en) * 2022-09-29 2024-04-04 Advanced Micro Devices, Inc. On-Demand Regulation of Memory Bandwidth Utilization to Service Requirements of Display
US20240231469A9 (en) * 2022-10-21 2024-07-11 Quanta Computer Inc. Method and system for providing power saving in computer systems

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6311280B1 (en) * 1999-02-22 2001-10-30 Nband Communications Low-power memory system with incorporated vector processing
CN1629800A (zh) * 2003-12-18 2005-06-22 国际商业机器公司 多线程计算机中用于环境切换数据预取的方法和装置
US20060253716A1 (en) * 2004-10-29 2006-11-09 Gaurav Dhiman Apparatus and method for entering and exiting low power mode
US7869835B1 (en) * 2005-03-02 2011-01-11 Nvidia Corporation Method and system for pre-loading and executing computer instructions within the cache memory
CN102844724A (zh) * 2010-03-25 2012-12-26 微软公司 管理分布式计算系统中的功率供应
CN103338272A (zh) * 2013-07-23 2013-10-02 星云融创(北京)信息技术有限公司 一种内容分发网络及其缓存实现方法
CN107430424A (zh) * 2015-03-27 2017-12-01 英特尔公司 针对改进的混合睡眠功率管理的技术
US20180074566A1 (en) * 2016-09-12 2018-03-15 Canon Kabushiki Kaisha Information processing apparatus, method for controlling the same, and non-transitory computer-readable storage medium

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7174471B2 (en) * 2003-12-24 2007-02-06 Intel Corporation System and method for adjusting I/O processor frequency in response to determining that a power set point for a storage device has not been reached
KR100685664B1 (ko) * 2005-08-12 2007-02-26 삼성전자주식회사 호스트 및 클라이언트로 구성된 데이터 통신 시스템 및데이터 통신 시스템의 작동 방법
US7937526B1 (en) * 2007-06-29 2011-05-03 Marvell International Ltd. Storage device cache with phase change memory
US8103894B2 (en) * 2009-04-24 2012-01-24 International Business Machines Corporation Power conservation in vertically-striped NUCA caches
US8285519B2 (en) 2009-12-03 2012-10-09 Osocad Remote Limited Liability Company System and method for operating a network of sensors
US8990602B2 (en) 2010-12-21 2015-03-24 Intel Corporation Apparatus, method, and system for early deep sleep state exit of a processing element
US9471132B2 (en) 2013-09-27 2016-10-18 Intel Corporation Techniques for putting platform subsystems into a lower power state in parallel
US9778728B2 (en) 2014-05-29 2017-10-03 Apple Inc. System on a chip with fast wake from sleep
US10089238B2 (en) 2014-07-17 2018-10-02 Qualcomm Incorporated Method and apparatus for a shared cache with dynamic partitioning
US20180173627A1 (en) * 2014-08-11 2018-06-21 Mediatek Inc. Dynamic memory control method and system thereof
TWI526818B (zh) 2015-03-19 2016-03-21 群聯電子股份有限公司 休眠模式啓動方法、記憶體控制電路單元及儲存裝置
US10382304B2 (en) * 2015-03-31 2019-08-13 Motorola Mobility Llc Methods and apparatus for controlling multiple-input and multiple-output operation in a communication device based on quality of service
US20170024145A1 (en) 2015-07-23 2017-01-26 Qualcomm Incorporated Address translation and data pre-fetch in a cache memory system
US20170038813A1 (en) 2015-08-05 2017-02-09 Qualcomm Incorporated System and method for cache aware low power mode control in a portable computing device
US10127018B2 (en) * 2016-03-30 2018-11-13 Qualcomm Incorporated Dynamic addition of code in shared libraries
US10175980B2 (en) 2016-10-27 2019-01-08 Google Llc Neural network compute tile
EP3514705A1 (en) * 2018-01-23 2019-07-24 Becker, Stefan Method for retrieving data stored in a database
US11010067B2 (en) * 2018-12-28 2021-05-18 Intel Corporation Defense against speculative side-channel analysis of a computer system
US11023379B2 (en) 2019-02-13 2021-06-01 Google Llc Low-power cached ambient computing

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6311280B1 (en) * 1999-02-22 2001-10-30 Nband Communications Low-power memory system with incorporated vector processing
CN1629800A (zh) * 2003-12-18 2005-06-22 国际商业机器公司 多线程计算机中用于环境切换数据预取的方法和装置
US20060253716A1 (en) * 2004-10-29 2006-11-09 Gaurav Dhiman Apparatus and method for entering and exiting low power mode
US7869835B1 (en) * 2005-03-02 2011-01-11 Nvidia Corporation Method and system for pre-loading and executing computer instructions within the cache memory
CN102844724A (zh) * 2010-03-25 2012-12-26 微软公司 管理分布式计算系统中的功率供应
CN103338272A (zh) * 2013-07-23 2013-10-02 星云融创(北京)信息技术有限公司 一种内容分发网络及其缓存实现方法
CN107430424A (zh) * 2015-03-27 2017-12-01 英特尔公司 针对改进的混合睡眠功率管理的技术
US20180074566A1 (en) * 2016-09-12 2018-03-15 Canon Kabushiki Kaisha Information processing apparatus, method for controlling the same, and non-transitory computer-readable storage medium

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
廖彬;于炯;孙华;年梅;: "基于存储结构重配置的分布式存储系统节能算法", 计算机研究与发展, pages 3 - 18 *

Also Published As

Publication number Publication date
US20210342269A1 (en) 2021-11-04
TW202046298A (zh) 2020-12-16
US11599471B2 (en) 2023-03-07
TW202223883A (zh) 2022-06-16
KR20240046922A (ko) 2024-04-11
EP3850489A1 (en) 2021-07-21
KR102654723B1 (ko) 2024-04-08
US20200257627A1 (en) 2020-08-13
TWI815323B (zh) 2023-09-11
US11023379B2 (en) 2021-06-01
KR20210053334A (ko) 2021-05-11
CN118227520A (zh) 2024-06-21
KR20230074305A (ko) 2023-05-26
TWI759656B (zh) 2022-04-01
WO2020167358A1 (en) 2020-08-20
TW202401413A (zh) 2024-01-01
CN112840329B (zh) 2024-03-05
KR102536359B1 (ko) 2023-05-30

Similar Documents

Publication Publication Date Title
TWI815323B (zh) 用於進入低功率狀態之電腦可實施方法以及相關運算系統
TWI816566B (zh) 用於將外部記憶體虛擬化為機器學習加速器之局部記憶體之裝置及系統
TWI807471B (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