專利名稱:用于管理高速緩沖存儲(chǔ)器存取的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明大體上涉及微處理器,且具體地說,涉及管理微處理器高速緩沖存儲(chǔ)器。
技術(shù)背景較高性能的微處理器常使用分層存儲(chǔ)器結(jié)構(gòu),包含基本量的主存儲(chǔ)器和一個(gè)或一個(gè) 以上更高等級(jí)的較小、較快的高速緩沖存儲(chǔ)器,以便使存儲(chǔ)器的速度與處理器速度更緊 密地匹配。舉例來說,級(jí)1 (Ll)高速緩沖存儲(chǔ)器通常駐存在芯片上,并代表可用于微 處理器的最小、最快的高速緩沖存儲(chǔ)器。級(jí)2 (L2)高速緩沖存儲(chǔ)器駐存在芯片上或芯 片外,并與用于微處理器的L1高速緩沖存儲(chǔ)器相比,提供稍慢但通常較大量的高速緩沖 存儲(chǔ)器。在微處理器與主存儲(chǔ)器之間可能存在額外等級(jí)的逐漸更慢(且更大)的高速緩 沖存儲(chǔ)器。在操作中,高速緩沖存儲(chǔ)器作為微處理器與(相比而言)較慢的主存儲(chǔ)器之間的緩 沖器而操作,且用于保存微處理器最可能需要的指令和/或數(shù)據(jù)的副本。如果所需指令或 數(shù)據(jù)項(xiàng)的副本駐存在高速緩沖存儲(chǔ)器中,那么微處理器讀取/寫入所述副本,而不是存取主存儲(chǔ)器,且因此避免了與主存儲(chǔ)器存取相關(guān)聯(lián)的潛在長得多的存取延遲。在兩個(gè)或兩個(gè)以上微處理器共享存儲(chǔ)器空間的多處理器環(huán)境下,高速緩存操作變得 更加復(fù)雜。在此類環(huán)境下,兩個(gè)或兩個(gè)以上微處理器可能高速緩存來自主存儲(chǔ)器的同一 數(shù)據(jù)。即,多個(gè)微處理器每一者可能高速緩存來自主存儲(chǔ)器的同一數(shù)據(jù)項(xiàng)的副本。為了 確保每個(gè)微處理器存取給定數(shù)據(jù)項(xiàng)的最新近更新的值,必須使用某種方法來使微處理器 之間的高速緩沖存儲(chǔ)器同步。高速緩沖存儲(chǔ)器同步通過提供某種機(jī)制防止個(gè)別微處理器 使用值己經(jīng)通過其它微處理器的操作而變得過時(shí)的數(shù)據(jù)項(xiàng),來維持高速緩沖存儲(chǔ)器"相 干性"。高速緩沖存儲(chǔ)器同步可由硬件強(qiáng)制執(zhí)行的相干性或由軟件通過高速緩沖存儲(chǔ)器管 理指令來管理。一種類型的硬件強(qiáng)制執(zhí)行的高速緩沖存儲(chǔ)器相干性是"廣播"型途徑。用于高速緩 沖存儲(chǔ)器同步的基于廣播的途徑通常依靠每個(gè)微處理器來傳輸與數(shù)據(jù)存儲(chǔ)器操作有關(guān)的 消息。個(gè)別微處理器或其高速緩沖存儲(chǔ)器控制器進(jìn)而監(jiān)視("監(jiān)聽")那些消息,以確定 另一微處理器的動(dòng)作是否已經(jīng)使保存在其相關(guān)聯(lián)高速緩沖存儲(chǔ)器中的任何數(shù)據(jù)項(xiàng)無效。使用這些所謂的"監(jiān)聽"總線因此代表維持多處理器系統(tǒng)中的高速緩沖存儲(chǔ)器相干 性的相對(duì)較直接且有效的方法。然而,監(jiān)聽總線可能減小高速緩沖存儲(chǔ)器的有效存取帶 寬,因?yàn)橥ǔT谟糜谟晌⑻幚砥鬟M(jìn)行的本地產(chǎn)生的高速緩沖存儲(chǔ)器存取的同一 "端口" 或存取總線上支持對(duì)給定高速緩沖存儲(chǔ)器的監(jiān)聽業(yè)務(wù)存取。監(jiān)聽業(yè)務(wù)的量隨著微處理器 計(jì)數(shù)增加而顯著增加,且最終,監(jiān)聽業(yè)務(wù)的量可能顯著限制整體系統(tǒng)性能。對(duì)大量監(jiān)聽業(yè)務(wù)所提出的高速緩沖存儲(chǔ)器存取干擾問題的各種解決方法包含使用多 端口高速緩沖存儲(chǔ)器,其中監(jiān)聽業(yè)務(wù)和本地產(chǎn)生的業(yè)務(wù)在不同端口上存取高速緩沖存儲(chǔ) 器。然而,此類配置可顯著增加高速緩沖存儲(chǔ)器的尺寸、功率消耗和費(fèi)用。發(fā)明內(nèi)容在以內(nèi)存庫工作的高速緩沖存儲(chǔ)器管理方法的至少一個(gè)實(shí)施例中,通過減少或消除 以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的至少一個(gè)高速緩沖存儲(chǔ)器內(nèi)存庫中的共享數(shù)據(jù)與非共 享數(shù)據(jù)的混合,來減少共享數(shù)據(jù)高速緩沖存儲(chǔ)器存取(例如,與監(jiān)聽業(yè)務(wù)相關(guān)聯(lián)的高速 緩沖存儲(chǔ)器存取)與非共享數(shù)據(jù)高速緩沖存儲(chǔ)器存取之間的干擾。減少或消除此類混合 可包括指定所述以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的一個(gè)或一個(gè)以上內(nèi)存庫用于保存共享 數(shù)據(jù),且將對(duì)共享數(shù)據(jù)的高速緩沖存儲(chǔ)器存取指向所指定的一個(gè)或一個(gè)以上高速緩沖存 儲(chǔ)器內(nèi)存庫。另外(或作為替代),可通過指定所述以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的一 個(gè)或一個(gè)以上內(nèi)存庫用于保存非共享數(shù)據(jù),且將對(duì)非共享數(shù)據(jù)的高速緩沖存儲(chǔ)器存取指 向所指定的一個(gè)或一個(gè)以上高速緩沖存儲(chǔ)器內(nèi)存庫,來減少或消除此類混合。舉例來說,給定高速緩沖存儲(chǔ)器存取(讀取或?qū)懭?根據(jù)"內(nèi)存庫選擇函數(shù)"指向 特定高速緩沖存儲(chǔ)器內(nèi)存庫中的特定高速緩沖存儲(chǔ)器位置,所述"內(nèi)存庫選擇函數(shù)"可 能至少部分地由一個(gè)或一個(gè)以上高速緩沖存儲(chǔ)器存取地址信號(hào)來驅(qū)動(dòng)。如本文所使用, 術(shù)語"內(nèi)存庫選擇函數(shù)"涵蓋用于為特定高速緩沖存儲(chǔ)器存取地址選擇特定內(nèi)存庫的多 種不同方法和算法。舉例來說,所述術(shù)語可涵蓋地址和/或其它信號(hào)散列函數(shù),或代表直 接的地址解碼。然而,根據(jù)如本文所教示的高速緩沖存儲(chǔ)器管理的至少一個(gè)實(shí)施例來實(shí)施內(nèi)存庫選 擇函數(shù),存取類型指示符(例如,共享存取指示符)修改所述內(nèi)存庫選擇函數(shù),使得對(duì) 共享數(shù)據(jù)和/或?qū)Ψ枪蚕頂?shù)據(jù)的高速緩沖存儲(chǔ)器存取被指向(導(dǎo)向)以內(nèi)存庫工作的高速 緩沖存儲(chǔ)器中的一個(gè)或一個(gè)以上指定內(nèi)存庫。舉例來說,內(nèi)存庫選擇函數(shù)可將共享存取 指向共享存取內(nèi)存庫或指向混合(共享與非共享)存取內(nèi)存庫。此動(dòng)作"集中"對(duì)指定用于保存共享數(shù)據(jù)的內(nèi)存庫中的共享數(shù)據(jù)的高速緩沖存儲(chǔ)器存取活動(dòng)。類似地,可使用 存取類型指示符來修改內(nèi)存庫選擇函數(shù),以便將非共享存取指向非共享存取內(nèi)存庫或指 向混合存取內(nèi)存庫,以集中對(duì)指定用于保標(biāo)非共享數(shù)據(jù)的內(nèi)存庫中的非共享數(shù)據(jù)的高速 緩沖存儲(chǔ)器存取活動(dòng)。在這兩種情況下,針對(duì)以內(nèi)存庫工作的高速緩沖存儲(chǔ)器中的至少 一個(gè)內(nèi)存庫,減少或消除了共享數(shù)據(jù)存取與非共享數(shù)據(jù)存取之間的干擾。針對(duì)以內(nèi)存庫工作的高速緩沖存儲(chǔ)器中的至少一個(gè)內(nèi)存庫而減少共享數(shù)據(jù)高速緩沖 存儲(chǔ)器存取與非共享數(shù)據(jù)高速緩沖存儲(chǔ)器存取之間的干擾的一般方法包括指定所述以 內(nèi)存庫工作的高速緩沖存儲(chǔ)器的一個(gè)或一個(gè)以上第一內(nèi)存庫用于保存第一類型的數(shù)據(jù), 所述第一類型的數(shù)據(jù)是共享數(shù)據(jù)和非共享數(shù)據(jù)中的一者,以及將對(duì)第一類型的數(shù)據(jù)的高 速緩沖存儲(chǔ)器存取指向所述一個(gè)或一個(gè)以上第一內(nèi)存庫。所述方法可進(jìn)一步包括指定所 述以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的一個(gè)或一個(gè)以上第二內(nèi)存庫用于保存第二類型的數(shù) 據(jù),所述第二類型的數(shù)據(jù)是共享和非共享數(shù)據(jù)中的另一者,以及將對(duì)第二類型的數(shù)據(jù)的 高速緩沖存儲(chǔ)器存取指向所述一個(gè)或一個(gè)以上第二內(nèi)存庫。任何或所有此類指定都可能 是專用的或非專用的(混合的)。實(shí)施上述方法或上述方法的變化形式的以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的一個(gè)實(shí)施例包括存取控制電路,其經(jīng)配置以基于將對(duì)第一類型的數(shù)據(jù)的高速緩沖存儲(chǔ)器存取指向以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的指定用于保存第一類型的數(shù)據(jù)的一個(gè)或一個(gè)以上第一高速緩沖存儲(chǔ)器內(nèi)存庫,而減少共享數(shù)據(jù)高速緩沖存儲(chǔ)器存取與非共享數(shù)據(jù)高速緩沖存儲(chǔ)器存取之間的干擾,所述第一類型的數(shù)據(jù)是共享數(shù)據(jù)與非共享數(shù)據(jù)中的一者。所述存取控制電路進(jìn)一步可將對(duì)第二類型的數(shù)據(jù)的高速緩沖存儲(chǔ)器存取指向以內(nèi)存庫工作的高 速緩沖存儲(chǔ)器的一個(gè)或一個(gè)以上第二高速緩沖存儲(chǔ)器內(nèi)存庫,其中所述第二類型的數(shù)據(jù)是共享和非共享數(shù)據(jù)中的另一者。在此類實(shí)施例中,存取控制電路可直接或間接響應(yīng)于存取類型指示符,所述存取類 型指示符可以是提供到以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的與高速緩沖存儲(chǔ)器存取相關(guān)聯(lián) 的共享存取信號(hào)。共享存取指示符信號(hào)的邏輯狀態(tài)或值或某一其它特性指示給定高速緩 沖存儲(chǔ)器存取是否針對(duì)共享(或非共享)數(shù)據(jù),且存取控制電路的內(nèi)存庫選擇函數(shù)相應(yīng) 地修改,以將高速緩沖存儲(chǔ)器存取指向適當(dāng)?shù)母咚倬彌_存儲(chǔ)器內(nèi)存庫。還可根據(jù)內(nèi)存庫配置信號(hào)來修改內(nèi)存庫選擇函數(shù)。即,可根據(jù)需要或要求來改變以 內(nèi)存庫工作的高速緩沖存儲(chǔ)器的配置,使得可改變將一個(gè)或一個(gè)以上內(nèi)存庫指定為用于 共享數(shù)據(jù)、非共享數(shù)據(jù)或混合數(shù)據(jù)。此類改變可在計(jì)算機(jī)操作系統(tǒng)級(jí)進(jìn)行控制,和或由在與以內(nèi)存庫工作的高速緩沖存儲(chǔ)器相關(guān)聯(lián)的處理器上運(yùn)行的個(gè)別程序來控制。
圖1是說明包含以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的多處理器電路的框圖。 圖2是說明圖1的多處理器電路中的處理器和以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的給 定一者的框圖。圖3是說明根據(jù)非共享/共享數(shù)據(jù)存取類型來控制以內(nèi)存庫工作的高速緩沖存儲(chǔ)器存 取的一個(gè)實(shí)施例的邏輯流程圖。圖4是說明用于控制以內(nèi)存庫工作的高速緩沖存儲(chǔ)器存取的存取控制電路的一個(gè)實(shí) 施例的框圖。圖5是說明具有非共享和共享內(nèi)存庫布置的以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的框圖。圖6是說明用于控制以內(nèi)存庫工作的高速緩沖存儲(chǔ)器存取的存取控制電路的另一實(shí) 施例的框圖。圖7是說明具有另一非共享和共享內(nèi)存庫布置的以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的 框圖。
具體實(shí)施方式
圖1至少部分地說明多處理器電路8,其包含多個(gè)微處理器IO和相關(guān)聯(lián)的存儲(chǔ)器高 速緩沖存儲(chǔ)器12,所述存儲(chǔ)器高速緩沖存儲(chǔ)器12通過系統(tǒng)總線14耦合到主存儲(chǔ)器16。 處理器IO可實(shí)施在一起,例如在一個(gè)集成電路裝置、芯片上系統(tǒng)電路(多芯片模塊)中, 或可單獨(dú)地實(shí)施。類似地,高速緩沖存儲(chǔ)器12可整體或部分地集成到處理器10中,或 可單獨(dú)地實(shí)施。舉例來說,高速緩沖存儲(chǔ)器12-1可包含等級(jí)1 (Ll)高速緩沖存儲(chǔ)器, 其包含在處理器10-1內(nèi);和等級(jí)2 (L2)高速緩沖存儲(chǔ)器,其在內(nèi)部或在外部實(shí)施。處 理器10-1的所說明的實(shí)施例包含高速緩沖存儲(chǔ)器控制器18-1,其可包含許多存儲(chǔ)器管理 特征。類似的配置可用于處理器10-2和10-3,且用于其相應(yīng)的高速緩沖存儲(chǔ)器12-2和 12-3。當(dāng)然,針對(duì)處理器IO和高速緩沖存儲(chǔ)器12選出的一般物理實(shí)施方案通常與本文所 論述的高速緩沖存儲(chǔ)器存取控制方法和設(shè)備沒有密切關(guān)系,且所屬領(lǐng)域的技術(shù)人員將了 解各種電路實(shí)施方案變化的可能。舉例來說,可根據(jù)需要或要求使用比所說明的更大或更小數(shù)目的處理器10和相應(yīng)的高速緩沖存儲(chǔ)器12??紤]到這些變化,多處理器電路8可作為對(duì)稱多處理(SMP)電路而操作,其中處 理器IO協(xié)作地執(zhí)行一個(gè)或一個(gè)以上計(jì)算機(jī)程序、程序線程等。處理器IO每一者可包括 精簡指令集計(jì)算機(jī)(RISC)處理器,其包含具有一個(gè)或一個(gè)以上指令執(zhí)行管線的核心單 元,且進(jìn)一步包含用于預(yù)測(cè)性地高速緩存指令和數(shù)據(jù)的預(yù)取出單元,用于跟蹤存儲(chǔ)器映 射和許可的轉(zhuǎn)譯后備緩沖器(translation look-aside buffer)等。而且,如所述,處理器10 中的每一者可進(jìn)一步包含高速緩沖存儲(chǔ)器控制器18,其可包括將所述處理器介接到高速 緩沖存儲(chǔ)器12中的個(gè)別一者、介接到系統(tǒng)總線14且介接到主存儲(chǔ)器16的較大存儲(chǔ)器管 理單元的一部分。當(dāng)然,處理器10中的每一者可進(jìn)一步包括未說明的功能元件,例如調(diào) 試電路等。主存儲(chǔ)器16可配置有一個(gè)或一個(gè)以上范圍的用于保存可由所述處理器10中的任一 者或一者以上操作的數(shù)據(jù)的"共享"存儲(chǔ)器,和一個(gè)或一個(gè)以上范圍的供處理器10中的 特定處理器使用的"非共享"存儲(chǔ)器。在所述情形下,處理器10中的每一者可在高速緩 沖存儲(chǔ)器12的相應(yīng)一者中高速緩存非共享與共享數(shù)據(jù)的混合。在一個(gè)或一個(gè)以上實(shí)施例 中,將高速緩沖存儲(chǔ)器12中的至少一者配置為以內(nèi)存庫工作的高速緩沖存儲(chǔ)器,其包括 兩個(gè)或兩個(gè)以上髙速緩沖存儲(chǔ)器內(nèi)存庫。優(yōu)選地,不同內(nèi)存庫提供獨(dú)立的可存取性,使 得對(duì)一個(gè)內(nèi)存庫的存取不干擾對(duì)另一內(nèi)存庫的存取。由于需要在高速緩沖存儲(chǔ)器12之間維持?jǐn)?shù)據(jù)相干性,所以多處理電路8使用一種或 一種以上形式的基于"廣播"的數(shù)據(jù)相千性協(xié)議,也稱為"監(jiān)聽"協(xié)議。通過監(jiān)聽,處 理器10中的一者對(duì)共享數(shù)據(jù)的經(jīng)高速緩存副本的操作由其余處理器10所了解,使得可 作出適當(dāng)?shù)母咚倬彌_存儲(chǔ)器沖刷和/或主存儲(chǔ)器更新,以確保處理器10中的每一者對(duì)所 述共享數(shù)據(jù)的有效當(dāng)前副本進(jìn)行操作。舉非限制性實(shí)例,多處理電路的監(jiān)聽協(xié)議可以是基于寫入廣播的,其中處理器10和 /或高速緩沖存儲(chǔ)器12中的每一者將所有寫入發(fā)送到系統(tǒng)總線14上,使得其它處理器/ 高速緩沖存儲(chǔ)器可根據(jù)需要更新其各自的經(jīng)高速緩存的數(shù)據(jù)?;蛘撸墒褂脤懭胧f(xié) 議,其中寫入到高速緩沖存儲(chǔ)器12的一者中的給定高速緩沖存儲(chǔ)器線致使同一高速緩沖 存儲(chǔ)器線出現(xiàn)在待失效的其它高速緩沖存儲(chǔ)器12中的任一者中。("高速緩沖存儲(chǔ)器線" 通常包括從主存儲(chǔ)器中的特定地址范圍高速緩存的給定數(shù)據(jù)塊)。當(dāng)然,可針對(duì)多處理電 路8實(shí)施其它監(jiān)聽協(xié)議,例如修改-共享-無效(Modified-Shared-Invalid, MSI)、修改-專 用-共享-無效(MESI)或修改-擁有者-專用-共享-無效(MOESI)。在一種或一種以上形式的監(jiān)聽業(yè)務(wù)在系統(tǒng)總線14上流動(dòng)的情況下,對(duì)高速緩沖存儲(chǔ) 器12的存取可包含大量的與維持高速緩沖存儲(chǔ)器12上的共享數(shù)據(jù)相干性相關(guān)聯(lián)的監(jiān)聽 業(yè)務(wù)。另外,處理器10中的每一者對(duì)保存在其相關(guān)聯(lián)高速緩沖存儲(chǔ)器12中的共享數(shù)據(jù) 和非共享數(shù)據(jù)兩者進(jìn)行本地存取,以滿足在其上執(zhí)行的代碼的要求。舉例來說,對(duì)高速 緩沖存儲(chǔ)器12-1的存取包括用于維持?jǐn)?shù)據(jù)相干性的與監(jiān)聽有關(guān)的共享數(shù)據(jù)存取與由處理 器10-1進(jìn)行的與其正在進(jìn)行的程序指令的執(zhí)行相關(guān)聯(lián)而實(shí)行的本地存取的混合。常規(guī)上, 對(duì)同一高速緩存端口或?qū)σ詢?nèi)存庫工作的高速緩沖存儲(chǔ)器中的同一內(nèi)存庫的與監(jiān)聽有關(guān) 和與操作有關(guān)的存取在總體高速緩沖存儲(chǔ)器存取帶寬方面彼此競爭。因而,在常規(guī)系統(tǒng) 中,監(jiān)聽業(yè)務(wù)因此通過與非監(jiān)聽高速緩沖存儲(chǔ)器存取競爭可用的高速緩沖存儲(chǔ)器帶寬而 減小有效性能。圖2說明處理器10-1 (也稱為"P1")及其相關(guān)聯(lián)高速緩沖存儲(chǔ)器12-1的一個(gè)實(shí)施 例。在圖示中,以內(nèi)存庫工作的高速緩沖存儲(chǔ)器12-1包括存取控制電路20,和四個(gè)高速 緩沖存儲(chǔ)器內(nèi)存庫22-1到22-4??筛鶕?jù)需要或要求實(shí)施更大或更小數(shù)目的高速緩沖存儲(chǔ) 器內(nèi)存庫22。而且,在以內(nèi)存庫工作的高速緩沖存儲(chǔ)器12-1包括芯片外L2高速緩沖存 儲(chǔ)器的情況下,存取控制電路20作為以內(nèi)存庫工作的高速緩沖存儲(chǔ)器12-1的一部分而 實(shí)施可能是有利的。然而,在一個(gè)或一個(gè)以上實(shí)施例中,存取控制電路20作為處理器 10-1的一部分在機(jī)上實(shí)施。在此類實(shí)施例中,存取控制電路20可實(shí)施為高速緩沖存儲(chǔ)器 控制器18-1的一部分。在任何情況下,在操作中,存取控制電路20認(rèn)可高速緩沖存儲(chǔ)器存取與非共享數(shù)據(jù) 或共享數(shù)據(jù)有關(guān),且根據(jù)與內(nèi)存庫22相關(guān)聯(lián)的非共享/共享指定而相應(yīng)地引導(dǎo)那些存取。 在一個(gè)或一個(gè)以上實(shí)施例中,此類認(rèn)可基于處理器10-1向存取控制電路提供共享存取指 示信號(hào)和/或內(nèi)存庫配置信號(hào)??舍槍?duì)處理器10-2和10-3 (即P2、 P3)中的任一者或一 者以上且針對(duì)其相應(yīng)的高速緩沖存儲(chǔ)器12-2和12-3采用相同或類似的配置。無論如何,以內(nèi)存庫工作的高速緩沖存儲(chǔ)器12中的給定一者內(nèi)的內(nèi)存庫22的每一 者優(yōu)選地可獨(dú)立地存取,使得對(duì)內(nèi)存庫22中的一者的存取不干擾對(duì)其余內(nèi)存庫22的存 取。通過所述高速緩沖存儲(chǔ)器配置,內(nèi)存庫22中的一者或一者以上可被指定為用于保存 非共享數(shù)據(jù)、共享數(shù)據(jù)或其混合。如果內(nèi)存庫22中的特定內(nèi)存庫被指定為專門用于保存非共享數(shù)據(jù),那么與維持共享 數(shù)據(jù)相干性相關(guān)聯(lián)的與監(jiān)聽有關(guān)的存取都不會(huì)干擾對(duì)內(nèi)存庫22中的那些特定內(nèi)存庫的 本地非共享數(shù)據(jù)存取。當(dāng)然,內(nèi)存庫22中的特定內(nèi)存庫可被指定為專門用于保存共享數(shù)據(jù),或用于保存共享與非共享數(shù)據(jù)的混合。 一般來說,內(nèi)存庫22中的不同內(nèi)存庫可被指 定為用于非共享用途、共享用途或混合用途,且為內(nèi)存庫22中的至少一者保留本地處理 器存取帶寬的方法包括從所述至少一個(gè)內(nèi)存庫中排除共享數(shù)據(jù)。以此方式引導(dǎo)共享和非 共享數(shù)據(jù)存取取決于與內(nèi)存庫22中的特定內(nèi)存庫相關(guān)聯(lián)的不同指定。更概括地說,存取控制電路20的實(shí)施例可經(jīng)配置以實(shí)施針對(duì)以內(nèi)存庫工作的高速緩 沖存儲(chǔ)器中的至少一個(gè)內(nèi)存庫減少共享數(shù)據(jù)高速緩沖存儲(chǔ)器存取與非共享數(shù)據(jù)高速緩沖 存儲(chǔ)器存取之間的干擾的方法。舉例來說,存取控制電路20可通過指定以內(nèi)存庫工作的 高速緩沖存儲(chǔ)器12的一個(gè)或一個(gè)以上第一內(nèi)存庫22用于保存第一類型的數(shù)據(jù)(所述第 一類型的數(shù)據(jù)是共享數(shù)據(jù)和非共享數(shù)據(jù)中的一者),且將對(duì)第一類型的數(shù)據(jù)的高速緩沖存 儲(chǔ)器存取指向所述一個(gè)或一個(gè)以上第一內(nèi)存庫,來減少此類干擾??苫谙虼嫒】刂齐?路12提供的與高速緩沖存儲(chǔ)器存取相關(guān)聯(lián)的存取類型指示符,將存取認(rèn)可為以第一類型 的數(shù)據(jù)為目標(biāo)。存取控制電路20進(jìn)一步可經(jīng)配置以指定以內(nèi)存庫工作的高速緩沖存儲(chǔ)器12的一個(gè) 或一個(gè)以上第二內(nèi)存庫22用于保存第二類型的數(shù)據(jù),所述第二類型的數(shù)據(jù)是共享和非共 享數(shù)據(jù)中的另一者,且將對(duì)第二類型的數(shù)據(jù)的高速緩沖存儲(chǔ)器存取指向所述一個(gè)或一個(gè) 以上第二內(nèi)存庫22。在此類實(shí)施例中,指定以內(nèi)存庫工作的高速緩沖存儲(chǔ)器12的一個(gè) 或一個(gè)以上第一內(nèi)存庫22用于保存第一類型的數(shù)據(jù)可包括指定第一高速緩沖存儲(chǔ)器內(nèi) 存庫22用于保存共享數(shù)據(jù)。類似地,指定一個(gè)或一個(gè)以上第二高速緩沖存儲(chǔ)器內(nèi)存庫 22用于保存第二類型的數(shù)據(jù)可包括指定第二高速緩沖存儲(chǔ)器內(nèi)存庫22用于保存非共享 數(shù)據(jù)。通過這種布置,將對(duì)第一類型的數(shù)據(jù)的高速緩沖存儲(chǔ)器存取指向高速緩沖存儲(chǔ)器內(nèi) 存庫22中的所述第一者,且將對(duì)非共享數(shù)據(jù)的高速緩沖存儲(chǔ)器存取指向高速緩沖存儲(chǔ)器 內(nèi)存庫22中的所述第二者。還應(yīng)注意,此類指定之一或兩者可以是專用的,使得所有的 共享和/或非共享存取都被專門指向以內(nèi)存庫工作的高速緩沖存儲(chǔ)器12中的一個(gè)或一個(gè)以上指定內(nèi)存庫22。然而,所述指定還可以是非專用的,使得至少對(duì)于給定范圍的高速 緩沖存儲(chǔ)器地址來說,共享和非共享存取兩者都指向同一內(nèi)存庫。甚至在高速緩沖存儲(chǔ) 器內(nèi)存庫22中的給定一者被指定為混合內(nèi)存庫的情況下,也可控制所述內(nèi)存庫的用于共 享或非共享數(shù)據(jù)的量或百分比,例如其可主要用于共享或非共享數(shù)據(jù),使得所述內(nèi)存庫 中對(duì)于非主要類型的數(shù)據(jù)的存取干擾最小。存取類型指示符可以是在軟件控制下設(shè)置的信號(hào)或其它類型的值。舉例來說,存取類型指示符可包括微處理器10內(nèi)的由軟件編寫的頁面表中的位,使得硬件(例如,處理 器IO)在基于給定存儲(chǔ)器地址執(zhí)行頁面表查找之后具有對(duì)指示符的存取權(quán)。在另一實(shí)施 例中,存取類型指示符可包括對(duì)照處理器10內(nèi)的一些軟件編寫的配置寄存器進(jìn)行地址解 碼/比較的結(jié)果。舉例來說,軟件可對(duì)兩個(gè)寄存器進(jìn)行配置以指示共享區(qū)域開頭和結(jié)尾, 且處理器10可通過對(duì)照那些寄存器而比較存取地址的全部或一部分以確定給定存取是 共享的還是非共享的,來將存取類型指示符信號(hào)設(shè)置為適當(dāng)?shù)臓顟B(tài)。在又一實(shí)施例中,處理器10內(nèi)的軟件編程的寄存器用于指示某一類型的存取是共享 的還是非共享的,且所述寄存器的狀態(tài)或值因此充當(dāng)存取類型指示符信號(hào)。共享/非共享 確定可基于軟件對(duì)何種類型的存取能夠存取存儲(chǔ)器的哪些區(qū)域的了解。此類布置可能對(duì) 與高速緩沖存儲(chǔ)器管理操作、轉(zhuǎn)譯后備緩沖器(TLB)管理操作和其它專門功能(例如, 數(shù)據(jù)流動(dòng)(data streaming)等)相關(guān)聯(lián)的存取有用。無論如何,考慮到上述共享/非共享存取引導(dǎo)方法,圖3說明可經(jīng)實(shí)施以支持引導(dǎo)共 享和非共享存取的處理邏輯,且所述處理邏輯將所述高速緩沖存儲(chǔ)器12的任一者或一者 以上中的內(nèi)存庫22中的特定內(nèi)存庫指定為共享或非共享(步驟100)而開始。此步驟可 以是隱式步驟,例如在以內(nèi)存庫工作的高速緩沖存儲(chǔ)器12配置有預(yù)界定的共享和非共享 內(nèi)存庫指定的情況下,或此步驟可以是其中內(nèi)存庫指定是可配置的實(shí)施例中的顯式步驟。假定作出所需指定,那么處理通過進(jìn)行高速緩沖存儲(chǔ)器存取(步驟102),和將存取 類型確定為共享或非共享(步驟104)而繼續(xù)。如果所述存取是針對(duì)共享數(shù)據(jù)的(步驟 106處,是),那么其指向內(nèi)存庫22中被指定為保存共享數(shù)據(jù)的一者。相反,如果所述 存取是針對(duì)非共享數(shù)據(jù)的(步驟106處,否),那么其指向內(nèi)存庫22中被指定為保存非 共享數(shù)據(jù)的一者。圖4說明存取控制電路20的一個(gè)實(shí)施例,所述存取控制電路20包括內(nèi)存庫選擇器 電路24,其經(jīng)配置以基于"散列"針對(duì)高速緩沖存儲(chǔ)器存取而產(chǎn)生的一個(gè)或一個(gè)以上地 址位,將高速緩沖存儲(chǔ)器存取指向非共享或共享內(nèi)存庫22。舉例來說,對(duì)于兩個(gè)內(nèi)存庫 22,可使用一個(gè)或一個(gè)以上地址線來分別對(duì)應(yīng)于共享或非共享存取而產(chǎn)生"BANKO"選 擇信號(hào)或"BANK 1"選擇信號(hào)。圖5說明兩個(gè)此類選擇性地存取的內(nèi)存庫22。類似地,圖6和圖7分別說明存取控制電路20的另一實(shí)施例,和共享和非共享內(nèi)存 庫指定的相應(yīng)實(shí)例。更具體地說,圖6中所說明的存取控制電路20的實(shí)施例根據(jù)散列一 個(gè)或一個(gè)以上地址線和共享存取指示信號(hào)以及(視情況)內(nèi)存庫配置信號(hào),來引導(dǎo)非共 享和共享數(shù)據(jù)高速緩沖存儲(chǔ)器存取。共享存取指示符信號(hào)可包括一個(gè)或一個(gè)以上位,且可根據(jù)正邏輯或負(fù)邏輯而被斷言,以指示給定高速緩沖存儲(chǔ)器存取是針對(duì)映射到主存儲(chǔ) 器的共享或非共享區(qū)域的高速緩沖存儲(chǔ)器線的。此類共享指示可根據(jù)經(jīng)存儲(chǔ)以供處理器 使用的存儲(chǔ)器頁面信息而容易地產(chǎn)生。類似于共享指示信號(hào),內(nèi)存庫配置信號(hào)可以是一 個(gè)或一個(gè)以上位,且可以是處理器產(chǎn)生的。將處理器10-1用作實(shí)例,高速緩沖存儲(chǔ)器控制器18-1可經(jīng)配置以產(chǎn)生共享指示符信 號(hào)和/或內(nèi)存庫配置信號(hào),以支持存取控制電路20的操作。在需要的情況下,高速緩沖 存儲(chǔ)器控制器18-1可經(jīng)配置以響應(yīng)于(例如)主存儲(chǔ)器16的重新映射,或響應(yīng)于不同 操作系統(tǒng)或程序模式而動(dòng)態(tài)地更新內(nèi)存庫配置信號(hào)。在此類情況下,高速緩沖存儲(chǔ)器控 制器18-1可經(jīng)配置以作為對(duì)共享/非共享內(nèi)存庫指定進(jìn)行重新配置的一部分而沖刷以內(nèi) 存庫工作的高速緩沖存儲(chǔ)器12-1或以其它方式使其無效或?qū)ζ溥M(jìn)行清除。所屬領(lǐng)域的技 術(shù)人員將了解,處理器10-2和10-3、高速緩沖存儲(chǔ)器控制器18-2和18-3以及以內(nèi)存庫 工作的高速緩沖存儲(chǔ)器12-2和12-3的任一者或一者以上中可存在類似配置。當(dāng)然,所屬領(lǐng)域的技術(shù)人員應(yīng)了解,本文的論述內(nèi)容涉及各種說明性實(shí)施例且不限 制本發(fā)明,附圖也不限制本發(fā)明。事實(shí)上,本發(fā)明僅受所附權(quán)利要求書及其合法均等物 限制。
權(quán)利要求
1.一種針對(duì)以內(nèi)存庫工作的高速緩沖存儲(chǔ)器中的至少一個(gè)內(nèi)存庫,減少共享數(shù)據(jù)高速緩沖存儲(chǔ)器存取與非共享數(shù)據(jù)高速緩沖存儲(chǔ)器存取之間的干擾的方法,所述方法包括指定所述以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的一個(gè)或一個(gè)以上第一內(nèi)存庫用于保存第一類型的數(shù)據(jù),所述第一類型的數(shù)據(jù)是共享數(shù)據(jù)和非共享數(shù)據(jù)中的一者;以及將對(duì)所述第一類型的數(shù)據(jù)的高速緩沖存儲(chǔ)器存取指向所述一個(gè)或一個(gè)以上第一內(nèi)存庫。
2. 根據(jù)權(quán)利要求l所述的方法,其進(jìn)一步包括指定所述以內(nèi)存庫工作的高速緩沖存儲(chǔ) 器的一個(gè)或一個(gè)以上第二內(nèi)存庫用于保存第二類型的數(shù)據(jù),所述第二類型的數(shù)據(jù)是 共享和非共享數(shù)據(jù)中的另一者,以及將對(duì)所述第二類型的數(shù)據(jù)的高速緩沖存儲(chǔ)器存取指向所述一個(gè)或一個(gè)以上第二內(nèi)存庫。
3. 根據(jù)權(quán)利要求2所述的方法,其中指定所述以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的一個(gè) 或一個(gè)以上第一內(nèi)存庫用于保存第一類型的數(shù)據(jù)包括指定所述以內(nèi)存庫工作的高 速緩沖存儲(chǔ)器的第一高速緩沖存儲(chǔ)器內(nèi)存庫用于保存共享數(shù)據(jù),且其中指定一個(gè)或 一個(gè)以上第二高速緩沖存儲(chǔ)器內(nèi)存庫用于保存第二類型的數(shù)據(jù)包括指定所述以內(nèi) 存庫工作的高速緩沖存儲(chǔ)器的第二高速緩沖存儲(chǔ)器內(nèi)存庫用于保存非共享數(shù)據(jù)。
4. 根據(jù)權(quán)利要求3所述的方法,其中將對(duì)所述第一類型的數(shù)據(jù)的高速緩沖存儲(chǔ)器存取 指向所述一個(gè)或一個(gè)以上第一內(nèi)存庫包括將對(duì)共享數(shù)據(jù)的高速緩沖存儲(chǔ)器存取指 向所述第一高速緩沖存儲(chǔ)器內(nèi)存庫,且進(jìn)一步包括將對(duì)非共享數(shù)據(jù)的高速緩沖存儲(chǔ) 器存取指向所述第二高速緩沖存儲(chǔ)器內(nèi)存庫。
5. 根據(jù)權(quán)利要求l所述的方法,其進(jìn)一步包括指定所述以內(nèi)存庫工作的高速緩沖存儲(chǔ) 器的一個(gè)或一個(gè)以上第二內(nèi)存庫用于保存第二類型的數(shù)據(jù),所述第二類型的數(shù)據(jù)是 共享和非共享數(shù)據(jù)中的另一者,以及將對(duì)所述第二類型的數(shù)據(jù)的高速緩沖存儲(chǔ)器存取指向所述一個(gè)或一個(gè)以上第二內(nèi)存庫。
6. 根據(jù)權(quán)利要求l所述的方法,其中指定所述以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的一個(gè) 或一個(gè)以上第一內(nèi)存庫用于保存第一類型的數(shù)據(jù)包括指定所述以內(nèi)存庫工作的高 速緩沖存儲(chǔ)器的至少一個(gè)內(nèi)存庫專門用于保存所述第一類型的數(shù)據(jù)。
7. 根據(jù)權(quán)利要求l所述的方法,其中指定所述以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的一個(gè) 或一個(gè)以上第一內(nèi)存庫用于保存第一類型的數(shù)據(jù)包括指定所述以內(nèi)存庫工作的高 速緩沖存儲(chǔ)器的至少一個(gè)內(nèi)存庫用于保存所述第一類型的數(shù)據(jù)與第二類型的數(shù)據(jù) 的混合,所述第二類型的數(shù)據(jù)是共享和非共享數(shù)據(jù)中的另一者。
8. 根據(jù)權(quán)利要求l所述的方法,其中將對(duì)所述第一類型的數(shù)據(jù)的高速緩沖存儲(chǔ)器存取 指向所述一個(gè)或一個(gè)以上第一內(nèi)存庫包括將內(nèi)存庫選擇函數(shù)配置成響應(yīng)于指示高 速緩沖存儲(chǔ)器存取是否針對(duì)所述第一類型的數(shù)據(jù)的存取類型指示符信號(hào)。
9. 根據(jù)權(quán)利要求8所述的方法,其中將內(nèi)存庫選擇函數(shù)配置成響應(yīng)于指示高速緩沖存儲(chǔ)器存取是否針對(duì)所述第一類型的數(shù)據(jù)的存取類型指示符包括將所述內(nèi)存庫選擇函數(shù)配置成根據(jù)一個(gè)或一個(gè)以上高速緩沖存儲(chǔ)器存取地址信號(hào)和所述存取類型指 示符信號(hào),將給定高速緩沖存儲(chǔ)器存取指向所述以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的 特定內(nèi)存庫中的特定的一或多個(gè)位置。
10. 根據(jù)權(quán)利要求l所述的方法,其中指定所述以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的一個(gè) 或一個(gè)以上第一內(nèi)存庫用于保存第一類型的數(shù)據(jù)包括將用于將高速緩沖存儲(chǔ)器存 取指向所述以內(nèi)存庫工作的高速緩沖存儲(chǔ)器中的特定內(nèi)存庫的內(nèi)存庫選擇函數(shù)配 置成響應(yīng)于指示個(gè)別高速緩沖存儲(chǔ)器存取是否涉及所述第一類型的數(shù)據(jù)的存取類 型指示符信號(hào)。
11. 根據(jù)權(quán)利要求10所述的方法,其進(jìn)一步包括根據(jù)需要重新配置所述內(nèi)存庫選擇函數(shù),以改變對(duì)所述以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的所述一個(gè)或一個(gè)以上第一內(nèi)存 庫的所述指定。
12. 根據(jù)權(quán)利要求11所述的方法,其進(jìn)一步包括響應(yīng)于改變所述指定,而從所述以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的所述一個(gè)或一個(gè)以上第一內(nèi)存庫沖刷當(dāng)前高速緩存的數(shù)據(jù)。
13. —種減少以內(nèi)存庫工作的高速緩沖存儲(chǔ)器中對(duì)共享數(shù)據(jù)的高速緩沖存儲(chǔ)器存取與 對(duì)非共享數(shù)據(jù)的高速緩沖存儲(chǔ)器存取之間的高速緩沖存儲(chǔ)器存取干擾 的方法,所述 方法包括減少或消除所述以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的至少一個(gè)高速緩沖存 儲(chǔ)器內(nèi)存庫中的共享與非共享數(shù)據(jù)的混合。
14. 根據(jù)權(quán)利要求13所述的方法,其中減少或消除所述以內(nèi)存庫工作的高速緩沖存儲(chǔ) 器的至少一個(gè)高速緩沖存儲(chǔ)器內(nèi)存庫中的共享與非共享數(shù)據(jù)的混合包括指定所述以內(nèi)存庫工作的高速緩沖存儲(chǔ)器中的一個(gè)或一個(gè)以上內(nèi)存庫用于保存共享數(shù)據(jù),以 及將對(duì)共享數(shù)據(jù)的高速緩沖存儲(chǔ)器存取指向所述指定的一個(gè)或一個(gè)以上高速緩沖存儲(chǔ)器內(nèi)存庫。
15. 根據(jù)權(quán)利要求13所述的方法,其中減少或消除所述以內(nèi)存庫工作的高速緩沖存儲(chǔ) 器的至少一個(gè)高速緩沖存儲(chǔ)器內(nèi)存庫中的共享與非共享數(shù)據(jù)的混合包括指定所述以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的一個(gè)或一個(gè)以上內(nèi)存庫用于保存非共享數(shù)據(jù),以 及將對(duì)非共享數(shù)據(jù)的高速緩沖存儲(chǔ)器存取指向所述指定的一個(gè)或一個(gè)以上高速緩沖存儲(chǔ)器內(nèi)存庫。
16. —種以內(nèi)存庫工作的高速緩沖存儲(chǔ)器,其包括存取控制電路,所述存取控制電路經(jīng) 配置以通過將對(duì)第一類型的數(shù)據(jù)的高速緩沖存儲(chǔ)器存取指向所述以內(nèi)存庫工作的 高速緩沖存儲(chǔ)器的指定用于保存所述第一類型的數(shù)據(jù)的一個(gè)或一個(gè)以上第一高速 緩沖存儲(chǔ)器內(nèi)存庫,來減少共享數(shù)據(jù)高速緩沖存儲(chǔ)器存取與非共享數(shù)據(jù)高速緩沖存 儲(chǔ)器存取之間的干擾,所述第一類型的數(shù)據(jù)是共享數(shù)據(jù)和非共享數(shù)據(jù)中的一者。
17. 根據(jù)權(quán)利要求16所述的以內(nèi)存庫工作的高速緩沖存儲(chǔ)器,其中所述存取控制電路 經(jīng)配置以將對(duì)第二類型的數(shù)據(jù)的高速緩沖存儲(chǔ)器存取指向所述以內(nèi)存庫工作的高 速緩沖存儲(chǔ)器的一個(gè)或一個(gè)以上第二高速緩沖存儲(chǔ)器內(nèi)存庫,其中所述第二類型的 數(shù)據(jù)是共享和非共享數(shù)據(jù)中的另一者。
18. 根據(jù)權(quán)利要求17所述的以內(nèi)存庫工作的高速緩沖存儲(chǔ)器,其中所述存取控制電路經(jīng)配置以基于向所述以內(nèi)存庫工作的高速緩沖存儲(chǔ)器提供的與給定高速緩沖存儲(chǔ) 器存取相關(guān)聯(lián)的存取類型指示符信號(hào),而確定所述給定高速緩沖存儲(chǔ)器存取是針對(duì) 所述第一類型的數(shù)據(jù)還是針對(duì)所述第二類型的數(shù)據(jù)。
19. 根據(jù)權(quán)利要求16所述的以內(nèi)存庫工作的高速緩沖存儲(chǔ)器,其中所述存取控制電路 經(jīng)配置以基于接收到與高速緩沖存儲(chǔ)器存取相關(guān)聯(lián)的存取類型指示符信號(hào)而實(shí)施 內(nèi)存庫選擇函數(shù),且其中所述存取控制電路經(jīng)配置以在所述存取類型指示符信號(hào)指 示給定高速緩沖存儲(chǔ)器存取是針對(duì)所述第一類型的數(shù)據(jù)時(shí),將所述給定高速緩沖存 儲(chǔ)器存取指向所述一個(gè)或一個(gè)以上第一高速緩沖存儲(chǔ)器內(nèi)存庫。
20. 根據(jù)權(quán)利要求16所述的以內(nèi)存庫工作的高速緩沖存儲(chǔ)器,其中所述一個(gè)或一個(gè)以 上第一高速緩沖存儲(chǔ)器內(nèi)存庫中的至少一者被指定為專門用于保存所述第一類型 的數(shù)據(jù)。
21. 根據(jù)權(quán)利要求16所述的以內(nèi)存庫工作的高速緩沖存儲(chǔ)器,其中所述一個(gè)或一個(gè)以 上第一高速緩沖存儲(chǔ)器內(nèi)存庫中的至少一者被指定為非專門用于保存所述第一類 型的數(shù)據(jù)。
22. 根據(jù)權(quán)利要求16所述的以內(nèi)存庫工作的高速緩沖存儲(chǔ)器,其中所述存取控制電路 可經(jīng)配置以允許改變對(duì)所述一個(gè)或一個(gè)以上第一高速緩沖存儲(chǔ)器內(nèi)存庫的所述指 定。
全文摘要
在多處理器系統(tǒng)中,控制對(duì)給定處理器的以內(nèi)存庫工作的高速緩沖存儲(chǔ)器的存取,使得共享數(shù)據(jù)存取指向指定用于保存共享數(shù)據(jù)的一個(gè)或一個(gè)以上內(nèi)存庫,且/或非共享數(shù)據(jù)存取指向指定用于保存非共享數(shù)據(jù)的一個(gè)或一個(gè)以上內(nèi)存庫??蓪⒎枪蚕頂?shù)據(jù)內(nèi)存庫指定為專門用于保存非共享數(shù)據(jù),使得共享數(shù)據(jù)存取不會(huì)干擾對(duì)所述內(nèi)存庫的非共享存取。而且,可將共享數(shù)據(jù)內(nèi)存庫指定為專門用于保存共享數(shù)據(jù),且可將一個(gè)或一個(gè)以上內(nèi)存庫指定為用于保存共享和非共享數(shù)據(jù)兩者。存取控制電路基于接收到與存取相關(guān)聯(lián)的共享指示信號(hào),而將共享和非共享存取指向各自的內(nèi)存庫。另外,在一個(gè)或一個(gè)以上實(shí)施例中,所述存取控制電路響應(yīng)于內(nèi)存庫配置信號(hào)而重新配置一個(gè)或一個(gè)以上內(nèi)存庫指定。
文檔編號(hào)G06F12/08GK101228512SQ200680027142
公開日2008年7月23日 申請(qǐng)日期2006年6月2日 優(yōu)先權(quán)日2005年6月2日
發(fā)明者托馬斯·菲利普·施派爾, 詹姆斯·諾里斯·迪芬德爾費(fèi)爾 申請(qǐng)人:高通股份有限公司