亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

同步或異步定時(shí)的處理單元的同步方法和電路裝置的制作方法

文檔序號(hào):6416394閱讀:173來(lái)源:國(guó)知局
專利名稱:同步或異步定時(shí)的處理單元的同步方法和電路裝置的制作方法
在電信系統(tǒng)、數(shù)據(jù)中心和其它可用性高的系統(tǒng)中,在許多情形下會(huì)采用多達(dá)幾百個(gè)所謂的處理器板來(lái)安排所需要的計(jì)算功率。這種處理器板典型地由處理器或CPU(中央處理單元)、芯片組、主存儲(chǔ)器和外圍模塊組成。
一個(gè)常規(guī)處理器板每年出現(xiàn)硬件故障的概率處于一位數(shù)的百分比范圍內(nèi)。由于有大量的處理器板被綜合到一個(gè)系統(tǒng)中,所以任意一個(gè)硬件組件都會(huì)產(chǎn)生與年周期有關(guān)的高故障概率,其中如果不采取合適的預(yù)防措施,這種單個(gè)的故障可能引起整個(gè)系統(tǒng)的故障。
尤其在電信系統(tǒng)處,越來(lái)越多地也在數(shù)據(jù)中心處,要求有高度的系統(tǒng)可用性。這譬如用百分比來(lái)表達(dá),或規(guī)定每年最多允許的故障時(shí)間。典型的要求例如是可用性大于99.999%,或不可用性最多為每年幾分鐘。由于在硬件故障時(shí)更換處理器板或重建業(yè)務(wù)需要幾十分鐘到幾小時(shí)的時(shí)間,因此必須針對(duì)系統(tǒng)面上的硬件故障采取相應(yīng)的預(yù)防措施,以便能滿足所述的系統(tǒng)可用性要求。
為遵守這種高系統(tǒng)可用性的要求,已知的解決方案是設(shè)立冗余的系統(tǒng)組件。已知的方法可以分為兩大類基于軟件的方法和基于硬件的方法。
在基于軟件的方法中典型地采用一種媒件。但這種基于軟件的解決方案被證明是欠缺靈活性的,因?yàn)樵谶@種系統(tǒng)中只能采用已經(jīng)為該特殊的冗余方案所開發(fā)的(應(yīng)用)軟件。這大大地限制了可使用的(應(yīng)用)軟件的范圍。此外,為軟件冗余原理開發(fā)應(yīng)用軟件實(shí)際上是極其費(fèi)事的,其中這種開發(fā)另外會(huì)帶來(lái)復(fù)雜的測(cè)試方法。
基于硬件的方法的基本原理在于,把冗余包封到硬件平面上,使得這對(duì)于軟件而言是透明的。由硬件自身管理的冗余的主要優(yōu)點(diǎn)是,應(yīng)用軟件不會(huì)受到冗余原理的損害,因此在大多數(shù)情況下能夠采用任何一個(gè)軟件。
對(duì)于能容忍硬件故障的系統(tǒng)-其冗余對(duì)軟件是透明的-來(lái)說(shuō),在實(shí)踐中經(jīng)常采取的原理是所謂的Lockstep(步鎖)原理。Lockstep的意思是,相同結(jié)構(gòu)的硬件、例如兩個(gè)板,是同樣地時(shí)鐘同步地運(yùn)行的。通過(guò)硬件機(jī)制來(lái)確保冗余的硬件在給定的時(shí)間點(diǎn)上經(jīng)受相同的輸入激勵(lì),并由此必定產(chǎn)生相同的結(jié)果。比較冗余組件的結(jié)果,在有偏差的情況下確定存在故障并引入合適的措施(向操作人員告警,部分或全部地進(jìn)行安全性關(guān)斷,系統(tǒng)重啟)。
實(shí)現(xiàn)Loctstep系統(tǒng)的基本前提條件是,所有包含在板子中的組件、也即CPU、芯片組、主存儲(chǔ)器等具有時(shí)鐘決定性的特性。在此,時(shí)鐘決定性的特性意味著,當(dāng)這些組件在相同的時(shí)間點(diǎn)收到相同的激勵(lì)時(shí),它們?cè)跓o(wú)故障狀態(tài)下將在相同的時(shí)間點(diǎn)提供相同的結(jié)果。另外,時(shí)鐘決定性的特性以采用時(shí)鐘同步的接口為前提。在系統(tǒng)中,異步接口在許多情況下將導(dǎo)致某種時(shí)間不準(zhǔn)確性,由此不能保持系統(tǒng)的時(shí)鐘同步的總特性。
但對(duì)芯片組和CPU而言,異步接口恰好在提高功能性方面提供了技術(shù)上的優(yōu)點(diǎn),由此不可能按照Lockstep方法實(shí)現(xiàn)時(shí)鐘同步的工作方式。另外,現(xiàn)代的CPU越來(lái)越多地采用不能實(shí)現(xiàn)時(shí)鐘同步工作方式的機(jī)制。這例如是內(nèi)部的、對(duì)外為不可見(jiàn)的校正措施,例如可能導(dǎo)致指令處理產(chǎn)生稍微延遲的、在訪問(wèn)高速緩存器時(shí)對(duì)內(nèi)部可糾正錯(cuò)誤的校正,或者指令的推測(cè)性執(zhí)行。另一例子是將來(lái)越來(lái)越多地實(shí)現(xiàn)CPU內(nèi)部的、無(wú)時(shí)鐘的執(zhí)行單元,這些執(zhí)行單元在速度和損耗功率方面能取得巨大的優(yōu)點(diǎn),但阻止了CPU的時(shí)鐘同步的或決定性的工作。
US專利文獻(xiàn)5226152公開過(guò)一種用于冗余處理器的功能性的Lockstep裝置,其中所有的處理器被連接到一個(gè)邏輯裝置上,由該邏輯裝置同步處理器對(duì)外圍設(shè)備的訪問(wèn),并實(shí)現(xiàn)冗余處理器的功能性Lockstep工作。
然而,就文章開頭所說(shuō)的處理器板而言,利用這種具有中央邏輯裝置的裝置會(huì)產(chǎn)生巨大的缺點(diǎn),即除了所述的處理器板外,還需要分別為某個(gè)數(shù)量的處理器板設(shè)立一個(gè)邏輯板,然后由該邏輯板控制外圍設(shè)備訪問(wèn)的同步。但這種邏輯板那里必須得到監(jiān)視,因而可能導(dǎo)致復(fù)雜的監(jiān)視機(jī)制。
換句話說(shuō),雖然US5226152的裝置看起來(lái)適合于為具有多個(gè)處理器的單板系統(tǒng)設(shè)立功能性Lockstep,但這種裝置并不適合于本文開頭所說(shuō)的那種具有多個(gè)相同處理器板的系統(tǒng)。
因此本發(fā)明的任務(wù)在于提供一種方法,用于保障Lockstep方法的優(yōu)點(diǎn)和考慮技術(shù)的發(fā)展。
該任務(wù)通過(guò)如權(quán)利要求1的特征所述的、同步或異步定時(shí)的處理單元的同步方法來(lái)解決,以及通過(guò)如權(quán)利要求13的特征所述的、同步或異步定時(shí)的處理單元的同步電路裝置來(lái)解決。
優(yōu)選的實(shí)施方案由從屬權(quán)利要求給出。
根據(jù)本發(fā)明規(guī)定了一種用于同步相同或不同的冗余處理單元PRO0,PRO1的方法,所述的處理單元處理相同的指令序列并同步或異步地被定時(shí),據(jù)此,向所述處理單元PRO0,PRO1外部起作用的事務(wù)被分配給所述處理單元PRO0,PRO1的模塊EQ0,EQ1用來(lái)同步所述的處理單元PRO0,PRO1,其方式是,所述的處理單元分別通過(guò)所述分配的模塊被延遲和由此平衡,直到所有處理單元的指令執(zhí)行已獲得當(dāng)前的事務(wù)。
在此可以采用以下的事務(wù)來(lái)進(jìn)行同步-與被分配給相應(yīng)處理單元PRO0,PRO1的本地存儲(chǔ)器MEM0,MEM1有關(guān)的不可臨時(shí)存儲(chǔ)的存儲(chǔ)器事務(wù),和/或-向輸入/輸出模塊I/O0,I/O1的輸入/輸出事務(wù),和/或-向外部寄存器REG0,REG1的存儲(chǔ)器映射的輸入/輸出事務(wù),和/或-與處理單元PRO0,PRO1的共用存儲(chǔ)器CMEM有關(guān)的不可臨時(shí)存儲(chǔ)的存儲(chǔ)器事務(wù)。
在此可以通過(guò)以下方式來(lái)執(zhí)行讀事務(wù),即由分配給處理單元的模塊將處理單元置為等候狀態(tài)直到到達(dá)需要讀取的數(shù)據(jù),并且把讀事務(wù)的一個(gè)或多個(gè)參數(shù)發(fā)送給與事務(wù)目標(biāo)I/O0,I/O1,MEM0,MEM1,REG0,REG1,CMEM最直接相連的模塊,其中,由與事務(wù)目標(biāo)最直接相連的模塊接收其它模塊的一個(gè)或多個(gè)參數(shù)和一個(gè)或多個(gè)本地產(chǎn)生的參數(shù),并進(jìn)行比較,在一致的情況下執(zhí)行所述的讀事務(wù)和把讀取的數(shù)據(jù)發(fā)送給所有的模塊,然后由所有的模塊把讀取的數(shù)據(jù)傳送給所分配的處理單元和允許指令執(zhí)行的繼續(xù)。
在此可以通過(guò)以下方式來(lái)執(zhí)行寫事務(wù),即由分配給處理單元的模塊將處理單元置為等候狀態(tài)直到寫過(guò)程結(jié)束,并且把寫事務(wù)的參數(shù)發(fā)送給與事務(wù)目標(biāo)I/O0,I/O1,MEM0,MEM1,REG0,REG1,CMEM最直接相連的模塊,其中,由與事務(wù)目標(biāo)最直接相連的模塊接收其它模塊的一個(gè)或多個(gè)參數(shù)和一個(gè)或多個(gè)本地產(chǎn)生的參數(shù),并進(jìn)行比較,在一致的情況下執(zhí)行所述的寫事務(wù)和把產(chǎn)生的寫過(guò)程回復(fù)給所有的模塊,然后由所有的模塊允許所分配的處理單元繼續(xù)指令的執(zhí)行。
優(yōu)選地,如果外部事件的處理通過(guò)從一個(gè)存儲(chǔ)位置或一個(gè)寄存器讀取一個(gè)值、例如中斷矢量而被引入,并同時(shí)確保所有處理單元在指令執(zhí)行的相同位置處獲得外部事件,則可以結(jié)合本發(fā)明的同步方法根據(jù)事務(wù)來(lái)處理外部事件、例如中斷。引入事件處理的讀事務(wù)如上文所述那樣來(lái)進(jìn)行,譬如借助于一個(gè)中斷確認(rèn)周期。
同步外部事件的合適方法在歐洲專利申請(qǐng)02020602中講述過(guò),并規(guī)定臨時(shí)存儲(chǔ)外部事件,其中在處理單元的特殊工作模式中調(diào)用該存儲(chǔ)的外部事件以通過(guò)處理單元的至少各一個(gè)執(zhí)行單元來(lái)處理,而且所述的處理單元響應(yīng)于滿足由指令所預(yù)給定或固定給定的條件而進(jìn)入該工作模式,并通過(guò)所述的模塊EQ0,EQ1延遲指令執(zhí)行的繼續(xù),直到所有的處理單元已結(jié)束該特殊工作模式。
如果所述處理單元的比較器單元K測(cè)得計(jì)數(shù)單元CIC與寄存器單元MIR一致,則例如執(zhí)行到所述特殊工作模式的切換,其中所述寄存器單元MIR的內(nèi)容可通過(guò)指令預(yù)給定,并且對(duì)于所有的處理單元PRO0,PRO1都是相同的,所述的計(jì)數(shù)單元CIC包含有從最后切換到所述特殊工作模式以來(lái)由執(zhí)行單元所執(zhí)行的指令數(shù)量。
當(dāng)與事務(wù)目標(biāo)最直接相連的模塊確定其它模塊的參數(shù)以及一個(gè)或多個(gè)本地產(chǎn)生的參數(shù)有偏差時(shí),則可以引入故障處理。在此,故障處理可以停止所述需執(zhí)行的事務(wù),并啟動(dòng)一個(gè)例程用于診斷、隔離故障和/或必要時(shí)重建同步。在存在N(例如N=3)個(gè)處理單元的情況下,可以采取從N取N-1的多數(shù)判定,或一般采取從N取N-M的多數(shù)判定,并去活有偏差的處理單元。
另外可以通過(guò)以下方式對(duì)各個(gè)處理單元進(jìn)行故障識(shí)別,即對(duì)于從所述的一個(gè)或多個(gè)參數(shù)在處理單元的模塊中最早地變得可用時(shí)開始的任一事務(wù),放棄沒(méi)有到達(dá)的或在預(yù)定的時(shí)間過(guò)去之后才到達(dá)的參數(shù),其中利用沒(méi)有到達(dá)的或在預(yù)定的時(shí)間過(guò)去之后才到達(dá)的參數(shù)來(lái)為處理單元啟動(dòng)故障處理。
本發(fā)明另外還規(guī)定了一種用于同步被同步或異步地定時(shí)的處理單元PRO0,PRO1的裝置,具有以下部分-至少兩個(gè)處理單元PRO0,PRO1,用于處理相同的指令序列,-分別專門地分配給所述處理單元的外圍設(shè)備MEM0,MEM1,用于存儲(chǔ)和/或交換數(shù)據(jù),-能由所有處理單元共用的外圍設(shè)備I/O0,I/O1,REG0,REG1,CMEM,用于存儲(chǔ)和/或交換數(shù)據(jù),-被分配給所述處理單元的模塊EQ0,EQ1,其中所述的模塊EQ0,EQ1具有用于監(jiān)視事務(wù)的工具、用于停止所分配的處理單元直到所有的處理單元獲得當(dāng)前的事務(wù)的工具、以及用于將事務(wù)參數(shù)傳輸給其它模塊的工具L0,L1。
在此,所述的模塊EQ0,EQ1具有尤其借助于以下事務(wù)同步處理單元的工具-與被分配給相應(yīng)處理單元PRO0,PRO1的本地存儲(chǔ)器MEM0,MEM1有關(guān)的不可臨時(shí)存儲(chǔ)的存儲(chǔ)器事務(wù),和/或-向輸入/輸出模塊I/O0,I/O1的輸入/輸出事務(wù),和/或-向外部寄存器REG0,REG1的存儲(chǔ)器映射的輸入/輸出事務(wù),和/或-與處理單元PRO0,PRO1的共用存儲(chǔ)器CMEM有關(guān)的不可臨時(shí)存儲(chǔ)的存儲(chǔ)器事務(wù)。
在此,所述的模塊優(yōu)選地具有求出代表事務(wù)的以下參數(shù)的工具-輸入/輸出地址,和/或-存儲(chǔ)器地址,和/或-需轉(zhuǎn)移的數(shù)據(jù),和/或-事務(wù)的類型,和/或-根據(jù)輸入/輸出地址和/或存儲(chǔ)器地址和/或需轉(zhuǎn)移的數(shù)據(jù)和/或事務(wù)的類型求出的標(biāo)記。
為處理諸如中斷等外部事件,處理單元優(yōu)選地具有以下部分-至少一個(gè)執(zhí)行單元EU,-至少一個(gè)計(jì)數(shù)器單元CIC,用于計(jì)數(shù)從最后切換到特殊工作模式以來(lái)所述執(zhí)行單元所執(zhí)行的指令,-至少一個(gè)寄存器單元MIR,其內(nèi)容可通過(guò)指令預(yù)給定或固定地給定,-至少一個(gè)比較器單元K,用于響應(yīng)于所述計(jì)數(shù)器單元CIC與寄存器單元MIR的一致性而把執(zhí)行單元EU切換到特殊工作模式,其中在所述的特殊工作模式下被臨時(shí)存儲(chǔ)的、且需被輸送給處理器模塊和影響處理器模塊的外部事件通過(guò)所述的處理器模塊進(jìn)行調(diào)用。
在此,調(diào)用臨時(shí)存儲(chǔ)的外部事件可以優(yōu)選地借助于軟件、固件、微代碼或硬件來(lái)實(shí)現(xiàn)。
本發(fā)明的主要優(yōu)點(diǎn)在于在容忍硬件故障的平臺(tái)上能夠采用任意新的或已有的軟件,其中在該平臺(tái)中可以采用支持本發(fā)明的處理單元,而對(duì)CPU的時(shí)鐘同步的決定性工作方式?jīng)]有要求。
其它優(yōu)點(diǎn)是-例如由CPU、北橋和本地存儲(chǔ)器構(gòu)成的相互成冗余的處理單元不必恒相地耦合而工作。
-CPU不必相同,這尤其允許在一個(gè)冗余系統(tǒng)中同時(shí)采用不同的CPU級(jí),并且以不同的時(shí)鐘頻率工作。
-CPU在猜測(cè)性地執(zhí)行指令方面可以有不同的特性。
-例如由于在數(shù)據(jù)訛誤地出現(xiàn)α粒子后進(jìn)行的校正,相同CPU的不同CPU內(nèi)部執(zhí)行時(shí)間僅導(dǎo)致在稍微不同的時(shí)間點(diǎn)上獲得同步事件。
由于將來(lái)CPU的時(shí)間不準(zhǔn)確性,在確保時(shí)鐘同步的決定性工作方式時(shí)的上述問(wèn)題只導(dǎo)致在時(shí)間上不正確相關(guān)的指令執(zhí)行。由于CPU在常規(guī)的應(yīng)用中必須對(duì)外部事件作出反應(yīng),譬如對(duì)外圍設(shè)備所產(chǎn)生的中斷或?qū)τ稍O(shè)備已寫入到主存儲(chǔ)器中的數(shù)據(jù)作出反應(yīng),所以必須確保CPU在指令執(zhí)行的相同位置獲知這些事件,因?yàn)榉駝t的話,對(duì)這些事件的分析可能導(dǎo)致冗余CPU的不同程序運(yùn)行。
本發(fā)明負(fù)責(zé)在指令執(zhí)行的相同位置給冗余CPU提供外部的、對(duì)程序運(yùn)行來(lái)說(shuō)重要的事件,例如中斷或由外部設(shè)備產(chǎn)生的數(shù)據(jù),由此能夠仿真所述的Lockstep工作方式。
另外還比較冗余CPU的在指令執(zhí)行的相同位置被提供的輸出事件,并由此認(rèn)可這些事件。與通過(guò)軟件方法根據(jù)處理器外圍設(shè)備實(shí)現(xiàn)同步和數(shù)據(jù)分配的已知方法相反,本發(fā)明是通過(guò)硬件來(lái)實(shí)現(xiàn)的。在此有一個(gè)決定性的優(yōu)點(diǎn)性能影響要比軟件方法低很多倍。所述的方法另外對(duì)于應(yīng)用軟件和操作系統(tǒng)軟件是完全透明的,也即已有的應(yīng)用軟件和操作系統(tǒng)軟件可以不用修改就繼續(xù)被使用。
下面結(jié)合三個(gè)附圖來(lái)詳細(xì)講述本發(fā)明的實(shí)施例。


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