TWI652685B - 自我識別記憶體錯誤 - Google Patents

自我識別記憶體錯誤 Download PDF

Info

Publication number
TWI652685B
TWI652685B TW103123816A TW103123816A TWI652685B TW I652685 B TWI652685 B TW I652685B TW 103123816 A TW103123816 A TW 103123816A TW 103123816 A TW103123816 A TW 103123816A TW I652685 B TWI652685 B TW I652685B
Authority
TW
Taiwan
Prior art keywords
memory
memory cell
replacement
fault
self
Prior art date
Application number
TW103123816A
Other languages
English (en)
Other versions
TW201517043A (zh
Inventor
戴維斯約漢D
施特勞斯卡林
曼納斯馬克史提夫
葛普蘭帕里克施特S
葉克亨尼沙爵
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
Application filed by 微軟技術授權有限責任公司 filed Critical 微軟技術授權有限責任公司
Publication of TW201517043A publication Critical patent/TW201517043A/zh
Application granted granted Critical
Publication of TWI652685B publication Critical patent/TWI652685B/zh

Links

Classifications

    • 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
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0064Verifying circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • 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
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0033Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0035Evaluating degradation, retention or wearout, e.g. by counting writing cycles
    • 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
    • G11C2029/0409Online test

Landscapes

  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

記憶體區域可在讀取時耐久地自我識別為是故障的。可能已經被分配給故障記憶體區域的資訊可使用替換編碼技術來被分配給記憶體中的另一那樣尺寸的區域。對於相位變化記憶體而言,可對於耐久地自我識別故障記憶體區而提供至少兩個故障狀態;在最高阻抗範圍的一個狀態以及在最低阻抗範圍的另一狀態。在呈現自我識別的記憶故障時,替換記憶格可用以轉移或分配資料。記憶體控制器及記憶體模組(單獨或組合)可管理替換記憶格的使用,且若新發現的故障記憶格還不是在故障狀態時,促進驅動該故障記憶格至故障狀態。

Description

自我識別記憶體錯誤
本發明係關於自我識別記憶體錯誤。
產生「卡住(stuck-at)」位元的記憶體磨損、永久錯誤以及來自不適當翻轉狀之位元的暫態錯誤可能殃及記憶體裝置。錯誤偵測及錯誤更正方案可於各種層級併入計算系統中以將記憶體裝置上的軟體及資料隔離而免於經歷在實體記憶體處發生的軟性及硬性錯誤。軟性錯誤指的是可更正的錯誤,例如可藉由重新寫入資料來更正的那些錯誤。硬性錯誤指的是永久錯誤,例如肇因於實體缺陷或其他異常的那些錯誤,該等實體缺陷及其他異常以可重覆的方式損毀位元。有時當記憶體區塊有多個軟性錯誤時,記憶體區塊可被視為具有硬性錯誤。
對於某些磨損的記憶體而言,一般是在寫入操作期間偵測硬性錯誤(通常是透過寫入後讀取(假設是非破壞性資料)來偵測)。因為知道硬性錯誤發生的位置是有用的,用於錯誤更正的某些解決方案涉及記錄關於另一記憶體位置中之故障位置的資訊。然而,若沒有在寫入操作期間記錄關 於故障位置的資訊或者記憶體錯誤發生在儲存關於錯誤位置之資訊的位置,則此資訊丟失。因此,在後續的讀取或寫入操作期間,故障記憶格可能不被識別。
係描述具有耐久性自我識別故障的記憶體及用於轉繞(steer around)自我識別為具有故障的記憶格的記憶體記憶格替換技術。
記憶體記憶格可指示記憶體是故障的,且可能已被分配至故障記憶體的資訊可使用替換編碼技術來分配至記憶體中的另一個那樣大小的區域。可實現單一記憶格的故障識別及替換。
一旦記憶體記憶格係自我識別為包含故障,可在不同層級的精細度實現更正性的方法。當記憶體記憶格變得自我識別為是故障記憶格時,替換記憶格的區塊可取用於儲存資料。在某些案例中,可替換記憶格叢集;或一次一個記憶格地替換故障記憶格。替換區塊中的記憶格數量可能變化。在某些案例中,替換區塊的階層系統是可取得的。
係提供此發明內容以使用簡化形式來介紹一系列的概念,該等概念係在實施方式中於以下進一步描述。此發明內容係不意欲識別所申請之標的之關鍵特徵或必要特徵,亦不意欲用以限制所申請之標的之範圍。
100‧‧‧步驟
102‧‧‧步驟
104‧‧‧步驟
106‧‧‧步驟
108‧‧‧步驟
110‧‧‧步驟
112‧‧‧步驟
114‧‧‧步驟
116‧‧‧步驟
200‧‧‧步驟
202‧‧‧步驟
204‧‧‧步驟
206‧‧‧步驟
208‧‧‧步驟
210‧‧‧步驟
310‧‧‧替換記憶格
320‧‧‧記憶體區塊
322‧‧‧記憶體子區塊
324‧‧‧記憶體子區塊
330‧‧‧記憶體
340‧‧‧備用記憶格
350‧‧‧備用記憶格
360‧‧‧備用記憶格
370‧‧‧替換記憶格
380‧‧‧替換記憶格
392‧‧‧替換記憶格
394‧‧‧替換記憶格
400‧‧‧記憶體區塊
401‧‧‧記憶格
402‧‧‧偏移步驟
403‧‧‧偏移步驟
404‧‧‧記憶格
405‧‧‧偏移步驟
406‧‧‧偏移步驟
407‧‧‧偏移步驟
408‧‧‧記憶格
409‧‧‧偏移步驟
410‧‧‧轉繞步驟
411‧‧‧轉繞步驟
412‧‧‧偏移步驟
413‧‧‧偏移步驟
414‧‧‧偏移步驟
415‧‧‧偏移步驟
416‧‧‧偏移步驟
500‧‧‧記憶體區塊
501‧‧‧記憶格
502‧‧‧重新安置步驟
503‧‧‧記憶格
504‧‧‧重新安置步驟
505‧‧‧記憶格
506‧‧‧替換記憶格
507‧‧‧移動步驟
508‧‧‧移動步驟
509‧‧‧移動步驟
510‧‧‧移動步驟
600‧‧‧記憶體裝置
610‧‧‧記憶體控制器
700‧‧‧記憶體裝置
710‧‧‧記憶體記憶格陣列
720‧‧‧行解碼器
730‧‧‧列解碼器
740‧‧‧讀取/寫入單元
742‧‧‧編程電路
744‧‧‧驗證電路
746‧‧‧替換記憶格邏輯(RC功能)
750‧‧‧記憶體記憶格
800‧‧‧512記憶格區塊
810‧‧‧64個備用記憶格
820‧‧‧「無關(don't care)」
830‧‧‧故障記憶格區塊
840‧‧‧備用記憶格
900‧‧‧計算系統
902‧‧‧處理器
903‧‧‧存儲系統
905‧‧‧軟體
910‧‧‧記憶體
920‧‧‧應用程式
925‧‧‧作業系統
935‧‧‧網路介面
940‧‧‧輸入/輸出控制器
圖1依據一實施來繪示寫入處理。
圖2依據一實施來繪示讀取處理。
圖3A-3E繪示示例替換記憶格配置。
圖4A-4D繪示用於寫入至具有一或更多個故障記憶格之一位置的一個技術。
圖5A-5D繪示用於寫入至具有一或更多個故障記憶格之一位置的另一技術。
圖6係依據一示例實施之記憶體系統的方塊圖。
圖7係依據一示例實施之記憶體裝置的方塊圖。
圖8繪示處理故障記憶格區域的示例控制器。
圖9係方塊圖,繪示計算系統的元件,具有耐久性自我識別故障之記憶體的某些實施可併入該計算系統中。
係描述具有耐久性自我識別故障及記憶體記憶格(cell)替換技術的記憶體,該等技術係用於各處掌管自我識別為具有故障的記憶格。
耐久性自我識別故障指的是一種記憶體單元(例如記憶格)的實體屬性,會在檢測記憶體單元時,指示記憶體單元是故障的。故障可為「永久」的故障,例如描述於先前技術中的故障。自我識別的實體屬性的耐久性指的是指示故障狀態以當讀取或存取時保存在那狀態的能力。凡狀態可能偏移至適當的範圍外且係執行刷新(或驅動至特定值)以維持該狀態,狀態可被認為是耐久的。此外,若執行某些重新寫入的步驟以維持狀態,則該狀態可被認為是耐久的。因此耐久性係針對當為了讀取、寫入或執行某些其他處理而存取記憶體單元時,記憶體單元自我識別為是故障記憶體單元的 期望。
實體屬性的自我識別的本性指的是使用可區分的指示符,該指示符用於在有效記憶體單元及無效之間區隔可區分的指示符。可區分的指示符例如可為在對於有效狀態所定義之值(阻抗或電荷)之外的狀態,記憶體單元可被驅動或破壞至該狀態中。在某些案例中,自我識別狀態涉及允許記憶體裝置保持在有效狀態(例如在記憶體單元的正常操作期間代表0或1的那些狀態)外邊界以上或以下的值。在某些案例中,自我識別狀態涉及將記憶體裝置驅動至有效狀態外邊界以上或以下的值。
指示故障狀態的值可取決於實施而由耦合至記憶體記憶格的記憶體模組、記憶體控制器或某些其他元件來施加。
記憶體記憶格指的是記憶體的可定址單元且包括經配置以將資訊(通常是以電荷(例如DRAM、快閃記憶體)或阻抗(例如憶阻器、PRAM)的形式)儲存為狀態的結構。係在編程及/或感應電路系統的控制下將資訊寫入記憶體記憶格及自記憶體記憶格讀取資訊,該記憶體記憶格係在耦合至記憶體裝置的記憶體控制器的引導下操作或在將記憶體記憶格包括為記憶體記憶格陣列之部分的個別晶片的引導下操作。記憶體模組(或個別晶片)及記憶體控制器可組合於記憶體系統中且可提供於相同的晶片或電路板上。在某些案例中,記憶體控制器的態樣可由計算裝置的處理器來處理,記憶體系統係在該計算系統中形成一部分。
最小化肇因於非可操作的或故障的記憶格之資料錯 誤的一個方法是,避免將資料寫進該記憶格。凡記憶格可自我識別該記憶格包含故障,就促進了這個。故障記憶格的迴避可藉由廢棄在其中探測到故障記憶體記憶格的記憶體叢集或區塊來實現,或藉由在每記憶格(per-cell)的基礎上迴避故障記憶體記憶格來實現。記憶體叢集指的是晶片上位於近區中的一群記憶體記憶格。在某些案例中,故障記憶格的自我識別可由叢集或區塊來施加或實現(以便當偵測到錯誤時,該叢集或區塊位在一起或落在一起)。替換記憶格可用以儲存要用於故障的記憶格(或記憶格區塊)的資料。
某些實施適合用於處理具有卡住故障(stuck-at-fault)(在卡住故障處,記憶格的邏輯值保持不變(例如對於單級記憶格保持在0或1不變))以及其他非暫態故障的記憶體記憶格。記憶體記憶格它們本身的實體屬性係用以記錄(也就是編碼)該記憶格是不可用的之資訊。
凡多個狀態可用於記憶體,可使用故障的自我識別。多個狀態包括有效的狀態及指示故障模式的至少一個狀態,該故障模式是通過斷電器、保險絲或其他結構性或機械性改變所達成的。在某些案例中,可能有至少三個可用的值範圍;且單一狀態係經保留以標誌損壞或要不就標誌故障狀態。在某些案例中,可能有至少四個可用的值範圍,其中不常被編碼的兩個狀態係經保留以指示故障。依據各種實施,當發現了不可寫入的記憶格位置時,可允許該記憶格保持在指示故障的狀態或將該記憶格驅動至指示故障的狀態。可使用正常的編碼(例如指示0或1)來寫入至其餘的記憶格。
記憶格可儲存單一位元或多個位元。因此資料單元的尺寸取決於用於記憶格的特定科技(例如單級記憶格儲存單一位元而多級記憶格儲存多於一個位元)。
藉由編碼對於記憶體記憶格是可用的最高及/或最低值,基於過去所發現之錯誤的關於記憶格之可寫入性的資訊是可取得的。確實,是可能在讀取操作時識別哪個記憶體記憶格具有卡住的位置,而不是僅在寫入操作之後立刻識別哪個記憶體記憶格具有卡住的位置。
如本文中所述之自我識別記憶體記憶格係適合用於在寫入時於其中實現讀取、寫入、驗證處理的記憶體。特別是,作為寫入驗證處理的一部分,被寫入的記憶格可被讀取以驗證,該等記憶格讓合適的值寫入至它們。
當寫入至具有耐久性自我識別故障的記憶體時,可使用寫入驗證處理。因此,在寫入處理期間,可驗證資料是否已經被正確地寫入至位置。可在記憶格被認為故障之前施加多個寫入驗證處理。若在被寫入資料之位置處的記憶格不具有正確的值,那記憶格可被自我識別為故障且用於那記憶格(或記憶格區域,取決於精細度)的資料可被寫入至另一記憶格。
圖1繪示依據實施的寫入處理。參照圖1,寫入處理(100)可包括讀取(102)由程式所接收之被定址的記憶體位置。當讀取(102)在記憶體位置處之記憶格的值時,故障記憶格可自我識別。當記憶體區塊中有故障記憶格時,經更新的資訊可依據記憶格替換功能(例如與替換記憶格及控 制其使用者相關聯之管理功能)而被寫入(104)至記憶格。在寫入至記憶格(104)之後,係驗證值(106)以決定記憶格中的該等值是否為有效的且匹配所寫入的資訊。若沒有具有硬性錯誤(或其他故障狀態)的記憶格(108),則寫入被確認(110)。因為寫入錯誤可能是暫態的,遞迴處理可為驗證處理的部分,在該遞迴處理處,可在記憶格被認為具有硬性錯誤之前嘗試多次寫入。
另一方面,回應於決定記憶格值不匹配寫入請求的驗證處理(也就是驗證處理指示記憶格具有硬性錯誤)(108),可作出關於用於記憶格的值是否在故障狀態之範圍內的決定(112)。在某些實施中,可為了決定記憶格是故障的而藉由驗證處理來實現試驗性寫入的遞迴處理。在一個這樣的實施中,可在具有超出閥值之不正確結果的若干數量的試驗性寫入之後,將記憶格認為是故障的。一旦記憶格被認為是故障的且若該記憶格不在故障狀態範圍內(112),則該記憶格可被驅動至故障狀態(114)。例如,當將1寫入至記憶格時,記憶格中的值可能在指示0的範圍內或略在指示0的範圍之上(且不在用以指示1狀態的範圍內)。在此案例中(例如卡在0),記憶格可被驅動至在有效的0的狀態之下之範圍中的故障狀態(114)。若記憶格在故障狀態處(112),可使用替換記憶格來更新寫入(116)。
圖2繪示依據實施的讀取處理。參照圖2,讀取處理(200)可在接收用以讀取的記憶體位址位置時開始(202)。讀取處理(200)可實施為讀取寫入驗證(read-write-verify) 處理的部分;或讀取處理(200)可執行為直接讀取。在位址處的記憶格被讀取(204)且該等記憶格的值被檢驗。若記憶格的值是在正常範圍內(206),該值被保持(208),指示那記憶格的狀態。否則,依據記憶體區塊的記憶格替換功能,可自區塊中的替換記憶格或某些其他記憶格擷取值,且可能記錄該等值(210)。
作為示例,對於讀取寫入驗證處理,可能為了與那些要被寫入的值比較當前所儲存之資料的值,而可選地初始地讀取記憶格中的資料。這樣的步驟可用以降低位元的冗餘寫入。亦可以可選地對於備用記憶格實現讀取步驟以在試圖寫入備用記憶格之前,決定是否有任何的備用記憶格是故障的。在某些案例中,讀取可經執行以皆決定是否可採取冗餘上的降低及是否有故障的替換記憶格。當為了這些理由而執行讀取時,並不需要呼叫記憶格替換功能,因為在這個時候並不需要重組資料。相反地,係自替換記憶格獲得資料以支援寫入進替換記憶格的後續步驟(且促進更快的寫入處理)。
作為另一示例,對於讀取處理,記憶體區塊之記憶格及替換記憶格中的資料係以原始儲存的序列來回傳。當處理由記憶體控制器所實現時,依據記憶格替換功能,記憶體控制器可重新排序及/或重組儲存於替換記憶格中的資料。因此,當資料被提供至請求讀取的應用程式或其他程式模組時,可以合適的形式來提供資料而無論資料是如何被儲存的。
依據某些實施的記憶體裝置配置涉及增加至記憶體區塊的額外的備用記憶格;當區塊中之原始記憶格中之一者 卡住了(例如,肇因於寫入磨損或某些其他永久性或耐久性的故障),錯誤在後續的讀取時是可偵測的;且備用記憶格係用以替換經磨損的記憶格而不需要定址該經磨損的記憶格。在某些案中,旋轉式平均抹除(rotating wear leveling)係用以分散記憶體區塊中的記憶格磨損。
可使用大量的技術來完成替換記憶格的管理。實施替換記憶格的某些非限制性示例係呈現於下且繪示於圖3A-3E中。各替換記憶格配置可包括控制替換記憶格區塊的使用的相關管理功能。
在一個實施例(例如圖3A中所圖示的)中,係在實體記憶體330中鄰接各記憶體區塊320地提供備用記憶格(替換記憶格(RC)310)。例如,替換記憶格310可安置於連續自記憶體區塊320的記憶格中。當記憶體區塊320中之記憶格被磨損或故障時,替換功能係用以將記憶體區塊320中所儲存的資訊分配於具有替換記憶格310的有效記憶格中,該等替換記憶格310係用以對於記憶體區塊320維護相同數量的位元。
在另一實施中,備用記憶格340係提供為記憶體330區域的部分,該部分係針對備用記憶格而設置在旁。在某些實施中,係對於各記憶體區塊分配備用記憶格340的某些子集。在某些實施中,針對備用記憶格340而設置在旁的區域可由多個記憶體區塊所共享且依照需要來分配。
例如,記憶體區塊320可相關於替換記憶格340庫,該替換記憶格340係為了增加的靈活性而與大量的區塊相關 聯。可依據替換功能來使用替換記憶格。替換功能可為映射功能。可包括邏輯以執行檢查以決定新的記憶格位於何處。在多種實施中,可使用硬體或軟體來實施邏輯及/或映射步驟。
亦可使用方法的階層系統。例如,第一數量的替換記憶格可為本地的。接著,一旦本地記憶格在工作(被使用),可使用不同的映射步驟以向替換記憶格分配資料。圖3C及3D繪示階層式方法的兩個示例。
在一個實施(例如圖3C中所圖示的)中,係鄰接記憶體區塊320地提供某些備用記憶格350而額外的備用記憶格360則安置在針對備用記憶格而設置在旁的區域處。在某些案例中,可取用備用記憶格360的設置在旁的區域以用於在多個記憶體區塊間共享。
在另一實施(例如圖3D中所圖示的)中,類似於關於圖3A所描述的那樣,係鄰接各記憶體區塊地提供用於記憶體區塊的備用記憶格。然而,可使用二或更多個用於對記憶體區塊分配資訊的替換功能(例如,用於若干數量之替換記憶格370的第一替換功能以及用於其餘替換記憶格380的第二替換功能,其中係鄰接記憶體區塊320地連續分配該等若干數量之替換記憶格370),而不是單一的替換功能。作為一個示例,第一替換功能可為偏移功能,同時第二替換功能可執行故障記憶格替換。
另一實施係圖示於圖3E中。在圖3E中所繪示的實施中,替換記憶格係分散於記憶體區塊本身中。例如,記憶體區塊可被分割成記憶體子區塊322324:且替換記憶格 392394可分配於記憶體子區塊322324之間(及之外)。子區塊的數量及各子區塊的尺寸可為任何對於特定的應用或科技而言合適的數量及尺寸。
雖然為了簡化而圖示兩個記憶體子區塊及兩個替換記憶格子區塊,實施例係不限於此。例如,可在兩個記憶體子區塊之間使用一個替換記憶格區塊,或可將三個替換記憶體子區塊分配在兩側及兩個記憶體子區塊之間。在某些案例中,替換記憶格子區塊可分散於記憶體區塊內的更多位置中,導致記憶體區塊中的3或更多個記憶體子區塊。在某些案例中,係以至少有兩個不同尺寸的子區塊的方式來分割記憶體區塊,同時在其他案例中,子區塊為相同尺寸。此外,替換記憶格子區塊可分散於相等尺寸的子區塊中,或使用至少兩種子區塊的尺寸。
對於涉及偏移記憶格替換功能的實施而言,將替換記憶格區塊分散於記憶體區塊內可降低需要被偏移之記憶格的數量。例如,若記憶體區塊為512位元而替換記憶格為64位元,可分配具有用於左偏移抑或右偏移之8位元替換記憶格的8個64位元的記憶體子區塊。仍可在全512位元的記憶體區塊及64位元的替換記憶格上實現偏移步驟。例如,若記憶體子區塊中之一者有多於8位元自我識別為是故障的,偏移步驟可發生至鄰接的子記憶體區塊中,導致最多偏移63位元而不是511位元。
圖4A-4D繪示用於寫入至具有一或更多個故障記憶格之位置的一個技術。對於圖4A-4D中所繪示的替換管理功 能而言,係藉由向右偏移來將資料單元轉繞(steer around)故障記憶格。例如,參照圖4A,在驗證處理期間,資料單元(例如512位元之記憶體區塊400的位元200)可能具有指示儲存該資料單元之記憶格401是故障的之值。若記憶格401還不在用於自我識別為故障記憶格的值處,可將記憶格401驅動至用於自我識別為故障記憶格之狀態之範圍中的值。作為後續的或同步的步驟,可藉由自記憶格401向右偏移(402)資料來實現替換功能,導致記憶格401右邊的各資料單元被向右偏移且最後的資料單元(對於單級記憶格實施而言就是位元0)被偏移(403)進第一替換記憶格R1。
在讀取操作期間,因為記憶格401自我識別為故障記憶格,係自記憶格401右邊的記憶格獲得資料單元(例如位元200或包括位元200的多個位元)(其中係自右邊直至第一替換記憶格R1來讀取各連續資料單元)。
圖4B圖示後續的驗證處理,在該驗證處理中,另一記憶格壞掉了。如圖4B中所圖示的,記憶體區塊400的位元100可能具有指示記憶格404是故障的之值。若記憶格404還不在用於自我識別為故障記憶格的值處,可將記憶格404驅動至用於自我識別為故障記憶格之狀態的範圍中的值。隨後地或同步地,作為替換功能的部分,來自記憶格404的資料係向右偏移(405),導致記憶格404右邊的各位元被向右偏移。因為記憶體區塊400中的另一記憶格已經壞掉了,記憶體區塊400的最後資料單元係偏移(406)進第一替換記憶格R1且包含位元0的資料單元係自第一替換記憶格R1偏移 (407)至第二替換記憶格R2。
因為記憶格401404自我識別為故障記憶格,係自故障記憶格周圍的記憶格讀取資料單元(及將資料單元寫入至故障記憶格周圍的記憶格)。
圖4C圖示後續的驗證處理,在該驗證處理中,另一記憶格壞掉了。如圖4C中所圖示的,資料單元(例如位元500或包括記憶體區塊400之位元500的多個位元)可能具有指示記憶格408是故障的之值。若記憶格408還不在用於自我識別為故障記憶格的值處,可將記憶格408驅動至用於自我識別為故障記憶格之狀態之範圍中的值。接著,作為替換功能的部分,來自記憶格408的資料係向右偏移(409),導致記憶格408右邊的各位元被向右偏移。
因為在記憶體區塊400中兩個記憶格(記憶格401及記憶格404)自我識別為故障記憶格,向右偏移的資料單元轉繞所自我識別的壞記憶格。例如,一個資料單元(肇因於記憶格408)轉繞(410)記憶格401且兩個資料單元(肇因於來自記憶格408及記憶格401的偏移步驟)轉繞(411)記憶格404。這個向右的偏移又將記憶格區塊400的另一資料單元偏移(412)進第一替換記憶格R1,先前所偏移的資料單元係自第一替換記憶格R1偏移(413)至第二替換記憶格R2,且包含位元0的資料單元係自第二替換記憶格R2偏移(414)至第三替換單元R3。
因為記憶格408401404自我識別為故障記憶格,係自故障記憶格周圍的記憶格讀取資料單元(且將資料 單元寫入至故障記憶格周圍的記憶格),其中最低有效資料單元(例如對於單級記憶格配置就是位元0、位元1及位元2)係偏移至三個替換單元R1、R2、R3。
因此,若故障記憶格408401404為儲存位元500250100的單級記憶格,則位元0-2係偏移進替換記憶格位置R1、R2、R3。
圖4D繪示替換記憶格故障的情境。依據一個實施,資料單元可向右偏移以轉繞替換記憶格所自我識別的壞記憶格。例如,若替換記憶格位置R2故障,位元0可偏移(415)至替換記憶格位置R4且位元1可偏移(416)至替換記憶格位置R3。作為用於多級記憶格的示例,位元0及1可偏移至替換記憶格位置R4且位元2及3可偏移至替換記憶格位置R3。記憶體區塊中的後續故障將資料單元偏移進替換記憶格,同時轉繞所自我識別的壞記憶格R2。
圖5A-5D繪示用於寫入至具有一或更多個故障記憶格之位置的另一技術。對於圖5A-5D中所繪示的替換管理功能而言,係依據故障資料重新安置功能來將故障資料重新安置到替換記憶格。
參照至圖5A,在驗證處理期間,資料單元(例如512位元之記憶體區塊500之包含位元200的資料單元)可能具有指示儲存位元的記憶格501是故障的之值。若記憶格501還不在用於自我識別為故障記憶格的值處,可將記憶格501驅動至用於自我識別為故障記憶格之狀態之範圍中的值。接著,作為替換功能的部分,來自記憶格501資料係重新安置 (502)至第一替換記憶格R1。
基於此示例實施,在讀取操作期間,因為記憶格501自我識別為故障記憶格且為從左到右所遭遇到的第一個經自我識別的記憶格,係自第一替換記憶格R1獲得包含位元200的資料單元。係自位於記憶格501下一個的記憶格讀取位元199(或鄰接資料單元的位元)。
接著,參照圖5B,當下一個記憶格503壞掉時,因為記憶格503是從左到右所遭遇的第二個經自我識別的記憶格,來自記憶格503的資料係重新安置(504)至第二替換記憶格R2。
依據此實施,替換功能對於替換記憶格維持位置順序(左到右的優先順序)。左到右的優先順序僅為可使用的一個優先順序。可使用其他優先順序/排序,例如右到左的優先順序。又在另一實施中,藉著包括指標,排序可為連續的或按照特定方式。
當故障的歷時順序不同於位置順序時,替換記憶格係經重新寫入以維持位置順序。例如,如圖5C中所圖示的,若位於已經壞了的其他記憶格左邊的記憶格505壞了,記憶格505中的資料係重新安置至第一替換記憶格506且替換記憶格中來自記憶格501及記憶格503的資料係重新排序,以便第一替換記憶格506中的資料可移動(507)至第二替換記憶格R2且第二替換記憶格R2中的資料可移動(508)至第三替換記憶格R3。
因此,若故障記憶格505501503為分別儲存位 元500、250及100的單級記憶格,對於這些記憶格所指定的值係代替儲存於替換記憶格R1、R2、R3中。
圖5D繪示替換記憶格故障的情境。依據一個實施且類似於關於圖4D所描述的實施,資料單元可經重新寫入以轉繞替換記憶格所自我識別的壞記憶格。例如,若替換記憶格位置R2故障了,位元0可移動(509)至替換記憶格位置R4且位元1可移動(510)至替換記憶格位置R3。作為用於多級記憶格的示例,位元0及1可偏移至替換記憶格位置R4且位元2及3可偏移至替換記憶格位置R3。記憶體區塊中的後續故障將位元偏移進替換記憶格,同時轉繞所自我識別的壞記憶格R2。
在用於定址替換記憶格故障的另一實施中,記憶格位置R4可用以替換R2,因為R2是在經組合的記憶體區塊及替換記憶格群中最後故障的記憶格。因此,R1替換故障記憶格505,R2替換501但是是故障的,R3替換503,而R4替換R2,因此R4替換了501
兩個預先定義的映射係繪示於圖4A-4D及5A-5D中。然而,在某些實施中,可使用編程性的重新映射。例如,可使用可編程控制器以藉由雜湊函數(例如基於位址的雜湊函數)來映射替換資料單元。
對於將偏移步驟利用為替換功能之部分的實施而言,整個記憶體區塊可向右偏移。這可至少部分地藉由記憶體裝置上的邏輯來完成。例如,可使用多工器(MUX)以向左或向右推移資料(就布局而言在記憶體中將資料保持是連 續的)。
對於利用更直接的替換的實施而言(例如其中各替換記憶格替換一故障記憶格),可包括由左至右的先後順序以促進如何將替換記憶格分配回至故障位置。
在另一實施例中,本來要寫入至壞記憶格的值係如所遭遇到地寫入至替換記憶格。在遭遇壞記憶格時,替換記憶格可由有效性來排序(例如由最高有效位元至最低有效位元)(當新的記憶格故障時,替換記憶格可重新寫入以維持相對應的位置順序--無論歷時的故障)。
為了降低偏移量,可使用混合方法。例如,可使用偏移及替換的組合。在一個這樣的案例中,若干初始數量的替換記憶格可經配置以賦能偏移且可對於替換方法配置剩餘數量的替換記憶格。如圖3C及3D中所示的記憶體分配可適合用於混合方法。
偏移量中的降低亦可通過如圖3E中所示的記憶體分配來實現,其中記憶體區塊可分割成較小群的記憶格,該等記憶格具有它們自己的替換記憶格。接著,當在子區塊中之一者內記憶格變得故障時,可在該群組內維持偏移步驟。依據包括偏移及替換的任何合適的記憶格替換功能,可對於故障記憶格的溢出使用其他子區塊的替換記憶格(且甚至是記憶體區塊之其他子區塊中的記憶格)。因此,雖一開始可能為了與一記憶格子區塊使用而分配替換記憶格,多個子區塊可依所需共享該等替換記憶格,直到對於整個記憶體區塊沒有可用的替換記憶格。
相對於用於卡住位置的傳統錯誤更正(其中壞記憶格的識別僅在寫入操作之後立刻是可用的),某些實施賦能在讀取操作時快速且簡單地識別哪個記憶體記憶格具有卡住的位置。並且,因為記憶格可以如本文中所述的方式自我識別為是故障的,不需要額外的存儲來持續追踨故障記憶格,相較於傳統錯誤更正技術降低了存儲負載。
在某些實施中,記憶體為相變記憶體(PCM);然而,其他記憶體(例如傳導橋接記憶體(例如可編程金屬化記憶格(PMC))且甚至是DRAM(例如雙倍資料率同步動態隨機存取記憶體(DDR SDRAM)))可經配置以如本文中所述地自我識別故障及利用替換記憶體記憶格。此外,實施係適用於單級記憶格(包含兩個有效狀態(例如0或1)的記憶格)及多級記憶格(例如係經編程以包含多於兩個狀態(例如00、01、10、11)的記憶格)。
在PCM中,記憶格可能由於熱應力而損壞。例如,PCM的用以控制PCM記憶格之相變材料之阻抗的加熱器構件(一般為電流所施加至的傳導性材料)可能變得鬆脫。沒有了加熱器構件,沒有電流能夠被施加且記憶格變得卡在高阻抗值(其可能為用以指示1之值範圍以上的值)。甚至雖然加熱器構件沒有變得鬆說,加熱器構件材料可能退化到難以加熱記憶格以增加其阻抗的程度。在這些案例中,記憶格可能變得卡在指示0之範圍內的低阻抗值。
依據實施,具有這些故障中之任一者的PCM記憶體記憶格可耐久地自我識別該記憶格是故障的。自我識別可藉 由高阻抗值級(經定義要在一般用以指示1的範圍以上)來完成,或藉由將記憶格設定至最低阻抗值(在用以指示0之範圍以下之範圍中的值)來完成。因此,這兩個狀態中之任一者可在讀取操作期間辨識為故障(當自記憶體讀取資料時作為讀取處理的部分,抑或是作為用以將資料寫入至記憶體之讀取寫入驗證處理的部分)。
讓「卡住」資訊對於讀取是可用的所藉由的機制係基於記憶格故障模式。對於PCM而言,當記憶格因為脫層(也就是加熱器自記憶格分離)而卡住時,阻抗係遠高於非晶狀態中的阻抗,所以這在讀取時是可輕鬆偵測到的。用於卡在低狀態的故障模式可發生,因為記憶格電路系統無法供應夠大的脈衝以使材料是非晶態的。然而,仍可能供應幾乎完全結晶化記憶格的低波幅(及長時間)脈衝。這幾乎晶態的狀態係用以表示此記憶格已經故障;故在讀取時偵測到記憶格故障。
PCM記憶格可藉由是在代表壞記憶格的值處來自我識別為是壞的。可使用兩個值範圍,以便若遭遇兩個值範圍中之任一者,則了解記憶格是壞的。對於PCM而言,故障模式是探針/加熱器脫層。在此案例中,記憶格阻抗值是「無限大的」。另一故障模式是探針退化。在此案例中,探針不能提供足夠的電流以將記憶格改變成非晶狀態。雖然記憶格無法改變至非晶狀態,記憶格可被讀取且設定成晶態狀態。應了解的是,雖描述兩個故障模式,其他狀態及相關的故障模式是可能的。
此外,自我識別的磨損記憶格可用作用於多級記憶格之經整合的偏移及卡住之更正的機制的部分。
對於DRAM而言,故障位元可藉由雷射處理或藉由燒斷保險絲來破壞(這可強迫位元卡在特定值),而不是編碼故障位元的位置。在某些案例中,取決於保險絲生產設計,保險絲可用以給予整個區塊、部分區塊或甚至單一記憶格。
在一個實施中,記憶體裝置包括有具差分寫入性能(differential write capability)之用於更正之64個記憶格的512記憶格PCM區塊。差分寫入性能指的是一種寫入處理,其中區塊被讀取且只有是不同的記憶格才被寫入。在此寫入處理的讀取部分期間,可能基於可從自我識別之故障記憶格取得的額外狀態來知道哪個記憶格是壞的。因此僅寫入至好的記憶格,且對於偏移替換記憶格邏輯實施而言,資料係向右偏移以映射於卡住記憶格的周圍。這對於更正提供了64個記憶格,是高於使用指標之某些當前技術的規模等級。各備用記憶格可用於替換。
對於解碼而言,可使用保留處理。當區塊被讀取時,區塊係藉由將資料偏移回右邊以在暫存器中建立512位元的區塊來構成。
為了在記憶體裝置層級(例如在PCM模組上)實施偏移替換記憶格(或「位元轉繞」)的方法,可合併576位元(512+64位元)的左/右偏移器以分別促進解碼/編碼。左/右偏移器可提供各位元的獨立控制,使得可偏移所選擇的位元同時其他的位元保持在位。
應理解的是,替換記憶格區塊的尺寸(64個記憶格)僅提供為示例。實施可使用不同數量的備用記憶格。
圖6為依據示例實施之記憶格系統的方塊圖。參照圖6,記憶體系統可包括記憶體裝置(或記憶體模組)600及記憶體控制器610,該記憶體控制器610可控制記憶體裝置的整體輸入/輸出操作。可為了與外部裝置(例如處理器)通訊而包括介面630。記憶體裝置600可如圖7中所繪示地實施。
在圖7中所示的示例中記憶體裝置700(例如相變記憶體裝置)可包括以行及列分配的記憶體記憶格陣列710。行解碼器720及列解碼器730係耦合至讀取/寫入單元740,該讀取/寫入單元740包括編程電路742及驗證電路744以及替換記憶格邏輯(RC功能)746。記憶體記憶格750可通過字線的行及位元線的列而為可選擇的。
位元轉繞步驟可實施於記憶體控制器或記憶體模組處。為了在記憶體控制器處實施方法,係為了編碼資料而決定錯誤的位置。在讀取時,不需要額外的資料來執行左偏移。
許多計算系統合併某些形式的錯誤檢查及/或更正。通用的硬體解決方案是錯誤更正碼記憶體,該錯誤更正碼記憶體包括額外的記憶體位元及板上記憶體控制器,可藉由檢查記憶體字稱性(parity)來更正分離的軟性錯誤且接著更正單一位元錯誤以輸出更正的資料。在某些案例中,可向以上所述的64個位元將8個位元增加為替換記憶格的部分,以執行單一錯誤更正、雙錯誤偵測(SECDED)。
更詳細地說,在某些案例中,記憶體控制器可包括 可取用於DDR錯誤更正的特徵,例如用於錯誤更正的分離通道。正常錯誤通道可用以更正軟性錯誤且用於錯誤通道的存儲(通常用於軟性錯誤)可用以更正永久的或耐久的錯誤。這些技術可更正更多錯誤且對於記憶格故障提供最佳的編碼。
在記憶體控制器中,一旦故障記憶格被知道,錯誤通道可用以執行偏移步驟或替換記憶格方法。因為當自控制器傳遞至模組時存在引入軟性錯誤的風險,可包括某些軟性錯誤更正技術。可使用自記憶體所接收回之故障記憶格向量的形式來提供故障位元。向量指示故障位元位於何處。接著,如圖8中所繪示的,資料係透過編碼步驟寫入進具有512記憶格區塊800及64個備用記憶格810的記憶體(例如跳過故障記憶格(例如藉由偏移步驟)或替換成相對應數量的備用記憶格840)且使得「無關(don't care)」820是在故障記憶格區塊830的三個位置。在此實施中,因為軟性錯誤更正通道可能用以將資料寫入進記憶體,可能沒有可取得的位元(或有較少的位元)來執行軟性錯誤編碼。
若這是實施於PCM模組中,記憶體通道更正部分(例如64位元/記憶格)可用以在記憶體控制器及PCM模組間跨通道針對軟性錯誤來保護。
在某些案例中,寫入至替換記憶格的控制及自替換記憶格讀取的控制可使得某些元件在記憶體模組處實現。在一個這樣的實施中,可自控制器接收來自錯誤更正的正常通道(例如用於錯誤更正之每字元位元(bit per byte))。例如, 控制器可對於軟性錯誤韌性執行ECC。接著,記憶體模組可取得關於壞的位元在何處的資訊、自控制器放棄ECC位元及執行偏移替換或映射功能。例如,512位元的區塊可被接收且本來要被寫入任何壞的記憶格的值可被映射至替換記憶格。
也就是說,依據實施,相對應至替換記憶格(要不就是備用記憶格)之記憶體匯流排中的位元可對於軟性錯誤(例如肇因於資料的傳遞/暫態錯誤)而用於ECC。接著,在控制器處,可放棄軟性錯誤更正且執行偏移/映射。
圖9是方塊圖,繪示計算系統的元件,具有耐久性自我識別故障之記憶體的某些實施可併入該計算系統中。應了解的是,本文中所述之系統的態樣係適用於行動及傳統桌上型電腦兩者以及伺服器電腦及其他電腦系統。
參照圖9,計算系統900可包括處理器902及存儲系統903
處理器902可包括自存儲系統903擷取及執行軟體905(包括應用程式(920)及/或作業系統925)的微處理器及其他電路系統。存儲系統903可儲存軟體905以及在這些程式的執行期間所產生的資料。處理器902可實施於單一處理裝置內但亦可分散橫跨併入執行程式指令的多個處理裝置或子系統。處理器902的示例包括一般用途中央處理單元、特定應用處理器及邏輯裝置,以及任何其他類型的處理裝置、組合或其變化。
在某些案例中,處理器902可為(或被包括在以下所列之物中):連同例如為感應器(例如磁力計、周圍光感 測器、近場感應器、加速度計、陀螺儀、全球定位系統感應器、溫度感應器、震動感應器)及/或網路連接性元件(例如包括網路介面935)的一或更多個其他元件的晶片上系統(SoC)。
存儲系統903可包括任何電腦可讀取存儲媒體,該等電腦可讀取存儲媒體可由處理器902讀取且能夠儲存軟體905。存儲系統903可包括以任何方法或科技所實施之依電性及非依電性、可移除式及非可移除式的媒體,且依據各種實施,對於資訊的存儲(例如電腦可讀取指令、資料結構、程式模組或其他資料),存儲系統包括具有耐久性自我識別故障的至少一個記憶體910
存儲媒體的示例包括隨機存取記憶體(包括RAM、DRAM、DDR SDRAM、SRAM);唯讀記憶體(ROM、PROM、EPROM、EEPROM);快閃記憶體(NVRAM);磁性及鐵磁性/鐵電性記憶體(MRAM、FeRAM);電阻性記憶體及憶阻器(電阻性隨機存取記憶體(ReRAM)、PCM、CBRAM);磁碟;光碟;虛擬記憶體及非虛擬記憶體、磁盒、磁帶、磁碟存儲或其他磁式存儲裝置或任何其他合適的存儲媒體。存儲媒體絕不是傳播訊號。
除了存儲媒體以外,在某些實施中,存儲系統903亦可包括通訊媒體,可在該通訊媒體上內部地或外部地通訊軟體905。存儲系統903可實施為單一存儲裝置但亦可橫跨相對於彼此是同位的或分散的多個存儲裝置或子系統來實施。存儲系統903可包括能夠與處理器902通訊的額外構件(例 如控制器)。
軟體905可包括額外的處理、程式或元件。軟體905亦可包括可由處理器902所執行之韌體或某些其他形式的機器可讀取處理指令。
一般而言,當軟體905載入進處理器902且執行時,軟體905可將計算系統900自一般用途計算系統整體轉換成特定用途計算系統。確實,將軟體905編碼於存儲系統903上可轉換存儲系統903的實體結構。在此說明書的不同實施中,實體結構的特定轉換可取決於各種因素。這樣的因素的示例可包括(但不限於)用以實施存儲系統903之存儲媒體的科技以及電腦存儲媒體是否被特性化為主要的或次要的存儲。
例如,若電腦存儲媒體係實施為基於半導體的記憶體,當程式係編碼於半導體記憶體中時,軟體905可轉換半導體記憶體的實體狀態(例如藉由轉換構成半導體記憶體之電晶體、電容或其他離散電路構件的狀態)。對於磁式或光學式媒體,類似的轉換可發生。其他的實體媒體轉換是可能的而不脫離本說明書的範圍,其中僅為促進此討論而提供前述的示例。
網路介面935允許計算系統900在網路上與其他計算裝置(包括伺服器計算裝置及客戶端裝置)通訊。網路介面935可包括用以執行傳送及接收無線電頻率通訊之功能的單元以透過通訊營運商或服務供應商來促進系統及「外面世界」間之無線連接性。係在作業系統925的控制下進行向網 路介面935的傳輸及來自網路介面935的傳輸,作業系統925向應用程式920傳播由所網路介面935接收的通訊,反之亦然。
電腦架構亦可包括用於接收及處理來自大量裝置(包括鍵盤、觸控板、觸控螢幕滑鼠、電子觸控筆、筆或麥克風)之輸入的輸入/輸出控制器940。類似地,輸入/輸出控制器940可向顯示螢幕、印表機、喇叭或其他類型的輸出裝置提供輸出。
在某些實施例中,顯示器及鍵板係經結合。在某些實施例中,可結合包括音訊介面及視訊介面的二或更多個輸入/輸出(I/O)元件。可同I/O元件包括離散處理器,或者處理功能性可內建至處理器902
應了解的是,實施關於圖9所描述之系統之任何行動的或桌上型計算裝置相對於所描述的可具有更多的或更少的特徵或功能性,且不限於本文中所述的配置。
於本文中所闡述的某些技術可使用由一或更多個計算裝置所執行之電腦可讀取指令(例如程式模組)的一般情境來描述。一般而言,程式模組包括執行特定任務或實施特定抽象資料類型的常式、程式、物件、元件及資料結構。
實施例可實施為電腦處理、計算系統或實施為製造製品(例如電腦程式產品或電腦可讀取媒體。本文中所述的某些方法及處理可實施為代碼及/或資料,該等代碼及/或資料可儲存於一或更多個電腦可讀取媒體上。本發明的某些實施例考慮使用電腦系統形式的機器,在該電腦系統中,當執行 一組指令時,該組指令可造成系統執行以上所討論之方法學中之任何一者或多者。某些電腦程式產品可為一或更多個電腦可讀取存儲媒體,該等電腦可讀取存儲媒體可由電腦系統所讀取且針對執行電腦處理而編碼電腦程式指令。
此外,本文中所述之方法及處理可使用硬體模組來實施。例如,硬體模組可包括(但不限於)特定應用集成電路(ASIC)晶片、現場可程式閘陣列(FPGA)及現在已知的或是之後所發展的其他可編程邏輯裝置。當硬體模組啟動時,硬體模組執行包括於硬體模組內之方法及處理。
說明書中對於「一個實施例」、「一種實施例」、「示例實施例」...等等的任何參照所意指的是,結合實施例所描述之特定特徵、結構或特性係包括於本發明的至少一個實施例中。說明書中各種地方中之這樣句子的出現並不必然全部指相同的實施例。此外,本文中所揭露之任何發明或其發明之實施例的任何構件或限制可同任何的及/或所有其他的構件或限制結合(單獨結合或以任合組合結合)或同本文中所揭露之任何其他發明或其發明之實施例結合,且所有這樣的結合係同本發明之範圍來考慮而無對其之限制。
應了解的是,本文中所述之示例及實施例係僅用於說明的用途,且將對發明領域中具技藝者暗示鑑於該等示例及實施例的各種修改或改變,且鑑於該等示例及實施例的各種修改或改變係要被包括於此申請案的精神及範圍內。

Claims (18)

  1. 一種自我識別錯誤的記憶體裝置,包括:複數個記憶體記憶格(memory cell),該複數個記憶體記憶格係安排為記憶體區塊,各記憶體記憶格包括:至少兩個有效狀態、一第一耐久性故障狀態、及一第二耐久性故障狀態,其中該至少兩個有效狀態具有的值落在一上邊界與一下邊界之內,其中該第一耐久性故障狀態具有的值維持在該至少兩個有效狀態的值以外,使得在正常操作期間對該第一耐久性故障狀態的該值的讀取自我識別為是故障的,及其中在該第二耐久性故障狀態中的記憶格具有的值不同於該第一耐久性故障狀態的該值,但也是維持在該至少兩個有效狀態的值以外,使得對該第一耐久性故障狀態或是對該第二耐久性故障狀態的值的讀取自我識別該記憶體記憶格為故障的。
  2. 如請求項1所述之裝置,更包括:替換記憶體記憶格的一替換記憶格區塊。
  3. 如請求項2所述之裝置,更包括:替換記憶格功能邏輯,係耦合至該等複數個記憶體記憶格的一編程電路。
  4. 如請求項3所述之裝置,其中該替換記憶格功能邏輯係經配置以使用一先後順序來偏移位元,同時轉繞任何自我識別為故障的記憶格。
  5. 如請求項3所述之裝置,其中該替換記憶格功能邏輯係經配置以使用該替換記憶體記憶格來代替自我識別為故障的記憶格來儲存位元。
  6. 如請求項3所述之裝置,其中該替換記憶格區塊包括一第一組替換記憶體記憶格及一第二組替換記憶體記憶格,其中該替換記憶格功能邏輯係經配置以對於以一先後順序來偏移位元同時轉繞自我識別為故障的任何記憶格而使用該第一組替換記憶體記憶格;及使用該第二組替換記憶體記憶格來代替自我識別為故障的記憶格來儲存位元。
  7. 如請求項2所述之裝置,其中各記憶體區塊或各記憶體區塊的子區塊具有一相對應的替換記憶格區塊。
  8. 如請求項2所述之裝置,其中該替換記憶格區塊係由二或更多個記憶體區塊所共享。
  9. 如請求項1所述之裝置,其中該等複數個記憶體記憶格包括具有兩個有效狀態的單級記憶格。
  10. 如請求項1所述之裝置,其中該等複數個記憶體記憶格包括具有至少兩個有效狀態的多級記憶格。
  11. 如請求項1所述之裝置,其中經決定具有一錯誤的記憶體記憶格經驅動至故障狀態,以供該記憶體記憶格在對該記憶體記憶格的後續讀取下即自我識別為是故障的。
  12. 一種記憶體裝置,包括:一記憶體區塊,包括具有一或更多個記憶體記憶格(memory cell)的一區域,其中該一或更多個記憶體記憶格的各記憶體記憶格包含至少兩個有效狀態、一第一耐久性故障狀態、及一第二耐久性故障狀態,其中該至少兩個有效狀態具有的值落在一上邊界與一下邊界之內,其中該第一耐久性故障狀態具有的值維持在該至少兩個有效狀態的值以外,使得在正常操作期間對該第一耐久性故障狀態的該值的讀取自我識別該記憶體記憶格為故障的,及其中在該第二耐久性故障狀態中的記憶格具有的值不同於該第一耐久性故障狀態的該值,但也是維持在該至少兩個有效狀態的值以外,使得對該第一耐久性故障狀態或是對該第二耐久性故障狀態的值的讀取自我識別該記憶體記憶格為故障的;及一第一組替換記憶格,係與該記憶體區塊或該記憶體區塊的一子區塊相關聯,該第一組替換記憶格具有控制該第一組替換記憶格之使用的一第一管理功能。
  13. 如請求項12所述之記憶體裝置,其中該管理功能包括一偏移功能。
  14. 如請求項12所述之記憶體裝置,其中該管理功能包括一故障資料重新安置功能。
  15. 如請求項12所述之記憶體裝置,更包括一第二組替換記憶格,係與該記憶體區塊相關聯且具有控制該第二組替換記憶格之使用的一第二管理功能,該第二管理功能係不同於該第一管理功能。
  16. 如請求項12所述之記憶體裝置,其中具有一或更多個記憶體記憶格的該區域具有單一個記憶體記憶格。
  17. 如請求項12所述之記憶體裝置,包括相變記憶體。
  18. 如請求項12所述之記憶體裝置,其中經決定具有一錯誤的記憶體記憶格經驅動至故障狀態,以供該記憶體記憶格在對該記憶體記憶格的後續讀取下即自我識別為是故障的。
TW103123816A 2013-07-24 2014-07-10 自我識別記憶體錯誤 TWI652685B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/949,227 US9875810B2 (en) 2013-07-24 2013-07-24 Self-identifying memory errors
US13/949,227 2013-07-24

Publications (2)

Publication Number Publication Date
TW201517043A TW201517043A (zh) 2015-05-01
TWI652685B true TWI652685B (zh) 2019-03-01

Family

ID=51299012

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103123816A TWI652685B (zh) 2013-07-24 2014-07-10 自我識別記憶體錯誤

Country Status (3)

Country Link
US (1) US9875810B2 (zh)
TW (1) TWI652685B (zh)
WO (1) WO2015013153A2 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9870822B2 (en) * 2013-12-18 2018-01-16 Hewlett-Packard Development Company, L.P. Non-volatile memory element with thermal-assisted switching control
CN107250683B (zh) * 2015-02-18 2020-04-07 大金工业株式会社 空调系统
US10108509B2 (en) * 2015-07-16 2018-10-23 Texas Instruments Incorporated Dynamic enabling of redundant memory cells during operating life
US10228990B2 (en) * 2015-11-12 2019-03-12 Sandisk Technologies Llc Variable-term error metrics adjustment
CN105355233B (zh) * 2015-11-23 2018-04-10 清华大学 基于pcm反转纠错算法的高效数据写入方法
US10732856B2 (en) 2016-03-03 2020-08-04 Sandisk Technologies Llc Erase health metric to rank memory portions
US10706177B2 (en) * 2017-02-13 2020-07-07 Hiroshi Watanabe Apparatus and method for chip identification and preventing malicious manipulation of physical addresses by incorporating a physical network with a logical network
US11947828B2 (en) * 2020-08-27 2024-04-02 Taiwan Semiconductor Manufacturing Company, Ltd. Memory device
CN112750486B (zh) * 2021-01-06 2022-09-27 之江实验室 一种阻变存储器的故障测试方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6094385A (en) 1997-05-19 2000-07-25 Xilinx, Inc. Repairable memory cell for a memory cell array
US20020136054A1 (en) 2001-01-11 2002-09-26 Blodgett Greg A. Memory device with multi-level storage cells and apparatuses, systems and methods including same
US6584589B1 (en) 2000-02-04 2003-06-24 Hewlett-Packard Development Company, L.P. Self-testing of magneto-resistive memory arrays
US20060239089A1 (en) 2005-04-15 2006-10-26 Kazuya Kawamoto Non-volatile semiconductor device for use in memory card and memory system
US20080209282A1 (en) 2003-11-11 2008-08-28 Samsung Electronics Co., Ltd. Method of managing a flash memory and the flash memory
US7609083B2 (en) 2007-09-07 2009-10-27 Hitachi, Ltd. Semiconductor integrated circuit device and storage apparatus having the same
US20090268521A1 (en) 2008-04-28 2009-10-29 Koki Ueno Non-volatile semiconductor memory device
US7626874B1 (en) 2007-02-23 2009-12-01 Xilinx, Inc. Method and apparatus for testing a memory device with a redundant self repair feature
US20120106247A1 (en) 2010-10-28 2012-05-03 Samsung Electronics Co., Ltd. Flash memory device including flag cells and method of programming the same

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2922060B2 (ja) * 1992-07-27 1999-07-19 富士通株式会社 半導体記憶装置
KR970001564U (ko) * 1995-06-21 1997-01-21 자동차용 후부차체의 보강구조
KR100314644B1 (ko) 1998-12-28 2001-12-12 박종섭 리페어퓨즈셀의과소거확인회로
US6373758B1 (en) * 2001-02-23 2002-04-16 Hewlett-Packard Company System and method of operating a programmable column fail counter for redundancy allocation
US7127647B1 (en) * 2001-06-29 2006-10-24 Virage Logic Corporation Apparatus, method, and system to allocate redundant components
EP1357559B1 (en) * 2002-04-26 2006-06-14 STMicroelectronics S.r.l. Self-repair method for nonvolatile memory devices using a supersecure architecture, and nonvolatile memory device
US6631086B1 (en) * 2002-07-22 2003-10-07 Advanced Micro Devices, Inc. On-chip repair of defective address of core flash memory cells
US6868022B2 (en) * 2003-03-28 2005-03-15 Matrix Semiconductor, Inc. Redundant memory structure using bad bit pointers
US7203874B2 (en) 2003-05-08 2007-04-10 Micron Technology, Inc. Error detection, documentation, and correction in a flash memory device
US6928377B2 (en) * 2003-09-09 2005-08-09 International Business Machines Corporation Self-test architecture to implement data column redundancy in a RAM
CN101218651B (zh) 2005-03-31 2013-06-12 桑迪士克科技公司 非易失性存储器系统及软编程方法
US7536614B1 (en) * 2006-06-28 2009-05-19 Integrated Device Technology, Inc Built-in-redundancy analysis using RAM
JP4575346B2 (ja) * 2006-11-30 2010-11-04 株式会社東芝 メモリシステム
US20090199057A1 (en) * 2008-01-31 2009-08-06 University Of Kuwait March DSS: Memory Diagnostic Test
KR101535460B1 (ko) * 2008-08-25 2015-07-10 삼성전자주식회사 배드 블록 리맵핑 기능을 갖는 불휘발성 메모리 장치 및 그배드 블록 리맵핑 방법
US7894250B2 (en) 2009-03-17 2011-02-22 Seagate Technology Llc Stuck-at defect condition repair for a non-volatile memory cell
US8358548B2 (en) * 2009-10-19 2013-01-22 Avago Technologies Enterprise IP (Singapore) Pte. Ltd. Methods for efficiently repairing embedded dynamic random-access memory having marginally failing cells
US9037928B2 (en) * 2012-01-01 2015-05-19 Mosys, Inc. Memory device with background built-in self-testing and background built-in self-repair
US8839053B2 (en) 2010-05-27 2014-09-16 Microsoft Corporation Error correcting pointers for non-volatile storage
US8589762B2 (en) 2011-07-05 2013-11-19 International Business Machines Corporation Adaptive multi-bit error correction in endurance limited memories

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6094385A (en) 1997-05-19 2000-07-25 Xilinx, Inc. Repairable memory cell for a memory cell array
US6584589B1 (en) 2000-02-04 2003-06-24 Hewlett-Packard Development Company, L.P. Self-testing of magneto-resistive memory arrays
US20020136054A1 (en) 2001-01-11 2002-09-26 Blodgett Greg A. Memory device with multi-level storage cells and apparatuses, systems and methods including same
US20080209282A1 (en) 2003-11-11 2008-08-28 Samsung Electronics Co., Ltd. Method of managing a flash memory and the flash memory
US20060239089A1 (en) 2005-04-15 2006-10-26 Kazuya Kawamoto Non-volatile semiconductor device for use in memory card and memory system
US7626874B1 (en) 2007-02-23 2009-12-01 Xilinx, Inc. Method and apparatus for testing a memory device with a redundant self repair feature
US7609083B2 (en) 2007-09-07 2009-10-27 Hitachi, Ltd. Semiconductor integrated circuit device and storage apparatus having the same
US20090268521A1 (en) 2008-04-28 2009-10-29 Koki Ueno Non-volatile semiconductor memory device
US20120106247A1 (en) 2010-10-28 2012-05-03 Samsung Electronics Co., Ltd. Flash memory device including flag cells and method of programming the same

Also Published As

Publication number Publication date
US20150033064A1 (en) 2015-01-29
WO2015013153A3 (en) 2015-06-25
US9875810B2 (en) 2018-01-23
WO2015013153A2 (en) 2015-01-29
TW201517043A (zh) 2015-05-01

Similar Documents

Publication Publication Date Title
TWI652685B (zh) 自我識別記憶體錯誤
TWI533314B (zh) Non-volatile semiconductor memory inspection methods and storage of inspection procedures recorded in the media
US10114586B1 (en) System and method for using host command data buffers as extended memory device volatile memory
EP3098815B1 (en) Methods and systems for detecting and correcting errors in nonvolatile memory
KR101405741B1 (ko) 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작
TWI442407B (zh) 在固態儲存系統中之資料回復
US8612836B2 (en) Non-volatile memory device with uncorrectable information region and operation method using the same
US20180217751A1 (en) System and method for dynamic folding or direct write based on block health in a non-volatile memory system
TWI587297B (zh) 半導體儲存裝置
US8949689B2 (en) Storage control system with data management mechanism and method of operation thereof
US9042160B1 (en) Memory device with resistive random access memory (ReRAM)
TWI650647B (zh) 資料儲存裝置以及數據錯誤管理方法
US20180067799A1 (en) System and method for detecting and correcting mapping table errors in a non-volatile memory system
TWI656440B (zh) 記憶體模組、電腦系統以及記憶體控制方法
KR20140113100A (ko) 레퍼런스 셀을 포함하는 불휘발성 메모리 장치 및 그것의 데이터 관리 방법 및
US9064569B1 (en) Memory controller with resistive random access memory (ReRAM)
US11216338B2 (en) Storage device that performs state shaping of data
US9653180B1 (en) System method and apparatus for screening a memory system
TW201633126A (zh) 非揮發性記憶體更新
US9236142B2 (en) System method and apparatus for screening a memory system
TWI511158B (zh) 記憶體模組上之記憶體備用技術
JP2014186772A (ja) 半導体記憶装置、コントローラ、及びメモリシステム
KR20200070686A (ko) 저장 장치 및 그 동작 방법
JP4582078B2 (ja) メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法
CN109473141A (zh) 纠错码中的故障字线和故障位线信息