鬼佬大哥大
  • / 23
  • 下載費用:30 金幣  

用于系統適配的動態程序評估.pdf

摘要
申請專利號:

CN201480019322.9

申請日:

2014.03.12

公開號:

CN105074662A

公開日:

2015.11.18

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):G06F 9/445申請日:20140312|||公開
IPC分類號: G06F9/445; G06F1/32 主分類號: G06F9/445
申請人: 蘋果公司
發明人: C·R·奧弗貝克
地址: 美國加利福尼亞
優先權: 13/855,608 2013.04.02 US
專利代理機構: 中國國際貿易促進委員會專利商標事務所11038 代理人: 鮑進
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201480019322.9

授權公告號:

||||||

法律狀態公告日:

2018.06.26|||2015.12.16|||2015.11.18

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本發明描述了一種為設備中的任務維護多個可執行程序的方法和裝置。每個可執行程序能夠響應于所述設備的操作環境的變化執行所述任務。可執行每個可執行程序以執行所述任務的測試運行。在所述設備中變化的操作環境下,每次執行可消耗功率量。可基于所述任務的所述測試運行所消耗的功率量來選擇所述可執行程序中的一個可執行程序以在將來執行所述任務。所選擇的一個可執行程序可需要不比所述可執行程序中的剩余可執行程序中的每個可執行程序所需的功率高的功率。

權利要求書

1.一種在其中具有指令的機器可讀非暫態存儲介質,當所述指令由機
器執行時使得所述機器執行一種方法,所述方法包括:
為設備中的任務維護多個可執行程序,每個可執行程序能夠執行所
述任務;
響應于所述設備的操作環境的變化,執行每個可執行程序以執行所
述任務的測試運行,每次執行在變化的操作環境下消耗功率量;
以及
基于所述任務的所述測試運行所消耗的所述功率量,選擇所述可執
行程序中的一個可執行程序以在將來執行所述任務,其中所選擇
的一個可執行程序需要不比所述可執行程序中的剩余可執行程序
中的每個可執行程序所需的功率高的功率。
2.根據權利要求1所述的介質,其中所述可執行程序包括用于所述任
務的至少一個測試輸入,并且其中所述任務的所述測試運行基于所
述一個測試輸入來執行。
3.根據權利要求1所述的介質,其中每個可執行程序編譯自包括用于
執行所述任務的指令的單獨源代碼
4.根據權利要求1所述的介質,還包括:
監視所述操作環境的狀態,其中所述狀態指示是否已發生所述變
化;以及
動態地確定如果已發生所述變化是否執行所述可執行程序以執行所
述任務的所述測試運行。
5.根據權利要求4所述的介質,其中所述操作環境包括硬件配置,并
且其中所述變化由所述硬件配置的更新引起。
6.根據權利要求5所述的介質,其中所述硬件配置包括網絡互連件,
并且其中所述硬件配置通過添加網絡互連件來更新。
7.根據權利要求6所述的介質,其中所述硬件配置通過移除所述網絡
互連件中的一個網絡互連件來更新。
8.根據權利要求5所述的介質,其中所述硬件配置包括電源,并且其
中所述硬件配置通過向所述電源添加外部電源來更新。
9.根據權利要求8所述的介質,其中所述狀態指示所述電源的功率電
平,并且其中所述硬件配置在所述功率電平降至閾值電平以下時進
行更新。
10.根據權利要求4所述的介質,其中所述操作環境與存儲器設備中加
載的一個或多個軟件部件相關聯,并且其中所述變化由將附加軟件
部件加載到所述存儲器設備中引起。
11.根據權利要求10所述的介質,其中所述附加軟件部件與用于所述任
務的所述可執行程序中的一個可執行程序鏈接,以允許經由用于執
行所述任務的所述一個可執行程序來執行所述軟件部件。
12.根據權利要求11所述的介質,其中所述附加軟件部件包括硬件設備
的驅動器,并且其中根據來自應用的API(應用編程接口)調用來
將所述驅動器加載到所述存儲器設備中。
13.根據權利要求11所述的介質,其中所述操作環境在所述設備的通電
期間被初始化,并且其中將所述附加軟件部件加載到所述存儲器設
備中以初始化所述操作環境。
14.根據權利要求4所述的介質,其中所述可執行程序中的特定的一個
可執行程序先前被執行來基于從應用接收的輸入來執行所述任務,
并且其中所述測試運行基于來自所述應用的所述輸入來執行,并且
其中所選擇的一個可執行程序與所述特定的可執行程序分離。
15.根據權利要求14所述的介質,其中所述特定的一個可執行程序響應
于從所述應用接收的請求來執行,其中所述請求參考針對所述任務
的所述輸入。
16.根據權利要求1所述的介質,其中每個可執行程序的所述執行包括:
收集每個可執行程序的所述執行期間所使用的所述功率量,其中用
于所述任務的每個可執行程序的所述執行在一個或多個單獨的時
間間隔期間被執行,其中所述設備中單獨的功率使用量在每個單
獨的時間間隔期間被測量,并且其中每個可執行程序的所述執行
所消耗的功率量對應于所測量的所述單獨的功率使用量的總和。
17.根據權利要求16所述的介質,其中所述單獨的功率使用量經由所述
設備的功率傳感器來測量,其中所述單獨的時間間隔具有開始時間
和結束時間,并且其中所述收集包括:
基本上在所述開始時間啟動所述功率傳感器;以及
基本上在所述結束時間停止所述功率傳感器,其中所述可執行程序
的所述執行在所述單獨的時間間隔期間未被中斷。
18.根據權利要求1所述的介質,還包括:
確定所述設備何時空閑,并且其中用于執行所述任務的所述測試運
行的每個可執行程序的所述執行在所述設備空閑時發生。
19.根據權利要求1所述的介質,其中所述設備包括接口代碼以允許應
用經由對所述接口代碼的API(應用編程接口)調用來執行所述任
務,還包括:
動態地將所述接口代碼與所選擇的可執行程序鏈接以經由所述API
調用來執行所述任務。
20.一種在其中具有指令的機器可讀非暫態存儲介質,當所述指令由機
器執行時使得所述機器執行一種方法,所述方法包括:
檢測所述機器的操作環境的變化,其中所述機器包括用于任務的多
個可執行程序,每個可執行程序能夠執行所述任務;
響應于所檢測到的變化,在所述機器上執行所述可執行程序的測試
運行,以用于測量所述可執行程序在所述操作環境下執行所述任
務的適宜性;
基于在所述機器的所述操作環境下針對所述任務所測量的適宜性,
為所述任務選擇所述可執行程序中的一個可執行程序;以及
響應于執行所述任務的將來請求,執行所選擇的一個可執行程序而
不執行所述剩余可執行程序。
21.一種在其中具有指令的機器可讀非暫態存儲介質,當所述指令由機
器執行時使得所述機器執行一種方法,所述方法包括:
加載用于執行數據處理例程的可執行代碼,所述可執行代碼包括兩
個或更多個執行路徑,每個執行路徑能夠執行所述數據處理例
程,所述可執行代碼與用于所述數據處理例程的樣本輸入相關
聯;
響應于所述加載,執行每個執行路徑以使用所述樣本輸入來執行所
述數據處理例程,每個執行路徑的所述執行消耗單獨的功率量;
以及
響應于所述加載,動態地配置所述可執行代碼以根據每個執行路徑
所消耗的單獨的功率量來為所述數據處理例程啟用所述執行路徑
中的一個執行路徑,在每個執行路徑的所述執行期間,所述一個
執行路徑消耗不比剩余執行路徑消耗的功率量高的功率量,所述
配置針對所述數據處理例程禁用所述可執行代碼中的所述剩余執
行路徑。
22.一種計算機實現的方法,包括:
為設備中的任務維護多個可執行程序,每個可執行程序能夠執行所
述任務;
響應于所述設備的操作環境的變化,執行每個可執行程序以執行所
述任務的測試運行,每次執行在變化的操作環境下消耗功率量;
以及
基于所述任務的所述測試運行所消耗的所述功率量,選擇所述可執
行程序中的一個可執行程序以在將來執行所述任務,其中所選擇
的一個可執行程序需要不比所述可執行程序中的剩余可執行程序
中的每個可執行程序所需的功率高的功率。
23.一種計算機系統,包括:
存儲可執行指令的存儲器;
測量功率使用的傳感器;和
耦接到所述存儲器和所述傳感器以從所述存儲器執行所述指令的處
理器,所述處理器被配置為
為設備中的任務維護多個可執行程序,每個可執行程序能夠執行
所述任務;
響應于所述設備的操作環境的變化,執行每個可執行程序以執行
所述任務的測試運行,每次執行在變化的操作環境下消耗功
率量;以及
基于所述任務的所述測試運行所消耗的所述功率量,選擇所述可
執行程序中的一個可執行程序以在將來執行所述任務,其中
所選擇的一個可執行程序需要不比所述可執行程序中的剩余
可執行程序中的每個可執行程序所需的功率高的功率。

說明書

用于系統適配的動態程序評估

技術領域

本發明整體涉及系統適配。更具體地講,本發明涉及執行動態程序評
估以使系統適應其當前操作環境。

背景技術

可根據不同考慮事項編寫多個版本的源代碼來執行相同功能。例如,
作者可為一般數據處理任務或功能編碼庫例程,諸如圖形渲染例程,從而
基于例如不同的算法或優化參數等生成單獨的源代碼。每種源代碼可編譯
成作為不同具體實施的單獨的可執行程序以執行共同任務。

由于系統可安裝有包括共同任務(或庫例程)的這些多個具體實施的
庫,要求手動配置以指定可執行代碼中的哪種可執行代碼應當用于系統并
不少見。然而,隨著現代數據處理系統的復雜度提升,手動配置已變得過
于繁瑣而變得不實用。

另外,程序員可提供多個版本的源代碼來實施相同任務而不用考慮將
要執行這些代碼的實際操作環境中所有可能的變化。事實上,在設計代碼
時,要考慮實際操作環境中的所有相關變化可能會越來越難或甚至不可行。

因此,用于系統適應實際操作環境的當前方法不實用、不全面并且未
優化。

發明內容

在一個實施例中,動態程序評估可測試運行可執行程序的多個變型來
選擇適用于當前系統運行環境的一個或多個可執行程序。每個可執行程序
能夠執行共同任務。在運行時期間可經由測試運行來評估可執行程序以生
成測量性能相關信息的傳感器數據。可基于所收集的傳感器數據來選擇一
個或多個可執行程序。可通過系統硬件/軟件運行環境中檢測到的變化自動
觸發評估。在一個實施例中,動態可執行程序適配可允許開發人員經由運
行時評估在最大性能或最大效率之間進行選擇。基于硬件功率測量的可執
行程序(例如功能和程序)的動態評估可智能地配置系統以節能或改善其
他適用系統性能指標或屬性。

本發明的實施例包括為設備中的任務維護多個可執行程序的方法和裝
置。每個可執行程序能夠響應于設備的操作環境的變化來執行該任務。可
執行每個可執行程序以執行任務的測試運行。在設備中變化的操作環境
下,每次執行可消耗功率量。可基于任務的測試運行所消耗的功率量來選
擇可執行程序中的一個可執行程序以在將來執行任務。所選擇的一個可執
行程序需要不比所述可執行程序中的剩余可執行程序中的每個可執行程序
所需的功率高的功率。

在可供選擇的實施例中,可檢測到機器的操作環境的變化。該機器可
包括用于任務的多個可執行程序。每個可執行程序能夠執行該任務。響應
于所檢測到的變化,可執行機器上的可執行程序的測試運行來測量可執行
程序在操作環境下執行任務的適宜性。可基于所測量的適宜性來選擇可執
行程序中的一個可執行程序。響應于執行任務的將來請求,可執行所選擇
的一個可執行程序而不執行剩余可執行程序。

在可供選擇的實施例中,可加載用于執行數據處理例程的可執行代
碼。可執行代碼可包括兩個或更多個執行路徑。每個執行路徑能夠執行數
據處理例程。可執行代碼可與用于數據處理例程的樣本輸入相關聯。響應
于加載,可執行每個執行路徑以用樣本輸入執行數據處理例程。可執行每
個執行路徑以消耗機器中的單獨的處理資源(例如功率)量。可動態地配
置可執行代碼,例如響應于加載,以基于所消耗的處理資源量為數據處理
例程啟用執行路徑中的一個執行路徑。所配置的一個執行路徑可消耗不比
剩余執行路徑消耗的處理資源量高的處理資源量。該配置可為數據處理例
程禁用可執行代碼中的剩余執行路徑。

通過附圖以及通過以下具體描述,本發明的其他特征將顯而易見。

附圖說明

本發明以舉例的方式進行說明,并且不僅限于各個附圖的圖形,在附
圖中類似的附圖標號表示類似的元件,并且其中:

圖1是示出用于動態適配的系統部件的一個實施例的框圖;

圖2是示出在例程上執行評估運行以配置硬件的過程的實施例的流程
圖;

圖3是示出基于傳感器數據來選擇用于將來執行的程序的過程的實施
例的流程圖;

圖4是示出基于功耗來選擇可執行程序以執行任務的過程的實施例的
流程圖;

圖5是示出檢測操作環境的變化以選擇適合于操作環境的可執行程序
的過程的實施例的流程圖;

圖6是示出在可執行程序中執行執行路徑以響應于可執行代碼的加載
來選擇執行路徑中的一個執行路徑的過程的實施例的流程圖;

圖7示出了可與本文所述的實施例一起使用的典型計算機系統的一個
實例。

具體實施方式

描述了用于動態程序評估的方法和裝置。以下說明中示出了許多具體
細節,以提供對本發明實施例的全面解釋。然而,對于本領域的技術人員
顯而易見的是,本發明的實施例可在不具有這些具體細節的情況下實施。
在其他情況下,未詳細示出已熟知的部件、結構和技術,以免影響對此說
明的理解。

本說明書中提到的“一個實施例”或“實施例”是指,結合實施例所
描述的特定特征、結構或特性可包括在本發明的至少一個實施例中。在本
說明書中的不同位置出現短語“在一個實施例中”不一定都是指同一個實
施例。

下圖中示出的過程通過處理邏輯執行,所述處理邏輯包括硬件(例
如,電路、專用邏輯等)、軟件(諸如在通用計算機系統或專用機上運行
的軟件)、或兩者的組合。雖然下文按照某些順序操作來描述過程,但應
當理解,所描述的某些操作可以不同的順序來執行。此外,某些操作也可
以并行地執行而并非按順序執行。

在一個實施例中,動態程序評估可基于當前運行環境允許系統配置哪
些可用的可執行程序在不久的將來執行任務,從而改善特定系統度量。例
如,系統可包括可執行程序的多個版本或變型,每一個可執行程序能夠執
行相同任務。可能已指定待激活的當前可執行程序來執行任務,例如經由
來自應用的應用編程接口調用來執行。

在一個實施例中,可觸發動態程序評估來評估每個可執行程序或一組
選擇的可用的可執行程序來確定應當指定哪一個或哪些可執行程序在經調
用或請求時執行任務。因此,可能不會為系統執行(例如不激活或加載)
未選擇或指定的剩余可執行程序來執行相應任務。

在一些實施例中,動態程序評估可引起在用于執行任務的一組可執行
程序上的評估測試運行。對于測試情況,可執行可執行程序或選擇的可執
行程序中的每一個可執行程序,并且可收集和比較相應系統度量,例如經
由硬件傳感器來進行。系統度量可包括功耗、處理速度、內存使用率、經
過時間和/或其他適用度量。

系統可聚集多個可執行程序,每個可執行程序能夠執行相同任務。在
運行時期間,可激活可執行程序中的一個可執行程序來執行任務,例如經
由來自應用的公用API(應用編程接口)。可連同多個可執行程序提供任
務的測試案例。每個可執行程序可編譯自不同的源代碼以使用單獨方法或
方法的變型(例如不同算法、不同具體實施等)來完成相同任務。因此,
多個可執行程序可為系統提供機會來選擇不同的選項以在不同的時間實例
處完成任務。

在某些實施例中,動態程序評估可在可用的可執行程序上執行評估運
行來決定哪一個在將來于特定機器上執行任務時最具高功效。可執行程序
中的每個可執行程序可代表用于執行相同任務的不同選項或備選例程。運
行時評估可有效地了解可能影響評估結果的所有因素(例如硬件或軟
件)。在為可執行程序設計或編寫相應代碼(或源代碼)時,這些因素可
能不可用或者可能不會考慮它們。示例性因素可包括平臺(例如不同處理
器、電路板、總線、操作系統等)、系統配置、環境設置(例如網絡環
境、溫度等)或其他適用的運行時處理因素。

在一些實施例中,可為數據處理任務選擇可用的可執行程序的子組來
進行評估,而不是在所有可用的可執行程序上執行測試運行。可動態地確
定和/或微調可執行程序的子組。例如,可保留評估結果的記錄或歷史。可
根據之前的(例如最新的)測試結果將每個可用的可執行程序排名(基于
某個標準,諸如功率使用)。根據評級順序,待評估的可用的可執行程序
的子組可標識為可用的可執行程序的一部分(例如前3、前25%等)。因
此,可根據例如當前運行環境持續調節(或調諧)所需的測試運行數目,
無需每次都測試運行每個可用的可執行程序。

在一些實施例中,當觸發時,可監測對用戶體驗的影響來計劃動態程
序評估。例如,在系統空閑的時間段期間,可以用戶不可見方式在后臺執
行動態執行評估。可停止和恢復動態適配(例如當檢測到系統空閑時)直
到完成每次計劃的測試運行。因此,當滿足了某些運行時間條件(諸如系
統空閑而沒有處理用戶相關任務或其他適用高優先級任務)時,可以多個
(例如非連續)時間間隔段(例如每隔5ms)來單獨執行測試運行選擇的
可執行程序所需的短時間段(例如20ms)。

在一個實施例中,系統可基于最近執行了哪些任務(例如在對應的
API的上次調用或來自應用的其他調用中)動態地生成或選擇測試案例。
已在系統中配置或安裝的可執行程序可與一個或多個測試案例相關聯,這
些測試案例可應用于執行可執行程序以進行評估。

在一些實施例中,可提供預編譯的測試案例作為要在評估時間應用的
用于選擇可執行程序的特定固定輸入,從而例如提供庫服務來執行數據處
理任務。對于每個可執行程序可執行相同或相似的測試以執行相同任務來
經由硬件傳感器收集性能數據(例如花費的時間、消耗的處理循環、使用
的功率等)。能夠進行動態程序評估的固件可自動拾取最佳可用的可執行
程序(例如基于某個算法)來響應于所檢測到的環境變化或基于用戶配置
的計劃來執行任務。

可預先確定和/或動態決定用于針對處理任務而測試運行可執行程序的
測試案例。在一個實施例中,動態程序評估可針對任務來選擇之前執行的
一個或多個實際案例(或輸入)以測試運行可執行程序的不同變型。在一
個實施例中,動態程序評估可將最終的實際輸入案例(例如圖形幀)用于
處理任務(例如幀解碼任務)而非使用與可執行程序相關聯的預先確定的
測試案例(例如測試圖形幀)。確定將那些測試案例用于測試運行可執行
程序可取決于用戶配置、運行時硬件/軟件環境、預先確定的測試案例的可
用性或其他適用的運行時因素。

在一個實施例中,可執行程序彼此之間可具有依賴關系。例如,如果
第一可執行程序包括第二可執行程序(例如調用第二可執行程序),則第
一可執行程序可取決于第二可執行程序。動態程序評估可用自下而上的方
式經由依賴關系來測試運行可執行程序,從而選擇相關可執行程序的組合
或配置。選擇可基于總體成本或經由依賴關系從較低級別向上從多個可執
行程序聚集的度量。

在一個實施例中,動態可執行程序適配可經由例如用戶界面基于可選
配置選擇可執行程序。這些配置可基于某些條件指定要評估哪些庫、何時
執行動態評估和/或使用那個可執行程序,而無需為評估而執行測試。用戶
配置可包括待監視的事件列表、要為動態可執行程序適配考慮或排除哪個
可執行程序。

例如,用戶可在系統附接了特定顯卡時為圖形處理任務指定一個可執
行程序。這些配置可允許用戶拾取要包括在評估運行中和/或采用的某些可
執行程序而無需運行評估測試。在動態適配期間,用戶輸入可對哪些可執
行程序可供選擇或不可選擇進行約束。

在一個實施例中,可基于系統中是否集成了顯卡或者是否在系統外部
耦接了顯卡(或其他適用硬件設備)來選擇用于執行OpenGL(開放式圖形
庫)任務的可執行程序。由于執行OpenGL相關任務(或其他適用任務)
的復雜性,運行相同例程(或可執行程序)的功耗可基于輸入參數和/或硬
件平臺而有所不同。

在系統初始化期間,動態程序評估可確定系統是否包括內置顯卡(或
其他適用的硬件部件)或外置顯卡。在系統初始化期間,動態程序評估可
使用默認測試案例(例如與可執行程序相關聯)來測試運行可執行程序以
用于選擇可執行程序,從而例如配置OpenGL庫或安裝在系統中的其他適
用系統軟件。動態程序評估可使用實際自定義數據來測試運行可執行程序
以進一步微調選擇。

在一個實施例中,可動態地鏈接多個部件或集成在一起以進行API調
用從而執行任務,諸如幀解碼或內存分配(例如malloc())。執行任務的相
關部件可存儲在寄存器、表格或其他適用的數據結構中。可單獨評估(或
執行)每個部件(可執行程序)。選擇可基于評估結果中的每個評估結果
的組合。例如,組合可對應于使用測試案例在測試運行期間為執行任務所
消耗的總能源或花費的總時間。

在一些實施例中,用于動態程序評估的可執行程序評估可取決于設備
中可用的處理資源。評估可包括權衡,諸如通過所需的可執行程序在將來
執行中節省的資源量對執行評估所需的資源量。在一個實施例中,確定是
否和/或何時執行動態和漸進動態適配可取決于待評估的可執行程序(或例
程)的數目、測試運行每個可執行程序所需的資源量、預期執行可執行程
序的相關任務的頻率或次數,和/或其他適用度量。

在一個實施例中,動態程序評估可在系統變化(例如經由配置、引
導、驅動器加載、網絡連接或其他適用環境變化等)期間發生,使得響應
于可執行程序評估期間的用戶命令存在輕微延遲。隨后,根據針對適配采
用的標準,已適配的系統可用改善的模式(例如更優的功率使用、更有效
的執行、更佳的內存利用率等)執行數據處理任務。

可基于計算環境的變化引發的事件動態地觸發可執行程序評估或選
擇。例如,計算環境可包括硬件環境,該環境可在以下情況下發生變化:
外部USB設備連接/斷開連接系統的USB(通用串行總線)端口時;以太
網纜線插入/拔出系統的以太網連接器時;外部電源插入/拔下時或電源切換
至另一電源(內部或外部)時等等。作為另外一種選擇或除此之外,加載/
卸載軟件驅動器(例如在存儲器和非易失性存儲設備之間)可能表示在計
算環境中發生了變化。

在一個實施例中,可經由用戶界面配置或計劃哪些事件可觸發動態可
執行程序選擇或重新鏈接。在某些實施例中,可監視系統的處理負載以確
定何時執行動態可執行程序選擇或重新鏈接,使得對于系統的性能影響可
最小化。例如,當系統被檢測為空閑(或者處于空閑狀態,在該狀態下處
理負載低于預先確定或動態地確定的某個閾值)時,可開始或恢復評估過
程。當例如請求或開始更高優先級的任務時,可(暫時)停止評估過程。

作為另外一種選擇或任選地,可執行程序選擇或重新鏈接可在系統初
始化期間和/或當驅動器或其他軟件模塊被加載時(例如從盤或其他存儲裝
置加載到存儲器以用于執行)觸發。在一些實施例中,動態程序評估中的
可執行程序重新鏈接可將指針更新為選擇的可執行程序以實現數據處理任
務。當在將來調用針對任務的相應API時,可跟蹤更新的指針來激活或執
行所選擇的可執行程序來執行任務。

在一個實施例中,動態程序評估可包括經由設備中的微控制器收集傳
感器數據。微控制器可包括功率傳感器(或其他適用硬件傳感器),可經
由軟件來控制該功率傳感器。硬件傳感器可為足夠復雜的處理任務(例如
執行時間為毫秒而非納秒的任務)提供可測量的數據。所感測的可測量數
據可包括電流、電壓、經過時間、存在或缺少一個或多個外圍設備等,或
其他適用的感測數據。系統內核(核心系統軟件)能夠與微控制器通信以
與任務計劃調度(何時開始、停止、恢復等)配合,從而同時監視多個任
務和/或硬件傳感器。從微控制器轉儲的傳感器數據可經由內核準確地歸因
于對應任務和/或傳感器。例如,可同時為并行執行的不同任務(例如基于
電池功率使用或其他感測數據)測量處理器(例如CPU、GPU等)以及外
圍設備(例如USB設備、網卡或其他設備)。

在一個實施例中,可從用戶程序或直接從用戶界面發送指令來開始/停
止功率感測。可測量每個例程的功耗來選擇最具能量效率的一個歷程用于
將來執行任務。這些例程中的每個例程可適用于某些類型的設備(或機
器),例如基于硬件平臺(例如處理器類型)或軟件平臺(例如操作系
統)。設備可自動識別哪些例程兼容并選擇當前運行環境下最有效率的一
個例程。

在一些實施例中,傳感器系統控制器可提供接口以在不同時間從設備
的不同部分收集傳感器數據(例如CPU功率使用、電池功率使用等)來實
現系統級或應用級控制。接口可允許收集傳感器數據以開始、停止、重
置、斷開或放回(例如用于累積數據)。因此,數據處理任務可在不同時
間間隔處分割為多段,而無需占用持續時間間隔用于傳感器數據收集。

動態程序評估可利用傳感器系統控制器以允許操作系統(或其他系統
部件)確定在當前運行環境下哪些算法或相應可執行程序最適合為任務執
行。決策可基于某些系統測量標準,諸如最小化功率使用、最大化處理性
能或最大化處理效率等。

圖1是示出用于動態適配的系統部件的一個實施例的框圖。系統100
可包括操作環境101,諸如移動電話設備中的iPhone操作系統或臺式計算
機的MacintoshOSX操作系統。在一個實施例中,可用包括可執行程序
(或例程、程序)的庫109配置操作環境101,以執行系統或應用級任務。
庫109可被例如動態地配置或從耦接到系統101的存儲設備(硬盤、閃存
或其他非易失性存儲設備)加載到操作環境101中。一個或多個用戶級和/
或系統級應用115可與庫109鏈接以調用庫109內的庫例程以執行所需的
任務,例如經由API調用。

在一個實施例中,庫109可包括具有可執行程序變型的可執行程序儲
存庫111,每個可執行程序已經過編譯以執行共同任務。例如,不同的可執
行程序(或程序例程)可由同一作者使用不同的首選項、性能優先級(速
度、內存使用率、功率使用)、開發工具約束、硬件配置、系統平臺和/或
其他適用條件來編寫。可執行每個可執行程序以在系統100的不同運行時狀
態執行具有不同的性能和/或資源利用率影響的相同任務。庫109可存儲指
向實際可執行程序的指針,該可執行程序可從耦接的存儲設備動態載入。

運行時狀態可包括時間點上系統100的硬件和/或軟件環境。可基于網
絡連接、電源、外圍設備或其他物理部件/配置確定硬件環境。軟件環境可
取決于正在執行的任務、當前活動的可執行程序(程序)、支持的驅動
器、系統配置、和/或其他適用程序運行時狀態。

在一個實施例中,適配模塊107可動態地配置庫109以規定或指定應
當執行哪些可執行程序儲存庫111,例如當通過應用115請求時。適配模塊
107可包括鏈接模塊119,該模塊能夠執行動態鏈接/重新鏈接(不用重新編
譯),以將指針或程序地址切換至指定的可執行程序以執行任務。應用115
可能不了解在進行請求時在庫109中實際調用了哪個可執行程序(例如通
過API調用隔離)。儲存庫111中的可用的可執行程序的一部分(或一
個)可經由來自應用115的API調用來加載(或鏈接)。

適配模塊107可包括動態評估模塊113以在庫109中的可執行程序上執
行評估測試運行。在某些實施例中,儲存庫111中的可執行程序可與測試案
例相關聯以進行評估測試運行。測試案例可以與可執行程序封裝在一起。例
如,用于編譯自源代碼以執行任務(例如幀解碼或其他適用功能、例程等)
的可執行程序的原始源代碼(或其他適用測試案例生成機制)的作者可為可
執行程序提供對應的測試案例(例如作為樣本輸入)以執行任務。

作為另外一種選擇或任選地,可動態地確定測試案例。例如,可記錄
或記載用于執行任務的實際案例(或輸入)的歷史。在一個實施例中,上
個所請求以執行任務的實際案例可用于在可執行程序的多個變型上執行評
估測試以執行任務。可評估多個可執行程序以基于單個測試案例基本上同
時執行一個任務(例如在相似的運行環境期間)。

在一個實施例中,動態評估模塊113可在可執行程序儲存庫111中選擇
所有或部分可用的可執行程序以用于評估測試運行。例如,如果處理資源
(例如處理器或內存使用率)負載低于某個閾值,則動態評估模塊113可通
過所有可用的可執行程序迭代以進行測試運行。在某些實施例中,動態評估
模塊113可保留來自之前測試運行的結果的歷史或記錄。當處理資源負載高
于某個級別時,動態評估模塊113可根據某個選擇標準來測試運行排名比之
前測試運行(例如最新測試運行或統計組合,諸如多次測試運行的平均值、
中值等)中可執行程序的其他部分更高的可執行程序的一部分。

可執行程序的測試運行可以一個時間間隔執行,或者擴展至為一個或
多個處理器中的測試運行分配的單獨不重疊的時間間隔。在測試運行期
間,可經由設備傳感器接口模塊105收集傳感器數據。例如,適配模塊107
可通知設備傳感器接口模塊105何時開始、停止、恢復、重置或收集特定
測試運行的傳感器數據。傳感器數據可基于設備外殼系統100中來自硬件
傳感器的測量。

例如,設備外殼系統100可包括應用處理器和系統管理控制器
(SMC)。SMC可包括監視溫度、電壓、電流、風扇、電源、總線錯誤、系
統物理安全和可用于檢測或預測系統功能或性能的其他任何指標或數據中
的一個或多個的一個或多個傳感器。例如,在運行應用時,應用處理器可
能變得過熱。傳感器可位于設備外殼系統100中的任何位置。

測試運行的結果可經由對應的系統測量或指標來表示,這些系統測量
或指標包括從硬件傳感器收集的傳感器數據(諸如經過時間、功率使用、處
理器溫度、電壓、電流或其他適用的測量的數據)。在一些實施例中,可執
行程序可包括(或調用)一個或多個單獨的可執行程序以形成引導的父-子
或祖-孫關系。可執行程序可對應于多個子可執行程序的執行路徑(例如經
由父-子關系)。適配模塊107可通過聚集來自其對應子可執行程序的測試
結果(例如采用自下而上的方式)來確定一個可執行程序的測試結果。

適配模塊107可使用選擇標準來基于代表測試運行或實際運行的結果
的指標來選擇可執行程序。選擇標準可基于最大性能、最小功率使用、最
小內存使用率或其他適用的測量或約束。適配模塊107可選擇可執行程序
來基于測試運行的結果為將來請求執行任務。任選地,適配模塊107可選
擇可執行程序的一部分來基于實際運行(例如使用來自應用115的自定義
案例)或測試運行(例如使用與可執行程序關聯的測試案例)來執行測試
運行。

適配模塊107可動態地確定是否觸發動態評估模塊113以在可執行程
序上執行測試運行以配置或重新配置系統100,包括庫109。例如,系統狀
態監視模塊117可監視或觀察系統100的操作環境中的運行時狀態。系統
狀態監視模塊117可將運行時狀態中檢測到的變化通知適配模塊107,諸如
USB設備連接、斷開連接時,外部電源變化、中斷或連接時,外圍設備
(例如顯卡、網卡)附接時,外圍設備的驅動器加載/卸載時,系統啟動
時,和/或其他適用的運行時狀態變化時。

在一些實施例中,用戶界面模塊103可允許用戶自定義或控制適配模
塊107以配置系統100。例如,用戶界面模塊103可指定應當選擇、考慮
(即作為測試運行候選者納入)或排除哪些可執行程序以通過動態評估模
塊113進行評估測試運行。另外地或任選地,適配模塊107可經由用戶界
面模塊103約束將針對執行測試運行納入/排除哪些運行時事件(例如系統
初始化、引導、操作環境變化)和/或哪些傳感器數據以配置系統100。在
一個實施例中,用戶可直接命令適配模塊107為某些任務(例如功能、程
序、API、系統服務等)開始/停止特定測試運行。

圖2是示出在例程上執行評估運行以配置硬件的過程的實施例的流程
圖。示例性過程200可通過處理邏輯諸如圖1的系統100來執行。在框
201,過程200的處理邏輯可在多個例程(諸如圖1的儲存庫111中的可執
行程序)、處理器硬件(諸如圖1的處理設備外殼系統100)上執行評估測
試。每個例程可能已為執行共同任務進行了編譯和/或鏈接。在一個實施例
中,當使用共同輸入執行時,每個例程可生成共同結果。

在框203,在每個例程的評估測試期間,過程200的處理邏輯可從處
理硬件收集傳感器數據。可以單獨的時間間隔順序地或并行執行多個評估
測試。在框205,過程200的處理邏輯可使用選擇標準基于所收集的傳感器
數據來識別一個或多個例程。例如,可比較所收集的傳感器數據以選擇最
大化處理性能、最小化功率使用和/或滿足其他約束或適用條件的例程。

在框207,過程200的處理邏輯可用所識別的例程來配置處理硬件以
在框207執行共同任務。基于選擇標準,所識別的例程可最適合在處理硬
件的當前操作環境下執行共同任務。在一些實施例中,可在軟件操作環境
中(諸如圖1的系統100中)將所識別的例程激活或者與應用接口層鏈
接,以支持用于執行任務的API。

圖3是示出基于傳感器數據選擇用于將來執行的過程的實施例的流程
圖。示例性過程300可通過處理邏輯諸如圖1的系統100來執行。在框
301,根據一個實施例,過程300的處理邏輯可配置硬件傳感器以記錄處理
資源使用率。硬件傳感器能夠測量或檢測處理硬件的物理屬性,諸如功率、
電壓、電流、溫度、系統狀態、經過時間或其他適用的硬件測量的數據。

在框303,過程300的處理邏輯可動態(或實時)執行數據處理操作
以測試運行程序或例程直至決定點。例如,決定點可為執行任務或功能的
調用。多個可執行程序可為可用的(諸如圖1的儲存庫111),以執行相同
任務。過程300的處理邏輯可實際測試運行每個可用的可執行程序以確定
或決定哪個可執行程序在當前操作環境下最適合。

在框305,過程300的處理可向記錄硬件傳感器控制設備(諸如SMC
控制器設備)發出啟動命令以記錄傳感器數據。在框307,過程300的處理
邏輯可開始執行可用程序或例程的一個版本來進行測試運行。每次測試運
行可基于共同輸入(或測試案例)。在框309,過程300的處理邏輯可向記
錄硬件設備發出停止命令以停止記錄傳感器數據。

在框311,過程300的處理邏輯可對應于可用的可執行程序的一個版
本的測試運行,收集從記錄硬件設備記錄的傳感器數據(例如功率、時間
或其他適用傳感器信息)。如果程序或例程的所有變型已在框313進行評
估,則過程300的處理邏輯可選擇評估的程序(或可執行程序的變型)中
的一個或多個程序用于將來執行,從而基于所收集的傳感器數據在框315
執行相同任務。否則,過程300的處理邏輯可在框303繼續以評估另一個
可用的可執行程序。該選擇可基于選擇標準,該選擇標準可為預先配置或
動態配置的。

圖4是示出基于功耗來選擇可執行程序以執行任務的過程的實施例的
流程圖。示例性過程400可通過處理邏輯諸如圖1的系統100來執行。在
框401,根據一個實施例,過程400的處理邏輯可為設備中的共同任務維護
多個可執行程序(諸如在圖1的儲存庫111中)。可編譯每個可執行程序
以執行該共同任務。

例如,每個可執行程序可編譯自包括執行該共同任務的指令的單獨源
代碼。作為另外一種選擇或任選地,不同的可執行程序可由編譯器使用指
令級優化參數的變型自動生成。在一個實施例中,維護的可執行程序可包
括至少一個測試輸入來執行共同任務。過程400的處理邏輯可在可執行程
序上使用測試輸入執行測試運行以執行該共同任務。

在框403,過程400的處理邏輯可執行每個可執行程序(例如可用的
可執行程序的全部或一部分)來響應于設備(諸如圖1的數據處理硬件外
殼系統100)的操作環境中所檢測到的變化來執行任務的測試運行。在變化
的操作環境下,測試運行可執行程序的每次執行可消耗功率量。

在一個實施例中,可監視操作環境的狀態以檢測在可執行程序上觸發
測試運行的變化。狀態可指示是否已發生了變化。過程400的處理邏輯可動
態地確定如果已發生了變化是否執行可執行程序以執行任務的測試運行。

在一些實施例中,操作環境可包括硬件配置,這些硬件配置指定電
源、耦接的外圍設備、網絡連接、處理器類型、版本、多個處理器連接和/
或其他適用的硬件相關的設備信息。變化可能由硬件配置的更新引起,諸
如更換、添加、移除顯卡設備,連接/斷開連接網卡,外部電源變得可用/不
可用或其他適用的硬件變化。任選地,變化可由現有電源功率電平下降/增
大至低于/高于某個閾值電平引起。

在一個實施例中,操作環境可與支持的數據處理設備(例如圖1的系
統100)的存儲器設備中加載的一個或多個軟件部件相關聯。操作環境的變
化可由正加載到存儲器設備或系統中的附加軟件部件引起。例如,附加軟
件部件可包括硬件外圍設備部件的驅動器(例如網卡、顯卡等)。可根據
來自應用的API(應用編程接口)調用來將驅動器加載到存儲器設備中,
從而例如實現對對應硬件部件的訪問。

在一個實施例中,為軟件操作環境加載的附加軟件部件可與可執行程
序中的一個可執行程序鏈接以執行共同任務。當執行共同任務時,附加的軟
件部件可經由鏈接的可執行程序執行(或調用)。因此,軟件操作環境的變
化可由附加軟件部件的可用性引起以允許該共同任務以不同方式執行。

在一個實施例中,操作環境(諸如圖1的系統100)可在對應硬件設
備的通電期間進行初始化。軟件部件可加載到存儲器設備中以初始化操作
環境。當初始化操作環境時,過程400的處理邏輯可在可執行程序上自動
執行評估測試運行。

在一個實施例中,過程400的處理邏輯可保留執行歷史(或記錄),
其指定應用哪些輸入來經由哪個可執行程序執行任務。這些輸入可通過客
戶應用用于執行任務的請求來提供或接收。過程400的處理邏輯可基于例
如最新輸入(并非準備可執行程序的測試輸入)執行評估測試運行來針對
任務選擇另一個可執行程序。使用實際輸入案例的測試運行的結果可更緊
密地反映當前所需的使用準備的測試案例的操作環境。

過程400的處理邏輯可在執行每個可執行程序以評估或測試運行可執
行程序期間收集傳感器數據。在測試運行期間,所收集的傳感器數據可指
示用于可執行程序的功率量。在一個實施例中,用于測試運行可執行程序
的執行可在單獨的時間間隔期間(例如處理器時間間隔)進行。因此,可
并行評估多個可執行程序。在執行單獨的可執行程序的單獨的時間間隔期
間,過程400的處理邏輯可跟蹤單獨的功率使用量。執行每個可執行程序
所消耗的功率量可對應于為可執行程序跟蹤的單獨功率使用量的聚集(例
如總和)。

在一個實施例中,硬件傳感器諸如電源傳感器可測量設備中單獨的時
間間隔的單獨的資源使用量諸如功率使用。控制器可跟蹤在設備中為執行
不同可執行程序而分配的時間間隔的結束時間(例如開始時間、停止時
間)。過程400的處理邏輯可在基本上開始/結束可執行程序的測試運行時
發出命令來開始/停止硬件傳感器。控制器可自動記錄或跟蹤從硬件傳感器
收集的傳感器數據的時間間隔的結束時間,其中在時間間隔期間可執行程
序的執行未被中斷。

在一些實施例中,過程400的處理邏輯可暫時停止或暫停測試運行來
評估可執行程序,例如當設備忙于執行更高優先級的數據處理任務(諸如
用戶應用)時。過程400的處理邏輯可識別(或確定)設備何時空閑以恢
復之前暫停的測試運行。

在框405,在評估測試運行期間,過程400的處理邏輯可選擇可執行
程序中的一個可執行程序來基于針對可執行程序所收集的傳感器數據在將
來執行任務。例如,傳感器數據可指示每次測試運行經由可執行程序執行
相同任務所消耗的功率量。選擇標準諸如最小功耗可用于選擇一個可執行
程序,在測試運行期間該可執行程序消耗或需要不比所述可執行程序中的
剩余可執行程序中的每個可執行程序消耗或所需的功率高的功率。

在一個實施例中,設備包括接口代碼以允許應用經由對接口代碼的
API調用來發送用于執行任務的請求。過程400的處理邏輯可通過API將
接口代碼動態地鏈接或重新鏈接至所選擇的可執行程序以執行任務。經由
API接收的將來請求可引起執行所選可執行程序,從而執行任務。

圖5是示出檢測操作環境的變化以選擇適合于操作環境的可執行程序
的過程的實施例的流程圖。示例性過程500可通過處理邏輯諸如圖1的系
統100來執行。在框501,根據一個實施例,過程500的處理邏輯可檢測具
有用于執行任務的可執行程序的多個變型的機器的操作環境的變化。每個
可執行程序能夠單獨執行任務。

在框503,過程500的處理邏輯可響應于檢測到操作環境的變化來執
行可執行程序的測試運行。測試運行可在機器上執行以測量或比較可執行
程序在剛剛變化的當前操作環境下執行任務的適宜性。

在框505,過程500的處理邏輯可選擇可執行程序中的一個可執行程
序以基于所測量的可執行程序的適宜性在將來執行任務。在框507,過程
500的處理邏輯可響應于執行任務的將來請求來執行所選擇的可執行程序而
不執行可用的可執行程序中的剩余可執行程序。

圖6是示出在可執行程序中執行執行路徑以響應于可執行代碼的加載
來選擇執行路徑中的一個執行路徑的過程的實施例的流程圖。示例性過程
600可通過處理邏輯諸如圖1的系統100來執行。在框601,根據一個實施
例,過程600的處理邏輯可加載用于執行數據處理例程的可執行代碼。可
執行代碼可包括多個執行路徑。每個執行路徑能夠執行或完成相同的數據
處理例程。可執行代碼可與用于數據處理例程的樣本輸入或測試案例相關
聯。例如,可執行代碼可與樣本輸入封裝在一起。

在框603,過程600的處理邏輯可通過每個執行路徑迭代以使用樣本
輸入執行數據處理例程的測試運行。在一個實施例中,過程600的處理邏
輯可在加載了可執行代碼時執行測試運行(例如從存儲設備到作為操作系
統的庫的存儲器)。測試運行可指示為測試運行執行每個執行路徑期間所
消耗的單獨的處理資源量。

在框605,根據例如每個執行路徑的測試運行期間所消耗的單獨的處
理資源量,過程600的處理邏輯可動態地配置可執行代碼來啟用執行路徑
中的一個執行路徑以在將來執行數據處理例程。在一個實施例中,所配置
或選擇的執行路徑在可執行代碼中對于數據處理例程在可能的執行路徑中
可消耗最少的處理資源量。該配置可為數據處理例程禁用可執行代碼中的
剩余執行路徑。

圖7示出了數據處理系統的一個實例,該數據處理系統可與本發明的
一個實施例一起使用。例如,可實現包括主機的系統700,如圖1所示。需
注意,雖然圖7示出了計算機系統的各種部件,它并不旨在表示使這些部
件互連的任何特定構造或方式,因此這些細節與本發明并無密切關系。還
應理解,具有較少部件或可能較多部件的網絡計算機以及其他數據處理系
統也可用于本發明。

如圖7所示,數據處理系統形式的計算機系統700包括耦接到一個或
多個處理器705、和ROM(只讀存儲器)707、和易失性RAM709以及非
易失性存儲器711的總線703。處理器705可包括一個或多個應用處理器、
微處理器、圖形處理器(GPU)或其他適用的處理器。處理器705可從存儲器
707,709,711檢索指令并執行所述指令以執行上述操作。總線703與這些各
種部件互連在一起,并且將這些部件705,707,709和711互連至顯示控制
器和顯示設備713,以及互連至外圍設備諸如輸入/輸出(I/O)設備,該輸入/
輸出(I/O)設備可以是鼠標、鍵盤、調制解調器、網絡接口、打印機和本領
域熟知的其他設備。通常,輸入/輸出設備715通過輸入/輸出控制器717耦
接到系統。易失性RAM(隨機存取存儲器)709通常被實現為動態RAM
(DRAM),其需要連續供電以刷新或保持存儲器中的數據。

海量存儲裝置711通常為磁性硬盤驅動器或磁性光驅或光驅或DVD
RAM或閃存存儲器或者即使在系統斷電后也保持數據(例如,大量數據)
的其他類型的存儲器系統。通常,海量存儲裝置711也可以是隨機存取存儲
器,雖然這并非必需。雖然圖7顯示海量存儲裝置711是直接耦接到數據處
理系統中的剩余部件的本地設備,但應當理解,本發明可利用遠離系統的非
易失性存儲器諸如網絡存儲設備,其通過網絡接口諸如調制解調器、以太網
接口或無線網絡等耦接到數據處理系統。總線703可包括一條或多條總線,
其通過本領域熟知的各種橋接器、控制器和/或適配器相互連接。

上述內容的部分可使用邏輯電路諸如專用邏輯電路來實現,或使用微
控制器或執行程序代碼指令的處理核心的其他形式來實現。從而,可利用
程序代碼諸如機器可執行指令來執行上述討論所教導的過程,該機器可執
行指令使機器執行這些指令以執行某些函數。在該上下文中,“機器”可
為將中間形式(或“抽象”)指令轉換為特定于處理器的指令(例如,抽
象執行環境諸如“虛擬機”(例如,Java虛擬機)、解譯器、公共語言運
行時、高級語言虛擬機等)的機器,和/或設置在半導體芯片(例如,利用
晶體管實現的“邏輯電路”)上的電子電路,該電子電路設計用于執行指
令諸如通用處理器和/或專用處理器。上述討論所教導的過程也可通過(作
為機器的替代或與機器結合)電子電路來執行,該電子電路被設計用于執
行過程(或其一部分)而不執行程序代碼。

本發明還涉及一種用于執行本文所述的操作的裝置。該裝置可專門構
造用于所需的目的,或者可包括由存儲在計算機中的計算機程序選擇性地激
活或重新配置的通用計算機。此類計算機程序可存儲在計算機可讀存儲介質
中,諸如但不限于任何類型的盤,包括軟盤、光盤、CD-ROM和磁光盤,
只讀存儲器(ROM)、RAM、EPROM、EEPROM、磁卡或光卡、或適合用于
存儲電子指令的任何類型的介質,并且每個均耦接到計算機系統總線。

機器可讀介質包括以機器(例如,計算機)可讀形式存儲或傳輸信息的
任何機構。例如,機器可讀介質包括只讀存儲器(“ROM”);隨機存取存儲
器(“RAM”);磁盤存儲介質;光學存儲介質;閃存存儲器設備;電氣、光
學、聲音或其他形式的傳播信號(例如載波、紅外信號、數字信號等)等。

制造的制品可用于存儲程序代碼。存儲程序代碼的制造的制品可體現
為但不限于一個或多個存儲器(例如,一個或多個閃存存儲器、隨機存取
存儲器(靜態、動態或其他))、光盤、CD-ROM、DVDROM、
EPROM、EEPROM、磁卡或光卡、或適用于存儲電子指令的其他類型的機
器可讀介質。也可借助于包含在傳播介質(例如,經由通信鏈路(例如網
絡連接))中的數據信號將程序代碼從遠程計算機(例如,服務器)下載
到請求計算機(例如,客戶端)。

已按照對計算機存儲器內的數據位進行操作的算法和符號表示來呈現
前面的詳細描述。這些算法描述和表示是數據處理領域的技術人員所使用
的工具,而這些工具也能最有效地將其工作實質傳達給該領域其他技術人
員。算法在這里并一般是指導致所希望的結果的操作的自洽序列。操作是
那些需要對物理量進行物理操縱的操作。通常,盡管不是必須的,但這些
量采用能夠被存儲、傳送、組合、比較以及換句話講操縱的電信號或磁信
號的形式。已被證明,其在主要出于通用原因而將這些信號指代為位、
值、元素、符號、字符、項、數字等時是方便的。

然而,應當牢記的是,所有這些以及類似的術語都與適當的物理量相
關聯,并且只是應用于這些量的方便標簽。除非另外特別說明,否則從上
述討論中顯而易見的是,可以理解,在整個說明書中,使用術語諸如“處
理”或“運算”或“計算”或“確定”或“顯示”等的討論是指計算機系
統或類似的電子計算設備的操作和流程,其可對計算機系統寄存器和存儲
器中表示為物理(電子)量的數據進行操縱,并將其轉換成在計算機系統
存儲器或寄存器或其他此類信息存儲、傳輸或顯示設備中相似地表示為物
理量的其他數據。

本文中所呈現的過程和顯示并不固有地與任何特定計算機或其他裝置
相關。根據本文的教導內容,各種通用系統可以與程序一起使用,或者可
以證明其便于構造用于執行所述操作的更專用的裝置。根據下文的描述,
用于各種這些系統的所需結構將是顯而易見的。此外,本發明未參照任何
特定的編程語言進行描述。應當理解,多種編程語言可用于實現如本文所
述的本發明的教導內容。

前面的討論僅描述了本發明的一些示例性實施例。本領域的技術人員
將易于從這些討論、附圖和權利要求書中認識到,可在不脫離本發明的實
質和范圍的情況下進行各種修改。

關 鍵 詞:
用于 系統 動態 程序 評估
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:用于系統適配的動態程序評估.pdf
鏈接地址:http://www.wwszu.club/p-6386024.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大