單元104 (或存儲器管理電路202)需立即執(zhí)行并且回應(yīng)主機(jī)系統(tǒng)1000,以避免逾時(shí)。在此,為回應(yīng)主機(jī)系統(tǒng)1000所執(zhí)行的程序的模式,稱為前景執(zhí)行模式。相對地,存儲器控制電路單元104(或存儲器管理電路202)也可在閑置下(即,未收到主機(jī)系統(tǒng)1000所傳送的指令)操作,例如,搬移數(shù)據(jù)等。在此,不是為了回應(yīng)主機(jī)系統(tǒng)1000所執(zhí)行的程序的模式,稱為背景執(zhí)行模式。
[0143]特別是,在本范例實(shí)施例中,在執(zhí)行清空操作以將數(shù)據(jù)寫入至實(shí)體程序化單元后,倘若寫入此數(shù)據(jù)的實(shí)體程序化單元為下實(shí)體程序化單元時(shí),存儲器控制電路單元104(或存儲器管理電路202)會在其對應(yīng)的上實(shí)體程序化單元寫入數(shù)據(jù),由此避免存儲于下實(shí)體程序化單元中的數(shù)據(jù)因?yàn)樯蠈?shí)體程序化單元的程序化錯誤而遺失。
[0144]圖16是根據(jù)本發(fā)明一范例實(shí)施例所示出的執(zhí)行清空操作將數(shù)據(jù)寫入至下實(shí)體程序化單元的示意圖。
[0145]請參照圖16,在執(zhí)行清空操作且數(shù)據(jù)D4、D5、D6及D7從緩沖存儲器208被寫入至一個作動實(shí)體抹除單元(例如,實(shí)體抹除單元410 (D))中空的實(shí)體程序化單元PBA (D-O)?PBA(D-3)的例子中,存儲器控制電路單元104(或存儲器管理電路202)會將預(yù)先設(shè)定的虛構(gòu)數(shù)據(jù)(dummy data) DD寫入至對應(yīng)下實(shí)體程序化單元PBA(D-1)的上實(shí)體程序化單元PBA (D-4)、下實(shí)體程序化單元PBA (D-5)、對應(yīng)下實(shí)體程序化單元PBA (D-3)的上實(shí)體程序化單元PBA(D-6),其中上實(shí)體程序化單元PBA(D-6)與下實(shí)體程序化單元PBA(D-3)是由同一條字線(以下稱為第一字線)上的存儲單元所構(gòu)成,上實(shí)體程序化單元PBA(D-4)是由相鄰于第一字線的一條字線(以下稱為第二字線)上的存儲單元所構(gòu)成,而下實(shí)體程序化單元ΡΒΑΦ-5)是由相鄰于第一字線的另一條字線(以下稱為第三字線)上的存儲單元所構(gòu)成。在此例子,倘若在將虛構(gòu)數(shù)據(jù)DD程序化至實(shí)體程序化單元PBA (D-4)或?qū)嶓w程序化單元ΡΒΑΦ-6)過程中發(fā)生程序化錯誤而造成存儲于實(shí)體程序化單元PBA(D-1)中的數(shù)據(jù)D5或存儲于實(shí)體程序化單元PBA (D-3)中的數(shù)據(jù)D7遺失時(shí),由于緩沖存儲器208中的數(shù)據(jù)D5與數(shù)據(jù)D7尚未被刪除,因此,存儲器控制電路單元104 (或存儲器管理電路202)可回復(fù)數(shù)據(jù)D5與數(shù)據(jù)D7。反之,在虛構(gòu)數(shù)據(jù)DD被成功地程序化至實(shí)體程序化單元PBA (D-4)與實(shí)體程序化單元ΡΒΑΦ-6)之后,數(shù)據(jù)D5與數(shù)據(jù)D7將不會因?qū)嶓w程序化單元PBA(D-4)與實(shí)體程序化單元PBA (D-6)的程序化失敗而遺失,因此,存儲器控制電路單元104 (或存儲器管理電路202)可將緩沖存儲器208中的數(shù)據(jù)D5與數(shù)據(jù)D7刪除,以完成清空操作。
[0146]必須了解的是,在圖16所述的例子中,由于在實(shí)體抹除單元中的實(shí)體程序化單元的排列順序(如圖9所示),使得在執(zhí)行清空操作時(shí),存儲器控制電路單元104(或存儲器管理電路202)需在兩個上實(shí)體程序化單元中寫入虛構(gòu)數(shù)據(jù)。然而,本發(fā)明不限于此。例如,在實(shí)體抹除單元中的下實(shí)體程序化單元與上實(shí)體程序化單元的排列順序?yàn)閷ΨQ(如圖17所示)時(shí),存儲器控制電路單元104(或存儲器管理電路202)在執(zhí)行清空操作時(shí)可只需在一個上實(shí)體程序化單元中寫入虛構(gòu)數(shù)據(jù)。
[0147]圖18是根據(jù)本發(fā)明另一范例實(shí)施例所示出的執(zhí)行清空操作將數(shù)據(jù)寫入至下實(shí)體程序化單元的示意圖。
[0148]請參照圖18,在如圖17的實(shí)體程序化單元的排列順序的例子中,倘若在行清空操作時(shí)數(shù)據(jù)D4、D5、D6從緩沖存儲器208被寫入至實(shí)體抹除單元410(D)中空的實(shí)體程序化單元PBA(D-O)?ΡΒΑΦ-2)時(shí),存儲器控制電路單元104(或存儲器管理電路202)僅需將預(yù)先設(shè)定的虛構(gòu)數(shù)據(jù)DD寫入至對應(yīng)下實(shí)體程序化單元PBA(D-2)的上實(shí)體程序化單元PBA (D-3)。
[0149]圖19是根據(jù)本發(fā)明一范例實(shí)施例所示出的數(shù)據(jù)存儲方法的流程圖。
[0150]請參照圖19,在步驟S1901中,存儲器控制電路單元104 (或存儲器管理電路202)會判斷是否持續(xù)一預(yù)定時(shí)間未從主機(jī)系統(tǒng)1000接收到數(shù)據(jù)。若否,則步驟S1901會反復(fù)被執(zhí)行。
[0151]倘若持續(xù)一預(yù)定時(shí)間未從主機(jī)系統(tǒng)1000接收到數(shù)據(jù)時(shí),在步驟S1903中,存儲器控制電路單元104(或存儲器管理電路202)會啟動一清空操作,以從緩沖存儲器208中將數(shù)據(jù)(以下稱為第一數(shù)據(jù))寫入至作動實(shí)體抹除單元(以下稱為第一實(shí)體抹除單元)的空實(shí)體程序化單元(以下稱為第一實(shí)體程序化單元)中。
[0152]之后,在步驟S1905中,存儲器控制電路單元104(或存儲器管理電路202)會判斷第一實(shí)體抹除單元的第一實(shí)體程序化單元是否為下實(shí)體程序化單元。倘若第一實(shí)體抹除單元的第一實(shí)體程序化單元為下實(shí)體程序化單元時(shí),在步驟S1907中,存儲器控制電路單元104(或存儲器管理電路202)會將一數(shù)據(jù)(以下稱為第二數(shù)據(jù))寫入至第一實(shí)體抹除單元中由構(gòu)成第一實(shí)體抹除單元的相同存儲單元所形成的上實(shí)體程序化單元(以下稱為第二實(shí)體程序化單元)中。
[0153]倘若第一實(shí)體抹除單元的第一實(shí)體程序化單元非為下實(shí)體程序化單元時(shí),則在清空操作會被完成并且步驟S1901會被執(zhí)行。
[0154]值得一提的是,在圖17的流程圖中,在從緩沖存儲器208將數(shù)據(jù)搬移至可復(fù)寫式非易失性存儲器模塊106后,存儲器控制電路單元104(或存儲器管理電路202)會立即執(zhí)行判斷用于寫入清空操作所指示的數(shù)據(jù)的實(shí)體程序化單元是否為下實(shí)體程序化單元的操作,由此決定是否執(zhí)行對上實(shí)體程序化單元寫入數(shù)據(jù)的操作。然而,由于在搬移數(shù)據(jù)之后,緩沖存儲器208也可能又從主機(jī)系統(tǒng)1000中接收到新的寫入指令與寫入數(shù)據(jù),因此,存儲器控制電路單元104 (或存儲器管理電路202)可將此新的寫入數(shù)據(jù)寫入至對應(yīng)的下實(shí)體程序化單元(即,上述之第一實(shí)體抹除單元的第三實(shí)體程序化單元)。基此,在本發(fā)明另一范例實(shí)施例中,存儲器控制電路單元104 (或存儲器管理電路202)會搬移數(shù)據(jù)之后啟動一計(jì)時(shí)器,并且在計(jì)時(shí)器計(jì)時(shí)超過一預(yù)設(shè)延遲時(shí)間后,存儲器控制電路單元104(或存儲器管理電路202)才會執(zhí)行判斷用于寫入清空操作所指示的數(shù)據(jù)的實(shí)體程序化單元是否為下實(shí)體程序化單元的操作,由此決定是否執(zhí)行對上實(shí)體程序化單元寫入數(shù)據(jù)的操作。在此,預(yù)設(shè)延遲時(shí)間可根據(jù)需求適當(dāng)?shù)卦O(shè)定,在此不作限制。
[0155]必須了解的是,在執(zhí)行清空操作時(shí)除了將虛構(gòu)數(shù)據(jù)寫入至對應(yīng)的上實(shí)體程序化單元之外,在本發(fā)明另一范例實(shí)施例中,存儲器控制電路單元104 (或存儲器管理電路202)也可將屬于某個邏輯頁面的有效數(shù)據(jù)寫入至對應(yīng)的上實(shí)體程序化單元,由此可一并執(zhí)行數(shù)據(jù)合并的操作,避免實(shí)體程序化單元被無意義的使用。
[0156]具體來說,若在執(zhí)行清空操作之后需要在第一實(shí)體抹除單元的第一實(shí)體程序化單元對應(yīng)的第二實(shí)體程序化單元寫入數(shù)據(jù)時(shí),存儲器控制電路單元104(或存儲器管理電路202)會從映射數(shù)據(jù)區(qū)502的實(shí)體抹除單元之中選擇一個實(shí)體抹除單元(以下稱為第二實(shí)體抹除單元),將第二實(shí)體抹除單元的實(shí)體程序化單元(以下稱為第二實(shí)體抹除單元的第一實(shí)體程序化單元)內(nèi)的有效數(shù)據(jù)復(fù)制到第一實(shí)體抹除單元的第二實(shí)體程序化單元,并且將第二實(shí)體抹除單元的第一實(shí)體程序化單元標(biāo)記為無效。特別是,倘若在將第二實(shí)體抹除單元的第一實(shí)體程序化單元標(biāo)記為無效之后,第二實(shí)體抹除單元已無存有有效數(shù)據(jù)時(shí),存儲器控制電路單元104 (或存儲器管理電路202)還可直接對第二實(shí)體抹除單元執(zhí)行抹除操作,并且將抹除后的第二實(shí)體抹除單元從數(shù)據(jù)區(qū)502關(guān)聯(lián)回閑置區(qū)504,由此一并執(zhí)行數(shù)據(jù)合并操作。
[0157]基于上述,在本范例實(shí)施例的數(shù)據(jù)存儲方法、存儲器控制電路單元與存儲器存儲裝置,會在執(zhí)行清空操作并將數(shù)據(jù)寫入至下實(shí)體程序化單元時(shí)一并對上實(shí)體程序化單元寫入數(shù)據(jù),由此可避免在執(zhí)行清空操作中寫入至可復(fù)寫式非易失性存儲器模塊106內(nèi)的數(shù)據(jù)因其他實(shí)體程序化單元的程序化而遺失。此外,在本范例實(shí)施例的數(shù)據(jù)存儲方法、存儲器控制電路單元與存儲器存儲裝置,會在執(zhí)行清空操作時(shí)一并執(zhí)行數(shù)據(jù)合并操作,由此避免實(shí)體程序化單元被無意義的使用。
[0158]最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
【主權(quán)項(xiàng)】
1.一種數(shù)據(jù)存儲方法,用于在一可復(fù)寫式非易失性存儲器模塊中存儲數(shù)據(jù),其中該可復(fù)寫式非易失性存儲器模塊具有多個實(shí)體抹除單元,每一該些實(shí)體抹除單元具有多個實(shí)體程序化單元,且該些實(shí)體程序化單元包括多個下實(shí)體程序化單元與多個上實(shí)體程序化單元,其特征在于,該數(shù)據(jù)存儲方法包括: 在一緩沖存儲器中暫存一第一數(shù)據(jù); 啟動一清空操作,以從該緩沖存儲器中將該第一數(shù)據(jù)寫入至該些實(shí)體抹除單元之中的一第一實(shí)體抹除單元的一第一實(shí)體程序化單元中; 在將該第一數(shù)據(jù)寫入至該第一實(shí)體抹除單元的該第一實(shí)體程序化單元之后,判斷該第一實(shí)體抹除單元的該第一實(shí)體程序化單元是否為該些下實(shí)體程序化單元的其中之一;以及倘若該第一實(shí)體抹除單元的該第一實(shí)體程序化單元為該些下實(shí)體程序化單元的其中之一時(shí),將一第二數(shù)據(jù)寫入至該第一實(shí)體抹除單元的一第二實(shí)體程序化單元, 其中該第一實(shí)體抹除單元的該第二實(shí)體程序單元屬于該些上實(shí)體程序化單元的其中之一且該第一實(shí)體抹除單元的該第二實(shí)體程序化單元與該第一實(shí)體抹除單元的第一實(shí)體程序化單元是由一第一字線上的多個存儲單元所構(gòu)成。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲方法,其特征在于,還包括判斷是否持續(xù)一預(yù)定時(shí)間未從一主機(jī)系統(tǒng)接收到一數(shù)據(jù), 其中上述啟動該清空操作以從該緩沖存儲器中將該第一數(shù)據(jù)寫入至該第一實(shí)體抹除單元的該第一實(shí)體程序化單元的步驟是在持續(xù)該預(yù)定時(shí)間未從該主機(jī)系統(tǒng)接收到任何數(shù)據(jù)時(shí)以一背景執(zhí)行模式來被執(zhí)行。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲方法,其特征在于,還包括: 在將該第一數(shù)據(jù)寫入至該第一實(shí)體抹除單元的該第一實(shí)體程序化單元之后,開始啟動一計(jì)時(shí)器, 其中上述判斷該第一實(shí)體程序化單元是否為該些下實(shí)體程序化單元的其中之一的步驟是在該計(jì)時(shí)器的值大于一預(yù)設(shè)延遲時(shí)間后被執(zhí)行。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲方法,其特征在于,該第二數(shù)據(jù)為一虛構(gòu)數(shù)據(jù)。
5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲方法,其特征在于,將該第二數(shù)據(jù)寫入至該第一實(shí)體抹除單元的該第二實(shí)體程序化單元的步驟包括: 從該些實(shí)體抹除單元之中的一第二實(shí)體抹除單元的一第一實(shí)體程序化單元中將該第二數(shù)據(jù)復(fù)制到該第一實(shí)體抹除單元的該第二實(shí)體程序化單元; 將原先映射至該第二實(shí)體抹除單元的該第一實(shí)體程序單元的一第一邏輯頁面重新映射至該第一實(shí)體抹除單元的該第二實(shí)體程序化單元;以及 將該第二實(shí)體抹除單元的該第一實(shí)體程序化單元的狀態(tài)標(biāo)記為一無效狀態(tài), 其中該第二數(shù)據(jù)為屬于該第一邏輯頁面的一有效數(shù)據(jù)。
6.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲方法,其特征在于,還包括: 從該主機(jī)系統(tǒng)中接收一第三數(shù)據(jù),其中該主機(jī)系統(tǒng)指示將該第三數(shù)據(jù)存儲至一第二邏輯頁面; 從該些實(shí)體抹除單元中選擇一第三實(shí)體抹除單元; 判斷該可復(fù)寫式非易失性存儲器模塊的存儲狀態(tài)是否符合一預(yù)設(shè)狀態(tài); 倘若該可復(fù)寫式非易失性存儲器模塊的存儲狀態(tài)符合該預(yù)設(shè)狀態(tài)時(shí),使用一第一寫入模式來將該第三數(shù)據(jù)寫入至該第三實(shí)體抹除單元的一第一實(shí)體程序化單元中,且將該第二邏輯頁面映射至該第三實(shí)體抹除單元的該第一實(shí)體程序化單元,其中在該第一寫入模式中該第三實(shí)體抹除單元的下實(shí)體程序化單元會被使用來寫入數(shù)據(jù)且該第三實(shí)體抹除單元的上實(shí)體程序化單元不會被用來寫入數(shù)據(jù);以及 倘若該可復(fù)寫式非易失性存儲器模塊的存儲狀態(tài)不符合該預(yù)設(shè)狀態(tài)時(shí),使用一第二寫入模式來將該第三數(shù)據(jù)寫入至該第三實(shí)體抹除單元的一第二實(shí)