專利名稱:用于支持具有眾核的計量客戶端的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明的實施例一般涉及眾核處理環(huán)境,并且更具體地,涉及為了多
個客戶端同時使用而對眾核平臺的資源進行分區(qū),或者將額外的容量分區(qū) 給單個客戶端。
背景技術(shù):
存在多種機制用于在單個計算設(shè)備上支持多個客戶端。在主機上的一 些傳統(tǒng)方法包括客戶端分時操作,其中,每次實際僅運行一個進程,但是 每個客戶端的進程接收到一部分可用處理時間。用于多個客戶端在單個計 算設(shè)備上運行的其它方法包括使用具有虛擬機監(jiān)視器的虛擬機用于對設(shè)備 進行控制并且激活進程。
已知的用于在許多用戶之間共享計算設(shè)備的現(xiàn)有模型為因特網(wǎng)咖啡館 模型。在該商業(yè)方法中, 一些計算設(shè)備共同位于咖啡館或者其它商業(yè)設(shè)施 中。用戶通常由時間限制來付費使用并且登錄到計算設(shè)備。當(dāng)用戶完成時, 可以重啟計算設(shè)備,為另一個用戶登錄和使用資源做準(zhǔn)備。然而,由于重 啟需要顯著的資源停用時間,所以其效率較低。例如,隨著具有眾核平臺 和更快處理器的單個平臺上的計算資源增加,單個用戶平臺在這種類型的 環(huán)境中將趨向于未充分使用。
現(xiàn)有的因特網(wǎng)咖啡館模型需要具有單個機器/用戶。單個用戶平臺引起 可管理開銷并且例如,很難縮放以便在每個用戶前面提供臺式個人計算機
(PC)。設(shè)備的開銷也是另一個問題。由于通常用戶與所使用的處理器和外
圍設(shè)備共同在一起,所以硬件的安全可能也是問題。
根據(jù)本發(fā)明的下列詳細說明,本發(fā)明的特征和優(yōu)點將變得顯而易見,
其中圖1是方框圖,其根據(jù)本發(fā)明的實施例對用于具有帶外微控制器的多
用戶眾核平臺的示例性拓?fù)溥M行了說明;
圖2是方框圖,其根據(jù)本發(fā)明的實施例對平臺的眾核結(jié)構(gòu)進行了說明; 圖3A是方框圖,其根據(jù)本發(fā)明的實施例對可管理引擎的通信和控制進
行了說明;
圖3B是方框圖,其根據(jù)本發(fā)明的實施例對如圖3A中所示的多個內(nèi)核 之間的控制和通信進行了說明;
圖4是根據(jù)本發(fā)明的實施例的對等互連系統(tǒng)的方框圖5是流程圖,其根據(jù)本發(fā)明的實施例對平臺初始化和會話分配過程 進行了說明;以及
圖6是方框圖,其根據(jù)本發(fā)明的實施例對嵌入式分區(qū)平臺結(jié)構(gòu)進行了 說明。
具體實施例方式
本發(fā)明的實施例是涉及為了為典型地具有多于8個處理內(nèi)核的平臺利 用多核技術(shù)以便為多個客戶端提供計量客戶端使用的系統(tǒng)和方法,其中多 核也公知為眾核。在下面說明的背景中,將內(nèi)核理解為在單個插槽上的處 理器內(nèi)的處理單元。例如,插槽內(nèi)的處理器可以在處理器內(nèi)具有8個內(nèi)核 或計算節(jié)點。這不同于在單個插槽內(nèi)具有單個處理器的多處理器系統(tǒng)。平 臺可以是多處理器和多核。例如,多處理器平臺可以具有4個多核處理器, 每個多核處理器在單個插槽內(nèi)。在4插槽平臺中,每個插槽具有一個4核 處理器,平臺上有效的處理單元數(shù)目將是16。在可替換的實施例中描述了 用于同時使多個客戶端能夠安全接入平臺的其它商業(yè)模型。
在至少一個實施例中,本發(fā)明旨在使用與管理員或者管理控制臺的帶 外通信來將平臺上的內(nèi)核和資源分區(qū)并且指派給多個用戶或者客戶端。例 如,可以指派給不同會話或客戶端的資源包括處理內(nèi)核、存儲器和I/O 設(shè)備。在實施例中,可以為不同的客戶端/會話分配不同的資源數(shù)目。
說明書中提及本發(fā)明的"一個實施例"或"實施例"意味著結(jié)合實施 例所描述的特定特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一個實施例中。因 此,在貫穿說明書的各個位置出現(xiàn)的詞語"在一個實施例中"不必都指同一個實施例。
出于解釋的目的,為了提供對本發(fā)明的徹底理解,給出了特定結(jié)構(gòu)和 細節(jié)。然而,對于本領(lǐng)域的技術(shù)人員來說,可以不采用這里所提出的特定 細節(jié)來實現(xiàn)本發(fā)明的實施例,這將是顯而易見的。此外,為了不掩蓋本發(fā) 明,可以省略或者簡化公知的特征。通過該說明可以給出多個例子。這些 僅僅是對本發(fā)明特定實施例的說明。本發(fā)明的范圍不限于所給出的例子。
在諸如包含因特網(wǎng)咖啡館模型的新興市場中的計量計算環(huán)境可以具有
客戶端中心位置服務(wù)支持,其中該客戶端具有諸如從Intel公司可獲得的眾 核能力。規(guī)劃或者未來將部署具有眾核技術(shù)的一些平臺,以便更好地利用 本發(fā)明的實施例。特別地,具有基于如從Intel公司可獲得的眾核CPU插 槽的本發(fā)明的實施例可以作為因特網(wǎng)咖啡館中(Ica伝) 一系列客戶端和可 選使用時間計量的主機。使用Microsoft FlexGo軟件可獲得另一種時間計 量應(yīng)用。在URL wwwfMicrosof^com/whdc/payasyougo/的公眾因特網(wǎng)上可 以找到關(guān)于該類型計量的更多信息。應(yīng)當(dāng)注意,在該文件內(nèi)的URL中以星 號代替句點,以防止無意的超鏈接。
本發(fā)明的實施例根據(jù)需求將系統(tǒng)資源分配給不同的客戶端會話。在現(xiàn) 有系統(tǒng)中,IBM系統(tǒng)FM按需擴容(Capacity on Demand)使用一種方法, 通過該方法系統(tǒng)管理者可以根據(jù)需求對不活躍處理能力進行激活。特別地, 在去激活狀態(tài)中平臺具有一些計算能力。當(dāng)平臺擁有者確定需要額外的容 量時,擁有者為一些容量增量增加向運營商付費,直到并包括在平臺上可 用的所有容量。運營商向管理者/擁有者發(fā)送授權(quán)代碼,并且管理者輸入代 碼以便激活額外的容量。典型地,可能需要重啟以便激活額外的容量。然 而,這種方法不在工作中將之前激活的獨立內(nèi)核和網(wǎng)絡(luò)資源分配給不同的 客戶端用于計量處理。此外,本發(fā)明的實施例可以動態(tài)地對內(nèi)核和其它資 源進行分配和重新分配。 在 URL www-03*ibm*com/systems/i/hardware/cod/index.html的公眾因特網(wǎng)上可以找 到IBM系統(tǒng)iTM按需擴容的更多信息。
本發(fā)明的實施例允許單個平臺利用相同的存儲器以及隔離為獨立機器 的處理器來支持32+個用戶;換言之,不需要第三方虛擬機監(jiān)視器。部署 有32個內(nèi)核的Intd⑧處理器是支持本發(fā)明實施例的新興結(jié)構(gòu)的代表,其中每個用戶保留眾核其中之一。應(yīng)該理解,可以在本發(fā)明的實施例中使用具
有超過1的任意數(shù)目內(nèi)核的處理器。在未來的輸入/輸出控制器中心(ICH's)
中運用復(fù)制I/O的能力、以及平臺資源層的分區(qū)能力、或者嵌入式分區(qū)結(jié) 仏佑士nA iV^一ti ^ttt^;
本發(fā)明的實施例可以利用具有硬件分區(qū)管理器的眾核處理器,以便將 特定存儲器、網(wǎng)絡(luò)1/0、以及處理器資源專用于指定因特網(wǎng)咖啡館用戶。每 個用戶僅僅訪問具有簡單屏幕和鍵盤/鼠標(biāo)輸入的終端。存儲器和處理器資 源的中心位置允許物理安全性??梢詫⒕哂斜姾颂幚砥鞯牡镀椒?wù)器保
存在Icaf6的加鎖櫥柜中,從而避免擔(dān)心用戶偷走計算系統(tǒng)組件。
本發(fā)明實施例的優(yōu)點源于孤立處理器和存儲器和NIC/客戶端會話的物 理安全性。這與使用操作系統(tǒng)(OS)處理/客戶端(易損壞內(nèi)核模式共享 brittle kernel-mode sharing)或虛擬機監(jiān)視器(VMM)結(jié)構(gòu)的現(xiàn)有服務(wù)器整 合形成對比。
圖1是方框圖,其根據(jù)本發(fā)明的實施例對用于具有帶外微控制器(OOB 微控制器)的多用戶眾核平臺的示例性拓?fù)溥M行了說明。平臺200包括處 理器201。可以經(jīng)由存儲控制中心203將處理器201連接到隨機訪問存儲器 205。處理器201可以是能夠執(zhí)行軟件的任何類型的處理器,例如微處理器、 數(shù)字信號處理器、微控制器等。雖然圖l僅僅示出了一個這種處理器201, 但是在平臺200中可以存在一個或多個處理器,并且處理器中的一個或多 個將包括多個內(nèi)核等。
還可以經(jīng)由輸入/輸出控制中心(ICH) 207將處理器201連接到I/O設(shè) 備??梢詫CH經(jīng)由低引腳數(shù)(LPC)總線202耦合到多種設(shè)備,例如超 級I/0控制器(SIO)、鍵盤控制器(KBC)、或者可信平臺模塊(TPM)。 例如,SIO可以訪問軟盤驅(qū)動器或工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(ISA)設(shè)備。在實施例中, 將ICH經(jīng)由串行外圍設(shè)備接口 (SPI)總線204耦合到非易失存儲器。非易 失存儲器可以是FLASH存儲器或靜態(tài)隨機訪問存儲器(SRAM)等。帶外 (OOB)微控制器210n可以出現(xiàn)在平臺200上。OOB微控制器210n可以 經(jīng)由總線212連接到ICH,典型地,總線212是外圍設(shè)備組件互連(PCI) 或者PCI express總線。還可以經(jīng)由SPI總線204將OOB微控制器與非易 失存儲器存儲(NV存儲)217耦合。NV存儲217可以是FLASH存儲器或靜態(tài)RAM (SRAM)等。在許多現(xiàn)有系統(tǒng)中,NV存儲是FLASH存儲器。
可以將OOB微控制器210n比作"微型"處理器。像全性能處理器一
樣,00B微控制器具有處理器單元211,其可以操作性耦合到高速緩存存
儲器215以及RAM和ROM存儲器213。 OOB微控制器可以具有內(nèi)置網(wǎng)絡(luò)
接口 227和到電源225的獨立連接,以便即使當(dāng)帶內(nèi)處理器201未激活時 化能夠^H千^抓誦信.
在實施例中,處理器在NV存儲217中具有基本輸入輸出系統(tǒng)(BIOS) 219。在其它實施例中,處理器從遠程設(shè)備(未示出)啟動,并且啟動向量 (指針)駐留在NV存儲217的BIOS部分219中。0OB微控制器210n可 以訪問NV存儲217的所有內(nèi)容,包括非易失存儲器的BIOS部分219和受 保護的部分221。在一些實施例中,可以采用Inte歸激活管理技術(shù)(iAMT) 保護存儲器的受保護部分221。在實施例中,基于基本地址寄存器(BAR) 中的芯片組選擇防止固件訪問NV存儲的部分211。在URL www*intel*com/technology/manage/iamt/的公眾因特網(wǎng)上可以找到關(guān)于 iAMT的更多信息。
由于可以通過OS內(nèi)運行的OS或應(yīng)用程序?qū)Ψ且资Т鎯ζ鞯腂IOS部 分219進行修改,所以可能易于受到惡意篡改攻擊。可以使用僅對OOB微 控制器可用的存儲器受保護區(qū)域221來存儲關(guān)鍵啟動向量或者其它信息, 而無篡改風(fēng)險。訪問NV存儲217的OOB微控制器側(cè)的唯一方式是通過經(jīng) 由經(jīng)過OOB微控制器的代理的確認(rèn),即簽名認(rèn)證等。本發(fā)明的實施例可以 利用非易失性存儲器217的硬件受保護區(qū)域221,并且使受保護的區(qū)域?qū)τ?OS不可訪問。
在一些實施例中,CMOS芯片223使系統(tǒng)適應(yīng)傳統(tǒng)固件。在這些傳統(tǒng) 系統(tǒng)中,可以以私有格式將啟動設(shè)置存儲在CMOS上,而不是存儲在諸如 FLASH存儲器的NV存儲中??梢詫MOS設(shè)置的快照存儲在己知位置中。 一些實施例可以具有FLASH存儲器217和CMOS 223。
在實施例中,可以根據(jù)在2004年10月12日由Rothman等遞交的題目 為"BUS COMMUNICATION EMULATION "的美國專利申請No. 10/964,355 (代理方案號P19896),實現(xiàn)在帶內(nèi)(主機處理器通信)和帶外 處理器之間傳送消息和數(shù)據(jù)的"信箱區(qū)"。OOB微控制器210n可以操作用于將包含指示的"消息"存儲在由OOB 微控制器210n和諸如主機計算機200的處理器201的計算機系統(tǒng)的處理器 共享的存儲器中。在所說明的實施例中,主機計算機200包括可以由處理 器201和OOB微控制器210n訪問的共享存儲器252。共享存儲器252可 以駐留在RAM 252a的保留區(qū)域,或者可以位于獨立的非易失存儲器存儲 252b中等。共享存儲器可以用作這些消息的信箱區(qū)。因此,在一個方面中, OOB微控制器210n可以將消息存儲在共享存儲器252中,或者從共享存 儲器252中取回消息,而與包括處理器201、操作系統(tǒng)和程序狀態(tài)在內(nèi)的主 機計算機200的狀態(tài)相獨立。因此,在所說明的實施例中,無論處理器201 正在初始化還是關(guān)閉,或者無論操作系統(tǒng)正在啟動、運行、失敗還是其它, OOB微控制器210n可以對共享存儲器252中的消息進行存儲或取回。
為了有助于這種獨立操作,在該例子中,可以獨立于包括處理器201 和主機存儲器205在內(nèi)的主機計算機200的主要組件,對控制器210n、共 享存儲器252、本地總線212以及其它合適的組件進行供電。共享存儲器 252可以是諸如FLASH存儲器或者靜態(tài)隨機訪問存儲器(SRAM)的非易 失(NV)存儲器。在下面更詳細描述的實施例中,0OB微控制器210n獨 立于操作系統(tǒng)或系統(tǒng)啟動程序而運行,使得OOB微控制器210n可以具有 其自身專用的控制電路、固件、操作系統(tǒng)等,以便獨立于主機計算機200 的剩余部分的狀態(tài)來對OOB微控制器210n的操作進行控制。應(yīng)該意識到, 控制器210n和其它組件的操作獨立程度(如果存在的話)可以根據(jù)具體應(yīng)
用而不同。
在本發(fā)明的實施例中,OOB微控制器210n在帶外與管理者或管理控 制臺程序進行通信,以便基于客戶端需求對眾核處理器的資源進行重新分 配。
圖2是方框圖,其對根據(jù)本發(fā)明實施例的平臺的眾核結(jié)構(gòu)以及如何在 多個用戶之間分配內(nèi)核進行了說明。雖然僅僅說明了兩個用戶/客戶端會 話,但是應(yīng)該理解,可以存在與平臺上的可用內(nèi)核或者資源一樣多的客戶 端會話。將平臺100說明為具有32個內(nèi)核110,但是應(yīng)該理解,可以在具 有任意數(shù)目內(nèi)核(多于一個)的平臺上實現(xiàn)本發(fā)明的實施例。將內(nèi)核110 連接到存儲控制中心(MCH) 120,其使能對系統(tǒng)存儲器130的控制以及與系統(tǒng)存儲器130的通信。示出了系統(tǒng)存儲器130的"截面圖",以便說明 多個客戶端會話可以僅訪問部分存儲器。例如,客戶端會話1僅訪問存儲 器部分131??蛻舳藭?僅訪問存儲器部分132。如下面更充分說明的, 在兩個和多個客戶端會話之間對存儲器進行完全隔離和保護。
如采用在孤立存儲器131處開始并且經(jīng)過客戶端會話1 (151)的實箭 頭線所說明的,分區(qū)4個內(nèi)核111用于會話1。如采用在孤立存儲器132 處開始并且經(jīng)過客戶端會話2 (152)的虛箭頭線所說明的,分區(qū)4個內(nèi)核 113用于會話2。在該例子中,24個內(nèi)核(115a-c)是未使用的,并且因此, 可用于額外的客戶端會話。將會話1和2示為經(jīng)由網(wǎng)絡(luò)適配器145連接到 網(wǎng)絡(luò)150,網(wǎng)絡(luò)適配器145耦合到輸入/輸出控制中心(ICH) 140的多個輸 入/輸出中心(IOH)。每個客戶端會話可以具有專用網(wǎng)絡(luò)控制中心145。在 一些實施例中,客戶端可以無線連接到平臺。
圖3A是對帶外處理器的通信和控制進行說明的方框圖,也可以將其稱 為"可管理引擎"(ME)。在該說明中,示出眾核處理器300具有內(nèi)核(處 理單元)以及L3高速緩存。鄰近所指派內(nèi)核的高速緩存對于策略模型是重 要的,其中該策略模型可以基于需求和當(dāng)前可用性自動分配資源。在實施 例中,管理者310,或者在一些情況下,自動管理控制臺311接收來自期望 在平臺上會話的用戶/客戶端的請求。在一些情況下,該請求是管理者將要 管理的面對面請求。在另一個實施例中,客戶端可以登錄到管理控制臺上, 并且做出電子請求,并且甚至在控制臺處經(jīng)由信用卡或者借記卡為計量時 間付費。
將管理者(以及控制臺)經(jīng)由IT網(wǎng)絡(luò)320通信耦合到帶外處理器(ME) 330。 ME可以具有許多內(nèi)部RMII (精簡媒體獨立接口)總線以及到平臺上 各個設(shè)備的連接,例如,到DDR2存儲器設(shè)備的雙數(shù)據(jù)速率2 (DDR2)總 線。將ME耦合到眾核處理器300,并且ME對將資源分區(qū)成各個安全客戶 端環(huán)境進行控制。應(yīng)該理解,可以直接或者經(jīng)由內(nèi)部私有總線將ME耦合 到眾核。如所說明的,在眾核的多個內(nèi)核和L3高速緩存周圍存在存儲器和 I/O層301。該層代表到外部存儲器的連接,并且I/O可以是PCI express (PCIe)總線。沒有在該圖中示出存儲器和I/0控制器。PCIe總線可以直 接從芯片連接??梢允褂弥苯哟鎯ζ骰ミB(DMI)總線將芯片連接到外圍設(shè)備控制器中心(PCH)??梢允褂肞CH代替ICH??梢曰谛酒妷汉?其它平臺參數(shù)使用其它結(jié)構(gòu)。
需要對資源進行有效地虛擬化或分區(qū),使得內(nèi)核集專用于單個客戶端 或用戶。再次參考圖2,將內(nèi)核分區(qū)成4核會話111、 12核會話或空閑115c、 6核會話或空閑115a、 6核會話或空閑115b、以及4核會話113。為了隔離 不同的內(nèi)核、存儲器和I/O集合,可以對包括但不局限于處理器之間的鏈 路/結(jié)構(gòu)/網(wǎng)絡(luò)的硬件進行編程。在該說明中,將平臺隔離成5個單獨處理實 體的等價體。 一旦被配置,每個處理實體或會話將具有系統(tǒng)存儲器130中 的專用存儲器、專用網(wǎng)絡(luò)適配器145等。在現(xiàn)有系統(tǒng)中,可以在啟動之前 對這種類型的隔離進行定義,并且這種類型的隔離可以保持靜態(tài)。在一些 實施例中,平臺僅允許一個用戶和會話,例如桌面型電腦模型,并且未使 用的內(nèi)核對用戶不可用直到完成了更多計量付費為止。然而,在本發(fā)明的 實施例中,可以對內(nèi)核進行動態(tài)分配,并且激活內(nèi)核和未激活內(nèi)核彼此安 全分離。 一旦授權(quán)用戶訪問額外的內(nèi)核,經(jīng)由重新分區(qū)使其可用。
再次參考圖3A, ME 330使得能夠在外部對眾核平臺進行管理,以便 根據(jù)需求改變平臺內(nèi)的內(nèi)核和資源的配置。在一個實施例中,平臺遵循基 于策略的分區(qū),即,該策略可以基于量入為出模型,其中, 一個或多個用 戶對有限量的計算能力(內(nèi)核和存儲器的數(shù)目)和有限量的計算時間進行 付費。如果用戶的工作量增大或減少,用戶可以請求資源的重新調(diào)整,以 及對那些計費資源的費用的類似的重新調(diào)整。ME330與平臺的芯片組進行 通信,以便發(fā)起資源分區(qū)的改變。
眾核芯片組300中的每個內(nèi)核350具有路由器、或者路由表351,其標(biāo) 識在任意給定時間將該內(nèi)核連接到哪個其它內(nèi)核。每個內(nèi)核還具有源地址 解碼器(SAD) 352,其告訴內(nèi)核可以使用哪部分存儲器。僅有那些被編程 到SAD內(nèi)的存儲器部分對于該內(nèi)核是可訪問的。每個內(nèi)核還可以具有信箱 區(qū)寄存器353,用于保存從ME接收的并且將被處理的信息。在一些實施例 中,內(nèi)核是X86處理單元。ME330對內(nèi)核的處理器上的路由表進行編程, 以便定義當(dāng)前連接。與ME 330 —致工作的超級特權(quán)固件對僅有該固件可以 訪問的處理器上的路由器、配置寄存器和存儲器控制器120進行編程???以在該說明書中使用術(shù)語配置寄存器來代表接口/組件,其中軟件訪問該接
13口/組件以便管理SAD/路由器/信箱區(qū)組件,例如可改變的任何SMM或ME 可見硬件。在內(nèi)核上執(zhí)行的操作系統(tǒng)不訪問芯片組的這些組件。將處理器 上的路由器配置用于定義將哪個內(nèi)核連接到哪個其它內(nèi)核、將哪個內(nèi)核連 接到哪個存儲器分區(qū)、以及將哪些內(nèi)核連接到哪些I/O設(shè)備。在眾核平臺 中,與其它類型網(wǎng)絡(luò)相比,將內(nèi)核與控制和數(shù)據(jù)線進行連接,但是該連接 內(nèi)置于芯片組。將內(nèi)核和存儲器控制器與僅有平臺固件可以訪問的寄存器 進行連接。John D.Owens等的題目為"Research Challenges For On-chip Interconnection"的文章(IEEE Computer Society. 0272-1732/07 2007)提供 了關(guān)于在兩個和多個內(nèi)核之間互連的一些額外信息。在URL doi*ieeecomputersociety*org/l 0.1109/MM.2007.91/的公眾因特網(wǎng)上也可以找 到該文章。
圖3B是方框圖,其根據(jù)本發(fā)明的實施例對多個內(nèi)核之間的控制和通信 進行了進一步說明。圖3B對根據(jù)本發(fā)明的實施例具有訪問控制邏輯的眾核 計算系統(tǒng)的所選方面進行了說明。系統(tǒng)300包括通過路由邏輯314互連的 許多內(nèi)核312。內(nèi)核312可以是通用處理器內(nèi)核、圖形內(nèi)核等。應(yīng)該意識到, 系統(tǒng)300可以包括幾乎任何數(shù)目的內(nèi)核(例如,2、 4、 8、 16、 32、 64、 128 等)。
路由邏輯314可以包括源地址解碼器(SAD) 352和/或用于互連內(nèi)核 312的路由表351。路由邏輯的多個方面可以是可配置的。例如,如何對物 理地址進行解碼可以是可配置的,并且/或者路由表中的值可以是可配置 的。
在一些實施例中,路由邏輯314的至少一些例子包括訪問控制邏輯316 和控制狀態(tài)寄存器(CSR) 318。訪問控制邏輯316可以確定是否授權(quán)代理 改變存儲在CSR318中的值。在一些實施例中,訪問控制邏輯316要求尋 求訪問CSR 318的代理提供與先前系統(tǒng)300內(nèi)提供的私有密鑰匹配的公共 密鑰。在可替換的實施例中,可以使用不同的機制對代理進行認(rèn)證。在一 些實施例中,訪問控制邏輯316使用加密認(rèn)證協(xié)議以便對代理進行認(rèn)證。 在一些實施例中,訪問控制邏輯316可以至少部分地在硬件中實現(xiàn)。在可 替換的實施例中,訪問控制邏輯316可以至少部分地在平臺微代碼中實現(xiàn)。
在實施例中,平臺還包括對等(pTp)互連技術(shù),有時也稱為公共系統(tǒng)接口 (CSI)結(jié)構(gòu)。CSI或者pTp系統(tǒng)處理器可以包括集成存儲器控制器,用于減少存儲器訪問反應(yīng)時間?,F(xiàn)在可以使用兩個到數(shù)百個這種處理器構(gòu)建服務(wù)器系統(tǒng)。在這種系統(tǒng)中,僅一個處理器執(zhí)行BIOS代碼以初始化存儲器和系統(tǒng)的其它部分。然而,隨著處理器和存儲器控制器的數(shù)目增加,對系統(tǒng)進行初始化并且啟動操作系統(tǒng)的機制通常采用擴展周期。因此,初始化可以在多個處理器之間并行進行。
pTp是可重新編程的互連,其中,通過不同的平臺代理進行重新編程,以便在平臺上提供、收集和分離不同計算資源池。
在一些基于pTp的多處理器系統(tǒng)中,所有處理器并行執(zhí)行BIOS代碼并且執(zhí)行內(nèi)置自檢(BIST)、存儲器初始化等,以便加快系統(tǒng)啟動時間。通過啟動捆綁處理器(BSP)對這些行為進行調(diào)整,以便從可以稱為應(yīng)用處理器(AP)的每個其它處理器中采集數(shù)據(jù),并且啟動操作系統(tǒng)。并行初始化增大了用于對存儲器和pTp鏈路進行初始化的計算需求。因此,將處理器高速緩存作為臨時數(shù)據(jù)存儲單元配置到處理器插槽,該臨時數(shù)據(jù)存儲單元也可以稱為RAM高速緩存(CAR),以助于存儲器中的BIST執(zhí)行和pTp初始化。
然而, 一個處理器中的臨時數(shù)據(jù)存儲單元不可以被其它處理器訪問。特別地,BSP不可以直接訪問AP臨時存儲單元以創(chuàng)建代表整個系統(tǒng)的全局源地址解碼器(SAD)入口。之前為了允許BSP創(chuàng)建全局SAD的工作包括使用配置空間寄存器("CSR")、 BSP和AP處理器都可以訪問的芯片組或非內(nèi)核寄存器作為用于交換數(shù)據(jù)的信箱區(qū)。
在實施例中,平臺可以具有配置用于使用pTp技術(shù)進行通信的多個處理器,并且單個插槽中的每個處理器具有許多配置用于如上所述目的的內(nèi)核。
圖4是根據(jù)示例性實施例的系統(tǒng)400的邏輯方框圖。系統(tǒng)400包括4個處理單元402、 406、 410和414。處理器406是啟動捆綁處理器(BSP)。處理器402、 406、 410、 414各自分別包括本地存儲器子系統(tǒng)404、 408、 412和416。系統(tǒng)400還包括兩個輸入/輸出中心IOH0 420和IOH 1 428。輸入/輸出中心420、428提供到諸如輸入/輸出控制中心(ICH)422和PCI Express424、 426的輸入/輸出設(shè)備的連接??梢允褂胮Tp分組執(zhí)行處理器到處理器以及處理器到輸入/輸出中心420、 428的通信。每個pTp組件包含路由表陣列(RTA)和SAD。 RTA將pTp分組路由信息提供給其它插槽。SAD提供了用于表示諸如存儲器、輸入/輸出等資源的路由的機制。每個處理器402、 406、 410、 414還包含目標(biāo)地址解碼器(TAD)。 TAD提供了用于將系統(tǒng)地址分別映射到處理器402、 406、 410、 414存儲器404、 408、 412、416地址的機制。
在基于鏈路的多處理器系統(tǒng)中,比如在系統(tǒng)400中,在系統(tǒng)400復(fù)位之后,基本輸入/輸出系統(tǒng)(BIOS)開始以并行方式從每個處理器402、 406、410、 414執(zhí)行。每個處理器402、 406、 410、 414執(zhí)行其自身的上電自檢(POST)并且對其各自域內(nèi)的組件比如本地鏈路、本地存儲器和附加本地設(shè)備進行初始化。每個處理器402、 406、 410、 414的初始化還對錯誤條件進行檢測。BIOS將也可以稱為插槽的該處理器402、 406、 410、 414的信息記錄到本地處理器存儲單元中,例如,取決于啟動階段和特定實施例存儲到RAM高速緩存(CAR)或者本地存儲器404、 408、 412、 416中。
然而,在系統(tǒng)400啟動期間,選擇處理器402、 406、 410、 414中的一個對整個系統(tǒng)400的啟動進行控制。將該處理器稱為啟動捆綁處理器(BSP)。在該例子中,處理器406是BSP。將其它處理器402、 406、 410、414稱為應(yīng)用處理器(AP)。
由BSP執(zhí)行的主要任務(wù)包括發(fā)現(xiàn)系統(tǒng)400拓?fù)洳⑶医TA,使得所有組件可以彼此進行通信,并且對其它處理器402、 406、 410、 414所記錄的基于插槽的信息進行同步。BSP還執(zhí)行剩余系統(tǒng)級別初始化,例如系統(tǒng)地址映射設(shè)置、輸入/輸出設(shè)備初始化等。還可以給BSP分派將操作系統(tǒng)加載到系統(tǒng)400上的任務(wù)。
同步步驟是重要的。同步步驟執(zhí)行許多功能,包括得到包括存儲器構(gòu)成、DIMM大小、存儲器大小和錯誤信息的信息,以便構(gòu)造全局系統(tǒng)400地址映射,并且同步步驟確定如何在系統(tǒng)400上分布存儲器。在設(shè)置系統(tǒng)400存儲器的地址之前對信息進行同步的常用方式是使用暫存寄存器
(scratch register)作為信箱區(qū)。信箱區(qū)可以包括2個暫存寄存器--個
暫存寄存器作為公共寄存器,BSP和AP可以通過該公共寄存器傳送命令信息,并且另一個用于交換數(shù)據(jù)??梢允褂闷渌ㄐ艡C制。本發(fā)明的實施例允許在單個插槽處理器上將內(nèi)核動態(tài)重新分配給虛擬機、或者用戶會話/環(huán)境的等價體。內(nèi)核的控制邏輯和寄存器定義了內(nèi)核與其它內(nèi)核、以及與存儲器的交互作用。通過對內(nèi)核的配置進行重新編程,可以生成環(huán)境(會話)的許多變換,以便提供可變多用戶環(huán)境,或者提供具有可變處理能力的單個環(huán)境。
在實施例中,由ME接收消息以便對具有1GB存儲器和2個網(wǎng)絡(luò)控制器的6內(nèi)核會話進行配置。隨后,ME可以在系統(tǒng)管理模式中(SMM)生成系統(tǒng)管理中斷,以便對路由器控制器進行重新編程。在其它實施例中,通過微代碼或者其它構(gòu)造來寫路由表。SMM代碼訪問路由控制器寄存器,但是操作系統(tǒng)(OS)不訪問。并發(fā)分區(qū)或會話可以同時運行。對于每個分區(qū),分區(qū)看起來是唯一的機器(例如,虛擬機或者會話)。將運行在分區(qū)上的OS與其它分區(qū)隔離,并且不直接訪問芯片組或者路由器控制器以便對平臺配置進行修改。OS也不訪問專用于其它分區(qū)或會話的存儲器或資源。
在實施例中,如在眾核300中的L3塊所示,可以通過將高速緩存存儲器分配給特定內(nèi)核來將其分配給分區(qū)。
一旦指示控制臺或者管理者授權(quán)用于會話的資源,就必須確定是否有充足的內(nèi)核可用于分配,可以經(jīng)由激活管理技術(shù)(AMT)對該計算進行精選,其中AMT報告了 ME可以經(jīng)由已指派處理器組件與未指派處理器組件關(guān)系的位圖進行追蹤的"未指派"內(nèi)核的可用性。在實施例中,控制臺將web服務(wù)簡單目標(biāo)訪問協(xié)議(SOAP)消息發(fā)送給ME,以便了解有多少內(nèi)核是未分配的。ME可以利用命令將SMI發(fā)送到芯片組寄存器,以請求與未分配內(nèi)核和資源有關(guān)的信息。ME有效地將帶內(nèi)消息發(fā)送到BIOS或固件,以便確定信息。如果ME需要與OS進行通信,則可以生成中斷。如果ME需要與固件進行通信, 一旦確定可用性,就可以生成SMI。 ME通過將SMI事件生成到寄存器內(nèi)或者寫入內(nèi)核的路由表內(nèi)來保存合適的資源。SMM讀取消息寄存器內(nèi)的信息,并且執(zhí)行適當(dāng)寫入到路由表。
在一些實現(xiàn)中,可以存在涉及可以在會話中合并哪個內(nèi)核、或者可以將哪個高速緩存連接到特定內(nèi)核的物理限制。ME可以具有預(yù)定的平臺策略,其指示這些限制并且驅(qū)動會話和分區(qū)的生成和分配。在一些情況下,充分鄰近的內(nèi)核可能不可用,或者可用的內(nèi)核可能不具有高速緩存連通性。在該情況下,在實施例中,ME可以使用平臺策略確定在假定當(dāng)前所分配資源情況下所請求的配置是否是可能的,以及是否對資源進行重新分配以便提供用于否則將不可用的會話。
在實施例中,當(dāng)ME確定需要重新分配以便生成最新請求的會話時,可以將用于停止在所分配的內(nèi)核上的所有處理的命令從ME發(fā)送到芯片組。添加或去除有問題的組件,并且對所有地址解碼器和路由器進行重新編程,即使是對于當(dāng)前分配給會話和處理應(yīng)用的內(nèi)核。該行為類似于熱插拔冗余單元(hot plugging redundant unit)在處理器上的可靠性、可用性和適用性(RAS)行為。然而,在該情況下,動態(tài)執(zhí)行重新分配用于每客戶端請求
的負(fù)載平衡而不是可靠性。
可以將內(nèi)核的應(yīng)用數(shù)據(jù)和狀態(tài)存儲在諸如系統(tǒng)管理RAM (SMRAM)
的全局可用存儲器空間內(nèi),或者將其發(fā)送到ME并且存儲在ME的臨時存儲器位置內(nèi)。對于更多事務(wù)方面(即,殘存電源循環(huán)),可以在重新分配操作之前由SMM將該狀態(tài)存儲到系統(tǒng)FLASH存儲器中,或者由ME將該狀態(tài)存儲到其隱蔽/保護的FLASH中,以及將"正在進行重新分配"標(biāo)記設(shè)置在狀態(tài)遷移附近。
圖5是流程圖,其根據(jù)本發(fā)明的實施例對平臺初始化和會話分配過程進行了說明。在方框501中重新啟動平臺。在方框503中初始化平臺。該初始化可以依據(jù)平臺的結(jié)構(gòu)而改變。例如,可以利用對等互連(pTp)實現(xiàn)平臺,以便支持分層協(xié)議方案。 一旦初始化,如在方框505中所確定的,如果僅存在一個可用內(nèi)核,那么在方框507中平臺是將要配置為本地主機的傳統(tǒng)平臺。在方框509中開始傳統(tǒng)模式。
如果平臺具有多個內(nèi)核,那么在方框511中確定是否利用許多網(wǎng)絡(luò)實現(xiàn)計量支持。如果是,那么在方框513中確定是否實現(xiàn)例如具有嵌入式分區(qū)的硬件分區(qū)。如果硬件分區(qū)可利用,那么在方框515中創(chuàng)建硬件、存儲器和網(wǎng)絡(luò)分區(qū)??赡軐⒙酚杀砗蚐AD初始化為默認(rèn)分區(qū)。如果已經(jīng)保存了最后一個己知的良好配置,則可以初始化到該最后一個已知的良好配置。在該初始化期間,固件指示應(yīng)該使用哪個分區(qū)配置。如果沒有實現(xiàn)硬件分區(qū),那么就在方框519中確定是否支持虛擬化。雖然虛擬化分區(qū)可以是可能的,但是下面不再進行更詳細討論。對于虛擬化和硬件分區(qū),隨后在方框517中向遠程控制臺告知平臺中資源的可用性。在實施例中,該告知受BIOS和ME影響,其中BIOS生成到ME的消息并且ME生成web服務(wù)消息以發(fā)送到控制臺(310/311)。在所有多核情景中,在方框521中進入計量客戶端處理模式。
當(dāng)新的客戶端進入咖啡廳或者其它環(huán)境中時,客戶端向管理者或者自動系統(tǒng)請求特定數(shù)量的計算能力。在自動模式中,客戶端可以在控制臺處經(jīng)由信用卡或者借記卡權(quán)利為計量使用付費。應(yīng)該理解,可以使用諸如手動鍵盤輸入、刷信用卡或者無線讀取智能卡等的各種方法輸入信息。在人接口的情況下,管理者將涉及所請求的資源的信息輸入控制臺。出于簡化的目的,將自動方法和初始人接口點都稱為"管理控制臺"。在方框527中管理控制臺經(jīng)由ME將請求發(fā)送到平臺,以確定內(nèi)核是否可用于指派給客戶端。如果內(nèi)核可用,如上所述,在方框529中對內(nèi)核和相關(guān)存儲器、高速緩存和I/O設(shè)備進行指派,并且對路由表和SAD進行適當(dāng)指派。隨后,客戶端可以開始使用指派給客戶端會話的無聲終端(i/o設(shè)備)。
如果所請求數(shù)目的內(nèi)核或者其它資產(chǎn)不是立即可用的,那么客戶端請求可以暫停,即被放到正在請求尚不可用的分配的客戶端隊列上。在方框531中確定其它客戶端會話是否暫停(即,用盡它們所分配的計量資源/時間)。如果沒有暫停,在方框523處處理繼續(xù),并且將要循環(huán)直到資源可用于所請求的客戶端會話為止??商鎿Q地,將平臺策略與所分配的內(nèi)核進行比較,并且可以發(fā)起對平臺資產(chǎn)的重新平衡,以便使得能夠創(chuàng)建客戶端會話。
當(dāng)存在耗盡其計量資源的一個或多個客戶端會話時,可以在方框533
中將空閑內(nèi)核、存儲器、高速緩存和i/o設(shè)備重新分配給新的客戶端會話。
如果不存在未決的新的客戶端請求,在方框525中系統(tǒng)進行監(jiān)控以便對空閑會話進行識別。如在方框535中所確定的,如果存在空閑會話(即,未使用所分配資源的會話)并且如果暫停請求是未決的,那么可以在方框537中對新的會話進行分配。在方框539中對內(nèi)核和其它資源進行重新分配。當(dāng)不存在未決的會話暫請請求時,處理在方框523處繼續(xù),以便等待新的請求。因為一些客戶端會話在人交互期間可能需要更少的資源,所以能夠在工作中在一個或多個客戶端會話之間對內(nèi)核進行重新分配,并且仍然能夠分發(fā)所請求的處理容量。這可以類似于預(yù)定過多的資源。然而,和 將過多的旅客移動到下一次飛行的預(yù)定過多商業(yè)航線運載相比,預(yù)定過多 的客戶端會話基本上在空閑時間期間使它們的資源來回交換。然而,在實 現(xiàn)允許預(yù)定過多的平臺策略之前必須謹(jǐn)慎,以便確保對于有效交換內(nèi)核和 其它資源有充足的空閑時間可用,而不對用戶性能造成顯著影響。在其它 情況下,空閑會話是指不再是活動的會話,并且可以任意對資源進行重新 分配。
如上所述,在兩個以及多個客戶端會話之間的資源負(fù)載平衡以及交換 空閑資源需要安全的存儲器,以便為客戶端會話臨時存儲處理數(shù)據(jù)??梢?br>
將該存儲器存儲耦合到ME,并且眾核處理器上的操作系統(tǒng)將不訪問它。
在另一個實施例中,用戶購買具有n個內(nèi)核的平臺。用戶為m個數(shù)目 的內(nèi)核付費,其中l(wèi)^m^n,并且將要激活m個內(nèi)核。當(dāng)對系統(tǒng)進行配置 時,對m個內(nèi)核和相關(guān)的資源進行激活。因此,內(nèi)核的路由表配置用于標(biāo) 識平臺中的激活資源。用戶可以僅使用激活的資源。如果用戶確定需要額 外的資源,那么可能需要對運營商進行額外付費,并且運營商可以通過對 內(nèi)核的路由表、SAD等進行重新編程來對平臺進行"升級"??梢詫ζ脚_進 行配置,使得本地管理者必須輸入密鑰以激活額外的內(nèi)核和資源。無論如 何,僅僅當(dāng)運營商已經(jīng)對升級進行授權(quán)時,才執(zhí)行SMI強制對路由表進行 重新編程等。應(yīng)該理解,可以使用各種技術(shù)以保護該命令。在現(xiàn)有系統(tǒng)中 已經(jīng)使用了類似的增加配置開銷模型用于處理器和存儲器升級,但是沒有 使用任何模型來激活單個插槽處理器上的獨立內(nèi)核。
在實施例中,平臺具有嵌入式分區(qū)結(jié)構(gòu),以便創(chuàng)建安全的處理器和其 它資源的硬件分區(qū)。該結(jié)構(gòu)還已知為平臺資源分層(PRL)結(jié)構(gòu)。在平臺 資源分層(PRL)結(jié)構(gòu)或者嵌入式分區(qū)結(jié)構(gòu)中,對平臺的各個組件進行增 強,以便使能處理器、存儲器和其它資源的分區(qū)。
現(xiàn)在參考圖6,示出了根據(jù)本發(fā)明的實施例具有PRL結(jié)構(gòu)的平臺600 的示例性方框圖。這是在因特網(wǎng)咖啡館中可以使用的結(jié)構(gòu)實例,其中,可 以將每個獨立處理器實例指派給指定的咖啡館店主。為了對分區(qū)進行更好 地說明,以實線方框畫出可用于主分區(qū)610的組件。以粗實線方框畫出可 用于嵌入式或者系統(tǒng)分區(qū)620的組件。以點劃線方框畫出可用于兩種分區(qū)的組件。
在該示例性實施例中,平臺具有插槽0-3 (631-634)中的4個多核處 理器。雖然該例子僅示出了 4個處理器插槽,但是對于本領(lǐng)域的技術(shù)人員 來說顯而易見的,可以使用處理器和內(nèi)核的各種配置來實現(xiàn)本發(fā)明的實施 例。例如,插槽0 (631)可以具有4個處理內(nèi)核635a-d。本質(zhì)上,在該例 子中,所說明的實施例在平臺上具有16個有效處理器(例如,每個插槽內(nèi) 具有4個內(nèi)核的4個插槽)。在該例子中,插槽0-2 (631-633)僅對主分區(qū) 610是可用的。插槽3 (634)對主分區(qū)610和嵌入式分區(qū)620都是可用的。 在插槽3 (634)內(nèi),內(nèi)核0僅對主分區(qū)610可用,并且內(nèi)核l-3僅對嵌入 式分區(qū)620可用。嵌入式分區(qū)620可以具有重新分配代理621作為經(jīng)由信 箱區(qū)消息與ME進行通信的固件部分,以實現(xiàn)內(nèi)核的重新編程。SMM是全 局容量,并且其可以延伸出(reach out)并訪問任何插槽。重新分配代理可 以包含授權(quán)代碼,以便確保運營商已經(jīng)對額外內(nèi)核和資源的分配進行授權(quán)。
在該實施例中,平臺具有耦合到存儲器602的存儲控制中心(MCH) 601 (也己知為北橋)。存儲器602可以具有兩個分區(qū)MEM1 (603)和MEM2 (605)。存儲器分區(qū)MEM1 (603)僅對嵌入式分區(qū)可用,并且存儲器分區(qū) MEM2 (605)僅對主分區(qū)可用。相比使用軟件構(gòu)造的VMM解決方法,包 含MCH 601的芯片組配置用于使用硬件構(gòu)造對存儲器進行分區(qū)。應(yīng)該理 解,存儲器602可以是硬盤、軟盤、隨機訪問存儲器(RAM)、只讀存儲 器(ROM)、閃存、或者任何其它類型的處理器可讀介質(zhì)。存儲器602可 以存儲用于進行執(zhí)行本發(fā)明實施例的指令。雖然在該例子中僅示出了 2個 分區(qū),但是應(yīng)該理解,可以存在一個以上的客戶OS,分別在其自己的分區(qū) 內(nèi)運行。還應(yīng)該理解,每個單個處理器插槽可以具有任意數(shù)目的內(nèi)核。
MCH601可以經(jīng)由外圍設(shè)備組件互連(PCI)總線與1/0控制中心(ICH) 607進行通信,其中I/O控制中心(ICH)607也已知為南橋。可以將ICH 607 經(jīng)由低引腳數(shù)(LPC)總線(未示出)耦合到一個或多個組件,比如PCI 硬盤驅(qū)動器、諸如IDE、 USB、 LAN和音頻的傳統(tǒng)組件、以及超級I/O (SIO) 控制器。在該例子中,示出將ICH 607耦合到硬盤驅(qū)動器609和網(wǎng)絡(luò)接口 控制器(NIC) 611。
將MCH 601配置用于控制對存儲器的訪問,并且將ICH 607配置用于控制對I/O的訪問。在嵌入式分區(qū)結(jié)構(gòu)中,在啟動之后,通過固件將芯片
組配置用于對平臺上的各種資源進行分區(qū)。在一些情況下,可以僅存在一 個分區(qū),并且在大多數(shù)方面,該平臺與傳統(tǒng)平臺行為類似。在所示的例子
中,存在兩個分區(qū),主分區(qū)610和嵌入式分區(qū)620。為每個所指定的分區(qū)設(shè) 定唯一的分區(qū)標(biāo)識符(ID)。
采用嵌入式分區(qū)結(jié)構(gòu),當(dāng)設(shè)備發(fā)送警告時,由于在啟動時對該信息進 行編碼,所以芯片組可以將警告恰當(dāng)路由到合適的分區(qū)。在支持VMM的 系統(tǒng)中,硬件將設(shè)各警告?zhèn)魉徒oVMM(虛擬化設(shè)備)并且軟件將信息恰當(dāng) 路由到各個虛擬機。嵌入式分區(qū)可以作為硬件輔助虛擬化。
在實施例中,將重新分配代理包含在VMM內(nèi),其中該VMM對所有 客戶虛擬機(VM)和運行在平臺上的客戶操作系統(tǒng)(OS)進行控制。在 另一個實施例中,將重新分配包含在特權(quán)分區(qū)、過程或者控制對單獨OS 的I/O請求的系統(tǒng)管理程序內(nèi)。
這里所描述的技術(shù)不局限于任何特定的硬件或軟件配置;它們可以應(yīng) 用于任何計算、消費電子、或多核處理環(huán)境中??梢栽谟布?、軟件、或者 二者的組合中實現(xiàn)這些技術(shù)。
對于仿真,程序代碼可以使用硬件描述語言或者另一種功能性描述語 言來代表硬件,其中該功能性描述語言實質(zhì)上提供期望如何實現(xiàn)所設(shè)計的 硬件的模型。程序代碼可以是匯編或機器語言,或者是可以進行編譯和/或 解釋的數(shù)據(jù)。此外,在本領(lǐng)域中談及軟件,通常以比如采取行動或者導(dǎo)致 結(jié)果的以一種形式或另一種行式。這些表達僅僅是通過處理系統(tǒng)執(zhí)行程序 代碼使處理器執(zhí)行動作或產(chǎn)生結(jié)果的簡短表達方式。
可以在高級程序或者面向?qū)ο蟮木幊陶Z言中實現(xiàn)每個程序,以便與處 理系統(tǒng)進行通信。然而,如果期望,可以用匯編或機器語言實現(xiàn)程序。在 任何情況下,可以對語言進行編譯或解釋。
可以使用程序指令來使利用該指令進行編程的通用或?qū)S锰幚硐到y(tǒng)執(zhí) 行這里所描述的操作??商鎿Q地,可以通過用于執(zhí)行操作的包含硬件邏輯 的特定硬件組件、或者通過編程計算機和傳統(tǒng)硬件組件的組合來執(zhí)行操作。 可以提供這里所描述的方法作為計算機程序產(chǎn)品,該產(chǎn)品可以包括存儲有 指令的機器可訪問介質(zhì),可以使用這些指令對處理系統(tǒng)或其它電子設(shè)備進行編程,以便實現(xiàn)該方法。
例如,可以將程序代碼或指令存儲在易失性和/或非易失性存儲器中, 例如,存儲設(shè)備和/或相關(guān)的機器可讀或機器可訪問介質(zhì),其包括固態(tài)存儲 器、硬盤驅(qū)動器、軟盤、光存儲單元、磁帶、閃存、記憶棒、數(shù)字視頻盤、
數(shù)字多功能光盤(DVD)等以及更多外部介質(zhì),比如機器可訪問生物狀態(tài) 保存存儲單元。機器可讀介質(zhì)可以包括用于以機器可讀的形式對信息進行 存儲、發(fā)送或者接收的任何機制,并且介質(zhì)可以包括諸如天線、光纖、通 信接口等的實際介質(zhì),可以通過該介質(zhì)傳送對程序代碼進行編碼的電、光、 聲或其它形式的傳播信號或載波。可以以分組、串行數(shù)據(jù)、并行數(shù)據(jù)、傳 播信號等的形式發(fā)送程序代碼,并且可以以壓縮或者加密的格式使用程序 代碼。
可以在諸如移動或固定計算機、個人數(shù)字助理、機頂盒、蜂窩電話和 尋呼機、消費電子設(shè)備(包括DVD播放器、個人視頻錄像機、個人視頻播 放器、衛(wèi)星接收機、立體接收機、有線電視接收機)、以及其它電子設(shè)備的 可編程機器上執(zhí)行的程序中實現(xiàn)程序代碼,其它電子設(shè)備各自包括處理器、 處理器可讀的易失和/或非易失存儲器、至少一個輸入設(shè)備和/或一個或多個 輸出設(shè)備。可以將程序代碼應(yīng)用到使用輸入設(shè)備所輸入的數(shù)據(jù),以便執(zhí)行 所描述的實施例并且生成輸出信息。可以將輸出信息應(yīng)用到一個或多個輸 出設(shè)備。本領(lǐng)域的技術(shù)人員將意識到,可以采用各種計算機系統(tǒng)配置來實 現(xiàn)所公開主題的實施例,其中這些系統(tǒng)配置包括微處理器或多核處理器系 統(tǒng)、小型計算機、大型計算機、以及可以嵌入幾乎任何設(shè)備中的普及或微 型計算機或處理器。還可以在分布式計算環(huán)境中實現(xiàn)所公開主題的實施例, 其中,可以通過經(jīng)過通信網(wǎng)絡(luò)鏈接的遠程處理設(shè)備來實現(xiàn)其任務(wù)或部分。
雖然將操作描述為順序過程,但是實際上一些操作可以并行、同時和/ 或在分布式環(huán)境中執(zhí)行,并且將程序代碼存儲在本地并且/或者通過單個或 者多處理器機器進行遠程訪問。另外,在一些實施例中,可以對操作次序 進行重新排列,而不脫離所公開主題的精神??梢酝ㄟ^或者結(jié)合嵌入式控 制器來使用程序代碼。
雖然參考所說明的實施例對本發(fā)明進行了說明,但是不是旨在以限制 的目的對該說明進行解釋。顯而易見地,對于本發(fā)明所屬于領(lǐng)域技術(shù)人員 來說,對所說明的實施例以及本發(fā)明的其它實施例的各種修改落入本發(fā)明 的精神和范圍內(nèi)。
權(quán)利要求
1、一種用于分配多個計量客戶端環(huán)境的系統(tǒng),包括平臺,其具有至少一個包括多個處理內(nèi)核的單插槽處理器;每個處理內(nèi)核包括路由表,用于標(biāo)識將所述內(nèi)核連接到哪些其它資源;源地址表,標(biāo)識對于所述內(nèi)核哪個存儲器是可訪問的;和信箱區(qū),用于存儲來自所述平臺上的可管理引擎處理器的消息,由所述內(nèi)核對所述消息進行處理;以及所述可管理引擎通信耦合到所述多個處理內(nèi)核,并且所述可管理引擎包括用于從遠程管理控制臺接收重新分配指令的帶外能力,所述重新分配指令包括對將被動態(tài)編程到所述多個內(nèi)核的客戶端環(huán)境進行定義的配置信息。
2、 如權(quán)利要求l所述的系統(tǒng),其中,客戶端環(huán)境的所述配置信息包括 將被分配到所述客戶端環(huán)境的內(nèi)核和其它資源的標(biāo)識,和允許所述客戶端 環(huán)境對于客戶端保持可訪問的可選時間限制,并且其中,當(dāng)所述客戶端環(huán) 境耗盡所述時間限制時,所述可管理引擎收回指派給所述客戶端環(huán)境的內(nèi) 核和其它資源,從而刪除所述客戶端環(huán)境。
3、 如權(quán)利要求l所述的系統(tǒng),其中,所述可管理引擎在系統(tǒng)管理模式 內(nèi)生成系統(tǒng)管理中斷,以實現(xiàn)對所述多個內(nèi)核重新編程。
4、 如權(quán)利要求l所述的系統(tǒng),其中,所述可管理引擎將空閑資源重新 分配給新客戶端環(huán)境。
5、 如權(quán)利要求l所述的系統(tǒng),其中,所述可管理引擎將指派給現(xiàn)有客 戶端環(huán)境的資源重新分配給新客戶端環(huán)境。
6、 如權(quán)利要求l所述的系統(tǒng),其中,所述平臺包括多插槽對等互連結(jié) 構(gòu),其中,平臺代理通過對所述平臺上的資源之間的互連進行重新編程來分離和組合不同的計算資源池,所述資源包括內(nèi)核。
7、 如權(quán)利要求l所述的系統(tǒng),其中,所述平臺包括嵌入式分區(qū)結(jié)構(gòu), 其中,嵌入式分區(qū)經(jīng)由硬件構(gòu)造與所述平臺上的其它分區(qū)分離。
8、 如權(quán)利要求l所述的系統(tǒng),其中,第一客戶端經(jīng)由指派和分配給第 一客戶端環(huán)境的第一輸入/輸出設(shè)備連接到所述平臺上的所述第一客戶端 環(huán)境,并且其中,所述客戶端不能物理訪問所述平臺的其它資源和設(shè)備, 并且其中,第二客戶端是經(jīng)由指派和分配給第二客戶端環(huán)境的第二輸入/輸 出設(shè)備連接到所述平臺上的所述第二客戶端環(huán)境,并且其中,所述第一和 第二客戶端不能訪問分配給彼此的客戶端環(huán)境的資源。
9、 一種用于分配多個計量客戶端環(huán)境的方法,包括通過通信耦合到在單個插槽處理器內(nèi)具有多個處理內(nèi)核的平臺的可管理引擎,接收由遠程管理控制臺發(fā)送的請求新客戶端環(huán)境的消息;確定在所述平臺上是否有足夠的內(nèi)核和其它資源可用,以實現(xiàn)所請求 的新客戶端環(huán)境;當(dāng)足夠的內(nèi)核和其它資源可用時,根據(jù)對新客戶端環(huán)境的所述請求, 由所述可管理引擎生成命令,以實現(xiàn)對所述平臺上的一個或多個內(nèi)核的動 態(tài)重新編程;當(dāng)沒有足夠的內(nèi)核和其它資源可用時,將對新客戶端環(huán)境的所述請求 進行排隊;以及根據(jù)所述命令對所述平臺上的所述一個或多個內(nèi)核重新編程,以實現(xiàn) 對新客戶端環(huán)境的所述請求,其中,包括所述新客戶端環(huán)境的資源對于在所述平臺中出現(xiàn)的其它客 戶端環(huán)境是不可訪問的,所述資源包括內(nèi)核。
10、 如權(quán)利要求9所述的方法,還包括 在遠程管理控制臺處請求所述新客戶端環(huán)境;以及 由所述遠程管理控制臺將所述消息發(fā)送到所述平臺,以標(biāo)識對于所述新客戶端環(huán)境可訪問的許多所請求的內(nèi)核和其它資源。
11、 如權(quán)利要求9所述的方法,其中,所述消息是web服務(wù)消息。
12、 如權(quán)利要求9所述的方法,其中,所述確定還包括 由所述可管理引擎生成系統(tǒng)管理中斷,其包括用于請求關(guān)于未分配內(nèi)核和資源的信息的命令,并且其中,生成所述命令還包括生成系統(tǒng)管理中 斷事件到寄存器中,以寫入到處理內(nèi)核的路由表和源地址解碼器中,所述 路由表標(biāo)識將所述內(nèi)核連接到哪個其它內(nèi)核,并且所述源地址解碼器標(biāo)識 存儲器哪個部分對于所述內(nèi)核是可訪問的。
13、 如權(quán)利要求9所述的方法,其中,將對新客戶端環(huán)境的所述請求 進行排隊還包括確定能夠從空閑客戶端環(huán)境中還是從活動客戶端環(huán)境中分配內(nèi)核和其 它資源;將在活動客戶端環(huán)境、空閑客戶端環(huán)境以及未分配內(nèi)核和資源中的至 少一個之中的內(nèi)核和其它資源重新分配給所述新客戶端環(huán)境;在所述重新分配內(nèi)核和其它資源之前,從所述可管理引擎向所述平臺 芯片組發(fā)送消息,以停止所分配內(nèi)核上的所有處理;以及在活動客戶端環(huán)境、空閑客戶端環(huán)境以及未分配內(nèi)核和資源中的至少 一個之間遷移執(zhí)行狀態(tài),以便為重新分配的客戶端環(huán)境提供事務(wù)安全執(zhí)行 狀態(tài)。
14、 如權(quán)利要求13所述的方法,其中,所述遷移還包括 將所述至少一個活動客戶端環(huán)境的所述執(zhí)行狀態(tài)保存到存儲器存儲單元的保護區(qū)域,所述存儲器存儲單元耦合到所述可管理引擎;以及在所述將內(nèi)核和資源重新分配給所述新客戶端環(huán)境之后,重新存儲所 述至少一個活動客戶端環(huán)境的所述執(zhí)行狀態(tài)。
15、 一種用于選擇性使能平臺上計算資源的系統(tǒng),包括平臺,其具有至少一個包括多個處理內(nèi)核的單插槽處理器; 每個處理內(nèi)核包括路由表,用于標(biāo)識將所述內(nèi)核連接到哪些其它資源;源地址表,標(biāo)識對于所述內(nèi)核哪個存儲器是可訪問的;和信箱區(qū),用 于存儲來自所述平臺上的可管理引擎處理器的消息,由所述內(nèi)核對所述消 息進行處理;以及所述可管理引擎通信耦合到所述多個處理內(nèi)核,并且所述可管理引擎 包括用于從遠程管理控制臺接收激活指令的帶外能力,所述激活指令包括 對將要激活哪些內(nèi)核和其它資源進行定義的配置信息,以及對每個活動內(nèi) 核將要連接哪些內(nèi)核和其它資源進行定義的連接配置。
16、 一種計算機可讀存儲介質(zhì),其中存儲有用于分配多個計量客戶端 環(huán)境的指令,當(dāng)在機器上執(zhí)行所述指令時,致使所述機器進行以下操作-通過通信耦合到在單個插槽處理器內(nèi)具有多個處理內(nèi)核的平臺的可管 理引擎,接收由遠程管理控制臺發(fā)送的請求新客戶端環(huán)境的消息;確定在所述平臺上是否有足夠的內(nèi)核和其它資源可用,以實現(xiàn)所請求 的新客戶端環(huán)境;當(dāng)足夠的內(nèi)核和其它資源可用時,根據(jù)對新客戶端環(huán)境的所述請求, 由所述可管理引擎生成命令,以實現(xiàn)對所述平臺上的一個或多個內(nèi)核的動 態(tài)重新編程;當(dāng)沒有足夠的內(nèi)核和其它資源可用時,將對新客戶端環(huán)境的所述請求 進行排隊;以及根據(jù)所述命令對所述平臺上的所述一個或多個內(nèi)核重新編程,以實現(xiàn) 對新客戶端環(huán)境的所述請求。
全文摘要
在一些實施例中,本發(fā)明包括對眾核平臺的資源進行分區(qū)用于由多個客戶端同時使用,或者向單個客戶端添加/減少容量。通過對內(nèi)核的路由表以及源地址解碼器進行重新編程來對內(nèi)核和資源進行激活并且指派給客戶端環(huán)境。對存儲器和I/O設(shè)備進行分區(qū),并且將其安全地指派給內(nèi)核和/或客戶端環(huán)境。由帶外處理器接收涉及資源的分配或重新分配的指令,其中該帶外處理器具有對芯片組和內(nèi)核進行重新編碼的特權(quán)。描述并要求保護其它實施例。
文檔編號G06F9/50GK101482832SQ20081019034
公開日2009年7月15日 申請日期2008年12月31日 優(yōu)先權(quán)日2007年12月31日
發(fā)明者M·A·羅思曼, M·多蘭, V·J·齊默 申請人:英特爾公司