亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

數(shù)據(jù)處理系統(tǒng)中的高速緩存一致性協(xié)議的制作方法

文檔序號:6593446閱讀:265來源:國知局
專利名稱:數(shù)據(jù)處理系統(tǒng)中的高速緩存一致性協(xié)議的制作方法
技術(shù)領(lǐng)域
本公開大體上涉及數(shù)據(jù)處理系統(tǒng),并且更具體地涉及數(shù)據(jù)處理系統(tǒng)中的高速緩 存一致性協(xié)議。
背景技術(shù)
高速緩存一致性協(xié)議通常用于多處理器系統(tǒng)中。一個這樣的協(xié)議是MESI協(xié) 議。然而,為了實現(xiàn)MESI協(xié)議,多處理器系統(tǒng)的總線協(xié)議需要支持特定的總線事務(wù) (tansaction)類型。此外,對于低端系統(tǒng)來說MESI協(xié)議可能是太復(fù)雜或太昂貴。


通過示例方式來描述本發(fā)明,并且本發(fā)明不限于所附附圖,其中相同的附圖標(biāo) 記表示相同的元素。出于簡單明了表示圖中元素的目的,圖中元素并不一定按比例進行 繪制。圖1描述了依照本發(fā)明一個實施例的數(shù)據(jù)處理系統(tǒng)。圖2依照本發(fā)明一個實施例,描述了圖1中數(shù)據(jù)處理系統(tǒng)的處理器的一部分。圖3依照本發(fā)明一個實施例,描述了由圖2的處理器執(zhí)行的高速緩存一致性協(xié)議 的狀態(tài)圖。圖4依照一種總線協(xié)議,描述了提供HBURST總線信號編碼的表。圖5依照一種總線協(xié)議,描述了提供HPROT總線信號編碼的表。圖6-9以流程圖的形式,描述了用于確定是否執(zhí)行高速緩存一致性操作(例如偵 聽(OTooping))的不同實施例。
具體實施方式

在一個實施例中,高速緩存一致性協(xié)議可以將分離的轉(zhuǎn)換和狀態(tài)用于一致性和 非一致性寫入。在一個實施例中,該高速緩存一致性協(xié)議使用由存儲器管理單元(MMU) 提供的寫通(write-through)頁屬性作為用于限定一致性狀態(tài)之間的一個或多個轉(zhuǎn)換的控 制值。在一個實施例中,該高速緩存一致性協(xié)議依賴于用于一致性業(yè)務(wù)(coherenttraffic) 的寫通操作,并且支持用于非一致性數(shù)據(jù)的回寫事務(wù)。進一步,該高速緩存一致性協(xié)議 可以和當(dāng)前不支持高速緩存一致性的標(biāo)準(zhǔn)總線協(xié)議一起使用。并且,在一個實施例中, 可以選擇高速緩存一致性所需要的總線事務(wù)的子集。也就是,基于一個或多個因素,一 個特定的總線事務(wù)可能會或可能不會導(dǎo)致高速緩存一致性操作(例如,可能會或可能不 會導(dǎo)致產(chǎn)生偵聽請求)。并且,在一個實施例中,該用于執(zhí)行選擇性偵聽的一個或多個因 素存在于現(xiàn)有的工業(yè)標(biāo)準(zhǔn)總線協(xié)議中,從而使得不需要額外的信令機制或?qū)τ跇?biāo)準(zhǔn)總線 協(xié)議的其他修改。就像這里使用的,術(shù)語“總線”用于表示可以用于傳輸諸如數(shù)據(jù)、地址、控 制、或狀態(tài)之類的一個或多個不同類型信息的多個信號或?qū)w。這里討論的導(dǎo)體可以被示例或者描述為一個單獨的導(dǎo)體、多個導(dǎo)體、單向性導(dǎo)體或者雙向性導(dǎo)體。然而,不同 的實施例中可以改變導(dǎo)體的實施方式。例如,可以使用分離的單向性導(dǎo)體而不是雙向性 導(dǎo)體,反之亦然。并且,多個導(dǎo)體可以由串行地或者以時間復(fù)用的方式傳輸多個信號的 單導(dǎo)體代替。同樣的,承載多個信號的單導(dǎo)體也可以被分成承載這些信號的子集的多個 不同的導(dǎo)體。因此,對于傳輸信號而言存在很多選擇。當(dāng)提到使一個信號、狀態(tài)位、或類似裝置成為其邏輯真或邏輯假狀態(tài)時,在這 里分別使用術(shù)語“斷言”或“設(shè)置”和“無效”(或者“取消斷言”或“清除”)。 如果邏輯真狀態(tài)是邏輯電平1,則邏輯假狀態(tài)就是邏輯電平0。并且如果邏輯真狀態(tài)是邏 輯電平0,則邏輯假狀態(tài)就是邏輯電平1。這里描述的每個信號可以被設(shè)計成正邏輯或負(fù)邏輯,其中,負(fù)邏輯可以用信號 名稱上面的一個小橫杠或者名稱后面的星號(*)來表示。在負(fù)邏輯情況下,信號低電平 有效,其中,邏輯真狀態(tài)對應(yīng)于邏輯電平0。在正邏輯情況下,信號高電平有效,其中, 邏輯真狀態(tài)對應(yīng)于邏輯電平1。注意,本文描述的任何信號都能夠以正邏輯或負(fù)邏輯信號 二者之一來設(shè)計,因此,在可替換的實施例中,那些以正邏輯信號方式描述的信號可以 以負(fù)邏輯信號的方式實現(xiàn),那些以負(fù)邏輯信號方式描述的信號可以以正邏輯信號的方式 實現(xiàn)。這里使用方括號表示總線的導(dǎo)體或者值的位的位置。例如,“總線60[7:0]”或 者“總線60的導(dǎo)體[7:0]”表示總線60的8個低階導(dǎo)體,并且“地址位[7:0]”或者“地 址[7:0]”表示地址值的8個低階位。置于數(shù)字之前的符號“$”表示該數(shù)以十六進制或 基數(shù)十六的形式表示。置于數(shù)字之前的符號“%”表示該數(shù)以二進制或基數(shù)二的形式表圖1描述了依照本發(fā)明的一個實施例的數(shù)據(jù)處理系統(tǒng)10的方框圖。系統(tǒng)10可 以是片上系統(tǒng)。系統(tǒng)10可以在一個單獨的集成電路或多個集成電路上實現(xiàn)。系統(tǒng)10包 括系統(tǒng)互連12,其例如可以是系統(tǒng)總線。在一個實施例中,該系統(tǒng)互連12是依據(jù)AMBA AHB或AXI協(xié)議(AMBA、AXK和AHB是ARM公司的商標(biāo))運行的系統(tǒng)總線。系 統(tǒng)10包括任意數(shù)量的處理器,例如處理器14和16 ;系統(tǒng)事務(wù)仲裁器32 ;高速緩存一 致性管理器18 ;存儲器20 ; 2級高速緩存41 ;其他主設(shè)備22 ;其他從設(shè)備24 ;輸入/ 輸出(I/O)模塊26;和直接存儲器存取(DMA)模塊40,每一個均雙向耦接到系統(tǒng)互連 12。處理器14包括高速緩存28,處理器16包括高速緩存30。高速緩存一致性管理器 18包括一致性主設(shè)備控制寄存器19。高速緩存一致性管理器18也可以通過獨立于系統(tǒng) 互連12的偵聽控制接口而雙向耦接到L2級高速緩存41、處理器14、和處理器16中的每 一個。另外,高速緩存一致性管理器18可以雙向耦接到系統(tǒng)10中的其他主設(shè)備。系統(tǒng) 10的替代實施例可以包括圖1中沒有描述的額外的電路,或者可以包括比所描述出的電 路還少的電路。在某些實施例中,高速緩存一致性管理器18可以分布在處理器14和16 之內(nèi)或者不存在。圖2是與圖1中的數(shù)據(jù)處理系統(tǒng)10相關(guān)的處理器14的框圖。處理器14可以 實施為以流水線形式執(zhí)行操作,并且可以包括指令通道(instruction pipe) 23、執(zhí)行單元 25、指令獲取單元27、控制電路17、通用寄存器31、加載/存儲單元33、總線接口單元 (BIU)48,存儲器管理單元(MMU)42、和高速緩存28。在一個實施例中,控制電路17雙向耦接到BIU 48、高速緩存28、MMU 42、指令獲取單元27、指令通道23、執(zhí)行單元 25、和加載/存儲單元33中的每一個。指令通道23雙向耦接到指令獲取單元27、執(zhí)行 單元25和加載/存儲單元33。執(zhí)行單元25雙向耦接至MMU 42、高速緩存28和通用 寄存器31中的每一個。加載/存儲單元雙向耦接到通用寄存器31、MMU 42、和高速緩 存28。處理器14可以通過耦接到BIU 48的系統(tǒng)互連12而與數(shù)據(jù)處理系統(tǒng)10的其他部 件通信。高速緩存28包括控制電路29,在一個實施例中,其至少部分地基于由MMU 42 提供的存儲器頁屬性而為高速緩存28實現(xiàn)高速緩存一致性協(xié)議。高速緩存28包括多個 高速緩存條目(entry)(也被稱為高速緩存行),每個高速緩存條目包括地址標(biāo)簽、對應(yīng)數(shù) 據(jù)、和狀態(tài)信息,其包括了涉及當(dāng)前高速緩存一致性協(xié)議狀態(tài)的信息。注意,除了控制 電路29和任何用于實現(xiàn)高速緩存一致性協(xié)議的電路之外,處理器14的運行是本領(lǐng)域技術(shù) 人員熟知的,因此此處將不會進一步詳細(xì)討論。如本領(lǐng)域中已知的那樣,MMU 42將虛擬地址(其可以是從,比如執(zhí)行單元 25、加載/存儲單元33、和指令獲取單元27接收到的)轉(zhuǎn)換為物理地址。MMU 42將轉(zhuǎn) 換過的地址提供到高速緩存28。S卩,MMU 42提供與該物理地址相對應(yīng)的存儲器的頁的 物理地址和頁屬性。例如,高速緩存28中的條目可以和存儲器20的存儲位置相對應(yīng), 其中,存儲器20包括稱為頁的存儲單元。因此,MMU 42提供的頁屬性和物理地址轉(zhuǎn) 換信息可以編程到MMU 42的存儲電路(或者處理器14中的其他地方)中,并且對應(yīng)于 包含了提供的物理地址的特定頁。在一個實施例中,這些頁屬性包括寫通需求屬性(W) 和如下屬性之一高速緩存禁止⑴,存儲器一致性需求(M)(其也可以被稱為全局共享 (SG))、受防護(G)、字節(jié)序(Endianness) (E)、和用戶可定義(例如U0,Ul, U2,U3) 屬性。例如,在一個實施例中,MMU 42包括轉(zhuǎn)譯旁觀緩沖區(qū)(TLB),TLB的條目存儲 了地址轉(zhuǎn)換和以上這些屬性,從而控制處理器14在每個TLB條目相關(guān)的頁中進行存儲訪 問的方式。在一個實施例中,每一頁的頁屬性包括W和M兩個,每個W屬性和M屬性 可以互相獨立地設(shè)置。典型地,為了允許多主設(shè)備系統(tǒng)中的存儲器一致性而支持高速緩存一致性???通過使用高速緩存一致性操作來保持一致性。在一個實施例中,這些高速緩存一致性操 作包括提供到諸如處理器14的處理器的偵聽請求(即,偵聽無效請求)。在一個實施 例中,這些偵聽請求由高速緩存一致性管理器18提供到處理器14和處理器16中的每一 個。這些偵聽無效請求由處理器接收,以便處理器能夠確定與偵聽無效請求相對應(yīng)的地 址是否存儲在高速緩存中。因此,高速緩存一致性操作可以是指偵聽查找,其中,在高 速緩存中執(zhí)行查找以確定高速緩存中是否包含與偵聽事務(wù)相關(guān)的數(shù)據(jù)。即,高速緩存一 致性操作可以包括搜索該數(shù)據(jù)處理系統(tǒng)(例如,數(shù)據(jù)處理系統(tǒng)10)的至少一個高速緩存, 以確定至少一個高速緩存是否包含與偵聽總線事務(wù)的存儲器地址相關(guān)的數(shù)據(jù)。接著,如 果高速緩存包含與偵聽事務(wù)相關(guān)的數(shù)據(jù)(包括同與偵聽請求相對應(yīng)的存儲器地址匹配的 條目),那么該處理器能夠為該條目執(zhí)行合適的一致性操作或者覆寫該條目。在一個實施 例中,該高速緩存一致性協(xié)議中使用偵聽無效一致性操作,并且由于由另一總線主設(shè)備 執(zhí)行的偵聽事務(wù)很可能正在修改存儲在那個地址的數(shù)據(jù),所以該匹配的條目被無效。替 代地,注意高速緩存一致性操作能夠涉及高速緩存條目的狀態(tài)變化。
圖3描述了高速緩存一致性協(xié)議100具有四個狀態(tài)修改的非一致狀態(tài)(M)、無效狀態(tài)(I)、未修改的非一致狀態(tài)(N)、和未修改的一致性狀態(tài)(C)。在這個四狀態(tài)協(xié)議 中,單獨的轉(zhuǎn)換和狀態(tài)用于一致性或非一致性的寫入。在一個實施例中,高速緩存一致 性協(xié)議100使用MMU 42提供的W頁屬性作為限定一致性狀態(tài)之間的一個或多個轉(zhuǎn)換的 控制值。在一個實施例中,該高速緩存一致性協(xié)議依賴于用于一致性業(yè)務(wù)的寫通操作, 并且支持用于非一致性數(shù)據(jù)的回寫事務(wù)。例如,正像下面將詳細(xì)描述的,一致性寫入使 用I和C狀態(tài),并且以寫通式寫入的方式來執(zhí)行。非一致性寫入使用I、N和M狀態(tài), 并且以回寫式寫入的方式來執(zhí)行。將參照處理器14來描述圖3的狀態(tài)圖。S卩,在一個實施例中,高速緩存28中 的控制電路29執(zhí)行圖3中的狀態(tài)圖。高速緩存28中的每個高速緩存條目包括一個或多 個狀態(tài)指示符,用于指示高速緩存條目的狀態(tài)(M、I、N或C)(注意,高速緩存條目也 可以稱作高速緩存行)。如圖3中所描述的,狀態(tài)102對應(yīng)于I狀態(tài),狀態(tài)104對應(yīng)于N 狀態(tài),狀態(tài)108對應(yīng)于M狀態(tài),并且狀態(tài)106對應(yīng)于C狀態(tài)。如關(guān)于高速緩存一致性協(xié) 議100中所使用的,當(dāng)高速緩存條目是“未修改”時,處理器14的高速緩存28中的高 速緩存條目的數(shù)據(jù)自其被分配開始相對于存儲器20中的副本沒有被修改。當(dāng)高速緩存條 目是“修改的”時,處理器14的高速緩存28中的高速緩存條目的數(shù)據(jù)自其被分配開始 已經(jīng)相對于存儲器20中的副本而被修改。當(dāng)高速緩存條目是“一致的”,對應(yīng)于相同的 地址位置,高速緩存28中的高速緩存條目與存儲器20中的,以及與系統(tǒng)10的任何高速 緩存(例如高速緩存30)的任何有效條目中的數(shù)據(jù)是相同的?!安灰恢隆笔侵概c其他高 速緩存是不一致的。即,當(dāng)高速緩存條目“不一致”時,對應(yīng)于存儲器20中同一地址 位置,高速緩存28的高速緩存條目的數(shù)據(jù)可能具有與諸如高速緩存30之類的其他高速緩 存的有效條目不同的值。注意,由于“不一致”是指與其他高速緩存不一致,因此當(dāng)高 速緩存條目“不一致”時,高速緩存條目的數(shù)據(jù)和存儲器20中的可能是相同的。當(dāng)對 于存儲器中具體地址位置沒有執(zhí)行高速緩存一致性操作時,可能出現(xiàn)非一致性。一致的高速緩存條目可能處于C狀態(tài)或者I狀態(tài)。不需要一致性的高速緩存條 目可以假設(shè)為I、N、或M狀態(tài)。注意到,對于一致的高速緩存條目不支持修改或共享狀 態(tài)(就像MESI協(xié)議中所使用的一樣),因而不需要偵聽回寫或介入操作。不一致的高速 緩存條目可能仍然假定為修改的狀態(tài)。在一個實施例中,需要一致性操作的存儲器區(qū)域 (例如在存儲器20中)被標(biāo)記為“存儲器一致性需求”(其M位被設(shè)置為1)和“寫通 需求”(其W位被設(shè)置為1)。注意,協(xié)議100可以與不包含或支持高速緩存一致性操作 的總線協(xié)議,比如例如AMBA AHB或AXI協(xié)議一起使用。對于不支持高速緩存一致性 的總線協(xié)議,無法實現(xiàn)MESI協(xié)議。例如,無法發(fā)信號來表示MESI協(xié)議的從S狀態(tài)到M 狀態(tài)的轉(zhuǎn)換,其中,MESI協(xié)議使用AMBA和AHB協(xié)議中不存在的“只涉及地址的事務(wù) (address only transaction) ”。此外,不支持MESI高速緩存一致性事務(wù)的該總線協(xié)議不支 持MESI協(xié)議中用于實現(xiàn)從I狀態(tài)到E狀態(tài)轉(zhuǎn)換的“讀且試圖修改”事務(wù)。AMBAAHB 或AXI總線協(xié)議沒有定義需要這種協(xié)議的其他事務(wù)類型。因此,在一個實施例中,注意 高速緩存一致性協(xié)議100可以覆蓋 當(dāng)前不支持高速緩存一致性的現(xiàn)有總線協(xié)議。參考圖3,當(dāng)高速緩存條目處于無效狀態(tài),并且出現(xiàn)導(dǎo)致對無效的高速緩存條目 的分配的高速緩存未命中(miss)時,使用W頁屬性來確定轉(zhuǎn)換到狀態(tài)N(非一致狀態(tài)) 還是狀態(tài)C (一致狀態(tài))。當(dāng)出現(xiàn)高速緩存未命中,并且W = 0,指示對于該地址不執(zhí)行寫通時,高速緩存條目的狀態(tài)通過轉(zhuǎn)換Iio從狀態(tài)I轉(zhuǎn)換到狀態(tài)N。由于沒有對該地址執(zhí) 行寫通,所以不能保證高速緩存條目的數(shù)據(jù)是一致的。由于沒有執(zhí)行寫通,向該高速緩 存條目的寫入事務(wù)不在系統(tǒng)互連12上進行,因而該事務(wù)就無法被高速緩存一致性管理器 19 (或其他高速緩存)偵聽。因此,由于不會執(zhí)行一致性操作,所以認(rèn)為是不一致的。 由于高速緩存條目是新分配的,所以其數(shù)據(jù)被認(rèn)為是未修改的。然 而,當(dāng)發(fā)生高速緩存未命中,并且W=l,指示執(zhí)行寫通以向該地址寫入 時,則高速緩存條目的狀態(tài)通過轉(zhuǎn)換128從狀態(tài)I轉(zhuǎn)換到狀態(tài)C。由于執(zhí)行寫通以向該地 址寫入,因此保持了一致性。例如,對于寫入未命中進行的寫通,在轉(zhuǎn)換128之后重新 分配的高速緩存條目中存儲的數(shù)據(jù)也經(jīng)由系統(tǒng)互連12提供到存儲器20。對于讀取未命中 進行的寫通,要存入新分配的高速緩存條目中的數(shù)據(jù)由存儲器20經(jīng)由系統(tǒng)互連12提供到 處理器14。因此,在執(zhí)行寫通的過程中,新分配的高速緩存條目中存儲的數(shù)據(jù)經(jīng)由高速 緩存一致性管理器18監(jiān)控的系統(tǒng)互連12來提供。因此高速緩存一致性管理器18能夠通 過偵聽與寫通事務(wù)相對應(yīng)的系統(tǒng)互連12上的地址,從而執(zhí)行高速緩存一致性操作,并且 執(zhí)行高速緩存一致性操作。例如,高速緩存一致性管理器18能夠向處理器16提供偵聽 無效請求,從而使處理器16能夠確定該偵聽地址是否在高速緩存30內(nèi)命中(hit),如果 命中,則將其無效。一旦處于狀態(tài)C,對高速緩存條目的任何讀取或?qū)懭朊袑⒅率乖摳咚倬彺鏃l 目保持在狀態(tài)C中。在寫入命中的情況下,執(zhí)行寫通(由于用于該地址的W頁屬性被 設(shè)置)以便允許保持一致性。即,在寫通之后,高速緩存一致性操作能夠得以執(zhí)行。例 如,正像上面所描述的,高速緩存一致性管理器18能向處理器16發(fā)出偵聽無效請求,以 便保持一致性。對高速緩存條目的高速緩存無效操作經(jīng)由轉(zhuǎn)換130將高速緩存條目返回 狀態(tài)I。還要注意,在狀態(tài)C中,當(dāng)與高速緩存條目的地址相關(guān)的數(shù)據(jù)被諸如處理器16 的另一個處理器修改時,處理器14可能從高速緩存一致性管理器18接收高速緩存一致性 操作,例如,偵聽無效請求。在這種情況下,偵聽無效請求會命中處理器14的高速緩存 條目,并致使高速緩存條目的狀態(tài)經(jīng)由轉(zhuǎn)換129轉(zhuǎn)換回到狀態(tài)I。也可以由處理器14或16對存儲器20中的位置執(zhí)行高速緩存刷新(flush)操作 (其也可以被稱為刷新高速緩存操作命令),用于分別采用高速緩存28或30中現(xiàn)有的任 何修改數(shù)據(jù)來更新存儲器20。在一個實施例中,這些高速緩存刷新操作可以被指定用于 將任何修改的數(shù)據(jù)刷新至存儲器20,然后將高速緩存條目置于有效狀態(tài)(即,不帶有無 效的高速緩存刷新操作),或者可替代地,將任何修改的數(shù)據(jù)刷新至存儲器20,并且執(zhí) 行刷新之后,將高速緩存條目置于無效狀態(tài)(即,帶有無效的高速緩存刷新操作)。高速 緩存刷新操作提供地址用于在高速緩存中查找,而不用事先知道與高速緩存中存在的地 址相對應(yīng)的數(shù)據(jù)的存在,或者事先知道包含了數(shù)據(jù)的高速緩存條目的狀態(tài)。因此,在一 個實施例中,刷新操作是如下的操作,其中,如果高速緩存條目具有任何修改的數(shù)據(jù), 則匹配的高速緩存條目被寫回到存儲器。即,如果高速緩存行或條目是臟的,那么它將 被寫回到存儲器(例如存儲器20)。如果沒有修改的數(shù)據(jù),則不需要寫回到存儲器。也 要注意到,可以帶有或不帶有無效地執(zhí)行刷新。仍然參考狀態(tài)C,執(zhí)行不帶有無效的高速緩存刷新操作之后,再一次檢查W頁 屬性以確定如何在狀態(tài)之間轉(zhuǎn)換。如果,在不帶有無效的高速緩存刷新操作之后,W頁屬性目前被清零(例如,作為對用于存儲器20中對應(yīng)頁的W頁屬性進行修改的軟件的結(jié) 果),則高速緩存條目的狀態(tài)經(jīng)由轉(zhuǎn)換134轉(zhuǎn)換到狀態(tài)N。即,高速緩存條目沒有被無效 (由于執(zhí)行的刷新不帶有無效),但是現(xiàn)在,也不再執(zhí)行寫通。這樣,又一次無法保證一 致性。另外,由于請求刷新,因此知道在完成刷新操作時數(shù)據(jù) 未被修改。如果執(zhí)行帶有 無效的刷新,則執(zhí)行刷新操作之后,高速緩存條目被無效,因此轉(zhuǎn)換回狀態(tài)1(經(jīng)由轉(zhuǎn)換 130)。如果執(zhí)行不帶有無效的刷新,在刷新操作之后高速緩存條目保持有效,并且基于 W頁屬性確定狀態(tài)(是否保持狀態(tài)C或者轉(zhuǎn)換到狀態(tài)N)。—旦在狀態(tài)N,高速緩存條目的任何讀取命中都將致使高速緩存條目保持在狀 態(tài)N。對高速緩存條目的高速緩存無效操作將高速緩存條目經(jīng)由轉(zhuǎn)換112返回到狀態(tài)I。 取決于W頁屬性的值,不帶有無效的高速緩存刷新操作可能引起轉(zhuǎn)換到狀態(tài)C。例如, 如果執(zhí)行不帶有無效的刷新操作,并且W頁屬性的值仍然是零,則高速緩存條目的狀態(tài) 保持為狀態(tài)N。如果執(zhí)行不帶有無效的高速緩存刷新操作,并且W頁屬性目前是1(例 如,其通過軟件而被改變),則高速緩存條目的狀態(tài)由狀態(tài)N轉(zhuǎn)換到狀態(tài)C,其中,由 于該刷新,在該轉(zhuǎn)換中數(shù)據(jù)保持未被修改,并且由于目前執(zhí)行了寫通,從而保持了一致 性。如果執(zhí)行帶有無效的刷新,則在刷新操作之后,高速緩存條目的狀態(tài)返回到I (經(jīng)由 轉(zhuǎn)換112)。在處于狀態(tài)N的高速緩存條目寫入命中之后,高速緩存條目的狀態(tài)經(jīng)由轉(zhuǎn)換 114從狀態(tài)N轉(zhuǎn)換到狀態(tài)M。因此,由于沒有執(zhí)行寫通,所以高速緩存條目仍然是不一 致的;然而,由于其在從狀態(tài)I到狀態(tài)N的轉(zhuǎn)換110之后被分配因而被修改,所以認(rèn)為其 現(xiàn)在經(jīng)過了修改。一旦處于狀態(tài)M中,對高速緩存條目的任何命中都將致使高速緩存條目保持在 狀態(tài)M。如果執(zhí)行了不帶有無效的高速緩存刷新操作,則像上面所描述的,執(zhí)行向存儲 器(例如存儲器20)的回寫,并且不無效高速緩存條目。然后,基于W頁屬性,高速緩 存條目從狀態(tài)M轉(zhuǎn)換到狀態(tài)N或C。在W = O的情況下,高速緩存條目的狀態(tài)經(jīng)由轉(zhuǎn) 換116返回到狀態(tài)N,其中,目前數(shù)據(jù)再一次未被修改(由于刷新操作),并且未執(zhí)行寫 通(因此不保證一致性)。在W = 1的情況下,高速緩存條目的狀態(tài)經(jīng)由轉(zhuǎn)換126轉(zhuǎn)換 回到狀態(tài)C,其中,目前數(shù)據(jù)再一次未被修改(由于刷新操作),并且執(zhí)行寫通(因此保 持一致性)。在狀態(tài)M,如果執(zhí)行帶有無效的刷新,則執(zhí)行向存儲器的回寫,正如上面 所描述的,并且無效高速緩存條目,經(jīng)由轉(zhuǎn)換124將高速緩存條目的狀態(tài)返回到狀態(tài)I。 如果對處于狀態(tài)M的高速緩存條目執(zhí)行替換操作,修改數(shù)據(jù)首先被回寫到存儲器20。然 后高速緩存條目中的數(shù)據(jù)被首先無效(經(jīng)由轉(zhuǎn)換124轉(zhuǎn)換到狀態(tài)I),然后被覆蓋寫入(由 于實際上發(fā)生了分配,因此取決于W頁屬性的值,導(dǎo)致轉(zhuǎn)換到狀態(tài)N或C)。并且,如 果執(zhí)行了無效操作,高速緩存條目的狀態(tài)經(jīng)由轉(zhuǎn)換122從狀態(tài)M轉(zhuǎn)換到狀態(tài)I,并且不執(zhí) 行回寫操作。因此,可以理解,高速緩存一致性協(xié)議如何將分離的轉(zhuǎn)換和狀態(tài)用于一致性和 非一致性寫入。在一個實施例中,高速緩存一致性協(xié)議100使用MMU 42提供的W頁 屬性作為用于限定一致性狀態(tài)之間的一個或多個轉(zhuǎn)換的控制值。在一個實施例中,高速 緩存一致性協(xié)議依賴于用于一致性業(yè)務(wù)的寫通操作,并且支持用于非一致數(shù)據(jù)的回寫事 務(wù)。因此,高速緩存一致性協(xié)議100可以和不提供高速緩存一致性操作的標(biāo)準(zhǔn)總線協(xié)議 一起使用。
在一個實施例中,高速緩存一致性管理器18可以選擇高速緩存一致性需要的總 線事務(wù)的子集。即,基于一個或多個因素,正如下面將要參考圖4-9討論的,特定的事 務(wù)類型可能會或可能不會被偵聽,從而將會或不會導(dǎo)致高速緩存一致性操作。此外, 在一個實施例中,用于執(zhí)行選擇性偵聽的一個或多個因素存在于現(xiàn)有的工業(yè)標(biāo)準(zhǔn)總線協(xié) 議,例如AMBA AHB或AXI中。這樣,就不需要額外的信令機制或?qū)τ跇?biāo)準(zhǔn)總線協(xié)議 的其他修改。 在一個實施例中,高速緩存一致性管理器18基于總線事務(wù)是單拍事務(wù)還是突發(fā) 事務(wù)來進行偵聽和執(zhí)行高速緩存一致性操作。例如,在一個實施例中,如果總線事務(wù)是 單拍事務(wù)而不是突發(fā)事務(wù),則執(zhí)行偵聽和高速緩存一致性操作。這可能是因為處理器發(fā) 起的突發(fā)通常進行的是回寫事務(wù),因此這些突發(fā)事務(wù)不需要高速緩存一致性操作。然 而,在一個實施例中,如果事務(wù)是突發(fā)事務(wù),但是由DMA 40而非處理器(例如處理器14 或16)發(fā)起,仍然執(zhí)行偵聽,這是因為通常由DMA發(fā)起的突發(fā)事務(wù)不執(zhí)行回寫,意味著 仍然需要高速緩存一致性操作。因此,在一個實施例中,是否偵聽的判定可以基于總線 事務(wù)的類型和發(fā)起總線事務(wù)的主設(shè)備或主設(shè)備的類型。正如下面將描述地,系統(tǒng)10中可 以例如由高速緩存一致性管理器18或其他高速緩存一致性控制電路使用其他因素或因素 組合,以確定是否要執(zhí)行偵聽。注意,在一個實施例中,為每一個總線事務(wù)提供主設(shè)備 標(biāo)識符(主設(shè)備ID),用于識別出發(fā)起事務(wù)的主設(shè)備。主權(quán)(mastership)的確定可以通過 發(fā)起主設(shè)備指示作為傳輸?shù)刂穼傩宰鳛榭偩€事務(wù)的一部分,或者可能以其他方式指示或 信號通知。在一個實施例中,如果突發(fā)寫入訪問被發(fā)起,執(zhí)行一致性操作的主設(shè)備的確 定可以由系統(tǒng)10的用戶以編程方式選擇。在一個實施例中,可以在系統(tǒng)10內(nèi)提供控制 寄存器,以基于傳輸類型(突發(fā)或非突發(fā),或在一組特定突發(fā)類型中選擇的類型)指示應(yīng) 該執(zhí)行一致性操作的一個或多個主設(shè)備。使用AMBAAHB協(xié)議作為例子,使用編碼出8個可能的事務(wù)類型的3位總線信 號HBURST[2:0]來提供突發(fā)信息。圖4提供了這些編碼。例如,HBURST的值“000” 表示單個傳輸(即,單拍傳輸),而其他7個值表示不同的突發(fā)事務(wù)類型。在一個實施 例中,當(dāng)高速緩存一致性管理器18確定HBURST的值為000 (表示單個傳輸),將執(zhí)行偵 聽;然而,如果確定HBURST的值為010 (表示4拍環(huán)回突發(fā)(wrappingburst)),011 (表 示4拍遞增突發(fā)),100(表示8拍環(huán)回突發(fā)),101 (表示8拍遞增突發(fā)),110(表示16拍 環(huán)回突發(fā))或者111 (表示16拍遞增突發(fā)),則不執(zhí)行偵聽。依據(jù)實施例,當(dāng)HBURST 的值為001 (表示未定義長度的遞增突發(fā)),可能會也可能不會執(zhí)行偵聽。正如上面所討 論的,是否偵聽的判定可能進一步基于發(fā)起總線事務(wù)或傳輸?shù)闹髟O(shè)備或主設(shè)備類型。在一個實施例中,是否偵聽的判定可能進一步取決于當(dāng)前的訪問(當(dāng)前的總線 事務(wù))是否是可高速緩存的。仍然使用AMBAAHB協(xié)議為例,HPROT[3:0]信號被提供了 總線事務(wù)訪問地址和指示,例如,傳輸是操作碼獲取還是數(shù)據(jù)訪問、權(quán)限模式訪問還是 用戶模式訪問、以及對于帶有MMU的主設(shè)備,指示當(dāng)前訪問是否是可高速緩存的。圖 5提供了 HPROT[3:0]信號的編碼方式。例如,當(dāng)HPROT[3]具有值0時,由于總線事務(wù) 的訪問不可高速緩存所以不執(zhí)行偵聽,而當(dāng)HPROT[3]具有值1時,由于總線事務(wù)的訪問 是可高速緩存的所以執(zhí)行偵聽。因此,在使用上述描述的因素之外或者代替上述描述的 因素,HPROT信號還可以用于確定是否會執(zhí)行偵聽。在另一個實施例中,當(dāng)HPROT[2]具有值O時,由于總線事務(wù)的訪問是不可緩沖的所以不執(zhí)行偵聽,而當(dāng)HPR0T[2]具有值 1時,由于總線事務(wù)的訪問是可緩沖的所以執(zhí)行偵聽。在一些實施例中,依據(jù)發(fā)起總線 訪問的特定主設(shè)備,HPROT位的值可以以編程的方式用于控制是否執(zhí)行一致性操作。因 此,在使用上述描述的因素之外或者代替上述描述的因素,HPROT信號還可以用于確定 是否會執(zhí)行偵聽,可選地還可確定發(fā)起事務(wù)的主設(shè)備的身份。例如,可能的是,以實現(xiàn) 當(dāng)HPR0T[3] = 1時為主設(shè)備X執(zhí)行的一致性操作,當(dāng)HPR0T[2] = 1時為主設(shè)備Y執(zhí)行 的一致性操作,以及當(dāng)HPR0T[3] = 1并且HPR0T[2] = O時為主設(shè)備Z執(zhí)行的一致性操 作的方式,系統(tǒng)10的用戶對一個或多個控制寄存器或寄存器字段進行編程??商娲?, 也可以使用其他可實現(xiàn)的控制組合。圖6-9描述了確定是否執(zhí)行高速緩存一致性操作(例如偵聽)的流程圖的各種示 例。正如上面討論的,如果在系統(tǒng)10中存在其他高速緩存的話,高速緩存一致性操作可 以包括對在系統(tǒng)10中的其他高速緩存產(chǎn)生偵聽請求,在系統(tǒng)10中,那些高速緩存然后處 理該偵聽請求。在一個實施例中,高速緩存一致性操作可以包括高速緩存條目狀態(tài)的改 變。在一個實施例中,每個流程可以由高速緩存管理器18執(zhí)行?;蛘撸渌咚倬彺嬉?致性控制電路可以執(zhí)行這些功能的任意一個,并且存在于系統(tǒng)10的任意位置。在一個實 施例中,每個單個的高速緩存或者高速緩存控制電路可以執(zhí)行圖6-9中描述的功能。圖 6描述了起始于框502的流程500,在框502中,由總線主設(shè)備,例如處理器14、處理器 16、DMA40或其他主設(shè)備22發(fā)起總線事務(wù)。流程繼續(xù)到確定是否執(zhí)行寫入事務(wù)的判定 菱形框504。如果否,流程繼續(xù)到不執(zhí)行高速緩存一致性操作的框514。S卩,在圖6描述 的實施例中,不偵聽讀取事務(wù)。如果在判定菱形框504中,確定總線事務(wù)是寫入事務(wù), 流程繼續(xù)到確定總線事務(wù)是否是單拍(及,單個傳輸)事務(wù)的判定菱形框506。如果否, 則流程繼續(xù)到框514。如果總線事務(wù)是單拍事務(wù),流程繼續(xù)到對寫入事務(wù)的數(shù)據(jù)執(zhí)行高速 緩存一致性操作的框512。因此,在流程500中,只有總線事務(wù)是單拍寫入事務(wù)才執(zhí)行高 速緩存一致性操作。 圖7描述了起始于框602的流程600,在框602中,由總線主設(shè)備,諸如例如處 理器14、處理器16、DMA40或其他主設(shè)備22發(fā)起總線事務(wù)。流程繼續(xù)到確定是否執(zhí)行 寫入事務(wù)的判定菱形框604。如果否,流程繼續(xù)到不執(zhí)行高速緩存一致性操作的框614。 艮口,在圖7描述的實施例中,不偵聽讀取事務(wù)。如果在判定菱形框604中確定總線事務(wù) 是寫入事務(wù),流程繼續(xù)到確定總線事務(wù)是否是單拍(即,單個傳輸)事務(wù)的判定菱形框 606。如果是,流程繼續(xù)到對寫入事務(wù)的數(shù)據(jù)執(zhí)行高速緩存一致性操作的框612。如果 否,流程繼續(xù)到確定事務(wù)主設(shè)備ID的框608。S卩,正如上面所描述的,在一個實施例 中,為每一個總線事務(wù)提供主設(shè)備ID用于識別該發(fā)起主設(shè)備。然后流程繼續(xù)到確定主設(shè) 備ID是否指示諸如DMA 40之類的DMA的判定菱形框610。如果是,流程繼續(xù)到對寫 入事務(wù)的數(shù)據(jù)執(zhí)行高速緩存一致性操作的框612。如果否,流程繼續(xù)到框614。S卩,即 使寫入事務(wù)是突發(fā)寫入(即,判定菱形框606的“否”分支),如果發(fā)起主設(shè)備是DMA 則仍然執(zhí)行高速緩存一致性操作。然而,如果寫入事務(wù)是突發(fā)寫入并且發(fā)起主設(shè)備不是 DMA,則不執(zhí)行高速緩存一致性操作,因為在這種情況下,該突發(fā)事務(wù)很可能是回寫事 務(wù)。圖8描述了起始于框702的流程700,在框702中,由總線主設(shè)備,諸如例如處理器14、處理器16、DMA40或其他主設(shè)備22發(fā)起總線事務(wù)。流程繼續(xù)到確定是否執(zhí)行 寫入事務(wù)的判定菱形框704。如果否,流程繼續(xù)到不執(zhí)行高速緩存一致性操作的框714。 艮口,在圖8描述的實施例中,不偵聽讀取事務(wù)。如果在判定菱形框704確定總線事務(wù)是寫 入事務(wù),流程繼續(xù)到確定總線事務(wù)是否是單拍(即,單個傳輸)事務(wù)的判定菱形框706。 如果是,流程繼續(xù)到對寫入事務(wù)的數(shù)據(jù)執(zhí)行高速緩存一致性操作的框712。如果否,流程 繼續(xù)到確定事務(wù)主設(shè)備ID的框708。即,正如上面所描述的,在一個實施例中,為每一 個總線事務(wù)提供主設(shè)備ID用于識別該發(fā)起主設(shè)備。然后流程繼續(xù)到確定主設(shè)備ID是否 指示選擇的主設(shè)備的判定菱形框710。如果是,流程繼續(xù)到對寫入事務(wù)的數(shù)據(jù)執(zhí)行高速 緩存一致性操作的框712。如果否,流程繼續(xù)到框714。在一個實施例中,高速緩存一 致性管理器18包括指示需要一致性的主設(shè)備的一致性主設(shè)備控制寄存器19。例如,控 制寄存器19可以利用系統(tǒng)10中的那些要求或需要高速緩存一致性的主設(shè)備的ID進行編 程。因此,在圖8的判定菱形框710中,在框702中發(fā)起總線事務(wù)的主設(shè)備的主設(shè)備ID 可以與控制寄存器19比較,以確定發(fā)起主設(shè)備的主設(shè)備ID是否對應(yīng)于控制寄存器19指 示的選擇的主設(shè)備??商娲兀渌娐坊蚍椒梢杂脕碜R別應(yīng)該執(zhí)行高速緩存一致性 操作的發(fā)起主設(shè)備。因此,即使寫入事務(wù)是突發(fā)寫入(即,判定菱形框706的“否”分 支),如果發(fā)起主設(shè)備是由一致性主設(shè)備控制寄存器19選擇的主設(shè)備,則仍然執(zhí)行高速 緩存一致性操作。在替代的實施例中,確定步驟710可以使用其他在系統(tǒng)10中預(yù)先確定 的選擇標(biāo)準(zhǔn)來執(zhí)行。在一個實施例中,該選擇標(biāo)準(zhǔn)可以由系統(tǒng)10的用戶編程。圖9描述了起始于框802的流程800,在框802中,由總線主設(shè)備,諸如例如處 理器14、處理器16、DMA40或其他主設(shè)備22發(fā)起總線事務(wù)。流程繼續(xù)到確定是否執(zhí)行 寫入事務(wù)的判定菱形框804。如果否,流程繼續(xù)到不執(zhí)行高速緩存一致性操作的框814。 艮口,在圖9描述的實施例中,不偵聽讀取事務(wù)。如果在判定菱形框804中確定總線事務(wù) 是寫入事務(wù),流程繼續(xù)到讀取總線事務(wù)的可高速緩存字段或信號的框806。例如,這里可 以參考前面描述過的HPROT[3]或HPROT[2]。流程繼續(xù)到確定可高速緩存字段或信號是 否指示可高速緩存事務(wù)的判定菱形框808。如果否,流程繼續(xù)到框814。如果是,流程 繼續(xù)到確定該寫入事務(wù)是否是單拍寫入的判定菱形框810。如果否,流程繼續(xù)到框814。 如果是,流程繼續(xù)到為寫入事務(wù)執(zhí)行高速緩存一致性操作的框812。S卩,在圖9的實施例 中,只對可高速緩存的單個寫入事務(wù)執(zhí)行高速緩存一致性操作。即,突發(fā)事務(wù)不會導(dǎo)致 高速緩存一致性操作,如例如由依據(jù)系統(tǒng)互連12的總線協(xié)議提供的信號指示為非可高速 緩存事務(wù)的任何事務(wù)不會導(dǎo)致高速緩存一致性操作一樣。在替換的實施例中,判定步驟 808接下來可以是以與圖8中步驟708和710執(zhí)行的確定的相似的方式識別發(fā)起該事務(wù)的 主設(shè)備的確定步驟。在一個實施例中,該確定的結(jié)果可以作為決定是否為總線事務(wù)執(zhí)行 高速緩存一致性操作的進一步的因素。因此,可以理解如何單獨或相互之間進行各種不同的組合地使用各種不同的因 素,用于確定是否執(zhí)行高速緩存一致性操作(例如,偵聽)。高速緩存一致性操作的該種 可選擇的性能可以例如使用現(xiàn)有的標(biāo)準(zhǔn)總線協(xié)議執(zhí)行。因為實現(xiàn)本發(fā)明的裝置在很大程度上是由本領(lǐng)域技術(shù)人員熟知的電子元件和電 路組成,為了理解和領(lǐng)會本發(fā)明的實質(zhì)精神和不使本發(fā)明的教導(dǎo)被模糊或分散,除了上 文所描述的認(rèn)為必要的電路細(xì)節(jié)以外將不對其它更多的電路細(xì)節(jié)進行說明。
盡管已經(jīng)相對于具體的傳導(dǎo)類型或電勢極性來描述了本發(fā)明,技術(shù)人員明白該 傳導(dǎo)類型和電勢極性是可以顛倒的。而且,在說明書和權(quán)利要求書中如果有術(shù)語“前”、“后”、“頂”、“底”、 “上”、“下”等等,則它們是用于描述性目的,而對于描述不變的相對位置并不是必
要的??梢岳斫?,這些術(shù)語的使用在適當(dāng)?shù)那闆r下是可以相互交換的,以致于這里描述 的本發(fā)明的實施例例如能夠以此處說明或描述之外的其他方式運行。在此所使用的術(shù)語“程序”被定義為用于在計算機系統(tǒng)上執(zhí)行而設(shè)計的指令序 列。程序或計算機程序可以包括子程序、函數(shù)、過程、對象方法、對象實現(xiàn)、可執(zhí)行的 應(yīng)用程序、小程序(applet)、服務(wù)小程序(servlet)、源代碼、目標(biāo)代碼,共享庫/動態(tài)裝 載庫和/或用于在計算機系統(tǒng)上執(zhí)行而設(shè)計的其它指令序列。上述某些實施例,在適當(dāng)時可使用各種不同的信息處理系統(tǒng)來實現(xiàn)。例如,盡 管圖1及其討論描述了示例性的信息處理體系結(jié)構(gòu),但是該示例性的體系結(jié)構(gòu)只是為了 在本發(fā)明的各個方面的討論中提供有用的參考而示出。當(dāng)然,為了討論的目的已經(jīng)簡化 了對該體系結(jié)構(gòu)的描述,并且它只是可以根據(jù)本發(fā)明來使用的許多不同類型的適合的體 系結(jié)構(gòu)之一。本領(lǐng)域技術(shù)人員將認(rèn)識到在邏輯塊之間的邊界僅僅是說明性的,并且可替 換的實施方案可以合并邏輯塊或電路元件,或者對各種邏輯塊或電路元件實行可替換的 功能分解。從而,應(yīng)當(dāng)了解在此所描述的體系結(jié)構(gòu)只是示例性的,并且實際上能夠?qū)崿F(xiàn)獲 得相同功能的許多其它體系結(jié)構(gòu)。在抽象但仍然明確的意義上,用于實現(xiàn)相同功能的組 件的任何布局是有效“關(guān)聯(lián)的”,使得所希望的功能得以實現(xiàn)。因此,在不考慮體系結(jié) 構(gòu)或中間的組件的情況下,此處組合以實現(xiàn)特定功能的任何兩個組件都能夠被看作是彼 此“關(guān)聯(lián)的”,使得能夠?qū)崿F(xiàn)所希望的功能。類似地,這樣關(guān)聯(lián)的任何兩個組件還能夠 被看作是彼此“可操作地連接”或者“可操作地耦接”地,以實現(xiàn)所希望的功能。還例如,在一個實施例中,所描述的系統(tǒng)10的元件是位于單個集成電路上或者 位于相同的器件之內(nèi)的電路??蛇x地,系統(tǒng)10可以包括彼此互連的任何數(shù)量的分離的集 成電路或分離的器件。例如,存儲器20可以和處理器14和16—樣位于同樣的集成電路 上,或者位于分離的集成電路上,或者在與系統(tǒng)10的其他元件分離的其他外圍設(shè)備內(nèi)或 從設(shè)備之內(nèi)。其他從設(shè)備24和I/O電路26亦可位于單獨的集成電路或設(shè)備上。還例 如,系統(tǒng)10或其部分可以是物理電路的軟件或代碼表示,或者是可轉(zhuǎn)換成物理電路的邏 輯表示。這樣,可以用任何適合類型的硬件描述語言來實現(xiàn)系統(tǒng)10。而且,本領(lǐng)域技術(shù)人員會認(rèn)識到在上述操作的功能之間的邊界只是說明性的。 多個操作的功能可以結(jié)合到單個操作中,和/或單個操作的功能可以分布于附加的操作 中。而且,可替換的實施例可以包括具體操作的多種實例,并且在各種其它實施例中可 以改變操作的順序。在此所描述的所有或某些軟件可以是從諸如存儲器 35的計算機可讀媒體或其它 計算機系統(tǒng)上的其它媒體所接收的系統(tǒng)10的元素。該計算機可讀媒體可以是與例如系 統(tǒng)10的信息處理系統(tǒng)持久地、可移動地、或遠(yuǎn)程地耦接。計算機可讀媒體可以包括, 例如而不限于,任何數(shù)量的下列媒體磁存儲媒體,包括磁盤和磁帶存儲媒體;光存儲 媒體,例如壓縮磁盤媒體(如,CD-ROM、CD-R等)和數(shù)字視頻磁盤存儲媒體;非易失性存儲器存儲媒體,包括基于半導(dǎo)體的存儲器單元,例如FLASH存儲器、EEPROM、 EPROM、ROM ;鐵磁數(shù)字存儲器;MRAM ;易失性存儲媒體,包括寄存器、緩沖器、 或高速緩存、主存、RAM等;以及數(shù)據(jù)傳輸媒體,包括計算機網(wǎng)絡(luò)、點對點電信設(shè)備、 以及載波傳輸媒體,以上僅列舉出其中幾個。在一個實 施例中,系統(tǒng)10在諸如個人計算機系統(tǒng)的計算機系統(tǒng)中實現(xiàn)。其他實 施例可包括不同類型的計算機系統(tǒng)。計算機系統(tǒng)是可被設(shè)計為向一個或多個用戶提供獨 立計算能力的信息處理系統(tǒng)。計算機系統(tǒng)可具有許多形式,包括但不限于大型機、小 型機、服務(wù)器、工作站、個人計算機、筆記型計算機、個人數(shù)字助理、電子游戲機、汽 車和其他嵌入式系統(tǒng)、蜂窩電話和多種其他無線設(shè)備。典型的計算機系統(tǒng)包括至少一個 處理單元、關(guān)聯(lián)的存儲器和若干輸入/輸出(I/O)設(shè)備。計算機系統(tǒng)根據(jù)程序處理信息,并且經(jīng)由I/O設(shè)備產(chǎn)生最終的輸出信息。程序 是一系列指令,例如特定應(yīng)用程序和/或操作系統(tǒng)。計算機程序通常內(nèi)部存儲在計算機 可讀存儲介質(zhì)上,或者經(jīng)由計算機可讀傳輸存儲介質(zhì)發(fā)送至計算機系統(tǒng)。計算機進程通 常包括執(zhí)行(運行)程序或者程序的一部分、當(dāng)前程序值和狀態(tài)信息,以及操作系統(tǒng)用來 管理進程執(zhí)行的資源。父進程可以生成其他子進程用于幫助執(zhí)行該父進程的整體功能。 由于父進程特定生成執(zhí)行該父進程整體功能的一部分的子進程,所以由子進程(以及孫 子進程等)執(zhí)行的功能有時可以說明為由該父進程執(zhí)行。盡管本發(fā)明在此參考具體的實施例來描述,但是在沒有脫離權(quán)利要求書所闡明 的本發(fā)明的范圍的情況下能夠進行各種修改和改變。因此,說明書和附圖應(yīng)當(dāng)被看作是 說明性的而非限制性的,并且所有這些修改旨在被包括在本發(fā)明的范圍內(nèi)。在此針對具 體的實施例所描述的任何益處、優(yōu)點、或問題的解決方案并不旨在被認(rèn)為是任何或所有 的權(quán)利要求的關(guān)鍵的、必需的、或本質(zhì)的特征或元素。如此處使用的,術(shù)語“耦接”不旨在局限于直接耦接或機械耦接。而且,如此處使用的,術(shù)語“一”定義為一個或多于一個。另外,權(quán)利要求中 諸如“至少一個”和“一個或更多個”的引入性短語的使用不應(yīng)被認(rèn)為暗示著由不定冠 詞“一”引領(lǐng)的另一個權(quán)利要求元素將包含該引入的權(quán)利要求元素的任意特定權(quán)利要求 局限于僅包含一個該元素的發(fā)明,即使當(dāng)相同的權(quán)利要求包括引入性短語“一個或更多 個”或“至少一個”及諸如不定冠詞“一”時也是如此。這對定冠詞的使用同樣適用。除非另有說明,否則此處使用諸如“第一”和“第二”的術(shù)語用于區(qū)分這些 術(shù)語所描述的元素。因而,這些術(shù)語不必旨在指示這些元素的時間上的或其它的優(yōu)先次 序。附加文本1. 一種數(shù)據(jù)處理系統(tǒng)(例如,10),包括第一主設(shè)備(例如,14),所述第一主設(shè)備包括高速緩存(例如,28);第二主設(shè)備(例如,16);存儲器(例如,20),所述存儲器經(jīng)由系統(tǒng)互連(例如,12)可操作地耦接到第一 主設(shè)備和第二主設(shè)備;其中,所述高速緩存包括高速緩存控制器(例如,29),所述高速緩存控制器為 所述高速緩存的數(shù)據(jù)單元(例如,高速緩存條目或高速緩存行)實現(xiàn)一組高速緩存一致性狀態(tài)(例如,I,N,C,Μ),所述高速緩存一致性狀態(tài)包括無效狀態(tài)(例如,I);
未修改的非一致狀態(tài)(例如,N),所述未修改的非一致狀態(tài)指示沒有修改所述 高速緩存的數(shù)據(jù)單元的數(shù)據(jù),并且不保證所述高速緩存的數(shù)據(jù)單元的數(shù)據(jù)與所述數(shù)據(jù)處 理系統(tǒng)的至少一個其他存儲設(shè)備中的數(shù)據(jù)是一致的;以及未修改的一致狀態(tài)(例如,C),所述未修改的一致狀態(tài)指示沒有修改所述數(shù)據(jù) 單元的數(shù)據(jù),并且所述數(shù)據(jù)單元的數(shù)據(jù)與所述數(shù)據(jù)處理系統(tǒng)的至少一個其他存儲設(shè)備中 的數(shù)據(jù)是一致的。2.如項目1所述的數(shù)據(jù)處理系統(tǒng),其中,響應(yīng)于所述高速緩存的讀取未命中, 進行從所述高速緩存的數(shù)據(jù)單元的所述無效狀態(tài)到所述未修改的非一致狀態(tài)的轉(zhuǎn)換,其 中,所述讀取未命中的數(shù)據(jù)被寫入到所述數(shù)據(jù)單元,其中,響應(yīng)于所述讀取未命中,不 對所述數(shù)據(jù)處理系統(tǒng)的任何其他高速緩存上執(zhí)行高速緩存一致性操作。3.如項目1所述的數(shù)據(jù)處理系統(tǒng),其中響應(yīng)于寫入高速緩存未命中,其中寫 入未命中的數(shù)據(jù)被寫入的從所述高速緩存的數(shù)據(jù)單元的所述無效狀態(tài)到所述未修改的非 一致狀態(tài)的轉(zhuǎn)換不產(chǎn)生在所述數(shù)據(jù)處理系統(tǒng)的其他高速緩存中的高速緩存一致性操作。4.如項目1所述的數(shù)據(jù)處理系統(tǒng),其中,從所述高速緩存的數(shù)據(jù)單元的所述無效 狀態(tài)到所述未修改的非一致狀態(tài)的轉(zhuǎn)換不會引起所述數(shù)據(jù)處理系統(tǒng)的其他高速緩存內(nèi)的 查找操作,所述查找操作用于確定那些高速緩存是否包含對應(yīng)于正被寫入所述數(shù)據(jù)單元 的數(shù)據(jù)的存儲器地址。5.如項目1所述的數(shù)據(jù)處理系統(tǒng),其中,當(dāng)所述高速緩存的數(shù)據(jù)單元處于所述未 修改的非一致狀態(tài)時,指向那個數(shù)據(jù)單元的偵聽事務(wù)不會導(dǎo)致那個數(shù)據(jù)單元的一致性狀 態(tài)的改變。6.如項目1所述的數(shù)據(jù)處理系統(tǒng),其中,響應(yīng)于在其中高速緩存未命中的數(shù)據(jù)被 寫到所述高速緩存的數(shù)據(jù)單元中的所述高速緩存未命中響應(yīng)于指示寫入到所述數(shù)據(jù)單元的數(shù)據(jù)不需要寫通的寫通需求屬性,進行從所 述高速緩存的數(shù)據(jù)單元的所述無效狀態(tài)到所述未修改的非一致狀態(tài)的轉(zhuǎn)換(例如,轉(zhuǎn)換 110);響應(yīng)于指示寫入到所述高速緩存的所述數(shù)據(jù)單元的數(shù)據(jù)需要寫通的寫通需求屬 性,進行從所述高速緩存的數(shù)據(jù)單元的所述無效狀態(tài)到所述未修改的一致狀態(tài)的轉(zhuǎn)換 (例如,轉(zhuǎn)換128)。7.如項目6所述的數(shù)據(jù)處理系統(tǒng),其中所述高速緩存未命中是寫入未命中;如果所述寫通需求屬性指示所述寫入未命中的數(shù)據(jù)需要寫通,則所述寫入未命 中的數(shù)據(jù)不在后續(xù)的回寫總線事務(wù)中被寫入到所述存儲器。8.如項目1所述的數(shù)據(jù)處理系統(tǒng),其中,所述高速緩存一致性狀態(tài)進一步包 括修改的非一致狀態(tài)(例如,Μ),所述修改的非一致狀態(tài)指示修改了所述高速緩 存的數(shù)據(jù)單元的數(shù)據(jù),并且不保證所述高速緩存的數(shù)據(jù)單元的數(shù)據(jù)與所述數(shù)據(jù)處理系統(tǒng) 的至少一個其他存儲設(shè)備中的數(shù)據(jù)是一致的。
9.如項目8所述的數(shù)據(jù)處理系統(tǒng),其中,響應(yīng)于所述數(shù)據(jù)單元的數(shù)據(jù)的寫入命 中,進行從所述高速緩存的數(shù)據(jù)單元的所述未修改的非一致狀態(tài)到所述修改的非一致狀 態(tài)的轉(zhuǎn)換(例如,轉(zhuǎn)換114)。10.如項目9所述的數(shù)據(jù)處理系統(tǒng),其中當(dāng)處于所述未修改的一致狀態(tài)時,所述高速 緩存的數(shù)據(jù)單元的數(shù)據(jù)的寫入命中 產(chǎn)生到所述存儲器的數(shù)據(jù)寫通(例如,轉(zhuǎn)換132);當(dāng)處于所述未修改的非一致狀態(tài)時,所述高速緩存的數(shù)據(jù)單元的數(shù)據(jù)的寫入命 中不產(chǎn)生數(shù)據(jù)的寫通操作。11.如項目8所述的數(shù)據(jù)處理系統(tǒng),其中響應(yīng)于不帶有對于所述數(shù)據(jù)單元的無 效高速緩存操作命令的對于所述數(shù)據(jù)單元的刷新高速緩存操作命令以及所述寫通需求屬 性指示所述數(shù)據(jù)單元的數(shù)據(jù)不需要寫通,進行從所述高速緩存的數(shù)據(jù)單元的所述修改的 非一致狀態(tài)到所述未修改的非一致狀態(tài)的轉(zhuǎn)換(例如,轉(zhuǎn)換116)。12.如項目8所述的數(shù)據(jù)處理系統(tǒng),其中,響應(yīng)于對于所述數(shù)據(jù)單元的刷新高 速緩存操作命令以及數(shù)據(jù)的所述寫通需求屬性指示所述數(shù)據(jù)需要寫通,進行從所述高速 緩存的數(shù)據(jù)單元的所述修改的非一致狀態(tài)到所述未修改的一致狀態(tài)的轉(zhuǎn)換(例如,轉(zhuǎn)換 126)。13.如項目8所述的數(shù)據(jù)處理系統(tǒng),其中,當(dāng)數(shù)據(jù)單元的數(shù)據(jù)的寫通需求屬性指 示所述數(shù)據(jù)不需要寫通時,從所述高速緩存的所述數(shù)據(jù)單元的所述修改的非一致狀態(tài)到 所述無效狀態(tài)的轉(zhuǎn)換響應(yīng)于下述命令而進行不帶有對于所述數(shù)據(jù)單元的無效高速緩存操作命令的對于所述數(shù)據(jù)單元的刷新 高速緩存操作命令,其中,響應(yīng)于所述刷新高速緩存操作命令,通過回寫總線事務(wù)將所 述數(shù)據(jù)寫入存儲器(例如,轉(zhuǎn)換124);或者對于所述數(shù)據(jù)單元的無效高速緩存操作命令(例如,轉(zhuǎn)換122)。14.如項目1所述的數(shù)據(jù)處理系統(tǒng),其中,當(dāng)寫通需求屬性指示所述高速緩存的 數(shù)據(jù)單元的數(shù)據(jù)需要寫通時,響應(yīng)于不帶有對于所述數(shù)據(jù)單元的無效高速緩存操作命令 的對于所述數(shù)據(jù)單元的刷新高速緩存操作命令,進行從所述高速緩存的所述數(shù)據(jù)單元的 所述未修改的非一致狀態(tài)到所述未修改的一致狀態(tài)的轉(zhuǎn)換(例如,轉(zhuǎn)換120)。15.如項目1所述的數(shù)據(jù)處理系統(tǒng),其中,當(dāng)寫通需求屬性指示所述數(shù)據(jù)不需要 寫通時,響應(yīng)于不帶有對于所述數(shù)據(jù)單元的無效高速緩存操作命令的對于所述數(shù)據(jù)單元 的刷新高速緩存操作命令,進行從所述高速緩存的數(shù)據(jù)單元的所述未修改的一致狀態(tài)到 所述未修改的非一致狀態(tài)的轉(zhuǎn)換(例如,轉(zhuǎn)換134)。16.如項目1所述的數(shù)據(jù)處理系統(tǒng),其中,響應(yīng)于對于所述數(shù)據(jù)單元的無效高速 緩存操作命令,進行從所述高速緩存的數(shù)據(jù)單元的所述未修改的非一致狀態(tài)和所述未修 改的一致狀態(tài)的中的每一個到所述無效狀態(tài)的轉(zhuǎn)換(例如,轉(zhuǎn)換112或130)。17. —種操作數(shù)據(jù)處理系統(tǒng)(例如,10)的方法,所述方法包括由第一主設(shè)備(例如,16)執(zhí)行數(shù)據(jù)的寫入事務(wù),所述寫入事務(wù)產(chǎn)生對所述數(shù)據(jù) 處理系統(tǒng)的高速緩存(例如,30)的寫入未命中,所述第一主設(shè)備可操作地耦接到系統(tǒng)互 連(例如,12),所述數(shù)據(jù)處理系統(tǒng)包括第二主設(shè)備(例如,14)和可操作地耦接到所述系 統(tǒng)互連的存儲器(例如,20);
響應(yīng)于所述寫入未命中,向所述高速緩存寫入數(shù)據(jù);如果所述寫入事務(wù)的所述數(shù)據(jù)的寫通需求屬性(例如,W)指示需要所述數(shù)據(jù)的 寫通,則執(zhí)行到所述存儲器的所述數(shù)據(jù)的寫通,其中,如果所述寫通需求屬性指示不需 要所述數(shù)據(jù)的寫通,則不執(zhí)行所述數(shù)據(jù)的寫通;如果所述寫通需求屬性指示需要所述數(shù)據(jù)的寫通,則在所述數(shù)據(jù)處理系統(tǒng)的至 少一個其他高速緩存(例如,28)中進行搜索以確定所述至少一個其他高速緩存是否包含 與所述寫入事務(wù)相對應(yīng)的存儲器地址,其中,如果所述寫通需求屬性指示不需要所述數(shù) 據(jù)的寫通,則不在所述至少一個其他高速緩存中執(zhí)行搜索。18. 一種數(shù)據(jù)處理系統(tǒng)(例如,10),包括處理器(例如,14),所述處理器包括高速緩存(例如,28);第二主設(shè)備(例如,16);存儲器(例如,20),所述存儲器經(jīng)由系統(tǒng)互連(例如,12)而可操作地耦接到所 述處理器和所述第二主設(shè)備;存儲器屬性邏輯(例如,在MMU 42內(nèi),或者處理器14內(nèi)的其他位置或者系統(tǒng) 10內(nèi)的其他位置),用于提供與所述存儲器的位置相關(guān)的多個屬性,其中所述多個屬性 之一是寫通需求屬性(例如,W);其中,所述高速緩存包括高速緩存控制器(例如,29),所述高速緩存控制器包 括為所述高速緩存的數(shù)據(jù)單元實現(xiàn)一組高速緩存一致性狀態(tài)的電路,其中,所述高速緩 存控制器使用所述寫通需求屬性,以確定所述存儲器內(nèi)的一個或多個位置是否需要存儲
器一致性。19.如項目18所述的數(shù)據(jù)系統(tǒng),進一步包括可操作地耦接到所述系統(tǒng)互連的高速緩存一致性管理器(例如,18),其中,當(dāng) 所述寫通需求屬性指示寫入事務(wù)需要所述存儲器一致性時,所述高速緩存一致性管理器 指示所述數(shù)據(jù)系統(tǒng)的其他高速緩存(例如,30,41),針對所述寫入事務(wù)的存儲器地址執(zhí) 行高速緩存一致性查找操作。20.如項目 19所述的數(shù)據(jù)系統(tǒng),其中,當(dāng)所述寫通需求屬性指示所述寫入事務(wù)不 需要所述存儲器一致性時,在所述數(shù)據(jù)系統(tǒng)中不針對所述寫入事務(wù)執(zhí)行存儲器一致性事務(wù)。
權(quán)利要求
1.一種數(shù)據(jù)處理系統(tǒng),包括第一主設(shè)備,所述第一主設(shè)備包括高速緩存;第二主設(shè)備;存儲器,所述存儲器經(jīng)由系統(tǒng)互連可操作地耦接到所述第一主設(shè)備和所述第二主設(shè)備;其中,所述高速緩存包括高速緩存控制器,所述高速緩存控制器為所述高速緩存的 數(shù)據(jù)單元實現(xiàn)一組高速緩存一致性狀態(tài),所述高速緩存一致性狀態(tài)包括無效狀態(tài);未修改的非一致狀態(tài),所述未修改的非一致狀態(tài)指示沒有修改所述高速緩存的數(shù)據(jù) 單元中的數(shù)據(jù),并且不保證所述高速緩存的數(shù)據(jù)單元中的數(shù)據(jù)與所述數(shù)據(jù)處理系統(tǒng)的至 少一個其他存儲設(shè)備中的數(shù)據(jù)是一致的;和未修改的一致狀態(tài),所述未修改的一致狀態(tài)指示沒有修改所述數(shù)據(jù)單元的數(shù)據(jù), 并且所述數(shù)據(jù)單元的數(shù)據(jù)與所述數(shù)據(jù)處理系統(tǒng)的至少一個其他存儲設(shè)備中的數(shù)據(jù)是一致 的。
2.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中,響應(yīng)于所述高速緩存的讀取未命中, 進行從所述高速緩存的數(shù)據(jù)單元的所述無效狀態(tài)到所述未修改的非一致狀態(tài)的轉(zhuǎn)換,其 中,所述讀取未命中的數(shù)據(jù)被寫入到所述數(shù)據(jù)單元,其中,響應(yīng)于所述讀取未命中不對 所述數(shù)據(jù)處理系統(tǒng)的任何其他高速緩存執(zhí)行高速緩存一致性操作。
3.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中響應(yīng)于寫入高速緩存未命中,其中寫入未命中的數(shù)據(jù)被寫入的從所述高速緩存的數(shù) 據(jù)單元的所述無效狀態(tài)到所述未修改的非一致狀態(tài)的轉(zhuǎn)換不產(chǎn)生在所述數(shù)據(jù)處理系統(tǒng)的 其他高速緩存中的高速緩存一致性操作。
4.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中,從所述高速緩存的數(shù)據(jù)單元的所述無效 狀態(tài)到所述未修改的非一致狀態(tài)的轉(zhuǎn)換不會引起所述數(shù)據(jù)處理系統(tǒng)的其他高速緩存內(nèi)的 查找操作,所述查找操作用于確定那些高速緩存是否包含對應(yīng)于正被寫入到所述數(shù)據(jù)單 元的數(shù)據(jù)的存儲器地址。
5.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中,當(dāng)所述高速緩存的數(shù)據(jù)單元處于所述未 修改的非一致狀態(tài)時,指向那個數(shù)據(jù)單元的偵聽事務(wù)不會導(dǎo)致那個數(shù)據(jù)單元的一致性狀 態(tài)的改變。
6.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中,響應(yīng)于在其中高速緩存未命中的數(shù)據(jù)被 寫入到所述高速緩存的數(shù)據(jù)單元的高速緩存未命中響應(yīng)于指示寫入到所述數(shù)據(jù)單元的數(shù)據(jù)不需要寫通的寫通需求屬性,進行從所述高 速緩存的數(shù)據(jù)單元的所述無效狀態(tài)到所述未修改的非一致狀態(tài)的轉(zhuǎn)換;響應(yīng)于指示寫入到所述高速緩存的所述數(shù)據(jù)單元的數(shù)據(jù)需要寫通的寫通需求屬性, 進行從所述高速緩存的數(shù)據(jù)單元的所述無效狀態(tài)到所述未修改的一致狀態(tài)的轉(zhuǎn)換。
7.如權(quán)利要求6所述的數(shù)據(jù)處理系統(tǒng),其中所述高速緩存未命中是寫入未命中;如果所述寫通需求屬性指示所述寫入未命中的數(shù)據(jù)需要寫通,則所述寫入未命中的 數(shù)據(jù)不在后續(xù)的回寫總線事務(wù)中被寫入到存儲器。
8.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中,所述高速緩存一致性狀態(tài)進一步包括修改的非一致狀態(tài),所述修改的非一致狀態(tài)指示修改了所述高速緩存的數(shù)據(jù)單元中 的數(shù)據(jù),并且不保證所述高速緩存的數(shù)據(jù)單元中的數(shù)據(jù)與所述數(shù)據(jù)處理系統(tǒng)的至少一個 其他存儲設(shè)備中的數(shù)據(jù)是一致的。
9.如權(quán)利要求8所述的數(shù)據(jù)處理系統(tǒng),其中,響應(yīng)于所述數(shù)據(jù)單元的數(shù)據(jù)的寫入命 中,進行從所述高速緩存的數(shù)據(jù)單元的所述未修改的非一致狀態(tài)到所述修改的非一致狀 態(tài)的轉(zhuǎn)換。
10.如權(quán)利要求9所述的數(shù)據(jù)處理系統(tǒng),其中當(dāng)處于所述未修改的一致狀態(tài)時,所述高速緩存的數(shù)據(jù)單元的數(shù)據(jù)的寫入命中產(chǎn)生 到所述存儲器的數(shù)據(jù)的寫通;當(dāng)處于所述未修改的非一致狀態(tài)時,所述高速緩存的數(shù)據(jù)單元的數(shù)據(jù)的寫入命中不 產(chǎn)生數(shù)據(jù)的寫通操作。
11.如權(quán)利要求8所述的數(shù)據(jù)處理系統(tǒng),其中,響應(yīng)于不帶有對于所述數(shù)據(jù)單元的無 效高速緩存操作命令的刷新高速緩存操作命令以及所述寫通需求屬性指示所述數(shù)據(jù)單元 的數(shù)據(jù)不需要寫通,進行從所述高速緩存的數(shù)據(jù)單元的所述修改的非一致狀態(tài)到所述未 修改的非一致狀態(tài)的轉(zhuǎn)換。
12.如權(quán)利要求8所述的數(shù)據(jù)處理系統(tǒng),其中,響應(yīng)于所述數(shù)據(jù)單元的刷新高速緩存 操作命令以及數(shù)據(jù)的所述寫通需求屬性指示所述數(shù)據(jù)需要寫通,進行從所述高速緩存的 數(shù)據(jù)單元的所述修改的非一致狀態(tài)到所述未修改的一致狀態(tài)的轉(zhuǎn)換。
13.如權(quán)利要求8所述的數(shù)據(jù)處理系統(tǒng),其中,當(dāng)數(shù)據(jù)單元的數(shù)據(jù)的寫通需求屬性指 示所述數(shù)據(jù)不需要寫通時,從所述高速緩存的所述數(shù)據(jù)單元的所述修改的非一致狀態(tài)到 所述無效狀態(tài)的轉(zhuǎn)換響應(yīng)于下述命令而進行不帶有對于所述數(shù)據(jù)單元的無效高速緩存操作命令的對所述數(shù)據(jù)單元的刷新高速緩 存操作命令,其中,響應(yīng)于所述刷新高速緩存操作命令,通過回寫總線事務(wù)將所述數(shù)據(jù) 寫入存儲器;或者對于所述數(shù)據(jù)單元的無效高速緩存操作命令。
14.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中,當(dāng)寫通需求屬性指示所述高速緩存的 數(shù)據(jù)單元的數(shù)據(jù)需要寫通時,響應(yīng)于不帶有對于所述數(shù)據(jù)單元的無效高速緩存操作命令 的對于所述數(shù)據(jù)單元的刷新高速緩存操作命令,進行從所述高速緩存的所述數(shù)據(jù)單元的 所述未修改的非一致狀態(tài)到所述未修改的一致狀態(tài)的轉(zhuǎn)換。
15.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中,當(dāng)寫通需求屬性指示所述數(shù)據(jù)不需要 寫通時,響應(yīng)于不帶有對于所述數(shù)據(jù)單元的無效高速緩存操作命令的對于所述數(shù)據(jù)單元 的刷新高速緩存操作命令,進行從所述高速緩存的數(shù)據(jù)單元的所述未修改的一致狀態(tài)到 所述未修改的非一致狀態(tài)的轉(zhuǎn)換。
16.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中,響應(yīng)于對于所述數(shù)據(jù)單元的無效高速 緩存操作命令,進行從所述高速緩存的數(shù)據(jù)單元的所述未修改的非一致狀態(tài)和所述未修 改的一致狀態(tài)中的每一個到所述無效狀態(tài)的轉(zhuǎn)換。
17.一種操作數(shù)據(jù)處理系統(tǒng)的方法,所述方法包括由第一主設(shè)備執(zhí)行數(shù)據(jù)的寫入事務(wù),所述寫入事務(wù)產(chǎn)生對所述數(shù)據(jù)處理系統(tǒng)的高速 緩存的寫入未命中,所述第一主設(shè)備可操作地耦接到系統(tǒng)互連,所述數(shù)據(jù)處理系統(tǒng)包括 第二主設(shè)備和可操作地耦接到所述系統(tǒng)互連的存儲器;響應(yīng)于所述寫入未命中,向所述高速緩存寫入數(shù)據(jù);如果所述寫入事務(wù)的所述數(shù)據(jù)的寫通需求屬性指示需要所述數(shù)據(jù)的寫通,則執(zhí)行到 所述存儲器的所述數(shù)據(jù)的寫通,其中,如果所述寫通需求屬性指示不需要所述數(shù)據(jù)的寫 通,則不執(zhí)行所述數(shù)據(jù)的寫通;如果所述寫通需求屬性指示需要所述數(shù)據(jù)的寫通,則在所述數(shù)據(jù)處理系統(tǒng)的至少一 個其他高速緩存中進行搜索,以確定所述至少一個其他高速緩存是否包含與所述寫入事 務(wù)相對應(yīng)的存儲器地址,其中,如果所述寫通需求屬性指示不需要所述數(shù)據(jù)的寫通,則 不在所述至少一個其他高速緩存中執(zhí)行搜索。
18.—種數(shù)據(jù)處理系統(tǒng),包括處理器,所述處理器包括高速緩存;第二主設(shè)備;存儲器,所述存儲器經(jīng)由系統(tǒng)互連而可操作地耦接到所述處理器和所述第二主設(shè)備;存儲器屬性邏輯,用于提供與所述存儲器的位置相關(guān)的多個屬性,其中,所述多個 屬性之一是寫通需求屬性;其中,所述高速緩存包括高速緩存控制器,所述高速緩存控制器包括為所述高速緩 存的數(shù)據(jù)單元實現(xiàn)一組高速緩存一致性狀態(tài)的電路,其中,所述高速緩存控制器使用所 述寫通需求屬性,用于確定所述存儲器內(nèi)的一個或多個位置是否需要存儲器一致性。
19.如權(quán)利要求18所述的數(shù)據(jù)系統(tǒng),進一步包括可操作地耦接到所述系統(tǒng)互連的高速緩存一致性管理器,其中,當(dāng)所述寫通需求屬 性指示寫入事務(wù)需要所述存儲器一致性時,所述高速緩存一致性管理器指示所述數(shù)據(jù)系 統(tǒng)的其他高速緩存針對所述寫入事務(wù)的存儲器地址執(zhí)行高速緩存一致性查找操作。
20.如權(quán)利要求19所述的數(shù)據(jù)系統(tǒng),其中,當(dāng)所述寫通需求屬性指示所述寫入事務(wù)不 需要所述存儲器一致性時,在所述數(shù)據(jù)系統(tǒng)中不針對所述寫入事務(wù)執(zhí)行存儲器一致性事 務(wù)。
全文摘要
一種數(shù)據(jù)處理系統(tǒng)(10)包括具有高速緩存(28)的第一主設(shè)備(14);第二主設(shè)備(16或22);經(jīng)由系統(tǒng)互連而可操作地耦接到第一主設(shè)備和第二主設(shè)備的存儲器(20)。所述高速緩存包括為該高速緩存的數(shù)據(jù)單元實現(xiàn)一組高速緩存一致性狀態(tài)(102,104,108,106)的高速緩存控制器(29)。所述高速緩存一致性狀態(tài)包括無效狀態(tài)(102);未修改的非一致狀態(tài)(104),該狀態(tài)指示沒有修改所述高速緩存的數(shù)據(jù)單元的數(shù)據(jù),并且不保證所述高速緩存的數(shù)據(jù)單元的數(shù)據(jù)與數(shù)據(jù)處理系統(tǒng)的至少一個其他存儲設(shè)備中的數(shù)據(jù)是一致的;以及未修改的一致狀態(tài)(106),該狀態(tài)指示沒有修改該數(shù)據(jù)單元的數(shù)據(jù),并且該數(shù)據(jù)單元的數(shù)據(jù)與所述數(shù)據(jù)處理系統(tǒng)的至少一個其他存儲設(shè)備中的數(shù)據(jù)是一致的。
文檔編號G06F9/06GK102016790SQ200980115765
公開日2011年4月13日 申請日期2009年2月23日 優(yōu)先權(quán)日2008年4月30日
發(fā)明者威廉·C·莫耶 申請人:飛思卡爾半導(dǎo)體公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1