專利名稱:可中斷的nand閃存的制作方法
可中斷的NAfJD閃存背景閃存是在大部分擦除的固態(tài)非易失性存儲器,并在許多種電子器件中是流行的。 閃存由多個存儲器單元組成,每一個存儲器單元都包括浮動?xùn)啪w管。存儲器單元的狀態(tài)受相對應(yīng)的浮動?xùn)派系碾姾闪康目刂啤?梢韵蚋訓(xùn)胖刑砑?通過編程)或從其中去除 (通過擦除)電子,以便改變存儲器單元的狀態(tài)。傳統(tǒng)上,每一個存儲器單元都通過只具有兩個有區(qū)別的狀態(tài)來包含單比特信息,每一個狀態(tài)對應(yīng)于浮動?xùn)派系牟煌碾姾煞秶?。較新的閃存單元可以各自通過具有更多有區(qū)別的狀態(tài)(例如,對于兩比特信息,四個狀態(tài))包含多個比特的信息。有兩種類型的閃存,NOR閃存和NAND閃存。與NOR閃存相比,NAND閃存具有較短的擦除時間,且每秒鐘編程更多數(shù)據(jù),每個存儲器單元要求較少的空間。定義NAND閃存的組織以及用于與NAND閃存進行通信的通信協(xié)議的一個常規(guī)規(guī)范被稱為開放NAND閃存接口 (ONFI)標(biāo)準(zhǔn)。根據(jù)ONFI標(biāo)準(zhǔn),NAND閃存被組織成邏輯單元。每一個邏輯單元都包括存儲器單元陣列以及相對應(yīng)的用于對從存儲器陣列的諸部分讀取和寫入到該諸部分的命令作出響應(yīng)的控制電路。ONFI標(biāo)準(zhǔn)將這些邏輯單元稱為“邏輯單元號”或“LUN”。根據(jù)ONFI標(biāo)準(zhǔn), 每一個NAND閃存LUN都被組織成塊,其中,每一個LUN包含多個塊。此外,每一個塊都還包含多個頁,而每一個頁都包含多個存儲器單元。簡要概述此處所描述的實施例涉及NAND閃存邏輯單元以及其操作。NAND閃存邏輯單元包括對命令作出響應(yīng)并準(zhǔn)許編程和/或擦除命令可被讀取命令中斷的控制電路??刂齐娐钒ㄒ唤M內(nèi)部寄存器,這些內(nèi)部寄存器是用于執(zhí)行當(dāng)前活動的進程中(in-process)的命令的直接可使用的存儲器單元。控制電路還包括一組用于與外部命令源進行通信的外部寄存器??刂齐娐愤€包括在較高優(yōu)先級中斷前進以使用正常工作的寄存器的同時允許NAND閃存邏輯單元正確地保持被中斷的編程或擦除命令的狀態(tài)的一組補充寄存器。當(dāng)被中斷的編程或擦除命令是恢復(fù)時,NAND閃存邏輯單元可以利用補充寄存器的內(nèi)容快速地恢復(fù)被暫停的編程或擦除操作。這在NAND閃存邏輯單元的上下文中提供對讀取響應(yīng)時間的顯著改進。如此,即使外部命令電路預(yù)先將編程或擦除命令提供到控制電路,控制電路也可以通過保持編程操作或擦除操作來快速地對來自外部命令源的隨后的讀取命令作出響應(yīng)。本發(fā)明內(nèi)容并不旨在標(biāo)識出所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。附圖簡述為了描述可以獲得本發(fā)明的上文所列舉的及其他優(yōu)點和特征的方式,下面將通過參考附圖來呈現(xiàn)對各實施例的更具體的描述??梢岳斫?,這些圖形只描繪了示例實施例,并且因此不被認(rèn)為是對其范圍的限制,將通過使用圖形并利用附加特征和細(xì)節(jié)來描述和解釋各實施例,在圖形中
圖1示出了根據(jù)現(xiàn)有技術(shù)的一系列示例NAND閃存單元;
6
圖2示出了包含兩個NAND閃存邏輯單元的NAND閃存模塊的框圖,其中NAND閃存邏輯單元包含能夠利用讀取命令中斷擦除或編程命令的控制電路;圖3示出了能夠中斷擦除或編程命令的NAND閃存邏輯單元的示例控制電路的框圖;圖4示出了根據(jù)此處所描述的一個實施例的圖3的控制電路對命令作出響應(yīng)的方法的流程圖,其中補充(supplemental)寄存器充當(dāng)讀取命令的專用內(nèi)部寄存器;圖5示出了根據(jù)此處所描述的另一實施例的圖3的控制電路對命令作出響應(yīng)的方法的流程圖,其中補充寄存器充當(dāng)用于被中斷的進程中的命令的備份寄存器;以及圖6示出了外部命令源與圖3的控制電路進行通信的方法的流程圖。詳細(xì)描述根據(jù)此處所描述的實施例,描述了 NAND閃存技術(shù),該技術(shù)準(zhǔn)許中斷進程中的非讀取命令,以便更快速地完成讀取命令,從而改善較高優(yōu)先級讀取時間。首先,將參考圖1來描述NAND閃存的基本存儲器單元。然后,參考圖2示出和描述NAND閃存模塊。然后,參考圖3示出和描述控制NAND存儲器邏輯單元的控制電路。最后,將參考圖4到6示出和描述控制電路的操作原理。圖1示出了三個NAND閃存單元101、102和103的系列100的橫截面。圖1示出了現(xiàn)有技術(shù)的NAND閃存單元,且只是為參考而提供的。此處所描述的原理可以適用于任何 NAND閃存單元陣列,而不管NAND閃存單元的結(jié)構(gòu)或設(shè)計如何。圖1不是按比例繪制的而只包括主結(jié)構(gòu),并且只是為了對NAND閃存單元的操作的一般描述而提供的。雖然為清楚起見,在圖1中只示出了三個NAND存儲器單元,但是,許多市場上可買到的NAND閃存陣列包括上億的存儲器單元。每一個NAND閃存單元101、102和103分別具有相對應(yīng)的導(dǎo)電浮動?xùn)?11、121和 131。浮動?xùn)?11、121和131可以由各種導(dǎo)電材料制成,通常使用多晶或非晶硅。柵被叫做 “浮動的”,因為它們在各個方向被諸如氮化硅或二氧化硅之類的高度有效并且純凈的絕緣體104圍繞。此絕緣體足夠好,以至于可能在浮動?xùn)派系倪^剩電子在正常電壓和溫度下平均起來將要花許多年才能泄漏到絕緣體之外。此浮動?xùn)攀谴鎯卧拇鎯ζ鞑糠帧S纱鎯ζ鲉卧鎯Φ闹等Q于相對應(yīng)的浮動?xùn)派系碾姾闪?即,電子的數(shù)量)。傳統(tǒng)上,每一個存儲器單元都通過存儲兩種可能的狀態(tài)中的一種來保持一個比特的信息。在該情況下,電路只能夠辨別浮動?xùn)派系膬煞N可能的電荷范圍,每一個可能的范圍解析為比特的兩個可能值中的一個。然而,更現(xiàn)代的NAND閃存單元被能夠辨別和編程超過兩個,或許四個或更多個可能的狀態(tài)的電路讀取,從而允許每一個存儲器單元存儲甚至更多信息,或許對于每一個存儲器單元,兩個比特或更多。存儲器單元101、102和103在絕緣或弱的半導(dǎo)體襯底105上實現(xiàn)。例如,襯底105 可以是硅晶體或諸如二氧化硅之類的絕緣體上的硅。電路元件被植入、蝕刻到或?qū)盈B在襯底之上。通過植入或蝕刻以添加摻雜原子,來創(chuàng)建導(dǎo)電通道106。每一個存儲器單元101、 102和103還具有分別由導(dǎo)電材料(通常是鋁或非晶硅)制成的控制柵112、122和132。流過導(dǎo)電通道106的電流通過附近的控制柵和浮動?xùn)派系碾姾蓙碚{(diào)節(jié),構(gòu)成了用于檢測存儲器的狀態(tài)的基礎(chǔ)。在NAND閃存中,若干個柵共享同一個通道,從而產(chǎn)生了增大的電路密度。例如,在圖1中,存儲器單元101、102和103各自共享導(dǎo)電通道106。這增大了容許的存儲器單元的密度,但也使感測任何一個柵的狀態(tài)的任務(wù)復(fù)雜化。這是因為信號更微弱,因此,必須隨著時間的推移被放大和采樣,以分隔信號與噪聲??刂茤啪哂袃蓚€功能。首先,控制柵可以擦除或編程相對應(yīng)的浮動?xùn)?。例如,控制?12可以擦除或編程相對應(yīng)的浮動?xùn)?11,控制柵122可以擦除或編程相對應(yīng)的浮動?xùn)?121,而控制柵132可以擦除或編程相對應(yīng)的浮動?xùn)?31。這通過在控制柵上設(shè)置足夠的電壓來起作用,以使得控制柵和浮動?xùn)胖g的電壓微分導(dǎo)致足夠強的電場,該電場導(dǎo)致電子跨圍繞浮動?xùn)诺慕^緣體隧穿。雖然絕緣體幾乎完美,但是,仍可以發(fā)生跨控制柵和浮動?xùn)胖g的非常薄的納米標(biāo)度的隔離層的電子量子隧穿。如果電壓差足夠大,那么,可以擦除(過剩電子被從浮動?xùn)胖幸瞥?或編程(過剩電子被注入到浮動?xùn)胖?浮動?xùn)?。每一個電子分別地在大約幾個飛秒內(nèi)進行跳躍(一旦跳躍開始),其中需要擦除或編程的所有電子的運動長得多(例如,根據(jù)常規(guī)的擦除和編程技術(shù),幾個毫秒),因為每一個電子將在不同的時間進行跳躍??刂茤诺牧硪粋€用途將是選擇多個存儲器單元中的哪一個將被附連到共享導(dǎo)電通道的感測電路測量。浮動?xùn)派系碾姾傻牟淮嬖诨虼嬖谠试S或抑制控制柵對通道中的電流的調(diào)節(jié),從而允許感測電路檢測相對應(yīng)的存儲器單元的狀態(tài)。圖2示出了 NAND閃存模塊200的框圖。雖然常規(guī)NAND閃存模塊可以如圖2所示的那樣構(gòu)建,但是,根據(jù)此處所描述的原理的NAND閃存模塊也可以如此來構(gòu)建。然而,此處所描述的原理提供允許讀取操作中斷諸如編程和擦除操作之類的非讀取操作的顯著不同的控制電路,從而顯著縮短與讀取操作相關(guān)聯(lián)的平均等待時間。圖2的NAND閃存模塊200包括通過單個通信總線接口 203與外部命令源204通信地耦合的兩個NAND閃存邏輯單元201和202。這樣的外部命令源204的特征對本發(fā)明的原理來說不是重要的,但是,源204可以是可以用于與諸如NAND閃存之類的非易失性存儲器進行通信的任何設(shè)備或系統(tǒng),無論是常規(guī)的,或者無論是尚未開發(fā)的。命令源204被標(biāo)記為“外部”,只是因為它通過通信總線接口 203進行通信以便與NAND閃存模塊200進行通信。術(shù)語“外部”不要求命令源204 —定在與NAND閃存模塊200不同的芯片上。與NAND閃存邏輯單元進行通信的總線可以使用ONFI協(xié)議進行通信,諸如該協(xié)議的版本1. 0、2. 0或2. 1,或該協(xié)議的后續(xù)版本,或替換協(xié)議,或者用于與NAND閃存進行通信的任何其他協(xié)議。下面,ONFI協(xié)議版本1. 0,2. 0,2. 1和后續(xù)版本將在權(quán)利要求書中統(tǒng)稱為 “0NFI協(xié)議”。然而,此處所描述的原理不僅限于任何總線通信協(xié)議。將來,此處所描述的原理在應(yīng)用于目前甚至還沒有開發(fā)的NAND閃存通信協(xié)議時也會是有益的。每一個NAND閃存模塊都可以具有任何數(shù)量的邏輯單元。然而,NAND閃存模塊還可只包含一個邏輯單元,如在圖2的情況下包含兩個邏輯單元,或兩個以上的邏輯單元。如果NAND閃存芯片使用多個總線,那么,每一個總線和連接到該總線的相對應(yīng)的邏輯單元可以被視為單獨的模塊。如此,單一 NAND閃存芯片可以具有多個NAND閃存模塊(和單獨的總線一樣多)。圖2只示出了一個NAND閃存模塊200,因為只有一個總線203。雖然NAND 閃存芯片可包括多個NAND閃存模塊,但是,相反的也是可以成立的。S卩,單個NAND閃存模塊可以由多個芯片組成。另外,或許NAND閃存芯片只包括一個NAND閃存模塊。每一個NAND閃存邏輯單元201和202分別具有相對應(yīng)的控制電路211和221。每一個控制電路都對被定向到相對應(yīng)的存儲器單元陣列的命令作出響應(yīng)。例如,控制電路211對讀取、擦除或編程存儲器陣列212的存儲器單元的命令作出響應(yīng)??刂齐娐?11對讀取、 擦除或編程存儲器陣列222的存儲器單元的命令作出響應(yīng)。每一個存儲器陣列212和222 都由NAND存儲器單元組成,NAND存儲器單元的示例是圖1的NAND存儲器單元101、102和 103。每一個NAND閃存邏輯單元201和202可包括保持還沒有準(zhǔn)備被處理的命令的隊列(未示出)。替換地或另外地,隊列可以在與NAND閃存邏輯單元200進行通信的命令源 204上實現(xiàn)。典型的數(shù)據(jù)存儲系統(tǒng)可以具有用來向其中寫入數(shù)據(jù)和從其中讀取數(shù)據(jù)的可用的多個NAND閃存模塊。向NAND閃存寫入數(shù)據(jù)涉及首先擦除存儲器陣列的一部分,根據(jù)ONFI 一次擦除存儲器的一個塊,然后編程存儲器陣列,通常一次一個頁。如此,在寫入操作中,對一個塊的單個擦除操作接下來是多個編程操作以重新填充該塊。也就是說,此處所描述的原理不僅限于對應(yīng)于單個擦除、寫入或讀取命令的數(shù)據(jù)的大小。擦除是重要的,因為浮動?xùn)艖?yīng)該在與電子基本上被移除的大致相同的狀態(tài)開始編程操作,以便獲得對作為編程操作的結(jié)果將在浮動?xùn)派侠鄯e的電荷量的可預(yù)測性。擦除還確保將不被編程的存儲器單元具有適當(dāng)?shù)臓顟B(tài)。與讀取操作相比,擦除和編程是相對慢的操作。同樣,在一般用途的存儲系統(tǒng)中, 讀取活動的量一般遠遠多于寫入活動的量。因此,在常規(guī)設(shè)計中,系統(tǒng)一般將被設(shè)計成緩沖正在等待被寫入的數(shù)據(jù),并在任一時刻將慢擦除和編程操作限制到小的邏輯單元子集,以便最小化它們對讀取的干擾。令人遺憾的是,干擾仍將以很高的比率發(fā)生,這將損壞系統(tǒng)響應(yīng)時間??紤]當(dāng)只有一個邏輯單元201被擦除或編程操作占用的情況。該慢的操作將處在該邏輯單元201的操作隊列的前面。由于所謂“條帶(striping)”的過程,單個文件級別的讀取可以導(dǎo)致多個段讀取,每一個段讀取都要求在不同的邏輯單元上執(zhí)行讀取操作。條帶模式增大了平均讀取請求中所包括的邏輯單元的比例,并因此增大一個邏輯單元上的至少一個讀取操作被延遲到慢擦除或編程命令后面的機率。總的文件讀取請求沒有完成,直到所有其段完成,如此, 總的文件讀取請求與具有正在被作為總的文件讀取請求的一部分讀取的段的最慢的邏輯單元一樣慢。以此方式,甚至許多邏輯單元中的一個邏輯單元上的慢的擦除和編程操作仍可以作為高讀取等待時間和降低的系統(tǒng)速度的主要因素。假設(shè)其中平均條帶導(dǎo)致單個文件的數(shù)據(jù)被跨數(shù)據(jù)存儲系統(tǒng)中的25%的邏輯單元擴散的情況?,F(xiàn)在假設(shè)擦除操作比讀取操作慢 50倍。在此情況下,僅僅一個邏輯單元上的擦除操作的存在將導(dǎo)致對于在擦除操作過程中發(fā)生的讀取請求的6. 25倍的平均減慢。例如,對于給定讀取請求,讀取操作中的一個將在目前正在執(zhí)行擦除操作的邏輯單元上的機率為25%。在25%的發(fā)生這種情況的似然性中, 平均起來,擦除操作將在半途中,這要求讀取操作的時間的25倍才能完成擦除。如此,對讀取請求的總的系統(tǒng)響應(yīng)相應(yīng)地大致減慢6. 25倍(如果正在發(fā)生擦除操作的25倍乘以25% 的需要被作為總的讀取操作的一部分讀取的在邏輯單元上發(fā)生的擦除操作的機率)。注意, 發(fā)明人認(rèn)識到此處所提及的現(xiàn)有技術(shù)所存在的此問題及其他問題并不以任何方式構(gòu)成相對應(yīng)的問題一般性地被認(rèn)識到的許可,本領(lǐng)域技術(shù)人員也不會認(rèn)識到。在任何情況下,此處所描述的原理為NAND閃存邏輯單元提供顯著改善的控制電路。圖3示出了表示改進的控制電路的一個實施例的控制電路300的框圖??刂齐娐?00是圖2的控制電路201或控制電路202的示例??刂齐娐?00包括寄存器310和命令電路 320。寄存器310包括內(nèi)部數(shù)據(jù)寄存器311A、內(nèi)部地址寄存器311B、外部數(shù)據(jù)寄存器312A、 外部地址寄存器312B、補充數(shù)據(jù)寄存器313A以及補充地址寄存器31!3B。控制電路還包括 感測放大器陣列304——從該感測放大器陣列304,來自存儲器單元的讀取信息可被應(yīng)用于內(nèi)部數(shù)據(jù)寄存器311A ;以及寫入放大器陣列305——通過該寫入放大器陣列305,寫入程序數(shù)據(jù)。下面,寄存器311A和311B的組合可以被稱為“寄存器311”、寄存器312A和312B的組合可以被稱為“寄存器312”,而寄存器313A和31 的組合可以被稱為“寄存器313”。內(nèi)部數(shù)據(jù)寄存器311A用于通過感測放大器陣列304接收活動讀取命令的數(shù)據(jù),并用于通過寫入放大器陣列305斷言活動編程命令的數(shù)據(jù)。內(nèi)部地址寄存器311B驅(qū)動適當(dāng)?shù)碾娐芬詫ぶ纷鳛槊畹哪繕?biāo)的適當(dāng)?shù)拇鎯ζ鲉卧@?,如果有讀取命令,則地址寄存器311B中的地址導(dǎo)致來自相對應(yīng)的存儲器單元的值來以相對應(yīng)的值驅(qū)動感測放大器陣列 304,從而導(dǎo)致值被存儲在內(nèi)部數(shù)據(jù)寄存器311A中。同樣,如果有編程命令,則內(nèi)部地址寄存器311B中的地址導(dǎo)致寫入放大器陣列305和相對應(yīng)的被尋址的存儲器單元之間的連接。 這導(dǎo)致內(nèi)部數(shù)據(jù)寄存器311A中的數(shù)據(jù)通過寫入放大器陣列305被寫入到地址存儲器單元。 如果有擦除命令,則相對應(yīng)的電路尋址由內(nèi)部地址寄存器311B中的地址尋址的存儲器段, 并導(dǎo)致該段中的所有存儲器單元的值被復(fù)位。外部數(shù)據(jù)寄存器312A用于從通信總線接口 203接收與命令相關(guān)聯(lián)的數(shù)據(jù),并用于通過通信總線接口 203將由已經(jīng)執(zhí)行的命令所產(chǎn)生的數(shù)據(jù)提供回外部命令源204。外部地址寄存器312B用于從通信總線接口 203接收與命令相關(guān)聯(lián)的地址。補充數(shù)據(jù)寄存器313A和補充地址寄存器31 以將更詳細(xì)地描述的方式促進活動的進程中的命令的暫停和恢復(fù)。下面將描述兩個具體的實施例。取決于實施例,補充寄存器313A和31 的行為和功能會有所不同。第一實施例一專用內(nèi)部寄存器在現(xiàn)在將描述的控制電路300的操作的第一實施例中,補充數(shù)據(jù)寄存器313A和補充地址寄存器31 可以是額外的一組內(nèi)部寄存器。這可使內(nèi)部數(shù)據(jù)寄存器311A和內(nèi)部地址寄存器311B被預(yù)留用于非讀取操作(例如,編程和擦除操作)。同時,補充數(shù)據(jù)寄存器 313A和補充地址寄存器31 可以是用于讀取操作的專用內(nèi)部寄存器。當(dāng)讀取命令被加載到補充寄存器313中時,如果命令邏輯320確定讀取命令將獲得優(yōu)先級,則寄存器313被給予處理優(yōu)先級。如此,寄存器31IA和31IB用于潛在可中斷的命令,而寄存器313A和31 用于可能中斷存在于寄存器311A和311B中的命令的命令。圖 3的寄存器大小不是按比例繪制的。通常,數(shù)據(jù)寄存器將與能夠在單個命令中被編程和/或讀取的存儲器大小一樣大,無論后者有多大。此大小此處被稱為“頁”。地址寄存器可以與唯一地標(biāo)識正在被編程和/或讀取的存儲器部分所需的一樣大。圖4示出了當(dāng)使用補充寄存器作為專用寄存器時圖3的控制電路處理命令的方法 400的流程圖。方法400在將命令接收到外部寄存器312時啟動(動作401)。如果此命令是編程命令,那么,程序數(shù)據(jù)(即,將被寫入的數(shù)據(jù))被加載到外部數(shù)據(jù)寄存器312A,而對應(yīng)于將被編程的存儲器單元的地址被加載到外部地址寄存器312B中。如果命令是擦除命令,則這意味著,對應(yīng)于將被擦除的存儲器單元的擦除地址被加載到外部地址寄存器312B 中。如果命令是讀取命令,則這意味著,對應(yīng)于將被讀取的存儲器單元的讀取地址被加載到外部地址寄存器312B中。命令電路320檢測與剛剛加載到外部寄存器312中的命令相關(guān)聯(lián)的命令的類型 (判斷框402)。例如,命令類型可以是編程命令類型(在判斷框402中為“編程”),擦除命令類型(在判斷框402中為“擦除”),或讀取命令類型(在判斷框402中為“讀取”)。如果命令類型是編程命令類型(在判斷框402中為“編程”),那么,命令電路320 確定專用非讀取內(nèi)部寄存器311是否可用(判斷框411)。如果專用非讀取內(nèi)部寄存器311 還不可用(在判斷框411中為“否”),那么,命令電路等待(動作412),直到它可用(在判斷框411中為“是”)。如果專用非讀取內(nèi)部寄存器311可用(在判斷框411中為“是”), 則程序數(shù)據(jù)被從外部數(shù)據(jù)寄存器312A移到專用非讀取內(nèi)部數(shù)據(jù)寄存器311A(動作413),而程序地址被從外部地址寄存器312B移到專用非讀取內(nèi)部地址寄存器(動作414)。然后,編程操作等待對讀取內(nèi)部寄存器313的清除(動作415)。一旦沒有讀取操作要被執(zhí)行,編程操作就啟動(動作416)。如果在讀取內(nèi)部寄存器313中沒有讀取操作,那么,編程操作就可以立即啟動。如果命令類型是擦除命令類型(在判斷框402中為“擦除”),則命令電路320還確定專用非讀取內(nèi)部寄存器311是否可用(判斷框421)。如果專用非讀取寄存器311還不可用(在判斷框421中為“否”),那么,命令電路等待(動作422),直到它可用(在判斷框 421中為“是”)。如果專用非讀取內(nèi)部寄存器311可用(在判斷框421中為“是”),則一旦可用,擦除地址就被從外部地址寄存器312B移到專用非讀取內(nèi)部地址寄存器(動作423)。 然后,編程操作等待對讀取內(nèi)部寄存器313的清除(動作424)。一旦沒有讀取操作要被執(zhí)行,擦除操作就啟動(動作425)。如果在讀取內(nèi)部寄存器313中沒有讀取操作,那么,擦除操作就可以立即啟動。如果命令類型是讀取命令類型(在判斷框402中為“讀取”),則命令電路確定專用讀取內(nèi)部寄存器313是否可用(判斷框431)。如果寄存器313不可用(在判斷框431中為“否”),那么,命令電路等待(動作432),直到它可用(在判斷框431中為“是”)。如果專用讀取內(nèi)部寄存器313可用(在判斷框431中為“是”),則讀取地址被從外部地址寄存器 312B移到專用讀取內(nèi)部地址寄存器313B(動作43;3)。如果有活動的進程中的非讀取命令 (在判斷框434中為“是”),則非讀取內(nèi)部數(shù)據(jù)寄存器311A和非讀取內(nèi)部地址寄存器311B 被禁用(動作435),以使得編程或擦除操作暫停。此禁用以命令電路判斷進程中的非讀取命令的中斷是適當(dāng)?shù)臑闂l件。如果命令電路繼續(xù)執(zhí)行中斷進程中的非讀取命令,則讀取操作開始(動作436)。這可以通過啟用讀取內(nèi)部寄存器313以使得被尋址的儲存器單元的內(nèi)容被讀取到專用讀取內(nèi)部數(shù)據(jù)寄存器313A來完成。在讀取操作完成之后(在動作436之后),恢復(fù)被中斷的命令(動作437)。例如,讀取內(nèi)部寄存器313可以被禁用,而非讀取內(nèi)部寄存器311可以被啟用,以使得編程或擦除命令恢復(fù)執(zhí)行。在一個實施例中,并非自動禁用非讀取命令(動作435),而是命令電路可以等待適當(dāng)?shù)臅r間以中斷非讀取命令。這可以是在捕捉非讀取命令的狀態(tài)更加容易的時間期間。 例如,如果編程或擦除命令是使用驗證階段序列發(fā)生的——其中通過簡短地切換來檢查編程或擦除命令的進度,以測量存儲單元內(nèi)容,則中斷可以等待下一個驗證階段,然后,在驗證階段期間、緊接著驗證階段的前面,和/或緊接著驗證階段的后面執(zhí)行。如果編程或擦除操作按計時器進行操作,則當(dāng)非讀取操作被中斷時,命令電路可以暫停計時器,而當(dāng)非讀取操作恢復(fù)時,重新啟動計時器。這些特點在便于保存被暫停的操作的狀態(tài)和要求最少的新電路或邏輯以幫助被中斷的操作的安全恢復(fù)方面提供特殊的優(yōu)點。第二實施例一備份寄存器在控制電路300的操作的第二實施例中,補充內(nèi)部數(shù)據(jù)寄存器313A是備份數(shù)據(jù)寄存器,而補充內(nèi)部地址寄存器31 是備份地址寄存器。在該情況下,內(nèi)部寄存器311用于各種類型的命令,包括讀取命令、編程命令,以及擦除命令。在該情況下,命令電路320被構(gòu)建為,當(dāng)命令電路320確定讀取命令將中斷進程中的非讀取命令時將進程中的編程或擦除命令的數(shù)據(jù)和地址狀態(tài)從內(nèi)部寄存器311備份到備份寄存器313。然后,中斷讀取命令的數(shù)據(jù)和地址被提供到中的內(nèi)部寄存器311,以由此執(zhí)行讀取命令。在中斷讀取命令完成之后, 被中斷的非讀取命令的數(shù)據(jù)和地址隨后被從備份寄存器313恢復(fù)到內(nèi)部寄存器311,以便對編程或擦除命令進行進一步的處理。編程或擦除命令完成而不會有進一步的中斷是有可能的,但是,或許在編程或擦除命令完成之前編程或擦除命令被中斷多次。圖5示出了當(dāng)使用補充寄存器313作為備份寄存器時控制電路處理命令的方法 500的流程圖。每當(dāng)命令被控制電路300接收到外部寄存器312中時可以啟動方法500(動作501)。此動作可以類似于為圖4的動作401所描述的動作。然后,命令電路320確定命令的類型(判斷框502),該判斷可以以與為圖4的判斷框402執(zhí)行的相同的方式進行。第二實施例中的編程和擦除命令響應(yīng)類似于圖4的第一實施例。即,如果編程命令被接收到外部寄存器312(在判斷框502中為“編程”),那么,命令電路320確定內(nèi)部寄存器311是否可用(判斷框511)。如果內(nèi)部寄存器311還不可用(在判斷框511中為“否”), 那么,命令電路等待(動作512),直到它可用(在判斷框511中為“是”)。如果內(nèi)部寄存器 311可用(在判斷框511中為“是”),則程序數(shù)據(jù)被從外部數(shù)據(jù)寄存器312A移到內(nèi)部數(shù)據(jù)寄存器311A(動作513),而程序地址被從外部地址寄存器312B移到內(nèi)部地址寄存器311B (動作514)。然后,啟動編程操作(動作515)。如果命令類型是擦除命令類型(在判斷框502中為“擦除”),則命令電路320還確定內(nèi)部寄存器311是否可用(判斷框521)。如果內(nèi)部寄存器311還不可用(在判斷框 521中為“否”),那么,命令電路等待(動作522),直到它可用(在判斷框521中為“是”)。 一旦可用,擦除地址被從外部地址寄存器312B提供到內(nèi)部地址寄存器31IB (動作523)。然后,啟動擦除操作(動作524)。如果命令類型是讀取命令類型(在判斷框502中為“讀取”),則命令電路320還確定內(nèi)部寄存器311是否可用(判斷框531)。如果內(nèi)部寄存器311不可用(在判斷框531 中為“否”),那么,命令電路確定內(nèi)部寄存器311中的進程中的命令是否將要被中斷(判斷框532)。當(dāng)確定是否要進行此中斷時,可以有各種信息要考慮。然而,將描述若干個示例情況。如果編程或擦除操作具有驗證階段,那么,或許讀取操作在下一個驗證階段、其之前或之后中斷編程或擦除操作?;蛟S一個附加準(zhǔn)則可以是該驗證階段是否驗證編程或擦除操作的足夠的大多數(shù)已經(jīng)完成(例如,98%的存儲器單元已被驗證為準(zhǔn)確地編程或擦除),以使得不預(yù)期編程或擦除操作的其余部分要花費大量的時間。在該情況下,或許命令電路可以放棄中斷,而只允許編程或擦除操作完成——即使有讀取操作等待完成。替換地,或許編程和擦除操作按計時器進行,而計時器指出在進程中的編程或擦除操作中沒有剩余大量的時間來保證中斷。
12
如果進程中的命令目前將不被中斷(在判斷框532中為“否”),則命令電路等待 (動作533)。如果在等待時內(nèi)部寄存器311變得可用(在判斷框531中為“是”),那么,讀取地址被提供到內(nèi)部寄存器311(動作534)。如果命令電路在當(dāng)進程中的命令仍在被處理時的任何時候判斷進程中的命令將被中斷(在判斷框532中為“是”),那么,命令電路暫停進程中的命令(動作53 。如果按計時器處理進程中的命令,那么,在此階段可以暫停計時器。然后,進程中的命令的數(shù)據(jù)和地址信息被備份到補充數(shù)據(jù)寄存器313A(動作536)以及補充地址寄存器313B(動作537)。在被中斷的擦除操作的情形中,不一定有數(shù)據(jù)要備份, 但是,在被中斷的編程操作的情形中,將會有數(shù)據(jù)要備份。在該階段,讀取地址可以被從外部地址寄存器312A提供到內(nèi)部地址寄存器311A(動作534)。然后,啟動讀取命令(動作 538)。在讀取操作完成之后,或換言之,在由內(nèi)部地址寄存器311B中的讀取地址尋址的存儲器單元的內(nèi)容被讀取到內(nèi)部數(shù)據(jù)寄存器311A之后,讀取數(shù)據(jù)被從內(nèi)部數(shù)據(jù)寄存器 31IA移到外部數(shù)據(jù)寄存器312A (動作539)。此時,可以在通信總線203上讀取與讀取操作相關(guān)聯(lián)的數(shù)據(jù)。同時,通過將數(shù)據(jù)從備份數(shù)據(jù)寄存器313A移至內(nèi)部數(shù)據(jù)寄存器311A(動作 540),并將地址從備份地址寄存器31 移動到內(nèi)部地址寄存器311B (動作Ml),來在隨后恢復(fù)被中斷的進程中的操作(假定沒有要比被中斷的命令占先的進一步的讀取操作)。此時,可以恢復(fù)被中斷的操作(動作M2)。在恢復(fù)進程中的命令之前,并且一旦讀取操作完成,可能有需要在恢復(fù)被中斷的操作之前執(zhí)行的一個或多個其他讀取操作。如果是該情況,則對于每一個讀取操作,將通過將讀取地址從外部地址寄存器312B提供到內(nèi)部地址寄存器(動作534),啟動讀取操作 (動作538),以及一旦完成,就將讀取數(shù)據(jù)從內(nèi)部數(shù)據(jù)寄存器311A提供到外部數(shù)據(jù)寄存器 312A(動作539),來按順序執(zhí)行動作534、538以及539。在完成之前,可以中斷單個進程中的非讀取命令一次或任何數(shù)量的次數(shù),且在非讀取命令被恢復(fù)之前,任何給定中斷都可以導(dǎo)致一個或多個讀取操作發(fā)生。參考圖2,外部命令源204通過通信總線接口 203向NAND閃存模塊200提供命令。 圖6示出了用于操作外部命令源的方法600的流程圖,該方法600向通過控制電路控制的 NAND閃存邏輯單元提供命令。例如,外部命令源可以是圖2的外部命令源204。NAND閃存邏輯單元可以是,例如,圖2的邏輯單元201或邏輯單元202。外部命令源向控制電路提供至少一個編程命令(動作601)和至少一個擦除命令 (動作602)。例如,如果與NAND閃存邏輯單元201進行通信,則控制電路可以是控制電路 211,或者如果與NAND閃存邏輯單元202進行通信,則是控制電路221。在任一種情況下,夕卜部命令源204可以通過通信總線203向相應(yīng)的控制電路傳遞命令。在編程和擦除操作被提供到NAND閃存邏輯單元之后,隨后的讀取操作被提供到控制電路(動作603)。此讀取操作可以中斷NAND閃存邏輯單元中的過程中的前一編程或擦除操作,無論操作是編程操作還是擦除操作。在任一情形中,控制電路可以使用補充寄存器來中斷編程命令或者擦除命令。例如,在上文所描述的第一實施例的情形中,補充寄存器可以充當(dāng)專用讀取內(nèi)部寄存器,或者,在上文所描述的第二實施例的情形中,補充寄存器可以充當(dāng)備份寄存器。在讀取操作中斷被中斷的操作之后,讀取數(shù)據(jù)被提供回外部命令源 204(動作604)。注意,在被中斷的命令的執(zhí)行中,數(shù)據(jù)被無序地讀取。例如,命令源204可以發(fā)出編程命令,然后,讀取命令,兩者都發(fā)往同一個邏輯單元。然而,數(shù)據(jù)可以在編程命令甚至在邏輯單元上完成之前被命令源204讀取。類似地,命令源204可以發(fā)出擦除命令,然后,讀取命令,兩者都發(fā)往同一個邏輯單元。然而,數(shù)據(jù)可以在擦除命令甚至在邏輯單元上完成之前被命令源204讀取?,F(xiàn)在將參考ONFI規(guī)范來描述被中斷的擦除和被中斷的編程操作的具體實現(xiàn)。讓我們從擦除開始。在NAND閃存中,擦除是對可被存儲在浮動?xùn)派系碾娮拥囊瞥摳訓(xùn)攀峭耆唤^緣體包圍的導(dǎo)體的一部分(通常是多晶硅,但是,有時是其他材料),并被定位成調(diào)節(jié)附近半導(dǎo)體通道中的電流,如參考圖1所描述的。這通常是通過安排足夠大的電場以吸引電子來跨絕緣體量子-隧穿到浮動?xùn)胖鈦韺崿F(xiàn)的。隧穿過程相對來說比較慢,因為足夠強以快速地執(zhí)行此作業(yè)的場還將足夠強以激起絕緣中的持久性故障。隧穿速度由指數(shù)方程管制,這使得它對絕緣體厚度的變化十分敏感,這些變化由于芯片上的數(shù)十億存儲單元上的過程變化而不可避免地存在。在實踐中,足夠強以跨任何存儲單元的最厚的絕緣在2到5毫秒的時間內(nèi)排出柵極的電子的場還足夠弱,不會在甚至任何存儲單元的最薄的絕緣中造成損傷?,F(xiàn)在將描述使用此處所描述的原理的擦除操作的示例。此擦除操作只是由此處所描述的更廣泛的原理所允許的許多不同的實現(xiàn)中的一個。情況既然這樣,為此擦除操作所描述的任何具體特征不應(yīng)該被解釋為對此處所描述的更廣泛的實施例施加任何限制。在此具體示例中,擦除是以塊進行的?;叵胍幌?,塊是多個頁的集合,而頁是多個存儲器單元的集合。擦除操作的最終結(jié)果是已知的。具體而言,正在被擦除的塊內(nèi)的所有存儲器單元應(yīng)該在可以接受的容差內(nèi)沒有電荷。在任何驗證階段,不需要數(shù)據(jù)值用于比較。 如此,如果擦除操作使用驗證,則將塊的存儲器單元的內(nèi)容與已知的所希望的結(jié)果進行比較。然而,擦除操作可能沒有驗證階段,因為驗證花費更多時間和復(fù)雜性,并且讓擦除操作被計時更簡單。選擇在統(tǒng)計上足夠長的擦除時間,以在可以接受的概率內(nèi)確保塊中的所有存儲器單元將是空的。在擦除時間期滿之前的很長時間,大多數(shù)存儲單元將是空的,但是, 對已經(jīng)空的存儲單元持續(xù)施加擦除操作沒有危害。因此,最終,甚至擦除最慢的存儲器單元將是空的。在此具體示例中,擦除過程可能要幾個毫秒才能完成。然而,擦除過程使用叫做 “量子隧穿”的過程,其中一旦隧穿開始,每一個電子就都在大約幾個微微秒內(nèi)被從浮動?xùn)乓瞥?。也就是說,對于每一個電子,隧穿在不同的時間開始。如此,在幾乎任何給定時刻,要被移動的每一個電子要么已經(jīng)隧穿,或者還沒有隧穿。因此,在沒有顯著的效率損失的情況下,可以中斷和恢復(fù)擦除過程。只要花費在擦除過程中的總時間符合目標(biāo)擦除時間的總持續(xù)時間,就可確保所需的完整擦除的概率。在擦除過程期間,如果中斷和恢復(fù)擦除過程,則在系統(tǒng)中有一些長于微微秒規(guī)模的成本。例如,可能需要釋放(當(dāng)擦除操作被中斷時)和再充電(當(dāng)擦除操作恢復(fù)時)特殊電壓源。此外,還可以有與保持和再斷言適當(dāng)?shù)牟脸隣顟B(tài)(如在圖4的動作435和437 中,以及圖5的動作535、536、537、540、541,以及542)相關(guān)聯(lián)的時間。此外,這些時間成本是總擦除處理時間的微小部分。時間成本短至足以避免讀取操作的顯著干擾延遲,但是,長至足以確保擦除操作不會因被中斷和恢復(fù)的開銷而顯著延長。當(dāng)控制電路320確定是否要中斷擦除操作,或是否讓擦除操作完成或前進到后面的階段時,可以考慮這些時間成本。
14
當(dāng)中斷擦除操作時,當(dāng)擦除操作被讀取操作中斷時,控制電路的內(nèi)部狀態(tài)應(yīng)該能夠看到擦除和讀取操作兩者的狀態(tài)。雖然本發(fā)明的原理不僅限于在通信總線上使用ONFI 協(xié)議,現(xiàn)在將參考與由ONFI標(biāo)準(zhǔn)所提供的引腳(pin)、信號、命令,以及狀態(tài)寄存器的兼容性來描述如何實現(xiàn)此狀態(tài)報告的示例。在ONFI兼容的芯片中,使用狀態(tài)寄存器SR的比特(6)來記錄狀態(tài)。此比特將被稱為“SR(6)”。ONFI協(xié)議假設(shè)狀態(tài)SR(6)將被輪詢。有反映SR(6)的狀態(tài)的輸出引腳,但是, 如果芯片包含多個邏輯單元,那么,不能依賴輪詢方法,因為如果邏輯單元中的任何一個忙著,則SR(6)指示繁忙??梢宰鳛闋顟B(tài)機來實現(xiàn)(例如)的下列過程說明了如何利用ONFI規(guī)范兼容地進行此操作。也就是說,本領(lǐng)域的技術(shù)人員在閱讀此描述之后,將認(rèn)識到由讀取操作來中斷擦除操作的過程可以由不同的信令約定來管理,特別是在芯片具有與ONFI不同的連接和命令標(biāo)準(zhǔn)的情況下。首先,一旦擦除操作被NAND閃存模塊命令和接受,包含要被擦除的塊的邏輯單元斷言“未準(zhǔn)備好”?,F(xiàn)在可以在邏輯單元的SR(6)比特被觀測為“未準(zhǔn)備好”之后的任何時間命令讀取操作。如果讀取地址是針對要被擦除的塊內(nèi)的位置的,那么,芯片的行為可以是未定義的,但是,大多數(shù)可能將利用錯誤指示拒絕讀取命令。這可以是為什么命令電路320 可以選擇不利用讀取操作來中斷擦除操作的一個原因(參見判斷框532中的“否”)。可以在判斷框434中的“是”和圖4的動作435之間作出類似的判斷。例如,如果讀取內(nèi)部寄存器中的讀取命令是針對非讀取內(nèi)部寄存器中的擦除命令中正在被擦除的塊內(nèi)的地址的,那么,讀取操作可能失敗。如果讀取操作被邏輯單元的控制電路接受,那么,擦除操作的寄存器的塊地址保持不受干擾,并且對讀取操作進行排隊。邏輯單元保持“未準(zhǔn)備好”。在此示例過程中,擦除操作被周期性地以短于或同邏輯單元的典型讀取等待時間相當(dāng)?shù)哪骋粫r間間隔來暫停。狀態(tài)保持“未準(zhǔn)備好”。在這樣的暫停的任何一個期間,讀取操作現(xiàn)在可以使用其自己的讀取地址繼續(xù)進行。然后,存儲單元值被感測放大器確定,結(jié)果值被放入內(nèi)部數(shù)據(jù)寄存器中,然后,被移至外部數(shù)據(jù)寄存器。 此時,當(dāng)讀取選項完成并且數(shù)據(jù)已準(zhǔn)備好讀出到通信總線上時,SR(6)比特變?yōu)椤皽?zhǔn)備好”。 ONFI交錯的讀取(讀取緩存)可以可任選地被用來啟動另一個讀取操作。通過外部數(shù)據(jù)總線來收集讀取數(shù)據(jù)。如果交錯的讀取緩存掛起,那么,當(dāng)當(dāng)前頁已被收集時,SR(6)變?yōu)椤拔礈?zhǔn)備好”,而當(dāng)交錯的(掛起)讀取緩存完成時將變?yōu)椤皽?zhǔn)備好”。 如果交錯的讀取掛起,那么,在下一個讀取操作的下一次完成時,SR(6)斷言“準(zhǔn)備好”。如果沒有交錯的讀取掛起,則已經(jīng)收集了所有讀取數(shù)據(jù)。如果擦除操作沒有完成, 那么,SR(6)變?yōu)椤拔礈?zhǔn)備好”,并恢復(fù)擦除,于是,如上文所提及的,在另一個讀取操作是中斷的情況下,擦除周期性地暫停。如果擦除操作已經(jīng)結(jié)束,則SR(6)保持“準(zhǔn)備好”,并且邏輯單元空閑,等待任何命令。現(xiàn)在將使用ONFI規(guī)范來描述編程的非常具體的示例。在擦除塊之后,逐頁地對數(shù)據(jù)進行編程。在NAND閃存上,編程操作通過隧穿(與擦除操作的原理相同)來實現(xiàn),但是, 電子在相反方向上流動以便在浮動?xùn)派侠鄯e。此過程具有可變的時間,但是通常需要花費數(shù)百微秒才能完成。
為編程,向控制柵施加偏壓達足夠的時間以使得正確數(shù)量的電子被寫入到每一存儲器單元的浮動?xùn)胖小榱耸勾藴?zhǔn)確地完成,NAND閃存邏輯單元可以暫停并驗證頁中的每一存儲單元的狀態(tài)。這是通過感測浮動?xùn)胖械碾娮右詫φ疹A(yù)期模式進行比較的模式來進行的。該過程被稱為“驗證”,且一般由每一邏輯單元內(nèi)的命令電路320來監(jiān)控。這可使電荷被準(zhǔn)確地控制,且當(dāng)最后的存儲單元達到其希望的狀態(tài)時過程結(jié)束,這一般比用于確定擦除過程的持續(xù)時間的最壞情況時間短得多。在一些設(shè)計中可以不使用驗證。而在其他設(shè)計中,特別是多級別存儲單元設(shè)計,它將發(fā)生若干次。目標(biāo)數(shù)據(jù)值不確定施加于存儲單元的偏壓,相反,它改變施加偏壓的時間長度。在每一驗證之后,只對還沒有達到它們的預(yù)期狀態(tài)的存儲單元(在浮動?xùn)派闲枰嚯娮拥拇鎯卧?施加偏壓。如此,編程過程一般而言是對需要更多電子的存儲單元的子集施加偏壓,然后,對在程序數(shù)據(jù)頁寄存器中保存的參考值進行驗證的循環(huán)。此過程允許編程盡可能快地完成(不管統(tǒng)計上的變化),以及空和滿之間的多個狀態(tài)將準(zhǔn)確地實現(xiàn)。如此,存儲器單元可以被編程為包含多個比特的信息。編程過程可以比典型的讀取等待時間慢大致一個數(shù)量級。如果編程操作在進行中并且希望從同一個邏輯單元執(zhí)行讀取操作,則讀取操作的所產(chǎn)生的延遲比當(dāng)編程不在進行中時的延遲大得多。為了縮短進程中的編程操作所導(dǎo)致的等待時間,一個或多個讀取命令可以中斷編程操作。如同擦除操作那樣,電荷轉(zhuǎn)移是在微微秒規(guī)模發(fā)生的量子隧穿,并可以利用對效率的微不足道的變化來暫停。當(dāng)外部控制判斷沒有更多讀取命令正在等待,或者如果外部控制判斷編程操作具有較高優(yōu)先級,則編程操作繼續(xù)。這消除了編程操作減慢讀取操作所導(dǎo)致的大部分等待時間。這些較短的讀取等待時間通常比延遲編程的成本更有價值。事實上,有價值的讀取操作被給予優(yōu)先級以中斷不太緊急的編程操作。在此具體示例中,讀取操作可以在緊接編程操作的驗證階段的前面或緊接其的后面中斷進程中的編程操作。命令電路320可以使用現(xiàn)在將要被描述的過程,利用由ONFI標(biāo)準(zhǔn)所提供的引腳、信號、命令,以及狀態(tài)寄存器來實現(xiàn)此。熟悉本技術(shù)的人員在閱讀此描述之后將理解過程可以由不同的信號約定來管理,特別是在芯片具有與ONFI不同的連接和命令標(biāo)準(zhǔn)的情況下。在此示例中,程序數(shù)據(jù)的寄存器不同于用于保存讀取數(shù)據(jù)的寄存器,如此,使用其中補充寄存器充當(dāng)?shù)诙?nèi)部寄存器的上文的第一公開實施例。如此,用于編程的地址被與用于讀取的地址分開地閂鎖。編程操作可以在邏輯單元的設(shè)計所準(zhǔn)許的任何時間開始。在編程操作期間,SR(6) 狀態(tài)比特指示“未準(zhǔn)備好”。編程操作被周期性地以同設(shè)備的典型的頁讀取等待時間相當(dāng)?shù)哪骋欢虝r間間隔(例如,以10微秒的時間間隔)來暫停。此暫??梢允羌兇獾卦试S讀取操作中斷,或者它可以是變換到驗證的前奏。狀態(tài)SR(6)仍保持“未準(zhǔn)備好”。任何掛起的讀取操作現(xiàn)在可以使用其自己的讀取地址來繼續(xù)進行,且存儲單元值由感測放大器來確定,結(jié)果值被放入頁寄存器中當(dāng)陣列讀取完成并且數(shù)據(jù)是已準(zhǔn)備好從讀取頁寄存器中讀出時,LUN的SR(6)變?yōu)椤皽?zhǔn)備好”。ONFI交錯的讀取(讀取緩存)可以任選地被用來啟動另一個讀取操作。通過外部數(shù)據(jù)總線來收集讀取數(shù)據(jù)。如果交錯的讀取緩存掛起,那么,當(dāng)當(dāng)前頁已被收集時,SR(6) 變?yōu)椤拔礈?zhǔn)備好”,而當(dāng)交錯的(掛起)讀取緩存完成時將變?yōu)椤皽?zhǔn)備好”。如果交錯的讀取操作掛起,則執(zhí)行讀取操作,并等待SR(6)是“準(zhǔn)備好”——指示下一個讀取操作已經(jīng)完成。
當(dāng)讀取了最后的讀取操作的數(shù)據(jù)并且沒有交錯的讀取是掛起的時,芯片恢復(fù)被中斷的編程操作。再次斷言狀態(tài)SR(6)“未準(zhǔn)備好”。如果暫停是純粹地允許讀取操作,那么, 編程操作在數(shù)據(jù)陣列中恢復(fù)。如果暫停是驗證的前奏,則現(xiàn)在開始編程操作的驗證階段。如果并非全部比特都處于它們的所希望的狀態(tài),則驗證可以導(dǎo)致寫入的恢復(fù)。此過程循環(huán),直到驗證操作驗證所有存儲器單元達所需值都適當(dāng)?shù)赝瓿伞T诖穗A段,LUN空閑,并等待任何命令。如果讀取操作被允許插入在驗證階段之前,則此狀態(tài)序列適用,但是,步驟的順序可以被更改,以允許讀取操作插入在驗證之后,或者實際上讀取操作可以有用地介入驗證階段的之前和之后,因為驗證階段本身是在持續(xù)時間方面類似于讀取操作的步驟。每當(dāng)讀取操作插入時,保存編程-驗證周期的狀態(tài)是重要的,允許該狀態(tài)不受中斷讀取操作的干擾。這允許編程-驗證周期在插入的讀取操作完成時恢復(fù)到該狀態(tài)。在某些情況下,編程-驗證循環(huán)可以稍微長于讀取等待時間,但是一個隱含結(jié)論是,使循環(huán)停止更頻繁可能是有價值的。這將降低平均讀取等待時間,因為讀取操作可以具有更頻繁的機會來中斷,其二由于在每一個編程-驗證周期中預(yù)期的電荷變化的更頻繁的驗證和更細(xì)的細(xì)粒度,還將準(zhǔn)許更準(zhǔn)確的編程。如果編程-驗證周期不能被中斷,則這樣的折衷不是如此有吸引力,因為額外的驗證將添加到編程時間。使編程可中斷允許芯片設(shè)計者提供可靠性和準(zhǔn)確的信號的不同的平衡,而同時仍以在沒有可中斷的編程的情況下不可能的方式符合總體系統(tǒng)性能目標(biāo)。自相矛盾地,較慢的但是可中斷的編程操作可以導(dǎo)致更快的,更可靠的系統(tǒng),且每個存儲單元帶有更好的設(shè)備耐久性,以及更多電壓電平。此折衷可能對于允許每個存儲單元帶有兩個、三個或更多比特的多級別電荷芯片被作為高性能芯片來接受而言特別有價值。目前,閃存芯片在存儲新的數(shù)據(jù)時的吞吐量大大地超出許多應(yīng)用所需的平均速率。然而,只要編程操作干擾讀取操作,并且那些相同應(yīng)用程序通常要求低等待時間,就有使擦除和編程操作更快的需求。通過使擦除和操作可中斷, 有更好的系統(tǒng)級別的折衷,這些折衷可以使得設(shè)備設(shè)計者不必考慮交換每個存儲單元的更高密度的比特和在多個周期和多年內(nèi)的改進的設(shè)備耐久性,而不會損失總體系統(tǒng)性能。作為一個額外的優(yōu)點,由于可以使編程和擦除周期可中斷,因此,可以減小編程和擦除電壓。這具有增大編程和擦除操作所需的時間的效果,但也可延長芯片的壽命,因為高電壓差隨著時間的推移往往在設(shè)備組件上產(chǎn)生磨損。然而,編程和擦除操作所需的增大時間的是可以接受的——考慮到它們是可中斷的。如此,可以延長芯片壽命。本發(fā)明可具體化為其它具體形式而不背離其精神或本質(zhì)特征。所描述的實施例在所有方面都應(yīng)被認(rèn)為僅是說明性而非限制性的。從而,本發(fā)明的范圍由所附權(quán)利要求書而非前述描述指示。落入權(quán)利要求書的等效方案的含義和范圍內(nèi)的所有改變應(yīng)被權(quán)利要求書的范圍所涵蓋。
權(quán)利要求
1.一種物理NAND閃存邏輯單元001),包括多個存儲器單元012),其是可編程且可擦除的;控制電路(211,300),其被配置成對多個命令作出響應(yīng),所述多個命令至少包括被定向到所述多個存儲器單元的讀取命令、編程命令,以及擦除命令;通信地耦合到所述控制電路的通信總線接口 O03),用于從外部命令源向所述控制電路提供讀取、編程以及擦除命令,其中所述控制電路包括多個寄存器(310),包括內(nèi)部數(shù)據(jù)寄存器(311A)、內(nèi)部地址寄存器(311B)、外部數(shù)據(jù)寄存器(312A)、外部地址寄存器(312B)、補充數(shù)據(jù)寄存器(313A),以及補充地址寄存器 (313B);以及用于通過控制所述多個寄存器來對所述多個命令作出響應(yīng)的命令電路(320)。
2.如權(quán)利要求1所述的物理NAND閃存邏輯單元,其特征在于,所述內(nèi)部數(shù)據(jù)寄存器是第一內(nèi)部數(shù)據(jù)寄存器,而所述內(nèi)部地址寄存器是第一內(nèi)部地址寄存器,其中所述第一內(nèi)部數(shù)據(jù)寄存器和所述第一內(nèi)部地址寄存器專門用于非讀取命令;以及其中所述補充數(shù)據(jù)寄存器是第二內(nèi)部數(shù)據(jù)寄存器,而所述補充地址寄存器是第二內(nèi)部地址寄存器,其中所述第二內(nèi)部數(shù)據(jù)寄存器和所述第二內(nèi)部地址寄存器專門用于讀取命令。
3.如權(quán)利要求2所述的物理NAND閃存邏輯單元,其特征在于,所述非讀取命令包括編程命令和擦除命令。
4.如權(quán)利要求3所述的物理NAND閃存邏輯單元,其特征在于,當(dāng)在所述多個存儲器單元上執(zhí)行命令時,所述第二內(nèi)部數(shù)據(jù)寄存器和所述第二內(nèi)部地址寄存器至少在某些情況下相對于所述第一內(nèi)部數(shù)據(jù)寄存器和所述第一內(nèi)部地址寄存器具有處理優(yōu)先級。
5.如權(quán)利要求4所述的物理NAND閃存邏輯單元,其特征在于,所述命令電路被配置成檢測與所述外部地址寄存器中的所述地址相關(guān)聯(lián)的命令的類型,并且如果所述命令類型是編程命令類型,則被配置成一旦可用,就將數(shù)據(jù)從所述外部數(shù)據(jù)寄存器移至所述第一內(nèi)部數(shù)據(jù)寄存器,以及一旦可用,就將所述外部地址寄存器中的所述地址移至所述第一內(nèi)部地址寄存器,并且如果所述命令類型是擦除命令類型,則被配置成一旦可用,就將所述外部地址寄存器中的所述地址移至所述第一內(nèi)部地址寄存器,并且如果所述命令類型是讀取命令類型,則被配置成將所述外部地址寄存器中的所述地址移至所述第二內(nèi)部地址寄存器。
6.如權(quán)利要求1所述的NAND閃存邏輯單元,其特征在于,所述命令電路確定讀取命令是在對應(yīng)于進程中的編程命令的所述編程操作的驗證階段期間,以所述讀取命令中斷所述進程中的編程命令的方式,所述中斷進程中的編程命令。
7.如權(quán)利要求1所述的NAND閃存邏輯單元,其特征在于,如果在對應(yīng)于所述進程中的編程命令的所述編程操作中剩余多于定義的時間量,則所述命令電路確定讀取命令是中斷進程中的編程命令。
8.如權(quán)利要求1所述的物理NAND閃存邏輯單元,其特征在于,所述內(nèi)部數(shù)據(jù)寄存器和所述內(nèi)部地址寄存器被用于讀取命令和非讀取命令;以及其中所述補充數(shù)據(jù)寄存器是備份數(shù)據(jù)寄存器,而所述補充地址寄存器是備份地址寄存器,其中所述命令電路被構(gòu)建為a)當(dāng)所述命令電路確定讀取命令是中斷進程中的編程命令時,將所述進程中的編程命令的數(shù)據(jù)和地址狀態(tài)從所述內(nèi)部數(shù)據(jù)寄存器和內(nèi)容地址寄存器備份到所述備份數(shù)據(jù)寄存器和所述備份地址寄存器;b)將所述中斷讀取命令的所述地址提供到所述內(nèi)部地址寄存器,以便在所述多個存儲器單元上執(zhí)行由所述中斷讀取命令指定的所述讀取;以及c)在所述中斷讀取命令完成之后的某一時刻,將所述進程中的編程命令的所述數(shù)據(jù)和地址恢復(fù)到所述內(nèi)部數(shù)據(jù)寄存器和所述內(nèi)部地址寄存器,以便對所述編程命令進行進一步的處理。
9.如權(quán)利要求8所述的物理NAND閃存邏輯單元,其特征在于,所述讀取命令是第一讀取命令,其中所述命令電路被進一步構(gòu)建為d)當(dāng)所述命令電路確定第二讀取命令是中斷進程中的擦除命令時,將所述進程中的擦除命令的狀態(tài)備份到至少所述備份地址寄存器;e)將所述中斷第二讀取命令的所述地址提供到所述內(nèi)部地址寄存器,以便在所述多個存儲器單元上執(zhí)行由所述中斷第二讀取命令指定的所述讀??;以及f)在所述中斷第二讀取命令完成之后的某一時刻,將所述進程中的擦除命令的所述狀態(tài)恢復(fù)到至少所述內(nèi)部地址寄存器,以便對所述擦除命令進行進一步的處理。
10.如權(quán)利要求1所述的物理NAND閃存邏輯單元,其特征在于,所述內(nèi)部數(shù)據(jù)寄存器和所述內(nèi)部地址寄存器被用于讀取命令和非讀取命令;以及其中所述補充數(shù)據(jù)寄存器是備份數(shù)據(jù)寄存器,而所述補充地址寄存器是備份地址寄存器,其中所述命令電路被構(gòu)建為a)當(dāng)所述命令電路確定讀取命令是中斷進程中的擦除命令時,將所述進程中的擦除命令的狀態(tài)備份到至少所述備份地址寄存器;以及b)將所述中斷讀取命令的所述地址提供到所述內(nèi)部地址寄存器,以便在所述多個存儲器單元上執(zhí)行由所述中斷讀取命令指定的所述讀取;以及c)在所述中斷讀取命令完成之后的某一時刻,將所述進程中的擦除命令的所述狀態(tài)恢復(fù)到至少所述內(nèi)部地址寄存器,以便對所述擦除命令進行進一步的處理。
11.如權(quán)利要求1所述的物理NAND閃存邏輯單元,其特征在于,所述多個存儲器單元中的每一個是多比特存儲器單元。
12.如權(quán)利要求1所述的物理NAND閃存邏輯單元,其特征在于,所述多個命令排他地包括與ONFI協(xié)議兼容的命令。
13.一種用于操作物理NAND閃存邏輯單元O01)的控制電路(211,300)的方法000, 500),所述方法包括通過將與編程命令相關(guān)聯(lián)的數(shù)據(jù)置于外部數(shù)據(jù)寄存器(312A)中并將與所述編程命令相關(guān)聯(lián)的地址置于外部地址寄存器(312B)中來接收001,501)所述編程命令的動作;確定Gll,511)內(nèi)部數(shù)據(jù)寄存器(311A)和內(nèi)部地址寄存器(311B)準(zhǔn)備好接收所述編程命令的準(zhǔn)備就緒狀態(tài)的動作;響應(yīng)于所述確定準(zhǔn)備就緒狀態(tài)的動作,通過將所述與編程命令相關(guān)聯(lián)的數(shù)據(jù)提供 (413,513)到內(nèi)部數(shù)據(jù)寄存器,以及將所述與編程命令相關(guān)聯(lián)的地址提供014,514)到內(nèi)部地址寄存器,來將所述編程命令提供到所述內(nèi)部數(shù)據(jù)寄存器和所述內(nèi)部地址寄存器的動作;在將所述編程命令提供到所述內(nèi)部數(shù)據(jù)寄存器和所述內(nèi)部地址寄存器的所述動作之后,啟動對由所述與編程命令相關(guān)聯(lián)的地址尋址的多個存儲器單元012)的一部分上的所述編程命令的處理016,515)的動作;在仍在處理所述編程命令的同時,確定(502,53 接收到所述外部地址寄存器的讀取命令是中斷對所述編程命令的處理的動作;使用(536,537)補充數(shù)據(jù)寄存器和補充地址寄存器來中斷對所述編程命令的處理的動作;在所述多個存儲器單元上處理(538)所述讀取命令的動作;以及在處理所述讀取命令之后,恢復(fù)(437, 對所述編程命令的處理的動作。
14.如權(quán)利要求13所述的方法,其特征在于,使用所述補充數(shù)據(jù)寄存器和所述補充地址寄存器來中斷對所述編程命令的處理的動作包括將與所述編程命令相關(guān)聯(lián)的所述數(shù)據(jù)從所述內(nèi)部數(shù)據(jù)寄存器備份到所述補充數(shù)據(jù)寄存器的動作;將與所述編程命令相關(guān)聯(lián)的所述地址從所述內(nèi)部地址寄存器備份到所述補充地址寄存器的動作;以及在所述備份動作之后,將與所述讀取命令相關(guān)聯(lián)的所述地址從所述外部地址寄存器提供到所述內(nèi)部地址寄存器的動作;其中處理所述讀取命令的動作包括將由與所述讀取命令相關(guān)聯(lián)的所述地址尋址的所述多個存儲器單元的一部分的內(nèi)容讀取到所述內(nèi)部數(shù)據(jù)寄存器中的動作;以及將所述讀取數(shù)據(jù)從所述內(nèi)部數(shù)據(jù)寄存器提供到所述外部數(shù)據(jù)寄存器的動作;以及其中恢復(fù)對所述編程命令的處理的動作包括將與所述編程命令相關(guān)聯(lián)的所述數(shù)據(jù)從所述補充數(shù)據(jù)寄存器提供到所述內(nèi)部數(shù)據(jù)寄存器的動作;以及將與所述編程命令相關(guān)聯(lián)的所述地址從所述補充地址寄存器提供到所述內(nèi)部地址寄存器的動作。
15.如權(quán)利要求13所述的方法,其特征在于,使用所述補充數(shù)據(jù)寄存器和所述補充地址寄存器來中斷對所述編程命令的處理的動作包括將與所述讀取命令相關(guān)聯(lián)的地址從所述外部地址寄存器提供到所述補充地址寄存器的動作;以及禁用所述內(nèi)部數(shù)據(jù)寄存器和所述內(nèi)部地址寄存器以使得所述編程操作暫停的動作; 其中,處理所述讀取命令的動作包括啟用所述補充數(shù)據(jù)寄存器和所述補充地址寄存器以使得由與所述讀取命令相關(guān)聯(lián)的所述地址尋址的所述多個存儲器單元的一部分的所述內(nèi)容被讀取到所述補充數(shù)據(jù)寄存器的動作;以及將所述讀取數(shù)據(jù)從所述補充數(shù)據(jù)寄存器提供到所述外部數(shù)據(jù)寄存器的動作;以及其中恢復(fù)對所述編程命令的處理的動作包括禁用所述補充數(shù)據(jù)寄存器和所述補充地址寄存器的動作;啟用所述內(nèi)部數(shù)據(jù)寄存器和所述內(nèi)部地址寄存器以使得所述編程命令恢復(fù)執(zhí)行的動作。
全文摘要
一種NAND閃存邏輯單元。NAND閃存邏輯單元包括對命令作出響應(yīng)并準(zhǔn)許編程和/或擦除命令可被讀取命令中斷的控制電路。該控制電路包括一組用于執(zhí)行當(dāng)前命令的內(nèi)部寄存器,以及一組用于接收命令的外部寄存器??刂齐娐愤€包括可使NAND閃存邏輯單元具有冗余以正確地保持被中斷的編程或擦除命令的狀態(tài)的一組補充寄存器。當(dāng)被中斷的編程或擦除命令是恢復(fù)時,NAND閃存邏輯單元由此可以快速地恢復(fù)被暫停的編程或擦除操作。這在NAND閃存邏輯單元的上下文中提供對讀取響應(yīng)時間的顯著改進。
文檔編號G11C16/10GK102483951SQ201080038104
公開日2012年5月30日 申請日期2010年8月6日 優(yōu)先權(quán)日2009年8月28日
發(fā)明者J·G·貝內(nèi)特 申請人:微軟公司