專利名稱:資源動態(tài)再配置的方法、系統(tǒng)和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及支持聯(lián)機(jī)增加和刪除系統(tǒng)資源和/或再配置操作。例如,本 發(fā)明易于在多操作系統(tǒng)(OS)分區(qū)間動態(tài)分配系統(tǒng)資源。
技術(shù)背景當(dāng)前系統(tǒng)基于前端總線(FSB),不允許對獨(dú)立總線組件進(jìn)行熱插拔。 相反,新的總線技術(shù)方案支持增加和刪除系統(tǒng)資源,但受限于粗糙的粒度, 例如要求FSB上的所有處理器遵循系統(tǒng)控制芯片組。發(fā)明內(nèi)容一種便于資源動態(tài)再配置的系統(tǒng),包含具有耦合到網(wǎng)絡(luò)結(jié)構(gòu)的多個髙 速緩存代理和本地代理的點(diǎn)對點(diǎn)結(jié)構(gòu);該系統(tǒng)支持獨(dú)立資源的動態(tài)再配置。一種聯(lián)機(jī)增加獨(dú)立資源的方法,包含為獨(dú)立資源建立物理和邏輯信 息;在正在運(yùn)行的系統(tǒng)(RS)和該獨(dú)立資源之間定義串行鏈路;設(shè)置通向 固件的路徑;在該獨(dú)立資源上運(yùn)行自測試和初始化;向該RS上的固件執(zhí)行 指示該獨(dú)立資源準(zhǔn)備好加入至少一個分區(qū);向該RS上的搡作系統(tǒng)(OS)指 示該獨(dú)立資源準(zhǔn)備Jt予加入至少 一個分區(qū)。一種聯(lián)機(jī)刪除處理器節(jié)點(diǎn)的方法,包含要求移除處理器節(jié)點(diǎn);對于 要求移除的該處理器節(jié)點(diǎn),從脫機(jī)的處理器和存儲器中移走應(yīng)用程序;從 各個相關(guān)列表中移除要求移除的該處理器節(jié)點(diǎn);產(chǎn)生要求移除的該處理器 節(jié)點(diǎn)確實(shí)被移除的信號。一種聯(lián)機(jī)刪除存儲節(jié)點(diǎn)的方法,包含遷移使用存儲節(jié)點(diǎn)的應(yīng)用程序 和設(shè)備驅(qū)動程序;刷新可分頁存儲器到磁盤,或者如果有足夠的空閑存儲 器,貝'J將待移除的該存儲節(jié)點(diǎn)的存儲內(nèi)容拷貝到務(wù)賭器的另一區(qū)域即被移 到其它存儲段。一種聯(lián)機(jī)刪除存儲節(jié)點(diǎn)的方法,包含遷移使用存儲節(jié)點(diǎn)的應(yīng)用程序 和設(shè)備驅(qū)動程序;刷新可分頁存儲器到磁盤,或者如果有足夠的空閑存儲 器,則將待移除的該存儲節(jié)點(diǎn)的存儲內(nèi)容拷貝到肩4者器的另 一 區(qū)域即被移 到其它存儲段;如果移除的存儲節(jié)點(diǎn)被分配給直接存儲器訪問(DMA)設(shè) 備,則停止設(shè)備驅(qū)動程序或?qū)⑵浞峙浣o新的緩存器。一種聯(lián)機(jī)刪除存儲節(jié)點(diǎn)的方法,包含遷移使用存儲節(jié)點(diǎn)的應(yīng)用程序 和設(shè)備驅(qū)動程序;刷新可分頁存儲器到磁盤,或者如果有足夠的空閑存儲 器,貝'J將待移除的該存儲節(jié)點(diǎn)的存儲內(nèi)容拷貝到^4老器的另一區(qū)域即被移 到其它存儲段;如果移除的存儲節(jié)點(diǎn)被分配給直接存儲器訪問(DMA)設(shè) 備,則停止設(shè)備驅(qū)動程序或?qū)⑵浞峙浣o新的緩存器;固件針對移除的存儲 節(jié)點(diǎn)定義的地址范圍刷新處理器和多個平臺高速緩沖存儲器。一種便于資源動態(tài)再配置的系統(tǒng),包含具有耦合到網(wǎng)絡(luò)結(jié)構(gòu)的多個 高速緩存代理和本地代理的點(diǎn)對點(diǎn)結(jié)構(gòu);該系統(tǒng)用停止和激活操作支持獨(dú) 立資源的動態(tài)再配置;該動態(tài)再配置允許^:機(jī)增加和聯(lián)機(jī)刪除獨(dú)立資源, 且不要求重新啟動操作系統(tǒng)。
在說明書的結(jié)論部分特別指出并清楚地要求了主題。然而所要求的主 題,關(guān)于操作的組織和方法連同對象、特4正和其優(yōu)點(diǎn),在結(jié)合附圖參考以 下詳細(xì)描述時可以更好的理解,其中圖1是一個實(shí)施例使用的協(xié)議結(jié)構(gòu)。圖2說明一個實(shí)施例使用的聯(lián)機(jī)增加資源的方法的流程圖。圖3說明一個實(shí)施例使用的聯(lián)機(jī)刪除資源的方法的流程圖。圖4是系統(tǒng)的多個實(shí)施例。具體實(shí)施例以下說明中描述了 一種高速點(diǎn)對點(diǎn)網(wǎng)絡(luò)(^)Tp)的細(xì)粒動態(tài)再配置的方 法、設(shè)備和系統(tǒng),為了i兌明的目的,闡述許多細(xì)節(jié)以便全面理解本發(fā)明。然 而,對于本領(lǐng)域技術(shù)人員而言,不需要這些細(xì)節(jié)即可實(shí)踐本發(fā)明。當(dāng)前技術(shù)發(fā)展的領(lǐng)域涉及可靠性、可用性和可服務(wù)l生(RAS)以及動 態(tài)再配置。如前所述,當(dāng)前系統(tǒng)基于前端總線(FSB),該前端總線不允許對單個總線組件進(jìn)行熱插拔。相瓦新的總線技術(shù)方案支持增加和刪除系統(tǒng)資源,但受限于相教的粒度,例如,要求FSB上的所有處理器遵循系統(tǒng)控 制芯片組。相反,所要求的主題便于包括聯(lián)機(jī)增加、刪1^^替換獨(dú)立模塊 的動態(tài)再配置,以便支持系統(tǒng)的動態(tài)分區(qū)、互連(鏈路)再配置、存儲器 RAS,從而允許沒有OS干預(yù)的遷移和鏡^f象、動態(tài)存儲器再交錯、CPU和套 接字遷移,并支持跨分區(qū)的全局共享存儲器。為了便于聯(lián)機(jī)增加或刪除, 固件能停止(quiesce)和激活(de-quiesce)相關(guān)域,使得以對固件上的軟件 層實(shí)質(zhì)上像是原子搡作的方式更新許多系統(tǒng)資源、比如路由選擇表和地址 譯碼器。所要求的主^K更于利用運(yùn)行系統(tǒng)和/或系衾O艮務(wù)處理器進(jìn)行的動態(tài) 配置的操作。運(yùn)行系統(tǒng)已經(jīng)由2002年的申請記錄"在基于Itanium 結(jié)構(gòu)的 系統(tǒng)上的節(jié)點(diǎn)熱插拔"所提出。在一個實(shí)施例中,運(yùn)行系統(tǒng)包含系統(tǒng)資源,系統(tǒng)資源在新元素加入系 統(tǒng)/域中時已經(jīng)可操作,或者當(dāng)元素從系統(tǒng)/域中移除時系統(tǒng)資源保留可操 作性。定義在一個實(shí)施例中,停止?fàn)顟B(tài)是除了由固件和/或服務(wù)系統(tǒng)處理器生成的 協(xié)議事務(wù)處理以外,整個系統(tǒng)或其子集中都沒有協(xié)議事務(wù)處理的狀態(tài)。在一個實(shí)施例中,停止是由固件或系鄉(xiāng)劃l務(wù)處理器做出的一組動作, 以保證該整個系統(tǒng)或其子集達(dá)到停止。在一個實(shí)施例中,模塊可以包舍多個CPU、交叉開關(guān)、存儲器和存儲 控制器、IO集線器或前面的任何組合。在這個實(shí)施例中,前面模塊的組合 可以基于特定平臺配置。在一個實(shí)施例中,點(diǎn)對點(diǎn)結(jié)構(gòu)是由英特爾公司的公共系鄉(xiāng)緣口 (CSI) 定義的,并且支持分層協(xié)議方案。圖1說明了基礎(chǔ)網(wǎng)絡(luò)的高速緩存一致性 協(xié)議的抽象視圖的示例。高速緩存一致性協(xié)議的一個示例在2004年提交的 未決申請P18890中描述。如前所逸所要求的主題便于至少部分基于能夠停止和激活相關(guān)域的 固件的聯(lián)機(jī)增加或刪除,使得以對固件上的軟件層實(shí)質(zhì)上像是原子操作的 方式可以更新許多系統(tǒng)資源,比如路由選擇表和地址譯碼器。以下幾段將描述用平臺相關(guān)配置或系鄉(xiāng)Aa務(wù)處理器對IA32和Itanium處理器的停止和激 活的若干例子。在一個實(shí)施例中,固件保證單個停止搡作在任何時候至多在一個城內(nèi) 部進(jìn)行。在另一個實(shí)施例中,多個停止搡作在具有多個域的系統(tǒng)中是可允 許的。例如,停止4斜乍由特定內(nèi)核(帶內(nèi))或SSP ((帶外)啟動。SSP能 夠通過它的非CSI網(wǎng)絡(luò)控制該停止或者能夠指定一個內(nèi)核,該內(nèi)核遵循帶 內(nèi)流程。-對于多分區(qū)系統(tǒng),固件可以選^^停止每個分區(qū)(子域)并在每個分 區(qū)(子域)被停止后宣布停止,或通過對IOH作用域寄存器和相關(guān)數(shù)據(jù)結(jié) 構(gòu)適當(dāng)編程來停止作為皿的域。-在進(jìn)行停止操作時(在IA-32平臺中),不允許使用鎖。例如,這 可以用首先通過SMI搡作將域中所有處理器帶入SMM來保證。 使用系鄉(xiāng)W良務(wù)處理器(SSP)停止/激活SSP可以用來代替前述帶內(nèi)流程。SSP可以使用帶外總線如SM總線和 JTAG,以便對處理器和IOH寄存器編程并檢查它們的狀態(tài)。然后該流程以 類似于前面所述流程的方式進(jìn)行,除了由"啟動內(nèi)核"執(zhí)行的功能現(xiàn)在由 SSP執(zhí)行?;蛘?,SSP可向啟動內(nèi)核發(fā)送PMI/SMI,然后完4r^l負(fù)帶內(nèi)管理 流程來實(shí)現(xiàn)停止/激活。例如,圖1是一個實(shí)施例使用的協(xié)議結(jié)構(gòu)。該結(jié)構(gòu)描述耦合到網(wǎng)絡(luò)結(jié) 構(gòu)的多個高速緩存代理和本地代理。例如,該網(wǎng)絡(luò)結(jié)構(gòu)結(jié)合分層協(xié)議方案 并可以包含下列任意一個或全部鏈路層、物理層、協(xié)議層、路由層、傳 輸層。該結(jié)構(gòu)便于將消息從一種協(xié)議(本地或高速緩#^理)傳輸?shù)近c(diǎn)到 點(diǎn)網(wǎng)絡(luò)的另一種協(xié)議。 一方面,該圖描述了勤出網(wǎng)絡(luò)的高速緩存一致性協(xié) 議的抽象3見圖。圖2說明實(shí)施例使用的聯(lián)機(jī)增加資源的方法的流程圖。該圖描述聯(lián)機(jī) 增加資源的流程的方法,該方法可由帶內(nèi)固件(運(yùn)行在CPU上的固件)或 系纟^J良務(wù)處理器(SSP)或二者的結(jié)合來執(zhí)行。在這個實(shí)施例中,增加的聯(lián) 機(jī)資源是一個處理器節(jié)點(diǎn),有或沒有其它實(shí)體。起初,為聯(lián)機(jī)增加處理器節(jié)點(diǎn)而執(zhí)行物理和邏輯的建立。例如,SSP和/或RS固件知道平臺的拓樸結(jié)構(gòu)和處理器節(jié)點(diǎn)、OL_A將連接到的CSI 鏈路。在一個實(shí)施例中,它為〇L—A正連接到的一個或多個節(jié)點(diǎn)上存在的 每個CSI實(shí)體在RS上建立適當(dāng)?shù)年P(guān)于如下信息(節(jié)點(diǎn)ID,代理類型和交叉 開關(guān)端口號}的4連^各控制器。同樣地,它也為與此類CSI鏈;^相關(guān)聯(lián)的RS 上的一個或多個配置實(shí)體編程,以便在鏈路初始化完成時,向RS上的一個 或多個處理器實(shí)體生成PMI/SMI中斷。在一個實(shí)施例中,SMI是系統(tǒng)管理中斷(IA32)并且PMI:平臺管理中 斷(等同IPF)。在一個實(shí)施例中,其中OL-A節(jié)點(diǎn)是RS的一部分并已經(jīng)具有活動鏈 路,不執(zhí)行PMI/SMI中斷的供給(arming)。例如,這種情況出Sjyt當(dāng)處 理器實(shí)體4皮邏輯上從一個分區(qū)中移除并加入到另 一個分區(qū)時。接著,通過物理方式或通過SSP將處理器節(jié)點(diǎn)插入,其中SSP允許將 已存在節(jié)點(diǎn)包括到OS分區(qū)作為新處理器節(jié)點(diǎn)(01^A節(jié)點(diǎn))。如果涉及物 理插入,則該插入觸發(fā)在OI^A節(jié)點(diǎn)上的通電復(fù)位序列,并啟動OI^A上 的帶外信號(SM總線、JTAG等等),就此,SSP能夠訪問OL_A上的控 制狀態(tài)寄存器(CSR)資源。在一個實(shí)施例中,為每個鏈路定義CSR。例如,它映射鏈路端口狀態(tài) 和鏈路初始化進(jìn)程。可由系統(tǒng)管理通道或帶內(nèi)固件查詢CSR,以驗證與鏈 路狀態(tài)有關(guān)的各種情況鏈路連接到遠(yuǎn)程組件、檢測的空閑遷徙(idle他)、 檢測的空閑遷徙確認(rèn)、鏈路初始化狀態(tài)、啟動CSI 4泉路初始化和幀序列等 等。在一個實(shí)施例中,可通過構(gòu)造空間訪問CSR。如果存在SSP,則它為加入RS的每個現(xiàn)場可置換單元(FRU)上存在 的每個CSI實(shí)體用三元組{節(jié)點(diǎn)ID ,代理類型和交叉開關(guān)端口號}建立〇L_A 的鏈4^空制器。在沒有SSP的情況下,OL-A上的固件(iU敫碼)執(zhí)行該功 能。OI^A上的固件或〇L_A內(nèi)的配置代理可以讀取一些平臺信號或聯(lián)接插 腳以導(dǎo)出它們自己的節(jié)點(diǎn)ID信息。該流程進(jìn)行到下一個模塊204,啟動RS和要加入節(jié)點(diǎn)、01^A之間的 CSI^1路。例如,將在以下幾個段落討論啟動該鏈路的詳細(xì)信息。.SSP或RS上的固件向鏈路控制器發(fā)布命令以執(zhí)行物理和鏈路層的初 始化以及鏈路/協(xié)議層參數(shù)的交換。在成功的鏈路初始化結(jié)束,鏈路各側(cè)鎖 存關(guān)于鏈路另一端上存在的CSI實(shí)體信息,即,三元組(節(jié)點(diǎn)ID,代理類型 和交叉開關(guān)端口號}。如果該OI^A已經(jīng)是系統(tǒng)的一部分并且4^^各是激活的,將不執(zhí)行這一步。'RS上一個或多個處理器實(shí)體接收PME/SMI以識別OL_A事件???能有一些在OL_A節(jié)點(diǎn)內(nèi)不同CSI實(shí)體之間的CSI鏈路也需要被初始化。 當(dāng)所有預(yù)期的CSI鏈路可操作時,在RS上的固件執(zhí)4亍繼續(xù)進(jìn)行OL—A的結(jié) 合。在多分區(qū)RS中,接收PMT/SMI中斷的RS上的固件執(zhí)行知道將OL_A 結(jié)合到的分區(qū),如果必要的話,并將PMI/SMI指示傳遞給正確分區(qū)上的固 件執(zhí)行??赏ㄟ^寫入生成PMI/SMI的目標(biāo)上的CSR來通知這種指示,或使 用平臺資源、4吏用SSP來通知。由于OL—A事件PMI/SMI中斷生成未發(fā)生,其中OL_A節(jié)點(diǎn)是RS的 一部分并已經(jīng)有活動4連J各(例如路由經(jīng)過OI^A) 。 OL^A可以如上所述向 RS通知PMI/SMI0就此,RS可以訪問〇L_A的CSR資源。 該步驟是固件和平臺實(shí)iJli目關(guān)的。系統(tǒng)接口可以提供一種機(jī)制,通 過該機(jī)制OL_A組件^皮設(shè)置為等候RS喚醒的停止?fàn)顟B(tài)??梢酝ㄟ^使用由 OL_A在復(fù)位取消聲明讀取的啟動模式指令提供這樣的指示,或在鏈路層參 數(shù)交換期間使用系統(tǒng)/套接層#來提供,或通過SSP設(shè)置OL一A的配置代 理的CSR值來提供。SSP和/或RS上的固件執(zhí)行合作設(shè)立RS和OL_A組件上的路由選擇 表、地址譯碼器和其它CSI結(jié)構(gòu)。在該編程的結(jié)尾,OL^A可以訪問RS上 全部/有限的資源。可以將固件設(shè)計成保護(hù)^^共資源如互連結(jié)構(gòu)使之免于 OL_A錯誤地訪問,直到該〇L_A組件^皮測試成功。該流程進(jìn)4亍到下一個模塊206,該模塊設(shè)置到固件的路徑。例如,將在 以下幾個段落討論設(shè)置通向固件的路徑的詳細(xì)信息。 每個處理器內(nèi)核都需要通向固件實(shí)體的^^^。如果該OL^A聯(lián)合體具有固件實(shí)體,則可以使用該固件實(shí)體。如果該OL—A節(jié)點(diǎn)連接到RS上的 固件實(shí)體,則那個固件實(shí)體能由該OI^A使用。如果這兩個選擇都不可用, 那么來自01^A的固件訪問可以路由經(jīng)過RS上的節(jié)點(diǎn),其中該節(jié)點(diǎn)擔(dān)當(dāng)通 向固件實(shí)體的管道。在這種情況下,SSP或RS上的固件在OI^A節(jié)點(diǎn)上建 立地址譯碼器和路由選擇表以路由固件訪問。
SSP或RS中的固件執(zhí)行寫入OL_A上的實(shí)iM目關(guān)CSR,以將其從停 止?fàn)顟B(tài)釋放,如果該OI^A等待這樣的信號。它們也可以提供平臺資源中的 一些配置值,比如通過OL—A限制平臺發(fā)現(xiàn)的范圍的熱添加指示。該流程進(jìn)行到下一個模塊208,該模塊允許要增加的新節(jié)點(diǎn)、OLA進(jìn) 行自測試并執(zhí)行初始化。例如,將在以下幾個段落討論進(jìn)行自測試和初始 化的詳細(xì)信息。OL—A上的每個處理器內(nèi)核都嘗試成為節(jié)點(diǎn)啟動捆綁處理器(NBSP)。 在一個可能的實(shí)施例中,使用簡單的竟賽來設(shè)置預(yù)定配置寄存器標(biāo)記可以 決定獲勝者。-在一些結(jié)構(gòu)配置中,在NBSP上運(yùn)行的固件同樣初始化并啟動存儲器 橋或存儲控制器的一些功能。在OL^A節(jié)點(diǎn)上,如果存在,該NBSP初始 化并測試存儲器。^f吏用配置寄存器或其它實(shí)現(xiàn)相關(guān)平臺資源,通過SSP/RS 上的固件將尺寸和存儲器間隙信息傳達(dá)給OI^A。 完成需要暫時^ft器的附加內(nèi)核初始化和測試。OL—A模式上的固 件和RS上的固件使用IPI或?qū)崿F(xiàn)相關(guān)平臺資源相互通信。如果OI^A節(jié)點(diǎn) 沒有^i也務(wù)賭器,它的^i者需求可以由RS上的務(wù)賭器滿足。當(dāng)OX^A節(jié)點(diǎn) 還不是RS相干域的一部分時,將這種存儲器非相干地映射到RS和OL—A。 非相干訪問同樣防止OL—A錯誤地訪問RS。如果期望OL_A引導(dǎo)獨(dú)立的〇S,那么OL_A節(jié)點(diǎn)有它自己的存儲器, 并且RS上的固件執(zhí)行和OL_A之間的配合不可用。該流進(jìn)行到下一個模塊210,該模塊向RS上的固件執(zhí)行指示OL_A已 準(zhǔn)備好加入一個或多個分區(qū)。例如,將在以下幾個段落討論詳細(xì)信息。 如果OI^A期望加入已存在的OS分區(qū),則〇L_A上的固件執(zhí)行向 RS上的固件執(zhí)行發(fā)送指示。任何一端的固件執(zhí)行都以實(shí)ijy目關(guān)方式交換信息。RS上的固件知道OL—A上處理器、由OL_A增加的存儲器和I/O集線 器資源的健康狀況。 如果OI^A導(dǎo)致RS內(nèi)的任何分區(qū)(或者可選的,整個RS)的路由 選擇表的變化,則固件執(zhí)行停止所有受影響的CSI實(shí)體的搡作,更新路由選 擇表,然后喚醒已停止的CSI實(shí)體。同樣逸〇L_A的路由選擇表是可根據(jù) 需要編程/重新編程的。同樣,參考14.3.5節(jié),"OLJ事件期間對于停止的 需要"了解詳情。如果OL^A期望形成一個新分區(qū),如果必要的話將其喚醒,并且OI^A上的固件進(jìn)行51導(dǎo)其操作系統(tǒng)。剩下的步驟描述OL_A將要加入一個已存在的分區(qū)的方案。 .OL—A和RS更新它們的系統(tǒng)地址映射和地址譯碼器以合并新資源。RS可能需要修正OS分區(qū)的各種CSI實(shí)體中的有關(guān)列表(監(jiān)聽、中斷廣播、加鎖等等)。如果不是以原子或一致方式修正這些列表則可能發(fā)生協(xié)議違例。
RS上的固件執(zhí)行和OL_A處理器節(jié)點(diǎn)使用實(shí)現(xiàn)特定機(jī)制相互作用, 并允許相互間相關(guān)性通信。
01^A節(jié)點(diǎn)上的固件執(zhí)行通知RS上的固件執(zhí)行關(guān)于引導(dǎo)進(jìn)乾然后 循環(huán)等待分區(qū)的OS的喚醒。該流程進(jìn)行到下一個模塊212,該模塊向RS上的OS指示OL_A節(jié)點(diǎn) 已準(zhǔn)備好加入一個或多個分區(qū)例如,詳細(xì)信息將在以下幾個段落討論。
RS上的固件執(zhí)行建立適當(dāng)?shù)腁CPI表,并使用ACPI機(jī)制向OS產(chǎn)生 中斷,以通知資源的增加。如果資源正坤i^到多個OS分區(qū),則該RS上的 固件將向多個分區(qū)發(fā)送中斷。.OS使用ACPI方法/接口識別OL_A節(jié)點(diǎn)的資源。如果增加I/O集 線器、橋和裝置,則操作系統(tǒng)將在I/O集線器上為新增加的資源加載適當(dāng)?shù)?設(shè)備驅(qū)動程序。如果增加了存儲器,OS就可開始使用這些存儲器。 操作系統(tǒng)喚醒OL_A節(jié)點(diǎn)上的處理器,并在這些處理器上執(zhí)行OS 初始化步驟。在另一個實(shí)施例中,增加的聯(lián)機(jī)資源僅是存儲節(jié)點(diǎn)。在這個實(shí)施例中,該流程類似于關(guān)于圖2的描繪。然而,它們的差異在以下幾個卓臾落描述。 將存儲節(jié)點(diǎn)通電,并且如果有的話,啟用帶外信號。SSP或OLA 存儲節(jié)點(diǎn)內(nèi)的配置代理用三元組(節(jié)點(diǎn)ID,代理類型和交叉開關(guān)端口號) 為增加到RS的FRU上存在的每個CSI實(shí)4本建立它的鏈膝控制器。 在鏈路/協(xié)議層初始化期間,RS從代理類型^t交換中識別存儲器實(shí) 體的增力口。 〇L_A ##器實(shí)體的增加向RS上的固件執(zhí)行產(chǎn)生PMI/SMI。 '如果OI^A導(dǎo)致RS的^^可分區(qū)中的路由選擇表改變,則固件可能需 要執(zhí)行停止在這些分區(qū)(或者可選的,整個RS)上的所有CSI實(shí)體的操作, 更新路由選擇表,然后喚醒已停止的CSI實(shí)體。典型逸純存儲器實(shí)體是 葉節(jié)點(diǎn),并且在無需停止的情況下,可以對RS的路由選擇表進(jìn)行修改。同 樣,參考14.3.5節(jié),"OL—*事件期間對于停止的需要"了解詳情。.初始化 SSP/RS上的固件并測試OL—A節(jié)點(diǎn)上的^f諸器。 RS更新它的系統(tǒng)地址映射和地址譯碼器以合并新資源。在存儲器實(shí) 體的目標(biāo)地址譯碼器被建立用來尋址新加的存儲器。
RS上的固件執(zhí)行建立適當(dāng)?shù)腁CPI表,并使用ACPI機(jī)制向操作系 統(tǒng)產(chǎn)生中斷,以通知資源的增加。如果資源正^Ci/口到多個OS分區(qū),貝,j RS 上的固件將向多個分區(qū)發(fā)送中斷。.RS上的一個或多個OS將該存儲器與一個或多個OS分區(qū)結(jié)合。 在另一個實(shí)施例中,增加的聯(lián)機(jī)資源僅是1/0集線器節(jié)點(diǎn)。在這個實(shí)施 例中,該流程務(wù)似于關(guān)于圖2的描繪。然而,它們的差異在以下幾個^殳落描 述。
SSP或OL_A節(jié)點(diǎn)內(nèi)的配置代理用三元組(節(jié)點(diǎn)ID,代理類型和交 叉開關(guān)端口號}為增加到RS的FRU上存在的每個CSI實(shí)體建立它的鏈4^空 制器。 在^l路/協(xié)議層初始化期間,RS從代理類型參數(shù)交換中識別I/O代理 實(shí)體的增加。
OL_AI/〇代理實(shí)體的增加向RS上的固件執(zhí)行產(chǎn)生PM/SMI。 -如果〇1^_入改變1^內(nèi)的4^f可分區(qū)的路由選擇表,則固件執(zhí)行停jb^該分區(qū)(或者可選的,整個RS)中的所有CSI實(shí)體的搡作,然后更新路由選擇表o RS確定下游總線和裝置所要求的MMI〇和I/O地址范圍。它更新 它的系統(tǒng)地址映射和地址譯碼器以合并新資源。在〇L_A I/O代理實(shí)體的 目標(biāo)地址譯碼器被建立用來尋址新增加的MMIO和I/O資源,并且在I/O 代理實(shí)體的源地址譯碼器被建立用來尋址RS存儲器和處理器資源。 如果這樣的實(shí)體是高速緩務(wù)氏理,那么各個CSI實(shí)體的用于監(jiān)聽的 相關(guān)列表被修改,以包括OL^AI/0代理實(shí)體。同樣i^如果OI^A刻乍為 鎖管理者,則初始化各個CSI實(shí)體上的適當(dāng)?shù)腃SR。 然后喚醒已停止的CSI實(shí)體。 RS上的固件執(zhí)行建立ACPI表,并使用ACPI機(jī)制向OS產(chǎn)生中斷,以 通知資源的增加。如^iL在向多個操作系統(tǒng)分區(qū)增加資源,則RS上的固件 將向多個分區(qū)發(fā)送中斷。
RS上的一個或多個OS識別OL_A事件,探測I/O集線器的I/O總 線下游,發(fā)現(xiàn)裝置,給這些裝置加載合適的設(shè)備驅(qū)動程序,然后將該裝置與 一個或多個OS分區(qū)結(jié)合。圖3說明一個實(shí)施例使用的聯(lián)機(jī)刪除資源的方法的流程圖。在本討論 中,01^D是從RS上刪掉的節(jié)點(diǎn)。在一個實(shí)施例中,依據(jù)系統(tǒng)配置,OL_D 節(jié)點(diǎn)可以是a)有存儲器和I/O的一個或多個處理器,b)有存儲器的一個或 多個處理器,c)僅為一個或多個處理器,d)僅為I/O集線器,e)僅為存儲器。 以下幾個段落用一系列步驟解釋刪除過程。在這個圖中,描述處理器節(jié)點(diǎn) 的刪除。如模塊302所逸請求移除特定的處理器節(jié)點(diǎn)OI^D。例如,在一個實(shí) 施例中,通過系統(tǒng)管理通道向OS發(fā)出該請求。接著,描述對于OL—D節(jié)點(diǎn)的一個或多個脫機(jī)處理器的動作,如模塊 304所描述的。例如,在以下幾個^爻落描述其信息。以下動作由不同的處理器(分別識別停止的處理器(QP)和RS的動 作)擬旦0-(QP)操作系統(tǒng)將應(yīng)用、中斷遠(yuǎn)離QP處理器并停ob^ QP中的調(diào)度工作。它同樣禁止在QP上的中斷。
(QP)通過移除TLB來停止預(yù)取和推測性的訪問。停止預(yù)取避免由 于引用因地址譯碼器變化可能映射出界的^i者器而? 1起的錯誤。-(QP) OS使用ACPI機(jī)制以通知不再使用該QP節(jié)點(diǎn),并且ACPI 機(jī)制以實(shí)現(xiàn)相關(guān)方式進(jìn)入固件層。然后固件層做以下工作-在IA-32系乾修正適當(dāng)?shù)南嚓P(guān)列表以保證QP不是隨后VLW、鎖和 廣播IPI事件的目標(biāo)。-固件保證^^可運(yùn)行中的中斷事務(wù)對于QP是未決的。該步驟是實(shí)Sli目 關(guān)的,并可能涉及為未決的中斷^C詢系統(tǒng)中的各個1/0集線器。讀IOH 導(dǎo)致從IOH釋放未完成的中斷。QP上的固件執(zhí)行必須向它自己發(fā)送PMI IPI,并^i正收到該P(yáng)MI。 這保證了 4^f可早先的中斷和IPI被傳達(dá)給QP內(nèi) 核。如果新中斷是未決的,則固件返回OS,并且期望OS Jl^從步驟2開 始的一系列動作。-在Itanium處理器,使用?]」、_預(yù)取_可視過程,固件停止對其存儲區(qū)域 預(yù)取數(shù)據(jù),其中存儲區(qū)域在寫回訪問,并具有受限制推測(WBL)存儲屬 性。-固件執(zhí)行處理器和平臺高速緩沖存儲器的刷新,并調(diào)用必要的指令以 刷新寫入聚合(WC)緩存器。-從固件空間中執(zhí)行以避免依賴RS ^i者器。-在Itanium處理器,調(diào)用PAL停止過程,該過程具有選擇用PMI傳送 類型將IPI寫到RS。在IA-32上用傳送類型SME IPI向RS產(chǎn)生IPI, l^r 是必要的步驟以達(dá)到低功l毛系統(tǒng)睡眠狀態(tài)。換句話it QP上的固件可為RS 上的OS創(chuàng)建^L則的向量中斷(例如SCI),并期望RS上的OS進(jìn)入固件以 執(zhí)行下面關(guān)于模塊306的功能。-此階^^r,出現(xiàn)任何MCA/INrr/PMI/SMI事件都不能喚醒內(nèi)核。只 有復(fù)位事件可以喚醒這些睡眠內(nèi)核。接著,將描述從各個相關(guān)列表中刪除QP,如模塊306所述。例如,在 以下幾個^落描述其信息。
(RS)RS上的固件在收到上述PMI/SMIIPI時做下述工作-執(zhí)行停止以保證完成所有運(yùn)行中的事務(wù),比如監(jiān)聽QP。-從RS上各個相關(guān)列表中移除QP。-如果有的話,從目錄/監(jiān)聽過濾結(jié)構(gòu)中移除QP。-改變QP的地址譯碼器,使得固件和數(shù)據(jù)訪問都不能離開QP節(jié)點(diǎn)。-從分區(qū)的固件數(shù)據(jù)結(jié)構(gòu)中移除QP參考。RS上的MAC不再映射到QP。-如果QP節(jié)點(diǎn)從系統(tǒng)中被物理移除,則固件也^W施移除交叉開關(guān)。 移除交叉開關(guān)涉及對多個CSI節(jié)點(diǎn)上的路由選擇表的修改,以繞過QP節(jié)點(diǎn)。 參考14.7節(jié),用于完成這些修改的多種選擇的"共享互連多分區(qū)管理"。進(jìn) 一步池在具有石更分區(qū)的系統(tǒng)中,如果要禁止從OU3到RS的鏈路,那么必 須更新路由選^r表。在此情況下,固件可能需要執(zhí)行停止在RS上的受影響 的CSI實(shí)體的操作,更新路由選擇表,然后喚醒已停止的CSI實(shí)體。同樣,參 考14.3.5節(jié),"OLJ事件期間對于停止的需要"了解詳情。-喚醒RS上已停止的CSI實(shí)體。-使用ACPI機(jī)制(例如,使用SCI中斷)通知RS上的OS成功完成刪除。 接著,描述OI^D節(jié)點(diǎn)可被移除的信號的生成,如模塊308所述。例如,在以下幾個段落描述其信息。-:(RS) OS從固件接收指示OL—D完成的中斷。如果該行為由它^,則它可以向SSP/系統(tǒng)管理應(yīng)用提供完成指示。如果要求物理移除OI^D節(jié)點(diǎn),則OS可能運(yùn)行一些ACPI方法來提供可見指示,例如,在移除槽上開啟發(fā)光二極管。在先前描述的實(shí)施例中,處理器節(jié)點(diǎn)被移除。在另一個實(shí)施例中,被 移除的聯(lián)機(jī)資源僅是存儲節(jié)點(diǎn)。在以下幾個^殳落論述其他細(xì)節(jié)。 〇S將使用移除的存儲器的應(yīng)用和設(shè)備驅(qū)動程序移到其它存儲段。 OS將可調(diào)頁存儲器刷新到磁盤,或者如果有足夠的空閑存儲器,則將 OL_D存儲內(nèi)容復(fù)制到另 一個存儲區(qū)域。有一些情況需要以下動作-如果移除的^f諸器被分配給直接^f諸器訪問(DMA)設(shè)備,那么必須 停止設(shè)備驅(qū)動程序或?qū)⑵浞峙浣o新的緩存器。-如果OS設(shè)計允許,OS可以向其它聯(lián)機(jī)存儲器重新映射核心存儲區(qū),所述核心存儲區(qū)^充機(jī)的務(wù)賭器的分區(qū)。-如果交叉存^#儲器并且存儲器交叉存耳3 4立度(交叉csi節(jié)點(diǎn))小于OS頁,那么來自與OLD節(jié)點(diǎn)共享相同OS頁的多個CSI節(jié)點(diǎn)的^il器需要 被調(diào)頁到磁盤。在極端的情況,在分區(qū)中所有可調(diào)頁存儲器都需要被調(diào)頁 到磁盤。-以物理尋址模式(諸如SAL注冊的OS_MCA、 OSJNIT進(jìn)入點(diǎn))對于os訪問的區(qū)域需要與固件的特定交互。。以物理尋址模式(僅僅復(fù)制到一個不同的物理地址是不行的)訪問固件存儲區(qū)域,存在對以的需要。
OS使用移除TLB停止對移除的存儲器的預(yù)料口推測性訪問,然后 將控制轉(zhuǎn)移到固件層。.在Itanium處理器,使用PALj頁^f、可視過程,固件停止對它的脫機(jī) ^^諸器的預(yù)耳又。 固件針對地址范圍刷新處理器和平臺高速緩沖存儲器。 如果I/0代理實(shí)體有高速緩沖存儲器,則固件^M"施釋放這些高 速緩沖存儲器并使存儲器更新。 固件執(zhí)行停止操作以保證完成在轉(zhuǎn)行中的對移除資源的事務(wù)處理。 在松M時內(nèi)也可以工作。不執(zhí)行路由通過功能的純^f諸節(jié)點(diǎn)是葉節(jié)點(diǎn),因 此,如果RS上路由選擇表的變化僅僅是被刪除存儲器的條目的移除,則可 以避免停止操作。 然后固件改變CSI實(shí)體上的地址譯碼器,以避免參考已移除的資源。 os將在它的地址空間看到"洞",并決不能在將來產(chǎn)生對脫機(jī)存儲器的請求。 然后固件釋放^[^f可已停止的RS上CSI實(shí)體,以恢復(fù)它們的作用。 固件使用ACPI機(jī)制通知OS完成移除,OS會提供平臺指令、例如 通知SSP或點(diǎn)亮LED等等。 如果存儲節(jié)點(diǎn)由多OS分區(qū)共享,則該步驟在所有分區(qū)進(jìn)4亍。 在先前描述的實(shí)施例中,僅移P余存儲節(jié)點(diǎn)。在另一個實(shí)施例中,移除 的資源是I/0集線器節(jié)點(diǎn)。在以下幾個段落論述它們的細(xì)節(jié)。OS ^^^施以停用移除的資源,然后請求固件修改由固件控制的平臺 資源。固件移除對CSI結(jié)構(gòu)中的資源、如地址譯碼器、相關(guān)列表等的參考,然后將完成通知OS。如下描述這些步驟: 搡作系統(tǒng)通知設(shè)備驅(qū)動程序關(guān)于I/O裝置被移除。如果不能關(guān)閉設(shè) 備驅(qū)動程序,那么它將拒絕請求,并且OS將不會繼續(xù)進(jìn)行移除。這樣的拒 絕可能影響從系統(tǒng)中移除其它資源。例如,如果已經(jīng)為DMA操作為設(shè)備驅(qū) 動程序分配了存4者緩存器,并且設(shè)備驅(qū)動程序不能釋放這樣的緩存器,那么 與該緩存器有關(guān)的務(wù)賭節(jié)點(diǎn)也不能被移除。 如果停止設(shè)備驅(qū)動程序,則OS收回與它們的代碼和數(shù)據(jù)區(qū)iii4目關(guān) 的存儲器。然后OS使用ACPI機(jī)制將控制交給固件層以執(zhí)行如下動作-如果1/0代理實(shí)體有高速緩沖存儲器,則固件采取步驟釋放該高速緩 沖^^諸器并4吏務(wù)賭器更新。-固件執(zhí)行停止搡作并保證完成運(yùn)行中的對移除資源的事務(wù)處理。 -在IA-32系鄉(xiāng)光如果移除的I/0集線器起鎖管理者的作用,則指定另一 個鎖管理者,在該新鎖管理者上建立鎖范圍寄存器,并修正RS上的各個CSI 實(shí)體上的鎖定目標(biāo)寄存器。如果移除的I/0集線器為中斷傳送(有目的地 縮寫的物理目的地或以平面/簇尋址方式的邏輯目的地)保持廣播列表,則 要求類似的步驟,并且必須將這類廣4番功能遷移到另一個I/0集線器。 -修正RS的CSI實(shí)體上的地址譯碼器,以避免參考已移除的資源。 -從相關(guān)列表比如監(jiān)聽、目錄、監(jiān)聽過濾等中刪除作為目標(biāo)的I/0集線 器CSI實(shí)體。-然后固件釋放^f可已停止的RS上CSI實(shí)體,以恢復(fù)它們的搡作。 -固件4吏用ACPI機(jī)制通知OS完成移除。-如果該1/〇節(jié)點(diǎn)是多OS分區(qū)(比如多OS分區(qū)共享的一個IOH)的 一部分,則在所有分區(qū)進(jìn)行這些步驟。圖4描述有一或多個處理器的點(diǎn)對點(diǎn)系統(tǒng)。所要求的主題包含幾個實(shí) 施例, 一個是具有一個處理器的406, 一個是具有兩個處理器(P)的402, 一個是具有四個處理器(p)的404。 在實(shí)施例402和404中,每個處理器 都耦合到存儲器(M),并且通過網(wǎng)絡(luò)結(jié)構(gòu)連接到每個處理器,網(wǎng)絡(luò)結(jié)構(gòu)可 包含下列任何一個或所有鏈路層、協(xié)議層、路由層、傳輸層和物理層。 該結(jié)構(gòu)便于點(diǎn)對點(diǎn)網(wǎng)絡(luò)從一種協(xié)議(本地或高速緩存代理)向另一種協(xié)議傳輸消息。如先前描述,網(wǎng)絡(luò)結(jié)構(gòu)系統(tǒng)支持結(jié)合圖1 - 3描述的任何實(shí)施例。對于實(shí)施例406,單處理器P通過對應(yīng)于分層協(xié)議方案的網(wǎng)絡(luò)結(jié)構(gòu)鏈路 耦合到圖形和存儲器控制,描述為IO+M+F。圖形和存儲器控制耦合到存儲 器,并能夠通過PCI Express鏈皿收和傳送。同樣逸圖形和存儲器控制 耦合到ICH。此外,ICH通過LPC總線耦合到固件集線器(FWH)。同樣, 對于不同的單處理器實(shí)施例,處理器有外部網(wǎng)絡(luò)結(jié)構(gòu)鏈路。處理器可以有 多個內(nèi)核,這些內(nèi)核有單獨(dú)或共享的高速緩沖^f諸器,每個內(nèi)核耦合到Xbar 路由器和非路由全局鏈落接口 。因仏該外部網(wǎng)絡(luò)結(jié)構(gòu)鏈路耦合到Xbar路 由器和非3各由全局4連44^口。雖然已經(jīng)參考特定的實(shí)施例描述了所要求的主題,但是該描述不意味 著局PPJ也解釋。參考所要求主題的描述,所公開的實(shí)施例的各種修改以及 所要求主題的替換實(shí)施例,對本領(lǐng)域技術(shù)人員而言是顯而易見的。故預(yù)計, 在不脫離如所附權(quán)利要求中定義的所要求主題的精神或范圍下,可以進(jìn)行 這樣的修改。
權(quán)利要求
1. 一種聯(lián)機(jī)增加獨(dú)立資源的方法,包含為獨(dú)立資源建立物理和邏輯信息;在正在運(yùn)行的系統(tǒng)(RS)和所述獨(dú)立資源之間定義串行鏈路;設(shè)置通向固件的路徑;在所述獨(dú)立資源上運(yùn)行自測試和初始化;向所述RS上的固件執(zhí)行指示所述獨(dú)立資源準(zhǔn)備好加入至少一個分區(qū);和向所述RS上的操作系統(tǒng)(OS)指示所述獨(dú)立資源準(zhǔn)備好加入至少一個分區(qū)。
2. 如權(quán)利要求l所述的方法,其中所述獨(dú)立資源是處理器結(jié)點(diǎn)、純存儲結(jié)點(diǎn)或i/o集線器結(jié)點(diǎn)。
3. —種聯(lián)機(jī)刪除處理器結(jié)點(diǎn)的方法,包含 要求移除處理器結(jié)點(diǎn);對于要求移除的所述處理器結(jié)點(diǎn),從脫機(jī)的處理器和存儲器中移走 應(yīng)用程序;從各個相關(guān)列表中移除要求移除的所述處理器結(jié)點(diǎn);和 產(chǎn)生要求移除的所述處理器結(jié)點(diǎn)確實(shí)^皮移除的信號。
4. 如權(quán)利要求3所述的方法,其中對于要求移除的所述處理器結(jié)點(diǎn), 由操作系統(tǒng)(OS)執(zhí)行從脫機(jī)的處理器和存儲器中移走所述應(yīng)用程序。
5. 如權(quán)利要求3所述的方法,其中所述處理器結(jié)點(diǎn)可能包含IA-32或 Itanium⑧處理器。
6. —種聯(lián)機(jī)刪除存儲結(jié)點(diǎn)的方法,包含 遷移使用存儲結(jié)點(diǎn)的應(yīng)用程序和設(shè)備驅(qū)動程序;和 刷新可分頁存儲器到磁盤,或者如果有足夠的空閑存儲器,則將待移除的所述存儲結(jié)點(diǎn)的存儲內(nèi)容拷貝到存儲器的另 一 區(qū)域即被移到其它存 儲段。
7. 如權(quán)利要求6所述的方法,其中所述坤皮移除的存儲結(jié)點(diǎn)來自分區(qū)。
8. —種聯(lián)機(jī)刪除存儲結(jié)點(diǎn)的方法,包含 遷移使用存儲結(jié)點(diǎn)的應(yīng)用程序和設(shè)備驅(qū)動程序;刷新可分頁存儲器到磁盤,或者如果有足夠的空閑存儲器,則將待移除的 所述存儲結(jié)點(diǎn)的存儲內(nèi)容拷貝到存儲器的另 一 區(qū)域即^皮移到其它存儲段;和如果移除的存儲結(jié)點(diǎn)被分配給直接存儲器訪問(DMA)設(shè)備,則停 止設(shè)備驅(qū)動程序或?qū)⑵浞峙浣o新的緩存器。
9. 如權(quán)利要求8所述的方法,其中所述移除的存儲結(jié)點(diǎn)來自分區(qū)。
10. —種聯(lián)機(jī)刪除存儲結(jié)點(diǎn)的方法,包含 遷移4吏用存儲結(jié)點(diǎn)的應(yīng)用程序和設(shè)備驅(qū)動程序; 刷新可分頁存儲器到磁盤,或者如果有足夠的空閑存儲器,則將待移除的所述^f諸結(jié)點(diǎn)的存儲內(nèi)容拷貝到存儲器的另一區(qū)域即被移到其它存 儲段;如果移除的存儲結(jié)點(diǎn)被分配給直接存儲器訪問(DMA)設(shè)備,則停 止設(shè)備驅(qū)動程序或?qū)⑵浞峙浣o新的緩存器;和固件針對移除的存儲結(jié)點(diǎn)定義的地址范圍刷新處理器和多個平臺高 速緩沖存儲器。
11. 如權(quán)利要求10所述的方法,其中移除的存儲結(jié)點(diǎn)來自分區(qū)。
全文摘要
描述一種包括聯(lián)機(jī)增加、刪除和替換獨(dú)立模塊的動態(tài)再配置,以便支持系統(tǒng)的動態(tài)分區(qū)、互連(鏈路)再配置、存儲器RAS,從而允許沒有OS干預(yù)的遷移和鏡像、動態(tài)存儲器再交錯、CPU和套接字遷移,并支持跨分區(qū)的全局共享存儲器。為了便于聯(lián)機(jī)增加或刪除,固件能停止和激活相關(guān)域,使得以對固件上的軟件層實(shí)質(zhì)上像是原子操作的方式更新許多系統(tǒng)資源、比如路由選擇表和地址譯碼器。
文檔編號H04L29/06GK101266560SQ20081009016
公開日2008年9月17日 申請日期2005年12月12日 優(yōu)先權(quán)日2004年12月13日
發(fā)明者A·庫馬, A·瓦加斯, E·德拉諾, I·肖伊納斯, J·亞亞辛哈, M·阿亞 申請人:英特爾公司