TW201351145A - 指令快取的減少耗能 - Google Patents
指令快取的減少耗能 Download PDFInfo
- Publication number
- TW201351145A TW201351145A TW102100538A TW102100538A TW201351145A TW 201351145 A TW201351145 A TW 201351145A TW 102100538 A TW102100538 A TW 102100538A TW 102100538 A TW102100538 A TW 102100538A TW 201351145 A TW201351145 A TW 201351145A
- Authority
- TW
- Taiwan
- Prior art keywords
- cache
- array
- cache line
- data
- recently used
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本發明係關於用於以減少功耗而未大幅減少微處理器之性能的方式控制微處理器之指令快取的新穎系統和方法。
微處理器通常採用指令快取以加速指令之取回和執行。指令快取通常在記憶體之較高層級與處理器之間充當緩衝記憶體。當處理器提取指令時,為了讓處理器直接存取,故指令被複製到指令快取中。若相同的指令在一組程式指令中經常使用,則由於較高層級記憶體之較慢的存取減少,故在該指令快取中儲存這些指令使得處理量(throughput)增加。
舉例來說,集相聯(set-associative)指令快取可包括資料陣列以及標籤陣列。資料陣列和標籤陣列可結合,以形成在指令快取內以不同的方式組織的快取線或字。當用於指令提取的位址產生時,該指令快取將該位址之標籤欄與目前儲存於該標籤陣列之對應快取線集中的標籤值相較。若存在標籤匹配,且該標籤係有效(亦即快取命中(hit)),則從該資料陣列中對應於該所需位址的該位置處提取資料。由於資料係從該指令快取直接取回,故速度因不需要存取外部記憶體而有所改善。
在指令快取之一個範例實作中,當產生用於指令提取的位址時,對應於潛在匹配該位址的一組快取線的標籤陣列和資料陣列之部分係被並行啟用(activated in parallel)。換言之,對應於該組快取線在該標籤陣列中的所有方式被啟用,且對應於該組快取線在該資料陣列中的所有位址亦被啟用。當標籤陣列和資料陣列被啟用時,保存對應於該指令位址之資料的資料陣列位置係被提取,且在其他經啟用之位置中的資料係被丟棄。另
一方面,在串行(serial)方法中,所有標籤位置皆係被啟用以在一時脈週期中識別匹配資料位置,且隨後在該資料陣列中的單一位置係啟用,以在隨後的時脈週期中提取該資料。而藉由並行啟用對應於該組快取線的標籤陣列和資料陣列兩者之所有位置,相對於串行方法,指令提取通常可更快速執行。
然而,用於執行指令提取的這些並行和串行方法有各種限制。舉例來說,在該並行方法中,由於對應於該組快取線在該資料陣列中的所有資料位置皆係啟用以只從一個位置提取資料,故功耗(power consumption)係增加以提升處理速度。換言之,並行方法係較快,但亦較耗能。另一方面,在串行方法中,功耗係藉由在該資料陣列中僅啟用一個位置而減少。然而,標籤陣列和資料陣列存取必須在多個時脈週期內連續產生,以識別在該資料陣列中的哪個位置必須啟用以提取該所需資料。換言之,該串行方法犧牲處理速度以減少功耗。
本文提出用於以減少功耗而未大幅減少微處理器之性能的方式控制微處理器之指令快取的新穎系統和方法。更特定而言,本發明所討論內容係關於最佳化指令快取之控制,藉由從在指令提取中所指定的該指令快取中的一組方式,判定最近最常使用的(most-recently-used,MRU)方式(或位址)。有關該MRU方式的該資訊係用於有效率地存取指令快取,其藉由在該快取線集中僅啟用該MRU方式而不啟用該等其他方式,以取回以該MRU方式儲存的資料。如此,若有以該MRU方式的快取命中,則在花費在該指令快取中查閱該資料的耗能,可相對於在快取線集中的所有方式皆被啟用以從單一方式取回資料的作法而降低。再者,該MRU方式可與快取線集之該等標籤一起並行查閱,以提供相對於串行方法較快的性能。
另一方面,在該快取線集中該MRU方式中之外的方式若有命中,則由於僅限於啟用MRU方式,而不可使用該資料,且在該快取線集中的另一方式係隨後被啟用以取回該資料。該快取查閱之重播(replay)一般會降低性能,因為其顯著地增加該指令快取命中延遲(latency)。然而,此類
型事件之發生頻率係相當少,而相較於該並行查閱方法時,該整體節能(power saving)較性能(performance)的微量減少更重要。當此類型事件發生時,性能係類似於該串行查閱方法。
再者,在該快取線集中若沒有任何方式之命中(亦即快取未中(miss)),則相對於其他作法,並沒有該指令快取之行為之改變,因為資料需要從較高層級快取取回。換言之,當產生快取未中時,沒有相對於該指令快取控制方法的性能損失,而在快取線集中的所有方式皆係啟用以取回該資料,且該功耗係仍然低於並行查閱方法。
100‧‧‧微處理器
110‧‧‧記憶體階層
112‧‧‧L1處理器快取
114‧‧‧L2處理器快取
116‧‧‧L3處理器快取
118‧‧‧主要記憶體
120‧‧‧次要儲存裝置
122‧‧‧第三儲存裝置
124‧‧‧記憶體控制器
126‧‧‧提取邏輯
128‧‧‧解碼邏輯
130‧‧‧執行邏輯
132‧‧‧記憶體邏輯
134‧‧‧寫回邏輯
200‧‧‧處理管線
202‧‧‧指令提取(IF)階段
204‧‧‧指令解碼(ID)階段
206‧‧‧執行(EX)階段
208‧‧‧記憶體(MEM)階段
210‧‧‧寫回(WB)階段
212‧‧‧程式計數器
214‧‧‧指令記憶體
216‧‧‧指令快取
218‧‧‧最近最少使用的(LRU)陣列
220‧‧‧標籤陣列
222‧‧‧資料陣列
224‧‧‧快取控制器
226‧‧‧較高層級記憶體儲存裝置;較高層級記憶體儲存裝置介面;介面;主要記憶體
306‧‧‧最近最少使用的(LRU)位元
308‧‧‧標籤位元
310‧‧‧資料位元
400‧‧‧LRU位元之編碼;虛擬-LRU演算法;編碼
500‧‧‧MRU位元之範例編碼;編碼
600‧‧‧用於控制指令快取的方法;方法
圖1顯示根據本發明所揭示內容的運算裝置之微處理器之具體實施例。
圖2顯示根據本發明所揭示內容的電腦處理管線之具體實施例。
圖3示意性顯示指令快取之具體實施例之一部分。
圖4顯示在指令快取之快取線集中,識別最近最少使用的方式的最近最少使用的位元之編碼。
圖5顯示在指令快取之快取線集中,識別最近最常使用的方式的最近最少使用的位元之編碼。
圖6顯示用於控制指令快取的方法之具體實施例。
圖7顯示根據本發明所揭示內容的範例指令快取操作之時間軸。
圖1示意性描繪可與文中所說明的該等系統和方法有關而採用的微處理器100。該微處理器100不同地(variously)包括和/或與記憶體階層110通訊,其包括一L1處理器快取112、一L2處理器快取114、一L3處理器快取116、主要記憶體118(例如一個或多個DRAM(動態隨機存取記憶體)晶片)、次要儲存裝置120(例如磁性和/或光學儲存單元)和/或第三
儲存裝置122(例如磁帶電場)。應可理解,這些記憶體/儲存組件係以存取時間和容量之漸增順序列出,然而有可能的例外情形。記憶體控制器124處理該協定(protocol),且提供主要記憶體118所需求並通常安排記憶體存取的信號介面。記憶體控制器可實行於處理器晶片(processor die)上或分開的晶片(die)上。應可理解,上述所提供的該記憶體階層係非限制性,且可使用其他記憶體階層而不悖離所揭示內容之範疇。該所描繪的記憶體階層係示例性例示,且應理解可採用其他階層而不悖離本發明所揭示內容之精神。
該微處理器100包括提取邏輯126、解碼邏輯128、執行邏輯130、記憶體邏輯132以及寫回邏輯134。提取邏輯126為了在指令快取216(在圖2中所顯示)中的儲存裝置而從該記憶體階層110(通常從由L2-L3快取和主要記憶體支援的該專用L1指令快取)取回指令。該指令快取216可根據文中所說明的系統和方法控制,以減少該微處理器100執行指令提取操作時的功耗。
解碼邏輯128解碼經提取之指令,舉例來說藉由剖析操作碼(opcodes)、操作數(operand)和定址模式。在被剖析時,該等指令係隨後由執行邏輯130執行。對於產生結果的操作(例如相對於在該執行程式中執行分支至另一位置的那些操作),寫回邏輯134將該結果寫入適當位置,諸如處理器暫存器。在載入/儲存架構中,記憶體邏輯132執行載入和儲存操作,諸如從主要記憶體將操作數載入處理器暫存器。
應可理解,該等上述五個階段係稍微特定並包括於一般精簡指令集運算(reduced instruction set computing,RISC)實作中。更概括而言微處理器可包括提取、解碼以及執行邏輯,記憶體和寫回功能係由該執行邏輯執行。本發明所揭示內容係同樣適用於這些和其他微處理器實作。
在該等所說明的範例中,指令可一次一個被提取並執行,可能需求多個時脈週期。在此段時間內,該資料路徑之顯著部分可能係未使用。除了或並非單一指令提取之外,可使用預提取方法以改良性能並避免與讀取和儲存操作相關聯的等待時間瓶頸(亦即指令之該讀取和將這樣的指令載入處理器暫存器和/或執行佇列)。再者,可在任何給定時間提取多個指令以改良性能。
為了達成較高性能,該等示例性微處理器可管線化(pipelined)以利用指令層級並行運作(parallelism)並且更有效利用該資料路徑,因此同時有在不同執行階段的多個指令。圖2顯示根據本發明所說明內容的處理管線(pipeline)200之具體實施例。
舉例來說,該處理管線200包括五個階段:
.指令提取(Instruction fetch,IF)202
.指令解碼(Instruction decode,ID)204
.執行(Execute,EX)206
.記憶體(Memory,MEM)208
.寫回(Writeback,WB)210
在該IF階段202中,指令係為了在該處理管線200中執行而提取。再者,在該ID階段204中,該先前經提取之指令係解碼,且暫存器來源操作數係從包括一暫存器檔案的解碼邏輯讀取。在該EX階段206中,執行邏輯用於運算結果(例如為了「位址(ADD)」指令)、為了記憶體操作(例如「載入(LOAD)」或「儲存(STORE)」)計算該有效位址或計算分支目標位址(例如為了「分支(branch)」指令)任一者,若分支被占用則該處理管線200應提取其下一個指令。在該MEM階段208中,載入和儲存指令存取該資料記憶體(或快取)。在該WB階段210期間,有暫存器目的地操作數(例如「位址(ADD)」或「儲存(STORE)」)的任何指令將其結果寫入暫存器檔案(未顯示)。因此,一個指令可能在另一指令正在讀取或寫入資料時,將結果寫回內部暫存器,立即依循的該指令正在執行操作,且依循其的該指令正取回暫存器操作數,同時仍有另一指令正被提取。
進一步談到該IF階段202,本文所討論內容關注在指令提取操作期間控制指令快取216。該IF階段202包括一程式計數器212,其追蹤即將在該處理管線200之指令序列中執行的指令之記憶體位址。該程式計數器212將即將執行的指令之位址發送至指令記憶體214。該指令記憶體214包括一指令快取216以及一介面,該介面係其至較高層級記憶體儲存裝置226(例如較高層級快取和其他記憶體子系統)。應注意該指令記憶體係以簡化形式進行描述,且應可瞭解該指令記憶體可同時或另外包括各種其他
類型之記憶體。
指令快取216在較高層級記憶體儲存裝置介面226與處理管線200之該等階段之間充當緩衝記憶體。當指令被提取時,位於由該等指令所要求的該程式計數器212位置所參考的該位置的該資料係複製至該指令快取216中,以經由該處理管線200發送。若相同的指令資料在一組程式指令中係經常使用,則由於透過該介面226從較高層級記憶體儲存裝置取回之指令減少,故在該指令快取216中儲存這些指令使得處理量增加。若用於指令的資料未儲存於該指令快取216中,則較高層級記憶體儲存裝置係透過介面226存取以取回資料。
圖3顯示該指令快取216之一部分,以用於指令快取216之說明。指令快取216包括一記憶體空間,其係分成複數個快取線302。在一個特定範例中,每個快取線皆係64個位元組。該等複數個快取線在邏輯上係分成複數個快取線集304。在一個特定範例中,該指令快取包括512個快取線集,其中四個(亦即集N-N+3)係在圖3中顯示。應可瞭解該指令快取可包括任何適合數量之快取線集,該等快取線之每個皆可能係任何適合的尺寸,且在每個快取線中的許多位元組皆可能係不同而不悖離本發明所揭示內容之範疇。
在快取線集中的快取線的數目,可定義在主要記憶體中的任何特定位置皆可映射至在該指令快取中的位置的數目。在該所例示範例中,該指令快取包括一四個方式的集相聯(set associative)陣列,其中每個快取線集之快取線皆係相聯且包括四個方式,其中指令資料可以被儲存。應可瞭解該指令快取可在快取線集(例如兩個方式、八個方式、充分相聯等)中包括任何適合數量之方式或資料位置而不悖離本發明所揭示內容之範疇。
該指令快取216之每個快取線皆係分成提供不同資訊的不同位元欄。具體而言該指令快取216之每個快取線皆包括最近最少使用的(least-recently-used,LRU)位元306、標籤位元308以及資料位元310。該等LRU位元306指示在快取線集中最近最少使用的(或存取的)方式。該等標籤位元308識別經指定之方式,其中對應於該位址的指令被儲存。該等資
料位元310儲存該指令資料。在該所例示的範例中,每個快取線之該等資料位元310皆係分成低半部分和高半部分,因為若有命中時,該指令快取之每個指令提取讀取皆取回資料之快取線之一半。應可瞭解任何適合的資料量皆可在指令提取讀取期間被取回而不悖離本發明所揭示內容之範疇。
每個快取線之該等不同位元欄皆係組織成由快取控制器224控制的不同陣列。具體而言,指令快取216包括LRU陣列218、標籤陣列220以及資料陣列222。該LRU陣列218包括該等LRU位元306,其用於在該指令快取216中的每個快取線集。標籤陣列220包括該等標籤位元308,其用於在該指令快取216中的每個快取線。資料陣列222包括該等資料位元310,其用於在該指令快取216中的每個快取線。
在指令提取操作中,該快取控制器224係在該LRU陣列218、標籤陣列220和/或該資料陣列222之任一者中查閱(又名存取或啟用)任何經指定之位置,以取回該等對應位元。應可瞭解該指令快取係以簡化形式提供,且在某些實作中,該指令快取可包括有其他資料的替代或其他陣列結構而不悖離本發明所揭示內容之範疇。
在高層級,當該程式計數器212引發指令提取要求時的指令提取操作期間,該快取控制器224判定一快取線集,而在其中指令可依從該程式計數器212接收的該位址而被儲存。在一個範例中,該快取控制器224啟用該標籤陣列220之所有四個方式和該資料陣列222之所有該等方式,以讓該快取線集判定在該快取線集中是否有命中或未中。應注意在某些作法中,該快取控制器224並行啟用該標籤陣列220和該資料陣列222,以同時判定是否有命中且若有命中則取回該指令資料。為了快取命中,該快取控制器224從該指令快取216輸出該指令資料至在該處理管線200之該ID階段204中的暫存器。在快取命中後隨後的時脈週期中,該快取控制器224從在該指令快取中的序列項目提取指令,直到管線停止(stall)產生,或者直到有起因於分支或事件的重新導向(redirection)。
對於快取未中,指令係從主要記憶體226取回,且放置於指令快取216之快取線中。快取控制器224採用該經指定之快取線集之該等LRU位元306,以為了逐出(eviction)而選擇一方式,因此從主要記憶體226
取回的指令可以被儲存於指令快取216中。舉例來說,由該等LRU位元306指示的該最近最少使用的方式可為了逐出而被選擇,因此該經要求之指令可以被儲存於其位置中。
圖4顯示LRU位元之編碼400之範例,其係由該快取控制器224使用以在快取線集中識別最近最少使用的方式。該編碼或虛擬-LRU演算法400採用3-位元向量,以追蹤在快取線集中的四個方式之哪一個係最近最少使用。舉例來說,該快取控制器224在讀取以下列方式命中該等方式之一的該指令快取216時,更新在該編碼400中的該等LRU位元。該L[0]位元和L[1]或L[2]位元任一者係遠離最近最常使用的方式而被指出(pointed)。L[1]或L[2]位元之另一者係保持不變。據此,若方式0係該快取線集之最近最少使用的方式,則該L[0]位元係設定為0、該L[1]位元係設定為0,且該L[2]位元無關緊要或不列入考慮。若方式1係該快取線集之最近最少使用的方式,則該L[0]位元係設定為0、該L[1]位元係設定為1,且該L[2]位元無關緊要。若方式2係該快取線集之最近最少使用的方式,則該L[0]位元係設定為1、該L[1]位元無關緊要,且該L[2]位元係設定為0。若方式3係該快取線集之最近最少使用的方式,則該L[0]位元係設定為1、該L[1]位元無關緊要,且該L[2]位元係設定為1。對於每個快取命中,快取控制器224皆更新該等LRU位元,以更新該最近最少使用的方式。又,對於每個快取未中,快取控制器224皆讀取該等LRU位元,以判定為了逐出選擇哪個方式。
再者,該等LRU位元係被採用在該指令快取216之操作期間減少功耗的控制策略中。該控制策略體認到處理管線200在整個操作中經常重複執行某些指令。由於這樣的重複,故相對於在快取線集中的其他方式,經要求之指令有較高可能性係以最近最常使用的方式儲存。據此,該快取控制器224係依該等LRU位元306,判定在經指定之快取線集中最近最常使用的(MRU)方式。當提取序列項目時,該快取控制器224使用該最近最常使用的方式以有效存取該指令快取216。舉例來說,當序列提取下一個指令時,該快取控制器224係啟用在該資料陣列222中對應於該最近最常使用的方式的位置,而非啟用在該快取集中的所有方式以取回指令。
如此,相對於啟用在集中的所有方式以從單一方式取回資料的其他方法,所消耗以在該指令快取216中查閱資料的耗能係減少。
圖5顯示用於依該快取線集之該等LRU位元的快取線集的MRU位元之範例編碼500。編碼500係由該快取控制器224使用以在快取線集中追蹤該最近最常使用的方式。尤其是,MRU編碼500係藉由翻轉(flipping)該LRU編碼400之該等位元而決定。換言之,該等LRU位元306可用於為了經指定之快取線集而同時判定最近最常使用的方式和最近最少使用的方式。根據MRU編碼500,若方式0係該集之最近最常使用的方式,則該L[0]位元係設定為1、該L[1]位元係設定為1,且該L[2]位元無關緊要或不列入考慮。若方式1係該快取線集之最近最常使用的方式,則該L[0]位元係設定為1、該L[1]位元係設定為0,且該L[2]位元無關緊要。若方式2係該快取線集之最近最常使用的方式,則該L[0]位元係設定為0、該L[1]位元無關緊要,且該L[2]位元係設定為1。若方式3係該快取線集之最近最常使用的方式,則該L[0]位元係設定為0、該L[1]位元無關緊要,且該L[2]位元係設定為0。該MRU編碼500提供快取控制器224如何可在快取線集中判定最近最常使用的方式之一個範例。應可瞭解該快取控制器可以任何適合的方式在快取線集中判定最近最常使用的方式而不悖離本發明所揭示內容之範疇。
在一個範例實作中,該快取控制器224係在時脈週期中該LRU陣列218之單一讀取操作中為了四個連續快取線集而查閱LRU位元。換言之,該等LRU位元說明四個快取線集之群組。對應於該讀取操作的快取線集之數量係依該指令快取之實作方式,且更特定而言,LRU位元之數量係用於說明在快取線集中的該等方式和快取線之尺寸。應可瞭解用於快取線集之任何適合數量的LRU位元,皆可從單一讀取操作回傳而不悖離本發明所揭示內容之範疇。
在一個範例中,快取控制器224係為了指令提取操作而與初期標籤和資料查閱(例如在起因於分支操作的重新導向後所執行)一起並行查閱該等LRU位元。應注意該LRU存取所需要完成的的時脈週期之數量依實作而變化。假設該初期查閱並非為了在該相關LRU條目中的最後集,
且沒有後續的重新導向,則在該初期存取後的兩個時脈週期,該等LRU位元對於該快取控制器224係可使用。該快取控制器224係依該等LRU位元,判定即將開始的該指令查閱(或存取)之該最近最常使用的方式和隨後的存取。為了這些存取,該快取控制器224係查閱在該資料陣列222中以該最近最常使用的方式儲存的資料,以提取該指令。對應地,該快取控制器224係不啟用在該資料陣列222之該經指定之快取線集中的任何其他方式。換言之,僅該資料陣列222之該最近最常使用的方式係啟用以提取該指令。
再者,該快取控制器224係在該標籤陣列220中查閱用於在該經指定之快取線集中的所有方式的標籤,以判定在該經指定之快取線集之任何方式中是否有命中。在一個範例中,該快取控制器224係並行執行該標籤查閱和該最近最常使用的方式資料陣列查閱。在該最近最常使用的方式中若有命中,則來自該經啟用之資料陣列的該資料係可使用,且該快取控制器224係輸出以該最近最常使用的方式儲存的該資料。在最近最常使用的方式之外的方式中若有命中,則由於有限度啟用只有最近最常使用的方式之該資料陣列222,故該資料係不可使用。隨後,快取控制器224係啟用該標籤陣列220和該資料陣列222之該等對應部分,以從在該經指定之快取線集中的所有方式中提取所有標籤和資料,藉此從在該標籤中命中的該方式提取該指令。由於快取查閱之重播有效增加該快取命中延遲,故一般而言會降低性能。若在該經指定之快取線集中的任何方式中皆沒有命中,則該指令係從主要記憶體226或另一較高層級快取取回。
在此控制策略中,該快取控制器使用衍生自該等LRU位元的資訊,以預測指令所儲存的位置並僅存取該位置以取回該資料以減少功耗。尤其是,該控制策略設定(dictates)在快取線集中的最近最常使用的方式係該指令即將被儲存的最可能位置。如此,該快取控制器僅啟用該資料陣列之該最近最常使用的方式,以取回該資料。若該預測係正確,則相對於啟用在快取線集中的所有方式,該功耗係減少,且沒有性能損失。若該預測係不正確,由於該資料陣列之有限度啟用,則要求額外的存取以取回資料,。
應注意在某些情況下,該等LRU位元係在該等LRU位元另
外將為了根據快取命中而更新該LRU之目的而被查閱之前被查閱。在此範例中,該LRU陣列係在該第一序列存取至新的LRU資料項目之前的兩個時脈週期查閱,而在該新的LRU資料項目中該等LRU位元將被使用。更應注意在此範例中,資料在藉由存取該等陣列之一而執行的查閱兩個時脈週期後可使用。應可瞭解取回資料的處理速度或時脈週期之數量可有所不同而不悖離本發明所揭示內容之範疇。
圖6顯示用於控制指令快取的方法600之具體實施例。在一個範例中,在圖2中所顯示的快取控制器224係執行方法600以控制指令快取216之操作,包括存取LRU陣列218、標籤陣列220以及資料陣列222。在步驟602,方法600包括在該最近最少使用的位元陣列中,查閱用於在該指令快取中的複數個快取線集之每個的最近最少使用的位元。查閱該等LRU位元包括啟用對應於複數個快取線集的該LRU陣列之該部分。在一個範例中,該等複數個快取線集代表在該指令快取中的序列項目。在序列項目中的經指定之快取線集可由指令提取操作所提供的位址而被特定。在一個特定範例中,查閱該等最近最少使用的位元包括為了在該指令快取中的每一四個序列快取線集而查閱最近最少使用的位元。用於序列快取線集的該等LRU位元可在從該等快取線集之一提取指令以預測在該快取線集中該指令所儲存的方式之前被查閱。
在步驟604,方法600包括依用於該經指定之快取線的該等最近最少使用的位元,判定在該等複數個快取線集中經指定之快取線集中的最近最常使用的方式。在一個範例中,該經指定之快取線集係目前正被提取的指令而儲存於其中的快取線集。在一個範例中,該MRU方式可使用3-位元向量以追蹤哪一個方式係最近最常使用而判定,如上述參照編碼500和圖5所討論。
在步驟606,方法600在一個範例中包括在標籤陣列中查閱用於在該經指定之快取線集中的所有方式的標籤。在該快取線集中的所有標籤皆係啟用,以判定在該經指定之快取線集中的該等方式之任一者中是否有快取命中。
另外,在另一範例中,方法600包括在標籤陣列中查閱在該
經指定之快取線集中的最近最常使用的方式。若有命中,則沒有性能損失。然而,若有未中,則快取控制器不知道在該指令快取中的該資料是否係以不同方式存在於該指令快取或根本不在該指令快取中。因此,在未中之後,可執行包括所有方式的該標籤陣列之第二查閱,以判定該資料是否係以另一方式,或者是否需要從較高層級記憶體儲存裝置取回。
在步驟608,方法600包括在該資料陣列中查閱在該經指定之快取線集中以最近最常使用的方式儲存的資料。更特定而言,在該資料陣列中查閱在該經指定之快取線集中以最近最常使用的方式儲存的資料,包括在該經指定之快取線集中啟用該資料陣列之最近最常使用的方式,而不啟用該資料陣列之任何其他方式。藉由在該經指定之快取線集中不啟用該資料陣列之該等其他方式,相對於所有方式皆係啟用以從單一方式取回資料的方法,功耗在指令提取操作期間可減少。
在一個範例中,標籤查閱和資料查閱係並行執行。藉由並行執行這些操作,相對於串行方法該指令提取操作可更快速執行以改良處理性能。
應注意在最近最少使用的位元陣列中查閱用於每一該等複數個快取線集的最近最少使用的位元的步驟,係在標籤陣列中查閱用於在該經指定之快取線集中的所有方式的該等標籤的步驟以及在資料陣列中查閱以最近最常使用的方式儲存的資料的步驟之前執行。藉由在該等標籤和資料查閱之前查閱該等LRU位元,可以做到該指令係儲存於哪裡之預測(亦即該MRU方式),因此該資料陣列可有效啟用以減少功耗。
在一個範例中,在最近最少使用的位元陣列中查閱用於每一該等複數個快取線集的最近最少使用的位元的步驟,係在標籤陣列中查閱用於在該經指定之快取線集中的所有方式的該等標籤的步驟,以及在該資料陣列中查閱以最近最常使用的方式儲存的該資料的步驟的兩個時脈週期之前執行。應可瞭解該等LRU位元可在該等標籤和資料查閱之前任何適合數量之時脈週期被查閱而不悖離本發明所揭示內容之範疇。
在步驟610,方法600包括判定在該MRU方式中是否有快取命中。該判定可根據為了該經指定之快取線集之一個或多個方式而被查
閱的該等標籤。若判定在該MRU方式中有快取命中,則方法600進行至步驟612。否則,方法600進行至步驟614。
在步驟612,在MRU方式中有快取命中,且方法600包括從該資料陣列輸出以最近最常使用的方式儲存的資料。該資料表示由該指令提取操作要求的指令。在一個範例中,該資料係輸出至處理管線之指令解碼階段。
在步驟614,該方法600包括在該經指定之快取線集中判定在除了該MRU方式之外的任何其他方式中是否有快取命中。若在該經指定之快取線集中判定在除了該MRU方式之外的任何其他方式中有快取命中,則該方法600進行至步驟618和620。否則,該方法600進行至步驟616。
在步驟616,方法600包括從較高層級快取或其他記憶體儲存裝置取回指令資料。在一個範例中,該資料係經由介面226從該較高層級快取或其他記憶體儲存裝置取回。
在步驟618,方法600包括在標籤陣列中查閱用於在該經指定之快取線集中的所有方式的標籤。查閱該等標籤以判定在快取線集中是否仍然有快取命中。
在步驟620,方法600包括在資料陣列中查閱以該經指定之快取線集之所有方式儲存的資料。
在一個範例中,在重播期間的標籤查閱和資料查閱係並行執行。藉由並行執行這些操作,該指令提取操作可更快速執行以改良處理性能。
在步驟622,方法600包括從在該經指定之快取線集中的該命中方式輸出該資料。
圖7顯示根據本發明所揭示內容的範例指令快取操作之時間軸(timeline)。該時間軸描繪出在指令提取操作期間的標籤、資料及LRU陣列存取之範例管線。在此範例中,為了簡化和清楚表示之目的,每回最近最常使用的方式係啟用時皆假設有快取命中。又,若有命中則該快取之每個指令提取讀取皆取回資料之快取線之一半。在該時間軸中,時間從左
至右前進,且隨後的指令快取存取從頂端至底部前進,然而某些存取可並行執行。
在該第一時脈週期中,起因於分支的重新導向已產生導致該指令快取之指令提取。在該第二時脈週期中,用於該經指定之快取線集(集2)的所有標籤皆係在該標籤陣列中查閱,用於該快取線集(集2)的所有低資料(low data)方式皆係在該資料陣列中查閱,且用於四個連續快取線集之群組的該等LRU位元係在包括該現有快取線集的該LRU陣列中查閱。應注意雖然查閱用於四個連續快取線集之群組的LRU位元,但該現有指令正被提取的該經指定之快取線集係不必一定是在該群組中的第一快取線集。在該所例示的範例中,該經指定之快取線集係在該群組中的第三快取線集(亦即出自集0-3之集2)。該等標籤、資料及LRU查閱係在第二時脈週期中並行執行。當起因於分支的重新導向導致來自該指令快取的提取時,該等資料和標籤陣列之所有方式皆係啟用,以判定在該快取線集中的該等方式之任一者中是否有命中,且若有快取命中則回傳正確資料。該LRU陣列係啟用以判定在該等接下來四個序列快取線集中的該等MRU方式。
在此範例中,資料係在執行查閱之後兩個時脈週期可使用。當來自第二時脈週期的該等資料存取正被處理時,執行該下一個指令提取。具體而言,在第三時脈週期中,所有標籤和該等高資料(high data)方式皆係為了集2而查閱。所有標籤和高資料陣列位置皆被查閱,因為來自該LRU陣列之該初期查閱的該MRU資料係尚未可使用以執行該MRU方式之已標定(targeted)的查閱。
在第四時脈週期中,來自在第二時脈週期中所執行的該等存取的該指令資料和該LRU資料係可使用。由於該等LRU位元係可使用,故即將開始的該指令提取之該MRU方式,以及用於使用相同LRU資料的後續存取的該等MRU方式(亦即在四個序列快取線集之該群組中的該等其他集)可以被判定。具體而言,僅該資料陣列之該MRU低資料方式為了該經指定之快取線集(集3)而啟用,且該等其他方式不啟用。又,該標籤陣列之所有方式仍然皆係啟用以判定在集3之任何方式中是否有快取命中。藉由為了集3僅存取該MRU低資料方式,當有快取命中時,該資料陣列存取
之該功耗可減少而沒有性能損失。再者,用於該等接下來四個快取線集(亦即集4-7)的該等LRU位元係在第四時脈週期中查閱,以為了序列指令提取之MRU方式之已標定的查閱而準備。
在第五時脈週期中,該下一個指令提取係藉由在該標籤陣列中為了集3查閱所有標籤,以及在該資料陣列中為了集3僅查閱該MRU高資料方式而執行。由於該MRU高資料方式係因來自在第四時脈週期中使其可使用的該等LRU位元的集3而已知,故該MRU高資料方式之已標定的查閱係執行以在該指令提取期間減少功耗。再者,來自在第三時脈週期中所執行的該指令提取的該指令資料係可使用於進一步沿著該管線的階段的傳遞。
在第六時脈週期中,該下一個序列指令提取係藉由在該標籤陣列中為了集4查閱所有標籤,以及在該資料陣列中為了集4僅查閱該MRU低資料方式而執行。由於該MRU低資料方式係因來自在第四時脈週期中使其可使用的該等LRU位元的集4而已知,故該MRU低資料方式之已標定的查閱係執行以在該指令提取期間減少功耗。再者,來自在該第四時脈週期中所執行的該指令提取的該指令資料係可使用於進一步沿著該管線的階段的傳遞。再者,重新導向在該第六時脈週期中產生至另一位址。
在第七時脈週期中,用於該經指定之快取線集(集8)的所有標籤皆在該標籤陣列中查閱,用於該快取線集(集8)的所有低資料方式皆在該資料陣列中查閱,且用於四個連續快取線集(集8-11)之群組的該等LRU位元係在包括該現有快取線集的該LRU陣列中查閱。在第七時脈週期中所查閱的該資料在該第九時脈週期中係可使用。指令提取可序列持續直到起因於分支的重新導向產生。
在圖7中所突顯在該等第四、第五及第六時脈週期中所執行的該等查閱,係該等MRU資料方式之已標定的存取。相對於所有資料方式係存取以從單一資料方式提取指令的指令快取控制策略,由這些存取所消耗的該功率係減少。由於在該指令快取之操作期間指令提取之該高度重複性本質,故在指令提取期間該等資料陣列存取之該功耗主導該總指令快取功耗。藉由根據該於文中所說明的減少耗能(power reduction)策略控制該指
令快取,相對於在指令提取期間總是啟用指令快取之該資料陣列之所有方式的實作,全部CPU(中央處理單元)核心之該功耗可減少。
應可理解於文中所說明的該等配置和/或方法在本質上皆係示例性,且這些特定具體實施例或範例不欲被視為限制性,因為無數變化例皆係可能。於文中所說明的該等特定程序或方法可表示一個或多個任何數量之處理策略。如此,所例示的各種動作可以所例示的該序列、其他序列、並行執行,或者在某些情況下省略。同樣地,該等上述所說明的程序之該順序可改變。
本發明所揭示內容之該主旨包括該等各種程序、系統以及配置之所有新穎和不明顯的組合和子組合,以及於文中所揭示的其他特徵、功能、動作和/或特性,以及其任何和所有相等物。
Claims (10)
- 一種指令快取,包含:一最近最少使用的(least-recently-used)位元陣列;一標籤陣列;一資料陣列;以及一快取控制器,係進行下列:在該最近最少使用的位元陣列中,查閱用於在該指令快取中的每一複數個快取線集的最近最少使用的位元,其中用於一快取線集的最近最少使用的位元指示在該快取線集中的一最近最少使用的方式;依用於在該等複數個快取線集中一經指定之快取線集的該等最近最少使用的位元,判定該經指定之快取線集中的一最近最常使用的(most-recently-used)方式;在該標籤陣列中查閱用於在該經指定之快取線集中的一個或多個方式的標籤;在該資料陣列中查閱在該經指定之快取線集中以該最近最常使用的方式儲存的資料,以及查閱在該最近最常使用的方式中是否有一快取命中(hit);以及從該資料陣列輸出以該最近最常使用的方式儲存的該資料。
- 如申請專利範圍第1項之指令快取,其中該快取控制器係並行(in parallel)進行下列:在該標籤陣列中查閱用於在該經指定之快取線集中的一個或多個方式的該等標籤,以及在該資料陣列中查閱以該最近最常使用的方式儲存的該資料。
- 如申請專利範圍第1項之指令快取,其中該快取控制器係在在該標籤陣列中查閱用於在該經指定之快取線集中的一個或多個方式的該等標籤以及在該資料陣列中查閱以該最近最常使用的方式儲存 的該資料之前,在該最近最少使用的位元陣列中查閱用於每一該等複數個快取線集的最近最少使用的位元。
- 如申請專利範圍第1項之指令快取,其中該快取控制器係:啟用在該資料陣列之該經指定之快取線集中的該最近最常使用的方式;以及不啟用在該資料陣列之該經指定之快取線集中的任何其他方式,以查閱在該經指定之快取線集中以該最近最常使用的方式儲存的資料。
- 如申請專利範圍第1項之指令快取,其中該快取控制器係在該標籤陣列中查閱用於在該經指定之快取線集中的所有方式的該等標籤。
- 如申請專利範圍第5項之指令快取,其中該快取控制器係:在該最近最常使用的方式中若有一快取未中(miss),則在該標籤陣列中查閱用於在該經指定之快取線集中的所有方式的標籤;在該資料陣列中查閱在該經指定之快取線集中以所有方式儲存的資料;以及在該經指定之快取線集中的該等方式之任一者中若有一快取命中,則從該資料陣列以該命中方式輸出該資料。
- 一種用於控制包括一最近最少使用的位元陣列、一標籤陣列以及一資料陣列的一指令快取的方法,包含:在該最近最少使用的位元陣列中,查閱用於在該指令快取中的每一複數個快取線集的最近最少使用的位元,其中用於一快取線集的最近最少使用的位元指示在該快取線集中的一最近最少使用的方式;依用於在該等複數個快取線集中一經指定之快取線的該最近最少使用的位元,判定在該經指定之快取線集中的一最近最常使用的方式; 在該標籤陣列中查閱用於在該經指定之快取線集中的一個或多個方式的標籤;在該資料陣列中查閱在該經指定之快取線集中以該最近最常使用的方式儲存的資料;以及在該最近最常使用的方式中若有一快取命中,則從該資料陣列輸出以該最近最常使用的方式儲存的該資料。
- 如申請專利範圍第7項之方法,其中在該標籤陣列中查閱用於在該經指定之快取線集中的一個或多個方式的該等標籤的步驟,以及在該資料陣列中查閱以該最近最常使用的方式儲存的該資料的步驟係並行進行。
- 如申請專利範圍第7項之方法,其中在該標籤陣列中查閱用於在該經指定之快取線集中的一個或多個方式的該等標籤的步驟以及在該資料陣列中查閱以該最近最常使用的方式儲存的該資料的步驟之前,執行以下步驟:在該最近最少使用的位元陣列中查閱用於每一該等複數個快取線集的最近最少使用的位元。
- 如申請專利範圍第7項之方法,其中在該資料陣列中查閱在該經指定之快取線集中以該最近最常使用的方式儲存的資料的步驟更包括:在該經指定之快取線集中啟用該資料陣列之該最近最常使用的方式,以及不啟用該資料陣列之任何其他方式。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/346,536 US9396117B2 (en) | 2012-01-09 | 2012-01-09 | Instruction cache power reduction |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201351145A true TW201351145A (zh) | 2013-12-16 |
Family
ID=48652698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102100538A TW201351145A (zh) | 2012-01-09 | 2013-01-08 | 指令快取的減少耗能 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9396117B2 (zh) |
CN (1) | CN103198026A (zh) |
DE (1) | DE102012222820A1 (zh) |
TW (1) | TW201351145A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI570561B (zh) * | 2014-06-02 | 2017-02-11 | 美光科技公司 | 記憶體設備及操作快取記憶體之方法 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9652396B2 (en) | 2013-12-27 | 2017-05-16 | Samsung Electronics Co., Ltd. | Cache element processing for energy use reduction |
US9946588B2 (en) | 2014-12-17 | 2018-04-17 | International Business Machines Corporation | Structure for reducing power consumption for memory device |
US10055810B2 (en) * | 2016-03-04 | 2018-08-21 | Samsung Electronics Co., Ltd. | Cache architecture for efficiently accessing texture data using buffers |
US10073787B2 (en) * | 2016-04-18 | 2018-09-11 | Via Alliance Semiconductor Co., Ltd. | Dynamic powering of cache memory by ways within multiple set groups based on utilization trends |
US10156887B2 (en) | 2016-09-29 | 2018-12-18 | Qualcomm Incorporated | Cache memory clock generation circuits for reducing power consumption and read errors in cache memory |
US10324850B2 (en) | 2016-11-11 | 2019-06-18 | Microsoft Technology Licensing, Llc | Serial lookup of tag ways |
EP3534265A4 (en) * | 2016-11-16 | 2019-10-30 | Huawei Technologies Co., Ltd. | MEMORY ACCESS TECHNIQUE |
US10599566B2 (en) * | 2016-11-29 | 2020-03-24 | Qualcomm Incorporated | Multi-mode cache invalidation |
US10324852B2 (en) * | 2016-12-09 | 2019-06-18 | Intel Corporation | System and method to increase availability in a multi-level memory configuration |
CN106844231A (zh) * | 2016-12-23 | 2017-06-13 | 北京北大众志微系统科技有限责任公司 | 末级高速缓存软硬件协作分区域管理系统及管理方法 |
CN106844232A (zh) * | 2016-12-23 | 2017-06-13 | 北京北大众志微系统科技有限责任公司 | 一种面向多核处理器的共享末级高速缓存访存方法和装置 |
US10565122B2 (en) | 2017-05-30 | 2020-02-18 | Microsoft Technology Licensing, Llc | Serial tag lookup with way-prediction |
US10229061B2 (en) | 2017-07-14 | 2019-03-12 | International Business Machines Corporation | Method and arrangement for saving cache power |
US12106110B2 (en) * | 2021-08-31 | 2024-10-01 | Ceremorphic, Inc. | Multiple interfaces for multiple threads of a hardware multi-thread microprocessor |
Family Cites Families (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4168541A (en) * | 1978-09-25 | 1979-09-18 | Sperry Rand Corporation | Paired least recently used block replacement system |
US4525780A (en) * | 1981-05-22 | 1985-06-25 | Data General Corporation | Data processing system having a memory using object-based information and a protection scheme for determining access rights to such information |
US4807110A (en) * | 1984-04-06 | 1989-02-21 | International Business Machines Corporation | Prefetching system for a cache having a second directory for sequentially accessed blocks |
US5125085A (en) * | 1989-09-01 | 1992-06-23 | Bull Hn Information Systems Inc. | Least recently used replacement level generating apparatus and method |
US5325503A (en) * | 1992-02-21 | 1994-06-28 | Compaq Computer Corporation | Cache memory system which snoops an operation to a first location in a cache line and does not snoop further operations to locations in the same line |
US5974508A (en) * | 1992-07-31 | 1999-10-26 | Fujitsu Limited | Cache memory system and method for automatically locking cache entries to prevent selected memory items from being replaced |
US5544342A (en) * | 1993-06-30 | 1996-08-06 | International Business Machines Corporation | System and method for prefetching information in a processing system |
US5835934A (en) * | 1993-10-12 | 1998-11-10 | Texas Instruments Incorporated | Method and apparatus of low power cache operation with a tag hit enablement |
US5623627A (en) * | 1993-12-09 | 1997-04-22 | Advanced Micro Devices, Inc. | Computer memory architecture including a replacement cache |
US5784590A (en) * | 1994-06-29 | 1998-07-21 | Exponential Technology, Inc. | Slave cache having sub-line valid bits updated by a master cache |
US5666514A (en) * | 1994-07-01 | 1997-09-09 | Board Of Trustees Of The Leland Stanford Junior University | Cache memory containing extra status bits to indicate memory regions where logging of data should occur |
US5640532A (en) | 1994-10-14 | 1997-06-17 | Compaq Computer Corporation | Microprocessor cache memory way prediction based on the way of previous memory read |
US5933860A (en) * | 1995-02-10 | 1999-08-03 | Digital Equipment Corporation | Multiprobe instruction cache with instruction-based probe hint generation and training whereby the cache bank or way to be accessed next is predicted |
US5737748A (en) * | 1995-03-15 | 1998-04-07 | Texas Instruments Incorporated | Microprocessor unit having a first level write-through cache memory and a smaller second-level write-back cache memory |
US5860127A (en) * | 1995-06-01 | 1999-01-12 | Hitachi, Ltd. | Cache memory employing dynamically controlled data array start timing and a microcomputer using the same |
US5845317A (en) * | 1995-11-17 | 1998-12-01 | Micron Technology, Inc. | Multi-way cache expansion circuit architecture |
US5809522A (en) * | 1995-12-18 | 1998-09-15 | Advanced Micro Devices, Inc. | Microprocessor system with process identification tag entries to reduce cache flushing after a context switch |
US6026485A (en) * | 1996-01-24 | 2000-02-15 | Sun Microsystems, Inc. | Instruction folding for a stack-based machine |
US5687110A (en) | 1996-02-20 | 1997-11-11 | Advanced Micro Devices, Inc. | Array having an update circuit for updating a storage location with a value stored in another storage location |
US6236674B1 (en) | 1996-02-23 | 2001-05-22 | Teletransactions, Inc. | Transceiver control with sleep mode operation |
US5978906A (en) | 1996-11-19 | 1999-11-02 | Advanced Micro Devices, Inc. | Branch selectors associated with byte ranges within an instruction cache for rapidly identifying branch predictions |
US5848428A (en) * | 1996-12-19 | 1998-12-08 | Compaq Computer Corporation | Sense amplifier decoding in a memory device to reduce power consumption |
US6282663B1 (en) | 1997-01-22 | 2001-08-28 | Intel Corporation | Method and apparatus for performing power management by suppressing the speculative execution of instructions within a pipelined microprocessor |
US6247094B1 (en) * | 1997-12-22 | 2001-06-12 | Intel Corporation | Cache memory architecture with on-chip tag array and off-chip data array |
US6601161B2 (en) | 1998-12-30 | 2003-07-29 | Intel Corporation | Method and system for branch target prediction using path information |
US6356990B1 (en) * | 2000-02-02 | 2002-03-12 | International Business Machines Corporation | Set-associative cache memory having a built-in set prediction array |
KR100373849B1 (ko) * | 2000-03-13 | 2003-02-26 | 삼성전자주식회사 | 어소시어티브 캐시 메모리 |
EP1150213B1 (en) | 2000-04-28 | 2012-01-25 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Data processing system and method |
US7487369B1 (en) * | 2000-05-01 | 2009-02-03 | Rmi Corporation | Low-power cache system and method |
JP2002196981A (ja) * | 2000-12-22 | 2002-07-12 | Fujitsu Ltd | データ処理装置 |
JP2002236616A (ja) * | 2001-02-13 | 2002-08-23 | Fujitsu Ltd | キャッシュメモリシステム |
US6886093B2 (en) | 2001-05-04 | 2005-04-26 | Ip-First, Llc | Speculative hybrid branch direction predictor |
US6718439B1 (en) * | 2001-06-01 | 2004-04-06 | Advanced Micro Devices, Inc. | Cache memory and method of operation |
US7191281B2 (en) | 2001-06-13 | 2007-03-13 | Intel Corporation | Mobile computer system having a navigation mode to optimize system performance and power management for mobile applications |
US6678792B2 (en) | 2001-06-22 | 2004-01-13 | Koninklijke Philips Electronics N.V. | Fast and accurate cache way selection |
US6948079B2 (en) | 2001-12-26 | 2005-09-20 | Intel Corporation | Method and apparatus for providing supply voltages for a processor |
JP2003242029A (ja) * | 2002-02-15 | 2003-08-29 | Hitachi Ltd | 半導体集積回路 |
US6912623B2 (en) | 2002-06-04 | 2005-06-28 | Sandbridge Technologies, Inc. | Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy |
KR100702746B1 (ko) | 2002-08-20 | 2007-04-03 | 엘지전자 주식회사 | 컴퓨터 시스템에서의 무선 랜 모듈 전원 관리방법 및 그장치 |
JP3986950B2 (ja) | 2002-11-22 | 2007-10-03 | シャープ株式会社 | Cpuおよびこれを備えた情報処理装置、cpuの制御方法 |
US20040181654A1 (en) | 2003-03-11 | 2004-09-16 | Chung-Hui Chen | Low power branch prediction target buffer |
US7177981B2 (en) * | 2003-05-09 | 2007-02-13 | Via-Cyrix, Inc. | Method and system for cache power reduction |
US7369815B2 (en) | 2003-09-19 | 2008-05-06 | Qualcomm Incorporated | Power collapse for a wireless terminal |
US7360023B2 (en) * | 2003-09-30 | 2008-04-15 | Starcore, Llc | Method and system for reducing power consumption in a cache memory |
US20050239518A1 (en) | 2004-04-21 | 2005-10-27 | D Agostino Anthony | Systems and methods that provide enhanced state machine power management |
JP3834323B2 (ja) * | 2004-04-30 | 2006-10-18 | 日本電気株式会社 | キャッシュメモリおよびキャッシュ制御方法 |
US8775740B2 (en) * | 2004-08-30 | 2014-07-08 | Texas Instruments Incorporated | System and method for high performance, power efficient store buffer forwarding |
US7475192B2 (en) * | 2005-07-12 | 2009-01-06 | International Business Machines Corporation | Cache organization for power optimized memory access |
US7536510B1 (en) * | 2005-10-03 | 2009-05-19 | Advanced Micro Devices, Inc. | Hierarchical MRU policy for data cache |
US7412570B2 (en) | 2005-11-15 | 2008-08-12 | Sun Microsystems, Inc. | Small and power-efficient cache that can provide data for background DNA devices while the processor is in a low-power state |
US7904658B2 (en) * | 2005-11-30 | 2011-03-08 | International Business Machines Corporation | Structure for power-efficient cache memory |
TW200723094A (en) | 2005-12-01 | 2007-06-16 | Ind Tech Res Inst | Dynamic branch prediction system and method |
US7644294B2 (en) | 2006-01-06 | 2010-01-05 | Advanced Micro Devices, Inc. | Dynamically self-decaying device architecture |
US7689772B2 (en) * | 2006-05-04 | 2010-03-30 | Intel Corporation | Power-performance modulation in caches using a smart least recently used scheme |
US7657708B2 (en) | 2006-08-18 | 2010-02-02 | Mips Technologies, Inc. | Methods for reducing data cache access power in a processor using way selection bits |
US7681021B2 (en) | 2006-09-28 | 2010-03-16 | Freescale Semiconductor, Inc. | Dynamic branch prediction using a wake value to enable low power mode for a predicted number of instruction fetches between a branch and a subsequent branch |
US8335122B2 (en) * | 2007-11-21 | 2012-12-18 | The Regents Of The University Of Michigan | Cache memory system for a data processing apparatus |
US8028180B2 (en) | 2008-02-20 | 2011-09-27 | International Business Machines Corporation | Method and system for power conservation in a hierarchical branch predictor |
US8458404B1 (en) * | 2008-08-14 | 2013-06-04 | Marvell International Ltd. | Programmable cache access protocol to optimize power consumption and performance |
CN105468334A (zh) | 2008-12-25 | 2016-04-06 | 世意法(北京)半导体研发有限责任公司 | 对非控制流指令减少分支检验 |
US8799628B2 (en) | 2009-08-31 | 2014-08-05 | Advanced Micro Devices, Inc. | Early branch determination |
JP2011081564A (ja) * | 2009-10-06 | 2011-04-21 | Fujitsu Ltd | 制御装置、記憶装置、演算処理装置および制御方法 |
US20110093658A1 (en) | 2009-10-19 | 2011-04-21 | Zuraski Jr Gerald D | Classifying and segregating branch targets |
US8990506B2 (en) | 2009-12-16 | 2015-03-24 | Intel Corporation | Replacing cache lines in a cache memory based at least in part on cache coherency state information |
US8352683B2 (en) * | 2010-06-24 | 2013-01-08 | Intel Corporation | Method and system to reduce the power consumption of a memory device |
US20120079303A1 (en) | 2010-09-24 | 2012-03-29 | Madduri Venkateswara R | Method and apparatus for reducing power consumption in a processor by powering down an instruction fetch unit |
US8667257B2 (en) | 2010-11-10 | 2014-03-04 | Advanced Micro Devices, Inc. | Detecting branch direction and target address pattern and supplying fetch address by replay unit instead of branch prediction unit |
-
2012
- 2012-01-09 US US13/346,536 patent/US9396117B2/en active Active
- 2012-12-11 DE DE102012222820A patent/DE102012222820A1/de not_active Ceased
-
2013
- 2013-01-08 TW TW102100538A patent/TW201351145A/zh unknown
- 2013-01-09 CN CN2013100081292A patent/CN103198026A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI570561B (zh) * | 2014-06-02 | 2017-02-11 | 美光科技公司 | 記憶體設備及操作快取記憶體之方法 |
Also Published As
Publication number | Publication date |
---|---|
DE102012222820A1 (de) | 2013-07-11 |
US20130179640A1 (en) | 2013-07-11 |
US9396117B2 (en) | 2016-07-19 |
CN103198026A (zh) | 2013-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201351145A (zh) | 指令快取的減少耗能 | |
US7406569B2 (en) | Instruction cache way prediction for jump targets | |
KR102244191B1 (ko) | 캐시 및 변환 색인 버퍼를 갖는 데이터 처리장치 | |
JP5837126B2 (ja) | 現在実行している命令セット以外の命令セットから命令をプリロードするシステム、方法およびソフトウェア | |
US7958317B2 (en) | Cache directed sequential prefetch | |
US20090006803A1 (en) | L2 Cache/Nest Address Translation | |
US7680985B2 (en) | Method and apparatus for accessing a split cache directory | |
US9131899B2 (en) | Efficient handling of misaligned loads and stores | |
US7047362B2 (en) | Cache system and method for controlling the cache system comprising direct-mapped cache and fully-associative buffer | |
CN101495962A (zh) | 用于预取不连续指令地址的方法和设备 | |
US7937530B2 (en) | Method and apparatus for accessing a cache with an effective address | |
KR20120070584A (ko) | 데이터 스트림에 대한 저장 인식 프리페치 | |
US9753855B2 (en) | High-performance instruction cache system and method | |
KR102268601B1 (ko) | 데이터 포워딩을 위한 프로세서, 그것의 동작 방법 및 그것을 포함하는 시스템 | |
US7346741B1 (en) | Memory latency of processors with configurable stride based pre-fetching technique | |
US20120131311A1 (en) | Correlation-based instruction prefetching | |
US9003123B2 (en) | Data processing apparatus and method for reducing storage requirements for temporary storage of data | |
US8195889B2 (en) | Hybrid region CAM for region prefetcher and methods thereof | |
US7761665B2 (en) | Handling of cache accesses in a data processing apparatus | |
US11500779B1 (en) | Vector prefetching for computing systems | |
JP2007272280A (ja) | データ処理装置 | |
US11567776B2 (en) | Branch density detection for prefetcher | |
US20150193348A1 (en) | High-performance data cache system and method | |
US8219756B2 (en) | Systems and methods for lookahead instruction fetching for processors utilizing tagless hit instruction caches | |
US11151054B2 (en) | Speculative address translation requests pertaining to instruction cache misses |