TWI408550B - 對資料處理設備中共用記憶體之寫入存取請求之處理 - Google Patents
對資料處理設備中共用記憶體之寫入存取請求之處理 Download PDFInfo
- Publication number
- TWI408550B TWI408550B TW096134991A TW96134991A TWI408550B TW I408550 B TWI408550 B TW I408550B TW 096134991 A TW096134991 A TW 096134991A TW 96134991 A TW96134991 A TW 96134991A TW I408550 B TWI408550 B TW I408550B
- Authority
- TW
- Taiwan
- Prior art keywords
- cache
- data
- write access
- access request
- shared 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/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- 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
Description
本發明係關於對一資料處理設備中共享記憶體之寫入存取請求之處理。
已知可提出多處理系統,其中二或更多個處理單元,例如處理器核心可共用對共享記憶體之存取。此系統通常藉由排列不同處理器核心以便平行執行個別資料處理作業,以得到較高效能。已知可提供此多處理能力之資料處理系統包括IBM370系統及SPARC多處理系統。這些特定多處理系統為高效能系統,其中功率效率及電力消耗較不重要,且最主要的目的為將處理速度最大化。
為了進一步提升對於此一多處理系統內之資料的存取速度,已知可對處理單元之每一者提供其本身之區域快取以便在其中儲存共享記憶體中保存之資料的一子集合。雖然這可以提升存取資料之速度,但會使得資料一致性的問題更加複雜。特別是,可以瞭解若一特定處理器執行關於保存於其區域快取內之一資料值的一寫入作業時,僅會在該快取內區域更新該資料值,但不必然亦會同時在共享記憶體內更新之。特別是,若所指資料值係關於記憶體之一寫回區域,則當接著由快取收回該資料值時,僅會將快取中更新之資料值儲存回共享記憶體。
由於可和其它處理器共用該資料,因此確保那些處理器在嘗試存取共享記憶體中之關聯位址時可存取最新資料,是非常重要的。為了確保會發生上述情形,已知可在多處理系統內運用一快取一致性協定,以確保若一特定處理器更新其區域快取內保持之一資料值時,其後請求存取該資料之任何其它處理器可使用該最新資料。
依照一典型快取一致性協定,一處理器執行之某些存取會請求執行一一致性作業。該一致性作業會造成向其它處理器傳送一通知以識別進行之存取的類別以及正在存取之位址。這會造成該其它處理器執行快取一致性協定所定義之某些動作,且在某些實施例中亦可能導致正由該處理器之一或更多者反饋至啟動該存取之處理器的某些資訊請求該一致性作業。利用此一技術,可維護保存於各區域快取中之資料的一致性,以確保每一處理器可存取最新資料。一種此類快取一致性協定為「修改、互斥、共用、無效」(MESI)快取一致性協定。
若能夠保證料一特定資料部分僅供處理器之一者專屬使用,則當該處理器存取該資料時,不需要一一致性作業。然而;在一典型多處理系統中,大多數資料可在處理器間共用,可能是因為該資料一般分類為共用資料、或者是因為多處理系統允許處理在處理器間移動,或事實上欲在多重處理器上平行執行一特定處理,而導致無法保證即便專屬於一特定處理之資料將僅供一特定處理器專門運用。
雖然運用一快取一致性協定能用以確保每一處理單元可存取最新資料,在具有共享記憶體之多重處理器單元的一系統中可能仍有某些處理上非常複雜之存取類型。例如,若將共享記憶體之一區域指明為一寫透區域,且當一特定處理單元向該共享記憶體之寫透區域提出一寫入存取請求,則在與發出該寫入存取請求之處理單元關聯的快取中執行任何更新的同一時間必須更新該記憶體。為了在一多處理器系統中執行此一更新,產生許多問題。為了得到正確之行為,關聯區域快取之快取控制邏輯會請求額外邏輯,這會增加其複雜性和/或導致存取該快取時之顯著延遲,才能夠確保該快取及共享記憶體之更新能夠以一種基元方式進行。基元作業必須以其整體之形式執行而期間不得有任何干擾之讀取或寫入作業,以便防止在進行更新時,對該同一資料位置之任何其它讀取或寫入存取。
在處理對於共享記憶體之一寫透區域的一寫入存取請求時可能產生的危害類型之一種實施例中,考量下列情境,其中一種第一次寫入會導致快取中之尋到,且其係由快取一致性邏輯處理,及因而在處理期間內仍位於處理器核心中。雖然該處理正在進行中,向與該第一次寫入相連之一位置發出一第二次寫入。當第一次寫入仍在進行中之時處理該第二次寫入之一種標準方式為當可行時將二種存取合併。採取此一方式的主要原因為節省電力(當該一致性邏輯已經完成其工作之後僅會對該快取進行一次寫入)以及提升效能(將二次寫入合併使得對於二種記憶體存取僅需利用一單一「槽」,因而可釋出某些資源以供某些後續之記憶體存取)。
然而,若這些寫入之目標為某些可共享記憶體區域時就無法進行此種合併,因為這可能造成一致性邏輯將該第一次寫入發出兩次。當已經處理該第一次寫入,且更新該記憶體時,第二次寫入仍應由該一致性邏輯處理,至少應更新記憶體。由於已經將該二種寫入合併到一起,第二次一致性動作(以及第二次記憶體更新)事實上將由二種寫入之合併所組成,且因而會向該記憶體重複第一次寫入。這會破壞任何記憶體排序模型,並因而受到禁止。
為了防止此種雙重寫入,一第一次方式可利用加入某些邏輯(因而增加某些複雜性)以防止此種合併。為了避免上述增加複雜性之情形,其它可能之方法可透過防止此合併發生,即便在標準情形中也會對效能及電力消耗產生影響。
由於提供此種寫透寫入存取所導致之複雜性及問題,許多提供可進行快取一致之處理器的系統可能不希望支援此種行為,且相對應地一種選項為不允許對共享記憶體進行寫透寫入存取。然而,即便採取此一策略,仍有其它類型之存取可造成相似問題。
特別是,一特定處理器、或在該處理器上執行之一特定處理可能將共享記憶體之一區域指明為不可快取,且可關於該不可快取區域執行寫入存取。可假設對於一不可快取寫入存取,不需要在該快取中執行任何查閱(lookup)。然而,若一處理器使用一不可快取記憶體區域,僅表示該處理器本身不會將關於該不可快取區域之任何資料配置到該快取中。然而,該系統中之其它處理器,包括亦能夠存取該區域快取的緊密耦合之共處理機,可能對記憶體具有一不同觀點,且特別是一處理器視為不可快取之一區域而另一處理器可能不視為不可快取。此外,在相同處理器內執行之不同處理可能利用不同記憶體映像,且相對應地一不可快取寫入存取請求之主體的資料也有可能事實上常駐於一快取內。
因此,當處理共享記憶體之一不可快取寫入存取時,通常必須在快取中執行一查閱,且因此可以發現必須以非常類似上述一致寫透寫入存取之方式來處理該行為。因而,即便決定不支援共享記憶體之一致寫透寫入存取,仍然必須提供某些能力以處理不可快取之共用寫入存取。然而,納入此種能力之成本極高,因為這會造成額外複雜性和/或導致額外存取延遲,特別是若如同在多數情形中一般,一不可快取之共用寫入存取造成一快取尋到之可能性非常低。
相對應地,需要提出一種更節省成本之解決方案,當寫入存取請求類型要求對於與發端處理單元及共享記憶體關聯之二種快取進行更新時,可使得該寫入存取請求有正確之行為。
在一第一種態樣中,本發明提出一資料處理設備,其至少包含:複數個處理單元,其可用以執行要求存取共享記憶體中之資料的資料處理作業;每一處理單元具有與其關聯之一快取,其可用以儲存該資料之一子集合以供該處理單元存取;快取一致性邏輯,其運用一快取一致性協定以確保每一處理單元存取之資料為最新;每一處理單元,當輸出一資料值以供儲存於上述共享記憶體中時,其可用以發出一寫入存取請求,當寫入存取請求之類型要求更新關聯快取及共享記憶體二者時,在快取一致性邏輯內啟動一一致性作業;快取一致性邏輯,其可用以執行關於與該複數個處理單元關聯之快取的一致性作業,包括與發出該寫入存取請求之處理單元關聯之快取,以便確保可將那些快取中之資料保持一致;以及快取一致性邏輯,其更可用於向上述共享記憶體發出關於該寫入存取請求之主體的資料值的一更新請求。
依照本發明,可利用已經提供之快取一致性邏輯得到足夠能力,以有效地處理要求更新關聯快取及共享記憶體二者的寫入存取要求類型,該快取一致性邏輯係用以確保可將與資料處理設備中之其它處理單元關聯的快取中之資料保持為最新。特別是,當一發端處理單元發出要求更新關聯快取及共享記憶體二者之一寫入存取請求類型時,在一致性邏輯中啟動一一致性作業。除了通常運用快取一致性邏輯以針對與該系統內其它處理單元關聯之快取執行一一致性作業之外,該快取一致性邏輯亦可針對與發端處理單元關聯之快取執行該一致性作業,因此可使得所有上述快取中之資料一致。亦可運用快取一致性邏輯以向共享記憶體發出關於該寫入存取請求之主體的資料值的一更新請求,因而可確保進行所要求之更新共享記憶體。
由於採用此一策略,發端處理單元可將寫入存取請求視為不需要一快取查閱之一種寫入存取請求,且反而會安台快取一致性邏輯執行一一致性作業,且特別是當執行該一致性作業時,利用其包括與發端處理單元關聯之快取。如此一來能夠藉由實際上以一基元形式執行快取更新及記憶體更新,來避免以發端處理單元連同其關聯快取本身嘗試並達到所要求行為所導致之額外複雜性和/或快取存取損失。反之,由於快取一致性邏輯之本質原本就能夠避免發生可能之危害,其可將快取更新由共享記憶體更新解耦同時仍可達成與發端處理單元導致之一基元更新所造成之相同結果。
相對應地,本發明對於需要更新關聯快取及共享記憶體二者之情形中處理共享記憶體寫入存取請求之問題,提出一種更加優異且簡單之解決方案,其可允許處理單元以一種簡單之方式來處置寫入存取請求,並呼叫快取一致性邏輯之固有能力以達成此寫入存取所需之行為。
有多種類型之寫入存取請求可能要求更新關聯快取及共享記憶體二者。在一種具體實施例中,此寫入存取請求之一類型為對共享記憶體之一不可快取寫入存取請求。或者是,或除此之外,可藉由運用上述技術支援的另一種寫入存取請求類型為對共享記憶體之一寫透寫入存取請求。
快取一致性邏輯執行之一致性作業可具有多種形式。在一種具體實施例中,當執行快取一致性作業快取一致性邏輯向與複數個處理單元關聯之快取的每一者發出一一致性請求信號,一致性請求信號可識別與該寫入存取請求之主體的資料值關聯之一位址。相對應地,在此具體實施例中,與各種處理單元關聯之快取會受到一致性檢查。然而,在一替代性具體實施例中,當執行一致性作業時,快取一致性邏輯可用以應用一過濾作業以決定向何種快取發出一致性請求,以及之後向該決定之快取發出一一致性請求信號,該一致性請求信號可識別與該寫入存取請求之主體的資料值關聯之一位址。在此具體實施例中,快取一致性邏輯具備額外功能可允許其過濾一致性請求,且特別是過濾作業會考量對於各種快取之內容的某些瞭解,以便決定何種快取需受到一一致性檢查。此一策略可藉由不免執行不必要之一致性檢查而達到節省電力之目的。
依照本發明之具體實施例,當一發端處理單元發出要求更新關聯快取及共享記憶體二者之類型的一寫入存取請求時,則在導致快取一致性邏輯啟動一致性作業之前不會要求處理單元在快取中執行一查閱。然而,在某些具體實施例中,處理單元仍可能基於其它原因選擇執行快取查閱。然而,在本發明之一種特定具體實施例中,在並未於與發端處理單元關聯之快取中執行一快取查閱之情形下,會在快取一致性邏輯內啟動一致性作業。
與每一處理單元關聯之快取可具有多種形式。特別是,處理單元中之某些可共用此一快取。然而,在一種具體實施例中,對於每一處理單元與其關聯之快取是一種僅和該處理單元關聯之一區域快取。此快取通常稱為一階快取。
在一種具體實施例中,快取之每一者係作為僅用於儲存資料值之一資料快取,且通常會提供獨立之指令快取以供儲存由關聯處理單元執行之指令。然而,在一替代性具體實施例中,快取可以是統一快取其可儲存指令及資料二者。
共享記憶體可具有多種形式,且相對應地在一種具體實施例中可以是一特定記憶體裝置,其整個位址空間為共用的。然而,在一替代性具體實施例中,共享記憶體為一記憶體之一共享記憶體區域,且通常此一記憶體亦可具有其它區域其有不同屬性與之關聯,且因而可將之分類成例如非共用。通常一記憶體系統可由多重記憶體裝置構成,其皆為一或更多重記憶體區域或區之部分。例如實際上可在多重記憶體裝置中例如四種記憶體裝置M0至M3中提供一記憶區其位於位址0且為1024字(1K字)寬。並非利用M0儲存位置為0至255之資料、利用M1儲存位置為256至511資料等等,可安排M0以儲存位置為0、4、8、12...等之資料,可安排M1以儲存位置為1、5、9、13......等之資料等等。
處理單元可具有多種形式,但在一種具體實施例中,該處理單元之至少一者為一處理器核心。雖然在一種具體實施例中,所有處理單元可能為處理器核心,在替代性具體實施例中,處理單元之一或更多者可為其它裝置之形式,例如一數位信號處理器(DSP)、一硬體加速器等等。
快取一致性協定可具有多種形式,但在一種具體實施例中,快取一致性協定為一種以監聽式(snoop-based)之快取一致性協定。依照此一快取一致性協定,可安排該系統中之每一處理裝置(一處理裝置為例如個別處理單元、或個別處理單元連同其關聯快取)以窺探在一共用匯流排上發生之活動,以及隨著由該處取得之資訊的不同,可執行任何所要求之一致性動作。在此具體實施例中,通常可將快取一致性邏輯視為由與處理裝置之每一者關聯的一些離散元件所形成。
在一第二種態樣中,本發明提供可用於一資料處理設備中之快取一致性邏輯,該資料處理設備具有複數個處理單元以執行要求存取共享記憶體中之資料的資料處理作業,每一處理單元有一與其關聯之快取以儲存上述資料的一子集合以供該處理單元存取,快取一致性邏輯可運用一快取一致性協定以確保每一處理單元存取之資料為最新的,當輸出一資料值以供儲存於上述共享記憶體中時,每一處理單元可用以發出一寫入存取請求,當寫入存取請求之類型為要求更新關聯快取及共享記憶體二者時,該快取一致性邏輯可用以啟動一一致性作業;該快取一致性邏輯可用以執行關於與複數個處理單元關聯之快取的一致性作業,包括與發出寫入存取請求之處理單元關聯的快取,以便確保可將前述快取中之資料保持一致;且快取一致性邏輯更可用以向上述共享記憶體發出關於該寫入存取請求之主體的資料值之一更新請求。
在一第三種態樣中,本發明提出在一資料處理設備中處理共享記憶體寫入存取請求之一方法,該資料處理設備至少包含複數個處理單元以執行存取上述共享記憶體中之資料所需的資料處理作業,每一處理單元有與其關聯之一快取以儲存上述資料的一子集合以供該處理單元存取,該方法至少包含下列步驟:當輸出用於儲存於上述共享記憶體中之一資料值時,由一處理單元發出一寫入存取請求;當該寫入存取請求之類型係要求更新關聯快取及共享記憶體二者時,在快取一致性邏輯內啟動一一致性作業,該快取一致性邏輯運用一快取一致性協定以確保每一處理單元存取之資料是最新的;針對與複數個處理單元關聯之快取執行一致性作業,包括與發出寫入存取請求處理單元關聯之快取,以便確保將上述快取中之資料保持一致;以及向上述共享記憶體發出關於該寫入存取請求之主體的資料值之一更新請求。
在一第四種態樣中,本發明提出一資料處理設備,其至少包含:複數個處理裝置以執行要求存取共享記憶體裝置中之資料的資料處理作業;每一處理裝置具有與其關聯之快取裝置以儲存上述資料的一子集合以供該處理裝置存取;快取一致性裝置,其可運用一快取一致性協定以確保每一處理裝置存取之資料為最新;每一處理裝置,當輸出用以儲存於上述共享記憶體裝置中之一資料值時,其可發出一寫入存取請求,當寫入存取請求之類型係要求更新關聯快取裝置及共享記憶體裝置二者時,可在該快取一致性裝置內啟動一一致性作業;該快取一致性裝置可針對與複數個處理裝置關聯之快取裝置執行一致性作業,包括與發出寫入存取請求之處理裝置關聯的快取裝置,以便確保可將那些快取裝置中之資料保持一致;且快取一致性裝置更可向共享記憶體裝置發出關於該寫入存取請求之主體的資料值之一更新請求。
第1A圖為一區塊圖,闡明一資料處理設備10其至少包含多重處理器20、30、40其透過一一致匯流排構造50和一共享記憶體區域60耦合。處理器20、30、40之每一者至少包含分別與一關聯區域快取24、34、44耦合之一處理器核心22、32、42,每一快取可用以儲存保持於共享記憶體60中之資料的一子集合,以便增加關聯處理器對該資料之存取速度。在一種具體實施例中,每一快取24、34、44為一資料快取其可用以儲存關聯處理器核心22、32、42使用之資料值,且通常會提供一獨立之指令快取(第1A圖中未顯示)以供快取處理器核心所需之指令。
該一致匯流排構造50係由一匯流排互連裝置連同用以套用一快取一致性協定之快取一致性邏輯所組成,該快取一致性協定可確保各區域快取24、34、44中保持之資料為最新。特別是,快取一致性邏輯可確保當一處理器更新其區域快取中之資料時,與其它處理器相關聯之快取中的該資料之任何複本能夠適當地被更新或使得那些區域快取無效以確保一致性。在一種具體實施例中,所用之快取一致性協定為MESI快取一致性協定,下文將參照第2圖詳述之。
記憶體60整體可形成共享記憶體,或者是可將其視為由多種記憶體區域所組成,且那些區域之至少一者為一共享記憶體區域可供處理器20、30、40將那些處理器間共用之資料儲存於其中。
第1B圖為一區塊圖,闡明依照本發明之一第二次具體實施例的一資料處理設備100。依照本具體實施例,快取一致性邏輯不會形成一致匯流排架構之一部份,反而在每一處理器120、130、140內提供獨立之快取一致性邏輯126、136、146,且個別處理器經由匯流排互連150耦合至記憶體60。如前所述,每一處理器120、130、140包括一處理器核心122、132、142其耦合至一關聯區域資料快取124、134、144。
依照第1B圖之具體實施例,當其它處理器出現在匯流排互連150上時,安排每一快取一致性邏輯窺探其活動,並以所接收之資訊作為此窺探之結果,以決定對於該關聯資料快取是否需要進行任何一致性作業,以便將該資料快取之內容保持一致。相對應地,作為例示,若處理器核心二132針對儲存於資料快取134中之一資料值發出一寫入存取請求,因而導致正在更新該資料快取中之相關快取列,快取一致性邏輯136將發出一通知至匯流排互連150上,以指明正在進行此一更新,且其它處理器120、140至中之快取一致性邏輯單元126、146之每一者將會察覺此通知,並針對關聯資料快取124、144執行任何所需之一致性作業。在一種具體實施例中,若資料亦儲存於關聯資料快取中,前述動作可能會使得相關快取列無效、或者是執行所需更新。當利用此種窺探作業以實作快取一致性時,通常將該資料處理設備稱為運用一種以監聽式之快取一致性協定。如同上文參照第1A圖所述,在一種具體實施例中,實際上運用之快取一致性協定為MESI快取一致性協定。
第2圖為一狀態變遷圖,闡明稱為MESI快取一致性協定之一種特定快取一致性協定類型,且在一種具體實施例中,在第1A或1B圖之資料處理設備100內運用MESI快取一致性協定。如第2圖所示,一快取之每一快取列可處於四種狀態其中之一,上述四種狀態為一I(無效)狀態、一S(共用)狀態、一E(互斥)狀態或一M(修改)狀態。若快取列無效則處於I狀態,若快取列含有之資料亦存在於其它處理器之快取中則處於S狀態,若快取列含有之資料不存在於其它處理器之快取中則處於E狀態,以及若快取列含有經修改之資料則處於M狀態。
第2圖闡明可能是因為各種讀取或寫入作業而造成的狀態之變遷。一本地讀取或寫入作業為快取常駐於其中之處理器起動之一讀取或寫入作業,而一遠端讀取或寫入作業則是在資料處理設備之其它處理器之一者上發生的一種讀取或寫入作業所造成且由一一致性請求識別。
由第2圖應可注意到,許多讀取及寫入活動不需要執行任何一致性作業,但有某些讀取及寫入活動確實需要執行一一致性作業。特別是,若其中常駐了快取之處理器執行一本地讀取作業而導致一快取未中時,這會導致對快取之一特定快取列執行一行填充處理,且之後快取列之狀態會由具有I位元設定改變成具有S或E位元設定其中之一。為了決定應設定為S位元或E位元之何者,處理器必須對可能已區域地快取位於討論中位置之資料的任何其它處理器起動一一致性作業,並在選擇欲設定S位元或E位元之前等待該一致性作業之結果。若能夠快取位於討論中位置之資料的其它處理器尚未快取資料,則可設定為E位元,反之則應設定為S位元。應注意,若設定為E位元,且之後另一處理器接著針對位於該相同位址之資料在其快取執行一本地讀取,可將之視為由先前已經設定E位元的快取進行之一遠端讀取,且如第2圖所示,會造成發生一變遷,而使得清空E位元並設定S位元。
第2圖亦顯示,一本地寫入處理會導致更新快取之快取列中保持的一資料值,且會相對應地造成設定M位元。若設定M位元發生於由一組I位元之轉換(假設在一快取未中其後緊接一快取列分配,且之後為寫入作業之情形中)或者是由該組S位元狀態之轉換其中之一,則同樣地,處理器必須啟動一一致性作業。在此種情形中,處理器不需由正進行一致性作業之處理器接收任何回饋,但那些處理器必須採取和其本身快取相關之任何必須動作,且在其中可將寫入視為一遠端寫入程序。應注意,當在設定了其E位元之一快取列中進行一本地寫入之情形中,之後可在不啟動任何一致性作業之情形下清空該E位元並設定M位元組,因為已知在執行寫入的時候,並未在任何其它處理器之快取中快取位於該位置之資料。
第3圖為一區塊圖,闡明依照本發明之一具體實施例,第1A及1B圖中闡明之每一資料快取內所具有之組件。資料快取200經由一載入/儲存單元(LSU)210耦合至關聯處理器核心,且其經排列可接收來自關聯處理器核心之讀取及寫入存取請求。在一讀取存取請求之情形中,可將該存取請求直接轉送至快取陣列230以使得可執行一查閱程序,以便決定請求之資料值是否位於該快取陣列中,若為肯定,則經由LSU210將該資料值繞送回到該處理器核心。在一快取未中之情形中,可經由匯流排介面250將一行填充請求轉送至匯流排互連邏輯,以導致可由記憶體60檢索一快取行所擁有之資料包括有興趣之資料值,以供儲存於快取陣列230中,其後可經由LSU 210將所需資料值傳回處理器核心。
對於寫入存取請求,可將其轉送至儲存緩衝區220,之後可在該處處理之。特別是,對於一可快取存取請求,儲存緩衝區可經由路徑222在快取陣列230中初始一查閱,以決定受到寫入存取請求之該資料值是否位於該快取陣列內,且若為肯定,可在快取陣列230之快取列中執行一更新。在一快取未中之情形中,儲存緩衝區220可經由匯流排介面250調用一行填充處理,以使得可由記憶體檢索一快取行所擁有之資料,以供儲存於快取陣列中,其後可在快取陣列內進行寫入更新。或者是可由記憶體將該快取行所擁有之資料檢索至位於匯流排介面250內之一行填充緩衝區,之後將該寫入更新和行填充緩衝區中之資料合併,且之後可在快取陣列230中分配該資料列。
亦可提供一一致性處置器(handler)240,以用於由快取一致性邏輯接收一致性請求,且之後針對快取陣列230中之相關列啟動所需之一致性維護作業。一般而言,由快取一致性邏輯所接收之一一致性請求可識別啟動一致性作業之存取的類型以及受到存取請求之資料值的位址,以便啟用該一致性處置器240以識別該相關資料值是否儲存於快取陣列230內,且若為肯定則可採行適當動作(例如先前參照第2圖之MESI協定所示之動作)。
若因為該一致性維護作業之結果使得必須由快取陣列230中排除一快取列時,一致性處置器240可和匯流排介面250通訊,以便使得可進行所需排除。
如上文所述,某些類型之寫入存取請求需要更新關聯快取及共享記憶體二者,此種存取請求之實施例為不可快取寫入存取請求及寫透寫入存取請求。若相關處理器欲正確處置此種存取請求,則可能導致大幅增加儲存緩衝區220之複雜性,這是因為當共享記憶體60中進行更新時儲存緩衝區必須針對受到寫入存取請求之資料值維護其紀錄,並在快取陣列230中和該記憶體中之更新同步化執行更新,以便確保在共享記憶體60及快取陣列230二者中可自動進行更新。只有在已經進行此種基元更新之後,儲存緩衝區才能廢除該紀錄並開始處理另一寫入請求。相對應地,除了此種額外的複雜性之外,對於存取該快取陣列230亦會有一種顯著的效能影響。藉由在儲存緩衝區內提供一進一步邏輯,可能在於記憶體內進行更新時僅鎖定快取陣列230內之相關快取列(而非整個快取陣列230),但這會比在於記憶體內進行更新時僅止封鎖對快取陣列之所有寫入存取請求更為複雜。
然而,依照本發明之具體實施例,可安排儲存緩衝區220以將要求更新關聯快取及共享記憶體二者之類型的任何存取請求視為一種未針對快取要求任何動作之存取,且因而不會要求在快取陣列230中進行任何查閱以決定實際上是否有一尋到或一未中。因此,當由儲存緩衝區處理該相關寫入存取請求時,其可由儲存緩衝區220傳播至匯流排介面250,因此導致可將存取請求傳播至匯流排互連上。快取一致性邏輯亦可接收此請求,並針對所有快取24、34、44、或124、134、144執行一一致性作業。重要的是,應注意到,此處不僅針對未涉及即時寫入存取請求之處理器的資料快取執行此種一致性作業,同時亦針對和已經發出寫入存取請求之處理器關聯的資料快取執行該一致性作業。
相對應地,考量例如在第1A圖之具體實施例中,若處理器核心22發出一寫入存取請求其類型要求更新關聯快取24及共享記憶體60二者,可將存取請求傳播至一致匯流排構造50,而不需在資料快取24中執行任何查閱,且反之該快取一致性邏輯可針對資料快取24、34、44之每一者執行一一致性作業。在一種具體實施例中,此一作業涉及向資料快取24、34、44之每一者發出一一致性請求,且由此資料快取之每一者內的一致性處置器240接收該一致性請求。其後,可在每一資料快取內進行所需之一致性維護作業。
在一替代性具體實施例中,快取一致性邏輯包括額外過濾邏輯,其使得能夠針對每一資料快取決定是否需要向該資料快取之一致性處置器240發出一一致性請求。此一過濾作業可涉及引用關於每一資料快取之內容的保留資訊,以便決定是否需要執行一快取維護作業。利用此一方法,可能免除進行大量一致性請求之需求,且因而可顯著減低每一資料快取內需執行之一致性維護作業的數量,因而可大幅節省電力。
一致性處置器240執行之一致性維護作業可具有多種形式。在一種具體實施例中,可安排一致性處置器240,使其能夠偵測在快取陣列中是否有一尋到,且若為肯定則使相關快取行無效,使該快取行無效時可採取任何適當之必要動作。或者是,當快取列產生一尋到時,可安排該一致性處置器以實際上以新的資料值更新快取列,且若有必要時,可更新與該快取行關聯之相關一致性狀態位元。
藉由此一方法,不需在資料快取之儲存緩衝區220內提供額外邏輯,因為儲存緩衝區僅處置寫入存取請求,如同不需任何快取存取一般,且因而不會要求其執行任何基元作業。反之,快取一致性邏輯會在相關資料快取內處理一致性,包括與發端處理器核心關聯之資料快取,且可額外地對該記憶體執行更新。假定快取一致性邏輯之本質能夠偵測並防止進行記憶體更新時可能發生之任何危害,則不需要以基元之方式來進行資料快取更新及記憶體更新。事實上,在一種具體實施例中資料快取中之任何尋到僅會導致在任何情形中使得相關快取列無效。
第4圖為一流程圖,闡明依照一具體實施例當處理寫入存取請求時,第1A圖或第1B圖之質料處理設備10、100之作業。首先,在步驟300一資料快取可決定是否需要一寫入存取。相對應地,當關聯處理器核心向資料快取發出一寫入存取請求時,會在步驟300偵測之,且處理進行到步驟305,在該處可決定是否針對一可共享記憶體區域進行存取、以及存取類型是否要求更新快取及記憶體。若否,則在步驟310資料快取可執行其通常之寫入存取處理,其後處理回到步驟300。此種通常寫入存取處理可能或可能不涉及向快取一致性邏輯發出一一致性請求,如同先前參照第2圖所述。
然而,假設在步驟305決定係對一可共享記憶體區域進行存取,且存取類型未要求更新快取及記憶體,之後處理進行到步驟315,在該處快取發出一一致性請求而未執行任何快取查閱。其後,在步驟320,會指出寫入暫停,例如藉由在儲存緩衝區內設定一相關狀態旗標。其後,在步驟325快取等待來自快取一致性邏輯之一確認。在接收到該確認之前,寫入存取會保持暫停,但在步驟330當接收確認時,會認為寫入完成,例如藉由清除儲存緩衝區內之一相關狀態位元,之後處理回到步驟300。
此外,當在步驟315發出一致性請求時,會將其繞送至快取一致性邏輯,且在步驟335可決定該快取一致性邏輯是否就緒可接收一致性請求。若否,則在步驟340會造成一延遲,其後處理回到步驟335。一旦快取一致性邏輯已就緒可接收一致性請求,則在步驟345快取一致性邏輯可向所有一階快取包括發端處理器之一階快取發出該一致性請求。
其後在步驟350,每一快取執行所需之一致性動作並再完成該一致性動作時通知快取一致性邏輯。在步驟355,一旦已經接收所有確認,快取一致性邏輯可傳送一確認給在步驟325偵測之發端處理器,而使得在步驟330可將相關寫入存取標記為完成。此外,在步驟360,快取一致性邏輯向記憶體60發出存取請求,以便使得可更新記憶體內之相關輸入項,其後處理回到步驟335。
可以理解,雖然在一種具體實施例中快取一致性邏輯僅在當資料快取已經執行所有所需快取維護作業後才向記憶體發出存取請求,在一替代性具體實施例中,可以和針對資料快取進行之一致性作業平行地向該記憶體發出存取請求。
應指出,本發明之具體實施例的技術可運用於相關處理裝置並非全為處理器核心之系統中,且事實上每一處理裝置具有其本身之專屬快取並非關鍵。特別是,每當系統內有一快取不在由發端處理裝置至記憶體之正常路徑內時,快取一致性邏輯即為相關。
因而,第5圖闡明一替代性具體實施例,其亦可運用上述本發明之技術。在本具體實施例中,一處理器420至少包含一處理器核心422及一關聯一階資料快取424,其可經由一致匯流排構造450和一硬體加速器430及一數位信號處理器(DSP)440耦合,這些裝置共享一快取445。此外,一一致匯流排構造450可透過一種二階快取455與記憶體60耦合。如第1A圖之具體實施例,一致匯流排構造450包括快取一致性邏輯。
硬體加速器430可用於多種用途,且因而作為例示,其形式可以是一種圖形引擎可用以執行圖形處理。DSP 440通常能夠執行比硬體加速器更多樣之功能,且因而可用以執行例如語音過濾功能,以執行一圖形演算等。
二階快取455可儲存資料以供處理裝置420、430、440之任一者存取,但共用快取445,雖然能夠針對硬體加速器430或DSP 440儲存資料,其卻不可供處理器420存取,即其並非位於由處理器420至記憶體60之正常路徑上(即,經過一階資料快取424、一致匯流排構造450、及二階快取455之路徑)的一種快取。
在此種情形中,仍可運用本發明之具體實施例的技術,且因此作為例示,若處理器核心422發出一寫入存取請求其類型係要求在一階資料快取424及記憶體60二者內執行一更新,可反之將其直接向外繞送至一致匯流排構造450而不需在一階資料快取424中執行一查閱。因此,快取一致性邏輯可向一階資料快取424及共用快取445二者發出一致性請求,以使得可執行所需快取維護作業,且可經由二階快取455將記憶體更新獨立繞送至記憶體60。
由上文可發現,本發明之上述具體實施例提供了一種簡單之實作,對於需要更新快取及記憶體二者之共享記憶體,其可確保有正確之寫入存取行為,而不會增加資料快取邏輯之複雜性。本發明在下列具體實施例中特別有用,當在任何情形中可能選擇不支援對共享記憶體之一致寫透寫入存取,然而卻必須具備正確處理不可快取共用寫入之能力,此時快取中通常鮮少實際存在一尋到,且相對應地在資料快取邏輯內提供額外電路的成本將非常高昂。
在本發明之前的先前技藝中,在一種不可快取共用寫入的情形中必須在快取中執行一查閱,且在一快取尋到之情形中,接著可向快取一致性邏輯發出一一致性請求,以使得與資料處理設備中其它處理器關聯之所有其它快取皆須進行所需之一致性作業。其後,必須以一種基元之形式更新發端處理器之快取及共享記憶體二者,這會造成多種危害,且如上所述,其實作因而非常耗錢費時。
然而,藉由利用本發明之具體實施例的技術,不必要在發端處理器之快取中執行一查閱,且反之直接向快取一致性邏輯發出一一致性請求,之後可將此一致性請求傳播至系統中之所有處理器,包括發出該請求之處理器。若發出該寫入存取請求之處理器的快取中具有該資料,其可回應該一致性請求而進行一適當動作,以確保一致性(例如更新相對應快取行或使其無效),但這僅為接收一快取一致性請求之任何資料快取執行之標準處理的一部份。相對應地,除了使得快取一致性邏輯向通常可接收一致性請求之所有其它處理器以外的發端處理器發出一致性請求之外,不需額外的複雜性。
在某些具體實施例中,快取一致性邏輯具有進接功能使得其可過濾一致性請求,可能需要或不需要將該一致性請求轉送至發出寫入存取請求之處理器,且特別是若該快取一致性邏輯知道該資料不在該快取中時,可能不需要將該請求轉送至發端處理器。當利用本發明之具體實施例以提供處理不可快取共用寫入之正確行為時,可想見在大多數情形中,在資料快取內永遠不會有一尋到,且相對應地,在快取一致性邏輯內提供此種過濾邏輯可大幅節省電力。
雖然本發明已以一特定實施例揭露如上,然其並非用以限定本發明,任何熟習此技藝者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
20、30、40、120、130、140、420...處理器
22、32、42、122、132、142、422...處理器核心
24、34、44、124、134、144...關聯區域快取
50、450...一致匯流排構造
60...共享記憶體區域
100...資料處理設備
126、136、146...快取一致性邏輯
150...匯流排互連
200...資料快取
210...載入/儲存單元(LSU)
220...儲存緩衝區
230...快取陣列
240...一致性處置器
250...匯流排介面
424...一階資料快取
430...硬體加速器
440...數位信號處理器(DSP)
445...共用快取
455...二階快取
僅以附隨圖示闡明之本發明的具體實施例為例,參照其進一步闡明本發明,其中圖示如下:第1A圖為一區塊圖,闡明依照本發明之一第一種具體實施例之一資料處理設備;第1B圖為一區塊圖,闡明依照本發明之一第二種具體實施例之一資料處理設備;第2圖為一概要圖示,闡明一快取一致性協定其可用於第1A及1B圖之資料處理設備中;第3圖為一區塊圖,更詳細闡明依照本發明之一具體實施例的第1A及1B圖所示之資料快取中內提供的組件;第4圖為一流程圖,闡明依照本發明之一具體實施例中,為了處理一寫入存取請求所執行之處理;以及第5圖為一圖示,闡明依照本發明之另一種具體實施例的一資料處理設備。
60...共享記憶體區域
100...資料處理設備
120、130、140...處理器
122、132、142...處理器核心
124、134、144...關聯區域快取
126、136、146...快取一致性邏輯
150...匯流排互連
Claims (13)
- 一種資料處理設備,該資料處理設備至少包含:複數個處理單元,該複數個處理單元用以執行需要存取共享記憶體內之資料的資料處理作業;每一處理單元具有與該處理單元關聯之一快取,該快取用以儲存該資料之一子集合以供該處理單元存取;快取一致性邏輯,該快取一致性邏輯運用一快取一致性協定以確保每一處理單元存取之資料為最新;每一處理單元經配置為當輸出一資料值以供儲存於該共享記憶體中時發出一寫入存取請求,其中當該寫入存取請求為要求更新該關聯快取及該共享記憶體二者之類型時,發出該寫入存取請求的該處理單元經配置為將該寫入存取請求視為不需要由該處理單元進行一快取查閱的一寫入存取請求;該快取一致性邏輯經配置為,當該寫入存取請求為要求更新該關聯快取及該共享記憶體二者之類型時,針對與該複數個處理單元關聯之快取啟動並執行一一致性作業,包括與發出該寫入存取請求之該處理單元關聯之該快取,以確保將該快取中之資料保持一致;以及該快取一致性邏輯更經配置為針對受到該寫入存取請求之該資料值發出一更新請求給該共享記憶體。
- 如申請專利範圍第1項所述之資料處理設備,其中當該 寫入存取請求對於該共享記憶體而言為一不可快取寫入存取請求時,在該快取一致性邏輯內啟動該一致性作業。
- 如申請專利範圍第1項所述之資料處理設備,其中當該寫入存取請求對於該共享記憶體而言為一寫透寫入存取請求時,在該快取一致性邏輯內啟動該一致性作業。
- 如申請專利範圍第1項所述之資料處理設備,其中當執行該一致性作業時,該快取一致性邏輯對著與該等複數個處理單元關聯之該等快取的每一者發出一一致性請求信號,該一致性請求信號識別與受到該寫入存取請求之該資料值相關之一位址。
- 如申請專利範圍第1項所述之資料處理設備,其中當執行該一致性作業時,該快取一致性邏輯經配置為運用一過濾作業以決定向何種快取發出一致性請求,以及在之後發出一一致性請求信號至該等經決定之快取,該一致性請求信號識別與受到該寫入存取請求之該資料值關聯之一位址。
- 如申請專利範圍第1項所述之資料處理設備,其中當該寫入存取請求之類型要求更新該關聯快取及該共享記憶體二者時,在該快取一致性邏輯內啟動該一致性作業而不需 在與發出該寫入存取請求之處理單元關聯之該快取中執行一快取查閱。
- 如申請專利範圍第1項所述之資料處理設備,其中對於每一處理單元,與每一處理單元相關聯之該快取為僅與該處理單元關聯之一區域快取。
- 如申請專利範圍第1項所述之資料處理設備,其中該共享記憶體為一記憶體之一共享記憶體區域。
- 如申請專利範圍第1項所述之資料處理設備,其中該等複數個處理單元之至少一者為一處理器核心。
- 如申請專利範圍第1項所述之資料處理設備,其中該快取一致性協定為一種以監聽式之快取一致性協定。
- 一種快取一致性電路系統,該快取一致性電路系統用於一具有複數個處理單元之資料處理設備中,以執行要求存取共享記憶體中之資料的資料處理作業,每一處理單元具有與該處理單元關聯之一快取以儲存該資料之一子集合以供該處理單元存取,該快取一致性電路系統運用一快取一致性協定以確保每一處理單元存取之資料為最新,每一處理單元經配置為當輸出一資料值以供儲存於該共享記憶 體中時發出一寫入存取請求,其中當該寫入存取請求為要求更新該關聯快取及該共享記憶體二者之類型時,發出該寫入存取請求的該處理單元經配置為將該寫入存取請求視為不需要由該處理單元進行一快取查閱的一寫入存取請求;該快取一致性電路系統經配置為,當該寫入存取請求為要求更新該關聯快取及該共享記憶體二者之類型時,針對與該等複數個處理單元關聯之該等快取啟動並執行該一致性作業,包括與發出該寫入存取請求之處理單元關聯之該快取,以確保將該快取中之資料保持一致;以及該快取一致性電路系統更經配置為針對受到該寫入存取請求之該資料值發出一更新請求至該共享記憶體。
- 一種在一資料處理設備中處理共享記憶體寫入存取請求之方法,該資料處理設備至少包含複數個處理單元以執行請求存取該共享記憶體中之資料的資料處理作業,每一處理單元具有與該處理單元關聯之一快取,該快取用以儲存該資料的一子集合以供該處理單元存取,該方法至少包含下列步驟:當輸出一資料值以供儲存於上述共享記憶體中時,由一處理單元發出一寫入存取請求;當該寫入存取請求為要求更新該關聯快取及該共享記憶體二者之類型時,發出該寫入存取請求的該處理單元將 該寫入存取請求視為不需要由該處理單元進行一快取查閱的一寫入存取請求,且快取一致性邏輯啟動一一致性作業,該快取一致性邏輯運用一快取一致性協定以確保每一處理單元存取之資料為最新;針對與該等複數個處理單元關聯之該快取執行該一致性作業,包括與發出該寫入存取請求之該處理單元關聯之快取,以便確保將該快取中之該資料保持一致;以及針對受到該寫入存取請求之該資料值發出一更新請求至該共享記憶體。
- 一種資料處理設備,該資料處理設備至少包含:複數個處理手段,用以執行要求存取共享記憶手段中之資料的資料處理作業;每一處理手段具有與該處理手段關聯之一快取手段,該快取手段用於儲存該資料之一子集合以供該處理手段存取;快取一致性手段,用於運用一快取一致性協定以確保每一處理手段存取之資料為最新;當輸出一資料值以供儲存於該共享記憶手段中時,每一處理手段用以發出一寫入存取請求,其中當該寫入存取請求為要求更新該關聯快取手段及該共享記憶手段二者之類型時,發出該寫入存取請求的該處理手段經配置為將該寫入存取請求視為不需要由該處理手段進行一快取 查閱的一寫入存取請求;該快取一致性手段當該寫入存取請求為要求更新該關聯快取手段及該共享記憶手段二者之類型時,用以針對與該等複數個處理手段關聯之快取啟動並執行一一致性作業,包括與發出該寫入存取請求之該處理手段關聯之該快取手段,以確保將該等快取手段中之資料保持一致;以及該快取一致性手段更用以針對受到該寫入存取請求之該資料值發出一更新請求給該共享記憶手段。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0620609A GB2442984B (en) | 2006-10-17 | 2006-10-17 | Handling of write access requests to shared memory in a data processing apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200832133A TW200832133A (en) | 2008-08-01 |
TWI408550B true TWI408550B (zh) | 2013-09-11 |
Family
ID=37507892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096134991A TWI408550B (zh) | 2006-10-17 | 2007-09-19 | 對資料處理設備中共用記憶體之寫入存取請求之處理 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8271730B2 (zh) |
JP (1) | JP2010507160A (zh) |
CN (1) | CN101523361B (zh) |
GB (1) | GB2442984B (zh) |
TW (1) | TWI408550B (zh) |
WO (1) | WO2008047070A1 (zh) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7769958B2 (en) * | 2007-06-22 | 2010-08-03 | Mips Technologies, Inc. | Avoiding livelock using intervention messages in multiple core processors |
US7739455B2 (en) * | 2007-06-22 | 2010-06-15 | Mips Technologies, Inc. | Avoiding livelock using a cache manager in multiple core processors |
US8423721B2 (en) * | 2008-04-30 | 2013-04-16 | Freescale Semiconductor, Inc. | Cache coherency protocol in a data processing system |
US8706974B2 (en) * | 2008-04-30 | 2014-04-22 | Freescale Semiconductor, Inc. | Snoop request management in a data processing system |
US8762652B2 (en) * | 2008-04-30 | 2014-06-24 | Freescale Semiconductor, Inc. | Cache coherency protocol in a data processing system |
US8347035B2 (en) * | 2008-12-18 | 2013-01-01 | Intel Corporation | Posting weakly ordered transactions |
US8438452B2 (en) * | 2008-12-29 | 2013-05-07 | Intel Corporation | Poison bit error checking code scheme |
CN102129662B (zh) * | 2010-01-18 | 2013-02-27 | 环旭电子股份有限公司 | 提升显示操作效能的显示控制系统、电脑系统及控制方法 |
US20110276766A1 (en) * | 2010-05-05 | 2011-11-10 | Broadcom Corporation | Configurable memory controller |
GB2481232A (en) * | 2010-06-16 | 2011-12-21 | Advanced Risc Mach Ltd | Cache for a multiprocessor system which can treat a local access operation as a shared access operation |
JP5387776B2 (ja) | 2010-07-27 | 2014-01-15 | 富士通株式会社 | 割込制御方法、マルチコアプロセッサシステム、および割込制御プログラム |
US9043560B2 (en) * | 2010-10-06 | 2015-05-26 | Toshiba Corporation | Distributed cache coherency protocol |
KR20130123387A (ko) * | 2010-10-25 | 2013-11-12 | 마벨 월드 트레이드 리미티드 | 클러스터 캐시 코히어런시 프로토콜 |
US20130117168A1 (en) | 2011-11-04 | 2013-05-09 | Mark Henrik Sandstrom | Maximizing Throughput of Multi-user Parallel Data Processing Systems |
US8789065B2 (en) | 2012-06-08 | 2014-07-22 | Throughputer, Inc. | System and method for input data load adaptive parallel processing |
US8490111B2 (en) * | 2011-04-16 | 2013-07-16 | Throughputer, Inc. | Efficient network and memory architecture for multi-core data processing system |
US9471532B2 (en) | 2011-02-11 | 2016-10-18 | Microsoft Technology Licensing, Llc | Remote core operations in a multi-core computer |
US9448847B2 (en) | 2011-07-15 | 2016-09-20 | Throughputer, Inc. | Concurrent program execution optimization |
CN102262608A (zh) * | 2011-07-28 | 2011-11-30 | 中国人民解放军国防科学技术大学 | 基于处理器核的协处理器读写操作控制方法及装置 |
US9176913B2 (en) * | 2011-09-07 | 2015-11-03 | Apple Inc. | Coherence switch for I/O traffic |
CN102591800B (zh) * | 2011-12-31 | 2015-01-07 | 龙芯中科技术有限公司 | 一种弱一致性存储模型的数据访存系统和方法 |
EP2842031A4 (en) * | 2012-04-25 | 2015-12-30 | Intel Corp | METHOD AND SYSTEM FOR SAVING THE RELEASE CONSISTENCY IN A COMMON MEMORY PROGRAMMING |
US9298627B2 (en) * | 2013-01-14 | 2016-03-29 | Marvell World Trade Ltd. | Shared op-symmetric update-sensitive variables |
US9501410B2 (en) * | 2013-03-15 | 2016-11-22 | Veritas Technologies Llc | Providing local cache coherency in a shared storage environment |
US20150058926A1 (en) * | 2013-08-23 | 2015-02-26 | International Business Machines Corporation | Shared Page Access Control Among Cloud Objects In A Distributed Cloud Environment |
JP6115455B2 (ja) | 2013-11-29 | 2017-04-19 | 富士通株式会社 | 並列計算機システム、並列計算機システムの制御方法、情報処理装置、演算処理装置および通信制御装置 |
US10915468B2 (en) | 2013-12-26 | 2021-02-09 | Intel Corporation | Sharing memory and I/O services between nodes |
US10680957B2 (en) * | 2014-05-28 | 2020-06-09 | Cavium International | Method and apparatus for analytics in a network switch |
US9454313B2 (en) * | 2014-06-10 | 2016-09-27 | Arm Limited | Dynamic selection of memory management algorithm |
CN104461957A (zh) * | 2014-08-28 | 2015-03-25 | 浪潮(北京)电子信息产业有限公司 | 一种异构多核cpu共享片上高速缓存的方法及装置 |
WO2016068870A1 (en) * | 2014-10-28 | 2016-05-06 | Hewlett Packard Enterprise Development Lp | Media controller with coordination buffer |
US9720832B2 (en) | 2015-03-27 | 2017-08-01 | International Business Machines Corporation | Store operations to maintain cache coherence |
GB2539641B (en) * | 2015-06-11 | 2019-04-03 | Advanced Risc Mach Ltd | Coherency between a data processing device and interconnect |
US11228458B2 (en) * | 2015-09-10 | 2022-01-18 | Lightfleet Corporation | Group-coherent memory |
US20170078367A1 (en) * | 2015-09-10 | 2017-03-16 | Lightfleet Corporation | Packet-flow message-distribution system |
KR102428563B1 (ko) * | 2015-09-30 | 2022-08-03 | 삼성전자주식회사 | 수눕 작동을 관리하는 코히런트 인터커넥트와 이를 포함하는 데이터 처리 장치들 |
US9652385B1 (en) * | 2015-11-27 | 2017-05-16 | Arm Limited | Apparatus and method for handling atomic update operations |
GB2545897B (en) * | 2015-12-21 | 2018-02-07 | Advanced Risc Mach Ltd | Asymmetric coherency protocol |
GB2551529B (en) * | 2016-06-21 | 2018-09-12 | Advanced Risc Mach Ltd | Switching between private cache and shared memory to handle atomic operations |
US10223032B2 (en) | 2017-04-28 | 2019-03-05 | International Business Machines Corporation | Queue control for shared memory access |
TWI680375B (zh) * | 2018-08-23 | 2019-12-21 | 慧榮科技股份有限公司 | 具有分散式信箱架構的多處理器系統及其處理器錯誤檢查方法 |
US10802973B1 (en) | 2019-07-01 | 2020-10-13 | Bank Of America Corporation | Data access tool |
CN110389837B (zh) * | 2019-07-23 | 2023-04-18 | 中国工商银行股份有限公司 | 数据访问方法、装置、设备、存储介质及系统 |
CN112463650A (zh) * | 2020-11-27 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种多核cpu下的l2p表的管理方法、设备以及介质 |
GB2618366A (en) * | 2022-05-05 | 2023-11-08 | Advanced Risc Mach Ltd | Interrupt controller, apparatus, interrupt control method and computer-readable medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6021468A (en) * | 1997-04-14 | 2000-02-01 | International Business Machines Corporation | Cache coherency protocol with efficient write-through aliasing |
US6526481B1 (en) * | 1998-12-17 | 2003-02-25 | Massachusetts Institute Of Technology | Adaptive cache coherence protocols |
TWI243987B (en) * | 2002-10-10 | 2005-11-21 | Intel Corp | An apparatus and method for facilitating memory data access with generic read/write patterns |
TWI245988B (en) * | 2002-10-10 | 2005-12-21 | Intel Corp | Method, apparatus, system and computer readable storage medium for performing data access in accordance with memory access patterns |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2260429B (en) * | 1991-10-11 | 1995-05-24 | Intel Corp | Versatile cache memory |
US5797026A (en) * | 1994-02-28 | 1998-08-18 | Intel Corporation | Method and apparatus for self-snooping a bus during a boundary transaction |
US5966729A (en) * | 1997-06-30 | 1999-10-12 | Sun Microsystems, Inc. | Snoop filter for use in multiprocessor computer systems |
US6044438A (en) * | 1997-07-10 | 2000-03-28 | International Business Machiness Corporation | Memory controller for controlling memory accesses across networks in distributed shared memory processing systems |
US6868481B1 (en) * | 2000-10-31 | 2005-03-15 | Hewlett-Packard Development Company, L.P. | Cache coherence protocol for a multiple bus multiprocessor system |
US6925634B2 (en) * | 2001-01-24 | 2005-08-02 | Texas Instruments Incorporated | Method for maintaining cache coherency in software in a shared memory system |
US7592668B2 (en) | 2006-03-30 | 2009-09-22 | Fairchild Semiconductor Corporation | Charge balance techniques for power devices |
-
2006
- 2006-10-17 GB GB0620609A patent/GB2442984B/en not_active Expired - Fee Related
-
2007
- 2007-09-13 CN CN2007800383933A patent/CN101523361B/zh active Active
- 2007-09-13 WO PCT/GB2007/003479 patent/WO2008047070A1/en active Application Filing
- 2007-09-13 JP JP2009532879A patent/JP2010507160A/ja active Pending
- 2007-09-19 TW TW096134991A patent/TWI408550B/zh not_active IP Right Cessation
- 2007-10-10 US US11/907,265 patent/US8271730B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6021468A (en) * | 1997-04-14 | 2000-02-01 | International Business Machines Corporation | Cache coherency protocol with efficient write-through aliasing |
US6526481B1 (en) * | 1998-12-17 | 2003-02-25 | Massachusetts Institute Of Technology | Adaptive cache coherence protocols |
TWI243987B (en) * | 2002-10-10 | 2005-11-21 | Intel Corp | An apparatus and method for facilitating memory data access with generic read/write patterns |
TWI245988B (en) * | 2002-10-10 | 2005-12-21 | Intel Corp | Method, apparatus, system and computer readable storage medium for performing data access in accordance with memory access patterns |
Also Published As
Publication number | Publication date |
---|---|
US20080091884A1 (en) | 2008-04-17 |
TW200832133A (en) | 2008-08-01 |
GB2442984B (en) | 2011-04-06 |
GB0620609D0 (en) | 2006-11-29 |
CN101523361B (zh) | 2012-12-12 |
WO2008047070A1 (en) | 2008-04-24 |
GB2442984A (en) | 2008-04-23 |
CN101523361A (zh) | 2009-09-02 |
US8271730B2 (en) | 2012-09-18 |
JP2010507160A (ja) | 2010-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI408550B (zh) | 對資料處理設備中共用記憶體之寫入存取請求之處理 | |
US10891228B2 (en) | Cache line states identifying memory cache | |
US9665486B2 (en) | Hierarchical cache structure and handling thereof | |
US8103835B2 (en) | Low-cost cache coherency for accelerators | |
US6976131B2 (en) | Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system | |
JP5367899B2 (ja) | 低電力モード中にキャッシュされた情報を保存する技術 | |
US8015365B2 (en) | Reducing back invalidation transactions from a snoop filter | |
US7395375B2 (en) | Prefetch miss indicator for cache coherence directory misses on external caches | |
US9183146B2 (en) | Hierarchical cache structure and handling thereof | |
US20050005074A1 (en) | Multi-node system in which home memory subsystem stores global to local address translation information for replicating nodes | |
GB2439650A (en) | Snoop filter that maintains data coherency information for caches in a multi-processor system by storing the exclusive ownership state of the data | |
US20060294319A1 (en) | Managing snoop operations in a data processing apparatus | |
US8332592B2 (en) | Graphics processor with snoop filter | |
JP4577729B2 (ja) | ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 | |
JP4162493B2 (ja) | 下位レベルのキャッシュを含むアクセスを促進するためのリバースディレクトリ | |
US6918009B1 (en) | Cache device and control method for controlling cache memories in a multiprocessor system | |
US8041898B2 (en) | Method, system and apparatus for reducing memory traffic in a distributed memory system | |
US7779205B2 (en) | Coherent caching of local memory data | |
JP2020003959A (ja) | 情報処理装置、演算処理装置及び情報処理装置の制御方法 | |
US7502892B2 (en) | Decoupling request for ownership tag reads from data read operations | |
JP7238262B2 (ja) | 計算機、半導体装置、及び制御方法 | |
JPH1185615A (ja) | 情報処理システム及び情報処理装置及びその制御方法 | |
KR20080098120A (ko) | 데이터 처리장치 및 그 데이터 처리방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |