新四季網

數據處理系統中的數據處理的方法和裝置的製作方法

2023-07-20 01:59:26

專利名稱:數據處理系統中的數據處理的方法和裝置的製作方法
技術領域:
本發明一般涉及數據處理,並尤其涉及高速緩存一致性數據處理系統中的數據處理。
背景技術:
傳統的對稱多處理器(SMP)計算機系統例如伺服器計算機系統包括均連接到系統互連上的多個處理單元,該系統互連通常包括一個或多個地址、數據和控制總線。系統存儲器連接到系統互連上,該系統存儲器代表多處理器計算機系統內的最低層的易失存儲器,並通常可被所有處理單元進行讀和寫訪問。為了減小針對位於系統存儲器上的指令和數據的訪問等待時間,每個處理單元通常還被各自的多層高速緩存層次結構支持,所述高速緩存層次結構的最低層可被一個或多個處理器核心共享。
因為多個處理器核心可能請求寫訪問相同的數據高速緩存線,並且因為被修改的高速緩存線不是立刻與系統存儲器同步,所以多處理器計算機系統的高速緩存層次結構通常實現高速緩存一致性協議以至少確保多個處理器核心對系統存儲器的內容的「視圖」之間的最低水平的一致性。具體地,高速緩存一致性至少要求在處理單元訪問存儲塊的副本並隨後訪問該存儲塊的更新副本之後,該處理單元不能再次訪問該存儲塊的舊副本。
高速緩存一致性協議通常定義了與每個高速緩存層次結構的高速緩存線相關聯地存儲的一組一致性狀態,以及用於在各高速緩存層次結構之間傳送高速緩存狀態信息的一組一致性消息。在一典型實現中,一致性狀態信息採取的形式為公知的MESI(修改、排他、共享、無效)協議或其變型,而一致性消息指示在存儲器訪問請求的請求者和/或接受者的高速緩存層次結構中的協議定義的一致性狀態轉變。
在一些高速緩存一致性協議中,一個或多個一致性狀態響應於隨後的操作不被更新或僅被不精確地更新。因此,這些一致性狀態可隨時間而變「陳舊」,因為它們不再準確地反應相關聯存儲塊的系統範圍的一致性狀態。本發明認識到「陳舊」一致性狀態的存在會導致執行這樣的系統操作,即如果已更新和/或除去了「陳舊」一致性狀態則不會需要這些系統操作。

發明內容
鑑於以上考慮,本發明提供了一種改進的高速緩存一致性數據處理系統、高速緩存系統和高速緩存一致性數據處理系統中的數據處理方法。
在一個實施例中,局部一致性域內的高速緩存清理(scrubbing)邏輯向遠程一致性域內的至少一個高速緩存層次結構發出域查詢請求。域查詢請求是對通過該至少一個高速緩存層次結構與目標存儲塊相關聯的一致性狀態的非破壞性探查。接收對該域查詢請求的一致性響應。響應於一致性響應指示目標存儲塊沒有被高速緩存在該遠程一致性域內,復位該局部一致性域內的域指示以指示目標存儲塊僅被高速緩存在局部一致性域內,如果它被高速緩存的話。
在另一個實施例中,局部一致性域內的高速緩存清理邏輯向遠程一致性域內的至少一個高速緩存層次結構發出域復位請求,該域復位請求迫使該遠程一致性域內保持的目標存儲塊的任何被高速緩存的副本無效。接收到對該域復位請求的一致性響應。響應於該一致性響應指示目標存儲塊沒有被高速緩存在該遠程一致性域內,復位該局部一致性域的系統存儲器內的域指示以指示目標存儲塊僅被高速緩存在局部一致性域內,如果它被高速緩存的話。
在另一個實施例中,響應於程序代碼的執行,至少利用目標存儲塊的目標地址初始化局部一致性域內的高速緩存清理邏輯內的控制寄存器。響應於該初始化,高速緩存清理邏輯向遠程一致性域內的至少一個高速緩存層次結構發出高速緩存清理請求,該清理請求針對可被至少一個高速緩存層次結構高速緩存的目標存儲塊。響應於接收到指示目標存儲塊沒有被高速緩存在遠程一致性域內的一致性響應,復位局部一致性域內的域指示以指示目標存儲塊僅被高速緩存在局部一致性域內,如果它被高速緩存的話。
從下面的詳細說明中可清楚地了解本發明的所有目標、特徵和優點。


在所附權利要求中闡述了被認為是本發明的特性的新穎特徵。但是,當結合附圖閱讀時參照下面對說明性實施例的詳細描述可最好地理解本發明及其優選使用方式,在附圖中圖1是根據本發明的示例性數據處理系統的高層框圖;圖2是根據本發明的處理單元的更詳細的框圖;圖3是圖2中所示的L2高速緩存陣列和目錄的更詳細的框圖;圖4是圖1的數據處理系統的系統互連上的示例性事務的時空圖(time-space diagram);圖5示出根據本發明的優選實施例的域指示符;圖6A是根據本發明的啟動高速緩存清理操作的方法的高層邏輯流程圖;圖6B是根據本發明高速緩存監聽器(snooper)用來處理被動高速緩存清理操作的方法的高層邏輯流程圖;圖6C是根據本發明存儲控制器監聽器用來處理被動高速緩存清理操作的方法的高層邏輯流程圖;圖7A是根據本發明高速緩存監聽器用來處理主動高速緩存清理操作的方法的高層邏輯流程圖;圖7B是根據本發明存儲控制器監聽器用來處理主動高速緩存清理操作的方法的高層邏輯流程圖;圖8A示出根據本發明的用於啟動被動或主動高速緩存清理操作的示例性域指示清理指令;以及圖8B示出根據本發明的包括高速緩存清理指令的示例性程序代碼。
具體實施例方式
I.示例性數據處理系統現參照附圖並尤其參照圖1,示出根據本發明的高速緩存一致性對稱多處理器(SMP)數據處理系統的示例性實施例的高層框圖。如圖所示,數據處理系統100包括用於處理數據和指令的多個處理節點102a、102b。處理節點102a、102b連接到用於傳輸地址、數據和控制信息的系統互連110。系統互連110可實現為例如總線互連、交換互連或混合互連。
在所示實施例中,每個處理節點102實現為包含四個處理單元104a-104d的多晶片模塊(MCM),每個處理單元優選地被實現為各自的集成電路。每個處理節點102內的處理單元104a-104d通過局部互連114連接以便通信,該局部互連類似於系統互連110可由一條或多條總線和/或交換機實現。
連接到每個局部互連114的設備不僅包括處理單元104,而且包括一個或多個系統存儲器108a-108d。位於系統存儲器108內的數據和指令通常可被數據處理系統100的任何處理節點102內的任何處理單元104內的處理核心訪問和修改。在本發明的其他可選擇實施例中,一個或多個數據存儲器108可連接到系統互連110而不是局部互連114。
本領域內的那些技術人員將理解,SMP數據處理系統100可包括許多另外的未示出的部件例如互連橋、非易失存儲器、用於連接到網絡或附加設備的埠等。因為這樣的另外的部件對於理解本發明並不是必須的,所以它們未在圖1中示出或者在此被進一步討論。但是,應理解,本發明提供的增強可應用於不同體系結構的高速緩存一致性數據處理系統,並且決不局限於圖1中所示的一般化的數據處理系統體系結構。
現參照圖2,示出根據本發明的示例性處理單元104的更詳細的框圖。在所示實施例中,每個處理單元104包括用於獨立地處理指令和數據的兩個處理器核心200a、200b。每個處理器核心200包括用於讀取和排序用於執行的指令的至少一個指令定序單元(ISU)208,和用於執行指令的一個或多個執行單元224。如下文進一步說明的,執行單元224優選地包括用於執行引用存儲塊或使得生成引用存儲塊的操作的存儲器訪問指令的裝入-存儲單元(LSU)228。
每個處理器核心200的操作由多層易失存儲器層次結構支持,該層次結構在其最低層具有共享系統存儲器108a-108d,而在其上層具有一級或多級高速緩衝存儲器。在所示實施例中,每個處理單元104包括集成存儲控制器(IMC)206,該集成存儲控制器響應於從處理器核心200a-200b接收到的請求和監聽器(S)222在局部互連114上監聽的操作,控制對其處理節點102內的相應一個系統存儲器108a-108d的讀和寫訪問。IMC 206通過參考基址存儲器(BAR)邏輯240確定它所負責的地址。
在所示實施例中,處理單元104的高速緩存層次結構包括位於每個處理器核心200內的貫穿存儲(store-through)1級(L1)高速緩存226,和被處理單元104的所有處理器核心200a、220b共享的2級(L2)高速緩存230。L2高速緩存230包括L2陣列和目錄234,以及包括主控(master)232和監聽器236的高速緩存控制器。主控232響應於從相關聯的處理器核心200a-220b接收到的存儲器訪問(以及其他)請求,在局部互連114和系統互連110上啟動事務,並訪問L2陣列和目錄234。主控232包括高速緩存清理邏輯250,如下文進一步說明的,該邏輯可用於更新可被高速緩存在數據處理系統100內的分布位置內的一個或多個存儲塊的一致性狀態和/或域指示符。監聽器236監聽局部互連114上的操作,提供合適的響應,並執行這些操作所需的對L2陣列和目錄234的任何訪問。
儘管所述高速緩存層次結構僅包括兩級高速緩存,但是本領域內的那些技術人員將理解,其他可選擇的實施例可包括額外的等級(L3、L4、L5等)的片內或片外的內聯(in-line)或後備(lookaside)高速緩存,其可以完全包含、部分包含或不包含上級高速緩存的內容。
每個處理單元104還包括響應邏輯210的實例,其實現維護數據處理系統100內的高速緩存一致性的分布式一致性信令機制的一部分。另外,每個處理單元104包括互連邏輯212的實例,其用於在其局部互連114和系統互連110之間選擇性地轉發通信。最後,每個處理單元104包括支持附加一個或多個I/O設備例如I/O設備216的集成I/O(輸入/輸出)控制器214。I/O控制器214可響應於I/O設備216的請求在局部互連114和/或系統互連110上發出操作。
現參照圖3,示出L2陣列和目錄234的示例性實施例的更詳細的框圖。如圖所示,L2陣列和目錄234包括組相聯(set associative)L2高速緩存陣列300,和L2高速緩存陣列300的內容的L2高速緩存目錄302。如在傳統的組相聯高速緩存中,利用系統存儲器(實)地址內的預定索引位將系統存儲器108中的存儲位置映射到高速緩存300內的特定同餘類(congruence class)。高速緩存陣列300內存儲的特定高速緩存線被記錄在高速緩存目錄302內,該目錄對於高速緩存陣列300內的每個高速緩存線包含一個目錄項。如本領域內的那些技術人員可理解的,高速緩存302內的每個目錄項至少包括標記欄位304,該標記欄位利用對應的實地址內的標誌部分指定存儲在高速緩存陣列300內的特定高速緩存線,狀態欄位306,該狀態欄位指示高速緩存線的一致性狀態,和LRU(最近最少使用)欄位308,該LRU欄位指示該高速緩存線相對於相同同餘類內的其他高速緩存線的替換順序。
II.示例性操作現參照圖4,示出在圖1的數據處理系統100上的局部或系統互連110、114上的示例性操作的時空圖。當L2高速緩存230的主控232(或其他主控例如I/O控制器214)在局部互連114和/或系統互連110上發出請求402時,此操作開始。請求402優選地包括指示希望的訪問的類型的事務類型和指示該請求將訪問的資源的資源標識符(例如實地址)。常見類型的請求優選地包括表I內給出的那些。
表I

L2高速緩存230的監聽器236以及存儲控制器206的監聽器222接收到請求402(圖1)。一般來說,除一些例外,與請求402的主控232相同的L2高速緩存230中的監聽器236不監聽請求402(即通常沒有自監聽),因為只有當請求402不能由處理單元104在內部服務時,請求402才在局部互連114和/或系統互連110上傳輸。接收到請求402的每個監聽器222、236可提供各自的部分響應406,該部分響應代表至少該監聽器對請求402的響應。存儲控制器206內的監聽器222根據例如監聽器222是否負責被請求的地址以及其是否具有可用於服務於該請求的資源,確定將提供的部分響應406。L2高速緩存230的監聽器236可根據例如其L2高速緩存目錄302的可用性、監聽器236內處理該請求的監聽邏輯實例的可用性、以及與L2高速緩存目錄302內的請求地址相關聯的一致性狀態,確定其部分請求406。
監聽器222和236的部分響應被響應邏輯210的一個或多個實例分階段地或一次性地組合以確定對請求402的系統範圍的組合響應(CR)410。受制於下文說明的範圍限制,響應邏輯210經由其局部互連114和/或系統互連110將組合響應410提供給主控232和監聽器222、236,以指示對請求402的系統範圍的響應(例如成功、失敗、重試等)。如果CR 410指示請求402成功,則CR 410可指示例如被請求的存儲塊的數據源,被請求的存儲塊將被主控232高速緩存的高速緩存狀態,以及是否需要使一個或多個L2高速緩存230內的被請求的存儲塊無效的「清除」操作。
響應於接收到組合響應410,主控232和監聽器222、236中的一個或多個通常執行一個或多個操作以便服務於請求402。這些操作可包括向主控232提供數據,使一個或多個L2高速緩存230內高速緩存的數據的一致性狀態無效或以其他方式更新該一致性狀態,執行擲出(castout)操作,將數據寫回系統存儲器108等。如果請求402這樣要求,則在響應邏輯210生成組合響應410之前或之後,可向或從主控232傳送被請求的或目標存儲塊。
在下面的說明中,將參照監聽器相對於請求所指定的請求地址是一致性最高點(HPC)、一致性最低點(LPC)還是都不是,說明監聽器222、236對請求的部分響應以及響應於該請求監聽器執行的操作和/或其組合響應。LPC在此被定義為用作存儲塊的儲存庫的存儲設備或I/O設備。在沒有用於存儲塊的HPC的情況下,LPC保持存儲塊的真實映象,並有權準許或拒絕對生成存儲塊的另外的被高速緩存的副本的請求。對於圖1和2的數據處理系統實施例中的典型請求,LPC將是用於保持被引用的存儲塊的系統存儲器108的存儲控制器206。HPC在此被定義為高速緩存存儲塊的真映象(可以與在LPC處的對應的存儲塊一致或不一致)並且有權準許或拒絕修改存儲塊的請求的被唯一標識的設備。作為說明,HPC還可響應於不修改存儲塊的操作將存儲塊的副本提供給請求者。因此,對於圖1和2的數據處理系統實施例中的典型請求,HPC如果有的話,將是L2高速緩存230。儘管可使用其他指示符為存儲塊指定HPC,但是如果有HPC的話,則本發明的優選實施例利用L2高速緩存230的L2高速緩存目錄302內的所選擇的高速緩存一致性狀態為存儲塊指定HPC,如下文參照表II進一步說明的那樣。
仍參照圖4,如果有的話用於請求402內引用的存儲塊的HPC或者在沒有HPC的情況下存儲塊的LPC優選地有責任在保護窗口404a期間響應於請求402保護存儲塊的所有權的傳遞。在圖4內所示的示例性情況中,作為用於由請求402的請求地址指定的存儲塊的HPC的監聽器236在保護窗口404a期間保護被請求的存儲塊的所有權向主控232的傳送,該保護窗口從監聽器236確定其部分響應406的時間一直延伸到監聽器236接收到組合響應410的時間。在保護窗口404a期間,監聽器236通過向指定相同請求地址的其他請求提供部分響應406以便在所有權已成功地傳送到主控232之前防止其他主控獲得所有權,來保護所有權的傳送。主控232類似地啟動保護窗口404b以在接收到組合請求410之後保護其對在請求402中請求的存儲塊的所有權。
因為監聽器222、236均具有有限的資源用於處理上述CPU和I/O請求,所以可存在一些不同級別的部分請求和對應的CR。例如,如果負責被請求的存儲塊的存儲控制器206內的監聽器222具有可用於處理請求的隊列,則監聽器222可以指示其能夠用作該請求的LPC的部分響應來響應。另一方面,如果監聽器222沒有可用於處理請求的隊列,則監聽器222可以指示其是存儲塊的HPC、但是不能目前服務於該請求的部分響應來響應。
類似的,L2高速緩存230內的監聽器236會需要監聽邏輯的可用實例和對L2高速緩存目錄302的訪問以便處理請求。缺少對這些資源的任何一個(或全部)的訪問會得到用信號通知由於沒有所需的資源而目前不能服務於該請求的部分響應(和對應的CR)。
此後,提供指示監聽器具有可用的如果需要的話目前服務於請求所需的所有內部資源的部分響應的監聽器222、236被說成「確認」請求。對於監聽器236,確認被監聽的操作的部分響應優選地指示在該監聽器236處被請求的或目標存儲塊的高速緩存狀態。提供指示監聽器236不具有可用的目前服務於請求所需的可用的所有內部資源的部分響應的監聽器222、236可被說成「可能隱藏的」或「不能」服務於該請求。這樣的監聽器236是「可能隱藏的」或「不能」服務於請求,因為監聽器236由於沒有監聽邏輯的可用實例或目前的對L2高速緩存目錄302的訪問而不能在上文定義的意義上「確認」請求,並且在其他主控232和監聽器222、236看來監聽器236具有未知的一致性狀態。
III.數據提供域傳統的基於廣播的數據處理系統通過廣播通信處理高速緩存一致性和數據傳送兩者,該廣播通信在傳統系統內在系統互連上至少被傳輸到系統內的所有存儲控制器和高速緩存層次結構。與其他可選擇結構和類似規模的系統相比,基於廣播的系統傾向於提供共享存儲塊的減少的訪問等待時間以及更好的數據處理和一致性管理。
當基於廣播的系統的大小增加時,系統互連上的通信量倍增,這意味著由於系統互連上的通信需要更大的帶寬所以系統成本會隨系統規模迅速升高。就是說,具有m個處理器核心—每個處理器核心具有n個事務的平均通信量—的系統的通信量為m×n,這意味著在基於廣播的系統內的通信量乘法地而不是加法地增加。除了顯著更大的互連帶寬的需求之外,系統尺寸增加的第二個效果是增加一些訪問等待時間。例如,在最壞情況下,讀數據的訪問等待時間受限於可從其獲得被請求的數據的、以共享一致性狀態保持被請求的存儲塊的最遠的低級高速緩存的組合響應等待時間。
為了減小系統互連帶寬需求和訪問等待延時間而同時仍保持基於廣播的系統的優點,允許分布在整個數據處理系統100內的多個L2高速緩存230以一「特殊的」共享一致性狀態保持相同存儲塊的副本,該狀態允許這些高速緩存使用高速緩存到高速緩存幹涉將存儲塊提供給請求L2高速緩存230。為了在SMP數據處理系統例如數據處理系統100內為共享存儲塊實現多個並行和分布式的源,必須解決兩個問題。首先,必須實現某種管理創建處於上文提到的「特殊」共享一致性狀態的存儲塊副本的規則。其次,必須存在管理如果有的話哪個監聽L2高速緩存230例如響應於總線讀操作或總線RWITM操作向請求L2高速緩存230提供共享存儲塊的規則。
根據本發明,通過實現數據提供域(sourcing domain)來解決這兩個問題。具體地,允許SMP數據處理系統內的每個域每次僅包括一個以一「特殊」共享一致性狀態保持特定的存儲塊的高速緩存層次結構,其中域被定義為包括一個或多個參與響應於數據請求的低級(例如L2)高速緩存時。如果該高速緩存層次結構在相同域內的請求低級高速緩存啟動總線讀類型(例如讀或RWITM)操作時存在,則該高速緩存層次結構負責將被請求的存儲塊提供給該請求低級高速緩存。儘管可在圖1的數據處理系統100中定義許多不同的域大小,但是認為每個處理節點102(即MCM)是一個數據提供域是方便的。下面參照表II說明這樣的「特殊」共享狀態(即Sr)的一個示例。
IV.一致性域儘管上述的數據提供域的實現改進了數據訪問等待時間,但是此增強未解決通信量會隨著系統規模的增加而增加m×n倍的問題。為了減小通信量同時仍保持基於廣播的一致性機制,本發明的優選實施例還實現一致性域,類似於前文所述的數據提供域,該一致性域可方便地(但不必須)這樣實現,其中每個處理節點102形成單獨的一致性域。數據提供域和一致性域可以但不必須具有共同範圍,並且為了說明數據處理系統100的示例性操作的目的,下文將假設它們具有由處理節點102限定的邊界。
一致性域的實現通過在請求可被少於所有一致性域的參與所服務的情況下限制系統互連110上的域間廣播通信,減小了通信量。例如,如果處理節點102的處理單元104a將有一總線讀操作要發出,則處理單元104可選擇首先將總線讀操作廣播給其自己的一致性域(例如處理節點102a)內的所有參與者而不廣播給其他一致性域(例如處理節點102b)內的參與者。僅傳輸給與操作的主控相同的一致性域內的那些參與者的廣播操作在此被定義為「局部操作」。如果局部總線讀操作可在處理單元104a的一致性域內被服務,則不進一步廣播總線讀操作。但是,如果對總線讀操作的部分響應和組合響應指示總線讀操作不能僅在處理節點102a的一致性域內被服務,則廣播範圍可擴展到除了該局部一致性域之外還包括一個或多個額外的一致性域。
在一基本實現中,使用兩個廣播範圍僅包括局部一致性域的「局部」範圍和包括SMP數據處理系統內的所有其他的一致性域的「全局」範圍。因此,傳輸到SMP數據處理系統內的所有一致性域的操作在此被定義為「全局操作」。重要的是,不管使用局部操作還是使用具有更廣闊範圍的操作(例如全局操作)來服務於操作,在SMP數據處理系統內的所有一致性域中維護高速緩存一致性。在全文併入此作為參考文獻的美國專利申請No.11/055305中說明了局部操作和全局操作的示例。
在一優選實施例中,操作範圍由總線操作內的局部/全局範圍指示符(信號)指示,該指示符在一個實施例中包含1位的標誌。處理單元104內的轉發邏輯212優選地根據操作中的局部/全局範圍指示符(信號)的設置確定是否將經由局部互連114接收到的操作轉發到系統互連110上。
V.域指示符為了限制不需要的局部操作的發出,並從而減小操作等待時間以及節約局部互連上的額外的帶寬,本發明優選地實現每個存儲塊的一域指示符,該指示符指示相關聯的存儲塊的副本是否被高速緩存在局部一致性域之外。例如,圖5示出根據本發明的域指示符的第一示例性實現。如圖5中所示,可由動態隨機存取存儲器(DRAM)實現的系統存儲器108存儲了多個存儲塊500。系統存儲器108與每個存儲塊500相關聯地存儲了關聯的糾錯碼(ECC)502,該糾錯碼用於校正存儲塊500內的錯誤(如果有的話),和域指示符504。儘管在本發明的一些實施例中,域指示符504可標識特定的一致性域(即,指定一致性域或節點ID),但是此後假設域指示符504是1位的指示符,如果相關聯的存儲塊500僅被高速緩存(如果被高速緩存的話)在與用作該存儲塊500的LPC的存儲控制器206相同的一致性域內,則設置該指示符(例如,將其設置為『1』以指示「局部」)。否則復位域指示符504(例如,復位為『0』以指示「全局」)。域指示符504被設置為指示「局部」可被不精確地實現,因為「全局」的錯誤設置將不會引發任何一致性錯誤,而會導致操作的不必要的全局廣播。
響應於操作提供存儲塊的存儲控制器206(和L2高速緩存230)優選地將相關聯的域指示符504與被請求的存儲塊一起傳輸。
VI.示例性一致性協議本發明優選地實現被設計為利用上述數據傳送和一致性域的實現的高速緩存一致性協議。在一優選實施例中,協議內的高速緩存一致性狀態除了提供(1)高速緩存是否是存儲塊的HPC的指示之外,還指示(2)被高速緩存的副本在該存儲器層次結構級別處的高速緩存中是否是唯一的(即是否是系統範圍的唯一被高速緩存的副本),(3)高速緩存是否可將存儲塊提供給請求該存儲塊的主控以及何時提供,(4)存儲塊的被高速緩存的映象是否與LPC(系統存儲器)處的對應的存儲塊一致,以及(5)是否遠程一致性域內的另一個高速緩存(可能)保持具有匹配地址的高速緩存項。這五個屬性可被表示在表II中總結的公知的MESI(修改、排他、共享、無效)協議的示例性變型中。
表II


A.Ig狀態為了避免不得不訪問LPC來確定存儲塊是否已知為僅被局部地高速緩存(如果它被高速緩存的話),在存儲塊的副本沒有繼續高速緩存在一致性域內的情況下,利用Ig(無效全局)一致性狀態保持域指示。Ig在此被定義為這樣的高速緩存一致性狀態,其指示(1)高速緩存陣列內的關聯的存儲塊無效,(2)高速緩存目錄內的地址標記有效,以及(3)該地址標記標識的存儲塊的副本可能被高速緩存在另一個一致性域內。Ig指示優選地是不精確的,這意味著它可以是不正確的但不會破壞一致性。
響應於低級高速緩存響應於排他的訪問請求(例如總線RWITM操作)將被請求的存儲塊提供給另一個一致性域內的請求者,在該低級高速緩存內形成Ig狀態。在本發明的一些實施例中,優選地僅在包含存儲塊的LPC的一致性域內形成Ig狀態。在這樣的實施例中,必須實現某種機制(例如LPC的部分響應以及隨後的組合響應)以向提供被請求的存儲塊的高速緩存指示LPC位於其局部一致性域內。在不支持指示LPC是局部的指示的通信的其他實施例中,可在每當高速緩存響應於排他的訪問請求將存儲塊提供給遠程一致性域時,形成Ig狀態。
由於包括Ig狀態的高速緩存目錄項攜帶著可能有用的信息,所以在至少一些實現內,希望優選地優先於I狀態的項保持Ig狀態的項(例如,通過修改被用於選擇用於替換的犧牲高速緩存項的最近最少使用(LRU)算法)。因為Ig目錄項被保持在高速緩存內,所以一些Ig項可能會隨時間而變「陳舊」,因為其排他的訪問請求導致形成該Ig狀態的高速緩存可能解除分配或寫回其存儲塊副本,而沒有通知以Ig狀態保持存儲塊的地址標記的高速緩存。在這樣的情況下,不正確地指示應發出全局操作而不是局部操作的「陳舊」Ig狀態將不會導致任何一致性錯誤,而將僅會使一些本來可利用局部操作服務的操作作為全局操作被發出。這樣的無效率的發生的持續時間將被「陳舊」Ig高速緩存項的最終替換和域指示高速緩存清理所限制,如下文將說明的。
一些規則管理Ig高速緩存項的選擇和替換。首先,如果高速緩存選擇Ig項作為替換的犧牲者,則擲出Ig項(與選擇I項的情況不同)。其次,如果導致存儲塊被加載到高速緩存中的請求命中相同高速緩存內的Ig高速緩存項,則高速緩存將Ig命中當作是高速緩存缺失,並通過將該Ig項作為被選擇的犧牲者來執行擲出操作。這樣,高速緩存避免了將相同地址標記的兩個副本放置在高速緩存目錄內。第三,擲出Ig狀態優選地作為局部操作執行,或者如果作為全局操作執行,則被非局部一致性域的存儲控制器忽略。如果允許Ig項在沒有位於與存儲塊的LPC相同的一致性域內的高速緩存內形成,則不需要更新LPC內的域指示符。第四,擲出Ig狀態優選地作為無數據僅地址的操作執行,其中將域指示符寫回LPC(如果在執行擲出的高速緩存的局部)。
根據本發明的Ig狀態的實現通過在即使存儲塊的有效副本沒有仍然被高速緩存在一致性域內時仍在該一致性域內保持用於該存儲塊的被高速緩存的域指示符,改進了通信效率。結果,用於存儲塊的HPC可服務於來自遠程一致性域的排他的訪問請求(例如,總線RWITM操作),而無需重試該請求並將被請求的存儲塊推給LPC。
B.In狀態In狀態在此被定義為這樣的高速緩存一致性狀態,其指示(1)高速緩存陣列內的關聯存儲塊無效,(2)高速緩存目錄內的地址標記有效,以及(3)該地址標記標識的存儲塊的副本很可能僅被局部一致性域內的一個或多個其他高速緩存層次結構高速緩存(如果被高速緩存的話)。In指示優選地不精確,這意味著它可以是不正確的而不會破壞一致性。響應於低級高速緩存響應於排他的訪問請求(例如總線RWITM操作)將被請求的存儲塊提供給相同一致性域內的請求者,在該低級高速緩存內形成In狀態。
由於包括In狀態的高速緩存目錄項攜帶著可能有用的信息,所以在至少一些實現中,希望優選於I狀態的項保持In狀態的項(例如,通過修改被用於選擇用於替換的犧牲高速緩存項的最近最少使用(LRU)算法)。因為In目錄項被保持在高速緩存內,所以一些In項可能會隨時間而變「陳舊」,這是因為其排他的訪問請求導致形成In狀態的高速緩存可能自己將該存儲塊的共享副本提供給遠程一致性域,而不通知以In狀態保持該存儲塊的地址標記的高速緩存。在這樣的情況下,不正確地指示應發出局部操作而不是全局操作的「陳舊」In狀態將不會導致任何一致性錯誤,而將僅會使一些操作被首先不正確地作為局部操作而不是全局操作發出。這樣的無效率的發生的持續時間被「陳舊」In高速緩存項的最終替換所限制。在一優選實施例中,In一致性狀態中的高速緩存項不是經受擲出而僅是簡單地被替換。因此,與Ig高速緩存項不同,In高速緩存項並不用於更新系統存儲器108內的域指示符504。
根據本發明的In狀態的實現通過保持可被主控參考以便為其操作之一選擇局部範圍的存儲塊的被高速緩存的域指示符,改進了通信效率。結果,節約了在其他一致性域內的系統互連110和局部互連114上的帶寬。
C.Sr狀態在上述操作中,能夠確定以Sr一致性狀態保持共享的被請求的存儲塊的低級高速緩存是否與請求主控位於相同域內是有用的。在一個實施例中,可通過以Sr一致性狀態保持被請求的存儲塊的低級高速緩存處的監聽器的響應行為來指示與請求主控處於相同域內的「局部」Sr監聽器的存在。例如,假設每個總線操作包括指示該總線操作是否越過域邊界的範圍指示符(例如,主控的顯式域指示符或單個局部/非局部範圍位),以Sr一致性狀態保持共享存儲塊的低級高速緩存可僅為相同數據提供域內的主控的請求提供以Sr狀態確認請求的部分響應,而為所有其他的請求提供指示S狀態的部分響應。表III中總結了在這樣的實施例中的響應行為,其中撇(』)符號用於指定可能與存儲塊的實際高速緩存狀態不同的部分響應。
表III

假設響應行為如以上表III中所述,可通過增加可用作數據源的在SMP數據處理系統內分布的存儲塊的共享副本的數量來大大降低用於共享數據的平均數據等待時間。
VII.高速緩存清理操作如上所述,L2高速緩存目錄302內保持的Ig目錄項可隨時間變「陳舊」,這是因為其排他的訪問請求導致形成Ig狀態的非本地L2高速緩存230可能解除分配或者寫回其存儲塊副本,而不通知以Ig狀態保持該存儲塊的地址標記的高速緩存230。在這樣的情況下,該「陳舊」的Ig指示符,其不正確地指示應發出全局操作而不是局部操作來獲得關聯存儲塊的副本,將不會導致任何一致性錯誤,而僅會導致一些本來可利用局部操作來服務的操作作為全局操作被發出。類似的,具有顯式的或隱式的「全局」屬性的其他一致性狀態(例如T和Te)可由於缺少精確的高速緩存狀態更新機制而變陳舊。如現在將參照圖6A-8B說明的,可通過高速緩存清理來減小這些「陳舊」域指示引起的通信無效率。
首先參照圖6A,描述了根據本發明的啟動高速緩存清理操作的方法的高層流程圖。如圖所示,過程從塊600開始,並隨後轉到塊602,該塊602描述了初始化高速緩存清理邏輯250內的一個或多個控制寄存器252a-252n以建立高速緩存清理操作的參數。在一個實施例中,這些參數至少包括將被清理的一個或多個目標實存儲地址的指示,並且還可包括將在目標地址上執行的清理操作的類型的指示。例如,高速緩存清理邏輯250可支持一種或多種以下類型的高速緩存清理操作(1)被動高速緩存清理操作,在該操作中,如果可能的話,根據對數據處理系統的非破壞性探查的響應,更新與存儲塊相關聯的域指示(例如域指示符504)以指示「局部」,或(2)主動高速緩存清理操作,在該操作中,響應於傳輸到數據處理系統內的高速緩衝存儲器的可能破壞性的請求,強制復位與存儲塊相關聯的域指示(例如域指示符504)以指示「局部」。
儘管可能有其他實施例,但是為了便於實現,在此假設L2高速緩存230的高速緩存清理邏輯250的控制寄存器252可僅被初始化為清理分配給與高速緩存清理邏輯250處於相同一致性域內的系統存儲器108的目標地址。高速緩存清理邏輯250可例如參考BAR邏輯240或類似的與L2高速緩存230相關聯的基址寄存器,驗證控制寄存器252a-252n的設置指定的目標地址被分配給其一致性域內的一個或多個系統存儲器108。在此實施例中,高速緩存清理邏輯250簡單地忽略分配給在L2高速緩存230的局部一致性域之外的系統存儲器108的目標地址。
如圖6A的塊602所示的控制寄存器252的初始化可由例如軟體或固件通過執行一個或多個存儲器映射I/O寫操作來執行,或者作為選擇或附加通過由執行單元224(例如LSU 228)的執行或處理高速緩存清理指令來執行。例如,圖8A示出包括操作碼欄位802和操作數欄位804的一示例性高速緩存清理指令800的格式。在一個實施例中,操作碼欄位802支持包括第一二進位值和第二二進位值的值,該第一二進位值指定由助記的數據高速緩存塊域查詢(DCBDQ)表示的被動高速緩存清理操作,該第二二進位值指定由助記的數據高速緩存塊域復位(DCBDR)表示的主動高速緩存清理操作。操作數欄位804利用傳統尋址模式標識高速緩存清理操作的一個或多個目標高速緩存塊。如圖8B所述,高速緩存清理指令800通常形成至少部分地存儲在計算機可用介質(例如計算機存儲器108)內並且要被處理器核心200執行或處理的計算機可用程序代碼806的一部分。
在塊602所示的初始化之後,圖6A中所示的過程轉到塊604,該塊描述L2高速緩存230的主控232的高速緩存清理邏輯250為將被清理的每個目標地址在互連114、110上發出各自的全局範圍的高速緩存清理請求。例如,可響應於高速緩存清理邏輯250輪詢一個或多個控制寄存器252以檢測控制寄存器252的初始化,或者響應於主控232的高速緩存清理邏輯250響應於高速緩存清理指令(例如DCBDQ或DCBDR指令)的執行從相關聯的處理器核心200接受到初始化控制寄存器252的高速緩存清理操作,而發出高速緩存清理請求。在互連114、110上發出的高速緩存清理請求優選地指示目標地址,以及如果實現多於一種類型的高速緩存清理的話,指示請求被動還是主動高速緩存清理的事務類型。此後,被動高速緩存清理請求被稱為「域查詢」請求,而主動高速緩存清理請求被稱為「域復位」請求。應指出,與啟動L2高速緩存230中的目標存儲塊的一致性狀態無關地發出高速緩存清理請求。
在發出高速緩存清理請求之後,如塊606所示,主控232的高速緩存清理邏輯250等待對高速緩存清理請求的系統範圍的組合響應(CR)。如果組合響應指示「重試」,則過程返回塊604,該塊示出高速緩存清理邏輯250重新發出高速緩存清理請求。如果組合響應不指示「重試」,則高速緩存清理請求成功,並且過程在塊610結束。
現在參照圖6B,描述了根據本發明高速緩存監聽器例如L2高速緩存監聽器236用來處理域查詢請求的方法的高層邏輯流程圖。如圖所示,響應於L2高速緩存監聽器236在其局部互連114上接收到請求,過程從塊620開始。響應於接收到請求,監聽器236在塊622確定該請求是否是域查詢請求。如果不是,則如塊624所示,監聽器236執行其他處理,並且過程在塊660結束。但是,如果監聽器236在塊622確定請求是域查詢請求(包括相同L2高速緩存230內的高速緩存清理邏輯250發起的域查詢請求),則監聽器236在塊630進一步確定它目前是否能夠實質上響應域查詢請求(例如,它是否具有監聽邏輯的可用實例以及對L2高速緩存目錄302的當前訪問)。如果監聽器236目前不能實質上響應域查詢請求,則如塊632所示,監聽器236提供指示「重試」的部分響應(PR),並且域查詢請求的處理在塊660處結束。
假設監聽器236能夠實質上響應域查詢請求,監聽器236在塊634確定其是否與最初發出域查詢請求的啟動L2高速緩存230處於相同一致性域內。例如,監聽器236通過檢查域查詢請求內包含的範圍位(或者在其他實施例中,啟動L2高速緩存230的域標識符或目標地址),進行塊634所示的確定。如果監聽器236在塊634確定其沒有與啟動L2高速緩存230處於相同一致性域內,則監聽器236根據相對於其L2高速緩存目錄302的目標地址的一致性狀態提供部分響應。就是說,如果監聽器236的L2高速緩存目錄302指示目標地址具有數據有效一致性狀態(例如M、Me、T、Te、Tn、Ten、Sr或S),則如塊652所示,監聽器236提供指示「全局使用中」的部分響應。相反,如果監聽器236的L2高速緩存目錄302指示目錄地址具有數據無效一致性狀態(例如Ig、In或I),則如塊654所示,監聽器236提供指示「非全局使用中」的部分響應。在塊652或654之後,過程在塊660結束。
返回塊634,如果監聽器236確定其處於與啟動L2高速緩存230相同的一致性域(即在其局部),則如塊636所示,監聽器236也確定相對於其L2高速緩存目錄302的目標存儲地址的一致性狀態。如果目標存儲地址不具有記錄在L2高速緩存302內的這樣的相關聯的一致性狀態,該一致性狀態顯式或隱式地指示目標存儲塊的副本可能被高速緩存在局部一致性域之外(例如,一致性狀態不同於Ig、T或Te),則不需要執行進一步的處理,並且處理在塊660結束。但是,如果監聽器236確定域查詢請求的目標存儲地址具有記錄在L2高速緩存302內的這樣的相關聯的一致性狀態,該一致性狀態顯式或隱式地指示目標存儲塊的副本可能被高速緩存在局部一致性域之外(例如,一致性狀態為Ig、T或Te),則如塊638所示,監聽器236等待對域查詢請求的組合請求。
如上所述,響應邏輯210的至少一個實例(例如啟動處理單元104內的響應邏輯210)組合響應於域查詢請求生成的部分響應以確定組合響應。在一個實施例中,響應邏輯210根據表IV生成組合邏輯,在該表中「Y」指示部分響應的存在,「X」代表「無所謂」,而破折號(「-」)代表沒有部分響應。
表IV

因此,在此實施例中,如果任何監聽器236、222提供了指示「重試」的部分響應,則不管存在還是不存在任何其他部分響應,組合響應邏輯210都生成指示「重試」的組合響應。如果沒有監聽器236、222生成指示「重試」的部分響應,並且至少一個監聽器236生成指示「全局使用中」的部分響應,則組合響應邏輯210生成指示「全局使用中」的組合響應。最後,如果沒有監聽器236、222生成指示「重試」或「全局使用中」的部分響應,則組合響應邏輯210生成指示「非全局使用中」的組合響應。
響應於接收到對域查詢請求的組合響應,監聽器236在塊640確定該組合響應是否指示目標存儲塊為「非全局使用中」(即,目標存儲塊僅被高速緩存在局部一致性域內(如果它被高速緩存的話))。如果組合響應不指示目標存儲塊是「非全局使用中」,則不需要執行進一步的處理,並且過程在塊660處結束。但是,如果域查詢請求的組合響應指示目標存儲塊為「非全局使用中」,則監聽器236優選地將其L2高速緩存目錄302內的與目標地址相關聯的項從Ig更新到In,或從T更新到Tn,或從Te更新到Ten。這樣,更新目標存儲塊的一致性狀態以反映對域查詢請求的系統範圍的響應提供的域信息。
現參照圖6C,描述了根據本發明存儲控制器監聽器例如監聽器222用來處理被動域查詢請求的方法的高層邏輯流程圖。如圖所示,響應於存儲控制器監聽器222在其局部互連114上接收到請求,過程從塊670開始。響應於接收到請求,監聽器222在塊672確定該請求是否是域查詢請求。如果不是,則如塊674所示,監聽器222執行其他處理並且過程在塊692處結束。但是,如果監聽器222在塊672確定該請求是域查詢請求,則監聽器222在塊676進一步確定其目前是否能夠實質上響應該域查詢請求(例如,其是否具有監聽邏輯的可用實例)。如果監聽器222目前不能實質上響應該域查詢請求,則如塊678所示,監聽器222提供指示「重試」的部分響應(PR),並且域查詢請求的處理在塊692結束。
假設監聽器222目前能夠實質上響應域查詢請求,則如塊680所示,監聽器222任選地提供「非全局使用中」部分請求,並且如塊682所示,確定其是否是用於目標地址的LPC。例如,監聽器222可通過參考BAR邏輯240進行如塊682所示的確定。如果監聽器222在塊682確定其不是用於目標地址的LPC,則不需要進一步處理域查詢請求,並且過程在塊692結束。
返回參照塊682,如果監聽器222確定其是用於目標地址的LPC,則如塊684所示,監聽器222等待對域查詢請求的組合響應。響應於接收到對域查詢請求的組合響應,監聽器222在塊686和688確定組合響應是否指示目標存儲塊是「非全局使用中」(即,目保存儲塊被高速緩存在局部一致性域之內(如果被高速緩存的話))。如果組合響應未指示目標存儲塊是「非全局使用中」,則監聽器222不需要執行進一步的處理,並且過程在塊692結束。但是,如果域查詢請求的組合響應指示目標存儲塊是「非全局使用中」,則監聽器222利用讀-修改-寫操作來復位系統存儲器108內的目標存儲塊的域指示符504以指示「局部」(塊690)。這樣,在系統存儲器108內更新目標存儲塊的域指示符504以反映對域查詢請求的系統範圍的響應所提供的域信息。此後,過程在塊692結束。
現在參照圖7A,示出根據本發明高速緩存監聽器例如L2高速緩存監聽器236用來處理主動高速緩存清理請求(即域復位請求)的方法的高層邏輯流程圖。如圖所示,響應於L2高速緩存監聽器236在其局部互連114上接收到請求,過程在塊700開始。響應於接收到請求,監聽器236在塊702確定該請求是否是域復位請求。如果不是,則如塊704所示,監聽器236執行其他處理並且過程在塊740處結束。但是,如果監聽器236在塊702確定請求是域復位請求(包括由相同L2高速緩存230內的高速緩存清理邏輯250發起的域復位請求),則監聽器236進一步在塊706確定其目前是否能夠實質上響應域復位請求(例如,其是否具有監聽邏輯的可用實例和對L2高速緩存目錄302的當前訪問)。如果監聽器236目前不能實質上響應域復位請求,則如塊708所示,監聽器236提供指示「重試」的部分響應(PR),並且域復位請求的處理在塊740結束。
假設監聽器236能夠實質上響應域復位請求,則監聽器236在塊710其是否處於與最初發出域復位請求的啟動L2高速緩存230相同的一致性域內。例如,監聽器236可通過檢查域復位請求內包含的範圍位(或者在其他實施例中,啟動L2高速緩存230的域標識符或目標地址),進行塊710所示的確定。如果監聽器236在塊710確定其沒有處於與啟動L2高速緩存230相同的一致性域內,則監聽器236還確定相對於其L2高速緩存目錄302的目標地址的一致性狀態。如果如從塊720和730到塊734的過程指示的,監聽器236的L2高速緩存目錄302指示為該存儲塊存儲的一致性狀態是I或Ig,則監聽器236提供指示「成功」的部分響應。此後,監聽器236的處理在塊740結束。
返回塊720,如果監聽器236的L2高速緩存目錄302指示為該存儲塊存儲的一致性狀態為M、T或Tn,這意味著相對於系統存儲器108修改了目標存儲塊的副本,則如塊722所示,監聽器236通過將被修改的存儲塊推入系統存儲器108來更新系統存儲器,並如塊724所示,將L2高速緩存目錄302內記錄的關聯的一致性狀態更新為I。另外,如在塊726所示,監聽器236提供指示「重試」的部分響應,從而當啟動L2高速緩存230重新發出域復位請求時,如塊734所示,監聽器236可提供指示「成功」的部分響應。在塊726之後,監聽器236對域復位請求的處理在塊740處結束。
返回塊730,如果監聽器236的L2高速緩存目錄302指示目標地址具有某種其他的數據有效一致性狀態(例如Me、Te、Ten、Sr或S),則如塊732所示,監聽器236將一致性狀態更新為I,並如塊734所示提供指示「成功」的部分響應。在塊734之後,過程在塊740結束。
返回參照塊710,如果監聽器236確定其與啟動L2高速緩存230處於相同的一致性域(即在其局部),則如塊712所示,監聽器236也確定相對於其L2高速緩存目錄302的目標存儲地址的一致性狀態。如果目標存儲地址不具有記錄在L2高速緩存302內的這樣的相關聯的一致性狀態,該一致性狀態顯式或隱式地指示目標存儲塊的副本可能被高速緩存在局部一致性域之外(例如,一致性狀態不同於Ig、T或Te),則不需要執行進一步的處理,並且過程在塊740結束。但是,如果監聽器236確定域查詢請求的目標存儲地址具有記錄在L2高速緩存302內的這樣的相關聯的一致性狀態,該一致性狀態顯式或隱式地指示目標存儲塊的副本可能被高速緩存在局部一致性域之外(例如,一致性狀態為Ig、T或Te),則如塊714所示,監聽器236等待對域查詢請求的組合響應。
在一個實施例中,響應邏輯210根據表V生成組合邏輯,在該表中「Y」指示部分響應的存在,「X」代表「無所謂」,而破折號(「-」)代表沒有部分響應。
表V

因此,在此實施例中,如果任何監聽器236、222提供了指示「重試」的部分響應,則不管存在還是不存在任何其他部分響應,組合響應邏輯210都生成指示「重試」的組合響應。如果沒有監聽器236、222生成指示「重試」的部分響應,而至少一個監聽器236生成指示「成功」的部分響應,則組合響應邏輯210生成指示「成功」的組合響應。
響應於接收到對域復位請求的組合響應,監聽器236在塊714確定該組合邏輯是否指示「成功」(即,目標存儲塊僅被高速緩存在局部一致性域內(如果它被高速緩存的話))。如果組合響應未指示「成功」,則不需要執行進一步的處理,並且過程在塊740處結束。但是,如果域復位請求的組合響應指示「成功」,則監聽器236優選地將其L2高速緩存目錄302內的與目標地址相關聯的項從Ig更新到In,或從T更新到Tn,或從Te更新到Ten。這樣,更新目標存儲塊的一致性狀態以反映對域查詢請求的系統範圍的響應提供的域信息。此後,過程在塊740結束。
現在參照圖7B,示出根據本發明存儲控制器監聽器例如監聽器222用來處理域復位請求的方法的高層邏輯流程圖。如圖所示,響應於存儲控制器監聽器222在其局部互連114上接收到請求,過程在塊770開始。響應於接收到請求,監聽器222在塊722確定該請求是否是域復位請求。如果不是,則如塊774所示,監聽器222執行其他處理並且過程在塊790處結束。但是,如果監聽器222在塊772確定該請求是域復位請求,則監聽器222進一步在塊776確定其目前是否能夠實質上響應域復位請求(例如,其是否具有監聽邏輯的可用實例)。如果監聽器222目前不能實質上響應域復位請求,則如塊778所示,監聽器222提供指示「重試」的部分響應(PR),並且域復位請求的處理在塊790結束。
假設監聽器222能夠實質上響應域復位請求,則如塊780所示,監聽器222任選地提供「成功」部分響應,並且如塊782所示,確定其是否是用於目標地址的LPC。例如,監聽器222可通過參考BAR邏輯240進行如塊782所示的確定。如果監聽器222在塊782確定其不是用於目標地址的LPC,則不需要進一步處理域復位請求,並且過程在塊790結束。
返回參照塊782,如果監聽器222確定其是用於目標地址的LPC,則如塊784所示,監聽器222等待對域復位請求的組合響應。響應於接收到對域復位請求的組合響應,監聽器222在塊786確定組合響應是否指示「成功」(即,目標存儲塊僅被高速緩存在局部一致性域內(如果被高速緩存的話))。如果組合響應未指示「成功」,則不需要執行進一步的處理,並且過程在塊790結束。但是,如果域復位請求的組合響應指示「成功」,則監聽器222利用讀-修改-寫操作來復位系統存儲器108內的目標存儲塊的域指示符504以指示「局部」(塊788)。這樣,在系統存儲器108內更新目標存儲塊的域指示符504以反映對域復位請求的系統範圍的響應提供的域信息。此後,過程在塊692結束。
如上所述,本發明提供了一種改進的數據處理系統、處理單元、高速緩存層次結構和數據處理方法,其清理高速緩存以如果可能的話更新局部一致性域中指示存儲塊可能被高速緩存在局部一致性域之外的指示。因此,可以主動或被動方式執行的根據本發明的高速緩存清理,可被用來更新被保持在局部一致性域內的存儲塊的被高速緩存的副本的一致性狀態,以及在系統存儲器中的域指示。
儘管已參照優選實施例具體示出本發明,但是本領域內的技術人員將理解其中可在形式和細節方面進行許多改變而不會背離本發明的精神和範圍。例如,儘管已相對於執行指導本發明的功能的程序代碼的計算機系統說明了本發明的方面,但是應理解,作為另一種選擇,本發明可實現為與數據處理系統一起使用的程序產品。可經由多種信號承載介質包括而不局限於不可重寫存儲介質(例如CD-ROM)、可重寫存儲介質(例如軟盤或硬碟驅動器)以及通信介質例如數字和模擬網絡,將定義本發明的功能的程序產品傳送給數據處理系統。因此,應理解這樣的信號承載介質在承載或編碼指導本發明的功能的計算機可讀指令時代表本發明的其他可選擇實施例。
此外,儘管根據本發明的高速緩存清理邏輯已作為高速緩存的部件被說明,但是本領域內的那些技術人員將理解,高速緩存清理邏輯可作為替代或作為附加位於數據處理系統內的其他地方,例如位於存儲控制器(例如IMC 206)內或在總線橋內,或者實現為連接到互連結構(fabric)的獨立設備。在各種實施例中,高速緩存清理邏輯可實現為能夠僅執行被動或主動或指示清理之一,或作為另一種選擇,可實現為選擇性地執行任一類型的或指示清理。
在本發明的另一個實施例中,L2高速緩存230內的高速緩存清理邏輯250可在圖6A的塊602自初始化,以通過掃描其高速緩存目錄302來識別這樣的目標存儲地址來執行或指示清理操作,即這些目標存儲地址(1)具有包含L2高速緩存230的一致性域作為主(home)一致性域以及(2)與Ig一致性狀態或具有顯式或隱式的「遠程」或「全局」高速緩存指示的其他被選擇的一致性狀態相關聯。在此實施例中,不需要控制寄存器252的軟體/固件初始化。
權利要求
1.一種數據處理系統中的數據處理方法,所述方法包括局部一致性域內的清理邏輯向遠程一致性域內的至少一個高速緩存層次結構發出域復位請求,該域復位請求強制當時被保持在所述遠程一致性域內的目標存儲塊的任何被高速緩存的副本無效;接收對所述域復位請求的一致性響應;以及響應於所述一致性響應指示所述目標存儲塊沒有被高速緩存在所述遠程一致性域內,更新所述局部一致性域內的域指示以指示所述目標存儲塊僅被高速緩存在所述局部一致性域內,如果它被高速緩存的話。
2.根據權利要求1的方法,其中,所述域復位請求不請求所述目標存儲塊的副本。
3.根據權利要求1的方法,且還包括響應於所述一致性響應指示所述目標存儲塊沒有被高速緩存在所述遠程一致性域內,所述局部一致性域內的至少一個高速緩存層次結構將其相應的用於所述目標存儲塊的一致性狀態從第一狀態更新到第二狀態,該第一狀態指示所述存儲塊可被高速緩存在所述遠程一致性域內,該第二狀態指示所述目標存儲塊僅被高速緩存在所述局部一致性域內,如果它被高速緩存的話。
4.根據權利要求3的方法,其中,所述第一狀態是第一數據無效狀態,且所述第二狀態是第二數據無效狀態。
5.根據權利要求3的方法,其中,所述第一狀態是第一共享狀態,且所述第二狀態是第二共享狀態。
6.根據權利要求1的方法,其中,所述更新包括系統存儲器的存儲控制器更新所述域指示。
7.根據權利要求1的方法,其中,接收所述一致性響應包括接收代表對所述域復位請求的系統範圍的響應的組合響應。
8.根據權利要求1的方法,其中,所述清理邏輯響應於至少利用所述目標存儲塊的目標地址初始化控制寄存器,發出所述域復位請求。
9.根據權利要求1的方法,其中,所述清理邏輯響應於所述控制寄存器的所述初始化選擇性地發出所述域復位請求而不是發出非破壞性的域查詢請求。
10.一種裝置,包括包括控制寄存器的清理邏輯裝置,其中所述清理邏輯裝置響應於至少利用目標存儲塊的目標地址初始化所述控制寄存器,向遠程一致性域內的至少一個高速緩存層次結構發出域復位請求,該域復位請求強制當時被保持在所述遠程一致性域內的所述目標存儲塊的任何被高速緩存的副本無效。
11.根據權利要求10的裝置,其中,所述域復位請求不請求所述目標存儲塊的副本。
12.根據權利要求10的裝置,且還包括包含所述清理邏輯裝置的高速緩衝存儲器。
13.根據權利要求12的裝置,且還包括連接到所述高速緩衝存儲器的至少一個處理器核心。
14.根據權利要求10的裝置,且還包括包含所述清理邏輯裝置的系統存儲控制器。
15.根據權利要求10的裝置,且還包括包括所述清理邏輯裝置的局部一致性域;包括所述至少一個高速緩存層次結構的所述遠程一致性域;在所述局部一致性域內的高速緩衝存儲器,其響應於接收到指示所述目標存儲塊沒有被高速緩存在所述遠程一致性域內的對所述域復位請求的一致性響應,將其相應的用於所述目標存儲塊的一致性狀態從第一狀態更新到第二狀態,該第一狀態指示所述存儲塊可被高速緩存在所述遠程一致性域內,該第二狀態指示所述目標存儲塊僅被高速緩存在所述局部一致性域內,如果它被高速緩存的話。
16.根據權利要求15的裝置,其中,所述第一狀態是第一數據無效狀態,且所述第二狀態是第二數據無效狀態。
17.根據權利要求16的裝置,其中,所述第一狀態是第一共享狀態,且所述第二狀態是第二共享狀態。
18.根據權利要求15的裝置,且還包括所述局部一致性域內的存儲控制器,其中所述存儲控制器響應於所述一致性響應指示所述目標存儲塊沒有被高速緩存在所述遠程一致性域內,更新所述局部一致性域內的域指示以指示所述目標存儲塊僅被高速緩存在所述局部一致性域內,如果它被高速緩存的話。
19.根據權利要求18的裝置,其中,所述一致性響應包括代表對所述域復位請求的系統範圍的響應的組合響應。
全文摘要
局部一致性域內的清理邏輯向遠程一致性域內的至少一個高速緩存層次結構發出域復位請求,該域復位請求強制當時被保持在所述遠程一致性域內的目標存儲塊的任何被高速緩存的副本無效。接收到對所述域復位請求的一致性響應。響應於該一致性響應指示所述目標存儲塊沒有被高速緩存在該遠程一致性域內,更新所述局部一致性域內的域指示以指示該目標存儲塊僅被高速緩存在該局部一致性域內,如果它被高速緩存的話。
文檔編號G06F12/08GK1869955SQ20061007851
公開日2006年11月29日 申請日期2006年5月8日 優先權日2005年5月24日
發明者L·J·克拉克, J·S·小菲爾德, G·L·古思裡, W·J·斯塔克, D·E·威廉士 申請人:國際商業機器公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀