欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

高速緩存刷新系統(tǒng)及其方法

文檔序號:6421419閱讀:158來源:國知局
專利名稱:高速緩存刷新系統(tǒng)及其方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種高速緩存刷新系統(tǒng)及其方法。
背景技術(shù)
在一般處理器系統(tǒng)中,為了加快處理器訪問主存儲器的速度,高速緩存存儲器暫時存儲處理器所需的數(shù)據(jù)。通常,高速緩存存儲器保留稱為“高速緩存標記”的管理信息,以管理存儲在高速緩存存儲器的高速緩存塊內(nèi)的數(shù)據(jù)是否是主存儲器內(nèi)的數(shù)據(jù)之中的數(shù)據(jù),存儲在高速緩存存儲器的高速緩存塊內(nèi)的數(shù)據(jù)是否被改變并且是否處于帶有與主存儲器內(nèi)的數(shù)據(jù)內(nèi)容不同的內(nèi)容的狀態(tài)(即修改狀態(tài)或“臟”狀態(tài))。
在包括多個處理器的多處理器系統(tǒng)中,存在多個高速緩存存儲器且每個高速緩存存儲器都帶有探測裝置,以確保存儲一致性或數(shù)據(jù)一致性。探測裝置檢驗處理器總線指令是否對存儲在每個高速緩存存儲器中的數(shù)據(jù)生成影響,存儲在每個高速緩存存儲器中的數(shù)據(jù)是否應(yīng)當被返回等,以及使對應(yīng)的數(shù)據(jù)無效。
高速緩存存儲器包括回錄式和直寫式。對于回錄式高速緩存存儲器(它在某個時期期間保留數(shù)據(jù)而沒有立即反映在主存儲器內(nèi)由處理器進行的數(shù)據(jù)更新),需要主動在主存儲器內(nèi)寫回由處理器改變的數(shù)據(jù),其內(nèi)容與主存儲器的內(nèi)容不同。例如,當存儲在高速緩存存儲器內(nèi)的數(shù)據(jù)被發(fā)送至不帶有探測裝置的輸入/輸出設(shè)備時,需要寫回。高速緩存刷新算法用于再次在主存儲器內(nèi)寫入數(shù)據(jù),其內(nèi)容在存儲在主存儲器內(nèi)的數(shù)據(jù)當中被改變。進而,“臟”狀態(tài)下的高速緩存塊被稱為“臟”塊。
高速緩存刷新算法對于容錯或復(fù)制系統(tǒng)以及到不帶有探測裝置的輸入/輸出設(shè)備的數(shù)據(jù)傳輸很有用處。換言之,在校驗點系統(tǒng)的情況中,需要再次在主存儲器內(nèi)寫入只在高速緩存存儲器內(nèi)改變和存儲的數(shù)據(jù),其中,當發(fā)生指定系統(tǒng)故障中的一種時,校驗點系統(tǒng)從先前獲得的校驗點重新開始進程。
一般而言,高速緩存刷新算法根據(jù)包含高速緩存刷新指令的軟件來執(zhí)行。參考高速緩存標記的內(nèi)容,處理器利用軟件來判斷高速緩存塊是否是“臟”塊。如果高速緩存塊是“臟”塊,則再次執(zhí)行用于在主存儲器內(nèi)寫入對應(yīng)高速緩存塊的數(shù)據(jù)的高速緩存刷新算法。
如上所述,當檢驗所有高速緩存塊的狀態(tài)之后檢驗出高速緩存塊的狀態(tài)是“臟”的時候,處理器應(yīng)當執(zhí)行高速緩存刷新算法,即,在主存儲器內(nèi)重新記錄數(shù)據(jù)。檢驗所有高速緩存塊的狀態(tài)需要一定的規(guī)定時間量。
將參考圖1對相關(guān)技術(shù)的多處理器系統(tǒng)進行描述。如圖1所示,相關(guān)技術(shù)的多處理器系統(tǒng)包括連接至處理器總線的多個處理器(CPU,中央處理器)5、連接至每個處理器的的多個高速緩存存儲器1、連接至處理器總線的存儲器控制器2、在存儲器控制器2控制之下的主存儲器3和連接至處理器總線的其它系統(tǒng)資源4。每個處理器均包括位于內(nèi)部處理器和外部處理器的一個背側(cè)或兩個背側(cè)的高速緩存存儲器1。內(nèi)部處理器的高速緩存存儲器稱為1級高速緩存存儲器而外部處理器的高速緩存存儲器稱為2級高速緩存存儲器。
每個處理器5通過公用處理器總線互相連接且能夠通過該處理器總線訪問主存儲器3,以取指令和加載/存儲數(shù)據(jù)。對主存儲器3的訪問通常通過存儲器控制單元2而獲得。
相關(guān)技術(shù)的多處理器系統(tǒng)連接至諸如輸入/輸出設(shè)備的其它系統(tǒng)資源4以及上述基礎(chǔ)資源,以執(zhí)行特別分配的功能。如果提供有32位地址和64位數(shù)據(jù),諸如處理器5的所有設(shè)備、存儲器控制器2和其它系統(tǒng)資源4應(yīng)當具有與處理器總線的標準接口相同的標準接口。進而,每個處理器5的高速緩存存儲器1帶有基于標準接口的結(jié)構(gòu)。
每個處理器5在內(nèi)部擁有32千字節(jié)(KB)1級指令高速緩存存儲器和32KB1級高速緩存存儲器,且在背側(cè)外部擁有1兆字節(jié)(MB)2級高速緩存存儲器。
將參考圖2對1級數(shù)據(jù)高速緩存存儲器的示例性結(jié)構(gòu)進行描述。1級數(shù)據(jù)高速緩存存儲器包括標記RAM(隨機存取存儲器)和數(shù)據(jù)RAM。1級數(shù)據(jù)高速緩存存儲器實現(xiàn)8路成組相聯(lián)映射。8個高速緩存塊中的每一個均包括4個字(W0~W3,分別是64位)和與這4個字對應(yīng)的地址標記(20位)。進而,每個高速緩存塊均帶有用于表示每個高速緩存塊的狀態(tài)的3個狀態(tài)信息位,即有效狀態(tài)位、修改狀態(tài)位和共享狀態(tài)位。
進而,1級指令高速緩存存儲器具有與1級數(shù)據(jù)高速緩存存儲器相同的結(jié)構(gòu)。但是,1級指令高速緩存存儲器只帶有作為狀態(tài)信息位的有效狀態(tài)位。進而,2級高速緩存存儲器在數(shù)據(jù)RAM中存儲數(shù)據(jù)和指令并采用直接映射。
在相關(guān)技術(shù)中,為了提高高速緩存的效率,1級高速緩存存儲器和2級高速緩存存儲器采用回寫式作為寫策略。但是,由于這種寫策略,可能造成與處理器之間以及處理器和輸入/輸出設(shè)備之間的存儲一致性相關(guān)的問題。為了克服這個問題,每個處理器5的高速緩存控制器單元使用修改/獨享/共享/無效(MESI)協(xié)議。圖3示出了MESI協(xié)議。
如圖3所示,MESI協(xié)議的狀態(tài)包括修改狀態(tài)、獨享狀態(tài)、共享狀態(tài)和無效狀態(tài),且該狀態(tài)可以通過組合每個高速緩存塊的狀態(tài)信息位的方式來表達。修改狀態(tài)、獨享狀態(tài)和共享狀態(tài)是有效狀態(tài)的示例。高速緩存刷新算法尤其在有效狀態(tài)中的修改狀態(tài)和獨享狀態(tài)下執(zhí)行。
例如,無效狀態(tài)的狀態(tài)信息位如下所示有效狀態(tài)位(V)是0;修改狀態(tài)位(M)是0;以及共享狀態(tài)位(S)是0。修改狀態(tài)的狀態(tài)信息位如下所示有效狀態(tài)位(V)是1;修改狀態(tài)位(M)是1;以及共享狀態(tài)位(S)是0。共享狀態(tài)的狀態(tài)信息位如下所示有效狀態(tài)位(V)是1;修改狀態(tài)位(M)是0;以及共享狀態(tài)位(S)是1。獨享狀態(tài)的狀態(tài)信息位如下所示有效狀態(tài)位(V)是1;修改狀態(tài)位(M)是0;以及共享狀態(tài)位(S)是0。
已由每個處理器根據(jù)MESI協(xié)議分開管理的高速緩存存儲器1通過執(zhí)行高速緩存刷新算法來保留存儲一致性,其中,當發(fā)生多處理器系統(tǒng)的確定事件時,高速緩存刷新算法再次在主存儲器內(nèi)寫入修改狀態(tài)(即“臟”狀態(tài))下的高速緩存塊。該過程是如果確定事件發(fā)生,則每個處理器5執(zhí)行與該確定事件相關(guān)聯(lián)的異常程序。高速緩存刷新算法在異常程序期間的適當時刻執(zhí)行。通過加載等于2級高速緩存存儲器大小的兩倍的連續(xù)存儲區(qū)域,為1級數(shù)據(jù)高速緩存存儲器和2級高速緩存存儲器的已修改的高速緩存塊執(zhí)行高速緩存刷新算法。
需要高速緩存刷新的事件通常是緊急的,因此事件的進程需要即時的關(guān)注。但是,因為連接至處理器總線的所有處理器同時執(zhí)行與2級高速緩存存儲器的大小一樣大的存儲器讀,因此處理器總線的負載不必要地增加了。進而,因為高速緩存刷新算法由每個處理器的異常程序執(zhí)行,所以在確定事件發(fā)生之后的時間周期之內(nèi)執(zhí)行合理的高速緩存刷新算法。因此,可能存在高速緩存刷新算法不能被即時執(zhí)行的問題。
本發(fā)明的其它優(yōu)點、目標和特性將在隨后的說明中部分地描述,經(jīng)過以下檢驗或從本發(fā)明的實踐中學習,上述優(yōu)點、目標和特性對于本領(lǐng)域的普通技術(shù)人員來說是顯而易見的。本發(fā)明的目標和優(yōu)點可以如所附權(quán)利要求書中所特別指出的來實現(xiàn)和獲得。

發(fā)明內(nèi)容
本發(fā)明的一個目標是至少解決上述問題和/或缺點并至少提供下面所述的優(yōu)點。
本發(fā)明的另一目標是提供一種多處理器系統(tǒng)及其方法,它可以減少或最小化處理器總線的負載。
本發(fā)明的另一目標是提供一種多處理器系統(tǒng)及其方法,它響應(yīng)于多處理器系統(tǒng)內(nèi)的事件,提供高速和自動的高速緩存刷新操作。
本發(fā)明的另一目標是提供一種多處理器系統(tǒng)及其方法,它可以通過執(zhí)行每個處理器的有界存儲器讀(例如至多2級高速緩存存儲器的大小)的方式來減小或最小化處理器總線的負載。
本發(fā)明的另一目標是提供高速緩存刷新與確定事件的同時執(zhí)行,它通過使用該確定事件直接觸發(fā)高速緩存刷新進程來實現(xiàn)。
為了實現(xiàn)至少上述目標的全部或部分,提供了一種高速緩存刷新系統(tǒng),包括有效陣列單元,用來提供指定狀態(tài)下的至少一個高速緩存塊的用于更新算法的高速緩存塊信息和用于高速緩存刷新算法的索引信息;存儲單元,用來存儲標記和為更新算法提供匹配地址信息以及為高速緩存刷新算法提供標記信息;總線探測器,用來通過監(jiān)測處理器總線和跟蹤每個高速緩存存儲器的狀態(tài)來執(zhí)行用于標記存儲單元和有效陣列單元的更新算法;以及高速緩存刷新單元,用來檢測系統(tǒng)事件,以執(zhí)行用于指定狀態(tài)下的相應(yīng)高速緩存塊的高速緩存刷新算法。
為了進一步實現(xiàn)至少上述目標的全部或部分,提供了一種高速緩存刷新方法,包括通過監(jiān)測處理器總線的事務(wù)和跟蹤與每個處理器對應(yīng)的高速緩存存儲器的狀態(tài)的方式來更新狀態(tài)信息;以及通過檢測指定事件、使用狀態(tài)信息生成讀事務(wù)以及輸出生成的讀事務(wù)的方式,來刷新高速緩存塊中處于指定狀態(tài)下的至少一個高速緩存塊。
為了實現(xiàn)至少上述目標的全部或部分,提供了一種多處理器系統(tǒng),其包括耦合至處理器總線的多個處理器;耦合至每個處理器的至少一個高速緩存存儲器;耦合至處理器總線的存儲器控制器;以及耦合至處理器總線的高速緩存刷新系統(tǒng),其中,高速緩存刷新系統(tǒng)包括用于提供高速緩存狀態(tài)信息的第一單元;耦合至第一單元并用于更新高速緩存狀態(tài)信息的第二單元,以及耦合至第一單元的第三單元,用于檢測系統(tǒng)事件,以響應(yīng)檢測到的事件,為處于指定狀態(tài)下的相應(yīng)高速緩存塊執(zhí)行高速緩存刷新以。
本發(fā)明的其它優(yōu)點、目標和特性將在隨后的說明中部分地描述,經(jīng)過以下檢驗或從本發(fā)明的實踐中學習,上述優(yōu)點、目標和特性對于本領(lǐng)域的普通技術(shù)人員來說是顯而易見的。本發(fā)明的目標和優(yōu)點可以如所附權(quán)利要求中所特別指出的來實現(xiàn)和獲得。


現(xiàn)在,結(jié)合下面附圖對本發(fā)明進行詳細的描述,其中相同的參考數(shù)字指相同的元件。在附圖中圖1示出了相關(guān)技術(shù)的多處理器系統(tǒng);圖2示出了示例性1級數(shù)據(jù)高速緩存存儲器結(jié)構(gòu);圖3示出了MESI協(xié)議;圖4示出了根據(jù)本發(fā)明的優(yōu)選實施例的多處理器系統(tǒng)的示例性實施例;
圖5示出了根據(jù)本發(fā)明的優(yōu)選實施例的圖4中的高速緩存刷新系統(tǒng)的示例性實施例;圖6a示出了圖5中的有效陣列單元的示例性3維結(jié)構(gòu);圖6b示出了圖5中的有效陣列單元的示例性2維結(jié)構(gòu);圖7示出了圖6a中的示例性DCAND;圖8示出了圖6a中的示例性DCOR;圖9示出了圖5中的示例性標記存儲單元;圖10示出了圖9中的示例性地址映射;圖11示出了根據(jù)本發(fā)明的另一優(yōu)選實施例的高速緩存刷新方法的示例性實施例;圖12示出了圖11中的示例性更新過程;圖13示出了示例性置放操作;圖14示出了圖11中的示例性高速緩存刷新過程;以及圖15示出了示例性地址排列操作。
具體實施例方式
圖4是示出根據(jù)本發(fā)明的一個示例性實施例的多處理器系統(tǒng)的框圖。如圖4所示,根據(jù)本發(fā)明的多處理器系統(tǒng)可以包括帶有總線探測機制的回錄式高速緩存存儲器6且包括耦合至處理器總線12的多個處理器7、耦合至處理器總線12的存儲器控制器8、在存儲器控制器8控制之下的主存儲器9、耦合至處理器總線12的其它系統(tǒng)資源11以及耦合至處理器總線12的高速緩存刷新系統(tǒng)100。圖4示出了4個處理器7(例如處理器0~處理器3)和對應(yīng)于處理器數(shù)目的4個高速緩存存儲器6(例如高速緩存存儲器0~高速緩存存儲器3)。但是,本發(fā)明并不限于此。
圖5是示出高速緩存刷新系統(tǒng)100的示例性實施例的框圖。如圖5所示,高速緩存刷新系統(tǒng)100能夠根據(jù)確定或指定事件執(zhí)行高速緩存刷新算法,并通過跟蹤每個高速緩存存儲器6的狀態(tài)來管理其狀態(tài)。高速緩存刷新系統(tǒng)100可以包括有效陣列單元30、總線探測器10、標記存儲單元20以及高速緩存刷新單元40。
現(xiàn)在對有效陣列單元30進行描述。圖6a是示出圖5中的有效陣列單元的3維結(jié)構(gòu)的框圖,而圖6b是示出圖5中的有效陣列單元的2維結(jié)構(gòu)的框圖。
有效陣列單元30可以包括分治“與”決策樹(DCAND)31和分治“或”決策樹(DCOR)32。優(yōu)選地,有效陣列單元30提供帶有用于有效狀態(tài)(即獨享狀態(tài)或修改狀態(tài))下的高速緩存塊中的更新方法或算法所需的高速緩存塊信息的總線探測器10,并且提供帶有高速緩存刷新方法或算法所需的索引信息的高速緩存刷新單元40。
更確切地說,當確定事件(即指定事件)發(fā)生時,高速緩存刷新系統(tǒng)100能夠?qū)Ω咚倬彺娲鎯ζ?內(nèi)處于獨享狀態(tài)或修改狀態(tài)下的高速緩存塊執(zhí)行高速緩存刷新。有效陣列單元30可以用于有效管理高速緩存刷新進程的執(zhí)行。
有效陣列單元30可以包括有效陣列。有效陣列是3維陣列,其組件可以是表示對應(yīng)高速緩存塊是否處于獨享狀態(tài)或修改狀態(tài)的有效位,它處于有效狀態(tài)且有效陣列的一個軸是處理器7。因此,如圖6b所示,對于每個處理器存在一個2維的有效陣列。圖6a示出了用于一個處理器7的有效陣列的3維結(jié)構(gòu)的示例。如圖6a所示,由橫軸(例如索引0~索引7)和縱軸(例如0x0000~0x7FFF)構(gòu)成且作為一個有效陣列的一個矩形對象表示一個處理器7。如果處理器的個數(shù)是4,作為有效陣列的相應(yīng)矩形對象的個數(shù)應(yīng)當也是4。進而,圖6b示出了對于4個處理器7的有效陣列的2維結(jié)構(gòu)的示例。每個處理器7包括8個高速緩存塊且每個高速緩存塊包括多個有效位。但是,本發(fā)明并不限于此。
如果有效位是第一預(yù)設(shè)值(例如‘1’),那么該高速緩存塊處于有效狀態(tài),因此高速緩存塊應(yīng)當被清除。因此,執(zhí)行高速緩存刷新進程。相反,如果有效位是第二預(yù)設(shè)值(例如‘0’),那么它表示該高速緩存塊處于無效狀態(tài),因此無需清除該高速緩存塊。因此,沒有執(zhí)行高速緩存刷新進程。
進而,為了有效執(zhí)行更新進程和高速緩存刷新進程,有效陣列單元30可以實施邏輯樹,例如DCAND 31和DCOR 32。圖7和8分別示出圖6a中的確定高速緩存塊的示例性DCAND 31和簡化DCOR 32。圖7所示的DCAND 31涉及或關(guān)于用于一個高速緩存設(shè)置索引的所有有效位,且能夠?qū)⒏咚倬彺鎵K信息提供給總線探測器10。圖8所示的DCOR 32是在指示一個高速緩存塊的15位中帶有5位索引的有效位的示例,且能夠為高速緩存刷新器41提供索引信息。
圖9是示出圖5中的示例性標記存儲單元的框圖。圖10是示出圖9中的示例性地址映射的框圖。
標記存儲單元20可以包括標記RAM單元21和匹配邏輯單元22,且優(yōu)選地,標記存儲單元20存儲標記并為總線探測器10提供用于更新進程的匹配地址信息和為高速緩存刷新單元40提供用于高速緩存刷新進程的標記信息。標記RAM單元21能夠存儲用于確定索引的確定個數(shù)的標記,且匹配邏輯單元22能夠通過與標記RAM單元21接口連接來輸出匹配地址信息,并為總線探測器10提供處理器總線地址是否與相應(yīng)地址索引的標記相匹配的信息。匹配邏輯單元22輸出標記信息并為高速緩存刷新單元40提供構(gòu)成‘讀’事務(wù)地址的標記。
包含在標記存儲單元20內(nèi)的標記RAM單元21能夠為索引存儲標記的確定個數(shù),且該索引的大小與如圖10所示的標記的個數(shù)成反比。對于32KB 8路成組相聯(lián)1級數(shù)據(jù)高速緩存存儲器和1MB直接2級高速緩存存儲器的示例性結(jié)構(gòu),索引是15位而標記是12位。
圖9示出了標記存儲單元20的示例性結(jié)構(gòu)。標記RAM單元21可以包括用于每個處理器7的8個標記RAM(例如標記RAM 0~標記RAM 7)。匹配邏輯單元22可以直接耦合至標記RAM單元21,且包括分別與每個標記RAM連接的匹配邏輯(例如匹配邏輯0~匹配邏輯7)。因此,匹配邏輯單元22能夠更新相應(yīng)標記RAM的內(nèi)容并提取用于高速緩存刷新進程的地址。進而,優(yōu)選地,匹配邏輯單元22從事務(wù)正在處理器總線12上進行的地址當中判斷出是否存在匹配每個高速緩存存儲器6的地址,并通知總線探測器10是否存在該地址。因此,可以正常地執(zhí)行對標記RAM的更新。
換言之,在圖9中,事務(wù)地址中的地址A(1226)被輸入到標記RAM單元21的標記RAM中,且地址A(011)被輸入到匹配邏輯單元22的匹配邏輯中。例如,匹配邏輯0將是否與標記RAM 0匹配輸出至匹配(0,0),匹配邏輯1將是否與標記RAM 1匹配輸出至匹配(0,1),……,以及匹配邏輯7將是否與標記RAM 7匹配輸出至匹配(0,7)。優(yōu)選地,如果將“1”作為匹配輸出的“或”運算結(jié)果而輸出,則匹配邏輯單元22通知總線探測器10該地址相匹配。進而,標記RAM單元21接收來自高速緩存刷新單元40的索引,且匹配邏輯單元22為高速緩存刷新單元40提供與該索引對應(yīng)的標記信息。
現(xiàn)在對總線探測器10進行說明。總線探測器10能夠通過監(jiān)測對應(yīng)的處理器總線(例如優(yōu)選地,當被直接耦合至處理器總線12時)和通過利用更新算法或方法來跟蹤每個高速緩存存儲器6的狀態(tài)的方式,來執(zhí)行用于標記存儲單元20和有效陣列單元30的更新算法或方法。因此,總線探測器10能夠?qū)τ跇擞洿鎯卧?0和有效陣列單元30執(zhí)行更新進程。當執(zhí)行用于標記RAM單元21的更新進程時,總線探測器10通過使用DCAND 31的高速緩存塊信息來執(zhí)行置放算法或進程,幫助實現(xiàn)精確的更新。
現(xiàn)在對高速緩存刷新單40進行描述。高速緩存刷新單元40能夠檢測系統(tǒng)的確定事件,通過使用其自身的高速緩存刷新進程來生成‘讀’事務(wù)并輸出‘讀’事務(wù),其中‘讀’事務(wù)使每個處理器7都對于有效狀態(tài)下的高速緩存塊執(zhí)行高速緩存刷新進程。
高速緩存刷新單元40可以包括事件檢測器42、高速緩存刷新器41和高速緩存總線主控器43。優(yōu)選地,事件檢測器42檢測系統(tǒng)的確定事件是否發(fā)生,且高速緩存刷新器41通過執(zhí)行高速緩存刷新進程根據(jù)索引信息和標記信息(相應(yīng)地址被映射到其上面)生成‘讀’事務(wù)。高速緩存總線主控器43能夠輸出已生成的‘讀’事務(wù)至處理器總線12,并把‘讀’事務(wù)轉(zhuǎn)發(fā)至每個處理器7。因此,可以執(zhí)行用于高速緩存存儲器6的高速緩存刷新進程。
高速緩存刷新器41能夠通過使用DCOR 32的索引信息執(zhí)行地址管理算法或進程(例如地址管理算法)而提取該索引,通過為標記RAM單元21提供該索引而獲得來自匹配邏輯單元22的標記信息,以及通過結(jié)合索引和標記而映射該地址。
圖11示出根據(jù)本發(fā)明的高速緩存刷新方法的實施例。如圖11所示的高速緩存刷新方法的實施例可以應(yīng)用于如圖5所示的系統(tǒng)并結(jié)合該系統(tǒng)來描述。但是,本發(fā)明并不限于此。
如圖11所示,在進程開始后,首先,總線探測器10通過監(jiān)測相應(yīng)處理器總線12(當被直接連接至處理器總線12時)的事務(wù)和通過跟蹤對應(yīng)于每個處理器的每個高速緩存存儲器6的狀態(tài),執(zhí)行用于標記存儲單元20的標記RAM和有效陣列單元30的有效陣列的更新算法(步驟S10)。優(yōu)選地,總線探測器10是單獨運行的。
進而,高速緩存刷新單元40通過檢測確定事件、利用標記RAM和有效陣列生成‘讀’事務(wù)并輸出‘讀’事務(wù),對高速緩存存儲器6內(nèi)處于有效狀態(tài)下的高速緩存塊執(zhí)行高速緩存刷新進程(步驟S20)。該進程可以在步驟S20結(jié)束。
圖12示出圖11中的示例性更新過程。如圖12所示,在進程開始后,總線探測器10實時監(jiān)測在處理器總線12上是否有新事務(wù)開始(步驟S101)。
在監(jiān)測步驟確定有新事務(wù)開始的情況中,總線探測器10能夠通過提取事務(wù)的屬性而判斷事務(wù)的屬性是否是‘讀’(步驟S102)。
在判斷步驟之后確定屬性是‘讀’的情況中,總線探測器10可以判斷是否從除了當前事務(wù)主處理器7(例如處理器0)之外的處理器(例如處理器1、處理器2和處理器3)中推斷出共享(步驟S103)。
在判斷步驟確定從除了當前事務(wù)主處理器之外的處理器中推斷出共享的情況中,可以判斷是否存在其地址匹配共享推斷的處理器(步驟S104)。在不存在這種處理器的情況中,優(yōu)選地,總線探測器10停止其自己的運行。相反,在存在這種處理器的情況中,總線探測器10沒有把事務(wù)主處理器7的有效位從無效狀態(tài)(例如有效位=0)設(shè)置成有效狀態(tài)(例如有效位=1),且清除其地址匹配共享推斷的處理器的有效位,把有效狀態(tài)改變成無效狀態(tài)(步驟S105)。換言之,高速緩存存儲器6內(nèi)的高速緩存塊處于共享狀態(tài),因此,即使發(fā)生系統(tǒng)事件也無需執(zhí)行高速緩存刷新算法。
另一方面,作為判斷步驟(步驟S103)的結(jié)果,在沒有推斷出共享的情況中,換言之,在沒有處理器高速緩存該地址的情況中,有效陣列單元30通過優(yōu)選使用DCAND 31根據(jù)置放算法來選擇高速緩存塊,并為總線探測器10提供高速緩存塊信息。優(yōu)選地,總線探測器10根據(jù)置放算法來接收高速緩存塊信息(步驟S106),根據(jù)與所選擇的高速緩存塊內(nèi)的地址對應(yīng)的索引而在位于指定位置內(nèi)的標記存儲單元20的標記RAM單元內(nèi)存儲標記,以及把有效陣列單元30的相應(yīng)有效位從無效狀態(tài)設(shè)置成有效狀態(tài)(步驟S108)。換言之,當前事務(wù)主處理器7保持對相應(yīng)數(shù)據(jù)的獨享,因此,當發(fā)生系統(tǒng)事件時,需要執(zhí)行高速緩存刷新進程。
優(yōu)選地,用于存儲標記的位置的指定由與該地址對應(yīng)的索引自動執(zhí)行。相反,優(yōu)選地,對將被使用的高速緩存塊的選擇根據(jù)DCAND 31而定。使用DCAND 31選擇高速緩存塊可以是置放進程。
現(xiàn)在參考圖13對示例性置放算法進行描述。如圖13所示,示例性置放算法可以使用圖7中的DCAND。
在本說明書中假定朝向高速緩存塊0的方向是低方向而朝向高速緩存塊7的方向是高方向。在每個判斷步驟中,在選擇低方向的情況中,它指的是‘0’。相反,在選擇高方向的情況中,它指的是‘1’。但是,本發(fā)明并不限于此。置放算法是跟蹤處于下面狀況的低方向高速緩存塊DCAND 31的每步輸出是‘0’,示出在對應(yīng)分支上存在空高速緩存塊。因此,如圖13所示,在從右端算起的第一“與”判斷步驟上,低方向是‘0’,因此根據(jù)低方向選擇它指的是‘0’。在從右端算起的第二“與”判斷步驟上,高方向是‘0’,因此根據(jù)高方向選擇它指的是‘1’。在從右端算起的第三“與”判斷步驟上,高方向是‘0’,因此根據(jù)高方向選擇它指的是‘1’。最后,選擇對應(yīng)于‘011’的高速緩存塊3。
另一方面,在判斷步驟(步驟S102)確定屬性不是‘讀’的情況中,總線探測器10可以判斷屬性是否是‘有目的的讀以進行修改’(步驟S109)。在判斷步驟(步驟S109)確定屬性是‘有目的的讀以進行修改’的情況中,可以判斷是否存在其地址匹配‘有目的的讀以進行修改’的處理器(步驟S110)。在存在這種處理器的情況中,總線探測器10清除帶有用于該地址的標記的匹配處理器的有效位,把其從有效狀態(tài)改變成無效狀態(tài)(步驟S111)。換言之,在高速緩存該數(shù)據(jù)后,當前事務(wù)主處理器7具有改變的意向,因此它進入改變狀態(tài)。然后,其它處理器使用于該數(shù)據(jù)的高速緩存狀態(tài)變成無效,且總線探測器10執(zhí)行更新算法,從而清除了其地址匹配的每個處理器的有效位。
優(yōu)選地,總線探測器10還能夠為事務(wù)主處理器7執(zhí)行接收高速緩存塊信息的步驟S106、存儲標記的步驟S107和設(shè)置有效位的步驟S108。換言之,總線探測器10使用置放算法為處理器更新標記存儲單元20的標記RAM和有效陣列單元30的有效陣列。進而,作為判斷步驟(步驟S110)的結(jié)果,甚至在不存在匹配處理器的情況中,總線探測器10也為事務(wù)主處理器7執(zhí)行接收高速緩存塊信息的步驟S106、存儲標記的步驟S107和設(shè)置有效位的步驟S108。
另一方面,在判斷步驟(步驟S109)確定屬性不是‘有目的的讀以進行修改’的情況中,總線探測器10可以判斷屬性是否是‘取消’事務(wù)(步驟S112)。此時,在判斷步驟(步驟S112)確定屬性是‘取消’事務(wù)的情況中,總線探測器10判斷是否存在其地址匹配‘有目的的讀以進行修改’的處理器(步驟S110)并執(zhí)行清除有效位的步驟(步驟S111)、接收高速緩存塊的步驟(步驟106)、所述存儲標記的步驟(步驟S107)和如在屬性是‘有目的的讀以進行修改’的情況中執(zhí)行的設(shè)置有效位的步驟。換言之,‘取消’事務(wù)指能夠成為事務(wù)主處理器的當前總線主處理器7將要改變共享狀態(tài)下的高速緩存數(shù)據(jù),且總線主處理器7的高速緩存存儲器6的狀態(tài)從共享狀態(tài)變成修改狀態(tài)。因此,在屬性是‘取消’事務(wù)的情況下的總線探測器能夠執(zhí)行與屬性是‘有目的的讀以進行修改’的情況下相同的操作。
相反,在判斷步驟(步驟S112)確定屬性不是‘取消’事務(wù)的情況中,總線探測器10判斷探測推(snoop push)是否是通過由高速緩存控制器的替換操作調(diào)出的方式而執(zhí)行的(步驟S113)。在判斷步驟(步驟S113)確定探測推不是通過被調(diào)出的方式而執(zhí)行的情況中,總線探測器可以結(jié)束其運行。相反,在判斷步驟(步驟S113)確定探測推是通過被調(diào)出的方式而執(zhí)行的情況中,優(yōu)選地,總線探測器10清除帶有用于該地址的標記的匹配處理器的有效位,把其從有效狀態(tài)改變成無效狀態(tài)(步驟S114)。
換言之,優(yōu)選地,探測推在三種情況下執(zhí)行。第一種情況是探測擊中(snoop hit)由其它總線主處理器7的‘讀’執(zhí)行的情況,高速緩存存儲器6的狀態(tài)被切換為共享狀態(tài)。第二種情況是探測擊中由其它總線主處理器7的‘寫’或‘有目的的讀以進行修改’執(zhí)行的情況,高速緩存存儲器6的狀態(tài)被切換為無效狀態(tài)。第三種情況是調(diào)出由高速緩存控制器的替換操作執(zhí)行的情況,高速緩存存儲器6的狀態(tài)被切換為無效狀態(tài)。因此,對于執(zhí)行探測推的所有情況,當發(fā)生系統(tǒng)事件時,無需為相應(yīng)地址執(zhí)行高速緩存刷新算法,因此,總線探測器10清除相應(yīng)的有效位。
根據(jù)總線探測器10的更新算法或進程的上述實施例,可以精確地管理每個處理器的高速緩存存儲器狀態(tài),使得發(fā)生系統(tǒng)事件時高速緩存刷新單元40能夠正確執(zhí)行高速緩存刷新算法。
現(xiàn)在對高速緩存刷新(步驟S20)進行描述。圖14是示出圖11中的示例性高速緩存刷新過程的流程圖。圖14示出發(fā)生事件時處理器7的處于有效狀態(tài)下的高速緩存塊。例如,通過在圖6b示出的處理器0~處理器3中查找處于有效狀態(tài)下的處理器和查找已確認或所選擇的處理器的有效狀態(tài)下的高速緩存塊,可以提取相應(yīng)地址且生成/輸出事務(wù),以執(zhí)行高速緩存刷新進程。
如圖14所示,在進程開始之后,高速緩存刷新單元40的事件檢測器42實時通知高速緩存刷新器41是否發(fā)生被預(yù)指定用于執(zhí)行高速緩存刷新算法的系統(tǒng)事件。高速緩存刷新器41從事件檢測器42接收有關(guān)是否發(fā)生這種事件的通知(步驟S201)。
高速緩存刷新器41能夠?qū)τ谒刑幚砥?,通過對有效陣列的所有有效位進行“或”運算而檢驗所有處理器的有效陣列狀態(tài)是否有效(例如整個有效陣列狀態(tài)=1)(步驟S202)。在檢驗步驟確定所有處理器的有效陣列狀態(tài)是有效的情況中,高速緩存刷新器41對于從處理器0到處理器3的每個處理器7的高速緩存存儲器6執(zhí)行高速緩存刷新算法。所有處理器的有效陣列狀態(tài)通過對于所有處理器的有效陣列,對所有有效位進行“或”運算的方式而獲得。換言之,如果至少一個有效位是‘1’,即如果至少一個有效位處于有效狀態(tài),則所有處理器的有效陣列狀態(tài)是有效的。
特別地,高速緩存刷新器41可以判斷第一處理器N(N=0)的有效陣列狀態(tài)是否是有效的(例如有效陣列狀態(tài)(N)=1)(步驟S204)。有效陣列狀態(tài)(N)能夠通過對根據(jù)每個高速緩存塊而集合的DCOR 32的最后輸出進行“或”運算而獲得。
在判斷步驟確定處理器的有效陣列狀態(tài)不是有效的情況中,即,處理器的有效陣列狀態(tài)是無效(例如有效陣列狀態(tài)(N)=0)的情況中,高速緩存刷新器41為下一個處理器N(N=N+1)執(zhí)行處理器有效陣列狀態(tài)的判斷(步驟205)。相反,在判斷步驟(步驟S204)確定有效陣列狀態(tài)是有效(例如有效陣列狀態(tài)(N)=1)的情況中,高速緩存刷新器41可以判斷處理器的第一高速緩存塊n(n=0)的有效陣列狀態(tài)是否為有效(例如有效陣列狀態(tài)(N,n)=1)(步驟S207)。處理器的第一高速緩存塊的有效陣列狀態(tài)是否為有效可以通過檢驗根據(jù)每個高速緩存塊而集合的DCOR 32的最終輸出而確定。
在判斷步驟(步驟S207)確定高速緩存塊的有效陣列狀態(tài)不是有效的情況中,即,有效陣列狀態(tài)是無效(例如有效陣列狀態(tài)(N,n)=0)的情況中,高速緩存刷新器41為下一個高速緩存塊n(n=n+1)(步驟S208)執(zhí)行判斷高速緩存塊有效陣列狀態(tài)的步驟(步驟S207)。相反,在判斷步驟(步驟S207)確定高速緩存塊的有效陣列狀態(tài)是有效(例如有效陣列狀態(tài)(N,n)=1)的情況中,高速緩存刷新器41把從地址管理算法中提取的值作為索引、通過為標記存儲單元20的標記RAM單元21提供該索引而接收來自相應(yīng)標記存儲單元20的匹配邏輯單元22且與該索引對應(yīng)的標記信息、以及通過映射相應(yīng)索引和標記而提取指定的對應(yīng)高速緩存塊地址(步驟S209)。提取高速緩存塊地址的步驟通過從相應(yīng)高速緩存塊的有效陣列當中提取與有效狀態(tài)下的有效位對應(yīng)的地址來執(zhí)行。
高速緩存刷新器41能夠為與提取的高速緩存塊地址對應(yīng)的高速緩存塊生成‘讀’事務(wù),并通過高速緩存總線主控器43輸出‘讀’事務(wù)至處理器總線12。因此,與對應(yīng)高速緩存塊所屬的高速緩存存儲器對應(yīng)的處理器7為對應(yīng)高速緩存存儲器6的高速緩存塊執(zhí)行高速緩存刷新進程(步驟S210)。特別地,用于高速緩存塊的‘讀’事務(wù)的生成通過生成與從高速緩存塊的有效陣列當中所提取的用于有效狀態(tài)下的有效位的地址對應(yīng)的‘讀’事務(wù)來執(zhí)行。
可以使用DCOR 32來實施地址管理算法?,F(xiàn)在將對示例性地址管理算法進行描述。圖15示出使用圖8中所示的DCOR的示例性地址管理算法。
在本說明書中假定朝向索引‘0b00000’的方向是低方向而朝向索引‘0b11111’的方向的高方向。在每個判斷中,在選擇低方向的情況中,它指的是‘0’。相反,在選擇高方向的情況中,它指的是‘1’。地址管理算法能夠跟蹤在下面狀況下的低方向索引DCAND 32的每個判斷輸出是‘1’,示出在對應(yīng)分支上存在被占用的高速緩存塊。因此,如圖15所示,在從右端算起的第一“或”判斷上,低方向是‘1’,因此根據(jù)低方向選擇它指的是‘0’。在從右端算起的第二“或”判斷上,低方向是‘1’,因此根據(jù)低方向選擇它指的是‘0’。在從右端算起的第三、第四和第五“或”判斷上,高方向是‘1’,因此根據(jù)高方向選擇它指的是‘1’。最后,它指的是‘00111’,因此選擇索引‘0b00111’。
然后,高速緩存刷新器41可以判斷被高速緩存刷新的高速緩存塊在屬于與處理器7(作為‘讀’事務(wù)的對象)對應(yīng)的高速緩存存儲器6的高速緩存塊當中是否是最后的高速緩存塊(步驟S211)。當作為‘讀’事務(wù)的對象的處理器7的個數(shù)是4且屬于與每個處理器對應(yīng)的高速緩存存儲器6的高速緩存塊的個數(shù)是8時,這種情況中的最后高速緩存塊指的是第8個高速緩存塊((M,N)=(M,7),此時,0≤M≤3)。但是,本發(fā)明并不限于此。
在判斷步驟(步驟S211)確定高速緩存塊不是最后高速緩存塊的情況中,高速緩存刷新器41執(zhí)行下一個(步驟S208)高速緩存塊的判斷有效陣列狀態(tài)的步驟(步驟S207)。相反,在判斷步驟(步驟S211)確定高速緩存塊是最后高速緩存塊的情況中,高速緩存刷新器41可以判斷作為‘讀’事務(wù)的對象的處理器是否是所有處理器之中的最后處理器(步驟S212)。最后處理器可以指第4個處理器(例如(M,N)=(3,N),同時,N是7)。在判斷步驟(步驟S212)確定該處理器不是最后處理器的情況中,高速緩存刷新器41可以執(zhí)行下一個處理器(步驟S205)的所述判斷有效狀態(tài)的步驟。相反,在判斷步驟(步驟S212)確定該處理器是最后處理器的情況中,高速緩存刷新器41可以結(jié)束高速緩存刷新進程。
如上所述,如果每個處理器7的所有高速緩存塊內(nèi)的高速緩存刷新進程結(jié)束,那么高速緩存刷新器41可以從頭開始重復(fù)進程或相同算法。優(yōu)選地,重復(fù)繼續(xù)進行到每個處理器7禁止對應(yīng)的高速緩存存儲器6。每個處理器7可以根據(jù)每個處理器7的有效位來禁止對應(yīng)的高速緩存存儲器6。
如上所述,根據(jù)本發(fā)明的高速緩存刷新系統(tǒng)及其方法具有多種優(yōu)點。本分明的實施例能夠減小或最小化處理器總線的負載,例如通過執(zhí)行至多與每個處理器的2級高速緩存存儲器一樣大小的存儲器讀來實現(xiàn)。進而,實施例能夠增加或確保確定事件與高速緩存刷新的同時進行,它通過執(zhí)行由該確定事件直接觸發(fā)的高速緩存來實現(xiàn)。這樣,可以執(zhí)行高速的高速緩存刷新進程。進而,高速緩存刷新進程能夠自動生成。
在本說明書中對的“一個實施例”、“實施例”、“示例實施例”等的任何參考指根據(jù)實施例而描述的特定特性、結(jié)構(gòu)或特征被包含在本發(fā)明的至少一個實施例中。出現(xiàn)在本說明書中各個地方的這些詞組不必都指同一實施例。進而,當特定特性、結(jié)構(gòu)或特征根據(jù)任一實施例而描述時,認為它處于本領(lǐng)域的普通技術(shù)人員的理解范圍之內(nèi),以影響根據(jù)其它實施例的特性、結(jié)構(gòu)或特征。進而,為了易于理解,一些方法過程可能已作為分開的過程被描述;但是這些分開描述的過程在其執(zhí)行中不應(yīng)當被認為具有必要的所屬順序。即,一些過程在執(zhí)行時可以采用另一順序或同時執(zhí)行等。
上述實施例和優(yōu)點僅僅是示例性的,且不能視作本發(fā)明的限制。本發(fā)明的講解可以很容易地應(yīng)用于其它類型的裝置。本發(fā)明的描述用于說明,但不用來對權(quán)利要求書的范圍進行限制。許多改變、修改和變化對于本領(lǐng)域的普通技術(shù)人員來說是顯而易見的。在權(quán)利要求書中,設(shè)置加功能的條款用于覆蓋實現(xiàn)所述功能的結(jié)構(gòu),不僅包括結(jié)構(gòu)上的等效,還包括等效的結(jié)構(gòu)。
權(quán)利要求
1.一種高速緩存刷新系統(tǒng),包括有效陣列單元,用來提供指定狀態(tài)下的至少一個高速緩存塊的用于更新算法的高速緩存塊信息和用于高速緩存刷新算法的索引信息;存儲單元,用來存儲標記和提供用于更新算法的匹配地址信息和用于高速緩存刷新算法的標記信息;總線探測器,用來通過監(jiān)測處理器總線和跟蹤每個高速緩存存儲器的狀態(tài)來執(zhí)行用于標記存儲單元和有效陣列單元的更新算法;以及高速緩存刷新單元,用來檢測系統(tǒng)事件,以為指定狀態(tài)下的相應(yīng)高速緩存塊執(zhí)行高速緩存刷新算法。
2.如權(quán)利要求1所述的系統(tǒng),其中該存儲單元包括標記RAM單元,用來存儲用于指定索引的多個標記;以及耦合至標記RAM單元的匹配邏輯單元,用來通過輸出匹配地址信息而提供處理器總線地址是否匹配相應(yīng)地址索引的標記的信息,且其中該匹配邏輯單元通過輸出標記信息而提供構(gòu)成用于讀事務(wù)的地址的標記。
3.如權(quán)利要求1所述的系統(tǒng),其中該總線探測器通過使用使用來自指定邏輯操作的高速緩存塊信息運行置放算法而執(zhí)行更新算法。
4.如權(quán)利要求3所述的系統(tǒng),其中該指定操作是分治“與”樹,其中該置放算法跟蹤處于下面狀況的低方向高速緩存塊分治“與”樹的每個輸出是‘0’,示出在相應(yīng)分支上存在空高速緩存塊。
5.如權(quán)利要求1所述的系統(tǒng),其中該高速緩存刷新單元包括事件檢測器,用來檢測是否發(fā)生系統(tǒng)事件;高速緩存刷新器,用來通過執(zhí)行高速緩存刷新算法,根據(jù)索引信息和標記信息生成對相應(yīng)高速緩存塊的讀事務(wù),其中相應(yīng)地址被映射到索引信息和標記信息上;以及高速緩存總線主控器,用來通過輸出已生成的讀事務(wù)至處理器總線以把讀事務(wù)轉(zhuǎn)發(fā)至每個處理器,而執(zhí)行用于高速緩存存儲器的高速緩存刷新算法。
6.如權(quán)利要求5所述的系統(tǒng),其中該高速緩存刷新器通過使用來自指定邏輯操作的索引信息執(zhí)行地址排列而提取相應(yīng)索引,從提供該索引的存儲單元的匹配邏輯單元獲得標記信息,以及通過結(jié)合索引和標記映射該地址。
7.如權(quán)利要求6所述的系統(tǒng),其中該指定邏輯操作是分治“或”樹,其中該地址排列跟蹤處于下面狀況的低方向索引分治“或”樹的每個輸出是‘1’,示出在相應(yīng)分支上存在被占用的高速緩存塊。
8.如權(quán)利要求1所述的系統(tǒng),其中該指定操作是包括修改狀態(tài)和獨享狀態(tài)的有效狀態(tài),且其中該高速緩存刷新單元生成讀事務(wù)以對于有效狀態(tài)下的高速緩存塊執(zhí)行高速緩存刷新算法,并輸出讀事務(wù)至處理器總線。
9.一種高速緩存刷新方法,包括通過監(jiān)測處理器總線的事務(wù)和跟蹤與每個處理器對應(yīng)的高速緩存存儲器的狀態(tài),更新狀態(tài)信息;以及通過檢測指定事件、使用狀態(tài)信息生成讀事務(wù)以及輸出生成的讀事務(wù),刷新高速緩存塊中處于指定狀態(tài)下的至少一個高速緩存塊。
10.如權(quán)利要求9所述的方法,其中所述更新狀態(tài)信息包括通過在處理器總線上監(jiān)測事務(wù)的開始和通過提取事務(wù)的屬性,判斷事務(wù)的屬性是否是‘讀’;對于事務(wù)的讀屬性,判斷從除了事務(wù)主處理器之外的處理器中是否推斷出共享屬性,其中,當存在其地址匹配共享推斷的處理器時從該處理器推斷出共享屬性時,清除地址匹配的處理器的相應(yīng)有效位,以設(shè)置無效狀態(tài),且沒有把事務(wù)主處理器的相應(yīng)有效位設(shè)置為有效狀態(tài)。
11.如權(quán)利要求10所述的方法,其中所述更新狀態(tài)信息包括在沒有推斷出共享屬性的情況中,使用置放進程來接收高速緩存塊信息;以及根據(jù)高速緩存塊信息在由與確定高速緩存塊內(nèi)的地址對應(yīng)的索引指定的位置上存儲標記,以及把相應(yīng)高速緩存塊的有效位設(shè)置成有效狀態(tài)。
12.如權(quán)利要求10所述的方法,其中,當屬性不是讀事務(wù)時,所述更新狀態(tài)信息包括判斷屬性是否是有目的的讀以進行修改;在事務(wù)的屬性是有目的的讀以進行修改的情況時,判斷是否存在其地址匹配的處理器并清除地址匹配的處理器的有效位,變成無效,而在不存在其地址匹配的處理器的情況時不清除有效位;使用置放進程接收高速緩存塊信息;以及根據(jù)高速緩存塊信息,在由與確定高速緩存塊內(nèi)的地址對應(yīng)的索引指定的位置上存儲標記,以及把相應(yīng)高速緩存塊的有效位設(shè)置成有效狀態(tài)。
13.如權(quán)利要求12所述的方法,其中,當屬性不是有目的的發(fā)送以進行修改時,所述更新狀態(tài)信息包括判斷屬性是否是取消事務(wù);在屬性是取消事務(wù)的情況時,判斷是否存在其地址匹配的處理器,并清除地址匹配的處理器的有效位,變成無效狀態(tài),而在不存在其地址匹配的處理器的情況時不清除有效位;接收高速緩存塊信息;以及根據(jù)高速緩存塊信息,在由與確定高速緩存塊內(nèi)的地址對應(yīng)的索引指定的位置上存儲標記,以及把相應(yīng)高速緩存塊的有效位設(shè)置成有效狀態(tài)。
14.如權(quán)利要求13所述的方法,其中,當屬性不是‘取消’事務(wù)時,所述更新狀態(tài)信息包括判斷探測推是否是通過由高速緩存控制器的替換操作調(diào)出的方式而執(zhí)行;以及當探測推是通過被調(diào)出的方式而執(zhí)行的情況時,清除地址匹配的處理器的相應(yīng)有效位。
15.如權(quán)利要求9所述的方法,其中所述刷新包括通過接收有關(guān)是否發(fā)生指定事件的通知,對于所有處理器判斷有效陣列狀態(tài)是否是有效狀態(tài);在判斷第一處理器的有效陣列狀態(tài)是否是有效狀態(tài)的步驟中確定第一處理器的有效陣列狀態(tài)是有效狀態(tài)的情況時,判斷第一處理器的第一高速緩存塊的有效陣列狀態(tài)是否是有效狀態(tài);在第一處理器的第一高速緩存塊的有效陣列狀態(tài)是有效狀態(tài)的情況時,把從地址排列中提取的值設(shè)置為索引,接收與該索引對應(yīng)的標記信息以及提取高速緩存塊的地址;通過為與提取的高速緩存塊地址對應(yīng)的高速緩存塊生成讀事務(wù)并通過輸出已生成的讀事務(wù)至處理器總線,對高速緩存塊執(zhí)行高速緩存刷新;以及當執(zhí)行高速緩存刷新的高速緩存塊在與作為‘讀’事務(wù)的對象的處理器對應(yīng)的高速緩存塊中是最后高速緩存塊,且該處理器是所述所有處理器中的最后處理器的情況時,結(jié)束高速緩存刷新。
16.如權(quán)利要求15所述的方法,其中所述執(zhí)行高速緩存刷新的步驟包括當處理器的有效陣列狀態(tài)不是有效狀態(tài)的情況時,判斷下一個處理器的有效陣列狀態(tài)是否是有效狀態(tài)。
17.如權(quán)利要求15所述的方法,其中所述執(zhí)行高速緩存刷新的步驟包括當處理器不是最后處理器的情況時,判斷下一個處理器的有效陣列狀態(tài)是否是有效狀態(tài)。
18.如權(quán)利要求15所述的方法,其中所述執(zhí)行高速緩存刷新的方法包括當高速緩存塊的有效陣列狀態(tài)不是有效狀態(tài)的情況時,判斷下一個高速緩存塊的有效陣列狀態(tài)是否是有效狀態(tài)。
19.如權(quán)利要求15所述的方法,其中所述執(zhí)行高速緩存刷新的步驟包括當高速緩存塊不是最后高速緩存塊的情況時,判斷下一個高速緩存塊的有效陣列狀態(tài)是否是有效狀態(tài)。
20.如權(quán)利要求9所述的方法,其中該指定狀態(tài)是有效狀態(tài),且其中該狀態(tài)信息包括標記信息和有效狀態(tài)信息。
21.一種多處理器系統(tǒng),包括耦合至處理器總線的多個處理器;耦合至每個處理器的至少一個高速緩存存儲器;耦合至處理器總線的存儲器控制器;以及耦合至處理器總線的高速緩存刷新系統(tǒng),其中高速緩存刷新系統(tǒng)包括第一單元,用于提供高速緩存狀態(tài)信息;第二單元,耦合至第一單元并用于更新高速緩存狀態(tài)信息;以及第三單元,耦合至第一單元,用于檢測系統(tǒng)事件,以響應(yīng)檢測到的事件,為處于指定狀態(tài)下的相應(yīng)高速緩存塊執(zhí)行高速緩存刷新。
22.如權(quán)利要求21所述的系統(tǒng),其中第二單元用于通過監(jiān)測處理器總線和通過跟蹤每個高速緩存存儲器的狀態(tài)來更新高速緩存狀態(tài)信息。
23.如權(quán)利要求21所述的系統(tǒng),其中第一單元包括有效陣列單元,用來提供指定狀態(tài)下的至少一個高速緩存塊的用于更新算法的高速緩存塊信息和用于高速緩存刷新算法的索引信息;標記存儲單元,用來存儲標記和提供用于更新算法的匹配地址信息和用于高速緩存刷新算法的標記信息。
全文摘要
本發(fā)明涉及一種用于高速緩存刷新的高速緩存刷新系統(tǒng)和方法,高速緩存刷新根據(jù)在多處理器系統(tǒng)內(nèi)的至少一個相應(yīng)的指定事件而在高速緩存存儲器內(nèi)執(zhí)行。本發(fā)明的實施例能夠通過執(zhí)行至多指定大小的存儲器讀而減少或最小化處理器總線的負載,并且能夠通過執(zhí)行由指定事件直接觸發(fā)的高速緩存刷新而增加高速緩存刷新與相應(yīng)指定事件的同時執(zhí)行,從而實現(xiàn)了高速和自動的高速緩存刷新算法。
文檔編號G06F13/36GK1534486SQ200310124408
公開日2004年10月6日 申請日期2003年12月24日 優(yōu)先權(quán)日2002年12月24日
發(fā)明者鄭商益, 尹錫鎮(zhèn) 申請人:Lg電子株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
聂拉木县| 杂多县| 保山市| 噶尔县| 哈密市| 北流市| 平阳县| 博湖县| 临漳县| 石河子市| 肇州县| 闸北区| 克拉玛依市| 永年县| 墨脱县| 桑日县| 青阳县| 巨野县| 伊川县| 旌德县| 绥德县| 万宁市| 库尔勒市| 东港市| 东至县| 定安县| 固阳县| 饶河县| 玉田县| 仁布县| 延边| 德昌县| 基隆市| 偏关县| 安平县| 华阴市| 阿图什市| 四川省| 临泉县| 延边| 胶南市|