TWI502346B - 根據窺探回應資訊之目錄快取分配技術 - Google Patents
根據窺探回應資訊之目錄快取分配技術 Download PDFInfo
- Publication number
- TWI502346B TWI502346B TW099119102A TW99119102A TWI502346B TW I502346 B TWI502346 B TW I502346B TW 099119102 A TW099119102 A TW 099119102A TW 99119102 A TW99119102 A TW 99119102A TW I502346 B TWI502346 B TW I502346B
- Authority
- TW
- Taiwan
- Prior art keywords
- cache
- agent
- directory
- target address
- memory
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/082—Associative directories
Description
本發明大致上係有關電子裝置的技術領域。更確切來說,本發明的一實施例係有關根據窺探回應資訊的目錄快取分配技術。
可利用一窺探匯流排或一目錄式協定使電腦系統中的快取記憶體保持為同調。在任一種狀況中,一記憶體位址係與該系統中的一特定位置相關聯。此位置大致上被稱為一記憶體位址的〝本地節點〞。
在一目錄式協定中,處理/快取代理器可傳送請求到一本地節點,以供存取與一對應〝本地代理器〞相關聯的一記憶體位址。因此,該種電腦系統的效能可直接地依據如何有效地維持一對應目錄式協定的方式而定。
依據本發明的一實施例,係特地提出一種設備,其包含:一第一代理器,其用以從一第二代理器接收對應於一目標位址的一請求;以及耦合至該第一代理器的一目錄快取記憶體,其用以儲存對應於耦合至該第一代理器之多個快取代理器的資料,其中該經儲存資料係用以指出該等多個快取代理器中的哪一個快取代理器具有對應於該目標位址之該資料的一副本,其中針對該目標位址的一分錄係響應於判定出該等多個快取代理器中的另一個快取代理器具有對應於該目標位址之該資料的一副本,而在該目錄快取記憶體中受分配。
以下將參照圖式來提出本發明的詳細說明。在圖式中,一元件編號的最左邊數字表示該元件編號首先出現的圖式編號。在不同圖式中,將使用相同的元件編號來表示相似或相同的物件。
第1與4至5圖以方塊圖展示出運算系統的實施例,該等運算系統可用來實行本發明所討論的各種不同實施例。
第2圖展示出根據本發明一實施例之一目錄快取記憶體的多個分錄。
第3圖以流程圖展示出本發明的一種實施例。
在以下的發明說明中,將列出多種特定細節以供完整地了解本發明的各種不同實施例。然而,不需要該等特定細節亦能實行本發明。在其他事例中,並未詳細地說明已知方法、程序、構件、與電路,以避免模糊本發明的焦點。
本發明討論的某些實施例係大致上有關用於一目錄快取記憶體(在本發明中亦稱為〝Dir$〞)的分配策略。使用該種策略可藉著縮減目錄快取記憶體的大小而增加效能及/或節省設計預算。該目錄快取記憶體(其在一實施例中可與一本地代理器位於相同的積體電路晶粒上)可儲存與由該系統中之一或多個代理器儲存之位址有關的資訊。例如,快取記憶體可指出哪些代理器可儲存與一給定位址相關聯的請求資料。因此,係假設該目錄含有與該系統之快取代理器中一同調單元(例如快取記憶體線道或快取記憶體區塊,或者一記憶體或快取記憶體的另一個部份)之快取狀態有關的資訊,例如以供縮減窺探訊務,例如縮減或避免窺探散佈。同樣地,因為係有效地維持該目錄快取記憶體,可透過較小的目錄快取記憶體而降低設計預算。
大致上,可利用一窺探匯流排或一目錄式協定使運算系統的快取記憶體保持為同調。在任一種狀況中,一記憶體位址係與該系統中的一特定位置相關聯。此位置大致上被稱為一記憶體位址的〝本地節點〞。在一種目錄式協定中,處理/快取代理器可傳送請求到該本地節點,以供存取與一〝本地代理器〞相關聯的一記憶體位址。
在分散式快取記憶體同調協定中,快取代理器可傳送請求到控制對對應記憶體空間之同調存取的本地代理器。本地代理器則依次地負責確保把該請求資料的一最近副本送回到請求者,不管是從記憶體或從擁有該請求資料的一快取代理器。該本地代理器亦可負責使位於其他快取代理器上的資料副本無效,例如,如果該請求並不是針對一專屬副本。針對該等目的,一本地代理器大致上可窺探每個快取代理器或者仰賴一目錄,來追蹤當中資料可駐存的一組快取代理器。在某些實行方案中,所有讀取或詢查請求可促成一目錄快取記憶體中的一項分配動作。因此,如何完成該等分配動作對整體系統效能來說會有相當大的影響。
在某些實施例中,該目錄資訊可包含每快取代理器一個位元,其指出該目標資料在一快取代理器上的出現或缺席狀況(例如分別依據實行方案〝1〞或〝0〞,或反之),如在源自於一快取代理器之先前請求或窺探回應過程中所記錄的。在一實施例中,該目錄資訊可根據一種壓縮格式,其中位元可在快取代理器的一叢集中編碼該目標資料的出現/缺席狀況,及/或可編碼其他狀態資訊(例如共享的或專屬的)。不管該目錄資訊的特定實行狀況為何,本發明將把它稱為出現向量(Presence Vector、PV)。
各種不同運算系統可用以實行本發明所述的實施例,例如參照第1圖與第4圖至第5圖所述的該等系統。更確切來說,第1圖以方塊圖展示出根據本發明一實施例的一種運算系統100。系統100可包括一或多個代理器102-1至102-M(在本文中係整體地稱為〝多個代理器102〞,或大致上稱為〝代理器102〞)。在一實施例中,該等代理器102中的一或多個可為一運算系統的任何部件,例如參照第4圖至第5圖所述的該運算系統。
如第1圖所示,代理器102可經由網路架構104進行通訊。在一實施例中,網路架構104可包括允許各種不同代理器(例如運算裝置)能傳遞資料的一電腦網路。在一實施例中,網路架構104可包括經由一串列(例如點對點)鏈路及/或一共享通訊網路進行通訊的一或多個互連體(或互連網路)。例如,某些實施例可促進部件除錯或驗證鏈結功能,其允許與完全緩衝的雙列直插式記憶體模組(FBD)進行通訊,例如,其中該FBD鏈結為用以使記憶體模組耦合至一主機控制器裝置(例如處理器或記憶體中樞)的一串列鏈結。可從FBD通道主機發送除錯資訊,使得可藉由通道訊務足跡捕捉工具(例如一或多個邏輯分析器)而沿著該通道來觀察該除錯資訊。
在一實施例中,系統100可支援一種層疊式協定方案,其可包括一實體層、一鏈結層、一路由層、一傳輸層、及/或一協定層。網路架構104可另促進從一協定(例如快取處理器或快取知悉記憶體控制器)針對一點對點或共享網路發送資料(例如呈封包形式)到另一個協定。同樣地,在某些實施例中,網路架構104可提供符合一或多個快取記憶體同調協定的通訊。
再者,如第1圖之箭頭所示的方向,代理器102可經由網路架構104發送及/或接收資料。因此,某些代理器可使用一單向鏈結,而其他代理器可使用一雙向鏈結來進行通訊。例如,一或多個代理器(例如代理器102-M)可發送資料(例如經由單向鏈結106),其他代理器(例如代理器102-2)可接收資料(例如經由單向鏈結108),而某些代理器(例如理器102-1)可發送並且接收資料(例如經由雙向鏈結110)。
此外,代理器102中的至少一個可為一本地代理器,且代理器102中的一或多個可為請求或快取代理器,如本文將進一步討論地,例如參照第3圖。例如,在一實施例中,代理器102中的一或多個(僅展示出一個代理器102-1)可維持一或多個儲存裝置(僅針對代理器102-1展示出一個,例如目錄快取記憶體120,例如實行為圖表、佇列、緩衝器、鏈結清單等)中的多個分錄,以追蹤有關PV的資訊。在某些實施例中,各個代理器102或其中的至少一個可耦合至一對應目錄快取記憶體120,其係與該代理器位於相同的晶粒上或者可由該代理器存取。
請參照第2圖,其根據本發明的一實施例展示出一樣本目錄快取記憶體120。如所展示地,目錄快取記憶體120可儲存用於一或多個位址202-1至202-Y的一或多個出現向量(PV) 208。更確切來說,快取記憶體目錄120的各列可代表用於一給定位址的一PV,其係由一運算系統(例如參照第1圖討論的系統100)中的代理器儲存。
在某些實施例中,目錄快取記憶體120可包含每快取代理器(例如代理器1、代理器2至代理器X)一個位元(例如儲存在204-1至206-1、204-2至206-2、直到204-Y至206Y),其指出與一給定快取代理器上之一位址(例如位址202-1至202-Y)相關聯之目標資料的出現或缺席狀況(例如分別依據實行方案〝1〞或〝0〞,或反之),如在源自於一快取代理器之先前請求或窺探回應過程中所記錄的。在一實施例中,該目錄資訊可根據一種壓縮格式,其中位元可在快取代理器的一叢集中編碼該目標資料的出現/缺席狀況。不管該目錄資訊的特定實行狀況為何,本發明將把它稱為出現向量(Presence Vector、PV)。再者,在一實施例中,係假設該等PV位元在記憶體中具有一永久備份(例如沿著其所附屬之該同調單元的ECC(錯誤校正碼)位元)。然而,一永久備份並不是一要件;記憶體中之一備份分錄的格式也不是要件,但如果有的話,該格式應該不同於該Dir$ PV。例如,在一實施例中,記憶體中的該永久備份可由一單一位元組成,其表示該位址已經某些未指定代理器快取或未受到快取。
此外,在某些實施例中,可把用於某些線道的該等PV位元儲存在一晶粒上目錄快取記憶體中(例如與該本地代理器位於相同的晶粒上)。快取該晶粒上之該等PV位元的動作可加速該本地代理器傳送出窺探請求的程序,如本發明將進一步討論地。在一目錄快取記憶體缺席的狀況下,該等PV位元僅可在一較冗長記憶體存取動作之後才為可得。在許多事例中,窺探請求可位於潛伏期間關鍵路徑上,因此加速此程序對整體的系統效能是有利的。例如,一本地代理器所接收到的許多請求可促成一項快取對快取轉移動作,其中係在一第三者快取代理器中找到該資料的最新副本。相反地,有些時候該記憶體副本為乾淨的,且不需要窺探其他快取代理器。在該等事例中,從記憶體取得該等PV位元並不需要額外的冗餘工作,因為此動作是與資料存取動作並行地進行。
第3圖以流程圖展示出根據本發明一實施例之一種用以分配一目錄快取記憶體中之分錄的方法300。在一實施例中,可使用參照第1圖至第2圖以及第4圖至第5圖討論的各種不同部件來進行參照第3圖討論之該等操作中的一或多個。例如,在一實施例中,一本地代理器可進行方法300的多項操作。
請參照第1圖至第5圖,在操作302中,可判定出是否已經由一本地代理器從另一個快取代理器接收到用於目標資料的一請求(例如由一位址識別)。在操作304中,可以在該目錄快取記憶體(例如Dir$ 120)中詢查該目標資料的位址。如果該目錄快取記憶體並不包括對應於該目標位址的一分錄,在操作308中,該本地代理器可存取主要記憶體(例如記憶體412及/或記憶體510或512),以從儲存在該主要記憶體中的一目錄(例如目錄401)取得用於該目標位址的PV。在一實施例中,儲存在該主要記憶體中的目錄401可包括參照該系統中之快取代理器有關的目錄快取記憶體120所討論的相同或相似資訊。在某些實施例中,目錄401僅包括與該系統中之一子組快取代理器有關的資訊。
在操作310中,可判定出是否要進行一項窺探操作,例如,根據在操作308中取得的資訊。例如,如果從該主要記憶體取得的該PV指出另一個快取代理器正共享該目標位址(例如,如對應於目錄401中之該目標位址的該等位元所示),在操作312中,可傳送出一或多個窺探(例如對共享該目標位址之該等快取代理器中的各個),並且可接收到多個回應。例如,如果操作302的該請求是用於對該目標位址的一寫入操作,可以使位於共享該目標位址(根據操作308的PV)之其他快取代理器上的副本無效。替代地,如果目錄401僅包括與該系統中之一子組快取代理器有關的資訊,可以在操作312中對該子組中的所有快取代理器播送一窺探。
在操作314中,如果有任何有效副本存在的話(例如,該目標位址實際上是由另一個快取代理器儲存,而非由在操作302中發送該請求的該快取代理器),在操作316中,便在目錄快取記憶體120中分配一分錄。該經分配分錄含有根據該請求以及該等窺探回應而對與該目標位址相關聯之該PV中之對應位元的更新項目。否則,如果在操作314並沒有任何有效副本存在,在操作318中,便不在目錄快取記憶體120中進行分配動作,但將更新目錄401中的該PV,以指出在操作302中發送該請求的該快取代理器正在共享該目標位址。同樣地,如第3圖所示,如果不在操作310中進行窺探的話,方法300便在操作318中繼續進行。
在操作306中,如果判定出目錄快取記憶體120中的一分錄對應於該目標位址,便從目錄快取記憶體120讀取該PV資訊,例如,以判定哪些快取代理器正在共享該目標位址。在操作322中,可判定出是否要進行一項窺探,例如,根據在操作320中取得的PV資訊。例如,如果該PV資訊指出快取代理器(例如除了發送操作302之該請求的該快取代理器之外)共享相同的位址,可對由操作320中取得之PV資訊所識別的該(等)快取代理器發送一或多個窺探,並且接收回應。如果操作302的該請求是針對該目標位址的一寫入操作,可在操作322中使位於共享該目標位址(根據操作320的PV)之其他快取代理器上的副本無效。在操作324中,將更新對應於該目標位址之目錄快取記憶體120中的該PV(例如,根據操作322的該等窺探回應或操作302的請求類型(例如,如果為專屬的話,便使其他副本無效))。
在某些實施例中,將提供一種目錄快取分配策略,其使用共享資訊來判定該目錄快取記憶體是否應該針對一位址分配一分錄。尤其,一實施例針對遇到一未來窺探關鍵性存取可能性相對地高的線道或區塊分配分錄。相反地,可不分配具有低窺探關鍵性存取可能性的線道/區塊。例如,該種實施例所使用的探求法要求的是,如果在過去儲存了一線道,該線道可能在未來會受到儲存。因此,用以決定需要分配哪些分錄的該策略可使用PV位元與窺探回應的一組合。例如,如果該本地代理器蒐集到指出另一個快取代理器具有一有效副本(例如一回應轉送或降級顯示)的至少一窺探回應,便針對一位址在該目錄快取記憶體中分配一分錄。在某些事例中,該等PV位元將優先地包含表示不需要窺探其他快取代理器的資訊,進而立即地形成一項非分配決策。
在某些實施例中,上述的該分配策略可針對由多個快取代理器儲存或爭奪分錄而在該目錄快取記憶體中提供較多空間,其中該等PV位元的一快速詢查具有關鍵性。另一方面,傾向維持為私密的線道(受到一單一快取代理器存取)將錯過該目錄快取記憶體,但該目錄詢查動作將不會呈現出任何潛伏期間損失,因為係同時地從記憶體存取該資料與PV位元,且該等PV位元表示出不需要進行窺探。因此,對不需要受到窺探之線道(例如私密資料)的參照為有效選中狀況的部分(非真實的目錄快取記憶體選中狀況,但亦對效能沒有影響)。
第4圖以方塊圖展示出運算系統400的一實施例。第1圖中之該等代理器102中的一或多個可包含運算系統400的一或多個部件。同樣地,系統400的各種不同部件可包括一目錄快取記憶體(例如第1圖至第3圖的目錄快取記憶體120)。運算系統400可包括耦合至一互連網路(或匯流排)404的一或多個中央處理單元(CPU) 402(其在本發明係整體地稱為〝多個處理器402〞,或大致上稱為〝處理器402〞)。處理器402可為任何類型的處理器,例如一般用途處理器、網路處理器(其可處理透過電腦網路405傳遞的資料)等(包括一精簡指令集電腦(RISC)處理器或一複雜指令集電腦(CISC))。再者,處理器402可具有一單一或多重核心設計。具有多重核心設計的處理器402可在相同的積體電路(IC)晶粒上整合不同類型的處理器核心。同樣地,可把具有多重核心設計的處理器402實行為對稱或不對稱多處理器。
處理器402可包括一或多個快取記憶體(例如除了所展示出的目錄快取記憶體120以外),其在各種不同實施例中可為私有的及/或共享的。大致上,一快取記憶體可儲存對應於儲存在它處或先前已運算之原始資料的資料。為了縮短記憶體存取潛伏期間,一旦已經把資料儲存在一快取記憶體中,可藉由存取一快取副本的方式來進行未來使用,而非重新擷取或重新運算該原始資料。該(等)快取記憶體可為任何類型的快取記憶體,例如第一階層(L1)快取記憶體、第二階層(L2)快取記憶體、第三階層(L3)、中間階層快取記憶體、以及最後階層快取記憶體(LLC)等,以儲存系統400之一或多個部件所使用的電子資料(例如包括指令)。此外,該(等)快取記憶體可位於各種不同位置中(例如,位於上述討論之該等運算系統之其他部件的內部,包括第1圖或第5圖的系統)。
晶片組406亦可同時地與互連網路404耦合。再者,晶片組406可包括圖形記憶體控制中樞(GMCH) 408。GMCH 408可包括與記憶體412進行通訊的記憶體控制器410。記憶體412可儲存資料,包括由處理器402執行或由運算系統400中之任何其他裝置執行的指令串。同樣地,在本發明的一實施例中,記憶體412可包括一或多個依電性儲存(或記憶體)裝置,例如隨機存取記憶體(RAM)、動態RAM(DRAM)、同步DRAM(SDRAM)、靜態RAM(SRAM)。亦可使用非依電性記憶體,例如硬碟。其他的裝置可耦合至互連網路404,例如多個處理器及/或多個系統記憶體。
GMCH 408可另包括與顯示器裝置416進行通訊的圖形介面414(例如在一實施例中係經由一圖形加速器)。在一實施例中,圖形介面414可透過一個加速圖形埠(AGP)與顯示器裝置416進行通訊。在本發明的一實施例中,顯示器裝置416(例如一平坦面板顯示器)可透過一信號轉換器來與圖形介面414進行通訊,該信號轉換器把儲存在一儲存裝置(例如視訊記憶體或系統記憶體,如記憶體412)中一影像的數位表述轉譯為可由該顯示器416解譯並顯示的多個顯示信號。
如第4圖所示,中樞介面418可使GMCH 408耦合至輸入/輸出控制中樞(ICH) 420。ICH 420可對與運算系統400耦合的多個I/O裝置提供一介面。ICH 420可透過一周邊橋接器(或控制器)424與匯流排422耦合,例如依從PCIe規格的周邊部件互連(PCI)橋接器、通用串列匯流排(USB)控制器等。橋接器424可提供介於處理器402以及周邊裝置之間的一資料路徑。可使用其他類型的拓樸結構。同樣地,多個匯流排可與ICH 420耦合,例如透過多個橋接器或控制器。再者,匯流排422可包含其他類型與組態的匯流排系統。再者,在本發明的各種不同實施例中,與ICH 420耦合的其他周邊裝置可包括整合式驅動電子介面(IDE)或小型電腦系統介面(SCSI)硬碟驅動機、USB埠、鍵盤、滑鼠、並列埠、串列埠、軟碟機、數位輸出支援裝置(例如數位視訊介面(DVI))、或其他裝置。
匯流排422可耦合至音訊裝置426、一或多個磁碟機428、以及網路介面裝置430(其在一實施例中可為一NIC)。在一實施例中,網路配接器430或耦合至匯流排422的其他裝置可與晶片組406進行通訊。同樣地,在本發明的某些實施例中,各種不同部件(例如網路配接器430)可耦合至GMCH 408。此外,可把處理器402與GMCH 408結合在一起以形成一個單一晶片。在一實施例中,可在該等CPU 402中的一或多個中備置記體體控制器410。再者,在一實施例中,可把GMCH 408與ICH 420結合在一起,以形成一周邊控制中樞(PCH)。
此外,運算系統400可包括依電性及/或非依電性記憶體(或儲存體)。例如,非依電性記憶體可包括下列的一或多種:唯讀記憶體(ROM)、可規劃ROM(PROM)、可抹除PROM(EPROM)、電性EPROM(EEPROM)、碟片驅動機(例如碟片驅動機428)、軟碟、小型光碟ROM(CD-ROM)、數位多用途碟片(DVD)、快閃記憶體、磁性光學碟片、或能儲存電子資料(例如包括指令)的其他類型非依電性機器可讀媒體。
在一實施例中,記憶體412可包括下列的一或多個:一作業系統(O/S) 432、應用程式434、目錄401、及/或裝置驅動程式436。記憶體412亦可包括專屬於記憶體映射I/O(MMIO)操作的區域。可把儲存在記憶體412中的程式及/或資料替換成碟片驅動機428,作為記憶體管理操作的部份。應用程式434可執行(例如在處理器402上),以把一或多個封包傳遞到耦合至網路405的一或多個運算裝置。在一實施例中,一封包可為可由一或多個電子信號編碼之一或多串的符號及/或數值,該等信號係從至少一傳送器傳遞到至少一接收器(例如透過如網路405的一網路)。例如,各個封包可具有包括各種不同資訊的一頭標,其可用於路由及/或處理該封包,例如一來源位址、一目的地位址、封包類型等。各個封包亦可具有一酬載,其包括該封包透過一電腦網路(例如網路405)在各種不同運算裝置之間傳輸的原始資料(或內容)。
在一實施例中,應用程式434可使用O/S 432以與系統400的各種不同部件通訊,例如,透過裝置驅動程式436。因此,裝置驅動程式436可包括網路配接器430特定命令,以提供介於O/S 432以及網路配接器430之間的一通訊介面,或者介於O/S 432以及耦合(例如經由晶片組406)至系統400之其他I/O裝置之間的一通訊介面。
在一實施例中,O/S 432可包括一網路協定堆疊。一協定堆疊大致上係指可受執行以處理透過網路405傳送之封包的一組程序或程式,其中該等封包可依從於一種指定協定。例如,可利用一TCP/IP(傳輸控制協定/網際網路協定)堆疊來處理TCP/IP封包。裝置驅動程式436可指出在記憶體412中欲受到處理的緩衝器,例如,經由該協定堆疊。
網路405可包括任何類型的電腦網路。網路配接器430可另包括直接記憶體存取(DMA)引擎,其把封包寫入到分派給可得描述符(例如儲存在記憶體412中)的緩衝器(例如儲存在記憶體412中),以透過網路405發送及/或接收資料。此外,網路配接器430可包括含有邏輯組件(例如一或多個可規劃處理器)的一網路配接器控制器,該等邏輯組件用以進行配接器相關操作。在一實施例中,該配接器控制器可為一MAC(媒體存取控制)部件。網路配接器430可另包括一記憶體,例如任何類型的依電性/非依電性記憶體(例如,包括一或多個快取記憶體及/或參照記憶體412討論的其他記憶體類型)。
第5圖展示出根據本發明一實施例之一種配置為點對點(PtP)組態的運算系統500。特別地,第5圖展示出一種系統,其中多個處理器、記憶體與多個輸入/輸出裝置係由數個點對點介面互連。可由系統500的一或多個部件來進行參照第1圖至第4圖討論的操作。
如第5圖所示,系統500可包括數個處理器,然為了清楚與簡要目的,僅展示出二個處理器502與處理器504。處理器502與處理器504各包括用以致能與記憶體510與記憶體512之通訊的本地記憶體控制器中樞(MCH) 506與本地記憶體控制器中樞(MCH) 508。記憶體510及/或記憶體512可儲存各種不同資料,如參照第4圖之記憶體412討論的資料。如第5圖所示,處理器502與處理器504(或系統500的其他部件,例如晶片組520、I/O裝置543等)亦可包括參照第1圖至第4圖討論的一或多個快取記憶體。
在一實施例中,處理器502與處理器504可為參照第4圖討論之該等多個處理器402中的一處理器。處理器502與處理器504可分別利用點對點(PtP)介面電路516與點對點(PtP)介面電路518而透過點對點(PtP)介面514來交換資料。同樣地,處理器502與處理器504可利用點對點介面電路526、528、530與532而透過個別點對點(PtP)介面522與524來與晶片組520交換資料。晶片組520可另利用點對點(PtP)介面電路537而透過高效能圖形介面536來與高效能圖形電路534交換資料。
在至少一實施例中,可把目錄快取記憶體120備置在處理器502與處理器504及/或晶片組520中的一或多個中。然而,本發明的其他實施例可存在於第5圖之系統500內的其他電路、邏輯單元、或裝置中。再者,可使本發明的其他實施例散佈在展示於第5圖中的數個電路、邏輯單元、或裝置之間。
晶片組520可利用點對點(PtP)介面電路541與匯流排540進行通訊。匯流排540可與一或多個裝置進行通訊,例如,匯流排橋接器542與I/O裝置543。經由匯流排544,匯流排橋接器542可與其他裝置進行通訊,例如,鍵盤/滑鼠545、通訊裝置546(例如數據機、網路介面裝置、或可與電腦網路405通訊的其他通訊裝置)、音訊I/O裝置、及/或資料儲存裝置548。資料儲存裝置548可儲存由處理器502及/或處理器504執行的程式碼549。
在本發明的各種不同實施例中,可把參照第1圖至第5圖討論的多個操作實行為備置為電腦程式產品之硬體(例如電路)、軟體、韌體、或該等的組合,例如可包括儲存有用以規劃電腦以實行本文所述程序指令(或軟體程序)的機器可讀或電腦可讀媒體。同樣地,所謂的〝邏輯組件〞可例如包括軟體、硬體、或軟體與硬體的組合。該機器可讀媒體可包括一儲存裝置,例如參照第1圖至第5圖討論的該等裝置。此外,亦可下載該等電腦可讀媒體作為一種電腦程式產品,其中可利用傳播媒體中的資料信號而透過一通訊鏈結(例如匯流排、數據機、或網路連結)把該程式從一遠端電腦(例如一伺服器)傳輸到提出要求的一電腦(例如一客戶機)。
本發明說明中所謂的〝一個實施例〞或〝一實施例〞表示的是參照實施例所述的一特定特徵、結構、或者特性係包括在至少一實行方案中。本發明說明書不同部分中出現的〝在一實施例中〞可或不可表示相同的實施例。
同樣地,在本發明的說明以及申請專利範圍中,可使用所謂的〝耦合〞與〝連接〞用語以及其變化形式。在本發明的某些實施例中,可使用〝連接〞來表示二個或更多個元件直接實體或電性地接觸。〝耦合〞可表示來表示二個或更多個元件直接實體或電性地接觸。然而,〝耦合〞亦可表示二個或更多個元件並未彼此直接接觸,但仍彼此互相合作或者互動。
因此,雖然已經以結構特徵及/或方法論動作的特定語言來說明本發明實施例,要了解的是,並不把本發明請求項目限制在所述的特定特徵或動作中。反之,所述的該等特定特徵或動作係作為實行本發明請求項目的樣本形式。
100、400、500...運算系統
102、102-1、102-2、102-M、204、204-1、204-2、204-Y、206、206-1、206-2、206-Y...代理器
104...網路架構
106、108...單向鏈結
110...雙向鏈結
120...目錄快取記憶體(Dir$)
202、202-1、202-2、202-Y...位址
208...出現向量(PV)
300...方法
302~324...操作
401...目錄
402...中央處理單元(CPU)
404...互連網路(或匯流排)
405...網路
406、520...晶片組
408...圖形記憶體控制中樞(GMCH)
410...記憶體控制器
412、510、512...記憶體
414...圖形介面
416、418...顯示器裝置
420...輸入/輸出控制中樞(ICH)
422、540、544...匯流排
424...周邊橋接器(或控制器)
426、547...音訊裝置
428...磁碟機
430...網路介面裝置
432...作業系統(O/S)
434...應用程式
436...裝置驅動程式
502、504...處理器
506、508...本地記憶體控制器中樞(MCH)
514、522、524...點對點(PtP)介面
516、518、537、541...點對點(PtP)介面電路
526~532...點對點介面電路
534...高效能圖形電路
536...高效能圖形介面
542...匯流排橋接器
543...I/O裝置
545...鍵盤/滑鼠
546...通訊裝置
548...資料儲存裝置
549...程式碼
第1與4至5圖以方塊圖展示出運算系統的實施例,該等運算系統可用來實行本發明所討論的各種不同實施例。
第2圖展示出根據本發明一實施例之一目錄快取記憶體的多個分錄。
第3圖以流程圖展示出本發明的一種實施例。
100...運算系統
102-1~102-M...代理器
104...網路架構
106、108...單向鏈結
110...雙向鏈結
120...目錄快取記憶體(Dir$)
Claims (20)
- 一種用以至少部分根據窺探回應資訊以提供目錄快取分配的設備,該設備包含:一第一代理器,其用以從一第二代理器接收對應於一目標位址的一請求;以及耦合至該第一代理器的一目錄快取記憶體,其用以儲存對應於耦合至該第一代理器之多個快取代理器的資料,其中該經儲存資料係用以指出該等多個快取代理器中的哪一個快取代理器具有對應於該目標位址之該資料的一副本,其中針對該目標位址的一分錄,係響應於判定出該等多個快取代理器中的另一個快取代理器具有對應於該目標位址之該資料的該副本,而在該目錄快取記憶體中受分配。
- 如申請專利範圍第1項之設備,其中該第一代理器用以響應於從該等多個快取代理器中之一或多個接收到的一或多個窺探回應,來更新該目錄快取記憶體。
- 如申請專利範圍第1項之設備,其中該第一代理器用以響應於接收到該請求的動作,來判定對應於該目標位址的一分錄是否存在於該目錄快取記憶體中。
- 如申請專利範圍第1項之設備,其另包含用以儲存一目錄的一記憶體,其中該目錄用以儲存對應於該等多個快取代理器中之至少一部份的資料,其中該第一代理器用以響應於對應於該目標位址之一分錄不出現在該目錄 快取記憶體中的狀況,來判定對應於該目標位址的一分錄是否存在於該目錄中。
- 如申請專利範圍第4項之設備,其中該第一代理器用以響應於判定出沒有對應於該目標位址之分錄存在於該目錄中的狀況,而根據該請求更新該目錄。
- 如申請專利範圍第1項之設備,其中該第一代理器用以傳送一或多個窺探到由該目錄快取記憶體識別為具有對應於該目標位址之該資料之該副本之該等多個快取代理器中的一或多個。
- 如申請專利範圍第1項之設備,其中該第一代理器用以響應於判定出對應於該目標位址的一分錄存在於該目錄快取記憶體中的狀況,判定是否要傳送一窺探到由該目錄快取記憶體識別為具有對應於該目標位址之該資料之該副本之該等多個快取代理器中的一或多個。
- 如申請專利範圍第1至7項中任一項之設備,其中該第一代理器為該目標位址的一本地代理器。
- 如申請專利範圍第1至7項中任一項之設備,其另包含用以耦合該第一代理器以及該第二代理器的一串列鏈結。
- 如申請專利範圍第1至7項中任一項之設備,其中該第一代理器與該第二代理器位於一相同積體電路晶粒上。
- 一種至少部分根據窺探回應資訊以提供目錄快取分配的方法,該方法包含下列步驟:在一第一代理器上接收對應於一目標位址的一請 求;以及響應於判定出多個快取代理器中之耦合至該第一代理器的另一個快取代理器具有對應於該目標位址之一資料的一副本,而在該目錄快取記憶體中分配針對該目標位址的一分錄。
- 如申請專利範圍第11項之方法,其另包含把資料儲存在該目錄快取記憶體中,以指出該等多個快取代理器中的哪一個具有對應於該目標位址之該資料的該副本。
- 如申請專利範圍第11項之方法,其另包含響應於從該等多個快取代理器中之一或多個接收到的一或多個窺探回應,來更新該目錄快取記憶體。
- 如申請專利範圍第11項之方法,其另包含響應於接收到該請求的步驟,來判定對應於該目標位址的一分錄是否存在於該目錄快取記憶體中。
- 如申請專利範圍第11項之方法,其另包含下列步驟:把一目錄儲存在一記憶體中,其中該目錄用以儲存對應於該等多個快取代理器中之至少一部份的資料;以及響應於對應於該目標位址之一分錄不出現在該目錄快取記憶體中的狀況,來判定對應於該目標位址的一分錄是否存在於該目錄中。
- 如申請專利範圍第11項之方法,其另包含傳送一或多個窺探到由該目錄快取記憶體識別為具有對應於該目標位址之該資料之該副本之該等多個快取代理器中的 一或多個。
- 一種用以至少部分根據窺探回應資訊以提供目錄快取分配的系統,該系統包含:用以儲存一目錄的一記憶體;一第一代理器,其用以接收對應於一目標位址的一請求;以及耦合至該第一代理器的一目錄快取記憶體,其用以儲存對應於耦合至該第一代理器之多個快取代理器的資料,其中該經儲存資料係用以指出該等多個快取代理器中的哪一個快取代理器具有對應於該目標位址之該資料的一副本,其中該目錄用以儲存對應於該等多個快取代理器中之至少一部份的資料;並且其中針對該目標位址的一分錄,係響應於判定出該等多個快取代理器中的另一個快取代理器具有對應於該目標位址之該資料的該副本,而在該目錄快取記憶體中受分配。
- 如申請專利範圍第17項之系統,其中該第一代理器用以響應於從該等多個快取代理器中之一或多個接收到的一或多個窺探回應,來更新該目錄快取記憶體。
- 如申請專利範圍第17項之系統,其中該第一代理器用以傳送一或多個窺探到由該目錄快取記憶體識別為具有對應於該目標位址之該資料之該副本之該等多個快取代理器中的一或多個。
- 如申請專利範圍第17項之系統,其另包含耦合至該第 一代理器的一音訊裝置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/495,722 US20100332762A1 (en) | 2009-06-30 | 2009-06-30 | Directory cache allocation based on snoop response information |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201106159A TW201106159A (en) | 2011-02-16 |
TWI502346B true TWI502346B (zh) | 2015-10-01 |
Family
ID=43382018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099119102A TWI502346B (zh) | 2009-06-30 | 2010-06-11 | 根據窺探回應資訊之目錄快取分配技術 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20100332762A1 (zh) |
CN (1) | CN101937401B (zh) |
DE (1) | DE112010002777T5 (zh) |
TW (1) | TWI502346B (zh) |
WO (1) | WO2011008403A2 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8447934B2 (en) * | 2010-06-30 | 2013-05-21 | Advanced Micro Devices, Inc. | Reducing cache probe traffic resulting from false data sharing |
US8392665B2 (en) | 2010-09-25 | 2013-03-05 | Intel Corporation | Allocation and write policy for a glueless area-efficient directory cache for hotly contested cache lines |
CN102521163B (zh) | 2011-12-08 | 2014-12-10 | 华为技术有限公司 | 目录替换方法及设备 |
US9436972B2 (en) * | 2014-03-27 | 2016-09-06 | Intel Corporation | System coherency in a distributed graphics processor hierarchy |
US10007606B2 (en) | 2016-03-30 | 2018-06-26 | Intel Corporation | Implementation of reserved cache slots in computing system having inclusive/non inclusive tracking and two level system memory |
CN107870871B (zh) * | 2016-09-23 | 2021-08-20 | 华为技术有限公司 | 分配缓存的方法和装置 |
US11928472B2 (en) | 2020-09-26 | 2024-03-12 | Intel Corporation | Branch prefetch mechanisms for mitigating frontend branch resteers |
CN112579480B (zh) * | 2020-12-09 | 2022-12-09 | 海光信息技术股份有限公司 | 存储管理方法、存储管理装置以及计算机系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6779036B1 (en) * | 1999-07-08 | 2004-08-17 | International Business Machines Corporation | Method and apparatus for achieving correct order among bus memory transactions in a physically distributed SMP system |
US20050198187A1 (en) * | 2004-01-15 | 2005-09-08 | Tierney Gregory E. | System and method for providing parallel data requests |
TW200821834A (en) * | 2006-03-23 | 2008-05-16 | Ibm | Data processing system, cache system and method for updating an invalid coherency state in response to snooping an operation |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI102788B (fi) * | 1995-09-14 | 1999-02-15 | Nokia Telecommunications Oy | Yhteisen levydatan hallinta kahdennetussa tietokoneyksikössä |
US6009488A (en) * | 1997-11-07 | 1999-12-28 | Microlinc, Llc | Computer having packet-based interconnect channel |
US6625694B2 (en) * | 1998-05-08 | 2003-09-23 | Fujitsu Ltd. | System and method for allocating a directory entry for use in multiprocessor-node data processing systems |
US6826651B2 (en) * | 1998-05-29 | 2004-11-30 | International Business Machines Corporation | State-based allocation and replacement for improved hit ratio in directory caches |
US6687789B1 (en) * | 2000-01-03 | 2004-02-03 | Advanced Micro Devices, Inc. | Cache which provides partial tags from non-predicted ways to direct search if way prediction misses |
FR2820850B1 (fr) * | 2001-02-15 | 2003-05-09 | Bull Sa | Controleur de coherence pour ensemble multiprocesseur, module et ensemble multiprocesseur a architecture multimodule integrant un tel controleur |
US6681292B2 (en) * | 2001-08-27 | 2004-01-20 | Intel Corporation | Distributed read and write caching implementation for optimized input/output applications |
US6912612B2 (en) * | 2002-02-25 | 2005-06-28 | Intel Corporation | Shared bypass bus structure |
US7096323B1 (en) * | 2002-09-27 | 2006-08-22 | Advanced Micro Devices, Inc. | Computer system with processor cache that stores remote cache presence information |
US7296121B2 (en) * | 2002-11-04 | 2007-11-13 | Newisys, Inc. | Reducing probe traffic in multiprocessor systems |
US7395375B2 (en) * | 2004-11-08 | 2008-07-01 | International Business Machines Corporation | Prefetch miss indicator for cache coherence directory misses on external caches |
US7475321B2 (en) * | 2004-12-29 | 2009-01-06 | Intel Corporation | Detecting errors in directory entries |
US7991966B2 (en) * | 2004-12-29 | 2011-08-02 | Intel Corporation | Efficient usage of last level caches in a MCMP system using application level configuration |
US20070079072A1 (en) * | 2005-09-30 | 2007-04-05 | Collier Josh D | Preemptive eviction of cache lines from a directory |
US7624234B2 (en) * | 2006-08-31 | 2009-11-24 | Hewlett-Packard Development Company, L.P. | Directory caches, and methods for operation thereof |
FR2927437B1 (fr) * | 2008-02-07 | 2013-08-23 | Bull Sas | Systeme informatique multiprocesseur |
US8041898B2 (en) * | 2008-05-01 | 2011-10-18 | Intel Corporation | Method, system and apparatus for reducing memory traffic in a distributed memory system |
US8392665B2 (en) * | 2010-09-25 | 2013-03-05 | Intel Corporation | Allocation and write policy for a glueless area-efficient directory cache for hotly contested cache lines |
-
2009
- 2009-06-30 US US12/495,722 patent/US20100332762A1/en not_active Abandoned
-
2010
- 2010-06-11 TW TW099119102A patent/TWI502346B/zh not_active IP Right Cessation
- 2010-06-17 WO PCT/US2010/038956 patent/WO2011008403A2/en active Application Filing
- 2010-06-17 DE DE112010002777T patent/DE112010002777T5/de not_active Ceased
- 2010-06-29 CN CN2010102270581A patent/CN101937401B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6779036B1 (en) * | 1999-07-08 | 2004-08-17 | International Business Machines Corporation | Method and apparatus for achieving correct order among bus memory transactions in a physically distributed SMP system |
US20050198187A1 (en) * | 2004-01-15 | 2005-09-08 | Tierney Gregory E. | System and method for providing parallel data requests |
TW200821834A (en) * | 2006-03-23 | 2008-05-16 | Ibm | Data processing system, cache system and method for updating an invalid coherency state in response to snooping an operation |
Also Published As
Publication number | Publication date |
---|---|
DE112010002777T5 (de) | 2012-10-04 |
TW201106159A (en) | 2011-02-16 |
WO2011008403A3 (en) | 2011-03-31 |
CN101937401B (zh) | 2012-10-24 |
CN101937401A (zh) | 2011-01-05 |
US20100332762A1 (en) | 2010-12-30 |
WO2011008403A2 (en) | 2011-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI502346B (zh) | 根據窺探回應資訊之目錄快取分配技術 | |
US8631210B2 (en) | Allocation and write policy for a glueless area-efficient directory cache for hotly contested cache lines | |
US11269774B2 (en) | Delayed snoop for improved multi-process false sharing parallel thread performance | |
JP6381541B2 (ja) | データ処理システム中で命令を処理する方法、回路構成、集積回路デバイス、プログラム製品(リモート処理ノード中のアドレス変換データ構造を更新するための変換管理命令) | |
US7707383B2 (en) | Address translation performance in virtualized environments | |
TWI431475B (zh) | 用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法 | |
US8250254B2 (en) | Offloading input/output (I/O) virtualization operations to a processor | |
US8904045B2 (en) | Opportunistic improvement of MMIO request handling based on target reporting of space requirements | |
US8161243B1 (en) | Address translation caching and I/O cache performance improvement in virtualized environments | |
JP5681782B2 (ja) | オン・ダイ・システム・ファブリック・ブロックの制御 | |
TWI385514B (zh) | 用於儲存資料及其對應同調性記錄的方法、具有窺探過濾器的裝置和系統、以及具有儲存在內之指令的非暫時性機器可存取媒體 | |
US7913048B2 (en) | Data subscribe-and-publish mechanisms and methods for producer-consumer pre-fetch communications | |
US9753872B2 (en) | Information processing apparatus, input and output control device, and method of controlling information processing apparatus | |
US10613999B2 (en) | Device, system and method to access a shared memory with field-programmable gate array circuitry without first storing data to computer node | |
US8495091B2 (en) | Dynamically routing data responses directly to requesting processor core | |
US9392062B2 (en) | Optimized ring protocols and techniques | |
JP2009054000A (ja) | マルチプロセッサシステム及びキャッシュ管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |