包括增強的基於溫度的電壓控制的用於能效和節能的方法、裝置和系統的製作方法
2023-06-12 20:48:21 3
包括增強的基於溫度的電壓控制的用於能效和節能的方法、裝置和系統的製作方法
【專利摘要】描述了包括增強的基於溫度的電壓控制的用於能效和節能的系統、裝置和方法的實施例。在一個實施例中,裝置包括處理器和耦合於該處理器的控制器。在一個實施例中,控制器接收對應於處理器的當前溫度的溫度測量。在一個實施例中,控制器還至少部分地基於溫度測量和所述處理器的多個內部限制來確定對於正被施加給處理器的電壓的調整,其中所確定的對電壓的調整是基於處理器的工作頻率和電壓中的至少一項同溫度之間的逆向溫度依賴性關係的。在一個實施例中,控制器將所確定的對電壓的調整提供給電壓調節器接口。
【專利說明】包括增強的基於溫度的電壓控制的用於能效和節能的方法、裝置和系統
【技術領域】
[0001]本公開涉及集成電路中的能效和節能,以及用於在集成電路上執行的代碼,並且具體但非排他性地涉及使用逆向溫度依賴性來動態調整施加給處理器的電壓以減少功率消耗。
【背景技術】
[0002]半導體處理和邏輯設計領域的進步已經允許增加集成電路器件上可存在的邏輯數量。結果,計算機系統配置已從系統中的單個或多個集成電路演變至多硬體線程、多核、多設備和/或完善的各集成電路上的系統。附加地,隨著集成電路的密度增長,計算系統的功率需求(從嵌入式系統至伺服器)也已逐步升級。此外,軟體效率低及其對硬體的需要也已造成計算設備能耗的增加。事實上,一些研究表明,計算設備消耗整個國家(例如美國)的電力供給的相當大百分比。結果,對於與集成電路關聯的能效和節能具有至關重要的需求。隨著伺服器、臺式計算機、筆記本電腦、超級本、平板計算機、行動電話、處理器、嵌入式系統等設備變得越來越盛行(從包含在典型計算機、汽車和電視機中乃至到生物技術),這些需求將增加。
[0003]附圖簡述
[0004]在附圖的圖形中作為示例而非限制地說明了本發明,其中相同的附圖標記指示類似的元件,並且其中:
[0005]圖1例示了用於利用逆向溫度依賴性來調節應用於處理器的電壓以減少功率消耗的系統的框圖。
[0006]圖2例示了用於基於給定溫度動態調節電壓的方法的一個實施例。
[0007]圖3A是示出根據本發明的實施例的示例性有序流水線和示例性的寄存器重命名的無序發布/執行流水線二者的框圖。
[0008]圖3B是示出根據本發明的各實施例的要包括在處理器中的有序架構核的示例性實施例和示例性的寄存器重命名的無序發布/執行架構核的框圖。
[0009]圖4A-B描述更具體的示例性的有序核架構的框圖。
[0010]圖5是處理器的框圖。
[0011]圖6-9是示例性計算機架構的框圖。
[0012]圖10是根據本發明的實施例的對照使用軟體指令轉換器將源指令集中的二進位指令轉換成目標指令集中的二進位指令的框圖。
[0013]圖1lA例示根據實施例的圖表。
[0014]圖1lB例示根據實施例的圖表。
【具體實施方式】
[0015]在下面的描述中,闡述了很多具體細節。然而,應當理解,本發明的各實施例可以在不具有這些具體細節的情況下得到實施。在其他實例中,未詳細示出公知的電路、結構和技術以免混淆對本描述的理解。
[0016]在說明書中對「一個實施例」、「一實施例」、「示例實施例」等的引用指示所描述的實施例可以包括特定特徵、結構或特性,但並不一定每個實施例都需要包括該特定特徵、結構或特性。此外,這樣的短語不一定是指同一個實施例。此外,當結合一個實施例描述特定特徵、結構或特性時,我們認為,可本領域技術人員的學識範圍內,與其他實施例相結合地影響這樣的特徵、結構或特性,無論是否對此明確描述。
[0017]儘管參考特定集成電路中(諸如計算平臺或微處理器中)的節能和能效描述了以下實施例,但是其它實施例適用於其它類型的集成電路和邏輯器件。本文描述的實施例的相似技術和教義可適用於可從更好的能效和節能中得益的其它類型的電路或半導體器件。例如,所披露的實施例不限於臺式計算機系統,並也可用於其它設備,例如手持設備、晶片上系統(SoC)以及嵌入式應用。手持式設備的一些示例包括:蜂窩電話、網際網路協議設備、數位相機、個人數字助理(PDA)、手持式PC。嵌入式應用典型包括:微控制器、數位訊號處理器(DSP)、晶片上系統、網絡計算機(NetPC)、機頂盒、網絡中樞、廣域網(WAN)交換機、或可執行如下所教導的功能和操作的任何其他系統。此外,本文描述的裝置、方法和系統不限於物理計算設備,而是也涉及對節能和能效的軟體優化。如將在以下描述中變得顯而易見的,本文描述的方法、裝置和系統的實施例(無論是關於硬體、固件、軟體還是它們的組合)對於「綠色技術」(諸如,用在涵蓋美國經濟很大部分的產品中的節能和能效)的前景是至關重要的。
[0018]圖1例示了利用逆向溫度依賴性來調節應用於處理器的電壓以減少功率消耗的系統100的框圖。在一個實施例中,系統100是更大處理系統(如下文中在圖6-9中所例示的)的一部分。在一個實施例中,系統100包括控制器110、一個或多個熱傳感器120、電壓調節器130、和處理器140。在一個實施例中,控制器110、熱傳感器120、和電壓調節器130是處理器140的一部分。
[0019]在一個實施例中,處理器140可以是中央處理單元(CPU)、圖形處理器、或其他處理器,其執行指令以運行圖1和圖6-9的系統的算術、邏輯、和輸入/輸出操作。在一個實施例中,控制器110 (其可為微控制器)、微處理器、或其他處理單元,測量處理器140的當前溫度。在一個實施例中,控制器110以周期性的間隔來測量處理器140的當前溫度。在一個實施例中,且如下文結合圖1lA和IlB所更為詳細討論的,當處理器的當前溫度適用於多個內部電壓要求(諸如電晶體速度電壓要求和處理器陣列電壓要求時),控制器可測量處理器的當前溫度。在一個實施例中,當前溫度是適用於諸如電晶體速度電壓要求和處理器陣列電壓要求的所有內部電壓約束的單個溫度測量。然而,如圖1lA中所例示的,不同的內部電壓約束,例如電晶體速度和處理器陣列電壓關係,可具有不同的溫度依賴性關係。
[0020]在一個實施例中,由電壓調節器130基於處理器140的當前溫度和期望工作頻率或速度而動態地向處理器140加電壓。在一個實施例中,隨著處理器140的溫度下降,處理器140中的電晶體就變慢了,藉此降低了處理器的工作頻率。為了維持處理器140的期望工作頻率,要被加給處理器140的電壓隨著溫度下降而升高,這形成了電壓和溫度之間的逆向溫度依賴性。在一個實施例中,控制器110由此調節其向電壓調節器(VR)接口 135請求的電壓,VR接口 135使得電壓調節器130基於當前溫度調節提供給處理器140的電壓。在一個實施例中,處理器110通過在需要時(諸如在處理器溫度下降時)將額外電壓加給處理器140來進行電壓調節。因為額外電壓是在其被需要時且不是在最差情況場景模型中被加給處理器140的,當處理器140較熱時不需要施加電壓,藉此減少處理器140的功耗,並且減少圖1的系統100和圖6-9的系統所用的總體功耗。此外,在較低溫度下(例如,當處理器140較冷時)源自處理器140的矽的能量洩露較低,因此,在較低溫度下所加的電壓被處理器140更為高效地使用。
[0021]在一個實施例中,控制器110利用當前溫度、處理器140的一個或多個參數、以及所需的工作頻率,來確定動態電壓調節。在一個實施例中,控制器110從一個或多個熱傳感器120獲得處理器140的當前溫度。在一個實施例中,熱傳感器120報告處理器140的每個核的溫度數據。在一個實施例中,控制器110進一步獲得處理器140的電壓、頻率和溫度參數125。在一個實施例中,參數125描述了在處理器的製造和測試期間所產生的處理器140的工作屬性。在一個實施例中,基於參數125、從熱傳感器(多個)120獲得的處理器140的當前溫度、處理器的期望工作頻率、以及處理器140的其他內部限制項,控制器110針對當前工作點決定將被施加給處理器140的電壓。在一個實施例中,基於處理器140的工作頻率和溫度的逆向依賴性來調節電壓。
[0022]在一個實施例中,控制器110向電壓調節器接口 135通知所確定的電壓調節。在一個實施例中,電壓調節器接口 135利用一個或多個電壓控制方法來使用電壓調節器130將處理器變換至所確定的電壓設定。在一個實施例中,電壓調節器接口 135利用用於控制電壓調節器130的電壓控制方法,例如,串行電壓識別(SVID)接口,其用於從可完全可控的SVID兼容的電壓調節器130動態地請求將要施加給處理器140的不同電壓。在另一個實施例中,電壓調節器130可以是不太昂貴的半混合的(sem1-fixed)電壓調節器,其中VR接口 135通過在VR接口 135和電壓調節器130之間切換一個或多個接線連接而在若干分立的電壓水平間移動。
[0023]在一個實施例中,控制器110基於用於電壓最小值的截止溫度閾值來確定電壓調節。就是說,當處理器140的溫度超過給定閾值溫度時,電壓調節器130可施加更低的電壓。然而,當處理器140的溫度低於溫度閾值時,電壓調節器130可施加更高的電壓。在一個實施例中,電壓調節器130基於當前溫度和期望的工作頻率而動態地將電壓切換得更高或更低,從而維持處理器140的工作特性。例如,圖1IA例示了當控制器110決定什麼電壓應被施加給處理器140時控制器110所使用的示例性溫度閾值曲線。圖1lA描繪了圖表,X軸是頻率,y軸是電壓。在一個實施例中,例示了用於最小電晶體速度電壓的熱和冷閾值曲線1102,1104以及用於最小處理器陣列電壓的熱和冷閾值曲線1112、1114。在所例示的實施例中,閾值曲線可以基於處理器140在製造、測試時確定的規格、設計規格等。在一個實施例中,控制器110確定用於電晶體速度和處理器陣列電壓最小值的不同電壓調節,從而選擇將滿足兩個最小值的單個調節。在一個實施例中,當電晶體速度和處理器陣列具有不同的逆向溫度依賴性關係時,分開的處理優化了處理器140的功率利用和性能。
[0024]在另一個實施例中,如圖1lB中所示,可求解用於電晶體速度和陣列的冷電壓曲線和熱電壓曲線。在這個實施例中,通過取圖1lA的冷電晶體速度Vmin曲線1102和冷處理器陣列Vmin曲線1104的最大值並且取圖1lA的熱電晶體速度Vmin曲線1112和熱處理器陣列Vmin曲線1114的最大值,來解析這些曲線從而獲得圖1lB的解析出的冷Vmin曲線1152和解析出的熱Vmin曲線1154。如果電晶體速度和處理器陣列最小值都將被組合到單一電壓/頻率曲線中並隨後以組合ITD調節法來調節,則結果將是添加至最差情況電壓最小值的最差情況電壓調節。通過使用添加至最差情況電壓最小值的最差情況電壓調節,比所需電壓更多的電壓將被添加至處理器,從而導致能量使用方面的低效。然而,在一個實施例中,針對電晶體速度和處理器陣列電壓,控制器110分別確定基於基線Vmin和逆向溫度依賴性調節所要求的最終電壓,並隨後選擇這二者中較高者作為處理器140的最終電壓。在一個實施例中,控制器110所選擇的最終電壓滿足基於圖1lA的兩個曲線1152、1154的四個閾值。在一個實施例中,結果是節約提供給處理器140的能量的最佳情況電壓調節。
[0025]在一個實施例中,當處理器140處於空閒狀態時,控制器110進一步執行施加給處理器140的電壓的動態調節。在一個實施例中,控制器110施加足夠的功率以允許處理器140的寄存器保持它們的狀態和存儲在所述寄存器內的多個狀態變量,但是不提供用以處理操作的充足功率。在一個實施例中,控制器110確定將要施加給處理器140用於保持(即,沒有活動的零頻率)的電壓調節,該電壓調節對應於保持在空閒狀態中的處理器140。通過基於溫度是否高於或低於閾值而在若干分立的電壓水平間切換,或基於溫度的連續函數而調節電壓,控制器110不需要基於冷溫度的最差情況場景為了保持的目的而將電壓添加給處理器140。相反,如本文所討論的,控制器110基於逆向溫度依賴性和電壓最小值而動態調節電壓。在一個實施例中,由此使得處理器140的功耗即便在處理器處於空閒狀態時變得更為有效率。
[0026]在一個實施例中,也可以使用半固定的電壓調節器來管理處理器140的逆向溫度依賴性,所述半固定的電壓調節器一般被用於將若干靜態電壓水平中的一個提供給處理器140或計算機處理系統(例如,圖6-9中的計算機處理系統)中的特定供電平面(powerplane)。例如,通常向處理器140中的系統代理供電平面提供若干靜態電壓水平中的一個,但是基於溫度高於或低於分立的閾值,可上調/下調系統代理的電壓。基於給定的溫度和閾值,控制器110可在分立的水平之間調節VR接口 135的被請求電壓。在一個實施例中,電壓調節器接口 135作出的調節包括:切換電壓調節器接口 135的一個或多個固定連線,以使得電壓基於處理器140的當前溫度而被調高或調低。在一個實施例中,然而,可根據本文所述的實施例來向系統代理提供功率。
[0027]圖2例示了用於基於給定溫度動態調節電壓的方法200的一個實施例。方法200是由處理邏輯執行的,處理邏輯可包括硬體(電路、專用邏輯等)、軟體(例如,運行在通用計算機系統上或專用機器上)、固件、或其組合。
[0028]在一個實施例中,方法開始於處理邏輯接收處理器的溫度測量(處理框202)。在一個實施例中,由熱傳感器來提供溫度測量。在一個實施例中,溫度測量對應於處理器的當前溫度。在一個實施例中,處理器可以是活動的。
[0029]在另一個實施例中,處理器可以在空閒狀態中。
[0030]在一個實施例中,處理邏輯至少部分地基於溫度、同處理器相關聯的一組參數、和處理器的期望工作頻率,來確定對正在施加給處理器的電壓的調節。在一個實施例中,所述一組參數是對應於在處理器的製造和測試期間所確定的電壓、頻率和溫度工作參數的參數。在一個實施例中,處理邏輯利用所述一組參數和期望的工作頻率來基於當前溫度在上電壓閾值和下電壓閾值之間調節電壓。在一個實施例中,閾值定義為使處理器以給定頻率和溫度工作而應該被施加給處理器的最小電壓。圖1lA和IIB例示可被處理邏輯所使用的示例性Vmin閾值曲線。
[0031 ] 在一個實施例中,處理邏輯向電壓調節器(處理框206)提供電壓調節。在一個實施例中,電壓調節致使正被施加給處理器的電壓從當前電壓變換到在處理框204所確定的電壓。
[0032]在本文所討論的實施例中,動態電壓調節實現了處理器,以及處理器置於其中的處理系統的更為有效的功率利用。例如,本文所討論的動態電壓調節實現了當處理器降溫時添加額外電壓給處理器,但當處理器是熱的時未必施加該額外電壓。然而,由於在較低溫度下施加的較高電壓被較低的溫度(因為處理器中的漏洩功率在較低溫度時下降了)所補償,總體功耗可不受影響。
[0033]示例性核架構、處理器和計算機架構
[0034]可以不同的方式、出於不同目的、且在不同處理器中實現諸處理器核。
[0035]例如,這樣的核的實現可以包括:1)旨在用於通用計算的通用有序核;2)旨在用於通用計算的高性能通用無序核;3)主要旨在用於圖形和/或科學(吞吐量)計算的專用核。不同處理器的實現可包括:包括預期用於通用計算的一個或多個通用有序核和/或預期用於通用計算的一個或多個通用無序核的CPU ;以及2)包括主要預期用於圖形和/或科學(吞吐量)的一個或多個專用核的協處理器。這樣的不同處理器導致不同的計算機系統架構,其可包括:1)在與CPU分開的晶片上的協處理器;2)在與CPU相同的封裝中但分開的管芯上的協處理器;3)與CPU在相同管芯上的協處理器(在該情況下,這樣的協處理器有時被稱為諸如集成圖形和/或科學(吞吐量)邏輯等的專用邏輯,或被稱為專用核);以及4)可以將所描述的CPU (有時被稱為應用核或應用處理器)、以上描述的協處理器和附加功能包括在同一管芯上的片上系統。接著描述示例性核架構,隨後描述示例性處理器和計算機架構。
[0036]示例性核架構
[0037]有序和無序核框圖
[0038]圖3A是示出根據本發明的實施例的示例性有序流水線和示例性寄存器重命名的亂序發布/執行流水線二者的框圖。圖3B是示出根據本發明的實施例的要包括在處理器中的有序架構核的示例性實施例和示例性的寄存器重命名、無序發布/執行架構核的框圖。圖3A-B中的實線框示出了有序流水線和有序核,而虛線框中的可選附加項示出了寄存器重命名的、無序發布/執行流水線和核。考慮到有序方面是無序方面的子集,將描述無序方面。
[0039]在圖3A中,處理器流水線300包括提取(fetch)級302、長度解碼級304、解碼級306、分配級308、重命名級310、調度(也稱為分派或發布)級312、寄存器讀取/存儲器讀取級314、執行級316、寫回/存儲器寫入級318、異常處理級322和提交級324。
[0040]圖3B示出了包括耦合到執行引擎單元350的前端單元330的處理器核390,且執行引擎單元和前端單元兩者都耦合到存儲器單元370。核390可以是精簡指令集合計算(RISC)核、複雜指令集合計算(CISC)核、超長指令字(VLIW)核、或混合或替代核類型。作為又一選項,核390可以是專用核,諸如例如網絡或通信核、壓縮引擎、協處理器核、通用計算圖形處理器單元(GPGPU)核、圖形核等等。[0041]前端單元330包括耦合到指令高速緩存單元332的分支預測單元334,該指令高速緩存單元334被耦合到指令轉換後備緩衝器(TLB) 336,該指令轉換後備緩衝器336被耦合到指令獲取單元338,指令獲取單元338被耦合到解碼單元340。解碼單元340 (或解碼器)可解碼指令,並生成從原始指令解碼出的、或以其他方式反映原始指令的、或從原始指令導出的一個或多個微操作、微代碼進入點、微指令、其他指令、或其他控制信號作為輸出。解碼單元340可使用各種不同的機制來實現。合適的機制的示例包括但不限於查找表、硬體實現、可編程邏輯陣列(PLA)、微代碼只讀存儲器(ROM)等。在一個實施例中,核390包括存儲(例如,在解碼單元340中或否則在前端單元330內的)特定宏指令的微代碼的微代碼ROM或其他介質。解碼單元340耦合至執行引擎單元350中的重命名/分配器單元352。
[0042]執行引擎單元350包括重命名/分配器單元352,該重命名/分配器單元352耦合至引退單元354和一個或多個調度器單元(多個)356的集合。調度器單元(多個)356表示任何數目的不同調度器,包括預留站(reservations stations)、中央指令窗等。調度器單元(多個)356被耦合到物理寄存器組(多個)單元(多個)358。每個物理寄存器組(多個)單元(多個)358表示一個或多個物理寄存器組,其中不同的物理寄存器組存儲一種或多種不同的數據類型,諸如標量整數、標量浮點、打包整數、打包浮點、矢量整數、矢量浮點、狀態(例如,作為要執行的下一指令的地址的指令指針)等。在一個實施例中,物理寄存器組(多個)單元358包括矢量寄存器單元、寫掩碼寄存器單元和標量寄存器單元。這些寄存器單元可以提供架構矢量寄存器、矢量掩碼寄存器、和通用寄存器。物理寄存器組(多個)單元(多個)358與引退單元354重疊以示出可以用來實現寄存器重命名和無序執行的各種方式(例如,使用記錄器緩衝器(多個)和引退寄存器組(多個);使用將來的文件(多個)、歷史緩衝器(多個)和引退寄存器組(多個);使用寄存器映射和寄存器池等等)。引退單元354和物理寄存器組(多個)單元(多個)358被耦合到執行群集(多個)360。執行群集(多個)360包括一個或多個執行單元362的集合和一個或多個存儲器訪問單元364的集合。執行單元362可以執行各種操作(例如,移位、加法、減法、乘法),以及對各種類型的數據(例如,標量浮點、打包整數、打包浮點、向量整數、向量浮點)執行。儘管某些實施例可以包括專用於特定功能或功能集合的多個執行單元,但其他實施例可包括全部執行所有函數的僅一個執行單元或多個執行單元。調度器單元(多個)356、物理寄存器組(多個)單元(多個)358和執行群集(多個)360被示為可能有多個,因為某些實施例為某些類型的數據/操作(例如,標量整型流水線、標量浮點/打包整型/打包浮點/矢量整型/矢量浮點流水線,和/或各自具有其自己的調度器單元、物理寄存器組(多個)單元和/或執行群集的存儲器訪問流水線一以及在分開的存儲器訪問流水線的情況下,實現其中僅該流水線的執行群集具有存儲器訪問單元(多個)364的某些實施例)創建分開的流水線。還應當理解,在分開的流水線被使用的情況下,這些流水線中的一個或多個可以為無序發布/執行,並且其餘流水線可以為有序發布/執行。
[0043]存儲器訪問單元364的集合被耦合到存儲器單元370,該存儲器單元372包括耦合到數據高速緩存單元374的數據TLB單元376,其中該數據高速緩存單元374耦合到二級(L2)高速緩存單元376。在一個示例性實施例中,存儲器訪問單元364可包括加載單元、存儲地址單元和存儲數據單元,其中的每一個均耦合至存儲器單元370中的數據TLB單元1372。指令高速緩存單元334還耦合到存儲器單元370中的二級(L2)高速緩存單元376。L2高速緩存單元376被耦合到一個或多個其他級的高速緩存,並最終耦合到主存儲器。
[0044]作為示例,示例性寄存器重命名的、無序發布/執行核架構可以如下實現流水線300:1)指令獲取338執行取指和長度解碼級302和304 ;2)解碼單元340執行解碼級306 ;3)重命名/分配器單元352執行分配級308和重命名級310 ;4)調度器單元(多個)356執行調度級312 ;5)物理寄存器組(多個)單元(多個)358和存儲器單元370執行寄存器讀取/存儲器讀取級314 ;執行群集360執行執行級316 ;6)存儲器單元370和物理寄存器組(多個)單元(多個)358執行寫回/存儲器寫入級318 ;7)各單元可牽涉到異常處理級322 ;以及8)引退單元354和物理寄存器組(多個)單元(多個)358執行提交級324。
[0045]核390可支持一個或多個指令集合(例如,x86指令集合(具有與較新版本一起添加的某些擴展);加利福尼亞州桑尼維爾市的MIPS技術公司的MIPS指令集合;加利福尼州桑尼維爾市的ARM控股的ARM指令集合(具有諸如NEON等可選附加擴展)),其中包括本文中描述的各指令。在一個實施例中,核390包括支持打包數據指令集合擴展(例如,AVX1、AVX2)的邏輯,由此允許被許多多媒體應用使用的操作將使用打包數據來執行。
[0046]應當理解,核可支持多線程化(執行兩個或更多個並行的操作或線程的集合),並且可以按各種方式來完成該多線程化,此各種方式包括時分多線程化、同步多線程化(其中單個物理核為物理核正同步多線程化的各線程中的每一個線程提供邏輯核)、或其組合(例如,時分取指和解碼以及此後諸如用Intel?超線程化技術來同步多線程化)。
[0047]儘管在無序執行的上下文中描述了寄存器重命名,但應當理解,可以在有序架構中使用寄存器重命名。儘管所例示的處理器的實施例還包括分開的指令和數據高速緩存單元334/374以及共享L2高速緩存單元376,但替換實施例可以具有用於指令和數據兩者的單個內部高速緩存,諸如例如一級(LI)內部高速緩存或多個級別的內部緩存。在某些實施例中,該系統可包括內部高速緩存和在核和/或處理器外部的外部高速緩存的組合。或者,所有高速緩存都可以在核和/或處理器的外部。
[0048]具體的示例性有序核架構
[0049]圖4A-B示出了更具體的示例性有序核架構的框圖,該核將是晶片中的若干邏輯塊之一(包括相同類型和/或不同類型的其他核)。這些邏輯塊通過高帶寬的互連網絡(例如,環形網絡)與某些固定的功能邏輯、存儲器I/o接口和其它必要的I/O邏輯通信,這依賴於應用。
[0050]圖4A是根據本發明的各實施例的單個處理器核連同它與管芯上互連網絡402的連接以及其二級(L2)高速緩存404的本地子集的框圖。在一個實施例中,指令解碼器400支持具有打包數據指令集合擴展的x86指令集。LI高速緩存406允許對高速緩存存儲器的低等待時間訪問進入標量和矢量單元。儘管在一個實施例中(為了簡化設計),標量單元408和矢量單元410使用分開的寄存器集合(分別為標量寄存器412和矢量寄存器414),並且在這些寄存器之間轉移的數據被寫入到存儲器並隨後從一級(LI)高速緩存406讀回,但是本發明的替換實施例可以使用不同的方法(例如使用單個寄存器集合,或包括允許數據在這兩個寄存器組之間傳輸而無需被寫入和讀回的通信路徑)。
[0051]L2高速緩存的本地子集404是全局L2高速緩存的一部分,該全局L2高速緩存被劃分成多個分開的本地子集,即每個處理器核一個本地子集。每個處理器核具有到其自己的L2高速緩存404的本地子集的直接訪問路徑。被處理器核讀出的數據被存儲在其L2高速緩存子集404中,並且可以被快速訪問,該訪問與其他處理器核訪問它們自己的本地L2高速緩存子集並行。被處理器核寫入的數據被存儲在其自己的L2高速緩存子集404中,並在必要的情況下從其它子集清除。環形網絡確保共享數據的一致性。環形網絡是雙向的,以允許諸如處理器核、L2高速緩存和其它邏輯塊之類的代理在晶片內彼此通信。每個環形數據路徑為每個方向1012比特寬。
[0052]圖4B是根據本發明的各實施例的圖4A中的處理器核的一部分的展開圖。圖4B包括LI高速緩存404的LI數據高速緩存406A部分,以及關於矢量單元410和矢量寄存器414的更多細節。具體地說,矢量單元410是16寬矢量處理單元(VPU)(見16寬ALU428),該單元執行整型、單精度浮點以及雙精度浮點指令中的一個或多個。該VPU支持通過混合單元420混合寄存器輸入、通過數值轉換單元422A-B進行數值轉換,以及通過複製單元424進行對存儲器輸入的複製。寫掩碼寄存器426允許判定(predicating)所得的矢量寫入。
[0053]具有集成存儲器控制器和圖形器件的處理器
[0054]圖5是根據本發明的實施例的可具有一個以上的核、可具有集成存儲器控制器、並且可具有集成圖形功能的處理器500的方框圖。圖5的實線框示出了處理器500,處理器500具有單個核心502A、系統代理(agent) 510、一組一個或多個總線控制器單元516,而可選附加的虛線框示出了替代的處理器500,其具有多個核心502A-N、系統代理單元510中的一組一個或多個集成存儲器控制器單元514以及專用邏輯508。
[0055]因此,處理器500的不同實現可包括:I) CPU,其中專用邏輯508是集成圖形和/或科學(吞吐量)邏輯(其可包括一個或多個核),並且核502A-N是一個或多個通用核(例如,通用的有序核、通用的無序核、這兩者的組合);2)協處理器,其中核502A-N是主要旨在用於圖形和/或科學(吞吐量)的大量專用核;以及3)協處理器,其中核502A-N是大量通用有序核。因此,處理器500可以是通用處理器、協處理器或專用處理器,諸如例如網絡或通信處理器、壓縮引擎、圖形處理器、GPGPU (通用圖形處理單元)、高吞吐量的集成眾核(MIC)協處理器(包括30個或更多核)、或嵌入式處理器等。該處理器可以被實現在一個或多個晶片上。處理器500可以是一個或多個襯底的一部分,和/或可以使用諸如例如BiCMOSXMOS或NMOS等的多個加工技術中的任何一個技術將其實現在一個或多個襯底上。
[0056]存儲器層次結構包括在各核內的一個或多個級別的高速緩存、一組或一個或多個共享高速緩存單元506、以及耦合至集成存儲器控制器單元514的集合的外部存儲器(未示出)。該共享高速緩存單元506的集合可以包括一個或多個中間級高速緩存,諸如二級(L2)、三級(L3)、四級(L4)或其他級別的高速緩存、末級高速緩存(LLC)、和/或其組合。儘管在一個實施例中,基於環的互連單元512將集成圖形邏輯508、共享高速緩存單元506的集合以及系統代理單元510/集成存儲器控制器單元(多個)514互連,但替代實施例可使用任何數量的公知技術來將這些單元互連。在一個實施例中,在一個或多個高速緩存單元506與核502-A-N之間維持相干性。
[0057]在某些實施例中,核502A-N中的一個或多個核能夠多線程化。系統代理510包括協調和操作核502A-N的那些組件。系統代理單元510可包括例如功率控制單元(P⑶)和顯示單元。P⑶可以是或包括調整核502A-N和集成圖形邏輯508的功率狀態所需的邏輯和組件。顯示單元用於驅動一個或多個外部連接的顯示器。
[0058]核502A-N在架構指令集合方面可以是同構的或異構的;8卩,這些核502A-N中的兩個或更多個核可以能夠執行相同的指令集合,而其他核可以能夠執行該指令集合的僅僅子集或不同的指令集合。
[0059]示例性計算機架構
[0060]圖6-9是示例性計算機架構的框圖。本領域已知的對膝上型設備、臺式機、手持PC、個人數字助理、工程工作站、伺服器、網絡設備、網絡集線器、交換機、嵌入式處理器、數位訊號處理器(DSP)、圖形設備、視頻遊戲設備、機頂盒、微控制器、蜂窩電話、可攜式媒體播放器、手持設備以及各種其他電子設備的其他系統設計和配置也是合適的。一般來說,能夠含有本文中所公開的處理器和/或其它執行邏輯的大量系統和電子設備一般都是合適的。
[0061]現在參考圖6,所示出的是根據本發明一個實施例的系統600的框圖。系統600可以包括一個或多個處理器610、615,這些處理器耦合到控制器中樞620。在一個實施例中,控制器中樞620包括圖形存儲器控制器中樞(GMCH) 690和輸入/輸出中樞(IOH) 650 (其可以在分開的晶片上);GMCH690包括存儲器和圖形控制器,存儲器640和協處理器645耦合到該圖形控制器;10H650將輸入/輸出(I/O)設備660耦合到GMCH690。替換地,存儲器和圖形控制器中的一個或兩個集成在處理器(如本文中所描述的)內,存儲器640和協處理器645直接耦合到處理器610,且控制器中樞620與10H650在單一晶片中。
[0062]附加處理器615的可選性質用虛線表不在圖6中。每一處理器610、615可包括本文中描述的處理核中的一個或多個,並且可以是處理器500的某一版本。
[0063]存儲器640可以是例如動態隨機存取存儲器(DRAM)、相變存儲器(PCM)或這兩者的組合。對於至少一個實施例,控制器中樞620經由諸如前側總線(FSB)之類的多分支總線(mult1-drop bus)、諸如快速通道互連(QPI)之類的點對點接口、或者類似的連接695與處理器610、615進行通信。
[0064]在一個實施例中,協處理器645是專用處理器,諸如例如高吞吐量MIC處理器、網絡或通信處理器、壓縮引擎、圖形處理器、GPGPU、或嵌入式處理器等等。在一個實施例中,控制器中樞620可以包括集成圖形加速器。
[0065]按照包括體系結構、微體系結構、熱、功耗特徵等等優點的度量譜,物理資源610、915之間存在各種差別。在一個實施例中,處理器610執行控制一般類型的數據處理操作的指令。嵌入在這些指令中的可以是協處理器指令。處理器610將這些協處理器指令識別為應當由附連的協處理器645執行的類型。因此,處理器610在協處理器總線或者其他互連上將這些協處理器指令(或者表示協處理器指令的控制信號)發布到協處理器645。協處理器(多個)645接受並執行所接收的協處理器指令。
[0066]現在參照圖7,所示出的是根據本發明實施例的更具體的第一示例性系統700的框圖。如圖7所示,多處理器系統700是點對點互連繫統,並包括經由點對點互連750耦合的第一處理器770和第二處理器780。處理器770和780中的每一個都可以是處理器500的某一版本。在本發明的一個實施例中,處理器770和780分別是處理器610和615,而協處理器738是協處理器645。在另一實施例中,處理器770和780分別是處理器610和協處理器645。
[0067]處理器770和780被示為分別包括集成存儲器控制器(MC)單元772和782。處理器770還包括作為其總線控制器單元的一部分的點對點(P-P)接口 776和778 ;類似地,第二處理器780包括點對點接口 786和788。處理器770、780可以使用點對點(P-P)電路778、788經由P-P接口 750來交換信息。如圖7所示,MC772和782將諸處理器耦合至相應的存儲器,即存儲器732和存儲器734,這些存儲器可以是本地附連至相應的處理器的主存儲器的一部分。
[0068]處理器770、780各自可使用點對點接口電路776、794、786、798經由單獨的P-P接口 752、754與晶片組790交換信息。晶片組790可以可選地經由高性能接口 738與協處理器739交換信息。在一個實施例中,協處理器738是專用處理器,諸如例如高吞吐量MIC處理器、網絡或通信處理器、壓縮引擎、圖形處理器、GPGPU、或嵌入式處理器等等。
[0069]共享高速緩存(未示出)可以被包括在兩個處理的任一個之內或被包括兩個處理器外部但仍經由P-P互連與這些處理器連接,從而如果將某處理器置於低功率模式時,可將任一處理器或兩個處理器的本地高速緩存信息存儲在該共享高速緩存中。
[0070]晶片組790可經由接口 796耦合至第一總線716。在一個實施例中,第一總線716可以是外圍部件互連(PCI)總線,或諸如PCI Express總線或其它第三代I/O互連總線之類的總線,但本發明的範圍並不受此限制。
[0071]如圖7所示,各種I/O設備714可以連同總線橋718耦合到第一總線716,總線橋718將第一總線716耦合至第二總線720。在一個實施例中,諸如協處理器、高吞吐量MIC處理器、GPGPU的處理器、加速器(諸如例如圖形加速器或數位訊號處理器(DSP)單元)、現場可編程門陣列或任何其他處理器的一個或多個附加處理器715被耦合到第一總線716。在一個實施例中,第二總線720可以是低引腳計數(LPC)總線。各種設備可以被耦合至第二總線720,在一個實施例中這些設備包括例如鍵盤/滑鼠722、通信設備727以及諸如可包括指令/代碼和數據730的盤驅動器或其它海量存儲設備的存儲單元728。此外,音頻I/0724可以被耦合至第二總線720。注意,其它體系結構是可能的。例如,取代圖7的點對點體系結構,系統可以實現多分支總線或其它這類體系結構。
[0072]現在參考圖8,示出了根據本發明的一個實施例的更具體的第二示例性系統800的方框圖。圖7和圖8中的相同部件用相同附圖標記表示,並從圖8中省去了圖7中的某些方面,以避免使圖8的其它方面變得難以理解。
[0073]圖8例示了處理器770、780可分別包括集成存儲器和I/O控制邏輯(CL) 772和782。因此,CL772、782包括集成存儲器控制器單元並包括I/O控制邏輯。圖8例示出,不僅存儲器732和734耦合至CL772、782,而且I/O設備814也耦合至控制邏輯772、782。傳統I/O設備815被耦合至晶片組790。
[0074]現在參照圖9,所示出的是根據本發明一個實施例的SoC900的框圖。在圖5中,相似的部件具有同樣的附圖標記。另外,虛線框是更先進的SoC的可選特徵。在圖9中,互連單元(多個)902被耦合至:應用處理器910,該應用處理器包括一個或多個核202A-N的集合以及共享高速緩存單元(多個)506 ;系統代理單元510 ;總線控制器單元(多個)516 ;集成存儲器控制器單元(多個)514 ;—組或一個或多個協處理器920,其可包括集成圖形邏輯、圖像處理器、音頻處理器和視頻處理器;靜態隨機存取存儲器(SRAM)單元930 ;直接存儲器存取(DMA)單元932 ;以及用於耦合至一個或多個外部顯示器的顯示單元940。在一個實施例中,協處理器(多個)920包括專用處理器,諸如例如網絡或通信處理器、壓縮引擎、GPGPU、高吞吐量MIC處理器、或嵌入式處理器等等。
[0075]本文公開的機制的各實施例可以被實現在硬體、軟體、固件或這些實現方法的組合中。本發明的實施例可實現為在可編程系統上執行的電腦程式或程序代碼,該可編程系統包括至少一個處理器、存儲系統(包括易失性和非易失性存儲器和/或存儲元件)、至少一個輸入設備以及至少一個輸出設備。
[0076]可將程序代碼(諸如圖7中示出的代碼730)應用於輸入指令,以執行本文描述的各功能並生成輸出信息。輸出信息可以按已知方式被應用於一個或多個輸出設備。為了本申請的目的,處理系統包括具有諸如例如數位訊號處理器(DSP)、微控制器、專用集成電路(ASIC)或微處理器之類的處理器的任何系統。
[0077]程序代碼可以用高級程序化語言或面向對象的程式語言來實現,以便與處理系統通信。程序代碼也可以在需要的情況下用彙編語言或機器語言來實現。事實上,本文中描述的機制不僅限於任何特定程式語言的範圍。在任一情形下,語言可以是編譯語言或解譯
;五古
P口口 ο
[0078]至少一個實施例的一個或多個方面可以由存儲在機器可讀介質上的代表性指令來實現,該指令表示處理器中的各種邏輯,該指令在被機器讀取時使得該機器製作用於執行本文所述的技術的邏輯。被稱為「IP核」的這些表示可以被存儲在有形的機器可讀介質上,並被提供給各種客戶或生產設施以加載到實際製造該邏輯或處理器的製造機器中。
[0079]這樣的機器可讀存儲介質可以包括但不限於通過機器或設備製造或形成的製品的非瞬態、有形配置,其包括存儲介質,諸如硬碟;任何其它類型的盤,包括軟盤、光碟、緊緻盤只讀存儲器(CD-ROM)、緊緻盤可重寫(CD-RW)的以及磁光碟;半導體器件,例如只讀存儲器(ROM)、諸如動態隨機存取存儲器(DRAM)和靜態隨機存取存儲器(SRAM)的隨機存取存儲器(RAM)、可擦除可編程只讀存儲器(EPROM)、快閃記憶體、電可擦除可編程只讀存儲器(EEPROM);相變存儲器(PCM);磁卡或光卡;或適於存儲電子指令的任何其它類型的介質。
[0080]因此,本發明的各實施例還包括非瞬態、有形機器可讀介質,該介質包含指令或包含設計數據,諸如硬體描述語言(HDL),它定義本文中描述的結構、電路、裝置、處理器和/或系統特性。這些實施例也被稱為程序產品。
[0081]仿真(包括二進位變換、代碼變形等)
[0082]在某些情況下,指令轉換器可用來將指令從源指令集轉換至目標指令集。例如,指令轉換器可以變換(例如使用靜態二進位變換、包括動態編譯的動態二進位變換)、變形(morph)、仿真或以其它方式將指令轉換成將由核來處理的一個或多個其它指令。指令轉換器可以用軟體、硬體、固件、或其組合實現。指令轉換器可以在處理器上、在處理器外、或者部分在處理器上部分在處理器外。
[0083]圖10是根據本發明的實施例的對照使用軟體指令轉換器將源指令集中的二進位指令轉換成目標指令集中的二進位指令的框圖。在所示的實施例中,指令轉換器是軟體指令轉換器,但作為替代該指令轉換器可以用軟體、固件、硬體或其各種組合來實現。圖10示出了用高級語言1002的程序可以使用X86編譯器1004來編譯,以生成可以由具有至少一個x86指令集核1016的處理器原生執行的x86 二進位代碼1006。具有至少一個x86指令集核1016的處理器表示任何處理器,這些處理器能通過兼容地執行或以其他方式處理以下內容來執行與具有至少一個x86指令集核的英特爾處理器基本相同的功能:1)英特爾x86指令集核的指令集的本質部分(substantial portion),或2)目標旨在在具有至少一個x86指令集核的英特爾處理器上運行的應用或其它程序的對象代碼版本,以便取得與具有至少一個x86指令集核的英特爾處理器基本相同的結果。x86編譯器1004表示用於生成x86 二進位代碼1006(例如,對象代碼)的編譯器,該二進位代碼1006可通過或不通過附加的可連結處理在具有至少一個x86指令集核1016的處理器上執行。類似地,圖10示出用高級語言1002的程序可以使用替代的指令集編譯器1008來編譯,以生成可以由不具有至少一個x86指令集核1014的處理器(例如具有執行加利福尼亞州桑尼維爾市的MIPS技術公司的MIPS指令集,和/或執行加利福尼亞州桑尼維爾市的ARM控股公司的ARM指令集的核的處理器)來原生執行的替代指令集二進位代碼1010。指令轉換器1012被用來將x86 二進位代碼1006轉換成可以由不具有x86指令集核1014的處理器原生執行的代碼。該經轉換的代碼不大可能與替換性指令集二進位代碼1010相同,因為能夠這樣做的指令轉換器難以製造;然而,轉換後的代碼將完成一般操作並由來自替換性指令集的指令構成。因此,指令轉換器1012表示:通過仿真、模擬或任何其它過程來允許不具有x86指令集處理器或核的處理器或其它電子設備得以執行x86 二進位代碼1006的軟體、固件、硬體或其組合。
[0084]同樣,儘管附圖中的流程圖示出本發明的某些實施例的特定操作順序,應該理解該順序是示例性的(例如,可選實施例可按不同順序執行操作、組合某些操作、使某些操作重置等)。
[0085]在以上描述中,出於解釋的目的,闡明了眾多具體細節以提供對本發明的實施例的透徹理解。然而,對本領域技術人員而言將是明顯的是,不用這些具體細節中的一些也可實踐一個或多個其他實施例。提供所描述的具體實施例不是為了限制本發明而是為了說明本發明的實施例。本發明的範圍不是由所提供的具體示例確定,而是僅由所附權利要求確定。
【權利要求】
1.一種用於高效能耗的裝置,包括: 處理器;以及 與所述處理器耦合的控制器,用於: 接收對應於所述處理器的當前溫度的溫度測量, 至少部分地基於所述溫度測量和所述處理器的多個內部限制來確定對正被施加給所述處理器的電壓的調整,其中所確定的對電壓的調整是基於所述處理器的工作頻率和電壓中的至少一項同溫度之間的逆向溫度依賴性關係的,以及將所確定的對電壓的調節提供給電壓調節器接口。
2.如權利要求1所述的裝置,其特徵在於,所確定的對電壓的調整進一步是基於同所述處理器相關聯的一組工作參數和所述處理器的期望工作頻率的。
3.如權利要求1所述的裝置,其特徵在於,所述處理器在空閒狀態,並且所確定的電壓調節對正在施加給所述處理器的當前電壓進行調節以使所述處理器得以維持多個狀態變量。
4.如權利要求1所述的裝置,其特徵在於,所述控制器為所述處理器的所述多個內部限制中的每一個確定單獨的電壓調節值,並且從所述單獨的電壓調節值中選擇將被提供給所述電壓調節器接口的 單一電壓調節。
5.如權利要求4所述的裝置,其特徵在於,所述多個內部限制包括電晶體速度電壓最小值和處理器陣列電壓最小值。
6.如權利要求1所述的裝置,其特徵在於,所述控制器基於所述當前溫度是否高於或低於溫度閾值而在若干分立電壓水平之間進行選擇。
7.如權利要求6所述的裝置,其特徵在於,所述電壓調節器接口通過在電壓調節器接口和半固定的電壓調節器之間切換一個或多個接線連接來在多個分立的電壓水平間移動。
8.一種用於高效能耗的方法,包括: 接收對應於處理器的當前溫度的溫度測量; 至少部分地基於所述溫度測量和所述處理器的多個內部限制來確定對正被施加給所述處理器的電壓的調整,其中所確定的對電壓的調整是基於所述處理器的工作頻率和電壓中的至少一項同溫度之間的逆向溫度依賴性關係的;以及將所確定的對電壓的調節提供給電壓調節器接口。
9.如權利要求8所述的方法,其特徵在於,所確定的對電壓的調節進一步是基於同所述處理器相關聯的一組工作參數和所述處理器的期望工作頻率的。
10.如權利要求8所述的方法,其特徵在於,所述處理器在空閒狀態,並且所確定的電壓調節對正在施加給所述處理器的當前電壓進行調節以使所述處理器得以維持多個狀態變量。
11.如權利要求8所述的方法,其特徵在於,所述控制器為所述處理器的所述多個內部限制中的每一個確定單獨的電壓調節值,並且從所述單獨的電壓調節值中選擇將被提供給所述電壓調節器接口的單一電壓調節。
12.如權利要求11所述的方法,其特徵在於,所述多個內部限制包括電晶體速度電壓最小值和處理器陣列電壓最小值。
13.如權利要求8所述的方法,其特徵在於,還包括:基於所述當前溫度高於或低於溫度閾值來在若干分立的電壓水平間進行選擇。
14.如權利要求13所述的方法,其特徵在於,所述電壓調節器接口通過在電壓調節器接口和半固定的電壓調節器之間切換一個或多個接線連接來在多個分立的電壓水平間移動。
15.一種包含指令的非瞬態計算機可讀存儲介質,所述指令在由處理系統執行時使所述處理系統執行一種方法,所述方法包括: 接收對應於處理器的當前溫度的溫度測量; 至少部分地基於所述溫度測量和所述處理器的多個內部限制來確定對正被施加給所述處理器的電壓的調整,其中所確定的對電壓的調整是基於所述處理器的工作頻率和電壓中的至少一項同溫度之間的逆向溫度依賴性關係的;以及將所確定的對電壓的調節提供給電壓調節器接口。
16.如權利要求15所述的計算機可讀存儲介質,其特徵在於,所述處理器在空閒狀態,並且所確定的電壓調節對正在施加給所述處理器的當前電壓進行調節以使所述處理器得以維持多個狀態變量。
17.如權利要求15所述的計算機可讀存儲介質,其特徵在於,所述控制器為所述處理器的所述多個內部限制中的每一個確定單獨的電壓調節值,並且從所述單獨的電壓調節值中選擇將被提供給所述電壓調節器接口的單一電壓調節。
18.如權利要求17所述的計算機可讀存儲介質,其特徵在於,所述多個內部限制包括電晶體速度電壓最小值和處理器陣列電壓最小值。
19.如權利要求15所述的計算機可讀存儲介質,其特徵在於,還包括: 基於所述當前溫度高於或低於溫度閾值來在若干分立的電壓水平間進行選擇。
20.如權利要求19所述的計算機可讀存儲介質,其特徵在於,所述電壓調節器接口通過在電壓調節器接口和半固定的電壓調節器之間切換一個或多個接線連接來在多個分立的電壓水平間移動。
【文檔編號】G06F9/46GK104011621SQ201280063043
【公開日】2014年8月27日 申請日期:2012年12月5日 優先權日:2011年12月22日
【發明者】R·D·威爾斯, U·薩松, I·M·索迪, S·加哈吉達 申請人:英特爾公司