服務器及其方法、系統及其方法
【技術領域】
[0001]本發明涉及一種系統,且特別涉及一種可動態配置的系統。
【背景技術】
[0002]微處理器的設計者在效能分析上花費不少功夫。在根據前代微處理器來建立具有特征以及效能目標基本組合的微處理器后,其執行對客戶最為重要的代表性軟件應用范例以及獲取軟件應用的執行記錄。接著,使用獲得的記錄作為激源(stimulus),以模擬正在設計的微處理器的操作。微處理器的設計者可配置模擬微處理器的不同特性,以在所有的目標軟件應用程序間實現最高的合計效能。一特定的特性配置通常能滿足一目標應用程序的需求而不能滿足另一目標應用程序的需求。在這些情況下,設計者需做出哪一軟件應用程序比較重要的決定,或者找出能平衡多個軟件應用程序需求的方法。由于此種選擇企圖在犧牲一軟件應用程序的情況下來最佳化另一軟件應用程序的效能,便通常無法使多個目標軟件應用程序達到理想效能的目的。
[0003]一旦已確認配置設定的最佳平均組合時,微處理器的設計者將其編碼成具有例如VHDL或Verilog編碼的設計。其他的微處理器是藉由將熔絲庫包含在微處理中來改善寫死的配置,這是因為熔絲庫在微處理器制造期間可選擇性地燒斷以改變寫死數值的配置設定。這使得微處理器可能對在微處理器設計后所引入的新軟件或操作系統做出反應,因而具有制造上有限程度的最佳化。然而這種解決方法仍無法達到目標軟件應用程序的理想效能,這是因為其要求設計者/制造者去選擇對于一些應用程序而言為最佳化而卻犧牲其他應用程序的配置,或者去選擇對于任何應用程序可能非最佳化的平衡配置。
[0004]為了應付此問題,編號為8,566,565的美國專利(其作為本申請的參考數據)敘述了微處理器可由一裝置驅動器根據正在運行的應用程序來動態地配置至多個操作模式的實施例。此外,于10/10/2013申請且其編號為14/050,687的美國專利申請案,其主張09/20/2013申請且其編號為61/880,620的美國臨時申請案的優先權(均作為本申請的參考數據),其揭露一種可動態重配置的微處理器。然而,實際上仍存在需要更好的效能最佳化的方式。
【發明內容】
[0005]本發明一實施例提供一種服務器,其包括第一模塊、第二模塊、以及第三模塊。第一模塊接收來自多個系統的信息。每一系統包括在系統的操作期間可動態配置的多個功能單元。來自每一系統的信息包括當這些功能單元根據各自系統的一配置設定下于執行一個程序時所收集到的效能數據。第二模塊分析接收到的信息以在接收自這些系統的配置設定中選擇一最佳執行配置設定。第三模塊提供一新的配置設定給這些系統。新的配置設定是最佳執行配置設定的修改版。服務器重復自這些系統接收信息、分析接收到的信息、以及提供新的配置設定給這些系統。
[0006]本發明一實施例提供一種用于服務器的方法,其包括以下步驟:接收來自多個系統的信息,其中,每一系統包括在系統的操作期間可動態配置的多個功能單元,來自每一系統的信息包括當這些功能單元根據各自系統的一配置設定下于執行一個程序時所收集到的效能數據;分析接收到的信息以在接收自這些系統的這些配置設定中選擇一最佳執行配置設定;提供一新的配置設定給這些系統,其中,新的配置設定是最佳執行配置設定的修改版;以及重復接收的步驟、分析的步驟、以及提供的步驟。
[0007]本發明另一實施例提供一種用于服務器的方法,包括以下步驟:接收來自多個系統的信息,其中,每一系統包括在系統的操作期間可動態配置的多個功能單元,來自每一系統的信息包括當這些功能單元根據各自系統的一配置設定下于執行一個程序時所收集到的效能數據;分析接收到的信息以在接收自這些系統的這些配置設定中選擇一最佳執行配置設定;提供該最佳執行配置設定給該系統。
[0008]本發明一實施例提供一種系統,其包括多個功能單元、第一模塊、第二模塊、以及第三模塊。這些功能單元,在系統操作期間可動態配置。第一模塊收集當系統通過在一配置設定下的這些功能單元來執行一程序時的效能數據。第二模塊傳送信息至服務器。該信息包括效能數據、配置設定、以及識別該程序所采用的數據。當該程序正由系統執行時,第三模塊指示系統以接收自服務器的一新的配置設定來重配置這些功能單元。新的配置設定是藉由服務器對由系統所傳送的信息以及由包括這些可動態配置的功能單元的多個其他系統所傳送的相似信息的分析所獲得的。
[0009]本發明一實施例提供一種方法,此方法于一系統中執行。此系統包括在系統操作期間可動態配置的多個功能單元。此方法包括以下步驟;聚集信息,其中,信息包括通過在一配置設定下這些功能單元來執行一程序時由系統所收集的效能數據、設定配置、以及識別該程序所采用的數據;將信息以及把相似信息傳送至服務器的系統的其他實例傳送至一服務器;以及指示在系統在程序正由該系統執行時以接收自服務器的一新的配置設定來重配置這些功能單元,其中,新的配置設定是根據對由系統所傳送的信息以及由包括這些可動態配置的功能單元的多個其他系統所傳送至服務器的相似信息的分析所獲得的。
[0010]本發明另一實施例提供一種方法,此方法于一系統中執行,此系統包括在系統操作期間可動態配置的多個功能單元。此方法包括以下步驟:以根據一配置設定來配置的這些功能單元來執行一程序;接收來自一服務器的一新的配置設定;指示在系統以接收自服務器的一新的配置設定來重配置這些功能單元。新的配置設定是在來自系統的多個其他實例且由服務器所接收的多個配置設定中,關于程序的一最佳執行配置設定的修改版,而系統具有這些功能單元,且這些其他實例傳送信息至服務器。由多個其他系統的每一者傳送至服務器的數據包括通過以一配置設定來配置的這些功能單元用來執行該程序時由這些其他系統所收集的效能數據、以及包括這些配置設定中用來配置的這些功能單元的該者。
【附圖說明】
[0011]圖1表示根據本發明一實施例的計算系統。
[0012]圖2表示根據本發明一實施例,圖1中系統的操作流程圖。
[0013]圖3表示根據本發明另一實施例,圖1中系統的操作流程圖。
[0014]圖4表示根據本發明一實施例,圖1中服務器的操作流程圖。
[0015]圖5表示根據本發明另一實施例,圖1中服務器的操作流程圖。
[0016]圖6表示根據本發明一實施例,圖1中系統的操作流程圖。
[0017]圖7表示根據本發明另一實施例,圖1中系統的操作流程圖。
[0018]圖8表示根據本發明又一實施例,圖1中系統的操作流程圖。
[0019]圖9表示根據本發明再一實施例,圖1中系統的操作流程圖。
[0020]圖10表示根據本發明一實施例,圖1中網絡的操作流程圖。
[0021]圖11表示根據本發明一實施例,圖1中系統的方塊圖。
[0022]圖12表不根據本發明一實施例,圖11中多個處理核心之一者的方塊圖。
[0023]【附圖標記說明】
[0024]100 ?系統;
[0025]102?可動態配置功能單元;
[0026]104?云端服務器;
[0027]112?系統模塊;
[0028]132?因特網;
[0029]142?服務器模塊;
[0030]152?數據庫;
[0031]154?最佳配置設定;
[0032]156?經調整的配置設定;
[0033]199 ?網絡;
[0034]202、204、206、208、212、214、216、218、222、224、226、228 ?流程步驟;
[0035]302、304、306、308 ?流程步驟;
[0036]402,404,406 ?流程步驟;
[0037]502、504?流程步驟;
[0038]602、604、606、608、612 ?流程步驟;
[0039]702,704,706 ?流程步驟;
[0040]808、812、814、816 ?流程步驟;
[0041]903?流程步驟;
[0042]1102-A?處理核心O ;
[0043]1102-B?處理核心I ;
[0044]1102-N?處理核心N ;
[0045]1104?系統代理;
[0046]1106?末級快取存儲器(LLC)存儲器;
[0047]1108?圖形處理單元(GPU);
[0048]1112?周邊裝置;
[0049]1114?存儲器控制器;
[0050]1116?數據預取器;
[0051 ]1122-A?服務處理器O ;
[0052]1122-B?服務處理器I ;
[0053]1122-C?服務處理器2 ;
[0054]1122-D?服務處理器3 ;
[0055]1204?配置單元;
[0056]1224?配置暫存器;
[0057]1228?可動態配置功能單元。
【具體實施方式】
[0058]以下說明為本發明的實施例。其目的是要舉例說明本發明一般性的原則,不應視為本發明的限制,本發明的范圍當以權利要求所界定的為準。
[0059]專業術語
[0060]服務器,是一種計算系統,其通過網絡與多個其他計算系統聯系,且自這些計算系統接收信息,分析這些信息,并將分析結果傳送這些計算系統。
[0061 ] 模塊,是一種硬件、軟件、或硬件與軟件的結合。
[0062]系統,是一種能獲取且執行所儲存程序指令以處理數據。一個系統包括能執行所儲存程序指令以處理數據的多個功能單元。
[0063]功能單元,是在系統中的硬件或硬件與軟件的結合,其執行與指令處理相關的功能。功能單元的例子包括(但不限定于);存儲器控制器、系統代理、以及包含在中央處理單元(CPU)或圖形處理單元(GPU)的單元,例如指令獲取單元、分支預測單元、指令格式單元、指令轉譯單元、暫存器重命名單元、指令排程單元、執行單元(例如,整數單元、浮點單元、分支單元、單指令多數據流(SIMD)單元、多媒體單元、載入單元、儲存單元)、重排序緩沖器、指令引退單元、快取存儲器、數據預獲取單元、電源管理單元、存儲器管理單元、儲存碰撞檢測單元。
[0064]功能單元為可動態重配置的,如果在系統正在運作時,其配置設定可能改變。應注意的是,為了改變可動態重配置功能單元的配置設定,當要改變配置設定時,系統可先暫停由可動態重配置單元和/或整體系統所進行的指令處理。舉例來說,在微碼藉由將一數值寫入至配置暫存器來改變配置設定的例子中,在寫入新的配置設定之前且直到新的配置設定有效為止,微碼程序可使指令連續執行。
[0065]功能單元的配置設定是一種狀態,當此狀態具有不同數值時,其導致功能單元以不同的方式來執行其功能。不同的方式影響了功能單元執行其功能時的效能、功率消耗、和/或正確性。
[0066]效能數據是一種數據,其提供系統正以多快的速度執行程序、系統正使用多少功率來執行程序、或前述兩者結合的計量。
[0067]為了改善包括可動態重配置功能單元的計算系統的效能,可運用大量的效能實驗結果,而該大量的效能實驗結果包括由許多使用者參與的系統實體中,讓實驗者(例如系統的制造者)為特定程序或呈現相似特性的程序決定可動態重配置功能單元的經改善配置設定的實驗結果。當可動態重配置功能單元以特定配置設定來配置時,這些系統實體持續地收集其執行一程序時的效能數據。系統周期性地通過因特網傳送信息(效能數據、配置設定、以及用來識別程序的信息)給服務器。服務器聚集來自所有系統的信息、分析信息、并決定關于該程序的最佳配置設定。服務器接著稍微調整最佳配置設定。系統接收(例如根據要求)來接收經調整的配置設定,且以經調整的配置來動態地重配置自己本身。系統接著重復收集效能數據與經調整的配置設定以及傳送信息至服務器的程序,服務器再次分析聚集獲得的信息,且傳送出新的經調整的配置設定。系統以