TW201329857A - 用於在共用記憶體通道上實施多位準記憶體階層之裝置及方法 - Google Patents
用於在共用記憶體通道上實施多位準記憶體階層之裝置及方法 Download PDFInfo
- Publication number
- TW201329857A TW201329857A TW101131847A TW101131847A TW201329857A TW 201329857 A TW201329857 A TW 201329857A TW 101131847 A TW101131847 A TW 101131847A TW 101131847 A TW101131847 A TW 101131847A TW 201329857 A TW201329857 A TW 201329857A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- level
- cache
- pcm
- data
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/1684—Details of memory controller using multiple buses
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/251—Local memory within processor subsystem
- G06F2212/2515—Local memory within processor subsystem being configurable for different purposes, e.g. as cache or non-cache memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/30—Providing cache or TLB in specific location of a processing system
- G06F2212/304—In main memory subsystem
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
描述一種用以在一電腦系統內部整合含括一非依電性記憶體層的一記憶體及儲存裝置階層的系統及方法。於一個實施例中,PCMS記憶體裝置係用在該階層中作為一層,有時稱作「遠記憶體」。較高效能記憶體裝置諸如DRAM置於遠記憶體前方,用以遮掩該遠記憶體的部分效能極限。此等較高效能記憶體裝置係稱作為「近記憶體」。
Description
本發明大致上係有關於電腦系統領域。更明確言之,本發明係有關於體現多位準記憶體階層之裝置及方法。
A.目前記憶體及儲存裝置組態
今日針對電腦創新的限制因素中之一者為記憶體及儲存裝置技術。於習知電腦系統中,系統記憶體(又稱主記憶體、一次記憶體、可執行記憶體)典型地係藉動態隨機存取記憶體(DRAM)體現。以DRAM為基的記憶體即便在無記憶體讀或寫時仍然耗電,原因在於其必須恆常地再充電內部電容器之故。以DRAM為基的記憶體為依電性,表示一旦電力被移除,則儲存於DRAM記憶體中的資料喪失。習知電腦系統也仰賴多層級的快取來改良效能。快取記憶體乃位在處理器與系統記憶體間的高速記憶體,來以比較從系統記憶體獲得服務更快的速度服務記憶體存取請求。此種快取記憶體典型地係使用靜態隨機存取記憶體(SRAM)體現。快取記憶體管理協定可用來確保最頻繁存取的資料及指令係儲存在該快取記憶體的多個層級中之一者,因而減少記憶體存取異動次數且改良效能。
至於大容量儲存裝置(又稱二次儲存裝置或碟片儲存裝置),習知大容量儲存裝置典型地包括磁性媒體(例如
硬碟機)、光學媒體(例如光碟(CD)機、數位影音碟(DVD)等)、全像術媒體及/或大容量儲存快閃記憶體(例如固態驅動裝置(SSD)、活動式快閃驅動裝置等)。概略言之,此等儲存裝置被視為輸出入(I/O)裝置,原因在於其係藉處理器透過體現各項I/O協定的I/O配接器存取。此等I/O配接器及I/O協定耗用顯著大量電力且可能對平台的晶粒面積及形狀因數造成影響。當不連接至一持久電源供應器時具有有限電池壽命的可攜式或行動裝置(例如膝上型電腦、小筆電、平板電腦、PCM裝置位址(PDA)、可攜式媒體播放器、可攜式遊戲裝置、數位相機、行動電話、智慧型電話、特徵性電話等)可包含可卸式大容量儲存裝置(例如嵌入式多媒體卡(eMMC)、保全數位(SD)卡),其典型地透過低功率互連體及I/O控制器耦接至該處理器以滿足作用態及閒置態的電力預算。
至於韌體記憶體(諸如啟動記憶體(又名BIOS快閃記憶體)),習知電腦系統典型地使用快閃記憶體裝置來儲存持久的系統資訊,該等系統資訊係經常被讀取而罕見(或不曾)被寫入者。舉例言之,由處理器執行以在啟動過程(基本輸出入系統(BIOS)影像)期間初始化關鍵系統組件的初始指令典型地係儲存在快閃記憶體裝置。目前市場上可得的快閃記憶體裝置通常具有有限的速度(例如50 MHz)。因讀協定的額外負擔而此速度更進一步減低(例如25 MHz)。為了加快BIOS執行速度,習知處理器透常係於啟動過程的可擴延韌體介面前期(PEI)階段期間快取BIOS代碼之一部
分。處理器快取記憶體的大小對用於該PEI階段的BIOS代碼(又名「PEI BIOS代碼」)的大小造成限制。
B.相變記憶體(PCM)及相關技術
相變記憶體(PCM),有時又稱相變隨機存取記憶體(RRAM或PCRAM)、PCME、奧佛(Ovonic)統一記憶體、或硫屬化物RAM(C-RAM),乃探討硫屬化物玻璃的獨特表現之一型非依電性電腦記憶體。藉通電流而產熱的結果,硫屬化物玻璃可在兩態間切換:結晶態與非晶態。晚近PCM版本可達成兩個額外分開態。
由於PCM的記憶體元件可更快速切換,故PCM提供比快閃記憶體更高的效能,無需先抹除一整個胞元區塊即可完成寫入(改變個別位元為1或0),寫入所造成的降級可被減慢(PCM裝置可工作約一億次寫週期;PCM的降級係因程式規劃期間的熱膨脹,金屬(及其它材料)遷移,及其它機制)。
依據本發明之一實施例,係特地提出一種電腦系統包含一處理器,其具有用以執行指令及處理資料的多個核心及用以依據一第一快取管理策略而快取指令及資料的一或多個處理器快取記憶體;一第一記憶體通道,包含耦接至該處理器的一第一位址/控制及資料行集合;一第二記憶體通道,包含耦接至該處理器的一第二位址/控制及資料行集合;一第一第一-位準記憶體與一第二第一-位準記憶體,各自具有與其相聯結的一第一特性集合,該第一特性集合包
含一第一讀存取速度及一第一寫存取速度,該第一第一-位準記憶體係耦接至該第一記憶體通道,且該第二第一-位準記憶體係耦接至該第二記憶體通道;及通訊式耦接至該第一記憶體通道之一第一第二-位準記憶體,與通訊式耦接至該第二記憶體通道之一第二第二-位準記憶體,該等第一及第二第二-位準記憶體具有與其相聯結的一第二特性集合,該第二特性集合包含一第二讀及寫存取速度,其中之至少一者係分別地相對低於該第一讀存取速度或第一寫存取速度,非依電性使得若電力被移除時該等第一及第二第二-位準記憶體仍維持保有其內容,其中該第一第一-位準記憶體的至少一部分係組配成針對儲存於該第一第二-位準記憶體中之指令及資料的一快取記憶體,且該第二第一-位準記憶體的至少一部分係組配成針對儲存於該第二第二-位準記憶體中之指令及資料的一快取記憶體。
後文詳細說明部分及附圖係用以例示說明本發明之實施例。附圖中:圖1例示說明依據本發明之實施例一種快取及系統記憶體配置;圖2例示說明依據本發明之實施例採用的一種記憶體及儲存裝置階層;圖3例示說明其上可體現本發明之實施例的一種電腦系統;圖4A例示說明依據本發明之實施例一種包括
PCM的第一系統架構;圖4B例示說明依據本發明之實施例一種包括PCM的第二系統架構;圖4C例示說明依據本發明之實施例一種包括PCM的第三系統架構;圖4D例示說明依據本發明之實施例一種包括PCM的第四系統架構;圖4E例示說明依據本發明之實施例一種包括PCM的第五系統架構;圖4F例示說明依據本發明之實施例一種包括PCM的第六系統架構;圖4G例示說明依據本發明之實施例一種包括PCM的第七系統架構;圖4H例示說明依據本發明之實施例一種包括PCM的第八系統架構;圖4I例示說明依據本發明之實施例一種包括PCM的第九系統架構;圖4J例示說明依據本發明之實施例一種包括PCM的第十系統架構;圖4K例示說明依據本發明之實施例一種包括PCM的第十一系統架構;圖4L例示說明依據本發明之實施例一種包括PCM的第十二系統架構;圖4M例示說明依據本發明之實施例一種包括
PCM的第十三系統架構;圖5A例示說明包括一依電性近記憶體及一非依電性遠記憶體的系統架構之一個實施例;圖5B例示說明記憶體端快取記憶體(MSC)的一個實施例;圖5C例示說明記憶體端快取記憶體(MSC)的另一個實施例,其包括一整合型標籤快取記憶體及ECC產生/檢查邏輯;圖5D例示說明標籤快取記憶體及ECC產生/檢查單元實例之一個實施例;圖5E例示說明含括一PCM控制器的一種PCM DIMM之一個實施例;圖6A例示說明依據本發明之實施例一種專用於某些特定系統實體位址(SPA)範圍的MCE控制器及快取記憶體;圖6B例示說明依據本發明之實施例一種系統記憶體對映、近記憶體位址對映與PCM位址對映間之對映實例;圖6C例示說明依據本發明之實施例一種系統實體位址(SPA)與PCM實體裝置位址(PDA)或近記憶體位址(NMA)間之對映實例;及圖6D例示說明依據本發明之實施例一種在系統實體位址(SPA)空間及記憶體通道位址(MCA)空間內部記憶體頁面間的交插。
於後文詳細說明部分中,陳述無數特定細節,諸如邏輯體現、操作代碼(opcode)、載明運算元的手段、資源分割/共享/複製體現、系統組件的型別及交互關係、及邏輯分割/整合選擇,以供更徹底瞭解本發明。但熟諳技藝人士將瞭解本發明可無此等特定細節予以實施。於其它情況下,控制結構、閘極位準電路及完整軟體指令序列並未以細節顯示以免遮掩本發明。熟諳技藝人士無需透過不必要的實驗,利用所含括的詳細說明部分將可體現適當功能。
說明書中述及「一個實施例」、「一實施例」、「一具體實施例」等指示所述實施例可包括特定特徵、結構、或特性,但並非必要每個實施例皆包括特定特徵、結構、或特性。此外,此等片語並非必要皆係指同一個實施例。又復,當就一個實施例描述特定特徵、結構、或特性時,係承認執行關連其它實施例的此等特定特徵、結構、或特性係落入於熟諳技藝人士的知識範圍內,無論是否明確地描述皆係如此。
於後文詳細說明部分及申請專利範圍中,可使用「耦合」及「連結」等詞連同其衍生詞。須瞭解此等術語絕非意圖為彼此的同義詞。「耦合」一詞係用來指示二或多個元件,可以或可不直接彼此實體或電氣接觸、彼此協作或互動。「連結」係用來指示彼此耦合的二或多個元件間建立通訊。
有虛線框(例如大虛線、小虛線、點虛線、點)括出的文字及方塊有時於此處用來例示說明選擇性操作/組
件其添加額外特徵至本發明之實施例。但此種標示法並非表示此等僅為選項或選擇性操作/組件,及/或有實心邊界的該等方塊於本發明之若干實施例中並非選項。
引言
記憶體容量及性質的要求隨著處理器核心數目及新使用模式諸如虛擬化的增加而持續增高。此外,記憶體電力及成本已經變成電子系統的總體電力及成本分別的顯著重要成分。
若干本發明之實施例藉由智慧型細分記憶體技術間的效能要求與容量要求而解決前述挑戰。此一辦法的注意力焦點放在以相對小量相當高速記憶體諸如DRAM提供效能,同時使用顯著價廉且緊密的非依電性隨機存取記憶體(NVRAM)來體現系統記憶體本體。後文描述本發明之實施例界定許可NVRAM使用階層記憶體次系統組織的平台組態。NVRAM用在記憶體階層也允許新用途,諸如擴展啟動空間及大容量儲存裝置體現,容後詳述。
圖1例示說明依據本發明之實施例一種快取記憶體及系統記憶體配置。更明確言之,圖1顯示記憶體階層包括一內部處理器快取記憶體120集合,作為遠快取記憶體121的「近記憶體」其可包括內部快取記憶體106及外部快取記憶體107-109二者,及「遠記憶體」122。於若干本發明之實施例中,可用於「遠記憶體」的一個特定型別的記憶體為非依電性隨機存取記憶體(NVRAM)。因此,後文提供NVRAM的綜述,接著為遠記憶體及近記憶體的綜述。
A.非依電性隨機存取記憶體(NVRAM)
NVRAM有許多種技術選擇,包括PCM、相變記憶體及開關(PCMS)(後者乃前者的更特定體現)、位元組可定址持久記憶體(BPRAM)、通用記憶體、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快閃記憶體為64千位元組,而針對NAND快閃記憶體為16千位元組)可於更低的粒度(例如位元組位準)可改寫且可抹除;(5)可用作為系統記憶體及配置全部或部分系統
記憶體位址空間;(6)可使用異動處理協定(一協定其支援異動處理識別符(ID)可區別不同的異動處理,使得該等異動處理完全脫序),透過一匯流排而耦接至該處理器,且許可於夠小的粒度存取來支援NVRAM的操作為系統記憶體(例如快取行大小諸如64或128位元組)。舉例言之,匯流排可為記憶體匯流排(例如DDR匯流排,諸如DDR3、DDR4等),於其上跑一異動處理協定,係與通常使用的非異動處理協定相反。至於另一個實例,匯流排可為通常於其上執行異動處理協定者(本機異動處理協定),諸如PCI快速(PCIE)匯流排、桌上型管理介面(DMI)匯流排、或利用異動處理協定及夠小的異動處理酬載大小(例如快取行大小諸如64或128位元組)的任何其它型別的匯流排;及(6)下列中之一或多者:a)比非依電性記憶體/儲存裝置技術諸如快閃記憶體更快的寫速度;b)極高讀速度(高於快閃記憶體且接近於或相當於DRAM讀速度);c)可直接寫(而非在寫資料前要求抹除(以一秒覆寫),類似用在SSD的快閃記憶體);d)故障前更高個數量級(例如2或3)寫耐用性(大於用在SSD的啟動ROM及快閃記憶體);及/或如前述,與快閃記憶體相反,其一次須改寫與抹除一個完整「方塊」,在任何給定體現中,NVRAM可存取
的粒度可取決於NVRAM所耦接的特定記憶體控制器及特定記憶體匯流排或其它型別的匯流排。舉例言之,於若干體現中,於該處NVRAM係用作為系統記憶體,NVRAM可以快取行的粒度存取(例如64位元組或128位元組快取行),不只是於位元組粒度欲存取的特性能力,原因在於快取行為記憶體次系統存取記憶體的位準。因此,當NVRAM係部署在一記憶體次系統內部時,NVRAM可與如同用在相同記憶體次系統的DRAM(例如「近記憶體」)的相同粒度位準存取。即便如此,由記憶體控制器及特定記憶體匯流排或其它型別的匯流排存取NVRAM的粒度位準係小於由快閃記憶體所使用的區塊塊大小及I/O次系統的控制器及匯流排的存取大小的粒度位準。
NVRAM也可結合磨耗均平演算法,來考慮下述事實:在一定寫存取次數後,在遠記憶體層面的儲存電池開始磨耗,特別係在可能出現顯著寫次數諸如在系統記憶體體現中尤為如此。因高週期數區塊最可能以此種方式磨耗,故藉對調高週期數區塊與低週期數區塊的位址,磨耗均平展開橫過遠記憶體電池的寫入。注意大部分位址對調典型地對應用程式為透明,原因在於該位址對調係藉硬體、低階軟體(例如低階驅動程式或作業系統)或二者的組合處置。
B.遠記憶體
若干本發明之實施例的遠記憶體122係以NVRAM體現,但非必要限於任何特定記憶體技術。就其特
性及/或於記憶體/儲存裝置階層的應用而言,遠記憶體122係與其它指令及資料記憶體/儲存裝置技術可資區別。舉例言之,遠記憶體122係與下列不同:1)靜態隨機存取記憶體(SRAM),可用於專用在處理器核心101-104各自的位準0及位準1內部處理器快取記憶體101a-b、102a-b、103a-b、及104a-b,及由處理器核心所共享的低階快取記憶體(LLC)105;2)動態隨機存取記憶體(DRAM)組配成處理器100內部(例如在處理器100的相同晶粒上)的快取記憶體及/或組配成處理器外部(例如在處理器100的相同或不同封裝體)的一或多個快取記憶體107-109;及3)用作為大容量儲存裝置的快閃記憶體/磁碟/光碟(圖中未顯示);及4)應用為韌體記憶體的記憶體,諸如快閃記憶體或其它唯讀記憶體(ROM)(可稱作為啟動ROM、BIOS快閃記憶體、及/或TPM快閃記憶體)(圖中未顯示)。
與用作為大容量儲存裝置的快閃記憶體/磁碟/光碟相反,遠記憶體122可用作為指令及及直接藉處理器100定址的資料儲存裝置,且可與處理器100充分同步。此外,如前文討論及容後詳述,遠記憶體122可置於記憶體匯流排上,且可與記憶體控制器直接通訊,又轉而與處理器100直接通訊。
遠記憶體122可組合其它指令及資料儲存技術(例如DRAM)來形成混成記憶體(又稱共同定位PCM及
DRAM;第一階記憶體及第二階記憶體;FLAM(快閃記憶體及DRAM))。注意至少部分前述技術,包括PCM/PCMS可用於大容量儲存裝置,替代或額外使用系統記憶體,而當藉此方式應用時,無需為可隨機存取、可位元組定址、或可直接存取。
為求方便說明,本案其餘部分大半將稱作為「NVRAM」或更明確言之,視對遠記憶體122的技術選擇而定稱作「PCM」或「PCMS」。因此,NVRAM、PCM、PCMS、及遠記憶體等詞於後文討論可互換使用。但須瞭解如前文討論,不同技術也可用於遠記憶體。又,NVRAM並不限於用作為遠記憶體。
C.近記憶體
「近記憶體」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)、上升裝置/夾層、或電腦主機板上)。使用單一或多個高帶寬鏈路,諸如DDR或其它異動處理高帶寬鏈路(容後詳述),近記憶體121可與處理器100耦接通訊。
系統記憶體配置方案實例
圖1例示說明依據本發明之實施例,有關系統實體位址(SPA)空間116-119,快取記憶體101-109的多個位準如何組配。如所述,本實施例包含一處理器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(例如當組配成MSC時)所使用的位址空間。於若干實施例中,後述位址空間係稱作為記憶體通道位址(MCA)空間。於一個實施例中,內部快取記憶體101a-106針對整個SPA空間執行快取操作。
如此處使用的系統記憶體為由在處理器100上執行的軟體所可見及/或可直接定址的記憶體;而快取記憶體101a-109可對軟體透明地操作,表示不會形成該系統位址空間的可直接定址部分,但核心也支援指令的執行來允許軟體對部分或全部快取記憶體提供若干控制(組態、策略、暗示等)。系統記憶體細分成多區116-119可以手動執行作為系統組配程序(例如由系統設計者)的一部分及/或可藉軟體自動地執行。
於一個實施例中,系統記憶體區116-119係使用遠記憶體(例如PCM)體現,而於若干實施例中,近記憶體係組配為系統記憶體。系統記憶體位址範圍#4表示一位址範圍,其係使用較高速記憶體諸如DRAM,其可為於系統記憶體模式(與快取模式相反)中組配的近記憶體體現。
圖2例示說明依據本發明之實施例一種及針對近
記憶體144及NVRAM操作的不同可組配操作模式。記憶體/儲存裝置階層140具有多位準包括(1)快取記憶體位準150,其可包括處理器快取記憶體150A(例如圖1中之快取記憶體101A-105)及選擇性地作為遠記憶體的快取記憶體之近記憶體150B(於如此處所述的某些操作模式中);(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之系統位址空間A 190係用來例示說明當近記憶體150B係組配作為遠記憶體的MSC時的操作。於此種組態中,系統位址空間A 190表示整個系統位址空間(及系統位址空間B 191不存在)。另外,系統位址空間B 191係用來顯示當全部或部分近記憶體係被分配該系統位址空間的一部分時的一種體現。於此一實施例中,系統位址空間B 191表示分配給近記憶體151A的系統位址空間之範圍,及系統位址空間A 190表示分配給NVRAM 174的系統位址空間之範圍。
此外,當用作為遠記憶體150B的快取記憶體時,近記憶體144可在MSC控制器124的控制之下以各個子模式操作。於各個此等模式中,近記憶體位址空間(NMA)對軟體為透明,表示近記憶體不形成該系統位址空間的可直接定址部分。此等模式包括但非限於下列:
(1)回寫快取模式:於此種模式中,用作為遠記憶體快取記憶體的全部或部分近記憶體150B係用作為NVRAM遠記憶體(FM)151B的快取記憶體。當於回寫模式中,每個寫入操作最初係取向作為遠記憶體的快取記憶體之近記憶體150B(假設寫入取向的快取行係存在於該快取記憶體)。相對應寫操作係進行來唯有當作為遠記憶體的快取記憶體之近記憶體150B內部的快取行係由另一個快取行置換時才更新NVRAM FM 151B(與後述編寫模式相反,其
中各個寫操作係即刻地傳播至NVRAM FM 151B)。
(2)近記憶體繞道模式:於此種模式中,全部讀及寫皆繞道作為遠記憶體的快取記憶體之近記憶體150B,且直接地前進至NVRAM FM 151B。例如當應用程式並非快取友善時,或要求資料以一快取行的粒度持續時,可使用此種模式。於一個實施例中,由處理器快取記憶體150A及作為遠記憶體的快取記憶體之近記憶體150B執行的快取係彼此獨立。結果,資料可快取於作為遠記憶體的快取記憶體之近記憶體150B,該資料於處理器快取記憶體150A係不被快取(於某些情況下,可能不允許於處理器快取記憶體150A快取)及反之亦然。如此,標示為在處理器快取記憶體中為「不可快取」的某些資料在作為遠記憶體的快取記憶體之近記憶體150B中可被快取。
(3)近記憶體讀取-快取寫入繞道模式:此乃前述模式的變化例,於該處許可讀取來自NVRAM遠記憶體151B的持久資料的快取(亦即持久資料係在作為唯讀操作的遠記憶體的快取記憶體的該近記憶體150B中快取)。此點於大部分持久資料為「唯讀」時有用,及應用用途為快取友善。
(4)近記憶體讀取-快取編寫模式:此乃近記憶體讀取-快取寫入繞道模式的變化例,於該處除了讀取快取之外,也快取寫入-命中。每個寫入作為遠記憶體的快取記憶體之近記憶體150B皆造成寫入遠記憶體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的應用並非限於前述角色。
舉例言之,描述當作為遠記憶體的快取記憶體之近記憶體150B係在回寫快取時的操作。於一個實施例中,當作為遠記憶體的快取記憶體之近記憶體150B係在回寫快取模式時,讀取操作將首先抵達MSC控制器124,MSC控制器124將執行查詢來決定所請求的資料是否存在於作為遠記憶體的快取記憶體之近記憶體150B(例如利用標籤快取
記憶體342)。若存在時,則將資料透過I/O次系統115回送至要求的CPU、核心101-104或I/O裝置。若資料為不存在,則MSC控制器124將發送該請求連同系統記憶體位址給NVRAM控制器332。NVRAM控制器332將運用該解碼表333來轉換該系統記憶體位址成為NVRAM實體裝置位址(PDA),及直接讀取操作至遠記憶體151B的此區。於一個實施例中,解碼表333包括一位址無定向表(AIT)組件,NVRAM控制器332利用該AIT組件來在系統記憶體與NVRAM PDA間轉換。於一個實施例中,AIT係更新作為磨耗均平演算法的一部分,該演算法係體現來分散記憶體存取操作,藉此減少NVRAM FM 151B上的磨耗。另外,AIT可為儲存於NVRAM控制器332內部的一個分開表。
當從NVRAM FM 151B接收到所請求的資料時,NVRAM控制器332將所請求的資料回送給MSC控制器124,將資料儲存在作為FM快取記憶體的MSC近記憶體150B,也發送資料給發出請求的處理器核心101-104,或透過I/O次系統115送給I/O裝置。隨後請求此資料可直接來自作為FM快取記憶體的近記憶體150B的服務,直到由若干其它NVRAM FM資料置換為止。
如本文所述,於一個實施例中,記憶體寫操作也首先前進至MSC控制器124,將MSC寫至作為FM快取記憶體的MSC近記憶體150B。於回寫快取模式中,當接收寫操作時,資料可直接送至NVRAM FM 151B。舉例言之,唯有當在其中儲存資料的作為FM快取記憶體的MSC近記憶體
150B須再度用於不同系統記憶體位址儲存資料時,資料可發送至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至NVRAM 142的此等部分。反而,於若干實施例中,共用記憶體匯流排或其它型別的匯流排(諸如後文就圖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的中心記憶體存取控
制,處理器310係耦接至:1)記憶體端快取記憶體(MSC)控制器控制器124以控制存取至作為遠記憶體快取記憶體的近記憶體(NM)150B;及2)NVRAM控制器332控制存取NVRAM 142。雖然如圖3以分開的單元例示說明,MSC控制器124及NVRAM控制器332可邏輯地形成IMC 331的一部分。
於該具體實施例中,MSC控制器124包括一範圍暫存器336之集合,其載明用作為遠記憶體快取記憶體的近記憶體150B之操作模式(例如前述回寫快取模式、近記憶體繞道模式等)。於該具體實施例中,DRAM 144係用作為遠記憶體快取記憶體的NM 150B之記憶體技術。回應於記憶體存取請求,MSC控制器124可決定(取決於範圍暫存器336中載明的操作模式)該請求是否可得自作為FM快取記憶體的NM 150B的服務,或該請求是否須送至NVRAM控制器332,然後從NVRAM 142的遠記憶體(FM)部分151B服務該項請求。
於一實施例中,於該處NVRAM 142以PCMS體現,NVRAM控制器332為以符合PCMS技術的協定執行存取的PCMS控制器。如前文討論,PCMS記憶體本質上可於一位元組粒度存取。雖言如此,NVRAM控制器332可以較低粒度位準諸如快取行(例如64位元或128位元快取行)或符合記憶體次系統的任何其它粒度位準,存取以PCMS為基的遠記憶體151B。本發明之基本原理並非限於存取以PCMS為基的遠記憶體151B的任何特定粒度位準。但一般而言,當以PCMS為基的遠記憶體151B用來形成系位址空間的一部分
時,粒度位準將係高於傳統上用於非依電性儲存技術諸如快閃記憶體,只能在「區塊」(針對NOR快閃記憶體的最小大小為64千位元組,及針對NAND快閃記憶體為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之快取記憶體的NM 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表示導入第二位準系統記憶體(例如該系統記憶體可視為具有包含近記憶體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可為通用處理器,諸如核心(Core)i3、i5、i7、2雙核心(Duo)及四核心(Quad)、席翁(Xeon)、或伊它尼(Itanium)處理器,全部皆係得自加州聖塔卡拉郡之英特爾公司(Intel Corporation)。另外,處理器310可得自其它公司,諸如加州善尼維郡之亞侯公司(ARM Holdings,Ltd.)、加州善尼維郡
之密普斯技術公司(MIPS Technologies)等。處理器310可為特用處理器,諸如網路或通訊處理器、壓縮引擎、圖形處理器、共處理器、埋設式處理器等。處理器310可在含括於一或多個封裝體內部的一或多個晶片上體現。處理器310可為一或多個基體的一部分及/或可使用多種製程技術例如BiCMOS、CMOS、或NMOS中之任一者體現在基體上。於圖3所示實施例中,處理器310具有單晶片系統(SOC)組態。
於一個實施例中,處理器310包括整合圖形單元311,其包括執行圖形指令諸如3D或2D圖形指令的邏輯。雖然本發明之實施例並非限於任何特定整合圖形單元311,但於一個實施例中,但整合圖形單元311可執行工業標準圖形指令,諸如由Open GL及/或Direct X應用程式規劃介面(API)所載明者(例如OpenGL 4.1及Direct X 11)。
處理器310也可包括一或多個核心101-104,但再度為求簡明,但圖3舉例說明單一核心。於許多實施例中,核心101-104包括內部功能區塊,諸如一或多個執行單元、汰除單元、通用及特用暫存器之一集合等。若該等核心為多執行緒或超執行緒,則各個硬體執行緒也可視為一個「邏輯」核心。以架構及/或指令集表示,核心101-104可為同質或異質。例如有些核心可為有序,而其它核心可為失序。至於另一個實例,核心中之二或多者可執行相同指令集,而其它核心可只執行該指令集之一個子集或一不同指令集。
處理器310也可包括一或多個快取記憶體,諸如可體現為SRAM及/或DRAM的快取記憶體313。於圖中未顯
示的許多實施例中,體現快取記憶體313以外的額外快取記憶體,使得在核心101-104及記憶體裝置150B及151B的執行單元間存在有多位準快取記憶體。舉例言之,共用快取單元集合可包括上位準快取記憶體,諸如位準1(L1)快取記憶體、中位準快取記憶體、諸如快取記憶體的位準2(L2)、位準3(L3)、位準4(L4)、或其它位準、(LLC)、及/或不同組合。於不同實施例中,快取記憶體313可以不同方式分配,且於不同實施例中可為多種不同大小中之一者。舉例言之,快取記憶體313可為8百萬位元組(MB)快取記憶體、16 MB快取記憶體等。此外,於不同實施例中,該快取記憶體可為直接對映快取記憶體、完全聯結的快取記憶體、多向設定聯結的快取記憶體、或具有另一型對映的快取記憶體。於包括多個核心的其它實施例中,快取記憶體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),超640;及美國電機及電子工程師學會(IEEE)1394「火線」;等。對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可證實尋求存取儲存在電腦系統300的資料之系統為預期的系統。TPM 334也可報告平台(例如電腦系統300)的完好。如此許可外部資源(例如網路上的伺服器)來決定平台的可信賴度,但無法阻止由
使用者存取平台。
於若干實施例中,I/O次系統315也包括管理引擎(ME)335,其為許可系統管理器監視、維持、更新、升級、及修復電腦系統300的微處理器。於一個實施例中,管理管理器可藉透過網路336,經由管理引擎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封裝體外,透過匯流排,諸如系統匯流排(類似DDR匯流排(例如DDR3、DDR4等))、PCI快速匯流排、桌上管理介面(DMI)匯流排、或任何其它型別的匯流排而耦接至處理器310或CPU封裝體。
PCM匯流排及封裝組態實例
圖4A-M例示說明多種不同部署,其中處理器、近記憶體及遠記憶體係以不同方式組配及封裝。更明確言之,圖4A-M例示說明的該系列平台記憶體組態許可使用新的非依電性系統記憶體,諸如PCM技術或更明確言之,PCMS技術。
雖然橫跨圖4A-M的多幅圖使用相同的元件符號,但非必要表示藉該等元件符號識別的結構經常性為相同。舉例言之,雖然相同元件符號係用在數幅圖間識別整合型記憶體控制器(IMC)331及CPU 401,但此等組件可在不同圖間以不同方式體現。並未強調若干此等差異,原因在於此等差異非關本發明之基本原理的瞭解。
雖然數種不同系統平台組配辦法係描述如下,但此等辦法分成兩個寬廣類別:分裂架構,及統一架構。簡言之,於分裂架構方案中,記憶體端快取記憶體(MSC)控制器(例如位在處理器晶粒內,或位在CPU封裝體中的分開晶粒上)攔截全部系統記憶體請求。有兩個分開介面從該控制器「下游流動」,離開CPU封裝體而耦接至近記憶體及遠記憶體。各個介面係為特定型別的記憶體修整,各個記憶體可以效能及容量為單位獨立地定標。
於統一架構方案中,單一記憶體介面退出處理器晶粒或CPU封裝體,全部記憶體請求係發送給此一介面。MSC控制器連同近及遠記憶體次系統精簡在此單一介面上。此一記憶體介面須經修賴來符合處理器的記憶體效能要求,且須至少支援異動失序協定,原因在於PCMS裝置
無法有序地處理讀取請求。依據前述一般類別,可採用下列特定平台組態。
後述實施例中,包括多型匯流排/通道。「匯流排」及「通道」二詞於此處係作為同義詞使用。每個DIMM插槽的記憶體通道數目將取決於電腦系統所使用的特定CPU封裝體(有些CPU封裝體例如支援每個插槽三個記憶體通道)。
此外,於後述使用DRAM的實施例中,實質上任何型別的DRAM記憶體通道皆可使用,包括舉例說明但非限於DDR通道(例如DDR3、DDR4、DDR5等)。如此,雖然DDR有其優勢,原因在於為業界所寬廣可接受性、形成的價位點等,但本發明之基本原理並不限於任何特定型別的DRAM或依電性記憶體。
圖4A例示說明分裂架構的一個實施例,包括在CPU封裝體401(在處理器晶粒上或在分開晶粒上)內操作為FM之快取記憶體的近記憶體(亦即MSC)的一或多個DRAM裝置403-406及一或多個NVRAM裝置,諸如作為遠記憶體的駐在DIMM 450-451上的PCM記憶體。CPU封裝體401上的高帶寬鏈路407互連單一或多個DRAM裝置403-406至處理器310,該處理器駐有整合型記憶體控制器(IMC)331及MSC控制器124。雖然於圖4A及後述其它圖式例示說明為分開單元,於一個實施例中,MSC控制器124可整合入記憶體控制器331內部。
DIMM 450-451使用DDR插槽及電氣連結,界定DDR通道440具有DDR位址、資料線及控制線、及電壓(例
如由聯合電子裝置工程委員會(JEDEC)定義的DDR3或DDR4標準)。DIMM 450-451上的PCM裝置提供此種分裂架構的遠記憶體容量,具有DDR通道440至可攜載DDR協定及異動處理協定二者的CPU封裝體401。與DDR協定相反,其中處理器310或CPU封裝體內部的其它邏輯(例如IMC 331或MSC控制器124)發送一指令與接收一即刻應答,用來與PCM裝置通訊的異動處理協定許可CPU 401簽發一系列異動處理協定,各自由一個獨特異動處理ID識別。指令係由PCM DIMM的接收者上的PCM控制器服務,其回送應答給CPU封裝體401,該應答可能失序。處理器310或在CPU封裝體401內部的其它邏輯藉其連同回應一起發送的異動處理ID而識別各個異動處理回應。前述組態許可系統支援標準以DDR DRAM為基的DIMM組態(運用在相同DDR電氣連結上的DDR協定)及以PCM為基的DIMM組態(運用在相同DDR電氣連結上的異動處理協定)。
圖4B例示說明分裂架構,其使用耦接於DDR通道440的以DDR DRAM為基的DIMM 452來形成作為MSC的近記憶體。處理器310駐有記憶體控制器331及MSC控制器124。NVRAM裝置諸如PCM記憶體裝置駐在以PCM為基的DIMM 453上,其使用DDR插槽及非在CPU封裝體401上在額外DDR通道442上的電氣連結。以PCM為基的DIMM 453提供此種分裂架構的遠記憶體容量,基於DDR電氣連結,DDR通道442連結至CPU封裝體401且可載有DDR及異動處理協定。如此許可系統組配有不等數目的以DDR
DRAM為基的DIMM 452(例如DDR4 DIMM)及以PCM為基的DIMM 453來達成期望的容量及/或效能點。
圖4C例示說明分裂架構,駐有近記憶體403-406作為CPU封裝體401(在處理器晶粒上或在分開晶粒上)的記憶體端快取記憶體(MSC)。CPU封裝體上的高帶寬鏈路407係用來互連單個或多個DRAM裝置403-406至處理器310,其駐有記憶體控制器331及MSC控制器124,如分裂架構之定義。NVRAM諸如駐在PCI快速卡或冒口455,其在PCI快速匯流排454上使用PCI快速電氣連結及PCI快速協定或不同的異動處理協定。在PCI快速卡或冒口455上的PCM裝置提供此一分裂架構的遠記憶體容量。
圖4D為分裂架構,其使用以DDR DRAM為基的DIMM 452及DDR通道440以形成作為MSC的近記憶體。處理器310駐有記憶體控制器331及MSC控制器124。NVRAM諸如PCM記憶體裝置455駐在PCI快速卡或冒口,其在PCI快速匯流排454上使用PCI快速電氣連結及PCI快速協定或不同的異動處理協定。在PCI快速卡或冒口上的PCM裝置455提供此一分裂架構的遠記憶體容量,非在CPU封裝體401上的記憶體通道介面為以DDR DRAM為基的DIMM 452提供多個DDR通道440。
圖4E例示說明統一架構,其駐有作為MSC的近記憶體及在PCI快速卡或冒口456上的遠記憶體NVRAM諸如PCM,其在PCI快速匯流排454上使用PCI快速電氣連結及PCI快速協定或不同的異動處理協定。處理器310駐有整合
型記憶體控制器331,但於本統一架構情況下,MSC控制器124連同DRAM近記憶體及NVRAM遠記憶體駐在卡或冒口456上。
圖4F例示說明統一架構,其使用DDR通道457在DIMM 458上駐有作為MSC的近記憶體及遠記憶體NVRAM諸如PCM二者。於本統一架構的近記憶體包含在各個DIMM 458上的DRAM,作為在相同DIMM 458上PCM裝置的記憶體端快取記憶體,形成該特定DIMM的遠記憶體。MSC控制器124連同近及遠記憶體駐在各個DIMM 458上。於本實施例中,DDR通道457的多個記憶體通道係設在CPU封裝體之外。本實施例的DDR通道457審現DDR電氣連結上的異動處理協定。
圖4G例示說明混成分裂架構,藉此MSC控制器124駐在處理器310上,近記憶體及遠記憶體介面共享相同DDR匯流排410。此種組態使用以DRAM為基的DDR DIMM 411a作為近記憶體用作為MSC;使用DDR插槽及NVRAM(諸如PCM記憶體裝置),以PCM為基的DDR DIMM 411b(亦即遠記憶體)駐在DDR匯流排410的相同記憶體通道上。本實施例之記憶體通道同時載有DDR及異動處理協定來分別地定址近及遠記憶體DIMM 411a及411b。
圖4H例示說明統一架構,其中作為記憶體端快取記憶體的近記憶體461a係呈以DRAM為基的DDR DIMM形式駐在夾層或冒口461上。記憶體端快取記憶體(MSC)控制器控制器124係位在冒口的DDR及PCM控制器460,其可
具有二或多個記憶體通道連結至在夾層/冒口461上的DDR DIMM通道470,且透過高效互連體462諸如差分記憶體鏈路互連至CPU。相聯結的遠記憶體461b位在相同夾層/冒口461上,係由使用DDR通道470且移植NVRAM(諸如PCM裝置)的DIMM形成。
圖4I例示說明統一架構,其可用作為記憶體容量擴延至DDR記憶體次系統,及透過DDR匯流排471而連結至其DDR記憶體次系統上的CPU封裝體401的DIMM 464。針對呈此組態的另一種以NVM為基的容量,作為MSC的近記憶體以以DRAM為基的DDR DIMM 463a形式駐在夾層或冒口463上。MSC控制器124係位在冒口的DDR及PCM控制器460,其可具有二或多個記憶體通道連結至在夾層/冒口上的DDR DIMM通道470,且透過高效互連體462諸如差分記憶體鏈路互連至CPU。相聯結的遠記憶體463b座落在相同夾層/冒口463上,係由使用DDR通道470且移植NVRAM(諸如PCM裝置)的DIMM 463b形成。
圖4J為統一架構,其中作為記憶體端快取記憶體(MSC)的近記憶體係呈DRAM形式駐在各個且每個DIMM 465上。DIMM 465係在高效互連體/通道462上,諸如差分記憶體鏈路,以位在DIMM上的MSC控制器124而耦接至CPU封裝體401。相聯結的遠記憶體係座落在相同DIMM 465上且係藉NVRAM(諸如PCM裝置)形成。
圖4K例示說明統一架構,其中作為MSC的近記憶體係呈DRAM形式駐在各個且每個DIMM 466上。DIMM
係在高效互連體470上,以位在DIMM上的MSC控制器124而耦接至CPU封裝體401。相聯結的遠記憶體係座落在相同DIMM 466上且係藉NVRAM(諸如PCM裝置)形成。
圖4L例示說明分裂架構,其使用DDR匯流排471上的以DRAM為基的DDR DIMM 464以形成需要的近記憶體作為MSC。處理器310駐有整合型記憶體控制器331及記憶體端快取記憶體控制器124。NVRAM諸如PCM記憶體形成駐在卡或冒口467上的遠記憶體,其使用運用異動處理協定而與CPU封裝體401通訊的高效互連體468。駐有遠記憶體的卡或冒口467駐有單一緩衝器/控制器,其可控制連結至該冒口的多個以PCM為基的記憶體或多個以PCM為基的DIMM。
圖4M例示說明統一架構,其可使用卡或冒口469上的DRAM而形成需要的近記憶體,作為MSC。NVRAM諸如PCM記憶體裝置形成遠記憶體,也駐在卡或冒口469上,其使用高效互連體468至CPU封裝體401。駐有遠記憶體的卡或冒口469駐有單一緩衝器/控制器,其可控制在該冒口469上的多個以PCM為基的裝置或多個以PCM為基的DIMM,及也整合記憶體端快取記憶體控制器124。
於前述若干實施例中,諸如圖4G之例示說明,DRAM DIMM 411a及以PCM為基的DIMM 411b係駐在相同記憶體通道上。結果相同位址/控制及資料行集合係用來連結該CPU至DRAM及PCM二記憶體。為了減少通過CPU網目互連體的資料量,於一個實施例中,在具有以PCM為基
的DIMM之一共用記憶體通道上的DDR DIMM係經組配來用作為針對儲存在以PCM為基的DIMM的資料的唯一MSC。於此種組態中,儲存在以PCM為基的DIMM的遠記憶體資料只快取在同一個記憶體通道內部的DDR DIMM近記憶體,藉此定位記憶體異動處理至該特定記憶體通道。
此外,為了體現前述實施例,系統位址空間可邏輯上在不同的記憶體通道間細分。舉例言之,若有四個記憶體通道,則四分之一系統位址空間可配置給各個記憶體通道。若各個記憶體通道設有一個以PCM為基的DIMM及一個DDR DIMM,則該DDR DIMM可經組配來作為該系統位址空間的四分之一部分的MSC。
系統記憶體及大容量儲存裝置的選擇可取決於其上採用本發明之實施例的電子平台型別。例如,於個人電腦、平板電腦、筆記型電腦、智慧型電話、行動電話、特徵結構電話、個人數位助理器(PDA)、可攜式媒體播放器、可攜式遊戲裝置、遊戲機台、數位相機、開關、中樞器、路由器、機上盒、數位視訊記錄器、或具有相當大的大容量儲存要求的其它裝置中,大容量儲存裝置可單獨使用NVRAM大容量儲存裝置152A體現,或使用NVRAM大容量儲存裝置152A組合快閃記憶體/磁性/光學大容量儲存裝置152B體現。於具有相當大的大容量儲存要求的其它電子平台(例如大型伺服器)中,大容量儲存裝置可使用磁性儲存裝置(例如硬碟機)或磁性儲存裝置、光學儲存裝置、全像攝影儲存裝置、大容量儲存裝置快閃記憶體、及NVRAM大容
量儲存裝置152A之任一項組合體現。於此種情況下,負責儲存的系統硬體及/或軟體可體現多種智慧型持久儲存配置技術來以有效的或否則有用的方式在FM 151B/NVRAM大容量儲存裝置152A與快閃記憶體/磁性/光學大容量儲存裝置152B間分配持久程式代碼及資料區塊。
舉例言之,於一個實施例中,高功率伺服器係組配有一近記憶體(例如DRAM)、一PCMS裝置、及針對大量持久儲存用之一磁性大容量儲存裝置。於一個實施例中,筆記型電腦係組配有一近記憶體及一PCMS裝置,其執行遠記憶體及大容量儲存裝置二者的角色(亦即,其係如圖3所示邏輯上劃分來從事此等角色)。家用或辦公用桌上型電腦之一個實施例係類似筆記型電腦組配,但也可包括一或多個磁性儲存裝置來提供大量持久儲存能力。
平板電腦或小區式電話裝置之一個實施例係組配有PCMS記憶體,但可能沒有近記憶體及沒有額外大容量儲存裝置(為求節省成本/電力)。但平板/電話可組配有活動式大容量儲存裝置,諸如棒狀快閃記憶體或PCMS記憶體。
多種其它型別的裝置可如前述組配。舉例言之,可攜式媒體播放器及/或個人數位助理器(PDA)可以類似前述平板/電話之方式組配;遊戲機台可以類似桌上型電腦或膝上型電腦之方式組配。其它可以類似方式組配的裝置包括數位相機、路由器、機上盒、數位視訊記錄器、電視、及汽車。
MSC架構之實施例
於本發明之一個實施例中,系統記憶體中的大部分DRAM係以PCM置換。如先前討論,PCM以比較DRAM的顯著較低成本提供記憶體容量的顯著改良且為非依電性。但某些PCM特性,諸如非對稱性讀相對於寫效能、寫循環耐久極限、以及其非依電性本質使得直接置換DRAM具有挑戰性,不會遭致重大軟體改變。後述本發明之實施例提供軟體透明方式來整合PCM,同時透過軟體加強可獲得更新的用途。此等實施例提供記憶體次系統架構成功地過渡,且提供使用單一PCM工具來鞏固記憶體及儲存裝置二者,因而緩合平台中有分開的非依電性儲存層的需求。
圖5A例示說明之特定實施例包括一或多個處理器核心501,各自有一個內部記憶體管理單元(MMU)502用以產生記憶體要求及一或多個內部CPU快取記憶體503,來依據一特定快取記憶體管理策略而儲存程式代碼及資料行。如前述,快取記憶體管理策略可包含一互斥快取記憶體管理策略(其中存在階層的一個特定快取位準的全一行係不存在於任何其它快取位準)或一包含快取記憶體管理策略(其中複製快取行係儲存於快取階層的不同位準)。可採用來管理內部快取記憶體503的特定快取記憶體管理策略為熟諳技藝人士眾所周知,如此,在此不再詳加說明。本發明之基本原理並非限於任何特定快取記憶體管理策略。
圖5A也例示說明本機代理器505,其藉產生針對記憶體要求產生記憶體通道位址以提供存取MSC 510。本機代理器505負責管理特定記憶體位址空間,及針對該記憶
體空間解析記憶體存取衝突。如此,若任何核心需要存取一給定位址空間,須發送要求給該本機代理器505,然後發送要求給該特定MMU 502。於一個實施例中,每個MMU 502配置一個本機代理器505;但於若干實施例中,單一本機代理器505可服務多於一個記憶體管理單元502。
如圖5A例示說明,MSC 510係經組配來在以PCM為基的遠記憶體519前方。當適當時(例如當要求無法獲得來自近記憶體518的服務時),MSC 510管理存取一近記憶體518且前傳記憶體存取請求(例如讀及寫)給遠記憶體控制器521。MSC 510包括一快取控制單元512,其負責標籤快取記憶體511的操作,儲存標籤識別在近記憶體518內部所含的快取行。於操作中,當快取控制單元512決定記憶體存取請求可從近記憶體518獲得服務時(例如回應於快取命中),產生近記憶體位址(NMA)來識別儲存在近記憶體518內的資料。近記憶體控制單元515解譯NMA,及應答地產生電氣信號而存取該近記憶體518。如前述,於一個實施例中,該近記憶體為動態隨機存取記憶體(DRAM)。於此種情況下,電氣信號可包括列位址選通(RAS)信號及行位址選通(CAS)信號。但須注意本發明之基本原理並非限於DRAM用於近記憶體。
確保軟體透明記憶體應用的另一個組件為最佳化PCM遠記憶體控制器521,其管理PCM遠記憶體530特性,同時仍然提供要求的效能。於一個實施例中,PCM控制器521包括一位址間接表520,其將由快取記憶體控制單
元515所產生的MCA轉換至PDA,用來直接地定址PCM遠記憶體530。此等轉換可能出現在一「區塊」粒度,典型為5 KB。於一個實施例中,遠記憶體控制器521連續地移動PCM區塊遍歷PCM裝置位址空間,來確保不會因高頻寫至任何特定區塊造成磨耗熱點時要求轉換。如前述,此種技術有時於此處稱作為「磨耗均平」。
如此,MSC 510受快取控制單元512管理,許可MSC 510吸收、熔結及濾波異動處理(例如讀及寫)至PCM遠記憶體530。快取控制單元512管理近記憶體518與PCM遠記憶體530間的全部資料移動及一致性要求。此外,於一個實施例中,MSC快取控制器512介接CPU,及提供用於傳統以DRAM為基的記憶體次系統的標準同步載入/儲存介面。
現在將在圖5A所示架構脈絡中描述讀及寫操作實例。於一個實施例中,讀操作將首先抵達MSC控制器512,其將執行詢查以決定所要求的資料是否存在(例如利用標籤快取記憶體511)。若存在,則將該資料回送至發出請求的CPU、核心501、或I/O裝置(圖中未顯示)。若該資料係不存在,則MSC控制器512將連同系統記憶體位址(此處又稱為記憶體通道位址或MCA)發送該請求給遠記憶體控制器521。PCM控制器521將使用位址間接表520來轉換位址至PDA且導引讀操作至PCM的此區。當從PCM遠記憶體530接到所要求的資料時,PCM控制器521將回送所要求的資料給MSC控制器512,其將儲存資料於MSC近記憶體518,也發送資料給發出請求的CPU核心501,或I/O裝置。隨後針對
此資料之請求可由MSC近記憶體518直接服務,直到由若干其它PCM資料置換為止。
於一個實施例中,記憶體寫操作首先也前進至MSC控制器512,將資料寫入MSC近記憶體518。於此一實施例中,當接收到寫操作時,資料可能不直接發送給PCM遠記憶體530。舉例言之,唯有當MSC近記憶體518中的資料儲存位置須再度用來為不同系統記憶體位址儲存資料時,資料才可發送給PCM遠記憶體530。當發生此種情況時,MSC控制器512發現資料目前不在PCM遠記憶體530,如此將資料從近記憶體518取回及送至PCM控制器521。PCM控制器521詢查PDA找尋系統記憶體位址,然後將資料寫至PCM遠記憶體530。
於一個實施例中,MSC近記憶體518的大小將由工作負擔記憶體要求指示以及近及遠記憶體效能指示。用於以DRAM為基的MSC,大小可設定為工作負擔記憶體腳印大小或PCM遠記憶體530大小。此種MSC比較出現在目前處理器/系統架構的習知快取記憶體為極大。舉例言之,但非限制性,用於128 GB的PCM遠記憶體大小,MSC近記憶體大小可達16 GB。
圖5B例示說明與MSC 510之一個實施例相聯結的額外細節。本實施例包括負責命令及定址的一邏輯單元集合,其包括用以緩衝命令/位址的一命令緩衝器追蹤單元542及一快取記憶體存取模式檢查單元544,其係回應於來自MSC範圍暫存器(RR)單元545的控制信號而選擇MSC操
作模式。若干操作模式之實例說明如下。簡言之,可包括下列模式,其中近記憶體用在傳統快取角色的模式,及近記憶體518形成系統記憶體的一部分之模式。標籤檢查/命令排程器550使用得自標籤快取記憶體511的標籤來決定一特定快取行是否儲存於該近記憶體518,及近記憶體控制器515產生通道位址信號(例如CAS及RAS信號)。
本實施例也包括負責資料路由及處理的一邏輯單元集合,其包括一資料緩衝器546集合,用以儲存提取自近記憶體的資料或儲存至近記憶體。於一個實施例中,預提取資料快取記憶體547也含括用以儲存預提取自近記憶體及/或遠記憶體的資料。但預提取資料快取記憶體547為選擇性,且非遵照本發明之基本原理所需。
一錯誤校正代碼(ECC)產生器/檢查器單元552產生與檢查ECC以確保寫至或讀自近記憶體的資料係不含錯誤。如後文討論,於本發明之一個實施例中,ECC產生器/檢查器單元552係經修正以儲存快取標籤。特定ECC為熟諳技藝人士眾所周知,因而此處不再詳加說明。通道控制器553耦合近記憶體518的資料匯流排至MSC 510,及產生所需電氣信號用以存取該近記憶體518(例如針對DRAM近記憶體的RAS及CAS傳訊)。
圖5B也例示說明用以耦接MSC 510至遠記憶體的遠記憶體控制介面548。更明確言之,遠記憶體控制介面548產生定址該遠記憶體要求的MCA,且在資料緩衝器546與遠記憶體間通訊資料。
如文所述,於一個實施例採用的近記憶體518比較出現在目前處理器/系統架構的習知快取記憶體為極大。結果,維持系統記憶體位址轉換成近記憶體位址的標籤快取記憶體511也極大。儲存與詢指MSC標籤的成本可能成為建立大型快取記憶體的顯著障礙。如此,於本發明之一個實施例中,此項議題係使用創新方案加以解決,其將快取標籤儲存在配置於MSC的儲存裝置內部用於ECC保護,藉此大致去除標籤的儲存成本。
本實施例概略例示說明於圖5C,其顯示一整合標籤快取記憶體及ECC單元554用以儲存/管理快取標籤,儲存ECC資料,及執行ECC操作。如圖所示,當執行標籤檢查操作時,所儲存的標籤提供給標籤檢查/命令排程器550(例如以決定一特定資料區塊是否儲存在近記憶體快取記憶體518內)。
圖5D例示說明資料524及一相對應ECC 523及標籤522之集合的實例組織。如圖所示,標籤522係與ECC 523共同定位在標籤快取記憶體/ECC單元554的記憶體(例如於一個實施例中DDR DRAM)。於本實例中,數個資料區塊總計64位元組已經讀取入標籤快取記憶體/ECC單元554。ECC檢查/產生器單元554a使用該資料525產生一ECC,且對與該資料相聯結的的既有ECC 523比較該所產生的ECC。於本實例中,針對64位元組資料525產生4位元組ECC。但本發明之基本原理不受任何特定ECC型別或大小所限。此外,須注意「資料」一詞廣用於此處來指稱可執行程式代碼及資料,二
者皆可儲存於圖5D所顯示的資料儲存裝置525。
於一個實施例中,3-位元組(24位元)標籤522係用於圖5D例示說明的位元分配。特別位元00至16為提供快取行上位址位元的位址位元。針對有56位元的一系統位址(例如SPA[55:00]),位元00至16對映至系統位址的位元55-29,許可512 MB的最小型快取記憶體大小。返回3-位元組標籤,保留位元17-19;位元20-21為目錄位元,其提供對快取行的遠端CPU快取的資訊(例如提供指示有關該行被快取的其它CPU);位元21-22指示該快取行的目前狀態(例如00=乾淨;01=污穢;10及11=未使用);及位元23指示該快取行是否有效(例如1=有效;0=無效)。
如前述利用直接對映快取架構,許可近記憶體位址直接地提取自系統記憶體位址,減少或消除在MSC 510可被讀取之前查詢標籤倉儲的延遲成本,藉此顯著地改良效能。此外,檢查快取標籤決定MSC 510是否具有要求的資料的時間也被消除,原因在於該動作係與讀取自MSC資料的ECC檢查並列進行。
某些情況下,儲存有資料的標籤可能產生寫入議題。寫入之前首先讀取資料以確保不會對某干其它位址過寫資料。此種每次寫之前都讀可能成本變高。一個本發明之實施例採用污穢行標籤快取記憶體,其維持晚近存取的近記憶體位址(NMA)的標籤。由於許多寫入目標晚近存取位址,故合理地小型標籤快取記憶體可獲得有效命中率來在寫之前過濾掉大部分讀。
與PCM DIMM 519的一個實施例相聯結的額外細節包括PCM遠記憶體控制器521及一PCM遠記憶體模組530a-i集合係例示說明於圖5E。於一個實施例中,PCM遠記憶體530a-i單一匯集物係在系統記憶體使用與儲存裝置使用間共享。於此一實施例中,整個PCM匯集物530a-i可細分為4 KB大小的「區塊」。PCM描述符表(PDT)565識別各個PCM區塊用作為記憶體或儲存裝置。舉例言之,各列PDT可表示一特定區塊具有特定一行識別各區塊的使用(例如1=記憶體;0=儲存裝置)。於本實施例中,初系統組態可在儲存裝置與記憶體使用間劃分PCM 530a-i內部的該等PCM區塊(亦即藉程式規劃PDT 565)。於一個實施例中,同一個表係用來排除壞區塊,且提供備用區塊供磨耗均平操作。此外,PDT 565也可包括各個PCMS區塊對映至由軟體所使用的「邏輯」區塊位址。於系統記憶體之情況下,邏輯區塊位址係同MCA或SPA。每當由於磨耗均平故而移動PCMS區塊時,需要此種聯結來更新位址間接表(AIT)563。當發生此種情況時,由軟體所使用的邏輯區塊位址必須對映至一不同PCMS裝置位置(PDA)。於一個實施例中,此項對映關係係儲存於AIT且於每次磨耗均平移動時被更新。
如圖所示,PCM控制器521包括系統實體位址(SPA)對PCM對映器556,其係回應於磨耗管理單元555及一位址間接表563而操作來將SPA對映至PCM區塊。於一個實施例中,磨耗管理單元555體現一種磨耗均平演算法考慮下述事實,在過多次寫入及/或抹除存取後,PCM的儲存胞元
530a-530i開始磨耗。例如,藉迫使具有低週期數的資料區塊偶爾移動,及藉此許可高週期數的資料區塊位在儲存低週期數的資料區塊的記憶體胞元位置,磨耗均平將寫入及抹除橫過PCM裝置的記憶體胞元展開。典型地,大部分區塊不會循環,但高週期數區塊最可能故障,磨耗均平將高週期數區塊與低週期數區塊調換。磨耗管理單元555可運用一或多個計數器及暫存器追蹤週期數(例如每次檢測得一週期,則計數器可遞增1,此一結果可儲存於暫存器集合)。
於一個實施例中,位址間接邏輯563包括一位址間接表(AIT),含有須針對該等PCM區塊進行寫操作的指示。AIT可用來在記憶體及儲存裝置使用間自動地移動區塊。從軟體觀點,存取全部區塊使用傳統記憶體負載/儲存語義(亦即磨耗均平及位址間接操作對軟體為透明)。於一個實施例中,AIT係用來將由軟體產生的SPA轉換成PDA。此種轉換為均勻地磨耗PCMS裝置所需,資料需於PDA空間內環繞移動以免任何熱點。當出現此種移動時,SPA與PDA間之關係將改變,AIT將更新來反映此種新轉換。
於SPA對映至PCM之後,排程器單元557排程潛在PCM操作(例如讀及/或寫)至PCM裝置530a-i,及PCM協定引擎558產生執行讀/寫操作所要求的電氣傳訊。ECC單元562執行錯誤檢測與校正操作,資料緩衝器561暫時地緩衝讀取自或寫至PCM裝置530a-i的資料。持久寫入緩衝器559係用來保有保證回寫至PCMS的資料,即便於出人意表的電力故障情況下亦復如此(例如使用非依電性儲存裝置體
現)。刷新支援單元560或為週期性地,及/或依據特定資料刷新演算法(例如於持久寫入緩衝器達到載明的臨界值後)而含括來而新持久寫入緩衝器至PCMS。
於一個實施例中,MSC 510自動地安排路徑儲存裝置直接地存取PCM遠記憶體控制器521及記憶體存取MSC快取記憶體控制單元512。來到PCM遠記憶體控制器521的儲存裝置存取係被視為規則讀及寫處理,如常施加此處所述位址間接機構及磨耗均平機構。於本發明之一個實施例中,採用額外最佳化,當資料需在儲存裝置與記憶體間移動時可予體現。因使用一共用PCM匯集物530a-i,可藉單純地改變轉換表(例如AIT)中的指標器而予消除或延遲資料移動。舉例言之,當資料係從儲存裝置移轉至記憶體時,識別在特定實體PCM儲存位置的資料之指標器可被更新來指示該實體PCM儲存位置現在是系統記憶體中的一個記憶體位置。於一個實施例中,此點係以軟體透明方式,藉硬體完成以提供效能及功率效益。
除了軟體透明操作模式外,MSC控制器512的一個實施例提供其它操作模式,如由MSC範圍暫存器(RR)545指示。此等操作模式可包括但非限於下列:
1)為了儲存裝置類別應用的PCM記憶體直接存取。此項用途也將要求MSC控制器512遞交給PCM 519的寫入實際上為持久態。
2)近記憶體518的混成使用,暴露部分供軟體直接使用,同時維持其餘為MSC。當部分近記憶體518係暴露
供軟體直接使用時,該部分在系統位址空間內部係可直接定址。如此允許某些應用程式將其記憶體配置明確地分裂成高效小區(518(圖中未顯示)及相對低效大區(遠記憶體530)。相反地,配置作為MSC內部快取記憶體的該部分不會形成系統位址空間的一部分(反而作為如此處所述遠記憶體530的快取記憶體)。
如前文討論,MSC架構係定義而使得數種不同系統劃分辦法係為可能。此等辦法分成兩大類。
(1)分裂架構:於本體系中,MSC控制器512係位在CPU內且攔截全部系統記憶體請求。有兩個來自MSC的分開介面,其離開CPU而連結至近記憶體(例如DRAM)及遠記憶體(例如PCM)。各個介面係修整用於特定型別的記憶體,而各個記憶體以效能及容量而言可獨立地定標。
(2)統一架構:於本體系中,單一記憶體介面離開CPU,全部記憶體請求發送給此一介面。MSC控制器512連同近記憶體(例如DRAM)及遠記憶體(例如PCM)鞏固在此單一介面上的CPU外部。於一個實施例中,此一記憶體介面經修整而符合CPU的記憶體效能要求且支援異動處理失序協定。在此等介面各自的近及遠記憶體要求係以「統一」方式符合。
於前述類別範圍內,若干不同劃分選項為可行,其中數者描述如下。
分裂實例:
近記憶體:DDR5 DIMM’s
近記憶體介面:一或多個DDR5通道
遠記憶體:PCI快速(PCIe)卡上的PCM控制器/裝置
遠記憶體介面:x16PCIe.Gen3
2)統一實例:
CPU記憶體介面:一或多個KTMI(或QPMI)通道
具有在冒口卡上的MSC/PCM控制器的近/遠記憶體
無MSC/PCM控制器的近記憶體介面:DDR5介面
無MSC/PCM控制器的遠記憶體介面:PCM裝置介面
具有不同近記憶體操作模式的實施例
如前文討論,二位準記憶體階層可用來導入快速非依電性記憶體諸如PCM作為系統記憶體,同時使用極大型以DRAM為基的近記憶體。近記憶體可用作為硬體管理的快取記憶體。但若干應用程式並非硬體快取友善,如此,將從不同方式獲益來使用此種記憶體。由於在任何給定時間可能有數個不同應用程式在一伺服器上跑,一個本發明之實施例允許多個使用模式同時致能。此外,一個實施例提供針對各個此等使用模式控制近記憶體之定位能力。
於一個實施例中,MSC控制器512下列使用近記憶體的模式。如前文所述,於一個實施例中,目前操作模式可由儲存在MSC範圍暫存器(RR)545的操作代碼載明。
(1)回寫快取模式:於此模式中,全部或部分近記憶體518係用作為PCM記憶體530的快取記憶體。當於回寫模式中,每個寫操作初始係針對近記憶體518(假設寫入針對的快取行係存在於該快取記憶體)。唯有當近記憶體
518內部的該快取行係欲由另一個快取行置換時,才執行相對應寫操作來更新PCM遠記憶體530(與後述編寫模式相反,其中各次寫操作係即刻傳播至遠記憶體530)。
於一個實施例中,讀操作將首先抵達MSC快取記憶體控制器512,其將進行詢查來決定所請資料是否存在於該PCM近記憶體518(例如利用標籤快取記憶體511)。若存在,則將資料送返給發出請求的CPU、核心501或I/O裝置(圖5A中未顯示)。若資料為不存在,則MSC快取記憶體控制器512將發送請求連同系統記憶體位址給PCM遠記憶體控制器521。PCM遠記憶體控制器521將該系統記憶體位址轉換成PCM實體裝置位址(PDA)及導引讀操作至遠記憶體530的此區。如前述,此種轉換可利用一位址間接表(AIT)563,PCM控制器521使用該表來在系統記憶體位址與PCM PDA間轉換。於一個實施例中,AIT係經更新作為磨耗均平演算法的一部分,體現來分散記憶體存取操作,及藉此而減少PCM FM 530上的磨耗。
當接收到來自PCM FM 530的所請資料時,PCM FM控制器521將所請資料回送至MSC控制器512,其將資料儲存於MSC近記憶體518,及也發送資料給發出請求的處理器核心501或I/O裝置(圖5A中未顯示)。針對此資料的隨後請求可來自近記憶體518直接服務,直到由若干其它PCM FM資料置換為止。
於一個實施例中,記憶體寫操作也首先送至MSC控制器512,將資料寫入作為FM快取記憶體518的MSC近記
憶體內。於此一實施例中,當接收到寫操作時,資料可能不會直接送至PCM FM 530。舉例言之,唯有當作為FM快取記憶體518的MSC近記憶體中的其中儲存資料的位置須再度用於針對不同的系統記憶體位址儲存資料時,資料可發送至PCM FM 530。出現此種情況時,MSC控制器512宣告該資料目前不在PCM FM 530,如此將從作為FM快取記憶體518的近記憶體中取回且發送給PCM FM控制器521。PCM控制器521詢查PDA有關系統記憶體位址,及然後將資料寫至PCM FM 530。
(2)近記憶體繞道模式:於本模式中,全部讀與寫繞道作為FM快取記憶體518的NM,直接前進至PCM遠記憶體530。此種模式例如可用在應用程式非快取友善,或要求資料以快取行粒度持續時。於一個實施例中,由處理器快取記憶體503及作為FM快取記憶體518的NM執行的快取係彼此獨立地進行。結果,不被快取於處理器快取記憶體503(及於某些情況下,可能不允許被快取於處理器快取記憶體503者)的資料可被快取於作為FM快取記憶體518的NM,及反之亦然。如此,可能無法標示為「無法快取」於處理器快取記憶體503的某些資料可被快取於作為FM快取記憶體518的NM。
(3)近記憶體讀-快取寫繞道模式:此乃前述模式之變化,於該處許可從PCM 519讀快取持久資料(亦即持久資料係快取於MSC 510用於唯讀操作)。當大部分持久資料為「唯讀」而應用程式用途為快取友善時此點為有用。
(5)近記憶體讀-快取編寫模式:此乃前一個模式之變化例,於該處除了讀快取外,也快取寫命中。每個寫至MSC近記憶體518造成寫至PCM遠記憶體530。如此,由於快取記憶體的編寫本質,仍然保證快取行的持久。
(5)近記憶體直接存取模式:於本模式中,全部或部分近記憶體為軟體所直接可見,且形成系統記憶體位址空間的一部分。此種記憶體可完全在軟體控制之下。從以PCM記憶體519至此近記憶體區的全部資料移動要求明確的軟體拷貝。此種體系可針對軟體產生非一致記憶體位址(NUMA)記憶體域,於該處比較PCM遠記憶體530,從近記憶體518獲得遠較高的效能。此種用途可採用於某些高效運算(HPC)及圖形應用,其要求極為快速地存取某些資料結構。此種近記憶體直接存取模式係相當於「固定」某些快取行於近記憶體。此項固定可於更大型多向集合相聯結的快取記憶體中有效地完成。
下表A摘述前述操作模式中之各者。
用來體現前述操作模式的處理器及晶片組組件
包括下列:
(1)記憶體端快取記憶體控制器512,管理於兩層記憶體(2LM)階階層的近記憶體。
(2)於記憶體端快取記憶體510的範圍暫存器545集合(參考圖5B),針對前述操作模式各自決定系統位址範圍。
(3)從PCM記憶體次系統519至MSC控制器515確認寫完成的機制。
(5)失效近記憶體518內各行的機制。
(5)刷新引擎,驅逐污程行至PCM,及失效近記憶體位址空間的特定區。
於一個實施例中,針對各個使用模式,於系統位址空間的記憶體範圍為連續。但多個非連續區域可使用相同模式。於一個實施例中,於MSC RR 545集合內部的各個模式範圍暫存器提供下列資訊:(1)操作模式(例如回寫、近記憶體繞道模式等);(2)於系統位址空間的範圍基礎(例如於2 MB粒度或以上);及(3)識別該區大小的一範圍遮罩欄位。
於一個實施例中,支援的模式數目係依體現決定,但假設針對各個操作模式只有一個連續系統位址範圍為可用。若載明近記憶體直接存取範圍暫存器,則假設此將對映至一連續區域,始於近記憶體位址空間底部。此種連續區域須小於近記憶體的大小。此外,若使用任一種快
取模式,則直接存取區域大小須小於近記憶體大小以許可有足夠快取記憶體用於要求的效能。此等各種模式之近記憶體的配置可由使用者配置。
摘要言之,一個本發明之實施例係依據下列操作集合體現:
(1)當任何讀或寫存取達到記憶體端快取記憶體控制器512時,檢查範圍暫存器545(圖5B)決定目前操作模式。
(2)針對任何讀快取/寫繞道存取,MSC控制器512檢查瞭解該位址目前是否被快取。若是,則在發送寫完成返回來源之前須失效該行。
(3)針對任何寫繞道直接PCM操作,MSC控制器512等待從PCM控制器521完成返回,確保寫至通用可見緩衝器。
(4)任何讀或寫至近記憶體的直接存取模式空間係導引至近記憶體的合宜區域。並無異動處理發送至PCM記憶體。
(5)範圍暫存器的任何改變來增減任何既有區域或增加新區域將要求刷新對PCM的適當快取區域。舉例言之,若軟體期望藉減少回寫快取區域來增加直接存取模式區域的大小,則藉首先驅逐及失效近記憶體區域的適當部分,及然後改變近記憶體直接存取模式範圍暫存器可如此完成。然後,MSC控制器510將瞭解對更小型近記憶體位址空間進行未來快取。
本發明之一個特定實施例其中系統實體位址(SPA)空間係在多個MSC間劃分,係例示說明於圖6A。於該具體實施例中,MSC快取記憶體654及控制器656係與SPA區域667a相聯結;MSC快取記憶體655及控制器657係與SPA區域667b相聯結;MSC快取記憶體661及控制器663係與SPA區域667c相聯結;及MSC快取記憶體660及控制器662係與SPA區域667d相聯結。例示說明兩個CPU 670及671,各自具有四個核心650及651及一個本機代理器652及653。兩個CPU 670及671分別地係透過遠記憶體介面659及665而耦接至一共用遠記憶體控制器666。
如此,於圖6A中,整個SPA記憶體空間細分為多個區域,各個區域係與一特定MSC及控制器相聯結。於本實施例中,一給定MSC可具有非連續SPA空間配置,但並無任何MSC將具有重疊的SPA空間。此外,MSC係與非重疊SPA空間相聯結,且不要求MSC間同調技術。
前述近記憶體模式中之任一者可採用在圖6A所示架構。舉例言之,各個MSC控制器656-657、662-663可經組配來以回寫快取模式、近記憶體繞道模式、近記憶體讀-快取繞道模式、近記憶體讀-快取編寫模式、或近記憶體直接存取模式操作。如前文討論,於針對各個MSC 610的範圍暫存器(RR)655內部載明特定模式。
於一個實施例中,不同MSC可同時體現不同的操作模式。舉例言之,MSC控制器656的範圍暫存器可載明近記憶體直接存取模式,MSC控制器657的範圍暫存器可載明
回寫快取模式,MSC控制器662的範圍暫存器可載明讀快取/寫繞道模式,及MSC控制器663的範圍暫存器可載明讀快取/編寫模式。此外,於若干實施例中,個別MSC可同時地體現不同的操作模式。例如,MSC控制器656可經組配來針對某些系統位址範圍體現近記憶體直接存取模式,而針對其它系統位址範圍體現近記憶體繞道模式。
前述組合當然僅供舉例說明MSC控制器可獨立地程式規劃之方式。本發明之基本原理並不限於此等或任何其它組合。
如就前述若干實施例所述(例如就圖4G所述),MSC及其MSC控制器係經組配來於相同記憶體通道(例如相同實體DDR匯流排)上操作,原因在於PCM DIMM負責該特定SPA範圍。結果,於本實施例中,出現在標示的SPA範圍內的記憶體異動係位在相同記憶體通道內,藉此減少透過CPU網目互連體的資料流量。
圖6B提供依據本發明之實施例,如何可組配系統記憶體位址對映圖620、近記憶體位址對映圖621、及PCM位址對映圖622的代表圖。如前文討論,MSC控制器606係以藉範圍暫存器(RR)605識別的模式操作。系統記憶體對映圖620具有配置給近記憶體直接存取模式的第一區域602、配置給近記憶體繞道模式的第二區域603、及配置給回寫快取模式的第三區域605。MSC控制器606提供存取如由近記憶體位址對映圖621指示的近記憶體,其包括配置給回寫快取模式的第一區域608,及配置給近記憶體直接存取模式的
第二區域609。如圖所示,近記憶體快取繞道操作係直接提供給依據PCM位址對映圖622操作的MSC控制器610,其包括一近記憶體繞道區域611(用於近記憶體繞道模式)及一回寫快取區域612(用於回寫快取模式)。結果,基於藉MSC控制器體現的特定模式,可細分系統記憶體對映圖620、近記憶體位址對映圖621、及PCM位址對映圖622。
圖6C及6D例示說明於本發明之一個實施例採用的定址技術(其中數者可能已如前述)。更明確言之,圖6C顯示系統實體位址(SPA)675如何對映至近記憶體位址(NMA)或PCM裝置位址(PDA)。特別,SPA首先藉一處理器內部的解碼邏輯676解碼而識別本機代理器605(例如負責已解碼位址空間的本機代理器)。與擇定本機代理器605相聯結的解碼邏輯677進一步解碼SPA 675(或其部分)以產生識別配置給該特定SPA空間的適當MSC快取記憶體控制器612的一記憶體通道位址(MCA)。然後於678,擇定的快取記憶體控制器612對映該記憶體存取請求至一近記憶體位址,於680,接著為選擇性交插操作(容後詳述);或另外,於679,執行選擇性交插操作,接著藉PCM遠記憶體控制器對映681至PCM裝置位址PDA(例如如前述使用位址間接及磨耗管理)。
選擇性交插處理的一個實施例係例示說明於圖6D,顯示軟體頁面如何可使用交插而橫過多個MSC及PCM位址空間分解。於圖6D顯示的實例中,SPA空間內部的兩個頁面682-683係藉快取行交插邏輯685交插而在MCA空間內部產生兩個交插行集合685-686。舉例言之,來自記憶體
頁面682-683的全部奇編號行(例如行1、3、5等)可送至第一MCA空間685,來自記憶體頁面682-683的全部偶編號行(例如行2、5、6等)可送至第二MCA空間686。於一個實施例中,頁面為5千位元組頁面,但本發明之基本原理並非限於任何頁面大小。然後依據位址間接表(AIT)及磨耗管理邏輯操作的PCM控制器687-688重新排列快取行於PCM裝置位址(PDA)記憶體空間內部(如前文說明)。此種本質交插可用來分散工作量橫過MSC 610及/或PCM裝置619(例如作為非一致記憶體位址(NUMA)的替代例)。
本發明之實施例可包括多個步驟,已經說明如前。該等步驟可以機器可讀取指令實施,可用來使得通用或特用處理器執行各步驟。另外,此等步驟可藉含有硬體電路邏輯用以執行該等步驟的特定硬體組件執行,或藉已規劃的電腦組件及客製化硬體組件的任一種組合執行。
如此處所述,指令可指稱硬體的特定組態,諸如特定應用積體電路(ASIC)經組配來執行某些操作,或具有預定功能或軟體指令儲存於具體實施在非過渡電腦可讀取媒體。如此,附圖所示技術可使用在一或多個電子裝置(例如終端機、網路元件等)上儲存的且執行的代碼及資料體現。此等電子裝置使用電腦機器可讀取媒體,諸如非過渡電腦機器可讀取儲存媒體(例如磁碟、光碟、隨機存取記憶體、唯讀記憶體、快閃記憶體裝置、相變記憶體)及過渡電腦機器可讀取儲存媒體(例如電氣、光學、聲學或其它形式的傳播信號,諸如載波、紅外線信號、數位信號等)儲存及
通訊(內部及/或透過網路而與其它電子裝置)代碼及資料。此外,此等電子裝置典型地包括一或多個處理器之集合耦接至一或多個其它組件,諸如儲存裝置(非過渡機器可讀取儲存媒體)、使用者輸出入裝置(例如鍵盤、觸控螢幕及/或顯示器)、及網路連結。處理器集合及其它組件的耦接典型地係透過一或多個匯流排及橋接器(又稱匯流排控制器)。儲存裝置及攜載網路資料流的信號個別地表示一或多個機器可讀取儲存媒體及機器可讀取通訊媒體。如此,一給定電子裝置的儲存裝置典型地儲存代碼及/或資料用以在該電子裝置的一或多個處理器集合上執行。當然,本發明之實施例的一或多個部分可使用軟體、韌體及/或硬體的不同組合體現。本詳細說明部分全文中,為了解說目的,陳述無數特定細節以供徹底瞭解本發明。但熟諳技藝人士顯然易知可無若干此等特定細節而實施本發明。於某些情況下,眾所周知的結構及功能並未以精緻細節描述以免遮掩本發明之主旨。因此,本發明之範圍及精髓須以如下申請專利範圍決定。
100、310‧‧‧處理器
101-104、650、651‧‧‧核心
101a-b~104a-b‧‧‧位準0及位準1內部處理器快取記憶體
101A-105、106-109、313‧‧‧快取記憶體
105‧‧‧低階快取記憶體(LLC)
115、315‧‧‧I/O次系統
116-119‧‧‧系統記憶體區
120‧‧‧內部處理器快取記憶體
121、144、151A‧‧‧近記憶體
122、151B‧‧‧遠記憶體
124‧‧‧記憶體端快取記憶體(MSC)控制器
140‧‧‧記憶體/儲存裝置階層
142‧‧‧非依電性隨機存取記憶體(NVRAM)
150、151‧‧‧快取記憶體位準
150A‧‧‧處理器快取記憶體
150B‧‧‧作為遠記憶體的快取記憶體之近記憶體
152‧‧‧大容量儲存裝置位準
152A-B‧‧‧大容量儲存裝置
153‧‧‧韌體記憶體位準
170、362‧‧‧BIOS快閃記憶體
172‧‧‧BIOS NVRAM
173‧‧‧信賴平台模組(TPM)NVRAM
174‧‧‧系統記憶體、NVRAM
190‧‧‧系統位址空間A
191‧‧‧系統位址空間B
192‧‧‧暫存記憶體
193‧‧‧寫緩衝器
300‧‧‧電腦系統
311‧‧‧整合圖形單元
314、505、652、653‧‧‧本機代理單元、本機代理器
331‧‧‧整合型記憶體控制器(IMC)
332‧‧‧NVRAM控制器
333‧‧‧解碼表
334‧‧‧信賴平台模組(TPM)
335‧‧‧管理引擎(ME)
336‧‧‧範圍暫存器、網路
337‧‧‧非儲存裝置I/O裝置
338‧‧‧I/O配接器
342‧‧‧標籤快取記憶體
372‧‧‧TPM快閃記憶體
380‧‧‧記憶體/儲存裝置次系統
401‧‧‧中央處理單元(CPU)封裝體
403-406‧‧‧DRAM裝置
407‧‧‧高帶寬鏈路
440、442、457‧‧‧DDR通道
450、451、458、464、465、466‧‧‧雙排式記憶體模組(DIMM)
452、411a、463a、464‧‧‧以DDR DRAM為基的DIMM
453、411b、463b‧‧‧以PCM為基的DIMM
454‧‧‧PCI快速匯流排
455‧‧‧駐在PCI快速卡或冒口PCM記憶體裝置
456、467、469‧‧‧PCI快速卡或冒口
460‧‧‧冒口的DDR及PCM控制器
461、463‧‧‧夾層/冒口
461a、518‧‧‧近記憶體
461b‧‧‧遠記憶體
462、468‧‧‧高效互連體
470‧‧‧DDR DIMM通道
471‧‧‧DDR匯流排
501‧‧‧處理器核心
502‧‧‧內部記憶體管理單元(MMU)
503‧‧‧內部CPU快取記憶體、內部快取記憶體、處理器快取記憶體
510‧‧‧記憶體端快取記憶體(MSC)控制器
511‧‧‧標籤快取記憶體
512‧‧‧快取記憶體控制單元、MSC控制器
515‧‧‧近記憶體控制單元、快取記憶體控制單元
519‧‧‧以PCM為基之遠記憶體、PCM DIMM
520‧‧‧位址間接表
521‧‧‧PCM控制器
522‧‧‧標籤
523‧‧‧錯誤校正代碼(ECC)
524‧‧‧資料
525‧‧‧資料儲存裝置、資料
530‧‧‧PCM遠記憶體
530a-i‧‧‧PCM遠記憶體模組
542‧‧‧命令緩衝器追蹤單元
544‧‧‧快取記憶體存取模式檢查單元
545‧‧‧MSC範圍暫存器(RR)單元
546、561‧‧‧資料緩衝器
547‧‧‧預提取資料快取記憶體
548‧‧‧遠記憶體控制介面
550‧‧‧標籤檢查/命令排程器
552‧‧‧錯誤校正代碼(ECC)產生器/檢查器單元
553‧‧‧通道控制器
554‧‧‧整合標籤快取記憶體/ECC單元
554a‧‧‧ECC檢查/產生器單元
555‧‧‧磨耗管理單元
556‧‧‧系統實體位址(SPA)對PCM對映器
557‧‧‧排程器單元
558‧‧‧PCM協定引擎
559‧‧‧持久寫入緩衝器
560‧‧‧刷新支援單元
562‧‧‧錯誤校正代碼(ECC)單元
563‧‧‧位址間接表(AIT)、位址間接邏輯
565‧‧‧PCM描述符表(PDT)
602、603、605、608、609‧‧‧區域
605‧‧‧範圍暫存器(RR)、區域、本機代理器
606‧‧‧MSC控制器
610‧‧‧MSC、PCM控制器
611‧‧‧近記憶體繞道區域
612‧‧‧回寫快取區域、MSC快取記憶體控制器
619‧‧‧PCM裝置
620‧‧‧系統記憶體位址對映圖
621‧‧‧近記憶體位址對映圖
622‧‧‧PCM位址對映圖
654、655、660、661‧‧‧MSC快取記憶體
655‧‧‧範圍暫存器(RR)
656、657、662、663‧‧‧控制器
659、665‧‧‧遠記憶體介面
666‧‧‧共用遠記憶體控制器
667a-d‧‧‧SPA區域
670、671‧‧‧中央處理單元(CPU)
675‧‧‧系統實體位址(SPA)
676、677‧‧‧解碼邏輯
678、681‧‧‧對映
679、680‧‧‧交插
682、683‧‧‧記憶體頁面
685‧‧‧快取行交插邏輯、MCA空間
686‧‧‧MCA空間
687、688‧‧‧PCM控制器
圖1例示說明依據本發明之實施例一種快取及系統記憶體配置;圖2例示說明依據本發明之實施例採用的一種記憶體及儲存裝置階層;圖3例示說明其上可體現本發明之實施例的一種電腦系統;圖4A例示說明依據本發明之實施例一種包括PCM的
第一系統架構;圖4B例示說明依據本發明之實施例一種包括PCM的第二系統架構;圖4C例示說明依據本發明之實施例一種包括PCM的第三系統架構;圖4D例示說明依據本發明之實施例一種包括PCM的第四系統架構;圖4E例示說明依據本發明之實施例一種包括PCM的第五系統架構;圖4F例示說明依據本發明之實施例一種包括PCM的第六系統架構;圖4G例示說明依據本發明之實施例一種包括PCM的第七系統架構;圖4H例示說明依據本發明之實施例一種包括PCM的第八系統架構;圖4I例示說明依據本發明之實施例一種包括PCM的第九系統架構;圖4J例示說明依據本發明之實施例一種包括PCM的第十系統架構;圖4K例示說明依據本發明之實施例一種包括PCM的第十一系統架構;圖4L例示說明依據本發明之實施例一種包括PCM的第十二系統架構;圖4M例示說明依據本發明之實施例一種包括PCM的
第十三系統架構;圖5A例示說明包括一依電性近記憶體及一非依電性遠記憶體的系統架構之一個實施例;圖5B例示說明記憶體端快取記憶體(MSC)的一個實施例;圖5C例示說明記憶體端快取記憶體(MSC)的另一個實施例,其包括一整合型標籤快取記憶體及ECC產生/檢查邏輯;圖5D例示說明標籤快取記憶體及ECC產生/檢查單元實例之一個實施例;圖5E例示說明含括一PCM控制器的一種PCM DIMM之一個實施例;圖6A例示說明依據本發明之實施例一種專用於某些特定系統實體位址(SPA)範圍的MCE控制器及快取記憶體;圖6B例示說明依據本發明之實施例一種系統記憶體對映、近記憶體位址對映與PCM位址對映間之對映實例;圖6C例示說明依據本發明之實施例一種系統實體位址(SPA)與PCM實體裝置位址(PDA)或近記憶體位址(NMA)間之對映實例;及圖6D例示說明依據本發明之實施例一種在系統實體位址(SPA)空間及記憶體通道位址(MCA)空間內部記憶體頁面間的交插。
100‧‧‧處理器
101-104‧‧‧核心
101a-104a、101b-104b‧‧‧位準0及位準1內部處理器快取記憶體
105‧‧‧低階快取記憶體(LLC)
106、107、108、109‧‧‧快取記憶體
116-119‧‧‧系統記憶體
120‧‧‧內部處理器快取記憶體
121‧‧‧近記憶體
122‧‧‧遠記憶體
Claims (35)
- 一種電腦系統,其係包含:一處理器,其具有用以執行指令及處理資料的多個核心,及用以依據一第一快取管理策略而快取指令及資料的一或多個處理器快取記憶體;一第一記憶體通道,包含耦接至該處理器的一第一位址/控制及資料行集合;一第二記憶體通道,包含耦接至該處理器的一第二位址/控制及資料行集合;一第一第一-位準記憶體與一第二第一-位準記憶體,各自具有與其相聯結的一第一特性集合,該第一特性集合包含一第一讀存取速度及一第一寫存取速度,該第一第一-位準記憶體係耦接至該第一記憶體通道,且該第二第一-位準記憶體係耦接至該第二記憶體通道;及通訊式耦接至該第一記憶體通道之一第一第二-位準記憶體,與通訊式耦接至該第二記憶體通道之一第二第二-位準記憶體,該等第一及第二第二-位準記憶體具有與其相聯結的一第二特性集合,該第二特性集合包含一第二讀及寫存取速度,其中之至少一者係分別地相對低於該第一讀存取速度或第一寫存取速度,非依電性使得若電力被移除時該等第一及第二第二-位準記憶體仍維持保有其內容,其中該第一第一-位準記憶體的至少一部分係組配成針對儲存於該第一第二-位準記憶體中之指令及資料的一快取記憶體,且該第二第一-位準記 憶體的至少一部分係組配成針對儲存於該第二第二-位準記憶體中之指令及資料的一快取記憶體。
- 如申請專利範圍第1項之系統,其中該第一特性集合中之一者係包含一第一功耗位準,及該第二特性集合係包含其係比該第一功耗位準相對更低的一第二功耗位準。
- 如申請專利範圍第1項之系統,其中該第一特性集合中之一者係包含一第一密度,及該第二特性集合係包含比該第一密度相對更高的一第二密度。
- 如申請專利範圍第1項之系統,其中該第二特性集合中之一者係包含該等第一及第二第二-位準記憶體係可直接寫入,因而於寫入前不要求既有資料的抹除。
- 如申請專利範圍第1項之系統,其中該等第一及第二第一位準記憶體係包含動態隨機存取記憶體(DRAM),及其中該等一或多個處理器快取記憶體係包含靜態隨機存取記憶體(SRAM)。
- 如申請專利範圍第5項之系統,其中該等第一及第二第二-位準記憶體係包含相變記憶體(PCM)。
- 如申請專利範圍第6項之系統,其中該等PCM記憶體係包含相變記憶體及開關(PCMS)記憶體。
- 如申請專利範圍第1項之系統,其係進一步包含:用於持久性儲存指令及資料的一大容量儲存裝置,該大容量儲存裝置係通過一介面而通訊式地耦接至該等第一及第二第一位準記憶體及該等第一及第二第二-位準記憶體。
- 如申請專利範圍第1項之系統,其中該等第一及第二第一位準記憶體係邏輯上細分為一第一部分及一第二部分,針對依據一第二快取管理策略分別地儲存在該等第一及第二第二-位準記憶體的指令及資料,該第一部分係配置為系統記憶體,及該第二部分係配置為一快取記憶體。
- 如申請專利範圍第1項之系統,其中該第一寫存取速度係比該第二寫存取速度相對更高,但該第一讀存取速度係近似該第二讀存取速度。
- 如申請專利範圍第10項之系統,其中該第一寫存取速度係比該第二寫存取速度高至少一個數量級。
- 如申請專利範圍第1項之系統,其中該第一特性集合係包含一第一讀存取延遲及一第一寫存取延遲,且該第二特性集合係包含一第二讀存取延遲及一第二寫存取延遲,其中之至少一者係分別地比該第一讀存取延遲或第二寫存取延遲相對更高。
- 如申請專利範圍第1項之系統,其中該等第一及第二第二-位準記憶體就每單位大小的製造上係比該等第一及第二第一位準記憶體更便宜。
- 如申請專利範圍第1項之系統,其中該第一快取管理策略係與該第二快取管理策略獨立操作。
- 如申請專利範圍第1項之系統,其中該等第一及第二記憶體通道係包含雙倍資料率(DDR)記憶體通道。
- 如申請專利範圍第15項之系統,其中該等第一及第二第 一-位準記憶體係包含第一及第二雙排式記憶體模組(DIMM),且該等第一及第二第二-位準記憶體係包含第三及第四DIMM,該等第一及第二DIMM係耦接至該第一記憶體通道上的個別插槽,且該等第二及第三DIMM係耦接至該第二記憶體通道上的個別插槽。
- 一種電腦系統,其係包含:一處理器,其具有用以執行指令及處理資料的多個核心,及用以依據一第一快取管理策略而快取指令及資料的一或多個處理器快取記憶體;一第一記憶體通道,包含耦接至該處理器的一位址/控制及資料行集合;一第一位準記憶體,具有與其相聯結的一第一特性集合,該第一特性集合包含一第一讀存取速度及一第一寫存取速度,該第一位準記憶體係通訊式耦接至該第一記憶體通道;及通訊式耦接至該第一記憶體通道之一第二位準記憶體,該第二位準記憶體具有與其相聯結的一第二特性集合,該第二特性集合包含一第二讀及寫存取速度,其中之至少一者係分別地相對低於該第一讀存取速度或第一寫存取速度,非依電性使得若電力被移除時該第二位準記憶體仍維持保有其內容,隨機存取及位元組定址能力使得儲存於其中的指令或資料以等於由該系統之一記憶體次系統所使用的粒度(granularity)可被隨機存取。
- 如申請專利範圍第17項之系統,其中該第一位準記憶體的至少一部分係經組配成針對儲存在該第二位準記憶體中的指令及資料之一快取記憶體。
- 如申請專利範圍第17項之系統,其中該第一特性集合中之一者係包含一第一功耗位準,及該第二特性集合係包含其係比該第一功耗位準相對更低的一第二功耗位準。
- 如申請專利範圍第17項之系統,其中該第一特性集合中之一者係包含一第一密度,及該第二特性集合係包含比該第一密度相對更高的一第二密度。
- 如申請專利範圍第17項之系統,其中該第二特性集合中之一者係包含該第二位準記憶體係可直接寫入,因而於寫入前不要求既有資料的抹除。
- 如申請專利範圍第17項之系統,其中該第一位準記憶體係包含一動態隨機存取記憶體(DRAM),及其中該等一或多個處理器快取記憶體係包含靜態隨機存取記憶體(SRAM)。
- 如申請專利範圍第22項之系統,其中該第二位準記憶體係包含一相變記憶體(PCM)。
- 如申請專利範圍第23項之系統,其中該PCM記憶體係包含一相變記憶體及開關(PCMS)。
- 如申請專利範圍第17項之系統,其係進一步包含:用於持久性儲存指令及資料的一大容量儲存裝置,該大容量儲存裝置係通過一介面而通訊式地耦接至該第一位準記憶體及該第二位準記憶體。
- 如申請專利範圍第17項之系統,其中該第一位準記憶體係邏輯上細分為一第一部分及一第二部分,針對依據一第二快取管理策略儲存在該第二位準記憶體的指令及資料,該第一部分係配置為系統記憶體,及該第二部分係配置為一快取記憶體。
- 如申請專利範圍第17項之系統,其中該第一寫存取速度係比該第二寫存取速度相對更高,但該第一讀存取速度係近似該第二讀存取速度。
- 如申請專利範圍第27項之系統,其中該第一寫存取速度係比該第二寫存取速度高至少一個數量級。
- 如申請專利範圍第17項之系統,其中該第一特性集合係包含一第一讀存取延遲及一第一寫存取延遲,且該第二特性集合係包含一第二讀存取延遲及一第二寫存取延遲,其中之至少一者係分別地比該第一讀存取延遲或第二寫存取延遲相對更高。
- 如申請專利範圍第17項之系統,其中該第二位準記憶體就每單位大小的製造上係比該第一位準記憶體更便宜。
- 如申請專利範圍第17項之系統,其中該第一快取管理策略係與該第二快取管理策略獨立操作。
- 如申請專利範圍第17項之系統,其中該記憶體通道係包含一雙倍資料率(DDR)記憶體通道。
- 如申請專利範圍第32項之系統,其中該第一位準記憶體係包含一第一雙排式記憶體模組(DIMM),且該第二位準記憶體係包含一第二DIMM,該第一DIMM及該第二 DIMM係耦接至該第一記憶體通道上的個別插槽。
- 如申請專利範圍第17項之系統,其係進一步包含:一第二記憶體通道,包含耦接至該處理器之位址/控制及資料行的一第二集合;具有相同第一特性集合與其相聯結的一第二第一-位準記憶體,及具有相同第二特性集合與其相聯結的一第二第二-位準記憶體,該第一-位準記憶體及第二-位準記憶體係通訊式耦接至該第二記憶體通道。
- 如申請專利範圍第34項之系統,其中耦接至該第一記憶體通道的該第一-位準記憶體的至少一部分係組配成針對儲存於耦接至該第一記憶體通道的該第二-位準記憶體的指令及資料之一快取記憶體,及其中耦接至該第二記憶體通道的該第二第一-位準記憶體的至少一部分係組配成針對儲存於耦接至該第二記憶體通道的該第二第二-位準記憶體的指令及資料之一快取記憶體。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2011/054436 WO2013048500A1 (en) | 2011-09-30 | 2011-09-30 | Apparatus and method for implementing a multi-level memory hierarchy over common memory channels |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201329857A true TW201329857A (zh) | 2013-07-16 |
| TWI594182B TWI594182B (zh) | 2017-08-01 |
Family
ID=47996231
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW101131847A TWI594182B (zh) | 2011-09-30 | 2012-08-31 | 用於在共用記憶體通道上實施多位準記憶體階層之裝置及方法 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US9317429B2 (zh) |
| EP (1) | EP2761480A4 (zh) |
| CN (1) | CN103946826B (zh) |
| TW (1) | TWI594182B (zh) |
| WO (1) | WO2013048500A1 (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI587141B (zh) * | 2015-09-17 | 2017-06-11 | 慧榮科技股份有限公司 | 記憶裝置及資料讀取方法 |
| US10275187B2 (en) | 2015-09-17 | 2019-04-30 | Silicon Motion, Inc. | Memory device and data read method thereof |
Families Citing this family (124)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5520747B2 (ja) * | 2010-08-25 | 2014-06-11 | 株式会社日立製作所 | キャッシュを搭載した情報装置及びコンピュータ読み取り可能な記憶媒体 |
| EP2761472B1 (en) | 2011-09-30 | 2020-04-01 | Intel Corporation | Memory channel that supports near memory and far memory access |
| WO2013089685A1 (en) | 2011-12-13 | 2013-06-20 | Intel Corporation | Enhanced system sleep state support in servers using non-volatile random access memory |
| WO2013095465A1 (en) | 2011-12-21 | 2013-06-27 | Intel Corporation | High-performance storage structures and systems featuring multiple non-volatile memories |
| US20130166865A1 (en) * | 2011-12-22 | 2013-06-27 | Alex Lemberg | Systems and Methods for Managing Parallel Access to Multiple Storage Systems |
| CN104115132B (zh) | 2011-12-22 | 2018-02-06 | 英特尔公司 | 借助于存储器通道关闭的功率节约 |
| US9396118B2 (en) | 2011-12-28 | 2016-07-19 | Intel Corporation | Efficient dynamic randomizing address remapping for PCM caching to improve endurance and anti-attack |
| CN104126181A (zh) * | 2011-12-30 | 2014-10-29 | 英特尔公司 | 作为随机存取存储器的非易失性半导体存储装置的系统存取的薄变换 |
| US9418700B2 (en) | 2012-06-29 | 2016-08-16 | Intel Corporation | Bad block management mechanism |
| US20140101370A1 (en) * | 2012-10-08 | 2014-04-10 | HGST Netherlands B.V. | Apparatus and method for low power low latency high capacity storage class memory |
| CN104704569B (zh) * | 2012-12-19 | 2017-11-14 | 慧与发展有限责任合伙企业 | Nvram路径选择 |
| 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 |
| 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 |
| US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
| CN103970219B (zh) * | 2013-01-30 | 2018-03-20 | 鸿富锦精密电子(天津)有限公司 | 存储设备及支持所述存储设备的主板 |
| US9135184B2 (en) * | 2013-12-12 | 2015-09-15 | International Business Machines Corporation | Load-through fault mechanism |
| US9032099B1 (en) * | 2013-12-12 | 2015-05-12 | Intel Corporation | Writeback mechanisms for improving far memory utilization in multi-level memory architectures |
| US20160343455A1 (en) * | 2014-01-31 | 2016-11-24 | Hewlett Packard Enterprise Development Lp | Remapping memory locations in a memory array |
| WO2015116188A1 (en) | 2014-01-31 | 2015-08-06 | Hewlett-Packard Development Company, L.P. | Non-volatile memory with multiple latency tiers |
| GB2524063B (en) | 2014-03-13 | 2020-07-01 | Advanced Risc Mach Ltd | Data processing apparatus for executing an access instruction for N threads |
| JP6093322B2 (ja) * | 2014-03-18 | 2017-03-08 | 株式会社東芝 | キャッシュメモリおよびプロセッサシステム |
| US10002043B2 (en) | 2014-08-19 | 2018-06-19 | Samsung Electronics Co., Ltd. | Memory devices and modules |
| US10002044B2 (en) | 2014-08-19 | 2018-06-19 | Samsung Electronics Co., Ltd. | Memory devices and modules |
| US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
| US11232855B2 (en) * | 2014-09-23 | 2022-01-25 | Airstrip Ip Holdings, Llc | Near-real-time transmission of serial patient data to third-party systems |
| US10126950B2 (en) * | 2014-12-22 | 2018-11-13 | Intel Corporation | Allocating and configuring persistent memory |
| JP2016167215A (ja) | 2015-03-10 | 2016-09-15 | 株式会社東芝 | メモリ装置 |
| US10204047B2 (en) * | 2015-03-27 | 2019-02-12 | Intel Corporation | Memory controller for multi-level system memory with coherency unit |
| US10115446B1 (en) | 2015-04-21 | 2018-10-30 | Spin Transfer Technologies, Inc. | Spin transfer torque MRAM device with error buffer |
| 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 |
| US9916091B2 (en) | 2015-07-13 | 2018-03-13 | Samsung Electronics Co., Ltd. | Memory system architecture |
| US10163479B2 (en) | 2015-08-14 | 2018-12-25 | Spin Transfer Technologies, Inc. | Method and apparatus for bipolar memory write-verify |
| 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 |
| 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 |
| US10185501B2 (en) | 2015-09-25 | 2019-01-22 | Intel Corporation | Method and apparatus for pinning memory pages in a multi-level system memory |
| US10031674B2 (en) * | 2015-10-07 | 2018-07-24 | Samsung Electronics Co., Ltd. | DIMM SSD addressing performance techniques |
| US10445003B2 (en) | 2015-10-15 | 2019-10-15 | SK Hynix Inc. | Memory system for dualizing first memory based on operation mode |
| US10180796B2 (en) | 2015-10-16 | 2019-01-15 | SK Hynix Inc. | Memory system |
| US10169242B2 (en) | 2015-10-16 | 2019-01-01 | SK Hynix Inc. | Heterogeneous package in DIMM |
| US10466909B2 (en) | 2015-10-16 | 2019-11-05 | SK Hynix Inc. | Memory system |
| 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 |
| 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 |
| US10191664B2 (en) | 2015-10-16 | 2019-01-29 | 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 |
| 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 |
| 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 |
| US10033411B2 (en) | 2015-11-20 | 2018-07-24 | Intel Corporation | Adjustable error protection for stored data |
| US10303372B2 (en) | 2015-12-01 | 2019-05-28 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and operation method thereof |
| US9747049B2 (en) * | 2015-12-03 | 2017-08-29 | Huawei Technologies Co., Ltd. | Computer memory management method and system |
| 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 |
| 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 |
| US10558570B2 (en) * | 2016-03-14 | 2020-02-11 | Intel Corporation | Concurrent accesses of asymmetrical memory sources |
| US10866897B2 (en) * | 2016-09-26 | 2020-12-15 | Samsung Electronics Co., Ltd. | Byte-addressable flash-based memory module with prefetch mode that is adjusted based on feedback from prefetch accuracy that is calculated by comparing first decoded address and second decoded address, where the first decoded address is sent to memory controller, and the second decoded address is sent to prefetch buffer |
| US20180088853A1 (en) * | 2016-09-26 | 2018-03-29 | Intel Corporation | Multi-Level System Memory Having Near Memory Space Capable Of Behaving As Near Memory Cache or Fast Addressable System Memory Depending On System State |
| US10446210B2 (en) | 2016-09-27 | 2019-10-15 | Spin Memory, Inc. | Memory instruction pipeline with a pre-read stage for a write operation for reducing power consumption in a memory device that uses dynamic redundancy registers |
| US10437723B2 (en) | 2016-09-27 | 2019-10-08 | Spin Memory, Inc. | Method of flushing the contents of a dynamic redundancy register to a secure storage area during a power down in a memory device |
| US10192601B2 (en) | 2016-09-27 | 2019-01-29 | Spin Transfer Technologies, Inc. | Memory instruction pipeline with an additional write stage in a memory device that uses dynamic redundancy registers |
| US10366774B2 (en) | 2016-09-27 | 2019-07-30 | Spin Memory, Inc. | Device with dynamic redundancy registers |
| US10360964B2 (en) | 2016-09-27 | 2019-07-23 | Spin Memory, Inc. | Method of writing contents in memory during a power up sequence using a dynamic redundancy register in a memory device |
| US10818331B2 (en) | 2016-09-27 | 2020-10-27 | Spin Memory, Inc. | Multi-chip module for MRAM devices with levels of dynamic redundancy registers |
| US10546625B2 (en) | 2016-09-27 | 2020-01-28 | Spin Memory, Inc. | Method of optimizing write voltage based on error buffer occupancy |
| US10437491B2 (en) | 2016-09-27 | 2019-10-08 | Spin Memory, Inc. | Method of processing incomplete memory operations in a memory device during a power up sequence and a power down sequence using a dynamic redundancy register |
| US10628316B2 (en) * | 2016-09-27 | 2020-04-21 | Spin Memory, Inc. | Memory device with a plurality of memory banks where each memory bank is associated with a corresponding memory instruction pipeline and a dynamic redundancy register |
| US10460781B2 (en) | 2016-09-27 | 2019-10-29 | Spin Memory, Inc. | Memory device with a dual Y-multiplexer structure for performing two simultaneous operations on the same row of a memory bank |
| US10192602B2 (en) | 2016-09-27 | 2019-01-29 | Spin Transfer Technologies, Inc. | Smart cache design to prevent overflow for a memory device with a dynamic redundancy register |
| US10229065B2 (en) * | 2016-12-31 | 2019-03-12 | Intel Corporation | Unified hardware and software two-level memory |
| US10628343B2 (en) | 2017-02-03 | 2020-04-21 | Futurewei Technologies, Inc. | Systems and methods for utilizing DDR4-DRAM chips in hybrid DDR5-DIMMs and for cascading DDR5-DIMMs |
| CN108733311B (zh) * | 2017-04-17 | 2021-09-10 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和设备 |
| CN107291392A (zh) * | 2017-06-21 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种固态硬盘及其读写方法 |
| US10437482B2 (en) | 2017-07-25 | 2019-10-08 | Samsung Electronics Co., Ltd. | Coordinated near-far memory controller for process-in-HBM |
| US10747463B2 (en) * | 2017-08-04 | 2020-08-18 | Micron Technology, Inc. | Apparatuses and methods for accessing hybrid memory system |
| US11188467B2 (en) | 2017-09-28 | 2021-11-30 | Intel Corporation | Multi-level system memory with near memory capable of storing compressed cache lines |
| US11455261B2 (en) * | 2017-09-29 | 2022-09-27 | Intel Corporation | First boot with one memory channel |
| US10529439B2 (en) | 2017-10-24 | 2020-01-07 | Spin Memory, Inc. | On-the-fly bit failure detection and bit redundancy remapping techniques to correct for fixed bit defects |
| US10489245B2 (en) | 2017-10-24 | 2019-11-26 | Spin Memory, Inc. | Forcing stuck bits, waterfall bits, shunt bits and low TMR bits to short during testing and using on-the-fly bit failure detection and bit redundancy remapping techniques to correct them |
| US10656994B2 (en) | 2017-10-24 | 2020-05-19 | Spin Memory, Inc. | Over-voltage write operation of tunnel magnet-resistance (“TMR”) memory device and correcting failure bits therefrom by using on-the-fly bit failure detection and bit redundancy remapping techniques |
| US10481976B2 (en) | 2017-10-24 | 2019-11-19 | Spin Memory, Inc. | Forcing bits as bad to widen the window between the distributions of acceptable high and low resistive bits thereby lowering the margin and increasing the speed of the sense amplifiers |
| KR102406669B1 (ko) | 2017-11-08 | 2022-06-08 | 삼성전자주식회사 | 메모리 컨트롤러 및 이를 포함하는 스토리지 장치 |
| US10860244B2 (en) | 2017-12-26 | 2020-12-08 | Intel Corporation | Method and apparatus for multi-level memory early page demotion |
| US10891997B2 (en) | 2017-12-28 | 2021-01-12 | Spin Memory, Inc. | Memory array with horizontal source line and a virtual source line |
| US10424726B2 (en) | 2017-12-28 | 2019-09-24 | Spin Memory, Inc. | Process for improving photoresist pillar adhesion during MRAM fabrication |
| US10395711B2 (en) | 2017-12-28 | 2019-08-27 | Spin Memory, Inc. | Perpendicular source and bit lines for an MRAM array |
| US10360962B1 (en) | 2017-12-28 | 2019-07-23 | Spin Memory, Inc. | Memory array with individually trimmable sense amplifiers |
| US10395712B2 (en) | 2017-12-28 | 2019-08-27 | Spin Memory, Inc. | Memory array with horizontal source line and sacrificial bitline per virtual source |
| US10811594B2 (en) | 2017-12-28 | 2020-10-20 | Spin Memory, Inc. | Process for hard mask development for MRAM pillar formation using photolithography |
| US10840439B2 (en) | 2017-12-29 | 2020-11-17 | Spin Memory, Inc. | Magnetic tunnel junction (MTJ) fabrication methods and systems |
| US10546624B2 (en) | 2017-12-29 | 2020-01-28 | Spin Memory, Inc. | Multi-port random access memory |
| US10367139B2 (en) | 2017-12-29 | 2019-07-30 | Spin Memory, Inc. | Methods of manufacturing magnetic tunnel junction devices |
| US10840436B2 (en) | 2017-12-29 | 2020-11-17 | Spin Memory, Inc. | Perpendicular magnetic anisotropy interface tunnel junction devices and methods of manufacture |
| US10886330B2 (en) | 2017-12-29 | 2021-01-05 | Spin Memory, Inc. | Memory device having overlapping magnetic tunnel junctions in compliance with a reference pitch |
| US10784439B2 (en) | 2017-12-29 | 2020-09-22 | Spin Memory, Inc. | Precessional spin current magnetic tunnel junction devices and methods of manufacture |
| US10424723B2 (en) | 2017-12-29 | 2019-09-24 | Spin Memory, Inc. | Magnetic tunnel junction devices including an optimization layer |
| US10438995B2 (en) | 2018-01-08 | 2019-10-08 | Spin Memory, Inc. | Devices including magnetic tunnel junctions integrated with selectors |
| US10438996B2 (en) | 2018-01-08 | 2019-10-08 | Spin Memory, Inc. | Methods of fabricating magnetic tunnel junctions integrated with selectors |
| US10446744B2 (en) | 2018-03-08 | 2019-10-15 | Spin Memory, Inc. | Magnetic tunnel junction wafer adaptor used in magnetic annealing furnace and method of using the same |
| US20190296223A1 (en) | 2018-03-23 | 2019-09-26 | Spin Memory, Inc. | Methods of Manufacturing Three-Dimensional Arrays with Magnetic Tunnel Junction Devices Including an Annular Free Magnetic Layer and a Planar Reference Magnetic Layer |
| US11107978B2 (en) | 2018-03-23 | 2021-08-31 | Spin Memory, Inc. | Methods of manufacturing three-dimensional arrays with MTJ devices including a free magnetic trench layer and a planar reference magnetic layer |
| US11107974B2 (en) | 2018-03-23 | 2021-08-31 | Spin Memory, Inc. | Magnetic tunnel junction devices including a free magnetic trench layer and a planar reference magnetic layer |
| US10784437B2 (en) | 2018-03-23 | 2020-09-22 | Spin Memory, Inc. | Three-dimensional arrays with MTJ devices including a free magnetic trench layer and a planar reference magnetic layer |
| 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 |
| US11163707B2 (en) | 2018-04-23 | 2021-11-02 | International Business Machines Corporation | Virtualization in hierarchical cortical emulation frameworks |
| US10411185B1 (en) | 2018-05-30 | 2019-09-10 | Spin Memory, Inc. | Process for creating a high density magnetic tunnel junction array test platform |
| US10559338B2 (en) | 2018-07-06 | 2020-02-11 | Spin Memory, Inc. | Multi-bit cell read-out techniques |
| US10600478B2 (en) | 2018-07-06 | 2020-03-24 | Spin Memory, Inc. | Multi-bit cell read-out techniques for MRAM cells with mixed pinned magnetization orientations |
| US10593396B2 (en) | 2018-07-06 | 2020-03-17 | Spin Memory, Inc. | Multi-bit cell read-out techniques for MRAM cells with mixed pinned magnetization orientations |
| US10692569B2 (en) | 2018-07-06 | 2020-06-23 | Spin Memory, Inc. | Read-out techniques for multi-bit cells |
| US10650875B2 (en) | 2018-08-21 | 2020-05-12 | Spin Memory, Inc. | System for a wide temperature range nonvolatile memory |
| US10699761B2 (en) | 2018-09-18 | 2020-06-30 | Spin Memory, Inc. | Word line decoder memory architecture |
| US10971680B2 (en) | 2018-10-01 | 2021-04-06 | Spin Memory, Inc. | Multi terminal device stack formation methods |
| US11621293B2 (en) | 2018-10-01 | 2023-04-04 | Integrated Silicon Solution, (Cayman) Inc. | Multi terminal device stack systems and methods |
| US11107979B2 (en) | 2018-12-28 | 2021-08-31 | Spin Memory, Inc. | Patterned silicide structures and methods of manufacture |
| US11055228B2 (en) | 2019-01-31 | 2021-07-06 | Intel Corporation | Caching bypass mechanism for a multi-level memory |
| US11043246B2 (en) | 2019-04-18 | 2021-06-22 | Samsung Electronics Co, Ltd. | Memory modules including a mirroring circuit and methods of operating the same |
| US11893276B2 (en) | 2020-05-21 | 2024-02-06 | Micron Technology, Inc. | Apparatuses and methods for data management in a memory device |
| US11687468B2 (en) | 2020-07-02 | 2023-06-27 | International Business Machines Corporation | Method and apparatus for securing memory modules |
| US11899590B2 (en) | 2021-06-18 | 2024-02-13 | Seagate Technology Llc | Intelligent cache with read destructive memory cells |
| US20230091974A1 (en) * | 2021-09-23 | 2023-03-23 | Intel Corporation | Techniques associated with mapping system memory physical addresses to proximity domains |
| US11860670B2 (en) | 2021-12-16 | 2024-01-02 | Intel Corporation | Accessing a memory using index offset information |
| CN116483288A (zh) * | 2023-06-21 | 2023-07-25 | 苏州浪潮智能科技有限公司 | 内存控制设备、方法、装置以及服务器内存模组 |
Family Cites Families (88)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4713755A (en) | 1985-06-28 | 1987-12-15 | Hewlett-Packard Company | Cache memory consistency control with explicit software instructions |
| US5974576A (en) | 1996-05-10 | 1999-10-26 | Sun Microsystems, Inc. | On-line memory monitoring system and methods |
| JP3210590B2 (ja) | 1996-11-29 | 2001-09-17 | 株式会社日立製作所 | マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法 |
| US5917743A (en) | 1997-10-17 | 1999-06-29 | Waferscale Integration, Inc. | Content-addressable memory (CAM) for a FLASH memory array |
| US6202129B1 (en) | 1998-03-31 | 2001-03-13 | Intel Corporation | Shared cache structure for temporal and non-temporal information using indicative bits |
| JP3098486B2 (ja) | 1998-03-31 | 2000-10-16 | 山形日本電気株式会社 | 不揮発性半導体記憶装置 |
| US6038166A (en) | 1998-04-01 | 2000-03-14 | Invox Technology | High resolution multi-bit-per-cell memory |
| US5912839A (en) | 1998-06-23 | 1999-06-15 | Energy Conversion Devices, Inc. | Universal memory element and method of programming same |
| 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 |
| 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 |
| 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 |
| 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 |
| EP1387274A3 (en) | 2002-07-31 | 2004-08-11 | Texas Instruments Incorporated | Memory management for local variables |
| EP1453062B1 (en) | 2003-02-27 | 2006-06-28 | STMicroelectronics S.r.l. | Built-in testing methodology in flash memory |
| 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 |
| US7590918B2 (en) | 2004-09-10 | 2009-09-15 | Ovonyx, Inc. | Using a phase change memory as a high volume memory |
| US20070005922A1 (en) | 2005-06-30 | 2007-01-04 | Swaminathan Muthukumar P | Fully buffered DIMM variable read latency |
| US7600078B1 (en) | 2006-03-29 | 2009-10-06 | Intel Corporation | Speculatively performing read transactions |
| US7913147B2 (en) | 2006-05-08 | 2011-03-22 | Intel Corporation | Method and apparatus for scrubbing memory |
| CN101496110B (zh) | 2006-05-12 | 2013-02-13 | 苹果公司 | 存储设备中的失真估计和消除 |
| US7756053B2 (en) | 2006-06-30 | 2010-07-13 | Intel Corporation | Memory agent with error hardware |
| 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 |
| WO2008040028A2 (en) * | 2006-09-28 | 2008-04-03 | Virident Systems, Inc. | Systems, methods, 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 |
| US8683139B2 (en) | 2006-10-31 | 2014-03-25 | Hewlett-Packard Development Company, L.P. | Cache and method for cache bypass functionality |
| US7774556B2 (en) | 2006-11-04 | 2010-08-10 | Virident Systems Inc. | Asymmetric memory migration in hybrid main memory |
| US7554855B2 (en) * | 2006-12-20 | 2009-06-30 | Mosaid Technologies Incorporated | Hybrid solid-state memory system having volatile and non-volatile memory |
| 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 |
| US20080270811A1 (en) | 2007-04-26 | 2008-10-30 | Super Talent Electronics Inc. | Fast Suspend-Resume of Computer Motherboard Using Phase-Change Memory |
| US8429493B2 (en) | 2007-05-12 | 2013-04-23 | Apple Inc. | Memory device with internal signap 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 |
| 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 |
| KR101498673B1 (ko) | 2007-08-14 | 2015-03-09 | 삼성전자주식회사 | 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템 |
| 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 |
| TWI373768B (en) | 2008-02-05 | 2012-10-01 | Phison Electronics Corp | System, controller and method for data storage |
| EP2128195A1 (en) | 2008-05-27 | 2009-12-02 | Borealis AG | Strippable semiconductive composition comprising low melt temperature polyolefin |
| US20090313416A1 (en) | 2008-06-16 | 2009-12-17 | George Wayne Nation | Computer main memory incorporating volatile and non-volatile memory |
| US9575889B2 (en) | 2008-07-03 | 2017-02-21 | Hewlett Packard Enterprise Development Lp | Memory server |
| 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 | 주식회사 하이닉스반도체 | 상변화 메모리 장치 |
| 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 |
| US9208084B2 (en) * | 2009-06-29 | 2015-12-08 | Oracle America, Inc. | Extended main memory hierarchy having flash memory for page fault handling |
| 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 |
| KR20120068765A (ko) | 2009-07-17 | 2012-06-27 | 가부시끼가이샤 도시바 | 메모리 관리 장치 |
| US8077515B2 (en) | 2009-08-25 | 2011-12-13 | Micron Technology, Inc. | Methods, devices, and systems for dealing with threshold voltage change in memory devices |
| 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 |
| 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 |
| 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 | 삼성전자주식회사 | 위치정보의 정확도 확인방법 및 장치 |
| 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 |
| CN101989183A (zh) * | 2010-10-15 | 2011-03-23 | 浙江大学 | 混合主存储器实现节能存储的方法 |
| US8612676B2 (en) | 2010-12-22 | 2013-12-17 | Intel Corporation | Two-level system main memory |
| US20120221785A1 (en) | 2011-02-28 | 2012-08-30 | Jaewoong Chung | Polymorphic Stacked DRAM Memory Architecture |
| 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 |
| 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 | 中兴通讯股份有限公司 | 一种内容调度的方法、装置和系统 |
| US8605531B2 (en) | 2011-06-20 | 2013-12-10 | Intel Corporation | Fast verify for phase change memory with switch |
| 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 |
| WO2013048470A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Statistical wear leveling for non-volatile system memory |
| 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 |
-
2011
- 2011-09-30 EP EP11873434.2A patent/EP2761480A4/en not_active Withdrawn
- 2011-09-30 CN CN201180075093.9A patent/CN103946826B/zh not_active Expired - Fee Related
- 2011-09-30 WO PCT/US2011/054436 patent/WO2013048500A1/en not_active Ceased
- 2011-09-30 US US13/994,729 patent/US9317429B2/en active Active
-
2012
- 2012-08-31 TW TW101131847A patent/TWI594182B/zh not_active IP Right Cessation
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI587141B (zh) * | 2015-09-17 | 2017-06-11 | 慧榮科技股份有限公司 | 記憶裝置及資料讀取方法 |
| US10275187B2 (en) | 2015-09-17 | 2019-04-30 | Silicon Motion, Inc. | Memory device and data read method thereof |
| TWI662413B (zh) * | 2015-09-17 | 2019-06-11 | 慧榮科技股份有限公司 | 記憶裝置及資料讀取方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP2761480A4 (en) | 2015-06-24 |
| EP2761480A1 (en) | 2014-08-06 |
| TWI594182B (zh) | 2017-08-01 |
| US20130275682A1 (en) | 2013-10-17 |
| CN103946826A (zh) | 2014-07-23 |
| US9317429B2 (en) | 2016-04-19 |
| CN103946826B (zh) | 2019-05-31 |
| WO2013048500A1 (en) | 2013-04-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI594182B (zh) | 用於在共用記憶體通道上實施多位準記憶體階層之裝置及方法 | |
| US10719443B2 (en) | Apparatus and method for implementing a multi-level memory hierarchy | |
| US11132298B2 (en) | Apparatus and method for implementing a multi-level memory hierarchy having different operating modes | |
| CN104115129B (zh) | 用于从处理器到存储器子系统智能刷新数据的系统和方法 | |
| CN103999161B (zh) | 用于相变存储器漂移管理的设备和方法 | |
| TWI489276B (zh) | 於第二階記憶體階層中記憶體側快取的動態部份斷電之系統與方法 | |
| TW201329994A (zh) | 支援近記憶體及遠記憶體存取的記憶體通道 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |