TW201604889A - 支援近記憶體存取及遠記憶體存取的及半導體晶片及電腦系統 - Google Patents
支援近記憶體存取及遠記憶體存取的及半導體晶片及電腦系統 Download PDFInfo
- Publication number
- TW201604889A TW201604889A TW104132429A TW104132429A TW201604889A TW 201604889 A TW201604889 A TW 201604889A TW 104132429 A TW104132429 A TW 104132429A TW 104132429 A TW104132429 A TW 104132429A TW 201604889 A TW201604889 A TW 201604889A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- cache
- read
- far
- channel
- Prior art date
Links
Classifications
-
- 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/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1064—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
- G06F9/467—Transactional memory
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1008—Correctness of operation, e.g. memory ordering
-
- 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
-
- 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/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2024—Rewritable memory not requiring erasing, e.g. resistive or ferroelectric RAM
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
一種包含記憶體控制器電路的半導體晶片具有介面電路以耦接至一記憶體通道。該記憶體控制器係包括第一邏輯電路以在該記憶體通道上體現一第一記憶體通道協定。該第一記憶體通道協定乃專用於一第一依電性系統記憶體技術。該介面也包括第二邏輯電路以在該記憶體通道上體現一第二記憶體通道協定。該第二記憶體通道協定乃專用於一第二非依電性系統記憶體技術。該第二記憶體通道協定乃一異動協定。
Description
本發明大致上係有關於電腦系統領域。更明確言之,本發明係有關於一種用以體現含括一非依電性記憶體層的多等級記憶體階層的裝置及方法。
今日電腦創新的限制因素中之一者乃記憶體與儲存裝置技術。於習知電腦系統中,系統記憶體(又稱主記憶體、一次記憶體、可執行記憶體)典型地係藉動態隨機存取記憶體(DRAM)體現。以DRAM為基的記憶體即便當無記憶體讀或寫時也耗電,原因在於必須恆常地充電內部電容器故。以DRAM為基的記憶體為依電性,表示一旦電力被拔除則儲存在DRAM記憶體的資料喪失。習知電腦系統也仰賴多個快取等級以改良效能。快取記憶體乃位在處理器與系統記憶體間的一高速記憶體,比較從系統記憶體服務,前者可更快速服務記憶體存取請求。此等快取記憶體
典型地係以靜態隨機存取記憶體(SRAM)體現。快取記憶體管理協定可用以確保最頻繁地存取的資料及指令係儲存在快取記憶體的多個層級中之一者,藉此減少記憶體存取異動次數與改良效能。
至於大容量儲存裝置(又稱二次儲存裝置或碟片
儲存裝置),習知大容量儲存裝置典型地包括磁性媒體(例如硬碟機)、光學媒體(例如光碟(CD)機、數位影音碟(DVD)等)、全像媒體、及/或大容量儲存裝置快閃記憶體(例如固態驅動裝置(SSD)、活動式快閃驅動裝置等)。通常,此等儲存裝置被視為輸出入(I/O)裝置,原因在於其係藉體現各項I/O協定的I/O配接器而藉處理器存取。此等I/O配接器及I/O協定耗用顯著大量電力,且對晶粒面積及平台的形狀因數造成顯著影響。可攜式或行動裝置(例如膝上型電腦、小筆電、平板電腦、個人數位助理器(PDA)、可攜式媒體播放器、可攜式遊戲裝置、數位相機、行動電話、智慧型電話、未來電話等)當不連結至持久電源供應器時具有有限的電池壽命,可包含活動式大容量儲存裝置(例如嵌入式多媒體卡(eMMC)、保全數位(SD)卡)典型地係透過低功率互連體及I/O控制器而耦接至處理器以滿足有源的及閒置的電力預算。
至於韌體記憶體(諸如啟動記憶體(又稱BIOS快
閃記憶體)),習知電腦系統典型地使用快閃記憶體裝置以儲存經常被讀取但罕見(或未曾)被寫入的持久系統資訊。舉例言之,在啟動處理(基本輸出入系統(BIOS)影像)期間由處理
器用以初始化關鍵系統組件的初始指令典型地係儲存在快閃記憶體裝置。目前市面上可得的快閃記憶體裝置通常速度有限(例如50MHz)。此種速度又因讀協定的額外負擔(例如2.5MHz)而更進一步減慢。為了加速BIOS執行速度,於啟動處理的前置可擴延韌體介面(PEI)階段期間,習知處理器通常快取BIOS代碼的一部分。處理器快取記憶體的大小對用在PEI階段的BIOS代碼(又稱「PEI BIOS代碼」)大小造成限制。
相變記憶體(PCM)偶爾又稱相變隨機存取記憶體(PRAM或PCRAM)、PCME、奧佛(Ovonic)聯合記憶體、或硫屬化物RAM(C-RAM)乃典型非依電性電腦記憶體,其探索硫屬玻璃的獨特表現。由於電流通過產熱的結果,硫屬玻璃可在兩態間切換:結晶態與非晶態。晚近的PCM版本可達成兩個額外獨特態。
PCM提供比快閃記憶體更高的效能,原因在於PCM的記憶體元件可更快速切換,可進行寫(變更個別位元為1或0)而無需先抹除一整個胞元區塊,且從寫降級更慢(一PCM裝置可存活約一億次寫週期;PCM降級係由於程式規劃期間的熱膨脹、金屬(及其它材料)遷移、及其它機轉)。
依據本發明之一實施例,係特地提出一種支援近記憶體存取及遠記憶體存取的半導體晶片,該半導體晶片包含:記憶體控制器電路,其具有用以耦接至一記憶體
通道的介面電路,該記憶體控制器電路包括:第一邏輯電路,其用以透過該介面電路以在該記憶體通道上體現一第一記憶體通道協定,該第一記憶體通道協定係專用於一第一依電性系統記憶體技術;第二邏輯電路,其用以透過該介面電路以在該記憶體通道上體現一第二記憶體通道協定,該第二記憶體通道協定係專用於一第二非依電性系統記憶體技術,該第二記憶體通道協定係為一異動協定。
100、310‧‧‧處理器、CPU
101-104‧‧‧處理器核心
101a-104a‧‧‧等級0內部處理器快取記憶體
101b-104b‧‧‧等級1內部處理器快取記憶體
105‧‧‧低階快取記憶體(LLC)
106、313‧‧‧快取記憶體
107、108、109‧‧‧記憶體端快取記憶體(MSC)
115、315‧‧‧輸入/輸出(I/O)次系統
116-119‧‧‧系統記憶體區域
120‧‧‧內部處理器快取記憶體、內部CPU快取記憶體
121、144‧‧‧近記憶體
122‧‧‧遠記憶體
124‧‧‧MSC控制器
140‧‧‧記憶體/儲存裝置階層
142、174‧‧‧非依電性隨機存取記憶體(NVRAM)
150‧‧‧快取記憶體等級
150A‧‧‧處理器快取記憶體
150B‧‧‧作為遠記憶體的快取記憶體
151‧‧‧系統記憶體等級
151A‧‧‧系統記憶體
151B‧‧‧遠記憶體
152‧‧‧大容量儲存裝置等級
152A‧‧‧NVRAM大容量儲存裝置
152B‧‧‧快閃/磁/光大容量儲存裝置
153‧‧‧韌體記憶體等級
170‧‧‧基本輸出入系統(BIOS)快閃記憶體
172‧‧‧BIOS NVRAM
173‧‧‧信賴平台模組(TPM)NVRAM
190‧‧‧系統位址空間A
191‧‧‧系統位址空間B
192‧‧‧暫存記憶體
193‧‧‧寫緩衝器
300‧‧‧電腦系統
311‧‧‧整合圖形單元
314‧‧‧主機代理器
331‧‧‧整合型記憶體控制器(IMC)、記憶體控制器
332‧‧‧NVRAM控制器
333‧‧‧解碼表
334‧‧‧信賴平台模組(TPM)
335‧‧‧管理引擎(ME)
336‧‧‧範圍暫存器、網路
337‧‧‧非儲存I/O裝置
338‧‧‧I/O配接器
340‧‧‧DRAM裝置
342‧‧‧標籤快取記憶體
362‧‧‧BIOS快閃記憶體
372‧‧‧TPM快閃記憶體
380‧‧‧記憶體/儲存裝置次系統
401、701、831‧‧‧遠記憶體
401_1~N‧‧‧儲存裝置集合
402、702‧‧‧近記憶體快取記憶體
402_1~N‧‧‧分錄
403、703、803‧‧‧較低排序位元
404、704、804‧‧‧設定位元
405、705、805‧‧‧標籤位元、標籤
408、708、806‧‧‧較高有序位元
409‧‧‧主機端
410‧‧‧資料
411、711、811‧‧‧嵌入式標籤資訊
412、712、812‧‧‧已使用位元
413、713、813‧‧‧ECC資訊、ECC位元
414、723、814、823‧‧‧快取失誤邏輯、MSC命中/失誤邏輯
415‧‧‧緩衝器
416‧‧‧近記憶體快取記憶體介面邏輯
417‧‧‧讀緩衝器
418‧‧‧遠記憶體介面邏輯
420‧‧‧ECC邏輯
421、721、821、921、1121‧‧‧通道、記憶體通道
424‧‧‧記憶體端控制(MSC)邏輯、MSC控制邏輯
424a‧‧‧主機端MSC控制邏輯
431、731、831‧‧‧記憶體控制器
432‧‧‧NVRAM控制器
501-507、611-616、751-759、761-787、851-857、861-888、1001-1004、1201-1210、1221-1225‧‧‧步驟
701_1~M‧‧‧遠記憶體儲存裝置
702_1~N、802_1~N‧‧‧近記憶體儲存裝置
722、822‧‧‧遠記憶體控制邏輯
730、830‧‧‧近記憶體平台
732、832‧‧‧遠記憶體平台
761‧‧‧讀取請求
762‧‧‧快取列分錄
780‧‧‧讀/寫資訊
786‧‧‧遠記憶體讀取請求
790、890、992‧‧‧異動識別符、異動ID
831、909‧‧‧記憶體控制器
841、941‧‧‧指令匯流排
842、942‧‧‧資料匯流排
843、943‧‧‧控制信號
850‧‧‧暫存器空間
870‧‧‧近記憶體位址
880、895‧‧‧近記憶體資料匯流排
942_1‧‧‧讀/寫資料行
942_2‧‧‧ECC行
942_3‧‧‧選通行
943_1‧‧‧選擇信號行
943_2‧‧‧時鐘致能信號行
943_3‧‧‧晶粒上結束行
990、991‧‧‧指示
993‧‧‧寫緩衝器發佈計數
1120‧‧‧邏輯電路、遠記憶體控制邏輯電路
1131‧‧‧遠記憶體儲存裝置
1135‧‧‧遠記憶體裝置介面電路
1136‧‧‧耗損調平演算法電路
1137‧‧‧寫緩衝器
1138‧‧‧讀緩衝器
後文詳細說明部分及附圖係用以例示說明本發明之實施例。附圖中:圖1例示說明依據本發明之實施例一種快取記憶體及系統記憶體配置;圖2例示說明於本發明之實施例採用的一種記憶體與儲存裝置階層;圖3例示說明於其上可體現本發明之實施例的一種電腦系統;圖4例示說明在一相同記憶體通道上的近記憶體快取記憶體及遠記憶體之體現;圖5例示說明可在圖4觀察得的近記憶體/遠記憶體系統上執行的一寫處理;圖6例示說明可在圖4觀察得的近記憶體/遠記憶體系統上執行的一讀處理;圖7A例示說明用以整合在一相同記憶體通道上的近記憶體快取記憶體及遠記憶體之「在前方近記憶體」
架構;圖7B-D例示說明可藉圖7A之系統執行的處理;圖8A例示說明用以整合在一相同記憶體通道上的近記憶體快取記憶體及遠記憶體之「在前方近記憶體」架構;圖8B-D例示說明可藉圖8A之系統執行的處理;圖9A例示說明記憶體通道布線以支援近記憶體存取之應用;圖9B例示說明記憶體通道布線以支援遠記憶體存取之應用;圖10例示說明一種用以存取近記憶體之方法;圖11例示說明遠記憶體控制邏輯電路之一實施例;圖12A-B例示說明可發出支援近記憶體存取及遠記憶體存取之一記憶體通道的基元處理。
於後文詳細說明部分中,陳述無數特定細節以供更徹底瞭解本發明,諸如邏輯體現、操作代碼(opcode)、載明運算元的手段、資源區劃/共享/複製體現、系統組件的型別及交互關係、及邏輯區劃/綜合選擇。但熟諳技藝人士須瞭解可無此等特定細節而實施本發明。於其它情況下,其它控制結構、閘極層面電路及全軟體指令序列未曾以細節顯示以免遮掩本發明。熟諳技藝人士利用本文含括的描
述,無需不當的實驗將能體現適當功能。
於本說明書中述及「一個實施例」、「一實施例」、「一個具體實施例」等係指示所描述的實施例可包括特定特徵、結構、或特性,但並非必要每個實施例皆包括該特定特徵、結構、或特性。此外,此等片語並非全部皆係指同一個實施例。又,當一特定特徵、結構、或特性係連結一實施例描述時,表示聯結其它實施例執行此等特徵、結構、或特性係落入熟諳技藝人士的知識範圍內而與其是否明確地描述無關。
於後文描述及申請專利範圍中,可使用「耦合」及「連結」等詞連同其衍生詞。須瞭解此等術語並非意圖成為彼此的同義詞。「耦合」係用來指示二或多個元件,該等元件可能或可能不彼此直接實體或電氣接觸、彼此協作或互動。「連結」係用來指彼此耦接的二或多個元件間建立通訊。
具有虛線邊界(例如大虛線、小虛線、點虛線、點)的加括號的文字及方塊偶爾用於此處以例示說明增加額外特徵至本發明之實施例的選擇性操作/組件。但此等標記法不應解譯為表示此等標記乃唯一選項或選擇性操作/組件,及/或於本發明之某些實施例中具有實線邊界的方塊並非選擇性。
記憶體容量及效能要求隨著處理器核心數目的增加及新穎使用模型諸如虛擬化而持續增加。此外,記憶
體功率及成本已經分別地變成電子系統的總功率及成本的一大組成因素。
若干本發明之實施例藉由在各個記憶體技術間智慧型地細分效能要求與容量要求而解決前述挑戰。此項辦法的焦點係聚焦在以相對小量相當高速記憶體諸如DRAM而提供效能,同時使用顯著更廉價且更緊密的非依電性隨機存取記憶體(NVRAM)而體現系統記憶體本體。後文描述的本發明之實施例定義許可使用NVRAM的階層式記憶體次系統組織作動的平台組態。NVRAM的用在記憶體階層也許可新用途,諸如擴延啟動空間及大容量儲存體現,容後詳述。
圖1例示說明依據本發明之實施例一種快取記憶體及系統記憶體配置。更明確言之,圖1顯示記憶體階層包括一組內部處理器快取記憶體120、「近記憶體」作為一遠記憶體快取記憶體121,其可包括內部快取記憶體106及外部快取記憶體107-109二者、及「遠記憶體」122。於本發明之若干實施例中,可用作為「遠記憶體」的一個特定型別之記憶體乃非依電性隨機存取記憶體(NVRAM)。因此,NVRAM的綜論提供如下,接著為遠記憶體及近記憶體的綜論。
NVRAM有多項可能的技術選擇,包括相變記憶體(PCM)、相變記憶體及開關(PCMS)(後者乃前者的更特定體現)、位元組可定址持久記憶體(BPRAM)、儲存類別記憶
體(SCM)、通用記憶體、Ge2Sb2Te5、可規劃金屬化單元(PMC)、電阻記憶體(RRAM)、RESET(非晶型)單元、SET(結晶型)單元、PCME、奧辛斯基(Ovshinsky)記憶體、鐵電記憶體(又稱作聚合物記憶體及聚(N-乙烯基咔唑))、鐵磁記憶體(又稱自旋電子學記憶體(Spintronics)、SPRAM(自旋轉移轉矩RAM)、STRAM(自旋穿隧RAM)、磁阻記憶體、磁性記憶體、磁性隨機存取記憶體(MRAM))、及半導體-氧化物-氮化物-氧化物-半導體(SONOS,又稱電介質記憶體)。
NVRAM具有下列特性:(1)即使電力被去除仍然保有其內容,類似於用在固態驅動裝置(SSD)的快閃記憶體,而與依電性的SRAM及DRAM相異;(2)比依電性記憶體諸如SRAM及DRAM的功耗低;(3)類似SRAM及DRAM的隨機存取(又稱為可隨機定址);(4)比較SSD中所見快閃記憶體(只能以一次一個「區塊」改寫及抹除,亦即對NOR FLASH最小的大小為64千位元組而NAND FLASH為16位元組),可以更低的粒度等級(例如位元組等級)改寫及抹除;(5)用作為系統記憶體且配置系統記憶體位址空間的全部或部分;(6)可使用異動協定(支援異動識別符(ID)以區別不同的異動使得該等異動可脫序完成之一協定)透過一匯流排而耦接至該處理器,且許可以夠小的粒度等級存取以支援
NVRAM作為系統記憶體的操作(快取記憶體行大小,諸如64或128位元組)。舉例言之,匯流排可為記憶體匯流排(例如DDR匯流排諸如DDR3、DDR4等),透過該等匯流排跑異動協定,而與一般使用的非異動協定相反。至於另一個實例,匯流排可為其上通常跑異動協定(本機異動協定)的匯流排,諸如PCI快速(PCIE)匯流排、桌上管理介面(DMI)匯流排、或任何其它型別的匯流排利用一異動協定及夠小的異動酬載大小(快取記憶體行大小,諸如64或128位元組);及(7)下列中之一或多者:a)比非依電性記憶體/儲存技術諸如快閃記憶體更快的寫入速度;b)極高讀取速度(比快閃記憶體更快而接近或等於DRAM讀取速度);c)可直接寫入(而非如用在SSD的快閃記憶體在寫資料前要求抹除(以1秒改寫));d)失敗前有更大的寫入次數(大於啟動ROM及SSD內使用的快閃記憶體);及/或如前述,與快閃記憶體相反,快閃記憶體必須改寫且一次抹除一個完整「區塊」,在任何給定的體現中NVRAM存取的粒度等級可取決於特定記憶體控制器及特定記憶體匯流排或NVRAM耦接的其它型別的匯流排。舉例言之,於若干體現中,於該處NVRAM係用作為系統記憶體,NVRAM可於快取列的粒度(例如64位元組或128位元組快取列)存取,無庸殆言以1位元組粒度存取的特有能力,
原因在於快取列乃記憶體次系統存取記憶體的等級。如此,當NVRAM係被部署在一記憶體次系統內部時,NVRAM可以與用在相同記憶體次系統的DRAM(例如「近記憶體」)相同粒度等級存取。即使如此,由記憶體控制器及特定記憶體匯流排或其它型別的匯流排存取NVRAM的粒度等級係小於由快閃記憶體所使用的區塊大小及I/O次系統控制器及匯流排的存取大小的粒度等級。
NVRAM也可結合耗損調平演算法以考慮下述事實:在遠記憶體層級的儲存胞元經多次寫存取後開始磨耗,特別係當可能出現顯著寫入次數時尤為如此,諸如次系統記憶體體現。因高周期計數區塊最可能以此種方式磨耗,耗損調平藉調換高周期計數區塊位址與低周期計數區塊位址而橫跨遠記憶體胞元擴展寫入。注意大部分位址調換典型地對應用程式為透明,原因在於位址調換係藉硬體、低階軟體(例如低階驅動裝置或作業系統)、或二者的組合處置之故。
本發明之若干實施例的遠記憶體122係以NVRAM體現,但非必要限於任何特定記憶體技術。就其特性及/或其於記憶體/儲存裝置階層的應用而言,遠記憶體122可與其它指令及資料記憶體/儲存裝置技術區別。舉例言之,遠記憶體122係與下列各者不同:
1)靜態隨機存取記憶體(SRAM)可用於處理器核心101-104各自專用的等級0及等級1內部處理器快取記憶體
101a-b、102a-b、103a-b、及104a-b,及用該等處理器核心所共用的低階快取記憶體(LLC)105。
2)動態隨機存取記憶體(DRAM)組配作為處理器100內部的快取記憶體106(例如在處理器100的相同晶粒上)及/或組配成在處理器外部的一或多個快取記憶體107-109(例如在與處理器100相同的或相異的封裝體);及
3)快閃記憶體/磁碟/光碟應用為大容量儲存裝置(圖中未顯示);及
4)記憶體諸如快閃記憶體或其它唯讀記憶體(ROM)應用作為韌體記憶體(可稱作為啟動ROM、BIOS快閃記憶體、及/或TPM快閃記憶體)(圖中未顯示)。
遠記憶體122可用作為指令及資料儲存裝置,其可由處理器100直接定址,與應用作為大容量儲存裝置的快閃記憶體/磁碟/光碟相反,遠記憶體122可與處理器100充分維持同調。此外,如前文討論且容後詳述,遠記憶體122可置於記憶體匯流排上,且可與記憶體控制器直接通訊,而又轉而與處理器100直接通訊。
遠記憶體122可組合其它指令及資料儲存裝置技術(例如DRAM)以形成混成記憶體(又稱共定位PCM及DRAM;第一層級記憶體及第二層級記憶體;FLAM(快閃記憶體及DRAM))。注意前述技術中之至少若干者包括PCM/PCMS可用作為大容量儲存裝置替代或除外系統記憶體,且當以此方式施用時無需為藉處理器可隨機存取、可位元組定址、或可直接定址。
為求方便解說,本案其餘部分大半將述及「NVRAM」,或更明確言之「PCM」或「PCMS」作為針對遠記憶體122選用的技術。如此,NVRAM、PCM、PCMS、及遠記憶體等詞可互換地用在後文討論中。但如前文討論,須瞭解不同技術也可用於遠記憶體。又,NVRAM並不限於用作為遠記憶體。
「近記憶體」121為組配在遠記憶體122前方的中間層級記憶體,相較於遠記憶體具有更低的讀/寫存取延遲及/或更對稱性讀/寫存取延遲(亦即讀時間粗略相當於寫時間)。於本發明之若干實施例中,近記憶體121具有比遠記憶體122顯著更低的寫延遲,但有相似的(例如略低的或相等的)讀延遲;例如近記憶體121可為依電性記憶體,諸如依電性隨機存取記憶體(VRAM),且可包含DRAM或其它以高速電容器為基的記憶體。但須注意本發明之潛在原理並非限於此等特定記憶體型別。此外地,近記憶體121可具有比較遠記憶體122的相對低密度及/或製造上更昂貴。
於一個實施例中,近記憶體121係組配在遠記憶體122與內部處理器快取記憶體120間。於後述實施例中之部分中,近記憶體121係組配為一或多個記憶體端快取記憶體(MSC)107-109以遮蔽遠記憶體的效能限制及/或使用限制,包括例如讀/寫延遲限制及記憶體降級限制。於此等體現中,MSC 107-109與遠記憶體122的組合係在一效能等級操作,該效能等級係逼近、等於、或超過只使用DRAM作
為系統記憶體之一系統。容後詳述,雖然於圖1中顯示為「快取記憶體」,近記憶體121可包括執行其它角色的模式,額外或另外地執行快取記憶體的角色。
近記憶體121可位在處理器晶粒上(作為快取記憶體106)及/或位在處理器晶粒外部(作為快取記憶體107-109)(例如在位在CPU封裝體上、位在CPU封裝體外部與CPU封裝體有高帶寬鏈路的分開晶粒上,例如雙排式記憶體模組(DIMM)、冒口/夾層、或電腦主機板)。近記憶體121可使用單一或多個高帶寬鏈路,諸如DDR或其它異動高帶寬鏈路而與處理器100耦接通訊(容後詳述)。
圖1例示說明於本發明之實施例中,快取記憶體101-109之各個等級係如何就系統實體位址(SPA)空間116-119組配。如前文所述,本實施例包含一處理器100,具有一或多個核心101-104,各個核心具有其本身專用的高等級快取記憶體(L0)101A-104A及中等級快取記憶體(MLC)(L1)快取記憶體101b-104b。處理器100也包括一共享LLC 105。此等各項快取記憶體等級的操作為眾所周知,在此將不再詳細說明。
圖1例示說明的快取記憶體107-109可為一特定系統記憶體位址範圍或一非接續位址範圍集合所專用。舉例言之,快取記憶體107係專用作為系統記憶體位址範圍#1 116的MSC,而快取記憶體108及109係專用作為系統記憶體位址範圍#2 117及#3 118的非重疊部的MSC。後述體現可用
於下述系統,其中由處理器100所使用的SPA空間係交插入由快取記憶體107-109所使用的SPA空間(例如當組配作為MSC時)。於本發明之若干實施例中,後述位址空間係稱作為記憶體通道位址(MCA)空間。於一個實施例中,內部快取記憶體101a-106針對整個SPA空間執行快取操作。
如此處使用的系統記憶體乃由在處理器100上執行的軟體所可見及/或可直接定址的記憶體;雖然快取記憶體101a-109可對軟體為透明地操作,表示不會形成少統位址空間的可直接定址部分,但核心也可支援指令的執行以許可軟體對部分或全部快取記憶體提供某些控制(組態、策略、暗示等)。系統記憶體細分成為各區116-119可藉手動執行作為系統組配處理(例如由系統設計師)的一部分,及/或可藉軟體自動地執行。
於一個實施例中,系統記憶體區116-119係使用遠記憶體(例如PCM)體現,及於若干實施例中,近記憶體係組配作為系統記憶體。系統記憶體位址範圍#4表示使用較高速記憶體,諸如DRAM其可為組配在系統記憶體模式(與快取模式相對)的近記憶體體現之一位址範圍。
圖2例示說明依據本發明之實施例,一種記憶體/儲存裝置階層140及針對近記憶體144及NVRAM之不同連續操作模式。該記憶體/儲存裝置階層140具有多個等級,包括(1)一快取記憶體等級150,其可包括處理器快取記憶體150A(例如圖1之快取記憶體101A-105)及選擇性地包括作為遠記憶體(FM)的快取記憶體150B之近記憶體(NM)(於如
此處所述之若干操作模式);(2)一系統記憶體等級151,當近記憶體存在時,其可包括遠記憶體151B(例如NVRAM,諸如PCM)(或當近記憶體不存在時,其只包括NVRAM作為系統記憶體174),及選擇性地近記憶體操作為系統記憶體151A的快取記憶體(於如此處所述之若干操作模式);(3)一大容量儲存裝置等級152,其可包括一快閃/磁/光大容量儲存裝置152B及/或NVRAM大容量儲存裝置152A(例如NVRAM 142之一部分);及(4)一韌體記憶體等級153,其可包括BIOS快閃記憶體170及/或BIOS NVRAM 172,及選擇性地包括信賴平台模組(TPM)NVRAM 173。
如前文指出,近記憶體144可體現以多種不同模式操作,包括一第一模式其中近記憶體操作為遠記憶體之一快取記憶體(作為FM的快取記憶體150B之近記憶體);一第二模式其中近記憶體係操作為系統記憶體151A且占用SPA空間的一部分(偶爾稱作為近記憶體「直接存取」模式);及一或多個額外操作模式諸如暫存記憶體192或寫緩衝器193。於本發明之若干實施例中,該近記憶體為可分割,於該處各個區劃可以所支援模式中之一不同者併行操作;及不同實施例可藉硬體(例如熔絲、接腳)、韌體、及/或軟體(例如經由在MSC控制器124內部的一可程式規劃範圍暫存器集合,其內部例如可儲存以不同二進制代碼以識別各個模式及區劃)而支援區劃組態(例如大小、模式)。
圖2之系統位址空間A190係用以例示說明當近記憶體係組配作為遠記憶體的快取記憶體150B(即,MSC)
時之操作。於本組態中,系統位址空間A 190表示整個系統位址空間(而系統位址空間B 191不存在)。另外,系統位址空間B 191係用以顯示當全部或部分近記憶體係被分派為系統位址空間的一部分時的一種體現。於本實施例中,系統位址空間B 191表示分派給系統記憶體151A的系統位址空間範圍,而系統位址空間A 190表示分派給NVRAM 174的系統位址空間範圍。
此外,當作為遠記憶體的快取記憶體150B時,近記憶體144可在MSC控制器124的控制之下以各個次模式操作。於此等模式中,近記憶體位址空間(NMA)係對軟體為透明,表示該近記憶體不形成該系統位址空間之一可直接定址部分。此等模式包括但非限於下列:
(1)回寫快取模式:於本模式中,用作為FM的快取記憶體150B的近記憶體之全部或部分係用作為NVRAM遠記憶體(FM)151B的快取記憶體。於回寫模式中,每個寫操作係初步導向至用作為FM的快取記憶體150B的近記憶體(假設寫導向之該快取列係存在於該快取記憶體)。唯有當在該用作為FM的快取記憶體150B之該近記憶體內部的該快取列係將由另一個快取列置換時,才執行相對應寫操作以更新該NVRAM FM 151B(與後文說明的寫穿模式相反,其中各次寫操作係即刻地傳播至NVRAM FM 151B)。
(2)近記憶體繞道模式:於本模式中,全部讀及寫繞道用作為FM的快取記憶體150B的NM而直接前進至NVRAM FM 151B。此種模式例如可用在當一應用程式並非快取友
善時,或要求資料在一快取列粒度持續地提交時。於一個實施例中,由處理器快取記憶體150A及用作為FM的快取記憶體150B的NM所執行的快取各自獨立地操作。資料可在用作為FM的快取記憶體150B的NM快取,而不在處理器快取記憶體150A快取(及於若干情況下,不許可在處理器快取記憶體150A快取),及反之亦然。如此可被標示為在處理器快取記憶體中「無法快取」的某些資料可在用作為FM的快取記憶體150B的NM內部快取。
(3)近記憶體讀-快取寫繞道模式:此乃前述模式的變化例,於該處許可從NVRAM FM 151B讀快取持久資料(亦即針對唯讀操作,持久資料係在用作為遠記憶體的快取記憶體150B的近記憶體快取)。當大部分持久資料為「唯讀」且應用程式的使用為快取友善時此點係有用的。
(4)近記憶體讀-快取寫穿模式:此乃近記憶體讀-快取寫繞道模式的變化例,於該處除了讀快取之外,也快取寫命中。每次寫至用作為FM的快取記憶體150B的近記憶體造成寫至FM 151B。如此,由於快取記憶體的寫穿本質,仍然保證快取列的持久。
當於近記憶體直接存取模式作動時,作為系統記憶體151A的近記憶體之全部或部分為軟體所直接可見且構成SPA空間的一部分。此種記憶體可完全地在軟體的控制之下。此種方案可針對軟體產生非一致記憶體位址(NUMA)記憶體域,於該處比較NVRAM系統記憶體174,獲得更高來自近記憶體144的效能。舉例言之,但非限制性,此種用
途可採用於某種高效能運算(HPC)及圖形應用,其要求極其快速地存取某些資料結構。
於一替代實施例中,近記憶體直接存取模式係藉「固定」某些快取列於近記憶體體現(亦即具有資料也併行儲存在NVRAM 142的快取列)。此種固定可在更大型多向集合相聯結的快取記憶體有效地進行。
圖2也例示說明部分NVRAM 142可用作為韌體記憶體。舉例言之,BIOS NVRAM 172部分可用以儲存BIOS影像(替代或除外儲存BIOS資訊於BIOS快閃記憶體170)。BIOS NVRAM部分172可為SPA空間的一部分,且藉在處理器核心101-104上執行的軟體為可直接定址,而BIOS快閃記憶體170係經由I/O次系統115為可定址。至於另一個實例,信賴平台模組(TPM)NVRAM 173部分可用以保護敏感系統資訊(例如加密鑰)。
如此,如前文指示,NVRAM 142可體現而以多種不同模式操作,包括作為遠記憶體151B(例如當近記憶體144存在/操作時,該近記憶體是否透過MSC控制器124作為遠記憶體的快取記憶體(在快取記憶體101A-105之後直接存取且無MSC控制器124);只作為NVRAM系統記憶體174(不作為遠記憶體,原因在於不存在有/操作近記憶體;及無MSC控制器124而存取);NVRAM大容量儲存裝置152A;BIOS NVRAM 172;及TPM NVRAM 173。雖然不同實施例可以不同方式載明NVRAM模式,但圖3描述解碼表333的使用。
圖3例示說明其上可體現本發明之實施例的電腦系統300之實例。該電腦系統300包括一處理器310及記憶體/儲存裝置次系統380,NVRAM 142用於系統記憶體、大容量儲存裝置二者及選擇性地,韌體記憶體。於一個實施例中,NVRAM 142包含整個系統記憶體及由電腦系統300使用的儲存階層用以儲存資料、指令、狀態、及其它持久與非持久的資訊。如前文討論,NVRAM 142可經組配來在系統記憶體、大容量儲存裝置、及韌體記憶體、TPM記憶體等的典型記憶體及儲存裝置階層體現。於圖3之實施例中,NVRAM 142係分割成FM 151B、NVRAM大容量儲存裝置152A、BIOS NVRAM 173、及TPM NVRAM 173。也預期涵蓋具有不同角色的儲存裝置階層,NVRAM 142之應用並非限於前述角色。
舉例言之,描述當用作為FM的快取記憶體150B的近記憶體係在回寫快取時的操作。於一個實施例中,當用作為FM的快取記憶體150B的近記憶體係在前述回寫快取時,讀取操作將首先到達MSC控制器124,其將執行詢查以決定所請求的資料是否存在於用作為FM的快取記憶體150B的近記憶體(例如利用一標籤快取記憶體342)。若存在時,則將資料透過I/O次系統115而回送至發出請求的CPU、核心101-104或I/O裝置。若該資料係不存在,則該MSC控制器124將連同系統記憶體位址發送該請求至NVRAM控制器332。該NVRAM控制器332將使用解碼表333來將系統記憶體位址轉譯成一NVRAM實體裝置位址(PDA),及導引該讀
取操作至遠記憶體151B的此區。於一個實施例中,解碼表333包括一位址間接表(AIT)成分,NVRAM控制器332使用該成分來在系統記憶體位址與NVRAM PDA間轉譯。於一個實施例中,AIT被更新作為耗損調平演算法,其係體現以分散記憶體存取操作,及藉此減少NVRAM FM 151B上的磨耗。另外,AIT可為儲存在NVRAM控制器332內部的一分開表。
當從NVRAM FM 151B接收所請資料時,NVRAM控制器332將回送該所請資料至MSC控制器124,其將該資料儲存在用作為FM的快取記憶體150B的MSC近記憶體,也將該資料透過I/O次系統115而回送至發出請求的處理器核心101-104或I/O裝置。隨後針對此項資料的請求可得自用作為FM的快取記憶體150B的近記憶體直接服務直到由若干其它NVRAM FM資料所置換。
如文所述,於一個實施例中,記憶體寫操作也首先進入MSC控制器124,將其寫至用作為FM的快取記憶體150B的MSC近記憶體。於回寫快取模式中,當接收到寫操作時,資料可能無法直接送至NVRAM FM 151B。舉例言之,唯有在資料儲存於其中的用作為FM的快取記憶體150B的MSC近記憶體內的位置須被重新用來為不同的系統記憶體位址儲存資料時,資料才可送至NVRAM FM 151B。當出現此種情況時,MSC控制器124注意到資料目前不在NVRAM FM 151B,如此將從用作為FM的快取記憶體150B的近記憶體取回資料且發送至NVRAM控制器332。NVRAM控制器332詢查PDA找尋系統記憶體位址,及然後將資料回
寫至NVRAM FM 151B。
圖3中,NVRAM控制器332係顯示為使用三條分開線而連結至FM 151B、NVRAM大容量儲存裝置152A、及BIOS NVRAM 172。但如此並非必要表示有三個分開實體匯流排或通訊通道連結NVRAM控制器332至NVRAM142的此等部分。反而於若干實施例中,一共用記憶體匯流排或其它型別的匯流排(諸如後文就圖4A-M描述者)係用以通訊耦合NVRAM控制器332至FM 151B、NVRAM大容量儲存裝置152A、及BIOS NVRAM 172。舉例言之,於一個實施例中,圖3的三條線表示一匯流排,諸如記憶體匯流排(例如DDR3、DDR4等匯流排),透過該等匯流排NVRAM控制器332體現一異動協定以與NVRAM 142通訊。NVRAM控制器332也透過支援本機異動協定的匯流排而與NVRAM 142通訊,諸如PCI快速匯流排、桌上管理介面(DMI)匯流排、或利用異動協定及夠小型異動酬載大小(例如快取列大小諸如64或128位元組)的任何其它型別的匯流排。
於一個實施例中,電腦系統300包括整合型記憶體控制器(IMC)331,其針對處理器310執行中央記憶體存取控制,其係耦接至:1)記憶體端快取記憶體(MSC)控制器124以控制存取用作為遠記憶體的快取記憶體150B的近記憶體(NM);及2)NVRAM控制器332以控制存取NVRAM 142。雖然於圖3中例示說明為分開單元,但MSC控制器124及NVRAM控制器332可於邏輯上構成IMC 331的一部分。
於該具體實施例中,MSC控制器124包括一範圍
暫存器336集合,其載明在使用用作為遠記憶體的快取記憶體150B的NM時的操作模式(例如前述回寫快取模式、近記憶體繞道模式等)。於該具體實施例中,DRAM 144係用作為針對用作為遠記憶體的快取記憶體150B的NM之記憶體技術。應答一記憶體存取請求,MSC控制器124可決定(取決於載明於範圍暫存器336的作業模式)該請求是否可從用作為FM的快取記憶體150B的NM服務或該請求是否須送至NVRAM控制器332,然後可服務來自NVRAM 142的遠記憶體(FM)部151B的請求。
於一實施例中,於該處NVRAM 142係以PCMS體現,NVRAM控制器332為PCMS控制器,其係以符合PCMS技術的協定執行存取。如前文討論,PCMS記憶體特性上可以1位元組的粒度存取。雖言如此,NVRAM控制器332可以較低粒度等級,諸如快取列(例如64-位元或128-位元快取列)或符合記憶體次系統的任何其它粒度等級存取以PCMS為基的遠記憶體151B。本發明之基本原理並非限於用以存取以PCMS為基的遠記憶體151B的任何特定粒度等級。但概略言之,當以PCMS為基的遠記憶體151B用以形成系統位址空間的一部分時,粒度等級將高於傳統上用於其它非依電性儲存裝置技術諸如快閃記憶體的粒度等級,後者只能以一「區塊」(對NOR FLASH最小大小是64千位元組,而對NAND FLASH是16千位元組)等級執行改寫與抹除操作。
於該具體實施例中,NVRAM控制器332可針對
得自解碼表333的NVRAM 142讀取組態資料以建立先前描述的模式、大小等,或另外,可仰賴從IMC 331及I/O次系統315發送的解碼結果。舉例言之,於製造時或於現場,電腦系統300可程式規劃解碼表333以標示NVRAM 142的不同區域作為系統記憶體、透過SATA介面暴露的大容量儲存裝置、透過USB只能大容量轉移(BOT)介面暴露的大容量儲存裝置、支援TPM儲存的加密儲存裝置等等。駕馭存取NVRAM裝置142的不同部分之手段係透過解碼邏輯。舉例言之,於一個實施例中,各個區劃的位址範圍係定義於解碼表333。於一個實施例中,當IMC 331接收到存取請求時,該項請求的目標位址經解碼以洩示該請求是否導向記憶體、NVRAM大容量儲存裝置、或I/O。若該請求係為記憶體請求,則IMC 331及/或MSC控制器124從該目標位址進一步決定該項請求是否導向至用作為FM的快取記憶體150B的近記憶體或導向至FM 151B。用於FM 151B存取,該請求係前傳至NVRAM控制器332。若此請求係導向I/O(例如非儲存裝置及儲存裝置I/O裝置),則IMC 331將該請求發送至I/O次系統115。I/O次系統115進一步解碼該位址以決定該位址是否指向NVRAM大容量儲存裝置152A、BIOS NVRAM 172、或其它非儲存裝置及儲存裝置I/O裝置。若此位址係指向NVRAM大容量儲存裝置152A或BIOS NVRAM 172,則I/O次系統115前傳該請求給NVRAM控制器332。若此位址係指向TPM NVRAM 173,則I/O次系統115發送該請求給TPM 334以執行保全存取。
於一個實施例中,前傳給NVRAM控制器332的各項請求係伴隨有一屬性(又稱「異動型別」)以指示存取型別。於一個實施例中,NVRAM控制器332可針對所請存取型別而仿真該存取協定,使得平台其餘部分維持不知曉由NVRAM 142在記憶體及儲存裝置階層中所扮演的多重角色。於替代實施例中,NVRAM控制器332可對NVRAM 142執行記憶體存取而與其異動型別無關。須瞭解解碼路徑可與前述路徑不同。舉例言之,IMC 331可解碼一存取請求的目標位址,決定其是否導向至NVRAM 142。若係導向至NVRAM 142,則IMC 331依據解碼表333而產生一屬性。基於該屬性,IMC 331然後前傳該請求給適當下游邏輯(例如NVRAM控制器332及I/O次系統315)以執行該所請資料存取。於又另一實施例中,若相對應屬性不從上游邏輯(例如IMC 331及I/O次系統315)發送,則NVRAM控制器332可解碼該目標位址。也可體現其它解碼路徑。
新記憶體架構的存在,諸如此處描述者提供大量新穎可能性。雖然後文中將以遠更長的長度作說明,但緊接後文快速強調此等可能性中之若干者。
依據一項可能的體現,NVRAM 142作為系統記憶體中的傳統DRAM技術的總置換或補充。於一個實施例中,NVRAM 142表示導入第二等級系統記憶體(例如系統記憶體可視為具有包含近記憶體作為FM的快取記憶體150B(DRAM裝置340的一部分)的第一等級系統記憶體及包含遠記憶體(FM)151B(NVRAM 142之一部分)的第二等級
系統記憶體)。
依據若干實施例,NVRAM 142作為快閃/磁/光大容量儲存裝置152B的總置換或補充。如前文描述,於若干實施例中,即使NVRAM 152A具有位元組等級的定址能力,取決於體現而定(例如64千位元組、128千位元組等),NVRAM控制器332可仍然以多個位元組的區塊存取NVRAM大容量儲存裝置152A。資料藉NVRAM控制器332從NVRAM大容量儲存裝置152A存取的特定方式對於藉處理器310執行的軟體可為透明。舉例言之,即使NVRAM大容量儲存裝置152A可與快閃/磁/光大容量儲存裝置152A差異地存取,作業系統仍然將NVRAM大容量儲存裝置152A視為標準大容量儲存裝置(例如串列ATA硬碟機或其它標準形式的大容量儲存裝置)。
於一實施例中,於該處NVRAM大容量儲存裝置152A係作為快閃/磁/光大容量儲存裝置152B的全部置換,並非必要使用儲存驅動裝置用於可區塊定址的儲存裝置存取。從儲存裝置存取中去除儲存驅動裝置額外負擔可提高存取速度與節電。於替代實施例中,於該處期望NVRAM大容量儲存裝置152A對OS及/或應用程式呈現為可區塊存取且與快閃/磁/光大容量儲存裝置152B無法區別,仿真儲存驅動裝置可用以將可區塊存取介面(例如通用串列匯流排(USB)只能大容量轉移(BOT)介面1.0;串列高級技術附件(SATA)3.0等)暴露給軟體供存取NVRAM大容量儲存裝置152A。
於一個實施例中,NVRAM 142作為韌體記憶體,諸如BIOS快閃記憶體362及TPM快閃記憶體372(圖3中以虛線顯示指示其乃選擇性)的總置換或補充。例如,NVRAM 142可包括一BIOS NVRAM 172部分以補充或置換BIOS快閃記憶體362,且可包括一TPM NVRAM 173部分以補充或置換TPM快閃記憶體372。韌體記憶體也可儲存由TPM 334所使用的系統持久態以保護敏感系統資訊(例如加密鑰)。於一個實施例中,NVRAM 142用於韌體記憶體免除第三方快閃記憶體部件的需要,部件係儲存對系統操作具關鍵重要性的代碼及資料。
繼續討論圖3之系統,於若干實施例中,電腦系統100之架構可包括多個處理器,但圖3中例示說明單一處理器310以求清晰。處理器310可為任一型資料處理器,包括通用或特用中央處理單元(CPU)、特定應用積體電路(ASIC)、或數位信號處理器(DSP)。舉例言之,處理器310可為通用處理器,諸如核心(CoreTM)i3、i5、i7、2雙核心及四核心、席翁(XeonTM)、或伊塔寧(ItaniumTM)處理器,全部皆係得自英特爾公司(Intel Corporation)美國加州聖塔卡拉郡。另外,處理器310可得自其它公司,諸如加州昇陽維爾郡的ARM產業公司(ARM Holdings,Ltd)、加州昇陽維爾郡的MIPS技術公司(MIPS Technologies)等。處理器310可為特用處理器,諸如網路或通訊處理器、壓縮引擎、圖形處理器、共處理器、嵌入式處理器等。處理器310可在含括於一或多個封裝體內部的一或多個晶片上體現。處理器310可
為基體的一部件及/或可運用多種方法技術中之任一者體現在一或多個基體上,諸如BiCMOSCMOS或NMOS。於圖3顯示之實施例中,處理器310具有單晶片系統(SOC)組態。
於一個實施例中,處理器310包括一整合圖形單元311,其包括執行圖形指令諸如3D或2D圖形指令的邏輯。雖然本發明之實施例並不限於任何特定整合圖形單元311,但於一個實施例中,整合圖形單元311能夠執行工業標準圖形指令,諸如由開放GL(Open GL)及/或直接X(Direct X)API(例如OpenGL 4.1及Direct X 11)載明者。
處理器310也可包括一或多個核心101-104,但再度為求簡明,圖3只例示說明單一核心。於許多實施例中,核心101-104包括內部功能區塊,諸如一或多個執行單元、報廢單元、一通用與特用暫存器集合等。若該(等)核心為多執行緒或超執行緒,則各個硬體執行緒也可被視為「邏輯」核心。就架構及/或指令集而言,核心101-104可被視為同質或異質。舉例言之,部分核心可為有序,而其它核心可為失序。至於另一個實施例,該等核心中之二或多者可執行相同指令集,而其它者只能執行該指令集之一子集或一不同指令集。
處理器310也可包括一或多個快取記憶體,諸如可體現為SRAM及/或DRAM的快取記憶體313。於圖中未顯示的許多實施例中,快取記憶體313以外的額外快取記憶體係體現使得在核心101-104的執行單元與記憶體裝置(即,作為FM的快取記憶體150B及FM 151B)間存在有多個快取記
憶體等級。舉例言之,共享快取單元集合可包括上等級快取記憶體諸如等級1(L1)快取記憶體,中等級快取記憶體諸如等級2(L2)、等級3(L3)、等級4(L4)或其它等級快取記憶體,一LLC,及/或其不同組合。於不同實施例中,快取記憶體313可以不同方式照比例分配且於不同實施例中,可為多種不同大小中之一者。舉例言之,快取記憶體313可為8百萬位元組(MB)快取記憶體、16MB快取記憶體等。此外,於不同實施例中,快取記憶體可為直接對映快取記憶體、全部聯結快取記憶體、多向集合聯結快取記憶體、或有另一型對映的快取記憶體。於包括多個核心之其它實施例中,快取記憶體313可包括一大部分在全部核心間共享,或可劃分成數個分開功能截割片(例如針對各個核心一個截割片)。快取記憶體313可包括一個部分在全部核心間共享,而數個其它部分乃每個核心的分開功能截割片。
處理器310也可包括一主機代理器314,其包括合作與操作核心101-104的該等組件。主機代理器單元314例如可包括一功率控制單元(PCU)及一顯示單元。PCU可能或包括調整核心101-104及整合圖形單元311的功率態需要的邏輯及組件。顯示單元係用以驅動一或多個外部連結的顯示器。
如所述,於若干實施例中,處理器310包括一整合型記憶體控制器(IMC)331、近記憶體快取記憶體(MSC)控制器、及NVRAM控制器332,全部皆可在與處理器310相同的晶片上,或在連結至處理器310的分開晶片及/或封
裝體上。DRAM裝置144可在IMC 331及MSC控制器124的相同晶片上或不同晶片上;如此,一個晶片可具有處理器310及DRAM裝置144;一個晶片可具有處理器310而另一個晶片具有DRAM裝置144(此等晶片可在相同或相異封裝體內);一個晶片可具有核心101-104而另一個晶片具有IMC 331、MSC控制器124及DRAM 144(此等晶片可在相同或相異封裝體內);一個晶片可具有核心101-104,另一個晶片具有IMC 331及MSC控制器124,及另一個具有DRAM 144(此等晶片可在相同或相異封裝體內);等。
於若干實施例中,處理器310包括耦接至IMC 331的一I/O次系統115。I/O次系統115許可處理器310與隨後的串聯或並聯I/O裝置通訊:一或多個網路336(諸如區域網路、廣域網路或網際網路)、儲存I/O裝置(諸如快閃/磁/光大容量儲存裝置152B、BIOS快閃記憶體362、TPM快閃記憶體372)及一或多個非儲存I/O裝置337(諸如顯示器、鍵盤、揚聲器等)。I/O次系統115可包括一平台控制器中樞器(PCH)(圖中未顯示),其進一步包括數個I/O配接器338及其它I/O電路以供存取至儲存及非儲存I/O裝置及網路。為了達成此項目的,I/O次系統115針對各個所用I/O協定可具有至少一個整合型I/O配接器338。I/O次系統115可在與處理器310相同的晶片上,或在連結至處理器310的分開晶片及/或封裝體上。
I/O配接器338將處理器310內部利用之一主機通訊協定轉譯成特殊I/O裝置相容的協定。針對快閃/磁/光大
容量儲存裝置152B,I/O配接器338可轉譯的協定部分包括周邊組件互連體(PCI)-快速(PCI-E)3.0;USB 3.0;SATA 3.0;小型電腦系統介面(SCSI)超(Ultra)-640;及美國電機及電子工程師學會(IEEE)1394「火線(Firewire)」等。針對BIOS快閃記憶體362,I/O配接器338可轉譯的協定部分包括串列周邊介面(SPI)、微線(Microwire)等。此外,可有一或多個無線協定I/O配接器。無線協定包括用在個人區域網路者,諸如IEEE 802.15及藍牙4.0;無線區域網路諸如IEEE 802.11為基的無線協定;及小區式協定。
於若干實施例中,I/O次系統115係耦接至一TPM控制器334以控制存取至系統持久態,諸如保全資料、加密鑰、平台組態資訊等。於一個實施例中,此等系統持久態係儲存在TPM NVRAM 173而透過NVRAM控制器332存取。
於一個實施例中,TPM 334乃具有密碼學功能的保全微控制器。TPM 334具有多個信任有關的能力;例如SEAL能力用以確保由TPM保護的資料只為相同TPM可資利用。TPM 334可運用其加密能力保護資料及鑰(例如秘密)。於一個實施例中,TPM 334具有一獨特RSA密鑰,許可TPM 334認證硬體裝置及平台。舉例言之,TPM 334可證實尋求存取儲存在電腦系統300的資料之一系統為預期的系統。TPM 334也可報告平台(例如電腦系統300)的完整性。如此許可外部資源(例如網路上的伺服器)決定平台的信賴度,但無法避免由使用者存取平台。
於若干實施例中,I/O次系統315也包括一管理引
擎(ME)335,其係為微處理器許可系統管理員監視、維持、更新、升級、與修復電腦系統300。於一個實施例中,藉由透過網路336,經由ME 335編輯解碼表333的內容,系統管理員可遠端組配電腦系統300。
為求方便解說,應用程式之其餘部分偶爾將NVRAM 142稱作為PCMS裝置。PCMS裝置包括多層(垂直堆疊)PCM胞元陣列,其為非依電性,具有低功耗,且在位元層面為可修改。如此,NVRAM裝置及PCMS裝置等詞於後文討論中可互換使用。但如前文討論,須瞭解PCMS以外的不同技術也可用於NVRAM 142。
須瞭解一電腦系統可利用NVRAM 142於系統記憶體、大容量儲存裝置、韌體記憶體及/或其它記憶體及儲存裝置用途,即便該電腦系統的處理器不具有前述處理器310的全部組件,或具有比處理器310更多個組件亦復如此。
於圖3顯示之特定實施例中,MSC控制器124及NVRAM控制器332係位在與處理器310的相同晶粒或封裝體(稱作為CPU封裝體)上。於其它實施例中,MSC控制器124及/或NVRAM控制器332可非在晶粒上或非在CPU封裝體上,透過一匯流排而耦接至處理器310或CPU封裝體,諸如記憶體匯流排(諸如DDR匯流排(例如DDR3、DDR4等))、PCI快速匯流排、桌上管理介面(DMI)匯流排、或任何其它型別的匯流排。
如前文討論,於各個組態中,近記憶體可組配作
為遠記憶體之快取層。此處,特定遠記憶體儲存裝置(例如特定安裝PCMS記憶體晶片)可保留用於特定(例如特定範圍的)系統記憶體位址。如此,特定遠記憶體儲存裝置(例如特定安裝DRAM記憶體晶片)可設計用作為特定遠記憶體儲存裝置之快取層。於是,此等特定遠記憶體儲存裝置應具有下述效果,縮短該等特定遠記憶體儲存裝置設計以提供儲存的最常存取的系統記憶體位址之存取時間。
依據又一辦法,於圖4觀察,近記憶體裝置係經組配作為其遠記憶體對偶部分的一直接對映快取記憶體。
如技藝界眾所周知,一直接對映快取記憶體係設計使得快取記憶體中的各個分錄係保留用於更深層儲存裝置的一獨特分錄集合。換言之,於此種情況下,遠記憶體401的儲存空間可視為分解成不同儲存裝置集合401_1、401_2、...401_N,於該處各個集合係配置在該快取記憶體402的一個分錄。如此,如圖4觀察,分錄402_1係保留給與集合401_1相聯結的系統記憶體位址中之任一者;分錄402_2係保留給與集合401_2相聯結的系統記憶體位址中之任一者;等。概略言之,出現在圖4以及出現在圖7A、8A及11中之任一者的結構「邏輯區塊」中之任一者大半地即便非全部以邏輯電路體現。
圖4也顯示例如可從一CPU處理核心提供用以至或自系統記憶體的一讀或寫異動的系統記憶體位址實例之一部分。大致上,一組集合位元404界定該系統記憶體位址係關聯哪個集合,及一組標籤位元405定義該系統記憶體位
址係相對應於在適當集合(可相對應於一快取列)中的哪個分錄。較低排序位元403識別在一快取列內部的一特定位元組。
舉例言之,依據一個體現實例,快取列大小為64千位元組,快取記憶體402係以DRAM儲存裝置約1十億位元組(GB)體現,及遠記憶體儲存裝置401係以PCMS儲存裝置約16十億位元組(GB)體現。位址部分405、404及403係相對應於位址空間A[33:0]的34位元。此處,較低排序位元403係相對應於位址空間A[5:0],集合位址位元404係相對應於位址空間A[29:6],及標籤位址位元405係相對應於位址空間A[33:30]。
由此配置,注意四個標籤位元405載明在1至16範圍之一值,相對應於DRAM儲存裝置對PCMS儲存裝置之比。如此,於快取記憶體402中的各個分錄將對映至(亦即提供可快取支援橫跨)十六個不同遠記憶體401快取列。此種配置主要定義在遠記憶體401中各個集合的大小(每個集合16快取列)。相對應於快取記憶體402中之分錄數目的集合數目係由集合位元404定義。於本實例中,集合位元404係相對應於位址空間之24位元(位址位元A[29:6]),其轉而相對應於16,777,216快取分錄/集合。因此64位元組快取列係相對應於快取記憶體402內部約1GB的儲存裝置(16,777,216x64位元組=1,073,741,824位元組)。
若快取記憶體402的大小係加倍以含括2GB的DRAM,則每個集合將有八快取列(而非16),原因在於DRAM:PCMS比將加倍成2:16=1:8。如此標籤405將以
三位元(A[33:31])表示而非4位元。DRAM空間的加倍進一步包括考慮藉提供一額外最有效位元給集合位元404(亦即位址位元A[30:6]而非A[29:6]),大致上加倍集合數目。
圖4觀察的遠記憶體儲存裝置401可只相對應於該電腦系統的總遠記憶體儲存裝置的一個子集。舉例言之,電腦系統的一個完整系統記憶體可藉結合圖4觀察得的近/遠記憶體次系統之多例而實現(例如針對系統記憶體位址的各個獨特子集有一例)。此處,依據一個辦法,較高有序位元408係用以指示在多個近/遠記憶體次系統中之特定例應用於一給定系統記憶體存取。舉例言之,若各個情況係相對應於一不同記憶體通道,植基於一主機端409(或更概略言之,主機),則較高有序位元408將有效地載明適用的記憶體通道。於另一辦法中,稱作「置換」定址辦法,較高有序位元408為不存在。反而位元405表示最高有序位元,最低有序位元空間403內部的位元係用以決定哪個記憶體通道係用於該位址。相信藉將更多隨機性有效性導入隨時間而使用的特定記憶體通道,本辦法可獲更更佳系統效能。位址位元可為任何順序。
圖5(寫)及圖6(讀)顯示圖4的近/遠記憶體次系統的可能操作方案。參考圖4及圖5,為了寫操作,整合型記憶體控制器431接收寫異動,包括寫位址及欲寫的資料(步驟501)。異動可儲存於緩衝器415。當決定適用哪個近/遠記憶體次系統時(例如來自較高有序位元408的分析),記憶體端快取記憶體(MSC)邏輯424的命中失誤邏輯414提供集合
位元404給近記憶體快取記憶體介面邏輯416,以使得適用集合的快取分錄欲從近記憶體快取記憶體402讀取(步驟502)。此處,近記憶體快取記憶體介面邏輯416負責體現在記憶體通道401上近記憶體(例如DRAM)特定的一協定,包括電氣信號的產生/接收。
如於圖4觀察,於一實施例中,連同其相對應資料410,各個快取分錄包括嵌入式標籤411、已使用位元412及ECC資訊413。嵌入式標籤411識別在遠記憶體401中的分錄可適用的集合中的哪個快取列係在快取記憶體402被快取。已使用位元412指示快取分錄是否為該快取列的唯一有效拷貝。如技藝界已知,ECC資訊413係用以檢測且可能地校正出現在寫及/或讀分錄自/至快取記憶體402。
在適用集合的快取分錄係以近記憶體快取記憶體介面邏輯416讀取後,MSC命中/失誤邏輯414比較只有讀取分錄的嵌入式標籤411與寫異動之該位址標籤405(步驟503)(注意讀取自快取記憶體的分錄可儲存於一讀緩衝器417)。若匹配,則快取分錄係相對應於該異動目標(快取命中)。據此,命中/失誤邏輯414使得近記憶體快取記憶體介面邏輯以接收用於異動的新資料寫在快取記憶體402中剛讀取的快取分錄(步驟504)。執行寫入的MSC控制邏輯424維持嵌入式標籤411值不變。MSC控制邏輯424也設定已使用位元412指示新寫的分錄係相對應於該快取列的唯一有效版本,及計算該快取列的新ECC資料。拋棄在讀緩衝器417讀取自快取記憶體402的快取列。此時,針對快取命中
的處理結束。
若讀取自快取記憶體402的快取列的嵌入式標籤411不匹配異動位址標籤405(快取失誤),如同快取命中,命中/失誤邏輯414使得近記憶體快取記憶體介面邏輯416將與異動相聯結的新資料寫入快取記憶體402(步驟505)(集合位元404載明為位址)以有效地寫在剛讀取自快取記憶體402的快取列上。嵌入式標籤411係寫入作為與異動相聯結的標籤位元405。已使用位元412係經寫入以指示快取分錄乃此快取列的唯一有效拷貝。記憶體控制器的ECC邏輯420針對以異動接收的快取列計算ECC資訊413,近記憶體快取記憶體介面邏輯416連同快取列將該資訊寫入快取記憶體402。
至於只讀取自快取記憶體且係儲存於讀緩衝器417的快取列,近記憶體命中/失誤邏輯414檢查其相聯結的已使用位元(步驟506),若已使用位元在讀緩衝器417的快取列乃該快取列的唯一有效版本(該已使用位元係經「設定」),則命中/失誤邏輯414使得NVRAM控制器432,經由其遠記憶體介面邏輯418而將快取列寫入其相對應的遠記憶體位置(步驟507)(使用異動協定的集合位元404及快取列的嵌入式標籤位元411,讀取作為位址)。此處,遠記憶體介面邏輯418係負責體現一協定,包括記憶體通道401上的遠記憶體(例如PCMS)之特定電氣信號的產生/接收。若在讀緩衝器417的快取列的已使用位元指示在該讀緩衝器417的快取列並非該快取列的唯一有效版本,則在讀緩衝器中的
快取列被拋棄。
此處,於介接近記憶體快取記憶體及遠記憶體的介面416、418非忙碌的瞬間期間,MSC控制邏輯424可從快取記憶體402讀取快取列分錄,而針對其已使用位元經設定的該等快取列分錄,該記憶體控制器將改寫入遠記憶體,且「清除」其相聯結的已使用位元以指示在快取記憶體402中的快取列不再是該快取列的唯一有效版本。
此外須指出個別近記憶體快取記憶體及遠記憶體介面416、418可彼此完全單離,或有相對於彼此的某些重疊。此處,重疊係相對應於個別近及遠記憶體協定及/或傳訊的各面向為相同(例如相同時鐘信號、相同晶粒上結束信號、相同定址信號等),因此可使用相同電路存取近記憶體快取記憶體及遠記憶體。不重疊區域係相對應於兩個協定及/或傳訊的面向為不相同,因此具有適用於近記憶體快取記憶體及遠記憶體中只有一者的電路。
前述架構可用於下述體現,於該處MSC控制邏輯424係透過不同的分離記憶體通道而耦接至近記憶體快取記憶體402,而非透過NVRAM控制器432與遠記憶體401藉此耦接的記憶體通道。此處,針對任一個特定通道,取決於近記憶體快取記憶體或遠記憶體是否耦接至通道,介面416、418中之一者被致能,而另一者被去能。同理,MSC控制邏輯424及NVRAM控制器432中之一者被致能,而另一者被去能。於一個實施例中,與記憶體控制器(圖中未顯示)相聯結的組態暫存器例如可藉BIOS寫入,決定欲致能哪個
組態。
如上相同架構也可支援另一組態,其中近記憶體快取記憶體及遠記憶體係耦接至相同通道421。於此種情況下,介面416、416的整合可對通道421視為單一介面。依據此種組態,介面416、418二者及控制器424、432二者被致能,但只有一個集合(針對近記憶體為介面416及控制器424,而針對遠記憶體為介面418及控制器432)能夠在任何特定時間瞬間使用該通道。此處,隨著時間該通道的使用係在近記憶體傳訊與遠記憶體傳訊間交替。此種組態例如可使用前述組態暫存器的第三集合建立。後文討論係與此集合最有關。
此處,藉由能夠針對近記憶體存取及遠記憶體存取二者使用相同通道,插入該通道的近記憶體快取記憶體可用作為插入相同通道的遠記憶體儲存裝置的近記憶體快取記憶體。換言之,特定系統記憶體位址可配置給一個單一通道。插入該通道的遠記憶體裝置提供此等特定系統記憶體位址的遠記憶體儲存裝置,插入相同通道的近記憶體儲存裝置為此等遠記憶體裝置提供快取空間。如此,調用近記憶體及遠記憶體二者(例如由於快取失誤及/或一已使用位元被設定)的前述異動可發生在同一個通道上。
依據一個辦法,該通道係設計來包括機械插槽/連接器,具有積體電路設置其上(例如DIMM)的個別平面板卡可插入其中。此處,該等卡具有匹配通道的插槽/連接器的相對應插槽/連接器。只有遠記憶體儲存裝置的一或多張
卡可插入第一連接器集合以影響該通道的遠記憶體儲存裝置。只有近記憶體儲存裝置的一或多張卡可插入同一個通道且作為遠記憶卡的近記憶體快取記憶體。
此處,於該處遠記憶體儲存裝置本質上比近記憶體儲存裝置更緊密,但近記憶體儲存裝置特性上比遠記憶體儲存裝置更快,密記通道可設計成有「速度相對於密度」折衷。換言之,愈多近記憶卡插入該通道,則通道運轉將更快速,但犧牲由該通道所支援的總儲存容量減低。相反地,愈少近記憶卡插入該通道,則通道運轉將更慢,但具有由該通道所支援的儲存容量提升的額外效果。極端狀況可包括實施例其中只有較快的記憶體儲存技術(例如DRAM)移居在該通道(該種情況下,可作為在另一通道上的用於遠記憶體的快取記憶體,或不作為快取記憶體,反而係配置其本身的特定系統記憶體位址空間),或者只有較慢的記憶體儲存技術(例如PCMS)移居在該通道。
於其它實施例中,近記憶體及遠記憶體係設置在同一張卡上,該種情況下,速度/密度折衷係由卡決定,即便多張卡插入同一個通道亦復如此。
圖6闡釋一種讀異動。依據圖6之方法,記憶體控制器431接收包括讀位址的讀異動(步驟611)。異動可儲存在緩衝器415。當決定適用哪個近/遠記憶體次系統(例如哪個記憶體通道)情況時,MSC控制器的命中/失誤邏輯414提供集合位元404給近記憶體快取記憶體介面邏輯416,以使得針對適用集合的被快取的分錄被讀取自快取記憶體402(步
驟612)。
在快取記憶體介面邏輯416讀取適用集合的被快取的分錄之後,命中/失誤邏輯414比較該剛讀的分錄之嵌入式標籤411與讀異動之位址的標籤405(步驟613)。若匹配,則快取分錄係相對應於異動(快取命中)之目標。據此,讀處理結束。若讀取自快取記憶體402的快取列之嵌入式標籤411不匹配異動位址(快取失誤)的標籤405,則命中/失誤邏輯414使得遠記憶體介面邏輯418讀取在異動(403、404、405)載明的位址的遠記憶體儲存裝置(步驟614)。然後讀取自遠記憶體的快取列寫入快取記憶體(步驟615),於步驟612,若針對讀取自近記憶體快取記憶體的快取列,已使用位元經設定,則讀取自近記憶體快取記憶體的快取列係寫入遠記憶體(步驟616)。
依據數個實施例,雖然MSC控制器424可在讀取自遠記憶體的讀取資料上執行ECC檢查,容後詳述,但ECC檢查可由駐在遠記憶體裝置(例如固定至PCMS裝置所固定至的相同DIMM卡)的邏輯電路422執行。當快取失誤且已使用位元係經「設定」之情況下,相同邏輯電路422也可針對寫異動計算ECC資訊。
此外,於下述實施例中,於該處相同記憶體通道421用以通訊近記憶體傳訊及遠記憶體傳訊,邏輯電路422可用以「加速」前述核心寫與讀處理。若干此等加速係緊接討論如後。
圖7A顯示「近記憶體於前方」辦法,而圖8A顯示「近記憶體於後方」辦法。「近記憶體於後方」辦法將以進一步細節討論如下。針對後述各個模型,及其隨後的討論,「記憶體控制器」或「主機」或「主機端」係用以指稱(主要)由MSC控制器或NVRAM控制器所執行的電路及/或動作。哪個電路適用於特定情況係可直捷瞭解,當近記憶體快取記憶體係在該通道上存取時,涉及MSC控制器;而當遠記憶體快取記憶體係在該通道上存取時,涉及NVRAM控制器。此外,後文討論也述及「遠記憶體控制邏輯」或「遠記憶體控制器」,係在主機端遠側,且係在「非在通道上」的遠記憶體近側。此處,遠記憶體控制邏輯可視為NVRAM控制器的一個組件,而NVRAM控制器的另一組件係駐在主機上以從主機端執行適當遠記憶體存取(與後述實施例一致)。
參考圖7A,注意近記憶體儲存裝置702_1、702_2、...、702_N(諸如多個DRAM晶片)係與遠記憶體邏輯電路722(及其相聯結的遠記憶體儲存裝置701_1、701_2、...、702_N)(諸如多個PCMS晶片)耦接至相同通道721獨立地耦接至通道721。
換言之,近記憶體平台730及遠記憶體平台732係彼此獨立地分開連結至相同通道721。此種辦法例如可以具有不同個別記憶體儲存技術的不同DIMM插入相同記憶體通道實現(例如近記憶體平台730係相對應於DRAM DIMM,而遠記憶體平台732係相對應於PCMS DIMM)。此
種辦法例如也可以相同DIMM實現,該相同DIMM結合不同個別記憶體儲存技術(例如近記憶體平台730相對應於DIMM的一端,而遠記憶體平台732相對應於DIMM的另一端)。
圖7B顯示一種讀異動,包括快取失誤,於該處遠記憶體控制邏輯722自動地檢測快取失誤,且自動地讀取遠記憶體應答。參考圖7A及7B,主機端MSC控制邏輯424a接收讀取請求(步驟761),且針對適用集合從快取記憶體702讀取快取列分錄(步驟762)。作為存取快取記憶體702的通道721上異動的一部分,主機端MSC控制邏輯424a「潛行」原先讀取請求的標籤位元705至通道721上。於又一實施例中,主機端MSC控制邏輯424a也潛行資訊780,指示由記憶體控制器所接收的原先異動請求為讀取請求(而非寫入請求)。
依據一個辦法,容後詳述,標籤位元705及讀/寫資訊780係「潛行」在近記憶體位址匯流排的不使用的列或行位址上。於又一個實施例中,更多行位址位元係用於此項目的而非列位址位元。依據又一辦法,潛行資訊705、780係透過通道721的一指令匯流排組件提供,該通道721係用以通訊定址資訊給近記憶體儲存裝置(且可能也給遠記憶體裝置)。
由於遠端控制邏輯電路722係連結至通道721,故可「竊取(snarf)」:1)當在通道721上潛行時,來自原先請求的標籤位元705(及讀異動的指示780);2)施用至近記憶體快
取記憶體702的讀位址;及3)當讀取自近記憶體快取記憶體702時,快取列及其相聯結的嵌入式標籤位元711、已使用位元712及ECC資訊713。此處須瞭解竊取(步驟763)包括本地(例如在嵌入式暫存器空間750)儲存任何/全部資訊項目在邏輯電路722上。
如此,遠記憶體控制邏輯電路722也包括其本身的命中/失誤邏輯723可決定與記憶體控制器的命中/失誤邏輯714同時是否有快取命中或快取失誤(步驟764)。於快取命中之情況下,遠記憶體控制邏輯電路722不再有進一步動作,記憶體控制器731對讀取自快取記憶體的資料執行ECC計算,且與嵌入式ECC資訊714比較以決定快取讀取資料是否有效。
但於快取失誤之情況下,且知曉總異動為讀異動(例如得自潛行資訊780),邏輯電路722將瞭解讀取其組成遠記憶體儲存裝置701最終將需服務原先讀取請求。如此依據一個實施例,邏輯電路722可自動讀取其相聯結的遠記憶體資源732以取回期望的讀資訊,對讀取自遠記憶體的快取列(也具有嵌入式ECC資訊)執行ECC計算(步驟765),資料若無訛誤,則提供期望的遠記憶體讀資訊。
為了執行此種「自動讀取」,如前述,邏輯電路722須由記憶體控制器731以某種方式通知,總異動為讀操作而非寫操作(若前述異動為寫異動,則邏輯電路將無需進行遠記憶體的讀取)。依據一個實施例,如前文已述,讀/寫資訊780指示正在執行的寫異動或讀異動是否「潛行」至
邏輯電路722(例如連同原先異動請求的標籤資訊705)。
與遠記憶體邏輯電路722並行地自動讀取遠記憶體732,記憶體控制器731可排程且在通道721上發佈一讀取請求給遠記憶體邏輯電路722(步驟786)。容後詳述,於一實施例中,記憶體控制器731係經組配來透過通道721通訊兩個不同協定:i)近記憶體裝置730專用的第一協定(例如工業標準DDR DRAM協定);及ii)遠記憶體裝置732專用的第二協定(例如PCMS之專用協定)。此處,近記憶體快取記憶體讀取請求762係以第一協定體現,相反地,對遠記憶體的讀取請求(步驟786)係以第二協定體現。
於又一個實施例中,容後詳述,由於遠記憶體裝置732應答讀取請求(步驟786)需要的時間無法確定預測,故總讀異動的識別符790(「異動識別符」)係連同由記憶體控制器發送的遠記憶體讀取請求發送至遠記憶體邏輯電路722(步驟786)。當資料最終讀取自遠記憶體732時,最終發送至記憶體控制器731(步驟787)。於一實施例中,異動識別符790係回送至記憶體控制器731作為在通道721上發送讀資料給記憶體控制器731的異動之一部分。
此處,含括異動識別符790用以通知記憶體控制器731該讀資料相關的異動。容後詳述,此點可能於下述情況特別要緊,於該處遠記憶體邏輯電路722維持一緩衝器儲存來自記憶體控制器731的多個讀取請求,而遠記憶體的讀響應時間的不確定性結果導致來自遠記憶體的「失序(OOO)」讀響應(隨後的讀取請求可在先前的讀取請求之前
應答)。於又一個實施例中,用在通道721上的兩個協定的獨特特徵為:近記憶體協定視裝置730為賓裝置,不正式請求通道721的使用(原因在於其時間為眾所周知且係在記憶體控制器的控制之下)。相反地,遠記憶體協定許可遠記憶體邏輯電路722發佈一請求至記憶體控制器731用以發送讀資料給記憶體控制器731。至於另一點區別,標籤705及於近記憶體快取記憶體讀取期間「潛行」至通道上的讀/寫資訊780係「潛行」的意義表示此項資訊係傳送至遠記憶體邏輯電路,且與潛在遠記憶體存取相關,即便在技術上近記憶體協定正在執行中亦復如此。
前文就圖7B討論的「自動」讀取,另外,遠記憶體邏輯電路722可經設計以避免自動讀取需要的資料,取而代之,於快取失誤之情況下,等待來自記憶體控制器的一讀取請求及相對應位址。於此種情況下,當近記憶體快取記憶體被讀取時,邏輯電路722不竊取該位址,也不竊取任何相關資訊,無論潛行至邏輯電路722需要總異動為讀異動或寫異動皆係如此。若遠記憶體邏輯電路722可失序服務讀取請求,則可能仍然需要發送具讀取請求的異動ID 790給遠記憶體邏輯電路722。
與邏輯電路722是否自動地執行快取失誤時需要的遠記憶體讀取,如圖7C觀察,於藉遠記憶體邏輯電路722檢測得快取失誤之情況下,遠記憶體邏輯電路722的命中/失誤邏輯電路723可經設計以檢查已使用位元712是否在竊取快取列設定(步驟766)。若是,則竊取快取列將需寫至遠
記憶體732。如此,邏輯電路722然後將竊取快取列自動儲存至其組成遠記憶體儲存裝置資源732中(步驟767),而無來自記憶體控制器的正式請求(含括在其儲存前ECC資訊的重新計算以確保資料不會訛誤)。
此處,取決於體現,為了寫操作至遠記憶體平台,邏輯電路722可藉竊取如前述讀取的近記憶體快取記憶體之稍早讀位址,且將其與讀取自近記憶體快取記憶體的快取列之嵌入式標籤資訊組合而組構適當寫位址。另外,若邏輯電路722不竊取快取記憶體讀位址,當請求從遠記憶體讀取正確資訊時,藉組合嵌入於竊取快取列的標籤資訊與由記憶體控制器所提供的讀位址,可組構適當寫位址。
更明確言之,邏輯電路722可組合該讀取請求的集合及較低有序位元部分404、405與在竊取快取列上的嵌入式標籤711而完整組構正確位址。
如前述自動執行寫至遠記憶體平台732,免除記憶體控制器731需請求寫至遠記憶體平台,但也更進一步讓通道721完全免除寫至遠記憶體平台的任何相關活動。此點可相對應於通道速度之值得注意的改善。
適切指出方才所述加速對:取決於設計師的選擇,自動讀遠記憶體(圖7B)及自動寫至遠記憶體(圖7C)可以任一項組合(二者、只有一者)體現。
相對地,不含由遠記憶體控制器722的存在所提供的任何加速的基本讀異動,名目上包括讀異動的六基元操作,當已使用位元被設定時出現快取失誤。此等六基元
為:快取記憶體讀取請求、快取記憶體讀取應答、遠記憶體讀取請求、遠記憶體讀取應答、近記憶體讀取請求(快取更新)及遠記憶體讀取請求(因已使用位元經設定,故負載讀取自快取記憶體的快取列至遠記憶體)。
相反地,體現圖7B(自動讀取遠記憶體)及圖7C(自動寫入遠記憶體)的加速二者,總異動可只以四個基元操作在通道上完成。亦即可去除遠記憶體讀取請求及遠記憶體寫入請求。
前文討論係有關於當近記憶體係在遠記憶體控制邏輯「前方」時的讀異動處理。參考圖7D,於寫異動處理之情況下,應答接收一寫異動(步驟751),記憶體控制器初始化近記憶體快取記憶體讀取,及潛行標籤資訊705及資訊780指示總異動乃寫,而非如前述的讀(步驟752)。在近記憶體的讀完成後,記憶體控制器731將新資料覆寫在快取記憶體的舊資料上(步驟753)。於一實施例中,記憶體控制器檢查以瞭解是否有快取命中(步驟754)及/或是否已使用位元經設定(步驟755),以瞭解遠記憶體控制邏輯電路將採行哪種動作(例如用於通道排程),但否則在通道上不採行任何進一步動作。
遠記憶體控制邏輯電路722竊取用以存取該快取記憶體的位址、潛行資訊705、780及連同其相關資訊讀取自快取記憶體的快取列(步驟756),及如前述檢測其本身的快取失誤(步驟757)。若有快取命中,則遠記憶體控制邏輯不再採行任何進一步動作。若有快取失誤,取決於設計體
現,類似前述方法,邏輯電路722也可檢測已使用位元是否經設定(步驟758),且自動地將竊取快取列寫入遠記憶體(步驟759)(沒有來自記憶體控制器的請求)。
於另一辦法中,在檢測得快取失誤與已使用位元係經設定後(步驟754、755),記憶體控制器731發送一請求給遠記憶體控制邏輯722(包括寫位址)以將讀取自該快取記憶體的快取列寫入遠記憶體。記憶體控制器也可透過通道721發送讀取自快取記憶體的快取列給遠記憶體控制邏輯。
參考圖8A,闡釋「近記憶體在後方」結構,注意近記憶體儲存裝置802_1、802_2、...、802_N(諸如多個DRAM晶片)係透過遠記憶體邏輯電路822至某個程度而耦接至通道821的至少一部分。此處,針對「近記憶體在前方辦法」的遠記憶體控制邏輯包括針對通道及遠記憶體的分開介面;相反地,針對「近記憶體在後方」辦法的遠記憶體控制邏輯包括針對通道、遠記憶體及近記憶體的分開介面。依據一個實施例,通道821可視為具有三個主要次組件:1)指令匯流排841(透過其上發送讀與寫入請求及其相對應位址);2)資料匯流排842(透過其上發送讀與寫資料);及3)控制信號843(例如選擇信號、時鐘致能信號、晶粒上結束信號)。
如圖8A之特定辦法闡釋,近記憶體儲存裝置平台830之資料匯流排890可獨立地耦接至資料匯流排842,但係經由邏輯電路822而耦接至指令匯流排841及控制信號
843。遠記憶體儲存裝置平台831係經由邏輯電路822而耦接至全部三個次組件841、842、843。於替代實施例中,類似遠記憶體儲存裝置平台,近記憶體儲存裝置平台830之資料匯流排890係透過邏輯電路822耦接至通道的資料匯流排組件842。「近記憶體在後方」架構例如可至少以邏輯電路822、近記憶體儲存裝置裝置830及遠記憶體儲存裝置裝置831全部皆係體現在一相同實體平台上實現(例如同一張DIMM卡插入通道,於該處多張此種DIMM卡可插入通道)。
圖8B顯示於快取失誤之情況下,用於「近記憶體在後方」架構的讀處理。參考圖8A及8B,若記憶體控制器831接收至一讀取請求(步驟861),則透過指令匯流排841,發送給遠記憶體控制邏輯電路822含有原先請求的位址之設定位元804及低有序位元803的一讀取請求(步驟862)(例如呈封包化形式)。此外,作為讀取請求序列的一部分,原先讀取請求(例如來自CPU)的標籤位元805係於通道821上「潛行」(步驟862)。依據一個辦法,容後詳述,標籤位元805在通道821之指令匯流排組件841上「潛行」(其係用以針對近及遠記憶體存取二者通訊定址資訊給遠記憶體控制邏輯822)。此處,不似遠記憶體「在前方」辦法,為了後述理由,指示原先異動是否為讀或寫的額外資訊無需在通道上潛行。此處,遠記憶體控制邏輯822可藉記憶體控制器「鍵控」給遠記憶體的讀取請求,以決定總異動為讀異動而非寫異動。
應答所接收的讀取請求,邏輯電路822在本地近
記憶體位址匯流排上呈示相聯結的位址以對近記憶體平台執行快取讀取操作。來自近記憶體平台830的適當快取列或藉近記憶體平台830直接地呈示804於資料匯流排842上,於該種情況下,記憶體控制器執行ECC計算;或透過遠記憶體控制邏輯822呈示,於該種情況下,邏輯822及記憶體控制器831二者皆可執行ECC計算。
因遠記憶體控制邏輯電路822係連結至通道821,可「竊取」或否則本地儲存(步驟863)(例如於其本身的暫存器空間850)中之任一者:1)當在通道821上潛行時標籤位元805;2)用以定址近記憶體快取記憶體830的位址資訊;及3)當由近記憶體平台830提供時,來自近記憶體830的快取列及其相聯結的嵌入式標籤位元811、已使用位元812及ECC資訊813。
回應於此,邏輯電路822的命中/失誤邏輯823可決定與記憶體控制器的命中/失誤邏輯814同時是否有快取命中或快取失誤。於快取命中之情況下,讀取自近記憶體的資訊提供給記憶體控制器831,邏輯電路822未採取進一步動作。於一實施例中,於該處近記憶體快取記憶體平台係連結至資料匯流排,而未通過邏輯電路822,記憶體控制器831在讀取自近記憶體快取記憶體的快取列執行ECC計算。於另一實施例中,於該處近記憶體快取記憶體平台係連結至邏輯電路822,在讀取自近記憶體快取記憶體的快取列上在邏輯電路822及記憶體控制器831二者執行ECC計算。
於藉邏輯電路822檢測快取失誤之情況下,命中/
失誤邏輯電路823將瞭解將需要近記憶體儲存裝置平台831的讀取,以最終服務原先讀取請求。如此,依據一個實施例,邏輯電路822能自動讀取自遠記憶體平台831以取回期望的讀資訊與執行ECC計算(步驟864)。
與遠記憶體控制邏輯822自動讀取遠記憶體831同時,回憶記憶體控制器831已經被提供以讀取自近記憶體的快取列,記憶體控制器831同樣地可檢測快取失誤,回應於此,存通道821上排程與發佈一讀取請求給遠記憶體控制邏輯822(步驟886)。如前文說明與容後詳述,於一實施例中,記憶體控制器831可透過通道821通訊兩個不同協定:i)近記憶體裝置830專用的第一協定(例如工業標準DDR DRAM協定);及ii)遠記憶體裝置831專用的第二協定(例如PCMS裝置之專用協定)。此處,近記憶體快取記憶體讀取請求862係以透過通道821的第一協定體現,相反地,對遠記憶體的讀取請求(步驟886)係以第二協定體現。
於又一個實施例中,如前文說明及容後詳述,由於遠記憶體裝置831應答讀取請求(步驟886)需要的時間無法確定預測,故總讀異動的識別符890(「異動識別符」)係連同由記憶體控制器發送的遠記憶體讀取請求(步驟886)發送至遠記憶體邏輯電路822。當資料最終讀取自遠記憶體831時,最終發送至記憶體控制器831(步驟887)。於一實施例中,異動識別符890係回送至記憶體控制器831作為在通道821上發送讀資料給記憶體控制器831的異動之一部分。
此處,含括異動識別符890用以通知記憶體控制
器831該讀資料相關的異動。容後詳述,此點可能於下述情況特別要緊,於該處遠記憶體邏輯電路822維持一緩衝器儲存來自記憶體控制器831的多個讀取請求,而遠記憶體的讀響應時間的不確定性結果導致來自遠記憶體的「失序(OOO)」讀響應(隨後的讀取請求可在先前的讀取請求之前應答)。
於又一實施例中,於該處在通道上使用兩個不同協定,二協定的獨特特徵為近記憶體協定將裝置830作為賓裝置,其不正式要求使用通道821(原因在於近記憶體裝置的時間為眾所周知且係在記憶體控制器之下)。相反地,遠記憶體協定許可遠記憶體控制邏輯822發佈發送寫資料至記憶體控制器831的一請求給記憶體控制器831。至於額外區別點,在近記憶體快取記憶體讀取期間在通道上「潛行」的標籤資訊805係為「潛行」的意義表示此項資訊係轉運至遠記憶體控制邏輯電路822用於潛在遠記憶體讀取,即使技術上近記憶體協定正在執行亦復如此。
自動執行遠記憶體讀取,另外,可設計遠記憶體控制邏輯電路822禁止自動讀取於遠記憶體需要的資料,及等待得自記憶體控制器831的讀取請求及相對應位址。於此種情況下,當讀取近記憶體快取記憶體時,邏輯電路822無需保有該位址,也無需有關總異動是否為來自記憶體控制器831之一讀異動或寫異動的任何潛行資訊880。
如於圖8C之處理程序觀察,於快取失誤之情況下,無論邏輯電路822是否自動執行遠記憶體讀取,邏輯電
路822的命中/失誤邏輯電路823可設計成當快取失誤發生且已使用位元經設計時,將讀取自近記憶體快取記憶體的快取列寫入遠記憶體。於此種情況下,於高等級,該處理程序係實質上與圖7C觀察者相同,但寫至近記憶體830係至少部分為通道821隱藏不見867,表示近記憶體平台830不在該通道上定址。若近記憶體平台830之資料匯流排895並非直接地耦接至該通道的資料匯流排842,反而取而代之透過遠記憶體控制邏輯822耦接至該通道的資料匯流排842,整個遠記憶體寫可為通道821隱藏不見。
藉此方式自動地執行寫至遠記憶體平台831,不僅免除記憶體控制器831要求寫入的需求,但同時也完全釋放與寫至遠記憶體平台831相關的任何活動的通道821。此點須相對應於通道速度的顯著改良。
為了執行快取更新步驟,於快取失誤之情況下,若遠記憶體控制邏輯電路822係進一步設計成以遠記憶體讀操作結果而更新近記憶體儲存裝置平台830,則可實現額外效率。此外,由於遠記憶體讀操作結果結果869係相對應於最晚近存取該適用集合,此等結果也需針對該集合寫入快取記憶體分錄以完成異動。藉以遠記憶體讀取應答而更新該快取記憶體,可避免透過通道821而分開寫至近記憶體以更新快取記憶體的步驟。此處,可能需於通道體現某個機制(例如額外協定步驟),使得遠記憶體控制邏輯可存取近記憶體(例如若近記憶體的使用係假設在記憶體控制器831的控制之下排程)。
須指出剛才說明的加速:取決於設計師的選擇,自動讀遠記憶體(圖8B),自動寫至遠記憶體(圖8C),及與讀取應答同時的快取記憶體更新可以任一項組合(全部、任二者、只有一者)體現。
於寫異動處理之情況下,依據一種辦法當近記憶體資料匯流排880係直接地耦接至通道資料匯流排842時,可執行就圖7D所述的前述處理程序。當近記憶體資料匯流排880係透過遠記憶體控制邏輯822而耦接至通道資料匯流排842時可使用圖8D呈示的另一個辦法。
依據圖8D之處理程序,應答接收一寫異動(步驟851),記憶體控制器發送一寫指令給遠記憶體控制邏輯822(包括相對應位址及資料)(步驟852),及透過該通道潛行寫異動的標籤資訊。回應於此,遠記憶體控制邏輯822執行近記憶體儲存裝置平台830的讀取(步驟853),及從嵌入式標籤資訊811及潛行標籤資訊805決定是否發生快取失誤或快取命中(步驟854)。於已使用位元不被設定的快取命中或快取失誤之情況下(步驟855),以寫指令接收的新寫資料係被寫入近記憶體快取記憶體830(步驟856)。於快取失誤且已使用位元經設定之情況下,遠記憶體控制邏輯電路邏輯電路將以寫指令接收的新寫資料寫入近記憶體快取記憶體,且將剛從近記憶體830讀取的被逐出的快取列寫入遠記憶體831。
從圖8B的讀異動之討論回憶,在「近記憶體在後方」辦法中,指示總異動為讀或寫的資訊無需潛行至遠
記憶體控制邏輯。此點由圖8B及8D可知,顯示於總讀異動(圖8A)之情況下,記憶體控制器初步通訊一近記憶體讀取請求,或於總寫異動(圖8D)之情況下初步通訊一近記憶體寫入請求。
如於圖7A及8A觀察,記憶體控制器與近記憶體裝置間的通訊可透過在記憶體控制器與遠記憶體裝置間通訊的相同通道進行。又,如前述,近記憶體及遠記憶體可藉記憶體控制器以不同協定(存取近記憶體之第一協定及存取遠記憶體之第二協定)進行,因此二不同協定例如可在同一記憶體通道上體現。此等協定的各個態樣係緊接討論如下。
存取近記憶體的兩個基本辦法係呈示於如上章節:當近記憶體儲存裝置係駐在遠記憶體控制邏輯「前方」時的第一者,及當近記憶體儲存裝置係駐在遠記憶體控制邏輯「後方」時的第二者。
至少於近記憶體儲存裝置係位在遠記憶體控制邏輯「前方」之情況下,可有利地保有或否則使用既有/已知協定而與系統記憶體通訊。舉例言之,於近記憶體快取記憶體係以固定至DIMM卡的DRAM裝置體現之情況下,可有利地使用明確地建立/接受用來與固定至DIMM卡的DRAM裝置通訊的一記憶體存取協定(例如目前明確地建立
/接受的協定,或未來明確地建立/接受的協定)。藉使用明確地建立/接受的協定來與DRAM通訊,可達成量產經濟,表示具有DRAM裝置的DIMM卡並非必要設計來整合入具有近及遠記憶體等級的電腦系統,雖言如此可「插入」此種系統的記憶體通道且利用作為近記憶體。
此外,即便於近記憶體儲存裝置係位在遠記憶體控制邏輯「後方」之情況下,當試圖存取近記憶體時,雖言如此記憶體控制器可設計來使用明確地建立/已知的DRAM記憶體存取協定而與遠記憶體控制邏輯通訊,使得系統整體可提供多個不同系統組態選項給系統使用者。舉例言之,使用者可在使用以下二者間作選擇:1)針對近記憶體的「只有DRAM」DIMM卡;或2)具有DRAM及PCMS裝置整合其上的DIMM卡(具有DRAM作為位在相同DIMM上的PCMS裝置之近記憶體)。
明確地建立/已知的DRAM協定之體現也許可第三使用者選項,其中不採用二等級記憶體方案(近記憶體及遠記憶體)(例如未使用PCMS裝置以體現系統記憶體),取而代之,只架設DRAM DIMM以執行傳統「只有DRAM」系統記憶體。於此種情況下,記憶體控制器的組態將設定使得其作為傳統記憶體控制器(不利用此處描述的任何特徵以執行近及遠記憶體等級)。
如此,將致能使得記憶體控制器表現類似標準記憶體控制器的邏輯電路,而將去能以預期的近及遠記憶體等級表現的記憶體控制器之邏輯電路。第四使用者選項可
顛倒,系統記憶體只在另一系統記憶體技術體現(例如只插入PCMS DIMM卡)。於此種情況下,可致能邏輯,使得記憶體控制器只以符合另一種系統記憶體技術(例如PCMS專一性傳訊)的不同協定執行基本讀及寫異動。
圖9A顯示記憶體通道921之闡釋實例,該通道係適用以支援眾所周知的明確地建立/已知的DRAM存取協定(諸如雙倍資料率(DDR),在同一信號的上升緣及下降緣執行讀及寫存取)。通道921可視為具有三個主要次組件:1)指令匯流排941(透過其發送讀及寫入請求及其相對應位址);2)資料匯流排942(透過其發送讀及寫資料);及3)控制信號943(選擇信號943_1、時鐘致能信號943_2、晶粒上結束信號943_3)。如前述,於一實施例中,記憶體控制器909當存取近記憶體快取記憶體時在通道上呈示傳統DDR信號,而與其是否與在一或多個DIMM卡上的實際DRAM裝置及/或在一或多個相同或額外DIMM卡上的一或多個遠記憶體控制邏輯晶片「交談」無關。
依據通道921之一個操作實施例,用於近記憶體存取:1)指令匯流排941攜載於從記憶體控制器909朝向近記憶體儲存裝置之方向的封包,於該處各個封包包括一讀或寫入請求及一相聯結的位址;及2)資料匯流排942攜載寫資料至目標近記憶體裝置,且攜載得自目標近記憶體裝置的讀取資料。
如於圖9A觀察,資料匯流排942係由超過實際讀/寫資料行942_1的額外行組成。更明確言之,資料匯流排
942也包括多個ECC行942_2,及選通行942_3。如眾所周知,ECC位元係連同快取列的資料儲存,故可檢測與快取列的讀/寫相聯結的資料訛誤錯誤。舉例言之,64位元組(64B)快取列可額外地包括8位元組(8B)ECC資訊,使得儲存資訊的實際資料寬度為72位元組(72B)。選通行942_3典型地係以每資料行為基礎分派(例如對資料/ECC的每8或每4位元分派一對選通行)。於雙倍資料率辦法中,資訊可在選通942_3的上升緣及下降緣二者寫或讀。
至於控制信號943,於一實施例中,此等包括選擇信號943_1、時鐘致能信號943_2、及晶粒上結束信號943_3。如眾所周知,多個DIMM卡可插入同一個記憶體通道。傳統上,當記憶體控制器於特定位走讀或寫資料時,其讀或寫資料自/至一特定DIMM卡(例如完整DIMM卡或可能DIMM卡的一側或DIMM卡的其它部分)。選擇信號943_1用以作動屬於操作目標的特定DIMM卡(或DIMM卡的一部分),及解除作動非屬於操作目標的該等DIMM卡。
此處,選擇信號943_1可從原先讀或寫異動(例如來自CPU)的位元決定,有效地載明植基於記憶體控制器多個記憶體通道的哪個記憶體通道乃異動目標,及又,插入經識別的通道的多張DIMM卡中哪張DIMM卡為異動目標。選擇信號943_1可組配使得插入相同記憶體通道的各張DIMM卡(或DIMM的一部分)接收到其本身一個獨特選擇信號。此處,發送至該作用態DIMM卡(或DIMM卡的一部分)用於異動的特定選擇信號係經作動,而發送至其它DIMM
卡的選擇信號係經解除作動。另外,信號係路由至各個DIMM卡(或DIMM卡的一部分)作為匯流排。經擇定的DIMM卡(或DIMM卡的一部分)係由匯流排狀態決定。
時鐘致能信號943_2及晶粒上結束信號943_3為節電特徵,係在讀/寫資料呈示在通道的資料匯流排942之前被作動,而在讀/寫資料呈示在通道的資料匯流排942_1之前被解除作動。
於多個實施例中,諸如從DRAM組構成的近記憶體快取記憶體,就執行異動之各步驟所需時鐘週期數目表示,近記憶體異動時間係精準瞭解。換言之,用於近記憶體異動,完成一讀或寫入請求所需時鐘週期數目為已知,滿足一讀或寫入請求所需時鐘週期數目為已知。
圖10顯示施加至近記憶體(例如透過剛才前述之一記憶體通道)的近記憶體存取協定之讀及寫操作的基元操作順序。依據圖10之方法,插入同一個記憶體通道的多個DIMM卡中之一目標DIMM卡(或DIMM卡的一部分)係透過適當選擇行的作動而擇定(步驟1001)。時鐘致能行及晶粒上結束行然後經作動(步驟1002)(瞭解選擇行與時鐘致能行及晶粒上結束行的作動間可能有若干重疊)。然後發送具有適用位址的一讀或寫指令(例如透過指令匯流排)(步驟1003)。只有經擇定/作動的DIMM卡(或DIMM卡的一部分)可接收與處理指令。於寫入之情況下,寫資料係寫入已作動的裝置(例如來自一記憶體通道資料匯流排)(步驟1004)。於讀之情況下,呈現從已作動的裝置讀出的資料(例
如來自一記憶體通道資料匯流排)(步驟1004)。
注意圖10之方法,雖然闡釋為在未來記憶體協定中對近記憶體的基元操作,但也可解譯為一致地符合既有DDR協定基元操作。此外,包括近記憶體及遠記憶體的未來系統可以既有DDR協定存取近記憶體,或以只具有DRAM系統記憶體技術的未來系統用以存取DRAM系統記憶體的未來DRAM協定存取近記憶體。
更明確言之,於一體現中,DRAM近記憶體快取記憶體係在遠記憶體控制邏輯「前方」,及當遠記憶體控制邏輯電路在具有快取失誤的讀異動不更新DRAM近記憶體快取記憶體時,記憶體控制器將在執行步驟1001、1002、1003時驅動於通道上的信號,及於步驟1004針對寫異動提供在資料匯流排上的寫資料。於此種情況下,記憶體控制器的表現可與既有記憶體控制器或只具有DRAM系統記憶體的未來系統記憶體控制器表現大為相同。相同可指記憶體控制器就下列情況時記憶體控制器的表現方式:i)首先針對讀或寫異動快取記憶體被讀取;及ii)在針對讀或寫異動的快取命中之後快取記憶體被寫入。
又復,於DRAM近記憶體快取記憶體係在遠記憶體控制邏輯「後方」之體現中,針對近記憶體快取記憶體的讀或寫,近記憶體仍可以近記憶體裝置專用的一協定存取。舉例言之,近記憶體裝置可以明確建立的(目前或未來)DRAM DDR協定存取。此外,即使近記憶體裝置本身係
特別地藉遠記憶體控制邏輯以某種方式而與一明確建立的DRAM協定不同的信號傳訊,但雖言如此,於最終控制近記憶體存取中,記憶體控制器施加一明確建立的DRAM協定於與該遠記憶體控制邏輯通訊的通道921以執行近記憶體存取。
此處,遠記憶體控制邏輯可以各項組合執行步驟1001、1002、1003或其面向中之任一者/全部執行本地相當例(亦即在遠記憶體控制邏輯「後方」而非在通道上)。此外,記憶體控制器也可以遠記憶體控制邏輯以各項組合執行此等步驟之各者,包括遠記憶體控制邏輯電路也執行此等相同步驟的情況。舉例言之,遠記憶體控制邏輯可設計成作為「前傳」裝置,其單純接受原先由記憶體控制器所提供的來自通道的信號,且重新驅動至其組成近記憶體平台。
另外,遠記憶體控制邏輯可原先產生至少若干執行步驟1001、1002、1003或其面向中之至少數者需要的信號,而記憶體控制器原先產生執行其它步驟需要的信號。
例如,依據一個辦法,於執行快取記憶體讀取中,於執行步驟1001中,記憶體控制器可初始在通道上驅動選擇信號。應答選擇信號的接收(步驟1001),遠記憶體控制邏輯可單純重新驅動此等信號至其組成近記憶體平台,或可依據與藉記憶體控制器在通道上明確呈示者不同的選擇傳訊方案,處理與綜合其意義且致能/去能近記憶體平台(或其一部分)。選擇信號也可從通道直接提供給近記憶體平台,及路徑也通過遠記憶體控制邏輯,使得遠記憶體控制邏輯可至
少認知何時其組成近記憶體平台(或其一部分)係鎖定用於異動。
應答認知其組成近記憶體裝置的至少一部分係鎖定用於異動,於步驟1002,在控制邏輯與近記憶體儲存裝置間的遠記憶體控制邏輯後方,該遠記憶體控制邏輯可原先地且本地地產生時鐘致能信號及/或晶粒上結束信號中之任一者/全部。此等信號可藉遠記憶體控制邏輯從一時鐘信號或在通道上由記憶體控制器提供的其它信號產生。非藉遠記憶體控制邏輯產生的時鐘致能信號或晶粒上結束信號可於通道上藉記憶體控制器提供,且直接地驅動至近記憶體平台,或藉近記憶體控制邏輯而重新驅動。
為了用於近記憶體快取記憶體讀操作,藉在通道的指令匯流排上提供適當請求及位址,記憶體控制器可執行步驟1003。遠記憶體控制邏輯可接收來自通道的指令(且本地儲存其相聯結的位址資訊)。也可重新驅動或否則呈示讀指令及位址給近記憶體平台。至於步驟1004,記憶體控制器也將接收快取記憶體讀取資料。讀取資料可藉遠記憶體控制邏輯電路呈示在通道的資料匯流排上(在重新驅動由近記憶體平台所提供的讀取資料時),或讀取資料可藉遠記憶體控制邏輯電路直接驅動在通道的資料匯流排上。
至於在快取記憶體讀取後進行的近記憶體通道操作,諸如在寫異動的快取命中後寫至快取記憶體,遠記憶體控制邏輯電路或記憶體控制器可以符合恰在前述的原理,以各項組合執行步驟1001、1002、1003中之任一者。
在一個極端情況下,遠記憶體控制邏輯電路與記憶體控制器獨立地執行步驟1001、1002、1003中之各者。在另一個極端情況下,記憶體控制器執行步驟1001、1002、1003中之各者,而遠記憶體控制邏輯電路重新驅動其中全部或部分步驟至近記憶體平台,或接收且綜合及然後施加其本身的信號給近記憶體平台作為應答。在此二極端之間,遠記憶體控制邏輯可執行步驟1001、1002、1003或其面向中之部分,而記憶體控制器執行此等步驟或其面向中之其它者。
恰在前述的基元操作可視適宜而整合於先前章節揭示的實施例。
回憶當近記憶體快取記憶體係從DRAM組成時,例如以執行異動各步驟需要的時鐘週期數表示,精準瞭解近記憶體異動的時間。換言之,用於近記憶體異動,完成一讀或寫入請求的所需時鐘週期數為已知,且滿足一讀或寫入請求的所需時鐘週期數為已知。如此,近記憶體存取可仕然在記憶體控制器之下,或至少記憶體控制器可精準地知曉針對各次近記憶體存取所耗時間(例如用於排程目的)。
相反地,為了遠記憶體異動,雖然透過指令匯流排完成一讀或寫入請求的所需時鐘週期數為已知(原因在於記憶體控制器係通訊至近記憶體控制邏輯電路),但對遠記憶體裝置本身滿足任何此種讀或寫入請求的所需時鐘週期數為未知。如將從緊接後文討論更加彰顯,如此將導致
在通道上使用針對遠記憶體存取的與近記憶體存取使用的協定全然不同協定。
圖11顯示遠記憶體控制邏輯電路1120及相聯結的介面電路1135之一實施例的進一步細節視圖。此處例如,取決於被存取次數如何地頻繁,近記憶體裝置的各個儲存胞元可具有不同「磨耗」速率(較常存取的胞元磨耗比較少存取的胞元更快)。
試圖維持各個儲存胞元的可靠性約略相等,邏輯電路1120及/或介面電路1135可包括耗損調平演算法電路1136,在適當瞬間,移動較頻繁存取的儲存胞元的資料內容至較不頻繁存取的儲存胞元(及同理,移動較不頻繁存取的儲存胞元的資料內容至較頻繁存取的儲存胞元)。當該遠記憶體控制邏輯具有一讀或寫指令就緒發佈給遠記憶體平台時,耗損調平程序可在或可不在操作中,或者若在操作中,則該程序可只是剛才開始,或可接近完成,或在介於其間的任一處。
此等不確定性以及其中植基於潛在儲存技術的其它可能的時間不確定性(諸如不同存取時間以其特定過去使用率之函數而施加至個別胞元),結果導致某些架構特徵的存在。更明確言之,有關近記憶體控制邏輯,存在有一遠記憶體寫緩衝器1137,保有寫入遠記憶體的請求,及存在有一遠記憶體讀緩衝器1138,保有遠記憶體的讀取請求。此處,遠記憶體讀與寫緩衝器1137、1138的存在許可佇列等候或暫時保有讀及寫入請求。
若一讀或寫入請求已就緒發佈給遠記憶體裝置,但遠記憶體裝置並非在接收任何此等請求的位置(例如由於耗損調平程序目前正在操作中),該等請求係保有在其個別緩衝器1137、1138內,直到遠記憶體裝置就緒接受且處理該等請求。此處,讀及寫入請求可從來自記憶體控制器及/或遠記憶體控制邏輯(例如,如前述遠記憶體控制邏輯係設計成自動地存取近記憶體的體現)連續地傳輸此等請求積聚在緩衝器內,直到遠記憶體裝置就緒開始接收此等請求。
第二架構特徵係記憶體控制器有能力在通道1121上交插讀與寫異動的不同部分(例如來自CPU)以增進系統通量。舉例言之,考慮一第一讀異動,持久的快取失誤迫使從遠記憶體讀取。由於記憶體控制器不知何時對遠記憶體的讀取請求將獲得服務,並非潛在閒置該通道等待一應答,記憶體控制器反而自由發佈一請求,觸發一快取讀用於下個(讀或寫)異動。該處理係自由持續進行直到達到某個硬體極限。
舉例言之,記憶體控制器係自由初始化下個讀異動之一請求直到得知遠記憶體控制邏輯的讀緩衝器1138已滿(因一快取失誤將產生對一遠記憶體讀取請求的需求)或遠記憶體控制邏輯的寫緩衝器已滿(因一快取失誤時的一設定已使用位元將產生對一遠記憶體寫入請求的需求)。同理,記憶體控制器係自由初始化下個寫異動之一請求直到得知遠記憶體控制邏輯的寫緩衝器已滿(因一快取失誤時
的一設定已使用位元將產生對一遠記憶體寫入請求的需求)。
於一實施例中,記憶體控制器對寫緩衝器1137及讀緩衝器1138各自維持一信用計數。每次寫緩衝器1137或讀緩衝器1138接收一新請求,其相對應的信用計數遞減。當針對緩衝器1137、1138中之任一者該信用計數降至低於或符合一臨界值(諸如零)時,記憶體控制器1137、1138禁止在通道上發佈任何下個異動請求。容後詳述,記憶體控制器可藉下列動作包含讀緩衝器的正確信用計數:1)每當瞭解一讀取請求欲呈示給讀緩衝器1138(由記憶體控制器透過通道直接發送,或瞭解已經由遠記憶體控制邏輯產生且自動載入)時,遞減該讀緩衝器信用計數;及2)每當對記憶體控制器一讀取應答呈示在通道1121上時,遞減該讀緩衝器信用計數。
此外,再度容後詳述,記憶體控制器可藉下列動作包含寫緩衝器的正確信用計數:1)每當瞭解一寫入請求欲呈示給寫緩衝器1137(例如由記憶體控制器透過通道直接發送,或瞭解已經由遠記憶體控制邏輯自動發生)時,遞減該寫緩衝器信用計數;及2)每當一寫入請求由寫緩衝器1137服務時,遞減該寫緩衝器信用計數。於一實施例中,再度容後詳述,藉以遠記憶體讀取請求應答「搭載」此種資訊,遠記憶體控制邏輯1120通知記憶體控制器從寫緩衝器1137發佈寫入請求給遠記憶體儲存裝置平台1131。此處,遠記憶體的讀取係透過通道1121回送給記憶體控制
器。於是,每次遠記憶體控制邏輯1120執行遠記憶體的讀取,且通訊一應答給記憶體控制器作為通訊的一部分,遠記憶體控制邏輯也通知記憶體控制器自緊接前次遠記憶體讀取應答算起從寫緩衝器1137發佈的寫入請求數目。
於一實施例中,額外複雜為讀取請求可「失序」服務。舉例言之,依據遠記憶體控制邏輯電路的一個設計辦法,在寫緩衝器1137的寫入請求係對讀緩衝器1138的讀取請求篩選。若二緩衝器間有任何目標位址匹配,則在該寫緩衝器中具有一或多個匹配對偶的一讀取請求係以與該最晚近懸置的寫入請求相聯結的新寫資料服務。若該讀取請求係位在讀緩衝器佇列1138前方以外的任何其它位置,則有關讀取請求載入佇列1138的順序,該讀取請求的服務將具有「失序」服務該請求的效應。於各個實施例中,因潛在遠記憶體技術(偶爾許可某個位址空間可供讀取,但非全部位址空間),遠記意體控制邏輯也設計來「失序」服務請求。
於一實施例中,為了記憶體控制器得知哪個讀取請求應答係相對應於哪個讀取請求異動,當記憶體控制器發送一讀取請求給遠記憶體控制邏輯時,記憶體控制器也提供該異動識別符(TX_ID)給遠記憶體控制邏輯。當該遠記憶體控制邏輯最終服務該請求時,將該異動識別符含括於應答內。
記住圖9A及其討論係有關於一記憶體通道及其由記憶體控制器用於以第一(近記憶體)存取協定存取近記
憶體快取記憶體之一實施例。注意,圖9A進一步加強顯示資訊可藉記憶體控制器「潛行」通道上作為第一(近記憶體)存取協定的一部分,但雖言如此,由遠記憶體控制器用以潛在觸發一遠記憶體存取。圖9B顯示相同通道及其由記憶體控制器用於以第二(遠記憶體)存取協定存取遠記憶體快取記憶體。
由於多個實施例中一快取列的完整位址的標籤資訊係連同快取列資料儲存在近記憶體快取記憶體(例如嵌入式標籤資訊411、711、811),注意圖9A指示當該通道係用以存取近記憶體快取記憶體(讀或寫)時,名目上保留給ECC的位元行942_2的某個部分取而代之係用於嵌入式標籤資訊411、711。「竊用」ECC行以結合嵌入式標籤資訊而非擴大資料匯流排大小,例如許可製造用於傳統電腦系統的DIMM卡用在具有近及遠兩個儲存層級的系統中。舉例言之,若只有DRAM的DIMM係安裝在一通道而無任何遠記憶體(因而無法作用如同遠記憶體的快取記憶體),則ECC位元的全寬將用於ECC資訊。相反地,若有DRAM的DIMM係安裝在有遠記憶體的一通道(因而該DRAM作用如同遠記憶體的快取記憶體),則當該DRAM被存取時,ECC位元942_2的某個部分實際上被用來儲存資料匯流排上相聯結的快取列位址的標籤位元。於圖10之步驟1004期間,當一近記憶體快取列的資料係被寫入近記憶體或被讀取自近記憶體時,嵌入式標籤資訊411、711、811係存在於ECC行上。
如由前文回憶,於某些實施例中,借助於在記憶
體通道上,「潛行」至遠記憶體控制器的額外資訊作為一近記憶體請求的一部分,遠記憶體控制邏輯可「自動地」執行某些動作。此等自動動作可包括:1)自動檢測快取命中或失誤;2)當識別快取失誤且識別讀異動正在進行時,自動讀取遠記憶體;及3)當識別快取失誤且識別已使用位元係經設定時,自動寫至遠記憶體。
如於先前章節所述,為了執行如上1)、2)及3),藉將異動的標籤資訊405、705、805作為觸發近記憶體快取記憶體存取的請求的一部分而潛行至遠記憶體控制邏輯,且將其與使用快取列儲存的且係讀取自近記憶體的嵌入式標籤資訊411、711、811作比較而檢測快取命中或失誤。
於一實施例中,參考圖9A及圖10,在近記憶體位址匯流排上否則將再生為未經使用的行位元及/或列位元的位址(例如行比列更多),於步驟1003(指令階段),異動的標籤資訊405、705、805係透過指令匯流排潛行至遠記憶體控制邏輯。當快取列係如前述藉竊取「被竊ECC位元」而讀取自近記憶體時,於圖10之步驟1004,可藉遠記憶體控制邏輯做嵌入式標籤資訊411、711、811的竊取。
又復,為了執行如上2)或3),遠記憶體控制邏輯須能檢測播放時的異動型別(讀或寫)。於近記憶體係在遠記憶體控制邏輯前方之情況下,再度參考圖9A及圖10,播放時的異動型別也可以恰如前文對1)中針對異動的標籤資訊所述方式(例如於指令階段1003期間於指令匯流排上),透過指令匯流排潛行至遠記憶體控制邏輯。於近記憶體係在遠
記憶體控制邏輯後方之情況下,單純藉鍵控來自記憶體控制器的異動之原先請求(例如比較圖8B與8D),遠記憶體控制邏輯可能檢測總異動是否為讀或寫。否則可執行與近記憶體在前方的相同操作。
此外,為了執行如上3),參考圖9A及圖10,遠記憶體控制邏輯須能檢測已使用位元是否經設定。此處,由於已使用位元乃與一快取列的資料嵌入近記憶體的資訊,恰如前文有關嵌入式標籤資訊411、711、811所述,另一個ECC位元被「竊占」。因此,於近記憶體寫存取步驟1004期間,藉呈示適當值於該通道的ECC位元位置942_2中之一者,記憶體控制器寫該已使用位元。同理,於近記憶體讀存取期間,藉竊取此同一個ECC位置,遠記憶體控制邏輯可檢測該已使用位元。
參考圖9B及圖10,為了解決「失序」議題,一異動識別符可發送給遠記憶體控制邏輯電路作為一遠記憶體讀取請求的一部分。此項目的也可藉在遠記憶體讀取請求的指令階段1003期間,藉呈示該異動識別符於指令匯流排上達成。
圖12A顯示藉該記憶體控制器,透過該通道所做遠記憶體之一讀存取的一種基元處理。圖12A之處理例如可於下述情況下完成,當針對讀異動檢測得一快取失誤時,遠記憶體控制邏輯不會自動地執行讀取入遠記憶體,而需由記憶體控制器明確地請求以執行遠記憶體讀取。此外,記住於前述實施例中,於一快取失誤之情況下,記憶體控
制器可發佈一讀取請求給遠記憶體控制邏輯,即便遠記憶體控制邏輯自動地初始化遠記憶體的讀取亦復如此(例如參考圖7B及8B)。
參考圖9B、11及12A,具有一遠記憶體讀位址的一讀取請求係藉記憶體控制器透過指令匯流排941發佈(步驟1201)。透過指令匯流排發佈的讀取請求也含括藉該遠記憶體控制邏輯所保有(例如於暫存器)的一異動識別符1120。
該請求係置於一讀緩衝器1138(步驟1202)。保有在一寫緩衝器1137的寫入請求經分析以瞭解是否有一匹配目標位址(步驟1203)。若有,則針對讀取請求應答的資料係取自最新產生的讀取請求(步驟1204)。若無,則該讀取請求係從讀緩衝器1138服務,讀資料係從遠記憶體平台1131讀取,及針對該讀取資料的ECC資訊係經計算且與以該讀取資料儲存的ECC資訊作比較(步驟1205)。若ECC檢查不合格,則藉遠記憶體控制邏輯產生錯誤(步驟1206)。此處參考圖9B,錯誤可透過選擇943_1、時鐘致能943_2或ODT 943_3行中之一者傳訊。
若讀取應答係取自寫緩衝器1137或ECC檢查為乾淨,則遠記憶體控制邏輯1120通知記憶體控制器其具有一讀取應答就緒供傳輸(步驟1207)。如圖9B觀察,於一實施例中,在被僭竊用於此項目的的該通道之一選擇信號行943_1、時鐘致能信號行943_2或晶粒上結束行943_3中之一者做出此一指示990。當記憶體控制器(於各個實施例中具有一排程器以在通道上排程異動)決定可接收讀取應答
時,發送一指示991給遠記憶體控制邏輯,須開始發送讀取應答(步驟1208)。如圖9B觀察,於一實施例中,在被僭竊用於此項目的的該通道之一選擇信號行943_1、時鐘致能信號行943_2或晶粒上結束行943_3中之一者做出此一指示991。
然後遠記憶體控制邏輯1120決定自最末讀取應答被發送算起,多少個寫入請求已經從寫緩衝器1137發佈(「寫緩衝器發佈計數」)。然後讀取資料連同異動識別符及寫緩衝器發佈計數透過通道回送(步驟1209)。於一實施例中,因ECC計算係藉遠記憶體控制邏輯進行,故名目上用於ECC的資料匯流排行大致為「自由」。如此如於圖9B觀察,異動識別符992及寫緩衝器發佈計數993係連同通道的ECC行942_2從遠記憶體控制器發送至記憶體控制器。此處,寫緩衝器發佈計數993係由記憶體控制器用以計算一新信用計數,因而許可發送新寫入請求給遠記憶體控制邏輯(步驟1210)。記憶體控制器本身藉追蹤已經載入讀緩衝器1138的讀取請求數目及已經回送的讀取應答數目而調整其讀取請求的發送。
圖12B顯示藉記憶體控制器透過通道對遠記憶體的寫存取之基本基元處理。圖12B之處理例如可在下述情況下完成,於該處遠記憶體控制邏輯無法自動執行寫入遠記憶體(例如當快取失誤時,針對讀異動或寫異動有已使用位元),而需由記憶體控制器明確地請求如此進行時。圖12B之寫處理也可利用在不具有任何駐在近記憶體的通道(例
如只有PCMS通道)。依據圖12B之處理,記憶體控制器接收寫異動(步驟1221)。記憶體控制器檢查其寫緩衝器信用帳戶,瞭解是否存在有足夠信用以發送一寫入請求(步驟1222)。若是,則記憶體控制器透過指令匯流排發送一寫入請求給遠記憶體控制邏輯(步驟1223)。應答地,遠記憶體控制邏輯將該請求置於其寫緩衝器(步驟1224)。最終,該寫入請求由寫緩衝器服務,針對料寫入遠記憶體的資料計算ECC資訊,且連同資料儲存於遠記憶體(步驟1225)。
增強寫處理係於先前就圖7D(近記憶體在前方)及圖8D(近記憶體在後方)討論。此處,遠記憶體控制邏輯之操作及用以執行此等寫處理之通道特定組件的實施例已經討論如前。但值得注意地,此外,至於圖7D之增強寫處理,記憶體控制器可從快取記憶體讀資訊決定於快取失誤及已使用位元經設定之情況下,是否需寫至遠記憶體。應答地,記憶體控制器可遞增其寫緩衝器計數,原因在於其瞭解遠記憶體控制邏輯將自動地執行寫入遠記憶體,但也將自動地將一請求載入寫緩衝器(步驟1224)以便達成此項目的。至於圖8D的增強寫處理,記憶體控制器也可接收快取記憶體讀資訊且恰如前述操作。
當然若屬適宜,前述遠記憶體基元操作可利用於只有遠記憶體技術的一通道上(例如DDR通道只有DIMM插入其儲存技術只以PCMS為基)。
前述遠記憶體控制邏輯可在一或多個半導體晶片上體現。記憶體控制器的邏輯電路可在一或多個半導體
晶片上體現。
雖然於架構上,前文大部分討論係針對位在CPU晶粒及CPU封裝體外部的近記憶體系統記憶體及遠記憶體系統記憶體裝置(例如在插入從CPU封裝體發出的一通道內的DIMM卡上),但雖言如此如上實施例及方法可體現在同一個CPU封裝體內部(例如,於該處一通道係以在基體上的導電軌線體現,DRAM及PCMS裝置係連同CPU晶粒安裝在同一CPU封裝體內(遠記憶體控制邏輯可設計於CPU晶粒內或安裝於基體的另一晶粒)或甚至CPU晶粒本身上(例如,於該處除了例如體現CPU及記憶體控制器的邏輯電路之外,CPU晶粒其上也整合DRAM系統記憶體及PCMS系統記憶體,及「通道」係以(例如多層級)晶粒上互連體布線體現)。
訓練乃嵌入式組配方案,藉此通訊式耦接的半導體裝置可「理解」其間應屬哪些合宜的傳訊特性。當只有DRAM裝置耦接至同一記憶體通道之情況下,記憶體控制器係對由DRAM之各排組所提供的讀資料經訓練。記憶體控制器也受訓提供適當時間的寫資料給各排組。針對x8 DRAM訓練係以8位元為基礎,針對x8 DRAM訓練係以4位元為基礎。4或8位元組的軌線長度差要求此項訓練解析度(在4或8位元組內部,要求軌線為匹配)。主機須做調整,原因在於DRAM不具調整能力。如此節省DRAM上的成本及電力二者。
當因PCMS及DRAM係耦接至一相同通道而完成
竊取時,則遠記憶體控制器也須經訓練。為了讀取自近記憶體,遠記憶體控制器須受訓接受該讀資料。若讀資料係欲藉DRAM竊取自遠記憶體控制器,則遠記憶體控制器須受訓適當計時送至DRAM(其無法調整)的資料,接著主機受訓而接收所得資料。於遠記憶體控制器竊取寫資料之情況下,將採用相似的二步驟程式。
100‧‧‧處理器
101-104‧‧‧處理器核心
101a-104a‧‧‧等級0內部處理器快取記憶體
101b-104b‧‧‧等級1內部處理器快取記憶體
105‧‧‧低階快取記憶體(LLC)
106‧‧‧快取記憶體
107、108、109‧‧‧快取記憶體
116-119‧‧‧系統記憶體區域
120‧‧‧內部處理器快取記憶體
121‧‧‧近記憶體
122‧‧‧遠記憶體
Claims (9)
- 一種支援近記憶體存取及遠記憶體存取的半導體晶片,該半導體晶片包含:記憶體控制器電路,其具有用以耦接至一記憶體通道的介面電路,該記憶體控制器電路包括:第一邏輯電路,其用以透過該介面電路以在該記憶體通道上體現一第一記憶體通道協定,該第一記憶體通道協定係專用於一第一依電性系統記憶體技術;第二邏輯電路,其用以透過該介面電路以在該記憶體通道上體現一第二記憶體通道協定,該第二記憶體通道協定係專用於一第二非依電性系統記憶體技術,該第二記憶體通道協定係為一異動協定。
- 如請求項1之半導體晶片,其中該第一型記憶體儲存技術係為DRAM,而該第二型記憶體儲存技術係為PCM。
- 如請求項1之半導體晶片,其中該記憶體通道包括一指令匯流排、一資料匯流排及控制線路。
- 如請求項1之半導體晶片,其中該第一邏輯電路不從該第一介面接收一讀取請求作為體現該第一記憶體通道協定的一部分,且其中該第二邏輯電路係從該介面接收一讀取請求作為體現該第二記憶體通道協定的一部分。
- 一種支援近記憶體存取及遠記憶體存取的電腦系統,該電腦系統包含:記憶體控制器電路,其具有用以耦接至一記憶體通 道的介面電路,該記憶體控制器電路包括:第一邏輯電路,其用以透過該介面電路以在該記憶體通道上體現一第一記憶體通道協定,該第一記憶體通道協定係專用於一第一依電性系統記憶體技術;第二邏輯電路,其用以透過該介面電路以在該記憶體通道上體現一第二記憶體通道協定,該第二記憶體通道協定係專用於一第二非依電性系統記憶體技術,該第二記憶體通道協定係為一異動協定;一第一記憶體裝置,其係由耦接至該記憶體通道的該第一依電性系統記憶體技術所構成;及一第二記憶體裝置,其係由耦接至該記憶體通道的該第二非依電性系統記憶體技術所構成。
- 如請求項5之電腦系統,其中該第一型記憶體儲存技術係為DRAM、而該第二型記憶體儲存技術係為PCM。
- 如請求項5之電腦系統,其中該記憶體通道包括一指令匯流排、一資料匯流排及控制線路。
- 如請求項7之電腦系統,其進一步包含連同該指令匯流排之在該通道與該第二記憶體裝置之間的遠記憶體控制邏輯電路。
- 如請求項8之電腦系統,其中該遠記憶體控制邏輯電路連同該指令匯流排亦位在該通道與該第一記憶體裝置之間。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/054421 WO2013048493A1 (en) | 2011-09-30 | 2011-09-30 | Memory channel that supports near memory and far memory access |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201604889A true TW201604889A (zh) | 2016-02-01 |
TWI587312B TWI587312B (zh) | 2017-06-11 |
Family
ID=47996224
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104132429A TWI587312B (zh) | 2011-09-30 | 2012-09-27 | 支援近記憶體存取及遠記憶體存取的及半導體晶片及電腦系統 |
TW101135620A TWI512748B (zh) | 2011-09-30 | 2012-09-27 | 支援近記憶體存取及遠記憶體存取的方法及半導體晶片 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101135620A TWI512748B (zh) | 2011-09-30 | 2012-09-27 | 支援近記憶體存取及遠記憶體存取的方法及半導體晶片 |
Country Status (5)
Country | Link |
---|---|
US (6) | US9342453B2 (zh) |
EP (3) | EP3364304B1 (zh) |
CN (2) | CN104025060B (zh) |
TW (2) | TWI587312B (zh) |
WO (1) | WO2013048493A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI763803B (zh) * | 2017-05-29 | 2022-05-11 | 南韓商三星電子股份有限公司 | 晶粒內終端之控制方法與進行所述方法之系統 |
US11475930B2 (en) | 2017-05-29 | 2022-10-18 | Samsung Electronics Co., Ltd. | Method of controlling on-die termination and system performing the same |
Families Citing this family (127)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2761476B1 (en) | 2011-09-30 | 2017-10-25 | Intel Corporation | Apparatus, method and system that stores bios in non-volatile random access memory |
EP3364304B1 (en) | 2011-09-30 | 2022-06-15 | INTEL Corporation | Memory channel that supports near memory and far memory access |
CN103975287B (zh) | 2011-12-13 | 2017-04-12 | 英特尔公司 | 使用非易失性随机存取存储器的服务器中的增强系统睡眠状态支持 |
WO2013095465A1 (en) | 2011-12-21 | 2013-06-27 | Intel Corporation | High-performance storage structures and systems featuring multiple non-volatile memories |
DE112011106032B4 (de) | 2011-12-22 | 2022-06-15 | Intel Corporation | Energieeinsparung durch Speicherkanal-Abschaltung |
US9396118B2 (en) | 2011-12-28 | 2016-07-19 | Intel Corporation | Efficient dynamic randomizing address remapping for PCM caching to improve endurance and anti-attack |
US20140229659A1 (en) * | 2011-12-30 | 2014-08-14 | Marc T. Jones | Thin translation for system access of non volatile semicondcutor storage as random access memory |
US9940247B2 (en) * | 2012-06-26 | 2018-04-10 | Advanced Micro Devices, Inc. | Concurrent access to cache dirty bits |
US9418700B2 (en) | 2012-06-29 | 2016-08-16 | Intel Corporation | Bad block management mechanism |
US9280497B2 (en) * | 2012-12-21 | 2016-03-08 | Dell Products Lp | Systems and methods for support of non-volatile memory on a DDR memory channel |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US10445229B1 (en) | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
US11249652B1 (en) | 2013-01-28 | 2022-02-15 | Radian Memory Systems, Inc. | Maintenance of nonvolatile memory on host selected namespaces by a common memory controller |
US20160139807A1 (en) * | 2013-07-09 | 2016-05-19 | Hewlett-Packard Development Company, L.P. | Write flow control for memory modules that include or interface with non-compliant memory technologies |
CN105474318A (zh) * | 2013-07-26 | 2016-04-06 | 慧与发展有限责任合伙企业 | 响应于第二读取请求的第一数据 |
US9898365B2 (en) * | 2013-07-31 | 2018-02-20 | Hewlett Packard Enterprise Development Lp | Global error correction |
US9158720B2 (en) * | 2013-08-11 | 2015-10-13 | Qualcomm Incorporated | System and method for scalable trace unit timestamping |
CN105556493B (zh) | 2013-09-27 | 2018-12-11 | 英特尔公司 | 用于跨设备组合存储器资源的设备、方法 |
JP6131170B2 (ja) * | 2013-10-29 | 2017-05-17 | 株式会社日立製作所 | 計算機システム、及びデータ配置制御方法 |
US10185499B1 (en) | 2014-01-07 | 2019-01-22 | Rambus Inc. | Near-memory compute module |
WO2015122925A1 (en) * | 2014-02-14 | 2015-08-20 | Hewlett-Packard Development Company, L.P. | Free flow assurance of atomicity of multiple updates in persistent memory |
CN103942162B (zh) * | 2014-05-14 | 2020-06-09 | 清华大学 | 在存储器中进行多访问的方法、装置和存储系统 |
US9747048B2 (en) * | 2014-06-02 | 2017-08-29 | Micron Technology, Inc. | Systems and methods for packing data in a scalable memory system protocol |
US9779025B2 (en) | 2014-06-02 | 2017-10-03 | Micron Technology, Inc. | Cache architecture for comparing data |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
CN104503707B (zh) * | 2014-12-24 | 2018-03-06 | 华为技术有限公司 | 读取数据的方法以及装置 |
US10204047B2 (en) | 2015-03-27 | 2019-02-12 | Intel Corporation | Memory controller for multi-level system memory with coherency unit |
US9639276B2 (en) * | 2015-03-27 | 2017-05-02 | Intel Corporation | Implied directory state updates |
US9619396B2 (en) | 2015-03-27 | 2017-04-11 | Intel Corporation | Two level memory full line writes |
US9916252B2 (en) * | 2015-05-19 | 2018-03-13 | Linear Algebra Technologies Limited | Systems and methods for addressing a cache with split-indexes |
US10073659B2 (en) | 2015-06-26 | 2018-09-11 | Intel Corporation | Power management circuit with per activity weighting and multiple throttle down thresholds |
US10387259B2 (en) * | 2015-06-26 | 2019-08-20 | Intel Corporation | Instant restart in non volatile system memory computing systems with embedded programmable data checking |
US20170060434A1 (en) * | 2015-08-27 | 2017-03-02 | Samsung Electronics Co., Ltd. | Transaction-based hybrid memory module |
US10108549B2 (en) | 2015-09-23 | 2018-10-23 | Intel Corporation | Method and apparatus for pre-fetching data in a system having a multi-level system memory |
US10185501B2 (en) | 2015-09-25 | 2019-01-22 | Intel Corporation | Method and apparatus for pinning memory pages in a multi-level system memory |
US10261901B2 (en) | 2015-09-25 | 2019-04-16 | Intel Corporation | Method and apparatus for unneeded block prediction in a computing system having a last level cache and a multi-level system memory |
US10678719B2 (en) | 2015-10-01 | 2020-06-09 | Rambus Inc. | Memory system with cached memory module operations |
US10445003B2 (en) | 2015-10-15 | 2019-10-15 | SK Hynix Inc. | Memory system for dualizing first memory based on operation mode |
US11138120B2 (en) | 2015-10-16 | 2021-10-05 | SK Hynix Inc. | Memory system |
US9990283B2 (en) | 2015-10-16 | 2018-06-05 | SK Hynix Inc. | Memory system |
US9990143B2 (en) | 2015-10-16 | 2018-06-05 | SK Hynix Inc. | Memory system |
US9977605B2 (en) | 2015-10-16 | 2018-05-22 | SK Hynix Inc. | Memory system |
US9977604B2 (en) | 2015-10-16 | 2018-05-22 | SK Hynix Inc. | Memory system |
US9786389B2 (en) | 2015-10-16 | 2017-10-10 | SK Hynix Inc. | Memory system |
US10169242B2 (en) | 2015-10-16 | 2019-01-01 | SK Hynix Inc. | Heterogeneous package in DIMM |
US10191664B2 (en) | 2015-10-16 | 2019-01-29 | SK Hynix Inc. | Memory system |
US10180796B2 (en) | 2015-10-16 | 2019-01-15 | SK Hynix Inc. | Memory system |
US10466909B2 (en) | 2015-10-16 | 2019-11-05 | SK Hynix Inc. | Memory system |
US9977606B2 (en) | 2015-10-16 | 2018-05-22 | SK Hynix Inc. | Memory system |
US9792224B2 (en) | 2015-10-23 | 2017-10-17 | Intel Corporation | Reducing latency by persisting data relationships in relation to corresponding data in persistent memory |
US10061644B2 (en) * | 2015-11-02 | 2018-08-28 | Qualcomm Incorporated | Systems and methods for implementing error correcting code in a memory |
US10033411B2 (en) | 2015-11-20 | 2018-07-24 | Intel Corporation | Adjustable error protection for stored data |
US9824419B2 (en) * | 2015-11-20 | 2017-11-21 | International Business Machines Corporation | Automatically enabling a read-only cache in a language in which two arrays in two different variables may alias each other |
US10095618B2 (en) | 2015-11-25 | 2018-10-09 | Intel Corporation | Memory card with volatile and non volatile memory space having multiple usage model configurations |
US10303372B2 (en) | 2015-12-01 | 2019-05-28 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and operation method thereof |
US10126981B1 (en) | 2015-12-14 | 2018-11-13 | Western Digital Technologies, Inc. | Tiered storage using storage class memory |
US10019367B2 (en) | 2015-12-14 | 2018-07-10 | Samsung Electronics Co., Ltd. | Memory module, computing system having the same, and method for testing tag error thereof |
US10437483B2 (en) | 2015-12-17 | 2019-10-08 | Samsung Electronics Co., Ltd. | Computing system with communication mechanism and method of operation thereof |
US9747041B2 (en) | 2015-12-23 | 2017-08-29 | Intel Corporation | Apparatus and method for a non-power-of-2 size cache in a first level memory device to cache data present in a second level memory device |
US9898222B2 (en) * | 2015-12-24 | 2018-02-20 | Intel IP Corporation | SoC fabric extensions for configurable memory maps through memory range screens and selectable address flattening |
US9847105B2 (en) | 2016-02-01 | 2017-12-19 | Samsung Electric Co., Ltd. | Memory package, memory module including the same, and operation method of memory package |
US10007606B2 (en) * | 2016-03-30 | 2018-06-26 | Intel Corporation | Implementation of reserved cache slots in computing system having inclusive/non inclusive tracking and two level system memory |
US10185619B2 (en) | 2016-03-31 | 2019-01-22 | Intel Corporation | Handling of error prone cache line slots of memory side cache of multi-level system memory |
CN105912486B (zh) * | 2016-04-27 | 2019-03-29 | 联想(北京)有限公司 | 信息处理方法及处理器 |
US10152237B2 (en) * | 2016-05-05 | 2018-12-11 | Micron Technology, Inc. | Non-deterministic memory protocol |
US10120806B2 (en) | 2016-06-27 | 2018-11-06 | Intel Corporation | Multi-level system memory with near memory scrubbing based on predicted far memory idle time |
US10474389B2 (en) * | 2016-07-05 | 2019-11-12 | Hewlett Packard Enterprise Development Lp | Write tracking for memories |
US10679722B2 (en) | 2016-08-26 | 2020-06-09 | Sandisk Technologies Llc | Storage system with several integrated components and method for use therewith |
US20180059985A1 (en) * | 2016-08-29 | 2018-03-01 | Intel Corporation | Dynamic management of relationships in distributed object stores |
US20180095884A1 (en) * | 2016-09-30 | 2018-04-05 | Intel Corporation | Mass storage cache in non volatile level of multi-level system memory |
US10379768B2 (en) * | 2016-09-30 | 2019-08-13 | Intel Corporation | Selective memory mode authorization enforcement |
US10915453B2 (en) | 2016-12-29 | 2021-02-09 | Intel Corporation | Multi level system memory having different caching structures and memory controller that supports concurrent look-up into the different caching structures |
US10445261B2 (en) * | 2016-12-30 | 2019-10-15 | Intel Corporation | System memory having point-to-point link that transports compressed traffic |
CN106844244B (zh) * | 2017-01-16 | 2021-05-18 | 联想(北京)有限公司 | 一种实现固态硬盘数据交互的装置和方法 |
US10127074B2 (en) * | 2017-01-27 | 2018-11-13 | Futurewei Technologies, Inc. | Transaction identification synchronization |
JP2018156573A (ja) * | 2017-03-21 | 2018-10-04 | 東芝メモリ株式会社 | メモリ装置および情報処理システム |
CN108628776B (zh) * | 2017-03-22 | 2022-02-18 | 华为技术有限公司 | 一种数据读写访问控制方法及装置 |
CN108733311B (zh) * | 2017-04-17 | 2021-09-10 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和设备 |
US10552256B2 (en) | 2017-05-08 | 2020-02-04 | Samsung Electronics Co., Ltd. | Morphable ECC encoder/decoder for NVDIMM over DDR channel |
US10304814B2 (en) | 2017-06-30 | 2019-05-28 | Intel Corporation | I/O layout footprint for multiple 1LM/2LM configurations |
US10437482B2 (en) | 2017-07-25 | 2019-10-08 | Samsung Electronics Co., Ltd. | Coordinated near-far memory controller for process-in-HBM |
US11188467B2 (en) | 2017-09-28 | 2021-11-30 | Intel Corporation | Multi-level system memory with near memory capable of storing compressed cache lines |
KR102331926B1 (ko) | 2017-11-17 | 2021-11-29 | 삼성전자주식회사 | 저장 장치를 포함하는 호스트 시스템의 동작 방법 및 저장 장치 제어기의 동작 방법 |
US10860244B2 (en) | 2017-12-26 | 2020-12-08 | Intel Corporation | Method and apparatus for multi-level memory early page demotion |
CN108052296B (zh) * | 2017-12-30 | 2021-02-19 | 惠龙易通国际物流股份有限公司 | 一种数据读取方法、设备及计算机存储介质 |
US11356636B2 (en) * | 2018-01-19 | 2022-06-07 | Caavo Inc | Device identification and power state determination using media device information |
US10782908B2 (en) | 2018-02-05 | 2020-09-22 | Micron Technology, Inc. | Predictive data orchestration in multi-tier memory systems |
US11416395B2 (en) | 2018-02-05 | 2022-08-16 | Micron Technology, Inc. | Memory virtualization for accessing heterogeneous memory components |
US11099789B2 (en) | 2018-02-05 | 2021-08-24 | Micron Technology, Inc. | Remote direct memory access in multi-tier memory systems |
US10880401B2 (en) | 2018-02-12 | 2020-12-29 | Micron Technology, Inc. | Optimization of data access and communication in memory systems |
US10642737B2 (en) * | 2018-02-23 | 2020-05-05 | Microsoft Technology Licensing, Llc | Logging cache influxes by request to a higher-level cache |
US11321249B2 (en) * | 2018-03-26 | 2022-05-03 | Samsung Electronics Co., Ltd. | Mechanism to autonomously manage SSDS in an array |
US10990463B2 (en) | 2018-03-27 | 2021-04-27 | Samsung Electronics Co., Ltd. | Semiconductor memory module and memory system including the same |
KR102549584B1 (ko) | 2018-03-27 | 2023-06-30 | 삼성전자주식회사 | 메모리 모듈을 포함하는 메모리 시스템, 메모리 모듈, 그리고 메모리 모듈의 동작 방법 |
US11099995B2 (en) | 2018-03-28 | 2021-08-24 | Intel Corporation | Techniques for prefetching data to a first level of memory of a hierarchical arrangement of memory |
KR101936951B1 (ko) * | 2018-04-11 | 2019-01-11 | 주식회사 맴레이 | 메모리 제어 장치 및 이를 포함하는 메모리 시스템 |
US10877892B2 (en) | 2018-07-11 | 2020-12-29 | Micron Technology, Inc. | Predictive paging to accelerate memory access |
US11709623B2 (en) | 2018-08-03 | 2023-07-25 | Sk Hynix Nand Product Solutions Corp. | NAND-based storage device with partitioned nonvolatile write buffer |
US11409436B2 (en) | 2018-08-08 | 2022-08-09 | Micron Technology, Inc. | Buffer management in memory systems for read and write requests |
US11099778B2 (en) * | 2018-08-08 | 2021-08-24 | Micron Technology, Inc. | Controller command scheduling in a memory system to increase command bus utilization |
US10769062B2 (en) | 2018-10-01 | 2020-09-08 | Western Digital Technologies, Inc. | Fine granularity translation layer for data storage devices |
US10956071B2 (en) | 2018-10-01 | 2021-03-23 | Western Digital Technologies, Inc. | Container key value store for data storage devices |
US10817430B2 (en) * | 2018-10-02 | 2020-10-27 | Micron Technology, Inc. | Access unit and management segment memory operations |
CN111512374B (zh) * | 2018-10-16 | 2022-11-11 | 华为技术有限公司 | 一种混合存储设备及访问方法 |
US10877897B2 (en) * | 2018-11-02 | 2020-12-29 | Intel Corporation | System, apparatus and method for multi-cacheline small object memory tagging |
US10740231B2 (en) * | 2018-11-20 | 2020-08-11 | Western Digital Technologies, Inc. | Data access in data storage device including storage class memory |
US11055228B2 (en) | 2019-01-31 | 2021-07-06 | Intel Corporation | Caching bypass mechanism for a multi-level memory |
US11005501B2 (en) * | 2019-02-19 | 2021-05-11 | Micron Technology, Inc. | Error correction on a memory device |
US10852949B2 (en) | 2019-04-15 | 2020-12-01 | Micron Technology, Inc. | Predictive data pre-fetching in a data storage device |
US11893266B2 (en) | 2019-05-03 | 2024-02-06 | University of Pittsburgh—of the Commonwealth System of Higher Education | Method and apparatus for adaptive page migration and pinning for oversubscribed irregular applications |
US20220197811A1 (en) * | 2019-05-03 | 2022-06-23 | University Of Pittsburgh-Of The Commonwealth System Of Higher Education | Method and apparatus for replacing data from near to far memory over a slow interconnect for oversubscribed irregular applications |
US11537521B2 (en) * | 2019-06-05 | 2022-12-27 | Samsung Electronics Co., Ltd. | Non-volatile dual inline memory module (NVDIMM) for supporting dram cache mode and operation method of NVDIMM |
US10936493B2 (en) | 2019-06-19 | 2021-03-02 | Hewlett Packard Enterprise Development Lp | Volatile memory cache line directory tags |
US10929301B1 (en) * | 2019-08-22 | 2021-02-23 | Micron Technology, Inc. | Hierarchical memory systems |
US11169928B2 (en) * | 2019-08-22 | 2021-11-09 | Micron Technology, Inc. | Hierarchical memory systems to process data access requests received via an input/output device |
KR20210034711A (ko) | 2019-09-20 | 2021-03-31 | 삼성전자주식회사 | 메모리 셀의 신뢰성에 따라 패리티 비트들을 선택적으로 생성하는 저장 장치 및 그것의 동작 방법 |
US11016905B1 (en) | 2019-11-13 | 2021-05-25 | Western Digital Technologies, Inc. | Storage class memory access |
FR3103620B1 (fr) * | 2019-11-21 | 2021-11-26 | St Microelectronics Rousset | Procédé d’écriture dans une mémoire volatile et circuit intégré correspondant |
CN113127386A (zh) * | 2019-12-30 | 2021-07-16 | 美光科技公司 | 存储器器件中的受损存储部分恢复 |
US11907572B2 (en) * | 2019-12-30 | 2024-02-20 | Micron Technology, Inc. | Interface read after write |
US11182291B2 (en) | 2020-02-03 | 2021-11-23 | International Business Machines Corporation | Using multi-tiered cache to satisfy input/output requests |
US11249921B2 (en) | 2020-05-06 | 2022-02-15 | Western Digital Technologies, Inc. | Page modification encoding and caching |
TWI749960B (zh) * | 2020-12-23 | 2021-12-11 | 瑞昱半導體股份有限公司 | 資料處理裝置與其資料存取電路 |
US11599415B2 (en) * | 2021-07-09 | 2023-03-07 | Microsoft Technology Licensing, Llc | Memory tiering techniques in computing systems |
KR20230021199A (ko) | 2021-08-04 | 2023-02-14 | 삼성전자주식회사 | 모드 설정을 지원하는 니어-메모리를 포함하는 전자 장치, 및 이의 동작 방법 |
CN115617709A (zh) * | 2022-09-27 | 2023-01-17 | 海光信息技术股份有限公司 | 缓存管理方法及装置、缓存装置、电子装置和介质 |
CN115910147B (zh) * | 2022-11-25 | 2023-08-18 | 湖南兴芯微电子科技有限公司 | 一种延迟可调的psram接口控制模块及控制器 |
Family Cites Families (201)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3909798A (en) | 1974-01-25 | 1975-09-30 | Raytheon Co | Virtual addressing method and apparatus |
US4713755A (en) * | 1985-06-28 | 1987-12-15 | Hewlett-Packard Company | Cache memory consistency control with explicit software instructions |
US5159856A (en) * | 1990-09-28 | 1992-11-03 | Mazda Motor Corporation | Automatic transmission line pressure control system |
JP3451099B2 (ja) * | 1991-12-06 | 2003-09-29 | 株式会社日立製作所 | 外部記憶サブシステム |
US6161208A (en) * | 1994-05-06 | 2000-12-12 | International Business Machines Corporation | Storage subsystem including an error correcting cache and means for performing memory to memory transfers |
US5517615A (en) * | 1994-08-15 | 1996-05-14 | Unisys Corporation | Multi-channel integrity checking data transfer system for controlling different size data block transfers with on-the-fly checkout of each word and data block transferred |
CN1100540A (zh) | 1994-08-18 | 1995-03-22 | 奥克利系统公司 | 压缩的基本输入/输出系统 |
FI102788B (fi) | 1995-09-14 | 1999-02-15 | Nokia Telecommunications Oy | Yhteisen levydatan hallinta kahdennetussa tietokoneyksikössä |
US6470405B2 (en) | 1995-10-19 | 2002-10-22 | Rambus Inc. | Protocol for communication with dynamic memory |
US5974576A (en) | 1996-05-10 | 1999-10-26 | Sun Microsystems, Inc. | On-line memory monitoring system and methods |
US5809526A (en) | 1996-10-28 | 1998-09-15 | International Business Machines Corporation | Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation |
JPH10154101A (ja) | 1996-11-26 | 1998-06-09 | Toshiba Corp | データ記憶システム及び同システムに適用するキャッシュ制御方法 |
JP3210590B2 (ja) | 1996-11-29 | 2001-09-17 | 株式会社日立製作所 | マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法 |
US5968424A (en) | 1997-05-07 | 1999-10-19 | Shigeru Shimosawa | Manufacturing method for artificial tooth |
US6035432A (en) | 1997-07-31 | 2000-03-07 | Micron Electronics, Inc. | System for remapping defective memory bit sets |
US5822251A (en) * | 1997-08-25 | 1998-10-13 | Bit Microsystems, Inc. | Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers |
US5917743A (en) | 1997-10-17 | 1999-06-29 | Waferscale Integration, Inc. | Content-addressable memory (CAM) for a FLASH memory array |
US6707948B1 (en) | 1997-11-17 | 2004-03-16 | The Regents Of The University Of California | Image compression for memory-constrained decoders |
JP3098486B2 (ja) | 1998-03-31 | 2000-10-16 | 山形日本電気株式会社 | 不揮発性半導体記憶装置 |
US6202129B1 (en) | 1998-03-31 | 2001-03-13 | Intel Corporation | Shared cache structure for temporal and non-temporal information using indicative bits |
US6038166A (en) | 1998-04-01 | 2000-03-14 | Invox Technology | High resolution multi-bit-per-cell memory |
CN1202530C (zh) | 1998-04-01 | 2005-05-18 | 三菱电机株式会社 | 在低电源电压下高速动作的静态型半导体存储装置 |
US5912839A (en) | 1998-06-23 | 1999-06-15 | Energy Conversion Devices, Inc. | Universal memory element and method of programming same |
US6559850B1 (en) * | 1998-10-30 | 2003-05-06 | Advanced Micro Devices, Inc. | Method and system for improved memory access in accelerated graphics port systems |
US6480929B1 (en) | 1998-10-31 | 2002-11-12 | Advanced Micro Devices Inc. | Pseudo-concurrency between a volatile memory and a non-volatile memory on a same data bus |
US6483736B2 (en) | 1998-11-16 | 2002-11-19 | Matrix Semiconductor, Inc. | Vertically stacked field programmable nonvolatile memory and method of fabrication |
US7889544B2 (en) | 2004-04-05 | 2011-02-15 | Super Talent Electronics, Inc. | High-speed controller for phase-change memory peripheral device |
US7827348B2 (en) * | 2000-01-06 | 2010-11-02 | Super Talent Electronics, Inc. | High performance flash memory devices (FMD) |
US6493776B1 (en) * | 1999-08-12 | 2002-12-10 | Mips Technologies, Inc. | Scalable on-chip system bus |
US6868472B1 (en) | 1999-10-01 | 2005-03-15 | Fujitsu Limited | Method of Controlling and addressing a cache memory which acts as a random address memory to increase an access speed to a main memory |
US6292874B1 (en) | 1999-10-19 | 2001-09-18 | Advanced Technology Materials, Inc. | Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges |
US8341332B2 (en) | 2003-12-02 | 2012-12-25 | Super Talent Electronics, Inc. | Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices |
US8171204B2 (en) * | 2000-01-06 | 2012-05-01 | Super Talent Electronics, Inc. | Intelligent solid-state non-volatile memory device (NVMD) system with multi-level caching of multiple channels |
US6259627B1 (en) | 2000-01-27 | 2001-07-10 | Multi Level Memory Technology | Read and write operations using constant row line voltage and variable column line load |
US6523102B1 (en) | 2000-04-14 | 2003-02-18 | Interactive Silicon, Inc. | Parallel compression/decompression system and method for implementation of in-memory compressed cache improving storage density and access speed for industry standard memory subsystems and in-line memory modules |
US6704840B2 (en) | 2001-06-19 | 2004-03-09 | Intel Corporation | Computer system and method of computer initialization with caching of option BIOS |
US6804799B2 (en) | 2001-06-26 | 2004-10-12 | Advanced Micro Devices, Inc. | Using type bits to track storage of ECC and predecode bits in a level two cache |
US7752423B2 (en) | 2001-06-28 | 2010-07-06 | Intel Corporation | Avoiding execution of instructions in a second processor by committing results obtained from speculative execution of the instructions in a first processor |
US6912695B2 (en) | 2001-09-13 | 2005-06-28 | Pixia Corp. | Data storage and retrieval system and method |
US7911952B1 (en) * | 2002-07-12 | 2011-03-22 | Mips Technologies, Inc. | Interface with credit-based flow control and sustained bus signals |
EP1387274A3 (en) | 2002-07-31 | 2004-08-11 | Texas Instruments Incorporated | Memory management for local variables |
US6968424B1 (en) | 2002-08-07 | 2005-11-22 | Nvidia Corporation | Method and system for transparent compressed memory paging in a computer system |
US6922350B2 (en) | 2002-09-27 | 2005-07-26 | Intel Corporation | Reducing the effect of write disturbs in polymer memories |
EP1453062B1 (en) | 2003-02-27 | 2006-06-28 | STMicroelectronics S.r.l. | Built-in testing methodology in flash memory |
US7146455B2 (en) | 2003-05-19 | 2006-12-05 | Accton Technology Corporation | System and method for optimized access to memory devices requiring block writing |
US20050010811A1 (en) | 2003-06-16 | 2005-01-13 | Zimmer Vincent J. | Method and system to support network port authentication from out-of-band firmware |
US7779212B2 (en) * | 2003-10-17 | 2010-08-17 | Micron Technology, Inc. | Method and apparatus for sending data from multiple sources over a communications bus |
US20050138267A1 (en) * | 2003-12-23 | 2005-06-23 | Bains Kuljit S. | Integral memory buffer and serial presence detect capability for fully-buffered memory modules |
US7085152B2 (en) * | 2003-12-29 | 2006-08-01 | Intel Corporation | Memory system segmented power supply and control |
US7328304B2 (en) | 2004-02-27 | 2008-02-05 | Intel Corporation | Interface for a block addressable mass storage system |
US7475174B2 (en) | 2004-03-17 | 2009-01-06 | Super Talent Electronics, Inc. | Flash / phase-change memory in multi-ring topology using serial-link packet interface |
US7269708B2 (en) | 2004-04-20 | 2007-09-11 | Rambus Inc. | Memory controller for non-homogenous memory system |
US20050273584A1 (en) | 2004-06-07 | 2005-12-08 | Wisecup George D | Locating environment variables in non-volatile memory |
US7587572B1 (en) | 2004-08-31 | 2009-09-08 | Sun Microsystems, Inc. | Method and system for managing process memory configured in resizable uncompressed and compressed regions |
US7590918B2 (en) | 2004-09-10 | 2009-09-15 | Ovonyx, Inc. | Using a phase change memory as a high volume memory |
US7277988B2 (en) | 2004-10-29 | 2007-10-02 | International Business Machines Corporation | System, method and storage medium for providing data caching and data compression in a memory subsystem |
IES20040777A2 (en) | 2004-11-22 | 2006-04-19 | Pendula Ltd | Protection of electronic data |
US7290702B2 (en) | 2004-12-28 | 2007-11-06 | Elbex Video Ltd. | Method and apparatus for recording and utilizing unknown signals of remote control devices |
US7441081B2 (en) | 2004-12-29 | 2008-10-21 | Lsi Corporation | Write-back caching for disk drives |
US7426649B2 (en) | 2005-02-09 | 2008-09-16 | International Business Machines Corporation | Power management via DIMM read operation limiter |
US20060200597A1 (en) * | 2005-03-03 | 2006-09-07 | Christenson Bruce A | Method, system, and apparatus for memory controller utilization of an AMB write FIFO to improve FBD memory channel efficiency |
US7218566B1 (en) * | 2005-04-28 | 2007-05-15 | Network Applicance, Inc. | Power management of memory via wake/sleep cycles |
US7437597B1 (en) | 2005-05-18 | 2008-10-14 | Azul Systems, Inc. | Write-back cache with different ECC codings for clean and dirty lines with refetching of uncorrectable clean lines |
US7681004B2 (en) * | 2005-06-13 | 2010-03-16 | Addmm, Llc | Advanced dynamic disk memory module |
US7797479B2 (en) | 2005-06-30 | 2010-09-14 | Intel Corporation | Technique to write to a non-volatile memory |
US20070005922A1 (en) | 2005-06-30 | 2007-01-04 | Swaminathan Muthukumar P | Fully buffered DIMM variable read latency |
KR100609621B1 (ko) * | 2005-07-19 | 2006-08-08 | 삼성전자주식회사 | 메모리 블락별로 레이턴시 제어가 가능한 동기식 반도체메모리 장치 |
US8274792B2 (en) * | 2005-09-06 | 2012-09-25 | Beyond Blades Ltd. | 3-dimensional multi-layered modular computer architecture |
US7533215B2 (en) | 2005-09-15 | 2009-05-12 | Intel Corporation | Distributed and packed metadata structure for disk cache |
US7676730B2 (en) | 2005-09-30 | 2010-03-09 | Quantum Corporation | Method and apparatus for implementing error correction coding in a random access memory |
US7516267B2 (en) | 2005-11-03 | 2009-04-07 | Intel Corporation | Recovering from a non-volatile memory failure |
US7516349B2 (en) * | 2005-12-29 | 2009-04-07 | Intel Corporation | Synchronized memory channels with unidirectional links |
US7562194B2 (en) * | 2006-02-06 | 2009-07-14 | Intel Corporation | Method and apparatus for exploiting parallelism across multiple traffic streams through a single channel |
US7600078B1 (en) | 2006-03-29 | 2009-10-06 | Intel Corporation | Speculatively performing read transactions |
US7911474B2 (en) | 2006-04-03 | 2011-03-22 | Siemens Medical Solutions Usa, Inc. | Memory management system and method for GPU-based volume rendering |
US7913147B2 (en) | 2006-05-08 | 2011-03-22 | Intel Corporation | Method and apparatus for scrubbing memory |
CN101496110B (zh) | 2006-05-12 | 2013-02-13 | 苹果公司 | 存储设备中的失真估计和消除 |
CN100451987C (zh) | 2006-05-23 | 2009-01-14 | 北京金元龙脉信息科技有限公司 | 对计算机bios固件进行安全风险检测的系统和方法 |
US20070294543A1 (en) | 2006-06-16 | 2007-12-20 | Arachnoid Biometrics Identification Group Corp. | Method for reading encrypted data on an optical storage medium |
US7756053B2 (en) | 2006-06-30 | 2010-07-13 | Intel Corporation | Memory agent with error hardware |
US7761657B2 (en) * | 2006-07-10 | 2010-07-20 | Hitachi, Ltd. | Storage control system, control method for storage control system, port selector, and controller |
US7478197B2 (en) | 2006-07-18 | 2009-01-13 | International Business Machines Corporation | Adaptive mechanisms for supplying volatile data copies in multiprocessor systems |
US7493439B2 (en) | 2006-08-01 | 2009-02-17 | International Business Machines Corporation | Systems and methods for providing performance monitoring in a memory system |
US7587559B2 (en) | 2006-08-10 | 2009-09-08 | International Business Machines Corporation | Systems and methods for memory module power management |
US8051253B2 (en) * | 2006-09-28 | 2011-11-01 | Virident Systems, Inc. | Systems and apparatus with programmable memory control for heterogeneous main memory |
US7555605B2 (en) * | 2006-09-28 | 2009-06-30 | Freescale Semiconductor, Inc. | Data processing system having cache memory debugging support and method therefor |
US7761625B2 (en) | 2006-09-28 | 2010-07-20 | Virident Systems, Inc. | Methods for main memory with non-volatile type memory modules, and related technologies |
US8683139B2 (en) | 2006-10-31 | 2014-03-25 | Hewlett-Packard Development Company, L.P. | Cache and method for cache bypass functionality |
US7930513B2 (en) | 2006-11-04 | 2011-04-19 | Virident Systems Inc. | Writing to asymmetric memory |
WO2008070812A2 (en) * | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for data storage using progressive raid |
US7554855B2 (en) | 2006-12-20 | 2009-06-30 | Mosaid Technologies Incorporated | Hybrid solid-state memory system having volatile and non-volatile memory |
US7603526B2 (en) * | 2007-01-29 | 2009-10-13 | International Business Machines Corporation | Systems and methods for providing dynamic memory pre-fetch |
TW200845014A (en) | 2007-02-28 | 2008-11-16 | Aplus Flash Technology Inc | A bit line structure for a multilevel, dual-sided nonvolatile memory cell array |
WO2008131058A2 (en) | 2007-04-17 | 2008-10-30 | Rambus Inc. | Hybrid volatile and non-volatile memory device |
US20080270811A1 (en) | 2007-04-26 | 2008-10-30 | Super Talent Electronics Inc. | Fast Suspend-Resume of Computer Motherboard Using Phase-Change Memory |
US7739441B1 (en) * | 2007-04-30 | 2010-06-15 | Hewlett-Packard Development Company, L.P. | Communicating between a native fully buffered dual in-line memory module protocol and a double data rate synchronous dynamic random access memory protocol |
WO2008139441A2 (en) | 2007-05-12 | 2008-11-20 | Anobit Technologies Ltd. | Memory device with internal signal processing unit |
WO2008150927A2 (en) | 2007-05-30 | 2008-12-11 | Schooner Information Technology | System including a fine-grained memory and a less-fine-grained memory |
US8799620B2 (en) * | 2007-06-01 | 2014-08-05 | Intel Corporation | Linear to physical address translation with support for page attributes |
US8296534B1 (en) | 2007-06-29 | 2012-10-23 | Emc Corporation | Techniques for using flash-based memory in recovery processing |
TWI327319B (en) | 2007-07-03 | 2010-07-11 | Macronix Int Co Ltd | Double programming methods of a multi-level-cell nonvolatile memory |
US8347005B2 (en) * | 2007-07-31 | 2013-01-01 | Hewlett-Packard Development Company, L.P. | Memory controller with multi-protocol interface |
KR101498673B1 (ko) | 2007-08-14 | 2015-03-09 | 삼성전자주식회사 | 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템 |
JP5049733B2 (ja) | 2007-10-17 | 2012-10-17 | 株式会社東芝 | 情報処理システム |
US8145893B2 (en) | 2007-10-26 | 2012-03-27 | Intel Corporation | Hot-plugging a memory device |
CN101237546A (zh) | 2007-11-13 | 2008-08-06 | 东南大学 | 应用于车载环境的高速音视频海量存储方法及其装置 |
US8108609B2 (en) | 2007-12-04 | 2012-01-31 | International Business Machines Corporation | Structure for implementing dynamic refresh protocols for DRAM based cache |
EP2077559B1 (en) | 2007-12-27 | 2012-11-07 | Hagiwara Solutions Co., Ltd. | Refresh method of a flash memory |
US7941692B2 (en) | 2007-12-31 | 2011-05-10 | Intel Corporation | NAND power fail recovery |
US8094504B2 (en) | 2008-01-04 | 2012-01-10 | Integrated Device Technology Inc. | Buffered DRAM |
TWI373768B (en) | 2008-02-05 | 2012-10-01 | Phison Electronics Corp | System, controller and method for data storage |
US20090254705A1 (en) | 2008-04-07 | 2009-10-08 | International Business Machines Corporation | Bus attached compressed random access memory |
US20090271563A1 (en) | 2008-04-28 | 2009-10-29 | Microsoft Corporation | Flash memory transactioning |
TWI437429B (zh) * | 2008-06-04 | 2014-05-11 | A Data Technology Co Ltd | 多通道混合密度記憶體儲存裝置及其控制方法 |
US20090313416A1 (en) | 2008-06-16 | 2009-12-17 | George Wayne Nation | Computer main memory incorporating volatile and non-volatile memory |
US20090327837A1 (en) | 2008-06-30 | 2009-12-31 | Robert Royer | NAND error management |
US20100005212A1 (en) | 2008-07-01 | 2010-01-07 | International Business Machines Corporation | Providing a variable frame format protocol in a cascade interconnected memory system |
CN101620539B (zh) | 2008-07-01 | 2013-12-25 | 联想(北京)有限公司 | 开关机方法和计算机 |
US9575889B2 (en) | 2008-07-03 | 2017-02-21 | Hewlett Packard Enterprise Development Lp | Memory server |
US20100125695A1 (en) | 2008-11-15 | 2010-05-20 | Nanostar Corporation | Non-volatile memory storage system |
US8205138B2 (en) | 2008-08-07 | 2012-06-19 | International Business Machines Corporation | Memory controller for reducing time to initialize main memory |
KR101467623B1 (ko) * | 2008-08-08 | 2014-12-01 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 메모리 모듈 및 메모리 모듈 제어 방법 |
JP5581577B2 (ja) | 2008-08-29 | 2014-09-03 | 富士通株式会社 | データ処理装置 |
US9152569B2 (en) | 2008-11-04 | 2015-10-06 | International Business Machines Corporation | Non-uniform cache architecture (NUCA) |
KR101001147B1 (ko) | 2008-12-12 | 2010-12-17 | 주식회사 하이닉스반도체 | 상변화 메모리 장치 |
US20120030396A1 (en) * | 2009-03-02 | 2012-02-02 | Zhichun Zhu | Decoupled Memory Modules: Building High-Bandwidth Memory Systems from Low-Speed Dynamic Random Access Memory Devices |
US8375241B2 (en) | 2009-04-02 | 2013-02-12 | Intel Corporation | Method and system to improve the operations of a registered memory module |
US8331857B2 (en) | 2009-05-13 | 2012-12-11 | Micron Technology, Inc. | Wireless interface to program phase-change memories |
US8250282B2 (en) | 2009-05-14 | 2012-08-21 | Micron Technology, Inc. | PCM memories for storage bus interfaces |
US8180981B2 (en) | 2009-05-15 | 2012-05-15 | Oracle America, Inc. | Cache coherent support for flash in a memory hierarchy |
US8504759B2 (en) | 2009-05-26 | 2013-08-06 | Micron Technology, Inc. | Method and devices for controlling power loss |
US20100306453A1 (en) | 2009-06-02 | 2010-12-02 | Edward Doller | Method for operating a portion of an executable program in an executable non-volatile memory |
US8159881B2 (en) | 2009-06-03 | 2012-04-17 | Marvell World Trade Ltd. | Reference voltage optimization for flash memory |
US9123409B2 (en) | 2009-06-11 | 2015-09-01 | Micron Technology, Inc. | Memory device for a hierarchical memory architecture |
KR20100133710A (ko) | 2009-06-12 | 2010-12-22 | 삼성전자주식회사 | 메모리 시스템 및 그것의 코드 데이터 로딩 방법 |
US9208084B2 (en) | 2009-06-29 | 2015-12-08 | Oracle America, Inc. | Extended main memory hierarchy having flash memory for page fault handling |
US8612666B2 (en) | 2009-06-30 | 2013-12-17 | Intel Corporation | Method and system for managing a NAND flash memory by paging segments of a logical to physical address map to a non-volatile memory |
JP2011022657A (ja) | 2009-07-13 | 2011-02-03 | Fujitsu Ltd | メモリシステムおよび情報処理装置 |
US8626997B2 (en) | 2009-07-16 | 2014-01-07 | Micron Technology, Inc. | Phase change memory in a dual inline memory module |
WO2011007599A1 (ja) | 2009-07-17 | 2011-01-20 | 株式会社 東芝 | メモリ管理装置 |
US8341387B2 (en) | 2009-08-18 | 2012-12-25 | Dell Products, Lp | System and method to manipulate a system setting when booting an information handling system |
US8077515B2 (en) | 2009-08-25 | 2011-12-13 | Micron Technology, Inc. | Methods, devices, and systems for dealing with threshold voltage change in memory devices |
US8249099B2 (en) * | 2009-08-27 | 2012-08-21 | Texas Instruments Incorporated | External memory data management with data regrouping and channel look ahead |
WO2011024239A1 (en) | 2009-08-31 | 2011-03-03 | Hitachi, Ltd. | Storage system having plurality of flash packages |
US20110060869A1 (en) | 2009-09-08 | 2011-03-10 | Ocz Technology Group, Inc. | Large capacity solid-state storage devices and methods therefor |
US8479061B2 (en) | 2009-09-24 | 2013-07-02 | AGIGA Tech | Solid state memory cartridge with wear indication |
US20110087824A1 (en) * | 2009-10-08 | 2011-04-14 | Giga-Byte Technology Co.,Ltd. | Flash memory accessing apparatus and method thereof |
US8234447B2 (en) | 2009-10-09 | 2012-07-31 | Hitachi, Ltd. | Storage control device for storage system provided with storage device coupled to switch network |
US8838906B2 (en) | 2010-01-08 | 2014-09-16 | International Business Machines Corporation | Evict on write, a management strategy for a prefetch unit and/or first level cache in a multiprocessor system with speculative execution |
JP2011108306A (ja) | 2009-11-16 | 2011-06-02 | Sony Corp | 不揮発性メモリおよびメモリシステム |
US8230172B2 (en) | 2009-12-03 | 2012-07-24 | Intel Corporation | Gather and scatter operations in multi-level memory hierarchy |
US8489803B2 (en) | 2009-12-14 | 2013-07-16 | Smsc Holdings S.A.R.L. | Efficient use of flash memory in flash drives |
TWI433163B (zh) | 2009-12-23 | 2014-04-01 | Mstar Semiconductor Inc | 記憶體控制器及其控制方法 |
US8914568B2 (en) | 2009-12-23 | 2014-12-16 | Intel Corporation | Hybrid memory architectures |
US8612809B2 (en) | 2009-12-31 | 2013-12-17 | Intel Corporation | Systems, methods, and apparatuses for stacked memory |
US8285908B2 (en) * | 2010-01-24 | 2012-10-09 | Freescale Semiconductor, Inc. | Bus bridge and method for interfacing out-of-order bus and multiple ordered buses |
US20110197031A1 (en) * | 2010-02-05 | 2011-08-11 | Nokia Corporation | Update Handler For Multi-Channel Cache |
US20110208900A1 (en) | 2010-02-23 | 2011-08-25 | Ocz Technology Group, Inc. | Methods and systems utilizing nonvolatile memory in a computer system main memory |
JP2011198091A (ja) | 2010-03-19 | 2011-10-06 | Toshiba Corp | 仮想アドレスキャッシュメモリ、プロセッサ及びマルチプロセッサシステム |
US9189385B2 (en) | 2010-03-22 | 2015-11-17 | Seagate Technology Llc | Scalable data structures for control and management of non-volatile storage |
KR20110131781A (ko) | 2010-05-31 | 2011-12-07 | 삼성전자주식회사 | 위치정보의 정확도 확인방법 및 장치 |
GB201011146D0 (en) | 2010-07-02 | 2010-08-18 | Vodafone Ip Licensing Ltd | Mobile computing device |
US8489833B2 (en) | 2010-08-20 | 2013-07-16 | Transcend Information, Inc. | Data backup method for flash memory module and solid state drive |
US8838935B2 (en) | 2010-09-24 | 2014-09-16 | Intel Corporation | Apparatus, method, and system for implementing micro page tables |
US8649212B2 (en) | 2010-09-24 | 2014-02-11 | Intel Corporation | Method, apparatus and system to determine access information for a phase change memory |
US8578110B2 (en) * | 2010-10-12 | 2013-11-05 | Hitachi, Ltd. | Memory data backup system and memory data backup control method |
US8527837B2 (en) | 2010-10-15 | 2013-09-03 | Micron Technology, Inc. | Selective error control coding in memory devices |
CN101989183A (zh) * | 2010-10-15 | 2011-03-23 | 浙江大学 | 混合主存储器实现节能存储的方法 |
US8612676B2 (en) | 2010-12-22 | 2013-12-17 | Intel Corporation | Two-level system main memory |
US9779020B2 (en) * | 2011-02-08 | 2017-10-03 | Diablo Technologies Inc. | System and method for providing an address cache for memory map learning |
US20120221785A1 (en) | 2011-02-28 | 2012-08-30 | Jaewoong Chung | Polymorphic Stacked DRAM Memory Architecture |
US8595597B2 (en) | 2011-03-03 | 2013-11-26 | Intel Corporation | Adjustable programming speed for NAND memory devices |
US8462577B2 (en) | 2011-03-18 | 2013-06-11 | Intel Corporation | Single transistor driver for address lines in a phase change memory and switch (PCMS) array |
US8462537B2 (en) | 2011-03-21 | 2013-06-11 | Intel Corporation | Method and apparatus to reset a phase change memory and switch (PCMS) memory cell |
US8935484B2 (en) | 2011-03-31 | 2015-01-13 | Hewlett-Packard Development Company, L.P. | Write-absorbing buffer for non-volatile memory |
US9323458B2 (en) * | 2011-04-11 | 2016-04-26 | Inphi Corporation | Memory buffer with one or more auxiliary interfaces |
US8607089B2 (en) | 2011-05-19 | 2013-12-10 | Intel Corporation | Interface for storage device access over memory bus |
CN102209262B (zh) | 2011-06-03 | 2017-03-22 | 中兴通讯股份有限公司 | 一种内容调度的方法、装置和系统 |
US20120324195A1 (en) * | 2011-06-14 | 2012-12-20 | Alexander Rabinovitch | Allocation of preset cache lines |
US8605531B2 (en) | 2011-06-20 | 2013-12-10 | Intel Corporation | Fast verify for phase change memory with switch |
CN102231424B (zh) | 2011-06-24 | 2014-04-30 | 清华大学 | 相变存储单元及相变存储器 |
US8463948B1 (en) | 2011-07-01 | 2013-06-11 | Intel Corporation | Method, apparatus and system for determining an identifier of a volume of memory |
US8767482B2 (en) | 2011-08-18 | 2014-07-01 | Micron Technology, Inc. | Apparatuses, devices and methods for sensing a snapback event in a circuit |
EP2761476B1 (en) | 2011-09-30 | 2017-10-25 | Intel Corporation | Apparatus, method and system that stores bios in non-volatile random access memory |
WO2013048500A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy over common memory channels |
US20130275661A1 (en) | 2011-09-30 | 2013-10-17 | Vincent J. Zimmer | Platform storage hierarchy with non-volatile random access memory with configurable partitions |
CN103946819B (zh) | 2011-09-30 | 2017-05-17 | 英特尔公司 | 用于非易失性系统存储器的统计耗损均衡 |
US9378133B2 (en) | 2011-09-30 | 2016-06-28 | Intel Corporation | Autonomous initialization of non-volatile random access memory in a computer system |
EP3364304B1 (en) * | 2011-09-30 | 2022-06-15 | INTEL Corporation | Memory channel that supports near memory and far memory access |
CN103946816B (zh) | 2011-09-30 | 2018-06-26 | 英特尔公司 | 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram) |
CN103946813B (zh) | 2011-09-30 | 2017-08-25 | 英特尔公司 | 基于使用统计量追踪的远存储器访问信号的生成 |
US9600416B2 (en) | 2011-09-30 | 2017-03-21 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy |
CN107608910B (zh) | 2011-09-30 | 2021-07-02 | 英特尔公司 | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 |
US8850125B2 (en) * | 2011-10-25 | 2014-09-30 | Cavium, Inc. | System and method to provide non-coherent access to a coherent memory system |
WO2013080299A1 (ja) * | 2011-11-29 | 2013-06-06 | 富士通株式会社 | データ管理装置、データコピー方法、およびプログラム |
US20130205065A1 (en) | 2012-02-02 | 2013-08-08 | Lsi Corporation | Methods and structure for an improved solid-state drive for use in caching applications |
US9311228B2 (en) | 2012-04-04 | 2016-04-12 | International Business Machines Corporation | Power reduction in server memory system |
US9471484B2 (en) * | 2012-09-19 | 2016-10-18 | Novachips Canada Inc. | Flash memory controller having dual mode pin-out |
US9280497B2 (en) * | 2012-12-21 | 2016-03-08 | Dell Products Lp | Systems and methods for support of non-volatile memory on a DDR memory channel |
KR102249416B1 (ko) * | 2014-06-11 | 2021-05-07 | 삼성전자주식회사 | 메모리 시스템 및 메모리 시스템의 구동 방법 |
GB2548845B (en) * | 2016-03-29 | 2019-11-27 | Imagination Tech Ltd | Handling memory requests |
-
2011
- 2011-09-30 EP EP18165222.3A patent/EP3364304B1/en active Active
- 2011-09-30 WO PCT/US2011/054421 patent/WO2013048493A1/en active Application Filing
- 2011-09-30 EP EP18165216.5A patent/EP3382556A1/en not_active Ceased
- 2011-09-30 US US13/977,603 patent/US9342453B2/en active Active
- 2011-09-30 CN CN201180075116.6A patent/CN104025060B/zh active Active
- 2011-09-30 CN CN201710382875.6A patent/CN107391397B/zh active Active
- 2011-09-30 EP EP11873442.5A patent/EP2761472B1/en active Active
-
2012
- 2012-09-27 TW TW104132429A patent/TWI587312B/zh active
- 2012-09-27 TW TW101135620A patent/TWI512748B/zh active
-
2016
- 2016-03-25 US US15/081,164 patent/US9619408B2/en active Active
-
2017
- 2017-04-07 US US15/482,542 patent/US10282322B2/en active Active
- 2017-12-29 US US15/857,992 patent/US10241943B2/en active Active
-
2018
- 2018-07-26 US US16/046,587 patent/US10282323B2/en active Active
-
2019
- 2019-05-07 US US16/405,524 patent/US10691626B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI763803B (zh) * | 2017-05-29 | 2022-05-11 | 南韓商三星電子股份有限公司 | 晶粒內終端之控制方法與進行所述方法之系統 |
US11475930B2 (en) | 2017-05-29 | 2022-10-18 | Samsung Electronics Co., Ltd. | Method of controlling on-die termination and system performing the same |
Also Published As
Publication number | Publication date |
---|---|
EP3364304B1 (en) | 2022-06-15 |
US10282322B2 (en) | 2019-05-07 |
US20190332556A1 (en) | 2019-10-31 |
TWI587312B (zh) | 2017-06-11 |
US9342453B2 (en) | 2016-05-17 |
EP3382556A1 (en) | 2018-10-03 |
CN104025060A (zh) | 2014-09-03 |
CN107391397A (zh) | 2017-11-24 |
TWI512748B (zh) | 2015-12-11 |
US20160210251A1 (en) | 2016-07-21 |
US10282323B2 (en) | 2019-05-07 |
US20190018809A1 (en) | 2019-01-17 |
EP2761472B1 (en) | 2020-04-01 |
WO2013048493A1 (en) | 2013-04-04 |
US20140040550A1 (en) | 2014-02-06 |
TW201329994A (zh) | 2013-07-16 |
US20180189207A1 (en) | 2018-07-05 |
US10691626B2 (en) | 2020-06-23 |
EP2761472A1 (en) | 2014-08-06 |
US9619408B2 (en) | 2017-04-11 |
CN104025060B (zh) | 2017-06-27 |
US20170249266A1 (en) | 2017-08-31 |
EP3364304A1 (en) | 2018-08-22 |
EP2761472A4 (en) | 2015-05-06 |
CN107391397B (zh) | 2021-07-27 |
US10241943B2 (en) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI587312B (zh) | 支援近記憶體存取及遠記憶體存取的及半導體晶片及電腦系統 | |
TWI454915B (zh) | 實施具有不同操作模式之多階記憶體階層的設備與方法 | |
TWI594182B (zh) | 用於在共用記憶體通道上實施多位準記憶體階層之裝置及方法 | |
KR101779723B1 (ko) | 영구 저장소로의 라이트백을 요구하는 비 트랜잭션 코드 영역의 시작과 끝을 마킹하는 명령어들 | |
TWI624759B (zh) | 用於實施多層級記憶體階層之設備與方法 | |
TWI468938B (zh) | 用於配備具有可組態分區之不變性隨機存取記憶體的平台儲存階層之方法,設備及系統 | |
GB2514023B (en) | System and method for intelligently flushing data from a processor into a memory subsystem | |
TWI489276B (zh) | 於第二階記憶體階層中記憶體側快取的動態部份斷電之系統與方法 | |
TWI596474B (zh) | 用於系統存取非依電性半導體儲存體作為隨機存取記憶體之方法及半導體晶片 | |
US20140204663A1 (en) | Efficient pcms refresh mechanism |