亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

多處理器系統(tǒng)中維持數(shù)據(jù)一致性的方法和系統(tǒng)的制作方法

文檔序號:6562090閱讀:166來源:國知局
專利名稱:多處理器系統(tǒng)中維持數(shù)據(jù)一致性的方法和系統(tǒng)的制作方法
技術領域
本發(fā)明通常涉及多處理器計算機系統(tǒng),更具體地涉及在多處理器計算機系統(tǒng)中維持數(shù)據(jù)一致性的方法和系統(tǒng)。
背景技術
當數(shù)據(jù)遍及多處理器計算機系統(tǒng)地被分布時,存在數(shù)據(jù)一致性的問題。如果多處理器系統(tǒng)中多于一個的節(jié)點/處理器試圖在幾乎同一時刻或在重疊的時段之內存取和/或修改特定數(shù)據(jù)片,數(shù)據(jù)一致性就成為了問題。已經使用了許多不同的方法來保證數(shù)據(jù)一致性,并且這些方法通常都是通過使用多處理器系統(tǒng)中的從請求方處理器至其它處理器的、以及其它處理器之間的大量請求來保證數(shù)據(jù)一致性。例如,如果在特定處理器的高速緩沖存儲器(cache,簡稱高速緩存)中沒有找到數(shù)據(jù)行,該處理器可以發(fā)送請求至多處理器系統(tǒng)中的每個其它處理器以確定該數(shù)據(jù)行是否在這些其它處理器的高速緩存之一中被找到。這些處理事務(transaction)/命令往來(traffic)消耗了處理器/系統(tǒng)資源,作為結果,增加了多處理器系統(tǒng)內部的等待時間。因此,需要能夠有效地維持多處理器內部的數(shù)據(jù)一致性同時也減少處理事務并因而減少系統(tǒng)內部等待時間的系統(tǒng)和方法。

發(fā)明內容
本發(fā)明的實施例致力于現(xiàn)有技術中關于多處理器系統(tǒng)的缺陷并提供了新穎的和非顯而易見的系統(tǒng)和方法以維持多處理器系統(tǒng)內部的數(shù)據(jù)一致性。該多處理器系統(tǒng)包括具有高速緩存和目錄的第一處理器,具有目錄的第二處理器,以及至少一個具有目錄并獨立于第一和第二處理器的附加處理器。第一處理器被配置為確定在第一處理器的高速緩存中是否未找到數(shù)據(jù)行并為該數(shù)據(jù)行轉發(fā)請求至第二處理器。第二處理器被配置為從第二處理器轉發(fā)該數(shù)據(jù)行至第一處理器,更新第二處理器的目錄以反映出該數(shù)據(jù)行被轉發(fā)給第一處理器,并且轉發(fā)目錄更新消息給至少一個附加處理器以反映出該數(shù)據(jù)行被轉發(fā)給第一處理器。該目錄中的項目(entry)包括存儲地址、最近的數(shù)據(jù)保持設備,以及行狀態(tài)。
在某些方面,如果第一處理器確定具有數(shù)據(jù)行地址的項目未在第一處理器的目錄中被找到,則被發(fā)送以請求的第二處理器作為該數(shù)據(jù)行的歸屬代理(home agent)。如果第一處理器確定關于數(shù)據(jù)行地址的項目在第一處理器的目錄中被找到,則請求被發(fā)送給作為數(shù)據(jù)保持設備的第二處理器。同樣,第一處理器被配置為在第一處理器接收到來自第二處理器的數(shù)據(jù)行后使與第一處理器目錄中的數(shù)據(jù)行地址有關的項目無效。至少一個附加處理器被配置為響應所述至少一個附加處理器接收到所述目錄更新消息,而更新所述至少一個附加處理器的目錄以反映出所述數(shù)據(jù)行被轉發(fā)給所述第一處理器。
本發(fā)明的其它發(fā)明將在以下描述中部分地被闡明,并且從該描述部分地變得清楚,或者可以通過本發(fā)明的實踐來了解。本發(fā)明的各方面將通過所附的權利要求中具體指出的元件和組合被實現(xiàn)和達到。需要理解的是以上一般說明和以下詳細說明只是示范性和解釋性的,而不是對本發(fā)明如后附的保護范圍一樣進行限制。


附圖被加入并組成了該說明書的一部分,闡明了本發(fā)明的實施例,并與說明一起,解釋了本發(fā)明的原則。這里闡明的實施例目前是優(yōu)選的,然而需要了解本發(fā)明并不限于所示的具體布局和實現(xiàn)方式,其中圖1為表示依據(jù)本發(fā)明的維持多處理器計算機系統(tǒng)中的數(shù)據(jù)一致性的方法的流程圖;以及圖2A和2B分別為實現(xiàn)不同的數(shù)據(jù)一致性維持方法的多處理器計算機系統(tǒng)的結構圖。
具體實施例方式
如圖2A和2B中所闡明的,多處理器系統(tǒng)中的每個處理器10、11、12、13包括存儲數(shù)據(jù)行和目錄的數(shù)據(jù)高速緩存。目錄是顯示數(shù)據(jù)行如何流經多處理器系統(tǒng)的存儲資料庫(storage repository)。雖然不限于如下方式,但數(shù)據(jù)行的各目錄項目可以包括該數(shù)據(jù)行的存儲地址、最近的數(shù)據(jù)保持設備、以及數(shù)據(jù)行狀態(tài)。作為示例,行狀態(tài)可以是處理器具有數(shù)據(jù)行的獨占權、數(shù)據(jù)行只讀、或數(shù)據(jù)行已被修改。
圖1中闡明了多處理器系統(tǒng)中的數(shù)據(jù)一致性維持方法的實例。在步驟110中,處理器10已經搜索了在程序執(zhí)行中所用的數(shù)據(jù)行的最后一級高速緩存并且確定數(shù)據(jù)行未出現(xiàn)在處理器10的最后一級高速緩存中。在可與步驟110同時發(fā)生的步驟120中,處理器10在處理器10中的目錄中搜索數(shù)據(jù)行地址。
如果數(shù)據(jù)行的地址在處理器10的目錄中被找到,則該方法進入將隨后針對圖2B討論的步驟230-290。然而,如果數(shù)據(jù)行的地址未在處理器10的目錄中被找到,該方法繼續(xù)進入如圖2A所示的步驟130-180。在步驟130中,處理器10經由地址路由表發(fā)送請求至作為該數(shù)據(jù)行的占有者的歸屬代理(即處理器12)。該地址路由表映射有存儲地址關于與各處理器相聯(lián)系的存儲器在哪里起始和終止。
在步驟140中,處理器12從存儲器中檢索該數(shù)據(jù)行并發(fā)送數(shù)據(jù)行至請求處理器10。在可能與步驟140同時發(fā)生的步驟150中,處理器12更新其自身的目錄以反映出該數(shù)據(jù)行被發(fā)送至請求處理器10。在步驟160中,處理器12轉發(fā)目錄更新消息至多處理器系統(tǒng)內部的其它處理器11、13。在步驟170中,這些其它處理器11、13也更新它們的目錄以反映出該數(shù)據(jù)行被發(fā)送至請求處理器10。在步驟180中,請求處理器10從處理器12接收該數(shù)據(jù)行,并且請求處理器10將該數(shù)據(jù)置于其自身的高速緩存中。雖然不限于此方式,可以不要求請求處理器10更新其自身的目錄以反映出該數(shù)據(jù)行被發(fā)送至請求處理器10因為該數(shù)據(jù)行當前駐留于請求處理器10的高速緩存中。
如果數(shù)據(jù)行的地址在處理器10的目錄中被找到,則在步驟230中,處理器10基于在處理器10的目錄中找到的地址,發(fā)送請求至數(shù)據(jù)保持設備(即處理器11)。在步驟240中,處理器11從存儲器中檢索該數(shù)據(jù)行并發(fā)送該數(shù)據(jù)行至請求處理器10。在可能與步驟240同時發(fā)生的步驟250中,處理器11更新其自身的目錄以反映出該數(shù)據(jù)行被發(fā)送至請求處理器10。在步驟260中,處理器11轉發(fā)目錄更新消息至多處理器系統(tǒng)內部的其它處理器12、13。在步驟270中,這些其它處理器12、13也更新它們的目錄以反映出該數(shù)據(jù)行被發(fā)送至請求處理器10。在步驟280中,請求處理器10從處理器11接收數(shù)據(jù)行,并且請求處理器10將該數(shù)據(jù)置于其自身的高速緩存中。在步驟290中,請求處理器10使其自身目錄中的該數(shù)據(jù)行項目無效,因為該項目不再準確。
硬件和軟件的典型結合可以是帶有計算機程序的通用計算機系統(tǒng),當該計算機程序被加載和執(zhí)行時,控制該計算機系統(tǒng)執(zhí)行這里說明的方法。本發(fā)明也可以被嵌入計算機程序產品中,該產品包含所有能夠實現(xiàn)這里所說明方法的特征,并且當被加載到計算機系統(tǒng)中時能夠執(zhí)行這些方法。
計算機程序或應用程序在當前的上下文中指的是任何表達形式,以任何語言、代碼或符號表示的指令集,使得具有信息處理能力的系統(tǒng)直接地或在以下的任一步或兩步操作后執(zhí)行特定的功能a)轉換為另一種語言、代碼或符號;b)以不同的物質形式再現(xiàn)。值得注意的是,本發(fā)明可以在不背離其精神或本質屬性的條件下以其它具體形式來實現(xiàn),并且相應地,應參照以下指出的本發(fā)明的保護范圍,而不是上述的說明書。
權利要求
1.一種在多處理器系統(tǒng)中維持數(shù)據(jù)一致性的方法,包括如下步驟確定未在第一處理器的高速緩存中找到數(shù)據(jù)行;轉發(fā)關于所述數(shù)據(jù)行的請求至第二處理器;從所述第二處理器轉發(fā)所述數(shù)據(jù)行至所述第一處理器;更新所述第二處理器的目錄以反映出所述數(shù)據(jù)行被轉發(fā)至所述第一處理器;以及轉發(fā)目錄更新消息至獨立于所述第一和第二處理器的至少一個附加處理器以反映出所述數(shù)據(jù)行被轉發(fā)至所述第一處理器。
2.權利要求1所述的方法,進一步包括確定未在所述第一處理器的目錄中找到具有所述數(shù)據(jù)行的地址的項目的步驟。
3.權利要求2所述的方法,其中,所述第一處理器的目錄中的項目包括存儲地址、最近的數(shù)據(jù)保持設備、以及行狀態(tài)。
4.權利要求2所述的方法,其中,所述第二處理器為所述數(shù)據(jù)行的歸屬代理。
5.權利要求1所述的方法,進一步包括確定在所述第一處理器的目錄中找到關于所述數(shù)據(jù)行的地址的項目的步驟。
6.權利要求5所述的方法,其中,所述第一處理器的目錄中的項目包括存儲地址、最近的數(shù)據(jù)保持設備、以及行狀態(tài)。
7.權利要求5所述的方法,其中,所述數(shù)據(jù)行的地址表明所述第二處理器為數(shù)據(jù)保持設備。
8.權利要求5所述的方法,進一步包括在所述第一處理器接收到來自所述第二處理器的所述數(shù)據(jù)行后使所述第一處理器的目錄中關于所述數(shù)據(jù)行的地址的所述項目無效的步驟。
9.權利要求1所述的方法,進一步包括響應所述至少一個附加處理器接收到所述目錄更新消息,而更新所述至少一個附加處理器的目錄以反映出所述數(shù)據(jù)行被轉發(fā)給所述第一處理器的步驟。
10.權利要求1所述的方法,其中,所述目錄中的項目包括存儲地址、最近的數(shù)據(jù)保持設備、以及行狀態(tài)。
11.一種在多處理器系統(tǒng)中維持數(shù)據(jù)一致性的系統(tǒng),包括具有高速緩存和目錄的第一處理器;具有目錄的第二處理器;以及至少一個具有目錄并獨立于所述第一和第二處理器的附加處理器,其中,所述第一處理器被配置為確定是否未在所述第一處理器的高速緩存中找到數(shù)據(jù)行;以及轉發(fā)關于所述數(shù)據(jù)行的請求至所述第二處理器,以及所述第二處理器被配置為從所述第二處理器轉發(fā)所述數(shù)據(jù)行至所述第一處理器;更新所述第二處理器的目錄以反映出所述數(shù)據(jù)行被轉發(fā)至所述第一處理器;以及轉發(fā)目錄更新消息至所述至少一個附加處理器以反映出所述數(shù)據(jù)行被轉發(fā)至所述第一處理器。
12.權利要求11所述的系統(tǒng),其中,所述第一處理器確定未在所述第一處理器的目錄中找到具有所述數(shù)據(jù)行地址的項目。
13.權利要求12所述的系統(tǒng),其中,所述第一處理器的目錄中的項目包括存儲地址、最新近的數(shù)據(jù)保持設備、以及行狀態(tài)。
14.權利要求12所述的系統(tǒng),其中,所述第二處理器為所述數(shù)據(jù)行的歸屬代理。
15.權利要求11所述的系統(tǒng),其中,所述第一處理器確定在所述第一處理器的目錄中找到關于所述數(shù)據(jù)行地址的項目。
16.權利要求15所述的系統(tǒng),其中,所述第一處理器的目錄中的項目包括存儲地址、最新近的數(shù)據(jù)保持設備、以及行狀態(tài)。
17.權利要求15所述的系統(tǒng),其中,所述數(shù)據(jù)行的地址表明所述第二處理器為數(shù)據(jù)保持設備。
18.權利要求15所述的系統(tǒng),其中,所述第一處理器被配置為在所述第一處理器接收到來自所述第二處理器的所述數(shù)據(jù)行后使所述第一處理器的目錄中關于所述數(shù)據(jù)行地址的所述項目無效。
19.權利要求11所述的系統(tǒng),其中,所述至少一個附加處理器被配置為響應所述至少一個附加處理器接收到所述目錄更新消息,而更新所述至少一個附加處理器的目錄以反映出所述數(shù)據(jù)行被轉發(fā)給所述第一處理器。
20.權利要求11所述的系統(tǒng),其中,所述目錄中的項目包括存儲地址、最新近的數(shù)據(jù)保持設備、以及行狀態(tài)。
全文摘要
本發(fā)明提供一種在多處理器系統(tǒng)中維持數(shù)據(jù)一致性的系統(tǒng),包括具有高速緩存和目錄的第一處理器,具有目錄的第二處理器,以及至少一個具有目錄并獨立于所述第一和第二處理器的附加處理器。該第一處理器被配置為確定是否未在所述第一處理器的高速緩存中找到數(shù)據(jù)行,并且轉發(fā)關于該數(shù)據(jù)行的請求至所述第二處理器。該第二處理器被配置為從第二處理器轉發(fā)數(shù)據(jù)行至第一處理器,更新第二處理器的目錄以反映出該數(shù)據(jù)行被轉發(fā)至第一處理器,并轉發(fā)目錄更新消息至所述至少一個附加處理器以反映出該數(shù)據(jù)行被轉發(fā)至第一處理器。目錄中的項目包括存儲地址、最新近的數(shù)據(jù)保持設備、以及行狀態(tài)。
文檔編號G06F12/08GK1991794SQ20061013731
公開日2007年7月4日 申請日期2006年10月17日 優(yōu)先權日2005年12月30日
發(fā)明者克里斯·多布羅夫斯基, 加恩·N.·法姆, 馬庫斯·L.·考爾尼蓋伊 申請人:國際商業(yè)機器公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1