專利名稱:數(shù)據(jù)處理設(shè)備中對共享存儲器的寫訪問請求的處理的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理設(shè)備中對共享存儲器的寫訪問請求的處理。
背景技術(shù):
提供多處理系統(tǒng),其中例如處理器核的兩個或更多處理單元共享 對共享存儲器的訪問,這已為人所熟知。通過設(shè)置不同的處理器核并 行運行各自的數(shù)據(jù)處理操作,此類系統(tǒng)一般用于得到更高的性能。提
供此類多處理能力的已知數(shù)據(jù)處理系統(tǒng)包括IBM370系統(tǒng)和SPARC 多處理系統(tǒng)。這些特殊的多處理系統(tǒng)是高性能系統(tǒng),其中,幾乎不關(guān) 心功率效率和功率消耗,而主要目的是最大處理速度。
為進一步加快此類多處理系統(tǒng)內(nèi)對數(shù)據(jù)的訪問速度,為每個處理 單元在其中提供其自己的本地高速緩存以存儲保存在共享存儲器中 的數(shù)據(jù)的子集,這已為人所熟知。雖然這能加快對數(shù)據(jù)的訪問數(shù)據(jù), 但它使數(shù)據(jù)一致性的問題變得復(fù)雜。具體而言,將理解,如果特定處 理器執(zhí)行有關(guān)在其本地高速緩存中保存的數(shù)據(jù)值的寫操作,則該數(shù)據(jù) 值將在高速緩存內(nèi)本地更新,但可能不一定同時在共享存儲器中也更 新。具體而言,如果所述數(shù)據(jù)值涉及存儲器的回寫(writeback)區(qū)域, 則只有當隨后從高速緩存清除該數(shù)據(jù)值時,高速緩存中的更新的數(shù)據(jù) 值才會存儲回共享存儲器。
由于數(shù)據(jù)可與其它處理器共享,因此,重要的是確保那些處理器 在尋求訪問共享存儲器中相關(guān)聯(lián)的地址時將訪問最新的數(shù)據(jù)。為確保 這種情況發(fā)生,在多處理系統(tǒng)內(nèi)采取高速緩存一致性協(xié)議以確保在特 定處理器更新其本地高速緩存中保存的數(shù)據(jù)值時,將使得該最新的數(shù) 據(jù)可用于隨后請求訪問該數(shù)據(jù)的任何其它處理器,這已為人所熟知。根據(jù)一個典型的高速緩存一致性協(xié)議,處理器執(zhí)行的某些訪問將 要求執(zhí)行一致性操作。 一致性操作將使通知發(fā)送到其它處理器,標識 正在發(fā)生的訪問類型和正在訪問的地址。這將4吏那些其它處理器執(zhí)行 高速緩存一致性協(xié)議定義的某些動作,并且在一些情況下也可產(chǎn)生某 些信息,這些信息從一個或多個那些處理器反饋回啟動要求一致性操 作的訪問的處理器。通過此類技術(shù),在各自本地高速緩存中保存的數(shù) 據(jù)一致性得以維護,從而確保了每個處理器訪問最新的數(shù)據(jù)。 一個此
類高速緩存一致性協(xié)議是"修改、獨占、共享、無效"(MESI)高速緩存 一致性協(xié)議。
如果能保證特定的數(shù)據(jù)段只由處理器之一獨占使用,則在該處理 器訪問該數(shù)據(jù)時,將不要求一致性操作。然而,在典型的多處理系統(tǒng) 中,多數(shù)數(shù)據(jù)在處理器之間共享,這是因為數(shù)據(jù)一般歸類為共享數(shù)據(jù), 或者是因為多處理系統(tǒng)允許在處理器之間的進程遷移,或者實際上允 許特定進程并行在多個處理器上運行,結(jié)果是即使專用于特定進程的 數(shù)據(jù)也不能保證由特定處理器獨占使用。
雖然高速緩存一致性協(xié)議的使用能用于確保每個處理單元訪問最 新的數(shù)據(jù),但在具有多個處理單元共享存儲器的系統(tǒng)內(nèi),仍有某些類 型的訪問的處理能變得極為復(fù)雜。例如,如果共享存儲器的某個區(qū)域 指定為通寫(writethrough)區(qū)域,并且特定的處理單元對共享存儲器 的該通寫區(qū)域發(fā)出寫訪問請求,則在與引發(fā)該寫訪問請求的該處理單 元相關(guān)聯(lián)的高速緩存中執(zhí)行任何更新的同時,必須更新存儲器。在多 處理器系統(tǒng)中執(zhí)行此類更新引入許多危害。要使得能夠發(fā)生正確的行 為,相關(guān)聯(lián)本地高速緩存的高速緩存控制邏輯要求另外的邏輯以確保 對高速緩存和共享存儲器的更新原子地發(fā)生,但另外的邏輯將增大其 復(fù)雜性的和/或在訪問高速緩存中引入相當大的延遲。原子操作必須以 整體執(zhí)行而無任何介入的讀或?qū)懖僮?,使得防止在更新操作進行的同 時對相同數(shù)據(jù)位置進行任何其它讀或?qū)懺L問。
作為在處理對共享存儲器的通寫區(qū)域的寫訪問請求時能發(fā)生的危害類型的示例,考慮第 一寫在高速緩存中引起命中并且正由高速緩存一致性邏輯處理,因此在處理器核內(nèi)保持未決的情況。在該處理在進行的同時,對與第一寫相鄰位置的第二寫^皮發(fā)出。第一寫仍在未決時處理第二寫的標準方式是在適當時合并兩次訪問。大多數(shù)情況下這是為了節(jié)省功率(當一致性邏輯已經(jīng)完成其工作時只會對高速緩存進行一次寫)和提高性能(兩次寫的合并允許單個"時隙(slot)"用于兩次存儲器訪問,因此為 一些隨后的存儲器訪問釋放一些資源)。
然而,如果這些寫的目標是某一可共享的存儲器區(qū)域,則此合并不應(yīng)進行,因為它可能導(dǎo)致第一寫被一致性邏輯發(fā)出兩次。在第一寫已經(jīng)^皮處理,并且存儲器已更新時,第二寫應(yīng)仍由一致性邏輯處理以便至少更新存儲器。由于兩次寫已合并在一起,因此,第二一致性動作(和第二存儲器更新)實際上將由兩次寫的合并組成,并且因此第一寫將對存儲器重復(fù)進行。這違反了任何存儲器排序模型,因而被禁止。
為防止這種雙重寫,第一方案在于增加一些邏輯(因此增加一定的復(fù)雜性)以防止此類合并。避免此復(fù)雜性增加的其它可能的方案在于即使在標準情況下也阻止此類合并發(fā)生對性能和功率消耗的影響。
給定由提供這種一致性通寫寫訪問引入的另外復(fù)雜性和危害,提供具高速緩存一致功能的處理器的許多系統(tǒng)不太可能想要支持此類行為,并且因此一個選擇是不允許對共享存儲器進行通寫寫訪問。然而,即使釆取了此類主張,但仍有其它類型的訪問引入類似的危害。具體而言,特定處理器或在該處理器上運行的特定進程可將共享存儲器的某個區(qū)域指定為不可高速緩存的,并且可關(guān)于該不可高速緩存的區(qū)域執(zhí)行寫訪問??杉僭O(shè)對于不可高速緩存的寫訪問,無需在高速緩存中執(zhí)行任何查找。然而,如果處理器使用不可高速緩存的存儲器區(qū)域,則這只意味著處理器本身不將與該不可高速緩存的區(qū)域有關(guān)的任何數(shù)據(jù)分配到高速緩存中。然而,包括也能夠訪問本地高速緩存的緊密耦合的協(xié)處理器等系統(tǒng)中的其它處理器,可具有不同的存儲器視
8圖,并且具體而言對于一個處理器^L為不可高速緩存的區(qū)域,另一個處理器可能不將其視為不可高速緩存的。此外,不同的存儲器映射可由在同一處理器內(nèi)運行的不同進程使用,并且因此不可高速緩存的寫訪問請求的主題數(shù)據(jù)可能實際上駐留在高速緩存內(nèi)。
結(jié)果,在處理對共享存儲器的不可高速緩存的寫訪問時, 一般必須在高速緩存中執(zhí)行查找,并且結(jié)果能夠理解必須處理的行為極其類似于更早所述一致性通寫寫訪問。因此,即使決定不支持對共享存儲器的一致性通寫寫訪問,仍必須提供一些能力來處理不可高速緩存的共享寫訪問。然而,引入此類能力在引入的另外復(fù)雜性和/或產(chǎn)生的另外訪問延遲方面代價極高,特別是在不可高速緩存的共享寫訪問在高速緩存中產(chǎn)生命中的實際可能性極低時,這是經(jīng)常發(fā)生的。
因此,最好是提供一種更具成本效益的解決方案,以實現(xiàn)要求更新與引發(fā)處理單元相關(guān)聯(lián)的高速緩存和共享存儲器兩者的類型的寫-沐問^貪求的正確的4亍為。
發(fā)明內(nèi)容
從第一方面來看,本發(fā)明提供一種數(shù)據(jù)處理設(shè)備,包括多個處理單元,可操作以執(zhí)行要求對共享存儲器中的數(shù)據(jù)的訪問的數(shù)據(jù)處理操作;每個處理單元具有與其相關(guān)聯(lián)的高速緩存,高速緩存可操作以存儲所述數(shù)據(jù)的子集以供該處理單元訪問;高速緩存一致性邏輯,采用高速緩存一致性協(xié)議以確保由每個處理單元訪問的數(shù)據(jù)是最新的;每個處理單元可操作以在輸出用于存儲在所述共享存儲器中的數(shù)據(jù)值時發(fā)出寫訪問請求,在寫訪問請求是屬于要求更新相關(guān)聯(lián)的高速緩存和共享存儲器兩者的類型時,在高速緩存一致性邏輯內(nèi)啟動一致性操作;高速緩存一致性邏輯可操作以執(zhí)行有關(guān)與多個處理單元相關(guān)聯(lián)的高速緩存的 一致性操作,所述高速緩存包括與發(fā)出寫訪問請求的處理單元相關(guān)聯(lián)的高速緩存,以便確保在那些高速緩存中的數(shù)據(jù)保持一致;以及高速緩存一致性邏輯還可操作以將有關(guān)寫訪問請求的主題數(shù)據(jù)值的更新請求發(fā)出到所述共享存儲器。
根據(jù)本發(fā)明,通過使用已經(jīng)提供的高速緩存一致性邏輯,實現(xiàn)了有效處理要求更新相關(guān)聯(lián)的高速緩存和共享存儲器兩者的類型的寫訪問請求的能力,以確保數(shù)據(jù)處理設(shè)備中與其它處理單元相關(guān)聯(lián)的高速緩存中的數(shù)據(jù)保持最新。具體而言,在引發(fā)處理單元發(fā)出要求更新相關(guān)聯(lián)的高速緩存和共享存儲器兩者的類型的寫訪問請求時,在一致性邏輯中啟動一致性操作。除執(zhí)行有關(guān)與系統(tǒng)內(nèi)其它處理單元相關(guān)聯(lián)的高速緩存的一致性操作的高速緩存一致性邏輯的慣常作業(yè)外,高速緩存一致性邏輯還執(zhí)行有關(guān)與引發(fā)處理單元相關(guān)聯(lián)的高速緩存的一致性操作,作為其結(jié)果,所有那些高速緩存中的數(shù)據(jù)變得一致。高速緩存一致性邏輯也設(shè)置成將有關(guān)寫訪問請求的主題數(shù)據(jù)值的更新請求發(fā)出到共享存儲器,由此確保對共享存儲器的所需更新發(fā)生。
作為此類方案的結(jié)果,引發(fā)處理單元能將寫訪問請求視為不要求高速緩存查找的寫訪問請求,并且高速緩存一致性邏輯轉(zhuǎn)而設(shè)置成執(zhí)行一致性操作,并且具體而言設(shè)置成在執(zhí)行該一致性操作時包括與引發(fā)處理單元相關(guān)聯(lián)的高速緩存。因此,通過實際上以原子方式執(zhí)行高速緩存更新和存儲器更新,這避免了在其它情況下51發(fā)處理單元與其相關(guān)聯(lián)的高速緩存組合自己嘗試和實現(xiàn)請求的行為時將發(fā)生的另外復(fù)雜性和/或高速緩存訪問懲罰。相反,由于高速緩存一致性邏輯其性質(zhì)將已經(jīng)能夠避免發(fā)生可能的危害,因此,它能夠?qū)⒏咚倬彺娓屡c所需的共享存儲器更新分開,同時仍實現(xiàn)將由引發(fā)處理單元發(fā)起的原子更新產(chǎn)生的相同行為。
因此,本發(fā)明通過允許處理單元以簡單的方式處理寫訪問請求,并調(diào)用高速緩存 一 致性邏輯的固有能力以為此類寫訪問實現(xiàn)所需行為,對需要更新相關(guān)聯(lián)的高速緩存和共享存儲器兩者的情況下處理對共享存儲器的寫訪問請求的問題提供了更精致和簡單的解決方案。
存在各種類型的寫訪問請求可要求更新相關(guān)聯(lián)的高速緩存和共享存儲器兩者。在一個實施例中, 一種類型的此寫訪問請求是對共享存儲器的不可高速緩存的寫訪問請求。備選地或附加地,能通過使用上述技術(shù)得到支持的另 一類型的寫訪問請求是對共享存儲器的通寫寫訪問請求。
高速緩存一致性邏輯執(zhí)行的一致性操作能采用多種形式。在一個實施例中,在執(zhí)行高速緩存一致性操作時,高速緩存一致性邏輯將一致性請求信號發(fā)出到與多個處理單元相關(guān)聯(lián)的每個高速緩存, 一致性請求信號標識與寫訪問請求的主題數(shù)據(jù)值相關(guān)聯(lián)的地址。因此,在此類實施例中,與各種處理單元相關(guān)聯(lián)的所有高速緩存要進行一致性檢查。然而,在備選實施例中,在執(zhí)行一致性操作時,高速緩存一致性邏輯可操作以應(yīng)用過濾操作,確定將一致性請求發(fā)出到哪些高速緩存,并隨后將一致性請求信號發(fā)出到所確定的高速緩存, 一致性請求信號標識與寫訪問請求的主題數(shù)據(jù)值相關(guān)聯(lián)的地址。在此類實施例中,為高速緩存一致性邏輯提供了允許它過濾一致性請求的另外特性,并且具體而言,過濾操作一般將各種高速緩存的內(nèi)容的一些認識考慮在內(nèi)以便決定哪些高速緩存需要進行一致性檢查。此類方案通過避免執(zhí)行不必要的 一致性檢查而能產(chǎn)生功率節(jié)省。
根據(jù)本發(fā)明的實施例,當引發(fā)處理單元發(fā)出要求更新相關(guān)聯(lián)的高速緩存和共享存儲器兩者的類型的寫訪問請求時,則在使高速緩存一致性邏輯啟動 一致性操作前,處理單元無需在高速緩存中執(zhí)行查找。然而,在一些實施例中,由于其它原因,處理單元仍可選擇執(zhí)行高速緩存查找。然而,在本發(fā)明的一個特定實施例中, 一致性操作在高速緩存一致性邏輯內(nèi)啟動而無需在與引發(fā)處理單元相關(guān)聯(lián)的高速緩存中執(zhí)行高速緩存查找。
與每個處理單元相關(guān)聯(lián)的高速緩存可采用多種形式。具體而言,某些處理單元可共享此類高速緩存。然而,在一個實施例中,對待每個處理單元,與其相關(guān)聯(lián)的高速緩存是只與該處理單元相關(guān)聯(lián)的本地高速緩存。此類高速緩存一般稱為一級高速緩存。
在一個實施例中,每個高速緩存提供為只用于存儲數(shù)據(jù)值的數(shù)據(jù)高速緩存,并且單獨的指令高速緩存一般將提供用于存儲要由相關(guān)聯(lián) 處理單元運行的指令。然而,在備選實施例中,高速緩存能夠是存儲 指令和數(shù)據(jù)兩者的統(tǒng)一 高速緩存。
共享存儲器可采用多種形式,并且因此在一個實施例中,可以是 其全部地址空間共享的特定存儲器裝置。然而,在備選實施例中,共 享存儲器是存儲器的共享存儲器區(qū)域,并且一般此類存儲器也具有其 它區(qū)域,這些區(qū)域具有與其相關(guān)聯(lián)的不同屬性,并因此例如可以歸類 為非共享的。存儲器系統(tǒng)通常將由多個存儲器裝置組成,所有裝置是
一個或多個存儲器區(qū)域或區(qū)的一部分。例如,位于地址0和有1024 個字(1K字)寬的存儲區(qū)可實際上在多個存儲器裝置中提供,例如 在四個存儲器裝置MO到M3中提供。M0能設(shè)置成在位置0、 4、 8、 12……存儲數(shù)據(jù),Ml能設(shè)置成在位置l、 5、 9、 13……存儲數(shù)據(jù),而 不是讓M0在位置0-255存儲數(shù)據(jù),Ml在位置256到511存儲數(shù)據(jù)等。
處理單元能采用多種形式,但在一個實施例中,那些處理單元至 少之一是處理器核。雖然在一個實施例中,所有處理單元可以是處理 器核,但在備選實施例中, 一個或多個處理單元可采用其它裝置的形 式,例如,數(shù)字信號處理器(DSP)、硬件加速器等。
高速緩存一致性協(xié)議可釆用多種形式,但在一個實施例中,高速 緩存一致性協(xié)議是基于探聽的高速緩存一致性協(xié)議。根據(jù)此類高速緩 存一致性協(xié)議,系統(tǒng)中的每個處理裝置(處理裝置例如是單個處理單 元,或者單個處理單元與其相關(guān)聯(lián)的高速緩存的組合)可設(shè)置成探聽 在共享總線上發(fā)生的活動,并依據(jù)從中獲得的信息執(zhí)行任何所需的一 致性動作。在此類實施例中,高速緩存一致性邏輯將一般^L為由與每 個處理裝置相關(guān)聯(lián)的多個分立元件形成。
從第二方面來看,本發(fā)明提供一種用于在數(shù)據(jù)處理設(shè)備中使用的 高速緩存一致性邏輯,數(shù)據(jù)處理設(shè)備具有用于執(zhí)行要求對共享存儲器 中的數(shù)據(jù)的訪問的數(shù)據(jù)處理操作的多個處理單元,每個處理單元具有 與其相關(guān)聯(lián)的高速緩存以用于存儲所述數(shù)據(jù)的子集以供該處理單元
12訪問,高速緩存一致性邏輯采用高速緩存一致性協(xié)議以確保由每個處 理單元訪問的數(shù)據(jù)是最新的,每個處理單元可操作以在輸出用于存儲 在所述共享存儲器中的數(shù)據(jù)值時發(fā)出寫訪問請求,在寫訪問請求是屬 于要求更新相關(guān)聯(lián)的高速緩存和共享存儲器兩者的類型時,高速緩存
一致性邏輯可操作以啟動 一致性操作;高速緩存一致性邏輯可操作以 執(zhí)行有關(guān)與多個處理單元相關(guān)聯(lián)的高速緩存的一致性操作,高速緩存 包括與發(fā)出寫訪問請求的處理單元相關(guān)聯(lián)的高速緩存,以便確保在那 些高速緩存中的數(shù)據(jù)保持一致;以及高速緩存一致性邏輯還可操作以 將有關(guān)寫訪問請求的主題數(shù)據(jù)值的更新請求發(fā)出到所述共享存儲器。
從第三方面來看,本發(fā)明提供一種在數(shù)據(jù)處理設(shè)備中處理對共享 存儲器的寫訪問請求的方法,數(shù)據(jù)處理設(shè)備包括用于執(zhí)行要求對所述 共享存儲器中的數(shù)據(jù)的訪問的數(shù)據(jù)處理操作的多個處理單元,每個處 理單元具有與其相關(guān)聯(lián)的高速緩存以用于存儲所述數(shù)據(jù)的子集以供 該處理單元訪問,所述方法包括以下步驟在輸出用于存儲在所述共 享存儲器中的數(shù)據(jù)值時,從處理單元發(fā)出寫訪問請求;在寫訪問請求 是屬于要求更新相關(guān)聯(lián)的高速緩存和共享存儲器兩者的類型時,在高 速緩存一致性邏輯內(nèi)啟動一致性才喿作,高速緩存一致性邏輯采用高速 緩存一致性協(xié)議以確保由每個處理單元訪問的數(shù)據(jù)是最新的;執(zhí)行有 關(guān)與多個處理單元相關(guān)聯(lián)的高速緩存的一致性操作,所述高速緩存包 括與發(fā)出寫訪問請求的處理單元相關(guān)聯(lián)的高速緩存,以便確保在那些 高速緩存中的數(shù)據(jù)保持一致;以及將有關(guān)寫訪問請求的主題數(shù)據(jù)值的 更新請求發(fā)出到所述共享存儲器。
從第四方面來看,本發(fā)明提供一種數(shù)據(jù)處理設(shè)備,包括多個處 理部件,用于執(zhí)行要求對共享存儲器部件中的數(shù)據(jù)的訪問的數(shù)據(jù)處理 操作;每個處理部件具有與其相關(guān)聯(lián)的高速緩存部件以用于存儲所述 數(shù)據(jù)的子集以供該處理部件訪問;高速緩存一致性部件,用于采用高 速緩存一致性協(xié)議以確保由每個處理部件訪問的數(shù)據(jù)是最新的;每個 處理部件用于在輸出用于存儲在共享存儲器部件中的數(shù)據(jù)值時發(fā)出寫訪問請求,在寫訪問請求是屬于要求更新相關(guān)聯(lián)的高速緩存部件和 共享存儲器部件兩者的類型時,在高速緩存一致性部件內(nèi)啟動 一致性
操作;高速緩存一致性部件用于執(zhí)行有關(guān)與多個處理部件相關(guān)聯(lián)的高 速緩存部件的 一致性操作,所述高速緩存部件包括與發(fā)出寫訪問請求 的處理部件相關(guān)聯(lián)的高速緩存部件,以便確保在那些高速緩存部件中 的數(shù)據(jù)保持一致;以及高速緩存一致性部件還用于將有關(guān)寫訪問請求 的主題數(shù)據(jù)值的更新請求發(fā)出到共享存儲器部件。
本發(fā)明將參照如附圖所示的其實施例,只通過示例方式做進一步 描述,其中
圖1A是根據(jù)本發(fā)明第一實施例的數(shù)據(jù)處理設(shè)備的框圖; 圖1B是根據(jù)本發(fā)明第二實施例的數(shù)據(jù)處理設(shè)備的框圖; 圖2是示意示出可在圖1A和IB的數(shù)據(jù)處理設(shè)備內(nèi)采用的高速緩
存一致性協(xié)議的圖3是框圖,更詳細地示出根據(jù)本發(fā)明一個實施例在圖1A和IB
所示凄t據(jù)高速*爰存內(nèi)提供的組件;
圖4是流程圖,示出根據(jù)本發(fā)明一個實施例為處理寫訪問請求而
執(zhí)行的處理;以及
圖5是根據(jù)本發(fā)明另 一個實施例的數(shù)據(jù)處理設(shè)備的圖。
具體實施例方式
圖1A是包括經(jīng)一致總線結(jié)構(gòu)(bus fabric) 50與共享存儲器區(qū)域 60耦合的多個處理器20、 30、 40的數(shù)據(jù)處理設(shè)備10的框圖。每個處 理器20、 30、 40包括分別與相關(guān)聯(lián)本地高速緩存24、 34、 44耦合的 處理器核22、 32、 42,每個高速緩存用于存儲在共享存儲器60中保 存的數(shù)據(jù)的子集以便加快相關(guān)聯(lián)處理器對該數(shù)據(jù)的訪問速度。在一個 實施例中,每個高速緩存24、 34、 44是用于存儲由相關(guān)聯(lián)處理器核
1422、 32、 42使用的數(shù)據(jù)值的數(shù)據(jù)高速緩存,并且單獨的指令高速緩存 一般將提供(圖1A中未示出)以用于緩存由處理器核要求的指令。
一致總線結(jié)構(gòu)50由總線互連裝置與高速緩存一致性邏輯組成,高 速緩存一致性邏輯用于應(yīng)用高速緩存一致性協(xié)議以便確保在各本地 高速緩存24、 34、 44中保存的數(shù)據(jù)保持最新。具體而言,高速緩存 一致性邏輯將確保當一個處理器更新其本地高速緩存中的數(shù)據(jù)時,與 其它處理器相關(guān)聯(lián)的高速緩存中該數(shù)據(jù)的任何副本將在那些本地高 速緩存中適當?shù)剡M行更新或者無效以確保一致性。在一個實施例中, 使用的高速緩存一致性協(xié)議是MESI高速緩存一致性協(xié)議,這將在后 面參照圖2進行更詳細的描述。
存儲器60可完全形成為共享存儲器,或備選地可視為由多個存儲 器區(qū)域組成,那些區(qū)域中至少一個區(qū)域是共享存儲器區(qū)域,其中處理 器20、 30、 40能存儲可在那些處理器中共享的數(shù)據(jù)。
圖1B是根據(jù)本發(fā)明第二實施例的數(shù)據(jù)處理設(shè)備100的框圖。根 據(jù)此實施例,高速緩存一致性邏輯不形成為一致總線結(jié)構(gòu)的一部分, 而是單獨的高速緩存一致性邏輯126、 136、 146在每個處理器內(nèi)提供, 并且各個處理器經(jīng)總線互連150與存儲器60耦合。如同以前一樣, 每個處理器120、 130、 140包括耦合到相關(guān)聯(lián)的本地數(shù)據(jù)高速緩存124、 134、 144的處理器核122、 132、 142。
根據(jù)圖1B的實施例,每個高速緩存一致性邏輯設(shè)置成探聽其它 處理器出現(xiàn)在總線互連150上的活動,并基于作為此類探聽的結(jié)果而 接收的信息確定是否需要與相關(guān)聯(lián)數(shù)據(jù)高速緩存有關(guān)的任何一致性 操作,以便保持該數(shù)據(jù)高速緩存的內(nèi)容一致。因此,通過示例,如果 處理器核二 132發(fā)出與數(shù)據(jù)高速緩存134中存儲的數(shù)據(jù)值有關(guān)的寫訪 問請求,產(chǎn)生該數(shù)據(jù)高速緩存中的相關(guān)高速緩存行的內(nèi)容被更新,則 高速緩存一致性邏輯136將發(fā)出通知到總線互連150上,以標識此更 新在進行,并且其它處理器120、 140中的每個高速緩存一致性邏輯 單元126、 146將觀察到此通知,并執(zhí)行有關(guān)相關(guān)聯(lián)數(shù)據(jù)高速緩存124、
15144的任何所需一致性操作。在一個實施例中,這可涉及在數(shù)據(jù)也存 儲在相關(guān)聯(lián)數(shù)據(jù)高速緩存中時使相關(guān)高速緩存行無效,或者備選地執(zhí) 行所需更新。當此類探聽操作用于實現(xiàn)高速緩存一致性時,數(shù)據(jù)處理 設(shè)備經(jīng)常被稱為采用基于探聽的高速緩存一致性協(xié)議。正如前面所述 圖1A —樣,在一個實施例中,采用的實際高速緩存一致性協(xié)議是 MESI高速緩存一致性協(xié)議。
圖2是示出稱為MESI高速緩存一致性協(xié)議的特定類型高速緩存 一致性協(xié)議的狀態(tài)轉(zhuǎn)換圖,并且在一個實施例中,MESI高速緩存一 致性協(xié)議在圖1A或1B的數(shù)據(jù)處理設(shè)備10、 100內(nèi)使用。如圖2所示, 高速緩存的每個高速緩存行能夠在四種狀態(tài)之一中存在,即I (無效) 狀態(tài)、S (共享)狀態(tài)、E (獨占)狀態(tài)或M (修改)狀態(tài)。如果高速 緩存行無效,則I狀態(tài)存在,如果高速緩存行包含也在其它處理器的 高速緩存中保存的數(shù)據(jù),則S狀態(tài)存在,如果高速緩存行包含不在其 它處理器的高速緩存中保存的數(shù)據(jù),則E狀態(tài)存在,以及如果高速緩 存行包含修改的數(shù)據(jù),則M狀態(tài)存在。
圖2示出由于各種讀或?qū)懖僮鞫砂l(fā)生的狀態(tài)轉(zhuǎn)換。本地讀或?qū)?操作是高速緩存駐留其中的處理器發(fā)起的讀或?qū)懖僮?,而遠程讀或?qū)?操作由在數(shù)據(jù)處理設(shè)備的其它處理器之一上進行的且由一致性請求 標識的讀或?qū)懖僮鳟a(chǎn)生。
從圖2應(yīng)注意到,多個讀和寫活動不要求執(zhí)行任何一致性操作, 但有一定數(shù)量的讀和寫操作確實要求執(zhí)行一致性操作。具體而言,如 果高速緩存駐留其中的處理器執(zhí)行本地讀操作,產(chǎn)生高速緩存未命 中,則這將導(dǎo)致對高速緩存的特定高速緩存行執(zhí)行行填充過程,并且 高速緩存行的狀態(tài)將隨后從設(shè)有I比特更改為設(shè)有S或E比特。為了 決定應(yīng)設(shè)定S比特還是E比特,處理器需要對可能已經(jīng)本地緩存在所 討論的地址的數(shù)據(jù)的任何其它處理器發(fā)起一致性操作,并在選擇是否 設(shè)定S比特或E比特前等待該一致性操作的結(jié)果。如果可能緩存在所 討論的地址的數(shù)據(jù)的其它處理器均未緩存該數(shù)據(jù),則能夠設(shè)定E比特,而其它情況下應(yīng)設(shè)定S比特。應(yīng)注意的是,如果設(shè)定E比特,而且另 一處理器隨后向其高速緩存執(zhí)行有關(guān)該相同地址的數(shù)據(jù)的本地讀,這 將被其E比特之前已設(shè)定的高速緩存視為遠程讀,并且如圖2所示將 促使發(fā)生轉(zhuǎn)換,使得E比特被清除,并且S比特被設(shè)定。
還如圖2所示,本地寫過程將產(chǎn)生高速緩存的高速緩存行中保存 的數(shù)據(jù)值的更新,并且將相應(yīng)地促使M比特被設(shè)定。如果M比特的 設(shè)定是由于從設(shè)定的I比特(在高速緩存未命中之后是高速緩存行分 配并隨后是寫^喿作的情況下)的轉(zhuǎn)換或者從設(shè)定的S比特狀態(tài)轉(zhuǎn)換而 發(fā)生,則同樣地,需要由處理器發(fā)起一致性操作。在此情況下,該處 理器無需從要進行一致性操作的處理器接收任何反饋,但那些處理器 需要采取關(guān)于其自己的高速緩存的任何所需動作,其中寫將被視為遠 程寫過程。應(yīng)注意的是,如果在其E比特設(shè)定的高速緩存行中發(fā)生本 地寫,則E比特能被清除,并且M比特被設(shè)定而不發(fā)起任何一致性 操作,這是因為在執(zhí)行寫時,已知在該地址的數(shù)據(jù)未在任何其它處理 器的高速緩存中緩存。
圖3是框圖,示出根據(jù)本發(fā)明的一個實施例在圖1A和IB所示的 每個數(shù)據(jù)高速緩存內(nèi)提供的組件。數(shù)據(jù)高速緩存200經(jīng)裝載/存儲單元 (LSU) 210與相關(guān)聯(lián)處理器核耦合,并且設(shè)置成從該相關(guān)聯(lián)處理器核 接收讀和寫訪問請求。如果發(fā)生讀訪問請求,則該訪問請求能夠直接 轉(zhuǎn)發(fā)到高速緩存陣列230以使得能夠執(zhí)行查找過程,以便確定請求的 數(shù)據(jù)值是否在高速緩存陣列中,如果在高速緩存陣列中,則該數(shù)據(jù)值 經(jīng)LSU210被路由回處理器核。如果高速緩存未命中,則行填充請求 經(jīng)總線接口 250轉(zhuǎn)發(fā)到總線互連邏輯,以促使包括關(guān)注數(shù)據(jù)值的高速 緩存行的數(shù)據(jù)價值(worth of data)從存儲器60被檢索以便存儲在高 速緩存陣列230中,隨后,所需的數(shù)據(jù)值經(jīng)LSU210返回到處理器核。
對于寫訪問請求,這些請求被轉(zhuǎn)發(fā)到存儲緩沖器220,隨后從中 對它們進行處理。具體而言,對于可高速緩存的訪問請求,存儲緩沖 器可經(jīng)路徑222在高速緩存陣列230中啟動查找,以確定寫訪問請求主題數(shù)據(jù)值是否在高速緩存陣列內(nèi),并且如果在高速緩存陣列內(nèi),則
將在高速緩存陣列230的高速緩存行中執(zhí)行更新。如果高速緩存未命 中,則行填充過程將由存儲緩沖器220經(jīng)總線接口 250調(diào)用,以促使 高速緩存行的數(shù)據(jù)價值從存儲器被檢索以便存儲在高速緩存陣列中, 隨后寫更新能夠在高速緩存陣列內(nèi)進行。備選地,高速緩存行的數(shù)據(jù) 價值從存儲器接收到位于總線接口 250內(nèi)的行填充緩沖器中,寫更新 隨后與行填充緩沖器中的該數(shù)據(jù)合并,并且數(shù)據(jù)行隨后將在高速緩存 陣列230中分配。
一致性處理程序240也提供用于從高速緩存一致性邏輯接收一致 性請求,并隨后發(fā)起有關(guān)高速緩存陣列230中相關(guān)行的所需一致性維 護操作。 一般情況下,從高速緩存一致性邏輯接收的一致性請求將標 識發(fā)起一致性操作的訪問類型和訪問請求主題數(shù)據(jù)值的地址,以便使 得一致性處理程序240能夠標識相關(guān)數(shù)據(jù)值是否存儲在高速緩存陣列 230內(nèi),并且如果在高速緩存陣列內(nèi),則釆取適當?shù)膭幼?例如如前 面參照圖2關(guān)于MESI協(xié)議所示)。
如果作為 一致性維護操作的結(jié)果,高速緩存行需要從高速緩存陣 列230清除,則一致性處理程序240能夠與總線接口 250通信以便促 使所需清除發(fā)生。
如前面所述,某些類型的寫訪問請求要求更新相關(guān)聯(lián)高速緩存和 共享存儲器兩者,此類訪問請求的示例是不可高速緩存的寫訪問請求 和通寫寫訪問請求。如果此類訪問請求要由相關(guān)處理器正確處理,則
這將大大增大存儲緩沖器220的復(fù)雜性,這是因為存儲緩沖器將需要 在共享存儲器60中正在進行更新的同時維護其關(guān)于寫訪問請求主題 數(shù)據(jù)值的記錄,并且與存儲器中更新同步在高速緩存陣列230中執(zhí)行 更新以便確保更新在共享存儲器60和高速緩存陣列230中原子地進 行。只有在此原子更新已發(fā)生后,存儲緩沖器才能丟棄該記錄,并繼 續(xù)處理另一個寫請求。因此,不但涉及到另外的復(fù)雜性,而且在訪問 高速緩存陣列230方面會發(fā)生相當大的性能影響。通過在存儲緩沖器內(nèi)提供其它邏輯,將可能在存儲器中正在進行更新的同時只鎖定高速
緩存陣列230中的相關(guān)高速緩存行(而不是整個高速緩存陣列230), 但這將比在存儲器中正在進行更新的同時僅僅阻止對高速緩存陣列 的所有寫訪問請求更復(fù)雜。
然而,根據(jù)本發(fā)明的實施例,存儲緩沖器220設(shè)置成將要求更新 相關(guān)聯(lián)高速緩存和共享存儲器兩者的類型的任何訪問請求視為不要 求有關(guān)高速緩存的任何動作,并因此不要求在高速緩存陣列230中進 行任何查找以確定是否實際上存在命中或未命中。結(jié)果,在相關(guān)寫訪 問請求由存儲緩沖器處理時,它從存儲緩沖器220傳播到總線接口 250,其結(jié)果是訪問請求傳播到總線互連上。高速緩存一致性邏輯也 接收此請求,并且執(zhí)行有關(guān)所有高速緩存24、 34、 44或124、 134、 144的一致性操作。重要的是,應(yīng)注意此一致性操作的執(zhí)行不但有關(guān) 于即時寫訪問請求中未涉及的處理器的數(shù)據(jù)高速緩存,而且其執(zhí)行涉 及與引發(fā)寫訪問請求的處理器相關(guān)聯(lián)的數(shù)據(jù)高速緩存。
因此,例如考慮圖1A的實施例,如果處理器核22發(fā)出要求更新 相關(guān)聯(lián)高速緩存24和共享存儲器60兩者的類型的寫訪問請求,則該 訪問請求傳播到一致總線結(jié)構(gòu)50而不在數(shù)據(jù)高速緩存24中執(zhí)行任何 查找,并且高速緩存一致性邏輯轉(zhuǎn)而執(zhí)行有關(guān)每個數(shù)據(jù)高速緩存24、 34、 44的一致性操作。在一個實施例中,此類操作涉及向每個數(shù)據(jù)高 速緩存24、 34、 44發(fā)出一致性請求,該一致性請求由每個此類數(shù)據(jù) 高速緩存內(nèi)的一致性處理程序240接收。之后,請求的一致性維護操 作在每個數(shù)據(jù)高速緩存內(nèi)執(zhí)行。
在備選實施例中,高速緩存一致性邏輯包括另外的過濾邏輯,該 邏輯使得一致性邏輯能為每個數(shù)據(jù)高速緩存確定一致性請求是否需 要發(fā)出到該數(shù)據(jù)高速緩存的一致性處理程序240。此類過濾操作可涉 及對有關(guān)每個數(shù)據(jù)高速緩存的內(nèi)容的 一些保留信息的參考,以便就有 關(guān)是否存在執(zhí)行高速緩存維護操作的任何需要做出確定。通過此類方 案,可能去除相當大數(shù)量的一致性請求需要,并因此大大降低每個數(shù)據(jù)高速緩存內(nèi)一致性處理程序240需要執(zhí)行的一致性維護操作量,從 而產(chǎn)生相當大的功率節(jié)省。
一致性處理程序240執(zhí)行的一致性維護操作可采用多種形式。在 一個實施例中, 一致性處理程序240可在此類情況下設(shè)置成沖企測在高 速緩存陣列中是否有命中,并且如果有命中,則使相關(guān)高速緩存行無 效,采取在使該高速緩存行無效時適當?shù)娜魏伪仨殑幼?。備選地,一 致性處理程序可設(shè)置成在高速緩存陣列產(chǎn)生命中的情況下用新數(shù)據(jù) 值實際更新高速緩存行,并且在必要時更新與該高速緩存行相關(guān)聯(lián)的 相關(guān)一致性狀態(tài)比特。
通過此方案,無需在數(shù)據(jù)高速緩存的存儲緩沖器220內(nèi)提供另外 的邏輯,這是因為存儲緩沖器只處理寫訪問請求,好像無需高速緩存 訪問一樣,并且因此無需執(zhí)行任何原子操作。相反,高速緩存一致性 邏輯將處理相關(guān)數(shù)據(jù)高速緩存內(nèi)的一致性,其中包括與引發(fā)處理器核 相關(guān)聯(lián)的數(shù)據(jù)高速緩存,并且將另外對存儲器執(zhí)行所需的更新。假設(shè) 高速緩存一致性邏輯其性質(zhì)能夠檢測并防止在進行存儲器更新時可 能發(fā)生的任何危害,則無需數(shù)據(jù)高速緩存更新和存儲器更新原子地進 行。實際上,在一個實施例中,數(shù)據(jù)高速緩存中的任何命中只產(chǎn)生在 任何情況下的相關(guān)高速緩存行的無效。
圖4是流程圖,示出在處理寫訪問請求時根據(jù)一個實施例的圖1A 或圖1B的數(shù)據(jù)處理設(shè)備10、 100的操作。最初,在步驟300,由數(shù)據(jù) 高速緩存確定是否需要寫訪問。因此,在相關(guān)聯(lián)處理器核向數(shù)據(jù)高速 緩存發(fā)出寫訪問請求時,這將在步驟300檢測到,并且過程將繼續(xù)到 步驟305,在該步驟中確定訪問是否針對可共享的存儲器區(qū)域,以及 訪問類型是否要求更新高速緩存和存儲器。如果為否,則數(shù)據(jù)高速緩 存在步驟310執(zhí)行其通常的寫訪問處理,隨后過程返回到步驟300。 正如從圖2前面的說明將理解的一樣,此類通常的寫訪問處理可涉及 或不涉及將一致性請求發(fā)出到高速緩存一致性邏輯。
然而,假設(shè)在步驟305確定訪問針對可共享的存儲器區(qū)域,并且
20訪問類型確實要求更新高速緩存和存儲器,則過程繼續(xù)到步驟315, 在該步驟中,高速緩存發(fā)出一致性請求而不執(zhí)行任何高速緩存查找。 之后,在步驟320,例如通過在存儲緩沖器內(nèi)設(shè)定相關(guān)狀態(tài)標志,將 寫指示為未決。之后,在步驟325高速緩存等待來自高速緩存一致性 邏輯的確認。在收到確認前,寫訪問保持未決,但在收到確認時,例 如通過清除存儲緩沖器中的相關(guān)狀態(tài)比特,寫在步驟330被視為已完 成,之后過程返回到步驟300。
此外,在步驟315發(fā)出一致性請求時,它被路由到高速緩存一致 性邏輯,并且在步驟335確定高速緩存一致性邏輯是否準備好接收一 致性請求。如果未準備好,則在步驟340引起延遲,之后,過程返回 到步驟335。 一旦高速緩存一致性邏輯準備好接收一致性請求,則在 步驟345,高速緩存一致性邏輯將該一致性請求發(fā)出到包括引發(fā)處理 器的 一 級高速緩存在內(nèi)的所有 一 級高速緩存。
之后,在步驟350,每個高速緩存執(zhí)行所需的一致性動作,并在 該一致性動作完成時通知高速緩存一致性邏輯。在步驟355, 一旦所 有確認已接收,高速緩存一致性邏輯便將確認發(fā)送到引發(fā)處理器,在 步驟325檢測到此情況以促4吏相關(guān)寫訪問在步驟330凈皮標記為已完 成。此外,在步驟360中,高速緩存一致性邏輯將訪問請求發(fā)出到存 儲器60以便促使更新存儲器中的相關(guān)條目,之后,過程返回到步驟 335。
將理解,雖然在一個實施例中, 一旦所有所需高速緩存維護操作 已由數(shù)據(jù)高速緩存執(zhí)行,高速緩存一致性邏輯才將訪問請求發(fā)出到存 儲器,但在備選實施例中,對存儲器的訪問請求可與有關(guān)數(shù)據(jù)高速緩 存的正在進行的一致性動作并行發(fā)出。
應(yīng)注意的是,本發(fā)明實施例的技術(shù)可應(yīng)用到其中相關(guān)處理裝置不 是所有處理器核的系統(tǒng),并且實際上,每個處理裝置不必具有其自己 的專用高速緩存。具體而言,只要系統(tǒng)內(nèi)存在不在從引發(fā)處理裝置到 存儲器的自然路徑內(nèi)的高速緩存,高速緩存一致性邏輯便將是相關(guān)的。
因此,圖5提供為也可使用本發(fā)明上述技術(shù)的備選實施例的圖示。 在此實施例中,處理器420包括處理器核422和相關(guān)聯(lián)一級數(shù)據(jù)高速 緩存424,該高速緩存經(jīng)一致總線結(jié)構(gòu)450與硬件加速器430和數(shù)字 信號處理器(DSP)440耦合,這些裝置共享高速緩存445。另外, 一致 總線結(jié)構(gòu)450經(jīng)二級高速緩存455耦合到存儲器60。正如圖1A的實 施例一樣, 一致總線結(jié)構(gòu)450包括高速緩存一致性邏輯。
硬件加速器430可用于各種用途,并且因此作為示例可釆用用于 執(zhí)行圖形處理的圖形引擎形式。DSP 440將一般能夠執(zhí)行比硬件加速 器更多變化的功能,并因此例如可用于執(zhí)行話音過濾功能、運行圖形 算法等。
二級高速緩存455可存儲數(shù)據(jù)以供任何處理裝置420、 430、 440 訪問,但共享的高速緩存445雖然能夠為硬件加速器430或DSP 440 存儲數(shù)據(jù),但不可由處理器420訪問,即,它不是在從處理器420到 存儲器60的自然路徑(即,通過一級數(shù)據(jù)高速緩存424、 一致總線結(jié) 構(gòu)450和二級高速緩存455的路徑)上的高速緩存。
在此類情況下,本發(fā)明實施例的技術(shù)仍能夠采用,并因此作為示 例在處理器核422發(fā)出要求在一級數(shù)據(jù)高速緩存424和存儲器60兩 者中執(zhí)行更新的類型的寫訪問請求時,它能夠轉(zhuǎn)為直接路由出到一致 總線結(jié)構(gòu)450而不在一級數(shù)據(jù)高速緩存424中執(zhí)行查找。因此, 一致 性請求將由高速緩存一致性邏輯發(fā)出到一級數(shù)據(jù)高速緩存424和共享 的高速緩存445,以促使執(zhí)行所需的高速緩存維護操作,并且存儲器 更新將單獨地經(jīng)二級高速緩存455路由到存儲器60。
從上面的說明中,將理解本發(fā)明的上述實施例提供了 一種簡單的 實現(xiàn),以便確保要求更新高速緩存和存儲器兩者的對共享的存儲器的 寫訪問的正確行為,而不會增大數(shù)據(jù)高速緩存邏輯的復(fù)雜性。這對在 任何情況下可選擇不支持對共享存儲器的一致通寫寫訪問,但仍需要 具有正確處理不可高速緩存的共享寫的能力的實施例特別有利,其中一般很少會在高速緩存中實際有命中,并且相應(yīng)地在數(shù)據(jù)高速緩存邏 輯內(nèi)提供另外的電路被認為代價特別高。
在本發(fā)明之前,在不可高速緩存的共享寫的情況下將必須在高速 緩存中執(zhí)行查找,并且在高速緩存命中的情況下,將必須隨后向高速 緩存一致性邏輯發(fā)出 一致性請求以使數(shù)據(jù)處理設(shè)備中與其它處理器 相關(guān)聯(lián)的所有其它高速緩存進行所需的一致性操作。之后,將必須原 子方式更新引發(fā)處理器的高速緩存和共享存儲器,這引入了很多危 害,并且因此如前面所述其實現(xiàn)不但成本很高,而且耗時。
然而,通過使用本發(fā)明實施例的技術(shù),不必在引發(fā)處理器的高速 緩存中執(zhí)行查找,而是將一致性請求直接發(fā)出到高速緩存一致性邏 輯,隨后此一致性請求傳播到系統(tǒng)中的所有處理器,包括引發(fā)請求的 處理器。如果引發(fā)寫訪問請求的處理器在其高速緩存中有該數(shù)據(jù),則 它將通過采取適當?shù)膭幼饕源_保一致性(例如,更新對應(yīng)的高速緩存 行或使其無效)來響應(yīng)一致性請求,但這只是接收高速緩存一致性請 求的任何數(shù)據(jù)高速緩存執(zhí)行的標準處理的一部分。因此,除了使高速 緩存一致性邏輯能夠?qū)⒁恢滦哉埱蟀l(fā)出到將通常接收一致性請求的 所有其它處理器,還發(fā)出到引發(fā)處理器之外,不需另外的復(fù)雜性。
在高速緩存一致性邏輯具有高級特性,使它可過濾一致性請求的 實施例中,可以必須或無需將一致性請求轉(zhuǎn)發(fā)到引發(fā)寫訪問請求的處 理器,并且具體而言,如果高速緩存一致性邏輯知道該數(shù)據(jù)不在高速 緩存中,則可以無需將請求轉(zhuǎn)發(fā)到引發(fā)處理器。在使用本發(fā)明的實施 例以提供用于處理不可高速緩存的共享寫的正確行為時,設(shè)想在多數(shù) 情況下在數(shù)據(jù)高速緩存中將決不會有命中,并且因此在高速緩存一致 性邏輯內(nèi)提供此類過濾器邏輯能夠節(jié)省相當大的功率。
雖然特定的實施例在本文中已描述,但將理解,本發(fā)明并未限于 此,并且其許多修改和添加可在本發(fā)明范圍內(nèi)進行。例如,在不脫離 本發(fā)明范圍的情況下,以下從屬權(quán)利要求的特征可與獨立權(quán)利要求的 特征進行各種組合。
2權(quán)利要求
1. 一種數(shù)據(jù)處理設(shè)備,包括多個處理單元,可操作以執(zhí)行要求對共享存儲器中的數(shù)據(jù)的訪問的數(shù)據(jù)處理操作;每個處理單元具有與其相關(guān)聯(lián)的高速緩存,所述高速緩存可操作以存儲所述數(shù)據(jù)的子集以供該處理單元訪問;高速緩存一致性邏輯,采用高速緩存一致性協(xié)議以確保由每個處理單元訪問的數(shù)據(jù)是最新的;每個處理單元可操作以在輸出用于存儲在所述共享存儲器中的數(shù)據(jù)值時發(fā)出寫訪問請求,在所述寫訪問請求是屬于要求更新所述相關(guān)聯(lián)的高速緩存和所述共享存儲器兩者的類型時,在所述高速緩存一致性邏輯內(nèi)啟動一致性操作;所述高速緩存一致性邏輯可操作以執(zhí)行有關(guān)與所述多個處理單元相關(guān)聯(lián)的高速緩存的一致性操作,所述高速緩存包括與發(fā)出所述寫訪問請求的處理單元相關(guān)聯(lián)的高速緩存,以便確保在那些高速緩存中的數(shù)據(jù)保持一致;以及所述高速緩存一致性邏輯還可操作以將有關(guān)所述寫訪問請求的主題數(shù)據(jù)值的更新請求發(fā)出到所述共享存儲器。
2. 如權(quán)利要求1所述的數(shù)據(jù)處理設(shè)備,其中在所述寫訪問請求是對所述共享存儲器的不可高速緩存的寫訪問請求時,在所述高速緩存一致性邏輯內(nèi)啟動所述一致性操作。
3. 如權(quán)利要求1所述的數(shù)據(jù)處理設(shè)備,其中在所述寫訪問請求是對所述共享存儲器的通寫寫訪問請求時,在所述高速緩存一致性邏輯內(nèi)啟動所述一致性操作。
4. 如權(quán)利要求1到3的任一項所述的數(shù)據(jù)處理設(shè)備,其中在執(zhí)行所述一致性操作時,所述高速緩存一致性邏輯向與所述多個處理單元相關(guān)聯(lián)的每個高速緩存發(fā)出 一致性請求信號,所述一致性請求信號標識與所述寫訪問請求的主題數(shù)據(jù)值相關(guān)聯(lián)的地址。
5. 如權(quán)利要求1到3的任一項所述的數(shù)據(jù)處理設(shè)備,其中在執(zhí)行所述一致性操作時,所述高速緩存一致性邏輯可操作以應(yīng)用過濾操作,確定將一致性請求發(fā)出到哪些高速,爰存,并隨后將一致性請求信號發(fā)出到所確定的高速緩存,所述一致性請求信號標識與所述寫訪問請求的主題數(shù)據(jù)值相關(guān)聯(lián)的地址。
6. 如以上權(quán)利要求任一項所述的數(shù)據(jù)處理設(shè)備,其中在所述寫訪問請求是屬于要求更新所述相關(guān)聯(lián)的高速緩存和所述共享存儲器兩者的類型時,在所述高速緩存一致性邏輯內(nèi)啟動所述一致性操作,而不在與發(fā)出該寫訪問請求的處理單元相關(guān)聯(lián)的高速緩存中執(zhí)行高速緩存查找。
7. 如以上權(quán)利要求任一項所述的數(shù)據(jù)處理設(shè)備,其中對于每個處理單元,與其相關(guān)聯(lián)的高速緩存是只與該處理單元相關(guān)聯(lián)的本地高速緩存。
8. 如以上權(quán)利要求任一項所述的數(shù)據(jù)處理設(shè)備,其中所述共享存儲器是存儲器的共享存儲器區(qū)域。
9. 如以上權(quán)利要求任一項所述的數(shù)據(jù)處理設(shè)備,其中所述多個處理單元的至少一個是處理器核。
10. 如以上權(quán)利要求任一項所述的數(shù)據(jù)處理設(shè)備,其中所述高速緩存一致性協(xié)議是基于探聽的高速緩存一致性協(xié)議。
11. 一種用于在數(shù)據(jù)處理設(shè)備中使用的高速緩存一致性邏輯,所述數(shù)據(jù)處理設(shè)備具有用于執(zhí)行要求對共享存儲器中的數(shù)據(jù)的訪問的數(shù)據(jù)處理操作的多個處理單元,每個處理單元具有與其相關(guān)聯(lián)的高速緩存以用于存儲所述數(shù)據(jù)的子集以供該處理單元訪問,所述高速緩存一致性邏輯采用高速緩存一致性協(xié)議以確保由每個處理單元訪問的數(shù)據(jù)是最新的,每個處理單元可操作以在輸出用于存儲在所述共享存儲器中的數(shù)據(jù)值時發(fā)出寫訪問請求,在所述寫訪問請求是屬于要求更新所述相關(guān)聯(lián)的高速緩存和所述共享存儲器兩者的類型時,所述高速緩存一致性邏輯可操作以啟動一致性操作;所述高速緩存一致性邏輯可操作以執(zhí)行有關(guān)與所述多個處理單元相關(guān)聯(lián)的高速緩存的一致性操作,所述高速緩存包括與發(fā)出所述寫訪問請求的處理單元相關(guān)聯(lián)的高速緩存,以便確保在那些高速緩存中的數(shù)據(jù)保持一致;以及所述高速緩存 一致性邏輯還可操作以將有關(guān)所述寫訪問請求的主題數(shù)據(jù)值的更新請求發(fā)出到所述共享存儲器。
12. —種在數(shù)據(jù)處理設(shè)備中處理對共享存儲器的寫訪問請求的方法,所述數(shù)據(jù)處理設(shè)備包括用于執(zhí)行要求對所述共享存儲器中的數(shù)據(jù)的訪問的數(shù)據(jù)處理操作的多個處理單元,每個處理單元具有與其相關(guān)聯(lián)的高速緩存以用于存儲所述數(shù)據(jù)的子集以供該處理單元訪問,所述方法包括以下步驟在輸出用于存儲在所述共享存儲器中的數(shù)據(jù)值時,從處理單元發(fā)出寫訪問請求;在所述寫訪問請求是屬于要求更新所述相關(guān)聯(lián)的高速緩存和所述共享存儲器兩者的類型時,在高速緩存一致性邏輯內(nèi)啟動一致性操作,所述高速緩存一致性邏輯采用高速緩存一致性協(xié)議以確保由每個處理單元訪問的數(shù)據(jù)是最新的;執(zhí)行有關(guān)與所述多個處理單元相關(guān)聯(lián)的高速緩存的一致性操作,所述高速緩存包括與發(fā)出所述寫訪問請求的處理單元相關(guān)聯(lián)的高速緩存,以便確保在那些高速緩存中的數(shù)據(jù)保持一致;以及將有關(guān)所述寫訪問請求的主題數(shù)據(jù)值的更新請求發(fā)出到所述共享存儲器。
13. —種數(shù)據(jù)處理設(shè)備,包括多個處理部件,用于執(zhí)行要求對共享存儲器部件中的數(shù)據(jù)的訪問的數(shù)據(jù)處理操作;每個處理部件具有與其相關(guān)聯(lián)的高速緩存以用于存儲所述數(shù)據(jù)的子集以供該處理部件訪問;高速緩存一致性部件,用于采用高速緩存一致性協(xié)議以確保由每個處理部件訪問的數(shù)據(jù)是最新的;每個處理部件用于在輸出用于存儲在所述共享存儲器部件中的數(shù)據(jù)值時發(fā)出寫訪問請求,在所述寫訪問請求是屬于要求更新所述相關(guān)聯(lián)的高速緩存部件和所述共享存儲器部件兩者的類型時,在所述高速緩存一致性部件內(nèi)啟動一致性操作;所述高速緩存一致性部件用于執(zhí)行有關(guān)與所述多個處理部件相關(guān)聯(lián)的高速緩存部件的一致性操作,所述高速緩存部件包括與發(fā)出所述寫訪問請求的處理部件相關(guān)聯(lián)的高速緩存部件,以便確保在那些高速緩存部件中的數(shù)據(jù)保持一致;以及所述高速緩存一致性部件還用于將有關(guān)所述寫訪問請求的主題數(shù)據(jù)值的更新請求發(fā)出到所述共享存儲器部件。
全文摘要
提供數(shù)據(jù)處理設(shè)備和方法用于處理對共享存儲器的寫訪問請求。數(shù)據(jù)處理設(shè)備具有多個處理單元,用于執(zhí)行要求對共享存儲器中的數(shù)據(jù)的訪問的數(shù)據(jù)處理操作,每個處理單元具有與其相關(guān)聯(lián)的高速緩存以用于存儲數(shù)據(jù)的子集以供該處理單元訪問。提供了采用高速緩存一致性協(xié)議的高速緩存一致性邏輯,以確保由每個處理單元訪問的數(shù)據(jù)是最新的。每個處理單元將在輸出用于存儲在共享存儲器中的數(shù)據(jù)值時發(fā)出寫訪問請求,并且在寫訪問請求是屬于要求更新相關(guān)聯(lián)的高速緩存和共享存儲器兩者的類型時,在高速緩存一致性邏輯內(nèi)啟動一致性操作。隨后,執(zhí)行有關(guān)與多個處理單元相關(guān)聯(lián)的所有高速緩存的一致性操作以便確保在那些高速緩存中的數(shù)據(jù)保持一致,所述高速緩存包括與發(fā)出寫訪問請求的處理單元相關(guān)聯(lián)的高速緩存。高速緩存一致性邏輯還可操作以將有關(guān)寫訪問請求的主題數(shù)據(jù)值的更新請求發(fā)出到共享存儲器。此技術(shù)提供了用于確保此類寫訪問請求的行為正確的一種特別簡單、有效的機制,而不影響引發(fā)處理單元及其相關(guān)聯(lián)高速緩存的復(fù)雜性和訪問時序。
文檔編號G06F12/08GK101523361SQ200780038393
公開日2009年9月2日 申請日期2007年9月13日 優(yōu)先權(quán)日2006年10月17日
發(fā)明者F·C·M·皮里, N·B·E·拉塔耶, P·J·-P·拉法倫, R·R·格里森思懷特, S·D·比爾斯 申請人:Arm有限公司