專利名稱:同步或異步定時的處理單元的同步方法和電路裝置的制作方法
在電信系統(tǒng)、數(shù)據(jù)中心和其它可用性高的系統(tǒng)中,在許多情形下會采用多達幾百個所謂的處理器板來安排所需要的計算功率。這種處理器板典型地由處理器或CPU(中央處理單元)、芯片組、主存儲器和外圍模塊組成。
一個常規(guī)處理器板每年出現(xiàn)硬件故障的概率處于一位數(shù)的百分比范圍內(nèi)。由于有大量的處理器板被綜合到一個系統(tǒng)中,所以任意一個硬件組件都會產(chǎn)生與年周期有關(guān)的高故障概率,其中如果不采取合適的預(yù)防措施,這種單個的故障可能引起整個系統(tǒng)的故障。
尤其在電信系統(tǒng)處,越來越多地也在數(shù)據(jù)中心處,要求有高度的系統(tǒng)可用性。這譬如用百分比來表達,或規(guī)定每年最多允許的故障時間。典型的要求例如是可用性大于99.999%,或不可用性最多為每年幾分鐘。由于在硬件故障時更換處理器板或重建業(yè)務(wù)需要幾十分鐘到幾小時的時間,因此必須針對系統(tǒng)面上的硬件故障采取相應(yīng)的預(yù)防措施,以便能滿足所述的系統(tǒng)可用性要求。
為遵守這種高系統(tǒng)可用性的要求,已知的解決方案是設(shè)立冗余的系統(tǒng)組件。已知的方法可以分為兩大類基于軟件的方法和基于硬件的方法。
在基于軟件的方法中典型地采用一種媒件。但這種基于軟件的解決方案被證明是欠缺靈活性的,因為在這種系統(tǒng)中只能采用已經(jīng)為該特殊的冗余方案所開發(fā)的(應(yīng)用)軟件。這大大地限制了可使用的(應(yīng)用)軟件的范圍。此外,為軟件冗余原理開發(fā)應(yīng)用軟件實際上是極其費事的,其中這種開發(fā)另外會帶來復(fù)雜的測試方法。
基于硬件的方法的基本原理在于,把冗余包封到硬件平面上,使得這對于軟件而言是透明的。由硬件自身管理的冗余的主要優(yōu)點是,應(yīng)用軟件不會受到冗余原理的損害,因此在大多數(shù)情況下能夠采用任何一個軟件。
對于能容忍硬件故障的系統(tǒng)-其冗余對軟件是透明的-來說,在實踐中經(jīng)常采取的原理是所謂的Lockstep(步鎖)原理。Lockstep的意思是,相同結(jié)構(gòu)的硬件、例如兩個板,是同樣地時鐘同步地運行的。通過硬件機制來確保冗余的硬件在給定的時間點上經(jīng)受相同的輸入激勵,并由此必定產(chǎn)生相同的結(jié)果。比較冗余組件的結(jié)果,在有偏差的情況下確定存在故障并引入合適的措施(向操作人員告警,部分或全部地進行安全性關(guān)斷,系統(tǒng)重啟)。
實現(xiàn)Loctstep系統(tǒng)的基本前提條件是,所有包含在板子中的組件、也即CPU、芯片組、主存儲器等具有時鐘決定性的特性。在此,時鐘決定性的特性意味著,當(dāng)這些組件在相同的時間點收到相同的激勵時,它們在無故障狀態(tài)下將在相同的時間點提供相同的結(jié)果。另外,時鐘決定性的特性以采用時鐘同步的接口為前提。在系統(tǒng)中,異步接口在許多情況下將導(dǎo)致某種時間不準(zhǔn)確性,由此不能保持系統(tǒng)的時鐘同步的總特性。
但對芯片組和CPU而言,異步接口恰好在提高功能性方面提供了技術(shù)上的優(yōu)點,由此不可能按照Lockstep方法實現(xiàn)時鐘同步的工作方式。另外,現(xiàn)代的CPU越來越多地采用不能實現(xiàn)時鐘同步工作方式的機制。這例如是內(nèi)部的、對外為不可見的校正措施,例如可能導(dǎo)致指令處理產(chǎn)生稍微延遲的、在訪問高速緩存器時對內(nèi)部可糾正錯誤的校正,或者指令的推測性執(zhí)行。另一例子是將來越來越多地實現(xiàn)CPU內(nèi)部的、無時鐘的執(zhí)行單元,這些執(zhí)行單元在速度和損耗功率方面能取得巨大的優(yōu)點,但阻止了CPU的時鐘同步的或決定性的工作。
US專利文獻5226152公開過一種用于冗余處理器的功能性的Lockstep裝置,其中所有的處理器被連接到一個邏輯裝置上,由該邏輯裝置同步處理器對外圍設(shè)備的訪問,并實現(xiàn)冗余處理器的功能性Lockstep工作。
然而,就文章開頭所說的處理器板而言,利用這種具有中央邏輯裝置的裝置會產(chǎn)生巨大的缺點,即除了所述的處理器板外,還需要分別為某個數(shù)量的處理器板設(shè)立一個邏輯板,然后由該邏輯板控制外圍設(shè)備訪問的同步。但這種邏輯板那里必須得到監(jiān)視,因而可能導(dǎo)致復(fù)雜的監(jiān)視機制。
換句話說,雖然US5226152的裝置看起來適合于為具有多個處理器的單板系統(tǒng)設(shè)立功能性Lockstep,但這種裝置并不適合于本文開頭所說的那種具有多個相同處理器板的系統(tǒng)。
因此本發(fā)明的任務(wù)在于提供一種方法,用于保障Lockstep方法的優(yōu)點和考慮技術(shù)的發(fā)展。
該任務(wù)通過如權(quán)利要求1的特征所述的、同步或異步定時的處理單元的同步方法來解決,以及通過如權(quán)利要求13的特征所述的、同步或異步定時的處理單元的同步電路裝置來解決。
優(yōu)選的實施方案由從屬權(quán)利要求給出。
根據(jù)本發(fā)明規(guī)定了一種用于同步相同或不同的冗余處理單元PRO0,PRO1的方法,所述的處理單元處理相同的指令序列并同步或異步地被定時,據(jù)此,向所述處理單元PRO0,PRO1外部起作用的事務(wù)被分配給所述處理單元PRO0,PRO1的模塊EQ0,EQ1用來同步所述的處理單元PRO0,PRO1,其方式是,所述的處理單元分別通過所述分配的模塊被延遲和由此平衡,直到所有處理單元的指令執(zhí)行已獲得當(dāng)前的事務(wù)。
在此可以采用以下的事務(wù)來進行同步-與被分配給相應(yīng)處理單元PRO0,PRO1的本地存儲器MEM0,MEM1有關(guān)的不可臨時存儲的存儲器事務(wù),和/或-向輸入/輸出模塊I/O0,I/O1的輸入/輸出事務(wù),和/或-向外部寄存器REG0,REG1的存儲器映射的輸入/輸出事務(wù),和/或-與處理單元PRO0,PRO1的共用存儲器CMEM有關(guān)的不可臨時存儲的存儲器事務(wù)。
在此可以通過以下方式來執(zhí)行讀事務(wù),即由分配給處理單元的模塊將處理單元置為等候狀態(tài)直到到達需要讀取的數(shù)據(jù),并且把讀事務(wù)的一個或多個參數(shù)發(fā)送給與事務(wù)目標(biāo)I/O0,I/O1,MEM0,MEM1,REG0,REG1,CMEM最直接相連的模塊,其中,由與事務(wù)目標(biāo)最直接相連的模塊接收其它模塊的一個或多個參數(shù)和一個或多個本地產(chǎn)生的參數(shù),并進行比較,在一致的情況下執(zhí)行所述的讀事務(wù)和把讀取的數(shù)據(jù)發(fā)送給所有的模塊,然后由所有的模塊把讀取的數(shù)據(jù)傳送給所分配的處理單元和允許指令執(zhí)行的繼續(xù)。
在此可以通過以下方式來執(zhí)行寫事務(wù),即由分配給處理單元的模塊將處理單元置為等候狀態(tài)直到寫過程結(jié)束,并且把寫事務(wù)的參數(shù)發(fā)送給與事務(wù)目標(biāo)I/O0,I/O1,MEM0,MEM1,REG0,REG1,CMEM最直接相連的模塊,其中,由與事務(wù)目標(biāo)最直接相連的模塊接收其它模塊的一個或多個參數(shù)和一個或多個本地產(chǎn)生的參數(shù),并進行比較,在一致的情況下執(zhí)行所述的寫事務(wù)和把產(chǎn)生的寫過程回復(fù)給所有的模塊,然后由所有的模塊允許所分配的處理單元繼續(xù)指令的執(zhí)行。
優(yōu)選地,如果外部事件的處理通過從一個存儲位置或一個寄存器讀取一個值、例如中斷矢量而被引入,并同時確保所有處理單元在指令執(zhí)行的相同位置處獲得外部事件,則可以結(jié)合本發(fā)明的同步方法根據(jù)事務(wù)來處理外部事件、例如中斷。引入事件處理的讀事務(wù)如上文所述那樣來進行,譬如借助于一個中斷確認(rèn)周期。
同步外部事件的合適方法在歐洲專利申請02020602中講述過,并規(guī)定臨時存儲外部事件,其中在處理單元的特殊工作模式中調(diào)用該存儲的外部事件以通過處理單元的至少各一個執(zhí)行單元來處理,而且所述的處理單元響應(yīng)于滿足由指令所預(yù)給定或固定給定的條件而進入該工作模式,并通過所述的模塊EQ0,EQ1延遲指令執(zhí)行的繼續(xù),直到所有的處理單元已結(jié)束該特殊工作模式。
如果所述處理單元的比較器單元K測得計數(shù)單元CIC與寄存器單元MIR一致,則例如執(zhí)行到所述特殊工作模式的切換,其中所述寄存器單元MIR的內(nèi)容可通過指令預(yù)給定,并且對于所有的處理單元PRO0,PRO1都是相同的,所述的計數(shù)單元CIC包含有從最后切換到所述特殊工作模式以來由執(zhí)行單元所執(zhí)行的指令數(shù)量。
當(dāng)與事務(wù)目標(biāo)最直接相連的模塊確定其它模塊的參數(shù)以及一個或多個本地產(chǎn)生的參數(shù)有偏差時,則可以引入故障處理。在此,故障處理可以停止所述需執(zhí)行的事務(wù),并啟動一個例程用于診斷、隔離故障和/或必要時重建同步。在存在N(例如N=3)個處理單元的情況下,可以采取從N取N-1的多數(shù)判定,或一般采取從N取N-M的多數(shù)判定,并去活有偏差的處理單元。
另外可以通過以下方式對各個處理單元進行故障識別,即對于從所述的一個或多個參數(shù)在處理單元的模塊中最早地變得可用時開始的任一事務(wù),放棄沒有到達的或在預(yù)定的時間過去之后才到達的參數(shù),其中利用沒有到達的或在預(yù)定的時間過去之后才到達的參數(shù)來為處理單元啟動故障處理。
本發(fā)明另外還規(guī)定了一種用于同步被同步或異步地定時的處理單元PRO0,PRO1的裝置,具有以下部分-至少兩個處理單元PRO0,PRO1,用于處理相同的指令序列,-分別專門地分配給所述處理單元的外圍設(shè)備MEM0,MEM1,用于存儲和/或交換數(shù)據(jù),-能由所有處理單元共用的外圍設(shè)備I/O0,I/O1,REG0,REG1,CMEM,用于存儲和/或交換數(shù)據(jù),-被分配給所述處理單元的模塊EQ0,EQ1,其中所述的模塊EQ0,EQ1具有用于監(jiān)視事務(wù)的工具、用于停止所分配的處理單元直到所有的處理單元獲得當(dāng)前的事務(wù)的工具、以及用于將事務(wù)參數(shù)傳輸給其它模塊的工具L0,L1。
在此,所述的模塊EQ0,EQ1具有尤其借助于以下事務(wù)同步處理單元的工具-與被分配給相應(yīng)處理單元PRO0,PRO1的本地存儲器MEM0,MEM1有關(guān)的不可臨時存儲的存儲器事務(wù),和/或-向輸入/輸出模塊I/O0,I/O1的輸入/輸出事務(wù),和/或-向外部寄存器REG0,REG1的存儲器映射的輸入/輸出事務(wù),和/或-與處理單元PRO0,PRO1的共用存儲器CMEM有關(guān)的不可臨時存儲的存儲器事務(wù)。
在此,所述的模塊優(yōu)選地具有求出代表事務(wù)的以下參數(shù)的工具-輸入/輸出地址,和/或-存儲器地址,和/或-需轉(zhuǎn)移的數(shù)據(jù),和/或-事務(wù)的類型,和/或-根據(jù)輸入/輸出地址和/或存儲器地址和/或需轉(zhuǎn)移的數(shù)據(jù)和/或事務(wù)的類型求出的標(biāo)記。
為處理諸如中斷等外部事件,處理單元優(yōu)選地具有以下部分-至少一個執(zhí)行單元EU,-至少一個計數(shù)器單元CIC,用于計數(shù)從最后切換到特殊工作模式以來所述執(zhí)行單元所執(zhí)行的指令,-至少一個寄存器單元MIR,其內(nèi)容可通過指令預(yù)給定或固定地給定,-至少一個比較器單元K,用于響應(yīng)于所述計數(shù)器單元CIC與寄存器單元MIR的一致性而把執(zhí)行單元EU切換到特殊工作模式,其中在所述的特殊工作模式下被臨時存儲的、且需被輸送給處理器模塊和影響處理器模塊的外部事件通過所述的處理器模塊進行調(diào)用。
在此,調(diào)用臨時存儲的外部事件可以優(yōu)選地借助于軟件、固件、微代碼或硬件來實現(xiàn)。
本發(fā)明的主要優(yōu)點在于在容忍硬件故障的平臺上能夠采用任意新的或已有的軟件,其中在該平臺中可以采用支持本發(fā)明的處理單元,而對CPU的時鐘同步的決定性工作方式?jīng)]有要求。
其它優(yōu)點是-例如由CPU、北橋和本地存儲器構(gòu)成的相互成冗余的處理單元不必恒相地耦合而工作。
-CPU不必相同,這尤其允許在一個冗余系統(tǒng)中同時采用不同的CPU級,并且以不同的時鐘頻率工作。
-CPU在猜測性地執(zhí)行指令方面可以有不同的特性。
-例如由于在數(shù)據(jù)訛誤地出現(xiàn)α粒子后進行的校正,相同CPU的不同CPU內(nèi)部執(zhí)行時間僅導(dǎo)致在稍微不同的時間點上獲得同步事件。
由于將來CPU的時間不準(zhǔn)確性,在確保時鐘同步的決定性工作方式時的上述問題只導(dǎo)致在時間上不正確相關(guān)的指令執(zhí)行。由于CPU在常規(guī)的應(yīng)用中必須對外部事件作出反應(yīng),譬如對外圍設(shè)備所產(chǎn)生的中斷或?qū)τ稍O(shè)備已寫入到主存儲器中的數(shù)據(jù)作出反應(yīng),所以必須確保CPU在指令執(zhí)行的相同位置獲知這些事件,因為否則的話,對這些事件的分析可能導(dǎo)致冗余CPU的不同程序運行。
本發(fā)明負(fù)責(zé)在指令執(zhí)行的相同位置給冗余CPU提供外部的、對程序運行來說重要的事件,例如中斷或由外部設(shè)備產(chǎn)生的數(shù)據(jù),由此能夠仿真所述的Lockstep工作方式。
另外還比較冗余CPU的在指令執(zhí)行的相同位置被提供的輸出事件,并由此認(rèn)可這些事件。與通過軟件方法根據(jù)處理器外圍設(shè)備實現(xiàn)同步和數(shù)據(jù)分配的已知方法相反,本發(fā)明是通過硬件來實現(xiàn)的。在此有一個決定性的優(yōu)點性能影響要比軟件方法低很多倍。所述的方法另外對于應(yīng)用軟件和操作系統(tǒng)軟件是完全透明的,也即已有的應(yīng)用軟件和操作系統(tǒng)軟件可以不用修改就繼續(xù)被使用。
下面結(jié)合三個附圖來詳細(xì)講述本發(fā)明的實施例。
圖1簡要地示出了具有所屬外圍設(shè)備的兩個處理單元和事務(wù)的同步。
圖2簡要地示出了借助于利用兩個模塊的外圍設(shè)備事務(wù)被同步的兩個處理單元。
圖3簡要地示出了具有進一步細(xì)節(jié)的優(yōu)選處理單元的結(jié)構(gòu)。
圖4示出了兩個不同地被定時的處理單元的指令處理時間圖及其按照本發(fā)明的同步。
在圖1中簡要地示出了兩個處理單元PRO0、PRO1,它們的在外部起作用的事務(wù)被同步。示例地示出了針對以下組件的事務(wù)本地存儲器MEM0、MEM1,寄存器REG0、REG1,以及輸入/輸出模塊或I/O模塊I/O0、I/O1。在此,第一處理單元PRO0被分配了第一組件MEM0、REG0和I/O0,而第二處理單元PRO1被分配了第二組件MEM1、REG1和I/O1。如相應(yīng)的虛線連接所示,處理單元能訪問其它各個處理單元的寄存器REGn和I/O模塊I/O。,而只有被分配的處理單元PROk才能訪問本地存儲器MEMk。
另外還示例地示出了處理單元共同訪問的組件,此處為共用的存儲器CMEM,其中,與寄存器和I/O模塊不同的是,該共用存儲器沒有被分配給處理單元中的任何一個。
圖2再次示出了兩個處理單元,并示例性地示出了圖1的I/O模塊以及寄存器。它們不是常規(guī)地直接通過相應(yīng)的接口或接口模塊相連接的,而是借助了均衡器模塊EQ0、EQ1。處理單元PRO0的所有訪問通過均衡器EQ0接收、處理和相應(yīng)地繼續(xù)傳送,同樣,處理單元PRO0也通過均衡器EQ0提供所有的外部數(shù)據(jù)和事件。類似地,處理單元PRO1被分配了一個相等的均衡器EQ1。
均衡器EQ0、EQ1交換信息,并且為此優(yōu)選地具有快速和直接的連接L0、L1。如圖所示,該連接可以被邏輯地和/或物理地劃分為第一連接L0EQ0->EQ1和第二連接L1EQ1->EQ0。
如圖2的虛線所示,根據(jù)本發(fā)明也可以連接其它的單元,包括各一個處理單元PRO、一個均衡器EQ和外圍設(shè)備REG、I/O,以便構(gòu)成相應(yīng)多倍冗余的系統(tǒng)。通過加入其它的這種單元,將產(chǎn)生3倍冗余的系統(tǒng),其中已經(jīng)能夠通過“從3取2”多重判定來進行錯誤處理。
圖3最后示出了本發(fā)明結(jié)合常規(guī)處理器/外圍設(shè)備結(jié)構(gòu)的詳細(xì)實現(xiàn),其特征在于,主處理器CPU通過北橋(Northbridge)接口單元NB與南橋(Southbridge)接口單元SB相耦合,其中所述的北橋譬如還包括與本地存儲器MEM0的接口,而所述的南橋譬如包括中斷控制器和其它的I/O功能。
如圖3示例地所示,處理單元PRO0可以由CPU、北橋和本地存儲器構(gòu)成。在特別優(yōu)選的方案中,除了常規(guī)的單元(為簡便起見只示出了它們當(dāng)中的一個高速緩存器和一個執(zhí)行單元EU)外,CPU還可以包含一個寄存器MIR、一個計數(shù)器CIC和一個比較器K,它們被用來只在指令執(zhí)行當(dāng)中的某些位置處把諸如中斷和異常等外部事件傳送給執(zhí)行單元,并保證一個否則不間斷的指令序列處理過程。
本發(fā)明的均衡器模塊EQ0優(yōu)選地被布置在北橋和南橋之間,因為北橋和南橋之間的接口具有所有必要的信號線路以使均衡器能夠停止指令序列的處理,直到處理單元PRO0與相鄰的處理單元(未示出)達到同步。只示出了連接L0、L1用于連接均衡器EQ0和相鄰處理單元的均衡器。
圖3所示的邏輯分組并沒有必要對應(yīng)于各個組件的實際物理分組。例如北橋可以被集成到CPU中,或者均衡器可以被集成到北橋或南橋中,或與北橋一起被集成到CPU中。
圖4用時間流程圖示出了兩個處理單元的指令執(zhí)行的同步。在圖4所示的實施例中,相同的指令序列通過兩個CPU、即CPU0和CPU1來處理,其中CPU0利用比CPU1更小的時鐘速率工作。為了使CPU1在比CPU0更早的時間點上得到每個指令,前提是在開始時、也即在處理mov r1,r2時所有的寄存器和分配給CPU的存儲器都已被同步。
只要CPU沒有例如借助于I/O模塊與外界進行交互作用或訪問共用存儲器,則非同步的指令處理是可以容忍的。然而對于這種事務(wù),例如在圖4的實施例中讀出I/O寄存器0x87654321,這種事務(wù)對于兩個CPU而言必須是同時進行的,尤其是利用同樣的結(jié)果同步地進行的。這借助于下文所述的均衡器來實現(xiàn)。均衡器在該事務(wù)點上同時負(fù)責(zé)重建CPU的同步。
按照Lockstep工作方式,本發(fā)明的方法在下面被稱為仿真Lockstep。仿真Lockstep的實現(xiàn)包括至少兩個處理單元PRO0和PRO1,其可以由CPU、存儲器以及存儲控制器(標(biāo)準(zhǔn)芯片組的北橋)構(gòu)成。這些處理單元構(gòu)造相同,但可以具有不同的CPU或一個CPU的不同級,并且在相同的狀態(tài)下、也即在相同的存儲器-和CPU-寄存器內(nèi)容下被啟動。根據(jù)本發(fā)明不需要通過共同或同步的時鐘進行耦合。
在機器指令執(zhí)行的范圍內(nèi),由CPU初始化存儲器周期,例如寫周期、讀周期和必要時的I/O周期。為了必要時利用CPU之間的數(shù)據(jù)交換來同步CPU,滿足以下條件的所有周期都是合適的(a)它們是指令決定性的,也即它們被相同地由所有的CPU在同樣的程序位置和以同樣的順序發(fā)出,以及(b)它們由CPU總是向外部發(fā)出,也即它們總是可以在處理器外部被看見和提?。惶幚砥鲀?nèi)部的高速緩存器周期例如是不合適的。
下面的存儲器周期例如滿足該邊緣條件-在自身的存儲器MEM0、MEM1中不能臨時存儲的或不能高速緩存的存儲器周期,-I/O周期,-存儲器映射到例如外部寄存器REG0、REG1上的I/O周期,-不能臨時存儲和不能高速緩存到外部共用存儲器CMEM的存儲器周期。
不同的外部寄存器,例如定時器,計數(shù)器和/或中斷邏輯,以及對外界的I/O單元、例如以太網(wǎng)控制器或SCSI控制器,通常與CPU存在通信。在CPU和I/O單元之間,通過異步或同步的接口為每個CPU接入各一個均衡器,由其實現(xiàn)仿真Lockstep工作。在均衡器EQ0和EQ1之間需要異步或同步的點對點連接L0、L1,以便能交換數(shù)據(jù)、地址或標(biāo)記。在傳輸故障的情況下,在異步的接口上可以安排重復(fù)地傳輸。
對I/O單元或寄存器的讀或?qū)懺L問是作為存儲器映射的I/O或直接的I/O來實現(xiàn)的。I/O單元全部是可見的,并可以通過分開的存儲器地址達到。相反,所述的寄存器在主-主配置或主-從配置中可以被切換。在主-主配置中,被分別分配的處理單元的寄存器進行讀或?qū)憚幼鳌_@種工作方式的前提是,寄存器在處理單元的訪問時具有相同的狀態(tài),以便保證這些單元的并行工作方式。
在主-從配置中,由所有的單元專門地讀取主單元的寄存器,而且主單元的寄存器只被主單元寫。例如,為讀取所有單元的當(dāng)前時間,使用主單元的日時間(ToD)計數(shù)器來確保在讀取ToD計數(shù)器時給所有的單元提供精確相同的時間,也即只有被分配給處理單元的寄存器動作。在其它單元上發(fā)生的諸如中斷等事件則必須傳輸給主單元。對該寄存器的寫訪問必須在所有單元上進行,或者被寄存到屏蔽寄存器的主存儲器內(nèi),以便在故障情況下能用新的主單元以正確的數(shù)據(jù)繼續(xù)工作。這可以借助于軟件或硬件來控制。
下面詳細(xì)講述各個事務(wù)和借助于該事務(wù)進行的同步過程。
讀事務(wù)處理單元PRO的CPU的讀指令從I/O單元讀取數(shù)據(jù)。這種讀指令在圖4中被示出,其例如是指令load r1,
。該指令由所有的CPU在指令執(zhí)行的相同位置產(chǎn)生,并指向某個I/O單元(例如I/O0)或主寄存器。但讀指令的時間點在多個CPU中可以是不同的。在圖4中CPU0比CPU1晚得到所述的讀指令。
由CPU產(chǎn)生的I/O地址或存儲器地址以及事務(wù)的屬性(例如存儲器讀或I/O讀或數(shù)據(jù)長度)、或者從地址和屬性產(chǎn)生的標(biāo)記由直接連接在CPU上的均衡器發(fā)送給所有其它的均衡器。只有當(dāng)連接在被尋址的I/O源上的均衡器識別出已經(jīng)由所有的CPU產(chǎn)生了讀請求時,才執(zhí)行本來的讀訪問。在主-從配置的情況下,被讀取的數(shù)據(jù)被分配給所有的均衡器,然后由這些均衡器通過把數(shù)據(jù)傳遞給CPU來終接各個被連接的CPU的讀指令。數(shù)據(jù)可以在不同的時間點進入CPU,但并不會因此影響進一步的程序執(zhí)行。
如果在一個均衡器中的I/O地址或標(biāo)記有偏差,則要么不執(zhí)行讀訪問并產(chǎn)生一個故障中斷,例如向CPU產(chǎn)生一個不可遮蔽的中斷NMI,要么在配置有3個CPU的情況下采取多數(shù)判定,例如“從3取2”。故障單元被隔離開和被診斷。
為了識別各個單元的故障,在時間上監(jiān)視讀訪問,也就是說所有CPU的讀指令都必須按照某個預(yù)定的時間產(chǎn)生。如果超過各指令之間的這種時間間隔,則產(chǎn)生超時,并分離和診斷出故障的單元。
讀訪問按照其出現(xiàn)的順序被處理。不設(shè)立檢修。
寫事務(wù)寫指令把數(shù)據(jù)寫入I/O單元或存儲單元。該指令由所有CPU在指令執(zhí)行的相同位置產(chǎn)生,并例如指向某個I/O單元,例如I/O0。但寫指令的時間點在多個CPU中可以是不同的。
例如由CPU產(chǎn)生的I/O地址、數(shù)據(jù)和屬性或由此算出的標(biāo)記從直接相連的均衡器被發(fā)送給所有其它均衡器。只有當(dāng)由所有CPU已產(chǎn)生了寫請求并已被均衡器認(rèn)可時,才執(zhí)行本來的寫訪問。
如果在一個均衡器中的I/O地址、數(shù)據(jù)和/或?qū)傩曰驑?biāo)記有偏差,則要么不執(zhí)行寫訪問并產(chǎn)生故障中斷,例如向CPU產(chǎn)生一個不可遮蔽的中斷NMI,要么在配置有3個CPU的情況下采取例如“從3取2”的多數(shù)判定。分離并診斷故障單元。
為了識別各個單元的故障,在時間上監(jiān)視寫訪問,也就是說所有CPU的寫指令都必須按照某個預(yù)定的時間產(chǎn)生。如果超過各指令之間的這種時間間隔,則產(chǎn)生超時,并分離和診斷出故障的單元。
寫訪問按照其出現(xiàn)的順序被處理。不設(shè)立檢修。但可以由CPU產(chǎn)生多個寫周期(所謂的Posted Writes)。為了處理這種多重寫事務(wù),可以設(shè)立相應(yīng)規(guī)格的先進先出存儲器(未示出)。
中斷影響程序過程的外部事件不是直接輸入給CPU,而是由合適構(gòu)造的硬件首先緩存。在此,該硬件可以是CPU外的模塊的組成部分,或者是CPU自身的組成部分。CPU包含一個計數(shù)器CIC(完成的指令計數(shù)器),用于對CPU已完整執(zhí)行的指令或機器指令進行計數(shù)。CPU另外還包含一個寄存器MIR(最大指令寄存器),該寄存器由一個支持仿真Lockstep工作的軟件(ELSO)來寫。
另外,CPU還具有一個比較器K,其將被執(zhí)行過的指令數(shù)量、也即計數(shù)器CIC與寄存器MIR進行比較,并在相等的情況下例如產(chǎn)生一個中斷請求,由其根據(jù)寄存器MIR所預(yù)定的指令數(shù)量來中斷指令執(zhí)行,并將CPU切換到另一工作模式。在該工作模式下,例如執(zhí)行合適的微代碼,或者轉(zhuǎn)移到一個中斷服務(wù)例程,或者按每個硬件信號指示該同步點的到達。于是在該工作模式下,為冗余的CPU如此地提供外部事件,使得在離開該工作模式之后所有的CPU都能同樣地分析該事件,并由此按照順序執(zhí)行同樣的指令。
例如,在達到由寄存器MIR所給定的機器指令數(shù)量之后,CPU轉(zhuǎn)移到一個中斷服務(wù)例程,在該例程中詢問通過所述CPU的硬件保持的中斷信號的狀態(tài),使得有時在稍晚的時間點上提出該詢問的冗余CPU收到相同的消息。該詢問例如是對中斷寄存器的讀訪問。該讀訪問象上文那樣被處理,由此確保所有CPU讀取相同的中斷矢量,并引入相同的動作。
在離開該特殊的工作模式之前將計數(shù)器CIC復(fù)位。接著跳回到因達到寄存器MIR所給定的計數(shù)值CIC而發(fā)生中斷的程序位置。此后CPU再執(zhí)行由寄存器MIR所給定數(shù)量的機器指令,并在計數(shù)器CIC達到寄存器值MIR時切換模式,由此能接受外部事件。
例如,一個支持仿真Lockstep工作的軟件ELSO能把寄存器MIR置為值10.000。于是,以5GHz時鐘頻率工作并平均每個時鐘執(zhí)行一個機器指令(時鐘長度1/200ps)的CPU將在指令執(zhí)行2μs之后被中斷,并實現(xiàn)與外部事件的同步。
直接的存儲器訪問DMA在DMA事務(wù)(直接存儲器訪問)中,一個I/O單元能夠直接對主存儲器進行讀和寫訪問。I/O單元和CPU的訪問的時間關(guān)系沒有被給出。如果CPU在DMA轉(zhuǎn)移期間訪問相同的存儲區(qū),則處理單元可能喪失其準(zhǔn)同步的工作方式,因為處理單元的主存儲器在訪問時間點上沒有必要再相同。
因此對于DMA事務(wù)必須保證,將一個在所有的CPU上在指令執(zhí)行的相同位置到達的通知發(fā)送給CPU。為此在以下示出了多個解決方案。
-例如可以按如下方式來產(chǎn)生該通知,即在DMA轉(zhuǎn)移結(jié)束后由I/O單元產(chǎn)生一個中斷,由該中斷告訴CPU該轉(zhuǎn)移已結(jié)束和再次釋放被轉(zhuǎn)移的存儲區(qū)。作為中斷的結(jié)果,讀出源、也即I/O單元的中斷狀態(tài)。通過兩個單元的I/O總線(例如PCI總線)的這種讀取,迫使事務(wù)產(chǎn)生串行化,使得由I/O單元產(chǎn)生的數(shù)據(jù)按順序被確保出現(xiàn)在所有處理單元的主存儲器中。
-在另一改進方案中,可以在把處理單元的CPU產(chǎn)生的指令傳送給I/O單元時通過CPU在寄存器中產(chǎn)生一個錄入項,由此觸發(fā)DMA轉(zhuǎn)移。作為替代方案,由CPU和I/O單元同時使用的腳本或列表可以作為本地存儲器出現(xiàn)在I/O單元中。于是,CPU的可能的訪問就象一個存儲器映射的讀或?qū)懼噶顏磉M行,并且確保了所有的CPU利用同樣的數(shù)據(jù)工作。
在另一方向上,如果由一個或多個I/O單元產(chǎn)生的CPU指令描述符應(yīng)該出現(xiàn)在處理單元PRO的主存儲器中,而且由CPU利用輪詢方法讀出,那么CPU就讀取一個所謂的I/O鎖定寄存器。據(jù)此,均衡器至少再也不把I/O單元的寫事務(wù)發(fā)送到處理單元PRO的本地主存儲器中,而且最后由I/O單元發(fā)送的寫事務(wù)通過均衡器被寫入到所有處理單元的本地主存儲器中。這常被稱為“刷新”(沖洗)。由此,就I/O單元產(chǎn)生的寫事務(wù)而言,確保了所有處理單元的主存儲器內(nèi)的相同內(nèi)容。然后讀取所有CPU的主存儲器內(nèi)的存儲位置,其值例如指示了I/O指令的結(jié)束。然后,重新讀或?qū)慖/O鎖定寄存器,或者讀或?qū)懸粋€I/O自由寄存器,以便通過I/O單元再次實現(xiàn)對主存儲器的寫訪問。
-在第二改進方案中,當(dāng)由一個或多個CPU產(chǎn)生的I/O單元指令描述符應(yīng)出現(xiàn)在PRO的主存儲器中、并且由CPU按輪詢方法讀出時,可以采用以下方法由CPU讀取一個所謂的I/O鎖定存儲器。然后,均衡器至少不再向處理單元的主存儲器發(fā)送I/O單元的讀事務(wù)。然后,所有CPU的主存儲器的存儲位置被寫入以下值,該值表現(xiàn)為I/O指令的觸發(fā)器。此后,重新讀或?qū)懰龅腎/O鎖定寄存器,或者讀或?qū)懸粋€I/O自由寄存器,以便通過I/O單元再次實現(xiàn)對主存儲器的讀訪問。
數(shù)據(jù)比較由I/O單元從主存儲器讀取的所有數(shù)據(jù)都通過所有的均衡器從所連接的處理單元的主存儲器中完整地、或作為標(biāo)記讀出,且被發(fā)送給與所請求的I/O單元相連接的均衡器,再由該均衡器進行比較。作為替代方案,其它的均衡器同樣可以進行比較。在相同的情況下,數(shù)據(jù)被繼續(xù)傳送給I/O單元。如果識別為不同,則必要時采取一種多數(shù)判定、例如“從3取2”,并分離和診斷故障單元。
由處理單元的CPU產(chǎn)生的所有數(shù)據(jù)被完整地或作為標(biāo)記被發(fā)送給與目標(biāo)I/O單元相連的均衡器,并由該均衡器進行比較。作為替代方案,同樣可以由其它的單元進行比較。在相同的情況下,把數(shù)據(jù)繼續(xù)傳遞給I/O單元。如果出現(xiàn)不同,則必要時采取一種多數(shù)判定、例如“從3取2”,并分離和診斷故障單元。
所有通過處理單元的CPU產(chǎn)生的讀請求(例如用讀命令、地址和屬性來表征)完全地、或作為標(biāo)記被發(fā)送給與源相連的均衡器,并由該均衡器進行比較。作為替代方案,同樣可以由其它的單元進行比較。在相同的情況下,執(zhí)行讀事務(wù),并把讀出的數(shù)據(jù)發(fā)送給所有的均衡器。如果出現(xiàn)不同,則必要時采取一種多數(shù)判定、例如“從3取2”,并分離和診斷故障單元。
在仿真Lockstep中,CPU的讀和寫事務(wù)將并不就其本地主存儲器MEM而被比較,因為它們可能是完全不同的,例如因為CPU的不同的猜測性訪問或因為不同的高速緩存器特性等緣故。為了校驗不同處理單元PRO的存儲區(qū)內(nèi)容的等同性,必須通過例如一個例行軟件在一個時間點觸發(fā)校驗,在該時間點可以確保存儲器內(nèi)容在無故障狀態(tài)下是一致的,并且在校驗的時段內(nèi)保持一致。存儲器校驗本身可以通過軟件來實現(xiàn),也就是說由軟件/CPU讀取例如一個存儲區(qū),求取校驗和,并比較由不同處理單元求出的校驗和。但存儲器校驗也可以通過硬件以如下方式來實現(xiàn),即例如由布置在均衡器中的裝置來讀取所連接的處理單元的存儲器,并求出校驗和和相互比較。
具有共享存儲器的多處理器結(jié)構(gòu)仿真Lockstep工作也適合于同步多個處理單元對一個共同的存儲器(共享存儲器)CMEM的存儲器訪問和適合于執(zhí)行上述的數(shù)據(jù)比較,前提是,事務(wù)必須滿足文章開頭所說的邊緣條件;因此例如非高速緩存的存儲器事務(wù)。
因此在一種改進方案中可以定義由多個處理器單元(具有本地存儲器)的多處理器配置,它們?nèi)磕軌蛟L問一個共同的存儲器CMEM。在此,出于冗余的原因和為了故障識別,每個處理器單元被加倍,也就是說,一個處理器單元由兩個相同的處理單元PRO(未示出)組成,后者按上述的方式并行地執(zhí)行所有的任務(wù),并且還在訪問共同的存儲器時同步,并在此執(zhí)行數(shù)據(jù)比較。
權(quán)利要求
1.用于同步相同或不同的冗余處理單元(PRO0,PRO1)的方法,所述的處理單元處理相同的指令序列并同步或異步地被定時,據(jù)此,向所述處理單元(PRO0,PRO1)外部起作用的事務(wù)由被分配給所述處理單元(PRO0,PRO1)的模塊(EQ0,EQ1)用來同步所述的處理單元(PRO0,PRO1),其方式是,所述的處理單元分別通過所述分配的模塊被置為等候狀態(tài),直到所有處理單元的指令執(zhí)行已獲得當(dāng)前的事務(wù)。
2.如權(quán)利要求1所述的方法,其特征在于通過所述的模塊(EQ0,EQ1)經(jīng)連接(L0,L1)傳輸表征所述事務(wù)的參數(shù)來同步所述的處理單元(PRO0,PRO1)。
3.如權(quán)利要求2所述的方法,其特征在于通過以下方式來執(zhí)行讀事務(wù),即由分配給處理單元的模塊將處理單元置為等候狀態(tài)直到需要讀取的數(shù)據(jù)到達,并且把讀事務(wù)的一個或多個參數(shù)發(fā)送給與事務(wù)目標(biāo)(I/O0,I/O1,MEM0,MEM1,REG0,REG1,CMEM)最直接相連的模塊,其中,由與事務(wù)目標(biāo)最直接相連的模塊接收其它模塊的一個或多個參數(shù)和一個或多個本地產(chǎn)生的參數(shù),并進行比較,在一致的情況下執(zhí)行所述的讀事務(wù)和把讀取的數(shù)據(jù)發(fā)送給所有的模塊,然后由所有的模塊把讀取的數(shù)據(jù)傳送給所分配的處理單元和促使指令執(zhí)行的繼續(xù)。
4.如權(quán)利要求3所述的方法,其特征在于通過以下方式執(zhí)行數(shù)據(jù)比較以校驗數(shù)據(jù)的完整性,即有規(guī)則地或根據(jù)請求從主存儲器(MEM0,MEM1)讀取數(shù)據(jù)區(qū)并比較其參數(shù),其中通過所選擇的或通過所有的模塊來進行該比較。
5.如權(quán)利要求2所述的方法,其特征在于通過以下方式來執(zhí)行寫事務(wù),即由分配給處理單元的模塊將處理單元置為等候狀態(tài)直到寫過程結(jié)束,并且把寫事務(wù)的一個或多個參數(shù)發(fā)送給與事務(wù)目標(biāo)(I/O0,I/O1,MEM0,MEM1,REG0,REG1,CMEM)最直接相連的模塊,其中,由與事務(wù)目標(biāo)最直接相連的模塊接收其它模塊的一個或多個參數(shù)和一個或多個本地產(chǎn)生的參數(shù),并進行比較,在一致的情況下執(zhí)行所述的寫事務(wù)和把完成的寫過程回復(fù)給所有的模塊,然后由所有的模塊促使所分配的處理單元繼續(xù)指令的執(zhí)行。
6.如權(quán)利要求2所述的方法,其特征在于通過臨時存儲外部事件來處理外部事件,其中在處理單元的特殊工作模式中調(diào)用該存儲的外部事件以通過處理單元的至少各一個執(zhí)行單元來處理,而且所述的處理單元響應(yīng)于滿足由指令所預(yù)給定或固定給定的條件而進入該工作模式,并通過所述的模塊(EQ0,EQ1)延遲指令執(zhí)行的繼續(xù),直到所有的處理單元已結(jié)束該特殊工作模式。
7.如權(quán)利要求6所述的方法,其特征在于如果所述處理單元的比較器單元(K)測得計數(shù)單元(CIC)與寄存器單元(MIR)一致,則執(zhí)行到所述特殊工作模式的切換,其中所述寄存器單元(MIR)的內(nèi)容可通過指令預(yù)給定,并且對于所有的處理單元(PRO0,PRO1)都是相同的,所述的計數(shù)單元(CIC)包含有從最后切換到所述特殊工作模式以來由執(zhí)行單元所執(zhí)行的指令數(shù)量。
8.如權(quán)利要求6或7所述的方法,其特征在于由輸送給所述處理單元的外部事件觸發(fā)一個隨事件矢量的讀事務(wù)開始的事件處理例程,通過以下方式來執(zhí)行讀事務(wù),即由分配給處理單元的模塊將處理單元置為等候狀態(tài)直到需要讀取的數(shù)據(jù)到達,并且把讀事務(wù)的一個或多個參數(shù)發(fā)送給與事務(wù)目標(biāo)(I/O0,I/O1,MEM0,MEM1,REG0,REG1,CMEM)最直接相連的模塊,其中,由與事務(wù)目標(biāo)最直接相連的模塊接收其它模塊的一個或多個參數(shù)和一個或多個本地產(chǎn)生的參數(shù),并進行比較,在一致的情況下執(zhí)行所述的讀事務(wù)和把讀取的數(shù)據(jù)發(fā)送給所有的模塊,然后由所有的模塊把讀取的數(shù)據(jù)傳送給所分配的處理單元和促使指令執(zhí)行的繼續(xù)。
9.如權(quán)利要求1或2所述的方法,其特征在于通過以下方式進行直接的存儲器訪問以便把數(shù)據(jù)從存儲器傳輸?shù)捷斎?輸出模塊(I/O0,I/O1),即通過利用寄存器中的錄入項把由處理單元產(chǎn)生的指令傳輸給輸入/輸出模塊來啟動所述直接的存儲器訪問。
10.如權(quán)利要求1或2所述的方法,其特征在于通過以下方式進行直接的存儲器訪問以便把數(shù)據(jù)從輸入/輸出模塊(I/O0,I/O1)傳輸?shù)酱鎯ζ髦?在第一步驟中把一個由輸入/輸出模塊產(chǎn)生的描述符存放到存儲器中,并由處理單元用輪詢方法讀出,-在第二步驟中通過處理單元讀取所述模塊(EQ0,EQ1)之一內(nèi)的寄存器,以促使不再允許輸入/輸出模塊在存儲器內(nèi)進行寫事務(wù),-在第三步驟中通過所述的模塊(EQ0,EQ1)把最后由輸入/輸出模塊發(fā)送的寫事務(wù)寫入到所有處理單元的存儲器中,-在第四步驟中由所有處理單元讀取存儲器內(nèi)的一個存儲位置,該存儲位置的值指示了直接存儲器訪問的結(jié)束,以及-在第五步驟中重新讀取所述的寄存器,或者讀或?qū)懥硪粋€寄存器,以便通過I/O單元再次對主存儲器實現(xiàn)寫訪問。
11.如權(quán)利要求1或2所述的方法,其特征在于通過以下方式進行直接的存儲器訪問以便在輸入/輸出模塊(I/O0,I/O1)和存儲器之間進行數(shù)據(jù)傳輸-在第一步驟中通過處理單元讀取所述模塊(EQ0,EQ1)之一內(nèi)的寄存器,以促使不再允許輸入/輸出模塊在存儲器內(nèi)進行讀事務(wù),-在第二步驟中把一個由處理單元產(chǎn)生的描述符存放到存儲器中,并且該描述符可由一個或多個輸入/輸出模塊(I/O0,I/O1)用輪詢方法讀出,-在第三步驟中重新讀取所述的寄存器,或者讀或?qū)懥硪粋€寄存器,以便通過I/O單元再次對主存儲器實現(xiàn)讀訪問,以及-在第四步驟中由一個或多個輸入/輸出模塊(I/O0,I/O1)讀取存儲器內(nèi)的一個存儲位置,該存儲位置的值指示了直接存儲器訪問的開始。
12.如權(quán)利要求3-7之一所述的方法,其特征在于當(dāng)確定其它模塊的參數(shù)以及一個或多個本地產(chǎn)生的參數(shù)有偏差時,由與事務(wù)目標(biāo)最直接相連的模塊引入故障處理。
13.如權(quán)利要求12所述的方法,其特征在于由所述的故障處理停止所述需執(zhí)行的事務(wù),并啟動一個例程來檢測故障單元、隔離該故障單元和/或重建同步。
14.如權(quán)利要求12所述的方法,其特征在于在存在N個處理單元的情況下,故障處理采取從N取N-M(M<N)的多數(shù)判定,并去活有偏差的處理單元。
15.如權(quán)利要求2-14之一所述的方法,其特征在于通過以下方式對各個處理單元進行故障識別,即對于從所述的一個或多個參數(shù)在處理單元的模塊中最早地變得可用時開始的任一事務(wù),放棄沒有到達的或在預(yù)定的時間過去之后才到達的參數(shù),其中利用沒有到達的或在預(yù)定的時間過去之后才到達的參數(shù)來為處理單元啟動故障處理。
16.如權(quán)利要求1-15之一所述的方法,其特征在于由所述的模塊(EQ0,EQ1)采用以下的事務(wù)來同步所述的處理單元(PRO0,PRO1)-與被分配給相應(yīng)處理單元(PRO0,PRO1)的本地存儲器(MEM0,MEM1)有關(guān)的不可臨時存儲的存儲器事務(wù),和/或-向輸入/輸出模塊(I/O0,I/O1)的輸入/輸出事務(wù),和/或-向外部寄存器(REG0,REG1)的存儲器映射的輸入/輸出事務(wù),和/或-與處理單元(PRO0,PRO1)的共用存儲器(CMEM)有關(guān)的不可臨時存儲的存儲器事務(wù)。
17.如權(quán)利要求1-16之一所述的方法,其特征在于由所述的模塊(EQ0,EQ1)通過連接(L0,L1)傳輸以下事務(wù)參數(shù)以便同步處理單元(PRO0,PRO1)-輸入/輸出地址,和/或-存儲器地址,和/或-需轉(zhuǎn)移的數(shù)據(jù),和/或-事務(wù)的類型,和/或-根據(jù)輸入/輸出地址和/或存儲器地址和/或需轉(zhuǎn)移的數(shù)據(jù)和/或事務(wù)的類型求出的標(biāo)記。
18.用于同步冗余數(shù)據(jù)處理系統(tǒng)的被同步或異步地定時的處理單元(PRO0,PRO1)的裝置,具有以下部分-至少兩個處理單元(PRO0,PRO1),用于處理相同的指令序列,-分別專門地分配給所述處理單元的外圍設(shè)備(MEM0,MEM1),用于存儲和/或交換數(shù)據(jù),-能由所有處理單元共用的外圍設(shè)備(I/O0,I/O1,REG0,REG1,CMEM),用于存儲和/或交換數(shù)據(jù),-被分配給所述處理單元的模塊(EQ0,EQ1),其中所述的模塊(EQ0,EQ1)具有用于監(jiān)視事務(wù)的工具、用于觸發(fā)所分配的處理單元的等候狀態(tài)直到所有的處理單元獲得當(dāng)前的事務(wù)的工具、以及用于將事務(wù)參數(shù)傳輸給其它模塊的工具(L0,L1)。
19.如權(quán)利要求18所述的裝置,其特征在于每個處理單元具有以下部分-至少一個執(zhí)行單元(EU),-至少一個計數(shù)器單元(CIC),用于計數(shù)從最后切換到特殊工作模式以來所述執(zhí)行單元所執(zhí)行的指令,-至少一個寄存器單元(MIR),其內(nèi)容可通過指令預(yù)給定或固定地給定,-至少一個比較器單元(K),用于響應(yīng)于所述計數(shù)器單元(CIC)與寄存器單元(MIR)的一致性而把執(zhí)行單元(EU)切換到特殊工作模式,其中在所述的特殊工作模式下被臨時存儲的、且需要被輸送給處理器模塊和影響處理器模塊的外部事件通過所述的處理器模塊進行調(diào)用。
20.如權(quán)利要求18或19所述的裝置,其特征在于所述的模塊(EQ0,EQ1)具有借助于以下事務(wù)同步處理單元的工具-與被分配給相應(yīng)處理單元(PRO0,PRO1)的本地存儲器(MEM0,MEM1)有關(guān)的不可臨時存儲的存儲器事務(wù),和/或-向輸入/輸出模塊(I/O0,I/O1)的輸入/輸出事務(wù),和/或-向外部寄存器(REG0,REG1)的存儲器映射的輸入/輸出事務(wù),和/或-與處理單元(PRO0,PRO1)的共用存儲器(CMEM)有關(guān)的不可臨時存儲的存儲器事務(wù)。
21.如權(quán)利要求18-20之一所述的裝置,其特征在于所述的模塊具有求出代表事務(wù)的以下參數(shù)的工具-輸入/輸出地址,和/或-存儲器地址,和/或-需轉(zhuǎn)移的數(shù)據(jù),和/或-事務(wù)的類型,和/或-根據(jù)輸入/輸出地址和/或存儲器地址和/或需轉(zhuǎn)移的數(shù)據(jù)和/或事務(wù)的類型求出的標(biāo)記。
全文摘要
為冗余系統(tǒng)設(shè)立多倍同樣構(gòu)造的、以Lockstep工作方式的處理器板。實現(xiàn)Lockstep系統(tǒng)的基本前提是,所有包含在板子中的組件、也即CPU、芯片組、主存儲器等具有決定性的特性。在此,決定性的特性意味著,當(dāng)這些組件在相同的時間收到相同的激勵時,它們在故障狀態(tài)下將在相同的時間點提供相同的結(jié)果。另外,決定性的特性以采用時鐘同步的接口為前提。在系統(tǒng)中,異步接口在許多情況下將導(dǎo)致某種時間不準(zhǔn)確性,由此不能保持系統(tǒng)的時鐘同步的總特性。但為了能執(zhí)行Lockstep工作,本發(fā)明規(guī)定了一種不同于已知軟件解決方案的、用硬件實現(xiàn)的同步相同或不同的冗余處理單元(PRO
文檔編號G06F1/12GK1682195SQ03821646
公開日2005年10月12日 申請日期2003年8月1日 優(yōu)先權(quán)日2002年9月12日
發(fā)明者P·佩勒斯卡, D·施納貝爾, A·韋伯 申請人:西門子公司