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