CN103765387B - 便携式计算装置中的分布式资源管理 - Google Patents

便携式计算装置中的分布式资源管理 Download PDF

Info

Publication number
CN103765387B
CN103765387B CN201280042249.8A CN201280042249A CN103765387B CN 103765387 B CN103765387 B CN 103765387B CN 201280042249 A CN201280042249 A CN 201280042249A CN 103765387 B CN103765387 B CN 103765387B
Authority
CN
China
Prior art keywords
nodal point
resource
node
processor
client request
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.)
Expired - Fee Related
Application number
CN201280042249.8A
Other languages
English (en)
Other versions
CN103765387A (zh
Inventor
诺曼·S·加尔加石
周峥
周一峥
维诺德·维贾雅拉詹
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 CN103765387A publication Critical patent/CN103765387A/zh
Application granted granted Critical
Publication of CN103765387B publication Critical patent/CN103765387B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • 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/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • 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/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Multi Processors (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

在具有基于节点的资源架构的便携式计算装置中,使用由第一处理器控制但对应于由第二处理器控制的第二或原生节点的第一或分布式节点间接地存取所述第二节点的资源。在界定所述架构的资源图中,每一节点表示对一个或一个以上资源的功能性的囊封,每一边缘表示客户端请求,且邻近节点表示资源相依性。由第一图界定的资源被所述第一处理器而不被所述第二处理器控制,而由第二图界定的资源被所述第二处理器而不被所述第一处理器控制。可在所述第一处理器的控制下从客户端接收所述第一节点上的客户端请求。随后,可响应于所述第一节点上的所述客户端请求在所述第二节点上发出客户端请求。

Description

便携式计算装置中的分布式资源管理
背景技术
便携式计算装置(“PCD”)正变得日益流行。这些装置可包含蜂窝式电话、便携式/个人数字助理(“PDA”)、便携式游戏控制台、便携式导航单元、掌上型计算机,和其它便携式电子装置。这些装置中的每一者可具有主要功能。举例来说,蜂窝式电话一般具有接收和发射电话呼叫的主要功能。
除了这些装置的主要功能之外,许多装置包含外围功能。举例来说,蜂窝式电话可包含如上文所描述的进行蜂窝式电话呼叫的主要功能,和静态相机、视频相机、全球定位系统(GPS)导航、网络浏览、发送和接收电子邮件、发送和接收文本消息以及即按即说能力等的外围功能。随着PCD的功能性增加,支持此类功能性所需的计算或处理能力也增加。可通过增加PCD中的处理器的数目来增加处理能力。随着计算能力和处理器的数目增加,存在更大的需要来有效地管理处理器。
例如上文所描述的功能可体现于可被称作资源的各种对应硬件和软件元件中。处理器可在例如应用程序等软件的控制下在各个时间请求各种资源。在多处理器PCD中,第一处理器可控制不同于由第二处理器控制的资源的资源。然而,可能需要第一处理器能够请求由第二处理器控制的资源。
发明内容
一种用于管理多处理器便携式计算装置中的分布式资源的方法和系统允许一个处理器针对由另一处理器控制的资源发出资源请求。在具有基于节点的软件架构的便携式计算装置中,资源可包含在节点中。在示范性实施例中,由第一处理器控制但对应于由第二处理器控制的第二节点的第一节点被例示且随后用于间接地存取第二节点的资源。第一节点可被称作分布式节点,且第二节点可被称作原生节点。第一多个资源被第一处理器控制但不被第二处理器控制。第二多个资源被第二处理器控制但不被第一处理器控制。第一多个资源可由第一有向非循环图界定,且第二多个资源可由第二有向非循环图界定。第一图的每一节点或资源表示对由第一处理器控制的一个或一个以上资源的功能性的囊封。第一图的每一边缘表示客户端请求。第一图的邻近节点表示资源相依性。同样,第二图的每一节点表示对由第二处理器控制的一个或一个以上资源的功能性的囊封。第二图的每一边缘表示客户端请求。第二图的邻近节点表示资源相依性。
根据示范性方法,第一节点上的客户端请求可在第一处理器的控制下从客户端接收。随后,可响应于第一节点上的客户端请求在第二节点上发出客户端请求。
附图说明
在图中,相同的参考数字在所有各种视图中指代相同的部分,除非另有指示。对于例如“102A”或“102B”等具有字母符号标示的参考数字,所述字母符号标示可区分同一图中存在的两个类似的部分或元件。当希望参考数字涵盖在所有图中具有相同参考数字的所有部分时,可省略参考数字的字母符号标示。
图1是说明用于便携式计算装置(“PCD”)中的分布式资源管理的系统的示范性元件的功能性框图;
图2是说明其中第一处理器需要请求由第二处理器控制的资源的例子的实例的功能性框图;
图3是管理PCD的资源的节点架构的第一方面的图;
图4是PCD的示范性资源群组的有向非循环资源图;
图5是管理PCD的资源的节点架构的第二方面的一般图;
图6是管理PCD的资源的节点架构的第二方面的具体图;
图7是说明用于创建用于管理PCD的资源的节点架构的方法的流程图;
图8是说明用于创建用于管理PCD的资源的节点架构的方法的图7的接续流程图;
图9是说明用于在PCD的软件架构中接收节点结构数据的图7到8的子方法或例程的流程图;
图10是说明用于在PCD的软件架构中创建节点的图7到8的子方法或例程的流程图;
图11是说明用于在PCD的软件架构中创建客户端的图10的子方法或例程的流程图;
图12是说明用于在PCD的软件架构中创建针对资源的客户端请求的方法的流程图;
图13说明两个处理器之间的通信路径,每一处理器控制其自身的资源图的资源;
图14是说明用于创建用于管理PCD的资源的节点架构的方法的另一流程图,其中一些资源是分布式资源;
图15是说明用于在PCD的软件架构中创建针对分布式资源的客户端请求的方法的另一流程图;
图16是说明用于在PCD的软件架构中处置针对非代理的分布式资源的状态查询的方法的流程图;
图17A是说明用于在PCD的软件架构中处置针对非代理的分布式资源的状态查询的方法的第一部分的流程图;
图17B是说明用于在PCD的软件架构中处置针对非代理的分布式资源的状态查询的方法的第二部分的流程图。
具体实施方式
词语“示范性”在本文中用于表示“充当实例、例子或说明”。在本文中描述为“示范性”的任何方面不一定解释为比其它方面优选或有利。
在此描述中,术语“应用”还可包含具有可执行内容的文件,例如:目标代码、脚本、字节代码、标记语言文件及补丁。另外,本文中所涉及的应用摂还可包含本质上不可执行的文件,例如可能需要打开的文档或需要存取的其它数据文件。
术语“内容”还可包含具有可执行内容的文件,例如:目标代码、脚本、字节代码、标记语言文件及补丁。另外,本文中所提到的“内容”还可包含本质上不可执行的文件,例如可能需要打开的文档或其它需要存取的数据文件。
如此描述中所使用,术语“组件”、“数据库”、“模块”、“系统”等意欲指代计算机相关实体,硬件、固件、硬件和软件的组合、软件或执行中的软件。举例来说,组件可为(但不限于为)在处理器上运行的进程、处理器、对象、可执行程序、执行线程、程序及/或计算机。以说明的方式,运行在计算装置上的应用程序和计算装置两者均可为组件。一个或一个以上组件可驻留在进程和/或执行线程内,且组件可位于一个计算机上且/或分布在两个或两个以上计算机之间。另外,这些组件可从上面存储有各种数据结构的各种计算机可读媒体来执行。所述组件可例如根据具有一个或一个以上数据包的信号(例如,来自一个借助于所述信号与原生系统、分布式系统中的另一组件交互及/或跨越例如因特网等网络而与其它系统交互的组件的数据)借助于原生及/或远程进程而通信。
在此描述中,术语“通信装置”、“无线装置”、“无线电话”、“无线通信装置”和“无线手持机”可互换地使用。随着第三代(“3G”)和第四代(“4G”)无线技术的到来,更大的带宽可用性已实现具有更多种无线能力的更多便携式计算装置。
在此描述中,术语“便携式计算装置”(“PCD”)用于描述在有限容量电力供应器(例如,电池)上操作的任何装置。虽然靠电池操作的PCD已经使用了数十年,但伴随着第三代(“3G”)和第四代(“4G”)无线技术的到来的可再充电电池方面的技术进步已实现具有多种能力的众多PCD。因此,PCD可为蜂窝式电话、卫星电话、寻呼机、个人数字助理(“PDA”)、智能电话、导航装置、智能本或阅读器、媒体播放器,上述装置的组合,以及具有无线连接的膝上型计算机,以及其他。
图1是用于用于实施便携式计算装置中的分布式资源管理的系统和方法的呈无线电话的形式的PCD 100的示范性非限制性方面的功能性框图。如图所示,PCD 100包含芯片上系统102,所述芯片上系统具有多核中央处理单元(“CPU”)110A、图形处理器110B以及模拟信号处理器126。这些处理器110A、110B、126可一起耦合在一个或一个以上系统总线或另一互连架构上,如所属领域的技术人员已知的。
CPU 110A可包括第零核222、第一核224等,直到第N核226,如所属领域的技术人员所理解。在替代性实施例中,作为CPU 110A和图形处理器110B的替代,还可使用一个或一个以上数字信号处理器(“DSP”),如所属领域的技术人员所理解。此外,在替代性实施例中,可包含两个或两个以上多核处理器。
如图1中所说明,显示器控制器128和触摸屏控制器130耦合到多核CPU 110A。芯片上系统102外部的触摸屏显示器132耦合到显示器控制器128和触摸屏控制器130。还包含在PCD 100中的是耦合到多核中央处理单元(“CPU”)110A的视频译码器/解码器(“codec”)134,例如,逐行倒相(“PAL”)编码器、顺序传送彩色与存储(“SECAM”)编码器、美国电视系统委员会(“NTSC”)编码器或任何其它类型的视频编码器134。视频放大器136耦合到视频编码器134和触摸屏显示器132。视频端口138耦合到视频放大器136。如图2中所描绘,通用串行总线(“USB”)控制器140耦合到CPU 110A。而且,USB端口142耦合到USB控制器140。订户身份模块(SIM)卡146也可耦合到多核CPU 110A。此外,如图1中所示,数码相机148可耦合到CPU110A。在示范性方面中,数码相机148为电荷耦合装置(“CCD”)相机或互补金属氧化物半导体(“CMOS”)相机。
如图1中进一步说明,立体声音频CODEC 150可耦合到模拟信号处理器126。另外,音频放大器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可耦合到模拟信号处理器126。RF开关170可耦合到RF收发器168和RF天线172。如图1中所示,小键盘174可耦合到模拟信号处理器126。而且,具有麦克风的单声道耳机176可耦合到模拟信号处理器126。此外,振动器装置178可耦合到模拟信号处理器126。图1还展示电力供应器180(例如,电池)耦合到芯片上系统102。在特定方面中,电力供应器180包含可再充电电池或直流“DC”电力供应器,其是从连接到AC电源的交流(“AC”)-DC变压器得到的。
PCD 100的上述元件中的一些元件可包括硬件,而其它元件可包括软件,且还有其它元件可包括硬件与软件的组合。术语“资源”在本文中用于指代任何此类元件,无论是硬件、软件或其组合,其由处理器控制。在一个方面中可将资源界定为此类元件的功能性的囊封。除了其可另有指示的地方之外,术语“处理器”在本文中用于指代例如CPU 110、图形处理器110B、模拟信号处理器126或在软件、固件或类似控制逻辑的控制下操作的任何其它处理器、控制器或类似元件等处理器。
如下文进一步详细地描述,资源的实例是在处理器上执行的软件元件。在处理器上执行的线程(例如,与执行应用程序相关的线程)可通过致使在资源上发出“请求”来存取资源。如下文所描述,通过在本发明中被称作“框架”的基于软件的系统来处理资源请求。术语“客户端”在本发明中广泛使用以指代实现请求资源的功能的元件。因此,如本文中所使用的术语,线程可创建或利用客户端来用于发出资源请求的目的。应注意,在一些情况下,资源可创建或使用客户端,使得资源可致使发出针对另一资源的请求。如下文进一步详细地描述,此类其它资源可在本文中被称作“相依”资源,这是因为请求的资源与被请求的资源之间的相依性关系。资源和客户端可由存储器中的数据结构表示。
由于资源是由多处理器PCD 100中的特定处理器控制,所以不是PCD 100中的每个处理器都具有对PCD 100中的每个资源的存取权。图2说明其中可需要PCD 100中的第一处理器202发出针对由PCD 100中的第二处理器206控制的资源204的资源请求203的例子的实例。应注意,第一处理器202还可控制多个资源205。同样,第二处理器206可控制多个额外资源207。
在其中第一处理器202正执行与(例如)视频播放器应用程序相关的线程208的例子中,线程208可要求调整第一处理器202的一个或一个以上操作参数,其增强第一处理器202的性能。(虽然出于清楚起见,将线程208和资源204在概念上说明为驻留于相应的处理器202和206中,但所属领域的技术人员应理解,根据良好理解的计算原理,可通过处理器的存储器空间中的处理器来执行或以其它方式操作此类元件。)此类操作参数可包含(例如)时钟速度和总线速度。举例来说,各种处理器可使用相同的总线时钟,但仅所述处理器中的一者可具有对总线时钟的直接(硬件层级)控制。增加时钟速度可导致(例如)视频播放器应用程序的更好的性能,因为视频的回放一般是处理能力比一些其它任务更密集的任务。处理能力通常以每秒百万指令(“MIPS”)来表达,线程208可发出对某一数目的MIPS的调用。电力管理器资源204可包含算法,所述算法响应于指定数目的MIPS的请求而致使可表示时钟速度、总线速度或其它参数的信号210的改变,其提高在所请求的MIPS水平下操作的第一处理器202。
可有可能需要线程通过第一处理器202可借以与第二处理器206通信的总线或协议所专用的应用程序接口(API)来存取电力管理器资源204。然而,下文所描述的框架可提供比资源专用和总线专用API更一致的方式来处置资源请求。如下文所描述,经由所述框架,资源请求被发出且以一致的方式被服务,而与所述请求是否针对由从其发出所述资源请求的相同处理器控制的资源或针对由不同处理器控制的资源无关。由从其发出资源请求的相同处理器控制的资源可被称作“原生”资源。由不同于从其发出资源请求的处理器的处理器控制的资源可在本文被称作“远程资源”或“分布式资源”。
图3是包括表示PCD 100的软件或硬件(或两者)的功能块的图。在线“A”左边的块表示由CPU 110A控制的PCD 100的资源。此些资源可包含:CPU 110A自身,还一般被称作第一硬件元件(硬件元件#1);用于CPU 110A的时钟442,还一般被称作第二硬件元件(硬件元件#2);总线仲裁器或调度器422,还一般被称作第三硬件元件(硬件元件#3);总线程序A-444A,还一般被称作第一软件元件(软件元件#1);总线程序B-444B,还一般被称作第二软件元件(软件元件#2);时钟程序AHB,一般被称作第三软件元件(软件元件#3);被一般指示为按键448的软件元件监视的动作或功能。CPU 110A控制上文参考的资源或具有对所述资源的存取权,因为所述资源处于CPU 110A的存储器空间内,且不存在将抑制CPU 110A存取那些资源的其它约束,例如安全约束。举例来说,CPU 110A可能够控制或存取那些资源的硬件寄存器。应注意,PCD 100可包含控制上文参考的资源之外的资源或具有对上文参考的资源之外的资源的存取权的其它CPU 110(例如参看图2)。
可包括计算机指令库的框架管理器440管理着囊封资源的功能性的节点。也就是说,可存取所述节点以间接地存取所述资源。出于方便起见,囊封资源的功能性的节点可在本文被称作包含、包括、具有等所述资源。每一节点可包含一个或一个以上资源。所述节点可在软件代码、固件或类似媒体中界定,且在PCD 100的操作期间被例示为(例如)存储器112(图1)中的数据结构。可在开动、加电、初始化、启动等序列期间或在PCD 100的操作期间的任何其它合适时间来例示节点601。应注意,本文中对例示资源、发出对资源的请求或以其它方式与资源交互的参考应被理解为意味着与包含所述资源的节点交互。对于本发明的剩余部分,将用如下文参考图5所描述的参考数字601来标示一般或非特定节点。
节点601可包含(例如)具有一般与第一硬件元件或中央处理单元110对应的单个资源的第一节点602。通过本发明中所描述的软件架构,节点601的每一资源可具备包括一个或一个以上字母数字字符的唯一名称。在图3中所说明的示范性实施例中,已向第一节点602的资源指派资源名称“/core/cpu”。此示范性资源名称一般对应于所属领域的技术人员已知的常规文件命名结构。然而,如所属领域的技术人员所认识到的,含有字母数字字符和/或符号的任何其它组合的其它类型的资源名称也在本发明的范围内。
节点601可进一步包含(例如)具有多个资源的第二节点622。在此特定示范性实施例中,第二节点622具有包括对应于总线仲裁器或调度器422的单个硬件元件的第一资源。第二节点622的第二资源包括一般对应于总线程序A 444A的第一软件元件的软件元件。第二节点622的第三资源包括一般对应于总线程序B 444B的第二软件元件的另一软件元件。所属领域的技术人员应认识到,任何组合和任何数目的用于给定节点601的资源和资源类型也在本发明的范围内。
图3还说明一般对应于两个软件元件448、450的动作或功能的第一客户端648。在图3中所说明的示范性实施例中,客户端648一般对应于可在由便携式计算装置100支持的特定应用程序模块105内发生的按键动作。然而,所属领域的技术人员应认识到,除了按键之外的软件元件的其它动作和/或功能也在本发明的范围内。下文将结合图11描述关于客户端请求648及其相应创建的进一步细节。
图3还说明特定架构性元件之间的关系。举例来说,图3说明客户端648与第一节点602之间的关系。具体来说,第一客户端648可产生用虚线说明的客户端请求675A,所述客户端请求由包括资源“/core/cpu”的第一节点602管理或处置。通常,存在预定数目或设定数目的类型的客户端请求675。下文将结合图11进一步详细地描述客户端请求675。
图3中所显示的其它关系包含用虚线680说明的相依性。相依性是另一节点601的相应资源之间的关系。相依性关系通常指示第一资源(A)依赖于可向第一资源(A)提供信息或实施某一行为的第二资源(B)。此信息可为由第二资源(B)执行的操作的结果,或其可简单地包括第一资源(A)所需的状态信息,或其任何组合。第一资源(A)和第二资源(B)可为相同节点601的部分,或其可为不同节点601的部分。应注意,客户端请求675可不仅源自例如在上文所描述的按键动作的实例中的执行的线程,而且源自其它节点601。为了从相依节点601获得信息或行为,节点601可向其相依节点601发出客户端请求675。因此,指示相依性的虚线680还可指示潜在的客户端请求675的方向。
在图3中,第一节点602取决于第二节点622,如由以第一节点602起始且延伸到622处的第二节点的相依性箭头680B所指示。图3还说明第一节点602还取决于第三节点642,如由相依性箭头680A所说明。图3还说明第二节点622取决于第四节点646,如由相依性箭头680C所说明。所属领域的技术人员认识到,用图3的虚线箭头所说明的相依性680在本质上仅是示范性的,且相应节点601之间的相依性的其它组合在本发明的范围内。
框架管理器440负责维持上文所描述的关系,其包含(但不限于)图3中所说明的客户端请求675和相依性680。一些此类关系(例如,相依性)通过资源及其节点601已在PCD100中的软件中被界定的方式存在于PCD开动时间(即,加电、初始化、启动等)处,框架管理器440在所述开动时间处存取所述软件代码以开始节点例示过程。在节点601已被例示之后,例如在执行其中应用程序调用资源的应用程序线程期间,出现其它此类关系,例如客户端请求675。无论客户端请求675源自执行应用程序线程或除了节点601之外的类似元件(例如,客户端请求675A)还是源自节点601,都通过框架管理器440来引导客户端请求675。框架管理器440引导信息在节点601之间的传送。在概念上,框架管理器440用作矩阵,通过所述矩阵,多个线程可实质上与节点601同时通信。通过多个线程可涉及不同数据,相同的框架管理器软件代码可服务多个线程。
如下文进一步详细地描述,框架管理器440可在例示节点601的相依节点即刻便例示所述节点,即,在已解析任何给定节点601的相依性680时。框架管理器440尝试例示已在PCD 100的软件架构中界定的所有节点601。当支持相依性的资源存在或处于用于处置与相依性680相关的信息的就绪状态时,完成或解析相依性680。
举例来说,由于在第一节点602与第三节点642中之间存在的相依性关系680A,如果包括单个资源“/clk/cpu”的第三节点642尚未被例示,那么包括单个资源“/core/cpu”的第一节点602可不会被框架管理器440例示。一旦第三节点642已被框架管理器440例示,那么框架管理器440可由于相依性关系680A而例示第二节点602。
如果框架管理器440无法例示特定节点601(因为其相依性680中的一者或一者以上不完整或未解析),那么框架管理器440将继续运行或执行对应于曾被成功例示的那些节点601的步骤。框架管理器440将通常跳过对可由于不完整相依性(其中尚未创建相依资源)而不存在的特定节点601的调用,且将反映所述不完整状态的消息返回到所述调用。
在例如图1中所说明的多核环境中,框架管理器440可在例如图1的第0、第一和第N核222、224和226的单独核上创建或例示节点601。只要节点601彼此不相依且在特定节点的对应相依性(下文描述)全部完整的情况下,节点601可一般在单独核上的多核环境中创建。在多处理器环境中,节点601可在例如图1的CPU 110A、图形处理器110B等各种处理器上创建或例示。也就是说,一些节点601可存在于一个处理器的存储器空间中,而其它节点601可存在于另一处理器的存储器空间中。然而,应注意,一个处理器上的节点601可不可仅经由框架管理器440让另一处理器上的节点601存取。
类似于上文所描述的(主要)框架管理器440的远程框架管理器300可与框架管理器440并行地存在或作为其扩展。远程框架管理器300与框架管理器440协作或一起工作以协调不同处理器上的节点601之间的处理器间信息传送。也就是说,远程框架管理器300帮助框架管理器440维持上文所描述的关系,例如在其中所涉及的节点601存在于不同处理器上的例子中的相依性和客户端请求。因此,一个处理器上的节点601可不会让另一其它处理器上的节点601经由框架管理器440和300的组合效果来存取。另外,框架管理器440和300的组合可执行本发明中归于框架管理器440的所有功能,无论所涉及的节点601存在于相同处理器或不同处理器上。在此多处理器实施例中,框架管理器300和440所包括的软件的个别副本可驻留于所述处理器中的每一者的域中。因此,每一处理器具有对相同框架管理器软件的存取权。
图4以有向非循环图(“DAG”)400的形式辨识出上文所描述的节点602、622、642和646。图400是界定上文所描述的软件架构的另一方式。在图理论的叙述中,图400的顶点对应于节点601,图400的边缘对应于客户端请求675,且邻近节点或顶点表示资源相依性。所属领域的技术人员将认识到,图400是作为相依性的结果的有向图且是非循环的,因为框架管理器440防止界定循环,在所述循环中,资源A取决于资源B且资源B取决于资源A。也就是说,框架管理器440将不会例示被(错误地)界定为彼此相依的两个节点601。图的非循环性质对于防止死锁是重要的,因为如下文所描述,当存取每一节点601时,会锁定所述节点(在事务处理的意义上)。假如两个节点601将在其中第一线程将存取且锁定这两个节点601中的一者同时第二线程将存取且锁定这两个节点601中的另一者的例子中彼此相依,那么两个线程都将会悬挂。然而,在其中软件开发者或在界定软件架构中所涉及的其它此类人员认为需要在软件架构中界定彼此相依的两个资源的相对少见的例子中,所述两个(或更多)资源可包含在彼此相同的节点601中。相同节点中的两个资源将共享相同的锁定状态。至少部分出于此原因,软件开发者或其它此类人员可选择在架构中界定例如节点622等多资源节点。
虽然出于清楚和方便起见,本发明可参考“节点”601而非节点601的“资源”,但应理解,可将客户端请求引导到除了节点之外的指定资源。换句话说,如上文所描述的可为囊封一个或一个以上资源的功能性的数据结构的节点601从客户端或例如另一节点601等客户端请求的其它发出者的角度来看可为透明的。从客户端的角度来看,针对资源而非节点发出请求。同样,从客户端的角度来看,状态查询、事件或架构的其它元件是与资源而非节点相关联。
例如示范性图400等资源图对于根据相依性来理解节点601的例示是有用的,下文关于图6到10进行描述。例如节点642和646等叶节点在非叶节点之前被例示,因为叶节点不具有相依性。一般来说,节点601必须在取决于其的节点可被例示之前被例示。此外,可看到,服务资源请求对应于遍历有向非循环图,其中顶点对应于节点601,边缘对应于客户端请求675,且邻近节点或顶点表示资源相依性。
在多处理器PCD 100中,第一处理器可具有对第一资源图中的第一组节点601的存取权或能够控制所述第一组节点,而第二处理器可具有对第二资源图中的第二组节点601的存取权或能够控制所述第二组节点,其中所述第一和第二资源图不共享任何资源,即它们是资源图互斥的。也就是说,在此环境中,每一处理器具有其自身的资源图,所述资源图界定不可由其它处理器存取的资源和其它元件之间的关系。本发明的分布式资源管理涉及在其中两个或两个以上处理器各自具有对其自身的资源图中的资源的存取权且不具有对另一处理器的资源图中的资源的存取权的例子中维持上文所描述的关系,例如相依性和客户端请求。
在一些实施例中,对资源的存取权的上文参考的限制可受到硬件配置限制。也就是说,处理器可不具有其可借以影响硬件装置的装置,例如寄存器,因为所述硬件装置是由另一处理器控制或在另一处理器的存储器空间中。或者,或另外,可出于例如使处理器暴露于安全风险(例如,可感染另一处理器的病毒)最少化等原因,可在软件中强加对资源的存取的限制。
图5是管理图1的PCD 100的资源的系统的软件架构500B1的另一方面的一般图。此方面出于清楚目的而在PCD 100和架构的背景下描述,在所述架构中,所涉及的所有资源和其它元件被相同处理器控制,即,它们包含于相同的资源图中。在此一般图中,每一节点601的一个或一个以上资源尚未具备唯一名称。图5的节点或资源图表500B1仅包括节点601、客户端648、事件690和由所述架构或框架管理器440支持的查询功能695。每一节点601已用椭圆形状和具有表示节点601内的资源之间的相应相依性的特定方向的箭头680来说明。
图5还说明第一节点601A的客户端648可如何向第一节点601A发出客户端请求675。在发布这些客户端请求675之后,第二节点601B可触发事件690或将响应提供给查询695,其中对应于事件690和查询695的消息流回到客户端648。
图6是管理图1的PCD 100的资源的系统的软件架构500B2的上述方面的更具体图。图6说明节点或资源图表500B2,其仅包括具有特定的又一示范性资源名称的节点601,以及对应于图3的对应物的客户端648、事件690和查询功能695。每一节点601已用椭圆形状和具有表示节点601内的资源之间的相应相依性的特定方向的箭头680来说明。
举例来说,第一节点602具有相依性箭头680B以指示第一节点602取决于第二节点622的三个资源。类似地,包括第二软件元件444B且一般用图6中的参考字母“C”标示的第三资源“/bus/ahb/sysB/”具有相依性箭头680C,所述相依性箭头指示此第三资源(C)取决于第四节点646的单个“/clk/sys/ahb”资源。
图6还说明来自可包括一个或一个以上事件690或查询功能695的节点601的输出数据。查询功能695类似于事件690。查询功能695可具有可为或可不为唯一的查询句柄。查询功能一般不在外部识别,且其一般不具有状态。查询功能695可用于确定节点601的特定资源的状态。查询功能695和事件690可与所建立的客户端648具有关系,且这些关系由方向性箭头697表示,以指示来自相应事件690和查询功能695的信息被传递到特定客户端648。
图5到6的节点或资源图500B表示在处理器的控制下存在于存储器中的且由框架管理器440管理的关系。节点或资源图500B可由框架管理器440自动产生为用于识别由框架管理器440管理的相应元件之间的关系且用于通过软件小组来排除故障的有用工具。
图7是说明用于创建或例示用于管理PCD 100的资源的软件架构的方法1000A的流程图。此方法出于清楚目的而在架构的背景下描述,在所述架构中,所涉及的所有资源和其它元件被相同处理器控制,即,它们包含于相同的资源图中。框1005是用于管理PCD 100的资源的方法或过程1000的第一例程。在框1005中,可由框架管理器440执行或运行例程来接收节点结构数据。所述节点结构数据可包括相依性阵列,所述相依性阵列概述了特定节点601与其它节点601可具有的相依性。下文将结合图9更详细地描述关于节点结构数据和此例程或子方法705的进一步细节。
接下来,在框1010中,框架管理器440可检视作为框1005中所接收的节点结构数据的部分的相依性数据。在决策框1015中,框架管理器440可确定节点结构数据是否界定叶节点601。叶节点601一般是指将基于节点结构数据创建的节点不具有任何相依性,例如图3到4中的节点642和646。如果对决策框1015的询问是肯定的,意味着用于创建当前节点的节点结构数据不具有任何相依性,那么框架管理器440继续进行到例程框1025。
如果对决策框1015的询问是否定的,那么遵循“否“分支到决策框1020,其中框架管理器确定节点结构内的全部硬相依性是否存在。硬相依性可包括其中资源在没有其便无法存在的硬相依性。同时,软相依性可包括其中资源可将相依资源用作任选步骤的软相依性。软相依性意味着可在节点架构内时创建或例示具有软相依性的节点601或节点601的资源,甚至在软相依性不存在时也如此。
软相依性的实例可包括对于含有多个资源的面向资源的节点601的操作不重要的优化特征。框架管理器440可创建或例示用于所存在的所有硬相依性的节点或资源,甚至在软相依性对于具有未创建的软相依性的那些节点或资源不存在时也是如此。可使用回调特征来参考软相依性,使得当软相依性变得可用于框架管理器440时,框架管理器440将向参考软相依性的每一回调告知软相依性现在可用。
如果对决策框1020的询问是否定的,那么遵循“否”分支到框1027,其中框架管理器440将节点结构数据存储在例如存储器等临时存储装置中,且框架管理器440创建与此未例示的节点相关联的回调特征。
如果对决策框1015的询问是肯定的,那么遵循“是”分支到框1025,其中基于在例程框1005中接收的节点结构数据来创建或例示节点601。下文将结合图9描述例程框1025的进一步细节。接下来,在框1030中,框架管理器440使用其唯一的资源名称来公布新创建的节点601,使得其它节点601可将信息发送到新创建的节点601或从所述节点接收信息。
现在参看作为图7的接续流程图的图8,在框1035中,框架管理器440向取决于新创建的节点601的其它节点601通知新创建的节点601已被例示且准备好接收或传输信息。根据一个示范性方面,在创建相依节点(比如图5的节点601B)时立即触发通知,即,递归地执行通知。因此在建构图5的节点601B的情况下,立即通知节点601A。此通知可允许建构节点601A(因为节点601B是节点601A的最终相依性)。节点601B的构造可致使其它节点601被通知,且以此类推。直到取决于节点601B的最终资源完成时才完成节点601B。
第二、稍微更复杂的实施方案是将全部通知放到单独的通知队列上,且随后在单个时间点处开始行进穿过所述队列,即,迭代地执行通知。因此在建构图5的节点601B时,将对节点601A的通知推到列表中。随后执行所述列表且通知节点601A。此致使对其它额外节点601(除了节点601A之外,图5中未说明)的通知放在相同列表上,且随后在发送对节点601A的通知之后发送所述通知。对其它节点601的通知(除了对节点601A的通知之外)直到在已完成与节点601B和节点601A相关联的所有工作之后才发生。
逻辑上,这两个实施方案是等效的,但它们在实施时具有不同的存储器消耗性质。递归实现是简单的,但可消耗任意量的堆栈空间,其中堆栈消耗随相依性图的深度而变。迭代实施方案稍微更复杂且需要多一点的静态存储器(通知列表),但堆栈使用是恒定的,而不管相依性图的深度如何,例如图5中所说明。
而且,框1035中的节点创建的通知不限于其它节点。其还可在内部用于别名建构。系统500A中的任何任意元件可使用相同机制以在节点变得不可用(不仅仅是其它节点)时请求通知。节点和非节点两者可使用相同的通知机制。
在决策框1040中,框架管理器440确定现在是否释放其它节点601或软相依性以用于基于当前节点601的创建进行创建或例示。决策框1040一般确定是否可创建资源,因为已由近来已经受创建或例示的当前节点完成某些相依性关系680。
如果对决策框1040的询问是肯定的,那么遵循“是”分支回到例程框1025,其中因为刚创建的节点601完成相依性,所以现在可创建或例示经释放的节点601。
如果对决策框1040的询问是否定的,那么遵循“否”分支到框1045,其中框架管理器440可管理如图2中所说明的软件架构的元件之间的通信。接下来,在框1050中,框架管理器440可通过使用与特定资源相关联的资源名称来继续记录或记载由资源采取的动作。框1045可由框架管理器440在框架管理器440或框架管理器440所管理的元件(例如,资源、节点601、客户端648、事件695和查询功能697)中的任一者所采取的任何动作之后执行。框1045展示节点架构的另一方面,其中框架管理器440可维持活动的运行日志,所述日志列举了由每一元件根据其由创建了特定元件(例如,节点601的资源)的创造者提供的唯一识别符或名称而执行的动作。
与现有技术相比,框1050中的列举了指派给系统的每一资源的唯一名称的此活动日志是唯一的,且可提供显著优点,例如用于调试和错误排除故障中。节点架构500A的另一独特方面是单独小组可对不同的硬件和/或软件元件彼此独立地工作,其中每一小组将能够使用唯一的且容易跟踪而不需要创建表的资源名称来翻译由其它小组和/或原始设备制造商(OEM)指派的含义较少且通常混淆的资源名称。
接下来,在决策框1055中,框架管理器440确定是否已请求框架管理器440所记载的活动日志。如果对决策框1055的询问是否定的,那么遵循“否”分支到过程结束,其中过程返回到例程1005。如果对决策框1055的询问是肯定的,那么遵循“是”分支到框1060,其中框架管理器440将包括有含义的资源名称以及由资源名称执行的相应动作的活动日志发送到输出装置,例如打印机或显示屏和/或两者。过程随后返回到上文所描述的例程框1005。
图9是说明用于接收界定PCD 100的软件架构的节点结构数据的图7的子方法或例程1005的流程图。所述接收方法可在任何合适时间发生,例如在PCD 100开动或初始化时。在此情况下,在处理器从存储器读取对应的软件代码以根据架构准备好例示节点601时接收节点结构数据。框1105是图7的子方法或例程1005中的第一步骤。在框1105中,框架管理器440可接收例如图7的CPU 110和时钟442等软件或硬件元件的唯一名称。如先前所论述,节点601必须参考至少一个资源。每一资源在系统500A中具有唯一名称。可用唯一名称来识别系统500A内的每一元件。每一元件从字符角度来看具有唯一名称。换句话说,一般来说,在系统500A内不存在具有相同名称的两个元件。根据系统的示范性方面,节点601的资源可一般在系统上具有唯一名称,但不需要客户端或事件名称是唯一的,但它们可在需要时是唯一的。
为了方便起见,可使用正斜杠“/”字符来用于创建唯一名称的常规树文件命名结构或文件命名“隐喻”,例如但不限于用于PU 110的“/core/cpu”和用于时钟442的“/clk/cpu”。然而,如所属领域的技术人员所认识到的,含有字母数字字符和/或符号的任何其它组合的其它类型的资源名称也在本发明的范围内。
接下来,在框1110中,框架管理器440可接收用于与正被创建的节点601的一个或一个以上资源相关联的一个或一个以上驱动器功能的数据。驱动器功能一般包括将由特定节点601的一个或一个以上资源完成的动作。举例来说,节点602的资源/core/cpu的驱动器功能可请求其所需的总线带宽的量和CPU时钟频率以便提供已请求的所请求的处理量。这些请求将经由节点642和节点622中的资源的客户端来作出。节点642中的/clk/cpu的驱动器功能将通常负责根据其从节点602的/core/cpu资源接收到的请求来实际设定物理时钟频率。
在框1115中,框架管理器440可接收节点属性数据。节点属性数据一般包括界定节点策略的数据,所述节点策略例如为安全性(可经由用户空间应用存取节点)、远程能力(可从系统中的其它处理器存取节点)以及可存取性(资源可支持多个同时客户端)。框架管理器440还可界定允许资源超驰默认框架行为(例如,请求评估或记录策略)的属性。
随后,在框1120中,框架管理器440可接收用于正被创建的特定节点601的自定义用户数据。所述用户数据可包括“C”编程语言领域中的技术人员所理解的无效“星形”字段。所属领域的技术人员还知晓用户数据为“信任我”字段。示范性自定义用户数据可包含(但不限于)例如频率表、寄存器图等表。框1120中所接收的用户数据未被系统500A参考,但允许在对资源的自定义未被框架管理器440辨识或完全支持的情况下进行所述自定义。此用户数据结构是“C”编程语言中既定对特定或具体使用进行扩展的基础类。
所属领域的技术人员应认识到,用于扩展特定类的具体使用的其它种类的数据结构在本发明的范围内。举例来说,在编程语言“C++”(C加加)中,等效结构可包括将变为节点601内的资源的扩展机制的关键字“公开”
接下来,在框1125中,框架管理器440可接收相依性阵列数据。所述相依性阵列数据可包括正被创建的节点601相依的一个或一个以上资源601的唯一和特定名称。举例来说,如果正创建图6的第一节点602,那么在此框1125中,相依性阵列数据可包括第一节点602相依的第二节点622的三个资源的资源名称以及第三节点642的单个资源名称。
随后,在框1130中,框架管理器440可接收资源阵列数据。资源阵列数据可包括正被创建的当前节点的参数,例如与第一节点602相关的参数(如果此第一节点602正被创建)。资源阵列数据可包括以下数据中的一者或一者以上:其它资源的名称;单位;最大值;资源属性;插入数据;以及类似于框1120的自定义用户数据的任何自定义资源数据。插入数据一般识别从软件库检索到的功能,且通常列举可由正被创建的特定节点或多个节点支持的客户端类型。所述插入数据还允许自定义客户端创建和摧毁。在框1130之后,过程返回到图7的框1010。
在图9中,已用虚线说明了属性数据框1115、自定义用户数据框1120以及相依性阵列数据框1125以指示这些特定步骤是任选的且不是任何给定节点601都需要的。同时,已用实线说明了唯一名称框1105、驱动器功能框1110以及资源阵列数据框1130以指示例程1005的这些步骤对于创建节点601一般是重要的。
图10是说明用于在PCD 100的软件架构中创建节点的图7的子方法或例程1025的流程图。例程框1205是根据一个示范性实施例的用于例示或创建节点601的子方法或例程1025中的第一例程。在例程框1205中,与正被例示的节点601相关联的一个或一个以上客户端648在此步骤中被创建。下文将结合图11进一步详细地描述例程框1205的进一步细节。
在框1210中,框架管理器可创建或例示对应于框705的节点结构数据的一个或一个以上资源。接下来,在框1215中,框架管理器440可激活在例程框1005的例程框1110中所接收的驱动器功能。根据一个示范性方面,可使用在例程框1005的资源阵列数据框1130中所接收的最大值来激活所述驱动器功能。根据另一优选的示范性方面,可使用连同来自例程1005的节点结构数据一起被传递的任选的初始值来激活每一驱动器功能。如果未提供初始数据,那么在0(最小值)处初始化驱动器功能。还通常以知晓其正被初始化的方式来激活驱动器功能。此使得资源能够执行初始化专有的任何操作,但不需要在正常或例程操作期间执行。过程随后返回到图7的步骤1030。
图11是说明用于在PCD 100的软件架构中创建或例示客户端648的图10的子方法或例程1205的流程图。框1305是例程框1205的第一步骤,其中创建一个或一个以上资源601的客户端648。在框1205中,框架管理器440接收指派给正被创建的客户端648的名称。类似于资源名称,客户端648的名称可包括任何类型的字母数字和/或符号。
接下来,在框1310中,如果存在用于正被创建的此客户端648的任何特定自定义,那么框架管理器440可接收自定义用户数据。已用虚线来说明框1310以指示所述步骤是任选的。框1310的自定义用户数据类似于上文结合节点601的资源的创建所论述的自定义用户数据。
在框1315中,框架管理器440接收指派给正被创建的特定客户端的客户端类型类别。本文的客户端类型类别可包括四种类型中的一者:(a)所需的,(b)推动,(c)向量,以及(d)等时。可取决于正由系统101管理的资源且取决于正依赖于节点601的资源的应用程序来扩展客户端类型类别。
所需的类别一般与从所需的客户端648传递到特定资源601的标量值的处理相对应。举例来说,所需的请求可包括某一数目的每秒百万指令(MIP)。同时,推动类别一般与请求的处理相对应以在一定时间周期内完成某一活动而不需要开始时间或停止时间的任何指定。
等时类别一般与对通常再现且具有良好界定的开始时间和良好界定的结束时间的动作的请求相对应。向量类别一般与通常作为需要串行或并行的多个动作的部分的数据阵列相对应。
随后,在框1320中,框架管理器440接收指示客户端648是否已被指定为同步或异步的数据。同步客户端648是这样的客户端,即通常需要框架管理器440锁定节点601的资源,直到资源601返回资源601已结束完成来自同步客户端648的所请求任务的数据和指示为止。
另一方面,异步客户端648可通过由框架管理器440存取的一个或一个以上线程并行地处置。框架440可创建对线程的回调,且在所述回调已由相应线程执行时返回一值。所属领域的技术人员应认识到,异步客户端648不锁定资源,像同步客户端648在正执行同步客户端648的任务时所做的那样。
在框1320之后,在决策框1325中,框架管理器440确定由客户端645识别的资源是否可用。如果对决策框1325的询问是否定的,那么遵循“否”分支到框1330,其中将空值或消息返回到用户,从而指示无法在此时创建客户端648。
如果对决策框1325的询问是肯定的,那么遵循“是”分支到决策框1335,其中框架管理器440启确定由客户端648识别的每一资源是否支持框1310中所提供的客户端类型。如果对决策框1335的询问是否定的,那么遵循“否”分支回到框1330,其中返回空值或消息,从而指示无法在此时创建客户端648。
如果对决策框1335的询问是肯定的,那么遵循“是”分支到框1340,其中框架管理器440在存储器中创建或例示客户端648。接下来,在框1345中,如果在框1310中接收到任何自定义用户数据,例如任选的自变量,那么可用其相应的资源将这些任选的自变量映射到特定节点601。接下来,在框1350中,新创建的客户端645耦合到处于闲置状态中或在所请求的状态上的其对应的一个或一个以上资源,如上文所描述。过程随后返回到图10的框1210。
图12是说明用于在PCD 100的软件架构中创建针对资源601的客户端请求675的方法1400的流程图。方法1400一般在如上文结合图7到11所描述的客户端和节点创建(例示)之后执行。
框1405是用于创建针对资源601的客户端请求675的方法1400中的第一步骤。此方法1400将描述如何通过框架管理器440来处置以下三种类型的客户端请求675:(a)所需的,(b)推动以及(c)向量。如上文所提及的请求675的名称所暗示,客户端请求675一般与上文所创建和描述的客户端类型相对应。
在框1405中,框架管理器440可接收与特定客户端请求675相关联的数据,所述客户端请求例如为上文提及的三种请求中的一者:(a)所需的,(b)推动以及(c)向量。与所需的请求相关联的数据一般包括从所需的客户端648传递到特定资源601的标量值。举例来说,所需的请求可包括某一数目的每秒百万指令(MIP)。推动请求包括用以在一定时间周期内完成某一活动而不需要开始时间或停止时间的任何指定的请求。用于向量请求的数据一般包括需要串行或并行地完成的多个动作的阵列。向量请求可包括任意长度的值。向量请求通常具有大小值和值阵列。节点601的每一资源可经扩展以具有指针字段,以便支持向量请求。在“C”编程语言中,所述指针字段由所属领域的技术人员所理解的联合功能支持。
接下来,在框1410中,框架管理器440通过由上文结合图11所描述的方法创建的客户端648来发出请求。随后,在框1415中,如果所述请求是所需的类型或向量类型,那么框架管理器440加倍缓冲正穿过客户端的所述请求数据。如果所述请求是推动类型,那么框架管理器440跳过框1415。
对于所需的请求,在此框1415中,来自前一请求的值被维持在存储器中,使得框架管理器440可确定在先前所请求值与当前组的所请求值之间是否存在任何差异。对于向量请求,通常不将先前请求维持在存储器中,但节点601的资源可针对特定实施方案在需要时维持所述先前请求。因此,框1415对于向量类型的请求是任选的。
在框1420中,框架管理器440计算先前组的所请求值与当前组的所请求值之间的增量或差。在决策框1425中,框架管理器确定当前组的所请求值是否等同于先前组的所请求值。换句话说,框架管理器440确定当前组的所请求值与先前组的所请求值之间是否存在差。如果在当前组的所请求值与先前组的所请求值之间不存在差,那么遵循“是”分支(其跳过框1430到框1470)到框1475,其中过程结束。
如果对决策框1425的询问是否定的,意味着所述组的所请求值相对于所述组的先前所请求值是不同的,那么遵循“否”分支到决策框1430。
在决策框1430中,框架管理器440确定当前请求是否为异步请求。如果对决策框1430的询问是否定的,那么遵循“否”分支到框1440,其中框架管理器440锁定对应于客户端请求675的资源601。如果对决策框1430的询问是肯定的,意味着当前请求是异步请求类型,那么遵循“是”分支到框1435,其中可将所述请求推到另一线程上且在框架管理器440当前管理多核系统(比如图1的多核系统)的情况下可由另一核执行。已用虚线说明框1435以指示如果PCD 100是单核中央处理系统,那么此步骤可为任选的。
随后,在框1440中,框架管理器440锁定对应于请求675的资源601。接下来,在框1445中,资源601执行一般对应于在图9的框1130中所接收的资源阵列数据的插入数据的更新功能。所述更新功能一般包括按照新客户端请求来负责新资源状态的功能。所述更新功能将其先前状态与客户端请求中的所请求状态进行比较。如果所请求的状态大于先前状态,那么更新功能将执行客户端请求。然而,如果所请求的状态等于或小于当前状态以及资源正操作的状态,那么客户端请求将不被执行以便增加效率,因为老的状态实现或满足所请求的状态。更新功能从客户端取得新的请求且将所述请求与所有其它有效请求聚集在一起以确定资源的新状态。
作为一实例,多个客户端可请求总线时钟频率。所述总线时钟的更新功能将通常采用所有客户端请求中的最大者且将其用作总线时钟的新的所需状态。这不是所有资源将使用相同更新功能的情况,但存在将由多个资源使用的一些更新功能。一些共同更新功能将采用客户端请求中的最大者、采用客户端请求中的最小者,且对客户端请求求和。或者资源可界定其自身的自定义更新功能(如果其资源需要以某一独特的方式聚集请求)。
接下来,在框1450中,框架管理器440将数据传递到对应于客户端648的资源,使得所述资源可执行节点601的资源专有的驱动器功能。驱动器功能应用更新功能所计算的资源状态。此可需要更新硬件设定、向相依资源发出请求、调用传统功能,或以上各者的某一组合。
在先前实例中,更新功能计算所请求的总线时钟频率。驱动器功能可接收所述所请求的频率且其可更新所述时钟频率控制HW在所述频率下允许。应注意,有时驱动器功能可能不满足更新功能已计算的确切所请求状态。在此情况下,驱动器功能可选择最佳满足请求的频率。举例来说,总线时钟HW可仅能够在128MHz和160MHz下运行,但所请求的状态可能是150MHz。在此情况下,驱动器功能应160MHz下运行,因为其超过所请求的状态。
接下来,在框1455中,框架440从已在框1450中执行驱动器功能的资源接收状态控制。随后,在框1460中,如果针对资源进行了界定,那么事件690可经触发,使得数据被传递回对应于事件690的客户端648。可在另一线程中处理事件。此可使锁定的资源所花费的时间量最少,且允许在如图1中所说明的多核系统中继续并行操作。可以类似于如此方法1400中所描述的如何针对资源来界定请求的方式来针对资源界定一个或一个以上事件690。换句话说,事件创建过程可使客户端创建过程最大程度地并行。与事件不同的一件事是有可能界定仅在越过某些阈值时才会被触发的事件。
对仅基于阈值才会被触发的事件的此界定实现以下通知:在资源变得超预订时(其具有比其可支持的同时用户多的同时用户),其指示系统过载条件;或当资源变低/没有时,其可允许其它物被关闭,恢复在系统变得超预订时所停用的功能性等。因为可用阈值完成事件登记,所以其减少系统必须对事件通知所做的工作量,而仅在存在一些确实必需的事情时才发生。还有可能针对每个状态改变的事件进行登记。
接下来,在任选的框1465中,如果正被处理的请求是向量请求,那么通常执行此任选的框1465。任选的框1465一般包括检查或确定以评估向量指针是否仍定位在用户传递到向量中的相同数据上。如果对此任选的框1465的询问是肯定的,意味着指针仍指向用户传递到向量中的相同数据,那么清除指针,使得对旧数据的参考不被维持。一般执行此任选的框1465来虑及在上文在正处理向量请求时所描述的与推动请求和所需的请求进行比较的加倍缓冲框1415。
随后,在框1470中,框架440解开所请求的资源,使得其它客户端请求648可被特定节点601的当前的但现在被释放的所请求资源处置。所述过程随后返回到第一框1405以用于接收下一客户端请求。
上述方法和数据结构实质上与适用于单处理器PCD 100一样适用于多处理器PCD100。然而,远程框架300(图3)可提供可增强多处理器实施例中的操作的额外特征。举例来说,远程框架300可有利地使处理器间通信的细节对应用编程者或类似人员透明。因此,举例来说,应用程序可界定客户端,所述客户端对目标资源发出请求而不必在客户端界定中包含控制所述资源的处理器域的任何识别。而是,远程框架300确保所述请求将到达所述目标资源,而不管哪一处理器控制所述客户端以及哪一处理器控制所述目标资源。另外,远程框架300管理所述处理器间通信,使得(例如)应用程序不需要包含与处理器之间的通信路径(例如,总线)的协议或其它方面相关的任何指令。此外,当不同的处理器间通信路径可使用不同的协议时,远程框架300允许资源界定与资源的其它方面一起指定一协议。下文关于图13到17来描述与分布式资源管理相关的这些和其它特征。
图13说明其中被第一处理器(未图示)控制的第一资源1302用作对应于被第二处理器(未图示)控制的第二资源1304的分布式或远程资源的实例或例子。术语“分布式资源”或“远程资源”在本发明中用于指代一个处理器上的对应于另一处理器上的“原生”资源的资源。第二资源1304在此实例中用作第二处理器的原生资源。分布式资源用作用以存取对应的原生资源的装置。在此实例中,术语“资源”可与术语“节点”互换地使用,因为应理解,资源可包含在节点中。
虚线1301说明由第一处理器(线1301的左边)控制的资源与由第二处理器(线1301的右边)控制的资源之间的划分。第一资源1302是由第一处理器控制的两个或两个以上资源中的一者。一个此类资源可为第一资源1302相依的协议资源1306。同样,第二资源1304是由第二处理器控制的两个或两个以上资源中的一者。在一些实施例中,仅分布式资源且非原生资源取决于协议资源。因此,在此些实施例中,仅第一(分布式)资源1302取决于协议资源1306。然而,在其它实施例中,任何资源可取决于协议资源。因此,在替代性实施例中,第二资源1304也可取决于协议资源(未图示)。第一资源1302和第二志愿1306也可以上文一般关于资源或节点所描述的相同方式而取决于额外资源,但出于清楚起见,此些额外资源在图13中未展示。应注意,由第一处理器控制的资源是由第一资源图(即,有向非循环图)界定,且由第二处理器控制的资源是由不与第一资源图共享任何资源的第二此类资源图界定。
第一资源1302和第二资源1304在其相应处理器的控制下能够经由通信路径1303传送信息。通信路径1303表示第一处理器与第二处理器之间的物理媒体以及用于经由所述媒体进行通信的输送协议的一个或一个以上层的组合。因此,第一资源1302与第二资源1304之间的任何通信必须符合所述协议。协议资源1306界定协议或可指向库(未图示)中的协议界定。远程框架300和(主要)框架440彼此联合操作以管理资源和它们之间的通信。如下文所描述,客户端1312在第一处理器的控制下可在第一资源1302上发出一个或一个以上资源请求。第一资源1302使用对应第二资源1304的功能性来服务资源请求。
图14是说明用于创建或例示分布式资源(例如,图13的第一资源1302)的方法1400的流程图。图14的流程图既定说明作为上文关于用于例示资源的方法(例如,图7到10所说明的方法)所描述的特征的补充或扩充所述特征的特征。因此,出于清楚起见,除了可另有指示的地方之外,在图14中可包含但未展示图7到10中的框中的任一者或全部。
如框1402所指示,框架管理器300和440接收界定节点(例如,含有第一资源1302)的节点结构数据。在示范性实施例中,以实质上与上文关于图7到10所描述的方式相同的方式来处置相依性,不同之处在于,如框1406所指示,可在任何时间例示协议资源。取决于协议资源的资源不需要一直等到其协议资源被例示。一般通过框1408来说明以上文关于图7到10所描述的方式对相依性的例示。
虽然例示一般遵循上文关于图7到10所描述的方法,但应注意,分布式资源无法被例示,直到其所对应的原生资源已被例示为止。因此,对原生资源的例示可以与对相依资源的例示可延迟对取决于其的资源的例示相同的方式来延迟对分布式资源的例示。还应注意,在第一处理器与第二处理器之间经由通信路径1310和框架管理器300和440传送的与原生资源的例示的状态相关的消息一般符合特定协议。举例来说,在例示第一处理器上的协议资源1306之后,根据远程框架管理器300而操作的第一过程可将对经编码或以其它方式符合协议的通知的请求发送到第二处理器。当第二资源1304已被例示时,根据远程框架管理器300而操作的第二处理器可通过将指示第二资源1304已被例示的响应发送到第一处理器来响应于所述对通知的请求。远程框架管理器300可管理此些通信以及其它以作为例示软件架构的过程的部分。
第一处理器上的协议资源1306可包含(除了其它功能之外)用以创建客户端(例如,图13中所示的客户端1312)以及将句柄返回到可由执行的线程使用的客户端的功能。执行的线程(例如,应用程序或其它软件元件的执行的部分)可调用所述功能以创建此客户端1312。所述线程可使用客户端1312来发出资源请求且另外以与上文一般关于客户端所描述的方式相同的方式来使用客户端1312。资源请求是协议特定的且允许线程存取第二资源1304,而不需要线程必须提供与协议相关的任何信息。从线程及其客户端的角度来看,协议可为不相关或透明的。
如框1410所指示,框架300和440确定在所接收的节点结构数据中是否指定聚集方法。如果确定指定了聚集方法,那么在分布式和原生资源(节点)中设定聚集方法,如框1412所指示。存在两种聚集类型:本地和代理。在界定资源的过程中,可选择两种聚集类型中的一者。因此,在例示资源(节点)的过程中,设定资源以执行本地聚集或远程聚集。
资源可通过将算法应用于其可“同时”接收的多个资源请求来执行本地聚集。在此上下文中,两个(或更多)请求对于其两者保持有效期间的时间是“同时的”。举例来说,第一处理器可发出资源请求以将其速度设定为50MIPS,且在第一处理器的请求已完成或以其它方式终止之前,第二处理器可发出资源请求以将其速度设定为100MIPS。可根据一种方法来执行聚集,所述方法例如为通过从所有多个资源请求的自变量中确定最大自变量、通过从所有多个资源请求的自变量中确定最小自变量,或通过任何其它合适的方法,来添加多个同时资源请求中的每一者的自变量。可在界定资源(节点)的节点结构数据中指定或界定聚集方法以及聚集类型。
所述节点结构数据可指示将把节点例示为代理节点或非代理节点。下文关于图16到17来描述其中可使用此特征的方式。如由框1414所指示,将节点类型设定为所指示的类型。在非代理节点的情况下,以节点架构所确定的方式来聚集客户端请求,且使用驱动器功能,所述驱动器功能将本地聚集的请求发送到原生资源。通过分布式资源来处置查询和事件。在代理节点的情况下,不聚集客户端请求而是将客户端请求个别地发送到原生资源。另外,将所有查询和事件转发到原生资源。
如框1416所指示,例示过程中的任何剩余步骤发生。例示分布式节点的此些方面可实质上与上文关于图7到10所描述的相同。如由框1418所指示,如果界定额外节点,那么所述方法针对那些节点重复或继续。
图15是说明用于服务客户端请求的方法1500的流程图。图15的流程图既定说明作为上文关于用于服务客户端请求的方法(例如,图12所说明的方法)所描述的特征的补充或扩充所述特征的特征。因此,出于清楚起见,除了可另有指示的地方之外,在图15中可包含但未展示图12中的框中的任一者或全部。
如由框1502所指示,分布式资源(例如,图13中的第一节点1302的分布式资源)接收客户端请求。如由框1504所指示,确定与所请求的资源相关联的聚集类型是否为本地或远程的。如果聚集类型是本地的,那么所请求的资源聚集请求自变量与在相同窗口内发生的其它请求自变量,如由框1506所指示。如上文所描述,聚集涉及处置同时的资源请求。如果与所请求的资源相关联的聚集类型是远程的,那么其将由对应的原生资源(例如,图13中的第二资源1304)决定,以聚集所述请求与其它请求。
无论是本地或远程,聚集暗示客户端请求的三种连续状态:(1)所发出的请求,(2)进行中的请求以及(3)所申请的请求。在其中同时发出客户端请求的例子中,即,两个客户端请求各自在实际上相同的时间或在彼此的上文参考的窗口内开始所发出的请求状态,首先发生的客户端请求致使锁定所请求的资源,且第二发生的客户端请求在首先发生的客户端请求之后被处置。客户端请求在进行中的请求状态期间被处置或服务。在已完成客户端请求之后,向所述客户端请求指派所申请的请求状态。在其中多个同时的客户端请求已达到所申请的请求状态的例子中,聚集开始起作用。举例来说,如果已将资源界定为使用上文参考的最大聚集方法,且客户端“A”请求50MIPS,同时,可能在数微秒之后,客户端“B”请求100MIPS,那么这些初始请求将被串行化。因此,当处理第一客户端请求时,将把资源设定为第一客户端请求的自变量或50MIPS。随后,当处理第二客户端请求时,根据最大聚集方法,将把资源设定为100,因为100是50与100中的最大者。其后,当这些初始客户端请求两者都处于所申请的请求状态中时,客户端“B”可发出对25MIPS的另一客户端请求。根据最大聚集方法,将把所请求的资源设定为50,因为50是50与25中的最大者。
如由框1508所指示,确定所请求的资源是否取决于协议资源,例如图13中的协议资源1306。如果所请求的资源取决于协议资源,那么协议资源被调用且用于使资源请求符合协议资源所界定的协议,分别如框1510和1512所指示。如框1514所指示,与所述协议相符地,反映聚集结果(框1506的结果)的资源被发送(或者,如果远程资源将执行聚集,那么资源请求被转发)到原生资源,例如图13中的第二资源1304。分布式资源的驱动器功能(未图示)调用所述协议。
虽然图15中未展示,但可实质上以与上文关于图12所描述的方式相同的方式来处置涉及分布式资源的事件。监视越过阈值的值的类型的事件可尤其有用于与代理资源组合,如下文所描述。
图16是说明用于服务对非代理类型的分布式资源的状态查询的方法1600的流程图。通过框架440来管理状态查询,如上文关于图5到6所描述。图16到17的流程图既定说明作为上文关于图5到6所描述的特征的补充或扩充所述特征的特征。因此,出于清楚起见,除了可另有指示的地方之外,在图16到17中可包含但未展示上文关于图5到6所描述的特征中的任一者或全部。
如由框1602所指示,分布式资源(例如,图13中的第一节点1302的分布式资源)接收状态查询。在此实例中,第一节点1302表示非代理节点或资源。如由框1604所指示,将状态查询转发到对应的原生资源,例如,图13中的第二资源1304。如由框1606所指示,响应于状态查询而将原生资源的状态发送回到分布式资源。如由框1608所指示,分布式资源可随后将表示原生资源的状态的状态指示提供给查询请求者(客户端)。
图17A是说明用于服务对代理类型的分布式资源的状态查询的方法1700的第一部分的流程图。如由框1702所指示,分布式资源(例如,图13中的第一节点1302的分布式资源)接收状态查询。在此实例中,第一节点1302表示代理节点或资源。如分别由框1704和1706所指示,每当分布式资源接收到原生资源的状态时,分布式资源便更新其状态以反映原生资源的状态。如由框1608所指示,分布式资源可随后将其自身状态的指示提供给查询请求者(客户端)。因此,在代理分布式资源的情况下,其状态仅在其从对应的原生资源接收到状态上的改变的通知时才改变。
如由框1604所指示,将状态查询转发到对应的原生资源,例如,图13中的第二资源1304。如由框1606所指示,响应于状态查询而将原生资源的状态发送回到分布式资源。
图17B是说明用于服务对代理类型的分布式资源的状态查询的方法1700的第二部分的流程图。此第二部分反映原生资源的角度且异步地以及与图17A中所说明的第一部分并行地操作。如由框1710所指示,监视原生资源(例如,图13的第二节点1304)的状态。如分别由框1712和1714所指示,如果检测到原生资源的状态上的改变,那么将原生资源的状态的指示发送到对应的分布式资源。
在适当例子中使用代理分布式资源可促进使处理器间业务最少化的所需目标,因为仅在原生资源的状态改变时才将状态信息从原生资源的处理器发送到分布式资源的处理器。相比而言,在非代理资源的情况下,发送状态查询,且每当分布式资源接收到状态查询时便返回状态信息。在其中(例如)这是与将在第一处理器的控制下执行的任务最相关的分布式资源而不是对应的原生资源的状态的例子中使用代理资源。
如上文关于图5到6所述,事件和查询是软件架构的相关方面。监视越过阈值的值的类型的事件可尤其有用于与代理资源组合,因为仅当原生资源的状态越过阈值时才发送处理器间消息,而非每当原生资源的状态改变时便发送处理器间消息。
鉴于以上揭示内容,所属领域的技术人员能够编写计算机代码或识别适当的硬件和/或其它逻辑或电路以基于(例如)本说明书中的流程图和相关联的描述而无困难地实施所述分布式资源管理系统和方法。因此,对于充分理解如何制作和使用所述分布式资源管理系统和方法来说,对程序代码指令或详细硬件装置的特定集合的揭示不被视为必需的。在以上描述中且结合可说明各种过程流的图更详细地阐释所主张的计算机实施的过程的发明性功能性。此外,处理器110、126、202、206等与存储器112以及存储于其中的指令的组合可用作用于执行本文中所描述的方法步骤中的一者或一者以上的装置。
在一个或一个以上示范性方面中,可以硬件、软件、固件或其任何组合来实施所描述的功能。如果以软件实施,则可将功能作为一个或一个以上指令或代码而在计算机可读媒体上进行存储或传输。计算机可读媒体包含计算机存储媒体与包括促进计算机程序从一处传递到另一处的任何媒体的通信媒体两者。存储媒体可为可由计算机存取的任何可用媒体。举例来说而非限制,此计算机可读媒体可包含RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它光学或磁性存储装置,或可用以载运或存储呈指令或数据结构形式的所要程序代码且可通过计算机存取的任何其它媒体。如本文中所使用的术语“磁盘”或“光盘”包含(但不限于)压缩光盘(“CD”)、激光光盘、光学光盘、数字多功能光盘(“DVD”)、软盘和蓝光光盘。以上各者的组合也应包含在计算机可读媒体的范围内。
虽然已详细地说明和描述了选定的方面,但将理解,在不脱离由所附权利要求书界定的本发明的精神和范围的情况下,可在其中进行各种替代和更改。

Claims (18)

1.一种用于便携式计算装置中的分布式资源管理的方法,所述便携式计算装置具有由第一处理器控制的第一多个资源以及由第二处理器控制的第二多个资源,所述方法包括:
在存储器装置中呈现由所述第一处理器控制的第一节点,其中:
所述第一节点对应于由所述第二处理器控制的第二节点;
包括所述第一节点的第一有向非循环图界定所述第一多个资源中的相依性的次序,其中:
所述第一有向非循环图的每一节点表示对由所述第一处理器控制的一个或一个以上资源的功能性的囊封,所述第一有向非循环图的每一边缘表示客户端请求,且所述第一有向非循环图的邻近节点表示资源相依性;以及
包括所述第二节点的第二有向非循环图界定所述第二多个资源中的相依性的次序,所述第二多个资源不包括所述第一多个资源中所包括的任何资源,其中:
所述第二有向非循环图的每一节点表示对由所述第二处理器控制的一个或一个以上资源的功能性的囊封,所述第二有向非循环图的每一边缘表示客户端请求,且所述第二有向非循环图的邻近节点表示资源相依性;
从由所述第一处理器控制的客户端接收所述第一节点上的客户端请求;以及
响应于所述第一节点上的所述客户端请求而在所述第二节点上发出客户端请求,其中所述第一节点取决于协议资源,所述第一节点经呈现以包含调用由所述协议资源界定的输送协议的驱动器,且所述驱动器使所述第二节点上的所述客户端请求符合所述输送协议。
2.根据权利要求1所述的方法,其中直到所述协议资源被呈现且所述第二节点被呈现才呈现所述第一节点。
3.根据权利要求1所述的方法,其进一步包括:
接收所述第一节点上的多个客户端请求;以及
所述第一节点聚集所述所接收的多个客户端请求以提供聚集结果;
其中在所述第二节点上发出客户端请求包括发出对所述聚集结果的客户端请求。
4.根据权利要求1所述的方法,其进一步包括:
接收所述第一节点上的多个客户端请求,其中在所述第二节点上发出客户端请求包括在所述第二节点上发出对应于在所述第一节点上发出的所述多个客户端请求的多个客户端请求;以及
所述第二节点聚集在所述第二节点上发出的所述多个客户端请求以提供聚集结果。
5.根据权利要求1所述的方法,其进一步包括:
从由所述第一处理器控制的客户端接收所述第一节点上的第一状态查询;
在所述第二节点上发出第二状态查询以获得所述第二节点的状态的指示;以及
所述第一节点响应于所述第一状态查询而提供所述第二节点的所述状态的所述指示。
6.根据权利要求1所述的方法,其进一步包括:
从由所述第一处理器控制的客户端接收所述第一节点上的第一状态查询;
所述第一节点响应于所述第一状态查询而提供所述第一节点的状态的指示;
检测所述第二节点的状态上的改变;以及
响应于对所述第二节点的状态上的改变的检测而将所述第二节点的所述状态的指示提供给所述第一节点。
7.一种用于便携式计算装置中的分布式资源管理的计算机系统,所述便携式计算装置具有由第一处理器控制的第一多个资源以及由第二处理器控制的第二多个资源,所述计算机系统包括:
第一处理器,其可操作以用于:
在存储器装置中呈现由所述第一处理器控制的第一节点,其中:
所述第一节点对应于由所述第二处理器控制的第二节点;
包括所述第一节点的第一有向非循环图界定所述第一多个资源中的相依性的次序,其中:
所述第一有向非循环图的每一节点表示对由所述第一处理器控制的一个或一个以上资源的功能性的囊封,所述第一有向非循环图的每一边缘表示客户端请求,且所述第一有向非循环图的邻近节点表示资源相依性;以及
包括所述第二节点的第二有向非循环图界定所述第二多个资源中的相依性的次序,所述第二多个资源不包括所述第一多个资源中所包括的任何资源,其中:
所述第二有向非循环图的每一节点表示对由所述第二处理器控制的一个或一个以上资源的功能性的囊封,所述第二有向非循环图的每一边缘表示客户端请求,且所述第二有向非循环图的邻近节点表示资源相依性;
从由所述第一处理器控制的客户端接收所述第一节点上的客户端请求;以及响应于所述第一节点上的所述客户端请求而在所述第二节点上发出客户端请求,其中所述第一节点取决于协议资源,所述第一节点经呈现以包含调用由所述协议资源界定的输送协议的驱动器,且所述驱动器使所述第二节点上的所述客户端请求符合所述输送协议。
8.根据权利要求7所述的计算机系统,其中直到所述协议资源被呈现且所述第二节点被呈现才呈现所述第一节点。
9.根据权利要求7所述的计算机系统,其中所述处理器进一步可操作以用于:
接收所述第一节点上的多个客户端请求;以及
所述第一节点聚集所述所接收的多个客户端请求以提供聚集结果;
其中在所述第二节点上发出客户端请求包括发出对所述聚集结果的客户端请求。
10.根据权利要求7所述的计算机系统,其中所述处理器进一步可操作以用于:
接收所述第一节点上的多个客户端请求,其中在所述第二节点上发出客户端请求包括在所述第二节点上发出对应于在所述第一节点上发出的所述多个客户端请求的多个客户端请求;以及
所述第二节点聚集在所述第二节点上发出的所述多个客户端请求以提供聚集结果。
11.根据权利要求7所述的计算机系统,其中所述处理器进一步可操作以用于:
从由所述第一处理器控制的客户端接收所述第一节点上的第一状态查询;
在所述第二节点上发出第二状态查询以获得所述第二节点的状态的指示;以及
所述第一节点响应于所述第一状态查询而提供所述第二节点的所述状态的所述指示。
12.根据权利要求7所述的计算机系统,其中所述处理器进一步可操作以用于:
从由所述第一处理器控制的客户端接收所述第一节点上的第一状态查询;
所述第一节点响应于所述第一状态查询而提供所述第一节点的状态的指示;
检测所述第二节点的状态上的改变;以及
响应于对所述第二节点的状态上的改变的检测而将所述第二节点的所述状态的指示提供给所述第一节点。
13.一种用于便携式计算装置中的分布式资源管理的计算机系统,所述便携式计算装置具有由第一处理器控制的第一多个资源以及由第二处理器控制的第二多个资源,所述计算机系统包括:
用于在存储器装置中呈现由所述第一处理器控制的第一节点的装置,其中:
所述第一节点对应于由所述第二处理器控制的第二节点;
包括所述第一节点的第一有向非循环图界定所述第一多个资源中的相依性的次序,其中:
所述第一有向非循环图的每一节点表示对由所述第一处理器控制的一个或一个以上资源的功能性的囊封,所述第一有向非循环图的每一边缘表示客户端请求,且所述第一有向非循环图的邻近节点表示资源相依性;以及
包括所述第二节点的第二有向非循环图界定所述第二多个资源中的相依性的次序,所述第二多个资源不包括所述第一多个资源中所包括的任何资源,其中:
所述第二有向非循环图的每一节点表示对由所述第二处理器控制的一个或一个以上资源的功能性的囊封,所述第二有向非循环图的每一边缘表示客户端请求,且所述第二有向非循环图的邻近节点表示资源相依性;
从由所述第一处理器控制的客户端接收所述第一节点上的客户端请求;以及
用于响应于所述第一节点上的所述客户端请求而在所述第二节点上发出客户端请求的装置,其中所述第一节点取决于协议资源,所述第一节点经呈现以包含调用由所述协议资源界定的输送协议的驱动器,且所述驱动器使所述第二节点上的所述客户端请求符合所述输送协议。
14.根据权利要求13所述的计算机系统,其中直到所述协议资源被呈现且所述第二节点被呈现才呈现所述第一节点。
15.根据权利要求13所述的计算机系统,其进一步包括:
用于接收所述第一节点上的多个客户端请求的装置;以及
用于所述第一节点聚集所述所接收的多个客户端请求以提供聚集结果的装置;
其中在所述第二节点上发出客户端请求包括发出对所述聚集结果的客户端请求。
16.根据权利要求13所述的计算机系统,其进一步包括:
用于接收所述第一节点上的多个客户端请求的装置,其中在所述第二节点上发出客户端请求包括在所述第二节点上发出对应于在所述第一节点上发出的所述多个客户端请求的多个客户端请求;以及
用于所述第二节点聚集在所述第二节点上发出的所述多个客户端请求以提供聚集结果的装置。
17.根据权利要求13所述的计算机系统,其进一步包括:
用于从由所述第一处理器控制的客户端接收所述第一节点上的第一状态查询的装置;
用于在所述第二节点上发出第二状态查询以获得所述第二节点的状态的指示的装置;以及
用于所述第一节点响应于所述第一状态查询而提供所述第二节点的所述状态的所述指示的装置。
18.根据权利要求13所述的计算机系统,其进一步包括:
用于从由所述第一处理器控制的客户端接收所述第一节点上的第一状态查询的装置;
用于所述第一节点响应于所述第一状态查询而提供所述第一节点的状态的指示的装置;
用于检测所述第二节点的状态上的改变的装置;以及
用于响应于对所述第二节点的状态上的改变的检测而将所述第二节点的所述状态的指示提供给所述第一节点的装置。
CN201280042249.8A 2011-09-02 2012-08-14 便携式计算装置中的分布式资源管理 Expired - Fee Related CN103765387B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/225,152 US8631414B2 (en) 2010-09-15 2011-09-02 Distributed resource management in a portable computing device
US13/225,152 2011-09-02
PCT/US2012/050815 WO2013032694A1 (en) 2011-09-02 2012-08-14 Distributed resource management in a portable computing device

Publications (2)

Publication Number Publication Date
CN103765387A CN103765387A (zh) 2014-04-30
CN103765387B true CN103765387B (zh) 2017-04-05

Family

ID=46763179

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280042249.8A Expired - Fee Related CN103765387B (zh) 2011-09-02 2012-08-14 便携式计算装置中的分布式资源管理

Country Status (7)

Country Link
US (1) US8631414B2 (zh)
EP (1) EP2751686A1 (zh)
JP (1) JP5969610B2 (zh)
KR (1) KR101618476B1 (zh)
CN (1) CN103765387B (zh)
IN (1) IN2014CN00929A (zh)
WO (1) WO2013032694A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9098521B2 (en) 2010-09-15 2015-08-04 Qualcomm Incorporated System and method for managing resources and threshsold events of a multicore portable computing device
US9152523B2 (en) 2010-09-15 2015-10-06 Qualcomm Incorporated Batching and forking resource requests in a portable computing device
US8806502B2 (en) 2010-09-15 2014-08-12 Qualcomm Incorporated Batching resource requests in a portable computing device
US8615755B2 (en) 2010-09-15 2013-12-24 Qualcomm Incorporated System and method for managing resources of a portable computing device
US9870298B2 (en) 2013-08-26 2018-01-16 Google Llc Application resource utilization management
CN105306223A (zh) * 2014-06-30 2016-02-03 中兴通讯股份有限公司 供电方法、装置及系统
US9330199B2 (en) * 2014-07-21 2016-05-03 Facebook, Inc. Striping of directed graphs and nodes with improved functionality
US9632831B2 (en) * 2014-09-29 2017-04-25 Samsung Electronics Co., Ltd. Distributed real-time computing framework using in-storage processing
US10157240B2 (en) * 2015-10-01 2018-12-18 Ebay Inc. Systems and methods to generate a concept graph
US20180121891A1 (en) * 2016-11-02 2018-05-03 Mastercard International Incorporated System and method for processing payment transactions at network edge nodes
US20180204151A1 (en) 2017-01-19 2018-07-19 Bank Of America Corporation System for platform activity gathering for alternative resource generation
CN111625376B (zh) * 2017-04-01 2023-08-04 北京忆芯科技有限公司 通过代理进行队列通信的方法与消息系统
CN108388470B (zh) * 2018-01-26 2022-09-16 福建星瑞格软件有限公司 一种大数据任务处理方法及计算机设备
US20230214272A1 (en) * 2020-08-07 2023-07-06 Xiamen Yaji Software Co., Ltd Game Engine Resource Processing Method And Apparatus, And Electronic Device And Computer-Readable Storage Medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101361056A (zh) * 2006-01-19 2009-02-04 国际商业机器公司 协调和选择从多个资源管理器获取资源的计算机协议
CN101384015A (zh) * 2008-09-28 2009-03-11 华为技术有限公司 一种分布式电信设备及分布式电信设备处理业务的方法
CN101442475A (zh) * 2007-11-24 2009-05-27 华为技术有限公司 一种分布式业务代理的方法、网络系统与网络设备

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995010805A1 (en) 1993-10-08 1995-04-20 International Business Machines Corporation Message transmission across a network
US5668993A (en) 1994-02-28 1997-09-16 Teleflex Information Systems, Inc. Multithreaded batch processing system
US6574654B1 (en) 1996-06-24 2003-06-03 Oracle Corporation Method and apparatus for lock caching
US6715145B1 (en) 1999-08-31 2004-03-30 Accenture Llp Processing pipeline in a base services pattern environment
WO2001035278A1 (en) 1999-11-10 2001-05-17 Fakhouri Sameh A A decision based system for managing distributed resources and modeling the global optimization problem
US6571354B1 (en) 1999-12-15 2003-05-27 Dell Products, L.P. Method and apparatus for storage unit replacement according to array priority
US7117273B1 (en) 2000-01-25 2006-10-03 Cisco Technology, Inc. Methods and apparatus for maintaining a map of node relationships for a network
US6799208B1 (en) 2000-05-02 2004-09-28 Microsoft Corporation Resource manager architecture
US7050807B1 (en) 2000-06-12 2006-05-23 General Dynamics Decision Systems, Inc. Hardware resource identifier for software-defined communications system
US20020087734A1 (en) 2000-12-29 2002-07-04 Marshall Donald Brent System and method for managing dependencies in a component-based system
US6901446B2 (en) 2001-02-28 2005-05-31 Microsoft Corp. System and method for describing and automatically managing resources
JP2003076563A (ja) * 2001-06-15 2003-03-14 Ntt Software Corp 分散オブジェクトミドルウェア連携方法及びプログラムを記録した記録媒体並びにプログラム
US6971098B2 (en) 2001-06-27 2005-11-29 Intel Corporation Method and apparatus for managing transaction requests in a multi-node architecture
US7114158B1 (en) 2001-10-01 2006-09-26 Microsoft Corporation Programming framework including queueing network
US6931355B2 (en) 2002-02-26 2005-08-16 Xerox Corporation Method and apparatus for providing data logging in a modular device
US7150014B2 (en) 2002-10-04 2006-12-12 Hewlett-Packard Development Company, L.P. Automatically deploying software packages used in computer systems
US7152157B2 (en) 2003-03-05 2006-12-19 Sun Microsystems, Inc. System and method for dynamic resource configuration using a dependency graph
US7334230B2 (en) 2003-03-31 2008-02-19 International Business Machines Corporation Resource allocation in a NUMA architecture based on separate application specified resource and strength preferences for processor and memory resources
GB2408361B (en) 2003-11-21 2007-07-25 Symbian Ltd Allocation of resources in a computing device
US20050183143A1 (en) 2004-02-13 2005-08-18 Anderholm Eric J. Methods and systems for monitoring user, application or device activity
US7478361B2 (en) 2004-06-17 2009-01-13 International Business Machines Corporation Method and system for managing application deployment
US7849459B2 (en) 2004-11-04 2010-12-07 International Business Machines Corporation Deploying java applications in resource constrained environments
US20060150188A1 (en) 2004-12-21 2006-07-06 Manuel Roman Method and apparatus for supporting soft real-time behavior
EP1715405A1 (en) 2005-04-19 2006-10-25 STMicroelectronics S.r.l. Processing method, system and computer program product for dynamic allocation of processing tasks in a multiprocessor cluster platforms with power adjustment
US20070136725A1 (en) 2005-12-12 2007-06-14 International Business Machines Corporation System and method for optimized preemption and reservation of software locks
US20070294364A1 (en) 2006-06-15 2007-12-20 International Business Machines Corporation Management of composite software services
US7814486B2 (en) 2006-06-20 2010-10-12 Google Inc. Multi-thread runtime system
US7711946B2 (en) 2006-08-07 2010-05-04 Oracle America, Inc. Method and apparatus for using filesystem operations to initiate device naming
GB2443229B (en) 2006-08-23 2009-10-14 Cramer Systems Ltd Capacity management for data networks
US8954045B2 (en) 2006-09-29 2015-02-10 Qualcomm Incorporated Method and apparatus for managing resources at a wireless device
US7577658B2 (en) 2006-10-06 2009-08-18 Microsoft Corporation Hierarchical locking in B-tree indexes
US8209703B2 (en) * 2006-12-08 2012-06-26 SAP France S.A. Apparatus and method for dataflow execution in a distributed environment using directed acyclic graph and prioritization of sub-dataflow tasks
EP1933237A1 (de) 2006-12-15 2008-06-18 Ubs Ag Computerimplementiertes System zur Analyse, Verwaltung, Beherrschung, Bewirtschaftung und Überwachung einer komplexen Hardware-/Softwarearchitektur
JP2008226181A (ja) 2007-03-15 2008-09-25 Fujitsu Ltd 並列実行プログラム、該プログラムを記録した記録媒体、並列実行装置および並列実行方法
US20080244507A1 (en) 2007-03-30 2008-10-02 Microsoft Corporation Homogeneous Programming For Heterogeneous Multiprocessor Systems
US8789063B2 (en) 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
US20080294777A1 (en) 2007-05-25 2008-11-27 Alexei Karve Method and apparatus for template-based provisioning in a service delivery environment
US8042122B2 (en) 2007-06-27 2011-10-18 Microsoft Corporation Hybrid resource manager
US8429645B2 (en) 2007-08-14 2013-04-23 International Business Machines Corporation Method for optimizing migration of software applications to address needs
US7575177B2 (en) 2007-10-03 2009-08-18 Mastercard International, Inc. Dual use payment device
US8196142B2 (en) 2007-12-18 2012-06-05 Oracle America, Inc. Use of external services with clusters
GB0811943D0 (en) 2008-06-30 2008-07-30 Symbian Software Ltd Computing device
GB2465784B (en) 2008-11-28 2012-07-11 Vmware Inc Computer system and method for configuring an application program in a computer system
GB2465785B (en) 2008-11-28 2012-07-04 Vmware Inc Computer system and method for resolving dependencies in a computer system
US20100162247A1 (en) 2008-12-19 2010-06-24 Adam Welc Methods and systems for transactional nested parallelism
US8510744B2 (en) 2009-02-24 2013-08-13 Siemens Product Lifecycle Management Software Inc. Using resource defining attributes to enhance thread scheduling in processors
SG166014A1 (en) 2009-04-14 2010-11-29 Electron Database Corp Pte Ltd Server architecture for multi-core systems
US8543800B2 (en) * 2009-06-10 2013-09-24 International Business Machines Corporation Hierarchical services startup sequencing
US8302105B2 (en) 2009-06-26 2012-10-30 Oracle America, Inc. Bulk synchronization in transactional memory systems
US8032682B2 (en) 2009-07-13 2011-10-04 Oracle America, Inc. System and method for device resource allocation and re-balance
US8321870B2 (en) 2009-08-14 2012-11-27 General Electric Company Method and system for distributed computation having sub-task processing and sub-solution redistribution
US8793690B2 (en) * 2009-10-09 2014-07-29 International Business Machines Corporation Generating timing sequence for activating resources linked through time dependency relationships
US8375175B2 (en) 2009-12-09 2013-02-12 Oracle America, Inc. Fast and efficient reacquisition of locks for transactional memory systems
US8745629B2 (en) * 2010-01-11 2014-06-03 Qualcomm Incorporated System and method of controlling power in an electronic device
US8510751B2 (en) * 2010-03-18 2013-08-13 International Business Machines Corporation Optimizing workflow engines
US8615755B2 (en) 2010-09-15 2013-12-24 Qualcomm Incorporated System and method for managing resources of a portable computing device
US9152523B2 (en) 2010-09-15 2015-10-06 Qualcomm Incorporated Batching and forking resource requests in a portable computing device
US9098521B2 (en) 2010-09-15 2015-08-04 Qualcomm Incorporated System and method for managing resources and threshsold events of a multicore portable computing device
US8806502B2 (en) 2010-09-15 2014-08-12 Qualcomm Incorporated Batching resource requests in a portable computing device
US8694981B2 (en) 2010-11-17 2014-04-08 Apple Inc. Shared resource dependencies

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101361056A (zh) * 2006-01-19 2009-02-04 国际商业机器公司 协调和选择从多个资源管理器获取资源的计算机协议
CN101442475A (zh) * 2007-11-24 2009-05-27 华为技术有限公司 一种分布式业务代理的方法、网络系统与网络设备
CN101384015A (zh) * 2008-09-28 2009-03-11 华为技术有限公司 一种分布式电信设备及分布式电信设备处理业务的方法

Also Published As

Publication number Publication date
JP5969610B2 (ja) 2016-08-17
EP2751686A1 (en) 2014-07-09
CN103765387A (zh) 2014-04-30
KR20140057649A (ko) 2014-05-13
JP2014528116A (ja) 2014-10-23
IN2014CN00929A (zh) 2015-04-10
US20120227053A1 (en) 2012-09-06
KR101618476B1 (ko) 2016-05-04
US8631414B2 (en) 2014-01-14
WO2013032694A1 (en) 2013-03-07

Similar Documents

Publication Publication Date Title
CN103765387B (zh) 便携式计算装置中的分布式资源管理
CN103597784B (zh) 用于动态地创建和服务便携式计算装置的交换结构内和跨所述交换结构的主装置-从属装置对的方法和系统
US8806502B2 (en) Batching resource requests in a portable computing device
US6889253B2 (en) Cluster resource action in clustered computer system incorporation prepare operation
CN100481014C (zh) 用于信息处理的系统和方法
KR101551321B1 (ko) 휴대용 컴퓨팅 디바이스에서 요청들을 스케쥴링하기 위한 방법 및 시스템
US20040199611A1 (en) Method and system for remote configuration of network devices
EP1329809B1 (en) Distributed computing system and method
JP5864754B2 (ja) ポータブルコンピューティングデバイスのリソースを管理するためのシステムおよび方法
WO2020215752A1 (zh) 图计算方法及装置
CN103098033A (zh) 用于管理便携式计算设备的资源的系统和方法
US11656902B2 (en) Distributed container image construction scheduling system and method
CN102667726A (zh) 控制电子装置中的功率的系统和方法
CN108875381A (zh) 一种支持内核模块隔离的消息服务模块的设计方案
CN113806031A (zh) 通过对象锁保护资源的方法和装置
US20130283276A1 (en) Method and system for minimal set locking when batching resource requests in a portable computing device
CN101145165A (zh) 工作流数据的持久化处理方法、装置及工作流系统
CN110908644B (zh) 状态节点的配置方法、装置、计算机设备和存储介质
CN103782277A (zh) 用于管理便携式计算装置上的平行资源请求的方法及系统
CN113110920B (zh) 区块链系统的运行方法、装置、设备和存储介质
CN103988180B (zh) 在便携式计算装置中将资源请求分批成事务及使此事务分叉
Hawick et al. Dynamic Cluster Configuration and Management using JavaSpaces.
CN113254168B (zh) 区块链系统的运行方法、装置、设备和存储介质
Saxena et al. UML modeling of a protocol for establishing mutual exclusion in distributed computer system
CN118426923A (zh) 任务管理方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170405

Termination date: 20180814

CF01 Termination of patent right due to non-payment of annual fee