本發(fā)明是有關于一種數據擦除方法,特別是有關于一種用于閃存的數據擦除方法。
背景技術:
一般而言,閃存(例如nor閃存)在執(zhí)行擦除操作時,會伴隨著執(zhí)行后編程(post-program)操作以消除擦除操作的過度擦除所導致在位線上的漏電現象。但是,當系統(tǒng)的電源在執(zhí)行擦除或是后編程操作的期間關閉時,漏電現象將可能無法完全消除。因此,發(fā)展出通過減少每一扇區(qū)(sector)的擦除尺寸(即一次數據擦除所對應的字線數量)來降低漏電現象發(fā)生的機率。舉例來說,一扇區(qū)包括16條字線,而每一次的數據擦除是通過4條字線來完成。如此一來,對于此扇區(qū)的擦除操作,則需要通過4次數據擦除來實現。然而,減少擦除尺寸將會延長了每一次擦除操作的時間。因此,如何能以適當的擦除尺寸來進行擦除操作并能減少漏電現象,在存儲器裝置的技術領域中是個重要的議題。
技術實現要素:
因此,本發(fā)明提供一種數據擦除方法,用于一存儲器裝置。此存儲器裝置包括配置成一存儲器陣列的多個存儲單元、多個字線(wordline)、以及多個位線(bitline)。每一存儲單元耦接一組交錯的字線與位線。存儲單元劃分成多個扇區(qū),且每一扇區(qū)中的存儲單元對應一既定數量的字線。此數據擦除方法包括以下步驟:初始設定關于擦除操作的字線數量;執(zhí)行字線選取操作,以根據字線數量來選取目標扇區(qū)中一字線組來作為目標字線組;通過一擦除脈沖來對耦接目標字線組的存儲單元進行擦除操作;選取目標字線組中一字線來做為目標字線,并依序對其所有字節(jié)所耦接的多個存儲單元進行擦除驗證;判斷對目標字線的所有字節(jié)執(zhí)行的擦除驗證是否皆成功;當判斷出 任一擦除驗證未成功時,對存儲器陣列的所有位線依序進行過度擦除驗證;判斷是否曾執(zhí)行過未通過過度擦除驗證而導致的軟編程操作;當判斷出尚未執(zhí)行過軟編程操作時,判斷字線數量是否小于一最大數量;以及當判斷出字線數量小于最大數量時,增加字線數量,以重新執(zhí)行字線選取操作。
本發(fā)明提供另一種數據擦除方法,用于一存儲器裝置。此存儲器裝置包括配置成一存儲器陣列的多個存儲單元、多個字線、以及多個位線。每一存儲單元耦接一組交錯的字線與位線。存儲單元劃分成多個扇區(qū),且每一扇區(qū)中的存儲單元對應一既定數量的字線。此數據擦除方法包括以下步驟:初始設定關于擦除操作的字線數量;執(zhí)行字線選取操作,以根據字線數量來選取目標扇區(qū)中一字線組來作為目標字線組;通過一擦除脈沖來對耦接目標字線組的存儲單元進行擦除操作;選取目標字線組中的一目標字線,并依序對其所有字節(jié)耦接的多個存儲單元進行擦除驗證;判斷對目標字線的所有字節(jié)執(zhí)行的擦除驗證是否皆成功;當判斷出任一擦除驗證未成功時,對存儲器陣列的所有位線依序進行過度擦除驗證;判斷是否曾執(zhí)行過未通過過度擦除驗證而導致的軟編程操作;當判斷出尚未執(zhí)行過軟編程操作時,判斷擦除脈沖的電壓值是否小于一最大值或判斷擦除脈沖的脈沖寬度是否小于一最大寬度;當判斷出擦除脈沖的電壓值小于最大值或判斷出擦除脈沖的脈沖寬度小于最大寬度時,增加電壓值或增加脈沖寬度,以重新執(zhí)行擦除操作;當判斷出擦除脈沖的電壓值并非小于最大值或判斷出擦除脈沖的脈沖寬度并非小于最大寬度時,判斷字線數量是否小于一最大數量;當判斷出字線數量小于最大數量時,增加字線數量,以重新執(zhí)行字線選取操作。
本發(fā)明的擦除操作所采用的字線數量是可變的,可隨著在位線上漏電狀態(tài)而適應性的增加或減少。如此一來,不僅可降低擦除操作導致漏電現象的機率,也可讓執(zhí)行擦除操作所需的時間更能符合存儲器裝置的操作狀態(tài)。
附圖說明
圖1表示存儲器裝置的一示范例。
圖2a、圖2b表示根據本發(fā)明一實施例,用于存儲器裝置的控制方法。
圖3a、圖3b表示根據本發(fā)明另一實施例,用于存儲器裝置的控制方法。
附圖標號:
1~存儲器裝置;
10~存儲器陣列;
11~地址解碼器;
12~寫入/讀取電路;
13~控制器;
100~存儲單元;
bl0-bly~位線;
s0~sn~扇區(qū);
wl0-wlx~字線;
s200…s223~方法步驟;
s316…s323~方法步驟。
具體實施方式
為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉一較佳實施例,并配合所附圖式,作詳細說明如下。
圖1是表示根據本發(fā)明一實施例的存儲器裝置。參閱圖1,存儲器裝置1包括存儲器陣列10、地址解碼器11、寫入/讀取電路12、以及控制器13。存儲器陣列10包括多個字線wl0-wlx、多個位線bl0-bly、配置成多個行與多個列的多個存儲單元100。字線wl0-wlx與位線bl0-bly相互交錯,且每一存儲單元100耦接一組交錯的字線與位線。這些存儲單元100劃分成多個扇區(qū)(sector)s0~sn。每一扇區(qū)s0-sn包括耦接既定數量的字線的存儲單元。舉例來說,每一扇區(qū)s0-sn包括耦接16條字線上存儲單元。地址解碼器11接收到來自控制器13的地址信號時,寫入/讀取電路12則配合地址解碼器11來將對選取的存儲單元進行讀取與寫入操作??刂破?3可根據過度擦除驗證的結果來改變擦除操作的執(zhí)行參數,以消除擦除操作的過度擦除所導致在位線上的漏電現象。在本發(fā)明實施例中,存儲器裝置1為一閃存。
圖2a、圖2b是表示根據本發(fā)明一實施例的數據擦除方法。此方式是當存儲器裝置1執(zhí)行多個擦除操作時所采用的數據擦除方法。當控制器13選取一個扇區(qū)做為目標扇區(qū)時,是分次地通過至少一擦除脈沖來對耦接該扇區(qū)的存儲單元進行數據擦除。舉例來說,每一扇區(qū)包括16條字線,每一次的擦除操作是對耦接4條字線的存儲單元進行數據擦除。因此,對于一扇區(qū)而言,需要執(zhí)行4次擦除操作。在本發(fā)明實 施例中,上述每一次數據擦除所對應的字線數量n(即4條,n=4),則稱為關于擦除操作的字線數量n(以下簡稱為字線數量n)。在其他實施例中,字線數量n可以為4條、8條、16條或以上。
請同時參閱圖1、圖2a、及圖2b,首先,控制器13對存儲器陣列10中的一目標扇區(qū)執(zhí)行預編程操作(步驟s200),以將目標扇區(qū)中的所有存儲單元編程為邏輯位準“0”。接著,控制器13也將字線數量n初始設定為預設值n0,且將用于擦除操作的擦除脈沖的電壓值v初始設定為預設值v0并將擦除脈沖的脈沖寬度t初始設定為預設值t0(設定n=n0、v=v0、t=t0)(步驟s201)。在其他實施例中,步驟s200與s201可互相交換,即可以先執(zhí)行步驟s201再執(zhí)行s200。之后,控制器13根據地址信號addx以及字線數量n(此時n=n0)來執(zhí)行一字線選取操作,以選取一目標扇區(qū)中的一目標字線組(即選取具有n0條字線的一組字線)(步驟s202)??刂破?3根據電壓值v(此時v=v0)與脈沖寬度t(此時t=t0)來對耦接目標字線組的所有存儲單元進行擦除操作(步驟s203),也就是,控制器13通過寫入/讀取電路12而以具有電壓值v與脈沖寬度t的擦除脈沖來將信號寫入目標字線組所對應的多個存儲單元,即將目標字線組所對應的多個存儲單元編程為邏輯位準“1”。在對目標字線組進行擦除操作后,控制器13選取目標字線組中的第一條字線作為目標字線并控制寫入/讀取電路12以字節(jié)為單位依序對目標字線的所有字節(jié)所耦接的多個存儲單元讀取信號以執(zhí)行擦除驗證,并判斷擦除驗證是否成功(步驟s204)。當字節(jié)中的多個存儲單元讀出的信號皆為邏輯位準“1”時,控制器13則判斷擦除驗證成功??刂破?3接著判斷目標字線中的所有字節(jié)是否皆驗證成功(步驟s205)。若目標字線中的所有字節(jié)皆通過擦除驗證,控制器13接著判斷目標字線的地址是否已經到達目標字線組的最后地址(步驟s206)。若尚未到達最后地址,控制器13則選取下一字線以作為目標字線(步驟s207),且方法回到步驟s204繼續(xù)進行擦除驗證。
若已經到達最后地址時,控制器13則對耦接目標字線組的所有存儲單元執(zhí)行后編程操作(步驟s208)以消除擦除操作的過度擦除所導致在位線上的漏電現象,即對目標字線組執(zhí)行過度擦除驗證以及軟編程操作。之后,控制器13判斷目標字線組的地址是否已到達目標扇區(qū)的最后地址(步驟s209)。若尚未到達最后地址,控制器13則設定addx=addx+n(步驟s210),且方法回到步驟s202來執(zhí)行下一次的字線選取操作,以選取目標扇區(qū)中的另一字線組以作為目標字線組。若已到達最后地址, 則此方法結束(步驟s211)。
在一實施例中,當在步驟s205中控制器13判斷出目標字線中的任一字節(jié)擦除驗證未成功時,控制器13則逐一對存儲器陣列10中的所有位線bl0-bly執(zhí)行過度擦除驗證,以檢測位線bl0-bly上是否有漏電。詳細而言,控制器13對存儲器陣列10中的一目標位線執(zhí)行過度擦除驗證(步驟s212a)并判斷驗證是否成功(步驟s212b)。當控制器13判斷出過度擦除驗證不成功時,控制器13則進一步界定驗證失敗的存儲單元,并對驗證失敗的存儲單元執(zhí)行軟編程操作(步驟s212c),以調整該存儲單元的臨界電壓值。在執(zhí)行步驟s212c的軟編程操作之后,方法回到步驟s212a,控制器13再次對目標位線執(zhí)行過度擦除驗證,并再次判斷驗證是否成功。當控制器13判斷出過度擦除驗證成功時,控制器13判斷目標位線是否為最后一條位線(步驟s212d)。當控制器13判斷出目標位線并非為最后一條位線時,控制器13選取下一位線以作為目標位線(步驟s212e),且方法回到步驟s212a。當控制器13判斷出目標位線為最后一條位線時,控制器13則判斷是否已執(zhí)行過步驟s212c的軟編程操作(步驟s215)。根據上述,控制器13逐一對所有位線執(zhí)行過度擦除驗證。當某一位線未通過過度擦除驗證時,則進一步界定驗證失敗的存儲單元,并對其執(zhí)行軟編程操作,以調整該存儲單元的臨界電壓值。
當控制器13判斷出曾執(zhí)行過步驟s212c的軟編程操作時,控制器13則判斷目前的字線數量n是否大于最小值nmin(n>nmin?)(步驟s216)。當控制器判斷出目前的字線數量n大于最小值nmin時,控制器13則減少字線數量n使其等于n2(n=n2)(步驟s217)。接著,方法回到步驟s202,控制器13再次執(zhí)行字線的選取操作,以根據地址信號addx以及改變過的字線數量n(此時n=n2)來調整原本的目標字線組中的字線數量(即重新根據地址信號addx選取具有n2條字線的一字線組來做為目標字線組)。當控制器13判斷出目前的字線數量n并非大于最小值nmin時,控制器13判斷電壓值v是否大于最小值vmin或判斷脈沖寬度t是否大于最小值tmin(v>vmin或t>tmin?)(步驟s218)。當控制器13判斷出電壓值v大于最小值vmin或判斷出脈沖寬度t大于最小值tmin時,控制器13則減少電壓值v使其等于v2或者減少脈沖寬度t使其等于t2(步驟s219)。接著,方法回到步驟s202,控制器13先根據地址信號addx及字線數量n(此時n=n0)選取目標字線組后(步驟s202),再根據改變過的電壓值v與脈沖寬度t(此時v=v2或者t=t2)來對目 標字線組的所有存儲單元進行擦除操作(步驟s203)。此外,當控制器13判斷出電壓值v并非大于最小值vmin或判斷出脈沖寬度t并非大于最小值tmin時,方法也回到步驟s202,此時,控制器13根據先根據地址信號addx及原字線數量n(此時n=n0)選取目標字線組后(步驟s202),再根據原電壓值v與原脈沖寬度t(此時v=v0且t=t0)來對目標字線組的所有存儲單元進行擦除操作(步驟s203)。
當控制器13判斷出未執(zhí)行過步驟s212c的軟編程操作時,控制器13則判斷目前的字線數量n是否小于最大值nmax(n<nmax?)(步驟s220)。當控制器13判斷出目前的字線數量n小于最大值nmax時,控制器13則增加字線數量n使其等于n3(步驟s221)。接著,方法回到步驟s202,控制器13再次執(zhí)行字線的選取操作,以根據地址信號addx以及改變過的字線數量n(此時n=n3)來調整原本的目標字線組中的字線數量(即重新根據地址信號addx選取具有n3條字線的一組字線來做為目標字線組)。當控制器13判斷出目前的字線數量n并非小于最大值nmax,控制器13判斷電壓值v是否小于最大值vmax或判斷脈沖寬度t是否小于最大值tmax(v<vmax或t<tmax?)(步驟s222)。當控制器13判斷出電壓值v小于最大值vmax或判斷出脈沖寬度t小于最大值tmax時,控制器13則增加電壓值v使其等于v3或者增加脈沖寬度t使其等于t3(步驟s223)。接著,方法回到步驟s202,控制器13先根據地址信號addx及字線數量n(此時n=n0)選取目標字線組后(步驟s202),再根據改變過的電壓值v與脈沖寬度t(此時v=v3或者t=t3)來對目標字線組的所有存儲單元進行擦除操作。此外,當控制器13判斷出電壓值v并非小于最大值vmax或判斷出脈沖寬度t并非小于最大值tmax時,方法也回到步驟s202,此時,控制器13先根據地址信號addx及原字線數量n(此時n=n0)選取目標字線組后(步驟s202),再根據原電壓值v與原脈沖寬度t(此時v=v0且t=t0)來對目標字線組的所有存儲單元進行擦除操作(步驟s203)。
在逐一對存儲器陣列的所有位線bl0-bly執(zhí)行過度擦除驗證的步驟s212a-s212e中,施加檢測電壓至被選取的字線組,此時,控制器13檢測目標位線上是否具電流,藉以判斷是否發(fā)生漏電現象。在本發(fā)明的實施例中,檢測電壓是大于0伏特的電壓。由于存儲器裝置1可能在不同的環(huán)境(例如,不同的環(huán)境溫度)下操作,同一檢測電壓在不同的操作環(huán)境下不一定都會導致漏電或者漏電程度不同。而大于0伏特的檢測電壓對于各種操作環(huán)境而言,相對地容易導致在位線上發(fā)生漏電。因 此,本案實施例采用大于0伏特的檢測電壓是為較嚴格的檢測漏電的條件。
根據上述實施例,本案擦除操作所采用的字線數量是可變的,其可隨著目前在位線上漏電狀態(tài)而適應性的增加或減少。如此一來,不僅可降低擦除操作導致漏電現象的機率,也可讓執(zhí)行擦除操作所需的時間更能符合目前存儲器裝置1的操作狀態(tài)。
圖3a、圖3b是表示根據本發(fā)明另一實施例的數據擦除方法。圖3a、圖3b的數據擦除方法與圖2a、圖2b的數據擦除方法中相同的步驟是以相同的符號來表示。除了判斷是否曾執(zhí)行的軟編程操作(步驟s215)之后的步驟以外,圖3a、圖3b的數據擦除方法大致上具有與圖2a、圖2b的數據擦除方法相同的步驟。相同的步驟s200-s215在此省略敘述。請同時參閱圖1、圖3a、及圖3b,當在步驟s215中判斷出曾執(zhí)行過步驟s212c的軟編程操作時,控制器13判斷電壓值v是否大于最小值vmin或判斷脈沖寬度t是否大于最小值tmin(v>vmin或t>tmin?)(步驟s316)。當控制器13判斷出電壓值v大于最小值vmin或判斷出脈沖寬度t大于最小值tmin時,控制器13則減少電壓值v使其等于v2或者減少脈沖寬度t使其等于t2(步驟s317)。接著,方法回到步驟s202,控制器13先根據地址信號addx及字線數量n(此時n=n0)選取目標字線組后(步驟s202),再根據改變過的電壓值v與脈沖寬度t(此時v=v2或者t=t2)來對目標字線組的所有存儲單元進行擦除操作。當控制器13判斷出電壓值v并非大于最小值vmin或判斷出脈沖寬度t大于最小值tmin時,控制器13則判斷目前的字線數量n是否大于最小值nmin(n>nmin?)(步驟s318)。當控制器13判斷出目前的字線數量n大于最小值nmin,控制器13則減少字線數量n使其等于n2(步驟s319)。接著,方法回到步驟s202,控制器13再次執(zhí)行字線的選取操作,以根據地址信號addx以及改變過的字線數量n(此時n=n2)來調整原本的目標字線組中的字線數量(即重新根據地址信號addx選取具有n2條字線的一組字線來做為目標字線組)。此外,當控制器13判斷出目前的字線數量n并非大于最小值nmin時,方法也回到步驟s202,此時,控制器13先根據地址信號addx及原字線數量n(此時n=n0)選取目標字線組后(步驟s202),再根據原電壓值v與原脈沖寬度t(此時v=v0且t=t0)來對目標字線組的所有存儲單元進行擦除操作(步驟s203)。
當在步驟s215中控制器13判斷出未執(zhí)行過步驟s212c的軟編程操作時,控制器13判斷電壓值v是否小于最大值vmax或判斷脈沖寬度t是否小于最大值tmax (v<vmax或t<tmax?)(步驟s320)。當控制器13判斷出電壓值v小于最大值vmax或判斷出脈沖寬度t小于最大值tmax時,控制器13則增加電壓值v使其等于v3或者增加寬度t使其等于t3(步驟s321)。接著,方法回到步驟s202,控制器13先根據地址信號addx及字線數量n(此時n=n0)選取目標字線組后(步驟s202),再根據改變過的電壓值v與脈沖寬度t(此時v=v3或者t=t3)來對耦接目標字線組的所有存儲單元進行擦除操作。當控制器13判斷出電壓值v并非小于最大值vmax或判斷出脈沖寬度t并非小于最大值tmax時,控制器13則判斷目前的字線數量n是否小于最大值nmax(n<nmax?)(步驟s322)。當控制器13判斷出目前的字線數量n小于最大值nmax時,控制器13則增加字線數量n使其等于n3(步驟s323)。接著,方法回到步驟s202,控制器13再次執(zhí)行字線的選取操作,以根據地址信號addx以及改變過的字線數量n(此時n=n3)來調整原本的目標字線組中的字線數量(即重新根據地址信號addx選取具有n3條字線的一組字線來作為目標字線組)。此外,當控制器13判斷出目前的字線數量n并非小于最大值nmax時,方法也回到步驟s202,此時,控制器13先根據地址信號addx及原字線數量n(此時n=n0)選取目標字線組后(步驟s202),再根據原電壓值v與原脈沖寬度t(此時v=v0且t=t0)來對目標字線組的所有存儲單元進行擦除操作(步驟s203)。
本發(fā)明雖以較佳實施例揭露如上,然其并非用以限定本發(fā)明的范圍,任何本領域技術人員,在不脫離本發(fā)明的精神和范圍內,當可做些許的更動與潤飾,因此本發(fā)明的保護范圍當視權利要求為準。