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

具有第一協(xié)議域和第二協(xié)議域的數(shù)據(jù)處理裝置及其方法

文檔序號(hào):6498251閱讀:159來源:國知局
具有第一協(xié)議域和第二協(xié)議域的數(shù)據(jù)處理裝置及其方法
【專利摘要】數(shù)據(jù)處理裝置(2)包括被配置為操作于寫進(jìn)程協(xié)議下的第一協(xié)議域A以及被配置為操作于探聽進(jìn)程協(xié)議下的第二協(xié)議域B。如果從第一協(xié)議域A向第二協(xié)議域B發(fā)出的掛起的寫請(qǐng)求的寫目標(biāo)地址和從第二協(xié)議域B向第一協(xié)議域A發(fā)出的掛起的探聽請(qǐng)求的探聽目標(biāo)地址一樣,則死鎖狀態(tài)被檢測(cè)到。當(dāng)死鎖狀態(tài)被檢測(cè)到時(shí),域間的橋(4)可以對(duì)死鎖的寫請(qǐng)求和探聽請(qǐng)求中選定的一個(gè)做出早期響應(yīng)而不需要等待選定請(qǐng)求被服務(wù)。早期響應(yīng)對(duì)發(fā)出選定請(qǐng)求的域指示選定請(qǐng)求已經(jīng)被服務(wù),從而使其它請(qǐng)求可以被發(fā)出域服務(wù)。
【專利說明】具有第一協(xié)議域和第二協(xié)議域的數(shù)據(jù)處理裝置及其方法

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,更特別地,本發(fā)明涉及包括具有不同協(xié)議用于處理寫 請(qǐng)求和探聽請(qǐng)求的第一協(xié)議域和第二協(xié)議域的數(shù)據(jù)處理裝置。

【背景技術(shù)】
[0002] 數(shù)據(jù)處理裝置可以在多個(gè)位置儲(chǔ)存同一數(shù)據(jù)的不同版本。例如,兩個(gè)設(shè)備可以各 自具有本地緩沖器,并且每個(gè)緩沖器可以同時(shí)保持與內(nèi)存中同一地址關(guān)聯(lián)的數(shù)據(jù)的多個(gè)版 本。一致性協(xié)議(例如,MESI協(xié)議)可以被用于確保同一數(shù)據(jù)的多個(gè)版本的一致性。一致 性協(xié)議可以使用寫請(qǐng)求和探聽請(qǐng)求來保持一致性。例如,儲(chǔ)存有數(shù)據(jù)值的本地版本的設(shè)備 可以發(fā)出寫請(qǐng)求以請(qǐng)求將本地版本寫入另一位置(比如內(nèi)存)。然后其它設(shè)備可以從其它 位置訪問更新過的本地版本。或者,如果設(shè)備要求訪問特定數(shù)據(jù)值,則它可以向其它設(shè)備發(fā) 出探聽請(qǐng)求以檢查那些設(shè)備是否儲(chǔ)存有該數(shù)據(jù)的本地版本,如果是,則要求訪問本地版本。 因此,使用寫請(qǐng)求和探聽請(qǐng)求數(shù)據(jù)的一致性可以被維持。


【發(fā)明內(nèi)容】

[0003] 從一個(gè)方面來看,本發(fā)明提供一種數(shù)據(jù)處理裝置,包括:
[0004] 第一協(xié)議域和第二協(xié)議域,各自包括至少一個(gè)被配置為發(fā)出用于將與寫目標(biāo)地址 關(guān)聯(lián)的數(shù)據(jù)的本地版本寫入另一位置的寫請(qǐng)求并接收用于訪問與探聽目標(biāo)地址關(guān)聯(lián)的數(shù) 據(jù)的本地版本的探聽請(qǐng)求的設(shè)備;以及
[0005] 橋,被配置為在所述第一協(xié)議域和所述第二協(xié)議域之間傳送所述寫請(qǐng)求和所述探 聽請(qǐng)求;
[0006] 其中所述第一協(xié)議域被配置為在寫進(jìn)程協(xié)議下操作,其中,如果掛起的寫請(qǐng)求的 所述寫目標(biāo)地址和掛起的探聽請(qǐng)求的所述探聽目標(biāo)地址一樣,則所述掛起的探聽請(qǐng)求被阻 塞直到所述掛起的寫請(qǐng)求被服務(wù);
[0007] 所述第二協(xié)議域被配置為在探聽進(jìn)程協(xié)議下操作,其中,如果掛起的寫請(qǐng)求的所 述寫目標(biāo)地址和掛起的探聽請(qǐng)求的所述探聽目標(biāo)地址一樣,所述掛起的寫請(qǐng)求被阻塞直到 所述掛起的探聽請(qǐng)求被服務(wù);
[0008] 所述橋被配置為檢測(cè)死鎖狀態(tài),在所述死鎖狀態(tài)下,由所述第一協(xié)議域向所述第 二協(xié)議域發(fā)出的掛起的寫請(qǐng)求的所述寫目標(biāo)地址與由所述第二協(xié)議域向所述第一協(xié)議域 發(fā)出的掛起的探聽請(qǐng)求的所述探聽目標(biāo)地址一樣;以及
[0009] 所述橋被配置為在檢測(cè)到所述死鎖狀態(tài)時(shí)對(duì)選定請(qǐng)求做出早期響應(yīng),而不用等待 所述選定請(qǐng)求被服務(wù),所述選定請(qǐng)求包括所述掛起的寫請(qǐng)求或所述掛起的探聽請(qǐng)求,所述 早期寫響應(yīng)向發(fā)出所述選定請(qǐng)求的發(fā)出協(xié)議域指示所述選定請(qǐng)求已被服務(wù)。
[0010] 如果探聽請(qǐng)求和寫請(qǐng)求關(guān)于同一目標(biāo)地址掛起,探聽請(qǐng)求訪問的數(shù)據(jù)的狀態(tài)可以 不同,取決于在服務(wù)探聽請(qǐng)求時(shí)寫請(qǐng)求是否已經(jīng)被服務(wù)。因此,不同協(xié)議可以規(guī)定不同規(guī) 則以決定寫請(qǐng)求和探聽請(qǐng)求中的哪一個(gè)被先服務(wù)。在探聽進(jìn)程協(xié)議中,掛起的寫請(qǐng)求被拖 延直到掛起的探聽請(qǐng)求被服務(wù),而在寫進(jìn)程協(xié)議中掛起的探聽請(qǐng)求被拖延直到寫請(qǐng)求被服 務(wù)。
[0011] 本技術(shù)認(rèn)識(shí)到在具有使用寫進(jìn)程協(xié)議的第一協(xié)議域和使用探聽進(jìn)程協(xié)議的第二 協(xié)議域的裝置中可能出現(xiàn)死鎖狀態(tài)。如果由第一協(xié)議域向第二協(xié)議域發(fā)出的掛起的寫請(qǐng)求 的寫目標(biāo)地址和由第二過程向第一協(xié)議域發(fā)出的掛起的探聽請(qǐng)求的探聽目標(biāo)地址一樣,則 死鎖狀態(tài)發(fā)生。在這種狀態(tài)中,根據(jù)寫進(jìn)程協(xié)議,第一協(xié)議域?qū)⑼涎訏炱鸬奶铰犝?qǐng)求直到掛 起的寫請(qǐng)求已經(jīng)被服務(wù)。然而,根據(jù)探聽進(jìn)程協(xié)議,掛起的寫請(qǐng)求不會(huì)被服務(wù)因?yàn)榈诙f(xié)議 域?qū)⑼涎訏炱鸬膶懻?qǐng)求直到掛起的探聽請(qǐng)求已經(jīng)被服務(wù)。
[0012] 為解決這個(gè)問題,連接第一協(xié)議域和第二協(xié)議域的橋可以檢測(cè)死鎖狀態(tài)是否已發(fā) 生。如果死鎖狀態(tài)被檢測(cè)到,則橋?qū)?duì)掛起的寫請(qǐng)求或掛起的探聽請(qǐng)求做出早期響應(yīng),而不 用等待該請(qǐng)求被服務(wù)(對(duì)其做出早起響應(yīng)的請(qǐng)求被稱為"選定請(qǐng)求")。早期寫響應(yīng)向發(fā)出 選定請(qǐng)求的發(fā)出協(xié)議域指示選定請(qǐng)求已被服務(wù),即使選定請(qǐng)求實(shí)際上并沒有被服務(wù)。由于 從發(fā)出協(xié)議域的角度看選定請(qǐng)求顯得已經(jīng)被服務(wù),因此掛起的寫請(qǐng)求和掛起的探聽請(qǐng)求中 的另一個(gè)不再被阻塞,這樣發(fā)出協(xié)議域現(xiàn)在則可以服務(wù)另一請(qǐng)求。因此,死鎖被解決。
[0013] 寫請(qǐng)求可以包括寫回請(qǐng)求(write back request)或?qū)懬逭?qǐng)求(write clean request)。發(fā)出寫回請(qǐng)求的設(shè)備使它的被寫回另一位置的數(shù)據(jù)的本地版本無效。因此,設(shè) 備對(duì)數(shù)據(jù)不再具有獨(dú)有訪問,其它設(shè)備現(xiàn)在可以不需要與該設(shè)備協(xié)商即可訪問數(shù)據(jù)。
[0014] 另一方面,發(fā)出寫清請(qǐng)求的設(shè)備可以保留對(duì)被寫回到其它位置的數(shù)據(jù)的獨(dú)有訪 問。數(shù)據(jù)的本地版本將經(jīng)常被發(fā)出寫清請(qǐng)求的設(shè)備保留。然而,在一些場(chǎng)合設(shè)備可以使高 速緩存中的數(shù)據(jù)無效,但是保留獨(dú)有訪問以允許數(shù)據(jù)被重新載入到高速緩存中而不需要發(fā) 出探聽請(qǐng)求去檢查另一設(shè)備是否正在儲(chǔ)存有相應(yīng)版本的數(shù)據(jù)。設(shè)備保留獨(dú)有訪問時(shí),如果 另一設(shè)備希望儲(chǔ)存數(shù)據(jù)的本地版本,則該另一設(shè)備將向該設(shè)備發(fā)出探聽請(qǐng)求以請(qǐng)求訪問數(shù) 據(jù)。
[0015] 在橋做出早期響應(yīng)以解除死鎖后,發(fā)出協(xié)議域可以發(fā)出與對(duì)其作出早期響應(yīng)的選 定請(qǐng)求具有相同目標(biāo)地址的另一選定請(qǐng)求。例如,如果選定請(qǐng)求是掛起的寫請(qǐng)求,則第一協(xié) 議域可以向同樣的目標(biāo)地址發(fā)出另一寫請(qǐng)求,而如果選定請(qǐng)求是掛起的探聽請(qǐng)求,則第二 協(xié)議域可以向同樣的目標(biāo)地址發(fā)出另一探聽請(qǐng)求。如果另一選定請(qǐng)求被發(fā)出,則新的選定 請(qǐng)求會(huì)再次阻塞其它請(qǐng)求的處理,從而引起死鎖狀態(tài)再次發(fā)生。這特別的對(duì)寫清請(qǐng)求和探 聽請(qǐng)求是個(gè)問題,因?yàn)榘l(fā)出寫清請(qǐng)求或探聽請(qǐng)求的設(shè)備比發(fā)出寫回請(qǐng)求的設(shè)備更可能對(duì)同 一目標(biāo)地址發(fā)出更多的寫請(qǐng)求。
[0016] 為解決這個(gè)問題,在對(duì)選定請(qǐng)求作出早期響應(yīng)后,橋可以檢測(cè)發(fā)出協(xié)議域是否發(fā) 出了另一選定請(qǐng)求,而如果是,則可以對(duì)發(fā)出協(xié)議域作出另一早期響應(yīng)。每次發(fā)出協(xié)議域?qū)?同一目標(biāo)地址發(fā)出另一選定請(qǐng)求時(shí),橋都可以保持發(fā)出早期響應(yīng)以確保其它請(qǐng)求可以被其 它協(xié)議域服務(wù)。
[0017] 發(fā)出協(xié)議域可以被配置為發(fā)出最多Μ個(gè)連續(xù)的、以同樣的地址為目標(biāo)的選定請(qǐng)求 (其中Μ是整數(shù))。因此,最終發(fā)出協(xié)議域?qū)⑼V拱l(fā)出以同一目標(biāo)地址為目標(biāo)的另一選定請(qǐng) 求,允許其它請(qǐng)求被其它協(xié)議域服務(wù)。
[0018] 如果選定請(qǐng)求是掛起的寫請(qǐng)求,則響應(yīng)于死鎖被檢測(cè)到,橋?qū)Φ谝粎f(xié)議域做出早 期寫響應(yīng),指示寫請(qǐng)求已經(jīng)在第二協(xié)議域被服務(wù),以允許探聽請(qǐng)求在第一協(xié)議域被服務(wù)。一 旦探聽請(qǐng)求被服務(wù),第二協(xié)議域可以做出包括探聽數(shù)據(jù)的探聽響應(yīng)。接收到探聽響應(yīng)時(shí),橋 可以將與探聽響應(yīng)相關(guān)聯(lián)的探聽數(shù)據(jù)和與掛起的寫請(qǐng)求相關(guān)聯(lián)的寫數(shù)據(jù)合并,并將合并的 數(shù)據(jù)傳送到第二協(xié)議域。通過合并寫數(shù)據(jù)和探聽數(shù)據(jù),探聽響應(yīng)可以被用于獲取響應(yīng)于寫 請(qǐng)求將被寫的數(shù)據(jù),因此第二協(xié)議域沒必要分別處理引起死鎖狀態(tài)的掛起的寫請(qǐng)求。這加 速了第二協(xié)議域在死鎖解決后的其他請(qǐng)求的處理。
[0019] 選定請(qǐng)求可以是對(duì)其檢測(cè)到死鎖的掛起的寫請(qǐng)求或掛起的探聽請(qǐng)求。在一些實(shí)施 例中,每次死鎖狀態(tài)被檢測(cè)到時(shí),橋可以做出選定請(qǐng)求的新的選擇。
[0020] 例如,橋可以選擇掛起的寫請(qǐng)求和掛起的探聽請(qǐng)求中最遲被橋檢測(cè)到的作為選定 請(qǐng)求。這種方法意味著后來請(qǐng)求的發(fā)出不會(huì)影響先前請(qǐng)求的處理方式,因?yàn)閷?duì)后來請(qǐng)求的 早期響應(yīng)推動(dòng)后來請(qǐng)求為先前請(qǐng)求讓路以允許先前請(qǐng)求被正常處理。
[0021] 在其它實(shí)施例中,選定請(qǐng)求可以是對(duì)其檢測(cè)到死鎖的掛起的探聽請(qǐng)求和掛起的寫 請(qǐng)求中預(yù)先確定的一個(gè)。例如,橋可以總是對(duì)第一協(xié)議域做出早期寫響應(yīng)以解決死鎖以及 允許掛起的探聽請(qǐng)求被第一協(xié)議域服務(wù),或可以總是對(duì)第二協(xié)議域做出早期探聽響應(yīng)以允 許掛起的寫請(qǐng)求被第二協(xié)議域服務(wù)。
[0022] 死鎖狀態(tài)的檢測(cè)可以通過多種方法實(shí)現(xiàn)。例如,橋本身可以通過監(jiān)控由第二協(xié)議 域發(fā)出的探聽請(qǐng)求的目標(biāo)地址和由第一協(xié)議域發(fā)出的寫請(qǐng)求的目標(biāo)地址檢測(cè)死鎖,并在匹 配地址被發(fā)現(xiàn)時(shí)觸發(fā)死鎖狀態(tài)。
[0023] 或者,第一協(xié)議域和第二協(xié)議域中的一個(gè)可以檢測(cè)死鎖狀態(tài)并且在檢測(cè)到死鎖狀 態(tài)時(shí)給橋發(fā)信號(hào)。響應(yīng)于該信號(hào),橋可以檢測(cè)到死鎖狀態(tài)并對(duì)選定請(qǐng)求作出早期響應(yīng)。因 此,橋本身實(shí)際上識(shí)別探聽請(qǐng)求和寫請(qǐng)求間的沖突并不不必要的--術(shù)語"檢測(cè)"可以包含 橋接收來自另一設(shè)備的指示死鎖已經(jīng)發(fā)生的信號(hào)。
[0024] 橋可以維持探聽隊(duì)列用于使由第二協(xié)議域向第一協(xié)議域發(fā)出的掛起的探聽請(qǐng)求 排隊(duì)。在一些系統(tǒng)中,第一協(xié)議域和第二協(xié)議域中的至少一個(gè)可以按掛起的探聽請(qǐng)求被發(fā) 出的順序?qū)ζ浞?wù)。在這種系統(tǒng)中,如果探聽隊(duì)列中最老的未被解決的的探聽請(qǐng)求被阻塞, 則其它探聽請(qǐng)求可能不能被服務(wù),即使和后來的探聽請(qǐng)求關(guān)聯(lián)的目標(biāo)地址沒有被掛起的寫 請(qǐng)求死鎖。因此,橋可以優(yōu)先解決探聽隊(duì)列中和最老的未被解決的探聽請(qǐng)求關(guān)聯(lián)的死鎖狀 態(tài)。例如,如果探聽隊(duì)列包含多個(gè)掛起的探聽請(qǐng)求,則橋可以只響應(yīng)于對(duì)探聽隊(duì)列中還沒接 收到探聽響應(yīng)的最老的探聽請(qǐng)求檢測(cè)死鎖狀態(tài)做出早期響應(yīng)(響應(yīng)于最老的探聽請(qǐng)求或 響應(yīng)于與最老的探聽請(qǐng)求相沖突的寫請(qǐng)求做出早期響應(yīng)將,取決于哪個(gè)請(qǐng)求是選定請(qǐng)求)。
[0025] 橋可以有寫緩沖器以緩沖第一協(xié)議域向第二協(xié)議域發(fā)出的掛起的寫請(qǐng)求(在一 些實(shí)施例中緩沖器也可以緩沖相反方向的寫請(qǐng)求)。在一些示例中,緩沖器可以實(shí)際儲(chǔ)存掛 起的寫請(qǐng)求,而在其它示例中緩沖器可以儲(chǔ)存數(shù)據(jù)以追蹤掛起的寫請(qǐng)求而不用實(shí)際儲(chǔ)存請(qǐng) 求。
[0026] 如果對(duì)掛起的寫請(qǐng)求做出早期響應(yīng)后,對(duì)同一寫目標(biāo)地址的更多的寫請(qǐng)求被第一 協(xié)議域發(fā)出并且寫緩沖器沒有足夠的空間緩沖新的寫請(qǐng)求,問題將會(huì)產(chǎn)生。例如,觸發(fā)早期 寫響應(yīng)的掛起的寫請(qǐng)求可能已經(jīng)占用了緩沖器中最后的可用空間。在這種情況下,緩沖器 空間的不足可能會(huì)阻止更多的寫請(qǐng)求被第一協(xié)議域接收,因而第一協(xié)議域的寫進(jìn)程協(xié)議可 能使第一協(xié)議域繼續(xù)阻塞掛起的探聽請(qǐng)求直到更多的寫請(qǐng)求被接收到寫緩沖器上。
[0027] 為解決這個(gè)問題,橋可以將更多的寫請(qǐng)求和同一目標(biāo)地址的掛起的寫請(qǐng)求進(jìn)行合 并,以允許兩種寫請(qǐng)求被緩沖。合并后的寫請(qǐng)求可以是這樣的,也即與合并后的請(qǐng)求相關(guān)聯(lián) 的數(shù)據(jù)和通過執(zhí)行原始掛起的寫請(qǐng)求和隊(duì)列中更多的寫請(qǐng)求得到的數(shù)據(jù)是一樣的。通過合 并以相同地址為目標(biāo)的寫請(qǐng)求,更多的寫請(qǐng)求可以被橋接收,因而已經(jīng)接收對(duì)更多的寫請(qǐng) 求的早期寫響應(yīng)的第一協(xié)議域現(xiàn)在可以服務(wù)于掛起的探聽請(qǐng)求以解決死鎖。
[0028] 寫緩沖器可以被設(shè)置為保留檢測(cè)到死鎖狀態(tài)的掛起的寫請(qǐng)求直到對(duì)相互沖突的 掛起的探聽請(qǐng)求的探聽響應(yīng)已經(jīng)從第一協(xié)議域被接收。這樣,引起死鎖的掛起的寫請(qǐng)求與 由第一協(xié)議域發(fā)出的后來的寫請(qǐng)求的合并仍然是可用的直到探聽請(qǐng)求被服務(wù)。
[0029] 寫緩沖器還可以使用寫請(qǐng)求的合并以解決對(duì)同樣的目標(biāo)寫地址的重復(fù)的寫請(qǐng)求, 不論是否已識(shí)別出對(duì)目標(biāo)地址的死鎖狀態(tài)。例如,如果第一協(xié)議域?qū)ν粚懩繕?biāo)地址發(fā)出 兩個(gè)連續(xù)的寫請(qǐng)求,則這些可以被合并以節(jié)省緩沖器空間。
[0030] 第一協(xié)議域可以被配置為處理最多N個(gè)向第二協(xié)議域發(fā)出的掛起寫請(qǐng)求,并且寫 緩沖器可以有能力緩沖至少N個(gè)由第一協(xié)議域向第二協(xié)議域發(fā)出的掛起寫請(qǐng)求,其中N是 整數(shù)。通過提供對(duì)至少和第一協(xié)議域一次能處理的寫請(qǐng)求一樣多的寫請(qǐng)求提供緩沖能力, 緩沖器使橋?qū)M(jìn)入的探聽請(qǐng)求的探聽目標(biāo)地址和第一協(xié)議域發(fā)出的每個(gè)掛起的寫請(qǐng)求的 寫目標(biāo)地址進(jìn)行比較以檢測(cè)死鎖狀態(tài)。
[0031] 在一些示例中,裝置可以包括耦接于橋和第一協(xié)議域間的寫分段緩沖器。寫分段 緩沖器可以接收第一協(xié)議域發(fā)出的寫請(qǐng)求,并且如果寫緩沖器上有空間緩沖寫請(qǐng)求時(shí)將寫 請(qǐng)求傳遞到橋。這可以減少橋和第一協(xié)議域間需要的用于判定消息是否能在橋被接收的握 手信號(hào)的數(shù)量。
[0032] 當(dāng)死鎖狀態(tài)被檢測(cè)到并且早期寫響應(yīng)被做出(比如,選定請(qǐng)求是掛起寫請(qǐng)求)時(shí), 橋可以取消觸發(fā)死鎖的掛起寫請(qǐng)求。第二協(xié)議域可以保留用于處理寫請(qǐng)求的處理資源(比 如,緩沖器入口),因而當(dāng)死鎖保持未被解決時(shí)取消寫請(qǐng)求使這些資源能夠被重新分配到另 一請(qǐng)求。被取消的寫請(qǐng)求通過合并寫數(shù)據(jù)和探聽響應(yīng)仍然可以被有效地服務(wù),如上所述。
[0033] 被取消的寫請(qǐng)求可以被保留在寫緩沖器中直到掛起的探聽請(qǐng)求的探聽響應(yīng)從第 一協(xié)議域被接收,從而允許與上述后來的寫請(qǐng)求合并。
[0034] 需要領(lǐng)會(huì)的是,雖然在一些實(shí)施例中橋相對(duì)于第一協(xié)議域和第二協(xié)議域是單獨(dú)的 實(shí)體,在其它實(shí)施例中橋可以被實(shí)施作為第一協(xié)議域或第二協(xié)議域中的設(shè)備的一部分。
[0035] 從另一方面看,本發(fā)明提供一種數(shù)據(jù)處理裝置,包括:
[0036] 用于執(zhí)行數(shù)據(jù)處理的第一協(xié)議域裝置和第二協(xié)議域裝置,各自包括至少一個(gè)發(fā)出 用于將與寫目標(biāo)地址關(guān)聯(lián)的數(shù)據(jù)的本地版本寫入另一位置的寫請(qǐng)求并接收用于訪問與探 聽目標(biāo)地址關(guān)聯(lián)的數(shù)據(jù)的本地版本的探聽請(qǐng)求的設(shè)備;以及
[0037] 用于在所述第一協(xié)議域裝置和所述第二協(xié)議域裝置之間傳送所述寫請(qǐng)求和所述 探聽請(qǐng)求的橋裝置;
[0038] 其中所述第一協(xié)議域裝置被配置為在寫進(jìn)程協(xié)議下操作,其中,如果用于掛起的 寫請(qǐng)求的所述寫目標(biāo)地址和用于掛起的探聽請(qǐng)求的所述探聽目標(biāo)地址一樣,所述掛起的探 聽請(qǐng)求被阻塞直到所述掛起的寫請(qǐng)求被服務(wù);
[0039] 所述第二協(xié)議域裝置被配置為在探聽進(jìn)程協(xié)議下操作,其中,如果用于掛起的寫 請(qǐng)求的所述寫目標(biāo)地址和用于掛起的探聽請(qǐng)求的所述探聽目標(biāo)地址一樣,所述掛起的寫請(qǐng) 求被阻塞直到所述掛起的探聽請(qǐng)求被服務(wù);
[0040] 所述橋裝置被配置為檢測(cè)死鎖狀態(tài),在所述死鎖狀態(tài)下,由所述第一協(xié)議域裝置 向所述第二協(xié)議域裝置發(fā)出的掛起的寫請(qǐng)求的所述寫目標(biāo)地址與由所述第二協(xié)議域方法 向所述第一協(xié)議域方法發(fā)出的掛起的探聽請(qǐng)求的所述探聽目標(biāo)地址一樣;以及
[0041] 所述橋裝置被配置為在檢測(cè)到所述死鎖狀態(tài)時(shí)對(duì)選定請(qǐng)求做出早期響應(yīng)而無需 等待所述選定請(qǐng)求被服務(wù),所述選定請(qǐng)求包括所述掛起的寫請(qǐng)求或所述掛起的探聽請(qǐng)求, 所述早期寫響應(yīng)向發(fā)出所述選定請(qǐng)求的發(fā)出協(xié)議域指示所述選定請(qǐng)求已被服務(wù)。
[0042] 從再一方面看,本發(fā)明提供用于包括第一協(xié)議域和第二協(xié)議域的裝置的方法,所 述第一協(xié)議域和第二協(xié)議域各自包括至少一個(gè)被配置為發(fā)出用于將與寫目標(biāo)地址關(guān)聯(lián)的 數(shù)據(jù)的本地版本寫入另一位置以及接收用于訪問與探聽目標(biāo)地址關(guān)聯(lián)的數(shù)據(jù)的本地版本 的探聽請(qǐng)求的設(shè)備,其中所述第一協(xié)議域在寫進(jìn)程協(xié)議下操作,其中,如果掛起的寫請(qǐng)求的 所述寫目標(biāo)地址和掛起的探聽請(qǐng)求的所述探聽目標(biāo)地址一樣,所述掛起的探聽請(qǐng)求被阻塞 直到所述掛起的寫請(qǐng)求被服務(wù),所述第二協(xié)議域在探聽進(jìn)程協(xié)議下操作,其中,如果掛起的 寫請(qǐng)求的所述寫目標(biāo)地址和掛起的探聽請(qǐng)求的所述探聽目標(biāo)地址一樣,所述掛起的寫請(qǐng)求 被阻塞直到所述掛起的探聽請(qǐng)求被服務(wù);
[0043] 所述方法包括以下步驟:
[0044] 檢測(cè)死鎖狀態(tài),在所述死鎖狀態(tài)下,所述第一協(xié)議域向所述第二協(xié)議域發(fā)出的所 述掛起的寫請(qǐng)求的寫目標(biāo)地址和所述第二協(xié)議域向所述第一協(xié)議域發(fā)出的所述掛起的探 聽請(qǐng)求的探聽目標(biāo)地址一樣;以及
[0045] 檢測(cè)到所述死鎖狀態(tài)時(shí),對(duì)選定請(qǐng)求做出早期響應(yīng)而無需等待所述選定請(qǐng)求被服 務(wù),所述選定請(qǐng)求包括所述掛起的寫請(qǐng)求或所述掛起的探聽請(qǐng)求,所述早期響應(yīng)對(duì)發(fā)出所 述選定請(qǐng)求的發(fā)出協(xié)議域指示所述選定請(qǐng)求已經(jīng)被服務(wù)。
[0046] 本發(fā)明的更多特定和優(yōu)選方面在所附獨(dú)立權(quán)利要求和從屬權(quán)利要求中被陳述。適 當(dāng)?shù)臅r(shí)候獨(dú)立權(quán)利要求的特征和從屬權(quán)利要求的特征可以被結(jié)合,而且結(jié)合不同于那些在 權(quán)利要求中被明確陳述的權(quán)利要求。

【專利附圖】

【附圖說明】
[0047] 圖1概略地示出具有第一協(xié)議域和第二協(xié)議域的數(shù)據(jù)處理裝置;
[0048] 圖2示出第一協(xié)議域的寫進(jìn)程協(xié)議的示例;
[0049] 圖3示出第二協(xié)議域的探聽進(jìn)程協(xié)議的示例;
[0050] 圖4示出死鎖狀態(tài)的示例;
[0051] 圖5示出用于解決死鎖狀態(tài)的技術(shù)的示例;
[0052] 圖6A和6B示出示例,其中死鎖狀態(tài)通過對(duì)掛起的寫請(qǐng)求和掛起的探聽請(qǐng)求中最 遲被檢測(cè)到的那個(gè)發(fā)出早期響應(yīng)被解決;
[0053] 圖7示出解決死鎖狀態(tài)的方法;
[0054] 圖8示出當(dāng)寫緩沖器已經(jīng)滿時(shí)如果第一協(xié)議域發(fā)出與被檢測(cè)到死鎖狀態(tài)的掛起 的寫請(qǐng)求具有同一目標(biāo)地址的另一寫請(qǐng)求時(shí)可能出現(xiàn)的問題。
[0055] 圖9示出通過將對(duì)同一目標(biāo)地址的另一寫請(qǐng)求與掛起的寫請(qǐng)求合并來解決圖8中 顯示的問題的技術(shù)的示例;以及
[0056] 圖10示出根據(jù)圖9的示例解決死鎖狀態(tài)的方法。

【具體實(shí)施方式】
[0057] 圖1示出包括第一協(xié)議域A、第二協(xié)議域B和連接這兩個(gè)域的橋4的數(shù)據(jù)處理裝 置2。每個(gè)協(xié)議域A、B包括多個(gè)經(jīng)由總線8相互通信的設(shè)備6。設(shè)備6可以包括任何種類 的處理設(shè)備或存儲(chǔ)設(shè)備并且可以包括主設(shè)備和從設(shè)備。每個(gè)協(xié)議域A、B可以包括至少一個(gè) 能夠發(fā)出寫請(qǐng)求以將數(shù)據(jù)值的本地版本寫入另一位置以及接收探聽請(qǐng)求以請(qǐng)求訪問數(shù)據(jù) 的本地版本的設(shè)備。寫請(qǐng)求和探聽請(qǐng)求可以在在同一協(xié)議域A、B或不同協(xié)議域中的設(shè)備間 被交換。
[0058] 橋4包括使一個(gè)協(xié)議域中的設(shè)備向另一個(gè)協(xié)議域中的設(shè)備發(fā)出的探聽請(qǐng)求排隊(duì) 的探聽隊(duì)列10、緩沖由一個(gè)域中的設(shè)備向另一個(gè)域中的設(shè)備發(fā)出的寫請(qǐng)求的寫請(qǐng)求緩沖器 12、以及儲(chǔ)存與緩沖在寫請(qǐng)求緩沖器12中的與寫請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)的寫數(shù)據(jù)緩沖器14。寫 分段緩沖器16也被提供于域A、B中的至少一個(gè)和橋4間以在寫請(qǐng)求被寫請(qǐng)求緩沖器12接 收之前對(duì)寫請(qǐng)求進(jìn)行分段。
[0059] 雖然在圖1中橋4被示出為獨(dú)立于處理域A和處理域B,需要領(lǐng)會(huì)的是在一些實(shí)施 例中橋4的功能可以使用域A、B其中一個(gè)中的設(shè)備6被實(shí)施。
[0060] 第一協(xié)議域A操作于寫進(jìn)程協(xié)議下。在寫進(jìn)程協(xié)議中,如果寫請(qǐng)求關(guān)于寫目標(biāo)地 址掛起并且探聽請(qǐng)求關(guān)于同一目標(biāo)地址也掛起,則掛起的探聽請(qǐng)求被阻塞直到寫請(qǐng)求被服 務(wù)。圖2顯示了域A的設(shè)備在寫進(jìn)程協(xié)議下操作的示例。該設(shè)備包括兩個(gè)主設(shè)備(比如處 理器)和可以是從設(shè)備(比如內(nèi)存)的一致性點(diǎn)(P0C)、經(jīng)由其請(qǐng)求被路由到從設(shè)備的互 連或總線(在一些系統(tǒng)中,互連或總線可以負(fù)責(zé)管理數(shù)據(jù)的一致性--在這種情況中互連 /總線可以對(duì)主設(shè)備表現(xiàn)為從設(shè)備)。
[0061] 在圖2中,主設(shè)備0向一致性點(diǎn)發(fā)出寫回(WB)或?qū)懬澹╓C)請(qǐng)求以將與目標(biāo)地址 A相關(guān)聯(lián)的本地?cái)?shù)據(jù)值經(jīng)由一致性點(diǎn)寫入可訪問的目標(biāo)位置。同時(shí),響應(yīng)于來自另一主設(shè) 備1的讀請(qǐng)求,一致性點(diǎn)向主設(shè)備〇發(fā)出有關(guān)同一目標(biāo)地址A的探聽請(qǐng)求。由于寫請(qǐng)求對(duì) 目標(biāo)地址A已經(jīng)掛起,因此探聽請(qǐng)求被主設(shè)備0阻塞直到來自一致性點(diǎn)的、指示寫已經(jīng)被服 務(wù)的寫響應(yīng)信號(hào)被接收。寫被服務(wù)后,探聽請(qǐng)求被消除阻塞并且對(duì)一致性點(diǎn)做出探聽響應(yīng), 一致性點(diǎn)隨后向主設(shè)備1發(fā)送探聽數(shù)據(jù)。
[0062] 與之相反,第二協(xié)議域B操作于探聽進(jìn)程下,其中,當(dāng)探聽請(qǐng)求掛起時(shí),與探聽請(qǐng) 求具有相同的目標(biāo)地址的寫請(qǐng)求被拖延直到探聽請(qǐng)求被服務(wù)。圖3顯示的是域B的設(shè)備在 探聽進(jìn)程協(xié)議下操作的示例。探聽請(qǐng)求被發(fā)出至主設(shè)備〇以請(qǐng)求訪問與目標(biāo)地址B相關(guān)聯(lián) 的數(shù)據(jù)的本地版本。另外,主設(shè)備〇對(duì)一致性點(diǎn)發(fā)出關(guān)于與同一目標(biāo)地址B相關(guān)聯(lián)的數(shù)據(jù) 的寫請(qǐng)求。根據(jù)探聽進(jìn)程協(xié)議,因?yàn)閷?duì)地址B的探聽請(qǐng)求是掛起的,所以寫請(qǐng)求不可以被服 務(wù)。因此,一致性點(diǎn)可以推遲寫數(shù)據(jù)請(qǐng)求直到主設(shè)備0對(duì)主設(shè)備1做出探聽響應(yīng)。主設(shè)備0 不可以發(fā)出寫數(shù)據(jù)直到來自一致性點(diǎn)的數(shù)據(jù)請(qǐng)求已經(jīng)被接收。因此,寫請(qǐng)求不可以被服務(wù) 直到探聽請(qǐng)求被服務(wù)。
[0063] 需要領(lǐng)會(huì)的是不同協(xié)議規(guī)定處理寫請(qǐng)求和探聽請(qǐng)求的不同方法。例如,寫響應(yīng)、寫 就緒和探聽響應(yīng)信號(hào)的作用在不同協(xié)議中可以不同。為本發(fā)明的目的,每個(gè)協(xié)議處理寫請(qǐng) 求和探聽請(qǐng)求的方式的準(zhǔn)確細(xì)節(jié)不重要,只要一個(gè)域操作于寫進(jìn)程協(xié)議而另一個(gè)域操作于 探聽進(jìn)程協(xié)議即可。
[0064] 同樣,雖然一些協(xié)議總是擔(dān)任寫進(jìn)程協(xié)議或探聽進(jìn)程協(xié)議,但是另一些協(xié)議可以 不總是這樣擔(dān)任,而可以(比如)只在某些條件下操作為寫進(jìn)程協(xié)議或探聽進(jìn)程協(xié)議。在 這種協(xié)議中,當(dāng)一個(gè)協(xié)議擔(dān)任寫進(jìn)程協(xié)議而另一協(xié)議擔(dān)任探聽進(jìn)程協(xié)議時(shí)本技術(shù)可以被應(yīng) 用,而在其它時(shí)候本技術(shù)不可以被應(yīng)用。因此,術(shù)語"被配置為操作于探聽/寫進(jìn)程協(xié)議下" 不意味著協(xié)議域需要總是操作于探聽/寫進(jìn)程協(xié)議下。
[0065] 圖4顯示在操作于寫進(jìn)程協(xié)議下的第一協(xié)議域A中的設(shè)備和操作于探聽進(jìn)程協(xié)議 下的第二協(xié)議域B中的設(shè)備之間進(jìn)行通信期間發(fā)生的死鎖狀態(tài)示例。如圖4所示,如果第 一協(xié)議域A對(duì)第二協(xié)議域B發(fā)出寫請(qǐng)求,并且第二協(xié)議域B對(duì)第一協(xié)議域A發(fā)出探聽請(qǐng)求, 則每個(gè)域都將阻塞接收到的請(qǐng)求。域A的設(shè)備將根據(jù)寫進(jìn)程協(xié)議阻塞接收到的對(duì)目標(biāo)地址 X的探聽請(qǐng)求,因?yàn)閷?duì)同一目標(biāo)地址X發(fā)出的寫請(qǐng)求還未被服務(wù)。域B的設(shè)備將根據(jù)探聽 進(jìn)程協(xié)議阻塞接收到的對(duì)目標(biāo)地址X的寫請(qǐng)求,因?yàn)閷?duì)同一目標(biāo)地址X發(fā)出的探聽請(qǐng)求還 未被服務(wù)。因此,域A和B都將等待對(duì)方進(jìn)行處理然后才進(jìn)行它們本身的處理,由此引起死 鎖。
[0066] 圖5顯示死鎖可以如何被解決的示例。通過檢查探聽請(qǐng)求和寫請(qǐng)求的地址或通過 接收來自協(xié)議域A、B其中一個(gè)的、指示存在死鎖狀態(tài)的信號(hào),橋4可以檢測(cè)死鎖狀態(tài)的存 在。當(dāng)檢測(cè)到死鎖時(shí),橋4對(duì)掛起的寫請(qǐng)求和掛起探聽請(qǐng)求中的一個(gè)做出早期響應(yīng)以指示 相應(yīng)的請(qǐng)求已經(jīng)被服務(wù)。在圖5的示例中,早期寫響應(yīng)被發(fā)送到第一協(xié)議域A以指示有關(guān)目 標(biāo)地址X的掛起的寫請(qǐng)求已經(jīng)被服務(wù),盡管該寫請(qǐng)求實(shí)際上沒有被第二協(xié)議域B服務(wù)。從 第一協(xié)議域的角度看,寫現(xiàn)在已經(jīng)被服務(wù),因此對(duì)探聽請(qǐng)求消除阻塞。探聽請(qǐng)求現(xiàn)在可以被 第一協(xié)議域A服務(wù)。探聽響應(yīng)被生成并經(jīng)由橋4被發(fā)送到第二協(xié)議域B。由于探聽響應(yīng)通 常將包含和目標(biāo)地址X對(duì)應(yīng)的最新數(shù)據(jù)(響應(yīng)于引起死鎖的掛起寫請(qǐng)求其將被寫回),因此 執(zhí)行寫請(qǐng)求就不再必要。如果掛起的寫請(qǐng)求的寫數(shù)據(jù)包括探聽響應(yīng)沒包括的數(shù)據(jù),則橋在 向第二協(xié)議域B發(fā)送響應(yīng)前可以合并寫數(shù)據(jù)和探聽響應(yīng)的探聽數(shù)據(jù)。
[0067] 因此,對(duì)寫請(qǐng)求做出早期響應(yīng)允許死鎖被解決,因而允許操作于相互沖突的一致 性協(xié)議下的域間的兼容通信。
[0068] 類似地,死鎖狀態(tài)可以通過對(duì)第二協(xié)議域B發(fā)出指示探聽請(qǐng)求已經(jīng)在第一協(xié)議域 A被服務(wù)的早期響應(yīng)以使掛起的寫請(qǐng)求能夠在第二協(xié)議域B被處理而解決。
[0069] 在一些實(shí)施例中橋4可以總是對(duì)寫請(qǐng)求發(fā)送早期寫響應(yīng),或者總是對(duì)探聽請(qǐng)求發(fā) 送早期探聽響應(yīng),以對(duì)死鎖狀態(tài)消除阻塞并允許另一個(gè)請(qǐng)求繼續(xù)。在這種實(shí)施例中,哪個(gè)請(qǐng) 求接收早期響應(yīng)是預(yù)先確定的并且哪個(gè)請(qǐng)求先被橋接收并沒有關(guān)系。
[0070] 然而,如圖6A和6B所示,在其它實(shí)施例中橋4可以對(duì)掛起探聽請(qǐng)求和掛起寫請(qǐng)求 中最遲被橋4檢測(cè)到的一個(gè)做出早期響應(yīng)。通過向?qū)ζ錂z測(cè)到死鎖的后來的請(qǐng)求發(fā)送早期 響應(yīng),先前的請(qǐng)求被消除阻塞并且可以以正常的方式被處理。這種方法意味著后來的請(qǐng)求 不會(huì)影響先前的請(qǐng)求被服務(wù)的方式。
[0071] 如圖6A所示,如果來自協(xié)議域A的掛起的寫請(qǐng)求WB先于來自第二協(xié)議域B的相 沖突的探聽請(qǐng)求Snp被橋4遇見,則對(duì)第二協(xié)議域B做出早期響應(yīng),指示探聽請(qǐng)求在第一協(xié) 議域A中已經(jīng)被服務(wù)。這對(duì)寫請(qǐng)求消除阻塞并使寫請(qǐng)求能夠被第二協(xié)議域B處理。
[0072] 然而,如圖6A所示,第二協(xié)議域B可能發(fā)出另一個(gè)以同一地址為目標(biāo)的探聽請(qǐng)求 Snp,這將再一次阻塞掛起寫請(qǐng)求WB。為解決這個(gè)問題,每次第二協(xié)議域發(fā)出以同一地址為 目標(biāo)的另一探聽請(qǐng)求時(shí),橋4都可以做出另一早期探聽響應(yīng)。最終,第二協(xié)議域B停止發(fā)出 以同一地址為目標(biāo)的探聽請(qǐng)求,因而現(xiàn)在準(zhǔn)備好處理掛起的寫請(qǐng)求。第二協(xié)議域B對(duì)橋4 做出寫響應(yīng)以指示已經(jīng)準(zhǔn)備好接收與寫請(qǐng)求相關(guān)聯(lián)的寫數(shù)據(jù)。橋4隨后向第一協(xié)議域發(fā)送 寫響應(yīng)B,而作為響應(yīng)第一協(xié)議域A向橋4發(fā)送寫確認(rèn)信號(hào)WACK。響應(yīng)于寫確認(rèn)信號(hào)WACK, 橋4將寫數(shù)據(jù)傳送到第二協(xié)議域B。
[0073] 另一方面,圖6B顯示了來自第二協(xié)議域B的探聽請(qǐng)求Snp先于來自第一協(xié)議域A 的寫請(qǐng)求WB被橋4檢測(cè)到的示例。由于寫請(qǐng)求WB是最遲被檢測(cè)到的,橋4對(duì)第一協(xié)議域 A做出早期響應(yīng),指示寫請(qǐng)求WB在第二協(xié)議域B已經(jīng)被服務(wù)(即使寫請(qǐng)求WB還沒有被服 務(wù))。這消除了對(duì)探聽請(qǐng)求Snp的阻塞,因此第一協(xié)議域A隨后對(duì)橋發(fā)送探聽響應(yīng)Rsp。同 樣,響應(yīng)于早期寫響應(yīng)B,第一協(xié)議域A向橋4發(fā)出寫確認(rèn)信號(hào)WACK。當(dāng)橋接收到對(duì)其已做 出早期寫響應(yīng)B的寫請(qǐng)求的寫確認(rèn)信號(hào)WACK時(shí),橋4合并寫數(shù)據(jù)緩沖器14中相應(yīng)的寫數(shù) 據(jù)和與探聽響應(yīng)Rsp相關(guān)聯(lián)的探聽數(shù)據(jù),以生成被傳輸?shù)降诙f(xié)議域B的被合并的寫/探 聽數(shù)據(jù)。被合并的數(shù)據(jù)是如果寫數(shù)據(jù)和探聽數(shù)據(jù)相繼被寫入目標(biāo)地址后將出現(xiàn)的數(shù)據(jù)。通 過以這種方式合并數(shù)據(jù),寫請(qǐng)求和探聽請(qǐng)求都可以被服務(wù)而不需要發(fā)出另一請(qǐng)求。
[0074] 圖7示出解決根據(jù)圖6A和6B的實(shí)施例所示的死鎖狀態(tài)的方法。在步驟20,對(duì)由 第一協(xié)議域A向第二協(xié)議域B發(fā)出的寫請(qǐng)求和由第二協(xié)議域B向第一協(xié)議域A發(fā)出的探聽 請(qǐng)求檢測(cè)到死鎖狀態(tài),兩個(gè)請(qǐng)求以同一地址為目標(biāo)。在步驟22,橋4判定探聽請(qǐng)求和寫請(qǐng)求 中哪個(gè)先被檢測(cè)到。第二個(gè)被檢測(cè)到的請(qǐng)求是對(duì)其作出早期響應(yīng)的選定請(qǐng)求。
[0075] 如果寫請(qǐng)求先被檢測(cè)到(圖6A中顯示的情況),則在步驟24對(duì)第二協(xié)議域B作出 早期探聽響應(yīng)。在步驟26,橋4檢測(cè)第二協(xié)議域B是否發(fā)出與對(duì)與對(duì)其做出早期響應(yīng)的探 聽請(qǐng)求具有同一目標(biāo)地址的另一探聽請(qǐng)求。如果是,則方法返回到步驟24,對(duì)第二協(xié)議域B 發(fā)出另一早期探聽響應(yīng)。
[0076] 每次第二協(xié)議域B對(duì)同一目標(biāo)地址發(fā)出另一探聽,另一早期探聽響應(yīng)就被做出, 直到最終第二協(xié)議域不對(duì)同一地址發(fā)出另一探聽請(qǐng)求。此時(shí),掛起的寫請(qǐng)求不再被阻塞并 且第二協(xié)議域B對(duì)橋4發(fā)出指示第二協(xié)議域B準(zhǔn)備好接收寫數(shù)據(jù)的就緒信號(hào)。響應(yīng)于就緒 信號(hào),在步驟28橋4對(duì)第一協(xié)議域A做出寫響應(yīng)。當(dāng)從第一協(xié)議域A接收到寫確認(rèn)信號(hào) WACK時(shí),則在步驟30橋4將與掛起的寫請(qǐng)求相關(guān)聯(lián)的來自寫數(shù)據(jù)緩沖器14的寫數(shù)據(jù)Data_ I傳送給第二協(xié)議域B。由于與目標(biāo)地址相關(guān)聯(lián)的數(shù)據(jù)現(xiàn)在已經(jīng)被提供給第二協(xié)議域B,因 此服務(wù)于對(duì)其做出了早期響應(yīng)的探聽請(qǐng)求現(xiàn)在就沒必要了。
[0077] 另一方面,如果在步驟22判定探聽請(qǐng)求在寫請(qǐng)求前被檢測(cè)到(圖6B顯示情況), 則寫請(qǐng)求是選定請(qǐng)求,在步驟32橋4對(duì)第一協(xié)議域A做出指示寫請(qǐng)求已經(jīng)在第二協(xié)議域B 被服務(wù)(盡管事實(shí)上寫請(qǐng)求沒有被服務(wù))的早期寫響應(yīng)。在步驟34,橋4判定是否接收到 對(duì)同一地址的另一寫請(qǐng)求。如果是,則在步驟36將新的寫請(qǐng)求和舊的寫請(qǐng)求在寫請(qǐng)求緩沖 器12中合并并且任何相關(guān)聯(lián)的寫數(shù)據(jù)也在寫數(shù)據(jù)緩沖器14中合并,然后在步驟32對(duì)第一 協(xié)議域A做出另一早期寫響應(yīng),以允許對(duì)掛起的探聽請(qǐng)求再次消除阻塞。
[0078] 最后,第一協(xié)議域A不發(fā)出以同一地址為目標(biāo)的更多的寫請(qǐng)求,并且對(duì)掛起的探 聽請(qǐng)求做出探聽響應(yīng)。響應(yīng)于早期寫響應(yīng)第一協(xié)議域A也發(fā)出寫確認(rèn)信號(hào)WACK,指示寫數(shù) 據(jù)緩沖器14中與寫請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)現(xiàn)在可以被傳輸?shù)降诙f(xié)議域B中。當(dāng)探聽響應(yīng)和 寫確認(rèn)信號(hào)被接收,則在步驟38橋4合并探聽響應(yīng)數(shù)據(jù)和引起死鎖的掛起的寫請(qǐng)求的寫數(shù) 據(jù)。在步驟40,包括被合并數(shù)據(jù)的探聽響應(yīng)被發(fā)送到第二協(xié)議域B。通過以這種方式合并 數(shù)據(jù),服務(wù)于對(duì)其做出早期響應(yīng)的寫請(qǐng)求就沒必要了,因?yàn)樘铰犝?qǐng)求已經(jīng)將要求的數(shù)據(jù)傳 達(dá)給第二協(xié)議域B。
[0079] 因此,通過對(duì)被檢測(cè)到死鎖的探聽請(qǐng)求和寫請(qǐng)求中的一個(gè)做出早期響應(yīng),死鎖可 以被解決以允許處理繼續(xù)進(jìn)行。
[0080] 圖8示出橋4的寫請(qǐng)求緩沖器12和寫數(shù)據(jù)緩沖器14變滿后可能出現(xiàn)的問題的示 例。緩沖器12、14具有用于有限數(shù)量寫請(qǐng)求的容量(圖8顯示示例中緩沖器可以容納4個(gè) 請(qǐng)求,但是需要領(lǐng)會(huì)的是事實(shí)上寫緩沖器12、14可以更大)。如圖8所示,在第一協(xié)議域A 發(fā)出關(guān)于四個(gè)目標(biāo)地址A、B、C、D的四個(gè)寫請(qǐng)求WriteClean-A到WriteClean-D后,緩沖器 就滿了并且不能接收任何更多的寫請(qǐng)求。地址A、B、C、D可以是相同的地址或不同的地址。
[0081] 如圖8所示,域B隨后可能發(fā)出關(guān)于探聽目標(biāo)地址A的探聽請(qǐng)求Snp-A。因?yàn)榇嬖?以地址A為目標(biāo)的掛起的寫請(qǐng)求WriteClean-A,則死鎖狀態(tài)被檢測(cè)到,橋4可以對(duì)第一協(xié)議 域A做出早期寫響應(yīng)B-A以嘗試解決死鎖狀態(tài)(在本例中,寫請(qǐng)求是選定請(qǐng)求)。
[0082] 然而,可能的是,在接收到指示寫請(qǐng)求WriteClean-A已經(jīng)被服務(wù)的早期寫響應(yīng) B-A后,第一協(xié)議域A可能發(fā)出關(guān)于同一地址A的另一寫請(qǐng)求WriteClean-A。在這種情況 下,探聽請(qǐng)求Snp-A仍然不能被服務(wù),因?yàn)楦鶕?jù)域A的寫進(jìn)程協(xié)議它被新的寫請(qǐng)求阻塞。此 夕卜,由于橋4中的寫緩沖器12已經(jīng)滿了,標(biāo)號(hào)5指示的新的寫請(qǐng)求將不會(huì)從寫分段緩沖器 16傳送出。因此,協(xié)議域A將判定該請(qǐng)求沒有被服務(wù)并且將繼續(xù)阻塞以同一目標(biāo)地址為目 標(biāo)的探聽請(qǐng)求Snp-A。
[0083] 這個(gè)問題可以通過允許橋4合并同一地址的新的寫請(qǐng)求和更老的寫請(qǐng)求被解決。 被合并的寫可以被生成為具有與如果較老的寫請(qǐng)求和較新的寫請(qǐng)求接連被執(zhí)行將在目標(biāo) 位置得到的數(shù)據(jù)等價(jià)的寫數(shù)據(jù)。通過合并請(qǐng)求,較遲的寫請(qǐng)求可以被接收到緩沖器中。隨后 橋4對(duì)第一協(xié)議域A做出另一早期寫響應(yīng)以指示更遲的寫請(qǐng)求已經(jīng)被服務(wù)(再次,盡管第 二協(xié)議域B事實(shí)上沒有服務(wù)這個(gè)寫響應(yīng))。第一協(xié)議域A的設(shè)備可以只發(fā)出以同一寫目標(biāo) 地址為目標(biāo)的有限數(shù)量的連續(xù)寫請(qǐng)求。因此,通過繼續(xù)對(duì)第一協(xié)議域A發(fā)出早期響應(yīng)消息, 每次對(duì)同一目標(biāo)地址的另一寫響應(yīng)被發(fā)出,以及通過合并緩沖器中同一地址的每個(gè)寫請(qǐng)求 和更早的請(qǐng)求,最終第一協(xié)議域A將對(duì)不同的目標(biāo)地址發(fā)出新的寫請(qǐng)求,因而消除對(duì)其死 鎖被檢測(cè)到的探聽請(qǐng)求的阻塞。于是探聽請(qǐng)求可以被服務(wù)。
[0084] 圖9顯示可以解決圖8顯示的問題的方式的示例。圖9顯示多個(gè)在下文關(guān)于被圈 起來的字母被指示和描述的操作。圖9描述和示出的操作順序不一定是操作實(shí)際上被實(shí)現(xiàn) 的順序--一些操作可以被并行執(zhí)行或者以不同的順序被執(zhí)行。
[0085] H:第二協(xié)議域B中的設(shè)備發(fā)出兩個(gè)分別指定目標(biāo)地址A和E的讀操作Rd-A、Rd-E。 由于與地址A和E相關(guān)聯(lián)的數(shù)據(jù)的版本可以被第一協(xié)議域中的設(shè)備儲(chǔ)存,因此讀操作Rd-A、 Rd-E觸發(fā)探聽請(qǐng)求Snp-A、Snp-E從第二域B被發(fā)往第一域A。
[0086] I :第一協(xié)議域A發(fā)出四個(gè)分別指定目標(biāo)地址A、B、C、D的寫請(qǐng)求WriteClean-A到 WriteClean-D。同樣,地址A、B、C、D可以是同樣的地址或不同的地址。如果地址B、C、D和 地址A不同,貝U寫請(qǐng)求WriteClean-B到WriteClean-D可以被第二域B服務(wù),因?yàn)閷?duì)這些請(qǐng) 求沒有檢測(cè)到死鎖。如果地址B、C、D中的任何地址和地址A-樣,則相應(yīng)寫請(qǐng)求不可以被 服務(wù),因?yàn)橛袑?duì)地址A的掛起的探聽請(qǐng)求。
[0087] J :第二協(xié)議域B檢測(cè)到死鎖狀態(tài)將在指定同一目標(biāo)地址的寫請(qǐng)求WriteClean-A 和探聽請(qǐng)求Snp-A間出現(xiàn),并且對(duì)橋4發(fā)出Cancel-A信號(hào)。
[0088] K :在接收到來自第二協(xié)議域B的Cancel-A信號(hào)之后,橋4檢測(cè)死鎖狀態(tài)并且取消 寫請(qǐng)求WriteClean-A以使它不再被服務(wù)(雖然不必要,但是取消寫請(qǐng)求可以釋放第二協(xié)議 域B中的資源以服務(wù)其它請(qǐng)求)。然而,被取消的寫請(qǐng)求WriteClean-A被保留在緩沖器中 以在必要時(shí)允許與隨后的請(qǐng)求進(jìn)行合并。
[0089] L :在檢測(cè)到死鎖狀態(tài)后,橋4對(duì)寫請(qǐng)求WriteClean-A發(fā)出早期寫響應(yīng)B-A。在接 收到早期寫響應(yīng)B-A后,第一域A判定寫已經(jīng)在第二域B中被服務(wù)。
[0090] 在接收到早期寫響應(yīng)B-A后,第一協(xié)議域A可以發(fā)出指定同一目標(biāo)地址A的另一 寫請(qǐng)求作為引起死鎖的寫請(qǐng)求(圖9中的情況M)、發(fā)出指定不同目標(biāo)地址的另一寫請(qǐng)求 (圖9中的情況P)或服務(wù)掛起的探聽請(qǐng)求(圖9中的情況Q)。
[0091] Μ :如果,響應(yīng)于早期寫響應(yīng)B-A,第一協(xié)議域A發(fā)出以其被檢測(cè)到死鎖的同一目標(biāo) 地址A為目標(biāo)地址的另一寫請(qǐng)求,那么:
[0092] N :橋4合并對(duì)同一目標(biāo)地址的新的寫請(qǐng)求和之前的寫請(qǐng)求。寫數(shù)據(jù)緩沖器14中 被合并的數(shù)據(jù)對(duì)應(yīng)于如果原始寫請(qǐng)求和隨后的寫請(qǐng)求相繼被執(zhí)行將產(chǎn)生的數(shù)據(jù)。
[0093] 0 :橋4發(fā)送另一早期寫響應(yīng)B-A到第一協(xié)議域A。因此,第一協(xié)議域A判定寫已 經(jīng)被服務(wù)并且可以再次選擇是對(duì)同一目標(biāo)地址發(fā)出另一寫請(qǐng)求(圖9中的情況M)、對(duì)不同 目標(biāo)地址(情況P)發(fā)出寫請(qǐng)求還是處理探聽請(qǐng)求(情況Q)。
[0094] P :如果域A發(fā)出寫請(qǐng)求WriteClean-E,其指定的目標(biāo)地址不同于引起死鎖的掛起 寫請(qǐng)求WriteClean-A的目標(biāo)地址,則對(duì)目標(biāo)地址A的死鎖被解決因?yàn)椴辉儆腥魏我缘刂稟 為目標(biāo)的掛起的寫請(qǐng)求。因此,第一協(xié)議域A現(xiàn)在能夠服務(wù)探聽響應(yīng)(圖9中字母Q所示)。
[0095] Q:協(xié)議域A將最終響應(yīng)于探聽請(qǐng)求Snp-A發(fā)出探聽響應(yīng)CRDATA-A。探聽響應(yīng)包 括與被維持在第一協(xié)議域A中的地址A相關(guān)聯(lián)的數(shù)據(jù)的本地版本的值以及與該本地版本的 一致性狀態(tài)相關(guān)的信息。
[0096] R:橋4接收探聽響應(yīng)并且合并與探聽響應(yīng)相關(guān)聯(lián)的探聽數(shù)據(jù)和對(duì)目標(biāo)地址A的與 被合并的寫請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)。
[0097] S :橋4發(fā)送被合并的相應(yīng)數(shù)據(jù)(被探聽的data-A)到第二協(xié)議域B。
[0098] T :第二協(xié)議域B使用接收到的探聽數(shù)據(jù)服務(wù)于讀請(qǐng)求Rd-A。不再必要執(zhí)行引起原 始死鎖的寫請(qǐng)求WriteClean-E,或任何指定同一目標(biāo)地址的中間的寫請(qǐng)求WriteClean-A, 因?yàn)榕c這些請(qǐng)求相關(guān)聯(lián)的寫數(shù)據(jù)已經(jīng)與探聽數(shù)據(jù)合并。
[0099] 需要領(lǐng)會(huì)的是,雖然圖9顯示了在死鎖被解決前只有兩個(gè)早期寫響應(yīng)B-A被要求 的示例,但是在其它場(chǎng)合第一協(xié)議域A可以重復(fù)發(fā)出以同一目標(biāo)地址為目標(biāo)的更多的寫請(qǐng) 求作為引起死鎖的寫請(qǐng)求(例如,圖9中的情況Μ連續(xù)出現(xiàn)多次)。在這種情況中,橋4將 繼續(xù)合并每個(gè)新的寫請(qǐng)求和之前的對(duì)同一地址的(字母Ν)的寫請(qǐng)求并且做出早期寫響應(yīng) (字母〇)直到最終第一協(xié)議域Α發(fā)出以不同地址(情況Ρ)為目標(biāo)的寫請(qǐng)求或服務(wù)于探聽 請(qǐng)求(情況Q)。
[0100] 同樣,在圖9的示例中,在字母P處對(duì)目標(biāo)地址E發(fā)出的寫請(qǐng)求WriteClean-E阻 塞了在字母Η處對(duì)目標(biāo)地址E的探聽請(qǐng)求Snp-E的服務(wù)。因此,對(duì)地址E另一死鎖狀態(tài)將 被檢測(cè),因而圖9中顯示的對(duì)地址A的同樣的操作將被用于地址E。對(duì)多于一個(gè)地址被檢測(cè) 死鎖狀態(tài),橋4可以一次解決一個(gè)死鎖,從與位于探聽隊(duì)列10的頭部的探聽請(qǐng)求相關(guān)聯(lián)的 死鎖開始。這是因?yàn)樵谝恍﹨f(xié)議中,阻塞探聽隊(duì)列10中最老的探聽可能會(huì)使隨后的探聽請(qǐng) 求也被阻塞。在這種情境下,橋4可以集中于解決識(shí)別出的探聽隊(duì)列頭部的探聽的死鎖狀 態(tài)。因此,不管較遲的探聽的狀態(tài)以及對(duì)那些較遲的探聽是否有死鎖,橋4可以對(duì)位于探聽 隊(duì)列10頭部的探聽檢測(cè)死鎖并且只有當(dāng)對(duì)最老的探聽請(qǐng)求的死鎖被檢測(cè)到時(shí)做出早期寫 響應(yīng)。
[0101] 不同于圖6A和6B顯示的示例,圖9顯示的示例中選定請(qǐng)求被預(yù)先確定為掛起的 寫響應(yīng),因此響應(yīng)于掛起的寫請(qǐng)求對(duì)第一協(xié)議域做出早期寫響應(yīng),而不考慮掛起的寫請(qǐng)求 和掛起的探聽請(qǐng)求中的哪個(gè)先到達(dá)橋4。
[0102] 圖9顯示的示例中死鎖狀態(tài)被第二協(xié)議域B識(shí)別出并且響應(yīng)于橋4發(fā)出的取消信 號(hào)Cancel-A橋4檢測(cè)到死鎖狀態(tài)。然而在另一實(shí)施例中,橋4本身可以檢測(cè)死鎖狀態(tài)以及 在檢測(cè)到死鎖狀態(tài)時(shí)取消寫請(qǐng)求WriteClean-A,而不用接收來自第二協(xié)議域B的信號(hào)。橋 4隨后可以對(duì)第二協(xié)議域B發(fā)出指示寫將被取消的信號(hào)。
[0103] 圖10顯示了檢測(cè)和解決根據(jù)圖9的示例的死鎖狀態(tài)的方法。在步驟50,檢測(cè)到對(duì) 以目標(biāo)地址X為目標(biāo)的寫請(qǐng)求和以同一目標(biāo)地址X為目標(biāo)探聽請(qǐng)求的死鎖狀態(tài),其中的寫 是從第一協(xié)議域A向第二協(xié)議域B發(fā)出的并且探聽是從第二協(xié)議域B向第一協(xié)議域A發(fā)出 的。死鎖狀態(tài)可以被橋4直接檢測(cè)到或響應(yīng)于來自協(xié)議域A、B的信號(hào)被橋4間接檢測(cè)到。
[0104] 如果死鎖狀態(tài)被檢測(cè)到,則在步驟60對(duì)目標(biāo)地址X的寫被橋4取消。同樣,在步 驟70向協(xié)議域A發(fā)出對(duì)目標(biāo)地址X的寫請(qǐng)求的早期寫響應(yīng)。
[0105] 在步驟80,橋4判定是否已經(jīng)接收到對(duì)目標(biāo)地址X的探聽響應(yīng)。如果沒有,則在步 驟90,橋判定是否已經(jīng)接收到來自第一協(xié)議域A的另一寫請(qǐng)求。如果已經(jīng)接收到另一寫請(qǐng) 求,則在步驟100橋4判定另一寫請(qǐng)求的目標(biāo)地址是否和對(duì)其檢測(cè)到死鎖的目標(biāo)地址X - 樣。如果目標(biāo)地址和地址X不一樣,或者在步驟90沒接收到寫,則橋4在步驟80繼續(xù)等待 探聽請(qǐng)求。
[0106] 然而,如果在步驟100確定另一寫請(qǐng)求的目標(biāo)地址和對(duì)其檢測(cè)到死鎖的目標(biāo)地址 X -樣,則在步驟110橋4合并該另一寫請(qǐng)求和對(duì)目標(biāo)地址X的掛起的寫請(qǐng)求,以使新的寫 能夠被緩沖器接收,即使緩沖器已經(jīng)滿了。在步驟120,橋4對(duì)目標(biāo)地址X的該新的寫請(qǐng)求 發(fā)出另一早期寫響應(yīng),以對(duì)第一協(xié)議域A指示寫請(qǐng)求已經(jīng)被服務(wù)(盡管它在第二協(xié)議域B 中實(shí)際上沒有被服務(wù))。現(xiàn)在方法返回到步驟80,橋再次等待來自第一協(xié)議域A的探聽響 應(yīng)。每次接收到對(duì)同一目標(biāo)地址X的新的請(qǐng)求時(shí)(步驟90和100),新的請(qǐng)求被和更早的以 同一地址為目標(biāo)的寫請(qǐng)求合并并且早期寫響應(yīng)被再次發(fā)送(步驟110和120)。
[0107] 如果在步驟100發(fā)現(xiàn)其他寫請(qǐng)求沒有指定與掛起的寫請(qǐng)求相同的目標(biāo)地址X,則 死鎖被打破因?yàn)椴辉儆幸耘c掛起的探聽請(qǐng)求同樣的地址為目標(biāo)的掛起的寫請(qǐng)求。因此,第 一協(xié)議域A現(xiàn)在可以處理探聽請(qǐng)求。
[0108] 當(dāng)探聽響應(yīng)在步驟80被接收,則在步驟130橋4合并探聽響應(yīng)中接收到的探聽數(shù) 據(jù)和對(duì)目標(biāo)地址X的掛起的寫請(qǐng)求的被緩沖的寫數(shù)據(jù)。在步驟140,被合并的數(shù)據(jù)被發(fā)送到 第二協(xié)議域B。在步驟150,對(duì)掛起的寫請(qǐng)求的緩沖器分配被釋放以便由其他請(qǐng)求使用。
[0109] 雖然本文描述了特定的實(shí)施例,需要領(lǐng)會(huì)的是本發(fā)明不限于此并且在本發(fā)明的范 圍內(nèi)可以對(duì)此作出許多修改和添加。例如,在不背離本發(fā)明的范圍時(shí)可以對(duì)下列獨(dú)立權(quán)利 要求的特征和從屬權(quán)利要求的特征作出各種組合。
【權(quán)利要求】
1. 一種數(shù)據(jù)處理裝置,包括: 第一協(xié)議域和第二協(xié)議域,各自包括至少一個(gè)被配置為發(fā)出用于將與寫目標(biāo)地址關(guān)聯(lián) 的數(shù)據(jù)的本地版本寫入另一位置的寫請(qǐng)求并接收用于訪問與探聽目標(biāo)地址關(guān)聯(lián)的數(shù)據(jù)的 本地版本的探聽請(qǐng)求的設(shè)備;以及 橋,被配置為在所述第一協(xié)議域和所述第二協(xié)議域之間傳送所述寫請(qǐng)求和所述探聽請(qǐng) 求; 其中所述第一協(xié)議域被配置為在寫進(jìn)程協(xié)議下操作,其中,如果掛起的寫請(qǐng)求的所述 寫目標(biāo)地址和掛起的探聽請(qǐng)求的所述探聽目標(biāo)地址一樣,則所述掛起的探聽請(qǐng)求被阻塞直 到所述掛起的寫請(qǐng)求被服務(wù); 所述第二協(xié)議域被配置為在探聽進(jìn)程協(xié)議下操作,其中,如果掛起的寫請(qǐng)求的所述寫 目標(biāo)地址和掛起的探聽請(qǐng)求的所述探聽目標(biāo)地址一樣,所述掛起的寫請(qǐng)求被阻塞直到所述 掛起的探聽請(qǐng)求被服務(wù); 所述橋被配置為檢測(cè)死鎖狀態(tài),在所述死鎖狀態(tài)下,由所述第一協(xié)議域向所述第二協(xié) 議域發(fā)出的掛起的寫請(qǐng)求的所述寫目標(biāo)地址與由所述第二協(xié)議域向所述第一協(xié)議域發(fā)出 的掛起的探聽請(qǐng)求的所述探聽目標(biāo)地址一樣;以及 所述橋被配置為在檢測(cè)到所述死鎖狀態(tài)時(shí)對(duì)選定請(qǐng)求做出早期響應(yīng),而不用等待所述 選定請(qǐng)求被服務(wù),所述選定請(qǐng)求包括所述掛起的寫請(qǐng)求或所述掛起的探聽請(qǐng)求,所述早期 寫響應(yīng)向發(fā)出所述選定請(qǐng)求的發(fā)出協(xié)議域指示所述選定請(qǐng)求已被服務(wù)。
2. 如權(quán)利要求1中所述數(shù)據(jù)處理裝置,其中所述寫請(qǐng)求包括寫回請(qǐng)求,發(fā)出寫回請(qǐng)求 的設(shè)備被配置為在與所述寫目標(biāo)地址關(guān)聯(lián)的所述數(shù)據(jù)的所述本地版本寫入到所述其它位 置后使所述本地版本無效。
3. 如1和2中任一權(quán)利要求所述數(shù)據(jù)處理裝置,其中所述寫請(qǐng)求包括寫清請(qǐng)求,發(fā)出寫 清請(qǐng)求的設(shè)備被允許在與所述寫目標(biāo)地址相關(guān)的所述數(shù)據(jù)的所述本地版本寫入到所述其 它位置后保留對(duì)具有所述寫目標(biāo)地址的所述數(shù)據(jù)的獨(dú)有訪問。
4. 如上述任一權(quán)利要求中所述數(shù)據(jù)處理裝置,其中所述橋被配置為在對(duì)所述選定請(qǐng)求 作出所述早期響應(yīng)后檢測(cè)所述發(fā)出協(xié)議域是否發(fā)出了與對(duì)其所述早期響應(yīng)被發(fā)出的選定 請(qǐng)求具有相同目標(biāo)地址的另一選定請(qǐng)求,并且如果是,則對(duì)所述發(fā)出協(xié)議域發(fā)出對(duì)所述其 它選定請(qǐng)求的早期響應(yīng)。
5. 如權(quán)利要求4中所述數(shù)據(jù)處理裝置,其中所述發(fā)出協(xié)議域被配置為發(fā)出最多Μ個(gè)連 續(xù)的、以同樣的目標(biāo)地址為目標(biāo)的選定請(qǐng)求,其中Μ是整數(shù)。
6. 如上述任一權(quán)利要求中所述數(shù)據(jù)處理裝置,其中如果所述選定請(qǐng)求是所述第一協(xié)議 域發(fā)出的所述掛起的寫請(qǐng)求,則在對(duì)所述掛起的寫請(qǐng)求發(fā)出所述早期響應(yīng)后從所述第一協(xié) 議域接收到對(duì)所述掛起的探聽請(qǐng)求的探聽響應(yīng)時(shí),所述橋被配置為將與所述探聽響應(yīng)相關(guān) 聯(lián)的探聽數(shù)據(jù)和與所述掛起的寫請(qǐng)求相關(guān)聯(lián)的寫數(shù)據(jù)合并,并且將合并后的數(shù)據(jù)傳送給所 述第二協(xié)議域。
7. 如上述任一權(quán)利要求中所述數(shù)據(jù)處理裝置,其中所述選定請(qǐng)求包括所述掛起的寫請(qǐng) 求和所述掛起的探聽請(qǐng)求中最遲被所述橋檢測(cè)到的那個(gè)。
8. 如權(quán)利要求1到6中任一權(quán)利要求所述數(shù)據(jù)處理裝置,其中所述選定請(qǐng)求包括所述 掛起的寫請(qǐng)求和所述掛起的探聽請(qǐng)求中被預(yù)先確定的那個(gè)。
9. 如上述任一權(quán)利要求中所述數(shù)據(jù)處理裝置,其中所述第一和第二協(xié)議域中的一個(gè)被 配置為檢測(cè)所述死鎖狀態(tài)并且在檢測(cè)到所述死鎖狀態(tài)的情況下發(fā)出信號(hào)給所述橋,所述橋 被配置為響應(yīng)于所述信號(hào)的接收檢測(cè)到所述死鎖狀態(tài)。
10. 如上述任一權(quán)利要求中所述數(shù)據(jù)處理裝置,其中所述橋被配置為維持探聽隊(duì)列以 使從所述第二協(xié)議域向所述第一協(xié)議域發(fā)出的掛起的探聽請(qǐng)求排隊(duì)。
11. 如權(quán)利要求10中所述數(shù)據(jù)處理裝置,其中如果所述探聽隊(duì)列包括多個(gè)掛起的探聽 請(qǐng)求,所述橋被配置為只有當(dāng)對(duì)所述探聽隊(duì)列中最老的未被解決的探聽請(qǐng)求檢測(cè)到死鎖狀 態(tài)時(shí)才對(duì)所述選定請(qǐng)求發(fā)出所述早期響應(yīng)。
12. 如上述任一權(quán)利要求中所述數(shù)據(jù)處理裝置,其中所述橋包括被配置為對(duì)從所述第 一協(xié)議域向所述第二協(xié)議域發(fā)出的掛起的寫請(qǐng)求進(jìn)行緩沖的寫緩沖器。
13. 如權(quán)利要求12中所述數(shù)據(jù)處理裝置,其中,在接收到來自所述第一協(xié)議域、與在所 述寫緩沖器中緩沖的掛起的寫請(qǐng)求具有相同的目標(biāo)寫地址的另外的寫請(qǐng)求時(shí),所述橋被配 置為將所述另外的寫請(qǐng)求和所述掛起的寫請(qǐng)求合并。
14. 如權(quán)利要求12和13中任一權(quán)利要求所述數(shù)據(jù)處理裝置,其中所述寫緩沖器被配置 為保留對(duì)其檢測(cè)到所述死鎖狀態(tài)的所述掛起的寫請(qǐng)求直到對(duì)所述探聽請(qǐng)求的探聽響應(yīng)從 所述第一協(xié)議域被接收。
15. 如權(quán)利要求12到14中任一權(quán)利要求所述數(shù)據(jù)處理裝置,其中所述第一協(xié)議域被配 置為處理最多N個(gè)掛起寫請(qǐng)求,并且所述寫緩沖器具有對(duì)至少N個(gè)來自所述第一協(xié)議域的 掛起的寫請(qǐng)求進(jìn)行緩沖的容量,其中N是整數(shù)。
16. 如權(quán)利要求12到15中任一權(quán)利要求所述數(shù)據(jù)處理裝置,包括被耦接于所述橋和所 述第一協(xié)議域間的寫分段緩沖器,其中所述寫分段緩沖器被配置為如果在所述寫緩沖器中 存在空間緩沖所述寫請(qǐng)求則接收由所述第一協(xié)議域發(fā)出的寫請(qǐng)求并將所述寫請(qǐng)求傳送給 所述橋。
17. 如上述任一權(quán)利要求中所述數(shù)據(jù)處理裝置,其中所述選定請(qǐng)求是對(duì)其檢測(cè)到所述 死鎖的所述掛起的寫請(qǐng)求,并且所述橋被配置為在對(duì)所述掛起的寫請(qǐng)求做出所述早期響應(yīng) 后取消所述掛起的寫請(qǐng)求。
18. 如權(quán)利要求17中所述數(shù)據(jù)處理裝置,包括被配置為對(duì)從所述第一協(xié)議域向所述第 二協(xié)議域發(fā)出的掛起的寫請(qǐng)求進(jìn)行緩沖的寫緩沖器,其中所述寫緩沖器被配置為保留被取 消的掛起的寫請(qǐng)求直到對(duì)所述掛起探聽請(qǐng)求的探聽響應(yīng)從所述第一協(xié)議域被接收。
19. 一種數(shù)據(jù)處理裝置,包括: 用于執(zhí)行數(shù)據(jù)處理的第一協(xié)議域裝置和第二協(xié)議域裝置,各自包括至少一個(gè)發(fā)出用于 將與寫目標(biāo)地址關(guān)聯(lián)的數(shù)據(jù)的本地版本寫入另一位置的寫請(qǐng)求并接收用于訪問與探聽目 標(biāo)地址關(guān)聯(lián)的數(shù)據(jù)的本地版本的探聽請(qǐng)求的設(shè)備;以及 用于在所述第一協(xié)議域裝置和所述第二協(xié)議域裝置之間傳送所述寫請(qǐng)求和所述探聽 請(qǐng)求的橋裝置; 其中所述第一協(xié)議域裝置被配置為在寫進(jìn)程協(xié)議下操作,其中,如果用于掛起的寫請(qǐng) 求的所述寫目標(biāo)地址和用于掛起的探聽請(qǐng)求的所述探聽目標(biāo)地址一樣,所述掛起的探聽請(qǐng) 求被阻塞直到所述掛起的寫請(qǐng)求被服務(wù); 所述第二協(xié)議域裝置被配置為在探聽進(jìn)程協(xié)議下操作,其中,如果用于掛起的寫請(qǐng)求 的所述寫目標(biāo)地址和用于掛起的探聽請(qǐng)求的所述探聽目標(biāo)地址一樣,所述掛起的寫請(qǐng)求被 阻塞直到所述掛起的探聽請(qǐng)求被服務(wù); 所述橋裝置被配置為檢測(cè)死鎖狀態(tài),在所述死鎖狀態(tài)下,由所述第一協(xié)議域裝置向所 述第二協(xié)議域裝置發(fā)出的掛起的寫請(qǐng)求的所述寫目標(biāo)地址與由所述第二協(xié)議域方法向所 述第一協(xié)議域方法發(fā)出的掛起的探聽請(qǐng)求的所述探聽目標(biāo)地址一樣;以及 所述橋裝置被配置為在檢測(cè)到所述死鎖狀態(tài)時(shí)對(duì)選定請(qǐng)求做出早期響應(yīng)而無需等待 所述選定請(qǐng)求被服務(wù),所述選定請(qǐng)求包括所述掛起的寫請(qǐng)求或所述掛起的探聽請(qǐng)求,所述 早期寫響應(yīng)向發(fā)出所述選定請(qǐng)求的發(fā)出協(xié)議域指示所述選定請(qǐng)求已被服務(wù)。
20.用于包括第一協(xié)議域和第二協(xié)議域的裝置的方法,所述第一協(xié)議域和第二協(xié)議域 各自包括至少一個(gè)被配置為發(fā)出用于將與寫目標(biāo)地址關(guān)聯(lián)的數(shù)據(jù)的本地版本寫入另一位 置以及接收用于訪問與探聽目標(biāo)地址關(guān)聯(lián)的數(shù)據(jù)的本地版本的探聽請(qǐng)求的設(shè)備,其中所述 第一協(xié)議域在寫進(jìn)程協(xié)議下操作,其中,如果掛起的寫請(qǐng)求的所述寫目標(biāo)地址和掛起的探 聽請(qǐng)求的所述探聽目標(biāo)地址一樣,所述掛起的探聽請(qǐng)求被阻塞直到所述掛起的寫請(qǐng)求被服 務(wù),所述第二協(xié)議域在探聽進(jìn)程協(xié)議下操作,其中,如果掛起的寫請(qǐng)求的所述寫目標(biāo)地址和 掛起的探聽請(qǐng)求的所述探聽目標(biāo)地址一樣,所述掛起的寫請(qǐng)求被阻塞直到所述掛起的探聽 請(qǐng)求被服務(wù); 所述方法包括以下步驟: 檢測(cè)死鎖狀態(tài),在所述死鎖狀態(tài)下,所述第一協(xié)議域向所述第二協(xié)議域發(fā)出的所述掛 起的寫請(qǐng)求的寫目標(biāo)地址和所述第二協(xié)議域向所述第一協(xié)議域發(fā)出的所述掛起的探聽請(qǐng) 求的探聽目標(biāo)地址一樣;以及 檢測(cè)到所述死鎖狀態(tài)時(shí),對(duì)選定請(qǐng)求做出早期響應(yīng)而無需等待所述選定請(qǐng)求被服務(wù), 所述選定請(qǐng)求包括所述掛起的寫請(qǐng)求或所述掛起的探聽請(qǐng)求,所述早期響應(yīng)對(duì)發(fā)出所述選 定請(qǐng)求的發(fā)出協(xié)議域指示所述選定請(qǐng)求已經(jīng)被服務(wù)。
【文檔編號(hào)】G06F12/08GK104145251SQ201280071045
【公開日】2014年11月12日 申請(qǐng)日期:2012年3月2日 優(yōu)先權(quán)日:2012年3月2日
【發(fā)明者】威廉·亨瑞·佛蘭德斯, 拉瑪穆爾西·古魯·普拉薩哈, 阿肖克·庫瑪爾·圖馬拉, 詹姆師德·加拉, 潘尼德拉·庫瑪·曼娜瓦 申請(qǐng)人:Arm有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1