本公開總體上涉及電子領(lǐng)域。更具體地,本發(fā)明的一些實(shí)施例總體上涉及用于實(shí)現(xiàn)針對(duì)用于組合計(jì)算設(shè)備的池式存儲(chǔ)器的虛擬串行存在檢測(cè)操作的技術(shù)。
背景技術(shù):
一些高性能計(jì)算體系結(jié)構(gòu)正在采用計(jì)算資源的物理解聚模型。然后可以例如通過控制平面軟件將解聚的資源邏輯地組合,以定義虛擬計(jì)算資源,虛擬計(jì)算資源有時(shí)稱為組合服務(wù)器,或者更廣泛地稱為組合計(jì)算設(shè)備。這樣的模型使得能夠根據(jù)計(jì)算任務(wù)的資源需求而將計(jì)算資源動(dòng)態(tài)地分配給計(jì)算任務(wù)。
實(shí)現(xiàn)解聚模型的計(jì)算系統(tǒng)可以實(shí)現(xiàn)池式存儲(chǔ)器模型,其中物理存儲(chǔ)器被解聚成共享存儲(chǔ)器池。共享存儲(chǔ)器池可以由共享存儲(chǔ)器控制器進(jìn)行管理,共享存儲(chǔ)器控制器從存儲(chǔ)器池中分配存儲(chǔ)器給組合服務(wù)器。相應(yīng)地,用于管理池式存儲(chǔ)器資源的技術(shù)可以發(fā)現(xiàn)實(shí)用性,例如,在用于組合計(jì)算設(shè)備的存儲(chǔ)器系統(tǒng)中。
附圖說(shuō)明
參考附圖來(lái)提供詳細(xì)描述。在不同附圖中使用相同的附圖標(biāo)記來(lái)表示類似或等同的項(xiàng)目。
圖1是圖示出根據(jù)本文討論的各種示例的用于實(shí)現(xiàn)針對(duì)用于組合計(jì)算設(shè)備的池式存儲(chǔ)器的虛擬串行存在檢測(cè)操作的計(jì)算環(huán)境的組件的示意性框圖。
圖2-5的流程圖示出了根據(jù)本文討論的各種實(shí)施例的用于實(shí)現(xiàn)針對(duì)用于組合計(jì)算設(shè)備的池式存儲(chǔ)器的虛擬串行存在檢測(cè)操作的方法中的操作。
圖6-10是圖示出根據(jù)本文討論的各種實(shí)施例的可以適于實(shí)現(xiàn)針對(duì)用于組合計(jì)算設(shè)備的池式存儲(chǔ)器的虛擬串行存在檢測(cè)操作的電子設(shè)備的示意性框圖。
具體實(shí)施方式
在下面的描述中,闡述了許多具體細(xì)節(jié),以便于提供對(duì)各種實(shí)施例的透徹理解。然而,可以在沒有具體細(xì)節(jié)的情況下實(shí)踐本發(fā)明的各種實(shí)施例。在其它實(shí)例中,沒有對(duì)公知的方法、程序、組件、以及電路進(jìn)行詳細(xì)描述,以免模糊本發(fā)明的特定實(shí)施例。此外,可以使用諸如集成半導(dǎo)體電路(“硬件”)、組織成一個(gè)或多個(gè)程序的計(jì)算機(jī)可讀指令(“軟件”)、或硬件和軟件的某些組合的各種方式來(lái)執(zhí)行本發(fā)明的實(shí)施例的各種方面。為了本公開內(nèi)容的目的,對(duì)“邏輯”的引用應(yīng)當(dāng)表示或者硬件、軟件,或者其一些組合。
如上面所描述的,解聚的計(jì)算模型可以實(shí)現(xiàn)池式存儲(chǔ)器模型,其中物理存儲(chǔ)器被解聚成共享存儲(chǔ)器池??梢詮某厥酱鎯?chǔ)器中形成虛擬存儲(chǔ)器設(shè)備,并將虛擬存儲(chǔ)器設(shè)備分派給可以被實(shí)例化以執(zhí)行一個(gè)或多個(gè)特定計(jì)算任務(wù)的組合計(jì)算設(shè)備。在完成分配給虛擬機(jī)的計(jì)算任務(wù)之后,虛擬機(jī)可以分解,并且可以使得用于該機(jī)器的計(jì)算資源可用于其它虛擬機(jī)。因此,在計(jì)算資源在其被組合時(shí)不斷地分配給虛擬機(jī)并且在其被分解時(shí)從虛擬機(jī)恢復(fù)的意義上而言,解聚的計(jì)算環(huán)境在本質(zhì)上可以是動(dòng)態(tài)的。
從共享存儲(chǔ)器池中分派虛擬存儲(chǔ)器會(huì)產(chǎn)生若干問題。第一個(gè)問題在于物理存儲(chǔ)器設(shè)備(從其分派存儲(chǔ)器給虛擬存儲(chǔ)器設(shè)備)的串行存在檢測(cè)(spd)對(duì)組合計(jì)算設(shè)備的基本輸入/輸出系統(tǒng)(bios)是不可用的。第二個(gè)問題在于計(jì)算環(huán)境的動(dòng)態(tài)性質(zhì)造成縮放和重新供應(yīng)的資源(包括存儲(chǔ)器)的問題。
為了解決這些問題和其它問題,本文描述了用于管理解聚的計(jì)算環(huán)境中的池式存儲(chǔ)器資源的架構(gòu)和方法。更具體地,本文描述的架構(gòu)和方法提供了要實(shí)現(xiàn)的虛擬串行存在檢測(cè)(vspd)機(jī)制,其使得組合計(jì)算設(shè)備的基本輸入/輸出系統(tǒng)(bios)能夠發(fā)現(xiàn)分配給它的池式存儲(chǔ)器。此外,可以動(dòng)態(tài)地重新供應(yīng)存儲(chǔ)器資源以支持計(jì)算環(huán)境的改變。
圖1是根據(jù)本文討論的各種示例的用于實(shí)現(xiàn)針對(duì)用于電子設(shè)備的池式存儲(chǔ)器的虛擬串行存在檢測(cè)操作的計(jì)算環(huán)境100的組件的示意性框圖圖示。在一些示例中,計(jì)算環(huán)境可以被實(shí)現(xiàn)為適于在基于云的計(jì)算環(huán)境中使用的機(jī)架式(rackscale)架構(gòu)。
參考圖1,在一些示例中,計(jì)算環(huán)境100包括經(jīng)由合適的通信接口(例如,存儲(chǔ)管理接口(smi)或快速外圍組件互連(pcie)接口)通信地耦合到共享存儲(chǔ)器控制器(smc)120的多個(gè)處理器(cpu)110。smc120可以經(jīng)由合適的通信接口(例如,雙倍數(shù)據(jù)速率(ddr))接口通信地耦合到池式存儲(chǔ)器資源130。這些標(biāo)準(zhǔn)的示例包括但不限于,由jedec固態(tài)技術(shù)協(xié)會(huì)(solidstatetechnologyassociation)于2007年6月發(fā)布的ddr3同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(sdram)標(biāo)準(zhǔn)jesd79-3,由jedec固態(tài)技術(shù)協(xié)會(huì)于2010年7月26日發(fā)布的ddr3lsdram標(biāo)準(zhǔn)jesd79-3-1,以及由jedec固態(tài)技術(shù)協(xié)會(huì)于2012年9月25日發(fā)布的ddr4sdram標(biāo)準(zhǔn)jesd79-4。其它示例包括由jedec固態(tài)技術(shù)協(xié)會(huì)于2012年5月17日發(fā)布的lpddr3jesd209-3lpddr3低功耗存儲(chǔ)器設(shè)備標(biāo)準(zhǔn),由jedec固態(tài)技術(shù)協(xié)會(huì)于2014年8月發(fā)布的lpddr4低功耗存儲(chǔ)器設(shè)備標(biāo)準(zhǔn)jesd209-4,以及由jedec固態(tài)技術(shù)協(xié)會(huì)于2013年12月發(fā)布的圖形雙倍數(shù)據(jù)速率(gddr5)同步圖形隨機(jī)存取存儲(chǔ)器(sgram)標(biāo)準(zhǔn)jesd212b.01。然而,這樣的討論可以擴(kuò)展到附加地或替代地應(yīng)用于各種ddr和/或其它存儲(chǔ)器標(biāo)準(zhǔn)中的任一種。托盤管理控制器(tmc)140經(jīng)由合適的通信接口(例如,pcie接口)通信地耦合到smc120,并且經(jīng)由通信接口通信地耦合到cpu110和軟件編配模塊150。
在一些示例中,可以將cpu100實(shí)施為可以從因特爾公司(santaclara,california,usa)獲得的
在一些示例中,共享存儲(chǔ)器控制器(smc)120可以被實(shí)現(xiàn)為在一個(gè)或多個(gè)通用處理器(例如,cpu110)上執(zhí)行的邏輯設(shè)備。在其它示例中,smc120可以在專用控制器上實(shí)現(xiàn),例如,現(xiàn)場(chǎng)可編程門陣列(fpga),或者smc120可以精簡(jiǎn)為硬連線的電路。在圖1所描述的示例中,smc120包括pcie配置空間122、pcie能力結(jié)構(gòu)124、以及靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)126。
存儲(chǔ)器130可以被實(shí)現(xiàn)為固態(tài)驅(qū)動(dòng)器(ssd)、非易失性直插存儲(chǔ)器模塊(nv-dimm)等。在各種示例中,存儲(chǔ)器130中的至少一些可以包括非易失性存儲(chǔ)器,例如,相變存儲(chǔ)器、nand(閃速)存儲(chǔ)器、鐵電隨機(jī)存取存儲(chǔ)器(fetram)、基于納米線的非易失性存儲(chǔ)器、包含憶阻器技術(shù)的存儲(chǔ)器、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)、諸如相變存儲(chǔ)器(pcm)的三維(3d)交叉點(diǎn)存儲(chǔ)器、旋轉(zhuǎn)轉(zhuǎn)移力矩存儲(chǔ)器(stt-ram)、或nand存儲(chǔ)器。存儲(chǔ)器130的具體配置不是關(guān)鍵的。
托盤管理控制器140可以被實(shí)現(xiàn)為在一個(gè)或多個(gè)通用處理器(例如,cpu110)上執(zhí)行的邏輯設(shè)備。在其它示例中,smc120可以在專用控制器上實(shí)現(xiàn),例如現(xiàn)場(chǎng)可編程門陣列(fpga),或者smc120可以精簡(jiǎn)為硬連線的電路。軟件編配模塊150可以被實(shí)現(xiàn)為在處理設(shè)備上執(zhí)行的邏輯指令,即軟件。
如上面所描述的,在一些示例中,例如在托盤管理控制器140中的邏輯單獨(dú)地或者與共享存儲(chǔ)器控制器(smc)120中的邏輯組合地實(shí)現(xiàn)針對(duì)用于電子設(shè)備的池式存儲(chǔ)器的虛擬串行存在檢測(cè)操作。將參考圖2-5來(lái)說(shuō)明用于實(shí)現(xiàn)虛擬串行存在檢測(cè)操作的技術(shù)。
參考圖2,在操作210處,托盤管理控制器140接收對(duì)于建立一個(gè)或多個(gè)組合計(jì)算設(shè)備的請(qǐng)求。在一些示例中,該請(qǐng)求可以源自軟件編配模塊150。在操作215處,將處理器資源分配給作為在操作210中發(fā)布的請(qǐng)求的對(duì)象的組合計(jì)算設(shè)備。在一些示例中,可以將cpu110的至少一部分分派給作為在操作210中發(fā)布的請(qǐng)求的對(duì)象的組合計(jì)算設(shè)備。類似地,在操作220處,將一個(gè)或多個(gè)虛擬存儲(chǔ)器設(shè)備分配給作為操作210中發(fā)布的請(qǐng)求的對(duì)象的組合計(jì)算設(shè)備。
在操作225處,tmc140上的控制平面軟件從共享存儲(chǔ)器池130中分派存儲(chǔ)器給作為在操作210中發(fā)布的請(qǐng)求的對(duì)象的組合計(jì)算設(shè)備。所分派的存儲(chǔ)器的量可以是固定的或者可以取決于由軟件編配模塊提供的配置參數(shù)。在一些示例中,可以向每個(gè)組合計(jì)算設(shè)備分配存儲(chǔ)器池130中的多個(gè)易失性的、持久性的、消息傳遞的、以及共享的存儲(chǔ)器區(qū)域,其可以被表征為托盤管理控制器140中的虛擬dimm(或vdimm)142。
在操作230處,tmc150上的控制平面軟件創(chuàng)建針對(duì)在操作225處創(chuàng)建的每個(gè)虛擬存儲(chǔ)器設(shè)備的虛擬串行存在檢測(cè)(vspd),并且在操作235處,將在操作230處創(chuàng)建的vspd存儲(chǔ)在共享存儲(chǔ)器控制器120的操作存儲(chǔ)器中,例如,sram126。在一些示例中,vspd存儲(chǔ)在sram126中作為sram126中的鏈表,并將vspd分配給smc120中的pcie能力結(jié)構(gòu)124。
在操作240處,tmc140上的控制平面軟件將組合計(jì)算設(shè)備釋放到運(yùn)行時(shí)環(huán)境中。例如,tmc140上的控制平面軟件可以將具有在sram126中分派的vspd的組合計(jì)算設(shè)備從復(fù)位狀態(tài)釋放,以使得組合計(jì)算設(shè)備的bios112通過其pcie能力結(jié)構(gòu)124來(lái)枚舉共享存儲(chǔ)器。一旦組合計(jì)算設(shè)備被釋放到運(yùn)行時(shí)環(huán)境中,可以向組合計(jì)算設(shè)備分配計(jì)算任務(wù)。此外,在組合計(jì)算設(shè)備上的bios112枚舉了分派給組合計(jì)算設(shè)備的池式存儲(chǔ)器之后,可以刪除vspd,由此空出smc120上的sram126中的vspd空間以供其它組合服務(wù)器重新使用。
如上面所描述的,運(yùn)行時(shí)環(huán)境中可用的資源可以隨著組合計(jì)算設(shè)備被實(shí)例化和分解而改變,或者隨著可用的存儲(chǔ)器資源的改變而改變。在一些示例中,組合計(jì)算設(shè)備是可操作的。在一些示例中,可以重新配置分配給組合計(jì)算設(shè)備的存儲(chǔ)器資源以適應(yīng)運(yùn)行時(shí)環(huán)境的改變。
參考圖3,在操作310處,tmc140上的控制平面軟件針對(duì)可用的存儲(chǔ)器資源的改變而對(duì)存儲(chǔ)器130進(jìn)行監(jiān)測(cè)。例如,當(dāng)軟件編配器150重新供應(yīng)存儲(chǔ)器130中分派給組合計(jì)算設(shè)備的池式存儲(chǔ)器的量時(shí),存儲(chǔ)器130中可用的存儲(chǔ)器資源可以改變。在操作315處,如果存儲(chǔ)器資源沒有改變,則控制傳遞回操作310,并且tmc140上的控制平面軟件繼續(xù)對(duì)存儲(chǔ)器130進(jìn)行監(jiān)測(cè)。
相比之下,在操作315處,如果存儲(chǔ)器130中可用的存儲(chǔ)器資源已經(jīng)改變,則控制傳遞到操作320,并且tmc140上的控制平面軟件創(chuàng)建針對(duì)在操作225處創(chuàng)建的虛擬存儲(chǔ)器設(shè)備中的每一個(gè)的虛擬串行存在檢測(cè)(vspd),并且在操作325處,在操作230處創(chuàng)建的vspd存儲(chǔ)在共享存儲(chǔ)器控制器120的操作存儲(chǔ)器(例如,sram126)中。在一些示例中,vspd存儲(chǔ)在sram126中作為sram126中的鏈表,并將vspd分配給smc120中的pcie能力結(jié)構(gòu)124。在操作330處,操作可以在組合計(jì)算設(shè)備上繼續(xù)。
在一些示例中,tmc140上的控制平面軟件被配置為控制被釋放到運(yùn)行時(shí)環(huán)境中的組合計(jì)算設(shè)備的數(shù)量,以便于管理存儲(chǔ)器控制器120上的sram126的消耗。參考圖4,在操作410處,tmc140上的控制平面軟件對(duì)存儲(chǔ)器控制器中的操作存儲(chǔ)器(即,sram126)進(jìn)行監(jiān)測(cè)。在操作415處,如果存儲(chǔ)器不滿,則控制傳遞回操作410,并且tmc140上的控制平面軟件繼續(xù)對(duì)sram126進(jìn)行監(jiān)測(cè)。
相比之下,在操作415處,如果sram126處于滿容量,則控制傳遞到操作420,并且tmc150上的控制平面軟件暫停將組合計(jì)算設(shè)備釋放到運(yùn)行時(shí)環(huán)境中。
圖5描述了用于對(duì)組合計(jì)算設(shè)備進(jìn)行分解的方法中的操作。參考圖5,在操作510處,接收到對(duì)組合計(jì)算設(shè)備進(jìn)行分解的請(qǐng)求。例如,請(qǐng)求可以源自軟件編配模塊150。在操作515處,tmc150上的控制平面軟件釋放分派給作為在操作510中接收到的請(qǐng)求的對(duì)象的組合計(jì)算設(shè)備的處理器資源。在操作520處,tmc140上的控制平面軟件將分派給作為在操作510中接收的請(qǐng)求的對(duì)象的計(jì)算設(shè)備的存儲(chǔ)器從vdimm142中解除分派。
如上面所描述的,在一些實(shí)施例中,電子設(shè)備可以被實(shí)現(xiàn)為計(jì)算機(jī)系統(tǒng)。圖6示出了根據(jù)本發(fā)明的實(shí)施例的計(jì)算系統(tǒng)600的框圖。計(jì)算系統(tǒng)600可以包括經(jīng)由互連網(wǎng)絡(luò)(或總線)604通信的一個(gè)或多個(gè)中央處理單元(cpu)602或處理器。處理器602可以包括通用處理器、網(wǎng)絡(luò)處理器(處理通過計(jì)算機(jī)網(wǎng)絡(luò)603傳送的數(shù)據(jù))、或其它類型的處理器(包括精簡(jiǎn)指令集計(jì)算機(jī)(risc)處理器或復(fù)雜指令集計(jì)算機(jī)(cisc)處理器)。此外,處理器602可以具有單核心或多核心設(shè)計(jì)。具有多核心設(shè)計(jì)的處理器602可以在同一集成電路(ic)管芯上集成不同類型的處理器核心。此外,具有多核心設(shè)計(jì)的處理器602可以被實(shí)現(xiàn)為對(duì)稱或不對(duì)稱的多處理器。在實(shí)施例中,處理器602中的一個(gè)或多個(gè)可以與圖1的處理器102相同或類似。例如,處理器602中的一個(gè)或多個(gè)可以包括參考圖1-3所討論的控制單元120。另外,參考圖3-5所討論的操作可以由系統(tǒng)600的一個(gè)或多個(gè)組件來(lái)執(zhí)行。
芯片組606還可以與互連網(wǎng)絡(luò)604通信。芯片組606可以包括存儲(chǔ)器控制集線器(mch)608。mch608可以包括與存儲(chǔ)器612(其可以與圖1的存儲(chǔ)器130相同或類似)通信的存儲(chǔ)器控制器610。存儲(chǔ)器412可以存儲(chǔ)數(shù)據(jù),包括可以由cpu602或包括在計(jì)算系統(tǒng)600中的任何其它設(shè)備執(zhí)行的指令序列。在本發(fā)明的一個(gè)實(shí)施例中,存儲(chǔ)器612可以包括一個(gè)或多個(gè)易失性存儲(chǔ)(或存儲(chǔ)器)設(shè)備,例如,隨機(jī)存取存儲(chǔ)器(ram)、動(dòng)態(tài)ram(dram)、同步dram(sdram)、靜態(tài)ram(sram)、或其它類型的存儲(chǔ)設(shè)備。還可以使用非易失性存儲(chǔ)器,例如,硬盤或固態(tài)驅(qū)動(dòng)器(ssd)。附加的設(shè)備可以經(jīng)由互連網(wǎng)絡(luò)604進(jìn)行通信,例如,多個(gè)cpu和/或多個(gè)系統(tǒng)存儲(chǔ)器。
mch608還可以包括與顯示設(shè)備616通信的圖形接口614。在本發(fā)明的一個(gè)實(shí)施例中,圖形接口614可以經(jīng)由加速圖形端口(agp)與顯示設(shè)備616通信。在本發(fā)明的實(shí)施例中,顯示器616(例如,平面顯示器)可以與圖形接口614通信,例如,通過信號(hào)變換器,該信號(hào)變換器將存儲(chǔ)在諸如視頻存儲(chǔ)器或系統(tǒng)存儲(chǔ)器的存儲(chǔ)設(shè)備中的圖像的數(shù)字表示轉(zhuǎn)換成由顯示器616解釋并顯示的顯示信號(hào)。由顯示設(shè)備產(chǎn)生的顯示信號(hào)在由顯示器616解釋并隨后在顯示器616上顯示之前可以經(jīng)過各種控制設(shè)備。
集線器接口618可以允許mch608和輸入/輸出控制集線器(ich)620進(jìn)行通信。ich620可以將接口提供給與計(jì)算系統(tǒng)600通信的i/o設(shè)備。ich620可以通過外圍橋(或控制器)624與總線622通信,例如,外圍組件互連(pci)橋、通用串行總線(usb)控制器、或其它類型的外圍橋或控制器。橋624可以在cpu602與外圍設(shè)備之間提供數(shù)據(jù)路徑??梢允褂闷渌愋偷耐?fù)?。另外,多個(gè)總線可以與ich620通信,例如,通過多個(gè)橋或控制器。此外,在本發(fā)明的各種實(shí)施例中,與ich620通信的其它外圍設(shè)備可以包括集成驅(qū)動(dòng)電子設(shè)備(ide)或小型計(jì)算機(jī)系統(tǒng)接口(scsi)硬盤驅(qū)動(dòng)器、usb端口、鍵盤、鼠標(biāo)、并行端口、串行端口、軟盤驅(qū)動(dòng)器、數(shù)字輸出支持(例如,數(shù)字視頻接口(dvi))或其它設(shè)備。
總線622可以與音頻設(shè)備626、一個(gè)或多個(gè)磁盤驅(qū)動(dòng)器628、以及網(wǎng)絡(luò)接口設(shè)備630(其與計(jì)算機(jī)網(wǎng)絡(luò)603通信)通信。其它設(shè)備可以經(jīng)由總線622進(jìn)行通信。另外,在本發(fā)明的一些實(shí)施例中,各種組件(例如,網(wǎng)絡(luò)接口設(shè)備630)可以與mch608通信。另外,處理器602和本文所討論的一個(gè)或多個(gè)其它組件可以組合以形成單個(gè)芯片(例如,以提供片上系統(tǒng)(soc))。此外,在本發(fā)明的其它實(shí)施例中,圖形加速器616可以包括在mch608內(nèi)。
此外,計(jì)算系統(tǒng)600可以包括易失性和/或非易失性存儲(chǔ)器(或存儲(chǔ)設(shè)備)。例如,非易失性存儲(chǔ)器可以包括以下中的一個(gè)或多個(gè):只讀存儲(chǔ)器(rom)、可編程rom(prom)、可擦除prom(eprom)、電eprom(eeprom)、磁盤驅(qū)動(dòng)器(例如,628)、軟盤、光盤rom(cd-rom)、數(shù)字通用盤(dvd)、閃速存儲(chǔ)器、磁光盤、或能夠存儲(chǔ)電子數(shù)據(jù)(例如,包括指令)的其它類型的非易失性機(jī)器可讀介質(zhì)。
圖7示出了根據(jù)本發(fā)明的實(shí)施例的計(jì)算系統(tǒng)700的框圖。系統(tǒng)700可以包括一個(gè)或多個(gè)處理器702-1至702-n(文中一般稱為“多個(gè)處理器702”或“處理器702”)。處理器702可以經(jīng)由互連網(wǎng)絡(luò)或總線704進(jìn)行通信。每個(gè)處理器可以包括各種組件,為了清楚起見,僅參考處理器702-1討論其中一些。相應(yīng)地,其余處理器702-2至702-n中的每一個(gè)可以包括與參考處理器702-1所討論的組件相同或類似的組件。
在實(shí)施例中,處理器702-1可以包括一個(gè)或多個(gè)處理器核心706-1至706-m(文中稱為“多個(gè)核心706”或更一般地稱為“核心706”)、共享高速緩存708、路由器710、和/或處理器控制邏輯或單元720。處理器核心706可以在單個(gè)集成電路(ic)芯片上實(shí)現(xiàn)。此外,芯片可以包括一個(gè)或多個(gè)共享的和/或私有的高速緩存(例如,高速緩存708)、總線或互連(例如,總線或互連網(wǎng)絡(luò)712)、存儲(chǔ)器控制器、或其它組件。
在一個(gè)實(shí)施例中,路由器710可以用于在處理器702-1和/或系統(tǒng)700的各種組件之間進(jìn)行通信。此外,處理器702-1可以包括多于一個(gè)的路由器710。此外,多數(shù)的路由器710可以通信以使得能夠在處理器702-1內(nèi)部或外部的各種組件之間進(jìn)行數(shù)據(jù)路由。
共享高速緩存708可以存儲(chǔ)由處理器702-1的一個(gè)或多個(gè)組件(例如,核心706)使用的數(shù)據(jù)(例如,包括指令)。例如,共享高速緩存708可以本地地高速緩存存儲(chǔ)在存儲(chǔ)器714中的數(shù)據(jù)以用于由處理器702的組件更快地訪問。在實(shí)施例中,高速緩存708可以包括中級(jí)高速緩存(例如,2級(jí)(l2)、3級(jí)(l3)、4級(jí)(l4)、或其它級(jí)別的高速緩存)、末級(jí)緩存(llc)、和/或其組合。此外,處理器702-1的各種組件可以通過總線(例如,總線712)、和/或存儲(chǔ)器控制器或集線器直接地與共享高速緩存708通信。如圖7所示,在一些實(shí)施例中,核心706中的一個(gè)或多個(gè)可以包括1級(jí)(l1)高速緩存716-1(文中一般稱為“l(fā)1高速緩存716”)。在一個(gè)實(shí)施例中,控制單元720可以包括用于實(shí)現(xiàn)上文參考圖2中的存儲(chǔ)器控制器122所描述的操作的邏輯
圖8示出了根據(jù)本發(fā)明的實(shí)施例的計(jì)算系統(tǒng)的處理器核心706和其它組件的部分的框圖。在一個(gè)實(shí)施例中,圖8中所示的箭頭示出了通過核心706的指令的流向。一個(gè)或多個(gè)處理器核心(例如,處理器核心706)可以在單個(gè)集成電路芯片(或管芯)上實(shí)現(xiàn),例如,參考圖7所討論的。此外,芯片可以包括一個(gè)或多個(gè)共享的和/或私有的高速緩存(例如,圖7的高速緩存708)、互連(例如,圖7的互連704和/或112)、控制單元、存儲(chǔ)器控制器、或其它組件。
如圖8所示,處理器核心706可以包括提取單元802,其用于提取指令(包括具有條件分支的指令)以用于由核心706執(zhí)行。該指令可以從諸如存儲(chǔ)器714的任何存儲(chǔ)設(shè)備中提取。核心706還可以包括解碼單元804,其用于對(duì)提取的指令進(jìn)行解碼。例如,解碼單元804可以將提取的指令解碼為多個(gè)uop(微操作)。
附加地,核心706可以包括調(diào)度單元806。調(diào)度單元806可以執(zhí)行與存儲(chǔ)解碼的指令(例如,從解碼單元804接收的)相關(guān)聯(lián)的各種操作,直到指令準(zhǔn)備好分發(fā)為止,例如,直到解碼的指令的所有源值變得可用為止。在一個(gè)實(shí)施例中,調(diào)度單元806可以將解碼的指令調(diào)度和/或發(fā)布(或分發(fā))到執(zhí)行單元808以供執(zhí)行。執(zhí)行單元808可以在分發(fā)的指令被解碼(例如,由解碼單元804)并分發(fā)(例如,由調(diào)度單元806)之后執(zhí)行該分發(fā)的指令。在實(shí)施例中,執(zhí)行單元808可以包括多于一個(gè)的執(zhí)行單元。執(zhí)行單元808還可以執(zhí)行諸如加法、減法、乘法、和/或除法的各種算術(shù)運(yùn)算,并且可以包括一個(gè)或多個(gè)算術(shù)邏輯單元(alu)。在實(shí)施例中,協(xié)同處理器(未示出)可以連同執(zhí)行單元808來(lái)執(zhí)行各種算術(shù)運(yùn)算。
此外,執(zhí)行單元808可以無(wú)序地執(zhí)行指令。因此,在一個(gè)實(shí)施例中,處理器核心706可以是無(wú)序的處理器核心。核心706還可以包括引退單元810。引退單元810可以在所執(zhí)行的指令交付之后引退所執(zhí)行的指令。在實(shí)施例中,引退所執(zhí)行的指令可以導(dǎo)致處理器狀態(tài)從指令的執(zhí)行被交付、由指令使用的物理寄存器被解除分派等。
核心706還可以包括總線單元714,以實(shí)現(xiàn)經(jīng)由一個(gè)或多個(gè)總線(例如,總線804和/或812)在處理器核心706的組件與其它組件(例如,參考圖8所討論的組件)之間進(jìn)行通信。核心706還可以包括一個(gè)或多個(gè)寄存器816,以存儲(chǔ)由核心706的各種組件訪問的數(shù)據(jù)(例如,與功耗狀態(tài)設(shè)置有關(guān)的值)。
此外,即使圖7示出了控制單元720要經(jīng)由互連812耦合到核心706,在各種實(shí)施例中,控制單元720也可以位于其它地方,例如,核心706內(nèi)部、經(jīng)由總線704耦合到核心等。
在一些實(shí)施例中,本文所討論的組件中的一個(gè)或多個(gè)可以被實(shí)施為片上系統(tǒng)(soc)設(shè)備。圖9示出了根據(jù)實(shí)施例的soc封裝的框圖。如圖9所示,soc902包括一個(gè)或多個(gè)中央處理單元(cpu)核心920、一個(gè)或多個(gè)圖形處理器單元(gpu)核心930、輸入/輸出(i/o)接口940、以及存儲(chǔ)器控制器942。soc封裝902的各種組件可以耦合到互連或總線,例如,本文參考其它附圖所討論的。另外,soc封裝902可以包括更多或更少的組件,例如,本文參考其它附圖所討論的組件。此外,soc封裝902的每個(gè)組件可以包括一個(gè)或多個(gè)其它組件,例如,如參考本文其它附圖所討論的。在一個(gè)實(shí)施例中,soc封裝902(及其組件)設(shè)置在一個(gè)或多個(gè)集成電路(ic)管芯上,例如,其被封裝在單個(gè)半導(dǎo)體器件中。
如圖9所示,soc封裝902經(jīng)由存儲(chǔ)器控制器942耦合到存儲(chǔ)器960(其可以與本文參考其它附圖所討論的存儲(chǔ)器類似或相同)。在實(shí)施例中,存儲(chǔ)器960(或其一部分)可以集成在soc封裝902上。
i/o接口940可以耦合到一個(gè)或多個(gè)i/o設(shè)備970,例如,經(jīng)由互連和/或總線(例如,本文參考其它附圖所討論的)。i/o設(shè)備970可以包括鍵盤、鼠標(biāo)、觸摸板、顯示器、圖像/視頻捕獲設(shè)備(例如,照相機(jī)或攝像機(jī)/錄影機(jī))、觸摸屏、揚(yáng)聲器等中的一個(gè)或多個(gè)。
圖10示出了根據(jù)本發(fā)明的實(shí)施例的以點(diǎn)對(duì)點(diǎn)(ptp)配置進(jìn)行布置的計(jì)算系統(tǒng)1000。具體而言,圖10示出了這樣的系統(tǒng):其中處理器、存儲(chǔ)器、以及輸入/輸出設(shè)備通過多個(gè)點(diǎn)對(duì)點(diǎn)接口互連。參考圖2所討論的操作可以由系統(tǒng)1000的一個(gè)或多個(gè)組件執(zhí)行。
如圖10所示,系統(tǒng)1000可以包括若干處理器,為了清楚起見,僅示出了其中的兩個(gè)(處理器1002和1004)。處理器1002和1004每個(gè)均可以包括本地存儲(chǔ)器控制器集線器(mch)1006和1008,以實(shí)現(xiàn)與存儲(chǔ)器1010和1012的通信。在一些實(shí)施例中,mch1006和1008可以包括圖1的存儲(chǔ)器控制器120和/或邏輯125。
在實(shí)施例中,處理器1002和1004可以是參考圖7所討論的處理器702中的一個(gè)。處理器1002和1004可以經(jīng)由點(diǎn)對(duì)點(diǎn)(ptp)接口1014分別使用ptp接口電路1016和1018交換數(shù)據(jù)。另外,處理器1002和1004每個(gè)均可以經(jīng)由單獨(dú)的ptp接口1022和1024使用點(diǎn)對(duì)點(diǎn)接口電路1026、1028、1030、以及1032與芯片組1020交換數(shù)據(jù)。芯片組1020可以進(jìn)一步經(jīng)由高性能圖形接口1036與高性能圖形電路1034交換數(shù)據(jù),例如,使用ptp接口電路1037。
如圖10所示,圖1的核心106和/或高速緩存108中的一個(gè)或多個(gè)可以位于處理器902和904內(nèi)。然而,本發(fā)明的其它實(shí)施例可以存在于圖9的系統(tǒng)900內(nèi)的其它電路、邏輯單元、或設(shè)備中。此外,本發(fā)明的其它實(shí)施例可以遍及圖9所示的若干電路、邏輯單元或設(shè)備分布。
芯片組920可以使用ptp接口電路941與總線940通信??偩€940可以具有與其通信的一個(gè)或多個(gè)設(shè)備,例如,總線橋942和i/o設(shè)備943??偩€橋943可以經(jīng)由總線944與以下其它設(shè)備進(jìn)行通信:例如,鍵盤/鼠標(biāo)945、通信設(shè)備946(例如,調(diào)制解調(diào)器、網(wǎng)絡(luò)接口設(shè)備、或可以與計(jì)算機(jī)網(wǎng)絡(luò)803通信的其它通信設(shè)備)、音頻i/o設(shè)備、和/或數(shù)據(jù)存儲(chǔ)設(shè)備948。數(shù)據(jù)存儲(chǔ)設(shè)備948(其可以是硬盤驅(qū)動(dòng)器或基于nand閃存的固態(tài)驅(qū)動(dòng)器)可以存儲(chǔ)可以由處理器902和/或904執(zhí)行的代碼949。
以下內(nèi)容涉及其它實(shí)施例。
示例1是一種控制器,該控制器包括邏輯,至少部分地包括硬件邏輯,其用于:接收對(duì)于建立組合計(jì)算設(shè)備的請(qǐng)求,定義要與組合計(jì)算設(shè)備相關(guān)聯(lián)的多個(gè)虛擬存儲(chǔ)器設(shè)備,從共享物理存儲(chǔ)器池中分派存儲(chǔ)器給多個(gè)虛擬存儲(chǔ)器設(shè)備,創(chuàng)建針對(duì)多個(gè)虛擬存儲(chǔ)器設(shè)備的多個(gè)虛擬串行檢測(cè)(vspd),以及將多個(gè)vspd存儲(chǔ)在操作存儲(chǔ)器設(shè)備中的鏈表中。
在示例2中,示例1的主題可以可選地包括邏輯,至少部分地包括硬件邏輯,其用于:將多個(gè)vspd分配給用于組合計(jì)算設(shè)備的快速外圍組件互連(pcie)能力結(jié)構(gòu)。
在示例3中,示例1-2中任一項(xiàng)的主題可以可選地包括邏輯,至少部分地包括硬件邏輯,其用于:將組合計(jì)算設(shè)備釋放到運(yùn)行時(shí)環(huán)境中。
在示例4中,示例1-3中的任一項(xiàng)的主題可以可選地包括邏輯,至少部分地包括硬件邏輯,其用于:檢測(cè)分派給多個(gè)虛擬存儲(chǔ)器設(shè)備的存儲(chǔ)器區(qū)域的改變,并響應(yīng)于該改變而創(chuàng)建針對(duì)多個(gè)虛擬存儲(chǔ)器設(shè)備的多個(gè)虛擬串行檢測(cè)(vspd),以及將多個(gè)vspd存儲(chǔ)在易失性存儲(chǔ)器設(shè)備中的鏈表中。
在示例5中,示例1-4中任一項(xiàng)的主題可以可選地包括邏輯,至少部分地包括硬件邏輯,其用于:將多個(gè)vspd分配給用于組合計(jì)算設(shè)備的快速外圍組件互連(pcie)能力結(jié)構(gòu)。
在示例6中,示例1-5中任一項(xiàng)的主題可以可選地包括以下布置:其中存儲(chǔ)器設(shè)備耦合到共享存儲(chǔ)器控制器。
在示例7中,示例1-6中任一項(xiàng)的主題可以可選地包括以下布置:其中共享存儲(chǔ)器控制器包括操作存儲(chǔ)器,并且其中包括多個(gè)vspd的鏈表存儲(chǔ)在操作存儲(chǔ)器中。
在示例8中,示例1-7中任一項(xiàng)的主題可以可選地包括邏輯,至少部分地包括硬件邏輯,其用于:重新使用在存儲(chǔ)器控制器的操作存儲(chǔ)器中存儲(chǔ)器的至少一部分。
在示例9中,示例1-8中任一項(xiàng)的主題可以可選地包括邏輯,至少部分地包括硬件邏輯,其用于:監(jiān)測(cè)共享存儲(chǔ)器控制器中的操作存儲(chǔ)器;以及當(dāng)操作存儲(chǔ)器處于滿容量時(shí)暫停釋放新的組合計(jì)算設(shè)備。
在示例10中,示例1-9中任一項(xiàng)的主題可以可選地包括以下布置:其中共享物理存儲(chǔ)器池包括多個(gè)雙列直插存儲(chǔ)器模塊(dimm)。
示例11是一種基于計(jì)算機(jī)的方法,其用于分派虛擬計(jì)算環(huán)境中的資源,包括:在控制器中接收對(duì)于建立組合計(jì)算設(shè)備的請(qǐng)求;在控制器中定義要與組合計(jì)算設(shè)備相關(guān)聯(lián)的多個(gè)虛擬存儲(chǔ)器設(shè)備;在控制器中從共享物理存儲(chǔ)器池中分派存儲(chǔ)器給多個(gè)虛擬存儲(chǔ)器設(shè)備;在控制器中創(chuàng)建針對(duì)多個(gè)虛擬存儲(chǔ)器設(shè)備的多個(gè)虛擬串行檢測(cè)(vspd);以及將多個(gè)vspd存儲(chǔ)在通信地耦合到控制器的操作存儲(chǔ)器設(shè)備中的鏈表中。
在示例12中,示例11的主題可以可選地包括:將多個(gè)vspd分配給用于組合計(jì)算設(shè)備的快速外圍組件互連(pcie)能力結(jié)構(gòu)。
在示例13中,示例11-12中任一項(xiàng)的主題可以將組合計(jì)算設(shè)備釋放到運(yùn)行時(shí)環(huán)境中。
在示例14中,示例11-13中任一項(xiàng)的主題可以可選地包括:檢測(cè)分派給多個(gè)虛擬存儲(chǔ)設(shè)備的存儲(chǔ)器區(qū)域的改變,并響應(yīng)于該改變而創(chuàng)建針對(duì)多個(gè)虛擬存儲(chǔ)器設(shè)備的多個(gè)虛擬串行檢測(cè)(vspd),以及將多個(gè)vspd存儲(chǔ)在易失性存儲(chǔ)器設(shè)備中的鏈表中。
在示例15中,示例11-14中任一項(xiàng)的主題可以可選地包括:將多個(gè)vspd分配給用于組合計(jì)算設(shè)備的快速外圍組件互連(pcie)能力結(jié)構(gòu)。
在示例16中,示例11-15中任一項(xiàng)的主題可以可選地包括以下布置:其中存儲(chǔ)器設(shè)備耦合到共享存儲(chǔ)器控制器。
在示例17中,示例11-16中任一項(xiàng)的主題可以可選地包括以下布置:其中共享存儲(chǔ)器控制器包括操作存儲(chǔ)器,并且其中包括多個(gè)vspd的鏈表存儲(chǔ)在操作存儲(chǔ)器中。
在示例18中,示例11-17中任一項(xiàng)的主題可以可選地包括:重新使用在存儲(chǔ)器控制器的操作存儲(chǔ)器中的存儲(chǔ)器的至少一部分。
在示例19中,示例11-18中任一項(xiàng)的主題可以可選地包括:監(jiān)測(cè)共享存儲(chǔ)器控制器中的操作存儲(chǔ)器,以及當(dāng)操作存儲(chǔ)器處于滿容量時(shí),暫停釋放新的組合計(jì)算設(shè)備。
在示例20中,示例11-19中任一項(xiàng)的主題可以可選地包括以下布置:其中共享物理存儲(chǔ)器池包括多個(gè)雙列直插存儲(chǔ)器模塊(dimm)。
在本發(fā)明的各種實(shí)施例中,本文所討論的操作(例如,參考圖1-10)可以被實(shí)現(xiàn)為硬件(例如,電路)、軟件、固件、微代碼、或其組合,其可以被設(shè)置為計(jì)算機(jī)程序產(chǎn)品,例如,包括有形的(例如,非暫時(shí)性的)機(jī)器可讀或計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)有用于將計(jì)算機(jī)編程為執(zhí)行本文所討論的過程的指令(或軟件過程)。另外,術(shù)語(yǔ)“邏輯”可以包括(舉例來(lái)說(shuō))軟件、硬件、或軟件與硬件的組合。機(jī)器可讀介質(zhì)可以包括存儲(chǔ)設(shè)備,例如,本文所討論的那些存儲(chǔ)設(shè)備。
說(shuō)明書中對(duì)“一個(gè)實(shí)施例”或“實(shí)施例”的引用表示結(jié)合實(shí)施例描述的特定特征、結(jié)構(gòu)或特性可以包括在至少一個(gè)實(shí)現(xiàn)方式中。在說(shuō)明書中各處出現(xiàn)的短語(yǔ)“在一個(gè)實(shí)施例中”可以全部指代相同的實(shí)施例或者并非全部指代相同的實(shí)施例。
另外,在說(shuō)明書和權(quán)利要求書中,可以使用術(shù)語(yǔ)“耦合”和“連接”及其衍生詞。在本發(fā)明的一些實(shí)施例中,“連接”可以用于指示兩個(gè)或更多個(gè)元件彼此直接物理或電接觸?!榜詈稀笨梢员硎緝蓚€(gè)或更多個(gè)元件直接物理或電接觸。然而,“耦合”還可以表示兩個(gè)或更多個(gè)元件可以不彼此直接接觸,但是仍然可以彼此協(xié)作或交互。
因此,雖然已經(jīng)以專用于結(jié)構(gòu)特征和/或方法動(dòng)作的語(yǔ)言描述了本發(fā)明的實(shí)施例,但是應(yīng)當(dāng)理解,所要求保護(hù)的主題可以不限于所描述的特定特征或動(dòng)作。相反,具體特征和動(dòng)作作為實(shí)現(xiàn)所要求保護(hù)的主題的樣本形式而公開。