TWI537725B - 混合式記憶體裝置 - Google Patents
混合式記憶體裝置 Download PDFInfo
- Publication number
- TWI537725B TWI537725B TW103119398A TW103119398A TWI537725B TW I537725 B TWI537725 B TW I537725B TW 103119398 A TW103119398 A TW 103119398A TW 103119398 A TW103119398 A TW 103119398A TW I537725 B TWI537725 B TW I537725B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- page
- electrical
- buffer
- data
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C14/00—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
- G11C14/0009—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0851—Cache with interleaved addressing
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/311—In host system
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
- Dram (AREA)
Description
本揭示案大體而言係關於電子裝置領域。更具體而言,本發明之一些實施例大體而言係關於混合式記憶體裝置。
系統架構(例如,多核心處理)之持續發展及應用程式之發展需要記憶體系統之對應發展。高容量記憶體隨著處理器系統中核心之數目、需要顯著較高的記憶體容量之應用程式(例如,記憶體內資料庫及虛擬化伺服器)之數目的增加而變得日益重要。縮放現有記憶體系統(例如,雙倍資料速率雙行記憶體模組(DDR DIMM))之能力由於包括成本、功率消耗、密度及效能之若干因素而受限制。典型的大型記憶體平台可含有多達16個DIMM或更多。此引起組件置放、冷卻及信號路由之挑戰,該組件置放、冷卻及信號路由全部增加此等系統之成本。
除容量之外,持續記憶體在某些應用程式中日益有用。典型的實例為記憶體內資料庫,其中建立記憶體影
像之時間隨著資料庫大小增長而可為相當大的。越過功率循環維持記憶體內容之能力可減少啟動時間且消除對冗餘的現用伺服器或備用伺服器之需求。
因此,混合式記憶體裝置可尋得實用性。
依據本發明之一實施例,係特地提出一種記憶體裝置,其包含:一依電性記憶體;一非依電性記憶體;以及一控制器,該控制器包含:一記憶體緩衝器;以及邏輯,其用以回應於來自一應用程式之請求而經由該記憶體緩衝器在該非依電性記憶體與該依電性記憶體之間傳送資料,其中該記憶體緩衝器中之資料為該應用程式可存取的。
100‧‧‧電子裝置
106‧‧‧核心
108‧‧‧快取記憶體
120‧‧‧系統硬體
122‧‧‧處理器/記憶體控制器
123‧‧‧匯流排結構
124‧‧‧圖形處理器
125‧‧‧記憶體系統/邏輯
126‧‧‧網路介面
127‧‧‧輸入/輸出介面/I/O介面
130‧‧‧記憶體
150‧‧‧檔案系統/依電性記憶體
152‧‧‧處理控制子系統
154‧‧‧硬體介面模組
160‧‧‧應用程式
162‧‧‧記憶體驅動器/驅動器
200‧‧‧中央處理單元(CPU)封包
210‧‧‧CPU
220‧‧‧控制集線器
222‧‧‧記憶體控制器
224‧‧‧記憶體介面
230‧‧‧區域記憶體
235‧‧‧通訊匯流排/通訊通道/匯流排
240‧‧‧遠端記憶體裝置/記憶體裝置
242‧‧‧控制器
244‧‧‧控制暫存器
246‧‧‧記憶體緩衝器/緩衝器
248‧‧‧多工器
250‧‧‧非依電性記憶體
260‧‧‧依電性記憶體
270‧‧‧雙行記憶體模組/DIMM
274‧‧‧第一階級
276‧‧‧第二階級
278‧‧‧多個DRAM模組
280‧‧‧電力儲存體
410~490、510~565‧‧‧操作
600‧‧‧計算系統/系統
603‧‧‧電腦網路
604‧‧‧互連網路/匯流排
606‧‧‧晶片組
608‧‧‧記憶體控制集線器/MCH
610‧‧‧記憶體控制器
614‧‧‧圖形介面
616‧‧‧顯示器裝置/顯示器/圖形加速器
630‧‧‧網路介面裝置
700‧‧‧計算系統/系統
704‧‧‧匯流排/互連件
706、706-1~706-M‧‧‧處理器核心
708‧‧‧共享快取記憶體/快取記憶體
710‧‧‧路由器
714‧‧‧記憶體/匯流排單元
716-1‧‧‧1階(L1)快取記憶體
804‧‧‧解碼單元
806‧‧‧排程單元
808‧‧‧執行單元
810‧‧‧引退單元
816‧‧‧暫存器
930‧‧‧圖形處理器單元(GPU)核心
940‧‧‧輸入/輸出(I/O)介面
960‧‧‧記憶體
970‧‧‧I/O裝置
1000‧‧‧計算系統/系統
1002、1004‧‧‧處理器
1003‧‧‧電腦網路
1006、1008‧‧‧記憶體控制器集線器/MCH
1010‧‧‧記憶體
1014‧‧‧點對點(PtP)介面
1016、1018、1037、1041‧‧‧PtP介面電路
1030‧‧‧點對點介面電路
1034‧‧‧高效能圖形電路
1036‧‧‧高效能圖形介面
1040、1044‧‧‧匯流排
1043‧‧‧I/O裝置/匯流排橋接器
1045‧‧‧鍵盤/滑鼠
1046‧‧‧通訊裝置
1048‧‧‧資料儲存器裝置
1049‧‧‧碼
參照附圖來提供詳細描述。在諸圖中,元件符號最左側數位識別元件符號首次出現之圖。相同元件符號在不同圖中之使用指示相似或相同的項目。
圖1為根據本文所論述之各種實施例之用以實施混合式記憶體裝置之設備之組件的示意性方塊圖圖解。
圖2A為根據本文所論述之各種實施例之可實施混合式記憶體裝置的示範性架構的示意性方塊圖。
圖2B為根據本文所論述之各種實施例之依電性記憶體的示意性圖解。
圖3為根據本文所論述之各種實施例之記憶體映射的示意性圖解。
圖4至圖5為例示出根據本文所論述之各種實施例之用以實施混合式記憶體裝置的方法中之操作的流程圖。
圖6至圖10為根據本文所論述之各種實施例之可經調適來實施混合式記憶體裝置之電子裝置的示意性方塊圖圖解。
可使用區域快速存取記憶體及一或多個遠端記憶體裝置來實施一些記憶體系統,該區域快速存取記憶體通常體現為依電性記憶體且可充當快取記憶體,該一或多個遠端記憶體裝置可包含非依電性記憶體,例如磁記憶體或光記憶體。藉由實例之方式,遠端記憶體裝置可包含一或多個雙行記憶體模組(DIMM),該一或多個雙行記憶體模組中每一者皆可包含一或多個記憶體階級,該一或多個記憶體階級又可包含一或多個動態隨機存取記憶體(DRAM)晶片或可包括非依電性記憶體,例如,三維交叉點記憶體、快閃記憶體、鐵電記憶體、矽-氧化矽-氮化矽-氧化矽-矽(SONOS)記憶體、聚合物記憶體、記憶體、奈米線、鐵電電晶體隨機存取記憶體(FeTRAM或FeRAM)、奈米線或電氣可抹除可規劃唯讀記憶體(EEPROM)。一些電子裝置(例如,智慧型手機、平板電腦等)可包含由一或多個DRAM組成之較簡單的遠端記憶體系統。
本文描述包含依電性記憶體(例如,DRAM)及非
依電性記憶體之混合式記憶體裝置。裝置進一步包含控制器,該控制器包含記憶體緩衝器及回應於來自應用程式之請求而經由記憶體緩衝器在非依電性記憶體與依電性記憶體之間傳送資料之邏輯,其中記憶體緩衝器中之資料可由應用程式存取。併入記憶體裝置之電子裝置可包含用以執行作業系統及一或多個應用程式之處理器及用以管理至少一應用程式與記憶體裝置之間的記憶體存取操作之作業系統裝置驅動器。
本文所論述之技術可提供於各種計算系統(例如,包括伺服器、桌上型電腦、筆記本型電腦、智慧型手機、平板電腦、可攜遊戲控制台等)中,該等各種計算系統可包括記憶體系統,該記憶體系統包含通常組裝至雙行記憶體模組(DIMM)及非依電性記憶體中之多個DRAM晶片。在此類實施例中,一或多個DIMM可包含單獨的控制邏輯。
在以下描述中,闡述眾多特定細節以便提供對各種實施例之徹底理解。然而,可在無特定細節的情況下實踐本發明之各種實施例。在其他情況下,尚未詳細描述熟知的方法、程序、組件及電路,以免混淆本發明之特定實施例。此外,本發明實施例之各種態樣可使用各種手段來執行,例如積體半導體電路(「硬體」)、組織成一或多個程式之電腦可讀指令(「軟體」),或硬體及軟體之一些組合。出於本揭示內容之目的,提及「邏輯」應意味硬體、軟體或上述各者之一些組合。
圖1為根據一些實施例之可經適配成併入如本文所述之混合式記憶體裝置之示範性電子裝置100的示意性圖解。在各種實施例中,電子裝置100可體現為個人電腦、膝上型電腦、個人數位助理、行動電話、娛樂裝置、平板電腦、電子閱讀器或另一計算裝置。
電子裝置100包括系統硬體120及記憶體130,該記憶體可實施為隨機存取記憶體及/或唯讀記憶體。諸如電池180之電源可耦接至電子裝置100。
系統硬體120可包括一或多個處理器122、匯流排結構123、一或多個圖形處理器124、記憶體系統125、網路介面126及輸入/輸出介面127。在一實施例中,處理器122可體現為可得自Santa Clara,California,USA之Intel Corporation之Intel ® Core2 Duo®處理器。如本文所使用,「處理器」一詞意味任何類型之計算元件,諸如但不限於微處理器、微控制器、複雜指令集計算(CISC)微處理器、精簡指令集(RISC)微處理器、極長指令字(VLIW)微處理器,或任何其他類型之處理器或處理電路。
匯流排結構123連接系統硬體120之各種組件。在一實施例中,匯流排結構128可為若干類型之匯流排結構中之一或多個,該等匯流排結構包括記憶體匯流排、週邊匯流排或外部匯流排及/或使用任何種類之可利用的匯流排架構之區域匯流排,該等匯流排架構包括但不限於11位元匯流排、工業標準架構(ISA)、微通道架構(MSA)、擴充型ISA(EISA)、智慧電子驅動器(IDE)、VESA區域匯流
排(VLB)、週邊組件互連(PCI)、通用串列匯流排(USB)、先進圖形埠(AGP)、個人電腦記憶卡國際協會匯流排(PCMCIA)及小型電腦系統介面(SCSI)。
圖形處理器124可充當管理圖形及/或視訊操作之附屬處理器。圖形處理器124可整合至電子裝置100之母板上或可經由母板上之擴展槽耦接。
記憶體系統125可包含區域記憶體,例如,快取記憶體、一或多種形式之依電性記憶體及非依電性記憶體,如以上所述。
在一實施例中,網路介面126可為諸如乙太網路介面(參見例如,電機電子工程師協會/IEEE 802.3-2002)之有線介面,或諸如IEEE 802.11a、b或g-順應性介面(參見例如,IEEE Standard for IT-Telecommunications and information exchange between systems LAN/MAN--Part II:Wireless LAN Medium Access Control(MAC)and Physical Layer(PHY)specifications Amendment 4:Further Higher Data Rate Extension in the 2.4GHz Band,802.11G-2003)之無線介面。無線介面的另一實例為通用封包無線電服務(GPRS)介面(參見例如,Guidelines on GPRS Handset Requirements,Global System for Mobile Communications/GSM Association,第3.0.1版,2002年12月)。
I/O介面127可實施在一或多個I/O裝置(例如,顯示器、觸控螢幕、一或多個揚聲器、鍵盤、滑鼠、觸控板
等)上。
記憶體130可儲存用於管理電子裝置100之操作之作業系統140。在一實施例中,作業系統140包括提供通向系統硬體120之介面之硬體介面模組154,例如,一或多個作業系統裝置驅動器。另外,作業系統140可包括管理在電子裝置100之操作中使用之檔案的檔案系統150,及管理在電子裝置100上執行之處理的處理控制子系統152。
作業系統140可包括(或管理)一或多個通訊介面,該一或多個通訊介面可結合系統硬體120來操作以自遠端源收發資料封包及/或資料串流。作業系統140可進一步包括系統呼叫介面模組142,該系統呼叫介面模組提供作業系統140與常駐於記憶體130中之一或多個應用程式模組之間的介面。作業系統140可體現為UNIX作業系統或其任何衍生物(例如,Linux、Solaris等)或體現為Windows®品牌作業系統或其他作業系統。
在一些實施例中,記憶體130可儲存一或多個應用程式160,該一或多個應用程式可在作業系統140及一或多個記憶體驅動器162之監督下在一或多個處理器122上執行。應用程式160及驅動器162可體現為儲存在有形的非暫時電腦可讀媒體(亦即,軟體或硬體)中之邏輯指令,該等邏輯指令可在處理器122中之一或多個上執行。或者,此等應用程式可體現為諸如現場可規劃閘陣列(FPGA)等之可規劃裝置上之邏輯。或者,此等應用程式可精簡為可硬連線(hardwired)至積體電路中之邏輯。
圖2A為根據本文所論述之各種實施例之可實施混合式記憶體裝置之示範性架構的示意性方塊圖。參照圖2A,在一些實施例中,中央處理單元(CPU)封包200可包含耦接至控制集線器220及區域記憶體230之一或多個CPU 210。控制集線器220包含記憶體控制器222及記憶體介面224。
記憶體介面224藉由通訊匯流排235耦接至一或多個遠端記憶體裝置240。在一實例中,通訊匯流排235可為雙倍資料速率記憶體匯流排。
記憶體裝置240可包含控制器242及非依電性記憶體250、依電性記憶體260及電力儲存體(power store)280。控制器242包含一或多個控制暫存器244及記憶體緩衝器246以及諸如多工器248之輸入/輸出介面。
在各種實施例中,可使用以下記憶體來實施非依電性記憶體250:例如,相變記憶體、NAND(快閃)記憶體、鐵電隨機存取記憶體(FeTRAM)、基於奈米線之非依電性記憶體、併入有憶阻器技術之記憶體、靜態隨機存取記憶體(SRAM)、諸如相變記憶體(PCM)之三維(3D)交叉點記憶體、自旋傳輸力矩記憶體(STT-RAM)或NAND記憶體。
在各種實施例中,依電性記憶體260可使用一或多個DRAM記憶體模組來實施。藉由實例之方式,參照圖2B,在一些實施例中,依電性記憶體260可包含耦接至記憶體通道272之一或多個雙行記憶體模組(DIMM)270,該
記憶體通道提供通向記憶體控制器122之通訊鏈路。在圖2B中所描繪之實施例中,每個DIMM 270皆包含第一階級274及第二階級276,該第一階級及該第二階級中每一者皆包含多個DRAM模組278。熟習此項技術者將認識到,依電性記憶體260可包含更多或更少的DIMM 270及每一DIMM更多或更少的階級。此外,一些電子裝置(例如,智慧型手機、平板電腦等)可包含由一或多個DRAM組成之較簡單的記憶體系統。
參照圖3,在一些實施例中,非依電性記憶體250比依電性記憶體260大。此允許暴露於作業系統140之系統實體記憶體受依電性記憶體260之大小限制的定址方案。非依電性記憶體250包括提供依電性記憶體260之非依電性記憶體備份之備份區域。剩餘的非依電性記憶體位址空間可作為將由驅動器162管理之分頁空間來利用。因此,可利用於應用程式160之整體虛擬位址空間可為總非依電性實體記憶體位址空間。
通常,作業系統藉由確保所分配之虛擬記憶體具有支持該分配之虛擬記憶體之充分系統實體記憶體來限制自非依電性儲存器裝置(例如硬碟驅動機或固態驅動機)至虛擬記憶體之分頁。分頁通常限於在一段不活動時期之後恢復處理。在記憶體裝置240中,自非依電性記憶體250至依電性記憶體之複製在相同記憶體裝置(例如,DIMM)上發生,且可極其快速地發生。另外,在自非依電性記憶體至依電性記憶體之複製正在進行時,可允許應用程式
160存取資料。此允許應用程式160及驅動器162以同步方式處置尋頁錯失。
此外,由於非依電性記憶體250與依電性記憶體260之間的所有資料移動保持在記憶體裝置240上,因此通訊通道235僅利用於由處理器進行之實際資料存取。此有限的資料移動設定檔可顯著降低實施虛擬記憶體分頁所需之功率。
此等因素允許非依電性記憶體250與依電性記憶體260之間更動態的分頁,因此提供大得多的虛擬位址空間供應用程式160使用。藉由應用程式進行之記憶體存取係針對依電性記憶體且因此獲得高記憶體效能。
如以上所述,在一些實施例中,記憶體裝置240中之控制器242與電子裝置100中之驅動器162協作來管理記憶體裝置240中之記憶體操作。將參照圖4至圖5來描述藉由控制器242及/或驅動器162實施之操作。圖4例示出實施來管理將一或多個頁自非依電性記憶體250複製至依電性記憶體260之操作(亦即,頁入操作),而圖5例示出實施來管理將一或多個頁自依電性記憶體複製至非依電性記憶體之操作(亦即,頁出操作)。
首先參照圖4,在操作410處,應用程式160讀取引起尋頁錯失之頁,該讀取導致尋頁錯失經發送至作業系統140。在操作415處,作業系統140自應用程式160接收尋頁錯失請求,且回應於尋頁錯失請求,呼叫(操作420)驅動器162來將由應用程式160請求之資料頁自非依電性記憶體
250傳送至依電性記憶體260(亦即,頁入請求)。在操作425處,驅動器接收頁傳送請求,且在操作430處,驅動器162程式化控制器242以將頁自非依電性記憶體250傳送至緩衝器246。將資料請求經由匯流排235轉送至記憶體裝置240中之控制器242。在操作435處,驅動器162使CPU 210中用於頁之快取線無效。
在操作440處,控制器242接收頁入請求,且在操作445處,控制器242將所請求資料頁自非依電性記憶體250複製至控制器242中之記憶體緩衝器246。在操作450處,控制器242設定完成狀態信號,該完成狀態信號經返回至驅動器162。在操作455處,驅動器162讀取狀態信號,該狀態信號經傳遞至作業系統140。
在操作460處,作業系統140自驅動器162接收信號完成,且在操作465處,作業系統140將頁釋放至應用程式160d。在操作470處,應用程式等待作業系統140處置尋頁錯失。當頁經釋放至應用程式時,控制傳遞至操作470,且應用程式160自記憶體緩衝器240讀取資料頁(操作475)。在操作480處,控制器242接收讀取請求,且響應於讀取請求,在操作485處,控制器242將頁自緩衝器246供應至依電性記憶體260且釋放緩衝器。在應用程式讀取資料時,控制器242將頁資料寫入(操作455)至依電性記憶體260且以逐快取線之方式而使緩衝器無效。因此,頁入操作確保對於非依電性記憶體260不存在位址衝突。在後續尋頁錯失操作中,若驅動器162在緩衝器246中未找到自由
記憶體,則驅動器162可例如藉由經由匯流排260進行的對單個記憶體線之虛擬寫入來將緩衝器清空至依電性記憶體260。此確保在CPU 210與緩衝器傳送之間的非依電性記憶體存取中不存在衝突。在操作490處,應用程式160使用新資料。
參照圖5,在頁出操作中,應用程式或作業系統140需要(操作510)使依電性記憶體150之頁自由,以供應用程式160使用。在操作515處,作業系統140請求驅動器162將資料頁自依電性記憶體260移動至非依電性記憶體250。在操作520處,驅動器162接收請求且檢查(操作525)以確保記憶體緩衝器246可利用於讀取操作。在操作530處,驅動器162程式化控制器242,以用於經由緩衝器246進行的自依電性記憶體260至非依電性記憶體250之頁複製。
在操作535處,驅動器162執行對控制器242之記憶體緩衝器246中之「虛擬」位置的一系列讀取操作。藉由實例之方式,驅動器可針對一4KB頁執行64個快取線讀取操作。「虛擬」讀取操作使CPU 210保持忙於讀取虛擬位置,同時控制器將頁自依電性記憶體260複製至非依電性記憶體250。此避免了將頁自依電性記憶體260讀取至緩衝器246中與CPU 210試圖讀取依電性記憶體260以用於另一應用程式之間的潛在衝突。
在操作540處,控制器242接收頁出請求。在操作545處,控制器242將虛擬資料提供至驅動器162,且在操作550處,控制器242將頁資料自依電性記憶體260複製
至緩衝器246,作為後台操作。虛擬讀取操作使緩衝器246保持忙碌,直至頁資料經複製為止。在一些實施例中,控制器242針對操作530中執行之每一虛擬讀出操作實施自依電性記憶體260之讀取操作,此舉避免在對依電性記憶體260之存取中之衝突。
在操作555處,驅動器162使來自CPU 210中之快取記憶體之頁無效,且在操作560處,驅動器162將頁自依電性記憶體260釋放至作業系統。在操作565處,作業系統140自驅動器162接收資料頁擺脫依電性記憶體之信號。
如以上所述,在一些實施例中,電子裝置可體現為電腦系統。圖6例示出根據本發明之一實施例之計算系統600的方塊圖。計算系統600可包括一或多個中央處理單元(CPU)602或處理器,該一或多個中央處理單元或處理器經由互連網路(或匯流排)604通訊。處理器602可包括通用處理器、網路處理器(其處理經由電腦網路603通訊之資料)或其他類型之處理器(包括精簡指令集電腦(RISC)處理器或複雜指令集電腦(CISC))。此外,處理器602可具有單核心設計或多核心設計。具有多核心設計之處理器602可將不同類型之處理器核心整合在相同積體電路(IC)晶粒上。此外,具有多核心設計之處理器602可實施為對稱或非對稱的多處理器。在一實施例中,處理器602中之一或多個可與圖1之處理器102相同或相似。例如,處理器602中之一或多個可包括參照圖1至圖3所論述之控制單元120。此外,參照圖3至圖5所論述之操作可由系統600之一
或多個組件執行。
晶片組606亦可與互連網路604通訊。晶片組606可包括記憶體控制集線器(MCH)608。MCH 608可包括記憶體控制器610,該記憶體控制器與記憶體612(該記憶體可與圖1之記憶體130相同或相似)通訊。記憶體412可儲存資料,包括指令序列,該資料可由CPU 602或包括在計算系統600中之任何其他裝置執行。在本發明之一實施例中,記憶體612可包括一或多個依電性儲存器(或記憶體)裝置,諸如隨機存取記憶體(RAM)、動態RAM(DRAM)、同步DRAM(SDRAM)、靜態RAM(SRAM)或其他類型之儲存器裝置。亦可利用非依電性記憶體,諸如硬碟。額外裝置可經由互連網路604通訊,該等額外裝置諸如多個CPU及/或多個系統記憶體。
MCH 608亦可包括與顯示器裝置616通訊之圖形介面614。在本發明之一實施例中,圖形介面614可經由加速圖形埠(AGP)與顯示器裝置616通訊。在本發明之一實施例中,顯示器616(諸如平面顯示器)可經由例如信號轉換器與圖形介面614通訊,該信號轉換器將儲存在諸如視訊記憶體或系統記憶體之儲存器裝置中的圖像之數位表示轉換成藉由顯示器616解譯且顯示之顯示信號。由顯示器裝置產生之顯示信號可在由顯示器616解譯且隨後顯示在該顯示器上之前通過各種控制裝置。
集線器介面618可允許MCH 608及輸入/輸出控制集線器(ICH)620通訊。ICH 620可提供通向I/O裝置之介
面,該I/O裝置與計算系統600通訊。ICH 620可經由週邊橋接器(或控制器)624與匯流排622通訊,該週邊橋接器(或控制器)諸如週邊組件互連(PCI)橋接器、通用串列匯流排(USB)控制器或其他類型之週邊橋接器或控制器。橋接器624可在CPU 602與週邊裝置之間提供資料路徑。可利用其他類型之拓樸。此外,多個匯流排可例如經由多個橋接器或控制器與ICH 620通訊。此外,在本發明之各種實施例中,與ICH 620通訊之其他週邊設備可包括整合驅動電子裝置(IDE)或小型電腦系統介面(SCSI)硬驅動機、USB埠、鍵盤、滑鼠、並列埠、串列埠、軟式磁碟驅動機、數位輸出支援(例如,數位視訊介面(DVI))或其他裝置。
匯流排622可與音訊裝置626、一或多個磁碟驅動機628及網路介面裝置630(該網路介面裝置與電腦網路603通訊)通訊。其他裝置可經由匯流排622通訊。此外,在本發明之一些實施例中,各種組件(諸如網路介面裝置630)可與MCH 608通訊。另外,處理器602及本文所論述之一或多個其他組件可經組合以形成單個晶片(例如,以提供系統單晶片(SOC))。此外,在本發明之其他實施例中,圖形加速器616可包括在MCH 608內。
此外,計算系統600可包括依電性記憶體及/或非依電性記憶體(或儲存器)。例如,非依電性記憶體可包括以下中之一或多個:唯讀記憶體(ROM)、可規劃ROM(PROM)、可抹除PROM(EPROM)、電氣EPROM(EEPROM)、磁碟驅動機(例如,628)、軟式磁碟、
光碟片ROM(CD-ROM)、數位通用碟片(DVD)、快閃記憶體、磁光碟或能夠儲存電子資料(例如,包括指令)之其他類型之非依電性機器可讀媒體。
圖7例示出根據本發明之一實施例之計算系統700的方塊圖。系統700可包括一或多個處理器702-1至702-N(本文中通常稱為「處理器702」)。處理器702可經由互連網路或匯流排704通訊。每一處理器皆可包括各種組件,為清楚起見僅參照處理器702-1論述該等組件中之一些。因此,剩餘處理器702-2至702-N中之每一個皆可包括參照處理器702-1所論述之相同或相似組件。
在一實施例中,處理器702-1可包括一或多個處理器核心706-1至706-M(本文中稱為「核心706」)、共享快取記憶體708、路由器710及/或處理器控制邏輯或單元720。處理器核心706可實施於單個積體電路(IC)晶片上。此外,晶片可包括一或多個共享快取記憶體及/或私用快取記憶體(諸如快取記憶體708)、匯流排或互連件(諸如匯流排或互連網路712)、記憶體控制器或其他組件。
在一實施例中,路由器710可用來在處理器702-1及/或系統700之各種組件之間通訊。此外,處理器可702-1可包括多於一個路由器710。此外,許多路由器710可處於通訊中,以賦能於處理器702-1內部或外部之各種組件之間的資料路由。
共享快取記憶體708可儲存資料(例如,包括指令),該資料由處理器702-1之一或多個組件(諸如核心706)
利用。例如,共享快取記憶體708可局部快取儲存在記憶體714中之資料以用於由處理器702之組件更快速地存取。在一實施例中,快取記憶體708可包括中階快取記憶體(諸如2階(L2)、3階(L3)、4階(L4)或其他階快取記憶體)、末階快取記憶體(LLC),及/或上述各者組合。此外,處理器702-1之各種組件可經由匯流排(例如,匯流排712)及/或記憶體控制器或集線器直接與共享快取記憶體708通訊。如圖7中所示,在一些實施例中,核心706中之一或多個可包括1階(L1)快取記憶體716-1(本文中通常稱為「L1快取記憶體716」)。在一實施例中,控制單元720可包括用以實施以上參照圖2中記憶體控制器122所述之操作之邏輯。
圖8例示出根據本發明之一實施例之處理器核心706及計算系統之其他組件之部分的方塊圖。在一實施例中,圖8中所示之箭頭例示出指令穿過核心706之流動方向。一或多個處理器核心(諸如處理器核心706)可實施於單個積體電路晶片(或晶粒)上,諸如參照圖7所論述。此外,晶片可包括一或多個共享快取記憶體及/或私用快取記憶體(例如,圖7之快取記憶體708)、互連件(例如,圖7之互連件704及/或112)、控制單元、記憶體控制器或其他組件。
如圖8中所例示,處理器核心706可包括用以擷取指令(包括具有條件分支之指令)以用於由核心706執行之擷取單元802。可自諸如記憶體714之任何儲存器裝置擷取指令。核心706亦可包括用以解碼所擷取指令之解碼單元
804。例如,解碼單元804可將所擷取指令解碼成多個uop(微操作)。
另外,核心706可包括排程單元806。排程單元806可執行與儲存解碼指令(例如,自解碼單元804接收的)相關聯之各種操作,直至指令準備好調度為止,例如,直至解碼指令之所有源值變得可利用為止。在一實施例中,排程單元806可將解碼指令排程且/或發佈(或調度)至執行單元808以用於執行。執行單元808可在調度指令經解碼(例如,由解碼單元804)且調度(例如,由排程單元806)之後執行該等調度指令。在一實施例中,執行單元808可包括多於一個執行單元。執行單元808亦可執行諸如加法、減法、乘法及/或除法之各種算術運算,且可包括一或多個算術邏輯單元(ALU)。在一實施例中,共處理器(未示出)可結合執行單元808來執行各種算術運算。
此外,執行單元808可亂序執行指令。因此,在一實施例中,處理器核心706可為亂序處理器核心。核心706亦可包括引退單元810。引退單元810可在執行指令經提交之後引退該等執行指令。在一實施例中,執行指令之引退可導致處理器狀態自指令之執行提交、由指令使用之實體暫存器經解除分配等。
核心706亦可包括匯流排單元714,該匯流排單元用以賦能於處理器核心706之組件與其他組件(諸如參照圖8所論述之組件)之間經由一或多個匯流排(例如,匯流排804及/或812)之通訊。核心706亦可包括一或多個暫存器
816,該暫存器用以儲存由核心706之各組件存取之資料(例如,與功率消耗狀態設定有關之值)。
此外,雖然圖7例示出控制單元720經由互連件812耦接至核心706,但在各種實施例中,控制單元720可定位在任何地方,諸如在核心706內部,經由匯流排704耦接至核心等。
在一些實施例中,本文所論述之組件中之一或多個可體現為系統單晶片(SOC)裝置。圖9例示出根據一實施例之SOC封包的方塊圖。如圖9中所例示,SOC 902包括一或多個中央處理單元(CPU)核心920、一或多個圖形處理器單元(GPU)核心930、輸入/輸出(I/O)介面940及記憶體控制器942。SOC封包902之各種組件可耦接至互連件或匯流排,諸如本文參照其他圖所論述。此外,SOC封包902可包括更多或更少的組件,如本文參照其他圖所論述之彼等組件。此外,SOC封包902之每一組件皆可包括一或多個其他組件,例如,如本文參照其他圖所論述。在一實施例中,SOC封包902(及其組件)提供在一或多個積體電路(IC)晶粒上,例如,該一或多個積體電路晶粒經封裝成單個半導體裝置。
如圖9中所例示,SOC封包902經由記憶體控制器942耦接至記憶體960(該記憶體可與本文參照其他圖所論述之記憶體相似或相同)。在一實施例中,記憶體960(或其一部分)可整合於SOC封包902上。
I/O介面940可例如經由互連件及/或匯流排耦接
至一或多個I/O裝置970,諸如本文參照其他圖所論述。I/O裝置970可包括鍵盤、滑鼠、觸控板、顯示器、圖像/視訊擷取裝置(諸如照相機或攝錄影機/視訊記錄器)、觸控螢幕、揚聲器等中之一或多個。
圖10例示出根據本發明之一實施例之佈置在點對點(PtP)組態中之計算系統1000。具體而言,圖10展示出處理器、記憶體及輸入/輸出裝置藉由許多點對點介面互連之系統。
如圖10中所例示,系統1000可包括若干處理器,為清楚起見僅示出該等處理器中兩個,亦即處理器1002及1004。處理器1002及1004可各自包括用以賦能於與記憶體1010及1012之通訊的區域記憶體控制器集線器(MCH)1006及1008。在一些實施例中,MCH 1006及1008可包括圖1之記憶體控制器120及/或邏輯125。
在一實施例中,處理器1002及1004可為參照圖7所論述之處理器702之一。處理器1002及1004可經由點對點(PtP)介面1014分別使用PtP介面電路1016及1018來交換資料。此外,處理器1002及1004可各自經由單獨的PtP介面1022及1024使用點對點介面電路1026、1028、1030及1032來與晶片組1020交換資料。晶片組1020可進一步經由高效能圖形介面1036例如使用PtP介面電路1037來與高效能圖形電路1034交換資料。
如圖10中所示,圖1之核心106及/或快取記憶體108中之一或多個可定位在處理器1004內。然而,本發明
之其他實施例可存在於圖10之系統1000內之其他電路、邏輯電路或裝置中。此外,本發明之其他實施例可分散在圖10中所例示之若干電路、邏輯單元或裝置各處。
晶片組1020可使用PtP介面電路1041來與匯流排1040通訊。匯流排1040可具有與其通訊之一或多個裝置,諸如匯流排橋接器1042及I/O裝置1043。經由匯流排1044,匯流排橋接器1043可與其他裝置通訊,該等其他裝置例如鍵盤/滑鼠1045、通訊裝置1046(諸如數據機、網路介面裝置或可與電腦網路1003通訊之其他通訊裝置)、音訊I/O裝置及/或資料儲存器裝置1048。資料儲存器裝置1048(其可為硬碟驅動機或基於NAND快閃之固態驅動機)可儲存可由處理器1004執行之碼1049。
以下實例涉及進一步實施例。
實例1為記憶體裝置,該記憶體裝置包含依電性記憶體、非依電性記憶體及控制器,該控制器包含記憶體緩衝器及邏輯,該邏輯用以回應於來自應用程式之請求而經由記憶體緩衝器在非依電性記憶體與依電性記憶體之間傳送資料,其中記憶體緩衝器中之資料為應用程式可存取的。
在實例2中,實例1之依電性記憶體可選擇性地包括動態隨機存取記憶體(DRAM),且非依電性記憶體包含三維交叉點記憶體。
在實例3中,實例1至實例2中任一個之主題可選擇性地包括非依電性記憶體,該非依電性記憶體為依電性
記憶體提供備份。
在實例4中,實例1至實例3中任一個之主題可選擇性地包括邏輯,該邏輯用以接收頁入請求,且回應於該頁入請求而進行以下操作:將資料頁自非依電性記憶體移動至記憶體緩衝器;將資料頁為可利用之信號提供至應用程式;以及回應於來自應用程式之讀取操作,而將資料頁自記憶體緩衝器寫入至依電性記憶體。
在實例5中,實例1至實例4中任一個之主題可選擇性地包括記憶體緩衝器,該記憶體緩衝器包含多個快取線,且控制器進一步包含用以在快取線經寫入至依電性記憶體時,使記憶體緩衝器中之快取線無效之邏輯。
在實例6中,實例1至實例5中任一個之主題可選擇性地包括邏輯,該邏輯用以接收頁出請求,且回應於該頁出請求,而進行以下操作:接收對預定位址之讀取操作;回應於該讀取操作,而將資料頁自非依電性記憶體讀取至記憶體緩衝器;以及將資料頁寫入至非依電性記憶體。
在實例7中,實例1至實例6中任一個之主題可選擇性地包括功率儲存體。
實例8為電子裝置,該電子裝置包含:處理器,其用以執行作業系統及至少一應用程式;及記憶體裝置,其包含依電性記憶體、非依電性記憶體及控制器,該控制器包含記憶體緩衝器及用以回應於來自應用程式之請求而經由記憶體緩衝器在非依電性記憶體與依電性記憶體之間
傳送資料之邏輯,其中記憶體緩衝器中之資料為應用程式可存取的;以及驅動器,其用以管理至少一應用程式與記憶體裝置之間的記憶體存取操作。
在實例9中,實例8之依電性記憶體可選擇性地包括:依電性記憶體包含動態隨機存取記憶體(DRAM);且非依電性記憶體包含三維交叉點記憶體。
在實例10中,實例8至實例9中任一個之主題可選擇性地包括非依電性記憶體,該非依電性記憶體為依電性記憶體提供備份。
在實例11中,實例8至實例10中任一個之主題可選擇性地包括用以產生頁入請求以將資料頁自非依電性記憶體移動至依電性記憶體,且使用於該頁之處理器中之一或多個快取線無效之邏輯。
在實例12中,實例8至實例11中任一個之主題可選擇性地包括邏輯,該邏輯用以接收頁入請求,且回應於該頁入請求,而進行以下操作:將資料頁自非依電性記憶體移動至記憶體緩衝器;將資料頁為可利用之信號提供至應用程式;以及回應於來自該應用程式之讀取操作,將資料頁自記憶體緩衝器寫入至依電性記憶體。
在實例13中,實例8至實例12中任一個之主題可選擇性地包括:記憶體緩衝器,其包含多個快取線;以及用以在快取線經寫入至依電性記憶體時,使記憶體緩衝器中之快取線無效之邏輯。
在實例14中,實例8至實例13中任一個之主題可
選擇性地包括用以產生頁出請求以將資料頁自非依電性記憶體移動至依電性記憶體之邏輯。
在實例15中,實例8至實例14中任一個之主題可選擇性地包括邏輯,該邏輯用以接收頁出請求,且回應於該頁出請求,而進行以下操作:接收對預定位址之讀取操作;回應於該讀取操作,而將資料頁自非依電性記憶體讀取至記憶體緩衝器;以及將資料頁寫入至非依電性記憶體。
在實例16中,實例8至實例15中任一個之主題可選擇性地包括功率儲存體。
實例17為用於記憶體裝置之控制器,該記憶體裝置包含依電性記憶體及非依電性記憶體,該控制器包含記憶體緩衝器及邏輯,該邏輯用以回應於來自應用程式之請求而經由記憶體緩沖器在非依電性記憶體與依電性記憶體之間傳送資料,其中記憶體緩衝器中之資料為應用程式可存取的。
在實例18中,實例17之依電性記憶體可選擇性地包括:依電性記憶體包含動態隨機存取記憶體(DRAM);且非依電性記憶體包含三維交叉點記憶體。
在實例19中,實例17至實例18中任一個之主題可選擇性地包括非依電性記憶體,該非依電性記憶體為依電性記憶體提供備份。
在實例20中,實例17至實例19中任一個之主題可選擇性地包括邏輯,該邏輯用以接收頁入請求,且回應
於該頁入請求,而進行以下操作:將資料頁自非依電性記憶體移動至記憶體緩衝器;將資料頁為可利用之信號提供至應用程式;以及回應於來自應用程式之讀取操作,而將資料頁自記憶體緩衝器寫入至依電性記憶體。
在實例21中,實例17至實例20中任一個之主題可選擇性地包括:記憶體緩衝器,其包含多個快取線;以及用以在快取線經寫入至依電性記憶體時,使記憶體緩衝器中之快取線無效之邏輯。
在實例22中,實例17至實例21中任一個之主題可選擇性地包括邏輯,該邏輯用以接收頁出請求,且回應於該頁出請求,而進行以下操作:接收對預定位址之讀取操作;回應於該讀取操作,而將資料頁自非依電性記憶體讀取至記憶體緩衝器;以及將資料頁寫入至非依電性記憶體。
實例23為電腦程式產品,該電腦程式產品包含儲存在非暫時性電腦可讀媒體上之邏輯指令,該等邏輯指令在由用於包含依電性記憶體及非依電性記憶體之記憶體裝置之控制器執行時,將控制器組配成用以回應於來自應用程式之請求而經由記憶體緩衝器在非依電性記憶體與依電性記憶體之間傳送資料之邏輯,其中記憶體緩衝器中之資料為應用程式可存取的。
在實例24中,實例23的主題可選擇性地包括儲存在非暫時性電腦可讀媒體上之邏輯指令,該等邏輯指令在由用於包含依電性記憶體及非依電性記憶體之記憶體裝
置之控制器執行時,組配控制器以接收頁入請求,且回應於該頁入請求,而進行以下操作:將資料頁自非依電性記憶體移動至記憶體緩衝器;將資料頁為可利用之信號提供至應用程式;以及回應於來自應用程式之讀取操作,而將資料頁自記憶體緩衝器寫入至依電性記憶體。
在實例25中,實例23至實例24中任一個之主題可選擇性地包括包含多個快取線之記憶體緩衝器,及儲存在非暫時性電腦可讀媒體上之邏輯指令,該等邏輯指令在由用於包含依電性記憶體及非依電性記憶體之記憶體裝置之控制器執行時,將控制器組配成在快線經寫入至依電性記憶體時,使記憶體緩衝器中之快取線無效。
在實例26中,實例23至實例25中任一個之主題可選擇性地包括儲存在非暫時性電腦可讀媒體上之邏輯指令,該等邏輯指令在由用於包含依電性記憶體及非依電性記憶體之記憶體裝置之控制器執行時,組配控制器以接收頁出請求,且回應於該頁出請求,而進行以下操作:接收對預定位址之讀取操作;回應於該讀取操作,而將資料頁自非依電性記憶體讀取至記憶體緩衝器;以及將資料頁寫入至非依電性記憶體。
在本發明之各種實施例中,本文所論述之操作可實施為硬體(例如,電路)、軟體、韌體、微碼或上述各者之組合,該硬體、軟體、韌體、微碼或上述各者之組合可提供為電腦程式產品,例如包括有形(例如,非暫時性)機器可讀或電腦可讀媒體,該有形(例如,非暫時性)機器
可讀或電腦可讀媒體上儲存有用以程式化電腦來執行本文所論述之處理之指令(或軟體程序)。此外,「邏輯」一詞可包括例如軟體、硬體,或軟體及硬體之組合。機器可讀媒體可包括諸如本文所論述之彼等儲存器之儲存器裝置。
在說明書中對「一個實施例」或「一實施例」之引用意味結合實施例所描述之特定特徵、結構或特性可包括於至少一實行方案中。用語「在一實施例中」在說明書中各處之出現可全部涉及或可並非全部涉及相同實施例。
又,在描述及申請專利範圍中,可使用「耦接」及「連接」等詞以及其衍生詞。在本發明之一些實施例中,「連接」可用以指示兩個或兩個以上元件彼此直接實體接觸或電氣接觸。「耦接」可意味兩個或兩個以上元件直接實體接觸或電氣接觸。然而,「耦接」亦可意味兩個或兩個以上元件可並非彼此直接接觸,但仍可彼此協作或相互作用。
因此,雖然已使用特定於結構特徵及/或方法動作之語言描述本發明之實施例,但將理解,所請求標的可不限於所描述之特定特徵或動作。實情為,特定特徵及動作作為實施所請求標的之樣例形式予以揭示。
200‧‧‧中央處理單元(CPU)封包
210‧‧‧CPU
220‧‧‧控制集線器
222‧‧‧記憶體控制器
224‧‧‧記憶體介面
230‧‧‧區域記憶體
235‧‧‧通訊匯流排/通訊通道/匯流排
240‧‧‧遠端記憶體裝置/記憶體裝置
242‧‧‧控制器
244‧‧‧控制暫存器
246‧‧‧記憶體緩衝器/緩衝器
248‧‧‧多工器
250‧‧‧非依電性記憶體
260‧‧‧依電性記憶體
280‧‧‧電力儲存體
Claims (17)
- 一種記憶體裝置,其包含:一依電性記憶體;一非依電性記憶體;以及一控制器,其包含:一記憶體緩衝器;以及邏輯,其用以回應於來自一應用程式之請求而經由該記憶體緩衝器在該非依電性記憶體與該依電性記憶體之間傳送資料,其中該記憶體緩衝器中之資料為該應用程式可存取的;邏輯,其用以接收一頁入請求,且回應於該頁入請求而進行以下操作:將一資料頁自該非依電性記憶體移動至該記憶體緩衝器;將該資料頁為可利用之一信號提供至該應用程式;以及回應於來自該應用程式之一讀取操作,而將一資料頁自該記憶體緩衝器寫入至該依電性記憶體。
- 如請求項1之記憶體裝置,其中:該依電性記憶體包含動態隨機存取記憶體(DRAM);且該非依電性記憶體包含一個三維交叉點記憶體。
- 如請求項1之記憶體裝置,其中該非依電性記憶體為該依電性記憶體提供一備份。
- 如請求項1之記憶體裝置,其中:該記憶體緩衝器包含多個快取線;且該控制器進一步包含用以在該快取線經寫入至該依電性記憶體時,使該記憶體緩衝器中之該等快取線無效之邏輯。
- 如請求項1之記憶體裝置,其中該控制器包含邏輯,該邏輯用以接收一頁出請求,且回應於該頁出請求而進行以下操作:接收對一預定位址之一讀取操作;回應於該讀取操作而將一資料頁自該非依電性記憶體讀取至該記憶體緩衝器;以及將該資料頁寫入至該非依電性記憶體。
- 一種電子裝置,其包含:一處理器,其用以執行一作業系統及至少一應用程式;一記憶體裝置,其包含:一依電性記憶體;一非依電性記憶體;以及一控制器,其包含:一記憶體緩衝器;以及邏輯,其用以回應於來自該應用程式之請求而經由該記憶體緩衝器在該非依電性記憶體 與該依電性記憶體之間傳送資料,其中該記憶體緩衝器中之資料為該應用程式可存取的;以及一驅動器,其用以管理在該至少一應用程式與該記憶體裝置之間的記憶體存取操作,其中該驅動器包含邏輯,該邏輯用以:產生一頁入請求以將一資料頁自非依電性記憶體移動至依電性記憶體;且使得用於該頁之該處理器中的一或多個快取線無效。
- 如請求項6之電子裝置,其中:該依電性記憶體包含動態隨機存取記憶體(DRAM);且該非依電性記憶體包含一個三維交叉點記憶體。
- 如請求項6之電子裝置,其中該非依電性記憶體為該依電性記憶體提供一備份。
- 如請求項6之電子裝置,其中該控制器包含邏輯,該邏輯用以接收該頁入請求,且回應於該頁入請求而進行以下操作:將一資料頁自該非依電性記憶體移動至該記憶體緩衝器;將該資料頁為可利用之一信號提供至該應用程式;以及回應於來自該應用程式之一讀取操作而將一資料 頁自該記憶體緩衝器寫入至該依電性記憶體。
- 如請求項9之電子裝置,其中:該記憶體緩衝器包含多個快取線;且該控制器包含用以在該快取線經寫入至該依電性記憶體時,使該記憶體緩衝器中之該等快取線無效之邏輯。
- 如請求項6之電子裝置,其中該驅動器包含邏輯,該邏輯用以:產生一頁出請求以將一資料頁自非依電性記憶體移動至依電性記憶體。
- 如請求項6之電子裝置,其中該控制器包含邏輯,該邏輯用以接收該頁出請求,且回應於該頁出請求而進行以下操作:接收對一預定位址址之一讀取操作;回應於該讀取操作而將一資料頁自該非依電性記憶體讀取至該記憶體緩衝器;以及將該資料頁寫入至該非依電性記憶體。
- 一種用於一記憶體裝置的控制器,該記憶體裝置包含一依電性記憶體及一非依電性記憶體,該控制器包含:一記憶體緩衝器;以及邏輯,其用以回應於來自一應用程式之請求而經由該記憶體緩衝器在該非依電性記憶體與該依電性記憶體之間傳送資料,其中該記憶體緩衝器中之資料為該應用程式可存取的; 邏輯,其用以接收一頁入請求,且回應於該頁入請求而進行以下操作:將一資料頁自該非依電性記憶體移動至該記憶體緩衝器;將該資料頁為可利用之一信號提供至該應用程式;以及回應於來自該應用程式之一讀取操作,而將資料頁自該記憶體緩衝器寫入至該依電性記憶體。
- 如請求項13之控制器,其中:該依電性記憶體包含動態隨機存取記憶體(DRAM);且該非依電性記憶體包含一個三維交叉點記憶體。
- 如請求項13之控制器,其中該非依電性記憶體為該依電性記憶體提供一備份。
- 如請求項13之控制器,其中:該記憶體緩衝器包含多個快取線;且該控制器進一步包含用以在該快取線經寫入至該依電性記憶體時,使該記憶體緩衝器中之該等快取線無效之邏輯。
- 如請求項13之控制器,其進一步包含邏輯,該邏輯用以接收一頁出請求,且回應於該頁出請求而進行以下操作:接收對一預定位址之一讀取操作;回應於該讀取操作而將一資料頁自該非依電性記 憶體讀取至該記憶體緩衝器;以及將該資料頁寫入至該非依電性記憶體。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/928,694 US9129674B2 (en) | 2013-06-27 | 2013-06-27 | Hybrid memory device |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201508483A TW201508483A (zh) | 2015-03-01 |
TWI537725B true TWI537725B (zh) | 2016-06-11 |
Family
ID=52115471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103119398A TWI537725B (zh) | 2013-06-27 | 2014-06-04 | 混合式記憶體裝置 |
Country Status (9)
Country | Link |
---|---|
US (1) | US9129674B2 (zh) |
EP (1) | EP3014623B1 (zh) |
JP (1) | JP6112594B2 (zh) |
KR (1) | KR101719092B1 (zh) |
CN (1) | CN105247617B (zh) |
BR (1) | BR112015029848B1 (zh) |
RU (1) | RU2627100C2 (zh) |
TW (1) | TWI537725B (zh) |
WO (1) | WO2014209891A1 (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10380022B2 (en) * | 2011-07-28 | 2019-08-13 | Netlist, Inc. | Hybrid memory module and system and method of operating the same |
US10838646B2 (en) * | 2011-07-28 | 2020-11-17 | Netlist, Inc. | Method and apparatus for presearching stored data |
US10198350B2 (en) * | 2011-07-28 | 2019-02-05 | Netlist, Inc. | Memory module having volatile and non-volatile memory subsystems and method of operation |
US9129674B2 (en) | 2013-06-27 | 2015-09-08 | Intel Corporation | Hybrid memory device |
CN111274063B (zh) | 2013-11-07 | 2024-04-16 | 奈特力斯股份有限公司 | 混合内存模块以及操作混合内存模块的***和方法 |
US10248328B2 (en) * | 2013-11-07 | 2019-04-02 | Netlist, Inc. | Direct data move between DRAM and storage on a memory module |
US11182284B2 (en) * | 2013-11-07 | 2021-11-23 | Netlist, Inc. | Memory module having volatile and non-volatile memory subsystems and method of operation |
US20150347151A1 (en) * | 2014-05-28 | 2015-12-03 | Diablo Technologies Inc. | System and method for booting from a non-volatile memory |
CN106155926B (zh) * | 2015-04-09 | 2019-11-26 | 澜起科技股份有限公司 | 存储器及存储器的数据交互方法 |
WO2016171934A1 (en) | 2015-04-20 | 2016-10-27 | Netlist, Inc. | Memory module and system and method of operation |
CN107533860B (zh) | 2015-05-28 | 2022-02-08 | 英特尔公司 | 具有非易失性留存的基于铁电的存储器单元 |
US9799402B2 (en) | 2015-06-08 | 2017-10-24 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and program method thereof |
US10078448B2 (en) | 2015-07-08 | 2018-09-18 | Samsung Electronics Co., Ltd. | Electronic devices and memory management methods thereof |
US10725689B2 (en) | 2015-08-31 | 2020-07-28 | Hewlett Packard Enterprise Development Lp | Physical memory region backup of a volatile memory to a non-volatile memory |
US10303372B2 (en) | 2015-12-01 | 2019-05-28 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and operation method thereof |
US10152262B2 (en) * | 2016-05-03 | 2018-12-11 | Micron Technology, Inc. | Memory access techniques in memory devices with multiple partitions |
US10714179B2 (en) | 2016-10-07 | 2020-07-14 | Hewlett-Packard Development Company, L.P. | Hybrid memory devices |
KR20180078512A (ko) * | 2016-12-30 | 2018-07-10 | 삼성전자주식회사 | 반도체 장치 |
US20180239725A1 (en) * | 2017-02-17 | 2018-08-23 | Intel Corporation | Persistent Remote Direct Memory Access |
US11175853B2 (en) * | 2017-05-09 | 2021-11-16 | Samsung Electronics Co., Ltd. | Systems and methods for write and flush support in hybrid memory |
KR102427323B1 (ko) * | 2017-11-08 | 2022-08-01 | 삼성전자주식회사 | 반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법 |
US10705963B2 (en) * | 2018-03-21 | 2020-07-07 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
TW202014898A (zh) | 2018-10-04 | 2020-04-16 | 宏碁股份有限公司 | 電腦系統、其遊戲載入方法及電腦程式產品 |
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 |
US11513725B2 (en) * | 2019-09-16 | 2022-11-29 | Netlist, Inc. | Hybrid memory module having a volatile memory subsystem and a module controller sourcing read strobes to accompany read data from the volatile memory subsystem |
CN113050874A (zh) * | 2019-12-26 | 2021-06-29 | 华为技术有限公司 | 一种内存设置方法以及装置 |
US11954358B2 (en) * | 2020-06-23 | 2024-04-09 | Micron Technology, Inc. | Cache management in a memory subsystem |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62224845A (ja) * | 1986-03-26 | 1987-10-02 | Hitachi Ltd | 仮想記憶方式 |
JPH04195442A (ja) * | 1990-11-28 | 1992-07-15 | Fujitsu Ltd | アドレス変換機構を利用したメモリ管理方式 |
JPH07230411A (ja) * | 1994-02-18 | 1995-08-29 | Fujitsu Ltd | フラッシュメモリカード装置 |
JP2000251035A (ja) | 1999-02-26 | 2000-09-14 | Hitachi Ltd | メモリカード |
JP4211254B2 (ja) * | 2001-12-04 | 2009-01-21 | 関西電力株式会社 | 固体酸化物形燃料電池 |
US20060294295A1 (en) * | 2005-06-24 | 2006-12-28 | Yukio Fukuzo | DRAM chip device well-communicated with flash memory chip and multi-chip package comprising such a device |
KR101197556B1 (ko) | 2006-01-09 | 2012-11-09 | 삼성전자주식회사 | 불 휘발성 메모리의 프로그램 동작을 검증하는 장치 및방법, 그리고 그 장치를 포함한 메모리 카드 |
KR100772863B1 (ko) * | 2006-01-13 | 2007-11-02 | 삼성전자주식회사 | 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치 |
KR100699893B1 (ko) * | 2006-01-23 | 2007-03-28 | 삼성전자주식회사 | 하이브리드 디스크 드라이브 및 하이브리드 디스크드라이브의 데이터 제어방법 |
US7716411B2 (en) * | 2006-06-07 | 2010-05-11 | Microsoft Corporation | Hybrid memory device with single interface |
US7564722B2 (en) | 2007-01-22 | 2009-07-21 | Micron Technology, Inc. | Memory system and method having volatile and non-volatile memory devices at same hierarchical level |
JP2009104687A (ja) * | 2007-10-22 | 2009-05-14 | Fujitsu Ltd | 記憶装置及び制御回路 |
US7855916B2 (en) | 2007-10-24 | 2010-12-21 | Rao G R Mohan | Nonvolatile memory systems with embedded fast read and write memories |
US8041895B2 (en) * | 2008-01-28 | 2011-10-18 | Spansion Llc | Translation table coherency mecahanism using cache way and set index write buffers |
US8560761B2 (en) | 2008-03-31 | 2013-10-15 | Spansion Llc | Memory resource management for a flash aware kernel |
JP5085446B2 (ja) * | 2008-07-14 | 2012-11-28 | 株式会社東芝 | 三次元メモリデバイス |
KR101547326B1 (ko) * | 2008-12-04 | 2015-08-26 | 삼성전자주식회사 | 트랜지스터 및 그 제조방법 |
KR101715048B1 (ko) * | 2010-09-13 | 2017-03-13 | 삼성전자주식회사 | 부스팅 전하 누설을 감소시키기 위한 메모리 장치 및 이를 포함하는 시스템 |
US8567475B2 (en) * | 2011-05-04 | 2013-10-29 | Kenneth Eugene Boone | Overhead gate systems |
US9129674B2 (en) | 2013-06-27 | 2015-09-08 | Intel Corporation | Hybrid memory device |
-
2013
- 2013-06-27 US US13/928,694 patent/US9129674B2/en active Active
-
2014
- 2014-06-04 TW TW103119398A patent/TWI537725B/zh active
- 2014-06-23 BR BR112015029848-6A patent/BR112015029848B1/pt active IP Right Grant
- 2014-06-23 JP JP2016521887A patent/JP6112594B2/ja active Active
- 2014-06-23 KR KR1020157031984A patent/KR101719092B1/ko active IP Right Grant
- 2014-06-23 RU RU2015151127A patent/RU2627100C2/ru not_active IP Right Cessation
- 2014-06-23 WO PCT/US2014/043678 patent/WO2014209891A1/en active Application Filing
- 2014-06-23 CN CN201480031299.5A patent/CN105247617B/zh active Active
- 2014-06-23 EP EP14818140.7A patent/EP3014623B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3014623A4 (en) | 2017-03-01 |
KR101719092B1 (ko) | 2017-04-04 |
BR112015029848B1 (pt) | 2022-12-13 |
JP6112594B2 (ja) | 2017-04-12 |
US9129674B2 (en) | 2015-09-08 |
JP2016523411A (ja) | 2016-08-08 |
CN105247617A (zh) | 2016-01-13 |
TW201508483A (zh) | 2015-03-01 |
RU2627100C2 (ru) | 2017-08-03 |
BR112015029848A2 (pt) | 2017-07-25 |
US20150003175A1 (en) | 2015-01-01 |
KR20150140361A (ko) | 2015-12-15 |
EP3014623A1 (en) | 2016-05-04 |
RU2015151127A (ru) | 2017-05-31 |
WO2014209891A1 (en) | 2014-12-31 |
CN105247617B (zh) | 2020-06-12 |
BR112015029848A8 (pt) | 2019-12-24 |
EP3014623B1 (en) | 2019-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI537725B (zh) | 混合式記憶體裝置 | |
JP6373559B2 (ja) | メモリ装置及びメモリ装置の動作方法 | |
KR102500661B1 (ko) | 다중 레벨 셀 모드 비휘발성 메모리를 위한 비용 최적화된 단일 레벨 셀 모드 비휘발성 메모리 | |
US10956323B2 (en) | NVDIMM emulation using a host memory buffer | |
EP3161622B1 (en) | Accelerating boot time zeroing of memory based on non-volatile memory (nvm) technology | |
US9128824B2 (en) | In-place change between transient and persistent state for data structures on non-volatile memory | |
TWI418987B (zh) | 藉由細微間隔之預充電管理使記憶體處理量增加之技術 | |
US20170228168A1 (en) | Memory state management for electronic device | |
US20190042415A1 (en) | Storage model for a computer system having persistent system memory | |
JP2018152112A (ja) | メモリ装置及びメモリ装置の動作方法 | |
US20160378151A1 (en) | Rack scale architecture (rsa) and shared memory controller (smc) techniques of fast zeroing | |
EP4060505A1 (en) | Techniques for near data acceleration for a multi-core architecture | |
KR20140067878A (ko) | 메모리 장치 및 이를 갖는 메모리 시스템 | |
EP4071583A1 (en) | Avoiding processor stall when accessing coherent memory device in low power | |
US20170153994A1 (en) | Mass storage region with ram-disk access and dma access |