專利名稱:具有高速緩存內存之系統(tǒng)及訪問方法
技術領域:
本發(fā)明大體上是關于內存系統(tǒng),尤指使用高速緩存內存的系統(tǒng)。
背景技術:
利用犧牲高速緩存(victim cache)的系統(tǒng)通過傳送于上級高速緩 存被覆寫的高速緩存線至下級犧牲高速緩存以供儲存而以高速緩存寫 入模式運作。在讀取作業(yè)期間,所請求的數據系從犧牲高速緩存?zhèn)魉?至上級高速緩存以響應存在于該犧牲高速緩存之線之該所請求的數 據,如由高速緩存命中(cache hit)所指示。使讀取自該犧牲高速緩存 之高速緩存線無效之寫入發(fā)生作為部分的讀取作業(yè)。使該讀取高速緩 存線無效允許該高速緩存線由高速緩存控制器識別為可用于接下來的 寫入作業(yè)。
發(fā)明內容
本發(fā)明的目的是提供一種具有上級高速緩存與以犧牲模式運作的 下級高速緩存,并且識別近來最多已讀取的高速緩存位置為近來最少 使用的高速緩存位置的高速緩存內存系統(tǒng)及其訪問方法。本發(fā)明的高 速緩存內存系統(tǒng)包括數據處理器,包含總線以訪問高速緩存數據; 第一高速緩存,包含耦合于該數據處理器的該總線端口的第一總線端 口、以及第二總線端口;第二高速緩存,包含耦合于該數據處理器的 該第二總線端口的總線端口,該第二高速緩存用以經由該第二高速緩 存提供數據至該數據處理器,該第二高速緩存包含近來最多使用的 控制模塊,以識別近來最多已讀取的高速緩存位置為近來最少使用的 高速緩存位置。
通過參考附圖可以更佳了解本發(fā)明,以及其數個特征及優(yōu)點對在 此技術領域之具有通常技藝者會變的顯而易見。
圖1是根據本發(fā)明的特定實施例以方塊圖形式例示包含高速緩存
內存的系統(tǒng);
圖2是以先前技術對照本發(fā)明實施例所例示的時序圖; 圖3是根據本發(fā)明的特定實施例以方塊圖形式例示在共同的高速 緩存列中的高速緩存線之狀態(tài)上之讀取命中與寫入命中的影響;以及 圖4至7是以流程圖形式根據本發(fā)明例示的方法;
在不同的圖式中使用的相同的組件符號指示類似或相同的項目。
具體實施例方式
根據本發(fā)明之特定實施例,揭露了一種犧牲高速緩存(victim cache)系統(tǒng)。在一個實施例中,第一級(L1)與第二級(L2)高速緩存一 起運作,使得L2高速緩存為犧牲高速緩存,該犧牲高速緩存儲存從該 Ll高速緩存移出的數據。根據本發(fā)明之特定實施例,當數據從L1高速 緩存寫入至L2高速緩存時,被寫入的高速緩存線在MRU陣列中系識別 為在其高速緩存行中近來最多使用的(MRU)高速緩存線。然而,讀取至
犧牲高速緩存的數據造成從犧牲高速緩存讀取高速緩存線因其被識別 于MRU陣列中為在其高速緩存行中近來最少使用的(LRU)線。識別剛從
高速緩存讀取的高速緩存線為于該行中近來最少使用的線具有如同使 巻標(TAG)陣列中的線無效之類似的效用,其中近來最多讀取的高速緩
存線在高速緩存行之任何其它有效線之前遭受被覆寫。這種情況優(yōu)于 使用犧牲高速緩存的先前系統(tǒng),因為如果需要的話,讀取高速緩存線 的數據保持可用于后續(xù)讀取。舉例來說,若中止犧牲高速緩存數據之 最初讀取傳送,則高速緩存線能隨后從該犧牲高速緩存讀取,因為該 高速緩存線尚未無效化。另一個優(yōu)點是改善了犧牲高速緩存頻寬,因 為沒有需要個別的寫入周期來使該讀取高速緩存線之TAG位置無效化。
如本文中所用的術語,行(或高速緩存行)系指依據目前地址的索 引部分所選定的高速緩存線組,請看圖1中的A(索引)。舉例來說,組 件符號141、 142、以及143代表高速緩存行,各高速緩存行具有4條 高速緩存線。參考本文的圖1至7,將會更了解本發(fā)明之這些及其它具 體實施例。
圖1例示根據本發(fā)明的具體實施例之系統(tǒng)100。系統(tǒng)100包括請求
裝置110、第一級(L1)高速緩存120以及第二級(L2)犧牲高速緩存130。 系統(tǒng)100可代表系統(tǒng)整合芯片(system-on-a-chip, SOC)的系統(tǒng)或多組 件的系統(tǒng)。在多組件系統(tǒng)的情況下,裝置110、高速緩存120以及高速 緩存130的部分可存在于不同的半導體基材上。在一個實施例中,裝 置110以及高速緩存120系在共同的半導體基材上,而有些高速緩存 130或沒有高速緩存130系制造于不同的半導體基材上。當系統(tǒng)100 包括多個組件時,可通過使用印刷電路板、多芯片模塊或其它能夠支 撐與互連該等組件的基材而將組件互相連接。
在操作中,請求裝置110具有總線端口,該總線端口系電性連接 至L1高速緩存120之總線端口。在特定的實施例中,該請求裝置110 可以是微控制器的中央處理單元。在數據訪問作業(yè)期間,該請求裝置 110將請求讀取(收到)或寫入(傳送)的信息。任一讀取或寫入之訪問作 業(yè)可導致數據被寫入至高速緩存120與130。
若命中(hit)發(fā)生在高速緩存模塊120,則高速緩存模塊120將提 供由請求裝置110所請求的數據。若失誤(miss)發(fā)生在高速緩存模塊 120,亦即該所請求的數據并不存在,則數據將從犧牲高速緩存130或 從例如系統(tǒng)內存之另一內存位置(未圖標)被寫入至高速緩存模塊120。 舉例來說,若所請求的數據不存在于高速緩存120或高速緩存130,則 該數據將會從不同的內存位置而被接收。若響應于從不同的內存位置 接收數據而需在高速緩存120之高速緩存線覆寫數據,則將要被覆寫 的數據將先從Ll高速緩存120取出并且被寫入至犧牲高速緩存130以 供儲存。犧牲高速緩存130識別接收取出數據的高速緩存線為近來最 多使用的高速緩存線以響應其被寫入。
若對由請求裝置110所請求的數據之高速緩存命中發(fā)生在犧牲高 速緩存130中,而非在外部內存或L1高速緩存120,則該所請求的數 據系自犧牲高速緩存130提供給Ll高速緩存120以供儲存。這種位于 犧牲高速緩存130內之高速緩存線的讀取導致該讀取高速緩存線被識 別為近來最少使用者。
該犧牲高速緩存130系例示包括內存陣列140、巻標/有效位陣列 135、高速緩存巻標控制部分165、高速緩存命中模塊155、近來最多 使用的(MRU)控制模塊166、 MRU陣列170以及路向選擇模塊部分(Way Select Module Portion)150。
總線125將該LI高速緩存120耦合到犧牲高速緩存130以提供地 址信息,該地址信息包括巻標(TAG)部分以及從該LI高速緩存120至 該犧牲高速緩存130之索引(INDEX)部分。應該了解的是,存在著附加 的數據及控制總線,且僅有地址總線系例示為了討論的目的。傳送用 來識別內存陣列135的高速緩存線的特定組之地址信息的總線125的 部分系標示為A(索引)且連接至高速緩存巻標控制165。用來選擇高速 緩存列的特定路向之地址信息系標示為A(巻標)且提供給高速緩存命 中模塊部分155。內存陣列部分140包含高速緩存行141至144,且例 示以進一步包含四個路向(ways),路向146至149。路向選擇模塊150 系連接至高速緩存內存陣列140,以接收信號而選擇與內存陣列140 之路向之其中一者相關聯的數據以提供至L1高速緩存120并響應于犧 牲高速緩存130中的命中(hit)。
高速緩存巻標控制器165選擇高速緩存內存陣列140之高速緩存 行之其中一者以及與該行相關聯之陣列135中的巻標與有效位。若響 應于接收特定地址而決定目前地址巻標(A (巻標))系儲存于高速緩存 巻標/有效位陣列135內,則訊號將由高速緩存命中模塊155所判定 (asserted),并且提供給MRU控制166以及路向選擇模塊150,其乃導 致數據從犧牲高速緩存130提供至LI高速緩存120以及MRU寄存器的 更新。
在寫入作業(yè)期間,MRU控制模塊166將更新MRU陣列170以指示該
被寫入的線是在其列內近來最多使用的線。
在讀取作業(yè)期間,MRU控制模塊166將更新MRU陣列170以指示該
被讀取的線在其行內是近來最少使用的高速緩存線。通過指示該讀取 線系近來最少使用的線,當該讀取線實際上是近來最多訪問過的時, 則確定剛讀取過的線在后續(xù)寫入作業(yè)期間將有被覆寫的最高可能性, 同時在被覆寫之前維持最近讀取數據的可用性。這種情況優(yōu)于先前系 統(tǒng)(其中一旦讀取高速緩存線數據,則該先前系統(tǒng)使線的犧牲高速緩存 巻標無效),因此若后續(xù)需要原始數據系來自犧牲高速緩存,例如若高 速緩存線的原始讀取必須中止,則防止了高速緩存線之后續(xù)數據讀取。 通過使用該揭露的系統(tǒng)也可實現改良的頻寬,因為個別的寫入巻
標/有效陣列135以使高速緩存線無效是不需要的。參考圖2,將會更 佳了解。
圖2是例示用于對先前犧牲之高速緩存的讀取以及用于對根據本 發(fā)明之犧牲高速緩存130之讀取之時序圖。訊號211代表對先前系統(tǒng) 中犧牲高速緩存的巻標/有效位的訪問,以及訊號212代表對先前系統(tǒng) 的MRU陣列的MRU指針的訪問。具體而言,在對先前犧牲陣列之讀取 的第一周期(Cl)期間,所選定高速緩存行的該等巻標與無效位系讀取 如訊號211之脈沖RD1所表示。在同樣的周期期間,用于該訪問列之 MRU指針系被讀取與寫入,如訊號212之脈沖RD1與Wl所表示。因為
該無效位是在用于訪問儲存于犧牲高速緩存中的數據的速度路徑 (speed path)中,且因為該巻標/無效陣列135遠大于該MRU陣列,因 此一般在同樣的周期中寫回至該陣列135之無效位是不可行的。反而 是在同樣的讀取作業(yè)的第二周期期間,將有效位寫入以指示于高速緩 存行內之特定線的數據是無效的。該犧牲高速緩存之下一個讀取不會 發(fā)生直到第三個周期(C3)為止。
訊號213代表對該揭露的系統(tǒng)中的巻標之巻標/有效位的訪問。訊 號214代表對該MRU陣列之MRU指針的訪問。具體而言,所選定高速 緩存行之該巻標與無效位系讀取于訊號213之脈沖RD1所代表的時間 之Cl期間。在同樣的周期期間,用于訪問行之MRU指針被讀取與寫入, 如訊號214脈沖RD1與Wl所表示。因為在Cl期間寫回該MRU陣列, 所以第二讀取作業(yè)可發(fā)生在周期C2,因而改善了該犧牲高速緩存130 之讀取頻寬。
圖3通過例示對犧牲高速緩存130之讀取與寫入作業(yè)如何達成高 速緩存行之MRU及有效位來促迸犧牲高速緩存130之了解。具體而言, 圖3例示陣列337,其具有行與列對應于圖1的犧牲高速緩存130的行 與路向。舉例來說,行241至244對應于高速緩存行141至144,而列 246至249對應于路向146至149。陣列337之各高速緩存線包含字母" i"或"v",其中該字母"i"指示與該高速緩存線相關聯的數據是無 效的,以及該字母"v"指示與該高速緩存線相關聯的數據是有效的。 那些識別為含有有效數據的線也包含1至4的數字以指示其近來最多 使用的狀態(tài),其中l(wèi)代表近來最多使用的數據而4代表近來最少使用
的數據。
圖3的線242至線242A的路徑代表與行241、列249相關聯的線 之數據讀取,而線242至線242B的路徑代表與行242、列249相關聯 之高速緩存線的數據寫入。
在對行142、路向149之讀取作業(yè)期間,與142之高速緩存列相關 聯的MRU值被修改,使得近來讀取線含有值4,并且因此被識別為近來 最少使用的線。在對行142、路向149之寫入作業(yè)期間,該與高速緩存 行142相關聯的MRU值被修改,使得近來寫入的線含有值l,而因此被 識別為近來最多使用的線。
儲存特定高速緩存線的使用狀態(tài)之方式可以許多方式完成,舉例 來說,各高速緩存線可與內存位置相關聯,該內存位置具有足夠的大 小以指示其目前使用的排名(ranking)。對具有四條高速緩存線的高速 緩存行而言,此將需要四個2位的位置。或者,具有四條高速緩存線 之高速緩存行可使用假排名架構(pseudo-ranking scheme),該架構只 使用3個位。在此種架構中,有兩個已識別之高速緩存線的非重疊組, 各非重疊組代表四條高速緩存線的其中兩條。用來實行假排名架構之 三個位的第一位被判定以指示第一組含有近來最多使用的高速緩存 線,并且被否定(negated)以指示第二組含有近來最多使用的高速緩存 線。該假排名架構的其余兩個位被判定或否定以指示位于個別組內的 哪一個高速緩存線是近來最多被訪問的。應該了解的是,此架構允許 在列中之近來最多使用的與近來最少使用的高速緩存線的識別。
圖4以流程圖形式例示根據本發(fā)明的實施例的方法。于步驟311, 作為讀取作業(yè)的部分,進行判定請求的第一信息系儲存于第一高速緩 存位置,例如在犧牲高速緩存內的高速緩存線,亦即命中。
于步驟312,響應于步驟311中之成功的命中,促進從該第一高速 緩存位置取得該請求的信息。請參考圖l,響應于成功的巻標(TAG)命 中,根據由高速緩存巻標控制165之高速緩存行選擇模塊所選定的高 速緩存行,和由高速緩存命中模塊155提供之選擇訊號,透過路向選 擇模塊150而選擇該請求的信息。
于步驟313,響應于步驟311中的成功命中,訪問該請求的信息的
高速緩存位置將被識別為近來最少使用的高速緩存位置,以響應于讀
取該高速緩存位置。在此種方式中,數據保持為可訪問的,但會于下 一次信息需要儲存在該高速緩存巻標位置時遭受被覆寫。
圖5例示本發(fā)明之又另一實施例。于步驟321,從犧牲高速緩存提 供對信息的第一讀取請求給犧牲高速緩存,其中該信息系將要提供給 上級高速緩存。舉例來說,作為部分的犧牲高速緩存系統(tǒng),對數據的 主要請求系作給上級高速緩存,并其次提供給犧牲高速緩存。請注意, 此第二請求可由視為上級高速緩存本身的部分的內存控制或由視為與 上級高速緩存分離的內存控制而達成。請參考圖l, Ll高速緩存120 或未圖標的內存控制器可對L2高速緩存130提供讀取要求。
于步驟322,于第一高速緩存接收來自該犧牲高速緩存之該第一信 息。舉例來說,參考圖l, L2高速緩存130(例如,犧牲高速緩存)將提 供數據給Ll高速緩存120(—旦選定了)。
于步驟323中,在犧牲高速緩存儲存指針以促進在犧牲高速緩存 覆寫該第一信息。應該了解的是, 一旦已發(fā)生從L2犧牲高速緩存130 之信息的讀取,則強烈推定該剛被讀取的數據存在于Ll高速緩存120 內,該L1高速緩存120曾請求該信息。因此可應用指針,例如近來最 少使用的指針,到先前儲存該第一信息的位置以促進后續(xù)該數據的覆 寫。
于步驟324,對同樣的信息之第二讀取請求提供至L2高速緩存。 如步驟325所示,在該第一信息已由該犧牲高速緩存覆寫之前,響應 于接收到此請求,可于第一高速緩存接收從該犧牲高速緩存來之信息。 一旦犧牲高速緩存位置被讀取,其數據不會無效化,此代表超越先前 方法的一種改良。
圖6以方塊圖的形式例示根據本發(fā)明的方法。于步驟326,第一讀 取請求發(fā)生在第一時間,該第一讀取請求系由上級高速緩存在第一時 間促進至犧牲高速緩存。應該了解的是,上級高速緩存促進對該犧牲 高速緩存的讀取請求,其乃根據該請求的數據是否存在于上級高速緩 存中而預測該犧牲高速緩存讀取的實際完成。于步驟327,由上級高速 緩存促進在第二時間發(fā)生第二讀取請求,而這也在介于第一讀取的時 間與沒有發(fā)生有效指針修改的第二讀取的時間之間的期間。更具體而 言,第一讀取所讀取的數據不會通過插進寫入(intervening write)至
該巻標/無效(TAG/INVALID)寄存器而無效化。
圖7以流程圖形式例示根據本發(fā)明具體實施例的方法。執(zhí)行步驟 328以響應被寫入至該犧牲高速緩存之高速緩存位置的數據,因此該高 速緩存位置系識別為近來最多使用的高速緩存位置。執(zhí)行步驟329以 響應從該犧牲高速緩存之高速緩存位置所讀取的數據,因此該高速緩 存位置系識別為近來最少使用的高速緩存位置。
在先前詳細的說明中,參考形成此部分的附圖,且通過可實行于 本發(fā)明之圖標具體實施例顯示于其中。這些實施例與其某些變化已經 以充分的細節(jié)說明,以使在此技術領域熟悉該項技藝者能夠實行本發(fā) 明。舉例來說,應該了解雖然不同的地址連接系例示連接裝置110至 裝置120以及裝置120至裝置130,而共同組之地址連接可由三個裝置 分享。應該了解可運用其它適當的實施例。除此之外,還應了解,示 于圖中的功能部分可以一些方式更進一步結合或分割而不脫離本發(fā)明 的精神或范疇。舉例來說,犧牲高速緩存130的控制部分可與Ll高速 緩存120以及與內存陣列135分離的請求裝置在共同的基材上形成。 在此種實施例中,與各高速緩存線相關聯的有效位可儲存作為控制部 位的部分或作為內存陣列135的部分。此外,應該了解的是,儲存在
所描述高速緩存區(qū)域內的數據可以是指令類型的數據或數據類型的數 據(亦即非指令的數據)。因此,前面詳細的說明不是要對本文所提出 的特定形式做出限制,而相反地,其是為了涵蓋各種的替代、修改或 等同實施,而可合理地涵蓋于附加的權利要求書的精神與范疇內。
權利要求
1.一種方法,包含以下步驟識別高速緩存位置為近來最多使用的高速緩存位置以響應被寫入至該高速緩存位置的數據(328);以及識別該高速緩存位置為近來最少使用的高速緩存位置以響應從該高速緩存位置讀取的數據(324)。
2. 如權利要求l所述的方法,其中,該第一高速緩存是犧牲高速 緩存(130)。
3. —種方法,包含以下步驟決定請求的第一信息儲存在第一高速緩存位置,該第一高速緩存位置與于第一高速緩存(311)的第一高速緩存行中的第一路向相關聯;促進從該第一高速緩存位置(312)的該請求的信息的獲得;以及 識別該第一高速緩存位置為近來最少使用的位置以響應促進該請 求的第一信息(313)的獲得。
4. 如權利要求3所述的方法,其中,該第一高速緩存是犧牲高速 緩存(130)。
5. 如權利要求4所述的方法,其中,該第一高速緩存是第二級犧 牲高速緩存(130)。
6. 如權利要求3所述的方法,還包含以下步驟 決定該請求的第一信息在第二高速緩存(321)是無法取得的。
7. 如權利要求6所述的方法,其中,決定該請求的信息是無法取 得的還包含在促進該請求的第一信息的獲得之前,決定該請求是無法 取得的。
8. 如權利要求7所述的方法,還包含以下步驟 從中央處理單元(110)接收該請求的第一信息的請求。
9. 一種系統(tǒng),包括數據處理器,包含總線端口以訪問高速緩存數據(110);第一高速緩存,包含耦合于該數據處理器的該總線端口的第一總 線端口、以及第二總線端口 (120);以及第二高速緩存,包含耦合于該數據處理器(130)的該第二總線端 口的總線端口,其中該第二高速緩存經由該第二高速緩存以提供數據 至數據處理器,該第二高速緩存包含近來最多使用的控制模塊(166),以識別近來最多已讀取的高速 緩存位置為近來最少使用的高速緩存位置。
10.如權利要求9所述的系統(tǒng),其中,該近來最多使用的控制模塊進一步用以識別近來最多己寫入的高速緩存位置為近來最多使用的高 速緩存位置。
全文摘要
本發(fā)明揭露一種具有上級(upper-level)高速緩存與以犧牲模式運作的下級(lower-level)高速緩存的系統(tǒng),該犧牲高速緩存包含近來最多使用的控制模塊以識別近來最多已讀取的高速緩存位置為近來最少使用的高速緩存位置。
文檔編號G06F12/12GK101116063SQ200680004223
公開日2008年1月30日 申請日期2006年1月17日 優(yōu)先權日2005年2月7日
發(fā)明者A·S·瓦塔康迪, W·S·布里格斯 申請人:先進微裝置公司