CN106104490A - 用于提供动态时钟和电压缩放(dcvs)感知处理器间通信的系统和方法 - Google Patents

用于提供动态时钟和电压缩放(dcvs)感知处理器间通信的系统和方法 Download PDF

Info

Publication number
CN106104490A
CN106104490A CN201580012708.1A CN201580012708A CN106104490A CN 106104490 A CN106104490 A CN 106104490A CN 201580012708 A CN201580012708 A CN 201580012708A CN 106104490 A CN106104490 A CN 106104490A
Authority
CN
China
Prior art keywords
assembly
packet
kernel
sent
buffer
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
CN201580012708.1A
Other languages
English (en)
Inventor
K·V·万卡
S·K·阿加瓦尔
S·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 CN106104490A publication Critical patent/CN106104490A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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
    • 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Telephone Function (AREA)

Abstract

介绍了允许处理器(诸如在便携式计算设备(“PCD”)中使用的或与PCD一起使用的那些处理器)间的动态时钟和电压缩放(DCVS)感知处理器间通信的系统和方法。在所述PCD的操作期间,在第一处理组件处接收至少一个数据分组。另外,所述第一处理组件还接收关于在动态时钟和电压缩放(DCVS)之下操作的第二处理组件的工作负荷信息。至少部分地基于所接收的工作负荷信息来作出关于将所述至少一个数据分组从所述第一处理组件发送给所述第二处理组件还是发送给缓冲器的确定,这提供了在具有实现DCVS算法或逻辑的多核或多CPU的PCD中降低功耗和改善电池寿命的成本高效的能力。

Description

用于提供动态时钟和电压缩放(DCVS)感知处理器间通信的系 统和方法
技术领域
具有处理器的通过无线信号与其它设备进行通信的设备(包括便携式计算设备(PCD))是无处不在的。这些设备可以包括:移动电话、便携式数字助理(PDA)、便携式游戏控制台、掌上型计算机以及其它便携式电子设备。除了这些设备的主要功能之外,许多设备还包括外围功能。例如,移动或蜂窝电话可以包括:实现和支持电话呼叫的主要功能;以及仍然具有相机、视频相机、全球定位系统(GPS)导航、网页浏览、观看视频、打游戏、发送和接收电子邮件、发送和接收文本消息、一键通能力等的外围功能。
现代PCD典型地包括片上系统(SoC),其包括用于控制或执行PCD的不同功能的一个或多个内核(例如,中央处理单元(CPU)、视频解码器、图形处理单元(GPU)、调制解调器处理器、数字信号处理器(DSP)等)。在PCD布置中,存在不断增长数量的内核和/或CPU可能是有问题的,这是因为操作每个内核/CPU增加PCD上的功耗,降低电池寿命。例如,随着PCD功能的增加,常规的SoC处理器可以在它们本身之间交换大量的数据,作为执行PCD内的典型使用情况(例如,视频回放)的一部分。随着内容大小每几个月就变得更大(例如,针对视频剪辑为1080P),这些通信机制可以成为CPU负荷的显著部分而增加功耗。形成CPU负荷的通信机制可以是以远程过程呼叫、共享存储器呼叫以及其它定制的通信机制的形式。
为了降低功耗,CPU可以实现在其上运行的某种形式的动态时钟和电压缩放(DCVS)算法,以使功耗最小化。大多数这些DCVS算法是基于定期计算的CPU负荷以便确定CPU的最优频率来运行的,。这种SoC的一个问题是当这种CPU在随机的时间从源(诸如另一个CPU)接收多个消息/中断时。这种重复的消息/中断可以使得在接收消息/中断的CPU上的DCVS算法对由消息/中断引起的该额外的负荷作出反应,并且将CPU带到其能够显著地增加功耗的高/最高频率,这违反了DCVS算法的目的。该增加的功耗对于靠电池运行的PCD(诸如移动电话)可能是尤其有问题的。
因此,存在对用于使可能由在实现DCVS算法的CPU处接收随机和突然的消息/中断引起的时钟频率的这些突然增加最小化的改进的系统和方法。
发明内容
公开了允许处理器(诸如在便携式计算设备(“PCD”)中使用的或与PCD一起使用的那些处理器)间的动态时钟和电压缩放(DCVS)感知处理器间通信的系统和方法。在所述PCD的操作期间,在第一处理组件处接收至少一个数据分组。另外,所述第一处理组件还接收关于在动态时钟和电压缩放(DCVS)之下操作的第二处理组件的工作负荷信息。至少部分地基于所接收的工作负荷信息来作出关于将所述至少一个数据分组从所述第一处理组件发送给所述第二处理组件还是发送给缓冲器的确定。
一个示例实施例是一种包括第一处理组件的PCD,其中所述第一处理组件被配置为接收至少一个数据分组。所述第一处理组件与第二处理组件相通信,所述第二处理组件被配置为在动态时钟和电压缩放(DCVS)之下操作。缓冲器与所述第一处理组件和所述第二处理组件相通信。计数器与所述第二处理组件相通信,并且所述计数器被配置为获得关于所述第二处理组件的工作负荷信息。所述PCD还包括与所述第一处理组件和所述计数器相通信的分组发送逻辑单元。所述分组发送逻辑单元被配置为从所述计数器接收所述工作负荷信息,以及至少部分地基于所接收的工作负荷信息来确定使得所述至少一个数据分组要被发送给所述第二处理组件还是被发送给所述缓冲器。
另一个示例实施例是一种包括非暂时性计算机可用介质的计算机程序产品,所述非暂时性计算机可用介质具有体现在其中的计算机可读程序代码,所述计算机可读程序代码适于被执行用于实现一种用于便携式计算设备(PCD)中的处理器间通信的方法。所实现的方法包括:在第一处理组件处接收至少一个数据分组;在所述第一处理组件处接收关于在动态时钟和电压缩放(DCVS)之下操作的第二处理组件的工作负荷信息;以及至少部分地基于所接收的工作负荷信息来确定将所述至少一个数据分组从所述第一处理组件发送给所述第二处理组件还是发送给缓冲器。
再一个示例实施例是一种用于便携式计算设备(PCD)中的处理器间通信的计算机系统。所述计算机系统包括:用于在第一处理组件处接收至少一个数据分组的单元;用于在所述第一处理组件处接收关于在动态时钟和电压缩放(DCVS)之下操作的第二处理组件的工作负荷信息的单元;用于至少部分地基于所接收的工作负荷信息来确定将所述至少一个数据分组从所述第一处理组件发送给所述第二处理组件还是发送给缓冲器的单元。
附图说明
在附图中,除非另外指示,否则遍及各个视图,相似的附图标记指代相似的部分。对于具有诸如“102A”或“102B”的字母字符标记的附图标记,字母字符标记可以区分出现在同一附图中的两个相似的部分或元素。当旨在使附图标记涵盖在所有附图中具有相同附图标记的所有部分时,可以省略附图标记的字母字符标记。
图1是可以在其中实现本发明的便携式计算设备(PCD)的示例实施例的框图;
图2A是示出了可以在图1中示出的PCD实施例中实现的处理单元的在一段时间内的示例性理论负荷的图表;
图2B是示出了在图2A中示出的理论负荷之下的处理单元的示例性频率的图表;
图3A是示出了可以在图1中示出的PCD实施例中实现的处理单元的在一段时间内的另一个示例性理论负荷的图表;
图3B是示出了在图3A中示出的理论负荷之下的处理单元的示例性频率的图表;
图4是显示了用于支持PCD中的动态电压和电压缩放(DCVS)感知处理器间通信的示例性系统的框图;
图5是显示了用于支持PCD中的动态电压和电压缩放(DCVS)感知处理器间通信的另一个示例性系统的框图;
图6A是描述了用于提供PCD中的动态时钟和电压缩放(DCVS)感知处理器间通信的方法的示例性实施例的流程图;以及
图6B示出了能够执行在图6A中示出的方法的示例组件。
具体实施方式
本文使用的词语“示例性”意味着“作为示例、实例或说明”。本文中描述为“示例性”的任何方面不必被解释为优选于其它方面或者比其它方面有优势。
在本描述中,术语“应用”还可以包括具有可执行内容(诸如:对象代码、脚本、字节代码、标记语言文件以及补丁)的文件。另外,本文中所引用的“应用”还可以包括本质上不可执行的文件(诸如可能需要被打开的文档或需要被访问的其它数据文件)。
术语“内容”还可以包括具有可执行内容(诸如:对象代码、脚本、字节代码、标记语言文件以及补丁)的文件。另外,本文中所引用的“内容”还可以包括本质上不可执行的文件(诸如可能需要被打开的文档或需要被访问的其它数据文件或数据值)。
如在本描述中使用的,术语“组件”、“数据库”、“模块”、“系统”等等旨在指代计算机相关的实体,要么是硬件、固件、硬件和软件的组合、软件,要么是执行中的软件。例如,组件可以是,但不限于是:在处理器上运行的过程、处理器、对象、可执行文件、执行的线程、程序和/或计算机。通过说明的方式,在计算设备运行上的应用和计算设备两者可以是组件。一个或多个组件可以存在于过程和/或执行的线程中,并且组件可以位于一个计算机中和/或分布在两个或更多计算机之间。此外,这些组件可以从具有存储在其上的各种数据结构的各种计算机可读介质中执行。组件可以诸如根据具有一个或多个数据分组(例如,来自与本地系统、分布式系统中的另一个组件进行交互,和/或跨越诸如互联网的网络通过信号的方式与其它系统进行交互的一个组件的数据)的信号通过本地和/或远程过程进行通信。
在本描述中,术语“便携式计算设备”(“PCD”)用于描述在有限容量的可再充电电源(诸如电池和/或电容器)上操作的任何设备。尽管具有可再充电电源的PCD已经被使用了几十年,但是在可再充电电池方面的技术进步结合第三代(“3G”)和第四代(“4G”)无线技术的到来已经实现了许多具有多种能力的PCD。因此,PCD可以是蜂窝电话、卫星电话、寻呼机、PDA、智能电话、导航设备、智能本或阅读器、媒体播放器、上述设备的组合、具有无线连接的膝上型计算机或平板计算机等等。
在本描述中,术语“中央处理单元(“CPU”)”、“数字信号处理器(“DSP”)”、“图形处理单元(“GPU”)”、“芯片”、“视频编解码器”、“系统总线”、“图像处理器”和“媒体显示处理器(“MDP”)”是处理组件的非限制性示例,其是可通过动态时钟和电压缩放(“DCVS”)技术控制的并且可以受益于本系统和方法。处理组件的这些术语可互换地使用,除非当另外指示时。此外,如下文所论述的,上述组件中的任何组件或其等效物可以实现在本文中通常被称为“(一个或多个)内核”和/或“(一个或多个)子内核”的一个或多个不同的处理组件中或由所述一个或多个不同的处理组件组成。
在本描述中,术语“工作负荷”、“处理负荷”、“处理工作负荷”和“图形工作负荷”可互换地使用,并且通常被引向与给定实施例中的给定处理组件相关联、或者可以被分配给给定实施例中的给定处理组件的处理负担或处理负担百分比。另外,相关的术语“帧”、“代码块”、“代码的块”可互换地用于指代给定工作负荷的一部分或片段。例如,图形工作负荷可以由一系列帧组成,如将被视频处理领域的普通技术人员理解的。进一步关于上文所限定的,“处理组件”等等可以是,但不限于是:中央处理单元、图形处理单元、内核、主内核、子内核、处理区域、硬件引擎等,或存在于便携式计算设备内的集成电路内或在便携式计算设备内的集成电路外部的任何组件。
本领域普通技术人员将认识到,术语“MIPS”表示处理器以给定的功率频率每秒能够处理的百万条指令的数量。在本描述中,使用该术语作为通用测量单位以指示示例性实施例中的处理器性能的相对等级,而将不被解释为暗示落入本公开内容的范围内的任何给定实施例都必须包括或者必须不包括具有任何特定Dhrystone排名或处理容量的处理器。另外,如本领域普通技术人员将理解的,处理器的MIPS设置与供应给处理器的功率、频率或操作频率直接相关。
用于动态时钟和电压缩放(DCVS)感知处理器间通信的本系统和方法提供了用于动态地和自适应地确定是否将消息、中断、远程过程呼叫等从一个内核、中央处理单元(CPU)或处理组件(“发送处理组件”)发送给另一个组件、内核或CPU(“接收处理组件”)的成本高效能力,其中接收处理组件实现DCVS算法或逻辑。
在本系统和方法中,当发送处理组件具有要传送给接收处理组件的数据或数据分组时,发送处理组件不自动地发送数据或数据分组。替代地,发送处理组件或与该发送处理组件相通信的另一个组件至少部分地基于接收处理组件上的当前工作负荷来确定是否立即发送数据或数据分组和/或确定立即发送数据或数据分组是否将导致接收处理组件处的增加的功耗(诸如通过以较高频率操作)。本系统和方法允许具有实现DCVS算法或逻辑的多核或多CPU的PCD中的降低的功耗和改善的电池寿命。
在PCD的操作期间,在第一处理组件处接收至少一个数据分组。另外,第一处理组件还接收关于在动态时钟和电压缩放(DCVS)之下操作的第二处理组件的工作负荷信息。作出关于将至少一个数据分组从第一处理组件发送给第二处理组件还是发送给缓冲器的确定。关于是否将至少一个数据分组发送给第二处理组件的确定是至少部分地基于所接收的关于第二处理组件的工作负荷信息来作出的,并且可以包括对第二处理组件的活动工作负荷是否关于门限水平的确定。另外,关于将至少一个数据分组从第一处理组件发送给第二处理组件还是发送给缓冲器的确定还是部分地基于可操作参数的。示例性可操作参数可以包括:包含在数据分组内的信息的重要性;数据被发送到的目的处理组件(即,活动应用或GPU)的特性;服务质量(“QoS”);缓冲器的可用性;对数据进行缓冲的功率“成本”等。
一个示例实施例是一种包括第一处理组件的PCD,其中第一处理组件被配置为接收至少一个数据分组。第一处理组件与第二处理组件相通信,所述第二处理组件被配置为在动态时钟和电压缩放(DCVS)之下操作。缓冲器与第一处理组件和第二处理组件相通信。计数器与第二处理组件相通信,并且计数器被配置为获得关于第二处理组件的工作负荷信息。PCD还包括与第一处理组件和计数器相通信的分组发送逻辑单元。分组发送逻辑单元被配置为从计数器接收工作负荷信息,以及至少部分地基于所接收的工作负荷信息来确定使得至少一个数据分组要被发送给第二处理组件还是被发送给缓冲器。
该基于第二处理组件上的工作负荷来确定是否将数据分组从一个处理组件发送给实现DCVS的第二处理组件的能力允许对PCD的处理组件的改善的功率管理。一个示例性优势是避免当第二处理组件繁忙时发送处理器间通信的能力。在这种情况下,第二处理组件可以在这样的水平处操作:来自处理器间通信的增加的工作负荷将导致第二处理组件的DCVS增加功耗,诸如通过以较高的频率操作。如果确定第二处理组件繁忙和/或高于门限水平操作,则如可能的话,可以推迟(诸如通过缓冲)来自第一处理组件的数据,直到第二处理组件不太繁忙为止。以这种方式,本系统和方法避免来自处理器间通信的显著的并且经常是不必要的功耗增加。
虽然是特别参考PCD内的操作来进行的描述,但是所描述的用于动态电压和电压缩放(DCVS)感知处理器间通信的系统和方法可应用于具有处理器的任何系统、或在其中期望节约功耗、增强性能或改善服务质量的处理子系统。换句话说,所描述的系统和方法可以被实现为在除便携式设备之外的系统中提供动态电压和电压缩放(DCVS)感知处理器间通信。
本文描述的用于动态电压和电压缩放(DCVS)感知处理器间通信的系统、或该系统的一部分可以实现在硬件或软件中。如果在硬件中实现,则设备可以包括以下本领域公知的技术中的任何技术或组合:分立电子组件、集成电路、具有适当配置的半导体设备和电阻式元件的专用集成电路等。这些硬件设备中的任何硬件设备(无论是进行动作还是单独地)与其它设备或其它组件(诸如存储器)还可以形成或包括用于执行所公开的方法的各种操作或步骤的组件或单元。
当本文描述的PCD或其它系统实现在软件或部分地实现在软件中时,软件部分可以用于:在第一处理组件处接收至少一个数据分组;在第一处理组件处接收关于在动态时钟和电压缩放(DCVS)之下操作的第二处理组件的工作负荷信息;或者至少部分地基于所接收的工作负荷信息来确定将至少一个数据分组从第一处理组件发送给第二处理组件还是发送给缓冲器。
在表示各种元素时使用的软件和数据可以被存储在存储器中并且由适当的指令执行系统(微处理器)来执行。软件可以包括用于实现逻辑功能的可执行指令的有序列表,并且可以体现在任何“处理器可读介质”中,以供或结合指令执行系统、装置或设备(诸如单核或多核处理器或处理器包含系统)使用。通常,这样的系统将从指令执行系统、装置或设备访问指令,并且执行指令。
图1是显示了可以在其中采用本公开内容的实施例的、与无线通信系统100进行通信的无线设备110的图。本文中可以利用标签“无线通信协议”或“无线通信技术”来一般地引用上文系统中的每一个或任何系统。
图1是PCD 100的示例性的、非限制性方面的框图,所述PCD 100可以以能够与一个或多个无线通信系统进行通信的无线电话的形式来实现本系统和方法。这种无线通信系统可以是宽带无线通信系统,包括长期演进(LTE)系统、码分多址(CDMA)系统、频分多址(FDMA)系统、全球移动通信系统(GSM)系统、无线局域网(WLAN)系统、某种其它无线系统或这些系统中的任何系统的组合。CDMA系统可以实现宽带CDMA(WCDMA)、CDMA 1X、演进数据优化(EVDO)、时分同步CDMA(TD-SCDMA)、或某种其它版本的CDMA。
如图所示,PCD 100包括片上系统102,其包括耦合到一起的异构多核中央处理单元(“CPU”)110和模拟信号处理器126。如本领域普通技术人员理解的,CPU 110可以包括第零内核222、第一内核224以及第N内核230。此外,如本领域普通技术人员理解的,还可以替代CPU 110而采用数字信号处理器(“DSP”)。此外,如异构多核处理器领域所理解的,内核222、224、230中的每个内核在相似的操作条件下可以以不同的效率来处理工作负荷。内核222、224、230中的每个内核可以控制PCD 100的一个或多个功能。例如,第一内核224可以是用于控制PCD 100中的图形的图形处理单元(GPU)。这样的GPU/第一内核224还可以包括对于控制PCD 100中的图形(包括控制GPU内核326和存储器112(包括缓冲器)之间的通信)来说是必要的驱动器和/或其它组件。对于另一个示例,不同的内核(诸如第N内核230)可以控制相机148,并且这样的内核230还可以包括对于控制相机148(包括内核230和存储器112(包括缓冲器)之间的通信)来说是必要的驱动器和/或其它组件。
在一些实施例中,PCD 100可以包括与多核CPU 110和/或内核222、224、230中的一个或多个内核相通信的处理器通信间(“PI”)模块101。PI模块101可以操作用于控制处理单元/内核222、224、230之间的通信中的一些或全部通信,如下文描述的。PI模块101可以包括由多核CPU 110执行的软件。然而,在不脱离本发明的范围的情况下,PI模块101还可以从硬件和/或固件中形成。在其它实现方式中,PCD 100可以不包括单独的PI模块101,但是替代地,内核222、224、230中的一个或多个内核可以具有用于控制与其它处理单元/内核222、224、230的通信的模块、组件、逻辑单元、软件或固件。
如图1所示,显示器控制器128和触摸屏控制器130耦合到多核CPU 110。继而,在片上系统102外部的显示器/触摸屏132耦合到显示器控制器128和触摸屏控制器130。
图1的PCD 100还可以包括视频编码器134,例如,逐行倒相制式(PAL)编码器、顺序存储彩色制式(SECAM)编码器、或国家电视系统委员会(NTSC)编码器或耦合到多核CPU 110的任何其它类型的视频解码器134。此外,视频放大器136耦合到视频编码器134和显示器/触摸屏132。视频端口138耦合到视频放大器136。如在图1中描绘的,通用串行总线(USB)控制器140耦合到多核CPU 110。此外,USB端口142耦合到USB控制器140。存储器112和用户身份模块(SIM)卡146也可以耦合到多核CPU 110。在其它实施例中,可以实现多个SIM卡146。
数字相机148可以耦合到多核CPU 110。如上所述,在这样的实施例中,数字相机148可以由多核CPU 110的内核中的一个内核来控制。在示例性方面中,数字相机148是电荷耦合器件(CCD)相机或互补金属氧化物半导体(CMOS)相机。
如图1进一步所示的,立体声音频CODEC 150可以耦合到多核CPU 110。此外,音频放大器152可以耦合到立体声音频CODEC 150。在示例性方面中,第一立体声扬声器154和第二立体声扬声器156耦合到音频放大器152。图1示出麦克风放大器158也可以耦合到立体声音频CODEC 150。此外,麦克风160可以耦合到麦克风放大器158。在特定方面中,调频(FM)无线电调谐器162可以耦合到立体声音频CODEC 150。此外,FM天线164耦合到FM无线电调谐器162。此外,立体声耳机166可以耦合到立体声音频CODEC 150。
图1还指示调制解调器设备/射频(“RF”)收发机168可以耦合到多核CPU 110。调制解调器设备168可以支持无线通信协议(诸如GSM、CDMA、W-CDMA、TDSCDMA、LTE以及LTE的变型(诸如但不限于FDB/LTE和PDD/LTE无线协议))中的一个或多个。另外,可以存在多个调制解调器设备168,并且在这样的实施例中,不同的调制解调器设备168可以支持上文列出的无线通信协议和/或技术中的一些或全部。
在一些实现方式中,调制解调器设备168还可以由各种组件组成,包括单独的处理器、存储器和/或RF收发机。在其它实现方式中,调制解调器设备168可以简单地是RF收发机。此外,调制解调器设备168可以集成到集成电路中。即,包括调制解调器设备168的组件可以是芯片中的完全解决方案。另外,包括调制解调器设备168的各个组件也可以耦合到多核CPU 110。RF开关170可以耦合到调制解调器设备168和RF天线172。在各个实施例中,可以存在多个RF天线172,并且每个这样的RF天线172可以通过RF开关170耦合到调制解调器设备168。
如图1所示,小键盘174可以直接地或通过模拟信号处理器126耦合到多核CPU110。此外,具有麦克风的单声道耳麦176可以耦合到多核CPU 110和/或模拟信号处理器126。此外,振动器设备178也可以耦合到多核CPU 110和/或模拟信号处理器126。图1还示出电源188可以耦合到片上系统102,并且在一些实现方式中,电源188经由USB控制器140来耦合。在特定方面中,电源188是向PCD 100的需要电力的各个组件提供电力的直流(DC)电源。此外,在特定方面中,电源188可以是可再充电DC电池或者从连接到交流(AC)电源的AC到DC变压器得到的DC电源。
多核CPU 110还可以耦合到一个或多个内部、片上热传感器157A以及一个或多个外部、片外热传感器157B。片上热传感器157A可以包括一个或多个与绝对温度成比例(“PTAT”)的温度传感器,其基于垂直PNP结构并且通常专用于互补金属氧化物半导体(“CMOS”)超大规模集成(“VLST”)电路。片外热传感器157B可以包括一个或多个热敏电阻器。热传感器157可以产生压降,利用模数转换器(“ADC”)控制器103将压降转换为数字信号。然而,可以在不脱离本发明的范围的情况下采用其它类型的热传感器157。
图1还指示PCD 110还可以包括网卡114,其可以用于接入数据网络,例如,局域网、个域网或任何其它网络。网卡114可以是蓝牙网卡、WiFi网卡、个域网(PAN)卡或本领域公知的任何其它网卡。此外,网卡114可以集成在集成电路中。即,网卡114可以是芯片中的完全解决方案,并且可以不是单独的网卡114。
如在图1中描绘的,显示器/触摸屏132、视频端口138、USB端口142、相机148、第一立体声扬声器154、第二立体声扬声器156、麦克风160、FM天线164、立体声耳机166、RF开关170、RF天线172、小键盘174、单声道耳麦176、振动器178以及电源180在片上系统102外部。
片上系统102还可以包括各种总线控制器(未示出)。例如,第一示例可以是响应于将CPU 110通信地耦合到多媒体子系统的组件(包括视频编码器134)的总线接口中的信号。应当理解的是,任意数量的经类似配置的总线控制器可以被布置为监测布置在片上系统102中的总线接口。替代地,如可能期望的,单个总线控制器可以配置有输入,所述输入被布置为监测在CPU 110和PCD 100的各个子系统之间传送信号的两个或更多总线接口。
在特定方面中,本文所描述的方法步骤中的一个或多个方法步骤可以经由存储在存储器112中的数据和处理器指令的组合来实现。这些指令可以由多核CPU 110中的一个或多个内核来执行,以便执行本文所描述的方法。此外,多核CPU 100、内核222、224、230中的一个或多个内核、存储器112、PI模块101、或其组合可以充当用于执行本文所描述的方法步骤中的一个或多个方法步骤以便实现DCVS感知处理器间通信的单元。
图2A是示出了可以在图1中示出的PCD中实现的处理组件的在一段时间内的示例性理论负荷的图表。在图2A中,垂直轴表示处理组件上的负荷。虽然图2A(以及后面的图表3A)显示了负荷水平的两个边界:较低范围为80%以及较高范围为90%,但是这些边界是出于说明性的目的,并且对于处理组件来说,任意数量的边界水平或者边界水平的任意量可以是可用的。水平轴表示时间。虽然图2A显示了四个相等的时间间隔T1-T4,但是可以按需要在任意数量的相等或不相等的时间间隔内确定或测量负荷。
图2A中的曲线所示出的处理组件上的负荷表示处理组件上的活动工作负荷,并且可以以任何期望的方式来测量或确定。如图2A的示例所示,处理组件的活动工作负荷保持在较低范围为80%以及较高范围为90%的边界内。假设图2A中的正在测量的处理组件实现DCVS算法或逻辑,则对在这些范围内的活动工作负荷的测量可以使得DCVS算法或逻辑将处理单元的频率维持在稳定的状态。
图2B是示出了在图2A中示出的理论负荷之下的处理组件的示例性频率的图表。在图2B图表中,垂直轴表示可以将处理组件保持在的操作频率水平,诸如来自DCVS算法或逻辑的每指令。特别地,图2B图表(以及后面的图3B图表)描绘了对于给定处理组件可用的两个操作频率水平(800MHz和1.4GHz);然而,这些操作频率水平是出于说明性的目的,并且可以预想的是,对于给定处理组件,任何数量的操作频率水平可以是可用的,并且按需要,特定频率可以与示出的那些频率不同。水平轴表示时间。
如图2B所示,处理组件被DCVS保持在800MHz(处理组件的较低频率)处。如本领域普通技术人员将理解的,以较低频率操作处理组件产生较低的功耗。因此,作为处理组件的活动工作负荷被确定/测量为保持在图2A中的90%的较高边界以下的结果,处理单元的DCVS算法或逻辑将处理组件的频率保持在图2B中的较低频率处的降低功耗的稳定状态下。
然而,处理组件的DCVS算法或逻辑为降低功耗而作出的努力可能被来自其它处理组件的通信破坏,如图3A-3B所示。图3A是示出了可以在图1中示出的PCD实施例中实现的处理组件的在一段时间内的另一个示例性理论负荷的图表。在图3A中,垂直轴再次表示处理组件上的负荷。虽然图3A显示了负荷水平的两个边界:较低范围为80%以及较高范围为90%,但是这些边界是出于说明性的目的,并且对于处理组件来说,任意数量的边界水平或者边界水平的任意量可以是可用的。水平轴表示时间。虽然图3A显示了四个相等的时间间隔T1-T4,但是可以按需要在任意数量的相等或不相等的时间间隔内确定或测量负荷。
图3A中的曲线所示出的处理组件上的负荷再次表示处理组件上的活动工作负荷,并且可以以任何期望的方式来测量或确定。与先前图2A的图表不同,在图3A中,在时间间隔T2中,处理组件的活动工作负荷上升至高于较上边界或90%。处理组件的活动工作负荷的增加可能是由来自另一个处理单元的处理器间通信(例如,来自另一个处理组件(诸如CPU100中的不同内核222、224、230)的消息、中断、远程过程呼叫、共享存储器呼叫等)导致的。当接收处理组件已经在活动状态下时接收到这样的处理器间通信可以导致接收处理组件上的一个或多个额外的线程,这增加处理组件上的活动工作负荷。如图3A所示,处理组件的活动工作负荷然后可以在时间间隔T3和T4内返回至低于90%的较高范围。
作为对在时间间隔T2中的活动工作负荷的测量高于90%的较高边界(如图3A所示)的结果,处理组件的DCVS算法或逻辑可以使得处理组件在一个或多个时间间隔内以较高的频率操作,如图3B所示。图3B是示出了在图3A中示出的理论负荷之下的处理组件的示例性频率的图表。在图3B图表中,垂直轴再次表示可以将处理组件保持在的操作频率水平,诸如来自DCVS算法或逻辑的每指令。特别地,图3B图表描绘了对于给定处理组件可用的两个操作频率水平(800MHz和1.4GHz);然而,这些操作频率水平是出于说明性的目的,并且可以预想的是,对于给定处理组件,任何数量的操作频率水平可以是可用的,并且按需要,特定频率可以与示出的那些频率不同。水平轴表示时间。
如图3B所示,在前两个时间间隔T1和T2内,处理组件被DCVS保持在800MHz(处理组件的较低频率)处。然而,作为活动工作负荷在T2中高于90%(或任何期望的门限)的测量或确定的结果,在至少时间间隔T3内,处理组件的频率被增加至1.4GHz。该处理组件在较高频率处的增加可以导致处理组件的功耗的显著增加。因此,作为来自另一个处理组件的处理器间通信的结果,在图3A-3B中示出的处理组件的活动工作负荷可以被确定/测量为超过图3A中的90%的较高边界,这导致图3B中的处理单元的频率的增加而增加功耗。
图4是显示了用于支持DCVS感知处理器间通信以便更优地管理处理组件的功耗的示例性系统的框图。在图4中示出的实施例中,数据由第一处理组件(在图4中被示为第一内核410,其可以是在图1中示出的多核CPU 110的内核222、224、230中的一个内核)接收。第一内核410可以是PCD 100中的任何类型的处理器或内核222、224、230,包括应用处理器/内核、调制解调器处理器/内核、WiFi处理器/内核、视频解码器处理器/内核、音频解码器处理器/内核、GPU/图形内核等。在图4中示出的实现方式中,第一内核410包括处理器、CPU 412,其中分组发送逻辑单元414和至少一个缓冲器418与CPU 412相通信。如图4所示,缓冲器418可以是在第一内核410(或CPU 412)内部的缓冲器418A。另外或替代地,缓冲器418还可以是一个或多个外部缓冲器418B,包括被第一内核410和额外的处理组件共享的外部缓冲器481B。
图4中的第一内核410的特征的配置是说明性的而非限制性的。例如,虽然被示为包含在CPU 412上,但是在一些实施例中,分组发送逻辑单元414可以是在CPU 412和/或第一内核410外部但是与CPU 412和/或第一内核410相通信的单独的硬件或软件组件、模块或逻辑单元。类似地,虽然CPU 412本身被示为包含在第一内核410内,但是在一些实现方式中,CPU 412可以在第一内核410外部但是与第一内核410相通信。另外,在一些实现方式中,CPU 412本身可以包括第一内核410。
图4的示例性系统还包括与第一处理组件相通信的第二处理组件(被示为与第一内核410相通信的第二内核420)。第二内核420也可以是PCD 100中的任何类型的处理器或内核222、224、230,包括应用处理器/内核、调制解调器处理器/内核、WiFi处理器/内核、视频解码器处理器/内核、音频解码器处理器/内核、GPU/图形内核等。在图4中示出的实现方式中,第二内核420包括处理器、CPU 422。虽然CPU 422被示为包含在第二内核420内,但是在一些实现方式中,CPU 422可以在第二内核420外部但是与第二内核420相通信。另外,在一些实现方式中,CPU 422本身可以包括第二内核420。
如图4所示,CPU 422与DCVS模块424相通信。DCVS模块424执行针对第二内核420和/或第二内核420的处理器CPU 422的动态时钟和电压缩放。可以按需要在硬件、软件或固件中实现DCVS模块424。另外,虽然被示为在CPU 422外部,但是DCVS模块424可以替代地是CPU 422的一部分。类似地,DCVS模块424还可以位于第二内核420外部但是与第二内核420相通信。无论如何实现,DCVS模块424响应于活动工作负荷来执行针对第二内核420和/或CPU 422的至少某种形式的功耗管理,诸如上文关于图2A-2B和3A-3B论述的操作频率调整。
所示出的DCVS模块424包括计数器426,其用于以可以被第一内核410的分组发送逻辑单元414读取或被传送给第一内核410的分组发送逻辑单元414的方式,来测量第二内核420和/或CPU 422的活动工作负荷。在一些实现方式中,计数器426可以是DCVS模块424的组件或一部分。在这样的实现方式中,计数器426可以例如是DCVS模块424内的逻辑单元,其对第二内核420和/或CPU 422在当前采样时段/时间间隔中花在执行非空闲线程上的繁忙时钟循环进行计数。在其它实现方式中,计数器426可以是与DCVS模块424分离的、读取或接收来自DCVS模块424的信息的硬件、软件、或固件模块、计数器、或组件。
第二内核420还可以包括分组接收逻辑单元428,如图4所示,其用于控制第二内核420从其它内核(诸如第一内核410)接收的数据或数据分组。第二内核420的分组接收逻辑单元428和/或CPU 424可以与一个或多个外部缓冲器418B相通信,如图4所示。外部缓冲器418B还可以与其它处理组件(诸如第一内核410和/或第一内核410的CPU 412)相通信。分组接收逻辑单元428可以实现在硬件、软件或固件中。另外,在各个实施例中,分组接收逻辑单元428可以在第二内核420的CPU 422的外部或可以包括在第二内核420的CPU 422内。
在操作中,图4的系统400允许DCVS感知处理器间通信,诸如第一内核410和第二内核420之间的通信。如图4所示,例如,第一内核410、WiFi内核接收数据的一个或多个流,每个流由数据分组组成。在一些实现方式中,第一内核410的CPU 412可以确定需要将所接收的数据分组中的一个或多个数据分组发送给一个或多个额外的处理组件(诸如第二内核420,其在该示例中为用于操作应用的内核)。在其它实现方式中,另一个元件或组件可以作出关于需要将所接收的数据分组中的一个或多个数据分组发送给一个或多个额外的处理组件的确定。这样的其它元件或组件可以是第一内核410的一部分,诸如分组发送逻辑单元414。替代地,这样的其它元件可以在第一内核410外部,诸如在将数据发送给第一内核410之前作出确定并且将确定与数据一起传送给第一内核410的元件或组件。
第一内核410首先检查任何目的处理组件(包括第二内核420)的活动工作负荷,而不是简单地将数据分组转发给其它处理组件(诸如第二内核420)。在图4的示例性系统中,第一内核410的分组发送逻辑单元414从第二内核420的计数器426接收信息,以便“读取”或确定第二内核420和/或第二内核420的CPU 422的活动工作负荷。活动工作负荷可以以任何期望的方式来读取或接收,并且可以以任何期望的形式,诸如第二内核420/CPU 422的“繁忙百分比”或第二内核420和/或CPU 422在当前采样时段中花在执行非空闲线程上的繁忙时钟循环的次数。
在一些实现方式中,分组发送逻辑单元414可以直接与第二内核420的DCVS模块424和/或计数器426进行通信,以便“读取”第二内核420和/或CPU 422的活动工作负荷。在其它实现方式中,第一内核410的CPU 412可以与第二内核420的DCVS模块424和/或计数器426进行通信,以便“读取”活动工作负荷,在这种情况下,CPU 412将关于第二内核420和/或CPU 422的活动工作负荷的信息传递给分组发送逻辑单元414。
分组发送逻辑单元414然后使用所接收的关于第二内核420/CPU 422的活动工作负荷的信息来确定是否立即将数据分组发送给第二内核420/CPU 422,或者是否延迟将数据分组发送给第二内核420/CPU 422,诸如通过将数据分组暂时地存储在缓冲器418A或418B中。
在一个示例性实施例中,所接收的关于第二内核420/CPU 422的活动工作负荷的信息可以是第二内核420/CPU 422的繁忙百分比。在该实现方式中,分组发送逻辑单元414可以确定立即将数据分组发送给第二内核420/CPU 422是否将导致第二内核420/CPU 422的活动工作负荷的增加。该决策还可以包括确定所增加的活动工作负荷是否将使得第二内核420的DCVS模块424增加第二内核420/CPU 422的功耗,诸如通过提升第二内核420/CPU422的操作频率。
在一种实现方式中,分组发送逻辑单元414可以通过评估第二内核420/CPU 422的活动工作负荷是否将增加至高于预定门限(诸如上文针对图2A-2B和3A-3B论述的90%的门限)(这要求DCVS模块增加第二内核420/CPU 422的操作频率)来执行该确定。还可以通过分组发送逻辑单元414将所接收的目的处理组件的活动工作负荷百分比与门限值进行比较,通过分组发送逻辑单元414接收目的处理组件的活动工作负荷百分比并且评估会由立即发送数据导致的工作负荷的增加,或通过任何其它期望的方法来作出该评估。
如果立即将数据分组发送给第二内核420/CPU 422会导致繁忙百分比增加至高于90%的门限,则分组发送逻辑单元414可以确定不立即将数据分组发送给第二内核420/CPU422,并且替代地将数据分组存储在一个或多个缓冲器418A、418B中。分组发送逻辑单元414然后可以继续接收关于第二内核420/CPU 422的活动工作负荷的信息,直到分组发送逻辑单元414确定发送数据分组不会增加第二内核420/CPU 422的活动工作负荷为止,或者直到分组发送逻辑单元414确定必须将数据分组发送给第二内核420/CPU 422以便避免数据分组超时为止。在这样的情况下,分组发送逻辑单元414可以使得将数据分组从缓冲器418A、418B发送给第二内核420/CPU 422。替代地,分组发送逻辑单元414可以使得第二内核420/CPU 422从共享缓冲器418B取回数据分组,诸如通过到第二内核420/CPU 422的共享存储器呼叫。
分组发送逻辑单元414对是否立即将数据分组发送给第二内核420/CPU 422的确定还可以是部分地基于其它考虑的,诸如可操作参数。当作出确定时可以进行评估的示例性可操作参数包括:包含在数据分组内的信息的重要性;数据被发送到的目的处理组件(即,活动应用或GPU)的特性;服务质量(“QoS”);缓冲器的可用性;对数据进行缓冲的功率“成本”等。可以通过一个算法或一系列算法(其向任何期望的参数或优化结果赋予权重)来作出对这些各种可操作参数的评估或确定。替代地,可以通过任何其它期望的手段(诸如查找表)来作出评估或确定。
对这些因素的考虑的一个说明可以是数据多媒体数据是否是通过到PCD 100的3G连接接收的。能够将这样的信息快速并且没有中断地提供给PCD 100用户的QoS的重要性可以使得分组发送逻辑单元414确定立即将信息提供给另一个处理组件(诸如GPU或视频解码器),即使目的处理组件繁忙以及发送信息会导致目的处理组件以高频率操作。
在另一方面,如果第一内核410所接收的数据是文件下载(诸如对各种应用的更新),则这样的信息的较低即时重要性和这样的信息对QoS的最小影响可以使得分组发送逻辑单元414确定:如果存在将数据发送给目的处理组件会导致较高功耗模式下的操作的任何可能性,则应当缓冲信息。
举另一个示例,分组发送逻辑单元414可以考虑是否由于PCD 100的架构、PCD 100的当前操作条件、和/或其它原因,所以对第一内核410所接收的数据进行缓冲的功率成本是高的和/或高于增加目的处理组件的操作水平的功率成本。在这样的情况下,分组发送逻辑单元414可以确定立即将数据发送给第二处理组件,即使该第二处理单元的活动工作负荷会以其它方式保证缓冲数据分组。替代地,在这样的情况下,可以诸如通过针对何时将数据发送给第二/目的处理组件来增加活动工作负荷门限值,来调整分组发送逻辑单元414的确定过程,以便使缓冲成本最小化,同时仍然尝试通过推迟将数据分组递送给第二/目的处理组件(当可能时)来获得功率节省。
为了便于理解,图4示出了进行处理器间通信的第一内核410(其接收数据)和第二内核420(其作为目的处理组件)。可以预想的是,对于处理器间通信,有时第二内核420(或额外的处理组件(未示出))可以接收数据,在这种情况下,第一内核410可以是目的处理组件,其中第二内核420的相应组件与第一内核410进行通信,并且作出对是否立即将数据或数据分组发送给第一内核410或是否将数据分组缓冲在诸如缓冲器418B中。
类似地,要理解的是,虽然图4仅示出了一个目的处理组件(第二内核420),但是在一些实施例中,可能存在多个图4中的第一内核410可以将所接收的数据分组中的一些或全部数据分组发送到的目的处理组件。在这样的实施例中,第一内核410的分组发送逻辑单元414可以基于上文列出的因素或考虑中的任何因素或考虑、或者基于期望的任何额外的因素或考虑来针对每个目的处理组件单独地作出上述确定。在这样的实施例中,当针对每个目的处理组件作出确定时,分组发送逻辑单元414没有必要应用相同的门限,评估相同的因素或考虑,和/或以相同的方式来对类似的因素或考虑进行加权。因此,分组发送逻辑单元414可以确定应当立即将数据分组的指定集合发送给一个目的处理组件,但是应当缓冲相同的数据分组,而不是将其立即发送给第二目的处理组件,即使第一目的处理组件当前以比第二目的处理组件高的活动工作负荷操作。
图5是显示了用于支持DCVS感知处理器间通信以便管理处理组件的功耗的另一个示例性系统的框图。在图5中示出的系统500包括接收数据的源处理组件(第一内核510)和两个目的处理组件(第二内核520和第N内核530)。虽然为了便于理解示出了两个目的处理组件,但是系统500可以包括任意数量的目的处理组件。
在图5中示出的系统500的实施例类似于图4的系统400,除了图5的系统500实现与第一内核510、第二内核520和第N内核530中的每个内核相通信的单独的和/或集中式分组发送逻辑模块514。系统500中的分组发送逻辑模块514可操作用于以与上文针对图4描述的方式类似的方式来提供第一内核510、第二内核520和第N内核530之间的DCVS感知处理器间通信。
第一内核510、第二内核520和第N内核530中的每个内核可以是PCD100中的任何类型的处理器或内核222、224、230(见图1),包括应用处理器/内核、调制解调器处理器/内核、WiFi处理器/内核、视频解码器处理器/内核、音频解码器处理器/内核、GPU/图形内核等。在图5中示出的实现方式中,第一内核510包括处理器、CPU 512以及与CPU 512相通信的至少一个缓冲器518。如图5所示,缓冲器518可以是在第一内核510(或CPU512)内部的缓冲器518A。另外或替代地,缓冲器518还可以是一个或多个外部缓冲器518B,包括被第一内核510和额外的处理组件(诸如第二内核520和/或第N内核530)共享的外部缓冲器581B。
图5中的第一内核510的特征的配置是说明性的而非限制性的。例如,虽然CPU 512本身被示为包含在第一内核510内,但是在一些实现方式中,CPU 512可以在第一内核510外部但是与第一内核510相通信。另外,在一些实现方式中,CPU 512本身可以包括第一内核510。
图5的示例性系统还包括与第一处理组件相通信的第二和第三处理组件(被示为与第一内核510相通信的第二内核520和第N内核530)。在图5中示出的实现方式中,第二内核520包括处理器、CPU 522,并且第N内核530包括处理器、CPU 532。虽然CPU 522和532被示为分别包含在第二内核520和第N内核530内,但是在一些实现方式中,CPU 522和532可以分别在第二内核520和第N内核530外部但是与第二内核520和第N内核530相通信。另外,在一些实现方式中,CPU 522和532本身分别可以包括第二内核520和第N内核530。在再一些实现方式中,第二内核520和第N内核530可以共享为内核520和530执行处理的一个CPU 522。
如图5所示,第二内核520的CPU 522与DCVS模块524相通信。类似地,第N内核530的CPU 532与第N内核530的DCVS模块534相通信。DCVS模块524和534分别执行针对第二内核520/CPU 522和第N内核530/CPU 532的动态时钟和电压缩放。可以按需要在硬件、软件或固件中实现DCVS模块524和534。另外,虽然被示为在CPU 522和532外部,但是DCVS模块524和534可以替代地分别是CPU 522和532的一部分。类似地,DCVS模块524和534还可以分别位于第二内核520和第N内核530外部但是与第二内核520和第N内核530相通信。无论如何实现,DCVS模块524和534响应于活动工作负荷来执行对其相应的内核520或530和/或CPU 522或532的某种形式的功耗管理,诸如上文关于图2A-2B和3A-3B论述的操作频率调整。
所示出的第二内核520的DCVS模块524包括计数器526,其用于以可以被分组发送逻辑模块514读取或被传送给分组发送逻辑模块514的方式,来测量或记录第二内核520和/或CPU 522的活动工作负荷。在一些实现方式中,计数器526可以是DCVS模块524的组件或一部分。在这样的实现方式中,计数器526可以例如是DCVS模块524中的逻辑单元,其对第二内核520和/或CPU 522在当前采样时段/时间间隔中花在执行非空闲线程上的繁忙时钟循环进行计数。
相反,第N内核530包含在第N内核530的DCVS模块534外部的监测器536,其用于测量、记录或接收关于第N内核520和/或CPU 532的活动工作负荷的信息。类似地,监测器536以可以被分组发送逻辑模块514读取或被传送给分组发送逻辑模块514的方式来存储工作负荷信息。监测器536可以是与DCVS模块534相通信的硬件、软件、或固件模块、或组件,并且可以位于第N内核530或CPU 532内、位于第N内核530或CPU 532外部但是与第N内核530或CPU 532相通信。第N内核530的监测器536和第二内核520的计数器526两者用于向分组发送逻辑模块514提供信息或者允许信息被分组发送逻辑模块514读取,包括以与上文关于图4描述的方式类似的方式。
第二内核520和第N内核530还可以分别包括分组接收逻辑单元528和538,如图5所示,其用于控制第二内核520和第N内核530从其它处理组件(诸如第一内核510)接收的数据或数据分组。第二内核520的分组接收逻辑单元528和/或CPU 524可以与一个或多个外部缓冲器518B相通信,如图5所示。类似地,第N内核530的分组接收逻辑单元538和/或CPU 534也可以与一个或多个外部缓冲器518B相通信。外部缓冲器518B还可以与分组发送逻辑模块514和其它处理组件(诸如第一内核510和/或第一内核510的CPU 512)相通信。分组接收逻辑单元528和538可以实现在硬件、软件或固件中。另外,在各个实施例中,分组接收逻辑单元528和538可以在分别在第二内核520的CPU 522和第N内核530的CPU 532的外部或可以分别包括在第二内核520的CPU 522和第N内核530的CPU 532内。
在操作中,图4的系统500的分组发送逻辑模块514允许诸如第一内核510与第二内核520和/或第N内核530之间的DCVS感知处理器间通信。如图5所示,例如,第一内核510、WiFi内核接收数据的一个或多个流,每个流由数据分组组成。在一些实现方式中,第一内核510的CPU 512可以确定需要将所接收的数据分组中的一个或多个数据分组发送给一个或多个额外的处理组件(诸如第二内核520和/或第N内核530)。
在其它实现方式中,另一个元件或组件可以作出关于需要将所接收的数据分组中的一个或多个数据分组发送给一个或多个额外的处理组件的确定。这样的其它元件或组件可以是第一内核510的一部分。这样的其它元件还可以在第一内核410外部(诸如分组发送逻辑模块514),或者是在将数据发送给第一内核510之前作出确定并且将确定与数据一起传送给第一内核510的元件或组件。
分组发送逻辑模块514首先检查任何这样的目的处理组件的活动工作负荷(类似于上文在图4中论述的系统400),而不是简单地允许第一内核510将数据分组转发给其它处理组件(诸如第二内核520或第N内核530)。在图5的示例性系统中,分组发送逻辑模块514从第二内核520的计数器526和第N内核530的监测器536接收信息,以便“读取”相应的内核520和530和/或其相应的CPU 522和532的活动工作负荷。如上所述,活动工作负荷可以以任何期望的方式来读取,诸如第二内核520/CPU 522和/或第N内核530/CPU 522的“繁忙百分比”,或作为第二内核520/CPU 522和/或第N内核530/CPU 532在当前采样时段中花在执行非空闲线程上的繁忙时钟循环的次数。
分组发送逻辑模块514可以直接与第二内核520的DCVS模块524和/或计数器526进行通信,以便“读取”第二内核520和/或CPU 522的活动工作负荷。类似地,分组发送逻辑模块514可以直接与第N内核530的监测器536进行通信,以便“读取”第N内核530和/或CPU 532的活动工作负荷。分组发送逻辑模块514然后使用所接收的关于第二内核420/CPU 422和/或第N内核530/CPU 532的活动工作负荷的信息来确定是否立即将数据分组发送给内核520或530(或其相应的CPU 522或532),或者是否延迟将数据分组发送给第二内核520/CPU 522或第N内核530/CPU 532中的一个或多个,诸如通过将数据分组暂时地存储在缓冲器518B中。
在一个示例性实施例中,所接收的关于第二内核520/CPU 522的活动工作负荷的信息可以是第二内核520/CPU 522的繁忙百分比。在该实现方式中,分组发送逻辑模块514可以确定立即将数据分组发送给第二内核520/CPU 522是否将导致第二内核520/CPU 522的活动工作负荷的增加。该确定还可以包括确定所增加的活动工作负荷是否将使得第二内核520的DCVS模块524增加第二内核520/CPU 522的功耗,诸如通过提升第二内核520/CPU522的操作频率。
在一种实现方式中,分组发送逻辑模块可以通过评估第二内核520/CPU 522的活动工作负荷是否将增加至高于预定门限(诸如上文针对图2A-2B和3A-3B论述的90%的门限)(这要求DCVS模块524增加第二内核520/CPU 522的功耗(诸如通过增加第二内核520/CPU 522的操作频率))来执行该确定。还可以通过分组发送逻辑模块514将所接收的目的处理组件的活动工作负荷百分比与门限值进行比较,通过分组发送逻辑模块514接收目的处理组件的活动工作负荷百分比并且评估会由立即发送数据导致的工作负荷的增加,或通过任何其它期望的方法来作出该评估。
在上文示例中,所接收的关于第N内核530/CPU 532的活动工作负荷的信息也可以是第N内核530/CPU 532的繁忙百分比,并且分组发送逻辑模块514可以作出关于第N内核530/CPU 532的活动工作负荷的类似确定。然而,所接收的关于第N内核530/CPU 532的活动工作负荷的信息类型没有必要与所接收的关于第二内核520/CPU 522的活动工作负荷的信息类型相同。例如,分组发送逻辑模块514可以获得或接收关于第二内核520/CPU 522的工作负荷的繁忙百分比信息,而从第N内核530的监测器536获得或接收用于指示第N内核530/CPU 532的活动工作负荷的不同类型的信息。
无论所接收的信息类型如何,分组发送逻辑模块514将针对第二内核520/CPU 522和第N内核530/CPU 532中的每一个来确定立即发送数据分组是否会导致第二内核520/CPU522和/或第N内核530/CPU 532的功耗的增加,诸如通过内核520/530和/或CPU 522/532的操作频率的增加。在该情况下,分组发送逻辑模块514可以确定不立即将数据分组发送给第二内核420/CPU 422和第N内核530/CPU 532中个一个或多个,并且替代地将数据分组存储在一个或多个缓冲器418B中。
分组发送逻辑模块514然后可以继续接收关于第二内核520/CPU 522和/或第N内核530/CPU 532的活动工作负荷的信息,直到分组发送逻辑模块514确定发送数据分组不会增加相应的内核520/530或CPU 522/532的活动工作负荷为止,或者直到分组发送逻辑模块514确定必须发送数据分组以便避免数据分组超时为止。在这样的情况下,分组发送逻辑模块514可以使得将数据分组从缓冲器418B发送给适当的目的内核520/530或CPU 522/532。替代地,分组发送逻辑模块514可以使得第二内核520/CPU 522和/或第N内核530/CPU 532从共享缓冲器418B取回数据分组,诸如通过到第二内核520/CPU 522或第N内核530/CPU532的共享存储器呼叫。
如上所述,分组发送逻辑模块514对是否立即将数据分组发送给第二内核520/CPU522或第N内核530/CPU 532中的任一个的确定还可以是部分地基于其它考虑的,诸如可操作参数。当作出确定时可以进行评估的示例性可操作参数包括:包含在数据分组内的信息的重要性;数据被发送到的目的处理组件(即,活动应用或GPU)的特性;服务质量(“QoS”);缓冲器的可用性;对数据进行缓冲的功率“成本”等。分组发送逻辑模块514可以通过一个算法或一系列算法(其向任何期望的因素、考虑或优化结果赋予权重)来作出评估或确定;或者可以通过任何其它期望的手段(诸如查找表)来作出评估或确定。
类似地,要理解的是,虽然图5示出了两个目的处理组件(第二内核520和第N内核530),但是在一些实施例中,可能存在多个图5中的第一内核510可以将所接收的数据分组中的一些或全部数据分组发送到的额外的目的处理组件。如所论述的,分组发送逻辑模块514可以基于上文列出的因素或考虑中的任何因素或考虑、或者基于期望的任何额外的因素或考虑来针对每个目的处理组件单独地作出上述确定和/或评估。当针对每个目的处理组件作出确定时,分组发送逻辑模块514没有必要应用相同的门限,评估相同的因素或考虑,和/或以相同的方式来对类似的因素或考虑进行加权。因此,分组发送逻辑模块514可以确定应当立即将数据分组的指定集合发送给第二内核520/CPU 522,但是应当缓冲相同的数据分组,而不是将其立即发送给第N内核530/CPU 532(或某个其它处理组件),即使第二内核520/CPU 522当前以比第N内核530/CPU 532高的活动工作负荷操作。
另外,还可以适应性地改变图4的分组发送逻辑单元412和/或图5的分组发送逻辑模块514作出的确定以反映新条件,这允许根据处理器间通信的改进的和/或更精确的优化和功耗降低。虽然为了便于理解,本文中围绕PCD 100中的处理器组件之间的通信来描述系统400和500以及方法600(图6a-6B)的原则,但是系统400和500以及方法600的原则可同等地应用于其它类型的处理器组件,诸如任何计算机系统中的处理器组件、处理器、内核等、调制解调器子系统。
图6A是描述了用于(诸如在PCD中使用的或与PCD一起使用的处理器组件中)提供动态电压和电压缩放(DCVS)感知处理器间通信的方法的示例性实施例的流程图。方法600开始于框610,其中在处理组件或内核处接收至少一个数据分组。如上所述,处理组件可以是内核、CPU、DSP或PCD 100内的其它处理元件,并且为了简单起见,在对方法600的论述中将处理组件称为“内核”。另外,第一内核可以接收多个数据分组,其中每个数据分组是第一内核所接收的一个或多个数据流的一部分。
在框620处,作出对另一个处理组件或内核是否需要一个或多个数据分组的确定。出于论述的目的,在对方法600的论述中将这种其它处理组件称为“其它内核”或“目的内核”。如所论述的,可以由第一内核或第一内核的组件(诸如在图4中示出的示例性系统400中的第一内核410的CPU 412或分组发送逻辑单元414)来作出对其它内核是否需要一个或多个数据分组的确定。
在其它实现方式中,可以由在第一内核外部的元件或组件(诸如在第一内核外部的CPU或在图5中示出的示例性系统500的分组发送逻辑模块514)来作出框620的确定。在其它实现方式中,框620可以发生在第一内核接收数据分组之前(诸如另一个组件确定其它内核也将需要数据分组中的一些或全部数据分组,并且将该信息连同数据分组一起传送给第一内核),或者发生在第一内核开始接收数据分组之前或之后。
在框630处,作出关于要将数据分组发送到的其它内核是否“繁忙”的确定。可以由第一内核或第一内核内的组件(诸如由在图4中示出的示例性系统400中的第一内核410的分组发送逻辑单元414)来作出该确定。替代地,可以由第一内核外部的组件或元件(诸如在图5中示出的示例性系统500的分组发送逻辑模块514)来作出框630处的确定。如上文针对系统400和500论述的,框630处的这种确定可以是关于立即发送数据分组是否会导致目的内核处的功耗的增加(诸如通过任何目的内核的操作频率的增加)的确定。
框630处的确定是基于从目的内核接收的或获取/读取的信息(诸如上文论述的目的内核的活动工作负荷)的。例如,在图5的示例性系统中,分组发送逻辑模块514从第二内核520的计数器526和第N内核530的监测器536接收信息,以便“读取”相应的内核520和530和/或其相应的CPU 522和532的活动工作负荷。活动工作负荷可以以任何期望的方式来读取,诸如第二内核520/CPU 522和/或第N内核530/CPU 522的“繁忙百分比”,或作为第二内核520/CPU 522和/或第N内核530/CPU 532在当前采样时段中花在执行非空闲线程上的繁忙时钟循环的次数。可以通过一个算法或一系列算法来作出框630处的评估或确定,或者可以通过任何其它期望的手段(诸如查找表)来作出框630处的评估或确定。
如果框630处的确定是任何目的内核都不“繁忙”,则在框640处,可以立即将数据分组从第一内核发送给该目的内核,并且方法600返回。在框640处将数据分组发送给目的内核可以通过任何期望的方法或手段来完成。
如果框630处的确定是任何目的内核都“繁忙”,则在框650处,方法600确定是否推迟数据分组。该确定可以是至少部分地基于各种考虑和/或因素的,包括:包含在数据分组内的信息的重要性;数据被发送到的目的处理组件;服务质量(“QoS”);缓冲器的可用性;对数据进行缓冲的功率“成本”;如果不被发送给目的内核,数据是否将超时等。前述是当作出框650的确定时可以进行评估的示例性因素、参数或考虑。
框650处的确定可以由任何硬件、软件或固件组件并且以任何期望的方式(包括例如上文关于在图4中示出的系统400的分组发送逻辑单元414和/或在图5中示出的系统500的分组发送逻辑模块514论述的确定方式)来作出。框650中的确定可以通过一个算法或一系列算法(其向任何期望的因素、考虑或优化结果赋予权重)来作出;或者可以通过任何其它期望的手段(诸如查找表)来作出。如本领域普通技术人员将理解的,在一些实施例中,框630和框640可以不是单独的确定。替代地,对目的内核是否繁忙(框630)和是否可以推迟分组(650)的确定可以是在一个确定/步骤中作出的,而不是在图6A中示出的两个单独的确定/步骤中作出的。
如果框650处的确定是不可以针对任何目的内核来推迟数据分组,则在框640处,可以立即将数据分组从第一内核发送给该目的内核,并且方法600返回。再次,在框640处将数据分组发送给目的内核可以通过任何期望的方法或手段来完成。
如果框650处的确定是可以推迟将数据分组发送给任何目的内核,则在框660中,对针对该目的内核的数据分组进行缓冲。缓冲器可以是任何类型的存储器缓冲器,包括例如在图4中示出的缓冲器418A和418B或在图5中示出的缓冲器518A和518B。类似地,所推迟的数据分组被发送到的缓冲器可以是在第一内核内部的缓冲器,或者可以是在第一内核外部的缓冲器(包括被第一内核和一个或多个目的内核共享的外部缓冲器)。
在框660中缓冲数据分组之后,方法600继续回到框630,开始检查要将所缓冲的数据分组发送到的目的内核是否仍然“繁忙”。因此,方法600可以在条件确保将所缓冲的数据分组发送给目的内核之前,多次检查一个或多个目的内核是否繁忙。例如,这样的条件可以包括:关于特定目的内核不再“繁忙”的确定,关于所缓冲的数据分组马上超时使得其必须被发送的确定,关于继续缓冲的功率成本超过将数据发送给目的内核的功率成本的确定等。
一旦作出要将所缓冲的数据分组发送给一个或多个目的内核的确定,在框640处,就可以以任何期望的方式将数据分组发送给适当的目的内核。例如,使用上文的系统500作为示例,分组发送逻辑模块514可以使得将数据分组从缓冲器418B发送给适当的目的内核520/530或CPU 522/532。替代地,分组发送逻辑模块514可以使得第二内核520/CPU 522和/或第N内核530/CPU 532从共享缓冲器418B取回数据分组,诸如通过到第二内核520/CPU522或第N内核530/CPU 532的共享存储器呼叫。
图6A仅描述了用于(诸如在PCD中使用的或与PCD一起使用的处理器组件中)提供电压缩放(DCVS)感知处理器间通信的方法的一个示例性实施例。在其它实施例中,可以将额外的框或步骤添加到方法600中。类似地,在一些实施例中,可以组合或省略在图6A中示出的各个框或步骤,诸如将框630和650组合为一个确定框/步骤,而不是如上所述的在图6A中示出的两个单独的框/步骤。方法600的这种变型在本公开内容的范围内。
另外,在本说明书中描述的过程或过程流中的某些步骤自然地先于其它步骤,以使本发明如所描述的运作。但是,本发明不限于所描述的步骤的次序,如果这样的次序或顺序不改变本发明的功能的话,诸如在框610之前执行框620,如上所述。此外,要认识到的是,在不脱离本发明的范围的情况下,某些步骤可以在其它步骤之前、之后或与其它步骤并行地(大体同时地)执行。在一些实例中,可以在不脱离本发明的情况下省略或不执行某些步骤。此外,诸如“其后”、“然后”、“接下来”、“随后”等的词语不旨在限制步骤的次序。这些词语仅用于引导读者完成示例性方法的描述。
上述各种操作和/或方法可以由各种硬件和/或软件组件和/或模块执行,并且这样的组件和/或模块可以提供用于执行这样的操作和/或方法的单元。通常,在具有对应的相应模块加功能附图的附图中示出了方法的情况下,操作框与具有类似编号的模块加功能框相对应。例如,在图6A中示出的框610-660与在图6B中示出的模块加功能框610’-660’相对应。
另外,编程领域的普通技术人员能够基于例如在本说明书中的流程图和相关联的描述,在没有困难的情况下编写计算机代码或识别适当的硬件和/或电路以实现所公开的发明。因此,对程序代码指令的特定集合或详细的硬件设备的公开不被认为是获得对如何实现以及使用本发明的足够的理解所必须的。在上文描述中并且结合附图更加详细地解释了所要求保护的计算机实现过程的发明性功能,所述附图可以说明各个过程流。
在如上文指示的一个或多个示例性的方面中,所描述的功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则所述功能可以作为一个或多个指令或代码存储在计算机可读介质(诸如非暂时性处理器可读介质)中或者通过其进行传输。计算机可读介质包括计算机存储介质和通信介质两者,所述通信介质包括促进程序从一个地方传送到另一个地方的任何介质。
存储介质可以是可由计算机或处理器存取的任何可用的介质。通过举例而非限制性的方式,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储介质或其它磁存储设备、或者可以用于以指令或数据结构的形式携带或存储期望的程序代码以及可以由计算机来存取的任何其它介质。如本文所使用的,磁盘和光盘包括压缩光盘(“CD”)、激光光盘、光盘、数字多功能光盘(“DVD”)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则利用激光来光学地复制数据。上述的组合也应当包括在非暂时性计算机可读介质的范围内。
尽管已经详细地说明和描述了选择的方面,但是将理解的是,如下面的权利要求书所限定的,可以在不脱离本发明的情况下在本文中作出各种替代和改变。

Claims (30)

1.一种用于便携式计算设备(PCD)中的处理器间通信的方法,所述方法包括:
在第一处理组件处接收至少一个数据分组;
在所述第一处理组件处接收关于在动态时钟和电压缩放(DCVS)之下操作的第二处理组件的工作负荷信息;以及
至少部分地基于所接收的工作负荷信息来确定将所述至少一个数据分组从所述第一处理组件发送给所述第二处理组件还是发送给缓冲器。
2.根据权利要求1所述的方法,其中,至少部分地基于所接收的工作负荷信息来确定将所述至少一个数据分组从所述第一处理组件发送给缓冲器还是发送给所述第二处理组件还包括:
确定将所述至少一个数据分组发送给所述第二处理组件是否会使得所述第二处理组件增加所述第二处理组件的操作频率。
3.根据权利要求1所述的方法,其中,至少部分地基于所接收的工作负荷信息来确定将所述至少一个数据分组从所述第一处理组件发送给所述第二处理组件还是发送给缓冲器还包括:
确定所述第二处理组件的活动工作负荷是否超过门限值。
4.根据权利要求1所述的方法,其中,至少部分地基于所接收的工作负荷信息来确定将所述至少一个数据分组从所述第一处理组件发送给所述第二处理组件还是发送给缓冲器还是至少部分地基于可操作参数的。
5.根据权利要求4所述的方法,其中,所述可操作参数包括以下各项中的至少一项:对所述至少一个数据分组进行缓冲的功耗、服务质量(QoS)等级、以及所述至少一个数据分组是否将超时。
6.根据权利要求1所述的方法,其中,所述至少部分地基于所接收的工作负荷信息来确定将所述至少一个数据分组从所述第一处理组件发送给所述第二处理组件还是发送给缓冲器是由在所述第一处理组件外部的分组发送逻辑模块来执行的。
7.根据权利要求1所述的方法,还包括:
在所述第一处理组件处接收关于在DCVS之下操作的第三处理组件的工作负荷信息;以及
至少部分地基于所接收的关于所述第三处理组件的工作负荷信息来确定将所述至少一个数据分组从所述第一处理组件发送给所述第三处理组件还是发送给缓冲器。
8.一种用于便携式计算设备(PCD)中的处理器间通信的系统,所述系统包括:
第一处理组件,所述第一处理组件被配置为接收至少一个数据分组;
第二处理组件,所述第二处理组件与所述第一处理组件相通信,所述第二处理组件被配置为在动态时钟和电压缩放(DCVS)之下操作;
缓冲器,所述缓冲器与所述第一处理组件和所述第二处理组件相通信;
计数器,所述计数器与所述第二处理组件相通信,所述计数器被配置为获得关于所述第二处理组件的工作负荷信息;以及
分组发送逻辑单元,所述分组发送逻辑单元与所述第一处理组件和所述计数器相通信,其中,所述分组发送逻辑单元被配置为从所述计数器接收所述工作负荷信息,以及至少部分地基于所接收的工作负荷信息来确定使得所述至少一个数据分组要被发送给所述第二处理组件还是被发送给所述缓冲器。
9.根据权利要求8所述的系统,其中:
所述第二处理组件还包括DCVS模块,所述DCVS模块被配置为提供针对所述第二处理组件的动态时钟和电压缩放,并且
所述计数器是所述DCVS模块的一部分。
10.根据权利要求8所述的系统,其中:
关于所述第二处理组件的所述工作负荷信息还包括所述第二处理组件的活动工作负荷,并且
所述分组发送逻辑单元被配置为:通过确定所述第二处理组件的活动工作负荷是否超过门限值来确定将所述至少一个数据分组从所述第一处理组件发送给所述第二处理组件还是发送给缓冲器。
11.根据权利要求8所述的系统,其中,所述分组发送逻辑单元还被配置为:至少部分地基于可操作参数来确定将所述至少一个数据分组从所述第一处理组件发送给所述第二处理组件还是发送给缓冲器。
12.根据权利要求11所述的系统,其中,所述可操作参数包括以下各项中的至少一项:对所述至少一个数据分组进行缓冲的功耗、服务质量(QoS)等级、以及所述至少一个数据分组是否将超时。
13.根据权利要求8所述的系统,其中,所述分组发送逻辑单元是所述第一处理组件的一部分。
14.根据权利要求8所述的系统,其中,所述缓冲器在所述第一处理组件外部。
15.根据权利要求8所述的系统,还包括:
第三处理组件,所述第三处理组件与所述第一处理组件和所述缓冲器相通信,所述第三处理组件被配置为在动态时钟和电压缩放(DCVS)之下操作;以及
监测器,所述监测器与所述第三处理组件和所述分组发送逻辑单元相通信,所述监测器被配置为获得关于所述第三处理组件的工作负荷信息,
其中,所述分组发送逻辑单元被配置为从所述监测器接收关于所述第三处理组件的所述工作负荷信息,以及至少部分地基于所接收的工作负荷信息来确定使得所述至少一个数据分组要被发送给所述第三处理组件还是被发送给所述缓冲器。
16.根据权利要求15所述的系统,其中,所述分组发送逻辑单元包括在所述第一处理组件外部的分组发送模块。
17.一种包括非暂时性计算机可用介质的计算机程序产品,所述非暂时性计算机可用介质具有体现在其中的计算机可读程序代码,所述计算机可读程序代码适于被执行用于实现一种用于便携式计算设备(PCD)中的处理器间通信的方法,所述方法包括:
在第一处理组件处接收至少一个数据分组;
在所述第一处理组件处接收关于在动态时钟和电压缩放(DCVS)之下操作的第二处理组件的工作负荷信息;以及
至少部分地基于所接收的工作负荷信息来确定将所述至少一个数据分组从所述第一处理组件发送给所述第二处理组件还是发送给缓冲器。
18.根据权利要求17所述的计算机程序产品,其中,至少部分地基于所接收的工作负荷信息来确定将所述至少一个数据分组从所述第一处理组件发送给所述第二处理组件还是发送给缓冲器还包括:
确定将所述至少一个数据分组发送给所述第二处理组件是否会使得所述第二处理组件的所述DCVS增加所述第二处理组件的操作频率。
19.根据权利要求17所述的计算机程序产品,其中,至少部分地基于所接收的工作负荷信息来确定将所述至少一个数据分组从所述第一处理组件发送给所述第二处理组件还是发送给缓冲器还包括:
确定所述第二处理组件的活动工作负荷是否超过门限值。
20.根据权利要求17所述的计算机程序产品,其中,至少部分地基于所接收的工作负荷信息来确定将所述至少一个数据分组从所述第一处理组件发送给所述第二处理组件还是发送给缓冲器还是至少部分地基于可操作参数的。
21.根据权利要求20所述的计算机程序产品,其中,所述可操作参数包括以下各项中的至少一项:对所述至少一个数据分组进行缓冲的功耗、服务质量(QoS)等级、以及所述至少一个数据分组是否将超时。
22.根据权利要求17所述的计算机程序产品,其中,所述至少部分地基于所接收的工作负荷信息进行的确定是由在所述第一处理组件外部的分组发送逻辑模块来执行的。
23.根据权利要求17所述的计算机程序产品,还包括:
在所述第一处理组件处接收关于在动态时钟和电压缩放(DCVS)之下操作的第三处理组件的工作负荷信息;以及
至少部分地基于所接收的关于所述第三处理组件的工作负荷信息来确定将所述至少一个数据分组从所述第一处理组件发送给所述第三处理组件还是发送给缓冲器。
24.一种用于便携式计算设备(PCD)中的处理器间通信的系统,所述系统包括:
用于在第一处理组件处接收至少一个数据分组的单元;
用于在所述第一处理组件处接收关于在动态时钟和电压缩放(DCVS)之下操作的第二处理组件的工作负荷信息的单元;以及
用于至少部分地基于所接收的工作负荷信息来确定将所述至少一个数据分组从所述第一处理组件发送给所述第二处理组件还是发送给缓冲器的单元。
25.根据权利要求24所述的系统,其中,所述用于至少部分地基于所接收的工作负荷信息来确定将所述至少一个数据分组从所述第一处理组件发送给所述第二处理组件还是发送给缓冲器的单元还包括:
用于确定将所述至少一个数据分组发送给所述第二处理组件是否会使得所述第二处理组件的所述DCVS增加所述第二处理组件的操作频率的单元。
26.根据权利要求24所述的系统,其中,所述用于至少部分地基于所接收的工作负荷信息来确定将所述至少一个数据分组从所述第一处理组件发送给所述第二处理组件还是发送给缓冲器的单元还包括:
用于确定所述第二处理组件的活动工作负荷是否超过门限值的单元。
27.根据权利要求24所述的系统,其中,所述用于至少部分地基于所接收的工作负荷信息来确定将所述至少一个数据分组从所述第一处理组件发送给所述第二处理组件还是发送给缓冲器的单元还包括:
用于至少部分地基于可操作参数来确定将所述至少一个数据分组从所述第一处理组件发送给所述第二处理组件还是发送给缓冲器的单元。
28.根据权利要求27所述的系统,其中,所述可操作参数包括以下各项中的至少一项:对所述至少一个数据分组进行缓冲的功耗、服务质量(QoS)等级、以及所述至少一个数据分组是否将超时。
29.根据权利要求24所述的系统,其中,所述用于至少部分地基于所接收的工作负荷信息来进行确定的单元在所述第一处理组件外部。
30.根据权利要求24所述的系统,还包括:
用于在所述第一处理组件处接收关于在动态时钟和电压缩放(DCVS)之下操作的第三处理组件的工作负荷信息的单元;以及
用于至少部分地基于所接收的关于所述第三处理组件的工作负荷信息来确定将所述至少一个数据分组从所述第一处理组件发送给所述第三处理组件还是发送给缓冲器的单元。
CN201580012708.1A 2014-03-13 2015-03-12 用于提供动态时钟和电压缩放(dcvs)感知处理器间通信的系统和方法 Pending CN106104490A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/210,064 2014-03-13
US14/210,064 US9244747B2 (en) 2014-03-13 2014-03-13 System and method for providing dynamic clock and voltage scaling (DCVS) aware interprocessor communication
PCT/US2015/020195 WO2015138733A1 (en) 2014-03-13 2015-03-12 System and method for providing dynamic clock and voltage scaling (dcvs) aware interprocessor communication

Publications (1)

Publication Number Publication Date
CN106104490A true CN106104490A (zh) 2016-11-09

Family

ID=52774586

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580012708.1A Pending CN106104490A (zh) 2014-03-13 2015-03-12 用于提供动态时钟和电压缩放(dcvs)感知处理器间通信的系统和方法

Country Status (7)

Country Link
US (2) US9244747B2 (zh)
EP (1) EP3117319A1 (zh)
JP (1) JP2017515191A (zh)
KR (1) KR20160132422A (zh)
CN (1) CN106104490A (zh)
BR (1) BR112016020956A8 (zh)
WO (1) WO2015138733A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114385599A (zh) * 2022-03-23 2022-04-22 北京安华金和科技有限公司 一种基于内核评分机制的审计处理方法和系统
CN116931703A (zh) * 2023-09-18 2023-10-24 惠州市鑫晖源科技有限公司 基于数据分析的电竞主机电源电压调整方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9244747B2 (en) 2014-03-13 2016-01-26 Qualcomm Incorporated System and method for providing dynamic clock and voltage scaling (DCVS) aware interprocessor communication
KR102278475B1 (ko) * 2014-10-14 2021-07-19 삼성전자주식회사 전자 장치 및 그 제어 방법
KR102578648B1 (ko) * 2016-03-14 2023-09-13 삼성전자주식회사 모뎀 데이터에 따라 코어 스위칭이 수행되는 애플리케이션 프로세서 및 이를 포함하는 시스템 온 칩
US10296067B2 (en) 2016-04-08 2019-05-21 Qualcomm Incorporated Enhanced dynamic clock and voltage scaling (DCVS) scheme
WO2018013023A1 (en) * 2016-07-15 2018-01-18 Telefonaktiebolaget Lm Ericsson (Publ) A server and method performed thereby for determining a frequency and voltage of one or more processors of the server
US11054884B2 (en) 2016-12-12 2021-07-06 Intel Corporation Using network interface controller (NIC) queue depth for power state management
US10649518B2 (en) * 2017-01-26 2020-05-12 Ati Technologies Ulc Adaptive power control loop
CN107182083B (zh) * 2017-05-27 2021-08-10 努比亚技术有限公司 移动终端及数据包传输方法
WO2020082757A1 (en) * 2018-10-26 2020-04-30 Huawei Technologies Co., Ltd. Energy efficiency adjustments for cpu governor
CN112015259B (zh) * 2019-05-29 2022-06-21 芯原微电子(上海)股份有限公司 控制峰值功耗的方法及系统
KR20210022850A (ko) 2019-08-21 2021-03-04 삼성전자주식회사 반도체 장치의 성능 부스팅 제어 방법 및 이를 수행하는 반도체 장치

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101187831A (zh) * 2006-10-24 2008-05-28 国际商业机器公司 微处理器的自主动态电压和频率调节的方法和计算机系统
CN100504790C (zh) * 2004-03-29 2009-06-24 索尼计算机娱乐公司 用于使用处理任务调度实现热量管理的方法和设备
CN102053700A (zh) * 2009-11-06 2011-05-11 三星电子株式会社 动态缩放微处理器的功率水平的方法
CN102301370A (zh) * 2009-01-30 2011-12-28 惠普开发有限公司 用于集成容量规划和工作负荷管理的系统和方法
CN102687096A (zh) * 2009-12-16 2012-09-19 高通股份有限公司 用于异步地并独立地控制多核中央处理单元中的核时钟的系统和方法
US20130097443A1 (en) * 2011-10-12 2013-04-18 Qualcomm Incorporated Dynamic voltage and clock scaling control based on running average, variant and trend
US20130097415A1 (en) * 2011-10-12 2013-04-18 Qualcomm Incorporated Central Processing Unit Monitoring and Management Based On A busy-Idle Histogram

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7321942B2 (en) 2002-11-12 2008-01-22 Arm Limited Performance counter for adding variable work increment value that is dependent upon clock frequency
US8074014B2 (en) 2008-03-31 2011-12-06 Microsoft Corporation Storage systems using write off-loading
CN101403982B (zh) 2008-11-03 2011-07-20 华为技术有限公司 一种多核处理器的任务分配方法和系统
KR101543326B1 (ko) 2009-01-05 2015-08-10 삼성전자주식회사 시스템 온 칩 및 그 구동 방법
US8639862B2 (en) * 2009-07-21 2014-01-28 Applied Micro Circuits Corporation System-on-chip queue status power management
KR101303690B1 (ko) * 2009-12-09 2013-09-04 한국전자통신연구원 전력 관리 장치 및 그 방법, 전력 제어 시스템
US8346999B2 (en) * 2009-12-15 2013-01-01 Intel Corporation Dynamic receive queue balancing with high and low thresholds
US8463887B2 (en) * 2009-12-23 2013-06-11 Citrix Systems, Inc. Systems and methods for server surge protection in a multi-core system
US8533505B2 (en) 2010-03-01 2013-09-10 Arm Limited Data processing apparatus and method for transferring workload between source and destination processing circuitry
EP2490403A1 (en) * 2011-02-17 2012-08-22 Alcatel Lucent Network communication node comprising a plurality of processors for processing layers of communication and associated node
US8695008B2 (en) * 2011-04-05 2014-04-08 Qualcomm Incorporated Method and system for dynamically controlling power to multiple cores in a multicore processor of a portable computing device
US9304570B2 (en) * 2011-12-15 2016-04-05 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including power and performance workload-based balancing between multiple processing elements
US8904211B2 (en) 2012-04-27 2014-12-02 Qualcomm Innovation Center, Inc. Frequency reduction of mobile device cores based on application processing requirements
KR102001414B1 (ko) * 2012-09-27 2019-07-18 삼성전자주식회사 데이터 트랜잭션에 따라 전력공급을 제어하는 시스템-온-칩 및 그 동작방법
US9389853B2 (en) * 2012-10-05 2016-07-12 Advanced Micro Devices, Inc. Adaptive control of processor performance
WO2014062405A1 (en) * 2012-10-16 2014-04-24 Citrix Systems, Inc. Systems and methods for bridging between public and private clouds through multi-level api integration
US9251205B2 (en) * 2013-02-21 2016-02-02 International Business Machines Corporation Streaming delay patterns in a streaming environment
US9055100B2 (en) * 2013-04-06 2015-06-09 Citrix Systems, Inc. Systems and methods for HTTP-Body DoS attack prevention with adaptive timeout
US9594560B2 (en) * 2013-09-27 2017-03-14 Intel Corporation Estimating scalability value for a specific domain of a multicore processor based on active state residency of the domain, stall duration of the domain, memory bandwidth of the domain, and a plurality of coefficients based on a workload to execute on the domain
US9244747B2 (en) 2014-03-13 2016-01-26 Qualcomm Incorporated System and method for providing dynamic clock and voltage scaling (DCVS) aware interprocessor communication

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100504790C (zh) * 2004-03-29 2009-06-24 索尼计算机娱乐公司 用于使用处理任务调度实现热量管理的方法和设备
CN101187831A (zh) * 2006-10-24 2008-05-28 国际商业机器公司 微处理器的自主动态电压和频率调节的方法和计算机系统
CN102301370A (zh) * 2009-01-30 2011-12-28 惠普开发有限公司 用于集成容量规划和工作负荷管理的系统和方法
CN102053700A (zh) * 2009-11-06 2011-05-11 三星电子株式会社 动态缩放微处理器的功率水平的方法
CN102687096A (zh) * 2009-12-16 2012-09-19 高通股份有限公司 用于异步地并独立地控制多核中央处理单元中的核时钟的系统和方法
US20130097443A1 (en) * 2011-10-12 2013-04-18 Qualcomm Incorporated Dynamic voltage and clock scaling control based on running average, variant and trend
US20130097415A1 (en) * 2011-10-12 2013-04-18 Qualcomm Incorporated Central Processing Unit Monitoring and Management Based On A busy-Idle Histogram

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114385599A (zh) * 2022-03-23 2022-04-22 北京安华金和科技有限公司 一种基于内核评分机制的审计处理方法和系统
CN116931703A (zh) * 2023-09-18 2023-10-24 惠州市鑫晖源科技有限公司 基于数据分析的电竞主机电源电压调整方法
CN116931703B (zh) * 2023-09-18 2023-12-26 惠州市鑫晖源科技有限公司 基于数据分析的电竞主机电源电压调整方法

Also Published As

Publication number Publication date
EP3117319A1 (en) 2017-01-18
BR112016020956A8 (pt) 2021-06-15
JP2017515191A (ja) 2017-06-08
US20150261583A1 (en) 2015-09-17
WO2015138733A1 (en) 2015-09-17
KR20160132422A (ko) 2016-11-18
US20160124778A1 (en) 2016-05-05
BR112016020956A2 (pt) 2017-08-15
US9678809B2 (en) 2017-06-13
US9244747B2 (en) 2016-01-26

Similar Documents

Publication Publication Date Title
CN106104490A (zh) 用于提供动态时钟和电压缩放(dcvs)感知处理器间通信的系统和方法
US10631361B2 (en) Method and apparatus for providing user with information received by electronic device
US10820273B2 (en) Method for interaction between terminal and network device, and terminal
US10459514B2 (en) Coordinated multi-device power management
CN107077185B (zh) 用于基于协处理器操作提供动态服务质量水平的系统和方法
US10064141B2 (en) Core frequency/count decision-based thermal mitigation optimization for a multi-core integrated circuit
US10432926B2 (en) Method for transmitting contents and electronic device thereof
KR102257737B1 (ko) 전자장치의 처리량 제어장치 및 방법
CN102929713A (zh) 支持多操作系统并行的松散耦合异质多核处理系统
US10747489B2 (en) Method for displaying content and electronic device therefor
US9083378B2 (en) Dynamic compression/decompression (CODEC) configuration
US9628321B2 (en) Packet filtering based on dynamic usage information
US11051042B2 (en) Image processing device and method
US20150235670A1 (en) Method for creating a content and electronic device thereof
JP6211622B2 (ja) チャネル・アウェアなジョブ・スケジューリング
US20150063337A1 (en) Method for controlling transmission speed and electronic device thereof
US20170188310A1 (en) Context-assisted thermal management scheme in a portable device
US20150220371A1 (en) Energy aware information processing framework for computation and communication devices coupled to a cloud
JP2018505489A (ja) システムオンチップにおける動的メモリ利用
US9898434B2 (en) System, process control method and medium

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20161109