TWI382426B - 預測快取記憶體之存取位置的方法及系統 - Google Patents
預測快取記憶體之存取位置的方法及系統 Download PDFInfo
- Publication number
- TWI382426B TWI382426B TW096137341A TW96137341A TWI382426B TW I382426 B TWI382426 B TW I382426B TW 096137341 A TW096137341 A TW 096137341A TW 96137341 A TW96137341 A TW 96137341A TW I382426 B TWI382426 B TW I382426B
- Authority
- TW
- Taiwan
- Prior art keywords
- cache memory
- cache
- history
- location information
- hash value
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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)
Description
本發明係有關於一種快取系統,尤指一種可根據一存取位址來預測快取記憶體之存取位置的快取系統。
美國專利第6,643,739號揭露一習知快取系統100,如第1圖所示。該習知快取系統100包括有:位址110(包括有:標籤(Tag)111、索引(Index)112以及字元(Word)113等欄位)、快取記憶體120、複數個比較器130a~130n、緩衝器140a~140n、以及路預測表150。其中,該習知快取系統100的各元件的工作原理請參考美國專利第6,643,739號。然而該習知快取系統100仍存有一些缺點。例如:由於路預測表150係以位址的一部份(如,標籤欄位111)作為索引,故標籤欄位111內容相同但其他欄位內容不同的複數個位址在此快取系統中均會對應到路預測表150中的同一個索引,造成一存取位址A透過查詢路預測表150所得出之預測的路可能是另一存取位址B先前發生快取命中時所紀錄的路(way)的資訊。此外,為了加速運算執行的速度,現行的快取系統在接收到處理器所傳來的一指令位址時,便根據此指令位址預先存取下一指令可能要求的資料,所以路預測表150中所儲存的係為下一指令所存取的路的資訊,並以目前指令位址的標籤欄位作為其索引,在這種情況下,若處理器所傳來的指令C可能有兩種以上的執行結果,亦即指令C的位址會對應到複數個下一指令C'
、C"
(例如指令C係一分支指令(branch instruction),而執行結果包含有分支發生(branch taken)以及分支不發生(branch not taken)),該習知快取系統100的路預測表150並無法區分這種可能的情況。故該習知快取系統100的預測準確率不高,使得快取系統的功率消耗無法有效降低。
有鑑於此,本發明的目的之一在於提供一種可預測存取位置的快取系統及其預測方法,以解決習知技術所面臨的問題,提高預測的準確性、以及降低快取系統的功率消耗。
根據本發明之一實施例,其係提供一種快取系統。該快取系統包含有一快取記憶體,包含有複數個快取記憶體單元;一預測表,耦接於該快取記憶體,用來儲存至少一存取位址所對應存取之至少一快取記憶體單元的位置資訊;以及一雜湊模組,耦接於該預測表,用來根據至少一目標存取位址形成對應於該目標存取位址之一雜湊值,並以該雜湊值作為索引來自該預測表中存取位置資訊。
根據本發明之另一實施例,其係提供一種預測一快取記憶體中的存取位置資訊的方法,且該快取記憶體包含有複數個快取記憶體單元。該方法包含有於一預測表中儲存至少一快取記憶體單元的位置資訊,以及根據一目標存取位址形成對應於該目標存取位址之一雜湊值,並以該雜湊值作為索引來自該預測表中得到一目標位置資訊,其中,該目標位置資訊係與該目標存取位址相對應。
為了降低預測時所使用的一索引可能對應到複數個不同存取位址的碰撞(collision)情況產生,本發明係根據至少一存取位址以形成對應於該存取位址之一雜湊值,並以該雜湊值作為索引來自一預測表中存取快取記憶體的位置資訊。
第2圖係本發明之快取系統200之一實施例的示意圖。快取系統200包含有一快取記憶體210、一預測表220、一雜湊模組230、一位址240、一比較電路250以及一輸出電路260。在一實施例中,快取記憶體210係為一集合關聯式快取記憶體(set associative cache),包含有複數個記憶體集合(例如是2、3、…、n路記憶體單元)。該記憶體單元可由SRAM記憶體來實施。當快取系統200接收到一位址240時,雜湊模組230便對部分的位址240(例如位址的標籤欄位)進行雜湊運算以形成對應於位址240之一雜湊值,並以該雜湊值作為索引來讀取預測表220,並根據預測表220中與該雜湊值相同處所指示之位置資訊來產生一致能(enabling)訊號270以開啟該位置資訊所指示之快取記憶體210中的特定一路,再由對應於該路的一比較電路250判斷該路中是否儲存有位址240所需之資料。若有,則輸出該路中所儲存之資料;若無,則再將其他幾路(在第2圖中係為3路)予以開啟並與位址240進行標籤的比較,若其他幾路的比對結果皆為不符合,則代表快取失誤(cache miss),此時,必須藉由存取其他記憶體來獲得所需要的資料。當然亦可將快取記憶體210的所有路都開啟,但以致能訊號270控制快取記憶體210的輸出電路260(例如:多工器、選擇器、緩衝器)來僅輸出該位置資訊所指示的特定一路的資料。
請注意,在建立預測表220時同樣需先對部分的位址,例如位址的標籤欄位進行雜湊運算,再以得出之雜湊值作為索引於預測表220中儲存快取記憶體單元的位置資訊。在一實施例中,預測表220係儲存於一多埠(multi-port)記憶體,此預測表220係可同時進行讀取(Read)及寫入(Write)的操作;在另一實施例中,預測表220係儲存於一單埠(single-port)記憶體,當快取失誤發生而從另一儲存裝置來取得所需之資料並存放於快取記憶體210時,對預測表220進行更新。一實施例中,預測表220的替換策略(replacement policy)可為最少使用(Least Recently Used,LRU)演算法以及最常使用(Most Recently Used,MRU)演算法,由於這些演算法係為熟知此項技術領域之人士所熟習,故在此省略。本發明並不限定更新預測表220時應採用的演算法。
請參考第3圖,其係第2圖之快取系統200的一實施例的示意圖。在本實施例中,雜湊模組230係依據快取記憶體210的存取歷史以及位址240來產生作為索引的雜湊值,因此,雜湊模組230係包含有一快取存取歷史暫存器232,用來儲存存取快取記憶體210之一存取歷史記錄,以及一雜湊運算單元234,耦接於快取存取歷史暫存器232以及預測表220,用來根據位址240以及該存取歷史記錄形成雜湊值。
一實施例中,快取存取歷史暫存器232係為一移位暫存器(shift register)。一較佳實施例中,該移位暫存器的長度係與作為索引的部分位址(如標籤欄位)的長度相同。作為索引的部分位址的長度並不以上述實施例為限,於其他之實施例中,亦可以位址中的標籤欄位之部分或位址中的標籤欄位再加上至少一位元來加以實施。而該部分位址的長度又是依據預測表220的集合數目而定,舉例來說,若預測表220具有64個集合,則位址的標籤欄位的長度必須是6個位元才足以表示出各個集合,因此快取存取歷史暫存器232為一個6位元的移位暫存器,但不以此為限。在第3圖中所示之「00」代表該快取記憶體中的第0路,「01」代表該快取記憶體中的第1路,以此類推。
雜湊運算單元234可以是但不限定於一XOR邏輯運算單元。由於程式結構一般具有規律性與規則性(例如:局部性(locality)),可以預期大多數情況下每次執行一指令時,此時的快取命中歷史記錄會與上一次執行該指令時的快取命中歷史記錄相同。即使快取命中歷史記錄與上一次執行該指令時的快取命中歷史記錄不同,也可以在預測表220中建立一個新的索引,如此一來,即使兩位址具有相同的標籤欄位內容,由於其快取命中歷史記錄有很高的機率是不相同的,經過雜湊模組230處理後可以形成兩個具有區別性的索引來存取預測表220,降低碰撞的情況發生;同理,本實施例亦可降低可能有兩種以上執行結果的指令(例如:分支指令(branch instruction))所產生的碰撞,使每下一指令位址所對應之位置資訊可分別紀錄於預測表220中,不至於彼此互相更新而導致預測準確率下降。
本發明並不限定只能應用於集合關聯式快取記憶體。藉由一邏輯運算單元及一移位暫存器來對位址進行處理,本發明可以低成本的方式來達成90%以上的預測正確率,使得快取系統的存取效率提高,進而節省其功率消耗。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100、200...快取系統
110、240...位址
111...標籤欄位
112...索引欄位
113...字元欄位
120、210...快取記憶體
130...比較器
140...緩衝器
150...路預測表
220...預測表
230...雜湊模組
232...快取存取歷史暫存器
234...雜湊運算單元
250...比較電路
260...輸出電路
270...致能訊號
第1圖係習知快取系統的示意圖。
第2圖係本發明快取系統之一實施例的示意圖。
第3圖係本發明之快取系統的另一實施例的示意圖。
200...快取系統
210...快取記憶體
220...預測表
230...雜湊模組
240...位址
250...比較電路
260...輸出電路
270...致能訊號
Claims (17)
- 一種快取系統,包含有:一快取記憶體,包含有複數個快取記憶體單元;一預測表,耦接於該快取記憶體,用來儲存至少一存取位址(accessing address)所對應存取之至少一快取記憶體單元的位置資訊;以及一雜湊(hashing)模組,耦接於該預測表,用來根據至少一目標存取位址以及存取該快取記憶體時所產生之一歷史記錄,形成對應於該目標存取位址之一雜湊值,並以該雜湊值作為索引(index)來自該預測表中存取位置資訊。
- 如第1項所述之系統,其中該預測表係以該雜湊值作為索引來標示其所儲存之該至少一快取記憶體單元的位置資訊。
- 如第1項所述之系統,其中該雜湊模組包含有:一暫存器,耦接於該快取記憶體,用來儲存存取該快取記憶體時所產生之該歷史記錄;以及一雜湊運算單元,耦接於該暫存器以及該預測表,用來根據該目標存取位址以及該歷史記錄形成該雜湊值。
- 如第3項所述之系統,其中該歷史記錄係為一快取命中歷史記錄。
- 如第4項所述之系統,其中該快取命中歷史記錄包含有至少一快取命中發生時所讀取之一快取記憶體單元的位置資訊。
- 如第4項所述之系統,其中該暫存器係為一移位暫存器,用來依序記錄每一快取命中發生時所讀取之一快取記憶體單元的位置資訊。
- 如第3項所述之系統,其中該雜湊運算單元係一XOR邏輯運算單元。
- 如第3項所述之系統,其中該暫存器的大小係與該預測表集合的數目有關。
- 一種預測一快取記憶體中的存取位置資訊的方法,該快取記憶體包含有複數個快取記憶體單元,該方法包含有:於一預測表中儲存至少一快取記憶體單元的位置資訊;根據一目標存取位址以及存取該快取記憶體時所產生之一歷史記錄,形成對應於該目標存取位址之一雜湊值;以及以該雜湊值作為索引來自該預測表中得到一目標位置資訊,其中,該目標位置資訊係與該目標存取位址相對應。
- 如第9項所述之方法,其中儲存該位置資訊之步驟包含有:於快取命中發生時,儲存所讀取之該快取記憶體單元的位置資 訊。
- 如第10項所述之方法,其中儲存該位置資訊之步驟包含有:於快取失誤發生時,儲存從另一儲存裝置所取得之資料存放於該快取記憶體中之一快取記憶體單元的位置資訊。
- 如第9項所述之方法,其中在將該目標存取位址所對應存取之該快取記憶體單元的位置資訊存入該預測表時,以該雜湊值作為索引來標示該位置資訊。
- 如第9項所述之方法,其中形成該雜湊值的步驟包含有:儲存存取該快取記憶體時所產生之該歷史記錄;以及根據該目標存取位址以及該歷史記錄形成該雜湊值。
- 如第13項所述之方法,其中該歷史記錄係為一快取命中歷史記錄。
- 如第14項所述之方法,其中該歷史記錄包含有至少一快取命中發生時所讀取之一快取記憶體單元的位置資訊。
- 如第14項所述之方法,其中儲存該歷史記錄的步驟包含有:當一新的快取命中發生時,採用先進先出(FIFO)的替換策略來取代該快取命中歷史記錄中之一筆資料,並依照儲存先後次序來形成一佇列(Queue)。
- 如第13項所述之方法,其中根據該目標存取位址以及該歷史記錄形成該雜湊值的步驟包含有:對該目標存取位址以及該歷史記錄進行XOR邏輯運算以形成該雜湊值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW096137341A TWI382426B (zh) | 2007-10-04 | 2007-10-04 | 預測快取記憶體之存取位置的方法及系統 |
US12/244,772 US8180965B2 (en) | 2007-10-04 | 2008-10-03 | System and method for cache access prediction |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW096137341A TWI382426B (zh) | 2007-10-04 | 2007-10-04 | 預測快取記憶體之存取位置的方法及系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200917278A TW200917278A (en) | 2009-04-16 |
TWI382426B true TWI382426B (zh) | 2013-01-11 |
Family
ID=40524308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096137341A TWI382426B (zh) | 2007-10-04 | 2007-10-04 | 預測快取記憶體之存取位置的方法及系統 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8180965B2 (zh) |
TW (1) | TWI382426B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11494430B2 (en) | 2019-04-18 | 2022-11-08 | Asmedia Technology Inc. | Data storage apparatus and data prediction method thereof |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461942B (zh) * | 2009-09-15 | 2018-06-08 | 威盛电子股份有限公司 | 串流上下文的高速缓存*** |
US8977819B2 (en) * | 2010-09-21 | 2015-03-10 | Texas Instruments Incorporated | Prefetch stream filter with FIFO allocation and stream direction prediction |
US8291125B2 (en) * | 2011-02-16 | 2012-10-16 | Smsc Holdings S.A.R.L. | Speculative read-ahead for improving system throughput |
JP2012203560A (ja) * | 2011-03-24 | 2012-10-22 | Toshiba Corp | キャッシュメモリおよびキャッシュシステム |
US8806174B2 (en) * | 2011-12-16 | 2014-08-12 | Stec, Inc. | Method and system for hash key memory footprint reduction |
US9378127B2 (en) * | 2013-06-21 | 2016-06-28 | Intel Corporation | Dynamic memory page policy |
US9367454B2 (en) * | 2013-08-15 | 2016-06-14 | Applied Micro Circuits Corporation | Address index recovery using hash-based exclusive or |
US9612970B2 (en) * | 2014-07-17 | 2017-04-04 | Qualcomm Incorporated | Method and apparatus for flexible cache partitioning by sets and ways into component caches |
US10157137B1 (en) | 2015-09-22 | 2018-12-18 | Apple Inc. | Cache way prediction |
US10255197B2 (en) | 2016-07-20 | 2019-04-09 | Oracle International Corporation | Adaptive tablewalk translation storage buffer predictor |
US11281586B2 (en) | 2017-05-09 | 2022-03-22 | Andes Technology Corporation | Processor and way prediction method thereof |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5168463A (en) * | 1988-02-23 | 1992-12-01 | Nissan Motor Company, Ltd. | Shift register apparatus for storing data therein |
US6247094B1 (en) * | 1997-12-22 | 2001-06-12 | Intel Corporation | Cache memory architecture with on-chip tag array and off-chip data array |
US20020133672A1 (en) * | 2001-03-13 | 2002-09-19 | Jan-Wiliem Van De Waerdt | Cache way prediction based on instruction base register |
CN1564989A (zh) * | 1999-12-20 | 2005-01-12 | 加林克半导体V·N·有限公司 | Mac地址高速搜索引擎 |
US20060155927A1 (en) * | 2003-07-02 | 2006-07-13 | Sergei Sawitzki | Single memory with multiple shift register functionality |
US7136960B2 (en) * | 2002-06-14 | 2006-11-14 | Integrated Device Technology, Inc. | Hardware hashing of an input of a content addressable memory (CAM) to emulate a wider CAM |
US20070157028A1 (en) * | 2006-01-03 | 2007-07-05 | International Business Machines Corporation | Hashing method and system |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080162869A1 (en) * | 2006-12-29 | 2008-07-03 | Intel Corporation | Address hashing to help distribute accesses across portions of destructive read cache memory |
-
2007
- 2007-10-04 TW TW096137341A patent/TWI382426B/zh active
-
2008
- 2008-10-03 US US12/244,772 patent/US8180965B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5168463A (en) * | 1988-02-23 | 1992-12-01 | Nissan Motor Company, Ltd. | Shift register apparatus for storing data therein |
US6247094B1 (en) * | 1997-12-22 | 2001-06-12 | Intel Corporation | Cache memory architecture with on-chip tag array and off-chip data array |
CN1564989A (zh) * | 1999-12-20 | 2005-01-12 | 加林克半导体V·N·有限公司 | Mac地址高速搜索引擎 |
US20020133672A1 (en) * | 2001-03-13 | 2002-09-19 | Jan-Wiliem Van De Waerdt | Cache way prediction based on instruction base register |
US7136960B2 (en) * | 2002-06-14 | 2006-11-14 | Integrated Device Technology, Inc. | Hardware hashing of an input of a content addressable memory (CAM) to emulate a wider CAM |
US20060155927A1 (en) * | 2003-07-02 | 2006-07-13 | Sergei Sawitzki | Single memory with multiple shift register functionality |
US20070157028A1 (en) * | 2006-01-03 | 2007-07-05 | International Business Machines Corporation | Hashing method and system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11494430B2 (en) | 2019-04-18 | 2022-11-08 | Asmedia Technology Inc. | Data storage apparatus and data prediction method thereof |
Also Published As
Publication number | Publication date |
---|---|
US8180965B2 (en) | 2012-05-15 |
US20090094435A1 (en) | 2009-04-09 |
TW200917278A (en) | 2009-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI382426B (zh) | 預測快取記憶體之存取位置的方法及系統 | |
CN100407167C (zh) | 高速和准确的高速缓存通路选择 | |
US8984254B2 (en) | Techniques for utilizing translation lookaside buffer entry numbers to improve processor performance | |
US6427188B1 (en) | Method and system for early tag accesses for lower-level caches in parallel with first-level cache | |
US8583874B2 (en) | Method and apparatus for caching prefetched data | |
US7380065B2 (en) | Performance of a cache by detecting cache lines that have been reused | |
JP5622155B2 (ja) | キャッシュメモリおよびその制御方法 | |
JP4920378B2 (ja) | 情報処理装置およびデータ検索方法 | |
JP2007004835A (ja) | キャッシュメモリの運用方法 | |
US20120246410A1 (en) | Cache memory and cache system | |
US10275358B2 (en) | High-performance instruction cache system and method | |
US11301250B2 (en) | Data prefetching auxiliary circuit, data prefetching method, and microprocessor | |
JP6088951B2 (ja) | キャッシュメモリシステムおよびプロセッサシステム | |
CN109074313B (zh) | 缓存和方法 | |
US7761665B2 (en) | Handling of cache accesses in a data processing apparatus | |
US8549227B2 (en) | Multiprocessor system and operating method of multiprocessor system | |
JP3929872B2 (ja) | キャッシュメモリ、プロセッサ及びキャッシュ制御方法 | |
JP2007156821A (ja) | キャッシュシステム及び共用2次キャッシュ | |
CN104424132B (zh) | 高性能指令缓存***和方法 | |
CN107506139A (zh) | 一种面向相变存储器的写请求优化装置 | |
JP2007272681A (ja) | キャッシュメモリ装置及びそのキャッシュラインの入れ替え方法 | |
JP2013073271A (ja) | アドレス変換装置、アドレス変換装置の制御方法及び演算処理装置 | |
CN101419543B (zh) | 预测高速寄存器的存取位置的方法及*** | |
JP3997404B2 (ja) | キャッシュメモリ及びその制御方法 | |
US8756362B1 (en) | Methods and systems for determining a cache address |