TW201841119A - 管理揮發性記憶體快取的方法和快取管理器 - Google Patents
管理揮發性記憶體快取的方法和快取管理器 Download PDFInfo
- Publication number
- TW201841119A TW201841119A TW106142585A TW106142585A TW201841119A TW 201841119 A TW201841119 A TW 201841119A TW 106142585 A TW106142585 A TW 106142585A TW 106142585 A TW106142585 A TW 106142585A TW 201841119 A TW201841119 A TW 201841119A
- Authority
- TW
- Taiwan
- Prior art keywords
- refresh
- replacement
- cache
- memory
- group
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- 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
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40618—Refresh operations over multiple banks or interleaving
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Dram (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本發明提供一種在揮發性記憶體快取上置換資料的方法。所述揮發性記憶體快取包括一或多個記憶體組,且所述記憶體組中的每一者包括多個記憶體行。所述方法包括:辨識所述記憶體行中欲被置換的至少一個記憶體行的置換ID;辨識所述記憶體組中欲被刷新的一個記憶體組的刷新組ID;判斷在所述置換ID與所述刷新組ID之間是否存在衝突;以及若存在所述衝突,則選擇新的置換ID。
Description
根據本發明的實施例的一或多個態樣是有關於揮發性記憶體快取,且更具體而言,是有關於揮發性記憶體快取的置換策略。
現有的快取置換策略大體而言具有兩個主要的設計考量要素,即達成最佳快取命中率(cache hit ratio)以及維持合理的實作成本。該些設計考量要素通常假設使用晶片上靜態隨機存取記憶體快取(on-chip static random access memory cache,on-chip SRAM cache)。由於靜態隨機存取記憶體快取是非揮發性記憶體(non-volatile memory,NVM),因此通常不對靜態隨機存取記憶體快取使用刷新。為降低實作成本及/或減小晶片大小,在晶片上快取中往往利用動態隨機存取記憶體(dynamic random access memory,DRAM)。由於動態隨機存取記憶體快取是揮發性記憶體,因此對動態隨機存取記憶體快取使用刷新。另外,靜態隨機存取記憶體快取通常快於動態隨機存取記憶體快取,但動態隨機存取記憶體快取通常較靜態隨機存取記憶體快取廉價且通常具有較靜態隨機存取記憶體快取高的每單位面積儲存容量。
本揭露實施例的態樣是有關於使用刷新的揮發性記憶體快取的置換策略。根據本發明的實施例,當在置換ID(replacement ID)與刷新組ID(refresh bank ID)之間存在衡突時,可改變置換ID或刷新組ID以避免延遲。更具體而言,本發明的一些實施例可辨識置換ID及刷新組ID,且當存在衡突時,本發明的實施例可選擇新的置換ID以避免由衡突造成的延遲。另外,本發明的一些實施例可辨識置換ID及刷新組ID,且當存在衡突時,本發明的實施例可檢查是否能夠改變刷新組ID,且若能夠改變所述刷新組ID,則選擇新的刷新組ID以避免由衡突造成的延遲。
根據本發明的實施例,提供一種在揮發性記憶體快取上置換資料的方法,所述揮發性記憶體快取包括一或多個記憶體組,所述記憶體組中的每一者包括多個記憶體行,所述方法包括:辨識所述記憶體行中欲被置換的至少一個記憶體行的置換ID;辨識所述記憶體組中欲被刷新的一個記憶體組的刷新組ID;判斷在所述置換ID與所述刷新組ID之間是否存在衝突;以及若存在所述衝突,則選擇新的置換ID。
所述揮發性記憶體快取可包括動態隨機存取記憶體(DRAM)快取。
所述方法可由所述揮發性記憶體快取的快取管理器實行。
所述快取管理器可包括:置換管理器,辨識所述置換ID;刷新控制器,辨識所述刷新組ID;以及比較器,判斷是否存在所述衝突。
所述置換管理器可更基於自所述比較器接收的置換回饋來選擇所述新的置換ID。
根據本發明的另一實施例,提供一種在揮發性記憶體快取上置換資料的方法,所述揮發性記憶體快取包括一或多個記憶體組,所述記憶體組中的每一者包括多個記憶體行,所述方法包括:辨識所述記憶體行中欲被置換的至少一個記憶體行的置換ID;辨識所述記憶體組中欲被刷新的一個記憶體組的第一刷新組ID;判斷在所述置換ID與所述第一刷新組ID之間是否存在衝突;若存在所述衝突,則判斷是否能夠改變所述第一刷新組ID;以及若存在所述衝突且能夠改變所述第一刷新組ID,則選擇第二刷新組ID。
所述揮發性記憶體快取可包括動態隨機存取記憶體(DRAM)快取。
所述方法可由所述揮發性記憶體快取的快取管理器實行。
所述快取管理器可包括:置換管理器,辨識所述置換ID;刷新控制器,辨識所述第一刷新組ID;以及比較器,判斷是否存在所述衝突。
所述刷新控制器可更基於自所述比較器接收的刷新回饋來選擇所述第二刷新組ID。
所述方法可更包括:若存在所述衝突且不能夠改變所述第一刷新組ID,則選擇新的置換ID。
所述方法可由所述揮發性記憶體快取的快取管理器實行。所述快取管理器可包括:置換管理器,辨識所述置換ID;刷新控制器,辨識所述第一刷新組ID;以及比較器,判斷是否存在所述衝突。
當選擇所述第二刷新組ID時,所述第一刷新組ID的刷新可被延期至所述第一刷新組ID的下一被定期地排程的刷新。
當選擇所述第二刷新組ID時,所述第一刷新組ID的刷新可被延期至所述第二刷新組ID將被刷新的時刻。
根據本發明的另一實施例,提供一種對包括揮發性記憶體快取的快取進行管理的快取管理器,所述揮發性記憶體快取包括一或多個記憶體組,所述記憶體組中的每一者包括多個記憶體行,所述快取管理器包括:置換管理器,辨識所述記憶體行中欲被置換的至少一個記憶體行的置換ID;刷新控制器,辨識所述記憶體組中欲被刷新的一個記憶體組的刷新組ID;以及比較器,判斷在所述置換ID與所述刷新組ID之間是否存在衝突,且若存在所述衝突,則發送置換回饋至所述置換管理器或發送刷新回饋至所述刷新控制器,所述置換回饋使所述置換管理器選擇新的置換ID且所述刷新回饋使所述刷新控制器選擇新的刷新組ID。
所述揮發性記憶體快取可包括動態隨機存取記憶體(DRAM)快取。
所述比較器可更被配置成將所述置換回饋發送至所述置換管理器。
所述比較器可更被配置成將所述刷新回饋發送至所述刷新控制器。
所述比較器可更被配置成:若存在所述衝突,則判斷是否能夠改變所述刷新組ID;若能夠改變所述刷新組ID,則將所述刷新回饋發送至所述刷新控制器;以及若不能夠改變所述刷新組ID,則將所述置換回饋發送至所述置換管理器。
所述快取可更包括非揮發性記憶體。
根據本發明的實施例,當在置換ID與刷新組ID之間存在衡突時,可改變置換ID或刷新組ID以避免延遲。更具體而言,本發明的一些實施例可辨識置換ID及刷新組ID,且當存在衡突時,本發明的實施例可選擇新的置換ID以避免由衡突造成的延遲。另外,本發明的一些實施例可辨識置換ID及刷新組ID,且當存在衡突時,本發明的實施例可檢查是否能夠改變刷新組ID,且若能夠改變所述刷新組ID,則選擇新的刷新組ID以避免由衡突造成的延遲。
以下結合附圖闡述的詳細說明旨在作為對根據本發明提供的揮發性記憶體快取的刷新感知置換策略的示例性實施例的說明,且並非旨在表示可用以構造或利用本發明的唯一形式。所述說明結合所示出的實施例來闡述本發明的特徵。然而,應理解,亦旨在囊括於本發明的精神及範圍內的不同實施例亦可達成相同或等效的功能及結構。如在本文中別處所表明,相同元件編號旨在指示相同元件或特徵。
於2016年11月11日提出申請且名稱為「位元組可定址快閃型模組(Byte-Addressable Flash-Based Module)」的美國專利申請案第15/349,949號的全部內容、於2016年9月21日提出申請且名稱為「具有記憶體內快取的高頻寬記憶體(HBM with In-Memory Cache)」的美國專利申請案第15/272,339號的全部內容、以及於2016年10月4日提出申請且名稱為「用於操作雙倍資料速率相容不同步記憶體模組的系統及方法(System and Method for operating a DDR-Compatible Asynchronous Memory module)」的美國專利申請案第15/285,423號的全部內容全文倂入本案供參考。
高頻寬記憶體(high bandwidth memory,HBM)是高效能三維(three dimensional,3D)堆疊式動態隨機存取記憶體(DRAM)。第二代高頻寬記憶體每個堆疊可包括多達8個晶粒(die)且提供高達每秒2十億次傳輸(giga transfers per second,GT/s)的引腳傳輸速率。介面可包括8個通道,每個通道分別為128位元寬,以達成總共為1024位元寬的存取。第二代高頻寬記憶體可能夠達到每個封裝每秒256十億位元(GB/s)的記憶體頻寬,且可具有高達每個封裝8十億位元的儲存容量。第二代高頻寬記憶體的介面可依據美國電子裝置工程聯合委員會(Joint Electron Device Engineering Council,JEDEC)所接受的標準。
圖1是根據本發明實施例的高頻寬記憶體堆疊的透視圖。參照圖1,高頻寬記憶體堆疊105的實體配置可包括邏輯晶粒110及三維動態隨機存取記憶體或「動態隨機存取記憶體堆疊」115,三維動態隨機存取記憶體或「動態隨機存取記憶體堆疊」115包括堆疊於邏輯晶粒110的頂部上的多個動態隨機存取記憶體晶粒(例如,8個此種晶粒)。在所述堆疊內利用矽穿孔(through-silicon via,TSV)形成互連線。其他高頻寬記憶體堆疊在邏輯晶粒中可包括連接線及訊號調節電路系統(signal conditioning circuitry),因此可向位於高頻寬記憶體的外部介面處的主機處理器提供實質上不會改變的動態隨機存取記憶體通道介面。
圖2是根據本發明實施例的採用高頻寬記憶體堆疊作為三級快取的處理系統的方塊圖。參照圖2,高頻寬記憶體堆疊105可連接至主機處理器155(例如,中央處理單元(central processing unit,CPU)或圖形處理單元(graphics processing unit,GPU))。主機處理器155可包括多個核心(C)160,所述多個核心(C)160分別具有各自的1級(L1)快取150。2級(L2)快取120可連接至1級(L1)快取150,且第一記憶體控制器(MC 1)125可提供與晶片外主記憶體(off chip main memory)130的介面。第二記憶體控制器(MC 2)135可提供與高頻寬記憶體堆疊105的介面。高頻寬記憶體堆疊105可包括高頻寬記憶體堆疊105的邏輯晶粒中的快取管理器(cache manager,CM)。主機處理器155可採用高頻寬記憶體堆疊105以及高頻寬記憶體堆疊105的積體快取管理器作為3級快取(或者,例如,在亦具有3級快取的系統中作為4級快取)。高頻寬記憶體介面145可為符合JEDEC的介面,即,高頻寬記憶體介面145可提供由JEDEC標準規定的導體及訊號協定。在一個實施例中,高頻寬記憶體堆疊105及主機處理器155可放置於矽載板140上。矽載板140可對高頻寬記憶體堆疊105與主機處理器155進行連接。
圖3是根據本發明實施例的高頻寬記憶體(HBM)堆疊的方塊圖。參照圖3,在一些實施例中,高頻寬記憶體堆疊105可包括邏輯晶粒110,邏輯晶粒110可經由八個內部介面(被稱為通道,且在圖3中被示出為Ch0至Ch7)連接至動態隨機存取記憶體堆疊115(例如參見圖1)中的動態隨機存取記憶體。每一級可被稱為晶粒。舉例而言,Ch0及Ch1可位於動態隨機存取記憶體晶粒0處,Ch2及Ch3可位於動態隨機存取記憶體晶粒1處,Ch4及Ch5可位於動態隨機存取記憶體晶粒2處,且Ch6及Ch7可位於動態隨機存取記憶體晶粒3處。
且在所有的動態隨機存取記憶體晶粒之下,存在可添加邏輯的邏輯晶粒。邏輯晶粒可與第二記憶體控制器135(例如參見圖2)進行通訊。邏輯晶粒與第二記憶體控制器135之間的介面可由JEDEC標準定義。
根據本發明的實施例,在邏輯晶粒上可添加一些快取管理邏輯以使得本身為一個整體的高頻寬記憶體可被視為自我管理快取(self-managed cache)。在該些實施例中,主機處理器155可不需要做額外的工作來對快取進行控制。
圖4示出根據一個實施例的包括背側動態隨機存取記憶體快取的非揮發性雙列直插式記憶體模組的實例。參照圖4,非揮發性雙列直插式記憶體模組201a包括非揮發性記憶體(NVM)210、背側動態隨機存取記憶體快取211a、及非揮發性記憶體/快取控制器220。非揮發性雙列直插式記憶體模組201a的資料緩衝器230經由資料(DQ)匯流排提供由主機記憶體控制器請求的非揮發性雙列直插式記憶體模組201a的狀態的資料。非揮發性雙列直插式記憶體模組201a的登記時脈驅動器(registering clock driver,RCD)231提供控制及位址(control and address,CA)緩衝器,所述控制及位址(CA)緩衝器產生發送至資料緩衝器230的命令序列。背側動態隨機存取記憶體快取211a耦合至非揮發性記憶體/快取控制器220且可經由非揮發性記憶體/快取控制器220接收來自資料緩衝器230的資料及來自登記時脈驅動器231的控制及位址。此會禁止由主機記憶體控制器對背側動態隨機存取記憶體快取211a進行直接存取。主機記憶體控制器可以直接模式(direct mode)對背側動態隨機存取記憶體快取211a進行存取,但不能夠以快取模式(cache mode)對背側動態隨機存取記憶體快取211a進行直接存取。對背側動態隨機存取記憶體快取211a進行存取可需要在記憶體控制器與記憶體模組之間進行握手(handshaking),進而導致存取時間較對動態隨機存取記憶體的傳統存取時間長。
當使用動態隨機存取記憶體作為快取(例如,8十億位元組高頻寬記憶體)時,刷新的影響可為不可忽視的。此意味著,若選擇一快取行來進行移除或插入,且所選擇的快取行亦位於剛剛開始刷新的組中,則在可對所選擇的快取行進行移除或插入之前可需要一定延遲。此種等待可對後續操作造成較高的排隊延遲。
根據本發明實施例的刷新感知快取置換策略可建立在現有的置換策略的基礎上。舉例而言,可對現有的置換策略進行修改以包含本文中的本發明實施例。本發明的實施例可建立在以下中的任意者上:基於最近最少使用的(Least-Recently-Used-based,LRU-based)置換策略、隨機置換策略、先進先出(First-In-First-Out,FIFO)置換策略、非最近最多使用(not-Most-Recently-Used,nMRU)置換策略、及/或類似策略。
典型置換策略檢查置換ID。根據本發明實施例的刷新感知快取置換策略檢查置換ID及刷新組ID二者。基於置換ID及刷新組ID,本發明的實施例可決定較佳的行來進行置換或決定較佳的組來進行刷新。
根據本發明的一些實施例,若置換ID與刷新組ID發生衡突,此意味著欲被置換的行將受刷新的影響,此時將選擇下一最佳置換ID。根據本發明的一些其他實施例,若置換ID與刷新組ID發生衡突,則將選擇下一刷新組來進行刷新。被延期的所述組可在下一刷新組原來被刷新的時刻被刷新,或者可被延期至所述組的下一被定期地排程的刷新。
圖5是根據本發明實施例的邏輯晶粒的方塊圖。參照圖5,邏輯晶粒110(例如參見圖1至圖3)包括快取管理器600。快取管理器600可管理揮發性記憶體快取。快取管理器600包括置換管理器300、刷新控制器400、及比較器500。揮發性記憶體快取可為三維動態隨機存取記憶體快取(例如,參見圖1所示動態隨機存取記憶體堆疊115)。揮發性記憶體快取可包括一或多個記憶體組,且所述記憶體組中的每一者可包括多個記憶體行。
置換管理器300基於置換策略確定(或辨識)置換ID 320。置換管理器300將置換ID 320提供至比較器500。
刷新控制器400判斷是否需要對各組中的任意組進行刷新。當需要刷新時,刷新控制器400基於刷新策略確定(或辨識)刷新組ID 420。刷新控制器400將刷新組ID 420提供至比較器500。另外,刷新控制器400輸出刷新組ID 420作為最終刷新組ID 460。
當不需要刷新時,刷新控制器400可向比較器500發送訊號以指示不需要刷新,而不是發送刷新組ID 420,但本發明並非僅限於此。舉例而言,當不需要刷新時,刷新控制器400可不向比較器500發送任何資訊。
比較器500對置換ID 320與刷新組ID 420進行比較。比較器500判斷在置換ID 320與刷新組ID 420之間是否存在衡突。比較器500向置換管理器300提供置換回饋340以指示是否存在衡突。根據一個實施例,置換回饋340僅在存在衡突時由比較器500提供,而不在其他情況下提供,但本發明並非僅限於此。舉例而言,若不存在衡突,則比較器500可提供第一級的置換回饋340,且若存在衡突,則比較器500可提供第二級的置換回饋340。
當置換管理器300接收到指示不存在衡突的置換回饋340(或者置換管理器300未接收到置換回饋340)時,置換管理器300輸出置換ID 320作為最終置換ID 360。
當置換管理器300接收到指示存在衡突的置換回饋340時,置換管理器300基於置換策略選擇下一置換ID並輸出下一置換ID作為最終置換ID 360。下一置換ID可為下一最佳置換ID、下一最舊置換ID、等等。
換言之,置換管理器300基於自比較器500接收的置換回饋340來選擇新的置換ID。
圖6是根據本發明另一實施例的邏輯晶粒的方塊圖。參照圖6,邏輯晶粒112包括快取管理器602。快取管理器602可管理揮發性記憶體快取。快取管理器602包括置換管理器302、刷新控制器402、及比較器502。揮發性記憶體快取可為三維動態隨機存取記憶體快取(例如,參見圖1所示動態隨機存取記憶體堆疊115)。揮發性記憶體快取可包括一或多個記憶體組,且所述記憶體組中的每一者可包括多個記憶體行。
置換管理器302基於置換策略確定(或辨識)置換ID 322。置換管理器302將置換ID 322提供至比較器502。另外,置換管理器302輸出置換ID 322作為最終置換ID 362。
刷新控制器402判斷是否需要對各組中的任意組進行刷新。當需要進行刷新時,刷新控制器402基於刷新策略判斷(或辨識)刷新組ID 422。刷新控制器402將刷新組ID 422提供至比較器502。
當不需要刷新時,刷新控制器402可向比較器502發送訊號以指示不需要刷新,而不是發送刷新組ID 422,但本發明並非僅限於此。舉例而言,當不需要刷新時,刷新控制器402可不向比較器502發送任何資訊。
比較器502對置換ID 322與刷新組ID 422進行比較。比較器502判斷在置換ID 322與刷新組ID 422之間是否存在衡突。比較器502向刷新控制器402提供刷新回饋442以指示是否存在衡突。根據一個實施例,刷新回饋442僅在存在衡突時由比較器502提供,而不在其他情況下提供,但本發明並非僅限於此。舉例而言,若不存在衡突,則比較器502提供第一級的刷新回饋442,且若存在衡突,則比較器502提供第二級的刷新回饋442。
當刷新控制器402接收到指示不存在衡突的刷新回饋442(或者刷新控制器402未接收到刷新回饋442)時,刷新控制器402輸出刷新組ID 422作為最終刷新組ID 462。
當刷新控制器402接收到指示存在衡突的刷新回饋442時,刷新控制器402判斷是否能夠使刷新組ID 422延期(或改變),且若能夠使刷新組ID 422延期(或改變),則基於刷新策略選擇下一刷新組ID並輸出下一刷新組ID作為最終刷新組ID 462。下一刷新組ID可為下一最佳刷新組ID、下一最舊刷新組ID、等等。
換言之,刷新控制器402基於自比較器502接收的刷新回饋442來選擇下一刷新組ID。
被延期的所述組可在下一刷新組原來被刷新的時刻被刷新,或者可被延期至所述組的下一被定期地排程的刷新。
圖7是根據本發明另一實施例的邏輯晶粒的方塊圖。參照圖7,邏輯晶粒114包括快取管理器604。快取管理器604可管理揮發性記憶體快取。快取管理器604包括置換管理器304、刷新控制器404、及比較器504。揮發性記憶體快取可為三維動態隨機存取記憶體快取(例如,參見圖1所示動態隨機存取記憶體堆疊115)。揮發性記憶體快取可包括一或多個記憶體組,且所述記憶體組中的每一者可包括多個記憶體行。
置換管理器304基於置換策略確定(或辨識)置換ID 324。置換管理器304將置換ID 324提供至比較器504。
刷新控制器404判斷是否需要對各組中的任意組進行刷新。當需要刷新時,刷新控制器404基於刷新策略確定(或辨識)刷新組ID 424。刷新控制器404將刷新組ID 424提供至比較器504。
當不需要刷新時,刷新控制器404可向比較器504發送訊號以指示不需要刷新,而不是發送刷新組ID 424,但本發明並非僅限於此。舉例而言,當不需要刷新時,刷新控制器404可不向比較器504發送任何資訊。
比較器504對置換ID 324與刷新組ID 424進行比較。比較器504判斷在置換ID 324與刷新組ID 424之間是否存在衡突。若存在衝突,則比較器504判斷是否能夠使刷新組ID 424延期。
若能夠使刷新組ID 424延期且存在衡突,則比較器504向刷新控制器404提供刷新回饋444以指示應改變刷新組ID 424。根據一個實施例,刷新回饋444僅在應改變刷新組ID 424時由比較器504提供,而不在其他情況下提供,但本發明並非僅限於此。舉例而言,若不應改變刷新組ID 424,則比較器504可提供第一級的刷新回饋444,且若應改變刷新組ID 424,則比較器504可提供第二級的刷新回饋444。
若不能夠使刷新組ID 424延期且存在衡突,則比較器504向置換管理器304提供置換回饋344以指示應改變置換ID 324。根據一個實施例,置換回饋344僅在應改變置換ID 324時由比較器504提供,而不在其他情況下提供,但本發明並非僅限於此。舉例而言,若不應改變置換ID 324,則比較器504可提供第一級的置換回饋344,且若應改變置換ID 324,則比較器504可提供第二級的置換回饋344。
當刷新控制器404接收到指示不應改變刷新組ID 424的刷新回饋444(或者刷新控制器404未接收到刷新回饋444)時,刷新控制器404輸出刷新組ID 424作為最終刷新組ID 464。
當刷新控制器404接收到指示應改變刷新組ID 424的刷新回饋444時,刷新控制器404基於刷新策略選擇下一刷新組ID並輸出下一刷新組ID作為最終刷新組ID 464。下一刷新組ID可為下一最佳刷新組ID、下一最舊刷新組ID、等等。
換言之,刷新控制器404基於自比較器504接收的刷新回饋444來選擇下一刷新組ID。
被延期的所述組可在下一刷新組原來被刷新的時刻被刷新,或者可被延期至所述組的下一被定期地排程的刷新。換言之,當選擇第二刷新組ID時,第一刷新組ID的刷新可被延期至第二刷新組ID已經被刷新的時刻。
當置換管理器304接收到指示不應改變置換ID 324的置換回饋344(或者置換管理器304未接收到置換回饋344)時,置換管理器304輸出置換ID 324作為最終置換ID 364。
當置換管理器304接收到指示應改變置換ID 324的置換回饋344時,置換管理器304基於置換策略選擇下一置換ID並輸出下一置換ID作為最終置換ID 364。下一置換ID可為下一最佳置換ID、下一最舊置換ID、等等。
換言之,置換管理器304基於自比較器504接收的置換回饋344來選擇新的置換ID。
圖8是根據本發明另一實施例的揮發性記憶體/快取控制器的方塊圖。參照圖8,非揮發性記憶體/快取控制器220(參見圖4)包括置換管理器306、刷新控制器406、及比較器506。非揮發性記憶體/快取控制器220可管理揮發性記憶體快取。揮發性記憶體快取可為背側動態隨機存取記憶體快取(例如,參見圖4所示背側動態隨機存取記憶體快取211a)。揮發性記憶體快取可包括一或多個記憶體組,且所述記憶體組中的每一者可包括多個記憶體行。
根據本發明的實施例,非揮發性記憶體/快取控制器220的置換管理器306、刷新控制器406、及比較器506可分別以與圖5所示置換管理器300、刷新控制器400、及比較器500實質上相似的方式運作。由此,可不再對其予以贅述。
舉例而言,比較器506可自置換管理器306接收置換ID 326且可自刷新控制器406接收刷新組ID 426。比較器506可基於是否存在衡突來輸出置換回饋346。置換管理器306可輸出最終置換ID 366,且刷新控制器406可輸出最終刷新組ID 466。
根據本發明的其他實施例,非揮發性記憶體/快取控制器220的置換管理器306、刷新控制器406、及比較器506可分別以與圖6所示置換管理器302、刷新控制器402、及比較器502實質上相似的方式運作。由此,可不再對其予以贅述。
舉例而言,比較器506可自置換管理器306接收置換ID 326且可自刷新控制器406接收刷新組ID 426。比較器506可基於是否存在衡突來輸出刷新回饋446。置換管理器306可輸出最終置換ID 366,且刷新控制器406可輸出最終刷新組ID 466。
根據本發明的再一些實施例,非揮發性記憶體/快取控制器220的置換管理器306、刷新控制器406、及比較器506可分別以與圖7所示置換管理器304、刷新控制器404、及比較器504實質上相似的方式運作。由此,可不再對其予以贅述。
舉例而言,比較器506可自置換管理器306接收置換ID 326且可自刷新控制器406接收刷新組ID 426。比較器506可在存在衡突且能夠改變刷新組ID 426時輸出刷新回饋446。比較器506可在存在衡突且不能夠改變刷新組ID 426時輸出置換回饋346。置換管理器306可輸出最終置換ID 366,且刷新控制器406可輸出最終刷新組ID 466。
圖9是示出根據本發明實施例的揮發性記憶體快取的置換策略的方法的流程圖。揮發性記憶體快取可包括一或多個記憶體組。所述記憶體組中的每一者可包括多個記憶體行。揮發性記憶體快取可為動態隨機存取記憶體(DRAM)快取。
參照圖9,根據本發明的一個實施例,在操作1000中,辨識記憶體行中欲被置換的至少一個記憶體行的置換ID。在操作1010中,辨識記憶體組中欲被刷新的一個記憶體組的刷新組ID。
在操作1020中,判斷在置換ID與刷新組ID之間是否存在衝突。在操作1030中,當確定不存在衡突時,不採取任何措施來改變置換ID或刷新組ID。在操作1040中,當確定存在衡突時,選擇新的置換ID。
圖9所示方法可由邏輯晶粒上的快取管理器來實行。(參見,例如圖1至圖3以及圖5至圖7。)另外,圖9所示方法可由揮發性記憶體/快取控制器來實行。(參見,例如圖4及圖8。)
圖10是示出根據本發明實施例的揮發性記憶體快取的置換策略的另一種方法的流程圖。揮發性記憶體快取可包括一或多個記憶體組。所述記憶體組中的每一者可包括多個記憶體行。揮發性記憶體快取可為動態隨機存取記憶體(DRAM)快取。
參照圖10,根據本發明的一個實施例,在操作1100中,辨識記憶體行中欲被置換的至少一個記憶體行的置換ID。在操作1110中,辨識記憶體組中欲被刷新的一個記憶體組的刷新組ID(例如,第一刷新組ID)。
在操作1120中,判斷在置換ID與刷新組ID之間是否存在衝突。在操作1130中,當確定不存在衡突時,不採取任何措施來改變置換ID或刷新組ID。在操作1140中,當確定存在衡突時,判斷是否能夠改變刷新組ID。另外,在操作1130中,當判斷存在衡突且不能夠改變刷新組ID時,不採取任何措施來改變置換ID或刷新組ID。在操作1150中,當確定存在衡突且能夠改變刷新組ID時,選擇新的刷新組ID(例如,第二刷新組ID)。
圖10所示方法可由邏輯晶粒上的快取管理器來實行。(參見,例如圖1至圖3及圖5至圖7。)另外,圖9所示方法可由揮發性記憶體/快取控制器來實行。(參見,例如圖4及圖8。)
圖11是示出根據本發明實施例的揮發性記憶體快取的置換策略的另一種方法的流程圖。揮發性記憶體快取可包括一或多個記憶體組。所述記憶體組中的每一者可包括多個記憶體行。揮發性記憶體快取可為動態隨機存取記憶體(DRAM)快取。
參照圖11,根據本發明的一個實施例,在操作1200中,辨識記憶體行中欲被置換的至少一個記憶體行的置換ID。在操作1210中,辨識記憶體組中欲被刷新的一個記憶體組的刷新組ID。
在操作1220中,判斷在置換ID與刷新組ID之間是否存在衝突。在操作1230中,當確定不存在衡突時,不採取任何措施來改變置換ID或刷新組ID。在操作1240中,當確定存在衡突時,判斷是否能夠改變刷新組ID。在操作1250中,當確定存在衡突且能夠改變刷新組ID時,選擇新的刷新組ID。在操作1260中,當確定存在衡突且不能夠改變刷新組ID時,選擇新的置換ID。
圖11所示方法可由邏輯晶粒上的快取管理器來實行。(參見,例如圖1至圖3及圖5至圖7。)另外,圖9所示方法可由揮發性記憶體/快取控制器來實行。(參見,例如圖4及圖8。)
由此,根據本發明的實施例,當在置換ID與刷新組ID之間存在衡突時,可改變置換ID或刷新組ID以避免延遲。更具體而言,本發明的一些實施例可辨識置換ID及刷新組ID,且當存在衡突時,本發明的實施例可選擇新的置換ID以避免由衡突造成的延遲。另外,本發明的一些實施例可辨識置換ID及刷新組ID,且當存在衡突時,本發明的實施例可檢查是否能夠改變刷新組ID,且若能夠改變所述刷新組ID,則選擇新的刷新組ID以避免由衡突造成的延遲。
應理解,儘管本文中可能使用用語「第一(first)」、「第二(second)」、第三「third」等來闡述各種元件、組件、區、層、及/或區段,然而該些元件、組件、區、層、及/或區段不應受該些用語限制。該些用語用於區分各個元件、組件、區、層、或區段。因此,在不背離本發明的精神及範圍的條件下,可將以下所論述的第一元件、組件、區、層、或區段稱為第二元件、組件、區、層、或區段。
根據本文所述本發明的實施例的相關裝置或組件(或多個相關裝置或組件)可利用任何適合的硬體(例如,應用專用積體電路(application-specific integrated circuit))、韌體(例如,數位訊號處理器(digital signal processor,DSP)或現場可程式化閘陣列(field programmable gate array,FPGA))、軟體、或軟體、韌體、及硬體的適合的組合來實作。舉例而言,可將相關裝置中的各種組件形成於一個積體電路(integrated circuit,IC)晶片上或單獨的積體電路晶片上。另外,相關裝置的各種組件可實作於撓性印刷電路膜(flexible printed circuit film)、捲帶式封裝(tape carrier package,TCP)、印刷電路板(printed circuit board,PCB)上,或者形成於與一或多個電路及/或其他裝置相同的基板上。另外,相關裝置的各種組件可為在一或多個計算裝置中在一或多個處理器上運行的、且執行電腦程式指令並與用於實行本文所述各種功能的其他系統組件進行交互的過程或執行緒。電腦程式指令儲存於記憶體中,所述記憶體可使用例如(舉例而言)隨機存取記憶體(random access memory,RAM)等標準記憶體裝置實作於計算裝置中。電腦程式指令亦可儲存於例如(舉例而言)光碟唯讀記憶體(Compact Disc Read-Only Memory,CD-ROM)、快閃驅動機(flash drive)、或類似元件等其他非暫時性電腦可讀取媒體中。另外,熟習此項技術者應知,在不背離本發明示例性實施例的精神及範圍的條件下,可將各種計算裝置的功能組合或整合成單一的計算裝置,或者可使一特定計算裝置的功能分佈於一或多個其他計算裝置上。
在本文中,為易於說明,可使用例如「頂部(top)」、「底部(bottom)」、「位於…之下(beneath)」、「位於...下面(below)」、「下部的(lower)」、「位於...下方(under)」、「位於…上方(above)」、「上部的(upper)」等空間相對性用語來闡述圖中所例示的一個元件或特徵與另一(其他)元件或特徵的關係。應理解,所述空間相對性用語旨在除圖中所繪示的定向外亦囊括裝置在使用或操作中的不同定向。舉例而言,若圖中的裝置被翻轉,則被闡述為位於其他元件或特徵「下面」、「之下」或「下方」的元件此時將被定向為位於所述其他元件或特徵「上方」。因此,示例性用語「位於…下面」及「位於…下方」可囊括上方及下方兩種定向。所述裝置可具有其他定向(例如,旋轉90度或處於其他定向)且本文中所使用的空間相對性描述語應相應地進行解釋。
另外,亦應理解,當一個元件、組件、區、層、及/或區段被稱為位於兩個元件、組件、區、層、及/或區段「之間(bewteen)」時,所述元件、組件、區、層、及/或區段可為所述兩個元件、組件、區、層、及/或區段之間僅有的元件、組件、區、層、及/或區段,或者亦可存在一或多個中間元件、組件、區、層、及/或區段。
本文所用術語僅用於闡述特定實施例,而並非旨在限制本發明。除非上下文中清楚地另外指示,否則本文所用單數形式「一(a及an)」旨在亦包含複數形式。更應理解,當在本說明書中使用用語「包括(comprise/comprises/comprising/includes/including及include)時,是指明所陳述特徵、整數、步驟、操作、元件、及/或組件的存在,但不排除一或多個其他特徵、整數、步驟、操作、元件、組件及/或其群組的存在或增添。
本文所用用語「及/或(and/or)」包括相關列出項中的一或多個項的任意及全部組合。當例如「…中的至少一者(at least one of)」、「...中的一者(one of)」、及「選自...(selected from)」等表達出現在一系列元件之前時是修飾整個系列的元件且並非修飾所述系列中的個別元件。另外,在闡述本發明的實施例時使用「可(may)」是指代「本發明的一或多個實施例」。另外,用語「示例性(exemplary)」旨在指實例或例示。
應理解,當稱一元件或層位於另一元件或層「上(on)」、「連接至(connected to)」另一元件或層、「耦合至(coupled to)」另一元件或層、與另一元件或層「連接(connected with)」、與另一元件或層「耦合(coupled with)」、或「鄰近於(adjacent to)」另一元件或層時,所述元件或層可「直接位於另一元件或層上(directly on)」、「直接連接至(directly connected to)另一元件或層」、「直接耦合至(directly coupled to)另一元件或層」、「與另一元件或層直接連接(directly connected with)」、「與另一元件或層直接耦合(directly connected with)」、或「直接鄰近於(directly adjacent to)」另一元件或層,抑或可存在一或多個中間元件或層。另外,如熟習此項技術者將理解,「連接(connection)」、「被連接(connected)」等亦可被稱為「電連接(electrical connection)」、「被電連接(electrically connected)」等,此端視其中使用該些用語的上下文而定。當稱一元件或層「直接位於另一元件或層上」、「直接連接至另一元件或層」、「直接耦合至另一元件或層」、「與另一元件或層直接連接」、「與另一元件或層直接耦合」、或「緊鄰於(immediately adjacent to)」另一元件或層時,則不存在中間元件或層。
本文所用「實質上(substantially)」、「大約(about)」及類似用語用作近似用語、而並非作為程度用語,並且旨在慮及此項技術中具有通常知識者將知的量測值或計算值的固有偏差。
本文所用用語「使用(use)」、「正使用(using)」、及「被使用(used)」可視為分別與用語「利用(utilize)」、「正利用(utilizing)」、及「被利用(utilized)」同義。
聯繫本發明的一或多個實施例闡述的特徵可用於與本發明其他實施例的特徵結合使用。舉例而言,在第一實施例中闡述的特徵可與在第二實施例中闡述的特徵加以組合以形成第三實施例,即使在本文中可能未具體闡述第三實施例。
熟習此項技術者亦應知,可藉由硬體、韌體(例如,藉由應用專用積體電路)、或以軟體、韌體、及/或硬體的任意組合來執行所述過程。另外,如熟習此項技術者所知,所述過程的步驟的順序並非固定的,而是可改變成任意期望的順序。所改變的順序可包括所有步驟或所述步驟的一部分。
儘管已針對某些具體實施例闡述了本發明,然而熟習此項技術者不難設想出所闡述的實施例的各種變化形式,而此決不背離本發明的範圍及精神。另外,對於熟習各種相關技術者而言,本文所述的本發明自身將暗示對其他任務的解決方案及對於其他應用的修改形式。本申請人意圖將本發明的所有此種用途以及出於本揭露的目的而選擇的對本文中的本發明實施例所作的改變及潤飾均涵蓋於申請專利範圍中,而此並不背離本發明的精神及範圍。因此,本發明的當前實施例在所有方面均應被視為說明性的而非限制性的,本發明的範圍應由隨附申請專利範圍及其等效範圍來指示。
105‧‧‧高頻寬記憶體堆疊
110、112、114‧‧‧邏輯晶粒
115‧‧‧三維動態隨機存取記憶體/動態隨機存取記憶體堆疊
120‧‧‧2級快取
125‧‧‧第一記憶體控制器
130‧‧‧晶片外主記憶體
135‧‧‧第二記憶體控制器
140‧‧‧矽載板
145‧‧‧高頻寬記憶體介面
150‧‧‧1級快取
155‧‧‧主機處理器
160‧‧‧核心
201a‧‧‧非揮發性雙列直插式記憶體模組
210‧‧‧非揮發性記憶體
211a‧‧‧背側動態隨機存取記憶體快取
220‧‧‧非揮發性記憶體/快取控制器
230‧‧‧資料緩衝器
231‧‧‧登記時脈驅動器
300、302、304、306‧‧‧置換管理器
320、322、324、326‧‧‧置換ID
340、344、346‧‧‧置換回饋
360、362、364、366‧‧‧最終置換ID
400、402、404、406‧‧‧刷新控制器
420、422、424、426‧‧‧刷新組ID
442、444、446‧‧‧刷新回饋
460、462、464、466‧‧‧最終刷新組ID
500、502、504、506‧‧‧比較器
600、602、604‧‧‧快取管理器
1000、1010、1020、1030、1040、1100、1110、1120、1130、1140、1150、1200、1210、1220、1230、1240、1250、1260‧‧‧操作
參照說明書、申請專利範圍、及附圖將會瞭解及理解本發明的該些及其他特徵及態樣,在附圖中: 圖1是根據本發明實施例的高頻寬記憶體堆疊(memory stack)的透視圖。 圖2是根據本發明實施例的採用高頻寬記憶體堆疊作為三級快取的處理系統的方塊圖。 圖3是根據本發明實施例的高頻寬記憶體堆疊的方塊圖。 圖4示出根據一個實施例的包括背側動態隨機存取記憶體快取(backside DRAM cache)的非揮發性雙列直插式記憶體模組(Non-Volatile Dual In-Line Memory Module,NVDIMM)的實例。 圖5是根據本發明實施例的邏輯晶粒(logic die)的方塊圖。 圖6是根據本發明另一實施例的邏輯晶粒的方塊圖。 圖7是根據本發明另一實施例的邏輯晶粒的方塊圖。 圖8是根據本發明另一實施例的揮發性記憶體/快取控制器的方塊圖。 圖9是示出根據本發明實施例的揮發性記憶體快取的置換策略的方法的流程圖。 圖10是示出根據本發明實施例的揮發性記憶體快取的置換策略的另一方法的流程圖。 圖11是示出根據本發明實施例的揮發性記憶體快取的置換策略的另一方法的流程圖。
Claims (20)
- 一種在揮發性記憶體快取上置換資料的方法,所述揮發性記憶體快取包括一或多個記憶體組,所述記憶體組中的每一者包括多個記憶體行,所述方法包括: 辨識所述多個記憶體行中欲被置換的至少一個記憶體行的置換ID; 辨識所述記憶體組中欲被刷新的一個記憶體組的刷新組ID; 判斷在所述置換ID與所述刷新組ID之間是否存在衝突;以及 若存在所述衝突,則選擇新的置換ID。
- 如申請專利範圍第1項所述的方法,其中所述揮發性記憶體快取包括動態隨機存取記憶體(DRAM)快取。
- 如申請專利範圍第1項所述的方法,其中所述方法是由所述揮發性記憶體快取的快取管理器實行。
- 如申請專利範圍第3項所述的方法,其中所述快取管理器包括: 置換管理器,辨識所述置換ID; 刷新控制器,辨識所述刷新組ID;以及 比較器,判斷是否存在所述衝突。
- 如申請專利範圍第4項所述的方法,其中所述置換管理器更基於自所述比較器接收的置換回饋來選擇所述新的置換ID。
- 一種在揮發性記憶體快取上置換資料的方法,所述揮發性記憶體快取包括一或多個記憶體組,所述記憶體組中的每一者包括多個記憶體行,所述方法包括: 辨識所述多個記憶體行中欲被置換的至少一個記憶體行的置換ID; 辨識所述記憶體組中欲被刷新的一個記憶體組的第一刷新組ID; 判斷在所述置換ID與所述第一刷新組ID之間是否存在衝突; 若存在所述衝突,則判斷是否能夠改變所述第一刷新組ID;以及 若存在所述衝突且能夠改變所述第一刷新組ID,則選擇第二刷新組ID。
- 如申請專利範圍第6項所述的方法,其中所述揮發性記憶體快取包括動態隨機存取記憶體(DRAM)快取。
- 如申請專利範圍第6項所述的方法,其中所述方法是由所述揮發性記憶體快取的快取管理器實行。
- 如申請專利範圍第8項所述的方法,其中所述快取管理器包括: 置換管理器,辨識所述置換ID; 刷新控制器,辨識所述第一刷新組ID;以及 比較器,判斷是否存在所述衝突。
- 如申請專利範圍第9項所述的方法,其中所述刷新控制器更基於自所述比較器接收的刷新回饋來選擇所述第二刷新組ID。
- 如申請專利範圍第6項所述的方法,更包括:若存在所述衝突且不能夠改變所述第一刷新組ID,則選擇新的置換ID。
- 如申請專利範圍第11項所述的方法, 其中所述方法是由所述揮發性記憶體快取的快取管理器執行,且 其中所述快取管理器包括: 置換管理器,辨識所述置換ID; 刷新控制器,辨識所述第一刷新組ID;以及 比較器,判斷是否存在所述衝突。
- 如申請專利範圍第6項所述的方法,其中當選擇所述第二刷新組ID時,所述第一刷新組ID的刷新被延期至所述第一刷新組ID的下一被定期地排程的刷新。
- 如申請專利範圍第6項所述的方法,其中當選擇所述第二刷新組ID時,所述第一刷新組ID的刷新被延期至所述第二刷新組ID將被刷新的時刻。
- 一種對包括揮發性記憶體快取的快取進行管理的快取管理器,所述揮發性記憶體快取包括一或多個記憶體組,所述記憶體組中的每一者包括多個記憶體行,所述快取管理器包括: 置換管理器,辨識所述多個記憶體行中欲被置換的至少一個記憶體行的置換ID; 刷新控制器,辨識所述記憶體組中欲被刷新的一個記憶體組的刷新組ID;以及 比較器,判斷在所述置換ID與所述刷新組ID之間是否存在衝突,且若存在所述衝突,則發送置換回饋至所述置換管理器或發送刷新回饋至所述刷新控制器,所述置換回饋使所述置換管理器選擇新的置換ID且所述刷新回饋使所述刷新控制器選擇新的刷新組ID。
- 如申請專利範圍第15項所述的快取管理器,其中所述揮發性記憶體快取包括動態隨機存取記憶體(DRAM)快取。
- 如申請專利範圍第15項所述的快取管理器,其中所述比較器更被配置成將所述置換回饋發送至所述置換管理器。
- 如申請專利範圍第15項所述的快取管理器,其中所述比較器更被配置成將所述刷新回饋發送至所述刷新控制器。
- 如申請專利範圍第15項所述的快取管理器,其中所述比較器更被配置成: 若存在所述衝突,則判斷是否能夠改變所述刷新組ID; 若能夠改變所述刷新組ID,則將所述刷新回饋發送至所述刷新控制器;以及 若不能夠改變所述刷新組ID,則將所述置換回饋發送至所述置換管理器。
- 如申請專利範圍第15項所述的快取管理器,其中所述快取更包括非揮發性記憶體。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762450505P | 2017-01-25 | 2017-01-25 | |
US62/450,505 | 2017-01-25 | ||
US15/457,813 US10394719B2 (en) | 2017-01-25 | 2017-03-13 | Refresh aware replacement policy for volatile memory cache |
US15/457,813 | 2017-03-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201841119A true TW201841119A (zh) | 2018-11-16 |
TWI756314B TWI756314B (zh) | 2022-03-01 |
Family
ID=62906271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106142585A TWI756314B (zh) | 2017-01-25 | 2017-12-05 | 管理揮發性記憶體快取的方法和快取管理器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10394719B2 (zh) |
JP (1) | JP7164951B2 (zh) |
KR (1) | KR102245310B1 (zh) |
CN (1) | CN108345548B (zh) |
TW (1) | TWI756314B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11372779B2 (en) | 2018-12-19 | 2022-06-28 | Industrial Technology Research Institute | Memory controller and memory page management method |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10271205B1 (en) * | 2017-12-01 | 2019-04-23 | At&T Intellectual Property I, L.P. | Methods and devices for resolving conflicts between identifiers for communication devices |
US10431305B2 (en) * | 2017-12-14 | 2019-10-01 | Advanced Micro Devices, Inc. | High-performance on-module caching architectures for non-volatile dual in-line memory module (NVDIMM) |
EP3938894B1 (en) | 2019-03-15 | 2023-08-30 | INTEL Corporation | Multi-tile memory management for detecting cross tile access, providing multi-tile inference scaling, and providing optimal page migration |
US10991413B2 (en) * | 2019-07-03 | 2021-04-27 | Micron Technology, Inc. | Memory with programmable die refresh stagger |
CN111026682B (zh) * | 2019-12-26 | 2022-03-08 | 浪潮(北京)电子信息产业有限公司 | 板卡芯片的数据访存方法、装置及计算机可读存储介质 |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5172341A (en) | 1990-01-19 | 1992-12-15 | Dallas Semiconductor Corporation | Serial dram controller with multi generation interface |
JP3576561B2 (ja) * | 1994-11-22 | 2004-10-13 | モノリシック・システム・テクノロジー・インコーポレイテッド | 第2レベルのキャシュメモリとしてdramアレイを用いる方法及び構成 |
US5802560A (en) | 1995-08-30 | 1998-09-01 | Ramton International Corporation | Multibus cached memory system |
JPH09213072A (ja) * | 1996-02-09 | 1997-08-15 | Nec Corp | Dramリフレッシュ制御方式 |
US6028804A (en) | 1998-03-09 | 2000-02-22 | Monolithic System Technology, Inc. | Method and apparatus for 1-T SRAM compatible memory |
GB2345987B (en) * | 1999-01-19 | 2003-08-06 | Advanced Risc Mach Ltd | Memory control within data processing systems |
US6496437B2 (en) | 1999-01-20 | 2002-12-17 | Monolithic Systems Technology, Inc. | Method and apparatus for forcing idle cycles to enable refresh operations in a semiconductor memory |
US6151664A (en) * | 1999-06-09 | 2000-11-21 | International Business Machines Corporation | Programmable SRAM and DRAM cache interface with preset access priorities |
US6941415B1 (en) * | 2000-08-21 | 2005-09-06 | Micron Technology, Inc. | DRAM with hidden refresh |
US6697909B1 (en) * | 2000-09-12 | 2004-02-24 | International Business Machines Corporation | Method and apparatus for performing data access and refresh operations in different sub-arrays of a DRAM cache memory |
JP3985889B2 (ja) | 2001-08-08 | 2007-10-03 | 株式会社ルネサステクノロジ | 半導体装置 |
US6757784B2 (en) | 2001-09-28 | 2004-06-29 | Intel Corporation | Hiding refresh of memory and refresh-hidden memory |
WO2003032170A1 (en) | 2001-10-11 | 2003-04-17 | Cascade Semiconductor Corporation | Asynchronous hidden refresh of semiconductor memory |
US6912623B2 (en) * | 2002-06-04 | 2005-06-28 | Sandbridge Technologies, Inc. | Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy |
US7284095B2 (en) | 2004-08-18 | 2007-10-16 | International Business Machines Corporation | Latency-aware replacement system and method for cache memories |
US7313047B2 (en) | 2006-02-23 | 2007-12-25 | Hynix Semiconductor Inc. | Dynamic semiconductor memory with improved refresh mechanism |
JP4912718B2 (ja) * | 2006-03-30 | 2012-04-11 | 富士通セミコンダクター株式会社 | ダイナミック型半導体メモリ |
US20080270683A1 (en) | 2007-04-25 | 2008-10-30 | International Business Machines Corporation | Systems and methods for a dram concurrent refresh engine with processor interface |
US7882302B2 (en) | 2007-12-04 | 2011-02-01 | International Business Machines Corporation | Method and system for implementing prioritized refresh of DRAM based cache |
US8024513B2 (en) * | 2007-12-04 | 2011-09-20 | International Business Machines Corporation | Method and system for implementing dynamic refresh protocols for DRAM based cache |
US8266408B2 (en) * | 2009-03-17 | 2012-09-11 | Memoir Systems, Inc. | System and method for storing data in a virtualized high speed memory system |
CN102081964B (zh) * | 2009-11-30 | 2014-12-10 | 国际商业机器公司 | 动态随机访问存储器刷新的方法和系统 |
US8601217B2 (en) * | 2010-08-31 | 2013-12-03 | Oracle International Corporation | Method and system for inserting cache blocks |
KR20120079682A (ko) * | 2011-01-05 | 2012-07-13 | 삼성전자주식회사 | 디램 캐시를 포함하는 메모리 장치 및 이를 포함하는 시스템 |
US9293187B2 (en) | 2011-09-26 | 2016-03-22 | Cisco Technology, Inc. | Methods and apparatus for refreshing digital memory circuits |
KR102048407B1 (ko) * | 2012-10-19 | 2019-11-25 | 삼성전자주식회사 | 리프레쉬 어드레스 생성기 및 휘발성 메모리 장치 |
WO2015101827A1 (en) | 2013-12-31 | 2015-07-09 | Mosys, Inc. | Integrated main memory and coprocessor with low latency |
CN103811048B (zh) | 2014-02-26 | 2017-01-11 | 上海新储集成电路有限公司 | 一种混合存储器结构的低功耗刷新方法 |
US9990293B2 (en) | 2014-08-12 | 2018-06-05 | Empire Technology Development Llc | Energy-efficient dynamic dram cache sizing via selective refresh of a cache in a dram |
US20160188490A1 (en) | 2014-12-26 | 2016-06-30 | Intel Corporation | Cost-aware page swap and replacement in a memory |
KR20170057704A (ko) * | 2015-11-17 | 2017-05-25 | 삼성전자주식회사 | 액세스 동작과 리프레쉬 동작의 충돌을 제어하는 메모리 장치 및 이를 포함하는 메모리 시스템 |
KR102329673B1 (ko) * | 2016-01-25 | 2021-11-22 | 삼성전자주식회사 | 해머 리프레쉬 동작을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템 |
KR101913914B1 (ko) * | 2016-10-31 | 2018-10-31 | 경북대학교 산학협력단 | 메모리 셀에 대한 리프레시 방법 및 장치 |
-
2017
- 2017-03-13 US US15/457,813 patent/US10394719B2/en active Active
- 2017-09-05 KR KR1020170113476A patent/KR102245310B1/ko active IP Right Grant
- 2017-12-05 TW TW106142585A patent/TWI756314B/zh active
-
2018
- 2018-01-16 CN CN201810038097.3A patent/CN108345548B/zh active Active
- 2018-01-17 JP JP2018005751A patent/JP7164951B2/ja active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11372779B2 (en) | 2018-12-19 | 2022-06-28 | Industrial Technology Research Institute | Memory controller and memory page management method |
Also Published As
Publication number | Publication date |
---|---|
US20180210843A1 (en) | 2018-07-26 |
JP2018120589A (ja) | 2018-08-02 |
KR20180087817A (ko) | 2018-08-02 |
TWI756314B (zh) | 2022-03-01 |
CN108345548A (zh) | 2018-07-31 |
CN108345548B (zh) | 2022-12-20 |
JP7164951B2 (ja) | 2022-11-02 |
KR102245310B1 (ko) | 2021-04-27 |
US10394719B2 (en) | 2019-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11216376B2 (en) | Memory circuit and cache circuit configuration | |
TW201841119A (zh) | 管理揮發性記憶體快取的方法和快取管理器 | |
US11921638B2 (en) | Flash-integrated high bandwidth memory appliance | |
CN111279322B (zh) | 一种处理系统和在3d堆栈存储器中混写的方法 | |
TWI724254B (zh) | 半導體設備、記憶體模組及其操作方法 | |
JP7252845B2 (ja) | 高帯域幅メモリのras(信頼性、アクセシビリティ、及びサービサビリティ)キャッシュ構造 | |
US9818707B2 (en) | Stacked memory chip having reduced input-output load, memory module and memory system including the same | |
US20200411064A1 (en) | Flexible memory system with a controller and a stack of memory | |
USRE49151E1 (en) | Memory system and electronic device | |
US9324380B2 (en) | Stacked semiconductor apparatus and semiconductor system capable of inputting signals through various paths | |
US20160203091A1 (en) | Memory controller and memory system including the same | |
US9773569B2 (en) | Stack type semiconductor memory and semiconductor system using the same | |
US9990143B2 (en) | Memory system | |
US9563384B2 (en) | Systems and methods for data alignment in a memory system | |
US20190042095A1 (en) | Memory module designed to conform to a first memory chip specification having memory chips designed to conform to a second memory chip specification | |
US10331366B2 (en) | Method of operating data storage device and method of operating system including the same | |
US20220108743A1 (en) | Per bank refresh hazard avoidance for large scale memory | |
US20220276958A1 (en) | Apparatus and method for per memory chip addressing |