TWI570561B - Memory apparatus and method for operating cache - Google Patents
Memory apparatus and method for operating cache 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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
本發明一般而言係關於半導體記憶體及方法,且更特定而言係關於用於一快取記憶體結構之設備及方法。 The present invention relates generally to semiconductor memory and methods, and more particularly to apparatus and methods for a cache memory structure.
記憶體裝置通常經提供作為計算裝置或其他電子裝置中之內部半導體積體電路。存在包含揮發性及非揮發性記憶體之諸多不同類型之記憶體。揮發性記憶體可需要電力以維持其資料(例如,使用者資料、錯誤資料等),且包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM)以及其他揮發性記憶體。非揮發性記憶體可藉由在未被供電時保留所儲存資料而提供持久之資料,且可包含NAND快閃記憶體、NOR快閃記憶體、唯讀記憶體(ROM)、電可抹除可程式化ROM(EEPROM)、可抹除可程式化ROM(EPROM)及電阻可變記憶體,諸如相變隨機存取記憶體(PCRAM)、電阻式隨機存取記憶體(RRAM)及磁阻式隨機存取記憶體(MRAM)以及其他非揮發性記憶體。 Memory devices are typically provided as internal semiconductor integrated circuits in computing devices or other electronic devices. There are many different types of memory containing volatile and non-volatile memory. Volatile memory can require power to maintain its data (eg, user data, error data, etc.) and includes random access memory (RAM), dynamic random access memory (DRAM), and synchronous dynamic random access memory. Body (SDRAM) and other volatile memory. Non-volatile memory provides long-lasting data by retaining stored data when not powered, and can include NAND flash memory, NOR flash memory, read-only memory (ROM), and electrically erasable Programmable ROM (EEPROM), erasable programmable ROM (EPROM) and resistive variable memory such as phase change random access memory (PCRAM), resistive random access memory (RRAM) and magnetoresistive Random access memory (MRAM) and other non-volatile memory.
一記憶體系統可包含一快取記憶體,該快取記憶體可小於及/或快於該系統之其他記憶體(例如,可稱為主記憶體之DRAM、NAND、磁碟儲存裝置、固態硬碟機(SSD)等)。作為一實例,快取記憶體可包括DRAM記憶體。一記憶體系統可快取資料以改良該記憶體系統之效能。因此,提供遞送記憶體系統之經改良效能之快取記憶體係合意 的。改良快取記憶體之延時及命中率係可提供記憶體系統之經改良效能之效能特性。 A memory system can include a cache memory that can be smaller and/or faster than other memory of the system (eg, DRAM, NAND, disk storage, solid state, which can be referred to as main memory) Hard disk drive (SSD), etc.). As an example, the cache memory can include DRAM memory. A memory system can cache data to improve the performance of the memory system. Therefore, it is desirable to provide an improved performance cache memory system for delivering a memory system. of. The improved cache memory latency and hit rate provide improved performance performance of the memory system.
100‧‧‧系統 100‧‧‧ system
102‧‧‧互連匯流排 102‧‧‧Interconnect bus
104‧‧‧佇列 104‧‧‧伫
110‧‧‧快取記憶體DRAM裝置/快取記憶體DRAM 110‧‧‧Cache Memory DRAM Device / Cache Memory DRAM
112‧‧‧快取記憶體控制器 112‧‧‧Cache Memory Controller
114‧‧‧輸入介面 114‧‧‧Input interface
115‧‧‧感測放大器 115‧‧‧Sense Amplifier
116‧‧‧輸出介面 116‧‧‧Output interface
117‧‧‧比較邏輯 117‧‧‧Comparative logic
118‧‧‧陣列 118‧‧‧Array
119‧‧‧感測電路 119‧‧‧Sensor circuit
120‧‧‧記憶體裝置 120‧‧‧ memory device
122‧‧‧控制器 122‧‧‧ Controller
124‧‧‧匯流排 124‧‧‧ Busbars
210‧‧‧快取記憶體DRAM裝置/快取記憶體DRAM 210‧‧‧Cache Memory DRAM Device / Cache Memory DRAM
220‧‧‧記憶體裝置 220‧‧‧ memory device
230-0‧‧‧頁 230-0‧‧‧
230-R‧‧‧頁 Page 230-R‧‧‧
232-0‧‧‧頁 232-0‧‧‧
232-1‧‧‧頁 Page 232-1‧‧‧
232-(S-1)‧‧‧頁 232-(S-1)‧‧‧Page
232-S‧‧‧頁 232-S‧‧‧
234-0‧‧‧區塊 234-0‧‧‧ Block
234-(P-1)‧‧‧區塊 234-(P-1)‧‧‧ Block
340‧‧‧槽 340‧‧‧ slots
342‧‧‧位址 342‧‧‧ address
344‧‧‧有效位元 344‧‧‧ Valid Bits
346‧‧‧已變更位元 346‧‧‧ changed bits
348‧‧‧資料 348‧‧‧Information
432-1‧‧‧快取記憶體頁/頁 432-1‧‧‧Cache Memory Page/Page
432-2‧‧‧快取記憶體頁/頁 432-2‧‧‧Cache Memory Page/Page
452-(M-1)‧‧‧槽 452-(M-1)‧‧‧ slot
452-(M/2)‧‧‧槽 452-(M/2)‧‧‧ slots
452-(M/4)‧‧‧槽 452-(M/4)‧‧‧ slots
560‧‧‧命令 560‧‧‧ Order
562‧‧‧命令指示符 562‧‧‧Command indicator
564‧‧‧位址 564‧‧‧ address
566‧‧‧異動ID 566‧‧‧Transaction ID
648‧‧‧資料 648‧‧‧Information
666‧‧‧異動ID 666‧‧‧Transaction ID
672‧‧‧回應 672‧‧‧Respond
674‧‧‧回應 674‧‧‧Respond
676‧‧‧命中指示符 676‧‧‧ hit indicator
678‧‧‧遺漏指示符 678‧‧‧ Missing indicator
742‧‧‧位址 742‧‧‧ address
748‧‧‧資料 748‧‧‧Information
766‧‧‧異動ID 766‧‧‧Transaction ID
782‧‧‧回應 782‧‧‧Respond
784‧‧‧回應 784‧‧‧Respond
786‧‧‧寫入完成指示符 786‧‧‧Write completion indicator
M-1‧‧‧位置 M-1‧‧‧ position
M-2‧‧‧位置 M-2‧‧‧ position
M/2‧‧‧位置 M/2‧‧‧ position
(M/2)-1‧‧‧位置 (M/2)-1‧‧‧ position
圖1圖解說明根據本發明之若干實施例之呈包含一快取記憶體之一系統之形式之一設備之一方塊圖。 1 illustrates a block diagram of one of the devices in the form of a system including a cache memory in accordance with several embodiments of the present invention.
圖2係圖解說明根據本發明之若干實施例之自一記憶體裝置之一記憶體映射至快取記憶體之資料之映射之一方塊圖。 2 is a block diagram illustrating a mapping of data mapped from one memory of a memory device to a cache memory in accordance with some embodiments of the present invention.
圖3圖解說明根據本發明之若干實施例之快取記憶體中之一快取記憶體項目。 3 illustrates one cache memory item in a cache memory in accordance with several embodiments of the present invention.
圖4A及圖4B圖解說明根據本發明之若干實施例之快取記憶體中之一頁之內容。 4A and 4B illustrate the contents of a page in a cache memory in accordance with several embodiments of the present invention.
圖5圖解說明根據本發明之若干實施例之與包括快取記憶體之一設備相關聯之一命令。 Figure 5 illustrates one of the commands associated with one of the devices including the cache memory in accordance with several embodiments of the present invention.
圖6A至圖6B圖解說明根據本發明之若干實施例之對與包括快取記憶體之一設備相關聯之一讀取命令之回應。 6A-6B illustrate a response to a read command associated with one of the devices including the cache memory, in accordance with several embodiments of the present invention.
圖7A至圖7B圖解說明根據本發明之若干實施例之對與包括快取記憶體之一設備相關聯之一寫入命令之回應。 7A-7B illustrate a response to a write command associated with one of the devices including the cache memory, in accordance with several embodiments of the present invention.
本發明包含用於一快取記憶體結構之設備及方法。包含根據本發明之一快取記憶體結構之一實例性設備可包含經組態以每記憶體單元頁儲存多個快取記憶體項目之一記憶體單元陣列。該設備可包含感測電路,該感測電路經組態以決定對應於來自一快取記憶體控制器之一請求之快取記憶體資料是否位於對應於該請求的陣列中之一位置處,且將指示快取記憶體資料是否位於對應於該請求之該陣列中的該位置處之一回應傳回至該快取記憶體控制器。 The present invention includes apparatus and methods for a cache memory structure. An exemplary device comprising a cache memory structure in accordance with the present invention can include an array of memory cells configured to store a plurality of cache memory items per memory unit page. The device can include a sensing circuit configured to determine whether a cache memory data corresponding to a request from one of the cache memory controllers is located at a location in the array corresponding to the request, And the response indicating whether the cache memory data is located at the location in the array corresponding to the request is returned to the cache controller.
在若干實施例中,本發明之快取記憶體結構可提供映射至一記 憶體裝置(例如,一CDRAM裝置、STT-RAM裝置、PCM裝置(舉例而言)以及其他記憶體裝置)中之同一頁(例如,列)上之多個快取記憶體項目,此可允許平行檢查記憶體裝置上之多個快取記憶體項目。在若干實施例中,與先前之方法相比,本發明之快取記憶體結構可提供減少之能量消耗及/或經改良延遲。舉例而言,在若干實施例中,可將比較邏輯(例如,比較器)嵌入於感測電路或快取記憶體(例如,CDRAM)中之其他地方內,以在不將資料(例如,標籤資料及/或快取記憶體資料)傳送出CDRAM(例如,經由一輸入/輸出(I/O)線)之情況下平行執行多個快取記憶體項目之比較。可比較來自命令之標籤資料與CDRAM之快取記憶體項目中之標籤資料,以決定所請求資料是否位於CDRAM中或CDRAM是否準備好將對應於一命令之資料寫入至CDRAM。使用CDRAM上之感測電路執行此等比較可允許在(舉例而言)CDRAM與一快取記憶體控制器之間不傳送資料之情況下執行命令。在若干實施例中,一快取記憶體結構可包括用以接收命令及發送回應之雙(例如,單獨的)介面(例如,一輸入介面及一輸出介面)。 In several embodiments, the cache memory structure of the present invention can provide a mapping to a record Multiple cache memory items on the same page (eg, a column) of a memory device (eg, a CDRAM device, an STT-RAM device, a PCM device (for example), and other memory devices), which may allow Parallel inspection of multiple cache memory items on the memory device. In several embodiments, the cache memory structure of the present invention can provide reduced energy consumption and/or improved delay as compared to prior methods. For example, in some embodiments, comparison logic (eg, a comparator) can be embedded in a sensing circuit or elsewhere in a cache memory (eg, CDRAM) to not include data (eg, tags) Data and/or cache memory data) A comparison of multiple cache memory items is performed in parallel with the transfer of CDRAM (eg, via an input/output (I/O) line). The tag data from the command tag data and the CDRAM cache memory item can be compared to determine whether the requested data is in the CDRAM or whether the CDRAM is ready to write the data corresponding to a command to the CDRAM. Performing such comparisons using the sensing circuitry on the CDRAM may allow execution of the command without, for example, transferring data between the CDRAM and a cache memory controller. In some embodiments, a cache memory structure can include a dual (eg, separate) interface (eg, an input interface and an output interface) for receiving commands and transmitting responses.
在本發明之以下詳細說明中,參考形成本發明之一部分且其中以圖解說明方式展示可如何實踐本發明之一或多個實施例之附圖。充分詳細地闡述此等實施例以使得熟習此項技術者能夠實踐本發明之實施例,且應理解,可利用其他實施例且可在不背離本發明之範疇之情況下做出程序、電及/或結構之改變。如本文中所使用,標誌符「M」、「N」、「P」、「R」及「S」(尤其係關於圖式中之元件符號)指示可包含經如此標誌之若干特定特徵。如本文中所使用,「若干」一特定事物可係指一或多個此等事物(例如,若干記憶體裝置可係指一或多個記憶體裝置)。 BRIEF DESCRIPTION OF THE DRAWINGS In the following detailed description of the invention, reference to the claims The embodiments are described in sufficient detail to enable those skilled in the art to practice the embodiments of the present invention, and it is understood that other embodiments can be utilized and can be practiced without departing from the scope of the invention. / or structural changes. As used herein, the designations "M", "N", "P", "R", and "S" (especially with respect to the component symbols in the drawings) may include a number of specific features so marked. As used herein, "a plurality of" a particular thing may refer to one or more of such things (eg, a plurality of memory devices may refer to one or more memory devices).
本文中之圖遵循其中第一個數字或前幾個數字對應於圖式之圖編號且剩餘數字識別圖式中之一元件或組件之一編號慣例。可藉由使 用類似之數字來識別不同圖之間的類似元件或組件。舉例而言,120可參考圖1中之元件「20」,且在圖2中一類似元件可參考為220。如將瞭解,可添加、交換及/或消除本文中之各種實施例中所展示之元件以便提供本發明之若干額外實施例。 The figures herein follow the numbering convention in which the first number or the first few digits correspond to the figure number of the drawing and the remaining digits identify one of the elements or components in the drawing. By making Similar numbers are used to identify similar elements or components between different figures. For example, 120 can refer to component "20" in FIG. 1, and a similar component in FIG. 2 can be referred to as 220. As will be appreciated, the elements shown in the various embodiments herein can be added, interchanged, and/or eliminated to provide several additional embodiments of the invention.
圖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。 1 is a block diagram of one of the devices in the form of a system 100 including a cache memory in accordance with several embodiments of the present invention. In FIG. 1, the cache memory can be a cache memory DRAM (CDRAM) device 110. In the example shown in FIG. 1, system 100 includes a memory device 120, a cache controller 112, a controller 122, a queue 104, and an interconnect bus 102. In some embodiments, CDRAM device 110, memory device 120, cache memory controller 112, controller 122, and queue 104 can also be considered a device. The CDRAM device 110 includes an array 118 of DRAM memory cells and a sensing circuit 119. Sensing circuit 119 can include a number of sense amplifiers 115 and comparison logic 117 (eg, a number of comparators) that are used in connection with executing commands received by CDRAM device 110. CDRAM device 110 can be coupled to cache memory controller 112 via input interface 114 and output interface 116. Input interface 114 can be used to receive information (e.g., commands and/or data) from cache memory controller 112 at CDRAM device 110. Output interface 116 can be used to send information from CDRAM device 110 to cache memory controller 112.
在若干實施例中,記憶體裝置120可包含一陣列之記憶體單元(諸如DRAM記憶體單元及/或NAND記憶體單元(舉例而言)以及其他類型之記憶體單元)。記憶體裝置120可用作儲存可由CDRAM裝置110快取之資料之一備份儲存區。 In some embodiments, memory device 120 can include an array of memory cells (such as DRAM memory cells and/or NAND memory cells (for example) and other types of memory cells). The memory device 120 can be used as a backup storage area for storing data that can be cached by the CDRAM device 110.
在若干實施例中,記憶體裝置120可經由匯流排124耦合至控制器122。匯流排124可係一共用之匯流排124或可包括若干單獨匯流排(例如,位址匯流排、資料匯流排、控制匯流排等)以在控制器122與記憶體裝置120之間傳送資訊。在若干實施例中,系統100可包含經由匯流排124耦合在一起之若干記憶體裝置(例如,記憶體裝置120)及若 干控制器(例如,控制器122)。 In some embodiments, memory device 120 can be coupled to controller 122 via bus bar 124. The bus bar 124 can be a shared bus bar 124 or can include a number of individual bus bars (eg, address bus, data bus, control bus, etc.) to transfer information between the controller 122 and the memory device 120. In some embodiments, system 100 can include a number of memory devices (eg, memory device 120) coupled together via bus bar 124 and if A dry controller (eg, controller 122).
在若干實施例中,系統100可經由互連匯流排102耦合至一主機(例如,主機處理器)及/或其他記憶體裝置(未展示)。主機及/或其他記憶體裝置可經由互連匯流排102將資料及/或命令發送至佇列104。系統100可係將資料儲存於記憶體裝置120中且使用CDRAM記憶體裝置110來自記憶體裝置120快取資料之一記憶體系統。系統100亦可快取經由互連匯流排102自一主機及/或其他記憶體裝置接收之資料(例如,在CDRAM裝置110中)。 In some embodiments, system 100 can be coupled to a host (eg, a host processor) and/or other memory device (not shown) via interconnect bus 102. The host and/or other memory device can send data and/or commands to the queue 104 via the interconnect bus 102. System 100 can store data in memory device 120 and use CDRAM memory device 110 to retrieve one of the memory systems from memory device 120. System 100 can also cache data received from a host and/or other memory device via interconnect bus 102 (e.g., in CDRAM device 110).
系統100可藉由將一命令(舉例而言)自佇列104發送至CDRAM 110而快取資料。舉例而言,該命令可係一讀取命令或一寫入命令。可將該命令自佇列104傳達至快取記憶體控制器112且經由輸入介面114傳達至CDRAM 110。經由輸入介面114傳達之命令可包含一命令指示符、標籤資料(例如,一位址)及一異動ID(TID)。 System 100 can cache data by sending a command, for example, from queue 104 to CDRAM 110. For example, the command can be a read command or a write command. The command can be communicated from the queue 104 to the cache controller 112 and to the CDRAM 110 via the input interface 114. The commands communicated via the input interface 114 can include a command indicator, tag data (eg, a single address), and a transaction 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可由快取記憶體控制器使用以識別該回應對應之特定命令。 In some embodiments, CDRAM device 110 can process a read command by locating a particular cache memory item (e.g., slot) indicated by the read command address. CDRAM device 110 may include multiple cache memory items on a single page, which may allow for the inspection of multiple cache memory items by accessing (eg, turning on) a single page. In some embodiments, a cache memory page can include a plurality of cache memory items, wherein each cache memory item includes cached data from a backup storage area (eg, memory device 120). portion. Exemplary cache memory pages and cache memory items are further illustrated below in connection with Figures 2 through 4. The CDRAM device 110 can read the data corresponding to the indicated cache memory item and use comparison logic (eg, a comparator) to determine whether a validity indicator indicates that the data corresponding to the command is located at an address corresponding to the command. (For example, whether one of the valid bits of the cache memory item is set and the block address of one of the read command addresses matches the block address bit of the cache memory item). If a valid bit is set and the block address matches, the slot can be considered a hit and CDRAM 110 can pass a suitable response via the output. Interface 116 is passed back to cache memory controller 112. The response to the cache controller 112 may include a TID and cache data corresponding to the cache memory item. Including the TID in the response may allow the cache memory controller 112 to identify the particular command corresponding to the response. For example, if the valid bit and/or the block address are not matched, the cache memory item can be regarded as a miss and the CDRAM 110 can indicate the cache data requested in the read command. One of the non-located CDRAMs 110 is adapted to be passed back to the cache controller 112 via the output interface 116. The response to the cache controller 112 can include a TID that can be used by the cache controller to identify the particular command corresponding to the response.
在若干實施例中,CDRAM裝置110可藉由定位由寫入命令位址指示之特定快取記憶體項目(例如,槽)而處理一寫入命令。CDRAM 110可讀取對應於所指示槽之資料且使用位於CDRAM裝置110上之比較邏輯來決定一有效性指示符是否指示有效資料位於對應於該命令中之位址之槽處(例如,是否設定了槽中之有效位元且是否設定了槽中之已變更位元(dirty bit))。未設定有效位元之一決定可指示槽並未正儲存有效資料,使得可將對應於寫入命令之資料寫入至快取記憶體項目。 設定了有效位元但未設定已變更位元之一決定可指示快取記憶體項目正儲存並不與一備份儲存區中之資料不同之有效資料,如此可將資料自寫入命令寫入至快取記憶體項目。可將指示寫入已完成之一回應發送至快取記憶體控制器。該回應可包含一異動ID(TID),該異動ID可識別完成了哪一特定命令。設定了有效位元且設定了已變更位元之一決定可指示將撤出當前位於槽中之資料。在自槽撤出資料之後,將對應於寫入命令之資料寫入至該槽。然後可將指示寫入已完成之一回應發送至快取記憶體控制器112。該回應可包含一TID以及自槽撤出之資料及該資料之位址。系統100然後可將此經撤出資料傳回至一備份儲存區(例如,記憶體裝置120)。 In some embodiments, CDRAM device 110 can process a write command by locating a particular cache memory item (e.g., a slot) indicated by a write command address. The CDRAM 110 can read the data corresponding to the indicated slot and use the comparison logic located on the CDRAM device 110 to determine whether a validity indicator indicates that the valid data is located in a slot corresponding to the address in the command (eg, whether to set The valid bit in the slot and whether the changed bit in the slot is set. One of the unset valid bits determines that the slot is not storing valid data so that data corresponding to the write command can be written to the cache memory item. Setting a valid bit but not setting one of the changed bits determines that the cache memory item is storing valid data that is not different from the data in a backup storage area, so that the data can be written from the write command to Cache memory items. A response indicating that the write has been completed can be sent to the cache controller. The response may include a Transaction ID (TID) that identifies which particular command was completed. Setting a valid bit and setting one of the changed bits determines that the data currently in the slot will be withdrawn. After the data is withdrawn from the slot, the data corresponding to the write command is written to the slot. A response indicating that the write has been completed can then be sent to the cache controller 112. The response may include a TID and the information withdrawn from the slot and the address of the data. System 100 can then pass the withdrawn data back to a backup storage area (e.g., memory device 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)。 2 is a block diagram illustrating a mapping of data mapped from one memory of a memory device to a cache memory in accordance with some embodiments of the present invention. The example shown in FIG. 2 illustrates a direct mapping of data from memory device 220 to CDRAM device 210. The memory device 220 can include a number of blocks (eg, block 234-0 and block 234-(P-1)) and each block can include several pages of memory cells (eg, page 230-0 and page 230) -R). Each page of a block can be cached to the same location in CDRAM device 210. For example, a first page of a block (eg, page 230-0 from block 234-0 or block 234-(P-1)) may be cached to the first two pages of CDRAM device 210 (eg, , pages 232-0 and 232-1). The data from locations M-1 through M/2 of page 230-0 can be mapped and cached to page 232-1 of CDRAM device 210. In some embodiments, a page from a memory device can be mapped to the first two pages of a CDRAM device (eg, if one of the pages in the memory device is twice as large as one of the pages in the CDRAM device). For example, a 4KB page of a particular memory device can be mapped into two 2KB pages of a CDRAM device. In FIG. 2, page 230-0 from memory device 220 includes locations 0, 1, ..., M-2, M-1, and page 230-0 is mapped to pages 232-0 and 232 in CDRAM device 210. 1. The first half of page 230-0, such as position 0 to (M/2)-1, is mapped to page 232-1 and the second half of page 230-0, such as position M/2 to M-1, Mapped to page 232-0. In addition, in FIG. 2, the last page of the block in memory device 220 (eg, page 230-R) is mapped to the last two pages of CDRAM 210 (eg, page 232-(S-1) and 232-S). The first half of page 230-R is mapped to page 232-S and the second half of page 230-R is mapped to page 232-(S-1).
本發明之實施例不限於直接映射。舉例而言,CDRAM裝置210可用作一N路相關聯快取記憶體。亦即,可使用相關聯性來將資料自一記憶體裝置N路映射至一CDRAM裝置。CDRAM裝置可經組態,使得對應於來自一記憶體裝置之資料之一特定部分之一快取記憶體項目(例如,槽)之位置中之每一者可經映射至CDRAM裝置中之同一頁。因此,當將資料定位於CDRAM裝置中時,所請求資料可定位之每一位置(例如槽)係處於CDRAM中之一同一頁上。如此,僅需要開啟、 讀取一個頁,且僅一個頁需要使其標籤資料與來自一命令之標籤資料相比以決定所請求快取記憶體資料是否位於對應於來自一記憶體裝置之資料之一特定部分之CDRAM裝置中之一快取記憶體項目之可能位置中之任一者處。 Embodiments of the invention are not limited to direct mapping. For example, CDRAM device 210 can be used as an N-way associated cache memory. That is, correlation can be used to map data from a memory device to a CDRAM device. The CDRAM device can be configured such that each of the locations of the cache memory item (e.g., slot) corresponding to one of a particular portion of the data from a memory device can be mapped to the same page in the CDRAM device . Thus, when the data is located in the CDRAM device, each location (e.g., slot) to which the requested data can be located is on the same page in the CDRAM. So, just open, Reading a page, and only one page needs to have its tag data compared to the tag data from a command to determine whether the requested cache data is located in a CDRAM device corresponding to a particular portion of the data from a memory device. One of the possible locations of the cache memory item.
圖3圖解說明根據本發明之若干實施例之快取記憶體中之一快取記憶體項目。在若干實施例中,諸如CDRAM之快取記憶體中之一頁可包括若干(例如,多個)快取記憶體項目(例如,槽)。每一槽可包含自一記憶體裝置所快取之資料之一部分以及標籤資料(例如,一位址、一有效位元及一已變更位元)。在圖3中,槽340包含標籤資料,該標籤資料包含一位址342、一有效位元344及一已變更位元346。槽340亦包含資料348(例如,快取記憶體資料)。位址342包含指示槽340之區塊、頁及槽之若干位元。有效位元344包含指示槽中之資料是否有效(例如,包含當前正由CDRAM快取之資料)之一位元且已變更位元346包含指示槽中之資料是否已改變但還未經寫入至一備份儲存區之一位元。資料348可包含表示儲存於槽340中之快取記憶體資料之若干位元。 3 illustrates one cache memory item in a cache memory in accordance with several embodiments of the present invention. In several embodiments, one page of the cache memory, such as CDRAM, can include several (eg, multiple) cache memory items (eg, slots). Each slot may contain a portion of the data cached from a memory device and tag data (eg, a bit address, a valid bit, and a changed bit). In FIG. 3, slot 340 contains tag data including a bit address 342, a valid bit 344, and a changed bit 346. Slot 340 also contains material 348 (e.g., cache memory data). Address 342 contains a number of bits indicating the block, page, and slot of slot 340. Valid bit 344 contains a bit indicating whether the data in the slot is valid (eg, contains data currently being cached by CDRAM) and changed bit 346 contains information indicating whether the data in the slot has changed but has not been written yet One bit to a backup storage area. The data 348 can include a number of bits representing the cache memory data stored in the slot 340.
圖4A及圖4B圖解說明根據本發明之若干實施例之快取記憶體中之一頁之內容。在圖4A中,快取記憶體頁432-1可包含若干快取記憶體項目(例如,槽452-(M-1)及452-M/2)。槽中之每一者可包含標籤資料(其包含一位址、一有效位元及一已變更位元)以及快取記憶體資料。舉例而言,頁432-1可快取對應於來自一備份儲存區之資料之一頁之一第一半部分之資料(例如,若來自該備份儲存區之資料之該頁係快取記憶體頁432-1之兩倍大)。 4A and 4B illustrate the contents of a page in a cache memory in accordance with several embodiments of the present invention. In FIG. 4A, cache memory page 432-1 may include a number of cache memory items (eg, slots 452-(M-1) and 452-M/2). Each of the slots may contain tag data (which includes a bit address, a valid bit, and a changed bit) and cache data. For example, page 432-1 can cache data corresponding to the first half of one of the pages from a backup storage area (eg, if the page from the backup storage area is the cache memory) Page 432-1 is twice as large).
在圖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路相關聯性)。 In FIG. 4B, cache memory page 432-2 may include a number of cache memory items (eg, slots 452-(M-1) and 452-M/4). Each of the slots may include tag data (which includes a bit address, a valid bit, and a changed bit), and also includes cache memory data to And a path index (WI). A path index (eg, WI-1 or WI-N) may be used to indicate one of a number of potential slots, where, for example, when CDRAM is using N-way correlation, the requested data may be located at that particular In the slot. In this example, page 432-2 can include a number of slots, each of which can store data corresponding to one-quarter of one page of data from a backup storage area (eg, if data from the backup storage area) This page is twice as large as the cache memory page 432-2 and is cached by the 2-way associative memory page 432-2). In FIG. 4B, cache memory page 432-2 illustrates 2-way correlation, wherein data corresponding to location M-1 from a memory device (eg, a backup storage area) may be located in a corresponding path. The information in any of the slots 452-(M-1) of the index WI-1 or WI-N and corresponding to the location M/4 from a memory device may be located with the path index WI-1 or WI-N. In any of the slots 452-(M/4). In several embodiments, CDRAM can accommodate various degrees of correlation (eg, N-way correlation).
圖5圖解說明根據本發明之若干實施例之與包括快取記憶體之一設備相關聯之一命令560。舉例而言,命令560可係一讀取命令或一寫入命令。命令560可包含一命令指示符562,該命令指示符指示命令類型(例如,讀取命令或寫入命令)。命令560亦可包含標籤資料,該標籤資料包含一位址564,其指示與命令560相關聯之資料之區塊、頁及/或槽。命令560亦包含一異動ID(TID)566,該異動ID可由快取記憶體控制器及/或CDRAM裝置使用以識別在快取記憶體控制器與CDRAM裝置之間傳遞之對應於資料之命令。 FIG. 5 illustrates a command 560 associated with a device including one of cache memories in accordance with several embodiments of the present invention. For example, command 560 can be a read command or a write command. Command 560 can include a command indicator 562 that indicates the type of command (eg, a read command or a write command). The command 560 can also include tag material that includes a bit address 564 that indicates the block, page, and/or slot of the data associated with the command 560. The command 560 also includes a transaction ID (TID) 566 that can be used by the cache controller and/or the CDRAM device to identify commands corresponding to the data communicated between the cache controller and the CDRAM device.
作為一實例,命令560可係可由一CDRAM裝置接收之一讀取命令。CDRAM裝置可藉由定位命令中所指示之特定快取記憶體頁且開啟彼頁而處理該命令。該命令中所指示之一特定槽可位於所開啟之快取記憶體頁中且可讀取該特定槽中之標籤資料。CDRAM裝置上之比較邏輯可用以檢查是否設定了槽中之有效位元且命令之位址中之區塊位址是否匹配槽中之區塊位址位元。若設定了有效位元且區塊位址匹 配,則該槽可視為一命中且CDRAM可將一適合回應傳回至快取記憶體控制器。至快取記憶體控制器之回應可包含一TID及來自特定槽之快取記憶體資料。若未設定有效位元及/或區塊位址不匹配,則該槽視為一遺漏且CDRAM可將一適合回應(例如,指示讀取命令中所請求之資料並不位於CDRAM中之一回應)傳回至快取記憶體控制器。 As an example, command 560 can receive a read command from a CDRAM device. The CDRAM device can process the command by locating the particular cache page indicated in the command and opening the page. One of the specific slots indicated in the command can be located in the cache page that is opened and the tag data in the particular slot can be read. The compare logic on the CDRAM device can be used to check if the valid bit in the slot is set and the block address in the command address matches the block address bit in the slot. If the valid bit is set and the block address is With the match, the slot can be considered a hit and the CDRAM can pass a suitable response back to the cache controller. The response to the cache controller can include a TID and cache data from a particular slot. If the valid bit and/or the block address are not matched, the slot is considered to be a miss and the CDRAM can respond with a suitable response (eg, indicating that the requested data in the read command is not located in the CDRAM) ) is passed back to the cache memory controller.
在若干實施例中,一CDRAM 110可藉由定位一寫入命令之位址中所指示之槽而處理該寫入命令。CDRAM(例如,110)可讀取該槽處之資料且使用比較器來檢查是否設定了該槽中之有效位元且是否設定了已變更位元。若未設定有效位元,則可將來自寫入命令之資料寫入至槽。若設定了有效位元,但未設定已變更位元,則可將來自寫入命令之資料寫入至槽。可將指示寫入已完成之一回應發送至一快取記憶體控制器(例如,112)。該回應可包含一異動ID(TID),該異動ID可由快取記憶體控制器(例如,112)使用以識別完成了哪一特定命令。設定了有效位元且設定了已變更位元之一決定可指示需要撤出當前處於槽中之快取記憶體資料。在自槽撤出快取記憶體資料之後,可將來自寫入命令之快取記憶體資料旋即寫入至該槽。然後可將指示寫入已完成之一適合回應發送至一快取記憶體控制器。該回應可包含一異動ID(TID)以及自槽撤出之資料及該資料之位址。可將所撤出資料自CDRAM傳回至一備份儲存區(例如,記憶體裝置120)。 In some embodiments, a CDRAM 110 can process the write command by locating the slot indicated in the address of a write command. The CDRAM (e.g., 110) can read the data at the slot and use the comparator to check if the valid bit in the slot is set and if the changed bit is set. If a valid bit is not set, the data from the write command can be written to the slot. If a valid bit is set but the changed bit is not set, the data from the write command can be written to the slot. A response indicating that the write has been completed may be sent to a cache controller (e.g., 112). The response may include a transaction ID (TID) that may be used by the cache controller (e.g., 112) to identify which particular command was completed. Setting a valid bit and setting one of the changed bits determines that the cached data currently in the slot needs to be withdrawn. After the cache data is withdrawn from the slot, the cache data from the write command can be immediately written to the slot. A suitable response to the write write can then be sent to a cache controller. The response may include a Transaction ID (TID) and the information withdrawn from the slot and the address of the data. The withdrawn data can be passed back from the CDRAM to a backup storage area (e.g., memory device 120).
圖6A至圖6B圖解說明根據本發明之若干實施例之對與包括快取記憶體之一設備相關聯之一讀取命令之回應。圖6A圖解說明對一讀取命令之一回應672,該回應係一命中。在圖6A中,回應672包含一命中指示符676、一異動ID(TID)666及資料648。命中指示符676可指示該讀取命令中所請求之資料存在於CDRAM中。異動ID 666可用以識別與回應672相關聯之命令。資料648可係自CDRAM讀取之該讀取命令中所請求之快取記憶體資料。可回應於處理一命令之一CDRAM 裝置而在一輸出介面上將回應672自該CDRAM裝置發送至一快取記憶體控制器。CDRAM裝置可在一命令之處理期間於不在CDRAM裝置與快取記憶體控制器之間發送資料(例如,標籤資料)之情況下處理該命令。 6A-6B illustrate a response to a read command associated with one of the devices including the cache memory, in accordance with several embodiments of the present invention. Figure 6A illustrates a response 672 to one of the read commands, the response being a hit. In FIG. 6A, response 672 includes a hit indicator 676, a transaction ID (TID) 666, and data 648. The hit indicator 676 can indicate that the requested data in the read command is present in the CDRAM. The transaction ID 666 can be used to identify the command associated with the response 672. The data 648 can be the cache data requested in the read command read from the CDRAM. Can respond to processing one of the commands CDRAM The device transmits a response 672 from the CDRAM device to a cache memory controller on an output interface. The CDRAM device can process the command during processing of a command without transmitting data (e.g., tag data) between the CDRAM device and the cache controller.
圖6B圖解說明對一讀取命令之一回應674,該回應係一遺漏。在圖6B中,回應674包含一遺漏指示符678及一異動ID(TID)666。遺漏指示符678可指示該讀取命令中所請求之資料不存在於CDRAM中。異動ID 666可用以識別與回應674相關聯之命令。可回應於處理一命令之一CDRAM裝置而在一輸出介面上將回應674自該CDRAM裝置發送至一快取記憶體控制器。CDRAM裝置可在一命令之處理期間於不在CDRAM裝置與快取記憶體控制器之間發送資料(例如,標籤資料)之情況下處理該命令。 Figure 6B illustrates a response 674 to one of the read commands, which is a miss. In FIG. 6B, response 674 includes a missing indicator 678 and a transaction ID (TID) 666. The missing indicator 678 may indicate that the requested material in the read command is not present in the CDRAM. The transaction ID 666 can be used to identify the command associated with the response 674. A response 674 can be sent from the CDRAM device to a cache memory controller on an output interface in response to processing a CDRAM device of a command. The CDRAM device can process the command during processing of a command without transmitting data (e.g., tag data) between the CDRAM device and the cache controller.
圖7A至圖7B圖解說明根據本發明之若干實施例之對與包括快取記憶體之一設備相關聯之一寫入命令之回應。圖7A圖解說明對一寫入命令之一回應782,該寫入命令將資料寫入至其中未設定有效位元或已變更位元(例如,在執行該寫入命令時,資料未被撤出)之一槽。 在圖7A中,回應782包含一寫入完成指示符786及一異動ID(TID)766。寫入完成指示符786可指示該寫入命令中之資料經寫入至CDRAM。異動ID 766可用以識別與回應782相關聯之命令。可回應於處理一命令之一CDRAM裝置而在一輸出介面上將回應782自該CDRAM裝置發送至一快取記憶體控制器。CDRAM裝置可在一命令之處理期間於不在CDRAM裝置與快取記憶體控制器之間發送資料(例如,標籤資料)之情況下處理該命令。 7A-7B illustrate a response to a write command associated with one of the devices including the cache memory, in accordance with several embodiments of the present invention. Figure 7A illustrates a response 782 to a write command that writes data to a valid bit or changed bit (e.g., when the write command is executed, the data is not withdrawn) ) One of the slots. In FIG. 7A, response 782 includes a write completion indicator 786 and a transaction ID (TID) 766. The write completion indicator 786 can indicate that the data in the write command is written to the CDRAM. The transaction ID 766 can be used to identify the command associated with the response 782. A response 782 can be sent from the CDRAM device to a cache memory controller on an output interface in response to processing a CDRAM device of a command. The CDRAM device can process the command during processing of a command without transmitting data (e.g., tag data) between the CDRAM device and the cache controller.
圖7B圖解說明對一寫入命令之一回應784,該寫入命令將資料寫入至其中設定了有效位元及已變更位元(例如,在執行該寫入命令時,資料被撤出)之一槽。在圖7B中,回應784包含一寫入完成指示符 786、一異動ID(TID)766及被撤出之資料之位址742,及自一槽撤出之資料748。寫入完成指示符786可指示該寫入命令中之資料經寫入至CDRAM。異動ID 766可用以識別與回應782相關聯之命令。可由CDRAM裝置自槽讀取被撤出之資料之位址742及被撤出之資料748且在回應784中將其發送至快取記憶體控制器,使得所撤出資料可經寫入至一記憶體裝置。可回應於處理一命令之一CDRAM裝置而在一輸出介面上將回應784自該CDRAM裝置發送至一快取記憶體控制器。 CDRAM裝置可在一命令之處理期間於不在CDRAM裝置與快取記憶體控制器之間發送資料(例如,標籤資料)之情況下處理該命令。 Figure 7B illustrates a response 784 to one of the write commands that writes data to where the valid bit and the changed bit are set (e.g., when the write command is executed, the data is withdrawn) One of the slots. In Figure 7B, response 784 includes a write completion indicator. 786, a transaction ID (TID) 766 and the address 742 of the withdrawn data, and information 748 withdrawn from a slot. The write completion indicator 786 can indicate that the data in the write command is written to the CDRAM. The transaction ID 766 can be used to identify the command associated with the response 782. The address 742 of the withdrawn data and the withdrawn data 748 can be read from the slot by the CDRAM device and sent to the cache controller in response 784 so that the withdrawn data can be written to Memory device. A response 784 can be sent from the CDRAM device to a cache memory controller on an output interface in response to processing a CDRAM device of a command. The CDRAM device can process the command during processing of a command without transmitting data (e.g., tag data) between the CDRAM device and the cache controller.
本發明包含用於一快取記憶體結構之設備及方法。包含根據本發明之一快取記憶體結構之一實例性設備可包含:一記憶體單元陣列,其經組態以每記憶體單元頁儲存多個快取記憶體項目;及感測電路,經組態以決定對應於來自一快取記憶體控制器之一請求之快取記憶體資料是否位於對應於該請求的陣列中之一位置處,且將指示快取記憶體資料是否位於對應於該請求的該陣列中之該位置處之一回應傳回至該快取記憶體控制器。 The present invention includes apparatus and methods for a cache memory structure. An exemplary device comprising a cache memory structure in accordance with the present invention can comprise: a memory cell array configured to store a plurality of cache memory items per memory cell page; and a sensing circuit Configuring to determine whether a cache memory data corresponding to a request from one of the cache memory controllers is located at a location in the array corresponding to the request, and indicating whether the cache memory data is located corresponding to the One of the requested locations in the array is returned to the cache controller.
雖然本文中已圖解說明及闡述了具體實施例,但熟習此項技術者將瞭解,旨在達成相同結果之一配置可替代所展示之具體實施例。本發明意欲涵蓋本發明之一或多個實施例之變更形式或變化形式。應理解,已以一說明性方式而非一限定性方式做出以上說明。在審閱以上說明之後,熟習此項技術者將旋即明瞭以上實施例之組合及本文中未具體闡述之其他實施例。本發明之一或多個實施例之範疇包含其中使用以上架構及方法之其他應用。因此,本發明之一或多個實施例之範疇應參考所附申請專利範圍連同此等申請專利範圍所授權之等效內容之全部範圍來決定。 Although specific embodiments have been illustrated and described herein, it will be understood by those skilled in the art that the <RTIgt; The invention is intended to cover modifications or variations of one or more embodiments of the invention. It should be understood that the above description has been made in an illustrative manner and not in a limiting manner. After reviewing the above description, those skilled in the art will immediately understand the combination of the above embodiments and other embodiments not specifically described herein. The scope of one or more embodiments of the invention encompasses other applications in which the above architectures and methods are used. Therefore, the scope of one or more embodiments of the invention should be determined by the scope of the appended claims.
在前述實施方式中,出於簡化本發明之目的,將某些特徵一起 集合於一單個實施例中。本發明之此方法不應解釋為反映本發明之所揭示實施例必須使用比明確陳述於每一請求項中更多之特徵之一意圖。而是,如以下申請專利範圍反映:發明性標的物在於少於一單個所揭示實施例之所有特徵。因此,特此將以下申請專利範圍併入至實施方案中,其中每一請求項獨立地作為一單獨實施例。 In the foregoing embodiments, certain features are included together for the purpose of simplifying the present invention. Collected in a single embodiment. This method of the invention is not to be interpreted as reflecting that the disclosed embodiments of the invention are intended to use one of the features of the invention. Rather, the scope of the following claims is to be construed that the invention Accordingly, the scope of the following claims is hereby incorporated by reference in its entirety in its entirety in its entirety herein
100‧‧‧系統 100‧‧‧ system
102‧‧‧互連匯流排 102‧‧‧Interconnect bus
104‧‧‧佇列 104‧‧‧伫
110‧‧‧快取記憶體DRAM裝置/快取記憶體DRAM 110‧‧‧Cache Memory DRAM Device / Cache Memory DRAM
112‧‧‧快取記憶體控制器 112‧‧‧Cache Memory Controller
114‧‧‧輸入介面 114‧‧‧Input interface
115‧‧‧感測放大器 115‧‧‧Sense Amplifier
116‧‧‧輸出介面 116‧‧‧Output interface
117‧‧‧比較邏輯 117‧‧‧Comparative logic
118‧‧‧陣列 118‧‧‧Array
119‧‧‧感測電路 119‧‧‧Sensor circuit
120‧‧‧記憶體裝置 120‧‧‧ memory device
122‧‧‧控制器 122‧‧‧ Controller
124‧‧‧匯流排 124‧‧‧ Busbars
Claims (23)
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 (en) | 2016-05-16 |
| TWI570561B true TWI570561B (en) | 2017-02-11 |
Family
ID=54701905
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW104117830A TWI570561B (en) | 2014-06-02 | 2015-06-02 | Memory apparatus and method for operating cache |
Country Status (6)
| Country | Link |
|---|---|
| US (3) | US9779025B2 (en) |
| EP (1) | EP3149596A4 (en) |
| KR (1) | KR101890506B1 (en) |
| CN (1) | CN106104499B (en) |
| TW (1) | TWI570561B (en) |
| WO (1) | WO2015187529A1 (en) |
Families Citing this family (17)
| 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 |
| US11188234B2 (en) * | 2017-08-30 | 2021-11-30 | Micron Technology, Inc. | Cache line data |
| US20190065373A1 (en) * | 2017-08-30 | 2019-02-28 | Micron Technology, Inc. | Cache buffer |
| 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 |
| WO2019236427A1 (en) | 2018-06-05 | 2019-12-12 | Rambus Inc. | Cache dynamic random access memory |
| KR102753289B1 (en) * | 2018-07-17 | 2025-01-14 | 에스케이하이닉스 주식회사 | Cache memory amd memory system including the same, eviction method of cache memory |
| KR102767981B1 (en) * | 2018-11-14 | 2025-02-17 | 에스케이하이닉스 주식회사 | Memory system having cache system and method of controlling caching operation in the memory system |
| CN113597599A (en) | 2019-03-18 | 2021-11-02 | 拉姆伯斯公司 | System application of DRAM component with cache mode |
| US11243883B2 (en) * | 2019-05-24 | 2022-02-08 | Texas Instruments Incorporated | Cache coherence shared state suppression |
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 (en) * | 2012-01-09 | 2013-12-16 | Nvidia Corp | Instruction cache power reduction |
| US20140032855A1 (en) * | 2012-07-30 | 2014-01-30 | Fujitsu Limited | Information processing apparatus and method |
| TW201415228A (en) * | 2009-03-03 | 2014-04-16 | 高通公司 | Configurable cache memory and method of configuring the same |
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 (en) * | 1991-04-30 | 1992-11-17 | Toshiba Corp | Cache memory |
| US5367653A (en) | 1991-12-26 | 1994-11-22 | International Business Machines Corporation | Reconfigurable multi-way associative cache memory |
| JP3305056B2 (en) | 1993-08-31 | 2002-07-22 | 沖電気工業株式会社 | Dynamic 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 |
| EP1425670A2 (en) | 2001-09-14 | 2004-06-09 | Sun Microsystems, Inc. | Method and apparatus for decoupling tag and data accesses in a cache memory |
| JP4160790B2 (en) * | 2002-06-28 | 2008-10-08 | 株式会社ルネサステクノロジ | Semiconductor device |
| 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 |
| WO2006112111A1 (en) * | 2005-04-08 | 2006-10-26 | Matsushita Electric Industrial Co., Ltd. | Cache memory system, and control method therefor |
| 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 (en) | 2011-03-24 | 2012-10-22 | Toshiba Corp | Cache memory and cache system |
| US8775754B2 (en) * | 2011-06-24 | 2014-07-08 | Arm Limited | Memory controller and method of selecting a transaction using a plurality of ordered lists |
| EP2761472B1 (en) * | 2011-09-30 | 2020-04-01 | 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 |
| BR112014013390A2 (en) * | 2011-12-20 | 2017-06-13 | Intel Corp | dynamic partial power reduction of memory side cache in 2-tier memory hierarchy |
| 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 CN CN201580013810.3A patent/CN106104499B/en active Active
- 2015-06-01 WO PCT/US2015/033474 patent/WO2015187529A1/en not_active Ceased
- 2015-06-01 EP EP15803327.4A patent/EP3149596A4/en not_active Withdrawn
- 2015-06-01 KR KR1020167036736A patent/KR101890506B1/en active Active
- 2015-06-02 TW TW104117830A patent/TWI570561B/en 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 (en) * | 2009-03-03 | 2014-04-16 | 高通公司 | Configurable cache memory and method of configuring the same |
| US20120215987A1 (en) * | 2011-02-17 | 2012-08-23 | Oracle International Corporation | Broadcast protocol for a network of caches |
| TW201351145A (en) * | 2012-01-09 | 2013-12-16 | Nvidia Corp | Instruction cache power reduction |
| 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 |
|---|---|
| US9779025B2 (en) | 2017-10-03 |
| US20190278712A1 (en) | 2019-09-12 |
| WO2015187529A1 (en) | 2015-12-10 |
| US11243889B2 (en) | 2022-02-08 |
| TW201617888A (en) | 2016-05-16 |
| EP3149596A4 (en) | 2018-01-24 |
| KR101890506B1 (en) | 2018-08-21 |
| CN106104499B (en) | 2019-07-19 |
| KR20170012457A (en) | 2017-02-02 |
| EP3149596A1 (en) | 2017-04-05 |
| US20170364444A1 (en) | 2017-12-21 |
| US20150347307A1 (en) | 2015-12-03 |
| CN106104499A (en) | 2016-11-09 |
| US10303613B2 (en) | 2019-05-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI570561B (en) | Memory apparatus and method for operating cache | |
| US10437669B2 (en) | Apparatuses and methods for selective determination of data error repair | |
| CN111712876B (en) | Apparatus and method for subarray addressing | |
| TWI456496B (en) | Indirect register access method and system | |
| US20160062883A1 (en) | Data storage device and operating method thereof | |
| US9753849B2 (en) | Methods for manufacturing and operating a memory device and a method for operating a system having the same | |
| CN113971001B (en) | Memory traffic pattern detection in a memory device | |
| US10445252B2 (en) | Storage device and operating method performed by the same | |
| CN114556312B (en) | Managing data dependencies in hybrid DIMMs for out-of-order processing | |
| KR20180012565A (en) | Non-volatile memory system using volatile memory as cache | |
| CN114270317A (en) | Hierarchical memory system | |
| CN114258528A (en) | Hierarchical memory device | |
| US20130297968A1 (en) | Nonvolatile memory controller and a nonvolatile memory system | |
| CN113126902B (en) | Execution of commands addressed to a logical block | |
| KR102808909B1 (en) | 3-stage hierarchical memory system | |
| US20180357280A1 (en) | Trie search engine | |
| US20210373887A1 (en) | Command delay | |
| US20210064368A1 (en) | Command tracking | |
| CN114341817A (en) | Hierarchical memory system | |
| US11782635B2 (en) | Method to ensure message arrival before a message pointer | |
| KR102825618B1 (en) | Hierarchical memory device | |
| CN114270311B (en) | Hierarchical Memory System | |
| CN114258534B (en) | Hierarchical memory system | |
| CN114341818B (en) | Hierarchical memory device | |
| CN114270324A (en) | Hierarchical memory system |