電阻式存儲器中的位故障的實時糾正的制作方法
【專利摘要】用于糾正電阻式存儲器設備中的位故障的系統和方法包括:將存儲器設備劃分成第一存儲器排和第二存儲器排。第一單位修復(SBR)陣列被存儲在第二存儲器排中,其中第一SBR陣列被配置成存儲第一存儲器排的第一行中的第一故障位中的故障的第一指示。第一存儲器排和第一SBR陣列被配置成在存儲器存取操作期間被并行地存取。類似地,存儲在第一存儲器排中的第二SBR陣列可以存儲第二存儲器排中的位故障的指示,其中第二SBR陣列和第二存儲器排可以被并行地存取。因而,第一和第二存儲器排中的位故障可以被實時地糾正。
【專利說明】電阻式存儲器中的位故障的實時糾正
[0001 ] 公開領域
[0002]所公開的各實施例涉及檢測和糾正電阻式存儲器中的位故障。更具體地,示例性實施例涉及基于通過電阻式存儲器陣列(諸如磁阻式隨機存取存儲器(MRAM))能夠同時存取的單位修復(SBR)陣列對該電阻式存儲器陣列的位的軟故障或硬故障的實時修復。
【背景技術】
[0003]硬故障和軟故障常見于電阻式存儲器設備的存儲器單元中。此類故障可以例如作為在使用磁性元件的非易失性存儲器技術的磁阻式隨機存取存儲器(MRAM)中看到。更具體地,MRAM包括磁性隧道結(MTJ)單元,它包括將釘扎層與自由層分開的勢皇層。自由層的極化可通過在特定方向施加電流以使釘扎層和自由層的極性或基本對準或相反來反轉。通過MTJ的電路徑的電阻取決于釘扎層和自由層的極化的對準而變化。電阻方面的這一變化可被用于對MTJ單元進行編程并且讀取MTJ單元,如本領域中所已知的。
[0004]勢皇層通常是從易擊穿的材料(諸如MgO)形成的薄絕緣層。具體地,隨著器件技術進步以及MTJ元件尺寸的縮減,勢皇層可能在相對較小的壓力等級下被容易地擊穿。此類擊穿可導致硬故障,硬故障由于永久性或長期破壞而無法被容易地修復,這與可容易修復的軟故障形成對比。
[0005]具體地,不可修復的故障或硬故障要求替換故障單元。然而,一旦存儲器陣列被封裝,要替換存儲器陣列中的各個位單元是不可行的。因而,代替由于故障位單元而替換整個存儲器陣列,硬故障通常使用替換行(或列)來處置。更具體地,存儲器陣列的故障位首先被檢測;例如,在存儲器陣列上運行測試宏以檢測故障位單元。故障位單元所處的行(和/或列)例如在一次性可編程(OTP)且通常為非易失性存儲器(NVM)陣列(在存儲器陣列外部)中被指出。OTP NVM陣列保持關于包括故障位單元的故障行的信息。
[0006]替換行接著被提供以用于故障行。這些替換行是整個故障行的副本,但其中故障位單元由健康或正常運行的位單元替換。替換行通常是存儲器陣列中已經被要求用于存儲存儲器陣列的其余部分中故障行的副本的那些行。由于OTP NVM存取時間較慢,因此在實踐中,關于故障行的信息在系統上電時被加載到快速寄存器中,例如,磁阻式隨機存取存儲器(MRAM)內部寄存器。因而,每一次在存儲器陣列上嘗試存儲器存取時,MRAM內部寄存器被檢查以確定存儲器存取地址是否包含在其中,以便查明期望存儲器存取行是否是故障行。如果據稱的存儲器存取對應于故障行,則存儲器存取地址被重新路由到存儲器陣列中提供該故障行的對應替換行的地址。因而,代替故障行,對應替換行被選擇以供存儲器存取。
[0007]還將以上技術擴展到存儲器陣列的各端口而非位單元可能被破壞的情況。例如,如果存儲器陣列的輸入/輸出(1)端口被檢測為發生故障,則提供替換10(或“R10”)。可能通過故障1端口要求存取的存取地址被重新路由到替換10。更具體地,在一個已知實現中,OTP NVM可被配置成存儲整個故障1的替換10,從而使得在期望存取涉及故障1的情形中,替換1從內部MRAM寄存器獲取,如上所述。在另一已知實現中,OTP NVM可被配置成將替換1信息存儲在各個區段中,其中存儲器陣列可以被劃分成多個區段(比如舉例來說η個相等區段),n個區段中的每一個區段包括多個行。為η個區段中的每一個區段創建替換1信息,從而使得特定區段m的替換1涉及該區段m內的故障10。因而,如果區段m具有故障10,并且期望存儲器存取地址落在區段m之下,則對應的替換1可以僅針對區段m來進行檢索,而非檢索整個替換10。相應地,與存儲整個替換1的先前實現相比,這一實現僅要求OTP NVM中消耗的替換1空間的1/n。
[0008]不管所選的OTPNVM的具體實現如何,用于處置故障位單元或1的以上常規技術在若干方面是有缺陷的。首先,這些技術是較慢且耗時的;而且,此類技術無法在運行中被執行。這是因為此類技術要求多次存儲器陣列存取,由于在典型的存儲器陣列設計中一次最多只能存取一行,并且試圖存取故障行、經歷內部MRAM寄存器、并且接著存取替換行或替換1的過程招致多個時鐘周期或者換言之高等待時間。其次,替換行和/或替換1消耗存儲器陣列上寶貴的空間,并且因此,替換行的數目通常受到限制,從而對能夠被有效地處置的故障行和/或故障1的數目施加了限制。因而,傳統技術不僅僅較慢,而且不適用于故障的實時修復,在無法為所有故障提供有效替換行和/或替換1的情況下常規技術還可能導致不準確性。
[0009]概述
[0010]各示例性實施例涉及檢測和糾正電阻式存儲器中的位故障。更具體地,示例性實施例涉及基于通過電阻式存儲器陣列(諸如磁阻式隨機存取存儲器(MRAM))能夠同時存取的單位修復(SBR)陣列對該電阻式存儲器陣列的位的軟故障或硬故障的實時修復。
[0011]例如,各實施例可涉及被劃分成第一存儲器排和第二存儲器排的電阻式存儲器設備。第一單位修復(SBR)陣列被存儲在第二存儲器排中,其中第一SBR陣列被配置成存儲第一存儲器排的第一地址處的第一行中的第一故障位中的故障的第一指示。第一存儲器排和第一 SBR陣列被配置成在存儲器存取操作期間被并行地存取。類似地,存儲在第一存儲器排中的第二 SBR陣列可以存儲第二存儲器排中的位故障的指示,其中第二 SBR陣列和第二存儲器排可以被并行地存取。因而,第一和第二存儲器排中的位故障可以被實時地糾正。
[0012]相應地,一示例性實施例涉及一種糾正存儲器陣列中的位故障的方法,該方法包括:將存儲器陣列劃分成第一排和第二排,確定存儲在第一排中的第一行中的第一故障位中的故障,以及將第一故障位的第一指示存儲在第一單位修復(SBR)陣列中,其中第一SBR陣列被存儲在第二排中以允許在存儲器存取操作期間對第一排和第一 SBR陣列的并行存取。
[0013]另一示例性實施例涉及一種存儲器設備,包括:第一存儲器排,第二存儲器排,以及存儲在第二存儲器排中的第一單位修復(SBR)陣列,第一SBR陣列被配置成存儲第一存儲器排的第一行中的第一故障位中的故障的第一指示,其中第一存儲器排和第一 SBR陣列被配置成在存儲器存取操作期間被并行地存取。
[0014]另一示例性實施例涉及一種存儲器系統,包括:第一存儲器排,用于確定存儲在第一存儲器排中的第一行中的第一故障位中的故障的裝置,以及用于存儲第一故障位的第一指示的裝置,以使得第一存儲器排以及該用于存儲的裝置在存儲器存取操作期間能夠并行存取。
[0015]又一示例性實施例涉及一種包括代碼的非瞬態計算機可讀存儲介質,該代碼在由處理器執行時使得處理器執行用于糾正存儲器陣列中的位故障的操作,該非瞬態計算機可讀存儲介質包括:用于確定存儲在存儲器陣列的第一存儲器排中的第一行中的第一故障位中的故障的代碼,以及用于存儲第一故障位的第一指示的代碼,以使得第一存儲器排以及用于存儲的裝置在存儲器存取操作期間能夠并行存取。
[0016]附圖簡述
[0017]給出附圖以助益各種實施例的描述,并且提供這些附圖僅僅是為了解說實施例而非對其進行限制。
[0018]圖1是根據各示例性實施例的被配置成用于實時故障位修復的示例性存儲器設備結構的圖解。
[0019]圖2A-D解說了當故障位指示與故障位是否必須被翻轉有關時具有同時故障位修復的讀操作。
[0020]圖2E-H解說了當故障位指示與故障位是否必須被翻轉有關時具有同時故障位修復的寫操作。
[0021]圖3A-D解說了當故障位指示包括故障位的正確值時具有同時故障位修復的讀操作。
[0022]圖3E-H解說了當故障位指示包括故障位的正確值時具有同時故障位修復的寫操作。
[0023]圖4是根據本公開的各方面的糾正存儲器陣列中的位故障的示例性方法的流程圖描繪。
[0024]詳細描述
[0025]在以下針對具體實施例的描述和相關附圖中公開了各種實施例的各方面。可以設計替換實施例而不會脫離本發明的范圍。另外,各種實施例的眾所周知的元素將不被詳細描述或將被省去以免煙沒各種實施例的相關細節。
[0026]措辭“示例性”在本文中用于表示“用作示例、實例或解說”。本文中描述為“示例性”的任何實施例不必被解釋為優于或勝過其他實施例。同樣,術語“實施例”并不要求所有實施例都包括所討論的特征、優點、或工作模式。
[0027]本文所使用的術語僅出于描述特定實施例的目的,而并不旨在限定各實施例。如本文所使用的,單數形式的“一”、“某”和“該”旨在也包括復數形式,除非上下文另有明確指示。還將理解,術語“包括”、“具有”、“包含”和/或“含有”在本文中使用時指明所陳述的特征、整數、步驟、操作、元素、和/或組件的存在,但并不排除一個或多個其他特征、整數、步驟、操作、元素、組件和/或其群組的存在或添加。
[0028]各示例性實施例克服了用于處置存儲器陣列中的故障的常規技術的上述缺陷。相應地,各實施例包括可被劃分成兩個或更多個排的示例性存儲器陣列結構。例如,包括MRAM單元的存儲器陣列可以被拆分成第一排和第二排。在此類結構中,如果存儲器陣列是64位寬,則每一行的較高有效或上部32位將被存儲在第一排中,而各個行的較低有效或下部32位將被存儲在第二排中。代替例如在常規技術中存儲故障位行的整個替換行,各實施例可被配置成僅存儲示例性結構中故障位的地址,在本文中被稱為單位修復(SBR)陣列。更具體地,SBR陣列可包括位級粒度的地址,它定點具體的故障位,而非包括故障位的整個故障行。相應地,存儲器陣列內的可用存儲器空間被更高效地利用,因為需要較少的存儲空間來存儲故障位的地址,而非存儲包括故障位的整個故障行。
[0029]在其它方面,對應于第一排的數據行的故障位的第一SBR陣列可以被形成在存儲器陣列的第二排內,而對應于第二排中的數據行的故障位的第二SBR陣列可以被形成在第一排內。在示例性存儲器陣列中,提供了用于對第一排和第二排進行并行或同時存取的邏輯和控制裝置,從而允許對第一排例如連同其對應的第一 SBR陣列的并行存取。以此方式,據稱的對例如第一排的第一行的存儲器存取可以與存取來自第二排的第一 SBR陣列并行地執行。相應地,與常規技術相比,各實施例還可改善存儲器存取速度。
[0030]現在參考圖1,解說了示例性存儲器設備100的示意圖,其中存儲器設備100可被配置成納入與位故障(尤其是硬故障)的修復有關的各示例性方面。在一個實施例中,存儲器設備100可以是包括MTJ位單元的電阻式存儲器,諸如MRAM。更具體地,存儲器設備100包括存儲器陣列,它是示例性地為64位寬,并且被拆分成第一和第二32位寬的存儲器排,被解說為第一排102a和第二排102b。第一 SBR陣列104a可以存儲涉及第一排102a中的故障位的地址(例如,第一 SBR陣列104a可以存儲對應于第一排102a中的第一故障位的第一地址);并且類似地,第二 SBR陣列104b可以存儲涉及第二排102b中的故障位的地址。在所解說的實施例中,存儲器設備100可包括520個行,其中第一排102a和第二排102b包括512個行,并且相應的第一和第二 SBR陣列104a-b包括8行。
[0031]在一示例中,第一排102a的位單元105a可以被確定為故障位,其中故障位105a可屬于數據字線或故障行106a。對應地,第一 SBR陣列104a可包括被指定為SBR陣列條目107a的條目。SBR陣列條目107a可包括故障位105a的地址以及指示故障位105a在故障行106a內的位位置的列地址(CA),故障位105a的地址可包括對應于故障行106a的字線偏移。此外,SBR陣列條目107a可包括指示所存儲的地址與當前故障有關還是作廢的有效位,以及1號(如果存在對應于故障位105a的故障1的話)。在一些方面,如果故障1按照先前所述的分段方式被確定,則1號可以對應于故障行106a所屬的特定區段。表示SBR陣列條目107a所需的位數例如顯著小于存儲整個故障行106a可能所需的位數(如常規技術中所看到的)。因而,若干條目(諸如SBR陣列條目107a)可以被存儲在例如第一SBR陣列104a的8行的每一行內。
[0032]地址命令110可以被存儲器設備100接收以進行例如對外部源的讀/寫操作,外部源諸如處理器或存儲器控制器(未示出)。全局控制邏輯116可被配置成接收地址命令110,并且解碼器114被配置成將涉及地址命令110的存取定向到第一和/或第二排102a-b的相關行。地址命令110可基于所選的特定實現而包括32位操作以及全64位操作。例如,64位寫命令可包括到第一排102a的上部32位的總線DIN 11 la[63: 32]以及到第二排102b的總線DINlllb[31:0]上的數據。類似地,64位讀命令可被用于讀出來自第一排102a的上部32位的DOUT 112a[63:32]以及來自第二排 102b 的 DOUT 112b[31:0]上的數據。
[0033]為了輔助讀數據和寫數據,提供了包括局部數據線(LDP)118a-b和全局數據線(GDP)120a-b的讀邏輯和寫邏輯塊。LDP 118a_b可包括讀邏輯或讀電路系統以及寫電路系統,讀邏輯或讀電路系統包括感測放大器;而GDP 120a-b可包括接收機和數據輸出緩沖器。在寫操作的情形中,寫入數據通過塊⑶P 120a-b從總線DIN llla_b接收,并且相應地被轉發到LDP 118a-boLDP 118a_b中的寫邏輯或寫電路系統可以將寫入數據分別驅動進入對應的第一和第二排102a-b的位線。對于讀操作,在LDP 118a_b中包括感測放大器的讀電路系統可以分別感測來自對應的第一和第二排102a-b的位單元數據并且將該位單元數據轉發到⑶P 120a-boGDP 120a_b可以將讀數據驅動輸出到總線DOUT 112a_b上。
[0034]為了輔助確定位故障,可以提供糾錯機制以周期性地檢查存儲在第一和第二排102a-b內的數據的完整性或正確性。為了輔助這一過程,糾錯碼(ECC)位106a和106b分別被添加到第一和第二排102a-b的每一行。ECC的功能在本領域是公知的,其中冗余的ECC位或奇偶位被添加到數據位群,從而使得ECC位可以被用于確定在數據位群內是否發生一個或多個錯誤。現在將參考圖2A-H中解說的操作(諸如讀、寫、和/或數據擦寫/刷新)來討論基于圖1的示例性存儲器設備100的結構進行故障位修復的細節。
[0035]參照圖2A-B,解說了根據各示例性實施例的用于填充SBR陣列的初始設立操作集。圖2A-B包括流程圖,該流程圖包括可以在示例性刷新或數據擦寫過程期間執行的步驟序列。盡管示例性方面涉及不要求刷新操作(諸如在易失性存儲器(諸如動態隨機存取存儲器(DRAM)中常見的)的非易失性存儲器(諸如MRAM),但類似的操作可被周期性地執行以確定故障。例如,在初始設立階段期間并且在周期性循環中,第一和第二排102a-b中的每一行可以被讀出,其中存儲的數據的正確性使用對應的ECC位108a-b來驗證,并且接著被寫回。根據各示例性實施例,軟故障可以在這一類似刷新的數據擦寫操作期間被修理,而硬故障可以被標記以供修復處置。還將理解,在這一上下文中描述的刷新/故障檢測操作無需僅在初始或周期性刷新過程期間被執行,而是在另一方面,故障檢測和修復處置也可作為存儲器存取(諸如讀或寫操作)的一部分來完成。
[0036]更具體地,在步驟或框202中,在刷新/數據擦寫或讀操作期間,上述行106a被讀出。使用來自ECC塊108a的對應ECC位,檢查行106a的正確性。行106a中存儲的示例值在圖2A-B中指示。在這一運行中的示例中,檢測到位105a是不正確的,并且偏離其預期值,該預期值由指向行106a的其余位內的位105a的指針所指示。然而,單單這一偏離不足以確定該錯誤是由軟故障引起(可通過寫回來糾正)還是由硬故障(需要進一步的注意,例如通過在第一SBR陣列104a中創建條目)引起。
[0037]因而,該過程繼續至框204,其中,對位105a執行糾錯(在二進制表示中,等于使位105a從錯誤值反轉或翻轉),并且在框206中,行106a被寫回第一排102a內,其中位105a經過翻轉/糾正,并且希望該錯誤是將通過重寫正確值來糾正的軟故障。
[0038]在框208(開始于圖2B)中,行106a再一次被讀出,以確定該錯誤在框206中是否被修理。出于解釋實施例的目的,將假定,位105a已經經歷了硬故障,該硬故障將無法通過在框206中重寫正確值來修復。相應地,認識到在框208中,位205a是故障位,具有無法通過重寫正確值來修理的硬故障,諸如位于位205a的MTJ單元的MgO勢皇擊穿。將領會,在一些情形中,此類硬故障無需是持久的,并且隨著時間推移,基于任何數目的因素,硬故障可能變得被修理也是可能的,這些內容將不在本公開中討論。為了計及此類情景,先前描述的有效位將被用于確保SBR陣列中的條目指向當前存在的硬故障。
[0039]相應地,移動到框210,位105a中的硬故障被記錄在第一SBR陣列104a中,并且假定第一SBR陣列104a具有可用于存儲對故障位105a的指示的存儲空間。盡管示例性SBR陣列(例如第一 SBR陣列104a)能夠比常規技術保持更多的故障指示,然而要認識到,這些示例性SBR陣列在容量上也是受限的(例如,8行32位的容量,在當前示例中提供了用于每一行中的一個或多個故障位指示的存儲空間)。因而,如果用于存儲故障位指示的可用容量被指示,則可以采用合適的替換策略來蓋寫現有條目并且為新條目騰出空間。如果一些條目包含無效條目,如它們有效位字段所指示的,則這些條目可以被刪除。如果所有條目都是有效的,則諸如高速緩存存儲器架構中的最近最少使用(LRU)方案之類的替換策略是一種可能的替換策略,而本領域技術人員將認識到,替代的替換策略也可在本公開的范圍內被采用。
[0040]繼續參考框210,在第一 SBR陣列104a中創建SBR陣列條目107a,其中有效字段可以被設置,并且字線偏移字段可涉及故障行106a(例如,在圖2A-B中被描繪為涉及字線(WL) =“10”),并且列地址可指示故障位105a在故障行106a內的位置(例如,在圖2A-B中被描繪為涉及列地址(CA)=5)。更具體地,通過這一格式,如果SBR陣列條目107a設置了有效字段,則其指示在于位105a的值必須被翻轉(例如,位105a可能由于故障被卡在與其預期正確值相反的值處)。因而,在這一階段,第一 SBR陣列104a將填充有存在針對第一排102a中的位105a的硬故障的指示。類似地,第一和第二排102a_b兩者中的所有其它行可被擦寫并且分別在第一和第二 SBR陣列104a-b中記錄故障。
[0041]參考圖2C-D,解說了針對示例性讀操作的與圖2A-B類似格式的操作流程,并且現在將繼續參考第一排102a的行106a來進行描述。例如,組合地參考圖1,地址命令110可以被接收以用于對行106a執行讀,以生成期望的輸出DOUT 112a [ 63: 32 ]。相應地,全局控制塊116將對第一排102a的行106a發起讀操作,同時讀出第一SBR陣列104a。在一些方面,基于收到的讀地址,全局控制塊116將能夠確定第一SBR陣列104a中存在針對行106a的條目,SBR陣列條目107a。
[0042]因而,在框212中,對行106a的讀操作將通過從第一排102a讀出行106a來發起,同時從第一 SBR陣列104a讀出對應的SBR陣列條目107a。將確定在位105a中存在故障。
[0043]在框214中,從行106a中讀出的值基于SBR陣列條目107a中設置的有效位通過翻轉故障位105a被修改或反轉。在一些情形中,存儲在SBR陣列條目107a中的值也可首先對照其自己的ECC位(如針對第一SBR陣列104a在框212中示出的)來檢查以確保SBR陣列條目本身沒有被破壞。
[0044]返回到框212,示出了附加方面,它們可以是可任選的特征并且無需在所有情形中影響框212和214中的以上描述。具體地,在框212中,ECC位可能已經在行106a內的附加位而非位105a中指示錯誤。該第二錯誤可能是由軟故障或硬故障引起的,因為在圖2B的框210中為行106a在第一SBR陣列104a中創建了條目。因而,在框216(圖2D中示出)中,該第二錯誤位的糾正還可在讀出行106a的同時但在最終在DOUT 112a[ 63:32 ]上輸出正確值之前被執行。
[0045]現在轉向圖2E-F,解說了示例性寫操作的第一形式,其中新的字或新的行(諸如新的第一行)被寫入第一排102a的現有第一行。例如,接收自DIN 11 la[63: 32]的新的第一行值例如通過LDP 118a的輔助要被寫入現有第一行(行106a)。這一形式涉及這樣一種情形,其中據稱的到位105a的新寫入值與故障位105a的當前存儲值相同,這將在下文進一步解釋。再次,當地址命令110指示期望進行寫操作時,全局控制塊116例如將在第一SBR陣列104a中指示存在針對行106a的SBR陣列條目107a。在此之后,寫過程繼續到框222。
[0046]在框222中,對行106a執行預讀,其中在將新值寫入行106a之前行106a首先被讀出。來自第一 SBR陣列104a的SBR陣列條目107a也被讀出以確定行106a的哪個位具有故障指示。再次,SBR陣列條目107&本身可以首先使用第一 SBR陣列104a的ECC位被測試正確性。
[0047]接著,在框224中,要被寫入行106a的數據可以與已經存在于行106a中的數據作比較,例如以便僅選擇性地將根據來自DIN llla[63:32]的傳入數據需要被修改的位寫回。由于行106a中已經存在的32位中的一些很有可能與要被寫入的新32位是共同的,因此節省對將與其現有值保持不修改的那些位值的寫功率是有利的。對僅修改位的選擇性寫入可以通過對從預讀可用的行106a中的現有位以及針對寫操作要被寫入行106a的對應位執行逐位XOR (異或)函數來實現。
[0048]然而,不像行106a中的其余位,如果在重寫之后,基于故障地址107a中的指示該位將被反轉或翻轉,則故障位105a無需被重寫。在闡明這一過程的數字解釋中,將假定,SBR陣列條目107a中的有效位指示位105a需要被翻轉,其中位105a的值當前處于錯誤值“O”。因而,存儲在SBR陣列條目107a中的當前指示轉換成位105a的正確值為“I”的要求。因而,如果根據期望寫操作的完成,值“I”要被寫入位105a,則這可以通過令該值保持其初期預讀值“O”來實現,從而使得當位105a被讀出時,它將通過故障地址107a中的指示被翻轉。
[0049]在框226(參見圖2F)中,被確定為與行106a中的現有位不同的位(S卩,需要被寫入的位)(除了位105a,因為該情形可能基于框224)被寫回到行106a中以完成寫過程。根據寫操作的完成,對應的ECC位基于行106a中經更新的值被更新。
[0050]在一些情形中,將理解,框224可以被略去,并且框226可以被修改為蓋寫從DINllla[63:32]到達行106a的新數據位的全部32位。盡管這可能無法實現通過避免寫功率不必要地寫入無需被修改的位可看到的相同功率節省,如上在框224和226中所描述的,但蓋寫全部32位可以使增加的復雜性的功率節省與成本節省(例如,逐位XOR邏輯可以被避免)之間進行折衷。如果新數據的全部32位在行106a中被蓋寫,則后續刷新操作(例如,根據圖2A-B)可以被執行以相應地更新第一 SBR陣列104a。
[0051]現在參照圖2G-H,解說了在圖2E-F中描述的寫操作的第二形式,其中據稱的到位105a的新寫入值與故障位105a的預讀值相同。圖2G-H與圖2E-F的重大差別僅在于圖2E-F的框224和226,并且因而這些差別已經通過在圖2G-H中將對應的框標記為224’和226’來表明。由于圖2G-H在所有其它方面基本類似于圖2E-H,因此以下描述將不會停留于這些相似處而是著重于差別。
[0052]更具體地,圖2G-H表示其中寫入數據在對應于位105a的位置中包括值的示例,該值與在框222中從行106a的預讀中讀出的位105a的值相同。然而,已經知曉的是,位105a具有在SBR陣列條目107a中設置的有效位,從而表明位105a需要被翻轉。因而,在數字示例中,如果位105a從行106a中被讀出為值“O”,則已經知曉的是其預期值為“I”,因為讀取的值“O”是錯誤的。然而,如果新寫入要具有寫入位105a的值“O”,則“O”將是位105a處的正確值,并且因而基于SBR陣列條目107a中設置的有效值不應被翻轉。相應地,對應于值“O”的位105a中的錯誤指示必須被移除。
[0053]因而,在圖2E-H中將數據寫入行106a的過程與以上在圖2E-F中描述的過程不同之處在于:在圖2D的框224’中,看到要被寫入位105a的數據值與從位105a讀出的數據值相同,但從位105a讀出的數據值先前被SBR陣列條目107a中設置的有效位記錄為錯誤值。相應地,根據寫操作,不需要在位105a處執行蓋寫,因為據稱的值已經匹配于從行106a讀出的值。類似于圖2C的框224,出于框224’中的寫操作的目的,將從它們當前存儲的值進行修改的所有其它位可以被更新(記住,再次,在替換實施例中,可以通過使功率折衷并且將DIN Illa[63:32]的所有位寫入行106a并且按需更新第一 SBR陣列104a來避免框224’)。
[0054]因而,在框226’(如圖2H中描繪的)中,如果到位105a的寫入值匹配于位105a的預讀值,則SBR陣列條目107a可以基于重置有效值而被刪除或者被無效。
[0055]現在參考圖3A-H,描繪了替換實施例,其中示例性SBR陣列中的條目格式與以上關于圖2A-H中描述的那些不同。顯著的是,根據圖3A-H的這些替換實施例的示例性SBR陣列中的一個或多個條目包括用于指示由存儲在其中的故障地址所指示的故障位的正確值的附加字段,被稱為“正確字段”。換言之,代替在先前描述的實施例中基于有效位來指示故障位必須被翻轉或不翻轉,本文的替換實施例的SBR陣列條目顯式地存儲必須存在于所標識的故障位處的正確值。相應地,在這些替換實施例中,第一SBR陣列104a的條目(諸如SBR陣列條目107 ’ a(未分開解說))包括對應于故障位105a的故障地址,其中故障地址107 ’ a包括如同之前那樣針對有效位和故障1號的字段,并且附加地還包括指示正確數據位值的寫入數據位字段。因而,如果SBR陣列條目107’a指示有效條目,則位105a的正確值由寫入數據位字段來提供。替換實施例在其它方面基本類似于與先前描述的那些實施例,并且相應地,以下描述將著重于它們的差別而略去對類似方面的重復。
[0056]更詳細地,涉及初始設立或用于填充示例性SBR陣列的刷新操作的圖3A-B的框302-308基本類似于圖2A-B的框202-208。顯著的差別在于框310,其中不像圖2B的框210,故障位105a的正確值被寫入為SBR陣列條目107’a在其寫入數據位字段中創建的條目。
[0057]將以上差別牢記于心,現在將參考圖3C-D進行對按照以上SBR陣列條目107’a具有故障位105a指示的故障行106a的讀操作的描述,其中框312-316在許多方面類似于圖2C-D的框212-216。在框312中,SBR陣列條目107’a與其指示故障位105a的正確值的附加字段一起讀出,連同行106a的讀出一起。
[0058]不像在圖2C的框214中所討論的翻轉操作,在圖3C的框314中,行106a的讀出值通過將故障位105a替換為從SBR陣列條目107’a的寫入數據值字段中導出的其正確值來修改。
[0059]類似于圖2D的框216,在圖3D的框316中執行差錯檢查,并且在DOUT 112a[63:32]上輸出經糾正的數據之前基于ECC位按需執行附加糾正。
[0060]現在參考圖3E-H,分別解說了基于故障位預讀值是否不同于據稱的新寫入值的對行106a的寫操作的第一和第二形式。然而,不像圖2E-F和圖G-H之間的區別,在圖3E-F與圖3G-H之間實際上沒有差別,因為故障位105a的正確值可從SBR陣列條目107’a獲得,并且因而不需要包括針對故障位預讀值是否不同于據稱的新寫入值的特別關心。
[0061 ] 更具體地,圖3E、3G的框322和圖2E、2G的框222是類似的,其中對行106a執行預讀,其中在將新值寫入行106a之前行106a首先被讀出。然而,在圖3E的框324(其中據稱的到故障位105a的新寫入值不同于故障位105a的預讀值)以及在圖3G的框324’(其中據稱的到故障位105a的新寫入值不同于故障位105a的預讀值)兩者中,據稱的新寫入值是否被寫入行106a中的位105a是無關緊要的。這是因為在圖3F的框326以及圖3H的框326’兩者中,正確值將無論如何都在故障地址107’a的寫入數據值位字段中被更新。
[0062]再次,將理解,在替換實現中,除了框324和324’中描繪的那些之外,例如,寫入具有新寫入值的整個行106a而非僅僅寫入不同于先前存儲位的那些位以將功率節省與設計簡化進行折衷也是可能的。
[0063]將領會,各實施例包括用于執行本文中所公開的過程、功能和/或算法的各種方法。例如,如圖4所解說的,一實施例可包括一種糾正存儲器陣列(例如,存儲器設備100)中的位故障的方法,該方法包括:將存儲器陣列劃分成第一排(例如,第一排102a)和第二排(例如,第二排102b)——框402;確定存儲在第一排中的第一行(例如,第一行106a)中的第一故障位(例如,位105a)中的故障——框404;以及將第一故障位的第一指示(例如,SBR陣列條目107a)存儲在第一單位修復(SBR)陣列(例如,第一SBR陣列104a)中,其中第一SBR陣列被存儲在第二排中以允許在存儲器存取操作期間對第一排和第一 SBR陣列的并行存取——框406。
[0064]本領域技術人員將領會,信息和信號可使用各種不同技術和技藝中的任何一種來表示。例如,貫穿上面描述始終可能被述及的數據、指令、命令、信息、信號、位(比特)、碼元、和碼片可由電壓、電流、電磁波、磁場或磁粒子、光場或光粒子、或其任何組合來表示。
[0065]此外,本領域技術人員將領會,結合本文中所公開的實施例描述的各種解說性邏輯塊、模塊、電路、和算法步驟可被實現為電子硬件、計算機軟件、或兩者的組合。為清楚地解說硬件與軟件的這一可互換性,各種解說性組件、塊、模塊、電路、以及步驟在上面是以其功能性的形式作一般化描述的。此類功能性是被實現為硬件還是軟件取決于具體應用和施加于整體系統的設計約束。技術人員對于每種特定應用可用不同的方式來實現所描述的功能性,但這樣的實現決策不應被解讀成導致脫離了本發明的范圍。
[0066]結合本文中所公開的實施例描述的方法、序列和/或算法可直接在硬件中、在由處理器執行的軟件模塊中、或者在這兩者的組合中體現。軟件模塊可駐留在RAM存儲器、閃存、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、可移動盤、CD-ROM或者本領域中所知的任何其他形式的存儲介質中。示例性存儲介質耦合到處理器以使得該處理器能從/向該存儲介質讀寫信息。在替換方案中,存儲介質可以被整合到處理器。
[0067]相應地,本發明的實施例可包括實施用于在電阻式存儲器設備中的故障位修復的方法的計算機可讀介質。相應地,本發明并不限于所解說的示例且任何用于執行文本所描述的功能性的手段均被包括在本發明的實施例中。
[0068]盡管上述公開示出了本發明的解說性實施例,但是應當注意到,在其中可作出各種更換和改動而不會脫離如所附權利要求定義的本發明的范圍。根據本文中所描述的本發明實施例的方法權利要求的功能、步驟和/或動作不必按任何特定次序來執行。此外,盡管本發明的要素可能是以單數來描述或主張權利的,但是復數也是已料想了的,除非顯式地聲明了限定于單數。
【主權項】
1.一種糾正存儲器陣列中的位故障的方法,所述方法包括: 將所述存儲器陣列劃分成第一排和第二排; 確定存儲在第一排中的第一行中的第一故障位中的故障;以及將第一故障位的第一指示存儲在第一單位修復(SBR)陣列中,其中第一SBR陣列被存儲在第二排中以允許在存儲器存取操作期間對第一排和第一 SBR陣列的并行存取。2.如權利要求1所述的方法,其特征在于,所述第一指示包括第一故障位在第一行中的第一地址以及用于指示第一故障位的值因所述故障而被反轉的有效字段。3.如權利要求2所述的方法,其特征在于,在第一行的讀操作或刷新操作期間: 確定第一SBR陣列包括第一行中的第一故障位的第一指示;以及 反轉在第一地址處從第一行讀出的位值。4.如權利要求2所述的方法,其特征在于,在將新第一行寫入第一排的第一行的寫操作期間: 確定第一 SBR陣列包括第一行中的第一故障位的第一指示; 讀出存儲在第一排中的第一行; 將所述新第一行的位值與在基于第一地址的第一故障位的位置處讀出的第一行作比較; 將所述新第一行寫入第一排;以及 基于所述比較來更新第一指示。5.如權利要求4所述的方法,其特征在于,進一步包括,將所述新第一行的所有位與讀出的第一行作比較,以及選擇性地僅將所述新第一行中不同于讀出的第一行的位寫入第一排。6.如權利要求1所述的方法,其特征在于,所述第一指示包括第一故障位在第一行中的第一地址、以及包括第一故障位的正確值的正確字段。7.如權利要求6所述的方法,其特征在于,在第一行的讀操作或刷新操作期間: 確定第一SBR陣列包括第一行中的第一故障位的第一指示;以及 用第一地址處的所述正確值替換從第一行讀出的位值。8.如權利要求6所述的方法,其特征在于,在將新第一行寫入第一排的第一行的寫操作期間: 確定第一 SBR陣列包括第一行中的第一故障位的第一指示; 讀出存儲在第一排中的第一行; 將所述新第一行的位值與在基于第一地址的第一故障位的位置處讀出的第一行作比較; 將所述新第一行寫入第一排;以及 基于所述比較來更新第一指示。9.如權利要求6所述的方法,其特征在于,進一步包括,將所述新第一行的所有位與讀出的第一行作比較,以及選擇性地僅將所述新第一行中不同于讀出的第一行的位寫入第一排。10.如權利要求1所述的方法,其特征在于,所述存儲器陣列是MRAM陣列,并且所述故障包括對應于形成在第一故障位處的磁性隧道結(MTJ)單元的勢皇層的MgO擊穿的硬故障。11.一種存儲器設備,包括: 第一存儲器排; 第二存儲器排;以及 存儲在第二存儲器排中的第一單位修復(SBR)陣列,第一SBR陣列被配置成存儲第一存儲器排的第一行中的第一故障位中的故障的第一指示,其中第一存儲器排和第一 SBR陣列被配置成在存儲器存取操作期間被并行地存取。12.如權利要求11所述的存儲器設備,其特征在于,所述第一指示包括第一故障位在第一行中的第一地址以及用于指示第一故障位的值因所述故障而被反轉的有效字段。13.如權利要求12所述的存儲器設備,其特征在于,進一步包括讀邏輯,其被配置成: 確定第一SBR陣列包括第一行中的第一故障位的第一指示;以及 反轉在第一地址處從第一行讀出的位值。14.如權利要求12所述的存儲器設備,其特征在于,進一步包括寫邏輯,其被配置成: 確定第一 SBR陣列包括第一行中的第一故障位的第一指示; 讀出存儲在第一排中的第一行; 將要被寫入的新第一行的位值與在基于第一地址的第一故障位的位置處讀出的第一行作比較; 將所述新第一行寫入第一排;以及 基于所述比較來更新第一指示。15.如權利要求14所述的存儲器設備,其特征在于,所述寫邏輯被進一步配置成將所述新第一行的所有位與讀出的第一行作比較,以及選擇性地僅將所述新第一行中不同于讀出的第一行的位寫入第一排。16.如權利要求11所述的存儲器設備,其特征在于,所述第一指示包括第一故障位在第一行中的第一地址、以及包括第一故障位的正確值的正確字段。17.如權利要求16所述的存儲器設備,其特征在于,進一步包括讀邏輯,其被配置成: 確定第一SBR陣列包括第一行中的第一故障位的第一指示;以及 用第一地址處的所述正確值替換從第一行讀出的位值。18.如權利要求16所述的存儲器設備,其特征在于,進一步包括寫邏輯,其被配置成: 確定第一 SBR陣列包括第一行中的第一故障位的第一指示; 讀出存儲在第一排中的第一行; 將要被寫入的新第一行的位值與在基于第一地址的第一故障位的位置處讀出的第一行作比較; 將所述新第一行寫入第一排;以及 基于所述比較來更新第一指示。19.如權利要求16所述的存儲器設備,其特征在于,所述寫邏輯被進一步配置成將所述新第一行的所有位與讀出的第一行作比較,以及選擇性地僅將所述新第一行中不同于讀出的第一行的位寫入第一排。20.如權利要求11所述的存儲器設備,其特征在于,所述存儲器陣列是MRAM陣列,并且所述故障包括對應于形成在第一故障位處的磁性隧道結(MTJ)單元的勢皇層的MgO擊穿的硬故障。21.—種存儲器系統,包括: 第一存儲器排; 用于確定存儲在第一存儲器排中的第一行中的第一故障位中的故障的裝置;以及 用于存儲第一故障位的第一指示的裝置,以使得第一存儲器排以及所述用于存儲第一指示的裝置在存儲器存取操作期間能夠并行存取。22.如權利要求21所述的存儲器系統,其特征在于,包括: 用于確定在第一行的讀操作或刷新操作期間所述用于存儲第一指示的裝置包括第一行中的第一故障位的第一指示的裝置;以及 用于用第一地址處的正確值替換從第一行讀出的位值的裝置。23.如權利要求21所述的存儲器系統,其特征在于,包括: 用于確定在將新第一行寫入第一排的第一行的寫操作期間所述用于存儲第一指示的裝置包括第一行中的第一故障位的第一指示的裝置; 用于讀出存儲在第一排中的第一行的裝置; 用于將所述新第一行的位值與在基于第一地址的第一故障位的位置處讀出的第一行作比較的裝置; 用于將所述新第一行寫入第一排的裝置;以及 用于基于所述比較來更新第一指示的裝置。24.—種包括代碼的非瞬態計算機可讀存儲介質,所述代碼在由處理器執行時使得所述處理器執行用于糾正存儲器陣列中的位故障的操作,所述非瞬態計算機可讀存儲介質包括: 用于確定存儲在所述存儲器陣列的第一存儲器排中的第一行中的第一故障位中的故障的代碼;以及 用于存儲第一故障位的第一指示以使得第一存儲器排以及所述第一指示在存儲器存取操作期間能夠并行存取的代碼。
【文檔編號】G11C29/00GK105917413SQ201480072470
【公開日】2016年8月31日
【申請日】2014年12月12日
【發明人】T·金, S·金, J·P·金
【申請人】高通股份有限公司