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