TWI451254B - 快取記憶體的替換裝置及方法 - Google Patents
快取記憶體的替換裝置及方法 Download PDFInfo
- Publication number
- TWI451254B TWI451254B TW100120443A TW100120443A TWI451254B TW I451254 B TWI451254 B TW I451254B TW 100120443 A TW100120443 A TW 100120443A TW 100120443 A TW100120443 A TW 100120443A TW I451254 B TWI451254 B TW I451254B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- cache
- block
- lock
- recently used
- Prior art date
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
本發明是有關於一種快取記憶體的替換架構,且特別是有關於一種結合最近最少使用演算法與虛擬最近最少使用演算法的快取記憶體的替換裝置及方法。
快取記憶體是一種使用於儲存媒體,以增進其存取速率之小型快速記憶體。由於其存取速率較儲存媒體所使用之主記憶體為快,因此當處理器欲由儲存媒體中存取如位址、指令及資料等時,如可由快取記憶體中存取,其速率將較由主記憶體中直接存取為快而有效率,故快取記憶體通常可視為主記憶體之緩衝記憶體。
傳統上,有三種類型的被使用之快取組織:完全關聯式(fully associative)、直接映射式(direct mapped)以及集合關聯式(set associative)快取組織。在完全關聯式快取中,係將主記憶體的任何快取線儲存在任何快取條目(entry),因而使快取的比較變得複雜,此種方式的命中率最高。直接映射式快取實際上是一個集合關聯式快取,其具有可能儲存了具有共同定址屬性的複數個記憶位置的內容之一位置,此種方式的硬體複雜度最低、替換方式最簡單,但命中率最低。在集合關聯式快取中,通常將快取在邏輯上分成一些集合,其中來自主記憶體的位置被儲存在每一集合內之特定的位置,因而簡化了快取查詢程序,此種方式的硬體複雜度與命中率介於完全關聯式與直接映射式之間。
然而,由於成本考量,快取記憶體之容量並不可能無限量擴充,其可儲存之資料,相較於主記憶體而言極為有限,因此當處理器欲存取資料時,便可能會有快取線符合(cache hit)或快取線不符合(cache miss)之情形發生。所謂快取線符合,意即處理器欲存取之資料係儲存於快取記憶體中,故可直接由快取記憶體中存取資料。反之,則為快取線不符合,必須依據快取記憶體之替換演算法,將儲存於主記憶體中之資料移入快取記憶體中,以供處理器存取。因此,其替換演算法之良宥,便成為影響儲存媒體存取效能之重要因素。
習知快取記憶體替換演算法通常有最近最少使用(Least Recently Used,LRU)演算法以及虛擬最近最少使用(Pseudo Least Recently Used,PLRU)演算法。
圖1繪示為習知之最近最少使用演算法的示意圖,請參照圖1。最近最少使用演算法為考慮最近長時間未存取之快取線,也是最不可能再一次存取之快取線予以替換。圖1以4個快取線為例,其中,橫坐標和縱坐標均表示快取線的編號,6個正方形代表6個存儲單元,每個存儲單元用0表示左邊的快取線比下邊的快取線更新(不應被替換),同時也表示下邊的快取線比左邊的快取線更舊(應被替換)。通過這樣一張表格,每一個快取線均可以與組內的其他快取線進行一次比較。例如,對於快取線0來說,它在垂直方向上將分別與快取線1,快取線2和快取線3進行比較,而對於快取線1來說,在水平方向上,它將與快取線0進行比較,而在垂直方向上,它將與快取線2和快取線3進行比較。當一個快取線的水平方向全為”1”,而垂直方向全為”0”時,此快取線就應被替換。其中,當替換發生或者命中(hit)發生的時候,需要更新存儲單元。
圖2繪示為習知之虛擬最近最少使用演算法的示意圖,請參照圖2。虛擬最近最少使用演算法為將快取線按照二進位樹(binary tree)的形式組織起來,二進位樹的每個節點表示子樹上的快取線的歷史資訊。從二進位樹的頂部搜尋到二進位樹的底部就可以找出應該替換的快取線。在每一個二進位樹的節點,把二進位樹的子樹做為一個整體進行考量它們的歷史資訊。
以4個快取線為例,圖2為3個儲存單元202,以二進位樹的形式組織,每個節點用於存儲左右子樹的相對優先順序。當虛擬最近最少使用二進位樹的節點為0時,則沿著左子樹進行查找,否則沿著右子樹進行查找,直到找到最後應該被替換的快取線為止。其中,當替換發生或者命中發生的時候,需要更新儲存單元202所儲存的相對優先順序。
在習知的快取記憶體替換演算法中,通常對一個快取記憶體只會使用一種替換算法。最近最少使用演算法充分考慮快取記憶體的使用歷史,具有最佳的效能但複雜度最高,對面積和時序的要求高,尤其當快取線的數量達到8條以上時,所需的電路面積已過大而不符合實際應用。另外,相對於最近最少使用演算法,利用虛擬最近最少使用演算法雖可改善電路面積,但卻有損效能,而且當快取線較多時,仍無法有效解決電路面積過大和時序緊張的問題。
本發明提供一種快取記憶體的替換裝置與方法,可有效減少電路面積並改善時序。
本發明提出一種快取記憶體的替換裝置,其中快取記憶體包括多個記憶體區塊,各記憶體區塊包括多條快取線。快取記憶體的替換裝置包括一用於虛擬最近最少使用的記憶體、一用於最近最少使用的記憶體、一最近最少使用運算單元以及一快取線選擇模組。其中用於虛擬最近最少使用的記憶體儲存對應多條快取線的多個快取線標示位元,其中多個快取線標示位元分別指示各記憶體區塊中快取線的相對優先關係。用於最近最少使用的記憶體儲存對應多個記憶體區塊的多個區塊標示位元,其中多個區塊標示位元分別指示多個記憶體區塊的相對優先關係。最近最少使用運算單元耦接用於最近最少使用的記憶體,其依據多個區塊標示位元對多個記憶體區塊執行最近最少使用運算以輸出一選擇控制訊號。快取線選擇模組耦接用於虛擬最近最少使用的記憶體與最近最少使用運算單元,依據選擇控制訊號以及多個快取線標示位元對多條快取線執行虛擬最近最少使用運算,以選擇多條快取線的其中之一做為即將替換的一目標快取線。
在本發明之一實施例中,上述之快取線選擇模組包括多個虛擬最近最少使用運算單元以及一第一多工器。其中多個虛擬最近最少使用運算單元耦接用於虛擬最近最少使用的記憶體,其依據多個快取線標示位元對各記憶體區塊中的多個快取線執行虛擬最近最少使用運算,以自每一記憶體區塊中選擇多個快取線的其中之一做為一區域虛擬最近最少使用快取線。第一多工器之控制端耦接最近最少使用運算單元,第一多工器之輸入端耦接多個虛擬最近最少使用運算單元,其依據選擇控制訊號自多條區域虛擬最近最少使用快取線選擇出目標快取線。
在本發明之一實施例中,上述之快取線選擇模組包括一第二多工器以及一虛擬最近最少使用運算單元。其中第二多工器之控制端耦接最近最少使用運算單元,第二多工器之輸入端耦接用於虛擬最近最少使用的記憶體,其依據選擇控制訊號自用於虛擬最近最少使用的記憶體中選擇出對應一目標記憶體區塊所儲存的多個快取線標示位元,其中目標記憶體區塊為多個記憶體區塊中最近最少使用的記憶體區塊。虛擬最近最少使用運算單元耦接第二多工器之輸出端,其依據對應目標記憶體區塊所儲存的多個快取線標示位元對目標記憶體區塊中的多條快取線執行虛擬最近最少使用運算,以選擇出目標快取線。
在本發明之一實施例中,上述之快取記憶體的替換裝置,更包括鎖定記憶體,其耦接上述多個虛擬最近最少使用運算單元,儲存對應快取線的多個鎖定位元,其中多個鎖定位元分別指示上述多個快取線是否能被替換,上述多個虛擬最近最少使用運算單元對上述多條快取線執行虛擬最近最少使用運算時,更依據上述多個鎖定位元以選擇出上述多個區域虛擬最近最少使用快取線。
在本發明之一實施例中,上述之快取記憶體的替換裝置,更包括一邏輯運算單元,其耦接於鎖定記憶體與最近最少使用運算單元之間,對上述多個鎖定位元執行一邏輯運算以輸出一區塊鎖定訊號,最近最少使用運算單元對上述多個記憶體區塊執行最近最少使用運算時,更依據區塊鎖定訊號以輸出選擇控制訊號,其中區塊鎖定訊號指示上述多個記憶體區塊是否能被替換。
在本發明之一實施例中,上述之快取記憶體的替換裝置,更包括一區塊鎖定訊號產生單元,其耦接最近最少使用運算單元,產生一區塊鎖定訊號,最近最少使用運算單元對上述多個記憶體區塊執行最近最少使用運算時,更依據區塊鎖定訊號以輸出選擇控制訊號,其中區塊鎖定訊號指示上述多個記憶體區塊是否能被替換。
在本發明之一實施例中,上述之快取線選擇模組更包括一第三多工器,其控制端耦接最近最少使用運算單元,其輸入端耦接鎖定記憶體,其輸出端耦接虛擬最近最少使用運算單元,第三多工器依據選擇控制訊號選擇輸出對應目標記憶體區塊所儲存的多個鎖定位元,虛擬最近最少使用運算單元對多條快取線執行虛擬最近最少使用運算時,更依據對應目標記憶體區塊的所儲存的多個鎖定位元以自目標記憶體區塊中選擇出目標快取線。
本發明亦提出一種快取記憶體的替換方法,快取記憶體包括多個記憶體區塊,各記憶體區塊包括多條快取線,快取記憶體的替換方法包括下列步驟:依據多個快取線標示位元分別對各記憶體區塊中的多個快取線執行虛擬最近最少使用運算,以自每一記憶體區塊中選擇多條快取線的其中之一做為一區域虛擬最近最少使用快取線,其中多個快取線標示位元分別指示各記憶體區塊中快取線的相對優先關係。依據多個區塊標示位元對多個記憶體區塊執行最近最少使用運算以產生一選擇控制訊號,其中多個區塊標示位元分別指示多個記憶體區塊的相對優先關係。依據選擇控制訊號選擇多個區域虛擬最近最少使用快取線的其中之一做為即將替換的一目標快取線。
在本發明之一實施例中,其中對多個記憶體區塊執行最近最少使用運算時更依據一區塊鎖定訊號來產生選擇控制訊號,而對多條快取線執行虛擬最近最少使用運算時,更依據多個鎖定位元來選擇目標快取線,其中區塊鎖定訊號指示記憶體區塊是否能被替換,而多個鎖定位元分別指示多個快取線是否能被替換。
本發明更提出一種快取記憶體的替換方法,其中快取記憶體包括多個記憶體區塊,各記憶體區塊包括多條快取線,快取記憶體的替換方法包括下列步驟:依據多個區塊標示位元對多個記憶體區塊執行最近最少使用運算以產生一選擇控制訊號,其中多個區塊標示位元分別指示多個記憶體區塊的相對優先關係。依據選擇控制訊號自用於虛擬最近最少使用的記憶體中選擇出對應一目標記憶體區塊所儲存的多個快取線標示位元,其中目標記憶體區塊為多個記憶體區塊中最近最少使用的記憶體區塊。依據對應目標記憶體區塊的多個快取線標示位元對目標記憶體區塊中的多條快取線執行虛擬最近最少使用運算,以選擇多條快取線的其中之一做為即將替換的一目標快取線,其中多個快取線標示位元指示目標記憶體區塊中多條快取線的相對優先關係。
在本發明之一實施例中,其中對多個記憶體區塊執行最近最少使用運算時,更依據一區塊鎖定訊號來產生選擇控制訊號,其中區塊鎖定訊號指示記憶體區塊是否能被替換。
在本發明之一實施例中,上述之快取記憶體的替換方法,更包括依據選擇控制訊號選擇輸出對應目標記憶體區塊的多個鎖定位元,而對多條快取線執行虛擬最近最少使用運算時,更依據對應目標記憶體區塊的多個鎖定位元來選擇出目標快取線,其中多個鎖定位元分別指示多個快取線是否能被替換。
在本發明之一實施例中,上述之快取線的相對優先關係包括快取線被使用的次數以及時間,記憶體區塊的相對優先關係包括記憶體區塊被使用的次數以及時間。
在本發明之一實施例中,上述之區塊鎖定訊號為對對應多條快取線的多個鎖定位元執行一邏輯運算而得到。
基於上述,本發明結合最近最少使用演算法與虛擬最近最少使用演算法的優點,分別對快取記憶體所包括的多個記憶體區塊中的快取線執行虛擬最近最少使用演算法,同時依據對記憶體區塊執行最近最少使用演算法的結果自各記憶體區塊的虛擬最近最少使用演算結果中選擇出目標快取線,以減少快取記憶體的替換裝置的電路面積並改善時序。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖3繪示為本發明一實施例之快取記憶體的替換裝置的示意圖。其中快取記憶體(未繪示)包括多個記憶體區塊,且各記憶體區塊包括多條快取線。請參照圖3,快取記憶體的替換裝置300包括一用於虛擬最近最少使用的記憶體302(以下簡稱為PLRU記憶體302),一用於最近最少使用的記憶體304(以下簡稱為LRU記憶體304)、一最近最少使用運算單元306(以下簡稱為LRU運算單元306)以及一快取線選擇模組308。其中快取線選擇模組308耦接為PLRU記憶體302與LRU運算單元306,而LRU記憶體304則耦接LRU運算單元306。
上述PLRU記憶體302用以儲存對應快取記憶體中多條快取線的多個快取線標示位元,其分別指示各個記憶體區塊中快取線間的相對優先關係。另外,LRU記憶體304則儲存對應快取記憶體中多個記憶體區塊的多個區塊標示位元,其分別指示各個記憶體區塊間的相對優先關係。其中上述所指快取線間的相對優先關係可例如為依據快取線被使用的次數以及時間來判斷,而各記憶體區塊間的相對優先關係亦可例如依據記憶體區塊被使用的次數以及時間來判斷。
當快取記憶體出現資料失誤(miss)的情形時,LRU運算單元306依據上述區塊標示位元對快取記憶體中的記憶體區塊執行最近最少使用運算以輸出一選擇控制訊號S1。快取線選擇模組308則依據選擇控制訊號S1以及上述快取線標示位元對快取記憶體中的快取線執行虛擬最近最少使用運算,以選擇上述快取線的其中之一做為即將替換的一目標快取線。如此藉由結合最近最少使用運算的高效能優點以及虛擬最近最少使用運算可減少電路面積和時序要求的優點,即可克服在對大量的快取線進行替換運算時所帶來電路面積過大以及高時序要求的問題。
其中,快取線選擇模組308在依據選擇控制訊號S1以及快取線標示位元對快取線執行虛擬最近最少使用運算時,可選擇先分別對各個記憶體區塊中的快取線執行虛擬最近最少使用運算後,再依據選擇控制訊號S1選擇出目標快取線,此種方式可改善執行快取線替換演算時的時序問題。又或者是,快取線選擇模組308可先依據選擇控制訊號S1選擇出一目標記憶體區塊,然後再依據對應此目標記憶體區塊中快取線的快取線標示位元來選擇目標快取線,此種方式可改善執行快取線替換演算時電路面積過大的問題。上述兩種快取線的替換演算方式相較於傳統使用單一種替換演算法皆具有較小的電路面積以及較低的時序要求,使用者可依據實際情形選擇其中一替換演算方式實施,以進一步改善電路面積或時序問題。
詳細來說,上述快取線選擇模組308可以虛擬最近最少使用運算單元(以下簡稱為PLRU運算單元)以及多工器來實施。圖4繪示為本發明另一實施例之快取記憶體的替換裝置的示意圖。請參照圖4,本實施例之快取線選擇模組308為以先對快取線執行虛擬最近最少使用運算後,再依據選擇控制訊號S1選擇出目標快取線的方式進行快取記憶體的替換演算。在本實施例中,快取線選擇模組308包括多個PLRU運算單元402以及一多工器404,其中各個PLRU運算單元402皆耦接至PLRU記憶體302,多工器404的控制端耦接LRU運算單元306,多工器404的輸入端則耦接至上述PLRU運算單元402。
各個PLRU運算單元402可分別依據快取線標示位元對與其所對應的記憶體區塊中的快取線執行虛擬最近最少使用運算,進而自每一記憶體區塊中選擇快取線的其中之一做為一區域虛擬最近最少使用快取線。多工器404則依據選擇控制訊號S1自上述多條區域虛擬最近最少使用快取線中選擇出目標快取線。如此藉由多個PLRU運算單元402同時分別多個記憶體區塊中的快取線執行虛擬最近最少使用運算即可進一步大幅地改善時序的問題。
圖5繪示為本發明另一實施例之快取記憶體的替換裝置的示意圖。請參照圖5,本實施例之快取線選擇模組308為以先依據選擇控制訊號S1選擇出目標記憶體區塊,然後再依據對應此目標記憶體區塊中快取線的快取線標示位元來選擇目標快取線的方式進行快取記憶體的替換演算。在本實施例中,快取線選擇模組308包括一PLRU運算單元502以及一多工器504,其中PLRU運算單元502耦接多工器504的輸出端,多工器504的控制端耦接LRU運算單元306,多工器504的輸入端則耦接至PLRU記憶體302。
多工器504依據選擇控制訊號S1自PLRU記憶體302中選擇出對應一目標記憶體區塊所儲存的多個快取線標示位元,其中目標記憶體區塊為多個記憶體區塊中最近最少使用的記憶體區塊。PLRU運算單元502則依據對應目標記憶體區塊所儲存的快取線標示位元,來對目標記憶體區塊中的快取線執行虛擬最近最少使用運算以選擇出目標快取線。如此先藉由多工器504依據選擇控制訊號S1先自PLRU記憶體302中選擇出對應目標記憶體區塊所儲存的多個快取線標示位元,然後再對目標記憶體區塊中的快取線執行虛擬最近最少使用運算選擇出目標快取線可減少PLRU運算單元502的使用個數,因而可大幅地減少電路面積。
圖6繪示為本發明另一實施例之快取記憶體的替換裝置600,替換裝置600相較於替換裝置300更包括了一鎖定記憶體602與一邏輯運算單元604。其中鎖定記憶體602耦接快取線選擇模組308與邏輯運算單元604,邏輯運算單元604則耦接LRU運算單元306。其中鎖定記憶體602儲存對應快取線的多個鎖定位元,邏輯運算單元604則對多個鎖定位元執行一邏輯運算以輸出一區塊鎖定訊號S2。
在本實施例中,上述快取線選擇模組308除了依據快取線標示位元選擇目標快取線外,更依據多個鎖定位元來選擇目標快取線,其中多個鎖定位元分別指示快取記憶體中的快取線是否能被替換。另外LRU運算單元306除了依據區塊標示位元輸出選擇控制訊號S1外,更依據區塊鎖定訊號輸出選擇控制訊號S1,其中區塊鎖定訊號指示記憶體區塊是否能被替換。
詳細來說,當快取線選擇模組308更依據多個鎖定位元來選擇目標快取線時,其實施方式可如圖7所示。圖7繪示為本發明另一實施例之快取記憶體的替換裝置700,本實施例之替換裝置700相較於圖4之替換裝置400的不同之處在於,替換裝置700更包括上述之鎖定記憶體602與邏輯運算單元604。其中快取線選擇模組308中的各個PLRU運算單元402更耦接至鎖定記憶體602,而邏輯運算單元604則耦接鎖定記憶體602與LRU運算單元306。大多數情況下,使用LRU就可以達到較好的效果。當然,也可以在分塊較少時,使用LRU;在分塊較多時,使用PLRU。
邏輯運算單元604可對上述多個鎖定位元執行邏輯運算以輸出區塊鎖定訊號S2,LRU運算單元306依據區塊標示位元與區塊鎖定訊號S2輸出選擇控制訊號S1。各個PLRU運算單元402則分別依據快取線標示位元以及鎖定位元對與其所對應的記憶體區塊中的快取線執行虛擬最近最少使用運算,以選擇出多條區域虛擬最近最少使用快取線。如此,多工器404便可依據選擇控制訊號S1自多條區域虛擬最近最少使用快取線中選擇出目標快取線。
舉例來說,假設快取記憶體為一具有384條快取線的完全關聯式快取記憶體,且快取記憶體包括6個記憶體區塊。鎖定記憶體602儲存對應快取線的384個鎖定位元,PLRU記憶體302儲存對應快取記憶體中快取線的384個快取線標示位元,LRU記憶體304則儲存對應記憶體區塊的6個區塊標示位元。當各個PLRU運算單元402對各記憶體區塊中的快取線執行虛擬最近最少使用運算時,可依據對應的快取線標示位元以及鎖定位元狀態選擇區域虛擬最近最少使用快取線。例如當快取線被鎖定而無法被替換時,鎖定位元的狀態可被設定為高邏輯準位。而快取線被鎖定的原因可例如是快取線在等待主記憶體的資料回覆,亦或者是快取線還未將回覆的資料送至請求資料的資料處理引擎等等。另外,邏輯運算單元604則對對應快取線的384個鎖定位元執行邏輯運算以輸出區塊鎖定訊號S2,以使LRU運算單元306可依據區塊標示位元與區塊鎖定訊號S2輸出選擇控制訊號S1,進而控制多工器404選擇出目標快取線。
圖8繪示為本發明另一實施例之快取記憶體的替換裝置800,本實施例為快取線選擇模組308更依據多個鎖定位元來選擇目標快取線時的另一種實施方式,替換裝置800相較於圖5之替換裝置500的不同之處在於,替換裝置800更包括上述之鎖定記憶體602與邏輯運算單元604,且快取線選擇模組308更包括一多工器802。其中快取線選擇模組308中多工器802的控制端耦接LRU運算單元306,多工器802的輸入端耦接鎖定記憶體602,多工器802的輸出端則耦接PLRU運算單元502,而邏輯運算單元604則耦接鎖定記憶體602與LRU運算單元306。
相同地,邏輯運算單元604亦可對上述多個鎖定位元執行邏輯運算以輸出區塊鎖定訊號S2,LRU運算單元306依據區塊標示位元與區塊鎖定訊號S2輸出選擇控制訊號S1。多工器802則依據選擇控制訊號S1選擇輸出對應目標記憶體區塊所儲存的多個鎖定位元。如此一來,PLRU運算單元502便可同時依據對應目標記憶體區塊的多個快取線標示位元以及多個鎖定位元,來自目標記憶體區塊中選擇出目標快取線。
類似地,如圖7實施例所假設之情形(快取記憶體為一具有384條快取線的完全關聯式快取記憶體),LRU運算單元306可依據區塊標示位元與區塊鎖定訊號S2輸出選擇控制訊號S1,而多工器504與多工器802可分別依據選擇控制訊號S1自384個鎖定位元與384個快取線標示位元中選擇出對應目標記憶體區塊的多個快取線標示位元以及多個鎖定位元,以使PLRU運算單元502依據對應目標記憶體區塊的多個快取線標示位元以及多個鎖定位元,來自目標記憶體區塊中選擇出目標快取線。
值得注意的是,上述圖6~圖8實施例之區塊鎖定訊號S2皆為利用邏輯運算單元604對鎖定位元執行邏輯運算而得到,然實際應用上並不以此為限,在部分實施例中亦可透過一區塊鎖定訊號產生單元來產生區塊鎖定訊號S2。圖9~圖11分別繪示為對應圖6~圖8實施例之快取記憶體的替換裝置的示意圖,其中替換裝置900、1000、1100分別與替換裝置600、700、800的不同之處在於,替換裝置900、1000、1100皆包括一區塊鎖定訊號產生單元902,而無替換裝置600、700、800所具有的邏輯運算單元604。其中區塊鎖定訊號產生單元902耦接LRU運算單元306,其可依據作業系統或是其它上層硬體裝置的命令來產生區塊鎖定訊號S2,以確保特定的快取線不會被替換掉。
如上所述,藉由結合LRU運算單元306執行最近最少使用運算的高效能優點以及快取線選擇模組308執行虛擬最近最少使用運算可減少電路面積和時序要求的優點,可克服對大量的快取線進行替換運算時所帶來電路面積過大以及高時序要求的問題。依據快取線選擇模組308選擇目標快取線的方式,快取記憶體的替換方法可分為下列兩種方式。
圖12繪示為本發明一實施例之快取記憶體的替換方法的流程圖。請參照圖12,首先,依據多個快取線標示位元分別對各記憶體區塊中的快取線執行虛擬最近最少使用運算,以自每一記憶體區塊中選擇多條快取線的其中之一做為一區域虛擬最近最少使用快取線(步驟S1202)。其中此些快取線標示位元分別指示各記憶體區塊中快取線間的相對優先關係,此處所指快取線間的相對優先關係可依據快取線被使用的次數以及時間來判斷。接著,依據多個區塊標示位元對記憶體區塊執行最近最少使用運算以產生一選擇控制訊號(步驟S1204)。其中多個區塊標示位元分別指示多個記憶體區塊間的相對優先關係,此處所指記憶體區塊間的相對優先關係可依據記憶體區塊被使用的次數以及時間來判斷。然後,依據選擇控制訊號選擇多條區域虛擬最近最少使用快取線的其中之一做為即將替換的一目標快取線(步驟S1206)。
圖13繪示為本發明另一實施例之快取記憶體的替換方法的流程圖。請參照圖13,首先,依據多個區塊標示位元對多個記憶體區塊執行最近最少使用運算以產生一選擇控制訊號(步驟S1302),其中多個區塊標示位元分別指示多個記憶體區塊間的相對優先關係。接著,依據選擇控制訊號自用於虛擬最近最少使用的記憶體中選擇出對應一目標記憶體區塊所儲存的多個快取線標示位元(步驟S1304)。其中此些快取線標示位元分別指示各記憶體區塊中快取線間的相對優先關係,而目標記憶體區塊則為多個記憶體區塊中最近最少使用的記憶體區塊。然後,依據對應目標記憶體區塊的多個快取線標示位元對目標記憶體區塊中的多條快取線執行虛擬最近最少使用運算,以選擇多條快取線的其中之一做為即將替換的一目標快取線(步驟S1306)。
值得注意的是,在圖12以及圖13實施例中對快取線執行虛擬最近最少使用運算時更可依據多個鎖定位元來選擇目標快取線,其中多個鎖定位元分別指示與其對應的快取線是否能被替換。而對記憶體區塊執行最近最少使用運算時更可依據區塊鎖定訊號來產生選擇控制訊號,其中區塊鎖定訊號指示記憶體區塊是否能被替換。在部分實施例中,區塊鎖定訊號可藉由對對應快取線的多個鎖定位元執行邏輯運算而得到。
綜上所述,本發明透過結合最近最少使用演算法與虛擬最近最少使用演算法的優點,分別對快取記憶體所包括的多個記憶體區塊中的快取線執行虛擬最近最少使用演算法,同時更依據對記憶體區塊執行最近最少使用演算法的結果自各記憶體區塊的虛擬最近最少使用演算結果中選擇出目標快取線,以克服在對大量的快取線進行替換運算時所帶來電路面積過大以及高時序要求的問題。在部分實施例中,更可配合鎖定位元依據實際情形直接限制特定快取線的替換狀態,以使快取記憶體的替換更有效率。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
202...儲存單元
300~1100...快取記憶體的替換裝置
302...PLRU記憶體
304...LRU記憶體
306...LRU運算單元
308...快取線選擇模組
402、502...PLRU運算單元
404、504、802...多工器
602...鎖定記憶體
604...邏輯運算單元
902...區塊鎖定訊號產生單元
S1...選擇控制訊號
S2...區塊鎖定訊號
S1202~S1206、S1302~S1306...快取記憶體的替換方法步驟
圖1繪示為習知之最近最少使用演算法的示意圖。
圖2繪示為習知之虛擬最近最少使用演算法的示意圖。
圖3~圖11繪示為本發明實施例之快取記憶體的替換裝置的示意圖。
圖12~圖13繪示為本發明實施例之快取記憶體的替換方法的流程圖。
300...快取記憶體的替換裝置
302...PLRU記憶體
304...LRU記憶體
306...LRU運算單元
308...快取線選擇模組
S1...選擇控制訊號
Claims (23)
- 一種快取記憶體的替換裝置,該快取記憶體包括多個記憶體區塊,各該記憶體區塊包括多條快取線,該快取記憶體的替換裝置包括:一用於虛擬最近最少使用的記憶體,儲存對應該些快取線的多個快取線標示位元,其中該些快取線標示位元分別指示各該記憶體區塊中該些快取線的相對優先關係;一用於最近最少使用的記憶體,儲存對應該些記憶體區塊的多個區塊標示位元,其中該些區塊標示位元分別指示該些記憶體區塊的相對優先關係;一最近最少使用運算單元,耦接該用於最近最少使用的記憶體,依據該些區塊標示位元對該些記憶體區塊執行最近最少使用運算以輸出一選擇控制訊號;以及一快取線選擇模組,耦接該用於虛擬最近最少使用的記憶體與該最近最少使用運算單元,依據該選擇控制訊號以及該些快取線標示位元對該些快取線執行虛擬最近最少使用運算,以選擇該些快取線的其中之一做為即將替換的一目標快取線。
- 如申請專利範圍第1項所述之快取記憶體的替換裝置,其中該快取線選擇模組包括:多個虛擬最近最少使用運算單元,耦接該用於虛擬最近最少使用的記憶體,依據該些快取線標示位元對各該記憶體區塊中的該些快取線執行虛擬最近最少使用運算,以自每一記憶體區塊中選擇該些快取線的其中之一做為一區域虛擬最近最少使用快取線;以及一第一多工器,其控制端耦接該最近最少使用運算單元,該第一多工器之輸入端耦接該些虛擬最近最少使用運算單元,依據該選擇控制訊號自該些區域虛擬最近最少使用快取線選擇出該目標快取線。
- 如申請專利範圍第2項所述之快取記憶體的替換裝置,更包括:一鎖定記憶體,耦接該些虛擬最近最少使用運算單元,儲存對應該些快取線的多個鎖定位元,其中該些鎖定位元分別指示該些快取線是否能被替換,該些虛擬最近最少使用運算單元對該些快取線執行虛擬最近最少使用運算時,更依據該些鎖定位元以選擇出該些區域虛擬最近最少使用快取線。
- 如申請專利範圍第3項所述之快取記憶體的替換裝置,更包括:一邏輯運算單元,耦接於該鎖定記憶體與該最近最少使用運算單元之間,對該些鎖定位元執行一邏輯運算以輸出一區塊鎖定訊號,該最近最少使用運算單元對該些記憶體區塊執行最近最少使用運算時,更依據該區塊鎖定訊號以輸出該選擇控制訊號,其中該區塊鎖定訊號指示該些記憶體區塊是否能被替換。
- 如申請專利範圍第3項所述之快取記憶體的替換裝置,更包括:一區塊鎖定訊號產生單元,耦接該最近最少使用運算單元,產生一區塊鎖定訊號,該最近最少使用運算單元對該些記憶體區塊執行最近最少使用運算時,更依據該區塊鎖定訊號以輸出該選擇控制訊號,其中該區塊鎖定訊號指示該些記憶體區塊是否能被替換。
- 如申請專利範圍第1項所述之快取記憶體的替換裝置,其中該快取線選擇模組包括:一第二多工器,其控制端耦接該最近最少使用運算單元,該第二多工器之輸入端耦接該用於虛擬最近最少使用的記憶體,依據該選擇控制訊號自該用於虛擬最近最少使用的記憶體中選擇出對應一目標記憶體區塊所儲存的該些快取線標示位元,其中該目標記憶體區塊為該些記憶體區塊中最近最少使用的記憶體區塊;以及一虛擬最近最少使用運算單元,耦接該第二多工器之輸出端,依據對應該目標記憶體區塊所儲存的該些快取線標示位元對該目標記憶體區塊中的該些快取線執行虛擬最近最少使用運算,以選擇出該目標快取線。
- 如申請專利範圍第6項所述之快取記憶體的替換裝置,更包括:一鎖定記憶體,儲存對應該些快取線的多個鎖定位元,其中該些鎖定位元分別指示該些快取線是否能被替換。
- 如申請專利範圍第7項所述之快取記憶體的替換裝置,其中該快取線選擇模組更包括:一第三多工器,其控制端耦接該最近最少使用運算單元,其輸入端耦接該鎖定記憶體,其輸出端耦接該虛擬最近最少使用運算單元,該第三多工器依據該選擇控制訊號選擇輸出對應該目標記憶體區塊所儲存的該些鎖定位元,該虛擬最近最少使用運算單元對該些快取線執行虛擬最近最少使用運算時,更依據對應該目標記憶體區塊的所儲存的該些鎖定位元以自該目標記憶體區塊中選擇出該目標快取線。
- 如申請專利範圍第7項所述之快取記憶體的替換裝置,更包括:一邏輯運算單元,耦接於該鎖定記憶體與該最近最少使用運算單元之間,對該些鎖定位元執行一邏輯運算以輸出一區塊鎖定訊號,該最近最少使用運算單元對該些記憶體區塊執行最近最少使用運算時,更依據該區塊鎖定訊號以輸出該選擇控制訊號,其中該區塊鎖定訊號指示該些記憶體區塊是否能被替換。
- 如申請專利範圍第7項所述之快取記憶體的替換裝置,更包括:一區塊鎖定訊號產生單元,耦接該最近最少使用運算單元,產生一區塊鎖定訊號,該最近最少使用運算單元對該些記憶體區塊執行最近最少使用運算時,更依據該區塊鎖定訊號以輸出該選擇控制訊號,其中該區塊鎖定訊號指示該些記憶體區塊是否能被替換。
- 如申請專利範圍第1項所述之快取記憶體的替換裝置,更包括:一鎖定記憶體,耦接該快取線選擇模組,儲存對應該些快取線的多個鎖定位元,其中該些鎖定位元分別指示該些快取線是否能被替換,該快取線選擇模組對該些快取線執行虛擬最近最少使用運算時,更依據該些鎖定位元以選擇出該目標快取線。
- 如申請專利範圍第11項所述之快取記憶體的替換裝置,更包括:一邏輯運算單元,耦接於該鎖定記憶體與該最近最少使用運算單元之間,對該些鎖定位元執行一邏輯運算以輸出一區塊鎖定訊號,該最近最少使用運算單元對該些記憶體區塊執行最近最少使用運算時,更依據該區塊鎖定訊號以輸出該選擇控制訊號,其中該區塊鎖定訊號指示該些記憶體區塊是否能被替換。
- 如申請專利範圍第11項所述之快取記憶體的替換裝置,更包括:一區塊鎖定訊號產生單元,耦接該最近最少使用運算單元,產生一區塊鎖定訊號,該最近最少使用運算單元對該些記憶體區塊執行最近最少使用運算時,更依據該區塊鎖定訊號以輸出該選擇控制訊號,其中該區塊鎖定訊號指示該些記憶體區塊是否能被替換。
- 如申請專利範圍第1項所述之快取記憶體的替換裝置,其中該些快取線的相對優先關係包括該些快取線被使用的次數以及時間,該些記憶體區塊的相對優先關係包括該些記憶體區塊被使用的次數以及時間。
- 一種快取記憶體的替換方法,該快取記憶體包括多個記憶體區塊,各該記憶體區塊包括多條快取線,該替換方法包括:依據多個快取線標示位元分別對各該記憶體區塊中的該些快取線執行虛擬最近最少使用運算,以自每一記憶體區塊中選擇該些快取線的其中之一做為一區域虛擬最近最少使用快取線,其中該些快取線標示位元分別指示各該記憶體區塊中該些快取線的相對優先關係;依據多個區塊標示位元對該些記憶體區塊執行最近最少使用運算以產生一選擇控制訊號,其中該些區塊標示位元分別指示該些記憶體區塊的相對優先關係;以及依據該選擇控制訊號選擇該些區域虛擬最近最少使用快取線的其中之一做為即將替換的一目標快取線。
- 如申請專利範圍第15項所述之快取記憶體的替換方法,其中對該些記憶體區塊執行最近最少使用運算時更依據一區塊鎖定訊號來產生該選擇控制訊號,而對該些快取線執行虛擬最近最少使用運算時,更依據多個鎖定位元來選擇出該目標快取線,其中該區塊鎖定訊號指示該些記憶體區塊是否能被替換,而該些鎖定位元分別指示該些快取線是否能被替換。
- 如申請專利範圍第16項所述之快取記憶體的替換方法,其中該區塊鎖定訊號為對對應該些快取線的多個鎖定位元執行一邏輯運算而得到。
- 如申請專利範圍第15項所述之快取記憶體的替換方法,其中該些快取線的相對優先關係包括該些快取線被使用的次數以及時間,該些記憶體區塊的相對優先關係包括該些記憶體區塊被使用的次數以及時間。
- 一種快取記憶體的替換方法,其中該快取記憶體包括多個記憶體區塊,各該記憶體區塊包括多條快取線,該替換方法包括:依據多個區塊標示位元對該些記憶體區塊執行最近最少使用運算以產生一選擇控制訊號,其中該些區塊標示位元分別指示該些記憶體區塊的相對優先關係;依據該選擇控制訊號自該用於虛擬最近最少使用的記憶體中選擇出對應一目標記憶體區塊所儲存的該些快取線標示位元,其中該目標記憶體區塊為該些記憶體區塊中最近最少使用的記憶體區塊;以及依據對應該目標記憶體區塊的多個快取線標示位元對該目標記憶體區塊中的該些快取線執行虛擬最近最少使用運算,以選擇該些快取線的其中之一做為即將替換的一目標快取線,其中該些快取線標示位元指示該目標記憶體區塊中該些快取線的相對優先關係。
- 如申請專利範圍第19項所述之快取記憶體的替換方法,其中對該些記憶體區塊執行最近最少使用運算時,更依據一區塊鎖定訊號來產生該選擇控制訊號,其中該區塊鎖定訊號指示該些記憶體區塊是否能被替換。
- 如申請專利範圍第20項所述之快取記憶體的替換方法,更包括:依據該選擇控制訊號選擇輸出對應該目標記憶體區塊的多個鎖定位元,而對該些快取線執行虛擬最近最少使用運算時,更依據對應該目標記憶體區塊的該些鎖定位元來選擇出該目標快取線,其中該些鎖定位元分別指示該些快取線是否能被替換。
- 如申請專利範圍第20項所述之快取記憶體的替換方法,其中該區塊鎖定訊號為對該些記憶體區塊中對應該些快取線的多個鎖定位元執行一邏輯運算而得到。
- 如申請專利範圍第19項所述之快取記憶體的替換方法,其中該些快取線的相對優先關係包括該些快取線被使用的次數以及時間,該些記憶體區塊的相對優先關係包括該些記憶體區塊被使用的次數以及時間。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101043388A CN102147772B (zh) | 2011-04-22 | 2011-04-22 | 快取存储器的替换装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201243595A TW201243595A (en) | 2012-11-01 |
TWI451254B true TWI451254B (zh) | 2014-09-01 |
Family
ID=44422043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100120443A TWI451254B (zh) | 2011-04-22 | 2011-06-10 | 快取記憶體的替換裝置及方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102147772B (zh) |
TW (1) | TWI451254B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0706131A2 (en) * | 1994-10-05 | 1996-04-10 | International Business Machines Corporation | Method and system for efficient miss sequence cache line allocation |
CN1661571A (zh) * | 2003-09-04 | 2005-08-31 | 国际商业机器公司 | 高速缓存的数据替换系统和确定方法 |
CN101097547A (zh) * | 2006-05-04 | 2008-01-02 | 英特尔公司 | 用智能最近最少使用方案在高速缓存中进行功率性能调整 |
US20090113137A1 (en) * | 2007-10-30 | 2009-04-30 | Grayson Brian C | Pseudo least recently used (plru) cache replacement |
US20090113134A1 (en) * | 2007-10-25 | 2009-04-30 | John David Irish | Method and Cache Control Circuit for Replacing Cache Lines Using Alternate PLRU Algorithm and Victim Cache Coherency State |
TW201107975A (en) * | 2009-08-26 | 2011-03-01 | Via Tech Inc | Apparatuses and methods for allocating in memory |
-
2011
- 2011-04-22 CN CN2011101043388A patent/CN102147772B/zh active Active
- 2011-06-10 TW TW100120443A patent/TWI451254B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0706131A2 (en) * | 1994-10-05 | 1996-04-10 | International Business Machines Corporation | Method and system for efficient miss sequence cache line allocation |
CN1661571A (zh) * | 2003-09-04 | 2005-08-31 | 国际商业机器公司 | 高速缓存的数据替换系统和确定方法 |
CN101097547A (zh) * | 2006-05-04 | 2008-01-02 | 英特尔公司 | 用智能最近最少使用方案在高速缓存中进行功率性能调整 |
US20090113134A1 (en) * | 2007-10-25 | 2009-04-30 | John David Irish | Method and Cache Control Circuit for Replacing Cache Lines Using Alternate PLRU Algorithm and Victim Cache Coherency State |
US20090113137A1 (en) * | 2007-10-30 | 2009-04-30 | Grayson Brian C | Pseudo least recently used (plru) cache replacement |
TW201107975A (en) * | 2009-08-26 | 2011-03-01 | Via Tech Inc | Apparatuses and methods for allocating in memory |
Also Published As
Publication number | Publication date |
---|---|
CN102147772B (zh) | 2013-05-22 |
CN102147772A (zh) | 2011-08-10 |
TW201243595A (en) | 2012-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10740247B2 (en) | Method for accessing entry in translation lookaside buffer TLB and processing chip | |
US9075721B2 (en) | Computer readable recording medium having stored therein information processing program, information processing apparatus and information processing method | |
US20100030997A1 (en) | Virtual memory management | |
US20160294693A1 (en) | Routing Lookup Method and Device, and Construction Method for B-tree Structure | |
US8402248B2 (en) | Explicitly regioned memory organization in a network element | |
JP6088951B2 (ja) | キャッシュメモリシステムおよびプロセッサシステム | |
US11836079B2 (en) | Storage management apparatus, storage management method, processor, and computer system | |
JP2019096309A (ja) | メンテナンス動作の実行 | |
JP2021530028A (ja) | 記憶システムをメインメモリとして使用するための方法および装置 | |
CN110046107B (zh) | 存储器地址转换装置和方法 | |
KR102355374B1 (ko) | 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법 | |
US8468297B2 (en) | Content addressable memory system | |
CN116860665A (zh) | 由处理器执行的地址翻译方法及相关产品 | |
US10754786B2 (en) | Memory access method using simplified mapping table requiring smaller memory space | |
JPWO2008155849A1 (ja) | 演算処理装置、tlb制御方法、tlb制御プログラムおよび情報処理装置 | |
WO2015032214A1 (zh) | 一种同时支持IPv4和IPv6的高速路由查找方法及装置 | |
TWI451254B (zh) | 快取記憶體的替換裝置及方法 | |
US20230144038A1 (en) | Memory pooling bandwidth multiplier using final level cache system | |
JP2000276405A (ja) | アドレス変換装置及びこのアドレス変換装置を有するコンピュータシステム | |
TWI428741B (zh) | 記憶體管理系統與方法 | |
US8756362B1 (en) | Methods and systems for determining a cache address | |
KR20170112909A (ko) | 메모리 제어 방법 및 장치 | |
JP5196249B2 (ja) | キャッシュメモリを利用するためのメモリシステム、その方法及びそのプログラム | |
WO2016192658A1 (zh) | 一种高速缓冲存储器中数据块的替换方法和装置 | |
US12038847B2 (en) | A/D bit storage, processing, and modes |