[go: up one dir, main page]

TWI756060B - 記憶體器件及動態誤差監視和修復的方法 - Google Patents

記憶體器件及動態誤差監視和修復的方法 Download PDF

Info

Publication number
TWI756060B
TWI756060B TW110106049A TW110106049A TWI756060B TW I756060 B TWI756060 B TW I756060B TW 110106049 A TW110106049 A TW 110106049A TW 110106049 A TW110106049 A TW 110106049A TW I756060 B TWI756060 B TW I756060B
Authority
TW
Taiwan
Prior art keywords
storage unit
data storage
error
storage units
repair
Prior art date
Application number
TW110106049A
Other languages
English (en)
Other versions
TW202139205A (zh
Inventor
野口紘希
林谷峰
奕 王
Original Assignee
台灣積體電路製造股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/130,250 external-priority patent/US11380415B2/en
Application filed by 台灣積體電路製造股份有限公司 filed Critical 台灣積體電路製造股份有限公司
Publication of TW202139205A publication Critical patent/TW202139205A/zh
Application granted granted Critical
Publication of TWI756060B publication Critical patent/TWI756060B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/073Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/20Address generation devices; Devices for accessing memories, e.g. details of addressing circuits using counters or linear-feedback shift registers [LFSR]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/24Accessing extra cells, e.g. dummy cells or redundant cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

一種記憶體器件包含:儲存單元陣列,包括多個儲存單元,多個儲存單元包括包含第一數據儲存單元的多個數據儲存單元和包含第一備份儲存單元的多個備份儲存單元;儲存裝置,儲存配置成記錄多個數據儲存單元中的誤差的誤差表,誤差表包含多個誤差表條目,每一誤差表條目對應於多個數據儲存單元中的一個且具有地址和故障計數;以及控制器,配置成基於誤差表用第一備份儲存單元替換第一數據儲存單元。

Description

記憶體器件及動態誤差監視和修復的方法
在本發明的實施例中闡述的技術大體來說涉及記憶體器件,且更具體來說,涉及記憶體器件及動態誤差監視和修復的方法。
記憶體器件用於在半導體器件和系統中儲存信息。非揮發性記憶體器件即使在切斷電源之後也能夠保留數據。非揮發性記憶體器件的實例包含快閃記憶體、鐵電隨機存取記憶體(ferroelectric random access memory,FRAM)、磁性隨機存取記憶體(magnetic random access memory,MRAM)、電阻式隨機存取記憶體(resistive random access memory,RRAM)以及相變記憶體(phase-change memory,PCM)。MRAM、RRAM、FRAM以及PCM有時被稱為新出現的記憶體器件。
本發明實施例提供一種記憶體器件,包括:儲存單元陣 列,包括多個儲存單元,所述多個儲存單元包括包含第一數據儲存單元的多個數據儲存單元以及包含第一備份儲存單元的多個備份儲存單元;儲存裝置,儲存配置成記錄與所述多個數據儲存單元相關聯的誤差的誤差表,所述誤差表包含多個誤差表條目,每一誤差表條目對應於所述多個數據儲存單元中的一個且具有地址和故障計數;以及控制器,配置成基於所述誤差表用所述第一備份儲存單元替換所述第一數據儲存單元。
本發明實施例提供一種記憶體器件,包括:儲存單元陣列,包括多個儲存單元,所述多個儲存單元包括多個數據儲存單元和M個備份儲存單元,M是大於一的整數;儲存裝置,儲存修復表,其中所述修復表包含對應於由所述M個備份儲存單元替換的M個數據儲存單元的M個修復表條目,每一修復表條目具有地址和故障計數;以及控制器,配置成:更新所述修復表以產生更新的修復表;以及基於所述更新的修復表用所述M個備份儲存單元中的至少一個替換所述M個數據儲存單元中的至少一個。
本發明實施例提供一種動態誤差監視和修復的方法,包括:提供包括多個儲存單元的儲存單元陣列,所述多個儲存單元包括多個數據儲存單元和多個備份儲存單元;通過誤差校正碼電路檢測所述多個數據儲存單元中的誤差;產生誤差表,所述誤差表包含多個誤差表條目,每一誤差表條目對應於所述多個數據儲存單元中的一個且具有地址和故障計數;以及基於所述誤差表,用所述多個備份儲存單元當中的第一備份儲存單元替換所述多個 數據儲存單元當中的第一數據儲存單元。
100:記憶體器件
102:儲存單元陣列
104:儲存單元
104b:備份儲存單元
104d:數據儲存單元
104r:替換儲存單元
106:控制器
108:控制電路
110:命令地址閂鎖電路
112:脈衝發生器電路
114:儲存裝置
116:電壓產生電路
118:列解碼器
120:字線控制電路
122:行解碼器
124:位元線控制電路
126:讀取電路
128:感測放大器
130:寫入電路
132:輸入/輸出(I/O)電路
134:ECC電路
136:誤差監視電路
138:誤差表
140:修復電路
142、142a、142b、142c:修復表
202、602:第一行
204、604:第二行
206、206-1、206-2、206-3、206-4、206-5、206-6、206-7、206-8、206-9、206-10、206-11、606、606-1、606-2、606-3、606-4、606-5、606-6、606-7、606-8:條目
300、400、700、800、900:方法
302、304、306、308、310、312、402、404、702、704、706、708、802、804、806、808、902、904、906、908:步驟
A1、A2、A3、A4、A5、A6、A7、A8、A9、A10、A11、Ab1、Ab7、Ab8:地址
M:數目
N1、N2、N3、N4、N5、N6、N7、N8、N9、N10、N11:故障計數
當結合附圖閱讀時從以下詳細描述最好地理解本公開的方面。應注意,根據業界中的標準慣例,各個特徵未按比例繪製。實際上,為了論述清楚起見,可任意增大或減小各個特徵的尺寸。另外,圖式作為本發明的實施例的實例是說明性的且並不希望是限制性的。
圖1是示出根據一些實施例的併入動態誤差監視和修復的實例記憶體器件的方塊圖。
圖2是根據一些實施例的實例誤差表。
圖3是示出根據一些實施例的更新誤差表的方法的流程圖。
圖4是示出根據一些實施例的動態誤差監視和修復的方法的流程圖。
圖5A是示出根據一些實施例的在任何替換之前具有動態誤差監視和修復的儲存單元陣列的示意圖。
圖5B是示出根據一些實施例的在實施圖4的方法之後的圖5A的儲存單元陣列的示意圖。
圖6A是根據一些實施例的修復表。
圖6B是根據一些實施例的另一修復表。
圖6C是根據一些實施例的又一修復表。
圖7是示出根據一些實施例的更新修復表的方法的流程圖。
圖8A是示出根據一些實施例的動態誤差監視和修復的方法的流程圖。
圖8B是示出根據一些實施例的在實施圖8A的方法之前的儲存單元陣列的示意圖。
圖8C是示出根據一些實施例的在實施圖8A的方法之後的圖8B的儲存單元陣列的示意圖。
圖9是根據一些實施例的動態誤差監視和修復的方法的流程圖。
以下公開內容提供用於實施所提供主題的不同特徵的許多不同實施例或實例。下文描述組件和佈置的特定實例來簡化本公開。當然,這些組件和佈置僅是實例且並不希望是限制性的。舉例來說,在以下描述中,第一特徵在第二特徵上方或上的形成可包含第一特徵與第二特徵直接接觸地形成的實施例,且還可包含可在第一特徵與第二特徵之間形成額外特徵以使得第一特徵與第二特徵可不直接接觸的實施例。另外,本公開可在各種實例中重複附圖標號和/或字母。此重複是出於簡化和清楚的目的且本身並不指示所論述的各種實施例和/或配置之間的關係。
另外,為了易於描述,在本文中可使用例如“在......之下”、“在......下方”、“下部”、“在......上方”、“上部”等空間相對術語來描述如圖式中所示出的一個元件或特徵與另一(些)元件或特徵 的關係。除圖式中所描繪的定向之外,空間相對術語意圖涵蓋器件在使用或操作時的不同定向。裝置可以其它方式定向(旋轉90度或處於其它定向),且本文中所使用的空間相對描述詞也可相應地進行解譯。
新出現的記憶體器件(如鐵電隨機存取記憶體(FRAM)、磁性隨機存取記憶體(MRAM)、電阻式隨機存取記憶體(RRAM)以及相變記憶體(PCM))的製程仍不成熟。由於製程的差異、儲存單元當中的特性和使用條件等,儲存單元的耐久性和可靠性可能不同。因而,能夠令人滿意地儲存數據的“健康”單元可隨時間而發生故障,從而記錄不正確的儲存數據。換句話說,那些“健康”單元變成“故障”單元,並且儲存在那些“故障”單元中的數據位元變成“故障”位元。為了解決這類記憶體故障,誤差校正碼(error correction code,ECC)有時用於檢測和校正數據誤差。可利用不同的ECC方案。具體地,ECC電路可在記憶體器件的操作期間檢測誤差並校正這些誤差。除其它之外,ECC電路可包含ECC編碼器和ECC解碼器。ECC編碼器配置成產生奇偶校驗位元且形成碼字,而ECC解碼器配置成對碼字進行解碼且提供校正數據。
隨著儲存在記憶體器件中的數據的複雜度增加,誤差校正碼(ECC)能力也增加。舉例來說,一些ECC功能能夠校正多個數據位元。舉例來說,具有五位元容量的ECC能夠校正多達五位元的誤差。然而,隨著數據的複雜度持續增加,ECC可能難以提供所需數據誤差校正。
根據本公開的一些方面,產生且更新誤差表。誤差表記錄記憶體地址和對應於故障位元的故障單元的故障計數兩者。具有更新誤差表有助於更好地理解儲存單元陣列的儲存單元的狀態,所述狀態又可用於動態誤差監視和修復。在修復製程中,作為故障單元的數據儲存單元的一部分基於誤差表用備份儲存單元替換。在替換故障單元時,修復對應故障位元。在一個實施例中,具有高於閾值故障計數的故障計數的數據儲存單元用備份儲存單元替換。在另一實施例中,具有最高M個故障計數的M個數據儲存單元用備份儲存單元替換,且M是備份儲存單元的數目。因而,在替換具有較低故障計數的數據儲存單元之前替換具有較高故障計數的數據儲存單元。在又一實施例中,修復表記錄替換儲存單元的地址和故障計數。修復表週期性地或在更新誤差表後更新。由於有限數目的備份儲存單元,修復表在記憶體器件工作某一時間段後可以是“全滿的”(即,已經使用所有備份儲存單元)。因此,更新修復表以用具有較高故障計數的任何新條目替代修復表中的具有較低故障計數的任何現有條目。因而,根據其容量,修復表始終保持具有最高故障計數的條目的記錄。在修復表在更新之後有任何改變時,對應於從修復表去除的地址的替換儲存單元被恢復(即,再次變成數據儲存單元),由此釋放一個備份儲存單元。對應於添加到修復表的地址的數據儲存單元由所釋放的備份儲存單元替換。因此,根據上文實施例,動態監視和修復基於誤差表和/或修復表來實施,且有限的備份儲存單元被有效地使用且動態 地調整。
圖1是示出根據一些實施例的併入動態誤差監視和修復的實例記憶體器件100的方塊圖。在繪示的實例中,除其它之外,實例記憶體器件100包含儲存單元陣列102、控制器106、電壓產生電路116、列解碼器118、字線控制電路120、行解碼器122、位元線控制電路124、讀取電路126、寫入電路130、輸入/輸出(input/output,I/O)電路132、ECC電路134、誤差監視電路136以及修復電路140。
儲存單元陣列102包含佈置成列和行的多個儲存單元104。儲存單元104可包含MRAM單元、RRAM單元、FRAM單元和/或PCM單元,但也可採用其它類型的儲存單元。為簡單起見,每一儲存單元104儲存一個數據位元,但其它佈置(例如,兩個儲存單元104儲存一個數據位元)也在本公開的範圍內。換句話說,一個位元單元(即,用於儲存一個數據位元的單元)包含一個儲存單元104。
除其它之外,控制器106包含控制電路108、命令地址閂鎖電路110、脈衝發生器電路112以及儲存裝置114。命令地址閂鎖電路110暫時保存由記憶體器件100接收到的命令和地址作為輸入。命令地址閂鎖電路110將命令傳輸至控制電路108。命令地址閂鎖電路110將地址傳輸至列解碼器118和行解碼器122。
列解碼器118對地址中所包含的列地址進行解碼且將列地址發送至字線控制電路120。字線控制電路120基於解碼的列地 址選擇儲存單元陣列102的字線(對應於具體列)。具體地,存取那個具體列中的儲存單元104。
在另一方面,行解碼器120對地址中所包含的行地址進行解碼且將行地址發送至位元線控制電路124。位元線控制電路124基於解碼的行地址選擇儲存單元陣列102的位元線(對應於具體行)。具體地,在那個具體行中的所有儲存單元104當中,存取那個具體行中的儲存單元104,且數據可寫入至那個具體列和具體行中的儲存單元104或從所述儲存單元104讀取。
在寫入操作期間,寫入電路130為寫入至基於解碼的列地址和解碼的行地址而選擇的儲存單元104的數據供應各種電壓和電流。寫入操作所需的寫入脈衝(即,寫入脈衝寬度)由脈衝發生器電路112產生。在圖1的所示出實例中,脈衝發生器電路112位於控制器106中,但脈衝發生器電路112可以是控制器106外部的獨立組件。除其它之外,寫入電路130包含未繪示的寫入驅動器。
在讀取操作期間,讀取電路126為從基於解碼的列地址和解碼的行地址而選擇的儲存單元104讀取的數據供應各種電壓和電流。除其它之外,讀取電路126包含未繪示的讀取驅動器和感測放大器128。感測放大器128感測兩個互補位元線(即,BL和BLB)的電壓之間的相對較小差異且放大感測放大器128的輸出處的差異。
I/O電路132耦合到寫入電路130和讀取電路126兩者。 在寫入操作期間,I/O電路132暫時保存要寫入的數據且將要寫入的數據傳輸至寫入電路130。在另一方面,在讀取操作期間,I/O電路132暫時保存由讀取電路126讀取的數據。
電壓產生電路116通過使用記憶體器件100外部的電源電壓來產生用於記憶體器件100的操作的各種電壓。可將由電壓產生電路116產生的各種電壓施加至記憶體器件100的組件,如控制器106、列解碼器118、字線控制電路120、行解碼器122、位元線控制電路124、讀取電路126、寫入電路130、I/O電路132、ECC電路134、誤差監視電路136以及修復電路140。
控制電路108從命令地址閂鎖電路110接收命令。響應於命令,控制電路108控制記憶體器件100的組件的操作,這些組件如控制器106、列解碼器118、字線控制電路120、行解碼器122、位元線控制電路124、讀取電路126、寫入電路130、I/O電路132、脈衝發生器電路112、儲存裝置114、命令地址閂鎖電路110、電壓產生電路116、ECC電路134、誤差監視電路136以及修復電路140。
ECC電路134可採用ECC誤差檢測和ECC誤差校正的各種方法,但也可採用其它方法。ECC方案用於檢測和校正儲存於記憶體器件中的位元誤差。ECC電路134可通過產生ECC檢查位元(例如,冗餘位元或奇偶校驗位元)來對數據進行編碼,所述ECC檢查位元與數據一起儲存在記憶體器件中。數據位元和檢查(例如,奇偶校驗)位元一起形成碼字。已經研發出許多方案 來實施ECC,包含漢明(Hamming)代碼、三模塊化冗餘等。舉例來說,漢明代碼是取決於所利用的奇偶校驗位元的數目每碼字可檢測至多兩個位元誤差或在不檢測未校正誤差的情況下校正一個位元誤差的一類二進制線性塊代碼。已經研發數個方案,但一般來說,如果奇偶校驗位元佈置在碼字內以使得不同的不正確位元產生不同的誤差結果,那麼可識別誤差中的位元。對於具有誤差的碼字,誤差的圖案被稱為(誤差)校正子且識別誤差中的位元。漢明代碼可使用校正子解碼方法來解碼。在校正子解碼方法中,通過將接收到的碼字與奇偶校驗矩陣的轉置矩陣相乘來計算校正子。具體地,任何有效碼字與奇偶校驗矩陣的轉置矩陣相乘等於零,而任何無效碼字與奇偶校驗矩陣的轉置矩陣相乘不等於零。ECC的奇偶校驗矩陣H是描述碼字的組成部分必須滿足的線性關係的矩陣。奇偶校驗矩陣H可用於決定特定向量是否是碼字。奇偶校驗矩陣H也可用於解碼算法。校正子的計算通過校正子計算電路進行,其可實施為排它性的OR(XOR)樹。每一XOR樹具有多個數據位元作為輸入。
在一個非限制性實例中,針對64個數據位元產生8個奇偶校驗位元的ECC通常可檢測兩個位元誤差且校正64個數據位元中的一個位元誤差,稱為DED/SEC代碼,意思是雙誤差檢測(double-error detecting,DED)和單誤差校正(single-error correcting,SEC)。在另一實例中,可採用意思是雙誤差檢測(DED)和雙誤差校正(double-error correcting,DEC)的DED/DEC方案。 在又一實例中,可採用意思是單誤差檢測(single-error detecting,SED)和單誤差校正(SEC)的SED/SEC方案。ECC電路134配置成檢測和校正在傳輸或儲存期間出現在故障單元中的誤差。除其它之外,ECC電路134可包含未繪示的誤差檢測模塊和未繪示的誤差校正模塊。
誤差監視電路136耦合到ECC電路134、控制器106以及修復電路140。誤差監視電路136配置成監視在傳輸或儲存期間出現在故障單元中的誤差。基於由誤差監視電路136監視到的誤差,控制器106可產生用於動態誤差監視和修復的誤差表138和/或修復表142。誤差表138和修復表142在下文分別參考圖2和圖6A至圖6C詳細描述。誤差表138和修復表142都儲存在儲存裝置114中。應注意,誤差監視電路136可以是如圖1中的實例中所繪示的獨立組件,在其它實施例中,它也可併入至ECC電路134中。在一些實施例中,誤差監視電路136可併入至控制器106中。換句話說,控制器106可實施誤差監視電路136的所有功能。
除其它之外,儲存裝置114儲存誤差表138和修復表142。在另一實例中,儲存裝置114是隨機存取記憶體(random-access memory,RAM)。應注意,也可採用其它類型的儲存裝置。應注意,儲存裝置114也可以是控制器106外部的獨立組件。
修復電路140耦合到控制器106、誤差監視電路136以及I/O電路132。修復電路140配置成基於誤差表138和/或修復表142用備份儲存單元替換對應於故障位元的儲存單元(即,故障單 元),以防止出現嚴重誤差。下文參考圖4、圖5A、圖5B、圖8A至圖8C以及圖9詳細描述修復電路140的操作。
圖2是根據一些實施例的實例誤差表138。圖3是示出根據一些實施例的更新誤差表的方法300的流程圖。一般來說,誤差表是記錄如上文所描述的故障單元的記憶體地址和針對每一故障單元的數據誤差的計數(即,故障計數)兩者的表。實時維護誤差表(即,記錄故障單元的記憶體地址和相關聯故障計數)有助於更好的理解儲存單元陣列中的儲存單元的狀態。
在圖2中所繪示的實例中,誤差表138包含兩行。第一行202包含故障單元的地址,且第二行204包含那些故障單元的故障計數。所示出的誤差表138包含不同的條目206,條目206中的每一個對應於一個故障單元。在實例誤差表138中,存在十一個條目206-1至條目206-11(統稱為206),意思是迄今為止已經監視到總共十一個故障位元。舉例來說,條目206-5對應於具有地址A5的故障位元(即,故障單元),且故障計數是N5(例如,2),意思是故障位元已經發生兩次故障。
應注意,誤差表138是以實時方式更新的動態表,其將在下文參考圖3描述。在記憶體器件開始起作用時(例如,緊接在工廠重置之後),誤差表138可具有極有限(例如,僅一個)條目206或甚至完全是空的或空缺的(即,無條目206)。在起作用一會之後,誤差表138可具有更多(例如,如圖2中所繪示,十一個)條目206,意思是存在更多故障位元。換句話說,誤差隨著 時間推移而累積。
現參考圖3,方法300在步驟302處開始。在步驟302處,通過誤差監視電路136監視ECC電路134。在一個實施例中,誤差監視電路136監視ECC電路134。舉例來說,可具體地監視ECC電路134的校正子發生器。隨後,方法300進行到步驟304,其中誤差監視電路136確定是否存在故障位元。在一個實施例中,在ECC電路134檢測到誤差時,將相關聯的數據位元標記為故障位元。如上文所解釋,ECC電路134可通過計算校正子來檢測誤差,且校正子的計算通過校正子計算電路進行。因而,誤差監視電路136可確定是否存在故障位元。當誤差監視電路136檢測到校正子等於零時,誤差監視電路136確定不存在故障位元。當誤差監視電路136檢測到校正子不等於零時,誤差監視電路136確定存在故障位元。應注意,儘管用於上文實例的ECC方案是基於漢明代碼,但其它誤差檢測方案(例如,三模塊化冗餘)也在本公開的範圍內。
當誤差監視電路136在步驟304處確定不存在故障位元時,方法300循環回到步驟302。因而,誤差監視電路136保持以實時方式監視任何故障位元。在另一方面,當誤差監視電路136在步驟304處確定存在故障位元時,方法300進行到步驟306。在步驟306處,確定故障位元的地址。在一個實施例中,在誤差校正製程期間通過ECC電路134確定故障位元的地址。舉例來說,誤差校正代碼是提供單位元誤差校正和雙位元誤差檢測(即,如 上文所提及的DED/SEC方案)的漢明或蕭(Hsiao)代碼。也可採用其它方案,如如上文所提及的DED/DEC方案、如上文所提及的SED/SEC方案以及雷德所羅門(Reed-Solomon)誤差校正碼。在一個實施例中,誤差監視電路136從ECC電路134存取故障位元的地址。在一個實施例中,ECC電路134沿著故障位元的地址傳遞至誤差監視電路136。
隨後,方法300進行到步驟308。在步驟308處,確定地址是否在誤差表138中。在一個實施例中,誤差監視電路136沿著故障位元的地址傳遞至控制器106,且控制器106又通過檢查儲存在儲存裝置114中的誤差表138來確定故障位元的地址是否在誤差表138中。
當確定故障位元(即,故障單元)的地址在誤差表中(即,現有故障位元在誤差表中)時,方法300進行到步驟310。在步驟310處,故障位元的故障計數增加一。舉例來說,當地址“A11”在誤差表138中時,故障位元的故障計數增加一(即,從“N11”增加到“N11加一”)。在另一方面,當確定故障位元的地址不在誤差表中(即,新的故障位在誤差表中)時,方法300進行到步驟312。在步驟312處,添加新條目,且新條目包含故障位元(即,故障單元)的地址和故障計數一。舉例來說,當地址“A12”不在誤差表138中時,將新條目添加到誤差表138。未繪示的新條目包含地址“A12”和故障計數1。
在步驟310或步驟312之後,方法300循環回到誤差監 視電路136監視ECC電路134的步驟302。因而,誤差監視電路136保持以實時方式監視任何故障位元且因此更新誤差表138。
圖4是示出根據一些實施例的動態誤差監視和修復的方法400的流程圖。圖5A是示出根據一些實施例的在任何替換之前具有動態誤差監視和修復的儲存單元陣列102的示意圖。圖5B是示出根據一些實施例的在實施圖4的方法400之後的圖5A的儲存單元陣列102的示意圖。一般來說,誤差表138用於動態誤差監視和修復。當某一故障位元的故障計數高於閾值故障數目時,用備份單元替換相關聯故障單元。換句話說,故障單元不再用於儲存數據,所述故障單元由備份儲存單元替換。
方法400在步驟402處開始。在步驟402處,確定是否存在高於閾值故障計數的任何故障計數。在一個實施例中,控制器106讀取誤差表138的所有條目206,且將誤差表138的第二行204中的所有故障計數與閾值故障數目進行比較。在一個非限制性實例中,閾值故障數目是二。在另一實例中,閾值故障數目是三。在又一實例中,閾值故障數目是十。
當不存在高於閾值故障計數的故障計數時,步驟402循環回到步驟402。因而,控制器106保持監視高於閾值故障計數的任何故障計數。在另一方面,當存在高於閾值故障計數的故障計數時,方法400進行到步驟404。在步驟404處,對應於高於閾值故障計數的故障計數的故障單元用備份儲存單元替換。步驟404的實施的細節在下文參考圖5A和圖5B描述。對應於高於閾值故 障計數的故障計數的故障單元更可能具有比健康單元和具有不超過閾值故障計數的故障計數的其它故障單元嚴重的故障,這是因為較高故障計數指示不可撤銷故障(即,嚴重故障)的較高風險。因此,用備份儲存單元替換具有高於閾值故障計數的故障計數的故障單元可防止嚴重故障發生,由此提高記憶體器件100的可靠性。
參考圖5A,儲存單元陣列102包含佈置成列和行的多個儲存單元104。儲存單元104包含兩個類別:數據儲存單元104d和備份儲存單元104b。在圖5A中的非限制性實例中,存在佈置在一列中的八個備份儲存單元104b,但其它數目和佈置在本公開的範圍內。剩餘儲存單元104是用於儲存數據的數據儲存單元104d。在那些數據儲存單元104d當中,一些是健康的,不具有故障,且另一些已發生故障(即,具有大於零的故障計數的故障單元)。如圖5A和圖2中的實例中所繪示,存在已在儲存單元陣列102中發生故障的十一個數據儲存單元104d(即,具有地址A1至地址A11)。將這些數據儲存單元104d的地址與對應故障計數一起記錄在圖2中所繪示的誤差表138上。十一個數據儲存單元104d中的每一個具有其相應故障計數。在圖5A中的此實例中,十一個故障計數中無一者超過閾值故障計數,且因此,這些單元用於儲存數據。因此,備份儲存單元中無一者已經被使用。
參考圖5B,在此實例中,具有地址A6的儲存單元104具有超過閾值故障計數(例如,3)的故障計數(例如,4)。因此, 具有地址A6的儲存單元104由備份儲存單元104b替換,由此變成不用於儲存數據的替換儲存單元104r,且八個備份儲存單元104b中的一個(即,具有地址Ab1的儲存單元)用具有地址A6的儲存單元104替代。將儲存在替換單元104r中的數據傳送至備份儲存單元104b。在一個實施例中,數據傳送利用儲存裝置114中的額外儲存資源作為臨時記憶體而實施。在替代之後,具有地址Ab1的先前備份儲存單元變成數據儲存單元104d,而具有地址A6的先前數據儲存單元104d不用於儲存數據。因而,具有地址A6的故障單元由備份儲存單元104b替換,由此提高記憶體器件100的可靠性。在一個實施例中,控制器106可將替換儲存單元104r指定為“替換儲存單元”且將用於替換的備份儲存單元104b指定為“有源的”。在指定之後,記憶體器件100的其它組件(例如,控制電路108和命令地址閂鎖電路110)可因此根據替換起作用。在一個實施例中,控制器106可發指令給修復電路140以實施步驟404的一部分或全部。
圖6A是根據一些實施例的修復表142a。圖6B是根據一些實施例的另一修復表142b。圖6C是根據一些實施例的又一修復表142c。圖7是示出根據一些實施例的更新修復表的方法700的流程圖。一般來說,修復表記錄替換儲存單元140r和其地址以及故障計數。修復表可以週期性地或在更新誤差表後更新。由於有限數目的備份儲存單元104b,修復表在記憶體器件100工作某一時間段之後可以是“全滿的”(即,已使用所有備份儲存單元 104b)。因此,可能需要更新修復表以用具有較高故障計數的任何新條目替代修復表中的具有較低故障計數的任何現有條目。因而,根據其容量(即,備份儲存單元104b的數目),修復表始終保存具有最高故障計數的的條目的記錄。
如圖6A中的實例中所繪示,修復表142a包含兩個行。第一行602包含替換儲存單元104r的地址,且第二行604包含替換儲存單元104r的故障計數。修復表142a包含不同條目606,不同條目606中的每一個對應於一個替換儲存單元104r。修復表142a具有M個條目606的容量,且M是備份儲存單元104b的數目。在圖5A中所繪示的實例中,M是八。在圖6A中所繪示的此實例中,修復表142a具有對應於七個替換儲存單元104r的七個條目606-1至條目606-7,且條目606-8是空的。換句話說,修復表142a並非“全滿的”。
如圖6B中的實例中所繪示,圖6A的修復表142a在具有地址A4的數據儲存單元104d變成替換儲存單元104r之後變成修復表142b。先前的空條目606-8現對應於具有地址A4和故障計數N4的替換儲存單元104r。修復表142b變成全滿的,意思是已經使用所有備份儲存單元104b。
在修復表142變成全滿的之後,修復表142可根據圖7中所繪示的方法700更新。參考圖7,方法700在步驟702處開始。在步驟702處,讀取誤差表138和修復表142。在一個實施例中,控制器106讀取儲存在儲存裝置114中的誤差表138和修復表142 兩者。隨後,方法700進行到步驟704。在步驟704處,確定是否存在在誤差表138中但不在修復表142中的具有高於修復表142中的最低故障計數的故障計數的任何地址。在一個實施例中,控制器106將如圖2中所繪示的條目206與如例如圖6B中所繪示的條目606進行比較,以確定在誤差表138中但不在修復表142中的所有地址。隨後,控制器106將對應故障計數與修復表142中的最低故障計數進行比較。
如果確定不存在在誤差表138中但不在修復表142中的具有高於修復表142中的最低故障計數的故障計數的地址,那麼在方法700結束時,方法700進行到步驟708。換句話說,修復表142不需要更新。在另一方面,如果確定存在在誤差表138中但不在修復表142中的具有高於修復表142中的最低故障計數(例如,四)的故障計數(例如,五)的一個地址,那麼方法700進行到步驟706。
在步驟706處,修復表142中的具有最低故障計數的地址用誤差表138中的具有較高故障計數的地址替換。舉例來說,確定地址A2在如圖2中所繪示的誤差表138中但不在如圖6B中所繪示的修復表142b中,且故障計數N2(例如,五)高於對應於如圖6B中所繪示的修復表142b中的故障計數N10的最低故障計數(例如,四)。隨後,修復表142b中的地址A10用地址A2替換,如圖6C中所繪示。故障計數N10(例如,四)還用故障計數N2(例如,五)替換。因而,已經更新修復表142b中的一個 條目606,且具有最低故障計數(在此實例中,N10)的地址(在此實例中,A10)用具有較高故障計數(在此實例中,N2)的地址(在此實例中,A2)替換。
隨後,步驟706循環回到步驟702,方法700繼續直至最後在步驟708處結束。換句話說,方法700繼續且搜索在誤差表138中但不在修復表142中的具有高於修復表中的最低故障計數的故障計數的所有地址。舉例來說,如圖6C中的實例中所繪示,在地址A10用地址A2替換之後,修復表142b中的地址A4用誤差表中的地址A5替換。方法700最終在步驟708處結束。在圖6C中所繪示的實例中,修復表142在更新之後仍具有八個條目606-1至條目606-8,但已經更新兩個條目606-7和條目606-8。
應注意,如圖7中所繪示的方法700是定期更新方法。因此,修復表142中的多個(例如,兩個)地址可能在一次更新中替換。應注意,修復表的更新也可以圖7中未繪示的實時方式進行(即,一旦更新誤差表138,就實施方法700)。
圖8A是示出根據一些實施例的動態誤差監視和修復的方法800的流程圖。圖8B是示出根據一些實施例的在實施圖8A的方法800之前的儲存單元陣列102的示意圖。圖8C是示出根據一些實施例的在實施圖8A的方法800之後的圖8B的儲存單元陣列102的示意圖。一般來說,修復表142用於動態誤差監視和修復。當修復表142在更新之後具有任何改變時,將對應於從修復表142去除的地址的替換儲存單元104r恢復(即,再次變成數據 儲存單元104d),由此釋放一個備份儲存單元104b。對應於添加到修復表142的地址的數據儲存單元104d由所釋放的備份儲存單元104b替換。
方法800在步驟802處開始。在步驟802處,讀取更新的修復表和先前的修復表。在一個實例中,控制器106讀取更新的修復表(例如,圖6C的修復表142c)和先前修復表(例如,圖6B的修復表142b)兩者。隨後,方法800進行到步驟804。在步驟804處,將更新的修復表與先前修復表進行比較以確定添加到更新的修復表的地址和從更新的表去除的地址。在圖6B和圖6C中所繪示的實例中,添加到更新的修復表142c的地址是A2和A5,而從更新的修復表142c去除的地址分別是A10和A4。
隨後,方法800進行到步驟806。在步驟806處,將對應於從更新的修復表142c去除的地址(在此實例中,如圖8B中所繪示的A10和A4)的替換儲存單元104r恢復,且將相應備份儲存單元(在此實例中,如圖8B中所繪示的具有地址Ab7和地址Ab8的備份儲存單元104d)釋放。換句話說,對應於從更新的修復表142c去除的地址(在此實例中,如圖8B中所繪示的A10和A4)的替換儲存單元104r再次變成數據儲存單元104d以用於數據儲存,如圖8C中所繪示,而備份儲存單元104b(在此實例中,如圖8B中所繪示的具有地址Ab7和地址Ab8的備份儲存單元104b)釋放成稍後可用於替換其它數據儲存單元104d的備份儲存單元104b。
隨後,方法800進行到步驟808。在步驟808處,對應於添加到更新的修復表142c的地址(在此實例中,如圖8C中所繪示的A2和A5)的數據儲存單元104d用所釋放的備份儲存單元104b(在此實例中,如圖8C中所繪示的具有地址Ab7和地址Ab8的備份儲存單元104b)替換。換句話說,對應於添加到更新的修復表142c的地址(在此實例中,如圖8C中所繪示的A2和A5)的數據儲存單元104d變成如圖8C中所繪示的替換儲存單元104r,而備份儲存單元104b(在此實例中,如圖8B中所繪示的具有地址Ab7和地址Ab8的備份儲存單元104b)再次變成數據儲存單元104d。因而,在實施方法800之後,圖8B的儲存單元陣列102變成圖8C的儲存單元陣列102。具有地址A10的儲存單元變成數據儲存單元104d,且具有地址A2的儲存單元變成替換儲存單元104r。同樣,具有地址A4的儲存單元變成數據儲存單元104d,且具有地址A5的儲存單元變成替換儲存單元104r。因此,基於圖6C的被更新以保持具有最高故障計數的條目的記錄的更新的修復表142c,動態誤差監視和修復通過實施方法800進行。
圖9是根據一些實施例的動態誤差監視和修復的方法900的流程圖。一般來說,週期性地產生/更新修復表,且修復表具有M個(即,修復表的容量和備份儲存單元的數目)條目,所述M個條目對應於具有誤差表中的最高M個故障計數的M個地址。因此,修復表在每一更新之後始終具有M個條目,所述M個條目具有最高M個故障計數。隨後,動態誤差監視和修復基於修 復表進行。因而,週期性地釋放備份儲存單元,且用於替換具有最高M個故障計數的數據儲存單元(即,M個數據儲存單元最可能具有嚴重故障)。
方法900在步驟902處開始。在步驟902處,讀取誤差表。在一個實施例中,控制器106讀取儲存在儲存裝置114中的誤差表138。誤差表138可以是圖2的誤差表138,所述誤差表138根據圖3的方法300更新。隨後,方法900進行到步驟904。在步驟904處,確定具有最高M個故障計數的M個地址。在一個實施例中,控制器106確定具有圖2的誤差表138中的最高M(例如八)個故障計數的M(例如八)個地址。在一個非限制性實例中,確定可通過對圖2的誤差表138的第二行204中的故障計數進行排序來完成。
隨後,方法900進行到步驟906。在步驟906處,創建具有M個地址和對應的M個故障計數的修復表。在一個實施例中,控制器106用在步驟904處確定的M(例如,八)個地址和對應M(例如,八)個故障計數複寫先前修復表(如果有的話)。在另一實施例中,儲存裝置114可儲存多個修復表142,且控制器在步驟906處產生新修復表142。通過儲存多個修復表142,修復歷史被存檔並且稍後可出於如診斷和決策的目的追溯。
隨後,方法900進行到步驟908。在步驟908處,以M個備份儲存單元在步驟906處產生對應於修復表中的M個地址的M個儲存單元。在一個實施例中,控制器106和/或修復電路140 可實施類似於圖8A的步驟806和步驟808的數個步驟。具體地,控制器106和/或修復電路140可恢復所有替換儲存單元104r且釋放所有備份儲存單元104b(在恢復和釋放操作之後,儲存單元陣列看起來像圖5A的儲存單元陣列102)。隨後,控制器106和/或修復電路140可用M(例如,八)個所釋放的備份儲存單元104b(例如,圖5A的八個備份儲存單元104b)替換對應於修復表142中的M(例如,八)個地址的M(例如,八)個儲存單元104d。因而,基於誤差表138週期性地產生修復表142,且通過實施方法900進行動態誤差監視和修復。
根據一些所公開的實施例,提供一種記憶體器件。記憶體器件包含:儲存單元陣列,包括多個儲存單元,多個儲存單元包括包含第一數據儲存單元的多個數據儲存單元和包含第一備份儲存單元的多個備份儲存單元;儲存裝置,儲存配置成記錄與多個數據儲存單元相關聯的誤差的誤差表,誤差表包含多個誤差表條目,每一誤差表條目對應於多個數據儲存單元中的一個且具有地址和故障計數;以及控制器,配置成基於誤差表來用第一備份儲存單元替換第一數據儲存單元。
在相關實施例中,所述多個儲存單元是以下各項中的一個:鐵電隨機存取記憶體單元、磁性隨機存取記憶體單元、電阻性隨機存取記憶體單元以及相變記憶體單元。
在相關實施例中,所述控制器配置成在所述第一數據儲存單元的所述故障計數高於閾值故障計數時替換所述第一數據儲 存單元。
在相關實施例中,所述多個備份儲存單元是M個備份儲存單元,M是大於一的整數,且其中所述控制器配置成用所述M個備份儲存單元替換具有最高M個故障計數的M個數據儲存單元。
在相關實施例中,用所述第一備份儲存單元替換所述第一數據儲存單元包括:將儲存在所述第一數據儲存單元中的數據傳送至所述第一備份儲存單元;以及將所述第一數據儲存單元指定為替換儲存單元。
在相關實施例中,所述的記憶體器件更包括:誤差校正碼電路,配置成檢測所述多個數據儲存單元中的所述誤差。
在相關實施例中,所述的記憶體器件更包括:修復電路,配置成從所述控制器接收指令且根據所述指令用所述第一備份儲存單元替換所述第一數據儲存單元。
根據一些所公開的實施例,提供另一種記憶體器件。記憶體器件包含:儲存單元陣列,包括多個儲存單元,多個儲存單元包括多個數據儲存單元和M個備份儲存單元,M是大於一的整數;儲存裝置,儲存修復表,其中修復表包含對應於由M個備份儲存單元替換的M個數據儲存單元的M個修復表條目,每一修復表條目具有地址和故障計數;以及控制器,配置成:更新修復表以產生更新的修復表;以及基於更新的修復表來用M個備份儲存單元中的至少一個替換M個數據儲存單元中的至少一個。
在相關實施例中,所述儲存裝置配置成儲存誤差表,所述誤差表配置成記錄所述多個數據儲存單元中的誤差,所述誤差表包含多個誤差表條目,每一誤差表條目對應於所述多個數據儲存單元中的一個且具有地址和故障計數,且其中更新所述修復表是基於所述誤差表和所述修復表。
在相關實施例中,所述多個儲存單元是以下各項中的一個:鐵電隨機存取記憶體單元、磁性隨機存取記憶體單元、電阻性隨機存取記憶體單元以及相變記憶體單元。
在相關實施例中,基於所述誤差表和所述修復表更新所述修復表包括:確定第一地址,所述第一地址在所述誤差表中但不在所述修復表中,對應於所述第一地址的第一故障計數高於所述修復表中的最低故障計數,所述最低故障計數對應於第二地址;以及分別用所述第一地址和所述第一故障計數替換所述第二地址和所述最低故障計數。
在相關實施例中,週期性地更新所述修復表。
在相關實施例中,一旦更新所述誤差表,就更新所述修復表。
在相關實施例中,基於所述更新的修復表用所述M個備份儲存單元中的至少一個替換所述M個數據儲存單元中的至少一個包括:將所述更新的修復表與所述修復表進行比較以確定添加到所述更新的修復表的第三地址以及從所述更新的修復表去除的第四地址;用所述第四地址恢復第四儲存單元,用第一備份儲存 單元替換所述第四儲存單元;釋放所述第一備份儲存單元;以及用所述第一備份儲存單元替換具有所述第三地址的第三儲存單元。
在相關實施例中,用所述第一備份儲存單元替換所述第三儲存單元包括:將儲存在所述第三儲存單元中的數據傳送至所述第一備份儲存單元;以及將所述第三儲存單元指定為替換儲存單元。
在相關實施例中,所述的記憶體器件更包括:誤差校正碼電路,配置成檢測所述多個數據儲存單元中的所述誤差。
根據另外所公開的實施例,提供一種動態誤差監視和修復的方法。方法包含:提供包括多個儲存單元的儲存單元陣列,多個儲存單元包括多個數據儲存單元和多個備份儲存單元;通過ECC電路檢測多個數據儲存單元中的誤差;產生誤差表,誤差表包含多個誤差表條目,每一誤差表條目對應於多個數據儲存單元中的一個且具有地址和故障計數;以及基於誤差表來用多個備份儲存單元當中的第一備份儲存單元替換多個數據儲存單元當中的第一數據儲存單元。
在相關實施例中,基於所述誤差表用所述第一備份儲存單元替換所述第一數據儲存單元包括:在所述第一數據儲存單元的所述故障計數高於閾值故障計數時,用所述第一備份儲存單元替換所述第一數據儲存單元。
在相關實施例中,基於所述誤差表用所述第一備份儲存 單元替換所述第一數據儲存單元包括:在所述第一數據儲存單元的所述故障計數在最高M個故障計數當中時,用所述第一備份儲存單元替換所述第一數據儲存單元,M是所述多個備份儲存單元的數目。
在相關實施例中,所述多個儲存單元是以下各項中的一個:鐵電隨機存取記憶體單元、磁性隨機存取記憶體單元、電阻性隨機存取記憶體單元以及相變記憶體單元。
本公開概述各種實施例以使得本領域的技術人員可更好地理解本公開的方面。本領域的技術人員應瞭解,其可容易地將本公開用作設計或修改用於進行本文中所引入的實施例的相同目的和/或實現相同優點的其它製程和結構的基礎。本領域的技術人員還應認識到,此類等效構造並不脫離本公開的的精神和範圍,且其可在不脫離本公開的精神和範圍的情況下在本文中進行各種改變、替代以及更改。
100:記憶體器件
102:儲存單元陣列
104:儲存單元
106:控制器
108:控制電路
110:命令地址閂鎖電路
112:脈衝發生器電路
114:儲存裝置
116:電壓產生電路
118:列解碼器
120:字線控制電路
122:行解碼器
124:位元線控制電路
126:讀取電路
128:感測放大器
130:寫入電路
132:輸入/輸出(I/O)電路
134:ECC電路
136:誤差監視電路
138:誤差表
140:修復電路
142:修復表

Claims (5)

  1. 一種記憶體器件,包括:儲存單元陣列,包括多個儲存單元,所述多個儲存單元包括包含第一數據儲存單元的多個數據儲存單元以及包含第一備份儲存單元的多個備份儲存單元;儲存裝置,儲存配置成記錄與所述多個數據儲存單元相關聯的誤差的誤差表,所述誤差表包含多個誤差表條目,每一誤差表條目對應於所述多個數據儲存單元中的一個且具有地址和故障計數;以及控制器,配置成基於所述誤差表用所述第一備份儲存單元替換所述第一數據儲存單元,其中所述多個備份儲存單元是M個備份儲存單元,M是大於一的整數,且其中所述控制器配置成用所述M個備份儲存單元替換具有最高M個故障計數的M個數據儲存單元。
  2. 如請求項1所述的記憶體器件,其中所述控制器配置成在所述第一數據儲存單元的所述故障計數高於閾值故障計數時替換所述第一數據儲存單元。
  3. 如請求項1所述的記憶體器件,其中用所述第一備份儲存單元替換所述第一數據儲存單元包括:將儲存在所述第一數據儲存單元中的數據傳送至所述第一備份儲存單元;以及將所述第一數據儲存單元指定為替換儲存單元。
  4. 一種動態誤差監視和修復的方法,包括:提供包括多個儲存單元的儲存單元陣列,所述多個儲存單元 包括多個數據儲存單元和多個備份儲存單元;通過誤差校正碼電路檢測所述多個數據儲存單元中的誤差;產生誤差表,所述誤差表包含多個誤差表條目,每一誤差表條目對應於所述多個數據儲存單元中的一個且具有地址和故障計數;以及基於所述誤差表,用所述多個備份儲存單元當中的第一備份儲存單元替換所述多個數據儲存單元當中的第一數據儲存單元,其中基於所述誤差表用所述第一備份儲存單元替換所述第一數據儲存單元包括:在所述第一數據儲存單元的所述故障計數在最高M個故障計數當中時,用所述第一備份儲存單元替換所述第一數據儲存單元,M是所述多個備份儲存單元的數目。
  5. 如請求項4所述的方法,其中基於所述誤差表用所述第一備份儲存單元替換所述第一數據儲存單元包括:在所述第一數據儲存單元的所述故障計數高於閾值故障計數時,用所述第一備份儲存單元替換所述第一數據儲存單元。
TW110106049A 2020-02-27 2021-02-22 記憶體器件及動態誤差監視和修復的方法 TWI756060B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202062982369P 2020-02-27 2020-02-27
US62/982,369 2020-02-27
US17/130,250 2020-12-22
US17/130,250 US11380415B2 (en) 2020-02-27 2020-12-22 Dynamic error monitor and repair

Publications (2)

Publication Number Publication Date
TW202139205A TW202139205A (zh) 2021-10-16
TWI756060B true TWI756060B (zh) 2022-02-21

Family

ID=77270915

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110106049A TWI756060B (zh) 2020-02-27 2021-02-22 記憶體器件及動態誤差監視和修復的方法

Country Status (4)

Country Link
US (2) US11935610B2 (zh)
CN (1) CN113314182B (zh)
DE (1) DE102020134945A1 (zh)
TW (1) TWI756060B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11361825B2 (en) * 2019-12-18 2022-06-14 Micron Technology, Inc. Dynamic program erase targeting with bit error rate
DE102020134945A1 (de) * 2020-02-27 2021-09-02 Taiwan Semiconductor Manufacturing Co., Ltd. Dynamische fehlerüberwachung und -reparatur
KR20230166563A (ko) * 2022-05-31 2023-12-07 삼성전자주식회사 작동 도중에 발생하는 메모리 고장을 실시간으로 리페어링하는 방법과 메모리 시스템, 및 메모리 시스템을 포함하는 데이터 처리 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4628509A (en) * 1983-05-11 1986-12-09 Hitachi, Ltd. Testing apparatus for redundant memory
US6145092A (en) * 1997-04-22 2000-11-07 Micron Technology, Inc. Apparatus and method implementing repairs on a memory device
US6222772B1 (en) * 1997-12-26 2001-04-24 Samsung Electronics Co., Ltd. Methods of performing sector erase operations on non-volatile semiconductor memory devices
US6937531B2 (en) * 2003-07-21 2005-08-30 Infineon Technologies Ag Memory device and method of storing fail addresses of a memory cell
US7339844B2 (en) * 2006-02-17 2008-03-04 Verigy (Singapore) Pte. Ltd. Memory device fail summary data reduction for improved redundancy analysis

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4939694A (en) 1986-11-03 1990-07-03 Hewlett-Packard Company Defect tolerant self-testing self-repairing memory system
US7178072B2 (en) * 2001-06-08 2007-02-13 Renesas Technology America, Inc. Methods and apparatus for storing memory test information
US6968479B2 (en) 2002-03-06 2005-11-22 Hewlett-Packard Development Company, L.P. Verifying data in a data storage device
US6728146B1 (en) * 2002-07-03 2004-04-27 Macronix International Co., Ltd. Memory device and method for automatically repairing defective memory cells
US7386771B2 (en) 2006-01-06 2008-06-10 International Business Machines Corporation Repair of memory hard failures during normal operation, using ECC and a hard fail identifier circuit
JP4746658B2 (ja) * 2008-09-29 2011-08-10 株式会社東芝 半導体記憶システム
JP5494086B2 (ja) * 2010-03-24 2014-05-14 パナソニック株式会社 不揮発性記憶装置および不揮発性メモリコントローラ
KR102072449B1 (ko) 2012-06-01 2020-02-04 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 리페어 방법
KR101373668B1 (ko) 2012-06-22 2014-03-13 연세대학교 산학협력단 메모리 수리 장치 및 방법
US9087614B2 (en) * 2012-11-27 2015-07-21 Samsung Electronics Co., Ltd. Memory modules and memory systems
KR102238706B1 (ko) * 2014-11-28 2021-04-09 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
KR101545716B1 (ko) 2015-01-19 2015-08-20 연세대학교 산학협력단 메모리 수리 장치 및 방법, 그리고 그를 이용한 메모리 칩
KR102487553B1 (ko) * 2016-12-07 2023-01-11 삼성전자주식회사 리페어 가능한 휘발성 메모리를 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US11636014B2 (en) * 2017-10-31 2023-04-25 SK Hynix Inc. Memory system and data processing system including the same
KR102410566B1 (ko) * 2018-02-05 2022-06-17 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
KR102511903B1 (ko) * 2018-02-26 2023-03-21 에스케이하이닉스 주식회사 고정된 에러정정능력의 에러정정코드 엔진을 이용하여 재구성할 수 있는 에러정정동작을 수행하는 메모리 시스템
KR102573833B1 (ko) * 2018-04-18 2023-09-04 에스케이하이닉스 주식회사 메모리에 대한 테스트 회로 및 이를 포함하는 메모리 모듈
DE102020134945A1 (de) * 2020-02-27 2021-09-02 Taiwan Semiconductor Manufacturing Co., Ltd. Dynamische fehlerüberwachung und -reparatur
US11380415B2 (en) 2020-02-27 2022-07-05 Taiwan Semiconductor Manufacturing Company, Ltd. Dynamic error monitor and repair
CN113496746B (zh) * 2020-04-03 2024-05-14 澜起科技股份有限公司 用于检测存储模块缺陷的装置和方法以及存储器系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4628509A (en) * 1983-05-11 1986-12-09 Hitachi, Ltd. Testing apparatus for redundant memory
US6145092A (en) * 1997-04-22 2000-11-07 Micron Technology, Inc. Apparatus and method implementing repairs on a memory device
US6222772B1 (en) * 1997-12-26 2001-04-24 Samsung Electronics Co., Ltd. Methods of performing sector erase operations on non-volatile semiconductor memory devices
US6937531B2 (en) * 2003-07-21 2005-08-30 Infineon Technologies Ag Memory device and method of storing fail addresses of a memory cell
US7339844B2 (en) * 2006-02-17 2008-03-04 Verigy (Singapore) Pte. Ltd. Memory device fail summary data reduction for improved redundancy analysis

Also Published As

Publication number Publication date
US11935610B2 (en) 2024-03-19
CN113314182A (zh) 2021-08-27
TW202139205A (zh) 2021-10-16
DE102020134945A1 (de) 2021-09-02
US20220336037A1 (en) 2022-10-20
CN113314182B (zh) 2025-01-07
US20240221858A1 (en) 2024-07-04

Similar Documents

Publication Publication Date Title
TWI756060B (zh) 記憶體器件及動態誤差監視和修復的方法
JP4905839B2 (ja) Mramの動作方法
JP4905866B2 (ja) 半導体記憶装置及びその動作方法
US8495438B2 (en) Technique for memory imprint reliability improvement
US9389954B2 (en) Memory redundancy to replace addresses with multiple errors
US7200780B2 (en) Semiconductor memory including error correction function
US7346829B2 (en) Semiconductor device and testing method for same
JP2003115197A (ja) 固体記憶装置における誤り訂正符号化および復号化
JP2003115195A (ja) 耐障害性を有する磁気抵抗固体記憶装置
US11438015B2 (en) Two-level error correcting code with sharing of check-bits
US10229752B2 (en) Memory device correcting data error of weak cell
US7747926B2 (en) Methods and apparatus for a memory device with self-healing reference bits
US20050240838A1 (en) Semiconductor memory device having code bit cell array
US6643195B2 (en) Self-healing MRAM
US10901842B2 (en) Memory system and operating method thereof
KR102538821B1 (ko) 동적 에러 모니터 및 복구
US11265022B2 (en) Memory system and operating method thereof
CN111831486B (zh) 半导体装置和包括该半导体装置的半导体系统
Gherman et al. Programmable extended SEC-DED codes for memory errors
US10915398B2 (en) Memory system and operating method thereof
US20170249210A1 (en) Memory device and memory system
KR20200117129A (ko) 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US10998081B1 (en) Memory storage device having automatic error repair mechanism and method thereof
JP2013025560A (ja) メモリ制御装置
JP2003115196A (ja) 耐障害性を有する磁気抵抗固体記憶装置のための製造検査