TWI570561B - 記憶體設備及操作快取記憶體之方法 - Google Patents
記憶體設備及操作快取記憶體之方法 Download PDFInfo
- Publication number
- TWI570561B TWI570561B TW104117830A TW104117830A TWI570561B TW I570561 B TWI570561 B TW I570561B TW 104117830 A TW104117830 A TW 104117830A TW 104117830 A TW104117830 A TW 104117830A TW I570561 B TWI570561 B TW I570561B
- Authority
- TW
- Taiwan
- Prior art keywords
- cache memory
- data
- cache
- memory
- location
- 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/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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/0215—Addressing or allocation; Relocation with look ahead addressing 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/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
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/221—Static 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/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- 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/30—Providing cache or TLB in specific location of a processing system
- G06F2212/304—In main memory subsystem
- G06F2212/3042—In main memory subsystem being part of a memory device, e.g. cache DRAM
-
- 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/30—Providing cache or TLB in specific location of a processing system
- G06F2212/305—Providing cache or TLB in specific location of a processing system being part of a memory device, e.g. cache DRAM
-
- 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)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本發明一般而言係關於半導體記憶體及方法,且更特定而言係關於用於一快取記憶體結構之設備及方法。
記憶體裝置通常經提供作為計算裝置或其他電子裝置中之內部半導體積體電路。存在包含揮發性及非揮發性記憶體之諸多不同類型之記憶體。揮發性記憶體可需要電力以維持其資料(例如,使用者資料、錯誤資料等),且包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM)以及其他揮發性記憶體。非揮發性記憶體可藉由在未被供電時保留所儲存資料而提供持久之資料,且可包含NAND快閃記憶體、NOR快閃記憶體、唯讀記憶體(ROM)、電可抹除可程式化ROM(EEPROM)、可抹除可程式化ROM(EPROM)及電阻可變記憶體,諸如相變隨機存取記憶體(PCRAM)、電阻式隨機存取記憶體(RRAM)及磁阻式隨機存取記憶體(MRAM)以及其他非揮發性記憶體。
一記憶體系統可包含一快取記憶體,該快取記憶體可小於及/或快於該系統之其他記憶體(例如,可稱為主記憶體之DRAM、NAND、磁碟儲存裝置、固態硬碟機(SSD)等)。作為一實例,快取記憶體可包括DRAM記憶體。一記憶體系統可快取資料以改良該記憶體系統之效能。因此,提供遞送記憶體系統之經改良效能之快取記憶體係合意
的。改良快取記憶體之延時及命中率係可提供記憶體系統之經改良效能之效能特性。
100‧‧‧系統
102‧‧‧互連匯流排
104‧‧‧佇列
110‧‧‧快取記憶體DRAM裝置/快取記憶體DRAM
112‧‧‧快取記憶體控制器
114‧‧‧輸入介面
115‧‧‧感測放大器
116‧‧‧輸出介面
117‧‧‧比較邏輯
118‧‧‧陣列
119‧‧‧感測電路
120‧‧‧記憶體裝置
122‧‧‧控制器
124‧‧‧匯流排
210‧‧‧快取記憶體DRAM裝置/快取記憶體DRAM
220‧‧‧記憶體裝置
230-0‧‧‧頁
230-R‧‧‧頁
232-0‧‧‧頁
232-1‧‧‧頁
232-(S-1)‧‧‧頁
232-S‧‧‧頁
234-0‧‧‧區塊
234-(P-1)‧‧‧區塊
340‧‧‧槽
342‧‧‧位址
344‧‧‧有效位元
346‧‧‧已變更位元
348‧‧‧資料
432-1‧‧‧快取記憶體頁/頁
432-2‧‧‧快取記憶體頁/頁
452-(M-1)‧‧‧槽
452-(M/2)‧‧‧槽
452-(M/4)‧‧‧槽
560‧‧‧命令
562‧‧‧命令指示符
564‧‧‧位址
566‧‧‧異動ID
648‧‧‧資料
666‧‧‧異動ID
672‧‧‧回應
674‧‧‧回應
676‧‧‧命中指示符
678‧‧‧遺漏指示符
742‧‧‧位址
748‧‧‧資料
766‧‧‧異動ID
782‧‧‧回應
784‧‧‧回應
786‧‧‧寫入完成指示符
M-1‧‧‧位置
M-2‧‧‧位置
M/2‧‧‧位置
(M/2)-1‧‧‧位置
圖1圖解說明根據本發明之若干實施例之呈包含一快取記憶體之一系統之形式之一設備之一方塊圖。
圖2係圖解說明根據本發明之若干實施例之自一記憶體裝置之一記憶體映射至快取記憶體之資料之映射之一方塊圖。
圖3圖解說明根據本發明之若干實施例之快取記憶體中之一快取記憶體項目。
圖4A及圖4B圖解說明根據本發明之若干實施例之快取記憶體中之一頁之內容。
圖5圖解說明根據本發明之若干實施例之與包括快取記憶體之一設備相關聯之一命令。
圖6A至圖6B圖解說明根據本發明之若干實施例之對與包括快取記憶體之一設備相關聯之一讀取命令之回應。
圖7A至圖7B圖解說明根據本發明之若干實施例之對與包括快取記憶體之一設備相關聯之一寫入命令之回應。
本發明包含用於一快取記憶體結構之設備及方法。包含根據本發明之一快取記憶體結構之一實例性設備可包含經組態以每記憶體單元頁儲存多個快取記憶體項目之一記憶體單元陣列。該設備可包含感測電路,該感測電路經組態以決定對應於來自一快取記憶體控制器之一請求之快取記憶體資料是否位於對應於該請求的陣列中之一位置處,且將指示快取記憶體資料是否位於對應於該請求之該陣列中的該位置處之一回應傳回至該快取記憶體控制器。
在若干實施例中,本發明之快取記憶體結構可提供映射至一記
憶體裝置(例如,一CDRAM裝置、STT-RAM裝置、PCM裝置(舉例而言)以及其他記憶體裝置)中之同一頁(例如,列)上之多個快取記憶體項目,此可允許平行檢查記憶體裝置上之多個快取記憶體項目。在若干實施例中,與先前之方法相比,本發明之快取記憶體結構可提供減少之能量消耗及/或經改良延遲。舉例而言,在若干實施例中,可將比較邏輯(例如,比較器)嵌入於感測電路或快取記憶體(例如,CDRAM)中之其他地方內,以在不將資料(例如,標籤資料及/或快取記憶體資料)傳送出CDRAM(例如,經由一輸入/輸出(I/O)線)之情況下平行執行多個快取記憶體項目之比較。可比較來自命令之標籤資料與CDRAM之快取記憶體項目中之標籤資料,以決定所請求資料是否位於CDRAM中或CDRAM是否準備好將對應於一命令之資料寫入至CDRAM。使用CDRAM上之感測電路執行此等比較可允許在(舉例而言)CDRAM與一快取記憶體控制器之間不傳送資料之情況下執行命令。在若干實施例中,一快取記憶體結構可包括用以接收命令及發送回應之雙(例如,單獨的)介面(例如,一輸入介面及一輸出介面)。
在本發明之以下詳細說明中,參考形成本發明之一部分且其中以圖解說明方式展示可如何實踐本發明之一或多個實施例之附圖。充分詳細地闡述此等實施例以使得熟習此項技術者能夠實踐本發明之實施例,且應理解,可利用其他實施例且可在不背離本發明之範疇之情況下做出程序、電及/或結構之改變。如本文中所使用,標誌符「M」、「N」、「P」、「R」及「S」(尤其係關於圖式中之元件符號)指示可包含經如此標誌之若干特定特徵。如本文中所使用,「若干」一特定事物可係指一或多個此等事物(例如,若干記憶體裝置可係指一或多個記憶體裝置)。
本文中之圖遵循其中第一個數字或前幾個數字對應於圖式之圖編號且剩餘數字識別圖式中之一元件或組件之一編號慣例。可藉由使
用類似之數字來識別不同圖之間的類似元件或組件。舉例而言,120可參考圖1中之元件「20」,且在圖2中一類似元件可參考為220。如將瞭解,可添加、交換及/或消除本文中之各種實施例中所展示之元件以便提供本發明之若干額外實施例。
圖1係根據本發明之若干實施例之呈包含一快取記憶體之一系統100之形式之一設備之一方塊圖。在圖1中,快取記憶體可係一快取記憶體DRAM(CDRAM)裝置110。在圖1中所展示之實例中,系統100包含一記憶體裝置120、一快取記憶體控制器112、一控制器122、一佇列104及一互連匯流排102。在若干實施例中,CDRAM裝置110、記憶體裝置120、快取記憶體控制器112、控制器122及佇列104亦可視為一設備。CDRAM裝置110包含DRAM記憶體單元之一陣列118及感測電路119。感測電路119可包含與執行由CDRAM裝置110接收之命令相關聯而使用之若干感測放大器115及比較邏輯117(例如,若干比較器)。CDRAM裝置110可經由輸入介面114及輸出介面116耦合至快取記憶體控制器112。輸入介面114可用以在CDRAM裝置110處接收來自快取記憶體控制器112之資訊(例如,命令及/或資料)。輸出介面116可用以將資訊自CDRAM裝置110發送至快取記憶體控制器112。
在若干實施例中,記憶體裝置120可包含一陣列之記憶體單元(諸如DRAM記憶體單元及/或NAND記憶體單元(舉例而言)以及其他類型之記憶體單元)。記憶體裝置120可用作儲存可由CDRAM裝置110快取之資料之一備份儲存區。
在若干實施例中,記憶體裝置120可經由匯流排124耦合至控制器122。匯流排124可係一共用之匯流排124或可包括若干單獨匯流排(例如,位址匯流排、資料匯流排、控制匯流排等)以在控制器122與記憶體裝置120之間傳送資訊。在若干實施例中,系統100可包含經由匯流排124耦合在一起之若干記憶體裝置(例如,記憶體裝置120)及若
干控制器(例如,控制器122)。
在若干實施例中,系統100可經由互連匯流排102耦合至一主機(例如,主機處理器)及/或其他記憶體裝置(未展示)。主機及/或其他記憶體裝置可經由互連匯流排102將資料及/或命令發送至佇列104。系統100可係將資料儲存於記憶體裝置120中且使用CDRAM記憶體裝置110來自記憶體裝置120快取資料之一記憶體系統。系統100亦可快取經由互連匯流排102自一主機及/或其他記憶體裝置接收之資料(例如,在CDRAM裝置110中)。
系統100可藉由將一命令(舉例而言)自佇列104發送至CDRAM 110而快取資料。舉例而言,該命令可係一讀取命令或一寫入命令。可將該命令自佇列104傳達至快取記憶體控制器112且經由輸入介面114傳達至CDRAM 110。經由輸入介面114傳達之命令可包含一命令指示符、標籤資料(例如,一位址)及一異動ID(TID)。
在若干實施例中,CDRAM裝置110可藉由定位由讀取命令位址指示之特定快取記憶體項目(例如,槽)而處理一讀取命令。CDRAM裝置110在一單個頁上可包含多個快取記憶體項目,此可允許藉由存取(例如,開啟)一單個頁而檢查多個快取記憶體項目。在若干實施例中,一快取記憶體頁可包含多個快取記憶體項目,其中每一快取記憶體項目包含來自一備份儲存區(例如,記憶體裝置120)之所快取資料之一部分。下文與圖2至圖4相關聯進一步闡述實例性快取記憶體頁及快取記憶體項目。CDRAM裝置110可讀取對應於所指示快取記憶體項目之資料且使用比較邏輯(例如,比較器)來決定一有效性指示符是否指示對應於命令之資料位於對應於該命令之位址處,(例如,是否設定了快取記憶體項目之一有效位元且讀取命令位址之一區塊位址是否匹配快取記憶體項目之區塊位址位元)。若設定了有效位元且區塊位址匹配,則槽可視為一命中且CDRAM 110可將一適合回應經由輸出
介面116傳回至快取記憶體控制器112。至快取記憶體控制器112之回應可包含一TID及對應於快取記憶體項目之快取記憶體資料。在回應中包含TID可允許快取記憶體控制器112識別該回應對應之特定命令。
舉例而言,若未設定有效位元及/或區塊位址不匹配,則快取記憶體項目可視為一遺漏且CDRAM 110可將指示在讀取命令中所請求之快取記憶體資料並不位於CDRAM 110中之一適合回應經由輸出介面116傳回至快取記憶體控制器112。至快取記憶體控制器112之回應可包含一TID,該TID可由快取記憶體控制器使用以識別該回應對應之特定命令。
在若干實施例中,CDRAM裝置110可藉由定位由寫入命令位址指示之特定快取記憶體項目(例如,槽)而處理一寫入命令。CDRAM 110可讀取對應於所指示槽之資料且使用位於CDRAM裝置110上之比較邏輯來決定一有效性指示符是否指示有效資料位於對應於該命令中之位址之槽處(例如,是否設定了槽中之有效位元且是否設定了槽中之已變更位元(dirty bit))。未設定有效位元之一決定可指示槽並未正儲存有效資料,使得可將對應於寫入命令之資料寫入至快取記憶體項目。
設定了有效位元但未設定已變更位元之一決定可指示快取記憶體項目正儲存並不與一備份儲存區中之資料不同之有效資料,如此可將資料自寫入命令寫入至快取記憶體項目。可將指示寫入已完成之一回應發送至快取記憶體控制器。該回應可包含一異動ID(TID),該異動ID可識別完成了哪一特定命令。設定了有效位元且設定了已變更位元之一決定可指示將撤出當前位於槽中之資料。在自槽撤出資料之後,將對應於寫入命令之資料寫入至該槽。然後可將指示寫入已完成之一回應發送至快取記憶體控制器112。該回應可包含一TID以及自槽撤出之資料及該資料之位址。系統100然後可將此經撤出資料傳回至一備份儲存區(例如,記憶體裝置120)。
圖2係圖解說明根據本發明之若干實施例之自一記憶體裝置之一記憶體映射至快取記憶體之資料之映射之一方塊圖。圖2中所展示之實例圖解說明自記憶體裝置220至CDRAM裝置210之資料之直接映射。記憶體裝置220可包含若干區塊(例如,區塊234-0及區塊234-(P-1))且每一區塊可包含記憶體單元之若干頁(例如頁230-0及頁230-R)。一區塊之每一頁可經快取至CDRAM裝置210中之相同位置。舉例而言,一區塊之第一頁(例如,來自區塊234-0或區塊234-(P-1)之頁230-0)可經快取至CDRAM裝置210之前兩個頁(例如,頁232-0及232-1)。來自頁230-0之位置M-1至M/2中之資料可經映射且經快取至CDRAM裝置210之頁232-1。在若干實施例中,來自一記憶體裝置之一個頁可經映射至一CDRAM裝置之前兩個頁(例如,若記憶體裝置中之一頁係CDRAM裝置中之一頁之兩倍大)。舉例而言,一特定記憶體裝置之一4KB頁可經映射至一CDRAM裝置之兩個2KB頁中。在圖2中,來自記憶體裝置220之頁230-0包含位置0、1、…、M-2、M-1,頁230-0經映射至CDRAM裝置210中之頁232-0及232-1。頁230-0之第一半部分,例如位置0至(M/2)-1,經映射至頁232-1且頁230-0之第二半部分,例如位置M/2至M-1,經映射至頁232-0。此外,在圖2中,記憶體裝置220中之區塊之最後一頁(例如,頁230-R)經映射至CDRAM 210中之最後兩個頁(例如,頁232-(S-1)及232-S)。頁230-R之第一半部分經映射至頁232-S且頁230-R之第二半部分經映射至頁232-(S-1)。
本發明之實施例不限於直接映射。舉例而言,CDRAM裝置210可用作一N路相關聯快取記憶體。亦即,可使用相關聯性來將資料自一記憶體裝置N路映射至一CDRAM裝置。CDRAM裝置可經組態,使得對應於來自一記憶體裝置之資料之一特定部分之一快取記憶體項目(例如,槽)之位置中之每一者可經映射至CDRAM裝置中之同一頁。因此,當將資料定位於CDRAM裝置中時,所請求資料可定位之每一位置(例如槽)係處於CDRAM中之一同一頁上。如此,僅需要開啟、
讀取一個頁,且僅一個頁需要使其標籤資料與來自一命令之標籤資料相比以決定所請求快取記憶體資料是否位於對應於來自一記憶體裝置之資料之一特定部分之CDRAM裝置中之一快取記憶體項目之可能位置中之任一者處。
圖3圖解說明根據本發明之若干實施例之快取記憶體中之一快取記憶體項目。在若干實施例中,諸如CDRAM之快取記憶體中之一頁可包括若干(例如,多個)快取記憶體項目(例如,槽)。每一槽可包含自一記憶體裝置所快取之資料之一部分以及標籤資料(例如,一位址、一有效位元及一已變更位元)。在圖3中,槽340包含標籤資料,該標籤資料包含一位址342、一有效位元344及一已變更位元346。槽340亦包含資料348(例如,快取記憶體資料)。位址342包含指示槽340之區塊、頁及槽之若干位元。有效位元344包含指示槽中之資料是否有效(例如,包含當前正由CDRAM快取之資料)之一位元且已變更位元346包含指示槽中之資料是否已改變但還未經寫入至一備份儲存區之一位元。資料348可包含表示儲存於槽340中之快取記憶體資料之若干位元。
圖4A及圖4B圖解說明根據本發明之若干實施例之快取記憶體中之一頁之內容。在圖4A中,快取記憶體頁432-1可包含若干快取記憶體項目(例如,槽452-(M-1)及452-M/2)。槽中之每一者可包含標籤資料(其包含一位址、一有效位元及一已變更位元)以及快取記憶體資料。舉例而言,頁432-1可快取對應於來自一備份儲存區之資料之一頁之一第一半部分之資料(例如,若來自該備份儲存區之資料之該頁係快取記憶體頁432-1之兩倍大)。
在圖4B中,快取記憶體頁432-2可包含若干快取記憶體項目(例如,槽452-(M-1)及452-M/4)。槽中之每一者可包含標籤資料(其包含一位址、一有效位元及一已變更位元),且還包含快取記憶體資料以
及一路徑索引(way index,WI)。一路徑索引(例如,WI-1或WI-N)可用以指示若干潛在槽中之一特定槽,其中(舉例而言)當CDRAM正使用N路相關聯性時,所請求資料可位於該特定槽中。在此實例中,頁432-2可包含若干槽,該等槽可各自儲存對應於來自一備份儲存區之資料之一頁之四分之一之資料(例如,若來自該備份儲存區之資料之該頁係快取記憶體頁432-2之兩倍大且用2路相關聯性映射快取記憶體頁432-2)。在圖4B中,快取記憶體頁432-2圖解說明2路相關聯性,其中對應於來自一記憶體裝置(例如,一備份儲存區)之位置M-1之資料可位於具有對應之路徑索引WI-1或WI-N之槽452-(M-1)中之任一者中且對應於來自一記憶體裝置之位置M/4之資料可位於具有路徑索引WI-1或WI-N之槽452-(M/4)中之任一者中。在若干實施例中,CDRAM可適應各種程度之相關聯性(例如,N路相關聯性)。
圖5圖解說明根據本發明之若干實施例之與包括快取記憶體之一設備相關聯之一命令560。舉例而言,命令560可係一讀取命令或一寫入命令。命令560可包含一命令指示符562,該命令指示符指示命令類型(例如,讀取命令或寫入命令)。命令560亦可包含標籤資料,該標籤資料包含一位址564,其指示與命令560相關聯之資料之區塊、頁及/或槽。命令560亦包含一異動ID(TID)566,該異動ID可由快取記憶體控制器及/或CDRAM裝置使用以識別在快取記憶體控制器與CDRAM裝置之間傳遞之對應於資料之命令。
作為一實例,命令560可係可由一CDRAM裝置接收之一讀取命令。CDRAM裝置可藉由定位命令中所指示之特定快取記憶體頁且開啟彼頁而處理該命令。該命令中所指示之一特定槽可位於所開啟之快取記憶體頁中且可讀取該特定槽中之標籤資料。CDRAM裝置上之比較邏輯可用以檢查是否設定了槽中之有效位元且命令之位址中之區塊位址是否匹配槽中之區塊位址位元。若設定了有效位元且區塊位址匹
配,則該槽可視為一命中且CDRAM可將一適合回應傳回至快取記憶體控制器。至快取記憶體控制器之回應可包含一TID及來自特定槽之快取記憶體資料。若未設定有效位元及/或區塊位址不匹配,則該槽視為一遺漏且CDRAM可將一適合回應(例如,指示讀取命令中所請求之資料並不位於CDRAM中之一回應)傳回至快取記憶體控制器。
在若干實施例中,一CDRAM 110可藉由定位一寫入命令之位址中所指示之槽而處理該寫入命令。CDRAM(例如,110)可讀取該槽處之資料且使用比較器來檢查是否設定了該槽中之有效位元且是否設定了已變更位元。若未設定有效位元,則可將來自寫入命令之資料寫入至槽。若設定了有效位元,但未設定已變更位元,則可將來自寫入命令之資料寫入至槽。可將指示寫入已完成之一回應發送至一快取記憶體控制器(例如,112)。該回應可包含一異動ID(TID),該異動ID可由快取記憶體控制器(例如,112)使用以識別完成了哪一特定命令。設定了有效位元且設定了已變更位元之一決定可指示需要撤出當前處於槽中之快取記憶體資料。在自槽撤出快取記憶體資料之後,可將來自寫入命令之快取記憶體資料旋即寫入至該槽。然後可將指示寫入已完成之一適合回應發送至一快取記憶體控制器。該回應可包含一異動ID(TID)以及自槽撤出之資料及該資料之位址。可將所撤出資料自CDRAM傳回至一備份儲存區(例如,記憶體裝置120)。
圖6A至圖6B圖解說明根據本發明之若干實施例之對與包括快取記憶體之一設備相關聯之一讀取命令之回應。圖6A圖解說明對一讀取命令之一回應672,該回應係一命中。在圖6A中,回應672包含一命中指示符676、一異動ID(TID)666及資料648。命中指示符676可指示該讀取命令中所請求之資料存在於CDRAM中。異動ID 666可用以識別與回應672相關聯之命令。資料648可係自CDRAM讀取之該讀取命令中所請求之快取記憶體資料。可回應於處理一命令之一CDRAM
裝置而在一輸出介面上將回應672自該CDRAM裝置發送至一快取記憶體控制器。CDRAM裝置可在一命令之處理期間於不在CDRAM裝置與快取記憶體控制器之間發送資料(例如,標籤資料)之情況下處理該命令。
圖6B圖解說明對一讀取命令之一回應674,該回應係一遺漏。在圖6B中,回應674包含一遺漏指示符678及一異動ID(TID)666。遺漏指示符678可指示該讀取命令中所請求之資料不存在於CDRAM中。異動ID 666可用以識別與回應674相關聯之命令。可回應於處理一命令之一CDRAM裝置而在一輸出介面上將回應674自該CDRAM裝置發送至一快取記憶體控制器。CDRAM裝置可在一命令之處理期間於不在CDRAM裝置與快取記憶體控制器之間發送資料(例如,標籤資料)之情況下處理該命令。
圖7A至圖7B圖解說明根據本發明之若干實施例之對與包括快取記憶體之一設備相關聯之一寫入命令之回應。圖7A圖解說明對一寫入命令之一回應782,該寫入命令將資料寫入至其中未設定有效位元或已變更位元(例如,在執行該寫入命令時,資料未被撤出)之一槽。
在圖7A中,回應782包含一寫入完成指示符786及一異動ID(TID)766。寫入完成指示符786可指示該寫入命令中之資料經寫入至CDRAM。異動ID 766可用以識別與回應782相關聯之命令。可回應於處理一命令之一CDRAM裝置而在一輸出介面上將回應782自該CDRAM裝置發送至一快取記憶體控制器。CDRAM裝置可在一命令之處理期間於不在CDRAM裝置與快取記憶體控制器之間發送資料(例如,標籤資料)之情況下處理該命令。
圖7B圖解說明對一寫入命令之一回應784,該寫入命令將資料寫入至其中設定了有效位元及已變更位元(例如,在執行該寫入命令時,資料被撤出)之一槽。在圖7B中,回應784包含一寫入完成指示符
786、一異動ID(TID)766及被撤出之資料之位址742,及自一槽撤出之資料748。寫入完成指示符786可指示該寫入命令中之資料經寫入至CDRAM。異動ID 766可用以識別與回應782相關聯之命令。可由CDRAM裝置自槽讀取被撤出之資料之位址742及被撤出之資料748且在回應784中將其發送至快取記憶體控制器,使得所撤出資料可經寫入至一記憶體裝置。可回應於處理一命令之一CDRAM裝置而在一輸出介面上將回應784自該CDRAM裝置發送至一快取記憶體控制器。
CDRAM裝置可在一命令之處理期間於不在CDRAM裝置與快取記憶體控制器之間發送資料(例如,標籤資料)之情況下處理該命令。
本發明包含用於一快取記憶體結構之設備及方法。包含根據本發明之一快取記憶體結構之一實例性設備可包含:一記憶體單元陣列,其經組態以每記憶體單元頁儲存多個快取記憶體項目;及感測電路,經組態以決定對應於來自一快取記憶體控制器之一請求之快取記憶體資料是否位於對應於該請求的陣列中之一位置處,且將指示快取記憶體資料是否位於對應於該請求的該陣列中之該位置處之一回應傳回至該快取記憶體控制器。
雖然本文中已圖解說明及闡述了具體實施例,但熟習此項技術者將瞭解,旨在達成相同結果之一配置可替代所展示之具體實施例。本發明意欲涵蓋本發明之一或多個實施例之變更形式或變化形式。應理解,已以一說明性方式而非一限定性方式做出以上說明。在審閱以上說明之後,熟習此項技術者將旋即明瞭以上實施例之組合及本文中未具體闡述之其他實施例。本發明之一或多個實施例之範疇包含其中使用以上架構及方法之其他應用。因此,本發明之一或多個實施例之範疇應參考所附申請專利範圍連同此等申請專利範圍所授權之等效內容之全部範圍來決定。
在前述實施方式中,出於簡化本發明之目的,將某些特徵一起
集合於一單個實施例中。本發明之此方法不應解釋為反映本發明之所揭示實施例必須使用比明確陳述於每一請求項中更多之特徵之一意圖。而是,如以下申請專利範圍反映:發明性標的物在於少於一單個所揭示實施例之所有特徵。因此,特此將以下申請專利範圍併入至實施方案中,其中每一請求項獨立地作為一單獨實施例。
100‧‧‧系統
102‧‧‧互連匯流排
104‧‧‧佇列
110‧‧‧快取記憶體DRAM裝置/快取記憶體DRAM
112‧‧‧快取記憶體控制器
114‧‧‧輸入介面
115‧‧‧感測放大器
116‧‧‧輸出介面
117‧‧‧比較邏輯
118‧‧‧陣列
119‧‧‧感測電路
120‧‧‧記憶體裝置
122‧‧‧控制器
124‧‧‧匯流排
Claims (23)
- 一種記憶體設備,其包括:一記憶體單元陣列,其經組態以每記憶體單元頁儲存多個快取記憶體項目;及感測電路,其經組態以:藉由比較自一快取記憶體中之位置所讀取之標籤資料與來自使用位於該快取記憶體之比較邏輯之一請求之標籤資料,以決定對應於來自一快取記憶體控制器之該請求之快取記憶體資料是否位於對應於該請求的該陣列中之一位置處,其中自該陣列中之該位置所讀取之該標籤資料係唯一被讀取之標籤資料且基於來自該快取記憶體控制器之該請求中的資訊位於該陣列中,且其中該陣列中之該位置對應一記憶體裝置中之一特定位置,該特定位置被映射至對應該請求之該資料之所在處;且將指示快取記憶體資料是否位於對應於該請求的該陣列中之該位置處之一回應傳回至該快取記憶體控制器。
- 如請求項1之設備,其中該設備經組態以:回應於對應於該請求之快取記憶體資料位於對應於該請求的該陣列中之該位置處之一決定而傳回該快取記憶體資料。
- 如請求項1之設備,其中該設備經組態以:回應於指示有效資料並不處於對應於該請求的該陣列中之該位置處的一有效性指示符之一狀態而將對應於該請求之快取記憶體資料寫入於該記憶體單元陣列中。
- 如請求項1之設備,其中該設備經組態以:回應於指示有效資料處於對應於該請求的該陣列中之該位置處的一有效性指示符之 一狀態而自該陣列撤出已變更資料。
- 如請求項4之設備,其中該設備經組態以:在自該記憶體單元陣列中之該位置撤出已變更資料之後,將對應於該請求之快取記憶體資料寫入於該陣列中之該位置處。
- 如請求項1至5之設備,其中該設備經組態以:在不將標籤資料發送至該快取記憶體控制器之情況下,決定快取記憶體資料是否位於對應於該請求的該陣列中之該位置處。
- 如請求項1至5之設備,其中該若干快取記憶體項目中之每一快取記憶體項目係儲存於該記憶體單元陣列之若干頁中之一者上的若干槽中之一者中。
- 一種用於操作快取記憶體之方法,其包括:自一快取記憶體控制器接收一讀取請求;在不經由一輸入/輸出(I/O)介面傳送來自該快取記憶體之標籤資料之情況下藉由比較自該快取記憶體所讀取之標籤資料與來自使用位於該快取記憶體之比較邏輯之該讀取請求之標籤資料而決定對應於該讀取請求之快取記憶體資料是否位於該快取記憶體中,其中自該快取記憶體中之該位置所讀取之該標籤資料係唯一被讀取之標籤資料且基於來自該快取記憶體控制器之該讀取請求中的資訊位於該快取記憶體中,且其中該快取記憶體中之該位置對應一記憶體裝置中之一特定位置,該特定位置被映射至對應該請求之該資料之所在處;及將指示對應於該讀取請求之該快取記憶體資料是否位於該快取記憶體中之一回應傳回至該快取記憶體控制器。
- 如請求項8之方法,其中該方法包含:回應於藉由該比較邏輯進行之對應於該讀取請求之該快取記憶體資料位於該快取記憶體中之一決定而將該快取記憶體資料自該讀取請求傳回至該快取 記憶體控制器。
- 如請求項8至9中任一項之方法,其中傳回該回應包含:回應於指示有效資料並不位於該快取記憶體中在對應於該讀取請求之該位置處之一有效性指示符而在該回應中提供指示該快取記憶體資料並不位於該快取記憶體中之一指示。
- 如請求項8至9中任一項之方法,其中傳回該回應包含:回應於與該讀取請求相關聯之標籤資料不匹配該快取記憶體中之一對應位置中之標籤資料而在該回應中提供指示該快取記憶體資料並不位於該快取記憶體中之一指示。
- 一種用於操作快取記憶體之方法,其包括:自一快取記憶體控制器接收一寫入請求;藉由比較自該快取記憶體所讀取之標籤資料與來自使用位於該快取記憶體之比較邏輯之該寫入請求之標籤資料而決定有效資料是否位於對應於該寫入請求的該快取記憶體中之一位置處,其中自該快取記憶體中之該位置所讀取之該標籤資料係唯一被讀取之標籤資料且基於來自該快取記憶體控制器之該寫入請求中的資訊位於該快取記憶體中,且其中該快取記憶體中之該位置對應一記憶體裝置中之一特定位置,該特定位置被映射至對應該請求之該資料之所在處;回應於對應於該寫入請求的該快取記憶體中之該位置包含有效資料之一決定而自該位置撤出資料;將對應於該寫入請求之快取記憶體資料寫入至對應於該寫入請求的該快取記憶體中之該位置;及將指示對應於該寫入請求之該快取記憶體資料已被寫入至該快取記憶體之一回應傳回至該快取記憶體控制器。
- 如請求項12之方法,其中決定有效資料是否位於對應於該寫入 請求的該快取記憶體中之該位置處包含:決定一第一指示符及一第二指示符之一狀態。
- 如請求項12至13中任一項之方法,其中該第一指示符係一有效位元且一第二指示符係一已變更位元。
- 如請求項12至13中任一項之方法,其中將該回應傳回至該快取記憶體控制器包含發送自對應於該寫入請求的該快取記憶體中之該位置撤出之該資料。
- 一種記憶體設備,其包括:一記憶體裝置,其耦合至一控制器;及一快取記憶體,其包括一記憶體單元陣列及感測電路,其中該快取記憶體經由一輸入介面及一輸出介面耦合至一快取記憶體控制器,且其中該快取記憶體經組態以經由該輸入介面藉由定位由一命令所指示之該快取記憶體中之一特定頁以及僅自該特定頁所讀取之資料而接收該命令、處理該命令且經由該輸出介面將一回應傳回至該快取記憶體控制器,其中該快取記憶體中之該特定頁對應一記憶體裝置中之一特定位置,該特定位置被映射至對應該命令之該資料之所在處。
- 如請求項16之設備,其中該感測電路包含用以決定對應於該命令之資料是否位於對應於該命令的該快取記憶體中之一位置處之比較邏輯。
- 如請求項16至17中任一項之設備,其中該快取記憶體經組態以在不將標籤資料傳送至該快取記憶控制器之情況下處理該命令。
- 如請求項16至17中任一項之設備,其中該快取記憶體經組態以:藉由以平行邏輯檢查多個快取記憶體項目而處理該命令來決定對應於該命令之資料是否位於對應於該命令之該快取記憶 體中。
- 一種記憶體設備,其包括:一記憶體單元陣列,其經組態以每記憶體單元頁儲存多個快取記憶體項目,且每一特定記憶體單元頁經組態以儲存對應於一備份儲存區之特定位址之多個快取記憶體項目;及感測電路,其經組態以:在不將標籤資料自該多個快取記憶體項目傳送至一快取記憶體控制器之情況下,藉由定位由一命令所指示之該快取記憶體中之一特定頁以及僅自該特定頁所讀取之資料而決定快取記憶體資料是否位於對應於該命令中所指示之該備份儲存區之一特定位址的該多個快取記憶體項目中之一者中,其中對應該命令之該資料亦位於該備份儲存區之該特定位址。
- 如請求項20之設備,其中該感測電路經組態以將指示快取記憶體資料是否位於對應於該命令中所指示之該備份儲存區之該特定位址的該多個快取記憶體項目中之一者中之一回應傳回至該快取記憶體控制器。
- 如請求項20至21中任一項之設備,其中該感測電路包含用以決定快取記憶體資料是否位於對應於該命令中所指示之該備份儲存區之該特定位址的該多個快取記憶體項目中之一者中之比較邏輯。
- 如請求項20至21中任一項之設備,其中該感測電路經組態以:藉由開啟該記憶體單元陣列之一特定頁而決定快取記憶體資料是否位於對應於該命令中所指示之該備份儲存區之該特定位址的該多個快取記憶體項目中之一者中。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/293,521 US9779025B2 (en) | 2014-06-02 | 2014-06-02 | Cache architecture for comparing data |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201617888A TW201617888A (zh) | 2016-05-16 |
TWI570561B true TWI570561B (zh) | 2017-02-11 |
Family
ID=54701905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104117830A TWI570561B (zh) | 2014-06-02 | 2015-06-02 | 記憶體設備及操作快取記憶體之方法 |
Country Status (6)
Country | Link |
---|---|
US (3) | US9779025B2 (zh) |
EP (1) | EP3149596A4 (zh) |
KR (1) | KR101890506B1 (zh) |
CN (1) | CN106104499B (zh) |
TW (1) | TWI570561B (zh) |
WO (1) | WO2015187529A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9779025B2 (en) * | 2014-06-02 | 2017-10-03 | Micron Technology, Inc. | Cache architecture for comparing data |
US9852074B2 (en) * | 2015-01-12 | 2017-12-26 | Alcatel Lucent | Cache-optimized hash table data structure |
US20170177482A1 (en) * | 2015-12-18 | 2017-06-22 | Intel Corporation | Computing system having multi-level system memory capable of operating in a single level system memory mode |
US10474581B2 (en) | 2016-03-25 | 2019-11-12 | Micron Technology, Inc. | Apparatuses and methods for cache operations |
US20180292991A1 (en) * | 2017-04-11 | 2018-10-11 | Micron Technology, Inc. | Memory protocol with programmable buffer and cache size |
US10372353B2 (en) * | 2017-05-31 | 2019-08-06 | Micron Technology, Inc. | Apparatuses and methods to control memory operations on buffers |
US10845866B2 (en) * | 2017-06-22 | 2020-11-24 | Micron Technology, Inc. | Non-volatile memory system or sub-system |
US10402337B2 (en) * | 2017-08-03 | 2019-09-03 | Micron Technology, Inc. | Cache filter |
US20190065373A1 (en) * | 2017-08-30 | 2019-02-28 | Micron Technology, Inc. | Cache buffer |
US11188234B2 (en) * | 2017-08-30 | 2021-11-30 | Micron Technology, Inc. | Cache line data |
US10572389B2 (en) * | 2017-12-12 | 2020-02-25 | Advanced Micro Devices, Inc. | Cache control aware memory controller |
US10534731B2 (en) * | 2018-03-19 | 2020-01-14 | Micron Technology, Inc. | Interface for memory having a cache and multiple independent arrays |
US12072807B2 (en) | 2018-06-05 | 2024-08-27 | Rambus Inc. | Storage and access of data and tags in a multi-way set associative cache |
KR20200056548A (ko) * | 2018-11-14 | 2020-05-25 | 에스케이하이닉스 주식회사 | 캐시 시스템을 갖는 메모리 시스템 및 메모리 시스템에서의 캐싱 동작 제어방법 |
US11842762B2 (en) | 2019-03-18 | 2023-12-12 | Rambus Inc. | System application of DRAM component with cache mode |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090129138A1 (en) * | 1999-12-27 | 2009-05-21 | Panasonic Corporation | Semiconductor Integrated Circuit |
US20120215987A1 (en) * | 2011-02-17 | 2012-08-23 | Oracle International Corporation | Broadcast protocol for a network of caches |
TW201351145A (zh) * | 2012-01-09 | 2013-12-16 | Nvidia Corp | 指令快取的減少耗能 |
US20140032855A1 (en) * | 2012-07-30 | 2014-01-30 | Fujitsu Limited | Information processing apparatus and method |
TW201415228A (zh) * | 2009-03-03 | 2014-04-16 | Qualcomm Inc | 可組態快取記憶體及組態其之方法 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5201041A (en) * | 1988-12-29 | 1993-04-06 | International Business Machines Corporation | Cache bypass apparatus |
US5652723A (en) * | 1991-04-18 | 1997-07-29 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device |
JPH04328656A (ja) * | 1991-04-30 | 1992-11-17 | Toshiba Corp | キャッシュメモリ |
US5367653A (en) | 1991-12-26 | 1994-11-22 | International Business Machines Corporation | Reconfigurable multi-way associative cache memory |
JP3305056B2 (ja) | 1993-08-31 | 2002-07-22 | 沖電気工業株式会社 | ダイナミックram |
US5905996A (en) | 1996-07-29 | 1999-05-18 | Micron Technology, Inc. | Combined cache tag and data memory architecture |
US6678815B1 (en) * | 2000-06-27 | 2004-01-13 | Intel Corporation | Apparatus and method for reducing power consumption due to cache and TLB accesses in a processor front-end |
US6606680B2 (en) * | 2001-06-29 | 2003-08-12 | International Business Machines Corporation | Method and apparatus for accessing banked embedded dynamic random access memory devices |
KR100617663B1 (ko) | 2001-09-14 | 2006-08-28 | 썬 마이크로시스템즈, 인코포레이티드 | 캐시 메모리 내 태그 액세스 및 데이터 액세스의 분리방법 및 장치 |
JP4160790B2 (ja) * | 2002-06-28 | 2008-10-08 | 株式会社ルネサステクノロジ | 半導体装置 |
US6944714B2 (en) * | 2002-07-30 | 2005-09-13 | Hewlett-Packard Development Company, L.P. | Method and apparatus for saving microprocessor power when sequentially accessing the microprocessor's instruction cache |
US7284094B2 (en) * | 2005-02-09 | 2007-10-16 | International Business Machines Corporation | Mechanism and apparatus allowing an N-way set associative cache, implementing a hybrid pseudo-LRU replacement algorithm, to have N L1 miss fetch requests simultaneously inflight regardless of their congruence class |
KR20070093452A (ko) * | 2005-04-08 | 2007-09-18 | 마쯔시다덴기산교 가부시키가이샤 | 캐시 메모리 시스템 및 그 제어 방법 |
US7962694B2 (en) | 2006-03-31 | 2011-06-14 | Intel Corporation | Partial way hint line replacement algorithm for a snoop filter |
US8327072B2 (en) | 2008-07-23 | 2012-12-04 | International Business Machines Corporation | Victim cache replacement |
US20100169578A1 (en) | 2008-12-31 | 2010-07-01 | Texas Instruments Incorporated | Cache tag memory |
US8516230B2 (en) * | 2009-12-29 | 2013-08-20 | International Business Machines Corporation | SPE software instruction cache |
JP2012203560A (ja) | 2011-03-24 | 2012-10-22 | Toshiba Corp | キャッシュメモリおよびキャッシュシステム |
US8775754B2 (en) * | 2011-06-24 | 2014-07-08 | Arm Limited | Memory controller and method of selecting a transaction using a plurality of ordered lists |
EP3382556A1 (en) * | 2011-09-30 | 2018-10-03 | INTEL Corporation | Memory channel that supports near memory and far memory access |
US9753858B2 (en) | 2011-11-30 | 2017-09-05 | Advanced Micro Devices, Inc. | DRAM cache with tags and data jointly stored in physical rows |
KR101915073B1 (ko) * | 2011-12-20 | 2018-11-06 | 인텔 코포레이션 | 2-레벨 메모리 계층구조에서 메모리측 캐쉬의 동적인 부분적 전원 차단 |
US9251086B2 (en) | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
US8954672B2 (en) | 2012-03-12 | 2015-02-10 | Advanced Micro Devices, Inc. | System and method for cache organization in row-based memories |
US20140047175A1 (en) * | 2012-08-09 | 2014-02-13 | International Business Machines Corporation | Implementing efficient cache tag lookup in very large cache systems |
US9779025B2 (en) * | 2014-06-02 | 2017-10-03 | Micron Technology, Inc. | Cache architecture for comparing data |
-
2014
- 2014-06-02 US US14/293,521 patent/US9779025B2/en active Active
-
2015
- 2015-06-01 EP EP15803327.4A patent/EP3149596A4/en not_active Withdrawn
- 2015-06-01 KR KR1020167036736A patent/KR101890506B1/ko active IP Right Grant
- 2015-06-01 CN CN201580013810.3A patent/CN106104499B/zh active Active
- 2015-06-01 WO PCT/US2015/033474 patent/WO2015187529A1/en active Application Filing
- 2015-06-02 TW TW104117830A patent/TWI570561B/zh active
-
2017
- 2017-08-31 US US15/691,859 patent/US10303613B2/en active Active
-
2019
- 2019-05-24 US US16/422,589 patent/US11243889B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090129138A1 (en) * | 1999-12-27 | 2009-05-21 | Panasonic Corporation | Semiconductor Integrated Circuit |
TW201415228A (zh) * | 2009-03-03 | 2014-04-16 | Qualcomm Inc | 可組態快取記憶體及組態其之方法 |
US20120215987A1 (en) * | 2011-02-17 | 2012-08-23 | Oracle International Corporation | Broadcast protocol for a network of caches |
TW201351145A (zh) * | 2012-01-09 | 2013-12-16 | Nvidia Corp | 指令快取的減少耗能 |
US20140032855A1 (en) * | 2012-07-30 | 2014-01-30 | Fujitsu Limited | Information processing apparatus and method |
Non-Patent Citations (1)
Title |
---|
Jim Handy,"The Cache Memory Book",Academic Press,1993 * |
Also Published As
Publication number | Publication date |
---|---|
KR101890506B1 (ko) | 2018-08-21 |
CN106104499B (zh) | 2019-07-19 |
US10303613B2 (en) | 2019-05-28 |
US9779025B2 (en) | 2017-10-03 |
US20170364444A1 (en) | 2017-12-21 |
US11243889B2 (en) | 2022-02-08 |
CN106104499A (zh) | 2016-11-09 |
WO2015187529A1 (en) | 2015-12-10 |
EP3149596A1 (en) | 2017-04-05 |
US20150347307A1 (en) | 2015-12-03 |
KR20170012457A (ko) | 2017-02-02 |
US20190278712A1 (en) | 2019-09-12 |
EP3149596A4 (en) | 2018-01-24 |
TW201617888A (zh) | 2016-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI570561B (zh) | 記憶體設備及操作快取記憶體之方法 | |
US10437669B2 (en) | Apparatuses and methods for selective determination of data error repair | |
TWI456496B (zh) | 間接暫存器存取方法及系統 | |
US9753849B2 (en) | Methods for manufacturing and operating a memory device and a method for operating a system having the same | |
US20160062883A1 (en) | Data storage device and operating method thereof | |
US10445252B2 (en) | Storage device and operating method performed by the same | |
CN113326216A (zh) | 用于存储器子系统控制器的专用可测试性设计路径 | |
US9158676B2 (en) | Nonvolatile memory controller and a nonvolatile memory system | |
US20180357280A1 (en) | Trie search engine | |
KR20220062399A (ko) | 하이브리드 dimm에서 비순차적 처리를 위한 데이터 의존도 관리 | |
KR20220050177A (ko) | 3단의 계층적 메모리 시스템 | |
WO2021034657A1 (en) | Hierarchical memory systems | |
US20210373887A1 (en) | Command delay | |
US20210406193A1 (en) | Operation-Deterministic Write Operations For Data Recovery And Integrity Checks | |
US20210064368A1 (en) | Command tracking | |
CN114258528A (zh) | 阶层式存储器设备 | |
CN114341817A (zh) | 分层存储器系统 | |
US11782635B2 (en) | Method to ensure message arrival before a message pointer | |
CN114258534B (zh) | 阶层式存储器系统 | |
CN114341818B (zh) | 分级存储器设备 | |
CN114168068B (zh) | 存储器搜索组件 | |
CN114303124A (zh) | 分级存储器设备 | |
CN114270311A (zh) | 分级存储器系统 | |
CN114270324A (zh) | 层次型存储器系统 |