欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

提供高速緩存狀態(tài)信息的方法及裝置的制作方法

文檔序號:6489470閱讀:149來源:國知局
專利名稱:提供高速緩存狀態(tài)信息的方法及裝置的制作方法
相關申請的交叉引用本申請涉及已提交的美國專利申請No.10/288347和10/288399,它們的標題均為“管理試探請求的方法及裝置”,由David B.Glasco于2002年11月4日提交,通過引用將其完整地結合于本文中用于所有目的。
背景技術
1.發(fā)明領域本發(fā)明一般涉及多處理器系統(tǒng)中存取數據。更具體來說,本發(fā)明提供用于改進數據存取效率、同時保持具有多群集體系結構的多處理器系統(tǒng)中的高速緩存相干性的技術。
2.相關技術的描述性能限制已經導致用于連接具有單存儲空間的系統(tǒng)中的處理器的點到點體系結構的發(fā)展。在一個實例中,各個處理器可直接通過多個點到點鏈路相互連接,從而形成處理器群集。處理器的分開的群集也可被連接。點到點鏈路顯著增加了協處理和多處理功能的帶寬。
在這種多處理器、多群集系統(tǒng)中,處理器發(fā)送試探請求,以便對可能在本地或遠程節(jié)點中高速緩存的特定存儲行執(zhí)行操作。一些常見操作包括對存儲行進行讀取塊、讀取塊共享和讀取塊修改操作。在許多實例中,如果提供了附加機制,則即使當事務可在本地處理時,也把事務轉發(fā)到遠程群集。但是,本地處理事務的機制受到限制。
因此,希望提供用于改進具有采用點到點鏈路連接的多個處理器的多個群集的系統(tǒng)中的高速緩存存取請求效率的技術。

發(fā)明內容
根據本發(fā)明,提供用于提高多處理器、多群集系統(tǒng)中的數據存取效率的方法及裝置。允許各種事務在本地完成的機制通過提供與系統(tǒng)中的各種群集關聯的遠程數據高速緩存來實現。遠程數據高速緩存接收遠程群集中保持的存儲行的數據和狀態(tài)信息。采用包括相干目錄和擴充源完成消息在內的各種機制,把狀態(tài)信息提供給遠程數據高速緩存。
在一個實施例中,提供一種計算機系統(tǒng)。所述計算機系統(tǒng)包括請求群集和歸屬群集。請求群集包括第一組多個節(jié)點和請求高速緩存相干控制器。第一組多個節(jié)點具有第一組多個處理器以及與第一組多個處理器關聯的第一組多個高速緩存。請求高速緩存相干控制器與遠程數據高速緩存關聯。遠程數據高速緩存保持非請求群集的存儲行中的數據。歸屬群集包括第二組多個處理器和請求高速緩存相干控制器。第二組多個處理器以點到點體系結構互連。
在另一個實施例中,提供用于保持相干性的方法。在請求高速緩存相干控制器上接收來自請求群集處理器的寫回。寫回與從對應于請求群集處理器的高速緩存中逐出的存儲行關聯。與該存儲行關聯的數據被寫入遠程數據高速緩存。遠程數據高速緩存保持非請求群集的地址空間中存儲行中的數據。接收表明存儲行是以修改還是擁有狀態(tài)保持的信息。
在另一個實施例中,提供用于保持相干性的方法。在請求高速緩存相干控制器上接收來自歸屬群集的讀取塊響應。讀取塊響應與存儲行關聯。與讀取塊響應關聯的數據被寫入遠程數據高速緩存。遠程數據高速緩存保持非請求群集的地址空間中的存儲行中的數據。
在又一個實施例中,一種計算機系統(tǒng)包括請求群集和歸屬群集。請求群集包括第一組多個節(jié)點和請求高速緩存相干控制器。第一組多個節(jié)點具有第一組多個處理器以及與第一組多個處理器關聯的第一組多個高速緩存。請求高速緩存相干控制器與遠程數據高速緩存關聯。遠程數據高速緩存保持非請求群集的存儲行中的數據。歸屬群集包括第二組多個處理器和請求高速緩存相干控制器。第二組多個處理器以點到點體系結構互連。第一組多個處理器可用于把信息發(fā)送給請求高速緩存相干控制器,表明高速緩存行是擁有的還是已修改的,以便修改遠程數據高速緩存中的條目。
通過參照說明的其余部分及附圖,可以進一步理解本發(fā)明的性質和優(yōu)點。
附圖簡介參照以下結合說明本發(fā)明的具體實施例的附圖的描述,可最佳地理解本發(fā)明。


圖1A和1B是圖解表示,說明具有多個群集的系統(tǒng)。
圖2是具有多個處理器的群集的圖解表示。
圖3是高速緩存相干控制器的圖解表示。
圖4是圖解表示,說明來自單群集中的處理器的數據存取請求的事務流。
圖5A-5D是圖解表示,說明高速緩存相干控制器功能性。
圖6是圖解表示,說明具有多個試探響應的試探請求的事務流。
圖7是圖解表示,說明高速緩存相干目錄。
圖8是圖解表示,說明遠程數據高速緩存。
圖9是圖解表示,說明采用遠程數據高速緩存的事務流。
圖10是圖解表示,說明用于采用對存儲器的寫回來更新遠程數據高速緩存的事務流。
圖11是圖解表示,說明用于更新遠程數據高速緩存但沒有對存儲器的寫回的事務流。
圖12是圖解表示,說明用于采用相干目錄來更新遠程數據高速緩存的事務流。
圖13是流程圖,說明采用相干目錄的遠程數據高速緩存更新。
圖14是圖解表示,說明用于采用擴充源完成信息來更新遠程數據高速緩存的事務流。
圖15是流程圖,說明采用擴充源完成信息的遠程數據高速緩存更新。
具體實施例的詳細描述現在詳細地參照本發(fā)明的一些具體實施例,其中包括本發(fā)明人考慮用于執(zhí)行本發(fā)明的最佳模式。這些具體實施例的實例如附圖所示。雖然結合這些具體實施例來描述本發(fā)明,但是要理解,它不是意在把本發(fā)明限制到所述實施例。相反,它意在涵蓋可能包含在所附權利要求定義的本發(fā)明的精神和范圍之內的備選方案、修改和等效物。在其處理器之間具有點到點通信的多處理器體系結構適合用于實現本發(fā)明的具體實施例。在以下描述中,闡述大量具體細節(jié),以便提供對本發(fā)明的透徹理解。可在沒有這些具體細節(jié)的部分或全部的條件下實施本發(fā)明。沒有詳細描述眾所周知的過程操作,以免不必要地影響對本發(fā)明的理解。此外,本申請?zhí)岬教囟▎螖祵嶓w包括本發(fā)明的方法及裝置可采用一個以上實體來實現的可能性,除非上下文另外清楚地說明。
提供用于提高多處理器、多群集系統(tǒng)中的數據存取效率的技術。在點到點體系結構中,處理器的群集包括直接通過點到點鏈路相互連接的多個處理器。通過采用點到點鏈路來代替?zhèn)鹘y(tǒng)的共享總線或外部網絡,在共享相同存儲空間的系統(tǒng)中有效地使用多個處理器。通過避免基于傳統(tǒng)總線和外部網絡的多處理器體系結構的許多帶寬和等待時間限制,還提高處理和網絡效率。但是,根據各種實施例,線性增加點到點體系結構中的處理器數量造成用于連接多個處理器的鏈路數量的指數增加。為了減少所使用的鏈路數量以及進一步使采用點到點體系結構的多處理器系統(tǒng)模塊化,采用多個群集。
根據各種實施例,多個處理器群集采用點到點體系結構來互連。處理器的各群集包括用來處理群集之間的通信的高速緩存相干控制器。在一個實施例中,用來連接處理器的點到點體系結構也用于連接群集。
通過采用高速緩存相干控制器,多個群集系統(tǒng)可采用可能不一定支持多個群集的處理器來構建。這種多群集系統(tǒng)的構建方式可能是,采用高速緩存相干控制器來表示本地事務中的非本地節(jié)點,使得本地節(jié)點不需要知道本地群集外部的節(jié)點的存在。下面提供關于高速緩存相干控制器的更詳細說明。
在單群集系統(tǒng)中,高速緩存相干性可通過經由串行化點發(fā)送所有數據存取請求來保持。用于對數據存取請求排序的任何機制在本文中稱作串行化點。串行化點的一個實例是存儲控制器。單群集系統(tǒng)中的各種處理器向存儲控制器發(fā)送數據存取請求。在一個實例中,存儲控制器配置成串行化或鎖定數據存取請求,使得在任何特定時間僅允許對給定存儲行的一個數據存取請求。如果另一個處理器嘗試存取相同存儲行,則數據存取嘗試被阻止,直到存儲行解除鎖定為止。存儲控制器允許在多處理器、單群集系統(tǒng)中保持高速緩存相干性。
串行化點也可用于多處理器、多群集系統(tǒng),其中,各個群集中的處理器共享單個地址空間。通過采用單個地址空間,內部點到點鏈路可用來顯著改進優(yōu)于傳統(tǒng)的基于外部網絡的多群集系統(tǒng)的群集間通信。各個群集中的各個處理器向與特定群集、如歸屬群集關聯的存儲控制器發(fā)送數據存取請求。存儲控制器可以類似地對于來自不同群集的所有數據請求串行化。但是,多處理器、多群集系統(tǒng)中的串行化點可能沒有多處理器、單群集系統(tǒng)中的串行化點那么有效。也就是說,由諸如來自群集之間的傳送的等待時間之類的因素引起的延遲可能負面影響各個數據存取請求的響應時間。應當注意,延遲還由多處理器環(huán)境中的試探的使用所引起。
雖然在采用共享存儲空間的體系結構中的群集間事務中的延遲明顯低于采用外部網絡、如以太網或令牌環(huán)的傳統(tǒng)消息傳遞環(huán)境中的延遲,但是甚至最小延遲也是一個重要因素。在一些應用中,在幾分之一秒中可能存在來自處理器的數百萬數據存取請求。任何延遲可能負面影響處理器性能。
根據各種實施例,試探管理用于提高多處理器、多群集系統(tǒng)中存取數據的效率。用于從節(jié)點引出響應以保持系統(tǒng)中的高速緩存相干性的機制在本文中稱作試探。在一個實例中,用于窺探高速緩存的機制稱作試探。對試探的響應可送往發(fā)起請求的源或目標。用于過濾或減少傳送到各個節(jié)點的試探和試探請求的數量的任何機制在本文中稱作管理試探。在一個實例中,管理試探需要表征試探請求,以便確定試探是否可傳送給減少數量的實體。
在典型實現中,請求被發(fā)送給向系統(tǒng)中的各個節(jié)點廣播試探的存儲控制器。在這種系統(tǒng)中,沒有高速緩存行狀態(tài)的知識是已知的。系統(tǒng)中的所有節(jié)點經過試探,以及請求群集接收來自各節(jié)點的響應。在具有相干目錄的系統(tǒng)中,與各個存儲行關聯的狀態(tài)信息可用來減少事務的數量。用于保持與各個存儲行關聯的狀態(tài)信息的任何機制在本文中稱作相干目錄。相干目錄通常包括在遠程群集中高速緩存的、本地群集中的存儲行的信息。根據各種實施例,相干目錄用于通過推斷本地高速緩存的狀態(tài)來減少對遠程群集的試探的數量。在其它實施例中,相干目錄用來消除請求向歸屬群集中的存儲控制器的傳送。
圖1A是可采用本發(fā)明的技術的多群集、多處理器系統(tǒng)的一個實例的圖解表示。各處理群集101、103、105和107可包括多個處理器。處理群集101、103、105和107通過點到點鏈路111a-f相互連接。在一個實施例中,圖1A所示的多群集體系結構中的多個處理器共享相同存儲空間。在這個實例中,點到點鏈路111a-f是內部系統(tǒng)連接,它們代替?zhèn)鹘y(tǒng)的前端總線用于連接多個群集101、103、105和107中的多個處理器。點到點鏈路可支持任何點到點相干協議。
圖1B是可采用本發(fā)明的技術的多群集、多處理器系統(tǒng)的另一個實例的圖解表示。各處理群集121、123、125和127可通過點到點鏈路141a-d耦合到交換機131。應當注意,采用交換機和點到點鏈路允許在連接系統(tǒng)中的多個群集時具有更少點到點鏈路的實現。交換機131可包括具有相干協議接口的處理器。根據各種實現,圖1A所示的多群集系統(tǒng)采用交換機131來擴展,如圖1B所示。
圖2是例如圖1A所示的群集101等的多處理器群集的圖解表示。群集200包括處理器202a-202d、一個或多個基本I/O系統(tǒng)(BIOS)204、包含存儲體206a-206d的存儲子系統(tǒng)、點到點通信鏈路208a-208e以及服務處理器212。點到點通信鏈路配置成允許處理器202a-202d、I/O交換機210和高速緩存相干控制器230之間的互連。服務處理器212配置成允許經由在圖2中由鏈路214a-214f表示的JTAG接口與處理器202a-202d、I/O交換機210和高速緩存相干控制器230的通信。應當注意,支持其它接口。還應當注意,在一些實現中,服務處理器沒有包含在多個處理器群集中。I/O交換機210把系統(tǒng)的其余部分連接到I/O適配器216和220。
根據具體實施例,本發(fā)明的服務處理器具有根據先前指定的劃分方案劃分系統(tǒng)資源的智能。劃分可通過采用點到點通信基礎設施成為可能的、由服務處理器對于與系統(tǒng)處理器關聯的路由選擇表的直接處理來實現。路由選擇表用來控制和隔離各種系統(tǒng)資源,其中定義它們之間的連接。
處理器202a-d還通過點到點鏈路232a-d耦合到高速緩存相干控制器230??捎糜谠诒3指咚倬彺嫦喔尚缘耐瑫r提供多個處理器群集之間的通信的任何機制或裝置在本文中稱作高速緩存相干控制器。高速緩存相干控制器230可耦合到與其它多處理器群集關聯的高速緩存相干控制器。應當注意,在一個群集中可能存在一個以上高速緩存相干控制器。高速緩存相干控制器230采用點到點協議與處理器202a-d以及遠程群集進行通信。
更一般來說,應當理解,圖2所示的具體體系結構只是示范,并且本發(fā)明的實施例被認為具有對于所示系統(tǒng)資源的每個的不同配置和資源互連以及各種備選方案。但是,為了便于說明,將假定服務器200的具體細節(jié)。例如,假定圖2所示資源的大多數駐留在單個電子裝配中。另外,存儲體206a-206d可包括在物理上作為雙列直插存儲模塊(DIMM)提供的雙倍數據速率(DDR)存儲器。例如,I/O適配器216可能是提供對永久存儲裝置的存取的超高速直接存儲器存取(UDMA)控制器或者小型計算機系統(tǒng)接口(SCSI)控制器。I/O適配器220可能是以太網卡,它適合提供與例如局域網(LAN)或因特網之類的網絡的通信。
根據一個具體實施例以及如圖2所示,I/O適配器216以及220都提供對稱I/O訪問。也就是說,各提供對等效I/O集的訪問。大家會理解,這種配置有助于劃分方案,其中多個劃分有權訪問相同類型的I/O。但是,還應當理解,可設計在其中創(chuàng)建沒有I/O的劃分的實施例。例如,為了測試存儲復合體,可創(chuàng)建包括一個或多個處理器及關聯存儲資源、即存儲復合體的劃分。
根據一個實施例,服務處理器212為Motorola MPC855T微處理器,它包括集成芯片組功能。高速緩存相干控制器230是支持本地點到點相干協議的專用集成電路(ASIC)。高速緩存相干控制器230還可配置成處理非相干協議,以便允許與I/O裝置進行通信。在一個實施例中,高速緩存相干控制器230是特殊配置的可編程芯片,例如可編程邏輯器件或者現場可編程門陣列。
圖3是高速緩存相干控制器230的一個實例的圖解表示。根據各種實施例,高速緩存相干控制器包括協議引擎305,它配置成處理從多處理器系統(tǒng)的各個群集中的處理器接收的信息包、如試探和請求。協議引擎305的功能性可在若干引擎之間劃分,以便提高性能。在一個實例中,劃分根據包類型(請求、試探和響應)、方向(入局和出局)或者事務流(請求流、試探流等)來進行。
協議引擎305有權訪問未決緩沖器309,它允許高速緩存相干控制器跟蹤諸如最近請求和試探之類的事務,并把事務與特定處理器關聯。未決緩沖器309中保存的事務信息可包括事務目標節(jié)點、對于后續(xù)沖突檢測和協議優(yōu)化的請求的地址、響應信息、標記和狀態(tài)信息。
高速緩存相干控制器具有諸如相干協議接口307之類的接口,它允許高速緩存相干控制器與該群集以及外部處理器群集中的其它處理器進行通信。根據各種實施例,各接口307和311作為全交叉開關或者作為采用諸如復用器和緩沖器之類的組件的分開的接收和發(fā)送單元來實現。高速緩存相干控制器還可包括諸如用于與I/O裝置通信的非相干協議接口311之類的其它接口。但是應當注意,高速緩存相干控制器230不一定需要提供相干和非相干兩種接口。還應當注意,一個群集中的高速緩存相干控制器可與另一個群集中的高速緩存相干控制器進行通信。
圖4是圖解表示,說明來自具有未采用高速緩存相干控制器的單群集的系統(tǒng)中的處理器的高速緩存請求的事務。處理器401-1向存儲控制器403-1發(fā)送存取請求、如讀取存儲行請求。存儲控制器403-1可與這個處理器、單群集中的另一個處理器關聯,或者可能是獨立組件、如ASIC或特殊配置的可編程邏輯器件(PLD)。為了簡化高速緩存相干,在任一給定時間通常僅允許一個處理器存取與共享地址空間對應的存儲行。為了防止其它處理器嘗試存取相同的存儲行,存儲行可由存儲控制器403-1鎖定。對相同存儲行的其它所有請求被阻止或排隊。通常僅當存儲控制器403-1對存儲行解除鎖定時才允許另一個處理器進行存取。
然后,存儲控制器403-1向本地高速緩沖存儲器405、407和409發(fā)送試探以確定高速緩存狀態(tài)。本地高速緩沖存儲器405、407和409則又向相同處理器401-2發(fā)送試探響應。存儲控制器403-1還向相同處理器401-3發(fā)送存取響應、如讀取響應。然后,處理器401-3可向存儲控制器403-2發(fā)送完成響應,以便允許存儲控制器403-2對存儲行解除鎖定以用于后續(xù)請求。應當注意,CPU 401-1、CPU 401-2和CPU 401-3表示相同處理器。
圖5A-5D是圖解表示,說明高速緩存相干控制器操作。多處理器群集中的高速緩存相干控制器的使用允許創(chuàng)建多處理器、多群集相干域,而沒有影響各群集中的本地節(jié)點、如處理器和存儲控制器的功能性。在一些情況中,處理器可能僅支持允許單群集中的有限數量的處理器而不允許多個群集的協議。通過使本地處理器認為非本地節(jié)點只是在高速緩存相干控制器中體現的單一本地節(jié)點,高速緩存相干控制器可用于允許多個群集。在一個實例中,群集中的處理器不需要了解其它群集中的處理器。相反,該群集中的處理器與高速緩存相干控制器進行通信,好像高速緩存相干控制器正代表所有非本地節(jié)點。
應當注意,遠程群集中的節(jié)點在本文中稱作非本地節(jié)點或者稱作遠程節(jié)點。但是,非本地節(jié)點指的是一般不在請求群集中的節(jié)點,并且包括遠程群集中的節(jié)點以及歸屬群集中的節(jié)點。從其中發(fā)起數據存取或高速緩存存取請求的群集在本文中稱作請求群集。包含串行化點的群集在本文中稱作歸屬群集。其它群集稱作遠程群集。歸屬群集和遠程群集在本文中又稱作非本地群集。
圖5A說明用作聚集遠程高速緩存的高速緩存相干控制器。當處理器501-1對本地存儲控制器503-1產生數據存取請求時,高速緩存相干控制器509接受來自本地存儲控制器503-1的試探,并將其轉發(fā)給非本地節(jié)點部分511。應當注意,相干協議可包含幾種類型的消息。在一個實例中,相干協議包括四種類型的消息;數據或高速緩存存取請求、試探、響應或試探響應,以及數據包。數據或高速緩存存取請求通常針對歸屬節(jié)點存儲控制器。試探用來查詢系統(tǒng)中的各高速緩存。試探包可攜帶允許高速緩存正確轉變指定行的高速緩存狀態(tài)的信息。響應用來攜帶試探響應信息,以及允許節(jié)點通知其它節(jié)點關于給定事務的狀態(tài)。數據包攜帶寫請求以及讀響應的請求數據。
根據各種實施例,存儲地址駐留在本地存儲控制器上。如上所述,包括本地群集外部的處理器和高速緩存相干控制器的節(jié)點在本文中稱作非本地節(jié)點。高速緩存相干控制器509則累積來自非本地節(jié)點的響應,并以與和高速緩存塊505和507關聯的本地節(jié)點向處理器501-2發(fā)送單個響應相同的方式來發(fā)送單個響應。本地處理器可預計所試探的每個本地節(jié)點的單個試探響應。高速緩存相干控制器的使用允許本地處理器工作而不需要關注是否存在非本地節(jié)點。
還應當注意,諸如處理器501-1和處理器501-2之類的組件在本文中表示在事務序列期間的不同時間點的相同組件。例如,處理器501-1可發(fā)起數據存取請求,以及相同處理器501-2稍后可接收從該請求產生的試探響應。
圖5B說明用作試探代理對的高速緩存相干控制器。當高速緩存相干控制器521-1接收來自非本地節(jié)點531的試探時,高速緩存相干控制器521-1接受該試探,并把試探轉發(fā)到與高速緩存塊523、525和527關聯的本地節(jié)點。高速緩存相干控制器521-2則把最終響應轉發(fā)給非本地節(jié)點部分531。在這個實例中,高速緩存相干控制器是試探的源以及目標。與高速緩存塊523、525和527關聯的本地節(jié)點表現得好像高速緩存相干控制器是具有本地存儲器請求的本地處理器。
圖5C說明用作遠程存儲器的高速緩存相干控制器。當本地處理器541-1產生針對遠程存儲器的存取請求時,高速緩存相干控制器543-1把請求轉發(fā)給非本地節(jié)點553。當遠程請求指定本地試探時,高速緩存相干控制器543-1對本地節(jié)點產生試探,以及被試探節(jié)點向處理器541-2提供響應。一旦高速緩存相干控制器543-1接收到來自非本地節(jié)點部分553的數據,它把讀響應轉發(fā)給處理器541-3。高速緩存相干控制器還把最終響應轉發(fā)給與非本地節(jié)點553關聯的遠程存儲控制器。
圖5D說明用作遠程處理器的高速緩存相干控制器。在第一群集的高速緩存相干控制器561-1接收來自第二群集中的處理器的請求時,高速緩存相干控制器用作代表第二群集處理器的第一群集處理器。高速緩存相干控制器561-1接受來自部分575的請求,并將其轉發(fā)給存儲控制器563-1。高速緩存相干控制器561-2則累積所有試探響應以及所取出的數據,并把最終響應轉發(fā)給存儲控制器563-2以及非本地節(jié)點575。
通過允許高速緩存相干控制器用作聚集遠程高速緩存、試探代理對、遠程存儲器以及遠程處理器,多個群集系統(tǒng)可采用可能不一定支持多個群集的處理器來構建。高速緩存相干控制器可用來表示本地事務中的非本地節(jié)點,使得本地節(jié)點不需要知道本地群集外部的節(jié)點的存在。
圖6是圖解表示,說明從本地處理器發(fā)送到采用高速緩存相干控制器的非本地群集的數據請求的事務。多群集系統(tǒng)包括請求群集600、歸屬群集620和遠程群集640。如上所述,歸屬群集620和遠程群集640以及除請求群集600之外的其它任何群集在本文中稱作非本地群集。與本地和非本地群集關聯的處理器和高速緩存相干控制器在本文中類似地分別稱作本地處理器、本地高速緩存相干控制器、非本地處理器以及非本地高速緩存相干控制器。
根據各種實施例,本地群集600中的處理器601-1向高速緩存相干控制器603-1發(fā)送數據存取請求、如讀取請求。高速緩存相干控制器603-1跟蹤圖3的未決緩沖器中的事務,并把請求轉發(fā)到歸屬群集620中的高速緩存相干控制器621-1。在歸屬群集620的高速緩存相干控制器621-1接收存取請求,并跟蹤其未決緩沖器中的請求。在一個實例中,與請求關聯的信息存儲在未決緩沖器中。高速緩存相干控制器621-1把存取請求轉發(fā)到同樣與歸屬群集620關聯的存儲控制器623-1。這時,存儲控制器623-1鎖定與請求關聯的存儲行。在一個實例中,存儲行是請求群集600、歸屬群集620和遠程群集640中的多個處理器共享的存儲空間中的唯一地址。存儲控制器623-1產生與數據存取請求關聯的試探,并把試探轉發(fā)到與高速緩存塊625和627關聯的本地節(jié)點以及轉發(fā)給高速緩存相干控制器621-2。
應當注意,雖然與請求、試探、響應和數據關聯的消息被描述成從一個節(jié)點轉發(fā)到另一個,但消息本身可包含變化。在一個實例中,對消息進行變更,以便允許多群集體系結構對于各種本地節(jié)點是透明的。應當注意,也可處理寫請求。在寫請求中,目標存儲控制器收集響應,并在收集完成時把響應發(fā)送給處理器。
與遠程群集640關聯的高速緩存相干控制器641-1接收來自高速緩存相干控制器621-2的試探,并試探與高速緩存塊645、647和649關聯的本地節(jié)點。類似地,與請求群集600關聯的高速緩存相干控制器603-2接收試探,并把試探轉發(fā)到與高速緩存塊605、607和609關聯的本地節(jié)點,以便試探請求群集600中的高速緩存塊。處理器601-2接收來自與高速緩存塊605、607和609關聯的本地節(jié)點的試探響應。
根據各種實施例,高速緩存相干控制器621-3累積試探響應,并把試探響應發(fā)送給高速緩存相干控制器603-3,高速緩存相干控制器603-3又把試探響應轉發(fā)給處理器601-3。高速緩存相干控制器621-4還把讀響應發(fā)送給高速緩存相干控制器603-4,高速緩存相干控制器603-4把讀響應轉發(fā)給處理器601-4。試探和試探響應攜帶用于保持系統(tǒng)中的高速緩存相干性的信息,而讀響應則可攜帶實際所取的數據。在接收所取數據之后,處理器601-4可向高速緩存相干控制器603-5發(fā)送源完成響應。根據各種實施例,這時在請求群集600上完成事務。高速緩存相干控制器603-5把源完成消息轉發(fā)給高速緩存相干控制器621-5。高速緩存相干控制器621-5又把源完成消息發(fā)送給存儲控制器623-2。在收到源完成消息時,存儲控制器623-2可對存儲行解除鎖定,以及這時完成歸屬群集620上的事務。另一個處理器這時可存取解除鎖定的存儲行。
應當注意,由于高速緩存相干控制器621-3在向高速緩存相干控制器603-3發(fā)送試探響應之前等待遠程群集試探響應,因此延遲被引入系統(tǒng)中。根據各種實施例,在高速緩存相干控制器603-3上收集試探響應。通過讓遠程群集通過歸屬群集發(fā)送試探響應,歸屬群集試探響應以及遠程群集試探響應在歸屬高速緩存相干控制器上可能延遲。在一個實例中,遠程群集試探響應必須經歷附加跳,以便到達請求群集。遠程群集與請求群集之間的試探響應的傳送的等待時間可能充分小于遠程群集與請求群集之間通過歸屬群集的試探響應的傳送的等待時間。歸屬群集試探響應還由于這個附加跳而被延遲。
本領域的技術人員會理解,涉及請求、試探和響應消息的特定事務序列可能根據特定實現而變化。在一個實例中,高速緩存相干控制器621-3可能在向高速緩存相干控制器603-3傳送試探響應消息以及讀響應消息之前等待接收來自存儲控制器623-1的讀響應消息。在其它實例中,高速緩存相干控制器可能是產生請求的實際處理器。一些處理器可作為處理器以及作為高速緩存相干控制器進行工作。此外還考慮與讀和寫關聯的各種數據存取請求消息、試探和響應。如上所述,用于窺探高速緩存的任何消息可稱作試探。類似地,用于向存儲控制器表明存儲行應當解除鎖定的任何消息可稱作源完成消息。
應當注意,圖6所示的事務說明執(zhí)行許多不同功能的高速緩存相干控制器的實例,其中包括如參照圖5A-5D所述的遠程處理器、聚集本地高速緩存、試探代理對以及遠程存儲器的功能。
在歸屬群集620的高速緩存相干控制器621-1用作遠程處理器。當高速緩存相干控制器接收來自請求群集處理器的請求時,高速緩存相干控制器被指示用作代表請求群集處理器的請求處理器。在這種情況中,高速緩存相干控制器621-1接受來自處理器601-1的轉發(fā)請求,并將其發(fā)送給存儲控制器623-1,累積來自所有本地節(jié)點和存儲控制器623-1的響應,并把累積響應和數據再轉發(fā)給請求處理器601-3。高速緩存相干控制器621-5還把源完成轉發(fā)給本地存儲控制器623-2。
請求群集600中的高速緩存相干控制器603-1用作遠程存儲器。作為遠程存儲器,高速緩存相干控制器設計成把來自處理器的請求轉發(fā)給正確的遠程群集,并確保本地節(jié)點被試探。在這種情況中,高速緩存相干控制器603-1把試探轉發(fā)到歸屬群集620中的高速緩存相干控制器621-1。高速緩存相干控制器603-2還試探本地節(jié)點605、607和609。
請求群集640中的高速緩存相干控制器641-1用作試探代理對。如上所述,當用作試探代理對的高速緩存相干控制器接收來自遠程群集的試探時,高速緩存相干控制器接受該試探,并將其轉發(fā)給所有本地節(jié)點。高速緩存相干控制器累積響應,并把最終響應送回給請求群集。在這里,高速緩存相干控制器641-1把試探發(fā)送到與高速緩存塊645、647和649關聯的本地節(jié)點,收集試探響應,并把試探響應發(fā)送到歸屬群集620中的高速緩存相干控制器621-3。類似地,高速緩存相干控制器603-2還用作請求群集600中的試探代理對。高速緩存相干控制器603-2把試探請求轉發(fā)給本地節(jié)點,其中包括與高速緩存塊605、607和609關聯的本地節(jié)點。
高速緩存相干控制器621-2和621-3還用作聚集遠程高速緩存。高速緩存相干控制器621-2負責接受來自存儲控制器623-1的試探以及把試探轉發(fā)給其它處理器群集600和640。更明確地說,高速緩存相干控制器621-2把試探轉發(fā)給與請求群集600對應的高速緩存相干控制器603-2以及轉發(fā)給與遠程群集640對應的高速緩存相干控制器641-1。如上所述,采用多群集體系結構可能引入延遲以及其它不希望的元素、如增加的通信量以及處理開銷。
即使并非所有群集需要被試探,試探也被傳送到多群集系統(tǒng)中的所有群集。例如,如果與試探請求關聯的存儲行是無效的或者不存在于高速緩存中,則可能不需要試探與各個群集關聯的所有高速緩存。在沒有相干目錄的系統(tǒng)中,通常需要窺探所有群集。但是,通過采用相干目錄,系統(tǒng)中的事務數量可通過僅試探系統(tǒng)中的群集的子集來減少,以便使通信量和處理開銷最小。
通過采用相干目錄,全局存儲行狀態(tài)信息(對于各群集)可由特定群集中的存儲控制器或高速緩存相干控制器來維護和訪問。根據各種實施例,相干目錄跟蹤和管理試探的分發(fā)以及響應的接收。如果相干目錄信息表明不需要對特定群集的試探,則可消除對特定群集的試探。在一個實例中,相干目錄表明不需要對請求和遠程群集的試探。歸屬群集中的高速緩存相干控制器試探本地節(jié)點,而沒有把試探轉發(fā)給請求和遠程群集。然后,歸屬群集中的高速緩存相干控制器在接收到試探響應之后把響應發(fā)送給請求群集。但是,在典型的多群集系統(tǒng)中,請求群集期待來自各個被試探群集的預定數量的響應。在一個實例中,如果多群集系統(tǒng)包括四個群集,則請求群集將期待與全部四個群集中的節(jié)點關聯的試探響應。
圖7是可用于允許試探的管理和過濾的相干目錄的一個實例。各種相干目錄可用。在一個實例中,全目錄為系統(tǒng)中的每個存儲行提供一個條目。在這個實例中,在存儲控制器中維護相干目錄,并且可由高速緩存相干控制器訪問。但是,在具有大量系統(tǒng)存儲空間的系統(tǒng)中,全目錄可能不是有效的或者不是可行的。根據各種實施例,為稀疏目錄提供與存儲行的所選集合關聯的有限數量的條目。在一個實例中,相干目錄701包括與存儲行711關聯的狀態(tài)信息713、臟數據所有者信息715以及占用向量717。在一些實施例中,存儲行狀態(tài)為修改、擁有、共享和無效。
在無效狀態(tài)中,在與任何遠程群集關聯的高速緩存中當前沒有高速緩存存儲行。在共享狀態(tài)中,存儲行可存在于一個以上高速緩存中,但存儲行是清潔的,并且不能在這些高速緩存中的任一個中進行修改。當存儲行處于共享狀態(tài)時,可檢查占用向量717以確定什么高速緩存共享相關數據。占用向量717可實現為N位字符串,其中每個位表示N個群集的高速緩存中的數據的可用性。用于跟蹤什么群集保持高速緩存中的相關存儲行的副本的任何機制在本文中稱作占用向量。具有地址741的存儲行處于共享狀態(tài),以及占用向量717表明群集1和3各具有高速緩存中的共享存儲行的副本。
在修改狀態(tài)中,存儲行經過修改,以及已修改副本存在于與特定群集關聯的高速緩存中。當存儲行被修改時,可檢查臟數據所有者信息字段715以確定臟數據的所有者。用于表明什么群集擁有高速緩存中的存儲行的已修改副本的任何機制在本文中稱作臟數據所有者信息字段。在一個實例中,與地址781關聯的存儲行經過修改,以及臟數據所有者字段715表明群集2擁有存儲行。
在擁有狀態(tài)中,臟存儲行由單個高速緩存擁有,但可在多個其它高速緩存中保持共享。它已經由擁有高速緩存進行修改,但這時為只讀。在這種情況下,存儲器中保存的副本是陳舊的。如果存儲行處于擁有狀態(tài),則可訪問臟數據所有者字段715以確定哪個群集擁有臟數據。在一個實例中,與地址761關聯的存儲行處于擁有狀態(tài),并且由群集4擁有。還可檢查占用向量717以確定其它哪些高速緩存可能具有相關數據。在這個實例中,占用向量717表明群集2、3和4各具有與高速緩存中的存儲行關聯的數據的副本。
雖然相干目錄701包含修改、擁有、共享和無效四種狀態(tài),但應當注意,具體實現可采用狀態(tài)的不同集合。在一個實例中,系統(tǒng)可能具有修改、獨占、擁有、共享和無效五種狀態(tài)。在獨占狀態(tài)中,存儲行可由遠程群集中的特定節(jié)點存取,但遠程群集中的節(jié)點可能仍未把數據寫入高速緩存行。本發(fā)明的技術可與各種可能的不同存儲行狀態(tài)配合使用。
當請求群集中的處理器對特定存儲行執(zhí)行事務、如讀請求時,處理器存取關聯高速緩存。在許多實現中,特定群集中的各處理器具有關聯高速緩存。如果存儲行在高速緩存中不可用,則請求通過高速緩存相干控制器被轉發(fā)給歸屬群集。在一個實施例中,歸屬群集是具有包含請求的存儲行的地址空間的處理器的群集。高速緩存相干控制器則可訪問相干目錄,來確定什么群集應當被試探以滿足該請求。相干目錄允許群集之間傳送的試探數量的減少。
用于通過訪問相干目錄來減少系統(tǒng)中的事務數量的機制在美國專利申請No.10/288399和10/288347中進行了描述,兩項專利申請的標題均為“管理試探請求的方法及裝置”,由David B.Glasco于2002年11月4日提交,通過引用將其完整地結合于本文中用于所有目的。通過減少群集間事務的數量,系統(tǒng)效率得到提高,因為節(jié)省了帶寬,以及減少了事務等待時間。相干目錄提供一種用于減少群集間事務的機制。根據各種實施例,遠程數據高速緩存是用于減少群集間事務的另一種機制。
根據各種實施例,在各群集中提供另一級高速緩存,使得如果與各處理器關聯的高速緩存沒有保持存儲行中的請求,則可在把試探轉發(fā)給歸屬群集之前檢查與群集關聯的高速緩存。在一個實例中,遠程數據高速緩存包含在各群集中,并可由各群集的高速緩存相干控制器訪問。與和各處理器關聯的高速緩存不同,在這個實例中,為群集中的多個處理器提供單個遠程數據高速緩存。如果在與處理器關聯的高速緩存中沒有找到特定處理器所請求的存儲行,則高速緩存相干控制器不一定需要把請求轉發(fā)給歸屬群集。而是,高速緩存相干控制器可檢查遠程數據高速緩存,以便確定存儲行是否駐留在遠程數據高速緩存中。如果存儲行駐留在遠程數據高速緩存中,則不需要向歸屬群集轉發(fā)任何試探,而是高速緩存相干控制器可采用遠程數據高速緩存中的數據來響應事務。
通過采用本發(fā)明的技術,遠程數據高速緩存可響應諸如讀取塊、讀取塊共享以及讀取塊修改等請求,而無需把請求轉發(fā)給歸屬群集。
圖8是遠程數據高速緩存的圖解表示。遠程數據高速緩存允許高速緩存相干控制器有效地本地處理某些類型的事務,而不必把試探轉發(fā)給遠程群集。在本地高速緩存之后但在歸屬群集存儲控制器之前被存取的、由本地處理器存取的、保存來自遠程群集的數據的任何高速緩存在本文中稱作遠程數據高速緩存。在一個實例中,在諸如讀取、讀取塊共享或讀取塊修改請求之類的請求被轉發(fā)給歸屬群集之前,遠程數據高速緩存由高速緩存相干控制器存取。遠程數據高速緩存允許事務在本地群集中處理,而不必把試探轉發(fā)給遠程群集。
根據各種實施例,遠程數據高速緩存801包括存儲行字段811。在這個字段中提供各個存儲行的地址,以允許由高速緩存相干控制器進行有效訪問,從而確定特定存儲行是否駐留在遠程數據高速緩存中。當存儲行從處理器高速緩存中被逐出時,通常對遠程數據高速緩存添加條目。遠程數據高速緩存801還包含狀態(tài)信息813和實際高速緩存的數據815。在一個實例中,地址821具有無效且沒有關聯高速緩存數據的狀態(tài)。應當注意,在典型情況中,無效狀態(tài)中的存儲行只是沒有包含在遠程數據高速緩存中。地址841包含以共享狀態(tài)保持的數據843。在一個實例中,遠程數據高速緩存中以共享狀態(tài)保存的數據可用來滿足讀取塊和讀取塊共享請求,而無需把請求轉發(fā)給歸屬群集。地址861具有以擁有狀態(tài)保持的數據863。根據各種實施例,以擁有狀態(tài)保持的數據還可用來滿足讀取塊和讀取塊共享事務。
應當注意,在一些情況中,沒有數據可在遠程數據高速緩存801中以修改狀態(tài)保存。對于具有遠程數據高速緩存的系統(tǒng),遠程數據高速緩存可用來高速緩存來自遠程群集的數據。在這類系統(tǒng)中,通常采用標準MEOSI高速緩存相干協議。在這種協議中,本地處理器高速緩存可從高速緩存中逐出存儲行,如果該行是臟的(已修改或擁有狀態(tài)),則數據被寫回到存儲器中。位于處理器高速緩存與系統(tǒng)存儲器之間的遠程數據高速緩存將觀察寫回,但沒有足夠信息來確定如何把該行安裝到遠程數據高速緩存。典型的處理器高速緩存確實具有這種信息。
但是,遠程數據高速緩存與高速緩存相干控制器關聯。在一些情況中,高速緩存相干控制器沒有關于從處理器高速緩存中逐出的行是處于已修改還是擁有狀態(tài)的信息。因此,遠程數據高速緩存采取保守方法,并以擁有狀態(tài)安裝存儲行,即使該存儲行可能已經以修改狀態(tài)安裝。以相同方式,遠程數據高速緩存有時保守地以共享狀態(tài)安裝存儲行,即使該存儲行可能已經以獨占狀態(tài)安裝。通過采取保守方法,在存儲行已知處于獨占或修改狀態(tài)時可處理的諸如讀取塊修改之類的事務無法由遠程數據高速緩存來處理,因此被轉發(fā)給歸屬群集。向歸屬群集轉發(fā)采用不一定必須使用的系統(tǒng)資源。
本發(fā)明的技術提供用于允許遠程數據高速緩存不僅以共享和擁有狀態(tài)而且還以獨占和修改狀態(tài)安裝存儲行的若干機制。在一個實例中,用于把存儲行安裝到遠程數據高速緩存中的修改或擁有狀態(tài)信息從相干目錄中獲得。在另一個實例中,狀態(tài)信息從來自處理器的擴充源完成消息中獲得。
本發(fā)明的技術不僅允許遠程數據高速緩存中的所有數據以共享或擁有狀態(tài)保持,而且還提供用于以修改和獨占狀態(tài)保持數據的機制。遠程數據高速緩存中以修改或獨占狀態(tài)保存的數據可滿足讀取塊、讀取塊共享和讀取塊修改事務。
應當注意,遠程數據高速緩存801還以未決狀態(tài)保存信息。未決狀態(tài)用來保持最初進入遠程數據高速緩存、但仍未由源完成確認的數據。可通過處理器所接收的試探來使以未決狀態(tài)保持的數據在該數據最初寫入遠程數據高速緩存之后但在接收到最終響應事務之前變成無效。
圖9是圖解表示,說明其中可采用遠程數據高速緩存的事務流。根據各種實施例,請求群集900中的處理器901-1向高速緩存相干控制器903-1發(fā)送數據存取請求、如讀取請求。高速緩存相干控制器903-1跟蹤未決緩沖器中的事務,并確定該請求是否可采用遠程數據高速緩存905進行本地處理。根據各種實施例,如果請求為針對特定存儲行的讀取塊或讀取塊共享,則在存儲行在遠程數據高速緩存中以修改、擁有、獨占或共享狀態(tài)中的任一個保存時,該請求可進行本地處理。換言之,如果存儲行的有效副本處于遠程數據高速緩存中,則可本地處理該請求。但是,如果請求為諸如讀取塊修改之類的事務,則僅當存儲行在遠程數據高速緩存中以修改或獨占狀態(tài)保持時,才可本地處理該請求。如果請求可本地處理,則遠程數據高速緩存向高速緩存相干控制器903-3提供信息,高速緩存相干控制器903-3向處理器901-3發(fā)送數據響應。但是,如果請求無法本地處理,則高速緩存相干控制器903-3把請求轉發(fā)給歸屬群集920。
一旦遠程數據高速緩存確定它可滿足請求,則它鎖定該行,并阻止所有入局試探請求,直到事務完成為止。遠程數據高速緩存對于存儲行在遠程數據高速緩存上有效地創(chuàng)建臨時串行化點-鎖定該行,直到事務完成為止,如存儲控制器進行的操作那樣。
圖9說明其中在遠程數據高速緩存中的條目用來減少系統(tǒng)中的事務數量的事務流。圖10和圖11是示意表示,說明在其中條目被安裝到遠程數據高速緩存的事務流。圖10說明在其中條目被添加到遠程數據高速緩存以及數據被寫回到系統(tǒng)存儲器的事務。圖11說明在其中條目被添加到遠程數據高速緩存、但沒有把數據寫入系統(tǒng)存儲器的事務。
參照圖10,請求群集1000中的處理器1001-1向高速緩存相干控制器1003-1發(fā)送寫回事務。通常在從與處理器關聯的高速緩存中逐出存儲行時產生寫回。高速緩存相干控制器1003-1以未決狀態(tài)把數據寫入遠程數據高速緩存1005-1,并把寫回轉發(fā)給歸屬群集。歸屬群集1020中的高速緩存相干控制器1021-1把寫回轉發(fā)給存儲控制器1023-1,存儲控制器1023-1把數據寫入系統(tǒng)存儲器。然后,存儲控制器1023-1把完成消息發(fā)送給高速緩存相干控制器1021-3,高速緩存相干存儲器1021-3通過高速緩存相干控制器1003-2把完成消息轉發(fā)給請求群集1000的處理器1001-2。處理器1001-2把源完成消息發(fā)給高速緩存相干控制器1003-3。如果插入試探使存儲行無效,則源完成消息通常包含指示符注釋。如果源完成表明使該行無效,則存儲行從遠程數據高速緩存中刪除或者置于無效狀態(tài)。如果沒有使該行無效,則遠程數據高速緩存中的條目的狀態(tài)以保守方式更新為共享。源完成則通過高速緩存相干控制器1003-3和1021-5被轉發(fā)給歸屬群集存儲控制器1023-2。
圖10說明其中數據寫回到存儲器的情況。在一些情況中,數據不一定需要寫回到存儲器。在一個實例中,處于擁有狀態(tài)的存儲行的逐出引起存儲行在遠程數據高速緩存中以擁有狀態(tài)進行安裝。在這種特定情況中,遠程數據高速緩存沒有保存臟數據。這允許遠程數據高速緩存靜寂地逐出該條目。
圖11是圖解表示,說明用于把存儲行安裝到遠程數據高速緩存而沒有把存儲行寫回到存儲器的事務流。處理器1101-1把寫回發(fā)送給高速緩存相干控制器1103-1。存儲行安裝到遠程數據高速緩存1105-1中,并且可供使用。完成消息被發(fā)送給處理器1101-2,處理器1101-2又把源完成發(fā)送給高速緩存相干控制器1103-3。在這種情況中,如果從遠程數據高速緩存中逐出條目,則遠程數據高速緩存可保存寫回到存儲器的臟數據。
圖12是圖解表示,說明在其中相干目錄提供狀態(tài)信息的寫回的事務流。根據各種實施例,遠程數據高速緩存不知道被寫回的存儲行是處于擁有還是修改狀態(tài),因而必須保守地假定它處于擁有狀態(tài)。本發(fā)明的技術允許歸屬群集向遠程數據高速緩存提供關于存儲行是處于擁有還是修改狀態(tài)的信息。請求群集1200中的處理器1201-1把寫回發(fā)送給高速緩存相干控制器1203-1。數據以未決狀態(tài)被寫入遠程數據高速緩存1205-1。高速緩存相干控制器1203-1還通過歸屬群集1220中的高速緩存相干控制器1221-1把寫回轉發(fā)給存儲控制器1223-1。
存儲控制器1223-1把存儲行寫回到系統(tǒng)存儲器中,并把完成消息發(fā)送給高速緩存相干控制器1221-3。高速緩存相干控制器1221-3從相干目錄獲得狀態(tài)信息,并把完成消息中的狀態(tài)信息發(fā)送給高速緩存相干控制器1203-2。根據各種實施例,以表明存儲行是以擁有還是修改狀態(tài)保持的擁有/修改位的形式來發(fā)送狀態(tài)信息。高速緩存相干控制器1203-2把狀態(tài)信息寫入其未決緩沖器,并把完成消息發(fā)送給處理器1201-2。處理器1201-2把源完成消息轉發(fā)給高速緩存相干控制器1203-3。遠程數據高速緩存1205-3中的存儲行的狀態(tài)這時可從未決轉換到擁有/修改位所提供的任何狀態(tài)。源完成通過高速緩存相干控制器1221-5被轉發(fā)給存儲控制器1223-2。
圖13是流程圖,說明采用相干目錄的遠程數據高速緩存的管理。在1301,從處理器接收寫回事務。在一些實例中,因臟存儲行的逐出而產生寫回。在1303,數據以設置為未決的狀態(tài)被寫入遠程數據高速緩存。未決狀態(tài)說明源完成由處理器發(fā)送之前可能出現的插入使無效事務。在1305,寫回被轉發(fā)給歸屬群集。應當注意,當數據實際上寫回到存儲器時,寫回被轉發(fā)給歸屬群集。在1307,從歸屬群集接收完成消息,其中具有從歸屬群集的相干目錄檢索的擁有或修改狀態(tài)信息。在1311,擁有或修改信息存儲在未決緩沖器中。在1313,完成消息被轉發(fā)給處理器。在1315,從處理器接收源完成消息。在這時,在1317,可存取未決緩沖器以獲取與存儲行關聯的狀態(tài)信息。
還檢查源完成消息,以便確定是否設置了無效位。在產生寫回之后,但在存儲控制器上提交數據之前被蓋寫時,無效位用于發(fā)信號通知存儲控制器寫回數據無效。如果在1319在源完成中設置了無效位,則遠程數據高速緩存狀態(tài)在1321被設置為無效。在一些實例中,從遠程數據高速緩存中刪除數據。如果在1319沒有設置無效位,則在1323確定存儲行是否以擁有狀態(tài)保持。如果存儲行如來自相干目錄的擁有或修改信息所示,保持為擁有狀態(tài),則遠程數據高速緩存狀態(tài)在1325被設置為共享。如果擁有或修改信息在1323設置為修改,則存儲行的遠程數據高速緩存狀態(tài)在1327設置為獨占。通過提供擁有或修改信息,本發(fā)明的技術允許遠程數據高速緩存狀態(tài)可設置為獨占。通過把遠程數據高速緩存狀態(tài)設置為獨占,包括讀取塊修改的更多事務可在請求群集中處理。
圖14是圖解表示,說明在其中處理器提供擴充源完成的寫回的事務流。請求群集1400中的處理器1401-1把寫回發(fā)送給高速緩存相干控制器1403-1。數據以未決狀態(tài)被寫入遠程數據高速緩存1405-1。高速緩存相干控制器1403-1還通過歸屬群集1420中的高速緩存相干控制器1421-1把寫回轉發(fā)給存儲控制器1423-1。
存儲控制器1423-1把存儲行寫回到系統(tǒng)存儲器中,并把完成消息發(fā)送給高速緩存相干控制器1421-3。高速緩存相干控制器1421-3把完成消息發(fā)送給高速緩存相干控制器1403-2。高速緩存相干控制器1403-2把完成消息發(fā)送給處理器1401-2。處理器1401-2把擴充源完成消息發(fā)送給高速緩存相干控制器1403-3。從處理器發(fā)送到存儲控制器、表明事務完成以及提供關于存儲行是處于擁有還是修改狀態(tài)的信息的任何消息在本文中稱作擴充源完成消息。根據各種實施例,擴充源完成消息包含表明存儲行的狀態(tài)在逐出之前在處理器高速緩存中是擁有還是修改的擁有/修改位。遠程數據高速緩存1405-3中的存儲行的狀態(tài)這時可從未決轉換到擁有/修改位所提供的任何狀態(tài)。源完成通過高速緩存相干控制器1421-5被轉發(fā)給存儲控制器1423-2。應當注意,由于不需要相干目錄,因此,即使在數據沒有寫回到歸屬群集時,擴充源完成也可用來提供擁有/修改信息。
圖15是流程圖,說明采用擴充源完成信息的遠程數據高速緩存的管理。在1501,從處理器接收寫回事務。在1503,數據以設置為未決的狀態(tài)被寫入遠程數據高速緩存。在1505,確定數據是否要寫回到存儲器中。如果數據在1505寫回到存儲器中,則寫回在1511被轉發(fā)給歸屬群集。在1513,從歸屬群集接收完成消息。完成消息在1515被轉發(fā)給處理器,并在1517從處理器接收擴充源完成。
在1521,從擴充源完成中確定是否設置了無效位。如果設置了無效位,則遠程數據高速緩存狀態(tài)在1551設置為無效。否則,在1553確定擁有或修改位是否設置為擁有。如果擁有或修改位被設置為擁有,則遠程數據高速緩存狀態(tài)在1555設置為共享。如果擁有或修改位被設置為修改,則遠程數據高速緩存狀態(tài)在1557設置為獨占。即使當數據沒有寫回到存儲器時,采用擴充源完成信息來管理遠程數據高速緩存條目也允許有效的管理。在一個實例中,如果擁有或修改存儲行被逐出,則在1505需要寫回。在另一個實例中,如果共享或獨占存儲行被逐出,則在1505不需要寫回。但是,遠程數據高速緩存可具有用于以后對存儲器寫回的其它一些機制。如果不需要寫回,則完成消息在1531發(fā)送給處理器。在1533,從處理器接收擴充源完成。在1535,確定是否在擴充源完成中設置了無效位。如果設置了無效位,則遠程數據高速緩存狀態(tài)在1541設置為無效。否則,確定擁有或修改位是否設置為擁有。如果擁有或修改位在1543設置為擁有,則遠程數據高速緩存狀態(tài)被設置為擁有。如果擁有或修改信息被設置為修改,則遠程數據高速緩存狀態(tài)在1547設置為修改。
數據可通過各種方式加載到遠程數據高速緩存中。在以上所述的一個實例中,當高速緩存行從處理器高速緩存中逐出時加載數據。但是,數據也可通過其它方式來加載。例如,數據可在從存儲控制器到讀取塊的數據響應上加載到遠程數據高速緩存中。在這種情況中,行以共享狀態(tài)安裝到遠程數據高速緩存中。例如,在圖6中,當來自存儲控制器的數據響應在請求群集的高速緩存相干控制器603-4上接收時,數據除了發(fā)送給處理器601-4之外還可發(fā)送給遠程數據高速緩存。
雖然參照特定實施例具體表示和描述了本發(fā)明,但是,本領域的技術人員會理解,可進行所公開實施例的形式和細節(jié)上的變更,而沒有背離本發(fā)明的范圍或精神。例如,本發(fā)明的實施例可與通過點到點、交換機或總線體系結構連接的多個處理器群集配合使用。在另一個實例中,處理器的多個群集可共享單個高速緩存相干控制器,或者多個高速緩存相干控制器可用于單個群集中。因此,本發(fā)明的范圍應當參照所附權利要求來確定。
權利要求
1.一種計算機系統(tǒng),包括包括第一組多個節(jié)點和請求高速緩存相干控制器的請求群集,所述第一組多個節(jié)點具有第一組多個處理器以及與所述第一組多個處理器關聯的第一組多個高速緩存,所述請求高速緩存相干控制器與遠程數據高速緩存關聯,其中所述遠程數據高速緩存保持非請求群集的存儲行中的數據;包括第二組多個處理器和請求高速緩存相干控制器的歸屬群集,所述第二組多個處理器以點到點體系結構互連。
2.如權利要求1所述的計算機系統(tǒng),其特征在于,非請求群集包括所述歸屬群集和一個或多個遠程群集。
3.如權利要求1所述的計算機系統(tǒng),其特征在于,當保持數據的存儲行被從所述第一組多個高速緩存中逐出時,所述遠程數據高速緩存被用來高速緩存與非請求群集關聯的存儲行。
4.如權利要求1所述的計算機系統(tǒng),其特征在于,當保持臟數據的高速緩存行被從所述第一組多個高速緩存中逐出時,產生寫回。
5.如權利要求4所述的計算機系統(tǒng),其特征在于,當以修改或擁有狀態(tài)保持所述行時,數據為臟的。
6.如權利要求4所述的計算機系統(tǒng),其特征在于,逐出存儲行包括把數據寫回到存儲器。
7.如權利要求1所述的計算機系統(tǒng),其特征在于,多個遠程數據高速緩存與所述計算機系統(tǒng)中的多個高速緩存相干控制器關聯。
8.如權利要求1所述的計算機系統(tǒng),其特征在于,數據可在所述遠程數據高速緩存中以修改、獨占、擁有、共享和無效狀態(tài)來保持。
9.如權利要求8所述的計算機系統(tǒng),其特征在于,數據還可以未決狀態(tài)來保持。
10.如權利要求9所述的計算機系統(tǒng),其特征在于,在所述高速緩存相干控制器從所述第一組多個處理器其中之一接收寫回之后,數據以未決狀態(tài)寫入所述遠程數據高速緩存。
11.如權利要求9所述的計算機系統(tǒng),其特征在于,在從所述第一組多個處理器其中之一接收源完成之后,如果所述源完成表明使所述行無效,則數據以無效狀態(tài)寫入所述遠程數據高速緩存。
12.如權利要求9所述的計算機系統(tǒng),其特征在于,在從所述第一組多個處理器其中之一接收源完成之后,如果所述源完成表明未使所述行無效,則數據以所述修改、獨占、擁有或共享狀態(tài)寫入所述遠程數據高速緩存。
13.如權利要求1所述的計算機系統(tǒng),其特征在于,所述請求高速緩存相干控制器從所述歸屬群集接收表明所述存儲行是以共享狀態(tài)還是以擁有狀態(tài)來保持的信息。
14.如權利要求1所述的計算機系統(tǒng),其特征在于,在所述歸屬群集響應讀取塊請求之后,數據以所述共享狀態(tài)寫入所述遠程數據高速緩存。
15.一種用于維持相干性的方法,所述方法包括在請求高速緩存相干控制器上從請求群集處理器接收寫回,所述寫回與從對應于所述請求群集處理器的高速緩存中逐出的存儲行關聯;把與所述存儲行關聯的數據寫入遠程數據高速緩存,其中所述遠程數據高速緩存保持非請求群集的地址空間中的存儲行中的數據;接收表明所述存儲行是以修改狀態(tài)還是以擁有狀態(tài)來保持的信息。
16.如權利要求15所述的方法,其特征在于,從具有相干目錄的歸屬群集高速緩存相干控制器接收表明所述存儲行是以修改狀態(tài)還是以擁有狀態(tài)來保持的信息。
17.如權利要求15所述的方法,其特征在于,從所述請求群集處理器接收表明所述存儲行是以修改狀態(tài)還是以擁有狀態(tài)來保持的信息。
18.如權利要求15所述的方法,其特征在于,在源完成消息中從所述請求群集處理器接收表明所述存儲行是以修改狀態(tài)還是以擁有狀態(tài)來保持的信息。
19.如權利要求15所述的方法,其特征在于,還包括接收表明插入請求是否使所述存儲行無效的信息。
20.如權利要求19所述的方法,其特征在于,如果插入請求使所述存儲行無效,則所述遠程數據高速緩存中的所述存儲行的狀態(tài)被設置為無效。
21.如權利要求20所述的方法,其特征在于,如果未使所述存儲行無效,則所述遠程數據高速緩存中的所述存儲行的狀態(tài)被設置為共享或獨占。
22.如權利要求21所述的方法,其特征在于,如果在接收所述寫回之前所述存儲行以擁有狀態(tài)來保持,則所述遠程數據高速緩存中的所述存儲行的狀態(tài)被設置為共享。
23.如權利要求21所述的方法,其特征在于,如果在接收所述寫回之前所述存儲行以修改狀態(tài)來保持,則所述遠程數據高速緩存中的所述存儲行的狀態(tài)被設置為獨占。
24.一種用于維持相干性的方法,所述方法包括在請求高速緩存相干控制器上從歸屬群集接收讀取塊響應,所述讀取塊響應與存儲行關聯;以及把與所述讀取塊響應關聯的數據寫入遠程數據高速緩存,其中所述遠程數據高速緩存保持非請求群集的地址空間中的存儲行中的數據。
25.如權利要求24所述的方法,其特征在于,與所述讀取塊響應關聯的數據以共享狀態(tài)寫入所述遠程數據高速緩存。
26.如權利要求24所述的方法,其特征在于,與所述讀取塊響應關聯的數據以獨占狀態(tài)寫入所述遠程數據高速緩存。
27.一種計算機系統(tǒng),包括包括第一組多個節(jié)點和請求高速緩存相干控制器的請求群集,所述第一組多個節(jié)點具有第一組多個處理器以及與所述第一組多個處理器關聯的第一組多個高速緩存,所述請求高速緩存相干控制器與遠程數據高速緩存關聯,其中所述遠程數據高速緩存保持非請求群集的存儲行中的數據;包括第二組多個處理器和請求高速緩存相干控制器的歸屬群集,所述第二組多個處理器以點到點體系結構互連;其中所述第一組多個處理器可用于把信息發(fā)送給所述請求高速緩存相干控制器,該信息表明高速緩存行是擁有的還是修改的,以便修改所述遠程數據高速緩存中的條目。
28.如權利要求27所述的計算機系統(tǒng),其特征在于,所述第一組多個處理器還可用于把信息發(fā)送給所述請求高速緩存相干控制器,該信息表明所述高速緩存行是否為無效的。
29.如權利要求27所述的計算機系統(tǒng),其特征在于,非請求群集包括所述歸屬群集和一個或多個遠程群集。
30.如權利要求27所述的計算機系統(tǒng),其特征在于,當保持數據的存儲行被從所述第一組多個高速緩存中逐出時,所述遠程數據高速緩存被用來高速緩存與非請求群集關聯的存儲行。
31.如權利要求27所述的計算機系統(tǒng),其特征在于,當高速緩存行被逐出時發(fā)送信息,所述信息表明高速緩存行是擁有的還是修改的。
32.如權利要求31所述的計算機系統(tǒng),其特征在于,逐出高速緩存行包括把數據寫回到存儲器。
33.如權利要求27所述的計算機系統(tǒng),其特征在于,多個遠程數據高速緩存與所述計算機系統(tǒng)中的多個高速緩存相干控制器關聯。
34.如權利要求27所述的計算機系統(tǒng),其特征在于,數據可在所述遠程數據高速緩存中以修改、獨占、擁有、共享和無效狀態(tài)來保持。
35.如權利要求34所述的計算機系統(tǒng),其特征在于,數據還可以未決狀態(tài)來保持。
36.如權利要求35所述的計算機系統(tǒng),其特征在于,在所述高速緩存相干控制器從所述第一組多個處理器其中之一接收寫回之后,數據以未決狀態(tài)寫入所述遠程數據高速緩存。
37.一種計算機系統(tǒng),包括用于在請求高速緩存相干控制器上從請求群集處理器接收寫回的部件,所述寫回與從對應于所述請求群集處理器的高速緩存中逐出的存儲行關聯;用于把與所述存儲行關聯的數據寫入遠程數據高速緩存的部件,其中所述遠程數據高速緩存保持非請求群集的地址空間中的存儲行中的數據;用于接收表明所述存儲行是以修改狀態(tài)還是以擁有狀態(tài)來保持的信息的部件。
38.如權利要求37所述的計算機系統(tǒng),其特征在于,從具有相干目錄的歸屬群集高速緩存相干控制器接收表明所述存儲行是以修改狀態(tài)還是以擁有狀態(tài)來保持的信息。
39.如權利要求37所述的計算機系統(tǒng),其特征在于,從所述請求群集處理器接收表明所述存儲行是以修改狀態(tài)還是以擁有狀態(tài)來保持的信息。
40.如權利要求37所述的計算機系統(tǒng),其特征在于,在源完成消息中從所述請求群集處理器接收表明所述存儲行是以修改狀態(tài)還是以擁有狀態(tài)來保持的信息。
41.如權利要求37所述的計算機系統(tǒng),其特征在于,還包括接收表明插入請求是否使所述存儲行無效的信息。
42.如權利要求41所述的計算機系統(tǒng),其特征在于,如果插入請求使所述存儲行無效,則所述遠程數據高速緩存中的所述存儲行的狀態(tài)被設置為無效。
43.一種計算機系統(tǒng),包括用于在請求高速緩存相干控制器上從歸屬群集接收讀取塊響應的部件,所述讀取塊響應與存儲行關聯;以及用于把與所述讀取塊響應關聯的數據寫入遠程數據高速緩存的部件,其中所述遠程數據高速緩存保持非請求群集的地址空間中的存儲行中的數據。
全文摘要
根據本發(fā)明,提供用于提高多處理器、多群集系統(tǒng)中的數據存取效率的方法及裝置。允許各種事務在本地完成的機制通過提供與系統(tǒng)中的各種群集關聯的遠程數據高速緩存來實現。遠程數據高速緩存接收遠程群集中保持的存儲行的數據和狀態(tài)信息。采用包括相干目錄和擴充源完成消息在內的各種機制,把狀態(tài)信息提供給遠程數據高速緩存。
文檔編號G06F12/08GK1829978SQ200480020505
公開日2006年9月6日 申請日期2004年5月20日 優(yōu)先權日2003年5月20日
發(fā)明者D·B·格拉斯科 申請人:新信息系統(tǒng)公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
沅陵县| 罗山县| 禄劝| 聂荣县| 贵南县| 宁津县| 宜春市| 黄陵县| 嘉黎县| 康平县| 邯郸市| 宝山区| 德惠市| 尼勒克县| 鹿邑县| 喜德县| 广河县| 青浦区| 筠连县| 台安县| 五峰| 祁门县| 靖江市| 涿鹿县| 无极县| 三江| 云南省| 石城县| 长春市| 闽清县| 读书| 马龙县| 兴安盟| 长垣县| 兴义市| 武乡县| 鸡泽县| 博客| 黄冈市| 天柱县| 宁乡县|