專利名稱:具有監(jiān)聽請求選擇性無效的數(shù)據(jù)處理系統(tǒng)和用于其的方法
技術(shù)領(lǐng)域:
本公開一般地涉及數(shù)據(jù)處理,并且更具體地涉及具有監(jiān)聽請求選擇性無效的數(shù)據(jù)處理系統(tǒng)和用于其的方法。
背景技術(shù):
在具有多個高速緩存的多處理器數(shù)據(jù)處理系統(tǒng)中,高速緩存一致性管理器(CCM) 有時被用于確保在高速緩存和主存儲器之間保持一致性。CCM可使用被稱為監(jiān)聽的方法來保持一致性并且可包括用于系統(tǒng)中每一個處理器的監(jiān)聽事務(wù)條目的隊列。在某些系統(tǒng)中, 監(jiān)聽請求不需要立即的響應(yīng),所以隊列可保持用于處理的許多條目。在系統(tǒng)可進(jìn)入低功率模式,或者在高速緩存離線時執(zhí)行另一個操作之前,全部掛起的監(jiān)聽請求被首先處理。這可能花費大量的時間,使數(shù)據(jù)處理系統(tǒng)的后續(xù)操作延遲。因此,所需要的是解決上面問題的數(shù)據(jù)處理系統(tǒng)。
通過示例的方式說明本發(fā)明并且其不受附圖的限制,在附圖中相同的附圖標(biāo)記表示相似的元件。出于簡單和清楚的目的示出附圖中的元件并且其不一定按比例繪制。圖1是根據(jù)一個實施例的數(shù)據(jù)處理系統(tǒng)的框圖。圖2是圖1的數(shù)據(jù)處理系統(tǒng)的處理器的一部分的一個實施例的框圖。圖3是根據(jù)一個實施例的高速緩存一致性管理器的一部分的一個實施例的框圖。圖4是數(shù)據(jù)處理系統(tǒng)的各種信號的時序圖。
具體實施例方式一般地,提供了一種具有高速緩存一致性管理器(CCM)的多處理器數(shù)據(jù)處理系統(tǒng)。每一個處理器具有需要與系統(tǒng)中的一個或多個其它存儲器保持一致性的高速緩存。監(jiān)聽操作被用于保持一致性。CCM控制監(jiān)聽操作并且包含掛起的監(jiān)聽操作的一個或多個隊列。 在所公開的實施例中提供了“握手”操作,其中處理器基于處理器的寄存器中存儲的監(jiān)聽隊列無效比特的狀態(tài)來提供控制信號以向CCM指示在禁用高速緩存之前完成掛起的監(jiān)聽請求,或者在禁用高速緩存之前使監(jiān)聽隊列中掛起的監(jiān)聽條目無效。該選擇性控制允許正常禁用,或者通過無效禁用。在正常禁用中,在禁用高速緩存之前完成掛起的監(jiān)聽請求。在“通過無效禁用”中,在禁用高速緩存之前使掛起的并且未被完成的監(jiān)聽請求無效。在所公開實施例中提供正常禁用和通過無效禁用,因為不是每一次禁用都會導(dǎo)致高速緩存無效。艮口, 例如某些類型的高速緩存禁用請求必須完成對掛起的監(jiān)聽請求的處理,以便進(jìn)入低功率模式,其中高速緩存內(nèi)容將保持有效。在一個實施例中,監(jiān)聽隊列無效比特可由處理器上運(yùn)行的軟件控制。在一個方面,在具有系統(tǒng)互連(interconnect)、耦合到系統(tǒng)互連的處理器以及耦合到系統(tǒng)互連的高速緩存一致性管理器(CCM)的數(shù)據(jù)處理系統(tǒng)中,其中處理器包括高速緩存,提供了一種方法,該方法包括由CCM生成對處理器的高速緩存的一個或多個監(jiān)聽請求;將對處理器的高速緩存的一個或多個監(jiān)聽請求存儲在監(jiān)聽隊列中;設(shè)置高速緩存啟用指示符來指示處理器的高速緩存將被禁用;響應(yīng)于設(shè)置高速緩存啟用指示符來指示處理器的高速緩存將被禁用,選擇性地使對處理器的高速緩存的一個或多個監(jiān)聽請求無效,其中基于處理器的無效監(jiān)聽隊列指示符來執(zhí)行選擇性無效;和禁用高速緩存。該方法還可包括 由處理器向CCM提供高速緩存啟用信號,其中響應(yīng)于指示高速緩存將被禁用的高速緩存啟用指示符,處理器設(shè)置高速緩存啟用信號以向CCM指示高速緩存將被禁用。CCM可包括監(jiān)聽隊列,并且其中該方法還可包括由處理器向CCM提供無效監(jiān)聽隊列信號,其指示是否使對處理器的高速緩存的一個或多個監(jiān)聽請求無效。當(dāng)高速緩存啟用信號從指示啟用高速緩存轉(zhuǎn)變?yōu)橹甘緦⒔酶咚倬彺鏁r,如果無效監(jiān)聽隊列信號具有第一狀態(tài)則可使監(jiān)聽隊列中對處理器的高速緩存的一個或多個監(jiān)聽請求無效,并且如果無效監(jiān)聽隊列信號具有第二狀態(tài)則可不使對處理器的高速緩存的一個或多個監(jiān)聽請求無效。當(dāng)高速緩存啟用信號從指示啟用高速緩存轉(zhuǎn)變?yōu)橹甘緦⒔酶咚倬彺鏁r,如果無效監(jiān)聽隊列信號具有第二狀態(tài)則可在禁用高速緩存的步驟之前完成對處理器的高速緩存的一個或多個監(jiān)聽請求。高速緩存啟用指示符和無效監(jiān)聽隊列指示符中的每一個可以是用戶可編程的。在處理器進(jìn)入低功率模式或測試模式時可執(zhí)行禁用高速緩存的步驟。數(shù)據(jù)處理系統(tǒng)可包括耦合到系統(tǒng)互連的第二處理器,其中第二處理器包括高速緩存,其中該方法還可包括由CCM生成對第二處理器的高速緩存的一個或多個監(jiān)聽請求;將對第二處理器的高速緩存的一個或多個監(jiān)聽請求存儲在第二監(jiān)聽隊列中;設(shè)置第二處理器的第二高速緩存啟用指示符來指示第二處理器的高速緩存將被禁用;響應(yīng)于設(shè)置第二高速緩存啟用指示符來指示第二處理器的高速緩存將被禁用, 選擇性地使對第二處理器的高速緩存的一個或多個監(jiān)聽請求無效,其中基于第二處理器的第二無效監(jiān)聽隊列指示符來執(zhí)行選擇性無效;和禁用第二處理器的高速緩存。該方法還可包括由第二處理器向CCM提供第二高速緩存啟用信號和第二無效監(jiān)聽隊列信號。響應(yīng)于設(shè)置高速緩存啟用指示符來指示將禁用處理器的高速緩存,處理器的無效監(jiān)聽隊列指示符可指示使對處理器的高速緩存的一個或多個監(jiān)聽隊列請求無效,并且響應(yīng)于設(shè)置第二高速緩存啟用指示符來指示將禁用第二處理器的高速緩存,第二處理器的第二無效監(jiān)聽隊列指示符可指示不使對第二處理器的高速緩存的一個或多個監(jiān)聽請求無效。
在另一個方面,提供了一種數(shù)據(jù)處理系統(tǒng),其包括系統(tǒng)互連;耦合到系統(tǒng)互連的處理器,其中處理器包括高速緩存;存儲無效監(jiān)聽隊列指示符的第一存儲電路;和存儲高速緩存啟用指示符的第二存儲電路;以及耦合到系統(tǒng)互連的高速緩存一致性管理器 (CCM),高速緩存一致性管理器具有對應(yīng)于處理器的第一監(jiān)聽隊列,其中高速緩存一致性管理器生成被存儲在第一監(jiān)聽隊列中的用于處理器的監(jiān)聽請求,其中響應(yīng)于高速緩存啟用指示符被設(shè)置為指示處理器的高速緩存將被禁用,基于無效監(jiān)聽隊列指示符來選擇性地使第一監(jiān)聽隊列中用于處理器的監(jiān)聽請求無效。處理器可提供高速緩存啟用信號,其中高速緩存啟用信號向CCM指示何時要禁用高速緩存。處理器可向CCM提供無效監(jiān)聽隊列信號,其中當(dāng)高速緩存啟用信號從指示啟用高速緩存轉(zhuǎn)變?yōu)橹甘疽酶咚倬彺鏁r,無效監(jiān)聽隊列信號可向CCM指示是否使對處理器的高速緩存的一個或多個監(jiān)聽請求無效。處理器可包括處理器監(jiān)聽隊列,其中響應(yīng)于指示將禁用高速緩存的高速緩存啟用指示符,基于無效監(jiān)聽隊列指示符來選擇性地使處理器監(jiān)聽隊列無效。數(shù)據(jù)處理系統(tǒng)還可包括耦合到系統(tǒng)互連的第二處理器,其中第二處理器包括第二高速緩存;存儲第二無效監(jiān)聽隊列指示符的第三存儲電路;和存儲第二高速緩存啟用指示符的第四存儲電路;其中高速緩存一致性管理器具有對應(yīng)于第二處理器的第二監(jiān)聽隊列,其中高速緩存一致性管理器生成存儲在第二監(jiān)聽隊列中的用于第二處理器的監(jiān)聽請求,其中響應(yīng)于第二高速緩存啟用指示符被設(shè)置為指示第二處理器的第二高速緩存將被禁用,基于第二無效監(jiān)聽隊列指示符來選擇性地使第二監(jiān)聽隊列中用于第二處理器的監(jiān)聽請求無效。第二處理器可提供第二高速緩存啟用信號,其中第二高速緩存啟用信號向CCM指示何時將禁用第二高速緩存;并且第二處理器可向CCM 提供第二無效監(jiān)聽隊列信號,其中當(dāng)?shù)诙咚倬彺鎲⒂眯盘枏闹甘締⒂玫诙咚倬彺孓D(zhuǎn)變?yōu)橹甘緦⒔玫诙咚倬彺鏁r,第二無效監(jiān)聽隊列信號可向CCM指示是否使第二監(jiān)聽隊列中用于第二處理器的監(jiān)聽請求無效。在又一個實施例中,數(shù)據(jù)處理系統(tǒng)包括系統(tǒng)互連;耦合到系統(tǒng)互連的處理器,其中處理器包括高速緩存;存儲無效監(jiān)聽隊列指示符的第一存儲電路;和存儲高速緩存啟用指示符的第二存儲電路;以及耦合到系統(tǒng)互連的高速緩存一致性管理器(CCM),高速緩存一致性管理器具有對應(yīng)于處理器的第一監(jiān)聽隊列,其中高速緩存一致性管理器生成被存儲在第一監(jiān)聽隊列中的用于處理器的監(jiān)聽請求;基于高速緩存啟用指示符從處理器向CCM 提供的高速緩存啟用信號,其中高速緩存啟用信號向CCM指示何時將禁用高速緩存;基于無效監(jiān)聽隊列指示符從處理器向CCM提供的無效監(jiān)聽隊列信號,其中當(dāng)高速緩存啟用信號從指示啟用高速緩存轉(zhuǎn)變?yōu)橹甘緦⒔酶咚倬彺鏁r,無效監(jiān)聽隊列信號向CCM指示是否使用于處理器的監(jiān)聽請求無效,其中響應(yīng)于高速緩存啟用信號從指示啟用高速緩存轉(zhuǎn)變?yōu)橹甘緦⒔酶咚倬彺?,CCM基于無效監(jiān)聽隊列信號選擇性地使第一監(jiān)聽隊列中用于處理器的監(jiān)聽請求無效。處理器可包括處理器監(jiān)聽隊列,其中響應(yīng)于高速緩存啟用指示符指示將禁用高速緩存,基于無效監(jiān)聽隊列指示符來選擇性地使處理器監(jiān)聽隊列無效。數(shù)據(jù)處理系統(tǒng)還可包括耦合到系統(tǒng)互連的第二處理器,其中處理器包括第二高速緩存;存儲第二無效監(jiān)聽隊列指示符的第三存儲電路;和存儲第二高速緩存啟用指示符的第四存儲電路;基于第二高速緩存啟用指示符從處理器向CCM提供的第二高速緩存啟用信號,其中第二高速緩存啟用信號向CCM指示何時將禁用第二高速緩存;和基于第二無效監(jiān)聽隊列指示符從第二處理器向CCM提供的第二無效監(jiān)聽隊列信號,其中當(dāng)?shù)诙咚倬彺鎲⒂眯盘枏闹甘締⒂玫诙咚倬彺孓D(zhuǎn)變?yōu)橹甘緦⒔玫诙咚倬彺鏁r,第二無效監(jiān)聽隊列信號向CCM指示是否使用于第二處理器的監(jiān)聽請求無效,其中CCM具有對應(yīng)于第二處理器的第二監(jiān)聽隊列并且 CCM生成被存儲在第二監(jiān)聽隊列中的用于第二處理器的監(jiān)聽請求,并且其中響應(yīng)于第二高速緩存啟用信號從指示啟用第二高速緩存轉(zhuǎn)變?yōu)橹甘疽玫诙咚倬彺妫珻CM基于第二無效監(jiān)聽隊列信號選擇性地使第二監(jiān)聽隊列中用于第二處理器的監(jiān)聽請求無效。如這里所使用的,術(shù)語“總線”被用于指代可用于傳送一種或多種不同類型的信息,諸如數(shù)據(jù)、地址、控制或狀態(tài)的多個信號或?qū)w。如這里所述的導(dǎo)體可關(guān)于單個導(dǎo)體、 多個導(dǎo)體、單向?qū)w或雙向?qū)w而被說明或描述。然而,不同的實施例可改變導(dǎo)體的實施方式。例如,可使用分離的單向?qū)w而不是雙向?qū)w,并且反之亦然。此外,可用串行或以時分復(fù)用方式傳送多個信號的單個導(dǎo)體來代替多個導(dǎo)體。同樣,承載多個信號的單個導(dǎo)體可被分為承載這些信號的子集的各種不同導(dǎo)體。因此,存在用于傳送信號的許多選擇。術(shù)語“確立”或“設(shè)置”和“否定”(或“取消確立”或“清除”)在這里被用于指代
8將信號、狀態(tài)比特或類似裝置分別呈現(xiàn)為它的邏輯真或邏輯假狀態(tài)。如果邏輯真狀態(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。注意,這里描述的任何信號可被設(shè)計為負(fù)邏輯或正邏輯信號。因此,在替代實施例中, 被描述為正邏輯信號的那些信號可被實現(xiàn)為負(fù)邏輯信號,并且被描述為負(fù)邏輯信號的那些信號可被實現(xiàn)為正邏輯信號。圖1以框圖形式示出了根據(jù)實施例的數(shù)據(jù)處理系統(tǒng)10。數(shù)據(jù)處理系統(tǒng)10包括處理器14、處理器16、高速緩存一致性管理器(CCM) 18、系統(tǒng)事務(wù)仲裁器32、系統(tǒng)存儲器20、 其它主設(shè)備22、其它從設(shè)備M、和輸入/輸出(I/O)設(shè)備26。圖1中所示的設(shè)備以通信的方式耦合到系統(tǒng)互連12,但是在其它實施例中可通過其它類型的系統(tǒng)互連來耦合。例如, 所示的設(shè)備可通過包括縱橫開關(guān)或其它類型開關(guān)的系統(tǒng)互連,或者包括總線、多條總線和/ 或開關(guān)的系統(tǒng)互連來以通信的方式耦合。在一個實施例中,系統(tǒng)互連可包括用于地址、數(shù)據(jù)和控制信息的多條信號線。系統(tǒng)事務(wù)仲裁器32針對系統(tǒng)互連12上的事務(wù)在系統(tǒng)10的各種主設(shè)備之間進(jìn)行仲裁。輸入/輸出設(shè)備26可以是任何數(shù)量的I/O設(shè)備,諸如鍵盤控制器和通信端口。其它從設(shè)備M可包括存儲器設(shè)備,諸如系統(tǒng)高速緩存(例如L2高速緩存),或者任何類型的從設(shè)備或外圍設(shè)備。設(shè)備M和26可被系統(tǒng)的主設(shè)備(例如處理器14、處理器16或其它主設(shè)備22)生成的系統(tǒng)互連12上的事務(wù)來訪問。在一個實施例中,其它主設(shè)備22包括其它類型的處理器(例如數(shù)字信號處理器)或可生成系統(tǒng)互連12上的事務(wù)的直接存儲器存取 (DMA)設(shè)備。在一個實施例中,每一個主設(shè)備也可包括高速緩存(未示出)。在所示的實施例中,系統(tǒng)10包括高速緩存一致性管理器18與處理器14和16中的每一個之間的監(jiān)聽控制接口,用于交換關(guān)于監(jiān)聽操作的信息。例如,系統(tǒng)10包括處理器 14和CCM 18之間的監(jiān)聽控制接口 1以及處理器16和CCM 18之間的監(jiān)聽控制接口 2。在所示的實施例中,兩個監(jiān)聽控制接口都包括監(jiān)聽請求線(監(jiān)聽請求)和監(jiān)聽狀態(tài)線(監(jiān)聽狀態(tài))。替代實施例可在監(jiān)聽控制接口內(nèi)包括更多或不同的線或信號。系統(tǒng)10包括處理器14所提供并且被傳遞到CCM 18的數(shù)據(jù)高速緩存啟用信號 DCACHE_EN1,和從處理器14傳遞到CCM 18的無效監(jiān)聽隊列信號INV_SN00PQ1。此外,系統(tǒng)包括處理器16所提供并且被傳遞到CCM 18的數(shù)據(jù)高速緩存啟用信號DCACHE_EN2,和從處理器16傳遞到CCM 18的無效監(jiān)聽隊列信號INV_SN00PQ2。在其它實施例中,其它類型的數(shù)據(jù)系統(tǒng)可包括不同的配置和/或具有另外的電路。此外,其它實施例可能沒有圖1中所示的全部電路。在一個實施例中,圖1中所示的某些或全部電路可被實現(xiàn)在一個集成電路上。然而,在其它實施例中,系統(tǒng)10可用多個集成電路來實現(xiàn)。在一個實施例中,系統(tǒng)10可被實現(xiàn)為信息系統(tǒng)的一部分,該信息系統(tǒng)例如為計算機(jī)、蜂窩電話、PDA、汽車的電子控制電路、或?qū)崿F(xiàn)數(shù)據(jù)處理系統(tǒng)的其它類型的系統(tǒng)。高速緩存一致性管理器18 (其也可被稱為高速緩存一致性邏輯)針對事務(wù)來監(jiān)聽系統(tǒng)互連12并且發(fā)起對系統(tǒng)10的各高速緩存(例如高速緩存觀、高速緩存30)的監(jiān)聽請求。在一個實施例中,CCM 18可發(fā)送無效類型監(jiān)聽請求以確定系統(tǒng)10的高速緩存是否包括事務(wù)的數(shù)據(jù)操作對象(例如訪問地址),使得可保持高速緩存一致性。在一個實施例中, 如果高速緩存包含數(shù)據(jù)操作對象,那么該高速緩存將響應(yīng)于無效類型監(jiān)聽請求來使該數(shù)據(jù)操作對象無效??杀O(jiān)聽事務(wù)的一個示例是由處理器16對系統(tǒng)存儲器20的寫事務(wù),用于將數(shù)據(jù)寫入到存儲器20中的位置。響應(yīng)于該事務(wù),CCM 18可生成對其它高速緩存(例如高速緩存觀)的無效類型監(jiān)聽請求,以搜索相同存儲器地址的數(shù)據(jù)。如果高速緩存具有對應(yīng)于相同存儲器地址的條目,那么高速緩存將使該數(shù)據(jù)無效,因為在系統(tǒng)互連12上被更新的版本正被提供到存儲器20。在替代實施例中,響應(yīng)于可監(jiān)聽寫事務(wù),高速緩存一致性管理器 18可生成對其它高速緩存的刷新(flush)類型監(jiān)聽請求,其中如果高速緩存具有對應(yīng)于相同地址的條目,那么高速緩存可通過從高速緩存找寫入數(shù)據(jù)的源并且如果找到了匹配條目則用新數(shù)據(jù)更新存儲器20,來對刷新類型監(jiān)聽請求進(jìn)行響應(yīng)。基于系統(tǒng)10的各個組件所使用的一種或多種特定高速緩存一致性協(xié)議,也可由CCM 18生成對系統(tǒng)10內(nèi)的高速緩存的其它類型的監(jiān)聽請求。這些一致性協(xié)議是本領(lǐng)域技術(shù)人員眾所周知的,并且可包括MESI、 MOESI或其它協(xié)議及其變體。還要注意,在替代實施例中,CCM 18的電路和功能可分布于系統(tǒng)10的某些或全部主設(shè)備,或者可位于系統(tǒng)10中的別處。在一個實施例中,高速緩存一致性管理器18與處理器14和16中的每一個之間的監(jiān)聽請求信號接口包括用于指示正在做出監(jiān)聽請求的請求信號線,指示響應(yīng)于生成監(jiān)聽的事務(wù)類型而將被執(zhí)行的命令類型的監(jiān)聽命令線,作為正被監(jiān)聽的事務(wù)的地址的監(jiān)聽地址線,以及監(jiān)聽請求ID線(未示出),其為由識別監(jiān)聽請求的高速緩存一致性管理器18生成的值。這些信號線可以是多個比特(在某些實施例中并行或者串行),或者在某些實施例中為單個比特。在某些系統(tǒng)中,在正常系統(tǒng)操作的專用時隙中的操作期間,高速緩存觀和30可定期離線。在該時隙期間,檢查高速緩存以發(fā)現(xiàn)硬錯誤和軟錯誤。該維護(hù)操作通常由BIST(內(nèi)置自測)算法來執(zhí)行。當(dāng)完成時,使高速緩存觀和30無效并且然后針對正常操作將其重新啟用。在其它時間,諸如在低功率模式中的操作期間,禁用高速緩存觀和30,旨在在低功率模式結(jié)束時以相同的狀態(tài)使它們恢復(fù)。在任何禁用高速緩存的情況下,不論是否要以相同的狀態(tài)重新激活高速緩存,在禁用高速緩存之前都完成對于對應(yīng)處理器的全部掛起的監(jiān)聽請求。在禁用高速緩存之前完成監(jiān)聽請求可能花費大量的時間,因為在對應(yīng)于該特定高速緩存的監(jiān)聽隊列中可能存在多個掛起的監(jiān)聽請求。如果例如因為高速緩存上的維護(hù)操作而禁用高速緩存,那么在時隙中可能沒有足夠的時間來在該時隙期滿前完成隊列中掛起的監(jiān)聽請求并且檢查高速緩存。所公開的實施例提供了下述機(jī)制該機(jī)制基于例如存儲在處理器的寄存器中的監(jiān)聽隊列無效指示符比特的狀態(tài)在禁用高速緩存之前完成掛起的監(jiān)聽請求或者在禁用高速緩存之前使監(jiān)聽隊列中的掛起條目無效。在一個實施例中,監(jiān)聽隊列無效比特可由處理器上運(yùn)行的軟件控制。圖2是數(shù)據(jù)處理系統(tǒng)10的處理器14的一部分的框圖。在圖2中,處理器14包括高速緩存觀、處理電路40、仲裁器42、總線接口單元(BIU) 48、監(jiān)聽控制M和監(jiān)聽隊列電路 44。
處理電路40可包括通常在處理器中存在的電路,諸如,例如指令通道單元、執(zhí)行單元、指令獲取單元、控制電路、通用寄存器、加載存儲單元和預(yù)獲取單元。其它實施例的處理器可包括其它類型的電路。在一個實施例中,在處理器操作期間,處理電路40執(zhí)行生成對要從系統(tǒng)存儲器 20 (或者其它從設(shè)備或I/O設(shè)備)讀取的數(shù)據(jù)和要寫入到系統(tǒng)存儲器20 (或者其它從設(shè)備或I/O設(shè)備)的數(shù)據(jù)的請求的指令。響應(yīng)于對具有系統(tǒng)存儲器地址的數(shù)據(jù)(例如由電路40 的加載/存儲單元或預(yù)獲取單元生成的)的請求,處理電路40將檢查高速緩存觀(經(jīng)由仲裁器42)以查看它是否具有對應(yīng)于該系統(tǒng)存儲器地址的任何數(shù)據(jù)。如果沒有,處理電路40 的加載存儲單元將經(jīng)由BIU 48在系統(tǒng)互連總線12上生成事務(wù),以從存儲器20請求該系統(tǒng)地址處的數(shù)據(jù)。響應(yīng)于讀取事務(wù),系統(tǒng)存儲器20將向處理器14提供在系統(tǒng)互連總線12上的所請求數(shù)據(jù),其中BIU 48接收數(shù)據(jù)并且將數(shù)據(jù)提供到處理電路40并且在某些實施例中提供到高速緩存觀。在由處理器14接收數(shù)據(jù)之后,事務(wù)完成。對存儲器20的寫入事務(wù)可由處理器14發(fā)起,其中寫入地址和數(shù)據(jù)在互連總線12上被提供以便被寫入到存儲器20的該地址。此外,在其它實施例中,數(shù)據(jù)可被寫入到數(shù)據(jù)處理系統(tǒng)10的其它從設(shè)備對和I/O 設(shè)備沈或從其被讀取。高速緩存觀可以是指令高速緩存、數(shù)據(jù)高速緩存、或兩者的組合。這里關(guān)于事務(wù)的術(shù)語“數(shù)據(jù)”的使用可指代在指令高速緩存或數(shù)據(jù)高速緩存中存儲的信息。處理器14還包括用于監(jiān)聽請求管理的電路。監(jiān)聽請求電路進(jìn)行操作以保持高速緩存觀中的數(shù)據(jù)與存儲器20和數(shù)據(jù)處理系統(tǒng)10的其它高速緩存中存儲的數(shù)據(jù)的其它副本的一致性。監(jiān)聽控制M經(jīng)由監(jiān)聽控制接口從高速緩存一致性管理器18接收監(jiān)聽請求。 處理器14包括監(jiān)聽隊列電路44,監(jiān)聽隊列電路44包括用于存儲從監(jiān)聽控制接口接收的監(jiān)聽請求的監(jiān)聽隊列46。在一個實施例中,監(jiān)聽請求隊列46可被實現(xiàn)為FIFO。在一個實施例中,F(xiàn)IFO可被實現(xiàn)為環(huán)形緩沖器。在監(jiān)聽請求隊列46內(nèi)有多個,(N+1)個條目,其中N為整數(shù)。監(jiān)聽請求隊列46中的每一個條目具有地址字段和包括狀態(tài)信息的狀態(tài)字段。地址字段存儲針對其生成了監(jiān)聽請求的事務(wù)的地址。在所示的實施例中,狀態(tài)字段中的比特是指示監(jiān)聽請求隊列46中的條目是否有效的有效(V)比特。在其它實施例中,可包括其它類型的狀態(tài)比特。此外,每一個條目可包括存儲用于由高速緩存一致性管理器生成的監(jiān)聽請求的監(jiān)聽請求ID的監(jiān)聽請求 ID字段(未示出)。在操作中,監(jiān)聽控制M和監(jiān)聽隊列電路44進(jìn)行操作以保持高速緩存28與系統(tǒng)10 中信息的其它副本的一致性。監(jiān)聽通過高有效信號DCACHE_Em來啟用。監(jiān)聽控制M經(jīng)由監(jiān)聽控制接口從高速緩存一致性管理器18接收監(jiān)聽請求并且提供監(jiān)聽請求的地址,以被存儲在隊列46中。仲裁器42以有效的方式來仲裁對處理電路40和監(jiān)聽隊列電路44之間的高速緩存觀的訪問,以最小化處理電路40不訪問高速緩存觀的時間。通過選擇性地將兩個或更多的監(jiān)聽地址查找合并或壓縮為單個監(jiān)聽地址查找,可在一個實施例中完成監(jiān)聽控制電路對高速緩存觀的訪問的最小化。處理電路40具有包括寄存器比特字段41和寄存器比特字段43的存儲電路。在另一個實施例中,存儲電路可以是隨機(jī)存取存儲器或其它存儲單元,并且可位于處理電路40 外部。寄存器比特字段41包括用于指示數(shù)據(jù)高速緩存觀被啟用或禁用的至少一個控制比特。當(dāng)比特字段41存儲邏輯1時,由監(jiān)聽控制M提供數(shù)據(jù)高速緩存啟用信號DCACHE_EN1, 以向CCM 18指示數(shù)據(jù)高速緩存觀被啟用。當(dāng)比特字段41存儲邏輯0時,由處理器14的監(jiān)聽控制M提供數(shù)據(jù)高速緩存啟用信號DCACHE_EN1,以向CCM 18指示數(shù)據(jù)高速緩存觀被禁用。比特字段43包括用于指示是否選擇性地刷新或取消(使無效)掛起的監(jiān)聽請求,或者當(dāng)高速緩存已被禁用時通過注釋(noting)來管理目錄所有權(quán)或監(jiān)聽過濾器的至少一個控制比特。當(dāng)比特字段43被設(shè)置為邏輯1時,無效監(jiān)聽隊列控制信號INV_SN00PQ1指示在高速緩存禁用時將使監(jiān)聽隊列46無效。當(dāng)比特字段43被設(shè)置為邏輯0時,控制信號INV_ SN00PQ1指示不使監(jiān)聽隊列46無效,而是應(yīng)當(dāng)對其刷新。在DCACHE_Em轉(zhuǎn)變?yōu)橹甘颈O(jiān)聽控制M應(yīng)當(dāng)刷新監(jiān)聽隊列46或使監(jiān)聽隊列46無效的時候,對控制信號INV_SN00PQ1進(jìn)行采樣(參見圖4)。在一個實施例中,監(jiān)聽隊列無效比特可由處理器上運(yùn)行的軟件控制。此外,數(shù)據(jù)高速緩存啟用指示符和無效監(jiān)聽隊列指示符可以是用戶可編程的。另外,當(dāng)處理器進(jìn)入低功率模式或測試模式時,可禁用高速緩存。當(dāng)監(jiān)聽控制M接收到監(jiān)聽請求時,監(jiān)聽控制M將監(jiān)聽地址路由到監(jiān)聽隊列電路 44??蓪崿F(xiàn)監(jiān)聽隊列電路44的功能的各種實施例。在一個實施例中,來自監(jiān)聽控制M的全部接收的監(jiān)聽地址被存儲在監(jiān)聽請求隊列46中。當(dāng)仲裁器42向監(jiān)聽隊列電路44提供對高速緩存觀的訪問時,不允許經(jīng)由仲裁器42的來自處理電路40的對高速緩存觀的訪問地址。在該模式的操作中,仲裁器42向高速緩存觀提供來自監(jiān)聽請求隊列46的監(jiān)聽地址以用于搜索。基于先進(jìn)先出(FIFO)從監(jiān)聽請求隊列46移除監(jiān)聽地址。當(dāng)監(jiān)聽地址存在于監(jiān)聽請求隊列46中時,監(jiān)聽隊列電路44向仲裁器42發(fā)信號以請求仲裁器42仲裁對高速緩存觀的訪問。在一個實施例中,高速緩存觀具有單個集合的地址標(biāo)記并且因此必須專用于處理器用于尋址或者專用于監(jiān)聽隊列電路用于尋址。當(dāng)仲裁器42阻止處理電路40訪問高速緩存觀時,來自電路44的監(jiān)聽地址通過仲裁器42被路由到高速緩存觀。高速緩存觀內(nèi)的電路比較監(jiān)聽地址與當(dāng)前在高速緩存觀中存儲的全部地址。如果存在匹配,則高速緩存觀中的匹配條目被標(biāo)記為無效,因為它潛在地不同于系統(tǒng)互連總線12上的事務(wù)條目。如果不存在匹配,則在高速緩存觀內(nèi)部采取進(jìn)一步動作。在某些實施例中,監(jiān)聽控制M可向仲裁器42發(fā)信號以仲裁對高速緩存觀的訪問。在一個實施例中,可由電路44執(zhí)行監(jiān)聽地址壓縮以減少電路44訪問高速緩存28 的時間。在監(jiān)聽地址壓縮的一種形式中,在監(jiān)聽地址從監(jiān)聽隊列的頭部輸出之前,由比較邏輯(未示出)執(zhí)行接下來的兩個或更多的監(jiān)聽地址的比較。被同時比較的監(jiān)聽地址的數(shù)目是設(shè)計的選擇。當(dāng)由電路44比較兩個監(jiān)聽地址時,如果地址具有相同的標(biāo)記和索引部分, 則不提供第二地址用于監(jiān)聽,并且創(chuàng)建計數(shù)值來指示一對監(jiān)聽地址被組合或壓縮為一個監(jiān)聽地址。用于兩個地址的相同標(biāo)記和索引部分指示兩個地址位于存儲器的相同線內(nèi)。通過不將兩個監(jiān)聽地址發(fā)送到高速緩存觀,顯著減少了將高速緩存觀從處理電路40轉(zhuǎn)移用于監(jiān)聽的時間。例如參見標(biāo)題為"Snoop Request Management in a Data Processing System”的申請?zhí)枮?1/969,112的2008年1月3日提交的具有共同受讓人的美國專利申請,其全部內(nèi)容通過引用合并于此。在所示出的實施例中,監(jiān)聽控制接口包括監(jiān)聽請求信號接口、監(jiān)聽狀態(tài)信號接口、 監(jiān)聽確認(rèn)信號接口和監(jiān)聽錯誤信號接口。在一個實施例中,監(jiān)聽請求信號接口包括用于指示正在進(jìn)行請求的請求信號線,指示生成監(jiān)聽的總線事務(wù)的類型的監(jiān)聽命令線,作為正被監(jiān)聽的事務(wù)的地址的監(jiān)聽地址線,以及監(jiān)聽請求ID線(未示出),其為識別監(jiān)聽請求的高速緩存一致性管理器所生成的數(shù)。這些信號線可以是多個比特(在某些實施例中并行或者串行),或者在某些實施例中為單個比特。監(jiān)聽確認(rèn)信號接口被用于向高速緩存一致性管理器18指示監(jiān)聽請求已由高速緩存處理。監(jiān)聽狀態(tài)接口提供高速緩存監(jiān)聽的結(jié)果(例如,在高速緩存中是否找到關(guān)于數(shù)據(jù)地址的條目,或者在該條目的數(shù)據(jù)中是否找到錯誤(奇偶校驗比特))。在另一個實施例中, 監(jiān)聽確認(rèn)接口可包括監(jiān)聽響應(yīng)線和指示監(jiān)聽請求的ID號的監(jiān)聽請求ID線(未示出)。這些線也可以是多個比特。監(jiān)聽控制接口包括監(jiān)聽錯誤信號線。監(jiān)聽錯誤信號線由高速緩存一致性管理器18 使用用來向處理器指示當(dāng)被監(jiān)聽時由處理器生成的事務(wù)導(dǎo)致了來自另一個高速緩存的錯誤。錯誤的示例包括另一個高速緩存是否發(fā)現(xiàn)關(guān)聯(lián)于被監(jiān)聽地址的數(shù)據(jù)具有奇偶校驗錯誤或ECC錯誤。在其它實施例中,系統(tǒng)10可包括其它配置的和/或以不同方式執(zhí)行事務(wù)和監(jiān)聽操作的處理器。例如,處理器可具有圖2中未示出的其它電路,或者可不包括圖2中示出的全部電路。此外,處理器還可包括以另一種方式處理監(jiān)聽請求的其它電路。另外,上面關(guān)于處理器14的操作的論述也適用于處理器16的操作。圖3是根據(jù)一個實施例的圖1的CCM 18的一部分的一個實施例的框圖。高速緩存一致性管理器18包括控制邏輯60、用于處理器14的監(jiān)聽隊列62、和用于處理器16的監(jiān)聽隊列64。在一個實施例中,處理器14和16都可以是中央處理單元(CPU)。高速緩存一致性管理器18從處理器14接收無效監(jiān)聽隊列信號INV_SN00PQ1和數(shù)據(jù)高速緩存啟用信號 DCACHE_Em。高速緩存一致性管理器18從處理器16接收無效監(jiān)聽隊列信號INV_SN00PQ2 和數(shù)據(jù)高速緩存啟用信號DCACHE_EN2。此外,CCM 18接收如圖1中所示的監(jiān)聽控制接口 1 和監(jiān)聽控制接口 2。監(jiān)聽隊列62保持用于處理器14的掛起的監(jiān)聽請求。監(jiān)聽隊列62將隨后在監(jiān)聽隊列46具有可用的隊列存儲時將這些掛起的請求傳送到監(jiān)聽隊列電路44的監(jiān)聽隊列46。 將被處理器14處理的監(jiān)聽隊列條目因此存在于兩個隊列中,即處理器14中的監(jiān)聽隊列46 和CCM 18中的監(jiān)聽隊列62。類似地,監(jiān)聽隊列64保持用于處理器16的掛起的監(jiān)聽請求, 處理器16隨后在處理器16內(nèi)的監(jiān)聽隊列電路44的相應(yīng)監(jiān)聽隊列46具有可用隊列存儲時將接受這些掛起的請求。將被處理器16處理的監(jiān)聽隊列條目因此存在于兩個隊列中,即處理器16中的監(jiān)聽隊列46和CCM 18中的監(jiān)聽隊列64。如上所述,控制信號DCACHE_Em和/或DCACHE_EN2分別由處理器14或處理器16 確立為邏輯高信號,以向CCM 18指示對應(yīng)的數(shù)據(jù)高速緩存被啟用或禁用。當(dāng)控制信號之一,例如DCACHE_EN1,被啟用時,在禁用控制信號DCACHE_Em時,對控制信號INV_SN00PQ1 進(jìn)行采樣。如果在DCACHE_Em被禁用時INV_SN00PQ1是邏輯高(1),那么使監(jiān)聽隊列62無效(連同圖2中的處理器14的監(jiān)聽隊列46)。如果INV_SN00PQ1是邏輯低(0),那么在禁用處理器14中的高速緩存觀之前,不使任何監(jiān)聽隊列無效并且完成掛起的監(jiān)聽請求。類似地,當(dāng)DCACHE_EN2被啟用時,在禁用控制DCACHE_EN2時,對控制信號INV_SN00PQ2進(jìn)行采樣。如果在DCACHE_EN2被禁用時控制信號INV_SN00PQ2是邏輯高(1),那么使監(jiān)聽隊列64無效(連同處理器16的監(jiān)聽隊列46)。如果控制信號INV_SN00PQ2被采樣為邏輯低(0), 那么在禁用處理器16中的高速緩存30之前,不使任何監(jiān)聽隊列無效并且完成掛起的監(jiān)聽請求。圖4是數(shù)據(jù)處理系統(tǒng)10的時鐘信號M_CLK、數(shù)據(jù)高速緩存啟用信號DCACHE_Em和監(jiān)聽隊列無效信號INV_SN00PQ1的時序圖。圖4的示例針對處理器14,但是也可被直接應(yīng)用于處理器16。時鐘信號M_CLK被用于提供數(shù)據(jù)處理系統(tǒng)10的各種操作的時序。時鐘信號M_CLK未在圖1到3中示出,但是本領(lǐng)域技術(shù)人員將會理解時鐘信號M_CLK的功能。作為示例,數(shù)據(jù)高速緩存啟用信號DCACHE_Em在時間t0被確立為邏輯高。在時間tl,監(jiān)聽隊列無效信號INV_SN00PQ1被確立為邏輯高以指示當(dāng)禁用數(shù)據(jù)高速緩存觀時,CCM 18使對應(yīng)于數(shù)據(jù)高速緩存觀的監(jiān)聽隊列62無效。在時間t2,信號DCACHE_Em被禁用為邏輯低, 并且對信號INV_SN00PQ1進(jìn)行采樣。當(dāng)使數(shù)據(jù)高速緩存觀無效時,使監(jiān)聽隊列62無效,如信號INV_SN00PQ1所指示的。此外,作為處理器14內(nèi)部的操作,使監(jiān)聽隊列46無效。在控制信號INV_SN00PQ1為邏輯低(0)的情況下,當(dāng)DCACHE_Em被禁用為邏輯低時,邏輯低信號INV_SN00PQ1向CCM18指示在禁用數(shù)據(jù)高速緩存觀之前,將完成監(jiān)聽隊列
62中全部掛起的監(jiān)聽請求。此外,處理器14將處理監(jiān)聽隊列46中全部掛起的監(jiān)聽隊列條目。數(shù)據(jù)高速緩存啟用指示符和無效監(jiān)聽隊列指示符提供一種握手機(jī)制用于允許高速緩存一致性管理器選擇性地丟棄用于系統(tǒng)特定處理器的全部掛起的監(jiān)聽請求。這與要求在禁用高速緩存之前掛起要被處理的監(jiān)聽隊列條目的其它系統(tǒng)相反。提供該握手使得能夠通過去除處理不必要的監(jiān)聽操作所浪費的時間來改善系統(tǒng)性能。這還導(dǎo)致顯著的能量節(jié)約,因為連同去除了高速緩存訪問周期一起,還去除了對加載的監(jiān)聽端口的不必要的監(jiān)聽操作。對于在禁用高速緩存時不需要保持高速緩存的內(nèi)容的那些高速緩存禁用情況,由此最小化了禁用高速緩存的開銷。在要保留高速緩存內(nèi)容的其它情況下,必須在實際禁用高速緩存之前完成全部掛起的監(jiān)聽操作。所公開的實施例通過無效監(jiān)聽隊列指示符提供了支持這兩種模式的操作的靈活性。因為實現(xiàn)本發(fā)明的裝置多半由本領(lǐng)域技術(shù)人員已知的電子元件和電路組成,所以為了理解和明白本發(fā)明的潛在原理并且為了不模糊或分散本發(fā)明的教導(dǎo),將不再以比如上所述被認(rèn)為必要的任何更深的程度來說明電路細(xì)節(jié)。根據(jù)情況,上面實施例中的某些可使用各種不同的信息處理系統(tǒng)來實現(xiàn)。例如,盡管圖1和其論述描述了示例的信息處理架構(gòu),該示例架構(gòu)被給出僅僅為了在論述本發(fā)明的各個方面時提供有用的參考。當(dāng)然,為了論述,已簡化了對該架構(gòu)的描述,并且它僅僅是根據(jù)本發(fā)明可被使用的許多不同類型的適當(dāng)架構(gòu)中的一種。本領(lǐng)域技術(shù)人員將會認(rèn)識到,邏輯框之間的邊界僅僅是說明性的并且替代實施例可合并邏輯框或電路元件,或者對各種邏輯框或電路元件施加替代的功能分解。因此,應(yīng)當(dāng)理解,這里描述的架構(gòu)僅僅是示例性的,并且實際上可實現(xiàn)完成相同功能的許多其它架構(gòu)。在抽象但是仍然明確的含意上,完成相同功能的任何組件的布置被有效地“關(guān)聯(lián)”,以使得完成期望的功能。因此,這里的任何兩個組件被組合以完成特定功能可被視為相互“關(guān)聯(lián)”以便完成期望的功能,而與架構(gòu)或中間組件無關(guān)。同樣,如此關(guān)聯(lián)的任何兩個組件也可被視為相互“以可操作的方式連接”,或者“以可操作的方式耦合”以完成期望的功能。本領(lǐng)域技術(shù)人員將會認(rèn)識到,上述操作的功能之間的邊界僅僅是說明性的。多個操作的功能可被組合為單個操作,并且/或者單個操作的功能可被分布在另外的操作中。 此外,替代實施例可包括特定操作的多個實例,并且在各種其它實施例中可變更操作的順序。盡管這里參考特定實施例描述了本發(fā)明,但是可在不偏離如所附權(quán)利要求中所闡述的本發(fā)明范圍的情況下做出各種修改和變化。因此,說明書和附圖應(yīng)當(dāng)被視為是說明性而非限制性的含意,并且所有這些修改旨在被包括在本發(fā)明的范圍內(nèi)。關(guān)于特定實施例的任何益處、優(yōu)點和對這里描述的問題的解決方案不旨在被解釋為任何或全部權(quán)利要求的關(guān)鍵的、必需的或本質(zhì)的特征或元素。如這里使用的術(shù)語“耦合”不旨在限于直接耦合或機(jī)械耦合。此外,如這里使用的術(shù)語“一”被定義為一個或多于一個。此外,權(quán)利要求中引導(dǎo)性短語,例如“至少一個”和“一個或多個”的使用不應(yīng)當(dāng)被解釋為暗示通過不定冠詞“一”對另一個權(quán)利要求元素的引導(dǎo)將包含該被引導(dǎo)的權(quán)利要求元素的任何特定權(quán)利要求限制為僅包含一個這種元素的發(fā)明,即使在相同的權(quán)利要求包括引導(dǎo)性短語“一個或多個”或“至少一個”和不定冠詞,例如“一”時也是如此。對于定冠詞的使用,這同樣成立。除非明確聲明,例如“第一”和“第二”這樣的術(shù)語被用于任意地在元素,例如術(shù)語描述間進(jìn)行區(qū)分。因此,這些術(shù)語不一定旨在指示這些元素的時間上或其它優(yōu)先級。
1權(quán)利要求
1.在具有系統(tǒng)互連、耦合到所述系統(tǒng)互連的處理器以及耦合到所述系統(tǒng)互連的高速緩存一致性管理器CCM的數(shù)據(jù)處理系統(tǒng)中,其中所述處理器包括高速緩存,一種方法包括由所述CCM生成對所述處理器的所述高速緩存的一個或多個監(jiān)聽請求;將對所述處理器的所述高速緩存的所述一個或多個監(jiān)聽請求存儲在監(jiān)聽隊列中;設(shè)置高速緩存啟用指示符來指示所述處理器的所述高速緩存將被禁用;響應(yīng)于設(shè)置所述高速緩存啟用指示符來指示所述處理器的所述高速緩存將被禁用而選擇性地使對所述處理器的所述高速緩存的所述一個或多個監(jiān)聽請求無效,其中基于所述處理器的無效監(jiān)聽隊列指示符來執(zhí)行選擇性地?zé)o效;以及禁用所述高速緩存。
2.根據(jù)權(quán)利要求1所述的方法,還包括由所述處理器向所述CCM提供高速緩存啟用信號,其中,響應(yīng)于用于指示所述高速緩存將被禁用的所述高速緩存啟用指示符,所述處理器設(shè)置所述高速緩存啟用信號,以向所述CCM指示所述高速緩存將被禁用。
3.根據(jù)權(quán)利要求2所述的方法,其中所述CCM包括所述監(jiān)聽隊列,并且其中所述方法還包括由所述處理器向所述CCM提供無效監(jiān)聽隊列信號,所述無效監(jiān)聽隊列信號指示是否使對所述處理器的所述高速緩存的所述一個或多個監(jiān)聽請求無效。
4.根據(jù)權(quán)利要求3所述的方法,其中當(dāng)所述高速緩存啟用信號從指示所述高速緩存被啟用轉(zhuǎn)變?yōu)橹甘舅龈咚倬彺鎸⒈唤脮r,如果所述無效監(jiān)聽隊列信號具有第一狀態(tài),則使所述監(jiān)聽隊列中的對所述處理器的所述高速緩存的所述一個或多個監(jiān)聽請求無效,并且如果所述無效監(jiān)聽隊列信號具有第二狀態(tài),則不使對所述處理器的所述高速緩存的所述一個或多個監(jiān)聽請求無效。
5.根據(jù)權(quán)利要求4所述的方法,其中當(dāng)所述高速緩存啟用信號從指示所述高速緩存被啟用轉(zhuǎn)變?yōu)橹甘舅龈咚倬彺鎸⒈唤脮r,如果所述無效監(jiān)聽隊列信號具有所述第二狀態(tài),則在禁用所述高速緩存的步驟之前完成對所述處理器的所述高速緩存的所述一個或多個監(jiān)聽請求。
6.根據(jù)權(quán)利要求1所述的方法,其中所述高速緩存啟用指示符和所述無效監(jiān)聽隊列指示符中的每一個是用戶可編程的。
7.根據(jù)權(quán)利要求1所述的方法,其中當(dāng)所述處理器進(jìn)入低功率模式時,執(zhí)行禁用所述高速緩存的步驟。
8.根據(jù)權(quán)利要求1所述的方法,其中當(dāng)所述處理器進(jìn)入測試模式時,執(zhí)行禁用所述高速緩存的步驟。
9.根據(jù)權(quán)利要求1所述的方法,其中所述數(shù)據(jù)處理系統(tǒng)包括耦合到所述系統(tǒng)互連的第二處理器,其中所述第二處理器包括高速緩存,其中所述方法還包括由所述CCM生成對所述第二處理器的所述高速緩存的一個或多個監(jiān)聽請求;將對所述第二處理器的所述高速緩存的所述一個或多個監(jiān)聽請求存儲在第二監(jiān)聽隊列中;設(shè)置所述第二處理器的第二高速緩存啟用指示符來指示所述第二處理器的所述高速緩存將被禁用;響應(yīng)于設(shè)置所述第二高速緩存啟用指示符來指示所述第二處理器的所述高速緩存將被禁用,而選擇性地使對所述第二處理器的所述高速緩存的所述一個或多個監(jiān)聽請求無效,其中基于所述第二處理器的第二無效監(jiān)聽隊列指示符來執(zhí)行選擇性地?zé)o效;以及禁用所述第二處理器的所述高速緩存。
10.根據(jù)權(quán)利要求9所述的方法,還包括由所述第二處理器向所述CCM提供第二高速緩存啟用信號和第二無效監(jiān)聽隊列信號。
11.根據(jù)權(quán)利要求10所述的方法,其中響應(yīng)于設(shè)置所述高速緩存啟用指示符來指示所述處理器的所述高速緩存將被禁用,所述處理器的所述無效監(jiān)聽隊列指示符指示對所述處理器的所述高速緩存的所述一個或多個監(jiān)聽隊列請求是無效的,并且響應(yīng)于設(shè)置所述第二高速緩存啟用指示符來指示所述第二處理器的所述高速緩存將被禁用,所述第二處理器的所述第二無效監(jiān)聽隊列指示符指示對所述第二處理器的所述高速緩存的所述一個或多個監(jiān)聽請求不是無效的。
12.—種數(shù)據(jù)處理系統(tǒng),包括 系統(tǒng)互連;耦合到所述系統(tǒng)互連的處理器,其中所述處理器包括 高速緩存;用于存儲無效監(jiān)聽隊列指示符的第一存儲電路;和用于存儲高速緩存啟用指示符的第二存儲電路;以及耦合到所述系統(tǒng)互連的高速緩存一致性管理器CCM,所述高速緩存一致性管理器具有對應(yīng)于所述處理器的第一監(jiān)聽隊列,其中所述高速緩存一致性管理器生成存儲在所述第一監(jiān)聽隊列中的用于所述處理器的監(jiān)聽請求,其中,響應(yīng)于所述高速緩存啟用指示符被設(shè)置為指示所述處理器的所述高速緩存將被禁用,而基于所述無效監(jiān)聽隊列指示符來選擇性地使所述第一監(jiān)聽隊列中的用于所述處理器的監(jiān)聽請求無效。
13.根據(jù)權(quán)利要求13所述的數(shù)據(jù)處理系統(tǒng),其中所述處理器提供高速緩存啟用信號, 其中所述高速緩存啟用信號向所述CCM指示何時所述高速緩存將被禁用。
14.根據(jù)權(quán)利要求13所述的數(shù)據(jù)處理系統(tǒng),其中所述處理器向所述CCM提供所述無效監(jiān)聽隊列信號,其中當(dāng)所述高速緩存啟用信號從指示所述高速緩存被啟用轉(zhuǎn)變?yōu)橹甘舅龈咚倬彺鎸⒈唤脮r,所述無效監(jiān)聽隊列信號向所述CCM指示是否使對所述處理器的所述高速緩存的所述一個或多個監(jiān)聽請求無效。
15.根據(jù)權(quán)利要求12所述的數(shù)據(jù)處理系統(tǒng),其中所述處理器包括處理器監(jiān)聽隊列,其中響應(yīng)于指示所述高速緩存將被禁用的所述高速緩存啟用指示符,而基于所述無效監(jiān)聽隊列指示符來選擇性地使所述處理器監(jiān)聽隊列無效。
16.根據(jù)權(quán)利要求12所述的數(shù)據(jù)處理系統(tǒng),還包括耦合到所述系統(tǒng)互連的第二處理器,其中所述第二處理器包括 第二高速緩存;用于存儲第二無效監(jiān)聽隊列指示符的第三存儲電路;和用于存儲第二高速緩存啟用指示符的第四存儲電路;其中所述高速緩存一致性管理器具有對應(yīng)于所述第二處理器的第二監(jiān)聽隊列,其中所述高速緩存一致性管理器生成存儲在所述第二監(jiān)聽隊列中的用于所述第二處理器的監(jiān)聽請求,其中響應(yīng)于所述第二高速緩存啟用指示符被設(shè)置為指示所述第二處理器的所述第二高速緩存將被禁用,而基于所述第二無效監(jiān)聽隊列指示符來選擇性地使所述第二監(jiān)聽隊列中的用于所述第二處理器的監(jiān)聽請求無效。
17.根據(jù)權(quán)利要求16所述的數(shù)據(jù)處理系統(tǒng),其中所述第二處理器提供第二高速緩存啟用信號,其中所述第二高速緩存啟用信號向所述 CCM指示何時所述第二高速緩存將被禁用;并且所述第二處理器向所述CCM提供第二無效監(jiān)聽隊列信號,其中當(dāng)所述第二高速緩存啟用信號從指示所述第二高速緩存被啟用轉(zhuǎn)變?yōu)橹甘舅龅诙咚倬彺鎸⒈唤脮r,所述第二無效監(jiān)聽隊列信號向所述CCM指示是否使所述第二監(jiān)聽隊列中的用于所述第二處理器的監(jiān)聽請求無效。
18.一種數(shù)據(jù)處理系統(tǒng),包括 系統(tǒng)互連;耦合到所述系統(tǒng)互連的處理器,其中所述處理器包括 高速緩存;用于存儲無效監(jiān)聽隊列指示符的第一存儲電路;和用于存儲高速緩存啟用指示符的第二存儲電路;以及耦合到所述系統(tǒng)互連的高速緩存一致性管理器CCM,所述高速緩存一致性管理器具有對應(yīng)于所述處理器的第一監(jiān)聽隊列,其中所述高速緩存一致性管理器生成存儲在所述第一監(jiān)聽隊列中的用于所述處理器的監(jiān)聽請求;基于所述高速緩存啟用指示符從所述處理器向所述CCM提供的高速緩存啟用信號,其中所述高速緩存啟用信號向所述CCM指示何時所述高速緩存將被禁用;基于所述無效監(jiān)聽隊列指示符從所述處理器向所述CCM提供的無效監(jiān)聽隊列信號,其中當(dāng)所述高速緩存啟用信號從指示所述高速緩存被啟用轉(zhuǎn)變?yōu)橹甘舅龈咚倬彺鎸⒈唤脮r,所述無效監(jiān)聽隊列信號向所述CCM指示是否使用于所述處理器的監(jiān)聽請求無效,其中響應(yīng)于所述高速緩存啟用信號從指示所述高速緩存被啟用轉(zhuǎn)變?yōu)橹甘舅龈咚倬彺鎸⒈唤茫鯟CM基于所述無效監(jiān)聽隊列信號而選擇性地使所述第一監(jiān)聽隊列中的用于所述處理器的監(jiān)聽請求無效。
19.根據(jù)權(quán)利要求18所述的數(shù)據(jù)處理系統(tǒng),其中所述處理器包括處理器監(jiān)聽隊列,其中響應(yīng)于指示所述高速緩存將被禁用的所述高速緩存啟用指示符,基于所述無效監(jiān)聽隊列指示符來選擇性地使所述處理器監(jiān)聽隊列無效。
20.根據(jù)權(quán)利要求18所述的數(shù)據(jù)處理系統(tǒng),還包括 耦合到所述系統(tǒng)互連的第二處理器,其中所述處理器包括 第二高速緩存;用于存儲第二無效監(jiān)聽隊列指示符的第三存儲電路;和用于存儲第二高速緩存啟用指示符的第四存儲電路;基于所述第二高速緩存啟用指示符從所述處理器向所述CCM提供的第二高速緩存啟用信號,其中所述第二高速緩存啟用信號向所述CCM指示何時所述第二高速緩存將被禁用;和基于所述第二無效監(jiān)聽隊列指示符從所述第二處理器向所述CCM提供的第二無效監(jiān)聽隊列信號,其中當(dāng)所述第二高速緩存啟用信號從指示所述第二高速緩存被啟用轉(zhuǎn)變?yōu)橹甘舅龅诙咚倬彺鎸⒈唤脮r,所述第二無效監(jiān)聽隊列信號向所述CCM指示是否使用于所述第二處理器的監(jiān)聽請求無效,其中所述CCM具有對應(yīng)于所述第二處理器的第二監(jiān)聽隊列并且所述CCM生成存儲在所述第二監(jiān)聽隊列中的用于所述第二處理器的監(jiān)聽請求,并且其中響應(yīng)于所述第二高速緩存啟用信號從指示所述第二高速緩存被啟用轉(zhuǎn)變?yōu)橹甘舅龅诙咚倬彺鎸⒈唤?,所?CCM基于所述第二無效監(jiān)聽隊列信號而選擇性地使所述第二監(jiān)聽隊列中的用于所述第二處理器的監(jiān)聽請求無效。
全文摘要
公開了一種具有監(jiān)聽請求選擇性無效的數(shù)據(jù)處理系統(tǒng)和用于其的方法。數(shù)據(jù)處理系統(tǒng)包括系統(tǒng)互連(12)、耦合到系統(tǒng)互連的處理器(14)以及耦合到系統(tǒng)互連的高速緩存一致性管理器(CCM)(18)。處理器包括高速緩存(28)。一種方法包括由CCM生成對處理器的高速緩存的一個或多個監(jiān)聽請求;將對處理器的高速緩存的一個或多個監(jiān)聽請求存儲在監(jiān)聽隊列中;設(shè)置高速緩存啟用指示符來指示處理器的高速緩存將被禁用;響應(yīng)于設(shè)置高速緩存啟用指示符來指示處理器的高速緩存將被禁用,而選擇性地使對處理器的高速緩存的一個或多個監(jiān)聽請求無效,其中基于處理器的無效監(jiān)聽隊列指示符來執(zhí)行選擇性無效;和禁用高速緩存。
文檔編號G06F13/28GK102567255SQ20111030844
公開日2012年7月11日 申請日期2011年10月12日 優(yōu)先權(quán)日2010年10月29日
發(fā)明者威廉·C·莫耶 申請人:飛思卡爾半導(dǎo)體公司