亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

處理器中避免競爭的委派寫入的制作方法

文檔序號:6651119閱讀:265來源:國知局
專利名稱:處理器中避免競爭的委派寫入的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機系統(tǒng),更具體地說,涉及處理器中避免競爭的方法和裝置。
背景技術(shù)
系統(tǒng)可用性、可縮放性以及數(shù)據(jù)完整性是企業(yè)系統(tǒng)的基本特征。不間斷執(zhí)行的能力強加于把企業(yè)系統(tǒng)用于諸如證券交易事務(wù)處理、信用卡和借記卡系統(tǒng)、電話網(wǎng)絡(luò)之類的應(yīng)用的金融、通信及其它領(lǐng)域。在具有高金融或人力成本的應(yīng)用中,在大規(guī)??s放的環(huán)境中,以及在不能容許停機和數(shù)據(jù)破壞的情況中,往往實現(xiàn)高可靠性系統(tǒng)。
冗余處理器體系結(jié)構(gòu)可用于企業(yè)系統(tǒng),其中,多個物理處理器用作一個邏輯處理器,每個處理器具有專用存儲器并運行相似操作系統(tǒng)的副本。冗余處理器可實現(xiàn)預(yù)期可用性和數(shù)據(jù)完整性特征。冗余處理器體系結(jié)構(gòu)可用于其中冗余處理器不是密切同步和/或可能基于不同時鐘來工作的配置中。這類系統(tǒng)具有競爭狀況的可能,例如處理器寫入-輸入/輸出控制器讀取競爭狀況。在一個具體實例中,輸入/輸出控制器可從主存儲器中讀取直接存儲器存取(DMA)描述符鏈。輸入/輸出控制器可向多個存儲系統(tǒng)中的每個發(fā)出讀命令,并比較結(jié)果。如果數(shù)據(jù)匹配,則結(jié)果可用來產(chǎn)生輸入/輸出操作。但是,如果處理器附加該鏈時輸入/輸出控制器正讀取該鏈,則輸入/輸出控制器可能從一個處理器而沒有從另一個處理器讀取所附加的值,從而在輸入/輸出控制器看來是存儲器比較錯誤、因而看作錯誤。

發(fā)明內(nèi)容
在包括多片處理器和存儲器的系統(tǒng)中,具有避免競爭能力的同步單元包括委派寫入引擎,它從處理器接收數(shù)據(jù)和存儲器地址信息,以及作為處理器的代表把數(shù)據(jù)寫入存儲器。


通過參照以下描述和附圖,可以最佳地理解涉及結(jié)構(gòu)以及操作方法的
具體實施例方式圖1是示意框圖,說明能夠避免競爭狀況的同步單元的一個實施例;圖2是示意框圖,說明具有補充細節(jié)的同步單元的另一個實施例;圖3A和圖3B是流程圖,分別說明避免競爭狀況的方法以及競爭委派功能的使用模型的一個實施例;圖4A和圖4B是流程圖,說明與處理器在初始化過程中執(zhí)行的競爭委派處理有關(guān)的動作的實施例;圖5A和圖5B是流程圖,說明實現(xiàn)委派或代理寫入操作的技術(shù)的實施例;圖6A和圖6B是示意框圖,分別說明能夠?qū)崿F(xiàn)用于避免競爭狀況的說明性技術(shù)的計算機系統(tǒng)的實施例;以及圖7是示意框圖,說明包括三個處理器片并且能夠?qū)崿F(xiàn)用于避免競爭狀況的技術(shù)的復(fù)合處理器的一個實施例。
具體實施例方式
參照圖1,示意框圖說明能夠避免競爭狀況的同步單元100的一個實施例,它包括至少一個處理器104與至少一個存儲器106之間的接口102以及委派寫入引擎108。委派寫入引擎108經(jīng)由接口102從處理器104接收數(shù)據(jù)和存儲器地址信息,以及作為處理器104的代表把數(shù)據(jù)寫入存儲器106中的一個或多個。
同步單元100可用于冗余松散耦合處理器(RLCP)110,并且包括邏輯網(wǎng)關(guān)112,它可稱作表決模塊,其中包括委派寫入引擎108。表決模塊及關(guān)聯(lián)表決邏輯相互比較來自多個處理器的數(shù)據(jù)以檢測任何差異,以及以有利于數(shù)據(jù)的方式協(xié)商解決差異。委派寫入引擎108可在所有參與的片中代表處理器104把數(shù)據(jù)寫入存儲器106。處理器104對委派寫入引擎108執(zhí)行表決寫入操作,并設(shè)置兩個寄存器,一個具有數(shù)據(jù)值以及第二個具有要寫入的位置的地址值。在表決寫入操作中,來自多個處理器的寫數(shù)據(jù)的任何差異以有利于大多數(shù)的方式來解決。在寫操作完成之后,邏輯網(wǎng)關(guān)112中的委派寫入引擎108在地址值處把數(shù)據(jù)值寫入每個存儲器106。
參照圖2,示意框圖說明同步單元200的另一個實施例,它還包括數(shù)據(jù)寄存器210和地址寄存器212。處理器204把數(shù)據(jù)寫入數(shù)據(jù)寄存器210,以及把地址信息寫入地址寄存器212。在完成寄存器寫入時,或者可命名為代理引擎的委派寫入引擎208把數(shù)據(jù)寫入存儲器206中指定的地址。
委派寫入引擎208可包括用于管理多個寫入的寫入隊列211。寫入隊列211結(jié)合數(shù)據(jù)寄存器210、地址寄存器212以及在一些實施例和配置中結(jié)合委派序列號寄存器進行工作。與委派寫入相關(guān)的信息暫時存儲在寫入隊列211中以管理寫入排序。在一般操作中,多個片執(zhí)行相同指令集,使得來自所有處理器204的主機寫入被異步寫入隊列211。所有處理器的寫入的序列、地址和數(shù)據(jù)信息經(jīng)過排隊,以及用于對來自所有片的寫入進行表決并相應(yīng)地處理數(shù)據(jù)。
同步單元200能夠通過輸入/輸出(I/O)總線連接一、二或三個處理器片204。同步單元200可在寫入委派中執(zhí)行多個功能,它們有助于包括可能的競爭狀況的輸入/輸出表決和解決的松散耦合鎖步操作。出站輸入/輸出操作的表決通過檢測鎖步發(fā)散來避免數(shù)據(jù)破壞。
在一些實現(xiàn)中,同步單元200還可包括邏輯網(wǎng)關(guān)214,它防止發(fā)散操作傳播到輸入/輸出流。邏輯網(wǎng)關(guān)214還包括可編程輸入/輸出(PIO)子單元216,它控制PIO寄存器存取,并且對PIO寄存器中的讀和寫請求執(zhí)行表決校驗。PIO寫入業(yè)務(wù)量由主處理器204發(fā)起,并且可針對輸入/輸出控制器220中的已表決寄存器空間、邏輯網(wǎng)關(guān)214中的已表決寄存器空間以及邏輯網(wǎng)關(guān)214和同步單元200中的未表決專用寄存器。PIO讀取業(yè)務(wù)量也在主處理器204發(fā)起,并且可針對與PIO寫入業(yè)務(wù)量相同的區(qū)域。對邏輯網(wǎng)關(guān)214和輸入/輸出控制器220中的寄存器空間的PIO讀取請求被表決。PIO讀取響應(yīng)數(shù)據(jù)被復(fù)制,并轉(zhuǎn)發(fā)給所有參與的處理器片,但未經(jīng)過表決。邏輯網(wǎng)關(guān)214包括直接存儲器存取(DMA)子單元218,它執(zhí)行輸入/輸出(I/O)控制器發(fā)起的讀操作。處理器向委派寫入引擎208發(fā)送又稱作已表決寫入的已校驗寫入操作請求。DMA寫入業(yè)務(wù)量由輸入/輸出控制器220發(fā)起,并復(fù)制到所有參與的處理器片204。DMA寫入業(yè)務(wù)量未經(jīng)過表決。DMA讀取業(yè)務(wù)量也由輸入/輸出控制器220發(fā)起。DMA讀取請求未經(jīng)表決就被復(fù)制到所有參與片204。DMA讀取響應(yīng)數(shù)據(jù)被表決。直接存儲器存取(DMA)讀取響應(yīng)子單元218檢驗輸入/輸出控制器發(fā)起的DMA操作或者來自存儲器的響應(yīng),并對讀取數(shù)據(jù)進行校驗。
邏輯網(wǎng)關(guān)214可對存儲器206產(chǎn)生均未表決的、包含中斷的附加寫入傳輸,其中的全部均相對目標(biāo)存儲器206被復(fù)制。
冗余松散耦合處理器(RLCP)或系統(tǒng)易受到處理器寫入-輸入/輸出控制器讀取競爭狀況的影響。例如,輸入/輸出控制器可從主存儲器中讀取直接存儲器存取(DMA)描述符鏈。輸入/輸出控制器可向多個存儲系統(tǒng)中的每個發(fā)出讀取,并比較結(jié)果。如果數(shù)據(jù)匹配,則結(jié)果用來產(chǎn)生輸入/輸出操作。但是,如果處理器附加該鏈,而輸入/輸出裝置正讀取該鏈,則輸入/輸出裝置可能從一個處理器而沒有從另一個處理器讀取該附加值,結(jié)果在輸入/輸出裝置或適配器看來是存儲器比較錯誤、因而在處理中作為錯誤。說明性系統(tǒng)使輸入/輸出裝置能夠作為處理器的代表執(zhí)行寫操作,消除競爭狀況的可能性。
同步單元200還可在邏輯網(wǎng)關(guān)214中包括能夠執(zhí)行委派寫入動作的邏輯,它避免由主機寫入輸入/輸出(I/O)控制器讀取競爭狀況產(chǎn)生的(表決)校驗錯誤。主處理器204把寫操作委派給委派寫入引擎,以及委派寫入引擎208一貫地把所委派的寫入插入從I/O處理器到所有處理器204的直接存儲器存取(DMA)流,使得寫入對于對各存儲器的DMA操作來說按照相同順序。
在主機片204更新由邏輯同步單元200針對輸入/輸出操作在各個時間讀取的數(shù)據(jù)結(jié)構(gòu)的情況下,可能出現(xiàn)主機寫入輸入/輸出控制器讀取競爭。特定示例狀況影響可能與處理器寫入操作重合的直接存儲器存取(DMA)讀取操作。處理器寫入的定時在片204之間可能有變化,導(dǎo)致DMA讀取返回分歧的數(shù)據(jù)。
為了避免具有主機寫入輸入/輸出控制器讀取競爭,邏輯網(wǎng)關(guān)214支持主機存儲器更新功能。為了避免由主機寫入輸入/輸出讀取競爭所產(chǎn)生的表決錯誤,處理器204可把寫入操作委派給邏輯網(wǎng)關(guān)214。邏輯網(wǎng)關(guān)214則在稱作委派寫入的操作中在對于所有片204一致的時間,把寫入插入到DMA事務(wù)流中。
多個輸入/輸出控制器220使用情況可能受到主機寫入輸入/輸出讀取競爭的影響。一個使用情況實例是I/O控制器直接存儲器存取(DMA)鏈附加操作。I/O控制器產(chǎn)生通信請求包,并跟蹤關(guān)聯(lián)的響應(yīng)包。例如,I/O控制器220可用來采用網(wǎng)絡(luò)請求包與網(wǎng)絡(luò)、例如圖6A所示的網(wǎng)絡(luò)626進行通信。DMA鏈附加操作的一個步驟包括蓋寫先前尾部條目鏈指針和列表結(jié)束位。寫入受到功能路徑中的競爭。通過采用寫入委派功能執(zhí)行寫入,同步單元避免使用DMA鏈附加方法時的偽誤表決。
易受到競爭狀況的影響的使用情況的第二實例是存取驗證和轉(zhuǎn)換(AVT)表條目更新。AVT駐留在存儲器206中。AVT表由主處理器寫入,并由I/O控制器讀取。I/O控制器采用AVT來檢驗入局網(wǎng)絡(luò)包的合法性,并把合法包中的虛擬地址轉(zhuǎn)換為用于存儲器206的地址。主處理器軟件更新AVT表,以便單獨或者組合執(zhí)行各種操作,包括預(yù)備新條目、重新映射頁面、啟用對頁面的許可、禁用對頁面的許可等。
在沒有合法傳輸可能針對某個頁面時,AVT被寫入以便在操作之前啟用許可。相反,在認為傳輸完成之后禁用許可;同樣在沒有合法傳輸針對此頁面時。當(dāng)沒有合法傳輸針對頁面時,僅對禁用頁面執(zhí)行對映射的變更。非法入局網(wǎng)絡(luò)包可能正好在寫入AVT時到達,有可能導(dǎo)致主機寫入/輸入/輸出控制器讀取競爭狀況。采用競爭委派功能執(zhí)行AVT表更新可能是可選的,因為只有錯誤行為受到影響。但是,競爭委派功能也可用來防止遠程應(yīng)用導(dǎo)致表決錯誤。
易受到競爭狀況的影響的使用情況的第三實例在輸入/輸出控制器220中的中斷管理器執(zhí)行存儲器的同步讀取時出現(xiàn)。輸入/輸出控制器220提供中斷模式,其中,已擴展的中斷向量設(shè)置到存儲器中,以及同步讀取可能在內(nèi)部寄存器更新之前被執(zhí)行。軟件可能在讀操作之前操作存儲器。
參照圖3A,流程圖說明避免競爭狀況的方法300的一個實施例。該技術(shù)包括從多片松散耦合處理器接收已表決寫入302?;蛘呖煞Q作已校驗寫入的已表決寫入指定數(shù)據(jù)值和目標(biāo)存儲器地址。一完成已校驗寫入,數(shù)據(jù)值通過委派寫入304在參與片的所有存儲器中作為目標(biāo)的地址。
參照圖3B,流程圖說明競爭委派功能的使用模型310的一個實施例。競爭委派序列號寄存器和競爭委派數(shù)據(jù)寄存器用來協(xié)調(diào)委派數(shù)據(jù)的寫入。例如可用作主計算機的多片處理器執(zhí)行對競爭委派功能的已表決寫入。在采用委派寫入特征之前,在采用序列號的實施例和配置中,主軟件可初始化312競爭委派序列號寄存器。競爭委派序列號可用來維護處理器與代表之間的寫入排序的一致性。在一些實現(xiàn)或情況中,可采用不同于序列號方法的完成通知技術(shù)。為了發(fā)起314委派寫入操作,主機軟件可把數(shù)據(jù)寫入316競爭委派數(shù)據(jù)寄存器,從而采用指定數(shù)據(jù)值設(shè)置數(shù)據(jù)寄存器。委派寫入操作繼續(xù)進行主機軟件,向競爭委派地址寄存器寫入318地址、字節(jié)啟用和代表啟用,把地址寄存器設(shè)置為指定的目標(biāo)存儲器地址。用于委派寫入的完成的主機軟件監(jiān)測器320基于以下假定所有委派寫入操作均通過又稱作代表的單個代理來處理,它把數(shù)據(jù)寄存器內(nèi)容寫入地址存儲器中指定的地址。在一些實施例或操作條件中,軟件可在主機中工作以監(jiān)測序列號,并確定附加委派寫入資源是否可用或者當(dāng)前正在使用。
每個寫操作被寫入隊列211,以及代表維護322隨著各個排隊的委派寫入操作而遞增的內(nèi)部委派寫入序列號。代表在邏輯網(wǎng)關(guān)214中工作,并隨著每個被執(zhí)行的委派寫入來遞增324計數(shù)。在預(yù)選地址向主機存儲器206反映326此計數(shù)。代表或代理可在相對于輸入/輸出(I/O)操作的不同時間從多個處理器片接收更新,但通過把對于具有委派的至少一個存儲器的更新寫入直接存儲器存取(DMA)事務(wù)流來實現(xiàn)數(shù)據(jù)一致性。
在一些實施例中,系統(tǒng)可采用結(jié)合具有固定隊列深度的委派寫入隊列的軟件序列號和硬件序列號,使軟件能夠確定可安全排隊的代表寫入的數(shù)量。
示范實施例定義并采用一個或多個競爭委派寄存器,以便應(yīng)用于競爭委派功能。用于保持要寫入的數(shù)據(jù)的競爭委派數(shù)據(jù)寄存器的一個表I

競爭委派地址寄存器可包括若干控制和狀態(tài)字段以及保持委派寫入的地址的競爭地址字段??刂坪蜖顟B(tài)字段包括用于委派寫入操作的字節(jié)啟用、當(dāng)委派寫入隊列的所有條目全滿時設(shè)置的委派隊列滿位、當(dāng)委派寫入隊列條目可用時設(shè)置的委派隊列未空位、以及可由軟件設(shè)置以發(fā)起委派寫入的代表啟用位。競爭委派地址寄存器的一個實施例如表II所示。
表II

各種模式包括讀/寫(R/W)、只讀(R/O)和只寫(WO)。
競爭委派序列號寄存器在委派寫入發(fā)起之前被初始化,以幫助維護寫入隊列上的寫入的順序。競爭委派序列號寄存器可具有包含隨每個委派寫入操作自動遞增的委派寫入序列號的序列號字段、包含所實現(xiàn)的委派寫入隊列深度的隊列深度字段、序列號寫入的序列號地址以及啟用委派寫入序列號寫入的序列號寫入啟用位。競爭委派序列號寄存器的一個實施例如表III所示。
表III


參照圖4A和圖4B,兩個流程圖說明與處理器在初始化過程中執(zhí)行的競爭委派處理有關(guān)的動作。圖4A說明在使用序列號402時采取的動作400。在首次使用委派寫入功能性之前,例如通過初始化委派引擎,寫入初始序列號SeqNr,設(shè)置地址SeqAddr,以及設(shè)置啟用位En,軟件寫入404競爭委派序列號寄存器。處理器讀取406隊列深度Qdepth,并把內(nèi)部狀態(tài)寫入408代理序列號寄存器。因此,軟件保存當(dāng)前競爭委派序列號和隊列深度供將來使用。例如,處理器存儲器中的CURRENT_PROXY_WRITE_SEQ用代理序列號寄存器寫入。初始化完成410。
圖4B說明在沒有使用序列號422的情況中、例如當(dāng)需要另一個完成通知技術(shù)時所采取的動作420。例如通過初始化委派引擎以及重置或清除啟用En,軟件寫入424競爭委派序列號寄存器。初始化完成426。
參照圖5A和圖5B,兩個流程圖說明用于執(zhí)行委派或代理寫入操作的技術(shù)的實施例。圖5A說明采用序列號522的委派或代理寫入520的操作。動作由處理器528以及由委派或代理引擎536來執(zhí)行。序列地址從存儲器中讀取524。如果隊列已滿526,例如如果CURRENT_PROXY_WRITE_SEQ大于在動作524中讀取的序列地址號加上隊列深度,則軟件等待委派寫入操作完成,即通過從存儲器再次讀取來檢測的條件。如果隊列未滿,則處理器把預(yù)期數(shù)據(jù)寫入530競爭委派數(shù)據(jù)寄存器,然后把地址RaceAddr、字節(jié)啟用BE以及代表啟用En寫入532競爭委派地址寄存器,即發(fā)起委派寫入操作的動作,從而發(fā)起代表的動作536。
例如通過跟蹤已完成寫入的計數(shù)或者如以下所述地輪詢存儲單元,或者以其它方式,處理器528監(jiān)測委派寫入的完成。代理引擎把數(shù)據(jù)寄存器的內(nèi)容寫入540競爭委派地址寄存器的處理器寫入可存取的地址RaceAddr。代理引擎遞增542序列號,并把序列號寫入544存儲器中的序列地址。
對于委派寫入的完成的監(jiān)測是基于所有委派寫入操作通過單個代理來處理的假定。軟件維護隨每個排隊和委派的寫入操作而遞增534的內(nèi)部委派寫入序列號。
委派寫入引擎536等待538對地址寄存器的寫入,并隨著每個執(zhí)行的委派寫入而遞增542計數(shù)。在所定義的地址上向處理器存儲器反映544此計數(shù)。
軟件所處理的內(nèi)部委派寫入序列號、硬件序列號以及委派寫入隊列深度共同用來確定可以安全排隊的附加代表寫入的數(shù)量。
圖5B說明沒有序列號502的委派或代理寫入500的操作。例如,軟件可就已更新數(shù)據(jù)輪詢存儲單元,作為采用序列號的備選方案。或者,軟件可輪詢硬件寄存器位“Q_FULL”,直到該位被清除。動作由處理器508以及由委派或代理引擎514來執(zhí)行。軟件讀取504Q_FULL位,并在隊列未滿時繼續(xù)進行。如果隊列未滿506,則處理器把預(yù)期數(shù)據(jù)寫入510競爭委派數(shù)據(jù)寄存器,然后把地址RaceAddr、字節(jié)啟用BE以及代表啟用En寫入512競爭委派地址寄存器,即發(fā)起代表中的委派寫入操作514的動作,如虛線所示。
響應(yīng)處理器寫入512,委派或代理寫入引擎514把數(shù)據(jù)寄存器的內(nèi)容寫入516地址RaceAddr,其中具有適當(dāng)?shù)淖止?jié)啟用BE。
參照圖6A和圖6B,示意框圖分別說明計算機系統(tǒng)600、例如Hewlett-Packard Company(Palo Alto,California)開發(fā)的容錯NonStopTM體系結(jié)構(gòu)計算機系統(tǒng)的一個實施例以及單獨的處理器片602的兩個視圖。說明性處理器片602是具有專用存儲器和時鐘振蕩器的N路計算機。處理器片602具有多個微處理器604、輸入/輸出(I/O)橋接器和存儲控制器608、以及存儲器子系統(tǒng)606。處理器片602還包括重組邏輯610以及到又稱作表決邏輯的邏輯網(wǎng)關(guān)616的接口。
計算機系統(tǒng)600包括多個處理器片602,它們可作為冗余松散耦合處理器共同運行。每個處理器片602還包括多個處理器604和存儲器606。計算機系統(tǒng)600還包括至少一個邏輯同步單元614,它耦合到處理器片602的至少兩個中的多個處理器中的多個處理器604。邏輯同步單元614可從多個處理器604異步接收數(shù)據(jù)和地址信息,以及通過委派把數(shù)據(jù)同步寫入處理器片602的存儲器606中的地址信息指定的地址。
處理器604中的邏輯執(zhí)行對于邏輯網(wǎng)關(guān)616中的委派寫入引擎(代表)618的已表決寫入操作并發(fā)起對存儲器606的委派寫入操作。
I/O橋接器和存儲控制器608用作處理器總線與存儲系統(tǒng)之間的接口,并且包括到輸入和輸出裝置的多個接口。I/O橋接器/存儲控制器608可配置成支持專有接口、工業(yè)標(biāo)準(zhǔn)接口或組合接口。在一個實例中,控制器608支持外設(shè)部件互連(PCI)、PCI Express或其它適當(dāng)?shù)慕涌?。I/O橋接器/存儲控制器608可用來與邏輯同步單元(LSU)614接口。對于具有N個邏輯處理器的計算機系統(tǒng)600,使用至少N個表決器,以便使用N個輸入/輸出鏈路。如果鏈路的數(shù)量大于I/O橋接器/存儲控制器608所支持的數(shù)量,則處理器片602可采用中間扇出邏輯來實現(xiàn)到各個表決器塊616的獨立鏈路。
在冗余計算機系統(tǒng)600中,片的更換包括重組,借此存儲器的狀態(tài)被復(fù)制到新的片。重組邏輯610可把存儲器寫操作復(fù)制到本地存儲器,并且可通過存儲器復(fù)制鏈路612把操作發(fā)送給另一個片。重組邏輯610可配置為接收來自存儲器復(fù)制鏈路612或者來自本地存儲控制器608的存儲器寫操作。重組邏輯610可在存儲控制器608與存儲器606、如雙列直插式存儲模塊(DIMM)之間接口?;蛘撸亟M邏輯610可集成到I/O橋接器/存儲控制器608中。重組邏輯610用于通過使存儲器狀態(tài)與其它處理器片一致,使新處理器片602聯(lián)機。
處理器片602可提供內(nèi)部時鐘源,使得多個片沒有保持密切同步。不同處理器片中的每個微處理器604可按照獨立選取的頻率運行。同步操作可在邏輯處理器中用來同步處理器元件。較快的處理器元件等待慢元件,使得邏輯處理器以邏輯處理器中的最慢處理器元件的速度運行。
在一個說明性實例中,計算機系統(tǒng)600采用稱作片602的松散鎖步多處理器盒,每個為具有微處理器604、高速緩沖存儲器606以及到輸入/輸出線的接口608的組合的全功能計算機。為了數(shù)據(jù)完整性,比較自多處理器片602的所有輸出路徑。通過采用繼續(xù)工作的其它片602繼續(xù)工作,來透明處理一個片602中的故障。
計算機系統(tǒng)600以“松散鎖步”方式運行,其中,冗余微處理器604運行相同的指令流并且間歇地比較結(jié)果,不是逐個周期地進行,而是當(dāng)處理器片602執(zhí)行輸出操作時進行。松散鎖步操作防止微處理器604中的錯誤恢復(fù)例程和次要不確定性導(dǎo)致鎖步比較錯誤。該操作還改進多個容錯。系統(tǒng)容許許多故障,即使在同一個邏輯處理器中。根據(jù)冗余度的可選量,沒有兩個處理器或結(jié)構(gòu)故障能夠停止NonStop應(yīng)用。
計算機系統(tǒng)600可用于網(wǎng)絡(luò)應(yīng)用中。邏輯同步單元614中的輸入/輸出(I/O)接口620經(jīng)由網(wǎng)絡(luò)626實現(xiàn)與一個或多個遠程實體、如存儲控制器622和通信控制器624的通信。
該系統(tǒng)執(zhí)行或運行的各種功能、過程、方法和操作可實現(xiàn)為在各種類型的處理器、控制器、中央處理器、微處理器、數(shù)字信號處理器、狀態(tài)機、可編程邏輯陣列等上可運行的程序。程序可存儲在任何計算機可讀介質(zhì)中,供任何計算機相關(guān)系統(tǒng)或方法使用或與其結(jié)合使用。計算機可讀介質(zhì)是電、磁、光或其它物理裝置或部件,它們可包含或存儲計算機相關(guān)系統(tǒng)、方法、過程或程序使用或與其結(jié)合使用的計算機程序。程序可包含在計算機可讀介質(zhì)中,供例如基于計算機或處理器的系統(tǒng)或者可從指令存儲器或任何適當(dāng)類型的存儲器中取指令的其它系統(tǒng)之類的指令執(zhí)行系統(tǒng)、裝置、組件、元件或設(shè)備使用,或者與其結(jié)合使用。計算機可讀介質(zhì)可以是能夠存儲、傳遞、傳播或傳送由指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用的或與其結(jié)合使用的程序的任何結(jié)構(gòu)、裝置、組件、產(chǎn)品或其它方式。
說明性框圖和流程圖說明可表示模塊、段或包含用于實現(xiàn)過程中的特定邏輯功能或步驟的一個或多個可執(zhí)行指令的代碼部分的過程步驟或框。雖然具體實例說明特定過程步驟或動作,但是許多備選實現(xiàn)是可行的,并且一般通過簡單的設(shè)計選擇來進行。動作和步驟可根據(jù)功能、目的、與標(biāo)準(zhǔn)、遺留結(jié)構(gòu)的一致性等的考慮事項,以不同于本文具體描述的順序來執(zhí)行。
參照圖7,示意框圖說明復(fù)合處理器700的一個實施例,它包括三個處理器片704、片A、B和C、以及N個表決塊710和輸入/輸出(I/O)控制器712、例如系統(tǒng)區(qū)域網(wǎng)(SAN)接口。表決塊的數(shù)量N大于或等于復(fù)合處理器700中支持的邏輯處理器的數(shù)量。處理器片704說明性地為具有內(nèi)含高速緩存、存儲系統(tǒng)、時鐘振蕩器等的多處理器計算機。每個微處理器能夠運行來自不同邏輯處理器的不同的指令流。N個表決塊710和N個I/O控制器712彼此成對,并且包含在N個相應(yīng)的邏輯同步單元(LSU)中。說明性的復(fù)合處理器700的每個邏輯處理器具有一至兩個邏輯同步塊,其中的每個邏輯處理器具有關(guān)聯(lián)的表決塊單元710和I/O控制器712。
在操作過程中,處理器片704A、B和C一般配置為以松散鎖步進行工作的多個三模塊邏輯處理器,其中由表決單元710在數(shù)據(jù)被寫入網(wǎng)絡(luò)之前比較I/O輸出。
表決單元710是操作的邏輯網(wǎng)關(guān),以及數(shù)據(jù)從未校驗邏輯同步塊交叉到自校驗域。針對自校驗域的PIO讀取和寫入請求由表決單元710校驗以便接收。不允許操作相互傳遞,以及在允許下一個開始之前完成。DMA讀取響應(yīng)數(shù)據(jù)也按照接收順序被校驗,然后轉(zhuǎn)發(fā)給I/O控制器712、如PCI-X接口。PIO請求和DMA讀取響應(yīng)被并行處理而不要求按照順序,或者在兩個流之間被校驗。
組成邏輯處理器706的多個、例如三個處理器元件702與至少一個邏輯同步單元(LSU)714和系統(tǒng)區(qū)域網(wǎng)(SAN)接口關(guān)聯(lián)。表決邏輯710比較來自三個片704的輸出數(shù)據(jù),并在數(shù)據(jù)相等時使數(shù)據(jù)輸出操作能夠完成。只有唯一的一個邏輯處理器使用各I/O控制器712。各邏輯處理器具有到SAN的獨占專用接口。
邏輯同步單元(LSU)714用作到系統(tǒng)區(qū)域網(wǎng)的容錯接口中的邏輯處理器706的組成部分,并執(zhí)行邏輯處理器706的處理器元件702的表決和同步。在一個說明性實現(xiàn)中,各邏輯同步單元僅由單個邏輯處理器706來控制和使用。
表決邏輯710把處理器片704連接到I/O控制器712,并為邏輯處理器提供同步功能性。更具體來說,表決邏輯710比較來自從處理器元件中的每個對邏輯同步單元中的寄存器的并行輸入/輸出(PIO)讀和寫的數(shù)據(jù)。該比較稱作表決,并且確保只有正確的命令才發(fā)送給邏輯同步單元邏輯。表決邏輯710還從處理器片存儲器中讀取出站數(shù)據(jù),并且在把數(shù)據(jù)發(fā)送給系統(tǒng)區(qū)域網(wǎng)(SAN)之前比較結(jié)果,從而確保出站SAN業(yè)務(wù)量僅包含所計算的、或者由邏輯處理器中的所有處理器元件的表決同意的數(shù)據(jù)。表決邏輯710還復(fù)制從系統(tǒng)區(qū)域網(wǎng)以及邏輯同步單元的寄存器中讀取的并行輸入/輸出(PIO)數(shù)據(jù),并分發(fā)給處理器元件702中的每個。表決邏輯710還復(fù)制來自系統(tǒng)區(qū)域網(wǎng)的入站數(shù)據(jù),并分發(fā)給處理器元件中的每個。
表決邏輯710維護表明哪些處理器元件702當(dāng)前是邏輯處理器706的成員的配置寄存器。表決邏輯710確保邏輯處理器706中的所有活動處理器元件702均參與表決。表決錯誤處理操作可根據(jù)邏輯處理器706中的處理器元件702的數(shù)量以及操作的類型而改變。例如,在一些條件下,錯誤操作在所有或大部分元件同意時可完成,或者在大多數(shù)或所有元件不同意時可中止。錯誤恢復(fù)動作可包括停止具有錯誤數(shù)據(jù)的處理器元件,然后再重組元件。
表決操作對于包括處理器元件702讀取和寫入表決邏輯710或I/O控制器712中的對稱控制寄存器在內(nèi)的并行輸入/輸出(PIO)傳輸來執(zhí)行,以及還對來自I/O控制器712的直接存儲器存取(DMA)讀操作執(zhí)行。無論是源自邏輯處理器的SAN寫操作還是入局SAN讀操作的所有出站數(shù)據(jù)均為從I/O控制器712到處理器元件存儲器的DMA讀取。DMA讀取的數(shù)據(jù)完整性由表決操作來保證。在檢測到表決錯誤時,邏輯網(wǎng)關(guān)710停止錯誤以免傳播到系統(tǒng)區(qū)域網(wǎng),并通知在邏輯處理器中運行的軟件。軟件處理錯誤。
對于從邏輯同步單元移動到處理器元件存儲器的對稱數(shù)據(jù),例如寫入邏輯處理器的入站存儲區(qū)域網(wǎng)(SAN)業(yè)務(wù)量或者對稱寄存器的PIO讀取,邏輯網(wǎng)關(guān)710把來自系統(tǒng)區(qū)域網(wǎng)接口的數(shù)據(jù)分發(fā)給一個、兩個或三個活動處理器元件702。類似地,來自系統(tǒng)區(qū)域控制器712的中斷被分發(fā)給參與邏輯處理器706的所有處理器元件。
邏輯網(wǎng)關(guān)710在大致相同的時間把數(shù)據(jù)轉(zhuǎn)發(fā)給處理器元件存儲器。但是,處理器元件702沒有完全鎖步地運行,使得數(shù)據(jù)相對于特定處理器元件702的程序執(zhí)行或早或遲地到達存儲器。
該說明性系統(tǒng)避免了來自處理器元件的結(jié)果的逐個周期的比較,而是執(zhí)行來自處理器片存儲器的各個輸出結(jié)果的“松散鎖步”比較。在邏輯處理器發(fā)出輸入或輸出操作時,來自各處理器片存儲器的輸出信息被比較。微處理器、高速緩存、芯片組或存儲系統(tǒng)中的不可糾正的錯誤最終導(dǎo)致存儲器狀態(tài)發(fā)散,這可在邏輯處理器嘗試外部輸入或輸出操作時被檢測。整個處理器、高速緩存、芯片組和存儲系統(tǒng)的操作被比較,從而得到極高程度的數(shù)據(jù)完整性,高于通過對存儲器添加糾錯碼(ECC)或?qū)?shù)據(jù)總線添加奇偶校驗?zāi)軌虻玫降某潭取?br> 微處理器結(jié)果不是每個周期進行比較,使得在一個微處理器重復(fù)高速緩存提取以便從瞬時錯誤中恢復(fù)時不會發(fā)生比較錯誤。兩個片達到相同的輸出結(jié)果,一個稍遲于另一個。類似地,不影響程序運行的次要不確定性行為、例如存儲器提取過程中的額外周期插入不會引起發(fā)散。
所有處理器片輸出信息被校驗,以及僅當(dāng)所有活動處理器片同意輸出數(shù)據(jù)和操作時才會外部傳遞數(shù)據(jù)。如果I/O輸出操作錯誤比較,則表決邏輯防止輸出信息轉(zhuǎn)到系統(tǒng)區(qū)域網(wǎng),并調(diào)用處理器中的錯誤處理邏輯。如果錯誤較小且可恢復(fù),則通過允許硬件繼續(xù)采用所選數(shù)據(jù)進行,或者通過軟件重新執(zhí)行操作,錯誤處理代碼使操作能夠繼續(xù)進行。對于不可恢復(fù)的錯誤,錯誤處理器元件被識別,并且對于瞬時錯誤可被暫停并重新啟動。處理器元件采用重組操作來重新啟動。對于不認為是瞬時的錯誤,可調(diào)度處理器片以便進行維修。
雖然本公開描述了各種實施例,但這些實施例要理解為說明性的,而不是限制權(quán)利要求的范圍。對所述實施例的許多變更、修改、增加和改進是可行的。例如,本領(lǐng)域的技術(shù)人員易于實現(xiàn)提供本文所公開的結(jié)構(gòu)和方法所需的步驟,并且會理解,過程參數(shù)、材料和尺寸僅作為實例給出。參數(shù)、材料、組件和尺寸可改變,以便實現(xiàn)預(yù)期結(jié)構(gòu)以及修改,它們處于權(quán)利要求的范圍之內(nèi)。本文所公開的實施例的變更和修改也可進行,而仍然保持在以下權(quán)利要求的范圍之內(nèi)。例如,本文所述的具體實施例標(biāo)識各種計算體系結(jié)構(gòu)、通信技術(shù)和配置、總線連接等。本文所述的各種實施例具有多個方面和組件。在各種實施例和應(yīng)用中,這些方面和組件可單獨實現(xiàn)或結(jié)合實現(xiàn)。因此,各權(quán)利要求要被分別考慮,并且不包括權(quán)利要求用詞之外的方面或限制。
權(quán)利要求
1.一種同步單元(100),具有在包括多片松散耦合處理器(104)和存儲器(106)的系統(tǒng)中避免競爭的能力,所述同步單元(100)包括委派寫入引擎(108),它從所述處理器(104)接收數(shù)據(jù)和存儲器地址信息,以及作為所述處理器(104)的代表把數(shù)據(jù)寫入所尋址的存儲器(106)。
2.如權(quán)利要求1所述的同步單元(100),其特征在于,還包括數(shù)據(jù)寄存器(210);以及地址寄存器(212),所述處理器(104)把數(shù)據(jù)寫入所述數(shù)據(jù)寄存器(210)以及把地址信息寫入所述地址寄存器(212),以及所述委派寫入引擎(108)在所述寄存器寫入完成時,把所述數(shù)據(jù)寫入所述存儲器(106)中指定的地址。
3.如權(quán)利要求1所述的同步單元(100),其特征在于,還包括執(zhí)行把寫操作委派給所述委派寫入引擎(108)的委派寫入動作的邏輯,所述委派寫入引擎(108)在對于所有處理器片一致的時間把所述委派寫入插入直接存儲器存取(DMA)流,從而對于多個存儲器(106)中每個的所有委派寫入的順序是一致的。
4.如權(quán)利要求1所述的同步單元(100),其特征在于,還包括競爭委派序列號寄存器;以及競爭委派數(shù)據(jù)寄存器。
5.如權(quán)利要求4所述的同步單元(100),其特征在于,還包括設(shè)置競爭委派序列、數(shù)據(jù)和地址以及監(jiān)測委派寫入完成的邏輯。
6.如權(quán)利要求5所述的同步單元(100),其特征在于,還包括處理器可執(zhí)行的邏輯,維護內(nèi)部委派寫入序列號,并隨著各個排隊的委派寫入操作而遞增所述內(nèi)部委派寫入序列號;以及代表可執(zhí)行的邏輯,隨著每個所執(zhí)行的委派寫入而遞增計數(shù),在所定義的地址向主機存儲器反映所述計數(shù)。
7.如權(quán)利要求6所述的同步單元(100),其特征在于可排隊的委派寫入的數(shù)量由所述維護的內(nèi)部委派寫入序列號、所述委派邏輯計數(shù)以及委派寫入隊列的深度來確定。
8.一種計算機系統(tǒng)(600),包括至少一個處理器片(602),可作為冗余松散耦合處理器來組合運行并包括存儲器(606);以及邏輯同步單元(614),耦合到所述處理器片(602),所述邏輯同步單元(614)能夠從多個處理器片(602)異步接收數(shù)據(jù)和地址信息,以及在所述多個處理器片(602)之間同步地把所述數(shù)據(jù)通過委派寫入多個處理器片(602)的所述存儲器(606)中的地址信息指定的地址。
9.如權(quán)利要求8所述的計算機系統(tǒng)(600),其特征在于,還包括所述邏輯同步單元(614)中的委派寫入引擎(618),它從所述至少一個處理器片(602)接收數(shù)據(jù)和地址信息,以及把數(shù)據(jù)寫入所述至少一個處理器片(602)中的所述存儲器(606)。
10.如權(quán)利要求9所述的計算機系統(tǒng)(600),其特征在于,還包括所述至少一個處理器片(602)中的邏輯,該邏輯執(zhí)行對所述委派寫入引擎(618)的已表決寫入操作,并發(fā)起對所述至少一個處理器片(602)中的所述存儲器(606)的委派寫入操作。
11.如權(quán)利要求9所述的計算機系統(tǒng)(600),其特征在于,還包括數(shù)據(jù)寄存器(210);地址寄存器(212);以及所述至少一個處理器片(602)中的邏輯,所述邏輯能夠把數(shù)據(jù)寫入所述數(shù)據(jù)寄存器(210)以及把地址信息寫入所述地址寄存器(212),以及所述委派寫入引擎(618)在所述寄存器寫入完成時,把所述數(shù)據(jù)寫入所述至少一個處理器片(602)中的存儲器(606)中指定的地址。
12.如權(quán)利要求8所述的計算機系統(tǒng)(600),其特征在于,還包括輸入/輸出(I/O)控制器,執(zhí)行對讀取數(shù)據(jù)的校驗,所述至少一個處理器片(602)執(zhí)行對所述邏輯同步單元(614)的已校驗寫入操作。
13.如權(quán)利要求8所述的計算機系統(tǒng)(600),其特征在于,還包括所述至少一個處理器片(602)中的邏輯,所述邏輯校驗代表寫入序列號以確定附加委派寫入引擎(618)是否可用或者當(dāng)前正在使用。
全文摘要
在包括多片處理器(104)和存儲器(106)的系統(tǒng)中,具有避免競爭能力的同步單元(100)包括委派寫入引擎(108),它從處理器(104)接收數(shù)據(jù)和存儲器地址信息,以及作為處理器(104)的代表把數(shù)據(jù)寫入存儲器(106)。
文檔編號G06F12/02GK1776647SQ200510127159
公開日2006年5月24日 申請日期2005年11月16日 優(yōu)先權(quán)日2004年11月16日
發(fā)明者D·J·加西亞, M·諾爾斯, T·A·海尼曼, J·A·斯普勞斯 申請人:惠普開發(fā)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1