TW202145242A - 用於記憶體修復的方法 - Google Patents

用於記憶體修復的方法 Download PDF

Info

Publication number
TW202145242A
TW202145242A TW110118009A TW110118009A TW202145242A TW 202145242 A TW202145242 A TW 202145242A TW 110118009 A TW110118009 A TW 110118009A TW 110118009 A TW110118009 A TW 110118009A TW 202145242 A TW202145242 A TW 202145242A
Authority
TW
Taiwan
Prior art keywords
memory
bit
repair
bits
redundant
Prior art date
Application number
TW110118009A
Other languages
English (en)
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/108,870 external-priority patent/US11450401B2/en
Application filed by 台灣積體電路製造股份有限公司 filed Critical 台灣積體電路製造股份有限公司
Publication of TW202145242A publication Critical patent/TW202145242A/zh

Links

Images

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
    • 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/1201Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
    • 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/36Data generation devices, e.g. data inverters
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • G11C29/56004Pattern generation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • G11C29/56008Error analysis, representation of errors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • G11C29/56016Apparatus features
    • 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/72Masking faults in memories by using spares or by reconfiguring with optimized replacement algorithms
    • 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/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/808Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a flexible replacement scheme
    • 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/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/816Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout
    • 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/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/835Masking faults in memories by using spares or by reconfiguring using programmable devices with roll call arrangements for redundant substitutions
    • 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/1202Word line control
    • 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/1204Bit line control
    • 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/36Data generation devices, e.g. data inverters
    • G11C2029/3602Pattern generator
    • 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

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

Abstract

一種用於記憶體修復的方法、系統及電腦程式產品。從對記憶體的記憶體區塊進行的記憶體測試提取記憶體區塊中的將被修復的至少一個失效位元的位置。取得記憶體中的用於對記憶體區塊進行修復的可用修復資源。判斷包含多個約束在內的約束滿足問題是否可解決。所述約束對應於記憶體區塊中的失效位元的位置以及可用修復資源。反應於判斷出約束滿足問題不可解決,將記憶體區塊標記為不可修復或拒絕記憶體。反應於判斷出約束滿足問題可解決且具有滿足所述約束的解決方案,根據約束滿足問題的解決方案而使用可用修復資源來對失效位元進行修復。

Description

用於記憶體修復的方法
本發明的實施例是有關於一種用於記憶體修復的方法、系統及電腦程式產品。
記憶體是電子裝置的元件。由於記憶體中的缺陷不僅潛在地影響有缺陷的記憶體的效能和/或功能,還影響包括或存取這有缺陷的記憶體的一個或多個其他積體電路(integrated circuit,IC)的效能和/或功能,因此記憶體品質是一個考慮因素。記憶體測試及修復是為解決此考慮因素而開發的技術。
本發明實施例的方法至少部分地由處理器執行。用於記憶體修復的方法包括但不僅限於下列步驟:從對記憶體的記憶體區塊進行的至少一個記憶體測試提取記憶體區塊中的將被修復的至少一個失效位元(fail bit)的位置。取得記憶體中的用於對記憶體區塊進行修復的可用修復資源。判斷包含多個約束在內的約束滿足問題(Constraint Satisfaction Problem,CSP)是否能夠解決。這些約束對應於記憶體區塊中的至少一個失效位元的位置及可用修復資源。反應於判斷所指示約束滿足問題不能解決,將記憶體區塊標記為不能修復或拒絕記憶體。反應於判斷所指示約束滿足問題能夠解決且具有滿足那些約束的解決方案,根據約束滿足問題的解決方案而使用可用修復資源來對至少一個失效位元進行修復。
本發明實施例的系統包括但不僅限於記憶體測試裝置以及處理器。記憶體測試裝置被配置成對記憶體的記憶體區塊執行至少一個記憶體測試。處理器耦接到記憶體測試裝置。處理器被配置成:從至少一個記憶體測試提取記憶體區塊中的將被修復的至少一個失效位元的位置,且取得記憶體中的用於對記憶體區塊進行修復的可用修復資源。處理器還被配置成根據以下因素判斷至少一個失效位元是否不可修復:記憶體區塊中的至少一個失效位元的位置、可用修復資源、以及透過機器學習從資料庫取得的函數。資料庫包含不可修復位元圖案及對應的可用修復資源。反應於判斷出至少一個失效位元不可修復,處理器還被配置成控制記憶體測試裝置將記憶體區塊標記為不可修復或拒絕記憶體。
本發明實施例的電腦程式產品包括非暫時性電腦可讀媒體。非暫時性電腦可讀媒體中包含指令。指令在由處理器執行時使處理器從對記憶體的記憶體區塊進行的至少一個記憶體測試提取記憶體區塊中的將被修復的多個失效位元的失效位元圖案以及記憶體區塊中的多個弱位元(weak bit)的弱位元圖案。指令還使處理器反應於以下中的任意者控制將記憶體區塊標記為不可修復或拒絕記憶體:多個失效位元的數目高於預定門檻值,機器學習函數基於記憶體中的失效位元圖案及用於對記憶體區塊進行修復的可用修復資源指示失效位元圖案不可修復,或者包含多個約束在內的約束滿足問題不可解決。這些約束對應於失效位元圖案及可用修復資源。指令使所述處理器基於以下控制對記憶體進行修復:約束滿足問題的解決方案、或者約束優化問題(Constraint Optimization Problem,COP)的解決方案。約束滿足問題的解決方案滿足那些約束且指示可用修復資源在多個失效位元的修復中如何分配。約束優化問題包含多個約束及目標函數,約束優化問題的解決方案滿足多個約束、對目標函數進行優化且指示可用修復資源在多個失效位元及多個弱位元之中的一個或多個弱位元的修復中如何分配。
以下公開提供用於實施所提供主題的不同特徵的許多不同實施例或範例。以下闡述元件、材料、值、步驟、操作、材料、排列等的具體範例以簡化本發明實施例。當然,這些僅為範例且不旨在進行限制。預期存在其他組件、值、操作、材料、排列等。舉例來說,以下說明中將第一特徵形成在第二特徵“之上”或第二特徵“上”可包括其中第一特徵與第二特徵被形成為直接接觸的實施例,且也可包括其中第一特徵與第二特徵之間可形成有附加特徵從而使得所述第一特徵與所述第二特徵可不直接接觸的實施例。另外,本發明實施例可能在各種範例中重複使用參考符號和/或字母。這種重複使用是出於簡潔及清晰的目的,而不是自身指示所論述的各種實施例和/或配置之間的關係。
此外,為易於說明,本文中可能使用例如“在…之下(beneath)”、“在…下方(below)”、“下部的(lower)”、“在…上方(above)”、“上部的(upper)”等空間相對性用語來闡述圖中所示的一個元件或特徵與另一(其他)元件或特徵的關係。所述空間相對性用語旨在除圖中所繪示的朝向外還囊括裝置在使用或操作中的不同朝向。設備可具有其他朝向(旋轉90度或處於其他朝向),且本文中所使用的空間相對性描述語可同樣相應地進行解釋。
當記憶體經歷至少一個記憶體測試時,在記憶體中發現一個或多個失效位元(fail bit)和/或弱位元(weak bit)。失效位元(也被稱為“硬錯誤(hard error)”)是在同一位置(或位元)多次出現的錯誤。弱位元(也被稱為“軟錯誤(soft error)”)是隨機出現的錯誤且不會在同一位置(或位)處重複出現多次。為確保記憶體的正常功能,使用如本文中所述的記憶體中可用的修復資源來對失效位元進行修復。在至少一個實施例中,不對弱位元進行修復是可接受的;然而,當對失效位元進行修復之後剩餘的修復資源足夠時,使用剩餘修復資源對弱位元中的一者或多者進行修復。
在一些實施例中,將是否可對記憶體的記憶體區塊中的失效位元的圖案(也被稱為“失效位元圖案”)進行修復的決定公式化為約束滿足問題(Constraint Satisfaction Problem,CSP)。當CSP不可解決時,將記憶體區塊標記為不可修復或拒絕記憶體。當CSP可解決時,使用CSP的解決方案來分配記憶體中的可用修復資源以對失效位元進行修復。在一些實施例中,除失效位元之外且在可用修復資源允許的情況下,如何對記憶體區塊中的一個或多個弱位元進行修復的決定被公式化為基於弱位元的弱級(weakness level)的約束優化問題(Constraint Optimization Problem,COP)。除對所有的失效位元進行修復之外,使用COP的解決方案分配可用修復資源以對弱位元中的一者或多者進行修復。在一些實施例中,在試圖解決CSP之前,應用機器學習來判斷失效位元圖案是否不可修復。在一些實施例中,使用不可解決的CSP來更新機器學習的結果。在一些實施例中,應用機器學習來對CSP和/或COP的解決演算法(也被稱為“啟發式(heuristic)”)進行優化。在至少一個實施例中,可實現一種或多種效果,包括但不限於關於具有失效位元的記憶體是否可修復的快速決定和/或早期決定、修復盡可能多的弱位元、相對於其他弱位元優先修復最弱位元、相對於具有較低品質的另一修復資源優先分配具有較品質的修復資源、朝向用於解決CSP和/或COP的最優啟發式快速收斂。因此,在一個或多個實施例中,記憶體修復的時間和/或品質會得到改善。
圖1A是根據一些實施例的記憶體100的示意性方塊圖。
在至少一個實施例中,記憶體100是各別的記憶體或獨立的記憶體。在一些實施例中,包括記憶體100作為較大積體電路裝置的一部分,這較大積體電路裝置包括除記憶體100之外的用於其他功能的電路系統。舉例來說,至少一個實施例中的記憶體100是系統晶片(system-on-chip,SOC)積體電路裝置中的嵌入式記憶體。記憶體100的範例包括但不限於非揮發性記憶體、非揮發性可再程式化記憶體、隨機存取記憶體(random access memory,RAM)等。
記憶體100包括多個記憶體單元MC及電耦接到記憶體單元MC且被配置成控制記憶體單元MC的操作的記憶體控制器(例如控制電路)102,所述操作包括但不限於讀取操作、寫入操作(或程式操作)等。在本文中每一記憶體單元MC也被稱為“位元(bit)”。用語“位元”是為了簡潔起見且未必指示每一記憶體單元MC的儲存能力。在一些實施例中,每一記憶體單元MC被配置成儲存資料位元。在一個或多個實施例中,每一記憶體單元MC被配置成儲存多個資料位元。
記憶體單元MC在記憶體陣列104中排列成多個列及多個行。記憶體100還包括沿著行延伸的多條字線(word lines)(也被稱為“位址線”)WL_0到WL_M以及沿著記憶體單元MC的列延伸的多條位元線(bit lines)(也被稱為“資料線”)BL_0到BL_N。記憶體單元MC中的每一者透過字線中的至少一者及位元線中的至少一者電耦接到記憶體控制器102。在一些示例性操作中,字線被配置成用於傳送將從其中讀取的記憶體單元MC的位址或者用於傳送將寫入到其中的記憶體單元MC的位址等。在至少一個實施例中,一組字線被配置成作為讀取字線及寫入字線二者執行。位元線的範例包括用於傳送從由對應的字線指示的記憶體單元MC讀取的資料的讀取位元線、用於傳送將寫入到由對應的字線指示的記憶體單元MC的資料的寫入位元線等。在至少一個實施例中,一組位元線被配置成作為讀取位元線及寫入位元線二者執行。在本文中字線通常被稱為WL,且在本文中位元線通常被稱為BL。記憶體陣列104中的字線和/或位元線的各種數目處於各種實施例的範圍內。
記憶體100還包括記憶體單元MC的一個或多個冗餘(redundant)行106以及記憶體單元MC的一個或多個冗餘列108,以對記憶體陣列104中的失效位元和/或弱位元進行修復。每一冗餘行106中的記憶體單元MC耦接到冗餘WL,如圖1A中的WL_R代表性地指示。每一冗餘列108中的記憶體單元MC耦接到冗餘BL,如圖1A中的BL_R代表性地示出。為簡潔起見,在本文中“冗餘WL”或“冗餘字線”指冗餘行106且不僅包括字線還包括與字線耦接的記憶體單元MC。相似地,在本文中“冗餘BL”或“冗餘位元線”指冗餘列108且不僅包括位元線還包括與位元線耦接的記憶體單元MC。冗餘字線106及冗餘位元線108可分配用於對記憶體陣列104中的失效位元和/或弱位元進行修復,且在本文中被稱為修復資源。在一些實施例中,冗餘字線106被分配用於行修復且冗餘位元線108被分配用於列修復。在至少一個實施例中,透過使用冗餘字線的行修復或者使用冗餘位元線的列修復來對位元進行修復是足夠的。記憶體100中的冗餘字線106和/或冗餘位元線108的各種數目處於各種實施例的範圍內。在一些實施例中,冗餘字線106的數目和/或冗餘位元線108的數目取決於記憶體陣列104的大小和/或用於製造記憶體的製造程序。舉例來說,隨著記憶體陣列104的大小變得更大,記憶體100中包括更多的冗餘字線106和/或冗餘位元線108。作為另一範例,在製造程序具有較高良率的情況下,可降低冗餘字線106的數目和/或冗餘位元線108的數目。相比之下,在製造程序具有較低良率的情況下,記憶體100中包括更多的冗餘字線106和/或冗餘位元線108。
記憶體100還包括修復暫存器110,以用於儲存如本文中所闡述的將由記憶體控制器102存取的修復資訊。
圖1B是示出根據一些實施例的記憶體中的示例性修復資源部署規則的示意圖。
在一些實施例中,記憶體(例如記憶體100)被劃分成一定數目的區段或區塊(在本文中也被稱為“記憶體區塊”)。在圖1B中的示例性配置中,記憶體的記憶體陣列具有從字線WL 0到字線WL 1023的1024條字線,且所述1024條字線被劃分成8個區段或區塊,每一區段或區塊具有128條字線。舉例來說,區塊0包括字線WL 0到WL 127,區塊1包括字線WL 128到WL 255等等。每一區塊還包括可分配用於對同一區塊中的記憶體單元或位元進行修復的一定數目的冗餘字線。舉例來說,區塊0包括通常被指定為116且排列在字線WL 127與字線WL 128之間的8條冗餘字線,區塊1包括通常被指定為126且排列在字線WL 255與字線WL 256之間的8條冗餘字線等等。在一些實施例中,一個區塊中的冗餘字線不可分配用於對其他區塊中的記憶體單元或位元進行修復。舉例來說,冗餘字線116可分配用於對區塊0中的記憶體單元或位元進行修復,但不可分配用於對其他區塊中的記憶體單元或位元進行修復。
在一些實施例中,記憶體的位元線被劃分成一定數目的區段或區塊。在範例(未示出)中,記憶體陣列具有被劃分成8個區段或區塊的512條位元線,每一區段或區塊具有64條位元線及4條冗餘位元線。因此,記憶體被劃分成64個區塊。在此範例中,區塊0、區塊1等中的每一者包括128條字線、64條位元線、8條冗餘字線及4條冗餘位元線。在至少一個實施例中,一個區塊中的冗餘字線及冗餘位元線不可分配用於對其他區塊中的記憶體單元或位元進行修復。所闡述的在每一區塊中具有區塊、字線、位元線、冗餘字線及冗餘位元線的各種具體數目的配置僅為範例。其他配置也處於各種實施例的範圍內。在至少一個實施例中,記憶體未被劃分成記憶體區塊,即記憶體被配置成包括單個記憶體區塊。
圖2是根據一些實施例的用於對記憶體進行測試及修復的系統200的示意圖。在圖2中的示例性配置中,將被測試及修復的記憶體是記憶體100。
系統200包括記憶體測試裝置210及計算裝置220。記憶體測試裝置210包括測試電路系統212、測試結果儲存裝置214及修復電路系統216。在至少一個實施例中,測試電路系統212或修復電路系統216中的至少一者包括應用專用積體電路(application specific integrated circuit,ASIC),且測試結果儲存裝置214包括暫存器。計算裝置220包括處理器222及非暫時性電腦可讀儲存媒體224。針對圖5對根據一些實施例的計算裝置220的示例性硬體計算平臺進行闡述。
測試電路系統212被配置成對記憶體100執行一個或多個記憶體測試。在一些實施例中,測試電路系統212被配置成在所述一個或多個記憶體測試期間產生位址序列及測試資料序列並將位址序列及測試資料序列提供到記憶體100的記憶體陣列104。在至少一個實施例中,根據測試圖案(pattern)演算法產生位址序列及資料序列。在至少一個實施例中,測試圖案演算法內建在測試電路系統212中。資料序列提供一組資料來檢測記憶體陣列104內的各種類型的故障或錯誤。在至少一個實施例中,測試電路系統212被配置成逐行、逐列或以兩者的組合對記憶體陣列104進行掃描,以對整個記憶體陣列104進行測試。在至少一個實施例中,冗餘字線106及冗餘位元線108也由測試電路系統212在所述一個或多個記憶體測試中進行測試。
測試結果儲存裝置214被配置成儲存或記錄由測試電路系統212執行的所述一個或多個記憶體測試的測試結果。舉例來說,測試電路系統212被配置成將在記憶體測試中的一者中出現錯誤的位元的位址或位置寫入到測試結果儲存裝置214中。在一些實施例中,具有錯誤的位元的位址或位置包括指示耦接到這位元的字線及位元線的資訊。在至少一個實施例中,測試電路系統212被配置成將與錯誤相關的附加資訊(例如,弱位元的弱級)寫入到測試結果儲存裝置214中。
計算裝置220耦接到記憶體測試裝置210,以使處理器222能夠從測試結果儲存裝置214存取、提取或接收測試結果。在至少一個實施例中,計算裝置220經由通訊連接埠或網路耦接到記憶體測試裝置210。如本文中所述,其他配置也處於各種實施例的範圍內。
在一些實施例中,基於從記憶體測試裝置210提取的測試結果,處理器222被配置成判斷記憶體100是否可修復,且反應於判斷出記憶體100可修復而確定如何分配記憶體100中的用於對記憶體100進行修復的可用的修復資源。在至少一個實施例中,處理器222被配置成透過解決CSP和/或COP來進行此種判斷中的一者或多者,如在226處示意性地指示。本文中針對圖4給出對CSP和/或COP的詳細說明。
在一些實施例中,處理器222還被配置成執行機器學習(machine learning,ML),如在228處示意性地指示。在圖2中的示例性配置中,用於機器學習的資料儲存在儲存媒體224上的ML資料庫230中。機器學習的結果由處理器222以機器學習(machine learned,ML)函數232的形式產生且儲存在儲存媒體224中。處理器222被配置成使用ML函數232來應用機器學習的結果,以加速判斷出記憶體100是否可修復和/或對CSP和/或COP的啟發式進行優化。在本文中針對圖4給出對機器學習的詳細說明。
在一些實施例中,處理器222還被配置成向修復電路系統216提供修復資訊,以對記憶體100中的一個或多個位元進行修復。舉例來說,修復資訊包括記憶體100中的將被修復的位元的修復地址或位置以及被分配用於對這位元進行修復的冗餘字線和/或冗餘位元線的對應的位址。修復電路系統216被配置成透過在記憶體100的修復暫存器110中記錄從處理器222接收的修復資訊中的位址來對這位元進行修復。當記憶體100稍後在讀取操作或寫入操作中運行時,記憶體控制器102被配置成對照儲存在修復暫存器110中的修復位址來檢查讀取位址或寫入位址,以驗證對讀取位址或寫入位址是否包括在修復暫存器110中。反應於肯定答案,記憶體控制器102被配置成基於被分配用於這修復的冗餘字線和/或冗餘位元線的這對應的位址來執行讀取操作或寫入操作。所闡述的配置僅為範例。其他配置也處於各種實施例的範圍內。
在一些實施例中,例如是如圖2中所示,記憶體測試裝置210是外部自動化測試裝置,這外部自動化測試裝置耦接到記憶體100的輸入/輸出(input/output,I/O)接腳(未示出),以對記憶體100執行一個或多個記憶體測試。當將執行記憶體100的一個或多個位元的修復時,記憶體測試裝置210被配置成將修復資訊寫入到記憶體100的修復暫存器110中,以在這修復之後由記憶體控制器102存取。在記憶體測試和/或修復結束後,記憶體測試裝置210與記憶體100在實體上斷連及電斷連。
在一些實施例中,記憶體測試裝置210的一個或多個電路系統和/或元件被配置為記憶體100的一部分。舉例來說,在至少一個實施例中,記憶體測試裝置210作為內置自測試(built-in self-test,BIST)電路、內置自修復(built-in self-repair,BISR)電路、或者BIST電路及BISR電路二者而包括在記憶體100中。
在一些實施例中,計算裝置220的一個或多個元件包括在作為外部自動化測試裝置的記憶體測試裝置210中。舉例來說,在至少一個實施例中,處理器222包括在記憶體測試裝置210中。另舉例來說,在至少一個實施例中,處理器222及儲存媒體224二者均包括在記憶體測試裝置210中。
在一些實施例中,處理器222不被配置成執行機器學習。取而代之的是,機器學習由另一處理器(未示出)執行且機器學習的結果(例如,ML函數232)被提供到處理器222(例如,經由網路)且儲存在儲存媒體224中以供處理器222實施。在至少一個實施例中,跨越多個記憶體測試及修復系統分享機器學習的結果。在一個或多個實施例中,被配置成執行機器學習的處理器包括在伺服器(例如,雲伺服器)中。
在一些實施例中,用於機器學習的ML資料庫230不儲存在儲存媒體224中和/或計算裝置220處。取而代之的是,用於機器學習的ML資料庫230儲存在單獨的計算裝置處,這單獨的計算裝置經由網路耦接到計算裝置220和/或耦接到被配置成執行機器學習的處理器。在至少一個實施例中,由從多個記憶體測試及修復系統提供的資料對ML資料庫230進行更新。在一個或多個實施例中,在伺服器(例如,雲伺服器)中對ML資料庫230進行維護。
圖3A到圖3E是根據一些實施例的記憶體區塊300的示意圖,示意圖示出至少一個記憶體測試的測試結果。在至少一個實施例中,記憶體區塊300對應於記憶體100中的區塊。
記憶體區塊300包括用於儲存資料的功能記憶體單元的記憶體陣列304。記憶體區塊300還包括冗餘記憶體單元的冗餘行306及冗餘列308,以用於對記憶體陣列304中的失效位元和/或弱位元進行修復,例如針對圖1A到圖1B所述。在至少一個實施例中,功能記憶體單元及冗餘記憶體單元以相同的方式進行配置。冗餘行306及冗餘列308被配置成對用於修復記憶體陣列304的資源進行修復。記憶體陣列304包括m 條字線及n 條位元線。冗餘行306包括m’ 條冗餘字線,且冗餘列308包括n’ 條冗餘位元線。記憶體區塊300的字線由xi 指示,其中i = 1、2、...、m 。記憶體區塊300的位元線由yj 指示,其中j = 1、2、...、n 。記憶體區塊300的冗餘字線由x’i' 指示,其中i' = 1、2、...、m’ 。記憶體區塊300的冗餘位元線由y’j’ 指示,其中j’ = 1、2、...、n’ 。記憶體區塊300中的位元或記憶體單元的位置由耦接到這位元的對應的位元線或冗餘位元線以及對應的字線或冗餘字線指示。舉例來說,記憶體陣列304中的功能記憶體單元Bit_i,j耦接到字線xi 及位元線yj 且具有被界定為(xi ,yj )的位置。冗餘行306中的冗餘記憶體單元Bit_i’,j耦接到冗餘字線x’i' 及位元線yj 且具有被界定為(x’i' ,yj )的位置。冗餘列308中的冗餘記憶體單元Bit_i,j’耦接到字線xi 及冗餘位元線y’j’ 且具有被界定為(xi ,y’j’ )的位置。在圖3A到圖3E中的示例性配置中,m =n = 4、m’ =n’ = 2,字線是x1 x2 x3 x4 ,位元線是y1 y2 y3 y4 ,冗餘字線是x’1 x’2 ,且冗餘位元線是y’1 y’2 。記憶體區塊300中的字線、位元線、冗餘字線和/或冗餘位元線的其他數目也處於各種實施例的範圍內。
在一些實施例中,對包括記憶體區塊300的記憶體執行一個或多個記憶體測試,且記錄記憶體區塊300的測試結果,例如針對圖2所述。記憶體陣列304中的功能記憶體單元及冗餘行306及冗餘列308中的冗餘記憶體單元二者均經受一個或多個記憶體測試。在範例中,相同的位址序列及相同的測試資料序列由測試電路系統212在多次運行中提供到記憶體區塊300,且在每一次運行中記憶體區塊300中出現的錯誤記錄在測試結果儲存裝置214中。錯誤的範例是寫入到位元的資料與從這位元讀取的資料不同。錯誤的另一範例是當從位元讀取時,這位元的讀取電流不夠低或不夠高,使得難以或不可能判斷出這位元儲存的是邏輯“0”還是邏輯“1”。其他類型的錯誤也處於各種實施例的範圍內。例如由處理器222對一次運行中出現的錯誤與其他運行中的錯誤進行比較,以判斷在若干次運行中是否在同一位置處持續存在錯誤和/或在一次運行中是否在隨機位置處出現錯誤,但在其他運行中卻沒有。同一位置處的持續錯誤對應於失效位元。隨機錯誤對應於弱位元。
圖3A到圖3D示出在至少一個記憶體測試的四次不同運行中在記憶體區塊300中出現的錯誤。為簡潔起見,在圖3B到圖3D中省略冗餘行306及冗餘列308。在圖3A到圖3D中可看出,在多次運行中在Bit_1,1、Bit_3,3、Bit_3,4、Bit_4,3處持續存在錯誤,Bit_1,1、Bit_3,3、Bit_3,4、Bit_4,3被確定為失效位元且在圖3A到圖3E中由標記“X”示意性地指示。在此具體範例中,冗餘行306及冗餘列308中不存在失效位元。在至少一個實施例中,記憶體陣列304中的失效位元將被修復。冗餘行306及冗餘列308中的失效位元不被修復,而是用於確定可用修復資源,如本文中所述。在與圖3B到圖3D對應的運行中在Bit_1,2處出現錯誤,但在與圖3A對應的運行中未出現錯誤。因此,如圖3B到圖3D中所示的Bit_1,2被確定為弱位元。相似地,如圖3C到圖3D中所示的Bit_2,4及如圖3D中所示的Bit_4,1被確定為弱位元。在此具體範例中,如圖3E中所示,在與圖3B到圖3D對應的運行中的一者或多者中發現冗餘行306中的弱位元Bit_1’,2、Bit_2’,3,且在與圖3B到圖3D對應的運行中的一者或多者中發現冗餘列308中的弱位元Bit_1,1’、Bit_3,2’。在至少一個實施例中,在對記憶體陣列304中的失效位元進行修復之後,當修復資源可用時,對記憶體陣列304中的弱位元進行修復。冗餘行306及冗餘列308中的弱位元不被修復,而是用於確定可用修復資源的品質,如本文中所述。由於冗餘行及冗餘列中的失效位元及弱位元將不被修復,因此應理解,當記憶體區塊中的失效位元或弱位元在本文中被闡述為被修復或可修復時,被修復或可修復的失效位元或弱位元對應於記憶體區塊的記憶體陣列中的位元或功能記憶體單元。
在至少一個實施例中,儘管測試電路系統212在多次運行中向記憶體區塊300提供相同的位址序列及相同的測試資料序列,然而每次運行中的測試條件(也被稱為測試標準)不同於其他運行。舉例來說,在與圖3A對應的運行中,用於在記憶體區塊300的位元中寫入測試資料而向這位元提供的寫入電壓足夠高,例如等於或略高於記憶體區塊300被配置成在正常操作中運行的規範(nominal)寫入電壓。寫入電壓在與圖3B對應的運行中降低,在與圖3C對應的運行中進一步降低,且在與圖3D對應的運行中處於最低可接受電壓電平。在範例中,最低可接受電壓電平低於規範寫入電壓且是記憶體區塊300仍被期望可運行的電壓電平,但記憶體區塊300在此電壓電平下的延長操作不是預期的或期望的。在至少一個實施例中,寫入電壓的最低可接受電平對應於最嚴格的測試標準。其他測試標準和/或如何使測試標準嚴格也處於各種實施例的範圍內。在圖3A到圖3D中的範例中,在多次運行中在失效位元Bit_1,1、Bit_3,3、Bit_3,4、Bit_4,3中持續存在錯誤。當測試標準稍微嚴格時,在弱位元Bit_1,2處首先出現錯誤,如圖3B中所示。當測試標準進一步嚴格時,弱位元Bit_1,2處的此種錯誤再次出現的機率很高,如圖3C到圖3D中所示。相似地,當測試標準嚴格時,在弱位元Bit_2,4處首先出現錯誤,如圖3C中所示。當測試標準進一步嚴格時,Bit_2,4處的此種錯誤再次出現,如圖3D中所示。
隨著寫入電壓降低,成功地將測試資料寫入到記憶體區塊300中變得更加困難,尤其是在弱位元處。在較高寫入電壓下出現的弱位元對應於弱位元的較低品質或弱位元的較高弱級。在較低寫入電壓下出現的弱位元對應於弱位元的較高品質或弱位元的較低弱級。在一些實施例中,例如由處理器222根據弱位元的弱級將不同的優先順序或權重分配給弱位元。舉例來說,弱級越高,被分配給弱位元的權重就越高。在一些實施例中,權重可為任何正數。用於確定弱位元的弱級的其他排列也處於各種實施例的範圍內。
在圖3B到圖3D中的範例中,弱位元Bit_1,2在比弱位元Bit_2,4、Bit_4,1高的寫入電壓下出現且具有比弱位元Bit_2,4、Bit_4,1的弱級高的弱級。弱位元Bit_4,1在比弱位元Bit_1,2、Bit_2,4低的寫入電壓下出現且具有比弱位元Bit_1,2、Bit_2,4的弱級低的弱級。弱位元Bit_2,4具有介於弱位元Bit_1,2的弱級與Bit_4,1的弱級之間的弱級。處理器222被配置成根據弱位元的弱級而將不同的權重W12 、W24 、W41 對應地分配給弱位元Bit_1,2、Bit_2,4、Bit_4,1。舉例來說,W12 > W24 > W41 。相似地,處理器222被配置成根據這些弱位元的弱級而將不同的權重W1’2 、W2’3 、W11’ 、W32’ 對應地分配給弱位元Bit_1’,2、Bit_2’,3、Bit_1,1’、Bit_3,2’。在至少一個實施例中,處理器222被配置成使用相同的標準和/或演算法來將權重分配給記憶體陣列304中的弱位元及冗餘行306、冗餘列308中的弱位元。弱位元Bit_1,2、Bit_2,4、Bit_4,1、Bit_1’,2、Bit_2’,3、Bit_1,1’、Bit_3,2’由圖3B到圖3E中對應的權重W12 、W24 、W41 、W1’2 、W2’3 、W11’ 、W32’ 示意性地指示。
圖3E示意性地示出包括失效位元Bit_1,1、Bit_3,3、Bit_3,4、Bit_4,3的失效位元圖案以及包括弱位元Bit_1,2、Bit_2,4、Bit_4,1、Bit_1’,2、Bit_2’,3、Bit_1,1’、Bit_3,2’的弱位元圖案。在一些實施例中,由測試電路系統212輸出和/或記錄在測試結果儲存裝置214中的測試結果包括記憶體測試的每次運行的錯誤,如圖3A到圖3D中示意性地示出。處理器222被配置成從圖3A到圖3D中的測試結果提取失效位元圖案和/或弱位元圖案,如圖3E中所示。失效位元圖案或弱位元圖案包括記憶體區塊中的至少一個失效位元或至少一個弱位元的位置。在至少一個實施例中,失效位元圖案或弱位元圖案由記憶體區塊中的所有失效位元或所有弱位元的位置(xi ,yj )、(x’i' ,yj )、(xi ,y’j’ )表示。舉例來說,圖3E中的失效位元圖案由所有失效位元Bit_1,1、Bit_3,3、Bit_3,4、Bit_4,3的位置(x1 ,y1 )、(x3 ,y3 )、(x3 ,y4 )、(x4 ,y3 )表示,且圖3E中的弱位元圖案由所有弱位元Bit_1,2、Bit_2,4、Bit_4,1、Bit_1’,2、Bit_2’,3、Bit_1,1’、Bit_3,2’的位置(x1 ,y2 )、(x2 ,y4 )、(x4 ,y1 )、(x’1’ ,y2 )、(x’2’ ,y3 )、(x1 ,y’1’ )、(x3 ,y’2’ )表示。
圖4是根據一些實施例的對記憶體進行修復的方法400的流程圖。在至少一個實施例中,被修復的記憶體對應於記憶體100。在以下說明中詳述的一些實施例中,執行方法400以對記憶體中的記憶體區塊進行修復,且以相似的方式對記憶體的其他記憶體區塊進行修復。在至少一個實施例中,將被修復的記憶體區塊對應於記憶體區塊300。在一個或多個實施例中,在系統200中執行方法400。在一些實施例中,方法400至少部分地由處理器(例如處理器222)執行。
在操作402處,取得至少一個記憶體測試的測試結果。舉例來說,如針對圖2所述,由測試電路系統212執行至少一個記憶體測試,且將測試結果記錄在測試結果儲存裝置214中,以供處理器222存取或傳送到處理器222。在至少一個實施例中,首先執行將對記憶體區塊進行的所有記憶體測試,且在方法400開始時將完整的測試結果提供到處理器222。在至少一個實施例中,將要進行的記憶體測試與方法400中的一個或多個操作同時執行或者反應於方法400中的一個或多個操作而執行。
在操作404處,從所述至少一個記憶體測試的測試結果取得記憶體區塊中的失效位元的數目(也被稱為“失效位元數目”)。舉例來說,基於至少一個記憶體測試的若干次運行的測試結果,處理器222被配置成辨識記憶體區塊300中的失效位元及失效位元的數目,如針對圖3A到圖3D所述。在至少一個實施例中,失效位元的數目包括記憶體陣列304中的失效位元,但不包括冗餘行306、冗餘列308中的失效位元。在圖3A到圖3D中的範例中,記憶體區塊300中的失效位元的數目是4。
在操作406處,判斷記憶體區塊中的失效位元的數目是否低於或等於預定門檻值(界限)。反應於否定判斷(來自操作406的否(No)),所述流程繼續進行到操作408。反應於肯定判斷(來自操作406的是(Yes)),所述流程繼續進行到操作410。舉例來說,處理器222將在操作404處取得的失效位元的數目與預定門檻值進行比較。預定門檻值是記憶體區塊中的失效位元的可接受最大數目,超過所述門檻值則認為記憶體或記憶體區塊的品質不足。在一些實施例中,失效位元的可接受最大數目取決於用於製作記憶體的製造程序的目標良率。舉例來說,在製造程序具有較高目標良率的情況下,失效位元的可接受最大數目較低,且在製造程序具有較低目標良率的情況下,失效位元的可接受最大數目較高。在至少一個實施例中,記憶體區塊中的失效位元的可接受最大數目取決於記憶體區塊的大小。舉例來說,較大的記憶體區塊具有較高的失效位元的可接受最大數目。在一些實施例中,失效位元的可接受最大數目還取決於記憶體區塊的可分配修復資源。舉例來說,具有較大可分配修復資源的記憶體區塊具有較高的失效位元的可接受最大數目。
在操作408處,反應於在操作406處判斷出記憶體區塊中的失效位元的數目高於預定門檻值,將記憶體區塊標記為不可修復或者將整體的記憶體拒絕。在至少一個實施例中,處理器222被配置成控制記憶體測試裝置210將記憶體區塊標記為不可修復或拒絕記憶體。在一些實施例中,將記憶體區塊標記為不可修復包括在修復暫存器110中記錄具有比預定門檻值高的失效位元的數目的記憶體區塊不可修復,且接著繼續對記憶體中的另一記憶體區塊進行修復。在至少一個實施例中,可在不需要高記憶體品質的應用或裝置中使用具有一個或多個不可修復記憶體區塊的記憶體。然而,當記憶體中的不可修復記憶體區塊的數目高於可接受界限時,這記憶體被認為是有缺陷的且在實體上被丟棄。在一些實施例中,拒絕記憶體包括使得或指示被拒絕的記憶體在實體上被丟棄,而不嘗試對另一記憶體區塊進行修復。為簡潔起見,在本文中操作408也被稱為“拒絕決定”。
在至少一個實施例中,為在操作406處檢查記憶體區塊中的失效位元的數目且在操作408處檢查潛在的早期拒絕決定,不必執行計畫對記憶體區塊進行的所有記憶體測試。取而代之的是,記憶體測試的有限數目或同一記憶體測試的有限運行足以辨識記憶體區塊中的失效位元及失效位元的數目以及隨後潛在的早期拒絕決定。在一些實施例中,透過提早檢查記憶體區塊中的失效位元的數目而不等待完成所有記憶體測試後進行檢查,可節省不必要的測試和/或試圖對具有過多失效位元數目的記憶體區塊進行修復所花費的時間和/或資源。
在操作410處,反應於在操作406處判斷出記憶體區塊中的失效位元的數目不高於預定門檻值,從至少一個記憶體測試的測試結果提取失效位元的失效位元圖案,且取得可分配用於修復記憶體區塊的可用修復資源。在至少一個實施例中,失效位元圖案包括記憶體區塊中的將被修復的至少一個失效位元的位置。舉例來說,如針對圖3E中的範例所述,由處理器222從針對圖3A到圖3D中的範例闡述的測試結果提取包括失效位元Bit_1,1、Bit_3,3、Bit_3,4、Bit_4,3的位置的失效位元圖案。
可分配用於修復記憶體區塊的修復資源包括被分配給記憶體區塊或包括在記憶體區塊中的冗餘字線的數目及冗餘位元線的數目,如針對圖1B或圖3A所述。然而,存在其中被分配給記憶體區塊或包括在記憶體區塊中的修復資源並非完全可用於修復記憶體區塊的情況。舉例來說,被分配給記憶體區塊的冗餘字線或冗餘位元線中可能具有一個或多個錯誤,所述一個或多個錯誤阻止冗餘字線或冗餘位元線可靠地用於修復記憶體區塊。如本文中所述,透過所述至少一個記憶體測試可發現冗餘字線或冗餘位元線中的此種錯誤,所述至少一個記憶體測試被應用於對記憶體陣列以及記憶體區塊中的修復資源二者進行測試。透過例如使用處理器222從被分配給記憶體區塊的冗餘字線的數目及冗餘位元線的數目移除具有錯誤的任何冗餘字線或冗餘位元線,從而取得實際上可用於修復記憶體區塊的冗餘字線的數目和/或冗餘位元線的數目。在本文中實際上可用於修復記憶體區塊的冗餘字線的數目和/或冗餘位元線的數目被稱為可用修復資源。在一些實施例中,從可用修復資源移除具有失效位元的冗餘字線或冗餘位元線。在一個或多個實施例中,冗餘字線或冗餘位元線中存在一個或多個弱位元不會使冗餘字線或冗餘位元線從可用修復資源移除。舉例來說,如圖3E中所示,冗餘字線x’1 x’2 及冗餘位元線y’1 y’2 具有弱位元,但仍包括在可用修復資源中。然而,冗餘字線或冗餘位元線中存在具有較高權重(較低品質)的弱位元指示冗餘字線或冗餘位元線具有比不具有弱位元或具有較低權重(較高品質)的弱位元的另一冗餘字線或冗餘位元線低的品質。在一些實施例中,相對於具有較低品質的冗餘字線或冗餘位元線,優先分配具有較高品質的冗餘字線或冗餘位元線用於修復。在至少一個實施例中,取得可分配用於修復記憶體區塊的可用修復資源和/或確定可用修復資源中的一個或多個弱位元的存在和/或品質會考慮修復資源的品質,此會改善本文中所闡述的進一步操作的準確性。在一些實施例中,所述流程從操作410繼續進行到操作412。舉例來說,如本文中所述,當實施機器學習時,所述流程從操作410繼續進行到操作412。在一些實施例中,所述流程從操作410繼續進行到操作416。舉例來說,如本文中所述,當未實施機器學習時,所述流程從操作410繼續進行到操作416。
在操作412處,將所提取的失效位元圖案及可用修復資源輸入到透過機器學習(ML)取得的函數中,以檢查失效位元圖案是否不可修復。在至少一個實施例中,此函數對應於透過對儲存在ML資料庫230中的資料執行機器學習而取得的ML函數232。ML資料庫230中的資料包括大量不可修復位元圖案及對應的可用修復資源。鑒於對應的可用修復資源,不可修復位元圖案中的每一者先前被確定或標記為不可修復。在一些實施例中,ML資料庫230中的資料是在由本文中所述的方法400執行的資料收集流程中從不可解決的CSP收集的。在至少一個實施例中,ML資料庫230中的資料的至少一部分是從其他來源提供的,例如自動地和/或由人類專家產生和/或標記的訓練資料。在一些實施例中,在機器學習中存在兩個主要階段,即學習階段及實施階段。
在學習階段中,由處理器222或另一處理器執行機器學習,以從ML資料庫230中的大量資料學習不可修復位元圖案的一個或多個區別特徵和/或不可修復位元圖案與對應的可用修復資源之間的一種或多種相關性,這可用修復資源先前被確定為不足以成功修復不可修復位元圖案。學習階段的結果包括ML函數232。在一些實施例中,機器學習包括監督學習。其他機器學習技術也處於各種實施例的範圍內,且包括但不限於無監督學習、半監督學習、強化學習、Q學習、深度學習等。在至少一個實施例中,在神經網路中實施機器學習。
在操作412處的實施階段中,例如由處理器222執行ML函數232,以慮及失效位元圖案本身及對應的可用修復資源來檢查在操作410處提取的失效位元圖案是否不可修復,失效位元圖案及對應的可用修復資源二者均被輸入到ML函數232中。在至少一個實施例中,被輸入到ML函數232中的失效位元圖案包括記憶體陣列的大小及記憶體陣列中的所有失效位元的位置,如針對圖3E所述。被輸入到ML函數232中的可用修復資源包括實際可用於修復記憶體區塊的冗餘字線和/或冗餘位元線的數目。基於輸入資訊,ML函數232根據在學習階段從ML資料庫230中的大量資料學習到的區別特徵和/或相關性而輸出失效位元圖案是否不可修復的判斷。ML資料庫230中的資料的數量越大,ML函數232關於輸入的失效位元圖案的不可修復性的判斷就越準確。
在操作414處,考慮關於在操作410處提取的失效位元圖案的不可修復性的ML函數232的判斷。反應於ML函數232判斷出失效位元圖案不可修復(來自操作414的是),這流程繼續進行到操作408。反應於ML函數232判斷出失效位元圖案可修復(來自操作414的否),這流程繼續進行到操作416。在一些實施例中,操作414處的否定判斷(來自操作414的否)意指ML函數232不返送回失效位元圖案不可修復的結論性判斷。在至少一個實施例中,操作414由處理器222執行。
在至少一個實施例中,透過在方法400的早期階段(即,在嘗試解決如針對操作416闡述的CSP之前)使用ML函數232來檢查所提取的失效位元圖案的不可修復性,在一些實施例中可節省在對原本不可修復的失效位元圖案進行修復的不必要的嘗試中的時間和/或計算資源。
在操作416處,針對所提取的失效位元圖案將CSP公式化。CSP包含多個CSP約束,解決方案(如果存在)必須滿足這多個CSP約束。CSP約束對應於記憶體區塊中的失效位元的位置及可用修復資源。在一些實施例中,操作416由處理器222執行。
在至少一個實施例中,CSP包括以下CSP約束:
Figure 02_image001
(1)
Figure 02_image003
(2)
Figure 02_image005
(3) 其中m 是記憶體區塊中的字線的數目,n 是記憶體區塊中的位元線的數目,h 是記憶體區塊中的將被修復的失效位元的數目,如由一個或多個記憶體測試進行辨識,xrepair resource 是可用於修復記憶體區塊的冗餘字線的數目(即,在不具有失效位元的情況下冗餘字線的數目),yrepair resource 是可用於修復記憶體區塊的冗餘位元線的數目(即,在不具有失效位元的情況下冗餘位元線的數目),xi 是0或1且對應於m 條字線之中的第i 字線,xi = 0對應於第i 字線由冗餘字線中的一者進行修復(或替換),且xi = 1對應於第i 字線不被修復,yj 是0或1且對應於n 條位元線之中的第j 位元線,yj = 0對應於第j 位元線由冗餘位元線中的一者進行修復(或替換),且yj = 1對應於第j 位元線不被修復,xi_k 是與耦接到h 個失效位元之中的第k 失效位元的字線對應的xi ,且yj_k 是與耦接到第k 失效位元的位元線對應的yj
CSP約束(1)意指被修復的字線的數目(即,被賦值0的xi 的數目)不能高於可用冗餘字線的數目。CSP約束(2)意指被修復的位元線的數目(即,被賦值0的yj 的數目)不能高於可用冗餘位元線的數目。CSP約束(3)意指必須修復所有失效位元,即對於每個第k 失效位元,xi_k yj_k 中的至少一者應為0(即,每一失效位元必須由冗餘字線或冗餘位元線進行修復)。CSP的公式化包括CSP約束的公式化。所闡述的CSP約束(1)、(2)、(3)僅為範例。其他CSP約束也處於各種實施例的範圍內。
CSP的解決方案包括對每一個xi yj 進行一組1或0的賦值。這解決方案還必須滿足所有CSP約束,例如本文中所述的CSP約束(1)、(2)、(3)。CSP是可解決的(或可滿足的),即具有解決方案(即,對每一個xi yj 進行1或0的完整且一致的賦值)意指記憶體區塊的記憶體陣列中的所有失效位元可由可用修復資源進行修復。例如由處理器222使用CSP的解決方案分配可用修復資源以對記憶體區塊的記憶體陣列中的所有失效位元進行修復且產生將記錄在修復暫存器110中的對應的修復資訊。舉例來說,對於解決方案中的每一xi = 0,分配可用冗餘字線中的一者來修復第i 字線,且對於解決方案中的每一yj = 0,分配可用冗餘位元線中的一者來修復第j 位元線。
在至少一個實施例中,CSP還包括至少一個將被優化的CSP目標函數。示例性CSP目標函數如下所示: 將
Figure 02_image007
Figure 02_image009
最大化 (4)。
這至少一個CSP目標函數的目的是當CSP存在多個解決方案時確定最優解決方案。舉例來說,在具有CSP目標函數(4)的一個或多個實施例中,當CSP具有兩個或更多個解決方案時,選擇實現
Figure 02_image007
Figure 02_image009
的最大值(對應於被分配用於修復所有失效位元的冗餘字線和/或冗餘位元線的最小總數目)的解決方案作為將被用於實際修復記憶體區塊的記憶體陣列中的失效位元的最終解決方案。換句話說,對CSP的解決方案進行優化以將被分配到失效位元的修復的可用修復資源的數量最小化。在一些實施例中,當沒有CSP的解決方案實現
Figure 02_image007
Figure 02_image009
二者的最大值時,依賴一個或多個另外的標準來選擇最終解決方案。作為另外一種選擇,在至少一個實施例中,在CSP的這多個解決方案之中隨機選擇最終解決方案。所闡述的CSP目標函數(4)僅為範例。其他CSP目標函數也處於各種實施例的範圍內。在至少一個實施例中,在CSP中省略CSP目標函數。
將CSP約束(1)、(2)、(3)及CSP目標函數(4)應用到圖3E中的範例,其中m =n =h = 4,針對與Bit_1,1、Bit_3,3、Bit_3,4、Bit_4,3的失效位元圖案對應的CSP取得以下CSP約束(1’)、(2’)、(3’)及CSP目標函數(4’):
Figure 02_image012
(1’)
Figure 02_image014
(2’) (x1 ·y1 )+(x3 ·y3 )+(x3 ·y4 )+(x4 ·y3 ) = 0      (3’) 將
Figure 02_image016
Figure 02_image018
最大化     (4’)。
從此具體範例可看出,CSP約束(1’)及(2’)對應於記憶體區塊中的可用修復資源,且CSP約束(3’)對應於記憶體區塊的記憶體陣列中的失效位元的位置(即,對應於失效位元圖案)。在圖3E的範例中,xrepair resource =yrepair resource = 2,即可用修復資源包括兩條冗餘字線及兩條冗餘位元線。如本文中所述,在操作418、452處使用在操作416處公式化的CSP。
在操作418處,判斷CSP是否可解決,即CSP是否具有解決方案。當實施機器學習時,這流程反應於否定判斷(來自操作418的否)繼續進行到操作408及操作420。當未實施機器學習時,這流程反應於操作418處的否定判斷繼續進行到操作408,而不繼續進行到操作420。當實施機器學習時,這流程反應於肯定判斷(來自操作418的是)繼續進行到操作422及操作424。當未實施機器學習時,這流程反應於操作418處的肯定判斷繼續進行到操作422,而不繼續進行到操作424。舉例來說,在操作418中,處理器222被配置成在試圖滿足CSP的所有CSP約束的同時對每一個xi yj 進行的0或1的賦值的所有可能組合之中搜索CSP的解決方案。在一些實施例中,處理器222被配置成執行一個或多個搜索或解決演算法(在本文中也被稱為“啟發式(heuristics)”),以試圖在預定的時間量或反覆運算次數內找到解決方案。在至少一個實施例中,設定預定的時間量或反覆運算次數,以避免不必要地或無效地延長修復流程。當在預定的時間量或反覆運算次數內找到解決方案時,處理器222判斷出CSP可解決。當在預定的時間量或反覆運算次數內未找到解決方案時,處理器222判斷出CSP不可解決。儘管在操作412、414處由ML函數232較早地判斷出失效位元圖案可修復,仍判斷出CSP不可解決被認為對應於判斷出失效位元圖案不可修復。
在操作420處,反應於在操作418處判斷出CSP不可解決(即,失效位元圖案不可修復),對包含用於機器學習的資料的ML資料庫230進行更新。舉例來說,處理器222被配置成使現在被確定為不可修復的失效位元圖案與對應的可用修復資源一起被添加到ML資料庫230。在至少一個實施例中,透過從經更新的ML資料庫230中的資料進行機器學習來更新、重新訓練或重新學習ML函數232。在一些實施例中,週期性地更新ML函數232。在一些實施例中,一旦來自不可解決CSP的新的資料被添加到ML資料庫230,便對ML函數232進行更新。在一個或多個實施例中,使用從與系統200相似的多個記憶體測試及修復系統提供的資料對ML資料庫230進行更新。
在一些實施例中,操作420對應於機器學習的學習階段的資料收集流程。具體來說,在第一次部署系統200開始時,在ML資料庫230中不存在資料或不可修復位元圖案及對應的可用修復資源的資料的數量不足。根據資料數量的此種不足進行機器學習會潛在地導致不準確的ML函數。因此,尚未執行機器學習和/或ML函數尚不可用或不可使用。在此種情況下,根據一些實施例,暫時省略與ML函數的使用相關的操作412、414,且這流程從操作410繼續進行到操作416。在判斷出失效位元圖案不可修復(由於對應的CSP不可解決)的後續操作418處,這流程繼續進行到操作420,以將不可修復失效位元圖案與對應的可用修復資源一同添加到ML資料庫230。在一個或多個實施例中,使用從與系統200相似的多個記憶體測試及修復系統提供的資料對ML資料庫230進行更新。因此,在ML資料庫230中收集或建立用於機器學習的資料。當在ML資料庫230中收集的不可修復失效位元圖案的資料及對應的可用修復資源的數量變得足以用於精確的機器學習時,處理器222或另一處理器被配置成執行機器學習以產生ML函數232。接著,如本文中所述,執行操作412、414且在操作420處對ML資料庫230和/或ML函數232進行更新。
在操作422處,反應於在操作418處判斷出CSP可解決且具有解決方案,判斷是否所有可用修復資源均已被分配用於修復記憶體區塊的記憶體陣列中的失效位元(即,是否存在任何剩餘修復資源)。反應於肯定判斷(來自操作422的是),這流程繼續進行到操作454。反應於否定判斷(來自操作422的否),這流程繼續進行到操作444。剩餘修復資源是在可用修復資源的一部分已被分配用於根據CSP的解決方案修復失效位元之後剩餘的任何可用修復資源。在一些實施例中,剩餘修復資源包括未被分配用於根據CSP的解決方案修復失效位元的可用冗餘字線的數目及可用冗餘位元線的數目。在圖3E的範例中,可用修復資源包括兩條可用冗餘字線及兩條可用冗餘位元線。假設CSP的解決方案指示兩條可用冗餘字線及一條可用冗餘位元線將被分配用於修復失效位元,則剩餘修復資源包括未被分配用於修復失效位元的剩餘的一條可用冗餘位元線。當至少一條可用冗餘字線或至少一條可用冗餘位元線保持未分配時,例如由處理器222判斷出存在剩餘修復資源,且這流程繼續進行到操作444。當沒有可用冗餘字線及可用冗餘位元線保持未分配時(即,當所有可用修復資源均已被分配用於修復失效位元時),例如由處理器222判斷出不存在剩餘修復資源,且這流程繼續進行到操作454,在操作454中,接受CSP的解決方案以分配可用修復資源來對所有失效位元進行修復。舉例來說,處理器222被配置成分配所有可用修復資源來對與在CSP的解決方案中被賦值0的xi 和/或yj 對應的字線和/或位元線進行修復。處理器222還被配置成產生將記錄在修復暫存器110中的修復資訊,如本文中所述。接著確定當前記憶體區塊的修復流程完成。
在操作424處,對用於解決CSP的啟發式進行更新。如本文中所述,處理器222被配置成執行搜索演算法(或啟發式),以試圖在預定的時間量或反覆運算次數內找到CSP的解決方案。當在預定的時間量或反覆運算次數內未找到解決方案時,處理器222判斷出CSP不可解決。在一些情況下,即使解決方案實際存在,處理器222也可將CSP判斷為不可解決。可能的原因是由於所執行的搜索演算法(或啟發式)在預定的時間量或反覆運算次數內無法找到解決方案。因此,在至少一個實施例中,考慮在多個可用啟發式之中選擇和/或優化啟發式,以縮短找到解決方案(如果確實存在)所需的時間量或減少反覆運算次數。在本文中此種啟發式選擇和/或優化被稱為啟發式更新。啟發式選擇的示例性可用啟發式包括但不限於深度優先搜索回溯演算法(depth-first search backtracking algorithm)、一個或多個變數選擇和/或排序啟發式、影響動態變數值選擇啟發式等。
在一些實施例中,操作424處的啟發式更新涉及獨立於本文中針對操作412、414、420闡述的機器學習流程的另一機器學習流程。舉例來說,每次解決CSP時,指示所使用的啟發式是有效的,將與有效啟發式相關的資訊添加到資料庫。在一些實施例中,從多個記憶體測試及修復系統提供與有效啟發式相關的資訊,以提高資料收集的速度和/或數量。基於所收集的關於有效啟發式的資料,執行機器學習(例如監督機器學習),以在這多個可用啟發式之中選擇最優啟發式。在一些實施例中,機器學習的目標是實現朝向最優啟發式快速收斂。在至少一個實施例中,最優啟發式是混合啟發式,其中在CSP解決方案搜索流程的前半部分中執行可用啟發式之中的第一啟發式,且接著在搜索流程的後半部分中將第一啟發式切換到第二啟發式。其他配置也處於各種實施例的範圍內。
在圖4中,在一個或多個實施例中,將與機器學習相關的操作(例如操作412、414、420、424)示意性地分組且在操作430處指示。
在一些實施例中,如針對操作418、422所述,在判斷出CSP可解決且具有解決方案(意指記憶體區塊的記憶體陣列中的所有失效位元均可由可用修復資源進行修復)後,下一個考慮因素是嘗試使用任何和/或所有剩餘修復資源來盡可能多和/或盡可能有效地對記憶體區塊的記憶體陣列中的弱位元進行修復。在至少一個實施例中,如何分配任何和/或所有剩餘修復資源來對弱位元進行修復的決定是透過一同解決COP與CSP來做出的。圖4示意性地示出透過一同解決CSP與COP來修復弱位元的示例性流程。其他處理流程也處於各種實施例的範圍內。
在操作444處,在操作422處的否定判斷(來自操作422的否)(意指記憶體區塊的記憶體陣列中的所有失效位元可由可用修復資源進行修復且仍剩餘可用修復資源用於對記憶體陣列的弱位元進行修復)後,判斷是否已達到最嚴格的測試標準(或最嚴的測試條件)。反應於否定判斷(來自操作444的否),這流程繼續進行到操作446。反應於肯定判斷(來自操作444的是),這流程繼續進行到操作448。
在操作446處,反應於在操作444處判斷出尚未達到最嚴格的測試標準,使測試標準變嚴格,在嚴格的測試標準下執行至少一個記憶體測試,記錄測試結果,且接著這流程返回到操作444。測試標準、測試標準變嚴格、最嚴格測試標準及測試結果的範例針對圖3A到圖3D進行闡述。其他排列也處於各種實施例的範圍內。在至少一個實施例中,執行操作444、446來收集用於辨識弱位元的測試結果。
在圖4中的示例性流程中,不執行用於辨識弱位元的一個或多個記憶體測試和/或記憶體測試的一次或多次運行,直到已判斷出所有失效位元均可修復為止。因此,在至少一個實施例中,可節省由於失效位元而不可修復的記憶體區塊中的弱位元進行不必要的測試所花費的時間和/或資源。
在一些實施例中,執行用於辨識弱位元的記憶體測試和/或記憶體測試的一次或多次運行,而不論判斷記憶體區塊是否可修復。舉例來說,提前執行將對記憶體或記憶體區塊進行的所有記憶體測試,且在操作402處提供包括用於辨識弱位元的那些測試結果在內的測試結果。在此種實施例中,例如由測試電路系統212在操作402之前執行操作444、446。操作444、446的一個或多個反覆運算與方法400中的一個或多個其他操作同時執行的其他排列也處於各種實施例的範圍內。
在操作448處,反應於在操作444處判斷出已達到最嚴格的測試標準(意指已收集到用於辨識弱位元的測試結果),從測試結果提取記憶體區塊中的弱位元的弱位元圖案。在至少一個實施例中,弱位元圖案包括記憶體區塊中的至少一個弱位元的位置。舉例來說,如針對圖3E中的範例所述,由處理器222從針對圖3A到圖3D中的範例闡述的測試結果提取弱位元圖案,這弱位元圖案不僅包括記憶體陣列304中的弱位元Bit_1,2、Bit_2,4、Bit_4,1的位置,還包括冗餘行306、冗餘列308中的弱位元Bit_1’,2、Bit_2’,3、Bit_1,1’、Bit_3,2’的位置。在一些實施例中,操作448還包括例如由處理器222根據弱位元的弱級而將各種權重分配給弱位元,如針對圖3B到圖3E所述。在其中例如用於辨識弱位元的測試結果已被較早地收集的至少一個實施例中,反應於操作418處的肯定判斷(來自操作418的是)執行操作448。
在操作450處,針對所提取的弱位元圖案將COP公式化。COP包含與CSP約束相同的多個COP約束,且還包括解決方案應優化的COP目標函數。COP約束與CSP約束相同對應於CSP對所有失效位元的完全修復的保證滿足。在至少一個實施例中,由於COP約束與CSP約束相同,因此操作450簡單地包括將至少一個COP目標函數公式化。在一些實施例中,操作450由處理器222執行。
在操作452處,解決在操作450處公式化的COP。由於COP約束與CSP約束相同,因此操作450包括一同解決CSP約束與這至少一個COP目標函數。舉例來說,提供作為在操作416處公式化的CSP的部分的CSP約束用於操作452,如圖4中所示。在解決COP時,尋求滿足所有CSP約束的解決方案,同時對這至少一個COP目標函數進行優化。在一些實施例中,操作452由處理器222執行。
在至少一個實施例中,COP包括以下COP約束,這COP約束與本文中所述的CSP約束相同,即,
Figure 02_image001
(1)
Figure 02_image003
(2)
Figure 02_image005
(3)。
COP還包括將被優化的至少一個COP目標函數,以用於確定COP的最優解決方案。在至少一個實施例中,這至少一個COP目標函數與記憶體區塊中的至少一個弱位元的位置或被分配給這至少一個弱位元的權重中的至少一者對應。COP的示例性COP目標函數如下所示: 將
Figure 02_image023
最小化  (5) 其中s 是包括記憶體陣列、冗餘行及冗餘列的記憶體區塊中的弱位元的數目,xl 是與耦接到s 個弱位元之中的第l 弱位元的字線或冗餘字線對應的xi x’i' xi x’i' 中的每一者為0或1,xi = 0對應於第i 字線由冗餘字線進行修復(或替換),xi = 1對應於第i 字線不被修復,x’i' = 0對應於第i' 冗餘字線不用於對字線進行修復,且x’i' = 1對應於第i' 冗餘字線用於對字線進行修復,yl 是與耦接到第l 弱位元的位元線或冗餘位元線對應的yj y’j’ yj y’j’ 中的每一者為0或1,yj = 0對應於第j 位元線由冗餘位元線進行修復(或替換),且yj = 1對應於第j 位元線不被修復,y’j' = 0對應於第j' 冗餘位元線不用於對位元線進行修復,且y’j' = 1對應於第j' 冗餘位元線用於對位元線進行修復,且Wl 是被分配給第l 弱位元的權重。
所闡述的COP目標函數(5)僅為範例。其他COP目標函數也處於各種實施例的範圍內。
將CSP約束(1)、(2)、(3)及COP目標函數(5)應用到圖3E中的範例,其中m =n = 4、m’ =n’ =2且s = 7,針對與包括弱位元Bit_1,2、Bit_2,4、Bit_4,1、Bit_1’,2、Bit_2’,3、Bit_1,1’、Bit_3,2’在內的弱位元圖案對應的COP取得以下CSP約束(1’)、(2’)、(3’)及COP目標函數(5’):
Figure 02_image012
(1’)
Figure 02_image014
(2’) (x1 ·y1 )+(x3 ·y3 )+(x3 ·y4 )+(x4 ·y3 ) = 0      (3’) 將W12 (x1 ·y2 ) +W24 (x2 ·y4 ) +W41 (x4 ·y1 ) +W1’2 (x’1 ·y2 ) +W2’3 (x’2 ·y3 ) +W11’ (x1 ·y’1 ) +W32’ (x3 ·y’2 )最小化           (5’)。
從此具體範例可看出,必須滿足CSP約束(1’)、(2’)、(3’),以確保記憶體陣列中所有失效位元的有保證的修復,而對COP目標函數(5’)進行優化(即,基於記憶體區塊中的弱位元的位置及權重將COP目標函數(5’)最小化),以取得如本文中這的一個或多個弱位元的最優修復。
COP的解決方案包括對每一個xi yj x’i' y’j’ 進行一組1或0的賦值且在對這至少一個COP目標函數進行優化的同時必須滿足所有CSP約束。當存在滿足所有CSP約束的多個解決方案時,這至少一個COP目標函數的目的是確定最優解決方案(對應於一個或多個弱位元的最優修復)。舉例來說,在具有COP目標函數(5)的一個或多個實施例中,當與具有最大權重Wl 的第l 弱位元對應的xl yl 中的至少一者被賦值0時,可將COP目標函數(5)最小化。在至少一個實施例中,具有最大權重的弱位元具有較高弱級或最低品質且是最弱位元。當最弱位元對應於將被修復的功能記憶體單元時,對與最弱位元對應的xl yl 賦值0意指可對具有最低品質的功能記憶體單元進行修復。當最弱位元對應於冗餘記憶體單元時,對與最弱位元對應的xl yl 賦值0意指可避免使用具有最低品質的冗餘字線或冗餘位元線進行修復。在一些實施例中,將COP目標函數(5)最小化對應於首先分配剩餘修復資源以對具有最低品質的冗餘記憶體單元進行修復,接著分配具有第二低品質的冗餘記憶體單元,且以此類推,直到所有剩餘修復資源均已被分配為止,同時在分配具有較高品質的冗餘字線或冗餘位元線之前試圖避免分配具有最低品質的冗餘字線或冗餘位元線。換句話說,基於弱位元的權重來對COP的解決方案進行優化,以相對於與具有較低權重(較高品質)的弱位元對應的另一功能記憶體單元而優先修復與具有較高權重(較低品質)的弱位元對應的功能記憶體單元,且/或相對於具有較低品質的另一冗餘字線或冗餘位元線而優先分配具有較高品質的冗餘字線或冗餘位元線。在一些實施例中,當COP的多個解決方案實現目標函數(5)的相同最小值時,依賴一個或多個另外的標準來選擇最終解決方案。作為另外一種選擇,在至少一個實施例中,在COP的這多個解決方案之中隨機選擇最終解決方案。在至少一個實施例中,包括作為在操作416處公式化的CSP的部分的一個或多個CSP目標函數(例如,CSP目標函數(4))作為在操作452處將被優化的一個或多個COP目標函數。
在至少一個實施例中,例如透過使用本文中所述的啟發式而獨立於在操作418處取得的CSP的一個或多個CSP解決方案來解決COP。
在一些實施例中,透過以下方式解決COP:接受在操作418處取得的CSP的一個或多個CSP解決方案作為COP的一個或多個潛在COP解決方案的部分,且接著在潛在COP解決方案之中搜索對這至少一個COP目標函數進行優化的最優COP解決方案。更具體來說,CSP的CSP解決方案包括對每一個xi yj 進行一組1或0的賦值,而COP的COP解決方案包括對每一個xi yj x’i' y’j’ 進行一組1或0的賦值。換句話說,CSP解決方案可為潛在COP解決方案的子集。當包括CSP解決方案作為潛在COP解決方案的一部分時,在CSP解決方案中已被賦值0的所有xi yj 在潛在COP解決方案中仍賦值0。因此,潛在COP解決方案保證滿足所有CSP約束。接著,在所有x’i' y’j’ 以及在CSP解決方案中未被賦值0的那些xi 和/或yj 之中執行這至少一個COP目標函數的優化。因此,在至少一個實施例中,與獨立於在操作418處取得的一個或多個CSP解決方案來解決COP相比,用於對這至少一個COP目標函數進行優化的計算量和/或時間減少。
在操作454處,接受在操作452處取得的最優COP解決方案,以分配可用修復資源來對記憶體陣列中的所有失效位元進行修復,且還對記憶體陣列中的一個或多個弱位元進行修復,其中賦予具有較高權重(或較低品質)的弱位元優先順序。舉例來說,處理器222被配置成分配可用修復資源(即,與在最優COP解決方案中被賦值0的x’i' 和/或y’j’ 對應的一條或多條冗餘字線和/或冗餘位元線),以對與在最優COP解決方案中被賦值0的xi 和/或yj 對應的字線和/或位元線進行修復。在一些實施例中,根據最優COP解決方案,處理器222被配置成使用已分配用於修復一個或多個失效位元的可用修復資源來對一個或多個弱位元進行修復(如果可能)。舉例來說,參照圖3E,可分配冗餘字線來對失效位元Bit_1,1以及與Bit_1,1耦接到同一字線x1 的弱位元Bit_1,2進行修復。記憶體陣列中的一個或多個弱位元可保持未被修復。舉例來說,如果沒有冗餘字線且沒有冗餘位元線可用於或可分配用於修復弱位元Bit_2,4,則弱位元Bit_2,4保持不被修復。處理器222還被配置成產生將被記錄在修復暫存器110中的修復資訊,如本文中所述。接著,確定當前記憶體區塊的修復流程完成。
在至少一個實施例中,與操作424相似的啟發式更新適用於改善在操作452處解決COP的優化流程。
在一些實施例中,修復資源的品質是記憶體修復中的考慮因素。舉例來說,如本文中所述,根據被分配到記憶體區塊的修復資源來確定可分配用於修復記憶體區塊的可用修復資源。此外,例如透過辨識在被分配到記憶體區塊的修復資源中存在一個或多個失效位元和/或弱位元和/或透過考慮被分配到記憶體區塊的修復資源中的所述一個或多個弱位元的品質(或弱級)來考慮實際可分配用於記憶體修復的修復資源的品質。因此,在一個或多個實施例中,可提高修復良率和/或修復品質。與具有約35%的修復良率的不考慮或很少考慮修復資源品質的其他方法相比,考慮修復資源品質的一些實施例使得可將修復良率提高到約88%。在至少一個實施例中,與其他方法相比,修復資源的使用也得到增加。
記憶體修復涉及確定如何分配修復資源來對記憶體或記憶體區塊中的一個或多個位進行修復。在一些實施例中,透過將修復資源配置問題公式化為約束程式(Constraint Programing,CP)問題來提供自我調整記憶體修復方法。CP問題包括用於修復失效位元的修復資源配置的約束滿足問題(CSP)及用於修復弱位元的修復資源配置的約束優化問題(COP)。基於測試結果、一個或多個修復資源部署規則及修復資源品質將CSP及COP二者公式化。COP包括CSP的CSP約束。COP還包含COP目標函數,COP目標函數是基於根據弱位元的弱級而被分配給所述弱位元的權重進行公式化。試圖解決CSP提供對是或否問題的答案:是否存在滿足所有CSP約束的至少一個解決方案,即記憶體區塊的記憶體陣列中的失效位元的失效位元圖案是否可修復。當不存在CSP的解決方案時,達成早期拒絕決定。當存在CSP的解決方案時,CSP解決方案定義如何分配可用修復資源來修復記憶體陣列中的所有失效位元。當所有可用修復資源尚未用於修復記憶體陣列中的所有失效位元時,嘗試解決COP。解決COP著重於找到最好或最優COP解決方案,所述COP解決方案定義用於分配可用修復資源的最優方式,以除對記憶體陣列中的所有失效位元進行修復之外還對記憶體陣列中的弱位元中的一者或多者進行修復。在解決COP時,首先將優先順序賦予對具有最低品質的那些弱位元進行修復和/或首先將優先順序賦予使用具有最高品質的那些冗餘字線和/或冗餘位元線。因此,在至少一個實施例中,做出早期拒絕決定,或者自我調整記憶體修復確保對記憶體陣列中的所有失效位元進行修復,同時在可用修復資源允許時盡可能多地或盡可能有效地對記憶體陣列中的弱位元進行修復。
在一些實施例中,在適當的情況下應用機器學習來達成甚至更早的拒絕決定和/或對用於解決CSP和/或COP的搜索演算法(啟發式)進行優化。因此,在至少一個實施例中,潛在拒絕決定和/或用於修復資源配置的決定在品質上被進一步加速和/或改善。
在一些實施例中,CSP或COP中的至少一者是線上CSP或線上COP,線上CSP或線上COP被配置成基於先前的修復情形來學習及適應至少一種解決策略,以針對各種記憶體類型和/或失效位元/弱位元特性來改善自身。在一個或多個實施例中,線上CSP或線上COP使得在修復流程期間在各種解決策略之間動態改變,以改善修復速度和/或效率。在至少一個實施例中,此是對離線CSP或COP的改善,離線CSP或COP傾向於從修復流程的開始到結束堅持一種解決策略。
圖5是根據一些實施例的硬體計算平臺500的方塊圖。
硬體計算平臺500包括硬體處理器502及非暫時性電腦可讀儲存媒體504。除其他事物之外,儲存媒體504編碼有(即儲存)電腦程式碼(即一組可執行指令506)。根據一個或多個實施例,硬體處理器502執行指令506使得硬體處理器502實施本文中所述的方法和/或操作的一部分或全部。
處理器502經由匯流排508電耦接到電腦可讀儲存媒體504。處理器502還透過匯流排508電耦接到輸入/輸出介面510。網路介面512也經由匯流排508電連接到處理器502。網路介面512連接到網路514,使得處理器502及電腦可讀儲存媒體504能夠經由網路514連接到外部元件。在一個或多個實施例中,處理器502是中央處理器(central processing unit,CPU)、多處理器、分散式處理系統、應用專用積體電路(ASIC)和/或合適的處理單元。
在一個或多個實施例中,電腦可讀儲存媒體504是電子、磁、光、電磁、紅外線和/或半導體系統(或裝置或裝置)。舉例來說,電腦可讀儲存媒體504包括半導體或固態記憶體、磁帶、可移動電腦軟碟、隨機存取記憶體(RAM)、唯讀記憶體(read-only memory,ROM)、硬磁碟(rigid magnetic disk)和/或光碟。在使用光碟的一個或多個實施例中,電腦可讀儲存媒體504包括緻密碟唯讀記憶體(compact disk-read only memory,CD-ROM)、緻密碟讀取/寫入(compact disk-read/write,CD-R/W)和/或數位影音光碟(digital video disc,DVD)。
在一個或多個實施例中,儲存媒體504儲存資料庫507,例如本文中所公開的ML資料庫。在一個或多個實施例中,儲存媒體504儲存如本文中所述的ML函數。
硬體計算平臺500包括輸入/輸出介面510。輸入/輸出介面510耦接到外部電路系統。在一個或多個實施例中,輸入/輸出介面510包括鍵盤、小鍵盤、滑鼠、軌跡球(trackball)、觸控板(trackpad)、觸控式螢幕和/或游標方向鍵,以用於向處理器502傳遞資訊及命令。
硬體計算平臺500還包括耦接到處理器502的網路介面512。網路介面512使得硬體計算平臺500能夠與網路514進行通信,一個或多個其他電腦系統連接到網路514。網路介面512包括:無線網路介面,例如藍芽(BLUETOOTH)、WIFI(wireless fidelity)、全球微波存取互通性(World Interoperability for Microwave Access,WIMAX)、通用封包無線電服務(General Packet Radio Service,GPRS)或寬頻分碼多工存取(wideband code division multiple access,WCDMA);或者有線網路介面,例如乙太網(ETHERNET)、通用序列匯流排(universal serial bus,USB)或電氣電子工程師學會(Institute of Electrical and Electronics Engineers,IEEE)-1364。在一個或多個實施例中,在兩個或更多個硬體計算平臺500中實施本文中所述的方法和/或操作的一部分或全部。
硬體計算平臺500被配置成透過輸入/輸出介面510接收資訊。透過輸入/輸出介面510接收的資訊包括指令、資料、測試結果、修復資訊和/或供處理器502處理的其他參數中的一者或多者。所述資訊經由匯流排508傳送到處理器502。硬體計算平臺500被配置成透過輸入/輸出介面510接收與使用者介面(user interface,UI)相關的資訊。所述資訊作為使用者介面542儲存在電腦可讀媒體504中。
在一些實施例中,本文中所述的方法和/或操作的一部分或全部被實施為由處理器執行的獨立軟體應用。在一些實施例中,本文中所述的方法和/或操作的一部分或全部被實施為作為附加軟體應用的一部分的軟體應用。在一些實施例中,本文中所述的方法和/或操作的一部分或全部被實施為軟體應用的外掛程式。在一些實施例中,本文中所述的方法和/或操作的一部分或全部被實施為由硬體計算平臺500使用的軟體應用。
在一些實施例中,所述流程被實現為儲存在非暫時性電腦可讀記錄媒體中的程式的功能。非暫時性電腦可讀記錄媒體的範例包括但不限於外部/可移動和/或內部/內置儲存裝置或記憶體單元,例如光碟(例如DVD)、磁碟(例如硬碟)、半導體記憶體(例如ROM、RAM、記憶體卡)等中的一者或多者。
所闡述的方法包括示例性操作,但所述操作未必需要以所示出的次序執行。根據本發明實施例的精神及範圍,可適當地對操作進行添加、替換、改變次序和/或消除。對不同特徵和/或不同實施例進行組合的實施例處於本發明實施例的範圍內,且在所屬領域中的普通技術人員閱讀本發明實施例之後將顯而易見。
在一些實施例中,一種方法至少部分地由處理器執行,所述方法包括從對記憶體的記憶體區塊進行的至少一個記憶體測試提取所述記憶體區塊中的將被修復的至少一個失效位元的位置。所述方法還包括取得所述記憶體中的用於對所述記憶體區塊進行修復的可用修復資源。所述方法還包括判斷包含多個約束在內的約束滿足問題(CSP)是否可解決。所述多個約束對應於所述記憶體區塊中的所述至少一個失效位元的所述位置以及所述可用修復資源。所述方法還包括反應於所述判斷指示所述CSP不可解決,將所述記憶體區塊標記為不可修復或拒絕所述記憶體。所述方法還包括反應於所述判斷指示所述CSP可解決且具有滿足所述多個約束的解決方案,根據所述CSP的所述解決方案而使用所述可用修復資源來對所述至少一個失效位元進行修復。
在一個或多個實施例中,所述約束滿足問題還包含將被優化的至少一個目標函數,且所述約束滿足問題的所述解決方案對應於被優化的所述至少一個目標函數。
在一個或多個實施例中,所述約束滿足問題的所述多個約束包括:
Figure 02_image001
Figure 02_image003
,以及
Figure 02_image005
, 其中m 是所述記憶體區塊中的字線的數目,n 是所述記憶體區塊中的位元線的數目,h 是所述記憶體區塊中的將被修復的失效位元的數目,xrepair resource 是能夠用於修復所述記憶體區塊的冗餘字線的數目,yrepair resource 是能夠用於修復所述記憶體區塊的冗餘位元線的數目,xi 是0或1且對應於m 條所述字線之中的第i 字線,xi = 0對應於所述第i 字線由所述冗餘字線中的一者進行修復,且xi = 1對應於所述第i 字線不被修復,yj 是0或1且對應於n 條所述位元線之中的第j 位元線,yj = 0對應於所述第j 位元線由所述冗餘位元線中的一者進行修復,且yj = 1對應於所述第j 位元線不被修復,xi_k 是與耦接到h 個所述失效位元之中的第k 失效位元的字線對應的xi ,且yj_k 是與耦接到所述第k 失效位元的位元線對應的yj
在一個或多個實施例中,所述約束滿足問題還包含將
Figure 02_image007
Figure 02_image009
最大化。
在一個或多個實施例中,所述的方法還包括下列步驟:自所述至少一個記憶體測試提取所述記憶體區塊中的至少一個弱位元的位置。反應於判斷所指示所述約束滿足問題能夠解決,基於所述可用修復資源及所述約束滿足問題的所述解決方案判斷是否存在剩餘修復資源。反應於判斷出存在所述剩餘修復資源,解決約束優化問題。所述約束優化問題包含所述多個約束、以及將被優化的目標函數。所述目標函數對應於所述記憶體區塊中的所述至少一個弱位元的所述位置。所述的方法還包括下列步驟:根據所述約束優化問題的解決方案而使用所述可用修復資源來對所述至少一個失效位元及所述至少一個弱位元進行修復。
在一個或多個實施例中,所述至少一個弱位元包括多個弱位元,所述方法還包括:將多個權重對應地分配給所述多個弱位元。
在一個或多個實施例中,所述多個約束包括:
Figure 02_image001
Figure 02_image003
,以及
Figure 02_image005
,且 所述目標函數包括將
Figure 02_image023
最小化,其中m 是所述記憶體區塊中的字線的數目,n 是所述記憶體區塊中的位元線的數目,h 是所述記憶體區塊中的將被修復的失效位元的數目,s 是所述記憶體區塊中的弱位元的數目,xrepair resource 是能夠用於修復所述記憶體區塊的冗餘字線的數目,yrepair resource 是能夠用於修復所述記憶體區塊的冗餘位元線的數目,xi 是0或1且對應於m 條所述字線之中的第i 字線,xi = 0對應於所述第i 字線由所述冗餘字線中的一者進行修復,且xi = 1對應於所述第i 字線不被修復,yj 是0或1且對應於n 條所述位元線之中的第j 位元線,yj = 0對應於所述第j 位元線由所述冗餘位元線中的一者進行修復,且yj = 1對應於所述第j 位元線不被修復,x’i' 是0或1且對應於第i' 冗餘字線,x’i' = 0對應於所述第i' 冗餘字線不用於對字線進行修復,且x’i' = 1對應於所述第i' 冗餘字線用於對字線進行修復,y’j' 是0或1且對應於第j' 冗餘位元線,y’j' = 0對應於所述第j' 冗餘位元線不用於對位元線進行修復,且y’j' = 1對應於所述第j' 冗餘位元線用於對位元線進行修復,xl 是與耦接到s 個所述弱位元之中的第l 弱位元的字線或冗餘字線對應的xi x’i' yl 是與耦接到所述第l 弱位元的位元線或冗餘位元線對應的yj y’j’ ,且Wl 是被分配給所述第l 弱位元的權重。
在一個或多個實施例中,所述的方法還包括:根據以下檢查所述至少一個失效位元是否不能修復:所述記憶體區塊中的所述至少一個失效位元的所述位置、所述可用修復資源、以及透過機器學習從資料庫取得的函數。所述資料庫包含不能修復位元圖案及對應的可用修復資源。所述方法還包括:反應於檢查所指示所述至少一個失效位元不能修復,將所述記憶體區塊標記為不能修復或拒絕所述記憶體。反應於檢查所指示所述至少一個失效位元能夠修復,執行所述判斷所述約束滿足問題是否能夠解決。
在一個或多個實施例中,所述方法還包括:反應於判斷所指示所述約束滿足問題不能解決,將所述至少一個失效位元的所述位置及所述可用修復資源添加到所述資料庫,以更新所述函數。
在一個或多個實施例中,所述方法還包括:反應於判斷所指示所述約束滿足問題能夠解決,更新所述約束滿足問題的啟發式。
在一些實施例中,一種系統包括記憶體測試裝置以及處理器。記憶體測試裝置被配置成對記憶體的記憶體區塊執行至少一個記憶體測試。處理器耦接到所述記憶體測試裝置。所述處理器被配置成:從所述至少一個記憶體測試提取所述記憶體區塊中的將被修復的至少一個失效位元的位置;以及取得所述記憶體中的用於對所述記憶體區塊進行修復的可用修復資源。所述處理器還被配置成根據以下判斷所述至少一個失效位元是否不可修復:所述記憶體區塊中的所述至少一個失效位元的所述位置;所述可用修復資源;以及透過機器學習從資料庫取得的函數,所述資料庫包含不可修復位元圖案及對應的可用修復資源。反應於判斷出所述至少一個失效位元不可修復,所述處理器還被配置成控制所述記憶體測試裝置將所述記憶體區塊標記為不可修復或拒絕所述記憶體。
在一個或多個實施例中,所述處理器還被配置成執行所述機器學習以從所述資料庫取得所述函數。
在一個或多個實施例中,所述處理器還被配置成反應於判斷出所述至少一個失效位元能夠修復而進行以下操作:判斷包含多個約束在內的約束滿足問題(CSP)是否能夠解決,反應於判斷出所述約束滿足問題不能解決而控制所述記憶體測試裝置將所述記憶體區塊標記為不能修復或拒絕所述記憶體,且透過將所述至少一個失效位元的所述位置及所述可用修復資源添加到所述資料庫來更新所述資料庫。所述多個約束對應於所述記憶體區塊中的所述至少一個失效位元的所述位置、以及所述可用修復資源。
在一個或多個實施例中,所述處理器還被配置成執行所述機器學習以基於經更新的所述資料庫更新所述函數。
在一個或多個實施例中,所述處理器還被配置成從所述至少一個記憶體測試提取所述記憶體區塊中的至少一個弱位元的位置,基於所述至少一個記憶體測試將權重分配給所述至少一個弱位元,反應於判斷出所述約束滿足問題能夠解決且具有滿足所述多個約束的解決方案而基於所述可用修復資源及所述約束滿足問題的所述解決方案判斷是否存在剩餘修復資源,並反應於判斷出存在所述剩餘修復資源,解決約束優化問題(COP)。所述約束優化問題(COP)包含所述多個約束以及將被優化的目標函數。所述目標函數對應於所述權重及所述記憶體區塊中的所述至少一個弱位元的所述位置。
在一個或多個實施例中,所述記憶體測試裝置還被配置成對所述記憶體進行修復。所述處理器還被配置成控制所述記憶體測試裝置以:反應於判斷出不存在所述剩餘修復資源,根據所述約束滿足問題的所述解決方案而使用所述可用修復資源對所述至少一個失效位元進行修復,且反應於所述判斷出存在所述剩餘修復資源,根據所述約束優化問題的解決方案而使用所述可用修復資源對所述至少一個失效位元及所述至少一個弱位元進行修復。
在一些實施例中,一種電腦程式產品包括非暫時性電腦可讀媒體,所述非暫時性電腦可讀媒體中包含指令。所述指令在由處理器執行時使所述處理器:從對記憶體的記憶體區塊進行的至少一個記憶體測試提取所述記憶體區塊中的將被修復的多個失效位元的失效位元圖案以及所述記憶體區塊中的多個弱位元的弱位元圖案。所述指令還使所述處理器反應於以下中的任意者控制將所述記憶體區塊標記為不可修復或拒絕所述記憶體:所述多個失效位元的數目高於預定門檻值;機器學習函數基於所述記憶體中的所述失效位元圖案及用於對所述記憶體區塊進行修復的可用修復資源指示所述失效位元圖案不可修復;或者包含多個約束在內的約束滿足問題(CSP)不可解決,所述多個約束對應於所述失效位元圖案及所述可用修復資源。所述指令使所述處理器基於以下控制對所述記憶體進行修復:所述CSP的解決方案;所述解決方案滿足所述多個約束且指示所述可用修復資源在所述多個失效位元的修復中如何分配;或者約束優化問題(COP)的解決方案,所述COP包含所述多個約束及目標函數,所述COP的所述解決方案滿足所述多個約束、對所述目標函數進行優化且指示所述可用修復資源在所述多個失效位元及所述多個弱位元之中的一個或多個弱位元的修復中如何分配。
在一個或多個實施例中,所述指令在由所述處理器執行時還使所述處理器對所述約束滿足問題的所述解決方案進行優化,以將被分配到所述多個失效位元的所述修復的所述可用修復資源的數量最小化。
在一個或多個實施例中,所述指令在由所述處理器執行時還使所述處理器將多個權重對應地分配給所述多個弱位元,基於所述多個權重及所述記憶體區塊中的所述多個弱位元的位置將所述約束優化問題的所述目標函數公式化,並透過對所述約束優化問題的所述目標函數進行優化來對所述約束優化問題的所述解決方案進行優化,以相對於具有所述較低權重的所述弱位元優先對具有所述較高權重的所述弱位元進行修復。在被分配給所述多個弱位元的所述多個權重之中,較高權重被分配給具有較高弱級的弱位元且較低權重被分配給具有較低弱級的弱位元。
在一個或多個實施例中,所述指令在由所述處理器執行時還使所述處理器執行機器學習以從資料庫取得所述機器學習函數,反應於判斷出所述約束滿足問題不能解決而透過使所述失效位元圖案及所述可用修復資源被添加到所述資料庫來更新所述資料庫,並執行所述機器學習以基於經更新的所述資料庫更新所述函數。所述資料庫包含不能修復位元圖案及對應的可用修復資源。
以上概述了若干實施例的特徵,以使所屬領域中的技術人員可更好地理解本發明實施例的各個方面。所屬領域中的技術人員應理解,他們可容易地使用本發明實施例作為設計或修改其他流程及結構的基礎來施行與本文中所介紹的實施例相同的目的和/或實現與本文中所介紹的實施例相同的優點。所屬領域中的技術人員還應認識到,這些等效結構並不背離本發明實施例的精神及範圍,而且他們可在不背離本發明實施例的精神及範圍的條件下對其作出各種改變、代替及變更。
102:記憶體控制器 104、304:記憶體陣列 106、306:冗餘行 108、308:冗餘列 110:修復暫存器 116、126、x’1 x’2 :冗餘字線 200:系統 210:記憶體測試裝置 212:測試電路系統 214:測試結果儲存裝置 216:修復電路系統 220:計算裝置 222:處理器 224:儲存媒體 226:約束滿足問題/約束優化問題解決 228:機器學習(ML) 230:機器學習資料庫 232:機器學習函數 300:記憶體區塊 400:方法 402、404、406、408、410、412、414、416、418、420、422、424、430、444、446、448、450、452、454:操作 500:硬體計算平臺 502:處理器 504:儲存媒體 506:指令 507:資料庫 508:匯流排 510:輸入/輸出(I/O)介面 512:網路介面 514:網路 542:使用者介面(UI) Bit_1,1、Bit_3,3、Bit_3,4、Bit_4,3:失效位元 Bit_1,1’、Bit_1,2、Bit_1’,2、Bit_2,4、Bit_2’,3、Bit_3,2’、Bit_4,1:弱位元 BL_0、BL_1、BL_2、BL_N、BL_R、y1 y2 y3 y4 :位元線 WL 0、WL 127、WL 128、WL 255、WL 256、WL 1023、WL_0、WL_1、WL_2、WL_M、WL_R、x1 x2 x3 x4 :字線 W11’ 、W12 、W1’2 、W2’3 、W24 、W32’ 、W41 :權重 MC:記憶體單元y’1 y’2 :冗餘位元線
結合圖式閱讀以下詳細說明,會最好地理解本發明實施例的各個方面。應注意,根據本行業中的標準慣例,各種特徵並非按比例繪製。事實上,為使論述清晰起見,可任意增大或減小各種特徵的尺寸。 圖1A是根據一些實施例的記憶體的示意性方塊圖。 圖1B是示出根據一些實施例的記憶體中的示例性修復資源部署規則的示意圖。 圖2是根據一些實施例的用於對記憶體進行測試及修復的系統的示意圖。 圖3A到圖3E是根據一些實施例的記憶體區塊的示意圖,示意圖示出對記憶體區塊進行的至少一個記憶體測試的測試結果。 圖4是根據一些實施例的對記憶體進行修復的方法的流程圖。 圖5是根據一些實施例的硬體計算平臺的方塊圖。
400:方法
402、404、406、408、410、412、414、416、418、420、422、424、430、444、446、448、450、452、454:操作

Claims (1)

  1. 一種用於記憶體修復的方法,所述用於記憶體修復的方法至少部分地由一處理器執行,所述用於記憶體修復的方法包括: 從對一記憶體的一記憶體區塊進行的至少一個記憶體測試提取所述記憶體區塊中的將被修復的至少一個失效位元的位置; 取得所述記憶體中的用於對所述記憶體區塊進行修復的一可用修復資源; 判斷包含多個約束在內的一約束滿足問題(Constraint Satisfaction Problem,CSP)是否能夠解決,所述多個約束對應於 所述記憶體區塊中的所述至少一個失效位元的所述位置,以及 所述可用修復資源; 反應於判斷所指示所述約束滿足問題不能解決,將所述記憶體區塊標記為不能修復或拒絕所述記憶體;以及 反應於判斷所指示所述約束滿足問題能夠解決且具有滿足所述多個約束的解決方案,根據所述約束滿足問題的所述解決方案而使用所述可用修復資源來對所述至少一個失效位元進行修復。
TW110118009A 2020-05-29 2021-05-19 用於記憶體修復的方法 TW202145242A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063031827P 2020-05-29 2020-05-29
US63/031,827 2020-05-29
US17/108,870 US11450401B2 (en) 2020-05-29 2020-12-01 Method, system and computer program product for memory repair
US17/108,870 2020-12-01

Publications (1)

Publication Number Publication Date
TW202145242A true TW202145242A (zh) 2021-12-01

Family

ID=77098169

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110118009A TW202145242A (zh) 2020-05-29 2021-05-19 用於記憶體修復的方法

Country Status (3)

Country Link
US (1) US20220366996A1 (zh)
CN (1) CN113223604A (zh)
TW (1) TW202145242A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11842788B2 (en) * 2020-11-26 2023-12-12 Changxin Memory Technologies, Inc. Method for determining repair location for redundancy circuit, method for repairing integrated circuit, electronic device and storage medium
US11848067B2 (en) * 2021-09-07 2023-12-19 Micron Technology, Inc. Apparatus including internal test mechanism and associated methods

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3483724B2 (ja) * 1997-03-19 2004-01-06 シャープ株式会社 不揮発性半導体記憶装置
KR101108133B1 (ko) * 2007-07-26 2012-01-31 가부시키가이샤 어드밴티스트 예비 라인 할당 장치, 메모리 구제 장치, 예비 라인 할당 방법, 메모리 제조 방법, 및 프로그램
KR20130111074A (ko) * 2012-03-30 2013-10-10 삼성전자주식회사 연약 셀의 리프레쉬 특성을 개선한 반도체 메모리 장치
US11450401B2 (en) * 2020-05-29 2022-09-20 Taiwan Semiconductor Manufacturing Company, Ltd. Method, system and computer program product for memory repair

Also Published As

Publication number Publication date
CN113223604A (zh) 2021-08-06
US20220366996A1 (en) 2022-11-17

Similar Documents

Publication Publication Date Title
US11450401B2 (en) Method, system and computer program product for memory repair
CN108108810B (zh) 包括非易失性存储器件的存储装置及访问方法
CN107797935B (zh) 存储装置和用于非易失性存储器装置的访问方法
US11721399B2 (en) Memory system with dynamic calibration using a trim management mechanism
US20220366996A1 (en) Method, system and computer program product for memory repair
US7382660B2 (en) Method for accessing a multilevel nonvolatile memory device of the flash NAND type
US6795942B1 (en) Built-in redundancy analysis for memories with row and column repair
US11398291B2 (en) Method and apparatus for determining when actual wear of a flash memory device differs from reliability states for the flash memory device
KR20080110710A (ko) 고장 셀의 위치를 식별하는 정보를 저장하는 방법 및 메모리 장치
JP5319387B2 (ja) 半導体チップの救済設計方法
CN113010391A (zh) 基于阈值分布的存储器子系统分析
JP2007220284A (ja) 改善された冗長性分析のためのメモリデバイスの欠陥サマリデータの削減
US20200312423A1 (en) Memory devices having spare column remap storages and methods of remapping column addresses in the memory devices
US11527296B2 (en) Operation method of nonvolatile memory device
US20090046510A1 (en) Apparatus and method for multi-bit programming
KR101269557B1 (ko) 반도체 메모리 수리 장치 및 수리 방법
WO2022037199A1 (zh) 失效位元的修补方法及装置
US7565585B2 (en) Integrated redundancy architecture and method for providing redundancy allocation to an embedded memory system
CN112966827B (zh) 一种存储器开发过程中的良品率预测方法
CN115148263A (zh) 寻找多颗粒的公共最佳读取电压的方法、存储系统
US20200411089A1 (en) Memory management device, system and method
Manzini et al. A machine learning-based approach to optimize repair and increase yield of embedded flash memories in automotive systems-on-chip
CN115552383A (zh) 闪存数据管理方法、存储设备控制器及存储设备
US20230377674A1 (en) Component overprovisioning in layered devices
US20240038313A1 (en) Apparatus with circuit management mechanism and methods for operating the same