TW201636770A - 容錯式自動雙行記憶體模組更新技術 - Google Patents
容錯式自動雙行記憶體模組更新技術 Download PDFInfo
- Publication number
- TW201636770A TW201636770A TW104138741A TW104138741A TW201636770A TW 201636770 A TW201636770 A TW 201636770A TW 104138741 A TW104138741 A TW 104138741A TW 104138741 A TW104138741 A TW 104138741A TW 201636770 A TW201636770 A TW 201636770A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- processor
- electrical
- event
- data
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- 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
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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
- G11C14/0036—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 and the nonvolatile element is a magnetic RAM [MRAM] element or ferromagnetic cell
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
- G11C5/04—Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/148—Details of power up or power down circuits, standby circuits or recovery circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/20—Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2015—Redundant power supplies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
-
- 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
- G11C14/0045—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 and the nonvolatile element is a resistive RAM element, i.e. programmable resistors, e.g. formed of phase change or chalcogenide material
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Power Engineering (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
容錯式自動DIMM(雙行記憶體模組)更新或ADR的方法和設備被描述。在一實施例中,一處理器包含有非依電性記憶體以儲存來自該處理器之一個或多個依電性緩衝器的資料。來自該處理器之該等一個或多個依電性緩衝器的該資料被儲存到該非依電性記憶體,以回應於一將導致系統重置或關閉之事件的發生。其他的實施例也被揭露並要求保護。
Description
本發明一般係涉及電子學領域。更具體地說,一些實施例一般係涉及容錯式自動雙行記憶體模組更新的術。
一般而言,在一計算系統中用於儲存資料的記憶體可以是依電性的(儲存依電性資訊)或非依電性的(儲存持久性資訊)。儲存在依電性記憶體中的依電性資料結構一般被使用於暫時或中間的資訊,該資訊在一程式的該運行期間中被需要以支援該程式的功能。在另一方面,儲存在非依電性的(或持久性記憶體)之持久性的資料結構可超出一程式的該運行期間並且可被重複使用。
當資料被寫入到持久性記憶體時,一假設是一旦該儲存操作完成時,這樣子的資料會被實際地寫入到持久性記憶體。然而,在該儲存操作的執行之後和在該資料被實際地保存到持久性記憶體之前,以持久記憶體為目的地的資料仍駐留在依電性記憶體/緩衝器中。如果系統故障(諸如斷電)在該間隙期間發生,該目的地為持久性記憶體的資
料可能會遺失或損壞。
依據本發明之一實施例,係特地提出一種設備,其包含有:一處理器,包括有非依電性記憶體用以儲存來自該處理器之一或多個依電性緩衝器的資料;以及邏輯,用以致使來自該處理器之該一或多個依電性緩衝器的資料到該非依電性記憶體中之儲存,以回應於一將導致系統重置或關閉之事件的發生。
100‧‧‧系統
102_0~102_N‧‧‧處理器
104‧‧‧互連
106_0~106_M‧‧‧核心1~M
108‧‧‧快取
110‧‧‧路由器
112‧‧‧匯流排或互連
114‧‧‧依電性記憶體
116-1‧‧‧L1
120‧‧‧依電性記憶體控制器
125‧‧‧邏輯
150‧‧‧NVM控制邏輯
152‧‧‧NVM
200‧‧‧主記憶體
202‧‧‧2LM引擎
204‧‧‧NMC
206‧‧‧FMC
208‧‧‧遠記憶體
210‧‧‧近記憶體
300‧‧‧處理器晶粒
302‧‧‧互連或匯流排
304、308‧‧‧實體層
306‧‧‧QPI
310‧‧‧iMC
312‧‧‧IIO開關
314‧‧‧PCU
400‧‧‧方法
404~412‧‧‧方塊
450‧‧‧方法
452~472‧‧‧方塊
500‧‧‧計算系統
502_0~502_N‧‧‧處理器
503‧‧‧網路
504‧‧‧互連網路(或匯流排)
506‧‧‧晶片組
508‧‧‧GMCH
510‧‧‧記憶體控制器
514‧‧‧圖形介面
516‧‧‧圖形加速器
517‧‧‧顯示器/觸控螢幕
518‧‧‧集線器介面
520‧‧‧ICH
522‧‧‧匯流排
524‧‧‧週邊橋接器
526‧‧‧音訊裝置
528‧‧‧硬碟
530‧‧‧網路介面裝置
531‧‧‧天線
600‧‧‧系統
602、604‧‧‧處理器
606、608‧‧‧MCH
610、612‧‧‧記憶體
614、622、624‧‧‧點對點互連616、618、626、628、630、
632‧‧‧P-P
620‧‧‧晶片組
634‧‧‧圖形
636‧‧‧圖形介面
637、641‧‧‧I/F
640、644‧‧‧匯流排
642‧‧‧匯流排橋接器
643‧‧‧I/O裝置
645‧‧‧鍵盤/滑鼠
647‧‧‧音訊裝置
646‧‧‧通信裝置
648‧‧‧資料儲存
649‧‧‧程式碼
702‧‧‧SOC封裝
720、730‧‧‧CPU核心
740‧‧‧I/O介面
742‧‧‧記憶體控制器
760‧‧‧記憶體
770‧‧‧I/O裝置
參考該等附圖的詳細描述被提供。在該等圖示中,一參考號碼最左邊的數字指出該參考號碼首次是出現在那一圖示中。使用在不同圖示中相同的參考號碼表示相似的或相同的項目。
圖1、2、5、6、和7展示出計算系統之實施例的方塊圖,其可被用來實現本文所討論的各種實施例。
圖3根據一實施例圖示出存在於一處理器的積體電路(IC)晶粒之各種組件的一方塊圖。
圖4A和4B根據一些實施例的圖示出了流程圖。
在以下的描述中,許多具體細節被闡述以便提供各種實施例的一種徹底理解。然而,各種實施例可以在沒有這些具體細節的情況下被實現。在其他的實例中,公知的方法、程序,組件、和電路並未被詳細描述以免混淆該
等特定的實施例。另外,實施例的各個方面可使用各種構件,諸如基體半導體電路中(「硬體」)、組成一個或多個程式的電腦可讀指令(「軟體」)、或硬體和軟體的某種組合。就本發明的目的而言,「邏輯」將意指其可以是硬體、軟體、或它們的某種組合。
如以上所述,不同於依電性主記憶體,持久性記憶體可以被用來持久地儲存資料,使得,該儲存的資料跨越系統故障、重置、和/或重新啟動仍可使用。軟體認為寫入到一持久性記憶體範圍的資料一旦該儲存指令完成已就已達到持久性,但該資料可能仍駐留在依電性緩衝區中(諸如記憶體控制器寫入未決佇列或處理器快取)。為了確保在這些依電性緩衝器中的資料可到達持久性記憶體,不是使用一ADR(自動DIMM(雙行記憶體模組)更新)機制就是使用PCOMMIT(其是根據一指令集結構的一指令)。
一ADR機制可被使用於處理器產生之寫入操作到持久性記憶體或導向到持久記憶體之入站輸入/輸出(IO或I/O)寫入操作兩者。ADR係一傳統的機制,在回應於AC(交流)電源故障時,會沖回該等記憶體控制器緩衝器(例如,寫入未決佇列)和IIO(整合式的IO)緩衝器(在一個實施例中其持有入站的資料)。增強式ADR也可以把這種斷電保護延伸到該等處理器快取。在電源故障的情況下,ADR和增強式ADR(eADR)兩者依賴平台大電容以保持該DC(直流)供電軌一簡短的時間量以允許該處理器沖回它的快取和緩衝器。在上述的任何一種情境中,該根本的前提是在任何
時候ADR應該是成功的以防止任何的資料丟失。同樣,如果PCOMMIT被使用,PCOMMIT的本義係要求將所有的iMC(整合式的記憶體控制器)WPQ(寫入未決佇列)做全域沖回,但這可能會限制性能。
為此目的,一些實施例提供容錯的ADR技術。舉例來說,一實施例提供了在ADR期間面對平台故障(諸如連結或VR(穩壓器)故障)為NVDIMM(非依電性雙行記憶體模組)實現可靠持久性的一種機制。在一實施例中,一處理器包含有非依電性記憶體以儲存來自該處理器之一個或多個依電性緩衝器的資料。來自該處理器之一個或多個依電性緩衝器中的資料被儲存到該非依電性記憶體中以回應於將導致系統重置或關閉之一事件的發生。該儲存的資料可以在下次的重新啟動從該非依電性記憶體中來復原。
此外,在此討論所的技術可被提供在各種計算系統中(例如,包括一種非行動式計算裝置諸如一桌上型電腦、工作站、伺服器、機架系統、等等,和一行動計算裝置諸如一智慧型手機、平板電腦、UMPC(超行動個人電腦)、膝上型電腦、UltrabookTM計算裝置、智慧型手錶、智慧型眼鏡、智慧型手環、等等),包括參照圖1-7所討論的那些。更具體地說,圖1根據一實施例圖示出一計算系統100的方塊圖。該系統100包括一個或多個處理器102-1至102-N(通常在本文中被稱為「該處理器102」或「該等處理器102」)。該等處理器102可經由一互連或匯流排104進行通信。每一個處理器可以包括各種組件,但為了清楚起見,
其中一些僅會參照處理器102-1來討論。因此,該等剩餘處理器102-2至102-N的每一個可包含有參照處理器102-1所討論之相同的或類似的組件。
在一實施例中,該處理器102-1可以包括一個或多個處理器核心106-1至106-M(本文中稱為「該等核心106」,或更一般地稱為「該核心106」)、一快取108(在各種實施例中其可以是一共用快取或一專用快取)、和/或一路由器110。該等處理器核心106可在一單一積體電路(IC)晶片上實現。此外,該晶片可以包括一個或多個共用和/或專用快取(例如快取108)、匯流排或互連(諸如一匯流排或互連112)、邏輯120、邏輯150、記憶體控制器(諸如參照圖5-7所討論的那些)、非依電性記憶體(NVM)152(例如,包括快閃記憶體、一固態硬碟(SSD)、等等)、或其他的組件。
在一實施例中,該路由器110可被使用來在該處理器102-1和/或系統100的各個組件之間進行通信。此外,該處理器102-1可以包括一個以上的路由器110。再者,多個路由器110可以通信以使得可在該處理器102-1之內部或外部的各種組件之間進行資料路由。
該快取108可儲存資料(例如,包括指令),其由處該理器102-1的一個或多個組件諸如該等核心106來使用。舉例來說,該快取108可局部地快取儲存在依電性記憶體114中的資料使得該處理器102的該等組件可更快速地存取。如在圖1中所示,該記憶體114可經由該互連104與該等處理器102通信。在一實施例中,該快取108(其可以是共用
的)可具有不同程級,舉例來說,該快取108可以是一中級快取和/或一末級快取(LLC)。另外,該等核心106的每一個可以包括一1級(L1)快取(116-1)(通常在本文中被稱為「L1快取116」)和/或2級(L2)快取(例如,參考圖3所討論的)。該處理器102-1的各種組件可以與快取108直接地通信,透過一匯流排(例如,該匯流排112)和/或一記憶體控制器或集線器。
如圖1所示,透過一依電性記憶體控制器120記憶體114可被耦合到系統100的其他組件。系統100還包括NVM記憶體控制器邏輯150以把NVM記憶體152耦合到該系統100的各種組件。記憶體152包括非依電性記憶體諸如奈米線記憶體、鐵電電晶體隨機存取記憶體(FeTRAM)、磁阻隨機存取記憶體(MRAM)、快閃記憶體、自旋力矩轉移隨機存取記憶體(STTRAM)、電阻式隨機存取記憶體,可位元組定址3維交叉點記憶體、PCM(相變記憶體)、等等,在一些實施例中。
此外,儘管該記憶體控制器150圖示出被耦合在該互連104和該記憶體152之間,該邏輯150可位於在系統100中的其他地方。舉例來說,在各種實施例中,邏輯150(或它的部分)可被提供在該處理器102、控制器120等等的其中之一個。在一實施例中,邏輯150和NVM 152被包含在一SSD中。此外,邏輯150控制對一個或多個NVM裝置152的存取(例如,在一些實施例中,其中該等一個或多個NVM裝置被提供在同一積體電路晶粒上),如在此參照各種實施例
所討論的。另外,在一個實施例中,記憶體控制器120和NVM控制器150可以被結合成一單一控制器。
圖2根據一實施例圖示出一兩級系統主記憶體的一方塊圖。一些實施例被導向到系統主記憶體200,其包含有兩個級別的記憶體(或者在本文中稱為「2LM」),其包括系統碟層級儲存的快取子集(例如,除了運行時資料之外)。這個主記憶體包括一第一級記憶體210(或者在本文中被稱為「近記憶體」),它包含有更小更快的記憶體,其由,舉例來說,依電性記憶體114(例如,包括DRAM(動態隨機存取記憶體))、NVM 152、等等所構成;以及一第二級記憶體208(或者在本文中被稱為「遠記憶體」),它包括較大且較慢(相對於該近記憶體)的依電性記憶體(例如,記憶體114)或非依電性記憶體的儲存(例如,NVM 152)。
在一實施例中,該遠記憶體對該主機作業系統(OS)而言係被呈現為「主記憶體」,而該近記憶體係用於該遠記憶體的一快取,其透明於該OS,從而使得下面描述的實施例呈現如同一般主記憶體解決方案。該兩級記憶體管理的達成可藉由該主機中央處理單元(CPU)102(其在本文中可互換地被稱為「處理器」)所執行之邏輯和模組的一種組合來實現。近記憶體可經由一個或多個用於高效處理之高頻寬、低延遲之連結、匯流排、或互連被耦合到該主機系統的CPU。遠記憶體可經由一個或多個低頻寬、高延遲之連結、匯流排、或互連(相對於該近記憶體的那些)被耦合到該CPU。
參照圖2,主記憶體200提供了運行時的資料儲存和存取系統碟儲存記憶體(諸如圖5的磁碟528或圖6的資料儲存648)的內容給CPU 102。該CPU可包括快取記憶體,其將儲存主記憶體200的該等內容的一子集。遠記憶體可包括如本文中所討論的任一依電性或非依電性記憶體。在這種實施例中,近記憶體210提供遠記憶體208之一種低延遲和高頻寬(即,針對CPU 102的存取)的快取,該遠記憶體可能具有相當低的頻寬和較高的延遲(即,針對CPU 102的存取)。
在一實施例中,近記憶體210係由近記憶體控制器(NMC)204來管理,而遠記憶體208係由遠記憶體控制器(FMC)206來管理。FMC 206把遠記憶體208告知給該系統OS如主記憶體(即,該系統OS識別該遠記憶體208的大小為該系統主記憶體200的大小)。該系統OS和系統應用程式「不知道」近記憶體210的存在,因為它是遠記憶體208之一「透明」的快取。
CPU 102更包含有2LM引擎模組/邏輯202。該「2LM引擎」是一種邏輯結構其可以包括硬體和/或微碼擴展以支援兩級主記憶體200。舉例來說,2LM引擎202可以維持一完整的標籤表用於追踪遠記憶體208之所有結構上可見元素的狀態。舉例來說,當CPU 102試圖存取在主記憶體200中一特定的資料段時,2LM引擎202判定該資料段是否被包括在近記憶體210中;如果不是的話,2LM引擎202提取在遠記憶體208中的該資料段,並隨後將該資料段寫入
到近記憶體210(類似於一種快取未命中)。但是應被理解的是,因為近記憶體210充當遠記憶體208的一「快取」,2LM引擎202可以進一步執行資料完善或類似快取效率的程序。
此外,2LM引擎202可管理遠記憶體208的其他方面。舉例來說,在實施例中,其中遠記憶體208包括非依電性記憶體(例如,NVM 152),可被理解的是非依電性記憶體諸如快閃記憶體會因大量的讀出/寫入而使得記憶體區段劣化。因此,2LM引擎202可以以一種透明於系統軟體的方式執行功能,包括耗損均衡、壞區塊迴避、等等。舉例來說,執行耗損均衡邏輯可以包括可從在遠記憶體208中具有一相對低擦除週期計數之乾淨未映射區段的自由池中選擇出區段。
在一些實施例中,近記憶體210在大小上會比遠記憶體208要小,但是該確切的比例可以基於,舉例來說,預期的系統使用來做變化。在這樣的實施例中,將被理解的是,因為遠記憶體208可包括更緻密和/或更便宜的非依電性記憶體,該主記憶體200的大小可被便宜地和有效地增加並獨立於在該系統中該DRAM(即,近記憶體210)的量。
在一實施例中,遠記憶體208以壓縮形式儲存資料而和近記憶體210包括該對應的未壓縮版本。因此,當近記憶體210請求遠記憶體208(在一個實施例中,它可以是一非依電性DIMM)的內容時,FMC 206檢索該內容,並以固定的荷載大小傳回它,該大小被定制來匹配該使用的壓縮演算法(例如,一種256B的傳輸)。
如以上所述,在一計算系統中用於處理容錯之當前的解決方案造成了各種課題。舉例來說,一些現有的解決方案可能會帶來下列的問題:(1)在該等ADR或eADR機制中一固有風險是在AC電源故障時由該平台沖回這些資料之任何的失敗通常會導致資料遺失。舉例來說,這些故障可能會發生肇因於連結錯誤、異動重試、VR故障、等等,其可能會在AC電源出現故障後在該提供的保留時間之內阻礙該資料提交至持久性記憶體;(2)週期性地沖回該等緩衝器的一種運行時機制係由一ISA(指令集架構)提供,被稱為是PCOMMIT。該問題是,PCOMMIT僅用於處理器產生的寫操作而入站IO寫入操作仍然需要依靠ADR來實現持久性;和/或(3)PCOMMIT也影響到一持久性記憶體裝置的資料吞吐量,由於有與在運行時沖回該WPQ和與取回完成相關聯的延遲。它還要求現有的軟體需要被修改以理解PCOMMIT。
為了解決這些議題,一實施例確保在面對平台失敗時駐留在依電性緩衝器(諸如一個或多個記憶體緩衝器、IIO緩衝器、等等)之資料的耐久性。它也能為處理器產生的寫入操作和入站IO寫入操作兩者達此目的。這可在無需處理器產生寫入操作的PCOMMIT指令下被實現,這又確保了資料吞吐量且軟體不需要被修改來理解PCOMMIT指令。
在一實施例中,(例如,相對小的)非依電性影子緩衝器被提供在處理器內部。這不在正常操作下被使用。回應於一ADR事件的發生,該處理器需要對該等依電性緩衝器的該等內容做一快照(或複製)進入到這個非依電性儲存裝置。這可以作為用於在該等WPQ和IIO緩衝器中該資料之一非依電性備份儲存裝置。然而,如果該NV影子緩衝器被提供在該處理器晶粒的外部,該連結(即,在該備份緩衝器和依電性緩衝器之間的該連結)等待時間可能或可能不容許任何時間來讓該實際的備份來完成(或甚至開始)。
一旦該等依電性緩衝器的該快照被備份在該處理器內部,該ADR機制就可以踢入(或接管)以把該依電性緩衝器沖回持久性記憶體。如果此沖回是成功的,則該備份資料可被丟棄。如果該沖回不成功(例如,由於平台錯誤或故障),則可以把該資料從該備份映像來恢復。
此外,在一些實施例中該備份儲存可以基於非依電性的技術諸如PCM、三維交叉點記憶體、和/或自旋力矩轉移隨機存取記憶體(STTRAM)。這些技術提供持久性而且沒有快閃記憶體所有之較大的寫入延遲。
圖3根據一個實施例圖示出呈現在一處理器積體電路(IC)晶粒300上的各種組件的一方塊圖。舉例來說,在各種實施例中處理器晶粒300可包括參考圖1-2和5-7進行討論之處理器的那些相同或類似的組件。如圖所示,處理器晶粒300包括數個處理器核(標記為核心0到核心7)、L1/L2耦合到每一個處理器核心以及一LLC池(其被該等處理器核
心共用)、和Cbox邏輯(例如,標記為Cbox 0至Cbox 7,以提供在該等LLC裝置間的一致性)。每一個LLC可以包括LLC的一20MB切片,但取決於實現方式,其他種的切片大小可被使用。
參照圖3,一個或多個互連或匯流排302(諸如參考圖1所討論的互連104/112)如所示的耦合處理器晶粒300的各種組件。處理器晶粒300還包括一實體層(PHY)304以與(例如,兩個)快速路徑互連(QPI)連結進行通信(例如,基於由QPI封包產生邏輯306所形成的封包)。另一種實體層邏輯308有利於與(例如,4個)SMI(可擴展記憶體互連)通道進行通信。
如本文所討論的,WPQ或記憶體緩衝器通常是指在該iMC 310內部之寫入未決佇列(WPQ)或緩衝器(標示為圖3中的「P1」)。在該WPQ中的該資料正在等待被提交給記憶體,但係全域可見的。這在一ADR事件時被沖回到記憶體。另外,ADR一般指的是傳統的機制,它提供了一個外部觸發,當被啟動時會使得在該WPQ中的資料,在概念上被稱為「ADR安全區」,將被沖回給NVDIMM。該ADR引腳由一早期的AC電力檢測電路來觸發。該AC電力損耗檢測意味著該系統會有一特定DC電力量用於ADR。這種「保持時間」是電源供應器設計、系統功耗、以及大容量電容的函數。一般情況下,該硬體應保證在該「保持時間」到期之前在該「ADR安全區」中的所有資料被沖回並提交給持久性記憶體。此外,本文討論的ADR事件通常是指導致
系統重啟或關機的事件。ADR涵蓋AC電力故障,CF9重置和熱脫扣。
一實施例包括以下的組件:NVM 152(在電力故障或任何其他的ADR事件時處理之依電性緩衝器的備份)以及從該備份映像恢復資料並把其在下一次重新啟動時提交給持久性記憶體的能力。此外,如在圖3的該方塊圖中所示,在該iMC 310(圖示為P1)和在該IIO開關312(圖示為P2)的緩衝器駐留在到持久性記憶體的路徑中。在處理器晶粒300中的NVM 152被設想為足夠大以容納儲存在該等依電性緩衝器中的該資料(諸如記憶體緩衝器包括WPQ、IIO緩衝器、等等的一個或多個)。該合併的IIO緩衝器和WPQ大小可以小於100個快取行,因此一低容量的儲存應足夠。另外,在一實施例中,在處理器晶粒300中的NVM 152被設想為共用與該(等)處理器核心相同的電力軌以讓該NVM保持在運作的時間至少要和該(等)處理器核心發送將被備份資料的時間等長。在一實施例中,處理器晶粒300可包括一個或多個電容(例如,以儲存要提供給該NVM和/或處理器核心之一額外的電荷)以增加在一電力故障或ADR事件之後該NVM中和/或處理器核心維持運作的時間量。此外,處理器晶粒300可以包括一個或多個感測器(圖中未示出),它們靠近晶粒300的組件(諸如該等處理器核心和/或PCU 314)來檢測AC電力中斷或ADR事件。這些感測器可接下來導致如本文所述的把資料備份到NVM 152的開始。
此外,由軟體所完成之任何儲存操作被認為是完
成一旦它被發送到在該圖中所示的該等緩衝器(P1/P2)。該資料仍駐留在這些於往NVDIMM路途之緩衝器中的事實係透明於軟體,軟體在這一點上會認為此已為持久性資料。在這一點上任何的系統電力故障或重置可能會導致一種無聲的資料損壞,因為軟體認為這些資料為已提交給持久性儲存。ADR是一種平台功能,它提供一指示給在該處理器300中的該PCU 314(電力控制單元)指出該平台AC軌已失效。直到該平台保持時間為止該DC軌可能是有效的,和該沖回應該在此段時間內完成。舉例來說,一定時器可被啟動,其與該保持時間一致,一旦過期會導致該系統的重置。該PCU然後發送一訊息給該iMC(有時稱為「ASyncSR」)。回應於接收到此訊息,該iMC阻止所有進一步的異動,排空該等WPQ和IIO緩衝器,並使該記憶體處於自我沖回,此時該沖回被認為是成功的。如果記憶體在處於自我沖回之前該DC軌失去電力,則該沖回失敗並可能會遺失資料。
在一實施例中,NVM 152還提供/儲存一位元旗標(其可以被稱作「NvBackUpVaild」),例如,在一預定的位置上。取決於該實現方式,如果該旗標被設置,則在該NV備份中的資料被認為是有效的。並且,如果旗標被清除,則在該NV備份中的資料被認為是無效的(並且不應被使用)。
圖4A根據一實施例圖示出一方法400的流程圖,其被執行以回應於一失敗的指示。舉例來說,方法400可以被執行(例如,在圖3的iMC 310中)以回應於接收到一
信號(例如,ASyncSR)指出電源故障(或其他ADR事件)已經開始。在一實施例中,參考圖1-3和5-7所討論的各種組件可被使用來執行參照圖4A所討論之該等操作的一個或多個。在一實施例中,方法400的一個或多個操作被實現為邏輯(例如,韌體),諸如邏輯150和/或圖1的控制器120和/或參照於其他的附圖所討論的其他的記憶體控制器(諸如iMC 310)。
參照圖1至4A,在操作404(例如,回應於一ADR事件和來自該PCU 314之一後續的ASyncSR命令),阻擋進一步的異動。操作406需要快照該等依電性緩衝器,並將它們儲存在NV備份(如,NVM 152)中。在操作408,該NV備份旗標被設置(或清除,取決於該實現方式)。在操作410,跟著正常的ADR流程(例如,依電性緩衝器沖回和主記憶體/DIMM置於自我沖回中)。在操作412,該NV備份標誌被清除(或被設置,取決於該實現方式)。
此外,操作410(ADR正常流程)易受平台錯誤和故障的影響。如果該沖回是成功的,則該NvBackUpValid被清除在操作412,因此該備份內容可被丟棄。但是,如果該沖回失敗,或在該保持時間之前無法被完成,那麼系統重置。
圖4B根據一實施例圖示出一方法450的流程圖以在下一次重新啟動中恢復資料。舉例來說,方法450可以被執行(例如,圖4B的左側由BIOS(基本輸入/輸出系統)而圖4B的右側由iMC310)在圖4A操作412之後的一重新啟動期
間。在各種實施例中,參考圖1-3和5-7所討論的各種組件可被用來執行參照圖4B所討論之該等操作的一個或多個。在一實施例中,方法450的一個或多個操作被實現為邏輯(例如,韌體),諸如邏輯150和/或圖1的控制器120和/或參照於其他的附圖所討論的其他的記憶體控制器(諸如iMC 310)。
參照圖1至4B,在操作452(例如,在圖4A操作412之後並在下一次重新啟動時),BIOS執行正常的MRC(記憶體參考碼)並初始化記憶體和NVDIMM並檢查(454)該NvBackUpValid位元(例如,在每一個iMC中)。如果該位元是清除的,BIOS跳過該等操作的其餘部分和繼續到正常啟動(460)。否則,如果該位元被設置(454),BIOS發送一命令(例如,經由一CSR寫入)給該iMC(456)以恢復該備份。對此作回應,iMC:阻擋進一步的異動(462)、排空任何未完成的異動(464)、恢復來自該NV備份的該等內容進入該WPQ(466)、排空WPQ(468)(資料現被恢復)、清除NvBackUpVaild旗標(469)、開放異動(470)、並發送狀態回該BIOS指出復原操作已完成(472)。
此外,在操作456之後(加上操作462的效能),方法450執行操作458以判定該iMC復原是否完成(例如,在操作472之後),如果是這樣的話進行到在操作460的正常啟動。
在一些實施例中,不使用PCOMMIT指令的IO持久性或處理器核心持久性可被執行如下。在一ADR事件和來自該PCU之一隨後的ASyncSR命令時,該iMC:(1)iMC對在該NVDIMMTPQ(異動未決佇列)中的寫入做一快照操
作;(2)iMC阻擋進一步前來對NVDIMM的讀出/寫入;(3)對該等緩衝器快照並將它們儲存在該NV備份中;(4)設置該NvBackUpValid旗標;(5)繼續該正常的ADR流程(例如,發送寫入到NVDIMM TPQ給非依電性記憶體控制器,並在所有的快照寫入被發送之後,iMC把該ADR電力失效命令發送給NVDIMM);(6)iMC然後清除NvBackUpValid。
此外,上述操作(5)(ADR正常流程)易受平台錯誤和故障的影響。如果該沖回是成功的,則該NvBackUpValid被清除並因此該備份內容可以被丟棄。但是,如果該沖回失敗,或在該保持時間中無法被完成,那麼系統重置。在下一次重新啟動BIOS時:(a)執行正常的MRC並初始化記憶體和NVDIMM;(b)檢查在iMC中該NvBackUpValid位元;(c)如果該NvBackUpValid位元是清除的,則BIOS跳過該等操作的其餘部分和繼續到正常啟動;(d)如果該NvBackUpValid位元被設置,則BIOS發送一命令(例如,經由一CSR寫入操作)給該iMC(456)以復原該備份。該iMC然後:(i)阻擋進一步的異動;(ii)排空任何未完成的異動;(iii)復原來自該NV備份的該等內容進入到該WPQ;(iv)排空WPQ(資料現被恢復);(v)清除NvBackUpVaild旗標;(vi)開放異動;以及(vii)發送狀態回該BIOS指出復原操作已完成。
因此,目前的實現方式並不保證該軟體認為是持久資料的持久性。雖然目前的解決方案在正常的條件下是可用的,但任何平台故障或錯誤情況(例如,連結錯誤,重試,VR故障、等等)可能會導致資料的丟失。這是不能接受
的,因為該軟體已把該資料寫入持久性記憶體並認為它是持久的而平台應信守「諾言」使其持久。為達此目的,一實施例即使在面對平台故障或錯誤條件亦確保資料的完整性。透過一旦該AC電力故障備份該等依電性緩衝器,它確保沖回這些緩衝器到持久性記憶體的失敗不會導致資料丟失,並能在下次重新啟動時被復原,並在OS(作業系統)交遞之前提交給它被引導到之該持久記憶體範圍。
圖5根據本發明的一實施例圖示出一計算系統500的方塊圖。該計算系統500可以包括一個或多個中央處理單元(CPU)502或處理器,其經由一互連網路(或匯流排)504進行通信。該處理器502可以包括一通用處理器、一網路處理器(其處理在一電腦網路503上傳送的資料)、一應用程式處理器(諸如被使用在蜂巢式電話、智慧型手機、等等的那些)、或其他類型的處理器(包括一精簡指令集電腦(RISC)處理器或一複雜指令集電腦(CISC))。各種類型的電腦網路503可被利用包括有線的(例如,以太網路、Gigibit、光纖、等等)或無線網路(諸如蜂巢式、3G(第三代蜂巢式電話技術或第三代無線格式(UWCC))、5G、低功耗嵌入式(LPE)、等等)。此外,該等處理器502可以具有一單一或多重核心設計。具有一種多核心設計的該等處理器502可以在同一積體電路(IC)晶粒上整合不同類型的處理器核心。另外,具有一種多核心設計的該等處理器502可以被實現為對稱式或非對稱式多處理器。
在一實施例中,該等處理器502的一個或多個可
以是相同於或相似於圖1的該等處理器102。舉例來說,該等處理器502的一個或多個可以包括該等核心106的一個或多個和/或快取108。另外,參考圖1-4所討論的該等操作可以由系統500的一個或多個組件來執行。
一晶片組506還可與該互連網路504進行通信。該晶片組506可包括一圖形和記憶體控制集線器(GMCH)508。該GMCH 508可以包括一記憶體控制器510(在一實施例中,其可以是相同或相似於圖1的該記憶體控制器120),其與該記憶體114進行通信。系統500還可以包括邏輯150(例如,耦合到NVM 152)在各個位置中(諸如那些圖示於圖5中但可以是在系統500內(圖中未示出)的其他位置中)。此外,NVM 152可以出現在圖5所示的各種位置中。
記憶體114可儲存資料,包括可由該CPU 502或包括在該計算系統500中任何其他設備來執行的指令序列。在本發明的一實施例中,該記憶體114可以包括一個或多個依電性儲存(或記憶體)裝置諸如隨機存取記憶體(RAM)、動態RAM(DRAM)、同步DRAM(SDRAM)、靜態RAM(SRAM)、或其他類型的儲存裝置。非依電性記憶體也可被使用諸如一硬碟、快閃、可位元組定址三維交叉點記憶體(諸如PCM)、電阻式隨機存取記憶體、NAND記憶體、NOR記憶體和STTRAM。額外的裝置可經由該互連網路504進行通信,諸如多個CPU和/或多個系統記憶體。
該GMCH 508還可以包括一圖形介面514其與一圖形加速器516通信。在本發明的一實施例中,該圖形介面
514可與圖形加速器516經由一加速圖形埠(AGP)或週邊組件互連(PCI)(或PCI Express(PCIe)的介面)進行通信。在本發明的一實施例中,一顯示器517(諸如一平板顯示器、觸控螢幕、等等)可圖形介面514進行通信,透過,舉例來說,一信號轉換器其把儲存一儲存裝置諸如視訊記憶體或系統記憶體中一影像的數位表示轉換成可由該顯示器解讀和顯示的顯示信號。由該顯示器裝置所產生之該等顯示信號在被解讀並隨後被顯示在該顯示器517上之前,可經過各種控制裝置。
一集線器介面518可允許該GMCH 508和一輸入/輸出控制集線器(ICH)520進行通信。該ICH 520可以提供一介面給I/O裝置其與該計算系統500進行通信。該ICH 520可透過一週邊橋接器(或控制器)524,諸如週邊組件互連(PCI)橋接器、一通用串列匯流排(USB)控制器、或其他類型的週邊橋接器或控制器與一匯流排522進行通信。該橋接器524可以提供在該CPU 502與週邊裝置之間的一資料路徑。其他類型的拓撲結構可被使用。此外,多個匯流排可以與該ICH 520進行通信,例如,透過多個橋接器或控制器。而且,與該ICH 520進行通信的其他週邊可以包括,在各種實施例中,整合式驅動電子裝置(IDE)或小型電腦系統介面(SCSI)硬碟、USB埠、一鍵盤、一滑鼠、並列埠、串列埠、軟碟、數位輸出支援(例如,數位視訊介面(DVI))、或其他的裝置。
該匯流排522可與一音訊裝置526、一個或多個硬碟528、以及一網路介面裝置530(其與該電腦網路503通
信,例如,經由一有線或無線介面)進行通信。如圖所示,該網路介面裝置530可被耦合到一天線531以無線地(例如,經由國際電機和電子工程師協會(IEEE)802.11介面(包括IEEE 802.11a/b/g/n、等等)、蜂巢式介面、3G、5G、LPE、等等)與該網路503進行通信。其他的裝置可以經由該匯流排522進行通信。同時,在一些實施例中,各種組件(諸如該網路介面裝置530)可與該GMCH 508進行通信。另外,該處理器502和該GMCH 508可以被結合以形成一單一晶片。此外,在其他實施例中,該圖形加速器516可被包括在該GMCH 508中。
此外,該計算系統500可以包括依電性和/或非依電性記憶體(或儲存)。舉例來說,非依電性記憶體可以包括以下的一個或多個:唯讀記憶體(ROM)、可編程ROM(PROM)、可擦除式PROM(EPROM)、電氣式EPROM(EEPROM)、硬碟(例如,528)、一軟碟、一光碟ROM(CD-ROM)、數位多功能碟(DVD)、快閃記憶體、磁光碟、或其他類型的非依電性機器可讀取媒體,其能夠儲存電子資料(例如,包括指令)。
圖6根據一實施例圖示出一計算系統600,其被佈置成一種點對點(PtP)的配置。特別的是,圖6展示出一系統其中處理器、記憶體、和輸入/輸出裝置係由多個點對點介面互連。參考圖1-5所討論的操作可由該系統600的一個或多個組件來執行。
如在圖6中所示,該系統600可包括若干處理器,
為了清楚起見,其中只有兩個處理器602和604被圖示出。該等處理器602和604可各自包括一局部記憶體控制器中心(MCH)606和608,以致能與記憶體610和612間的通信。該等記憶體610和/或612可以儲存各種資料諸如參照圖1和/或5之記憶體114或NVM 152所討論的那些。此外,MCH 606和608可以包括圖1的記憶體控制器120和/或邏輯150,在一些實施例中。而且,NVM 152可以出現在各種位置中諸如在圖6中所示的那些。
在一實施例中,該等處理器602和604可以是參照圖5所討論之該等處理器502中之一。該等處理器602和604可以分別使用PtP介面電路616和618經由一點對點(PtP)介面614交換資料。此外,經由各自的PtP 622和624使用點對點介面電路626、628、630、和632,該等處理器602和604可各自與一晶片組620交換資料。該晶片組620可以進一步經由一高性能圖形介面636,例如,使用一PtP介面電路637,與一高性能圖形電路634交換資料。如參照圖5所討論的,在一些實施例中,該圖形介面636可被耦合到一顯示器裝置(例如,顯示器517)。
如在圖6中所示,圖1之該等核心106和/或快取108的一個或多個可以位於該等處理器602和604之中。其他的實施例,然而,可能存在於圖6該系統600其他的電路、邏輯單元、或裝置之內。此外,其他實施例則可能散佈遍及在圖6中所示之若干電路、邏輯單元、或裝置中。
該晶片組620可以使用一PtP介面電路641與一匯
流排640通信。該匯流排640可具有與其通信之一個或多個裝置,諸如一匯流排橋接器642和I/O裝置643。經由一匯流排644,該匯流排橋接器642可以與其他的裝置諸如鍵盤/滑鼠645、通信裝置646(諸如調變解調器、網路介面裝置、或其他通信裝置其可以與該電腦網路503進行通信,諸如參考網路介面裝置530所討論的,包括經由天線531)、音訊I/O裝置、和/或資料儲存裝置648進行通信。該資料儲存裝置648可儲存可由該等處理器602和/或604所執行的程式碼649。
在一些實施例中,本文討論的該等組件的一個或多個可被實現在一系統單晶片(SOC)裝置上。圖7根據一實施例圖示出一SOC封裝的方塊圖。如在圖7中所示,SOC 702包括一個或多個中央處理單元(CPU)核心720、一個或多個圖形處理器單元(GPU)核心730、一輸入/輸出(I/O)介面740、和一記憶體控制器742(其可以是類似或相同於記憶體控制器120和/或邏輯150)。該SOC封裝702的各種組件可被耦合到一互連或匯流排諸如參照其他附圖在本文中所討論的。另外,該SOC封裝702可以包括更多或更少的組件,諸如本文參照其他附圖所討論的那些。再者,該SOC封裝720的每一個組件可以包括一個或多個其他的組件,例如,如參照本文其他附圖所討論的那些。在一實施例中,SOC封裝702(及其組件)被設置在一個或多個積體電路(IC)晶粒上,例如,其被封裝在一單一半導體裝置中。
如在圖7中所示,SOC封裝702經由該記憶體控
制器742被耦合到一記憶體760(其可類似於或相同於本文參考其他附圖所討論的記憶體)。在一個實施例中,該記憶體760(或它的一部分)可被整合在該SOC封裝702中。
該I/O介面740可被耦合到一個或多個I/O裝置770,例如,經由一互連和/或匯流排諸如參照其他附圖在此所討論的那些。I/O裝置770可以包括一鍵盤、一滑鼠、一觸控板、一顯示器、一影像/視訊擷取裝置(諸如一相機或攝像機/錄影機)、一觸控螢幕、一揚聲器、或類似物的一個或多個。另外,在一個實施例中,SOC封裝702可包括/整合該邏輯150和/或記憶體控制器120。可替代地,該邏輯150和/或記憶體控制器120可在該SOC封裝702的外部進行設置(即,作為一分立的邏輯)。此外,NVM 152可出現於圖示之各種位置中,諸如在圖7中所示的位置。
以下的實例涉及到進一步的實施例。實例1包括一種設備,其包含有:一處理器,包括有非依電性記憶體用以儲存來自該處理器之一個或多個依電性緩衝器的資料;以及邏輯,用以使來自該處理器之該一或多個依電性緩衝器的資料到該非依電性記憶體中之儲存,以回應於一將導致系統重置或關閉之事件的發生。實例2包含有實例1的該設備,更包含有一電力控制單元(PCU)用以產生一信號來指出該事件的發生。實例3包含有實例1的該設備,更包含有一或多個感測器來檢測該事件的發生。實例4包含有實例1的該設備,其中該處理器和該非依電性記憶體要被耦合到相同的電力軌。實例5包含有實例1的該設備,更包含有
一或多個電容,其耦合到該非依電性記憶體,用以在該事件的發生之後增加該非依電性記憶體保持運行的一時間量。實例6包含有實例1的該設備,其包含有邏輯來阻擋進一步的交易以回應於該事件的發生。實例7包含有實例1的該設備,其中該邏輯要更新一旗標用以指出來自該處理器之該一或多個依電性緩衝器的該資料到該非依電性記憶體中之儲存的開始。實例8包含有實例1的該設備,其中該邏輯要更新一旗標用以指出來自該處理器之該一或多個依電性緩衝器的該資料到該非依電性記憶體中之儲存的完成。實例9包含有實例1的該設備,其中該事件對應於一交流(AC)電力故障。實例10包含有實例1的該設備,其中該處理器要包含有該邏輯。實例11包含有實例1的該設備,其中,該一或多個依電性緩衝器要包含一或多個非依電性DIMM(雙行記憶體模組)。實例12包含有實例1的該設備,其中該非依電性記憶體要包含有以下的一或多者:奈米線記憶體、鐵電電晶體隨機存取記憶體(FeTRAM)、磁阻式隨機存取記憶體(MRAM)、快閃記憶體、自旋扭矩轉移隨機存取記憶體(STTRAM)、電阻式隨機存取記憶體、可位元組定址之三維交叉點記憶體、相變記憶體(PCM)。實例13包含有實例1的該設備,其中該處理器的一或多者具有都在一相同積體電路晶粒上之一或多個處理器核心、該非依電性記憶體、和邏輯。
實例14包括一種方法,其包含有:把來自一處理器之一或多個依電性緩衝器的資料儲存到該處理器的非依
電性記憶體中;以及使來自該處理器之該一或多個依電性緩衝器的該資料到該非依電性記憶體中之儲存以回應於一將導致系統重置或關閉之事件的發生。實例15包含有實例14的該方法,更包含有一電力控制單元(PCU)產生一信號來指出該事件的發生。實例16包含有實例14的該方法,更包含有一或多個感測器來檢測該事件的發生。實例17包含有實例14的該方法,其中該處理器和該非依電性記憶體被耦合到相同的電力軌。實例18包含有實例14的該方法,其中一或多個電容被耦合到該非依電性記憶體用以在該事件的發生之後增加該非依電性記憶體保持運行的一時間量。實例19包含有實例14的該方法,其包含有阻擋進一步的交易以回應於該事件的發生。實例20包含有實例14的該方法,其更包含有更新一旗標用以指出來自該處理器之該一或多個依電性緩衝器的該資料到該非依電性記憶體中之儲存的開始。實例21包含有實例14的該方法,其更包含有更新一旗標用以指出來自該處理器之該一或多個依電性緩衝器的該資料到該非依電性記憶體中之儲存的完成。實例22包含有實例14的該方法,其中該事件對應於一交流(AC)電力故障。
實例23包含有一電腦可讀取媒體,其包含有一個或多個指令,當在一處理器上執行時會配置該處理器以執行一個或多個操作以:把來自一處理器之一個或多個依電性緩衝器的資料儲存到該處理器的非依電性記憶體中;以及使來自該處理器之該等一個或多個依電性緩衝器的該資
料儲存到該非依電性記憶體中以回應於一將導致系統重置或關閉之事件的發生。實例24包含有實例23的該電腦可讀取媒體,更包含有一個或多個指令,當在一處理器上執行時會配置該處理器以執行一個或多個操作以致使一電力控制單元(PCU)產生一信號來指出該事件的發生。實例25包含有實例23的該電腦可讀取媒體,更包含有一個或多個指令,當在一處理器上執行時會配置該處理器以執行一個或多個操作以致使一個或多個感測器來檢測該事件的發生。
實例26包括一種系統,其包含有:一顯示器裝置以顯示一張或多張影像;一處理器,被耦合到該顯示器裝置,其包含有非依電性記憶體以儲存來自該處理器之一個或多個依電性緩衝器的資料;以及邏輯以致使來自該處理器之該等一個或多個依電性緩衝器的資料儲存到該非依電性記憶體,以回應於一將導致系統重置或關閉之事件的發生。實例27包含有實例26的該系統,更包含有一電力控制單元(PCU)以產生一信號來指出該事件的發生。實例28包含有實例26的該系統,更包含有一個或多個感測器來檢測該事件的發生。實例29包含有實例26的該系統,其中該處理器和該非依電性記憶體將被耦合到相同的電力軌。實例30包含有實例26的該系統,更包含有一個或多個電容,其耦合到該非依電性記憶體,以在該事件的發生之後增加該非依電性記憶體保持運行的一時間量。實例31包含有實例26的該系統,其包含有邏輯來阻擋進一步的交易以回應於該事件的發生。實例32包含有實例26的該系統,其中該邏輯
將更新一旗標以指出來自該處理器之該等一個或多個依電性緩衝器的該資料儲存到該非依電性記憶體的開始。實例33包含有實例26的該系統,其中該邏輯將更新一旗標以指出來自該處理器之該等一個或多個依電性緩衝器的該資料儲存到該非依電性記憶體的完成。實例34包含有實例26的該系統,其中該事件對應於一種交流(AC)電力故障。實例35包含有實例26的該系統,其中該處理器將包含有該邏輯。實例36包含有實例26的該系統,其中該等一個或多個依電性緩衝器將包含一個或多個非依電性DIMM(雙行記憶體模組)。實例37包含有實例26的該系統,其中該非依電性記憶體將包含有以下的一個或多個:奈米線記憶體、鐵電電晶體隨機存取記憶體(FeTRAM)、磁阻式隨機存取記憶體(MRAM)、快閃記憶體、自旋扭矩轉移隨機存取記憶體(STTRAM)、電阻式隨機存取記憶體、可位元組定址之三維交叉點記憶體、相變記憶體(PCM)。實例38包含有實例26的該系統,其中該處理器的一個或多個具有一個或多個核心、該非依電性記憶體、和邏輯都在同一個積體電路晶粒上。
實例39包含有一設備,其包含有構件以執行一種如前述任一權利請求項所描述的方法。
實例40包含有機器可讀取儲存,其包含有機器可讀指令,當被執行時,會實施一種方法或實現一種設備,如前述任一權利請求項所描述。
在各種實施例中,在此所討論的操作,例如,參
考圖1-7的那些,可被實現為硬體(例如,電路)、軟體、韌體、微碼、或它們的組合,其可以被提供為一種電腦程式產品,例如,包含有一種有形的(例如,非暫時性)的機器可讀取或電腦可讀取媒體,其上儲存有指令(或軟體程式)被使用來編程一電腦以執行如本文所討論的一種程序。此外,以舉例的方式,該術語「邏輯」可包含有軟體、硬體、或軟體和硬體的組合。該機器可讀取媒體可以包含有一種儲存裝置諸如針對圖1-7所討論的那些。
此外,這種有形的電腦可讀取媒體可以被下載成為一電腦程式產品,其中該程式可以從一遠端電腦(例如,一伺服器)經由通信連結(例如,一匯流排、一調變解調器、或一網路連接)透過資料信號的方式(諸如用一種載波或其他的傳播媒體)傳送到一請求的電腦(例如,一客戶端)。
在本說明書中參考到「一實施例」或「一個實施例」意味著與該實施例連結所描述的一種特定的功能、結構、或特徵可被包含在至少一個實現方式之中。在本說明書中各種「在一實施例中」短語的出現可能是指或可能不全指同一個實施例。
此外,在本說明書和權利請求項中,該等術語「耦合」和「連接」以及它們的衍生詞可被使用。在一些實施例中,「連接」可被用於指出兩個或更多的元件彼此直接做實體或電氣地接觸。「耦合」可以意味著兩個或更多的元件直接做實體或電氣地接觸。然而,「耦合」還可以意味著兩個或更多元件可能不是相互直接地接觸,但仍然可能彼此
協作或互動。
因此,儘管實施例已經以特定於結構特徵和/或方法論操作的語言進行了描述,但是應被理解的是,要求保護的技術主題可以不侷限於所述之具體特徵或操作。相反的是,這些具體特徵和操作被揭露為實現所要求被保護技術主題的樣本形式。
100‧‧‧系統
102_0~102_N‧‧‧處理器
104‧‧‧互連
106_0~106_M‧‧‧核心
108‧‧‧快取
110‧‧‧路由器
112‧‧‧匯流排或互連
114‧‧‧依電性記憶體
116-1‧‧‧L1
120‧‧‧依電性記憶體控制器
150‧‧‧NVM控制邏輯
152‧‧‧NVM
Claims (22)
- 一種設備,其包含有:一處理器,包括有非依電性記憶體用以儲存來自該處理器之一或多個依電性緩衝器的資料;以及邏輯,用以致使來自該處理器之該一或多個依電性緩衝器的資料到該非依電性記憶體中之儲存,以回應於一將導致系統重置或關閉之事件的發生。
- 如請求項1之設備,更包含有一電力控制單元(PCU)用以產生一信號來指出該事件的發生。
- 如請求項1之設備,更包含有一或多個感測器來檢測該事件的發生。
- 如請求項1之設備,其中該處理器和該非依電性記憶體要被耦合到相同的電力軌。
- 如請求項1之設備,更包含有一或多個電容,其耦合到該非依電性記憶體,用以在該事件的發生之後增加該非依電性記憶體保持運行的一時間量。
- 如請求項1之設備,其包含有邏輯來阻擋進一步的交易以回應於該事件的發生。
- 如請求項1之設備,其中該邏輯要更新一旗標用以指出來自該處理器之該一或多個依電性緩衝器的該資料到該非依電性記憶體中之儲存的開始。
- 如請求項1之設備,其中該邏輯要更新一旗標用以指出來自該處理器之該一或多個依電性緩衝器的該資料到 該非依電性記憶體中之儲存的完成。
- 如請求項1之設備,其中該事件對應於一交流(AC)電力故障。
- 如請求項1之設備,其中該處理器要包含有該邏輯。
- 如請求項1之設備,其中該一或多個依電性緩衝器要包含一或多個非依電性DIMM(雙行記憶體模組)。
- 如請求項1之設備,其中該非依電性記憶體要包含有以下的一或多者:奈米線記憶體、鐵電電晶體隨機存取記憶體(FeTRAM)、磁阻式隨機存取記憶體(MRAM)、快閃記憶體、自旋扭矩轉移隨機存取記憶體(STTRAM)、電阻式隨機存取記憶體、可位元組定址之三維交叉點記憶體、相變記憶體(PCM)。
- 如請求項1之設備,其中該處理器的一或多者具有都在一相同積體電路晶粒上之一或多個處理器核心、該非依電性記憶體、和該邏輯。
- 一種方法,其包含有:把來自一處理器之一或多個依電性緩衝器的資料儲存到該處理器的非依電性記憶體中;以及致使來自該處理器之該一或多個依電性緩衝器的該資料到該非依電性記憶體中之儲存以回應於一將導致系統重置或關閉之事件的發生。
- 如請求項14之方法,更包含有一電力控制單元(PCU)產生一信號來指出該事件的發生。
- 如請求項14之方法,更包含有一或多個感測器來檢測該 事件的發生。
- 如請求項14之方法,其中該處理器和該非依電性記憶體被耦合到相同的電力軌。
- 如請求項14之方法,其中一或多個電容被耦合到該非依電性記憶體用以在該事件的發生之後增加該非依電性記憶體保持運行的一時間量。
- 如請求項14之方法,其包含有阻擋進一步的交易以回應於該事件的發生。
- 如請求項14之方法,其更包含有更新一旗標用以指出來自該處理器之該一或多個依電性緩衝器的該資料到該非依電性記憶體中之儲存的開始。
- 如請求項14之方法,其更包含有更新一旗標用以指出來自該處理器之該一或多個依電性緩衝器的該資料到該非依電性記憶體中之儲存的完成。
- 如請求項14之方法,其中該事件對應於一交流(AC)電力故障。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/583,037 US20160188414A1 (en) | 2014-12-24 | 2014-12-24 | Fault tolerant automatic dual in-line memory module refresh |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201636770A true TW201636770A (zh) | 2016-10-16 |
Family
ID=56151351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104138741A TW201636770A (zh) | 2014-12-24 | 2015-11-23 | 容錯式自動雙行記憶體模組更新技術 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20160188414A1 (zh) |
EP (1) | EP3238077B1 (zh) |
KR (1) | KR102451952B1 (zh) |
CN (1) | CN107003919B (zh) |
TW (1) | TW201636770A (zh) |
WO (1) | WO2016105814A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI678622B (zh) * | 2018-06-15 | 2019-12-01 | 慧榮科技股份有限公司 | 資料儲存裝置的開發系統以及產品化方法 |
CN110955569A (zh) * | 2019-11-26 | 2020-04-03 | 英业达科技有限公司 | 双列直插式存储器模块的测试方法、系统、介质及装置 |
TWI714838B (zh) * | 2016-10-01 | 2021-01-01 | 國立清華大學 | 記憶體系統與其記憶體裝置以及其寫入和讀出記憶體的方法 |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10592416B2 (en) | 2011-09-30 | 2020-03-17 | Oracle International Corporation | Write-back storage cache based on fast persistent memory |
US10380021B2 (en) | 2013-03-13 | 2019-08-13 | Oracle International Corporation | Rapid recovery from downtime of mirrored storage device |
US10296462B2 (en) | 2013-03-15 | 2019-05-21 | Oracle International Corporation | Method to accelerate queries using dynamically generated alternate data formats in flash cache |
US9760430B2 (en) * | 2015-08-28 | 2017-09-12 | Dell Products L.P. | System and method for dram-less SSD data protection during a power failure event |
US20170109072A1 (en) * | 2015-10-16 | 2017-04-20 | SK Hynix Inc. | Memory system |
US10275160B2 (en) | 2015-12-21 | 2019-04-30 | Intel Corporation | Method and apparatus to enable individual non volatile memory express (NVME) input/output (IO) Queues on differing network addresses of an NVME controller |
US10514740B2 (en) * | 2016-01-22 | 2019-12-24 | Hitachi, Ltd. | Computer device and computer-readable storage medium |
US10394310B2 (en) * | 2016-06-06 | 2019-08-27 | Dell Products, Lp | System and method for sleeping states using non-volatile memory components |
US10200376B2 (en) | 2016-08-24 | 2019-02-05 | Intel Corporation | Computer product, method, and system to dynamically provide discovery services for host nodes of target systems and storage resources in a network |
US10133667B2 (en) * | 2016-09-06 | 2018-11-20 | Orcle International Corporation | Efficient data storage and retrieval using a heterogeneous main memory |
CN107797642B (zh) * | 2016-09-07 | 2019-12-06 | 华为技术有限公司 | 一种备电方法及装置 |
US10176116B2 (en) | 2016-09-28 | 2019-01-08 | Intel Corporation | Computer product, method, and system to provide discovery services to discover target storage resources and register a configuration of virtual target storage resources mapping to the target storage resources and an access control list of host nodes allowed to access the virtual target storage resources |
US10262751B2 (en) | 2016-09-29 | 2019-04-16 | Intel Corporation | Multi-dimensional optimization of electrical parameters for memory training |
CN107885671B (zh) | 2016-09-30 | 2021-09-14 | 华为技术有限公司 | 一种非易失性内存的持久化方法和计算设备 |
US10698817B2 (en) * | 2017-06-12 | 2020-06-30 | Dell Products, L.P. | Method for determining available stored energy capacity at a power supply and system therefor |
US10719446B2 (en) | 2017-08-31 | 2020-07-21 | Oracle International Corporation | Directly mapped buffer cache on non-volatile memory |
US10732836B2 (en) | 2017-09-29 | 2020-08-04 | Oracle International Corporation | Remote one-sided persistent writes |
US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
US10956335B2 (en) | 2017-09-29 | 2021-03-23 | Oracle International Corporation | Non-volatile cache access using RDMA |
KR102427323B1 (ko) * | 2017-11-08 | 2022-08-01 | 삼성전자주식회사 | 반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법 |
US11016890B2 (en) | 2018-02-05 | 2021-05-25 | Micron Technology, Inc. | CPU cache flushing to persistent memory |
US10642695B2 (en) * | 2018-02-08 | 2020-05-05 | Micron Technology, Inc. | Storage backed memory package save trigger |
US10831393B2 (en) * | 2018-02-08 | 2020-11-10 | Micron Technology, Inc. | Partial save of memory |
US10990463B2 (en) | 2018-03-27 | 2021-04-27 | Samsung Electronics Co., Ltd. | Semiconductor memory module and memory system including the same |
KR102538679B1 (ko) * | 2018-04-06 | 2023-06-02 | 삼성전자주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
CN109144778A (zh) * | 2018-07-27 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种存储服务器系统及其备份方法、系统及可读存储介质 |
KR102649315B1 (ko) * | 2018-12-03 | 2024-03-20 | 삼성전자주식회사 | 휘발성 메모리 장치를 포함하는 메모리 모듈 및 이를 포함하는 메모리 시스템 |
US11287986B2 (en) | 2018-12-31 | 2022-03-29 | Micron Technology, Inc. | Reset interception to avoid data loss in storage device resets |
US11176042B2 (en) | 2019-05-21 | 2021-11-16 | Arm Limited | Method and apparatus for architectural cache transaction logging |
US11237960B2 (en) * | 2019-05-21 | 2022-02-01 | Arm Limited | Method and apparatus for asynchronous memory write-back in a data processing system |
CN110750466A (zh) * | 2019-10-18 | 2020-02-04 | 深圳豪杰创新电子有限公司 | 提高闪存擦写寿命的方法和装置 |
US20230409472A1 (en) * | 2020-12-22 | 2023-12-21 | Telefonaktiebolaget Lm Ericsson (Publ) | Snapshotting Pending Memory Writes Using Non-Volatile Memory |
CN113282523B (zh) * | 2021-05-08 | 2022-09-30 | 重庆大学 | 一种缓存分片的动态调整方法、装置以及存储介质 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3292864B2 (ja) * | 1995-02-07 | 2002-06-17 | 株式会社日立製作所 | データ処理装置 |
US6172902B1 (en) * | 1998-08-12 | 2001-01-09 | Ecole Polytechnique Federale De Lausanne (Epfl) | Non-volatile magnetic random access memory |
US6990603B2 (en) * | 2002-01-02 | 2006-01-24 | Exanet Inc. | Method and apparatus for securing volatile data in power failure in systems having redundancy |
US6822903B2 (en) * | 2003-03-31 | 2004-11-23 | Matrix Semiconductor, Inc. | Apparatus and method for disturb-free programming of passive element memory cells |
US7131019B2 (en) * | 2003-09-08 | 2006-10-31 | Inventec Corporation | Method of managing power of control box |
US6989327B2 (en) * | 2004-01-31 | 2006-01-24 | Hewlett-Packard Development Company, L.P. | Forming a contact in a thin-film device |
US7644239B2 (en) * | 2004-05-03 | 2010-01-05 | Microsoft Corporation | Non-volatile memory cache performance improvement |
US7536506B2 (en) * | 2004-06-21 | 2009-05-19 | Dot Hill Systems Corporation | RAID controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage |
DE602004003583T2 (de) * | 2004-10-04 | 2007-11-22 | Research In Motion Ltd., Waterloo | System und Verfahren zum Datensichern bei Stromausfall |
US20060080515A1 (en) * | 2004-10-12 | 2006-04-13 | Lefthand Networks, Inc. | Non-Volatile Memory Backup for Network Storage System |
JP2006338370A (ja) * | 2005-06-02 | 2006-12-14 | Toshiba Corp | メモリシステム |
US7613915B2 (en) * | 2006-11-09 | 2009-11-03 | BroadOn Communications Corp | Method for programming on-chip non-volatile memory in a secure processor, and a device so programmed |
US7904647B2 (en) * | 2006-11-27 | 2011-03-08 | Lsi Corporation | System for optimizing the performance and reliability of a storage controller cache offload circuit |
US7554855B2 (en) * | 2006-12-20 | 2009-06-30 | Mosaid Technologies Incorporated | Hybrid solid-state memory system having volatile and non-volatile memory |
CN101135984B (zh) * | 2007-01-08 | 2010-12-01 | 中兴通讯股份有限公司 | 硬件信息备份装置、运行信息备份及检测信息保存方法 |
US8904098B2 (en) * | 2007-06-01 | 2014-12-02 | Netlist, Inc. | Redundant backup using non-volatile memory |
US7802129B2 (en) * | 2007-10-17 | 2010-09-21 | Hewlett-Packard Development Company, L.P. | Mobile handset employing efficient backup and recovery of blocks during update |
US8009499B2 (en) * | 2008-06-16 | 2011-08-30 | Hewlett-Packard Development Company, L.P. | Providing a capacitor-based power supply to enable backup copying of data from volatile storage to persistent storage |
JP2010020586A (ja) * | 2008-07-11 | 2010-01-28 | Nec Electronics Corp | データ処理装置 |
US7954006B1 (en) * | 2008-12-02 | 2011-05-31 | Pmc-Sierra, Inc. | Method and apparatus for archiving data during unexpected power loss |
US8195901B2 (en) * | 2009-02-05 | 2012-06-05 | International Business Machines Corporation | Firehose dump of SRAM write cache data to non-volatile memory using a supercap |
US7990797B2 (en) * | 2009-02-11 | 2011-08-02 | Stec, Inc. | State of health monitored flash backed dram module |
CN104025066B (zh) * | 2011-12-29 | 2018-07-24 | 英特尔公司 | 用于能量高效计算的异构存储器晶片堆叠 |
BR112014014815B1 (pt) * | 2012-01-03 | 2021-11-03 | Hewlett-Packard Development Company, L.P. | Dispositivo de computação, método e meio de armazenamento para realização de cópia de segurança de firmware |
US20130205065A1 (en) * | 2012-02-02 | 2013-08-08 | Lsi Corporation | Methods and structure for an improved solid-state drive for use in caching applications |
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 |
US9128824B2 (en) * | 2012-12-24 | 2015-09-08 | Intel Corporation | In-place change between transient and persistent state for data structures on non-volatile memory |
US9471516B2 (en) * | 2013-08-14 | 2016-10-18 | Facebook, Inc. | Techniques for transmitting a command to control a peripheral device through an audio port |
CN104077246A (zh) * | 2014-07-02 | 2014-10-01 | 浪潮(北京)电子信息产业有限公司 | 一种实现易失性存储器备份的装置 |
-
2014
- 2014-12-24 US US14/583,037 patent/US20160188414A1/en not_active Abandoned
-
2015
- 2015-11-23 TW TW104138741A patent/TW201636770A/zh unknown
- 2015-11-24 KR KR1020177014138A patent/KR102451952B1/ko active IP Right Grant
- 2015-11-24 WO PCT/US2015/062555 patent/WO2016105814A1/en active Application Filing
- 2015-11-24 EP EP15874018.3A patent/EP3238077B1/en active Active
- 2015-11-24 CN CN201580064297.0A patent/CN107003919B/zh active Active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI714838B (zh) * | 2016-10-01 | 2021-01-01 | 國立清華大學 | 記憶體系統與其記憶體裝置以及其寫入和讀出記憶體的方法 |
TWI678622B (zh) * | 2018-06-15 | 2019-12-01 | 慧榮科技股份有限公司 | 資料儲存裝置的開發系統以及產品化方法 |
US11461516B2 (en) | 2018-06-15 | 2022-10-04 | Silicon Motion, Inc. | Development system and productization method for data storage device |
CN110955569A (zh) * | 2019-11-26 | 2020-04-03 | 英业达科技有限公司 | 双列直插式存储器模块的测试方法、系统、介质及装置 |
CN110955569B (zh) * | 2019-11-26 | 2021-10-01 | 英业达科技有限公司 | 双列直插式存储器模块的测试方法、系统、介质及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3238077B1 (en) | 2022-08-03 |
KR20170098802A (ko) | 2017-08-30 |
CN107003919B (zh) | 2022-06-21 |
EP3238077A4 (en) | 2018-11-14 |
US20160188414A1 (en) | 2016-06-30 |
KR102451952B1 (ko) | 2022-10-11 |
WO2016105814A1 (en) | 2016-06-30 |
CN107003919A (zh) | 2017-08-01 |
EP3238077A1 (en) | 2017-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201636770A (zh) | 容錯式自動雙行記憶體模組更新技術 | |
US8990617B2 (en) | Fault-tolerant computer system, fault-tolerant computer system control method and recording medium storing control program for fault-tolerant computer system | |
US20150089287A1 (en) | Event-triggered storage of data to non-volatile memory | |
TWI553650B (zh) | 以記憶體控制器來處理資料錯誤事件之方法、設備及系統 | |
KR101862112B1 (ko) | 비휘발성 메모리(nvm) 기술 기반 메모리의 부팅 시간 제로화의 가속화 | |
TWI483265B (zh) | 硬體動態快取電源管理 | |
US10346091B2 (en) | Fabric resiliency support for atomic writes of many store operations to remote nodes | |
US11481294B2 (en) | Runtime cell row replacement in a memory | |
US20210286667A1 (en) | Cloud scale server reliability management | |
EP3705979B1 (en) | Ssd restart based on off-time tracker | |
US20180341585A1 (en) | Write-back cache for storage controller using persistent system memory | |
US20190227884A1 (en) | Data loss prevention for integrated memory buffer of a self encrypting drive | |
EP3699747A1 (en) | Raid aware drive firmware update | |
EP4002175A1 (en) | Seamless smm global driver update base on smm root-of-trust | |
JP6151362B2 (ja) | 自動化された選択的パワーサイクリングを介した計算サブシステムハードウェアリカバリ | |
US10725689B2 (en) | Physical memory region backup of a volatile memory to a non-volatile memory | |
US10838818B2 (en) | Memory persistence from a volatile memory to a non-volatile memory | |
WO2019100186A1 (en) | Power management for partial cache line sparing | |
EP4155894A1 (en) | Technologies for memory mirroring across an interconnect | |
US11966339B1 (en) | Selecting between basic and global persistent flush modes | |
US20220374320A1 (en) | Reliability availability serviceability (ras) service framework | |
US20240111680A1 (en) | Selecting Between Basic and Global Persistent Flush Modes |