CN103782277B - 用于管理便携式计算装置上的平行资源请求的方法及系统 - Google Patents

用于管理便携式计算装置上的平行资源请求的方法及系统 Download PDF

Info

Publication number
CN103782277B
CN103782277B CN201280041868.5A CN201280041868A CN103782277B CN 103782277 B CN103782277 B CN 103782277B CN 201280041868 A CN201280041868 A CN 201280041868A CN 103782277 B CN103782277 B CN 103782277B
Authority
CN
China
Prior art keywords
resource
request
client
node
frame
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.)
Active
Application number
CN201280041868.5A
Other languages
English (en)
Other versions
CN103782277A (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 CN103782277A publication Critical patent/CN103782277A/zh
Application granted granted Critical
Publication of CN103782277B publication Critical patent/CN103782277B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • 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/541Interprogram communication via adapters, e.g. between incompatible applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/76Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Advance Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明描述一种用于管理便携式计算装置“PCD”中的平行资源请求的方法及系统。所述系统及方法包含从第一客户端产生第一请求(252),所述第一请求是在第一执行线程的上下文中发出的。可将所述第一请求转递到资源(255)。所述资源可确认所述第一请求并起始非同步处理。所述资源可处理所述第一请求(256)同时允许所述第一客户端继续第一执行线程中的处理(260)。所述资源可传信所述第一请求的所述处理的完成(264)且可接收第二请求(268)。所述第二请求导致所述第一请求的所述处理的完成(270)。所述第一请求的所述处理的所述完成可包含将所述资源的本地表示更新到新状态并调用任何登记的回叫。所述资源可变得可用于服务于所述第二请求,且可处理所述第二请求。

Description

用于管理便携式计算装置上的平行资源请求的方法及系统
技术领域
本申请涉及管理资源请求,更具体而言,涉及用于管理平行资源请求的方法及系统。
背景技术
便携式计算装置(“PCD”)正变得日益风行。这些装置可包含蜂窝式电话、便携式/个人数字助理(“PDA”)、便携式游戏机、便携式导航单元、掌上型计算机及其它便携式电子装置。
PCD可运行各种类型的软件以用于提供各种功能及特征。举例来说,PCD可运行娱乐软件,其可提供例如观看视频及玩视频游戏等功能。PCD还可支持其它类型的软件,例如商业软件或书写软件(例如电子数据表、电子邮件及/或文字处理软件)。
通常,上文所描述的运行于PCD上的软件需要来自被连结在一起的各种硬件元件的动作。软件与硬件元件之间的交互可由总操作构架来控制,所述总操作构架可被视为经连结节点结构。在一些个例中,这些元件之间的交互是同步发生,其中针对特定资源的请求暂时中止元件的操作直到所述请求被确认并准许为止。在其它个例中,这些元件之间的交互是非同步发生,其中当处理针对特定资源的请求时所述请求不暂时中止元件的操作。
然而,将需要使请求元件能够确定当处理所述请求时是否允许资源继续操作。
发明内容
本发明描述一种用于管理便携式计算装置中的平行资源请求的方法及系统。在一实施例中,所述方法及系统包含从第一客户端产生第一请求,所述第一请求是在第一执行线程的上下文中发出的。可将所述第一请求转递到资源。所述资源可确认所述第一请求并起始非同步处理。所述资源可处理所述第一请求同时允许第一客户端继续第一执行线程中的处理。所述资源可传信第一请求的处理的完成且可接收第二请求。所述第二请求导致第一请求的处理的完成。第一请求的处理的完成可包含将资源的本地表示更新到新状态并调用任何登记的回叫。所述资源可变得可用于服务于第二请求,且可处理第二请求。
附图说明
在诸图中,除非另有指示,否则贯穿各视图,同样的参考数字指代同样的部分。对于例如“102A”或“102B”等具有字母符号名称的参考数字来说,所述字母符号名称可区分存在于同一图中的两个同样的部分或元件。当参考数字既定涵盖在所有图中具有相同参考数字的所有部分时,可省略参考数字的字母符号名称。
图1是功能框图,其说明用于管理便携式计算装置(“PCD”)中的平行资源请求的系统的示范性元件;
图2是功能框图,其说明所述用于管理便携式计算装置中的平行资源请求的方法及系统的实例操作环境;
图3是说明运行于单一资源上的同步线程的图;
图4是展示用于管理便携式计算装置中的平行资源请求的方法及系统的实施例的操作的图;
图5是时刻表图,其展示用于管理便携式计算装置中的平行资源请求的方法及系统的实施例的操作;
图6A及6B共同地说明流程图,所述流程图描述用于管理便携式计算装置中的平行资源请求的方法及系统的实施例的操作;
图7A是节点架构的第一方面的图,所述节点架构管理图1的便携式计算装置的资源;
图7B是节点架构的第二方面的总图,所述节点架构管理图1的便携式计算装置的资源;
图7C是节点架构的第二方面的详图,所述节点架构管理图1的便携式计算装置的资源;
图7D是流程图,其说明一种用于产生用于管理便携式计算装置的资源的节点架构的方法;
图7E是图7D的延续流程图,其说明一种用于产生用于管理便携式计算装置的资源的节点架构的方法;
图8是流程图,其说明图7D的用于在便携式计算装置中的软件架构中接收节点结构数据的子方法或例程;
图9是流程图,其说明图7D到7E的用于在便携式计算装置的软件架构中产生节点的子方法或例程;
图10是流程图,其说明图9的用于在便携式计算装置的软件架构中产生客户端的子方法或例程;以及
图11是流程图,其说明一种用于在便携式计算装置的软件架构中产生针对资源的客户端请求的方法。
具体实施方式
词语“示范性”在本文中用以意味着“充当实例、个例或说明”。不必将本文中描述为“示范性”的任何方面解释为优选或优于其它方面。
在此描述中,术语“应用程序”还可包含具有可执行内容的文件,例如:目的码、指令码、字节码、标记语言文件及修补程序。另外,本文中所引用的“应用程序”还可包含实质上不可执行的文件(例如,可能需要开启的文档或需要存取的其它数据文件)。
术语“内容”还可包含具有可执行内容的文件,例如:目的码、指令码、字节码、标记语言文件及修补程序。另外,本文中所提及的“内容”还可包含实质上不可执行的文件(例如,可能需要开启的文档或需要存取的其它数据文件)。
如在此描述中所使用,术语“组件”、“数据库”、“模块”、“系统”及其类似者既定指代计算机相关实体,其可为硬件、固件、硬件与软件的组合、软件或执行中的软件。举例来说,组件可为(但不限于)在处理器上运行的进程、处理器、物件、可执行程序、执行线程、程序及/或计算机。通过说明,运行于计算装置上的应用程序与所述计算装置两者皆可为组件。一个或一个以上组件可驻存于进程及/或执行线程内,且组件可定位于一个计算机上及/或分散于两个或两个以上计算机之间。另外,这些组件可从各种计算机可读媒体执行,所述计算机可读媒体具有存储于其上的各种数据结构。所述组件可例如根据具有一个或一个以上数据包(例如,来自与本地系统、分布式系统中的另一组件交互及/或通过信号而跨越例如因特网等网络与其它系统交互的一个组件的数据)的信号通过本地及/或远程过程而通信。
在此描述中,术语“通信装置”、“无线装置”、“无线电话”、“无线通信装置”及“无线手持机”可互换地使用。随着第三代(“3G”)及第四代(“4G”)无线技术的出现,更大的带宽可用性已允许实现更多的具有广泛多种无线能力的便携式计算装置。
在此描述中,术语“便携式计算装置”(“PCD”)用以描述依靠有限容量的电力供应器(例如电池)操作的任何装置。虽然电池操作的PCD已使用了数十年,但与第三代(“3G”)及第四代(“4G”)无线技术的出现相结合的可再充电电池的技术进步已允许实现具有多种能力的众多PCD。因此,PCD可尤其为蜂窝式电话、卫星电话、寻呼机、个人数字助理(“PDA”)、智能电话、导航装置、智能型笔记本计算机或阅读器、媒体播放器、上述装置的组合及具有无线连接的膝上型计算机。
图1是用于实施用于管理便携式计算装置中的平行资源请求的方法及系统的PCD100(呈无线电话的形式)的示范性、非限制性方面的功能框图。如所示,PCD100包含芯片上系统102,所述芯片上系统102具有多核心、中央处理单元(“CPU”)110A、图形处理器110B及模拟信号处理器126。如所属领域的技术人员已知,这些处理器110A、110B、126可在一个或一个以上系统总线或另一互连架构上耦合在一起。
如所属领域的技术人员所理解,CPU110A可包括第零核心222、第一核心224及第N核心226。在一替代性实施例中,如所属领域的技术人员所理解,代替使用CPU110A及图形处理器110B,还可使用一个或一个以上数字信号处理器(“DSP”)。另外,还可使用两个或两个以上多核心处理器。
PCD100可包括由处理器110执行的内部芯片总线(“ICB”)驱动器模块103。所属领域的技术人员将认识到,在不背离本发明的情况下,每一ICB驱动器模块103可包括一个或一个以上软件模块,所述一个或一个以上软件模块可划分为各个部分且由不同处理器110、126执行。
可存在两种类型的ICB驱动器模块103:上层(“UL”)类型103A;及下层(“LL”)类型103B。大体来说,ULICB驱动器类型103A将通常由可支持各种应用程序模块105的一个或一个以上处理器110、126执行。LLICB驱动器类型103B将通常由一个称作资源功率管理器107的硬件元件执行。
运行LLICB驱动器103B的资源功率管理器107将大体负责应用及设定带宽值。这些带宽值将由资源功率管理器107应用于下文结合图2所描述的一个或一个以上总线及/或开关组构。资源功率管理器107大体负责设定开关组构及总线的时钟速度以及从属件(slave)的时钟速度。从属件大体上为支持来自运行应用程序105的主控处理器110的请求的硬件组件。
与资源功率管理器107组合的ICB驱动器103A、103B允许针对可存在于类似的开关组构内及/或存在于不同的开关组构中的硬件组件在运行时间动态地产生主从对。ICB驱动器103A、103B及资源功率管理器107可实时地(on-the-fly)或实时地计算及调整用于开关组构及总线的带宽。
在一特定方面中,本文中所描述的方法步骤中的一者或一者以上可通过存储于存储器112中的包含ICB驱动器103A、103B的可执行指令及参数来实施。形成ICB驱动器103A、103B的这些指令可由CPU110A、模拟信号处理器126及资源功率管理器107来执行。另外,处理器110A、126、资源功率管理器107、存储器112、存储于其中的指令或其组合可充当用于执行本文中所描述的方法步骤中的一者或一者以上的装置。
如图1中所说明,显示控制器128及触摸屏控制器130耦合到多核心CPU110A。位于芯片上系统102外部的触摸屏显示器132耦合到显示控制器128及触摸屏控制器130。
图1还说明视频编码器/解码器(“编解码器”)134,例如,相交替线(“PAL”)编码器、电视显示技术(sequentialcouleuravecmemoire)(“SECAM”)编码器、全国电视系统委员会(“NTSC”)编码器或耦合到多核心CPU110A的任何其它类型的视频编码器134。视频放大器136耦合到视频编码器134及触摸屏显示器132。视频端口138耦合到视频放大器136。通用串行总线(“USB”)控制器140耦合到CPU110A。而且,USB端口142耦合到USB控制器140。用户识别模块(SIM)卡146还可耦合到CPU110A。另外,如图1中所示,数码相机148可耦合到CPU110A。在一示范性方面中,数码相机148为电荷耦合装置(“CCD”)相机或互补金氧半导体(“CMOS”)相机。
如图1中进一步说明,立体声音频CODEC150可耦合到模拟信号处理器126。此外,音频放大器152可耦合到立体声音频CODEC150。在一示范性方面中,第一立体声扬声器154及第二立体声扬声器156耦合到音频放大器152。图1展示麦克风放大器158还可耦合到立体声音频CODEC150。另外,麦克风160可耦合到麦克风放大器158。在一特定方面中,调频(“FM”)无线电调谐器162可耦合到立体声音频CODEC150。而且,FM天线164耦合到FM无线电调谐器162。另外,立体声头戴式耳机166可耦合到立体声音频CODEC150。
图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变压器得到的DC电力供应器。
如图1中所描绘,触摸屏显示器132、视频端口138、USB端口142、相机148、第一立体声扬声器154、第二立体声扬声器156、麦克风160、FM天线164、立体声头戴式耳机166、RF开关170、RF天线172、小键盘174、单声道耳机176、振动器178及电力供应器180是在芯片上系统322外部。
图2是功能框图,其说明所述用于管理便携式计算装置中的平行资源请求的方法及系统的实例操作环境200。所述操作环境200包含两个处理器,在此实例中,所述处理器可为CPU110A及资源功率管理器107。资源(在此实施例中其可为系统总线207)由资源功率管理器107管理。另一资源(在此实施例中其可为用于系统总线207的资源代理207A)位于CPU110A上且由所述CPU110A管理。资源代理被定义为远程资源的本地表示,所述本地表示的状态反映远程资源的状态。
在另一实施例中,可由充当客户端与资源之间的接口的构架来代替资源代理207A,所述构架经实施为CPU110A上的函数库。下文描述此构架的实例。
如上文所描述,CPU110A包括第0核心222、第一核心224及第N核心226。然而,CPU110A还可为单核心处理器,其中CPU110A将为唯一的处理器。在以下的描述中,虽然CPU110A包括多个核心,但CPU110A将被称作单处理器(singularprocessor)。类似地,资源功率管理器107可包括一个或一个以上核心。
CPU110A上的每一核心可运行一个或一个以上线程。线程是处理器上的执行单元,且在给定核心上在任何给定的时间点仅一个线程可为在作用中的。在一个或一个以上线程的上下文中产生客户端且发出请求。在下文的论述中,术语客户端(或若干客户端)及线程(或若干线程)可互换地使用。当客户端发出请求时,其意味着在有效线程的上下文中执行的客户端发出请求。同样地,在客户端在继续进行之前等待对请求的响应的意义上,将所述客户端称为同步的,此意味着客户端在其中发出请求的线程被暂时中止直到接收到响应为止。应注意,可在单一线程的上下文中产生多个客户端,但出于此描述的目的,在给定线程中在给定的时间点仅一个客户端是在作用中的。
在图2中所示的实例中,第一客户端201及第二客户端202各自运行于第0核心222上。第三客户端204经展示为运行于第一核心224上且第N客户端206经展示为运行于第N核心226上。然而,客户端与各个核心的耦合是任意的且是仅出于说明性目的而展示于图2中。在CPU110A为单核心处理器的实施例中,所有所述客户端将运行于CPU110A上。另外,在以下的描述中,还可将客户端与CPU110A内的各个核心之间的操作交互中的任一者描述为直接发生于CPU110A与相应客户端之间。
将CPU110A展示为通过虚线211经由资源代理207A耦合到系统总线207,而将系统总线207展示为经由实线212耦合到资源功率管理器107。此连接拓扑是为了指示资源功率管理器107管理系统总线207,而CPU110A具有经由资源代理207A对系统总线207的逻辑存取,但并不主动地管理其。
还将资源代理207A展示为包含旗标213,所述旗标213表示条件变量的状态。条件变量表达或表示在给定的时间点可为真或可为非真的某一条件。可传信所述条件变量以指示所表达的条件在当前为真,且可等待所述条件变量直到条件为真的。在此实例中,由旗标213表达的条件变量指代对总线207的给定请求是否得到服务。当所述请求得到服务时,所述条件变量被传信(CV/S)(或设定旗标213)以指示此状态。在那之前,所述条件变量未被传信(CV/NS)。下文将更详细地描述旗标213的操作。
大体来说,将使用客户端201、202、204及206中的任一者对资源(在此实例中为系统总线207)进行请求的实例来描述用于管理便携式计算装置中的平行资源请求的方法及系统。由于CPU110A不主动地管理系统总线207,所以其经由资源代理207A而将客户端请求转递到管理系统总线207的处理器。在此实例中,管理系统总线207的处理器是资源功率管理器107。因此,来自(例如)客户端201的请求被从CPU110A发送到资源功率管理器107,如由线208指示。当所述请求得到服务时,回复(呈中断的形式)被从资源功率管理器107发送到CPU110A,如由参考数字209指示。从资源功率管理器107发送到CPU110A的中断由CPU110A上的中断服务例程(ISR)处置。所述ISR将传信变量旗标213的条件,从而导致其将状态从“条件变量未传信”(CV/NS)改变到“条件变量被传信”(CV/S)。下文将更详细地描述中断的影响。
将参看图3、4、5及6来进一步描述用于管理便携式计算装置中的平行资源请求的方法及系统的操作。
图3是说明运行于处理器(在此实例中为CPU110A)上的客户端的图。在216处,客户端正在运行且发出资源请求,所述资源请求由CPU110A上的资源代理207A转递到资源功率管理器107,如由参考数字217指示。所述请求可针对由资源功率管理器107管理的任何资源。在点215处,当由资源功率管理器107来处理所述请求时,客户端在CPU110A上停止运行(或被暂时中止或封锁),如由参考数字218指示。一旦资源功率管理器107处理了所述请求,便将确认(例如,呈中断的形式)从资源功率管理器107发送到CPU110A,如由参考数字219指示,藉此,在点220处,客户端在CPU110A上恢复运行,如由参考数字221指示。将此请求称作同步请求,因为运行于CPU110A上的客户端线程216在由资源功率管理器107处理所述请求时在点215处暂时中止,且直到由CPU110A接收到确认219时的点220才恢复。然而,存在一些个例,其中需要使客户端在等待请求被处理的时间期间执行某一其它工作。也有可能客户端无需等待来自资源功率管理器107的确认且可简单地继续运行。可将此请求称为“自主导引(fire-and-forget)”请求。自主导引请求的实例将为客户端关闭资源的请求。客户端(且扩展来说,客户端正在其中运行的线程)不必等待到此动作完成才继续。图4中描述此方法的实例。
图4是展示用于管理便携式计算装置中的平行资源请求的方法及系统的实施例的操作的图。在图4中,第一线程231是在CPU110A中开始。在点232处,来自此线程中的客户端的请求由资源代理207A从CPU110A转递到资源功率管理器107。在一实施例中,所述请求可来自(例如)请求系统总线207上的某一带宽量的第一客户端201。举例来说,系统总线207可以每秒100百万位元(MB/s)的带宽操作,但客户端201将希望其以200MB/s操作。因此,由参考数字234指示的请求是对资源功率管理器107(其管理系统总线207)的请求,其是请求系统总线207上的额外带宽以允许第一客户端201以更高带宽操作。
在点232处,所述请求被从CPU110A上的资源代理207A转递到资源功率管理器107。然而,由于第一客户端201不必等待直到系统总线207上的可用带宽经增加以继续操作(第一客户端201可以较低带宽运行直到资源功率管理器107增加系统总线207上可用的带宽,在增加后,第一客户端201自动地开始使用较高带宽),第一客户端201可通过传入偏好设定而向CPU110A上的资源代理207A指示此。
所述偏好设定可由第一客户端201指定且其确定资源是否可被分叉以允许平行或非同步处理。偏好设定的实例包含(但不限于)ALLOWED(允许)、DISALLOWED(不允许)及DEFAULT(默认)。偏好设定ALLOWED(允许)及DISALLOWED(不允许)明确地允许或不允许如上文所描述的平行处理。偏好设定DEFAULT(默认)通知资源客户端允许所述资源关于是否分叉而作出其自己的决定,只要其不影响客户端行为便可。举例来说,如果指定偏好设定DEFAULT(默认),则资源可选择将关闭资源或取消先前所要求的请求的所有请求分叉。关闭资源或取消先前的请求的请求通常指示客户端对此请求后的资源状态不感兴趣且所述资源可将此请求分叉并立即传回到客户端。然而,如果请求是针对特定值且偏好设定为DEFAULT(默认),则其不能将此请求分叉,因为客户端可预期在控制传回到客户端之前所述资源处于(至少)此特定状态。
偏好设定由CPU110A上的资源代理207A用来以非同步方式将请求转递到资源功率管理器107,使得当所述请求得到服务时,第一客户端201或第一客户端201正在其中运行的线程不被暂时中止。在此个例中,CPU110A继续可用以执行在231处开始的线程且如由参考数字237所指示进行操作。当因此发出资源请求但所述资源请求尚未得到服务,或发出所述请求且所述请求得到服务但所述新状态尚未由CPU110A上的资源代理207A确认或客户端不可看见(即,假如客户端将查询所述资源的状态,则其将会仍“看见”旧状态)时,将所述请求及所述资源标记为“分叉”。术语“分叉”指代资源处于不相干状态的条件(在发出了对资源的最后请求,但尚未得到服务;或如果得到服务,则资源的本地表示(如由资源代理207A维护)尚未更新到新状态的意义上)。资源代理207A还可登记在请求实际得到服务之后将被调用的回叫。在此回叫中,资源代理207A可选择执行取决于资源正处于新(被请求)状态的其它动作。举例来说,有可能在增加系统总线207的带宽之后应将时钟资源(未图示)设定到新值。在此状况下,资源代理207A将在回叫中发出对时钟资源(未图示)的请求,因此确保仅在对系统总线207的请求得到服务之后才执行对时钟资源(未图示)的请求。与此同时,资源功率管理器107处理所述请求(如由参考数字235指示)且将确认发送到CPU110A(指示于参考数字236处)。确认236对应于经由连接209(如图2中所示)所传达的中断。CPU110A上的处置/服务于此中断的中断服务例程(ISR)将与旗标213相关联的条件变量设定到“经传信”状态(即,CV/S)。此动作指示主题资源现为“可加入的”。术语“可加入”指代资源(例如,系统总线207)已服务于所述请求、已移到新状态且已向请求处理器上的资源代理207A指示此新状态的条件。当由CPU110A上的客户端201、202、204及206中的一者发出对系统总线207的后续请求时,所述资源“被加入”。术语“被加入”指代资源代理207A将资源(在此实例中为系统总线207)的本地表示更新到新状态,因此使所述资源为相干的且能够服务于新请求的动作。资源代理207A还将执行其已在分叉处登记的任何回叫,如上文所描述。其将接着处置新请求。
如图4中进一步展示,执行于线程(指示于参考数字241处)中的第二客户端或执行于新线程中的同一客户端201在点242处作出对系统总线207的新请求。因此,在点242处,资源(在此实例中为系统总线207及其本地资源代理207A)被“加入”,此是可能的,因为与旗标213相关联的条件变量被设定(CV/S)且将资源标记为“可加入”,如上文所描述。如果在点242处,当第二请求到达资源代理207A时,系统总线207尚未为“可加入”的,则所述请求及所述请求在其中执行的线程将封锁直到来自资源功率管理器107的中断将资源标记为“可加入”。此新线程中的处理接着如由参考数字244指示而继续。
图5是时刻表图,其展示用于管理便携式计算装置中的平行资源请求的方法及系统的实施例的操作。在时间t0,运行于CPU110A上的第一客户端201开始工作(如使用参考数字251所说明)。在时间t1,第一客户端201经由本地资源代理207A而发出针对远程资源(例如系统总线207)的请求,如指示于参考数字252处。所述请求被接收于本地资源代理207A处且开始在CPU110A上执行(如使用参考数字254所说明)。在时间t2,资源代理207A将请求转递到第二处理器(资源功率管理器107),如使用参考数字255所说明。当资源功率管理器107接收到所述请求时,资源功率管理器107开始执行及处理所述请求,如使用参考数字256所说明。根据用于管理便携式计算装置中的平行资源请求的方法及系统的实施例,假定第一客户端201允许请求的“分叉”,则在时间t3,资源代理207A以非同步方式处理所述请求(即,通过向远程处理器(资源功率管理器107)发出所述请求,但不等待直到所述请求得到服务及确认)且传回到第一客户端201,如使用参考数字257所指示。第一客户端201现继续工作,如使用参考数字260所指示。如在时刻表中所示,由第一客户端201在指示于260处的周期期间执行的工作是与由资源功率管理器107在由256指示的时间周期期间执行的工作平行地发生。所述请求由资源代理207A传回到第一客户端201所处的点258被称作“分叉”点。所述分叉点指示:在点258处,资源或请求分叉以允许同时在资源功率管理器107中及在客户端201中的平行处理。
在时间t4,发生到第二线程的上下文切换,如使用参考数字266所指示。在时间t5,资源功率管理器107将中断(如使用参考数字261所指示)发送到CPU110A上的资源代理207A。CPU110A中的处置此中断的中断服务例程(ISR)将条件变量旗标213(图2)设定到“经传信”(CV/S)状态,如使用参考数字264所指示。在点265处,系统总线207被视为“可加入”且可用以处理后续请求。
在时间t7,执行于CPU110A上的第二线程中的第二客户端202经由资源代理207A而发出对系统总线207的第二请求,如使用参考数字268所指示。从系统总线207的观点,可将所述请求268视为“后续”请求。当接收到所述后续请求时,资源代理207A检查并确定系统总线207处于可加入状态且可被“加入”。在点270处,在第二线程的上下文中加入系统总线207。此意味着在点265处系统总线207被视为“可加入的”,但在点270处被“加入”,以便处理来自第二客户端202的第二线程中的后续请求268。资源(在此实例中为系统总线207)因此可处于三种状态(分叉、可加入及被加入)中的一者。从资源被分叉的点起,将资源视为处于不相干状态,此意味着请求被接收但尚未得到处理,或如果得到处理,则尚未用实际(新)资源状态来更新资源的本地表示。在此状态下,资源不能处理后续请求。因此,在资源可处理后续请求268之前,资源被“加入”(即,在点270处使其为相干的)。指示于271处的时间周期说明来自第二客户端202之后续请求268由资源代理207A处理的时间期间。应注意,此请求还可为“分叉的”,从而重复上文所描述的序列。
应提及的是,后续请求无需来自不同客户端,而是在一实施例中,其还可以后续请求的形式来自第一客户端201。重要的是,系统总线207的任何客户端可起始后续请求且因此在时间t7“加入”。在第一客户端201的上下文中(及在此实施例中,在不同线程中)发出的先前请求因此在后续请求的处理期间“完成”(在将本地资源表示(资源代理207A)更新到新状态且因此使所述资源(系统总线207)再次变得相干的意义上),如上文所提及,所述后续请求可来自CPU110A上的任何线程上的任何客户端。此是在无额外管理的情况下发生,且对系统总线207的任何请求可在点270处使资源恢复可用性及工作。
图6A及6B共同地说明流程图,所述流程图描述用于管理便携式计算装置中的平行资源请求的方法及系统的实施例的操作。在框603中,接收针对资源的请求。在上文的实例中,由资源代理207A来接收所述请求。然而,可由另一实体来接收所述请求。在此实施例中,第一客户端201进行针对由远程处理器(例如资源功率管理器107)管理的系统总线207的请求。在所描述的实例中,经由CPU110A上的本地资源代理207A来进行所述请求。
在框604中,确定发出请求的第一客户端201是否希望此请求同步地完成或第一客户端201是否允许资源代理207A将此请求“分叉”并立即传回到第一客户端201。如果第一客户端201不允许分叉且想要同步地完成所述资源请求,则在框606中,资源代理207A将请求转递到资源功率管理器107,封锁处理线程,且等待直到资源功率管理器107服务于所述请求。
在框608中,如果第一客户端201已允许所述请求分叉,则资源代理207A将所述请求转递到资源功率管理器107且立即传回到客户端,而不等待所述请求得到服务。
在框612中,控制传回到第一客户端201且线程继续运行,而不管所述请求尚未由资源功率管理器107服务。所述资源被标记为分叉且在其可服务于任何后续请求之前需要被加入。
在框614中,资源功率管理器107完成对请求的处理且将指示此情况的中断发送到CPU110A。CPU110A上的处置此中断的中断服务例程(ISR)传信条件变量(旗标213设定到(CV/S)),从而导致资源被设定为“可加入”状态。框614中所描述的步骤可如所说明而逐次地发生,平行地发生,或在框612中所描述的步骤之后且在框628中所描述的步骤之前的任何时间发生。
在框618中,起始后续请求。可在同一线程中或在第二线程中起始所述后续请求。另外,可由同一客户端或由不同客户端来起始所述后续请求。在此实例中,由不同客户端(即,不同线程中的第二客户端202)来起始所述后续请求。
在另一实施例中,可从与第一请求相同的线程来起始后续请求。由于初始线程中的处理未被第一请求封锁,所以所述初始线程可做其它工作且接着将后续请求置于资源上。举例来说,线程可发出关闭远程资源的请求,所述远程资源由本地资源代理分叉。在一时间周期之后,所述线程(或更具体来说,所述线程中的客户端)可想要开启所述资源。在此状况下,在同一线程中起始后续请求。
在框620中,在资源代理207A处接收后续请求。
在框624中,确定资源(系统总线207)是否为可加入的。如果在框624中确定资源并非可加入的,则所述过程进行到框626,在所述框626中,线程等待直到资源是可加入的。如果在框624中确定资源是可加入的或在资源在框626中变得可加入之后,所述过程进行到框628,在所述框628中,资源被“加入”,资源代理207A完成来从先前分叉的请求的任何搁置中处理且将资源的本地表示更新到新状态。以此方式,资源被移到“加入”状态。所述资源现开始处理第二请求。
隐式加入(其在后续请求到达处于“分叉”或“可加入”状态的资源时随的发生)的替代例称为“显式加入”。如上文所描述,每当对资源之后续请求到达资源代理(或构架)时,分叉的资源便隐式地加入。然而,可存在客户端希望在不发出后续请求的情况下显式地加入资源的个例。在此状况下,将分叉的资源可藉以被加入且变为相干的方式称作“显式加入”。此显式加入操作将等待条件变量被传信,更新本地资源表示以反映新资源状态且传回到客户端。所述客户端将被暂时中止直到此呼叫传回。
对远程资源的“分叉请求”的替代例是分叉的“本地”资源/请求。在上文的实例中,假定请求在远程得到服务且客户端(或呼叫者)在其请求得到服务时希望在请求处理器上执行其它操作或可能听从于其它客户端或其它线程以执行其它操作。无需总为所述情况。考虑其中请求由CPU110A上的另一线程来服务的情况。在此状况下,客户端发出对此资源的请求,所述请求由另一线程拾取(每当其由作业系统排程时)、服务且确认被传回到呼叫线程。有可能通过用此请求处理线程来代替远程处理器而将上文的方法及系统应用于此情况。
将“加入”的替代例称作“积极式加入”状态。在上文所论述的实施例中,分叉的资源在后续请求到达资源(或其代理)时被隐式加入或在客户端请求其时被显式加入。在另一实施例中,可独立于后续请求或显式加入而存在经产生以用于加入“可加入”资源的明确目的的多个背景工作线程。在此情况中,从远程处理器接收到完成的通知的ISR将不仅传信条件变量并将资源标记为“可加入”,而且将把加入动作(加入回叫)作为工作项目置于队列上。正在队列上等待的背景工作线程将看见此工作项目,拾取所述工作项目并在其上下文中执行所述工作项目;确保执行加入动作且尽可能快地将资源设定到“加入”状态。
如上文所提及,在一替代性实施例中,客户端与资源之间的接口可为构架而非资源代理。下文论述此构架的设计及结构。
提供如下文所描述的图7A到10以描述如何建立及维持图2的节点架构。图7A是软件架构500A的第一方面的图,所述软件架构500A用于建立及维持图4中所说明的节点架构。
图7A是包括表示软件或硬件(或两者)的功能块的图。图7A说明架构或构架管理器440,其耦合到例如(但不限于)以下各者的多个硬件及软件元件:ICB驱动器模块103;中央处理单元110,其也大体称作第一硬件元件(硬件元件#1);CPU110的时钟442,其也大体称作第二硬件元件(硬件元件#2);总线仲裁器或排程器422,其也大体称作第三硬件元件(硬件元件#3);总线程序A-444A,其也大体称作第一软件元件(软件元件#1);总线程序B-444B,其也大体称作第二软件元件(软件元件#2);时钟程序AHB,其大体称作第三软件元件(软件元件#3);由大体被指示为按键的软件元件448监视的动作或功能;及包括软件元件或硬件元件或两者的旧版元件450。
旧版软件元件的实例可包含(但不限于)动态环境管理器(DEM)。此是处置处理器睡眠事件的处理器间通知的软件模块。举例来说,第一处理器A使用DEM来接收第二处理器B已变成闲置/从闲置恢复的通知。在较新的硬件上,此软件功能性已被归入路由处理器模块(RPM)子系统/通信协定中。存在其它旧版软件元件且其被包含于本发明的范围内。
旧版硬件元件的实例可包含(但不限于)AMBA(高级微控制器总线架构)高性能总线(AHB)。在较旧的PCD100上,AHB可包括主要系统总线,而在较新的PCD100上,系统总线组构107是完全不同的,且AHB总线仅用于特殊应用以与尚未被更新以经由新系统总线组构来通信的模块通信。存在其它旧版硬件元件且其被包含于本发明的范围内。
构架管理器440可包括计算机指令库,所述库管理数据结构,例如与上述硬件元件及软件元件中的每一者通信的节点。构架管理器440可负责产生可形成节点602、622、642及646的一个或一个以上资源,如在图7A的虚线A的右侧所说明。
构架管理器440可直接与驻存于CPU110上的每一ICB驱动器模块103通信。位于图7A的右侧的每一节点602、622、642及646是位于图7A的虚线A的左手侧的每一软件或硬件元件的表示或模型。对于本发明的剩余部分来说,将用参考数字601来表示一般或非特定节点,如图7B中所说明。
如先前所提及,图7A的每一示范性节点602、622、642及646可包括一个或一个以上资源。资源可包括软件元件或硬件元件或两者。举例来说,第一节点602包括大体与第一硬件元件或中央处理单元110对应的单一资源。在本发明中所描述的软件架构的情况下,节点601的每一资源可具备包括一个或一个以上文数字符号的唯一名称。在图7A中所说明的示范性实施例中,第一节点602的资源已指派有资源名称“core/cpu”。此示范性资源名称大体上对应于为所属领域的技术人员已知的常规文件命名结构。然而,如由所属领域的技术人员认识到,含有文数字符号及/或符号的任何其它组合的其它类型的资源名称完全在本发明的范围内。
在图7A的示范性实施例中,第二节点622包括多个资源。具体来说,在此特定示范性实施例中,第二节点622具有第一资源,所述第一资源包括对应于总线仲裁器或排程器422的单一硬件元件。第二节点622的第二资源包括软件元件,所述软件元件大体对应于总线程序A444A的第一软件元件。第二节点622的第三资源包括另一软件元件,所述软件元件大体对应于总线程序B444B的第二软件元件。所属领域的技术人员会认识到,给定节点601的资源及资源类型的任何组合及任何数目的资源及资源类型是完全在本发明的范围内。
除产生节点601外,构架管理器440还可产生或例示标志650。标志可包括一个或一个以上旧版元件(例如硬件元件或软件元件(或两者以及多个这些元件)),所述一个或一个以上旧版元件不容易映射其自身或不易与由构架管理器440管理的软件架构兼容。标志650可支持节点601的资源,其意味着节点601的资源可依赖于标志650。标志650的一个实例可包含字串驱动器。字串驱动器可不容易配合于结合图7A所描述的架构内。标志650可由节点601参考且其相依性阵列数据收集于图8的框1125中。
图7A还说明第一客户端648,其大体对应于两个软件元件448、450的动作或功能。在图7A中所说明的示范性实施例中,第一客户端648大体对应于可发生于由便携式计算装置100支持的特定应用程序模块105内的按键动作。然而,所属领域的技术人员会认识到,除按键之外的软件元件的其它动作及/或功能完全在本发明的范围内。下文将结合图10来描述关于客户端请求648及其相应产生的进一步细节。
图7A还说明特定架构元件之间的关系。举例来说,图7A说明客户端648与第一节点602之间的关系。具体来说,第一客户端648可产生客户端请求675A(用虚线说明),所述客户端请求675A由包括资源“/core/cpu”的第一节点602管理或处置。通常,存在预定或设定数目的类型的客户端请求675。下文将结合图10来进一步详细描述客户端请求675。
图7A中所显示的其它关系包含用虚线680说明的相依性。相依性是另一节点601的相应资源之间的关系。相依性关系通常指示第一资源(A)依赖于可向所述第一资源(A)提供信息的第二资源(B)。此信息可为由第二资源(B)执行的操作的结果或其可仅包括第一资源(A)所需要的状态信息或其任何组合。第一资源(A)及第二资源(B)可为同一节点601的部分或其可为不同节点601的部分。
在图7A中,第一节点602依赖于第二节点622,如由相依性箭头680B指示,所述相依性箭头680B由第一节点602发起且延伸到第二节点622。图7A还说明第一节点602还依赖于第三节点642,如由相依性箭头680A所说明。图7A还说明第二节点622依赖于第四节点646,如由相依性箭头680C所说明。所属领域的技术人员会认识到,用图7A的虚线箭头说明的相依性680实质上仅为示范性的且相应节点601之间的相依性的其它组合是在本发明的范围内。
架构或构架管理器440负责维持上文所描述的关系,所述关系包含(但不限于)图7A中所说明的客户端请求675及相依性680。构架管理器440将试图例示或产生与其可例示或产生的节点的一样多的节点601,只要任一给定节点601的相依性680是完全的便可。当支持相依性的资源存在或处于准备好处置与相依性680有关的信息的状态时,相依性680是完全的。
举例来说,如果包括单一资源“/clk/cpu”的第三节点642尚未产生,则包括单一资源“/core/cpu”的第一节点602可未由构架管理器440产生或建立(由于存在于第一节点602与第三节点642之间的相依性关系680A)。一旦第三节点642已由构架管理器440产生,则构架管理器440便可由于相依性关系680A而产生第二节点602。
如果构架管理器440未能产生或例示特定节点601(因为其相依性680中的一者或一者以上是不完全的),则构架管理器440将继续运行或执行对应于由构架管理器440成功地产生的那些节点601的步骤。构架管理器440将通常跳过针对特定节点601(所述特定节点601可归因于不完全相依性(其中依赖的资源尚未产生)而不存在)的呼叫,且将反映彼不完全状态的消息传回到彼呼叫。
在多核心环境(例如图1中所说明)中,构架管理器440可在单独的核心(如图1的第0核心222、第一核心224及第N核心226)上产生或例示节点601。可大体在多核心环境中在单独的核心上平行地产生节点601,只要所述节点601并非依赖于彼此及特定节点的所有相应相依性(如下文所描述)是完全的便可。
图7B是系统的软件架构500B1的第二方面的总图,所述系统管理图1的PCD100的资源。在此总图中,每一节点601的一个或一个以上资源尚未具备唯一名称。图7B的节点或资源图表500B1仅包括节点601、标志650、客户端648、事件690及由架构或构架管理器440支持的查询函数695。每一节点601经说明为具有椭圆形状及具有特定方向(其表示节点601内的资源之间的相应相依性)的箭头680。
可使在图7A到7B内说明的节点架构内的呼叫针对节点601内的资源的别名或实际资源名称。根据一个示范性实施例,不存在用以依靠标志650来作出客户端请求675的方法,因为在客户端648与标志650之间不存在接口,因此此大体意味着与标志650交换的信息通常发起从节点601或资源而非客户端648。
举例来说,图7B的第一节点601A具有相依性箭头680A以指示第一节点601A依赖于第二节点601B的两个资源(资源#2及#3)。类似地,第一节点601A具有相依性箭头680B以指示第一节点601A还依赖于第一标志650,所述第一标志650通常包括硬件或软件或其组合的旧版元件。
图7B还说明第一节点601A的客户端648可如何向第一节点601A发出客户端请求675。在发出这些客户端请求675之后,第二节点601B可触发事件690或提供对查询695的响应,其中对应于事件690及查询695的消息流回到客户端648。
图7C是系统的软件架构500B2的第二方面的特定图,所述系统管理图1的PCD100的资源。图7C说明节点或资源图表500B2,其仅包括具有特定、但为示范性的资源名称的节点601以及对应于图7A的那些客户端、事件及查询函数的客户端648、事件690及查询函数695。每一节点601经说明为具有椭圆形状及具有特定方向(其表示节点601内的资源之间的相应相依性)的箭头680。
举例来说,第一节点602具有相依性箭头680B以指示第一节点602依赖于第二节点622的三个资源。类似地,包括第二软件元件444B且在图7C中大体用参考字母“C”表示的第三资源“/bus/ahb/sysB/”具有相依性箭头680C,所述相依性箭头680C指示此第三资源(C)依赖于第四节点646的单一“/clk/sys/ahb”资源。
图7C还说明来自节点601的输出数据,其可包括一个或一个以上事件690或查询函数695。查询函数695类似于事件690。查询函数695可具有查询控制代码,其可为唯一的或可并非唯一的。查询函数大体并非在外部识别且大体来说其不具有状态。查询函数695可用以确定节点601的特定资源的状态。查询函数695及事件690可与所建立的客户端648具有关系且这些关系由定向箭头697表示以指示来自相应事件690及查询函数695的信息被传递到特定客户端648。图7C还经由相依性箭头680D来说明图7C的第二节点622如何依赖于第一标志650。
图7B到7C的节点或资源图表500B表示存在于存储器中且由构架管理器440管理的关系及可包括节点601的相关数据结构。可由构架管理器440自动地产生节点或资源图表500B以作为用于识别由构架管理器440管理的相应元件之间的关系及用于由软件小组进行故障诊断的有用工具。
图7D是流程图,其说明一种用于产生用于管理PCD100的资源的软件架构的方法1000A。框1005是用于管理PCD100的资源的方法或过程1000的第一例程。在例程框1005中,可由构架管理器440执行或运行例程以用于接收节点结构数据。所述节点结构数据可包括概述特定节点601可与其它节点601所具有的相依性的相依性阵列。下文将结合图8来更详细地描述关于节点结构数据及此例程或子方法705的进一步细节。
紧接着,在框1010中,构架管理器440可检阅作为框1005中所接收的节点结构数据的一部分的相依性数据。在决策框1015中,构架管理器440可确定节点结构数据是否定义叶节点601。叶节点601大体上意味着待基于节点结构数据产生的节点不具有任何相依性。如果对决策框1015的询问是肯定的(意味着用于产生当前节点的节点结构数据不具有任何相依性),则构架管理器440继续到例程框1025。
如果对决策框1015的询问是否定的,则遵循“否”分支到决策框1020,在所述决策框1020中,构架管理器确定节点结构数据内的所有硬相依性是否存在。硬相依性可包括其中资源在无其的情况下不能存在的相依性。同时,软相依性可包括其中资源可将相依的资源用作任选步骤的相依性。软相依性意味着即使当软相依性不存在时,仍可在节点架构内产生或例示具有软相依性的节点601或节点601的资源。可将标志650参考作为如上文所描述的软相依性。
软相依性的实例可包括最佳化特征,所述最佳化特征对于含有多个资源的资源导向节点601的操作来说并非至关重要的。构架管理器440可针对所存在的所有硬相依性来产生或例示节点或资源(即使当对于具有未产生的软相依性的那些节点或资源来说不存在软相依性时)。回叫特征可用以参考软相依性,使得当软相依性变得可用于构架管理器440时,构架管理器440将通知参考软相依性的每一回叫:所述软相依性现在是可用的。
如果对决策框1020的询问是否定的,则遵循“否”分支而到框1027,在所述框1027中,节点结构数据由构架管理器440存储于临时存储装置(例如存储器)中且构架管理器440产生与此未经例示的节点相关联的回叫特征。
如果对决策框1015的询问是肯定的,则遵循“是”分支而到例程1025,在所述例程1025中,基于例程框1005中所接收的节点结构数据来产生或例示节点601。下文将结合图9来描述例程框1025的进一步细节。紧接着,在框1030中,构架管理器440使用其唯一的资源名称来公布新近产生的节点601,使得其它节点601可将信息发送到新近产生的节点601或从新近产生的节点601接收信息。
现参看图7E,图7E是图7D的延续流程图,在框1035中,构架管理器440通知依赖于新近产生的节点601的其它节点601:所述新近产生的节点601已被例示且准备好接收或传输信息。根据一个示范性方面,当产生相依节点(如图7B的节点601B)时立即触发通知,即,递归地执行所述通知。因此,如果建构了图7B的节点601B,则立即通知节点601A。此通知可允许建构节点601A(因为节点601B是节点601A的最终相依方)。节点601B的建构可导致其它节点601被通知,等等。直到依赖于节点601B的最终资源是完全的,节点601B才变成完全的。
第二、稍微更复杂的实施方案是将所有通知置于单独的通知队列上,且接着在单一的时间点开始来穿过所述队列(即,迭代地执行所述通知)。因此当建构图7B的节点601B时,将到节点601A的通知推送到列表上。接着执行彼列表且通知节点601A。此导致到其它额外节点601(除节点601A之外的节点,未说明于图7B中)的通知被置于同一列表上,且接着在发送到节点601A的通知之后发送彼通知。到其它节点601的通知(除到节点601A的通知之外)直到在已完成与节点601B及节点601A相关联的所有工作之后才发生。
逻辑上,这些两个实施方案是等效的,但其在实施时具有不同的存储器消耗性质。递归式实现是简单的,但可消耗任意量的堆叠空间,其中所述堆叠消耗是随相依性图表的深度而定。迭代式实施方案是稍微更复杂的且需要稍多的静态存储器(通知列表),但堆叠使用是恒定的而无关于相依性图表的深度,例如图7B中所说明。
而且,框1035中的节点产生的通知并不限于其它节点。其还可在内部用于别名建构。系统500A中的任何任意元件,而非仅其它节点,可使用相同的机制以在节点(或标志)变得可用时请求通知。节点与非节点两者可使用相同的通知机制。
在决策框1040中,构架管理器440确定现在是否基于当前节点601的产生而释放了其它节点601或软相依性以用于产生或例示。决策框1040大体上确定是否可因为某些相依性关系680已由近来经历产生或例示的当前节点实现而产生资源。
如果对决策框1040的询问是肯定的,则遵循“是”分支而返回到例程框1025,在所述例程框1025中,由于由刚产生的节点601实现了相依性,所以现可产生或例示被释放的节点601。
如果对决策框1040的询问是否定的,则遵循“否”分支而到框1045,在所述框1045中,构架管理器440可管理如图2中所说明的架构的元件之间的通信。紧接着,在框1050中,构架管理器440可继续通过使用与特定资源相关联的资源名称而将由资源采取的动作记入日志或进行记录。在由构架管理器440或由构架管理器440管理的元件中的任一者(例如资源、节点601、客户端648、事件695及查询函数697)采取的任何动作之后,可由构架管理器440执行框1045。框1045展示节点架构的另一方面,其中构架管理器440可维护运行中的活动日志,其根据由产生特定元件(例如节点601的资源)的作者提供的元件的唯一识别符或名称来列出由每一元件执行的动作。
与先前技术相比较,框1050中的对活动的此日志记录(其列出指派给系统的每一资源的唯一名称)是唯一的且可提供显著优点(例如用于除错及错误故障诊断)。节点架构500A的另一唯一方面是单独的小组可致力于彼此独立的不同硬件及/或软件元件,其中每一小组将能够使用资源名称(其是唯一的且容易跟踪)而无需产生表来转译由其它小组及/或原始设备制造商(OEM)指派的较无意义且通常混乱的资源名称。
紧接着,在决策框1055中,构架管理器440确定是否已请求由构架管理器440记录的活动的日志。如果对决策框1055的询问是否定的,则遵循“否”分支而到所述过程的结尾,其中所述过程返回到例程1005。如果对决策框1055的询问是肯定的,则遵循“是”分支而到框1060,在所述框1060中,构架管理器440将包括有意义的资源名称及由所述资源名称执行的相应动作的活动日志发送到输出装置(例如打印机或显示屏幕及/或两者)。所述过程接着返回到上文所描述的例程框1005。
图8是流程图,其说明图7D的用于在PCD100中的软件架构中接收节点结构数据的子方法或例程1005。框1105是图7D的子方法或例程1005中的第一步骤。在框1105中,构架管理器440可接收软件或硬件元件(例如CPU110及图7D的时钟442)的唯一名称。如先前所论述,节点601必须参考至少一个资源。每一资源在系统500A中具有唯一名称。可用唯一名称来识别系统500A内的每一元件。从符号观点,每一元件具有唯一名称。换句话说,大体来说,在系统500A内不存在具有相同名称的两个元件。根据系统的示范性方面,节点601的资源可大体上跨越系统具有唯一名称,但不要求客户端或事件名称是唯一的(虽然其可按需要为唯一的)。
出于方便,可使用使用正斜线“/”符号的常规树文件命名结构或文件命名“象征”来产生唯一名称,例如(但不限于)CPU110的“/core/cpu”及时钟442的“/clk/cpu”。然而,如由所属领域的技术人员会认识到,含有文数字符号及/或符号的任何其它组合的其它类型的资源名称是完全在本发明的范围内。
紧接着,在框1110中,构架管理器440可接收与所产生的节点601的一个或一个以上资源相关联的一个或一个以上驱动器函数的数据。驱动器函数大体包括待由用于特定节点601的一个或一个以上资源完成的动作。举例来说,在图7A到7B中,用于节点602的资源/core/cpu的驱动器函数可请求其为了提供已被请求的所请求处理量所需的总线带宽量及CPU时钟频率。这些请求将经由节点642及节点622中的资源的客户端(例如图2中的客户端201、202、204及206)而作出。用于节点642中的/clk/cpu的驱动器函数将通常负责根据其从节点602的/core/cpu资源接收的请求来实际上设定实体时钟频率。
在框1115中,构架管理器440可接收节点属性数据。所述节点属性数据大体上包括定义例如以下各者的节点策略的数据:安全性(可经由用户空间应用程序来存取节点?)、远程性(可从系统中的其它处理器来存取节点?)及可存取性(资源可支持多个同时的客户端?)。构架管理器440还可定义允许资源超越默认的构架行为的属性,例如请求评估或日志记录策略。
随后,在框1120中,构架管理器440可接收针对所产生的特定节点601而定制的用户数据。所述用户数据可包括空“星形”字段,如由所属领域的技术人员关于“C”程序设计语言所理解。用户数据还被所属领域的技术人员已知为“信任我”字段。示范性定制的用户数据可包含(但不限于)例如频率表等表、寄存器映射等。在框1120中所接收的用户数据未由系统500A参考,而是允许资源的定制(如果所述定制未由构架管理器440辨别或完全支持)。此用户数据结构是“C”程序设计语言中的既定经扩展以用于特殊或特定用途的基底类别。
所属领域的技术人员会认识到,用于扩展特定类别的特定用途的其它种类的数据结构是在本发明的范围内。举例来说,在“C++”(C-加-加)程序设计语言中,等效结构可包括关键字“公共”,其将变成用于节点601内的资源的扩展机制。
紧接着,在框1125中,构架管理器440可接收相依性阵列数据。所述相依性阵列数据可包括经产生的节点601所依赖于的一个或一个以上资源601的唯一及特定名称。举例来说,如果产生图7C的第一节点602,则在此框1125中,相依性阵列数据可包括第二节点622的三个资源的资源名称及第一节点602所依赖于的第三节点642的单一资源名称。
随后,在框1130中,构架管理器440可接收资源阵列数据。所述资源阵列数据可包括所产生的当前节点的参数(例如在产生图7B到7C的第一节点602的情况下与此第一节点602相关的参数)。所述资源阵列数据可包括以下数据中的一者或一者以上:其它资源的名称;单位;最大值;资源属性;插入式数据;及类似于框1120的定制用户数据的任何定制的资源数据。插入式数据大体上识别从软件程序库检索的函数且通常列出可由所产生的特定节点或多个节点支持的客户端类型。插入式数据还允许对客户端产生及消灭的定制。在框1130之后,所述过程返回到图7D的框1010。
在图8中,已用虚线说明属性数据框1115、定制用户数据框1120及相依性阵列数据框1125以指示这些特定步骤是任选的且对于任一给定节点601来说是不需要的。同时,已用实线说明唯一名称框1105、驱动器函数框1110及资源阵列数据框1130以指示例程1005的这些步骤大体上对产生节点601来说是强制性的。
图9是流程图,其说明图7D的用于在PCD100的软件架构中产生节点的子方法或例程1025。根据一个示范性实施例,例程框1205是用于例示或产生节点601的子方法或例程1025中的第一例程。在例程框1205中,与被例示的节点601相关联的一个或一个以上客户端648是产生于此步骤中。下文将结合图10来进一步详细描述关于例程框1205的进一步细节。
在框1210中,构架管理器可产生或例示对应于框705的节点结构数据的一个或一个以上资源。紧接着,在框1215中,构架管理器440可启动在例程框1005的例程框1110中接收的驱动器函数。根据一个示范性方面,可使用在例程框1005的资源阵列数据框1130中接收的最大值来启动所述驱动器函数。根据另一优选的示范性方面,可用与来自例程1005的节点结构数据一起传递的任选初始值来启动每一驱动器函数。如果未提供初始数据,则将驱动器函数初始化于0(最小值)。还通常以一方式来启动驱动器函数使得已知其正被初始化。此使得资源能够执行是特定针对初始化但无需在正常或例程操作期间执行的任何操作。所述过程接着返回到图7D的步骤1030。
图10是流程图,其说明图9的用于在PCD100的软件架构中产生客户端648的子方法或例程1205。框1305是例程框1205的第一步骤,在所述框1305中,产生一个或一个以上资源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可产生到线程的回叫且当已由相应线程执行所述回叫时可传回一值。
在框1320之后,在决策框1325中,构架管理器440确定由客户端645识别的资源是否可用。如果对决策框1325的询问是否定的,则遵循“否”分支而到框1330,在所述框1330中,将指示此时不能产生客户端648的空值或消息传回到用户。
如果对决策框1325的询问是肯定的,则遵循“是”分支而到决策框1335,在所述决策框1335中,构架管理器440确定由客户端648识别的每一资源是否支持框1310中所提供的客户端类型。如果对决策框1335的询问是否定的,则遵循“否”分支而返回到框1330,在所述框1330中,传回指示此时不能产生客户端648的空值或消息。
如果对决策框1335的询问是肯定的,则遵循“是”分支而到框1340,在所述框1340中,构架管理器440在存储器中产生或例示客户端648。紧接着,在框1345中,如果在框1310中接收到任何定制的用户数据(例如任选引数),则可用这些任选引数的相应资源及特定节点601来映射所述任选引数。紧接着,在框1350中,将新近产生的客户端645耦合到在闲置状态下或在所请求的状态下的其相应的一个或一个以上资源。所述过程接着返回到图12的框1210。
图11是流程图,其说明一种用于在PCD100的软件架构中产生针对资源601的客户端请求675的方法1400。所述方法1400是大体上在如上文结合图7D到7E及图10所描述的客户端产生及节点产生之后执行。
框1405是用于产生针对资源601的客户端请求675的方法1400中的第一步骤。此方法1400将描述如何由构架管理器440来处置以下三种类型的请求675:(a)必需;(b)脉冲;及(c)向量。如上文所提及的请求675的名称所暗示,客户端请求675大体上与所产生及上文描述的客户端类型对应。
在框1405中,构架管理器440可接收与特定客户端请求675相关联的数据,例如上文所提及的三种类型中的一者:(a)必需;(b)脉冲;及(c)向量。与必需的请求相关联的数据大体上包括从必需的客户端648传递到特定资源601的纯量值。举例来说,必需的请求可包括每秒几百万个指令(MIP)。同时,脉冲请求包括用以在未指定任何开始时间或停止时间的某一时间周期内完成某一活动的请求。向量请求的数据大体上包括需要逐次地或平行地完成的多个动作的阵列。向量请求可包括任意长度的值。向量请求通常具有大小值及值的阵列。节点601的每一资源可经扩展而具有指针字段以便支持向量请求。在“C”程序设计语言中,如由所属领域的技术人员所理解,指针字段由联集函数(unionfunction)支持。
紧接着,在框1410中,构架管理器440经由客户端648发出请求,所述客户端648是通过上文结合图10所描述的方法而产生。随后,在框1415中,如果所述请求是必需类型或向量类型,则构架管理器440双重缓冲经由客户端所传递的请求数据。如果所述请求是脉冲类型,则构架管理器440跳过框1415。
对于必需请求来说,在此框1415中,来自先前请求的值被维持于存储器中,使得构架管理器440可确定在当前组的所请求值中是否存在先前请求的值之间的任何差异。对于向量请求来说,先前请求通常未维持于存储器中(虽然节点601的资源可按特定实施方案的需要维持其)。因此,框1415对于向量类型的请求来说是任选的。
在框1420中,构架管理器440在当前组的所请求值中计算先前组的所请求值之间的差量或差异。在决策框1425中,构架管理器确定当前组的所请求值是否与先前组的所请求值相同。换句话说的,构架管理器440确定在当前组的所请求值与先前组的所请求值之间是否存在差异。如果在当前组的所请求值与先前组的所请求值之间不存在差异,则遵循“是”分支(其跳过框1430到框1470)而到框1475,在所述框1475中,所述过程结束。
如果对决策框1425的询问是否定的(意味着所述组所请求值相对于所述组预先所请求值为不同的),则遵循“否”分支而到决策框1430。
在决策框1430中,构架管理器440确定当前请求是否为非同步请求。如果对决策框1430的询问是否定的,则遵循“否”分支而到框1440,在所述框1440中,构架管理器440锁定对应于客户端请求675的资源601。如果对决策框1430的询问是肯定的(意味着当前请求是非同步请求类型),则遵循“是”分支而到框1435,在所述框1435中,可将请求推送到另一线程上且可由另一核心来执行所述请求(如果当前构架管理器440管理多核心系统(如图1的多核心系统))。已用虚线说明框1435以指示在PCD100为单核心中央处理系统的情况下此步骤可为任选的。
随后,在框1440中,构架管理器440锁定对应于请求675的资源601。紧接着,在框1445中,资源601执行更新函数,所述更新函数大体对应于在图8的框1130中接收的资源阵列数据的插入式数据。所述更新函数大体上包括负责根据新客户端请求实现新资源状态的函数。所述更新函数将其先前状态与客户端请求中的所请求状态相比较。如果所请求状态大于先前状态,则更新函数将执行客户端请求。然而,如果所请求状态等于或小于当前状态及资源操作所处的状态,则将不执行客户端请求以便增加效率,因为旧状态达成或满足所请求状态。更新函数从客户端获得新请求且将其与所有其它作用中请求汇总以确定资源的新状态。
作为一实例,多个客户端可请求总线时钟频率。用于总线时钟的更新函数将通常取所有客户端请求的最大值,且将其用作总线时钟的新的所要状态。虽然存在一些将由多个资源使用的更新函数,但并非为所有资源将使用相同的更新函数的状况。一些普通的更新函数将取客户端请求的最大值,将取客户端请求的最小值及将客户端请求求和。或者,如果资源需要以某种独特的方式汇总请求,则资源可定义其自己的定制更新函数。
紧接着,在框1450中,构架管理器440将数据传递到对应于客户端648的资源,使得所述资源可执行特定针对节点601的资源的驱动器函数。驱动器函数应用如由更新函数计算的资源状态。此可需要更新硬件设定、向相依的资源发出请求、呼叫旧版函数或上述步骤的某一组合。
在先前实例中,更新函数计算所请求的总线时钟频率。驱动器函数可接收彼请求的频率且其可更新时钟频率控制HW以在彼频率下运行。应注意,有时不可能使驱动器函数满足更新函数所计算的确切的所请求状态。在此状况下,驱动器函数可选择最佳地满足所述请求的频率。举例来说,总线时钟HW可仅能够在128MHz及160MHz下运行,但所请求状态可能为150MHz。在此状况下,驱动器函数应在160MHz下运行,因为160MHz超过所请求状态。
紧接着,在框1455中,构架440从已在框1450中执行驱动器函数的资源接收状态控制。随后,在框1460中,如果相对于资源而定义了事件690,则可触发事件690使得数据被传递返回到对应于事件690的客户端648。可在另一线程中处理事件。此可最小化在资源被锁定的情况下所花费的时间量且允许多核心系统(如图1中所说明)中的平行操作。可以类似于可如何相对于资源来定义请求(如此方法1400中所描述)的方式而相对于资源来定义一个或一个以上事件690。换句话说的,事件产生过程可很大程度上与客户端产生过程平行。事件的一个不同的处在于有可能定义仅在某些阈值被跨过时触发的事件。
此种仅基于阈值被触发的事件的定义允许通知资源何时被过多订购(其具有比其可支持的用户多的同时用户)(此指示系统过载条件)或资源何时变少/消失(此可允许其它事物被关闭、恢复在系统变得过多订购时被禁用的功能性,等等)。由于可通过阈值来完成事件登记,所以其将系统在事件通知时不得不做的工作量减少为仅在确实需要做某事时才发生。也有可能在每一状态改变时登记事件。
紧接着,在任选框1465中,如果所处理的请求是向量请求,则通常执行此任选框1465。任选框1465大体上包括用以评估向量指针是否仍定位于用户传递到向量中的相同数据上的检查或确定。如果对此任选框1465的询问是肯定的(意味着指针仍指向由用户传递到向量中的相同数据),则清除所述指针使得不维持对旧数据的参考。大体上执行此任选框1465以解决在处理向量请求时上文所描述的双重缓冲框1415(与脉冲请求及必需请求相比较)。
随后,在框1470中,构架440解除对所请求的资源的锁定,使得可由特定节点601的当前但现被释放的所请求资源来处置其它客户端请求648。所述过程接着返回到第一框1405以用于接收下一客户端请求。
鉴于以上揭示内容,熟习程序设计者能够基于(例如)此说明书中的流程图及相关联的描述毫无困难地撰写计算机程序代码或识别适当硬件及/或电路以实施所揭示的本发明。因此,并不将特定程序代码指令集或详细硬件装置的揭示内容视为对于充分理解如何制造及使用本发明为必要的。在以上描述中且结合可说明各种处理流程的诸图更详细地解释所主张的计算机实施过程的发明性功能性。
在一个或一个以上示范性方面中,所描述的功能可实施于硬件、软件、固件或其任何组合中。如果以软件实施,则所述功能可作为一个或一个以上指令或程序代码在计算机可读媒体上存储或传输。计算机可读媒体包含计算机存储媒体与通信媒体(包含促进计算机程序从一处转移到另一处的任何媒体)两者。存储媒体可为可由计算机存取的任何可用媒体。通过实例而非限制,这些计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用以载运或存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。
而且,将任何连接恰当地称为计算机可读媒体。举例来说,如果使用同轴电缆、光纤缆线、双绞线、数字用户线(“DSL”)或无线技术(例如,红外线、无线电及微波)而从网站、服务器或其它远程源传输软件,则同轴电缆、光纤缆线、双绞线、DSL或无线技术(例如,红外线、无线电及微波)包含于媒体的定义中。
如本文中所使用,磁盘及光盘包含紧密光盘(“CD”)、激光光盘、光盘、数字影音光盘(“DVD”)、软性磁盘及蓝光(blu-ray)光盘,其中磁盘通常以磁性方式再生数据,而光盘通过激光以光学方式再生数据。以上各物的组合也应包含于计算机可读媒体的范围内。
虽然已详细说明及描述所选的方面,但应理解,可在不背离如由所附权利要求书定义的本发明的精神及范围的情况下在所述方面中作出各种替代及变更。

Claims (20)

1.一种用于管理便携式计算装置中的平行资源请求的方法,其包括:
从第一客户端产生第一请求,所述第一请求是在第一执行线程的上下文中发出的;
经由资源的本地表示将所述第一请求转递到所述资源;
通过所述第一客户端传入默认偏好设定,所述默认偏好设定向所述资源通知所述第一客户端允许所述资源决定是否允许非同步处理;
其中所述非同步处理包含:
由所述资源来确认所述第一请求且在所述资源决定允许非同步处理的情况下起始非同步处理;
将所述资源标记为分叉以指示所述资源处于不相干状态;
在所述资源中处理所述第一请求,同时允许所述第一客户端继续所述第一执行线程中的处理;
由所述资源来传信所述第一请求的所述处理的完成,所述第一请求的所述处理的所述完成包含使所述资源成为可加入的;
在所述资源中接收第二请求;确定所述资源是否是可加入的,
如果所述资源不是可加入的:
等待所述资源变得可加入,
否则,将所述资源的所述本地表示更新到新状态及调用任何登记的回叫,以使得所述资源变得可用以服务于所述第二请求;以及
在所述资源中处理所述第二请求。
2.根据权利要求1所述的方法,其中所述第二请求源于所述第一客户端中。
3.根据权利要求1所述的方法,其中所述第二请求源于第二客户端中。
4.根据权利要求1所述的方法,其中所述第一请求经由资源代理而被转递到所述资源。
5.根据权利要求1所述的方法,其中确认所述第一请求进一步包括在所述资源处理所述第一请求之前允许所述第一客户端继续所述第一执行线程中的处理。
6.根据权利要求1所述的方法,其中所述资源的所述本地表示包括资源代理及执行构架中的任一者。
7.根据权利要求1所述的方法,其中所述第二请求导致所述资源返回到相干状态且可用以处理所述第二请求。
8.根据权利要求1所述的方法,其中在不接收所述第二请求的情况下使所述资源变成可用。
9.根据权利要求1所述的方法,其中所述第二请求是在所述第一执行线程的上下文中发出的。
10.根据权利要求1所述的方法,其中所述第二请求是在第二执行线程的上下文中发出的。
11.一种用于管理便携式计算装置中的平行资源请求的计算机系统,所述系统包括:
用于从第一客户端产生第一请求的装置,所述第一请求是在第一执行线程的上下文中发出的;
用于经由资源的本地表示将所述第一请求转递到所述资源的装置;
用于通过所述第一客户端传入默认偏好设定的装置,所述默认偏好设定向所述资源通知所述第一客户端允许所述资源决定是否允许非同步处理;
用于由所述资源来确认所述第一请求且在所述资源决定允许非同步处理的情况下起始非同步处理的装置;
其中所述非同步处理包含:
用于将所述资源标记为分叉以指示所述资源处于不相干状态的装置;
用于在所述资源中处理所述第一请求同时允许所述第一客户端继续所述第一执行线程中的处理的装置;
用于由所述资源来传信所述第一请求的所述处理的完成的装置,所述第一请求的所述处理的所述完成包含使所述资源成为可加入的;
用于在所述资源中接收第二请求的装置;
用于确定所述资源是否是可加入的的装置,以及
如果所述资源不是可加入的,所述系统进一步包括
用于等待所述资源变得可加入的装置,
否则,所述系统进一步包括
用于将所述资源的所述本地表示更新到新状态及调用任何登记的回叫,以使得所述资源变得可用以服务于所述第二请求的装置;以及
用于在所述资源中处理所述第二请求的装置。
12.根据权利要求11所述的系统,其中所述第二请求源于所述第一客户端中。
13.根据权利要求11所述的系统,其中所述第二请求源于第二客户端中。
14.根据权利要求11所述的系统,其进一步包括用于经由资源代理将所述第一请求转递到所述资源的装置。
15.根据权利要求11所述的系统,其中所述用于确认所述第一请求的装置进一步包括用于在所述资源处理所述第一请求之前允许所述第一客户端继续所述第一执行线程中的处理的装置。
16.根据权利要求11所述的系统,其中所述资源的所述本地表示包括资源代理及执行构架中的任一者。
17.根据权利要求11所述的系统,其中所述第二请求导致所述资源返回到相干状态且可用以处理所述第二请求。
18.根据权利要求11所述的系统,其中在不接收所述第二请求的情况下使所述资源变成可用。
19.根据权利要求11所述的系统,其中所述第二请求是在所述第一执行线程的上下文中发出的。
20.根据权利要求11所述的系统,其中所述第二请求是在第二执行线程的上下文中发出的。
CN201280041868.5A 2011-09-01 2012-08-16 用于管理便携式计算装置上的平行资源请求的方法及系统 Active CN103782277B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/224,198 2011-09-01
US13/224,198 US8769544B2 (en) 2011-09-01 2011-09-01 Method and system for managing parallel resource request in a portable computing device
PCT/US2012/051203 WO2013032727A1 (en) 2011-09-01 2012-08-16 Method and system for managing parallel resource requests in a portable computing device

Publications (2)

Publication Number Publication Date
CN103782277A CN103782277A (zh) 2014-05-07
CN103782277B true CN103782277B (zh) 2016-05-25

Family

ID=46763184

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280041868.5A Active CN103782277B (zh) 2011-09-01 2012-08-16 用于管理便携式计算装置上的平行资源请求的方法及系统

Country Status (7)

Country Link
US (1) US8769544B2 (zh)
EP (1) EP2751687B1 (zh)
JP (1) JP5710844B2 (zh)
KR (1) KR101541664B1 (zh)
CN (1) CN103782277B (zh)
TW (1) TW201316180A (zh)
WO (1) WO2013032727A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2507484A (en) * 2012-10-30 2014-05-07 Ibm Limiting the number of concurrent requests in a database system
CN107133086B (zh) * 2016-02-29 2020-09-04 阿里巴巴集团控股有限公司 基于分布式系统的任务处理方法、装置和系统
US11330163B2 (en) 2018-06-29 2022-05-10 Qualcomm Incorporated Exchanging an HDR-combined stream and associated exposures between a camera sensor module and a vision processing system
CN111724262B (zh) * 2020-06-24 2024-03-22 上海金仕达软件科技股份有限公司 一种应用服务器后续包查询系统及其工作方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6253252B1 (en) * 1996-07-11 2001-06-26 Andrew Schofield Method and apparatus for asynchronously calling and implementing objects

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020879B1 (en) 1998-12-16 2006-03-28 Mips Technologies, Inc. Interrupt and exception handling for multi-streaming digital processors
US6976258B1 (en) 1999-11-30 2005-12-13 Ensim Corporation Providing quality of service guarantees to virtual hosts
US6971098B2 (en) 2001-06-27 2005-11-29 Intel Corporation Method and apparatus for managing transaction requests in a multi-node architecture
US7447775B1 (en) 2003-11-07 2008-11-04 Cisco Technology, Inc. Methods and apparatus for supporting transmission of streaming data
US7315904B2 (en) * 2004-05-26 2008-01-01 Qualomm Incorporated Resource allocation among multiple applications based on an arbitration method for determining device priority
US7519977B2 (en) 2004-06-22 2009-04-14 International Business Machines Corporation System and method for asynchronously invoking dynamic proxy interface using supplemental interfaces
US7890735B2 (en) 2004-08-30 2011-02-15 Texas Instruments Incorporated Multi-threading processors, integrated circuit devices, systems, and processes of operation and manufacture
US20060168108A1 (en) * 2004-11-12 2006-07-27 Mike Hake Methods and systems for defragmenting subnet space within an adaptive infrastructure
JP2007199811A (ja) 2006-01-24 2007-08-09 Hitachi Ltd プログラム制御方法、計算機およびプログラム制御プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6253252B1 (en) * 1996-07-11 2001-06-26 Andrew Schofield Method and apparatus for asynchronously calling and implementing objects

Also Published As

Publication number Publication date
US8769544B2 (en) 2014-07-01
JP5710844B2 (ja) 2015-04-30
TW201316180A (zh) 2013-04-16
KR101541664B1 (ko) 2015-08-03
EP2751687A1 (en) 2014-07-09
JP2014525628A (ja) 2014-09-29
WO2013032727A1 (en) 2013-03-07
EP2751687B1 (en) 2019-06-19
US20130061235A1 (en) 2013-03-07
CN103782277A (zh) 2014-05-07
KR20140074319A (ko) 2014-06-17

Similar Documents

Publication Publication Date Title
CN103597784A (zh) 用于动态地创建和服务便携式计算装置的交换结构内和跨所述交换结构的主装置-从属装置对的方法和系统
CN105518640B (zh) 在嵌入式存储器中提供命令排队
CN103765387B (zh) 便携式计算装置中的分布式资源管理
US20080165807A1 (en) Wide Area Peer-to-Peer Synching in a Decentralized Environment
US7139748B1 (en) N-way synchronization of computer databases
CN109493076A (zh) 一种Kafka消息唯一消费方法、系统、服务器及存储介质
TW200400444A (en) System and method for accessing different types of back end data stores
CN103782277B (zh) 用于管理便携式计算装置上的平行资源请求的方法及系统
CN103703742A (zh) 基于电源状态的备份方法和装置
JP5864754B2 (ja) ポータブルコンピューティングデバイスのリソースを管理するためのシステムおよび方法
CN109819048A (zh) 数据同步方法、装置、终端及存储介质
CN103139157A (zh) 一种基于socket的网络通信方法、装置及系统
CN113626522A (zh) 数据同步方法、装置、介质及设备
CN114650320B (zh) 任务调度方法、装置、存储介质及电子设备
CN102187329B (zh) 通过基于知识的同步来忘记项
CN110427426A (zh) 一种数据同步处理方法及装置
KR20080106534A (ko) 미디어-장치 컨텐츠에 대한 변화를 식별하기 위한 객체-기반 프로토콜 활용 방법 및 실체적인 기계-판독가능 매체
WO2024012567A1 (zh) 系统集成方法、装置及电子设备
WO2024001754A1 (zh) 版本控制方法、装置、电子设备及存储介质
CN106878927A (zh) 多功能蓝牙设备及其连接方法
CN110325980B (zh) 用于数据库绑定型应用的用户界面后端集群的扩展方法
US20100280993A1 (en) Active/push notification facade for a passive database system
CN116016555A (zh) 一种消息同步方法、装置、设备及计算机存储介质
CN113190624A (zh) 基于分布式跨容器的异步转同步调用方法及装置
CN113783921A (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
C14 Grant of patent or utility model
GR01 Patent grant