TW201706853A - 用於快取標籤壓縮之方法及裝置 - Google Patents

用於快取標籤壓縮之方法及裝置 Download PDF

Info

Publication number
TW201706853A
TW201706853A TW105112179A TW105112179A TW201706853A TW 201706853 A TW201706853 A TW 201706853A TW 105112179 A TW105112179 A TW 105112179A TW 105112179 A TW105112179 A TW 105112179A TW 201706853 A TW201706853 A TW 201706853A
Authority
TW
Taiwan
Prior art keywords
tag
item
array
order bit
memory
Prior art date
Application number
TW105112179A
Other languages
English (en)
Other versions
TWI698745B (zh
Inventor
亨利 阿瑟 三世 沛樂林
湯瑪仕 菲利浦 史派爾
湯瑪士 安佐 薩多立司
麥克 威廉 摩洛
詹姆士 諾立司 迪凡弗
肯尼士 艾倫 達克塞
麥可 史考特 麥夫尼
Original Assignee
高通公司
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 高通公司 filed Critical 高通公司
Publication of TW201706853A publication Critical patent/TW201706853A/zh
Application granted granted Critical
Publication of TWI698745B publication Critical patent/TWI698745B/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/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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6032Way prediction in set-associative cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

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)

Abstract

一種記憶體結構使用一經編製索引標籤壓縮結構來壓縮一記憶體標籤之一部分。該記憶體標籤之一高階位元集合可儲存於該經編製索引標籤壓縮結構中,其中該高階位元集合係由一索引值識別。一標籤陣列儲存該記憶體標籤之一低階位元集合及識別該標籤壓縮結構中儲存該記憶體標籤之該高階位元集合之項目的該索引值。該記憶體標籤可包含儲存於一資料陣列中之一資料元素之一記憶體位址之至少一部分。

Description

用於快取標籤壓縮之方法及裝置
本文中所揭示之態樣係關於電腦微處理器(在本文中亦被稱作處理器)之領域。更具體言之,本文中所揭示之態樣係關於快取標籤壓縮。
現代處理器通常依賴於快取記憶體以改良處理效能。快取記憶體藉由利用工作負載之指令串流及資料串流中的時間及空間局域性而工作。快取記憶體之部分專用於儲存快取標籤陣列。快取標籤儲存自主記憶體提取之實際資料之位址。判定快取記憶體中之命中(hit)或失敗(miss)之速度受到標籤陣列之寬度約束,其中較大標籤陣列通常產生較多計時壓力。較寬(或較大)標籤具有較多位元。為了判定在快取記憶體中是否存在命中,必須比較標籤之所有位元與探查位址。因此,該比較中之較多位元可需要較多延遲來傳回該比較之結果。
本文中所揭示之態樣藉由將高階標籤位元之唯一值儲存於標籤壓縮快取記憶體中來縮減為標籤儲存所需要之區域。
在一個態樣中,一種快取記憶體包含一標籤壓縮結構及一標籤陣列。該標籤壓縮結構儲存複數個標籤壓縮項目。該複數個標籤壓縮項目中之每一者含有一記憶體標籤之一各別高階位元集合且係由一各別索引值識別。該標籤陣列儲存複數個標籤陣列項目。該複數個標籤陣列項目中之每一者含有該記憶體標籤之一各別低階位元集合及對應 於該標籤壓縮結構之該等索引值中之一者的一索引值。該第一記憶體標籤可包含儲存於一資料陣列中之一資料元素之一記憶體位址之至少一部分。
在一個態樣中,一種方法包含在一標籤壓縮結構中之複數個標籤壓縮項目中之一第一標籤壓縮項目中儲存一第一記憶體標籤之一高階位元集合。該複數個標籤壓縮項目中之每一者係由一各別索引值識別。該方法進一步包含在一標籤陣列中之複數個標籤陣列項目中之一第一標籤陣列項目中儲存該記憶體標籤之一低階位元集合及用於該第一標籤陣列項目之一索引值。該第一標籤陣列項目之該索引值對應於該標籤壓縮結構中之該第一標籤壓縮項目。該第一記憶體標籤可包含儲存於一資料陣列中之一資料元素之一記憶體位址之至少一部分。
在一個態樣中,一種非暫時性電腦可讀媒體儲存指令,該等指令在由一處理器執行時致使該處理器執行一操作,該操作包含在一標籤壓縮結構中之複數個標籤壓縮項目中之一第一標籤壓縮項目中儲存一第一記憶體標籤之一高階位元集合。該複數個標籤壓縮項目中之每一者係由一各別索引值識別。該操作進一步包含在一標籤陣列中之複數個標籤陣列項目中之一第一標籤陣列項目中儲存該記憶體標籤之一低階位元集合及用於該第一標籤陣列項目之一索引值。該第一標籤陣列項目之該索引值對應於該標籤壓縮結構中之該第一標籤壓縮項目。該第一記憶體標籤可包含儲存於一資料陣列中之一資料元素之一記憶體位址之至少一部分。
在一個態樣中,一種裝置包含用於在複數個標籤壓縮項目中之一第一標籤壓縮項目中儲存一第一記憶體標籤之一高階位元集合的構件。該複數個標籤壓縮項目中之每一者係由一各別索引值識別。該裝置進一步包含用於在複數個標籤陣列項目中之一第一標籤陣列項目中儲存該記憶體標籤之一低階位元集合及用於該第一標籤陣列項目之一 索引值的構件。該第一標籤陣列項目之該索引值對應於該第一標籤壓縮項目。該第一記憶體標籤可包含一資料元素之一記憶體位址之至少一部分。
藉由將一記憶體標籤之一部分儲存於一標籤壓縮快取記憶體中,本文中所揭示之態樣縮減冗餘位元在該標籤陣列中之儲存。藉此會需要用於記憶體標籤之較少實體區域,提供較快比較結果,且需要較少功率來執行比較。
101‧‧‧處理器/中央處理單元(CPU)
102‧‧‧快取記憶體
103‧‧‧快取記憶體邏輯
104‧‧‧標籤壓縮快取記憶體(TCC)
105‧‧‧快取標籤陣列
106‧‧‧資料陣列
108‧‧‧較高層級記憶體
112‧‧‧指令執行管線
201‧‧‧記憶體位址
202‧‧‧標籤壓縮快取記憶體(TCC)項目
204‧‧‧標籤壓縮快取記憶體(TCC)索引值
205‧‧‧快取標籤
206‧‧‧標籤壓縮快取記憶體(TCC)項目
207‧‧‧標籤壓縮快取記憶體(TCC)索引值
208‧‧‧標籤壓縮快取記憶體(TCC)索引值
209‧‧‧快取標籤
210‧‧‧比較器
211‧‧‧比較器
212‧‧‧「及」(AND)邏輯
213‧‧‧分割器
300‧‧‧示意圖
301‧‧‧表格
302‧‧‧資料線
400‧‧‧方法
410‧‧‧步驟
415‧‧‧步驟
420‧‧‧步驟
430‧‧‧步驟
440‧‧‧步驟
450‧‧‧步驟
460‧‧‧步驟
470‧‧‧步驟
480‧‧‧步驟
500‧‧‧方法
510‧‧‧步驟
520‧‧‧步驟
530‧‧‧步驟
540‧‧‧步驟
601‧‧‧計算器件
608‧‧‧記憶體
609‧‧‧儲存體
618‧‧‧網路介面器件
620‧‧‧匯流排
622‧‧‧輸入器件
624‧‧‧輸出器件
630‧‧‧網路
為了達成且可詳細地理解上述態樣,可參考隨附圖式來更特定地描述上文簡要地概述的本發明之態樣。
然而,應注意,隨附圖式僅說明本發明之態樣且因此不應被視為限制本發明之範疇,此係因為本發明可准許其他態樣。
圖1說明根據一個態樣的提供快取標籤壓縮之處理器。
圖2為根據一個態樣的經組態以提供快取標籤壓縮之處理器之組件的邏輯視圖。
圖3為根據一個態樣的說明儲存於標籤壓縮快取記憶體、標籤陣列及資料陣列中之實例值的示意圖。
圖4為根據一個態樣的說明用以提供快取標籤壓縮之方法的流程圖。
圖5為根據一個態樣的說明用以建立新標籤壓縮快取記憶體項目之方法的流程圖。
圖6為根據一個態樣的說明整合經組態以提供快取標籤壓縮之處理器之計算器件的方塊圖。
本文中所揭示之態樣提供用以縮減用於記憶體標籤儲存之區域的技術。舉例而言,可運用某一上部位址位元集合來對快取記憶體加 標籤。通常,快取標籤需要用於大量位元之儲存,且現代快取架構相較於先前各代通常需要實質上較大的標籤。舉例而言,考慮假想的4向32千位元組(KB)指令快取記憶體,其具有64個位元線。此類快取記憶體之線的數目為215/29或512個線。每一線係與一標籤相關聯。快取記憶體之集合的數目等於215/26/22或128個集合(具有7位元集合解碼)。在至少一個態樣中,標籤位元不包括7位元集合解碼或6位元位元組位移,此意謂標籤位元始於A[7+6]或A[13],其中「A」指示至標籤搜尋之位址輸入。因此,對於64個位元之實例位址,比較標籤與A[63:13],且標籤儲存為51個位元/線。因此,用於快取記憶體之總標籤儲存為51個位元/線 * 512個線或26,112個位元,從而引起10%之儲存附加項來儲存快取標籤。
儘管標籤值係任意的且程式碼相依的,但標籤值中之每一者的位元之子集可具有很少變化性,使得位元之子集橫越多個快取標籤具有相同值。本文中所揭示之態樣藉由消除橫越多個快取標籤具有相同值之多個複本之冗餘儲存來利用此傾向。具體言之,本文中所揭示之態樣引入一種經組態以儲存唯一標籤值之標籤壓縮快取記憶體。藉此會自快取標籤移除許多位元。可運用指向標籤壓縮快取記憶體項目之較小數目個位元來替換自快取標籤移除之位元。標籤壓縮快取記憶體可保留來自快取標籤之任何位元集合,該等位元包括但不限於上部(或較高)位址位元、位址空間識別符(ASID)、安全性位元、例外狀況層級位元,及其類似者。
因為標籤壓縮快取記憶體保留原始快取標籤之部分,所以存取必定在標籤壓縮快取記憶體中「命中」以便在快取記憶體中「命中」。相似地,在標籤壓縮快取記憶體中「失敗」之存取必定亦在快取記憶體自身中「失敗」。收回標籤壓縮快取記憶體項目會要求所有對應快取線(亦即,標籤壓縮快取記憶體索引值匹配於經收回標籤壓 縮快取記憶體之索引的彼等線)失效。然而,使快取線失效並不要求對標籤壓縮快取記憶體進行任何更新。
本文中所揭示之態樣並行地存取標籤壓縮快取記憶體及快取記憶體以判定輸入記憶體位址引起快取「命中」抑或「失敗」。具體言之,本文中所揭示之態樣使用輸入記憶體位址之高階位元集合來存取標籤壓縮快取記憶體。若在標籤壓縮快取記憶體中存在命中(亦即,標籤壓縮快取記憶體中之項目匹配於輸入記憶體位址之高階位元),則標籤壓縮快取記憶體經組態以傳回匹配項目之索引值。並行地,本文中所揭示之態樣使用輸入記憶體位址之低階位元集合來搜尋快取記憶體。若在快取記憶體中存在一命中(亦即,快取標籤陣列中之一標籤項目匹配於輸入記憶體位址之低階位元),則快取記憶體經組態以傳回低階位元及匹配項目中之索引值。本文中所揭示之態樣可接著比較自快取記憶體及標籤壓縮快取記憶體傳回之索引值。若該等索引值不匹配,則本文中所揭示之態樣傳回一快取失敗之指示。本文中所揭示之態樣可進一步比較自快取標籤項目傳回之較低位元與輸入記憶體位址之較低位元。若該等較低位元不匹配,則本文中所揭示之態樣傳回一快取失敗之指示。然而,若該等索引值匹配且該等較低位元匹配,則本文中所揭示之態樣傳回一快取命中之指示(亦即,經請求資料存在於快取記憶體中)。
本文中使用快取記憶體作為參考實例以促進描述本發明之態樣。然而,快取記憶體之使用不應被視為限制本發明,此係因為本文中所描述之技術適用於具有標籤欄位之其他硬體結構,諸如處理器快取記憶體、資料快取記憶體、指令快取記憶體、線填充緩衝器、轉譯後援緩衝器(translation lookaside buffer;TLB),及其類似者。對特定硬體結構之任何參考不應被視為限制本發明。
圖1說明根據一個態樣的提供快取標籤壓縮之處理器101。如所 展示,處理器101包括執行指令之一指令執行管線112。管線112可為具有多個平行管線之超純量設計,該等平行管線中之每一者包括各種非架構型暫存器(未圖繪)及一或多個算術邏輯單元(亦未圖繪)。如所展示,處理器101亦包括一快取記憶體(cache/cache memory)102,其儲存來自記憶體108之一或多個較高層級的資料線。記憶體108之較高層級可包括但不限於較高層級快取記憶體及/或主(系統)記憶體。在至少一個態樣中,快取記憶體102為層級1(L1)資料快取記憶體。通常,CPU 101可包括眾多變化,且圖2所展示之CPU 101係出於說明性目的且不應被視為限制本發明。舉例而言,CPU 101可為圖形處理單元(GPU)。
如所展示,快取記憶體102包括快取記憶體邏輯103、標籤壓縮快取記憶體104、標籤陣列105及資料陣列106。快取記憶體邏輯103通常控制快取記憶體102之操作,諸如判定在特定操作中發生快取命中抑或失敗。標籤壓縮快取記憶體(TCC)104為經組態以保留記憶體標籤之上階(或高階)位元集合的硬體結構。舉例而言,TCC 104可保留記憶體標籤之上部位址位元、ASID位元、安全性位元、例外狀況層級位元及其類似者中的一或多者。TCC 104通常經組態以儲存原本將會冗餘地儲存於標籤陣列105中之冗餘值。標籤陣列105通常經組態以儲存快取記憶體102中儲存之資料之位址。更具體言之,標籤陣列105之每一項目經組態以儲存記憶體標籤之低階位元集合及對應於TCC 104中之項目之索引值的索引值。資料陣列106儲存快取線之資料。在至少一個態樣中,將TCC 104實施為內容可定址記憶體(CAM)結構。相似地,可將標籤陣列105及資料陣列106實施為CAM。此外,在至少一個態樣中,TCC 104為完全關聯的最近最少使用的(LRU)替換結構。TCC 104可具有任何數目個項目,諸如兩個、四個或八個。用於將資料儲存於TCC 104、標籤陣列105及資料陣列106中的構件可包括 一或多個記憶體胞元。
在操作中,處理器101可設法判定位於記憶體108之較高層級中之一者中的資料是否存在於快取記憶體102內。當處理器101將輸入記憶體位址(其可為虛擬位址)提供至快取記憶體102時,快取記憶體邏輯103可判定在輸入記憶體位址處之資料是否在快取記憶體102中。藉此,快取記憶體邏輯103可使用輸入記憶體位址之高階位元來起始TCC 104之CAM搜尋。若TCC 104中之項目匹配於輸入記憶體位址之高階位元,則TCC 104經組態以傳回TCC 104中之匹配項目之索引值。快取記憶體邏輯103可並行地起始標籤陣列105之CAM搜尋與TCC 104之CAM搜尋。快取記憶體邏輯103可使用輸入記憶體位址之低階位元來搜尋標籤陣列105。若標籤陣列105中之項目之低階位元匹配於輸入記憶體位址之低階位元,則標籤陣列105經組態以傳回低階位元及匹配項目之索引值。快取記憶體邏輯103可接著比較由TCC 104及標籤陣列105傳回之索引值。若該等索引值不匹配,則快取記憶體邏輯103可傳回快取失敗之指示。快取記憶體邏輯103亦可比較由標籤陣列105傳回之低階位元與輸入記憶體位址之低階位元。若該等低階位元匹配且該等索引值匹配,則快取記憶體邏輯103經組態以傳回快取命中之指示。
若TCC 104之搜尋引起失敗,則快取記憶體邏輯103可經組態以在TCC 104中產生用於輸入記憶體位址之項目。若空閒(或以其他方式可用的)項目存在於TCC 104中,則快取記憶體邏輯103可將輸入記憶體位址之高階位元集合儲存至空閒項目。若TCC 104中之項目為不可用的,則快取記憶體邏輯103可收回TCC 104中之現有項目,且使標籤陣列105(及資料陣列106)中指定經收回項目之索引值的任何對應項目失效。快取記憶體邏輯103可針對TCC 104應用任何合適替換策略,諸如LRU,或替換與最少快取線(其可由用於TCC 104中之每一項 目的計數器判定)相關聯之TCC 104項目。快取記憶體邏輯103可以任何可行方式來使項目失效,諸如藉由快速失效或逐線失效。除了將指定輸入記憶體位址之高階位元的項目添加至TCC 104以外,快取記憶體邏輯103亦可在標籤陣列105中產生指定輸入記憶體位址之低階位元及儲存輸入記憶體位址之高階位元的TCC 104項目之索引值的項目。
在至少一個態樣中,快取記憶體邏輯103可每隔一個時脈循環來探查TCC 104一次。然而,此可汲取大量功率,且可處於關鍵計時路徑。建置至TCC 104中之項目愈多,則可為探查TCC 104所需要之功率及時間愈多。因此,在一些態樣中,快取記憶體邏輯103可包括避免需要在大多數循環中搜尋TCC 104之邏輯。舉例而言,暫存器集合可經組態以儲存藉由對TCC 104之先前存取而傳回的位元(及對應TCC 104項目是否保持有效)。通常,快取記憶體邏輯103可判定對應於TCC 104中保留之位元的輸入記憶體位址位元是否與對TCC 104之先前存取中的位元相同。快取記憶體邏輯103可接著判定關聯TCC 104項目自從最後存取以來是否尚未失效。若兩個判定皆為真,則快取記憶體邏輯103可判定壓縮快取標籤必定在TCC 104中,且安全的是重新使用先前循環之索引,從而致使沒有必要在當前循環中搜尋TCC 104。若任一判定皆不為真,則快取記憶體邏輯103不能重新使用先前循環之TCC 104索引,控制邏輯103必須搜尋TCC 104。用於搜尋TCC 104、標籤陣列105及資料陣列106的構件包括被實施為硬體及/或軟體之邏輯。相似地,被實施為硬體及/或軟體之邏輯可充當用於讀取及/或寫入值、傳回命中及/或失敗之指示且傳回來自TCC 104、標籤陣列105及資料陣列106之值的構件。此類構件邏輯之實例包括記憶體控制器、快取記憶體控制器及資料控制器。
如先前所指示,可將圖1所描繪之壓縮方案應用於其他PC加標籤及/或ASID加標籤之微架構結構。舉例而言,可將虛擬位址變換成可 貫穿區塊而使用之形式{標籤壓縮索引值,部分虛擬位址}。藉此將允許所有資料路徑元件對此縮短形式進行操作,該等元件包括轉譯後援緩衝器(TLB)、分支預測器、斷點、快取記憶體及其類似者。必要時,可將經變換位址轉換成原始位址(只要有必要),諸如在區塊邊界處、用於快取內容偵錯設施,及其類似者。相似地,可將標籤壓縮技術獨立地應用於指令位址、載入/儲存位址及實體上加標籤之結構。
在一個態樣中,處理器101安置於包括指令執行管線112及快取記憶體102之積體電路上。在另一態樣中,快取記憶體102可位於與包括處理器101之積體電路分離的積體電路上。
圖2為根據一個態樣的經組態以提供快取標籤壓縮之處理器101之快取記憶體邏輯103之部分的邏輯視圖。如所展示,處理器101包括標籤壓縮快取記憶體(TCC)104及快取標籤陣列105。如先前所描述,TCC 104為儲存複數個TCC項目202之經編製索引硬體結構。TCC項目202可包括記憶體標籤之高階位址位元集合。在至少一些態樣中,TCC項目202可進一步包括關於ASID、安全性層級、例外狀況層級及其類似者之位元。如所展示,快取標籤陣列105包括複數個項目,該等項目中之每一者具有一標籤壓縮快取記憶體(TCC)索引值204及一快取標籤205。TCC索引值204可對應於TCC 104中之項目202之索引值。快取標籤205可包括記憶體標籤之低階位元。如所展示,快取標籤205儲存記憶體標籤之低階位元,即,N位元記憶體標籤之位元0至M。相似地,TCC 104儲存N位元記憶體標籤之高階位元,即,記憶體標籤之位元M+1至N。因此,可藉由組合儲存於TCC 104中之高階位元(位元M+1至N)與快取標籤205之低階位元(位元0至M)來產生完整記憶體標籤(位元0至N)。
如所展示,處理器101可請求儲存於記憶體位址201處之資料。快取記憶體邏輯103可經組態以判定儲存於記憶體位址201處之資料是 否位於快取記憶體102中。在至少一個態樣中,記憶體位址201可為具有N個位元之長度的虛擬記憶體位址。為了判定儲存於記憶體位址201處之資料是否在快取記憶體102中,快取記憶體邏輯103可並行地探查TCC 104及快取標籤陣列105。更具體言之,如所展示,快取記憶體邏輯103可執行快取標籤陣列105之CAM搜尋。若快取標籤205中之一者包括匹配於記憶體位址201之位元0至M的項目,則快取標籤陣列105可傳回TCC索引值208及快取標籤209。此外,如所展示,分割器213可分割記憶體位址201,其將記憶體位址201之位元M+1至N提供至TCC 104。可使用記憶體位址201之位元M+1至N來執行對TCC 104之CAM搜尋。若TCC 104中之項目202包括匹配於記憶體位址201之位元M+1至N之值的值,則TCC 104經組態以傳回TCC項目206及TCC索引值207,其中索引值207識別匹配TCC項目206。TCC索引值207之長度可為適合於允許由各別TCC索引值207唯一地識別TCC 104中之每一項目202的任何數目個位元。因此,舉例而言,若TCC 104具有四個硬體項目(例如,四個TCC項目202),則對應於每一項目之TCC索引值207的長度可為兩個位元。在此類實例中,儲存於快取標籤陣列105中之每一TCC索引204的長度將亦為兩個位元。在至少一個態樣中,基於給定TCC項目202之位置(或位址)來隱含地識別TCC索引值207。
如所展示,比較器210比較自TCC 104傳回之TCC索引值207與由快取標籤陣列105傳回之TCC索引值208。此外,比較器211比較記憶體位址201之低階位元0:M與儲存於自快取標籤陣列105傳回之快取標籤項目209中之低階位元0:M。如所展示,「及」(AND)邏輯212經組態以對比較器210、211之輸出執行邏輯「及」運算。若兩個比較器210、211皆指示一匹配,則「及」邏輯212之輸出經組態以傳回一快取命中之指示。換言之,若由比較器210比較之索引值匹配且由比較器211比較之低階位元0:M匹配,則經請求記憶體位址201之內容儲存 於快取記憶體102中,且快取記憶體邏輯103可傳回一快取命中之指示。然而,若比較器210指示經比較索引值不匹配或比較器211指示低階位元0:M不匹配,則經請求資料不在快取記憶體102中,且快取記憶體邏輯103可傳回一快取失敗之指示。因此,如所展示,快取記憶體邏輯103導致比較位元0:M與索引值。藉此會允許快取記憶體邏輯103比較比(位元0:N之)傳統標籤比較更少的位元,從而引起比傳統比較更快的比較。
在快取失敗的情況下,快取記憶體邏輯103可經組態以自高階記憶體提取經請求資料,且填入如上文所描述之TCC 104及快取標籤陣列105。相似地,若TCC 104及快取標籤陣列105之初始CAM搜尋中之任一者皆失敗,則快取記憶體邏輯103可經組態以自高階記憶體提取經請求資料,且填入如上文所描述之TCC 104及快取標籤陣列105。
圖3為根據一個態樣的說明儲存於標籤壓縮快取記憶體(TCC)104、快取標籤陣列105及資料陣列106中之實例值的示意圖300。如所展示,TCC 104中之每一TCC項目202指定記憶體標籤之部分且係由各別TCC索引值207識別。各別索引值207唯一地識別每一TCC項目202。在至少一個態樣中,索引值207係由TCC 104中之每一項目之位置(或位址)隱含地提供。因此,在此類態樣中,TCC 104中未明確地定義索引值207,且圖3中描繪索引值207以促進解釋此類態樣。每一TCC項目202之標籤部分可為一記憶體標籤之高階位址位元,且可包括額外資訊,諸如ASID位元、安全性位元、例外狀況層級位元及其類似者。
如所展示,表格301包括快取標籤陣列105及資料陣列106之實例值。資料陣列106儲存用於快取記憶體102中之每一項目的一資料線302。如先前所描述,快取標籤陣列105包括索引值204及快取標籤205。快取標籤陣列105中之索引值204對應於索引值207(其對應於 TCC 104中之給定TCC項目202),而每一對應快取標籤205儲存一記憶體標籤之低階位元。因此,如所展示,表格301中之多個項目可儲存相同索引值204。有利地,TCC 104儲存記憶體標籤之高階位元之全位元型樣之單一複本,從而縮減儲存於快取標籤陣列105中之冗餘資訊(即,不同索引值204,而非記憶體標籤之較冗長的高階位元)的量。因此,橫越TCC 104及快取標籤陣列105而儲存記憶體標籤,其中高階位元儲存於TCC 104中,且低階位元儲存於快取標籤陣列105中。從概念上講,TCC 104中之TCC項目202之標籤部分可替換快取標籤陣列105之索引值204以產生完整記憶體標籤。舉例而言,在表格301之第一列中,索引204之位元「00」將由TCC項目202之標籤位元「01…0100」替換,標籤位元「01…0100」對應於TCC 104中之「00」之索引值207。
在一個實例態樣中,圖3所描繪之組態可運用表格I中所描繪之實例組織來替換假想指令快取記憶體:
因此,如表格1所展示,假想指令快取記憶體需要26,624個位元之儲存附加項以用於標籤儲存,總快取儲存為32KB(或32,768個位元組或262,144個位元)。此實例組態中所需要之指令快取標籤將為{PC[48:13],ASID}。
然而,此等位元之子集(諸如{PC[48:28],ASID})傾向於展示真實 工作負載之很少變化性。藉由針對此實例指令快取記憶體建立四項目TCC 104,每一TCC項目202將儲存21個PC[48:28]位元及16個ASID位元,總計為37個位元。為TCC 104所需要之儲存的總量將因此為4個項目乘以37個位元,或為148個位元。TCC項目202可由TCC 104中之每一各別TCC項目202之位置(或位址)隱含地編製索引(例如,在四項目TCC 104中,位置0、1、2及3分別對應於二進位索引值00、01、10及11)。同時,快取標籤陣列105之索引204將儲存兩位元索引值,而快取標籤205將儲存標籤位元PC[27:13]或15個位元,總計為17個位元。橫越指令快取記憶體之512個線,快取標籤陣列105中之總儲存將為512個項目乘以17個位元,總計為8,704個位元。橫越TCC 104及快取標籤陣列105所需要之總儲存將為8,852個位元(148+8,704),其顯著地小於表格I所描述之指令快取記憶體所需要的26,624個位元。
圖4為根據一個態樣的說明用以提供快取標籤壓縮之方法400的流程圖。方法400始於步驟410,其中快取記憶體邏輯103可接收長度為N個位元之記憶體位址。可接收記憶體位址以作為用以判定儲存於記憶體位址處之資料是否位於快取記憶體102中的請求之部分。快取記憶體邏輯103可接著並行地探查TCC 104及快取標籤陣列105。更具體言之,在步驟415處,快取記憶體邏輯103可使用在步驟410處接收之記憶體位址之較低M位元而對快取標籤陣列105執行CAM搜尋。若快取標籤陣列105中之項目儲存匹配於記憶體位址之較低M位元之值,則在快取標籤陣列105中存在命中,且方法繼續進行至步驟460。另外,快取標籤陣列105可傳回記憶體位址之較低M位元及儲存於匹配項目中之索引值。若在快取標籤陣列105中不存在儲存匹配於記憶體位址之較低M位元之值的項目,則在快取標籤陣列105中存在失敗,且方法繼續進行至步驟480。
在步驟420處,快取記憶體邏輯103可使用經請求記憶體位址之 高階位元(M+1至N)來探查TCC 104。若TCC 104中之項目儲存匹配於經請求記憶體位址之高階位元之值,則方法繼續進行至步驟460。在TCC 104中之命中的情況下,TCC 104可傳回TCC 104中之項目之索引值,其匹配於記憶體位址之高階位元。若在TCC 104中存在失敗,則方法繼續進行至步驟430,其中快取記憶體邏輯103可判定可用項目是否存在於TCC 104中。若項目為不可用的,則方法繼續進行至步驟440,其中快取記憶體邏輯103可收回TCC 104中之項目且使快取標籤陣列105中之任何對應項目失效。快取記憶體邏輯103可使用任何合適收回策略,諸如收回最近最少使用的項目,或收回TCC 104中與快取標籤陣列105中之最少項目相關聯的項目。快取記憶體邏輯103可以任何可行方式來使快取標籤陣列105中之項目失效,諸如藉由快速失效或逐線失效。在參考圖5更詳細地所描述之步驟450處,快取記憶體邏輯103可在TCC 104中建立新項目。通常,快取記憶體邏輯103可將記憶體位址分割成較低位元集合0:M及較高位元集合M+1:N。快取記憶體邏輯103可接著將較低位元集合儲存於快取標籤陣列105中,且將較高位元集合儲存於TCC 104中。
在步驟460處,快取記憶體邏輯103可比較由TCC 104及快取標籤陣列105傳回之索引值。快取記憶體邏輯103可進一步比較由快取標籤陣列105傳回之低階位元與經請求記憶體位址之低階位元。若兩個比較皆引起匹配,則方法繼續進行至步驟470,其中快取記憶體邏輯可傳回快取命中之指示。若在步驟460處執行之比較中之一者(或兩者)未引起匹配,則方法繼續進行至步驟480,其中快取記憶體邏輯103傳回快取失敗之指示。
圖5為根據一個態樣的說明對應於步驟450之用以在標籤壓縮快取記憶體104中建立新項目之方法500的流程圖。如所展示,方法500始於步驟510,其中處理器101可自較高層級記憶體(諸如較高層級快 取記憶體或主記憶體)擷取與在步驟410處提供之記憶體位址相關聯的資料。在步驟520處,快取記憶體邏輯103可將記憶體位址之高階位元(諸如位元M+1:N)儲存於TCC 104之第一項目中。在步驟530處,快取記憶體邏輯103可將TCC 104之第一項目之索引值及記憶體位址之低階位元(諸如位元0:M)儲存至標籤陣列105之第一項目中。在步驟540處,快取記憶體邏輯103可將在步驟510處擷取之資料儲存至資料陣列106中對應於標籤陣列105之第一項目的項目。
圖6為根據一個態樣的說明整合經組態以提供快取標籤壓縮之處理器101之計算器件601的方塊圖。圖1至圖5所描繪之所有裝置及方法可包括於計算器件601中或由計算器件601執行。計算器件601亦可經由網路630而連接至其他計算器件。一般而言,網路630可為電信網路及/或廣域網路(WAN)。在一特定態樣中,網路630為網際網路。通常,計算器件601可為包括經組態以實施快取標籤壓縮之處理器的任何器件,包括但不限於桌上型電腦、膝上型電腦、平板電腦及智慧型電話。
計算器件601通常包括經由匯流排620而連接至記憶體608、網路介面器件618、儲存體609、輸入器件622及輸出器件624之處理器101。計算器件601通常受到作業系統(未圖示)控制。可使用支援本文中所揭示之功能的任何作業系統。處理器101被包括為表示單一CPU、多個CPU、具有多個處理核心之單一CPU,及其類似者。網路介面器件618可為允許計算器件601經由網路630而與其他計算器件通信的任何類型之網路通信器件。
儲存體609可為持續性儲存器件。儘管儲存體609被展示為單一單元,但儲存體609可為固定及/或抽取式儲存器件之組合,諸如固定光碟機、固態磁碟機、SAN儲存體、NAS儲存體、抽取式記憶體卡或光學儲存體。記憶體608及儲存體609可為跨越多個主要及次要儲存器 件之一個虛擬位址空間之部分。
輸入器件622可為用於將輸入提供至計算器件601之任何器件。舉例而言,可使用鍵盤及/或滑鼠。輸出器件624可為用於將輸出提供至計算器件601之使用者的任何器件。舉例而言,輸出器件624可為任何習知顯示螢幕或揚聲器集合。儘管與輸入器件622分離地展示輸出器件624,但可組合輸出器件624及輸入器件622。舉例而言,可使用具有整合式觸控螢幕之顯示螢幕。
有利地,本文中所揭示之態樣縮減儲存記憶體標籤值所需要之空間的量。藉由將記憶體標籤之高階位元之冗餘值儲存於較小標籤壓縮快取記憶體中,可使用較小標籤陣列結構以儲存記憶體標籤之低階位元。藉此可允許使用較小整體矽晶粒來產生此類結構,此藉由允許將其他硬體結構更靠近地置放在一起而降低製造成本、縮減洩漏電流且改良電路計時。另外或替代地,可將所節省之空間用於其他微架構結構上。
已描述許多態樣。然而,對此等態樣之各種修改係可能的,且亦可將本文中所呈現之原理應用於其他態樣。可將此類方法之各種任務實施為可由諸如微處理器、嵌入式控制器或IP核心之邏輯元件之一或多個陣列執行的指令集合。
上文所描述之方法之各種操作可由能夠執行該等操作之任何合適構件執行,諸如處理器、韌體、特殊應用積體電路(ASIC)、閘邏輯/暫存器、記憶體控制器或快取記憶體控制器。通常,諸圖中所說明之任何操作可由能夠執行該等操作之對應功能構件執行。
前文所揭示之器件及功能性可經設計及組態至儲存於電腦可讀媒體上之電腦檔案(例如,RTL、GDSII、GERBER等等)中。可將一些或所有此類檔案提供至基於此類檔案來製造器件之製造處置者。所得產品包括半導體晶圓,其接著被切割成半導體晶粒且被封裝成半導體 晶片。可將一些或所有此類檔案提供至使用設計資料以製造本文中所描述之器件來組態製造設備的製造處置者。由電腦檔案形成之所得產品包括半導體晶圓,其接著被切割成半導體晶粒(例如,處理器101)且被封裝,且可進一步整合成包括但不限於以下各者之產品:行動電話、智慧型電話、膝上型電腦、迷你筆記型電腦、平板電腦、輕量級筆記型電腦、桌上型電腦、數位視訊記錄器、機上盒,及供使用積體電路之任何其他器件。
在一個態樣中,電腦檔案形成包括上文所描述且諸圖中所展示之電路的設計結構,其呈實體設計佈局、示意圖、硬體描述語言(例如,Verilog、VHDL等等)之形式。舉例而言,設計結構可為如上文所描述且諸圖中所展示之電路之正文檔案或圖形表示。設計程序較佳地將下文所描述之電路合成(或轉譯)為接線對照表,其中接線對照表為(例如)電線、電晶體、邏輯閘、控制電路、I/O、模型等等之清單,其描述至積體電路設計中及記錄於至少一個機器可讀媒體上之其他元件及電路的連接。舉例而言,媒體可為諸如CD、緊密快閃記憶體、其他快閃記憶體或硬碟機之儲存媒體。在另一態樣中,本文中所描述之硬體、電路系統及方法可經組態至電腦檔案中,該等電腦檔案在由處理器執行時模擬上文所描述且諸圖中所展示之電路之功能。此等電腦檔案可用於電路系統模擬工具、示意性編輯器或其他軟體應用程式中。
亦可將本文中所揭示之態樣之實施方案有形地體現(例如,在如本文中所列出之一或多個電腦可讀儲存媒體之有形電腦可讀特徵中)為可由包括邏輯元件陣列之機器(例如,處理器、微處理器、微控制器或其他有限狀態機)執行之一或多個指令集合。術語「電腦可讀媒體」可包括可儲存或傳送資訊之任何媒體,包括揮發性、非揮發性、抽取式及非抽取式儲存媒體。電腦可讀媒體之實例包括電子電路、半 導體記憶體器件、ROM、快閃記憶體、可抹除ROM(EROM)、軟碟或其他磁性儲存體、CD-ROM/DVD或其他光學儲存體、硬碟或可用以儲存所要資訊之任何其他媒體、光纖媒體、射頻(RF)鏈路,或可用以攜載所要資訊且可被存取之任何其他媒體。電腦資料信號可包括可經由諸如電子網路通道、光纖、空氣、電磁、RF鏈路等等之傳輸媒體而傳播的任何信號。可經由諸如網際網路或企業內部網路之電腦網路來下載程式碼片段。在任何狀況下,不應將本發明之範疇認作受到此類態樣限制。
提供所揭示態樣之先前描述以使得熟習此項技術者能夠製作或使用所揭示態樣。在不脫離本發明之範疇的情況下,對此等態樣之各種修改對於熟習此項技術者而言將易於顯而易見,且本文中所定義之原理可應用於其他態樣。因此,本發明並不意欲限於本文中所展示之態樣,而應符合與如由以下申請專利範圍所定義之原理及新穎特徵相一致的最廣泛可能範疇。
103‧‧‧快取記憶體邏輯
104‧‧‧標籤壓縮快取記憶體(TCC)
105‧‧‧快取標籤陣列
201‧‧‧記憶體位址
202‧‧‧標籤壓縮快取記憶體(TCC)項目
204‧‧‧標籤壓縮快取記憶體(TCC)索引值
205‧‧‧快取標籤
206‧‧‧標籤壓縮快取記憶體(TCC)項目
207‧‧‧標籤壓縮快取記憶體(TCC)索引值
208‧‧‧標籤壓縮快取記憶體(TCC)索引值
209‧‧‧快取標籤
210‧‧‧比較器
211‧‧‧比較器
212‧‧‧「及」(AND)邏輯
213‧‧‧分割器

Claims (25)

  1. 一種快取記憶體,其包含:一標籤壓縮結構,其儲存複數個標籤壓縮項目,其中該複數個標籤壓縮項目中之每一者含有一記憶體標籤之一各別高階位元集合且係由一各別索引值識別;及一標籤陣列,其儲存複數個標籤陣列項目,其中該複數個標籤陣列項目中之每一者含有該等記憶體標籤中之一者之一各別低階位元集合及對應於該標籤壓縮結構之該等索引值中之一者的一索引值,其中每一記憶體標籤包含儲存於一資料陣列中之一資料元素之一各別記憶體位址之至少一部分。
  2. 如請求項1之快取記憶體,其進一步包含經組態以藉由以下操作而針對一輸入記憶體位址傳回該標籤陣列中之一命中之一指示的邏輯:在判定來自該標籤壓縮結構之一第一標籤壓縮項目中的該記憶體標籤之該高階位元集合匹配於該輸入記憶體位址之一高階位元集合後就傳回對應於該第一標籤壓縮項目之該索引值;在判定該輸入記憶體位址之該低階位元集合匹配於一第一標籤陣列項目中之該記憶體標籤之該低階位元集合後就傳回該索引值及儲存於該第一標籤陣列項目中之該記憶體標籤之該低階位元集合;判定該第一標籤壓縮項目之該經傳回索引值匹配於該第一標籤陣列項目之該經傳回索引值;及判定該輸入記憶體位址之一低階位元集合匹配於該記憶體標籤之該經傳回低階位元集合。
  3. 如請求項1之快取記憶體,其中該標籤壓縮結構中之該複數個標 籤壓縮項目中之每一者經組態以儲存一各別高階位元集合,其中該複數個標籤陣列項目中之每一者經組態以儲存一各別記憶體標籤之一低階位元集合及對應於該複數個標籤壓縮項目中之一者的一索引值,該快取記憶體進一步包含經組態以在判定以下各者中之至少一者後就針對一輸入記憶體位址傳回該標籤陣列中之一失敗之一指示的邏輯:該輸入記憶體位址之一高階位元集合不匹配於該複數個標籤壓縮項目中之該等高階位元集合中之任一者;該輸入記憶體位址之一低階位元集合不匹配於儲存於該複數個標籤陣列項目中之該等低階位元集合中之任一者;及自儲存匹配於該輸入記憶體位址之該等高階位元之一高階位元集合之一標籤陣列項目傳回的一索引值不匹配於儲存匹配於該輸入記憶體位址之該等低階位元之一低階位元集合之一標籤壓縮項目的一索引值。
  4. 如請求項3之快取記憶體,其進一步包含經組態以回應於傳回該標籤陣列中之該失敗之該指示而進行以下操作的邏輯:擷取儲存於一記憶體階層之一下一層級處之一資料;將該資料儲存於該資料陣列之一第一項目中;將該輸入記憶體位址之一高階位元集合儲存於該標籤壓縮結構中之一第二標籤壓縮項目中;及儲存以下各者:(i)該輸入記憶體位址之一低階位元集合,及(ii)該標籤陣列之一第二標籤陣列項目中對應於該第二標籤壓縮項目之一索引值,其中該第二標籤陣列項目對應於該資料陣列之該第一項目。
  5. 如請求項1之快取記憶體,其中該標籤壓縮結構中之該等項目經進一步組態以儲存以下各者中之一或多者:(i)一程序之一位址 空間識別符(ASID),(ii)一安全性位元集合,及(iii)一例外狀況層級位元集合。
  6. 如請求項1之快取記憶體,其中一第一標籤陣列項目及一第二標籤陣列項目各自指定對應於一第一標籤壓縮項目之一索引值,其中該第二標籤陣列項目之一低階位元集合不匹配於該第一標籤陣列項目之一低階位元集合。
  7. 如請求項1之快取記憶體,其中該標籤壓縮結構包含一完全關聯內容可定址記憶體,其中該標籤陣列包含以下各者中之至少一者之一部分:(i)一資料快取記憶體,(ii)一轉譯後援緩衝器,(iii)一線填充緩衝器,及(iv)一指令快取記憶體。
  8. 如請求項1之快取記憶體,其中該快取記憶體安置於一積體電路中。
  9. 一種方法,其包含:在一標籤壓縮結構中之複數個標籤壓縮項目中之一第一標籤壓縮項目中儲存一第一記憶體標籤之一高階位元集合,其中該複數個標籤壓縮項目中之每一者係由一各別索引值識別;及在一標籤陣列中之複數個標籤陣列項目中之一第一標籤陣列項目中儲存該第一記憶體標籤之一低階位元集合及用於該第一標籤陣列項目之一索引值,其中該第一標籤陣列項目之該索引值對應於該標籤壓縮結構中之該第一標籤壓縮項目之該索引值,其中該第一記憶體標籤包含儲存於一資料陣列中之一資料元素之一記憶體位址之至少一部分。
  10. 如請求項9之方法,其進一步包含藉由以下操作而針對一輸入記憶體位址傳回該標籤陣列中之一命中之一指示:在判定來自該標籤壓縮結構之一第一標籤壓縮項目中的該記憶體標籤之該高階位元集合匹配於該輸入記憶體位址之一高階 位元集合後就傳回對應於該第一標籤壓縮項目之該索引值;在判定該輸入記憶體位址之該低階位元集合匹配於該第一標籤陣列項目中之該記憶體標籤之該低階位元集合後就傳回該索引值及儲存於該第一標籤陣列項目中之該記憶體標籤之該低階位元集合;判定該第一標籤壓縮項目之該經傳回索引值匹配於該第一標籤陣列項目之該經傳回索引值;及判定該輸入記憶體位址之一低階位元集合匹配於該記憶體標籤之該經傳回低階位元集合。
  11. 如請求項9之方法,其中該標籤壓縮結構中之該複數個標籤壓縮項目中之每一者經組態以儲存一各別高階位元集合,其中該複數個標籤陣列項目中之每一者經組態以儲存一各別記憶體標籤之一低階位元集合及對應於該複數個標籤壓縮項目中之一者的一索引值,該方法進一步包含在判定以下各者中之至少一者後就針對一輸入記憶體位址傳回該標籤陣列中之一失敗之一指示:該輸入記憶體位址之一高階位元集合不匹配於該複數個標籤壓縮項目中之該等高階位元集合中之任一者;該輸入記憶體位址之一低階位元集合不匹配於儲存於該複數個標籤陣列項目中之該等低階位元集合中之任一者;及自儲存匹配於該輸入記憶體位址之該等高階位元之一高階位元集合之一標籤陣列項目傳回的一索引值不匹配於儲存匹配於該輸入記憶體位址之該等低階位元之一低階位元集合之一標籤壓縮項目的一索引值。
  12. 如請求項11之方法,其進一步包含:回應於傳回該標籤陣列中之該失敗之該指示而進行以下操 作:擷取儲存於一記憶體階層之一下一層級處之一資料;將該資料儲存於該資料陣列之一第一項目中;將該輸入記憶體位址之一高階位元集合儲存於該標籤壓縮結構中之一第二標籤壓縮項目中;及儲存以下各者:(i)該輸入記憶體位址之一低階位元集合,及(ii)該標籤陣列之一第二標籤陣列項目中對應於該第二標籤壓縮項目之一索引值,其中該第二標籤陣列項目對應於該資料陣列之該第一項目。
  13. 如請求項9之方法,其中該標籤壓縮結構中之該等項目經進一步組態以儲存以下各者中之一或多者:(i)一程序之一位址空間識別符(ASID),(ii)一安全性位元集合,及(iii)一例外狀況層級位元集合。
  14. 如請求項9之方法,其中一第二標籤陣列項目指定對應於該第一標籤壓縮項目之一索引值,其中該第二標籤陣列項目之一低階位元集合不匹配於該第一標籤陣列項目之該低階位元集合。
  15. 如請求項9之方法,其中該標籤壓縮結構包含一完全關聯內容可定址記憶體,其中該標籤陣列包含以下各者中之至少一者之一部分:(i)一資料快取記憶體,(ii)一轉譯後援緩衝器,(iii)一線填充緩衝器,及(iv)一指令快取記憶體。
  16. 一種非暫時性電腦可讀媒體,其儲存指令,該等指令在由一處理器執行時致使該處理器執行一操作,該操作包含:在一標籤壓縮結構中之複數個標籤壓縮項目中之一第一標籤壓縮項目中儲存一第一記憶體標籤之一高階位元集合,其中該複數個標籤壓縮項目中之每一者係由一各別索引值識別;及在一標籤陣列中之複數個標籤陣列項目中之一第一標籤陣列 項目中儲存該第一記憶體標籤之一低階位元集合及用於該第一標籤陣列項目之一索引值,其中該第一標籤陣列項目之該索引值對應於該標籤壓縮結構中之該第一標籤壓縮項目之該索引值,其中該第一記憶體標籤包含儲存於一資料陣列中之一資料元素之一記憶體位址之至少一部分。
  17. 如請求項16之非暫時性電腦可讀媒體,該操作進一步包含藉由以下操作而針對一輸入記憶體位址傳回該標籤陣列中之一命中之一指示:在判定來自該標籤壓縮結構之一第一標籤壓縮項目中的該記憶體標籤之該高階位元集合匹配於該輸入記憶體位址之一高階位元集合後就傳回對應於該第一標籤壓縮項目之該索引值;在判定該輸入記憶體位址之該低階位元集合匹配於一第一標籤陣列項目中之該記憶體標籤之該低階位元集合後就傳回該索引值及儲存於該第一標籤陣列項目中之該記憶體標籤之該低階位元集合;判定該第一標籤壓縮項目之該經傳回索引值匹配於該第一標籤陣列項目之該經傳回索引值;及判定該輸入記憶體位址之一低階位元集合匹配於該記憶體標籤之該經傳回低階位元集合。
  18. 如請求項16之非暫時性電腦可讀媒體,其中該標籤壓縮結構中之該複數個標籤壓縮項目中之每一者經組態以儲存一各別高階位元集合,其中該複數個標籤陣列項目中之每一者經組態以儲存一各別記憶體標籤之一低階位元集合及對應於該複數個標籤壓縮項目中之一者的一索引值,該操作進一步包含在判定以下各者中之至少一者後就針對一輸入記憶體位址傳回該標籤陣列中之一失敗之一指示: 該輸入記憶體位址之一高階位元集合不匹配於該複數個標籤壓縮項目中之該等高階位元集合中之任一者;該輸入記憶體位址之一低階位元集合不匹配於儲存於該複數個標籤陣列項目中之該等低階位元集合中之任一者;及自儲存匹配於該輸入記憶體位址之該等高階位元之一高階位元集合之一標籤陣列項目傳回的一索引值不匹配於儲存匹配於該輸入記憶體位址之該等低階位元之一低階位元集合之一標籤壓縮項目的一索引值。
  19. 如請求項18之非暫時性電腦可讀媒體,該操作進一步包含:回應於傳回該標籤陣列中之該失敗之該指示而進行以下操作:擷取儲存於一記憶體階層之一下一層級處之一資料;將該資料儲存於該資料陣列之一第一項目中;將該輸入記憶體位址之一高階位元集合儲存於該標籤壓縮結構中之一第二標籤壓縮項目中;及儲存以下各者:(i)該輸入記憶體位址之一低階位元集合,及(ii)該標籤陣列之一第二標籤陣列項目中對應於該第二標籤壓縮項目之一索引值,其中該第二標籤陣列項目對應於該資料陣列之該第一項目。
  20. 如請求項16之非暫時性電腦可讀媒體,其中該標籤壓縮結構中之該等項目經進一步組態以儲存以下各者中之一或多者:(i)一程序之一位址空間識別符(ASID),(ii)一安全性位元集合,及(iii)一例外狀況層級位元集合。
  21. 如請求項16之非暫時性電腦可讀媒體,其中一第二標籤壓縮項目指定用於該標籤陣列項目之該索引值,其中儲存於該第二標籤壓縮項目中之一第二記憶體標籤的所儲存之一低階位元集合 不匹配於儲存於該第一標籤壓縮項目中之該第一記憶體標籤之該低階位元集合。
  22. 一種裝置,其包含:用於在複數個標籤壓縮項目中之一第一標籤壓縮項目中儲存一第一記憶體標籤之一高階位元集合的構件,其中該複數個標籤壓縮項目中之每一者係由一各別索引值識別;及用於在複數個標籤陣列項目中之一第一標籤陣列項目中儲存該第一記憶體標籤之一低階位元集合及用於該第一標籤陣列項目之一索引值的構件,其中該第一標籤陣列項目之該索引值對應於該第一標籤壓縮項目之該索引值,其中該第一記憶體標籤包含一資料元素之一記憶體位址之至少一部分。
  23. 如請求項22之裝置,其進一步包含用以針對一輸入記憶體位址傳回一命中之一指示的構件,包含:用於在判定一第一標籤壓縮項目中之該記憶體標籤之該高階位元集合匹配於該輸入記憶體位址之一高階位元集合後就傳回對應於該第一標籤壓縮項目之該索引值的構件;用於在判定該輸入記憶體位址之該低階位元集合匹配於該第一標籤陣列項目中之該記憶體標籤之該低階位元集合後就傳回該索引值及儲存於該第一標籤陣列項目中之該記憶體標籤之該低階位元集合的構件;用於判定該第一標籤壓縮項目之該經傳回索引值匹配於該第一標籤陣列項目之該經傳回索引值的構件;及用於判定該輸入記憶體位址之一低階位元集合匹配於該記憶體標籤之該經傳回低階位元集合的構件。
  24. 如請求項22之裝置,其中該複數個標籤壓縮項目中之每一者經組態以儲存一各別高階位元集合,其中該複數個標籤陣列項目 中之每一者經組態以儲存一各別記憶體標籤之一低階位元集合及對應於該複數個標籤壓縮項目中之一者的一索引值,該裝置進一步包含用以在判定以下各者中之至少一者後就針對一輸入記憶體位址傳回該標籤陣列中之一失敗之一指示的構件:該輸入記憶體位址之一高階位元集合不匹配於該複數個標籤壓縮項目中之該等高階位元集合中之任一者;該輸入記憶體位址之一低階位元集合不匹配於儲存於該複數個標籤陣列項目中之該等低階位元集合中之任一者;及自儲存匹配於該輸入記憶體位址之該等高階位元之一高階位元集合之一標籤陣列項目傳回的一索引值不匹配於儲存匹配於該輸入記憶體位址之該等低階位元之一低階位元集合之一標籤壓縮項目的一索引值。
  25. 如請求項24之裝置,其進一步包含:回應於傳回該標籤陣列中之該失敗之該指示:用於擷取儲存於一記憶體階層之一下一層級處之一資料的構件;用於將該資料儲存於一資料陣列之一第一項目中的構件;用於將該輸入記憶體位址之一高階位元集合儲存於一第二標籤壓縮項目中的構件;及用於儲存以下各者的構件:(i)該輸入記憶體位址之一低階位元集合,及(ii)一第二標籤陣列項目中對應於該第二標籤壓縮項目之一索引值,其中該第二標籤陣列項目對應於該資料陣列之該第一項目。
TW105112179A 2015-05-20 2016-04-19 快取記憶體、用於操作快取記憶體之方法及其之非暫時性電腦可讀媒體 TWI698745B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/716,947 US9514061B1 (en) 2015-05-20 2015-05-20 Method and apparatus for cache tag compression
US14/716,947 2015-05-20

Publications (2)

Publication Number Publication Date
TW201706853A true TW201706853A (zh) 2017-02-16
TWI698745B TWI698745B (zh) 2020-07-11

Family

ID=55755783

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105112179A TWI698745B (zh) 2015-05-20 2016-04-19 快取記憶體、用於操作快取記憶體之方法及其之非暫時性電腦可讀媒體

Country Status (10)

Country Link
US (1) US9514061B1 (zh)
EP (1) EP3298493B1 (zh)
JP (1) JP6724043B2 (zh)
KR (1) KR102138697B1 (zh)
CN (1) CN107735773B (zh)
AU (1) AU2016265131B2 (zh)
ES (1) ES2787002T3 (zh)
HU (1) HUE049200T2 (zh)
TW (1) TWI698745B (zh)
WO (1) WO2016186747A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9996471B2 (en) * 2016-06-28 2018-06-12 Arm Limited Cache with compressed data and tag
US10387305B2 (en) * 2016-12-23 2019-08-20 Intel Corporation Techniques for compression memory coloring
US10061698B2 (en) * 2017-01-31 2018-08-28 Qualcomm Incorporated Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compression memory system when stalled write operations occur
US10254961B2 (en) 2017-02-21 2019-04-09 International Business Machines Corporation Dynamic load based memory tag management
US10229061B2 (en) 2017-07-14 2019-03-12 International Business Machines Corporation Method and arrangement for saving cache power
US10831669B2 (en) 2018-12-03 2020-11-10 International Business Machines Corporation Systems, methods and computer program products using multi-tag storage for efficient data compression in caches
US11720495B2 (en) * 2019-05-24 2023-08-08 Texas Instmments Incorporated Multi-level cache security
US10983915B2 (en) * 2019-08-19 2021-04-20 Advanced Micro Devices, Inc. Flexible dictionary sharing for compressed caches
US11436144B2 (en) * 2020-04-10 2022-09-06 Micron Technology, Inc. Cache memory addressing
KR20230158257A (ko) * 2022-05-11 2023-11-20 서울시립대학교 산학협력단 명령어를 처리하는 방법 및 이를 위한 프로세서 모듈

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9226660D0 (en) * 1992-12-22 1993-02-17 Assersohn Roy J B Database system
US6122709A (en) * 1997-12-19 2000-09-19 Sun Microsystems, Inc. Cache with reduced tag information storage
US6795897B2 (en) 2002-05-15 2004-09-21 International Business Machines Corporation Selective memory controller access path for directory caching
US7162669B2 (en) 2003-06-10 2007-01-09 Hewlett-Packard Development Company, L.P. Apparatus and method for compressing redundancy information for embedded memories, including cache memories, of integrated circuits
US7512750B2 (en) 2003-12-31 2009-03-31 Intel Corporation Processor and memory controller capable of use in computing system that employs compressed cache lines' worth of information
US7277988B2 (en) * 2004-10-29 2007-10-02 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
US8806101B2 (en) * 2008-12-30 2014-08-12 Intel Corporation Metaphysical address space for holding lossy metadata in hardware
US8627041B2 (en) 2009-10-09 2014-01-07 Nvidia Corporation Efficient line and page organization for compression status bit caching
JP2012003314A (ja) * 2010-06-14 2012-01-05 Renesas Electronics Corp キャッシュメモリ装置
US8838897B2 (en) * 2011-06-29 2014-09-16 New Jersey Institute Of Technology Replicating tag entries for reliability enhancement in cache tag arrays
US9112537B2 (en) * 2011-12-22 2015-08-18 Intel Corporation Content-aware caches for reliability
US9348762B2 (en) * 2012-12-19 2016-05-24 Nvidia Corporation Technique for accessing content-addressable memory
US9396122B2 (en) * 2013-04-19 2016-07-19 Apple Inc. Cache allocation scheme optimized for browsing applications
TWI514145B (zh) * 2013-10-21 2015-12-21 Univ Nat Sun Yat Sen 可儲存除錯資料的處理器、其快取及控制方法

Also Published As

Publication number Publication date
HUE049200T2 (hu) 2020-09-28
US20160342530A1 (en) 2016-11-24
JP2018519570A (ja) 2018-07-19
EP3298493B1 (en) 2020-02-12
AU2016265131B2 (en) 2020-09-10
EP3298493A1 (en) 2018-03-28
KR20180008507A (ko) 2018-01-24
ES2787002T3 (es) 2020-10-14
US9514061B1 (en) 2016-12-06
TWI698745B (zh) 2020-07-11
KR102138697B1 (ko) 2020-07-28
WO2016186747A1 (en) 2016-11-24
AU2016265131A1 (en) 2017-11-02
JP6724043B2 (ja) 2020-07-15
BR112017024623A2 (pt) 2018-07-31
CN107735773B (zh) 2021-02-05
CN107735773A (zh) 2018-02-23

Similar Documents

Publication Publication Date Title
TW201706853A (zh) 用於快取標籤壓縮之方法及裝置
US11132300B2 (en) Memory hierarchy using page-based compression
TWI622880B (zh) 比較及取代動態位址轉譯表項之電腦程式產品、電腦系統及方法
US10671535B2 (en) Stride prefetching across memory pages
KR20180099819A (ko) 시스템 성능 향상을 위한 적응적 값 범위 프로파일링
TWI582592B (zh) 用於存取快取記憶體的方法與裝置
TWI670649B (zh) 用於在異動執行期間之受保護儲存器事件處置之電腦程式產品、電腦系統及電腦實施方法
US9477605B2 (en) Memory hierarchy using row-based compression
US11403222B2 (en) Cache structure using a logical directory
CN108027713A (zh) 用于固态驱动器控制器的重复数据删除
US10740248B2 (en) Methods and systems for predicting virtual address
TW201832083A (zh) 載入邏輯及移位受防護指令
WO2019022875A1 (en) ACCURATE INVALIDATION OF VIRTUALLY LABELED COVERS
JP2016110636A (ja) メモリ管理
CN115964309A (zh) 预取
US20140115257A1 (en) Prefetching using branch information from an instruction cache
US11500638B1 (en) Hardware compression and decompression engine
US11436101B2 (en) Rebuild directory/block allocation map from embedded data block information in file system disk
US20230153021A1 (en) Memory management unit, method for memory management, and information processing apparatus
WO2020237409A1 (en) Technologies for memory-efficient key-value lookup
BR112017024623B1 (pt) Método e equipamento para compressão de indicador de cache
JP2004038553A (ja) データ処理装置