具有相同的指令集架構(isa)的非對稱性能多核架構的制作方法
【專利摘要】描述了一種方法,該方法包括允許多核處理器的各核的操作,使得兩種核都用相同的指令集支持各自的軟件例程,在一組相同的所施加的供電電壓和工作頻率下,第一核比第二核具有更高的性能且消耗更多的功率。
【專利說明】具有相同的指令集架構(ISA)的非對稱性能多核架構
[0001]背景發(fā)明領域
[0002]本發(fā)明的領域通常涉及計算系統(tǒng)架構,且尤其涉及具有相同的指令集架構(ISA)的非對稱性能多核架構。
[0003]背景
[0004]圖1示出典型的多核處理器100_1。如圖1中可見,多核處理器100_1包括在相一半導體管芯100_1上的多個處理器核101_1到101_N。處理器核中的每一個通常包含用于緩存數(shù)據(jù)和/或指令的至少一個緩存層。交換組織結構102把處理器核101_1到101_N彼此互連起來,并將其互連到一個或多個附加的緩存層103_1到103_N。根據(jù)一種方法,處理器101_1到101_N和一個或多個緩存層具有內部一致性邏輯,例如,以便防止兩個不同的核并發(fā)地修改相同的數(shù)據(jù)項。
[0005]還包括系統(tǒng)存儲器接口(它也可以包括附加的一致性邏輯)104。在這里,如果核請求具有所需要的指令或數(shù)據(jù)項的特定的緩存線,并且,在任何緩存層中都找不到該緩存線,則把該請求提交給系統(tǒng)存儲器接口 104。如果所尋找的緩存線不在直接耦合到接口 104的系統(tǒng)存儲器105_1中,則通過系統(tǒng)網(wǎng)絡接口 106把該請求轉發(fā)給另一多核處理器,以便從其本地系統(tǒng)存儲器(例如,多核處理器100_X的系統(tǒng)存儲器105_X)取出所期望的數(shù)據(jù)/指令。在多處理器核100_1到100_X之間存在分組交換網(wǎng)絡107,以便支持這些種類的系統(tǒng)存儲器請求。
[0006]多處理器核上還包括到系統(tǒng)I/O組件108_1到108_Y的接口(例如,諸如硬盤驅動器、打印機、外部網(wǎng)絡接口等等的深度非易失性存儲)。這些接口可以采取諸如高速以太網(wǎng)接口和/或高速PCIe接口等的高速鏈路接口的形式。
[0007]一些多核處理器也可以具有到交換組織結構102的端口 105,以便向上擴展與相同的(也向上擴展的)緩存結構相關聯(lián)的處理器核的數(shù)量。例如,如圖1可見,多處理器核101_1和101_2通過交換組織結構端口 105耦合,以便有效地形成共享公共緩存結構的2Ν個核的平臺(處理器100_2通過到其交換組織結構的相似的端口耦合到處理器100_1)。
[0008]附圖簡述
[0009]在附圖的各圖中,作為示例而非限制闡釋本發(fā)明,附圖中,類似的標號指示相似的元素,且附圖中:
[0010]圖1示出多核處理器和周圍的計算機系統(tǒng)(現(xiàn)有技術);
[0011]圖2示出功率管理策略(現(xiàn)有技術);
[0012]圖3示出邏輯門驅動電路;
[0013]圖4示出具有支持相同的指令集的高功率核和低功率核的多核處理器;
[0014]圖5比較高功率核和低功率核的功率消耗;
[0015]圖6示出第一功率管理方法;
[0016]圖7示出第二功率管理方法;[0017]圖8示出一種設計方法。
[0018]詳細描述
[0019]概覽
[0020]詳細描述
[0021]計算系統(tǒng)功率消耗正變得越來越受到關注。因而,多種不同的功率管理方案被合并到現(xiàn)代計算系統(tǒng)中。通常,系統(tǒng)的功率管理組件將隨著系統(tǒng)的工作量增加而擴展系統(tǒng)的處理性能,且隨著系統(tǒng)的工作量減少而縮減系統(tǒng)的處理性能。由于系統(tǒng)的功率消耗與其性能能力強相關,降低系統(tǒng)的處理性能對應于功率節(jié)省。
[0022]隨工作量縮放處理性能和功率消耗的典型方式響應于系統(tǒng)工作量啟用/禁用整個核并提高/降低它們的供電電壓和工作頻率。例如,如圖2可見,在最大性能和功率消耗狀態(tài)201下,啟用所有核,且給每一核提供最大供電電壓和最大時鐘頻率。作為對比,在最小值性能和功率消耗狀態(tài)202下(此時仍然可以執(zhí)行程序代碼),僅啟用一個核。給該單個核提供最小供電電壓和最小工作頻率。
[0023]圖3中可見電子電路功率消耗的一些基本概念。在這里,觀察到邏輯門311的驅動電路310部分,驅動接下來的一個或多個邏輯門312。具體地,互連的邏輯門311、312的操作速度隨著其驅動晶體管302_1、302_2的寬度(對于每一晶體管,沿著垂直于電流方向的半導體表面進行測量)增加且隨著它驅動的線304的電容303(以及負載邏輯門312的輸入電容)減少而提高。在這里,為了把線上的電壓從邏輯低電平提高到邏輯高電平,需要由源晶體管302_1通過線驅動充分強的電流305,以便快速把電荷施加到電容303 (且由此提高線上的電壓)。類似地,為了把線上的電壓從邏輯高電平降低到邏輯低電平,需要由吸收晶體管302_2通過線“吸收”充分強的電流306,以便從電容快速抽取電荷(且由此降低線上的電壓)。
[0024]本質上,晶體管302_1、302_2將提供/吸收的電流量是它們各自的寬度的函數(shù)。即是說,晶體管越寬,它們將提供/吸收的電流就越多。此外,晶體管302_1、302_2將提供/吸收的電流量也是圖3中可見的施加到驅動電路310的供電電壓VCC的函數(shù)。本質上,供電電壓越高,提供/吸收電流就越強。
[0025]更進一步,晶體管將能夠向電容器施加/從其抽取電荷的速度是正在被驅動的線304的電容303的尺寸的函數(shù)。具體地,當電容304增加時,晶體管將更慢地施加/抽取電荷,且當電容304減少時,更快地施加/抽取電荷。線的電容304基于其物理尺度。即是說,線更長和更寬,電容304增加,相反,線更短和更窄,電容304減少。一旦制成了電路,線本身是固定尺度。然而,線寬度和線長度是設計師必須考慮的設計參數(shù)。線的寬度不能太過狹窄,否則它將具有增加線的阻抗的影響,這也將減慢向電容器施加/從其抽取電荷的速度。
[0026]最終的速度因素是線上的信號本身的頻率。本質上,相比于具有較慢的時鐘信號的電路,用更快的時鐘信號驅動的電路將更快地在向線電容304施加/從其抽取電荷之間切換。在這里,更快速的切換對應于更快地發(fā)送二進制信息的電路。
[0027]以上所描述的用于增加施加/抽取電容器上的電荷的速度的所有因素也引起消耗更多功率的電路。即是說,被設計成具有相對寬的源/吸收晶體管、高的供電電壓、短的負載線且接收更高頻率的時鐘信號的電路將操作得更快,且因此相比于與這些相同的參數(shù)定位相反的電路消耗更多的功率。[0028]回憶圖1和圖2的討論,注意,已經(jīng)在其組成核相同的處理器上實現(xiàn)現(xiàn)有技術的多核處理器功率管理方案。即是說,參見圖1,核101_1到101_N中在設計上全部都是相同的。在其他方法中,核不是等同的,而且是根本不同。具體地,核中的一個是低功率核,但是,通過相比于其他核剝離相當大量的邏輯電路來實現(xiàn)較低功率特性。更具體地,所剝離的相當大量的邏輯電路對應于執(zhí)行程序代碼指令的邏輯。換句話說,相比于較高性能核,低功率核支持精簡指令集。然而,這種方法的問題在于,系統(tǒng)軟件難以調整在具有不同的指令集的處理器核之間的切換操作。
[0029]圖4描述其中核401中的至少一個被設計為具有較低性能且因此比處理器中的其他核402消耗較少功率的新方法。然而,(各)較低功率核401具有與(各)較高功率核402相同的邏輯設計,且因此支持與(各)高功率核402相同的指令集403。(各)低功率核401取得較低功率設計點,通過具有比(各)較高功率核更狹窄的驅動晶體管寬度和/或具有其他功率消耗相關的設計特征,例如以上相對于圖3所描述的那些中的任何,它們與較高功率核中的相同的設計特征相反地定位。
[0030]根據(jù)一種方法,下面更詳細地討論的,在設計多處理器核時,把相同的高級描述(例如,相同的VHDL或Verilog描述)用于(各)較高性能/功率核和(各)較低性能/功率核兩者。然而,在把高級描述綜合到RTL網(wǎng)表時,對于從RTL網(wǎng)表到晶體管級網(wǎng)表的隨后綜合,相比于(各)高功率核,把不同的技術庫用于(各)低功率核。如上面提到的,相比于與用于高功率核的庫相關聯(lián)的“相同的”邏輯門的“相同的”晶體管,與用于(各)低功率核庫相關聯(lián)的邏輯門的驅動晶體管具有更狹窄的各自寬度。
[0031]在多處理器的設計方面,參見圖5,相比于(各)較高功率核,(各)較低功率核呈現(xiàn)出固有的較低功率消耗(和處理性能)。即是說,對于相同的所施加的時鐘或工作頻率,例如,因為其更狹窄驅動晶體管寬度,較低功率核將比較高功率核消耗較少的功率。然而,因為更狹窄驅動晶體管寬度,較低功率核具有比較高功率核的最大工作頻率更少的最大工作頻率。
[0032]然而,較低功率核的重要之處在于,多處理器可以接受與已經(jīng)存在的功率管理策略相同/相似但仍然在較低/最低的性能/功率狀態(tài)中實現(xiàn)甚至更低的功率消耗的功率管理策略。具體地,簡要回憶起圖2的功率狀態(tài)202,其中僅剩下一個核可操作(禁用剩余的核)。在這里,如果一個剩余的可操作核是低功率核,則處理器將呈現(xiàn)出比現(xiàn)有技術低功率狀態(tài)202甚至更低的功率消耗。
[0033]圖5中可直接觀察所減少的功率節(jié)省的量503。在這里,回憶起在對于圖2的現(xiàn)有技術低功率狀態(tài)202討論的多處理器中所有處理器都是相同的。因而,即使供電電壓和操作電壓被減少到最小值,功率消耗也將消耗較高功率處理器(例如,具有較寬的驅動晶體管寬度)的功率。這一操作點由圖5的點504表示。作為對比,在改進的多處理器的最低功率操作狀態(tài)中,如果可操作核是低功率核,則它將消耗由圖5的點505表示的功率。因而,改進的處理器比現(xiàn)有技術多處理器在較低/最低的性能操作狀態(tài)處呈現(xiàn)出相對較低的功率消耗,然而,與此同時,完全地支持軟件被設計為對其操作的指令集架構。
[0034]圖6示出可以例如借助于在多處理器(或另一多處理器或分離的控制器等等)上運行的功率管理軟件執(zhí)行的功率管理過程流。相反地,完全可以在多處理器上的硬件中或由這樣的硬件和軟件的某種組合執(zhí)行圖6的功率管理過程流。[0035]根據(jù)圖6的過程流,從其中至少一些高功率處理器核和(各)低功率核正在操作的初始狀態(tài)601開始,響應于多處理器的需求的持續(xù)下降,每當需求的持續(xù)下降到低于某個接下來的更低的閾值時,禁用另一高功率核。例如,在具有十六個核的多處理器核中,其中十四個核是高功率核且兩個核是低功率核,初始狀態(tài)601可以對應于其中高功率核中的七個和兩個低功率核都操作的狀態(tài)。
[0036]響應于對多處理器設置的持續(xù)降低的需求,對于每一個新的更低的需求閾值602,將逐一禁用七個高功率核。舉例來說,如在插圖610所見,需求水平611調整七個高功率核和兩個低功率核的啟用。當需求連續(xù)下降到接下來的更低的閾值612時,禁用高功率核中的一個613,留下六個可操作的高功率核和兩個低功率核。
[0037]在禁用高功率核之前,作為設計者的選擇,核的自己的工作頻率,或經(jīng)啟用的高功率核中的全部(或一些)的工作頻率,或經(jīng)啟用的高功率核和低功率核中的全部(或一些)的工作頻率,可以被降低到一個或多個更低的工作頻率水平。
[0038]對于施加到核的供電電壓,存在相似的設計者的選擇。即是說,在禁用高功率核之前,作為設計者的選擇,核的自己的供電電壓,或經(jīng)啟用的高功率核中的全部(或一些)的供電電壓,或經(jīng)啟用的高功率核和低功率核中的全部(或一些)的供電電壓,可以被降低到一個或多個較低的供電電壓。供電電壓可以與工作頻率的降低結合而降低,或者,可以如上所述降低這些參數(shù)中的僅一個或者一個都不降低。
[0039]最終,隨著需求的繼續(xù)下降,在需求的下降到低于某種較低的閾值614之后,將禁用最后剩余的高功率核615。這僅留下低功率核操作。當需求在水平614下繼續(xù)下降時,可以同樣地降低(各)低功率核的工作頻率和/或供電電壓。隨著需求的繼續(xù)下降,繼續(xù)與需求的下降到低于每一接下來的更低的需求閾值604相似的禁用核的過程,直到多處理器核僅保留一個低功率核作為其唯一操作核6 O 6。
[0040]在其中處理器僅具有一個較低功率核的實現(xiàn)中,當然,隨著最后的高功率核的禁用達到狀態(tài)606。再次,當需求繼續(xù)下降時,可以降低唯一剩余低功率核的供電電壓和/或工作頻率。重要的是,在如以上所描述的狀態(tài)606中,相比于具有相同的功率管理方案但其組成核全都是高功率核的其他多處理器核,多處理器將呈現(xiàn)出更低的功率消耗。如果給唯一操作低功率核提供比施加用到高功率核的最低的工作供電電壓和/或工作頻率更低的供電電壓和/或更低的工作頻率,在狀態(tài)606中可以提供甚至更低的功率消耗。
[0041]在禁用了所有高功率核之后,在系統(tǒng)僅在(各)低功率核上運行時,不需要由應用軟件、虛擬機或虛擬機監(jiān)視器或者為它們做出專門的調整。再次,跨越系統(tǒng)中的所有核保留了相同的指令核,這對應于從軟件的角度來看對底層核的透明性。借助于較低的核,可以實現(xiàn)較低的性能,但關于指令流的內容的專門調整是不必要的。在各種備選的實現(xiàn)中:1)硬件/機器可讀的固件可以監(jiān)視和控制核組合;或者,2)該硬件可以放棄對操作系統(tǒng)的控制,且使它監(jiān)視需求并控制核組合。
[0042]圖7實質上示出了以上所描述的倒轉。如圖7可見,從其中僅單個低功率核操作的狀態(tài)701開始,當多處理器上的需求連續(xù)地增加時,啟用額外的低功率核(如果有更多的話)702。最終,啟用高功率核703。值得注意的是,相比于從操作的高功率處理器啟用接下來的處理器所需要的需求閾值,從操作的低功率處理器啟用接下來的處理器所需要的需求閾值可以對應于較低的需求增量。[0043]即是說,插圖710示出,在面臨增加的需求時,在首次啟用低功率處理器之后觸發(fā)接下來的處理器的啟用所需要的需求711的增加。在面臨增加的需求時,在首次啟用高功率處理器之后,觸發(fā)接下來的高功率處理器的啟用所需要的需求712的增加大于前述需求711。這是因為高功率處理器可以比低功率處理器處理更多的總需求,且因此不必像低功率處理器那樣必須得到附加的“幫助”。
[0044]以邏輯上與以上相對于核的啟用所描述的相反的方式,在面臨增加的需求時,也可以結合核的啟用增加工作頻率和/或供電電壓。
[0045]圖8示出用于設計與以上所描述的原理一致的多核處理器的設計過程。作為設計過程的一部分,處理器的核中的每一個的高級行為描述800 (例如,VHDL或Verilog描述)被綜合到寄存器傳輸級(RTL)網(wǎng)表801。借助于對應于較高功率/性能設計(例如具有較寬的驅動晶體管的邏輯電路)的庫,RTL網(wǎng)表被綜合802到相應的(多個)較高功率核門級網(wǎng)表(每一高功率核一個網(wǎng)表)。借助于對應于較低功率/性能設計(例如具有較寬的驅動晶體管的邏輯電路)的庫,RTL網(wǎng)表也被綜合803到相應的(多個)較低功率核門級網(wǎng)表(每一低功率核一個網(wǎng)表)。在這里,高功率和低功率核的邏輯設計是相同的,但它們的相應的邏輯電路的設計具有不同的性能/功率設計要點。
[0046]然后,把各個核的晶體管電平網(wǎng)表用作執(zhí)行各自的放置、布線和時序分析806和設計布局807的基礎。在這里,由于通過邏輯電路以及在邏輯電路之間的較大的可允許傳播延時,較低功率/性能核可以具有較不嚴格的放置和時序原則。換句話說,從圖3的討論回憶起較長負載線得到較慢的上升時間和下降時間,較低的性能核可以準許在晶體管和門之間的較長的負載線,這是因為這些核被設計為具有較慢的操作(當然,如果負載線被增加得太多,并且包括更狹窄的驅動晶體管,則性能的下降會比所期望的更多)。
[0047]在完成布局和時序分析之后,就根據(jù)清潔制造接地規(guī)則檢查808清理各核以便生產(chǎn)。
[0048]以上討論教示的進程可利用程序代碼執(zhí)行,諸如機器可執(zhí)行指令,其導致機器執(zhí)行這些指令以實現(xiàn)某些功能。在這種背景下,“機器”可以是將中間形式(或抽象)指令轉換成處理器專用指令(例如,抽象執(zhí)行環(huán)境,諸如“虛擬機”(例如,Java虛擬機)解釋器、公共語言運行時、高級語言虛擬機等)的機器和/或設置在被設計成執(zhí)行指令的半導體芯片中的電子電路(例如以晶體管實現(xiàn)的“邏輯電路”),諸如通用處理器和/或專用處理器。以上討論示教的進程還可通過設計成執(zhí)行進程(或其一部分)的電子電路來執(zhí)行(替換機器或與機器組合),而不執(zhí)行程序代碼。
[0049]相信以上討論示教的進程也可按各種軟件部署框架(例如微軟公司的.NET、Mono、Java,甲骨文公司的Fusion等)支持的各種面向對象或非面向對象的計算機編程語言(例如,Java、C#、VB、Python、C、C++、J#、APL、Cobol、Fortran、Pascal、Perl 等)在源級程序代碼中描述。源極程序代碼可被轉換成中間形式的程序代碼(諸如Java字節(jié)代碼、微軟中間語言等),可將其理解為抽象執(zhí)行環(huán)境(例如,Java虛擬機、公共語言運行時、高級語言虛擬機、解釋器等),或者可直接編譯成對象代碼。
[0050]根據(jù)各種方法,通過I)編譯中間形式的程序代碼(例如在運行時(例如JIT編譯器)),2)解釋中間形式的程序代碼或3)在運行時編譯中間形式的程序代碼和解釋中間形式的程序代碼的組合,抽象執(zhí)行環(huán)境可將中間形式的程序代碼轉換成處理器專用代碼。抽象執(zhí)行環(huán)境可運行在各種操作系統(tǒng)上(諸如UNIX、LINUX、包括Windows族的微軟操作系統(tǒng)、包括MacOS X的蘋果計算機操作系統(tǒng)、Sun/Solaris、OS/2、Novell等)。
[0051]制品可用于存儲程序代碼。存儲程序代碼的制品可體現(xiàn)為但不限于一個或多個存儲器(例如,一個或多個閃存、隨機存取存儲器(靜態(tài)、動態(tài)或其它))、光盤、CD-ROM、DVDROM、EPROM、EEPR0M、磁或光卡或適于存儲電子指令的其它類型的機器可讀介質。還可從遠程計算機(例如,服務器)將程序代碼作為體現(xiàn)在傳播介質中的數(shù)據(jù)信號(例如,經(jīng)由通信鏈路(例如,網(wǎng)絡連接))下載至請求計算機(例如,客戶機)。
[0052]在上述說明書中,已參考本發(fā)明具體示例實施例描述了本發(fā)明。然而,顯然可對這些實施例作出各種修改和改變,而不背離如所附權利要求所述的本發(fā)明的更寬泛精神和范圍。
【權利要求】
1.一種包括多個核的多核處理器,所述多個核支持相同的指令集,其中,對于相同的所施加的工作頻率和供電電壓,所述核中的至少一個核由相比于所述核中的至少一個其他核的相同的相應邏輯門消耗更少功率的邏輯門構成。
2.如權利要求1所述的所述多核處理器,其特征在于,所述消耗更少功率的邏輯門具有比所述核的至少一個其他核的相同的相應邏輯門更狹窄的邏輯門驅動晶體管。
3.如權利要求1所述的所述多核處理器,其特征在于,存在由所述消耗更少功率的邏輯門構成的至少兩個核。
4.如權利要求1所述的所述多核處理器,其特征在于,所述核中的僅一個由所述消耗更少功率的邏輯門構成。
5.如權利要求1所述的所述多核處理器,進一步包括在所述核和系統(tǒng)存儲器接口之間的交換組織結構。
6.一種方法,包括: 操作多核處理器的各啟用核,使得兩種核都用相同的指令集支持各自的軟件例程,在一組相同的所施加的供電電壓和工作頻率下,第一核比第二核具有更高的性能且消耗更多的功率。
7.如權利要求6所述的方法,進一步包括: 響應于提供給所述多核處理器的較低的需求,禁用所述第一核,但保留所述第二核可操作。
8.如權利要求7所述的方法,進一步包括在禁用所述第一核之后響應于提供給所述多核處理器的較高的需求啟用所述第一核。
9.如權利要求8所述的方法,其特征在于,所述方法進一步包括: 在檢測到提供給所述多核處理器的需求的第一下降之后,禁用所述第一核; 在檢測到提供給所述多核處理器的需求的第一上升之后,啟用所述第一核,與所述第一下降相關聯(lián)的需求量大于與所述第二下降相關聯(lián)的需求量。
10.如權利要求6所述的方法,其特征在于,所述第一核的操作包括用比所述第二核中的相應晶體管寬度更寬的晶體管寬度驅動負載線。
11.如權利要求6所述的方法,進一步包括響應于提供給所述多核處理器的較低的需求降低所述第一核的供電電壓和/或工作頻率。
12.如權利要求6所述的方法,進一步包括響應于提供給所述多核處理器的較高的需求提高所述第一核的供電電壓和/或工作頻率。
13.如權利要求6所述的方法,進一步包括: 響應于施加到所述多核處理器的需求的下降,禁用所述第一核;以及, 響應于施加到所述多核處理器的需求的追加下降,降低所述第二核的供電電壓和/或工作頻率。
14.一種包含程序代碼的機器可讀介質,在由機器處理時,所述程序代碼引起執(zhí)行一種方法,所述方法包括: 操作多核處理器的各啟用核,使得兩種核都用相同的指令集支持各自的軟件例程,在一組相同的所施加的供電電壓和工作頻率下,第一核比第二核具有更高的性能且消耗更多的功率;響應于提供給所述多核處理器的較低的需求,禁用所述第一核,但保留所述第二核可操作;
15.如權利要求14所述的機器可讀介質,其特征在于,所述方法進一步包括在禁用所述第一核之后響應于提供給所述多核處理器的較高的需求啟用所述第一核。
16.如權利要求15所述的機器可讀介質,其特征在于,所述方法進一步包括: 在檢測到提供給所述多核處理器的需求的第一下降之后,禁用所述第一核; 在檢測到提供給所述多核處理器的需求的第一上升之后,啟用所述第一核,與所述第一下降相關聯(lián)的需求量大于與所述第二下降相關聯(lián)的需求量。
17.如權利要求14所述的機器可讀介質,其特征在于,所述方法進一步包括響應于提供給所述多核處理器的較低的需求降低所述第一核的供電電壓和/或工作頻率。
18.如權利要求14所述的機器可讀介質,其特征在于,所述方法進一步包括響應于提供給所述多核處理器的較高的需求提高所述第一核的供電電壓和/或工作頻率。
19.如權利要求14所述的機器可讀介質,其特征在于,所述方法進一步包括: 響應于施加到所述多核處理器的需求的下降,禁用所述第一核;以及 響應于施加到所述多核處理器的需求的追加下降,降低所述第二核的供電電壓和/或工作頻率。
【文檔編號】G06F15/80GK104011704SQ201280063860
【公開日】2014年8月27日 申請日期:2012年12月6日 優(yōu)先權日:2011年12月22日
【發(fā)明者】G·瓦格斯, S·S·加哈吉達, D·T·馬爾 申請人:英特爾公司