TWI553650B - 以記憶體控制器來處理資料錯誤事件之方法、設備及系統 - Google Patents
以記憶體控制器來處理資料錯誤事件之方法、設備及系統 Download PDFInfo
- Publication number
- TWI553650B TWI553650B TW104108096A TW104108096A TWI553650B TW I553650 B TWI553650 B TW I553650B TW 104108096 A TW104108096 A TW 104108096A TW 104108096 A TW104108096 A TW 104108096A TW I553650 B TWI553650 B TW I553650B
- Authority
- TW
- Taiwan
- Prior art keywords
- handler
- handler program
- memory
- program
- wash
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/079—Root cause analysis, i.e. error or fault diagnosis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
- G06F11/106—Correcting systematically all correctable errors, i.e. scrubbing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- 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/2053—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 where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
Description
本發明實施例一般係有關於電腦記憶體領域,並且尤其是,但不全部是,有關於一記憶體裝置中之一錯誤的處理。
在今日的電腦世界,維持良好的電腦系統可靠度以及正常運行時間往往是重要或甚至是強制性。為了維持主要的電腦正常運行時間,系統設計師建造可靠度、可用性、適用性、易管理(RASM)特點以改進全面的系統可靠度和可用性。因此,普遍地發現於此一系統中以不同位準被採用之各種程度的冗餘、錯誤更正、錯誤檢測以及錯誤遏制技術。
電腦系統失效最常見型式之一者是歸因於系統記憶體錯誤。記憶體裝置是易於受到錯誤,例如,暫態(或軟體)錯誤。如果這些錯誤不適當地處理,則它們可能導致一電腦系統故障。因此,記憶體子系統(尤其是雙排記憶體模組或DIMM)在這方面受到特別的關注。例如,糾
錯碼(ECC)形式之冗餘資訊或其他此類糾錯資訊可被使用於記憶體洗滌操作中以改進整體的系統可靠度。要求記憶體洗滌是一個錯誤檢測/更正技術,其中在一記憶體片段中之錯誤,不論是為單一位元或多位元錯誤,皆可在操作過程中受檢測以服務一主機操作系統之存取記憶體片段的要求。相對地,習知如巡邏記憶體洗滌的另一種RASM技術,其用以在任何此等主機操作系統要求存取該記憶體片段之前,或與之無關地,積極掃描一記憶體片段之錯誤。
另一RAS技術-習知如“記憶體備用”-分配一個或多個記憶體片段,其各可利用於作為一使用中(或“現用”)記憶體片段之一實際或預期的未來失效事件中之一備用片段。當錯誤檢測或其他機構表明一使用中記憶體片段之此失效時,一備用記憶體片段被分配以作為一接任者以(代替)已失效/正失效片段。系統記憶體映射被更新以聯結位址-例如,一位址範圍-與該接任者片段之記憶體位置,其中先前的此等位址被映射而不同地辨識已失效/正失效現用片段之各別的位置。
依據本發明之一實施例,係特地提出一種記憶體控制器,其包括:包括電路之洗滌器邏輯,該洗滌器邏輯用以進行一記憶體之複數個現用片段的一第一巡邏洗滌,以及用以進行一平臺之一個或多個片段的一第二巡邏洗滌,而該等一個或多個片段之各者可利用作為對於該等複數現
用片段之一備用片段;以及包括電路之備用器邏輯,該備用器邏輯用以接收基於該第一巡邏洗滌所檢測之一第一不可更正錯誤事件的一表示,其中於一第一處置器程序和一第二處置器程序中,該備用器邏輯用以響應於該第一不可更正錯誤事件之表示而僅傳信該第一處置器程序,該備用器邏輯進一步地用以接收基於該第二巡邏洗滌所檢測之一第二不可更正錯誤事件的一表示,其中於該第一處置器程序和該第二處置器程序中,該備用器邏輯用以響應於該第二不可更正錯誤事件之表示而僅傳信該第二處置器程序。
100‧‧‧系統
110‧‧‧記憶體控制器
112‧‧‧記憶體備用器邏輯
114‧‧‧記憶體洗滌器邏輯
120‧‧‧記憶體子系統
125‧‧‧互連
130‧‧‧片段
132a-132n‧‧‧片段
140‧‧‧記憶體控制器
142‧‧‧備用片段
150‧‧‧處理器
152‧‧‧第一處置器
154‧‧‧第二處置器
200‧‧‧記憶體控制器
210‧‧‧記憶體備用器邏輯
212‧‧‧片段檢測邏輯
214‧‧‧錯誤臨界值
220‧‧‧片段查詢與取代邏輯
222‧‧‧片段重新映射邏輯
224‧‧‧處理器調用邏輯
230‧‧‧記憶體洗滌器邏輯
232‧‧‧錯誤檢測邏輯
234‧‧‧糾錯邏輯
300‧‧‧控制記憶體方法
310-360‧‧‧控制記憶體步驟
400‧‧‧控制記憶體方法
410-430‧‧‧控制記憶體步驟
450‧‧‧洗滌記憶體備用排列方法
460-476‧‧‧洗滌步驟
480‧‧‧序列
482-486‧‧‧相位
500‧‧‧控制記憶體方法
510-522‧‧‧控制記憶體步驟
550‧‧‧控制記憶體方法
560-580‧‧‧控制記憶體步驟
590‧‧‧序列
592-598‧‧‧相位
600‧‧‧系統
610‧‧‧匯流排
620‧‧‧處理器
630‧‧‧記憶體子系統
632‧‧‧記憶體裝置
634‧‧‧記憶體控制器
636‧‧‧操作系統(OS)
638‧‧‧指令
640‧‧‧輸入/輸出(I/O)介面
650‧‧‧網路介面
660‧‧‧儲存器
662‧‧‧程式碼/資料
670‧‧‧週邊介面
700‧‧‧裝置
710‧‧‧處理器
720‧‧‧音訊子系統
730‧‧‧顯示子系統
732‧‧‧顯示介面
740‧‧‧I/O控制器
750‧‧‧電力管理
760‧‧‧記憶體子系統
762‧‧‧記憶體裝置
764‧‧‧記憶體控制器
770‧‧‧連接
772‧‧‧行動電話連接
774‧‧‧無線連接
780‧‧‧週邊連接
782、784‧‧‧連接
本發明各種實施例於附圖中經由範例而例示,且不是作為限制,並且其中:
圖1是例示根據一實施例用以提供記憶體片段存取之一電腦平臺元件的功能方塊圖。
圖2是例示根據一實施例用以傳信記憶體錯誤事件之一記憶體控制器元件的功能方塊圖。
圖3是例示根據一實施例用以調用處理一記憶體錯誤事件之操作方法的元件之流程圖。
圖4A、4B是例示根據一實施例各用以處理一記憶體錯誤事件之方法的元件之流程圖。
圖4C是例示根據一實施例所進行之記憶體片段配置元件的功能方塊圖。
圖5A、5B是各例示根據一實施例用以處理一記憶體錯誤事件之方法的元件之流程圖。
圖5C是例示根據一實施例所進行之記憶體片段配置元件的功能方塊圖。
圖6是例示根據一實施例用以控制一記憶體之一電腦系統元件的功能方塊圖。
圖7是例示根據一實施例用以控制一記憶體之移動式平臺元件的功能方塊圖。
此處所討論之實施例多方面提供用於包含一個或多個備用記憶體片段之一平臺中的錯誤檢測。如此處所使用地,“記憶體片段”係指一記憶體硬體單元,於一個或多個論點中,其可以無關於相似記憶體硬體單元而獨立操作。一記憶體片段可以包括一排列、群集或其他記憶體硬體構件-例如,於其中該構件包含複數個不同可定址記憶體位置。一記憶體片段可以包含,或耦合至僅專用於耦合該片段,並且不耦合於一個或多個其他記憶體片段,之介面硬體,而有一匯流排或其他互連在該片段和一記憶體控制器之間耦合。另外地或此外地,該記憶體片段可以包含一專用晶片、位址解碼器或其他邏輯。某些實施例特點相對於用於個別的記憶體排列之不同地實行記憶體洗滌及/或記憶體備用而在此處給予討論。但是,此討論可以額外地或另外地延伸以應用於任何多種其他型式的記憶體片段。
一所給予的記憶體片段,例如,可以基於一主
機操作系統(OS)或其他代理器目前是否能夠存取該記憶體片段,而分類作為現用或備用。一備用片段可以是可利用於可能發生的致動以作為已辨識作為一正失效片段之一已失效片段的另一記憶體片段之一取代。為簡潔起見,此一片段於此處稱為“已失效/正失效”。洗滌操作可以根據不同實施例而不同地進行以檢測-並且於一些實施例中-以更正一個或多個記憶體片段中之錯誤。某些實施例是不受限定於相對特定構件,其中ECC或其他之糾錯資訊是不同地被計算、被儲存並且隨後被取得以供進行一個別錯誤檢測計算之使用。此等構件的特定細節,其可以自習見的錯誤檢測/更正技術以及機構被調適,將不在此處討論以避免混淆此等實施例之特點。
一備用記憶體片段之洗滌可以基於預留位置資料(以及對應的糾錯資訊)而進行,例如,其可以儲存於備用記憶體片段中-例如,無關於一主機OS或其他要求者代理器之一記憶體控制器及/或記憶體裝置。在備用片段之此洗滌期間,該備用片段可能是不可見(例如,未登記)於需存取目前現用記憶體片段之主機OS或其他之此要求者代理器。
雖然現代的記憶體採用錯誤更正碼(ECC)以檢測及/或更正單一與雙位元錯誤,較高階多位元錯誤仍然對於系統可靠度和可用性造成一主要問題。錯誤檢測機構通常包含分類一可更正錯誤或一不可更正錯誤之一者的一錯誤之功能性。習見的錯誤處理技術藉由啟動一操作系統之
機器檢查操作而不同地反應於記憶體中之一不可更正錯誤。此等操作包含全系統關機之性能。
通常,習見的記憶體洗滌技術甚至不支援備用記憶體之洗滌,更少地提供對於現用片段和備用片段之不同各別的錯誤處理機構。相對地,基於與一檢測的錯誤事件相關聯之一記憶體片段是(或否)目前受指定為一現用片段或一備用片段,某些實施例提供不同處置器程序之傳信。例如,對於一現用片段所檢測之一錯誤可能導致一異常處理器之一機器檢查異常或其他之調用。相對地,與一備用片段相關聯之一錯誤事件可能導致一不同型式的事件處理器(例如,一中斷處置器)之傳信。於一實施例中,一備用片段錯誤事件導致在一處理器之一系統管理模式的期間進行事件處理操作-例如,因而一現用片段錯誤事件可能反而導致在一不同模式的處理器之期間藉由一主機OS而執行操作。另外地或代替地,一現用片段錯誤事件可能導致事件處理操作而引起全平臺重新設定、崩潰或其他此類之“藍屏幕”事件。一備用片段錯誤事件可能無關於需要重新開機或不同地利用平臺而重新開始軟體執行而代替地允許完成事件處理操作。
圖1例示根據一實施例所實行的一系統100之元件。如此處所討論地,系統100代表一些電腦系統的任何一者-例如,包含伺服器、桌上型電腦、膝上型電腦、移動裝置、智慧型手機、遊戲裝置、以及其他者-其不同地支援錯誤檢測功能和記憶體備用功能。
系統100可以包含一記憶體子系統120,其經由一個或多個資料、命令、位址及/或其他信號線(如利用例示之互連125所表示)而耦合至一記憶體控制器110-例如,其中記憶體控制器110是用以控制,至少部分地,在一請求器和記憶體子系統120之間的一資訊轉移。例如,此一請求器可以是一處理器150(例如,一中央處理單元、圖形處理器、服務處理器、處理器核心及/或其類似者)或,另外地,是一輸入/輸出裝置(例如,一週邊構件互連(PCI)快送裝置)、記憶體本身、或要求存取記憶體之系統100的任何其他元件。於一些實施例中,當記憶體控制器110是在如包含該請求器之相同積體電路(IC)晶模上。
記憶體子系統120可以包含任何多種型式之記憶體片段,例如,具有分別的記憶胞列,其中資料是可經由一字組線或其等效者存取。於一實施例中,記憶體子系統120包含動態隨機存取記憶體(DRAM)技術,例如,其根據一雙資料率(DDR)規格,一低功率DDR(LPDDR)規格或其他之記憶體標準而操作。記憶體子系統120可以是在系統100之一較大的記憶體裝置內之一積體電路封裝(未展示於圖形中)。例如,記憶體子系統120可以是一記憶體模組,例如,一線上雙記憶體模組(DIMM),之一DRAM裝置。
記憶體控制器110可以包含邏輯-例如,包含任何多種硬體邏輯及/或執行軟體邏輯-以經由互連125而傳送命令以不同地自記憶體子系統120而讀取、寫入至該記憶體子系統120或以不同方式存取該記憶體子系統120之一
個或多個片段。一個或多個此等命令可以根據一個或多個用以存取一記憶體之習見技術以利用記憶體控制器110而傳送。此等習見技術之特定細節,其是不受限定於某些實施例,且不在此處說明以避免混淆此等實施例。
藉由例示且非限制,記憶體控制器110可以包括邏輯以提供命令/位址傳信功能,例如,其遵循雙資料率(DDR)規格之一些或所有需求,例如,2008年4月之DDR3同步動態隨機存取記憶體(SDRAM)聯合電子裝置工程師委員會(JEDEC)標準JESD79-3C、2012年9月之DDR4 SDRAM JEDEC標準JESD79-4、或其他之規格。
在一例示的實施例中,記憶體子系統120包含片段130,-在一給予的時間-其是目前“現用”-亦即,分配以供使用於儲存代表一個或多個請求器之資訊。此分配可以至少部分地藉由記憶體控制器110來管理。在一給予的時間,片段130可以包含特定的複數個片段,如藉由例示的片段132a,…,132n之表示,其中由於在記憶體子系統120操作的期間,片段是不同地被致動(例如,自可利用作為一備用片段而轉換)或撤銷(例如,使失能),現用片段130之總數可能改變。
記憶體控制器110和記憶體子系統120操作以實行錯誤檢測/更正功能性。例如,記憶體控制器140可以包含記憶體洗滌器邏輯114,其包括硬體及/或執行軟體之任何多種組合,其是不同地進行目前總數的現用片段130之需求洗滌及/或巡邏洗滌。藉由例示且非限制,記憶體子
系統120可以,在記憶體控制器110控制之下,不同地儲存個別的資料位元以及對應的錯誤檢查位元(例如,錯誤更正碼(ECC)位元)於片段130之不同的一者中。基於此等錯誤檢查位元,記憶體洗滌器邏輯114可以進行計算以判定先前地被儲存至記憶體子系統120中之對應的資料,目前是否處於損壞狀態。
記憶體控制器110可以進一步地包括記憶體備用器邏輯112,其包含硬體及/或執行軟體之任何多種組合,-例如,響應至記憶體洗滌器邏輯114-以辨識現用片段130之所給予的一者是否將被分類作為一已失效(及/或正失效)片段。例如,基於來自記憶體洗滌器邏輯114之一個或多個表示,記憶體備用器邏輯112可以,對於現用片段130之所給予的一者,檢測一些臨界錯誤事件-例如,包含正達到之一臨界數目錯誤、正達到之一臨界頻率錯誤或其類似者-表明將需要以該等一個或多個備用片段140之一者而取代那片段。
響應於檢測一些臨界錯誤事件,記憶體備用器邏輯112可以傳信一事件處置器程序-例如,一第一處置器152藉由處理器150執行或將被執行-以實行、追蹤或支援記憶體備用操作以自現用片段130之目前總數移除一已失效/正失效片段,以及轉換該等目前一個或多個備用片段140之一者進入該等現用片段130之總數。第一處置器152可以包含,例如,一主機操作系統(OS)程序,例如,進行一機器檢查操作之一程序。
於一實施例中,記憶體洗滌器邏輯114包含另外的(或相同的)邏輯以進一步地進行一個或多個片段140之目前總數的巡邏洗滌,於一現用片段被辨識作為已失效或正失效之情況中,該等片段140是各可利用以作為一備用片段。該等一個或多個備用片段140之洗滌可以包含,例如,對於現用片段130所進行之洗滌特點。
記憶體備用器邏輯112可以進一步地響應至目前備用片段142之此巡邏洗滌而進行操作,以檢測備用片段142是否將被分類作為一已失效/正失效片段。例如,響應於檢測一臨界錯誤事件,記憶體備用器邏輯112可以傳信一些其他事件處置器程序-例如,一第二處置器154藉由處理器150而執行或將被執行-以實行追蹤或支援自一個或多個備用片段140之目前總數移除一已失效/正失效片段。第二處置器154可以包含,例如,一系統管理模式(SMM)之一中斷處置器程序-例如,其中該SMM模式是將自處理器150之一不同模式被辨認以供用於實行第一處置器152之一般用途主機OS的執行。
圖2展示根據一實施例用以進行記憶體備用和錯誤檢測之一記憶體控制器200的元件。記憶體控制器200可以包含記憶體控制器110之一個或多個特點。例如,記憶體控制器200包含記憶體備用器邏輯210和記憶體洗滌器邏輯230,其可以分別地提供記憶體備用器邏輯112和記憶體洗滌器邏輯114之一些或所有的功能性。
於一實施例中,記憶體洗滌器邏輯230包含電路
邏輯-如藉由例示之錯誤檢測邏輯232所表示-以不同地計算儲存於一記憶體片段(未展示於圖形中)中之資料是否包含錯誤。於一些實施例中,記憶體洗滌器邏輯可以進一步地包含糾錯邏輯234以不同地更正一些或所有的此等錯誤。錯誤檢測邏輯232和糾錯邏輯234之操作可以包含自習見的錯誤檢測/更正技術所調適的一個或多個處置程序之執行。此等習見技術的特定細節是不受限定於一些實施例,並且不在此處加以討論以避免混淆此等實施例之各種特點。
記憶體備用器邏輯210可以包含損壞片段檢測邏輯212、損壞片段查詢與取代(L/R)邏輯220、以及片段重新映射邏輯222。損壞片段檢測可以許多方式來實行。例如,損壞片段檢測邏輯212可以,基於與記憶體洗滌器邏輯230之交換,追蹤在記憶體處理之期間返回損壞資料的記憶體片段。例如,對於記憶體中之一位址的一記憶體要求可以送達記憶體控制器200。該要求接著被傳送至系統記憶體(未展示於圖形中)並且該記憶體可以返回ECC資訊。該ECC資訊可以藉由記憶體洗滌器邏輯230之錯誤檢測邏輯232被評估,以判定是否有一處理錯誤在目標位址之記憶體片段。如果一錯誤已發生,損壞片段檢測邏輯212可以追蹤該處理和該結果。另外地或此外地,損壞片段檢測邏輯212可以追蹤在記憶體片段(例如,不論是現用片段或備用片段)洗滌之期間所返回的損壞資料。其中一給予的錯誤被辨識作為是可更正時(例如,給予可為記憶
體控制器利用之糾錯機構),記憶體洗滌器邏輯230之糾錯邏輯234可以進行計算以產生要求資料之一修正-亦即,更正-版本。
於一實施例中,損壞片段檢測邏輯212可以包含或存取一錯誤臨界值214-例如,包含一最大臨界錯誤數目、最大臨界錯誤數目、臨界錯誤型式及/或其類似者-其被存取以判定在考慮下之一特定片段是否違反錯誤臨界值214。其中當錯誤臨界值214之違反被表明時,記憶體備用可以被進行。藉由例示且非限制,其中一現用片段被辨識作為已失效/正失效時,片段L/R邏輯220可以進行操作以辨識一備用片段將被致動作為一取代片段。於一些實施例中,片段重新映射邏輯222可以判定記憶體映射更新,其將實行於撤銷一已失效/正失效現用片段及/或一選擇備用片段之致動的支援。
一已失效或正失效片段之檢測可以進一步地包括記憶體控制器之一些邏輯-藉由例示之處理器調用邏輯224所表示-其傳信事件處理操作將被進行至一處理器。於一實施例中,處理器調用邏輯224根據一檢測之已失效/正失效片段是否為一現用片段或一備用片段,而調用不同的處理器。例如,處理器調用邏輯224可以基於現用之已失效/正失效片段,而調用一第一處理器,而不是一第二處理器。相對地,處理器調用邏輯224可以替代地調用第二處理器,而且不是第一處理器,其中該已失效/正失效片段是一備用片段。
圖3例示根據一實施例用以控制一記憶體的方法300之元件。方法300可以被進行以管理一記憶體片段,例如,記憶體子系統120-例如,其中方法300藉由記憶體控制器110而進行。
方法300可以包含,在310,進行複數個(僅有)現用記憶體片段之一第一洗滌。在310進行之該第一洗滌可以包含要求洗滌操作及/或巡邏洗滌操作。於一實施例中,在310,該第一洗滌包含分類一些檢測之錯誤。例如,該第一洗滌可以包含將一錯誤分類作為是可更正或不可更正。另外地或此外地,該第一洗滌在310可以包含判定一些臨界錯誤事件是否已發生-例如,除不可更正錯誤事件之外。
如果,在320,判定第一洗滌檢測一不可更正錯誤,則方法300可以,在330,傳信一第一處置器程序以進行一個或多個事件處理器操作。雖然某些實施例是不受這方面之限定,第一處理器可以藉由一主機OS而執行-例如,在一主機處理器之一般用途模式的期間。第一處置器程序可以包含,調用或實行,例如,記憶體備用支援中之任何多種操作。藉由例示且非限制,第一處置器程序可以包含或導致一個或多個一硬體錯誤之傳信以調用一機器檢查、機器之一重置(例如,一“藍屏幕”事件)、抑制一個或多個快取線、通知一主機OS以離線於對應至已失效/正失效片段之一個或多個記憶體頁、等等。
如果無不可更正錯誤事件在320中被表明,則方
法300可以,在340,進行記憶體的一個或多個備用排列之巡邏洗滌。於另一實施例中,該巡邏洗滌在340根據一預定排程進行而無關於在320之評估-例如,其中一些或所有的巡邏洗滌在340被進行。相似於在310之第一洗滌,該巡邏洗滌在340可以包含將一錯誤分類作為可更正(或作為不可更正)及/或檢測對於一個或多個臨界錯誤事件之任何發生。
如果在350,判定在340之巡邏洗滌檢測一不可更正錯誤,則方法300可以,在360,傳信一第二處置器程序以進行一個或多個事件處理器操作。於一實施例中,該第一處置器程序和該第二處置器程序之第一處理器可以是響應於在350檢測之不可更正錯誤所傳信的唯一程序。另外地或此外地,該第一處置器程序和該第二處置器程序之第一處置器程序可以是響應於在320檢測之不可更正錯誤所傳信的唯一處置器程序。
雖然某些實施例是不受這方面之限定,第二處置器程序可以在一處理器之SMM中被執行。該第二處置器程序可以包含、調用或實行,例如,自可利用備用片段之集中場移除一片段的支援之任何多種操作。藉由例示且非限制,該第二處置器程序可以包含或導致一個或多個更新片段L/R邏輯220(或其他之此邏輯)以反映該已失效/正失效備用片段是失能的及/或不再是可利用的。另外地或此外地,該已失效/正失效備用片段可以被斷電,自隨後的巡邏洗滌被移除或與未來記憶體系統操作隔離。在350,若
沒有不可更正錯誤被表明,則方法300可以結束,或另外地,前進至另外的操作(未展示於圖形中)-例如,其中方法300返回至在310之現用排列洗滌的另一性能。
於一實施例中,響應於在350檢測之一錯誤所進行的任何操作可以是無關於響應於在320檢測之一錯誤所進行的一個或多個操作型式之性能。該第一處置器程序和該第二處置器程序可能彼此相互排斥,至少相對於反應至關於一備用片段對於一現用片段之不可更正錯誤事件。例如,對於該第一處置器程序和該第二處置器程序,在320之一不可更正錯誤的辨識可能僅導致第一處置器程序被調用。另外地或此外地,對於該第一處置器程序和該第二處置器程序,在350之一不可更正錯誤的辨識可能僅導致該第二處置器程序被調用。一所給予的已失效/正失效片段之特定現用狀態,相對於備用狀態,可以是一“但是對於”條件,用以至少自在該第一處置器程序和該第二處置器程序之間,選擇兩個處置器程序之哪一者(例如,僅一者)是將被調用。
圖4A例示根據一實施例用以控制一記憶體的方法400之元件。方法400可以包含,例如,方法300的一些或所有的特點。於一實施例中,方法400是至少部分地藉由作為一硬體平臺之構件的記憶體控制器110、200之一者(或其他之控制器邏輯)而進行操作。
於一實施例中,方法400包含,在410,進行操作以洗滌平臺記憶體之現用排列(或其他之此等片段)-例
如,如此處所討論地參考第一洗滌310。展示於圖4C中之一序列480中,相位482之一“洗滌1”例示此洗滌之一範例,其供用於其中一記憶體包含八個目前現用排列Rank0,…,Rank7之一情節。方法400隨後可以評估,在412,一資料錯誤是否藉由此一洗滌(例如,在進行期間)而被表明。如果在412,無此資料錯誤被表明,則在422,將完成關於現用排列之洗滌是否已完成之另一評估。如果該洗滌未被完成,則在410,方法400可以繼續現用排列洗滌操作。否則,方法400可以開始對於備用排列洗滌操作之一轉換,如此處參考圖4B之方法450所討論。
如果一資料錯誤在412藉由評估被表明,則方法400可以,在414,判定所檢測的錯誤是(或否)為可更正。如果在414表明該錯誤是不可更正,則方法400可以,在416,傳信一硬體錯誤發生之訊息至平臺之一主機OS。在416之傳信可以,例如,包含傳信一機器檢查(或其他者)異常-例如,如在此處之相關於方法300在330的傳信之討論。此一異常之處理可以包含或導致一系統崩潰、系統重置或其他之事件,於一實施例中,其結束方法400。
如果取代地,在414判定在412所表明的錯誤事件是可更正,則方法400可以,在418,進行糾錯計算以判定損壞資料之一更正版本。另外地,方法400可以判定,在420,是否在412所檢測之錯誤事件構成達到(例如,超出)一些錯誤臨界值CE_th_A,例如,一臨界數目、百分比、及/或可更正錯誤的頻率。CE_th_A之特定數值(及/或
型式),其可以是一先驗限制,可根據實行例特定細節而廣泛地變化,並且是不受限定於特定實施例。如果是未達到CE_th_A,則方法400可以返回至在422之現用排列洗滌是否已被完成的評估。
其中在420若判定已達到CE_th_A,則方法400可以,在424,傳信一事件處理器程式碼以進行記憶體備用支援之操作。此一判定可以完成,例如,在方法400之依序遞迴的期間-例如,在例示於圖4C中之一相位484的一“洗滌3”(例如,隨著洗滌1之後)的期間。於一些實施例中,在424傳信之一事件處理器事件,可以是相同如可能在416以不同方式傳信之一者。另外地,另一事件處置器程序可以被傳信。藉由例示且非限制,一系統管理中斷可以對於一處理器而傳信以轉換成為一SMM-例如,包含自主機OS執行於其中之一模式轉換離開。於一實施例中,在424進行之傳信可以導致錯誤處理韌體或其他之此等邏輯開始自評估、管理或目標於現用排列之操作,轉換至取代目標於一個或多個備用排列之操作。
例如,在424之傳信可能導致或先前於,在426,關於一備用排列是否為目前可利用的一評估。這評估被完成的情況是,在所有原始的一個或多個備用排列是先前致動,並且沒有取代備用排列曾被添加至記憶體子系統。如果在426判定沒有備用排列是可利用的,則在428,一服務要求可以藉由電腦軟體之一管理控制臺或其他軟體而登記-例如,以提供關於一DIMM或其他記憶體裝置在下
一個服務要求期間需要被取代之通知。
如果相反地,在426判定一備用排列是可利用的,則排列備用操作在430啟動。在430之排列備用可以包含致動在426辨識之一備用排列,以及撤銷致動之備用是將作為其之一替代的已失效/正失效排列。在430,於排列備用被進行之後,如此處參考方法450所討論地,方法400可以登記一服務要求。將致動之備用排列可以憑藉預先進行之備用排列洗滌(例如,根據方法450)而備妥以供用於此致動(其中該備用排列本身不是已失效/正失效排列)。例如,序列480之一記憶體備用相位486可以致動備用排列Spare0以供作為替代現用排列Rank0,其中Spare0之先前洗滌2巡邏洗滌被進行以確認對於此致動之Spare0的資格。
圖4B例示用以進行此備用排列洗滌之方法450的元件。根據一實施例,方法400、450可以是一較大方法之不同部份。在460,方法450可以包含進行操作以巡邏洗滌(僅有)平臺記憶體之一個或多個備用排列-例如,如參考在方法300之340所進行之洗滌在此處所討論。序列480中之巡邏洗滌範例藉由相位482之一“洗滌2”(例如,跟隨洗滌1之後及/或在洗滌3之前)被表示,其中該記憶體僅包含一個單獨備用排列。方法450,在462,可以隨後評估一資料錯誤是否藉由此一巡邏洗滌而表明。如果在462無此資料錯誤被表明,則在472將形成有關於備用排列巡邏洗滌是否已完成之另一評估。如果該洗滌未完成,方法450可以在460繼續備用排列洗滌操作。否則,於一實施例中,方
法450可以,返回至現用巡邏洗滌操作,例如,在方法400之410的那些操作。
如果在462有一資料錯誤藉由評估而表明,則方法450,在464,可以判定檢測之錯誤是(或否)為可更正。如果在464,表明該錯誤是為不可更正,則方法450,在474,可以至少使備用排列失能而無法作為對於任何已失效/正失效現用排列的一未來替代。在474,操作可以進一步地包括設定一個或多個組態以將該備用排列自一個或多個供應電壓跡線解耦合,以自未來備用排列巡邏洗滌操作排除該備用排列,以使閘極失能或減低時脈及/或其類似者。
如果在464,判定在462所表明之錯誤事件是可更正,接著,在468,方法450可以進行糾錯計算以判定損壞資料之一更正版本或用於該資料的損壞版本之一新的ECC。在468,隨著更正之後(或甚至在更正之前或在更正期間),方法450可以,在470,判定在462所檢測的錯誤事件是否構成達到(例如,超出)一些錯誤臨界值CE_th_B,其可包含CE_th_A或另一臨界值。如果不是達到CE_th_B,則方法450可以在472返回以評估備用排列洗滌是否已完成。
在470判定已達到CE_th_B時,方法450可以在474進行操作以使備用排列失效。另外地,方法500可以調用一處理器以登記一服務要求,在476,表明(例如)在下一個服務請求的期間將需要取代一DIMM或其他記憶體裝
置。於一實施例中,在476之操作可以在各種情況下於不同的時間不同地被進行-例如,登記需要取代包含一已失效/正失效現用排列,如在420所檢測,之一記憶體裝置,或另外地,登記需要取代包含一已失效/正失效備用排列,如在464或在470所檢測,之一記憶體裝置。隨後,方法450可以,於一實施例中,返回至現用巡邏洗滌操作,例如,在方法400之410的那些操作。
圖5A例示根據一實施例用以控制一記憶體的另一方法500之元件。例如,方法500可以包含方法300之一些或所有的特點。於一實施例中,方法500係進行以控制包含複數個現用排列(或其他片段)以及複數個備用排列(片段)之一記憶體子系統。
於一實施例中,方法500包含,在510,進行操作以洗滌平臺記憶體之現用排列-例如,如參考第一洗滌310於此處所討論。此洗滌之一範例,對於其中一記憶體包含8個目前現用排列之一情節,藉由展示於圖5C中之序列590的相位592所例示。方法500隨後可以評估,在512,一資料錯誤是否藉由(例如)在此一洗滌的期間被表明。如果否,則此資料錯誤在512被表明,接著方法500迴路返回以在510重新開始現用排列洗滌。否則,方法500可以,在514,判定所檢測的錯誤是(或否)可更正。如果在514表明該錯誤是不可更正,則方法500可以,在516,通訊至平臺之一主機OS,關於一硬體錯誤或其他信號以例如,啟動一機器檢查。如果在514判定在512被表明之錯誤事件是為可
更正,則方法500可以,在518,進行糾錯計算以判定損壞資料之一更正版本。另外地,方法500可以判定,在520,是否已達到一些錯誤臨界CE_th_X(例如,CE_th_A)。如果是未達到CE_th_X,則方法500可以迴路返回以在510重新開始現用排列洗滌。
在520判定已達到CE_th_X時,方法500可以,在524,傳信一事件處理器,其是進行記憶體備用操作或備妥此等記憶體備用操作之可能性。藉由例示且非限制,一系統管理中斷係可以對於一處理器傳信以轉換成為一SMM-例如,包含自主機OS執行之模式中轉離。在524進行之傳信可以,於一實施例中,導致錯誤處理韌體或其他之此邏輯以開始處理器之操作轉換,其自評估、管理或目標於現用排列之操作,轉換至取代目標於一個或多個備用排列之操作。例如,如藉由序列590之相位方法594之例示,方法500可以辨識一現用Rank0作為已失效/正失效,並且響應地,轉換至操作,例如,圖5B之方法550的那些操作。
圖5B例示用以進行備用排列洗滌之方法550的元件。方法500、550可以是根據一實施例之一較大方法的不同部份。於一實施例中,方法550包含,在560,判定是否有一備用排列可供利用於評估以及可能選擇作為對於辨識已失效/正失效排列之一替代。若其中沒有備用排列是可供利用,則方法550可以,在580,調用一處理器或其他程序以登記一服務要求以表明需要取代一個或多個DIMM
或其他記憶體裝置-例如,提供一新的現用排列、一新的備用排列、或其二者。
在560判定一備用排列是可供利用於評估時,則方法500可以,在562,指派在560所檢測之一備用排列為評估下的目前備用排列。方法500接著可以在564進行目前備用排列之巡邏洗滌。此巡邏洗滌之一範例是藉由相位594以序列590來表示,其中記憶體包含備用排列Spare0、Spare1,其中一目前現用Rank0已被辨識為已失效/正失效者,並且其中Spare0被選擇以供用於巡邏洗滌。方法550隨後可以,在566,評估一資料錯誤是否藉由此一巡邏洗滌被表明。如果無此資料錯誤在566被表明,則接著在576進行關於目前備用排列之巡邏洗滌是否已完成之另一評估。如果該洗滌未完成,則方法550可以在564繼續現用排列洗滌操作。否則,方法550可以,於一實施例中,在578實行一排列備用以致動目前備用排列而供作為對於一已失效/正失效現用排列之一替代(例如,在方法500之520的一檢測)。此一記憶體備用之範例是藉由相位596a以序列590來例示,其中一備用排列Spare0被致動以作為新的現用Rank0。
如果一資料錯誤藉由在566之評估被表明,則方法550可以,在568,判定檢測之錯誤是(或否)為可更正。如果在568表明該錯誤是為不可更正,則方法550可以,在574,使目前備用排列失能而至少無法供利用作為對於任何已失效/正失效現用排列之一未來替代。操作在574可以
進一步地包括設定一個或多個組態以將目前備用排列自一供應電壓跡線而解耦合及/或自未來備用排列巡邏洗滌操作而排除該目前備用排列。此備用排列失能之範例藉由相位596b於序列590被表示-例如,對於相位596a之一替代者-其中Spare0被辨識作為一已失效/正失效排列,並且另一備用排列Spare1隨後被指派作為供評估之目前備用排列。隨後,方法500可以返回至560而評估另一備用排列是否可以作為將受評估之下一個目前備用排列。
如果在568判定錯誤事件在566表明是為可更正,則方法550可以,在570,更正該錯誤,以及在572,判定是否已達到一些錯誤臨界CE_th_Y(例如,CE_th_B)。其中若已達到CE_th_Y,則方法550可以在574進行操作以使該備用排列失能。否則,方法500可以前進至在576之評估性能。序列590之相位598例示一情節,於其中隨後於相位596b,在578之記憶體備用導致備用排列Spare1將被致動作為一替代Rank0。
圖6是一電腦系統實施例之方塊圖,於該電腦系統中可以實行記憶體存取。系統600代表依據此處所說明之任何實施例的一電腦裝置,並且可以是一膝上型電腦、一桌上型電腦、一伺服器、一遊戲或娛樂控制系統、一掃描器、影印機、印表機、或其他電子裝置。系統600可以包含處理器620,其提供處置程序、操作管理、以及對於系統600之指令的執行。處理器620可以包含任何型式之微處理器、中央處理單元(CPU)、處理核心、或其他處置硬
體以提供用於系統600之處置程序。處理器620控制系統600的全部操作,並且可以是或包含,一個或多個可程控之一般用途或特殊用途微處理器、數位信號處理器(DSP)、可程控控制器、特定應用積體電路(ASIC)、可程控邏輯裝置(PLD)、或其類似者、或此等裝置之組合。
記憶體子系統630代表系統600之主記憶體,並且提供藉由處理器620所執行之程式碼、或將使用於執行一常式碼之資料數值的暫時儲存部。記憶體子系統630可以包含一個或多個記憶體裝置,例如,唯讀記憶體(ROM)、快閃記憶體、一個或多個變化之隨機存取記憶體(RAM)、或其他記憶體裝置、或此等裝置之組合。記憶體子系統630儲存以及主持,此外,操作系統(OS)636以提供一軟體平臺而供系統600中之指令的執行。另外地,其他指令638自記憶體子系統630被儲存且執行以提供系統600之邏輯以及處置程序。OS 636和指令638藉由處理器620而執行。
記憶體子系統630可以包含記憶體裝置632,其儲存資料、指令、程式、或其他項目。於一實施例中,記憶體子系統包含記憶體控制器634,其是依據此處所說明之任何實施例的一記憶體控制器,並且其提供用以存取記憶體裝置632之機構。於一實施例中,記憶體控制器634提供命令以存取記憶體裝置632。
處理器620和記憶體子系統630耦合至匯流排/匯流排系統610。匯流排610是一抽象概念,其代表任何的一
個或多個分別實際匯流排、通訊線/介面、及/或藉由適當的接橋而連接之點對點連接、轉接器、及/或控制器。因此,匯流排610可以包含,例如,一個或多個的一系統匯流排、一週邊構件互連(PCI)匯流排、一超傳輸或工業標準結構(ISA)匯流排、一小型電腦系統介面(SCSI)匯流排、一通用串列匯流排(USB)、或一電機和電子工程師學會(IEEE)標準1394匯流排(通常稱為“火線”)。匯流排610之匯流排也可以對應至網路介面650中之介面。
系統600也可以包含一個或多個輸入/輸出(I/O)介面640、網路介面650、一個或多個內部大量儲存裝置660、以及耦合至匯流排610之週邊介面670。I/O介面640可以包含一個或多個介面構件,一使用者可經由其與系統600互動(例如,視訊、音訊、及/或文字數位介面)。網路介面650提供給系統600在一個或多個網路上與遠處裝置(例如,伺服器、其他電腦裝置)通訊之能力。網路介面650可以包含一以太轉接器、無線互連構件、USB(通用串列匯流排)、或其他有線或無線標準為基礎或專有介面。
儲存部660可以是或包含用於以非依電性方式而儲存大量資料之任何習見媒體,例如,一個或多個磁式、固態、或光學為基礎之碟片、或其組合。儲存部660以永久狀態方式保存程式碼或指令以及資料662(亦即,不論對於系統600之電力中斷與否而維持其數值)。儲存部660一般可以考慮作為一“記憶體”,雖然記憶體630是執行或操作記憶體以提供指令至處理器620。因儲存部660是非依電
性,記憶體630可以包含依電性記憶體(亦即,如果系統600之電力中斷,則資料之數值或狀態是不確定的)。
週邊介面670可以包含不在上面明確提到的任何硬體介面。週邊一般係指從屬性地連接至系統600之裝置。一從屬性連接是指系統600提供一操作於其上執行的軟體及/或硬體平臺之一者,並且藉由其而與一使用者互動。
圖7是可以於其中實行記憶體存取之一移動式裝置實施例的方塊圖。裝置700代表一移動式電腦裝置,例如,平板電腦、一移動電話或智慧型手機、一無線致能e-讀取器、或其他移動裝置。應了解,一些構件一般被展示,並且不是此一裝置之所有構件被展示於裝置700中。
裝置700可以包含處理器710,其進行裝置700之主要的處置操作。處理器710可以包含一個或多個實體裝置,例如,微處理器、應用處理器、微控制器、可程控邏輯裝置、或其他處置構件。藉由處理器710所進行之處置操作包含應用及/或裝置功能於其上執行之一操作平臺或操作系統的執行。該等處置操作包含關於藉由人類使用者或藉由其他裝置之I/O(輸入/輸出)操作、關於功率管理之操作、及/或關於連接裝置700至另一裝置之操作。該等處置操作也可以包含關於音訊I/O及/或顯示I/O之操作。
於一實施例中,裝置700包含音訊子系統720,其代表與提供音訊功能至電腦裝置相關聯之硬體(例如,音訊硬體和音訊電路)以及軟體(例如,驅動器、編解碼器)
構件。音訊功能可以包含擴音機及/或耳機輸出、以及麥克風輸入。用於此等功能之裝置係可以整合進入裝置700中,或連接到裝置700。於一實施例中,一使用者藉由提供利用處理器710所接收以及所處置之音訊命令而與裝置700互動。
顯示子系統730代表硬體(例如,顯示裝置)以及軟體(例如,驅動器)構件,其提供一視覺及/或觸覺顯示以供用於一使用者與電腦裝置互動。顯示子系統730可以包含顯示介面732,其可包含供使用以提供一顯示至一使用者之特定屏幕或硬體裝置。於一實施例中,顯示介面732包含與處理器710分離之邏輯以進行關於顯示之至少一些處置程序。於一實施例中,顯示子系統730包含提供輸出和輸入兩者至使用者之一觸控屏幕裝置。
I/O控制器740代表關於與一使用者之互動的硬體裝置以及軟體構件。I/O控制器740可以操作以管理音訊子系統720及/或顯示子系統730之部件的硬體。另外地,I/O控制器740例示供用於另外的裝置之一連接點,其經由可能與該系統互動之一使用者以連接至裝置700。例如,可以附帶至裝置700之裝置可能包含麥克風裝置、擴音機或身歷聲系統、視訊系統或其他顯示裝置、鍵盤或精巧鍵盤裝置、或供特定應用,例如,讀卡機之使用的其他I/O裝置或其他裝置。
如上所述,I/O控制器740可以與音訊子系統720及/或顯示子系統730互相作用。例如,經由一麥克風或其
他音訊裝置之輸入可以提供用於裝置700之一個或多個應用或功能之輸入或命令。另外地,音訊輸出也可以被提供以取代或增加至顯示輸出。在另一範例中,如果顯示子系統包含一觸控屏幕,則顯示裝置也可作用如同一輸入裝置,其可以是至少部份地藉由I/O控制器740來管理。也可以有另外的按鈕或開關在裝置700上以提供藉由I/O控制器740所管理的I/O功能。
於一實施例中,I/O控制器740管理裝置,例如,加速器、攝影機、光感應器或其他環境感應器、迴旋儀、全球定位系統(GPS)、或可以包含於裝置700中之其他硬體。該輸入可以是直接使用者互動之部份,以及提供環境輸入至該系統以影響其之操作(例如,對於雜訊之過濾、調整用於亮度檢測之顯示器、施加一閃光於一攝影機、或其他特點)。
於一實施例中,裝置700包含電力管理750,其管理電池電力使用、電池之充電、以及關於省電操作之特點。記憶體子系統760可以包含用以儲存資訊於裝置700中之記憶體裝置762。記憶體子系統760可以包含非依電性記憶體裝置(如果至該記憶體裝置之電力中斷的話,狀態亦不改變)及/或依電性記憶體裝置(如果至該記憶體裝置之電力中斷的話,則狀態是不確定的)。記憶體760可以儲存應用資料、使用者資料、音樂、相片、文件、或其他資料,以及關於系統700之應用和功能之執行的系統資料(不論是長期或暫時的)。於一實施例中,記憶體子系統760包含用
以控制記憶體762之記憶體控制器764(其也可考慮為系統700之控制部件,且可能地可以考慮為處理器710之部件)。
連接770可以包含硬體裝置(例如,無線及/或有線連接器與通訊硬體)以及軟體構件(例如,驅動器、協定堆疊)以致能裝置700與外部裝置通訊。該裝置可以是分別之裝置,例如,其他電腦裝置、無線接取點或基地台、以及週邊,例如,耳機、印表機、或其他裝置。
連接770可以包含複數個不同型式的連接。一般而言,裝置700藉由行動電話連接772和無線連接774來例示。行動電話連接772一般係指藉由無線載波所提供之行動電話網路連接,例如,經由GSM(全球移動通訊系統)或其變化或衍生品、CDMA(分碼多存取)或其變化或衍生品、TDM(分時多工)或其變化或衍生品、LTE(長期演進-也稱為“4G”)、或其他行動電話服務標準所提供者。無線連接774係指不是手提電話之無線連接,並且可以包含個人區域網路(例如,藍芽)、局域性區域網路(例如,WiFi)、及/或廣域網路(例如,WiMax)、或其他無線通訊。無線通訊係指經由一非固態媒體而經由調變電磁發射之使用的資料轉移。有線通訊經由一固態通訊媒體而發生。
週邊連接780包含硬體介面和連接器、以及軟體構件(例如,驅動器、協定堆疊)以構成週邊連接。應了解,裝置700可以是以下兩者,連接到其他電腦裝置之一
週邊裝置(“連接到”782),以及具有連接到裝置700之週邊裝置(“來自”784)。例如,為了管理(例如,下載及/或上載、改變、同步化)裝置700上內容之目的,裝置700通常具有一“對接”連接器以連接至其他電腦裝置。另外地,一對接連接器可以允許裝置700用以連接至某些週邊而允許裝置700控制內容輸出,例如,至視聽系統或其他系統。
除了一專有的對接連接器或其他專有的連接硬體之外,裝置700也可以經由共同或基於標準連接器而構成週邊連接780。共同型式可以包含一通用串列匯流排(USB)連接器(其可以包含任何數目之一些不同硬體介面)、包含迷你顯示埠(MDP)之顯示埠、高清晰度多媒體介面(HDMI)、火線、或其他型式。
於一實行例中,一記憶體控制器,其包括:洗滌器邏輯,其包含電路用以進行一記憶體之複數個現用片段的一第一巡邏洗滌,以及用以進行一平臺之一個或多個片段的一第二巡邏洗滌,而該等一個或多個片段之各者可供利用作為對於該等複數個現用片段之一備用片段。該記憶體控制器進一步地包括有備用器邏輯,其包含電路用以接收基於該第一巡邏洗滌所檢測之一第一不可更正錯誤事件的一表示,其中於一第一處置器程序和一第二處置器程序中,該備用器邏輯用以響應於該第一不可更正錯誤事件之表示而僅傳信該第一處置器程序,該備用器邏輯進一步地用以接收基於該第二巡邏洗滌所檢測之一第二不可更正錯誤事件的一表示,其中於該第一處置器程序和該第二處
置器程序中,該備用器邏輯用以響應於該第二不可更正錯誤事件之表示而僅傳信該第二處置器程序。
於一實施例中,該第一處置器程序包含一機器檢查異常處理器。於另一實施例中,該第二處置器程序包含一中斷處置器。於另一實施例中,該第二處置器程序登記用以取代一記憶體裝置之一服務要求。於另一實施例中,該第一處置器程序是藉由一處理器在一主機操作系統執行期間執行,並且該第二處置器程序在該處理器之一系統管理模式期間執行。於另一實施例中,如果一臨界可更正錯誤事件是基於該第一巡邏洗滌而被檢測,則該備用器邏輯是進一步地用以傳信除了該第一程序之外的一處置器程序,其中響應於該臨界可更正錯誤事件所傳信的任何處置器程序是除了該第一處置器程序之外的一處置器程序。於另一實施例中,用以傳信除了該第一程序之外的該處置器程序之該備用器邏輯包含用以傳信在一處理器之一系統管理模式期間所執行的一處置器程序之備用器邏輯。
於另一實行例中,一種方法包括進行一記憶體之複數個現用片段的第一巡邏洗滌,並且如果一不可更正錯誤事件是基於該第一巡邏洗滌而被檢測,則傳信一第一處置器程序,其中於該第一處置器程序和一第二處置器程序中,僅該第一處置器程序響應於藉由該第一巡邏洗滌所檢測之該不可更正錯誤事件而傳信。該方法進一步地進行該記憶體之一個或多個片段的第二巡邏洗滌,而該等一個或多個片段之各者可利用作為對於該等複數個現用片段之
一備用片段,以及如果一不可更正錯誤事件是基於該第二巡邏洗滌而受檢測,則傳信該第二處置器程序,其中於該第一處置器程序~~和一第二處置器程序中,僅該第一處置器程序響應於藉由該第一巡邏洗滌所檢測之該不可更正錯誤事件而傳信。
於一實施例中,該第一處置器程序包含一機器檢查異常處理器。於另一實施例中,該第二處置器程序包含一中斷處置器。於另一實施例中,該第二處置器程序登記用以取代一記憶體裝置之一服務要求。於另一實施例中,該第一處置器程序是藉由一處理器在一主機操作系統執行期間執行,並且該第二處置器程序在該處理器之一系統管理模式期間執行。於另一實施例中,該方法進一步地包括,如果一臨界可更正錯誤事件是基於該第一巡邏洗滌而被檢測,則該備用器邏輯是進一步地用以傳信除了該第一程序之外的一處置器程序,其中響應於該臨界可更正錯誤事件所傳信的任何處置器程序是除了該第一處置器程序之外的一處置器程序。於另一實施例中,傳信該處置器程序除了該第一處置程序之外還包含傳信在一處理器之一系統管理模式期間所執行的一處置器程序。
於另一實行例中,一系統包括一個或多個記憶體裝置、一互連、以及一記憶體控制器,其經由該互連而耦合至該等一個或多個記憶體裝置,該記憶體控制器用以控制該等一個或多個記憶體裝置。該記憶體控制器包含:包括電路之洗滌器邏輯,該洗滌器邏輯用以進行該等一個
或多個記憶體裝置之複數個現用片段的第一巡邏洗滌,以及用以進行該等一個或多個記憶體裝置之一個或多個片段的第二巡邏洗滌,而該等一個或多個片段之各者可利用作為對於該等複數個現用片段之一備用片段。該記憶體控制器進一步地包括:包括電路之備用器邏輯,該備用器邏輯用以接收基於一第一處置器程序和一第二處置器程序中該第一巡邏洗滌所檢測之一第一不可更正錯誤事件的一表示,該備用器邏輯用以響應於該第一不可更正錯誤事件之表示而僅傳信該第一處置器程序,該備用器邏輯進一步地用以接收基於該第一處置器程序和該第二處置器程序中該第二巡邏洗滌所檢測之一第二不可更正錯誤事件的一表示,該備用器邏輯用以響應於該第二不可更正錯誤事件之表示而僅傳信第二處置器程序。
於一實施例中,該第一處置器程序包含一機器檢查異常處理器。於另一實施例中,該第二處置器程序包含一中斷處置器。於另一實施例中,該第二處置器程序登記用以取代一記憶體裝置之一服務要求。於另一實施例中,該第一處置器程序是藉由一處理器在一主機操作系統執行期間執行,並且該第二處置器程序在該處理器之一系統管理模式期間執行。於另一實施例中,如果一臨界可更正錯誤事件是基於該第一巡邏洗滌而被檢測,則該備用器邏輯是進一步地用以傳信除了該第一程序之外的一處置器程序,其中響應於該臨界可更正錯誤事件所傳信的任何處置器程序是除了該第一處置器程序之外的一處置器程序。
於另一實行例中,一種電腦可讀取儲存媒體,其具有儲存在其上之指令,當該等指令藉由一個或多個處置單元而執行時,導致,該等一個或多個處置單元進行一方法,該方法包括下列步驟:進行一記憶體之複數個現用片段的第一巡邏洗滌,以及如果一不可更正錯誤事件是基於該第一巡邏洗滌而被檢測,則傳信一第一處置器程序,其中於該第一處置器程序和一第二處置器程序中,僅該第一處置器程序響應於藉由該第一巡邏洗滌所檢測之該不可更正錯誤事件而傳信。該方法進一步地包括進行該記憶體之一個或多個片段的第二巡邏洗滌,而該等一個或多個片段之各者可利用作為對於該等複數個現用片段之一備用片段,以及如果一不可更正錯誤事件是基於該第二巡邏洗滌而被檢測,則傳信該第二處置器程序,其中於該第一處置器程序和一第二處置器程序中,響應僅該第一處置器程序響應於藉由該第一巡邏洗滌所檢測之該不可更正錯誤事件而傳信。
於一實施例中,該第一處置器程序包含一機器檢查異常處理器。於另一實施例中,該第二處置器程序包含一中斷處置器。於另一實施例中,該第二處置器程序登記用以取代一記憶體裝置之一服務要求。於另一實施例中,該第一處置器程序是藉由一處理器在一主機操作系統執行期間執行,並且該第二處置器程序在該處理器之一系統管理模式期間執行。
用以控制一記憶體之技術和結構係在此處說
明。在上面說明中,為了說明之目的,許多特定細節被提出以便提供某些實施例之詳盡了解。但是,一熟習本技術者應明白,某些實施例可被實施而不需這些特定細節。於其他實例中,結構和裝置以方塊圖形式被展示以便避免混淆說明。
於說明文中提及之“一實施例”或“一個實施例”意謂著配合實施例所說明之一特定的特點、結構、及/或特性可以包含於至少一實行例中。說明文中各處所出現之用語“於一實施例中”可以是或可以不是都涉及相同實施例。
此處詳細說明的一些部份藉由一電腦記憶體內之資料位元的操作之演算法和符號表示被呈現。這些演算法說明和表示是那些熟習電腦技術者所使用以最有效地傳遞它們的工作主旨至其他熟習本技術者之結構。在這裡之一演算法,並且通常,表達為導致所需的結果之一自我一致的步驟序列。該等步驟是需求實際量值之實際操作手段之那些者。通常,雖然不必定需要,這些量值採取能夠儲存、轉移、組合、比較、以及其他操作之電氣或磁信號形式。主要地對於常見用法的理由,將這些信號示為位元、數值、元件、符號、字元、項目、數目、或其類似者,已證實在時間上是方便的。
然而,應該銘記的是,所有這些以及相似術語是與適當的實際量值相關聯並且僅僅是應用至這些量值之方便標籤。除非明確地說明,否則如自此處所討論地應可
明顯地了解,整體的說明中,利用術語(例如,“處置”或“計算”或“計數”或“判定”或“顯示”或其類似者)之討論,係涉及一電腦系統、或相似電子電腦裝置之動作和處置,該等電腦系統、或電子電腦裝置係操作和轉換如在電腦系統之暫存器以及記憶體內的實際(電子)量值所表示的資料成為相似地如在電腦系統記憶體或暫存器或其他之此類資訊儲存、傳輸或顯示裝置內的實際量值所表示之其他資料。
某些實施例也係關於用以進行此處之操作的設備。這設備可以是供用於所需的目的而特別地構成,或其可包括選擇地為儲存於一電腦中之一電腦程式所致動或所重新組態之一般用途的電腦。此一電腦程式可以儲存於一電腦可讀取儲存媒體中,例如,但是不受限定於,任何型式之碟片,如包含軟式磁碟片、光碟、CD-ROM、以及磁-光碟、唯讀記憶體(ROM)、隨機存取記憶體(RAM),例如,動態RAM(DRAM)、EPROM、EEPROM、磁或光學卡、或適用於儲存電子指令且耦合至一電腦系統匯流排之任何型式的媒體。
此處所呈現之演算法和顯示本質上是無關於任何特定的電腦或其他的設備。各種一般用途系統可以依據此處技術配合程式使用,或其可以方便地建構更專門的設備以進行所需的方法步驟。對於多種這些系統之所需的結構將可自此處之說明而顯現。此外,上述之某些實施例是並不參考任何特定程式語言而說明。應了解,多種程式語言係可以使用以實行如此處所說明之此等實施例的技術。
除了此處所說明者之外,所揭示之實施例和實行例可以有各種修改而不脫離它們的範疇。因此,應可理解地,此處之例示和範例將只是作為例示,並且將不是作為限制之意義。本發明範疇將參考隨後的申請專利範圍而單獨地受估量。
100‧‧‧系統
110‧‧‧記憶體控制器
112‧‧‧記憶體備用器邏輯
114‧‧‧記憶體洗滌器邏輯
120‧‧‧記憶體子系統
125‧‧‧互連
130‧‧‧片段
132a-132n‧‧‧片段
140‧‧‧記憶體控制器
142‧‧‧備用片段
150‧‧‧處理器
152‧‧‧第一處置器
154‧‧‧第二處置器
Claims (25)
- 一種記憶體控制器,其包括:洗滌器邏輯,其包含電路以進行一記憶體之複數個現用片段的一第一巡邏洗滌,以及進行平臺之一個或多個片段的一第二巡邏洗滌,而該等一個或多個片段係各自可利用作為用於該等複數個現用片段之一備用片段;以及備用器邏輯,其包含電路以接收基於該第一巡邏洗滌所檢測之一第一不可更正錯誤事件的一表示,其中於一第一處置器程序和一第二處置器程序中,該備用器邏輯用以響應於該第一不可更正錯誤事件之表示而僅傳信該第一處置器程序,該備用器邏輯進一步地用以接收基於該第二巡邏洗滌所檢測之一第二不可更正錯誤事件的一表示,其中於該第一處置器程序和該第二處置器程序中,該備用器邏輯用以響應於該第二不可更正錯誤事件之表示而僅傳信該第二處置器程序。
- 如請求項1之記憶體控制器,其中該第一處置器程序包含一機器檢查異常處理器。
- 如請求項1之記憶體控制器,其中該第二處置器程序包含一中斷處置器。
- 如請求項1之記憶體控制器,其中該第二處置器程序登記用以取代一記憶體裝置之一服務要求。
- 如請求項1之記憶體控制器,其中該第一處置器程序是藉由一處理器在一主機操作系統執行期間執行,並且其中該第二處置器程序是在該處理器之一系統管理模式期間執行。
- 如請求項1之記憶體控制器,如果一臨界可更正錯誤事件是基於該第一巡邏洗滌而被檢測,則該備用器邏輯進一步地用以傳信除了該第一程序之外的一處置器程序,其中響應於該臨界可更正錯誤事件所傳信的任何處置器程序是除了該第一處置器程序之外的一處置器程序。
- 如請求項6之記憶體控制器,其中用以傳信除了該第一程序之外的該處置器程序之該備用器邏輯包含用以傳信在一處理器之一系統管理模式期間所執行的一處置器程序之該備用器邏輯。
- 一種用於處理資料錯誤事件之方法,其包括下列步驟:進行一記憶體之複數個現用片段的第一巡邏洗滌;如果一不可更正錯誤事件是基於該第一巡邏洗滌而被檢測,則傳信一第一處置器程序,其中於該第一處置器程序和一第二處置器程序中,僅該第一處置器程序係響應於藉由該第一巡邏洗滌所檢測之該不可更正錯誤事件而傳信;進行該記憶體之一個或多個片段的第二巡邏洗滌,而該等一個或多個片段係各自可利用作為對於該等複數個現用片段之一備用片段;以及 如果一不可更正錯誤事件是基於該第二巡邏洗滌而被檢測,則傳信該第二處置器程序,其中於該第一處置器程序和一第二處置器程序中,僅該第一處置器程序係響應於藉由該第一巡邏洗滌所檢測之該不可更正錯誤事件而傳信。
- 如請求項8之方法,其中該第一處置器程序包含一機器檢查異常處理器。
- 如請求項8之方法,其中該第二處置器程序包含一中斷處置器。
- 如請求項8之方法,其中該第二處置器程序登記用以取代一記憶體裝置之一服務要求。
- 如請求項8之方法,其中該第一處置器程序是藉由一處理器在一主機操作系統執行期間執行,並且其中該第二處置器程序是在該處理器之一系統管理模式期間執行。
- 如請求項8之方法,其進一步地包括下列步驟:如果一臨界可更正錯誤事件是基於該第一巡邏洗滌而被檢測,則傳信除了該第一程序之外的一處置器程序,其中響應於該臨界可更正錯誤事件所傳信的任何處置器程序是除了該第一處置器程序之外的一處置器程序。
- 如請求項13之方法,其中傳信除了該第一程序之外的該處置器程序包含傳信在一處理器之一系統管理模式期間所執行的一處置器程序。
- 一種用於處理資料錯誤事件之系統,其包括: 一個或多個記憶體裝置;以及一互連;一記憶體控制器,其經由該互連而耦合至該等一個或多個記憶體裝置,該記憶體控制器用以控制該等一個或多個記憶體裝置,該記憶體控制器包含:洗滌器邏輯,其包含電路用以進行該等一個或多個記憶體裝置之複數個現用片段的第一巡邏洗滌,以及用以進行該等一個或多個記憶體裝置之一個或多個片段的第二巡邏洗滌,而該等一個或多個片段係各自可利用作為對於該等複數個現用片段之一備用片段;以及備用器邏輯,其包括電路用以接收基於該第一巡邏洗滌所檢測之一第一不可更正錯誤事件的一表示,其中,在一第一處置器程序和一第二處置器程序中,該備用器邏輯用以響應於該第一不可更正錯誤事件之該表示而僅傳信該第一處置器程序,該備用器邏輯進一步地用以接收基於該第二巡邏洗滌所檢測之一第二不可更正錯誤事件的一表示,其中,在一第一處置器程序和一第二處置器程序中,該備用器邏輯用以響應於該第二不可更正錯誤事件之該表示而僅傳信該第二處置器程序。
- 如請求項15之系統,其中該第一處置器程序包含一機器檢查異常處理器。
- 如請求項15之系統,其中該第二處置器程序包含一中斷處置器。
- 如請求項15之系統,其中該第二處置器程序登記用以取代一記憶體裝置之一服務要求。
- 如請求項15之系統,其中該第一處置器程序是藉由一處理器在一主機操作系統執行期間執行,並且其中該第二處置器程序是在該處理器之一系統管理模式期間執行。
- 如請求項15之系統,如果一臨界可更正錯誤事件是基於該第一洗滌而被檢測,則該備用器邏輯進一步地用以傳信除了該第一程序之外的一處置器程序,其中響應於該臨界可更正錯誤事件所傳信的任何處置器程序是除了該第一處置器程序之外的一處置器程序。
- 一種電腦可讀取儲存媒體,其具有儲存在其上之指令,當該等指令藉由一個或多個處理單元而執行時,導致該等一個或多個處理單元進行一方法,該方法包括下列步驟:進行一記憶體之複數個現用片段的第一巡邏洗滌;如果一不可更正錯誤事件是基於該第一巡邏洗滌而被檢測,則傳信一第一處置器程序,其中於該第一處置器程序和一第二處置器程序中,僅該第一處置器程序響應於藉由該第一巡邏洗滌所檢測之該不可更正錯誤事件而傳信;進行該記憶體之一個或多個片段的第二巡邏洗滌,而該等一個或多個片段係各自可利用作為用於該等複數個現用片段之一備用片段;以及如果一不可更正錯誤事件是基於該第二巡邏洗滌而被 檢測,則傳信該第二處置器程序,其中於該第一處置器程序和一第二處置器程序中,僅該第一處置器程序響應於藉由該第一巡邏洗滌所檢測之該不可更正錯誤事件而傳信。
- 如請求項21之電腦可讀取儲存媒體,其中該第一處置器程序包含一機器檢查異常處理器。
- 如請求項21之電腦可讀取儲存媒體,其中該第二處置器程序包含一中斷處置器。
- 如請求項21之電腦可讀取儲存媒體,其中該第二處置器程序登記用以取代一記憶體裝置之一服務要求。
- 如請求項21之電腦可讀取儲存媒體,其中該第一處置器程序是藉由一處理器在一主機操作系統執行期間執行,並且其中該第二處置器程序是在該處理器之一系統管理模式期間執行。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/075472 WO2015157932A1 (en) | 2014-04-16 | 2014-04-16 | Method, apparatus and system for handling data error events with memory controller |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201603040A TW201603040A (zh) | 2016-01-16 |
TWI553650B true TWI553650B (zh) | 2016-10-11 |
Family
ID=54323369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104108096A TWI553650B (zh) | 2014-04-16 | 2015-03-13 | 以記憶體控制器來處理資料錯誤事件之方法、設備及系統 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9535782B2 (zh) |
EP (1) | EP3132449B1 (zh) |
KR (1) | KR101821515B1 (zh) |
CN (1) | CN106463179B (zh) |
TW (1) | TWI553650B (zh) |
WO (1) | WO2015157932A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI685751B (zh) * | 2018-04-10 | 2020-02-21 | 神雲科技股份有限公司 | 伺服器裝置的錯誤報告功能的控制方法 |
TWI758877B (zh) * | 2020-08-19 | 2022-03-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其儲存矩陣選擇方法 |
TWI787291B (zh) * | 2017-06-28 | 2022-12-21 | 英商Arm股份有限公司 | 與領域相關的架構狀態的遮罩 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9703661B2 (en) | 2015-02-05 | 2017-07-11 | International Business Machines Corporation | Eliminate corrupted portions of cache during runtime |
US9904595B1 (en) | 2016-08-23 | 2018-02-27 | Texas Instruments Incorporated | Error correction hardware with fault detection |
US10437729B2 (en) | 2017-04-19 | 2019-10-08 | International Business Machines Corporation | Non-disruptive clearing of varying address ranges from cache |
US10489253B2 (en) | 2017-05-16 | 2019-11-26 | International Business Machines Corporation | On-demand GPR ECC error detection and scrubbing for a multi-slice microprocessor |
US10679718B2 (en) * | 2017-10-04 | 2020-06-09 | Western Digital Technologies, Inc. | Error reducing matrix generation |
KR102538679B1 (ko) * | 2018-04-06 | 2023-06-02 | 삼성전자주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US11221910B2 (en) | 2018-07-24 | 2022-01-11 | Micron Technology, Inc. | Media scrubber in memory system |
US10846162B2 (en) | 2018-11-29 | 2020-11-24 | Oracle International Corporation | Secure forking of error telemetry data to independent processing units |
CN110046061A (zh) * | 2019-03-01 | 2019-07-23 | 华为技术有限公司 | 内存错误处理方法和装置 |
US11042483B2 (en) | 2019-04-26 | 2021-06-22 | International Business Machines Corporation | Efficient eviction of whole set associated cache or selected range of addresses |
US11334457B1 (en) * | 2019-06-27 | 2022-05-17 | Samsung Electronics Co., Ltd. | Semiconductor memory device and memory system including the same |
KR20220049397A (ko) | 2020-10-14 | 2022-04-21 | 삼성전자주식회사 | 메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법 |
WO2022099531A1 (en) * | 2020-11-12 | 2022-05-19 | Intel Corporation | Offloading reliability, availability and serviceability runtime system management interrupt error handling to cpu on-die modules |
US11348620B1 (en) * | 2021-01-26 | 2022-05-31 | Dell Products L.P. | Systems and methods for power protection on failed memory devices |
US11537468B1 (en) * | 2021-12-06 | 2022-12-27 | Hewlett Packard Enterprise Development Lp | Recording memory errors for use after restarts |
US20240241778A1 (en) * | 2021-12-13 | 2024-07-18 | Intel Corporation | In-system mitigation of uncorrectable errors based on confidence factors, based on fault-aware analysis |
US20230333749A1 (en) * | 2022-04-15 | 2023-10-19 | SK Hynix Inc. | Memory, operation method of memory, and operation method of memory system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5263032A (en) * | 1991-06-27 | 1993-11-16 | Digital Equipment Corporation | Computer system operation with corrected read data function |
EP1031992A2 (en) * | 1989-04-13 | 2000-08-30 | SanDisk Corporation | Flash EEPROM system |
US20020016942A1 (en) * | 2000-01-26 | 2002-02-07 | Maclaren John M. | Hard/soft error detection |
US7334159B1 (en) * | 2003-09-29 | 2008-02-19 | Rockwell Automation Technologies, Inc. | Self-testing RAM system and method |
TWI320853B (en) * | 2003-04-14 | 2010-02-21 | Ibm | A high reliability memory module with a fault tolerant address and command bus and the method thereof |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5267242A (en) | 1991-09-05 | 1993-11-30 | International Business Machines Corporation | Method and apparatus for substituting spare memory chip for malfunctioning memory chip with scrubbing |
US5379415A (en) * | 1992-09-29 | 1995-01-03 | Zitel Corporation | Fault tolerant memory system |
US6480982B1 (en) * | 1999-06-04 | 2002-11-12 | International Business Machines Corporation | Computer RAM memory system with enhanced scrubbing and sparing |
US6981173B2 (en) * | 2001-09-28 | 2005-12-27 | Hewlett-Packard Development Company, L.P. | Redundant memory sequence and fault isolation |
US8060774B2 (en) * | 2005-06-24 | 2011-11-15 | Google Inc. | Memory systems and memory modules |
US20070089032A1 (en) | 2005-09-30 | 2007-04-19 | Intel Corporation | Memory system anti-aliasing scheme |
US7325078B2 (en) * | 2005-10-06 | 2008-01-29 | Hewlett-Packard Development Company, L.P. | Secure data scrubbing |
US7913147B2 (en) * | 2006-05-08 | 2011-03-22 | Intel Corporation | Method and apparatus for scrubbing memory |
US7823011B2 (en) * | 2007-08-22 | 2010-10-26 | International Business Machines Corporation | Intra-disk coding scheme for data-storage systems |
US8161356B2 (en) * | 2008-03-28 | 2012-04-17 | Intel Corporation | Systems, methods, and apparatuses to save memory self-refresh power |
US8122308B2 (en) * | 2008-06-25 | 2012-02-21 | Intel Corporation | Securely clearing an error indicator |
US8020053B2 (en) * | 2008-10-29 | 2011-09-13 | Hewlett-Packard Development Company, L.P. | On-line memory testing |
US20110041005A1 (en) | 2009-08-11 | 2011-02-17 | Selinger Robert D | Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System |
US8640006B2 (en) * | 2011-06-29 | 2014-01-28 | International Business Machines Corporation | Preemptive memory repair based on multi-symbol, multi-scrub cycle analysis |
US8687421B2 (en) | 2011-11-21 | 2014-04-01 | Sandisk Technologies Inc. | Scrub techniques for use with dynamic read |
US9003223B2 (en) * | 2012-09-27 | 2015-04-07 | International Business Machines Corporation | Physical memory fault mitigation in a computing environment |
-
2014
- 2014-04-16 US US14/428,338 patent/US9535782B2/en active Active
- 2014-04-16 CN CN201480077247.1A patent/CN106463179B/zh active Active
- 2014-04-16 EP EP14889730.9A patent/EP3132449B1/en active Active
- 2014-04-16 KR KR1020167025102A patent/KR101821515B1/ko active IP Right Grant
- 2014-04-16 WO PCT/CN2014/075472 patent/WO2015157932A1/en active Application Filing
-
2015
- 2015-03-13 TW TW104108096A patent/TWI553650B/zh not_active IP Right Cessation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1031992A2 (en) * | 1989-04-13 | 2000-08-30 | SanDisk Corporation | Flash EEPROM system |
US5263032A (en) * | 1991-06-27 | 1993-11-16 | Digital Equipment Corporation | Computer system operation with corrected read data function |
US20020016942A1 (en) * | 2000-01-26 | 2002-02-07 | Maclaren John M. | Hard/soft error detection |
TWI320853B (en) * | 2003-04-14 | 2010-02-21 | Ibm | A high reliability memory module with a fault tolerant address and command bus and the method thereof |
US7334159B1 (en) * | 2003-09-29 | 2008-02-19 | Rockwell Automation Technologies, Inc. | Self-testing RAM system and method |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI787291B (zh) * | 2017-06-28 | 2022-12-21 | 英商Arm股份有限公司 | 與領域相關的架構狀態的遮罩 |
TWI685751B (zh) * | 2018-04-10 | 2020-02-21 | 神雲科技股份有限公司 | 伺服器裝置的錯誤報告功能的控制方法 |
US10970151B2 (en) | 2018-04-10 | 2021-04-06 | Mitac Computing Technology Corporation | Method for controlling correctable error reporting function for server device |
TWI758877B (zh) * | 2020-08-19 | 2022-03-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其儲存矩陣選擇方法 |
US11403010B2 (en) | 2020-08-19 | 2022-08-02 | Silicon Motion, Inc. | Data storage device and plane selection method thereof |
Also Published As
Publication number | Publication date |
---|---|
EP3132449A1 (en) | 2017-02-22 |
CN106463179A (zh) | 2017-02-22 |
KR101821515B1 (ko) | 2018-01-23 |
TW201603040A (zh) | 2016-01-16 |
WO2015157932A1 (en) | 2015-10-22 |
EP3132449A4 (en) | 2017-12-20 |
US9535782B2 (en) | 2017-01-03 |
CN106463179B (zh) | 2019-11-19 |
US20160004587A1 (en) | 2016-01-07 |
KR20160120323A (ko) | 2016-10-17 |
EP3132449B1 (en) | 2023-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI553650B (zh) | 以記憶體控制器來處理資料錯誤事件之方法、設備及系統 | |
US10824499B2 (en) | Memory system architectures using a separate system control path or channel for processing error information | |
TWI605459B (zh) | 基於錯誤類型之錯誤檢查與校正(ecc)的動態應用程式 | |
US8732532B2 (en) | Memory controller and information processing system for failure inspection | |
JP7155103B2 (ja) | Ddrメモリエラーリカバリ | |
CN105589762B (zh) | 存储器装置、存储器模块和用于纠错的方法 | |
EP1984822B1 (en) | Memory transaction replay mechanism | |
US9904591B2 (en) | Device, system and method to restrict access to data error information | |
US20150067437A1 (en) | Apparatus, method and system for reporting dynamic random access memory error information | |
US8806285B2 (en) | Dynamically allocatable memory error mitigation | |
US20090150721A1 (en) | Utilizing A Potentially Unreliable Memory Module For Memory Mirroring In A Computing System | |
KR102378466B1 (ko) | 메모리 장치 및 모듈 | |
CN103999055A (zh) | 访问命令/地址寄存器装置中存储的数据 | |
CN103930878A (zh) | 用于存储器验证的方法、装置及系统 | |
JP2022172443A (ja) | メモリチップロウハンマー脅威バックプレッシャー信号およびホスト側応答に関する方法および装置 | |
US20220107866A1 (en) | Fast memory ecc error correction | |
WO2021088368A1 (zh) | 一种存储器的修复方法及装置 | |
CN104636271A (zh) | 访问命令/地址寄存器装置中存储的数据 | |
US20140181496A1 (en) | Method, Apparatus and Processor for Reading Bios | |
CN109753239B (zh) | 半导体存储模块、半导体存储系统和访问其的方法 | |
TWI715294B (zh) | 基於系統管理匯流排界面對i2c記憶體進行讀寫的方法 | |
US20240004757A1 (en) | Electronic device managing corrected error and operating method of electronic device | |
US20230035137A1 (en) | Idle power mode for external storage device | |
CN113330411A (zh) | 一种存储控制器和数据搬迁监测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |