CN110809754A - 用于计算设备中的动态缓冲器大小设定的系统和方法 - Google Patents

用于计算设备中的动态缓冲器大小设定的系统和方法 Download PDF

Info

Publication number
CN110809754A
CN110809754A CN201880042337.5A CN201880042337A CN110809754A CN 110809754 A CN110809754 A CN 110809754A CN 201880042337 A CN201880042337 A CN 201880042337A CN 110809754 A CN110809754 A CN 110809754A
Authority
CN
China
Prior art keywords
buffer
buffers
soc
buffer size
components
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
CN201880042337.5A
Other languages
English (en)
Other versions
CN110809754B (zh
Inventor
V·K·班杜尔普塔帕
U·拉奥
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 CN110809754A publication Critical patent/CN110809754A/zh
Application granted granted Critical
Publication of CN110809754B publication Critical patent/CN110809754B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/38Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
    • H04B1/3827Portable transceivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/063Dynamically variable buffer size
    • 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)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Sources (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)
  • Measurement Of Velocity Or Position Using Acoustic Or Ultrasonic Waves (AREA)

Abstract

公开了用于动态地控制计算设备(“PCD”)中的计算设备中的缓冲器大小的方法和系统。监控模块确定为PCD的多个组件定义第一活动级别的第一使用情况。基于第一使用情况,将多个缓冲器设置为第一缓冲器大小。每个缓冲器与所述多个组件中的一个组件相关联,并且每个缓冲器的第一缓冲器大小是基于相关联组件的第一活动级别的。确定PCD的不同于第一使用情况的第二使用情况。第二使用情况为所述多个组件定义第二活动级别。基于第二使用情况将至少一个缓冲器设置为不同于第一缓冲器大小的第二缓冲器大小。

Description

用于计算设备中的动态缓冲器大小设定的系统和方法
背景技术
计算设备(包括台式计算机、服务器和便携式计算设备(“PCD”))普遍存在。例如PCD成为人们在个人和专业级别的必需品。这些设备可以包括蜂窝电话(诸如智能电话)、便携式数字助理(“PDA”)、便携式游戏机、掌上型计算机、平板电脑、可穿戴设备和其他便携式电子设备。这种PCD通常使用存储器(诸如先进先出缓冲器或充当缓冲器的存储寄存器)来确保数据在PCD的组件之间有效传输并且没有数据丢失。这种缓冲存储器的大小通常是在PCD的启动时针对“最坏情况”场景来设定的,例如,缓冲存储器(诸如FIFO)的大小可以被设定为确保当传输数据的第一组件以最大频率操作而传输数据的另一个组件以最小频率操作时不会丢失数据。
随着PCD变得更强大并且需要执行更多任务,降低功耗对于确保令人满意的电池寿命变得更重要。用于减少或控制功耗的典型现有技术包括节流或控制PCD组件操作的电压电平和/或PCD组件的时钟频率。然而,这些控制功耗的方法可能不是在所有情况下都有效,例如,当PCD的多个组件处于单个电源轨上时,使得由于一个组件的需求,而不能降低电源轨上的电压电平,而该电源轨上的其他组件可以在较低电压电平下操作。
这些用于控制功率消耗的方法忽略了针对处理“更坏情况”场景而被设定大小的缓冲器导致的显著的功率泄漏。因此,需要系统和方法来动态地控制诸如PCD的计算设备中的FIFO缓冲器大小设定。
发明内容
公开了用于动态地控制计算设备中的缓冲存储器大小的方法和系统的各种实施例。在示例性实施例中,提供了一种方法,该方法包括:利用片上系统(“SoC”)的监控模块确定PCD的第一使用情况。该第一使用情况为SoC的多个组件定义第一活动级别。该方法包括:基于该第一使用情况将多个缓冲存储器设置为第一缓冲器大小。该多个缓冲器中的每一个缓冲器与SoC的该多个组件中的一个组件相关联,并且每个缓冲器的第一缓冲器大小是基于SoC的相关联组件的第一活动级别的。
该方法还包括:确定PCD的不同于第一使用情况的第二使用情况。该第二使用情况为SoC的该多个组件定义第二活动级别。基于该第二使用情况将该多个缓冲器中的至少一个缓冲器设置为第二缓冲器大小。该至少一个缓冲器的第二缓冲器大小是基于SoC的相关联组件的第二活动级别的,并且第二缓冲器大小不同于第一缓冲器大小。
在另一个实施例中,公开了一种用于动态地控制计算设备中的缓冲器大小的计算机系统。示例性系统包括PCD的片上系统(“SoC”)的多个组件;SoC上的多个缓冲器,该多个缓冲器中的每一个缓冲器与该多个组件中的一个组件相关联;以及SoC的监控模块。监控模块被配置为确定PCD的第一使用情况,该第一使用情况为SoC的该多个组件定义第一活动级别。监控模块还被配置为基于第一使用情况将该多个缓冲器设置为第一缓冲器大小,其中,每个缓冲器的第一缓冲器大小是基于SoC的相关联组件的第一活动级别的。
监控模块还被配置为确定PCD的不同于第一使用情况的第二使用情况,第二使用情况为SoC的该多个组件定义第二活动级别。最后,监控模块被配置为基于第二使用情况将该多个缓冲器中的至少一个缓冲器设置为第二缓冲器大小。该至少一个缓冲器的第二缓冲器大小是基于SoC的相关联组件的第二活动级别的,并且第二缓冲器大小不同于第一缓冲器大小。
附图说明
在附图中,除非另有指明,否则相似的附图标记在全部各个视图中指代相似的部分。对于具有诸如“102A”或“102B”等字母字符标识的附图标记,字母字符标识可以区分同一附图中存在的两个相似部分或元件。当意图是附图标记包含所有附图中具有相同附图标记的所有部分时,可以省略附图标记的字母字符标记。
图1是示出便携式计算设备(PCD)的示例性实施例的功能框图,在该PCD中能够实现用于动态先进先出(FIFO)缓冲器大小设定的系统和方法;
图2是示出可以在PCD中实现的片上系统(SoC)中的示例性组件的方框图;
图3是示出用于计算设备中的动态FIFO缓冲器大小设定的系统的示例性实施例的各方面的方框图;
图4A是图2的方框图,其中针对一种使用情况示出了用于动态FIFO缓冲器大小设定的系统和方法的操作示例;
图4B是图2的方框图,其中针对一不同使用情况示出了用于动态FIFO缓冲器大小设定的系统和方法的操作示例;
图5A是可以在用于动态FIFO缓冲器大小设定的系统和方法的操作期间使用的示例性状态表;
图5B是可以在用于动态FIFO缓冲器大小设定的系统和方法的操作期间使用的示例性查找表(LUT);
图6是示出SoC中的示例性组件以及用于针对使用情况的动态FIFO缓冲器大小设定的系统和方法的示例性操作的额外方面的方框图;
图7A是示出具有第一大小的FIFO的各方面的方框图;
图7B是示出在根据本文的示例性系统和方法调整大小之后的图6A的FIFO的各方面的方框图;以及
图8是示出用于计算设备中的动态FIFO缓冲器大小设定的示例性方法的操作的逻辑流程图。
具体实施方式
本文使用词语“示例性的”来表示“用作示例、实例或说明”。本文中被描述为“示例性的”的任何方面不一定被解释为相对于其它方面而言是排他的、优选的或有利的。
在本说明书中,术语“应用程序”还可以包括具有可执行内容的文件,例如目标代码、脚本、字节代码、标记语言文件和补丁。另外,本文提到的“应用程序”也可以包括本质上不可执行的文件,诸如可能需要被打开的文档或需要被访问的其他数据文件。
如在本说明书中所使用的,术语“组件”、“数据库”、“模块”、“系统”等旨在指代与计算机相关的实体,即硬件、固件、硬件和软件的组合、软件,或执行中的软件,并且表示用于提供功能以及执行本说明书中描述的过程或过程流程中的特定步骤的示例性单元。例如,组件可以是但不限于:在处理器上运行的进程、处理器、对象、可执行体、执行线程、程序和/或计算机。作为说明,运行在计算设备上的应用程序和该计算设备都可以是组件。
一个或多个组件可以驻留在进程和/或执行线程内,并且组件可以局限于一台计算机上和/或分布在两台或更多台计算机上。另外,这些组件可以从其上存储有各种数据结构的各种计算机可读介质执行。这些组件可以例如根据具有一个或多个数据分组的信号(例如,来自与本地系统、分布式系统中的另一个组件进行交互和/或通过如互联网的网络与其他系统通过信号方式进行交互的一个组件的数据)通过本地和/或远程进程进行通信。
在本说明书中,术语“中央处理单元(“CPU”)”、“数字信号处理器(“DSP”)”、“图形处理单元(“GPU”)”和“芯片”可互换使用。此外,CPU、DSP、GPU或芯片可以由在本文中统称为“核心”的一个或多个不同处理组件组成。
在本说明书中,术语“工作负荷”、“处理负荷”和“处理工作负荷”可互换使用,并且通常针对与给定实施例中的给定处理组件相关联的处理负担或处理负担的百分比,例如当该处理组件正在执行一个或多个任务或指令时。此外,“处理组件”可以是但不限于:片上系统(“SoC”)、中央处理单元、图形处理单元、核心、主核心、子核心、处理区域、硬件引擎、相机、调制解调器等或驻留在便携式计算设备内的集成电路内或外部的任何其他组件。
在本说明书中,术语“便携式计算设备”(“PCD”)用于描述依靠诸如电池之类的有限容量电源供电的任何设备。尽管电池供电的PCD已经使用了数十年,但与第三代(“3G”)和第四代(“4G”)无线技术的出现相结合的可再充电电池的技术进步已经实现了具有多种能力的许多PCD。因此,PCD可以是蜂窝电话、卫星电话、寻呼机、PDA、智能电话、导航设备、智能本或阅读器、媒体播放器、平板电脑、上述设备的组合、具有无线连接的膝上型计算机和/或可穿戴产品等等。
在PCD中,相互竞争的服务质量、电池寿命和其他问题可能导致PCD的各种组件、系统和/或子系统以更高(或更低)的功率或电压和/或更高(或更低)频率操作。另外,PCD通常包括一个或多个缓冲存储器以协助PCD的各种组件、系统和/或子系统之间的数据协商。然而,这些缓冲存储器或缓冲器通常是在PCD的初始启动或操作时被设置或设定大小的,并大小保持不变,从而当缓冲器未被使用时导致过度的功率泄漏。这种功率损耗在针对“最坏情况”场景设定大小的缓冲器中尤为明显,例如,缓冲器的大小被设定为确保当传输数据的组件以最大频率操作而接收数据的组件以最小频率操作时不会丢失数据。在关注于PCD组件的工作频率和/或电压的传统功率控制策略中,没有考虑缓冲器大小引起的这种功率损耗。
已经确定,动态地控制由PCD组件和/或子系统使用的缓冲器的大小的能力,能够导致超出通过PCD组件/子系统的传统电压/频率控制获得的功率节省之外的相当大的功率节省。另外,在传统的基于电压/频率的功率控制方法不能提供功率节省时(例如,在由于一个不活动组件与活动组件共享电源轨而不能减小该不活动组件的电压时),动态地设定缓冲器的大小能够提供功率节省。因此,当传统的电压/频率功率节省方法无效时,用于动态地设定缓冲器或缓冲存储器的大小的本系统和方法提供了用于增强功率节省或实现功率节省的成本高效的能力。
本文描述的用于数据路径感知热管理的系统和方法或系统和方法的部分可以用硬件或软件来实现。如果以硬件实现,则系统或系统的部分可包括本领域中公知的以下技术中的任何一种或其组合:传感器、分立电子组件、集成电路、具有适当配置的半导体器件和电阻元件的专用集成电路、等等。这些硬件设备中的任何一个,无论是与其他设备或其他组件(例如存储器)一起作用还是单独的,还可以形成或包括用于执行所公开方法的各种操作或步骤的组件或单元。
当本文描述的系统或方法以软件实现或部分实现时,软件部分可用于执行本文所述的方法。用于表示各种元素的软件和数据可以存储在存储器中,并由合适的指令执行系统(例如微处理器)执行。该软件可以包括用于实现逻辑功能的可执行指令的有序列表,并且可以体现在由指令执行系统、装置或设备(诸如单核或多核处理器或包含处理器的系统)使用或与其结合使用的任何“处理器可读介质”中。这些系统通常将访问来自指令执行系统、装置或设备的指令并执行指令。
图1是示出便携式计算设备(PCD)的示例性实施例的功能框图,在该PCD中能够实现用于数据路径感知热管理的系统和方法。如图所示,PCD 100包括片上系统(“SoC”)102,其包括耦合在一起的多核中央处理单元(“CPU”)110和模拟信号处理器128。CPU 110可以包括多个核心,包括第零核心122、第一核心124,直到并包括第N核心126。此外,如本领域的普通技术人员所理解的,代替CPU 110,也可以使用数字信号处理器(“DSP”)。如将理解的,核心122、124、126可以被实现为执行一个或多个指令或任务,诸如由PCD 100运行的应用程序的指令或任务。还将理解的是,这样的指令或任务可以代替地或者可以另外地,由一个或多个另外的处理组件(诸如图1中所示的GPU 182)执行或者在其上执行。
在一个实施例中,监控模块114可以被实现为在操作期间与由PCD 100的各种组件实现的先进先出(FIFO)缓冲器(图1中未示出)进行通信,以及与SoC 102的其他组件(诸如CPU 110或GPU 182等)进行通信。监控模块114还可以在一些实施例中确定将调整各种FIFO中的哪一个的大小,以及将FIFO的大小调整到何种程度,如在下文中描述的那样。尽管在图1中为了方便而示出为SoC 102上的单个组件,但在一些实施例中,监控模块114可以包括多个组件,其中的一个、一些或全部可以不位于SoC 102上。在本公开内容中,监控模块114不必是图1中所示的组件,并且在一些实施例中,监控模块114可以用诸如存储在存储器112中的可执行指令、代码和/或参数的软件来实现。
如图1所示,显示控制器129和触摸屏控制器130耦合到CPU 110。SoC 102外部的触摸屏显示器132耦合到显示控制器131和触摸屏控制器130。同样,尽管在图1中示出为位于SoC 102上的单个组件,但是在一些实施例中,显示控制器131或触摸屏控制器130都可以包括多个组件,其中的一个或多个组件可以不位于SoC 102上。
PCD 100可以进一步包括视频编码器134,例如相位交替线(“PAL”)编码器、顺序存储彩电制式(“SECAM”)编码器、国家电视系统委员会(“NTSC”)编码器或任何其他类型的视频编码器134。视频编码器134耦合到CPU 110。视频放大器136耦合到视频编码器134和触摸屏显示器132。视频端口138耦合到视频放大器136。如图1所示,通用串行总线(“USB”)控制器140耦合到CPU 110。另外,USB端口142耦合到USB控制器140。存储器112和用户身份模块(SIM)卡146也可以耦合到CPU 110。此外,如图1所示,数码相机148可以耦合到SoC 102的CPU 110。在示例性方面,数码相机148是电荷耦合器件(“CCD”)相机或互补金属氧化物半导体(“CMOS”)相机。
如在图1中进一步所示,立体声音频编解码器150可以耦合到模拟信号处理器126。此外,音频放大器152可以耦合到立体声音频编解码器150。在示例性方面,第一立体声扬声器154和第二立体声扬声器156耦合到音频放大器152。图1示出了麦克风放大器158也可以耦合到立体声音频编解码器150。另外,麦克风160可以耦合到麦克风放大器158。在特定方面,调频(“FM”)无线电调谐器162可以耦合到立体声音频编解码器150。另外,FM天线164耦合到FM无线电调谐器162。此外,立体声耳机166可以耦合到立体声音频编解码器150。
图1进一步指示射频(“RF”)收发机168可以耦合到模拟信号处理器128。RF开关170可以耦合到RF收发机168和RF天线172。如图1所示,键盘174可以耦合到模拟信号处理器128。另外,具有麦克风的单声道耳机176可以耦合到模拟信号处理器128。此外,振动器设备178可以耦合到模拟信号处理器128。图1还示出电源188(例如电池)通过PMIC 180耦合到SoC 102。在特定方面,电源包括可再充电DC电池或源自连接到交流(“AC”)电源的AC变DC变压器的DC电源。
CPU 110还可以耦合到一个或多个内部片上热传感器157A、157B以及一个或多个外部片外热传感器157C。片上热传感器157A可以包括一个或多个正比于绝对温度(“PTAT”)温度传感器,PTAT温度传感器基于垂直PNP结构,并且通常专用于互补金属氧化物半导体(“CMOS”)超大规模集成(“VLSI”)电路。片外热传感器157C可以包括一个或多个热敏电阻或其他期望的传感器。热传感器157C可以产生压降,压降通过模数转换器(“ADC”)控制器103转换为数字信号。然而,可以使用其他类型的热传感器157A、157B、157C而不脱离本发明的范围。
在图1所示的实施例中,触摸屏显示器132、视频端口138、USB端口142、相机148、第一立体声扬声器154、第二立体声扬声器156、麦克风160、FM天线164、立体声耳机166、RF开关170、RF天线172、键盘174、单声道耳机176、振动器178、电源188、PMIC 180和热传感器157C在SoC102的外部。
如上所述,在特定方面,可以通过存储在存储器112中的、可以形成监控模块114或者本文讨论其他组件的可执行指令、代码和/或参数,来实现本文描述的一个或多个方法步骤。除了ADC控制器103之外,形成监控模块114的指令还可以由CPU 110、模拟信号处理器128或另一处理器执行,以执行本文所述的方法。此外,CPU 110、模拟信号处理器128、存储器112、存储在其中的指令或其组合可以用作用于执行本文所述的一个或多个方法步骤的单元。
图2是示出可以在PCD 100中实现的SoC 102中的示例性组件的方框图。在一个实施例中,PCD 100可以是无线电话的形式。图2用于说明性目的,并且示出了示例性PCD100的特定硬件组件的示例性布置,这些硬件组件以方框形式示出并且经由诸如互连或总线270的通信路径彼此电耦合。
总线270可以包括经由一个或多个有线或无线连接的多个通信路径。取决于实施方式,总线270可以包括为了简化而省略的额外元件,例如控制器、驱动器、中继器和接收机,以实现通信。此外,如果需要,总线270可以包括地址、控制和/或数据连接,以实现图2所示的各种组件和/或SoC102和/或PCD 100的额外组件之间的适当通信。在一个实施例中,总线270可以包括片上网络(NOC)总线270。
如图2所示,SoC 102可以包括多个处理器或核心,包括CPU_0 222、CPU_1 224、CPU_2 226和CPU_3 228(统称为CPU 222-228)。尽管示出了四个CPU 222-228,但是在其他实施例中,SoC102可以具有更多或更少的CPU 222-228和/或CPU 222-228可以不同于图2所示的进行布置。此外,SoC 102可以具有与图2中所示的架构不同的处理组件架构,诸如“大-小”架构,其中每个CPU 222-228包括两个不同大小的独立处理组件。本公开内容同样地适用于所有这样的结构变型。
同样如图2所示,SoC 102还可以包括用于处理或执行与图形相关的工作负荷(诸如将图形信息渲染到用户显示器232)的单独GPU 282。类似地,SoC 102可以包括用于编码或解码视频文件的视频编码器234。虽然未示出,但SoC 102还可以包括用于编码或解码音频文件和/或视频文件的音频部分的单独的音频编码器。SoC 102还可以包括图2中示为相机248的一个或多个相机。类似地,SoC 102可以包括用来允许PCD 100与其他计算机设备和系统之间的通信的一个或多个组件。这样的通信组件可以包括调制解调器260和/或广域LAN(WLAN)262。
SoC 102还将包括一个或多个子系统240以支持上面列出的组件和/或执行SoC102或PCD 100的其他功能。如将理解的,这些子系统(为了方便起见被示为单个子系统240)可以包括被配置为结合SoC 102的上述组件工作或独立于SoC 102的上述组件工作的各种组件或逻辑。例如,在一个实施例中,子系统240可以包括用于处理SoC 102的音频数据的低功率音频子系统(LPASS)。类似地,在一个实施例中,子系统240可以包括用于处理SoC 102的视频数据(诸如要由视频编码器234编码的视频数据和/或要由GPU 282渲染的视频数据)的视频子系统。SoC 102可以在各种实施例中包括比图示的子系统240更多的子系统。
最后,在图2所示的实施例中,SoC 102包括一个或多个缓冲器(250A-250I)。缓冲器250A-250I允许数据在被每个缓冲器250A-250I所耦合的图2所示的相应组件或子系统读取之前,对数据进行缓冲。如将理解的,缓冲器250A-250I可以实现为任何期望的缓冲器或存储器结构(例如,除了SRAM和DRAM之外的任何存储器类型),诸如先进先出(FIFO)缓冲器。为了方便起见,缓冲器在下面讨论的示例性实施例中被示出为FIFO 250A-250I。然而,下面的讨论和本公开内容同样适用于用于缓冲的方法的任何储存器或存储器类型。如同样将被理解的,图2中的单独的FIFO 250A-250I的表示是说明性的。在其他实施例中,FIFO 250A-250I可以不是SoC 102的物理上分离的缓冲器或组件。例如,FIFO 250A-250I可以不与组件分离,而相反地可以是FIFO 250A-250I为之提供缓冲的组件的一部分。在这样的实施例中,诸如FIFO 250A的特定缓冲器可被认为是FIFO 250A为之提供缓冲的组件(子系统240)的一部分-即在图2中表示子系统240的框内。在其他实施例中,FIFO 250A-250I可以被实现为存储寄存器序列或单个存储器中的地址序列,其中每个存储寄存器序列或地址序列被指定用作用于特定组件的FIFO 250A-250I。
另外,如FIFO 250C和FIFO 250D所示,SoC 102的一个或多个组件可以共享缓冲器,但是在一些实施例中,每个组件将具有其自己的缓冲器。如将理解的,SoC 102可以具有比图2中所示的更多或更少的组件和子系统,和/或组件或子系统的空间布置可以与图2中所示的说明性布置不同地被布置。
转到图3,例示了示出用于动态FIFO缓冲器大小设定的系统300的示例性实施例的各方面的方框图。系统300可以在具有图2所示的SoC 102的示例性组件200的SoC 102上实现。另外,系统300的SoC 102可以是图1中所示的PCD 100的SoC 102。如图3所示,SoC 102包括具有多个处理组件(例如核心222、224、230)的CPU 110,该多个处理组件在一个实施例中可以对应于图2的CPU 222-228。CPU 110电耦合到通信路径,诸如互连或总线270,诸如上面针对图2所描述的总线270。SoC 102还可以包括电耦合到总线270的GPU 282、调制解调器260和相机248。
系统300包括与总线270通信的存储器控制器308,存储器控制器308被配置为控制在SoC 102上或耦合到SoC 102的存储器,包括系统存储器112(图1)和FIFO 250A-250I(图2)的特定方面。虽然未示出,但系统300还可以包括用于SoC 102的组件的各种驱动器,其包含关于SoC 102的组件的配置和操作信息。这些驱动器可以分布在特定驱动器所应用的各种组件中和/与之共处一处。
系统300还包括与总线270通信的监控模块114。在一个实施例中,监控模块114可以操作以确定何时调整一个或多个FIFO 250A-250I(图2)的大小和/或确定一个或多个FIFO 250A-250I的大小调整量。虽然在图2中示出为SoC 102上的单个组件,但在一些实施例中,监控模块114可以包括多个组件,和/或本文讨论的监控模块114的功能可以分布在SoC 102的各种组件中。在其他实施例中,监控模块114可以根本不是如图2所示的组件,而是作为替代地,监控模块114可以用诸如存储在SoC 102的存储器中的可执行指令、代码和/或参数的软件来实现。
不管如何实施,为了做出关于何时和/或如何调整缓冲器大小的确定,监控模块114可以从各种组件接收或获得信息,以确定或了解PCD 100的使用情况。监控模块114可以类似地从各种组件接收或获得信息,以确定或了解从第一使用情况到第二使用情况的变化,该变化将会调节对一个或多个缓冲器的大小调整。在一个实施例中,使用情况是用于针对PCD 100正在被怎样使用进行分类的方法或方式。使用情况提供了关于在该使用情况期间PCD 100或SoC 102的各种组件的活动级别或预期活动级别的信息(或可以由其定义的信息)。
示例性使用情况可以包括游戏、视频回放、通信(诸如发短信或电话呼叫)、计算活动、相机(诸如拍摄照片);拍摄视频(其可以是相机使用情况的一个子集或一种单独的使用情况);音乐(其可以包括播放保存到PCD 100的音乐文件和/或到PCD 100的流媒体音乐);浏览互联网;备份PCD 100;启动(诸如当PCD 100在被关闭后加电时);默认(其可以是当其他使用情况不适用时的默认使用情况);或其他使用情况。另外,在一些实施例中,可以基于在一段时间内PCD 100被怎样使用,来定义或创建新的使用情况。在这样的实施例中,新的使用情况可以由监控模块114定义或创建。
确定在特定时间哪个使用情况适用于PCD 100可以是基于关于由PCD 100正在执行或将要由PCD 100执行的应用程序或程序的知识或信息的。这些知识或信息可以是直接的(诸如了解哪些应用程序、指令或代码正在SoC 102上执行的软件)或者可以被推断(诸如基于用户输入)。在一些实施方式中,确定在特定时间哪个使用情况适用于PCD 100可以另外或替代地基于关于PCD 100的当前状态信息,诸如PCD 100或SoC 102中的一个或多个组件的活动级别(诸如GPU 282、相机248、调制解调器260、视频编码器232等)。在其他实施方式中,在特定时间适用于PCD 100的使用情况可以是基于特定触发事件的,诸如PCD 100或SoC 102从断电状态重新启动。
不管如何被确定或了解,每个使用情况都将与SoC 102和/或PCD 100的一个或多个组件的预期或期望的活动级别相关联。例如,“相机”使用情况可以是如下情况:相机和/或相机应用程序已经由PCD 100的用户启动。对于这样的使用情况,可以预期相机(诸如图2和图3的相机248)和显示器(诸如图2的显示器232)以及任何支持子系统将是活动的。还可以预期,对于“相机”使用情况,调制解调器260、GPU 282、视频编码器234以及SoC 102的其他组件(图2)可以是不活动的,或与在其他使用情况中相比活动程度低。
作为另一示例,“通信”使用情况可以是如下情况:调制解调器和/或使用调制解调器的通信应用程序已经由PDC 100的用户启动。图4A是图2的方框图,其中针对示例性“通信”使用情况示出了用于动态FIFO缓冲器大小设定的系统和方法的操作示例。对于这样的使用情况,可以预期调制解调器260和任何支持子系统将是活动的,如图4A的阴影区域所表示的。用于如调制解调器260的这种活动组件的缓冲器(FIFO 250H)的大小将设定为适应预期的活动级别-即相对较大的缓冲器深度。
相反,可以预期SoC 102的其余组件(无阴影)可以是不活动的,或者相对于该“通信”使用情况而言活动程度较低。用于如相机248和GPU 282的这种不活动组件的缓冲器(FIFO 250G,FIFO 250E)的大小将设定为适应预期的不活动性-即较小的缓冲器深度。因此,对于这种使用情况下预期活动程度较低的组件,可以减小耦合到这些组件的缓冲器的大小或深度,在不影响PCD的性能的情况下防止或减小泄漏功率。
注意,对于“通信”使用情况,取决于通信的类型,可能不使用调制解调器260的全带宽。应该理解,即使没有使用调制解调器260的全带宽,调制解调器260也可以与其他组件(例如,图4A中未示出的存储器控制器)同步以用于服务质量目的、防止延迟等。换言之,即使调制解调器260正在使用其全带宽,也可以迫使调制解调器260以较高频率工作。
在这种使用情况下,控制调制解调器260的电压或频率的传统功耗技术将不会有效,因为调制解调器260与其他组件同步和/或与其他组件共享电源轨。在那种情况下,FIFO250H的大小可以被设定为相对较大,但仍可以小于全大小或深度(例如减小25%)。FIFO250H的这种动态大小设定允许其适应调制解调器260的预期活动水平,同时仍提供功率节省。以此方式,在传统的基于电压/频率的功率降低方法可能不适用或无效的情况下,FIFO250H的动态大小设定可以提供功率节省而不会影响SoC 102或PCD 100的性能。
又一个示例是用户正在PCD 100上执行游戏应用程序的“游戏”使用情况。图4B是图2的方框图,其中针对示例性“游戏”使用情况示出了用于动态FIFO缓冲器大小设定的系统和方法的操作示例。对于这样的使用情况,可以预期GPU 282和显示器232可以是活动程度最高的,如图2C的阴影区域所反映的。用于如GPU 282和显示器232的这些活动组件的缓冲器(FIFO 250E,FIFO 250F)的大小将设定为适应预期的活动级别-即相对较大的缓冲器深度。
对于这样的“游戏”使用情况,可以预期存储器控制器308、CPU 222-228、调制解调器260和视频编码器234将会是活动程度适中的。用于这些活动程度适中的组件的缓冲器(FIFO 250C、250D、250H)的大小将设定为适应预期的适中活动级别-即与活动组件相比在较小的缓冲器深度处。最后,在“游戏”使用情况中,预期相机248将不活动。用于这种不活动组件的缓冲器(FIFO 250G)的大小将设定为适应预期的不活动性-即与适中和活动组件相比在更小的缓冲器深度处。FIFO 250C、205F、250H和/或250G H的这种动态大小设定-尤其是用于SoC 102的不活动或活动程度较低的组件的缓冲器大小或深度的减小-允许防止或减小泄漏功率而不影响PCD 100或SoC 102的性能。
如该图4B的“游戏”使用情况示例所示,SoC 102的各种组件的活动级别不一定被分类为活动/不活动的。相反,用于一个或多个使用情况的活动级别可能是相对的,或者是变化的,具有取决于组件的多个活动级别或活动程度。请注意,在此“游戏”使用情况示例中,也可以作为传统功率控制或节省方法的一部分,来使活动程度较低或不活动的组件的电压和/或频率降低。在这种“游戏”使用情况示例中的缓冲器的动态大小设定提供了超出传统的基于电压/频率的功率降低方法可获得的功率节省/功率降低之外的额外功率节省/功率降低。
对于组件具有相对或可变活动程度的实施方式或使用情况,关于状态或活动级别和/或缓冲器大小的信息或数据可以存储或包含在监控模块114中或监控模块114访问的存储器中或SoC 102的某个其他组件中。在一个实施例中,这样的信息可以被存储在诸如图5A的状态表500A的表格中。状态表500A可以包括表示针对每个使用情况的SoC 102的每个组件的预期活动级别或状态的级别或状态,诸如F0、F1、F2、F3等。状态表500A是说明性的,并且在各种实施例中可以包括更多或更少的使用情况、更多或更少的组件和/或更多或更少的活动级别/状态。
在一些实施例中,状态表500A可以是固定的,而在其他实施例中,监控模块114或另一组件可以具有修改状态表500A以改变一个或多个活动级别值、添加或删除使用情况、添加或删除组件等的能力。另外,将理解的是,与如图5A所示的单个状态表500A不同,状态表500A中的信息可以替代地分布到多个不同的表中,诸如用于SoC 102的每个组件的单独状态表(未示出)。状态表500A可以是查找表。在一个实施例中,状态表500A可以被存储或包含在监控模块114中,或者可以被存储在存储器中并由监控模块114访问,诸如当监控模块114以软件实现时。
作为关于使用情况的信息的补充或替代,监控模块114可以从缓冲器自身(诸如图2的FIFO 250A-250I)接收或获得信息,该信息可以指示缓冲器需要调整大小,或者可以用于确定调整一个或多个缓冲器的大小。例如,当FIFO 250A-250I已经开始填满数据或者包含高于阈值级别的数据时,FIFO 250A-250I可以发送指示其空间用尽的信号,该信号可以由监控模块114接收。
回到图3,作为确定或了解使用情况的一部分,或者作为在了解使用情况之后的单独确定的一部分,监控模块114可以包含或可以接收或获得信息以确定一个或多个缓冲器的大小调整量。例如,取决于组件的活动级别或预期活动级别或“状态”,对于特定使用情况,监控模块114可以确定对用于该组件的缓冲器的大小调整量。
在一个实施例中,该确定可以是二值的-即,如果组件是“活动的”,则将缓冲器大小设定为深度“A”,而如果组件是“不活动的”,则将缓冲器大小设定为深度“B”。在本实施例的一些实施方式中,深度“A”和“B”对于SoC 102的每个组件可以是固定值–即,每个活动组件将其缓冲器大小调整为深度“A”,而每个不活动组件将其缓冲器大小调整为深度“B”,其中,“A”和“B”的值对于所有组件是相同的。在这样的实施方式中,“B”的值可以是“A”的一部分,诸如深度“A”的50%。在该实施例的其它实施方式中,“A”和“B”的值可以随着组件而变化。
在一不同实施例中,对缓冲器大小调整量的确定可以不是二值的-即缓冲器大小调整量可以取决于组件的相对活动级别。在这样的实施例中,可以将活动级别与缓冲器大小的关系存储在诸如图5B的查找表(LUT)500B的表格中。如图5B的示例性LUT 500所示,针对特定使用情况的组件的每个活动级别或状态导致缓冲器大小的不同减小(例如图2的FIFO 250A-250I中的一个或多个FIFO的减小)。
在一些实施例中,SoC 102的所有组件的缓冲器大小信息可以由诸如LUT 500B的单个表来管理。在其他实施例中,SoC 102的每个组件可以具有单独的LUT 500B,并且缓冲器大小减小值可以针对每个组件而变化。例如,相机248的状态F1可以导致缓冲器大小减小50%,而GPU 282的状态F1可以导致如LUT 500B中所示的减小25%。LUT 500B可以存储在监控模块114中,或者可以存储在存储器中并由监控模块114访问,诸如当监控模块114以软件实现时。在一些实施例中,LUT 500B可以是固定的,而在其他实施例中,监控模块114或另一个组件可以具有修改LUT 500B以添加或删除活动级别、改变针对一个或多个活动级别的缓冲器大小减小值等的能力。
参考图6,示出了在用于另一“游戏”使用情况的动态FIFO缓冲器大小设定的系统和方法的操作期间SoC 102的示例性组件的方框图。对于图6的“游戏”使用情况,预期存储器控制器308、GPU 282和CPU 222将是活动程度最高的组件,如图6的阴影区域所反映的。用于这些活动组件的缓冲器FIFO 250E(用于GPU 282)、FIFO 250D(用于CPU 222)和FIFO250J(用于存储器控制器308)的大小将被设定为适应预期活动级别-即相对较大的缓冲器深度。这在图6中用关于将针对活动级别F0来设定FIFO 250D、250E和250J的大小的指示来反映。如图5B的LUT 500B所示,该示例的活动级别F0对应于0%的缓冲器大小减小-即全/最大大小的缓冲器。
继续这个“游戏”使用情况示例,预期存储器控制器308将是下一个活动程度最高的组件。调制解调器的缓冲器FIFO 250H的大小将被设定为适应该预期活动级别,在图6中用关于将针对活动级别F1来设定FIFO 250H的大小的指示来反映。如图5B的LUT 500B所示,这个示例的活动级别F1对应于25%的缓冲器大小减小-即被略微减小的缓冲器大小。
类似地,预计相机248对于这种“游戏”使用情况活动程度将会更低,并且在图6中针对活动级别F2来设定用于相机248的FIFO 250G的大小。该示例的活动级别F2对应于50%的缓冲器大小减小-即比状态F0或F1更小的缓冲器深度。CPU 222-228、调制解调器260和视频编码器234活动程度将会是适中的。最后,预期视频编码器234将在该示例性使用情况中是活动程度最低的组件,并且针对活动级别F3来设定用于视频编码器234的FIFO 250B的大小,活动级别F3对应于缓冲器大小或深度减小75%。
因此,对于这种使用情况下预期活动程度较低的组件,可以减小耦合到这些组件的缓冲器的大小或深度,防止或减小泄漏功率而不影响PCD的性能。同样,在这个额外“游戏”使用情况示例中的缓冲器的动态大小设定提供了超出从应用于SoC 102的不活动组件的传统的基于电压/频率的功率降低方法可以获得的功率节省/功率降低之外的额外功率节省/功率降低。
图6提供了可以如何基于使用情况或者使用情况的改变来动态地改变缓冲器的说明性示例。如将理解的,不同的使用情况可以导致不同于图6中所示的缓冲器大小设定。另外,在一些实施例中,用于两个不同组件的缓冲器的相同状态或活动级别的指定(诸如针对用于存储器控制器3078的FIFO 250J和用于GPU 282的FIFO 250E的F0)可以并不指示缓冲器大小设定相同。换句话说,存储器控制器308的缓冲器(FIFO 250J)的状态F0可以对应于一个缓冲器大小或深度,而GPU 282的缓冲器(FIFO 250E)的状态F0可以对应于一不同的大小或深度。
参考图7A,示出了具有第一大小或深度的示例性FIFO 700A的各方面的方框图。FIFO 700A可以是诸如上面讨论的FIFO 250A-250J的缓冲器。在图7A的示例中,FIFO 700A处于最满/最大大小或缓冲器深度,并且由多个寄存器或存储器地址(本文称为部分702A-702F)组成。如图7A所示,FIFO 700A具有写入侧704和读取侧706,写入侧704中可以放置要缓冲的数据,耦合到FIFO 770A的组件可以从读取侧706读取被缓冲的数据。另外,存在反映“中”FIFO 770A的中点708-即如下位置:在中点708一侧的部分702A-702C的数量等于在中点708另一侧的部分702D-702F的数量。
图7B示出了在已经被减小到第二大小或深度(FIFO 700B)之后的图7B的FIFO700A。如图7B所示,根据本文公开的系统和方法来减小缓冲器的大小或深度的一种机制是:进行等待直到写指针710和读指针712两者都在中点708的同一侧,并且随后关闭在中点708另一侧上的一个或多个部分702D-702E或者对其进行电源门控。
在图7B的示例中,通过进行等待直到写指针710和读指针712位于中点708的左侧或读取侧706,来实现缓冲器大小或深度50%减小。然后可以操作单个电源开关以关闭部分702D-702F(即,FIFO 700B的右半部分)以将FIFO 770B减少到图7A的FIFO 770A的大小或深度的一半,如部分702D-702F上的阴影所示。如将理解的,可以使用类似的机制来实现期望的缓冲器大小或深度的任何减小(例如25%、50%、75%、85%等)。还将理解的是,在稍后的时间点,可以通过电源开关操作以重新开启部分702D-702F而使FIFO 770B返回到较大的大小。
在其他实施方式中,通过实现额外的电源开关或电源门控,相同的FIFO 700B也可以被减小到不同的大小或深度。例如,用于关闭第一部分702F的第一电源开关可以导致FIFO 700B的缓冲器大小或深度减小25%。同样用于关闭第二部分702E的第二电源开关可以导致FIFO 700B的缓冲器大小或深度减小50%。在稍后的时间点,可以通过电源开关操作以重新开启部分702D-702F中的一个或多个而使FIFO 770B返回到较大的大小,以将FIFO770B放大到期望的大小或深度。
在一些实施例中,可能期望提供多个电源开关以允许特定FIFO 700B的缓冲器大小或深度的可变减小。在其它实施例中,可能不能保证可变地控制特定FIFO 700B的缓冲器大小或深度所需的每个电源开关和/或控制电路的附加成本、功率等。在这样的实施例中,可能更期望用于允许单个大小减小(诸如,减小例如50%)的单个电源开关。至于是否期望缓冲器大小或深度的这种可变控制,则可以取决于各种因素,包括将使用缓冲器的SoC 102的组件,减小特定缓冲器的大小所得到的预期功率节省,等等。图7A-7B示出了用于动态地调整缓冲器大小的一种机制。
图8是示出用于计算设备中的动态地控制缓冲器大小的示例性方法800的操作的逻辑流程图。方法800在块802中开始,确定计算设备(例如PCD 100)的第一使用情况。第一使用情况可以是多个使用情况中的一个。在一些实施例中,该多个使用情况可以是预定义和设置的,而在其他实施例中,该多个使用情况可以随时间变化或被改变。块802的确定可以是对于针对PCD 100当前被怎样操作而言适用的特定使用情况的识别。在一些实施例中,如果PCD 100的当前操作不匹配其他预定义使用情况,则块802的确定可以是默认使用情况。
在一个实施例(参见图3)中,块802中的对第一使用情况的确定可以由监控模块114做出,并且这种实施例中的监控模块114可以从各个组件接收或获得信息以确定或了解针对PCD 100当前被怎样使用而言哪些使用情况适用。这种接收到的信息可以包括PCD 100或SoC 102中的一个或多个组件(例如图2和/或图3的GPU 282、相机248、调制解调器260、视频编码器232等)的当前活动级别。
块802中的确定可以额外地或可替换地基于关于由PCD 100正在执行或者将要由PCD 100执行的应用程序或程序的知识或信息。这样的知识或信息可以是直接的(诸如了解在SoC102上正在执行哪些应用、指令或代码的软件)或者可以被推断(诸如基于用户输入)。块802中的确定还可以额外地或可替换地基于触发事件,诸如PCD 100或SoC 102从断电状态重新启动。
方法800继续到块804,在块804,获得针对第一使用情况的缓冲器大小或深度信息。缓冲器可以是以上针对图4A-4B和图6所讨论的FIFO 250A-250J。取决于在块802中确定的使用情况,可以预期SoC102的各个组件有着或多或少的活动程度。在块804中,针对第一使用情况获得或确定用于与SoC 102的各个组件相关联的每个FIFO 250A-250J的缓冲器大小或深度的值。
在一些实施例中,在块804中获得缓冲器大小信息可以包括:从一个或多个表中读取缓冲器大小信息。例如,可以从诸如图5A的状态表500A的表中,针对所确定的使用情况获得一个或多个组件的预期状态或活动级别。如上所述,与单个表500A不同,在一些实施方式中,可以针对SoC 102的每个组件保存不同的状态表(未示出)。另外或可替换地,可以从诸如图5B的LUT 500B的表中获得用于一个或多个缓冲器(在一个实施例中每个缓冲器与一个组件相关联)的大小减小值。如将理解的,可以实现除表格以外的用于获得针对第一使用情况的缓冲器大小或深度信息的其他方式。另外,在一些实施例中,块804可以不是单独的步骤,而是可以是块802的确定的一部分。
方法800继续到块806,在块806,基于所确定的第一使用情况和所获得的缓冲器大小信息,为与计算设备的一个或多个组件相关联的缓冲器设置第一缓冲器大小。缓冲器可以是以上针对图4A-4B和图6所讨论的FIFO 250A-250J。取决于在块802中确定的使用情况,可以预期SoC102的各个组件有着或多或少的活动程度。在块806中,根据所确定的使用情况和所获得的缓冲器大小信息,按照需要来调整与SoC 102的各个组件相关联的每个FIFO250A-250J的缓冲器大小或深度。
在一个实施例中,这可以包括:减少用于预期活动程度较低或不活动的组件的缓冲器大小或深度,和/或增加用于预期活动程度更高的组件的缓冲器大小或深度。如上所述,缓冲器大小或深度增加或减小的量可以因组件和/或使用情况而异。可以通过任何期望的机制来实现缓冲器大小调整,例如以上针对图7A-7B所讨论的机制。此外,可以实现这样的缓冲器大小调整,作为PCD 100或SoC 102正在实施的任何其他功率减轻或控制策略的补充或者替代。
在块808中,为计算设备确定与第一使用情况不同的第二使用情况。响应于改变PCD100的组件中的状况和/或PCD100正在被怎样使用的改变,可以以与上面针对块802所讨论的确定相同的方式来做出块808的确定。举例来说,PCD 100可以从“游戏”使用情况改变为“通信”使用情况,例如当用户停止在PCD 100上玩游戏以在PCD 100上发起或接收电话呼叫时。在块808中,诸如通过监控模块114来检测或确定PCD 100的使用情况的这种改变和/或操作改变。如上所述,监控模块114可以用软件来实现。
块808中的确定可以基于来自各种组件的信息来做出,以确定或了解PCD 100的使用/状态已改变,并确定针对PCD 100当前正在被怎样使用而言哪个使用情况适用。这种接收到的信息可以包括PCD 100或SoC 102中的一个或多个组件(例如图2和/或图3的GPU282、相机248、调制解调器260、视频编码器232等)的当前活动级别。块808中的确定可以额外地或可替换地基于关于PCD 100正在执行的应用程序或程序、已经停止在PCD 100上执行的应用程序或程序、和/或将要由PCD 100执行的应用程序或程序的知识或信息。这样的知识或信息可以是直接的(诸如了解在SoC102上正在执行哪些应用程序、指令或代码的软件)或者可以被推断(诸如基于用户输入)。
块808中的确定还可以额外地或可替换地基于触发事件,诸如PCD 100或SoC 102从先前的断电状态重新启动。如同以上块802,块808的确定可以是对与第一使用情况不同的、针对PCD 100当前被怎样操作的特定第二使用情况的识别。在一些实施例中,在PCD 100的当前操作不匹配其他预定义使用情况的情况下,块806的确定可以是默认使用情况。
方法800继续到块810,其中,获得针对第二使用情况的缓冲器大小或深度信息。缓冲器可以是以上针对图4A-4B和图6所讨论的FIFO 250A-250J。取决于块808中确定的第二使用情况,可以预期SoC102的各个组件与其针对第一使用情况的活动程度相比有着更高或更低的活动程度。在块810中,针对第二使用情况获得或确定用于与SoC 102的各个组件相关联的每个FIFO 250A-250J的缓冲器大小或深度的新值。预期的是,对于一个或多个缓冲器,缓冲器大小或深度的这些新的第二值可以不同于针对第一使用情况获得或设置的缓冲器大小或深度的第一值。
在一些实施例中,在块810中获得新的或第二缓冲器大小信息可以包括:从诸如图5A的状态表500A和/或图5B的LUT 500的一个或多个表中读取缓冲器大小信息,如针对块804所讨论的。如将理解的,可以实现除表格以外获得针对第二使用情况的缓冲器大小或深度信息的其他方式。另外,在一些实施例中,块810可以不是单独的步骤,而可以是块808的确定的一部分。
在块812中,基于所确定的第二使用情况和针对第二使用情况所获得的缓冲器大小信息,为与计算设备的一个或多个组件相关联的缓冲器设置第二缓冲器大小。缓冲器可以同样是以上针对图4A-4B和图6讨论的FIFO250A-250J。取决于在块808中确定的使用情况,可以预期SoC 102的各个组件可以有着或多或少的活动程度。在块812中,根据所确定的第二使用情况,按照需要来调整与SoC 102的各个组件相关联的每个FIFO 250A-250J的缓冲器大小或深度。
在一个实施例中,这可以包括:在第二使用情况下减少用于预期活动程度较低或不活动的组件的缓冲器大小或深度,和/或增加用于预期活动程度更高的组件的缓冲器大小或深度。如上所述,缓冲器大小或深度增加或减小的量可以因组件和/或使用情况而异。此外,可以实现这样的缓冲器大小调整,作为PCD 100或SoC 102正在实施的任何其他功率减轻或控制策略的补充或者替代。
方法800继续到可选块814,在块814,可在需要时更新用于计算设备的一个或多个组件的使用情况数据或信息。对于多个使用情况可能随时间改变的实施例,这些改变可以被追踪(例如通过监控模块114),并且可以在块814中时常进行。对使用情况信息的改变可以源自于在PCD 100的操作期间随时间收集的关于PCD 100被怎样使用的数据。块814中对使用情况信息的这种改变可以包括:删除使用情况、添加新的使用情况、改变针对某个使用情况的一个或多个组件的活动级别、改变一个或多个组件的特定活动级别的缓冲器大小或深度,或其任何组合。
对于多个使用情况是预先确定的并且可能不会改变的实施例,可以不执行或者可以仅部分地执行块814。例如,在一些实施例中,可以不添加或删除使用情况,但可以更新针对活动级别的活动级别值和/或缓冲器大小信息。方法800然后继续进行到监视PCD 100和/或SoC 102的组件的状态以确定使用情况的任何未来的或进一步的改变。在这样的未来改变的情况下,如上所述,块808、810、812和/或814可以针对第三使用情况、第四使用情况等重新迭代。
图8仅描述了用于在诸如PCD 100的计算设备中的动态缓冲器大小调整的方法800的一个示例性实施例。在其他实施例中,可以向方法800添加额外的块或步骤。类似地,在一些实施例中,可以组合或省略图8中所示的各个块或步骤,诸如例如将块802和804组合成一个预测/获得块或步骤,而不是图8中所示的两个单独的块。可替换地,可以将块804和806组合成一个获得/设置缓冲器大小块或步骤,而不是图8中所示的两个单独的块。方法800的这种变化在本公开内容的范围内。
另外,本说明书中描述的过程或过程流程中的某些步骤自然先于其他过程或过程流程,以使本发明如所描述的那样起作用。然而,如果这样的顺序或次序不改变功能,则本公开内容不限于所描述的步骤的顺序。此外,应认识到,在不脱离本公开内容的范围的情况下,一些步骤可以在其他步骤之前、之后或与之并行(基本上同时)执行。在一些情况下,在不脱离本公开内容的范围的情况下可以省略或不执行特定步骤。此外,诸如“此后”、“然后”、“下一个”、“随后”等的词语并不旨在限制这些步骤的顺序。这些词语仅用于指导读者阅读对示例性方法800的描述。
上面描述的各种操作和/或方法可以由各种硬件和/或软件组件和/或模块执行,并且这种组件和/或模块可以提供用于执行这样的操作和/或方法的单元。另外,例如,基于本说明书中的流程图和相关描述,编程的普通技术人员能够毫无困难地编写计算机代码或识别适当的硬件和/或电路以实现所公开的方法或系统。
因此,对于如何做出和使用所公开的系统或方法的充分理解而言,认为不需要公开特定的程序代码指令集合或详细的硬件设备。在上面的描述中并结合可以示出各种过程流程的附图,更详细地解释了要求保护的启用处理器的过程的创新功能。
在如上所指示的一个或多个示范性方面中,所描述的功能可以以硬件、软件、固件或其任何组合来实现。如果以软件实现,则可以将功能可以作为一个或多个指令或代码在计算机可读介质(例如非暂时性处理器可读介质)上进行存储或传送。计算机可读介质包括数据储存介质和通信介质,包括任何便于将程序从一个地方转移到另一个地方的介质。
储存介质可以是计算机或处理器能够访问的任何可用介质。示例性而非限制性地,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘储存设备、磁盘储存设备或其它磁储存设备或者能够用于以指令或数据结构的形式携带或存储所需程序代码并且能够被计算机访问的任何其它介质。本文所使用的磁盘和光盘包括紧致光盘(“CD”)、激光盘、光盘、数字多功能光盘(“DVD”)、软盘和蓝光盘,其中磁盘通常磁性地再现数据,而光盘通常利用激光光学地再现数据。上述的组合也包括在非暂时性计算机可读介质的范围内。
尽管已经详细说明和描述了选定的方面,但应理解的是,在不脱离由所附权利要求限定的本公开内容的范围的情况下,可以在此进行各种替换和更改。

Claims (30)

1.一种用于动态地控制便携式计算设备(“PCD”)中的计算设备中的缓冲器大小的方法,所述方法包括:
利用片上系统(“SoC”)的监控模块确定所述PCD的第一使用情况,所述第一使用情况为所述SoC的多个组件定义第一活动级别;
基于所述第一使用情况将多个缓冲器设置为第一缓冲器大小,其中:
所述多个缓冲器中的每一个缓冲器与所述SoC的所述多个组件中的一个组件相关联,
每个所述缓冲器的第一缓冲器大小是基于所述SoC的相关联组件的第一活动级别的;
利用所述监控模块确定所述PCD的不同于所述第一使用情况的第二使用情况,所述第二使用情况为所述SoC的所述多个组件定义第二活动级别;以及
基于所述第二使用情况将所述多个缓冲器中的至少一个缓冲器设置为第二缓冲器大小,其中,所述至少一个缓冲器的第二缓冲器大小是基于所述SoC的相关联组件的第二活动级别的,所述第二缓冲器大小不同于所述第一缓冲器大小。
2.根据权利要求1所述的方法,其中,基于所述第二使用情况将所述多个缓冲器中的至少一个缓冲器设置为第二缓冲器大小包括:
减小所述多个缓冲器中的所述至少一个缓冲器的缓冲器深度。
3.根据权利要求2所述的方法,其中,减小所述多个缓冲器中的所述至少一个缓冲器的缓冲器深度进一步包括:
将所述缓冲器深度减小取决于所述SoC的相关联组件的第二活动级别的一可变量。
4.根据权利要求1所述的方法,其中,与所述SoC的所述多个组件中的第一组件相关联的缓冲器的第一缓冲器大小不同于与所述SoC的所述多个组件中的第二组件相关联的缓冲器的第一缓冲器大小。
5.根据权利要求1所述的方法,其中,所述多个缓冲器包括先进先出(FIFO)缓冲器。
6.根据权利要求1所述的方法,其中:
基于所述第一使用情况将所述多个缓冲器设置为所述第一缓冲器大小进一步包括:针对所述第一使用情况获得用于所述多个缓冲器的第一大小信息,以及
基于所述第二使用情况将所述多个缓冲器中的至少一个缓冲器设置为第二缓冲器大小进一步包括:针对所述第二使用情况获得用于所述多个缓冲器的第二大小信息。
7.根据权利要求1所述的方法,进一步包括:
更新用于所述SoC的所述多个组件中的一个或多个组件的使用情况数据,其中,更新使用情况数据包括:添加新使用情况、删除所述多个使用情况中的一个使用情况、改变针对一个或多个使用情况的活动级别值、改变针对所述使用情况中的一个或多个使用情况的活动级别中的一个或多个活动级别的大小信息值、或其组合。
8.根据权利要求1所述的方法,还包括:
利用所述监控模块确定所述PCD的不同于第N-1使用情况的第N使用情况,其中,N是大于2的整数,所述第N使用情况为所述SoC的所述多个组件定义第N活动级别;以及
基于所述第N使用情况将所述多个缓冲器中的至少一个缓冲器设置为第N缓冲器大小,其中,所述至少一个缓冲器的第N缓冲器大小是基于所述SoC的相关联组件的第N活动级别的,所述第N缓冲器大小不同于第N-1缓冲器大小。
9.一种用于动态地控制便携式计算设备(“PCD”)中的计算设备中的缓冲器大小的计算机系统,所述系统包括:
所述PCD的片上系统(“SoC”)的多个组件;
所述SoC上的多个缓冲器,所述多个缓冲器中的每一个缓冲器与所述多个组件中的一个组件相关联;以及
所述SoC的监控模块,所述监控模块被配置为:
确定所述PCD的第一使用情况,所述第一使用情况为所述SoC的所述多个组件定义第一活动级别,
基于所述第一使用情况将所述多个缓冲器设置为第一缓冲器大小,每个所述缓冲器的第一缓冲器大小是基于所述SoC的相关联组件的第一活动级别的,
确定所述PCD的不同于所述第一使用情况的第二使用情况,所述第二使用情况为所述SoC的所述多个组件定义第二活动级别,以及
基于所述第二使用情况将所述多个缓冲器中的至少一个缓冲器设置为第二缓冲器大小,其中,所述至少一个缓冲器的第二缓冲器大小是基于所述SoC的相关联组件的第二活动级别的,所述第二缓冲器大小不同于所述第一缓冲器大小。
10.根据权利要求9所述的计算机系统,基于所述第二使用情况将所述多个缓冲器中的至少一个缓冲器设置为第二缓冲器大小包括:减小所述多个缓冲器中的所述至少一个缓冲器的缓冲器深度。
11.根据权利要求10所述的计算机系统,其中,减小所述多个缓冲器中的所述至少一个缓冲器的缓冲器深度进一步包括:将所述缓冲器深度减小取决于所述SoC的相关联组件的第二活动级别的一可变量。
12.根据权利要求9所述的计算机系统,其中,与所述SoC的所述多个组件中的第一组件相关联的缓冲器的第一缓冲器大小不同于与所述SoC的所述多个组件中的第二组件相关联的缓冲器的第一缓冲器大小。
13.根据权利要求9所述的计算机系统,其中,所述多个缓冲器包括先进先出(FIFO)缓冲器。
14.根据权利要求9所述的计算机系统,其中,所述监控模块还被配置为:
通过针对所述第一使用情况获得用于所述多个缓冲器的第一大小信息,来基于所述第一使用情况将所述多个缓冲器设置为所述第一缓冲器大小,以及
通过针对所述第二使用情况获得用于所述多个缓冲器的第二大小信息,来基于所述第二使用情况将所述多个缓冲器中的所述至少一个缓冲器设置为所述第二缓冲器大小。
15.根据权利要求14所述的计算机系统,其中,所述监控模块还被配置为:
更新用于所述SoC的所述多个组件中的一个或多个组件的使用情况数据,其中,更新使用情况数据包括:添加新使用情况、删除所述多个使用情况中的一个使用情况、改变针对一个或多个使用情况的活动级别值、改变针对所述使用情况中的一个或多个使用情况的活动级别中的一个或多个活动级别的大小信息值、或其组合。
16.根据权利要求9所述的计算机系统,其中,所述监控模块还被配置为:
确定所述PCD的不同于第N-1使用情况的第N使用情况,其中,N是大于2的整数,所述第N使用情况为所述SoC的所述多个组件定义第N活动级别;以及
基于所述第N使用情况将所述多个缓冲器中的至少一个缓冲器设置为第N缓冲器大小,其中,所述至少一个缓冲器的第N缓冲器大小是基于所述SoC的相关联组件的第N活动级别的,所述第N缓冲器大小不同于第N-1缓冲器大小。
17.一种用于动态地控制便携式计算设备(“PCD”)中的计算设备中的缓冲器大小的计算机系统,所述系统包括:
用于利用片上系统(“SoC”)的监控模块确定所述PCD的第一使用情况的单元,所述第一使用情况为所述SoC的多个组件定义第一活动级别;
用于基于所述第一使用情况将多个缓冲器设置为第一缓冲器大小的单元,其中
所述多个缓冲器中的每一个缓冲器与所述SoC的所述多个组件中的一个组件相关联,
每个所述缓冲器的第一缓冲器大小是基于所述SoC的相关联组件的第一活动级别的;
用于利用所述监控模块确定所述PCD的不同于所述第一使用情况的第二使用情况的单元,所述第二使用情况为所述SoC的所述多个组件定义第二活动级别;以及
用于基于所述第二使用情况将所述多个缓冲器中的至少一个缓冲器设置为第二缓冲器大小的单元,其中,所述至少一个缓冲器的第二缓冲器大小是基于所述SoC的相关联组件的第二活动级别的,所述第二缓冲器大小不同于所述第一缓冲器大小。
18.根据权利要求17所述的计算机系统,其中,用于基于所述第二使用情况将所述多个缓冲器中的至少一个缓冲器设置为第二缓冲器大小的单元包括:
用于减小所述多个缓冲器中的所述至少一个缓冲器的缓冲器深度的单元。
19.根据权利要求18所述的计算机系统,其中,用于减小所述多个缓冲器中的所述至少一个缓冲器的缓冲器深度的单元进一步包括:
用于将所述缓冲器深度减小取决于所述SoC的相关联组件的第二活动级别的一可变量的单元。
20.根据权利要求17所述的计算机系统,其中,与所述SoC的所述多个组件中的第一组件相关联的缓冲器的第一缓冲器大小不同于与所述SoC的所述多个组件中的第二组件相关联的缓冲器的第一缓冲器大小。
21.根据权利要求17所述的计算机系统,其中,所述多个缓冲器包括先进先出(FIFO)缓冲器。
22.根据权利要求17所述的计算机系统,其中:
用于基于所述第一使用情况将所述多个缓冲器设置为第一缓冲器大小的单元还包括:用于针对所述第一使用情况获得用于所述多个缓冲器的第一大小信息的单元,以及
用于基于所述第二使用情况将所述多个缓冲器中的至少一个缓冲器设置为第二缓冲器大小的单元还包括:用于针对所述第二使用情况获得用于所述多个缓冲器的第二大小信息的单元。
23.根据权利要求17所述的计算机系统,还包括:
用于更新用于所述SoC的所述多个组件中的一个或多个组件的使用情况数据的单元,其中,更新使用情况数据包括:添加新使用情况、删除所述多个使用情况中的一个使用情况、改变针对一个或多个使用情况的活动级别值、改变针对所述使用情况中的一个或多个使用情况的活动级别中的一个或多个活动级别的大小信息值、或其组合。
24.一种计算机程序产品,包括具有在其中体现的计算机可读程序代码的非暂时性计算机可用介质,所述计算机可读程序代码适于被执行以实现用于动态地控制便携式计算设备(“PCD”)中的计算设备中的缓冲器大小的方法,所述方法包括:
利用片上系统(“SoC”)的监控模块确定所述PCD的第一使用情况,所述第一使用情况为所述SoC的多个组件定义第一活动级别;
基于所述第一使用情况将多个缓冲器设置为第一缓冲器大小,其中:
所述多个缓冲器中的每一个缓冲器与所述SoC的所述多个组件中的一个组件相关联,
每个所述缓冲器的第一缓冲器大小是基于所述SoC的相关联组件的第一活动级别的;
利用所述监控模块确定所述PCD的不同于所述第一使用情况的第二使用情况,所述第二使用情况为所述SoC的所述多个组件定义第二活动级别;以及
基于所述第二使用情况将所述多个缓冲器中的至少一个缓冲器设置为第二缓冲器大小,其中,所述至少一个缓冲器的第二缓冲器大小是基于所述SoC的相关联组件的第二活动级别的,所述第二缓冲器大小不同于所述第一缓冲器大小。
25.根据权利要求24所述的计算机程序产品,其中,基于所述第二使用情况将所述多个缓冲器中的至少一个缓冲器设置为第二缓冲器大小包括:
减小所述多个缓冲器中的所述至少一个缓冲器的缓冲器深度。
26.根据权利要求25所述的计算机程序产品,其中,减小所述多个缓冲器中的所述至少一个缓冲器的缓冲器深度进一步包括:
将所述缓冲器深度减小取决于所述SoC的相关联组件的第二活动级别的一可变量。
27.根据权利要求24所述的计算机程序产品,其中,与所述SoC的所述多个组件中的第一组件相关联的缓冲器的第一缓冲器大小不同于与所述SoC的所述多个组件中的第二组件相关联的缓冲器的第一缓冲器大小。
28.根据权利要求24所述的计算机程序产品,其中,所述多个缓冲器包括先进先出(FIFO)缓冲器。
29.根据权利要求24所述的计算机程序产品,其中:
基于所述第一使用情况将所述多个缓冲器设置为所述第一缓冲器大小进一步包括:针对所述第一使用情况获得用于所述多个缓冲器的第一大小信息,以及
基于所述第二使用情况将所述多个缓冲器中的所述至少一个缓冲器设置为第二缓冲器大小进一步包括:针对所述第二使用情况获得用于所述多个缓冲器的第二大小信息。
30.根据权利要求29所述的计算机程序产品,其中,所述方法进一步包括:
更新用于所述SoC的所述多个组件中的一个或多个组件的使用情况数据,其中,更新使用情况数据包括:添加新使用情况、删除所述多个使用情况中的一个使用情况、改变针对一个或多个使用情况的活动级别值、改变针对所述使用情况中的一个或多个使用情况的活动级别中的一个或多个活动级别的大小信息值、或其组合。
CN201880042337.5A 2017-06-27 2018-06-01 用于计算设备中的动态缓冲器大小设定的系统和方法 Active CN110809754B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/634,701 US10713189B2 (en) 2017-06-27 2017-06-27 System and method for dynamic buffer sizing in a computing device
US15/634,701 2017-06-27
PCT/US2018/035677 WO2019005424A1 (en) 2017-06-27 2018-06-01 SYSTEM AND METHOD FOR DIMENSIONING A DYNAMIC BUFFER IN A COMPUTER DEVICE

Publications (2)

Publication Number Publication Date
CN110809754A true CN110809754A (zh) 2020-02-18
CN110809754B CN110809754B (zh) 2023-06-30

Family

ID=62685230

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880042337.5A Active CN110809754B (zh) 2017-06-27 2018-06-01 用于计算设备中的动态缓冲器大小设定的系统和方法

Country Status (10)

Country Link
US (1) US10713189B2 (zh)
EP (1) EP3646162B1 (zh)
KR (1) KR102623137B1 (zh)
CN (1) CN110809754B (zh)
AU (1) AU2018295010B2 (zh)
BR (1) BR112019026957A2 (zh)
ES (1) ES2871099T3 (zh)
SG (1) SG11201910416XA (zh)
TW (1) TWI772438B (zh)
WO (1) WO2019005424A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007107938A1 (en) * 2006-03-22 2007-09-27 Koninklijke Philips Electronics N.V. A device and a method for saving energy by sharing a buffer
CN101059980A (zh) * 2006-04-11 2007-10-24 诺基亚公司 用于进行自适应媒体缓冲的媒体子系统、方法和程序产品
CN101802872A (zh) * 2007-09-12 2010-08-11 爱立信电话股份有限公司 深度缓冲器压缩
US20130223538A1 (en) * 2012-02-28 2013-08-29 Qualcomm Incorporated Customized playback at sink device in wireless display system
US20140281341A1 (en) * 2013-03-12 2014-09-18 Invensense, Inc. Multiple, per sensor configurable fifos in a single static random access memory (sram) structure
US20160026549A1 (en) * 2014-07-24 2016-01-28 International Business Machines Corporation Reducing server power consumption to compensate for a power supply failure in a multiple power supply configuration

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6657634B1 (en) * 1999-02-25 2003-12-02 Ati International Srl Dynamic graphics and/or video memory power reducing circuit and method
US20080162862A1 (en) * 2005-12-02 2008-07-03 Yoshiki Matsumoto Signal Processing Apparatus and Signal Processing Method
US20090028171A1 (en) 2007-07-27 2009-01-29 Texas Instruments Incorporated Fifo buffer with adaptive threshold level
US8064256B2 (en) 2009-03-02 2011-11-22 Unity Semiconductor Corporation Non-volatile FIFO with third dimension memory
US8738863B2 (en) * 2009-09-25 2014-05-27 Intel Corporation Configurable multi-level buffering in media and pipelined processing components
US8793522B2 (en) * 2011-06-11 2014-07-29 Aliphcom Power management in a data-capable strapband
US9189199B2 (en) 2012-12-06 2015-11-17 Nvidia Corporation Folded FIFO memory generator
US9337952B2 (en) 2013-04-22 2016-05-10 Intel Corporation Embedded resilient buffer
US9733847B2 (en) * 2014-06-02 2017-08-15 Micron Technology, Inc. Systems and methods for transmitting packets in a scalable memory system protocol
US20160026436A1 (en) 2014-07-24 2016-01-28 Qualcomm Incorporated Dynamic Multi-processing In Multi-core Processors
US9568547B2 (en) * 2015-03-17 2017-02-14 Intel Corporation Method, apparatus and system for dynamic bandwidth management in systems

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007107938A1 (en) * 2006-03-22 2007-09-27 Koninklijke Philips Electronics N.V. A device and a method for saving energy by sharing a buffer
CN101059980A (zh) * 2006-04-11 2007-10-24 诺基亚公司 用于进行自适应媒体缓冲的媒体子系统、方法和程序产品
CN101802872A (zh) * 2007-09-12 2010-08-11 爱立信电话股份有限公司 深度缓冲器压缩
US20130223538A1 (en) * 2012-02-28 2013-08-29 Qualcomm Incorporated Customized playback at sink device in wireless display system
US20140281341A1 (en) * 2013-03-12 2014-09-18 Invensense, Inc. Multiple, per sensor configurable fifos in a single static random access memory (sram) structure
US20160026549A1 (en) * 2014-07-24 2016-01-28 International Business Machines Corporation Reducing server power consumption to compensate for a power supply failure in a multiple power supply configuration

Also Published As

Publication number Publication date
ES2871099T3 (es) 2021-10-28
KR102623137B1 (ko) 2024-01-09
TW201905690A (zh) 2019-02-01
EP3646162B1 (en) 2021-04-21
BR112019026957A2 (pt) 2020-06-30
EP3646162A1 (en) 2020-05-06
AU2018295010A1 (en) 2019-12-05
WO2019005424A1 (en) 2019-01-03
TWI772438B (zh) 2022-08-01
US20180373652A1 (en) 2018-12-27
US10713189B2 (en) 2020-07-14
KR20200018495A (ko) 2020-02-19
SG11201910416XA (en) 2020-01-30
AU2018295010B2 (en) 2022-07-07
CN110809754B (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
JP6038699B2 (ja) 電子機器
US9928168B2 (en) Non-volatile random access system memory with DRAM program caching
KR101324885B1 (ko) 복수의 회로들에서의 성능 파라미터들 조정
CN107924225B (zh) 用于动态地调整存储器状态转变定时器的系统和方法
JP6203425B2 (ja) 共有電力領域における異種プロセッサにわたる動的電力管理のための装置、システムおよび方法
US9244747B2 (en) System and method for providing dynamic clock and voltage scaling (DCVS) aware interprocessor communication
US20100211700A1 (en) Methods and systems to dynamically manage performance states in a data processing system
US11467650B2 (en) Selecting a low power state in an electronic device
US10296069B2 (en) Bandwidth-monitored frequency hopping within a selected DRAM operating point
US20120030433A1 (en) Method, Mobile Terminal and Computer Program Product for Sharing Storage Device
US9734878B1 (en) Systems and methods for individually configuring dynamic random access memories sharing a common command access bus
CN110809754B (zh) 用于计算设备中的动态缓冲器大小设定的系统和方法
WO2024093491A1 (zh) 一种性能调控方法及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40022706

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant