除非本文中另外指示,在本部分中所描述的方法對于本申請中的權利要求不是現有技術,并且不因包括在本部分中而被承認為是現有技術。
隨著低電壓計算上的當代發展已經取得進步,用于操作集成電路的可允許的閾值和余量已經顯著地降低。例如靠近閾值的計算可以使電壓等級降低到其中集成電路設計的制造上以前可接受的過程變化現在或許導致實質上相異的功能上性能和容差的點。
典型地,在靠近閾值計算中,這樣的過程變化或許導致處理器核的子單元的局部故障。在同樣的操作條件下,例如,一個核的整數運算單元或許失敗,同時另一個核的旁路轉換緩沖器或許失敗。
概述
一些示例方法包括特征化多核處理器的工作負載以識別所述多核處理器的各單個核的一個或多個子單元,以供包括在所述工作負載中的指令使用。示例方法還可以包括選擇電壓以在該電壓下操作多核處理器的核。示例方法還可以包括基于在所選擇的電壓下各單個核中的經識別的一個或多個單元的性能,將工作負載中的指令中的各單個指令分配給多核處理器的核中的核。
示例方法還可以包括從多核處理器可訪問的非易失性存儲器讀取指示在所選擇的電壓下各單個核中的經識別的一個或多個子單元的性能的數據。
在一些示例方法中,指示在所選擇的電壓下各單個核中的所識別的一個或多個子單元的性能的數據可以包括指示針對在所選擇的電壓下各單個核中的經識別的一個或多個子單元是否啟用功能的性能變化的數據。
在一些示例方法中,指示針對在所選擇的電壓下各單個核中的經識別的一個或多個子單元是否啟用功能的性能變化的數據可以包括指示在所選擇的電壓下核的特定子單元的時鐘速度的數據。
在一些示例方法中,特征化多核處理器的工作負載以識別所述多核處理器的各單個核的一個或多個子單元,以供包括在所述工作負載中的指令使用包括:確定包括在工作負載中的經識別的指令的類型;并且基于指令的類型,將權重分配給指令中的各單個指令。
另一示例方法包括在第一電壓下操作多核處理器的核。該方法還可以包括使用多核處理器的核來生成第一向量以指示針對在第一電壓下核中的多個子單元的各單個子單元是否啟用功能的性能變化。該方法還可以包括在第二電壓下操作多核處理器的核。該方法還可以包括使用多核處理器的核來生成第二向量以指示針對在第二電壓下針對核中的多個子單元中的各單個子單元是否啟用功能的性能變化。該方法還可以包括在第二電壓下操作多核處理器的核。該方法還可以包括將第一向量和第二向量存儲在與多核處理器相關聯的非易失性存儲器中。
在一些示例方法中,將第一向量和第二向量存儲在與多核處理器相關聯的非易失性存儲器中可以包括將第一向量和第二向量存儲在數據結構中。
在一些示例方法中,將第一向量和第二向量存儲在與多核處理器相關聯的非易失性存儲器中可以包括存儲核中的多個子單元的各單個子單元的時鐘速度。
在一些示例方法中,將第一和第二向量存儲在與多核處理器相關聯的非易失性存儲器中可以包括存儲表,該表包括第一和第二向量。
在一些示例方法中,使用多核處理器的核來生成第一向量以指示針對在第一電壓下核中的多個子單元的各單個子單元是否啟用功能的性能變化可以包括生成第一向量以指示在第一電壓下和在第一溫度下針對核中的多個子單元中的各單個子單元啟用功能的性能變化,以及該方法還可以包括生成第三向量以指示針對在第一電壓下和在第二溫度下核中的多個子單元的各單個子單元是否啟用功能的性能變化。
在一些示例方法中,第一電壓可以對應于第一電壓-頻率對,并且在第一電壓下操作多核處理器的核可以包括在第一電壓-頻率對中的頻率下操作核,以及第二電壓可以對應于第二電壓-頻率對,并且在第二電壓下操作多核處理器的核可以包括在第二電壓-頻率對的頻率下操作核。
在一些示例方法中,第一向量可以包括多個二進制值,二進制值中的每一個值指示針對多個子單元的相應子單元是否啟用功能的性能變化。
在一些示例方法中,第一向量可以包括頻率。
在又另一示例中,提供了多核處理器。多核處理器可以包括多個核,其中多個核中的各單個核包括被配置為基于操作電壓選擇性地啟用功能的性能變化的子單元。多核處理器還可以包括控制邏輯,其耦接到多個核的各單個核,并且被配置為接收操作電壓,以及接收來自多個核中的核的向量、該向量指示在操作電壓下哪個子單元已經啟用了功能的性能變化,控制邏輯還被配置為將多個指令中的各單個指令分配給多個核,其中多個指令中的各單個指令基于該向量包括針對核中的一個或多個核的關聯。
在一些示例中,多核處理器還可以包括耦接到控制單元并且通過控制單元可訪問的非易失性存儲器,非易失性存儲器被配置為存儲針對核中的每一個核的向量,該向量指示在不同的操作電壓下哪個子單元已經啟用功能的性能變化。
在一些示例中,向量還可以指示在特定的溫度下哪個子單元已經啟用功能的性能變化。
在一些示例中,操作電壓還可以對應于頻率,在該頻率下多個核被配置為響應于接收到操作電壓來操作。
在一些示例中,多核處理器可以包括同構多核處理器。
在又另一示例中,提供系統。該系統可以包括多核處理器,多核處理器包括存儲單元,該存儲單元被配置為存儲指示針對在多個電壓下多核處理器的核的子單元是否啟用功能的性能變化的數據。該系統還可以包括模塊,其耦接到存儲器并且被配置為將來自多個電壓中的操作電壓提供給多核處理器,并且其中模塊被配置為根據存儲在存儲單元中的數據,將指令分配給多核處理器的核。
在一些示例中,模塊還可以被配置為特征化工作負載,包括識別由包括在工作負載中的指令中的各單個指令使用的一個或多個子單元。
在一些示例中,模塊還可以被配置為通過確定包括在工作負載中的指令的類型來至少部分地特征化工作負載,并且還可以被配置為基于指令的類型,將權重分配給指令。
在一些示例中,針對特定核是否啟用功能的性能變化是基于溫度的。
在一些示例中,模塊還可以被配置為將針對特定核的關聯分配給指令中的各單個指令。
在一些示例中,模塊可以包括超級管理器(hypervisor)。
前面的概述僅僅是示例性的,而不意在以任何方式進行限制。通過參考附圖以及下面的詳細描述,除了上文所描述的示例性的方案、實施例和特征之外,另外的方案、實施例和特征將變得顯而易見。
附圖說明
本公開的前述和其他特征將從結合附圖的下文中的描述和隨附權利要求中變得更加充分地明顯。應當理解,這些附圖僅僅描繪了根據本公開的幾個實施例,并且因此并不被認為是限制它的范圍,本公開將通過使用附圖利用附加特性和細節而被描述,在附圖中:
圖1是根據本文所描述的至少一些實施例而布置的示例系統的框圖;
圖2是圖示根據本文所描述的至少一些實施例而布置的、在多核處理器中分配指令的示例方法的流程圖;
圖3是圖示根據本文所描述的至少一些實施例而布置的、確定多核處理器的指令關聯的示例方法的流程圖;
圖4是圖示指示在多個電壓下核的示例功能的性能變化的示例數據結構的框圖;
圖5是圖示根據本文所描述的至少一些實施例的、被布置用于使用基于電壓的功能的性能變化的指令優化的示例計算設備的框圖;以及
圖6是圖示根據本文所描述的至少一些實施例的、被布置來存儲用于使用基于電壓的功能的性能變化的指令優化的指令的示例計算機程序產品的框圖。
具體實施方式
在以下詳細描述中,參考附圖,所述附圖形成詳細描述的一部分。除非上下文另外指示,在附圖中,相似的符號通常標識相似的部件。在具體實施方式、附圖和權利要求中描述的說明性實施例并不旨在是限制性的。在不脫離本文所出現的主題的精神或范圍的前提下,可以利用其它實施例,以及可以進行其它改變。如本文一般地描述地,并且在附圖中圖示的,本公開的方面可以以廣泛的各種不同的配置被布置、替代、組合、分割和設計,所有這些在本文中都被明確地構想到。
本公開總體上尤其關注涉及使用基于電壓的功能的性能變化的指令優化(或另外指令的改進執行)的方法、系統、產品、設備和/或裝置。
簡單來說,一些示例方法包括特征化多核處理器的工作量以識別所述多核處理器的各單個核的一個或多個子單元,以供包括在所述工作負載中的指令使用。示例方法還可以包括選擇電壓以在該電壓下來操作多核處理器的核。示例方法還可以包括基于在所選擇的電壓下各單個核的經識別的一個或多個子單元,將工作負載的指令中的各單個指令分配給多核處理器的多個核中的核。
圖1是根據本文所描述的至少一些實施例而布置的示例系統100的框圖。圖1示出多核處理器110和模塊120。多核處理器110可以包括:控制邏輯112、非易失性存儲器114、和多個核115a-n(一般上是“多個核115”或“核115”)。圖1中所描述的各個部件僅僅是示例,并且包括減少部件、組合部件、添加部件和替代部件的其他變化都是預期的。
控制邏輯112可以耦接到核115中的每一個核以及非易失性存儲器114,并且總體上可以管理多核處理器110的操作。具體地,控制邏輯112可以將指令提供給核115中的每一個核,并且可以被配置為執行其他處理器任務,比如本文進一步所描述的那些任務。
模塊120可耦接到多核處理器110,并且可以包括計算設備的一個或多個硬件和/或軟件部件。模塊120可以包括一個或多個存儲設備,其包括易失性存儲器和/或非易失性存儲器,其根據所描述的實施例反過來可以被編碼為具有用于操作系統的指令和用于執行指令的優化(或另外改進的執行)的一個或多個應用。在一些示例中,模塊120可以包括超級管理器。在操作期間,以及如更詳細地將被解釋的,模塊120可以將任務提供給多核處理器110以用于執行。任務可以包括與工作負載相關聯的編程線程和/或一個或多個指令。舉例來說,任務可以包括幾千條(例如,10,000)指令。如所描述的控制邏輯112可以將任務的指令提供給核115中的一個或多個。控制邏輯112可以例如將任務的所有指令提供給單個核115,或者可以將任務的指令提供給多個核115。
核115中的每一個可以執行由控制邏輯112提供的指令,并且可以包括用于執行指令的多個子單元。每個子單元可以專用于執行一種或多種特定類型的指令,比如專用于浮點運算的指令或專用于整數運算的指令。每一個子單元例如可以包括:浮點單元(FPU)、算術邏輯單元(ALU)、其中的其他類型的單元或其中的部分、或其組合。多核處理器110的多個核115可以是同構的或異構的。
由控制邏輯112提供給核115的指令可以根據基于關聯的分配而被提供。例如,每一個指令可以針對指定的核115而被分配“關聯”,其指示待被指定的核115執行的指令的偏愛。模塊120可以按任務等級或者按指令等級將關聯分配給指令,并且可以使用基于相位特征、指令調查(instruction census)、先行(Lookahead)和/或任何其他基于關聯的分配方法來實施基于關聯的分配。雖然模塊120可以將關聯分配給許多指令,但是控制邏輯112可以例如基于可用資源、和/或指令類型來選擇性地忽略關聯。
每一個核115可以根據多個電壓-頻率對中的每一個來進行操作。例如,每一個核115可以在多個電壓中的每一個下來操作,并且針對每一個電壓,還可以在與電壓相關聯的特定頻率下來操作。例如,核115a可以以與每一個電壓相關聯的操作頻率來在多個不同的電壓下操作。另外,在其下核115操作的電壓可以由模塊120命令。作為響應,每一個核115可以識別與命令的電壓相關聯的頻率,并且在經識別的頻率下操作。在其他示例中,電壓和頻率兩者可以由模塊120命令。通過以該方式調整電壓和頻率,總體上可以改進處理效率。
在某些情況下,核115的一個或多個子單元在核115的命令的頻率下或許不正確地操作。核115中的特定的子單元例如可以針對合適的操作要求更低的頻率。相應地,核115可以針對每一個子單元來選擇性地啟用功能的性能變化。針對子單元啟用功能的性能變化可以包括降低子單元通過其來操作的頻率(例如,時鐘頻率)。以這種方式降低頻率可以包括降低一半頻率,或其它因數的頻率。附加地或備選地,功能的功能變化可以基于核115的溫度和/或電壓而被選擇性地啟用。例如,核115中的子單元可以基于溫度和頻率來進行不同的操作,通過溫度和頻率子單元進行的操作可以被調整以幫助確保每一個子單元恰當地操作。
根據本文所描述的一個或多個實施例,在操作期間,核115中的每一個可以提供數據來指示哪個子單元啟用功能的性能變化。出于本文描述的目的,以這種方式由核115提供的數據可以指示核115的“性能”,并且相應地被稱為“性能數據”。由核115提供的性能數據可以被提供給控制邏輯112并且還可以以向量形式被提供。舉例來說,性能數據向量的每一個元素可以指示與元素相關聯的子單元是否根據功能的性能變化來正在操作。在一些示例中,每一個元素可以通過指定二進制值來指示針對子單元是否啟用功能的性能變化(例如,二進制1可以指示啟用功能的性能變化),和/或可以指示子單元的操作頻率。附加地或備選地,每一個元素可以指示主時鐘的每個時鐘周期中由子單元完成的指令的數量。
為了生成性能數據,多核處理器110的每一個核115可以在多個電壓中的每一個電壓下進行操作,并且作為響應提供對應于多個電壓中的每一個電壓的性能數據。針對每一個核115,在每一個電壓下的性能數據可以被放置在數據結構中,比如表、鏈表、或數組。參考圖4,針對核115圖示示例數據結構400,其指示在多個電壓中的每一個電壓下的、核115中的每一個子單元的性能功能的變化。在至少一示例中,性能數據可以與特定的溫度或溫度范圍相關聯。例如,核115可以針對多個溫度范圍中的每一個而在多個電壓下進行操作,使得針對在每一個溫度下每一個操作電壓來提供性能數據。
性能數據可以在多核處理器110的制造過程期間或在多核處理器110的初始操作期間生成。控制邏輯112可以例如接收每一個核115的性能數據并且將用于隨后參考的性能數據存儲在非易失性存儲器114、模塊120的易失性存儲器、和/或模塊120的非易失性存儲器中。附加地或備選地,在多核處理器110的操作期間,性能數據可在多核處理器的操作期間由核115中的每一個來實時提供。以這種方式,在操作期間隨著電壓和/或溫度波動,功能的性能變化可以被追蹤。
在操作期間,性能數據可以被模塊120使用以基于性能數據將關聯分配給一個或多個指令。模塊120可以例如使用性能數據以確定核115中哪個單個核或多個核最適合于執行特定的指令并且相應地將關聯分配給該指令。以這種方式,使用核115執行指令可以被優化或另外改進。舉例來說,利用半時鐘的浮點ALU操作的第一核115a或許更低效率執行浮點運算指令,并且模塊120或許更偏向利用完全時鐘的浮點ALU的第二核115b來執行浮點運算指令。模塊120可以將關聯分配給用于第二核115b的浮點運算指令。在一些示例中,模塊120可以實時接收性能數據并且使用實時接收到的性能數據將關聯分配給指令。在其他示例中,模塊120可以將性能數據存儲在例如模塊120的非易失性存儲器上以用于隨后的參考。
圖2是圖示根據本文所描述的至少一些實施例而布置的、在多核處理器中分配指令的示例方法200的流程圖。示例方法可以包括由塊205、210、和/或215中的一個或多個所示的一個或多個操作、功能或動作。響應于執行(比如通過本文所描述的一個或多個處理器)存儲在非暫態計算機可讀介質、比如計算設備或一些其他的控制器或相似配置的設備的計算機可讀介質中的計算機可讀指令,可以執行塊205-215中所描述的操作。
示例過程可以從塊205開始,其可以包括“特征化多核處理器的工作負載以識別所述多核處理器的各單個核的一個或多個子單元,以供包括在所述工作負載中的指令使用”。塊205之后可以是塊210,其可以包括:“選擇電壓以在該電壓下操作多核處理器的核”。塊210之后可以是塊215,其可以包括“基于在所選擇的電壓下各單個核中經識別的一個或多個子單元,將工作負載中的指令中的各單個指令分配給多核處理器的多個核中的核”。
包括在所描述的示例方法中的塊是出于說明性目的。在一些實施例中,塊可以以不同的順序執行。在一些其他的實施例中,各個塊可以被消除。在另外其他實施例中,各個塊可以被分成附加塊、利用其他塊補充、或組合在一起稱為更少的塊。這些特定的塊的其他變化可以是預期的,包括塊的順序的改變、被分離或被組合成其他塊的塊的內容的改變等。在一些示例中,在塊205之前,可以執行塊210。
塊205可以包括“特征化多核處理器的工作負載以識別所述多核處理器的各單個核的一個或多個子單元,以供包括在所述工作負載中的指令使用”。模塊120可以針對多核處理器110識別例如提供給或存儲在模塊120中的工作負載。模塊120可以特征化工作負載以識別工作負載中的指令和每一個經識別的指令的類型和/或被每一個經識別的指令使用的子單元。例如,指令可以被識別為針對浮點運算(例如,加、減、乘、除)或針對整數運算。在某些情況下,特征化工作負載還可以包括將權重分配給每一個指令類型。權重可以例如指示相對于工作負載內的其他指令類型的每一個指令類型的頻率。每一個指令類型的權重然后可以被加權以對照每一個核115的性能數據來確定哪個核115最適合于執行每一個指令和/或包括指令的一個或多個任務。
塊210可以包括“選擇電壓以在該電壓下操作多核處理器的核”。模塊120可以針對多處理器110的核115選擇操作的電壓。如所描述,該電壓可以被命令給核115中的每一個,使得核115中的每一個可以根據電壓-頻率對來操作。在至少一個實施例中,電壓可以被選擇以優化(或另外改進)工作負載中經識別的指令的執行。例如,如果工作負載包括指向整數運算的相對更多的指令,那么模塊120可以將電壓命令給多核處理器110的核115,以得到執行針對整數運算的指令的最大總效率。
塊215可以包括“基于在所選擇的電壓下各單個核中的經識別的一個或多個子單元的性能,將工作負載中的指令的各單個指令分配給多個處理器的多個核中的核”。例如,根據在塊205處所特征化的工作負載和在塊210處所選擇的電壓,模塊120可以針對特定的核115將關聯分配給指令中的每一個指令。指令隨后可以被提供給控制邏輯112以用于在核115上的執行。如所描述的,控制邏輯112可以選擇性地忽略被分配給指令的關聯。
圖3是圖示根據本文所描述的至少一些實施例而布置的、確定多核處理器的指令關聯的示例方法300的流程圖。示例方法可以包括如由塊305、310、315、320、和/或325中的一個或多個塊所示的一個或多個操作、功能或動作。響應于執行(比如通過本文所描述的一個或多個處理器)存儲在計算機可讀介質、比如計算設備或一些其他的控制器或相似配置的設備的非暫態計算機可讀介質中的計算機可執行指令,可以執行塊305-325中所描述的操作。
示例過程可以從塊305開始,其可以包括“在第一電壓下操作多核處理器的核”。塊305之后可以是塊310,其可以包括“使用多核處理器的核來生成第一向量以指示針對在第一電壓下核的多個子單元的各單個子單元是否啟用功能的性能變化”。塊310之后可以是塊315,其可以包括“在第二電壓下操作多核處理器中的核”。塊315之后可以是塊320,其可以包括“使用多核處理器中的核來生成第二向量以指示針對在第二電壓下核的多個子單元的各單個子單元是否啟用功能的性能變化”。塊320之后可以是塊325,其可以包括“將第一和第二向量存儲在與多核處理器相關聯的非易失性存儲器中”。
包括在所描述的示例方法中的塊是出于說明性的目的。在一些實施例中,塊可以以不同的順序執行。在一些其他的實施例中,各個塊可以被消除。在另外其他實施例中,各個塊可以被分成附加塊、利用其他塊補充、或組合在一起稱為更少的塊。這些特定的塊的其他變化可以是預期的,包括塊的順序的改變、被分離或被組合成其他塊的塊的內容的改變等。舉例來說,在塊320處生成第一向量之前,第一向量可以被存儲在非易失性存儲器中。
塊305可以包括“在第一電壓下操作多核處理器的核”。可以在第一電壓下操作多核處理器110的核115、比如核115a。如所描述的,電壓可以由模塊120或控制邏輯112來命令。響應于第一電壓,核115可以根據對應的電壓-頻率對進行操作。因為核115中的子單元或許不以電壓-頻率對來進行適當地操作,所以核115可以針對子單元的一個或多個子單元來選擇性地啟用功能的功能變化。
塊310可以包括“使用多核處理器的核來生成第一向量以指示在第一電壓下核的多個子單元的各單個子單元是否啟用功能的性能變化”。雖然在第一電壓下進行操作,但是核115可以提供性能數據來指示針對哪個子單元啟用功能的性能變化。性能數據可以以向量形式被提供,和/或可以指示二進制值,其指示針對每一個子單元是否啟用功能的性能變化。性能數據可以從每一個核115被提供給控制邏輯112。
塊315可以包括“在第二電壓下來操作多核處理器中的核”。可以在第二電壓下來操作多核處理器110中的核115。如所描述的,電壓可以由模塊120或控制邏輯112來命令。響應于第二電壓,核115可以根據對應的電壓-頻率對來操作。因為核115的子單元在電壓-頻率對下或許不適當地操作,所以核115可以針對子單元的一個或多個來選擇性地啟用功能的性能變化。
塊320可以包括“使用多核處理器的核來生成第二向量以指示針對在第一電壓下核的多個子單元的各單個子單元是否啟用功能的性能變化”。雖然在第二電壓下進行操作,但是核115可以提供性能數據來指示針對哪個子單元啟用功能的性能變化。性能數據可以以向量形式被提供,和/或還可以指示二進制值來指示針對每一個子單元是否啟用功能的性能變化。性能數據可以從每一個核115被提供給控制邏輯112。
塊325可以包括“將第一和第二向量存儲在與多核處理器相關聯的非易失性存儲器中”。在控制邏輯112接收來自在每一個電壓下的核115的第一和第二向量兩者之后,控制邏輯112可以將向量存儲在非易失性存儲器、比如多核處理器110的非易失性存儲器114或模塊120的非易失性存儲器中。如所描述的,向量可以被存儲在數據結構、比如表中。
盡管已經描述了關于特定的核115的方法300,但是應當理解,方法300可以在多個核上同時地被執行,使得針對操作的每一個電壓通過每一個核115提供向量。此外,核115可以在許多電壓下被操作,和/或可以以不同的溫度在同樣的電壓下被操作許多次。
圖4是圖示指示在多個電壓下核的功能的性能變化的示例數據結構400的框圖;如所描述的,數據結構400可以指示在每一個電壓下哪個子單元410啟用功能的性能變化。
子單元410可以包括浮點除法子單元(FP DIV)、浮點乘法子單元(FPMUL)、浮點ROM子單元(FP ROM)、整數乘法子單元(INT MUL)、整數除法子單元(INT DIV)、整數洗牌(shuffle)子單元(INT SHUF)、帶符號的整數移位子單元(SISHIFT)、整數耗時子單元(INT SLOW)、旁路轉換緩沖器(translation lookaside buffer)子單元(TLB)、1級數據緩存子單元(L1D)、1級指令緩存子單元(L1I)、讀取-存儲(load-store)隊列子單元(LSQ)、重新排序緩沖子單元(ROM)、和按次序子單元(InORD)。這些和/或其他子單元的任何組合可以被使用在核115中的每一個核中。
如描述的,功能的性能變化可以包括調整一個或多個子單元410操作的頻率。參考圖4,二進制“1”可以指示針對子單元410啟用功能的性能變化,以及二進制“0”可以指示針對子單元410沒有啟用功能的性能變化。將0.8V的電壓作為示例,核115的功能的性能變化可以例如被啟用以用于INT MUL子單元和INT DIV子單元。
圖5是圖示根據本文所描述的至少一些實施例的、被布置用于使用基于電壓的功能的性能變化的指令優化(或另外改進的執行指令)的示例計算設備的框圖。在非常基礎配置501中,計算設備500典型地包括一個或多個處理器510和系統存儲器520。存儲器總線530可以被用于處理器510和系統存儲器520之間的通信。一個示例中的處理器510可以對應于圖1中的多核處理器110。
根據期望的配置,處理器510可以是任何類型,包括但不限于微處理器(μP)、微控制器(μC)、數字信號處理器(DSP)或其任意組合。處理器510可以包括多等級緩存(例如一級緩存511和二級緩存512)、處理器核513、寄存器514、控制邏輯516、和非易失性存儲器517。一個實施例中的處理器核513可以對應于圖1中的核115。示例處理器核513可以包括運算邏輯單元(ALU)、浮點單元(FPU)、數字信號處理核(DSP核)或其任意組合。一個實施例中的控制邏輯516可以對應于圖1中的控制邏輯112。一個實施例中的非易失性存儲器517可以對應于圖1中的非易失性存儲器114。示例存儲器控制器515還可以與處理器510一起使用,或在一些實施方式中,存儲控制器515可以是處理器510的內部部分。
根據期望的配置,系統存儲器520可以是任何類型,包括但不限于易失性存儲器(例如RAM)、非易失性存儲器(例如ROM、閃存等)或其任意組合。系統存儲器520可以包括操作系統521、一個或多個應用522以及程序數據524。應用522可以包括指令優化邏輯523,其可以被配置為基于如本文所描述的執行數據來優化指令。相應地,一個實施例中的系統存儲器520可以對應于模塊120。程序數據524可以包括執行數據、和/或可用于實現指令優化邏輯523的其他信息。在一些實施例中,應用522可以被布置以利用程序數據524在操作系統521上進行操作,使得可以執行本文所描述的任何過程。所描述的基本配置在圖5中通過基礎配置501的虛線內的那些部件圖示出。
計算設備500可以具有附加特征或功能、和附加接口,以促進基本配置501和任何需要的設備以及接口之間的通信。例如,總線/接口控制器540可以被用于促進經由存儲接口總線541在基本配置501和一個或多個數據存儲設備550之間的通信。數據存儲設備550可以是可移動存儲設備551、非可移動存儲設備552或其組合。可移動存儲和非可移動存儲設備的示例包括磁盤設備(例如軟盤驅動器和硬盤驅動器(HDD))、光盤驅動器(例如壓縮盤(CD)驅動器或數字多功能盤(DVD)驅動器)、固態驅動器(SSD)以及磁帶驅動器等等。示例計算機存儲介質可以包括以用于存儲信息(例如計算機可讀指令、數據結構、程序模塊或其他數據)的任何方法或技術實現的易失性和非易失性、可移除和非可移除的介質。
系統存儲器520、可移動存儲設備551和非可移除存儲設備552是計算機存儲介質的示例。計算機存儲介質包括但不限于RAM、ROM、EEPROM、閃存或其他存儲技術、CD-ROM、數字多功能盤(DVD)或其他的光存儲裝置、磁帶盤、錄音帶、磁盤存儲或其他磁盤存儲設備、或可被用于存儲期望信息并且可被計算設備500訪問的任何其他介質。任何這樣的計算機存儲介質可以是計算設備500的部分。
計算設備500也可以包括接口總線542,其用于促進經由總線/接口控制器540的從各種接口設備(例如輸出設備、外圍接口和通信設備)到基本配置501的通信。示例輸出設備560包括圖形處理單元561和音頻處理單元562,其可以被配置為經由一個或多個A/V端口563與各種外部設備(例如顯示器或揚聲器)通信。示例外圍接口570包括串行接口控制器571或并行接口控制器572,其可以被配置為經由一個或多個I/O端口573與外部設備進行通信,比如輸入設備(例如鍵盤、鼠標、筆、語音輸入設備、觸摸輸入設備等)或其他外圍設備(例如打印機、掃描儀等)。示例通信設備580包括網絡控制器581,其可以布置為促進經由一個或多個通信端口582通過網絡通信鏈路與一個或多個其他計算設備590進行通信。
網絡通信鏈路可以是通信介質的一個示例。通信介質可以典型地通過計算機可讀指令、數據結構、程序模塊或調制數據信號(例如載波或其他傳輸機制)中的其他數據進行實施,并且可以包括任何信息遞送介質。“調制數據信號”可以是這樣的信號,其具有以信號中的編碼信息那樣的方式設置或改變的其特征中的一個或多個。舉例而言但不做限制,通信介質可以包括有線介質(例如有線網或直接有線連接)、以及無線介質(例如聲波、無線電頻率(RF)、微波、紅外(IR)和其他無線介質)。如本文所使用的術語計算機可讀介質包括存儲介質和通信介質兩者。
計算設備500可以被實施為小型體積便攜式(或移動)電子設備(例如手機、個人數據助理(PDA)、個人媒體播放器設備、無線web查看設備、個人耳機設備、應用特定設備或包括上面任何功能的混合設備)的一部分。計算設備500也可被實施為包括膝上型計算機和非膝上型計算機配置的個人計算機。
圖6是圖示根據本文所描述的至少一些實施例的、被布置以針對使用基于電壓的功能的性能變化的指令優化來存儲指令的示例計算機程序產品的框圖。可以被實施為或包括計算機可讀介質606、計算機可記錄介質608、計算機通信介質610或其組合的信號承載介質602存儲程序指令604,其可以將處理單元配置為執行先前所描述的過程中的所有或一些。這些指令可以包括例如一個或多個可執行指令以特征化多核處理器的工作負載來識別所述多核處理器的各單個核的一個或多個子單元,以供包括在所述工作負載中的指令使用;選擇電壓以在其下操作多核處理器的核;以及基于在所選擇的電壓下各單個核的經識別的一個或多個子單元的性能,將工作負載中的指令的各單個指令分配給多核處理器中的核的核。
本公開并不是以本申請中所描述的特定的示例來限制的,這些特定的示例意圖作為各個方面的說明。在不脫離其精神和范圍的情況下,可以進行許多修改和示例。除了本文所枚舉的那些之外,在本公開范圍內的功能上等同的方法和設備根據前面的說明將是可能的。這樣的改進和示例意圖落在隨附權利要求書的范圍內。連同這些權利要求書所給予權利的等同方案的整個范圍內,本公開僅受隨附權利要求書的措辭限制。本公開不限于特定的方法、試劑、化合物組成或生物系統,這些當然可以變化。本文所使用的術語僅是為了描述特定示例的目的,而不意在限制。
關于本文中實質上任何復數和/或單數術語的使用,本領域技術人員能夠根據上下文和/或應用適當地從復數變換成單數和/或從單數變換成復數。為了清晰的目的,本文中可以明確地闡明了各種單數/復數置換。
本領域技術人員將理解,一般地,本文所使用的術語,尤其是隨附權利要求(例如,隨附權利要求的主體)中所使用的術語,通常意在為“開放式”術語(例如,術語“包括”應當解釋為“包括但不限于”,術語“具有”應解釋為“至少具有”,術語“包含”應解釋為“包含但不限于”,等等)。
本領域技術人員還將理解,如果意圖表達引導權利要求記述項的具體數量,則這樣的意圖應該明確地記載于權利要求中,如果沒有這樣的記載,則這樣的意圖不存在。例如,為輔助理解,下面的隨附權利要求可能包含了引導性短語“至少一個”和“一個或多個”的使用以引導權利要求記述項。然而,這種短語的使用不應解釋為暗指不定冠詞“一”或“一個”引導權利要求記述項將包含該所引導的權利要求記述項的任何特定權利要求局限于僅包含一個該記述項的示例,即使當同一權利要求包括了引導性短語“一個或多個”或“至少一個”以及諸如不定冠詞“一”或“一個”的(例如,“一”和/或“一個”應當解釋為表示“至少一個”或“一個或多個”);這同樣適用于對于用于引導權利要求記述項的定冠詞的使用。另外,即使明確地記述了被引導的權利要求記述項的具體數量,本領域技術人員將理解到這些記述項應當解釋為至少表示所記述的數量(例如,沒有其它修飾語的裸記述“兩個記述項”表示至少兩個記述項或兩個以上的記述項)。
此外,在使用類似于“A、B和C等中的至少一個”的慣用法的那些實例中,通常這樣的構造旨在表達本領域技術人員理解該慣用法的含義(例如,“具有A、B和C中的至少一個的系統”將包括但不限于僅具有A、僅具有B、僅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等等的系統)。在使用類似于“A、B和C等中的至少一個”的慣用法的那些實例中,通常這樣的構造旨在表達本領域技術人員理解該慣用法的含義(例如,“具有A、B和C中的至少一個的系統”將包括但不限于僅具有A、僅具有B、僅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等等的系統)。本領域技術人員將進一步理解,表示兩個或多個備選術語的幾乎任何轉折詞和/或短語,無論是在說明書、權利要求或附圖中,都應理解為設想包括一項、任一項或兩項的可能性。例如,術語“A或B”將理解為包括“A”或“B”或“A和B”的可能性。
另外,對于用馬庫什組(Markush groups)的措辭描述的本公開的特征或方面,本領域的技術人員將理解本公開也因此用馬庫什組的成員中的任何單個成員或子組的措辭來描述。
本領域技術人員將理解的是,出于任何以及全部的目的,諸如在提供所撰寫的說明書方面,本文所公開的全部范圍也涵蓋了任何和全部的可能的子范圍及其子范圍的組合。能夠容易地認識到,任何所列范圍都充分地描述了同一范圍并且使同一范圍分解成至少均等的兩半、三份、四份、五份、十份等等。作為非限制性示例,本文所論述的每個范圍能夠容易地分解成下三分之一、中三分之一和上三分之一,等等。本領域技術人員還將理解的是,諸如“多達”、“至少”、“多于”、“少于”等所有的言詞包括所記述的數量并且是指如上文所論述的隨后能夠分解成子范圍的范圍。最后,本領域技術人員將理解的是,范圍包括每個獨立的成員。因此,例如,具有1-3個單元的組是指具有1個、2個或3個單元的組。類似地,具有1-5個單元的組是指具有1個、2個、3個、4個、或5個單元的組,等等。
盡管前面的詳細描述已經通過使用框圖、流程圖和/或示例闡述了設備和/或過程的各個實施例,以及在這些框圖、流程圖和/或示例包含一項或多項功能和/或操作的程度上,可以通過各種各樣的硬件、軟件、固件或幾乎其任意組合來單獨地和/或共同地實現這些框圖、流程圖或示例內的每項功能和/或操作。在一個實施例中,本文所描述的主題的多個部分可經由專用集成電路(ASIC)、現場可編程門陣列(FPGA)、數字信號處理器(DSP)或其它集成形式來實現。然而,在本文公開的示例的一些方面可以整體地或部分地在集成電路中等效地實現為:在一個或多個計算機上運行的一個或多個計算機程序(例如,實現為在一個或多個計算機系統上運行的一個或多個程序)、在一個或多個處理器上運行的一個或多個程序(例如,實現為在一個或多個微處理器上運行的一個或多個程序)、固件、或幾乎任何組合,并且將認識到,根據本公開內容,設計電路和/或編寫用于軟件和/或固件的代碼將是可能的。例如,如果用戶確定速度和精確度是最重要的,那么用戶可以選擇主要為硬件和/或固件的手段;如果靈活性是最重要的,用戶可以選擇主要是軟件的實施方式;或者,同樣也是備選地,用戶可以選擇硬件、軟件和/或固件的一些組合。
另外,本文所描述的主題的機制能夠作為程序產品以各種形式被分發,并且本文所描述的主題的示例性實施例都適用,而不論實際上用于實施分發的信號承載介質的特定類型如何。信號承載介質的示例包括但不限于以下:可記錄型介質,諸如軟盤、硬盤驅動器、壓縮盤(CD)、數字視頻光盤(DVD)、數字帶、計算機存儲器等;以及傳輸型介質,諸如數字和/或模擬通信介質(例如,光纖電纜、波導、有線通信鏈路、無線通信鏈路等)。
本領域技術人員將理解的是,在本領域內通常以本文闡述的方式來描述設備和/或過程,此后利用工程實踐將這些所描述的設備和/或過程集成到數據處理系統中。也即,本文所描述的設備和/或過程的至少一部分可以通過合理數量的實驗集成到數據處理系統中。典型的數據處理系統通常包括如下中的一種或多種:系統單元殼體,視頻顯示設備,比如易失性和非易失性存儲器的存儲器,比如微處理器和數字信號處理器的處理器,比如操作系統的計算實體、驅動器、圖形用戶接口和應用程序的計算實體,比如觸摸板或觸摸屏的一個或多個交互設備,和/或包括反饋回路和控制電機(例如用于感測位置和/或速度的反饋;用于移動和/或調整部件和/或數量的控制電機)的控制系統。典型的數據處理系統可利用任何適合的商業可用部件來實現,比如在數據計算/通信和/或網絡計算/通信系統中典型地提供的那些部件。
本文所描述的主題有時示出包含在不同的其它部件中的或與不同的其它部件連接的不同部件。這些所描繪的體系結構僅是示例性的,并且實際上可以實施實現相同功能的許多其它體系結構。在概念意義上,實現相同功能的任何部件布置是有效地“關聯的”,以實現期望的功能。因此,在本文被組合以實現特定功能的任何兩個部件可視為彼此“關聯”以使得實現期望功能,不論體系結構或中間部件如何。同樣,任意兩個如此關聯的部件還可視為彼此“可操作地連接”、或“可操作地耦合”以實現期望的功能,并且能夠如此關聯的任意兩個部件還可視為彼此“能夠可操作地耦合”以實現期望功能。能夠可操作耦合的具體示例包括但不限于能夠物理上配對和/或物理交互的部件和/或能夠無線交互和/或無線交互的部件和/或邏輯上交互和/或能夠邏輯上交互的部件。
盡管本文已經公開了各個方面和示例,但是其他方面和示例是可能的。本文所公開的各個方案和示例是出于說明性的目的,并不意圖是限制性的,其中真實的范圍和精神通過下面的權利要求來表示。