本申請(qǐng)要求2014年10月6日提交的美國(guó)申請(qǐng)?zhí)?4/507,321的優(yōu)先權(quán),所述申請(qǐng)的全部?jī)?nèi)容通過(guò)引用結(jié)合在此。
技術(shù)領(lǐng)域
本申請(qǐng)總體上涉及對(duì)系統(tǒng)中的數(shù)據(jù)進(jìn)行管理。更確切地,本申請(qǐng)涉及刷新存儲(chǔ)器設(shè)備中的數(shù)據(jù)。
背景技術(shù):
存儲(chǔ)器設(shè)備可以將數(shù)據(jù)編程到其中的單元中。然而,在編程之后立即或者在一段時(shí)間之后讀取被編程到單元中的數(shù)據(jù)時(shí)可能存在問(wèn)題。例如,在閃存的背景下,被編程到多層單元(其中,多個(gè)位被編程到單個(gè)單元中)中的數(shù)據(jù)可能由于數(shù)據(jù)保持問(wèn)題而劣化。
技術(shù)實(shí)現(xiàn)要素:
公開(kāi)了用于刷新存儲(chǔ)器設(shè)備中的數(shù)據(jù)的系統(tǒng)和方法。在一方面,公開(kāi)了一種存儲(chǔ)器設(shè)備。所述存儲(chǔ)器設(shè)備包括非易失性存儲(chǔ)器以及與所述非易失性存儲(chǔ)器通信的處理器電路。所述處理器電路包括:擦除模塊,所述擦除模塊被配置成用于擦除所述非易失性存儲(chǔ)器中的區(qū)段;編程模塊,所述編程模塊被配置成用于僅在所述存儲(chǔ)器區(qū)段已經(jīng)被所述擦除模塊擦除之后才將數(shù)據(jù)編程到所述存儲(chǔ)器區(qū)段中;以及刷新模塊,所述刷新模塊被配置成用于在所述存儲(chǔ)器區(qū)段還沒(méi)有被所述擦除模塊擦除的情況下刷新所述存儲(chǔ)器區(qū)段中的所述數(shù)據(jù)的一部分或全部。
在另一方面,公開(kāi)了一種存儲(chǔ)器設(shè)備,所述存儲(chǔ)器設(shè)備包括存儲(chǔ)器控制器電路以及一個(gè)或多個(gè)存儲(chǔ)器芯片。所述存儲(chǔ)器控制器電路包括:錯(cuò)誤校正模塊,所述錯(cuò)誤校正模塊被配置成用于確定從一個(gè)或多個(gè)存儲(chǔ)器芯片中讀取的數(shù)據(jù)中的錯(cuò)誤;以及刷新觸發(fā)模塊,所述刷新觸發(fā)模塊被配置成用于基于所述錯(cuò)誤而判定是否命令刷新所述數(shù)據(jù)的部分或全部。所述一個(gè)或多個(gè)存儲(chǔ)器芯片與所述存儲(chǔ)器控制器電路通信,其中所述一個(gè)或多個(gè)存儲(chǔ)器芯片各自包括:存儲(chǔ)器陣列;刷新模塊,所述刷新模塊被配置成用于響應(yīng)于刷新命令而刷新所述存儲(chǔ)器陣列中的所述數(shù)據(jù)的部分或全部;以及編程驗(yàn)證模塊,所述編程驗(yàn)證模塊被配置成用于驗(yàn)證對(duì)在所述存儲(chǔ)器陣列中的所述數(shù)據(jù)的所述部分或全部的所述刷新。
在又另一方面,公開(kāi)了一種方法。在存儲(chǔ)器設(shè)備中進(jìn)行的所述方法包括:使用第一編程方案將數(shù)據(jù)編程到所述存儲(chǔ)器設(shè)備中的存儲(chǔ)器區(qū)段中;確定所述存儲(chǔ)器的所述區(qū)段中的所述數(shù)據(jù)中的一個(gè)或多個(gè)錯(cuò)誤;基于所述一個(gè)或多個(gè)錯(cuò)誤而判定是否刷新所述數(shù)據(jù)的部分或全部;以及響應(yīng)于確定刷新所述數(shù)據(jù)的所述部分或全部而使用第二編程方案將所述數(shù)據(jù)的所述部分或全部編程到所述存儲(chǔ)器的所述區(qū)段中,所述第二編程方案不同于所述第一編程方案并且具有比所述第一編程方案少的步驟。
在查閱以下附圖、具體實(shí)施方式和權(quán)利要求書(shū)之后,其他的特征和優(yōu)點(diǎn)將變得清楚。此外,公開(kāi)了其他實(shí)施例,并且實(shí)施例中的每一個(gè)可以單獨(dú)地或組合在一起使用。現(xiàn)在將參照附圖對(duì)所述實(shí)施例進(jìn)行描述。
附圖說(shuō)明
參照以下附圖和說(shuō)明可以更好地理解所述系統(tǒng)。在附圖中,相似的參考號(hào)遍及所有不同的視圖指代對(duì)應(yīng)的部分。
圖1A展示了與存儲(chǔ)器設(shè)備相連接的主機(jī)系統(tǒng)。
圖1B展示了圖1A的存儲(chǔ)器設(shè)備控制器和存儲(chǔ)器芯片的另一個(gè)框圖。
圖1C展示了在所述存儲(chǔ)器設(shè)備控制器和存儲(chǔ)器芯片內(nèi)的刷新的數(shù)據(jù)流。
圖2A展示了存儲(chǔ)器設(shè)備控制器芯片,這是在圖1A中描繪的存儲(chǔ)器設(shè)備控制器的第一示例。
圖2B展示了存儲(chǔ)器設(shè)備控制器芯片,這是在圖1A中描繪的存儲(chǔ)器設(shè)備控制器的第二示例。
圖3A展示了在圖1A中描繪的存儲(chǔ)器芯片控制器的示例。
圖3B展示了例如在圖1A中描繪的存儲(chǔ)器中使用的存儲(chǔ)器芯片的框圖的示例。
圖4是在圖3B的存儲(chǔ)器存儲(chǔ)體中可以使用的存儲(chǔ)器單元陣列的代表性電路圖。
圖5展示了圖3B的存儲(chǔ)器存儲(chǔ)體的示例物理存儲(chǔ)器組織。
圖6示出了圖5的物理存儲(chǔ)器的一部分的展開(kāi)視圖。
圖7A展示了示例非易失性存儲(chǔ)器編程圖,展示了每單元三位的存儲(chǔ)器中的三階段NAND閃存編程操作中每一階段的目標(biāo)電壓水平。
圖7B是圖7A中展示的編程序列的對(duì)字線進(jìn)行編程的序列的圖表。
圖8A展示了將數(shù)據(jù)編程到存儲(chǔ)器區(qū)段中、判定是否刷新所述數(shù)據(jù)、并刷新所述數(shù)據(jù)的部分或全部的第一示例的流程圖。
圖8B展示了將數(shù)據(jù)編程到存儲(chǔ)器區(qū)段中、判定是否刷新所述數(shù)據(jù)、并刷新所述數(shù)據(jù)的部分或全部的第二示例的流程圖。
圖9展示了觸發(fā)對(duì)數(shù)據(jù)的讀取、使用錯(cuò)誤校正編碼(ECC)確定位錯(cuò)誤率(BER)、并使用所述BER來(lái)判定是否刷新所述數(shù)據(jù)的一個(gè)示例的流程圖。
圖10A展示了從控制存儲(chǔ)器芯片的存儲(chǔ)器設(shè)備控制器的角度看對(duì)數(shù)據(jù)進(jìn)行刷新的第一示例的流程圖。
圖10B展示了從存儲(chǔ)器芯片的角度看對(duì)數(shù)據(jù)進(jìn)行刷新的所述第一示例的流程圖。
圖11A展示了從控制存儲(chǔ)器芯片的存儲(chǔ)器設(shè)備控制器的角度看對(duì)數(shù)據(jù)進(jìn)行刷新的第二示例的流程圖。
圖11B展示了從存儲(chǔ)器芯片的角度看對(duì)數(shù)據(jù)進(jìn)行刷新的所述第二示例的流程圖。
圖12展示了從控制存儲(chǔ)器芯片的存儲(chǔ)器設(shè)備控制器的角度看對(duì)數(shù)據(jù)進(jìn)行刷新的第三示例的流程圖。
圖13A展示了在編程操作之后判定是否進(jìn)行刷新操作并進(jìn)行刷新操作的流程圖。
圖13B展示了判定是否對(duì)遭受數(shù)據(jù)保持問(wèn)題的塊進(jìn)行刷新操作并進(jìn)行刷新操作的流程圖。
圖13C展示了判定是否對(duì)遭受循環(huán)應(yīng)力問(wèn)題的塊進(jìn)行刷新操作并進(jìn)行刷新操作的流程圖。
圖14A展示了處于多個(gè)不同階段的每單元3位的不同狀態(tài)的第一圖表,包括由于電荷損失造成的改變。
圖14B展示了處于多個(gè)不同階段的每單元3位的不同狀態(tài)的第一圖表,包括由于刷新造成的改變。
圖14C展示了處于多個(gè)不同階段的每單元1位的不同狀態(tài)的第一圖表,包括由于電荷損失造成的改變。
圖14D展示了處于多個(gè)不同階段的每單元1位的不同狀態(tài)的第一圖表,包括由于刷新造成的改變。
具體實(shí)施方式
如在背景技術(shù)部分中討論的,所述存儲(chǔ)器設(shè)備可以將數(shù)據(jù)編程到存儲(chǔ)器單元中。所述存儲(chǔ)器單元可以被編程以在相應(yīng)單元中存儲(chǔ)一個(gè)位或多個(gè)位。例如,所述存儲(chǔ)器單元可以被操作以存儲(chǔ)兩個(gè)電荷層,使得在每個(gè)單元中存儲(chǔ)單個(gè)位的數(shù)據(jù)。這典型地被稱為二進(jìn)制或單層單元(SLC)存儲(chǔ)器。作為另一個(gè)示例,所述存儲(chǔ)器單元可以被操作來(lái)在每個(gè)電荷儲(chǔ)存元件或區(qū)域中存儲(chǔ)多于兩個(gè)可檢測(cè)電荷層,由此在每個(gè)中存儲(chǔ)多于一個(gè)位的數(shù)據(jù)。后一種構(gòu)型被稱為多層單元(MLC)存儲(chǔ)器。在存儲(chǔ)器中可以使用一種或兩種類型的存儲(chǔ)器單元,例如可以使用二進(jìn)制閃存來(lái)緩存數(shù)據(jù)并且可以使用MLC存儲(chǔ)器來(lái)進(jìn)行長(zhǎng)期存儲(chǔ)。
例如,在被配置成用于3個(gè)位的信息的MLC存儲(chǔ)器單元中,表示這3個(gè)位必然存在23=8種可能狀態(tài)。這8種狀態(tài)(在此稱為Er、A、B、C、D、E、F和G,其中Er是指擦除狀態(tài))是所述單元可以被編程到的8個(gè)分立的電壓水平(Vt)。在新近編程后的這8種編程后狀態(tài)的示例在圖14A的圖表中用虛線展示。同樣,SLC的在新近編程后的編程狀態(tài)的示例在圖14C的圖表中用虛線展示。每個(gè)單元中存在的位數(shù)的示例僅用于展示的目的。
然而,立即或在一段時(shí)間后從所述存儲(chǔ)器單元中讀取數(shù)據(jù)可能產(chǎn)生錯(cuò)誤。讀取中的錯(cuò)誤可能是由于Vt移位(Vt下移)。更具體地,Vt移位的發(fā)生可能:是在對(duì)單元進(jìn)行編程之后不久的新近條件下;是由于數(shù)據(jù)保持問(wèn)題;和/或是由于所述存儲(chǔ)器設(shè)備的大量循環(huán)。例如,對(duì)單元進(jìn)行編程之后,Vt可能下移而造成故障位計(jì)數(shù)(FBC)增大,由此使得系統(tǒng)性能下降并潛在地造成在所述存儲(chǔ)器設(shè)備中錯(cuò)誤地檢測(cè)高的位錯(cuò)誤率(BER)。
Vt下移現(xiàn)象可能致使所述狀態(tài)的Vt分布在尾側(cè)上略微加寬,甚至在沒(méi)有數(shù)據(jù)保持問(wèn)題的情況下也是如此,如下文討論的。這種類型的Vt下移典型地并不是足夠嚴(yán)重而立即造成不可校正的錯(cuò)誤校正碼(UECC)的問(wèn)題、而是可能致使故障位計(jì)數(shù)(FBC)增大。由于新近條件的Vt下移造成的增大的FBC可能具有兩種負(fù)面影響:(1)在初期隨著FBC的增大,存儲(chǔ)器設(shè)備讀取性能可能由于更長(zhǎng)的錯(cuò)誤校正編碼(ECC)解碼時(shí)間而受到影響;并且(2)可能存在更大的機(jī)會(huì)造成對(duì)系統(tǒng)BER的過(guò)度檢測(cè),由此觸發(fā)其他系統(tǒng)級(jí)別的錯(cuò)誤處理機(jī)制(例如讀取擦洗/刷新、CVD、EPWR/RBAX恢復(fù)等等)并且妨礙了總體系統(tǒng)性能且不必要地引入了額外的P/E循環(huán)。
作為另一個(gè)示例,Vt可能由于數(shù)據(jù)保持問(wèn)題而移位。更具體地,數(shù)據(jù)保持問(wèn)題可能致使存儲(chǔ)器設(shè)備的Vt分布加寬并且在向下右側(cè)尾部上向下移位更多。
作為又一個(gè)示例,Vt可能由于存儲(chǔ)器設(shè)備的操作而移位。更具體地,隨著存儲(chǔ)器設(shè)備被大量循環(huán),編程串?dāng)_和過(guò)度編程情況可能變得越來(lái)越嚴(yán)重,由此致使存儲(chǔ)器設(shè)備的Vt分布在右側(cè)尾部和左側(cè)尾部上均加寬、并且最終造成UECC,因?yàn)樗龃鎯?chǔ)器設(shè)備已經(jīng)嘗試達(dá)到最大耐久能力。因此,所述單元可能失去電荷,例如圖14A和14C的圖表中的實(shí)線所展示的(這與編程時(shí)的電荷產(chǎn)生偏差)。
典型地,隨著Vt移位加重,所述存儲(chǔ)器設(shè)備需要對(duì)位于第一塊中的數(shù)據(jù)重新編程。具體地,將選擇之前已經(jīng)被擦除的第二塊。所述存儲(chǔ)器設(shè)備接著將用原先存儲(chǔ)在所述第一塊中的數(shù)據(jù)來(lái)對(duì)第二塊編程。之后,將擦除所述第一塊以使得能夠?qū)⑵渌麛?shù)據(jù)編程到其中。
在一個(gè)實(shí)施例中,不將某個(gè)存儲(chǔ)器區(qū)段(例如塊或子塊)中的數(shù)據(jù)編程到另一個(gè)塊中。而是,刷新所述存儲(chǔ)器區(qū)段中的數(shù)據(jù)。在圖14B中展示了這樣的一個(gè)示例,其中虛線展示了在刷新之后的這8種狀態(tài)。在圖14D中展示了這樣的另一個(gè)示例,其中虛線展示了在刷新之后SLC中的這兩種狀態(tài)。如圖所示,所述刷新之后的狀態(tài)減小了Vt移位而不需要重新編程。這與將來(lái)自這個(gè)塊的數(shù)據(jù)重新載入另一個(gè)塊中并擦除這個(gè)塊的傳統(tǒng)方法形成對(duì)比,所述傳統(tǒng)方法導(dǎo)致了寫(xiě)入放大并降低了所述存儲(chǔ)器塊的編程/擦除循環(huán)能力。相比之下,可以利用參數(shù)的改變對(duì)這個(gè)塊的部分或全部進(jìn)行刷新(例如,僅上部頁(yè)編程,對(duì)單個(gè)字線、或?qū)π∮谡麄€(gè)塊的一組字線),并且不需要重新載入/擦除。例如在沒(méi)有擦除的情況下刷新上部頁(yè)使得擦除應(yīng)力較小并且編程時(shí)間較短。
更具體地,所述存儲(chǔ)器設(shè)備判定在所述存儲(chǔ)器區(qū)段中的所述數(shù)據(jù)的部分或全部中是否存在錯(cuò)誤。在一個(gè)實(shí)施例中,所述存儲(chǔ)器設(shè)備可以通過(guò)讀取所述存儲(chǔ)器區(qū)段的部分或全部、并且確定讀取中的錯(cuò)誤來(lái)判定是否存在錯(cuò)誤。如下文更詳細(xì)討論的,對(duì)存儲(chǔ)器區(qū)段的讀取可以用若干方式中的一種來(lái)觸發(fā),例如通過(guò)外部請(qǐng)求(例如,主機(jī)系統(tǒng)命令所述存儲(chǔ)器設(shè)備進(jìn)行讀取,和/或主機(jī)系統(tǒng)命令所述存儲(chǔ)器設(shè)備進(jìn)行寫(xiě)入),或例如通過(guò)內(nèi)部請(qǐng)求(例如,所述存儲(chǔ)器設(shè)備控制器可以確定將進(jìn)行內(nèi)部讀取)。例如,觸發(fā)對(duì)所述存儲(chǔ)器區(qū)段的讀取可以是響應(yīng)于:將數(shù)據(jù)從SLC折疊到MLC中;標(biāo)識(shí)受應(yīng)力的存儲(chǔ)器區(qū)段(例如,受應(yīng)力的塊);標(biāo)識(shí)老化的存儲(chǔ)器區(qū)段(例如,具有高的編程/擦除計(jì)數(shù)的塊)。進(jìn)一步,讀取中的錯(cuò)誤可以用若干方式中的一種來(lái)確定。一種方式是使用錯(cuò)誤校正編碼(ECC)引擎來(lái)生成位錯(cuò)誤率(BER),如下文更詳細(xì)討論的。
可以對(duì)讀取中的錯(cuò)誤進(jìn)行分析以便判定是否刷新所述存儲(chǔ)器區(qū)段的部分或全部。在一個(gè)實(shí)施例中,可以將所述錯(cuò)誤與閾值進(jìn)行比較。響應(yīng)于確定了所述錯(cuò)誤超過(guò)所述閾值,可以進(jìn)行刷新。與所述錯(cuò)誤進(jìn)行比較的這個(gè)閾值在一個(gè)實(shí)施例中可以是靜態(tài)的并且在替代性實(shí)施例中可以是動(dòng)態(tài)的。例如,所述閾值可以基于操作條件(例如,所述存儲(chǔ)器設(shè)備的溫度)和/或基于所述存儲(chǔ)器的壽命或使用(例如,對(duì)于新編程的MLC塊而已不同的閾值、并且基于編程/擦除循環(huán)、或?qū)K的讀取訪問(wèn),如下文更詳細(xì)討論的)來(lái)動(dòng)態(tài)地選擇。
響應(yīng)于確定刷新所述塊,可以用若干方式中的一種來(lái)進(jìn)行刷新。在一個(gè)實(shí)施例中,所述存儲(chǔ)器設(shè)備控制器可以命令所述存儲(chǔ)器芯片進(jìn)行所述刷新,其中所述存儲(chǔ)器設(shè)備控制器驗(yàn)證所述刷新是否已恰當(dāng)?shù)剡M(jìn)行。例如,所述存儲(chǔ)器設(shè)備控制器可以命令所述存儲(chǔ)器芯片在存儲(chǔ)器區(qū)段(例如塊或字線)中進(jìn)行刷新。之后,所述存儲(chǔ)器設(shè)備控制器可以讀取所述存儲(chǔ)器區(qū)段、確定讀取中的錯(cuò)誤、并且接著基于所述讀取中的錯(cuò)誤來(lái)判定所述刷新是否已恰當(dāng)?shù)剡M(jìn)行。在一個(gè)實(shí)施例中,響應(yīng)于確定了所述刷新還沒(méi)有成功地進(jìn)行,所述存儲(chǔ)器設(shè)備控制器可以發(fā)送另一個(gè)命令給所述存儲(chǔ)器芯片來(lái)在存儲(chǔ)器區(qū)段中進(jìn)行刷新,其中可選地在所述刷新中對(duì)所述存儲(chǔ)器芯片使用不同的編程電壓。之后,所述存儲(chǔ)器設(shè)備控制器可以讀取所述存儲(chǔ)器區(qū)段、確定讀取中的錯(cuò)誤、并且再次判定所述刷新是否已恰當(dāng)?shù)剡M(jìn)行。在此方面,所述存儲(chǔ)器設(shè)備控制器可以迭代進(jìn)行多個(gè)刷新循環(huán)。在替代性實(shí)施例中,響應(yīng)于確定了所述刷新還沒(méi)有成功地進(jìn)行,所述存儲(chǔ)器設(shè)備控制器可以命令對(duì)所述數(shù)據(jù)進(jìn)行重新編程(例如,所述存儲(chǔ)器設(shè)備將所述數(shù)據(jù)編程到另一個(gè)存儲(chǔ)器區(qū)段、并且擦除所述存儲(chǔ)器區(qū)段)。
在替代性實(shí)施例中,所述存儲(chǔ)器設(shè)備控制器可以命令所述存儲(chǔ)器芯片進(jìn)行所述刷新,其中所述存儲(chǔ)器芯片驗(yàn)證所述刷新是否已成功地進(jìn)行。如下文更詳細(xì)討論的,所述存儲(chǔ)器芯片可以包括編程驗(yàn)證電路,通過(guò)所述編程驗(yàn)證電路,所述存儲(chǔ)器芯片可以驗(yàn)證經(jīng)編程的電壓事實(shí)上是否已被編程到所述單元中。所述存儲(chǔ)器芯片可以返回所述編程驗(yàn)證電路的結(jié)果,所述結(jié)構(gòu)指示了所述刷新是否已成功地進(jìn)行。在一個(gè)實(shí)施例中,響應(yīng)于所述存儲(chǔ)器芯片指示所述刷新還沒(méi)有成功地進(jìn)行,所述存儲(chǔ)器設(shè)備控制器可以命令對(duì)所述數(shù)據(jù)進(jìn)行重新編程。在替代性實(shí)施例中,響應(yīng)于所述存儲(chǔ)器芯片指示所述刷新還沒(méi)有成功地進(jìn)行,所述存儲(chǔ)器設(shè)備控制器可以命令所述存儲(chǔ)器芯片再次刷新所述數(shù)據(jù)。
在一個(gè)實(shí)施例中,所述存儲(chǔ)器設(shè)備控制器可以命令所述存儲(chǔ)器芯片進(jìn)行所述刷新,其中所述存儲(chǔ)器設(shè)備控制器和/或所述存儲(chǔ)器芯片驗(yàn)證所述刷新是否已恰當(dāng)?shù)剡M(jìn)行。例如,所述存儲(chǔ)器設(shè)備控制器可以命令所述芯片刷新所述數(shù)據(jù)。所述存儲(chǔ)器芯片可以刷新所述數(shù)據(jù)、并且使用所述編程驗(yàn)證電路來(lái)驗(yàn)證所述刷新是否已成功地進(jìn)行。響應(yīng)于所述存儲(chǔ)器芯片指示所述刷新還沒(méi)有成功地進(jìn)行,所述存儲(chǔ)器設(shè)備控制器可以驗(yàn)證所述刷新是否已成功地進(jìn)行。在第一個(gè)更具體的實(shí)施例中,在所述存儲(chǔ)器設(shè)備控制器接收到所述刷新還沒(méi)有成功地進(jìn)行的指示之后,所述存儲(chǔ)器設(shè)備控制器可以讀取所述存儲(chǔ)器區(qū)段而不進(jìn)行另一個(gè)刷新操作、并且使用所述ECC引擎來(lái)驗(yàn)證所述刷新是否已成功地進(jìn)行。響應(yīng)于所述ECC引擎確定了所述刷新還沒(méi)有成功地進(jìn)行,所述存儲(chǔ)器設(shè)備控制器可以命令對(duì)所述數(shù)據(jù)進(jìn)行重新編程。在第二個(gè)更具體的實(shí)施例中,所述存儲(chǔ)器設(shè)備控制器可以命令用潛在地不同的刷新電壓進(jìn)行另一次刷新、并且之后使用所述ECC引擎來(lái)判定所述刷新是否已成功地進(jìn)行。
參見(jiàn)所述圖,圖1A展示了主機(jī)系統(tǒng)100和存儲(chǔ)器設(shè)備102。所述主機(jī)系統(tǒng)100可以包括任何類型的主機(jī)設(shè)備,例如固定的計(jì)算機(jī)系統(tǒng)(例如,臺(tái)式計(jì)算機(jī))或移動(dòng)的計(jì)算機(jī)系統(tǒng)(例如,膝上型計(jì)算機(jī)、智能電話、平板電腦、或類似物)
圖1A的主機(jī)系統(tǒng)100可以被看成兩個(gè)主要部分,在關(guān)注存儲(chǔ)器設(shè)備102的情況下,所述主機(jī)系統(tǒng)由電路與軟件的組合構(gòu)成。它們是與所述存儲(chǔ)器設(shè)備102相接的應(yīng)用程序部分108和驅(qū)動(dòng)程序部分110。例如在臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、智能電話、平板電腦中,所述應(yīng)用程序部分110可以包括運(yùn)行文字處理、圖形、控制或其他大眾應(yīng)用軟件的處理器(例如,CPU)112、以及用于管理主機(jī)系統(tǒng)100上的數(shù)據(jù)的文件系統(tǒng)114。在相機(jī)、手機(jī)、或其他主要專用于執(zhí)行單個(gè)一組功能的主機(jī)系統(tǒng)中,所述應(yīng)用程序部分108包括操作所述相機(jī)來(lái)拍攝和存儲(chǔ)照片、操作所述手機(jī)來(lái)打電話和接電話等等的軟件。
圖1A的存儲(chǔ)器設(shè)備102可以包括半導(dǎo)體存儲(chǔ)器設(shè)備。半導(dǎo)體存儲(chǔ)器設(shè)備包括易失性存儲(chǔ)器設(shè)備(如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(“DRAM”)或靜態(tài)隨機(jī)存取存儲(chǔ)器(“SRAM”))、非易失性存儲(chǔ)器設(shè)備(如電阻式隨機(jī)存取存儲(chǔ)器(“ReRAM”)、電可擦除可編程只讀存儲(chǔ)器(“EEPROM”)、閃存(其還可以被考慮為EEPROM的子集)、鐵電隨機(jī)存取存儲(chǔ)器(“FRAM”)、和磁阻隨機(jī)存取存儲(chǔ)器(“MRAM”))、以及能夠存儲(chǔ)信息的其他半導(dǎo)體元件。每種類型的存儲(chǔ)器設(shè)備可以具有不同的配置。例如,閃存設(shè)備可以被配置成NAND或NOR構(gòu)型。
所述存儲(chǔ)器設(shè)備可由無(wú)源和/或有源元件以任何組合來(lái)形成。通過(guò)非限制性示例的方式,無(wú)源半導(dǎo)體存儲(chǔ)器元件包括ReRAM設(shè)備元件,在一些實(shí)施例中,所述元件包括如反熔絲相變材料等電阻率切換存儲(chǔ)元件以及(可選地)如二極管等操控元件。進(jìn)一步通過(guò)非限制性示例的方式,有源半導(dǎo)體存儲(chǔ)器元件包括EEPROM和閃存設(shè)備元件,在一些實(shí)施例中,所述元件包括如浮柵、導(dǎo)電納米顆粒、或電荷存儲(chǔ)介電材料等包含了電荷存儲(chǔ)區(qū)域的元件。
多個(gè)存儲(chǔ)器元件可以被配置為使得它們串聯(lián)或使得每個(gè)元件是可單獨(dú)訪問(wèn)的。通過(guò)非限制性示例的方式,NAND配置(NAND存儲(chǔ)器)中的閃存設(shè)備通常包含串聯(lián)的存儲(chǔ)器元件。NAND存儲(chǔ)器陣列可以被配置為使得陣列包括多個(gè)存儲(chǔ)器串,其中,串包括共享單個(gè)位線并作為群組被訪問(wèn)的多個(gè)存儲(chǔ)器元件。替代性地,存儲(chǔ)器元件可以被配置為使得每一個(gè)元件是可單獨(dú)訪問(wèn)的(例如,NOR存儲(chǔ)器陣列)。NAND和NOR存儲(chǔ)器配置是示例性的,并且存儲(chǔ)器元件可以以其他方式配置。
位于基板內(nèi)和/或上方的半導(dǎo)體存儲(chǔ)器元件可以被安排在兩個(gè)或三個(gè)維度(如二維存儲(chǔ)器結(jié)構(gòu)或三維存儲(chǔ)器結(jié)構(gòu))中。
在二維存儲(chǔ)器結(jié)構(gòu)中,半導(dǎo)體存儲(chǔ)器元件被安排在單個(gè)平面或單個(gè)存儲(chǔ)器設(shè)備級(jí)中。通常,在二維存儲(chǔ)器結(jié)構(gòu)中,存儲(chǔ)器元件被安排在基本上平行于支撐存儲(chǔ)器元件的基板的主要表面而延伸的平面中(例如,在x-z方向平面中)?;蹇梢允窃谄渖戏交蛟谄渲行纬纱鎯?chǔ)器元件層的晶片,或者其可以是在形成存儲(chǔ)器元件之后附接至其上的載體基板。作為非限制性示例,基板可以包括如硅等半導(dǎo)體。
可以在單個(gè)存儲(chǔ)器設(shè)備級(jí)中將存儲(chǔ)器元件安排成有序陣列,如在多個(gè)行和/或列中。然而,可以在非規(guī)則或非正交配置中排列存儲(chǔ)器元件。存儲(chǔ)器元件中的每個(gè)存儲(chǔ)器元件可以具有兩個(gè)或更多個(gè)電極或接觸線,如位線和字線。
三維存儲(chǔ)器陣列被安排成使得存儲(chǔ)器元件占據(jù)多個(gè)平面或多個(gè)存儲(chǔ)器設(shè)備級(jí),由此在三個(gè)維度(即,在x方向、y方向和z方向上,其中,y方向基本上垂直于并且x和z方向基本上平行于基板的主表面)中形成結(jié)構(gòu)。三維存儲(chǔ)器的一個(gè)示例是三維閃存。
作為非限制性示例,三維存儲(chǔ)器結(jié)構(gòu)可以被垂直地安排成多個(gè)二維存儲(chǔ)器設(shè)備級(jí)的堆疊。作為另一個(gè)非限制性示例,三維存儲(chǔ)器陣列可以被安排成多個(gè)垂直列(例如,基本上垂直于基板的主表面延伸的列,即,在y方向上),每列在每列中具有多個(gè)存儲(chǔ)器元件??梢栽诙S配置中(例如,在x-z平面中)安排所述列,導(dǎo)致存儲(chǔ)器元件的三維安排,元件位于多個(gè)垂直堆疊的存儲(chǔ)器平面上。存儲(chǔ)器元件在三個(gè)維度中的其他配置也可以構(gòu)成三維存儲(chǔ)器陣列。
通過(guò)非限制性示例的方式,在三維NAND存儲(chǔ)器陣列中,存儲(chǔ)器元件可以被耦合在一起,以便在單個(gè)水平(例如,x-z)存儲(chǔ)器設(shè)備級(jí)內(nèi)形成NAND串。可替代地,存儲(chǔ)器元件可以被耦合在一起,以便形成橫跨多個(gè)水平存儲(chǔ)器設(shè)備級(jí)的垂直NAND串??梢栽O(shè)想其他三維配置,其中,一些NAND串包含單個(gè)存儲(chǔ)器級(jí)中的存儲(chǔ)器元件,而其他串包含跨越多個(gè)存儲(chǔ)器級(jí)的存儲(chǔ)器元件。還可以在NOR配置中和在ReRAM配置中設(shè)計(jì)三維存儲(chǔ)器陣列。
通常,在單片式三維存儲(chǔ)器陣列中,在單個(gè)基板上方形成一個(gè)或多個(gè)存儲(chǔ)器設(shè)備級(jí)??蛇x地,單片式三維存儲(chǔ)器陣列還可以具有至少部分地位于單個(gè)基板內(nèi)的一個(gè)或多個(gè)存儲(chǔ)器層。作為非限制性示例,基板可以包括如硅等半導(dǎo)體。在單片式三維陣列中,構(gòu)成陣列的每個(gè)存儲(chǔ)器設(shè)備級(jí)的層通常在陣列的基礎(chǔ)存儲(chǔ)器設(shè)備級(jí)的層上形成。然而,單片式三維存儲(chǔ)器陣列的鄰近存儲(chǔ)器設(shè)備級(jí)的層可以被共享或在存儲(chǔ)器設(shè)備級(jí)之間存在中間層。
然后,再次,二維陣列可以被單獨(dú)地形成并且然后被封裝在一起,以便形成具有多個(gè)存儲(chǔ)器層的非單片式存儲(chǔ)器設(shè)備。例如,非單片式堆疊存儲(chǔ)器可以通過(guò)在單獨(dú)的基板上形成存儲(chǔ)器級(jí)然后將存儲(chǔ)器級(jí)堆疊在彼此頂上來(lái)構(gòu)造??梢詼p薄基板或者可以在堆疊之前將其從存儲(chǔ)器設(shè)備級(jí)中移除,但是因?yàn)榇鎯?chǔ)器設(shè)備級(jí)最初地在單獨(dú)的基板上方形成,所以所產(chǎn)生的存儲(chǔ)器陣列不是單片式三維存儲(chǔ)器陣列。此外,多個(gè)二維存儲(chǔ)器陣列或三維存儲(chǔ)器陣列(單片式或非單片式)可以在單獨(dú)的芯片上形成然后被封裝在一起,以便形成堆疊芯片存儲(chǔ)器設(shè)備。
存儲(chǔ)器元件的操作以及與存儲(chǔ)器元件的通信通常需要相關(guān)聯(lián)的電路。作為非限制性示例,存儲(chǔ)器設(shè)備可以具有用于控制和驅(qū)動(dòng)存儲(chǔ)器元件完成如編程和讀取等功能的電路。此相關(guān)聯(lián)的電路可以位于與存儲(chǔ)器元件相同的基板上和/或位于單獨(dú)的基板上。例如,用于存儲(chǔ)器讀-寫(xiě)操作的控制器可以位于單獨(dú)的控制器芯片上和/或位于與存儲(chǔ)器元件相同的基板上。
本領(lǐng)域的技術(shù)人員將意識(shí)到,本發(fā)明不限于所描述的二維和三維示例性結(jié)構(gòu),但涵蓋了如此處描述的本發(fā)明的精神和范圍內(nèi)的和如本領(lǐng)域的技術(shù)人員理解的所有相關(guān)存儲(chǔ)器結(jié)構(gòu)。
返回參見(jiàn)圖1A,存儲(chǔ)器設(shè)備102可以包括:非易失性存儲(chǔ)器,例如閃存116(可以處于一個(gè)或多個(gè)存儲(chǔ)器芯片的形式);以及系統(tǒng)控制器118,所述系統(tǒng)控制器118既與存儲(chǔ)器設(shè)備102所連接的主機(jī)系統(tǒng)100相接以便來(lái)回傳送數(shù)據(jù)、又控制所述閃存116。如上文討論的,考慮了其他類型的非易失性存儲(chǔ)器,例如可以由多個(gè)電阻性存儲(chǔ)器單元構(gòu)成的電阻性存儲(chǔ)器、以及鐵電存儲(chǔ)器。
所述存儲(chǔ)器設(shè)備102可以采取若干形式中的一種。在一種形式中,所述存儲(chǔ)器設(shè)備102可以包括嵌入設(shè)備。例如,所述存儲(chǔ)器設(shè)備102可以包括被配置成用作內(nèi)部或嵌入SSD驅(qū)動(dòng)程序的非易失性存儲(chǔ)器,其看起來(lái)可以類似于圖1A的示意圖,主要區(qū)別是存儲(chǔ)器設(shè)備102的位置在主機(jī)系統(tǒng)100內(nèi)部。SSD可以處于分立模塊的形式,所述模塊是旋轉(zhuǎn)磁盤(pán)驅(qū)動(dòng)程序的簡(jiǎn)易替換件??商娲?,存儲(chǔ)器設(shè)備102可以處于通過(guò)如圖1A所展示的機(jī)械與電氣連接器的匹配的零件104和106而可去除地連接至所述主機(jī)系統(tǒng)100上的卡的形式。
如上文討論的,圖1A的存儲(chǔ)器設(shè)備102可以包括半導(dǎo)體存儲(chǔ)器設(shè)備并且包括非易失性存儲(chǔ)器(例如一個(gè)或多個(gè)存儲(chǔ)器芯片116)、以及存儲(chǔ)器設(shè)備控制器118。在替代性實(shí)施例中,所述存儲(chǔ)器設(shè)備102可以包括易失性和非易失性存儲(chǔ)器二者。
所述主機(jī)系統(tǒng)100可以所述存儲(chǔ)器設(shè)備通信以用于多個(gè)目的。一個(gè)目的是使得主機(jī)系統(tǒng)102將數(shù)據(jù)存儲(chǔ)在所述存儲(chǔ)器設(shè)備上和/或從其讀取數(shù)據(jù)。例如,所述主機(jī)系統(tǒng)100可以發(fā)送數(shù)據(jù)至所述存儲(chǔ)器設(shè)備102以便存儲(chǔ)在所述存儲(chǔ)器設(shè)備102的所述一個(gè)或多個(gè)存儲(chǔ)器芯片116上。作為另一個(gè)示例,所述主機(jī)系統(tǒng)100可以從所述存儲(chǔ)器設(shè)備102請(qǐng)求存儲(chǔ)在所述一個(gè)或多個(gè)存儲(chǔ)器芯片116上的數(shù)據(jù)。當(dāng)與所述存儲(chǔ)器設(shè)備通信時(shí),所述主機(jī)系統(tǒng)100可以發(fā)送數(shù)據(jù)的邏輯地址,例如處于一定范圍的邏輯塊地址(LBA)的形式。所述存儲(chǔ)器設(shè)備控制器118接著可以在一個(gè)或多個(gè)步驟中將所述LBA轉(zhuǎn)換成所述存儲(chǔ)器芯片116上的實(shí)際物理地址。所述存儲(chǔ)器設(shè)備控制器118可以進(jìn)行邏輯地址到實(shí)際物理地址的轉(zhuǎn)換以便映射為所述實(shí)際物理地址。例如,來(lái)自所述主機(jī)系統(tǒng)100的LBA可以被映射為所述存儲(chǔ)器設(shè)備的內(nèi)部邏輯地址,并且所述存儲(chǔ)器設(shè)備的內(nèi)部邏輯地址可以被映射為所述實(shí)際物理地址。作為另一個(gè)示例,來(lái)自所述主機(jī)系統(tǒng)100的LBA可以被直接映射為所述實(shí)際物理地址。
圖1A展示了,非易失性存儲(chǔ)器116包括多個(gè)存儲(chǔ)器芯片,包括存儲(chǔ)器芯片0(120)和存儲(chǔ)器芯片N(126)。存儲(chǔ)器芯片0(120)包括存儲(chǔ)器芯片0控制器122和存儲(chǔ)器陣列124。同樣,存儲(chǔ)器芯片N(126)包括存儲(chǔ)器芯片N控制器128和存儲(chǔ)器陣列130。如下文更詳細(xì)討論的,存儲(chǔ)器芯片控制器可以包括電路和/或用于控制相應(yīng)存儲(chǔ)器芯片上的操作的軟件。進(jìn)一步,在一個(gè)實(shí)施例中,存儲(chǔ)器陣列可以包括在相應(yīng)存儲(chǔ)器芯片上的存儲(chǔ)器單元。
圖1B展示了圖1A的存儲(chǔ)器設(shè)備控制器118和存儲(chǔ)器芯片0(120)的另一個(gè)框圖。存儲(chǔ)器芯片0(120)僅被展示用于舉例的目的。如圖1B所示,在一個(gè)實(shí)施例中,所述存儲(chǔ)器設(shè)備控制器118可以命令對(duì)存儲(chǔ)器區(qū)段(例如,塊)進(jìn)行編程、并且之后可以判定是否刷新所述塊中的數(shù)據(jù)。為此,所述主機(jī)系統(tǒng)100可以包括塊擦除觸發(fā)器130、塊擦除命令132、塊選擇器136、塊編程命令138、讀取觸發(fā)器142、讀取命令144、讀取數(shù)據(jù)錯(cuò)誤分析器148、刷新判定器150、以及刷新命令152。所述塊擦除觸發(fā)器130、塊擦除命令132、塊選擇器136、塊編程命令138、讀取觸發(fā)器142、讀取命令144、讀取數(shù)據(jù)錯(cuò)誤分析器148、刷新判定器150、以及刷新命令152中的任一個(gè)、任何組合、或全部可以被實(shí)施為軟件、硬件、或硬件與軟件的組合。
所述存儲(chǔ)器芯片0(120)可以包括塊擦除器134、塊編程140、塊讀取器146、塊刷新器154。所述塊擦除器134、塊編程140、塊讀取器146、塊刷新器154中的任一個(gè)、任何組合、或全部可以被實(shí)施為軟件、硬件、或硬件與軟件的組合。
所述塊擦除觸發(fā)器130可以包括用于選擇所述存儲(chǔ)器陣列中的塊進(jìn)行擦除的觸發(fā)器。響應(yīng)于來(lái)自所述塊擦除觸發(fā)器130的觸發(fā),所述塊擦除命令132可以生成擦除命令來(lái)發(fā)生給所述所述存儲(chǔ)器芯片0(120)以便擦除所選擇的塊。響應(yīng)于接收到所述擦除命令,所述塊擦除器134擦除所選擇的塊。所述塊選擇器136被配置成用于選擇用于編程數(shù)據(jù)的塊。進(jìn)而,所述塊編程命令138生成命令來(lái)發(fā)送給存儲(chǔ)器芯片0(120)以便對(duì)所述塊進(jìn)行編程。響應(yīng)于接收到所述命令,所述塊編程器140所述塊進(jìn)行編程。
所述存儲(chǔ)器設(shè)備控制器118可以使用讀取觸發(fā)器142來(lái)讀取所述存儲(chǔ)器芯片0(120)中的所述數(shù)據(jù)。所述讀取觸發(fā)器142可以基于來(lái)自所述主機(jī)系統(tǒng)100的將讀取所述數(shù)據(jù)的請(qǐng)求、或基于內(nèi)部請(qǐng)求來(lái)觸發(fā)讀取。響應(yīng)于對(duì)讀取的觸發(fā),所述讀取命令144發(fā)送命令給所述存儲(chǔ)器芯片0(120)。塊讀取器146讀取所述塊(或所述塊的子部分)并發(fā)送所述數(shù)據(jù)來(lái)通過(guò)讀取數(shù)據(jù)錯(cuò)誤分析器148進(jìn)行錯(cuò)誤分析。如下文更詳細(xì)討論的,讀取數(shù)據(jù)錯(cuò)誤分析器148的一個(gè)示例可以是可以生成BER的ECC引擎。所述刷新判定器150可以分析所述讀取數(shù)據(jù)錯(cuò)誤分析器148的輸出以便判定是否刷新所述存儲(chǔ)器塊的部分或全部。例如,所述讀取數(shù)據(jù)錯(cuò)誤分析器148可以將由所述ECC引擎生成的BER與閾值進(jìn)行比較,以便判定是否命令刷新。響應(yīng)于確定刷新所述塊的部分或全部,所述刷新命令152發(fā)送命令給存儲(chǔ)器芯片0(120),所述存儲(chǔ)器芯片可以使用塊刷新器154來(lái)刷新所述塊的部分或全部。
圖1C展示了在所述存儲(chǔ)器設(shè)備控制器和存儲(chǔ)器芯片內(nèi)的刷新的數(shù)據(jù)流。在刷新所述數(shù)據(jù)時(shí),所述存儲(chǔ)器設(shè)備控制器118的控制器ASIC發(fā)送命令給NAND I/O電路。所述命令包括:關(guān)于所述命令是用于更新的指示、用于更新的數(shù)據(jù)、關(guān)于用于更更新的塊(或子塊)的指示、以及可選地用于更新的一個(gè)或多個(gè)編程電壓,如下文更詳細(xì)討論的。所述NAND I/O電路可以向所述NAND編程電路發(fā)送所述操作是刷新的指示(與來(lái)自被擦除的塊的編程不同)、以及關(guān)于所述存儲(chǔ)器陣列中用于編程的區(qū)段(例如,用于編程的存儲(chǔ)器陣列,如下文討論的)的指示。進(jìn)而,所述NAND編程電路使用解碼電路來(lái)選擇用于編程的存儲(chǔ)器(例如,字線、塊)。所述NAND I/O電路進(jìn)一步將所述數(shù)據(jù)發(fā)送給NAND數(shù)據(jù)鎖存器以便鎖存所述數(shù)據(jù)以進(jìn)行編程。
在驗(yàn)證之后,來(lái)自經(jīng)刷新的區(qū)段(例如,經(jīng)刷新的(多個(gè))字線或塊)的數(shù)據(jù)可以被讀出并發(fā)送給所述控制器ASIC。所述控制器ASIC可以將讀出的數(shù)據(jù)發(fā)送給所述ECC電路以進(jìn)行錯(cuò)誤分析(例如,所述ECC電路可以生成BER)。所述控制器ASIC可以接收BER并且然后BER。在一個(gè)實(shí)施例中,所述控制器ASIC可以將BER與被定義為成功刷新所述存儲(chǔ)器區(qū)段的預(yù)定義閾值進(jìn)行比較。如果BER小于所述預(yù)定義閾值,則所述控制器ASIC可以命令再次進(jìn)行刷新??商娲?,如果BER小于所述預(yù)定義閾值,則所述控制器ASIC可以命令對(duì)所述塊進(jìn)行重新編程。
圖2A展示了存儲(chǔ)器設(shè)備控制器芯片200,這是在圖1A中描繪的存儲(chǔ)器設(shè)備控制器118的一個(gè)示例。如圖2A所示,所述存儲(chǔ)器設(shè)備控制器芯片200包括主機(jī)系統(tǒng)接口202,所述主機(jī)系統(tǒng)接口可以包括用于與主機(jī)系統(tǒng)100通信的電路和/或軟件??商娲?,主機(jī)系統(tǒng)接口202可以在存儲(chǔ)器設(shè)備控制器芯片200的外部。存儲(chǔ)器設(shè)備控制器芯片200進(jìn)一步包括控制器204、存儲(chǔ)器208、以及(多個(gè))存儲(chǔ)器芯片接口214。存儲(chǔ)器208可以包括Vt移位檢測(cè)210、塊編程控制211、以及塊刷新控制。Vt移位檢測(cè)210可以包括由控制器204執(zhí)行來(lái)檢測(cè)存儲(chǔ)器區(qū)段(例如在塊或子塊)中的Vt移位(例如,下移)的軟件。塊編程控制211可以包括由控制器204執(zhí)行來(lái)控制所述一個(gè)或多個(gè)存儲(chǔ)器芯片116對(duì)塊進(jìn)行編程的軟件,如下文更詳細(xì)討論的。塊刷新控制212可以包括由控制器204執(zhí)行來(lái)控制所述一個(gè)或多個(gè)存儲(chǔ)器芯片116對(duì)塊(或塊的一部分)進(jìn)行刷新的軟件,如下文更詳細(xì)討論的。存儲(chǔ)器芯片接口214可以包括被配置成用于與一個(gè)或多個(gè)存儲(chǔ)器芯片通信的一條或多條通信線路。
圖2B展示了存儲(chǔ)器設(shè)備控制器芯片220,這是在圖1A中描繪的存儲(chǔ)器設(shè)備控制器118的第二示例。所述存儲(chǔ)器設(shè)備控制器芯片220可以被實(shí)施在單個(gè)集成電路芯片220上,例如專用集成電路(ASIC),如圖2B所示。進(jìn)一步,由所述存儲(chǔ)器設(shè)備控制器芯片220執(zhí)行的所述不同功能可以由單個(gè)設(shè)備來(lái)執(zhí)行、或者可以由多個(gè)設(shè)備來(lái)執(zhí)行,如圖2B所示。更具體地,所述存儲(chǔ)器設(shè)備控制器芯片220可以被劃分為圖2B中所展示的所述不同設(shè)備,例如(多個(gè))閃存接口222、處理器224、RAM 223、ECC 234、主機(jī)接口236、時(shí)鐘232。圖2B僅用于展示的目的。
所述存儲(chǔ)器設(shè)備控制器芯片220的處理器224可以被配置成能夠經(jīng)由(多個(gè))閃存接口222分開(kāi)地與相應(yīng)存儲(chǔ)器芯片通信的多線程處理器。所述(多個(gè))閃存接口222可以針對(duì)閃存116中的每個(gè)相應(yīng)存儲(chǔ)器芯片具有I/O端口。所述存儲(chǔ)器設(shè)備控制器芯片220可以包括內(nèi)部時(shí)鐘232。所述處理器224可以經(jīng)由內(nèi)部數(shù)據(jù)總線228與錯(cuò)誤校正編碼(ECC)模塊234(在下文更詳細(xì)討論)、RAM緩沖器230、主機(jī)接口236、固件226(可以包括啟動(dòng)編碼ROM)通信。
圖3A展示了存儲(chǔ)器芯片控制器300的示例,例如圖1A中描繪的存儲(chǔ)器芯片0控制器122。存儲(chǔ)器芯片控制器300包括存儲(chǔ)器設(shè)備控制器芯片接口302,所述接口是與存儲(chǔ)器設(shè)備控制器芯片200的接口。存儲(chǔ)器芯片控制器300進(jìn)一步包括控制器304和存儲(chǔ)器306。存儲(chǔ)器306可以包括編程驗(yàn)證308、塊編程309、以及塊刷新310。
編程驗(yàn)證308可以用來(lái)驗(yàn)證被編程到一個(gè)或多個(gè)存儲(chǔ)器單元中的數(shù)據(jù)是否已被成功地編程。如下文更詳細(xì)討論的,編程驗(yàn)證測(cè)試可以包括讀取操作,其中施加驗(yàn)證電壓(Vread)并且將流經(jīng)所述單元的電流與所述編程驗(yàn)證測(cè)試的驗(yàn)證電流(Iverify_set)或所述編程驗(yàn)證測(cè)試的重設(shè)驗(yàn)證電流(Iverify_reset)進(jìn)行比較,以便判定是否已分別達(dá)到所述設(shè)定或重設(shè)狀態(tài)。編程驗(yàn)證308可以判定是否已通過(guò)了所述編程驗(yàn)證測(cè)試。如果確定了還沒(méi)有通過(guò)所述編程驗(yàn)證測(cè)試,則在一個(gè)實(shí)施例中,可以返回錯(cuò)誤,并且在替代性實(shí)施例中,可以更新所述編程參數(shù)的一個(gè)或多個(gè)值,例如通過(guò)增大電壓量和/或持續(xù)時(shí)間和/或電流極限,并且可以再次進(jìn)行編程。
塊編程309可以用來(lái)對(duì)塊編程(或?qū)K的一部分編程),如下文更詳細(xì)討論的。塊刷新310可以用來(lái)刷新之前被編程在塊中的數(shù)據(jù)(或刷新塊的一部分),如下文更詳細(xì)討論的。存儲(chǔ)器陣列接口314可以包括到所述存儲(chǔ)器陣列、例如存儲(chǔ)器陣列124的接口。
圖3B展示了例如圖1A中描繪的閃存芯片0(120)中使用的存儲(chǔ)器芯片的塊程序的示例。每個(gè)存儲(chǔ)器芯片可以包含被規(guī)整到多個(gè)平面中的存儲(chǔ)器單元陣列。圖3B為了簡(jiǎn)化示出了平面360和362,但是可以替代地使用更小的數(shù)量,例如一個(gè)平面,或更大數(shù)量的平面,例如四個(gè)或八個(gè)平面??商娲?,一個(gè)存儲(chǔ)器存儲(chǔ)體的存儲(chǔ)器單元陣列不能分為多個(gè)平面。然而當(dāng)如此劃分時(shí),每個(gè)平面具有其自身列的控制電路314和316,所述電流是獨(dú)立于彼此可操作的。電路314和316接收其相應(yīng)存儲(chǔ)器單元陣列的地址、并且將其解碼以便尋址相應(yīng)位線318和320中的特定的一個(gè)或多個(gè)位線。通過(guò)行控制電路324響應(yīng)于在總線364上接收的地址來(lái)尋址所述字線322。源電壓控制電路326和328也與相應(yīng)平面相連接,作為p阱電壓控制電路330和332。如果所述存儲(chǔ)體采用具有單個(gè)存儲(chǔ)器單元陣列的存儲(chǔ)器芯片的形式,并且如果在所述系統(tǒng)中存在兩個(gè)或更多這樣的芯片,則數(shù)據(jù)通過(guò)與總線364相連接的相應(yīng)數(shù)據(jù)輸入/輸出電路334和336而被傳入和傳出所述平面360和362。電路334和336通過(guò)經(jīng)由相應(yīng)的列控制電路314和316連接至所述平面的線路338和340既提供將數(shù)據(jù)編程到所述存儲(chǔ)器單元中、又提供從其相應(yīng)平面的存儲(chǔ)器單元中讀取數(shù)據(jù)。
雖然所述存儲(chǔ)器設(shè)備芯片控制器200中的控制器204控制所述存儲(chǔ)器芯片編程數(shù)據(jù)、讀取數(shù)據(jù)、刷新數(shù)據(jù)、擦除以及參加各種內(nèi)務(wù)事宜的操作,但每個(gè)存儲(chǔ)器芯片還包含執(zhí)行來(lái)自所述存儲(chǔ)器設(shè)備控制器118的命令以便執(zhí)行這樣的功能(例如編程功能、刷新功能、以及編程驗(yàn)證功能)的某種控制電路。多個(gè)接口電路342連接至總線364上。來(lái)自所述存儲(chǔ)器設(shè)備控制器118的命令被提供給狀態(tài)機(jī)344,所述狀態(tài)機(jī)接著提供對(duì)其他電路的特定控制以便執(zhí)行這些命令。狀態(tài)機(jī)344可以進(jìn)一步包括錯(cuò)誤確定功能,例如在此討論的??刂凭€路346-354將所述狀態(tài)機(jī)344與如圖3B所示的這些其他電路相連接。來(lái)自狀態(tài)機(jī)344的狀態(tài)信息通過(guò)線路356被傳達(dá)至所述接口342,以便通過(guò)總線364傳輸至所述存儲(chǔ)器設(shè)備控制器118。
下文討論存儲(chǔ)器單元陣列310和312的NAND架構(gòu),但可以替代地單獨(dú)地或組合地使用其他非易失性存儲(chǔ)器架構(gòu)或技術(shù),例如NOR。用圖4的電路圖展示了一種示例NAND陣列,這是圖3B的存儲(chǔ)器存儲(chǔ)體的存儲(chǔ)器單元陣列310的一部分。提供了更大數(shù)量的全局位線,其中為了簡(jiǎn)單地解釋,在圖4中示出了僅4條這樣的線402-408。一定數(shù)量的串聯(lián)存儲(chǔ)器單元串410-424連接在這些位線之一與參考電勢(shì)之間。使用存儲(chǔ)器單元串414作為代表,在這個(gè)串的其中一端處,多個(gè)電荷儲(chǔ)存存儲(chǔ)器單元426-432與所選擇的晶體管434和436串聯(lián)連接。當(dāng)使得這個(gè)串的所選擇的晶體管導(dǎo)電時(shí),所述串連接在其位線與所述參考電勢(shì)之間。接著在某個(gè)時(shí)刻對(duì)這個(gè)串中的一個(gè)存儲(chǔ)器單元進(jìn)行編程或讀取。
圖4的字線438-444獨(dú)立地延伸跨過(guò)多個(gè)存儲(chǔ)器單元串中的每一個(gè)的一個(gè)存儲(chǔ)器單元的電荷儲(chǔ)存元件,并且并行編程單元446和450在所述串的每端處控制所述所選擇的晶體管的狀態(tài)。使得共享共用的字線和控制柵線438-450的所述存儲(chǔ)器單元串形成將一起被擦除的存儲(chǔ)器單元塊452。這個(gè)單元塊包含能一次物理地擦除的最小數(shù)量的單元。沿著所述字線438-444之一的一行存儲(chǔ)器單元可以一次并行地進(jìn)行編程。典型地,以規(guī)定的順序?qū)Χ嘈蠳AND陣列進(jìn)行編程,在此情況下從沿著字線444最靠近所述串的接地的末端或另一個(gè)共用電勢(shì)的這行開(kāi)始。接著并行地對(duì)沿著字線442的這行存儲(chǔ)器單元進(jìn)行編程,并且以此類推地遍及這個(gè)塊452。最后并行地對(duì)沿著字線438的這一行進(jìn)行編程。
一行存儲(chǔ)器單元僅是并行編程單元的一個(gè)示例。所述并行編程單元可以包括以下之一或二者:(1)可以并行地對(duì)所有物理結(jié)構(gòu)(例如存儲(chǔ)器單元)進(jìn)行編程/讀?。灰约?2)可以按照相同的或相似的完成時(shí)間對(duì)所有物理結(jié)構(gòu)進(jìn)行編程/讀取。要素(2)是出于效率的目的,但不是并行編程單元所要求的。
存儲(chǔ)器的一行存儲(chǔ)器單元可以由在裸片上處于相同物理位置的多個(gè)單元構(gòu)成??商娲?,這一行存儲(chǔ)器單元可以由在一個(gè)裸片或全都能夠并行編程的多個(gè)裸片上處于不同物理位置的多個(gè)單元構(gòu)成。此外,考慮了可以對(duì)多個(gè)存儲(chǔ)器單元并行地編程的其他并行可編程單元。
第二塊454是類似的,其存儲(chǔ)器單元串與第一塊452中的所述串連接至相同的全局位線上、但具有不同的一組字線和控制柵線。所述字線和控制柵線被所述行控制電路324驅(qū)動(dòng)至其恰當(dāng)?shù)牟僮麟妷?。如果在所述系統(tǒng)中存在多于一個(gè)平面,例如圖3B的平面1和2,則一個(gè)存儲(chǔ)器架構(gòu)使用在其間延伸的共用字線。替代地可以有多于兩個(gè)平面共享共用的字線。在其他存儲(chǔ)器架構(gòu)中,獨(dú)立平面的字線是分開(kāi)地被驅(qū)動(dòng)的。
所述存儲(chǔ)器單元可以被操作來(lái)存儲(chǔ)兩個(gè)電荷層,使得在每個(gè)單元中存儲(chǔ)單個(gè)位的數(shù)據(jù)。這典型地被稱為二進(jìn)制或單層單元(SLC)存儲(chǔ)器??商娲兀龃鎯?chǔ)器單元可以被操作來(lái)在每個(gè)電荷儲(chǔ)存元件或區(qū)域中存儲(chǔ)多于兩個(gè)可檢測(cè)電荷層,由此在每個(gè)中存儲(chǔ)多于一個(gè)位的數(shù)據(jù)。后一種構(gòu)型被稱為多層單元(MLC)存儲(chǔ)器。在存儲(chǔ)器中可以使用這兩種類型的存儲(chǔ)器單元,例如可以使用二進(jìn)制閃存來(lái)緩存數(shù)據(jù)并且可以使用MLC存儲(chǔ)器來(lái)進(jìn)行長(zhǎng)期存儲(chǔ)。所述存儲(chǔ)器單元的電荷儲(chǔ)存元件最常見(jiàn)地是導(dǎo)電浮柵、但可替代地可以是非導(dǎo)電性的介電的電荷收集材料。
圖5概念性地展示了多存儲(chǔ)體閃存的一個(gè)存儲(chǔ)體的組織,所述存儲(chǔ)體在下文的進(jìn)一步說(shuō)明中被用作示例。四個(gè)平面502-508的存儲(chǔ)器單元可以位于單個(gè)集成存儲(chǔ)器單元芯片上、位于兩個(gè)芯片上(每個(gè)芯片上兩個(gè)平面)或位于四個(gè)分開(kāi)的芯片上。具體的安排對(duì)于下文的討論不重要。當(dāng)然,在系統(tǒng)中可能存在其他數(shù)量的平面,例如1、2、8、16或更多。所述平面通過(guò)矩形被單獨(dú)地劃分為圖5所示的多個(gè)存儲(chǔ)器單元塊,例如位于相應(yīng)平面502-508中的塊510、512、514和516。在每個(gè)平面中可以存在幾百個(gè)或幾千個(gè)塊。
如上文提及的,所述存儲(chǔ)器單元塊是擦除單位,能夠一起物理地擦除的最小數(shù)量的存儲(chǔ)器單元。然而,為了增大并行性,所述塊可以按更大的元塊單位來(lái)操作。將來(lái)自每個(gè)平面中的一個(gè)塊邏輯地聯(lián)系在一起形成元塊。這四個(gè)塊510-516被示出為形成一個(gè)元塊518。元塊內(nèi)的所有單元典型地一起被擦除。用來(lái)形成元塊的所述塊不需要限制為在其相應(yīng)平面內(nèi)具有相同的相對(duì)位置,如在由塊522-528構(gòu)成的第二元塊520中所示。雖然通常優(yōu)選的是使所述元塊延伸跨過(guò)所有平面,但為了高的系統(tǒng)性能,所述存儲(chǔ)器設(shè)備可以被操作為具有動(dòng)態(tài)地形成具有不同平面中的一個(gè)、兩個(gè)或三個(gè)塊中的人一個(gè)或全部塊的元塊的能力。這允許元塊的大小與可用于在一個(gè)編程操作中存儲(chǔ)的數(shù)據(jù)量更緊密地匹配。
所述單獨(dú)的塊進(jìn)而出于操作目的被劃分為多個(gè)存儲(chǔ)器單元頁(yè),如圖6中展示的。例如,塊510-516中的每一個(gè)的存儲(chǔ)器單元各自被劃分為八個(gè)頁(yè)P(yáng)0-P7??商娲?,在每個(gè)塊中可以存在16、32或更多個(gè)存儲(chǔ)器單元頁(yè)。頁(yè)是塊內(nèi)的數(shù)據(jù)編程單位,包含了一次被編程或讀取的最小量數(shù)據(jù)。在圖3B的NAND架構(gòu)中,頁(yè)是由沿著塊內(nèi)的字線的存儲(chǔ)器單元形成的。然而,為了增大所述存儲(chǔ)器設(shè)備的操作并行性,可以將兩個(gè)或更多個(gè)塊中的這樣的頁(yè)邏輯地連接成元頁(yè)。在圖6中展示了元頁(yè)602,所述元頁(yè)是由來(lái)自這四個(gè)塊510-516中的每一個(gè)塊的一個(gè)物理頁(yè)形成的。例如,元頁(yè)602包括在這四個(gè)塊中的每一個(gè)塊中的頁(yè)P(yáng)2,但是元頁(yè)的頁(yè)不一定需要在每個(gè)塊中具有相同的相對(duì)位置。在存儲(chǔ)體內(nèi),元頁(yè)是最大編程單位。
圖7A展示了每單元3位NAND閃存的編程。圖7A的示例僅用于展示的目的??紤]了其他數(shù)量的位數(shù)/單元以及其他類型的存儲(chǔ)器。參見(jiàn)圖7A,對(duì)于每單元3位NAND閃存,字線中的每個(gè)單元可以存儲(chǔ)來(lái)自3個(gè)不停頁(yè)中的每一個(gè)頁(yè)的位:上部頁(yè)位(UP)702、中間頁(yè)位(MP)704和下部頁(yè)位(LP)706。用于這樣的存儲(chǔ)器單元的典型編程操作將需要三次將旨在用于所述單元的主機(jī)數(shù)據(jù)的3個(gè)原始位從所述控制器傳遞至所述NAND存儲(chǔ)器,為了將正確量的電荷輕推到所述單元中以達(dá)到希望的電壓狀態(tài)而需要的三個(gè)編程輪次中的每一個(gè)有一次,而不超過(guò)所述希望的電壓狀態(tài)。
如圖7A中所示,這三個(gè)編程輪次或狀態(tài)在此可以分別被稱為第一編程輪次708、模糊編程輪次710和精細(xì)編程輪次712??傮w來(lái)說(shuō),第一編程輪次708將是將所儲(chǔ)存的電壓留在擦除(Er)714水平或中間水平(圖7A中的LM716)的較粗糙的電壓脈沖,其中所述Er電壓水平容許隨后繼續(xù)編程到這8個(gè)所希望的電壓狀態(tài)中的前4個(gè)中的一個(gè)(Er、A、B或C),并且所述LM電壓水平將電壓推到可以增大至這8個(gè)所希望的電壓狀態(tài)中的后4個(gè)中的一個(gè)(D、E、F或G)的閾值。
在例如圖7A中所展示的存儲(chǔ)器中的典型第一/模糊/精細(xì)編程方案中,這3個(gè)主機(jī)原始位反復(fù)從所述控制器發(fā)送至所述NAND以執(zhí)行這三個(gè)編程階段中的每一個(gè)。因此,在所述第二或“模糊”編程步驟中,UP、MP、和LP數(shù)據(jù)被再次從控制器發(fā)送至NAND存儲(chǔ)器。所述UP、MP和LP位被所述非易失性存儲(chǔ)器(例如,NAND閃存)使用來(lái)生成為了將在第一編程步驟708中實(shí)現(xiàn)的當(dāng)前狀態(tài)(Er或LM)推到這8個(gè)所希望的電壓狀態(tài)中的更加解析的1個(gè)而需要的模糊編程階段電壓脈沖。在圖7A中示出了在模糊編程710之后的假想的電壓分布選項(xiàng)、以及在所述電壓水平下這3個(gè)頁(yè)位的相關(guān)聯(lián)狀態(tài)。在第二輪將原始的3個(gè)位的數(shù)據(jù)傳輸至NAND存儲(chǔ)器并進(jìn)行了第二、模糊編程階段710之后,這原始的三個(gè)位再次從所述控制器中的RAM被調(diào)用并發(fā)送至NAND為了實(shí)現(xiàn)這8個(gè)狀態(tài)中的所希望1個(gè)而必須的最后一個(gè)、或精細(xì)編程步驟712。在圖7A中之后示出了在精細(xì)編程階段712之后實(shí)現(xiàn)的可能編程電壓的分布,其中這8個(gè)可能的狀態(tài)被示出為是完全復(fù)原的。
雖然每個(gè)字線都將被寫(xiě)入三次,但寫(xiě)入順序在字線之間可以交錯(cuò),例如圖7B中展示的。更具體地,由于對(duì)相鄰字線施加的第一、模糊和精細(xì)編程步驟可能造成編程串?dāng)_問(wèn)題,其中對(duì)一個(gè)字線施加的電荷可能影響對(duì)相鄰字線施加的電荷,因此典型地利用預(yù)定的字線編程順序。因此,對(duì)相鄰字線的編程可以交錯(cuò),以減小編程串?dāng)_的機(jī)會(huì)。字線編程順序可能實(shí)質(zhì)上從表格的左下以對(duì)角線圖案向右上發(fā)展。例如,到字線0的第一編程輪次之后是到字線1的第一編程輪次,接著是回到字線0的模糊編程輪次。之后,所述圖案的發(fā)展方式是:在字線N上的第一編程輪次(在這個(gè)示例中以N=2開(kāi)始)之后是在字線N-1上的模糊編程輪次、接著是在字線N-2上的精細(xì)編程輪次,直到在最后一個(gè)字線上的第一編程輪次完成,如圖所示。
圖8A展示了將數(shù)據(jù)編程到存儲(chǔ)器區(qū)段中、判定是否刷新所述數(shù)據(jù)、并刷新所述數(shù)據(jù)的部分或全部的第一示例的流程圖800。在802,將存儲(chǔ)器區(qū)段、例如塊擦除。在804,使用第一編程方案對(duì)所述存儲(chǔ)器區(qū)段進(jìn)行編程。在圖7A中展示了所述第一編程方案的一個(gè)示例。
在806,使用錯(cuò)誤檢測(cè)方案來(lái)分析所述存儲(chǔ)器區(qū)段的至少一部分。例如,使用ECC引擎來(lái)讀取和分析所述更塊的部分或全部的數(shù)據(jù),以便確定BER。讀取所述塊中的多個(gè)單元的數(shù)據(jù)可以是迭代的過(guò)程。初始地對(duì)于所述多位單元的不同狀態(tài)設(shè)定所述單元的讀取電平條件。例如,在每單元3位的示例中,所述不同狀態(tài)的初始讀取電壓如下:A=1.5875V;B=3.1875V;C=3.4875V;D=4.2875V;E=5.0875V;F=5.8875V;G=6.3875V。將結(jié)果發(fā)送至所述ECC引擎以便判定所述BER是否是可校正的。如果所述ECC引擎確定了所述BER太高而不能校正所述錯(cuò)誤,則修改初始讀取電壓(例如,減小.1)并且重復(fù)這個(gè)過(guò)程以便確定所生成的BER是否是可校正的??紤]了用于確定所述數(shù)據(jù)中的錯(cuò)誤的其他錯(cuò)誤檢測(cè)方案。
在808,基于所述錯(cuò)誤檢測(cè)方案的結(jié)果,判定是否觸發(fā)刷新所述存儲(chǔ)器區(qū)段中的所述數(shù)據(jù)的部分或全部。例如,可以將所述錯(cuò)誤檢測(cè)方案的結(jié)果與閾值比較。響應(yīng)于確定了所述錯(cuò)誤檢測(cè)方案的結(jié)果指示所述存儲(chǔ)器區(qū)段中的錯(cuò)誤大于所述閾值,則可以在所述存儲(chǔ)器區(qū)段中觸發(fā)刷新。
如上文討論的,所述閾值可以取決于一個(gè)或多個(gè)因素來(lái)選擇,例如:受到潛在刷新的存儲(chǔ)器區(qū)段的狀態(tài)(例如,數(shù)據(jù)是否最近被折疊到MLC塊中;所述塊的編程/擦除循環(huán)的數(shù)量;在所述塊已被編程之后對(duì)所述塊的讀取數(shù)量);環(huán)境條件(例如,所述存儲(chǔ)器設(shè)備的溫度(例如,容納存儲(chǔ)器陣列的存儲(chǔ)器芯片的溫度);所述的存儲(chǔ)器設(shè)備Vcc(例如,供應(yīng)給所述存儲(chǔ)器芯片的功率);等等)。
例如,ECC引擎可以生成BER??梢詫⑺鯞ER與閾值進(jìn)行比較,以便判定是否觸發(fā)刷新所述存儲(chǔ)器區(qū)段中的所述數(shù)據(jù)的部分或全部。一種類型的ECC引擎是具有2K字節(jié)數(shù)據(jù)中繼線(大致16K比特)的BCH引擎。在這個(gè)示例中,所述ECC引擎不能校正多于122比特的錯(cuò)誤,這被認(rèn)為是不可校正的ECC(UECC)??梢詫⑺鯞ER與RfECC(刷新ECC)進(jìn)行比較。所述RfECC可以是預(yù)定的靜態(tài)數(shù),例如100??商娲兀鯮fECC可以是取決于所述存儲(chǔ)器設(shè)備的多個(gè)不同條件的變化的數(shù)。作為一個(gè)示例,當(dāng)檢查在將數(shù)據(jù)從SLC折疊到MLC塊中之后立即檢查所述MLC塊時(shí),可以使用第一RfECC。之后可以使用不同于所述第一RfECC的第二RfECC。作為另一個(gè)示例,RfECC可以取決于所述塊的老化或磨損而改變。可以使用多個(gè)不同的壽命指示符,例如在對(duì)塊編程之后已經(jīng)對(duì)所述塊施加的編程/擦除循環(huán)(P/E)或讀取數(shù)量。在上文給出的示例的背景下,RfECC可以隨著塊的老化而改變,例如RfECC為100、80和60,分別將所述塊確定為“較新”、“中等老化”和“嚴(yán)重老化”。在此方面,刷新所述塊(或塊的子部分)可以隨著所述塊老化而變得更具侵略性。同樣,RfECC可以取決于對(duì)所述塊的讀取數(shù)量而改變,其中RfECC隨著對(duì)所述塊的讀取數(shù)量的增大而減小。同樣,此方面,刷新所述塊(或塊的子部分)可以隨著在所述塊上進(jìn)行更多讀取而變得更具侵略性。
作為又一個(gè)示例,RfECC可以取決于所述存儲(chǔ)器設(shè)備的總體條件而改變。總體條件可以包括所述存儲(chǔ)器設(shè)備內(nèi)部的條件,例如Vcc水平(可以由系統(tǒng)電路來(lái)確定)、或者可以包括所述存儲(chǔ)器設(shè)備的環(huán)境條件,例如溫度。在溫度的背景下,RfECC在所述存儲(chǔ)器設(shè)備的溫度高于溫度閾值時(shí)可以較高、并且在所述存儲(chǔ)器設(shè)備的溫度低于溫度閾值時(shí)可以較低。
響應(yīng)于確定刷新所述存儲(chǔ)器區(qū)段,在810,可以在所述存儲(chǔ)器區(qū)段的一部分(或全部)上進(jìn)行對(duì)所述存儲(chǔ)器區(qū)段的刷新。所述刷新可以使用不同于所述第一編程方案的第二編程方案在804進(jìn)行。
如上文討論的,圖7A展示了在擦除了塊之后在804可以使用的編程方案的一個(gè)示例。因?yàn)樵?10進(jìn)行了刷新,數(shù)據(jù)已經(jīng)被編程到所述存儲(chǔ)器區(qū)段中,但具有移位的Vt。在此方面,用于進(jìn)行刷新的所述(多個(gè))步驟和/或在所述步驟中使用的電壓可以不同于在擦除了塊之后在804使用的編程方案。例如,圖7A展示了第一/模糊/精細(xì)的不同步驟。在一個(gè)實(shí)施例中,所述刷新沒(méi)有進(jìn)行“第一步驟”和“模糊”步驟,而是僅進(jìn)行“精細(xì)”步驟。作為另一個(gè)示例,在所述刷新中使用的電壓可以不同于在擦除了塊之后在804使用的編程方案。
例如,在所述每單元3位NAND閃存中,所述刷新過(guò)程可以包括使用初始編程電壓。如下文更詳細(xì)討論的,所述初始編程電壓可以是靜態(tài)的或動(dòng)態(tài)的。將有待被編程到相同狀態(tài)的單元一起編程。更具體地,字線可以包括例如14萬(wàn)個(gè)單元。所述字線上的用于刷新到A狀態(tài)的所述單元中的每一個(gè)可以同時(shí)被編程。在施加了編程電壓之后,所述編程驗(yàn)證電路可以使用一組預(yù)定電壓來(lái)判定所述單元是否已被恰當(dāng)?shù)鼐幊?。出于例示的目的?位/單元NAND閃存的從A到G的驗(yàn)證電平可以包括0.8、1.6、2.4、3.2、4.0、4.8、5.6V。在編程驗(yàn)證失敗的情況下,可以增大編程電壓(例如,增大40mV),并且可以重復(fù)這個(gè)過(guò)程。在一個(gè)實(shí)施例中,這個(gè)過(guò)程的重復(fù)次數(shù)可以局限于預(yù)定數(shù)量。之后,所述存儲(chǔ)器芯片可以像所述存儲(chǔ)器系統(tǒng)控制器報(bào)告失敗,如下文更詳細(xì)討論的。可以對(duì)于狀態(tài)A至G中的每個(gè)狀態(tài)重復(fù)這個(gè)過(guò)程。
如上文討論的,在所述刷新操作中使用的電壓在一個(gè)實(shí)施例中可以是靜態(tài)的并且在替代性實(shí)施例中可以是動(dòng)態(tài)的。例如,響應(yīng)于確定了將進(jìn)行所述刷新,可以使用(多個(gè))預(yù)定的靜態(tài)電壓來(lái)刷新所述存儲(chǔ)器區(qū)段。作為另一個(gè)示例,響應(yīng)于確定了將進(jìn)行所述刷新,可以動(dòng)態(tài)地選擇在所述刷新中使用的電壓。更具體地,所述電壓可以基于一個(gè)或多個(gè)因素進(jìn)行選擇,包括:所述存儲(chǔ)器區(qū)段中的錯(cuò)誤的量;和/或所述存儲(chǔ)器設(shè)備的總體條件。例如,查找表可以將不同的BER與不同的編程電壓相關(guān)聯(lián)。在此方面,較高的BER可以對(duì)刷新操作產(chǎn)生較高的編程電壓。
此外,響應(yīng)于在808確定了將觸發(fā)刷新,在810可以在多個(gè)不同時(shí)刻進(jìn)行所述刷新。在一個(gè)實(shí)施例中,在810的刷新可以立即響應(yīng)于在808確定了將觸發(fā)刷新。在替代性實(shí)施例中,在810的刷新不需要立即響應(yīng)于在808確定了將觸發(fā)刷新而進(jìn)行。而是,受到刷新的所述存儲(chǔ)器區(qū)段、例如塊可以被添加到用于刷新的存儲(chǔ)器區(qū)段列表中。當(dāng)所述存儲(chǔ)器設(shè)備閑置時(shí),所述存儲(chǔ)器設(shè)備可以刷新所述列表上的存儲(chǔ)器區(qū)段。
進(jìn)一步,如上文討論的,可以刷新不同的存儲(chǔ)器區(qū)段。作為一個(gè)示例,可以刷新整個(gè)塊。更具體地,在塊內(nèi)的單個(gè)讀取可以觸發(fā)刷新整個(gè)塊。作為另一個(gè)示例,可以刷新一個(gè)塊的子部分。更具體地,可以刷新一個(gè)塊內(nèi)的一個(gè)或多個(gè)特定字線,而可以不觸摸所述塊中的其余字線。如上文討論的,一個(gè)塊可以由多個(gè)字線構(gòu)成,例如字線0至127??梢栽趩蝹€(gè)字線上、例如字線50上進(jìn)行讀取。所述存儲(chǔ)器設(shè)備可以基于來(lái)自讀取字線50的BER確定應(yīng)當(dāng)刷新字線50。在此方面,所述存儲(chǔ)器設(shè)備可以僅刷新字線50,而不刷新字線0-49或51-127。
圖8B展示了將數(shù)據(jù)編程到存儲(chǔ)器區(qū)段中、判定是否刷新所述數(shù)據(jù)、并刷新所述數(shù)據(jù)的部分或全部的第二示例的流程圖850。在852,檢測(cè)例如由于數(shù)據(jù)保持或循環(huán)而造成的潛在數(shù)據(jù)損壞。在854,掃描所述系統(tǒng)的潛在損壞數(shù)據(jù)的物理地址。所述系統(tǒng)的掃描可以在主機(jī)讀取(例如,所述主機(jī)系統(tǒng)命令了所述讀取)的過(guò)程中、或在背景系統(tǒng)掃描的過(guò)程中進(jìn)行,如下文更詳細(xì)討論的。
在856,存儲(chǔ)包含由于數(shù)據(jù)保持或循環(huán)而造成的潛在損壞數(shù)據(jù)的塊的地址。在858,將所述數(shù)據(jù)讀取到所述ECC引擎,并且校正所述數(shù)據(jù)。在860,將校正數(shù)據(jù)發(fā)送回到所述NAND閃存芯片、并且所述NAND閃存芯片將其用作原始數(shù)據(jù)來(lái)驗(yàn)證原始位置中的原始數(shù)據(jù)。如上文討論的,所述NAND閃存芯片可以接收校正數(shù)據(jù)以進(jìn)行刷新。更具體地,所述NAND閃存芯片可以根據(jù)所接收的校正數(shù)據(jù)來(lái)確定一個(gè)字線中的哪些單元將被編程到哪個(gè)狀態(tài)(例如,在每單元3位中,狀態(tài)A-G之一)、將所確定的單元刷新到所述狀態(tài)、并且使用編程驗(yàn)證來(lái)判定所述刷新是否已使得所述單元具有與所述狀態(tài)相對(duì)應(yīng)的值)。在862,可以將這個(gè)驗(yàn)證過(guò)程應(yīng)用于整個(gè)塊、或僅應(yīng)用于這個(gè)塊的一部分,例如受影響的字線的上部頁(yè)、中頁(yè)、下部頁(yè)、或多個(gè)頁(yè)的組合。在864,可以應(yīng)用所述編程脈沖來(lái)將所述數(shù)據(jù)重新編程回到所述位置,直到所述驗(yàn)證過(guò)程通過(guò)了驗(yàn)證標(biāo)準(zhǔn)。
圖9展示了觸發(fā)對(duì)數(shù)據(jù)的讀取、使用錯(cuò)誤校正編碼(ECC)確定位錯(cuò)誤率(BER)、并使用所述BER來(lái)判定是否刷新所述數(shù)據(jù)的一個(gè)示例的流程圖900。在902,判定是否請(qǐng)求了主機(jī)讀取。響應(yīng)于確定請(qǐng)求了主機(jī)讀取,在904,進(jìn)行主機(jī)讀取??商娲?,可以進(jìn)行內(nèi)部讀取。例如,所述存儲(chǔ)器系統(tǒng)控制器可以分析塊的多個(gè)不同特征,例如P/E循環(huán),以便判定一個(gè)塊是否是內(nèi)部讀取的候選物。更具體地,具有高/E的塊(指示了較多地被使用的塊并且因此更易于出現(xiàn)錯(cuò)誤)可以是內(nèi)部讀取的候選物。在906,判定一個(gè)塊是否包含觸發(fā)內(nèi)部讀取的特征。如果是,則在908,進(jìn)行內(nèi)部讀取。
在910,使用所述ECC引擎來(lái)確定BER。在912,訪問(wèn)用于觸發(fā)刷新的BER閾值。如上文討論的,所述BER閾值可以是靜態(tài)或動(dòng)態(tài)的。在914,將BER與所述BER閾值進(jìn)行比較。響應(yīng)于確定了BER大于所述BER閾值,在916,將所述塊(或所述塊的子部分)放到有待刷新的塊(或塊的子部分)清單上。
圖10A展示了從控制存儲(chǔ)器芯片的存儲(chǔ)器設(shè)備控制器的角度看,對(duì)數(shù)據(jù)進(jìn)行刷新的第一示例的流程圖1000,其中所述存儲(chǔ)器芯片進(jìn)行刷新驗(yàn)證。在1002,所述存儲(chǔ)器系統(tǒng)控制器判定是否在所述塊(或所述塊的一部分)上進(jìn)行刷新。如果是,則在1004,所述存儲(chǔ)器系統(tǒng)控制器發(fā)送刷新命令和所述數(shù)據(jù)給所述存儲(chǔ)器芯片。在1006,所述存儲(chǔ)器系統(tǒng)控制器判定所述存儲(chǔ)器芯片是否已經(jīng)返回了編程驗(yàn)證確認(rèn)。如下文討論的,所述編程驗(yàn)證確認(rèn)通過(guò)所述存儲(chǔ)器芯片指示所述刷新已經(jīng)成功地進(jìn)行。響應(yīng)于所述存儲(chǔ)器芯片控制器確定了沒(méi)有接收到編程驗(yàn)證確認(rèn),在1008,所述存儲(chǔ)器系統(tǒng)控制器可以命令對(duì)所述塊進(jìn)行重新編程。例如,所述存儲(chǔ)器系統(tǒng)控制器可以命令所述存儲(chǔ)器芯片將所述數(shù)據(jù)編程到分開(kāi)的塊(例如,通過(guò)使用圖7A中展示的序列)中、并且接著命令擦除所述塊??商娲兀憫?yīng)于所述存儲(chǔ)器芯片控制器確定了沒(méi)有接收到編程驗(yàn)證確認(rèn),所述存儲(chǔ)器芯片控制器可以命令所述存儲(chǔ)器芯片再次進(jìn)行所述刷新。響應(yīng)于接收到關(guān)于沒(méi)有接收到編程驗(yàn)證確認(rèn)的第二指示,所述存儲(chǔ)器系統(tǒng)控制器可以命令對(duì)所述塊進(jìn)行重新編程。
圖10B展示了從存儲(chǔ)器芯片的角度看,對(duì)數(shù)據(jù)進(jìn)行刷新的第一示例的流程圖1050,其中所述存儲(chǔ)器芯片進(jìn)行刷新驗(yàn)證。在1052,所述存儲(chǔ)器芯片從所述存儲(chǔ)器系統(tǒng)控制器接收刷新命令和所述數(shù)據(jù)。在1054,所述存儲(chǔ)器芯片刷新所述塊的一部分(或全部)。在1056,所述存儲(chǔ)器芯片進(jìn)行編程驗(yàn)證以驗(yàn)證所述刷新是否成功。響應(yīng)于確定了編程驗(yàn)證已發(fā)生,在1058,所述存儲(chǔ)器芯片可以發(fā)送編程驗(yàn)證確認(rèn)給所述存儲(chǔ)器系統(tǒng)控制器。響應(yīng)于確定了編程驗(yàn)證還沒(méi)有發(fā)生,在1060,所述存儲(chǔ)器芯片可以發(fā)送編程驗(yàn)證失敗給所述存儲(chǔ)器系統(tǒng)控制器。
在替代性實(shí)施例中,響應(yīng)于確定了編程驗(yàn)證指示失敗,所述存儲(chǔ)器芯片可以再次進(jìn)行所述刷新。例如,所述存儲(chǔ)器芯片可以修改進(jìn)行刷新的電壓(例如,增大電壓)并且接著用經(jīng)修改的電壓來(lái)進(jìn)行所述刷新。之后,所述存儲(chǔ)器芯片可以進(jìn)行編程驗(yàn)證。所述存儲(chǔ)器芯片可以將這些步驟迭代預(yù)定次數(shù),每次迭代都檢查所述編程驗(yàn)證。如果在預(yù)定的迭代次數(shù)之后沒(méi)有發(fā)生編程驗(yàn)證,則所述存儲(chǔ)器芯片可以將編程驗(yàn)證失敗發(fā)生給所述存儲(chǔ)器系統(tǒng)控制器。
圖11A展示了從控制存儲(chǔ)器芯片的存儲(chǔ)器設(shè)備控制器的角度看,對(duì)數(shù)據(jù)進(jìn)行刷新的第二示例的流程圖1100,其中所述存儲(chǔ)器系統(tǒng)控制器進(jìn)行驗(yàn)證。在1102,所述存儲(chǔ)器系統(tǒng)控制器判定刷新是否是必須的或必要的。如果是,則在1104,所述存儲(chǔ)器系統(tǒng)控制器將計(jì)數(shù)器設(shè)定為零。在1106,所述存儲(chǔ)器系統(tǒng)控制器設(shè)定初始刷新編程電壓。如上文討論的,所述初始刷新編程電壓可以是靜態(tài)的或動(dòng)態(tài)的。例如,在一個(gè)實(shí)施例中,所述初始刷新編程電壓可以基于BER進(jìn)行選擇。
在1108,將刷新命令、編程電壓和數(shù)據(jù)發(fā)送至所述存儲(chǔ)器芯片。在1110,將計(jì)數(shù)器加一。在1112,所述存儲(chǔ)器系統(tǒng)控制器命令所述存儲(chǔ)器芯片讀取已被刷新的數(shù)據(jù)。在1114,所述存儲(chǔ)器系統(tǒng)控制器從所述存儲(chǔ)器芯片接收已被讀取的數(shù)據(jù)。在1116,所述存儲(chǔ)器系統(tǒng)控制器在讀取的數(shù)據(jù)上使用所述ECC引擎來(lái)確定BER。
在1118,所述存儲(chǔ)器系統(tǒng)控制器判定BER是否小于閾值。在第一實(shí)施例中,所述存儲(chǔ)器系統(tǒng)控制器可以將BER與被用于觸發(fā)刷新的相同閾值進(jìn)行比較。如果BER不小于所述閾值,則在1120,可以檢查所述計(jì)數(shù)器以判定迭代次數(shù)(由所述計(jì)數(shù)器指示)是否小于為了重新發(fā)送刷新命令而允許的次數(shù)。如果迭代次數(shù)小于允許迭代的次數(shù),則在1122,所述存儲(chǔ)器系統(tǒng)控制器選擇新的編程電壓、別接著迭代至1108。所選擇的這個(gè)新的編程電壓可以包括從所述初始編程電壓增大。編程電壓的增大可以是靜態(tài)的且預(yù)先確定的??商娲兀幊屉妷旱脑龃罂梢允莿?dòng)態(tài)的,例如取決于BER。
響應(yīng)于在1120確定了已經(jīng)查過(guò)發(fā)送刷新命令的次數(shù),在1124,對(duì)所述塊進(jìn)行重新編程。例如,所述存儲(chǔ)器系統(tǒng)控制器可以命令所述存儲(chǔ)器芯片將所述數(shù)據(jù)編程到分開(kāi)的塊(例如,通過(guò)使用圖7A中展示的序列)中、并且接著命令擦除所述塊。
圖11B展示了從存儲(chǔ)器芯片的角度看,對(duì)數(shù)據(jù)進(jìn)行刷新的第二示例的流程圖1150,其中所述存儲(chǔ)器設(shè)備控制器、而不是所述存儲(chǔ)器芯片進(jìn)行驗(yàn)證。在1152,判定所述存儲(chǔ)器芯片是否接收到刷新命令、編程電壓和數(shù)據(jù)。響應(yīng)于接收到,在1154,所述存儲(chǔ)器芯片使用編程電壓和數(shù)據(jù)刷新所述塊(或所述塊的一部分)。
圖12展示了從控制存儲(chǔ)器芯片的存儲(chǔ)器設(shè)備控制器的角度看,對(duì)數(shù)據(jù)進(jìn)行刷新的第三示例的流程圖1200,其中所述存儲(chǔ)器系統(tǒng)控制器和所述存儲(chǔ)器芯片均進(jìn)行驗(yàn)證。在1202,所述存儲(chǔ)器系統(tǒng)控制器判定是否在所述塊(或所述塊的一部分)上進(jìn)行刷新。如果是,則在1204,所述存儲(chǔ)器系統(tǒng)控制器發(fā)送刷新命令和所述數(shù)據(jù)給所述存儲(chǔ)器芯片。在1206,所述存儲(chǔ)器系統(tǒng)控制器判定所述存儲(chǔ)器芯片是否已經(jīng)返回了編程驗(yàn)證確認(rèn)。如上文關(guān)于圖10B討論的,所述存儲(chǔ)器芯片可以進(jìn)行編程驗(yàn)證。
響應(yīng)于確定了沒(méi)有接收到編程驗(yàn)證確認(rèn),在1208,所述存儲(chǔ)器系統(tǒng)控制器將計(jì)數(shù)器設(shè)定為零。在1210,所述存儲(chǔ)器系統(tǒng)控制器設(shè)定初始刷新編程電壓。在1212,將刷新命令、編程電壓和數(shù)據(jù)發(fā)送至所述存儲(chǔ)器芯片。在1214,將計(jì)數(shù)器加一。在1216,所述存儲(chǔ)器系統(tǒng)控制器命令所述存儲(chǔ)器芯片讀取已被刷新的數(shù)據(jù)。在1218,所述存儲(chǔ)器系統(tǒng)控制器從所述存儲(chǔ)器芯片接收已被讀取的數(shù)據(jù)。在1220,所述存儲(chǔ)器系統(tǒng)控制器在讀取的數(shù)據(jù)上使用所述ECC引擎來(lái)確定BER。
在1222,所述存儲(chǔ)器系統(tǒng)控制器判定BER是否小于閾值(例如用于觸發(fā)刷新的閾值)。如果BER不小于所述閾值,則在1224,可以檢查所述計(jì)數(shù)器以確定迭代次數(shù)(由所述計(jì)數(shù)器指示)是否小于為了重新發(fā)送刷新命令而允許的次數(shù)。如果迭代次數(shù)小于允許迭代的次數(shù),則在1226,所述存儲(chǔ)器系統(tǒng)控制器選擇新的編程電壓、別接著迭代至1212。如上文討論的,所選擇的這個(gè)新的編程電壓可以包括從初始編程電壓增大,其中這種增大是靜態(tài)的且預(yù)先確定的、或是動(dòng)態(tài)的。響應(yīng)于在1224確定了已經(jīng)查過(guò)發(fā)送刷新命令的次數(shù),在1228,對(duì)所述塊進(jìn)行重新編程。
如上文討論的,可以在多個(gè)不同時(shí)刻判定是否進(jìn)行刷新。例如,這種確定是基于正在進(jìn)行的事件、例如基于將數(shù)據(jù)編程到塊中來(lái)進(jìn)行的。在一個(gè)實(shí)施例中,將數(shù)據(jù)編程到塊中(例如從SLC折疊到MLC中,下文關(guān)于圖13A進(jìn)行討論)可以觸發(fā)判定是否進(jìn)行刷新。在替代性實(shí)施例中,從將數(shù)據(jù)編程到塊中起過(guò)去的時(shí)間(例如,如果從編程起過(guò)去的時(shí)間大于預(yù)定量,下文關(guān)于圖13B進(jìn)行討論)可以觸發(fā)判定是否進(jìn)行刷新。作為另一個(gè)示例,這種確定可以基于所述存儲(chǔ)器設(shè)備自身來(lái)進(jìn)行。在一個(gè)實(shí)施例中,所述存儲(chǔ)器中的塊的壽命(或壽命指示符)可以觸發(fā)判定是否進(jìn)行刷新(例如編程擦除計(jì)數(shù)大于預(yù)定閾值,下文關(guān)于圖13C進(jìn)行討論)。進(jìn)一步,關(guān)于判定是否進(jìn)行刷新的所述閾值可以改變。
圖13A展示了在編程操作之后判定是否進(jìn)行刷新操作并進(jìn)行刷新操作的流程圖1300。對(duì)塊的編程可以觸發(fā)判定是否進(jìn)行刷新操作。在1302,針對(duì)具體操作、即針對(duì)X3存儲(chǔ)器的編程操作,設(shè)定故障位計(jì)數(shù)(FBC)閾值(RfECC(新近))。在1304,進(jìn)行正常的SLC到MLC數(shù)據(jù)折疊,其中所述折疊操作在X3存儲(chǔ)器中進(jìn)行。在美國(guó)公開(kāi)申請(qǐng)?zhí)?013-0173844 A1中公開(kāi)了將數(shù)據(jù)從SLC折疊到MLC的一個(gè)示例。所述折疊操作可以得到大于所希望的FBC。
在1306,在剛被編程的塊上進(jìn)行增強(qiáng)型寫(xiě)入后讀取。更具體地,ECC引擎可以分析所述讀取的結(jié)果以確定FBC。因此,除了在所述NAND存儲(chǔ)器芯片上進(jìn)行的內(nèi)部驗(yàn)證(在對(duì)所述數(shù)據(jù)塊編程的過(guò)程中進(jìn)行)之外,所述系統(tǒng)存儲(chǔ)器控制器可以使用所述ECC引擎來(lái)驗(yàn)證寫(xiě)入。在1308,將FBC與RfECC(新近)進(jìn)行比較。如果FBC大于RfECC(新近)(例如,F(xiàn)BC大于在對(duì)所述塊編程后立即希望的量),則在1310,所述存儲(chǔ)器系統(tǒng)控制器開(kāi)始在所述塊的標(biāo)記區(qū)段(例如,所述塊內(nèi)的某些頁(yè))上使用SLC源數(shù)據(jù)來(lái)進(jìn)行刷新操作、并且向所述存儲(chǔ)器芯片發(fā)送命令來(lái)進(jìn)行所述NAND刷新操作。更具體地,在所述折疊操作中使用的所述SLC塊中的數(shù)據(jù)可以與所述刷新命令一起被發(fā)送至所述存儲(chǔ)器芯片。
圖13B展示了判定是否對(duì)遭受數(shù)據(jù)保持問(wèn)題的塊進(jìn)行刷新操作并進(jìn)行刷新操作的流程圖1330。如上文討論的,在一段時(shí)間之后,所述塊中的數(shù)據(jù)可能遭遇數(shù)據(jù)保持問(wèn)題。在此方面,數(shù)據(jù)在塊中存儲(chǔ)的時(shí)間越長(zhǎng),數(shù)據(jù)保持問(wèn)題的可能性就越大。因此,在空閑時(shí)間期間,可以檢查所述塊以便確定數(shù)據(jù)已經(jīng)在塊中存儲(chǔ)了多長(zhǎng)時(shí)間。在一個(gè)實(shí)施例中,可以對(duì)包括的數(shù)據(jù)在其中存儲(chǔ)了比預(yù)定時(shí)間量更長(zhǎng)的時(shí)間段的塊進(jìn)行標(biāo)記,以便判定是否進(jìn)行刷新操作。在替代性實(shí)施例中,可以對(duì)包括的數(shù)據(jù)在其中存儲(chǔ)了最長(zhǎng)時(shí)間的塊(與其他塊相比)進(jìn)行標(biāo)記,以便判定是否進(jìn)行刷新操作。
在1332,針對(duì)具體操作、即針對(duì)遭受數(shù)據(jù)保持的塊,設(shè)定故障位計(jì)數(shù)(FBC)閾值(RfECC(DR))。作為一個(gè)示例,可以分析具有嚴(yán)重?cái)?shù)據(jù)保持應(yīng)力的塊,例如3X紅外(IR)-X回流或DR塊。在1334,使用CVD或動(dòng)態(tài)讀取操作來(lái)掃描塊以便確定由于3X Ir-回流造成的Vt下移的量。CVD是一種類型的單元Vt分布。CVD可以用作更精細(xì)形式的動(dòng)態(tài)讀取,其中讀取電壓增量式改變,直到通過(guò)ECC引擎確定的讀取結(jié)果是充分可校正的。
在1336,將FBC與RfECC(DR)進(jìn)行比較。如果FBC大于RfECC(DR),則在1338,所述存儲(chǔ)器系統(tǒng)控制器開(kāi)始在標(biāo)記頁(yè)上進(jìn)行刷新操作。不像圖13A中使用SLC源數(shù)據(jù),將所述頁(yè)讀出到所述存儲(chǔ)器系統(tǒng)控制器。所述存儲(chǔ)器系統(tǒng)控制器接著可以使用所述ECC引擎來(lái)進(jìn)行ECC校正,以便獲得校正數(shù)據(jù)發(fā)送給所述存儲(chǔ)器芯片,以便在刷新中使用。
在1340,應(yīng)用相同的頁(yè)數(shù)據(jù)刷新。如上文討論的,使用來(lái)自這同一頁(yè)的經(jīng)ECC校正的數(shù)據(jù)圖案進(jìn)行所述刷新。在此方面,所述經(jīng)ECC校正的數(shù)據(jù)圖案被發(fā)送至所述存儲(chǔ)器芯片,所述存儲(chǔ)器芯片可以使用所述經(jīng)ECC校正的數(shù)據(jù)圖案來(lái)刷新這同一頁(yè)。
圖13C展示了判定是否對(duì)遭受循環(huán)應(yīng)力問(wèn)題的塊(例如,具有高P/E計(jì)數(shù)(PEC)的塊)進(jìn)行刷新操作并進(jìn)行刷新操作的流程圖1360。如上文討論的,塊的性能可能由于老化或磨損而變差。在此方面,可以使用壽命指示符來(lái)判定一個(gè)塊是否可能潛在地遭遇數(shù)據(jù)保持問(wèn)題。因此在空閑時(shí)間期間,可以檢查所述塊的壽命指示符(例如,P/E計(jì)數(shù))來(lái)確定所述塊的相對(duì)老化或磨損。在一個(gè)實(shí)施例中,可以對(duì)具有的P/E計(jì)數(shù)大于預(yù)定P/E計(jì)數(shù)的塊進(jìn)行標(biāo)記,以便判定是否進(jìn)行刷新操作。在替代性實(shí)施例中,可以對(duì)具有最高P/E計(jì)數(shù)的塊(與其他塊相比)進(jìn)行標(biāo)記,以便判定是否進(jìn)行刷新操作。
在1362,針對(duì)具體操作、即針對(duì)遭受高PEC的塊,設(shè)定故障位計(jì)數(shù)(FBC)閾值(RfECC(PEC))。在1364,使用CVD或動(dòng)態(tài)讀取操作來(lái)掃描塊以便確定Vt下移的量。
在1366,將FBC與RfECC(PEC)進(jìn)行比較。如果FBC大于RfECC(PEC),則在1368,所述存儲(chǔ)器系統(tǒng)控制器開(kāi)始在標(biāo)記頁(yè)上進(jìn)行刷新操作。不像圖13A中使用SLC源數(shù)據(jù),將所述頁(yè)讀出到所述存儲(chǔ)器系統(tǒng)控制器。所述存儲(chǔ)器系統(tǒng)控制器接著可以使用所述ECC引擎來(lái)進(jìn)行ECC校正,以便獲得校正數(shù)據(jù)發(fā)送給所述存儲(chǔ)器芯片,以便在刷新中使用。
在1370,應(yīng)用相同的頁(yè)數(shù)據(jù)刷新。如上文討論的,使用來(lái)自這同一頁(yè)的經(jīng)ECC校正的數(shù)據(jù)圖案進(jìn)行所述刷新。在此方面,所述經(jīng)ECC校正的數(shù)據(jù)圖案被發(fā)送至所述存儲(chǔ)器芯片,所述存儲(chǔ)器芯片可以使用所述經(jīng)ECC校正的數(shù)據(jù)圖案來(lái)刷新這同一頁(yè)。
所述指令可以被實(shí)施在計(jì)算機(jī)可讀介質(zhì)中。所述計(jì)算機(jī)可讀介質(zhì)可以是單個(gè)介質(zhì),或者所述計(jì)算機(jī)可讀介質(zhì)可以是單個(gè)介質(zhì)或多個(gè)介質(zhì),例如集中或分布式數(shù)據(jù)庫(kù)、和/或存儲(chǔ)一組或多組指令的相關(guān)聯(lián)緩存和服務(wù)器。術(shù)語(yǔ)“計(jì)算機(jī)可讀介質(zhì)”還可以包括可能能夠存儲(chǔ)、編碼和/或承載一組指令以便由處理器執(zhí)行的、或者可以使得計(jì)算機(jī)系統(tǒng)執(zhí)行在此公開(kāi)的所述方法或操作中的任意一種或多種的任何介質(zhì)。
所述計(jì)算機(jī)可讀介質(zhì)可以包括固體存儲(chǔ)器,例如存儲(chǔ)卡或容納一個(gè)或多個(gè)非易失性只讀存儲(chǔ)器的程序包。所述計(jì)算機(jī)可讀介質(zhì)還可以是隨機(jī)存取存儲(chǔ)器或其他易失性可再寫(xiě)入存儲(chǔ)器。此外,所述計(jì)算機(jī)可讀介質(zhì)可以包括磁光介質(zhì)或光介質(zhì),例如用于捕捉載波信號(hào)、例如通過(guò)傳輸介質(zhì)傳達(dá)的信號(hào)的盤(pán)、帶、或其他存儲(chǔ)設(shè)備。電子郵件的數(shù)字文件附件、或其他自含信息檔案或檔案組可以被視為分布式介質(zhì),所述介質(zhì)可以是有形存儲(chǔ)介質(zhì)。所述計(jì)算機(jī)可讀介質(zhì)優(yōu)選是有形存儲(chǔ)介質(zhì)。相應(yīng)地,本公開(kāi)可以被認(rèn)為包括計(jì)算機(jī)可讀介質(zhì)或分布式介質(zhì)以及其他等效物和在其中可以存儲(chǔ)數(shù)據(jù)或指令的后續(xù)介質(zhì)中的任何一種或多種。
可替代地或另外,可以構(gòu)造專用硬件實(shí)施方案,例如專用集成電路、可編輯邏輯陣列和其他硬件設(shè)備,來(lái)實(shí)施在此描述的所述方法中的一種或多種??梢园ǘ鄠€(gè)不同實(shí)施例的裝置和系統(tǒng)的應(yīng)用程序可以廣義地包括各種各樣的電子系統(tǒng)和計(jì)算機(jī)系統(tǒng)。在此描述的一個(gè)或多個(gè)實(shí)施例可以使用兩個(gè)或更多特定的互連的硬件模塊或設(shè)備以及相關(guān)的控制信號(hào)和數(shù)據(jù)信號(hào)來(lái)實(shí)施多個(gè)功能,所述信號(hào)可以在所述模塊之間并且通過(guò)所述模塊傳送、或者作為專用集成電路的一部分。相應(yīng)地,本系統(tǒng)可以涵蓋軟件、固件、以及硬件實(shí)現(xiàn)方式。
在此描述的所述展示旨在提供對(duì)多個(gè)不同實(shí)施例的結(jié)構(gòu)的一般性理解。所述展示不旨在用作對(duì)利用在此描述的結(jié)構(gòu)或方法的裝置、處理器和系統(tǒng)的所有要素和特征的全面描述。本領(lǐng)域技術(shù)人員在查閱本公開(kāi)后將清楚許多其他的實(shí)施例??梢岳貌谋竟_(kāi)推導(dǎo)出其他的實(shí)施例,使得可以在不背離本公開(kāi)的范圍的情況下作出結(jié)構(gòu)上和邏輯上的替代和改變。此外,所述展示僅是表示性的并且可能不是按比例繪制的。所述展示中的某些比例可能被夸大,而其他比例可能被最小化。相應(yīng)地,本公開(kāi)和所述圖應(yīng)被視為展示性的而不是限制性的。
以上公開(kāi)的主題應(yīng)被視為展示性的而不是限制性的,并且所附權(quán)利要求書(shū)旨在覆蓋落入本說(shuō)明書(shū)的真正精神和范圍內(nèi)的所有這樣的修改、增強(qiáng)、和其他實(shí)施例。因此,在法律允許的最大程度上,將由對(duì)以下權(quán)利要求書(shū)及其等效物的最寬的可容許的理解來(lái)確定范圍,并且此范圍不應(yīng)由以上具體實(shí)施方式來(lái)限制或約束。