專利名稱:半導(dǎo)體存儲(chǔ)卡的訪問裝置、計(jì)算機(jī)可讀記錄介質(zhì)、初始化方法和半導(dǎo)體存儲(chǔ)卡的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于訪問內(nèi)含EEPROM(電可擦可編程只讀存儲(chǔ)器)類非易失存儲(chǔ)器的半導(dǎo)體存儲(chǔ)卡的訪問裝置,一種用于記錄半導(dǎo)體存儲(chǔ)卡初始化程序的計(jì)算機(jī)可讀記錄介質(zhì),一種初始化方法以及一種半導(dǎo)體存儲(chǔ)卡,特別是還涉及一種能提高數(shù)據(jù)在所述非易失存儲(chǔ)器中重寫效率的改進(jìn)方法。
背景技術(shù):
半導(dǎo)體存儲(chǔ)卡具有體積小重量輕的優(yōu)點(diǎn),而且在多種技術(shù)領(lǐng)域里為鞏固其作為可選記錄介質(zhì)的地位而發(fā)展順利。半導(dǎo)體存儲(chǔ)卡具有一種稱為EEPROM的內(nèi)在非易失存儲(chǔ)器,該存儲(chǔ)器由相連的設(shè)備訪問,所以這種半導(dǎo)體存儲(chǔ)卡能用作記錄介質(zhì)。而且能夠以與磁盤或光盤相同的方法直接將數(shù)據(jù)寫入空白EEPROM扇區(qū)。但是,當(dāng)EEPROM扇區(qū)里已存有數(shù)據(jù),則必須將這些數(shù)據(jù)刪除,使這些扇區(qū)恢復(fù)為空白狀態(tài),新的數(shù)據(jù)才能寫入該扇區(qū)。在許多半導(dǎo)體存儲(chǔ)卡中使用的這種稱為NAND(與非)的EEPROM中,將扇區(qū)恢復(fù)為空白狀態(tài)的操作必須在32個(gè)扇區(qū)里同時(shí)執(zhí)行(在這種非易失存儲(chǔ)器中,一個(gè)32扇區(qū)組叫做一個(gè)可擦塊)。所以,所述半導(dǎo)體存儲(chǔ)卡包含一個(gè)特殊的內(nèi)部控制電路,通過將可擦塊用作訪問單元來實(shí)現(xiàn)存儲(chǔ)器管理??刹翂K的狀態(tài)控制以及對可擦塊進(jìn)行的數(shù)據(jù)讀和寫均由該控制電路管理。
這意味著所述半導(dǎo)體存儲(chǔ)卡具有與磁盤或光盤中所使用的完全不同的獨(dú)特硬件結(jié)構(gòu)(物理層)。但是,
圖1A中所示的層模型由物理層、文件系統(tǒng)層和應(yīng)用層組成,這與磁盤或光盤中所用的方式相同。圖1B所示為所述物理層的詳細(xì)配置。在該圖中,所述物理層包括一個(gè)卷區(qū),其中安排有多個(gè)可擦塊。每個(gè)可擦塊由32個(gè)扇區(qū)組成,且數(shù)據(jù)長度為16KB。圖1C中所示的文件系統(tǒng)層的配置就是通常所稱的FAT(文件分配表)文件系統(tǒng)。在FAT文件系統(tǒng)中,所述卷區(qū)的管理在一些叫做簇的單元里執(zhí)行。卷管理信息設(shè)置在所述卷區(qū)的起始部分,接著該卷管理信息設(shè)置的是用于記錄用戶數(shù)據(jù)的用戶區(qū)。所述卷管理信息包括主引導(dǎo)記錄、分區(qū)表、分區(qū)引導(dǎo)區(qū)、雙文件分配表(FAT)和根目錄登記項(xiàng)。所述雙FAT表示卷區(qū)中所包含的多個(gè)簇之間的鏈接。這類文件系統(tǒng)層的規(guī)定使數(shù)據(jù)能夠在所述應(yīng)用層中按由目錄和文件形成的分級(jí)結(jié)構(gòu)進(jìn)行存儲(chǔ)。通過設(shè)置層模型,所述訪問裝置使用與訪問磁盤或光盤這類記錄介質(zhì)相同的程序便能夠訪問半導(dǎo)體存儲(chǔ)卡,而不必注意所述物理層的區(qū)別。
但是,在所述文件系統(tǒng)的卷區(qū)中存儲(chǔ)數(shù)據(jù)時(shí),用戶有多種確定該卷區(qū)數(shù)據(jù)長短的可能。當(dāng)卷區(qū)的大小根據(jù)用戶的需求而改變時(shí),該卷區(qū)內(nèi)所含簇的數(shù)量就會(huì)相應(yīng)的增加或減少。如果簇的數(shù)量增加或減少,則由對應(yīng)于這些簇的登記項(xiàng)所組成的FAT便會(huì)相應(yīng)地增加或減少,而且包含有所述FAT的卷管理信息的大小也是這樣。如果所述卷管理信息的大小增加或減少,則接著該卷管理信息的用戶區(qū)的起始地址也將改變。該用戶區(qū)起始地址根據(jù)卷區(qū)的大小而改變。因此,每個(gè)簇的起始地址也會(huì)根據(jù)該用戶區(qū)的大小而改變。
如果每個(gè)簇的起始地址根據(jù)用戶區(qū)的大小而發(fā)生變化,那么簇可能跨越兩個(gè)可擦塊之間的邊界,并且所述卷管理信息的結(jié)束部分可能會(huì)與位于所述用戶區(qū)的開始處的一個(gè)簇設(shè)置在同一個(gè)可擦塊中。圖1D所示為當(dāng)卷管理信息的結(jié)束部分和所述位于用戶區(qū)開始的簇在同一個(gè)可擦塊中時(shí)的卷區(qū)配置。如果如該圖所示那樣設(shè)置簇,而且用戶希望修改存儲(chǔ)在一個(gè)特定簇中的數(shù)據(jù)時(shí),則必須讀其中設(shè)置了該簇的這兩個(gè)可擦塊,然后將其恢復(fù)成空白狀態(tài)。然而,非易失存儲(chǔ)器由一種在絕緣層中埋置有浮柵的存儲(chǔ)元件構(gòu)成。這種存儲(chǔ)元件只能擦除幾萬次,所以如果必須擦除兩個(gè)可擦塊以便修改一個(gè)簇的情況經(jīng)常發(fā)生,那么該非易失存儲(chǔ)器的壽命將明顯縮短。
一般來說,如果已經(jīng)完成了對寫目標(biāo)簇的擦除,則當(dāng)將32個(gè)扇區(qū)作為一個(gè)簇管理時(shí),向一個(gè)簇寫入信息能夠在32×200μs(200μs是寫每個(gè)扇區(qū)所需的時(shí)間)內(nèi)完成。但如果在能夠?qū)憯?shù)據(jù)之前必須對寫目標(biāo)進(jìn)行擦除,那么還要加上2ms的擦除期。如果該簇跨越兩個(gè)可擦塊之間的邊界,則這兩個(gè)塊都需要進(jìn)行擦除,并且擦除該寫目標(biāo)需要4ms。因此,寫數(shù)據(jù)所花的時(shí)間明顯增加。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種訪問裝置,以實(shí)現(xiàn)縮短修改可擦塊所需的處理時(shí)間,以及在半導(dǎo)體存儲(chǔ)卡中構(gòu)造一種存儲(chǔ)數(shù)據(jù)格式,使非易失存儲(chǔ)器的壽命更長。
一種稱為保密數(shù)字(SD)存儲(chǔ)卡的這類半導(dǎo)體存儲(chǔ)卡由于下述原因已在解決上述縮短處理時(shí)間和延長固定存儲(chǔ)卡壽命的問題上大有進(jìn)展。在SD存儲(chǔ)卡中,提供一塊叫做保護(hù)區(qū)的區(qū)域,一般的用戶不能使用該區(qū)域。該保護(hù)區(qū)用于存儲(chǔ)秘密信息,如用于加密數(shù)據(jù)的加密密鑰、用于通知用戶在復(fù)制版權(quán)資料時(shí)付賬的賬單信息等等。這些需要保密的數(shù)據(jù)的數(shù)量根據(jù)所使用的應(yīng)用程序的類型會(huì)發(fā)生變化,因此所述保護(hù)區(qū)的大小也必須根據(jù)應(yīng)用程序的類型而改變。如果保護(hù)區(qū)的大小發(fā)生改變,那么卷區(qū)的配置也會(huì)根據(jù)應(yīng)用程序的類型而改變。如果卷區(qū)的配置按這種方式改變,則這種配置下的某些簇經(jīng)常會(huì)跨越可擦塊之間的邊界,因此特別希望實(shí)現(xiàn)上述目的。為了實(shí)現(xiàn)上述目的,所述半導(dǎo)體存儲(chǔ)卡訪問裝置可以具有如下結(jié)構(gòu)通過將每組2j(j為0或正整數(shù))個(gè)扇區(qū)上的數(shù)據(jù)作為一個(gè)簇進(jìn)行管理,以及將一個(gè)或多個(gè)簇作為一個(gè)文件進(jìn)行管理,所述訪問裝置在包含一個(gè)由多個(gè)扇區(qū)組成的存儲(chǔ)區(qū)的半導(dǎo)體存儲(chǔ)卡上實(shí)現(xiàn)文件訪問。這里,在該存儲(chǔ)區(qū)內(nèi)的每組2i個(gè)連續(xù)扇區(qū)組成一個(gè)塊(i為0或正整數(shù)),塊是能夠執(zhí)行數(shù)據(jù)擦除的最小單位。所述訪問裝置包括一個(gè)計(jì)算單元、一個(gè)預(yù)留單元和一個(gè)記錄單元。所述計(jì)算單元根據(jù)所述存儲(chǔ)區(qū)內(nèi)要管理的簇的數(shù)量來計(jì)算卷管理信息的大小。這里,卷管理信息包括一個(gè)文件分配表,用于為每個(gè)文件指示與該文件相對應(yīng)的各簇之間的鏈接。所述預(yù)留單元預(yù)留一個(gè)用于記錄卷管理信息的第一區(qū)域,和一個(gè)用于記錄用戶數(shù)據(jù)的第二區(qū)域。第一區(qū)域所具有的數(shù)據(jù)長度大于所計(jì)算的卷管理信息,并且由m×2j(m是一個(gè)正整數(shù))個(gè)扇區(qū)組成,而第二區(qū)域由接著第一區(qū)域的扇區(qū)組成。所述記錄單元在第一區(qū)域里記錄卷管理信息,在第二區(qū)域里記錄用戶數(shù)據(jù),并將這些卷管理信息和用戶數(shù)據(jù)作為多個(gè)簇進(jìn)行管理。在該訪問裝置中,在含有m(m是一個(gè)正整數(shù))個(gè)簇的所述卷區(qū)里預(yù)留出一個(gè)區(qū)域用于記錄卷管理信息,這樣便不會(huì)存在任何所存儲(chǔ)的簇跨越兩個(gè)可擦塊的可能性。簇邊界能夠與可擦塊的邊界一致,且所述卷管理信息的邊界能夠與一個(gè)可擦塊的邊界一致。因此,當(dāng)重寫或改寫一個(gè)簇時(shí),只需擦除一個(gè)可擦塊,這樣便能夠減少可擦塊必需的擦除次數(shù)。如果可擦塊的擦除次數(shù)減少了,該半導(dǎo)體存儲(chǔ)卡便能在較短的時(shí)間內(nèi)完成寫數(shù)據(jù),而且能增加該非易失存儲(chǔ)器本身的壽命。
這里,除了所述文件分配表之外,所述卷管理信息還可以包括主引導(dǎo)記錄、分區(qū)表、分區(qū)引導(dǎo)區(qū)信息、根目錄登記項(xiàng)。另外,所述記錄單元在所述第一區(qū)域的第一扇區(qū)里記錄所述主引導(dǎo)記錄和分區(qū)表,跳過預(yù)定數(shù)量的扇區(qū)后在后續(xù)的扇區(qū)里記錄所述分區(qū)引導(dǎo)區(qū)信息、文件分配表和根目錄登記項(xiàng)。因此,所述第一區(qū)域的結(jié)束可以與根目錄登記項(xiàng)的結(jié)束相一致。在表示驅(qū)動(dòng)開始的所述主引導(dǎo)記錄和表示分區(qū)開始的分區(qū)引導(dǎo)區(qū)之間的扇區(qū)數(shù)量能夠調(diào)整,因此,所述卷管理信息可以只限于由m個(gè)扇區(qū)組成的第一區(qū)域,并與使用所保存的FAT文件系統(tǒng)的設(shè)備兼容。
這里,所述計(jì)算單元可以通過將用于記錄所述分區(qū)引導(dǎo)區(qū)信息、文件分配表和根目錄登記項(xiàng)的扇區(qū)數(shù)相加而計(jì)算出其和SUM。所述預(yù)留單元通過根據(jù){公式1}NOM+SUM=2j+m計(jì)算出m值來預(yù)留出第一區(qū)域。其中,NOM為扇區(qū)數(shù)。所述記錄單元通過將扇區(qū)數(shù)NOM減1計(jì)算出預(yù)定扇區(qū)數(shù)。即使所述文件分配表的大小發(fā)生變化,仍會(huì)預(yù)留出一個(gè)第一區(qū)域,該區(qū)域大于所述卷管理信息的大小,而且為可擦塊大小的整數(shù)倍。因此,無論怎樣計(jì)算出文件分配表的大小,總能預(yù)留出所述第一區(qū)域必需的最小尺寸。
這里,所述記錄單元可以在所述記錄卷管理信息的分區(qū)表中設(shè)置預(yù)定數(shù)量的扇區(qū)。在該結(jié)構(gòu)中,即使所述第一區(qū)域的大小發(fā)生變化,并引起所述第二區(qū)域的起始地址發(fā)生變化,仍會(huì)在所述分區(qū)表內(nèi)設(shè)置一定數(shù)量的扇區(qū),該數(shù)量通過將扇區(qū)數(shù)NOM減1得到,這樣,所述訪問裝置便能通過參照所述分區(qū)表而對用戶區(qū)進(jìn)行準(zhǔn)確地訪問。
附圖簡述圖1A所示為一種配置模型,該模型由一個(gè)物理層、一個(gè)符合ISO/IEC9293的文件系統(tǒng)層和一個(gè)應(yīng)用層組成;圖1B和1C所示為所述物理層和文件系統(tǒng)層的格式;圖1D所示為當(dāng)所述卷管理信息的結(jié)束部分和一個(gè)位于所述用戶區(qū)開始的簇被安排在同一個(gè)可擦塊中時(shí)的一種卷區(qū)配置;圖2A為半導(dǎo)體存儲(chǔ)卡的外部視圖;
圖2B和2C為訪問裝置的外部視圖;圖3A所示為半導(dǎo)體存儲(chǔ)卡和訪問裝置的內(nèi)部結(jié)構(gòu);圖3B所示為在所述訪問裝置中使用的軟件的層模型;圖4所示為非易失存儲(chǔ)器1所使用的一種數(shù)據(jù)存儲(chǔ)格式,且符合ISO/IEC9293標(biāo)準(zhǔn);圖5所示為包含在所述卷區(qū)里的分區(qū)控制區(qū)、系統(tǒng)區(qū)和用戶區(qū)的結(jié)構(gòu);圖6A示例性地表示主引導(dǎo)記錄和分區(qū)表扇區(qū)的結(jié)構(gòu);圖6B所示為分區(qū)引導(dǎo)區(qū)的結(jié)構(gòu);圖7A所示為雙FAT的結(jié)構(gòu);圖7B所示為根目錄登記項(xiàng)的結(jié)構(gòu);圖7C所示為所述用戶區(qū)的結(jié)構(gòu);圖8所示為文件存儲(chǔ)方法的實(shí)施例;圖9所示為當(dāng)文件AOB001.SA1存儲(chǔ)在多個(gè)簇中時(shí),對所述根目錄登記項(xiàng)和FAT進(jìn)行設(shè)置的實(shí)施例;圖10A所示為可擦塊和簇之間的關(guān)系;圖10B所示為n=1時(shí)的多個(gè)簇;圖10C所示為n=16時(shí)的多個(gè)簇;圖11A假設(shè)當(dāng)將s個(gè)可擦塊中的m個(gè)簇分配用于記錄卷管理信息時(shí)的狀態(tài);圖11B所示為n=1時(shí)分配用于記錄卷管理信息的簇的數(shù)量;圖11C所示為n=16時(shí)分配用于記錄卷管理信息的簇的數(shù)量;圖12是通過借助用公式11及12計(jì)算出的大小來繪制所述分區(qū)控制區(qū)、系統(tǒng)區(qū)和簇而得到的圖;圖13為表示所述卷區(qū)初始化過程的流程圖;圖14所示為第二實(shí)施方案中的訪問裝置和半導(dǎo)體存儲(chǔ)卡的結(jié)構(gòu);圖15所示為保密處理單元11的內(nèi)部結(jié)構(gòu);圖16所示為提供有保護(hù)區(qū)的卷區(qū)的詳細(xì)結(jié)構(gòu);圖17所示為所述用戶數(shù)據(jù)區(qū)的示例性配置;圖18所示為所述保護(hù)區(qū)的示例性配置;圖19所示為第三實(shí)施方案中的訪問控制單元2的內(nèi)部結(jié)構(gòu);圖20A~20D所示為當(dāng)對可擦塊進(jìn)行重寫時(shí)的處理順序;
圖21所示為第三實(shí)施方案中的文件系統(tǒng)操作單元9的內(nèi)部結(jié)構(gòu);圖22是表示由第三實(shí)施方案中的文件系統(tǒng)操作單元9執(zhí)行的詳細(xì)處理過程的流程圖;圖23A和23B所示為在第三實(shí)施方案中的一個(gè)可擦塊中執(zhí)行的擦除過程;圖24所示為第四實(shí)施方案中的訪問控制單元2的內(nèi)部結(jié)構(gòu);圖25是表示在第四實(shí)施方案中由文件系統(tǒng)操作單元9執(zhí)行的詳細(xì)處理過程的流程圖;圖26A和26B所示為在第四實(shí)施方案中的一個(gè)可擦塊中執(zhí)行的擦除過程;圖27A和27B所示為當(dāng)發(fā)出命令后存儲(chǔ)片段和輔助操作之間的因果關(guān)系;圖28是表示在一個(gè)邏輯地址上執(zhí)行的存儲(chǔ)片段消除處理的詳細(xì)處理順序的流程圖;圖29A~29D所示為對應(yīng)于圖28的流程圖中各變量s、t、u、v和y的設(shè)想模型;圖30A~30C所示為在第五實(shí)施方案中如何消除存儲(chǔ)片段;圖31所示為利用UDF中的實(shí)施用途擴(kuò)充屬性來定義一種新的擴(kuò)充屬性;圖32所示為含有備份區(qū)的半導(dǎo)體存儲(chǔ)卡的內(nèi)部結(jié)構(gòu);圖33所示為在第六實(shí)施方案中半導(dǎo)體存儲(chǔ)卡的內(nèi)部結(jié)構(gòu);以及圖34A~34C所示為在第七實(shí)施方案中由文件系統(tǒng)操作單元9執(zhí)行的處理內(nèi)容。
執(zhí)行本發(fā)明的最佳模式下面參照附圖對半導(dǎo)體存儲(chǔ)卡以及含有半導(dǎo)體存儲(chǔ)卡和訪問裝置的系統(tǒng)的實(shí)施方案進(jìn)行闡述。
圖2A為半導(dǎo)體存儲(chǔ)卡100的外部視圖,圖2B和2C為訪問裝置的外部視圖。圖3A所示為半導(dǎo)體存儲(chǔ)卡100和訪問裝置200的內(nèi)部結(jié)構(gòu)。
所述半導(dǎo)體存儲(chǔ)卡具有圖2A所示的外部結(jié)構(gòu),長32.0mm,寬24.0mm,厚2.1mm,大約是一枚郵票的大小,小到能放在用戶的一個(gè)手指尖上。該半導(dǎo)體存儲(chǔ)卡100有九個(gè)用于連接訪問裝置200的接插件,在一側(cè)有一個(gè)寫保護(hù)開關(guān)101,該開關(guān)能由用戶設(shè)置成允許或禁止改寫所記錄的數(shù)據(jù)。如圖3A下部所示,該半導(dǎo)體存儲(chǔ)卡100包括一個(gè)由NAND EEPROM構(gòu)成的非易失存儲(chǔ)器1、一個(gè)訪問控制單元2和一個(gè)工作存儲(chǔ)器3。所述訪問控制單元2根據(jù)所述訪問裝置200發(fā)出的指令將數(shù)據(jù)寫入非易失存儲(chǔ)器1、從非易失存儲(chǔ)器1讀出數(shù)據(jù)、以及擦除數(shù)據(jù)。當(dāng)要對從非易失存儲(chǔ)器讀出的數(shù)據(jù)進(jìn)行重寫或?qū)懟卦摲且资Т鎯?chǔ)器時(shí),所述工作存儲(chǔ)器3用于對這些數(shù)據(jù)進(jìn)行暫時(shí)存儲(chǔ)。
接下來闡述訪問裝置200,例如圖2B所示的一種家用音響系統(tǒng)或圖2C所示的諸如個(gè)人計(jì)算機(jī)這類的信息處理裝置。這種訪問裝置200包括一個(gè)卡接插件4、一個(gè)輔助存儲(chǔ)器5、一個(gè)CPU 6和一個(gè)主存儲(chǔ)器7。所述卡接插件4用于連接所述半導(dǎo)體存儲(chǔ)卡100。所述輔助存儲(chǔ)器5存儲(chǔ)備類用于訪問該半導(dǎo)體存儲(chǔ)卡100的軟件。所述CPU 6對該訪問裝置200進(jìn)行全面控制。所述主存儲(chǔ)器7用于當(dāng)訪問該半導(dǎo)體存儲(chǔ)卡100時(shí)暫時(shí)存儲(chǔ)所述FAT和根目錄登記項(xiàng)。圖3B表示所述訪問裝置200中所使用的軟件的配置模型。在本圖中,所述訪問裝置軟件包括應(yīng)用程序8、文件系統(tǒng)操作單元9和設(shè)備驅(qū)動(dòng)程序10。所述應(yīng)用程序8為該訪問裝置200執(zhí)行諸如音頻和視頻再現(xiàn)的預(yù)定處理。所述文件系統(tǒng)操作單元9根據(jù)來自所述應(yīng)用程序8的指令,在該文件系統(tǒng)中執(zhí)行文件的讀、寫、擦除和修改(重寫)操作。所述設(shè)備驅(qū)動(dòng)程序10通過對該半導(dǎo)體存儲(chǔ)卡100發(fā)出讀和寫命令而在該文件系統(tǒng)中執(zhí)行操作。
下面解釋所述非易失存儲(chǔ)器1的數(shù)據(jù)存儲(chǔ)格式的一個(gè)實(shí)施例。該非易失存儲(chǔ)器1用圖4所示的格式執(zhí)行數(shù)據(jù)存儲(chǔ)。在本圖中,整個(gè)非易失存儲(chǔ)器1稱為所述的卷區(qū)。該卷區(qū)劃分成多個(gè)簇,并包括一個(gè)分區(qū)控制區(qū)和一個(gè)分區(qū)(也稱常規(guī)區(qū))。該分區(qū)分為一個(gè)系統(tǒng)區(qū)和一個(gè)用戶區(qū),如圖4的右手邊所示。
所述用戶區(qū)的起始地址直接接在系統(tǒng)區(qū)后。但是,系統(tǒng)區(qū)中的雙FAT的大小根據(jù)所述用戶區(qū)的大小而變化,所以,如技術(shù)背景部分所述,用戶區(qū)的起始地址也會(huì)相應(yīng)地發(fā)生變化。該卷區(qū)中的每個(gè)扇區(qū)用相對于該卷區(qū)起始的物理地址指示。
下面依次闡述包含在該卷區(qū)中的每個(gè)區(qū)域。圖5所示為包含在所述卷區(qū)里的分區(qū)控制區(qū)、系統(tǒng)區(qū)和用戶區(qū)的結(jié)構(gòu)。
所述分區(qū)控制區(qū)包括主引導(dǎo)記錄和分區(qū)表扇區(qū),以及預(yù)留信息1/2和2/2。圖6A表示主引導(dǎo)記錄和分區(qū)表扇區(qū)的詳細(xì)結(jié)構(gòu)。在本圖中,所述主引導(dǎo)記錄和分區(qū)表扇區(qū)的內(nèi)容在一對箭頭ky1之間分級(jí)列出。該主引導(dǎo)記錄和分區(qū)表扇區(qū)包括一個(gè)主引導(dǎo)記錄,四個(gè)分區(qū)表1、2、3和4,以及一個(gè)標(biāo)志字。
所述主引導(dǎo)記錄是對該訪問裝置200的一種符號(hào)指示,其后續(xù)區(qū)域?yàn)橐晃锢硪饬x上的介質(zhì)(一塊物理介質(zhì))。在圖6A中,所述卷區(qū)只有一條主引導(dǎo)記錄,因此所述訪問裝置200將該卷區(qū)識(shí)別為一塊物理介質(zhì)。通常,如果卷區(qū)中有兩條主引導(dǎo)記錄,則所述訪問裝置200將其識(shí)別為兩塊物理介質(zhì)。
所述分區(qū)表是一張記錄分區(qū)信息的表。如箭頭ky2所示,當(dāng)所述半導(dǎo)體存儲(chǔ)卡100用作起動(dòng)驅(qū)動(dòng)器時(shí),則該分區(qū)表包括如下字段‘引導(dǎo)標(biāo)志’、‘起始端’、‘起始扇區(qū)/起始柱面’、‘系統(tǒng)ID’、‘終止端’、‘終止扇區(qū)/終止柱面’、‘相對扇區(qū)’和‘總扇區(qū)’。所述‘引導(dǎo)標(biāo)志’字段設(shè)置為‘0×80’。‘起始端’字段定義了一個(gè)分區(qū)的起始端?!鹗忌葏^(qū)/起始柱面’字段定義了該分區(qū)的起始扇區(qū)和起始柱面?!到y(tǒng)ID’定義了文件系統(tǒng)類型,該字段在所述分區(qū)的大小少于32680字節(jié)時(shí)設(shè)置為‘01’,在所述分區(qū)的大小少于65536字節(jié)時(shí)設(shè)置為‘04’?!Y(jié)束扇區(qū)/結(jié)束柱面’字段定義了該分區(qū)的結(jié)束扇區(qū)和結(jié)束柱面?!鄬ι葏^(qū)’字段定義了在該分區(qū)的起始扇區(qū)之前存在的扇區(qū)數(shù)量?!偵葏^(qū)’字段定義了該分區(qū)中的扇區(qū)數(shù)量。
下面對所述半導(dǎo)體存儲(chǔ)卡100中的分區(qū)進(jìn)行說明。該分區(qū)由所述系統(tǒng)區(qū)組成,接著是用戶區(qū),但本說明首先參照圖7C闡述用戶區(qū)。
所述用戶區(qū)在不小于一簇的單元中存儲(chǔ)文件。圖7C中的虛線箭頭ff2表示包含在用戶區(qū)內(nèi)的若干簇002、003、004、005…。圖7C中所使用的數(shù)字002、003、004、005、006、007、008…是三位十六進(jìn)制簇號(hào),僅僅用于識(shí)別每個(gè)簇。由于能夠執(zhí)行訪問的最小單位是一簇,因此用簇號(hào)來指示所述用戶區(qū)中的存儲(chǔ)位置。
所述系統(tǒng)區(qū)包括分區(qū)引導(dǎo)區(qū)、雙文件分配表和根目錄登記項(xiàng)。所述分區(qū)引導(dǎo)區(qū)、雙文件分配表FAT和根目錄登記項(xiàng)將參照圖6B、7A和7B依次闡述。
將圖6B中所示的、含有所述信息字段的擴(kuò)充FDC(軟盤控制器)描述符設(shè)置在所述分區(qū)引導(dǎo)區(qū)中。該擴(kuò)充FDC描述符包括如下字段‘轉(zhuǎn)移指令’、‘建立系統(tǒng)標(biāo)識(shí)符’、‘扇區(qū)大小’、‘每簇扇區(qū)數(shù)’、‘預(yù)留扇區(qū)計(jì)數(shù)’、‘FAT編號(hào)’(包含在所述雙FAT中的FAT編號(hào))、‘根目錄登記項(xiàng)編號(hào)’(該根目錄登記項(xiàng)的數(shù)據(jù)長度)、‘總扇區(qū)’、‘介質(zhì)標(biāo)識(shí)符’、‘每個(gè)FAT的扇區(qū)數(shù)’、‘每磁道扇區(qū)數(shù)’、‘磁面編號(hào)’、‘隱藏扇區(qū)編號(hào)’、‘總扇區(qū)數(shù)’(在系統(tǒng)區(qū)和用戶區(qū)內(nèi)的總扇區(qū)數(shù))、‘物理磁盤編號(hào)’、‘?dāng)U充引導(dǎo)記錄標(biāo)志’、‘卷ID編號(hào)’、‘卷標(biāo)’、‘文件系統(tǒng)類型’和‘標(biāo)志字’。
所述雙FAT由兩個(gè)符合ISO/IEC(國際標(biāo)準(zhǔn)化組織/國際電工技術(shù)委員會(huì))9293標(biāo)準(zhǔn)的FAT組成。每個(gè)FAT包括多條FAT登記項(xiàng),每條FAT登記項(xiàng)鏈接到一個(gè)簇。FAT登記項(xiàng)指示相應(yīng)簇是否被使用如果該簇沒有使用,則將該登記項(xiàng)置‘0’;如果該簇在使用,則置為相應(yīng)的簇號(hào)。所述簇號(hào)指示了通向緊接著該簇需要讀取的下一簇的鏈接。圖7A中所畫虛線箭頭ff1表示包含在該FAT中的多條FAT登記項(xiàng)002、003、004、005…。這些附屬于每條FAT登記項(xiàng)的數(shù)值表示相應(yīng)簇的簇號(hào)。
所述根目錄登記項(xiàng)包括多條文件登記項(xiàng),對應(yīng)于存在于該引導(dǎo)目錄中的多個(gè)文件。每條文件登記項(xiàng)包括現(xiàn)有文件的‘文件名’,‘文件標(biāo)識(shí)符’,存儲(chǔ)在該文件開始的‘文件的第一簇編號(hào)’,‘文件屬性’,表示文件何時(shí)存儲(chǔ)的‘存儲(chǔ)時(shí)間’和‘存儲(chǔ)日期’,以及‘文件長度’。
下面參照圖8通過說明如何將文件名為‘AOB001.SA1’存儲(chǔ)在所述根目錄中來闡述文件存儲(chǔ)方法。由于能夠訪問用戶區(qū)的最小單元是一簇,所以文件‘AOB001.SA1’需要存儲(chǔ)在不小于一簇的扇區(qū)的數(shù)據(jù)區(qū)內(nèi)。因此該文件‘AOB001.SA1’先劃分成簇后再存儲(chǔ)。在圖8中,將文件‘AOB001.SA1’按簇的大小劃分成五個(gè)扇區(qū),并將劃分好的扇區(qū)存儲(chǔ)在編號(hào)為003、004、005、00A和00C的簇中。
圖9所示實(shí)施例為已劃分成多個(gè)扇區(qū)的文件‘AOB001.SA1’在存儲(chǔ)時(shí),需要如何設(shè)置所述根目錄登記項(xiàng)和FAT并存儲(chǔ)。在本圖中,該文件‘AOB001.SA1’的開始存儲(chǔ)在簇003中,因此將該簇號(hào)003寫入所述根目錄登記項(xiàng)的‘文件的第一簇編號(hào)’中,以表示該簇存儲(chǔ)的是該文件的第一片段。該文件‘AOB001.SA1’的后續(xù)片段存儲(chǔ)在簇004和005中。因此,當(dāng)該FAT的登記項(xiàng)003(004)對應(yīng)于存儲(chǔ)文件‘AOB001.SA1’第一片段的簇003時(shí),該登記項(xiàng)則表示簇004是存儲(chǔ)文件‘AOB001.SA1’下一片段的簇。同樣,當(dāng)該FAT的登記項(xiàng)004(005)和005(00A)分別對應(yīng)于存儲(chǔ)文件‘AOB001.SA1’下一片段的簇004和005時(shí),這些登記項(xiàng)則分別表示簇005和00A是存儲(chǔ)該文件‘AOB001.SA1’下一片段的簇。如圖9中的箭頭fk1、fk2、fk3、fk4、fk5…所示,通過讀取其簇號(hào)被按順序?qū)懭隖AT登記項(xiàng)的那些簇,所有經(jīng)劃分文件‘AOB001.SA1’而得到的扇區(qū)均能讀取。如上所述,該半導(dǎo)體存儲(chǔ)卡100的用戶區(qū)的訪問是以簇為單位進(jìn)行的,每個(gè)簇均與一條FAT登記項(xiàng)相聯(lián)系。應(yīng)當(dāng)指出將與存儲(chǔ)AOB文件結(jié)束片段的簇(圖9實(shí)施例中的簇00C)相對應(yīng)的FAT登記項(xiàng)設(shè)置成簇號(hào)‘FFF’,以表示相應(yīng)簇存儲(chǔ)的是文件的結(jié)束片段。
上述闡述給出了本發(fā)明所述固定存儲(chǔ)器1中的文件系統(tǒng)的概況。下面的闡述將著重于實(shí)施方案的原理,闡述如何調(diào)整簇邊界和可擦塊的邊界,也就是如何使所述系統(tǒng)區(qū)和用戶區(qū)的邊界與兩個(gè)可擦塊之間的邊界相一致。該實(shí)施方案的兩種改進(jìn)方案目的是實(shí)現(xiàn)這種邊界的一致。第一種改進(jìn)方案是將簇的大小設(shè)置為可擦塊大小的1/n(n是1、2、4、8、16或32)。圖10A所示為可擦塊和簇之間的關(guān)系。這里,一簇定義為一個(gè)可擦塊大小的1/n,即16KB的1/n(32扇區(qū)的1/n)。圖10B所示為n=1時(shí)的多個(gè)簇,圖10C所示為n=16時(shí)的多個(gè)簇。
第二種改進(jìn)方案是在所述卷區(qū)中劃出一塊區(qū)域,其大小是一簇的m倍,用于記錄所述卷管理信息。圖11A假設(shè)了當(dāng)將s個(gè)可擦塊中的s個(gè)簇的m個(gè)簇分配用于記錄卷管理信息時(shí)的狀態(tài)。如果將m個(gè)簇劃出用于記錄卷管理信息,那么所述卷管理信息將占用這s個(gè)可擦塊的m/n區(qū)域,剩余(s·n-m)/n區(qū)域?qū)潪橛脩魠^(qū)。
通過將所述卷管理信息的大小設(shè)置成簇大小的m倍,便能將卷管理信息和s·n-m個(gè)簇壓縮,使得簇不會(huì)跨越兩個(gè)可擦塊之間的邊界。
圖11B所示為n=1時(shí)分配用于記錄卷管理信息的簇的數(shù)量,圖11C所示為n=16時(shí)分配用于記錄卷管理信息的簇的數(shù)量。這些圖清楚表示通過設(shè)置所述卷管理信息,多個(gè)簇與多個(gè)可擦塊準(zhǔn)確配合,這樣不會(huì)有簇跨越可擦塊之間的邊界。其大小已按該方法調(diào)整過的卷區(qū)的詳細(xì)設(shè)置如圖5所示。在該圖中,所述分區(qū)控制區(qū)的大小為NOM,分區(qū)引導(dǎo)區(qū)的大小為RSC,雙FAT的大小為尺寸1×2,根目錄登記項(xiàng)的大小為RDE,總扇區(qū)大小為TS,一簇所含的扇區(qū)數(shù)為SC。
圖5中,雙FAT中FAT的大小“尺寸1”根據(jù)總扇區(qū)大小TS確定。特別是,該值用下述公式11計(jì)算得出。公式11對于FAT12尺寸1(((((TS-(RSC+RDE))/SC)+2)×12/8)+511)/512對于FAT16尺寸1(((((TS-(RSC+RDE))/SC)+2)×16/8)+511)/512這里,F(xiàn)AT12代表一個(gè)為每個(gè)FAT登記項(xiàng)分配12比特的文件系統(tǒng),F(xiàn)AT16代表一個(gè)為每個(gè)FAT登記項(xiàng)分配16比特的文件系統(tǒng)。
在公式11中,(TS-(RSD+RDE))為用戶區(qū)進(jìn)行記錄所需簇的數(shù)量。并將該數(shù)加上指示數(shù)2,其結(jié)果再與該FAT登記項(xiàng)的字節(jié)長度(12或16)相乘,然后除以8便得到該FAT的字節(jié)長度。在該計(jì)算結(jié)果上加上511字節(jié)的偏移值,并將該結(jié)果除以一個(gè)扇區(qū)的字節(jié)長度512計(jì)算出存儲(chǔ)一個(gè)FAT所需的扇區(qū)數(shù)。如果FAT的數(shù)據(jù)長度為1字節(jié),那么用521除該FAT數(shù)據(jù)將會(huì)得到FAT的扇區(qū)數(shù)被計(jì)算為0。但是,公式11加上偏移值511將確保所計(jì)算的尺寸1具有至少一個(gè)扇區(qū)。
在圖5中,需指出的重要一點(diǎn)是所述被稱為NOM的分區(qū)控制區(qū)大小。將NOM的值設(shè)置為‘SC+α’以保證所述分區(qū)控制區(qū)和系統(tǒng)區(qū)屬于不同的簇。按此方法設(shè)置NOM的原因是為了在系統(tǒng)區(qū)修改簇發(fā)生失誤時(shí)防止對分區(qū)控制區(qū)的沖擊影響。換句話說,如果該分區(qū)中所述主引導(dǎo)記錄和分區(qū)表扇區(qū)受到這種修改失誤的損壞,那么該半導(dǎo)體存儲(chǔ)卡100將不再由所述訪問裝置200識(shí)別為授權(quán)的記錄介質(zhì)。為了避免這種不利情況而將NOM的值設(shè)置為SC+α。
SC+α值的設(shè)置按如下方法進(jìn)行。用(RSC+RDE+尺寸1×2)除以SC計(jì)算出α值,這樣RSC、尺寸1×2和RDE的和是SC的整數(shù)倍,并從SC中減去這次計(jì)算的余數(shù)。如果已考慮這些因素,則NOM按公式12計(jì)算。公式12NOM=(SC-(RSC+RDE+尺寸1×2)%SC)+SC如按該方法定義α,將會(huì)形成所述分區(qū)控制區(qū)和用戶區(qū)以便準(zhǔn)確地配合多個(gè)可擦塊,并且所述系統(tǒng)區(qū)和用戶區(qū)之間的邊界將與可擦塊的邊界一致。如果能實(shí)現(xiàn)這種邊界對準(zhǔn),那么所有后續(xù)簇的邊界將與可擦塊的邊界一致。
這里,所述實(shí)施例說明了當(dāng)SC為32扇區(qū)(16KB),RDE為32扇區(qū),RSC為1扇區(qū),且TS為65600扇區(qū)時(shí)如何計(jì)算該NOM和尺寸1。如果所述雙FAT的類型為FAT12,則用公式11按下述方法計(jì)算尺寸1。
尺寸1=(((((TS-(RSC+RDE))/SC)+2)×12/8)+511)/512=(((((65600-(1+32))/SC)+2)×12/8)+511)/512=7扇區(qū)另外,用公式12按下述方法計(jì)算該NOM。
NOM=(SC-(RSC+RDE+尺寸1×2)%SC)+SC=(32-(1+32+7×2)%32)+32=47扇區(qū)圖12根據(jù)計(jì)算出的大小列舉出分區(qū)控制區(qū)、系統(tǒng)區(qū)和簇。所述主引導(dǎo)記錄和分區(qū)表扇區(qū),以及預(yù)留信息1/2安排在扇區(qū)PSN000~PSN031,所述預(yù)留信息2/2、分區(qū)引導(dǎo)區(qū)和雙FAT安排在扇區(qū)PSN032~PSN063。所述根目錄登記項(xiàng)安排在扇區(qū)PSN064~PSN095。在該卷區(qū)中,32個(gè)扇區(qū)構(gòu)成一個(gè)可擦塊,因此,所述主引導(dǎo)記錄、分區(qū)表和預(yù)留信息1/2安排在第一可擦塊001中,所述預(yù)留信息2/2、分區(qū)引導(dǎo)區(qū)和雙FAT安排在第二可擦塊002中,所述根目錄登記項(xiàng)安排在第三可擦塊003中。將所述根目錄登記項(xiàng)存儲(chǔ)在同樣大小的可擦塊中,以便使用戶區(qū)與系統(tǒng)區(qū)之間的邊界與可擦塊之間的邊界相匹配。
當(dāng)所述文件系統(tǒng)操作單元9在非易失存儲(chǔ)器1上執(zhí)行初始化時(shí),便會(huì)實(shí)現(xiàn)上述卷區(qū)的配置。執(zhí)行該初始化處理的程序?qū)⒄請D13的流程圖進(jìn)行闡述。
在步驟S1,根據(jù)要格式化區(qū)域的大小(TS),以及所述半導(dǎo)體存儲(chǔ)卡100、訪問裝置200所使用的操作系統(tǒng)和來自用戶的指令的總存儲(chǔ)量,由所述文件系統(tǒng)操作單元9確定簇的大小。
一旦確定了簇的大小,在步驟S2,所述文件系統(tǒng)操作單元9利用簇的大小SC和總扇區(qū)大小TS來確定應(yīng)當(dāng)使用哪個(gè)文件系統(tǒng)FAT12或FAT16。一旦確定了文件系統(tǒng)FAT12和FAT16之一,所述文件系統(tǒng)操作單元9便在步驟S3確定所述根目錄登記項(xiàng)的長度RDE(在這些實(shí)施方案中RDE定為32扇區(qū)),接著,在步驟S4中確定所述分區(qū)引導(dǎo)區(qū)的長度RSC(在這些實(shí)施方案中RSC定為1個(gè)扇區(qū))。一旦得出RDE和RSC,所述文件系統(tǒng)操作單元9便會(huì)在步驟S5中用公式11計(jì)算出該FAT的數(shù)據(jù)長度。然后,在步驟S6中,所述文件系統(tǒng)操作單元9用公式12計(jì)算出NOM,以致所述主引導(dǎo)記錄和分區(qū)引導(dǎo)區(qū)位于不同的簇中。
在上述步驟S5~S7中執(zhí)行的處理實(shí)際上與前述公式11和12中執(zhí)行的處理完全一樣。但是,在該流程圖中先介紹在步驟S7~S9中執(zhí)行的處理。在步驟S7,所述文件系統(tǒng)操作單元9用公式13計(jì)算出所述用戶區(qū)中的簇?cái)?shù)CN。公式13CN=(TS-(RSC+RDE+尺寸1×2+NOM))/SC在步驟S8,所述文件系統(tǒng)操作單元9用下面的公式14計(jì)算出FAT的數(shù)據(jù)長度。公式14對于FAT12尺寸2=(((CN+2)×12/8+511)/512對于FAT16尺寸2=(((CN+2)×16/8+511)/512在步驟S9,所述文件系統(tǒng)操作單元9將在步驟S5中計(jì)算出的尺寸1與在步驟S8中計(jì)算出的尺寸2進(jìn)行比較,如果這兩個(gè)值相等,則結(jié)束處理。如果這兩個(gè)值不相等,則所述文件系統(tǒng)操作單元9在步驟S10用尺寸1替代尺寸2,轉(zhuǎn)到步驟S6,并計(jì)算NOM。由于尺寸1現(xiàn)在因替代而成為一個(gè)不同值,因此通過轉(zhuǎn)至步驟S6能計(jì)算出一個(gè)不同的NOM。然后,所述文件系統(tǒng)操作單元9根據(jù)新計(jì)算出的NOM在步驟S8再計(jì)算尺寸2,并且,如果尺寸1和尺寸2相等,那么步驟S9為“是”,并結(jié)束處理。
‘a(chǎn)b經(jīng)上述處理計(jì)算得到的NOM置入所述分區(qū)表中的‘相對扇區(qū)’字段,以表示在該分區(qū)起始扇區(qū)之前存在的扇區(qū)數(shù)量,并將TS置入該分區(qū)表中的‘總扇區(qū)’字段。
將所述SC置入分區(qū)引導(dǎo)區(qū)中的‘每簇扇區(qū)數(shù)’字段,以表示每簇中所含的扇區(qū)數(shù)。此外,將表示扇區(qū)數(shù)量的RDE與扇區(qū)長度512字節(jié)相乘,然后除以32便得到文件登記項(xiàng)的數(shù)量,再將該數(shù)量置入所述分區(qū)引導(dǎo)區(qū)中的‘根目錄登記項(xiàng)編號(hào)’字段。將尺寸1置入所述分區(qū)引導(dǎo)區(qū)中的‘每個(gè)FAT的扇區(qū)數(shù)’字段,表示每個(gè)FAT中的扇區(qū)數(shù)量。所述訪問裝置200在確定所述雙FAT、根目錄登記項(xiàng)和用戶區(qū)的位置時(shí),將參考置入分區(qū)表和分區(qū)引導(dǎo)區(qū)的這些值。
這是對圖13中的流程圖的解釋。下述示例性計(jì)算將說明當(dāng)TS為65568時(shí),如何計(jì)算所述分區(qū)和系統(tǒng)的大小。
由于TS為65568,在步驟S1,所述文件系統(tǒng)操作單元9將簇的大小確定為32扇區(qū)。一旦將簇的大小確定為32扇區(qū),在步驟S2,所述文件系統(tǒng)操作單元9就會(huì)根據(jù)所述簇的大小SC和總扇區(qū)的大小TS確定應(yīng)使用FAT12文件系統(tǒng)。在這些實(shí)施方案中,RDE和RSC分別定為32扇區(qū)和1扇區(qū),因此不執(zhí)行步驟S3和S4的計(jì)算。在步驟S5,所述文件操作系統(tǒng)用公式11和12計(jì)算所述FAT的數(shù)據(jù)長度。這里,由于FAT為FAT12,所以進(jìn)行下面的計(jì)算。
尺寸1=(((((TS-(RSC+RDE))/SC)+2)×12/8)+511)/512=(((((65568-(1+32))/SC)+2)×12/8)+511)/512=7扇區(qū)一旦計(jì)算出尺寸1,在步驟S6,所述文件系統(tǒng)操作單元9用公式12計(jì)算NOM,以便使所述主引導(dǎo)記錄和分區(qū)引導(dǎo)區(qū)位于不同的簇中。
NOM=(SC-(RSC+RDE+尺寸1×2)%SC)+SC=(32-(1+32+7×2)%32)+32=49扇區(qū)一旦計(jì)算出NOM,在步驟S7,所述文件系統(tǒng)操作單元9用公式13計(jì)算在所述常規(guī)區(qū)中的簇?cái)?shù)。
CN=(TS-(RSC+RDE+尺寸1×2+NOM))/SC=(65568-(1+32+7×2+49))/32=2046扇區(qū)在步驟S8,所述文件系統(tǒng)操作單元9用公式14計(jì)算所述FAT的數(shù)據(jù)長度。
對于FAT12尺寸2=(((CN+2)×12/8)+511)/512=(((2046+2)×12/8)+511)/512=6扇區(qū)在步驟S9,所述文件系統(tǒng)操作單元9比較在步驟S5計(jì)算出的尺寸1和在步驟S8計(jì)算出的尺寸2。這里,尺寸1為7扇區(qū),尺寸2為6扇區(qū)。由于這兩個(gè)值不相等,所以所述文件系統(tǒng)操作單元9轉(zhuǎn)到步驟S10,用尺寸1替代尺寸2,再轉(zhuǎn)到步驟S6并計(jì)算NOM。
NOM=(SC-(RSC+RDE+尺寸1×2)%SC)+SC=(32-(1+32+6×2)%32)+32=51扇區(qū)一旦計(jì)算出NOM,在步驟S7,所述文件系統(tǒng)操作單元9計(jì)算所述常規(guī)區(qū)中的簇?cái)?shù)。
CN=(TS-(RSC+RDE+尺寸1×2+NOM))/SC(65568-(1+32+6×2+49))/32=2046扇區(qū)在步驟S8,計(jì)算所述FAT的數(shù)據(jù)長度。
對于FAT12尺寸2=(((CN+2)×12/8)+511)/512=(((2046+2)×12/8)+511)/512=6接著該計(jì)算,在步驟S9,所述文件系統(tǒng)操作單元9比較尺寸1和尺寸2,由于這兩個(gè)值相等,所以流程圖的處理結(jié)束。
如上所示,由于本實(shí)施方案能夠計(jì)算出NOM,所以所述分區(qū)和系統(tǒng)區(qū)的大小是所述可擦塊數(shù)量的整數(shù)倍,因此保證了簇的存儲(chǔ)不會(huì)跨越兩個(gè)可擦塊。簇的邊界與可擦塊的邊界一致,而所述卷管理信息的邊界與一個(gè)可擦塊的邊界一致,這樣,當(dāng)對一個(gè)簇進(jìn)行重寫或改寫時(shí),需要擦除的可擦塊的數(shù)量就限制為一個(gè),因此減少了任意一個(gè)可擦塊需要擦除的次數(shù)。因而縮短了向所述半導(dǎo)體存儲(chǔ)卡100寫入數(shù)據(jù)所需的時(shí)間,而且能夠延長非易失存儲(chǔ)器1的壽命。第二實(shí)施方案第二實(shí)施方案提出一種安排將所述卷區(qū)分為一個(gè)普通用戶能訪問的區(qū)域(用戶數(shù)據(jù)區(qū))和一個(gè)存儲(chǔ)保密數(shù)據(jù)的區(qū)域(保護(hù)區(qū))。
第二實(shí)施方案中的訪問裝置200和半導(dǎo)體存儲(chǔ)卡100的結(jié)構(gòu)如圖14所示。在該圖中所示的內(nèi)部結(jié)構(gòu)中,與圖3A中所示的相反,所述非易失存儲(chǔ)器1已提供了一個(gè)保護(hù)區(qū),而且所述半導(dǎo)體存儲(chǔ)卡100和訪問裝置200也分別提供了保密處理單元11和12。
下面闡述提供的保密處理單元11,該單元執(zhí)行對所述非易失存儲(chǔ)器1中的保護(hù)區(qū)的保密讀和寫。如圖15所示,該保密處理單元11包括系統(tǒng)區(qū)13、隱藏區(qū)14、AKE處理單元15、Ks解密單元16和Ks加密單元17。
所述系統(tǒng)區(qū)13是一塊用于存儲(chǔ)介質(zhì)密鑰程序塊(MKB)和介質(zhì)-ID的只讀區(qū)域。存儲(chǔ)在該區(qū)域中的MKB和介質(zhì)-ID不能改寫。假設(shè)所述半導(dǎo)體存儲(chǔ)卡100和訪問裝置200相連,便通過該訪問裝置200讀取MKB和介質(zhì)-ID。如果所述訪問裝置200利用該MKB、介質(zhì)-ID和一種內(nèi)部存儲(chǔ)的設(shè)備密鑰Kd正確地執(zhí)行特定計(jì)算,便能得到正確的加密密鑰Kmu。
所述隱藏區(qū)14存儲(chǔ)所述加密密鑰Kmu的正確值,換句話說,如果所述訪問裝置200使用有效的設(shè)備密鑰Kd執(zhí)行正確的計(jì)算,就應(yīng)得到所述加密密鑰Kmu。
所述AKE(驗(yàn)證和密鑰交換)處理單元15用詢問-響應(yīng)方法執(zhí)行所述訪問裝置200與半導(dǎo)體存儲(chǔ)卡100之間的相互驗(yàn)證,校驗(yàn)相對設(shè)備的真實(shí)性,如果該相對設(shè)備無效,則停止處理。但如果該相對設(shè)備有效,則在所述訪問裝置200與半導(dǎo)體存儲(chǔ)卡100之間共享一個(gè)加密密鑰(對話關(guān)鍵字Ks)。由所述訪問裝置200執(zhí)行的驗(yàn)證分三個(gè)階段首先,在第一詢問階段,該訪問裝置200產(chǎn)生一個(gè)隨機(jī)數(shù),用所述加密密鑰Kmu對該隨機(jī)數(shù)進(jìn)行加密,并將該加密的隨機(jī)數(shù)作為詢問值A(chǔ)傳遞給所述半導(dǎo)體存儲(chǔ)卡100;其次,在第一響應(yīng)階段,該半導(dǎo)體存儲(chǔ)卡100利用內(nèi)部存儲(chǔ)的加密密鑰Kmu解密所述詢問值A(chǔ),并將該解密值作為響應(yīng)值B傳遞給所述訪問裝置200;最后,在第一校驗(yàn)階段,所述訪問裝置200利用其加密密鑰Kmu解密內(nèi)部存儲(chǔ)的所述詢問值A(chǔ),并將該解密值與所述半導(dǎo)體存儲(chǔ)卡100傳遞來的響應(yīng)值B進(jìn)行比較。
由所述半導(dǎo)體存儲(chǔ)卡100執(zhí)行的驗(yàn)證也分三個(gè)階段首先,在第二詢問階段,該半導(dǎo)體存儲(chǔ)卡100產(chǎn)生一個(gè)隨機(jī)數(shù),用所述加密密鑰Kmu對該隨機(jī)數(shù)進(jìn)行加密,并將該加密的隨機(jī)數(shù)作為詢問值C傳遞給所述訪問裝置200;其次,在第二響應(yīng)階段,該訪問裝置200利用內(nèi)部存儲(chǔ)的加密密鑰Kmu解密所述詢問值C,并將該解密值作為響應(yīng)值D傳遞給所述半導(dǎo)體存儲(chǔ)卡100;最后,在第二校驗(yàn)階段,所述半導(dǎo)體存儲(chǔ)卡100利用其加密密鑰Kmu解密內(nèi)部存儲(chǔ)的所述詢問值C,并將該解密值與所述訪問裝置200傳遞來的響應(yīng)值D進(jìn)行比較。
如果所述訪問裝置200使用無效的加密密鑰執(zhí)行相互驗(yàn)證,則第一校驗(yàn)階段的詢問值A(chǔ)和響應(yīng)值B,以及第二校驗(yàn)階段的詢問值C和響應(yīng)值D將被判定為非匹配值,而且將停止相互驗(yàn)證。但是,如果所述相對設(shè)備的真實(shí)性得到確認(rèn),那么所述AKE處理單元15將計(jì)算出詢問值A(chǔ)和詢問值C的異或值,并通過利用所述加密密鑰Kmu解密該異或值便得到所述對話關(guān)鍵字Ks。
當(dāng)與所述半導(dǎo)體存儲(chǔ)卡100相連的訪問裝置200輸出要寫入所述保護(hù)區(qū)的加密數(shù)據(jù)時(shí),所述Ks解密單元16用所述對話關(guān)鍵字Ks解密這些在輸出前就已經(jīng)由該對話關(guān)鍵字Ks加密了的數(shù)據(jù)。將通過該解密得到的這些數(shù)據(jù)寫入所述保護(hù)區(qū)內(nèi),作為原始數(shù)據(jù)。
所述Ks加密單元17接到由與所述半導(dǎo)體存儲(chǔ)卡100相連的訪問裝置200發(fā)出的讀數(shù)據(jù)指令,用所述對話關(guān)鍵字Ks加密存儲(chǔ)在保護(hù)區(qū)中的數(shù)據(jù),然后向訪問裝置200輸出這些加密的數(shù)據(jù)。對所述保護(hù)區(qū)執(zhí)行數(shù)據(jù)的讀和寫是在所述Ks解密單元16執(zhí)行解密和Ks加密單元17執(zhí)行加密之后進(jìn)行的,所以,只有當(dāng)所述半導(dǎo)體存儲(chǔ)卡100和相連的訪問裝置200成功地執(zhí)行了AKE處理時(shí),才能訪問所述保護(hù)區(qū)。
下面參照圖16中的包含所述保護(hù)區(qū)的卷區(qū)詳圖來闡述所述第二實(shí)施方案的卷區(qū)格式。在本圖中,如果所述卷區(qū)總的大小為‘卷大小’,那么用戶區(qū)是一塊從該卷區(qū)開始處延伸出的‘卷大小×(1-β)’,并將接著該用戶區(qū)的‘卷大小×β’區(qū)域劃為所述保護(hù)區(qū)。其中,β的最小設(shè)定值為0.01。例如,如果卷大小為64MB且β為0.01,則保護(hù)區(qū)設(shè)定在640KB。在所述文件系統(tǒng)操作單元9執(zhí)行圖9所示的初始化處理時(shí),便可實(shí)現(xiàn)所數(shù)用戶數(shù)據(jù)區(qū)和保護(hù)區(qū)的格式。
如下描述為一示例性計(jì)算,計(jì)算當(dāng)所述用戶數(shù)據(jù)區(qū)中的總扇區(qū)數(shù)TS為124160時(shí),該用戶數(shù)據(jù)區(qū)中的分區(qū)控制區(qū)和系統(tǒng)區(qū)的大小。
由于TS為124160,在步驟S1,所述文件系統(tǒng)操作單元9確定簇的大小為32扇區(qū)。一旦確定了簇的大小為32扇區(qū),在步驟S2,該文件系統(tǒng)操作單元9便參照簇的大小SC和總扇區(qū)大小TS確定應(yīng)使用FAT12文件系統(tǒng)。在這些實(shí)施方案中,所述RDE和RSC的大小分別定為32扇區(qū)和1扇區(qū),所以不執(zhí)行步驟S3和S4的計(jì)算。在步驟5,該文件操作系統(tǒng)用公式11和12計(jì)算所述FAT的數(shù)據(jù)長度。這里,由于該FAT是FAT12,所以執(zhí)行下述計(jì)算。
尺寸1=(((((TS-(RSC+RDE))/SC)+2)×12/8)+511)/512=(((((124160-(1+32))/32)+2)×12/8)+511)/512
=12扇區(qū)一旦計(jì)算出尺寸1,在步驟S6,所述文件系統(tǒng)操作單元9用公式12計(jì)算NOM,以便使所述主引導(dǎo)記錄和分區(qū)引導(dǎo)區(qū)位于不同的簇中。
NOM=(SC-(RSC+RDE+尺寸1×2)%SC)+SC=(32-(1+32+12×2)%32)+32=39扇區(qū)一旦計(jì)算出NOM,在步驟S7,所述文件系統(tǒng)操作單元9用公式13計(jì)算在所述常規(guī)區(qū)中的簇?cái)?shù)。
CN=(TS-(RSC+RDE+尺寸1×2+NOM))/SC=(124160-(1+32+12×2+49))/32=3877扇區(qū)在步驟S8,所述文件系統(tǒng)操作單元9用公式14重新計(jì)算所述FAT的數(shù)據(jù)長度。
對于FAT12尺寸2=(((CN+2)×12/8)+511)/512=(((3877+2×12/8)+511)/512=12扇區(qū)在步驟S9,所述文件系統(tǒng)操作單元9比較在步驟S5計(jì)算出的尺寸1和在步驟S8計(jì)算出的尺寸2。這里,所計(jì)算的尺寸1和尺寸2均為12扇區(qū),所以判定這兩個(gè)值相等,該流程圖處理結(jié)束。
當(dāng)所述系統(tǒng)區(qū)和分區(qū)控制區(qū)是通過用上述計(jì)算公式計(jì)算出的TS、尺寸1和NOM構(gòu)成時(shí),所述保護(hù)區(qū)的配置如圖17所示。如果比較該圖與圖12,能夠看出所述雙FAT的大小已由14扇區(qū)增加為24扇區(qū),而預(yù)留信息1/2和2/2的大小已由17扇區(qū)縮減為7扇區(qū),這樣,分區(qū)控制區(qū)和系統(tǒng)區(qū)恰好安排在3個(gè)可擦塊中。
如下描述為一示例性計(jì)算,計(jì)算所述用戶數(shù)據(jù)區(qū)中的總扇區(qū)數(shù)TS為1280時(shí),所述保護(hù)區(qū)中的分區(qū)控制區(qū)和系統(tǒng)區(qū)的大小。
由于TS為1280,在步驟S1,所述文件系統(tǒng)操作單元9確定簇的大小為2扇區(qū)(1KB的存儲(chǔ)器,并只有所述用戶數(shù)據(jù)區(qū)大小的1/16)。一旦確定了簇的大小為2扇區(qū),在步驟S2,該文件系統(tǒng)操作單元9便參照簇的大小SC和總扇區(qū)大小TS確定應(yīng)使用FAT12文件系統(tǒng)。在這些實(shí)施方案中,所述RDE和RSC的大小分別定為32扇區(qū)和1扇區(qū),所以不執(zhí)行步驟S3和S4。在步驟5,該文件操作系統(tǒng)用公式11和12計(jì)算所述FAT的數(shù)據(jù)長度。這里,由于該FAT是FAT12,所以執(zhí)行下述計(jì)算。
尺寸1=(((((TS-(RSC+RDE))/SC)+2)×12/8)+511)/512=(((((1280-(1+32))/2)+2)×12/8)+511)/512=2扇區(qū)一旦計(jì)算出尺寸1,在步驟S6,所述文件系統(tǒng)操作單元9用公式12計(jì)算NOM,以便使所述主引導(dǎo)記錄和分區(qū)引導(dǎo)區(qū)位于不同的簇中。
NOM=(SC-(RSC+RDE+尺寸1×2)%SC)+SC=(2-(1+32+2×2)%2)+2=3扇區(qū)一旦計(jì)算出NOM,在步驟S7,所述文件系統(tǒng)操作單元9用公式13計(jì)算在所述常規(guī)區(qū)中的簇?cái)?shù)。
CN=(TS-(RSC+RDE+尺寸1×2+NOM))/SC=(1280-(1+32+2×2+3))/32=620扇區(qū)在步驟S8,所述文件系統(tǒng)操作單元9用公式14計(jì)算所述FAT的數(shù)據(jù)長度。
對于FAT12尺寸2=(((CN+2)×12/8)+511)/512=(((620+2)×12/8)+511)/512=2在步驟S9,所述文件系統(tǒng)操作單元9比較在步驟S5計(jì)算出的尺寸1和在步驟S8計(jì)算出的尺寸2。這里,所計(jì)算的尺寸1和尺寸2均為2扇區(qū),所以判定這兩個(gè)值相等,該流程圖處理結(jié)束。
當(dāng)所述系統(tǒng)區(qū)和分區(qū)控制管理區(qū)是通過用上述計(jì)算公式計(jì)算出的TS、尺寸1和NOM的大小構(gòu)成時(shí),所述保護(hù)區(qū)的安排如圖18所示。在本實(shí)施方案中,用戶數(shù)據(jù)區(qū)和保護(hù)區(qū)均含有一個(gè)分區(qū)控制區(qū)、一個(gè)系統(tǒng)區(qū)和一個(gè)保護(hù)區(qū),所以,所述訪問裝置200將每個(gè)區(qū)均當(dāng)作是一塊獨(dú)立的物理介質(zhì)。這樣,雖然所述用戶數(shù)據(jù)區(qū)和保護(hù)區(qū)所含簇的大小不同,但該用戶數(shù)據(jù)區(qū)和保護(hù)區(qū)的邊界均能夠與可擦塊的邊界一致。
在上述實(shí)施方案中,即使所述卷區(qū)包括兩個(gè)區(qū)域—用戶數(shù)據(jù)區(qū)和保護(hù)區(qū),這些區(qū)域的邊界也與可擦塊的邊界一致,所以,簇的重寫能夠在短時(shí)間內(nèi)完成。而且,減少了可擦塊需要擦除的次數(shù),因此,不會(huì)不必要地縮短所述非易失存儲(chǔ)器的壽命。第三實(shí)施方案第三實(shí)施方案涉及一種在擦除可擦塊中存儲(chǔ)的數(shù)據(jù)時(shí)所使用的改進(jìn)方法,其中所述可擦塊用邏輯地址和物理地址進(jìn)行管理。在本實(shí)施方案中的訪問控制單元2的結(jié)構(gòu)如圖19所示。圖中,該訪問控制單元2包括指令解碼單元21、邏輯/物理地址轉(zhuǎn)換單元22、讀控制單元23、分配變換單元24、寫控制單元25、擦除控制單元26和修改控制單元27。
所述指令解碼單元21接收由訪問裝置200發(fā)出的指令,并在發(fā)出點(diǎn)解碼出指令的原始內(nèi)容。如果收到讀指令,指令解碼單元21命令所述讀控制單元23從非易失存儲(chǔ)器1中讀出數(shù)據(jù)(讀)。如果收到寫指令,指令解碼單元21則命令所述寫控制單元25將數(shù)據(jù)寫入非易失存儲(chǔ)器1(寫)。如果收到指定一個(gè)未經(jīng)擦除的塊作為訪問目標(biāo)的寫指令,則指令解碼單元21命令所述修改控制單元修改(重寫)存儲(chǔ)在非易失存儲(chǔ)器1中的數(shù)據(jù)(修改)。如果收到獲取狀態(tài)指令,指令解碼單元21則命令所述分配變換單元24讀出已擦塊的列表(稍后再解釋該規(guī)定)。如果收到擦除指令,指令解碼單元21則命令所述分配變換單元24擦除所指定的可擦塊。
所述邏輯/物理地址轉(zhuǎn)換單元22包含一個(gè)表示可擦塊的邏輯和物理地址之間對應(yīng)關(guān)系的地址對應(yīng)表。當(dāng)由所述訪問裝置200確定出所要訪問的邏輯地址時(shí),該邏輯/物理地址轉(zhuǎn)換單元22便參照所述地址對應(yīng)表中所示的該邏輯地址的對應(yīng)關(guān)系,將該邏輯地址轉(zhuǎn)換為相應(yīng)的物理地址,并向所述讀控制單元23、分配變換單元24和修改控制單元27輸出該物理地址。
當(dāng)所述訪問裝置200發(fā)出讀指令時(shí),便由所述寫控制單元23進(jìn)行控制,使得該訪問裝置200能夠讀出存儲(chǔ)在該讀指令所定義的讀位置上的數(shù)據(jù)。
所述分配變換單元24存有一個(gè)已擦塊列表,在該列表中,已經(jīng)擦除的可擦塊的物理地址按先進(jìn)先出(FIFO)的格式安排。當(dāng)所述訪問裝置200發(fā)出讀指令,該分配變換單元24則判斷被定義為讀目標(biāo)的邏輯地址所對應(yīng)的物理地址是否在該已擦塊列表中存在。如果判斷這個(gè)物理地址存在,則該分配變換單元14向所述寫控制單元25輸出該物理地址,并將該物理地址從已擦塊列表中刪除。如果相應(yīng)物理地址所指示的可擦塊還未經(jīng)擦除,則該分配變換單元24就會(huì)將所述已擦塊列表的始端物理地址作為讀目標(biāo)分配給該邏輯地址,并向所述讀控制單元25輸出這個(gè)已分配的物理地址,而將先前作為讀目標(biāo)分配給該邏輯地址的那個(gè)物理地址加在所述已擦塊列表的結(jié)尾處。另外,當(dāng)該訪問裝置200發(fā)出獲取狀態(tài)指令時(shí),所述分配變換單元24便將該已擦塊列表中所示的物理地址轉(zhuǎn)換成邏輯地址,并向該訪問裝置200輸出一個(gè)用邏輯地址表指示已擦除可擦塊的已擦塊列表。如果指示一個(gè)邏輯地址的擦除指令已經(jīng)由該訪問裝置200發(fā)出,那么所述分配變換單元24將控制操作以便將對應(yīng)于該邏輯地址的物理地址加入到所述的已擦塊列表中。
當(dāng)收到對一個(gè)塊進(jìn)行寫操作的寫指令時(shí),所述寫控制單元25便根據(jù)分配變換單元24輸出的物理地址將數(shù)據(jù)寫入非易失存儲(chǔ)器1中。
擦除控制單元26按固定間隔進(jìn)行輪詢來確定一個(gè)未擦塊的物理地址是否已被加到所述已擦塊列表中。如這個(gè)物理地址已被添加,則該擦除控制單元24擦除該物理地址所指示的可擦塊。
當(dāng)收到對已經(jīng)寫有數(shù)據(jù)的可擦塊進(jìn)行修改的寫指令時(shí),所述修改控制單元27便將數(shù)據(jù)從非易失存儲(chǔ)器1讀到所述工作存儲(chǔ)器3中,并對保持在該工作存儲(chǔ)器3中的數(shù)據(jù)進(jìn)行修改,然后將這些修改后的數(shù)據(jù)從工作存儲(chǔ)器3寫入非易失存儲(chǔ)器1。這種由所述修改控制單元27執(zhí)行的修改處理是通過與所述分配變換單元24的協(xié)同處理而完成的。由所述修改控制單元27執(zhí)行的這種數(shù)據(jù)修改處理流程按時(shí)間順序如圖20所示。
在圖20A中所示的初始狀態(tài),數(shù)據(jù)當(dāng)前存儲(chǔ)在陰影塊中(塊的物理地址為001、002、004、007~015),且預(yù)留塊003、005和006已經(jīng)經(jīng)過擦除。表示已擦除塊的物理地址003、005和006按排在所述已擦塊列表中。在表示邏輯地址和物理地址之間的對應(yīng)關(guān)系的地址對應(yīng)表中,邏輯地址001、002、003、004和005分別對應(yīng)物理地址001、002、003、004和005。
這里,如果所述訪問裝置200所發(fā)出的寫指令指示將不同的值寫入邏輯地址為001的可擦塊中,那么所述寫控制單元25便將寫入邏輯地址001的塊中的數(shù)據(jù)從所述非易失存儲(chǔ)器1轉(zhuǎn)到所述工作存儲(chǔ)器3中(見圖20A箭頭‘①讀’)。然后寫控制單元25對這些寫入邏輯地址為001的塊中的數(shù)據(jù)進(jìn)行修改,而這些塊存在于所述工作存儲(chǔ)器3中(見圖20A箭頭‘②修改’)。
接下來在圖2B中,所述修改控制單元27將所述已擦塊列表中前面的物理地址003讀出,如箭頭BN1所示,并將數(shù)據(jù)寫入由該物理地址003所指示的塊中,如箭頭‘③寫’所示。接著在圖20C中,所述修改控制單元27將其相應(yīng)塊應(yīng)被擦除的物理地址001安排在該已擦塊列表中,如箭頭④所示。
最后,所述修改控制單元27將對應(yīng)的邏輯地址/物理地址互換,如圖20D所示。這里,物理地址003分配給邏輯地址001,物理地址001分配給邏輯地址003。因而通過把數(shù)據(jù)寫入物理地址003便能實(shí)現(xiàn)將數(shù)據(jù)重寫入邏輯地址001,然后在邏輯和物理地址之間作相應(yīng)的轉(zhuǎn)換。
下面將闡述所述訪問裝置200的內(nèi)部結(jié)構(gòu)。圖21所示為第三實(shí)施方案訪問裝置200中的文件系統(tǒng)操作單元9的內(nèi)部結(jié)構(gòu)。圖中所示的該文件系統(tǒng)操作單元9包括一個(gè)文件刪除單元28和一個(gè)優(yōu)先擦除控制單元29。
所述文件刪除單元28通過更新從所述主存儲(chǔ)器7中讀出的FAT來刪除文件,并將更新后的FAT寫入所述半導(dǎo)存儲(chǔ)卡100。如果該應(yīng)用程序8發(fā)出刪除文件的指令,則所述文件刪除單元28將通過把對應(yīng)于存儲(chǔ)該文件片段的相應(yīng)簇的FAT登記項(xiàng)設(shè)置為‘0’來執(zhí)行文件的刪除,‘0’表示未被使用的那些簇。但是,存儲(chǔ)文件片段的這些簇(可擦塊)仍未恢復(fù)空白狀態(tài),所以首先必須將這些簇擦除,才能在這些簇中存儲(chǔ)其它文件。因此,擦除處理所需時(shí)間的增加與刪除舊文件和記錄新文件的次數(shù)的增加成正比。
在等待來自應(yīng)用程序8的指令時(shí),所述優(yōu)先擦除控制單元29向所述半導(dǎo)體存儲(chǔ)卡100發(fā)出獲取狀態(tài)指令,命令它讀出已擦除的空閑存儲(chǔ)器列表。一旦發(fā)出該指令及輸出所述已擦除空閑存儲(chǔ)器列表,該優(yōu)先控制單元29便收到輸出的所述已擦除空閑列表,并將該列表與所述FAT進(jìn)行比較,以便確定出在該FAT中設(shè)置為未使用的多個(gè)簇所對應(yīng)的可擦塊。(當(dāng)一個(gè)可擦塊包含多個(gè)簇時(shí),只能確定出那些全部由未使用簇組成的可擦塊)。因此,在這些可擦塊中,也要確定已擦塊列表中不存在的那些塊。這些塊是既未使用也未經(jīng)擦除的可擦塊,并且,所述優(yōu)先擦除控制單元29向所述半導(dǎo)體存儲(chǔ)卡100發(fā)出擦除指令以命令將這些塊擦除。該擦除指令包括一個(gè)邏輯地址定義,以及一條將該邏輯地址對應(yīng)的物理地址加入所述已擦塊列表中的指令。當(dāng)由該擦除控制單元26執(zhí)行輪詢時(shí),如果通過發(fā)出這樣的擦除指令將一個(gè)物理地址加到所述已擦塊列表中,那么由該擦除指令所指示的塊的擦除方法與其他未使用和未擦除塊的處理方法相同。而且對于所有未使用和未擦除的塊均執(zhí)行同樣的處理過程。下面將參照圖22的流程圖來對所述優(yōu)先擦除控制單元29所執(zhí)行的詳細(xì)過程進(jìn)行闡述。
在本實(shí)施方案中,如果啟動(dòng)該優(yōu)先擦除控制單元29,它會(huì)轉(zhuǎn)到步驟S21~S22的循環(huán)處理。在步驟S21,該優(yōu)先擦除控制單元29判斷是否已收到所述應(yīng)用程序8發(fā)出的訪問指令,在步驟S22,判斷是否已過預(yù)定的輪詢時(shí)間。如果已收到所述應(yīng)用程序8發(fā)出的一條指令,那么該優(yōu)先擦除控制單元29轉(zhuǎn)到步驟S23,按照該指令執(zhí)行文件系統(tǒng)操作并訪問所述半導(dǎo)體存儲(chǔ)卡100。如果已過預(yù)定的輪詢時(shí)間,那么該優(yōu)先擦除控制單元29從步驟S22轉(zhuǎn)到步驟S24,并向該半導(dǎo)體存儲(chǔ)卡100發(fā)出獲取狀態(tài)指令以讀出所述已擦的空閑列表,接著,在步驟S25,該優(yōu)先擦除控制單元29處于一種等待狀態(tài),等待讀出所述已擦塊的列表。一旦讀出所述已擦塊列表,則在步驟S26由該優(yōu)先擦除控制單元29為所有由FAT中設(shè)置為未使用的簇組成的可擦塊和所述已擦塊列表中不存在的可擦塊定義邏輯地址。
在步驟S27,所述優(yōu)先擦除控制單元29判斷是否存在未使用的仍未擦除的可擦塊,如果不存在這樣的塊,則馬上返回到步驟S21~S22的循環(huán)處理。如果存在這樣的塊,則該優(yōu)先擦除控制單元29執(zhí)行步驟S28~S30的循環(huán)處理。換句話說,該優(yōu)先擦除控制單元29向所述半導(dǎo)體存儲(chǔ)卡100發(fā)出擦除指令,以保證將在步驟S26確定的未使用和未擦除的塊的每個(gè)物理地址上的數(shù)據(jù)擦除。一旦發(fā)出了這樣的指令,便在所述已擦塊列表中加入每個(gè)這種塊的物理地址,并進(jìn)行擦除。
下面將參照圖23A和23B對上述優(yōu)先擦除控制單元29的操作進(jìn)行更詳細(xì)的闡述。在圖23A所示的初始化狀態(tài)中,在該FAT中將一個(gè)可擦塊地址0001設(shè)置為正在使用,而物理地址0003,0005和0006作為已擦塊地址而被安排在所述已擦塊列表中。數(shù)據(jù)存儲(chǔ)在圖中涂成陰影的文件系統(tǒng)的塊中(地址為0000,0001,0002,0004)。在該狀態(tài)下,如果沒有來自所述應(yīng)用程序8的指令,并且預(yù)定的輪詢時(shí)間已過(步驟S21否,步驟S22是),所述訪問裝置200中的該文件系統(tǒng)操作單元9則通過向所述半導(dǎo)體存儲(chǔ)卡100發(fā)出獲取狀態(tài)指令來讀出已擦塊列表(步驟S24),并將讀出的已擦塊列表與所述FAT進(jìn)行比較(步驟S25)。比較結(jié)果是確定出那些在FAT中設(shè)置為未使用的塊,以及那些邏輯地址在所述已擦塊列表中不存在的塊(可擦塊地址為0000,0002,0004)(步驟S26)。由于這些塊未使用,所述文件操作系統(tǒng)單元9便向所述半導(dǎo)體存儲(chǔ)卡100發(fā)出擦除指令以便將這些可擦塊擦除(步驟S28~S30)。因此,如圖23B所示,地址0000,0002和0004被加到所述已擦塊列表中,并擦除這些地址所指示的可擦塊。
在上述實(shí)施方案中,所述訪問裝置200從所述半導(dǎo)體存儲(chǔ)卡100讀出已擦塊列表,并將該讀出的已擦塊列表與所述FAT進(jìn)行比較,以便確定仍未擦除的未使用的可擦塊,并命令該半導(dǎo)體存儲(chǔ)卡100將這些塊擦除。所以,在等待來自所述應(yīng)用程序9的指令時(shí),該文件操作系統(tǒng)單元9能將那些仍未擦除的未使用的可擦塊擦除,并使這些未使用塊的這種擦除更有效地執(zhí)行。
另外,無論何時(shí)所述訪問裝置200空閑,均能執(zhí)行對未使用塊的擦除,所以能大大增加執(zhí)行塊擦除的機(jī)會(huì)。因此不會(huì)存在所述可擦塊列表中物理地址不夠的危險(xiǎn),而且修改和重寫塊時(shí)的處理效率會(huì)大大提高。
在本實(shí)施方案中的所述訪問裝置200中,將所述已擦塊列表從所述半導(dǎo)體存儲(chǔ)卡100中讀出,并確定未使用的和仍未擦除的塊。但是,在該半導(dǎo)體存儲(chǔ)卡100的訪問控制單元2中,所述擦除控制單元26可以根據(jù)所述FAT確定出既未使用也未經(jīng)擦除的塊,然后刪除這些塊。這里,該訪問控制單元2將所述已擦塊列表中的物理地址換成邏輯地址,并把已轉(zhuǎn)換的地址傳給所述訪問裝置200。但也可以將該已擦塊列表和地址對應(yīng)表傳給所述訪問裝置200,在該訪問裝置200中執(zhí)行將物理地址換成邏輯地址。數(shù)據(jù)擦除可以在刪除一個(gè)文件時(shí)執(zhí)行,或在執(zhí)行其它指令時(shí)作為并行處理執(zhí)行。而且,其它信息,例如管理未擦除可擦塊的物理地址的未擦塊列表可以用來代替管理已擦可擦塊的物理地址的已擦塊列表。本實(shí)施方案用FAT進(jìn)行描述,但信息可以用列表或其他類似的形式進(jìn)行存儲(chǔ)。第四實(shí)施方案第四實(shí)施方案闡述的是通過用已擦塊表代替已擦塊列表來執(zhí)行所述第三實(shí)施方案的處理所實(shí)現(xiàn)的改進(jìn)方案。圖24所示為第四實(shí)施方案的訪問裝置200 2的內(nèi)部結(jié)構(gòu)。如果比較該圖與圖19,能夠看出所述已擦塊列表已由一個(gè)已擦塊表替代。第四實(shí)施方案中的該已擦塊表由多個(gè)對應(yīng)于每個(gè)可擦塊的登記項(xiàng)組成。如果一個(gè)塊經(jīng)過擦除,則相應(yīng)的登記項(xiàng)置為‘1’,且如果一個(gè)塊未經(jīng)擦除,則相應(yīng)的登記項(xiàng)置為‘0’。該已擦塊表通過在該已擦塊表中置‘1’或置‘0’來表示每個(gè)可擦塊的擦除狀態(tài)。
由于所述已擦塊列表已由所述已擦塊表代替,所以在第四實(shí)施方案中由所述寫控制單元25和擦除控制單元26執(zhí)行的處理在下述方面與第三實(shí)施方案中所執(zhí)行的不同。
當(dāng)所述訪問裝置200產(chǎn)生一條寫指令時(shí),所述第四方案中的寫控制單元25便根據(jù)該已擦塊表判斷是否將該指令確定的寫目標(biāo)擦除,并判斷其是否為一未使用的塊。這樣,如果所述寫目標(biāo)塊是未擦除塊,則在往該塊中寫入新數(shù)據(jù)之前,由所述寫控制單元25令所述擦除控制塊26將該塊中的數(shù)據(jù)擦除。換句話說,第四實(shí)施方案中的所述寫控制單元25在執(zhí)行寫數(shù)據(jù)前會(huì)將數(shù)據(jù)擦除。
接著,將闡述第四實(shí)施方案中所述優(yōu)先擦除控制單元29的處理過程。在等待來自所述應(yīng)用程序8的指令時(shí),該優(yōu)先擦除控制單元29執(zhí)行可擦塊的擦除。該擦除過程與第三實(shí)施方案中所述相同,并在圖25的流程圖中示出。該流程圖除了已將“已擦塊列表”換成‘已擦塊表’之外,其他均與圖22中所示一致。而且由于內(nèi)容無太大變化,所以這里省去詳細(xì)的闡述。下面將參照圖26A和26B闡述第四實(shí)施方案中所述優(yōu)先擦除控制單元29執(zhí)行的處理過程。
在圖26A所示的初始狀態(tài)中,將地址為0001的塊作為已用塊進(jìn)行管理,并將該已擦塊表中的地址為0003、0005和0006的塊作為已擦除數(shù)據(jù)的塊進(jìn)行管理。數(shù)據(jù)存儲(chǔ)在該圖中已涂為陰影的非易失存儲(chǔ)器的塊中(地址為0000,0001,0002,0004)。在該初始狀態(tài)下,如果塊未被使用,但卻包含有數(shù)據(jù),并已產(chǎn)生向這些未用塊寫入數(shù)據(jù)的寫指令,則需要執(zhí)行數(shù)據(jù)擦除處理。在本實(shí)施方案中,如果優(yōu)先擦除控制單元29正等待所述應(yīng)用程序8發(fā)出指令,而且已過了預(yù)定輪詢時(shí)間(步驟S21否,步驟S22是,),則該優(yōu)先擦除控制單元29通過向所述半導(dǎo)體存儲(chǔ)卡100發(fā)出獲取狀態(tài)指令來讀出所述已擦塊表(步驟S24),并將該讀出的已擦塊表與所述FAT進(jìn)行比較(步驟S25)。該比較的結(jié)果是找出在該FAT中被設(shè)置為未使用的、且其邏輯地址不由所述已擦塊表管理的塊(可擦塊地址為0000,0002,0004)(步驟S26)。在圖26中,對于地址為0000,0002和0004的塊,在所述FAT和已擦塊表中設(shè)置為‘0’,所以這些塊未使用且仍作為未經(jīng)擦除的塊。由于這些塊未使用,因此所包含的數(shù)據(jù)可以安全地進(jìn)行擦除,于是所述優(yōu)先擦除控制單元29發(fā)出擦除指令,以便將該已擦塊表中每個(gè)相應(yīng)的地址設(shè)置為‘1’,以指示將要擦除這些塊(步驟S28~S30)。因此,擦除未使用塊中的所有數(shù)據(jù),然后所述已擦塊表將這些塊作為已擦除的塊進(jìn)行管理。所以,無需任何擦除處理,便能通過分配未用塊來完成數(shù)據(jù)寫處理,而且能夠?qū)崿F(xiàn)高速寫數(shù)據(jù),所述未用塊的分配將在本說明書后面講述。第五實(shí)施方案第五實(shí)施方案提出了一種解決文件分段存儲(chǔ)問題的方法。按慣例,文件分段存儲(chǔ)指的是將一個(gè)文件劃分成多個(gè)文件片段,然后將這些片段不連續(xù)地存儲(chǔ)在存儲(chǔ)器中的處理。如果在一種記錄介質(zhì),如一張光盤或一張磁盤上不連續(xù)地存儲(chǔ)多個(gè)文件片段,那么需要查找大量盤片以讀出非連續(xù)存儲(chǔ)的文件片段,于是會(huì)加長讀處理的時(shí)間。為了解決這種分段存儲(chǔ)產(chǎn)生的問題,所述文件系統(tǒng)操作單元9將非連續(xù)存儲(chǔ)的文件片段讀出,再將它連續(xù)地存儲(chǔ)在存儲(chǔ)器中(消除分段存儲(chǔ))。如果完成上述處理,則無需執(zhí)行任何磁盤搜索便能順利地讀出構(gòu)成一個(gè)文件的那些文件片段,且能高速讀出數(shù)據(jù)。這總結(jié)概括了多磁盤分段存儲(chǔ)問題的解決方法。下面將考慮發(fā)生在所述半導(dǎo)體存儲(chǔ)卡100中的分段存儲(chǔ)。當(dāng)從所述半導(dǎo)體存儲(chǔ)卡100讀出數(shù)據(jù)時(shí),無需進(jìn)行磁盤搜索,所以如果所述文件片段為非連續(xù)存儲(chǔ),那么由于該原因使處理過程加長是不可能的。
但是,雖然磁盤搜索不是問題,但分段存儲(chǔ)仍會(huì)導(dǎo)致下述情況大幅增加,1.發(fā)送指令時(shí)發(fā)生的附加操作;2.讀FAT時(shí)發(fā)生的高速緩存失誤(兩種情況將在下面做更詳細(xì)的描述);因此讀出一個(gè)文件所需的時(shí)間加長了。
1.發(fā)送指令時(shí)發(fā)生的附加操作如果參照圖27A~27B闡述能夠更容易理解分段存儲(chǔ)在發(fā)送指令時(shí)對附加操作方面帶來的影響。圖27A示例性說明了一種情況,其中將一個(gè)48KB的文件劃分為3個(gè)16KB的文件片段并隨機(jī)地存儲(chǔ)在三個(gè)區(qū)域中。圖27B示例性說明了一種情況將一個(gè)48KB的文件存儲(chǔ)在連續(xù)的存儲(chǔ)區(qū)域中。在圖27A和27B中,所述文件系統(tǒng)操作單元9向所述非易失存儲(chǔ)器發(fā)出格式為‘讀(地址,大小)’的讀指令來執(zhí)行讀數(shù)據(jù)。這里,‘地址’代表讀目標(biāo)的邏輯地址,‘大小’代表要讀出數(shù)據(jù)的大小。每次讀指令所花的時(shí)間等于讀出數(shù)據(jù)時(shí)間的和,該時(shí)間與所讀數(shù)據(jù)的長度和發(fā)送該讀指令所需的一定附加時(shí)間成比例。在圖27A中所示的數(shù)據(jù)排列中,讀出文件1必須發(fā)送三條讀指令‘讀(0000,16KB)’,‘讀(0002,16KB)’和‘讀(0004,16KB)’。這意味著讀出該文件所需的時(shí)間為36ms(=(8+4)×3)。另一方面,如果按圖27B安排數(shù)據(jù),則讀出該文件全部48KB數(shù)據(jù)只需簡單地發(fā)送一條讀指令‘讀(0000,48KB)’即可。因此在本例中讀出該文件所需的時(shí)間為28ms(=(8×3+4))。這樣便能夠看出發(fā)送指令時(shí)產(chǎn)生的附加操作與文件片段存儲(chǔ)的隨機(jī)程度成正比。
2.FAT高速緩存FAT緩存是一種將安排在所述半導(dǎo)體存儲(chǔ)卡100系統(tǒng)區(qū)中的FAT讀入到所述訪問裝置200的內(nèi)部存儲(chǔ)器中的先行讀操作,所述訪問裝置200允許通過訪問其內(nèi)部存儲(chǔ)器來高速查詢該FAT。如果所述訪問裝置200是一臺(tái)具有小規(guī)模內(nèi)部存儲(chǔ)器的便攜設(shè)備,則需經(jīng)常高速緩存該FAT,并通過依次讀取存儲(chǔ)器中連續(xù)存儲(chǔ)的FAT片段對該FAT進(jìn)行高速緩存。但是,如果FAT已經(jīng)分段存儲(chǔ),那么高速緩存該FAT將會(huì)把包含該FAT的片段和包含其它數(shù)據(jù)的片段兩者按順序讀入所述內(nèi)部存儲(chǔ)器中。如果不讀FAT片段而只將數(shù)據(jù)讀入所述內(nèi)部存儲(chǔ)器,則將讀入大量非高速緩存目標(biāo)的數(shù)據(jù),便會(huì)產(chǎn)生高速緩存失誤。如果發(fā)生大量這種高速緩存失誤,那么所述內(nèi)部存儲(chǔ)器的讀入次數(shù)便會(huì)相應(yīng)增加,進(jìn)而延長讀該FAT所需的時(shí)間。
盡管存在這兩個(gè)問題,但為了解決所述半導(dǎo)體存儲(chǔ)卡100中的分段存儲(chǔ)問題而采用與解決磁盤中該問題相同的方法是不明智的。其原因是若要修改存儲(chǔ)在所述半導(dǎo)體存儲(chǔ)卡塊中的數(shù)據(jù),則需要擦除已存儲(chǔ)的數(shù)據(jù),而且與在磁盤上執(zhí)行同樣操作所需的時(shí)間相比,該擦除需要更長的處理時(shí)間。在本實(shí)施方案中,推薦通過改變物理地址與邏輯地址之間的對應(yīng)關(guān)系來作為防止分段存儲(chǔ)時(shí)增加指令附加操作時(shí)間和產(chǎn)生高速緩存失誤的對策。換言之,通過改變物理地址與邏輯地址之間的對應(yīng)關(guān)系,使存儲(chǔ)FAT片段的塊能夠用邏輯地址連續(xù)地表示,而無需改變其在存儲(chǔ)器中的物理安排。
如圖27A所示,當(dāng)把一個(gè)48KB的文件劃分為3個(gè)16KB的片段存儲(chǔ)在3個(gè)獨(dú)立的存儲(chǔ)區(qū)中時(shí),在這些塊用邏輯地址連續(xù)指示的情況下,所述訪問裝置200能夠讀出存儲(chǔ)在這三個(gè)區(qū)域(塊)中的文件片段。而讀操作是通過發(fā)出一條讀指令以指明這些邏輯地址的第一條地址及該文件的長度(這里為48KB)來執(zhí)行的。另外,如果將所述FAT劃分為3個(gè)片段,并存儲(chǔ)在三個(gè)存儲(chǔ)區(qū)(塊)中,那么,只要這些塊的邏輯地址連續(xù)地指示,該訪問裝置200就能夠?qū)⑦@些非連續(xù)存儲(chǔ)的FAT片段依次讀入所述內(nèi)部存儲(chǔ)器中。這里,通過發(fā)出依次將每個(gè)連續(xù)的邏輯地址指定為讀目標(biāo)的讀指令來執(zhí)行讀操作。如執(zhí)行這種處理,便不再發(fā)生高速緩存失誤。所以,即使多個(gè)文件和FAT片段隨機(jī)存儲(chǔ)在多個(gè)區(qū)域中,由于能夠?yàn)檫@些區(qū)域分配連續(xù)的邏輯地址,也就解決了發(fā)出讀指令時(shí)所產(chǎn)生附加操作的問題,也能避免高速緩存失誤的產(chǎn)生。
所述優(yōu)先擦除控制單元29應(yīng)用邏輯地址解決分段存儲(chǔ)問題的操作將參照圖28所示的流程圖進(jìn)行闡述。該闡述還將參照圖29,該圖表示所述流程圖中變量t,u,v和y所對應(yīng)的實(shí)際對象。在步驟S50,該優(yōu)先擦除控制單元29為變量x和y賦初值(x←1,y←1)。這表示在第一個(gè)文件的第一片段處所完成的處理。接著,在步驟S51,該優(yōu)先擦除控制單元29將對應(yīng)于存儲(chǔ)第x個(gè)文件第y個(gè)片段的塊的邏輯地址s與對應(yīng)于存儲(chǔ)第x個(gè)文件第y+1個(gè)片段的塊的邏輯地址t進(jìn)行比較,以確定這些塊是否相鄰。如圖29A所示,當(dāng)?shù)趛個(gè)片段和第y+1個(gè)片段存儲(chǔ)在不相鄰的可擦塊中、且順序是y→y+1時(shí),步驟S52為“是”,且所述優(yōu)先擦除控制單元29轉(zhuǎn)到步驟S54。
如圖29B所示,當(dāng)這些片段的存儲(chǔ)順序?yàn)閥+1→y時(shí),所述優(yōu)先擦除控制單元29便轉(zhuǎn)到步驟S53,并將物理地址u分配給邏輯地址t,而且將物理地址v分配給邏輯地址s。因此,在圖29B中用箭頭rv1和rv2示出這種將物理地址分配給邏輯地址的變化。接著,在步驟S54,所述優(yōu)先擦除控制單元29判斷存儲(chǔ)第y個(gè)片段的可擦塊邏輯地址與存儲(chǔ)第y+1個(gè)片段的可擦塊的邏輯地址是否連續(xù)。如圖29C所示,如果所述存儲(chǔ)第y+1個(gè)片段的可擦塊緊接著存儲(chǔ)第y個(gè)片段的可擦塊,則關(guān)系式s+1=t成立,所以步驟S54為“是”,并將處理轉(zhuǎn)到步驟S56。如果所述存儲(chǔ)第y個(gè)片段與第y+1個(gè)片段的可擦塊不相鄰,則關(guān)系式s+1=t不成立,步驟S54為“否”,并將處理轉(zhuǎn)到步驟S55。這里,如果對應(yīng)于邏輯地址s+1的物理地址為w,則在步驟S55中將存儲(chǔ)第y+1個(gè)片段的可擦塊的物理地址v分配給邏輯地址s+1,并將物理地址w分配給邏輯地址t。如圖29D,在存儲(chǔ)第y個(gè)和第y+1個(gè)片段時(shí),如果執(zhí)行步驟S55的處理,則地址對應(yīng)關(guān)系將如箭頭rv3和rv4所示發(fā)生變化。
一旦完成上述處理,所述優(yōu)先擦除控制單元29便在步驟S56作出判斷變量y是否為最終片段的編號(hào)。如果y不是最終編號(hào),所述優(yōu)先擦除控制單元29便在步驟S57將y加1,并將處理轉(zhuǎn)到步驟S51。通過執(zhí)行步驟S56的檢驗(yàn),對第x個(gè)文件的每個(gè)片段重復(fù)S51~S57的處理,并在步驟S57將y加1。
換言之,如果步驟S56為“是”,則所述優(yōu)先擦除控制單元29在步驟58判斷x是否為該文件最后編號(hào),并且,如回答是“否”,則轉(zhuǎn)到步驟S59,將變量X加1(x←x+1),并在步驟S60為變量y賦初值。因此,通過執(zhí)行步驟S58的檢驗(yàn),對所有文件重復(fù)執(zhí)行步驟S51~S57的處理,并在步驟S59對變量y加1。
本實(shí)施方案提出的對分段存儲(chǔ)所產(chǎn)生問題的解決方法將參照圖30所示的實(shí)例進(jìn)行闡述。在圖30A所示的初始狀態(tài)中,組成文件1的片段文件1-1/3,1-2/3和1-3/3存儲(chǔ)在對應(yīng)邏輯地址0000,0001和0004的可擦塊中。另外,組成文件2的片段文件2-1/4,2-2/4,2-3/4和2-4/4存儲(chǔ)在對應(yīng)邏輯地址0002,0003,0005和0006的可擦塊中。
存儲(chǔ)片段文件2-1/4的可擦塊的對應(yīng)地址(邏輯地址0002)接著存儲(chǔ)片段文件1-2/3的邏輯地址0001,并且存儲(chǔ)片段文件1-3/3的可擦塊對應(yīng)的邏輯地址為0004。
如果將圖28流程圖的處理方法應(yīng)用于該圖的實(shí)施例,則片段文件1-1/3和片段文件1-2/3分別對應(yīng)于邏輯地址0000和0001,這樣,這些片段的安排順序便與相應(yīng)邏輯地址的順序相同,且不用互換其對應(yīng)關(guān)系。但是,如果注意到片段文件1-2/3和1-3/3之間的關(guān)系,則可以看出當(dāng)存儲(chǔ)片段文件1-2/3的可擦塊對應(yīng)于邏輯地址0001時(shí),對應(yīng)于下一個(gè)邏輯地址0002的可擦塊將是文件2-1/4。因此,步驟S54為“否”,且處理轉(zhuǎn)到步驟S55。于是,在步驟S55,存儲(chǔ)片段文件1-1/3的可擦塊其邏輯地址和物理地址之間的對應(yīng)關(guān)系將與存儲(chǔ)片段文件2-1/4的可擦塊其邏輯地址和物理地址之間的對應(yīng)關(guān)系進(jìn)行互換。因此,片段文件1-2/3和1-3/3便能用連續(xù)的邏輯地址表示,于是將邏輯地址0004分配給存儲(chǔ)片段文件2-1/4的可擦塊的物理地址0002,反過來,將邏輯地址0002分配給存儲(chǔ)片段文件1-3/3的可擦塊的物理地址0004、。這樣變化之后,物理地址與邏輯地址之間的對應(yīng)關(guān)系如圖30B所示。一旦完成了對片段文件1-3/3的處理,便執(zhí)行對片段文件2-2/4的處理。在圖30B中,片段文件2-1/4和2-2/4之間的關(guān)系為片段文件2-1/4存儲(chǔ)在對應(yīng)邏輯地址0004的可擦塊中,其下一片段文件2-2/4存儲(chǔ)在對應(yīng)邏輯地址0003的可擦塊中。這樣,附加在這些片段上的邏輯地址應(yīng)按逆序排列。所以,步驟S52為“否”,且處理轉(zhuǎn)到步驟S53,在這里將對應(yīng)于片段文件2-1/4和文件2-2/4的地址順序互換。這里,將對應(yīng)于存儲(chǔ)片段文件2-1/4的可擦塊的物理地址0002分配給邏輯地址0003,并將對應(yīng)于存儲(chǔ)片段文件2-2/4的可擦塊的物理地址0003分配給邏輯地址0004。這樣處理的結(jié)果是組成文件1和文件2的文件片段均用連續(xù)的邏輯地址指示。
在本實(shí)施方案中,即使文件片段存儲(chǔ)在不連續(xù)的存儲(chǔ)區(qū)中,也能為這些存儲(chǔ)區(qū)分配連續(xù)的邏輯地址,這樣便減少了在發(fā)出讀指令時(shí)所產(chǎn)生的附加操作以及在高速緩存FAT和文件時(shí)所產(chǎn)生的高速緩存失誤。第六實(shí)施方案第六實(shí)施方案闡述了一種改進(jìn)方法,該方法應(yīng)用于用分發(fā)業(yè)務(wù)在所述非易失存儲(chǔ)器中記錄不同內(nèi)容,以及在便攜式重放設(shè)備上重現(xiàn)所記錄的這些內(nèi)容。在該情形下,具有諸如音樂、圖像、游戲和文本等多種屬性的文件將被存儲(chǔ)在所述半導(dǎo)體存儲(chǔ)卡100中。如果根據(jù)文件類型,文件區(qū)在是否可讀或可編輯方面是有所差別的,那么所述訪問裝置200中的文件系統(tǒng)操作單元9就需要在執(zhí)行讀或編輯之前對該文件的內(nèi)容進(jìn)行核對。如果每次讀或編輯文件時(shí)均需要進(jìn)行這種核對,那么由該文件系統(tǒng)操作單元9執(zhí)行的處理就會(huì)變得復(fù)雜。因此,在數(shù)字通用盤(DVD)中使用通用盤格式(UDF)為每個(gè)文件設(shè)置一種擴(kuò)充屬性,這樣,無需查看該文件的內(nèi)容便能夠瞬間識(shí)別出文件中所存數(shù)據(jù)的類型。
圖31所示為一種擴(kuò)充屬性的實(shí)施例。圖中所示的該屬性是根據(jù)所述UDF中的實(shí)施用途擴(kuò)充屬性而形成的一種新類型的擴(kuò)充屬性。該擴(kuò)充屬性包括屬性類型2000,屬性子類型2010,預(yù)留區(qū)2020,屬性長度2030,實(shí)施用途長度2040,實(shí)施標(biāo)識(shí)符2050(與所述UDF中實(shí)施用途擴(kuò)充屬性的字段相同,所以這里略去更詳細(xì)的說明)以及實(shí)施用途2060。所述實(shí)施用途2060包括一個(gè)為所述擴(kuò)充屬性的標(biāo)題部分存儲(chǔ)檢驗(yàn)和的標(biāo)題檢驗(yàn)和2061,一個(gè)存儲(chǔ)文件名的名稱2063和一個(gè)存儲(chǔ)文件屬性的特征位2062。將所述特征位2062的每一位設(shè)置成‘0’或‘1’來表示文件屬性。該特征位2062的第一位表示該對應(yīng)文件是否為文本文件,第二位表示該對應(yīng)文件是否為圖像文件,第三位以上的區(qū)域?yàn)轭A(yù)留區(qū)。
如果該擴(kuò)充屬性存儲(chǔ)在所述半導(dǎo)體存儲(chǔ)卡100中,有一個(gè)困難是明顯的。即如前所述,該半導(dǎo)體存儲(chǔ)卡100的卷管理信息服從ISO/IEC9293標(biāo)準(zhǔn)提出的數(shù)據(jù)格式,因此沒有規(guī)定為每個(gè)文件給定一種擴(kuò)充屬性。
在本實(shí)施方案中,所述擴(kuò)充屬性存儲(chǔ)在保護(hù)區(qū)和備份區(qū)至少一個(gè)區(qū)域中。由于在第二實(shí)施方案中已經(jīng)闡述過所述保護(hù)區(qū),因此在這里略去進(jìn)一步的闡述。所述備份區(qū)獨(dú)立于所述用戶區(qū)中常規(guī)區(qū)的管理。當(dāng)所述非易失存儲(chǔ)器的用戶區(qū)中出現(xiàn)壞扇區(qū)時(shí),分配變換單元24便從所述備份區(qū)中選出一個(gè)扇區(qū)取代該壞扇區(qū)。圖32所示為含有壞扇區(qū)的半導(dǎo)體存儲(chǔ)卡100的內(nèi)部結(jié)構(gòu)。通過在所述保護(hù)區(qū)或備份區(qū)中存儲(chǔ)不能在FAT文件系統(tǒng)中定義的新擴(kuò)充屬性,便能夠?yàn)槊總€(gè)文件設(shè)置這種屬性。而且,由于通常用戶所用的用戶區(qū)和用戶數(shù)據(jù)區(qū)使用的是與新設(shè)置的擴(kuò)充屬性完全無關(guān)的普通文件系統(tǒng),所以該系統(tǒng)與其它系統(tǒng)兼容。另外,由于所述訪問裝置200只需要執(zhí)行每種文件類型所必需的操作,所以該訪問裝置200執(zhí)行的操作更少,因而能夠減少訪問裝置200的存儲(chǔ)器尺寸。而且,由于僅借助于所述擴(kuò)充屬性信息而不必借助于該文件的內(nèi)容便能判斷出每個(gè)文件的文件類型,因而能夠?qū)崿F(xiàn)高速操作。第七實(shí)施方案本實(shí)施方案提出將FAT文件系統(tǒng)中的文件設(shè)置為禁止寫和禁止讀,以進(jìn)一步加強(qiáng)文件的保護(hù)。在通常的FAT文件系統(tǒng)中,能夠在文件登記項(xiàng)中對獨(dú)立文件的屬性設(shè)置為寫禁止和讀禁止。當(dāng)所述訪問裝置200與所述半導(dǎo)體存儲(chǔ)卡100相連時(shí),所述文件系統(tǒng)操作單元9便將卷管理信息讀出并保存,并借助于特定文件的文件屬性來判斷是否能對該文件進(jìn)行讀或?qū)?。如果所述訪問裝置200中的應(yīng)用程序8通過所述文件系統(tǒng)操作單元9對半導(dǎo)體存儲(chǔ)卡100進(jìn)行訪問,那么所述文件登記項(xiàng)中的屬性有效。但是,如果該應(yīng)用程序8對所述半導(dǎo)體存儲(chǔ)卡100的訪問是跳過所述文件系統(tǒng)操作單元9,并通過向該半導(dǎo)體存儲(chǔ)卡100發(fā)出直接寫或讀指令來執(zhí)行寫或讀,那么在所述文件登記項(xiàng)中設(shè)置的任何寫禁止或讀禁止屬性將沒有意義。這里,該實(shí)施方案提出如圖33所示構(gòu)造所述半導(dǎo)體存儲(chǔ)卡100,這樣,即使所述應(yīng)用程序8直接訪問該半導(dǎo)體存儲(chǔ)卡100,寫禁止和讀禁止也將有效。圖33所示為第七實(shí)施方案中的半導(dǎo)體存儲(chǔ)卡100的內(nèi)部結(jié)構(gòu)。該圖的特點(diǎn)是所述非易失存儲(chǔ)器1具有包含了塊屬性表的備份區(qū)。
所述塊屬性表由對應(yīng)于所述卷區(qū)中可擦塊的登記項(xiàng)組成。如果一個(gè)登記項(xiàng)設(shè)置為‘1’,則對應(yīng)的塊為寫禁止。并且,如果一個(gè)登記項(xiàng)設(shè)置為‘2’,則對應(yīng)的塊為讀禁止。在第五實(shí)施方案中闡述的文件系統(tǒng)操作單元9和訪問控制單元2除了根據(jù)文件登記項(xiàng)進(jìn)行操作外還根據(jù)塊屬性表執(zhí)行操作。如果所述應(yīng)用程序8命令該文件系統(tǒng)操作單元9打開已設(shè)置屬性的文件,那么該文件系統(tǒng)操作單元9便在對應(yīng)該文件的文件登記項(xiàng)中設(shè)置該屬性。例如,如果所述應(yīng)用程序8已收到指令將某一文件設(shè)置為寫禁止,則將相應(yīng)文件登記項(xiàng)的屬性設(shè)置為寫禁止。如果該應(yīng)用程序8已收到指令將文件設(shè)置為讀禁止,則將相應(yīng)文件登記項(xiàng)的屬性設(shè)置為讀禁止。如果該應(yīng)用程序8已收到指令設(shè)置隱藏屬性,則所述文件系統(tǒng)操作單元9在相應(yīng)文件登記項(xiàng)中設(shè)置讀禁止屬性。
如果用這種方式在文件登記項(xiàng)中設(shè)置文件屬性,所述文件系統(tǒng)操作單元9則將文件劃分成簇大小的片段,并在所述用戶區(qū)的多個(gè)簇中記錄這些片段。在所述簇中記錄這些文件片段后,所述文件系統(tǒng)操作單元9在所述塊屬性表中的對應(yīng)于每個(gè)存儲(chǔ)該文件的可擦塊的登記項(xiàng)中設(shè)置所述的文件屬性。如果禁止對該文件執(zhí)行寫操作,那么所述文件系統(tǒng)操作單元9便在與存儲(chǔ)該文件片段的每個(gè)簇相對應(yīng)的登記項(xiàng)中設(shè)置寫禁止屬性,如果該文件屬性是讀禁止,則在與存儲(chǔ)該文件片段的每個(gè)簇相對應(yīng)的登記項(xiàng)中設(shè)置讀禁止屬性。如果該文件屬性為隱藏,則所述文件系統(tǒng)操作單元9在與存儲(chǔ)該文件片段的每個(gè)簇相對應(yīng)的登記項(xiàng)中設(shè)置讀禁止屬性。
如果用這種方法在所述用戶區(qū)中記錄該文件,則根據(jù)所述塊屬性表中示出的屬性對塊進(jìn)行讀或?qū)憯?shù)據(jù)。換言之,如果所述訪問裝置200發(fā)出讀指令,所述讀控制單元23則查閱對應(yīng)于該目標(biāo)地址的塊屬性表中的登記項(xiàng)。如果該登記項(xiàng)表示允許讀,則讀控制單元23從該讀目標(biāo)地址所指示的塊中將數(shù)據(jù)讀出,否則,如果該登記項(xiàng)指示禁止讀,則不從該讀目標(biāo)地址所指示的塊中讀出數(shù)據(jù)。
如果所述訪問裝置200發(fā)出寫指令,則所述寫控制單元25或修改控制單元27查閱塊屬性表中對應(yīng)該寫目標(biāo)地址的登記項(xiàng)。如果該登記項(xiàng)指示允許寫,所述寫控制單元25或修改控制單元27則將數(shù)據(jù)寫入該寫目標(biāo)地址指示的塊中,并且,如果該登記項(xiàng)指示禁止寫,則不把數(shù)據(jù)寫入該寫目標(biāo)地址所指示的塊中。
這種寫和讀控制既能在所述應(yīng)用程序8發(fā)出寫或讀指令時(shí)經(jīng)所述文件系統(tǒng)操作單元9執(zhí)行,也能在所述應(yīng)用程序8跳過該文件系統(tǒng)操作單元9直接發(fā)出寫或讀指令時(shí)執(zhí)行。所以不管所述訪問裝置200發(fā)出的指令是否經(jīng)過該文件系統(tǒng)操作單元9,都能限制塊的讀和寫。本實(shí)施方案中的文件系統(tǒng)操作單元9將參照圖34中的實(shí)施例進(jìn)行闡述。在圖34A中,文件1所包含的數(shù)據(jù)存儲(chǔ)在地址為0000、0002和0003的可擦塊中,文件2所含數(shù)據(jù)存儲(chǔ)在地址為0001和0004的可擦塊中,文件3包含的數(shù)據(jù)存儲(chǔ)在地址為0005的可擦塊中,而文件4所包含的數(shù)據(jù)存儲(chǔ)在地址為0006的可擦塊中。圖34B示出了存儲(chǔ)文件1時(shí)的狀態(tài),該文件已經(jīng)設(shè)置了寫禁止屬性。在塊屬性表中,與存儲(chǔ)文件1片段的塊(地址為0000,0002和0003)相對應(yīng)的登記項(xiàng)設(shè)置為‘1’,表示寫禁止屬性。如果用這種方法設(shè)置所述的塊屬性表,那么所述寫控制單元25將拒絕在地址為0000,0002和0003的塊上執(zhí)行寫操作指令。
圖34C所示為在所述非易失存儲(chǔ)器1中存儲(chǔ)文件2時(shí)的狀態(tài),該文件已經(jīng)設(shè)置了讀禁止屬性。在本例中,指示讀禁止屬性的特征位設(shè)置在所述塊屬性表內(nèi)的對應(yīng)于文件2的登記項(xiàng)中。然后,將該文件2劃分為多個(gè)片段,并將這些片段存儲(chǔ)在所述用戶區(qū)的多個(gè)塊中。
當(dāng)在邏輯地址為0001和0004的塊中存儲(chǔ)文件2的文件片段時(shí),所述塊屬性表中對應(yīng)于這些塊的登記項(xiàng)被設(shè)置為‘2’,指示讀禁止屬性。如果用這種方法設(shè)置所述塊屬性表,那么所述讀控制單元23將拒絕執(zhí)行從地址為0001和0004的塊中讀出數(shù)據(jù)的指令。
在上述實(shí)施方案中,能在所述半導(dǎo)體存儲(chǔ)卡100中對應(yīng)于每個(gè)塊設(shè)置讀禁止和寫禁止屬性,所以,即使所述應(yīng)用程序8跳過所述文件系統(tǒng)操作單元9直接訪問該半導(dǎo)體存儲(chǔ)卡100,該半導(dǎo)體存儲(chǔ)卡100也能防止對被禁止文件的訪問。因此,通過用這種方法將存儲(chǔ)文件的塊設(shè)置讀禁止和寫禁止屬性,能保證對該文件的保護(hù),而且,如果該文件取得版權(quán),那么還能實(shí)現(xiàn)版權(quán)保護(hù)。
在本實(shí)施方案中,所述表示寫禁止屬性的特征位用“1”表示,表示讀禁止屬性的特征位用“2”表示,但這些僅為示例,而且本發(fā)明不必受這種特征位的限制。此外,在本實(shí)施方案中,塊屬性表用于給所述非易失存儲(chǔ)器1中的每個(gè)塊附加讀和寫禁止屬性,但是,如果要為每個(gè)單獨(dú)塊設(shè)置一種屬性,也可以使用列表或類似的結(jié)構(gòu)。在本實(shí)施方案中,所闡述的方法用于在所述非易失存儲(chǔ)器1中將讀和寫禁止屬性設(shè)置為塊屬性,但除了這些實(shí)施方案描述之外的信息也可以用作塊屬性。實(shí)施例包括了塊管理,所以只有擁有固定特權(quán)的用戶才能獲得訪問權(quán);或者給每個(gè)塊一個(gè)用戶ID,只允許擁有該ID的用戶才有訪問權(quán);或者為每個(gè)用戶單獨(dú)設(shè)置塊訪問權(quán)。在上述對文件系統(tǒng)的闡述中,使用了一種FAT文件系統(tǒng),但使用諸如UDF或WindowsNTTM中所用的新技術(shù)文件系統(tǒng)(NTFS)或定制文件系統(tǒng)等其它常規(guī)文件系統(tǒng)也可獲得相似的效果。此外,在這些實(shí)施方案中,一個(gè)可擦塊所包含的扇區(qū)數(shù)為32,但這只是一個(gè)實(shí)施例,一個(gè)可擦塊的扇區(qū)數(shù)可以比該數(shù)多或少。
工業(yè)應(yīng)用性如上所述,本發(fā)明中的半導(dǎo)體存儲(chǔ)卡100延長了所述非易失存儲(chǔ)器1的壽命。因此,當(dāng)用這種半導(dǎo)體存儲(chǔ)卡100記錄通過數(shù)字音樂分發(fā)所獲得的音樂內(nèi)容時(shí),即使重復(fù)地進(jìn)行記錄,也即先擦除這些音樂內(nèi)容,然后再頻繁地記錄其它的音樂內(nèi)容,也不會(huì)縮短該非易失存儲(chǔ)器1的壽命。所以,一塊單獨(dú)的半導(dǎo)體存儲(chǔ)卡100能夠用來反復(fù)記錄經(jīng)數(shù)字音樂分發(fā)而獲得的音樂內(nèi)容。
權(quán)利要求
1.一種對半導(dǎo)體存儲(chǔ)卡執(zhí)行文件訪問的訪問裝置,所述半導(dǎo)體存儲(chǔ)卡具有一個(gè)由多個(gè)扇區(qū)組成的存儲(chǔ)區(qū),所述訪問裝置則通過將每組2j(j為0或正整數(shù))個(gè)扇區(qū)中的數(shù)據(jù)作為一個(gè)簇進(jìn)行管理,以及將一個(gè)或多個(gè)簇作為一個(gè)文件進(jìn)行管理來執(zhí)行所述的訪問,所述存儲(chǔ)區(qū)內(nèi)的每組2i個(gè)連續(xù)扇區(qū)組成一個(gè)塊(i為0或正整數(shù)),塊是能夠執(zhí)行數(shù)據(jù)擦除的最小單位,該訪問裝置包括計(jì)算單元,可被操作用于根據(jù)所述存儲(chǔ)區(qū)內(nèi)要管理的簇的數(shù)量來計(jì)算卷管理信息的大小,所述卷管理信息包括一個(gè)文件分配表,用于為每個(gè)文件指示對應(yīng)該文件的各簇之間的鏈接;預(yù)留單元,可被操作用來預(yù)留(1)一個(gè)用于記錄所述卷管理信息的第一區(qū)域以及(2)一個(gè)用于記錄用戶數(shù)據(jù)的第二區(qū)域,所述第一區(qū)域所具有的數(shù)據(jù)長度大于所計(jì)算的卷管理信息,并且由m×2j(m是一個(gè)正整數(shù))個(gè)扇區(qū)組成,而第二區(qū)域由接著第一區(qū)域的扇區(qū)組成;以及記錄單元,可被操作用來在所述第一區(qū)域里記錄卷管理信息、在第二區(qū)域里記錄用戶數(shù)據(jù)、以及將這些卷管理信息和用戶數(shù)據(jù)作為簇進(jìn)行管理。
2.權(quán)利要求1的訪問裝置,其中除了所述文件分配表之外,所述卷管理信息還包括主引導(dǎo)記錄、分區(qū)表、分區(qū)引導(dǎo)區(qū)信息和根目錄登記項(xiàng);而且所述記錄單元可被操作用來在所述第一區(qū)域的第一扇區(qū)里記錄所述主引導(dǎo)記錄和分區(qū)表,并在跳過預(yù)定數(shù)量的扇區(qū)后在后續(xù)的扇區(qū)里記錄所述分區(qū)引導(dǎo)區(qū)信息、文件分配表和根目錄登記項(xiàng),以便使所述第一區(qū)域的結(jié)束與根目錄登記項(xiàng)的結(jié)束相一致。
3.權(quán)利要求2的訪問裝置,其中所述計(jì)算單元可被操作用來通過將用于記錄所述分區(qū)引導(dǎo)區(qū)信息、文件分配表和根目錄登記項(xiàng)的扇區(qū)數(shù)相加而計(jì)算出其和SUM;所述預(yù)留單元可被操作用來利用根據(jù){公式1}計(jì)算出的m值而預(yù)留出第一區(qū)域,{公式1}NOM+SUM=2j×m,NOM為扇區(qū)數(shù);而且所述記錄單元可被操作用來通過將扇區(qū)數(shù)NOM減1而計(jì)算出所述預(yù)定的扇區(qū)數(shù)。
4.權(quán)利要求3的訪問裝置,其中所述記錄單元可被操作用來在記錄所述卷管理信息的所述分區(qū)表中設(shè)置所述預(yù)定數(shù)量的扇區(qū)。
5.權(quán)利要求3的訪問裝置,其中所述文件分配表有多個(gè)登記項(xiàng)、與若干登記項(xiàng)相對應(yīng)的若干簇,而且每條登記項(xiàng)表示了在同一文件中到其它簇的鏈接;所述訪問裝置包括接收單元,可被操作用來接收在所述存儲(chǔ)區(qū)內(nèi)對扇區(qū)總數(shù)的設(shè)定;所述計(jì)算單元包括第一計(jì)算單元,可被操作用來通過用所述扇區(qū)總數(shù)除以扇區(qū)數(shù)2j計(jì)算出總簇?cái)?shù),而且可被操作用來通過將所述總簇?cái)?shù)乘以一條登記項(xiàng)的位長度計(jì)算出所述文件分配表的大小,以及所述預(yù)留單元包括第二計(jì)算單元,可被操作用來通過將所述文件分配表的大小與分別構(gòu)成所述分區(qū)表和根目錄登記項(xiàng)的扇區(qū)數(shù)相加而計(jì)算出其和SUM,并將該和SUM代入{公式1}計(jì)算出m值。
6.權(quán)利要求5的訪問裝置,其中所述存儲(chǔ)區(qū)包括只有當(dāng)與所述半導(dǎo)體存儲(chǔ)卡相連的設(shè)備已得到授權(quán)驗(yàn)證時(shí)才能由該設(shè)備進(jìn)行訪問的保護(hù)區(qū),和不管所述相連設(shè)備的授權(quán)是否得到驗(yàn)證均能由該設(shè)備進(jìn)行訪問的用戶數(shù)據(jù)區(qū);所述接收單元可被操作用來從所述訪問設(shè)備之外的源中接收對分配給每個(gè)所述保護(hù)區(qū)和用戶數(shù)據(jù)區(qū)的扇區(qū)數(shù)的設(shè)定;所述第一計(jì)算單元可被操作用來根據(jù)所接收的設(shè)定為每個(gè)所述保護(hù)區(qū)和用戶數(shù)據(jù)區(qū)計(jì)算文件分配表的大??;以及所述第二計(jì)算單元可被操作用來分別通過將保護(hù)區(qū)大小和用戶數(shù)據(jù)區(qū)大小中的每一個(gè)與構(gòu)成所述分區(qū)引導(dǎo)區(qū)信息的扇區(qū)數(shù)及構(gòu)成根目錄登記項(xiàng)的扇區(qū)數(shù)相加,以便分別計(jì)算出該保護(hù)區(qū)和用戶數(shù)據(jù)區(qū)的兩個(gè)和SUM,再將這兩個(gè)和SUM的每個(gè)值代入{公式1},分別計(jì)算出該保護(hù)區(qū)和用戶數(shù)據(jù)區(qū)的m值。
7.權(quán)利要求2的訪問裝置,其中所述記錄單元能執(zhí)行(a)第一處理將分成多個(gè)片段的用戶數(shù)據(jù)在所述第二區(qū)域內(nèi)記錄為若干簇,每個(gè)片段被存儲(chǔ)在該第二區(qū)域中的若干簇的一簇中(b)第二處理在所述文件分配表中設(shè)置多個(gè)登記項(xiàng),每個(gè)登記項(xiàng)指示簇之間的一個(gè)鏈接;以及(c)第三處理在所述根目錄登記項(xiàng)中記錄一個(gè)文件名和表示該文件第一簇位置的位置信息。
8.權(quán)利要求1的訪問裝置,其中所述預(yù)留單元可被操作用來除第一和第二區(qū)域之外在所述存儲(chǔ)區(qū)內(nèi)預(yù)留一塊備份區(qū);而且當(dāng)記錄在所述第二區(qū)域中的用戶數(shù)據(jù)作為具有擴(kuò)充屬性的文件進(jìn)行管理時(shí),所述記錄單元可被操作用來在該備份區(qū)中記錄表示擴(kuò)充屬性的屬性信息。
9.權(quán)利要求1的訪問裝置,其中所述半導(dǎo)體存儲(chǔ)卡還記錄包含多條屬性登記項(xiàng)的屬性表,每條登記項(xiàng)對應(yīng)于若干塊之一;記錄在所述第二區(qū)域中的用戶數(shù)據(jù)作為至少一個(gè)具有寫禁止屬性的文件進(jìn)行管理;而且所述記錄單元可被操作用來為所述屬性表中的如下登記項(xiàng)設(shè)置寫禁止屬性,即所述登記項(xiàng)對應(yīng)于完全由與寫禁止文件中的各簇相對應(yīng)的扇區(qū)所構(gòu)成的塊。
10.權(quán)利要求1的訪問裝置,其中所述卷管理信息包括一個(gè)文件分配表;所述文件分配表中對應(yīng)于未使用簇的登記項(xiàng)被設(shè)置為第一值,而所述文件分配表中對應(yīng)于已用簇的登記項(xiàng)被設(shè)置為非第一值的值;所述半導(dǎo)體存儲(chǔ)卡還保存有一個(gè)含有物理地址的已擦塊列表,該物理地址指定了該存儲(chǔ)區(qū)多個(gè)塊中的已擦塊;而且該訪問裝置包括指定單元,它可被操作用來指定下述的塊(a)由簇中所有那些在所述文件分配表中設(shè)置為未用扇區(qū)組成的塊;(b)在所述已擦塊列表中未置為擦除的塊;以及擦除單元,它可被操作用來擦除指定的塊。
11.權(quán)利要求1的訪問裝置,其中所述卷信息包括一個(gè)文件分配表;所述文件分配表中對應(yīng)于未使用簇的登記項(xiàng)被設(shè)置為第一值,而所述文件分配表中對應(yīng)于已用簇的登記項(xiàng)被設(shè)置為非第一值的值;所述半導(dǎo)體存儲(chǔ)卡還保存有一個(gè)含有物理地址的已擦塊表,該物理地址指定了該存儲(chǔ)區(qū)多個(gè)塊中的已擦塊;而且該訪問裝置包括指定單元,它可被操作用來指定下述的塊(a)由簇中所有那些在所述文件分配表中設(shè)置為未用扇區(qū)組成的塊;(b)在所述已擦塊表中未置為擦除的塊;以及擦除單元,它可被操作用來擦除指定的塊。
12.權(quán)利要求1的訪問裝置,其中將所述用戶數(shù)據(jù)劃分為多個(gè)片段,每個(gè)片段存儲(chǔ)在一個(gè)塊中;所述半導(dǎo)體存儲(chǔ)卡包括一個(gè)對應(yīng)表,表示存儲(chǔ)一個(gè)片段的每個(gè)塊所屬的物理地址和邏輯地址之間的對應(yīng)關(guān)系;而且當(dāng)該對應(yīng)表指示出用于存儲(chǔ)用戶數(shù)據(jù)片段的多個(gè)塊的多個(gè)物理地址對應(yīng)著多個(gè)不連續(xù)的邏輯地址時(shí),該訪問裝置包括分配單元,可被操作用來將這些物理地址分配給一些連續(xù)的邏輯地址;指令發(fā)送單元,可被操作用來通過向所述半導(dǎo)體存儲(chǔ)卡發(fā)出讀指令來將這些塊中的用戶數(shù)據(jù)片段讀出,該讀指令指定了這些連續(xù)邏輯地址的起始地址。
13.一種以計(jì)算機(jī)可讀格式存儲(chǔ)程序的記錄介質(zhì),用于初始化計(jì)算機(jī),以便通過將每組2j(j為0或正整數(shù))個(gè)扇區(qū)上的數(shù)據(jù)作為一個(gè)簇進(jìn)行管理,以及將一個(gè)或多個(gè)簇作為一個(gè)文件進(jìn)行管理而在一個(gè)半導(dǎo)體存儲(chǔ)卡上執(zhí)行文件訪問,所述半導(dǎo)體存儲(chǔ)卡具有一個(gè)由多個(gè)扇區(qū)組成的存儲(chǔ)區(qū),在該存儲(chǔ)區(qū)內(nèi),每組2i個(gè)連續(xù)扇區(qū)組成一個(gè)塊(i為0或正整數(shù)),塊是能夠執(zhí)行數(shù)據(jù)擦除的最小單位,該記錄介質(zhì)使計(jì)算機(jī)執(zhí)行如下步驟計(jì)算步驟,根據(jù)所述存儲(chǔ)區(qū)內(nèi)要管理的簇的數(shù)量計(jì)算出卷管理信息的大小,所述卷管理信息包括一個(gè)文件分配表,用于為每個(gè)文件指示與該文件相對應(yīng)的各簇之間的鏈接;預(yù)留步驟,預(yù)留(1)一個(gè)用于記錄卷管理信息的第一區(qū)域,以及(2)一個(gè)用于記錄用戶數(shù)據(jù)的第二區(qū)域,所述第一區(qū)域所具有的數(shù)據(jù)長度大于所計(jì)算的卷管理信息,并且由m×2j(m是一個(gè)正整數(shù))個(gè)扇區(qū)組成,而所述第二區(qū)域由接著第一區(qū)域的扇區(qū)組成;以及記錄步驟,在第一區(qū)域里記錄卷管理信息,在第二區(qū)域里記錄用戶數(shù)據(jù),并將這些卷管理信息和用戶數(shù)據(jù)作為簇進(jìn)行管理。
14.權(quán)利要求13的記錄介質(zhì),其中除了所述文件分配表之外,所述卷管理信息還包括主引導(dǎo)記錄、分區(qū)表、分區(qū)引導(dǎo)區(qū)信息、根目錄登記項(xiàng);而且所述記錄步驟在所述第一區(qū)域的第一扇區(qū)里記錄所述主引導(dǎo)記錄和分區(qū)表,并在跳過預(yù)定數(shù)量的扇區(qū)后在后續(xù)的扇區(qū)里記錄所述分區(qū)引導(dǎo)區(qū)信息、文件分配表和根目錄登記項(xiàng),以便使所述第一區(qū)域的結(jié)束與根目錄登記項(xiàng)的結(jié)束相一致。
15.權(quán)利要求14的記錄介質(zhì),其中所述計(jì)算步驟通過將用于記錄所述分區(qū)引導(dǎo)區(qū)信息、文件分配表和根目錄登記項(xiàng)的扇區(qū)數(shù)相加而計(jì)算出其和SUM;所述預(yù)留步驟通過根據(jù){公式1}計(jì)算出的m值而預(yù)留出第一區(qū)域{公式1}NOM+SUM=2j×m,NOM為扇區(qū)數(shù);而且所述記錄步驟通過將扇區(qū)數(shù)NOM減1而計(jì)算出所述預(yù)定的扇區(qū)數(shù)。
16.權(quán)利要求15的記錄介質(zhì),其中當(dāng)記錄所述卷管理信息時(shí),所述記錄步驟在所述分區(qū)表中設(shè)置所述預(yù)定數(shù)量的扇區(qū)數(shù)。
17.權(quán)利要求15的記錄介質(zhì),其中所述文件分配表有多個(gè)登記項(xiàng)、與若干簇相對應(yīng)的若干登記項(xiàng),而且每條登記項(xiàng)表示了在同一文件中到其它簇的鏈接;所述程序包括以下步驟接收步驟,用于接收在所述存儲(chǔ)區(qū)內(nèi)對扇區(qū)總數(shù)的設(shè)定;所述計(jì)算步驟包括第一計(jì)算步驟,通過用所述扇區(qū)總數(shù)除以扇區(qū)數(shù)2j計(jì)算出總簇?cái)?shù),而且通過將所述總簇?cái)?shù)乘以一條登記項(xiàng)的位長度計(jì)算出所述文件分配表的大小,以及所述預(yù)留步驟包括第二計(jì)算步驟,通過將所述文件分配表的大小與分別構(gòu)成所述分區(qū)表和根目錄登記項(xiàng)的扇區(qū)數(shù)相加而計(jì)算出其和SUM,并將該和SUM代入{公式1}計(jì)算出m值。
18.權(quán)利要求17的記錄介質(zhì),其中所述存儲(chǔ)區(qū)包括只有當(dāng)與所述半導(dǎo)體存儲(chǔ)卡相連的設(shè)備已得到授權(quán)驗(yàn)證時(shí)才能由該設(shè)備進(jìn)行訪問的保護(hù)區(qū),和不管所述相連設(shè)備的授權(quán)是否得到驗(yàn)證均能由該設(shè)備進(jìn)行訪問的用戶數(shù)據(jù)區(qū);所述接收步驟從所述訪問設(shè)備之外的源中接收對分配給每個(gè)所述保護(hù)區(qū)和用戶數(shù)據(jù)區(qū)的扇區(qū)數(shù)的設(shè)定;所述第一計(jì)算步驟根據(jù)所接收的設(shè)定為每個(gè)所述保護(hù)區(qū)和用戶數(shù)據(jù)區(qū)計(jì)算文件分配表的大?。灰约八龅诙?jì)算步驟(1)分別通過將保護(hù)區(qū)大小和用戶數(shù)據(jù)區(qū)大小中的每一個(gè)與構(gòu)成所述分區(qū)引導(dǎo)區(qū)信息的扇區(qū)數(shù)及構(gòu)成根目錄登記項(xiàng)的扇區(qū)數(shù)相加,以便分別計(jì)算出該保護(hù)區(qū)和用戶數(shù)據(jù)區(qū)的兩個(gè)和SUM,(2)將所述兩個(gè)和中的每個(gè)SUM值代入{公式1},分別計(jì)算出該保護(hù)區(qū)和用戶數(shù)據(jù)區(qū)的m值。
19.一種初始化計(jì)算機(jī)的初始化方法,用于通過將每組2j(j為0或正整數(shù))個(gè)扇區(qū)上的數(shù)據(jù)作為一個(gè)簇進(jìn)行管理,以及將一個(gè)或多個(gè)簇作為一個(gè)文件進(jìn)行管理而在半導(dǎo)體存儲(chǔ)卡上執(zhí)行文件訪問,所述半導(dǎo)體存儲(chǔ)卡具有一個(gè)由多個(gè)扇區(qū)組成存儲(chǔ)區(qū),該存儲(chǔ)區(qū)內(nèi)每組2i個(gè)連續(xù)扇區(qū)組成一個(gè)塊(i為0或正整數(shù)),塊是能夠執(zhí)行數(shù)據(jù)擦除的最小單位,該初始化方法包括以下步驟計(jì)算步驟,根據(jù)所述存儲(chǔ)區(qū)內(nèi)要處理的簇的數(shù)量計(jì)算出卷管理信息的大小,所述卷管理信息包括一個(gè)文件分配表,用于為每個(gè)文件指示與該文件對相應(yīng)的各簇之間的鏈接;預(yù)留步驟,預(yù)留(1)一個(gè)用于記錄卷管理信息的第一區(qū)域,以及(2)一個(gè)用于記錄用戶數(shù)據(jù)的第二區(qū)域,所述第一區(qū)域所具有的數(shù)據(jù)長度大于所計(jì)算的卷管理信息,并且由m×2j(m是一個(gè)正整數(shù))個(gè)扇區(qū)組成,而所述第二區(qū)域由接著第一區(qū)域的扇區(qū)組成;以及記錄步驟,在第一區(qū)域里記錄卷管理信息,在第二區(qū)域里記錄用戶數(shù)據(jù),并將這些卷管理信息和用戶數(shù)據(jù)作為簇進(jìn)行管理。
20.一種半導(dǎo)體存儲(chǔ)卡,包含一個(gè)由多個(gè)扇區(qū)組成的存儲(chǔ)區(qū),并將每組2j(j為0或正整數(shù))個(gè)扇區(qū)上的數(shù)據(jù)作為一個(gè)簇進(jìn)行管理,以及將一個(gè)或多個(gè)簇作為一個(gè)文件進(jìn)行管理,該存儲(chǔ)區(qū)內(nèi)每組2i個(gè)連續(xù)扇區(qū)組成一個(gè)塊(i為0或正整數(shù)),塊是能夠執(zhí)行數(shù)據(jù)擦除的最小單位,該半導(dǎo)體存儲(chǔ)卡包括第一區(qū)域,由m×2j(m是一個(gè)正整數(shù))個(gè)扇區(qū)組成,用于記錄卷管理信息;以及第二區(qū)域,由接著第一區(qū)域的扇區(qū)組成,用于記錄用戶數(shù)據(jù);所述卷管理信息包括一個(gè)文件分配表,用于為每個(gè)文件指示與該文件對相應(yīng)的各簇之間的鏈接。
21.權(quán)利要求20的半導(dǎo)體存儲(chǔ)卡,其中除了所述文件分配表之外,所述卷管理信息還包括主引導(dǎo)記錄、分區(qū)表、分區(qū)引導(dǎo)區(qū)信息、根目錄登記項(xiàng);而且在所述第一區(qū)域的第一扇區(qū)里記錄所述主引導(dǎo)記錄和分區(qū)表,跳過預(yù)定數(shù)量的扇區(qū)后,在后續(xù)的扇區(qū)里記錄所述分區(qū)引導(dǎo)區(qū)信息、文件分配表和根目錄登記項(xiàng),以便使所述第一區(qū)域的結(jié)束與根目錄登記項(xiàng)的結(jié)束相一致。
22.權(quán)利要求20的半導(dǎo)體存儲(chǔ)卡還記錄了包含多條屬性登記項(xiàng)的屬性表,每條登記項(xiàng)對應(yīng)于若干塊之一;在所述第二區(qū)域中記錄的用戶數(shù)據(jù)作為至少一個(gè)具有寫禁止屬性的文件進(jìn)行管理;而且所述記錄單元可被操作用來為所述屬性表中的如下登記項(xiàng)設(shè)置寫禁止屬性,即所述登記項(xiàng)對應(yīng)于完全由與寫禁止文件中的各簇相對應(yīng)的扇區(qū)所構(gòu)成的塊。
23.一種含有存儲(chǔ)區(qū)的半導(dǎo)體存儲(chǔ)卡,該存儲(chǔ)區(qū)包括(1)保護(hù)區(qū),只能由與所述半導(dǎo)體存儲(chǔ)卡相連的、且其授權(quán)已得到驗(yàn)證的設(shè)備進(jìn)行訪問,以及(2)用戶數(shù)據(jù)區(qū),不管所述相連設(shè)備的授權(quán)是否得到驗(yàn)證,均能由該設(shè)備進(jìn)行訪問,該保護(hù)區(qū)和用戶數(shù)據(jù)區(qū)均包括多個(gè)扇區(qū),而且將每組2j(j為0或正整數(shù))個(gè)扇區(qū)上的數(shù)據(jù)作為一個(gè)簇進(jìn)行管理,并將一個(gè)或多個(gè)簇作為一個(gè)文件進(jìn)行管理,每組2i個(gè)連續(xù)扇區(qū)組成一個(gè)塊(i為0或正整數(shù)),塊是能夠執(zhí)行數(shù)據(jù)擦除的最小單位,而且所述保護(hù)區(qū)和用戶數(shù)據(jù)區(qū)中的至少一個(gè)包括第一區(qū)域,由m×2j(m是一個(gè)正整數(shù))個(gè)扇區(qū)組成,用于記錄卷管理信息;以及第二區(qū)域,由接著第一區(qū)域的扇區(qū)組成,用于記錄用戶數(shù)據(jù);所述卷管理信息包括一個(gè)文件分配表,用于為每個(gè)文件指示與該文件對相應(yīng)的各簇之間的鏈接。
24.權(quán)利要求23的半導(dǎo)體存儲(chǔ)卡,其中除了所述文件分配表之外,所述卷管理信息還包括主引導(dǎo)記錄、分區(qū)表、分區(qū)引導(dǎo)區(qū)信息和根目錄登記項(xiàng);而且在所述第一區(qū)域的第一扇區(qū)里記錄所述主引導(dǎo)記錄和分區(qū)表,跳過預(yù)定數(shù)量的扇區(qū)后,在后續(xù)的扇區(qū)里記錄所述分區(qū)引導(dǎo)區(qū)信息、文件分配表和根目錄登記項(xiàng),以便使所述第一區(qū)域的結(jié)束與根目錄登記項(xiàng)的結(jié)束相一致。
25.權(quán)利要求23的半導(dǎo)體存儲(chǔ)卡,還記錄了包含多條屬性登記項(xiàng)的屬性表,每條登記項(xiàng)對應(yīng)于若干塊之一;在所述第二區(qū)域中記錄的用戶數(shù)據(jù)作為至少一個(gè)具有寫禁止屬性的文件進(jìn)行管理;而且所述記錄單元可被操作用來為所述屬性表中的如下登記項(xiàng)設(shè)置寫禁止屬性,即所述登記項(xiàng)對應(yīng)于完全由與寫禁止文件中的各簇相對應(yīng)的扇區(qū)所構(gòu)成的塊。
全文摘要
在半導(dǎo)體存儲(chǔ)卡中,位于卷區(qū)始端的預(yù)定數(shù)量的可擦塊包含有卷管理信息。緊接著所述卷管理信息的用戶區(qū)包含有多個(gè)簇。對于從主引導(dǎo)記錄和分區(qū)表扇區(qū)到分區(qū)引導(dǎo)區(qū)的這段區(qū)域,如此來確定其數(shù)據(jù)長度NOM,使得用戶區(qū)的多個(gè)簇在安排時(shí)不跨越可擦塊的邊界。由于在所述用戶區(qū)中所述簇邊界和可擦塊邊界一致,所以不必執(zhí)行為了重寫一個(gè)簇而擦除兩個(gè)可擦塊的浪費(fèi)處理。
文檔編號(hào)G06F12/00GK1341237SQ00804072
公開日2002年3月20日 申請日期2000年10月19日 優(yōu)先權(quán)日1999年10月21日
發(fā)明者前田卓治, 廣田照人 申請人:松下電器產(chǎn)業(yè)株式會(huì)社