固態(tài)儲存裝置及遭遇低電壓時的數(shù)據(jù)處理方法
【專利摘要】一種固態(tài)儲存裝置的數(shù)據(jù)處理方法,包括下列步驟:接收一主機(jī)的寫入數(shù)據(jù),并轉(zhuǎn)換為一待儲存數(shù)據(jù);比較一供應(yīng)電壓與一預(yù)設(shè)電壓;以及,當(dāng)該供應(yīng)電壓低于該預(yù)設(shè)電壓時,以強(qiáng)頁程式程序?qū)⒃摯齼Υ鏀?shù)據(jù)儲存于一多層晶胞閃存的一空白區(qū)域。
【專利說明】固態(tài)儲存裝置及遭遇低電壓時的數(shù)據(jù)處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是有關(guān)于一固態(tài)儲存裝置,且特別是有關(guān)于一種固態(tài)儲存裝置遭遇低電壓時的數(shù)據(jù)處理方法。
【背景技術(shù)】
[0002]眾所周知,固態(tài)儲存裝置(Solid State Drive, SSD)使用與非門閃存(NAND flashmemory)為主要儲存組件,而此類的儲存裝置為一種非揮發(fā)性(non-volatile)的內(nèi)存組件。也就是說,當(dāng)數(shù)據(jù)寫入閃存后,一旦系統(tǒng)電源關(guān)閉,數(shù)據(jù)仍保存在固態(tài)儲存裝置中。
[0003]基本上,閃存的每個晶胞(cell)中皆包含浮動閘晶體管(floating gatetransistor)。在程序(program)時是將熱載子(hot carrier)注入(inject)浮動閘晶體管的浮動閘極,而根據(jù)注入熱載子的數(shù)量即可改變浮動閘晶體管的臨限電壓(thresholdvoltage),并進(jìn)而決定該晶胞的儲存狀態(tài)。于抹除(erase)時是將熱載子退出(eject)浮動閘晶體管的浮動閘極。
[0004]閃存依據(jù)不同的設(shè)計,可分為單層晶胞(single-level cell,簡稱SLC)、與多層晶胞(mult1-level cell)。而多層晶胞可包括二層晶胞(double-level cell)、三層晶胞(triple-level cell)、四層晶胞(quadruple-level cell),或者更多層晶胞的閃存。
[0005]單層晶胞閃存的特性為訪問速度快、價格貴、可抹除次數(shù)約為數(shù)萬次以上,但是一個晶胞(cell)僅可儲存I位的數(shù)據(jù)。三層晶胞閃存的特性為訪問速度慢、價格便宜、可抹除次數(shù)約為I千次以下,但是一個晶胞可儲存3位的數(shù)據(jù)。而二層晶胞閃存的特性介于單層晶胞閃存與三層晶胞閃存之間,訪問速度與價格一般、可抹除次數(shù)約為I千至5千次之間,而一個晶胞可儲存2位的數(shù)據(jù)。換句話說,由相同晶胞數(shù)目所組成的閃存,三層晶胞閃存將有最大的容量,單層晶胞閃存的容量最小。
[0006]請參照圖1,其所繪示為各種閃存中的儲存狀態(tài)與臨限電壓的關(guān)系示意圖。單層晶胞(SLC)閃存中,每個晶胞可儲存一位的數(shù)據(jù)(lbit/cell)。因此,根據(jù)熱載子的注入量,晶胞中的浮動閘晶體管可產(chǎn)生二種臨限電壓分布,用以代表二種相異的儲存狀態(tài)。舉例來說,具備低臨限電壓的晶胞,其可視為儲存狀態(tài)“O”;具備高臨限電壓的晶胞,其可視為儲存狀態(tài)“ I ”。當(dāng)然,此處的儲存狀態(tài)“O”與儲存狀態(tài)“ I ”僅是表示相異的二個儲存狀態(tài),當(dāng)然也可以用第一儲存狀態(tài)與第二儲存狀態(tài)來表示。舉例來說,臨限電壓在OV附近的晶胞,其可視為第一儲存狀態(tài);臨限電壓在IV附近的晶胞,其可視為第二儲存狀態(tài)。
[0007]同理,雙層晶胞閃存中,每個晶胞可儲存二位的數(shù)據(jù)(2bits/cell)。因此,根據(jù)熱載子的注入量,晶胞中的浮動閘晶體管可產(chǎn)生四種臨限電壓分布,用以代表四種相異的儲存狀態(tài)。例如,臨限電壓由低至高依序為儲存狀態(tài)“ 00 ”、儲存狀態(tài)“ OI ”、儲存狀態(tài)“ 10 ”與儲存狀態(tài)“I I”。
[0008]三雙層晶胞閃存中,每個晶胞可儲存三位的數(shù)據(jù)(3bits/cell)。因此,根據(jù)熱載子的注入量,晶胞中的浮動閘晶體管可產(chǎn)生八種臨限電壓分布,用以代表八種相異的儲存狀態(tài)。例如,臨限電壓由低至高依序為儲存狀態(tài)“000”、儲存狀態(tài)“001”、儲存狀態(tài)“010”、儲存狀態(tài)“011 ”、儲存狀態(tài)“ 10 ”、儲存狀態(tài)“101 ”、儲存狀態(tài)“110”與儲存狀態(tài)“111”。
[0009]四層晶胞閃存中,每個晶胞可儲存四位的數(shù)據(jù)(4bits/cell)。因此,根據(jù)熱載子的注入量,晶胞中的浮動閘晶體管可產(chǎn)生十六種臨限電壓分布,用以代表十六種相異的儲存狀態(tài)。例如,臨限電壓由低至高依序為儲存狀態(tài)“0000”、儲存狀態(tài)“0001”、儲存狀態(tài)“ 0010”、儲存狀態(tài)“0011 ”、儲存狀態(tài)“0100 ”、儲存狀態(tài)“0101”、儲存狀態(tài)“0110”、儲存狀態(tài)“0111”、儲存狀態(tài)“1000”、儲存狀態(tài)“1001”、儲存狀態(tài)“1010”、儲存狀態(tài)“1011”、儲存狀態(tài)"1100 ”、儲存狀態(tài)“1101”、儲存狀態(tài)“1110”與儲存狀態(tài)“1111”。
[0010]由以上說明可知,在閃存程序時,控制晶胞的載子注入量,即可改變晶胞的臨限電壓并更改其儲存狀態(tài)。然而,除了單層晶胞閃存在程序時,僅需進(jìn)行一次程式程序(programprocedure)即可以達(dá)到想要的儲存狀態(tài)。而其他多層晶胞快閃記憶則需要進(jìn)行多次程式程序才可以到達(dá)想要的儲存狀態(tài)。
[0011]以三層晶胞閃存為例來作說明。請參照圖2A,其所繪示為將三層晶胞閃存程序為“100”儲存狀態(tài)的流程示意圖。假設(shè)欲將三層晶胞閃存程序為“100”儲存狀態(tài)時,需要進(jìn)行三次程式程序。于第一次程式程序時,提供一第一程序電壓(program voltage),并改變?yōu)椤?11”儲存狀態(tài)。接著,于第二次程式程序時,再提供一第二程序電壓用以改變?yōu)椤?01”儲存狀態(tài)。最后,于第三次程式程序時,再提供一第三程序電壓用以改變?yōu)椤?100 ”儲存狀態(tài)。
[0012]由以上說明可知,需要先知道最終的儲存狀態(tài),才來決定三層晶胞閃存要如何進(jìn)行三次程式程序。如圖2A中的虛線所示,假設(shè)欲將三層晶胞閃存程序為“011”儲存狀態(tài)時,需要先程序為“000”儲存狀態(tài),接著程序為“010”儲存狀態(tài),最后程序為“011”儲存狀態(tài)。而其他儲存狀態(tài)的三次程式程序也可以依此類推,不再贅述。
[0013]由以上說明可知,三層晶胞閃存在第一次程式程序后,僅能區(qū)別出二種相異的儲存狀態(tài);在第二次程式程序后,能區(qū)別出四種相異的儲存狀態(tài);而在第三次程式程序后,才可以完整的區(qū)別出八種相異的儲存狀態(tài)。
[0014]另外,如圖2B所示,將二層晶胞閃存程序為各種儲存狀態(tài)則需要二個程式程序。同理,四層晶胞閃存需進(jìn)行四次程式程序。
[0015]再者,多層晶胞閃存每次程式程序所耗費的程序時間(p1gram time)也不相同。以三層晶胞閃存為例,第一次程式程序的時間最短,約為Ims左右;第二次程式程序的時間會超過2.5ms ;第三次程式程序最長約為7.0ms。
[0016]總結(jié)來說,多層晶胞閃存的層數(shù)越多,需要執(zhí)行越多的程式程序來改變至特定的儲存狀態(tài),并且總程序時間也越長。再者,第一次程式程序的程序時間最短,最后一次程式程序的時間最長。
[0017]請參照圖3,其所繪示為公知固態(tài)儲存裝置的示意圖。固態(tài)儲存裝置300中包括一控制單元301、一緩沖單元307與一閃存305??刂茊卧?01連接至緩沖單元307與閃存305。再者,控制單元301利用一外部總線310與主機(jī)(host) 320之間進(jìn)行指令與數(shù)據(jù)的傳遞?;旧?,當(dāng)主機(jī)320提供寫入數(shù)據(jù)欲寫入閃存305時,控制單元301會先進(jìn)行ECC編碼程序,并且將編碼后的待儲存數(shù)據(jù)暫存于緩沖單元307。之后,控制單元301會適時的將待儲存數(shù)據(jù)記錄于閃存305。其中,緩沖單元307為SRAM或者DRAM,其暫存的所有數(shù)據(jù)會隨著供應(yīng)電源消失而不見;外部總線310可為USB總線、IEEE1394總線或SATA總線等等,而閃存305可為單層晶胞或多層晶胞閃存。
[0018]眾所周知,固態(tài)儲存裝置300的控制單元301寫入數(shù)據(jù)時是以頁(page)為單位寫入閃存305。頁的大小可由閃存制造商來定義,舉例來說每一頁可為2K bytes、4K bytes或者8K bytes。以4K bytes頁為例,待寫入數(shù)據(jù)報括:用戶數(shù)據(jù)、編碼數(shù)據(jù)與其他相關(guān)數(shù)據(jù),總共為4224bytes。亦即,如果利用單層晶胞閃存來儲存一個4K bytes頁的數(shù)據(jù),則需要(4224X8)個晶胞來儲存。
[0019]由于多層晶胞閃存的數(shù)據(jù)密度較高,所以(4224X8)個晶胞的二層晶胞閃存可以儲存二個頁的數(shù)據(jù)。同理,(4224X8)個晶胞的三層晶胞閃存可以儲存三個頁的數(shù)據(jù);(4224X8)個晶胞的四層晶胞閃存可以儲存四個頁的數(shù)據(jù)。
[0020]請參照圖4A與圖4B,其所繪示為利用二層晶胞閃存來儲存二個頁的示意圖。以第一個字節(jié)(Byte-1)為例,假設(shè)第M頁的第一個字節(jié)的寫入數(shù)據(jù)為0X65h(01100101b),第N頁的第一個字節(jié)的寫入數(shù)據(jù)為OXDBh(llOllOllb)。如圖4A所示,于第一次程式程序時,是將第M頁的第一個字節(jié)的寫入數(shù)據(jù)(OllOOlOlb)程序至二層晶胞閃存的8個晶胞中。完成后,8 個晶胞的儲存狀態(tài)依序為 “ 00 ”、“ 11”、“ 11 ”、“ 00 ”、“ 00 ”、“ 11 ”、“ 00 ”、“11”。
[0021]如圖4B所示,于第二次程式程序時,再將第N頁的第一個字節(jié)的寫入數(shù)據(jù)(IlOllOllb)程序至二層晶胞閃存的8個晶胞中。完成后,8個晶胞的儲存狀態(tài)更改為“01”、“ 11 ”、“ 10 ”、“ OI ”、“ OI ”、“ 10 ”、“ OI ”、“11”。
[0022]由上述的說明可知,于第一次程式程序后,(4224X8)個晶胞的二層晶胞閃存僅能夠儲存第M頁第一字節(jié)的數(shù)據(jù)。而必須再次進(jìn)行第二次程式程序之后,(4224X8)個晶胞的二層晶胞閃存才夠同時儲存第M頁以及第N頁的第一字節(jié)數(shù)據(jù)。
[0023]根據(jù)多層晶胞閃存的規(guī)格書的定義,第一次程式程序所寫入的頁,稱為強(qiáng)頁(strong page),而第二次程式程序之后所寫入的頁,稱為弱頁(weak page)。換句話說,多層晶胞閃存于寫入數(shù)據(jù)時必須先進(jìn)行強(qiáng)頁的程式程序;接著繼續(xù)進(jìn)行弱頁的程式程序。以二層晶胞閃存為例,利用(4224X8)的晶胞來儲存二個頁的總程序時間為3.5ms (lms+2.5ms)。
[0024]請參照圖5,其所繪示為公知由多層晶胞閃存所組成的固態(tài)儲存裝置的數(shù)據(jù)寫入方法流程圖。當(dāng)固態(tài)儲存裝置電源開啟后,即可接收主機(jī)傳送的寫入數(shù)據(jù)并轉(zhuǎn)換為待儲存數(shù)據(jù)(步驟S502)。接著,于閃存中的一空白區(qū)域先進(jìn)行強(qiáng)頁的程式程序(步驟S504),之后進(jìn)行弱頁的程式程序(步驟S506)。當(dāng)所有程式程序(步驟S504與步驟S506)完成后即完成整個數(shù)據(jù)寫入動作,此時再次回到接收主機(jī)傳送寫入數(shù)據(jù)(步驟S502)的步驟,以進(jìn)行其他頁的寫入動作。其中,閃存中的一空白區(qū)域包括:尚未寫入數(shù)據(jù)的區(qū)域或者是已經(jīng)抹除完成的區(qū)域。
[0025]再者,執(zhí)行上述弱頁的程式程序(步驟S506)的次數(shù),需要根據(jù)多層晶胞閃存的層數(shù)來決定。若為二層晶胞閃存時,即進(jìn)行一次弱頁的程式程序即可回到步驟S502。若為三層晶胞閃存時,則需連續(xù)進(jìn)行二次弱頁的程式程序才可回到步驟S502 ;若為四層晶胞閃存時,則需連續(xù)進(jìn)行三次弱頁的程式程序才可回到步驟S502。
[0026]在正常的供電狀況下,固態(tài)儲存裝置中的控制單元是根據(jù)圖5的流程,將數(shù)據(jù)以頁為單位寫入多層晶胞閃存。然而,當(dāng)固態(tài)儲存裝置的電源在沒有預(yù)期的下被關(guān)閉時,上述數(shù)據(jù)寫入方式可能由于總程序時間過長,而無法完成數(shù)據(jù)寫入動作,造成寫入動作失敗、寫入數(shù)據(jù)錯誤或者寫入數(shù)據(jù)遺失的情況發(fā)生。
【發(fā)明內(nèi)容】
[0027]本發(fā)明的目的在于提供一種固態(tài)儲存裝置及遭遇低電壓時的數(shù)據(jù)處理方法,以改進(jìn)公知技術(shù)中存在的缺陷。
[0028]為實現(xiàn)上述目的,本發(fā)明提供的固態(tài)儲存裝置,連接至一主機(jī),包括:
[0029]一控制單元,接收該主機(jī)的一寫入數(shù)據(jù),并且轉(zhuǎn)換為一待儲存數(shù)據(jù);
[0030]一緩沖單元,暫存該待儲存數(shù)據(jù);
[0031]一多層晶胞閃存,連接至該控制單元;以及
[0032]一電壓偵測單元,接收一供應(yīng)電壓,當(dāng)該供應(yīng)電壓低于一預(yù)設(shè)電壓時,產(chǎn)生一通知信號至該控制單元;
[0033]其中,當(dāng)該控制單元接收到該通知信號時,以一強(qiáng)頁程式程序?qū)⒃摯齼Υ鏀?shù)據(jù)儲存于該多層晶胞閃存的一空白區(qū)域。
[0034]所述的固態(tài)儲存裝置,其中,當(dāng)該控制單元未接收到該通知信號時,依序進(jìn)行該強(qiáng)頁程式程序以及一弱頁程式程序,以將該待儲存數(shù)據(jù)儲存于該多層晶胞閃存。
[0035]所述的固態(tài)儲存裝置,其中,該多層晶胞閃存為一二層晶胞閃存、一三層晶胞閃存或者一四層晶胞閃存。
[0036]所述的固態(tài)儲存裝置,其中,執(zhí)行該強(qiáng)頁程式程序后,該空白區(qū)域中的每個晶胞僅能區(qū)別出二種儲存狀態(tài)。
[0037]本發(fā)明提供的固態(tài)儲存裝置的數(shù)據(jù)處理方法,包括下列步驟:
[0038]接收一主機(jī)的寫入數(shù)據(jù),并轉(zhuǎn)換為一待儲存數(shù)據(jù);
[0039]比較一供應(yīng)電壓與一預(yù)設(shè)電壓;以及
[0040]當(dāng)該供應(yīng)電壓低于該預(yù)設(shè)電壓時,以一強(qiáng)頁程式程序?qū)⒃摯齼Υ鏀?shù)據(jù)儲存于一多層晶胞閃存的一空白區(qū)域。
[0041]所述的數(shù)據(jù)處理方法,其中,包括當(dāng)該供應(yīng)電壓未低于該預(yù)設(shè)電壓時,依序進(jìn)行該強(qiáng)頁程式程序以及一弱頁程式程序,以將該待儲存數(shù)據(jù)儲存于該多層晶胞閃存。
[0042]所述的數(shù)據(jù)處理方法,其中,該多層晶胞閃存為一二層晶胞閃存、一三層晶胞閃存、或者一四層晶胞閃存。
[0043]所述的數(shù)據(jù)處理方法,其中,執(zhí)行該強(qiáng)頁程式程序后,該空白區(qū)域中的每個晶胞僅能區(qū)別出二種儲存狀態(tài)。
[0044]本發(fā)明提供的固態(tài)儲存裝置及遭遇低電壓時的數(shù)據(jù)處理方法,確實可以降低總程序時間。
【專利附圖】
【附圖說明】
[0045]圖1所繪示為各種閃存中的儲存狀態(tài)與臨限電壓的關(guān)系示意圖。
[0046]圖2A所繪示為將三層晶胞閃存程序為“100”儲存狀態(tài)的流程示意圖。
[0047]圖2B所示為將二層晶胞閃存程序為各種儲存狀態(tài)的流程示意圖。
[0048]圖3所繪示為公知固態(tài)儲存裝置的示意圖。
[0049]圖4A圖與圖4B所繪示為利用二層晶胞閃存來儲存二個頁的示意圖。
[0050]圖5其所繪示為公知由多層晶胞閃存所組成的固態(tài)儲存裝置的數(shù)據(jù)寫入方法流程圖。
[0051]圖6所繪示為本發(fā)明固態(tài)儲存裝置的示意圖。
[0052]圖7所繪示為固態(tài)儲存裝置的供電系統(tǒng)突然斷電時供應(yīng)電壓變化示意圖。
[0053]圖8所繪示為本發(fā)明的固態(tài)儲存裝置的數(shù)據(jù)寫入方法流程圖。
[0054]附圖中符號說明:
[0055]300固態(tài)儲存裝置;301控制單元;305閃存;307緩沖單元;310外部總線;320主機(jī);600固態(tài)儲存裝置;601控制單元;603電壓偵測單元;605多層晶胞閃存;607緩沖單元;610外部總線;620主機(jī)。
【具體實施方式】
[0056]本發(fā)明是有關(guān)于一種固態(tài)儲存裝置,連接至一主機(jī),包括:一控制單元,接收該主機(jī)的一寫入數(shù)據(jù),并且轉(zhuǎn)換為一待儲存數(shù)據(jù);一緩沖單元,暫存該待儲存數(shù)據(jù);一多層晶胞閃存,連接至該控制單元;以及一電壓偵測單元,接收一供應(yīng)電壓,當(dāng)該供應(yīng)電壓低于一預(yù)設(shè)電壓時,產(chǎn)生一通知信號至該控制單元;其中,當(dāng)該控制單元接收到該通知信號時,以強(qiáng)頁程式程序?qū)⒃摯齼Υ鏀?shù)據(jù)儲存于該多層晶胞閃存的一空白區(qū)域。
[0057]本發(fā)明還提出一種固態(tài)儲存裝置的數(shù)據(jù)處理方法,包括下列步驟:接收一主機(jī)的寫入數(shù)據(jù),并轉(zhuǎn)換為一待儲存數(shù)據(jù);比較一供應(yīng)電壓與一預(yù)設(shè)電壓;以及,當(dāng)該供應(yīng)電壓低于該預(yù)設(shè)電壓時,以強(qiáng)頁程式程序?qū)⒃摯齼Υ鏀?shù)據(jù)儲存于一多層晶胞閃存的一空白區(qū)域。
[0058]為了對本發(fā)明的上述及其他方面有更佳的了解,下文特舉較佳實施例,并配合附圖作詳細(xì)說明如下:
[0059]請參照圖6,其所繪示為本發(fā)明固態(tài)儲存裝置的示意圖。固態(tài)儲存裝置600中包括一控制單元601、一電壓偵測單元603、一緩沖單元607與一多層晶胞閃存605??刂茊卧?01連接至緩沖單元607與多層晶胞閃存605。于一供電系統(tǒng)正常提供一供應(yīng)電壓(Vs)時,固態(tài)儲存裝置600的所有組件即能夠正常的運作,其中此供電系統(tǒng)可為一外部電源供應(yīng)器(未繪示),或者是主機(jī)602內(nèi)部的電源供應(yīng)器。
[0060]再者,控制單元601利用一外部總線610與主機(jī)620之間進(jìn)行指令與數(shù)據(jù)的傳遞?;旧?,當(dāng)主機(jī)620提供寫入數(shù)據(jù)欲寫入多層晶胞閃存605時,控制單元601會先進(jìn)行ECC編碼程序,并且將編碼后的待儲存數(shù)據(jù)暫存于緩沖單元607。之后,控制單元601會適時的將待儲存數(shù)據(jù)記錄于多層晶胞閃存605。其中,緩沖單元607為SRAM或者DRAM,其暫存的所有數(shù)據(jù)會隨著供應(yīng)電壓消失而不見;外部總線610可為USB總線、IEEE1394總線或SATA
> Qi' ^Xiο
[0061]根據(jù)本發(fā)明的實施例,固態(tài)儲存裝置600中的電壓偵測單元603接收并偵測供應(yīng)電壓(Vs)。根據(jù)本發(fā)明的實施例,控制單元601與電壓偵測單元603為分開的二個組件。當(dāng)然,電壓偵測單元603也可以整合于控制單元601內(nèi),并且執(zhí)行相同的偵測動作。
[0062]當(dāng)供應(yīng)電壓(Vs)低于一預(yù)設(shè)電壓(Vdet)時,電壓偵測單元603即產(chǎn)生一通知信號(D)至控制單元601,使得控制單元601執(zhí)行一緊急寫入動作,將待儲存數(shù)據(jù)寫入多層晶胞閃存605。換句話說,當(dāng)供電系統(tǒng)正常提供一高于預(yù)設(shè)電壓(Vdet)的供應(yīng)電壓(Vs)時,固態(tài)儲存裝置600將待儲存數(shù)據(jù)寫入多層晶胞閃存605的方法相同于圖5,此處不再贅述。反之,當(dāng)供電系統(tǒng)提供的供應(yīng)電壓(Vs)低于一預(yù)設(shè)電壓(Vdet)時,固態(tài)儲存裝置600會執(zhí)行緊急寫入動作,以下詳細(xì)說明。
[0063]請參照圖7,其所繪示為固態(tài)儲存裝置的供電系統(tǒng)突然斷電時的供應(yīng)電壓變化示意圖。于時間點t0之前,供電電壓(Vs)的電壓值為Vcc。亦即,固態(tài)儲存裝置600接收正常的供應(yīng)電壓(Vs),并且正常運作。于時間點t0之后供電系統(tǒng)突然中斷,供應(yīng)電壓(Vs)由Vcc開始下降,直到時間點t3電壓值為O。
[0064]本發(fā)明的電壓偵測器603持續(xù)偵測供應(yīng)電壓(Vs)。當(dāng)供應(yīng)電壓(Vs)于時間點tl降低至預(yù)設(shè)電壓(Vdet)時,電壓偵測單元603即產(chǎn)生一通知信號(D)至控制單元601。當(dāng)供應(yīng)電壓(Vs)于時間點t2降低至一低電壓(Vmin)時,固態(tài)儲存裝置600已無法運作。
[0065]由以上說明可知,當(dāng)供電系統(tǒng)突然斷電時,于時間點tl時,控制單元601根據(jù)通知信號(D)來開始執(zhí)行一緊急寫入動作。并且,到達(dá)時間點t2時,控制單元601必需要將所有的待儲存數(shù)據(jù)寫入多層晶胞閃存605中,否則在緩沖單元607的待儲存數(shù)據(jù)將會遺失。
[0066]由于公知將待儲存數(shù)據(jù)寫入多層晶胞閃存的過程,需要依次進(jìn)行強(qiáng)頁的程式程序以及弱頁的程式程序。因此,當(dāng)停止提供供應(yīng)電壓或是供應(yīng)電壓過低時,如果繼續(xù)按照公知的程式程序?qū)⒋齼Υ鏀?shù)據(jù)寫入多層晶胞閃存,會造成總程序時間過長。本發(fā)明即針對此問題進(jìn)行修正,以降低總程序時間。
[0067]請參照圖8,其所繪示為本發(fā)明的固態(tài)儲存裝置的數(shù)據(jù)寫入方法流程圖。當(dāng)固態(tài)儲存裝置的電源開啟后,即可接收主機(jī)傳送的寫入數(shù)據(jù)并轉(zhuǎn)換為待儲存數(shù)據(jù)(步驟S802)。接著,判斷是否偵測出停止提供供應(yīng)電壓(步驟S804)。其中,本發(fā)明利用電壓偵測單元603來比較供應(yīng)電壓(Vs)與預(yù)設(shè)電壓(Vdet)之間的關(guān)系。當(dāng)供應(yīng)電壓(Vs)由Vcc下降到預(yù)設(shè)電壓(Vdet)時,電壓偵測單元603可偵測出供電系統(tǒng)此時提供較低的供應(yīng)電壓(Vs)。
[0068]當(dāng)供電系統(tǒng)正常提供供應(yīng)電壓(Vs)時,偵測單元603偵測出供應(yīng)電壓(Vs)大于預(yù)設(shè)電壓(Vdet)。此時的數(shù)據(jù)寫入動作與公知數(shù)據(jù)寫入動作相同。亦即,于多層晶胞閃存中的一空白區(qū)域先進(jìn)行強(qiáng)頁的程式程序(步驟S806),之后進(jìn)行弱頁的程式程序(步驟S808)。并且,當(dāng)所有程式程序(步驟S806與步驟S808)完成后,再次回到接收主機(jī)傳送寫入數(shù)據(jù)(步驟S802)的步驟。
[0069]本發(fā)明主要的技術(shù)特征在于,當(dāng)偵測單元603偵測出供電系統(tǒng)提供的供應(yīng)電壓(Vs)小于預(yù)設(shè)電壓(Vdet)時,將所有待儲存數(shù)據(jù)以強(qiáng)頁的程式程序儲存于空白區(qū)域(步驟S810)。換句話說,當(dāng)控制單元601確定供電系統(tǒng)提供的供應(yīng)電壓(Vs)小于預(yù)設(shè)電壓(Vdet)時,例如為供電系統(tǒng)停止供應(yīng)電壓或供電系統(tǒng)提供的電壓值不穩(wěn)定而低于預(yù)設(shè)電壓(Vdet)時,控制單元601會執(zhí)行一緊急寫入動作,以確保待儲存資料可以全部儲存于多層晶胞閃存605中。此時,控制單元601需要以最快的速度,將緩沖單元607中的待儲存數(shù)據(jù)儲存于多層晶胞閃存605中,例如在圖7中,于供應(yīng)電壓(Vs)降低至低電壓(Vmin)之前,亦即時間點tl至?xí)r間點t2之間,將待儲存數(shù)據(jù)儲存于多層晶胞閃存605。
[0070]由于強(qiáng)頁的程式程序所需的程序時間最短。本發(fā)明在電壓不足的情況下,僅利用強(qiáng)頁的程式程序,將所有的待儲存數(shù)據(jù)儲存于空白區(qū)域。因此,可在最短的總程序時間將所有的待儲存數(shù)據(jù)儲存于空白區(qū)域。再者,執(zhí)行該強(qiáng)頁程式程序后,該空白區(qū)域中的每個晶胞僅能區(qū)別出二種儲存狀態(tài)。因此,本發(fā)明需要更多的空白區(qū)域來儲存該待儲存數(shù)據(jù)。
[0071]以二層晶胞閃存為例,假設(shè)控制單元601執(zhí)行緊急寫入動作時,緩沖單元607中尚有二個頁的待儲存數(shù)據(jù)。此時,共需要[2X (4224X8)]個晶胞所組成的空白區(qū)域來儲存此二個頁的待儲存數(shù)據(jù)。亦即,第一頁的待儲存數(shù)據(jù)是以強(qiáng)頁的程式程序儲存于第一(4224X8)的晶胞;且第二頁的待儲存數(shù)據(jù)也是以強(qiáng)頁的程式程序儲存于另一(4224X8)的晶胞。如此,控制單元601儲存二個頁的總程序時間僅為2ms(lms+lms)。
[0072]相較于傳統(tǒng)固態(tài)儲存裝置利用(4224X8)的晶胞來儲存二個頁的總程序時間為
3.5ms (lms+2.5ms)。本發(fā)明在緊急寫入動作時,確實可以縮短總程序時間。
[0073]由以上說明可知,本發(fā)明提出一種固態(tài)儲存裝置遭遇低電壓時的數(shù)據(jù)處理方法。當(dāng)供電系統(tǒng)提供的供應(yīng)電壓不足時(低于預(yù)設(shè)電壓),固態(tài)儲存裝置執(zhí)行緊急寫入動作。此時,控制單元601將緩沖單元607中所有的待儲存數(shù)據(jù)以強(qiáng)頁的程式程序儲存于多層晶胞閃存的空白區(qū)域。因此,本發(fā)明可以在低電壓或斷電時快速地處理待儲存數(shù)據(jù),以節(jié)省總程序時間,并且防止因供應(yīng)電壓過低時無法完全處理完待儲存數(shù)據(jù)而導(dǎo)致待儲存數(shù)據(jù)遺失的缺點。
[0074]綜上所述,雖然本發(fā)明已以較佳實施例揭示如上,然其并非用以限定本發(fā)明。本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作各種的更動與潤飾。因此,本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以申請的權(quán)利要求范圍所界定的內(nèi)容為準(zhǔn)。
【權(quán)利要求】
1.一種固態(tài)儲存裝置,連接至一主機(jī),包括: 一控制單元,接收該主機(jī)的一寫入數(shù)據(jù),并且轉(zhuǎn)換為一待儲存數(shù)據(jù); 一緩沖單元,暫存該待儲存數(shù)據(jù); 一多層晶胞閃存,連接至該控制單元;以及 一電壓偵測單兀,接收一供應(yīng)電壓,當(dāng)該供應(yīng)電壓低于一預(yù)設(shè)電壓時,產(chǎn)生一通知信號至該控制單元; 其中,當(dāng)該控制單元接收到該通知信號時,以一強(qiáng)頁程式程序?qū)⒃摯齼Υ鏀?shù)據(jù)儲存于該多層晶胞閃存的一空白區(qū)域。
2.如權(quán)利要求1所述的固態(tài)儲存裝置,其中,當(dāng)該控制單元未接收到該通知信號時,依序進(jìn)行該強(qiáng)頁程式程序以及一弱頁程式程序,以將該待儲存數(shù)據(jù)儲存于該多層晶胞閃存。
3.如權(quán)利要求1所述的固態(tài)儲存裝置,其中,該多層晶胞閃存為一二層晶胞閃存、一三層晶胞閃存或者一四層晶胞閃存。
4.如權(quán)利要求1所述的固態(tài)儲存裝置,其中,執(zhí)行該強(qiáng)頁程式程序后,該空白區(qū)域中的每個晶胞僅能區(qū)別出二種儲存狀態(tài)。
5.一種固態(tài)儲存裝置的數(shù)據(jù)處理方法,包括下列步驟: 接收一主機(jī)的寫入數(shù)據(jù),并轉(zhuǎn)換為一待儲存數(shù)據(jù); 比較一供應(yīng)電壓與一預(yù)設(shè)電壓;以及 當(dāng)該供應(yīng)電壓低于該預(yù)設(shè)電壓時,以一強(qiáng)頁程式程序?qū)⒃摯齼Υ鏀?shù)據(jù)儲存于一多層晶胞閃存的一空白區(qū)域。
6.如權(quán)利要求5所述的數(shù)據(jù)處理方法,其中,包括當(dāng)該供應(yīng)電壓未低于該預(yù)設(shè)電壓時,依序進(jìn)行該強(qiáng)頁程式程序以及一弱頁程式程序,以將該待儲存數(shù)據(jù)儲存于該多層晶胞閃存。
7.如權(quán)利要求5所述的數(shù)據(jù)處理方法,其中,該多層晶胞閃存為一二層晶胞閃存、一三層晶胞閃存、或者一四層晶胞閃存。
8.如權(quán)利要求5所述的數(shù)據(jù)處理方法,其中,執(zhí)行該強(qiáng)頁程式程序后,該空白區(qū)域中的每個晶胞僅能區(qū)別出二種儲存狀態(tài)。
【文檔編號】G06F11/14GK104050107SQ201310077807
【公開日】2014年9月17日 申請日期:2013年3月12日 優(yōu)先權(quán)日:2013年3月12日
【發(fā)明者】張昆昌, 葉志偉, 李威漢 申請人:光寶科技股份有限公司