TWI501242B - 快閃記憶體之抹除方法 - Google Patents
快閃記憶體之抹除方法 Download PDFInfo
- Publication number
- TWI501242B TWI501242B TW102135958A TW102135958A TWI501242B TW I501242 B TWI501242 B TW I501242B TW 102135958 A TW102135958 A TW 102135958A TW 102135958 A TW102135958 A TW 102135958A TW I501242 B TWI501242 B TW I501242B
- Authority
- TW
- Taiwan
- Prior art keywords
- address
- memory cells
- memory
- erased
- memory cell
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 71
- 230000015654 memory Effects 0.000 claims description 357
- 238000012795 verification Methods 0.000 claims description 58
- 230000008569 process Effects 0.000 claims description 36
- 230000008439 repair process Effects 0.000 claims description 5
- 230000008672 reprogramming Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Landscapes
- Read Only Memory (AREA)
Description
本發明係有關於一種快閃記憶體之抹除方法,特別是有關於能快速判斷空白區段之一種快閃記憶體之抹除方法。
快閃記憶體在儲存資料時,係透過編程(program)與抹除(erase)的機制將特定資料寫入。一般而言,根據不同的指令列(command sheet)執行的寫入與抹除演算法,個別會引發出不同的問題,例如過度抹除(over erase)。以一般抹除程序為例,主要包含預編程(pre-program)、抹除與後編程(post-program)步驟,藉以確保每個記憶胞(memory cell)經過抹除程序後均在邏輯位準“1”的狀態。當記憶體反覆執行抹除及編程程序時,隨著寫入次數的增加,抹除程序的執行時間也會逐漸增加,其中用以修復過度抹除之後編程步驟於整個抹除程序中所佔的執行時間最久。當突發狀況發生時,例如突然發生關機狀況時,則有可能會中斷後編程步驟,而導致快閃記憶體的後編程步驟沒有完整被執行。於是,需要花費較多時間來驗證(verify)快閃記憶體,以找尋出空白區段(blank sector),以避免任何過度抹除的記憶胞存在區段中,造成讀取誤判。
本發明提供一種抹除方法,適用於一快閃記憶
體。預編程快閃記憶體的複數第一記憶胞,其中第一記憶胞係設置於由複數行線與複數列線所組成之一記憶體陣列。抹除已編程之第一記憶胞。後編程已抹除之第一記憶胞,以修復已過度抹除之第一記憶胞。在後編程已抹除之第一記憶胞之後,編程複數第二記憶胞,其中第二記憶胞係設置在記憶體陣列之一第一特定行線,其中第一特定行線係安排在對應於一最後有效行位址之一最後行線之後。記憶體陣列更包括設置在記憶體陣列之一第二特定行線之複數第三記憶胞,其中第二特定行線係安排在最後行線之後並相鄰於第一特定行線。
100‧‧‧快閃記憶體
110‧‧‧控制器
120‧‧‧感測放大器
130‧‧‧位址解碼電路
200‧‧‧記憶體陣列
210、220、230‧‧‧記憶胞
C0-Cm、CF1、CF2‧‧‧行線
R0-Rn‧‧‧列線
S310-S340、S410-S484、S510-S584、S610-S684、S710-S750‧‧‧步驟
第1圖係顯示根據本發明一實施例所述之快閃記憶體;第2圖係顯示第1圖之記憶體陣列的示意圖;第3圖係顯示根據本發明一實施例所述之抹除方法,適用於第1圖之快閃記憶體;第4A圖係根據本發明一實施例所述之快閃記憶體之預編程程序的流程圖;第4B圖係根據本發明另一實施例所述之快閃記憶體之預編程程序的流程圖;第5A圖係根據本發明一實施例所述之快閃記憶體之抹除程序的流程圖;第5B圖係根據本發明另一實施例所述之快閃記憶體之抹除程序的流程圖;第6A圖係根據本發明一實施例所述之快閃記憶體之後編
程程序的流程圖;第6B圖係根據本發明另一實施例所述之快閃記憶體之後編程程序的流程圖;第7圖係根據本發明一實施例所述之快閃記憶體之標記程序的流程圖;第8A圖係根據本發明另一實施例所述之快閃記憶體之標記程序的流程圖;以及第8B圖係根據本發明另一實施例所述之快閃記憶體之標記程序的流程圖。
為讓本發明之上述和其他目的、特徵、和優點能更明顯易懂,下文特舉出較佳實施例,並配合所附圖式,作詳細說明如下:第1圖係顯示根據本發明一實施例所述之快閃記憶體100。快閃記憶體100包括控制器110、感測放大器120、位址解碼電路130以及記憶體陣列200。第2圖係顯示第1圖之記憶體陣列200的示意圖。記憶體陣列200包括複數記憶胞210、220與230,其中記憶胞210、220與230係設置於由複數列線(row)R0-Rn與複數行線(column)C0-Cm、CF1與CF2所組成之陣列上。在此實施例中,列線R0-Rn為字元線,而行線C0-Cm、CF1與CF2為位元線。此外,在記憶體陣列200,每一列線R0-Rn分別表示一有效列位址,而每一行線C0-Cm分別表示一有效行位址。換言之,控制器(例如第1圖的控制器110)經由位址解碼電路130而透過列線R0-Rn與行線C0-Cm對記憶胞210進行存
取,以便提供儲存在記憶胞210內的資料給其他裝置或對儲存在記憶胞210內的資料進行更新。相較於傳統的記憶體陣列,記憶體陣列200的行線CF1與CF2為額外的位元線或額外行,其中耦接於行線CF1之記憶胞220與耦接於行線CF2之記憶胞230係作為旗標(flag)記憶胞,用以指示所對應之列線上的記憶胞210的狀態。舉例來說,設置在列線R0上的記憶胞220與230係用以指示列線R0上複數記憶胞210的狀態,而設置在列線Rn上的記憶胞220與230係用以指示列線Rn上複數記憶胞210的狀態。於是,控制器可根據每一區段(sector)內的記憶胞220與230的邏輯位準而判斷出該區段是否抹除完整、該區段是否儲存有效資料等資訊。值得注意的是,記憶胞220與230的位置只是個例子,並非用以限定本發明。在一實施例中,記憶胞230係設置在行線F1而記憶胞220係設置在行線F2。
第3圖係顯示根據本發明一實施例所述之抹除方法,適用於第1圖之快閃記憶體。同時參考第1與3圖,首先,在步驟S310,控制器110會對記憶體陣列200執行預編程程序,以便將記憶體陣列200內的全部記憶胞編程為邏輯位準“0”。接著,在步驟S320,控制器110會對記憶體陣列200執行抹除程序,以便將記憶體陣列200內的全部記憶胞編程抹除為邏輯位準“1”。接著,在步驟S330,控制器110會對記憶體陣列200執行後編程程序,以便對過度抹除之記憶胞執行修復。接著,在步驟S340,控制器110會對記憶體陣列200內之特定記憶胞(例如第2圖之記憶胞220或230)執行標記程序,以紀錄抹除程序的結果。預編程程序、抹除程序、後編程程序以及標記程序將詳
細描述於後。
第4A圖係根據本發明一實施例所述之快閃記憶體之預編程程序的流程圖。執行預編程程序的目的在於使記憶體陣列200中的每個記憶胞在執行抹除程序之前具有相近的電壓位準,以避免需要執行多次抹除程序來降低過渡抹除記憶胞的產生。同時參考第2圖與第4A圖,在此實施例中,快閃記憶體之感測放大器(例如第1圖之感測放大器120)係使用額外的讀取/寫入單元來對額外的記憶胞220與230執行讀取與寫入操作。首先,在步驟S410,控制器會根據位址Addr(例如Addr=0,即起始位址)對對應於位址Addr之位元組或字元組內的複數記憶胞210執行預編程驗證(verify)。接著,在步驟S420,控制器會判斷預編程驗證是否成功,即判斷對應於位址Addr之每一記憶胞210是否為邏輯位準“0”。若預編程驗證的結果為失敗(例如對應於位址Addr之至少一記憶胞210為邏輯位準“1”),則控制器會執行預編程寫入操作,以便將對應於位址Addr之全部記憶胞210編程為邏輯位準“0”(步驟S440)。接著,回到步驟S410,控制器會重新對對應於位址Addr之記憶胞210執行預編程驗證(步驟S410),直到控制器判定預編程驗證為成功(步驟S420)。接著,在步驟450,控制器會判斷位址Addr是否大於最後區段位址Addr_last_Sector。若位址Addr已超過最後區段位址Addr_last_Sector,則完成預編程程序。反之,若位址Addr不是大於最後區段位址Addr_last_Sector,則進行步驟S430。在步驟S430,控制器會將位址Addr的位置值加一(例如Addr=Addr+1,即指向下一個位址),以更新位址Addr。接著,控制器會判斷
更新過的位址Addr是否為最後有效行位址Cm(步驟S460)。若更新過的位址Addr不是最後有效行位址Cm,則回到步驟S410。於是,控制器會對對應於更新過之位址Addr的記憶胞210執行預編程驗證,並進行後續流程。若更新過的位址Addr為最後有效行位址Cm(即Addr=Cm),則控制器會將額外位元線CF1與CF2加入(步驟S470),以便能同時地對位址Addr以及對應相同列之額外行CF1與CF2的記憶胞進行驗證。於是,在步驟S410,控制器會對對應於最後有效行位址Cm之記憶胞210、對應於相同列位址之額外行CF1之記憶胞220以及對應於相同列位址之額外行CF2之記憶胞230執行預編程驗證。如先前所描述,若預編程驗證的結果為失敗,則執行預編程寫入操作,以便將對應於位址Addr之記憶胞210、對應於位址Addr之額外行CF1之記憶胞220以及對應於位址Addr之額外行CF2之記憶胞230編程為邏輯位準“0”(步驟S440),並進行後續流程。
第4B圖係根據本發明另一實施例所述之快閃記憶體之預編程程序的流程圖。同時參考第2圖與第4B圖,在此實施例中,快閃記憶體之感測放大器(例如第1圖之感測放大器120)係使用原有的讀取/寫入單元來對額外的記憶胞220與230執行讀取與寫入操作。首先,在步驟S410,控制器會根據位址Addr(例如Addr=0,即起始位址)對對應於位址Addr之位元組或字元組內的複數記憶胞210執行預編程驗證。接著,在步驟S420,控制器會判斷預編程驗證是否成功,例如判斷對應於位址Addr之每一記憶胞210是否為邏輯位準“0”。若預編程驗證的結果為失敗(例如對應於位址Addr之至少一記憶胞210為邏輯
位準“1”),則控制器會執行預編程寫入操作,以便將對應於位址Addr之全部記憶胞210編程為邏輯位準“0”(步驟S440)。接著,回到步驟S410。於是,控制器會重新對對應於位址Addr之記憶胞210執行預編程驗證,直到控制器會判定預編程驗證為成功(步驟S420)。接著,控制器會判斷位址Addr是否為最後有效行位址Cm(步驟S460)。若位址Addr不是最後有效行位址Cm,則進行步驟S450。接著,在步驟450,控制器會判斷位址Addr是否已超過最後區段位址Addr_last_Sector。若位址Addr已超過最後區段位址Addr_last_Sector,則完成預編程程序。反之,若位址Addr未超過最後區段位址Addr_last_Sector,則控制器會將位址Addr的位置值加一(例如Addr=Addr+1,即指向下一個位址),以更新位址Addr。於是,控制器會對對應於更新過之位址Addr的記憶胞210執行預編程驗證(步驟S410),並進行後續流程。在步驟S460中,若位址Addr為最後有效行位址Cm(即Addr=Rn+Cm),則控制器會針對額外之位元線CF1與CF2而對對應於同一列位址之額外行CF1之記憶胞220與對應於同一列位址之額外行CF2之記憶胞230執行預編程驗證(步驟S480)。接著,在步驟S482,控制器會判斷預編程驗證是否成功,例如判斷記憶胞220與230是否為邏輯位準“0”。若預編程驗證的結果為失敗(例如記憶胞220或記憶胞230為邏輯位準“1”),則控制器會執行預編程寫入操作,以便將對應於額外位址Addr之相同列位址之額外行CF1之記憶胞220與額外行CF2之記憶胞230編程為邏輯位準“0”(步驟S484),並回到步驟S480。於是,控制器會重新對記憶胞220與230執行預編程驗證
(步驟S480)。接著,回到步驟S482,直到控制器判定預編程驗證為成功,於是進行步驟S450,並進行後續流程。
第5A圖係根據本發明一實施例所述之快閃記憶體之抹除程序的流程圖。同時參考第2圖與第5A圖,在此實施例中,快閃記憶體之感測放大器(例如第1圖之感測放大器120)係使用額外的讀取/寫入單元來對額外的記憶胞220與230執行讀取與寫入操作。首先,在步驟S510,控制器會將一區段內之記憶胞210、220與230進行抹除。接著,在步驟S520,控制器會根據位址Addr(例如Addr=0,即起始位址)而對對應於位址Addr之位元組或字元組內的複數記憶胞210執行抹除驗證。接著,在步驟S530,控制器會判斷抹除驗證是否成功,例如判斷對應於位址Addr之每一記憶胞210是否為邏輯位準“1”。若抹除驗證的結果為失敗(例如對應於位址Addr之至少一記憶胞210為邏輯位準“0”),則回到步驟S510,以重新抹除該區段內之記憶胞210、220與230。反之,若抹除驗證的結果為成功,控制器會判斷位址Addr是否大於最後區段位址Addr_last_Sector(步驟S540)。若位址Addr已超過最後區段位址Addr_last_Sector,則完成抹除程序。反之,若位址Addr小於或等於最後區段位址Addr_last_Sector,則控制器會將位址Addr的位置值加一(例如Addr=Addr+1,即指向下一個位址)(步驟S550),以更新位址Addr。接著,在步驟S560,控制器會判斷更新過的位址Addr是否為最後有效行位址Cm。若更新過的位址Addr不是最後有效行位址Cm,則回到步驟S520。於是,控制器會對對應於更新過之位址Addr的記憶胞210執行抹除驗證,並進行後續流
程。若更新過的位址Addr為最後有效行位址Cm(即Addr=Cm),則控制器會將額外之位元線CF1與CF2加入(步驟S570),以便能同時地對位址Addr以及對應於相同列位址上之額外行CF1與CF2上的記憶胞進行驗證。於是,控制器會對對應於最後有效行位址Cm之記憶胞210、對應於相同列位址之額外行CF1之記憶胞220以及對應於相同列位址之額外行CF2之記憶胞230執行抹除驗證(步驟S520)並確認認證的結果(步驟S530)。如先前所描述,若抹除驗證的結果為失敗,例如對應於位址Addr上之最後有效行位址Cm之記憶胞210、對應於相同列位址之額外行CF1之記憶胞220以及額外行CF2之記憶胞230的任一者為邏輯位準“0”,則回到步驟S510,以重新對該區段內之記憶胞210、220與230進行抹除。
第5B圖係根據本發明另一實施例所述之快閃記憶體之抹除程序的流程圖。同時參考第2圖與第5B圖,在此實施例中,快閃記憶體之感測放大器(例如第1圖之感測放大器120)係使用原有的讀取/寫入單元來對額外的記憶胞220與230執行讀取與寫入操作。首先,在步驟S510,控制器會將一區段內之記憶胞210、220與230進行抹除。接著,在步驟S520,控制器會根據位址Addr(例如Addr=0,即起始位址)而對對應於位址Addr之位元組或字元組內的複數記憶胞210執行抹除驗證。接著,在步驟S530,控制器會判斷抹除驗證是否成功,例如判斷對應於位址Addr之每一記憶胞210是否為邏輯位準“1”。若抹除驗證的結果為失敗(例如對應於位址Addr之至少一記憶胞210為邏輯位準“0”),則回到步驟S510,以重新抹除將該區段內之
記憶胞210、220與230。反之,若抹除驗證的結果為成功,控制器會判斷位址Addr是否為最後有效行位址Cm(步驟S560)。若位址Addr不是最後有效行位址Cm,則控制器會判斷位址Addr是否大於最後區段位址Addr_last_Sector(步驟S540)。若位址Addr已超過最後區段位址Addr_last_Sector,則完成抹除程序。反之,若位址Addr小於或等於最後區段位址Addr_last_Sector,則控制器會將位址Addr的位置值加一(例如Addr=Addr+1,即指向下一個位址)(步驟S550),以更新位址Addr,並回到步驟S520。於是,控制器會對對應於更新過之位址Addr的記憶胞210執行抹除驗證,並進行後續流程。在步驟S560中,若位址Addr為最後有效行位址Cm(即Addr=Cm),則控制器會針對額外位元線CF1與CF2而對對應於相同列位址上之額外行CF1之記憶胞220與額外行CF2之記憶胞230執行抹除驗證(步驟S580)。接著,在步驟S582,控制器會判斷抹除驗證是否成功,例如判斷記憶胞220與230是否為邏輯位準“1”。若抹除驗證的結果為失敗(例如記憶胞220或是記憶胞230為邏輯位準“0”),則控制器會重新抹除將該區段內之記憶胞210、220與230(步驟S584)。接著,控制器會對記憶胞220與230重新執行抹除驗證(步驟S580)。接著,重複執行抹除驗證(步驟S582)以及重新執行抹除(步驟S584),直到控制器會判定抹除驗證為成功,於是進行步驟S540,並進行後續流程。
第6A圖係根據本發明一實施例所述之快閃記憶體之後編程程序的流程圖。執行後編程程序的目的在於修復過度抹除之記憶胞。一般而言,當經過抹除程序之後,快閃記憶體
的記憶胞之臨界電壓值可能會降低。當臨界電壓值太低時(例如小於0),記憶胞會發生過度抹除現象,其所引起之漏電流將會導致控制器會無法正確地識別該記憶胞以及該行其他記憶胞所儲存的資料。同時參考第2圖與第6A圖,在此實施例中,快閃記憶體之感測放大器(例如第1圖之感測放大器120)係使用額外的讀取/寫入單元來對額外的記憶胞220與230執行讀取與寫入操作。首先,在步驟S610,根據行位址Addr_Col(例如Addr_Col=0,即起始位址),控制器會以行線(column)為單位而對對應於行位址Addr_Col之複數記憶胞210執行過度抹除驗證。接著,在步驟S620,控制器會判斷過度抹除驗證是否成功,例如判斷對應於行位址Addr_Col之全部記憶胞210均未選取時,驗證該行線上是否有漏電流存在。若過度抹除驗證的結果為失敗(例如對應於行位址Addr_Col之至少一記憶胞210有漏電流存在),則以行線為單位而對對應於行位址Addr_Col之全部記憶胞210執行後編程寫入操作(或軟編程(soft-program))(步驟S640),以調整記憶胞210的臨界電壓值。接著,回到步驟S610,控制器會對對應於行位址Addr_Col之複數記憶胞210執行過度抹除驗證(步驟S620),直到過度抹除驗證成功。當過度抹除驗證成功時,控制器會判斷行位址Addr_Col是否已超過最後有效行位址Cm(步驟S650)。若行位址Addr_Col已超過最後有效行位址Cm,則完成後編程程序。反之,若行位址Addr_Col小於或等於最後有效行位址Cm,則控制器會將行位址Addr_Col的位置值加一(例如Addr_Col=Addr_Col+1,即指向下一個行位址),以更新行位址Addr_Col(步驟S630)。接著,控
制器會判斷更新過的行位址Addr_Col是否為最後有效行位址Cm(步驟S660)。若更新過的行位址Addr_Col不是最後有效行位址Cm,則回到步驟S610。於是,控制器會對對應於更新過之行位址Addr_Col的記憶胞210執行過度抹除驗證,並進行後續流程。若更新過的行位址Addr_Col為最後有效行位址Cm(即Addr_Col=Cm),則控制器會將額外位元線CF1與CF2加入(步驟S670),以便能同時地對最後有效行位址Addr_Col以及額外行CF1與CF2的記憶胞進行驗證。於是,在步驟S610,控制器會對對應於最後有效行位址Cm之記憶胞210、額外行CF1之記憶胞220以及額外行CF2之記憶胞230執行過度抹除驗證。如先前所描述,若過度抹除驗證的結果為失敗,則調整對應於行位址Addr_Col之記憶胞210以對應於額外行CF1之記憶胞220以及額外行CF2之記憶胞230的臨界電壓值,並進行後續流程。
第6B圖係根據本發明另一實施例所述之快閃記憶體之後編程程序的流程圖。同時參考第2圖與第6B圖,在此實施例中,快閃記憶體之感測放大器(例如第1圖之感測放大器120)係使用原有的讀取/寫入單元來對額外的記憶胞220與230執行讀取與寫入操作。首先,在步驟S610,根據行位址Addr_Col(例如Addr_Col=0,即起始位址),控制器會以行線(column)為單位而對對應於行位址Addr_Col之複數記憶胞210執行過度抹除驗證。接著,在步驟S620,控制器會判斷過度抹除驗證是否成功,例如判斷對應於行位址Addr_Col之全部記憶胞210是否有漏電流存在。若過度抹除驗證的結果為失敗(例如對應於行位址Addr_Col之至少一記憶胞210有漏電流存在),則
以行線為單位而對對應於行位址Addr_Col之全部記憶胞210執行後編程寫入操作(或軟編程(soft-program))(步驟S640),以調整記憶胞210的臨界電壓值。接著,回到步驟S610,控制器會對對應於行位址Addr_Col之複數記憶胞210執行過度抹除驗證(步驟S620),直到過度抹除驗證成功。當過度抹除驗證成功時,控制器會將行位址Addr_Col的位置值加一(例如Addr_Col=Addr_Col+1,即指向下一個行位址),以更新行位址Addr_Col(步驟S630)。接著,在步驟650,控制器會判斷行位址Addr_Col是否已超過最後有效行位址Cm。若行位址Addr_Col小於或等於最後有效行位址Cm,則回到步驟S610。於是,控制器會對對應於更新過之行Addr_Col之記憶胞210執行過度抹除驗證(步驟S610),並進行後續流程。在步驟S650中,若行位址Addr_Col已超過最後有效行位址Cm(即Addr_Col=Cm),則控制器會針對額外的位元線CF1與CF2而對對應於額外行CF1之記憶胞220以及對應於額外行CF2之記憶胞230執行過度抹除驗證(步驟S680)。接著,在步驟S682,控制器會判斷過度抹除驗證是否成功,即判斷記憶胞220與230是否有漏電流。若過度抹除驗證的結果為失敗(例如記憶胞220或記憶胞230有漏電流),則以行線為單位而對對應於額外行CF1之全部記憶胞220以及對應於額外行CF2之全部記憶胞230執行後編程寫入操作(S684),以調整對應於額外行CF1之記憶胞220以及對應於額外行CF2之記憶胞230的臨界電壓值,並回到步驟S680。於是,控制器會對記憶胞220與230重新執行過度抹除驗證(步驟S680)並進行後續程序,直到在步驟S682,控制器會判定過
度抹除驗證為成功,於是進行步驟S650,並進行後續流程。
第7圖係根據本發明一實施例所述之快閃記憶體之標記程序的流程圖。同時參考第2圖與第7圖,在此實施例中,記憶胞230係用來表示所對應之行線上的記憶胞是否已經完整地完成了抹除程序。值得注意的是,使用記憶胞230來記錄抹除程序的結果僅是個例子,並非用以限定本發明。在一實施例中,可使用記憶胞220來記錄抹除程序的結果。在另一實施例中,更可使用複數個記憶胞230或記憶胞220來記錄抹除程序的結果。首先,在步驟S710,根據列位址Addr_Row(例如Addr_Row=R0,即列起始位址),控制器會將對應於列位址Addr_Row之記憶胞230編程為邏輯位準“0”。接著,在步驟S720,控制器會對記憶胞230執行編程驗證。接著,在步驟S730,控制器會判斷編程驗證是否成功,例如記憶胞230是否為邏輯位準“0”。若編程驗證的結果為失敗(例如記憶胞230為邏輯位準“1”),則回到步驟S710,以重新對記憶胞230進行編程。反之,若編程驗證的結果為成功,控制器會判斷列位址Addr_Row是否已超過最後有效列位址Rn(步驟S740)。若列位址Addr_Row已超過最後有效列位址Rn,則完成標記程序。反之,若列位址Addr_Row小於或是等於最後有效列位址Rn,控制器會將列位址Addr_Row的位置值加一(例如Addr_Row=Addr_Row+1,即指向下一個列位址)(步驟S750),並回到步驟S710。接著,控制器會將對應於更新過之列位址Addr_Row之記憶胞230編程為邏輯位準“0”,並進行後續程序。
第8A圖係根據本發明另一實施例所述之快閃記憶
體之標記程序的流程圖。同時參考第2圖與第8A圖,在此實施例中,記憶胞220係用來表示所對應之列線上的記憶胞是否曾經執行編程程序。此外,快閃記憶體之感測放大器(例如第1圖之感測放大器120)係使用額外的讀取/寫入單元來對額外的記憶胞220執行讀取與寫入操作。值得注意的是,使用記憶胞220來記錄編程程序的結果僅是個例子,並非用以限定本發明。在一實施例中,可使用記憶胞230來記錄編程程序的結果,而記憶胞220則用來記錄區段是否完整完成抹除流程的標記。在另一實施例中,更可使用複數個記憶胞230或記憶胞220來記錄是否曾經執行編程程序及完成抹除流程的結果。在此實施例中,控制器會根據編程指令而以位元組或字元組為單位來對所選取之區段內之記憶胞210進行編程。首先,在步驟S810,當欲編程之資料為最後位元組資料時,控制器會根據位址Addr,而將最後位元組資料編程至所對應之記憶胞210,並將位在同一列之記憶胞220編程為邏輯位準“0”。接著,在步驟S820,控制器會對對應位址Addr所編程之記憶胞210與220執行編程驗證。接著,在步驟S830,控制器會判斷編程驗證是否成功,例如記憶胞210是否符合編程資料及記憶胞220是否為邏輯位準“0”。若編程驗證的結果為失敗(例如記憶胞220為邏輯位準“1”或是記憶胞210的邏輯位準有誤),則回到步驟S810,以重新對記憶胞210與220進行編程。反之,若編程驗證的結果為成功,則完成標記程序。
第8B圖係根據本發明另一實施例所述之快閃記憶體之標記程序的流程圖。同時參考第2圖與第8B圖,在此實施
例中,記憶胞220係用來表示所對應之列線上的記憶胞是否曾經執行編程程序。此外,快閃記憶體之感測放大器(例如第1圖之感測放大器120)係使用原有的讀取/寫入單元來對額外的記憶胞220與230執行讀取與寫入操作。值得注意的是,使用記憶胞220來記錄編程程序的結果僅是個例子,並非用以限定本發明。在一實施例中,可使用記憶胞230來記錄是否曾經執行編程程序以及記憶胞220用來記錄區段是否完整完成抹除流程的標記之結果。在另一實施例中,更可使用複數個記憶胞230或記憶胞220來記錄編程程序的結果。在此實施例中,控制器會根據編程指令而以位元組或字元組為單位來對所選取之區段內之記憶胞210進行編程。在此實施例中,控制器會根據編程指令而以位元組或字元組為單位來對所選取之區段內之記憶胞210進行編程。首先,在步驟S840,當欲編程之資料為最後位元組資料時,控制器會根據位址Addr,而將最後位元組資料編程至所對應之記憶胞210。接著,在步驟S850,控制器會對所編程之記憶胞210執行編程驗證。接著,在步驟S860,控制器會判斷編程驗證是否成功。若編程驗證的結果為失敗(例如記憶胞210的邏輯位準有誤),則回到步驟S840,以重新對記憶胞210進行編程。反之,若記憶胞210之編程驗證的結果為成功,則將位在同一列之記憶胞220編程為邏輯位準“0”(步驟S870)。接著,在步驟S880,控制器會對所編程之記憶胞220執行編程驗證。接著,在步驟S890,控制器會判斷編程驗證是否成功,例如記憶胞220是否為邏輯位準“0”。若記憶胞220之編程驗證的結果為失敗(例如記憶胞220為邏輯位準“1”),則回到
步驟S870,以重新對記憶胞220進行編程。反之,若編程驗證的結果為成功,則完成標記程序。
一般而言,在對記憶體陣列進行資料編程之前,控制器必須先確認所選用的區段是空白區段,才能將資料編程至該空白區段。一般而言,當有中斷情況發生在傳統之快閃記憶體的抹除過程中,則抹除程序不會被完整地執行。因此,在傳統的快閃記憶體中,控制器有時需要先對所選用的區段中的全部記憶胞進行抹除驗證,並執行過度抹除驗證,以便確認所選用的區段中沒有過度抹除的記憶胞存在,而完成整區段記憶胞的抹除驗證以及過度抹除驗證需要花費較多的時間。此外,對設置在可攜式電子裝置的快閃記憶體而言,為了加速執行抹除驗證以及過度抹除驗證,常藉由增加讀取單元以增加驗證速率,但亦會增加耗電。在本發明實施例中,藉由讀取設置在額外行線(例如第2圖的行線CF1與CF2)上之記憶胞(例如第2圖的記憶胞220與230)的狀態,控制器可確認所選用的區段是否完整地執行了抹除程序並進一步判斷所選用的區段是否為空白區段,而不需要對所選用的區段執行抹除驗證以及過度抹除驗證。因此,可加快判斷是否為空白區段的時間,並降低耗電量。舉例來說,在一實施例中,記憶胞220與記憶胞230係用來表示所對應之行線上的記憶胞是否已經完整地完成了抹除程序。若所選用之區段內的全部記憶胞230為邏輯位準“0”且全部記憶胞220為邏輯位準“1”,則控制器可判定該區段已完整地抹除,如下列表1所顯示。接著,控制器將資料編程至該區段內。在完成資料編程之後,控制器可使用先前所描述之標記程序來對
該區段之記憶胞220進行編程。在此實施例中,記憶胞220係用來表示所對應之行線上的記憶胞是否已被編程。舉例來說,在執行一頁資料編程的過程中,當最後位元組被編程之後,控制器可將相同列線上的記憶胞220編程為邏輯位準“0”。因此,若所選用之區段內的部分記憶胞220為邏輯位準“0”且全部記憶胞230為邏輯位準“0”,則控制器可判定該區段已被使用,並非空白區段。此外,若所選用之區段內的部分記憶胞230為邏輯位準“1”,則控制器可判定該區段未被完整地抹除。尤其是全部記憶胞220為邏輯位準“1”且全部記憶胞230亦為邏輯位準“1”,其係表示該區段發生過抹除中斷的情況,而有可能存在著過度抹除的記憶胞。因此,可根據第3圖之方法來重新對該區段之記憶胞進行抹除,以避免過度抹除的記憶胞存在,而造成資料完整性的誤判。
如先前所描述,藉由使用額外行線上的記憶胞來記錄記憶體陣列中所對應之列線上記憶胞的使用狀態,控制器可快速地判斷出所選用的區段是否空白。再者,藉由對整行之記憶胞進行標記,可有效分散旗標記憶胞的編程及抹除次數,而能達成與資料記憶胞相等的寫入次數(cycling time)。此外,記憶胞220與230的排列順序以及數量可根據實際應用而決定。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中包括通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
S310-S340‧‧‧步驟
Claims (12)
- 一種抹除方法,適用於一快閃記憶體,包括:預編程該快閃記憶體的複數第一記憶胞,其中該等第一記憶胞係設置於由複數行線與複數列線所組成之一記憶體陣列;抹除已預編程之該等第一記憶胞;後編程已抹除之該等第一記憶胞,以修復已過度抹除之該等第一記憶胞;以及在後編程已抹除之該等第一記憶胞之後,編程複數第二記憶胞,其中該等第二記憶胞係設置在該記憶體陣列之一第一特定行線,以及該第一特定行線係安排在對應於一最後有效行位址之一最後行線之後;其中該記憶體陣列更包括設置在該記憶體陣列之一第二特定行線之複數第三記憶胞,其中該第二特定行線係安排在該最後行線之後並相鄰於該第一特定行線。
- 如申請專利範圍第1項所述之抹除方法,其中上述預編程該快閃記憶體的該等第一記憶胞之步驟更包括:根據一第一位址,對對應於該第一位址之該等第一記憶胞執行一預編程驗證,以判斷對應於該第一位址之該等第一記憶胞是否為低邏輯位準;當對應於該第一位址之該等第一記憶胞之至少一者為高邏輯位準時,對對應於該第一位址之該等第一記憶胞進行編程;以及當該等第一記憶胞被編程且該第一位址超過一最後區段位 址時,完成該預編程程序。
- 如申請專利範圍第2項所述之抹除方法,其中上述預編程該快閃記憶體的該等第一記憶胞之步驟更包括:當該等第一記憶胞被編程且該第一位址未超過該最後區段位址時,將該第一位址更新為一第二位址;當該第二位址為該最後有效行位址時,根據該第二位址,對對應於該第二位址之該等第一記憶胞以及該等第二與第三記憶胞執行該預編程驗證,以判斷對應於該第二位址之該等第一、第二與第三記憶胞是否為低邏輯位準;當對應於該第二位址之該等第一、第二與第三記憶胞之至少一者為高邏輯位準時,對對應於該第二位址之該等第一、第二與第三記憶胞進行編程;以及當對應於該第二位址之該等第一、第二與第三記憶胞被編程且該第二位址超過該最後區段位址時,完成該預編程程序。
- 如申請專利範圍第1項所述之抹除方法,其中上述抹除已預編程之該等第一記憶胞之步驟更包括:抹除一區段內之該等第一、第二與第三記憶胞;根據一第一位址,對對應於該第一位址之已抹除之該等第一記憶胞執行一抹除驗證,以判斷對應於該第一位址之已抹除之該等第一記憶胞是否為高邏輯位準;當對應於該第一位址之已抹除之該等第一記憶胞之一者為低邏輯位準時,重新抹除該區段內之該等第一、第二與第三記憶胞;以及 當對應於該第一位址之已抹除之該等第一記憶胞為高邏輯位準且該第一位址超過該最後區段位址時,完成該抹除程序。
- 如申請專利範圍第4項所述之抹除方法,其中上述抹除已預編程之該等第一記憶胞之步驟更包括:當對應於該第一位址之已抹除之該等第一記憶胞為高邏輯位準且該第一位址未超過該最後區段位址時,將該第一位址更新為一第二位址;當該第二位址為該最後有效行位址時,根據該第二位址,對對應於該第二位址之已抹除之該等第一記憶胞以及該等第二與第三記憶胞執行該抹除驗證,以判斷對應於該第二位址之已抹除之該等第一、第二與第三記憶胞是否為高邏輯位準;當對應於該第二位址之已抹除之該等第一、第二與第三記憶胞之一者為低邏輯位準時,重新抹除該區段內之該等第一、第二與第三記憶胞;以及當對應於該第二位址之已抹除之該等第一、第二與第三記憶胞為高邏輯位準且該第二位址超過該最後區段位址時,完成該抹除程序。
- 如申請專利範圍第1項所述之抹除方法,其中上述後編程已抹除之該等第一記憶胞之步驟更包括:根據一第一位址,對對應於該第一位址之該等第一記憶胞執行一過度抹除驗證,以判斷對應於該第一位址之已抹除之該等第一記憶胞是否為過度抹除; 當已抹除之該等第一記憶胞之一者為過度抹除時,對已過度抹除之該等第一記憶胞執行後編程;以及當該等第一記憶胞無過度抹除時,將該第一位址更新為一第二位址。
- 如申請專利範圍第6項所述之抹除方法,其中上述後編程已抹除之該等第一記憶胞之步驟更包括:當該第二位址超過該最後有效行位址時,根據該第二位址,對對應於該第二位址之該等第一記憶胞以及該等第二與第三記憶胞執行該過度抹除驗證,以判斷對應於該第二位址之已抹除之該等第一、第二與第三記憶胞是否為過度抹除;以及當該等第二與第三記憶胞無過度抹除時,完成該後編程程序。
- 如申請專利範圍第1項所述之抹除方法,其中上述編程該等第二記憶胞之步驟更包括:根據一第一位址,對對應於該第一位址之該第二記憶胞進行編程;對對應於該第一位址之已編程之該第二記憶胞執行一編程驗證,以判斷對應於該第一位址之該第二記憶胞是否為低邏輯位準;以及當對應於該第一位址之已編程之該第二記憶胞為高邏輯位準時,重新對對應於該第一位址之該第二記憶胞進行編程。
- 如申請專利範圍第8項所述之抹除方法,其中上述編程該等第二記憶胞之步驟更包括: 當對應於該第一位址之已編程之該第二記憶胞為低邏輯位準且該第一位址超過一最後有效列位址時,該快閃記憶體已完成抹除;當已編程之該第二記憶胞為低邏輯位準且該第一位址未超過該最後有效列位址時,將該第一位址更新為一第二位址;根據該第二位址,對對應於該第二位址之該第二記憶胞進行編程;對對應於該第二位址之已編程之該第二記憶胞執行該編程驗證,以判斷對應於該第二位址之該第二記憶胞是否為低邏輯位準;當對應於該第二位址之已編程之該第二記憶胞為高邏輯位準時,重新對對應於該第二位址之該第二記憶胞進行編程;以及當對應於該第二位址之已編程之該第二記憶胞為低邏輯位準且該第二位址超過最後有效列位址時,該快閃記憶體已完成抹除。
- 如申請專利範圍第1項所述之抹除方法,更包括:在快閃記憶體完成抹除之後,根據欲編程之資料,編程對應於一寫入位址之該等第一記憶胞;以及編程對應於該寫入位址之該第三記憶胞,以指示對應於該寫入位址之該列線之該等第一記憶胞已被編程。
- 如申請專利範圍第1項所述之抹除方法,更包括:根據該快閃記憶體之一區段內之該等第二與第三記憶胞的邏輯位準,判斷該區段是否為空白區段; 其中當該等第二記憶胞為低邏輯位準以及該等第三記憶胞為高邏輯位準時,該區段為空白區段。
- 如申請專利範圍第11項所述之抹除方法,其中當該等第二記憶胞為低邏輯位準以及至少一該第三記憶胞為低邏輯位準時,該區段不是空白區段,以及當至少一該第二記憶胞為高邏輯位準時,該區段不是空白區段。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW102135958A TWI501242B (zh) | 2013-10-04 | 2013-10-04 | 快閃記憶體之抹除方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW102135958A TWI501242B (zh) | 2013-10-04 | 2013-10-04 | 快閃記憶體之抹除方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201514997A TW201514997A (zh) | 2015-04-16 |
| TWI501242B true TWI501242B (zh) | 2015-09-21 |
Family
ID=53437714
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW102135958A TWI501242B (zh) | 2013-10-04 | 2013-10-04 | 快閃記憶體之抹除方法 |
Country Status (1)
| Country | Link |
|---|---|
| TW (1) | TWI501242B (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6144741B2 (ja) * | 2015-09-28 | 2017-06-07 | ウィンボンド エレクトロニクス コーポレーション | 不揮発性半導体メモリ |
| US20210035644A1 (en) * | 2019-08-01 | 2021-02-04 | Macronix International Co., Ltd. | Memory apparatus and data access method for memory |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7277329B2 (en) * | 2005-10-04 | 2007-10-02 | Elite Semiconductor Memory Technology, Inc. | Erase method to reduce erase time and to prevent over-erase |
| US7558904B2 (en) * | 2004-07-23 | 2009-07-07 | Spansion Llc | Controller, data memory system, data rewriting method, and computer program product |
| US20100034026A1 (en) * | 2008-08-06 | 2010-02-11 | Samsung Electronics Co., Ltd. | Erase method and non-volatile semiconductor memory |
| US7669004B2 (en) * | 2003-12-31 | 2010-02-23 | Sandisk Corporation | Flash storage system with write-erase abort detection mechanism |
| US20120117307A1 (en) * | 2010-11-09 | 2012-05-10 | Eguchi Richard K | Non-volatile memory (nvm) erase operation with brownout recovery technique |
| JP2013033565A (ja) * | 2011-08-01 | 2013-02-14 | Renesas Electronics Corp | 不揮発性半導体記憶装置 |
| US8433846B2 (en) * | 2001-08-24 | 2013-04-30 | Micron Technology, Inc. | Methods and apparatus reading erase block management data in subsets of sectors having user data and control data sections |
| WO2013069859A1 (ko) * | 2011-11-09 | 2013-05-16 | 한양대학교 산학협력단 | 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법 |
-
2013
- 2013-10-04 TW TW102135958A patent/TWI501242B/zh active
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8433846B2 (en) * | 2001-08-24 | 2013-04-30 | Micron Technology, Inc. | Methods and apparatus reading erase block management data in subsets of sectors having user data and control data sections |
| US7669004B2 (en) * | 2003-12-31 | 2010-02-23 | Sandisk Corporation | Flash storage system with write-erase abort detection mechanism |
| US7558904B2 (en) * | 2004-07-23 | 2009-07-07 | Spansion Llc | Controller, data memory system, data rewriting method, and computer program product |
| US7277329B2 (en) * | 2005-10-04 | 2007-10-02 | Elite Semiconductor Memory Technology, Inc. | Erase method to reduce erase time and to prevent over-erase |
| US20100034026A1 (en) * | 2008-08-06 | 2010-02-11 | Samsung Electronics Co., Ltd. | Erase method and non-volatile semiconductor memory |
| US20120117307A1 (en) * | 2010-11-09 | 2012-05-10 | Eguchi Richard K | Non-volatile memory (nvm) erase operation with brownout recovery technique |
| JP2013033565A (ja) * | 2011-08-01 | 2013-02-14 | Renesas Electronics Corp | 不揮発性半導体記憶装置 |
| WO2013069859A1 (ko) * | 2011-11-09 | 2013-05-16 | 한양대학교 산학협력단 | 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법 |
Also Published As
| Publication number | Publication date |
|---|---|
| TW201514997A (zh) | 2015-04-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7701764B2 (en) | Apparatus and method for reduced peak power consumption during common operation of multi-NAND flash memory devices | |
| US9703698B2 (en) | Data writing method, memory controller and memory storage apparatus | |
| CN106158033B (zh) | 存储器电路及其操作方法 | |
| US9263155B2 (en) | Data storing system and operating method thereof | |
| TWI482158B (zh) | 抑制快閃記憶體響應外部命令時漏電之方法與裝置 | |
| TWI399751B (zh) | 氮化物儲存層非揮發性記憶體陣列字元線重試抹除以及臨界電壓恢復之方法 | |
| JP2003217288A (ja) | リードディスターブを緩和したフラッシュメモリ | |
| KR20120128014A (ko) | 불휘발성 메모리 장치의 동작 방법 및 불휘발성 메모리 장치를 포함하는 메모리 시스템의 동작 방법 | |
| US9390807B2 (en) | Erase method for flash | |
| KR20120005848A (ko) | 불휘발성 메모리 장치 및 이의 소거 방법 | |
| KR20130110970A (ko) | 리드 전압 생성회로, 이를 포함하는 메모리 및 메모리 시스템 | |
| CN114758689A (zh) | 用于非易失性存储器的擦除方法和上电修复方法 | |
| JP2015176628A (ja) | 半導体記憶装置及びメモリコントローラ | |
| TWI501242B (zh) | 快閃記憶體之抹除方法 | |
| US10176876B2 (en) | Memory control method and apparatus for programming and erasing areas | |
| TWI663599B (zh) | 儲存裝置及對其資料進行刷新的方法 | |
| CN114005479A (zh) | 一种提高NOR Flash数据读写可靠性的方法、装置及其应用 | |
| US20110238889A1 (en) | Semiconductor memory device from which data can be read at low power | |
| CN104102598A (zh) | 数据读取方法、控制电路、存储器模块与存储器储存装置 | |
| CN102237136A (zh) | 使用在一存储装置的存储子单元抹除方法 | |
| US11003393B2 (en) | Nonvolatile memory device and method of controlling initialization of the same | |
| TWI700702B (zh) | 半導體儲存裝置 | |
| CN102568571B (zh) | 或非门型快闪存储器与其过抹除验证与修复方法 | |
| TWI442403B (zh) | 半導體記憶裝置中所使用的抹除程序 | |
| CN104575604B (zh) | 快闪存储器的抹除方法 |