專利名稱:數(shù)據(jù)保護(hù)方法、存儲器控制器與存儲器儲存裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)保護(hù)方法,且特別是有關(guān)于一種用于保護(hù)儲存于可復(fù)寫式非易失性存儲器模塊的文件的數(shù)據(jù)保護(hù)方法及使用此方法的存儲器控制器與存儲器儲存裝置。
背景技術(shù):
數(shù)碼相機(jī)、移動電話與MP3播放器在這幾年來的成長十分迅速,使得消費(fèi)者對儲存媒體的需求也急速增加。由于非易失性存儲器(例如,閃速存儲器)具有數(shù)據(jù)非易失性、省電、體積小,以及無機(jī)械結(jié)構(gòu)等特性,所以非常適合內(nèi)建于上述所舉例的各種可攜式多媒體裝置中。此外,為了提供存儲器儲存裝置更多的附加價值,存儲器儲存裝置的制造商會于制造存儲器儲存裝置時,預(yù)先儲存一些特定應(yīng)用的文件,以供使用者或?qū)?yīng)的應(yīng)用程序存取。例如,提供使用者來設(shè)定或解除存儲器儲存裝置的保護(hù)密碼的程序會初始地預(yù)存于存儲器儲存裝置中。又例如,在存儲器儲存裝置配置有智能卡(Smart Card)芯片的應(yīng)用中,用以識別主機(jī)端所傳送的數(shù)據(jù)串是否為智能卡芯片的指令數(shù)據(jù)單元的通信文件會預(yù)存于存儲器儲存裝置中。然而,此些預(yù)存文件對于存儲器儲存裝置的使用來說相當(dāng)重要。倘若使用者誤刪此些文件時,存儲器儲存裝置將無法提供此些功能,甚至無法再被使用。因此,如何保護(hù)此些預(yù)存文件為此領(lǐng)域技術(shù)人員所欲解決的課題。
發(fā)明內(nèi)容
本發(fā)明提供一種數(shù)據(jù)保護(hù)方法、存儲器控制器與存儲器儲存裝置,其能夠有效地防止預(yù)設(shè)子目錄與預(yù)存文件被刪除。本發(fā)明一范例實(shí)施例提出一種數(shù)據(jù)保護(hù)方法,用于保護(hù)儲存在可復(fù)寫式非易失性存儲器模塊中的子目錄及此子目錄中的至少一預(yù)存文件,其中此可復(fù)寫式非易失性存儲器模塊具有多個實(shí)體區(qū)塊以及映射部分的實(shí)體區(qū)塊的多個邏輯區(qū)塊地址,并且此些邏輯區(qū)塊地址會被格式化成具有文件配置表區(qū)、根目錄區(qū)與文件區(qū)的分割區(qū)。本數(shù)據(jù)保護(hù)方法包括從主機(jī)系統(tǒng)接收寫入指令,其中此寫入指令指示一寫入地址。本數(shù)據(jù)保護(hù)方法還包括判斷此寫入地址是否為儲存此子目錄的文件描述區(qū)塊的地址。本數(shù)據(jù)保護(hù)方法也包括,當(dāng)此寫入地址為儲存子目錄的文件描述區(qū)塊的地址時,判斷對應(yīng)此寫入指令的數(shù)據(jù)串的其中一部分是否相同于記錄在此子目錄的文件描述區(qū)塊中的一對應(yīng)內(nèi)容。本數(shù)據(jù)保護(hù)方法還包括,當(dāng)對應(yīng)此寫入指令的數(shù)據(jù)串的其中一部分不相同于記錄在子目錄的文件描述區(qū)塊中的對應(yīng)內(nèi)容時,傳遞無法寫入信息給主機(jī)系統(tǒng)。在本發(fā)明的一實(shí)施例中,上述的數(shù)據(jù)保護(hù)方法還包括:當(dāng)此寫入地址非為儲存子目錄的文件描述區(qū)塊的地址時,判斷寫入地址是否為儲存預(yù)存文件的文件描述區(qū)塊的地址;當(dāng)此寫入地址為儲存預(yù)存文件的文件描述區(qū)塊的地址時,判斷對應(yīng)此寫入指令的數(shù)據(jù)串的其中一部分是否相同于記錄在預(yù)存文件的文件描述區(qū)塊中的一對應(yīng)內(nèi)容;以及當(dāng)對應(yīng)此寫入指令的該數(shù)據(jù)串的其中一部分不相同于記錄在預(yù)存文件的文件描述區(qū)塊中的對應(yīng)內(nèi)容時,傳遞無法寫入信息給該主機(jī)系統(tǒng)。在本發(fā)明的一實(shí)施例中,上述的傳遞無法寫入信息給主機(jī)系統(tǒng)的步驟包括:在完成接收對應(yīng)此寫入指令的一數(shù)據(jù)串之后,在一段預(yù)先定義時間期間持續(xù)輸出忙碌信號。在本發(fā)明的一實(shí)施例中,上述的傳遞無法寫入信息給主機(jī)系統(tǒng)的步驟包括:在一個回應(yīng)信息中設(shè)定對應(yīng)此寫入指令的錯誤位元并且將此回應(yīng)信息傳送給主機(jī)系統(tǒng)。本發(fā)明一范例實(shí)施例提出一種數(shù)據(jù)保護(hù)方法,用于保護(hù)儲存在可復(fù)寫式非易失性存儲器模塊中的子目錄及此子目錄中的至少一預(yù)存文件,其中此可復(fù)寫式非易失性存儲器模塊具有多個實(shí)體區(qū)塊以及映射部分的實(shí)體區(qū)塊的多個邏輯區(qū)塊地址,并且此些邏輯區(qū)塊地址會被格式化成具有文件配置表區(qū)、根目錄區(qū)與文件區(qū)的分割區(qū)。本數(shù)據(jù)保護(hù)方法包括從主機(jī)系統(tǒng)接收寫入指令,其中此寫入指令指示一寫入地址。本數(shù)據(jù)保護(hù)方法還包括判斷該寫入地址是否為儲存預(yù)存文件的文件描述區(qū)塊的地址。本數(shù)據(jù)保護(hù)方法也包括,當(dāng)此寫入地址為儲存預(yù)存文件的文件描述區(qū)塊的地址時,判斷對應(yīng)此寫入指令的數(shù)據(jù)串的其中一部分是否相同于記錄在預(yù)存文件的文件描述區(qū)塊中的對應(yīng)內(nèi)容。本數(shù)據(jù)保護(hù)方法還包括,當(dāng)對應(yīng)此寫入指令的數(shù)據(jù)串的其中一部分不相同于記錄在預(yù)存文件的文件描述區(qū)塊中的對應(yīng)內(nèi)容時,傳遞無法寫入信息給該主機(jī)系統(tǒng)。本發(fā)明另一范例實(shí)施例提出一種存儲器控制器,用于控制可復(fù)寫式非易失性存儲器模塊,其中此可復(fù)寫式非易失性存儲器模塊具有多個實(shí)體區(qū)塊。本存儲器控制器包括主機(jī)接口、存儲器接口與存儲器管理電路。主機(jī)接口用以電性連接至主機(jī)系統(tǒng)。存儲器接口用以電性連接至可復(fù)寫式非易失性存儲器模塊。存儲器管理電路電性連接主機(jī)接口與存儲器接口,并且用以配置多個邏輯區(qū)塊地址以映射部分的實(shí)體區(qū)塊,其中此些邏輯區(qū)塊地址會被格式化成具有文件配置表區(qū)、根目錄區(qū)與文件區(qū)的分割區(qū),根目錄區(qū)儲存對應(yīng)一個子目錄的文件描述區(qū)塊,并且此子目錄的文件描述區(qū)塊所記錄的簇儲存對應(yīng)至少一預(yù)存文件的至少一文件描述區(qū)塊。本存儲器管理電路從主機(jī)系統(tǒng)接收寫入指令,其中此寫入指令指示寫入地址。此外,存儲器管理電路判斷此寫入地址是否為儲存此子目錄的文件描述區(qū)塊的地址。當(dāng)寫入地址為儲存此子目錄的文件描述區(qū)塊的地址時,存儲器管理電路會判斷對應(yīng)此寫入指令的數(shù)據(jù)串的其中一部分是否相同于記錄在子目錄的文件描述區(qū)塊中的一對應(yīng)內(nèi)容。當(dāng)對應(yīng)此寫入指令的數(shù)據(jù)串的其中一部分不相同于記錄在子目錄的文件描述區(qū)塊中的對應(yīng)內(nèi)容時,存儲器管理電路傳遞無法寫入信息給主機(jī)系統(tǒng)。在本發(fā)明的一實(shí)施例中,當(dāng)此寫入地址非為儲存該子目錄的該文件描述區(qū)塊的地址時,存儲器管理電路判斷此寫入地址是否為儲存預(yù)存文件的文件描述區(qū)塊的地址。其中,當(dāng)此寫入地址為儲存預(yù)存文件的文件描述區(qū)塊的地址時,存儲器管理電路判斷對應(yīng)此寫入指令的數(shù)據(jù)串的其中一部分是否相同于記錄在預(yù)存文件的文件描述區(qū)塊中的一對應(yīng)內(nèi)容。當(dāng)對應(yīng)此寫入指令的數(shù)據(jù)串的其中一部分不相同于記錄在預(yù)存文件的文件描述區(qū)塊中的對應(yīng)內(nèi)容時,存儲器管理電路傳遞無法寫入信息給主機(jī)系統(tǒng)。在本發(fā)明的一實(shí)施例中,上述的存儲器管理電路是藉由在完成接收對應(yīng)上述寫入指令的數(shù)據(jù)串之后,在一段預(yù)先定義時間期間持續(xù)輸出一忙碌信號,以將無法寫入信息傳遞給王機(jī)系統(tǒng)。在本發(fā)明的一實(shí)施例中,上述的存儲器管理電路是藉由在一回應(yīng)信息中設(shè)定對應(yīng)上述寫入指令的錯誤位元并且傳送此回應(yīng)信息給該主機(jī)系統(tǒng),以將無法寫入信息傳遞給主機(jī)系統(tǒng)。本發(fā)明另一范例實(shí)施例提出一種存儲器儲存裝置,其包括連接器、可復(fù)寫式非易失性存儲器模塊與存儲器控制器。連接器用以電性連接至主機(jī)系統(tǒng)??蓮?fù)寫式非易失性存儲器模塊具有多個實(shí)體區(qū)塊。存儲器控制器電性連接至連接器與可復(fù)寫式非易失性存儲器模塊,并且用以配置多個邏輯區(qū)塊地址以映射部分的實(shí)體區(qū)塊,其中此些邏輯區(qū)塊地址會被格式化成具有文件配置表區(qū)、根目錄區(qū)與文件區(qū)的分割區(qū),根目錄區(qū)儲存對應(yīng)一個子目錄的文件描述區(qū)塊,并且此子目錄的文件描述區(qū)塊所記錄的簇儲存對應(yīng)至少一預(yù)存文件的至少一文件描述區(qū)塊。本存儲器控制器從主機(jī)系統(tǒng)接收寫入指令,其中此寫入指令指示寫入地址。此外,存儲器控制器判斷此寫入地址是否為儲存此子目錄的文件描述區(qū)塊的地址。當(dāng)寫入地址為儲存此子目錄的文件描述區(qū)塊的地址時,存儲器控制器會判斷對應(yīng)此寫入指令的數(shù)據(jù)串的其中一部分是否相同于記錄在子目錄的文件描述區(qū)塊中的一對應(yīng)內(nèi)容。當(dāng)對應(yīng)此寫入指令的數(shù)據(jù)串的其中一部分不相同于記錄在子目錄的文件描述區(qū)塊中的對應(yīng)內(nèi)容時,存儲器控制器傳遞無法寫入信息給主機(jī)系統(tǒng)。在本發(fā)明的一實(shí)施例中,當(dāng)此寫入地址非為儲存子目錄的文件描述區(qū)塊的地址時,存儲器控制器判斷此寫入地址是否為儲存預(yù)存文件的文件描述區(qū)塊的地址。當(dāng)此寫入地址為儲存預(yù)存文件的文件描述區(qū)塊的地址時,存儲器控制器判斷對應(yīng)此寫入指令的數(shù)據(jù)串的其中一部分是否相同于記錄在預(yù)存文件的文件描述區(qū)塊中的一對應(yīng)內(nèi)容。當(dāng)對應(yīng)此寫入指令的數(shù)據(jù)串的其中一部分不相同于記錄在預(yù)存文件的文件描述區(qū)塊中的對應(yīng)內(nèi)容時,存儲器控制器會傳遞無法寫入信息給主機(jī)系統(tǒng)。在本發(fā)明的一實(shí)施例中,上述的存儲器控制器是藉由在完成接收對應(yīng)上述寫入指令的數(shù)據(jù)串之后,在一段預(yù)先定義時間期間持續(xù)輸出一忙碌信號,以將無法寫入信息傳遞給主機(jī)系統(tǒng)。在本發(fā)明的一實(shí)施例中,上述的存儲器控制器是藉由在一回應(yīng)信息中設(shè)定對應(yīng)上述寫入指令的錯誤位元并且傳送此回應(yīng)信息給該主機(jī)系統(tǒng),以將無法寫入信息傳遞給主機(jī)系統(tǒng)?;谏鲜觯鲜龇独龑?shí)施例的數(shù)據(jù)保護(hù)方法、存儲器控制器與存儲器儲存裝置能夠有效地防止儲存于可復(fù)寫式非易失性存儲器模塊中的目錄與文件被刪除或更改。為讓本發(fā)明的上述特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉實(shí)施例,并配合附圖作詳細(xì)說明如下。
圖1是根據(jù)一范例實(shí)施例所顯示的主機(jī)系統(tǒng)與存儲器儲存裝置的概要方框圖;圖2與圖3是根據(jù)一范例實(shí)施例所顯示的管理實(shí)體區(qū)塊的示意圖;圖4為根據(jù)一范例實(shí)施例所顯示的以文件系統(tǒng)格式化存儲器模塊的邏輯區(qū)塊地址的范例;圖5是根據(jù)一范例實(shí)施例所顯示的文件配置表區(qū)的范例;
圖6是根據(jù)本范例實(shí)施例所顯示的存儲器控制器的概要方框圖;圖7是根據(jù)本范例實(shí)施例所顯示的建立預(yù)設(shè)子目錄與預(yù)存文件的示意圖;圖8是根據(jù)一范例實(shí)施例所顯示的數(shù)據(jù)保護(hù)方法的流程圖。附圖標(biāo)記:100:存儲器儲存裝置;102:連接器;104:存儲器控制器;106:可復(fù)寫式非易失性存儲器模塊;108:智能卡芯片;108a:接口;1000:主機(jī)系統(tǒng);1102:微處理器;1104:儲存裝置;1106:快取存儲器;1108:輸入/輸出裝置;1110:操作系統(tǒng);1120:應(yīng)用程序;202:存儲器管理電路;204:主機(jī)接口;206:存儲器接口;208:緩沖存儲器;210:電源管理電路;212:錯誤檢查與校正電路;304(0) 304 (R):實(shí)體區(qū)塊;402:數(shù)據(jù)區(qū);404:備用區(qū);406:系統(tǒng)區(qū);408:取代區(qū);LBA(O) LBA(N):邏輯區(qū)塊地址;600(0) 600 (W):簇;700(0) 700 (M+K):扇區(qū);900:分割區(qū);902:主引導(dǎo)磁區(qū);904:文件配置區(qū);906:根目錄區(qū);908:文件區(qū);801、803、805:文件描述區(qū)塊;807,809:預(yù)存文件;S801、S803、S805、S807、S809、S811、S813:數(shù)據(jù)保護(hù)方法的步驟。
具體實(shí)施例方式圖1是根據(jù)一范例實(shí)施例所顯示的主機(jī)系統(tǒng)與存儲器儲存裝置的概要方框圖。請參照圖1,主機(jī)系統(tǒng)1000包括微處理器1102、儲存裝置1104、快取存儲器1106與輸入/輸出裝置1108。當(dāng)主機(jī)系統(tǒng)1000開機(jī)時,微處理器1102會執(zhí)行安裝于儲存裝置1104中的操作系統(tǒng)1110,以使主機(jī)系統(tǒng)1000根據(jù)使用者的操作而提供對應(yīng)的功能。例如,在主機(jī)系統(tǒng)1000為手機(jī)系統(tǒng),并且操作系統(tǒng)1110為Symbian、Android或其他操作系統(tǒng)的例子中,當(dāng)主機(jī)系統(tǒng)1000開機(jī)后,使用者可通過輸入/輸出裝置1108操作主機(jī)系統(tǒng)1000以執(zhí)行通信、影音播放等功能。雖然在本范例實(shí)施例中,主機(jī)系統(tǒng)1000是以手機(jī)系統(tǒng)來作說明,然而,在本發(fā)明另一范例實(shí)施例中主機(jī)系統(tǒng)1000亦可以是電腦、數(shù)碼相機(jī)、攝影機(jī)、音頻播放器或視頻播放器等系統(tǒng)。存儲器儲存裝置100是用以電性連接至主機(jī)系統(tǒng)1000,以根據(jù)來自于主機(jī)系統(tǒng)1000的操作系統(tǒng)1110的指令執(zhí)行數(shù)據(jù)的寫入與讀取。例如,在主機(jī)系統(tǒng)1000為手機(jī)系統(tǒng)的例子中,存儲器儲存裝置100可為安全數(shù)碼(Secure Digital, SD)卡、多媒體儲存卡(MultiMedia Card, MMC)卡、記憶棒(memory stick)、小型閃速(Compact Flash, CF)卡或嵌入式儲存裝置。嵌入式儲存裝置包括嵌入式多媒體卡(Embedded MMC, eMMC)。值得一提的是,嵌入式多媒體卡是直接電性連接于主機(jī)系統(tǒng)的基板上。存儲器儲存裝置100包括連接器102、存儲器控制器104與可復(fù)寫式非易失性存儲器模塊106。連接器102為符合SD標(biāo)準(zhǔn)的連接器。然而,必須了解的是,本發(fā)明不限于此,連接器102亦可以是符合MS標(biāo)準(zhǔn)、MMC標(biāo)準(zhǔn)、CF標(biāo)準(zhǔn)、電氣和電子工程師協(xié)會(Instituteof Electrical and Electronic Engineers, IEEE) 1394 標(biāo)準(zhǔn)、高速周邊零件連接接口(Peripheral Component Interconnect Express, PCI Express)標(biāo)準(zhǔn)、串行高級技術(shù)附件(Serial Advanced Technology Attachment, SATA)標(biāo)準(zhǔn)、平行高級技術(shù)附件(ParallelAdvanced Technology Attachment, PATA)標(biāo)準(zhǔn)、通用串行總線(Universal Serial Bus,USB)標(biāo)準(zhǔn)、整合式驅(qū)動電子接口(Integrated Device Electronics, IDE)標(biāo)準(zhǔn)或其他標(biāo)準(zhǔn)的連接器。存儲器控制器104用以執(zhí)行以硬件型式或固件型式實(shí)作的多個邏輯門或控制指令,并且根據(jù)主機(jī)系統(tǒng)1000的指令在可復(fù)寫式非易失性存儲器模塊106中進(jìn)行數(shù)據(jù)的寫入、讀取與抹除等運(yùn)作。特別是,存儲器控制器104能夠執(zhí)行根據(jù)本范例實(shí)施例的數(shù)據(jù)保護(hù)方法來保護(hù)預(yù)存的子目錄(即,文件系統(tǒng)的數(shù)據(jù)夾)及此子目錄中的文件??蓮?fù)寫式非易失性存儲器模塊106是電性連接至存儲器控制器104,并且用以儲存主機(jī)系統(tǒng)1000所寫入的數(shù)據(jù)。可復(fù)寫式非易失性存儲器模塊106包括多個實(shí)體區(qū)塊。各實(shí)體區(qū)塊分別具有多個實(shí)體頁面,其中屬于同一個實(shí)體區(qū)塊的實(shí)體頁面可被獨(dú)立地寫入且被同時地抹除。更詳細(xì)來說,實(shí)體區(qū)塊為抹除的最小單位。亦即,每一實(shí)體區(qū)塊含有最小數(shù)目的一并被抹除的存儲單元。實(shí)體頁面為編程的最小單元。即,實(shí)體頁面為寫入數(shù)據(jù)的最小單元。然而,必須了解的是,在本發(fā)明另一范例實(shí)施例中,寫入數(shù)據(jù)的最小單位亦可以是扇區(qū)(Sector)或其他大小。在本范例實(shí)施例中,可復(fù)寫式非易失性存儲器模塊106為多階存儲單元(Multi Level Cell, MLC)NAND閃速存儲器模塊。然而,本發(fā)明不限于此,可復(fù)寫式非易失性存儲器模塊106亦可是單階存儲單元(Single Level Cell,SLC)NAND閃速存儲器模塊、其他閃速存儲器模塊或其他具有相同特性的存儲器模塊。圖2與圖3是根據(jù)一范例實(shí)施例所顯示的管理實(shí)體區(qū)塊的示意圖。請參照圖2,在本范例實(shí)施例中,存儲器控制器104會將可復(fù)寫式非易失性存儲器模塊106的實(shí)體區(qū)塊304(0) 304(R)邏輯地分組為數(shù)據(jù)區(qū)402、備用區(qū)404、系統(tǒng)區(qū)406與取代區(qū)408,其中被分組為數(shù)據(jù)區(qū)402與備用區(qū)404的實(shí)體區(qū)塊會輪替地來儲存主機(jī)系統(tǒng)1000所寫入的數(shù)據(jù),系統(tǒng)區(qū)406的實(shí)體區(qū)塊是用以儲存存儲器儲存裝置100的系統(tǒng)數(shù)據(jù),而取代區(qū)408的實(shí)體區(qū)塊是用以取代數(shù)據(jù)區(qū)與備用區(qū)中的壞實(shí)體區(qū)塊。請參照圖3,為了使主機(jī)系統(tǒng)1000能夠方便地對以輪替方式儲存數(shù)據(jù)的實(shí)體區(qū)塊進(jìn)行存取,存儲器控制器104會配置邏輯區(qū)塊地址LBA(O) LBA(H)來映射數(shù)據(jù)區(qū)402的實(shí)體區(qū)塊,由此主機(jī)系統(tǒng)1000能夠直接地依據(jù)邏輯區(qū)塊地址來進(jìn)行數(shù)據(jù)的寫入與讀取。在本范例實(shí)施例中,邏輯區(qū)塊地址LBA(O) LBA⑶會根據(jù)文件系統(tǒng)被格式化成一個分割區(qū)(partition) 900 (如圖4所示),其中分割區(qū)900包括主引導(dǎo)磁區(qū)902、文件配置表區(qū)904、根目錄區(qū)906與文件區(qū)908。屬于主引導(dǎo)磁區(qū)902的邏輯區(qū)塊地址是用以儲存存儲器儲存裝置100的可儲存空間的系統(tǒng)信息。屬于文件配置表區(qū)904的邏輯區(qū)塊地址是用以儲存文件配置表。文件配置表是用以記錄用以儲存數(shù)據(jù)的邏輯區(qū)塊地址的登錄值。例如,文件配置表區(qū)中會儲存兩個文件配置表,其中一個文件配置表為正常存取所使用,而另一個文件配置表為備份文件配置表。屬于根目錄區(qū)906的邏輯區(qū)塊地址是用以儲存文件描述區(qū)塊(File DescriptionBlock, FDB),其用以記錄目前儲存于存儲器儲存裝置100中的文件與目錄的屬性信息。例如,對應(yīng)一個文件的文件描述區(qū)塊會記錄用以此文件的文件名以及儲存此文件的起始邏輯區(qū)塊地址(即,起始簇);并且對應(yīng)一個目錄的文件描述區(qū)塊會記錄此目錄的目錄名稱以及用以記錄儲存于此目錄中的文件或目錄的文件描述區(qū)塊的邏輯區(qū)塊地址(即,簇)。屬于文件區(qū)908的邏輯區(qū)塊地址會被劃分為多個簇并且用以實(shí)際地儲存文件的內(nèi)容。具體來說,磁碟儲存最小單位為扇區(qū),每一個扇區(qū)包含了 512位元組(byte)的信息內(nèi)容。然而,使用扇區(qū)當(dāng)單位來儲存時,主機(jī)系統(tǒng)1000的效率會很差。一般來說,主機(jī)系統(tǒng)1000的操作系統(tǒng)1110不會以一個扇區(qū)當(dāng)作存取文件的單位,而是以簇為一基本文件單位。每一個簇是架構(gòu)在扇區(qū)的2次方倍數(shù)上。假定連續(xù)的8個扇區(qū)構(gòu)成一個簇,則此簇的大小就為4096位元組?;?,在操作系統(tǒng)1110在存取數(shù)據(jù)時會以8個扇區(qū)連續(xù)讀取而提升了相對效率。但,簇并非越大越好。因?yàn)楫?dāng)簇越大時相對的可能會浪費(fèi)許多儲存空間。例如,在一個簇為4千位元組(kilobyte,KB)的情況下,當(dāng)主機(jī)系統(tǒng)1000所儲存的文件內(nèi)容只有IKB時,此文件還是占用掉一個簇的空間,剩余的3KB的儲存空間就浪費(fèi)掉了。特別是,簇的總數(shù)目會受限于可復(fù)寫式非易失性存儲器模塊106的容量與文件配置表型態(tài)而有所不同。以FAT16來說,根據(jù)定義其本身最大的簇數(shù)目必須介于4048個 65526個之間,所以當(dāng)格式化一張128MB的記憶卡,其每一個簇至少必須要包含4個扇區(qū),不然會超出65526個簇(cluster)的限制(127,901,696/512/4 = 62,452clusters)。所以每一簇的大小為2KB。類似地,在FAT32中,最大的簇數(shù)目必須介于65526個 4177918個之間。值得一提的是,在FAT16中,根目錄區(qū)906的大小是固定的。而在FAT32中,根目錄區(qū)906會被放在文件區(qū)908來一起管理。例如,在本范例實(shí)施例中,分割區(qū)(partition) 900是符合FAT32規(guī)范的分割區(qū)。因此,屬于根目錄區(qū)906與文件區(qū)908的扇區(qū)會被分組為簇(cluster) 600(0) 600 (W)。在此假設(shè)簇600(0)是被配置為根目錄區(qū)906的起始簇。此外,文件配置表區(qū)904包括扇區(qū)700 (M) 扇區(qū)700 (M+K)(如圖5所示),來分別地記錄對應(yīng)簇600 (0) 600 (W)的登錄值(entry value)。在此,登錄值是用以表示所對應(yīng)的簇的狀態(tài)。例如,在FAT32中,“ OOOOOOOh ”表示此簇為閑置邏輯區(qū)塊地址(即,未儲存數(shù)據(jù)),“FFFFFF7h”表示此簇為壞邏輯區(qū)塊地址(即,無法儲存數(shù)據(jù)的壞簇),“FFFFFF8h”_ “FFFFFFFh”表示此簇為儲存文件的最后一個邏輯區(qū)塊地址等。在此,扇區(qū)700(M)的前2個登錄值(即,前8個位元組)會被保留并記錄為"F8hFFhFFhOFh"與"FFhFFhFFhOFh"。第2個登錄值為對應(yīng)根目錄區(qū)906的簇600(0)。第3個登錄值為對應(yīng)簇600 (I)。第4個登錄值為對應(yīng)簇600 (2)。第5個登錄值為對應(yīng)簇600 (3)。第6個登錄值為對應(yīng)簇600 (4)。第7個登錄值為對應(yīng)簇600 (5)。以此類推,對應(yīng)簇600(0) 600(W)的登錄值都會被記錄在文件配置表區(qū)904的扇區(qū)中。請再參照圖1,在本范例實(shí)施例中,存儲器儲存裝置100還包括智能卡芯片108。智能卡芯片108是通過接口 108a電性連接至存儲器控制器104,其中接口 108a是專門用以與智能卡芯片108進(jìn)行通信的接口。智能卡芯片108具有微處理器、安全模塊、只讀存儲器(Read Only Memory,ROM)、隨機(jī)存取存儲器(Random Access Memory,RAM)、電子抹除式可編程只讀存儲器(Electrically Erasable Programmable Read-Only Memory, EEPR0M)、震蕩器等兀件。微處理器用以控制智能卡芯片108的整體運(yùn)作。安全模塊用以對儲存至智能卡芯片108中的數(shù)據(jù)進(jìn)行加解密。震蕩器用以產(chǎn)生智能卡芯片108運(yùn)作時所需的時脈信號。隨機(jī)存取存儲器用以暫存運(yùn)算的數(shù)據(jù)或固件程序。電子抹除式可編程只讀存儲器用以儲存使用者數(shù)據(jù)。只讀存儲器用以儲存智能卡芯片108的固件程序。具體來說,當(dāng)智能卡芯片108運(yùn)作時,智能卡芯片108的微處理器會執(zhí)行只讀存儲器中的固件程序來執(zhí)行相關(guān)運(yùn)作。特別是,智能卡芯片108的安全模塊會執(zhí)行一安全機(jī)制以防止欲竊取儲存于智能卡芯片108中所儲存的數(shù)據(jù)的攻擊。例如,此攻擊包括時間攻擊(timingattack)、單一電力分析攻擊(single-power-analysis attack)或差異電力分析攻擊(differential-power-analysis)。此外,智能卡芯片108所執(zhí)行的安全機(jī)制是符合聯(lián)邦信息處理標(biāo)準(zhǔn)(Federal Information Processing Standards, FIPS) 140-2 的第三等級或更高等級或者符合EMVEL的第三等級或更高等級。也就是說,智能卡芯片108是通過FIPS140-2的第四級以上的認(rèn)證或者通過EMV EL的第四級以上的認(rèn)證。在此,F(xiàn)IPS是美國聯(lián)邦政府制定給所有軍事機(jī)構(gòu)除外的政府機(jī)構(gòu)及政府的承包商所使用的公開標(biāo)準(zhǔn),其中FIPS140-2制定了關(guān)于數(shù)據(jù)安全的等級。此外,EMV是國際金融業(yè)界對于智能卡與可使用芯片卡的銷售點(diǎn)(point-of-sale,P0S)終端機(jī),以及銀行機(jī)構(gòu)所廣泛設(shè)置的自動柜員機(jī)等所制定的專業(yè)交易與認(rèn)證的標(biāo)準(zhǔn)規(guī)范。此規(guī)范是針對芯片信用卡與現(xiàn)金卡的支付款系統(tǒng)(PaymentSystem)的相關(guān)軟硬件所設(shè)置的標(biāo)準(zhǔn)。在本范例實(shí)施例中,藉由智能卡芯片108的運(yùn)作,存儲器儲存裝置100可提供具有身份認(rèn)證的服務(wù),例如,小額付款服務(wù)、票證服務(wù)等。圖6是根據(jù)一范例實(shí)施例所顯示的存儲器控制器的概要方框圖。
請參照圖6,存儲器控制器104包括存儲器管理電路202、主機(jī)接口 204、存儲器接口 206、緩沖存儲器208、電源管理電路210與錯誤檢查與校正電路212。存儲器管理電路202用以控制存儲器控制器104的整體運(yùn)作。具體來說,存儲器管理電路202具有多個控制指令,并且在存儲器儲存裝置100被電源開機(jī)(power on)時,此些控制指令會被執(zhí)行以控制存儲器控制器104的整體運(yùn)作。在本范例實(shí)施例中,存儲器管理電路202的控制指令是以固件型式來實(shí)作。例如,存儲器管理電路202具有微處理器單元(未顯示)與只讀存儲器(未顯示),并且此些控制指令是被燒錄至此只讀存儲器中。當(dāng)存儲器儲存裝置100運(yùn)作時,此些控制指令會由微處理器單元來執(zhí)行。在本發(fā)明另一范例實(shí)施例中,存儲器管理電路202的控制指令亦可以程序碼型式儲存于可復(fù)寫式非易失性存儲器模塊106的特定區(qū)域(例如,存儲器模塊中專用于存放系統(tǒng)數(shù)據(jù)的系統(tǒng)區(qū))中。此外,存儲器管理電路202具有微處理器單元(未顯示)、只讀存儲器(未顯示)及隨機(jī)存取存儲器(未顯示)。特別是,此只讀存儲器具有驅(qū)動碼段,并且當(dāng)存儲器控制器104被使能時,微處理器單元會先執(zhí)行此驅(qū)動碼段來將儲存于可復(fù)寫式非易失性存儲器模塊106中的控制指令載入至存儲器管理電路202的隨機(jī)存取存儲器中。之后,微處理器單元會運(yùn)轉(zhuǎn)此些控制指令。此外,在本發(fā)明另一范例實(shí)施例中,存儲器管理電路202的控制指令亦可以一硬件型式來實(shí)作。例如,存儲器管理電路202包括微控制器、存儲器管理單元、存儲器寫入單元、存儲器讀取單元、存儲器抹除單元與數(shù)據(jù)處理單元。存儲器管理單元、存儲器寫入單元、存儲器讀取單元、存儲器抹除單元與數(shù)據(jù)處理單元是電性連接至微控制器。其中,存儲器管理單元用以管理可復(fù)寫式非易失性存儲器模塊106的實(shí)體區(qū)塊;存儲器寫入單元用以對可復(fù)寫式非易失性存儲器模塊106下達(dá)寫入指令以將數(shù)據(jù)寫入至可復(fù)寫式非易失性存儲器模塊106中;存儲器讀取單元用以對可復(fù)寫式非易失性存儲器模塊106下達(dá)讀取指令以從可復(fù)寫式非易失性存儲器模塊106中讀取數(shù)據(jù);存儲器抹除單元用以對可復(fù)寫式非易失性存儲器模塊106下達(dá)抹除指令以將數(shù)據(jù)從可復(fù)寫式非易失性存儲器模塊106中抹除;而數(shù)據(jù)處理單元用以處理欲寫入至可復(fù)寫式非易失性存儲器模塊106的數(shù)據(jù)以及從可復(fù)寫式非易失性存儲器模塊106中讀取的數(shù)據(jù)。主機(jī)接口 204是電性連接至存儲器管理電路202并且用以接收與識別主機(jī)系統(tǒng)1000所傳送的指令與數(shù)據(jù)。也就是說,主機(jī)系統(tǒng)1000所傳送的指令與數(shù)據(jù)會通過主機(jī)接口204來傳送至存儲器管理電路202。在本范例實(shí)施例中,主機(jī)接口 204為符合SD標(biāo)準(zhǔn)的接口。然而,必須了解的是本發(fā)明不限于此,主機(jī)接口 204亦可以是符合MS標(biāo)準(zhǔn)、MMC標(biāo)準(zhǔn)、CF標(biāo)準(zhǔn)、PATA標(biāo)準(zhǔn)、IEEE 1394標(biāo)準(zhǔn)、PCI Express標(biāo)準(zhǔn)、SATA標(biāo)準(zhǔn)、USB標(biāo)準(zhǔn)、IDE標(biāo)準(zhǔn)或其他標(biāo)準(zhǔn)的接口。存儲器接口 206是電性連接至存儲器管理電路202并且用以存取可復(fù)寫式非易失性存儲器模塊106。也就是說,欲寫入至可復(fù)寫式非易失性存儲器模塊106的數(shù)據(jù)會經(jīng)由存儲器接口 206轉(zhuǎn)換為可復(fù)寫式非易失性存儲器模塊106所能接受的格式。緩沖存儲器208是電性連接至存儲器管理電路202并且用以暫存來自于主機(jī)系統(tǒng)1000的數(shù)據(jù)與指令或來自于可復(fù)寫式非易失性存儲器模塊106的數(shù)據(jù)。電源管理電路210是電性連接至存儲器管理電路202并且用以控制存儲器儲存裝置100的電源。錯誤檢查與校正電路212是電性連接至存儲器管理電路202并且用以執(zhí)行錯誤檢查與校正程序以確保數(shù)據(jù)的正確性。具體來說,當(dāng)存儲器管理電路202從主機(jī)系統(tǒng)1000中接收到寫入指令時,錯誤檢查與校正電路256會為對應(yīng)此寫入指令的數(shù)據(jù)產(chǎn)生對應(yīng)的錯誤檢查與校正碼(Error Checking and Correcting Code, ECC Code),并且存儲器管理電路202會將對應(yīng)此寫入指令的數(shù)據(jù)與對應(yīng)的錯誤檢查與校正碼寫入至可復(fù)寫式非易失性存儲器模塊106中。之后,當(dāng)存儲器管理電路202從可復(fù)寫式非易失性存儲器模塊106中讀取數(shù)據(jù)時會同時讀取此數(shù)據(jù)對應(yīng)的錯誤檢查與校正碼,并且錯誤檢查與校正電路256會依據(jù)此錯誤檢查與校正碼對所讀取的數(shù)據(jù)執(zhí)行錯誤檢查與校正程序。值得一提的是,智能卡芯片108是通過存儲器儲存裝置100的連接器102接收來自于主機(jī)系統(tǒng)1000的指令與數(shù)據(jù)與傳送數(shù)據(jù)至主機(jī)系統(tǒng)1000,而非直接通過智能卡接口(即,接口 108a)與主機(jī)系統(tǒng)1000通信。基此,在本范例實(shí)施例中,應(yīng)用程序1120會被安裝在主機(jī)系統(tǒng)1000中,并且使用特定的通信文件來傳送指令數(shù)據(jù)單元(例如,指令-應(yīng)用程序協(xié)議數(shù)據(jù)單兀(Command-Application Protocol Data Unit, C-APDU))給智能卡芯片108以及接收智能卡芯片108的回應(yīng)數(shù)據(jù)單元(例如,回應(yīng)-應(yīng)用程序協(xié)議數(shù)據(jù)單元(Response-Application Protocol Data Unit, R-APDU))。具體來說,在本范例實(shí)施例中,應(yīng)用程序1120會在存儲器儲存裝置100中建立一個預(yù)設(shè)子目錄(數(shù)據(jù)夾)來預(yù)先儲存一個或多個文件(以下稱為預(yù)存文件),并且將用以儲存此一個或多個預(yù)存文件的邏輯區(qū)塊地址的信息傳送給存儲器控制器104。圖7是根據(jù)一范例實(shí)施例所顯示的建立預(yù)設(shè)子目錄與預(yù)存文件的示意圖。請參照圖7,在此假設(shè)應(yīng)用程序1120在存儲器儲存裝置100中建立目錄名稱為’RESP’的預(yù)設(shè)子目錄并且預(yù)存文件名為’ RESP0000.BIN’的預(yù)存文件807與文件名為’ RESP0001.BIN’的預(yù)存文件809,其中需使用2個簇來儲存文件名為’ RESP0000.BIN’的文件807并且需要使用I個簇來儲存文件名為’ RESP0001.BIN’的文件809。針對預(yù)設(shè)子目錄,操作系統(tǒng)1110會根據(jù)存儲器儲存裝置100的文件系統(tǒng)在配置給根目錄區(qū)906的簇(例如,簇600 (0))中未使用的地址記錄對應(yīng)目錄名稱為’ RESPj的預(yù)設(shè)子目錄的文件描述區(qū)塊801并且尋找一個空的簇(例如,簇600 (I))來記錄關(guān)于此預(yù)設(shè)子目錄的內(nèi)容,其中文件描述區(qū)塊801會記錄簇600(1)的信息。針對文件,操作系統(tǒng)1110會根據(jù)存儲器儲存裝置100的文件系統(tǒng)及文件807的大小,尋找2個空的簇(例如,簇600(2)與簇600(3))來儲存文件807的內(nèi)容。此外,操作系統(tǒng)1110會在簇600(1)中記錄對應(yīng)文件807的文件描述區(qū)塊803并且在文件配置表區(qū)904中將對應(yīng)簇600 (2)的登錄值(即,第4登錄值)修改為簇600 (3)的地址并且在對應(yīng)簇600 (3)的登錄值(及第5登錄值)修改為“FFFFFFFh”。類似地,操作系統(tǒng)1110會根據(jù)存儲器儲存裝置100的文件系統(tǒng)及文件809的大小,尋找I個空的簇(例如,簇600 (4))來儲存文件809的內(nèi)容。此外,操作系統(tǒng)1110會在簇600(1)中記錄對應(yīng)文件809的文件描述區(qū)塊805并且在文件配置表區(qū)904中將對應(yīng)簇600 (4)的登錄值(即,第6登錄值)修改為“FFFFFFFh”。例如,在完成上述儲存之后,主機(jī)系統(tǒng)1000就可根據(jù)根目錄區(qū)906中的文件描述區(qū)塊獲知存儲器儲存裝置100存有一個目錄名稱為’RESP’的子目錄。此外,主機(jī)系統(tǒng)1000可根據(jù)此子目錄的文件描述區(qū)塊所記錄的簇600 (I)中所儲存的文件描述區(qū)塊,獲知存儲器儲存裝置100存有一個文件名為’ RESP0000.BIN’的文件807與一個文件名為’ RESP0001.BIN’的文件809,并且此些文件位于目錄名稱為’RESP’的子目錄下。例如,當(dāng)主機(jī)系統(tǒng)1000欲讀取文件名為’ RESP0000.BIN’的文件807時,操作系統(tǒng)1110會根據(jù)此文件的文件描述區(qū)塊803所記錄的簇600 (2)來開始讀取數(shù)據(jù),并且根據(jù)在文件配置表區(qū)904中將對應(yīng)簇600(2)的登錄值繼續(xù)從簇600 (3)讀取數(shù)據(jù),由此完成此文件的讀取。特別是,在本范例實(shí)施例中,當(dāng)主機(jī)系統(tǒng)1000來讀取FAT表以及根目錄區(qū)906時,存儲器控制器104會將所建立的預(yù)設(shè)子目錄與預(yù)存文件的識別信息傳送給主機(jī)系統(tǒng)1000。具體來說,主機(jī)系統(tǒng)1000會取得對應(yīng)目錄名稱為’ RESPj的子目錄的文件描述區(qū)塊801的邏輯區(qū)塊地址、文件描述區(qū)塊801所記錄的簇(例如,簇600 (I))、對應(yīng)文件807的文件描述區(qū)塊803的邏輯區(qū)塊地址、對應(yīng)文件809的文件描述區(qū)塊805的邏輯區(qū)塊地址、文件807的內(nèi)容的邏輯區(qū)塊地址(例如,簇600(2)與簇600(3))、儲存文件809的內(nèi)容的邏輯區(qū)塊地址(例如,簇600 (4))、文件807的文件名、文件809的文件名等識別信息?;?,當(dāng)欲傳送指令數(shù)據(jù)單元給智能卡芯片108時,應(yīng)用程序1120會下達(dá)對通信文件(即,文件807或文件809)進(jìn)行寫入的寫入指令。并且,存儲器控制器104會依據(jù)所接收的識別信息識別所接收的寫入指令為對通信文件進(jìn)行存取,而將數(shù)據(jù)串傳遞給智能卡芯片108。特別是,在本范例實(shí)施例中,存儲器控制器104的存儲器管理電路202會執(zhí)行多個防寫/防刪機(jī)制來防止用于傳遞指令數(shù)據(jù)單元所建立的預(yù)設(shè)子目錄與預(yù)存文件被操作系統(tǒng)1110或其他應(yīng)用程序誤刪或者防止預(yù)設(shè)子目錄被加入其他文件或更改預(yù)設(shè)子目錄名稱。以下將配合流程圖來分別地描述此些防寫/防刪機(jī)制,然而,必須了解的是,此些防寫/防刪機(jī)制可選擇地執(zhí)行至少其中一部分,以達(dá)到數(shù)據(jù)保護(hù)的功能。(I)防止預(yù)設(shè)子目錄的文件描述區(qū)塊被刪除或修改機(jī)制在本范例實(shí)施例中,當(dāng)從主機(jī)系統(tǒng)1000中接收到寫入指令時,存儲器管理電路202會判斷此寫入指令所指示的邏輯區(qū)塊地址是否為儲存文件描述區(qū)塊801的地址。具體來說,如上所述,存儲器控制器104會將所建立的預(yù)設(shè)子目錄的識別信息傳送給應(yīng)用程序1120,基此,存儲器管理電路202可根據(jù)此識別信息來判斷此寫入指令所指示的邏輯區(qū)塊地址是否為儲存文件描述區(qū)塊801的地址。倘若此寫入指令所指示的邏輯區(qū)塊地址為儲存文件描述區(qū)塊801的地址時,存儲器管理電路202會判斷此寫入指令所對應(yīng)的數(shù)據(jù)串的其中一部分是否相同于記錄在預(yù)設(shè)子目錄的文件描述區(qū)塊的對應(yīng)內(nèi)容。例如,存儲器管理電路202會判斷此寫入指令所對應(yīng)的數(shù)據(jù)串之中對應(yīng)的12個位元組(byte)的內(nèi)容是否相同于記錄在預(yù)設(shè)子目錄的文件描述區(qū)塊中的對應(yīng)的12個位元組(對應(yīng)的12個位元組包括:例如,子目錄名稱、只讀屬性、隱藏屬性、系統(tǒng)文件屬性與目錄類屬性等)。倘若此寫入指令所對應(yīng)的數(shù)據(jù)串的其中一部分不相同于預(yù)設(shè)子目錄的文件描述區(qū)塊的對應(yīng)內(nèi)容時,則存儲器管理電路202會傳遞無法寫入信息給主機(jī)系統(tǒng)1000。例如,存儲器管理電路202會在完成接收對應(yīng)此寫入指令的數(shù)據(jù)串之后,在預(yù)先定義時間期間持續(xù)輸出一忙碌(busy)信號,由此產(chǎn)生逾時(time out),而使主機(jī)系統(tǒng)1000獲知數(shù)據(jù)未被成功地寫入。具體來說,當(dāng)主機(jī)系統(tǒng)1000下達(dá)寫入指令后,若存儲器管理電路202通過忙碌信號接腳持續(xù)輸出低脈沖(lower pulse) 一段時間(例如,250毫秒),主機(jī)系統(tǒng)1000會認(rèn)定寫入失敗而重新(retry)下達(dá)寫入指令或重置(reset)。然而,必須了解的是,本發(fā)明不限于此。例如,在本發(fā)明另一范例實(shí)施例中,存儲器管理電路202亦可在回應(yīng)(response)信息中設(shè)定對應(yīng)此寫入指令的錯誤位元并且將此回應(yīng)信息傳送給主機(jī)系統(tǒng)1000,由此將寫入指令未被完成的信息傳遞給主機(jī)系統(tǒng)1000。倘若此寫入指令所對應(yīng)的數(shù)據(jù)串的其中一部分相同于預(yù)設(shè)子目錄的文件描述區(qū)塊的對應(yīng)內(nèi)容時,則存儲器管理電路202會根據(jù)寫入指令來完成寫入運(yùn)作。(2)防止預(yù)存文件的文件描述區(qū)塊被刪除或修改機(jī)制在本范例實(shí)施例中,當(dāng)從主機(jī)系統(tǒng)1000中接收到寫入指令時,存儲器管理電路202會判斷此寫入指令所指示的邏輯區(qū)塊地址是否為儲存預(yù)存文件的文件描述區(qū)塊(例如,文件描述區(qū)塊803或文件描述區(qū)塊805)的地址。具體來說,如上所述,存儲器控制器104應(yīng)用程序1120會將所建立的預(yù)存文件預(yù)設(shè)子目錄的識別信息傳送給應(yīng)用程序1120存儲器控制器104,基此,存儲器管理電路202可根據(jù)此識別信息來判斷此寫入指令所指示的邏輯區(qū)塊地址是否為儲存預(yù)存文件的文件描述區(qū)塊的地址。倘若此寫入指令所指示的邏輯區(qū)塊地址為儲存預(yù)存文件的文件描述區(qū)塊的地址時,存儲器管理電路202會判斷此寫入指令所對應(yīng)的數(shù)據(jù)串的其中一部分是否相同于記錄在預(yù)存文件的文件描述區(qū)塊的對應(yīng)內(nèi)容。例如,存儲器管理電路202會判斷此寫入指令所對應(yīng)的數(shù)據(jù)串之中對應(yīng)的12個位元組(byte)的內(nèi)容是否相同于記錄在預(yù)存文件的文件描述區(qū)塊中的對應(yīng)的12個位元組(對應(yīng)的12個位元組包括:例如,文件名稱、只讀屬性、隱藏屬性、系統(tǒng)檔屬性與文件類屬性等)。倘若此寫入指令所對應(yīng)的數(shù)據(jù)串的其中一部分相同于預(yù)存文件的文件描述區(qū)塊的對應(yīng)內(nèi)容時,則存儲器管理電路202會根據(jù)寫入指令來完成寫入運(yùn)作。反之,倘若此寫入指令所對應(yīng)的數(shù)據(jù)串的其中一部分不同于預(yù)存文件的文件描述區(qū)塊的對應(yīng)內(nèi)容時,則存儲器管理電路202會傳遞無法寫入信息給主機(jī)系統(tǒng)1000。圖8是根據(jù)一范例實(shí)施例所顯示的數(shù)據(jù)保護(hù)方法的流程圖。請參照圖8,當(dāng)接收到寫入指令時,在步驟S801中,存儲器管理電路202會判斷此寫入指令所指示的寫入地址是否為儲存預(yù)設(shè)子目錄的文件描述區(qū)塊的地址。倘若此寫入地址為儲存預(yù)設(shè)子目錄的文件描述區(qū)塊的地址,在步驟S803中,存儲器管理電路202會判斷此寫入指令所對應(yīng)的數(shù)據(jù)串的其中一部分是否相同于記錄在預(yù)設(shè)子目錄的文件描述區(qū)塊的對應(yīng)內(nèi)容。倘若此寫入指令所對應(yīng)的數(shù)據(jù)串的其中一部分不相同于預(yù)設(shè)子目錄的文件描述區(qū)塊的對應(yīng)內(nèi)容時,在步驟S805中,存儲器管理電路202會傳遞無法寫入信息給主機(jī)系統(tǒng)1000。并且,在步驟S805之后,圖8的流程會結(jié)束。例如,存儲器管理電路202可利用忙碌信號或回應(yīng)信息中的錯誤位元來傳遞寫入失敗的信息。倘若此寫入指令所對應(yīng)的數(shù)據(jù)串的其中一部分相同于預(yù)設(shè)子目錄的文件描述區(qū)塊的對應(yīng)內(nèi)容時,在步驟S807中,存儲器管理電路202會根據(jù)此寫入指令來完成寫入指令。并且,在步驟S807之后,圖8的流程會結(jié)束。倘若此寫入地址非為儲存預(yù)設(shè)子目錄的文件描述區(qū)塊的地址,在步驟S809中,存儲器管理電路202會判斷此寫入地址是否為儲存預(yù)設(shè)文件的文件描述區(qū)塊的地址。倘若此寫入地址非為儲存預(yù)設(shè)文件的文件描述區(qū)塊的地址時,則步驟S807會被執(zhí)行。倘若此寫入地址為儲存預(yù)設(shè)文件的文件描述區(qū)塊的地址時,則在步驟S811中,存儲器管理電路202會判斷此寫入指令所對應(yīng)的數(shù)據(jù)串的其中一部分是否相同于記錄在預(yù)存文件的文件描述區(qū)塊的對應(yīng)內(nèi)容。倘若此寫入指令所對應(yīng)的數(shù)據(jù)串的其中一部分不相同于記錄在預(yù)存文件的文件描述區(qū)塊的對應(yīng)內(nèi)容時,則在步驟S813中,存儲器管理電路202會傳遞無法寫入信息給主機(jī)系統(tǒng)1000。并且,在步驟S813之后,圖8的流程會結(jié)束。倘若此寫入指令所對應(yīng)的數(shù)據(jù)串的其中一部分相同于記錄在預(yù)存文件的文件描述區(qū)塊的對應(yīng)內(nèi)容時,則步驟S807會被執(zhí)行。值得一提的是,盡管在上述流程圖中,存儲器管理電路202會先判斷此寫入指令所指示的寫入地址是否為儲存預(yù)設(shè)子目錄的文件描述區(qū)塊的地址之后再接著判斷該寫入地址是否為儲存該至少一預(yù)存文件的至少一文件描述區(qū)塊的地址。然而,在另一流程圖中,存儲器管理電路202亦可直接判斷該寫入地址是否為儲存該至少一預(yù)存文件的至少一文件描述區(qū)塊的地址。綜上所述,本發(fā)明范例實(shí)施例的數(shù)據(jù)保護(hù)方法、存儲器控制器與存儲器儲存裝置可有效地防止所建立的子目錄被誤刪或更改以及防止所儲存的文件被誤刪或更改。雖然本發(fā)明已以實(shí)施例揭示如上,然其并非用以限定本發(fā)明,任何所屬技術(shù)領(lǐng)域的普通技術(shù)人員,當(dāng)可作些許更動與潤飾,而不脫離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種數(shù)據(jù)保護(hù)方法,用于保護(hù)儲存在一可復(fù)寫式非易失性存儲器模塊中的一子目錄及該子目錄中的至少一預(yù)存文件,其中該可復(fù)寫式非易失性存儲器模塊具有多個實(shí)體區(qū)塊以及映射部分的該些實(shí)體區(qū)塊的多個邏輯區(qū)塊地址,并且該些邏輯區(qū)塊地址會被格式化成至少具有一文件配置表區(qū)、一根目錄區(qū)與一文件區(qū)的一分割區(qū),該數(shù)據(jù)保護(hù)方法包括: 從一主機(jī)系統(tǒng)接收一寫入指令,其中該寫入指令指示一寫入地址; 判斷該寫入地址是否為儲存該子目錄的一文件描述區(qū)塊的地址; 當(dāng)該寫入地址為儲存該子目錄的該文件描述區(qū)塊的地址時,判斷對應(yīng)該寫入指令的一數(shù)據(jù)串的其中一部分是否相同于記錄在該子目錄的該文件描述區(qū)塊中的一對應(yīng)內(nèi)容;以及當(dāng)對應(yīng)該寫入指令的該數(shù)據(jù)串的其中一部分不相同于記錄在該子目錄的該文件描述區(qū)塊中的該對應(yīng)內(nèi)容時,傳送一無法寫入信息給該主機(jī)系統(tǒng)。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)保護(hù)方法,其中還包括: 當(dāng)該寫入地址非為儲存該子目錄的該文件描述區(qū)塊的地址時,判斷該寫入地址是否為儲存該至少一預(yù)存文件的至少一文件描述區(qū)塊的地址; 當(dāng)該寫入地址為儲存該至少一預(yù)存文件的該至少一文件描述區(qū)塊的地址時,判斷對應(yīng)該寫入指令的該數(shù)據(jù)串的其中一部分是否相同于記錄在該至少一預(yù)存文件的該至少一文件描述區(qū)塊中的一對應(yīng)內(nèi)容;以及 當(dāng)對應(yīng)該寫入指令的該數(shù)據(jù)串的其中一部分不相同于記錄在該至少一預(yù)存文件的該至少一文件描述區(qū)塊中的該對應(yīng)內(nèi)容時,傳遞該無法寫入信息給該主機(jī)系統(tǒng)。
3.根據(jù)權(quán)利要求2 所述的數(shù)據(jù)保護(hù)方法,其中傳遞該無法寫入信息給該主機(jī)系統(tǒng)的步驟包括: 在完成接收對應(yīng)該寫入指令的該數(shù)據(jù)串之后,在一預(yù)先定義時間期間持續(xù)輸出一忙碌信號。
4.根據(jù)權(quán)利要求2所述的數(shù)據(jù)保護(hù)方法,其中傳遞該無法寫入信息給該主機(jī)系統(tǒng)的步驟包括: 在一回應(yīng)信息中設(shè)定對應(yīng)該寫入指令的一錯誤位元并且將該回應(yīng)信息傳送給該主機(jī)系統(tǒng)。
5.一種數(shù)據(jù)保護(hù)方法,用于保護(hù)儲存在一可復(fù)寫式非易失性存儲器模塊中的至少一預(yù)存文件,其中該可復(fù)寫式非易失性存儲器模塊具有多個實(shí)體區(qū)塊以及映射部分該些實(shí)體區(qū)塊的多個邏輯區(qū)塊地址,并且該些邏輯區(qū)塊地址會被格式化成至少具有一文件配置表區(qū)、一根目錄區(qū)與一文件區(qū)的一分割區(qū),該數(shù)據(jù)保護(hù)方法包括: 從一主機(jī)系統(tǒng)接收一寫入指令,其中該寫入指令指示一寫入地址; 判斷該寫入地址是否為儲存該至少一預(yù)存文件的至少一文件描述區(qū)塊的地址; 當(dāng)該寫入地址為儲存該至少一預(yù)存文件的該至少一文件描述區(qū)塊的地址時,判斷對應(yīng)該寫入指令的一數(shù)據(jù)串的其中一部分是否相同于記錄在該至少一預(yù)存文件的該至少一文件描述區(qū)塊中的一對應(yīng)內(nèi)容;以及 當(dāng)對應(yīng)該寫入指令的該數(shù)據(jù)串的其中一部分不相同于記錄在該至少一預(yù)存文件的該至少一文件描述區(qū)塊中的該對應(yīng)內(nèi)容時,傳遞一無法寫入信息給該主機(jī)系統(tǒng)。
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)保護(hù)方法,其中傳遞該無法寫入信息給該主機(jī)系統(tǒng)的步驟包括:在完成接收對應(yīng)該寫入指令的該數(shù)據(jù)串之后,在一預(yù)先定義時間期間持續(xù)輸出一忙碌信號。
7.根據(jù)權(quán)利要求5所述的數(shù)據(jù)保護(hù)方法,其中傳遞該無法寫入信息給該主機(jī)系統(tǒng)的步驟包括: 在一回應(yīng)信息中設(shè)定對應(yīng)該寫入指令的一錯誤位元并且將該回應(yīng)信息傳送給該主機(jī)系統(tǒng)。
8.一種存儲器控制器,用于控制一可復(fù)寫式非易失性存儲器模塊,其中該可復(fù)寫式非易失性存儲器模塊具有多個實(shí)體區(qū)塊,該存儲器控制器包括: 一主機(jī)接口,用以電性連接至一主機(jī)系統(tǒng); 一存儲器接口,用以電性連接至該可復(fù)寫式非易失性存儲器模塊;以及一存儲器管理電路,電性連接該主機(jī)接口與該存儲器接口,并且用以配置多個邏輯區(qū)塊地址以映射部分的該些實(shí)體區(qū)塊,其中該些邏輯區(qū)塊地址會被格式化成至少具有一文件配置表區(qū)、一根目錄區(qū)與一文件區(qū)的一分割區(qū),該根目錄區(qū)儲存對應(yīng)一子目錄的一文件描述區(qū)塊,并且該子目錄的該文件 描述區(qū)塊所記錄的一簇儲存對應(yīng)至少一預(yù)存文件的至少一文件描述區(qū)塊, 其中該存儲器管理電路從該主機(jī)系統(tǒng)接收一寫入指令并且該寫入指令指示一寫入地址, 其中該存儲器管理電路判斷該寫入地址是否為儲存該子目錄的該文件描述區(qū)塊的地址, 其中當(dāng)該寫入地址為儲存該子目錄的該文件描述區(qū)塊的地址時,該存儲器管理電路判斷對應(yīng)該寫入指令的一數(shù)據(jù)串的其中一部分是否相同于記錄在該子目錄的該文件描述區(qū)塊中的一對應(yīng)內(nèi)容, 其中當(dāng)對應(yīng)該寫入指令的該數(shù)據(jù)串的其中一部分不相同于記錄在該子目錄的該文件描述區(qū)塊中的該對應(yīng)內(nèi)容時,該存儲器管理電路傳遞一無法寫入信息給該主機(jī)系統(tǒng)。
9.根據(jù)權(quán)利要求8所述的存儲器控制器, 其中當(dāng)該寫入地址非為儲存該子目錄的該文件描述區(qū)塊的地址時,該存儲器管理電路判斷該寫入地址是否為儲存該至少一預(yù)存文件的該至少一文件描述區(qū)塊的地址, 其中當(dāng)該寫入地址為儲存該至少一預(yù)存文件的該至少一文件描述區(qū)塊的地址時,該存儲器管理電路判斷對應(yīng)該寫入指令的該數(shù)據(jù)串的其中一部分是否相同于記錄在該至少一預(yù)存文件的該至少一文件描述區(qū)塊中的一對應(yīng)內(nèi)容, 其中當(dāng)對應(yīng)該寫入指令的該數(shù)據(jù)串的其中一部分不相同于記錄在該至少一預(yù)存文件的該至少一文件描述區(qū)塊中的該對應(yīng)內(nèi)容時,該存儲器管理電路傳遞該無法寫入信息給該主機(jī)系統(tǒng)。
10.根據(jù)權(quán)利要求9所述的存儲器控制器,其中該存儲器管理電路藉由在完成接收對應(yīng)該寫入指令的該數(shù)據(jù)串之后,在一預(yù)先定義時間期間持續(xù)輸出一忙碌信號,以將該無法寫入信息傳遞給該主機(jī)系統(tǒng)。
11.根據(jù)權(quán)利要求9所述的存儲器控制器,其中該存儲器管理電路藉由在一回應(yīng)信息中設(shè)定對應(yīng)該寫入指令的一錯誤位元并且傳送該回應(yīng)信息給該主機(jī)系統(tǒng),以將該無法寫入信息傳遞給該主機(jī)系統(tǒng)。
12.—種存儲器儲存裝置,包括: 一連接器,用以電性連接至一主機(jī)系統(tǒng); 一可復(fù)寫式非易失性存儲器模塊,具有多個實(shí)體區(qū)塊;以及 一存儲器控制器,電性連接至該連接器與該可復(fù)寫式非易失性存儲器模塊,并且用以配置多個邏輯區(qū)塊地址以映射部分的該些實(shí)體區(qū)塊,其中該些邏輯區(qū)塊地址會被格式化成至少具有一文件配置表區(qū)、一根目錄區(qū)與一文件區(qū)的一分割區(qū),該根目錄區(qū)儲存對應(yīng)一子目錄的一文件描述區(qū)塊,并且該子目錄的該文件描述區(qū)塊所記錄的一簇儲存對應(yīng)至少一預(yù)存文件的至少一文件描述區(qū)塊, 其中該存儲器控制器從該主機(jī)系統(tǒng)接收一寫入指令并且該寫入指令指示一寫入地址, 其中該存儲器控制器判斷該寫入地址是否為儲存該子目錄的該文件描述區(qū)塊的地址, 其中當(dāng)該寫入地址為儲存該子目錄的該文件描述區(qū)塊的地址時,該存儲器控制器判斷對應(yīng)該寫入指令的一數(shù)據(jù)串的其中一部分是否相同于記錄在該子目錄的該文件描述區(qū)塊中的一對應(yīng)內(nèi)容, 其中當(dāng)對應(yīng)該寫入指令的該數(shù)據(jù)串的其中一部分不相同于記錄在該子目錄的該文件描述區(qū)塊中的該對應(yīng)內(nèi)容時,該存儲器控制器傳遞一無法寫入信息給該主機(jī)系統(tǒng)。
13.根據(jù)權(quán)利要求12所述的存儲器儲存裝置,其中當(dāng)該寫入地址非為儲存該子目錄的該文件描述區(qū)塊的地址時,該存儲器控制器判斷該寫入地址是否為儲存該至少一預(yù)存文件的該至少一文件描述區(qū)塊的地址, 其中當(dāng)該寫入地址為儲存該至少一預(yù)存文件的該至少一文件描述區(qū)塊的地址時,該存儲器控制器判斷對應(yīng)該寫入指令的該數(shù)據(jù)串的其中一部分是否相同于記錄在該至少一預(yù)存文件的該至少一文 件描述區(qū)塊中的一對應(yīng)內(nèi)容, 其中當(dāng)對應(yīng)該寫入指令的該數(shù)據(jù)串的其中一部分不相同于記錄在該至少一預(yù)存文件的該至少一文件描述區(qū)塊中的該對應(yīng)內(nèi)容時,該存儲器控制器傳遞該無法寫入信息給該主機(jī)系統(tǒng)。
14.根據(jù)權(quán)利要求13所述的存儲器儲存裝置,其中該存儲器控制器藉由在完成接收對應(yīng)該寫入指令的該數(shù)據(jù)串之后,在一預(yù)先定義時間期間持續(xù)輸出一忙碌信號,以將該無法寫入信息傳遞給該主機(jī)系統(tǒng)。
15.根據(jù)權(quán)利要求13所述的存儲器儲存裝置,其中該存儲器控制器藉由在一回應(yīng)信息中設(shè)定對應(yīng)該寫入指令的一錯誤位元并且傳送該回應(yīng)信息給該主機(jī)系統(tǒng),以將該無法寫入信息傳遞給該主機(jī)系統(tǒng)。
全文摘要
一種數(shù)據(jù)保護(hù)方法、存儲器控制器與存儲器儲存裝置,其中數(shù)據(jù)保護(hù)方法用于保護(hù)儲存在可復(fù)寫式非易失性存儲器模塊中的子目錄及此子目錄中的至少一預(yù)存文件。本方法包括從主機(jī)系統(tǒng)接收寫入指令;以及判斷此寫入指令所指示的寫入地址是否為儲存此子目錄的文件描述區(qū)塊的地址。本方法也還包括,當(dāng)此寫入地址為儲存子目錄的文件描述區(qū)塊的地址時,判斷對應(yīng)此寫入指令的數(shù)據(jù)串的其中一部分是否相同于記錄在此子目錄的文件描述區(qū)塊中的一對應(yīng)內(nèi)容。若對應(yīng)此寫入指令的數(shù)據(jù)串的其中一部分不相同于記錄在此子目錄的文件描述區(qū)塊中的一對應(yīng)內(nèi)容,則傳遞無法寫入信息給主機(jī)系統(tǒng)。
文檔編號G06F12/06GK103218319SQ20121001891
公開日2013年7月24日 申請日期2012年1月20日 優(yōu)先權(quán)日2012年1月20日
發(fā)明者林親民 申請人:群聯(lián)電子股份有限公司