專利名稱:熱插拔接口控制方法和裝置的制作方法
熱插拔接口控制方法和裝置 本申請為分案申請,其原申請的申請日是2002年11月27日,申請號為02825789. 8, 發明名稱為“熱插拔接口控制方法和裝置”。相關申請本發明涉及與本申請同一天遞交、申請號未知、題為“Hot PlugCache Coherent Interface Method And Apparatus (熱插拔高速緩存一致接口的方法和裝置)”的申請。
背景技術:
技術進步已經為超越傳統商業方法的應用提供了許多的機會。互聯網上的電子商 務已經得到廣泛接受,這要求許多公司安裝不只一臺計算設備來架構網站和維護可以訪問 的數據庫,或與數據中心簽約來提供這樣的服務。除了性能以外,這些計算設備的重要功能 性特征還包括可靠性、可用性和可擴展性。一種已經用于提高計算設備的可靠性、可用性和可擴展性的方式是允許向運行著 的計算設備添加某些外圍部件或從其移除某些外圍部件,而不用重新啟動。例如,2001年6 月20日發布的1. 1版PCI (PeripheralComponent Interconnect,外圍設備互連)熱插拔 (Hot-Plug)規范給出了一種方式,通過該方式PCI插卡(add-in card),例如網卡、ATA(先 進技術附件)控制器、SCSI (小型計算機系統接口 )控制器、USB (通用串行總線)控制器以 及火線(FireWire,a. k. a 1394)控制器,可以被添加到運行著的計算設備上或從其移除。 但是PCI熱插拔沒有提供向運行著的計算設備添加處理器、存儲器、1/0中心,和/或從運 行著的計算設備移除它們。因此,計算設備的可靠性、可用性和可擴展性可以通過支持熱插 拔添加和/或熱插拔移除處理器、存儲器和/或1/0中心得到增強。
在附圖中,以示例而非限制的方式對本發明進行了說明。為了簡單和清楚地說明 起見,在圖中圖示的元件不一定按比例繪制。例如,為了清楚,將一些元件的尺寸相對其他 元件的尺寸進行了放大。此外,在適當的情形下,在各個附圖中重復使用標號以表示對應或 類似的元件。圖1圖示了包括熱插拔模塊的示例性計算設備;圖2圖示了圖1計算設備的示例性處理器/存儲器熱插拔模塊;圖3圖示了圖1計算設備的示例性處理器熱插拔模塊;圖4圖示了圖1計算設備的示例性存儲器熱插拔模塊;圖5圖示了圖1計算設備的示例性1/0熱插拔模塊;圖6圖示了圖1計算設備的示例性中平面(midplane);圖7圖示了與圖1計算設備的通信接口關聯的示例性熱插拔接口的部分;圖8圖示了圖1的計算設備的熱插拔模塊和關聯的通信接口的示例性狀態示意 圖;圖9A-9H圖示了用于向圖1的計算設備熱插拔添加熱插拔模塊和從其熱插拔移除
3熱插拔模塊的方法。
具體實施例方式在下面詳細的描述中,為了提供對本發明全面的理解,描述了許多具體的細節。但 是,本發明可以在沒有這些具體細節的情況下實施。在其他的例子中,為了不致使本發明模 糊,沒有對公知的方法、程序、部件和電路進行詳細的描述。此外,盡管可能給出了示例的大 小/模型/值/范圍,但是本發明不限于這些具體的例子。在說明書中提及的“一個實施例”、“實施例”、“示例性實施例”等表示所描述的實 施例可以包括特定的特征、結構或特點,但是不是每一個實施例都必須包括這些特定的特 征、結構或特點。而且,這樣的短語不一定指代同一個實施例。此外,當特定特征、結構或特 點被結合實施例說明時,應當認識到的是,無論其它實施例是否被清楚地描述了,以本領域 技術人員的知識水平能夠將這些特征、結構或特點與這些實施例結合。在隨后的描述和權利要求書中,可能使用術語“耦合”和“連接”以及它們的派生 詞。應該理解,這些術語不應被視為彼此的同義詞。確切地說,在特定的實施例中,“連接” 可以被用來表示兩個或更多元件彼此物理或電氣上直接接觸。“耦合”可以指兩個或更多元 件物理或電氣上直接接觸。但是,“耦合”也可以指兩個或更多元件彼此物理或電氣上不直 接接觸,但仍然彼此協作或相互作用。參考圖1,示例性計算設備100可以包括一個或多個被耦合到中平面120的熱插拔 模塊110。熱插拔模塊110可以包括一個或多個資源部件,例如處理器、存儲器、輸入/輸出 (I/O)中心和/或固件,其為計算設備100提供處理、存儲、I/O、固件和/或其他資源。熱插 拔模塊110和中平面120可以包括耦合器112、122以支持可拆卸地將熱插拔模塊110耦合 到中平面120。耦合器112、122可以包括一個或多個管腳、短截線(stub)、觸點、插孔、銷、 開關和/或其他機構以可拆卸地將熱插拔模塊110的電源信號、數據信號、控制信號、中斷 信號和/或其他信號耦合到中平面120的電源信號、數據信號、控制信號、中斷信號和/或 其他信號。就像要進一步詳細解釋的那樣,熱插拔模塊110和中平面120可以支持熱插拔添 加和熱插拔移除。在熱插拔添加期間,當計算設備100正在運行時,熱插拔模塊110可以被 耦合到中平面120,并且熱插拔模塊110的資源可以被添加到正在運行的計算設備100上, 而不用重啟計算設備100。在熱插拔移除期間,當計算設備100正在運行時,熱插拔模塊110 可以從計算設備100解除耦合,并且被移除的熱插拔模塊110的資源可以從正在運行的計 算設備100上移除,而不用重啟計算設備100。現在參考圖2,圖中示出了示例性的處理器/存儲器熱插拔模塊(HPM),其可以被 用來實現計算設備100的一個或多個熱插拔模塊110。示例性的處理器/存儲器HPM可以 包括具有熱插拔接口 212的節點控制器210。熱插拔接口 212可以包括一個或多個被耦合 到耦合器112的通信接口 214。如將在下面更加詳細說明的那樣,熱插拔接口 212可以支持 處理器/存儲器HPM的熱插拔添加和/或熱插拔移除。節點控制器210還可以被耦合到一 個或多個處理器230、存儲器240以及固件250。處理器230可以包括存儲器高速緩存232 以高速緩存計算設備100的一個或多個存儲器240的線(line),并可以通過探聽事務保持 存儲器高速緩存232的一致性。存儲器高速緩存232可以被實現為在處理器230內部和/
4或外部的多級分層次的高速緩存。存儲器240可以包括一個或多個被排列為存儲體的存儲 器模塊。固件250可以存儲基本輸入/輸出系統(BIOS)例程、數據和/或其他例程以初始 化或部分初始化處理器/存儲器HPM的部件,以及建立與計算設備100的其他熱插拔模塊 110的通信。處理器/存儲器HPM還可以包括狀態指示器260,其被耦合到節點控制器210的熱 插拔接口 212。狀態指示器260可以提供有關處理器/存儲器HPM的熱插拔狀態的指示。 例如,狀態指示器260可以包括提供可視指示器的顯示設備,例如一個或多個LED、IXD等, 和/或提供可聽指示器,例如揚聲器。例如,狀態指示器260可以指示處理器/存儲器HPM 已經成功地接入(join)到計算設備100、已經成功地離開計算設備100、處在正接入計算設 備100的過程中、處在正離開計算設備100的過程中和/或已經遇到某種錯誤狀況。節點控制器210還可以包括一個或多個與每個通信接口 214關聯的通用輸入/輸 出管腳或接線端(GPI00、GPI01)216、218。狀態指示器260可以被耦合到與一個通信接口 214關聯的GPI00管腳216和GPI01管腳218。此外,狀態指示器260可以提供用于處理器 /存儲器HPM的狀態指示器,其基于GPI00管腳216和GPI01管腳218的狀態。處理器/存儲器HPM還可以包括熱移除機構270。熱移除機構270可以包括開關、 銷、按鈕和/或一些其他的機械機構,它們可以響應于被致動而使處理器/存儲器HPM產生 熱移除請求和熱插拔中斷。例如,熱移除機構270可以包括耦合到節點控制器210的GPI01 管腳218以及耦合到耦合器112的中斷線路的按鈕。響應于按鈕的致動,熱移除機構270 可以向節點控制器210提供熱插拔移除請求并向運行著的計算設備100提供熱插拔中斷。圖3中示出了示例性的處理器HPM,其可以被用來實現計算設備100的一個或多個 熱插拔模塊110。該處理器HPM可以用與圖2中處理器/存儲器HPM類似的方式實現。處 理器HPM通常為計算設備100提供一個或多個處理器230,并且包括其他的部件以支持這些 一個或多個處理器230以及支持該處理器HPM的熱插拔。例如,處理器HPM可以包括耦合 器112、節點控制器210、一個或多個處理器230、固件250、狀態指示器260以及移除請求機 構270,但是可以實現為沒有圖2中示出的存儲器240。圖4中示出了示例性的存儲器HPM,其可以被用來實現計算設備100的一個或多個 熱插拔模塊110。該存儲器HPM可以用與圖2中處理器/存儲器HPM類似的方式實現。存 儲器HPM通常為計算設備100提供存儲器240,并且包括其他的部件以支持存儲器240以 及支持該存儲HPM的熱插拔。例如,存儲器HPM可以包括耦合器112、節點控制器210、存儲 器240、狀態指示器260以及移除請求機構270,但是可以實現為沒有圖2中示出的處理器 230。現在參考圖5,其中示出了示例性的輸入/輸出(I/O)HPM,其可以被用來實現計算 設備100的一個或多個熱插拔模塊110。該示例性的I/0HPM500包括具有熱插拔接口 212 的I/O中心510。熱插拔接口 212可以包括一個或多個耦合到耦合器112的通信接口 214。 I/O中心510可以被耦合到一個或多個I/O橋530,以利用多種信令協議來提供對I/O設備 的訪問。例如,I/O HPM可以包括外圍設備互連(PCI)橋、高速外圍設備互連(PCI-X)橋、無 限帶寬(InfiniBand)橋、工業標準結構(ISA)橋、高速互連(HSI)橋、通用串行總線(USB) 橋、先進技術附件(ATA)橋、小型計算機系統接口(SCSI)橋以及到鍵盤、鼠標和其他設備的 接口。
5
I/O中心510還可以被耦合到固件250。該固件250可以存儲基本輸入/輸出系 統(BIOS)例程、數據和/或其他例程以初始化或部分初始化I/0HPM的部件,以及經由該1/ 0 HPM的一個或多個通信接口 214與計算設備100的其它熱插拔模塊110建立通信。I/O 中心510還可以被耦合到狀態指示器260和熱移除請求機構270。該狀態指示器提供有關 I/O HPM的熱插拔狀態的指示。熱移除請求機構270響應于被致動而產生熱移除請求和熱 插拔中斷。I/O中心510還可以包括存儲器高速緩存512以高速緩存計算設備100的一個或 多個存儲器240的線。與I/O中心510關聯的存儲器高速緩存512,可以被實現為I/O中心 510內部和/或外部的多級分層次高速緩存。例如,存儲器高速緩存512可以在預測被附接 到I/O橋530的I/O設備未來的數據請求的情況下,存儲從運行著的計算設備100的一個 或多個存儲器240取得的預先讀取的數據。此外,存儲器高速緩存512可以存儲從被附接 到I/O橋530的I/O設備取得并且這之后要被寫入到運行著的計算設備100的一個或多個 存儲器240的數據。為了保持與運行著的計算設備100的存儲器240的一致性,I/O中心 510可以參加中平面120的探聽事務。在圖6中更加詳細地示出了示例性的中平面120。中平面120可以包括一個或多 個開關624以控制熱插拔模塊110之間的數據傳輸,并且幫助保持熱插拔模塊110的存儲 器高速緩存232、512的一致性。開關624可以包括一個或多個熱插拔接口 626,該熱插拔 接口 626包括被耦合到耦合器122的一個或多個通信接口 628。就如下面要詳細解釋的那 樣,熱插拔接口 626和通信接口 628可以支持熱插拔模塊110的熱插拔添加和熱插拔移除。 此外,每個通信接口 628可以與一個或多個GPI0管腳或端子630、632關聯。中平面120還可以包括與每個耦合器122關聯的熱插拔監視器(HM)634。熱插拔 監視器634可以為與耦合器122關聯的通信接口 628提供指示熱插拔模塊110是否被耦合 到各自的耦合器122上的信號。例如,熱插拔監視器634可以包括機械銷,其可以被致動來 將熱插拔模塊110固定到中平面120,并且可以響應于被致動而提供指示熱插拔模塊存在 的信號。或者,熱插拔監視器634可以包括耦合器122的模塊存在管腳,以產生指示熱插拔 模塊110是否被耦合到耦合器122上的信號。例如,模塊存在管腳可以在物理上與耦合器 122的其他管腳錯開,使得模塊存在管腳響應于插入熱插拔模塊110最后進行電接觸,而響 應于移除熱插拔模塊110第一個電分離。中平面120還可以包括可選的系統管理處理器636。系統管理處理器636可以被 耦合到耦合器122以監視、訪問和/或控制被耦合到耦合器122的熱插拔模塊110的部件。 系統管理處理器636可以初始化缺少處理器230的熱插拔模塊110的部件,比如圖4的存儲 器HPM和圖5的I/0HPM。在一個示例性實施例中,串行掃描鏈和/或其他通信通路(未示 出)將系統管理處理器636通過中平面120的耦合器122耦合到熱插拔模塊110的部件。開關624還可以包括探聽過濾器640,其跟蹤計算設備100的存儲器高速緩存 232,512的高速緩存線路一致性信息。探聽過濾器640可以部分地起到防止在不包含主高 速緩存線路拷貝的熱插拔模塊110中執行探聽事務的作用,從而減少了系統開銷、熱插拔 模塊110之間的通信量以及執行探聽操作所需的時間。為此,探聽過濾器640可以包括控 制器642、存儲設備644和有效矢量646。控制器642可以在存儲設備644中存儲和更新由熱插拔模塊110的高速緩存代理
6(例如,處理器230、1/0中心510)進行高速緩存的線路的一致性狀態和標簽地址。控制器 642還可以基于存儲設備644的標簽地址和一致性狀態、有效矢量646的有效探聽代理信 息以及一致性協議,控制對熱插拔模塊110的探聽事務的路徑選擇。例如,控制器642可以 利用公知的MESI (修改、獨占、共享、無效)協議的變體來跟蹤高速緩存線路是否被無效、共 享、組合、修改/獨占。在示例性實施例中,在熱插拔模塊110的存儲器高速緩存232、512 處支持全面的MESI協議。只要計算設備100的所有高速緩存代理是相容的,那么可以使用 其他的一致性協議。控制器642還可以在存儲設備644中存儲和更新存在信息,該信息指出了哪個熱 插拔模塊110具有線路的拷貝。例如,控制器642可以通過存儲設備644關聯的存在矢量 跟蹤哪個熱插拔模塊110具有存儲器240線路的拷貝。存在矢量可以包括位字段,其中字 段中的每個位對應于特定耦合器122和關聯的熱插拔模塊110。也可以使用其它的實施方式來替代存在矢量。例如,開關624可以總地為每個耦 合器122以及關聯的熱插拔模塊110包括不同的探聽過濾器640。或者,探聽過濾器640可 以實現為使得存儲設備644的入口被應用到一個節點,存儲設備644其他的入口被應用到 另一個節點等等。控制器642還可以停下來將探聽事務發送到與已經被移除的熱插拔模塊110關聯 的耦合器122。例如,探聽過濾器640可以包括有效矢量646以跟蹤哪個耦合器具有被耦合 到其上的有效探聽代理,以便探聽過濾器640為由被移除或將被移除的熱插拔模塊110的 高速緩存代理所高速緩存的線路提供適當的探聽響應。有效矢量646可以被實現為存儲設 備644的部分、一個或多個寄存器的部分或探聽過濾器640的獨立寄存器。此外,有效矢量 646可以包括位字段,其中字段中的每個位對應于特定的耦合器122和關聯的熱插拔模塊 110。也可以使用其它的實施方式來替代有效矢量。例如,開關624可以總地為每個耦 合器122包括一個不同的探聽過濾器640,該探聽過濾器640可以基于有效探聽代理是否被 耦合到關聯的耦合器122而被使能或禁止。或者,探聽過濾器640可以被實現來清除與耦 合器122關聯的每個存在矢量的位,其中耦合器122與將被移除或已經被移除的熱插拔模 塊110相關聯,以防止對這樣的耦合器122的探聽事務。控制器642還可以發出所有與熱插拔模塊110關聯的未完事務已經被完成了的信 號。例如,控制器642可以通過與被移除的熱插拔模塊110關聯的通信接口 628發出防衛 事務(fencing transaction)。控制器642然后可以響應于從熱插拔模塊110接收到防衛 事務完成相應而確定熱插拔模塊110的所有未完事務已經完成了。控制器642然后可以通 過產生中斷發信號通知完成了未完事務。或者,控制器642可以通過更新與耦合器122和 熱插拔模塊110關聯的狀態信息,發信號通知完成了未完事務。計算設備的處理器230可 以在以后讀取或輪詢狀態消息以確定熱插拔模塊110所有的事務是否已經完成。在圖7中更詳細地示出了熱插拔接口 626及其與通信接口 628的關聯。應該理解, 熱插拔模塊110的熱插拔接口 212可以以類似的方式實現。熱插拔接口 626可以包括接口 邏輯704、接口控制寄存器706以及被耦合到GPI0管腳630、632的GPI0導線708、710。對 于每個通信接口 628,熱插拔接口 626可以包括獨立的接口邏輯704、接口控制寄存器706 以及GPI0導線708、710。
7
接口邏輯704可以控制通信接口 628來根據運行著的計算設備100的其他通信接 口 628所利用的通信協議來發送和/或接收電信號。此外,接口邏輯704可以使通信接口 628建立與熱插拔模塊110的通信接口 214的通信鏈接,并且可以檢測這樣的通信鏈接是否 已經建立起來了。例如,接口邏輯704可以基于由通信接口 214發送的幀分組來調節通信接口 628 的接收器,并且可以使通信接口 628的發射器發送幀分組。接口邏輯704然后可以響應于 確定通信接口 628已經接收到預定數目(例如,256)的無差錯幀分組的預定數字來產生幀 檢測信號,并且可以響應于確定通信接口 628已經響應于它發送的幀分組接收到預定數目 (例如,256)的無差錯確認分組來產生確認檢測信號。幀檢測信號和確認檢測信號通常提 供一種指示通信鏈接已經成功地在通信接口 214、628之間建立起來了。此外,應該理解, 也可以使用其他方式建立通信鏈接。熱插拔接口 626的接口控制寄存器706可以包括模塊存在字段740、模塊存在中 斷字段742以及中斷請求字段744。響應于關聯的熱插拔監視器634的信號,模塊存在字 段740可以被設定來指示熱插拔模塊110存在,并且可以被清除以指示熱插拔模塊110不 存在。模塊存在中斷字段742可以被設定來響應于模塊存在字段740中的變化產生熱插拔 中斷,并且可以被清除以防止響應于模塊存在字段740中的變化產生熱插拔中斷。中斷請 求字段744可以被設定來指示和引發熱插拔中斷,并且可以被清除以確認和清除熱插拔中 斷。由開關624的中斷請求字段744產生的熱插拔中斷請求信號,可以以線-OR構造被耦 合在一起,使得中斷控制器(未示出)可以響應于通過單個的中斷請求線接收的熱插拔中 斷請求信號來產生熱插拔中斷。接口控制寄存器706還可以包括接口使能字段746、GPI00使能字段748、GPI01使 能字段750、GPI00狀態字段752、GPI00狀態字段754。接口使能字段746可以被設定來使 能它關聯的通信接口 628,并且可以被清除來禁止它關聯的通信接口 628。GPI00使能字段 748和GPI01使能字段750可以被設定來使能GPI00狀態字段752和GPI00狀態字段754, 以驅動它們各自的GPI0管腳630、632。此外,GPI00使能字段748和GPI01使能字段750 可以被清除來防止GPI00狀態字段752和GPI00狀態字段754驅動它們各自的GPI0管腳 630、632。接口控制寄存器706還可以包括幀檢測字段756、確認檢測字段758以及幀中斷字 段760。響應于幀檢測信號,幀檢測字段756可以被設定來指示檢測到幀,或可以被清除以 指示沒有檢測到幀。類似的,確認檢測字段758可以被設定來指示檢測到確認,或可以被清 除以響應于確認檢測信號指示沒檢測到確認。幀中斷字段760可以被設定來響應于幀檢測 信號中的變化產生熱插拔中斷,或者可以被清除以防止響應幀檢測信號中的變化產生熱插 拔中斷。接口控制寄存器706還可以包括便箋式存儲器字段762。便箋式存儲器字段762 可以被編程(program)來跟蹤通信接口 628和關聯熱插拔模塊110的熱插拔狀態和/或其 他配置信息。例如,便箋式存儲器字段762可以被編程來跟蹤通信接口 628和關聯的熱插 拔模塊110是否處于無模塊存在狀態、模塊存在狀態、忙狀態、就緒狀態或接入狀態。熱插拔接口 626還可以包括與通信接口 628關聯的其他寄存器。例如,熱插拔接口 626可以包括存儲器交叉寄存器770來為關聯的熱插拔模塊110的存儲器240分配存儲范
8圍分配,并包括系統復位寄存器772來指示關聯的熱插拔模塊110可用的處理器230。熱插 拔接口 626還可以包括模塊定義寄存器776來存儲關聯的熱插拔模塊110的模塊指示符, 并且包括遠程模塊定義寄存器778來存儲有關與通信接口 628關聯的熱插拔模塊110的類 型(例如,處理器/存儲器HPM、處理器HPM、存儲器HPM、I/0 HPM)的指示。熱插拔接口 626 還可以包括I/O映射寄存器780來為關聯的熱插拔模塊110的I/O資源分配存儲范圍。現在參考圖8,示例性狀態示意圖800圖示了響應于運行著的計算設備100和熱插 拔模塊110的動作的在熱插拔狀態之間的轉換。例如,通信接口 628以及關聯熱插拔模塊 110可以是處于無模塊存在狀態(狀態0)、模塊存在狀態(狀態1)、忙狀態(狀態2)、就緒 狀態(狀態3)或接入狀態(狀態4)。無模塊存在狀態可以對應于沒有被耦合到熱插拔模 塊110的通信接口 628。模塊存在狀態可以對應于已經被耦合到熱插拔模塊110的通信接 口 628。忙狀態可以對應于已經建立起與熱插拔模塊110的通信鏈接,但該熱插拔模塊100 還沒有準備好接入運行著的計算設備100的通信接口 628。就緒狀態可以對應于已經建立 起與準備好接入運行著的計算設備100的熱插拔模塊110的通信鏈接的通信接口 628。接 入狀態可以對應于被耦合到已經接入運行著的計算設備100的熱插拔模塊110的通信接口 122。現在參考圖9A-9H,所圖示的方法900用于處理熱插拔中斷,以便向運行著的計算 設備100添加和/或從其移除熱插拔模塊110。熱插拔中斷可以響應于各種事件而產生。 例如,在示例性實施例中,運行著的計算設備100在啟動過程設定了一個開關624(缺省開 關)的模塊存在中斷字段742以及幀檢測中斷字段760。因此,缺省開關624的接口控制寄 存器706可以使響應于模塊存在字段740或幀檢測字段760中的變化產生熱插拔中斷。此 外,一個熱插拔模塊110的移除請求機構270可以響應于被致動而產生熱插拔中斷。熱插 拔中斷也可以響應于運行著的系統100或熱插拔模塊110設定缺省開關624的一個中斷請 求字段而產生。此外,運行著的計算設備100和熱插拔模塊110還響應于執行機器可讀介質的 指令以執行方法900的全部或一個子集,這些機器可讀介質比如一個或多個只讀存儲器 (ROM)、隨機存取存儲器(RAM)、磁盤存儲介質、光存儲介質、閃存設備和/或電、光、聲或其 他形式的傳播信號,例如載波、紅外信號、數字信號、模擬信號。另外,盡管方法900將運行 著的計算設備100和熱插拔模塊110的操作示為順序的操作,但是運行著的計算設備100 和熱插拔模塊110可以并行或以不同的順序執行各種操作。現在參考圖9A,在框902中運行著的計算設備100可以響應于熱插拔中斷的接收, 確定是否已經請求熱插拔移除熱插拔模塊110。在示例性實施例中,運行著的計算設備100 可以基于中平面120的接口控制寄存器706確定是否已經請求熱插拔移除熱插拔模塊110。 例如,如果與熱插拔模塊110關聯的接口控制寄存器706具有指示接入狀態(圖8的狀態 4)的便箋式存儲字段762,并且具有被設定的GPI01狀態字段754或被設定的中斷請求字 段744,那么運行著的計算設備100可以確定已經請求熱插拔移除熱插拔模塊110。在示例 性實施例中,被設定的GPI01狀態字段754指示從移除請求機構270接收到移除請求信號, 被設定的中斷請求字段744指示可能已經被運行著的計算設備100的管理軟件所設定的未 完熱插拔中斷。響應于確定已經請求熱插拔移除熱插拔模塊110,在框904運行著的計算設備
9100(圖9B)可以提供對熱插拔移除熱插拔模塊110在進行中的指示。運行著的計算設備 100可以對熱插拔模塊110的狀態指示器260進行編程,以通過設定被耦合到狀態指示器 260的GPIOO管腳630的GPIOO狀態字段752和GPIOO使能字段748,指示熱插拔移除在進 行中。在框906,運行著的計算設備100可以清除熱插拔模塊110的熱插拔中斷。如果響應 于移除請求機構被致動而產生熱插拔中斷,那么運行著的計算設備100可以通過設定與移 除請求機構270關聯的GPIOO狀態字段752和GPIOO使能字段748,清除熱插拔中斷和移除 請求機構270。此外,如果通過管理軟件產生熱插拔中斷,那么運行著的計算設備100可以 通過清除缺省開關624的中斷請求字段744來清除熱插拔中斷。
在框908,運行著的計算設備100可以識別熱插拔模塊110上的資源。運行著的 計算設備100可以經由節點控制器210的系統復位寄存器識別熱插拔模塊110的處理器資 源。此外,運行著的計算設備100可以經由節點控制器210的存儲器交叉寄存器識別熱插 拔模塊110的存儲器資源。運行著的計算設備100還可以利用ASL(ACPI源語言)方法來 識別熱插拔模塊110的I/O資源。在框910,運行著的計算設備100可以從運行著的計算設備100移除被識別的熱 插拔模塊110的存儲器資源。運行著的計算設備100可以從熱插拔模塊110中使用過的存 儲器位置移動數據到運行著的計算設備100的在移除熱插拔模塊110之后仍然存在的存儲 器240和/或虛擬存儲器。此外,運行著的計算設備100可以移除對物理上位于熱插拔模 塊110上的存儲器240的軟件引用。在框912,運行著的計算設備100可以移除被識別的熱插拔模塊110的I/O資源。 運行著的計算設備100可以使被耦合到熱插拔模塊110或在其上的I/O設備刷新緩存并完 成未完成的請求。此外,運行著的計算設備100可以使I/O中心510將它所關聯的存儲器 高速緩存512的經修改后的高速緩存線回寫到運行著的計算設備100。運行著的計算設備 100也可以在I/O設備完成未完成的請求、刷新緩存以及回寫經修改后的高速緩存線之后, 停止和關閉該I/O設備。在框914,運行著的計算設備100可以移除被識別的熱插拔模塊110的處理器資 源。運行著的計算設備100可以移除作為中斷目標的熱插拔模塊110的處理器230,并且可 以從活動(active)處理器列表中移除處理器230。此外,運行著的計算設備100可以使熱 插拔模塊110的處理器230回寫和無效它們關聯的存儲器高速緩存232。運行著的計算設 備100也可以使處理器230停止執行或進入禁用中斷的緊湊循環。在框916,運行著的計算設備100可以更新開關624的探聽過濾器640。例如,運 行著的計算設備100可以更新探聽過濾器640的有效矢量646來將熱插拔模塊110和關聯 的通信接口 628標記為無效的探聽代理。通過將它們標記為無效的探聽代理,探聽過濾器 640可以正確地響應指向在熱插拔模塊110被移除之前未被其無效的該熱插拔模塊110的 共享高速緩存線的探聽請求。或者,探聽過濾器640可以更新存儲設備644的存在矢量以 指示在將被移除的熱插拔模塊110上沒有高速緩存線存在,或禁用將被移除的熱插拔模塊 110的專用探聽過濾器640。在框918,運行著的計算設備100可以等待與熱插拔模塊110關聯的未完事務結 束。例如,運行著的計算設備100可以等待一段時間(例如,2秒),該時間足夠未完事務以 合理的高度確定性結束。或者,運行著的計算設備100可以等待開關624的探聽過濾器640發信號通知未完事務結束。運行著的計算設備100還可以禁用與要移除的熱插拔模塊110關聯的開關624的 通信接口 628 (框920)。運行著的計算設備100可以通過清除與開關624的通信接口 628 關聯的接口使能字段746來禁止通信接口 628。作為禁止通信接口 628的結果,與通信接 口 628關聯的接口邏輯704不能接收幀分組,從而使在幀檢測信號變化時缺省開關706的 關聯接口控制寄存器706產生熱插拔中斷。
在框930(圖9A),運行著的計算設備100可以確定熱插拔模塊110是否準備好接 入運行著的計算設備100。運行著的計算設備100可以基于中平面120的接口控制寄存器 706確定熱插拔模塊110是否準備好接入運行著的計算設備100。例如,如果與熱插拔模塊 110關聯的接口控制寄存器706具有被設定的中斷請求字段744以及指示就緒狀態(圖8 的狀態3)的便簽式存儲器字段762,則運行著的計算設備100可以確定熱插拔模塊110準 備好接入運行著的計算設備100。響應于確定熱插拔模塊110準備好接入運行著的計算設備100,在框932 (圖9C) 運行著的計算設備100可以清除被識別的熱插拔模塊110的未完熱插拔中斷。運行著的計 算設備100可以通過清除缺省開關624的中斷請求字段744而清除熱插拔中斷。在框934,運行著的計算設備100可以識別由熱插拔模塊110提供的處理器230, 并可以將被識別的處理器230添加到運行著的計算設備100的處理器池。例如,運行著的計 算設備100可以基于熱插拔模塊110的系統復位寄存器識別熱插拔模塊110的處理器230, 并且可以使被識別的處理器230被添加到運行著的計算設備100的處理器池中。此外,運 行著的計算設備100可以使被識別的處理器230從運行著的計算設備的操作系統的預定入 口點開始執行,使得操作系統可以調度處理器池的處理器上的進程和/或線程的執行。在框936,運行著的計算設備100也可以識別由熱插拔模塊110提供的存儲器 240,并且可以添加被識別的存儲器240到運行著的計算設備100上。例如,運行著的計算 設備100可以基于熱插拔模塊110的存儲器交叉寄存器識別由熱插拔模塊110提供的存儲 器240。此外,運行著的計算設備100可以添加被識別的存儲器240到操作系統的存儲器池 中,使得操作系統可以從存儲器池分配存儲器給運行著的計算設備100的進程和/或線程。在框938,運行著的計算設備100還可以識別由熱插拔模塊110提供的I/O設備, 并且可以添加被識別的I/O設備到運行著的計算設備100。運行著的計算設備100可以利 用ASL方法來識別由熱插拔模塊110提供的或耦合到熱插拔模塊110的I/O設備。運行著 的計算設備100還可以初始化用于被識別的I/O設備的設備驅動器,以使被識別的I/O設 備可被運行著的計算設備100的操作系統所訪問。在示例性實施例中,運行著的計算設備100可以一次僅允許一個熱插拔模塊110 通過模塊存在狀態(圖8的狀態1)并且接入運行著的計算設備100。運行著的計算設備 100可以維持全局過渡標記,該標記指示熱插拔添加是否已經在進行中。由于熱插拔模塊 110已被有效地接入運行著的計算設備100,所以在框940運行著的計算設備100可以更新 過渡標記以指示沒有熱插拔添加在進行中,使得另一個熱插拔模塊110可以進行熱插拔添 加。在框942,運行著的計算設備100可以對開關624編程以指示熱插拔模塊110和關 聯的通信接口 628的接入狀態(圖8的狀態4)。特別地,運行著的計算設備100可以對關聯的接口控制寄存器706的便簽式存儲器字段762編程以指示接入狀態。在框944,運行著的計算設備100可以更新開關624的探聽過濾器640。例如,如 果熱插拔模塊110包括存儲器高速緩存232、512,那么運行著的計算設備100可以更新探聽 過濾器640的有效矢量646來將熱插拔模塊110和關聯的通信接口 628標記為有效探聽代 理。通過將它們標記為有效探聽代理,探聽過濾器640可以跟蹤從熱插拔模塊110接收的 探聽結果,并且響應指向熱插拔模塊110的高速緩存線的探聽請求。或者,探聽過濾器640 可以維持存儲設備644的存在矢量以指示在熱插拔模塊110上存在哪個高速緩存線,或使 能熱插拔模塊110的專用探聽過濾器640。 在框950(圖9A),運行著的計算設備100可以確定熱插拔模塊110是否已經放棄 熱插拔添加過程。運行著的計算設備100可以基于中平面120的接口控制寄存器706確定 熱插拔模塊110是否已經放棄熱插拔添加過程。忙狀態或就緒狀態的便簽式存儲器字段 762可以指示關聯的熱插拔模塊110正被添加到運行著的計算設備100。此外,被清除的幀 檢測字段可以指示關聯的熱插拔模塊11不再與中平面120通信,而設定的GPIOl狀態字段 754可以指示從熱插拔模塊110的移除請求機構270接收到移除請求信號。因此,如果關聯 接口控制寄存器706具有指示忙狀態或就緒狀態(圖8的狀態2或3)的便簽式存儲器字 段762并且具有被設定的GPIOl狀態字段754或被清除的幀檢測字段756,則運行著的計算 設備100可以確定熱插拔模塊110已經中止熱插拔添加。響應于確定熱插拔模塊110已經中止熱插拔添加,在框952 (圖9D)運行著的計算 設備100可以禁用與被識別的熱插拔模塊110關聯的通信接口 628。運行著的計算設備100 可以通過清除關聯的接口控制寄存器706的接口使能字段746來禁用通信接口 628。在框 954,運行著的計算設備100還可以對開關624編程以指示關聯的通信接口 628的忙狀態 (圖8的狀態2)。特別的,運行著的計算設備100可以對關聯的接口控制寄存器706的便 簽式存儲器字段762編程以指示忙狀態。運行著的計算設備100還可以更新過渡標記以指 示由于被識別的熱插拔模塊110已經中止熱插拔添加過程,因此沒有熱插拔添加在進行 中(框956)。于是,另一個熱插拔模塊110可以進行熱插拔添加過程。在框958,運行著的計算設備100可以清除熱插拔模塊的熱插拔中斷,并且可以提 供對運行著的計算設備100辨別處對熱插拔添加的放棄的指示。例如,運行著的計算設備 100可以清除熱插拔中斷并對熱插拔模塊110的狀態指示器260編程,以通過設定與狀態指 示器260和移除請求機構270關聯的GPIOO狀態字段752和GPIOO使能字段748,來指示對 熱插拔模塊110的熱插拔移除在進行中。在框960(圖9A),運行著的計算設備100確定熱插拔模塊110是否已經從運行著 的計算設備100被物理移除。運行著的計算設備100可以基于中平面120的接口控制寄存 器706確定熱插拔模塊110是否已經被物理移除。特別的,如果與熱插拔模塊110關聯的 接口控制寄存器706具有指示模塊存在狀態(圖8的狀態1)的便簽式存儲器字段762和 被清除的模塊存在字段740,則運行著的計算設備100可以確定熱插拔模塊110已經被物理 移除。響應于確定熱插拔模塊110已經被物理移除,在框962 (圖9E)運行著的計算設備 100可以對開關624編程以指示關聯的通信接口 628的無模塊存在狀態(圖8的狀態0)。 為此,運行著的計算設備100可以對關聯的接口控制寄存器706的便簽式存儲器字段762編程以指示無模塊存在狀態。運行著的計算設備100還可以清除熱插拔模塊110的熱插拔 中斷(框964)。例如,運行著的計算設備100可以清除與熱插拔模塊110關聯的缺省開關 624的中斷請求字段744。在框966(圖9A),運行著的計算設備100可以確定熱插拔模塊110是否可以進行 熱插拔添加。為此,運行著的計算設備100可以響應于確定過渡標記沒有指示在進行另一 個熱插拔添加,確定要進行熱插拔添加。 響應于確定不進行熱插拔添加,運行著的計算設備100可以退出和停止處理熱插 拔中斷。否則,運行著的計算設備100可以在框970確定正被移除的熱插拔模塊110是否已 經與運行著的計算設備100解除通信鏈接。如果與熱插拔模塊110關聯的接口控制寄存器 706具有被清除的幀檢測字段756,并且具有指示忙狀態、就緒狀態或接入狀態(圖8的狀 態2、3或4)的便簽式存儲器,則運行著的計算設備100可以確定正離開的熱插拔模塊110 沒有建立通信。響應于確定正離開熱插拔模塊110已經停止通信,在框972運行著的計算設備100 可以對開關624編程以將熱插拔模塊110從運行著的計算設備100隔離。運行著的計算設 備100可以對開關624的遠程模塊定義寄存器778編程以指示沒有熱插拔模塊110被耦合 到關聯的耦合器122。對于處理器/存儲器HPM和存儲器HPM,運行著的計算設備100還可 以對存儲器交叉寄存器770編程以指示沒有存儲器資源被耦合到關聯的耦合器122。對于 I/O存儲器HPM,運行著的計算設備100還可以對I/O映射寄存器780編程以指示沒有I/O 資源被耦合到關聯的耦合器122。在框974,運行著的計算設備100可以提供對熱插拔模塊110可以從中平面120上 解除物理耦合并從運行著的計算設備100移除的指示。運行著的計算設備100可以對熱插 拔模塊110的狀態指示器260編程以指示熱插拔模塊110可以從運行著的計算設備100物 理移除,這通過了 (i)清除與被耦合到狀態指示器260的GPIOO管腳630關聯的GPIOO狀 態字段752和GPIOO使能字段748,以及(ii)設定與被耦合到狀態指示器260的GPIOl管 腳632關聯的GPIOl狀態字段754和GPIOl使能字段750。在框976,運行著的計算設備100還可以對開關編程以通過對關聯的接口控制寄 存器706的便簽式存儲器字段762編程來指示模塊存在狀態(圖8的狀態1)。運行著的計 算設備100也可以清除熱插拔模塊110的熱插拔中斷(框978)。例如,運行著的計算設備 100可以清除與熱插拔模塊110關聯的缺省開關624的中斷請求字段744。在框980(圖9A),運行著的計算設備100可以確定正被添加的熱插拔模塊110是 否已經建立起與運行著的計算設備100的通信鏈接。在示例性實施例中,如果與熱插拔模 塊110關聯的接口控制寄存器706具有指示模塊存在狀態(圖8的狀態1)的便簽式存儲 器字段762、被設定的幀檢測字段756以及被設定的確認檢測字段758,則運行著的計算設 備100可以確定正接入的熱插拔模塊110已經開始通信。響應于確定正被添加的熱插拔模塊110已經建立起通信鏈接,在框981 (圖9G)運 行著的計算設備100可以清除熱插拔模塊110的熱插拔中斷。例如,運行著的計算設備100 可以清除與熱插拔模塊110關聯的缺省開關624的中斷請求字段744。在框982運行著的 計算設備100還可以對開關編程以通過對關聯的接口控制寄存器706的便簽式存儲器字段 762編程來指示熱插拔模塊110的忙狀態(圖8的狀態2)。在框984,運行著的計算設備100可以更新過渡標記以指示熱插拔添加在進行中,并且以防止其他熱插拔模塊110開始 熱插拔添加。在框986,熱插拔模塊110可以配置它自身的部件。例如,熱插拔模塊110可以將 它的一個處理器230配置為節點啟動捆綁處理器(Boot StrapProcessor)。熱插拔模塊110 還可以初始化它的存儲器240,并且可以對它的存儲器接口寄存器772編程以適當地將地 址范圍分配到它的存儲器240和運行著的計算設備100的其他存儲器240中。熱插拔模塊 110也可以對它的系統復位寄存器772編程以識別熱插拔模塊110的活動處理器230,并且 對它的I/O映射寄存器編程以適當地將存儲器范圍分配給它的I/O設備。在配置它的部件之后 ,在框988熱插拔模塊110可以發信號通知運行著的計算設 備100它準備好接入了。為此,熱插拔模塊可以對開關624編程以通過對關聯的接口控制 寄存器706的便簽式存儲器字段762編程來指示熱插拔模塊110的就緒狀態(圖8的狀態 3)。熱插拔模塊110可以通過設定缺省開關624的關聯的中斷請求字段744來引發產生熱 插拔中斷。在框992(圖9A),運行著的計算設備100可以確定熱插拔模塊110是否已經被耦 合到中平面120的之前空閑的耦合器122。熱插拔監視器634可以響應于熱插拔模塊110 正被耦合到關聯的耦合器122而設定關聯的模塊存在字段740。因此,如果關聯的接口寄存 器706具有指示無模塊存在狀態(圖8的狀態0)的便簽式存儲器762、被設定的模塊存在 字段740以及被清除的接口使能字段746,則運行著的計算設備100可以確定熱插拔模塊 110已經被耦合到空閑耦合器122。響應于確定熱插拔模塊110已經被耦合到空閑耦合器122,在框994(圖9H)運行 著的計算設備100可以對開關624編程以指示與熱插拔模塊110關聯的通信接口 628的模 塊存在狀態(圖8的狀態1)。為此,運行著的計算設備100可以對關聯的接口控制寄存器 706編程以指示模塊存在狀態。此外,在框996運行著的計算設備100可以使能與熱插拔模 塊110關聯的通信接口 628在熱插拔模塊110和中平面120之間建立通信鏈接。運行著的 計算設備100可以通過設定開關624的關聯的接口使能字段746使能通信接口 628。運行 著的計算設備100還可以清除熱插拔模塊110的熱插拔中斷(框997)。例如,運行著的計 算設備100可以清除與熱插拔模塊110關聯的缺省開關624的中斷請求字段774。響應于被耦合到中平面120,在框998熱插拔模塊110可以初始化熱插拔模塊110 的部件,并且可以執行自我測試。例如,在熱插拔模塊Iio的通信接口 214被禁用時,熱插 拔模塊110的處理器230或系統管理處理器636可以初始化部件和/或進行自我測試。熱 插拔模塊110的耦合器112可以包括開關(未示出),該開關可以響應于禁用關聯的通信接 口 214,將熱插拔模塊110在數據、控制、中斷和/或其他信號上與來自運行著的計算設備 100的數據、控制和/或其他信號隔開。在示例性實施例中,在框999熱插拔模塊110可以確定熱插拔模塊110是否已經 通過自我測試。響應確定熱插拔模塊110自我測試失敗,在框1000熱插拔模塊110可以放 棄熱插拔添加。通過在使能它的通信接口 214之前放棄熱插拔添加過程,熱插拔模塊110 可以減少由于熱插拔模塊110的誤操作造成運行著的計算設備100崩潰的可能性。響應于通過自我測試,在框1001熱插拔模塊110可以使能它的通信接口 214以建 立與開關624的通信接口 628的通信鏈接,并且將熱插拔模塊110的信號耦合到運行著的計算設備100的信號上。例如,熱插拔模塊110的處理器230或中平面120的系統管理處 理器636可以通過設定熱插拔模塊110的關聯的接口使能字段746使能通信接口 214。在框1002,熱插拔模塊110的被使能的通信接口 214可以建立與中平面120的通 信接口 628的通信鏈接。通信接口 214、628可以響應于被使能而啟動幀處理。作為幀處理 的結果,與通信接口 214、628關聯的接口邏輯704可以響應于檢測到預定數目的幀分組設 定幀檢測字段756,并且可以響應于檢測到預定數目的確認分組設定確認檢測字段758。應 該理解,缺省開關624可以響應于檢測到預定數目的幀分組和設定缺省開關624的幀檢測 字段756產生熱插拔中斷。
盡管已經參考示例性實施例對本發明的某些特征進行了說明,但是該說明并不意 圖被解釋為限制意義的。那些對本發明所屬領域的普通技術人員明顯的對示例性實施例的 各種修改以及本發明的其他實施例,被視為落入本發明的精神和范圍之內。
權利要求
一種熱插拔模塊,包括耦合器,用于可拆卸地將所述熱插拔模塊耦合到運行著的計算設備;通信接口,用來響應于被使能而建立與所述運行著的計算設備的通信鏈接,以及響應于被禁用而解除所述通信鏈接;與所述通信接口關聯的接口控制寄存器,用來指示和控制所述通信接口是否被使能或禁用;以及處理器和關聯的存儲器高速緩存,所述處理器基于所述熱插拔模塊是否準備好接入運行著的計算設備,對所述接口控制寄存器編程以使能和禁用所述通信接口。
2.如權利要求1的熱插拔模塊,其中響應于請求對所述熱插拔模塊的熱插拔移除,所述處理器將所述存儲器高速緩存的高 速緩存線回寫到所述運行著的計算設備。
3.如權利要求2的熱插拔模塊,其中所述熱插拔模塊包括指示所述熱插拔模塊的熱插 拔狀態的狀態指示器。
4.如權利要求3的熱插拔模塊,其中所述處理器響應于請求對所述熱插拔模塊的熱插拔添加,執行對所述熱插拔模塊的自我測試;以及響應于確定所述熱插拔模塊通過所述自我測試,使能所述通信接口。
5.如權利要求1的熱插拔模塊,其中所述處理器響應于所述熱插拔模塊被物理耦合到所述運行著的計算設備,識別所述熱插拔模塊的 存儲器;以及將所述熱插拔模塊的被識別的存儲器添加到所述運行著的計算設備的存儲器池。
6.如權利要求5的熱插拔模塊,其中所述處理器響應于確定所述熱插拔模塊已經被物理耦合到所述運行著的計算設備,使能與所述熱 插拔模塊關聯的所述運行著的計算設備的通信接口。
全文摘要
包括處理器、存儲器和/或I/O中心的熱插拔模塊,可以被添加到運行著的計算設備和從該運行著的計算設備移除,而不用重啟所述運行著的計算設備。熱插拔模塊和計算設備包括支持熱插拔模塊的熱插拔添加和熱插拔移除的熱插拔接口。
文檔編號G06F13/40GK101859290SQ20101017053
公開日2010年10月13日 申請日期2002年11月27日 優先權日2001年12月19日
發明者夏夫南丹·考希克, 岑玲, 戴維·奧謝, 琳達·蘭金, 莫漢·庫馬爾, 詹姆斯·克羅斯蘭 申請人:英特爾公司