TW202111719A - 有效率地檢查快閃記憶體裝置之快閃記憶體之儲存單元的方法、快閃記憶體控制器以及執行該方法的相應電子裝置 - Google Patents

有效率地檢查快閃記憶體裝置之快閃記憶體之儲存單元的方法、快閃記憶體控制器以及執行該方法的相應電子裝置 Download PDF

Info

Publication number
TW202111719A
TW202111719A TW109120183A TW109120183A TW202111719A TW 202111719 A TW202111719 A TW 202111719A TW 109120183 A TW109120183 A TW 109120183A TW 109120183 A TW109120183 A TW 109120183A TW 202111719 A TW202111719 A TW 202111719A
Authority
TW
Taiwan
Prior art keywords
storage unit
flash memory
storage
data
storage units
Prior art date
Application number
TW109120183A
Other languages
English (en)
Other versions
TWI737351B (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 慧榮科技股份有限公司
Publication of TW202111719A publication Critical patent/TW202111719A/zh
Application granted granted Critical
Publication of TWI737351B publication Critical patent/TWI737351B/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/38Response verification devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • 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

Landscapes

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

Abstract

一種檢查快閃記憶體裝置之快閃記憶體之儲存單元的方法,包括:寫入資料至儲存單元;以及執行資料讀取操作以從儲存單元中讀取資料以比較該所讀取之資料及該所寫入之資料以檢查資料是否被正確地寫入至儲存單元,該資料讀取操作包括:執行依序讀取操作以依序地選取出第一儲存單元並從該第一儲存單元中讀取資料;如果該第一儲存單元損壞,則累加連續的損壞儲存單元之個數的值;以及如果該連續的損壞儲存單元之該個數的值大於該第一門檻個數的值,則退出該依序讀取操作並接著執行隨機讀取操作以讀取特定儲存單元的資料。

Description

有效率地檢查快閃記憶體裝置之快閃記憶體之儲存單元的方法、快閃記憶體控制器以及執行該方法的相應電子裝置
本發明係關於一種快閃記憶體的初始化(開卡)機制,尤指用來有效率地檢查一快閃記憶體裝置之一快閃記憶體的多個儲存單元之方法以及執行該方法之相應的電子裝置。
一般來說,當對該快閃記憶體裝置之產品執行開卡時,傳統的快閃記憶體開卡機制係被安排依序地寫入資料至該快閃記憶體裝置之一快閃記憶體的多個儲存單元及從該些儲存單元依序讀取資料,例如,當從一特別的儲存單元讀取資料時,如果該特別的儲存單元之資料是錯誤或不正確的,則該傳統的快閃記憶體開卡機制係用來反復地調整不同的讀取電壓值,而只有當所有調後整的讀取電壓值均無法用來正確地從該特別的儲存單元讀取資料時,該特別的儲存單元才會被判定為一損壞的/壞的(bad)儲存單元,然而,這樣的傳統作法花費較多的時間。此外,由於傳統的快閃記憶體開卡機制仍然會從所有實際已經損壞的多個儲存單元讀取資料,所以亦有相當大的機率是傳統的快閃記憶體開卡機制的效能表現會受限於一群實際上已經損壞的連續多個儲存單元。
因此本發明之目的之一在於提供一種可有效率地檢查一快閃記憶體裝置之一快閃記憶體的多個儲存單元之方法以及相應的電子裝置,以解決上述提到的難題並增進效率。
根據本發明實施例,其係提供一種用於檢查一快閃記憶體裝置之一快閃記憶體之多個儲存單元的方法,該方法包含有:寫入資料至該多個儲存單元;以及執行一資料讀取操作以從該多個儲存單元中讀取資料以比較該所讀取之資料及該所寫入之資料以檢查資料是否被正確地寫入至該多個儲存單元,以及該資料讀取操作包含有:根據該多個儲存單元之多個序號,執行一依序讀取操作以依序地選取出一第一儲存單元並從該第一儲存單元中讀取資料;判斷該第一儲存單元是否損壞;如果該第一儲存單元損壞,則累加連續的損壞儲存單元之一個數的值;判斷該連續的損壞儲存單元之該個數的值是否大於一第一門檻個數的值;以及如果該連續的損壞儲存單元之該個數的值大於該第一門檻個數的值,則退出該依序讀取操作並接著執行一隨機讀取操作以讀取一特定儲存單元之資料,其中該特定儲存單元具有一序號,該序號不連續於該多個儲存單元之一第一部分的多個序號,以及該特定儲存單元之該序號不連續於該第一儲存單元之一序號。
根據本發明實施例,其另提供一種電子裝置,該電子裝置包含一記憶體、一介面電路以及一處理器。介面電路經由一內部匯流排而耦接於該該記憶體,該介面電路係要被耦接於該內部匯流排及一快閃記憶體裝置之一快閃記憶體控制器之間,該快閃記憶體裝置係另包含一快閃記憶體。處理器經由該內部匯流排而耦接於該記憶體及該介面電路,用以執行一儲存單元檢查程序以控制該快閃記憶體控制器來執行:寫入資料至多個儲存單元;以及執行一資料讀取操作以從該多個儲存單元讀取資料以比較該所讀取之資料及該所寫入之資料來檢查資料是否有被正確地寫入至該多個儲存單元,以及該資料讀取操作包含有:根據該多個儲存單元之多個序號來執行一依序讀取操作以依序地選取一第一儲存單元及從該第一儲存單元讀取資料;判斷該第一儲存單元是否損壞;如果該第一儲存單元是損壞的,則累加連續的損壞儲存單元之一個數的值;判斷該連續的損壞儲存單元之該個數的值是否大於一第一門檻個數的值;以及如果該連續的損壞儲存單元之該個數的值大於該第一門檻個數的值,則退出該依序讀取操作並接著執行一隨機讀取操作來讀取出一特定儲存單元之資料,其中該特定儲存單元具有一序號,該序號係不連續於多個儲存單元之一第一部分之多個序號,以及該特定儲存單元之該序號係不連續於該第一儲存單元之一序號。
本發明旨在於提供一種能夠增進對一快閃記憶體裝置之產品執行初始化(開卡)的效率及速度的技術解決方案及程序/方法,其中該快閃記憶體裝置包含一快閃記憶體及一快閃記憶體控制器,具體而言,所提供之技術解決方案及程序/方法例如可適用對於快閃記憶體裝置之降級產品(downgraded product),然而,這並非是本發明的限制,舉例來說,該快閃記憶體裝置總共可包含有2n 個十億位元組(gigabytes (GB))的儲存空間,其中n為正整數,而這樣的快閃記憶體裝置之降級產品例如可具有小於2n 個十億位元組之儲存空間的位元組大小,例如該快閃記憶體裝置之降級產品的快閃記憶體中所包含之多個儲存單元的一部分可能因為多種不同的原因而有所損傷致使變成損壞的儲存單元,造成該降級產品例如只具有2n 個十億位元組的一半儲存空間的大小。
本發明所提供之技術解決方案及程序/方法係被安排用來有效率地初始化(開卡)該快閃記憶體裝置之降級產品,在一時間限制到期之前通過寫入資料至該多個儲存單元並從該多個儲存單元讀取資料來檢查包含於該快閃記憶體內的多個儲存單元。應注意的是,由於可能改變並調整用於一儲存單元的一讀取電壓,因此從一儲存單元讀取資料的操作有時候需要等候較長的時間,例如一讀取電壓表可記錄八種不同的讀取電壓值,而從一儲存單元讀取資料的操作會根據該八種不同讀取電壓值依序地調整實際讀取電壓值來從該儲存單元讀取資料,當使用八種所有不同讀取電壓值均無法正確地從該儲存單元讀取資料時,該儲存單元會被識別為一壞的(bad)/損壞的儲存單元。
本發明所提供之技術解決方案及程序/方法可以於初始化該閃記憶體裝置時,盡可能地避免該快閃記憶體控制器連續地/持續不斷地檢查有較大機率成為損壞儲存單元的一或多個儲存單元以及等效上可被用來檢查有較大機率是沒有損壞之儲存單元的一或多個儲存單元,如此,本發明所提供之技術解決方案及程序/方法可以在該時間限制到期前盡可能地令被開卡的快閃記憶體裝置具有較大的總儲存容量。
請參照第1A圖及第1B圖,第1A圖及第1B圖顯示了本發明一實施例能夠快速地檢查於一快閃記憶體裝置之一快閃記憶體中的多個儲存單元(例如多個儲存區塊(block)或多個儲存頁(page)/區域(sector))之一快閃記憶體開卡程序/過程的一儲存單元檢查程序之流程圖,倘若可達到相同的結果,並不需要一定照第1A、1B圖所示之流程中的步驟順序來執行,且第1A、1B圖所示之步驟不一定要連續執行,亦即其他步驟亦可插入其中;本發明的方法的流程步驟詳述如下:
步驟105:開始;
步驟110:寫入資料至該快閃記憶體的多個儲存單元;
步驟115:執行該依序讀取操作,基於該多個儲存單元的多個序號,依序地從該多個儲存單元選取出一個儲存單元並接著從該所選取之儲存單元讀取資料;
步驟120:比較從該所選取之儲存單元所讀取的資料及原先被寫入至該所選取之儲存單元的資料,判斷該所選取之儲存單元是否係為一好的(good)儲存單元或為一壞的儲存單元;如果該所選取之儲存單元是一好的儲存單元,則流程執行步驟125A,反之,則流程執行步驟125B;
步驟125A:將該所選取之儲存單元的檢查結果,於一損壞儲存單元檢查表之該所選取之儲存單元之一相應的欄位上記錄為‘N’,以表示出該所選取之儲存單元已經被識別檢查為一沒有損壞的儲存單元;
步驟125B:將該所選取之儲存單元的檢查結果,於該損壞儲存單元檢查表之該所選取之儲存單元之一相應的欄位上記錄為‘Y’,以表示出該所選取之儲存單元已經被識別檢查為一損壞的儲存單元;
步驟130:更新連續的損壞儲存單元之個數SBN的值;
步驟132:通過比較已經被檢查過之儲存單元的個數SUN的值及在該快閃記憶體中的全部儲存單元之個數的值及/或基於該時間限制是否到期之資訊,來決定該儲存單元檢查程序是否完成;如果該儲存單元檢查程序已完成,則流程執行步驟175,反之,流程執行步驟135;
步驟135:判斷該個數SBN的值是否大於一門檻個數TH1的值來判斷是否要退出/退出依序讀取操作的模式;如果個數SBN的值大於門檻個數TH1的值,則流程執行步驟140,反之,流程執行步驟115;
步驟140:將個數SBN的值重置為零並退出依序讀取操作的模式;
步驟145:執行該隨機讀取操作,基於一隨機序號,從剩餘的多個儲存單元中隨機地選取一儲存單元並接著從所選取之儲存單元讀取資料;
步驟150:比較從該所選取之儲存單元所讀取的資料及原先被寫入至該所選取之儲存單元的資料來判斷該所選取之儲存單元是否係為一好的儲存單元或為一壞的儲存單元;如果所選取之儲存單元係為一好的儲存單元,則流程執行步驟155A,反之,則流程執行步驟155B;
步驟155A:將所選取之儲存單元之檢查結果,於該損壞儲存單元檢查表上之該所選取之儲存單元的一相應欄位上記錄為‘N’,以表示出所選取之儲存單元已經被識別或檢查為一沒有損壞的儲存單元;
步驟155B:將所選取之儲存單元之檢查結果,於該損壞儲存單元檢查表上之該所選取之儲存單元的該相應欄位上記錄為‘Y’,以表示出所選取之儲存單元已經被識別或檢查為一損壞的儲存單元;
步驟160:更新從該所隨機選取之儲存單元開始的一或多個沒有損壞的儲存單元之個數RGN的值;
步驟165:判斷個數RGN的值是否大於一門檻個數TH2的值來決定是否要退出該隨機讀取操作的模式;如果該個數RGN的值大於該門檻個數TH2的值,則流程執行步驟170A,反之,流程執行步驟170B;
步驟170A:將該個數RGN的值重置為零並退出隨機讀取操作的模式以進入至依序讀取操作的模式,以及流程執行步驟115;
步驟170B:選取下一個儲存單元(該儲存單元所具有之序號為該先前所選取之儲存單元之序號的下一個序號),並接著從該所選取之儲存單元讀取資料,以及該流程執行步驟150;以及
步驟175:結束。
參照第2圖,第2圖是本發明一實施例之電子裝置200的方塊示意圖,當對該快閃記憶體裝置205執行初始化(開卡)時,電子裝置200執行或進行在第1A圖及第1B圖之該快閃記憶體初始化程序/過程之該儲存單元檢查程式以控制一快閃記憶體控制器215來檢查一快閃記憶體210,如第2圖所示,該電子裝置200例如是一電腦裝置(例如一個人電腦裝置)並包含有該處理器220(例如是一中央處理單元(central processing unit,CPU))、一記憶體225以及一介面電路230,該些電路係通過一內部匯流排而耦接,該快閃記憶體裝置205例如可以是一快閃記憶卡、安全數位儲存卡(security digital (SD) memory card)、一固態硬碟(SSD)或任何的快閃記憶體的產品。
當於工廠端製造並初始化包含有該快閃記憶體210及該快閃記憶體控制器215的該快閃記憶體裝置205時,該快閃記憶體初始化程序係通過使用可執行於及啟動於處理器220的一軟體程式包來實現,該處理器220執行該軟體程式包從該介面電路230(例如是USB介面電路)發送多個控制命令,經由該外部的匯流排(例如通用序列匯流排(USB))而至該快閃記憶體控制器215,以控制該快閃記憶體控制器215對該快閃記憶體210執行讀取/寫入操作以檢查該快閃記憶體210的多個儲存單元,而一或多個儲存單元的相應的檢查結果可以經由該外部匯流排、介面電路230及該內部匯流排從該快閃記憶體控制器215傳輸回至該處理器220,因此,執行該快閃記憶體初始化程序的該處理器220可得到該多個儲存單元中的哪一個部分是沒有損壞的資訊,以及如果該裝置205作為一降級的快閃記憶體產品的話,則也可以得到該快閃記憶體裝置205之降級產品的儲存容量大小的資訊。
上述的儲存單元檢查程序/方法係被安排用來檢查該快閃記憶體裝置205之該快閃記憶體210所包含的多個儲存單元是否為好的/未損壞的儲存單元或是係為壞的/已經損壞的儲存單元,該多個儲存單元例如可以是多個儲存區塊、多個儲存頁或是多個儲存區域,這並非是本發明的限制,該快閃記憶體210例如可包含有多個儲存區塊,每一儲存區塊包含有多個儲存頁,而每一儲存頁包含有多個儲存區域。
實作上,對於從該快閃記憶體210讀取資料,該快閃記憶體裝置205包含有一區塊模式(block mode)以及一頁模式(page mode),其中快閃記憶體裝置205的該快閃記憶體控制器215在該區塊模式中係被安排用來從該快閃記憶體210以區塊大小為單位來讀取資料,而該快閃記憶體控制器215在該頁模式中係被安排用來從該快閃記憶體210以儲存頁單元大小為單位來讀取資料,此外,在一實施例,該快閃記憶體裝置205可另包含有一儲存區域模式(sector mode),該快閃記憶體控制器215在該儲存區域模式中可以來從該快閃記憶體210以儲存區域單元大小(sector unit)為單位來讀取資料。
對於檢查一個或每一個儲存單元,該快閃記憶體初始化程序係被安排用來控制該快閃記憶體控制器215以寫入資料至該多個儲存單元並接著執行一資料讀取操作以從該多個儲存單元讀取資料來比較所讀取之資料及所寫入之資料以檢查所讀取之資料是否匹配符合於所寫入之資料,該資料讀取操作包含有一依序讀取操作的模式以及一隨機讀取操作的模式,應注意的是,該快閃記憶體初始化程序可控制該快閃記憶體控制器215每次寫入資料至一儲存單元並接著執行該資料讀取操作來從該儲存單元讀取資料以比較該所讀取之資料及該所寫入之資料來檢查該所讀取之資料是否匹配符合於該所寫入之資料,然而這並非是本發明的限制,在接下來的段落中,對於將該快閃記憶體裝置205開卡來說,一名使用者可以啟動該快閃記憶體初始化程序(或該儲存單元檢查程序)的軟體程式包來將其執行於該處理器220上以控制該快閃記憶體控制器215存取/寫入/讀取該快閃記憶體210的多個儲存單元之資料以檢查該快閃記憶體210的該多個儲存單元。
一開始時,該控制器215係被控制用以根據該多個儲存單元的多個序號執行該依序讀取操作每次依序選取出一儲存單元並接著從所依序選取出的儲存單元讀取資料,接著該控制器215係被控制用來比較從該依序所選取之儲存單元所讀出的資料及原先寫入至所選取之儲存單元的資料來決定該依序所選取之儲存單元是否係為一好的/未損壞的儲存單元,如果該依序所選取之儲存單元是沒有損壞的,則該控制器215係被控制用來將該依序所選取之儲存單元的檢查結果記錄於一損壞儲存單元檢查表上該依序所選取之儲存單元的一相應欄位中並記錄為‘N’,以表示該依序所選取之儲存單元已經被識別或檢查為一好的儲存單元,另外,如果該依序所選取之儲存單元是損壞的,則該控制器215係被控制用來將該依序所選取之儲存單元的檢查結果記錄於該損壞儲存單元檢查表上該依序所選取之儲存單元的該相應欄位中並記錄為‘Y’,以表示該依序所選取之儲存單元已經被識別或檢查為一壞的儲存單元,該相應的欄位之資訊在記錄檢查結果之前例如是空的。
舉例來說,該損壞儲存單元檢查表的一實施例可舉例如下:
儲存單元的序號 壞的儲存單元?
1 Y
2 N
3 Y
4 Y
5 N
6 N
7 N
如上所述,‘Y’表示序號為1、3、4的儲存單元已經被檢查為是壞的/損壞的儲存單元,而‘N’表示了序號為2、5、 6、7的其他儲存單元已經被檢查為是好的/沒有損壞的儲存單元,此外,如果一個儲存單元還沒有被檢查,則與該儲存單元有關的一相應欄的資訊會是空的。
接著,在步驟130中,該控制器215係被控制用來更新連續的損壞儲存單元的個數SBN的值,此外,在步驟132中,該控制器215被安排用來更新已經被檢查過的儲存單元之個數SUN的值,如果上述所選取的儲存單元係為具有第一個序號的第一個儲存單元並被識別為一壞的儲存單元的話,則該控制器215被控制用來將個數SBN的值更新為1,在這個情況中,個數SUN的值也等於1,由於個數SUN的值小於總儲存單元的個數的值,所以該流程會執行步驟135。
在步驟135中,該控制器215被控制用來比較個數SBN的值及門檻個數TH1的值(例如10,但不限定),接著流程從步驟135執行步驟115,依序選取並讀取下一個儲存單元。如果個數SBN的值大於門檻個數TH1的值,則此表示該控制器215會根據多個儲存單元的多個序號從該多個儲存單元的一部分中讀取資料,其中該多個儲存單元的該部分係為多個壞的/損壞的儲存單元,該些壞的/損壞的儲存單元於為該多個儲存單元中的多個連續的儲存單元,亦即,等效上該控制器215可判斷該些連續的儲存單元是否為壞的儲存單元,如果該些連續的儲存單元係為壞的儲存單元,亦即累加後的個數SBN的值大於門檻個數TH1的值,則該控制器215在步驟140中係被安排用來將個數SBN的值重置為零並退出依序讀取操作的模式,也就是說,當其判斷出例如有11個連續的儲存單元是損壞的時,該控制器215會退出依序讀取操作的模式。
接著,於步驟140之後,該控制器215會進入隨機讀取操作的模式,在該模式中,該控制器215於步驟145中會執行該隨機讀取操作基於一隨機序號來從剩餘的多個儲存單元中隨機選取出一儲存單元並接著從所選取之儲存單元讀取資料,該控制器215於步驟150中會比較從該所選取之儲存單元所讀取的資料以及原本寫入至該所選取之儲存單元的資料來判斷該所隨機選取之儲存單元是否係為一好的儲存單元或是一壞的儲存單元,如果該所隨機選取之儲存單元係為一好的儲存單元,則該控制器215被安排用來將該所隨機選取之儲存單元的檢查結果記錄於該損壞儲存單元檢查表上之該所隨機選取之儲存單元的一相應欄位並記錄為‘N’以表示該所隨機選取之儲存單元已經被識別或檢查為是一沒有損壞的儲存單元,另外,如果該所隨機選取之儲存單元不是好的儲存單元,則該控制器215被安排用來將該所隨機選取之儲存單元的檢查結果記錄於該損壞儲存單元檢查表上之該所隨機選取之儲存單元的該相應欄位並記錄為‘Y’以表示該所隨機選取之儲存單元已經被識別或檢查為是一損壞的儲存單元。
接著,在步驟160,該控制器215被控制用來更新個數RGN的值的值,例如,如果該隨機讀取操作所選取到的該所隨機選取之儲存單元是上述表格的第一個儲存單元,則個數RGN的值會被更新為1。接著在步驟165,該控制器215被控制用來比較所更新之個數RGN的值的值以及門檻個數TH2的值來判斷是否要退出隨機讀取操作的模式,例如,如果門檻個數TH2的值被設置為10並且該更新後之個數RGN的值目前的值等於1,則該流程會維持在隨機讀取操作的模式並接著執行步驟170B。在步驟170B,該控制器215係被控制用來選取下一個儲存單元,該下一個儲存單元係為該隨機讀取操作所選到的第一個儲存單元的下一個儲存單元,以及接著從所選到的下一個儲存單元讀取資料來比較從該所選到的下一個儲存單元所讀出的資料以及原本寫入至該所選到的下一個儲存單元的資料(步驟150),同樣地,該流程會基於相應的檢查結果而執行步驟155A或步驟155B,以及接著再執行步驟160及步驟165。
在一實施例方案中,一旦所更新之個數RGN的值的值例如變為11而大於門檻個數TH2的值的值(例如10),此表示在隨機讀取操作的模式的讀取下有超過10個連續的儲存單元被識別為好的儲存單元,則該控制器215會被控制退出隨機讀取操作的模式並將個數RGN的值的值重置為零,該流程接著執行步驟115以進入至依序讀取操作的模式並執行該依序讀取操作,一旦該流程進入到依序讀取操作的模式,該控制器215係被控制用來選取先前該隨機讀取操作所選出之最後一個儲存單元的下一個儲存單元並接著從該選取的下一個儲存單元讀取資料以比較所讀取之資料及原本寫入至該所選取之下一個儲存單元之資料。
也就是說,該儲存單元檢查程序可被安排用來控制該控制器215在一開始時執行該依序讀取操作以從快閃記憶體210讀取資料並接著退出該依序讀取操作而進入至該隨機讀取操作來選取出及原先所選擇之一或多個儲存單元不相鄰或不連續的一特定儲存單元來執行資料讀取,以盡可能有效率地且有效果地找到或選擇出一個好的/沒有損壞的儲存單元,此外,一旦控制器215判斷出一組目前所選擇之多個儲存單元是好的儲存單元,控制器215可以被控制用來使用該依序讀取操作來從該組目前所選擇之多個儲存單元的一或多個相鄰的儲存單元讀取資料。
該多個儲存單元的每一個均可以是一儲存區塊、一儲存頁或一儲存區域,以該多個儲存單元係為多個儲存區域為例說明,控制器215會進入至區塊模式,而該流程/程序一開始時會基於該多個儲存區塊之相應的多個序號來依序地檢查每一儲存區塊是否係為一壞的區塊,如果該流程程序決定出有N個連續的儲存區塊是壞的儲存區塊,則該流程程序會退出該依序讀取操作而接著執行該隨機讀取操作從具有及該組連續的儲存區塊之多個序號不相鄰且不連續之一序號的一儲存區塊讀取資料,亦即,該隨機讀取操作被安排用來從其他尚未被檢查過的剩餘區塊中隨機選出一儲存區塊並接著從該所選取之儲存區塊讀取資料以檢查該所選取之儲存區塊是否係為一好的儲存區塊,其中N的值係為一正整數。
在一實施例,在該隨機讀取操作該所隨機選擇之儲存區塊被識別為一好的儲存區塊之後,該流程程序會被安排退出該隨機讀取操作而回到該依序讀取操作來讀取該所隨機選擇之儲存區塊的下一個儲存區塊之資料,然而這並非是本發明的限制,一旦該流程程序進入隨機讀取操作的模式,該流程程序也可以對所有剩下的多個儲存區塊均執行該隨機讀取操作。
在一實施例,在該執行該隨機讀取操作並且編號最後一號的儲存區塊已經被檢查過之後,該流程程序被安排根據一損壞區塊檢查表(該表用來記錄哪些儲存區塊已經是被檢查過的)所記錄之資訊來依序地從尚未被檢查過的剩餘的多個儲存區塊來讀取資料。
在一實施例,實作上,對於一特定儲存區塊而言,該流程程序係被安排用來根據包含於該特定儲存區塊內之多個儲存頁的多個序號來依序地從該些儲存頁讀取資料,該流程程序接著被安排比較從每一儲存頁所讀出之相應的資料以及寫入每一儲存頁之資料,如果從一儲存頁所讀出之資料不符合寫入該儲存頁的資料,則該流程程序將會判定該儲存頁係為一壞的儲存頁,如果該特定儲存區塊的N個儲存頁被該流程程序識別為壞的儲存頁,則該流程程序會被安排使用一預定讀取電壓值來讀取該特定儲存區塊之多個儲存頁的資料,而不調整讀取電壓值;此亦可省去等候時間。
如果該相同的儲存區塊中有M個連續的儲存頁被該流程程序識別為壞的儲存頁,則該流程程序會判定這樣的儲存區塊係為一壞的儲存區塊,其中M係大於N且M小於該儲存區塊所包含之儲存頁的總個數的值。
再者,以多個儲存單元係為多個儲存頁為例說明,該控制器215會進入頁模式,而該流程程序也會進入上述的頁模式並且一開始時會被安排基於該快閃記憶體中多個儲存頁的多個序號來依序地檢查每一儲存頁是否係為一壞的儲存頁,如果該流程程序判斷出有X個連續的儲存頁是壞的儲存頁,則該流程程序會退出該依序讀取操作並接著執行該隨機讀取操作以讀取具有及該組連續的多個儲存頁之多個序號不相鄰或不連續的一序號之儲存頁的資料,亦即,該隨機讀取操作被安排從其他尚未被檢查的剩下的多個儲存頁中隨機地選取一儲存頁並接著從該所選取之儲存頁讀取資料以檢查該所選取之儲存頁是否係為一好的儲存頁,X的值係為正整數,並且可以相同於或是不同於上述N的值。
在一實施例,在該隨機讀取操作所隨機選取之該儲存頁被識別為一好的儲存頁之後,該流程程序會被安排退出該隨機讀取操作而回到該依序讀取操作以讀取該所隨機選取之儲存頁的下一個儲存頁之資料,然而,這並非是本發明的限制,在一實施例,一旦該流程程序進入隨機讀取操作的模式,該流程程序也可以對所有剩下的多個儲存頁均執行該隨機讀取操作。
在一實施例,在執行該隨機讀取操作並且編號最後一號的儲存頁已經被檢查過之後,該流程程序係被安排根據一損壞儲存頁檢查表所記載之資訊來依序地讀取尚未被檢查過的剩下的多個儲存頁之資料,其中該損壞儲存頁檢查表係用來記錄哪些儲存頁是已經被檢核過的。
在一實施例,實作上,對於一特定儲存頁來說,該流程程序係被安排從該特定儲存頁讀取資料以及接著比較該所讀取之資料及原本寫入至該特定儲存頁之資料,如果兩筆資料並不相符,則該流程程序會判定該特定儲存頁係為一壞的儲存頁。
相似地,如果該多個儲存單元代表了該些儲存區域(sector),則該控制器215會進入到存取儲存區域的模式,而後流程程序會相似地執行上述的操作;為簡化本發明說明書的幅,於此不另贅述。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
105,110,115,120,125A,125B,130,132,135,140,145,150,155A,155B,160,165,170A,170B,175:步驟 200:電子裝置 205:快閃記憶體裝置 210:快閃記憶體 215:快閃記憶體控制器 220:處理器 230:介面電路 225:記憶體
第1A圖是本發明一實施例能夠快速地檢查於一快閃記憶體裝置之一快閃記憶體中的多個儲存單元(例如多個儲存區塊或多個儲存頁/區域之一快閃記憶體開卡程序/過程的一儲存單元檢查程序的第一部分之流程圖。 第1B圖是本發明一實施例能夠快速地檢查於一快閃記憶體裝置之一快閃記憶體中的多個儲存單元(例如多個儲存區塊或多個儲存頁/區域之一快閃記憶體開卡程序/過程的一儲存單元檢查程序的第二部分之流程圖。 第2圖是本發明一實施例之電子裝置的方塊示意圖。
105~140:步驟

Claims (21)

  1. 一種用於一快閃記憶體開卡程序中用來檢查一快閃記憶體裝置之一快閃記憶體之多個儲存單元的方法,該快閃記憶體開卡程序通過一外部電腦裝置發送多個控制命令經由該快閃記憶體裝置的一外部匯流排而至該快閃記憶體裝置的一快閃記憶體控制器以控制該快閃記憶體控制器對該快閃記憶體執行讀取/寫入操作以檢查該快閃記憶體之該多個儲存單元,以及該方法包含有: 寫入資料至該多個儲存單元;以及 執行一資料讀取操作以從該多個儲存單元中讀取資料以比較該所讀取之資料及該所寫入之資料以檢查資料是否被正確地寫入至該多個儲存單元,以及該資料讀取操作包含有: 根據該多個儲存單元之多個序號,執行一依序讀取操作以依序地選取出一第一儲存單元並從該第一儲存單元中讀取資料; 通過反復調整並使用一或多個不同的讀取電壓值來讀取該第一儲存單元的資料以檢查判斷該第一儲存單元是否損壞; 如果該第一儲存單元損壞,則累加連續的損壞儲存單元之一個數的值; 判斷該連續的損壞儲存單元之該個數的值是否大於一第一門檻個數的值;以及 如果該連續的損壞儲存單元之該個數的值大於該第一門檻個數的值,則退出該依序讀取操作並接著執行一隨機讀取操作以通過反復調整並使用該一或多個不同的讀取電壓值來讀取一特定儲存單元之資料來接著判斷該特定儲存單元是否損壞,其中該特定儲存單元具有一序號,該序號不連續於該多個儲存單元之一第一部分的多個序號,以及該特定儲存單元之該序號不連續於該第一儲存單元之一序號。
  2. 如申請專利範圍第1項所述之方法,其中該多個儲存單元係為多個儲存區塊、多個儲存頁或是多個儲存區域。
  3. 如申請專利範圍第1項所述之方法,其另包含有: 如果該第一儲存單元沒有損壞,則將連續的損壞儲存單元之該個數的值重置為零。
  4. 如申請專利範圍第1項所述之方法,其另包含有: 如果該特定儲存單元被判斷為一未損壞的儲存單元,則依序地讀取出至少一第二儲存單元之資料,該至少一第二儲存單元係為連續於該特定儲存單元之下一個儲存單元; 判斷該至少一第二儲存單元是否損壞; 如果該至少一第二儲存單元沒有損壞,則累加連續的未損壞儲存單元之一個數的值; 判斷連續的未損壞儲存單元之該個數的值是否大於一第二門檻個數的值;以及 如果該連續的未損壞儲存單元之該個數的值大於該第二門檻個數的值,則退出該隨機讀取操作及接著執行該依序讀取操作以讀取出該至少一第二儲存單元的下一個儲存單元之資料。
  5. 如申請專利範圍第1項所述之方法,其另包含有: 如果該至少一第二儲存單元是損壞的,則將該連續的未損壞儲存單元之該個數的值重置為零。
  6. 如申請專利範圍第1項所述之方法,其另包含有: 在對該特定儲存單元執行該隨機讀取操作之後,判斷該特定儲存單元是否為該多個儲存單元中的最後一個儲存單元;以及 退出該隨機讀取操作,並接著根據一剩餘部分之尚未檢查的儲存單元之多個序號來執行該依序讀取操作以讀取出該剩餘部分之尚未檢查的儲存單元之資料。
  7. 如申請專利範圍第6項所述之方法,其另包含有: 使用一損壞儲存單元表來記錄一儲存單元之一檢查結果;以及 根據該損壞儲存單元表之資訊來執行該依序讀取操作以讀取該剩餘部分之尚未檢查的儲存單元之資料。
  8. 如申請專利範圍第7項所述之方法,其中如果該儲存單尚未被檢查,則於該損壞儲存單元表上之該儲存單元之該檢查結果的資訊是空的。
  9. 如申請專利範圍第1項所述之方法,另包含有: 通過比較已經被檢查過之儲存單元的個數的值及在該快閃記憶體中的全部儲存單元之個數的值及/或基於一時間限制是否到期之資訊,來決定該快閃記憶體開卡程序的儲存單元檢查程序是否完成。
  10. 如申請專利範圍第1項所述之方法,其該特定儲存單元係為一特定儲存區塊,以及該方法包含有: 如果該特定儲存區塊的N個儲存頁被識別為壞的儲存頁,則使用一預定讀取電壓值來讀取該特定儲存區塊之多個儲存頁的資料,而不調整使用該一或多個不同的讀取電壓值。
  11. 一種快閃記憶體裝置的快閃記憶體控制器,接收一快閃記憶體開卡程序通過一外部電腦裝置經由該快閃記憶體裝置的一外部匯流排所發送的多個控制命令以根據該多個控制命令來對該快閃記憶體裝置的一快閃記憶體執行讀取/寫入操作以檢查該快閃記憶體之多個儲存單元,該快閃記憶體控制器係執行: 寫入資料至該多個儲存單元;以及 執行一資料讀取操作以從該多個儲存單元中讀取資料以比較該所讀取之資料及該所寫入之資料以檢查資料是否被正確地寫入至該多個儲存單元,以及該資料讀取操作包含有: 根據該多個儲存單元之多個序號,執行一依序讀取操作以依序地選取出一第一儲存單元並從該第一儲存單元中讀取資料; 通過反復調整並使用一或多個不同的讀取電壓值來讀取該第一儲存單元的資料以檢查判斷該第一儲存單元是否損壞; 如果該第一儲存單元損壞,則累加連續的損壞儲存單元之一個數的值; 判斷該連續的損壞儲存單元之該個數的值是否大於一第一門檻個數的值;以及 如果該連續的損壞儲存單元之該個數的值大於該第一門檻個數的值,則退出該依序讀取操作並接著執行一隨機讀取操作以通過反復調整並使用該一或多個不同的讀取電壓值來讀取一特定儲存單元之資料來接著判斷該特定儲存單元是否損壞,其中該特定儲存單元具有一序號,該序號不連續於該多個儲存單元之一第一部分的多個序號,以及該特定儲存單元之該序號不連續於該第一儲存單元之一序號。
  12. 如申請專利範圍第11項所述之快閃記憶體控制器,其中該多個儲存單元係為多個儲存區塊、多個儲存頁或是多個儲存區域。
  13. 如申請專利範圍第11項所述之快閃記憶體控制器,其中該快閃記憶體控制器係用來執行: 如果該第一儲存單元沒有損壞,則將該連續的損壞儲存單元之該個數的值重置為零。
  14. 如申請專利範圍第11項所述之快閃記憶體控制器,其中該快閃記憶體控制器係用來執行: 如果該特定儲存單元被判定為一沒有損壞的儲存單元,則依序地讀取至少一第二儲存單元之資料,該至少一第二儲存單元係為該特定儲存單元之連續且下一個之儲存單元; 判斷該至少一第二儲存單元是否損壞; 如果該至少一第二儲存單元沒有損壞,則累加連續的未損壞儲存單元之一個數的值; 判斷該連續的未損壞儲存單元之該個數的值是否大於一第二門檻個數的值;以及 如果該連續的未損壞儲存單元之該個數的值大於該第二門檻個數的值,則退出該隨機讀取操作並接著執行該依序讀取操作以讀取該至少一第二儲存單元之下一個儲存單元之資料。
  15. 如申請專利範圍第11項所述之快閃記憶體控制器,其中該快閃記憶體控制器係用來執行: 如果該至少一第二儲存單元是損壞的,則將該連續的未損壞儲存單元之該個數的值重置為零。
  16. 如申請專利範圍第11項所述之快閃記憶體控制器,其中該快閃記憶體控制器係用來執行: 在對該特定儲存單元執行該隨機讀取操作之後,判斷該特定儲存單元是否為該多個儲存單元中的最後一個儲存單元;以及 退出該隨機讀取操作,並接著根據該多個儲存單元之一尚未檢查的剩餘部分的多個序號來執行該依序讀取操作以讀取該多個儲存單元之該尚未檢查的剩餘部分之資料。
  17. 如申請專利範圍第16項所述之快閃記憶體控制器,其中該快閃記憶體控制器係用來執行: 使用一損壞儲存單元表來記錄一儲存單元之一檢查結果;以及 根據該損壞儲存單元表之資訊,執行該依序讀取操作以讀取該多個儲存單元之該尚未檢查的剩餘部分之資料。
  18. 如申請專利範圍第17項所述之快閃記憶體控制器,其中如果該儲存單元尚未被檢查,則該損壞儲存單元表上之該儲存單元之該檢查結果的資訊是空的。
  19. 如申請專利範圍第11項所述之快閃記憶體控制器,其中該快閃記憶體控制器係用來執行: 通過比較已經被檢查過之儲存單元的個數的值及在該快閃記憶體中的全部儲存單元之個數的值及/或基於一時間限制是否到期之資訊,來決定該快閃記憶體開卡程序的儲存單元檢查程序是否完成。
  20. 如申請專利範圍第11項所述之快閃記憶體控制器,其中該快閃記憶體控制器係用來執行: 如果該特定儲存區塊的N個儲存頁被識別為壞的儲存頁,則使用一預定讀取電壓值來讀取該特定儲存區塊之多個儲存頁的資料,而不調整使用該一或多個不同的讀取電壓值。
  21. 一種電子裝置,用於一快閃記憶體開卡程序中用來檢查一快閃記憶體裝置之一快閃記憶體之多個儲存單元,該快閃記憶體開卡程序通過該電子裝置發送多個控制命令經由該快閃記憶體裝置的一外部匯流排而至該快閃記憶體裝置的一快閃記憶體控制器以控制該快閃記憶體控制器對該快閃記憶體執行讀取/寫入操作以檢查該快閃記憶體之該多個儲存單元,以及該電子裝置包含: 一記憶體; 一介面電路,經由一內部匯流排而耦接於該記憶體,該介面電路係要被耦接於該內部匯流排及該快閃記憶體裝置之該快閃記憶體控制器之間,該快閃記憶體裝置係另包含該快閃記憶體;以及 一處理器,經由該內部匯流排而耦接於該記憶體及該介面電路,用以執行一儲存單元檢查程序以控制該快閃記憶體控制器來執行: 寫入資料至多個儲存單元;以及 執行一資料讀取操作以從該多個儲存單元讀取資料以比較該所讀取之資料及該所寫入之資料來檢查資料是否有被正確地寫入至該多個儲存單元,以及該資料讀取操作包含有: 根據該多個儲存單元之多個序號來執行一依序讀取操作以依序地選取一第一儲存單元及從該第一儲存單元讀取資料; 通過反復調整並使用一或多個不同的讀取電壓值來讀取該第一儲存單元的資料以檢查判斷該第一儲存單元是否損壞; 如果該第一儲存單元是損壞的,則累加連續的損壞儲存單元之一個數的值; 判斷該連續的損壞儲存單元之該個數的值是否大於一第一門檻個數的值;以及 如果該連續的損壞儲存單元之該個數的值大於該第一門檻個數的值,則退出該依序讀取操作並接著執行一隨機讀取操作通過反復調整並使用該一或多個不同的讀取電壓值來來讀取出一特定儲存單元之資料來接著判斷該特定儲存單元是否損壞,其中該特定儲存單元具有一序號,該序號係不連續於多個儲存單元之一第一部分之多個序號,以及該特定儲存單元之該序號係不連續於該第一儲存單元之一序號。
TW109120183A 2019-09-12 2020-06-16 有效率地檢查快閃記憶體裝置之快閃記憶體之儲存單元的方法、快閃記憶體控制器以及執行該方法的相應電子裝置 TWI737351B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/568,260 US10825542B1 (en) 2019-09-12 2019-09-12 Method for efficiently checking storage units of flash memory of flash memory device and corresponding electronic device executing the method
US16/568,260 2019-09-12

Publications (2)

Publication Number Publication Date
TW202111719A true TW202111719A (zh) 2021-03-16
TWI737351B TWI737351B (zh) 2021-08-21

Family

ID=73019665

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109120183A TWI737351B (zh) 2019-09-12 2020-06-16 有效率地檢查快閃記憶體裝置之快閃記憶體之儲存單元的方法、快閃記憶體控制器以及執行該方法的相應電子裝置

Country Status (3)

Country Link
US (1) US10825542B1 (zh)
CN (1) CN112486849B (zh)
TW (1) TWI737351B (zh)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5818755A (en) * 1996-10-16 1998-10-06 Fujitsu Limited Storage apparatus having a nonvolatile storage device capable of retaining data after an incomplete write operation and method of accessing same
JP4173297B2 (ja) * 2001-09-13 2008-10-29 株式会社ルネサステクノロジ メモリカード
US7788427B1 (en) * 2005-05-05 2010-08-31 Marvell International Ltd. Flash memory interface for disk drive
US20090006911A1 (en) * 2007-06-28 2009-01-01 Mediatek Inc. Data replacement processing method
US9311969B2 (en) * 2011-07-22 2016-04-12 Sandisk Technologies Inc. Systems and methods of storing data
TWI533305B (zh) * 2014-02-10 2016-05-11 慧榮科技股份有限公司 將資料寫入至快閃記憶體的方法及相關的記憶裝置與快閃記憶體
CN108984109A (zh) * 2017-06-05 2018-12-11 宇瞻科技股份有限公司 在闪存上提升存取效能的控制方法
CN108710578B (zh) * 2018-04-20 2022-07-26 深圳市战音科技有限公司 基于闪存的数据存储方法和装置
KR20190123544A (ko) * 2018-04-24 2019-11-01 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US10928449B2 (en) * 2019-03-30 2021-02-23 Intel Corporation Apparatus for memory built-in self-test with error detection and correction code awareness

Also Published As

Publication number Publication date
CN112486849B (zh) 2024-03-29
US10825542B1 (en) 2020-11-03
CN112486849A (zh) 2021-03-12
TWI737351B (zh) 2021-08-21

Similar Documents

Publication Publication Date Title
TWI566253B (zh) 用來管理一記憶裝置之方法以及記憶裝置與控制器
US8681552B2 (en) System and method for accessing and storing interleaved data
US8042021B2 (en) Memory card and memory controller
US10818371B2 (en) Data storage devices and data processing methods
TWI446350B (zh) 用來減少無法更正的錯誤之方法以及記憶裝置及其控制器
US20110131383A1 (en) Modular command structure for memory and memory system
US20050232037A1 (en) Nonvolatile memory apparatus
TWI506422B (zh) 用來管理具有多通道、多途徑的記憶裝置之方法以及相關之記憶裝置及其控制器
JP2008009942A (ja) メモリシステム
US9305663B2 (en) Techniques for assessing pass/fail status of non-volatile memory
KR20090046944A (ko) 메모리 시스템 및 메모리를 위한 모듈러 커맨드 스트럭처
US20200142619A1 (en) Data storage devices and data processing methods
TWI782644B (zh) 用來進行資料儲存管理以提升資料可靠度之方法、記憶裝置及其控制器以及電子裝置
TWI594253B (zh) 非依電性記憶體裝置及其空頁偵測方法
TWI737351B (zh) 有效率地檢查快閃記憶體裝置之快閃記憶體之儲存單元的方法、快閃記憶體控制器以及執行該方法的相應電子裝置
CN116134519A (zh) 存储器装置中的平衡的三层级读取干扰管理
TWI442406B (zh) 針對一快閃記憶體的控制器之錯誤管理機制來提升驗證效率之方法以及相關之記憶裝置及其控制器
US11977781B2 (en) Systems and methods for managing thermal dissipation in multi-stacked dies
CN108572786B (zh) 避免读取扰动的数据搬移方法以及使用该方法的装置
TWI781846B (zh) 非對稱型平面管理方法以及資料儲存裝置及其控制器
TWI711924B (zh) 能夠避免無效的記憶體儲存區塊交換或無效的垃圾回收之方法及快閃記憶體控制器
CN108572920B (zh) 避免读取扰动的数据搬移方法以及使用该方法的装置
TWI502591B (zh) 用來管理一記憶裝置之方法以及記憶裝置與控制器
JPH06139138A (ja) メモリカード装置
US10169224B2 (en) Data protecting method for preventing received data from losing, memory storage apparatus and memory control circuit unit