102執行一特定程序部份時而顯露錯誤本身的設計錯誤方面是特別有幫助的。可選擇性地禁能的發送例子包括(但不以此為限)暫存結果發送以及載入-儲存的發送。
[0148]另一配置設定可使儲存器重命名單元去清除保持載入-儲存相依性的佇列,以減少載入-儲存抵觸所導致的載入重新執行,其中該載入-儲存相依性是由暫存器重命名單元所使用來影響載入指令排程的。一般而言,功能單元1228可動態地配置,來清除已知或被懷疑是偽或已變形的且與一特定程序部分相關的累積效能特性狀態。
[0149]另一配置設定導致一或多個快取列或整個快取存儲器被清除,以避免潛在的數據不連貫。這對于處理核心1102執行一特定程序部份時而顯露錯誤本身的設計錯誤方面是特別有幫助的。
[0150]另一配置設定是暫時地改變用來實施一結構指令的微碼在一特定實例方面的行為。舉例來說,微碼在例如包含在一特定程序部分中結構指令的一特定實例下執行一替代編碼路徑,以及在結構指令的其他實例下執行一正常編碼路徑。同樣地,這在避免設計錯誤方面是特別有幫助的。
[0151]配置單元1204將配置設定寫入至配置暫存器1224,以重配置處理核心1102中的可動態配置功能單元1128,以及系統100的其他部分。在一實施例中,配置單元1204包括由處理核心1102所執行的微碼,其執行將配置設定寫入配置暫存器1224中。
[0152]應注意的是,并非處理核心1102所有的功能單元都是可動態重配置,系統100的所有部分也并非都是可動態重配置。也應可了解,盡管至少一配置暫存器1224將被寫入,且至少一可動態配置功能單元1228將被重配置,然而當配置單元1204重配置可動態配置功能單元1228時,其可能不會對每一配置暫存器1224進行寫入,且并非每一可動態配置功能單元1228將被重配置。
[0153]此處所述處理核心1102的動態重配置實施例的一種用途是,當執行其效能和/或功率消耗可能會因為將處理核心1102動態地重配置為已知設定而受到顯著影響的已知程序或者程序特性時,改善處理核心1102和/或系統100的效能和/或減少處理核心1102和/或系統100的功率消耗。
[0154]此處所述的動態重配置實施例的另一種用途是,當處理核心1102和/或系統100處理一部份的程序(該程序部分在第一已知配置下由處理核心1102時將導致功能錯誤,但是該程序部分在第二已知配置下由處理核心1102時將導致正確結果)時,防止處理核心1102和/或系統100錯誤地運作。舉例來說,當數據預取器被配置去執行數據預取的特別積極模式時,如果處理核心1102執行該程序部分,其可能產生功能錯誤,但如果數據預取器被配置器執行數據預取的低積極模式或者數據預取完全地關閉時,當處理核心1102執行該程序部分時,其可能不會產生功能錯誤。功能錯誤的例子包括(但不以此為限)損壞數據、停擺狀態(例如死結或活結)、非常緩慢效能、以及操作系統無法修復的例外狀況。在處理核心1102設計造成功能誤差的錯誤可能不會被發現,直到處理核心1102被大量制造和/或在其已經運送到客戶端才被發現。在這樣的情況下,這有利于藉由動態重配置處理核心1102來修正此問題,而不是重新設計處理核心和/或重新招回或尚未賣出且具有此錯誤的處理核心1102。
[0155]此處實施例的一優點在于,其提供完全的匿名給使用者。甚至是,由服務器104所執行的分析只需要知道配置設定、以此配置設定來執行時的效能、以及已執行的程序(或其區別特征),但是不關心信息是來自哪一系統或者是由誰使用。不同于許多當前的數據挖掘模式,此處所述的實施例提供使用者匿名,因此促使大量的使用者決定參加實驗,并藉此接收改善的效能利益。
[0156]本發明的不同實施例已于本文敘述,但本領域具有通常知識者應能了解這些實施例僅作為范例,而非限定于此。本領域具有通常知識者可在不脫離本發明精神的情況下,對形式與細節上做不同變化。例如,軟件可致能本發明實施例所述的裝置與方法的功能、組建(fabricat1n)、模塊化(modeling)、模擬、描述(descript1n)、和/或測試。可通過一般程序語言(C、C++)、硬件描述語言(Hardware Descript1n Languages,HDL)(包括 VerilogHDL、VHDL等等)、或其他可利用的程序語言來完成。此軟件可配置在任何已知的電腦可使用媒介,例如半導體、磁碟、或光碟(例如CD-ROM、DVD-ROM等等)。本發明所述的裝置與方法實施例可被包括于半導體智慧財產核心,例如微處理器核心(以HDL來實現),并轉換成集成電路產品的硬件。此外,本發明所述的裝置與方法可實現為硬件與軟件的結合。因此,本發明不應局限于所揭露的實施例,而是由權利要求與等同實施所界定。特別是,本發明可實施在使用于一般用途電腦中的微處理器裝置內。最后,本發明雖以較佳實施例揭露如上,然其并非用以限定本發明的范圍,任何本領域技術人員,在不脫離本發明的精神和范圍內,當可做些許的更動與潤飾,因此本發明的保護范圍當視權利要求書所界定者為準。
[0157]值得注意的是,以下所揭露的內容可提供多個用以實踐本發明不同特點的實施例或范例。以下所述的特殊元件范例與安排僅用以簡單扼要地闡述本發明的精神,并非用以限定本發明的范圍。此外,以下說明書可能在多個范例中重復使用相同的元件符號或文字,然重復使用的目的僅為了提供簡化并清楚的說明,并非用以限定多個以下所討論的實施例和/或配置之間的關系。此外,以下說明書所述的一個特征連接至、耦接至和/或形成于另一特征的上等描述,實際可包含多個不同的實施例,包括該特征直接接觸,或者包含其它額外的特征形成于該特征之間等,使得該特征并非直接接觸。
【主權項】
1.一種服務器,包括: 一第一模塊,接收來自多個系統的信息,其中,每一該系統包括在該系統的操作期間可動態配置的多個功能單元,來自每一該系統的信息包括當該功能單元根據各自該系統的一配置設定來配置時執行一個程序所收集到的效能數據; 一第二模塊,分析接收到的信息以在接收自該系統的該配置設定中選擇一最佳執行配置設定;以及 一第三模塊,提供一新的配置設定給該系統,其中,該新的配置設定是該最佳執行配置設定的修改版; 其中,該服務器重復自該系統接收信息、分析接收到的信息、以及提供該新的配置設定給該系統。
2.如權利要求1所述的服務器,其中,該第二模塊選擇一先前重復操作中該新的配置設定以及該最佳執行配置設定的較佳效能,作為一當前重復操作的該最佳較能配置設定。
3.如權利要求1所述的服務器,其中,該第三模塊根據接收自該系統且與該新的配置設定相關的一要求來提供該新的配置設定。
4.如權利要求3所述的服務器,其中,該要求包括用來指明該系統正要求該新的配置設定的一程序的一數據。
5.如權利要求4所述的服務器,其中,指明該程序的該數據包括該程序的名稱。
6.如權利要求4所述的服務器,其中,指明該程序的該數據包括該程序的特性。
7.如權利要求6所述的服務器,其中,該程序的特性包括由該程序所產生的存儲器存取的樣態。
8.如權利要求6所述的服務器,其中,該程序的特性包括由該程序所使用的不同類型指令的數量。
9.如權利要求6所述的服務器,其中,該程序的特性包括關于在執行該程序期間,該系統的多個數據預取器功能單元的有效性信息。
10.如權利要求1所述的服務器,其中,來自該系統的信息沒有包括識別該系統或識別該系統的使用者的數據。
11.如權利要求1所述的服務器,其中,該第一與第三模塊分別通過因特網接收來自該系統的信息以及提供該新的配置設定。
12.如權利要求1所述的服務器,其中,該系統大于一萬個系統。
13.如權利要求1所述的服務器,其中,該第二模塊根據該系統的速度來選擇該最佳執行配置設定。
14.如權利要求1所述的服務器,其中,該第二模塊根據該系統的功率消耗來選擇該最佳執行配置設定。
15.如權利要求1所述的服務器,其中,該第二模塊根據該系統的速度以及功率消耗的結合來選擇該最佳執行配置設定。
16.一種用于服務器的方法,包括: 接收來自多個系統的信息,其中,每一該系統包括在該系統的操作期間可動態配置的多個功能單元,來自每一該系統的信息包括當該功能單元根據各自該系統的一配置設定來配置時執行一個程序所收集到的效能數據; 分析接收到的信息以在接收自該系統的該配置設定中選擇一最佳執行配置設定; 提供一新的配置設定給該系統,其中,該新的配置設定是該最佳執行配置設定的修改版;以及 重復該接收的步驟、該分析的步驟、以及該提供的步驟。
17.如權利要求16所述的用于服務器的方法,該分析的步驟包括: 選擇一先前重復操作中該新的配置設定以及該最佳執行配置設定的較佳效能,作為一當前重復操作的該最佳較能配置設定。
18.如權利要求16所述的用于服務器的方法,更包括: 根據接收自該系統且與該新的配置設定相關的一要求; 其中,在該提供的步驟中,根據該要求的接收以執行提供該新的配置設定。
19.如權利要求18所述的用于服務器的方法,其中,該要求包括用來指明該系統正要求該新的配置設定的一程序的一數據。
20.如權利要求19所述的用于服務器的方法,其中,指明該程序的該數據包括該程序的名稱。
21.如權利要求19所述的用于服務器的方法,其中,指明該程序的該數據包括該程序的特性。
22.如權利要求21所述的用于服務器的方法,其中,該程序的特性包括由該程序所產生的存儲器存取的樣態。
23.如權利要求21所述的用于服務器的方法,其中,該程序的特性包括由該程序所使用的不同類型指令的數量。
24.如權利要求21所述的用于服務器的方法,其中,該程序的特性包括關于在執行該程序期間,該系統的多個數據預取器功能單元的有效性信息。
25.如權利要求16所述的用于服務器的方法,其中,來自該系統的信息沒有包括識別該系統或識別該系統的使用者的數據。
26.如權利要求16所述的用于服務器的方法,其中,該接收的步驟以及該提供步驟通過因特網來執行。
27.如權利要求16所述的用于服務器的方法,其中,該系統大于一萬個系統。
28.如權利要求16所述的用于服務器的方法,其中,該分析的步驟包括根據該系統的速度來選擇該最佳執行配置設定。
29.如權利要求16所述的用于服務器的方法,其中,該分析的步驟包括根據該系統的功率消耗來選擇該最佳執行配置設定。
30.如權利要求16所述的用于服務器的方法,其中,該分析的步驟包括根據該系統的速度以及功率消耗的結合來選擇該最佳執行配置設定。
31.一種用于服務器的方法,包括: 接收來自多個系統的信息,其中,每一該系統包括在該系統的操作期間可動態配置的多個功能單元,來自每一該系統的信息包括當該功能單元根據各自該系統的一配置設定來配置時執行一個程序所收集到的效能數據; 分析接收到的信息以在接收自該系統的該配置設定中選擇一最佳執行配置設定; 提供該最佳執行配置設定給該系統。
【專利摘要】一種服務器,其包括第一、第二、以及第三模塊。第一模塊接收來自多個系統的信息。每一系統包括在系統的操作期間可動態配置的多個功能單元。來自每一系統的信息包括當這些功能單元根據各自系統的一配置設定來配置時執行一個程序所收集到的效能數據。第二模塊分析接收到的信息以在接收自這些系統的配置設定中選擇一最佳執行配置設定。第三模塊提供一新的配置設定給這些系統。新的配置設定是最佳執行配置設定的修改版。服務器重復自這些系統接收信息、分析接收到的信息、以及提供新的配置設定給這些系統。
【IPC分類】G06F9-44
【公開號】CN104536736
【申請號】CN201410768293
【發明人】陳文琦, E.虎克 羅德尼
【申請人】上海兆芯集成電路有限公司
【公開日】2015年4月22日
【申請日】2014年12月12日