專利名稱::在多處理器系統(tǒng)中編寫超傳輸路由表的系統(tǒng)與方法
技術領域:
:本發(fā)明涉及多處理器計算機系統(tǒng)的拓撲管理,尤其是涉及在多處理器計算機系統(tǒng)中超傳輸路由表(hypertransportroutingtables)的動態(tài)編寫。
背景技術:
:一般來說,在多處理器計算機系統(tǒng)中,各個單個處理器與周邊裝置經(jīng)由超傳輸(HT)技術的各輸入/輸出鏈接而連接。HT鏈接是一分組化的局部總線,其允許各裝置之間的高速數(shù)據(jù)傳輸,以致有很高的通量。在HT鏈接中,使用信息“分組”將地址、數(shù)據(jù)與指令以同一線送出。這些信息分組包含裝置信息,以用來識別分組的來源地與目的地。該計算機系統(tǒng)內(nèi)每一裝置(例如,處理器等)參照一超傳輸表來決定分組的路由。HT表維護系統(tǒng)配置信息,比如系統(tǒng)拓撲(例如,處理器互連架構(gòu)、路由信息)等等。當?shù)谝谎b置(例如,處理器等)收到分組,該第一裝置判定該分組是要給該裝置本身還是要給該系統(tǒng)內(nèi)某些其它裝置。如果該分組是要給該裝置本身,則由該第一裝置處理該分組,如果該分組的目的地是別的裝置,則該第一裝置由HT表查詢該分組的目的地路由并決定用那幾條HT鏈接可將該分組轉(zhuǎn)交到該分組的目的地,并轉(zhuǎn)交該分組至可到目的地的合適的HT鏈接。這些HT鏈接在系統(tǒng)初始化時設定。在開機過程中,由初始化軟件(例如,BIOS等)設定計算機系統(tǒng)。該初始化軟件建立操作系統(tǒng)所需的數(shù)據(jù)結(jié)構(gòu),并初始化系統(tǒng)硬件組件、設定各硬件配置寄存器、以及設定平臺組件的控制。各HT表由初始化軟件在開機時編寫且被所有裝置使用,直到該系統(tǒng)重新初始化。為了維護系統(tǒng)完整性,一旦超傳輸表被初始化,其不被任何系統(tǒng)軟件所更改(例如,操作系統(tǒng)、應用程序等等)。不過,當發(fā)生與HT鏈接有關的系統(tǒng)錯誤時(例如在鏈接上的高錯誤率,鏈接的失效,在鏈接上裝置的失效等等),該系統(tǒng)必須重新初始化以重建這些超傳輸表。例如,當一HT鏈接失效且沒有可替換路由時,該系統(tǒng)則發(fā)生故障。同樣地,如果一裝置(例如,處理器,內(nèi)存等等)失效,則該系統(tǒng)必須關機才能更換該裝置。關機與重新初始化系統(tǒng)會造成重要數(shù)據(jù)與生產(chǎn)力的損失。因此,需要一種可動態(tài)編寫多處理器系統(tǒng)的超傳輸表的系統(tǒng)與方法。
發(fā)明內(nèi)容在某些實施例中,提供了一種可動態(tài)編寫多處理器系統(tǒng)的超傳輸表的系統(tǒng)與方法。在某些變化的實施例中,超傳輸表被動態(tài)重新編寫以修改該多處理器系統(tǒng)的拓撲,得以進行故障調(diào)整、診斷、性能分析,處理器熱插拔等等。在某些實施例中,通過重新設定這些超傳輸表可將各HT鏈接隔離,使得可在被隔離的鏈接上進行診斷。在某些變化的實施例中,各HT鏈接被設定以路由分組信息流到某些鏈接上,使得對這些HT鏈接的性能測量得以進行,在某些實施例中,可重新設定各HT表以將一處理器隔離,使得該處理器可在不需將整個系統(tǒng)關機時被更換。本發(fā)明揭示了一種與多處理器系統(tǒng)有關的方法。該方法包括至少,部分暫停一個或多個系統(tǒng)活動的執(zhí)行并動態(tài)修改一個或多個處理器上的一個或多個路由表。在某些變化的實施例中,這些路由表的每一個代表一進入數(shù)據(jù)分組的路由目的地。在某些實施例中,該路由目的地為一個或多個處理器。在某些變化的實施例中,該方法包括使用修改過的路由表來指示將進入分組轉(zhuǎn)交到在多處理器系統(tǒng)中至少一個預定的外送鏈接。在某些實施例中,該方法包括在所有待處理運算完成后暫停這些系統(tǒng)活動。在某些變化的實施例中,該方法包括識別至少一替代內(nèi)存,將數(shù)據(jù)從第一內(nèi)存?zhèn)魉偷皆撎娲鷥?nèi)存并更新內(nèi)存映射。在某些變化的實施例中,該方法包括識別至少一替代輸入/輸出鏈接,將輸入/輸出數(shù)據(jù)傳送到該替代輸入/輸出鏈接并更新輸入/輸出映射。在某些實施例中,該方法包括使與第一內(nèi)存連接的第一處理器禁用并更換該第一處理器。在某些變化的實施例中,該第一處理器的禁用包括將在該第一處理器上執(zhí)行的所有進程暫停一個或多個并切斷第一處理器的電源。在某些實施例中,該方法包括恢復一個或多個系統(tǒng)活動的執(zhí)行。在某些實施例中,該方法包括識別至少一個測試用的鏈接并測試該被識別到的鏈接。在某些實施例中,該測試被執(zhí)行以進行診斷、故障調(diào)整、維護與性能測量中的一項或多項。在某些變化的實施例中,該方法包括暫停一個或多個系統(tǒng)活動,復原在一個或多個處理器上的一個或多個路由表并且恢復一個或多個系統(tǒng)活動的執(zhí)行。在某些實施例中,這些路由表的恢復包括依據(jù)測試結(jié)果修改這些路由表。以上是內(nèi)容概述,從而其中所包含的內(nèi)容是根據(jù)需要,對細節(jié)進行簡化、概括與省略而來的。因此本領域技術人員應當了解,該概述只是例示性說明的而并非作為任何方式的限定。對本領域技術人員也是顯而易見的,在此所揭示的操作可以用許多方法來實現(xiàn),且可進行改變與修改而不背離本發(fā)明及其更廣泛的方面。本發(fā)明其它方面,創(chuàng)造性特征與優(yōu)點由權(quán)利要求來界定,通過以下所提及的非限定性的詳細描述可令人更加清楚。通過參考附圖,本領域技術人員更易于了解本發(fā)明及其多個目的、特性和優(yōu)點。圖1A示出了根據(jù)本發(fā)明的一實施例的一示例性系統(tǒng)100。圖1B示出了根據(jù)本發(fā)明的一實施例的系統(tǒng)100的一示例性處理節(jié)點。圖2示出了根據(jù)本發(fā)明的一實施例的一路由表200的示例性配置。圖3為根據(jù)本發(fā)明的一實施例,示出了在動態(tài)故障調(diào)整的處理期間所進行的一示例性操作順序的流程圖。圖4為根據(jù)本發(fā)明的實施例,示出了在動態(tài)測試HT鏈接的過程中,所進行的一示例性操作順序的流程圖。在不同附圖中用相同參考符號表示類似或相同的組件。具體實施例方式圖1A示出了根據(jù)本發(fā)明的一實施例的一示例性系統(tǒng)100。系統(tǒng)100為一多處理器系統(tǒng),有多個處理節(jié)點110(1)-(4),這些節(jié)點經(jīng)由鏈接105相互通訊。每個處理節(jié)點包括一處理器115(1)-(4),路由表114與北橋電路117(1)-(4)。然而為了圖示說明的目的,在本實施例中圖標四個處理節(jié)點,然而本領域技術人員應當了解,該系統(tǒng)100可包括任何數(shù)目的處理節(jié)點。鏈接105可為任何一種鏈接。在本實施例中,鏈接105為根據(jù)例如分離-事務總線協(xié)議(split-transactionbusprotocol)的雙向點對點鏈接,該協(xié)議如HyperTransportTM(HT)協(xié)議。鏈接105可包括一下行數(shù)據(jù)流與上行數(shù)據(jù)流。鏈接信號通常包括鏈接信息流,例如時序,控制,指令,地址與數(shù)據(jù)信息與鏈接邊帶信號,這些鏈接信息流使裝置之間流動的信息流合格及同步。路由表114提供該系統(tǒng)架構(gòu)的配置(例如系統(tǒng)拓撲等)。處理節(jié)點110使用路由表114來決定數(shù)據(jù)的路由(例如,節(jié)點所產(chǎn)生要給其它處理節(jié)點的數(shù)據(jù)或從其它節(jié)點收到的數(shù)據(jù))。每一個北橋分別與一內(nèi)存陣列120(1)-(4)中分別的一個相通訊。在本實施例中,處理節(jié)點110(1)-(4)與對應的內(nèi)存陣列120(1)-(4)在系統(tǒng)100中是“連貫的”部分。連貫是指內(nèi)存的高速緩存,且在諸處理器之間的HT鏈接是cHT鏈接,因為該HT協(xié)議包括管理高速緩存協(xié)議用的信息。其它(非處理器-處理器)HT鏈接可為ncHT鏈接,因為其無內(nèi)存高速緩存。一視頻裝置130可經(jīng)由另一HT鏈接連接到這些處理節(jié)點110的一個。視頻裝置130可經(jīng)由另一HT鏈接連接到南橋140。一個或多個I/O裝置150可連接到南橋140。在本實施例中,視頻裝置130、南橋140、I/O裝置150均在系統(tǒng)的”非連貫的”部分中。本領域技術人員應當了解,系統(tǒng)100可比所示出的更復雜,例如,額外的處理節(jié)點110可組成系統(tǒng)的連貫部分。此外,盡管處理節(jié)點110是以”階梯架構(gòu)”圖示說明的,但是處理節(jié)點110可用不同方式互連(例如星狀,網(wǎng)狀等)且可具有更復雜的連接方式。圖1B示出了根據(jù)本發(fā)明的一實施例的系統(tǒng)100的一示例性處理節(jié)點。處理節(jié)點110包括一處理器115,多個HT鏈接接口112(0)-(2)與一內(nèi)存控制器111。為了能與一連接在鏈接上的裝置通訊,每一HT鏈接接口能與一對應HT鏈接連接。內(nèi)存控制器111提供對應的內(nèi)存陣列110(未示出)用的內(nèi)存接口與管理。一十字交叉網(wǎng)113傳送例如從其它處理節(jié)點收到的或由處理器115產(chǎn)生分別要給處理器115且/或適當?shù)腍T鏈接接口112的請求、響應與廣播信息。通過位于每一處理節(jié)點110內(nèi)的多個配置路由表114指示請求、響應與廣播信息的傳送。在本實施例中,路由表114是包括在十字交叉網(wǎng)113內(nèi)的,不過,路由表114可設定在處理節(jié)點110內(nèi)任何地方(例如內(nèi)存中、處理器的內(nèi)部儲存區(qū)、外部可尋址的數(shù)據(jù)庫等等)。本領域技術人員應當了解該處理節(jié)點110可包括其它處理組件(例如,冗余HT鏈接接口,處理器與內(nèi)存控制器所需的各種外設組件等等)。圖2示出了根據(jù)本發(fā)明的一實施例的一路由表200的示例性配置。諸處理節(jié)點可包括多個配置路由表200。為了圖示說明的目的,在本實施例顯示的是一32位表。不過,本領域技術人員應當了解路由表可設定成可使用任何數(shù)目的位以及這些路由表內(nèi)的每一位可根據(jù)特定應用的需要而被指定。在本實施例中,路由表200包括三種條目廣播路由信息202,響應路由信息204與請求路由信息206。為了圖示說明的目的,每一組與路由有關的信息指派一個位給每一個HT鏈接(例如,HT鏈接112(0)-(2)等等)以及指派一個位給處理節(jié)點本身使用。每一處理節(jié)點分派一個路由表,例如,在一有8個處理節(jié)點的系統(tǒng)中,每一處理節(jié)點有8個配置路由表。可讀寫表的各條目,且通常不是持續(xù)的。路由表內(nèi)的條目可用任何公知方式編寫,例如01h表示在對應的鏈接上收到的分組必須被接收處理器接受而00h可表示分組必須轉(zhuǎn)交到適當?shù)逆溄?,反之亦然。請求路由信?06以定向請求的方式使用。該數(shù)值表示哪一個外送鏈接是供定向到特定的目的地節(jié)點的請求分組使用。例如,一給定位位置為1時可表示將該請求路由經(jīng)過該對應的HT鏈接。當最低有效位設定為1時,可表示該請求是要送到接收處理節(jié)點的處理器。請求路由信息字段206表示哪一個鏈接可用來轉(zhuǎn)交請求分組。請求分組通常只路由到一個目的地而該路由表是采請求分組的請求路由信息字段內(nèi)的目的地節(jié)點標識符作為索引。例如,在請求分組的請求路由信息字段內(nèi)各位可設定為位路由到接收節(jié)點,位[1]-路由到HT鏈接0,位[2]-路由到HT鏈接1,以及位[3]-路由到HT鏈接2等等。本領域技術人員應當了解可以用不同方式設定這些路由表以反映多處理器系統(tǒng)的拓撲。例如,復雜的路由方案可使用路由表矩陣的組合而實施或十字交叉網(wǎng)113可經(jīng)設定成能進一步處理和修改進入分組以供在系統(tǒng)內(nèi)適當?shù)穆酚墒褂?,諸如此類。響應路由信息204是用于響應先前收到的請求分組。每一條目內(nèi)的數(shù)值表示所用的外送HT鏈接,該外送HT鏈接用于將特定響應分組定向到其目的地節(jié)點。響應路由信息字段204表示響應分組所要轉(zhuǎn)交的節(jié)點或鏈接。響應分組通常只發(fā)送到一個目的地而該路由表使用響應分組內(nèi)的目的地節(jié)點標識符作為索引。例如,在給定位上的1可表示該響應經(jīng)過對應的輸出鏈接來路由,而0是表示該響應是要送到這個處理節(jié)點的處理器。在一四處理節(jié)點系統(tǒng)中,各個位可設定為位-路由到本節(jié)點,位[1]路由到HT鏈接0,位[2]-路由到HT鏈接1,以及位[3]-路由到HT鏈接2,諸如此類。廣播路由信息202以廣播和探針類型的數(shù)據(jù)分組方式使用。一般來說,廣播與探針數(shù)據(jù)分組被轉(zhuǎn)交到系統(tǒng)內(nèi)的每一處理節(jié)點。例如,處理節(jié)點可用廣播分組來傳播信息給系統(tǒng)內(nèi)所有節(jié)點以及送出一探針分組查詢每一處理節(jié)點的相關狀態(tài)(例如內(nèi)存可用性、處理能力、鏈接狀態(tài)等等)。每一條目可包含與該節(jié)點連接的每一HT鏈接所用的單一位。例如在一有四個鏈接的系統(tǒng)中,可分派四個位用來表示每一鏈接。此外亦可分配兩個位以二進制表示每一鏈接。本領域技術人員應當了解可設定任何方案來表示系統(tǒng)內(nèi)的鏈接。如果設定好對應的各個位,分組可被轉(zhuǎn)交到所有鏈接上。例如位0,當設定為1時,可表示該廣播是要送給接收處理節(jié)點的處理器。廣播路由信息字段表示廣播分組所要轉(zhuǎn)交的節(jié)點或(各)鏈接。廣播可路由到一個以上的目的地。進入分組的來源地字段的節(jié)點ID可在路由表中為索引且指出節(jié)點標識符。例如位-路由到此節(jié)點,位[1]路由到HT鏈接0,位[2]路由到HT鏈接1,以及位[3]路由到HT鏈接2,諸如此類。當一處理節(jié)點接收到一請求時,該處理節(jié)點的對應的北橋檢查其目的地標識符以判定哪一節(jié)點為請求的目的地然后轉(zhuǎn)交該分組。本領域技術人員應當了解盡管在此描述的是一32位條目,但是路由表可使用字段的各種不同組合來設定。例如,可依據(jù)數(shù)據(jù)分組的類型界定個別的路由表(例如請求、響應、廣播等等),使得當處理節(jié)點收到數(shù)據(jù)分組時,該處理節(jié)點可根據(jù)數(shù)據(jù)分組的類型參照適當?shù)穆酚杀?。同樣地,可用各種位與路由表的組合來設定不同的且可能更復雜的系統(tǒng)路由方案。圖3是根據(jù)本發(fā)明的一實施例,圖示說明在動態(tài)故障調(diào)整的處理期間所進行的一示例性操作順序的一流程圖。盡管以一特定的次序描述這些操作,但是在此所描述的各操作可用其它順序(或并行)次序來進行,只要操作之間的依賴關系允許就可。一般來說,各操作的特定順序是設計選擇的問題且本領域技術人員根據(jù)在此所述內(nèi)容應知悉不同的操作順序。首先,收到關于裝置(例如處理器、鏈接等等)的通告(305)。計算機系統(tǒng)上執(zhí)行的軟件例進程序(例如驅(qū)動器、系統(tǒng)應用程序等等)可接收該通告。本領域技術人員應了解該軟件例程可由處理器執(zhí)行,作為系統(tǒng)內(nèi)存內(nèi)的常駐軟件或可依指令的發(fā)布而執(zhí)行(例如通過用戶應用程序、系統(tǒng)呼叫、由用戶輸入的人工指令等等)。通告可能是一由系統(tǒng)或用戶人工輸入的指令所發(fā)出的錯誤信息(例如處理器/鏈接失效、內(nèi)存陣列錯誤等等)。該通告也可集成到在該系統(tǒng)上執(zhí)行的用戶應用程序內(nèi)。收到通告后該程序會識別失效的裝置(310)。裝置標識符可為通告的一部分。可用由系統(tǒng)分配的獨一裝置標識符識別失效的裝置,或系統(tǒng)所采用的任何其它方法在運算中尋址裝置。為了圖示說明的目的,在本實施例中,該裝置是多處理器系統(tǒng)內(nèi)的數(shù)個處理器中的一個。本領域技術人員應當了解系統(tǒng)中任一其它裝置可用來執(zhí)行該程序。當該裝置為一處理器時,該程序判定其它處理器是否有足夠的替代內(nèi)存可用以重新映射失效處理器的內(nèi)存(315)。如果其它處理器沒有足夠的多余內(nèi)存可替代失效處理器的內(nèi)存,則該程序產(chǎn)生適當?shù)腻e誤(320)。當內(nèi)存不足以取代失效處理器的內(nèi)存,則該系統(tǒng)可能需要關機。如果在其它處理器有足夠的內(nèi)存,則該程序判定輸入/輸出HT鏈接是否連接到該失效處理器(325)。通常在多處理器系統(tǒng)中,I/O裝置連接到各處理器中的任何一個,例如,如圖1所示的處理器115(1)。如果該I/O裝置與該失效處理器連接,則該I/O鏈接需要重新分派使得在失效處理器切斷后其它處理器可繼續(xù)與I/O裝置通訊。如果沒有輸入/輸出HT鏈接與該失效的處理器連接,則該程序接著進行拓撲影響的確定(355)。如果輸入/輸出HT鏈接與該失效的處理器連接,該處理器首先判定在該替代鏈接上是否有替代HT鏈接可路由I/O信息流(330)。在多處理器系統(tǒng)中,可設定備用的冗余HT鏈接以改善系統(tǒng)可靠性。如果沒有備用I/OHT鏈接可用,則該程序?qū)⒃撌У奶幚砥鞯谋镜谼RAM傳送到在步驟315內(nèi)識別到的備用內(nèi)存(335)。本地DRAM的傳送需要更新系統(tǒng)的DRAM映射,從而如果一裝置企圖存取該失效處理器的DRAM內(nèi)的儲存區(qū)時,則這些請求可轉(zhuǎn)交到適當?shù)膫溆梦恢谩Mㄖ僮飨到y(tǒng)相關的改變(340)。本領域技術人員應當了解給操作系統(tǒng)的通告是根據(jù)操作系統(tǒng)而定。例如,在某些應用中,內(nèi)存的重新映射可以對于操作系統(tǒng)是透明的而在其它情況操作系統(tǒng)可能需要知道處理器是否離線。在有多余處理器的情形下,該處理器的更換對于操作系統(tǒng)可以是透明的。如果失效處理器為唯一連接到這些I/OHT鏈接的處理器,則該失效處理器不可離線。該程序產(chǎn)生適當?shù)腻e誤(320)。錯誤信息通知程序啟動實體(例如用戶應用程序、用戶的人工指令、操作系統(tǒng)等等)因I/O鏈接而不能將處理器離線。如果有備用HT鏈接,該程序路由I/O信息流到適當?shù)膫溆肐/OHT鏈接(345)。I/OHT鏈接到備用鏈接的路由可能需要更新路由表及/或系統(tǒng)的I/O映射。該程序更新I/O映射(350)。一般來說,如果系統(tǒng)內(nèi)有備用路由鏈接,則由初始化軟件(例如BIOS等等)編寫路由表中的備用路由。該程序判定將失效處理器離線是否會影響系統(tǒng)的拓撲(355)。將一處理器離線可能會隔離另一處理器時,系統(tǒng)的拓撲可能會被影響。例如,在一四路處理器架構(gòu)中(例如圖1所示),有兩條路徑到每一處理器從而如果兩個相鄰的處理器為離線則其它處理器仍可相互通訊,不過如果兩個交替的處理器為離線(例如圖1的處理器115(1)與115(4)),則剩下的處理器將無法相互通訊。本領域技術人員應當了解失效處理器對拓撲的影響是根據(jù)架構(gòu)而定(例如階梯、網(wǎng)狀、星狀等等)。如果將失效處理器離線,會影響該多處理器系統(tǒng)的拓撲則該程序會產(chǎn)生適當?shù)腻e誤信息(320)。在此情況中,該失效處理器是不能離線的。如果不影響系統(tǒng)的拓撲,則該程序通知操作系統(tǒng)該失效處理器不再提供服務(360)。該程序暫時中止(或暫停)系統(tǒng)活動到一安全點(365)。系統(tǒng)活動的暫時中止(暫停)可能涉及異動事務(in-flighttransaction)的完成。例如,如果一內(nèi)存讀取已開始則在暫時中止該程序之前必須要讓它完成。處理器高速緩存內(nèi)的東西也要清出。本領域技術人員應當了解可用不同方法將系統(tǒng)的活動暫時中止(或暫停)。例如,如果以適當?shù)闹噶钤O定計算機的操作系統(tǒng),則可以執(zhí)行該操作系統(tǒng)指令。不然,每一處理器可暫時中止執(zhí)行或通過進入暫時中止模式以延遲目前線程的執(zhí)行(例如,執(zhí)行一暫停指令,執(zhí)行一暫停中斷例程等等)。同樣地,也可控制其它不同的裝置(例如總線主控器,圖形控制器等等)以暫時中止對應的活動。該程序?qū)⑹幚砥鞯腄RAM傳送到315內(nèi)識別到的交替內(nèi)存(370)。區(qū)域DRAM的傳送需要更新系統(tǒng)的DRAM映射,從而如果有一裝置要存取失效處理器的DRAM的儲存區(qū)則請求可被轉(zhuǎn)交到適當?shù)膫溆梦恢?。該程序更新這些路由表(375)。這些路由表被動態(tài)更新以重新路由所有起初是要給失效處理器的信息流到備用鏈接與處理器。例如,參考圖1A,如果處理器115(1)是失效的處理器,則處理器115(2)可經(jīng)由處理器115(4)與處理器115(3)通訊。修改處理器115(2)的路由表以移除處理器115(1)作為到處理器115(3)的有效路由。同樣地,將其它處理器的路由表進行適當修改以反映該處理器網(wǎng)絡內(nèi)的改變。這些路由表可通過呼叫初始化軟件(例如,BIOS等等)的特定適當?shù)睦潭匦卤辉O定,或路由表重新配置可被集成到執(zhí)行將失效處理器隔離的軟件驅(qū)動程序中的例進程序。本領域技術人員應當了解根據(jù)系統(tǒng)架構(gòu)可使用不同的方法重新設定這些路由表。一旦將這些路由表更新,可將連到該失效處理器的鏈接切斷。通過將處理節(jié)點內(nèi)的相關鏈接接口禁用可切斷這些鏈接。當路由表內(nèi)的鏈接更新后,也可調(diào)整相關的I/O映射以反映這些鏈接的改變。這些I/O映射可根據(jù)特定系統(tǒng)配置而定(例如,基于PCI的標準配置等等)。然后該程序切斷該失效處理器的電源(385)。一旦處理器被斷電,則可實際更換該處理器(390)。在該失效處理器用新的處理器取代后,可用不同的中斷與指令恢復系統(tǒng)活動,例如,如果該處理器是在暫停中斷例程中,則可通過更換該失效處理器后產(chǎn)生人工中斷檢測到架構(gòu)內(nèi)的改變。同樣地,如果是用人工激活該程序則人工指令輸入可恢復這些系統(tǒng)活動。當這些系統(tǒng)活動恢復后,隔離該失效處理器的軟件驅(qū)動程序可通過呼叫相關例程(例如執(zhí)行例程本身,呼叫BIOS例程等等)重建這些路由表。這些路由表的重建可設定該換新的處理器到系統(tǒng)拓撲中。本領域技術人員應當了解即使不更換失效處理器也可恢復這些系統(tǒng)活動。在此情況下,該系統(tǒng)運行能力較低(例如處理能力、內(nèi)存等等)。進一步,在系統(tǒng)是在沒有失效處理器的情況下運行時,可進行診斷以判定該失效處理器的失效原因。圖4是根據(jù)本發(fā)明的一實施例,示出了在動態(tài)測試HT鏈接的處理期間所進行的一示例性操作順序的流程圖。盡管以一特定的次序描述這些操作,但是在此所描述的各操作可用其它順序(或并行)次序來進行,只要操作之間的依賴關系允許就可。一般來說,各操作的特定順序是設計選擇的問題且本領域技術人員根據(jù)在此所述內(nèi)容應知悉不同的操作順序。開始的時候,識別一個或多個鏈接供測試使用(410)。HT鏈接運送不同裝置間的信息(例如處理器、內(nèi)存、不同控制器等等)。這些鏈接可用于測試各種系統(tǒng)相關功能(例如診斷、性能評估等等)。舉例來說,如果系統(tǒng)一直產(chǎn)生一特定鏈接的錯誤信息則可能有必要對那特定的鏈接進行預設的診斷。同樣地,有時,可測試鏈接以判定連接到該鏈接的鏈接與裝置的性能。本領域技術人員應當了解可針對各種應用特定目的來監(jiān)測與測試HT鏈接。該診斷與測試軟件可在多處理器系統(tǒng)中的任一處理器上執(zhí)行。一般來說,在多處理器系統(tǒng)中,指定處理器之一為“主”處理器。該主處理器通常執(zhí)行系統(tǒng)相關的管理功能(例如診斷等等)。診斷軟件通常是常駐在主處理器中(例如在本地儲存器中等等)。然而,本領域技術人員應當了解可在不同處理器間分散并共享這些系統(tǒng)管理功能。當一診斷例程在主處理器中執(zhí)行時(例如經(jīng)由用戶應用程序、例程系統(tǒng)呼叫、用戶的人工激活、軟件驅(qū)動例程的執(zhí)行等等),測試參數(shù)(例如數(shù)據(jù)速率、速度、計時、通量等等)則是預設好的。例如,可測試一鏈接同時處理兩個以上處理器的信息流等等。將這些系統(tǒng)活動暫時中止至安全執(zhí)行點(420)。例如,如果一內(nèi)存讀取運算是在進行中則允許在內(nèi)存讀取進程暫時中止之前完成該內(nèi)存讀取運算。可將與測試鏈接有關的系統(tǒng)活動部分暫時中止而不相關的活動可以繼續(xù)。例如,如果是要測試一條在兩個處理器之間的鏈接,則只有與該特定處理器有關的活動可暫時中止而本地活動(例如,讀/寫到本地儲存器等等)能繼續(xù)進行。然而,有些測試可能需要本地信息流經(jīng)由測試鏈接經(jīng)過長的路徑以測試該鏈接的通量。在這種情況下,即使本地活動也可以暫時中止。例如,參考圖1A,如果要測試的是在處理器115(1)與處理器115(2)之間的鏈接,則可強迫在處理器115(1)與處理器115(3)之間的通訊經(jīng)由處理器115(4)與處理器115(2),這樣可以增加處理器115(1)與處理器115(2)之間的鏈接上額外的信息流以進行測試與性能評估。當將適當?shù)南到y(tǒng)活動暫時中止時,該程序重新設定這些路由表(430)。將這些路由表重新設定成可強迫信息流到或離開測試鏈接。這些路由表的重新設定也可能需要重新設定內(nèi)存與I/O映射,這取決于系統(tǒng)的拓撲。如果需要重新設定內(nèi)存與I/O映射,則修改這些內(nèi)存與I/O映射以便于該特定鏈接的測試。然后將這些系統(tǒng)活動恢復成正常操作(440)。在以新的路由配置的正常操作期間,測試這些鏈接與裝置(例如進行診斷、故障評估、性能測量等等)(450)。該程序繼續(xù)判定是否已完成該測試(460)。當該測試完成時,該進程暫時中止系統(tǒng)活動(470)。將這些路由表復原(480)??蓪⑦@些路由表復原為測試前原來的設定或可根據(jù)測試結(jié)果更新這些路由表。例如,如果測試判斷在內(nèi)存中的某些數(shù)據(jù)經(jīng)常被存取且造成其它信息流用的相關鏈接的擁塞,則更新該內(nèi)存映射以解除該特定鏈接的擁塞。本領域技術人員應當了解可根據(jù)系統(tǒng)拓撲與特定應用程序更新這些路由表。該程序恢復系統(tǒng)活動(490)。盡管所描述的是一測試程序,本領域技術人員應當了解該程序可用于進行性能分析。例如,可通過動態(tài)修改路由表來重新設定這些鏈接,其能引導數(shù)據(jù)流到特定處理器或鏈接,該特定處理器或鏈接可以用性能分析應用程序來監(jiān)督。性能分析應用程序可分析數(shù)據(jù)流以進行適當?shù)臏y量。同樣地,該程序可用在需要動態(tài)修改路由表的不同的應用程序。以上的說明意在描述本發(fā)明的至少一個實施例,而并非用來限定本發(fā)明的保護范圍。相反地,本發(fā)明的保護范圍是由所附的權(quán)利要求所界定。因此本發(fā)明的其它實施例包括對以上描述的其它的變化、修改、增添及/或改善。例如,本領域技術人員應可認知上述各操作的功能間的界限只是示例性說明。多個操作的功能可組合成為單一操作,且/或單一操作的功能可分散到額外的操作中。此外,其它的實施例可能包括一特定操作的多個實例,以及可能改變在不同的其它實施例中各操作的次序。在此討論的各操作可包括由系統(tǒng)用戶、硬件模塊及/或軟件模塊執(zhí)行的多個步驟。在其它實施例中,例如圖1至圖4的操作是常駐在計算機可讀介質(zhì)上及/或常駐在計算機系統(tǒng)內(nèi)及/或被傳送到計算機系統(tǒng)以作為計算機程序產(chǎn)品的一部分的軟件模塊的直接或間接的代表。因此上述的方法、與其相關的操作及其模塊可在一計算機系統(tǒng)上執(zhí)行及/或從計算機可讀介質(zhì)執(zhí)行之,其中該計算機系統(tǒng)配置用來執(zhí)行該方法的操作。計算機系統(tǒng)有許多形式,包括但不限定于大型計算機、微型計算機、服務器、工作站、個人計算機、筆記計算機、個人數(shù)字助理、各式各樣的無線裝置與嵌入式系統(tǒng),無法一一列舉。典型的計算機系統(tǒng)包括至少一個處理單元,與其關聯(lián)的內(nèi)存及多個輸入/輸出(I/O)裝置。計算機系統(tǒng)根據(jù)程序處理信息并經(jīng)由I/O裝置產(chǎn)生所得輸出信息。程序是一串指令,例如特定應用程序及/或操作系統(tǒng)。計算機程序通常儲存于計算機內(nèi)部可讀取的儲存介質(zhì)或經(jīng)由計算機可讀取的傳送介質(zhì)傳送到該計算機系統(tǒng)。計算機處理程序通常包括執(zhí)行中(運行中)的程序或程序的部分,當前程序的數(shù)值與狀態(tài)信息,以及操作系統(tǒng)用以管理進程的執(zhí)行的資源。一計算機父進程可產(chǎn)生其它的子進程用來幫助執(zhí)行該父進程的整體功能。因為父進程特別產(chǎn)生子進程以執(zhí)行該父進程的整體功能的一部分,由子進程(及孫進程等等)所執(zhí)行的功能有時可能被描述成由父進程來執(zhí)行。以上所述的方法可在計算機可讀介質(zhì)中執(zhí)行,用來設定一計算機系統(tǒng)執(zhí)行本方法。計算機可讀介質(zhì)可以是永久性的、可移除的或遠程連接到系統(tǒng)100或另一系統(tǒng)。計算機可讀介質(zhì)可以包括但不限定于諸如以下事物的任何數(shù)量磁性儲存介質(zhì)(包括硬盤及磁帶儲存介質(zhì));光學儲存介質(zhì)例如光盤介質(zhì)(例如CD-ROM、CD-R等等)以及數(shù)字視頻磁盤儲存介質(zhì);全像存儲器(holographicmemory);非易失性內(nèi)存儲存介質(zhì)(包括基于半導體的存儲器單元,例如閃存,EEPROM,EPROM,ROM);鐵磁數(shù)字存儲器;易失性儲存介質(zhì)(包括寄存器、緩沖器或高速緩存、主存儲器、RAM等等);以及數(shù)據(jù)傳送介質(zhì)(包括永久與間歇的計算機網(wǎng)絡、點對點電信設備、載波傳送介質(zhì)、互聯(lián)網(wǎng),無法一一列舉)。其它新型與不同類型的計算機可讀介質(zhì)可用來儲存及/或傳送在此討論的軟件模塊。應了解在此描述的架構(gòu)只是示例性,而事實上可組裝許多其它架構(gòu)成來實現(xiàn)相同的功能。抽象地說,但仍有明確的意義,能實現(xiàn)相同功能的各組件的任何一種排列,是使得必要功能得以實現(xiàn)的有效“關聯(lián)”。因此,在此任何兩個的組件結(jié)合成可實現(xiàn)一特定機能可視為是互相“關聯(lián)的”,以使得必要機能得以實現(xiàn),而不管是哪一種架構(gòu)或中間組件。同樣地,任何兩個如此關聯(lián)的組件也可視為是互相“操作性連接的”,或“操作性耦合的”得以實現(xiàn)必要的功能。因為以上詳細描述是示例性的,當所描述的是“一實施例”時,其是一示例性實施例。因此,上下文中所用的“一”這個字并非意在表示一個且只有一個實施例具備所述的特性。相反地,許多其它實施例可能,且經(jīng)常如此,具備示范性的“一實施例”所描述的特性。因此,如以上所使用的,當在一實施例的上下文中描述本發(fā)明時,該一實施例是本發(fā)明的眾多可能實施例中的一個。盡管已揭示并描述本發(fā)明的特定實施例,顯然對于本領域技術人員來說,根據(jù)此處的教學,可使用各種不同的修改、替代的構(gòu)造、以及均等物而不脫離本發(fā)明請求保護的范圍。因此,所附的權(quán)利要求范圍所涵蓋的范疇包括所有這種改變,修改等等,都在本發(fā)明的保護范圍內(nèi)。再者,應了解本發(fā)明完全由所附權(quán)利要求范圍所界定。以上描述并非意在窮舉本發(fā)明的所有的實施例。除非在其它地方明白陳述,在此呈現(xiàn)的每一實例均為非限制性的或非排除性的實例,不論是否非限制性的術語、非排除性的術語或類似的術語同時陳述于每一實例。雖然嘗試概述某些示例性實施例及其變化,但是其它實施例及/或變化均在以下權(quán)利要求所界定的本發(fā)明范圍內(nèi)。權(quán)利要求1.一種與多處理器系統(tǒng)有關的方法,其包括下列步驟至少部分暫停一個或多個系統(tǒng)活動的執(zhí)行;以及動態(tài)修改在一個或多個處理器上的一個或多個路由表,其中這些路由表的每一個表示進入數(shù)據(jù)分組的路由目的地。2.根據(jù)權(quán)利要求1所述的方法,其進一步包括下列步驟使用這些已修改的路由表指示將該進入分組轉(zhuǎn)交給在多處理器系統(tǒng)中至少一個外送鏈接。3.根據(jù)權(quán)利要求1所述的方法,其進一步包括下列步驟識別至少一個替代內(nèi)存;及更新內(nèi)存映射以反映該至少一替代內(nèi)存。4.根據(jù)權(quán)利要求1所述的方法,其進一步包括下列步驟識別至少一條替代輸入/輸出鏈接;傳送輸入/輸出數(shù)據(jù)至該替代輸入/輸出鏈接;以及更新輸入/輸出映射。5.根據(jù)權(quán)利要求1所述的方法,其進一步包括下列步驟識別用于測試的至少一條鏈接;測試該被識別到的鏈接;以及其中修改一個或多個路由表是根據(jù)該測試的結(jié)果。6.一種設備,其包括多個處理器;以及連接至這些處理器的每一個的一個或多個儲存單元其中這些處理器的每一個經(jīng)由至少一點對點鏈接而連接,且至少一個處理器的每一個包括一個或多個表示一進入數(shù)據(jù)分組的路由目的地的路由表,且該處理器被配置成動態(tài)修改這些路由表。7.一種計算機程序產(chǎn)品,其儲存于至少一計算機可讀介質(zhì),且其包括一組指令,該組指令配置成至少部分暫停一個或多個系統(tǒng)活動的執(zhí)行;以及動態(tài)修改一個或多個處理器上的一個或多個路由表,其中這些路由表的每一個表示一進入數(shù)據(jù)分組的路由目的地。8.根據(jù)權(quán)利要求7所述的計算機程序產(chǎn)品,其中該修改過的路由表指示將該進入分組轉(zhuǎn)交到在多處理器系統(tǒng)中至少一個預定的外送鏈接。9.根據(jù)權(quán)利要求7所述的計算機程序產(chǎn)品,進一步包括將該組指令進一步設定成識別至少一個替代內(nèi)存;以及更新內(nèi)存映射。10.根據(jù)權(quán)利要求7所述的計算機程序產(chǎn)品,進一步包括將該組指令進一步設定成識別至少一條替代輸入/輸出鏈接;傳送輸入/輸出數(shù)據(jù)到該替代輸入/輸出鏈接;以及更新一輸入/輸出映射。全文摘要在某些實施例中,本發(fā)明描述一在多處理器系統(tǒng)中動態(tài)編寫超傳輸(HT)表(114)的系統(tǒng)與方法。HT表被動態(tài)重新編寫成可修改該多處理器系統(tǒng)的拓撲,以進行故障調(diào)整、診斷、性能分析、處理器熱插拔等等。通過重新設定這些HT表,可將各HT鏈接(105)隔離,使得可在這些已隔離的HT鏈接上進行診斷。HT鏈接被重新設定成能在某些鏈接上路由分組信息流,得以對這些HT鏈接進行性能測量。HT表可被重新設定成可將一處理器(115)隔離,而可更換該處理器且不需將整個系統(tǒng)關機。文檔編號G06F13/40GK1729662SQ200380107157公開日2006年2月1日申請日期2003年11月6日優(yōu)先權(quán)日2002年12月19日發(fā)明者D·A·凱克,P·德弗里恩特申請人:先進微裝置公司