專利名稱:用于對(duì)固定等待時(shí)間互連進(jìn)行鎖步處理的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及冗余處理。尤其是,本發(fā)明涉及保持冗余處理器與以鎖步操作的其它設(shè)備之間的同步。
背景技術(shù):
計(jì)算機(jī)系統(tǒng)常常在不友好的環(huán)境中執(zhí)行臨界控制、分析、通信及其他功能。當(dāng)這些系統(tǒng)在物理上難于或不可能達(dá)到的時(shí)候,提供充分的冗余以便對(duì)故障和偽錯(cuò)誤進(jìn)行檢測(cè)和自動(dòng)恢復(fù)是很重要的。保護(hù)計(jì)算機(jī)系統(tǒng)不出現(xiàn)錯(cuò)誤的一種常見(jiàn)的方法是采用雙模塊冗余度或三模塊冗余度以鎖步模式來(lái)操作兩個(gè)或三個(gè)(或更多)系統(tǒng)模塊并比較它們的行為。如果幾個(gè)相同的模塊執(zhí)行相同的操作,那么理論上,該模塊的行為之間的任何差異都可能表示一個(gè)或多個(gè)模塊出現(xiàn)了故障。理論上僅僅通過(guò)對(duì)系統(tǒng)中某個(gè)關(guān)鍵點(diǎn)處(例如在地址和數(shù)據(jù)總線)存在的信號(hào)進(jìn)行比較并且無(wú)論何時(shí)檢測(cè)到不匹配都啟動(dòng)錯(cuò)誤恢復(fù)程序,從而再次檢測(cè)差異。
實(shí)踐中,時(shí)鐘脈沖相位差和類似的影響會(huì)引起信號(hào)不匹配,即使當(dāng)該模塊是處于適當(dāng)操作時(shí)也是如此。由于錯(cuò)誤恢復(fù)可能是計(jì)算代價(jià)很大的處理,所以錯(cuò)誤鎖步失敗信號(hào)會(huì)嚴(yán)重地降低系統(tǒng)性能。同樣地,錯(cuò)誤恢復(fù)可包含每個(gè)模塊上的不同操作,以及可以沒(méi)有有效的冗余系統(tǒng)來(lái)保護(hù)所述恢復(fù)防止隨后發(fā)生錯(cuò)誤。此外,傳統(tǒng)的鎖步冗余系統(tǒng)包含專門(mén)的硬件電路以執(zhí)行信號(hào)比較。這些電路降低了系統(tǒng)在不需要冗余處理時(shí)作為普通多處理器系統(tǒng)來(lái)操作的靈活性。
用附圖中的圖形以舉例說(shuō)明的方式說(shuō)明了本發(fā)明的實(shí)施例,本發(fā)明的實(shí)施例不限制于附圖中的圖形,其中相同的參考標(biāo)記表示類似的元件。應(yīng)當(dāng)注意在說(shuō)明書(shū)中提到“一”或“一個(gè)”實(shí)施例不必然是同一個(gè)實(shí)施例,這些說(shuō)法意味著“至少一個(gè)”。
圖1顯示了實(shí)現(xiàn)本發(fā)明實(shí)施例的系統(tǒng)的邏輯概觀圖。
圖2是兩個(gè)鎖步處理器可執(zhí)行以確保它們發(fā)出的請(qǐng)求是正確的程序的流程圖。
圖3是允許兩個(gè)鎖步處理器接收消息并且開(kāi)始同時(shí)處理其內(nèi)容的程序的流程圖。
圖4是一個(gè)由以鎖步運(yùn)行的“從屬”設(shè)備所進(jìn)行的類似程序的流程圖。
圖5是從屬鎖步設(shè)備的另一個(gè)程序的流程圖。
圖6顯示了一個(gè)示例系統(tǒng),其包括實(shí)現(xiàn)采用本發(fā)明實(shí)施例的使用功能的邏輯模塊。
具體實(shí)施例方式
本發(fā)明的實(shí)施例把處理器、存儲(chǔ)器和其它設(shè)備放在圍繞著固定等待時(shí)間、環(huán)形互連網(wǎng)絡(luò)的位置上。網(wǎng)絡(luò)的每個(gè)節(jié)點(diǎn)可向任一其它節(jié)點(diǎn)發(fā)送消息,并且網(wǎng)絡(luò)的固定等待時(shí)間性能允許發(fā)送者確定要用多長(zhǎng)時(shí)間把這個(gè)消息送達(dá)目的節(jié)點(diǎn)。系統(tǒng)部件的這種結(jié)構(gòu)支持可操作的范例,所述范例包括普通多處理以及冗余、鎖步處理。在鎖步模式中,系統(tǒng)自動(dòng)地過(guò)濾出由于時(shí)鐘脈沖相位差所引起的許多無(wú)害的計(jì)時(shí)誤差。大多數(shù)發(fā)出信號(hào)的錯(cuò)誤表示真正的數(shù)據(jù)差異。
圖1顯示了結(jié)合本發(fā)明實(shí)施例的系統(tǒng)的圖。環(huán)100表示固定等待時(shí)間、無(wú)緩沖、環(huán)形的通信網(wǎng)絡(luò)。連接于該網(wǎng)絡(luò)的設(shè)備可把消息放到環(huán)上或者從環(huán)上移除消息。例如170和180這樣的消息以順時(shí)針?lè)较蛟诃h(huán)上前進(jìn),從發(fā)送節(jié)點(diǎn)到目的節(jié)點(diǎn)。如果目的節(jié)點(diǎn)不能接受該消息(例如,因?yàn)樗蛘咭驗(yàn)樗鼪](méi)有空閑的緩沖空間),則該消息繼續(xù)在環(huán)上繞行直到目的節(jié)點(diǎn)變?yōu)槟軌蚪邮芩?。只要沒(méi)有消息正在由該節(jié)點(diǎn)進(jìn)行傳遞,該節(jié)點(diǎn)就可以在環(huán)上放置一個(gè)消息。環(huán)同步地進(jìn)行操作,同時(shí)消息以規(guī)則的間隔從一個(gè)節(jié)點(diǎn)移動(dòng)到下一個(gè)節(jié)點(diǎn)。因而,知道它的目標(biāo)位于環(huán)上多遠(yuǎn)的發(fā)送者可確定把消息送到那里要花多少時(shí)間。(當(dāng)然,當(dāng)消息到達(dá)時(shí)目標(biāo)可能不能接受該消息;發(fā)送者必須計(jì)算這種可能性)。盡管這個(gè)圖顯示了等于節(jié)點(diǎn)數(shù)目的多個(gè)消息和空消息位置,但是實(shí)際的設(shè)備可允許在環(huán)上放更多的消息。然而,網(wǎng)絡(luò)是無(wú)緩沖的,所以其容量是沒(méi)有彈性的。
與本發(fā)明的實(shí)施例有關(guān)的通信網(wǎng)絡(luò)的特征在于發(fā)送者可以確定消息傳播到接收者要花多少時(shí)間。被顯示為元件100的固定等待時(shí)間的無(wú)緩沖環(huán)形網(wǎng)絡(luò)具有這種特征,并且提供了一種易于理解的結(jié)構(gòu)以供以下的說(shuō)明所用。然而,實(shí)施例并不限制于環(huán)拓?fù)渚W(wǎng)絡(luò),或者甚至不限制于固定等待時(shí)間互連,只要該網(wǎng)絡(luò)允許用已知等待時(shí)間來(lái)傳送確認(rèn)信號(hào)。
可以把一系列設(shè)備放在環(huán)100的節(jié)點(diǎn)上。在圖1中,顯示了三個(gè)中央處理單元(CPU)110、120和130。兩個(gè)存儲(chǔ)模塊140和150以及存儲(chǔ)設(shè)備160也圍繞著環(huán)而設(shè)置。通信網(wǎng)絡(luò)的說(shuō)明和描述指的是網(wǎng)絡(luò)的邏輯結(jié)構(gòu),而不是它的物理結(jié)構(gòu)。實(shí)際的設(shè)備可能會(huì)把環(huán)形通信網(wǎng)絡(luò)全部放在單個(gè)微電子電路內(nèi)或者把它分配給兩個(gè)或多個(gè)電路,只要所描述的通信能力是可用的。
在一些系統(tǒng)中,通信網(wǎng)絡(luò)可以是雙向的,其中消息可以繞著環(huán)順時(shí)針或逆時(shí)針進(jìn)行傳播。(這種系統(tǒng)可被分析成雙疊加無(wú)向環(huán))。為了簡(jiǎn)要和易于理解起見(jiàn),然而,以下大部分例子會(huì)假定單個(gè)、無(wú)向、固定等待時(shí)間、無(wú)緩沖通信結(jié)構(gòu)。
具有這兩種情況的環(huán)上部件的系統(tǒng)可以以鎖步、冗余模式來(lái)操作部件,并且如果部件把不同的消息放在環(huán)上,盡管接收相同消息,則仍發(fā)出可能鎖步錯(cuò)誤信號(hào)。因而,例如,存儲(chǔ)器140和150可以以鎖步模式來(lái)操作,并且如果該存儲(chǔ)器響應(yīng)不同,則檢測(cè)僅影響一個(gè)存儲(chǔ)器的偽錯(cuò)誤。
具有三種或更多種環(huán)上部件的系統(tǒng)可執(zhí)行相同的鎖步處理,但是也能夠通過(guò)采用投票協(xié)議來(lái)確定哪個(gè)部件失敗了或者經(jīng)歷了錯(cuò)誤如果三種情況中的兩種一致(或者,更一般地,如果多種情況一致),那么該系統(tǒng)如大部分消息表示的那樣來(lái)進(jìn)行。
圖2的流程圖顯示了以鎖步模式運(yùn)行的兩個(gè)CPU怎樣發(fā)送請(qǐng)求到固定等待時(shí)間通信網(wǎng)絡(luò)上的另一個(gè)設(shè)備。把該CPU指定為“較近”和“較遠(yuǎn)”以表示相對(duì)于目的設(shè)備而言它們?cè)诃h(huán)上的位置。這兩個(gè)CPU都產(chǎn)生到該設(shè)備的訪問(wèn)請(qǐng)求(210a、210b),所述CPU以接近同步(但是有可能不精確)的方式來(lái)執(zhí)行相同的指令。如果CPU獨(dú)立地操作,則每個(gè)CPU會(huì)簡(jiǎn)單地把消息放在環(huán)上并且把它發(fā)送給該設(shè)備,該設(shè)備將通過(guò)把適當(dāng)?shù)卮饛?fù)放在環(huán)上來(lái)響應(yīng)每個(gè)消息。然而,在鎖步模式中,“較遠(yuǎn)”CPU把請(qǐng)求發(fā)送給“較近”CPU(220)。消息繞著環(huán)傳播到較近CPU(230),同時(shí)較近CPU等候該消息(240)。最終,較近CPU接收到請(qǐng)求(250)并且將其與它本身的本地產(chǎn)生請(qǐng)求相比較(260)。如果請(qǐng)求匹配,則較近CPU向該設(shè)備發(fā)送單個(gè)合并請(qǐng)求(270)。如果請(qǐng)求不匹配,則較近處理器發(fā)出鎖步錯(cuò)誤信號(hào)(280)以初始化鎖步恢復(fù)程序。這個(gè)請(qǐng)求本身可以將從存儲(chǔ)器或者其它設(shè)備中獲得數(shù)據(jù),或者在存儲(chǔ)器中存儲(chǔ)數(shù)據(jù)或者把數(shù)據(jù)發(fā)送給該設(shè)備。在這方面,請(qǐng)求可以對(duì)應(yīng)于普通的存儲(chǔ)器讀或?qū)懼芷?,或者?duì)應(yīng)于I/O端口“IN”和“OUT”操作。
這個(gè)程序相對(duì)于計(jì)時(shí)誤差是有彈性的如果較遠(yuǎn)處理器在較近處理器之前產(chǎn)生并發(fā)送請(qǐng)求,那么該請(qǐng)求只是在環(huán)上傳播直到較近處理器發(fā)現(xiàn)并準(zhǔn)備接收和比較該請(qǐng)求。如果較近處理器在前,那么它會(huì)等候直到較遠(yuǎn)處理器發(fā)現(xiàn)并發(fā)送請(qǐng)求。在每一種情況中,如果看門(mén)狗計(jì)時(shí)器邏輯電路檢測(cè)到任一個(gè)處理器花費(fèi)太久來(lái)等待另一個(gè)處理器發(fā)現(xiàn),則看門(mén)狗計(jì)時(shí)器邏輯電路能產(chǎn)生鎖步錯(cuò)誤信號(hào)。
用于接收指向兩個(gè)或更多鎖步部件的消息的程序稍微更復(fù)雜一些,因?yàn)橄M摬考瑫r(shí)開(kāi)始處理消息。圖3顯示了如何實(shí)現(xiàn)這一點(diǎn)。
向鎖步部件發(fā)送消息的設(shè)備把消息放在環(huán)上,發(fā)送到部件之一(310)。例如,如果該設(shè)備響應(yīng)合并消息,它的傳送已經(jīng)參考圖2進(jìn)行了描述,則可以將答復(fù)發(fā)送給那個(gè)圖中標(biāo)記為“較遠(yuǎn)”的處理器,因?yàn)樵跓o(wú)向環(huán)上,“較遠(yuǎn)”處理器實(shí)際上是與該設(shè)備比較近的。較遠(yuǎn)和較近處理器都等待答復(fù)(315a、315b)。
較遠(yuǎn)處理器接收該消息(320)但是不立即開(kāi)始對(duì)消息進(jìn)行處理。而是它分配緩沖區(qū)以保存確認(rèn)(330)并且把該消息重新傳送給它的鎖步配對(duì),“較近”處理器(340)。較近處理器接收該消息(350)并且向較遠(yuǎn)處理器傳送確認(rèn)(360)。一旦它在環(huán)上傳遞,較遠(yuǎn)處理器就能夠接收到該確認(rèn)(370),因?yàn)樗呀?jīng)預(yù)先分配了緩沖區(qū)來(lái)保存該確認(rèn)。兩個(gè)處理器都開(kāi)始處理消息(380a、380b)。例如,該消息可包含處理器正在執(zhí)行的計(jì)算所需的數(shù)據(jù),或者可包含用于處理器執(zhí)行的指令。處理同時(shí)開(kāi)始,因?yàn)檩^近處理器能夠根據(jù)固定等待時(shí)間網(wǎng)絡(luò)的速度和較近處理器與較遠(yuǎn)處理器之間的節(jié)點(diǎn)數(shù)來(lái)計(jì)算出適當(dāng)?shù)牡却龝r(shí)間(390)?;叵胍幌?,本發(fā)明的實(shí)施例可采用非環(huán)形和/或可變等待時(shí)間網(wǎng)絡(luò),只要發(fā)送者能夠計(jì)算出確認(rèn)消息的等待時(shí)間。那個(gè)等待時(shí)間是該適當(dāng)?shù)牡群驎r(shí)間390,并且對(duì)它的確認(rèn)就是允許較近和較遠(yuǎn)處理器同時(shí)開(kāi)始處理消息。
雖然前面描述的流程圖集中于具有兩個(gè)鎖步CPU的本發(fā)明的實(shí)施例的操作,所述CPU發(fā)送請(qǐng)求或者從單個(gè)設(shè)備中接收響應(yīng),但是也可以對(duì)協(xié)議進(jìn)行操作以允許處理器(或者一組鎖步處理器)與冗余鎖步設(shè)備進(jìn)行交互作用。例如,為了在存儲(chǔ)器中獲得或存儲(chǔ)數(shù)據(jù),自一個(gè)處理器的請(qǐng)求、或者來(lái)自兩個(gè)或更多鎖步處理器的合并請(qǐng)求可以被指向兩個(gè)或更多鎖步存儲(chǔ)器。通過(guò)按照?qǐng)D3的流程圖,兩個(gè)存儲(chǔ)器可設(shè)置來(lái)同時(shí)執(zhí)行取出或存儲(chǔ)操作,如圖4所描述的那樣。
首先,處理器(或較近處理器)向較近存儲(chǔ)器發(fā)送存儲(chǔ)器請(qǐng)求(410)。較近存儲(chǔ)器接收該請(qǐng)求(420),分配確認(rèn)緩沖區(qū)(430),以及向其鎖步配對(duì)存儲(chǔ)器重新傳送該請(qǐng)求(440)。該鎖步配對(duì)接收請(qǐng)求(450)并且返回確認(rèn)(460)。較近存儲(chǔ)器接收確認(rèn)(470),并且兩個(gè)存儲(chǔ)器都同時(shí)開(kāi)始取出或存儲(chǔ)操作(480a、480b)。鎖步配對(duì)能夠根據(jù)固定等待時(shí)間網(wǎng)絡(luò)的速度和確認(rèn)要到達(dá)其目的地所必須經(jīng)過(guò)的節(jié)點(diǎn)數(shù)來(lái)計(jì)算出適當(dāng)?shù)牡却龝r(shí)間(490)。
此外,這兩個(gè)存儲(chǔ)器可遵循類似于關(guān)于圖2所描述的協(xié)議以把驗(yàn)證答復(fù)發(fā)送給請(qǐng)求處理器(一個(gè)或多個(gè))。這是在圖5中顯示兩個(gè)存儲(chǔ)器都準(zhǔn)備響應(yīng)(510a、510b)。因?yàn)閮蓚€(gè)存儲(chǔ)器都以鎖步模式來(lái)操作,并且如上所述它們同時(shí)開(kāi)始取出或存儲(chǔ)操作,所以基本上同時(shí)產(chǎn)生響應(yīng)。較遠(yuǎn)存儲(chǔ)器把它的響應(yīng)發(fā)送給較近的(520),并且在較近存儲(chǔ)器等候(540)的同時(shí),該響應(yīng)繞著環(huán)傳播(530)。較近存儲(chǔ)器接收響應(yīng)(550)并且把它與其本身的響應(yīng)相比較以確定它們是否匹配(560)。如果響應(yīng)匹配,則向請(qǐng)求處理器發(fā)送合并響應(yīng)(570)。如果存在差別,則產(chǎn)生鎖步錯(cuò)誤信號(hào)(580)以觸發(fā)錯(cuò)誤恢復(fù)程序。
前面的討論把在網(wǎng)絡(luò)上傳送和接收的消息指定了例如“請(qǐng)求”、“響應(yīng)”、“確認(rèn)”之類的語(yǔ)義名稱。然而應(yīng)當(dāng)清楚,“請(qǐng)求”消息不同于“響應(yīng)”消息僅僅在于請(qǐng)求發(fā)生在響應(yīng)之前,并且引起一些設(shè)備或鎖步設(shè)備組通過(guò)發(fā)送響應(yīng)來(lái)答復(fù)。對(duì)于就所涉及的網(wǎng)絡(luò)而言,請(qǐng)求、響應(yīng)、以及確認(rèn)都僅僅是從源節(jié)點(diǎn)到目的節(jié)點(diǎn)的消息。
圖6顯示了實(shí)現(xiàn)本發(fā)明實(shí)施例的多處理器系統(tǒng)的一些邏輯部件。CPU內(nèi)核610和620可以是獨(dú)立的物理設(shè)備或者可以是單個(gè)“多核”處理的全部自主或部分自主的部分。一些系統(tǒng)可能具有不止兩個(gè)物理CPU,在單個(gè)處理器中不止兩個(gè)核、或者不止一個(gè)多核處理器。CPU作為網(wǎng)絡(luò)630的節(jié)點(diǎn)那樣安裝。網(wǎng)絡(luò)可以在單獨(dú)的電路中實(shí)現(xiàn),或者可以多核處理器的子部件或者另一個(gè)處理器支持電路存在。消息繞著網(wǎng)絡(luò)傳播并且可由目的節(jié)點(diǎn)處的設(shè)備來(lái)移除。節(jié)點(diǎn)能夠計(jì)算至少一些消息的等待時(shí)間。這個(gè)系統(tǒng)僅包含一個(gè)存儲(chǔ)器680和一個(gè)I/O設(shè)備690,并且CPU內(nèi)核與存儲(chǔ)器或設(shè)備之間的通信是經(jīng)由橋接器670來(lái)路由的,但是根據(jù)本發(fā)明的實(shí)施例的方法可以由其包含多個(gè)存儲(chǔ)器和/或設(shè)備、具有或不具有橋接設(shè)備的系統(tǒng)來(lái)使用。
系統(tǒng)包含映射邏輯電路640以確定網(wǎng)絡(luò)630上節(jié)點(diǎn)的相對(duì)位置,以及識(shí)別兩個(gè)節(jié)點(diǎn)中的哪一個(gè)離第三節(jié)點(diǎn)比較近。每個(gè)處理器610和620都包括請(qǐng)求邏輯電路612、622以在處理器以鎖步模式運(yùn)行時(shí)協(xié)調(diào)從處理器到存儲(chǔ)器680或I/O設(shè)備690的請(qǐng)求。請(qǐng)求邏輯電路612、622通過(guò)從較遠(yuǎn)處理器向較近處理器發(fā)送請(qǐng)求、把該請(qǐng)求與較近處理器產(chǎn)生的請(qǐng)求相比較、以及向目的地發(fā)送合并請(qǐng)求來(lái)實(shí)現(xiàn)參考圖2所說(shuō)明的程序。在包含多個(gè)鎖步存儲(chǔ)器或I/O設(shè)備的系統(tǒng)中,那些設(shè)備將包含對(duì)應(yīng)于請(qǐng)求邏輯電路612、622的邏輯電路以實(shí)現(xiàn)圖5的程序,并且允許鎖步存儲(chǔ)器或I/O設(shè)備協(xié)調(diào)對(duì)該處理器(一個(gè)或多個(gè))的響應(yīng)。
處理器610和620還包括響應(yīng)邏輯電路615、625以協(xié)調(diào)處理器對(duì)來(lái)自存儲(chǔ)器或I/O設(shè)備的響應(yīng)的處理。響應(yīng)邏輯電路實(shí)現(xiàn)參考圖3所描述的程序。對(duì)應(yīng)于響應(yīng)邏輯電路615、625的邏輯電路也處于系統(tǒng)的存儲(chǔ)器和I/O設(shè)備中,所述系統(tǒng)具有這些部件的多種冗余例子。
請(qǐng)求驗(yàn)證邏輯電路618、628把從另一個(gè)處理器中接收的消息與本地產(chǎn)生消息相比較,并且如果消息不匹配則發(fā)出鎖步錯(cuò)誤信號(hào);以及鎖步恢復(fù)邏輯電路650允許處理器(或者適當(dāng)?shù)南到y(tǒng)中其它鎖步設(shè)備)從鎖步錯(cuò)誤中恢復(fù)。
所示的各種邏輯模塊可被實(shí)現(xiàn)成硬件實(shí)現(xiàn)的電路單元、微代碼或類似的固件或軟件,或者實(shí)現(xiàn)成硬件與軟件的組合。圖6所示系統(tǒng)還包括鎖步禁止邏輯電路660以禁止鎖步失敗信號(hào)和其他有利于鎖步的邏輯特征。這允許處理器、存儲(chǔ)器以及I/O設(shè)備作為普通的多處理器系統(tǒng)來(lái)操作,其中每個(gè)處理器獨(dú)立地執(zhí)行它自己的指令流,并且不執(zhí)行冗余檢驗(yàn)。
如圖6所示,CPU內(nèi)核610和620以及網(wǎng)絡(luò)630和各個(gè)邏輯元件,例示于單個(gè)、單片、多核CPU設(shè)備(參見(jiàn)短劃線666)中。在這樣的實(shí)施例中,多核CPU可直接替換系統(tǒng)中的普通(非鎖步)多核CPU。這種替換允許系統(tǒng)以冗余處理模式進(jìn)行操作以便提高可靠性,或者(當(dāng)禁止鎖步邏輯時(shí))作為正常的多處理器系統(tǒng)。存儲(chǔ)器680可以采用糾錯(cuò)碼(“ECC”)電路或者其他類似的技術(shù)而不是多個(gè)冗余單元來(lái)實(shí)現(xiàn)可比較的可靠性。
本發(fā)明的實(shí)施例可以是一種機(jī)器可讀介質(zhì),其上存儲(chǔ)了使處理器執(zhí)行如上所述操作的指令。在其他實(shí)施例中,該操作可以由包含硬件邏輯電路的特定硬件部件來(lái)執(zhí)行。那些操作可以替換地由可編程計(jì)算機(jī)元件和常規(guī)硬件元件的任意組合來(lái)執(zhí)行。
機(jī)器可讀介質(zhì)包含用于以機(jī)器(例如計(jì)算機(jī))可讀的形式來(lái)存儲(chǔ)或傳送信息的任何機(jī)構(gòu),包括但不限于光盤(pán)只讀存儲(chǔ)器(CD-ROM)、只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、可擦除可編程只讀存儲(chǔ)器(EPROM)、以及互聯(lián)網(wǎng)上的傳輸。
主要通過(guò)參考特定實(shí)施例并且根據(jù)分配給某些硬件和/或軟件部件的功能已描述了本發(fā)明的應(yīng)用。然而本領(lǐng)域技術(shù)人員應(yīng)當(dāng)承認(rèn)在可確定等待時(shí)間網(wǎng)絡(luò)上建立的鎖步電路操作還可以通過(guò)軟件和硬件來(lái)產(chǎn)生,所述軟件和硬件可不同于此處所描述那樣來(lái)分配本發(fā)明實(shí)施例的功能。這種改變和實(shí)現(xiàn)應(yīng)當(dāng)理解為落入以下權(quán)利要求之中。
權(quán)利要求
1.一種方法,包括產(chǎn)生第一請(qǐng)求;接收第二請(qǐng)求;把該第一請(qǐng)求與該第二請(qǐng)求進(jìn)行比較;以及如果該第一請(qǐng)求與該第二請(qǐng)求相匹配,則發(fā)送合并請(qǐng)求。
2.權(quán)利要求1的方法,進(jìn)一步包括如果該第一請(qǐng)求不同于該第二請(qǐng)求,則發(fā)出鎖步失敗信號(hào)。
3.權(quán)利要求1的方法,其中接收該第二請(qǐng)求包括經(jīng)由固定等待時(shí)間互連來(lái)接收該第二請(qǐng)求。
4.權(quán)利要求1的方法,其中發(fā)送合并請(qǐng)求包括經(jīng)由固定等待時(shí)間互連來(lái)發(fā)送該合并請(qǐng)求。
5.權(quán)利要求1的方法,其中該第一請(qǐng)求和該第二請(qǐng)求是為了從存儲(chǔ)器中獲得數(shù)據(jù)。
6.權(quán)利要求1的方法,其中該第一請(qǐng)求和該第二請(qǐng)求是為了與一部件交換數(shù)據(jù);以及其中該部件不同于以鎖步進(jìn)行操作的多個(gè)設(shè)備。
7.一種方法,包括從通信網(wǎng)絡(luò)上的節(jié)點(diǎn)接收消息;分配緩沖區(qū)以保存確認(rèn);向多個(gè)設(shè)備中的一個(gè)發(fā)送該消息;從多個(gè)設(shè)備中的一個(gè)中接收確認(rèn);以及對(duì)該消息進(jìn)行處理。
8.權(quán)利要求7的方法,其中分配操作發(fā)生在發(fā)送操作之前,以及處理操作發(fā)生在接收確認(rèn)之后。
9.權(quán)利要求7的方法,其中對(duì)該消息進(jìn)行處理包括至少以下之一執(zhí)行指令;對(duì)數(shù)據(jù)值進(jìn)行操作;以及存儲(chǔ)數(shù)據(jù)值。
10.一種方法,包括從多個(gè)設(shè)備中的一個(gè)接收消息;經(jīng)由已知等待時(shí)間通信介質(zhì)向多個(gè)設(shè)備中的一個(gè)發(fā)送確認(rèn);等候預(yù)定的時(shí)間周期;以及對(duì)該消息進(jìn)行處理。
11.權(quán)利要求10的方法,其中,該預(yù)定的時(shí)間周期等于已知等待時(shí)間通信介質(zhì)的等待時(shí)間。
12.權(quán)利要求10的方法,其中該消息包括來(lái)自不同于該多個(gè)設(shè)備的一個(gè)部件的數(shù)據(jù)。
13.權(quán)利要求10的方法,其中對(duì)該消息進(jìn)行處理包括至少以下之一執(zhí)行指令;對(duì)數(shù)據(jù)值進(jìn)行操作;以及存儲(chǔ)數(shù)據(jù)值。
14.一種處理器,包括互連網(wǎng)絡(luò);連接于該網(wǎng)絡(luò)的多個(gè)處理器內(nèi)核,其中第一內(nèi)核以與第二內(nèi)核鎖步的模式進(jìn)行操作;連接于該網(wǎng)絡(luò)的設(shè)備;映射邏輯電路,確定該第一內(nèi)核、該第二內(nèi)核及該設(shè)備在網(wǎng)絡(luò)上的相對(duì)位置,以及識(shí)別該第一內(nèi)核與第二內(nèi)核中哪一個(gè)離內(nèi)該設(shè)備較近以及哪一個(gè)離該設(shè)備較遠(yuǎn);請(qǐng)求邏輯電路,對(duì)從該第一內(nèi)核和第二內(nèi)核到該設(shè)備的請(qǐng)求進(jìn)行協(xié)調(diào);以及響應(yīng)邏輯電路,對(duì)從該設(shè)備到該第一內(nèi)核和第二內(nèi)核的響應(yīng)進(jìn)行協(xié)調(diào)。
15.權(quán)利要求14的處理器,進(jìn)一步包括請(qǐng)求驗(yàn)證邏輯電路,將來(lái)自該第一內(nèi)核的第一請(qǐng)求與來(lái)自該第二內(nèi)核的第二請(qǐng)求進(jìn)行比較;其中如果該第一請(qǐng)求不與該第二請(qǐng)求相匹配,則該請(qǐng)求驗(yàn)證邏輯電路將發(fā)出鎖步失敗信號(hào)。
16.權(quán)利要求15的處理器,進(jìn)一步包括鎖步禁止邏輯電路,用于禁止鎖步邏輯元件。
17.權(quán)利要求14的處理器,進(jìn)一步包括鎖步恢復(fù)邏輯電路,用于使該第一內(nèi)核與該第二內(nèi)核同步。
18.權(quán)利要求14的處理器,其中請(qǐng)求邏輯電路用于從該較遠(yuǎn)的內(nèi)核向該較近的內(nèi)核發(fā)送第一請(qǐng)求;把該第一請(qǐng)求與該較近內(nèi)核的第二請(qǐng)求進(jìn)行比較;以及從該較近內(nèi)核向該設(shè)備發(fā)送合并請(qǐng)求。
19.權(quán)利要求14的處理器,其中響應(yīng)邏輯電路將在該較近內(nèi)核接收響應(yīng);在該較近內(nèi)核分配確認(rèn)緩沖區(qū);向該較遠(yuǎn)內(nèi)核發(fā)送該響應(yīng);以及延遲響應(yīng)處理直到從該較遠(yuǎn)內(nèi)核接收到確認(rèn)。
20.一種系統(tǒng),包括多個(gè)中央處理單元(CPU);存儲(chǔ)器;以及用于在CPU與存儲(chǔ)器之間承載數(shù)據(jù)的網(wǎng)絡(luò);其中來(lái)自該存儲(chǔ)器的消息經(jīng)由網(wǎng)絡(luò)到達(dá)第一CPU;該第一CPU經(jīng)由網(wǎng)絡(luò)向第二CPU發(fā)送該消息;該第二CPU經(jīng)由網(wǎng)絡(luò)向該第一CPU發(fā)送確認(rèn);以及該第二CPU在發(fā)送該確認(rèn)之后的預(yù)定時(shí)間周期開(kāi)始對(duì)該消息進(jìn)行處理。
21.權(quán)利要求20的系統(tǒng),其中該第一CPU在收到該確認(rèn)之后開(kāi)始對(duì)該消息進(jìn)行處理。
22.權(quán)利要求20的系統(tǒng),其中該預(yù)定的時(shí)間周期等于該確認(rèn)經(jīng)由網(wǎng)絡(luò)從該第二CPU傳到該第一CPU的等待時(shí)間。
全文摘要
描述并請(qǐng)求保護(hù)通過(guò)在每個(gè)設(shè)備上產(chǎn)生請(qǐng)求、比較這些請(qǐng)求、并向服務(wù)節(jié)點(diǎn)提交匹配的請(qǐng)求來(lái)以鎖步的模式運(yùn)行兩個(gè)或多個(gè)設(shè)備的方法。還描述并請(qǐng)求保護(hù)了采用所述方法的冗余執(zhí)行系統(tǒng)。
文檔編號(hào)H04L29/06GK1971548SQ20061017193
公開(kāi)日2007年5月30日 申請(qǐng)日期2006年11月17日 優(yōu)先權(quán)日2005年11月18日
發(fā)明者P·B·拉庫(kù)納斯, M·馬蒂娜, G·Z·克里索斯, S·S·穆克赫吉 申請(qǐng)人:英特爾公司