用于管理便攜式計算裝置的資源的系統(tǒng)和方法
【專利摘要】本發(fā)明揭示一種用于管理便攜式計算裝置的資源的方法和系統(tǒng)。所述方法包含接收節(jié)點結構數(shù)據(jù)以用于形成節(jié)點,其中所述節(jié)點結構數(shù)據(jù)包含指派給所述節(jié)點的每一資源的唯一名稱。一節(jié)點具有至少一個資源且其可具有多個資源。每一資源可為硬件或軟件元件。所述系統(tǒng)包含框架管理器,所述框架管理器處置節(jié)點架構內的現(xiàn)有節(jié)點之間的通信。所述框架管理器還通過使用每一資源的唯一名稱來記錄每一資源的活動。所述框架管理器可將此所記錄的活動發(fā)送到輸出裝置,例如打印機或顯示屏。當將新硬件或軟件元件(或兩者)添加到便攜式計算裝置時,所述方法和系統(tǒng)可幫助減少或消除對自定義API的需要。
【專利說明】用于管理便攜式計算裝置的資源的系統(tǒng)和方法
[0001]相關申請案聲明
[0002]本專利申請案根據(jù)35U.S.C.§ 120主張2010年9月15日申請的標題為“用于管理便攜式計算裝置的資源的系統(tǒng)和方法(SYSTEM AND METHOD FOR MANAGING RESOURCES OFA PORTABLE COMPUTING DEVICE) ”的第12/882,395號美國專利申請案的優(yōu)先權且是所述申請案的接續(xù)部分,所述申請案的說明書在此以全文引用的方式并入。本專利申請案還根據(jù)35U.S.C.§ 119(e)主張2011年9月2申請的標題為“用于管理便攜式計算裝置的資源的系統(tǒng)和方法(SYSTEM AND METHOD FOR MANAGING RESOURCES OF A PORTABLE COMPUTINGDEVICE) ”的第61/530,770號美國臨時專利申請案的優(yōu)先權,所述申請案的全部內容在此以引用的方式并入。
【背景技術】
[0003]便攜式計算裝置(P⑶)正在個人和專業(yè)層級上變?yōu)槿藗兊谋匦杵?。這些裝置可包含蜂窩式電話、便攜式數(shù)字助理(PDA)、便攜式游戲控制臺、掌上型計算機,和其它便攜式電子裝置。這些裝置中的每一者可包含主要功能。舉例來說,蜂窩式電話一股具有接收和發(fā)射電話呼叫的主要功能。
[0004]除了這些裝置的主要功能之外,許多裝置包含外圍功能。舉例來說,蜂窩式電話可包含如上文所描述的進行蜂窩式電話呼叫的主要功能,和靜態(tài)相機、視頻相機、全球定位系統(tǒng)(GPS)導航、網(wǎng)絡瀏覽、 發(fā)送和接收電子郵件、發(fā)送和接收文本消息、即按即說能力等的外圍功能。隨著此類裝置的功能性增加,支持此類功能性所需的計算或處理能力也增加。此外,隨著計算能力增加,更需要有效地管理提供計算能力的處理器。
[0005]在過去,隨著將由硬件或軟件(或兩者)支持的每一外圍功能引入到例如蜂窩式電話等裝置,針對每一外圍功能引入專用編程接口(API)。舉例來說,可存在用于攝像機的單獨API以及用于GPS導航應用軟件的單獨API。每一 API —股獨立地記錄其動作且每一API 一股具有其自身的數(shù)據(jù)結構,所述數(shù)據(jù)結構將需要交叉參考在引入新的外圍功能之前存在的蜂窩式電話的現(xiàn)有硬件或軟件。
[0006]針對每一外圍功能引入單獨的API是非常繁瑣且耗時的,因為要交叉參考不同的硬件和軟件元件。支持蜂窩式電話的基礎功能的每一硬件或軟件元件可已具備由蜂窩式電話的原始設備制造商(OEM)和/或支持蜂窩式電話的基礎功能的基礎電子器件的OEM確立的命名法。與軟件或硬件(或兩者)相關聯(lián)的功能的新特征的記錄和調試已長期被此便攜式計算裝置中的技術人員認為是在提供新產(chǎn)品或特征(或兩者)的過程中的重大問題。
[0007]所需要的是可以克服與引入新特征或功能相關聯(lián)的問題的系統(tǒng)和方法,所述新特征或功能由添加到由原始設備制造商(OEM)建置的系統(tǒng)的新軟件或硬件(或兩者)支持。
【發(fā)明內容】
[0008]本發(fā)明描述一種用于管理便攜式計算裝置的資源的方法和系統(tǒng)且其包含接收節(jié)點結構數(shù)據(jù)以用于形成節(jié)點,所述節(jié)點結構數(shù)據(jù)包括作為所述節(jié)點的部分的每一資源的唯一名稱。接下來,可針對一個或一個以上相依性來檢視所述節(jié)點結構數(shù)據(jù)。隨后確定與未例示的節(jié)點的相依性相關聯(lián)的每一資源是否存在于節(jié)點框架內。
[0009]所述方法和系統(tǒng)還可包含確定未例示的節(jié)點的每一資源是否可用于支持請求。如果未例示的節(jié)點的資源不可用于支持任何請求,那么可設定一值以防止包含不可用的資源的節(jié)點的例示。不可用的資源可包含可插拔的且可從PCD移除的硬件。
[0010]如果與相依性相關聯(lián)的資源完全不存在,那么可將所述節(jié)點結構數(shù)據(jù)存儲在臨時存儲裝置中。如果用于每一相依性的每一資源存在于節(jié)點結構數(shù)據(jù)內且可用,那么可創(chuàng)建或例示具有其一個或一個以上資源的節(jié)點。如果創(chuàng)建/例示所述節(jié)點,那么可使用對應于節(jié)點的處于準備好用于處理通信的狀態(tài)中的一個或一個以上資源的一個或一個以上唯一名稱在節(jié)點框架內公布所述節(jié)點。
[0011]所述方法和系統(tǒng)可進一步包含確定例示的節(jié)點的每一資源是否可用于支持請求。如果例示的節(jié)點的資源不可用于支持任何請求,那么可鎖定所述例示的節(jié)點而不可由其它資源接入。
[0012]所述方法和系統(tǒng)可進一步包含接收數(shù)據(jù)以用于形成充當節(jié)點框架中的占位符的存根資源。在接收到存根數(shù)據(jù)之后,所述方法和系統(tǒng)可接收數(shù)據(jù)以用功能性資源來取代存根資源,使得可完成節(jié)點框架而僅包含功能性節(jié)點。
[0013]所述方法和系統(tǒng)可進一步包含確定節(jié)點框架內所管理的客戶端請求是否可壓制以延遲執(zhí)行,以便提高功率和/或性能。所述方法和系統(tǒng)可進一步包含確定是否已實現(xiàn)一個或一個以上條件來用于延遲可壓制請求的執(zhí)行。
[0014]所述方法和系統(tǒng)可進一步包含接收一個或一個以上閾值事件以供資源管理。每一閾值事件可具有被所述資源跟蹤的至少一個條件。
【專利附圖】
【附圖說明】
[0015]在各圖中,相同的參考數(shù)字在所有各種視圖中指代相同的部分,除非另有指示。對于例如“ 102A”或“ 102B”等具有字母符號標示的參考數(shù)字,所述字母符號標示可區(qū)分同一圖中存在的兩個類似的部分或元件。當希望參考數(shù)字涵蓋在所有圖中具有相同參考數(shù)字的所有部分時,可省略參考數(shù)字的字母符號標示。
[0016]圖1是處于閉合位置的便攜式計算裝置(P⑶)的第一方面的正視平面圖;
[0017]圖2是處于打開位置的P⑶的第一方面的正視平面圖;
[0018]圖3是K?的第二方面的框圖;
[0019]圖4是處理系統(tǒng)的框圖;
[0020]圖5是管理圖1的便攜式計算裝置的資源的系統(tǒng)的軟件架構的第一方面的圖;
[0021]圖6A是提供管理圖1的P⑶的資源的系統(tǒng)的軟件架構的第二方面的節(jié)點或資源圖表的圖;
[0022]圖6B是包含特定的又一示范性資源名稱的節(jié)點的節(jié)點或資源圖表的圖;
[0023]圖6C是說明可相對于軟件架構的資源進行跟蹤的示范性溫度閾值事件的圖;
[0024]圖6D是說明資源的圖表以及可由每一資源跟蹤且可對應于圖6C的溫度閾值事件的對應示范性溫度事件的圖;
[0025]圖7A是說明用于創(chuàng)建用于管理PCD的資源的軟件架構的方法的流程圖;[0026]圖7B是說明用于創(chuàng)建用于管理PCD的資源的軟件架構的方法的圖7A的接續(xù)流程圖;
[0027]圖7C是說明用于管理變?yōu)镻CD不可用的未例示的節(jié)點的方法的圖7A的接續(xù)流程圖;
[0028]圖7D是說明用于管理P⑶的可壓制請求的方法的圖7B的接續(xù)流程圖;
[0029]圖7E是說明用于管理變?yōu)镻CD不可用的例示的節(jié)點的方法的圖7B的接續(xù)流程圖;
[0030]圖8是說明用于在PCD中的軟件架構中接收節(jié)點結構數(shù)據(jù)的圖7A到B的子方法或例程的流程圖;
[0031 ]圖9是說明用于在PCD的軟件架構中創(chuàng)建節(jié)點的圖7A到B的子方法或例程的流程圖;
[0032]圖10是可由PCD的軟件架構維持的示范性名稱表的數(shù)據(jù)結構的圖;
[0033]圖11是說明用于在PCD的軟件架構中創(chuàng)建資源的別名的方法的流程圖;
[0034]圖12是說明用于在PCD的軟件架構中創(chuàng)建客戶端的圖9的子方法或例程的流程圖;
[0035]圖13是說明用于在PCD的軟件架構中創(chuàng)建針對資源的客戶端請求的方法的流程圖;
[0036]圖14是說明PCD的資源的等時客戶端請求中所請求的工作的圖;
[0037]圖15是說明用于在PCD的軟件架構中創(chuàng)建針對資源的等時客戶端請求的圖9的子方法或例程的流程圖;
[0038]圖16是說明用于在PCD的軟件架構中創(chuàng)建針對資源的閾值事件的方法的流程圖;以及
[0039]圖17是說明用于在PCD的軟件架構中用新的(實際)資源取代存根資源的方法的流程圖。
【具體實施方式】
[0040]詞語“示范性”在本文中用于表示充當實例、例子或說明。在本文中描述為“示范性”的任何方面不一定解釋為比其它方面優(yōu)選或有利。
[0041]在此描述中,術語“應用”還可包含具有可執(zhí)行內容的文件,例如:目標代碼、腳本、字節(jié)代碼、標記語言文件及補丁。另外,本文中所涉及的“應用”還可包含本質上不可執(zhí)行的文件,例如可能需要打開的文檔或需要存取的其它數(shù)據(jù)文件。
[0042]術語“內容”還可包含具有可執(zhí)行內容的文件,例如:目標代碼、腳本、字節(jié)代碼、標記語言文件及補丁。另外,本文中所提到的“內容”還可包含本質上不可執(zhí)行的文件,例如可能需要打開的文檔或其它需要存取的數(shù)據(jù)文件。
[0043]如此描述中所使用,術語“組件”、“數(shù)據(jù)庫”、“模塊”、“系統(tǒng)”等意欲指代計算機相關實體,硬件、固件、硬件和軟件的組合、軟件或執(zhí)行中的軟件。舉例來說,組件可為(但不限于為)在處理器上運行的進程、處理器、對象、可執(zhí)行程序、執(zhí)行線程、程序及/或計算機。以說明的方式,運行在計算裝置上的應用程序和計算裝置兩者均可為組件。一個或一個以上組件可駐留在進程和/或執(zhí)行線程內,且組件可位于一個計算機上且/或分布在兩個或兩個以上計算機之間。另外,這些組件可從上面存儲有各種數(shù)據(jù)結構的各種計算機可讀媒體來執(zhí)行。所述組件可例如根據(jù)具有一個或一個以上數(shù)據(jù)包的信號(例如,來自一個借助于所述信號與本地系統(tǒng)、分布式系統(tǒng)中的另一組件交互及/或跨越例如因特網(wǎng)等網(wǎng)絡而與其它系統(tǒng)交互的組件的數(shù)據(jù))借助于本地及/或遠程進程而通信。
[0044]在此描述中,術語“通信裝置”、“無線裝置”、“無線電話”、“無線通信裝置”和“無線手持機”可互換地使用。隨著第三代(“3G”)無線技術和第四代(“4G”)無線技術的到來,更大的帶寬可用性已實現(xiàn)具有更多種無線能力的更多便攜式計算裝置。因此,便攜式計算裝置可為蜂窩式電話、尋呼機、PDA、智能電話、導航裝置或具有無線通信或鏈路的手持式計算機。
[0045]起初參看圖1和圖2,展示示范性便攜式計算裝置(P⑶)且大體上標示為100。如圖所不,P⑶100可包含外殼102。外殼102可包含上部外殼部分104和下部外殼部分106 (圖2)。圖1展示上部外殼部分104可包含顯示器108。在特定方面中,顯示器108可為觸摸屏顯示器。上部外殼部分104還可包含跟蹤球輸入裝置110。此外,如圖1中所示,上部外殼部分104可包含通電按鈕112和斷電按鈕114。如圖1中所示,P⑶100的上部外殼部分104可包含多個指示器燈116和揚聲器118。每一指示器燈116可為發(fā)光二極管(LED)。
[0046]在特定方面中,如圖2中所描繪,上部外殼部分104可相對于下部外殼部分106移動。具體來說,上部外殼部分104可相對于下部外殼部分106滑動。如圖2中所示,下部外殼部分106可包含多按鈕鍵盤120。在特定方面中,多按鈕鍵盤120可為標準QWERTY鍵盤。在上部外殼部分104相對于下部外殼部分106移動時可露出多按鈕鍵盤120。圖2進一步說明P⑶100可包含下部外殼部分106上的復位按鈕122。
[0047]參看圖3,展示便攜式計算裝置(PCD)的示范性非限制性方面且大體上標示為100。如圖所示,PCD100包含芯片上系統(tǒng)322,所述芯片上系統(tǒng)包含多核CPU402。多核CPU402可包含第零核410、第一核412和第N核414。
[0048]如圖3中所說明,顯示器控制器328和觸摸屏控制器330耦合到多核CPU402。芯片上系統(tǒng)322外部的觸摸屏顯示器108又耦合到顯示器控制器328和觸摸屏控制器330。
[0049]圖3進一步說明視頻編碼器334 (例如,逐行倒相(PAL)編碼器、順序傳送彩色與存儲(SECAM)編碼器,或美國電視系統(tǒng)委員會(NTSC)編碼器)耦合到多核CPU402。此外,視頻放大器336耦合到視頻編碼器334和觸摸屏顯示器108。而且,視頻端口 338耦合到視頻放大器336。如圖3中所描繪,通用串行總線(USB)控制器340耦合到多核CPU402。而且,USB端口 342耦合到USB控制器340。存儲器404和訂戶身份模塊(SM)卡346也可耦合到多核CPU402。此外,如圖3中所示,數(shù)碼相機348可耦合到多核CPU402。在示范性方面中,數(shù)碼相機348是電荷耦合裝置(CCD)相機或互補金屬氧化物半導體(CMOS)相機。
[0050]如圖3中進一步說明,立體聲音頻C0DEC350可耦合到多核CPU402。此外,音頻放大器352可耦合到立體聲音頻C0DEC350。在示范性方面中,第一立體聲揚聲器354和第二立體聲揚聲器356耦合到音頻放大器352。圖3展示麥克風放大器358也可耦合到立體聲音頻C0DEC350。此外,麥克風360可耦合到麥克風放大器358。在特定方面中,調頻(FM)無線電調諧器362可耦合到立體聲音頻C0DEC350。而且,F(xiàn)M天線364耦合到FM無線電調諧器362。此外,立體聲頭戴式耳機366可耦合到立體聲音頻C0DEC350。
[0051]圖3進一步指示射頻(RF)收發(fā)器368可耦合到多核CPU402。RF開關370可耦合到RF收發(fā)器368和RF天線372。如圖3中所示,小鍵盤374可耦合到多核CPU402。而且,具有麥克風的單聲道耳機376可耦合到多核CPU402。此外,振動器裝置378可耦合到多核CPU402。圖3還展示電力供應器380可耦合到芯片上系統(tǒng)322。在特定方面中,電力供應器380為將電力提供給PCD100的需要電力的各種組件的直流(DC)電力供應器。此外,在特定方面中,電力供應器為可再充電DC電池或從連接到AC電源的交流(AC)-DC變壓器得到的DC電力供應器。
[0052]圖3進一步說明P⑶100還可包含網(wǎng)卡388,所述網(wǎng)卡可用于接入數(shù)據(jù)網(wǎng)絡,例如局域網(wǎng)、個域網(wǎng)或任何其它網(wǎng)絡。網(wǎng)卡388可為藍牙網(wǎng)卡、WiFi網(wǎng)卡、個域網(wǎng)(PAN)卡、個域網(wǎng)超低功率技術(PeANUT)網(wǎng)卡,或此項技術中眾所周知的任何其它網(wǎng)卡。此外,網(wǎng)卡388可并入到芯片中,即網(wǎng)卡388可為芯片上的整個解決方案,且可不為單獨的網(wǎng)卡388。
[0053]如圖3中所描繪,觸摸屏顯示器108、視頻端口 338、USB端口 342、相機348、第一立體聲揚聲器354、第二立體聲揚聲器356、麥克風360、FM天線364、立體聲頭戴式耳機366、RF開關370、RF天線372、小鍵盤374、單聲道耳機376、振動器378,和電力供應器380在系統(tǒng)芯片322的外部。
[0054]在特定方面中,本文中所描述的方法步驟中的一者或一者以上可作為計算機程序指令存儲于存儲器404中。這些指令可由多核CPU402執(zhí)行以便執(zhí)行本文中所描述的方法。此外,多核CPU402、存儲器404或其組合可用作用于執(zhí)行本文中所描述的方法步驟中的一者或一者以上以便在中央處理單元402內對數(shù)據(jù)進行取樣的裝置。
[0055]參看圖4,展示處理系統(tǒng)且大體上標示為400。在特定方面中,處理系統(tǒng)400可并入到上文結合圖3所描述的P⑶100中。如圖所示,處理器系統(tǒng)400可包含多核中央處理單元(CPU) 402和連接到多核CPU402的存儲器404。多核CPU402可包含第零核410、第一核412和第N核414。第零核410可包含在其上執(zhí)行的第零動態(tài)時鐘和電壓縮放(DCVS)算法416。第一核412可包含在其上執(zhí)行的第一 DCVS算法417。此外,第N核414可包含在其上執(zhí)行的第N DCVS算法418。在特定方面中,每一 DCVS算法416、417、418可獨立地在相應核412、414、416 上執(zhí)行。
[0056]另外,如所說明,存儲器404可包含存儲于其上的操作系統(tǒng)420。操作系統(tǒng)420可包含總線仲裁器或調度器422,且調度器422可包含第一運行隊列424、第二運行隊列426,和第N運行隊列428。存儲器404還可包含存儲于其上的第一應用430、第二應用432和第N應用434。
[0057]在特定方面中,應用430、432、434可將一個或一個以上任務436發(fā)送到操作系統(tǒng)420以在多核CPU402內的核410、412、414處進行處理??蓪⑷蝿?36處理或執(zhí)行為單個任務、線程或其組合。此外,調度器422可調度任務、線程或其組合以用于在多核CPU402內執(zhí)行。另外,調度器422可將任務、線程或其組合放置于運行隊列424、426、428中。核410、412,414可如(例如)操作系統(tǒng)420所指令而從運行隊列424、426、428檢索任務、線程或其組合,以用于在核410、412、414處對那些任務和線程的處理或執(zhí)行。
[0058]圖4還展示存儲器404可包含存儲于其上的框架管理器440??蚣芄芾砥?40可連接到操作系統(tǒng)420和多核CPU402。具體來說,框架管理器440可連接到操作系統(tǒng)420內的調度器422。如本文中所描述,框架管理器440可監(jiān)視核410、412、414上的工作負荷,且框架管理器440可對來自核410、412、414的數(shù)據(jù)進行取樣。[0059]在特定方面中,框架管理器440可為軟件程序。然而,在替代性方面中,框架管理器440可為在存儲器404外部的硬件控制器。在任何情況下,框架管理器440、存儲器404、核410、412、414或其任何組合可用作用于執(zhí)行本文中所描述的方法步驟中的一者或一者以上以便對來自核410、412、414的數(shù)據(jù)進行取樣的裝置。
[0060]圖5是管理圖1的便攜式計算裝置(P⑶)的資源的系統(tǒng)的軟件架構500A的第一方面的圖。圖5是包括表示軟件或硬件(或兩者)的功能塊的圖。圖5說明耦合到多個硬件和軟件元件的架構或框架管理器440,所述硬件和軟件元件例如為(但不限于):中央處理單元402,還一股被稱作第一硬件元件(硬件元件#1);用于CPU402的時鐘442,還一股被稱作第二硬件元件(硬件元件#2);總線仲裁器或調度器422,還一股被稱作第三硬件元件(硬件元件#3);總線程序A-444A,還一股被稱作第一軟件元件(軟件元件#1);總線程序B-444B,還一股被稱作第二軟件元件(軟件元件#2);時鐘程序AHB,一股被稱作第三軟件元件(軟件元件#3);被一股指示為按鍵448的軟件元件監(jiān)視的動作或功能;以及傳統(tǒng)元件450,其包括軟件元件或軟件元件或兩者。
[0061]傳統(tǒng)軟件元件的實例可包含(但不限于)動態(tài)環(huán)境管理器(“DEM”)。這是處置處理器休眠事件的處理器間通知的軟件模塊。舉例來說,第一處理器A使用DEM來接收第二處理器B已經(jīng)變?yōu)殚e置/從閑置回來的通知。在更新的硬件上,此軟件功能性已被歸入路由處理器模塊(“RPM”)子系統(tǒng)/通信協(xié)議中。存在其它傳統(tǒng)軟件元件且包含于本發(fā)明的范圍內。
[0062]傳統(tǒng)硬件元件的實例可包含(但不限于)AMBA( “高級控制器總線架構”)高性能總線(“AHB”)。在較老的P⑶100上。AHB可包括主要系統(tǒng)總線,而在較新的P⑶100上,系統(tǒng)總線構造完全不同,且AHB總線僅用于與尚未經(jīng)更新以經(jīng)由新的系統(tǒng)總線構造進行通信的模塊通信的特殊應用。存在其它傳統(tǒng)硬件元件且包含于本發(fā)明的范圍內。
[0063]框架管理器440可包括計算機指令庫,其管理與上述硬件元件和軟件元件中的每一者進行通信的數(shù)據(jù)結構,例如代碼(下文描述)??蚣芄芾砥?40可負責創(chuàng)建一個或一個以上資源,所述資源可形成如在圖5的虛線A的右側上說明的節(jié)點602、622、642和646。框架管理器可包括代碼庫。所述庫的若干部分可駐留于P⑶100的每一硬件元件上。
[0064]同時,由框架管理器440建立和例示的每一節(jié)點602、622、642和646是在圖5的虛線A的左手側上的每一軟件或硬件元件的表示或模型。對于本發(fā)明的剩余部分,將用如圖6A中所說明的參考數(shù)字601來標示一股或非特定節(jié)點。
[0065]如先前所述,圖5的每一不范性節(jié)點602、622、642和646可包括一個或一個以上資源。資源可包括軟件元件或硬件元件或兩者。舉例來說,第一節(jié)點602包括一股與第一硬件元件或中央處理單元402對應的單個資源。通過本發(fā)明中所描述的發(fā)明性軟件架構,節(jié)點601的每一資源可具備包括一個或一個以上字母數(shù)字字符的唯一名稱。在圖5中所說明的示范性實施例中,已向第一節(jié)點602的資源指派資源名稱“/core/cpu”。此示范性資源名稱一股對應于所屬領域的技術人員已知的常規(guī)文件命名結構。然而,如所屬領域的技術人員所認識到的,含有字母數(shù)字字符和/或符號的任何其它組合的其它類型的資源名稱也在本發(fā)明的范圍內。
[0066]在圖5的示范性實施例中,第二節(jié)點622包括多個資源。特定來說,在此特定示范性實施例中,第二節(jié)點622具有包括對應于總線仲裁器或調度器422的單個硬件元件的第一資源。第二節(jié)點622的第二資源包括一股對應于總線程序A444A的第一軟件元件的軟件元件。第二節(jié)點622的第三資源包括一股對應于總線程序B444B的第二軟件元件的另一軟件元件。所屬領域的技術人員應認識到,任何組合和任何數(shù)目的用于給定節(jié)點601的資源和資源類型也在本發(fā)明的范圍內。
[0067]圖5還說明一股對應于兩個軟件元件448、450的動作或功能的第一客戶端648。在圖5中所說明的示范性實施例中,客戶端648 —股對應于可在由便攜式計算裝置100支持的特定應用程序內發(fā)生的按鍵動作。然而,所屬領域的技術人員應認識到,除了按鍵之外的軟件元件的其它動作和/或功能也在本發(fā)明的范圍內。下文將結合圖12描述關于客戶端648及其相應創(chuàng)建的進一步細節(jié)。
[0068]圖5還說明特定架構性元件之間的關系。舉例來說,圖5說明客戶端648與第一節(jié)點602之間的關系。具體來說,第一客戶端648可產(chǎn)生用虛線說明的客戶端請求675A,所述客戶端請求由包括資源“/core/cpu”的第一節(jié)點602管理或處置。通常,存在預定數(shù)目或設定數(shù)目的類型的客戶端請求675。下文將結合圖13進一步詳細地描述客戶端請求675。
[0069]圖5中所顯示的其它關系包含用虛線680說明的相依性。相依性是另一節(jié)點601的相應資源之間的關系。相依性關系通常指示第一資源(A)依賴于可向第一資源(A)提供信息的第二資源(B)。此信息可為由第二資源(B)執(zhí)行的操作的結果,或其可簡單地包括第一資源(A)所需的狀態(tài)信息,或其任何組合。第一資源(A)和第二資源(B)可為相同節(jié)點601的部分,或其可為不同節(jié)點601的部分。
[0070]在圖5中,第一節(jié)點602取決于第二節(jié)點622,如由以第一節(jié)點602起始且延伸到622處的第二節(jié)點的相依性箭頭680B所指示。圖5還說明第一節(jié)點602還取決于第三節(jié)點642,如由相依性箭頭680A所說明。圖5還說明第二節(jié)點622取決于第四節(jié)點646,如由相依性箭頭680C所說明。所屬領域的技術人員認識到,用圖5的虛線箭頭所說明的相依性680在本質上僅是示范性的,且相應節(jié)點601之間的相依性的其它組合在本發(fā)明的范圍內。
[0071]框架管理器440的架構負責維持上文所描述的關系,其包含(但不限于)圖5中所說明的客戶端請求675和相依性680。只要用于任何給定節(jié)點601的相依性680是完整的,框架管理器440將嘗試例示或創(chuàng)建盡可能多的節(jié)點601。當支持相依性的資源存在或處于用于處置與相依性680相關的信息的就緒狀態(tài)時,相依性680便完整。
[0072]舉例來說,由于在第一節(jié)點602與第三節(jié)點642之間存在的相依性關系680A,如果包括單個資源“/clk/cpu”的第三節(jié)點642尚未創(chuàng)建,那么包括單個資源“/core/cpu”的第一節(jié)點602可不會被框架管理器440創(chuàng)建或建立。一旦第三節(jié)點642已被框架管理器440創(chuàng)建,那么框架管理器440可由于相依性關系680A而創(chuàng)建第二節(jié)點602。
[0073]如果框架管理器440無法創(chuàng)建或例示特定節(jié)點601 (因為其相依性680中的一者或一者以上不完整),那么框架管理器440將繼續(xù)運行或執(zhí)行對應于曾由框架管理器440成功創(chuàng)建的那些節(jié)點601的步驟??蚣芄芾砥?40將通常跳過對可由于不完整相依性(其中尚未創(chuàng)建相依資源)而不存在的特定節(jié)點601的調用,且將反映所述不完整狀態(tài)的消息返回到所述調用。
[0074]在例如圖4中所說明的多核環(huán)境中,框架管理器440可在比如圖4的第一、第二和第N核424、426和428的單獨核上創(chuàng)建或例示節(jié)點601。只要節(jié)點601彼此不相依且在特定節(jié)點的對應相依性(下文描述)全部完整的情況下,節(jié)點601可一股在單獨核上的多核環(huán)境中創(chuàng)建。
[0075]圖6A是用于管理圖1的P⑶100的資源的系統(tǒng)的軟件架構500B1的第二方面的一股圖。在此一股圖中,每一節(jié)點601的一個或一個以上資源尚未具備唯一名稱。圖6A的節(jié)點或資源圖表500B1僅包括節(jié)點601、客戶端648、事件690和由所述架構或框架管理器440支持的查詢功能695。每一節(jié)點601已用橢圓形狀和具有表示節(jié)點601內的資源之間的相應相依性的特定方向的箭頭680來說明。
[0076]可對節(jié)點601內的資源的別名或實際資源名稱作出圖6A到B中所說明的節(jié)點架構內的調用。舉例來說,第一節(jié)點601A具有相依性箭頭680A以指示第一節(jié)點601A取決于第二節(jié)點601B的兩個資源(資源#2和#3)。圖6A還說明第一節(jié)點601A的客戶端648可如何向第一節(jié)點601A發(fā)出客戶端請求675。在發(fā)出這些客戶端請求675之后,第二節(jié)點601B可觸發(fā)事件690或將響應提供給查詢695,其中對應于事件690和查詢695的消息流回到客戶端648。
[0077]圖6B是用于管理圖1的P⑶100的資源的系統(tǒng)的軟件架構500B2的第二方面的特定圖。圖6B說明節(jié)點或資源圖表500B2,其僅包括具有特定的又一示范性資源名稱的節(jié)點601,以及對應于圖5的對應物的客戶端648、事件690和查詢功能695。每一節(jié)點601已用橢圓形狀和具有表示節(jié)點601內的資源之間的相應相依性的特定方向的箭頭680來說明。
[0078]舉例來說,第一節(jié)點602具有相依性箭頭680B以指示第一節(jié)點602取決于第二節(jié)點622的三個資源。類似地,包括第二軟件元件444B且一股用圖6中的參考字母“C”標示的第三資源“/bus/ahb/sysB/”具有相依性箭頭680C,所述相依性箭頭指示此第三資源(C)取決于第四節(jié)點646的單個“/clk/sys/ahb”資源。
[0079]圖6B還說明來自可包括一個或一個以上事件690或查詢功能695的節(jié)點601的輸出數(shù)據(jù)。查詢功能695類似于事件690。查詢功能695可具有可為或可不為唯一的查詢句柄。
[0080]查詢功能一股不在外部識別,且其一股不具有狀態(tài)。查詢功能695可用于確定節(jié)點601的特定資源的狀態(tài)。查詢功能695和事件690可與所建立的客戶端648具有關系,且這些關系可由方向性箭頭697指示,以指示來自相應事件690和查詢功能695的信息被傳遞到特定客戶端648。
[0081]圖6的節(jié)點或資源圖表500B表示例如圖4的存儲器404等存儲器中所存在的關系,且所述關系由框架管理器440和可包括節(jié)點601的相關數(shù)據(jù)結構管理。節(jié)點或資源圖表500B可由框架管理器440自動產(chǎn)生為用于識別由框架管理器440管理的相應元件之間的關系且用于通過軟件小組來排除故障的有用工具。
[0082]圖6C是說明可相對于軟件架構500的資源進行跟蹤的示范性溫度閾值事件690的圖。雖然圖6C中所說明的閾值事件690與溫度相關,但所屬領域的技術人員應認識到,閾值事件可與可在PCD100內監(jiān)視的任何類型的條件相關聯(lián)。舉例來說,其它閾值事件包含(但不限于)與電力消耗、電池電荷狀態(tài)/狀況、休眠或低電力條件、特定硬件條件(例如,良好、好和差射頻(“RF”)接收)相關的閾值事件、可與比如每秒百萬指令(“MIP”)、時鐘頻率、總線頻率、電壓、DCVS條件和算法等負載相關的操作條件。
[0083]閾值事件690通常包含一個或一個以上觸發(fā)條件。在圖6C中所說明的實例中,觸發(fā)條件可包括可用P⑶100測量的一個或一個以上溫度。在圖6C的實例中,已選擇三個閾值溫度:A)可表示PCDlOO的高熱狀態(tài)的八十攝氏度;B)可表示PCD100的標稱熱狀態(tài)的六十五攝氏度;以及C)可表示PCD100的低熱狀態(tài)的五十攝氏度。
[0084]當溫度處于五十攝氏度或以下時,已創(chuàng)建第一閾值事件690A以跟蹤熱條件。當溫度是五十攝氏度或以下時或當溫度是八十攝氏度或以上時,已創(chuàng)建第二閾值事件690B以跟蹤熱條件。當溫度是六十五攝氏度或以下時,已創(chuàng)建第三閾值事件690C以跟蹤熱條件。且當溫度是五十攝氏度或以下時或當已達到六十五攝氏度時或當已達到八十攝氏度時,已創(chuàng)建第四閾值事件690D以跟蹤熱條件。
[0085]可將這些四個不同閾值事件690A、690B、690C、690D中的每一者指派給PCD100的
資源的相同、不同或各種組合,如下文結合圖6D進一步詳細地描述。由框架管理器440支持的軟件架構500的任何用戶可針對資源設置閾值事件690。創(chuàng)建閾值事件690的軟件架構500的用戶可包含資源創(chuàng)造者、節(jié)點創(chuàng)造者、資源,或執(zhí)行線程??芍噶钪概山o閾值事件690的資源向一個或一個以上不同資源報告閾值事件的狀態(tài)。
[0086]圖6D是說明資源的圖表697以及可由每一資源跟蹤的對應示范性溫度閾值事件690的圖。圖6D的這些溫度閾值事件690對應于圖6C的溫度閾值事件690。根據(jù)此示范性實施例,圖表697的第一列列舉了負責跟蹤第二列中所列舉的閾值事件的每一資源。第三列列舉了將在達到閾值時接收閾值事件的狀態(tài)的資源接收方。
[0087]已向圖6A的第一資源(資源#1)指派兩個溫度閾值事件:圖6C的第一溫度閾值事件690A和第二溫度閾值事件690B。第一資源將把其閾值狀態(tài)傳輸?shù)絾蝹€資源:第四資源。已向圖6A的第二資源(資源#2)指派了兩個溫度閾值事件:圖6C的第一溫度閾值事件690A和第三溫度閾值事件690C。第二資源將把其閾值狀態(tài)報告給單個資源:第五資源。且已向圖6A的第三資源(資源#3)指派了單個溫度閾值事件:圖6C的第四閾值溫度事件690D。第三資源將把其閾值狀態(tài)報告給兩個資源:第四資源和第六資源。
[0088]圖6D的圖表697說明可如何將閾值事件690指派給資源以及可如何報告這些事件690的靈活性和縮放性。框架管理器440負責監(jiān)視并報告圖表697中所列舉的資源之間的通信。下文將結合圖16來描述用于創(chuàng)建閾值事件690的方法或過程1600。用于創(chuàng)建閾值事件690的方法1600可在用于創(chuàng)建軟件架構500以及用于管理PCD100的資源的方法700A已被執(zhí)行之后執(zhí)行。
[0089]圖7A是說明用于創(chuàng)建軟件架構以及用于管理P⑶100的資源的方法700A的流程圖???05是用于管理P⑶100的資源的方法或過程700的第一例程。在框705中,可由框架管理器440執(zhí)行或運行例程來接收節(jié)點結構數(shù)據(jù)。所述節(jié)點結構數(shù)據(jù)可包括相依性陣列,所述相依性陣列概述了特定節(jié)點601與其它節(jié)點601可具有的相依性。下文將結合圖8更詳細地描述關于節(jié)點結構數(shù)據(jù)和此例程或子方法705的進一步細節(jié)。
[0090]接下來,在框710中,框架管理器440可檢視作為框705中所接收的節(jié)點結構數(shù)據(jù)的部分的相依性數(shù)據(jù)。在決策框715中,框架管理器440可確定節(jié)點結構數(shù)據(jù)是否界定葉節(jié)點601。葉節(jié)點601 —股是指將基于節(jié)點結構數(shù)據(jù)創(chuàng)建的節(jié)點不具有任何相依性。如果對決策框715的詢問是肯定的,意味著用于創(chuàng)建當前節(jié)點的節(jié)點結構數(shù)據(jù)不具有任何相依性,那么框架管理器440繼續(xù)進行到例程框725。
[0091]如果對決策框715的詢問是否定的,那么遵循“否”分支到?jīng)Q策框720,其中框架管理器確定節(jié)點結構內的全部硬相依性是否存在。硬相依性可包括其中資源無法沒有存在的一者。同時,軟相依性可包括其中資源可將相依資源用作任選步驟的一者。軟相依性意味著可在處于節(jié)點架構內時創(chuàng)建或例示具有軟相依性的節(jié)點601或節(jié)點601的資源,甚至在軟相依性不存在時也如此。
[0092]軟相依性的實例可包括對于含有多個資源的面向資源的節(jié)點601的操作不重要的優(yōu)化特征??蚣芄芾砥?40可創(chuàng)建或例示用于所存在的所有硬相依性的節(jié)點或資源,且甚至在軟相依性對于具有未創(chuàng)建的軟相依性的那些節(jié)點或資源不存在時也是如此??墒褂没卣{特征來參考軟相依性,使得當軟相依性變得可用于框架管理器440時,框架管理器440將向參考軟相依性的每一回調告知軟相依性現(xiàn)在可用。
[0093]如果對決策框720的詢問是否定的,那么遵循“否”分支到框731,其中框架管理器440將節(jié)點結構數(shù)據(jù)存儲在例如存儲器等臨時存儲裝置中??蚣芄芾砥?40創(chuàng)建與此未例示的節(jié)點相關聯(lián)的回調特征。在框731之前且在決策框720的否定條件或肯定條件之后,可執(zhí)行用于管理變?yōu)椴豢捎玫奈蠢镜墓?jié)點601的任選方法700C。已經(jīng)用圖7A中的框720與框731之間的虛線來說明此任選方法700C。下文將結合圖7C描述任選方法700C的進一步細節(jié)。
[0094]如果對決策框715的詢問是肯定,那么遵循“是”分支到框725,其中基于在例程框705中接收的節(jié)點結構數(shù)據(jù)來創(chuàng)建或例示節(jié)點601。下文將結合圖9描述例程框725的進一步細節(jié)。接下來,在框732中,框架管理器440使用其唯一的資源名稱來公布新創(chuàng)建的節(jié)點601,使得其它節(jié)點601可將信息發(fā)送到新創(chuàng)建的節(jié)點601或從所述節(jié)點接收信息。
[0095]現(xiàn)在參看作為圖7A的接續(xù)流程圖的圖7B,在框735中,框架管理器440通知取決于新創(chuàng)建的節(jié)點601的其它節(jié)點601新創(chuàng)建的節(jié)點601已被例示且準備好接收或傳輸信肩、O
[0096]根據(jù)一個示范性方面,在創(chuàng)建相依節(jié)點(比如圖6A的節(jié)點601B)時立即觸發(fā)通知,即,遞歸地執(zhí)行通知。因此在建構圖6A的節(jié)點601B的情況下,立即通知節(jié)點601A。此通知可允許建構節(jié)點601A(因為節(jié)點601B是節(jié)點601A的最終相依性)。節(jié)點601B的構造可致使其它節(jié)點601被通知,且以此類推。節(jié)點601B直到取決于節(jié)點601B的最終資源完成時才完成。
[0097]第二、稍微更復雜的實施方案是將全部通知放到單獨的通知隊列上,且隨后在單個時間點處行進穿過所述隊列,即,遞歸地執(zhí)行通知。因此在建構圖6A的節(jié)點601B時,將對節(jié)點601A的通知推到列表上。隨后執(zhí)行所述列表且通知節(jié)點601A。此致使對其它額外節(jié)點601 (除了節(jié)點601A之外,圖6A中未說明)的通知被放在相同列表上,且隨后在發(fā)送對節(jié)點601A的通知之后發(fā)送所述通知。對其它節(jié)點601的通知(除了對節(jié)點601A的通知之外)直到在已完成與節(jié)點601B和節(jié)點601A相關聯(lián)的所有工作之后才發(fā)生。
[0098]邏輯上,這兩個實施方案是確切等效的,但其在實施時具有不同的存儲器消耗性質。遞歸實現(xiàn)是簡單的,但可消耗任意量的堆棧空間,其中堆棧消耗隨相依性圖表的深度而變。迭代實施方案稍微更復雜且需要多一點的靜態(tài)存儲器(通知列表),但堆棧使用是恒定的,而不管相依性圖表的深度如何,例如圖6A中所說明。
[0099]而且,框735中的節(jié)點創(chuàng)建的通知不限于其它節(jié)點。其還可在內部用于別名建構。系統(tǒng)500中的任何任意元件可使用相同機制以在節(jié)點(或標記)變得不可用(不僅僅是其它節(jié)點)時請求通知。節(jié)點和非節(jié)點兩者可使用相同的通知機制。[0100]在決策框740中,框架管理器440確定現(xiàn)在是否釋放其它節(jié)點601或軟相依性以用于基于當前節(jié)點601的創(chuàng)建進行創(chuàng)建或例示。決策框740—股確定現(xiàn)在是否可創(chuàng)建資源,因為已由近來已經(jīng)受創(chuàng)建或例示的當前節(jié)點完成某些相依性關系680。
[0101]如果對決策框740的詢問是肯定的,那么遵循“是”分支回到例程框725,其中因為剛創(chuàng)建的節(jié)點601完成相依性,所以現(xiàn)在可創(chuàng)建或例示經(jīng)釋放的節(jié)點601。
[0102]如果對決策框740的詢問是否定的,那么遵循“否”分支到框741,其中框架管理器440可管理如圖5和6中所說明的軟件架構的元件之間的通信。在框741與框753之間,可通過框架管理器440和資源來執(zhí)行用于管理可壓制請求的任選方法700D。下文將結合圖7D描述任選方法700D的進一步細節(jié)。
[0103]接下來,在框753中且在任選方法700D之后,框架管理器440可通過使用與特定資源相關聯(lián)的資源名稱來繼續(xù)記錄或記載由資源采取的動作???53可由框架管理器440在框架管理器440或框架管理器440所管理的元件(例如,資源、節(jié)點601、客戶端648、事件695和查詢功能697)中的任一者所采取的任何動作之后執(zhí)行???53是本發(fā)明的又一個重要方面,其中框架管理器440可維持活動的運行日志,所述日志列舉了由每一元件根據(jù)其由創(chuàng)建了特定元件(例如,節(jié)點601的資源)的創(chuàng)造者提供的唯一識別符或名稱而執(zhí)行的動作。
[0104]與現(xiàn)有技術相比,框753中的列舉了指派給系統(tǒng)的每一資源的唯一名稱的此活動日志是唯一的,且可提供顯著優(yōu)點,例如用于調試和錯誤排除故障中。使系統(tǒng)500唯一的許多方面中的另一方面是單獨小組可對不同的硬件和/或軟件元件彼此獨立地工作,其中每一小組將能夠使用唯一的且容易跟蹤而不需要創(chuàng)建表的資源名稱來翻譯由其它小組和/或原始設備制造商(OEM)指派的含義較少且通?;煜馁Y源名稱。
[0105]接下來,在決策框755中,框架管理器440確定是否已請求框架管理器440所記錄的活動日志。如果對決策框755的詢問是否定的,那么遵循“否”分支到過程結束,其中過程返回到例程705。如果對決策框755的詢問是肯定的,那么遵循“是”分支到框760,其中框架管理器440將包括有含義的資源名稱以及由資源名稱執(zhí)行的相應動作的活動日志發(fā)送到輸出裝置,例如打印機或顯示屏和/或兩者。變得不可用的用于管理未例示的節(jié)點601的任選方法700E可在框760之后執(zhí)行。下文將結合圖7D描述方法700E的進一步細節(jié)。在框760之后,過程700B可隨后返回到上文所描述的例程框705。
[0106]圖7C是說明用于管理變?yōu)镻⑶100不可用的未例示的節(jié)點601的任選方法700C的圖7A的接續(xù)流程圖。當節(jié)點601的資源離線或已經(jīng)歷故障條件時,可將節(jié)點601表征為不可用。根據(jù)一個示范性方面,如果資源是可從PCD100移除的硬件(例如裝置的USB端口類型),那么所述資源可變得不可用。當硬件資源已經(jīng)從PCD100移除且不可用于處理可由框架管理器440管理的任何請求時,硬件資源的驅動器可告知圖5的框架管理器440。
[0107]此任選方法700C可良好適合于可耦合到P⑶100的可插拔/不可插拔類型的資源。此任選方法700C還針對在圖7A的例程框725中尚未例示或創(chuàng)建的節(jié)點601進行裁剪。換句話說,任選方法700C針對尚未由框架管理器440創(chuàng)建的節(jié)點601來管理節(jié)點結構數(shù)據(jù),其中創(chuàng)建/例示通常發(fā)生在圖7A的例程框725中。當對應于節(jié)點的資源因為其未從系統(tǒng)500插拔或因為其正在經(jīng)歷一個或一個以上故障條件而不可用時,任選方法700C阻止創(chuàng)建節(jié)點601。[0108]決策框721是任選方法700C的第一步驟。在此決策框721中,圖5的框架管理器440可為監(jiān)視消息,其可從可用于系統(tǒng)500的可插拔資源的裝置驅動器接收。如先前所述,除了管理可用于系統(tǒng)500的可插拔資源之外,任選方法700C還可管理已經(jīng)歷故障條件且阻止資源取得或作用于由框架管理器440發(fā)送到其的任何請求的那些資源。資源的裝置驅動器可在決策框721中告知框架管理器440節(jié)點601的特定資源是否已經(jīng)歷需要框架管理器442使所述資源及其對應節(jié)點601離線的故障條件。
[0109]如果對決策框721的詢問是否定的,那么遵循“否”分支到框722,其中過程返回到圖7A的框731 (如果從決策框720遵循“否”分支)或過程返回到例程框725 (如果從決策框720遵循“是”分支)。如果對圖7C的決策框721的詢問是肯定的,那么遵循“是”分支到框723。
[0110]在框723中,框架管理器440鎖定未例示的節(jié)點601而不讓一個或一個以上其它資源存取以作為獨立節(jié)點601。換句話說,當未例示的節(jié)點601的一個或一個以上資源不可讓系統(tǒng)500用于處理由其它節(jié)點601、線程、客戶端648等發(fā)出的請求時,框架管理器440阻止其它節(jié)點601參考所述未例示的節(jié)點。
[0111]在框724中,框架管理器440停用未例示的節(jié)點601以防止其由框架管理器440稍后例示或創(chuàng)建。換句話說,在此框724中,框架管理器440可設定由框架管理器440跟蹤的防止未例示的節(jié)點601變?yōu)閳D6A的框架或資源圖表500B1的部分的旗標或值,直到形成未例示的節(jié)點601的所述資源變得可用于取得來自系統(tǒng)500的請求為止。
[0112]在決策框726中,框架管理器440用未例不的節(jié)點601的資源的一個或一個以上裝置驅動器進行檢查以確定不可用的一個或一個以上資源是否已改變狀態(tài)而變?yōu)榭捎糜谙到y(tǒng)500。如果對決策框726的詢問是否定的,那么遵循“否”分支到框730,其中過程700返回到圖7A的框731。
[0113]如果對決策框726的詢問是肯定的,那么遵循“是”分支到框727,其中框架管理器440啟用未例示的節(jié)點601,使得當已開始圖7A的例程725時,可例示或創(chuàng)建所述節(jié)點。在此框727中,框架管理器440可清除或復位與未例示的節(jié)點601相關聯(lián)的旗標,使得可由框架管理器440在圖7A的例示例程725期間處理未例示的節(jié)點601。
[0114]在決策框728中,框架管理器440可確定是否還啟用又重新啟用的未例示的節(jié)點601的相依性。此決策框728允許框架管理器442確保又重新啟用的未例示的節(jié)點601所相依的節(jié)點601或節(jié)點601的資源自身已啟用。如果對決策框728的詢問是否定的,那么可遵循“否”分支回到框730,其中過程700返回到圖7A的框731 (如果從決策框720到遵循“否”分支到?jīng)Q策框721)或過程返回到例程框725 (如果從決策框720遵循“是”分支到?jīng)Q策框721)。
[0115]如果對圖7C的決策框728的詢問是肯定的,那么遵循“是”分支到框729,其中框架管理器440解開重新啟用的未例示的節(jié)點601。當在執(zhí)行圖7A的例示例程725之后產(chǎn)生圖6A的資源圖表500B1時,重新啟用的未例示的節(jié)點601經(jīng)解開以讓其它資源存取。任選方法700C隨后返回到框731 (如果從決策框720到遵循“否”分支到?jīng)Q策框721)或過程返回到例程框725 (如果從決策框720到遵循“是”分支到?jīng)Q策框721)。
[0116]圖7D是說明用于管理由客戶端、資源和/或線程等發(fā)出的可壓制請求的任選方法700D的圖7A的繼續(xù)流程圖。可壓制請求是當已滿足特定資源的條件或閾值時可忽視資源或將資源擱置的請求。所述閾值或條件可經(jīng)建立且針對每一資源可為唯一的。示范性閾值或條件可包含(但不限于)休眠狀態(tài)、高熱條件、低電池電力條件以及差無線電接收等??蓧褐普埱笸ǔ1蛔R別為在如下文結合圖13所描述的方法1300A(例如在步驟1305中)期間創(chuàng)建之后的請求。
[0117]可使用在創(chuàng)建請求期間由客戶端設定的旗標或變量來識別可壓制請求。資源可選擇利用可壓制請求特征來管理其請求,或其可選擇忽略是否是否可壓制。
[0118]當資源確定在給定情景下中止請求或擱置請求可導致P⑶100的更大效率時,可壓制請求對于資源來說是有利的。舉例來說,假設資源負責管理總線。所述資源還可在耦合到總線的CPU想要進入閑置狀態(tài)中時學習條件。
[0119]所述資源可接收用以增加正由總線支持的帶寬的請求。同時,資源可已剛剛接收到CPU將要進入閑置狀態(tài)中的消息。如果所述資源知道對帶寬增加的總線請求是可壓制請求,那么所述資源可能夠壓制所述總線請求,直到CPU退出其閑置狀態(tài)為止。讓資源管理總線以在CPU處于閑置狀態(tài)中時壓制總線請求的此能力給予PCD100的顯著效率以便節(jié)省電力。所屬領域的技術人員鑒于此實例會容易理解用于用可壓制請求來增加管理資源的效率的其它示范性情景。
[0120]決策框742是用于管理可壓制請求的方法700D的第一步驟。在決策框742中,節(jié)點601的資源可確定其當前是否正在處置一個或一個以上被壓制的請求。如果對決策步驟742的詢問是否定的,那么遵循“否”分支到?jīng)Q策框745。
[0121]如果對決策框742的詢問是肯定的,那么遵循“是”分支到?jīng)Q策框743。在決策框743中,資源確定是否存在用于執(zhí)行先前被壓制的一個或一個以上請求的一個或一個以上條件。舉例來說,在上文關于CPU402進入閑置狀態(tài)中所述的示范性情景中,所述資源可確定CPU402是否已離開其閑置狀態(tài)以作為一條件。如果此條件是真,意味著CPU402已離開其閑置狀態(tài),那么所述資源可執(zhí)行先前被壓制的請求。換句話說,如果對決策框743的詢問是肯定的,那么可遵循“是”分支到框744,其中資源執(zhí)行先前被壓制的一個或一個以上請求。實質上,此點處的代碼計算在壓制條件變?yōu)檎?即,如果CPU402變閑置)時新狀態(tài)應為什么且將其存儲起來。隨后在所述條件變?yōu)檎鏁r,其應用另一狀態(tài)。這是延遲執(zhí)行的形式,如所屬領域的技術人員所理解。
[0122]如果對決策框743的詢問是否定的,那么遵循“否”分支到?jīng)Q策框745。在決策框745中,資源可確定是否存在用于壓制已被識別為可壓制的那些請求的一個或一個以上條件。決策框745可與其中CPU將要進入閑置狀態(tài)中的先前實例相對應。如果對決策框745的詢問是肯定的,那么可遵循“是”分支到框746,其中資源可聚集一個或一個以上可壓制請求以供資源稍后執(zhí)行。如果對決策框745的詢問是否定的,那么可遵循“否”分支到框747,其中過程700D返回到圖7B的框753。
[0123]圖7E是說明用于管理變?yōu)镻⑶100不可用的未例示的節(jié)點601的任選方法700E的圖7A的接續(xù)流程圖。此任選方法700E非常類似于任選方法700C,除了任選方法700E是用于已基于圖7A的例程725例示的節(jié)點601之外。
[0124]如先前所述,當節(jié)點的資源離線或已經(jīng)歷故障條件時,可將節(jié)點601表征為不可用。根據(jù)一個示范性方面,如果資源是可從PCD100移除的硬件(例如裝置的USB端口類型),那么所述資源可變得不可用。當資源已經(jīng)從PCD100移除且不可用于處理可由框架管理器440管理的任何請求時,硬件的驅動器可告知圖5的框架管理器440。
[0125]此任選方法700E與任選方法700C —樣可良好適合于可耦合到P⑶100的可插拔/不可插拔類型的資源。此任選方法700D針對在圖7A的例程框725中已例示或創(chuàng)建的節(jié)點601進行裁剪。換句話說,任選方法700E已由框架管理器440創(chuàng)建且已存在于例如圖6A的資源圖表500B1等資源圖表中的節(jié)點601。
[0126]決策框766與圖7A的框721 —樣是任選方法700D的第一步驟。在決策框766中,框架管理器440可確定是否應使如圖6A的示范性節(jié)點資源圖表500B1中所說明的特定節(jié)點601離線。在此決策框766中,圖5的框架管理器440可為監(jiān)視消息,其可從可用于系統(tǒng)500的可插拔資源的裝置驅動器接收。如先前所述,除了管理可用于系統(tǒng)500的可插拔資源之外,任選方法700E還可管理已經(jīng)歷故障條件且阻止資源取得或作用于由框架管理器440發(fā)送到其的任何請求的那些資源。資源的裝置驅動器可在決策框766中告知框架管理器440節(jié)點601的特定資源是否已經(jīng)歷需要框架管理器442使所述資源及其對應節(jié)點601離線的故障條件。
[0127]如果對決策框766的詢問是否定的,那么遵循“否”分支回到圖7A的框705。如果對決策框766的詢問是肯定的,那么遵循“是”分支到框768。
[0128]在框768中,框架管理器440在使節(jié)點601離線之前記錄節(jié)點601的資源的當前狀態(tài)??蚣芄芾砥?40可隨后使資源及其對應的節(jié)點601離線。
[0129]在框770中,框架管理器440鎖定現(xiàn)有節(jié)點601而不讓一個或一個以上其它資源存取以作為獨立節(jié)點601。換句話說,當節(jié)點601的一個或一個以上資源不可讓系統(tǒng)500用于處理由其它節(jié)點601、線程、客戶端648等發(fā)出的請求時,框架管理器440阻止其它節(jié)點601參考所述節(jié)點。
[0130]在框772中,框架管理器440停用節(jié)點601及其當前狀態(tài)。在決策框774中,框架管理器440用經(jīng)停用的節(jié)點601的資源的一個或一個以上裝置驅動器進行檢查以確定不可用的一個或一個以上資源是否已改變狀態(tài)而變?yōu)榭捎糜谙到y(tǒng)500。
[0131]如果對決策框774的詢問是否定的,那么遵循“否”分支回到圖7A的框705。如果對決策框774的詢問是肯定的,那么遵循“是”分支到框776,其中框架管理器440啟用節(jié)點601,使得其可再次用于系統(tǒng)500。在框778中,重新初始化現(xiàn)有節(jié)點601,使得將其帶回其前一狀態(tài)。換句話說,重新初始化現(xiàn)有節(jié)點601以便將節(jié)點601置于恰在框架管理器440使其離線之前的狀態(tài)中。
[0132]在決策框780中,框架管理器440可確定是否還啟用重新啟用的節(jié)點601的相依性。此決策框728允許框架管理器442確保重新啟用的現(xiàn)有節(jié)點601所相依的節(jié)點601或節(jié)點601的資源自身已啟用。如果對決策框780的詢問是否定的,那么可遵循“否”分支回到圖7A的框705。
[0133]如果對決策框780的詢問是肯定的,那么遵循“是”分支到框782,其中框架管理器440解開重新啟用的現(xiàn)有節(jié)點601。重新啟用的現(xiàn)有節(jié)點601被解開以讓其它資源存取,如圖6A的資源圖表500B1中所說明。任選方法700E隨后返回到圖7A的框705。
[0134]圖8是說明用于在PCD100的軟件架構中接收節(jié)點結構數(shù)據(jù)的圖7的子方法或例程705的流程圖。決策框802是圖8的子方法或例程705中的第一步驟。
[0135]在決策框802中,框架管理器440確定節(jié)點結構數(shù)據(jù)是否含有用于創(chuàng)建存根資源的請求。存根資源是允許資源創(chuàng)造者在圖6A的框架或資源圖表500B1中創(chuàng)建占位符的軟件開發(fā)工具。存根資源是可允許形成其它資源且其它資源可相依的占位符。以此方式,當特定資源不可用或尚未開發(fā)出時,可由框架管理器440在例示例程725期間創(chuàng)建其它資源和最終的節(jié)點和客戶端。
[0136]節(jié)點的其它資源可登記針對于存根資源的事件。然而,存根資源將從不返回事件的值,因為存根資源將不含有可支持事件的任何有效功能或特征。可用稍后階段處的實際或運行資源來取代存根資源。下文將結合圖17來描述關于可如何用實際資源取代存根資源的進一步細節(jié)。
[0137]如果對決策框802的詢問是否定的,那么遵循“否”分支到框805。如果對決策框802的詢問是肯定的,那么遵循“是”分支到框803,其中框架管理器440可接收用于創(chuàng)建存根資源的詳細名稱和數(shù)據(jù)。過程705隨后返回到圖7A的框710。
[0138]在框805中,框架管理器440可接收例如圖5的CPU402和時鐘442等軟件或硬件元件的唯一名稱。如先前所論述,節(jié)點601必須參考至少一個資源。每一資源具有一名稱,且所述名稱在系統(tǒng)500中必須是唯一的。可用唯一名稱來識別系統(tǒng)500內的所有元件。每一元件從字符角度來看具有唯一名稱。換句話說,一股來說,在系統(tǒng)500內不存在具有相同名稱的兩個元件。
[0139]根據(jù)系統(tǒng)的示范性方面,節(jié)點601的資源可一股在系統(tǒng)上具有唯一名稱,但不需要客戶端或事件名稱是唯一的,但它們可在需要時是唯一的。
[0140]為了方便起見,可使用使用正斜杠“/”字符來用于創(chuàng)建唯一名稱的常規(guī)樹文件命名結構或文件命名“隱喻”,例如但不限于用于CPU402的“/core/cpu”和用于時鐘442的“/clk/cpu”。然而,如所屬領域的技術人員所認識到的,含有字母數(shù)字字符和/或符號的任何其它組合的其它類型的資源名稱也在本發(fā)明的范圍內。
[0141]接下來,在框810中,框架管理器440可接收用于與正被創(chuàng)建的節(jié)點601的一個或一個以上資源相關聯(lián)的一個或一個以上驅動器功能的數(shù)據(jù)。驅動器功能一股包括將由特定節(jié)點601的一個或一個以上資源完成的動作。舉例來說,在圖6中,節(jié)點602的資源/core/cpu的驅動器功能可請求其所需的總線帶寬的量和CPU時鐘頻率以便提供已請求的所請求的處理量。這些請求將經(jīng)由節(jié)點642和節(jié)點622中的資源的客戶端(未說明)來作出。節(jié)點642中的/clk/cpu的驅動器功能將通常負責
[0142]根據(jù)其從節(jié)點602的/core/cpu資源接收到的請求來實際設定物理時鐘頻率。
[0143]在框815中,框架管理器440可接收節(jié)點屬性數(shù)據(jù)。節(jié)點屬性數(shù)據(jù)一股包括界定節(jié)點策略的數(shù)據(jù),所述節(jié)點策略例如為安全性(可經(jīng)由用戶空間應用存取節(jié)點)、遠程能力(可從系統(tǒng)中的其它處理器存取節(jié)點)以及可存取性(資源可支持多個同時客戶端)??蚣芄芾砥?40還可界定允許資源超馳默認框架行為(例如,請求評估或記錄策略)的屬性。
[0144]隨后,在框820中,框架管理器440可接收用于正被創(chuàng)建的特定節(jié)點601的自定義用戶數(shù)據(jù)。所述用戶數(shù)據(jù)可包括“C”編程語言領域中的技術人員所理解的無效“星形”字段。所屬領域的技術人員還知曉用戶數(shù)據(jù)為“信任我”字段。示范性自定義用戶數(shù)據(jù)可包含(但不限于)例如頻率表、寄存器圖等表???20中所接收的用戶數(shù)據(jù)未被系統(tǒng)500參考,但允許在對資源的自定義未被框架管理器440辨識或完全支持的情況下進行所述自定義。此用戶數(shù)據(jù)結構是“C”編程語言中既定對特定或具體使用進行擴展的基礎類。[0145]所屬領域的技術人員應認識到,用于擴展特定類的具體使用的其它種類的數(shù)據(jù)結構在本發(fā)明的范圍內。舉例來說,在編程語言“c++”(c加加)中,等效結構可包括將變?yōu)楣?jié)點601內的資源的擴展機制的關鍵字“公開”
[0146]接下來,在框825中,框架管理器440可接收相依性陣列數(shù)據(jù)。所述相依性陣列數(shù)據(jù)可包括正被創(chuàng)建的節(jié)點601相依的一個或一個以上資源601的唯一和特定名稱。舉例來說,如果正創(chuàng)建圖6B的第一節(jié)點602,那么在此框825中,相依性陣列數(shù)據(jù)可包括第一節(jié)點602相依的第二節(jié)點622的三個資源的資源名稱以及第三節(jié)點642的單個資源名稱。
[0147]隨后,在框830中,框架管理器440可接收資源陣列數(shù)據(jù)。資源陣列數(shù)據(jù)可包括正被創(chuàng)建的當前節(jié)點的參數(shù),例如與圖6的第一節(jié)點602相關的參數(shù)(如果此第一節(jié)點602正被創(chuàng)建)。資源陣列數(shù)據(jù)可包括以下數(shù)據(jù)中的一者或一者以上:其它資源的名稱;單位?’最大值;資源屬性;插入數(shù)據(jù);以及類似于框820的自定義用戶數(shù)據(jù)的任何自定義資源數(shù)據(jù)。插入數(shù)據(jù)一股識別從軟件庫檢索到的功能,且通常列舉可由正被創(chuàng)建的特定節(jié)點或多個節(jié)點支持的客戶端類型。所述插入數(shù)據(jù)還允許自定義客戶端創(chuàng)建和摧毀。在框830之后,過程返回到圖7的框710。
[0148]在圖8中,已用虛線說明了屬性數(shù)據(jù)框815、自定義用戶數(shù)據(jù)框820以及相依性陣列數(shù)據(jù)框825以指示這些特定步驟是任選的且不是任何給定節(jié)點601都需要的。同時,已用實線說明了唯一名稱框805、驅動器功能框810以及資源陣列數(shù)據(jù)框830以指示例程705的這些步驟對于創(chuàng)建節(jié)點601是強制性的。
[0149]圖9是說明用于在PCD100的軟件架構中創(chuàng)建節(jié)點的圖7的子方法或例程725的流程圖。例程框905是根據(jù)一個示范性實施例的用于例示或創(chuàng)建節(jié)點601的子方法或例程725中的第一例程。在例 程框905中,與正被例不的節(jié)點601相關聯(lián)的一個或一個以上客戶端648在此步驟中被創(chuàng)建。下文將結合圖12進一步詳細地描述關于例程框905的進一步細節(jié)。
[0150]在框910中,框架管理器可創(chuàng)建或例示對應于框705的節(jié)點結構數(shù)據(jù)的一個或一個以上資源。接下來,在框915中,框架管理器440可使用在例程框705的資源陣列數(shù)據(jù)框830中所接收的最大值來激活在例程框705的例程框810中所接收的驅動器功能。根據(jù)一個示范性方面,可使用在例程框705的資源陣列數(shù)據(jù)框830中所接收的最大值來激活所述驅動器功能。根據(jù)另一優(yōu)選的示范性方面,可使用連同來自例程705的節(jié)點結構數(shù)據(jù)一起被傳遞的任選的初始值來激活每一驅動器功能。如果未提供初始數(shù)據(jù),那么在0(最小值)處初始化驅動器功能。還通常以知曉其正被初始化的方式來激活驅動器功能。此使得資源能夠執(zhí)行初始化專有的任何操作,但不需要在正?;蚶滩僮髌陂g執(zhí)行。過程隨后返回到圖7的步驟730。
[0151]圖10是可由P⑶100的軟件架構維持的示范性名稱表1000的數(shù)據(jù)結構的圖。示范性名稱表1000可包括兩個數(shù)據(jù)列。第一列可包括對應于資源601的別名1005且第二列可包括由框架管理器440維持以用于管理圖6中所說明的節(jié)點601之間的關系的節(jié)點601的實際資源名稱1010??蓪⒍鄠€別名用于相同資源601。別名可被感知為相依性且可在客戶端的創(chuàng)建期間創(chuàng)建,如下文結合圖12所描述。
[0152]名稱表1000允許集中于某些硬件和/或軟件元件的第一設計小組(例如,原始設備制造商(OEM))提供相對于所述第一設計小組在內部的對硬件或軟件的特定塊工作的唯一名稱。通過名稱表1000,第二和第三(或更多)外部設計小組可能夠通過使用所述第二和第三外部設計小組的硬件或軟件元件所偏好的別名來參考(在此實例中的OEM的)第一設計小組的硬件或軟件元件。
[0153]舉例來說,OEM可將名稱“/cpuO”指派給圖5的中央處理單元402,如圖10中的表1000的第一行和第二列中所說明。同時,相對于OEM的第二專業(yè)小組可需要將不同的名稱或別名指派給相同的中央處理單元402。第二小組可指派對應于資源名稱“/cpuO”的“主處理器”的別名,如圖10的表1000的第一行和第一列中所說明。
[0154]圖11是說明用于在PCD100的軟件架構中創(chuàng)建資源的別名的方法1100的流程圖。框1105是用于創(chuàng)建資源601的別名1005的方法1100中的第一步驟。在框1105中,框架管理器440接收對應于資源601的特定名稱1010的由用戶選擇的別名1005。接下來,在決策框1110中,框架管理器440確定由選定別名參考的資源是否已由框架管理器440創(chuàng)建。所屬領域的技術人員還將認識到,可相對于資源或相對于另一別名來界定別名。被公布的任何名稱可被別名化,而不僅僅是資源名稱。
[0155]如果對決策框1110的詢問是否定的,那么遵循“否”分支到框1115,其中將別名存儲在臨時存儲裝置中,直到創(chuàng)建資源為止。具體來說,當創(chuàng)建未界定的名稱的別名時,將此別名存儲在存儲器中,且過程回到等待界定更多別名。當例示別名時,將別名名稱連同相對于到那時未界定的名稱(別名)的回調一起存儲在存儲器中。當公布未界定的名稱(別名)時,當通知別名時,隨后將其公布。當存在缺少的相依性時,此行為實質上與資源創(chuàng)建過程相同。
[0156]所述過程隨后前進回到框1105。如果對決策框1110的詢問是肯定的,那么遵循“是”分支到框1120,其中框架管理器440公布別名,使得其它資源可存取對應于剛剛已被創(chuàng)建的別名的資源。過程隨后返回。
[0157]圖12是說明用于在PCD100的軟件架構中創(chuàng)建客戶端648的圖9的子方法或例程905的流程圖???205是例程框905的第一步驟,其中創(chuàng)建一個或一個以上資源601的客戶端648。在框1205中,框架管理器440接收指派給正被創(chuàng)建的客戶端648的名稱。類似于資源名稱,客戶端648的名稱可包括任何類型的字母數(shù)字和/或符號。
[0158]接下來,在框1210中,如果存在用于正被創(chuàng)建的此客戶端648的任何特定自定義,那么框架管理器440可接收自定義用戶數(shù)據(jù)。已用虛線來說明框1210以指示所述步驟是任選的。框1210的自定義用戶數(shù)據(jù)類似于上文結合節(jié)點601的資源的創(chuàng)建所論述的自定義用戶數(shù)據(jù)。
[0159]在框1215中,框架管理器440接收指派給正被創(chuàng)建的特定客戶端的客戶端類型類另IJ。本文的客戶端類型類別可包括四種類型中的一者:(a)所需的,(b)推動,(C)向量,以及(d)等時??扇Q于正由系統(tǒng)500管理的資源且取決于正依賴于節(jié)點601的資源的應用程序來擴展客戶端類型類別。
[0160]所需的類別一股與從所需的客戶端648傳遞到特定資源601的標量值的處理相對應。舉例來說,所需的請求可包括某一數(shù)目的每秒百萬指令(“MIP”)。同時,推動類別一股與請求的處理相對應以在一定時間周期內完成某一活動而不需要開始時間或停止時間的任何指定。
[0161]等時類別一股與對通常再現(xiàn)且具有良好界定的開始時間和良好界定的結束時間的動作的請求相對應。向量類別一股與通常作為需要串行或并行的多個動作的部分的數(shù)據(jù)陣列相對應。
[0162]隨后,在框1220中,框架管理器440接收指示客戶端648是否已被指定為同步或異步的數(shù)據(jù)。同步客戶端648是這樣的客戶端,即通常需要框架管理器442鎖定節(jié)點601的資源,直到資源601返回資源601已結束完成來自同步客戶端648的所請求任務的數(shù)據(jù)和指示為止。
[0163]另一方面,異步客戶端648可通過由框架管理器440存取的一個或一個以上線程436(參看圖4)并行地處置。框架440可創(chuàng)建對線程436的回調,且在所述回調已由相應線程436執(zhí)行時返回一值。所屬領域的技術人員應認識到,異步客戶端648不鎖定資源,像同步客戶端648在正執(zhí)行同步客戶端648的任務時所做的那樣。
[0164]在框1220之后,在決策框1225中,框架管理器440確定由客戶端645識別的資源是否可用。如果對決策框1225的詢問是否定的,那么遵循“否”分支到框1230,其中將空值或消息返回到用戶,從而指示無法在此時創(chuàng)建客戶端648。
[0165]如果對決策框1225的詢問是肯定的,那么遵循“是”分支到?jīng)Q策框1235,其中框架管理器440啟確定由客戶端648識別的每一資源是否支持框1210中所提供的客戶端類型。如果對決策框1235的詢問是否定的,那么遵循“否”分支回到框1230,其中返回空值或消息,從而指示無法在此時創(chuàng)建客戶端648。
[0166]如果對決策框1235的詢問是肯定的,那么遵循“是”分支到框1240,其中框架管理器440在存儲器中創(chuàng)建或例示客戶端648。接下來,在框1245中,如果在框1210中接收到任何自定義用戶數(shù)據(jù),例如任選的自變量,那么可用其相應的資源將這些任選的自變量映射到特定節(jié)點601。接下來,在框1250中,新創(chuàng)建的客戶端645耦合到處于閑置狀態(tài)中或在所請求的狀態(tài)上的其對應的一個或一個以上資源,如上文所描述的圖6B中所說明。過程隨后返回到圖9的框910。
[0167]圖13是說明用于在P⑶100的軟件架構中創(chuàng)建針對資源601的客戶端請求675的方法1300的流程圖。方法1300 —股在如上文結合圖7和圖12所描述的客戶端創(chuàng)建和節(jié)點創(chuàng)建之后執(zhí)行???305是用于創(chuàng)建針對資源601的客戶端請求675的方法1300中的第一步驟。此方法1300將描述如何通過框架管理器440來處置以下三種類型的請求675: (a)所需的,(b)推動以及(c)向量。下文將結合圖15來描述對第四種類型的請求675((d)等時請求)的處置。如上文所提及的請求675的名稱所暗示,客戶端請求675 —股與上文結合圖12所創(chuàng)建和描述的客戶端類型相對應。
[0168]在框1305中,框架管理器440可接收與特定客戶端請求675相關聯(lián)的數(shù)據(jù),所述客戶端請求例如為上文提及的三種請求中的一者:(a)所需的,(b)推動以及(C)向量。與所需的請求相關聯(lián)的數(shù)據(jù)一股包括從所需的客戶端648傳遞到特定資源601的標量值。舉例來說,所需的請求可包括某一數(shù)目的每秒百萬指令(“MIP”)。同時,推動包括用以在一定時間周期內完成某一活動而不需要開始時間或停止時間的任何指定的請求。用于向量請求的數(shù)據(jù)一股包括需要串行或并行地完成的多個動作的陣列。向量請求可包括任意長度的值。向量請求通常具有大小值和值陣列。節(jié)點601的每一資源可經(jīng)擴展以具有指針字段,以便支持向量請求。在“C”編程語言中,所述指針字段由所屬領域的技術人員所理解的聯(lián)合功能支持。[0169]客戶端請求數(shù)據(jù)還可指示所述請求是否為可壓制的。可壓制請求可由資源根據(jù)資源的自身選擇來不同地處置,如上文結合圖7D的方法700D所描述。
[0170]接下來,在框1310中,框架管理器440通過由上文結合圖13所描述的方法創(chuàng)建的客戶端648來發(fā)出請求。隨后,在框1315中,如果所述請求是所需的類型或向量類型,那么框架管理器440加倍緩沖正穿過客戶端的所述請求數(shù)據(jù)。如果所述請求是推動類型,那么框架管理器1440跳過框1315。
[0171]對于所需的請求,在此框1315中,來自前一請求的值被維持在存儲器中,使得框架管理器440可確定在先前所請求值與當前組的所請求值之間是否存在任何差異。對于向量請求,通常不將先前請求維持在存儲器中,但節(jié)點601的資源可針對特定實施方案在需要時維持所述先前請求。因此,框1315對于向量類型的請求是任選的。
[0172]在決策框1317中,
[0173]在框1320中,框架管理器440計算當前組的所請求值中的先前組的所請求值之間的增量或差。在決策框1325中,框架管理器確定當前組的所請求值是否等同于先前組的所請求值。換句話說,框架管理器440確定當前組的所請求值與先前組的所請求值之間是否存在差。如果在當前組的所請求值與先前組的所請求值之間不存在差,那么遵循“是”分支(其跳過框1330到框1370)到框1375,其中過程結束。
[0174]如果對決策框1325的詢問是否定的,意味著所述組的所請求值相對于所述組的先前所請求值是不同的,那么遵循“否”分支到?jīng)Q策框1330。
[0175]在決策框1330中,框架管理器440確定讀取請求是否為異步請求。如果對決策框1330的詢問是否定的,那么遵循“否”分支到框1340,其中框架管理器440鎖定對應于客戶端請求675的資源601。如果對決策框1330的詢問是肯定的,意味著讀取請求是異步請求類型,那么遵循“是”分支到框1335,其中可將所述請求推到另一線程上且在框架管理器440當前管理多核系統(tǒng)(比如圖4的多核系統(tǒng))的情況下可由另一核執(zhí)行。已用虛線說明框1335以指示如果P⑶100是單核中央處理系統(tǒng),那么此步驟可為任選的。
[0176]隨后,在框1340中,框架管理器440鎖定對應于請求675的資源601。接下來,在框1345中,資源601執(zhí)行一股對應于在圖8的框830中所接收的資源陣列數(shù)據(jù)的插入數(shù)據(jù)的更新功能所述更新功能一股包括按照新客戶端請求來負責新資源狀態(tài)的功能。所述更新功能將其先前狀態(tài)與客戶端請求中的所請求狀態(tài)進行比較。如果所請求的狀態(tài)大于先前狀態(tài),那么更新功能將執(zhí)行客戶端請求。然而,如果所請求的狀態(tài)等于或小于當前狀態(tài)以及資源正操作的狀態(tài),那么客戶端請求將不被執(zhí)行以便增加效率,因為老的狀態(tài)實現(xiàn)或滿足所請求的狀態(tài)。更新功能從客戶端取得新的請求且將所述請求與所有其它有效請求聚集在一起以確定資源的新狀態(tài)。
[0177]作為一實例,多個客戶端可請求總線時鐘頻率。所述總線時鐘的更新功能將通常采用所有客戶端請求中的最大者且將其用作總線時鐘的新的所需狀態(tài)。這不是所有資源將使用相同更新功能的情況,但存在將由多個資源使用的一些更新功能。一些共同更新功能將采用客戶端請求中的最大者、采用客戶端請求中的最小者,且對客戶端請求求和?;蛘哔Y源可界定其自身的自定義更新功能(如果其資源需要以某一獨特的方式聚集請求)。
[0178]接下來,在框1350中,框架管理器440將數(shù)據(jù)傳遞到對應于客戶端請求648的資源,使得所述資源可執(zhí)行節(jié)點601的資源專有的驅動器功能。驅動器功能應用更新功能所計算的資源狀態(tài)。此可需要更新硬件設定、向相依資源發(fā)出請求、調用傳統(tǒng)功能,或以上各者的某一組合。
[0179]在先前實例中,更新功能計算所請求的總線時鐘頻率。驅動器功能可接收所述所請求的頻率且其可更新所述時鐘頻率控制HW在所述頻率下允許。應注意,有時驅動器功能可能不滿足更新功能已計算的確切所請求狀態(tài)。在此情況下,驅動器功能可選擇最佳滿足請求的頻率。舉例來說,總線時鐘HW可僅能夠在128MHz和160MHz下運行,但所請求的狀態(tài)可為150MHz。在此情況下,驅動器功能應160MHz下運行,因為其超過所請求的狀態(tài)。
[0180]接下來,在框1355中,框架440從已在框1350中執(zhí)行驅動器功能的資源接收狀態(tài)控制。隨后,在框1360中,如果針對資源進行界定,那么事件690可經(jīng)觸發(fā),使得將數(shù)據(jù)傳遞回對應于事件690的客戶端648。可在另一線程中處理事件。此可使鎖定的資源所花費的時間量最少,且允許如圖4中所說明的多核系統(tǒng)中的更并行的操作。可以類似于如此方法1300中所描述的如何針對資源來界定請求的方式來針對資源界定一個或一個以上事件690。換句話說,事件創(chuàng)建過程可使客戶端創(chuàng)建過程最大程度地并行。與事件不同的一件事是有可能界定僅在越過某些閾值時才會被觸發(fā)的事件。
[0181]僅基于閾值才會被觸發(fā)的事件的此界定實現(xiàn)以下通知:在資源變得超預訂時(其具有比其可支持的同時用戶多的同時用戶),其指示系統(tǒng)過載條件;或當資源變低/沒有時,其可允許其它物被關閉,恢復在系統(tǒng)變得超預訂時所停用的功能性等。因為可用閾值完成事件登記,所以其減少系統(tǒng)必須對事件通知所做的工作量,而僅在存在一些確實必需的事情時才發(fā)生。還有可能針對每個狀態(tài)改變的事件進行登記。
[0182]接下來,在任選的框1365中,如果正被處理的請求是向量請求,那么通常執(zhí)行此任選的框1365。任選的框1365 —股包括檢查或確定以評估向量指針是否仍定位在用戶傳遞到向量中的相同數(shù)據(jù)上。如果對此任選的框1365的詢問是肯定的,意味著指針仍指向用戶傳遞到向量中的相同數(shù)據(jù),那么清除指針,使得對舊數(shù)據(jù)的參考不被維持。一股執(zhí)行此任選的框1365來慮及在上文在正處理向量請求時所描述的與推動請求和所需的請求進行比較的加倍緩沖框1315。
[0183]隨后,在框1370中,框架440解開所請求的資源,使得其它客戶端請求648可被特定節(jié)點601的當前的但現(xiàn)在被釋放的所請求資源處置。所述過程隨后返回到第一框1305以用于接收下一客戶端請求。
[0184]圖14是說明對P⑶100的資源的等時客戶端請求中所請求的工作的圖1400。圖1400包括具有X軸和Y軸的圖表。X軸一股包括在Y軸可包括所請求的動作值(例如,所請求的每秒百萬指令(MIP))時所逝去的事件。如先前所述,等時客戶端請求一股包括良好界定的開始時間A和良好界定的結束時間或最終期限C。在圖14中所說明的示范性實施例中,圖表指示150MIP的所請求工作在時間A處開始且在時間B處結束,其中時間B在時間C的所請求的最終期限之前出現(xiàn)。
[0185]圖15是說明用于在PCD100的軟件架構中創(chuàng)建針對資源的等時客戶端請求的圖9的子方法或例程1300B的流程圖。此子方法或例程1300B是從上文結合圖13所描述的步驟建立或與所述步驟結合執(zhí)行。這意味著此圖15中所列舉的步驟以對應于圖13中所提供的參考數(shù)字的序列定位。如下文更詳細地描述,在步驟的次序或序列不影響來自所執(zhí)行的步驟的所需輸出時,本發(fā)明不限于此次序或序列。[0186]框1307是用于處理等時請求675的子方法或例程的第一步驟???307在框1305之后且在圖13的框1310之前出現(xiàn)。在框1307中,框架管理器440可接收最終期限數(shù)據(jù),例如上文結合圖14所論述的最終期限C。
[0187]接下來,在框1309中,框架管理器440可計算當前時間與在框1307中提供的最終期限之間的差。隨后在發(fā)生在圖13的框1360之后但在框1365之前的框1362中,框架管理器440將開始時間A和結束時間B與最終期限C進行比較(參看圖14)。在框1363中,因為框架管理器440具備所請求的活動量且因為框架管理器440跟蹤開始時間A和結束時間B,于是在框1363中,框架管理器440可計算由特定節(jié)點601的資源執(zhí)行的工作量。
[0188]接下來,在發(fā)生在圖13的框1365之后且在框1370之前的框1367中,可執(zhí)行優(yōu)化過程。已用虛線說明框1367以指示所述步驟是任選的,或此步驟可離線且離開與PCD100相關的裝置執(zhí)行。所述優(yōu)化過程可試圖確定如何在最終期限中的開始時間之間最佳地完成工作,同時考慮到許多不同變量,例如電力消耗和響應性。在一些示范性實施例中,在不脫離本發(fā)明的范圍的情況下,可完全徹底地跳過此框1367。所述過程隨后返回到圖13的框1305以用于處理下一客戶端請求675。
[0189]圖16是說明用于在P⑶100的軟件架構500中創(chuàng)建針對資源的閾值事件690的方法1600的流程圖。圖16 —股與上文結合圖6C、6D所描述的閾值事件690相對應。如先前所述,雖然圖6C中所說明的閾值事件690與溫度相關,但所屬領域的技術人員應認識到,閾值事件690可與可在PCD100內監(jiān)視的任何類型的條件相關聯(lián)。
[0190]舉例來說,其它閾值事件包含(但不限于)與電力消耗、電池電荷狀態(tài)/狀況、休眠或低電力條件、特定硬件條件(例如,良好、好和差射頻(“RF”)接收)相關的閾值事件、可與比如每秒百萬指令(“MIP”)、時鐘頻率、總線頻率、電壓、DCVS條件和算法等負載相關的操作條件。閾值事件690通常包含一個或一個以上觸發(fā)條件。在圖6C所說明的實例中,所述觸發(fā)條件與特定溫度值相關。
[0191]現(xiàn)在返回參看圖16,框1605是用于創(chuàng)建一個或一個以上閾值事件690的方法1600的第一步驟。方法1600 —股在如圖7中所說明的用于管理P⑶100的資源的方法700之后實行或執(zhí)行。在框1605中,圖5A的框架管理器440可接收用以針對節(jié)點601的資源創(chuàng)建閾值事件690的一個或一個以上請求。
[0192]如上文所述,由框架管理器440支持的軟件架構500的任何用戶可針對資源設置閾值事件690。創(chuàng)建閾值事件690的軟件架構500的用戶可包含資源創(chuàng)造者、節(jié)點創(chuàng)造者、資源,或執(zhí)行線程??芍噶钪概山o閾值事件690的資源向一個或一個以上不同資源報告閾值事件的狀態(tài)。
[0193]接下來,在框1610中,用于40A的框架管理器接收跟蹤針對節(jié)點601的一個或一個以上資源的事件/條件的一個或一個以上功能。此框1610 —股與圖6C中所說明的閾值事件690相對應。在框1615中,框架管理器440將接收正被一個或一個以上功能跟蹤的一個或一個以上閾值或條件。具體來說,對于框1610和1615,框架管理器440將接收圖6C中所說明的閾值事件690A到D中的一者。圖6C中所說明的每一閾值事件690具有溫度監(jiān)視功能以及正被所述功能跟蹤的特定溫度。
[0194]接下來,在框1620中,框架管理器440將接收一個或一個以上資源的一個或一個以上名稱,所述一個或一個以上資源將接收閾值事件的通知。框1620 —股與圖6D中所說明的圖表697相對應。圖表697在第三列中列出用于第二列中所列出的閾值事件的接收方資源。
[0195]接下來,在框1625中,用框架管理器440登記針對資源的一個或一個以上閾值事件。隨后,在框1630中,每一資源開始其對方法1600中所界定的其閾值事件的監(jiān)視。方法1600隨后返回。
[0196]圖17是說明用于在PCD100的軟件架構500中用新的(實際)資源取代存根資源的方法1700的流程圖。圖17 —股與圖8的其中可創(chuàng)建存根資源的框803相對應。如先前結合圖8所述,存根資源是允許資源創(chuàng)造者在圖6A的框架或資源圖表500B1中創(chuàng)建占位符的軟件開發(fā)工具。存根資源是可允許形成其它資源且其它資源可相依的占位符。以此方式,當特定資源不可用或尚未開發(fā)出時,可創(chuàng)建其它資源和最終的節(jié)點和客戶端。
[0197]節(jié)點的其它資源可登記針對存根資源的事件。然而,存根資源將從不返回事件的值,因為存根資源將不含有可支持事件的任何有效功能或特征??捎萌缭趫D17中所設定的實際或運行資源來取代存根資源。
[0198]框1705是用于用新的(實際)起作用的資源取代存根資源的方法1700中的第一步驟。在框1705中,用于40的框架管理器可接收存根資源相依的一個或一個以上資源的身份。接下來,在框1710中,用于40的框架管理器可鎖定所述存根資源相依的一個或一個以上資源,使得這些其它資源可不發(fā)出任何進一步請求。
[0199]接下來,在框1715中,可將在用于存根資源的數(shù)據(jù)結構中列出的每一客戶端添加到將取代存根資源的新的起作用資源的列表。在框1720中,調整存根資源的每一客戶端的指針,使得其指向正取代存根資源的新的起作用資源。
[0200]在框1725中,框架管理器440可發(fā)出對老的存根資源相依的每一資源的一個或一個以上有效請求。接下來,在框1730中,框架管理器440可重新聚集正取代老的存根資源的新資源的新狀態(tài)。接下來,在框1735中,在框915中,框架管理器440可使用在例程框705的資源陣列數(shù)據(jù)框830中所接收的最大值來激活在例程框705的例程框810中所接收的驅動器功能。
[0201]根據(jù)一個示范性方面,可使用在例程框705的資源陣列數(shù)據(jù)框830中所接收的最大值來激活所述驅動器功能。根據(jù)另一優(yōu)選的示范性方面,可使用連同來自例程705的節(jié)點結構數(shù)據(jù)一起被傳遞的任選的初始值來激活每一驅動器功能。如果未提供初始數(shù)據(jù),那么在0(最小值)處初始化驅動器功能。還通常以知曉其正被初始化的方式來激活驅動器功能。此使得資源能夠執(zhí)行初始化專有的任何操作,但不需要在正常或例程操作期間執(zhí)行。
[0202]接下來,在框1740中,框架管理器440可針對取代存根資源的新的以及功能性資源而重新發(fā)出先前針對存根資源而登記的一個或一個以上事件。過程1700隨后返回。
[0203]在本說明書中所描述的過程或過程流中的某些步驟自然先于供本發(fā)明如所描述而起作用的其它方面。然而,如果此類次序或序列不更改本發(fā)明的功能性,則本發(fā)明不限于所描述的步驟的次序。也就是說,應認識到,在不脫離本發(fā)明的范圍和精神的情況下,一些步驟可在其它步驟之前、之后或與其它步驟并行地(大體上同時地)執(zhí)行。在一些情況下,在不脫離本發(fā)明的情況下,可省略或不執(zhí)行某些步驟。此外,例如“其后”、“隨后”、“接下來”等詞語無意限制步驟的次序。這些詞語僅用于引導讀者閱讀對示范性方法的描述。
[0204]另外,編程領域中的技術人員能夠編寫計算機代碼或識別適當?shù)挠布?或電路以基于(例如)本說明書中的流程圖和相關聯(lián)的描述而無困難地實施本發(fā)明。
[0205]因此,對于充分理解如何制作和使用本發(fā)明來說,對程序代碼指令或詳細硬件裝置的特定集合的揭示不被視為必需的。在以上描述中且結合可說明各種過程流的圖更詳細地闡釋所主張的計算機實施的過程的發(fā)明性功能性。
[0206]在一個或一個以上示范性方面中,可以硬件、軟件、固件或其任何組合來實施所描述的功能。如果以軟件實施,則可將功能作為一個或一個以上指令或代碼而在計算機可讀媒體上進行存儲或傳輸。計算機可讀媒體包含計算機存儲媒體與包括促進計算機程序從一處傳遞到另一處的任何媒體的通信媒體兩者。存儲媒體可為可由計算機存取的任何可用媒體。舉例來說而非限制,此計算機可讀媒體可包含RAM、ROM、EEPROM、CD-ROM或其它光盤存儲裝置、磁盤存儲裝置或其它磁性存儲裝置,或可用以載運或存儲呈指令或數(shù)據(jù)結構形式的所要程序代碼且可通過計算機存取的任何其它媒體。
[0207]同樣,可適當?shù)貙⑷魏芜B接稱作計算機可讀媒體。舉例來說,如果使用同軸電纜、光纖電纜、雙絞線、數(shù)字訂戶線(“DSL”)或例如紅外線、無線電及微波的無線技術從網(wǎng)站、服務器或其它遠程源傳輸軟件,則同軸電纜、光纖電纜、雙絞線、DSL或例如紅外線、無線電及微波的無線技術包含于媒體的定義中。
[0208]如本文中所使用,磁盤及光盤包括壓縮光盤(“⑶”)、激光光盤、光學光盤、數(shù)字多功能光盤(“DVD”)、軟盤和藍光光盤,其中磁盤通常以磁性方式再現(xiàn)數(shù)據(jù),而光盤用激光以光學方式再現(xiàn)數(shù)據(jù)。以上各者的組合也應包含在計算機可讀媒體的范圍內。
[0209]雖然已詳細地說明和描述了選定的方面,但將理解,在不脫離由所附權利要求書界定的本發(fā)明的精神和范圍的情況下,可在其中進行各種替代和更改。
【權利要求】
1.一種用于管理便攜式計算裝置的資源的方法,所述方法包括: 接收節(jié)點結構數(shù)據(jù)以用于形成節(jié)點,所述節(jié)點結構數(shù)據(jù)包括作為所述節(jié)點的部分的每一資源的唯一名稱; 針對一個或一個以上相依性來檢視所述節(jié)點結構數(shù)據(jù); 確定與未例示的節(jié)點的相依性相關聯(lián)的每一資源是否存在于節(jié)點框架內; 確定未例示的節(jié)點的每一資源是否可用于支持請求; 如果未例示的節(jié)點的資源不可用于支持任何請求,那么可設定一值以防止包含所述不可用的資源的節(jié)點的例示; 如果與相依性相關聯(lián)的資源不存在,那么將所述節(jié)點結構數(shù)據(jù)存儲在臨時存儲裝置中; 如果用于每一相依性的每一資源存在且可用,那么例示具有其一個或一個以上對應資源的所述節(jié)點;以及 如果例示所述節(jié)點,那么使用對應于節(jié)點的處于準備好用于處理通信的狀態(tài)中的一個或一個以上資源的一個或一個以上唯一名稱在所述節(jié)點框架內公布所述節(jié)點。
2.根據(jù)權利要求1所述的方法,其中每一資源包括軟件和硬件元件中的至少一者。
3.根據(jù)權利要求1 所述的方法,其進一步包括: 確定例示的節(jié)點的每一資源是否可用于支持請求; 如果例示的節(jié)點的資源不可用于支持任何請求,那么鎖定所述例示的節(jié)點而與其它資源隔尚。
4.根據(jù)權利要求1所述的方法,其進一步包括接收數(shù)據(jù)以用于形成充當所述節(jié)點框架中的占位符的存根資源。
5.根據(jù)權利要求4所述的方法,其進一步包括接收數(shù)據(jù)以用功能性資源來取代存根資源。
6.根據(jù)權利要求1所述的方法,其進一步包括確定所述節(jié)點框架內所管理的客戶端請求是否可壓制以延遲執(zhí)行。
7.根據(jù)權利要求6所述的方法,其進一步包括確定是否已實現(xiàn)用于延遲所述可壓制請求的執(zhí)行的一個或一個以上條件。
8.根據(jù)權利要求1所述的方法,其進一步包括接收一個或一個以上閾值事件以供資源管理。
9.根據(jù)權利要求7所述的方法,其中每一閾值事件包括被資源跟蹤的至少一個條件。
10.根據(jù)權利要求1所述的方法,其中所述便攜式計算裝置包括移動電話、個人數(shù)字助理、尋呼機、智能電話、導航裝置以及具有無線連接或鏈路的手持式計算機中的至少一者。
11.一種用于管理便攜式計算裝置的資源的計算機系統(tǒng),所述系統(tǒng)包括: 處理器,其可操作以用于: 接收節(jié)點結構數(shù)據(jù)以用于形成節(jié)點,所述節(jié)點結構數(shù)據(jù)包括作為所述節(jié)點的部分的每一資源的唯一名稱; 針對一個或一個以上相依性來檢視所述節(jié)點結構數(shù)據(jù); 確定與未例示的節(jié)點的相依性相關聯(lián)的每一資源是否存在于節(jié)點框架內; 確定未例示的節(jié)點的每一資源是否可用于支持請求;如果未例示的節(jié)點的資源不可用于支持任何請求,那么可設定一值以防止包含所述不可用的資源的節(jié)點的例示; 如果與相依性相關聯(lián)的資源不存在,那么將所述節(jié)點結構數(shù)據(jù)存儲在臨時存儲裝置中; 如果用于每一相依性的每一資源存在且可用,那么例示具有其一個或一個以上對應資源的所述節(jié)點;以及 如果例示所述節(jié)點,那么使用對應于節(jié)點的處于準備好用于處理通信的狀態(tài)中的一個或一個以上資源的一個或一個以上唯一名稱在所述節(jié)點框架內公布所述節(jié)點。
12.根據(jù)權利要求11所述的系統(tǒng),其中每一資源包括軟件和硬件元件中的至少一者。
13.根據(jù)權利要求12所述的系統(tǒng),其中所述處理器進一步可操作以用于: 確定例示的節(jié)點的每一資源是否可用于支持請求; 如果例示的節(jié)點的資源不可用于支持任何請求,那么鎖定所述例示的節(jié)點而與其它資源隔尚。
14.根據(jù)權利要求11所述的系統(tǒng),其中所述處理器進一步可操作以用于: 接收數(shù)據(jù)以用于形成充當所述節(jié)點框架中的占位符的存根資源。
15.根據(jù)權利要求14所述的系統(tǒng),其中所述處理器進一步可操作以用于: 接收數(shù)據(jù)以用功能性資源來取代存根資源。`
16.根據(jù)權利要求11所述的系統(tǒng),其中所述處理器進一步可操作以用于: 確定所述節(jié)點框架內所管理的客戶端請求是否可壓制以延遲執(zhí)行。
17.根據(jù)權利要求16所述的系統(tǒng),其中所述處理器進一步可操作以用于: 確定是否已實現(xiàn)用于延遲可壓制請求的執(zhí)行的一個或一個以上條件。
18.根據(jù)權利要求11所述的系統(tǒng),其中所述處理器進一步可操作以用于: 接收一個或一個以上閾值事件以供資源管理。
19.根據(jù)權利要求18所述的系統(tǒng),其中每一閾值事件包括被資源跟蹤的至少一個條件。
20.根據(jù)權利要求11所述的系統(tǒng),其中所述便攜式計算裝置包括移動電話、個人數(shù)字助理、尋呼機、智能電話、導航裝置以及具有無線連接或鏈路的手持式計算機中的至少一者。
21.一種用于管理便攜式計算裝置的資源的計算機系統(tǒng),所述系統(tǒng)包括: 用于接收節(jié)點結構數(shù)據(jù)以用于形成節(jié)點的裝置,所述節(jié)點結構數(shù)據(jù)包括作為所述節(jié)點的部分的每一資源的唯一名稱; 用于針對一個或一個以上相依性來檢視所述節(jié)點結構數(shù)據(jù)的裝置; 用于確定與未例示的節(jié)點的相依性相關聯(lián)的每一資源是否存在于節(jié)點框架內的裝置; 用于確定未例示的節(jié)點的每一資源是否可用于支持請求的裝置; 用于在未例示的節(jié)點的資源不可用于支持任何請求的情況下設定一值以防止包含所述不可用的資源的節(jié)點的例示的裝置; 用于在與相依性相關聯(lián)的資源不存在的情況下將所述節(jié)點結構數(shù)據(jù)存儲在臨時存儲裝置中的裝置;用于在用于每一相依性的每一資源存在且可用的情況下例示具有其一個或一個以上對應資源的所述節(jié)點的裝置;以及 用于在例示所述節(jié)點的情況下使用對應于節(jié)點的處于準備好用于處理通信的狀態(tài)中的一個或一個以上資源的一個或一個以上唯一名稱在所述節(jié)點框架內公布所述節(jié)點的裝置。
22.根據(jù)權利要求21所述的系統(tǒng),其中每一資源包括軟件和硬件元件中的至少一者。
23.根據(jù)權利要求22所述的系統(tǒng),其進一步包括: 用于確定例示的節(jié)點的每一資源是否可用于支持請求的裝置;以及用于在例示的節(jié)點的資源不可用于支持任何請求的情況下鎖定所述例示的節(jié)點而與其它資源隔離的裝置。
24.根據(jù)權利要求21所述的系統(tǒng),其進一步包括: 用于接收數(shù)據(jù)以用于形成充當所述節(jié)點框架中的占位符的存根資源的裝置。
25.根據(jù)權利要求24所述的系統(tǒng),其進一步包括: 用于接收數(shù)據(jù)以用功能性資源來取代存根資源的裝置。
26.根據(jù)權利要求21所述的方法,其進一步包括: 用于確定所述節(jié)點框架內所管理的客戶端請求是否可壓制以延遲執(zhí)行的裝置。`
27.根據(jù)權利要求26所述的系統(tǒng),其進一步包括: 用于確定是否已實現(xiàn)用于延遲可壓制請求的執(zhí)行的一個或一個以上條件的裝置。
28.根據(jù)權利要求21所述的系統(tǒng),其進一步包括: 用于接收一個或一個以上閾值事件以供資源管理的裝置。
29.根據(jù)權利要求28所述的系統(tǒng),其中每一閾值事件包括被資源跟蹤的至少一個條件。
30.根據(jù)權利要求21所述的系統(tǒng),其中所述便攜式計算裝置包括移動電話、個人數(shù)字助理、尋呼機、智能電話、導航裝置以及具有無線連接或鏈路的手持式計算機中的至少一者。
31.一種包括計算機可用媒體的計算機程序產(chǎn)品,所述計算機可用媒體具有體現(xiàn)于其中的計算機可讀程序代碼,所述計算機可讀程序代碼適于被執(zhí)行以實施用于管理便攜式計算裝置的資源的方法,所述方法包括: 接收節(jié)點結構數(shù)據(jù)以用于形成節(jié)點,所述節(jié)點結構數(shù)據(jù)包括作為所述節(jié)點的部分的每一資源的唯一名稱; 針對一個或一個以上相依性來檢視所述節(jié)點結構數(shù)據(jù); 確定與未例示的節(jié)點的相依性相關聯(lián)的每一資源是否存在于節(jié)點框架內; 確定未例示的節(jié)點的每一資源是否可用于支持請求; 如果未例示的節(jié)點的資源不可用于支持任何請求,那么可設定一值以防止包含所述不可用的資源的節(jié)點的例示; 如果與相依性相關聯(lián)的資源不存在,那么將所述節(jié)點結構數(shù)據(jù)存儲在臨時存儲裝置中; 如果用于每一相依性的每一資源存在且可用,那么例示具有其一個或一個以上對應資源的所述節(jié)點;以及如果例示所述節(jié)點,那么使用對應于節(jié)點的處于準備好用于處理通信的狀態(tài)中的一個或一個以上資源的一個或一個以上唯一名稱在所述節(jié)點框架內公布所述節(jié)點。
32.根據(jù)權利要求31所述的計算機程序產(chǎn)品,其中每一資源包括軟件和硬件元件中的至少一者。
33.根據(jù)權利要求31所述的計算機程序產(chǎn)品,其中實施所述方法的所述程序代碼進一步包括: 確定例示的節(jié)點的每一資源是否可用于支持請求; 如果例示的節(jié)點的資源不可用于支持任何請求,那么鎖定所述例示的節(jié)點而與其它資源隔尚。
34.根據(jù)權利要求31所述的計算機程序產(chǎn)品,其中實施所述方法的所述程序代碼進一步包括: 接收數(shù)據(jù)以用于形成充當所述節(jié)點框架中的占位符的存根資源。
35.根據(jù)權利要求34所述的計算機程序產(chǎn)品,其中實施所述方法的所述程序代碼進一步包括: 接收數(shù)據(jù)以用功能性資源來取代存根資源。
36.根據(jù)權利要求31所述的計算機程序產(chǎn)品,其中實施所述方法的所述程序代碼進一步包括: 確定所述節(jié)點框架內所管理的客戶端請求是否可壓制以延遲執(zhí)行。
37.根據(jù)權利要求36所述的計算機程序產(chǎn)品,其中實施所述方法的所述程序代碼進一步包括: 確定是否已實現(xiàn)用于延遲可壓制請求的執(zhí)行的一個或一個以上條件。
38.根據(jù)權利要求31所述的計算機程序產(chǎn)品,其中實施所述方法的所述程序代碼進一步包括: 接收一個或一個以上閾值事件以供資源管理。
39.根據(jù)權利要求38所述的計算機程序產(chǎn)品,其中每一閾值事件包括被資源跟蹤的至少一個條件。
40.根據(jù)權利要求31所述的計算機程序產(chǎn)品,其中所述便攜式計算裝置包括移動電話、個人數(shù)字助理、 尋呼機、智能電話、導航裝置以及具有無線連接或鏈路的手持式計算機中的至少一者。
【文檔編號】G06F9/445GK103782275SQ201280042805
【公開日】2014年5月7日 申請日期:2012年8月15日 優(yōu)先權日:2011年9月2日
【發(fā)明者】諾曼·S·加爾加石, 維諾德·維賈雅拉詹 申請人:高通股份有限公司