專利名稱:系統(tǒng)控制器、數(shù)據(jù)處理器以及輸入輸出請求控制方法
技術領域:
本發(fā)明涉及系統(tǒng)控制器、數(shù)據(jù)處理器以及輸入輸出請求控制方法,更具 體地,涉及這樣的系統(tǒng)控制器、數(shù)據(jù)處理器以及輸入輸出請求控制方法,即 使數(shù)據(jù)處理器上安裝的多個固件中心的一部分出現(xiàn)故障,其仍然能夠正常運 行數(shù)據(jù)處理器。
背景技術:
通常,在諸如服務器或個人計算機的數(shù)據(jù)處理器中,固件中心(Firmware Hub,下文稱為"FWH")中存儲固件,例如,基本輸入輸出系統(tǒng)(BIOS) 程序和上電自檢(POST)程序,BIOS程序是啟動操作系統(tǒng)(OS)和控制多 種設備的軟件,POST程序在電力啟動期間檢查在多種設備中出現(xiàn)的任何異 常(例如,參見國際公開小冊子No. 03/083664)。在數(shù)據(jù)處理器啟動期間,中央處理器(CPU)讀取存儲在FWH中的BIOS 程序和POST程序。例如,在一種數(shù)據(jù)處理器中,利用由系統(tǒng)控制器控制的 物理地址映射中的預定區(qū)域來映射FWH內的存儲區(qū)。CPU訪問預定區(qū)域來 讀取BIOS程序和POST程序。但是,由于近來對提高性能和實用性的需要,數(shù)據(jù)處理器得到廣泛應用, 其包括多個能夠執(zhí)行計算處理的已安裝主板(下文稱為"主板(SB)")。 使用總線或開關連接主板,以使數(shù)據(jù)處理器運行。具有上述結構的數(shù)據(jù)處理器包括用于每個主板的FWH。但是,如果在 每個主板的FWH的內容中出現(xiàn)不一致或者如果部分主板的FWH的內容損 壞,那么整個數(shù)據(jù)處理器或者部分主板不能正常啟動,因此導致在數(shù)據(jù)處理 系統(tǒng)的運行中出現(xiàn)明顯干擾。發(fā)明內容本發(fā)明的一個目的在于至少部分解決傳統(tǒng)技術中的問題。 根據(jù)本發(fā)明的一個方案,提供一種系統(tǒng)控制器,用于控制從安裝有所述 系統(tǒng)控制器的數(shù)據(jù)處理器的中央處理器(CPU)和其它系統(tǒng)控制器中的任一 個接收的輸入輸出請求,所述系統(tǒng)控制器包括地址映射存儲單元,用于存 儲地址映射,在所述地址映射中映射用于對存儲有固件的存儲單元進行訪問 的區(qū)域;以及目標確定單元,用于將從所述CPU接收的輸入輸出請求中包 含的地址與所述地址映射存儲單元中的地址映射相比較,并且如果所述地址 包含在與本地連接到所述系統(tǒng)控制器的存儲單元相對應的區(qū)域中,那么根據(jù)所述輸入輸出請求中包含的內容訪問本地連接的存儲單元,以及如果所述地 址包含在與沒有本地連接到所述系統(tǒng)控制器的存儲單元相對應的區(qū)域中,那 么將所述輸入輸出請求傳送到所述其它系統(tǒng)控制器。根據(jù)本發(fā)明的另一個方案,提供一種數(shù)據(jù)處理器,包括多個主板,每個 主板包括中央處理器(CPU)、存儲有固件的存儲單元以及系統(tǒng)控制器,每 個系統(tǒng)控制器包括地址映射存儲單元,用于存儲地址映射,在所述地址映射中映射用于對所述數(shù)據(jù)處理器中的存儲單元進行訪問的區(qū)域;以及目標確 定單元,用于將從自身的CPU接收的輸入輸出請求中包含的地址與自身的地址映射存儲單元中的地址映射相比較,并且如果所述地址包含在與本地連 接到所述系統(tǒng)控制器的存儲單元相對應的區(qū)域中,那么根據(jù)所述輸入輸出請 求中包含的內容訪問本地連接的存儲單元,以及如果所述地址包含在與沒有 本地連接到所述系統(tǒng)控制器的存儲單元相對應的區(qū)域中,那么將所述輸入輸 出請求傳送到所述其它系統(tǒng)控制器。根據(jù)本發(fā)明的另一個方案,提供一種通過系統(tǒng)控制器控制對存儲單元的輸入輸出請求的方法,所述存儲單元中存儲有固件,所述方法包括從安裝有所述系統(tǒng)控制器的數(shù)據(jù)處理器的中央處理器(CPU)和其它系統(tǒng)控制器中 的任一個接收所述輸入輸出請求;在從所述CPU接收所述輸入輸出請求時, 將所述輸入輸出請求中包含的地址與地址映射相比較,在所述地址映射中映 射用于對所述數(shù)據(jù)處理器中的存儲單元進行訪問的區(qū)域;當所述地址包含在 所述比較中確定在與本地連接至所述系統(tǒng)控制器的存儲單元相對應的區(qū)域 中時,根據(jù)所述輸入輸出請求的內容訪問本地連接的存儲單元;以及當所述 地址包含在所述比較中確定在與沒有本地連接至所述系統(tǒng)控制器的存儲單 元相對應的區(qū)域中時,將所述輸入輸出請求傳送到所述數(shù)據(jù)處理器中的其它 系統(tǒng)控制器。通過結合附圖研究以下對本發(fā)明的目前優(yōu)選實施例的詳細描述,可以更 好的理解本發(fā)明的上述和其它目的、特征、優(yōu)點以及在技術上和工業(yè)上的重 要性。
圖1是說明根據(jù)本發(fā)明實施例的地址映射方法的示意圖; 圖2是使用根據(jù)實施例的地址映射方法的數(shù)據(jù)處理實例的功能框圖; 圖3是說明通過本地FWH區(qū)訪問FWH而使用的路線的示意圖; 圖4是說明通過分區(qū)FWH區(qū)訪問FWH而使用的路線的示意圖; 圖5是根據(jù)實施例的系統(tǒng)控制器的功能框圖;圖6是在系統(tǒng)控制器從CPU接收請求包時由系統(tǒng)控制器執(zhí)行的處理過 程的流程圖;圖7是在系統(tǒng)控制器從另一個系統(tǒng)控制器接收請求包時由系統(tǒng)控制器執(zhí) 行的處理過程的流程圖;圖8和圖9是在數(shù)據(jù)處理器啟動期間檢測到FWH內容中的損壞時操作 序列的流程圖;圖10和圖11是在數(shù)據(jù)處理器啟動期間檢測到BIOS程序的版本不一致 時操作序列的流程圖;以及圖12是用于說明傳統(tǒng)地址映射方法的示意圖。
具體實施方式
下面參照附圖詳細說明本發(fā)明的典型實施例。首先說明中央處理器(CPU)用于訪問固件中心(FWH)而采用的地址 映射方法。FWH是存儲設備,其中存儲基本輸入/輸出系統(tǒng)(BIOS)程序和 上電自檢(POST)程序,BIOS程序是啟動操作系統(tǒng)(OS)和控制多種設備 的軟件,POST程序在電力啟動期間檢查多種設備中存在的任何異常。圖12是用于說明傳統(tǒng)地址映射方法的示意圖。在圖12所示的實例中, 假設低/中存儲器11是32位并且包含0h到FFFFFFFFh的地址空間。高擴展 存儲器12是比FFFFFFFFh更高級的區(qū)域并且需要具有比32位更多的空間
用于尋址。本地FWH區(qū)21是CPU用于訪問FWH而使用的地址空間,位于低/中存儲器11的頂部。在圖12所示的實例中,F(xiàn)WH內的存儲器區(qū)分成四個分區(qū)。假設每個分 區(qū)具有4兆字節(jié)(MB)的存儲容量。由此,本地FWH區(qū)21具有A—0到 A_3四個分區(qū),其對應于FWH內的存儲區(qū)的四個分區(qū)。A—0到A一3四個分 區(qū)包括4MB的地址空間,用于映射FWH內的相應存儲區(qū)。因此,本地FWH 區(qū)21包括共16MB的區(qū)。通過訪問任一分區(qū)A—0到A—3中的預定地址,CPU可以對與該分區(qū)和 地址相對應的FWH內的存儲區(qū)進行讀取或者寫入。因此,在傳統(tǒng)地址映射 方法中,在物理地址映射中映射FWH內的存儲區(qū),并且CPU訪問存儲區(qū)以 讀取存儲在FWH內的計算機程序。但是,在傳統(tǒng)地址映射方法中映射僅對應于一個FWH的地址空間并且 CPU不能訪問多個FWH。因此,即使在包括多個己安裝的主板(包括己安 裝的CPU或存儲器)的服務器等中,CPU僅可以訪問包括已安裝CPU自身 的主板上的FWH。在包括多個已安裝的主板并包括用于每個主板的FWH的服務器中,如 果任一個主板的FWH的內容損壞或者與其它FWH的內容不一致,則整個服 務器或者部分主板不能正常啟動,由此導致出現(xiàn)明顯干擾。如果CPU能夠訪問其它主板上的FWH,則任一個CPU可以將正常FWH 的內容復制到包含不正確內容的FWH,由此使服務器正常啟動。但是,由 于在傳統(tǒng)地址映射方法中CPU不能訪問其它主板上的FWH,因此無法實現(xiàn) 這種對策。圖1是用于說明根據(jù)本發(fā)明實施例的地址映射方法的示意圖。如圖1所 示,在根據(jù)實施例的地址映射方法中,除了本地FWH區(qū)21之外,物理地址 映射中還包括分區(qū)FWH區(qū)22。分區(qū)FWH區(qū)22是使得CPU能夠訪問同一 分區(qū)內的所有主板的FWH的地址空間。在高擴展存儲器12的頂部包含分區(qū) FWH區(qū)22。分區(qū)是結合安裝在數(shù)據(jù)處理器上的多個主板并且使多個主板作為虛擬 數(shù)據(jù)處理器運行的單元。在許多能夠安裝多個主板的數(shù)據(jù)處理器,內部空間 分成多個分區(qū),并且在每個分區(qū)中獨立運行OS。
在圖l所示的實例中,分區(qū)FWH區(qū)22包括SB0到SB31的32個區(qū)并 且確保用于訪問最多32個主板的FWH的地址空間。而且,區(qū)SB0到SB31 中的每一個可以訪問由四個分區(qū)A—0—M到A—3—M組成的第一 FWH和由四 個分區(qū)A—O一R到A一3—R組成的第二FWH。為了訪問兩個FWH,區(qū)SB0到 SB31中的每一個包括32MB地址空間,這是本地FWH區(qū)21的地址空間的 兩倍。在根據(jù)實施例的地址映射方法中,通過訪問分區(qū)FWH區(qū)22, CPU可以 對其它主板的FWH的內容進行讀取或者寫入。因此,如果部分主板的FWH 內容損壞或者如果FWH的內容存在不一致,CPU可以將正常FWH的內容 復制到有缺陷的FWH,由此能夠消除缺陷。圖l所示的物理地址映射中多個區(qū)的位置和大小僅僅是舉例,并且可以 根據(jù)數(shù)據(jù)處理器的結構和規(guī)格來進行合適的修改。接下來說明使用根據(jù)實施例的地址映射方法的數(shù)據(jù)處理器的結構。圖2 是使用根據(jù)實施例的地址映射方法的數(shù)據(jù)處理實例的功能框圖。如圖2所示,數(shù)據(jù)處理器100包括由縱橫開關600連接的主板20(^到 200n。每個主板200,到200n是可以獨立執(zhí)行多種計算處理并且包括CPU和 存儲器的電子基板。縱橫開關600是主板200i到200n用于處理多種類型的 數(shù)據(jù)而使用的開關。在圖2所示的實例中,分區(qū)11(h包含主板200i和2002,分區(qū)1102包含 主板2002到200n。分區(qū)ll(h和1102可以作為獨立的數(shù)據(jù)處理器運行。例如, 分區(qū)110i和1102可以獨立執(zhí)行啟動和中止。盡管在圖2中沒有示出,數(shù)據(jù)處理器100還包括用于連接網絡的網絡接 口和用于連接磁盤設備的輸入輸出接口。接下來說明圖1所示的分區(qū)1101中每個主板上的CPU用于訪問FWH 而使用的線路。圖3是說明CPU通過本地FWH區(qū)21訪問FWH而使用的路 線的功能框圖。以主板200i的結構作為實例以再次說明主板200i到200 的結構。如圖 3所示,主板200i包括通過系統(tǒng)控制器300!連接到FWH 500,和5002的CPU 400t到4004。在圖3所示的結構中,省略了與訪問FWH無關的結構。系統(tǒng)控制器30(^控制CPU 400i到4004對存儲器和多種設備的訪問。具
體地說,系統(tǒng)控制器300,接收從CPU 40(h至4004到存儲器或者設備的輸入 輸出請求,并且將該輸入輸出請求傳送到合適的設備。系統(tǒng)控制器300,在從 設備接收到響應時通知該響應的請求源CPU并且分發(fā)響應結果。CPU400i到4004是執(zhí)行多種計算處理的處理器。FWH500,和5002是存 儲BIOS程序、POST程序等的存儲設備。因此,盡管主板200,包括兩個FWH, 但通常僅使用一個FWH。每個主板200,到200n可以作為兩個虛擬主板運行。 在每個主板200i到200 通過將自身分為兩個虛擬主板而運行時,使用其它 FWH。在圖3所示的實例中,主板2002分為虛擬主板21(h和2102。虛擬主板 210!包括CPU400s和4006以及FWH 5003。虛擬主板2102包括CPU 4007和 4008以及FWH 5004。虛擬主板210!和2102共享系統(tǒng)控制器3002。如上所述,當通過本地FWH區(qū)21訪問FWH時,CPU僅可以訪問 一個 FWH。例如,在主板200!中,CPU40(^到4004僅可以訪問FWH500,。在主 板2002中,附屬于虛擬主板210!的CPU400s和4006僅可以訪問同樣附屬于 虛擬主板210!的FWH 5003。附屬于虛擬主板2102的CPU 4007和4008僅可 以訪問同樣附屬于虛擬主板2102的FWH 5004。圖4是說明通過分區(qū)FWH區(qū)22訪問FWH而使用的路線的功能框圖。 如圖4所示,當通過分區(qū)FWH區(qū)22訪問FWH時,每個CPU可以訪問同一 分區(qū)內的所有FWH。例如,CPU400i通過本地FWH區(qū)21僅可以訪問FWH 500p但是通過分區(qū)FWH區(qū)22可以訪問FWH 50(^到5004中的任一個。由于運行和確保安全的需要,實施例中說明的數(shù)據(jù)處理器以使得CPU 不能訪問附屬于其它分區(qū)的FWH的方式而構成。但是,根據(jù)需要,數(shù)據(jù)處 理器也能夠以使得CPU能夠訪問附屬于其它分區(qū)的FWH的方式而構成。接下來說明圖3所示的系統(tǒng)控制器300,和3002的詳細結構。因為兩個 系統(tǒng)控制器300i和3002包括相似的結構,因此將系統(tǒng)控制器300,的結構作 為實例來說明。圖5是系統(tǒng)控制器30(^的功能框圖。系統(tǒng)控制器30(^包括地址映射存 儲單元310、分區(qū)ID (PID)存儲單元320、輸入輸出目標確定單元330以 及PID添加單元340。圖5中省略了與訪問FWH無關的結構。地址映射存儲單元310中存儲物理地址映射中的區(qū)域與設備和存儲器之 間的對應關系。地址映射存儲單元310中存儲本地FWH區(qū)311、分區(qū)FWH 區(qū)312以及分區(qū)FWH區(qū)313。本地FWH區(qū)311保持與圖1所示的本地FWH區(qū)21相等的地址空間范 圍。在與圖1所示的分區(qū)FWH區(qū)22相等的地址空間中,分區(qū)FWH區(qū)312 保持用于對安裝在同一主板上的FWH進行訪問的地址空間范圍。在與圖1 所示的分區(qū)FWH區(qū)22向等的地址空間中,分區(qū)FWH區(qū)313保持用于對安 裝在其它主板上的FWH進行訪問的地址空間范圍。PID存儲單元320中存儲分區(qū)ID,換言之,系統(tǒng)控制器300,所附屬的分 區(qū)的標志符。輸入輸出目標確定單元330接收從安裝在同一主板上的CPU發(fā)送的輸 入輸出請求和從安裝在其它主板上的系統(tǒng)控制器傳送的輸入輸出請求,并且 確定請求的輸入輸出目標。具體地說,系統(tǒng)控制器300i接收從CPU發(fā)送的輸入輸出請求作為請求 包41。請求包41包括地址部分和請求部分,地址部分表示請求輸入輸出的 目標地址,請求部分表示請求的內容。輸入輸出目標確定單元330在接收到 請求包41時提取在地址部分中設置的地址并且將提取的地址輸入到確定電 路33h至3313。確定電路33h確定在本地FWH區(qū)311中是否包含輸入地址。確定電路 3312確定在分區(qū)FWH區(qū)312中是否包含輸入地址。確定電路3313確定在分 區(qū)FWH區(qū)313中是否包含輸入地址。如果在本地FWH區(qū)311或者分區(qū)FWH區(qū)312中包含輸入地址,那么確 定電路33h或者確定電路3312的輸出接通。因此,OR電路332的輸出接 通,其輸出確定電路33h和3312的輸出的邏輯和。在檢測到OR電路332 的輸出接通并且檢測到已經接收請求包41時,AND電路333將請求包41 傳送到本地連接的FWH (在圖5所示的實例中為FWH500。。因此,如果在本地FWH區(qū)311或者分區(qū)FWH區(qū)312中包含在從CPU 傳送的請求包41的地址部分中設置的地址,那么請求包41被傳送到本地連 接的FWH并且對該FWH執(zhí)行輸入輸出處理。如果在分區(qū)FWH區(qū)313中包含輸入地址,那么確定電路3313的輸出接 通。在檢測到確定電路3313的輸出接通并且檢測到已經接收請求包41時, AND電路334將請求包41傳送到其它系統(tǒng)控制器。PID添加單元340將存儲在PID存儲器320中的PID添加到被傳送到其 它系統(tǒng)控制器的請求包41。 PID被添加到請求包41以確保不會對其它分區(qū) 中的請求包41意外執(zhí)行輸入輸出處理。在添加PID之后,請求包41改變到 請求包42的格式。因此,如果在從CPU發(fā)送的請求包41的地址部分中設置的地址與分區(qū) FWH區(qū)313相匹配,則請求包41被傳送到其它系統(tǒng)控制器。系統(tǒng)控制器300,接收從其它系統(tǒng)控制器傳送的輸入輸出請求作為請求 包42。請求包42包括PID部分、地址部分以及請求部分,其中,PID部分 表示傳送源系統(tǒng)控制器所附屬的分區(qū)的PID,地址部分表示請求輸入輸出的 目標地址,請求部分表示請求的內容。輸入輸出目標確定單元330在接收到 請求包42時提取在PID部分中設置的PID并且將提取的PID輸入到確定電 路335。確定電路335確定輸入的PID是否與存儲在PID存儲單元320中的PID 相匹配。如果輸入的PID與存儲在PID存儲單元320中的PID相匹配,那么 確定電路335的輸出接通。在檢測到確定電路335的輸出接通并且檢測到已 經接收請求包42時,AND電路336輸出請求包42的地址部分和請求部分。將從AND電路336輸出的地址部分中設置的地址輸入到確定電路337。 確定電路337確定在分區(qū)FWH區(qū)312中是否包含輸入的地址。如果在分區(qū) FWH區(qū)312中包含輸入的地址,那么確定電路337的輸出接通。在檢測到確定電路337的輸出接通并且檢測到請求包42的地址部分和 請求部分從AND電路336輸出時,AND電路338將地址部分和請求部分傳 送到本地連接的FWH。因此,如果從其它系統(tǒng)控制器傳送的請求包42的PIC部分中設置的PID 與存儲在PID存儲單元320中的PID相匹配并且在分區(qū)FWH區(qū)312中包含 地址部分中設置的地址,那么請求包42的地址部分和請求部分被傳送到本 地連接的FWH并且對該FWH執(zhí)行輸入輸出處理。接下來參照流程圖說明圖5所示的系統(tǒng)控制器300d丸行的處理序列。圖 6是在系統(tǒng)控制器30(^已經從CPU接收請求包41時處理序列的流程圖。如圖6所示,在系統(tǒng)控制器300j妾收從CPU發(fā)送的請求包41(步驟S101)
時,輸入輸出目標確定單元330將請求包41的地址部分中設置的地址與存儲在地址映射存儲單元310中的物理地址映射相比較(步驟S102)。如果在本地FWH區(qū)311 (在步驟S103為是)中或者在分區(qū)FWH區(qū)312(在步驟S103為否,在步驟104為是)中包含地址部分中設置的地址,那 么輸入輸出目標確定單元330根據(jù)請求包41的內容,訪問本地連接的FWH(步驟S105)。如果在分區(qū)FWH區(qū)313 (在步驟S103為否,在步驟S104為否,在步 驟S106為是)中包含地址部分中設置的地址,那么PID添加單元340將PID 添加到請求包41 (步驟S107)。在添加PID之后,將請求包41傳送到其它 系統(tǒng)控制器(步驟S108)。如果在本地FWH區(qū)311中、分區(qū)FWH區(qū)312或者分區(qū)FWH區(qū)313中 都不包含地址部分中設置的地址,那么在圖6所示的流程圖中沒有描述隨后 的處理。但是,基于地址部分中設置的地址與存儲在地址映射存儲單元310 中的物理地址映射的比較結果,系統(tǒng)控制器300,決定隨后的處理。圖7是在系統(tǒng)控制器300i已經從其它系統(tǒng)控制器接收請求包42時處理 序列的流程圖。如圖7所示,在接收到從其它系統(tǒng)控制器傳送的請求包42 (步驟S201)時,輸入輸出目標確定單元330將請求包42的PID部分中設 置的PID與在PID存儲單元320中存儲的PID相比較(步驟S202)。如果PID部分中設置的PID與在PID存儲單元320中存儲的PID相匹配 (在步驟S203為是),那么輸入輸出目標確定單元330將請求包42的地址 部分中設置的地址與地址映射存儲單元310中存儲的物理地址映射相比較 (步驟S204)。如果在分區(qū)FWH區(qū)312中包含地址部分中設置的地址(在步驟S205為 是),那么輸入輸出目標確定單元330根據(jù)請求包42中的內容訪問本地連 接的FWH (步驟S206)。如果PID部分中設置的PID與PID存儲單元320中存儲的PID不匹酉己(在 步驟S203為否)或者如果在分區(qū)FWH區(qū)312中不包含地址部分中設置的地 址(在歩驟205為否),那么系統(tǒng)控制器30(h丟棄請求包42。接下來說明在數(shù)據(jù)處理器100通過使用根據(jù)實施例的地址映射方法糾正 FWH的內容時的操作。在下面說明的操作中,三個主板200i到2003附屬于
同一分區(qū),并且安裝在主板2002上的CPU作為代表CPU控制整個分區(qū)。圖8是在數(shù)據(jù)處理器100啟動期間檢測到FWH的內容損壞時操作的流 程圖。如圖8所示,在主板2002中,在電力啟動之后CPU讀取同一主板上 的FWH的內容(步驟S1201),并且在使用讀取的BIOS程序和POST程序 開始初始化序列(步驟S1202)之后,正常完成初始化序列(步驟S1203)。相似地,在主板2003中,CPU讀取同一主板上的FWH的內容(步驟 S1301),在使用讀取的BIOS程序和POST程序開始初始化序列(步驟S1302) 之后,正常完成初始化序列(步驟S1303)。在主板200,中,盡管CPU讀取同一主板上的FWH的內容(步驟SI 101 ), 但是在基于校驗和(checksum)檢測到讀取的內容損壞(步驟S1102)時, 中止啟動(步驟S1103)。在正常完成初始化序列之后,主板2002和2003等待其它主板的初始化 序列的完成(步驟S1204)。主板2002的CPU (代表CPU)繼續(xù)監(jiān)控同一 分區(qū)內的其它主板,并且即使在預定時間周期過去之后檢測到主板200,的初 始化沒有完成(步驟S1205)時,仍然讀取主板200J勺FWH的內容(步驟 S1206)?;谛r灪停跈z測到讀取的內容損壞(步驟S1207)時,主板2002的 CPU將本地連接的FWH的內容復制到主板200!的FWH并且糾正主板20(h 的FWH的內容(步驟S1208)。接下來,在向主板20(^發(fā)出重置指令之后, 主板2002的CPU進入待機狀態(tài)(步驟S1209)。在主板200i中,在執(zhí)行重置(步驟S1104)之后,CPU讀取同一主板上 的FWH的內容(步驟S1105),在使用讀取的BIOS程序和POST程序開始 初始化序列(步驟S1106)之后,初始化序列正常完成(步驟S1107)。在 主板200i中初始化序列期間,主板2003處于待機狀態(tài)(步驟S1304)。在同一分區(qū)內的所有主板中的初始化序列正常完成并且所有主板已經 進入待機狀態(tài)(步驟S1210)之后,分區(qū)移動到下一個處理序列。因此,在根據(jù)實施例的地址映射方法中,因為CPU能夠訪問其它主板 上的FWH,所以即使部分主板的FWH的內容損壞,CPU仍然可以通過復制 正常FWH的內容來糾正該FWH的內容。在圖8所示的實例中,僅重置包含糾正的FWH的主板。但是,如在圖9所示的操作實例中所說明的,在糾正FWH的內容之后,還可以重置整個 分區(qū)。圖IO是在數(shù)據(jù)處理器100啟動期間檢測到BIOS程序的版本不一致時操 作序列的流程圖。如圖10所示,在主板200i中電力啟動之后,CPU讀取同 一主板上的FWH的內容(步驟S3101)在使用讀取的BIOS程序和POST程 序開始初始化序列(步驟S3102)之后,初始化序列正常完成(步驟S3103)。相似地,在主板2002中,CPU讀取同一主板上的FWH的內容(步驟 S3201 ),在使用讀取的BIOS程序和POST程序開始初始化序列(步驟S3202) 之后,初始化序列正常完成(步驟S3203)。相似地,在主板2003中,CPU讀取同一主板上的FWH的內容(步驟 S3301 ),在使用讀取的BIOS程序和POST程序開始初始化序列(步驟S3302) 之后,初始化序列正常完成(步驟S3303)。在正常完成初始化序列之后,主板200p 2002和2003等待其它主板的初 始化序列的完成。在所有主板已經進入待機狀態(tài)(步驟S3204)之后,主板 2002的CPU (代表CPU)確認其它主板中讀取的BIOS程序的版本(步驟 S3205)。主板2002的CPU檢測到主板200,中讀取的BIOS程序的版本與其它主 板中讀取的BIOS程序的版本不同(步驟S3206)。接下來,主板2002的CPU將本地連接的FWH的內容復制到主板200, 的FWH,并且使存儲在主板20(^的FWH中的BIOS程序的版本與存儲在其 它主板的FWH中的BIOS程序的版本相匹配(步驟S3207)。接下來,在發(fā) 出重置指令到主板20(h之后,主板2002的CPU進入待機狀態(tài)(步驟S3208)。在主板200i中,在執(zhí)行重置(步驟S3104)之后,CPU讀取同一主板上 的FWH的內容(步驟S3105),在使用讀取的BIOS程序和POST程序開 始初始化序列(步驟S3106)之后,正常完成初始化序列(步驟S3107)。 在主板200i中的初始化序列期間,主板2003處于待機狀態(tài)(步驟S3304)。在確認同一分區(qū)內的所有主板中的初始化序列正常完成,所有主板已經 進入待機狀態(tài),并且所有主板中讀取的BIOS程序的版本是相同的之后(步 驟S3209),分區(qū)移動到下一個處理序列。因此,在根據(jù)實施例的地址映射方法中,因為CPU可以訪問其它主板 上的FWH,所以即使在部分主板的FWH的內容與其它主板的FWH的內容 之間出現(xiàn)不一致,CPU仍然可以通過復制正常FWH的內容來糾正該FWH 的內容。在圖10所示的實例中,在糾正FWH的內容之后,僅重置包含糾正的 FWH的主板。但是,如在圖11所示的操作實例中所述的,在糾正FWH的 內容之后,還可以重置整個分區(qū)。在實施例中,地址映射上包括用于訪問在同一數(shù)據(jù)處理器內安裝的FWH 的區(qū)域。在從CPU接收到輸入輸出請求時,系統(tǒng)控制器査閱地址映射。如 果輸入輸出請求的目標是除了本地連接的FWH之外的其它FWH,那么系統(tǒng) 控制器將輸入輸出請求傳送到其它系統(tǒng)控制器。因此,CPU可以訪問同一數(shù) 據(jù)處理器內安裝的所有FWH。在實施例中說明了本發(fā)明應用于分成多個分區(qū)的數(shù)據(jù)處理器。但是,本 發(fā)明還可以有效地應用于沒有分為多個分區(qū)的數(shù)據(jù)處理器。而且,除了包含 多個主板的數(shù)據(jù)處理器之外,本發(fā)明還可以有效地應用于包含多個系統(tǒng)控制 器和安裝在單個主板上的FWH的數(shù)據(jù)處理器。假設將FWH用作存儲例如BIOS程序等固件的存儲設備來說明本實施 例。但是,例如BIOS程序等固件還可以存儲在除FWH之外的存儲設備中。根據(jù)本發(fā)明的一個方案,在地址映射中包含用于訪問安裝在同一數(shù)據(jù)處 理器內的FWH的區(qū)域。在從CPU接收到輸入輸出請求時,系統(tǒng)控制器查閱 地址映射。如果輸入輸出請求的目標是除了本地連接的FWH之外的FWH, 那么系統(tǒng)控制器將輸入輸出請求傳送到其它系統(tǒng)控制器。因此,CPU可以訪 問在同一數(shù)據(jù)處理器內安裝的所有FWH。根據(jù)本發(fā)明的另一個方案,在接收到從另一個系統(tǒng)控制器傳送的輸入輸 出請求時,系統(tǒng)控制器查閱地址映射。如果輸入輸出請求的目標是本地連接 的FWH,那么系統(tǒng)控制器根據(jù)輸入輸出請求的內容來訪問本地連接的FWH。 因此,由于系統(tǒng)控制器的協(xié)同操作,CPU可以訪問在同一數(shù)據(jù)處理器內安裝 的所有FWH。根據(jù)本發(fā)明的另一個方案,在從附屬于另一個分區(qū)的系統(tǒng)控制器接收到 輸入輸出請求時,系統(tǒng)控制器丟棄輸入輸出請求。因此,可以避免另一個分 區(qū)中發(fā)出的輸入輸出請求的意外處理。
根據(jù)本發(fā)明的另一個方案,如果部分FWH的內容損壞,那么通過復制正常FWH的內容來糾正該FWH的內容。因此,可以避免由于部分FWH的 內容損壞而在數(shù)據(jù)處理器的操作中產生干擾。根據(jù)本發(fā)明的另一個方案,如果在部分FWH的內容中出現(xiàn)不一致,那 么可以通過復制正常FWH的內容來糾正該FWH的內容。因此,可以避免由 于部分FWH的內容損壞而在數(shù)據(jù)處理器的操作中產生干擾。盡管為了進行完整和清楚的公開,己經結合特定實施例描述了本發(fā)明, 但是所附的權利要求并不因此而受到限制,而應解釋為包括明確落在這里提 出的基本啟示內的本領域技術人員可以想到的所有修改和替換結構。
權利要求
1.一種系統(tǒng)控制器,用于控制從安裝有所述系統(tǒng)控制器的數(shù)據(jù)處理器的中央處理器和其它系統(tǒng)控制器中的任一個接收的輸入輸出請求,所述系統(tǒng)控制器包括地址映射存儲單元,用于存儲地址映射,在所述地址映射中映射用于對存儲有固件的存儲單元進行訪問的區(qū)域;以及目標確定單元,用于將從所述中央處理器接收的輸入輸出請求中包含的地址與所述地址映射存儲單元中的地址映射相比較,并且如果所述地址包含在與本地連接到所述系統(tǒng)控制器的存儲單元相對應的區(qū)域中,那么根據(jù)所述輸入輸出請求中包含的內容訪問本地連接的存儲單元,以及如果所述地址包含在與沒有本地連接到所述系統(tǒng)控制器的存儲單元相對應的區(qū)域中,那么將所述輸入輸出請求傳送到所述其它系統(tǒng)控制器。
2. 根據(jù)權利要求1所述的系統(tǒng)控制器,其中所述目標確定單元將從所述其它系統(tǒng)控制器接收的輸入輸出請求中包含的地址與所述地址映射存儲單 元中的地址映射相比較,并且如果所述地址包含在與本地連接到所述系統(tǒng)控 制器的存儲單元相對應的區(qū)域中,那么根據(jù)所述輸入輸出請求中包含的內容 訪問本地連接的存儲單元。
3. 根據(jù)權利要求2所述的系統(tǒng)控制器,還包括分區(qū)標識符添加單元,用 于在所述數(shù)據(jù)處理器分為多個分區(qū)時,將附屬有所述系統(tǒng)控制器的分區(qū)的標 識符添加到將由所述目標確定單元傳送到所述其它系統(tǒng)控制器的輸入輸出 請求,其中所述目標確定單元在以下情況下丟棄輸入輸出請求,即如果所述輸入輸 出請求是從所述其它系統(tǒng)控制器接收且包含一分區(qū)的標識符,而且所述標識 符與附屬有所述系統(tǒng)控制器的分區(qū)的標識符不同。
4. 一種數(shù)據(jù)處理器,包括多個主板,每個主板包括中央處理器、存儲有固件的存儲單元以及系統(tǒng)控制器,每個系統(tǒng)控制器包括地址映射存儲單元,用于存儲地址映射,在所述地址映射中映射用于對所述數(shù)據(jù)處理器中的存儲單元進行訪問的區(qū)域;以及目標確定單元,用于將從與所述目標確定單元處于同一主板上的中央處 理器接收的輸入輸出請求中包含的地址和與所述目標確定單元處于同一系 統(tǒng)控制器中的地址映射存儲單元中的地址映射相比較,并且如果所述地址包含在與本地連接到所述系統(tǒng)控制器的存儲單元相 對應的區(qū)域中,那么根據(jù)所述輸入輸出請求中包含的內容訪問本地連接的存 儲單元,以及如果所述地址包含在與沒有本地連接到所述系統(tǒng)控制器的存儲單 元相對應的區(qū)域中,那么將所述輸入輸出請求傳送到所述其它系統(tǒng)控制器。
5. 根據(jù)權利要求4所述的數(shù)據(jù)處理器,其中所述目標確定單元將從所述 其它系統(tǒng)控制器接收的輸入輸出請求中包含的地址與所述地址映射存儲單 元中的地址映射相比較,并且如果所述地址包含在與本地連接到所述系統(tǒng)控 制器的存儲單元相對應的區(qū)域中,那么根據(jù)所述輸入輸出請求中包含的內容 訪問本地連接的存儲單元。
6. 根據(jù)權利要求5所述的數(shù)據(jù)處理器,其中每個系統(tǒng)控制器還包括分區(qū)標識符添加單元,用于在安裝有所述系統(tǒng)控 制器的數(shù)據(jù)處理器分為多個分區(qū)時,將附屬有所述系統(tǒng)控制器的分區(qū)的標識 符添加到將由所述目標確定單元傳送到所述其它系統(tǒng)控制器的輸入輸出請 求,以及所述目標確定單元在以下情況下丟棄輸入輸出請求,即如果所述輸入輸 出請求是從所述其它系統(tǒng)控制器接收且包含一分區(qū)的標識符,而且所述標識 符與附屬有所述系統(tǒng)控制器的分區(qū)的標識符不同。
7. 根據(jù)權利要求4所述的數(shù)據(jù)處理器,其中在檢測到所述數(shù)據(jù)處理器中 的第一存儲單元的內容損壞時,所述中央處理器向本地連接的系統(tǒng)控制器發(fā)送用于讀取所述數(shù)據(jù)處理器中的第二存儲單元的內容的輸入輸出請求,以及用于將從所述第二存儲單元讀取的內容寫入所述第一存儲單元的輸入 輸出請求。
8. 根據(jù)權利要求4所述的數(shù)據(jù)處理器,其中在檢測到所述數(shù)據(jù)處理器中的第一存儲單元的內容與其它存儲單元的內容之間出現(xiàn)不一致時,所述中央 處理器向本地連接系統(tǒng)控制器發(fā)送用于讀取所述數(shù)據(jù)處理器中的第二存儲單元的內容的輸入輸出請求,以及用于將從所述第二存儲單元讀取的內容寫入所述第一存儲單元的輸入 輸出請求。
9. 一種通過系統(tǒng)控制器控制對存儲單元的輸入輸出請求的方法,所述存儲單元中存儲有固件,所述方法包括從安裝有所述系統(tǒng)控制器的數(shù)據(jù)處理器的中央處理器和其它系統(tǒng)控制 器中的任一個接收所述輸入輸出請求;在從所述中央處理器接收所述輸入輸出請求時,將所述輸入輸出請求中 包含的地址與地址映射相比較,在所述地址映射中映射用于對所述數(shù)據(jù)處理 器中的存儲單元進行訪問的區(qū)域;當所述地址包含在所述比較中確定在與本地連接至所述系統(tǒng)控制器的 存儲單元相對應的區(qū)域中時,根據(jù)所述輸入輸出請求的內容訪問本地連接的 存儲單元;以及當所述地址包含在所述比較中確定在與沒有本地連接至所述系統(tǒng)控制 器的存儲單元相對應的區(qū)域中時,將所述輸入輸出請求傳送到所述數(shù)據(jù)處理 器中的其它系統(tǒng)控制器。
10. 根據(jù)權利要求9所述的方法,其中所述比較包括將從所述其它系統(tǒng) 控制器接收的輸入輸出請求中包含的地址與所述地址映射相比較,以及所述訪問包括如果所述地址包含在與本地連接到所述系統(tǒng)控制器的存 儲單元相對應的區(qū)域中,那么根據(jù)所述輸入輸出請求中包含的內容訪問本地 連接的存儲單元。
11. 根據(jù)權利要求IO所述的方法,還包括在將所述數(shù)據(jù)處理器分為多個分區(qū)時,將附屬有所述系統(tǒng)控制器的分區(qū) 的標識符添加到將在所述傳送中傳送到所述其它系統(tǒng)控制器的輸入輸出請 求;以及在以下情況下丟棄輸入輸出請求,即如果所述輸入輸出請求是從所述其 它系統(tǒng)控制器接收且包含一分區(qū)的標識符,而且所述標識符與附屬有所述系 統(tǒng)控制器的分區(qū)的標識符不同。
全文摘要
本發(fā)明提供一種系統(tǒng)控制器、數(shù)據(jù)處理器以及輸入輸出請求控制方法,所述系統(tǒng)控制器包括地址映射存儲單元,用于存儲地址映射,所述地址映射包括用于對同一數(shù)據(jù)處理器內安裝的FWH進行訪問的映射區(qū)域;以及目標確定單元,用于在從CPU接收輸入輸出請求時,將所述輸入輸出請求中包含的地址與地址映射相比較,并且如果在與沒有本地連接到所述系統(tǒng)控制器的FWH相對應的區(qū)域中包含所述地址,那么將所述輸入輸出請求傳送到安裝在所述數(shù)據(jù)處理器中的其它系統(tǒng)控制器。
文檔編號G06F13/16GK101127017SQ20071010254
公開日2008年2月20日 申請日期2007年5月14日 優(yōu)先權日2006年8月18日
發(fā)明者高橋仁 申請人:富士通株式會社