欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于對稱多處理器互連的方法和設(shè)備以及多處理器的制作方法

文檔序號:6457695閱讀:251來源:國知局
專利名稱:用于對稱多處理器互連的方法和設(shè)備以及多處理器的制作方法
用于對稱多處理器互連的方法和設(shè)備以及多處理器 技術(shù)領(lǐng)域本申請主要涉及數(shù)據(jù)處理系統(tǒng),具體地說,涉及一種用于對稱多 處理器的方法和設(shè)備。更具體地說,本申請涉及一種用于自動管理對 稱多處理器互連的計算機實現(xiàn)方法、設(shè)備以及計算機可用程序代碼。
背景技術(shù)
處理器是能夠獨立于其它處理器地執(zhí)行線程、任務(wù)或其它進(jìn)程的 獨立處理單元或計算單元。處理器既可以包括單個核心,也可以包括 位于單個芯片上的兩個或更多個核心。具有兩個或更多個核心的處理器被稱為多核微處理器。這里使用的處理器包括但不局限于中央處 理單元(CPU)、圖形處理器、多核微處理器、或其它任何已知類型 或可用類型的處理器。具有兩個或更多個獨立處理器的計算機系統(tǒng)被稱為多處理器。多 處理器上的各個處理器被插入其自身的處理器槽中,并且共享同一平 臺接口,該平臺接口將每個處理器連接到存儲器、輸入/輸出端以及存 儲資源。多處理器系統(tǒng)中的處理器共享地址總線、也被稱為計算機總 線的數(shù)據(jù)總線、以及自同步總線。這些處理器還共享存儲子系統(tǒng)。但 是,每個處理器都具有自己的存儲器控制器、 一級(L1)援存以及二 級(L2)緩存。這里使用的多處理器系統(tǒng)是包括共享地址總線、數(shù)據(jù) 總線、自同步總線和/或存儲子系統(tǒng)的所有獨立處理器的計算機系統(tǒng)。對稱多處理器系統(tǒng)是這樣的多處理器,在該多處理器中,兩個或 更多個相同的處理器與單個共享主存儲器相連。對稱多處理器以等同 方式對待多處理器中的所有處理器。相比之下,非對稱多處理器僅將 特定任務(wù)分配給特定處理器。在對稱多處理器中,非常重要的是,兩個或更多個處理器能夠在不干擾其它處理器性能的情況下存取共享存儲器并且在公共數(shù)據(jù)集 上運行。因此,在多處理器初始化期間,對稱多處理器系統(tǒng)中的所有 處理器都應(yīng)該相互同步。同步是一個關(guān)于時間保持的問題。每個處理器都需要被同步,或 者與每一個其它處理器在時間上同步,以便協(xié)調(diào)同時在多處理器上執(zhí) 行的線程或任務(wù)。換句話說,所有處理器都需要被設(shè)置成相同的時間。 這些處理器是通過向各個處理器發(fā)送數(shù)據(jù)分組而相互同步的。這些處理器能夠使用該數(shù)據(jù)分組來與每一個其它處理器同步(sync)。處理器借助互連總線向多處理器上的其它處理器發(fā)送數(shù)據(jù)分組。 該互連總線是多處理器上的所有處理器之間的通信路徑。換句話說, 互連總線借助兩個或更多個處理器之間的鏈路或連接將獨立的處理 器連接在一起。每個處理器都包含通過互連總線向其它處理器發(fā)送 數(shù)據(jù)的驅(qū)動器端口,以及通過互連總線接收來自其它處理器的數(shù)據(jù)的 接收端口。目前,每個多處理器平臺都建有特定的互連網(wǎng)絡(luò),這些互連網(wǎng)絡(luò) 被稱為互連映射。該互連映射提供關(guān)于互連總線中的所有鏈路和連接 的信息。該互連映射由系統(tǒng)架構(gòu)師創(chuàng)建并且在系統(tǒng)工作手冊中提供。 系統(tǒng)工作手冊是為多處理器系統(tǒng)的開發(fā)人員和測試人員編寫的文檔。 系統(tǒng)工作手冊通常包含關(guān)于處理器芯片、多處理器系統(tǒng)的技術(shù)數(shù)據(jù)或 與計算機系統(tǒng)相關(guān)的任何其它技術(shù)數(shù)據(jù)?;ミB映射是在系統(tǒng)工作手冊 中提供的,或者僅是由處理器芯片設(shè)計人員傳達(dá)給固件編程人員的。 根據(jù)該互連映射,固件設(shè)計人員選擇一路徑映射。路徑映射是處理器之間的預(yù)定通信路徑。換句話說,在引導(dǎo)多處 理器系統(tǒng)時,路徑映射提供用于在處理器初始化期間遍歷每個處理器 的單個單向路徑。該路徑映射被用于對處理器進(jìn)行初始化和同步。所述路徑映射是硬編碼在多處理器系統(tǒng)固件中的。該路徑映射是根據(jù)互 連映射而產(chǎn)生的。但是,互連映射有時并不精確,并且包含了錯誤或不正確的信息。 此外,互連映射有時是無法在系統(tǒng)工作手冊中或從任何其它來源#到的。在這種情況下,用戶有時可以根據(jù)多處理器系統(tǒng)的原理圖來解密 出或產(chǎn)生互連映射。但是,大多數(shù)工程師只能很有限地接觸多處理器 系統(tǒng)的原理圖。此外,對用戶來說,根據(jù)原理圖來手動解密互連映射 是耗時且麻煩的處理。與互連映射不同,路徑映射是硬編碼在系統(tǒng)固件中的。路徑映射 在最初創(chuàng)建并且編碼到固件中之后不會被更新或修改。此外,路徑映 射只提供了在硬件中實際可用的多個可能路徑中的單個路徑。換句話 說,處理器之間可能有多條路徑可用。但是,系統(tǒng)將僅使用被硬編碼 在固件中的路徑映射之中提供的 一條路徑。如果路徑映射中的互連鏈 路發(fā)生故障,那么系統(tǒng)無法在處理器之間傳遞地址、數(shù)據(jù)和/或同步分 組。這會導(dǎo)致無法修復(fù)的系統(tǒng)故障。由此,如果系統(tǒng)在初始化或運行 時遇到故障的互連,那么該系統(tǒng)將會停機并且不能恢復(fù)。發(fā)明內(nèi)容示例性實施例提供了 一種用于管理對稱多處理器互連的計算機 實現(xiàn)方法、設(shè)備以及計算機可用程序代碼。在一個實施例中, 一處理 標(biāo)識多處理器上的多個處理器中的各處理器之間的功能性通信連接, 以形成已標(biāo)識的功能性通信連接。該處理根據(jù)該已標(biāo)識的功能性通信 互連來映射所述多個處理器中的任意兩個處理器之間的每個功能性 通信連接,從而形成互連矩陣。該處理使用該互連矩陣來創(chuàng)建路徑映 射。該路徑映射包含所述多個處理器之間的通信連接的序列。該處理 使用該路徑映射對所述多個處理器進(jìn)行初始化。


在所附權(quán)利要求中闡述了被認(rèn)為是本發(fā)明特征的新穎特征。但 是,通過結(jié)合附圖來參考下文中關(guān)于示例性實施例的詳細(xì)描述,可以 最好地理解本發(fā)明自身、優(yōu)選使用方式以及本發(fā)明的其它目的和優(yōu)點,其中圖1是可以實現(xiàn)示例性實施例的數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)的圖解表示;圖2是可以實現(xiàn)示例性實施例的數(shù)據(jù)處理系統(tǒng)的框圖;圖3示出了可以根據(jù)示例性實施例來實現(xiàn)示例性實施例的多個方面的多處理器系統(tǒng)的示例圖;圖4是示出了根據(jù)示例性實施例的通過多處理器來標(biāo)識功能性互連的數(shù)據(jù)流的框圖;圖5是示出了根據(jù)示例性實施例的互連矩陣和路徑映射的框圖; 圖6是示出了根據(jù)示例性實施例的創(chuàng)建和更新互連矩陣的處理的流程圖;圖7是示出了根據(jù)示例性實施例的測試處理器之間連接的處理 的流程圖;以及圖8是示出了根據(jù)示例性實施例的產(chǎn)生路徑映射以及另選路徑 映射的處理的流程圖。
具體實施方式
現(xiàn)在參考附圖并且具體地參考圖1至2,提供了可以實現(xiàn)示例性 實施例的數(shù)據(jù)處理環(huán)境的示例圖。應(yīng)該想到的是,圖1至2僅是示例 性的,并非想要聲稱或暗示任何針對可以實現(xiàn)不同實施例的環(huán)境的限 制??梢詫λ枋龅沫h(huán)境進(jìn)行許多修改?,F(xiàn)在參考附圖,圖1示出了可以實現(xiàn)示例性實施例的數(shù)據(jù)處理系 統(tǒng)網(wǎng)絡(luò)的圖解表示。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100是可以實現(xiàn)實施例的計算 機網(wǎng)絡(luò)。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100包含網(wǎng)絡(luò)102,該網(wǎng)絡(luò)102是用于提 供在網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100內(nèi)連接在一起的不同設(shè)備和計算機之間的 通信鏈路的介質(zhì)。網(wǎng)絡(luò)102可以包括諸如有線、無線通信鏈路或光纖 纜的連接。在所描述的示例中,服務(wù)器104和服務(wù)器106連同存儲單元108 一起連接到網(wǎng)絡(luò)102。此外,客戶機110、 112和114也連接到網(wǎng)絡(luò) 102。這些客戶機IIO、 112和1H例如可以是個人計算機或網(wǎng)絡(luò)計算 機。在所描述的示例中,服務(wù)器104向客戶機110、 112和114提供 諸如引導(dǎo)文件、操作系統(tǒng)映像和應(yīng)用的數(shù)據(jù)。在本示例中,客戶機110、112和114是服務(wù)器104的客戶機。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100還可以包 括未被示出的另外的服務(wù)器、客戶機以及其它設(shè)備。在所描述的示例中,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100是因特網(wǎng),其中網(wǎng)絡(luò) 102代表的是全世界的使用傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP )協(xié)議組 進(jìn)行相互通信的網(wǎng)絡(luò)和網(wǎng)關(guān)的集合。處于因特網(wǎng)中心的是主節(jié)點或主 計算機之間的高速數(shù)據(jù)通信線路的干線,該干線是由用于發(fā)送數(shù)據(jù)和 消息的數(shù)以千計的商業(yè)、政府、教育和其它計算機系統(tǒng)構(gòu)成的。當(dāng)然, 網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100還可被實現(xiàn)為多個不同類型的網(wǎng)絡(luò),例如內(nèi)聯(lián) 網(wǎng)、局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)。對圖1來說,其目的是作 為示例而不是作為針對不同實施例的架構(gòu)限制?,F(xiàn)在參考圖2,該圖示出了可以實現(xiàn)示例性實施例的數(shù)據(jù)處理系 統(tǒng)的框圖。數(shù)據(jù)處理系統(tǒng)200是諸如圖1中的服務(wù)器104或客戶機110 的示例,在該系統(tǒng)中可以設(shè)置用于執(zhí)行示例性實施例的處理的計算機 可用代碼或指令。在所描述的示例中,數(shù)據(jù)處理系統(tǒng)200使用了一種集中式架構(gòu) (hub architecture ),該架構(gòu)包含北橋和存儲器控制中心(MCH) 202;以及南橋和輸入/輸出(I/O )控制中心(ICH ) 204。處理器206、 主存儲器206以及圖形處理器210連接到北橋和存儲器控制中心202。 例如,圖形處理器210可以通過加速圖形端口 (AGP)連接到MCH。在所描述的示例中,局域網(wǎng)(LAN)適配器212連接到南橋和 1/0控制中心204,并且音頻適配器216、鍵盤和鼠標(biāo)適配器220、調(diào) 制解調(diào)器222、只讀存儲器(ROM) 224、通用串行總線(USB)端 口和其它通信端口 232、以及PCI/PCIe設(shè)備234通過總線238連接到 南橋和I/O控制中心204,而硬盤驅(qū)動器(HDD ) 226和CD-ROM驅(qū) 動器230通過總線240連接到南橋和I/O控制中心204。 PCI/PCIe設(shè) 備例如可以包括以太網(wǎng)適配器、外接卡以及用于筆記本計算機的PC 卡。PCI使用卡總線控制器,而PCIe不使用該控制器。ROM 224例 如可以是閃速二進(jìn)制輸入/輸出系統(tǒng)(BIOS)。硬盤驅(qū)動器226和 CD-ROM驅(qū)動器230例如可以使用集成驅(qū)動器電子設(shè)備(IDE )或串行先進(jìn)技術(shù)連接(SATA )接口 。超級I/O (I/O )設(shè)備236可以連接 到南橋和I/O控制中心204。操作系統(tǒng)在處理器206上運行,并且對圖2的數(shù)據(jù)處理系統(tǒng)200 內(nèi)的不同組件進(jìn)行協(xié)調(diào)并提供控制。該操作系統(tǒng)可以是可買到的操作 系統(tǒng),例如Microsoft Windows XP ( Microsoft和Windows是微 軟公司在美國、其它國家或這兩者中的商標(biāo))。諸如JavaTM編程系統(tǒng) 的面向?qū)ο缶幊滔到y(tǒng)可以與操作系統(tǒng)一起運行,并且向在數(shù)據(jù)處理系 統(tǒng)200上運行的Java程序或應(yīng)用提供對操作系統(tǒng)的調(diào)用。Java和所 有基于Java的商標(biāo)都是Sun Microsystems公司在美國、其它國家或 這兩者中的商標(biāo)。用于操作系統(tǒng)、面向?qū)ο缶幊滔到y(tǒng)以及應(yīng)用或程序的指令位于諸 如硬盤驅(qū)動器226的存儲設(shè)備中,并且可以加載到主存儲器208中, 以便由處理器206來執(zhí)行。這些示例性實施例的處理可以由處理器206 使用計算機實現(xiàn)的指令來執(zhí)行,所述指令可以位于諸如主存儲器208、 只讀存儲器224的存儲器中,或者位于一個或多個外圍設(shè)備中。圖l至2中的硬件可以根據(jù)實施方式而改變??墒褂闷渌鼉?nèi)部硬 件或外圍設(shè)備(例如閃存、等價的非易失性存儲器或光盤驅(qū)動器等) 來補充或替換圖l至2中示出的硬件。此外,可將這些示例性實施例 的處理應(yīng)用于多處理器的數(shù)據(jù)處理系統(tǒng)。在一些示例性示例中,數(shù)據(jù)處理系統(tǒng)200可以是個人數(shù)字助理 (PDA),其通常配置有閃存,用以提供用于存儲操作系統(tǒng)文件和/ 或用戶生成數(shù)據(jù)的非易失性存儲器??偩€系統(tǒng)可以包括一個或多個總 線,例如系統(tǒng)總線、1/0總線以及PCI總線。當(dāng)然,可以使用任何類 型的通信構(gòu)造或架構(gòu)來實現(xiàn)總線系統(tǒng),該通信構(gòu)造或架構(gòu)提供了附于 所述構(gòu)造或架構(gòu)的不同組件或設(shè)備之間的數(shù)據(jù)傳輸。通信單元可以包 括一個或多個用于發(fā)送和接收數(shù)據(jù)的設(shè)備,例如調(diào)制解調(diào)器或網(wǎng)絡(luò)適 配器。存儲器例如可以是主存儲器208或者是諸如在北橋和存儲器控 制中心202中建立的高度緩存。處理單元可以包括一個或多個處理器 或CPU。圖1至2中示出的示例以及上述示例并不是要暗示架構(gòu)限制。例如,除了采用PDA的形式之外,數(shù)據(jù)處理系統(tǒng)200還可以是平板 式計算機、膝上型計算機或電話設(shè)備?,F(xiàn)在轉(zhuǎn)到圖3,該圖示出了可以根據(jù)示例性實施例來實現(xiàn)示例性 實施例的多個方面的多處理器系統(tǒng)的示例圖。多處理器系統(tǒng)300是單 芯片的對稱多處理器。非易失性隨機存取存儲器(NVRAM) 301是位于多處理器系統(tǒng) 300上的非易失性存儲器。多處理器系統(tǒng)300包括多個處理器,諸如 處理器302、處理器303以及處理器304。雖然僅示出了三個處理器, 但是多處理器300可以包含任意數(shù)量的處理器。處理器302至304中 的每一個都被插入自己的處理器槽中?;ミB矩陣308是多個處理器中的任意兩個處理器之間的每個功 能性通信連接的映射?;ミB矩陣是在系統(tǒng)初始化期間產(chǎn)生的,并且被 存儲在諸如NVRAM 301的非易失性存儲器中。當(dāng)兩個處理器之間的 連接發(fā)生故障時,該故障連接將被記錄在錯誤日志中。如果錯誤日志 表明路徑映射309中的連接是故障連接,則通過從互連矩陣308中去 除該故障連接來更新互連矩陣。路徑映射309是位于多個處理器之間的用來在處理器之間傳送 數(shù)據(jù)的通信連接的序列。路徑映射309是基于互連矩陣308產(chǎn)生的。 如果路徑映射309中的連接在初始化期間或者在運行時發(fā)生故障,那 么可以根據(jù)已更新的互連矩陣來更新路徑映射309。已更新的路徑映 射是旁路故障連接的替換路徑映射。當(dāng)兩個處理器之間的連接發(fā)生故 障時,該故障連接被記錄在錯誤日志中。如果錯誤日志表明路徑映射 309中的連接是路徑映射309中的故障連接,則在路徑映射309中的 連接發(fā)生故障時,提供另選路徑映射以便對系統(tǒng)進(jìn)行初始化。在這些示例中,每個處理器包含一個協(xié)處理器單元(SPU) 310、 311或312,這些協(xié)處理器單元具有自己的本地存儲(LS)區(qū)域313、 314或315以及專用的存儲器流控制器(MFC) 305、 306或307,這 些存儲器流控制器具有相關(guān)聯(lián)的存儲器管理單元(MMU) 316、 317 或318,用以保持和處理存儲器保護(hù)及存取許可信息。再一次地,雖然在這里舉例顯示的是協(xié)處理器單元,但是多處理器中的任何類型的 處理器單元都可以得到支持。多處理器系統(tǒng)300實現(xiàn)了單元互連總線(EIB)319以及其它I/O 結(jié)構(gòu),以便為內(nèi)部和外部數(shù)據(jù)流提供便利。單元互連總線319充當(dāng)處 理器302、 303和304的主總線。此外,單元互連總線319還與專用 于片外存取的其它接口控制器對接。這些接口控制器包括用于提供 兩個極端數(shù)據(jù)速率的I/O (XIO)存儲器通道321和322的存儲器接 口控制器(MIC) 320,以及用于為多處理器系統(tǒng)300提供兩個高速 外部I/O通道和內(nèi)部中斷控制的寬帶引擎接口 (BEI)單元323。多 處理器接口單元323被實現(xiàn)為總線接口控制器(BIC0和BIC1 ) 324、 325以及I/O接口控制器(IOC) 326。與RRAC接口的一極相連的 這兩個高速外部I/O通道為多處理器系統(tǒng)300提供了靈活輸入和輸出 (FLexIO—0和FLexIO—1) 353。各個協(xié)處理器單元310、 311或312具有相應(yīng)的本地存儲區(qū)域 313、 314或315以及協(xié)執(zhí)行單元(SXU ) 354、 355或356。各個單獨 的協(xié)處理器單元310、 311或312可以執(zhí)行僅來自其相關(guān)聯(lián)的本地存 儲區(qū)域313、 314或315內(nèi)的指令(包括數(shù)據(jù)加載和存儲操作)。因 此,與系統(tǒng)中別處的存儲之間的所有必要數(shù)據(jù)傳送都是借助專用于協(xié) 處理器單元310、 311、 312的存儲器流控制器305、 306和307通過 使用存儲器流控制器的直接存儲器存取操作來執(zhí)行的。在協(xié)處理器單元310、 311或312上運行的程序僅使用本地存儲 地址來引用自己的本地存儲區(qū)域313、 314或315。但是,各協(xié)處理器 單元的本地存儲區(qū)域313、 314或315還分配有整個系統(tǒng)的存儲器映 射內(nèi)的一真實地址(RA)。這使特許軟件可將本地存儲區(qū)域映射到 進(jìn)程的有效地址(RA),以幫助在一個協(xié)處理器單元的本地存儲器 與另一個協(xié)處理器單元的本地存儲器之間進(jìn)行直接存儲器存取傳送。主存儲器由系統(tǒng)中的處理器302、 303和304以及I/O設(shè)備共享。 保持在該存儲級中的所有信息對于系統(tǒng)中的所有處理器和設(shè)備都是 可見的。協(xié)處理器單元的程序通過利用適當(dāng)?shù)挠行У刂泛捅镜卮鎯Φ刂樊a(chǎn)生直接存儲器存取數(shù)據(jù)傳送命令并將該命令置于其存儲器流控制器(MFC) 305、 306或307的命令隊列中以供執(zhí)行,來訪問主存 儲器。在被執(zhí)行時,所需數(shù)據(jù)被在其自身的本地存儲區(qū)域與主存儲器 之間進(jìn)行傳送。代理命令隊列通常用于在啟動協(xié)處理器單元之前將程 序存儲在本地存儲器中。代理命令還可以用于上下文存儲操作。協(xié)處理器單元310、311或312以及存儲器流控制器(MFC)305、 306和307通過具有容量的單向通道而相互通信。該通道接口傳送的 是往來于存儲器流控制器305、 306、 307以及協(xié)處理器單元310、 311、 312的消息。總線接口單元339、 340和341將存儲器流控制器305、 306和307連接到單元互連總線(EIB ) 319。存儲器流控制器305、 306和307為協(xié)處理器單元310、 311和 312提供了兩個主要功能。存儲器流控制器305、 306和307在協(xié)處理 器單元310、 311或312的本地存儲(LS )區(qū)域313、 314和315與主 存儲器之間移動數(shù)據(jù)。此外,存儲器流控制器305、 306和307還在 協(xié)處理器單元310、 311、 312與系統(tǒng)中的其它設(shè)備之間提供同步功能。存儲器流控制器305、 306和307的實現(xiàn)具有四個功能單元直 接存儲器存取控制器(DMAC) 336、 337和338,存儲器管理單元 (MMU) 316、 317和318,原子單元(ATO ) 342、 343和344,替 換管理表(RMT) 345、 346和347,以及總線接口單元(BIU) 339、 340和341。直接存儲器存取控制器336、 337和338保持并處理存儲 器流控制器命令隊列(MFC CMDQ),該隊列包括存儲器流控制器 協(xié)處理器單元命令隊列(MFCSPUQ)以及存儲器流控制器代理命令 隊列(MFCPrxyQ)。在虛擬模式中,存儲器管理單元316、 317和318提供了地址變 換和存儲器保護(hù)功能,以便處理來自直接存儲器存取控制器336、 337 和338的有效地址變換請求并送回已變換地址。原子單元342、 343和344提供了與系統(tǒng)中的其它處理單元保持 同步所需的數(shù)據(jù)緩存等級。保持了與系統(tǒng)中的其它緩存的相關(guān)性。原 子式的直接存儲器存取命令為協(xié)處理器單元提供了請求與其它單元同步的手段??偩€接口單元339、 340和341的主要功能是向處理器302、 303 和304提供與單元互連總線對接的接口 。單元互連總線319提供了多 處理器系統(tǒng)300上的所有處理器與附于該單元互連總線319的外部接 口控制器之間的通信路徑。存儲器接口控制器320提供了單元互連總線319與一個或多個極 端數(shù)據(jù)速率的I/O單元存儲器通道321、 322之間的接口。極端數(shù)據(jù) 速率(XDRTM)動態(tài)隨機存取存儲器(DRAMTM)是由Rambus提供 的高速且高度串行的存儲器。該極端數(shù)據(jù)速率動態(tài)隨機存取存儲器是 使用Rambus提供的宏來存取的,在本文中這種宏被稱為極端數(shù)據(jù)速 率I/O單元存儲器通道321和322。存儲器接口控制器320是單元互連總線319上的從設(shè)擬slave )。 存儲器接口控制器320在其與所支持中心中的存儲器相對應(yīng)的已配置 地址范圍中應(yīng)答命令??偩€接口控制器324和325管理從單元互連總線319到兩個外部 設(shè)備中的任一個的片上或片外數(shù)據(jù)傳送。I/O接口控制器326對源自 1/0接口設(shè)備并且以相關(guān)單元互連總線319為目的地的命令進(jìn)行處理。 I/O接口設(shè)備可以是附于I/O接口的任何設(shè)備,諸如附著了多個I/O 設(shè)備的I/O橋接芯片或者以非相關(guān)方式進(jìn)行訪問的另 一個多處理器。 I/O接口控制器326還會截取以位于I/O橋接芯片或非相關(guān)多處理器 系統(tǒng)300之中或之后的存儲器映射寄存器為目的地的、對單元互連總 線319的存取,并且將其引導(dǎo)到正確的1/0接口。 1/0接口控制器326 還包括內(nèi)部中斷控制器(IIC )349以及1/0地址變換單元(I/O TRANS ) 350。雖然描述了如何實現(xiàn)不同組件的具體示例,但是這些示例并不意 味著對可以使用示例性實施例的各方面的架構(gòu)進(jìn)行限制。這些示例性實施例使我們認(rèn)識到需要快速精確地為每一個多處 理器平臺自動產(chǎn)生互連矩陣。此外,這些示例性實施例使我、們認(rèn)識到 需要在互連總線中的鏈路或連接發(fā)生故障或者由于其它原因而變得無法工作時更新或修改互連矩陣。因此,這些示例性實施例提供了一 種用于管理多處理器互連的計算機實現(xiàn)方法、設(shè)備和計算機程序產(chǎn)ff口 》在一個實施例中, 一處理會在輸出文件中標(biāo)識多處理器上的多個 處理器中的各處理器之間的功能性通信連接。通信連接是兩個處理器 之間的總線上的路徑或鏈路。通信連接允許一個處理器借助鏈路向另 一個處理器發(fā)送數(shù)據(jù)。功能性通信連接是進(jìn)行工作從而使處理器能夠 借助通信連接向另一個處理器發(fā)送數(shù)據(jù)的通信連接。如果通信連接因 為任何原因而被禁用使得數(shù)據(jù)無法再沿著該鏈路進(jìn)行傳送,那么該通 信連接是無功能或發(fā)生故障的通信連接。該處理根據(jù)輸出文件產(chǎn)生互連矩陣。互連矩陣是多個處理器中任 意兩個處理器之間的每個功能性通信連接的映射。該處理根據(jù)互連矩 陣來創(chuàng)建路徑映射。路徑映射是多個處理器之間的通信連接的序列。 該處理根據(jù)路徑映射來初始化所述多個處理器。響應(yīng)于確定了所述多 個處理器中的兩個處理器之間的連接發(fā)生故障從而形成故障連接,該 處理從互連矩陣中去除該故障連接。圖4是示出了根據(jù)示例性實施例的通過多處理器來標(biāo)識功能性 互連的數(shù)據(jù)流的框圖。多處理器400是具有兩個或更多個處理器的設(shè) 備。多處理器400中的處理器是封裝在分立的集成電路封裝中的處理 器。多處理器中的各分立處理器可以包括單個處理器核心,也可以包 括單個集成電路封裝中的多個處理器核心??刂破?01是用于管理多處理器互連的軟件組件??刂破?01 將多處理器上的多個處理器中的各處理器之間的功能性通信連接標(biāo) 識在輸出文件中??刂破?01將多處理器400上的一組處理器中的一 個處理器指定為主設(shè)備處理器402??刂破?01通過在處理器上的寄 存器中設(shè)置標(biāo)記來進(jìn)行所述指定。為了測試主設(shè)備處理器與多處理器 系統(tǒng)上的所有其它處理器之間的互連,多處理器系統(tǒng)中的每個處理器 被相繼指定為主設(shè)備處理器,直至每一個處理器都曾被指定為主設(shè)備 處理器為止。控制器401將多處理器400上的所有其它處理器指定為接收機處理器,例如接收處理器404和406。控制器401通過設(shè)置寄存器(例如寄存器408),將一處理器指 定為主設(shè)備處理器402。同樣,控制器401通過設(shè)置處理器上的寄存 器,將一處理器指定為接收機處理器,其中所述寄存器例如是接收機 處理器404上的寄存器410或接收機處理器406上的寄存器412。接收端口414、 416和418是用于接收來自另一個處理器的數(shù)據(jù) 分組的端口。在這個示例性示例中,接收端口 414、 416和418包括 三個(3)接收端口。發(fā)送端口 420、 422和424是用于向另一個處理 器發(fā)送數(shù)據(jù)分組的驅(qū)動器端口。控制器401通過指定向所有其它接收機處理器發(fā)送數(shù)據(jù)分組的 主設(shè)備處理器來測試各處理器之間的連接??刂破?01發(fā)起借助互連 總線430的數(shù)據(jù)分組傳輸,所述數(shù)據(jù)分組例如為從主設(shè)備處理器402 上的發(fā)送端口 420到所有接收機處理器404和406的數(shù)據(jù)分組426和 428?;ミB總線430是允許多處理器400上的處理器相互通信的互連網(wǎng) 絡(luò)?;ミB總線430由主設(shè)備處理器402用來向多處理器400上的其它 處理器傳送數(shù)據(jù)分組426和428。然后,控制器401通過打開各接收端口并且確定給定接收機端口 是否接收到數(shù)據(jù)分組426或428,由此標(biāo)識主設(shè)備處理器402與給定 接收機之間的功能性連接。如果接收到了所述數(shù)據(jù)分組,那么主設(shè)備 處理器402與給定接收機端口之間的連接是功能性連接??刂破?01命令接收機處理器404打開給定接收端口 416,以便 確定給定接收機端口 416是否接收到主設(shè)備處理器402發(fā)送的數(shù)據(jù)分 組426。如杲控制器401確定給定接收端口接收到了數(shù)據(jù)分組426, 那么控制器401將在輸出文件中將主設(shè)備處理器與給定接收端口之間 的連接標(biāo)識為功能性連接,該輸出文件例如是存儲器429中的曰志 427。在這個示例性示例中,存儲器429是非易失性存儲器,例如非 易失隨機存取存儲器(NVRAM)。但是,該存儲器可以是用于存儲 數(shù)據(jù)的任何類型的已知或可用數(shù)據(jù)存儲設(shè)備。如果接收端口沒有接收到數(shù)據(jù)分組426,那么主設(shè)備處理器402 與給定接收端口之間的連接不是功能性連接。也可將無功能性連接記 錄在諸如日志427的輸出文件中??刂破?01繼續(xù)該處理,直至為了確定主設(shè)備處理器402與給定 接收端口之間的各個連接是否為功能性連接而打開了每一個接收機 處理器上的每一個接收端口為止。然后,控制器401將下一個處理器 指定為主設(shè)備處理器。在這個示例中,接收機處理器404被指定為主 設(shè)備處理器,而主設(shè)備處理器402被指定為接收機。處理器404借助 互連總線430將數(shù)據(jù)分組發(fā)送到所有其它處理器,以便確定接收機處 理器404與各處理器上的給定接收端口之間的連接是否為功能性連 接。該處理繼續(xù)進(jìn)行,直至多處理器400上的每一個處理器都曾被指 定為主設(shè)備處理器為止。因此,控制器401循環(huán)地將下一個處理器指定為主設(shè)備處理器并 將所有其它處理器指定為接收機處理器,并且標(biāo)識主設(shè)備處理器與接 收機處理器之間的所有功能性連接,直到所述多個處理器中的每個處 理器都曾被指定為主設(shè)備處理器為止??刂破?01將所有功能性連接 標(biāo)識在諸如日志427的輸出文件中??刂破?01根據(jù)日志427產(chǎn)生互連矩陣432。互連矩陣432是多 處理器400上的任意兩個處理器之間的每一個功能性通信連接的映 射。然后,控制器401根據(jù)互連矩陣432來創(chuàng)建路徑映射434。路徑 映射434是處理器之間的通信連接的序列。路徑映射434闡述了借助 互連總線430發(fā)送數(shù)據(jù)以及使處理器同步的路徑或路由。路徑映射434 是處理器之間的一組可能路徑中的單個路徑??刂破?01根據(jù)路徑映 射434來初始化多處理器400上的處理器。如果兩個處理器之間的連接在初始化期間或在運行時發(fā)生故障, 那么將該故障連接記錄在錯誤日志中。根據(jù)錯誤日志,控制器401將 從互連矩陣432中去除故障連接。由此,控制器401動態(tài)且自動地將 互連矩陣432更新為反映新的故障連接。如果故障連接是路徑映射434中的連接,那么控制器401根據(jù)已更新的互連矩陣來產(chǎn)生另選路徑映射。該另選路徑映射將會旁路故障連接。該另選路徑映射被存儲在存儲器429中,用于替換路徑映射434。如果故障連接是在處理器初始化期間出現(xiàn)故障的,那么控制器 401會在初始化期間產(chǎn)生另選路徑映射,并使用該另選路徑映射來繼 續(xù)執(zhí)行處理器的初始化。由此,即^使路徑映射中的連接在初始化期間 發(fā)生故障,這些示例性實施例也會動態(tài)地提供旁路故障連接的另選路 徑映射,以使初始化處理得以繼續(xù)。根據(jù)這個示例性實施例,只有在控制器401因為互連矩陣432 中剩余的功能性連接不足而不能產(chǎn)生另選路徑映射的情況下,初始化 才會停止。在這種情況下,系統(tǒng)將會停機并且在修復(fù)或替換故障連接 之前無法進(jìn)行初始化。如果故障連接是在運行時出現(xiàn)故障的,那么控制器401將更新互 連矩陣432,并且產(chǎn)生另選路徑映射。但是,由于該故障連接,該系 統(tǒng)必須停機并重啟。當(dāng)系統(tǒng)重新進(jìn)行初始化時,使用該另選路徑映射 來初始化處理器以及旁路故障連接。這樣一來,即使路徑映射中的連 接在運行時發(fā)生故障,系統(tǒng)也能夠重新初始化。圖5是示出了才艮據(jù)示例性實施例的互連矩陣和路徑映射的框圖。 互連矩陣500是用于多處理器502的互連矩陣。多處理器502是一多 處理器,例如圖3中的多處理器300和圖4中的多處理器400。處理 器A 504、處理器B 506、處理器C 508以及處理器D 510是諸如圖4 中的處理器402、 404和406的處理器。處理器504至510通過借助 互連總線從發(fā)送端口向接收端口傳送數(shù)據(jù)而進(jìn)行相互通信。互連矩陣500包含多處理器502上的處理器之間的所有功能性連 接。例如,互連矩陣500包括處理器A與B之間的連接512、處理器 B與C之間的連接514、處理器C與D之間的連接516以及處理器C 與B之間的連接518。這些連接512至518是兩個處理器之間的單向 連接。路徑映射520是根據(jù)互連矩陣500產(chǎn)生的路徑映射。路徑映射 520是用于遍歷多處理器502中的每個處理器的連接序列。在本示例中,路徑映射502并未使用互連矩陣500中的每個連接。在本示例中, 路徑映射使用了連接512至516。因此,如果處理器C與B之間的連 接518發(fā)生故障,那么路徑映射520將不會受到影響。但是,互連矩 陣500需要進(jìn)行更新,以便去除故障連接518。現(xiàn)在參考圖6,示出了例示根據(jù)示例性實施例的創(chuàng)建和更新互連 矩陣的處理的流程圖。在圖6所示的這個示例性示例中,該處理是由 用于管理互連的軟件組件執(zhí)行的,所述軟件組件例如為圖4中的控制 器401。該處理通過在系統(tǒng)初始化期間創(chuàng)建互連矩陣從而開始(步驟 602)。該處理將互連矩陣存儲在諸如NVRAM的非易失性存儲器中 (步驟604)。該處理將確定連接是否發(fā)生了故障(步驟606)。如 果連接沒有發(fā)生故障,那么該處理在此后終止。換句話說, 一旦產(chǎn)生 了互連矩陣,那么除非在產(chǎn)生該互連矩陣之后有連接發(fā)生故障,否則 該互連矩陣不會被重新產(chǎn)生、變更、修改或更新。返回到步驟606,如果連接發(fā)生故障,那么該處理將從互連矩陣 中去除故障連接(步驟608)。將經(jīng)修改的互連矩陣存儲在非易失性 存儲器中(步驟610),此后該處理終止。圖7是示出了根據(jù)示例性實施例的測試處理器之間的連接的處 理的流程圖。在圖7所示的這個示例性示例中,該處理是由用于管理 互連的軟件組件執(zhí)行的,所述軟件組件例如為圖4中的控制器401。該處理通過對多處理器進(jìn)行初始化直到互連初始化而開始(步驟 702)。該步驟發(fā)生在系統(tǒng)引導(dǎo)處理期間。該處理將選擇一個處理器, 并且創(chuàng)建所選處理器的寄存器值的備份(步驟704)。該處理將所選 處理器設(shè)置成主設(shè)備處理器,并將所有其它處理器設(shè)置成接收機處理 器(步驟706)。該處理命令主設(shè)備處理器在所有的主設(shè)備處理器的 驅(qū)動總線或發(fā)送端口上發(fā)出數(shù)據(jù)分組(步驟708)。該處理命令主設(shè)備處理器對其自身進(jìn)行檢測(步驟710)。在將 一處理器指定為主設(shè)備處理器時,該主設(shè)備處理器通過表施出該主設(shè) 備處理器已經(jīng)檢測到其自身來作出確認(rèn)。 一旦主設(shè)備處理器檢測到其自身,那么該主設(shè)備處理器可以向多處理器中的所有其它處理器發(fā)送 數(shù)據(jù)分組。該處理選擇一接收機處理器(步驟712)。該處理打開該選定接 收機處理器上的一接收端口 (步驟714)。該處理將確定主設(shè)備處理 器是否通過所打開的端口檢測到了該接收機處理器(步驟716)。如 果該處理檢測到了所打開的端口,那么該處理將與主設(shè)備處理器相連 的接收機處理器的該端口寫入輸出文件,作為一功能性連接。如果在步驟716中該處理沒有檢測到所打開的端口 ,或者在步驟 718中該處理將功能性連接寫入輸出文件之后,該處理將確定是否還 有未打開的接收端口 (步驟720)。如果還有任何未打開的接收端口, 那么該處理將打開下一個接收端口 (步驟722),并且循環(huán)地持續(xù)執(zhí) 行步驟716至722,直至打開并測試了給定接收機處理器上的所有接 收端口為止。一旦在步驟720中打開并測試了所有接收端口 ,那么該處理將確 定是否還有未測試的接收機處理器(步驟724)。換句話說,該處理 將確定是否多處理器上的每個接收機處理器已打開了每個接收機接 收端口。如果為"否,,的話,那么還有未測試的接收機處理器,并且該 處理將選擇下一個接收機處理器(步驟726)并且循環(huán)執(zhí)行步驟714 至724,直至打開并測試了每個接收機處理器上的每個接收端口為止。返回到步驟724,如果所有接收機處理器都已被測試,那么該處 理將確定是否每個處理器都曾被指定為主設(shè)備處理器(步驟728)。 如果不是每個處理器都曾被指定為主設(shè)備處理器,那么該處理將選擇 下一個處理器(步驟730)并且循環(huán)地繼續(xù)執(zhí)行步驟708至728,直 到為了測試該處理器與多處理器上的其它接收機處理器之間的連接 而將每個處理器充當(dāng)了一輪主設(shè)備處理器為止。當(dāng)在步驟728中所有處理器都曾被指定為主設(shè)備處理器時,該處 理根據(jù)輸出文件產(chǎn)生互連矩陣(步驟732 ),此后該處理終止。該互 連矩陣包含多處理器上的每個處理器之間的所有功能性連無?,F(xiàn)在轉(zhuǎn)到圖8,示出了根據(jù)示例性實施例的產(chǎn)生路徑映射和另選路徑映射的處理的流程圖。在圖8所示的這個示例性示例中,該處理 是由用于管理互連的軟件組件執(zhí)行的,所述軟件組件例如為圖4中的 控制器401。
該處理通過檢索多處理器的互連矩陣而開始(步驟802)。該處 理檢查互連錯誤日志(步驟804 )。該錯誤日志指示是否有任何連接 發(fā)生故障。
該處理將確定在錯誤日志中是否存在任何故障互連(步驟806 )。 如果不存在故障互連,那么該處理根據(jù)互連矩陣產(chǎn)生路徑映射(步驟 808 )。該處理基于該路徑映射對互連進(jìn)行初始化(步驟810 )。然后, 該處理將確定在初始化期間是否有任何互連發(fā)生故障(步驟812)。
如果在步驟812中在初始化期間互連發(fā)生故障或者在步驟806 中檢測到了故障互連,那么該處理將故障連接記錄在互連錯誤日志中 (步驟814),并且從互連矩陣中去除該故障互連(步驟816)。
如果該故障連接不是互連路徑中的連接,那么仍可使用原始路徑 映射來完成處理器的初始化。但是,如果該故障連接是互連路徑中的 連接,那么該處理將確定是否還有足夠互連可用于產(chǎn)生另選路徑映射 (步驟818)。
如果還有足夠的互連,那么該處理使用替換路徑來產(chǎn)生路徑映射 (步驟820)。該處理將記錄互連故障(步驟822),并且使用該替 換路徑來初始化所述多處理器,此后該處理終止。該處理將多處理器 上的各處理器之間的功能性通信連接標(biāo)識在輸出文件中。該處理將根 據(jù)該輸出文件來產(chǎn)生互連矩陣。
現(xiàn)在返回到步驟818,如果沒有可用于產(chǎn)生另選路徑映射的足夠 互連,那么該處理將記錄互連故障(步驟822),此后該處理終止。
互連矩陣是多個處理器中的任意兩個處理器之間的每個功能性 連接的映射。所述處理根據(jù)互連矩陣來產(chǎn)生路徑映射。路徑映射是處 理器之間的通信連接的序列。該處理根據(jù)路徑映射來對處理器進(jìn)行初 始化。響應(yīng)于確定兩個處理器之間的連接發(fā)生了故障從而形成故障連 接,該處理從互連矩陣中去除該故障連接。這些示例性實施例將遍歷系統(tǒng)中的所有處理器。該處理將每個處 理器相繼設(shè)置成連接主設(shè)備。系統(tǒng)中的每個處理器一次打開它的一個 端口,以確定在該處理器與主設(shè)備之間是否存在直接連接。由此,處 理器之間的所有可用連接都會被探測并被寫入到 一輸出文件中,以供 在產(chǎn)生互連矩陣和路徑映射時使用。此外,如果有連接發(fā)生故障,那 么可以產(chǎn)生另選路徑映射。就在芯片間獲取地址、數(shù)據(jù)和同步分組而 言,該系統(tǒng)具有多于一個的選項。
這些示例性實施例通過提供在系統(tǒng)初始化時建立互連矩陣和路 徑映射的算法,而取代了對于靜態(tài)處理器總線映射的需要。與得到固 件中每個系統(tǒng)平臺的映射相比,這種解決方案可以產(chǎn)生更小的軟件編 譯版本。小的軟件編譯版本有助于更快的加栽以及系統(tǒng)初始化。此外, 在解密路徑映射和互連矩陣時,工作手冊或原理圖并不是必需的。
通過使用在系統(tǒng)的初始化階段創(chuàng)建的互連映射,該系統(tǒng)將使用另 選路徑之一來完成系統(tǒng)的初始化。此外,該系統(tǒng)可以在中斷較少或者 在沒有中斷的情況下繼續(xù)初始化處理,直至系統(tǒng)完全被初始化并繼續(xù) 到運行時為止。這與在連接發(fā)生故障時無法初始化的當(dāng)前系統(tǒng)相比是 有優(yōu)勢的。
附圖中的流程圖和框圖示出了根據(jù)不同實施例的系統(tǒng)、方法和計 算機程序產(chǎn)品的一些可能實現(xiàn)的架構(gòu)、功能和操作。在這點上,流程 圖或框圖中的每一個方框可以代表代碼模塊、代碼段或代碼部分,其 包含用于實現(xiàn)特定邏輯功能的一個或多個可執(zhí)行指令。此外還應(yīng)該指 出的是,在一些另選實施方式中,方框中指明的功能可以不按照圖中 指出的順序發(fā)生。例如,兩個連續(xù)顯示的方框?qū)嶋H上可以基本并發(fā)地 執(zhí)行,或者這些方框有時也可以按照相反的順序執(zhí)行,這取決于所涉 及的功能。
本發(fā)明可以釆用純硬件實施例、純軟件實施例或包含軟硬件部件 兩者的實施例的形式。在一優(yōu)選實施例中,本發(fā)明是以軟4實現(xiàn)的, 該軟件包括但不局限于固件、駐留軟件、微代碼等。
此外,本發(fā)明可以采用計算機程序產(chǎn)品的形式,所述計算機程序產(chǎn)品可以從提供了供計算機或任何指令執(zhí)行系統(tǒng)使用或與之結(jié)合使 用的程序代碼的計算機可用或計算機可讀介質(zhì)中得到。出于描述目 的,計算機可用或計算機可讀介質(zhì)可以是任何有形裝置,該裝置可以 包含、存儲、傳達(dá)、傳播或傳送供指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或 與之結(jié)合使用的程序。
所述介質(zhì)可以是電子的、磁的、光學(xué)的、電磁的、紅外的或半導(dǎo) 體的系統(tǒng)(或者裝置或設(shè)備),或者是傳播介質(zhì)。計算機可讀介質(zhì)的 示例包括半導(dǎo)體或固態(tài)存儲器、磁帶、可拆卸計算機磁盤、隨機存取
存儲器(RAM)、只讀存儲器(ROM)、剛性磁盤以及光盤。光盤 的當(dāng)前示例包括緊湊型盤-只讀存儲器(CD-ROM)、緊湊型盤-讀/ 寫(CD國R/W)以及DVD。
適合存儲和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)包括直接或通過系 統(tǒng)總線間接連接到存儲器部件的至少一個處理器。該存儲器部件可以 包括在實際執(zhí)行程序代碼期間使用的本地存儲器,大容量存儲器以及 緩沖存儲器,所述緩沖存儲器提供了至少某些程序代碼的臨時存儲, 以便減少在執(zhí)行期間必須從大容量存儲器中取回代碼的次數(shù)。
輸入/輸出或I/O設(shè)備(包括但不局限于鍵盤、顯示器、定點設(shè) 備等)可以直接或者通過中間1/0控制器連接到系統(tǒng)。
網(wǎng)絡(luò)適配器也可以連接到系統(tǒng),以使數(shù)據(jù)處理系統(tǒng)能夠通過中間 的私有或公共網(wǎng)絡(luò)連接到其它數(shù)據(jù)處理系統(tǒng)、遠(yuǎn)程打印機或存儲設(shè) 備。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器以及以太網(wǎng)卡只是幾個當(dāng)前可用的 網(wǎng)絡(luò)適配器類型。
出于例示和說明目的,已經(jīng)給出了對示例性實施例的描述,這些 描述不是想要窮舉性或者將本發(fā)明局限于所公開的形式。對本領(lǐng)域普 通技術(shù)人員來說,許多修改和變型將是顯而易見的。在這里選擇并描 述這些實施例是為了最好地解釋本發(fā)明的原理和實際應(yīng)用,并使本領(lǐng)
改的本發(fā)明的不同實施例。
權(quán)利要求
1.一種用于管理對稱多處理器互連的計算機實現(xiàn)方法,該計算機實現(xiàn)方法包括標(biāo)識多處理器上的多個處理器中的各處理器之間的功能性通信連接,以形成已標(biāo)識功能性通信連接;根據(jù)該已標(biāo)識功能性通信連接,映射所述多個處理器中的任意兩個處理器之間的每個功能性通信連接,以形成互連矩陣;使用該互連矩陣來創(chuàng)建路徑映射,其中該路徑映射包括所述多個處理器之間的通信連接的序列;以及使用該路徑映射對所述多個處理器進(jìn)行初始化。
2. 如權(quán)利要求1所述的計算機實現(xiàn)方法,還包括 響應(yīng)于標(biāo)識出故障連接,從互連矩陣中去除該故障連接,其中故障連接是所述多個處理器中的兩個處理器之間的已經(jīng)發(fā)生了故障的 連接。
3. 如權(quán)利要求1所述的計算機實現(xiàn)方法,還包括 將已標(biāo)識功能性通信連接存儲在輸出文件中。
4. 如權(quán)利要求2所述的計算機實現(xiàn)方法,其中從互連矩陣中去 除故障連接的步驟形成了已更新互連矩陣,并且該方法還包括響應(yīng)于確定出該故障連接是路徑映射中的連接,根據(jù)該已更新互 連矩陣來產(chǎn)生另選路徑映射,其中該另選路徑映射旁路該故障連接。
5. 如權(quán)利要求4所述的計算機實現(xiàn)方法,其中該故障連接是在 初始化期間發(fā)生故障的連接,并且該方法還包括根據(jù)該另選路徑映射,繼續(xù)對所述多個處理器進(jìn)行初始化。
6. 如權(quán)利要求4所述的計算機實現(xiàn)方法,其中該故障連接是在 運行時間期間發(fā)生故障的連接,并且該方法還包括重新引導(dǎo)該系統(tǒng);以及根據(jù)該另選路徑映射,對所述多個處理器進(jìn)行初始化。
7. 如權(quán)利要求4所述的計算機實現(xiàn)方法,還包括只有在因剩余的功能性互連不足而無法產(chǎn)生另選路徑映射的情 況下,才將系統(tǒng)指定為不能進(jìn)行初始化。
8. 如權(quán)利要求1所述的計算機實現(xiàn)方法,其中標(biāo)識各處理器之 間的功能性通信連接的步驟還包括將所述多個處理器中的一個處理器指定為主設(shè)備,并將所述多個 處理器中的所有其它處理器指定為接收機處理器;發(fā)起從主設(shè)備上的一組發(fā)送端口到所有接收機處理器的數(shù)據(jù)分 組傳輸;以及打開每個接收機處理器上的一組接收端口 ,以確定主設(shè)備與該接 收機之間的每個連接是否為功能性連接;以及 將所有功能性連接標(biāo)識在輸出文件中。
9. 如權(quán)利要求8所述的計算機實現(xiàn)方法,還包括 響應(yīng)于確定出并不是所述多個處理器中的每個處理器都未曾被指定為主設(shè)備,循環(huán)地將下一個處理器指定為主設(shè)備,并將所有其它 處理器指定為接收機處理器;以及標(biāo)識主設(shè)備與接收機處理器之間的所有功能性連接,直至所述多 個處理器中的每個處理器都曾被指定為主設(shè)備為止。
10. 如權(quán)利要求8所述的計算機實現(xiàn)方法,其中打開每個接收機 處理器上的 一組接收機端口的步驟還包括打開接收機處理器上的該組接收機端口中的給定接收機端口 ; 確定該給定接收機端口是否接收到主設(shè)備發(fā)送的數(shù)據(jù)分組;以及 響應(yīng)于確定出該給定接收機端口接收到該數(shù)據(jù)分組,在輸出文件 中將主設(shè)備與該給定接收機端口之間的連接標(biāo)識為功能性連接。
11. 如權(quán)利要求10所述的計算機實現(xiàn)方法,還包括 響應(yīng)于確定出尚未打開的該組接收機端口中的每個接收機端口 ,循環(huán)地打開每個接收機端口,并且確定已打開的接收機端口是否接收 到該數(shù)據(jù)分組,其中如果該已打開的接收機端口接收到該數(shù)據(jù)分組, 那么在輸出文件中將主設(shè)備與該已打開的接收機端口之間的連接標(biāo) 識為功能性連接。
12. 如權(quán)利要求1所述的計算機實現(xiàn)方法,其中互連矩陣和路徑 映射被保存在非易失性存儲器中。
13. —種用于管理對稱多處理器互連的設(shè)備,該設(shè)備包括 計算設(shè)備,該計算設(shè)備包括總線;與總線相連的存儲設(shè)備,其中該存儲設(shè)備包含計算機可用 的程序產(chǎn)品;以及多個處理器,其中所述多個處理器中的至少一個處理器執(zhí) 行該計算機可用程序代碼,以將多處理器上的多個處理器中的各 處理之間的功能性通信連接標(biāo)識在輸出文件中;根據(jù)該輸出文件 來產(chǎn)生互連矩陣,其中互連矩陣是多個處理器中的任意兩個處理 器之間的每個功能性通信連接的映射;根據(jù)該互連矩陣來創(chuàng)建路 徑映射,其中路徑映射是多個處理器之間的通信連接的序列;以 及根據(jù)該路徑映射對所述多個處理器進(jìn)行初始化。
14. 如權(quán)利要求13所述的設(shè)備,其中該處理器還執(zhí)行計算機可 用程序代碼,以響應(yīng)于確定出所述多個處理器中的兩個處理器之間的 連接已經(jīng)發(fā)生故障,而從互連矩陣中去除該故障連接。
15. —種多處理器,該多處理器包括 互連總線;多個處理器; 存儲器;以及控制器,其中該控制器將所述多個處理器中的各處理器之間的功 能性通信連接標(biāo)識在該存儲器中的輸出文件中;根據(jù)該輸出文件來產(chǎn) 生互連矩陣,其中互連矩陣是多個處理器中的任意兩個處理器之間的 每個功能性通信連接的映射;根據(jù)該互連矩陣來創(chuàng)建路徑映射,其中 路徑映射是多個處理器之間的通信連接的序列;以及根據(jù)該路徑映射 對所述多個處理器進(jìn)行初始化。
16. 如權(quán)利要求15所述的多處理器,其中響應(yīng)于確定出兩個處 理器之間的連接已經(jīng)發(fā)生故障,該控制器從互連矩陣中去除故障連接,從而形成已更新的互連矩陣,并且其中響應(yīng)于確定出該故障連接 是路徑映射中的連接,該控制器根據(jù)該已更新的互連矩陣來產(chǎn)生另選 路徑映射,其中該另選路徑映射旁路該故障連接。
全文摘要
本發(fā)明涉及用于對稱多處理器互連的方法和設(shè)備以及多處理器。提供了一種用于管理對稱多處理器互連的計算機實現(xiàn)方法、設(shè)備以及計算機程序產(chǎn)品。該處理標(biāo)識多處理器上的多個處理器中的各處理器之間的功能性通信連接,以形成已標(biāo)識功能性通信連接。該處理根據(jù)該已標(biāo)識功能性通信連接來映射所述多個處理器中的任意兩個處理器之間的每個功能性通信連接,從而形成互連矩陣。該處理使用該互連矩陣來創(chuàng)建路徑映射。該路徑映射包含所述多個處理器之間的通信連接的序列。該處理使用該路徑映射對所述多個處理器進(jìn)行初始化。
文檔編號G06F15/163GK101221551SQ200810002268
公開日2008年7月16日 申請日期2008年1月8日 優(yōu)先權(quán)日2007年1月9日
發(fā)明者喬治·N.·亞尼茲, 馬克·D.·麥克勞林, 魯?!.·阿布-埃馬拉 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
梁河县| 衡阳市| 河津市| 岑巩县| 贵州省| 太白县| 潜江市| 科尔| 八宿县| 齐河县| 汉中市| 佳木斯市| 名山县| 南川市| 阳朔县| 开封县| 吉林市| 卫辉市| 海宁市| 大丰市| 巴彦淖尔市| 盈江县| 休宁县| 涿鹿县| 新余市| 宣威市| 依安县| 荆门市| 辽源市| 鲁山县| 湖州市| 阳西县| 麻江县| 三台县| 眉山市| 永春县| 桂平市| 班戈县| 砚山县| 仙桃市| 洛宁县|