TWI243991B - Methods and apparatus for controlling hierarchical cache memory - Google Patents

Methods and apparatus for controlling hierarchical cache memory Download PDF

Info

Publication number
TWI243991B
TWI243991B TW092112337A TW92112337A TWI243991B TW I243991 B TWI243991 B TW I243991B TW 092112337 A TW092112337 A TW 092112337A TW 92112337 A TW92112337 A TW 92112337A TW I243991 B TWI243991 B TW I243991B
Authority
TW
Taiwan
Prior art keywords
cache
memory
line
level
cache memory
Prior art date
Application number
TW092112337A
Other languages
English (en)
Other versions
TW200404208A (en
Inventor
Hidetaka Magoshi
Original Assignee
Sony Computer Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Publication of TW200404208A publication Critical patent/TW200404208A/zh
Application granted granted Critical
Publication of TWI243991B publication Critical patent/TWI243991B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

1243991 玖、發明說明: 【發明所屬之技術領域】 本發明涉及控制分層快取記憶體的方法和裝置,更特言 之係涉及控制技術,當儲存至較下層快取記憶體快取 線内的資料,可能會複寫掉已儲存在較高層快取記憶體快 取線㈣資料B争,這類資料鍺存的動作會受到禁止。 【先前技術】 近幾年來,由於科技進步,電腦應用變得越來越複雜, 並且對於微處理系統的需求逐漸增加,人們永遠在期待電 腦能有更快的資料處理能力。傳統微處理系統(使用一個微 處理器和相關的記憶體)具有十分快的週期時間(也就是 說,微處理器能夠操控資料的時間單元),例如像十億分之 一秒。但是,存取儲存在記憶體中資料所需的時間,可能 遠遠超過微處理器的週期時間。例如,從主要記憶體(利用 動態隨機存取記憶體(DRAM)技術所建置)取得一位元組資 料所需的存取時間大約是6〇個十億分之一秒。 為了要改善由存耳又時間相當長的動態隨機存取記憶體所 k成的瓶4 ’本行業的專家已開始利用快取記憶體。快取 記憶體可增加主要的記憶體m㈣處理能力。主要 記憶體’時常利用相當便宜但速度慢的動態隨機存取記憶 體記憶體技術來建置,而快取記憶體,通常利用較昂貴但 速度快的靜㈣機存取記憶體(SRAM)技術來建置^雖然快 取記憶體利用高成本技術來建置,但它通常比主要記憶體 的大小小很多。 84873 1243991 由於快取記憶體的大小相當小,因此利用傳統運算法則 决疋,在微處理系統操作期間的不同時間内,什麼樣的資 料應孩儲存在快取記憶體中。這些傳統運算法則可以利用 參考位置」的理論觀念為基礎,該觀念微處理器在 特疋時間點時使用可執行程式時,僅使用相當小部份程式 勺事μ因此,根據參考位置的觀念,在任何特定時間點 時’只有一小部份的可執行程式儲存在快取記憶體中。這 上或其他的運算法則也可用來控制快取記憶體中資料(可 供執行程式使用的)的儲存和擷取。 用於利用參考位置、或用於控制可執行程式及/或快取記 隐體資料儲存的任何其他觀念的已知運算法則的特異性太 多,無法在本說明中詳述。但是,一言以蔽之,就是任何 已知的運算法則可能不會適用所有應用,因為不同應用的 資料處理目標差異很大。 在用於控制快取記憶體的傳統運算法則中,微處理器提 供'貝料存取要求給快取記憶體。當要求的資料儲存在快取 圮憶體的時候,一快取命中發生,且微處理器會相當快速 地接收資料。當資料存取所要求的資料無法由存取快取記 憶體得到滿足的時候,也就是說,當快取未命中發生的時 候’會希望執行資料再填入序列,其中資料從主要記憶體 被取得並且儲存在快取記憶體中。 快取記憶體可以位在微處理器的「晶片上」,這稱為第一 層(L1)快取記憶體,或它可以與微處理器分開或位於晶片 外’這稱為第二層(L2)快取記憶體。L1快取記憶體通常具 84873 1243991 有的存取時間遠較L2快取記憶體快。也可形成組合的L1、 L2快取?己憶體系統,其中晶片上快取記憶體和晶片外快取 1己憶體兩者都加以利用,有時這被稱為分層快取記憶體。 在這個結構中,當微處理器作要求存取資料的時候,會先 存取L1快取記憶體來滿足該要求,如果它不能被滿足,則 會存取L2快取|己憶體。如果L2快取記憶體未命中發生,那 麼會存取主要的記憶體,而且再填入L1和L2快取記憶體。 為了要減低在L1快取記憶體和L2快取記憶體之間發生的 衝突,並改良存取效率,L2快取記憶體可以是一 N路徑集 結合的記憶體,具有較L1快取記憶體更多的路徑集。根據 傳統技術,當L2快取記憶體再填入(也就是說,在L2快取記 憶體未命中發生之後)的時候,必須&L2快取記憶體N個快 取線之中選取一快取線,以接收該再填入的資料。如果一 或多個N快取線包含無效的資料,那麼再填入資料會儲存在 那些中的一個快取線。但是,如果所有1^快取線都包含有效 的資料,會使用隨機選擇技術,然後,會使用廣為二知的 使用「最近租用」(LRU)運算法則,或任何其他的運算法則, 來選取一快取線接收再填入資料。無論如何,如果有效資 料在L2快取記憶體的一快取線中受到複寫,而且這類^二 資料的副本也包含在L1快取記憶體的_俠 ° ' bt取線中,那麼, L1快取記憶體的該快取線必須變為盔#, 欢以確保在L1快取 記憶體和L2快取記憶體之間的一致性。 的資料無效,例如 不’會造成微處理 不幸地,要使在較高層快取記憶體中 像L1快取記憶體,依傳統控制技術所指 84873 1243991 系、’、、正的處理能力下降。的確,如果要使例如^ 1快取記 U心中的Λ料進行不必要的無效動作,將無法使該記憶體 最佳化這可能會造成快取指令或快速存取一迴圈主體内 貝料又知不必要地無效,如同當存取一非常大的資料陣列 時經常發生的問題一樣。 、 在本技術中需要有新的方法和裝置,用來控制快 取记隐把’涿記憶體可包括一 L1快取記憶體、一 l2快取記 憶體及/或其他較低層的快取記憶體,以便改良記憶體效 率、增加處理能力並改良系統執行資料處理的整體品質。 【發明内容】 根據本發明的一或多個觀點,一裝置包括一第一層快取 圮憶體,茲1己憶體包括複數個快取線,每個快取線可用來 儲存-位址標記和資料;以及―下—低層快取記憶體包括 複數個快取線,每個快取線可用來儲存包括—l旗標的每 個决取、、泉的位址標記、狀態旗標和資料,指示第一層快 取記憶體的任何快取線,是否包含儲存在下—低層快取記 憶體的該快取線中資料的副本。 較好是,每個快取線的L-旗標是一單一位元,#上述問 題為真時,該位^會指示第-層快取記憶體的對應快取 線,包含儲存在下-低層快取記憶體的快取線中資料的副 本,而當上述問題為偽時,該位元會指示沒有第一層快取 記憶體的快取線,包含儲存在下一低層快取記憶體快取線 中資料的副本。例如,^真時的匕旗標位元的層級,可以 而為偽時的L-旗標位元 疋一個途輯南和一個邏輯低層級 84873 -9- 1243991 的層級,可以是另一個邏輯高和邏輯低層級。 較好是,第-層快取記憶體是L1快取記憶體,而且下— 低層快取《己憶體是L 2快取記憶體。 該裝置可進-步包括—處理器可用來設定下_低層快取 記憶體的給定快取線的^旗標,以指示第一層快取記憶體 快取線的—對應線,是否已儲存在下-低層快取記憶體的 給定快取線内資料的副本再填入。 該處理器可替代地(或另物來#給定絲線的旗標 指4-層快取記憶體快取線的一對應線包含儲存在下一 低層快取記憶體的給定快取線内資料的副本時,禁止資料 複寫到下—低層快取記憶體的—給定快取線中。較好是, 處理益進__步可用來當給定快取線的狀態旗標的—有效旗 2指示儲存在給定絲料的任何資料都是無效時,准許 資料複寫至下-低層快取記憶體的—給定快取線之内。 又更進一步’處理器可用來當給定快取線的狀態旗標的 一有效旗標指示儲存在給定快取線中的資料是有效的,而 且給定快取線的L-位元指示第一層快取記憶體快取線的一 對應線不包含儲存在給定快取線中資料的副本時,准許資 料複窝至下一低層快取記憶體的一給定快取線内。 該第一層快取記憶體可以是一直接映射快取記憶體。該 下-低層快取記憶體可以是_N路徑集組合快取記憶體。 來儲存-位址標記和資料;—下—低抑路徑集組合為 —根據-或多個本發明的進—步觀點,—裝置包括:一第 1快取記憶體’包括複數個M1快取線,每個快取線可用 快 84873 1243991 取記憶體,每個N路徑集包括複數個M2快取線,每個快取 線可用來儲存一位址標記、狀態旗標和資料,而且M2大於 Μ1 ’以及其他屺憶體,與下一低層快取記憶體有關,包 括複數個Ml記憶體線,每個記憶體線包括個別的旗標, 用於下一低層快取記憶體的各N路徑集的多個快取線,每個 L-位το指示第一層快取記憶體的任何快取線,是否包含儲 存在下一低層快取記憶體的給定快取線中資料的副本。 較好,其他記憶體中每個記憶體線的L_旗標的數量,等 於M2/M1*N。每個L_旗標是一單一位元,當上述問題為真 時,孩位兀會指示第一層快取記憶體的一快取線,包含儲 存在下一低層快取記憶體的相關快取線中資料的副本,而 當上述問題為偽時,該位元會指示沒有第—層快取記憶體 的快取線,包含儲存在下—低層快取記憶體相關快取線中 資料的副本。為真時的L·旗標位元的層級,可以是一個邏 輯高個邏輯低層級’而為偽時的L·旗標位元的層級, 可以疋另一個邏輯鬲和邏輯低層級。 η广裝?父好包括一可設定其他記憶體個別l_旗標的處理 器’以指示第一層快取記憶體的對應快取線,{否已儲存 在I-低層快取記憶體快取線巾的資料再填人。較好,處 心另可用來實質上同時㈣其他記憶體的給定 的L-旗標。 $ 該處理器可替代地(或另物來當給定快取線的旗伊 指層快取記憶體快取線的—對賴包含儲存在下_ 低層快取記憶體的給定快取線内資料的副本時,林止資料 84873 -11 - 1243991 複寫到下-低層快取記憶體的給定快取線中。較好是,處 理器進—步可用來當給定快取線的狀態旗標的-有效旗標 指示儲存在給定快取線中的任何資料都是無效時,准許資 料複寫至下-低層快取記憶體的給定快取線之内。又更進 一步,處理器較好可用來當給定快取線的狀態旗標的一有 效旗標指示射在給定快取線巾的資料是有效的,而且給 定快取線的L·旗標指示第—層快取記憶體快取線的一對應 線不包含儲存在給定快取線中資料的副本時,准許資料複 寫至下一低層快取記憶體的給定快取線内。 根據一或多個本發明的進一步觀點,一裝置包括·· 一第 -層N路徑集組合為一快取記憶體,第一層快取記憶體的每 個N路徑集包括複數個M1快取線,每個快取線可用來儲存 一位址標記和資料;一下一低層N路徑集組合為一快取記憶 體,下一低層快取記憶體的每個N路徑集包括複數個撾2快 取線,每個快取線可用來儲存一位址標記、狀態旗標和資 料,而且M2大於Ml ;以及一其他記憶體,與下一低層快取 記憶體有關,而且包括複數個M1記憶體線,其中:其他記 憶體的每個記憶體線包括個別群組的位元,與第一層快取 記憶體的每個N路徑集有關,以致其他記憶體的個別群組的 位元,與第一層快取記憶體的個別一快取線有關,各群組 的位元包括一索引偏移位元、一路徑集位元和一 L-旗根, 違索引偏移位元與一索引結合,提供一指標,指向下一低 層快取記憶體的N路徑集的一快取線,該路徑集位元提供一 指標,指向下一低層快取記憶體的N路徑集其中之_, 84873 -12- 1243991 該L-旗標指示第一層快取記憶體的相關快取線,是否包含 由索引偏移位元、索引和路徑集位元所指向的、儲存在下 一低層快取記憶體的快取線中資料的副本。 根據本發明的一或多個另一觀點,一方法包括控制一第 一層快取記憶體,該記憶體包括複數個快取線,每個快取 線可用來儲存一位址標記和資料;控制一下一低層快取記 憶體’包括複數個快取線,每個快取線可用來儲存包括一 旗標的每個快取線的一位址標記、狀態旗標和資料;以 及設定下一低層快取記憶體的給定快取線的L-旗標,以指 示第一層快取記憶體快取線的一對應線,是否已儲存在下 一低層快取記憶體的給定快取線内資料的副本再填入。 該方法較好另包括:當給定快取線的^旗標指示第一層 陡取记憶體快取線的一對應線包含儲存在下一低層快取記 憶體的給定快取線内資料的副本時,禁止資料複寫到下一 :層快取記憶體的給定快取線中。該方法也可包括:當給 疋决取線的狀態旗標的一有效旗標指示儲存在給定快取線 中的任何貝料都是無效時,准許資料複窝至下一低層快取 ^憶體的給定快取線之内。又更進—步,該方法可包括: κ快取線的狀態旗標的_有效旗標指示儲存在給定快 泉中的貝料疋有效的,而且給定快取線的位元指示第 一層快取記憶體快取線的_對應線不包含儲存在給定快取 線中資料的副本時,隹許資料 T准干貝科设寫至下一低層快取記憶體 的給定快取線内。 一方法包括控制一第 根據本發明的一或多個另一觀點 84873 -13- 1243991 一層快取記憶體,該記憶體包括複數個Ml快取線,每個快 取線可用來儲存一位址標記和資料;控制一下一低層n路徑 集組合為一快取記憶體,每個N路徑集包括複數個M2快取 線,每個快取線可用來儲存一位址標記、狀態旗標和資料, 而且M2大於M1;控制一其他記憶體,與下一低層快取記憶 體有關,並包括複數個訄丨記憶體線,每個記憶體線包括個 別的L-旗標,用於下一低層快取記憶體的各N向設定的多個 快取線;以及設定其他記憶體的個別L_旗標,以指示第一 層快取記憶體的對應快取線,是否已儲存在下一低層快取 兄憶體快取線中的資料再填入。 根據一或多個本發明的進一步觀點,一方法包括控制一 第一層N路徑集組合為一快取記憶體,第一層快取記憶體的 每個N路徑集包括複數個M丨快取線,每個快取線可用來儲 存一位址標記和資料;控制一下一低層Ν路徑集組合為一快 取記憶體,下一低層快取記憶體的每個Ν路徑集包括複數個 M2快取線,畢個快取線可用來儲存一位址標記、狀態旗標 和資料,而且M2大於Ml ;控制一其他記憶體,與下一低層 快取記憶體有關,並包括複數個M1記憶體線,其中⑴其他 記憶體的每個記憶體線包括個別群組的位元,與第一層快 取屺憶體的各N路徑集有關,以致其他記憶體的各群組的位 元與第一層快取記憶體的一個別快取線有關,(ii)各群組的 位元包括一索引偏移位元、路徑集位元和L_旗標,(iii)該索 ?丨偏移位元與一索引結合,提供一指標,指向下一低層快 取记憶體的各N路徑集的一快取線,以及(iv)該路徑集位元 84873 -14· 1243991 一一 4匕 j香, μ 717 9向下一低層快取記憶體的N路徑集其中之 ―’以及設定其他記憶體的個別L-旗標,以指示第一層快 取記憶體的對應快取線,是否已再填人由索引偏移位I、 索引和路;^集k兀所指向的、儲存在下—低層快取記憶體 快取線中的資料。 〜& 根據4夕個本發明的進一步觀點,本文件中後續描述 的L制快取㊆憶體之方法和裝置,可利用適當的硬體達 成例如像附圖中所顯示的硬體。這類硬體可利用已知的 技術建置’例如標準數位電路、類比電路、任何可用來執 行軟體及/或韌體程式的已知處理器、一或多個可程式的數 4、裝置或系統,例如像可程式的唯讀記憶體、可程 式的陣列邏輯裝置(PAL)、任何上述的組合等。 此處說明本發明時,將與附圖結合,因此其他觀點、特 性、優點等’對本行業的專家將變得顯而易見。 【實施方式】 關於附圖其中類似的數字指示類似的元件,在圖1中有 •、’、示彳塊圖’說明本發明的一或多個觀點。為了簡化和 β疋起見此處將參考和描述圖1的方塊圖當做說明裝置 100’但是,應瞭解到該說明可以很容易地以同等方式套用 到一或多個方法的各種不同觀點。 裝置100較好表示一微處理器系统,包括—微處理器 1〇卜第一層快取記憶體102、較下方層快取記憶體1〇3和其 他記憶體U)4。可利用任何—種目前已存在或未來發展出來 的已知微處理器裝置,來建置微處理器101。 84873 -15 - 1243991 第一層快取記憶體102較好是L1快取記憶體,也就是說, 和微處理器101同樣位於晶片上。但是,應注意到,雖然較 佳該第一層快取記憶體102與微處理器101同樣位於晶片 上,但第一層快取記憶體1 〇2不是必須要建置在晶片上。的 確,第一層快取記憶體102可位在與微處理器1 〇丨不同的晶 片外。 較好’弟一層快取記憶體1 〇 2包括指令快取記憶體1 〇 2 a 和一個別資料快取記憶體102B,各包含複數個快取線。每 個快取線包括一位址標記、狀態旗標和資料。較好利用個 別指令和資料快取,才能避免存取衝突。在本範例中,可 以大小64 K位元組的直接映射結構,來建置每個指令和資 料快取記憶體102A、102B。但是,應注意到,指令快取記 憶體102A和資料快取記憶體1〇2B可以是任何大小。也應注 意到,第一層快取記憶體102可另一方面包含具有指令和資 料的單一、直接的映射快取記憶體。 才曰々和:貝料快取圮憶體1 〇2A、102B的快取線,藉由微處 理器101發出的有效位址來定址,其中每個有效位址都包括 榇记仫元和索引位元。索引位元提供一指標給第一層快取 記憶體102的指令快取記憶體1〇2八及/或資料快取記憶體 1〇2Β的特定快取線。與上述範例64 κ位元組快取記憶體大 J致的h況下,索引位元的範圍可以從0x0000至 OxFFFF(—些最低有效位元用來當作偏移使用),以指向任 何個可用的快取線。如範例所說明’起源錄處理器ι〇ι 止索引位元的指標(或索引)丨1〇,顯示為,指 84873 -16- 1243991 向包含inst-A的指令快取記憶體ι〇2Α的快取線,以及指向 包含data-A的資料快取記憶體i02B的快取線。 較下方層快取記憶體103,在這一個具體實施例中是□ 快取記憶體,較好是N路徑集結合記憶體,其中N==4。因 此,較下方層快取記憶體103包括第一路徑集1〇5、第二路 徑集106、第三路徑集1〇7和第四路徑集1〇8。較下方層快取 记憶體103的各路徑集較好包括:複數個快取線,每個快取 線可用來儲存一位址標記、狀態旗標和資料(可包括指令)。 在本發明的這個說明具體實施例中,較下方層快取記憶體 103較好大小是256 K位元組,其中各路徑集的大小是64 κ 位70組。因此,第一層快取記憶體1〇2的指令和資料快取記 憶體102Α、102Β的各快取線,對應到來自較下方層快取記 憶體1〇3的四個路徑集105、1〇6、1〇7、1〇8每一個的個別快 取線。與以上範例一致的情況下,指標u〇(具有〇xAff〇的 索引值)指向較下方層快取記憶體1〇3的四個快取線,快取 線來自每一路徑集105、1〇6、1〇7和1〇8的快取線。 較下方層快取記憶體103的各快取線的狀態旗標,較好包 旗標112,指示是否第一層快取記憶體1〇2的任何快= 線包含儲存在下一低層快取記憶體1〇3給定快取線中資料 的副本。應注意到,各L_旗標可包含有_或多個位元,其 中一早-位it是最佳的。雖然根據本發明可使用任何广 例:在亡範例,,當L-旗標(或位元”12為「真」時,“ 好指示第一層快取記憶體1〇2的對應快取線包含儲存在^ 下方層快取記憶體1G3的給定快取線的資料副本的情況。^ 84873 -17- 1243991 反地’當L-旗標112是「偽」時,它較好指示沒有第一層快 取A fe、體102的快取線包含儲存在較下方層快取記憶體1 〇3 的給定快取線的資料副本的情況。當旗標丨12是一單一位 元的時候’邏輯高層級和邏輯低層級較好表示真的狀態, 同時另一個邏輯高層級和邏輯低層級表示偽的狀態。 舉例來說,路徑集1〇5(以OxAFFO編索引)的快取線i〇9A 包含在邏輯低層級(偽)層的L_位元U2A,指示快取線的資 料’ data-C,未包含在以〇xAFFO編索引的資料快取記憶體 102B的快取線中。較下方層快取記憶體丨〇3的快取線丨〇9B 包含在邏輯高層級(真)狀態的L-位元112B,指示快取線的 資料,data-A,包含在以〇xAFFO編索引的第一層快取記憶 體102的資料快取記憶體102B的快取線中。較下方層快取記 憶體103的快取線i〇9C包括在邏輯低層級(偽)狀態的L_位 元112C ’指示快取線的資料,data-B,未包含在以OxAFFO 編索引的資料快取記憶體102B的快取線中。以及快取線 109D包含在學輯高層級(真)狀態的L-位元n2D,指示快取 線的資料,inst-A,包含在以OxAFFO編索引的指令快取記 憶體102A的快取線中。 其他記憶體104可以是下一低層快取記憶體或主要記憶 體。的確,本發明仔細思考在微處理器1〇1和主要記憶體之 間任何數量的分層快取記憶體。 裝置100的結構和操作,另參考圖2將較容易瞭解,該圖 是一流程圖,說明裝置1〇〇所執行的或與該裝置有關的某些 動作。為了方便討論,先假設第一層快取記憶體1 〇2是l 1 84873 -18- 1243991 快取記憶體,較下太爲丨 層快取記憶體103是L2快取記憶體,而 且其他記憶體104是主要記憶體。 、根據圖1和2說明的方法和裝置的—或多個觀點,個別^ 旗tl 12的狀悲χ到控制當做儲存在第—層快取記憶體 =料(或指令)的—個功能° L•旗標112用丨決定是否准許 或‘止在較下万層快取記憶體iG3的快取線中儲存資料或 才旨令。夢特士 > ,ΠΓ 口 下一低層快取記憶體103的給定快取線的 旗枯112,較佳设定為真或偽,以指示第一層快取記憶體 102 :取線的—對應線’是否已再填人儲存在下—低層快取 記憶體10 3的給定快取線内資料的副本。 轉向圖2。將更詳細地說明這個一般控制流程。在動作 150 ’決定L1快取命中或未命中是否已經發生。當快取命中 發生的時候,流程前進到動作151,其中所要求的資料從第 層快取記憶體102擷取,並且提供給微處理器丨〇 i。當決 定發生快取未命中的時候,流程前進到動作丨52。在本範例 中,假設微處理器101對第一層快取記憶體1〇2(1^快取記憶 體)發出一存取要求,從以0xAFF0編索引的資料快取記憶體 102B的快取線中,要求data-C。當快取線的狀態旗標(例如, 一有效旗標或位元)顯示包含在其中的資料是無效的時 候’或當快取線的位址標記與有效的位址標記位元不匹配 的時候(如果包含在快取線的資料不是data-C時),將發生快 取未命中的情況。 在動作152,以OxAFFO編索引的較下方層快取記憶體1〇3 的快取線109A、109B、109C和109D受到存取,以決定⑴ 84873 -19- 1243991 是否有任何一個相關的位址標記與有效的位址標記位元匹 配;以及(ii)是否任何包含與標記位元匹配的位址標記的快 取線的有效旗標,指示這類資料是有效的。如果不符合其 中任何一個狀況,那麼L2快取記憶體1〇3不能夠滿足存取要 求,而且將發生L2快取未命中(動作154)。由於快取線ι〇9Α 包含有效的資料,也就是data-C,所以L1快取記憶體(和微 處理器101)要求的資料造成L2快取記憶體命中,這導致流 程從動作154前進到動作156。 在動作156,L1快取記憶體102的資料快取記憶體ι〇2Β的 快取線,以包含在L2快取記憶體103的快取線109A中的資 料再填入。更特言之,包含data-A、以OxAFFO編索引的資 料快取冗憶體102B的快取線,以包含在L2快取記憶體1 〇3 的快取線109A中的再填入資料data-C複寫掉。然後流程前 進到動作158,其中L2快取記憶體1〇3的快取線ι〇9Α的L-位 元112A設定為真。這表示資料快取記憶體丨〇2b的對應快取 、、泉包含快取終1 〇 9 A的資料副本。另一方面,快取線1 〇 9 b的 L-位元112B設定為偽,這表示包含在資料快取記憶體ι〇2Β 的對應快取線的資料不再包含被包含在快取線1 〇9b的資料 (也就是說,data-A)的副本。 在上述範例中,微處理器101的存取要求未命中L1快取記 憶體102 ’ L1快取冗憶體102所產生的存取要求命中L2快取 6己憶體103。現在所要討論的案例是,微處理器1 〇 1的存取 要求未命中L1快取記憶體102,而且L1快取記憶體ι〇2的存 取要求命中L2快取記憶體103。更特言之,假設微處理器1〇1 84873 -20- 1243991 提供一存取要求給L1快取記憶體102,用於在0xAfF0編索 引data-D。在動作15〇,一 L1快取記憶體未命中發生且流程 前進到動作152。在動作152,以OxAFFO編索引的快取線 109A-D受到存取且流程前進到動作154。在動作154,因為 /又有任何以OxAFFO編索引的快取線l〇9A_D包含資料_d,所 以發生L2快取記憶體未命中。然後流程前進到動作16〇。所 需要的資料,data-D,從下一低層快取記憶體或主要記憶 骨豆中取彳于。這個範例的做法,假設其他記憶體104是主要記 憶體’因此,所需要的資料從主要記憶體中取得。然後流 程前進到動作162,其中資料再填入序列開始。 在时淪動作162的細節之前,應注意到,根據本發明的一 或多個觀點,希望能夠准許資料複寫至進包含無效資料的 L2快取兒憶體1 〇3的任何快取線之内(也就是說,給定快取 線的有效旗標,指示儲存在給定快取線中的任何資料都是 無效的)。假設以特定指標11〇編索引的L2快取記憶體103的 所有快取線,例如像快取線1()9A-D,包含有效的資料,當 給定快取線的L-旗標指示L1快取記憶體1〇2快取線的對應 快取線包含儲存在L2快取記憶體103給定快取線的資料副 本時,較好禁止資料複寫至L2快取記憶體103的給定快取線 内。就這一點而言,其他細節在圖2的動作162-168中加以 說明。 在動作162,決定是否L2快取記憶體103 (以OxAFFO編索引) 的所有快取線,都包含有效的資料。如果L2快取記憶體1〇3 的一或多個快取線包含無效的資料,然後流程較好分枝到 84873 -21- 1243991 動作164,其中所需要的資料,data_D,複寫到這類快取線 的其中之一内。但是,在這個範例中,假設L2快取記憶體 103的每個快取線都包含有效的資料,因此,在動作162的 決定造成流程分枝到動作166。在動作166,所需要的資料, data-D,僅複寫到對應的L-旗標(或L-位元)112是偽的快取 線其中之一内。換句話說,當L-旗標112指示L1快取記憶體 102的對應快取線包含L2快取記憶體1〇3的這類快取線中的 資料副本時,會禁止複寫L2快取記憶體103的快取線。因 此’例如,所需要的資料,data-D,可複寫到快取線109A 或109C ’因為這些快取線的個別L_位元112A、me是偽。 假設L2快取記憶體1〇3的快取線1〇9C的資料受到複窝,L_ 位元112C會被設定為真(動作168),且data-D的副本又再填 入L1快取記憶體1 〇2資料快取記憶體102B的對應快取線之 内。 較佳的是,當L2快取記憶體103再填入的時候,不需要使 L1快取:¾憶體1 〇2的任何資料變為無效。因此,達成記憶體 效率的改良、處理能力的增加和資料處理品質的改氣。 現在請參見圖3,該圖為一方塊圖,說明本發明的進一步 觀點和具體實施例。再一次,為了簡化和清楚起見,此處 將參考和描述圖3的方塊圖當做說明裝置2〇〇,但是,鹿瞭 解到該說明可以很容易地以同等方式套用到一或多個方法 的各種不同觀點。裝置200較好表示一微處理器系統,包括 一微處理器裝置201、一第一層快取記憶體2〇2、一下一低 層快取記憶體203和其他記憶體104。 84873 -22- 1243991 第一層快取記憶體202較好包括指令快取記憶體2〇2A和 個別資料快取記憶體202B,但是,應瞭解到,本發明仔細 思考其他的實作,使用統一的指令和資料快取記憶體。無 論如何,每個指令快取記憶體202a和資料快取記憶體 202B,較好利用n路徑集組合快取記憶體實作方式建置, 其中N=2。因此,資料快取記憶體2〇2B包括一路徑集2〇4 和一路徑集2〇5,而且指令快取記憶體2〇2A包括一路徑集 206和一路徑集207。指令快取記憶體2〇2A和資料快取記憶 體202B的每個路徑集204-207,尺寸較好是8 κ位元組,且 每個相關的快取線較好可用來儲存一位址標記、狀態旗標 和資料(可包括指令)。因此,一給定的索引(或指標)2〇8可 具有在0x0000和0xlFFF(13個位元)之間的值,以便指示路 住集204、205、206和207的每個快取線。藉由圖式說明, 指標208具有值OxOFFO,並指向各路徑集204、205、206和 2 0 7的一快取線。 該下一低層快取記憶體203較好也是一 ^^路徑集組合快取 圮憶體,其中N=8。因此,下一低層快取記憶體2〇3包括路 徑集209、路径集210、路徑集211、路徑集212、路徑集213、 路徑集214、路徑集215和路徑集216。這些路徑集此處稱為
Set-0、Set-1、Set-2、Set-3、Set-4、Set-5、Set-6和 Set-7。 根據本發明的這個具體實施例,下一低層快取記憶體2〇3的 每個路徑集209-216,較好比第一層快取記憶體2〇2的每個 路徑集204-207要來得大。在本範例中,下一低層快取記憶 體203的每個路徑集209-216較好尺寸是32 K位元組。因 84873 -23- 1243991 此’下一低層快取記憶體203的每個路徑集209-216,較好 比第一層快取記憶體202的每個路徑集204-207要大四倍。 應}王意到’索引(或指標)208A需要15位元,範圍從οχοοοο 到0x7FFF ’以存取下一低層快取記憶體2〇3的各快取線。但 是,應記得,指標208只需要13位元,範圍從0x0000到 OxlFFF,以存取第一層快取記憶體2〇2的各快取線。在一實 際的系統中,這個明顯的差異運作如下。當快取未命中在 第一層快取1己憶體2〇2中發生的時候,有效的位址藉由位址 匯流排傳送至下一低層快取記憶體2〇3。該位址匯流排可包 括,例如,32位元[3 1 : 〇]。因此,如第一層快取記憶體2〇2 所送出的位址匯流排的位元[3丨:13],包含有效位址的標記 位元,且位址匯流排的位元[12 : 〇]包含有效位址的索引位 元。因此,有效位址從第一層快取記憶體2〇2傳遞到下一低 層快取記憶體203。 但是,下一低層快取記憶體203,將位址匯流排的位元 U 4 : 〇]視為包含八個相關快取線的指標2〇8A的索引位元。 因此,位址匯流排的位元[14 : 13],包含視為標記位元的第 一層快取記憶體202的一部份,供下一低層快取記憶體2〇3 使用,當做索引位元或指標208A的一部份。當位址匯流排 的位元[14 ·· 13]是00的時候,指標208A包含OxOFFO的索引, 並指向路徑集209-216較下方的八個快取線。當位址匯流排 的包元[14 ·· 13]是01的時候,指標208A包含0x0FF0+0x2000
的索3丨’並指向路徑集209-216較上方的八個快取線。同樣 地,當位址匯流排的位元[14 : 13]是1〇的時候,指標2〇8A 84873 -24- 1243991 包含0x0FF0 + 0x4000的索引,並指向路徑集2〇9_216下一個 較上方的八個快取線。最後,當位址匯流排的位元[ΐ4 ·· 13] 疋11的時候,指標208人包含〇乂〇1^〇+(^6〇〇〇的索引,並指 向路徑集209-216又一較上方的八個快取線。因此,位址匯 流排的位元[14: 13]可被認為是一索引偏移,在這個範例中 該偏移可以是0x0000、0χ2000、〇χ4〇〇〇和〇χ6〇〇〇之中的任 一個值。 下一低層快取記憶體203的各路徑集較好包括··複數個快 取線,每個快取線可用來儲存一位址標記、狀態旗標和資 料(可包括指令)。但是,不同於圖丨說明的本發明具體實施 例,圖3的裝置200較好不包括包含在下一低層快取記憶體 203的各快取線之内的L_旗標。這是由於,如果每個快取線 包括了一個L-旗標,將無法控制或變更使用不同索引偏移 所編索引的快取線的個別L-旗標中的值。的確,只有都具 有相同索引偏移的八個快取線,才能同時加以操縱。 根據本發明的這個具體實施例,裝置2〇〇較好包括一其他 記憶體203A,該記憶體可與下一低層快取記憶體2〇3整合在 一起或分開來。其他記憶體203A較好包括複數個記憶體 線,其中記憶體線的數量與包含在第一層快取記憶體2〇2的 給定路徑集的快取線的數量對應。因此,在圖3說明範例 中,其他1己憶體203 A較好包括8 κ位元組的記憶體線。其他 記憶體203A的各個記憶體線,較好包括用於下一低層快取 1己fe體203各路徑集209-216的多重快取線的個別L_旗標。 在這個範例中,每個記憶體線包括旗標,用於各路徑 84873 -25- 1243991 集209-216的四個快取線的每一個,總共有32個匕·旗標。一 般而έ,其他記憶體203A的每個記憶體線的l_旗標數量和 M2/MPN相等,其中N是在第—層快取記憶體加中路徑集 的數量,Ml是第一層快取記憶體2〇2的各路徑集中快取線 的數T,以及M2是下一低層快取記憶體2〇3的各路徑集中 快取線的數量。這樣,與給定索引有關的所有l_旗標,加 上來自第一層快取記憶體2〇2的任何索引偏移,都包含在其 他1己憶體203A的單一記憶體線内。因此,可同時控制或變 更所有這類L·旗標。 圖3裝置200的操作現在另藉由一範例加以描述。微處理 器201藉由例如,32位元位址匯流排,將有效的位址(或存 取要求)送至第一層快取記憶體2〇2。在這個範例中,假設 微處理器201要求data-C,但該資料未儲存在第一層快取記 憶體202或下一低層快取記憶體2〇3中。因此,該位址匯流 排的位元[3 1 : 13],包含對應到微處理器2〇丨所要求資料 (data-C)的標記位元。位址匯流排的位元[12 :…包含索引位 元’該位元可用來指向第一層快取記憶體202的路徑集 204-207的個別快取線。在這個範例中,索引位元是 OxOFFO,因此,指標208存取指令快取記憶體202A的兩個 快取線(包含inst-A和inst-Β),以及資料快取記憶體202B的 兩個快取線(包含data-A和data-B)。由於所存取的資料快取 記憶體202B的兩個快取線,都不包含data-c,因此發生快 取未命中。 由於快取未命中,第一層快取記憶體202傳遞有效的位址 84873 -26- 1243991 至較下方層快取記憶體203,以致試圖滿足在該快取記憶體 中的資料存取要求。當第一層快取記憶體2〇2使用有效位址 索引的位址匯流排位元[12 : 0],下一低層快取記憶體2〇3 將位址匯流排的位元[14 : 〇]視為包含有效位址的索引位 元。在這個範例中,假設位址匯流排的位元[14 : Η]是〇1, 對應到0x2000的索引偏移。因此,指標2〇8A具有值〇x〇FF〇 + 0x2000 ’並指向來自較下方層快取記憶體2〇3路徑集 2 0 9 - 216的對應的八個快取線。 由於所存取的較下方層快取記憶體2〇3的八個快取線,都 不包含data-C,因此發生快取未命中。因此,較下方層快取 記憶體203對其他記憶體1〇4(可以是一或多個其他快取記 隐月豆及/或主要$己憶體)傳送有效位址。之後,傳回, 以再填入個別的快取記憶體202、203。 決定較下方層快取記憶體203的快取線(以〇x〇FFO+ 0x2000編索引)是否接受再填入資料,data_c。如果一或多 個較下方層’丨夬取記憶體203的這些快取線包含無效的資 料,那麼再填入資料較好複寫至這類快取線的其中之一。 但是,在這一個範例中,假設較下方層快取記憶體203的這 些快取線的每一個都包含有效的資料(也就是說,快取線的 個別有效的旗標指示所有的資料是有效的)。因此,較好決 定一或多個快取線是否包含未從第一層快取記憶體202快 取的資料,如果是這樣,再填入資料將儲存在那些快取線 的其中之一。 為達到該目的,因此存取以OxOFFO(沒有偏移)編索引的 84873 -27- 1243991 其他記憶體203A的記憶體線。這個記憶體線,如同具有所 有記憶體線的情況,包含32個L-旗標,在這個範例中該旗 標包括一苹一位元。一真的位元(邏輯高層級)指示較下方層 快取記憶體203的聯合快取線的資料也從第一層快取記憶 把202中陕取。一偽(邏輯低)層級指示較下方層快取記憶體 的本P &陡取線的資料不要從第一層快取記憶體202中快 取0 在這一個範例中,以〇x〇FF〇編索引的記憶體線的位元 [15 . 8],包含對應到以0x0FF0+0x2000編索引的較下方層 快取記憶體2G3的人個快取線的L•位元。所有這些L_位元都 疋偽,除了位元222(記憶體線的位元[13])以外,該位元 Λ *下方層丨夬取冗憶體203的快取線21 8對應。快取線218包 。貝料,inst-A,從第一層快取記憶體2〇2的指令快取記憶 體202A中快取。士、甘 . A .. ^ 尤其,inst-A儲存在以〇x〇FFO編索引的指 7快取记憶體202A的路徑集207的快取線中。 根據本發明’快取線218受到保護而且複寫再填入資料 (data C)土遠快取線之内是被禁止的,因為l-位元Μ〗是 真Q此’再填入資料,data-C,再填入以〇x〇FFO+〇x2000 索引的較下方層快取記憶體203的任何其他快取線之 内在本知例中’再填入資料可複寫至路徑集212的快取線 之内。可書官。$ At 馬此外,再填入資料,data-C,複寫至以OxOFFO 編索引的裳一IX. 弟一滑快取記憶體202的資料快取記憶體202B的 决取線<一内’例如像路徑集204的快取線。因此,先前儲 存在路從集204快取線内的資料,data-B,以再填入資料 84873 -28- 1243991 (1&{&-〇複寫。以(^(^卩0編索引的其他記憶體203人的位元[11] 設定為真,以指示較下方層快取記憶體2〇3路徑集212的對 應快取線的資料,係從第一層快取記憶體202中快取。由於 以OxOFFO編索引的資料快取記憶體2〇2B的路徑集2〇4的快 取線包含data-B,因此必須對其他記憶體203A的L-位元執 行進一步的修改。尤其,data-B的副本儲存在較下方層快取 記憶體203的路徑集209的快取線22 1。該快取線22 1以 0x0FF0+0x6000編索引,因此,必須要更新該快取線的對應 L_位元225。這個L-位元225位於以〇x〇FFO編索引的其他記 憶體203 A的記憶體線的位元[24]。尤其,l-位元225從真的 狀態(邏輯高層級)設定成偽狀態(邏輯低層級)。應注意到L_ 位元222和225同時受到修正。 較佳的是’當較下方層快取記憶體203再填入的時候,不 需要使第一層快取記憶體202的任何資料變為無效。因此, 達成$己憶體效率的改良、處理能力的增加和資料處理品質 的改良。 現在請參見圖4,該圖為一方塊圖,說明本發明的進一步 觀點和具體實施例。再一次,為了簡單和清楚起見,此處 將參見並描述圖4的方塊圖,當做在說明裝置3〇〇。但是, 應瞭解到圖4說明可以很容易地以同等方式套用到一或多 個方法的各種不同觀點。 裝置300較好表示一微處理器系統,包括一微處理器裝置 301、一第一層快取記憶體202、一下一層快取記憶體3〇3和 其他圮憶體104。該第一層快取記憶體2〇2較好實質上類似 84873 -29· 1243991 X上圖3所描述的第一層快取記憶體202。因此,第一層快 己L 202較佳包括指令快取記憶體2〇2a和一個別資料 决取#憶體202B,每個都是n路徑集組合快取記憶體實 /、 N = 2。第一層快取記憶體202的每個路徑集204- 2 0 7 尺寸較好是8 K位元組,且每個相關的快取線較好可 用來儲存一位址標1己、狀態旗標和資料(可包括指令)。因 此。亥心標2〇8具有在Οχοοοο和〇xifFF(13個位元)之間的 值,以便指示路徑集2〇4-2〇7的每個快取線。藉由圖式說 月才曰才心208具有值OxOFFO,並指向各路徑集204-207的一 快取線。 下低層快取記憶體303較好實質上類似在圖3中所討論 及說明的快取記憶體203,除了其他記憶體3〇3a以外(稍後 將在本說明中更詳細地討論)。因此,較下方層快取記憶體 303較好是1^路徑集組合快取記憶體,其中記憶體包括八個 路徑集209-216,此處也分別稱為Set-Ο至Set-7。此外,下一 低層快取記憶體303的每個路徑集209-216,較好尺寸是32 κ位元組,也就是說,每個路徑集2〇9-216,比第一層快取 記憶體202的每個路徑集204-207要大四倍。因此,指標2〇8a 需要15個位元,範圍從〇XO〇〇〇到〇x7FFF,以存取下一低層 快取記憶體3 0 3的每一個快取線。 如圖3裝置200的例子,圖4第一層快取記憶體2〇2的指標 208只需要範圍從0x0000到0xlFFF^丨3個位元,存取第一層 快取記憶體202的每個快取線。但是,較下方層快取記憶體 3〇3,利用有效位址的標記位元的最低兩個位元,連同由第 84873 -30- 1243991 一層快取記憶體202提供當做索引的13個位元,以取得十五 個索引位元。因此,較下方層快取記憶體3〇3的快取線的索 引,藉由利用由標記位元的其他兩個位元取得的索引偏 移,擴大來自第一層快取記憶體2〇2的丨3個索引位元所形 成。在這一個範例中,索引偏移可具有〇χ〇〇〇〇、〇χ2〇〇〇、 0x4000和〇χ6〇〇〇之中的一個值。 較下方層快取記憶體303的各路徑集較好包括:複數個快 取線,每個快取線可用來儲存一位址標記、狀態旗標和資 料(可包括指令)。如同圖3的快取記憶體2〇3,圖4的較下方 層快取記憶體303較好不包括被包含在每個相關快取線之 内的一 L-旗標。然而,其他記憶體3〇3a ,可與較下方層快 取记憶體303整合在一起或分開來,該記憶體包括這類L_ 旗標。 更特言之,其他記憶體3〇3A較好包括複數個記憶體線, 其中記憶體線的數量與包含在第一層快取記憶體2〇2的各 路徑集204-207的快取線的數量對應。因此,在圖4說明範 例中’其他記憶體303 A較好包括8 K位元組的記憶體線。其 他記憶體303 A的各個記憶體線,較好包括與第一層快取記 憶體202各路徑集204-207相關的個別群組位元。因此,其 他記憶體303 A的每個記憶體線的各群組位元,與第一層快 取記憶體202的快取線的一個別快取線有關。各群組位元較 好包括L -旗標350、偏移位元352和路徑集位元354。如本發 明先前具體實施例的例子,L-旗標350用來指示第一層快取 圮憶體202的相關快取線,是否包含儲存在較下方層快取記 84873 -31- 1243991 憶體303的給定快取線的資料副本。在本發明的這個具體實 施例中,藉由結合索引偏移位元352和該群組的路徑集位元 354的索引(由第一層快取記憶體2〇2提供),指向與一特定 L-旗標350相關的給定快取線。因此,與其他記憶體3〇3a 的給定群組位元有關的較下方層快取記憶體303的快取 線’係藉由使第一層快取記憶體202所提供的索引偏移某個 量以及選取對應到該路徑集位354的一特定路徑集209-216 來決定,其中該量對應到索引偏移位元352(提供指標至八 個快取線、各路徑集209-216的一快取線)。在這一個範例 中,索引偏移位元3 5 2可具有四個值之中的任何一個值,也 就是,00(對應到0x0000的索引偏移)、〇1(對應到〇χ2〇〇〇的 索引偏移)、10(對應到0x4000的索引偏移)和ιι(對應到 0x6000的索引偏移)。路徑集位元354可具有以下八個值的 其中之一,也就是〇〇〇(對應到Set-Ο)、001 (對應到Set_l)、 〇1〇(對應到Set-2)、011(對應到Set-3)、…和111(對應到 Set-7)。 因此,其他記憶體303 A的每個記憶體線包括用於較下方 層快取記憶體303的多重快取線的個別L-旗標350,也就是 說,對應到個別索引、索引偏移位元352和個別群組位元的 路徑集位元354的快取線。此外,其他記憶體303 A的每個記 憶體線的各群組位元,與第一層快取記憶體202的路徑集 204-207的一已知路徑集有關。假設已知第一層快取記憶體 202路徑集的數量、較下方層快取記憶體303路徑集的數量 和大小,以及每個L-旗標350的大小(也就是一位元),則其 84873 -32- 1243991 他圮憶體303八的每個記憶體線都包括24位元[23:〇]。 圖4裝置300的操作現在另藉由一範例加以描述。微處理 态3〇1藉由例如,32位元位址匯流排,將有效的位址(或存 取要求)送至第一層快取記憶體2〇2。在這個範例中,假設 微處理器301在〇XOFFO索引要求data-c。這個資料,data_c, 既不會儲存在第一層快取記憶體2〇2也不會儲存在較下方 層快取記憶體303。因此,該位址匯流排的位元[3 1 : i y, 包含對應到微處理器301所要求資料(data-C)的標記位元。 位址匯流排的位元[12 : 〇]包含索引位元,該位元可用來指 向第一層快取記憶體202的路徑集204-207的個別快取線。 在這個範例中,索引位元是OxOFFO,因此,指標208存取指 令快取記憶體202A的兩個快取線(包含inst-A和inst-B)及/ 或資料快取記憶體202B的兩個快取線(包含data-A和 data-B)。由於所存取的資料快取記憶體2〇2b的兩個快取 線’都不包含data-C,因此發生快取未命中。 由於快取未命中,第一層快取記憶體202傳遞有效的位址 至較下方層快取記憶體303,以致試圖滿足在該快取記憶體 中的資料存取要求。下一低層快取記憶體303利用位址匯流 排的位元[14 : 〇]包含有效位址的索引位元。在這個範例中, 假設位址匯流排的位元[14: 13]是01,對應到0x2000的索引 偏移。因此,指標208A具有值OxOFF0+0x2000,並指向來 自較下方層快取記憶體203路徑集209-216的對應的八個快 取線。 由於所存取的較低層快取記憶體303的八個快取線,都不 84873 -33- 1243991 包含data-C,因此發生快取未命中。因此,較下方層快取記 憶體303對其他記憶體1〇4(可以是一或多個其他快取記憶 β豆及/或主要彡己憶體)傳送有效位址。之後,傳回data-C,以 再填滿個別的快取記憶體202、303。 決定較下方層快取記憶體303的快取線(以〇x〇FFO+ 0x2000編索引)是否接受再填滿資料,data_c。如果一或多 個較下方層快取記憶體303的這些快取線包含無效的資 料,那麼再填滿資料較好複寫至這類快取線的其中之一。 但是,在這一個範例中,假設較下方層快取記憶體3〇3的這 些快取線,每一快取線都包含有效的資料。因此,較好決 足一或多個快取線是否包含未從第一層快取記憶體202快 取的資料’如果是這樣,再填滿資料將儲存在那些快取線 的其中之一。 為達到上述目標,因此存取以〇x〇FF〇(沒有偏移)編索引 的其他圮憶體203 A的記憶體線。這一個記憶體線,如同所 有的記憶體線,都包含四個L·旗標35〇A_D、單一位元的每 一個並對應到較下方層快取記憶體3〇3的四個快取線。一真 的位元(邏輯咼層級)指示較下方層快取記憶體3〇3的聯合快 取線的資料也從第一層快取記憶體2〇2中快取。一偽(邏輯 低)層級指示較下方層快取記憶體3〇3的相關快取線的資料 不要從第一層快取記憶體2〇2中快取。 在這一個範例中,只有索引偏移位元352D是01,對應到 0x2000的一偏移,當與由第一層快取記憶體2〇2提供的索引 以及路徑集位元354D(對應到Set-5)共用時,表示該群組位 84873 -34- 1243991 元與較下方層快取記憶體303的快取線321有關。該群組位 元的L-位元3 50D為真時,表示快取線321不應該以再填入資 料,data-C,複寫掉。另一方面,以0x0FF0+0x2000編索引 的較下方層快取記憶體303的其他快取線中的任何一個,例 如像快取線358,可用來再填入。 再填入資料,data-C,複寫至以OxOFFO編索引的第一層 快取記憶體202的資料快取記憶體202B的快取線之一内,例 如像路徑集204的快取線352。因此,先前儲存在快取線352 内的資料,data-B,以再填入資料data-C複寫。由於以OxOFFO 編索引的資料快取記憶體202B的路徑集204的快取線352, 不再包含data-B,因此必須對其他記憶體303 A的L-位元350 之一執行修改。尤其,data-B的副本儲存在較下方層快取記 憶體303的路徑集209的快取線324。該快取線324以 0x0FF0 + 0x6000編索引,因此,必須要更新快取線324的對 應L_位元350A。這個L-位元350A位於以OxOFFO編索引的其 他記憶體303A記憶體線的位元[5]上。的確,L-位元350A與 索引偏移位元352A和11和000的路徑集位元354A分別群組 在一起,也就是說,指向到較下方層快取記憶體303的快取 線324。為了要適當地更新與快取線358和324有關的L-位 元,與第一層快取記憶體202的路徑集104有關的索引偏移 位元352和路徑集位元354也要更新。尤其,索引偏移位元 352A從11變更為01,路徑集位元354A從000變更為011,藉 此使該群組位元與快取線358建立關連,而不是與較下方層 快取記憶體303的快取線324。 84873 -35- 1243991 較佳,是’當較下方層快取記憶體3〇3再填入的時候,不 需要使第-層快取記憶體2G2的任何資料變為無效。因此, 達成記憶體效率的改良、處理能力的增加和資料處理品質 的改良。 @ β雖然轉明在此處已針對特定具體實施例加以描述,但 疋應了解到每些具體實施例僅說明本發明的原則和應用。 因此應了解到,本說明具體實施例可作多方面的修改‘,並 可在不脫離附加申缚直-CJ ^ rst ^ * λλ U利Μ所定義的本發明精神和範圍 的6況下,設計出其他的配置。 【圖式簡單說明】 :::明本發明,以圖式顯示較佳範例,但應瞭解到本 發明不限於所顯示的配置及工具。 圖1是-方塊圖,顯示根據本發明的_或多個 2適用於控制分層快取記憶體的一或多個方法㈣置的 例圖:流程圖,說明根據本發明的-或多個具體實施 了執仃及/或建置的某種動作/功能; 圖3疋7塊圖,顯示根據本發明的一或多個另一且 控制分層快取記憶體的一或多個替代二和 策置的另一觀點;及 广是-方塊圖,顯示根據本發明的一或多個另— ^點通用於控制快取記憶體的一或多個方法和裝置的另 【圖式代表符號說明】 84873 -36- 1243991 100 裝置 101 微處理器 102 L1快取記憶體 102A 資料快取記憶體 102B 資料快取記憶體 103 L2快取記憶體 104 其他記憶體 105 路徑集 106 路徑集 107 路徑集 108 路徑集 109A 快取線 109B 快取線 109C 快取線 109D 快取線 110 4匕4® 孑曰% 112 L-旗標 112A L-位元 112B L-位元 112C L-位元 112D L-位元 150 動作 151 動作 152 動作 84873 -37- 1243991 154 動作 156 動作 158 動作 160 動作 162-168 動作 200 裝置 201 微處理器裝置 202 第一層快取記憶體 202A 指令快取記憶體 202B 資料快取記憶體 203 下一低層快取記憶 203A 其他記憶體 204 路徑集 205 路徑集 206 路徑集 207 路徑集 208 指標 208A 指標 209 路徑集 210 路徑集 211 路徑集 212 路徑集 213 路徑集 214 路徑集 84873 -38- 1243991 215 路徑集 216 路徑集 218 快取線 221 快取線 222 L-位元 225 L-位元 300 裝置 301 微處理器裝置 303 下一層快取記憶體 303A 其他記憶體 321 快取線 324 快取線 350A-D L-旗標 352A 索引偏移位元 352D 索引偏移位元 354 方向設定位元 354A 方向設定位元 354D 方向設定位元 358 快取線 39- 84873

Claims (1)

  1. ;^^2$^337號專利申請案 一專利範圍替換本(94年3月) 拾、申請專利範園: 1 · 一種方便分層控制之快取記憶體裝置,該裝置包含·· 一第一層快取記憶體,包括複數個快取線,每個快取 線可用來儲存一位址標記和資料;以及 一下一低層快取記憶體,包括複數個快取線,每個快 取線可用來儲存一位址標記、狀態旗標和資料,每個快 取線的狀態旗標包括一 旗標,其指示該第一層快取記 k、體的任何快取線,是否包含儲存在該下一低層快取記 憶體的該快取線中資料的一副本。 2·如申請專利範圍第1項之裝置,其中每個快取線的L_旗標 是一單一位元,當為真時,指示該第一層快取記憶體的 一對應快取線,包含儲存在該下一低層快取記憶體的快 取線中資料的一副本,而當為偽時,指示沒有該第一層 快取A fe、體的快取線’包含儲存在該下一低層快取記憶 體快取線中資料的一副本。 3 ·如申請專利範圍第2項之裝置,其中為真時的l-旗標位元 的層級,是一邏輯高和一邏輯低層級,而為偽時的L —旗 松位元的層級’是另一個邏輯高和邏輯低層級。 4·如申請專利範圍第1項之裝置,其中該第一層快取記憶體 是一 L1快取記憶體,而且該下一低層快取記憶體是一 L2 快取記憶體。 5 ·如申睛專利範圍第1項之裝置,進一步包括一處理器可用 來設定該下一低層快取記憶體的給定快取線的L_旗標, 以指示該第一層快取記憶體快取線的一對應線,是否已 再填入儲存在下一低層快取記憶體的該給定快取線内資 料的副本。 6’如申請專利範圍第1項之裝置,進一步包括一處理器可用 來當該給定快取線的L-旗標指示該第一層快取記憶體快 取線的一對應線包含儲存在該下一低層快取記憶體的該 給定快取線内資料的一副本時,禁止資料複寫到該下一 低層快取*己憶體的一給定快取線中。 7·如申請專利範圍第6項之裝置,其中該處理器進一步可用 來當该給定快取線的狀態旗標的一有效旗標指示儲存在 孩給足快取線中的任何資料都是無效時,准許資料複窝 至該下一低層快取記憶體的一給定快取線内。 8·如申請專利範圍第7項之裝置,其中該處理器進一步可用 來當該給定快取線的狀態旗標的一有效旗標指示儲存在 孩給足快取線中的資料是有效的,而且該給定快取線的 L_位το指不該第一層快取記憶體快取線的一對應線不包 含儲存在該給定快取線中資料的副本時,准許資料複窝 至該下一低層快取記憶體的一給定快取線内。 9·如申請專利範圍第丨項之裝置,其中該第一層快取記憶體 是一直接映射快取記憶體。 10·如申請專利範圍第丨項之裝置,其中該下一低層快取記憶 體是一N路徑集組合快取記憶體。 U· —種方便分層控制之快取記憶體裝置,該裝置包含: 第一層快取記憶體,包括複數個Ml快取線,每個快 取線可用來儲存一位址標記和資料; 84873-940304.doc -2 ·
    下一低層N路徑集組合之一快取記憶體,每個N路徑 集包括複數個M2快取線,每個快取線可用來儲存一位址 標記、狀態旗標和資料,而且M2大於Ml ;以及
    一其他記憶體,與該下一低層快取記憶體有關,並包 括複數個Ml記憶體線,每個記憶體線包括個別的l —旗 標,用於該下一低層快取記憶體的各N路徑集的多個快 取線,每個L-位元指示該第一層快取記憶體的任何快取 線,是否包含儲存在該下一低層快取記憶體的給定快取 線中資料的副本。 12.如申請專利範圍第11項之裝置,其中該其他記憶體每個 記憶體線中L-旗標的數量,等於M2/M1*N。 13·如申請專利範圍第11項之裝置,其中每個L-旗標是一單一 位元,當為真時,指示該第一層快取記憶體的一快取線, 包含儲存在該下一低層快取記憶體的相關快取線中資料 的一副本,而當為偽時,指示沒有該第一層快取記憶體
    的快取線,包含儲存在該下一低層快取記憶體相關快取 線中資料的一副本。 14.如申請專利範圍第13項之裝置,其中為真時的乙_旗標位 元的層級,是一邏輯高和一邏輯低層級,而為偽時的L-旗標位元的層級,是另一個邏輯高和邏輯低層級。 15.如申請專利範圍第丨丨項之裝置,其中該第一層快取記憶 體是一 L1快取記憶體,而且該下一低層快取記憶體是一 L2快取記憶體。 16·如申請專利範圍第11項之裝置,進一步包括一處理器可 84873-940304.doc 用來設定該其他記憶體的個別L-旗標,以指示該第一層 快取記憶體的對應快取線,是否已再填入儲存在該下一 低層快取記憶體快取線中的資料。 17·如申請專利範圍第16項之裝置,其中該處理器進一步可 用來實質上同時設定該其他記憶體的該給定記憶體線的 L_旗標。 18.如申請專利範圍第11項之裝置,進一步包括一處理器可 用來當給定快取線的L-旗標指示該第一層快取記憶體快 取線的一對應線包含儲存在該下一低層快取記憶體的該 給定快取線内資料的副本時,禁止資料複寫到該下一低 層快取記憶體的一給定快取線内。 19·如申請專利範圍第1 8項之裝置,其中該處理器進一步可 用來當該給定快取線的狀態旗標的一有效旗標指示儲存 在該給定快取線中的任何資料都是無效時,准許資料複 寫至該下一低層快取記憶體的一給定快取線内。 20·如申請專利範圍第19項之裝置,其中該處理器進一步可 用來當該給定快取線的狀態旗標的一有效旗標指示儲存 在該給定快取線中的資料是有效的,而且該給定快取線 的L-旗標指示該第一層快取記憶體快取線的一對應線不 包含儲存在該給定快取線中資料的副本時,准許資料複 寫至該下一低層快取記憶體的一給定快取線内。 21·如申請專利範圍第丨丨項之裝置,其中該第一層快取記憶 體是一直接映射快取記憶體。 22·如申請專利範圍第11項之裝置,其中該第一層快取記憶 84873-940304.doc 轉頁 —·月曰 體是一 N路徑集組合快取記憶體。 23· —種方便分層控制之快取記憶體裝置,該裝置包含: 一第一層N路徑集組合快取記憶體,該第一層快取記 憶體的每個N路徑集包括複數個M1快取線,每個快取線 可用來儲存一位址標記和資料; 一下一低層N路徑集組合為一快取記憶體,該下一低 層快取記憶體的每個N路徑集包括複數個M2快取線,每 個快取線可用來儲存一位址標記、狀態旗標和資料,而 且M2大於Ml ;以及 一其他記憶體,與該下一低層快取記憶體有關,而且 包括複數個Ml記憶體線,其中: 孩其他記憶體的每個記憶體線包括個別群組的位 元,與泫第一層快取記憶體的每個N路徑集有關,以致 孩其他記憶體的每個群組的位^,與該第—層快取記憶 體快取線的一個別線有關, 每個群組的位元包捂一索引偏移位元、路徑集位元和 一 L-旗標, 孩索引偏移位元與-索引結合,提供一指標,指向該 下-低層快取記憶體的每個1^路徑集的一快取線, 該路徑集位元提供-指標,指向該下一低層快取記憶 體的N路徑集其中之一,以及 該L-旗標指示該第一層快取記憶體的相關快取線,是 否包含由索引偏移位元、专 ^ 京W和路後集位元所指向的、 儲存在下—低層快取記憶體的快取線中資料的副本。 84873-940304.doc /1243991 * - 24·如申請專利範圍第23項的裝置,其中: 該第一層快取記憶體包括多個N路徑集組合快取記憶 體,以及該等多個快取記憶體的每個N路徑集包栝複數 個Ml快取線; 泫其他圮fe體的每個記憶體線的每一個別群組的位 元,與多個快取記憶體之一的N路徑集之一的快取線之 一有關。 25·如申請專利範圍第23項之裝置,其中每個L_旗標是一單 一位元’(1)當為真時,指示該第一層快取記憶體的快取 線,與包含該L-旗標的群組位元有關,包含儲存在被包 含在該群組位元内的索引偏移位元、索引和路徑集位元 所指向之該下一低層快取記憶體的快取線中資料的副 本;以及(ii)當為偽時,指示該第一層快取記憶體的相關 快取線’不包含儲存在該下一低層快取記憶體相關快取 線中貨料的副本。 26.如申請專利範圍第25項之裝置,其中為真時的L-旗標位 元的層級,是一邏輯高和一邏輯低層級,而為偽時的L-旗標位元的層級,是另一個邏輯高和邏輯低層級。 27·如申請專利範圍第23項之裝置,其中該第一層快取記憶 體是一 L1快取記憶體,而且該下一低層快取記憶體是一 L2快取記憶體。 28.如申請專利範圍第23項之裝置,進一步包括一處理器可 用來設定其他記憶體的個別L-旗標,以指示該第一層快 取記憶體的對應快取線,是否已再填入儲存在該下一低 84873-940304.doc -6- 層快取記憶體快取線中的資料。 29. 30. 31. 32. 33. 34. 如申叫專利範圍第28項之裝置,其中該處理器進一步可 用來貫質上同時設定該其他記憶體的一給定記憶體線的 L -旗標。 如中請專利範圍第23項之裝置,進—步包括—處理器可 用來當與孩給定快取線有關的標指示該第一層快取 記憶體快取線的-對應線包含儲存在該下—低層快取記 憶體的該給定快取線内資料的副纟時,#止資料複寫到 該下一低層快取記憶體的一給定快取線内。 如申請專利範圍第30項之裝置,其中該處理器進一步可 用來當該給定快取線的狀態旗標的一有效旗標指示儲存 在該給足快取線中的任何資料都是無效時,准許資料複 寫至该下一低層快取記憶體的一給定快取線内。 如申請專利範圍第31項之裝置,其中該處理器進一步可 用來當該給定快取線的狀態旗標的一有效旗標指示儲存 在該給足快取線中的資料是有效的,而且與給定快取線 有關的L-旗標指示該第一層快取記憶體快取線的一對應 線不包含儲存在該給定快取線中資料的副本時,准許資 料複寫至孩下一低層快取記憶體的一給定快取線内。 如申請專利範圍第23項之裝置,其中N=1以致該第一層快 取記憶體是一直接映射快取記憶體。 一種控制一分層快取記憶體之方法,包括: 控制一第一層快取記憶體,包括複數個快取線,每個 快取線可用來儲存一位址標記和資料; 84873-940304.doc 控制一下一低層快取記憶體,包括複數個快取線,每 個快取線可用來儲存一位址標記、狀態旗標和資料,每 個快取線的狀態旗標包括一 L -旗標;以及 設定該下一低層快取記憶體的一給定快取線的^旗 標’以指示該第一層快取記憶體快取線的一對應線,是 否已再填入儲存在該下一低層快取記憶體的該給定快 取線内資料的副本。 35·如申請專利範圍第34項之方法,進一步包括:當該給定 决取線的L-旗標指示該第一層快取記憶體快取線的一對 應線包含儲存在該下一低層快取記憶體的該給定快取線 内資料的副本時,禁止資料複寫到該下一低層快取記憶 體的一給定快取線内。 36·如申請專利範圍第35項之方法,進一步包括:當該給定 快取線的狀態旗標的一有效旗標指示儲存在該給定快取 、、泉中的任何資料都是無效時,准許資料複寫至該下一低 層快取記憶體的一給定快取線内。 37.如申請專利範園第36項之方法,進一步包括:當該給定 快取線的狀態旗標的一有效旗標指示儲存在該給定快取 線中的資料是有效的,而且該給定快取線的L-位元指示 $第一層快取記憶體快取線的一對應線不包含儲存在該 給定快取線中資料的副本時,准許資料複寫至該下一低 層快取記憶體的一給定快取線内。 38·如申請專利範圍第34項之方法,其中每個快取線的[_旗 ^ ^ 單一 &元’當為真時,指示該第一層快取記憶體 84873-940304.doc 39. 40. 41. 42. 43. 勺對應快取線’包含儲存在該下一低層快取記憶體的快 取線中資料的副本,而當為偽時,指示沒有該第一層快 取口己fe、體的快取線,包含儲存在該下一低層快取記憶體 快取線中資料的副本。 々申μ專利圍第38項之方法,其中為真時的L_旗標位 元的層級’是一邏輯高和一邏輯低層級,而為偽時的L-'、才it U元的層級,是另一個邏輯高和邏輯低層級。 如申請專利範圍第34項之方法,其中該第一層快取記憶 體疋一 L1快取記憶體,而且該下一低層快取記憶體是一 L2快取記憶體。 如申凊專利範圍第34項之方法,其中該第一層快取記憶 體是一直接映射快取記憶體。 如申請專利範圍第34項之方法,其中該下一低層快取記 憶體是一 N路徑集組合快取記憶體。 一種控制一分層快取記憶體之方法,包括: 控制一第一層快取記憶體,包括複數個M1快取線,每 個快取線可用來儲存一位址標記和資料; 控制一下一低層N路徑集組合之一快取記憶體,每個n 路徑集包括複數個M2快取線,每個快取線可用來儲存一 位址標記、狀態旗標和資料,而且M2大於Ml ; 控制一其他記憶體,與該下一低層快取記憶體有關, 並包括複數個Ml記憶體線,每個記憶體線包括個別的L_ 旗標,用於該下一低層快取記憶體的各N向設定的多個 快取線;以及 84873-940304.doc -9- ^43991 設足其他記憶體的個別L-旗標,以指示該第一層快取 記憶體的對應快取線,是否已再填入儲存在該下—低層 快取記憶體快取線中的資料。 44.如申請專利範圍第43項之方法,進一步包括實質上同時 設定該其他記憶體的該給定記憶體線的L-旗標。 45·如申請專利範圍第43項之方法,進一步包括當該給定快 取線的L-旗標指示該第一層快取記憶體快取線的—對應 線包含儲存在該下一低層快取記憶體的該給定快取線内 資料的副本時,禁止資料複寫到下一低層快取記憶體的 一給定快取線内。 46·如申請專利範圍第45項之方法,進一步包括當該給定快 取線的狀態旗標的一有效旗標指示儲存在該給定快取線 中的任何資料都是無效時,准許資料複寫至該下一低層 快取記憶體的一給定快取線内。 47. 如申請專利範圍第46項之方法,進一步包括:當該給定 快取線的狀態旗標的一有效旗標指示儲存在該給定快取 線中的資料是有效的,而且該給定快取線的L-旗標指示 該第一層快取記憶體快取線的一對應線不包含儲存在該 給定快取線中資料的副本時,准許資料複寫至該下一低 :· 層快取記憶體的一給定快取線内。 48. 如申請專利範圍第43項之方法,其中該其他記憶體每個 記憶體線中L-旗標的數量,等於M2/M1*N。 49·如申請專利範圍第43項之方法,其中每個L•旗標是一單 一位元,當為真時,指示該第一層快取記憶體的一快取 84873-940304.doc -10 - 線,包含儲存在該下一低層快取記憶體的相關快取線中 資料的副本,而當為偽時,指示沒有該第一層快取記憶 體的快取線,包含儲存在該下一低層快取A fe體相關快 取線中資料的副本。 5〇·如申請專利範圍第49項之方法,其中為真時的L-旗標位 元的層級,是一邏輯高和一邏輯低層級,而為偽時的L-旗標位元的層級,是另一個邏輯高和邏輯低層級。 51·如申請專利範圍第43項之方法,其中該第一層快取記憶 體是一 L1快取記憶體,而且該下一低層快取記憶體是一 L2快取記憶體。 52·如申請專利範圍第43項之方法,其中該第一層快取記憶 體是一直接映射快取記憶體。 53·如申請專利範圍第43項之方法,其中該第一層快取記憶 體是一 N路徑集組合快取記憶體。 54· —種控制一分層快取記憶體之方法,包括: 控制一第一層N路徑集組合之一快取記憶體,該第一 層快取冗憶體的每個N路徑集包括複數個]VI1快取線,每 個快取線可用來儲存一位址標記和資料; 控制一下一低層N路徑集組合之一快取記憶體,該下 一低層快取記憶體的每個N路徑集包括複數個M2快取 線,每個快取線可用來儲存一位址標記、狀態旗標和資 料,而且M2大於Ml ; 控制一其他記憶體,與該下—低層快取記憶體有關, 並包括複數個Ml記憶體線,其中⑴其他記憶體的每個記 84873-940304.doc -11 -
    憶體線包括個別群組的位元,與該第一層快取記憶體的 各N路徑集有關,以致該其他記憶體的各群組的位元與 該第一層快取記憶體快取線的一個別線有關,(Η)各群組 的位元包括一索引偏移位元、路徑集位元和L_旗標,(⑴) 該索引偏移位元與一索引結合,提供一指標,指向該下 一低層快取記憶體的路徑集的一快取線,以及(iv) 孩路徑集位元提供一指標,指向該下一低層快取記憶體 的N路徑集其中之一;以及
    設定該其他記憶體的個別L_旗標,以指示該第一層快 取記憶體的對應快取線,是否已再填入由索引偏移位 几、索引和路徑集位元所指向之儲存在該下一低層快取 記憶體快取線中的資料。 55. 如中請專利範圍第54項之方法,進_步包括實質上同時 設定該其他記憶體的給定記憶體線的l_旗標。
    56. 如申請專利範圍第54項之方法,進—步包括:當與該给 定快取線有關的L·旗標指示第—層快取記憶體快取線的 -對應線包含倚存在該下一低層快取記憶體的該給定快 取線内資料的副本時,禁止料複寫職下—低層快取 1己憶體的一給定快取線内。 57.如申請專利範園第56項之方法,進—步包括:當該給定 快取線的狀態旗標的—㈣旗標指示儲存在該給定快取 線中^任何資料都是無效時’複寫資料至該下—低層快 取記憶體的一給定快取線内。 進一步包括:當該給定 58·如申請專利範園第57項之方法 84873-940304.doc -12- /1243991 快取線的狀態旗標的一有效旅炉^ 双琪‘彳日不储存在該給定快取 線中的資料是有效的,而且與該給定絲線有_l-旗 標指示該第-層快取記憶體快取線的—對應線不包含儲 存在該給❹取線中資料㈣本時,准許資料複窝至該 下一低層快取記憶體的一給定快取線内。 59·如申請專利範圍第54項之方法,其中·· 該第一層快取記憶體包括多個N路徑集組合快取記憶 體,以及該等多個快取記憶體的每個N路徑集包括複數 個Μ1快取線; 其他記憶體的每個記憶體線的每一個別群組的位 疋,與該等多個快取記憶體之一的Ν路徑集之一的快取 線之一有關。 6〇·如申請專利範圍第54項之方法,其中每個L_旗標是一單 一位7L,(1)當為真時,指示該第一層快取記憶體的快取 、、泉與包含忒旗標的群組位元有關,包含儲存在被包 含在該群組位元内的索引偏移位元、索引和路徑集位元 所指向之該下一低層快取記憶體的該快取線中資料的副 本,以及(11)當為偽時,指示該第一層快取記憶體的相關 快取線,不包含儲存在該下一低層快取記憶體相關快取 線中資料的副本。 一 61·如申凊專利範圍第6〇項之方法,其中為真時的旗標位 兀的層級,是一邏輯高和一邏輯低層級,而為偽時的L-旗標位元的層級,是另一個邏輯高和邏輯低層級。 62·如申請專利範圍第54項之方法,其中該第一層快取記憶 84873-940304.doc -13- 體是一 L 1快取記憶體,而且該下一低層快取記憶體是一 L2快取記憶體。 63.如申請專利範圍第54項之方法,其中N=1以致該第一層快 取記憶體是一直接映射快取記憶體。 84873-940304.doc 14-
TW092112337A 2002-05-06 2003-05-06 Methods and apparatus for controlling hierarchical cache memory TWI243991B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US37819802P 2002-05-06 2002-05-06
US38220102P 2002-05-21 2002-05-21
US10/228,347 US7024519B2 (en) 2002-05-06 2002-08-26 Methods and apparatus for controlling hierarchical cache memory

Publications (2)

Publication Number Publication Date
TW200404208A TW200404208A (en) 2004-03-16
TWI243991B true TWI243991B (en) 2005-11-21

Family

ID=29273596

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092112337A TWI243991B (en) 2002-05-06 2003-05-06 Methods and apparatus for controlling hierarchical cache memory

Country Status (6)

Country Link
US (3) US7024519B2 (zh)
EP (1) EP1502193B1 (zh)
JP (2) JP4040623B2 (zh)
AU (1) AU2003222459A1 (zh)
TW (1) TWI243991B (zh)
WO (1) WO2003094003A1 (zh)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7024519B2 (en) * 2002-05-06 2006-04-04 Sony Computer Entertainment Inc. Methods and apparatus for controlling hierarchical cache memory
US7076609B2 (en) * 2002-09-20 2006-07-11 Intel Corporation Cache sharing for a chip multiprocessor or multiprocessing system
US7961723B2 (en) * 2002-10-08 2011-06-14 Netlogic Microsystems, Inc. Advanced processor with mechanism for enforcing ordering between information sent on two independent networks
US8015567B2 (en) 2002-10-08 2011-09-06 Netlogic Microsystems, Inc. Advanced processor with mechanism for packet distribution at high line rate
US8478811B2 (en) * 2002-10-08 2013-07-02 Netlogic Microsystems, Inc. Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip
US7346757B2 (en) * 2002-10-08 2008-03-18 Rmi Corporation Advanced processor translation lookaside buffer management in a multithreaded system
US7627721B2 (en) 2002-10-08 2009-12-01 Rmi Corporation Advanced processor with cache coherency
US7334086B2 (en) * 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
US7984268B2 (en) * 2002-10-08 2011-07-19 Netlogic Microsystems, Inc. Advanced processor scheduling in a multithreaded system
US20050044324A1 (en) * 2002-10-08 2005-02-24 Abbas Rashid Advanced processor with mechanism for maximizing resource usage in an in-order pipeline with multiple threads
US8037224B2 (en) 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
US9088474B2 (en) * 2002-10-08 2015-07-21 Broadcom Corporation Advanced processor with interfacing messaging network to a CPU
US8176298B2 (en) 2002-10-08 2012-05-08 Netlogic Microsystems, Inc. Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline
US20050033889A1 (en) * 2002-10-08 2005-02-10 Hass David T. Advanced processor with interrupt delivery mechanism for multi-threaded multi-CPU system on a chip
US7924828B2 (en) * 2002-10-08 2011-04-12 Netlogic Microsystems, Inc. Advanced processor with mechanism for fast packet queuing operations
US20050033831A1 (en) * 2002-10-08 2005-02-10 Abbas Rashid Advanced processor with a thread aware return address stack optimally used across active threads
US7149867B2 (en) * 2003-06-18 2006-12-12 Src Computers, Inc. System and method of enhancing efficiency and utilization of memory bandwidth in reconfigurable hardware
CN100418074C (zh) * 2004-03-05 2008-09-10 菲尼萨公司 光学收发机中的分级和字节可配置存储器
US7844665B2 (en) 2004-04-23 2010-11-30 Waratek Pty Ltd. Modified computer architecture having coordinated deletion of corresponding replicated memory locations among plural computers
US20060253844A1 (en) 2005-04-21 2006-11-09 Holt John M Computer architecture and method of operation for multi-computer distributed processing with initialization of objects
US7543113B2 (en) * 2004-07-02 2009-06-02 Hewlett-Packard Development Company, L.P. Cache memory system and method capable of adaptively accommodating various memory line sizes
US7310709B1 (en) * 2005-04-06 2007-12-18 Sun Microsystems, Inc. Method and apparatus for primary cache tag error handling
US7773597B2 (en) * 2005-04-20 2010-08-10 Cisco Technology, Inc. Method and system for dynamic stashing for cryptographic operations using beginning packet information
US7991959B2 (en) * 2005-05-16 2011-08-02 Texas Instruments Incorporated Visualizing contents and states of hierarchical storage systems
US7716100B2 (en) * 2005-12-02 2010-05-11 Kuberre Systems, Inc. Methods and systems for computing platform
EP1986101B1 (en) * 2006-02-14 2012-06-20 Fujitsu Ltd. Coherency maintaining device and coherency maintaining method
US7711902B2 (en) * 2006-04-07 2010-05-04 Broadcom Corporation Area effective cache with pseudo associative memory
US7949837B2 (en) * 2006-10-05 2011-05-24 Waratek Pty Ltd. Contention detection and resolution
US20080133691A1 (en) * 2006-10-05 2008-06-05 Holt John M Contention resolution with echo cancellation
US20080127214A1 (en) * 2006-10-05 2008-05-29 Holt John M Contention detection with counter rollover
WO2008040071A1 (en) 2006-10-05 2008-04-10 Waratek Pty Limited Contention detection
AU2007304895A1 (en) 2006-10-05 2008-04-10 Waratek Pty Limited Advanced contention detection
US20080250221A1 (en) * 2006-10-09 2008-10-09 Holt John M Contention detection with data consolidation
CN101170416B (zh) * 2006-10-26 2012-01-04 阿里巴巴集团控股有限公司 网络数据存储系统及其数据访问方法
US8078803B2 (en) * 2008-01-30 2011-12-13 Qualcomm Incorporated Apparatus and methods to reduce castouts in a multi-level cache hierarchy
US20100205376A1 (en) * 2007-07-05 2010-08-12 Nxp B.V. Method for the improvement of microprocessor security
US8037256B2 (en) * 2007-12-20 2011-10-11 Advanced Micro Devices, Inc. Programmable address processor for graphics applications
US9596324B2 (en) * 2008-02-08 2017-03-14 Broadcom Corporation System and method for parsing and allocating a plurality of packets to processor core threads
US8364896B2 (en) * 2008-09-20 2013-01-29 Freescale Semiconductor, Inc. Method and apparatus for configuring a unified cache based on an associated error rate
US8316186B2 (en) * 2008-09-20 2012-11-20 Freescale Semiconductor, Inc. Method and apparatus for managing cache reliability based on an associated error rate
US8266498B2 (en) * 2009-03-31 2012-09-11 Freescale Semiconductor, Inc. Implementation of multiple error detection schemes for a cache
US8463458B2 (en) * 2009-09-03 2013-06-11 Johnson Outdoors Marine Electronics, Inc. Depth highlight, depth highlight range, and water level offset highlight display and systems
JP5440067B2 (ja) * 2009-09-18 2014-03-12 富士通株式会社 キャッシュメモリ制御装置およびキャッシュメモリ制御方法
US20110320720A1 (en) * 2010-06-23 2011-12-29 International Business Machines Corporation Cache Line Replacement In A Symmetric Multiprocessing Computer
US8982140B2 (en) * 2010-09-24 2015-03-17 Nvidia Corporation Hierarchical memory addressing
WO2013001632A1 (ja) * 2011-06-29 2013-01-03 富士通株式会社 キャッシュ制御装置及びパイプライン制御方法
US9286172B2 (en) * 2011-12-22 2016-03-15 Intel Corporation Fault-aware mapping for shared last level cache (LLC)
JP5458132B2 (ja) * 2012-03-13 2014-04-02 株式会社東芝 キャッシュ装置
US10445025B2 (en) * 2014-03-18 2019-10-15 Micron Technology, Inc. Apparatuses and methods having memory tier structure and recursively searching between tiers for address in a translation table where information is only directly transferred between controllers
US10235219B2 (en) * 2015-07-27 2019-03-19 Sony Interactive Entertainment America Llc Backward compatibility by algorithm matching, disabling features, or throttling performance
US11403099B2 (en) 2015-07-27 2022-08-02 Sony Interactive Entertainment LLC Backward compatibility by restriction of hardware resources
US10552350B2 (en) * 2015-08-03 2020-02-04 Marvell World Trade Ltd. Systems and methods for aggregating data packets in a mochi system
US9986200B1 (en) * 2017-05-11 2018-05-29 Novatek Microelectronics Corp. Method and video conversion system of updating video setting
US10296458B2 (en) * 2017-05-31 2019-05-21 Dell Products L.P. Multi-level cache system in a software application
US11995324B2 (en) * 2019-01-18 2024-05-28 The Trustees Of Columbia University In The City Of New York Methods and systems for fine granularity memory blacklisting to detect memory access violations
US11455253B2 (en) * 2020-10-01 2022-09-27 Arm Limited Set indexing for first-level and second-level set-associative cache
US11886342B2 (en) 2021-12-01 2024-01-30 International Business Machines Corporation Augmenting cache replacement operations

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3576544A (en) 1968-10-18 1971-04-27 Ibm Storage protection system
US4037214A (en) 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
JPS5373927A (en) 1976-11-10 1978-06-30 Fujitsu Ltd Replacing system of intermediate buffer memory
JPS54146555A (en) 1978-05-09 1979-11-15 Nec Corp Data transfer system between processors
US4332009A (en) 1980-01-21 1982-05-25 Mostek Corporation Memory protection system
JPS5835295B2 (ja) 1980-03-03 1983-08-02 オムロン株式会社 マスタ・スレ−ブ・システムにおけるデ−タ転送方式
US4430705A (en) 1980-05-23 1984-02-07 International Business Machines Corp. Authorization mechanism for establishing addressability to information in another address space
DE3171379D1 (en) 1981-04-28 1985-08-22 Ibm Bus arrangement for interconnectiong circuit chips
JPS5858553A (ja) * 1981-10-01 1983-04-07 Fuji Photo Film Co Ltd X線電子写真感光体およびその製造方法
AU542447B2 (en) 1982-02-27 1985-02-21 Fujitsu Limited System for controlling key storage unit
JPS5958700A (ja) 1982-09-29 1984-04-04 Fujitsu Ltd 記憶保護判定方式
US4545016A (en) 1983-01-07 1985-10-01 Tandy Corporation Memory management system
US5159700A (en) 1984-01-16 1992-10-27 Texas Instruments Incorporated Substrate with optical communication systems between chips mounted thereon and monolithic integration of optical I/O on silicon substrates
US4732446A (en) 1985-10-02 1988-03-22 Lamar Gipson Electrical circuit and optical data buss
JPS6319058A (ja) 1986-07-11 1988-01-26 Fujitsu Ltd メモリ装置
JP2960415B2 (ja) 1987-05-22 1999-10-06 株式会社日立製作所 記憶保護方法および装置
JPH01199251A (ja) 1988-02-04 1989-08-10 Fujitsu Ltd キャッシュメモリアクセス制御方式
US4939682A (en) 1988-07-15 1990-07-03 The Boeing Company Integrated electro-optic arithmetic/logic unit and method for making the same
US5136700A (en) 1989-12-22 1992-08-04 Digital Equipment Corporation Apparatus and method for reducing interference in two-level cache memories
US5261066A (en) * 1990-03-27 1993-11-09 Digital Equipment Corporation Data processing system and method with small fully-associative cache and prefetch buffers
CA2044689A1 (en) 1990-06-15 1991-12-16 Roger E. Tipley Multilevel inclusion in multilevel cache hierarchies
US5144691A (en) 1990-07-20 1992-09-01 Cray Research, Inc. Computer signal interconnect apparatus
EP0481735A3 (en) 1990-10-19 1993-01-13 Array Technology Corporation Address protection circuit
KR940004404B1 (ko) 1990-11-30 1994-05-25 삼성전자 주식회사 불휘발성 반도체 메모리장치
DE69225876T2 (de) 1991-12-24 1998-12-10 Motorola Inc Cachesteuerungsschaltung
US5268973A (en) 1992-01-21 1993-12-07 The University Of Texas System Wafer-scale optical bus
JPH05216765A (ja) 1992-02-06 1993-08-27 Hitachi Ltd 階層バッファ記憶装置
US5649154A (en) * 1992-02-27 1997-07-15 Hewlett-Packard Company Cache memory system having secondary cache integrated with primary cache for use with VLSI circuits
US5715248A (en) 1992-05-21 1998-02-03 Alcatel Network Systems, Inc. Derivation of VT group clock from SONET STS-1 payload clock and VT group bus definition
JPH05342101A (ja) 1992-06-12 1993-12-24 Fujitsu Ltd 階層キャッシュ・メモリ
US5619671A (en) 1993-04-19 1997-04-08 International Business Machines Corporation Method and apparatus for providing token controlled access to protected pages of memory
US5530832A (en) * 1993-10-14 1996-06-25 International Business Machines Corporation System and method for practicing essential inclusion in a multiprocessor and cache hierarchy
US5671391A (en) * 1994-01-10 1997-09-23 Ncr Corporation Coherent copyback protocol for multi-level cache memory systems
US5715428A (en) * 1994-02-28 1998-02-03 Intel Corporation Apparatus for maintaining multilevel cache hierarchy coherency in a multiprocessor computer system
US5513337A (en) 1994-05-25 1996-04-30 Intel Corporation System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type
US5551001A (en) * 1994-06-29 1996-08-27 Exponential Technology, Inc. Master-slave cache system for instruction and data cache memories
JP3132749B2 (ja) * 1994-12-05 2001-02-05 インターナショナル・ビジネス・マシーンズ・コーポレ−ション マルチプロセッサ・データ処理システム
DE19508723A1 (de) 1995-03-10 1996-09-12 Siemens Ag Mehrbenutzerdatenverarbeitungsanlage mit Speicherschutz
US5850534A (en) 1995-06-05 1998-12-15 Advanced Micro Devices, Inc. Method and apparatus for reducing cache snooping overhead in a multilevel cache system
US5740400A (en) 1995-06-05 1998-04-14 Advanced Micro Devices Inc. Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache by using an inclusion field
JP3786993B2 (ja) 1995-12-14 2006-06-21 株式会社日立製作所 データ記憶ユニット及び該ユニットを用いたデータ記憶装置
US6070233A (en) * 1996-01-26 2000-05-30 Unisys Corporation Processor bus traffic optimization system for multi-level cache utilizing reflection status bit to indicate data inclusion in higher level cache
US5729712A (en) * 1996-01-26 1998-03-17 Unisys Corporation Smart fill system for multiple cache network
US5900019A (en) 1996-05-23 1999-05-04 International Business Machines Corporation Apparatus for protecting memory storage blocks from I/O accesses
US5802563A (en) * 1996-07-01 1998-09-01 Sun Microsystems, Inc. Efficient storage of data in computer system with multiple cache levels
EP0840231A1 (en) * 1996-10-31 1998-05-06 Texas Instruments Incorporated Microprocessor comprising multi-level cache memory
JP3421526B2 (ja) 1997-02-14 2003-06-30 モトローラ株式会社 デ−タ処理装置
US6212605B1 (en) 1997-03-31 2001-04-03 International Business Machines Corporation Eviction override for larx-reserved addresses
JPH1139215A (ja) 1997-05-22 1999-02-12 Matsushita Electric Ind Co Ltd キャッシュメモリおよびキャッシュメモリを制御する方法
US5996048A (en) * 1997-06-20 1999-11-30 Sun Microsystems, Inc. Inclusion vector architecture for a level two cache
US6247094B1 (en) * 1997-12-22 2001-06-12 Intel Corporation Cache memory architecture with on-chip tag array and off-chip data array
US6351789B1 (en) * 1998-05-29 2002-02-26 Via-Cyrix, Inc. Built-in self-test circuit and method for validating an associative data array
US6467012B1 (en) 1999-07-08 2002-10-15 International Business Machines Corporation Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors
US6763425B1 (en) * 2000-06-08 2004-07-13 Netlogic Microsystems, Inc. Method and apparatus for address translation in a partitioned content addressable memory device
US6356980B1 (en) * 1999-11-09 2002-03-12 International Business Machines Corporation Method and system for bypassing cache levels when casting out from an upper level cache
US6725334B2 (en) * 2000-06-09 2004-04-20 Hewlett-Packard Development Company, L.P. Method and system for exclusive two-level caching in a chip-multiprocessor
US6748501B2 (en) 2000-12-30 2004-06-08 International Business Machines Corporation Microprocessor reservation mechanism for a hashed address system
US6826662B2 (en) 2001-03-22 2004-11-30 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks
US6834327B2 (en) * 2002-02-08 2004-12-21 Hewlett-Packard Development Company, L.P. Multilevel cache system having unified cache tag memory
US7024519B2 (en) * 2002-05-06 2006-04-04 Sony Computer Entertainment Inc. Methods and apparatus for controlling hierarchical cache memory

Also Published As

Publication number Publication date
JP2006504158A (ja) 2006-02-02
JP2007310906A (ja) 2007-11-29
US7024519B2 (en) 2006-04-04
US20060075193A1 (en) 2006-04-06
AU2003222459A1 (en) 2003-11-17
JP4040623B2 (ja) 2008-01-30
US7461207B2 (en) 2008-12-02
JP4112603B2 (ja) 2008-07-02
EP1502193A1 (en) 2005-02-02
EP1502193B1 (en) 2013-11-13
US20030208658A1 (en) 2003-11-06
TW200404208A (en) 2004-03-16
US7870340B2 (en) 2011-01-11
US20090063772A1 (en) 2009-03-05
WO2003094003A1 (en) 2003-11-13

Similar Documents

Publication Publication Date Title
TWI243991B (en) Methods and apparatus for controlling hierarchical cache memory
US7987321B1 (en) Caching in multicore and multiprocessor architectures
EP0695996B1 (en) Multi-level cache system
JP3880581B2 (ja) キャッシュのロックを使用するストリーミング・データ
TWI334540B (en) Method to provide cache management commands for a dma controller
US20060277365A1 (en) Method and system for on-chip configurable data ram for fast memory and pseudo associative caches
US20100115204A1 (en) Non-uniform cache architecture (nuca)
TWI393050B (zh) 促進多重處理器介面之板內建快取記憶體系統之記憶體裝置及方法及使用其之電腦系統
US10261901B2 (en) Method and apparatus for unneeded block prediction in a computing system having a last level cache and a multi-level system memory
TW201007453A (en) Snoop filtering mechanism
CN1722110A (zh) 低等待时间存储器系统访问
US20110167224A1 (en) Cache memory, memory system, data copying method, and data rewriting method
JP2968509B2 (ja) コンピュータシステム及びキャッシュの内容のコヒーレンシー状態を変更する方法
JP2009528612A (ja) データ処理システム並びにデータ及び/又は命令のプリフェッチ方法
CN109753445A (zh) 一种缓存访问方法、多级缓存系统及计算机系统
WO2006040689A1 (en) Implementation and management of moveable buffers in cache system
CN111273860A (zh) 一种基于网络和页粒度管理的分布式内存管理方法
JP3974131B2 (ja) キャッシュメモリを制御するための方法と装置
JPWO2010087310A1 (ja) キャッシュメモリおよびその制御方法
US6728842B2 (en) Cache updating in multiprocessor systems
WO2010098152A1 (ja) キャッシュメモリシステムおよびキャッシュメモリ制御方法
TW202244735A (zh) Dram感知快取記憶體
Chowdhary Introduction to Computer Organization (Cache Memory)

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees