專利名稱:用于交叉檢查系統(tǒng)的基于存儲(chǔ)器的交叉比較的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于運(yùn)行在一個(gè)多處理器配置中的——例如雙重、2取2和三重、3取2配置——或其他多處理器配置中的系統(tǒng)的交叉比較。
背景技術(shù):
隨著CPU時(shí)鐘速度的提升,以及多處理器體系結(jié)構(gòu)變得更為普遍,處理性能的能力已經(jīng)超過(guò)了傳統(tǒng)的RAM的能力。該問(wèn)題的一個(gè)解決方案是采取多端口RAM。
多端口RAM有多種配置,通過(guò)多個(gè)輸入和輸出端口提供對(duì)一個(gè)共享存儲(chǔ)空間的訪問(wèn)。通過(guò)分離的多個(gè)端口同時(shí)向裝置寫(xiě)入多個(gè)數(shù)據(jù)的能力已是日益普遍。當(dāng)數(shù)據(jù)從兩個(gè)或更多個(gè)端口同時(shí)寫(xiě)入到相同的位置時(shí),無(wú)法保證數(shù)據(jù)的完整性。被訪問(wèn)的存儲(chǔ)位置可能包含新數(shù)據(jù)、舊數(shù)據(jù)或某些中間值。為緩和該問(wèn)題,需要另外的邏輯來(lái)實(shí)施仲裁。仲裁是通過(guò)處理器來(lái)協(xié)調(diào)對(duì)存儲(chǔ)位置的訪問(wèn)。
某些數(shù)字計(jì)算系統(tǒng)應(yīng)用,例如,重要和關(guān)鍵業(yè)務(wù)系統(tǒng),需要高度的安全性。例如,為安全操作,一個(gè)飛機(jī)飛行控制計(jì)算機(jī),在整個(gè)飛行過(guò)程中,都依賴于連續(xù)的無(wú)誤差的計(jì)算操作。應(yīng)該認(rèn)識(shí)到無(wú)誤差操作需要在數(shù)字計(jì)算系統(tǒng)內(nèi)的故障排除和故障抑制。另外對(duì)于不斷增加的可靠性的要求,對(duì)于飛行控制和其他重要的系統(tǒng)來(lái)說(shuō)需要一個(gè)有增加的吞吐量的快速計(jì)算系統(tǒng)。
為提供數(shù)據(jù)的完整性,不止一個(gè)處理器用來(lái)確定在總線上同時(shí)傳輸?shù)男畔⑹欠翊嬖诓町?。為得到高度精確的結(jié)果的這種數(shù)據(jù)的比較經(jīng)常被稱為“交叉比較”。例如,通過(guò)交叉比較由不同的處理器產(chǎn)生的計(jì)算結(jié)果,可以提供數(shù)據(jù)的高度完整性。
當(dāng)前的運(yùn)行在一個(gè)多處理器配置中的交叉比較系統(tǒng)運(yùn)行緩慢,主要采用軟件或設(shè)置很復(fù)雜。目前有幾種可行的解決方案。一個(gè)用于雙重系統(tǒng)的解決方案需要一個(gè)并行或串行端口連接。并行端口和串行端口這兩個(gè)方案只支持可以同時(shí)傳輸?shù)挠邢迶?shù)量的數(shù)據(jù)?;诖卸丝诘姆桨高\(yùn)行緩慢和主要采用軟件?;诓⑿卸丝诘姆桨冈谛枰徊姹容^大量的數(shù)據(jù)時(shí)就會(huì)變慢。
另一個(gè)解決方案用于三重系統(tǒng),使用一個(gè)復(fù)雜的硬件設(shè)置或者使用一個(gè)高速串行連接,其主要采用軟件和使用外部連線。當(dāng)實(shí)施為使用外部的、基于機(jī)架的硬件時(shí),設(shè)置復(fù)雜和主要采用硬件。當(dāng)以高速串行通信(以太網(wǎng))實(shí)施時(shí),這種設(shè)置主要采用軟件并且速度受到外部連線的限制。
作為一個(gè)相關(guān)的現(xiàn)有技術(shù)系統(tǒng)的一個(gè)例子,美國(guó)專利號(hào)6,182,196公開(kāi)了一種用于仲裁存儲(chǔ)器訪問(wèn)請(qǐng)求的方法和設(shè)備。存儲(chǔ)器包含一個(gè)比較客戶操作請(qǐng)求的交叉檢查模塊(502)。當(dāng)交叉檢查模塊(502)確定請(qǐng)求試圖同時(shí)地訪問(wèn)一個(gè)存儲(chǔ)器的相同的存儲(chǔ)塊時(shí),交叉檢查(502)在客戶操作請(qǐng)求之間進(jìn)行仲裁。仲裁是基于仲裁規(guī)則并且產(chǎn)生一個(gè)第一存儲(chǔ)器訪問(wèn)請(qǐng)求和一個(gè)第二存儲(chǔ)器訪問(wèn)請(qǐng)求。
作為另外一個(gè)先前系統(tǒng)的例子,美國(guó)專利申請(qǐng)公開(kāi)2002/0010902公開(kāi)了包含嵌入模塊RAM(EBR)的現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)。在一個(gè)實(shí)施方式中,EBR是嵌入在一個(gè)FPGA核中的多端口RAM模塊。EBR用來(lái)增加存儲(chǔ)器的數(shù)量并且實(shí)施分布式可編程功能單元存儲(chǔ)器。在寫(xiě)入端口之間提供仲裁,以及一個(gè)仲裁單元接收存儲(chǔ)器請(qǐng)求信號(hào)并從請(qǐng)求中選出一個(gè)贏家。
發(fā)明內(nèi)容
本發(fā)明的說(shuō)明性的、非限制性的表述可以克服上述缺點(diǎn)和上面未描述的其他缺點(diǎn)。本發(fā)明不是必然地被要求來(lái)克服上述的任何缺點(diǎn),以及本發(fā)明的說(shuō)明性的、非限制性的表述可以不克服上述的任何問(wèn)題。應(yīng)該參考所附加的權(quán)利要求書(shū)來(lái)確定本發(fā)明正確的范圍。
本發(fā)明的示例性表述是一個(gè)運(yùn)行在多處理器配置中的交叉比較方案。本發(fā)明的一個(gè)方面是使用帶內(nèi)置邏輯的一個(gè)多端口RAM來(lái)提供一個(gè)快速和簡(jiǎn)單的數(shù)據(jù)交叉比較方法。多端口RAM可以插入到連接在任何標(biāo)準(zhǔn)或甚至非標(biāo)準(zhǔn)總線上的多處理器單元的底板上。因此,不需要外部硬件或連線。
根據(jù)本發(fā)明的示例性非限制性表述的一個(gè)交叉比較系統(tǒng)采用了緩沖存儲(chǔ)數(shù)據(jù)的方法,只受存儲(chǔ)器訪問(wèn)時(shí)間限制而快速運(yùn)行??梢院?jiǎn)單地實(shí)現(xiàn)該示例性系統(tǒng)并且不需要通信協(xié)議。
在一個(gè)示例性非限制性表述中,系統(tǒng)安裝在一個(gè)單板上并且不需要外部連線。不將此概念約束在任何特別的硬件上,并且它在體系機(jī)構(gòu)和硬件實(shí)現(xiàn)方面對(duì)任何交叉比較數(shù)據(jù)的大小及任何需要的通信速度都是有效的。因此,如果大小和/或速度的要求發(fā)生變化,該示例性系統(tǒng)可以簡(jiǎn)單地通過(guò)更換單元得以升級(jí)。
根據(jù)本發(fā)明的示例性非限制性表述的基于存儲(chǔ)器的交叉比較方案是基于一個(gè)具有其需要的邏輯的多端口RAM,使用了現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)或?qū)S眉呻娐?ASIC)實(shí)現(xiàn)。
根據(jù)本發(fā)明的示例性非限制性表述的多端口RAM,為每個(gè)系統(tǒng)處理器單元提供受控制的寫(xiě)和讀訪問(wèn),從而提供一個(gè)快速和簡(jiǎn)單的數(shù)據(jù)交叉比較方法。在所有的系統(tǒng)處理器單元之間提供完全的隔離。因?yàn)椴豢赡苡袑?duì)任何存儲(chǔ)位置的同時(shí)的訪問(wèn),所以不需要仲裁。在其他選擇之中,示例性系統(tǒng)理想地適用于基于交叉檢查的計(jì)算機(jī)的安全性、關(guān)鍵業(yè)務(wù)或高有效性的系統(tǒng)。
根據(jù)本發(fā)明的說(shuō)明性的、非限制性的表述,為至少具有第一和第二處理器的多處理器計(jì)算機(jī)提供一個(gè)交叉比較系統(tǒng)。該系統(tǒng)包括第一層緩沖存儲(chǔ)器,包含用于存儲(chǔ)來(lái)自于第一處理器的信息的一個(gè)第一存儲(chǔ)區(qū)域和用于存儲(chǔ)來(lái)自于第二處理器的信息的一個(gè)第二存儲(chǔ)區(qū)域。還提供第二層緩沖存儲(chǔ)器。第二層緩沖存儲(chǔ)器包含用于存儲(chǔ)來(lái)自于第一存儲(chǔ)區(qū)域的信息和來(lái)自于第二存儲(chǔ)區(qū)域的信息的一個(gè)第三存儲(chǔ)區(qū)域,以及用于存儲(chǔ)來(lái)自于第一存儲(chǔ)區(qū)域的信息和來(lái)自于第二存儲(chǔ)區(qū)域的信息的一個(gè)第四存儲(chǔ)區(qū)域。來(lái)自于第一存儲(chǔ)區(qū)域器和第二存儲(chǔ)區(qū)域的信息自動(dòng)地傳遞到第三存儲(chǔ)區(qū)域和第四存儲(chǔ)區(qū)域。第一、第二、第三和第四存儲(chǔ)區(qū)域包含至少一個(gè)只是為其各自的存儲(chǔ)區(qū)域分配的緩沖存儲(chǔ)器。
第一處理器從第三存儲(chǔ)區(qū)域讀取信息,并且當(dāng)確定來(lái)自于第二處理器的信息與來(lái)自于比較處理器的信息基本上相同時(shí),則宣布一個(gè)成功的交叉比較。同樣地,第二處理器從第四存儲(chǔ)區(qū)域讀取信息,并且當(dāng)確定來(lái)自于第二處理器的信息與來(lái)自于比較處理器的信息基本上相同時(shí),則宣布一個(gè)成功的交叉比較。
另一個(gè)本發(fā)明的說(shuō)明性的、非限制性的表述,是一種在由多個(gè)處理器同時(shí)寫(xiě)入的多端口存儲(chǔ)器的存儲(chǔ)位置之間進(jìn)行交叉比較的方法,其中為每個(gè)端口提供多個(gè)第一層緩沖存儲(chǔ)器的一個(gè)緩沖存儲(chǔ)器。在該方法的第一步驟中,每個(gè)處理器向?qū)?yīng)于各個(gè)處理器的端口的多個(gè)第一層緩沖存儲(chǔ)器的緩沖存儲(chǔ)器寫(xiě)入需要交叉比較的數(shù)據(jù)。然后將寫(xiě)入到所有第一層緩沖存儲(chǔ)器的數(shù)據(jù)傳遞到多個(gè)第二層緩沖存儲(chǔ)器,多個(gè)第二層緩沖存儲(chǔ)器的每個(gè)緩沖存儲(chǔ)器為多個(gè)第一層緩沖存儲(chǔ)器的每一個(gè)緩沖存儲(chǔ)器提供一個(gè)存儲(chǔ)區(qū)域,向多個(gè)處理器的每一個(gè)提供多個(gè)第二層緩沖存儲(chǔ)器的一個(gè)緩沖存儲(chǔ)器。
于是每個(gè)處理器從多個(gè)第二緩沖存儲(chǔ)器的各自的緩沖存儲(chǔ)器中讀取信息,并比較從多個(gè)第二緩沖存儲(chǔ)器的其緩沖存儲(chǔ)器中讀取的信息,當(dāng)按照由處理器寫(xiě)入的存儲(chǔ)區(qū)域,來(lái)自另一個(gè)處理器的信息與來(lái)自比較處理器的信息部分相同時(shí),則宣布一個(gè)成功的交叉比較。在從第一層緩沖存儲(chǔ)器向第二層緩沖存儲(chǔ)器傳遞數(shù)據(jù)之前,同步多個(gè)處理器。
第二個(gè)示例性表述進(jìn)一步描述確定是否有需要交叉比較的附加信息,如果有,則就附加信息重復(fù)所述步驟,其開(kāi)始于每個(gè)處理器寫(xiě)入需要交叉比較的數(shù)據(jù)的步驟。
此外,根據(jù)本發(fā)明的另一個(gè)示例性非限制性表述,提供了一個(gè)用于具有至少第一、第二處理器和第三處理器的多處理器計(jì)算機(jī)的交叉比較系統(tǒng)。在此示例性的交叉比較系統(tǒng)中,提供了第一層緩沖存儲(chǔ)器,包括用于存儲(chǔ)來(lái)自于第一處理器的信息的一個(gè)第一存儲(chǔ)區(qū)域,用于存儲(chǔ)來(lái)自于第二處理器的信息的一個(gè)第二存儲(chǔ)區(qū)域,以及用于存儲(chǔ)來(lái)自于第三處理器的信息的一個(gè)第三存儲(chǔ)區(qū)域。另外,該交叉比較系統(tǒng)具有第二層緩沖存儲(chǔ)器,其包括一個(gè)第四存儲(chǔ)區(qū)域、一個(gè)第五存儲(chǔ)區(qū)域和一個(gè)第六存儲(chǔ)區(qū)域。在第二層緩沖存儲(chǔ)器中的每個(gè)存儲(chǔ)區(qū)域存儲(chǔ)來(lái)自于第一存儲(chǔ)區(qū)域的信息、來(lái)自于第二存儲(chǔ)區(qū)域的信息和來(lái)自于第三存儲(chǔ)區(qū)域的信息。來(lái)自于第一層緩沖存儲(chǔ)器的信息自動(dòng)地傳遞給第二層緩沖存儲(chǔ)器。
在本發(fā)明的示例性非限制性表述中。第一到第六存儲(chǔ)區(qū)域的每一個(gè)都包括至少一個(gè)只是分配給它的存儲(chǔ)區(qū)域的緩沖存儲(chǔ)器。此外,在此示例性的交叉比較系統(tǒng)中,第一、第二和第三處理器分別地從第四、第五和第六存儲(chǔ)區(qū)域讀取信息,并比較存儲(chǔ)在其各自的存儲(chǔ)區(qū)域中的信息,以確定比較處理器的信息是否基本上等同于其他兩個(gè)處理器的信息。當(dāng)比較處理器的信息匹配于其他兩個(gè)處理器的至少一個(gè)的信息時(shí),交叉比較系統(tǒng)宣布一個(gè)成功的交叉比較。
現(xiàn)在參考附圖,通過(guò)對(duì)本發(fā)明的說(shuō)明性的、非限制性的實(shí)施方式的說(shuō)明對(duì)本發(fā)明進(jìn)行詳細(xì)的描述。在附圖中,相同的參考標(biāo)記表示相似的元件圖1是一個(gè)根據(jù)本發(fā)明的說(shuō)明性的、非限制性的實(shí)施方式的一個(gè)用于三重安全系統(tǒng)解決方案的概圖。
圖2是一個(gè)根據(jù)本發(fā)明的說(shuō)明性的、非限制性的實(shí)施方式的在一個(gè)應(yīng)用的循環(huán)中實(shí)施的方法的步驟。
圖3是一個(gè)根據(jù)本發(fā)明的說(shuō)明性的、非限制性的實(shí)施方式的用于實(shí)施交叉比較的方法的步驟。
具體實(shí)施例方式
通常是在每一個(gè)應(yīng)用循環(huán)的開(kāi)始時(shí)和結(jié)束前實(shí)施一個(gè)交叉比較,在此后將進(jìn)一步詳細(xì)描述。在此活動(dòng)期間,所有的輸入和/或輸出都是在處理器之間進(jìn)行交叉比較,這些處理器例如多處理器/中心處理器單元(MPU/CPU)、微處理器、運(yùn)行時(shí)間重要控制單元(Run TimeVital Control Units)等等。
圖1說(shuō)明根據(jù)本發(fā)明的示例性非限制性實(shí)施方式的一個(gè)3取2的配置。參考圖1說(shuō)明的系統(tǒng),根據(jù)特定的應(yīng)用,一個(gè)安全系統(tǒng)10的每個(gè)CPU(20,21,22)代表示例性的CPU或是示例性的MPU或是某些其他示例性的處理器。在此,術(shù)語(yǔ)CPU、MPC和處理器可以互換使用。實(shí)施交叉比較只是每個(gè)處理器的功能之一。
每個(gè)CPU(20,21,22)用其自己的總線與多端口RAM(30)相連接。在多端口RAM(30)中,每個(gè)CPU都有其自己的存儲(chǔ)空間。將只寫(xiě)緩沖存儲(chǔ)器1.1(40)和只讀緩沖存儲(chǔ)器1.2(50)分配給CPU1(20);將只寫(xiě)緩沖存儲(chǔ)器2.1(41)和只讀緩沖存儲(chǔ)器2.2(51)分配給CPU2(21);以及將只寫(xiě)緩沖存儲(chǔ)器3.1(42)和只讀緩沖存儲(chǔ)器3.2(52)分配給CPU3(22)。在此參考CPU訪問(wèn)一個(gè)緩沖存儲(chǔ)器的能力使用只寫(xiě)和只讀。
為每一個(gè)CPU提供了對(duì)其自己的存儲(chǔ)空間的嚴(yán)密控制的訪問(wèn)。每個(gè)CPU的只讀緩沖存儲(chǔ)器包括一個(gè)寄存器用于每個(gè)只寫(xiě)緩沖存儲(chǔ)器。在此例中,每個(gè)只讀緩沖存儲(chǔ)器(50,51,52)有三個(gè)寄存器(1.1,2.1,3.1)。通過(guò)內(nèi)部邏輯(60,61,62),將由每個(gè)CPU(20,21,22)寫(xiě)入的數(shù)據(jù),從每個(gè)只寫(xiě)緩沖存儲(chǔ)器(40,41,42)中拷貝到每個(gè)CPU的每個(gè)只讀緩沖存儲(chǔ)器(50,51,52)的對(duì)應(yīng)的寄存器中。即提供了兩層緩沖存儲(chǔ)器。一層是一個(gè)只寫(xiě)緩沖存儲(chǔ)器(40,41,42),第二層是一個(gè)只讀緩沖存儲(chǔ)器(50,51,52)。將由CPU1(20)寫(xiě)入到只寫(xiě)緩沖存儲(chǔ)器1.1(40)中的數(shù)據(jù),拷貝到只讀緩沖存儲(chǔ)器(50,51,52)的寄存器1.1中。類似地,將由CPU2(21)寫(xiě)入到只寫(xiě)緩沖存儲(chǔ)器2.1(41)中的數(shù)據(jù)以及由CPU3(22)寫(xiě)入到只寫(xiě)緩沖存儲(chǔ)器3.1(42)中的數(shù)據(jù),分別拷貝到只讀緩沖存儲(chǔ)器(50,51,52)的寄存器2.1和3.1中。換言之,在此說(shuō)明性的、非限制性的實(shí)施方式中,每個(gè)處理器(20,21,22)有一個(gè)或多個(gè)來(lái)自緩沖存儲(chǔ)器的第一層(40,41,42)的緩沖存儲(chǔ)器和一個(gè)或多個(gè)來(lái)自緩沖存儲(chǔ)器的第二層(50,51,52)的緩沖存儲(chǔ)器。
利用FPGA或ASIC(60,61,62)實(shí)施控制數(shù)據(jù)傳遞處理的內(nèi)部邏輯。如圖1所示,為同步的目的,實(shí)施了在一個(gè)FPGA或ASIC(60,61,62)中的特別的邏輯,以確保在當(dāng)一個(gè)CPU(20,21,22)向其存儲(chǔ)位置寫(xiě)入時(shí),其他的只能從它們自己的位置讀到“未準(zhǔn)備好”。FPGA或ASIC為第一和第二層緩沖存儲(chǔ)器實(shí)施要求的邏輯操作。每個(gè)處理器(20,21,22)分別有其自己?jiǎn)为?dú)的FPGA或ASIC(60,61,62)。
另外,可以優(yōu)選地為每個(gè)FPGA或ASIC(60,61,62)提供一個(gè)單獨(dú)的電源(70,71,72)。通過(guò)使每個(gè)處理器(20,21,22)具有由單獨(dú)的電源(70,71,72)供電的其自己?jiǎn)为?dú)的FPGA或ASIC(60,61,62),可以確保處理器(20,21,22)之間的分離。例如,如果一個(gè)處理器發(fā)生故障,可以將它簡(jiǎn)單地隔離并將其數(shù)據(jù)丟棄,而不影響其他處理器。即在交叉比較中檢測(cè)有錯(cuò)誤的情況下,運(yùn)行正常的處理器將它們自己與故障處理器斷開(kāi)。一個(gè)本領(lǐng)域中的普通技術(shù)人員知道如何分離一個(gè)有故障的處理器并且所有各種的隔離技術(shù)都落入本發(fā)明的范圍。
用于圖1中說(shuō)明的系統(tǒng)的一個(gè)交叉比較由圖2和3中說(shuō)明的步驟加以實(shí)施。首先,圖2示出了根據(jù)該說(shuō)明的實(shí)施方式的CPU循環(huán)。特別是,通過(guò)任何已知的常規(guī)技術(shù),處理器開(kāi)機(jī)并然后進(jìn)行初始化(步驟201)。一個(gè)本領(lǐng)域中的普通技術(shù)人員已經(jīng)知道處理器的多種開(kāi)機(jī)和初始化的方法。在處理器初始化之后,實(shí)施對(duì)輸入的交叉比較(步驟202)。根據(jù)該示例性實(shí)施方式的輸入的交叉比較(步驟202)將在圖3中詳細(xì)描述。在輸入的交叉比較(步驟202)之后,將實(shí)施多個(gè)前臺(tái)應(yīng)用任務(wù)(步驟203)。
例如,每個(gè)處理器可能正在實(shí)施多種非常復(fù)雜的計(jì)算操作。當(dāng)前臺(tái)應(yīng)用任務(wù)完成時(shí),對(duì)輸出——如計(jì)算操作的結(jié)果——也進(jìn)行交叉比較(步驟204)。根據(jù)該示例性實(shí)施方式的輸出的交叉比較將在圖3中詳細(xì)描述。在由處理器交叉比較了計(jì)算操作的輸出(步驟204)之后,完成應(yīng)用循環(huán)(205),并可以開(kāi)始一個(gè)新的循環(huán)(205)。
在此示例性實(shí)施方式中,每個(gè)處理器將交叉比較的完成通知它自己,而不向其他處理器發(fā)送任何信號(hào)。在成功進(jìn)行了交叉比較之后,輸入和/或輸出可以用于輪詢。作為選擇,可以通過(guò)生成一個(gè)中斷來(lái)提供輸入和/或輸出。輪詢、中斷生成或某些其他方案是在本發(fā)明的范圍之內(nèi)的。選擇的方案將取決于應(yīng)用和使用的硬件。
下面,參照?qǐng)D3,將對(duì)輸入和/或輸出(203,205)的示例性非限制性交叉比較進(jìn)行詳細(xì)描述。圖3示出了CPU的同步(步驟301)。可以使用任何數(shù)量的技術(shù),由硬件和/或軟件來(lái)實(shí)施同步。作為可以實(shí)現(xiàn)同步的許多方法之一的一個(gè)例子,三個(gè)CPU可以輪詢一個(gè)特定的存儲(chǔ)位置,每個(gè)CPU有一個(gè)位置,在此其他CPU將更新其交叉比較準(zhǔn)備就緒。為避免陳舊的信息,讀取該存儲(chǔ)位置將清除更新的值。為確保在當(dāng)一個(gè)CPU向其存儲(chǔ)位置寫(xiě)入時(shí),其他的只能從它們自己的位置讀到“未準(zhǔn)備好”,可以實(shí)施在FPGA或ASIC中的特別的邏輯。
只要處理器在將數(shù)據(jù)傳遞到緩沖存儲(chǔ)器(50,51,52)只讀層之前能夠同步,同步就可以發(fā)生在各種地方。例如,數(shù)據(jù)可以不同步地寫(xiě)入到第一層緩沖存儲(chǔ)器——只寫(xiě)層(40,41,42)。然后,同步(301)發(fā)生在數(shù)據(jù)傳遞到第二層緩沖存儲(chǔ)器(50,51,52)之前。此外,在此示例性實(shí)施方式中,提供一個(gè)特別的超時(shí)以避免循環(huán)的溢出,該溢出被認(rèn)為是處理器的一個(gè)主要故障。例如,如果處理器20由于某個(gè)故障被隔離,則處理器21和22在一個(gè)預(yù)定的時(shí)間段后,即特定的超時(shí)之后,將繼續(xù)進(jìn)行交叉比較,即使沒(méi)有檢測(cè)到與處理器20的成功的同步。從而,避免了死鎖功能正常的處理器21和22。
在圖3說(shuō)明的例子中,CPU在將數(shù)據(jù)寫(xiě)入到第一層緩沖存儲(chǔ)器之前被同步。特別地,一旦CPU完成同步,每個(gè)CPU將需要交叉比較的數(shù)據(jù)寫(xiě)入到其各自的只寫(xiě)緩沖存儲(chǔ)器中(步驟302)。然后利用實(shí)施在FPGA或ASIC(60,61,62)中的邏輯,將來(lái)自每個(gè)只寫(xiě)緩沖存儲(chǔ)器的數(shù)據(jù)傳遞到每個(gè)只讀緩沖存儲(chǔ)器(步驟303)。
然后每個(gè)CPU為所有三個(gè)CPU(20,21,22),從其各自的只讀緩沖存儲(chǔ)器(50,51,52)讀取數(shù)據(jù)(步驟304),并且將其數(shù)據(jù)與來(lái)自其他處理器的數(shù)據(jù)進(jìn)行比較(步驟305)。假如在只讀緩沖存儲(chǔ)器中至少有3取2個(gè)交叉比較數(shù)據(jù)是同樣的,則宣布是一個(gè)成功的交叉比較(步驟306)。例如,處理器20將位于緩沖存儲(chǔ)器50中存儲(chǔ)于寄存器1.1中的數(shù)據(jù)和在寄存器2.1和3.1中的數(shù)據(jù)進(jìn)行比較。當(dāng)來(lái)自緩沖存儲(chǔ)器50的寄存器1.1的信息與來(lái)自緩沖存儲(chǔ)器50的寄存器2.1和/或3.1的信息重疊時(shí),導(dǎo)致一個(gè)成功的交叉比較。
可以由任何一個(gè)CPU宣布一個(gè)成功的交叉比較,它們的每一個(gè)都對(duì)數(shù)據(jù)進(jìn)行其自己的比較。如果一個(gè)CPU確定有來(lái)自兩個(gè)其他CPU的同樣的數(shù)據(jù),但其自己的數(shù)據(jù)與來(lái)自任何一個(gè)其他CPU的數(shù)據(jù)不相同,則該CPU不會(huì)宣布一個(gè)成功的交叉比較。然而在此情況下,出現(xiàn)了同樣的數(shù)據(jù)的兩個(gè)CPU,基于對(duì)來(lái)自它們各自的只讀緩沖存儲(chǔ)器的數(shù)據(jù)的比較,每個(gè)CPU都將宣布一個(gè)成功的交叉比較(步驟306)。
對(duì)于大量的需要交叉比較的數(shù)據(jù),即超過(guò)了RAM的容量,在步驟304之后,做出是否所有的數(shù)據(jù)已經(jīng)過(guò)交叉比較的決定(步驟307)。如果有剩余的數(shù)據(jù),流程返回到步驟302,每個(gè)處理器向各自的只寫(xiě)緩沖存儲(chǔ)器寫(xiě)入需要交叉比較的下一個(gè)數(shù)據(jù)。只有當(dāng)確定已經(jīng)交換了所有的數(shù)據(jù)時(shí),再隨后進(jìn)行步驟305。
通過(guò)實(shí)施足夠大的RAM可以省略步驟307,因?yàn)閷?duì)步驟307的需求取決于需要進(jìn)行交叉比較的數(shù)據(jù)的大小。為獲得最佳的響應(yīng)時(shí)間,一個(gè)大的交叉比較區(qū)域?qū)⒋_保交叉比較過(guò)程可以用一個(gè)數(shù)據(jù)包來(lái)完成。
例如實(shí)時(shí)重要控制單元(RTVCU)的系統(tǒng)是一個(gè)理想的適用于上述交叉比較方案的系統(tǒng)的例子。不需要新的通信協(xié)議,該方案只受限制于存儲(chǔ)器的訪問(wèn)時(shí)間。
以上用舉例的方法給出了說(shuō)明性的、非限制性的實(shí)施方式。本發(fā)明的上述和其他的特征包括各種新穎的步驟方法和各種新穎的元件,這些特征已經(jīng)參考附圖特別進(jìn)行了特別的描述并在權(quán)利要求書(shū)中指出。應(yīng)該理解具體實(shí)施本發(fā)明的特別的過(guò)程和部件的結(jié)構(gòu)只是通過(guò)說(shuō)明的方式示出,并不作為對(duì)本發(fā)明的限制。本發(fā)明的原理和特征可以以各種的和眾多的實(shí)施方式加以利用,而不背離由所附加的權(quán)利要求書(shū)及其等同方式所規(guī)定的本發(fā)明的范圍。還可以預(yù)期可以對(duì)本發(fā)明的實(shí)施方式和實(shí)現(xiàn)進(jìn)行眾多的修改,而不背離下列權(quán)利要求書(shū)所規(guī)定的本發(fā)明的精神和范圍。
權(quán)利要求
1.一種用于具有至少第一和第二處理器的多處理器計(jì)算機(jī)的交叉比較系統(tǒng),其包括第一層緩沖存儲(chǔ)器,包含用于存儲(chǔ)來(lái)自于所述第一處理器的信息的一個(gè)第一存儲(chǔ)區(qū)域和用于存儲(chǔ)來(lái)自于所述第二處理器的信息的一個(gè)第二存儲(chǔ)區(qū)域;第二層緩沖存儲(chǔ)器,包含用于存儲(chǔ)來(lái)自于所述第一存儲(chǔ)區(qū)域的所述信息和來(lái)自于所述第二存儲(chǔ)區(qū)域的所述信息的一個(gè)第三存儲(chǔ)區(qū)域,以及用于存儲(chǔ)來(lái)自于所述第一存儲(chǔ)區(qū)域的所述信息和來(lái)自于所述第二存儲(chǔ)區(qū)域的所述信息的一個(gè)第四存儲(chǔ)區(qū)域,來(lái)自于所述第一存儲(chǔ)區(qū)域和所述第二存儲(chǔ)區(qū)域的所述信息自動(dòng)地傳遞到所述第三存儲(chǔ)區(qū)域和所述第四存儲(chǔ)區(qū)域;其中所述第一、第二、第三和第四存儲(chǔ)區(qū)域中的每一個(gè)包含至少一個(gè)只是為其存儲(chǔ)區(qū)域分配的緩沖存儲(chǔ)器;其中所述第一處理器從所述第三存儲(chǔ)區(qū)域讀取所述信息,并且對(duì)來(lái)自于所述第一存儲(chǔ)區(qū)域的存儲(chǔ)在所述第三存儲(chǔ)區(qū)域中的數(shù)據(jù)與來(lái)自于所述第二存儲(chǔ)區(qū)域的存儲(chǔ)在所述第三存儲(chǔ)區(qū)域中的數(shù)據(jù)進(jìn)行比較,以確定來(lái)自于所述第一存儲(chǔ)區(qū)域的存儲(chǔ)在所述第三存儲(chǔ)區(qū)域中的所述信息是否基本上等同于來(lái)自于所述第二存儲(chǔ)區(qū)域的存儲(chǔ)在所述第三存儲(chǔ)區(qū)域中的所述信息;以及其中所述第二處理器從所述第四存儲(chǔ)區(qū)域讀取所述信息,并且對(duì)來(lái)自于所述第一存儲(chǔ)區(qū)域的存儲(chǔ)在所述第四存儲(chǔ)區(qū)域中的數(shù)據(jù)與來(lái)自于所述第二存儲(chǔ)區(qū)域的存儲(chǔ)在所述第四存儲(chǔ)區(qū)域中的數(shù)據(jù)進(jìn)行比較,以確定來(lái)自于所述第一存儲(chǔ)區(qū)域的存儲(chǔ)在所述第四存儲(chǔ)區(qū)域中的所述信息是否基本上等同于來(lái)自于所述第二存儲(chǔ)區(qū)域的存儲(chǔ)在所述第四存儲(chǔ)區(qū)域中的所述信息。
2.根據(jù)權(quán)利要求1所述的用于多處理器計(jì)算機(jī)的交叉比較系統(tǒng),其中所述第一層緩沖存儲(chǔ)器是只寫(xiě)緩沖存儲(chǔ)器以及其中所述第二層緩沖存儲(chǔ)器是只讀緩沖存儲(chǔ)器。
3.根據(jù)權(quán)利要求2所述的用于多處理器計(jì)算機(jī)的交叉比較系統(tǒng),其中所述第一和所述第二處理器將數(shù)據(jù)異步地寫(xiě)入到所述第一層緩沖存儲(chǔ)器中,以及其中將來(lái)自于所述第一層緩沖存儲(chǔ)器的所述數(shù)據(jù)同步地傳遞到所述第二層緩沖存儲(chǔ)器。
4.根據(jù)權(quán)利要求1所述的用于多處理器計(jì)算機(jī)的交叉比較系統(tǒng),其中當(dāng)在所述第一處理器中比較的所述數(shù)據(jù)不匹配時(shí),隔離所述第一處理器,以及其中當(dāng)在所述第二處理器中比較的所述數(shù)據(jù)不匹配時(shí),隔離所述第二處理器。
5.根據(jù)權(quán)利要求1所述的用于多處理器計(jì)算機(jī)的交叉比較系統(tǒng),其中所述第三和第四存儲(chǔ)區(qū)域的每一個(gè)包括一個(gè)第一寄存器用于來(lái)自所述第一存儲(chǔ)區(qū)域的所述數(shù)據(jù),和一個(gè)第二寄存器用于來(lái)自所述第二存儲(chǔ)區(qū)域的所述數(shù)據(jù),并且所述第一和第二處理器的每一個(gè)對(duì)來(lái)自于所述第一寄存器的數(shù)據(jù)和來(lái)自于所述第二寄存器的數(shù)據(jù)進(jìn)行比較,以及其中當(dāng)在所述第一寄存器中的所述數(shù)據(jù)與所述第二寄存器中的所述數(shù)據(jù)相同時(shí),宣布一個(gè)成功的交叉比較,在此兩個(gè)所述第一和第二寄存器在一個(gè)專門(mén)為一個(gè)比較處理器分配的存儲(chǔ)區(qū)域內(nèi)。
6.一種為一個(gè)至少具有三個(gè)處理器的多處理器計(jì)算機(jī)實(shí)施一個(gè)交叉比較的方法,其中所述至少三個(gè)處理器的每一個(gè)使用一個(gè)單獨(dú)的存儲(chǔ)位置,并且其中為所述至少三個(gè)處理器的每一個(gè)提供一個(gè)單獨(dú)的端口,以及為每個(gè)所述單獨(dú)的端口提供多個(gè)第一層緩沖存儲(chǔ)器的一個(gè)緩沖存儲(chǔ)器,所述方法包括如下有序步驟(a)對(duì)應(yīng)于所述各個(gè)處理器的所述端口,每個(gè)處理器向所述多個(gè)第一層緩沖存儲(chǔ)器的所述緩沖存儲(chǔ)器寫(xiě)入需要交叉比較的信息;(b)將寫(xiě)入到所有多個(gè)所述第一層緩沖存儲(chǔ)器的信息傳遞到多個(gè)第二層緩沖存儲(chǔ)器,所述多個(gè)第二層緩沖存儲(chǔ)器的每個(gè)緩沖存儲(chǔ)器為所述多個(gè)第一層緩沖存儲(chǔ)器的各個(gè)緩沖存儲(chǔ)器提供一個(gè)存儲(chǔ)區(qū)域,以及向所述多個(gè)處理器的每一個(gè)提供所述多個(gè)第二層緩沖存儲(chǔ)器的一個(gè)緩沖存儲(chǔ)器;(c)每個(gè)處理器從所述多個(gè)第二層緩沖存儲(chǔ)器的各個(gè)緩沖存儲(chǔ)器讀取所述信息;以及(d)每個(gè)處理器比較從所述多個(gè)第二層緩沖存儲(chǔ)器的其緩沖存儲(chǔ)器讀取的所述信息,當(dāng)來(lái)自另一個(gè)處理器的信息匹配于來(lái)自所述比較處理器的信息時(shí),則宣布一個(gè)成功的交叉比較,其中在所述有序步驟(b)中,在執(zhí)行信息的所述傳遞之前,所述至少三個(gè)處理器被同步。
7.根據(jù)權(quán)利要求6所述的實(shí)施一個(gè)交叉比較的方法,進(jìn)一步包括一個(gè)有序步驟(e)確定是否存在需要交叉比較的附加的信息,并且當(dāng)存在時(shí),則對(duì)所述附加的信息重復(fù)開(kāi)始于步驟(a)的所述步驟。
8.根據(jù)權(quán)利要求6所述的實(shí)施一個(gè)交叉比較的方法,進(jìn)一步包括由所述多個(gè)處理器的每一個(gè)通過(guò)輪詢它從所述多個(gè)所述第二層緩沖存儲(chǔ)器中對(duì)應(yīng)的緩沖存儲(chǔ)器,檢測(cè)成功的同步,以及其中當(dāng)在一個(gè)預(yù)定的時(shí)間段之后,所述多個(gè)處理器中的一個(gè)處理器沒(méi)有檢測(cè)到在所有所述多個(gè)處理器之間成功的同步時(shí),執(zhí)行一個(gè)超時(shí)操作并由所述處理器實(shí)施對(duì)所述信息的所述比較。
9.一種用于具有至少第一、第二處理器和第三處理器的多處理器計(jì)算機(jī)的交叉比較系統(tǒng),其包括第一層緩沖存儲(chǔ)器,包含用于存儲(chǔ)來(lái)自于所述第一處理器的信息的一個(gè)第一存儲(chǔ)區(qū)域,用于存儲(chǔ)來(lái)自于所述第二處理器的信息的一個(gè)第二存儲(chǔ)區(qū)域,以及用于存儲(chǔ)來(lái)自于所述第三處理器的信息的一個(gè)第三存儲(chǔ)區(qū)域;第二層緩沖存儲(chǔ)器,包含一個(gè)第四存儲(chǔ)區(qū)域、一個(gè)第五存儲(chǔ)區(qū)域和一個(gè)第六存儲(chǔ)區(qū)域,每個(gè)都存儲(chǔ)來(lái)自于所述第一存儲(chǔ)區(qū)域的所述信息、來(lái)自于所述第二存儲(chǔ)區(qū)域的所述信息以及來(lái)自于所述第三存儲(chǔ)區(qū)域的所述信息,來(lái)自于所述第一層緩沖存儲(chǔ)器的所述信息自動(dòng)地傳遞給所述第二層緩沖存儲(chǔ)器;其中所述第一到第六存儲(chǔ)區(qū)域的每一個(gè)都包括至少一個(gè)只是為它的存儲(chǔ)區(qū)域分配的緩沖存儲(chǔ)器;其中所述第一、第二和第三處理器分別地從所述第四、第五和第六存儲(chǔ)區(qū)域讀取所述信息,并比較存儲(chǔ)在其各自的存儲(chǔ)區(qū)域中的所述信息,以確定比較處理器的所述信息是否基本上等同于所述其他兩個(gè)處理器的所述信息;以及其中當(dāng)所述比較處理器的所述信息匹配于所述其他兩個(gè)處理器的至少一個(gè)處理器的所述信息時(shí),宣布一個(gè)成功的交叉比較。
10.根據(jù)權(quán)利要求9所述的用于一個(gè)多處理器計(jì)算機(jī)的交叉比較系統(tǒng),其中所述第一、第二和第三處理器在所述交叉比較之前被同步,以及其中由所述第一、第二和第三處理器中的每一個(gè)通過(guò)輪詢所述第二層緩沖存儲(chǔ)器檢測(cè)所述同步。
全文摘要
一種使用帶內(nèi)置邏輯的一個(gè)多端口RAM的、運(yùn)行在一個(gè)多處理器配置中的交叉比較方案。它提供一個(gè)快速和簡(jiǎn)單的數(shù)據(jù)交叉比較方法。多端口RAM單元可以插入到主處理器單元的母板上,而不需要外部硬件或連線。一種用于交叉比較的方法和系統(tǒng),其具有第一層緩沖存儲(chǔ)器,其具有用于存儲(chǔ)來(lái)自于第一處理器的信息的一個(gè)第一存儲(chǔ)區(qū)域和用于存儲(chǔ)來(lái)自于第二處理器的信息的一個(gè)第二存儲(chǔ)區(qū)域,以及具有一個(gè)第三和第四存儲(chǔ)區(qū)域的第二層緩沖存儲(chǔ)器,在此每個(gè)存儲(chǔ)區(qū)域存儲(chǔ)來(lái)自于第一和第二存儲(chǔ)區(qū)域的信息。第一、第二、第三和第四存儲(chǔ)區(qū)域具有一個(gè)或多個(gè)只是為其各自的存儲(chǔ)區(qū)域分配的緩沖存儲(chǔ)器。
文檔編號(hào)G06F15/16GK1783035SQ20051012432
公開(kāi)日2006年6月7日 申請(qǐng)日期2005年11月28日 優(yōu)先權(quán)日2004年12月3日
發(fā)明者馬里奧·波普斯卡, 斯蒂芬·巴爾, 亞歷山大·特里卡 申請(qǐng)人:阿爾卡特公司