TWI553479B - 具備標籤自動比對機制的標籤記憶體、快取系統及其快取方法 - Google Patents
具備標籤自動比對機制的標籤記憶體、快取系統及其快取方法 Download PDFInfo
- Publication number
- TWI553479B TWI553479B TW105102783A TW105102783A TWI553479B TW I553479 B TWI553479 B TW I553479B TW 105102783 A TW105102783 A TW 105102783A TW 105102783 A TW105102783 A TW 105102783A TW I553479 B TWI553479 B TW I553479B
- Authority
- TW
- Taiwan
- Prior art keywords
- comparison
- tag
- label
- memory
- tags
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
-
- 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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- 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/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
- G06F2212/2228—Battery-backed RAM
-
- 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/60—Details of cache memory
Description
本發明是有關於一種快取技術,且特別是有關於一種具備標籤自動比對機制的標籤記憶體、快取系統及其快取方法。
在計算機系統中,處理器可使用快取記憶體,以改進其資料存取效能,從而提昇計算機系統的整體效能。快取記憶體具有儲存標籤(tag)的區域以及儲存資料的區域。標籤的存取及比對是為了決定在目前的快取記憶體內是否存有所需的資料。一般來說,由於靜態隨機存取記憶體(SRAM)的存取速度快速,因此通常會採用靜態隨機存取記憶體來儲存標籤。當為了提昇計算機系統的整體效能而增加快取記憶體的容量時,標籤的儲存量也將隨之增加。然而,加大靜態隨機存取記憶體的容量(或是增加靜態隨機存取記憶體的數量)來儲存大量的標籤將會大幅增加硬體上的成本,故可採用高容量且較低成本的記憶體裝置來儲存標籤,例如動態隨機存取記憶體(DRAM)等等。
然而,動態隨機存取記憶體之類的記憶體在接收到讀取指令及位址之後,尚需等待一段時間後方能依序地輸出所要比對的標籤,並無法同時將所要比對的標籤輸出,以致於無法對所要比對的標籤進行並行比對。如此一來,將大幅增加標籤比對的時間而降低計算機系統的整體效能。
有鑑於此,本發明提供一種具備標籤自動比對機制的標籤記憶體、快取系統及其快取方法,在採用高容量且較低成本的記憶體裝置(例如各種DRAM,但不限於此)來儲存標籤的同時,還可降低標籤的比對時間以提昇快取系統的整體效能。
本發明的標籤記憶體包括記憶晶胞陣列、多個感應放大器以及標籤比較電路。記憶晶胞陣列用以儲存多個快取標籤,其中記憶晶胞陣列接收關聯於記憶體位址的索引,且根據索引而輸出此些快取標籤中的多個列標籤。此些感應放大器耦接到記憶晶胞陣列以接收此些列標籤,且對此些列標籤進行信號放大處理以作為多個比較標籤。標籤比較電路用以接收關聯於記憶體位址的目標標籤,且耦接到此些感應放大器以接收此些比較標籤。標籤比較電路將目標標籤與此些比較標籤的每一者進行並行比對。當此些比較標籤的其中一者與目標標籤符合時,標籤比較電路輸出符合的比較標籤的位置以作為第一行位址,其中第一行位址為記憶體位址對應至第一資料記憶體的行位址。
在本發明的一實施例中,上述的索引對應到記憶晶胞陣列中的一列區塊,且此些列標籤儲存在此列區塊。上述的標籤比較電路包括暫存器、判斷電路以及位址決定電路。暫存器用以儲存此些比較標籤。判斷電路耦接到暫存器以接收此些比較標籤,將此些比較標籤的每一者與目標標籤進行並行比對,並據以產生比對結果。位址決定電路耦接到暫存器以接收此些比較標籤,且耦接到判斷電路以接收比對結果。當此些比較標籤的其中一者與目標標籤符合時,判斷電路輸出擊中(hit)的比對結果,且位址決定電路輸出此符合的比較標籤於上述列區塊中的位置以作為第一行位址。
在本發明的一實施例中,上述的標籤比較電路更接收索引。索引包括上層輔助標籤,且此些比較標籤的每一者包括下層標籤以及其餘標籤。標籤比較電路將目標標籤與各此些比較標籤的下層標籤進行並行比對。若此些比較標籤的其中一者的下層標籤與目標標籤符合,標籤比較電路更判斷此符合的比較標籤中的其餘標籤與索引中的上層輔助標籤是否相符,若判斷結果為否,則標籤比較電路輸出此符合的比較標籤的位置以作為第一行位址,其中第一資料記憶體為多個層級快取的其中一級快取。
在本發明的一實施例中,此些比較標籤的每一者更包括上層旗標。若標籤比較電路判斷此符合的比較標籤中的其餘標籤與索引中的上層輔助標籤相符,標籤比較電路更判斷此符合的比較標籤中的上層旗標是否被設定,若此符合的比較標籤中的上層旗標未被設定,則標籤比較電路輸出此符合的比較標籤的位置以作為第一行位址。
在本發明的一實施例中,此些比較標籤的每一者更包括路位置(way position)。若此符合的比較標籤中的上層旗標被設定,則標籤比較電路輸出此符合的比較標籤的路位置以作為第二行位址,其中第二行位址為記憶體位址對應至第二資料記憶體的行位址。第二資料記憶體為此些層級快取的其中另一級快取,且第一資料記憶體位於第二資料記憶體的下一層級。上層輔助標籤的位元長度關聯於第一資料記憶體與第二資料記憶體之間的記憶容量的差異。
本發明的快取系統包括上述的具備標籤自動比對機制的標籤記憶體、第一資料記憶體以及處理器。處理器用以傳送記憶體位址以存取資料。標籤記憶體輸出第一行位址至第一資料記憶體,致使第一資料記憶體根據第一行位址與關聯於記憶體位址的第一列位址而對資料進行儲存或讀取動作。
本發明的快取方法包括以下步驟。利用標籤記憶體中的記憶晶胞陣列來儲存多個快取標籤。透過處理器來提供記憶體位址。透過記憶晶胞陣列根據關聯於記憶體位址的索引來提供此些快取標籤中的多個列標籤。透過標籤記憶體中的多個感應放大器來對此些列標籤進行信號放大處理以作為多個比較標籤。透過標籤記憶體中的標籤比較電路將關聯於記憶體位址的目標標籤與此些比較標籤的每一者進行並行比對。當此些比較標籤的其中一者與目標標籤符合時,透過標籤比較電路將此符合的比較標籤的位置作為第一行位址。透過第一資料記憶體根據第一行位址與關聯於記憶體位址的第一列位址而對資料進行儲存或讀取動作。
基於上述,本發明實施例的快取系統之標籤記憶體具備標籤自動比對的機制,特別是在採用大記憶容量快取(例如DRAM快取)的快取系統中,可在標籤記憶體的內部進行目標標籤與比較標籤的並行比對動作,而不是將標籤記憶體內部的比較標籤依序地輸出並依序地與目標標籤進行比對,故可大幅降低目標標籤與比較標籤的比對時間而提昇快取系統的整體效能。此外,本發明實施例的快取系統與快取方法可將多個層級快取的標籤合併以同時進行比對。如此一來,可減少快取系統的多個層級快取的標籤的比對時間。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
現將詳細參考本發明之示範性實施例,在附圖中說明所述示範性實施例之實例。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件代表相同或類似部分。
請同時參照圖1與圖2,圖1是依據本發明一實施例所繪示的快取系統100,而圖2是圖1的標籤記憶體130的架構示意圖。快取系統100可包括處理器110、標籤記憶體130以及第一資料記憶體150,但本發明並不以此為限。處理器110用以傳送記憶體位址AD以存取資料DA,其中記憶體位址AD可透過處理器110或快取系統100中的一控制器(未繪示,例如為北橋晶片,但不限於此)進行位址映射(address mapping)以分割為目標標籤141以及索引142。
標籤記憶體130與第一資料記憶體150可視為快取系統100的多個層級快取中的其中一層快取。標籤記憶體130用以儲存多個快取標籤。標籤記憶體130可將記憶體位址AD中的目標標籤141與索引142所對應到的快取標籤進行並行比對,從而判斷資料DA是否位於第一資料記憶體150,稍後會再進行詳細的說明。在本發明的一實施例中,第一資料記憶體150可採用多個動態隨機存取記憶晶胞(DRAM cell)、多個嵌入式動態隨機存取記憶晶胞(eDRAM cell)或是多個電阻式記憶晶胞(RRAM cell)等等的晶胞來實現,但本發明並不以此為限。
以下將針對標籤記憶體130的架構及運作進行更詳細的說明。如圖2所示,標籤記憶體130可包括記憶晶胞陣列133、感應放大器131以及標籤比較電路132,但本發明並不以此為限。記憶晶胞陣列133用以儲存多個快取標籤,如圖2所示。記憶晶胞陣列133可接收關聯於記憶體位址AD的索引142。記憶晶胞陣列133可根據索引142而對應到列區塊RB,且可據以輸出此些快取標籤中儲放在列區塊RB中的列標籤T1~Tn。在本發明的一實施例中,記憶晶胞陣列133可採用多個動態隨機存取記憶晶胞(DRAM cell)、多個嵌入式動態隨機存取記憶晶胞(eDRAM cell)或是多個電阻式記憶晶胞(RRAM cell)等等的晶胞來實現,但本發明並不以此為限。
感應放大器131耦接到記憶晶胞陣列133以接收列標籤T1~Tn,且可對列標籤T1~Tn進行信號放大處理以作為比較標籤CT1~CTn。
標籤比較電路132用以接收關聯於記憶體位址AD的目標標籤141,且耦接到感應放大器131以接收比較標籤CT1~CTn。標籤比較電路132將目標標籤141與每一個比較標籤CT1~CTn進行並行比對。當其中一個比較標籤(假設是比較標籤CT1)與目標標籤141符合(match)時,表示處理器110要對記憶體位址AD進行存取的資料DA位於第一資料記憶體150,故標籤比較電路132可輸出符合的比較標籤(比較標籤T1)的位置以作為第一行位址(column address) COL1,其中第一行位址COL1為記憶體位址AD對應至第一資料記憶體150的行位址。
更進一步來說,標籤記憶體130可輸出第一行位址COL1至第一資料記憶體150,致使第一資料記憶體150根據第一行位址COL1與關聯於記憶體位址AD的第一列位址(row address)而對資料DA進行儲存或讀取動作。也就是說,資料DA將被寫入第一資料記憶體150的第一列位址與第一行位址COL1處,或是將自第一資料記憶體150的第一列位址與第一行位址COL1處讀取出來並回傳給上一層級快取或處理器110。值得一提的是,為了降低第一資料記憶體150對資料DA的存取等待時間,在標籤記憶體130輸出第一行位址COL1至第一資料記憶體150之前,可先將第一資料記憶體150中對應於第一列位址的列資料啟動(active)。如此一來,一旦第一資料記憶體150接收到第一行位址COL1,即可寫入資料DA或是輸出資料DA。
特別一提的是,倘若第一資料記憶體150為動態隨機存取記憶體,則可根據第一資料記憶體150的容量大小並透過位址映射而將索引142分割為第一組位址(bank address)與第一列位址,致使第一資料記憶體150可根據第一組位址、第一列位址以及第一行位址COL1而對資料DA進行儲存或讀取動作。
以下請參照圖3,圖3是圖2的標籤比較電路132的架構示意圖。標籤比較電路132可包括暫存器1321、判斷電路1323以及位址決定電路1325。暫存器1321用以儲存比較標籤CT1~CTn。判斷電路1323耦接到暫存器1321以接收比較標籤CT1~CTn,將每一個比較標籤CT1~CTn與目標標籤141進行並行比對,並據以產生比對結果RS。位址決定電路1325耦接到暫存器1321以接收比較標籤CT1~CTn,且耦接到判斷電路1323以接收比對結果RS。當其中一個比較標籤(在此假設是比較標籤CT1)與目標標籤141符合時,判斷電路1323可輸出擊中(hit)的比對結果RS,且位址決定電路1325可輸出符合的比較標籤(比較標籤CT1)於列區塊RB中的位置以作為第一行位址COL1。舉例來說,假設比較標籤CT1存放在列區塊RB中的第一個位置,則位址決定電路1325可輸出位址值為「1」的第一行位址COL1,但本發明並不以此為限。相對地,當每一個比較標籤CT1~CTn皆不符合目標標籤141時,則判斷電路1323將輸出未擊中(miss)的比對結果RS。
需特別說明的是,本發明圖1實施例所示的快取系統100,是將目標標籤141輸入標籤記憶體130,並在標籤記憶體130的內部進行目標標籤141與比較標籤CT1~CTn的並行比對動作,而不是將標籤記憶體130內部比較標籤CT1~CTn依序輸出並依序地與目標標籤141進行比對,故可大幅降低目標標籤141與比較標籤CT1~CTn的比對時間而提昇快取系統100的整體效能。
在本發明的一實施例中,為了減少快取系統的多個層級快取的標籤的比對時間,還可將此些層級快取中的至少兩個層級的標籤合併以同時進行比對。為了便於說明,以下將以兩個層級之標籤合併的實施方式為範例來說明,三個以上層級之標籤合併的實施方式則可依此類推。
以下請參照圖4,圖4是依據本發明另一實施例所繪示的快取系統200。快取系統200可包括處理器110、標籤記憶體230、第一資料記憶體150以及第二資料記憶體270,但本發明不限於此。快取系統200的處理器110與第一資料記憶體150分別類似於圖1所示的快取系統100的處理器110與第一資料記憶體150,故可參酌上述的相關說明,在此不再贅述。在本發明的一實施例中,第二資料記憶體270可採用多個動態隨機存取記憶晶胞(DRAM cell)、多個嵌入式動態隨機存取記憶晶胞(eDRAM cell)或是多個電阻式記憶晶胞(RRAM cell)等等的晶胞來實現,但本發明並不以此為限。
相較於圖1所示的快取系統100中,標籤記憶體130與第一資料記憶體150為快取系統100的其中一層快取,在圖4所示的快取系統200中,標籤記憶體230與第一資料記憶體150可視為快取系統200的多個層級快取中的其中一層快取,且標籤記憶體230與第二資料記憶體270可視為快取系統200的多個層級快取中的其中另一層快取,其中第一資料記憶體150位於第二資料記憶體270的下一層級,且第一資料記憶體150的記憶容量大於第二資料記憶體270的記憶容量。換句話說,快取系統200中的兩個不同層級快取可共用同一個標籤記憶體230。更進一步來說,標籤記憶體230可儲存不同層級快取的快取標籤。
詳言之,處理器110可傳送記憶體位址AD以存取資料DA,其中記憶體位址AD可透過處理器110或快取系統200中的一控制器(未繪示,例如為北橋晶片,但不限於此)進行位址映射以分割為目標標籤141以及索引142。
標籤記憶體230可同時判斷資料DA是否位於第一資料記憶體150或第二資料記憶體270中。若標籤記憶體230判斷處理器110要對記憶體位址AD進行存取的資料DA位於第一資料記憶體150,則可產生並輸出第一行位址COL1至第一資料記憶體150。若標籤記憶體230判斷處理器110要對記憶體位址AD進行存取的資料DA位於第二資料記憶體270,則可產生並輸出第二行位址COL2至第二資料記憶體270。
以下請同時參照圖4與圖5,圖5是圖4的標籤記憶體230的架構示意圖。標籤記憶體230可包括記憶晶胞陣列133、感應放大器131以及標籤比較電路232,但本發明並不以此為限。記憶晶胞陣列133用以儲存多個快取標籤,其中每一個快取標籤可具有不同層級快取的資訊,稍後會進行更詳細的說明。
一般來說,對於兩個不同層級的快取而言,記憶體位址AD透過位址映射而得到的標籤與索引僅會有些微的差異。
舉例來說,如圖6A所示,對於記憶容量較小的第二資料記憶體270而言,20位元的記憶體位址AD透過位址映射而分割出來的標籤(下稱第二標籤T62)可為12位元,而索引(下稱第二索引IDX62)則為8位元;而對於記憶容量較大的第一資料記憶體150而言,在此假設第一資料記憶體150的記憶容量為第二資料記憶體270的8倍,則20位元的記憶體位址AD透過位址映射而分割出來的標籤(下稱第一標籤T61)為9位元,而索引(下稱第一索引IDX61)則為11位元,其中第二標籤T62較第一標籤T61多出來的3個位元(因記憶容量的差異)即為第一索引IDX61的前3個位元(下稱上層輔助標籤AU62),但不限於此。換句話說,上述第一標籤T61與上述第一索引IDX61的上層輔助標籤AU62(即前3個位元)的結合即為上述第二標籤T62。因此,在本發明的一實施例中,只要對記憶體位址AD進行一次位址映射(例如基於第一資料記憶體150來對記憶體位址AD進行位址映射),再根據第一資料記憶體150與第二資料記憶體270的記憶容量的差異,即可同時取得記憶體位址AD對應至兩個不同層級快取的目標標籤。
於此情況下,請重新參照圖4及圖5,可基於第一資料記憶體150來對記憶體位址AD進行位址映射以得到目標標籤141以及索引142。如同先前所述,記憶晶胞陣列133可根據索引142而對應到列區塊RB,且可據以輸出此些快取標籤中儲放在列區塊RB中的列標籤T1~Tn。感應放大器131可對列標籤T1~Tn進行信號放大處理以作為比較標籤CT1~CTn。
特別的是,圖5的每一個快取標籤(包括信號放大處理後的比較標籤CT1~CTn)可包括下層標籤L4T、其餘標籤RT、上層旗標L3F以及路位置WP,例如圖6B的比較標籤CT1所示,但本發明並不限於此。標籤比較電路232可將目標標籤141與每一個比較標籤CT1~CTn中的下層標籤L4T進行並行比對。若其中一個比較標籤(在此假設為比較標籤CT1)的下層標籤L4T與目標標籤141符合,即表示處理器110要對記憶體位址AD進行存取的資料DA位於第一資料記憶體150或第二資料記憶體270。接著,標籤比較電路232更進一步判斷此符合的比較標籤(比較標籤CT1)中的其餘標籤RT與索引142中的上層輔助標籤1421 (例如圖6A所示的第一索引IDX61中的3個位元的上層輔助標籤AU62)是否相符,若判斷結果為否,則可確定處理器110要對記憶體位址AD進行存取的資料DA是位於第一資料記憶體150,而不是位於第二資料記憶體270。故標籤比較電路232可輸出符合的比較標籤(比較標籤CT1)位於列區塊RB的位置以作為第一行位址COL1。接著,標籤記憶體230可輸出第一行位址COL1至第一資料記憶體150,致使第一資料記憶體150可根據第一行位址COL1與關聯於記憶體位址AD的第一列位址而對資料DA進行儲存或讀取動作。
倘若標籤比較電路232判斷符合的比較標籤(比較標籤CT1)中的其餘標籤RT與索引142中的上層輔助標籤1421相符,那麼標籤比較電路232更判斷符合的比較標籤(比較標籤CT1)中的上層旗標L3F是否被設定。若符合的比較標籤(比較標籤CT1)中的上層旗標L3F未被設定,則表示處理器110要對記憶體位址AD進行存取的資料DA並不是位於第二資料記憶體270,而是位於第一資料記憶體150。因此標籤比較電路232可輸出符合的比較標籤(比較標籤CT1)位於列區塊RB的位置以作為第一行位址COL1。如同先前所述,標籤記憶體230可輸出第一行位址COL1至第一資料記憶體150,致使第一資料記憶體150可根據第一行位址COL1與關聯於記憶體位址AD的第一列位址而對資料DA進行儲存或讀取動作。
相對地,在符合的比較標籤(比較標籤CT1)中的其餘標籤RT與索引142中的上層輔助標籤1421相符的情況下,倘若符合的比較標籤(比較標籤CT1)中的上層旗標L3F被設定,則表示處理器110要對記憶體位址AD進行存取的資料DA位於第二資料記憶體270,則標籤比較電路232可輸出符合的比較標籤(比較標籤CT1)中的路位置WP以作為第二行位址COL2。接著,標籤記憶體230可輸出第二行位址COL2至第二資料記憶體270,致使第二資料記憶體270可根據第二行位址COL2與關聯於記憶體位址AD的第二列位址而對資料DA進行儲存或讀取動作。值得一提的是,為了降低第二資料記憶體270對資料DA的存取等待時間,在標籤記憶體230輸出第二行位址COL2至第二資料記憶體270之前,可先將第二資料記憶體270中對應於第二列位址的列資料啟動(active)。如此一來,一旦第二資料記憶體270接收到第二行位址COL2,即可寫入資料DA或是輸出資料DA。
以下請參照圖7,圖7是一般的快取系統與本案圖4的快取系統200的運作流程的對照示意圖,在此以第二資料記憶體270為第三層級(level 3,L3)快取且以第一資料記憶體150為第四層級(level 4,L4)快取為範例來說明。在第二層級(level 2,L2)快取未擊中之後,一般的快取系統須先執行L3 位址映射。接著比對L3的目標標籤。倘若L3快取擊中,則略過L4快取的相關動作,直接至L3快取存取資料。倘若L3快取未擊中,則執行L4 的快取存取步驟。首先執行L4位址映射。接著比對L4的目標標籤。倘若L4快取擊中,則至L4快取存取資料。倘若L4快取未擊中,則前往第五層(level 5,L5)快取或主記憶體進行資料存取。
相對地,本案圖4所示的快取系統200在比對L3快取的目標標籤(例如圖6A所示的第二標籤T62)時,同時可對L4快取的目標標籤(例如圖6A所示的第一標籤T61)進行比對,並區分資料是位於L3快取或是L4快取,因此,僅需進行一次位址映射與一次共用標籤的比對動作即可。如此一來,可減少快取系統200的兩個層級快取(L3快取與L4快取)的目標標籤的比對時間。
圖8是根據本發明一實施例所繪示的快取方法的步驟流程示意圖。請同時參照圖1~圖3以及圖8,本範例實施例的快取方法可用於圖1所示的快取系統100。本範例實施例的快取方法包含如下步驟。首先,在步驟S800中,利用標籤記憶體130中的記憶晶胞陣列133來儲存多個快取標籤。接著,在步驟S810中,透過處理器110來提供記憶體位址AD。然後,在步驟S820中,透過記憶晶胞陣列133根據關聯於記憶體位址AD的索引142來提供此些快取標籤中的多個列標籤T1~Tn。之後,在步驟S830中,透過標籤記憶體130中的感應放大器131來對列標籤T1~Tn進行信號放大處理以作為多個比較標籤CT1~CTn。接著,在步驟S840中,透過標籤記憶體130中的標籤比較電路132將關聯於記憶體位址AD的目標標籤141與每一個比較標籤CT1~CTn進行並行比對。然後,在步驟S850中,當比較標籤CT1~CTn的其中一者與目標標籤141符合時,透過標籤比較電路132將符合的比較標籤的位置作為第一行位址COL1。最後,在步驟S860中,透過第一資料記憶體150根據第一行位址COL1與關聯於記憶體位址AD的第一列位址而對資料DA進行儲存或讀取動作。
另外,本發明實施例的快取方法之細節可以由圖1至圖7實施例之敘述中獲致足夠的教示、建議與實施說明,因此不再贅述。
綜上所述,本發明實施例的快取系統之標籤記憶體具備標籤自動比對的機制,特別是在採用大記憶容量快取(例如DRAM快取)的快取系統中,可在標籤記憶體的內部進行目標標籤與比較標籤的並行比對動作,而不是將標籤記憶體內部的比較標籤依序地輸出並依序地與目標標籤進行比對,故可大幅降低目標標籤與比較標籤的比對時間而提昇快取系統的整體效能。此外,本發明實施例的快取系統與快取方法可將多個層級快取的標籤合併以同時進行比對。如此一來,可減少快取系統的多個層級快取的標籤的比對時間。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
100、200‧‧‧快取系統
110‧‧‧處理器
130、230‧‧‧標籤記憶體
131‧‧‧感應放大器
132、232‧‧‧標籤比較電路
1321‧‧‧暫存器
1323‧‧‧判斷電路
1325‧‧‧位址決定電路
133‧‧‧記憶晶胞陣列
141‧‧‧目標標籤
142‧‧‧索引
1421、AU62‧‧‧上層輔助標籤
150‧‧‧第一資料記憶體
270‧‧‧第二資料記憶體
AD‧‧‧記憶體位址
COL1‧‧‧第一行位址
COL2‧‧‧第二行位址
CT1~CTn‧‧‧比較標籤
DA‧‧‧資料
IDX61‧‧‧第一索引
IDX62‧‧‧第二索引
L3F‧‧‧上層旗標
L4T‧‧‧下層標籤
RB‧‧‧列區塊
RS‧‧‧比對結果
RT‧‧‧其餘標籤
S800、S810、S820、S830、S840、S850、S860‧‧‧步驟
T1~Tn‧‧‧列標籤
T61‧‧‧第一標籤
T62‧‧‧第二標籤
WP‧‧‧路位置
110‧‧‧處理器
130、230‧‧‧標籤記憶體
131‧‧‧感應放大器
132、232‧‧‧標籤比較電路
1321‧‧‧暫存器
1323‧‧‧判斷電路
1325‧‧‧位址決定電路
133‧‧‧記憶晶胞陣列
141‧‧‧目標標籤
142‧‧‧索引
1421、AU62‧‧‧上層輔助標籤
150‧‧‧第一資料記憶體
270‧‧‧第二資料記憶體
AD‧‧‧記憶體位址
COL1‧‧‧第一行位址
COL2‧‧‧第二行位址
CT1~CTn‧‧‧比較標籤
DA‧‧‧資料
IDX61‧‧‧第一索引
IDX62‧‧‧第二索引
L3F‧‧‧上層旗標
L4T‧‧‧下層標籤
RB‧‧‧列區塊
RS‧‧‧比對結果
RT‧‧‧其餘標籤
S800、S810、S820、S830、S840、S850、S860‧‧‧步驟
T1~Tn‧‧‧列標籤
T61‧‧‧第一標籤
T62‧‧‧第二標籤
WP‧‧‧路位置
圖1是依據本發明一實施例所繪示的快取系統。 圖2是圖1的標籤記憶體的架構示意圖。 圖3是圖2的標籤比較電路的架構示意圖。 圖4是依據本發明另一實施例所繪示的快取系統。 圖5是圖4的標籤記憶體的架構示意圖。 圖6A是依據本發明一實施例所繪示的記憶體位址基於第一資料記憶體與第二資料記憶體進行位址映射的示意圖。 圖6B是依據本發明一實施例所繪示的每一個快取標籤的內容示意圖。 圖7是一般的快取系統與圖4的快取系統的運作流程的對照示意圖。 圖8是根據本發明一實施例所繪示的快取方法的步驟流程示意圖。
130‧‧‧標籤記憶體
131‧‧‧感應放大器
132‧‧‧標籤比較電路
133‧‧‧記憶晶胞陣列
141‧‧‧目標標籤
142‧‧‧索引
COL1‧‧‧第一行位址
CT1~CTn‧‧‧比較標籤
RB‧‧‧列區塊
RS‧‧‧比對結果
T1~Tn‧‧‧列標籤
Claims (18)
- 一種具備標籤自動比對機制的標籤記憶體,包括: 一記憶晶胞陣列,用以儲存多個快取標籤,其中該記憶晶胞陣列接收關聯於一記憶體位址的一索引,且根據該索引而輸出該些快取標籤中的多個列標籤; 多個感應放大器,耦接到該記憶晶胞陣列以接收該些列標籤,且對該些列標籤進行信號放大處理以作為多個比較標籤;以及 一標籤比較電路,用以接收關聯於該記憶體位址的一目標標籤,且耦接到該些感應放大器以接收該些比較標籤,該標籤比較電路將該目標標籤與該些比較標籤的每一者進行並行比對, 其中,當該些比較標籤的其中一者與該目標標籤符合時,該標籤比較電路輸出該符合的比較標籤的位置以作為一第一行位址, 其中該第一行位址為該記憶體位址對應至一第一資料記憶體的行位址。
- 如申請專利範圍第1項所述的標籤記憶體,其中該索引對應到該記憶晶胞陣列中的一列區塊,且該些列標籤儲存在該列區塊,其中該標籤比較電路包括: 一暫存器,用以儲存該些比較標籤; 一判斷電路,耦接到該暫存器以接收該些比較標籤,將該些比較標籤的每一者與該目標標籤進行並行比對,並據以產生一比對結果;以及 一位址決定電路,耦接到該暫存器以接收該些比較標籤,且耦接到該判斷電路以接收該比對結果, 其中,當該些比較標籤的其中一者與該目標標籤符合時,該判斷電路輸出擊中(hit)的該比對結果,且該位址決定電路輸出該符合的比較標籤於該列區塊中的位置以作為該第一行位址。
- 如申請專利範圍第2項所述的標籤記憶體,其中當該些比較標籤的每一者皆不符合該目標標籤時,該判斷電路輸出未擊中(miss)的該比對結果。
- 如申請專利範圍第1項所述的標籤記憶體,其中該標籤比較電路更接收該索引,該索引包括一上層輔助標籤,且該些比較標籤的每一者包括一下層標籤以及一其餘標籤,其中: 該標籤比較電路將該目標標籤與各該些比較標籤的該下層標籤進行並行比對, 若該些比較標籤的其中一者的該下層標籤與該目標標籤符合,該標籤比較電路更判斷該符合的比較標籤中的該其餘標籤與該索引中的該上層輔助標籤是否相符,若判斷結果為否,則該標籤比較電路輸出該符合的比較標籤的位置以作為該第一行位址, 其中該第一資料記憶體為多個層級快取的其中一級快取。
- 如申請專利範圍第4項所述的標籤記憶體,其中該些比較標籤的每一者更包括一上層旗標,其中: 若該標籤比較電路判斷該符合的比較標籤中的該其餘標籤與該索引中的該上層輔助標籤相符,該標籤比較電路更判斷該符合的比較標籤中的該上層旗標是否被設定,若該符合的比較標籤中的該上層旗標未被設定,則該標籤比較電路輸出該符合的比較標籤的位置以作為該第一行位址。
- 如申請專利範圍第5項所述的標籤記憶體,其中該些比較標籤的每一者更包括一路位置(way position),其中: 若該符合的比較標籤中的該上層旗標被設定,則該標籤比較電路輸出該符合的比較標籤的該路位置以作為一第二行位址, 其中該第二行位址為該記憶體位址對應至一第二資料記憶體的行位址, 其中該第二資料記憶體為該些層級快取的其中另一級快取,且該第一資料記憶體位於該第二資料記憶體的下一層級, 其中該上層輔助標籤的位元長度關聯於該第一資料記憶體與該第二資料記憶體之間的記憶容量的差異。
- 一種快取系統,包括: 如申請專利範圍第1項所述的具備標籤自動比對機制的標籤記憶體; 該第一資料記憶體;以及 一處理器,用以傳送該記憶體位址以存取一資料, 其中該標籤記憶體輸出該第一行位址至該第一資料記憶體,致使該第一資料記憶體根據該第一行位址與關聯於該記憶體位址的一第一列位址而對該資料進行儲存或讀取動作。
- 如申請專利範圍第7項所述的快取系統,其中在該標籤記憶體輸出該第一行位址至該第一資料記憶體之前,該第一資料記憶體中對應於該第一列位址的一列資料被啟動(active)。
- 如申請專利範圍第7項所述的快取系統,其中該標籤比較電路更接收該索引,該索引包括一上層輔助標籤,且該些比較標籤的每一者包括一下層標籤以及一其餘標籤,其中: 該標籤比較電路將該目標標籤與各該些比較標籤的該下層標籤進行並行比對, 當該些比較標籤的其中一者的該下層標籤與該目標標籤符合時,該標籤比較電路更判斷該符合的比較標籤中的該其餘標籤與該索引中的該上層輔助標籤是否相符,若判斷結果為否,則該標籤比較電路輸出該符合的比較標籤的位置以作為該第一行位址。
- 如申請專利範圍第9項所述的快取系統,其中該些比較標籤的每一者更包括一上層旗標,其中: 若該標籤比較電路判斷該符合的比較標籤中的該其餘標籤與該索引中的該上層輔助標籤相符,該標籤比較電路更判斷該符合的比較標籤中的該上層旗標是否被設定,若該符合的比較標籤中的該上層旗標未被設定,則該標籤比較電路輸出該符合的比較標籤的位置以作為該第一行位址。
- 如申請專利範圍第10項所述的快取系統,更包括一第二資料記憶體,其中該些比較標籤的每一者更包括一路位置(way position),其中: 若該符合的比較標籤中的該上層旗標被設定,則該標籤比較電路輸出該符合的比較標籤的該路位置以作為一第二行位址, 其中該標籤記憶體輸出該第二行位址至該第二資料記憶體,致使該第二資料記憶體根據該第二行位址與關聯於該記憶體位址的一第二列位址而對該資料進行儲存或讀取動作。
- 如申請專利範圍第11項所述的快取系統,其中該第一資料記憶體與該第二資料記憶體分別為多個層級快取的其中一級快取,該第一資料記憶體位於該第二資料記憶體的下一層級,且該第一資料記憶體的記憶容量大於該第二資料記憶體的記憶容量, 其中該上層輔助標籤的位元長度關聯於該第一資料記憶體與該第二資料記憶體之間的記憶容量的差異。
- 一種快取方法,包括: 利用一標籤記憶體中的一記憶晶胞陣列來儲存多個快取標籤; 透過一處理器來提供一記憶體位址; 透過該記憶晶胞陣列根據關聯於該記憶體位址的一索引來提供該些快取標籤中的多個列標籤; 透過該標籤記憶體中的多個感應放大器來對該些列標籤進行信號放大處理以作為多個比較標籤; 透過該標籤記憶體中的一標籤比較電路將關聯於該記憶體位址的一目標標籤與該些比較標籤的每一者進行並行比對; 當該些比較標籤的其中一者與該目標標籤符合時,透過該標籤比較電路將該符合的比較標籤的位置作為一第一行位址;以及 透過一第一資料記憶體根據該第一行位址與關聯於該記憶體位址的一第一列位址而對一資料進行儲存或讀取動作。
- 如申請專利範圍第13項所述的快取方法,更包括: 在該標籤記憶體提供該第一行位址至該第一資料記憶體之前,啟動該第一資料記憶體中對應於該第一列位址的一列資料。
- 如申請專利範圍第13項所述的快取方法,其中該些比較標籤的每一者包括一下層標籤以及一其餘標籤,該索引包括一上層輔助標籤,其中所述透過該標籤比較電路將該目標標籤與該些比較標籤的每一者進行並行比對的步驟包括: 透過該標籤比較電路來並行比對該目標標籤與各該些比較標籤的該下層標籤; 其中所述當該些比較標籤的其中該者與該目標標籤符合時,透過該標籤比較電路將該符合的比較標籤的位置作為該第一行位址的步驟包括: 當該些比較標籤的其中該者的該下層標籤與該目標標籤符合時,更透過該標籤比較電路判斷該符合的比較標籤中的該其餘標籤與該索引中的該上層輔助標籤是否相符,若判斷結果為否,則透過該標籤比較電路提供該符合的比較標籤的位置以作為該第一行位址。
- 如申請專利範圍第15項所述的快取方法,其中該些比較標籤的每一者更包括一上層旗標,且所述快取方法更包括: 若該標籤比較電路判斷該符合的比較標籤中的該其餘標籤與該索引中的該上層輔助標籤相符,更透過該標籤比較電路判斷該符合的比較標籤中的該上層旗標是否被設定,若該符合的比較標籤中的該上層旗標未被設定,則透過該標籤比較電路提供該符合的比較標籤的位置以作為該第一行位址。
- 如申請專利範圍第16項所述的快取方法,其中該些比較標籤的每一者更包括一路位置(way position),且所述快取方法更包括: 若該符合的比較標籤中的該上層旗標被設定,則透過該標籤比較電路提供該符合的比較標籤的該路位置以作為一第二行位址;以及 透過一第二資料記憶體根據該第二行位址與關聯於該記憶體位址的一第二列位址而對該資料進行儲存或讀取動作。
- 如申請專利範圍第17項所述的快取方法,其中該第一資料記憶體與該第二資料記憶體分別為多個層級快取的其中一級快取,該第一資料記憶體位於該第二資料記憶體的下一層級,且該第一資料記憶體的記憶容量大於該第二資料記憶體的記憶容量, 其中該上層輔助標籤的位元長度關聯於該第一資料記憶體與該第二資料記憶體之間的記憶容量的差異。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105102783A TWI553479B (zh) | 2016-01-29 | 2016-01-29 | 具備標籤自動比對機制的標籤記憶體、快取系統及其快取方法 |
US15/163,682 US9990302B2 (en) | 2016-01-29 | 2016-05-25 | Tag memory and cache system with automating tag comparison mechanism and cache method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105102783A TWI553479B (zh) | 2016-01-29 | 2016-01-29 | 具備標籤自動比對機制的標籤記憶體、快取系統及其快取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI553479B true TWI553479B (zh) | 2016-10-11 |
TW201727490A TW201727490A (zh) | 2017-08-01 |
Family
ID=57848259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105102783A TWI553479B (zh) | 2016-01-29 | 2016-01-29 | 具備標籤自動比對機制的標籤記憶體、快取系統及其快取方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9990302B2 (zh) |
TW (1) | TWI553479B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10169128B1 (en) * | 2016-06-06 | 2019-01-01 | Crossbar, Inc. | Reduced write status error polling for non-volatile resistive memory device |
TWI749960B (zh) * | 2020-12-23 | 2021-12-11 | 瑞昱半導體股份有限公司 | 資料處理裝置與其資料存取電路 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5269019A (en) * | 1991-04-08 | 1993-12-07 | Storage Technology Corporation | Non-volatile memory storage and bilevel index structure for fast retrieval of modified records of a disk track |
TW200844740A (en) * | 2006-12-26 | 2008-11-16 | Sandisk Corp | Use of a direct data file system with a continuous logical address space interface |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5848428A (en) * | 1996-12-19 | 1998-12-08 | Compaq Computer Corporation | Sense amplifier decoding in a memory device to reduce power consumption |
US7330934B2 (en) * | 2004-02-25 | 2008-02-12 | Analog Devices, Inc. | Cache memory with reduced power and increased memory bandwidth |
US9026731B2 (en) * | 2012-12-21 | 2015-05-05 | Advanced Micro Devices, Inc. | Memory scheduling for RAM caches based on tag caching |
-
2016
- 2016-01-29 TW TW105102783A patent/TWI553479B/zh not_active IP Right Cessation
- 2016-05-25 US US15/163,682 patent/US9990302B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5269019A (en) * | 1991-04-08 | 1993-12-07 | Storage Technology Corporation | Non-volatile memory storage and bilevel index structure for fast retrieval of modified records of a disk track |
TW200844740A (en) * | 2006-12-26 | 2008-11-16 | Sandisk Corp | Use of a direct data file system with a continuous logical address space interface |
Also Published As
Publication number | Publication date |
---|---|
TW201727490A (zh) | 2017-08-01 |
US9990302B2 (en) | 2018-06-05 |
US20170220480A1 (en) | 2017-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9971697B2 (en) | Nonvolatile memory module having DRAM used as cache, computing system having the same, and operating method thereof | |
TWI744457B (zh) | 對混合記憶體模組進行存取元資料的方法及混合記憶體模組 | |
US10310976B2 (en) | System and method for concurrently checking availability of data in extending memories | |
CN109582214B (zh) | 数据访问方法以及计算机系统 | |
US20190278712A1 (en) | Cache architecture for comparing data | |
KR101559023B1 (ko) | 메모리 페이지들의 일부에 저장된 메타데이터를 갖는 메모리 | |
US20170091099A1 (en) | Memory controller for multi-level system memory having sectored cache | |
US20200117396A1 (en) | Memory module and memory system relating thereto | |
US10185619B2 (en) | Handling of error prone cache line slots of memory side cache of multi-level system memory | |
CN114860785B (zh) | 缓存数据处理系统、方法、计算机设备和存储介质 | |
US11403173B2 (en) | Multiple read and write port memory | |
WO2018090255A1 (zh) | 内存访问技术 | |
US20170235522A1 (en) | Nonvolatile memory capable of outputting data using wraparound scheme, computing system having the same, and read method thereof | |
CN107408079A (zh) | 带有一致单元的多级别系统存储器的存储器控制器 | |
TWI553479B (zh) | 具備標籤自動比對機制的標籤記憶體、快取系統及其快取方法 | |
US20230402086A1 (en) | Memory system | |
US20170004095A1 (en) | Memory Control Circuit and Storage Device | |
US20120215959A1 (en) | Cache Memory Controlling Method and Cache Memory System For Reducing Cache Latency | |
US10970208B2 (en) | Memory system and operating method thereof | |
US10402325B2 (en) | Memory system | |
US11288188B1 (en) | Dynamic metadata relocation in memory | |
JPH05198186A (ja) | 連想メモリシステム | |
JP6430685B2 (ja) | 半導体メモリ装置 | |
US9165088B2 (en) | Apparatus and method for multi-mode storage | |
US20240054073A1 (en) | Circuitry and Method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |