用于維持高速緩存一致性的只寫無數(shù)據(jù)狀態(tài)的制作方法
【專利摘要】本文揭示用于維持具有共享存儲器的多處理器系統(tǒng)(100)中的高速緩存一致性的系統(tǒng)和方法,包含經(jīng)配置以在寫入操作期間減少拖延的寫入數(shù)據(jù)無效WDI狀態(tài)(310)。所述WDI狀態(tài)為具有保證的寫入權(quán)限的無數(shù)據(jù)狀態(tài)。當(dāng)所述多處理器系統(tǒng)的第一處理器(102)做出對第一高速緩沖存儲器(106)的第一高速緩存條目的寫入請求時,與所述第一高速緩存條目相關(guān)聯(lián)的所述WDI狀態(tài)包含對于所述寫入直接進(jìn)行到所述共享存儲器中的一或多個較高級別的存儲器(112、114)的寫入權(quán)限,以使得在所述第一高速緩沖存儲器處減少與獲得寫入權(quán)限相關(guān)聯(lián)的延遲。所述WDI狀態(tài)被視為所述第一處理器對所述第一高速緩存條目的讀取請求的無效狀態(tài)。
【專利說明】用于維持高速緩存一致性的只寫無數(shù)據(jù)狀態(tài)
【技術(shù)領(lǐng)域】
[0001]所揭示實施例針對用于維持多處理器系統(tǒng)中的高速緩存一致性的系統(tǒng)和方法。更具體來說,示范性實施例針對具有寫入權(quán)限的無數(shù)據(jù)寫入數(shù)據(jù)無效(write-data-1nvalid ;WDI)狀態(tài),且經(jīng)設(shè)計以減少在寫入操作期間具有共享存儲器的多處理器系統(tǒng)中的延遲。
【背景技術(shù)】
[0002]在具有共享存儲器架構(gòu)的多處理器系統(tǒng)中,維持存儲器或高速緩存一致性是公認(rèn)為富有挑戰(zhàn)性的。舉例來說,多處理器系統(tǒng)可具有若干處理器,所述處理器可各自包含最終耦合到主存儲器的一或多個級別的高速緩沖存儲器。因為在若干處理器中共享主存儲器,所以將對主存儲器的內(nèi)容的一致性看法提供給所有處理器是必要的。
[0003]通常出現(xiàn)的情況是對駐留于一或多個級別的高速緩沖存儲器中的數(shù)據(jù)(或指令)的更新可能不會立即反映在存儲器系統(tǒng)中的相同數(shù)據(jù)的所有其它事件中。這樣破壞一致性。問題在回寫高速緩沖存儲器時加劇。對高速緩沖存儲器的寫入可執(zhí)行為:直寫,其中對高速緩沖存儲器的每次寫入導(dǎo)致對在下一級別的高速緩沖存儲器及主存儲器中的數(shù)據(jù)備用存儲位置的同步寫入;或回寫,其中對高速緩沖存儲器的數(shù)據(jù)寫入只在對應(yīng)高速緩存線(或“高速緩存塊”)從高速緩沖存儲器收回時在數(shù)據(jù)備用存儲位置中更新。雖然直寫高速緩沖存儲器有助于高速緩存一致性,但所述直寫高速緩沖存儲器也慢得多,這是因為每次高速緩沖存儲器寫入經(jīng)歷更新備用存儲位置所需的額外時間。另一方面,雖然回寫高速緩沖存儲器促進(jìn)高速緩沖存儲器寫入(因為在正常寫入操作期間只寫高速緩沖存儲器),但所述回寫高速緩沖存儲器可能由于不立即更新備用存儲位置中的新寫入數(shù)據(jù)而破壞一致性。
[0004]維持尤其是回寫高速緩沖存儲器中的一致性的常用機(jī)制涉及所謂的MESI協(xié)議。MESI協(xié)議針對每一高速緩存線定義四種狀態(tài):修改(M)、獨占(E)、共享⑶及無效⑴。修改狀態(tài)指示高速緩存線只存在于即時高速緩沖存儲器中,但其為“已更改的(dirty)”,SP,已根據(jù)主存儲器中的值修改所述高速緩存線。獨占狀態(tài)指示只有即時高速緩沖存儲器擁有高速緩存線,且其為“清潔的(clean)”,S卩,所述高速緩存線匹配主存儲器中的值。共享狀態(tài)指示高速緩存線為清潔的,但高速緩存線的副本也可存在于存儲器系統(tǒng)中的一或多個其它高速緩沖存儲器中。無效狀態(tài)指示高速緩存線為無效的。MESI協(xié)議的共用變體(例如,MOESI協(xié)議)可涉及額外狀態(tài),例如,自有(O)狀態(tài),其中高速緩存線經(jīng)指示保持?jǐn)?shù)據(jù)的最新但已更改且共享的副本。
[0005]通過與所需存儲器訪問有關(guān)的各種處理元件之間的通信及基于高速緩存線的狀態(tài)(M/0/E/S/I)而管理對高速緩沖存儲器及主存儲器的更新的權(quán)限來維持一致性。舉例來說,如果多處理器系統(tǒng)中的處理器希望將數(shù)據(jù)寫入與其相關(guān)聯(lián)的I級(LI)高速緩沖存儲器的高速緩存線,那么當(dāng)高速緩存線處于獨占(E)狀態(tài)時,處理器則可寫入高速緩存線且將其更新為修改(M)狀態(tài)。另一方面,如果高速緩存線處于共享(S)狀態(tài),那么必須在可準(zhǔn)許處理器寫入高速緩存線之前首先使高速緩存線的所有其它副本無效。一致性協(xié)議(例如,MESI/MOESI)的特定實施方案是本領(lǐng)域中熟知的且將不在本文中進(jìn)行進(jìn)一步描述。
[0006]因此,在一致性協(xié)議(例如,MESI/MOESI)的常規(guī)實施方案中,可將對高速緩存線的寫入拖延到獲得寫入權(quán)限為止。舉例來說,如果高速緩存線的狀態(tài)指示不能在本地獲得權(quán)限,那么為了獲得對于駐留于LI高速緩沖存儲器中的高速緩存線的權(quán)限,常規(guī)實施方案可要求向下遍歷一或多個級別的存儲器層級直到一致點,以獲得權(quán)限。換句話說,如果高速緩存線在LI狀態(tài)中的狀態(tài)指示寫入權(quán)限不是當(dāng)前的,那么可能需要查詢較高級別的存儲器層級(例如,2級(L2)高速緩沖存儲器)或主存儲器的備用存儲位置以(再次基于這些備用存儲位置中高速緩存線的狀態(tài))確定高速緩存線的一致點的位置。獲得寫入權(quán)限的此過程可引起在延時及功率方面的嚴(yán)重?fù)p失。
[0007]—些回寫高速緩沖存儲器架構(gòu)可根據(jù)不按寫分配(no-write-al locate/write-no-allocate)策略設(shè)計。在此類架構(gòu)中,如果LI高速緩沖存儲器中的高速緩存線寫入遇到未命中,那么寫入操作跳過在LI高速緩沖存儲器中分配高速緩存線(即,不從備用存儲位置提取高速緩存線到LI高速緩沖存儲器),且繼續(xù)將高速緩存線寫入將找到高速緩存線的備用存儲器中,例如,L2高速緩沖存儲器或主存儲器。然而,將再次需要在找到高速緩存線的備用存儲位置處獲得權(quán)限,從而引起相關(guān)聯(lián)損失。
[0008]因此,常規(guī)實施方案具有與維持高速緩存一致性及獲得寫入操作權(quán)限相關(guān)聯(lián)的上述缺點。因此,在所屬領(lǐng)域中存在促進(jìn)具有共享存儲器架構(gòu)的多處理器系統(tǒng)中對高速緩沖存儲器的寫入操作的對應(yīng)需要。
【發(fā)明內(nèi)容】
[0009]本發(fā)明的示范性實施例針對用于維持多處理器系統(tǒng)中的高速緩存一致性的系統(tǒng)及方法,包含寫入數(shù)據(jù)無效(WDI)狀態(tài),所述WDI狀態(tài)經(jīng)配置以減少在寫入操作期間具有共享存儲器的多處理器系統(tǒng)中的延遲,其中WDI狀態(tài)包括具有寫入權(quán)限的無數(shù)據(jù)狀態(tài)。
[0010]舉例來說,示范性實施例針對一種維持多處理器系統(tǒng)中的一致性的方法,所述方法包括:建立狀態(tài),所述狀態(tài)包含:寫入數(shù)據(jù)無效(WDI)狀態(tài),所述WDI狀態(tài)用于第一高速緩沖存儲器中的第一高速緩存條目,其中WDI狀態(tài)包括用于與第一高速緩沖存儲器相關(guān)聯(lián)的第一處理器針對第一處理器對高速緩存條目的寫入請求而寫入一或多個較高級別的存儲器層級的權(quán)限,且其中WDI狀態(tài)被視為第一處理器對第一高速緩存條目的讀取請求的無效狀態(tài)。
[0011]另一示范性實施例針對多處理器系統(tǒng),所述系統(tǒng)包括:第一處理器、第一高速緩沖存儲器、一或多個較高級別的存儲器層級及與第一高速緩沖存儲器的第一高速緩存條目相關(guān)聯(lián)的寫入數(shù)據(jù)無效(WDI)狀態(tài),其中WDI狀態(tài)包括用于第一處理器針對第一處理器對第一高速緩存條目的寫入請求而寫入一或多個較高級別的存儲器層級的權(quán)限,且其中WDI狀態(tài)被視為第一處理器對第一高速緩存條目的讀取請求的無效狀態(tài)。
[0012]另一示范性實施例針對多處理器系統(tǒng),所述系統(tǒng)包括:第一處理器、第一存儲裝置、一或多個較高級別的存儲器層級及與第一存儲裝置的第一條目相關(guān)聯(lián)的寫入數(shù)據(jù)無效(WDI)裝置,其中WDI裝置包括用于第一處理器針對第一處理器對第一條目的寫入請求而寫入一或多個較高級別的存儲器層級的權(quán)限,且其中WDI裝置被視為第一處理器對第一條目的讀取請求的無效狀態(tài)。
[0013]又一示范性實施例針對非暫時性計算機(jī)可讀存儲媒體,所述媒體包括代碼,當(dāng)由處理器執(zhí)行時,所述代碼致使處理器執(zhí)行維持多處理器系統(tǒng)中的一致性的操作,非暫時性計算機(jī)可讀存儲媒體包括:用于建立狀態(tài)的代碼,所述狀態(tài)包含:用于第一高速緩沖存儲器中的第一高速緩存條目的寫入數(shù)據(jù)無效(WDI)狀態(tài),其中WDI狀態(tài)包括用于與第一高速緩沖存儲器相關(guān)聯(lián)的第一處理器針對第一處理器對高速緩存條目的寫入請求而寫入一或多個較高層級的存儲器層級的權(quán)限,且其中WDI狀態(tài)被視為第一處理器對第一高速緩存條目的讀取請求的無效狀態(tài)。
[0014]另一示范性實施例針對一種管理高速緩沖存儲器的方法,所述方法包括:從處理器接收針對第一高速緩存塊的寫入請求;確定第一高速緩存塊不存在于高速緩沖存儲器中;執(zhí)行針對第一聞速緩存塊的意在修改讀取請求;將保留的聞速緩存塊保留在聞速緩沖存儲器中;將與第一聞速緩存塊相關(guān)聯(lián)的標(biāo)簽指派到保留的聞速緩存塊;確定用于包括聞速緩沖存儲器的存儲器層級中的第一高速緩存塊的一致點;確定第一高速緩存塊在一致點處不可用;建立用于保留高速緩存塊的寫入數(shù)據(jù)無效狀態(tài);及針對與寫入請求相關(guān)聯(lián)的數(shù)據(jù)執(zhí)行對保留的高速緩存塊的直寫操作。
【專利附圖】
【附圖說明】
[0015]呈現(xiàn)附圖來輔助對本發(fā)明的實施例的描述,且僅出于說明而非限制所述實施例的目的來提供附圖。
[0016]圖1是根據(jù)示范性實施例配置的示范性多處理器系統(tǒng)100的框圖。
[0017]圖2是圖示根據(jù)示范性實施例建立高速緩存條目的寫入數(shù)據(jù)無效狀態(tài)的操作流程的流程圖。
[0018]圖3是圖示根據(jù)示范性實施例的高速緩沖存儲器中的高速緩存塊的一致狀態(tài)之間的轉(zhuǎn)變的狀態(tài)圖。
[0019]圖4A-B針對對應(yīng)讀取/寫入權(quán)限以維恩(Venn)圖形式圖示常規(guī)實施方案與示范性實施例之間的區(qū)別。
[0020]圖5圖示可有利使用本發(fā)明的實施例的示范性無線通信系統(tǒng)500。
【具體實施方式】
[0021]在以下針對本發(fā)明特定實施例的描述和有關(guān)圖式中揭示本發(fā)明的若干方面??稍诓幻撾x本發(fā)明的范圍的情況下設(shè)計替代實施例。此外,將不會詳細(xì)描述本發(fā)明的眾所周知的元件,或?qū)⑹÷运鲈?,以免混淆本發(fā)明的相關(guān)細(xì)節(jié)。
[0022]單詞“示范性”在本文中用于意味“充當(dāng)實例、例子或說明”。本文中被描述為“示范性”的任何實施例不必被解釋為比其它實施例優(yōu)選或有利。同樣,術(shù)語“本發(fā)明的實施例”并非要求本發(fā)明的所有實施例包含所論述的特征、優(yōu)點或操作模式。
[0023]本文中所使用的術(shù)語僅出于描述特定實施例的目的且不欲限制本發(fā)明的實施例。如在本文中所使用,除非上下文另外清楚地指示,否則單數(shù)形式“一”和“所述”也意在包含復(fù)數(shù)形式。將進(jìn)一步了解,術(shù)語“包括”和/或“包含”在用于本文中時指定所陳述的特征、整數(shù)、步驟、操作、元件和/或組件的存在,但不排除一或多個其它特征、整數(shù)、步驟、操作、元件、組件和/或其群組的存在或添加。
[0024]此外,依據(jù)將由(例如)計算裝置的元件執(zhí)行的動作序列來描述許多實施例。將認(rèn)識到,可由特定電路(例如,專用集成電路(ASIC))、由正由一或多個處理器執(zhí)行的程序指令或由兩者的組合來執(zhí)行本文中所述的各種動作。此外,可認(rèn)為本文中所述的這些動作序列完全體現(xiàn)于任何形式的計算機(jī)可讀存儲媒體內(nèi),所述計算機(jī)可讀存儲媒體中已存儲一對應(yīng)計算機(jī)指令集,所述指令在被執(zhí)行時將致使相關(guān)聯(lián)的處理器執(zhí)行本文中所述的功能性。因此,本發(fā)明的各種方面可以許多不同形式來實施,所有所述形式均被涵蓋在所主張標(biāo)的物的范圍內(nèi)。另外,對于本文中所述的實施例中的每一者來說,任何此類實施例的對應(yīng)形式可在本文中被描述為(例如)“經(jīng)配置以(執(zhí)行所描述的動作)的邏輯”。
[0025]示范性實施例避免具有共享存儲器的常規(guī)多處理器系統(tǒng)的上述問題。更具體來說,關(guān)于對高速緩沖存儲器的寫入操作,實施例經(jīng)配置以避免缺乏寫入權(quán)限引起的拖延。因此,實施例可改善寫入操作速度同時以有效方式維持一致性。此外,實施例可經(jīng)配置用于回寫高速緩沖存儲器(所述回寫高速緩沖存儲器有時可能比先前所述的直寫高速緩沖存儲器快),同時還克服回寫高速緩沖存儲器關(guān)于維持一致性的缺點。
[0026]在本文中的描述中,如所屬領(lǐng)域中眾所周知的,術(shù)語“寫入”用作“存儲”操作的同義詞。同樣地,術(shù)語“讀取”用作“加載”的同義詞。此外,在描述中,可參考關(guān)于“高速緩存塊”的讀取/寫入操作,所述操作可參考比整個高速緩存線的粒度小的粒度。然而,將了解,此類參考僅出于說明性目的,且不應(yīng)被解釋為限制實施例的范圍。舉例來說,所揭示技術(shù)可容易擴(kuò)展到關(guān)于任何其它粒度的操作(如果適用),例如,高速緩存字、高速緩存線等。相應(yīng)地,對于高速緩存一致性,術(shù)語“一致性粒度”可指追蹤一致性的粒度。此外,還將了解,參考的高速緩存塊可包括數(shù)據(jù)或指令,即使描述可僅依據(jù)數(shù)據(jù)的寫入/讀取操作提供也如此。此外,參考較高級別的存儲器層級可包含本地或第一級(LI)高速緩沖存儲器外的備用存儲元件,所述元件可與處理器或處理元件相關(guān)聯(lián)。舉例來說,參考本文中較高級別的存儲器層級可指第二級(L2)高速緩沖存儲器、主存儲器及可存在于L2高速緩沖存儲器與主存儲器之間的一或多個級別的存儲器結(jié)構(gòu)。
[0027]示范性實施例可針對個別高速緩存塊定義額外狀態(tài),所述狀態(tài)在本文中被稱為“寫入數(shù)據(jù)無效(WDI) ”。雖然實施例可針對整個高速緩存線定義WDI狀態(tài),但針對高速緩存線內(nèi)的個別高速緩存塊定義WDI狀態(tài)可提供額外靈活性。除了或連同傳統(tǒng)存儲器一致性狀態(tài)(例如,上文論述的M/0/E/S/I)的任何組合,可定義WDI狀態(tài)。當(dāng)設(shè)定時,WDI狀態(tài)可指示僅準(zhǔn)許直寫操作用于相關(guān)聯(lián)的高速緩存塊,且對高速緩存塊的任何讀取操作將是無效的。舉例來說,通過將LI高速緩沖存儲器中的示范性高速緩存塊設(shè)定為WDI狀態(tài),實施例可保證對下一更高級別(L2高速緩沖存儲器)的高速緩存塊的寫入權(quán)限,從而消除與獲得寫入權(quán)限相關(guān)聯(lián)的任何延遲。
[0028]現(xiàn)在參考圖1,圖示了示范性多處理器系統(tǒng)100的簡化示意性描述。多處理器系統(tǒng)100可包括兩個處理器(或處理元件)102及104。處理器102及104可各自分別具有相關(guān)聯(lián)的本地LI高速緩沖存儲器106及108。LI高速緩沖存儲器106及108可通過網(wǎng)絡(luò)或系統(tǒng)總線110耦合到共享L2高速緩沖存儲器112。L2高速緩沖存儲器112可耦合到主存儲器114。在一個實施例中,LI高速緩沖存儲器106及108可被配置為回寫高速緩沖存儲器。將了解,實施例在范圍上并不限于多處理器系統(tǒng)100的所描述配置,但所揭示技術(shù)可容易擴(kuò)展到處理器、處理元件、高速緩沖存儲器結(jié)構(gòu)及存儲器架構(gòu)的任何其它配置。
[0029]繼續(xù)參考圖1,因為處理器102及104最終共享L2高速緩沖存儲器112及主存儲器114,所以需要在整個高速緩沖存儲器(例如,LI高速緩沖存儲器106及108)中維持一致性。舉例來說,如果處理器102希望將數(shù)據(jù)寫入特定高速緩存塊CB (所述CB可具有小于整個高速緩存線的大小),那么可引起以下情形中的一者。
[0030]在第一情形下,高速緩存塊CB可存在于與處理器102相關(guān)聯(lián)的LI高速緩沖存儲器106中。然而,在此第一種情形下,LI高速緩沖存儲器106可對高速緩存塊CB不具有獨占性,或換句話說,高速緩存塊CB可存在于共享(S)狀態(tài)下。將首先提供關(guān)于常規(guī)實施方案的此情形的描述,以通過對比來解釋示范性實施例。
[0031]因此,如果常規(guī)M0ESI/MESI協(xié)議是適當(dāng)?shù)?,那么取決于與高速緩存塊相關(guān)聯(lián)的狀態(tài),在可建立寫入權(quán)限之前,可能首先需要從備用存儲器檢索高速緩存塊。更具體來說,在常規(guī)M0ESI/MESI協(xié)議中,在可寫入新數(shù)據(jù)之前,高速緩存塊必須處于M或E狀態(tài)。換句話說,高速緩存塊必須具有寫入權(quán)限,所述寫入權(quán)限按照慣例還與讀取權(quán)限相聯(lián)系。因此,要求從一致點對高速緩存塊進(jìn)行數(shù)據(jù)提取,即使僅意在寫入高速緩存塊而不從高速緩存塊讀取數(shù)據(jù)也如此。因此,寫入高速緩存塊的凈成本除了獲得寫入權(quán)限的成本之外還涉及提取數(shù)據(jù)的成本。雖然獲得寫入權(quán)限的成本單獨可為與窺探其它相同級別的高速緩沖存儲器相關(guān)聯(lián)的成本,但與提取數(shù)據(jù)相關(guān)聯(lián)的成本可包含檢查較高級別的高速緩沖存儲器的每一級別(可能直到主存儲器)的成本,以確定數(shù)據(jù)存在的備用存儲級別,且接著從所述備用存儲位置提取回數(shù)據(jù)。因此,通過常規(guī)M0ESE/MESI協(xié)議,特別是在需要從高級別備用存儲器(例如,主存儲器)提取數(shù)據(jù)時,對高速緩存塊的寫入可引起用于獲得寫入權(quán)限以及獲得數(shù)據(jù)的高延時成本。
[0032]雖然支持無序執(zhí)行的處理器有時可能能夠通過平行執(zhí)行其它操作來隱藏與此過程相關(guān)聯(lián)的延遲,但當(dāng)可通過處理要求或微架構(gòu)設(shè)計約束命令順序執(zhí)行時,建立寫入權(quán)限的過程可導(dǎo)致嚴(yán)重延遲。此外,可能不得不在每次處理器希望寫入高速緩存線/塊時重復(fù)建立寫入權(quán)限的過程。
[0033]現(xiàn)參考示范性實施例,與常規(guī)實施方案的以上行為相比,示范性實施例在此第一情形下建立用于高速緩存塊CB的WDI狀態(tài)。同樣,在此第一情形下建立WDI狀態(tài)可能需要獲得寫入權(quán)限,但只針對第一次,從處理器102接收對高速緩存塊CB的寫入請求。對于常規(guī)實施方案,在示范性實施例中,此第一次獲得寫入權(quán)限可涉及窺探以確定高速緩存塊CB的任何其它副本是否存在于其它第一級高速緩沖存儲器(例如,與處理器104相關(guān)聯(lián)的LI高速緩沖存儲器108)中。然而,與常規(guī)實施方案相比,不必在建立WDI狀態(tài)之前將高速緩存塊CB的副本引入LI高速緩沖存儲器106中。
[0034]因此,在此第一情形下,一旦建立WDI狀態(tài),WDI狀態(tài)可永久地經(jīng)設(shè)定用于LI高速緩沖存儲器106中的高速緩存塊CB。這意味著對于高速緩存塊CB的任何未來寫入請求,消除了在LI高速緩沖存儲器106處等待寫入權(quán)限的需要,且寫入操作可繼續(xù),仿佛高速緩存塊CB處于M或E狀態(tài)。對高速緩存塊CB的未來寫入請求將觀察到WDI狀態(tài)經(jīng)斷言,且寫入操作可在不將數(shù)據(jù)寫入到LI高速緩沖存儲器106的情況下直接進(jìn)行到存儲器層級的下一級,例如,L2高速緩沖存儲器112。如自描述可見,WDI狀態(tài)可實施于直寫高速緩沖存儲器中。示范性WDI狀態(tài)還可擴(kuò)展到回寫高速緩沖存儲器實施方案。舉例來說,一旦在LI高速緩沖存儲器106中建立WDI狀態(tài),較高級別的高速緩沖存儲器(例如,L2高速緩沖存儲器112)可累積寫入,所述寫入通過LI高速緩沖存儲器106的WDI狀態(tài),其中L2高速緩沖存儲器112可實施為回寫高速緩沖存儲器。可進(jìn)一步定制一些實施例,以使得L2高速緩沖存儲器112的選定線可經(jīng)標(biāo)記用于累積通過提升到LI高速緩沖存儲器106中的WDI狀態(tài)的高速緩存塊CB的數(shù)據(jù),并且,這些選定線可遵循用于將累積的數(shù)據(jù)轉(zhuǎn)移到較高級別的存儲器/備用存儲位置的回寫策略。不管直寫或回寫策略是否適當(dāng),WDI狀態(tài)可表示其它高速緩沖存儲器不具有針對相關(guān)聯(lián)的高速緩存塊CB的讀取權(quán)限。
[0035]現(xiàn)將描述第二情形,其中對于高速緩存塊CB的寫入數(shù)據(jù)請求,遇到LI高速緩沖存儲器106中的未命中。換句話說,LI高速緩沖存儲器106缺少對應(yīng)于高速緩存塊CB的數(shù)據(jù),所述LI高速緩沖存儲器106對應(yīng)于處于無效(I)狀態(tài)的高速緩存塊CB。因此,高速緩存塊CB缺乏獨占性且不可寫入。如將撤回,對于常規(guī)M0ESI/MESI實施方案,處于I狀態(tài)的高速緩存塊CB可能需要遍歷存儲器層級的備用存儲級別以找到具有必要權(quán)限的高速緩存塊CB,從而將高速緩存塊CB提取到LI高速緩沖存儲器106中,且接著將請求的數(shù)據(jù)寫入到高速緩存塊CB。此外,因為所述寫入將導(dǎo)致新數(shù)據(jù)寫入到高速緩存塊CB,所以寫入將需要伴有回寫過程以確保更新的數(shù)據(jù)緩慢流過(trickle)各種級別的存儲器層級,且最終到達(dá)主存儲器114 (如果需要)。而且,對于常規(guī)實施方案,建立寫入權(quán)限還可能需要窺探高速緩存塊CB的其它副本。
[0036]然而,示范性實施例可背離第二情形中的常規(guī)實施方案,因此:一旦遇到未命中,意在修改讀取操作(read-with-1ntent-to-modify operat1n)可經(jīng)執(zhí)行以起始獲得寫入權(quán)限的過程,且可在LI高速緩沖存儲器106中分配用于高速緩存塊CB的高速緩存塊。分配用于高速緩存塊CB的高速緩存塊可通過阻隔或保留LI高速緩沖存儲器106中的高速緩存塊、通過將與高速緩存塊CB相關(guān)聯(lián)的標(biāo)簽分配到保留的高速緩存塊而執(zhí)行。如果LI高速緩沖存儲器106中不存在空位,那么保留的高速緩存塊可根據(jù)替換政策替換LI高速緩沖存儲器106中的現(xiàn)有條目中的一者,所述政策例如所屬領(lǐng)域中眾所周知的偽最近最少使用(pseudo least recently used ;PLRU)或隨機(jī)替換。
[0037]執(zhí)行意在修改讀取操作可涉及搜索具有必要權(quán)限的高速緩存塊CB。舉例來說,可在L2高速緩沖存儲器112中找到所述高速緩存塊CB。此后,執(zhí)行“無數(shù)據(jù)”提取,而不是將高速緩存塊CB提取到LI高速緩沖存儲器106中,S卩,僅從L2高速緩沖存儲器112獲得用于高速緩存塊CB的寫入權(quán)限到LI高速緩沖存儲器106中的所保留高速緩存塊。此過程之后,具有用于高速緩存塊CB的標(biāo)簽的保留的高速緩存塊提升到WDI狀態(tài)。如先前關(guān)于第一情形所述,用于高速緩存塊CB的任何未來寫入請求現(xiàn)將遇到WDI狀態(tài),且在不將數(shù)據(jù)寫入LI高速緩沖存儲器106的情況下繼續(xù)將數(shù)據(jù)寫入到存儲層級中的下一級備用存儲器中。一旦已建立WDI狀態(tài),就不必針對未來寫入獲得用于LI高速緩沖存儲器106中的所保留高速緩存塊的寫入權(quán)限及標(biāo)簽的重新分配。
[0038]在替代實施例中,可能對LI高速緩沖存儲器106中處于WDI狀態(tài)的數(shù)據(jù)高速緩存塊CB進(jìn)行寫入。然而,提供數(shù)據(jù)寫入的此類能力可能需要額外特征。舉例來說,如果高速緩存塊CB具有小于LI高速緩沖存儲器106中的整個高速緩存線的大小,那么可能需要提供對應(yīng)于高速緩存塊CB的字節(jié)啟用;可能必須啟用包括高速緩存塊CB的線的一部分的回寫;可能需要提供用于包括高速緩存塊CB的線的一部分的讀取命中確定能力,即使僅有線的所述部分是有效的也是如此;且在高速緩存塊CB中的線而非數(shù)據(jù)在讀取操作中命中的情況下必須提供將寫入數(shù)據(jù)合并到備用存儲器中的能力。雖然將了解,這些替代實施例在本發(fā)明的范圍內(nèi),但本文中的描述主要針對通過一旦建立WDI狀態(tài)就不將數(shù)據(jù)寫入到高速緩存塊CB中來繼續(xù)進(jìn)行寫入操作的實施例。
[0039]返回上述第二情形,LI高速緩沖存儲器106以及L2高速緩沖存儲器112中可能遇到高速緩存塊CB的未命中。L2高速緩沖存儲器112可繼續(xù)保持例如在LI高速緩沖存儲器106與LI高速緩沖存儲器108之間的一致點。在常規(guī)實施方案中,LI及L2高速緩沖存儲器中高速緩存塊CB的未命中可能需要從主存儲器提取包括高速緩存塊的高速緩存線,且在高速緩存塊可寫入LI高速緩沖存儲器之前,將此高速緩存線返回到LI及L2高速緩沖存儲器。如可輕易識別,處置LI及L2高速緩沖存儲器中的未命中的此過程可引起常規(guī)實施方案中的嚴(yán)重延遲。相比之下,示范性實施例可通過直接建立用于LI高速緩沖存儲器106中的高速緩存塊CB的WDI狀態(tài)來處置LI高速緩沖存儲器106及L2高速緩沖存儲器112中的未命中,從而避免將對應(yīng)高速緩存線從主存儲器114提取到L2高速緩沖存儲器112或LI高速緩沖存儲器106的任何需要。因此,在示范性實施例中極大減少由處理器102對高速緩存塊CB的寫入未命中引起的延遲。此外,在示范性實施例中,可更快速清除可包含用于保持將寫回到回寫高速緩沖存儲器架構(gòu)中的數(shù)據(jù)的寫入緩沖器的實施方案,這是因為關(guān)聯(lián)WDI狀態(tài)可在不涉及與獲得寫入權(quán)限相關(guān)聯(lián)的延遲的情況下允許對這些寫入緩沖器的直接直寫。
[0040]為完整性起見,現(xiàn)將簡略描述第三及第四情形。第三情形包括在具有必要寫入權(quán)限或獨占性的情況下遇到LI高速緩沖存儲器106中對高速緩存塊CB的命中。所述寫入權(quán)限或獨占性可對應(yīng)于獨占(E)狀態(tài)或修改(M)狀態(tài)。不管是處于E狀態(tài)還是M狀態(tài),對于常規(guī)實施方案,可對高速緩存塊CB執(zhí)行寫入。在第四情形中,遇到高速緩存塊CB不具有數(shù)據(jù)但具有獨占性。換句話說,第四情形表示以上述方式創(chuàng)建的WDI狀態(tài)。因此,在此第四情形中,在不引起任何額外延遲的情況下在示范性實施例中繼續(xù)進(jìn)行寫入操作。
[0041 ] 因此,可見,不管如何針對高速緩存塊CB建立WDI,一旦已建立WDI,那么繼續(xù)進(jìn)行示范性實施例中對高速緩存塊CB的全部寫入而不在LI高速緩沖存儲器106處遇到任何延遲,這是因為確保了寫入權(quán)限。將了解,LI高速緩沖存儲器106中的高速緩存塊CB不含任何有效數(shù)據(jù),但僅作為范例存在以指引對下一級別的存儲器層級的數(shù)據(jù)寫入。一旦處于下一較高級別的存儲器層級(例如,L2高速緩沖存儲器112),相關(guān)聯(lián)的L2高速緩沖存儲器目錄(未具體展示)就可具有必需的寫入權(quán)限。在示范性實施例中,如果L2高速緩沖存儲器112不具有必需的寫入權(quán)限,那么數(shù)據(jù)寫入可通過在L2高速緩沖存儲器112處建立相似WDI狀態(tài)以及將數(shù)據(jù)直寫到下一存儲器級來處置。在其它實施例中,隨后可為在L2高速緩沖存儲器112處建立對應(yīng)于高速緩存塊CB的(M)或(E)狀態(tài)的步驟。實施例還可使用在所屬領(lǐng)域中已知用于追蹤顯著未命中的機(jī)制(例如,未命中信息/狀態(tài)處置寄存器(MSHR)),以便在寫入權(quán)限在L2高速緩沖存儲器112處不可用時處置高速緩存塊CB的數(shù)據(jù)寫入。一些實施例還可在L2高速緩沖存儲器112級別處對高速緩存塊CB僅執(zhí)行數(shù)據(jù)的常規(guī)直寫。因此,一旦已在LI高速緩沖存儲器106處建立WDI狀態(tài),就可選擇合適的實施方案用于在下一較高級別的存儲器層級(例如,L2高速緩沖存儲器112)處處置對于高速緩存塊CB的數(shù)據(jù)寫入。
[0042]在一些實施方案中,WDI狀態(tài)可解釋為讀取操作的無效(I)狀態(tài)。因此,如果處理器102將請求對高速緩存塊CB中的數(shù)據(jù)的讀取操作,那么將遇到WDI狀態(tài)且認(rèn)識到其中可能找到的任何相關(guān)聯(lián)數(shù)據(jù)將會無效。以此方式,對于特定高速緩存塊的寫入操作可通過針對高速緩存塊建立WDI狀態(tài)來定制,從而加速寫入操作。
[0043]現(xiàn)參考圖4A-B,針對對應(yīng)讀取/寫入權(quán)限以維恩圖形式圖示常規(guī)實施方案與示范性實施例之間的上述區(qū)別。圖4A圖示常規(guī)MESI實施方案。區(qū)域402表示具有寫入及讀取權(quán)限的高速緩存塊CB的狀態(tài)。如圖所示,獨占(E)及修改(M)狀態(tài)歸入?yún)^(qū)域402。區(qū)域404表示具有讀取權(quán)限但不具有寫入權(quán)限的高速緩存塊CB的狀態(tài)。共享(S)狀態(tài)歸入?yún)^(qū)域402中。無效(I)狀態(tài)既不具有讀取權(quán)限也不具有寫入權(quán)限,且因此,I狀態(tài)圖示在區(qū)域402及404 外。
[0044]現(xiàn)轉(zhuǎn)向圖4B,圖示用于包含WDI狀態(tài)的示范性實施例的權(quán)限。類似于圖4A,區(qū)域406包括獨占(E)及修改(M)狀態(tài),所述狀態(tài)具有讀取及寫入權(quán)限,且區(qū)域404包括具有讀取權(quán)限但不具有寫入權(quán)限的(S)狀態(tài)。示范性WDI狀態(tài)歸入?yún)^(qū)域408中,所述區(qū)域408具有寫入權(quán)限但不具有讀取權(quán)限,因為其不具有有效數(shù)據(jù)。如前,無效(I)狀態(tài)既不具有讀取權(quán)限也不具有寫入權(quán)限。
[0045]在一些實施例中,可在兩個或兩個以上高速緩沖存儲器(例如,LI高速緩沖存儲器106及108)中共享同一高速緩存塊CB。因此,高速緩存塊CB的狀態(tài)可為共享(S)。然而,用于LI高速緩沖存儲器106及108中的高速緩存塊CB的條目可通過上述過程提升到WDI狀態(tài)。此后,處理器102及104可通過其對應(yīng)LI高速緩沖存儲器106及108將數(shù)據(jù)寫入到高速緩存塊CB而無需等待建立寫入權(quán)限,這是因為寫入權(quán)限已通過創(chuàng)建WDI狀態(tài)而建立。在這些實施例中,可能在下一較高級別的高速緩沖存儲器(例如,L2高速緩沖存儲器112)處引起爭用,這是因為對LI高速緩沖存儲器106及108中處于WDI狀態(tài)的高速緩存塊CB的獨立寫入。為了解決此類爭用,從兩個來源(LI高速緩沖存儲器106及108中處于WDI狀態(tài)的高速緩存塊CB)直寫到L2高速緩沖存儲器112的數(shù)據(jù)可排隊到中心一致點,且可允許最后寫入的數(shù)據(jù)贏得爭用。如果兩個寫入同時發(fā)生,那么選定的協(xié)議可適合于選擇延遲寫入中的一者。然而,將認(rèn)識到,實際上,此類爭用可能極其罕見,且可在起初指定編程模塊避免此類爭用。
[0046]另一方面,在一些實施例中,如果在LI高速緩沖存儲器106及108中共享高速緩存塊CB,那么當(dāng)條目中的一者提升到WDI狀態(tài)時,其它副本則可能失效。舉例來說,如果LI高速緩沖存儲器106中的高速緩存塊CB提升到WDI狀態(tài),那么處理器102 (或任何其它適當(dāng)邏輯)可將窺探失效請求(snoop-1nvalidate request)發(fā)送到處理器104 (或直接發(fā)送到LI高速緩沖存儲器108),以使用于LI高速緩沖存儲器108中的高速緩存塊CB的條目失效。以此方式,可確保只有一個LI高速緩沖存儲器可具有處于WDI狀態(tài)的高速緩存塊CB,從而確保L2高速緩沖存儲器目錄可具有用于指向至多一個LI高速緩沖存儲器的高速緩存塊CB的寫入權(quán)限。
[0047]如先前所述,上述過程并不限于任何特定大小的高速緩存塊。在一些實施例中,上述過程可用于將LI高速緩沖存儲器106中的高速緩存塊CB提升到WDI狀態(tài)。此后,L2高速緩沖存儲器112可將來自若干寫入操作的高速緩存塊合并到高速緩存線中。舉例來說,如果高速緩存線的大小為128位,且每一高速緩存塊的大小為32位,那么處理器102可對高速緩存線執(zhí)行32位高速緩存塊的四次寫入操作,所述寫入操作可通過具有針對每一 32位高速緩存塊斷言的WDI狀態(tài)的LI高速緩沖存儲器106。四個32位高速緩存塊接著可在其到達(dá)在L2高速緩沖存儲器112時累積且合并到128位高速緩存線中。此后,128位的合并高速緩存線可回寫到主存儲器114。此外,允許高速緩存塊CB的兩個或兩個以上共享副本(例如在LI高速緩沖存儲器106及108中)處于WDI狀態(tài)下的實施例,高速緩存塊寫入可在來自兩個來源(LI高速緩沖存儲器106及108)的L2高速緩沖存儲器112處合并。在一些實施例中,單獨聯(lián)合緩沖器或下游緩沖器(未展示)還可經(jīng)配置以合并來自LI高速緩沖存儲器106及108的高速緩存塊寫入而不涉及L2高速緩沖存儲器112以用于此類操作。
[0048]在一些示范性實施例中,較高級別的存儲器層級(例如,L2高速緩沖存儲器112)中的備用存儲元件還可經(jīng)配置以支持WDI狀態(tài)。換句話說,高速緩存塊CB的狀態(tài)也可提升到L2高速緩沖存儲器112的WDI狀態(tài)。這將導(dǎo)致寫入跳過將數(shù)據(jù)寫入LI高速緩沖存儲器106以及L2高速緩沖存儲器112中,且繼續(xù)進(jìn)行到較高級別的存儲器層級,例如,主存儲器114。因此,存儲器層級的任何數(shù)目個較高級別(直到最終主存儲器位置為止)可經(jīng)配置以通過跳過所有中間高速緩沖存儲器及備用存儲元件而使寫入操作直接寫入到最終存儲位置。此外,在一些實施例中,較高級別的高速緩沖存儲器(例如,L2高速緩沖存儲器112)還可支持其它狀態(tài),例如,用于高速緩存塊CB的獨占(E)或共享(S)??苫诙嗵幚砥飨到y(tǒng)100的特定應(yīng)用或需要來建立L2高速緩沖存儲器112中的高速緩存塊CB的狀態(tài)。此外,在一些實施例中,如先前所述用于合并的聯(lián)合緩沖器或其它下游緩沖器還可經(jīng)配置以支持WDI狀態(tài)。舉例來說,示范性聯(lián)合緩沖器可經(jīng)配置以支持合并對來自兩個不同來源(例如,LI高速緩沖存儲器106及108)的高速緩存塊CB的寫入。示范性聯(lián)合緩沖器中的高速緩存塊CB的合并版本可具有相關(guān)聯(lián)WDI狀態(tài),以使得示范性聯(lián)合緩沖器也可支持直寫操作。
[0049]現(xiàn)參考圖2,圖示根據(jù)示范性實施例建立用于第一高速緩存條目(例如,高速緩存塊CB)的WDI狀態(tài)的操作流程。操作流程在方框202處以來自處理器(例如,處理器102)的對于第一高速緩存條目的寫入請求而開始。在方框204處,查詢第一高速緩沖存儲器(例如,LI高速緩沖存儲器106)以確定第一高速緩存條目是否存在于其中。此后,取決于是否存在命中(例如,如上所述的第一情形)或未命中(例如,第二情形),操作流程在通往方框206及212的路徑之間分裂。
[0050]因此,如果第一高速緩存條目存在于第一高速緩沖存儲器中,那么操作流程進(jìn)入方框206,其中檢查高速緩存條目的一致性狀態(tài)及寫入權(quán)限。如果第一高速緩存條目處于獨占(E)或修改(M)狀態(tài),那么將確定已存在用于第一高速緩沖存儲器中的第一高速緩存條目的寫入權(quán)限。因此,寫入請求可基于回寫或直寫政策是否適當(dāng)而繼續(xù)進(jìn)行數(shù)據(jù)到第一高速緩沖存儲器的對應(yīng)寫入操作。換句話說,如果在方框206中,確定第一高速緩存條目處于E或M狀態(tài),那么操作流程直接轉(zhuǎn)變到方框224,如圖所示。
[0051]另一方面,如果在方框206處,確定第一高速緩存條目存在,但既不處于E狀態(tài)也不處于M狀態(tài),那么過程進(jìn)入方框208,其中(例如,通過先前嘗試由第一處理器將數(shù)據(jù)寫入第一高速緩存條目)來檢查第一高速緩存條目是否已被設(shè)定為WDI狀態(tài)。如果第一高速緩存條目已處于WDI狀態(tài),那么過程轉(zhuǎn)變到方框220,其中針對第一高速緩存條目維持WDI狀態(tài),且寫入操作相對于第一高速緩沖存儲器作為直寫繼續(xù)進(jìn)行且將數(shù)據(jù)寫入到如先前所述的下一級高速緩沖存儲器或備用存儲器。另一方面,如果在方框208處,確定第一高速緩存條目也不存在于WDI狀態(tài)中,那么過程進(jìn)入方框210,其中確定第一高速緩存條目必須處于共享(S)狀態(tài)。此后,過程進(jìn)入方框212。當(dāng)針對第一高速緩存條目存在未命中(例如,如先前所述的第二情形)時,或換句話說,當(dāng)?shù)谝桓咚倬彺鏃l目處于無效(I)狀態(tài)時,也可從方框204到達(dá)方框212。
[0052]現(xiàn)將描述方框212。在方框212中,如方框210中確定,假設(shè)第一高速緩存條目未命中(或者,處于無效(I)狀態(tài)),或處于共享(S)狀態(tài)。因此,在方框212中,不存在針對第一高速緩存條目的寫入權(quán)限。因此,獲得寫入權(quán)限的過程可例如通過執(zhí)行如先前所述的意在修改讀取操作而起始。此外,高速緩存條目可保留在第一高速緩沖存儲器中,且對應(yīng)于第一高速緩存條目的標(biāo)簽可分配到保留的高速緩存條目。
[0053]過程接著轉(zhuǎn)變到方框214,其中確定一致點。所述一致點可為下一級高速緩沖存儲器或備用存儲器(例如,L2高速緩沖存儲器112或主存儲器114)。一致點窺探所有其它參與高速緩沖存儲器(例如,LI高速緩沖存儲器108)以了解第一高速緩存條目是否處于其中?;诟Q探結(jié)果,可在一致點處檢索并聯(lián)合第一高速緩存條目的最新副本。
[0054]此后,在方框216處,確定第一高速緩存條目現(xiàn)在一致點處是否可用。如果第一高速緩存條目在一致點處不可用,那么為了建立E或M狀態(tài),對應(yīng)于第一高速緩存條目的數(shù)據(jù)將需要從備用存儲器提取。因此,與建立E或M狀態(tài)相關(guān)聯(lián)的成本將極高。因此,當(dāng)?shù)谝桓咚倬彺鏃l目在一致點處不可用時,建立WDI狀態(tài)將反而為較低成本解決方案。因此,在方框218處,WDI狀態(tài)經(jīng)建立用于第一高速緩沖存儲器處的第一高速緩存條目,且過程進(jìn)入方框220。如先前關(guān)于方框220所述,相對于第一高速緩沖存儲器作為直寫操作寫入對應(yīng)于第一高速緩存條目的數(shù)據(jù)。
[0055]另一方面,如果在方框216處,確定第一高速緩存條目處于具有所需寫入權(quán)限的一致點,那么與提取其中的數(shù)據(jù)相關(guān)聯(lián)的成本與檢索用于第一高速緩存條目的寫入權(quán)限的成本相同。在此情況下,第一高速緩存條目可在E或M狀態(tài)下提取,這是因為建立E或M狀態(tài)的成本將與建立WDI狀態(tài)的成本相同。因此,在一些實施例中,可將數(shù)據(jù)寫入到第一高速緩沖存儲器中的保留的高速緩存條目(作為第一高速緩存條目而分配),且保留的高速緩存條目的狀態(tài)可在方框222處設(shè)定為獨占(E)。在一些實施例中,可在方框216處維持智能目錄(未展示)以檢查對第一高速緩存條目的寫入請求。寫入請求可被視為意在修改讀取請求。智能目錄可基于第一高速緩存條目在一致點處是否可用來分析建立Μ/E狀態(tài)或WDI狀態(tài)涉及的延時。智能目錄接著可在第一高速緩存條目在一致點處可用時將第一高速緩存條目返回到E或M狀態(tài)下的第一高速緩沖存儲器,或在第一高速緩存條目在一致點處不可用時返回寫入權(quán)限(即,建立WDI狀態(tài))。
[0056]過程可從方框222進(jìn)入方框224。如先前所述,在方框224處,第一處理器可根據(jù)可能適當(dāng)?shù)幕貙懟蛑睂懖呗岳^續(xù)將數(shù)據(jù)寫入第一高速緩存條目。
[0057]現(xiàn)參考圖3,展示描繪第一高速緩沖存儲器(例如,LI高速緩沖存儲器106)中的第一高速緩存塊(例如,高速緩存塊CB)關(guān)于來自第一處理器(例如,處理器102)的寫入請求的一致狀態(tài)及伴隨轉(zhuǎn)變的狀態(tài)圖。根據(jù)示范性實施例的TOI狀態(tài)連同先前已描述的M/E/S/I狀態(tài)一起展示,以提供引入除示范性實施例中的常規(guī)M/E/S/I狀態(tài)之外的WDI狀態(tài)的實例。獨占(E)302、修改(M) 304、共享(S) 306及無效(I) 308狀態(tài)之間的轉(zhuǎn)變通??筛鶕?jù)已知技術(shù)配置。現(xiàn)將論述并入WDI 310狀態(tài)的值得注意的補(bǔ)充。
[0058]在用于第一高速緩存塊的狀態(tài)(1)308處開始,如果遇到寫入請求,那么可執(zhí)行意在修改讀取操作(類似于圖2的方框212)。如果第一高速緩存塊在一致點處可用,那么用于第一高速緩存塊的有效數(shù)據(jù)可從一致點檢索,且因此,狀態(tài)可從I 308轉(zhuǎn)變到E 302(類似于圖2的方框222)。另一方面,一致點可不具有用于第一高速緩存塊的有效數(shù)據(jù),且狀態(tài)可從I 308轉(zhuǎn)變到WDI 310。換句話說,到WDI 310的轉(zhuǎn)變可在可快速確定在一致點處沒有其它高速緩沖存儲器(例如,LI高速緩沖存儲器108)保持有第一高速緩存塊的副本時發(fā)生。
[0059]一旦處于狀態(tài)WDI 310,如果第二處理器(例如,處理器104)希望讀取第一高速緩存塊或希望在第一高速緩存塊上執(zhí)行意在修改讀取操作,那么狀態(tài)可轉(zhuǎn)變到I 308。為了實現(xiàn)此,第二處理器可基于特定設(shè)計考量而產(chǎn)生各種窺探操作。第二處理器可決定使地址對應(yīng)于第一高速緩存塊的任何高速緩存塊失效?;蛘?,如果先前發(fā)現(xiàn)第一高速緩存塊在第一高速緩沖存儲器中處于狀態(tài)E 302或M 304,那么第二處理器可請求第一高速緩存塊轉(zhuǎn)變到狀態(tài)S 306。在又一替代情形下,第二處理器可試圖繼續(xù)讀取處于狀態(tài)WDI310的第一高速緩存塊,此舉將導(dǎo)致轉(zhuǎn)變到狀態(tài)I 308。此后,可執(zhí)行讀取操作以提取對應(yīng)于第一高速緩存塊的數(shù)據(jù),所述第一高速緩存塊接著將狀態(tài)相應(yīng)地轉(zhuǎn)變到E 302或S 306。
[0060]所屬領(lǐng)域的技術(shù)人員將了解,可使用多種不同技術(shù)中的任一者來表示信息和信號。舉例來說,可由電壓、電流、電磁波、磁場或磁粒子、光場或光粒子或其任何組合來表不在以上描述中始終參考的數(shù)據(jù)、指令、命令、信息、信號、位、符號及碼片。
[0061]此外,所屬領(lǐng)域的技術(shù)人員將了解,結(jié)合本文所揭示的實施例而描述的各種說明性邏輯塊、模塊、電路和算法步驟可實施為電子硬件、計算機(jī)軟件或兩者的組合。為清楚說明硬件與軟件的此互換性,上文已大致關(guān)于其功能性而描述了各種說明性組件、塊、模塊、電路及步驟。此類功能性是實施為硬件還是軟件取決于特定應(yīng)用及強(qiáng)加于整個系統(tǒng)的設(shè)計約束。所屬領(lǐng)域的技術(shù)人員可針對每一特定應(yīng)用以不同方式來實施所描述的功能性,但此類實施決策不應(yīng)被解釋為會導(dǎo)致脫離本發(fā)明的范圍。
[0062]結(jié)合本文所揭示的實施例而描述的方法、序列和/或算法可直接以硬件、以由處理器執(zhí)行的軟件模塊或以兩者的組合體現(xiàn)。軟件模塊可駐留在RAM存儲器、快閃存儲器、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、可移除磁盤、CD-ROM,或所屬領(lǐng)域中已知的任何其它形式的存儲媒體中。示范性存儲媒體耦合到處理器,使得處理器可從存儲媒體讀取信息并將信息寫入到存儲媒體。在替代方案中,存儲媒體可與處理器成一體式。
[0063]參考圖5,描繪無線裝置的特定說明性實施例的框圖且通常將其標(biāo)示為500,所述無線裝置包含根據(jù)示范性實施例配置的多核處理器。裝置500包含數(shù)字信號處理器(DSP) 564,所述DSP 564可包含圖1的組件,例如,處理器102、104、L1高速緩沖存儲器106、108及耦合到存儲器532的L2高速緩沖存儲器112,如圖所示。圖5還展示耦合到DSP 564且耦合到顯示器528的顯示控制器526。譯碼器/解碼器(編碼解碼器)534(例如,音頻和/或語音編碼解碼器)可耦合到DSP 564。還圖示其它組件,例如,無線控制器540 (可包含調(diào)制解調(diào)器)。揚聲器536及麥克風(fēng)538可耦合到編碼解碼器534。圖5還指示無線控制器540可耦合到無線天線542。在特定實施例中,DSP 564、顯示控制器526、存儲器532、編碼解碼器534及無線控制器540包含在系統(tǒng)級封裝或系統(tǒng)級芯片裝置522中。
[0064]在特定實施例中,輸入裝置530及電力供應(yīng)器544耦合到系統(tǒng)級芯片裝置522。此外,在特定實施例中,如圖5中所示,顯示器528、輸入裝置530、揚聲器536、麥克風(fēng)538、無線天線542及電力供應(yīng)器544在系統(tǒng)級芯片裝置522外部。然而,顯示器528、輸入裝置530、揚聲器536、麥克風(fēng)538、無線天線542及電力供應(yīng)器544中的每一者可耦合到系統(tǒng)級芯片裝置522的組件,例如,接口或控制器。
[0065]應(yīng)注意,雖然圖5描繪無線通信裝置,但DSP 564及存儲器532也可集成到機(jī)頂盒、音樂播放器、視頻播放器、娛樂單元、導(dǎo)航裝置、個人數(shù)字助理(PDA)、固定位置數(shù)據(jù)單元或計算機(jī)中。處理器(例如,DSP 564)還可集成到此類裝置中。
[0066]因此,本發(fā)明的實施例可包含體現(xiàn)訪問多處理器系統(tǒng)中的存儲器并維持一致性的方法的計算機(jī)可讀媒體。因此,本發(fā)明并不限于所說明的實例,且用于執(zhí)行本文中所描述的功能性的任何裝置均包括在本發(fā)明的實施例中。
[0067]雖然前述揭示內(nèi)容展示本發(fā)明的說明性實施例,但應(yīng)注意,可在不脫離如所附權(quán)利要求書界定的本發(fā)明的范圍的情況下,在其中做出各種改變和修改。無需以任何特定次序來執(zhí)行根據(jù)本文中所述的本發(fā)明的實施例的方法權(quán)利要求項的功能、步驟及/或動作。此外,盡管可以單數(shù)形式描述或主張本發(fā)明的元件,但除非明確陳述對于單數(shù)的限制,否則也涵蓋復(fù)數(shù)形式。
【權(quán)利要求】
1.一種維持多處理器系統(tǒng)(100)中的一致性的方法,其包括: 建立狀態(tài),所述狀態(tài)包含:用于第一高速緩沖存儲器(106)中的第一高速緩存條目的寫入數(shù)據(jù)無效WDI狀態(tài)(310),其中所述WDI狀態(tài)包括與所述第一高速緩沖存儲器相關(guān)聯(lián)的第一處理器(102)針對所述第一處理器對所述高速緩存條目的寫入請求而寫入一或多個較高級別的存儲器層級(112、114)的權(quán)限,且其中所述WDI狀態(tài)被視為所述第一處理器對所述第一高速緩存條目的讀取請求的無效狀態(tài)。
2.根據(jù)權(quán)利要求1所述的方法,其中所述第一高速緩存條目為高速緩存塊。
3.根據(jù)權(quán)利要求1所述的方法,其中所述第一高速緩存條目為高速緩存線。
4.根據(jù)權(quán)利要求1所述的方法,其中建立所述WDI狀態(tài)進(jìn)一步包括:為所述第一高速緩存條目分配標(biāo)簽。
5.根據(jù)權(quán)利要求1所述的方法,其中對于讀取,所述第一高速緩存條目不要求重新分配標(biāo)簽。
6.根據(jù)權(quán)利要求1所述的方法,其中所述第一高速緩存條目在WDI狀態(tài)下存在于與第二處理器相關(guān)聯(lián)的第二高速緩沖存儲器中。
7.根據(jù)權(quán)利要求1所述的方法,其中建立所述WDI狀態(tài)包括:確定無所述第一高速緩存條目的有效/已更改副本存在于所述多處理器系統(tǒng)的其它高速緩沖存儲器中。
8.根據(jù)權(quán)利要求1所述的方法,其中建立用于所述第一高速緩存條目的所述WDI狀態(tài)進(jìn)一步包括:禁止將所述第一高速緩存條目提取到所述第一高速緩沖存儲器中。
9.根據(jù)權(quán)利要求1所述的方法,其中在所述WDI狀態(tài)下對所述第一高速緩存條目的寫入操作進(jìn)一步包括:將窺探失效發(fā)送到包括所述第一高速緩存條目的其它高速緩沖存儲器。
10.根據(jù)權(quán)利要求9所述的方法,其中將窺探失效發(fā)送到包括所述第一高速緩存條目的其它高速緩沖存儲器包括:只將窺探失效發(fā)送到包括在共享狀態(tài)下的所述第一高速緩存條目的其它高速緩沖存儲器。
11.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括:將第二級高速緩沖存儲器配置在較高級別的存儲器層級中以累積來自所述第一高速緩沖存儲器的存儲并將所述存儲合并到高速緩存線中。
12.根據(jù)權(quán)利要求11所述的方法,其中如果所述第二級高速緩沖存儲器不是一致性的最后一級,那么配置所述第二級高速緩沖存儲器以支持所述第一高速緩存條目的至少WD1、獨占及修改狀態(tài)。
13.—種多處理器系統(tǒng)(100),其包括: 第一處理器(102); 第一高速緩沖存儲器(106); 一或多個較高級別的存儲器層級(112、114);及 寫入數(shù)據(jù)無效WDI狀態(tài)(310),所述WDI狀態(tài)(310)與所述第一高速緩沖存儲器的第一高速緩存條目相關(guān)聯(lián),其中所述WDI狀態(tài)包括所述第一處理器針對所述第一處理器對所述第一高速緩存條目的寫入請求而寫入所述一或多個較高級別的存儲器層級的權(quán)限,且其中所述WDI狀態(tài)被視為所述第一處理器對于所述第一高速緩存條目的讀取請求的無效狀態(tài)。
14.一種設(shè)備,其包括用于執(zhí)行根據(jù)權(quán)利要求1至12中任一權(quán)利要求所述的方法的裝置。
15.一種計算機(jī)程序產(chǎn)品,其包括計算機(jī)可讀媒體,所述計算機(jī)可讀媒體包括用于致使計算機(jī)或處理器執(zhí)行根據(jù)權(quán)利要求1至12中任一權(quán)利要求所述的方法的至少一個指令。
【文檔編號】G06F12/08GK104246726SQ201380020289
【公開日】2014年12月24日 申請日期:2013年4月17日 優(yōu)先權(quán)日:2012年4月18日
【發(fā)明者】克里斯托弗·愛德華·科布, 達(dá)娜·M·萬特雷斯 申請人:高通股份有限公司