TWI769124B - 一種應用于Flash智慧分析檢測的檢測方法、系統、智慧終端機以及電腦可讀儲存介質 - Google Patents

一種應用于Flash智慧分析檢測的檢測方法、系統、智慧終端機以及電腦可讀儲存介質 Download PDF

Info

Publication number
TWI769124B
TWI769124B TW111107377A TW111107377A TWI769124B TW I769124 B TWI769124 B TW I769124B TW 111107377 A TW111107377 A TW 111107377A TW 111107377 A TW111107377 A TW 111107377A TW I769124 B TWI769124 B TW I769124B
Authority
TW
Taiwan
Prior art keywords
bad
column
page
template
collection
Prior art date
Application number
TW111107377A
Other languages
English (en)
Other versions
TW202236288A (zh
Inventor
張如宏
胡來勝
陳向兵
張輝
Original Assignee
大陸商深圳三地一芯電子有限責任公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 大陸商深圳三地一芯電子有限責任公司 filed Critical 大陸商深圳三地一芯電子有限責任公司
Application granted granted Critical
Publication of TWI769124B publication Critical patent/TWI769124B/zh
Publication of TW202236288A publication Critical patent/TW202236288A/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/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • GPHYSICS
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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/10Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns 
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

本發明涉及一種應用于Flash智慧分析檢測的檢測方法、系統、智慧終端機以及電腦可讀儲存介質,其包括S1、獲取Column總集、Page總集以及Block總集,預設壞Column總集、壞Page總集、錯誤閾值,以及初始壞Block範本;S2、基於錯誤閾值從Block總集中依次交替獲取壞Page元素和壞Column元素,並依次交替更新壞Page總集和壞Column總集;S3、基於對應於不同錯誤閾值的各個壞Column總集和各個壞Page總集,按照壞範本疊代策略更新錯誤閾值,從各個壞Column總集中獲取最終Column總集,並從各個壞Page總集中獲取最終Page總集;S4、獲取最終壞Block範本。本發明具有降低bad Page對後續選取壞Column元素的操作造成的影響,減少虛假bad Column的產生,使最終壞Block範本更加準確,進而提高Nand Flash分析檢測後的有效容量的效果。

Description

一種應用于Flash智慧分析檢測的檢測方法、系統、智慧終端機以及電腦可讀儲存介質
本發明涉及Flash分析檢測方法的技術領域,尤其是涉及一種應用于Flash智慧分析檢測的檢測方法、系統、智慧終端機以及電腦可讀儲存介質。
Flash,又稱為快閃記憶體,是一種允許在操作中被多次擦或寫的記憶體,並且在斷電情況下仍能保持所儲存的資料資訊。Flash主要分為Nand Flash和Nor Flash,其中Nand Flash相較於Nor Flash具有擦寫速度快、儲存容量大、單位成本低的優點,因此Nand Flash的應用更為廣泛,我們常用的Nand Flash產品有快閃記憶體碟、數位儲存卡等。
Nand Flash在物理上可分為塊(又稱為Block)、頁(又稱為Page)、行(又稱Column)或物理單元(又稱為Cell)。Nand Flash由若干個塊組成,而每個塊均由若干個頁組成,而每個頁則由若干個行(或物理單元)組成。對於不同類型的Flash,每一個行(物理單元)可儲存至少1個bit的資料。因此,Nand Flash的位址分為三類:對應於塊的Block Address(又稱為塊號);對應於頁的Page Address(又稱為塊內頁號);對應於行(或物理單元)的Column Address(又稱為頁內位元組號)。
在Nand Flash的長期使用過程中,每一個塊中均可能會出現無法正常儲存或正確被讀取的儲存單元,為了保證儲存資料的完整性,在儲存資料時需要跳過這些不正常的儲存單元,而為了找到這部分儲存單元的位址資訊,需要分析檢測Nand Flash,找到塊中的Bad Page(又稱為壞頁)和Bad Column(又稱為壞行)。
隨著Flash工藝製程的發展,對Bad Page和Bad Column的檢測分析也越來越重要,但是發明人認為,通過相關技術中的檢測分析方法分析完Flash內的bad Page和/或bad Column後,bad Page和/或bad Column的準確性較差,導致Flash的有效容量可能會降低。
本發明目的一是提供一種應用于Flash智慧分析檢測的檢測方法,具有提高Nand Flash分析檢測後的有效容量的特點。
本發明的上述發明目的一是通過以下技術方案得以實現的:
S1、獲取Column總集、Page總集,以及包含Column總集和Page總集的Block總集,預設壞Column總集、壞Page總集、可跟隨疊代次數更新的錯誤閾值,以及包含壞Column總集和壞Page總集的初始壞Block範本;
S2、依次交替按照壞頁選取策略和壞行選取策略,基於錯誤閾值從Block總集中依次交替獲取壞Page元素和壞Column元素,並依次交替更新壞Page總集和壞Column總集;
S3、基於對應於不同錯誤閾值的各個壞Column總集和各個壞Page總集,按照壞範本疊代策略更新錯誤閾值,從各個壞Column總集中獲取最終Column總集,並從各個壞Page總集中獲取最終Page總集;
S4、基於最終Column總集和最終Page總集更新初始壞Block範本,獲取最終壞Block範本。
通過採用上述技術方案,Column總集包含一個Block裡面的所有的Column,Page總集包含一個Block裡面的所有的Page。壞Column總集包含通過指令糾錯被評定為bad Column的所有Column,壞Page總集包含通過指令糾錯被評定為bad Page的所有Page。初始壞Block範本指的是結合壞Column總集和壞Page總集獲得的範本,若使用初始壞Block範本去分析讀寫Flash裡面的所有Block,可以評估得到Flash的有效容量。
按照壞頁選取策略是指令糾錯基於錯誤閾值從Page總集裡面選取壞Page元素的方法,而按照壞行選取策略是指令糾錯基於錯誤閾值從Column總集裡面選取壞Column元素的方法。選取壞Page元素和/或壞Column元素,相當於是選取壞元素的操作,而基於壞Page元素更新壞Page總集和/或壞Column總集,相當於是更新壞總集的操作;S2的步驟相當於是使選取壞元素的操作和更新壞總集的操作依次交替進行。由於在指令糾錯基於錯誤閾值從Page總集裡面選取壞Page元素時,壞Column元素會影響指令糾錯對Page總集的判斷,因此先獲取較為精確的壞Column總集,再通過指令糾錯去評估Page總集,可提高指令糾錯的準確性,使獲取的壞Page總集更加精准;同理,在指令糾錯基於錯誤閾值從Column總集裡面選取壞Column元素時,壞Page元素也會影響指令糾錯對Column總集的判斷,因此先獲取較為精確的壞Page總集,再通過指令糾錯去評估Column總集,可提高指令糾錯的準確性,使獲取的壞Column總集更加精准。
錯誤閾值指的是在指令糾錯中進行評估的條件,相當於是Column判斷為bad Column和/或Page 判斷為bad Page的標準,錯誤閾值的改變會影響bad Column和/或bad Page的數量錯誤閾值,但是在實際分析檢測的過程中,錯誤閾值難以直接獲取正確的值。通過改變錯誤閾值的方式,可以多個對應於不同錯誤閾值的壞Page總集和/或壞Column總集,而通過進行篩選比較判斷,從各個壞Page總集和/或壞Column總集中選取最終Column總集和/或最終Page總集,相當於從多個錯誤閾值中選取相對準確的錯誤閾值,以使最終獲得的壞Block範本更加準確。
通過這種是選取壞元素和更新壞總集依次交替進行的方式,可以提高壞Column總集和/或壞Page總集的準確性,且通過多次疊代迴圈之後,壞Column總集和/或壞Page總集會越來越趨向於精准,進而使得到的壞Block範本更加準確。另一方面,由於Nand Flash的物理性質,有部分Page本身就是bad Page,因此先選取壞Page元素再選取壞Column元素的方式,可以先將這部分bad Page從Block總集中選取出來作為壞Page元素,降低這部分bad Page對後續選取壞Column元素的操作造成的影響,減少虛假bad Column的產生,使最終壞Block範本更加準確,進而提高Nand Flash分析檢測後的有效容量。
可選的,在S2的步驟中,包括:
S21、按照壞行干擾排除策略,基於壞Column總集從Page總集中獲取待測Page子集,按照壞頁判斷策略,基於錯誤閾值依次分析各個待測Page子集,從Block總集中獲取壞Page元素,並基於壞Page元素更新壞Page總集;
S22、按照壞頁干擾排除策略,基於壞Page總集從Column總集中獲取各個待測Column子集,按照壞行判斷策略,基於錯誤閾值依次分析各個待測Column子集,從Block總集中獲取壞Column元素,並基於壞Column元素更新壞Column總集。
通過採用上述技術方案,壞行干擾排除可在Page總集需要進行指令糾錯時,從Page總集中選取部分受壞Column總集較少的Column作為各個待測Page子集,然後再依次分析各個待測Page子集,獲取各個壞Page元素,並將壞Page元素更新到壞Page總集中,從而獲取更為精確的壞Page總集。同理,壞列干擾排除可在Column總集需要進行指令糾錯時,從Column總集中選取部分受壞Page總集較少的Page作為各個待測Column子集,然後再分析各個待測Column子集,獲取各個壞Column元素,並將壞Column元素更新到壞Column總集中,從而獲取更為精確的壞Column總集。
可選的,在S1的步驟中,還包括:獲取各個原始Column子集和各個原始Page子集,Column總集包含各個原始Column子集,Page總集包含各個原始Page子集;
在S21的步驟中,包括:
S211、將壞Column總集映射於各個原始Page子集,獲取各個干擾Page子集;
S212、依次獲取各個干擾Page子集在與其對應的各個原始Page子集中的補集,生成各個待測Page子集;
S213、按照壞頁判斷策略,基於錯誤閾值依次分析各個待測Page子集,從Block總集中獲取壞Page元素,並基於壞Page元素更新壞Page總集;
在S22的步驟中,包括:
S221、將壞Page總集映射於各個原始Column子集中獲取各個干擾Column子集;
S222、依次獲取各個干擾Column子集在對應的各個原始Column子集中的補集,作為各個待測Column子集;
S223、按照壞行判斷策略,基於錯誤閾值從各個待測Column子集獲取各個壞Column元素,並更新壞Column總集。
通過採用上述技術方案,原始Column子集包含位於同一Column的各個儲存單元,原始Page子集包含位於同一Page的各個儲存單元。將壞Column總集映射在任意一原始Page子集後,可在原始Page子集中獲取會與壞Column總集發生相交的儲存單元,而干擾Column子集則包含這部分儲存單元。干擾Column子集內的儲存單元均是已經被判斷為bad Page的一部分,在儲存資料時會跳過干擾Column子集內的儲存單元,因此在分析檢測原始Page子集內還有多少儲存單元需要跳過時,獲取干擾Page子集在原始Page子集中的補集作為待測Page子集進行分析,可減少當前的bad Page對bad Column的分析的干擾。同理,在分析檢測原始Column子集內還有多少儲存單元需要跳過時,獲取干擾Column子集在原始Column子集中的補集作為待測Column子集進行分析,可減少當前的bad Column對bad Page的分析的干擾。
可選的,在S213的步驟中,包括:
S2131、按照指令糾錯策略,依次獲取各個待測Page子集的Page錯誤值;
S2132、基於錯誤閾值和各個Page錯誤值,依次按照壞Page篩選策略,從各個待測Page子集中選取不滿足Page有效條件的待測Page子集作為失效Page子集;
S2133、基於對應於失效Page子集的原始Page子集獲取壞Page元素,獲取包含所有壞Page元素的集合作為壞Page總集;
在S223的步驟中,包括:
S2231、按照指令糾錯策略,依次獲取各個待測Column子集的Column錯誤值;
S2232、基於錯誤閾值和Column錯誤值,按照閾值比較策略,從各個待測Column子集中選取不滿足Column精度條件的待測Column子集作為失效Column子集;
S2233、基於對應於失效Column子集的原始Column子集獲取壞Column元素,獲取包含所有壞Column元素的集合作為壞Column總集。
通過採用上述技術方案,指令糾錯策略可以先將資料寫到待測Column子集的各個儲存單元中,然後再讀出來進行比較,然後統計錯誤的bit數,錯誤的bit數越多則錯誤值越高,當錯誤值高於錯誤閾值時,則該待測子集並不滿足Column精度條件,可將該待測子集評估為失效Column子集,同時將對應於失效Column子集的原始子集作為bad Column,並通過將壞Page元素包含進壞Page總集的方式記錄bad Column,當記錄了所有的壞Page元素之後,當前的壞Page總集相當於是記錄了各個bad Column的bad Column範本,用當前的bad Column範本取代舊的bad Column範本,從而完成bad Column範本的更新。同理,通過計算各個待測Column子集的Column錯誤值並與錯誤閾值進行比較的方式,可以獲取各個不滿足Page有效條件的失效Page子集,進而可以獲取記錄了各個bad Page的bad Page範本,用當前的bad Page範本取代舊的bad Page範本,從而完成bad Page範本的更新。
可選的,在S3的步驟中,包括:
S31、建立用於儲存各個對應於不同的錯誤閾值的待對比範本的範本庫;
S32、按照範本對比策略,判斷當前的範本庫中完整的錯誤閾值是否存在滿足有效容量條件的最小值,若是則執行S34;若否則執行S33;
S33、更新錯誤閾值,基於壞Column總集和壞Page總集更新待對比範本,並儲存進範本庫中,並返回S2;
S34、基於判斷結果生成最終Column總集和最終Page總集。 通過採用上述技術方案,待對比範本為當前的壞Column總集和/或壞Page總集的上一個壞Column總集和/或壞Page總集。範本庫中可以儲存對應於不同錯誤閾值的壞Column總集和/或壞Page總集,通過使多個對應於不同錯誤閾值的壞Column總集和/或壞Page總集之間的比較,可以找到較為適合的錯誤閾值,這個錯誤閾值對應的壞Column總集和/或壞Page總集,應較為準確且能滿足Flash的有效容量要求。
可選的,在S32的步驟中,包括,
S321、判斷當前的範本庫是否存在待對比範本,若是則執行S322;若否則執行S323;
S322、判斷待對比範本是否滿足疊代終止條件,若是則執行S34;若否則執行S33;
S323、獲取包含當前壞Column總集和當前壞Page總集的待對比範本,並將待對比範本儲存到範本庫中;
在S34的步驟中,還包括:獲取待對比範本中的壞Column總集為最終Column總集,獲取待對比範本中的壞Page總集為最終Page總集。
通過採用上述技術方案,最終Column總集和/或最終Page總集指的是較為精准也能滿足Flash有效容量要求的壞Column總集和/或壞Page總集,為了得到最終Column總集和/或最終Page總集,需要更新錯誤閾值,使壞Column總集和/或壞Page總集不斷發生更新疊代。當最終Column總集和/或最終Page總集未能成功選取時,當前的壞Column總集和/或壞Page總集會作為待對比範本儲存到範本庫中,範本庫相當於儲存了最終Column總集和/或最終Page總集的候選範本,直到最終Column總集和/或最終Page總集出現之前,壞Column總集和/或壞Page總集會隨著錯誤閾值的改變而不斷發生疊代更新,從而可以選出滿足要求的最終Column總集和/或最終Page總集。當範本庫內沒有對待比範本時,則將當前的壞Column總集和當前的壞Page總集作為待對比範本加入範本庫中。
可選的,在S322的步驟中,包括:
S3221、預設Column有效閾值,基於Column有效閾值判斷當前待對比範本中的壞Column總集是否滿足有效容量條件,若是則執行S3222;若否則執行S33;
S3222、預設Column疊代閾值,基於Column疊代閾值分析待對比範本和壞Column總集,判斷待對比範本是否滿足容量變化條件,若是則執行S3223;若否則執行S33;
S3223、預設Page有效閾值,基於Page有效閾值判斷當前待對比範本中的壞Page總集是否滿足有效容量條件,若是則執行S3224;若否則執行S33;
S3224、預設Page疊代閾值,基於Page疊代閾值分析待對比範本和壞Page總集,判斷待對比範本是否滿足容量變化條件,若是則執行S34;若否則執行S33。
通過採用上述技術方案,對應於當前的壞Column總集和/或壞Page總集的錯誤閾值,相當於是範本庫中儲存的待對比範本對應的錯誤閾值更新後的值,通過令當前的壞Column總集和/或壞Page總集與當前的待對比範本進行比較,可以評估錯誤閾值的改變是否對當前的壞Column總集和/或壞Page總集的生成具有足夠大的影響,若該影響較小則說明當前的壞Column總集和/或壞Page總集再進行更新疊代後精度變化較小;同時,若錯誤閾值過小可能會導致壞Column總集和/或壞Page總集過多,直接影響Flash完成整個分析檢測後的有效容量。因此,最終Column總集和/或最終Page總集相當於是取得壞Column總集和/或壞Page總集的精度與Flash的有效容量之間的平衡,通過最終Column總集和最終Page總集可以得到較為精確且滿足有效容量需求的壞Block範本。
本發明目的二是提供一種應用于Flash智慧分析檢測的檢測系統,具有提高Nand Flash分析檢測後的有效容量的特點。
本發明的上述發明目的二是通過以下技術方案得以實現的: 一種應用于Flash智慧分析檢測的檢測系統,包括,
初始範本建立模組,用於獲取Column總集、Page總集,以及包含Column總集和Page總集的Block總集,預設壞Column總集、壞Page總集、可跟隨疊代次數更新的錯誤閾值,以及包含壞Column總集和壞Page總集的初始壞Block範本;
範本更新模組,用於依次交替按照壞頁選取策略和壞行選取策略,基於錯誤閾值從Block總集中依次交替獲取壞Page元素和壞Column元素,並依次交替更新壞Page總集和壞Column總集; 範本疊代模組,用於基於對應於不同錯誤閾值的各個壞Column總集和各個壞Page總集,按照壞範本疊代策略更新錯誤閾值,從各個壞Column總集中獲取最終Column總集,並從各個壞Page總集中獲取最終Page總集;
最終範本生成模組,用於基於最終Column總集和最終Page總集更新初始壞Block範本,獲取最終壞Block範本。
本發明目的三是提供一種智慧終端機,具有提高Nand Flash分析檢測後的有效容量的特點。
本發明的上述發明目的三是通過以下技術方案得以實現的:
一種智慧終端機,包括記憶體和處理器,所述記憶體上儲存有能夠被處理器載入並執行如上述一種檢測方法的電腦程式。
本發明目的四是提供一種電腦儲存介質,能夠儲存相應的程式,具有便於實現提高Nand Flash分析檢測後的有效容量的特點。
本發明的上述發明目的四是通過以下技術方案得以實現的:
一種電腦可讀儲存介質,儲存有能夠被處理器載入並執行如上述一種檢測方法的電腦程式。
底下藉由具體實施例配合所附的圖式詳加說明,當更容易瞭解本發明之目的、技術內容、特點及其所達成之功效。
相關技術中的Flash的檢測分析方法為:
從Flash內的各個Block中抽取Block作為範本Block,基於範本Block預設壞Block範本;
抽取一個範本Block,通過ECC糾錯分析範本Block內的所有Column,並獲取各個bad Column;
將各個bad Column映射於所有Page,從所有Page中獲取排除各個bad Column影響的各個待測Page;
通過ECC糾錯分析範本Block內的所有待測Page,並獲取各個bad Page;
基於各個bad Column和各個bad Page,更新範本Block的壞Block範本;
用壞Block範本分析讀寫比較Flash內的各個Block,獲取Flash的有效容量。
進一步的,Flash的檢測分析方法中還可以抽取多個Block作為範本Block,最後可以獲得多個壞Block範本,使用多個壞Block範本分析讀寫比較Flash內的各個Block,可以獲得更加精准的Flash的有效容量。
針對上述相關技術,發明人認為,在上述檢測分析方法獲取bad Column時,相當於將所有的Page都作為good Page,即是忽略了bad Page對bad Column的影響。但是,由於Nand Flash的物理性質,有部分Page本身就是bad Page,若不降低這部分bad Page對各個Column檢錯分析的影響,可能會導致各個Column中會出現虛假的bad Column,而且bad Column和bad Page是相互影響的,這部分虛假的bad Column會導致ECC糾錯分析的糾錯能力下降,影響下個步驟中對各個Page的分析,最終獲取的bad Page的數量也會較多,大幅度降低Nand Flash分析檢測後的有效容量。
為使本申請實施例的目的、技術方案和優點更加清楚,下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本申請一部分實施例,而不是全部的實施例。基於本申請中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本申請保護的範圍。
另外,本文中術語“和/或”,僅僅是一種描述關聯物件的關聯關係,表示可以存在三種關係,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。另外,本文中字元“/”,如無特殊說明,一般表示前後關聯物件是一種“或”的關係。
下面結合說明書附圖1-6對本申請實施例作進一步詳細描述。
實施例一
本申請實施例提供一種應用于Flash智慧分析檢測的檢測方法,所述方法的主要流程描述如下:
參照圖1,S1、從Flash的所有Block中抽取範本Block,基於範本Block,獲取原始Column子集、原始Page子集、包含所有原始Column子集的Column總集、包含所有原始Page子集的Page總集,以及包含Column總集和Page總集的Block總集,預設壞Column總集、壞Page總集、可跟隨疊代次數更新的錯誤閾值,以及包含壞Column總集和壞Page總集的初始壞Block範本,錯誤閾值包括對應於壞Column總集的Column錯誤閾值和對應於壞Page總集的Page錯誤閾值。
Nand Flash在物理上可分為Block、Page和Column,Nand Flash由若干個Block組成,每個Block均由若干個Page組成,每個Page均由若干個Column組成,而每一個Column中的任意一個儲存單元均與其中一個Page相關。Nand Flash的地址分為三類:對應於Block的Block Address、對應於Page的Page Address,以及對應於Column的Column Address。對於同一個Block而言,各個Page和各個Column相當於組成了一個矩陣,Page Address和Column Address共同決定了同一個Block內每一個儲存單元的位址,其中Page Address相當於坐標系中的x座標,Column Address相當於坐標系中的y軸座標。
在步驟S1中,一個原始Column子集指的是一個Column,原始Column子集內的各個元素均可以代表各個儲存單元在某一Column中的位置;一個原始Page子集指的是一個Page,原始Page子集內的各個元素均可以代表各個儲存單元在某一Page中的位置。Page總集指的是包含所有原始Column子集的總集,相當於包含所有的Column;Page總集指的是包含所有原始Page子集的總集,相當於包含所有的Page;Block總集指的是包含所有Column和所有Page的總集,相當於包含範本Block中的所有儲存單元。
壞Column總集指的是包含所有bad Columnolmun的集合,當對應於任意一原始Column子集的Columnolmun被評估為bad Columnolmun時,可基於該原始Column子集生成壞Column元素並加入壞Column總集中;壞Page總集指的是包含所有bad Page的集合,當對應於任意一原始Page子集的Page被評估為bad Page時,可基於該原始Page子集生成壞Page元素並加入壞Page總集中。壞Column總集相當於是一個標出了所有bad Columnolmun的bad Columnolmun範本,Flash進行資料儲存時會跳過bad Columnolmun範本中的這部分Column上的所有儲存單元;同理,壞Page總集相當於是一個標出了所有bad Page的bad Page範本,Flash進行資料儲存時會跳過bad Page範本中的這部分Page上的所有儲存單元;因此,
在本實施例中,壞Page總集的初始集和壞Column總集的初始集均為空集,壞Page總集和/或壞Column總集均需要通過抽取壞Page元素和/或壞Column元素並更新疊代的方式逐漸變得精確;在其他實施例中,若在分析檢測之前可確定個別的bad Page和/或bad Column,可將對應的壞Page元素和/或壞Column元素預先加入壞Page總集和/或壞Column總集中。
Block初始範本中包含壞Column總集和壞Page總集,相當於包含了bad Columnolmun範本和bad Page範本,若使用初始壞Block範本去分析讀寫Flash裡面的所有Block,可以評估得到Flash的有效容量。錯誤閾值在指令糾錯中對bad Column和/或bad Page進行評估的條件之一,相當於是Column判斷為bad Column和/或Page 判斷為bad Page的標準,錯誤閾值的數值大小直接影響壞Column總集和/或壞Page總集內的元素數量。
值得注意的是,錯誤閾值不是一個確定的絕對值,bad Column和/或bad Page也並沒有絕對的界限,錯誤閾值越大則表示對bad Column和/或bad Page的評估也越嚴格,最終獲得bad Column和/或bad Page的數量會趨向於變小,最終使Flash進行分析檢測後的有效容量變大;反之則使獲得bad Column和/或bad Page的數量會趨向於變大,最終使Flash進行分析檢測後的有效容量變小。
具體的,錯誤閾值包括有用於評估bad Page的Page錯誤閾值和用於評估bad Column的Column錯誤閾值。在本實施例中,通過ECC指令糾錯,先將資料寫到所有的Page中,然後再讀出來進行比較,並統計每一個Page的錯誤的bit數,然後取所有Page的錯誤的bit數的平均值作為初始的Page錯誤閾值;同理,通過ECC指令糾錯,統計每一個Column的錯誤的bit數,取所有Column的錯誤的bit數的平均值作為初始的Column錯誤閾值。
參照圖1,S2、依次交替按照壞頁選取策略和壞行選取策略,基於錯誤閾值從Block總集中依次交替獲取壞Page元素和壞Column元素,並依次交替更新壞Page總集和壞Column總集。
其中,壞頁選取策略是從Block總集中獲取壞Page元素的方法,而使一包含所有壞Page元素的集合去代替壞Page總集,即是對壞Page總集的更新,相當於更新bad Page範本。壞行選取策略是從Block總集中獲取壞Column元素的方法,而使一包含所有壞Column元素的集合去代替壞Column總集,即是對壞Column總集的更新,相當於更新bad Column範本,從而獲取更為精確的bad Page範本和/或bad Column範本。
具體的,由於壞頁選取策略和壞行選取策略是依次交錯進行,更新壞Page總集和壞Column總集也依次交錯進行,即是形成了先選取bad Page,更新bad Page範本,再基於當前的bad Page範本去選取bad Column,然後更新bad Column範本的順序。值得注意的是,由於Nand Flash的物理性質,有部分Page本身就是bad Page,因此先更新bad Page範本,可先將原本就是bad Page的這部分Page選取出,降低這部分Page對bad Column範本更新的影響,提高bad Column範本的精確性。
參照圖2,在S2的步驟中,包括:
S21、按照壞行干擾排除策略,基於壞Column總集從Page總集中獲取待測Page子集,按照壞頁判斷策略,基於Page錯誤閾值依次分析各個待測Page子集,從Block總集中獲取壞Page元素,並基於壞Page元素更新壞Page總集。
其中,按照壞行干擾排除策略指的是降低當前的bad Column對本步驟中bad Page的評估的干擾的方法。待測Page子集指的是與其對應的Page總集中需要進行糾錯指令檢測的儲存單元。壞頁判斷策略指的是通過讀寫檢測待測Page子集的錯誤數並與Page錯誤閾值進行比較,來評估對應於該待測Page子集的Page是否為bad Page的方法。
由於壞Column總集中的每一個bad Column內的所有儲存單元都已經被評估為在儲存資料時需要跳過的儲存單元,若這部分儲存單元再次參與對Page的分析,則會影響分析結果的準確性,導致bad Page的數量可能會過多;因此,需要先抽取各個Page總集中的待測Page子集,來將降低當前的bad Column對各個Page總集的影響,然後再更新bad Page範本。
參照圖3,在S21的步驟中,包括:
S211、將壞Column總集映射於各個原始Page子集,獲取各個干擾Page子集。
其中,將壞Column總集映射於原始Page子集,可以獲取壞Column總集與原始子集之間的交點,相當於獲取bad Column與Page之間的重疊的儲存單元。每一個原始Page子集均對應設置有一個干擾Page子集,而干擾Page子集則包含了該原始Page子集內與當前bad Column重疊的所有儲存單元。
S212、依次獲取各個干擾Page子集在與其對應的各個原始Page子集中的補集,生成各個待測Page子集。 其中,每一個原始Page子集均對應設置有一個干擾Page子集。對於任意一原始Page子集而言,干擾Page子集包含了該原始Page子集中與當前bad Column重疊的儲存單元;因此干擾Page子集在該原始Page子集中的補集,即干擾Page子集,則包含了所有受當前bad Column影響較小且需要參與Page分析的儲存單元。
S213、按照壞頁判斷策略,基於Page錯誤閾值依次分析各個待測Page子集,從Block總集中獲取壞Page元素,並基於壞Page元素更新壞Page總集。
其中,壞頁判斷策略指的是通過分析待測Page子集中的儲存單元,來評估對應於待測Page子集的Page的損壞程度的方法,若該Page的損壞程度達到Page錯誤閾值對應的程度,則需要將該Page評估為bad Page,並基於該Page生成壞Page元素,記錄到壞Page總集中。
參照圖3,在S213的步驟中,包括:
S2131、按照指令糾錯策略,依次獲取各個待測Page子集的Page錯誤值。
其中,指令糾錯策略指的是通過ECC指令糾錯,先將資料寫到待測Page子集的各個儲存單元中,然後再讀出來進行比較,並統計錯誤的bit數的方法,ECC指令糾錯計算出的bit數的絕對值越大,該待測Page子集的Page錯誤值也越大。
S2132、基於Page錯誤閾值和各個Page錯誤值,依次按照壞Page篩選策略,從各個待測Page子集中選取不滿足Page有效條件的待測Page子集作為失效Page子集。
其中,壞Page篩選策略是通過比較Page錯誤值和Page錯誤閾值,判斷待測Page子集是否滿足Page有效條件的方法。若待測Page子集的Page錯誤值大於等於Page錯誤閾值,則可將該待測Page子集判斷為失效Page子集。
S2133、基於對應於失效Page子集的原始Page子集獲取壞Page元素,獲取包含所有壞Page元素的集合作為壞Page總集。
其中,每一個失效Page子集對應的待測Page子集均不滿足Page有效條件,因此可以將對應於各個失效Page子集的Page評估為bad Page,而基於各個bad Page獲取各個壞Page元素,相當於通過各個壞Page元素標記每一個bad Page。將壞Page總集重置為空集後,將所有獲取到的壞Page元素加入壞Page總集中,則相當於使當前的壞Page總集包含了所有的bad Page,完成bad Page範本的更新。
值得注意的是,在當前的步驟中,各個Page中不為bad Page的Page會被評估為good Page,good Page的數量應至少為Page總數量的30%。
S22、按照壞頁干擾排除策略,基於壞Page總集從Column總集中獲取待測Column子集,按照壞行判斷策略,基於Column錯誤閾值依次分析各個待測Column子集,從Block總集中獲取壞Column元素,並基於壞Column元素更新壞Column總集。
其中,按照壞頁干擾排除策略指的是降低當前的bad Page對本步驟中bad Column的評估的干擾的方法。待測Column子集指的是與其對應的Column總集中需要進行糾錯指令檢測的儲存單元。壞行判斷策略指的是通過讀寫檢測待測Column子集的錯誤數並與Column錯誤閾值進行比較,來評估對應於該待測Column子集的Column是否為bad Column的方法。
由於壞Page總集中的每一個bad Page內的所有儲存單元都已經被評估為在儲存資料時需要跳過的儲存單元,若這部分儲存單元再次參與對Column的分析,則會影響分析結果的準確性,導致bad Column的數量可能會過多,想當於產生了虛假的bad Column;因此,需要先抽取各個Column總集中的待測Column子集,來將降低當前的bad Page對各個Column總集的影響,然後再更新bad Column範本。
參照圖4,在S22的步驟中,包括:
S221、將壞Page總集映射於各個原始Column子集,獲取各個對應的干擾Column子集。
其中,將壞Page總集映射於原始Column子集,可以獲取壞Page總集與原始子集之間的交點,相當於獲取bad Page與Column之間的重疊的儲存單元。每一個原始Column子集均對應設置有一個干擾Column子集,而干擾Column子集則包含了該原始Column子集內與當前bad Page重疊的所有儲存單元。
S222、依次獲取各個干擾Column子集在與其對應的各個原始Column子集中的補集,生成各個對應於各個原始Column子集的待測Column子集。
其中,每一個原始Column子集均對應設置有一個干擾Column子集。對於任意一原始Column子集而言,干擾Column子集包含了該原始Column子集中與當前bad Page重疊的儲存單元;因此干擾Column子集在該原始Column子集中的補集,即干擾Column子集,則包含了所有受當前bad Page影響較小且需要參與Column分析的儲存單元。
S223、按照壞頁判斷策略,基於Column錯誤閾值依次分析各個待測Column子集,從Block總集中獲取壞Column元素,並基於壞Column元素更新壞Column總集。
其中,壞頁判斷策略指的是通過分析待測Column子集中的儲存單元,來評估對應於待測Column子集的Column的損壞程度的方法,若該Column的損壞程度達到Column錯誤閾值對應的程度,則需要將該Column評估為bad Column,並基於該Column生成壞Column元素,記錄到壞Column總集中。
參照圖4,在S223的步驟中,包括:
S2231、按照指令糾錯策略,依次獲取各個待測Column子集的Column錯誤值。
其中,指令糾錯策略指的是通過ECC指令糾錯,先將資料寫到待測Column子集的各個儲存單元中,然後再讀出來進行比較,並統計錯誤的bit數的方法,ECC指令糾錯計算出的bit數的絕對值越大,該待測Column子集的Column錯誤值也越大。
S2232、基於Column錯誤閾值和各個Column錯誤值,依次按照壞Column篩選策略,從各個待測Column子集中選取不滿足Column有效條件的待測Column子集作為失效Column子集。
其中,壞Column篩選策略是通過比較Column錯誤值和Column錯誤閾值,判斷待測Column子集是否滿足Column有效條件的方法。若待測Column子集的Column錯誤值大於等於Column錯誤閾值,則可將該待測Column子集判斷為失效Column子集。
S2233、基於對應於失效Column子集的原始Column子集獲取壞Column元素,獲取包含所有壞Column元素的集合作為壞Column總集。
其中,每一個失效Column子集對應的待測Column子集均不滿足Column有效條件,因此可以將對應於各個失效Column子集的Column評估為bad Column,而基於各個bad Column獲取各個壞Column元素,相當於通過各個壞Column元素標記每一個bad Column。將壞Column總集重置為空集後,將所有獲取到的壞Column元素加入壞Column總集中,則相當於使當前的壞Column總集包含了所有的bad Column,完成bad Column範本的更新。
值得注意的是,在當前的步驟中,各個Column中不為bad Column的Column會被評估為good Column,good Column的數量應至少為Column總數量的30%。
S3、基於對應於不同Column錯誤閾值的各個壞Column總集和各個壞Page總集,按照壞範本疊代策略更新Column錯誤閾值,從各個壞Column總集中獲取最終Column總集,並從各個壞Page總集中獲取最終Page總集。
其中,通過更新錯誤閾值的方式,可以多個對應於不同錯誤閾值的壞Page總集和/或壞Column總集,而通過進行篩選比較判斷,可從多個錯誤閾值中選取足以滿足需求的錯誤閾值,並獲取對應於該Page錯誤閾值的壞Page總集為最終Page總集,獲取對應於該Column錯誤閾值的壞Column總集為最終Column總集,以使最終獲得的壞Block範本更加準確。
參照圖5,在S3的步驟中,包括:
S31、建立用於儲存各個對應於不同的錯誤閾值的待對比範本的範本庫。
其中,待對比範本為當前的bad Page範本和/或bad Column範本在更新前的bad Page範本和/或bad Column範本;範本庫儲存待對比範本用於與當前的bad Page範本和/或bad Column範本進行比較。值得注意的是,待對比範本相當於是最終壞Block範本的候選範本,當待對比範本滿足需求條件時,可從待對比範本中獲取最終壞Block範本。
S32、按照範本對比策略,判斷當前的範本庫中完整的錯誤閾值是否存在滿足有效容量條件的最小值,若是則執行S34;若否則執行S33。
其中,按照範本對比策略指的是使當前的bad Page範本和/或bad Column範本與上一個的bad Page範本和/或bad Column範本進行比較,來評估錯誤閾值更新後產生的影響程度的方法;由於錯誤閾值越大,Flash分析檢測完成後的有效容量會趨向於變小,但錯誤閾值越大,則bad Page範本和/或bad Column範本的精准度會趨向於變小,因此需要選取滿足有效容量的最小的錯誤閾值;若這個錯誤閾值未能在當前的步驟中被選取出,應繼續更新錯誤閾值進行疊代,直到滿足有效容量條件的最小的錯誤閾值被成功選取出。值得注意的是,當前的範本庫中完整的錯誤閾值存在滿足有效容量條件的最小值,指的是同時存在滿足有效容量條件的最小Column錯誤閾值以及滿足有效容量條件的最小Page錯誤閾值。
參照圖5和圖6,在S3的步驟中,包括:在S32的步驟中,包括:
S321、判斷當前的範本庫是否存在待對比範本,若是則執行S322;若否則執行S323。
其中,若當前的範本庫中不存在待對比範本,則說明當前的bad Page範本和/或bad Column範本並未經過錯誤閾值的更新,範本庫中也沒有可進行對比的範本,無法判斷是否滿足需求條件。若當前的範本庫中存在待對比範本,則需要將當前的bad Page範本和/或bad Column範本與當前的待對比範本進行對比分析。
S322、判斷待對比範本是否滿足疊代終止條件,若是則執行S34;若否則執行S33。
其中,當待對比範本中的壞Column總集和待對比範本中的壞Page總集同時滿足疊代終止條件時,滿足有效容量的最小的錯誤閾值出現,因此可停止錯誤閾值的更新,並基於判斷結果選取最終Column總集和/或最終Page總集。
參照圖6和圖7,在S322的步驟中,包括:
S3221、預設Column有效閾值,基於Column有效閾值判斷當前待對比範本中的壞Column總集是否滿足有效容量條件,若是則執行S3222;若否則執行S331。
其中,由於bad Column越多,將資料儲存到各個Column時需要跳過的Column也越多,因此需要限定bad Column的總數量,而Column有效閾值指的是bad Column數量的最大值。當壞Column總集中的元素數量大於等於Column有效閾值時,代表當前的bad Column的數量過多,各個Column的有效容量不滿足需求,因此需要減少Column錯誤閾值的數值,並使bad Column範本疊代更新。
S3222、預設Column疊代閾值,基於Column疊代閾值分析待對比範本和壞Column總集,判斷待對比範本是否滿足容量變化條件,若是則執行S3223;若否則執行S331。
其中,待對比範本內的壞Column總集是當前壞Column總集的上一個壞Column總集;當Column錯誤閾值變化後,當前壞Column總集內的元素總數與上一個壞Column總集內的元素總數之間的差值,可反映出Column錯誤閾值的變化對上一個壞Column總集造成的影響,而這個影響越小,則表示Column錯誤閾值改變對待對比範本更新疊代的意義越小,Column錯誤閾值還需要進行更新;反之則表示Column錯誤閾值改變對待對比範本更新疊代的意義越大。Column疊代閾值指的是壞Column總集更新前後的數量變化的最小值,為了使最終獲得的bad Column範本更加準確且受Column錯誤閾值變化的影響更小,需要選取壞Column總集更新前後的數量變化量小於Column疊代閾值的待對比範本作為bad Column範本,因此若壞Column總集更新前後的數量變化量小於Column疊代閾值,則當前的待對比範本滿足容量變化條件。
具體的,基於Column疊代閾值分析待對比範本和壞Column總集,判斷待對比範本是否滿足容量變化條件,若是則執行S3223;若否則執行S331的步驟中,包括:
獲取待對比範本內的壞Column總集內的元素總量與當前的壞Column總集內的元素總量之差的絕對值為Column比較值,比較Column比較值和Column疊代閾值,若Column比較值小於Column疊代閾值,則執行S3223;若Column比較值大於等於Column疊代閾值,則執行S331。
S3223、預設Page有效閾值,基於Page有效閾值判斷當前待對比範本中的壞Page總集是否滿足有效容量條件,若是則執行S3224;若否則執行S332。
其中,此時,較為準確的bad Column範本已經被獲取,需要選取較為準確的bad Page範本。由於bad Page越多,將資料儲存到各個Page時需要跳過的Page也越多,因此需要限定bad Page的總數量,而Page有效閾值指的是bad Page數量的最大值。當壞Page總集中的元素數量大於等於Page有效閾值時,代表當前的bad Page的數量過多,各個Page的有效容量不滿足需求,因此需要減少Page錯誤閾值的數值,並使bad Page範本疊代更新。
S3224、預設Page疊代閾值,基於Page疊代閾值分析待對比範本和壞Page總集,判斷待對比範本是否滿足容量變化條件,若是則執行S34;若否則執行S332。
其中,待對比範本內的壞Page總集是當前壞Page總集的上一個壞Page總集;當Page錯誤閾值變化後,當前壞Page總集內的元素總數與上一個壞Page總集內的元素總數之間的差值,可反映出Page錯誤閾值的變化對上一個壞Page總集造成的影響。Page疊代閾值指的是壞Page總集更新前後的數量變化的最小值,為了使最終獲得的bad Page範本更加準確且受Page錯誤閾值變化的影響更小,需要選取壞Page總集更新前後的數量變化量小於Page疊代閾值的待對比範本作為bad Page範本,因此若壞Page總集更新前後的數量變化量小於Page疊代閾值,則當前的待對比範本滿足容量變化條件。
具體的,在基於Page疊代閾值分析待對比範本和壞Page總集,判斷待對比範本是否滿足容量變化條件,若是則執行S34;若否則執行S332的步驟中,包括:
獲取待對比範本內的壞Page總集內的元素總量與當前的壞Page總集內的元素總量之差的絕對值為Page比較值,比較Page比較值和Page疊代閾值,若Page比較值小於Page疊代閾值,則執行S34;若Page比較值大於等於Page疊代閾值,則執行S332。
S323、獲取包含當前壞Column總集和當前壞Page總集的待對比範本,並將待對比範本儲存到範本庫中。 此時,當前的範本庫中不存在待對比範本,當前的bad Page範本為第一次更新獲取的bad Page範本,當前的bad Column範本也為第一次更新獲取的bad Column範本,因此需要將當前的bad Page範本和當前的bad Page範本bad Column範本作為待對比範本加入範本庫中。
參照圖6,S33、基於判斷結果更新錯誤閾值,基於壞Column總集和壞Page總集更新待對比範本,並儲存進範本庫中,並返回S2。
其中,由於錯誤閾值包括有Column錯誤閾值和Page錯誤閾值,因此需要基於判斷結果判斷是當前的Column錯誤閾值不為滿足有效容量條件的最小值,或是Page錯誤閾值不為滿足有效容量條件的最小值;而在更新完成Column錯誤閾值和/或Page錯誤閾值後,需要將當前的壞Column總集和當前的壞Page總集同時作為新的待對比範本儲存進範本庫中,此時舊的待對比範本被當前的壞Column總集和當前的壞Page總集代替。
參照圖6和圖7,在S33的步驟中,包括:
S331、預設Column更新值,獲取Column更新值與Column錯誤閾值之差的絕對值作為Column錯誤閾值,將當前的壞Column總集更新至待對比範本中,並返回S211。
其中,Column錯誤閾值更新的過程是Column錯誤閾值逐漸減少的過程,Column更新值指的是Column錯誤閾值每更新一次需要減去的數值。當Column錯誤閾值更新完後,則將當前的壞Column總集取代待對比範本中的壞Column總集,相當於將當前的bad Column範本作為新的待對比範本,等待與後續更新的bad Column範本進行比較。Column錯誤閾值和bad Column範本均會一直更新,直到滿足要求的較為準確的bad Column範本出現。
S332、預設Page更新值,獲取Page更新值與Page錯誤閾值之差的絕對值作為Page錯誤閾值,將當前的壞Page總集更新至待對比範本中,並返回S211。
此時,較為準確的bad Column範本已經被獲取,需要通過更新Page錯誤閾值,來選取較為準確的bad Page範本。Page更新值指的是Page錯誤閾值每更新一次需要減去的數值,當Page錯誤閾值更新完後,則將當前的壞Page總集代替待對比範本中的壞Page總集,相當於將當前的bad Page範本作為新的待對比範本,等待與後續更新的bad Page範本進行比較。
S34、基於判斷結果生成最終Column總集和最終Page總集。
此時,待對比範本中的壞Column總集對應的Column錯誤閾值為滿足有效容量條件的最小值,因此獲取待對比範本中的壞Column總集作為最終Column總集;同時,待對比範本中的壞Page總集對應的Page錯誤閾值為滿足有效容量條件的最小值,因此獲取待對比範本中的壞Page總集作為最終Page總集。
S4、基於最終Column總集和最終Page總集更新初始壞Block範本,獲取最終壞Block範本,使用最終壞Block範本分析讀寫所有Block,獲取Flash的有效容量。
此時,最終Column總集代表的bad Column範本為最終的較為準確的bad Column範本,最終Page總集代表的bad Page範本為最終的較為準確的bad Page範本。因此,將最終Column總集代替初始壞Block範本中的壞Column總集,將最終Page總集代替初始壞Block範本中的壞Page總集,然後獲取初始壞Block範本作為最終壞Block範本,可獲取較為準確的壞Block範本,使用最終壞Block範本分析讀寫所有Block後,可較為精確的獲取Flash的有效容量。
本實施例的實施原理為:在Nand Flash中包含有多個Block,其中一個Block相當於一個矩陣,Page相當於矩陣中的列,而Column相當於矩陣中的行;bad Page範本可標出若干個Page,在資料儲存時,需要跳過這部分Page;bad Column範本可標出若干個Column,在資料儲存時,需要跳過這部分Column。在分析檢測Nand Flash中,先預設一個初始的bad Page範本和一個初始的bad Column範本,且此時bad Page範本和bad Column範本均為空集,然後從各個Page中獲取bad Page並更新bad Page範本,再從各個Column中獲取bad Column並更新bad Column範本。這個依次更新bad Page範本和bad Column範本的過程,相當於先假定沒有bad Column的情況下更新bad Page範本,然後再基於當前的bad Page範本更新bad Column範本,其中,由於上述過程從一開始就獲取了bad Page,因此可以先將各個Page中由於物理性質就已經損壞的部分Page先獲取出來,減少這部分Page對各個Column的評估的干擾,進而提高bad Column範本的準確率,減少虛假bad Column的產生,降低虛假bad Column過多導致Nand Flash分析檢測後的有效容量過低的風險。
另一方面, bad Page範本和bad Column範本的依次更新形成了壞Block範本的更新,且在本實施例中,壞Block範本會發生多次更新疊代,而bad Page範本的更新與bad Column範本的更新會相互影響,從一開始就提高bad Column範本的準確率的方式可以在後續的疊代更新中提高壞Block範本整體的準確率。
由於bad Page的好壞和bad Column的好壞均沒有絕對明確的界限,即bad Page和bad Column均沒有一個完全準確的標準,因此需要預設錯誤閾值並使錯誤閾值更新,然後從多個錯誤閾值中獲取相對準確的錯誤閾值,作為判斷bad Page和/或bad Column好壞的相對標準。錯誤閾值包括Page錯誤閾值和Column錯誤閾值,Page錯誤閾值和/或Column錯誤閾值每更新一次,壞Block範本就發生一次疊代。Page錯誤閾值的更新可使bad Page範本發生疊代,通過對比當前的bad Page範本和疊代前的bad Page範本,可以評估疊代前的bad Page範本是否受Column錯誤閾值影響較小且滿足有效容量需求,最終獲取較為準確的bad Page範本;同理,通過Column錯誤閾值的更新可使bad Column範本發生疊代。
獲取了最終的bad Page範本和最終的bad Column範本之後,可以獲取最終壞Block範本,而通過最終壞Block範本寫讀比較所有的Block之後,可以獲取當前的Nand Flash的有效容量。經過多次疊代後的壞Block範本較為精確,一方面減少虛假bad Column的產生,提高了Nand Nand Flash分析檢測後的有效容量,另一方面可使在Nand Flash中保存的資料更加穩定。 使用最終獲取的bad Column範本去讀寫比較
實施例二:
參照圖6,在一個實施例中,提供一種應用于Flash智慧分析檢測的檢測系統,與上述實施例一中的檢測方法相對應,應用於對Nand Flash的有效容量的分析檢測,該系統包括初始範本建立模組1、範本更新模組2、範本疊代模組3以及最終範本生成模組4。各功能模組詳細說明如下:
初始範本建立模組1,用於獲取Column總集、Page總集,以及包含Column總集和Page總集的Block總集,預設壞Column總集、壞Page總集、可跟隨疊代次數更新的錯誤閾值,以及包含壞Column總集和壞Page總集的初始壞Block範本; 範本更新模組2,用於依次交替按照壞頁選取策略和壞行選取策略,基於錯誤閾值從Block總集中依次交替獲取壞Page元素和壞Column元素,並依次交替更新壞Page總集和壞Column總集;
範本疊代模組3,用於基於對應於不同錯誤閾值的各個壞Column總集和各個壞Page總集,按照壞範本疊代策略更新錯誤閾值,從各個壞Column總集中獲取最終Column總集,並從各個壞Page總集中獲取最終Page總集;
最終範本生成模組4,用於基於最終Column總集和最終Page總集更新初始壞Block範本,獲取最終壞Block範本。
實施例三:
在一個實施例中,提供了一種智慧終端機,其包括記憶體、處理器及儲存在記憶體上並可在處理器上運行的電腦程式,其中記憶體儲存訓練模型中的訓練資料、演算法公式以及濾波機制等。處理器用於提供計算和控制能力,處理器執行電腦程式時實現以下步驟:
S1、獲取Column總集、Page總集,以及包含Column總集和Page總集的Block總集,預設壞Column總集、壞Page總集、可跟隨疊代次數更新的錯誤閾值,以及包含壞Column總集和壞Page總集的初始壞Block範本;
S2、依次交替按照壞頁選取策略和壞行選取策略,基於錯誤閾值從Block總集中依次交替獲取壞Page元素和壞Column元素,並依次交替更新壞Page總集和壞Column總集;
S3、基於對應於不同錯誤閾值的各個壞Column總集和各個壞Page總集,按照壞範本疊代策略更新錯誤閾值,從各個壞Column總集中獲取最終Column總集,並從各個壞Page總集中獲取最終Page總集; S4、基於最終Column總集和最終Page總集更新初始壞Block範本,獲取最終壞Block範本。
實施例四:
在一個實施例中,提供了一種電腦可讀儲存介質,其儲存有能夠被處理器載入並執行上述小面積指紋圖像特徵提取方法的電腦程式,電腦程式被處理器執行時實現以下步驟:
S1、獲取Column總集、Page總集,以及包含Column總集和Page總集的Block總集,預設壞Column總集、壞Page總集、可跟隨疊代次數更新的錯誤閾值,以及包含壞Column總集和壞Page總集的初始壞Block範本;
S2、依次交替按照壞頁選取策略和壞行選取策略,基於錯誤閾值從Block總集中依次交替獲取壞Page元素和壞Column元素,並依次交替更新壞Page總集和壞Column總集;
S3、基於對應於不同錯誤閾值的各個壞Column總集和各個壞Page總集,按照壞範本疊代策略更新錯誤閾值,從各個壞Column總集中獲取最終Column總集,並從各個壞Page總集中獲取最終Page總集;
S4、基於最終Column總集和最終Page總集更新初始壞Block範本,獲取最終壞Block範本。
所述電腦可讀儲存介質例如包括:隨身碟、移動硬碟、唯讀記憶體(Read-Only Memory,ROM)、隨機存取記憶體(Random AColumnColumness Memory,RAM)、磁碟或者光碟等各種可以儲存程式碼的介質。
具體實施方式的實施例均為本申請的較佳實施例,並非依此限制本申請的保護範圍,故:凡依本申請的結構、形狀、原理所做的等效變化,均應涵蓋於本申請的保護範圍之內。
1:初始範本建立模組 2:範本更新模組 3:範本疊代模組 4:最終範本生成模組 S1~S4、S21、S22、S211~S213、S2131~S2133、S221~S223、S2231~S2233、S31~S34、S321~S323、S3221~S3224:步驟
圖1是本申請的檢測方法的流程示意圖。 圖2是本申請的檢測方法中的排除干擾步驟的流程示意圖。 圖3是本申請的檢測方法中的獲取壞Page總集步驟的流程示意圖。 圖4是本申請的檢測方法中的獲取壞Column總集步驟的流程示意圖。 圖5是本申請的檢測方法中的更新Column總集和更新Page總集的流程示意圖。 圖6是本申請的檢測方法中的獲取待對比範本步驟的流程示意圖。 圖7是本申請的檢測方法中的獲取最終Column總集和獲取最終Page步驟的流程示意圖。 圖8是本申請的檢測系統的結構方塊圖。
S1~S4:步驟

Claims (10)

  1. 一種應用于Flash智慧分析檢測的檢測方法,其中,包括以下步驟: S1、獲取Column總集、Page總集,以及包含Column總集和Page總集的Block總集,預設壞Column總集、壞Page總集、可跟隨疊代次數更新的錯誤閾值,以及包含壞Column總集和壞Page總集的初始壞Block範本; S2、依次交替按照壞頁選取策略和壞行選取策略,基於錯誤閾值從Block總集中依次交替獲取壞Page元素和壞Column元素,並依次交替更新壞Page總集和壞Column總集; S3、基於對應於不同錯誤閾值的各個壞Column總集和各個壞Page總集,按照壞範本疊代策略更新錯誤閾值,從各個壞Column總集中獲取最終Column總集,並從各個壞Page總集中獲取最終Page總集;以及 S4、基於最終Column總集和最終Page總集更新初始壞Block範本,獲取最終壞Block範本。
  2. 如請求項1所述的方法,其中,在S2的步驟中,包括: S21、按照壞行干擾排除策略,基於壞Column總集從Page總集中獲取待測Page子集,按照壞頁判斷策略,基於錯誤閾值依次分析各個待測Page子集,從Block總集中獲取壞Page元素,並基於壞Page元素更新壞Page總集;以及 S22、按照壞頁干擾排除策略,基於壞Page總集從Column總集中獲取各個待測Column子集,按照壞行判斷策略,基於錯誤閾值依次分析各個待測Column子集,從Block總集中獲取壞Column元素,並基於壞Column元素更新壞Column總集。
  3. 如請求項2所述的方法,其中, 在S1的步驟中,還包括:獲取各個原始Column子集和各個原始Page子集,Column總集包含各個原始Column子集,Page總集包含各個原始Page子集; 在S21的步驟中,包括: S211、將壞Column總集映射於各個原始Page子集,獲取各個干擾Page子集; S212、依次獲取各個干擾Page子集在與其對應的各個原始Page子集中的補集,生成各個待測Page子集;以及 S213、按照壞頁判斷策略,基於錯誤閾值依次分析各個待測Page子集,從Block總集中獲取壞Page元素,並基於壞Page元素更新壞Page總集; 在S22的步驟中,包括: S221、將壞Page總集映射於各個原始Column子集中獲取各個干擾Column子集; S222、依次獲取各個干擾Column子集在對應的各個原始Column子集中的補集,作為各個待測Column子集;以及 S223、按照壞行判斷策略,基於錯誤閾值從各個待測Column子集獲取各個壞Column元素,並更新壞Column總集。
  4. 如請求項3所述的方法,其中, 在S213的步驟中,包括: S2131、按照指令糾錯策略,依次獲取各個待測Page子集的Page錯誤值; S2132、基於錯誤閾值和各個Page錯誤值,依次按照壞Page篩選策略,從各個待測Page子集中選取不滿足Page有效條件的待測Page子集作為失效Page子集;以及 S2133、基於對應於失效Page子集的原始Page子集獲取壞Page元素,獲取包含所有壞Page元素的集合作為壞Page總集; 在S223的步驟中,包括: S2231、按照指令糾錯策略,依次獲取各個待測Column子集的Column錯誤值; S2232、基於錯誤閾值和Column錯誤值,按照閾值比較策略,從各個待測Column子集中選取不滿足Column精度條件的待測Column子集作為失效Column子集;以及 S2233、基於對應於失效Column子集的原始Column子集獲取壞Column元素,獲取包含所有壞Column元素的集合作為壞Column總集。
  5. 如請求項1所述的方法,其中, 在S3的步驟中,包括: S31、建立用於儲存各個對應於不同的錯誤閾值的待對比範本的範本庫; S32、按照範本對比策略,判斷當前的範本庫中完整的錯誤閾值是否存在滿足有效容量條件的最小值,若是則執行S34;若否則執行S33; S33、更新錯誤閾值,基於壞Column總集和壞Page總集更新待對比範本,並儲存進範本庫中,並返回S2;以及 S34、基於判斷結果生成最終Column總集和最終Page總集。
  6. 如請求項5所述的方法,其中,在S32的步驟中,包括, S321、判斷當前的範本庫是否存在待對比範本,若是則執行S322;若否則執行S323; S322、判斷待對比範本是否滿足疊代終止條件,若是則執行S34;若否則執行S33;以及 S323、獲取包含當前壞Column總集和當前壞Page總集的待對比範本,並將待對比範本儲存到範本庫中; 在S34的步驟中,還包括:獲取待對比範本中的壞Column總集為最終Column總集,獲取待對比範本中的壞Page總集為最終Page總集。
  7. 如請求項6所述的方法,其中,在S322的步驟中,包括: S3221、預設Column有效閾值,基於Column有效閾值判斷當前待對比範本中的壞Column總集是否滿足有效容量條件,若是則執行S3222;若否則執行S33; S3222、預設Column疊代閾值,基於Column疊代閾值分析待對比範本和壞Column總集,判斷待對比範本是否滿足容量變化條件,若是則執行S3223;若否則執行S33; S3223、預設Page有效閾值,基於Page有效閾值判斷當前待對比範本中的壞Page總集是否滿足有效容量條件,若是則執行S3224;若否則執行S33;以及 S3224、預設Page疊代閾值,基於Page疊代閾值分析待對比範本和壞Page總集,判斷待對比範本是否滿足容量變化條件,若是則執行S34;若否則執行S33。
  8. 一種應用于Flash智慧分析檢測的檢測系統,其中,包括, 初始範本建立模組(1),用於獲取Column總集、Page總集,以及包含Column總集和Page總集的Block總集,預設壞Column總集、壞Page總集、可跟隨疊代次數更新的錯誤閾值,以及包含壞Column總集和壞Page總集的初始壞Block範本; 範本更新模組(2),用於依次交替按照壞頁選取策略和壞行選取策略,基於錯誤閾值從Block總集中依次交替獲取壞Page元素和壞Column元素,並依次交替更新壞Page總集和壞Column總集; 範本疊代模組(3),用於基於對應於不同錯誤閾值的各個壞Column總集和各個壞Page總集,按照壞範本疊代策略更新錯誤閾值,從各個壞Column總集中獲取最終Column總集,並從各個壞Page總集中獲取最終Page總集;以及 最終範本生成模組(4),用於基於最終Column總集和最終Page總集更新初始壞Block範本,獲取最終壞Block範本。
  9. 一種智慧終端機,其中,包括記憶體和處理器,所述記憶體上儲存有能夠被處理器載入並執行如請求項1至7中任一種檢測方法的電腦程式。
  10. 一種電腦可讀儲存介質,其中,儲存有能夠被處理器載入並執行如請求項1至7中任一種檢測方法的電腦程式。
TW111107377A 2021-03-05 2022-03-01 一種應用于Flash智慧分析檢測的檢測方法、系統、智慧終端機以及電腦可讀儲存介質 TWI769124B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110247275.5A CN113053450A (zh) 2021-03-05 2021-03-05 一种应用于Flash智能分析检测的检测方法、系统、智能终端以及计算机可读存储介质
CN202110247275.5 2021-03-05

Publications (2)

Publication Number Publication Date
TWI769124B true TWI769124B (zh) 2022-06-21
TW202236288A TW202236288A (zh) 2022-09-16

Family

ID=76510498

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111107377A TWI769124B (zh) 2021-03-05 2022-03-01 一種應用于Flash智慧分析檢測的檢測方法、系統、智慧終端機以及電腦可讀儲存介質

Country Status (3)

Country Link
US (1) US20220283894A1 (zh)
CN (1) CN113053450A (zh)
TW (1) TWI769124B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115599701B (zh) * 2022-10-13 2023-05-23 深圳三地一芯电子股份有限公司 闪存颗粒容量的计算方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8151163B2 (en) * 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
CN102622306A (zh) * 2012-02-21 2012-08-01 中颖电子股份有限公司 存储装置的坏块管理方法
TWI530957B (zh) * 2014-04-02 2016-04-21 華邦電子股份有限公司 快閃記憶體、壞區塊的管理方法及管理程式
CN109119123A (zh) * 2018-07-20 2019-01-01 江苏华存电子科技有限公司 一种高中低阶闪存的分类方法
US10672497B2 (en) * 2018-04-03 2020-06-02 SK Hynix Inc. Memory system and method for bad block management

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102969028A (zh) * 2012-10-18 2013-03-13 记忆科技(深圳)有限公司 一种ecc动态调整方法、系统及闪存
KR102015053B1 (ko) * 2013-02-20 2019-08-27 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 데이터 처리 방법
US20150331623A1 (en) * 2014-05-16 2015-11-19 Qualcomm Incorporated Method and apparatus for using a defective dynamic read-only memory region
US10157677B2 (en) * 2016-07-28 2018-12-18 Ip Gem Group, Llc Background reference positioning and local reference positioning using threshold voltage shift read
CN106486170B (zh) * 2016-09-06 2019-11-26 深圳忆数存储技术有限公司 固态硬盘的潜在坏块定位方法及装置
CN106681936A (zh) * 2016-12-29 2017-05-17 记忆科技(深圳)有限公司 一种nandflash的坏块管理方法
CN109558269A (zh) * 2018-12-05 2019-04-02 郑州云海信息技术有限公司 一种固态硬盘状态的检测方法、装置和介质
CN110018795A (zh) * 2019-04-11 2019-07-16 苏州浪潮智能科技有限公司 一种block状态的检测方法、装置、设备及存储介质
CN112397136B (zh) * 2021-01-21 2021-05-14 武汉精鸿电子技术有限公司 一种半导体存储器测试软件的参数测试方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8151163B2 (en) * 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
CN102622306A (zh) * 2012-02-21 2012-08-01 中颖电子股份有限公司 存储装置的坏块管理方法
TWI530957B (zh) * 2014-04-02 2016-04-21 華邦電子股份有限公司 快閃記憶體、壞區塊的管理方法及管理程式
US10672497B2 (en) * 2018-04-03 2020-06-02 SK Hynix Inc. Memory system and method for bad block management
CN109119123A (zh) * 2018-07-20 2019-01-01 江苏华存电子科技有限公司 一种高中低阶闪存的分类方法

Also Published As

Publication number Publication date
TW202236288A (zh) 2022-09-16
CN113053450A (zh) 2021-06-29
US20220283894A1 (en) 2022-09-08

Similar Documents

Publication Publication Date Title
CN101529526B (zh) 用于估计和报告闪存盘存储器的预期寿命的方法
US7992061B2 (en) Method for testing reliability of solid-state storage medium
EP2530594A1 (en) System and method of tracking error data within a storage device
US20220215261A1 (en) Analysis of memory sub-systems based on threshold distributions
KR20060051898A (ko) 비휘발성 컴퓨터 메모리를 독출하기 위한 시스템 및 방법
CN113223583B (zh) NAND Flash坏块内数据重读的方法、电子设备及存储介质
CN112486415B (zh) 存储装置的垃圾回收方法及装置
US10854305B2 (en) Using a status indicator in a memory sub-system to detect an event
TWI769124B (zh) 一種應用于Flash智慧分析檢測的檢測方法、系統、智慧終端機以及電腦可讀儲存介質
Peleato et al. BER-based wear leveling and bad block management for NAND flash
CN113257332A (zh) 一种闪存的有效性预测方法、装置及存储介质
CN111459708B (zh) 坏块处理方法及装置
CN116822383A (zh) 设备寿命预测模型构建方法、装置、可读存储介质及设备
CN116434813A (zh) 闪存检测方法、电子设备和存储介质
CN114721602A (zh) 一种基于FreeRTOS的Nor Flash滚动存储方法及装置
US20230297263A1 (en) Method and system for testing conversion relationship between block reading and page reading in flash memory chip
CN106648969B (zh) 一种磁盘中损坏数据巡检方法及系统
US10734079B1 (en) Sub block mode read scrub design for non-volatile memory
CN114281271B (zh) 判断nand闪存数据可靠性的方法、存储介质及存储设备
CN113050888B (zh) 一种快速剔除Flash不稳定块的方法、系统、装置及存储介质
US11468962B2 (en) Performing memory testing using error correction code values
CN114627959A (zh) 闪存检测方法、闪存检测装置、设备及介质
CN110969256A (zh) 训练人工智能更正存储装置的对数概度比的方法
US8780471B2 (en) Linking errors to particular tapes or particular tape drives
CN117095726A (zh) 一种存储介质读取出错的处理方法及装置