專利名稱:數據移動少可以高速存取的存儲裝置的制作方法
技術領域:
本發(fā)明涉及例如具有控制單元的存儲卡那樣的存儲裝置,特別是涉及它的存儲方法。
背景技術:
文件系統(tǒng)是管理記錄在存儲裝置中的數據的方式,表示設置在存儲媒體中的管理區(qū)域和管理信息。另外,在文件系統(tǒng)中,規(guī)定了存儲裝置中的文件和文件夾等的目錄信息的制作方法、文件和文件夾等的移動方法和刪除方法、數據記錄方式、管理區(qū)域的場所和利用方法等。
圖7表示簇大小為16k字節(jié)的FAT(File Allocation Table(文件分配表))文件系統(tǒng)的一個例子。該文件系統(tǒng)由管理區(qū)域701、多個簇A、B、C、D(702~705)........構成。文件系統(tǒng)管理區(qū)域701具有例如存儲引導信息的引導區(qū)域711、存儲分區(qū)信息等的區(qū)域712、存儲根目錄條目的信息的根目錄條目區(qū)域713、和FATA、FATB(714、715)。
在上述構成中,例如在使用簇A和簇C的狀態(tài)中,將文件名為“AAA.txt”、文件大小為32k字節(jié)的文件寫入到存儲裝置中。因為該文件大小比簇大小大,所以將文件分割成簇單位的大小,存儲在存儲裝置的空的簇中。即,因為應寫入的文件大小為32k字節(jié),所以使用2個簇寫入文件。因為不需要簇是連續(xù)的,所以例如可以使用簇B和簇D存儲文件。
這時,為了管理將應寫入的文件分割到哪個簇存儲而將管理信息存儲在FATA、FATB中。在FATA、FATB中,存儲同一數據,當在一個FAT中產生缺陷時,可以用另一個FAT修復數據。FATA、FATB存儲分割到文件中的簇的信息,存儲著存儲裝置中的簇的鏈接關系。通過跟蹤存儲在FATA、FATB中的信息,能夠復原到原來的文件。
這時,在被分割了的文件中,因為將前半部分的16k字節(jié)存儲在簇B中,將后半部分的16k字節(jié)存儲在簇D中,所以在FATA、FATB中存儲表示使簇D鏈接在簇B后面的信息。當讀出分割成2個簇的文件時,通過將存儲在FATA、FATB中的這些信息鏈接起來,使文件復原到原來的樣子。
根目錄條目區(qū)域713存儲文件名或文件夾名、文件大小、屬性和文件的更新日期時間等,并且存儲表示在FATA、FATB中所示的哪個簇是文件的首簇的標志。在該例子的情形中,存儲在根目錄條目區(qū)域713中的信息是文件名為“AAA.txt”、文件大小為32k字節(jié)、首簇為簇B。
使用這種文件系統(tǒng)的存儲裝置,當將數據寫入到存儲裝置時,除了寫入的數據以外,也需要一起更新根目錄條目的信息和FAT等的管理信息。
另一方面,存在著在根目錄下面制作子目錄名為“ABCDE”的子目錄,在那里寫入文件“AAA.txt”的情形。
如該例子那樣,當在根目錄下面制作子目錄時,將子目錄的條目簡單地稱為目錄條目。子目錄也與文件同樣,在空簇中制作稱為“ABCDE”的目錄條目(32字節(jié))。
目錄條目的內容與根目錄條目同樣,是關于在子目錄“ABCDE”中的文件的信息。在圖7中,當例如使用簇A和簇C,使簇B空時,將“ABCDE”的目錄條目寫入到簇B中。
下面,在根目錄條目區(qū)域713中,存儲關于“ABCDE”的目錄的信息。即,在根目錄條目區(qū)域713中,存儲表示稱為“ABCDE”的目錄條目位于哪個簇的信息。
其次,當在子目錄“ABCDE”中寫入文件“AAA.txt”時,更新存儲“ABCDE”的目錄條目的簇B的數據。簇具有16k字節(jié)的大小,但是當更新目錄條目中的條目時,用作為最小寫入單位的512字節(jié)的大小進行寫入的情形很多。簇B存儲關于在子目錄“ABCDE”下面制作的文件或者文件夾的管理信息。在該例子的情形中,將文件名“AAA.txt”、文件大小和寫入開始簇地址記錄在簇B中。
這里,將子目錄“ABCDE”的目錄條目寫入到管理區(qū)域701以外的簇區(qū)域(數據區(qū)域)中。所以,根據存儲裝置的簇的使用狀況,子目錄的新目錄條目的地址發(fā)生變化。對此,將FAT、根目錄條目存儲在管理區(qū)域701的固定地址上。
這樣,當寫入到固定地址時,通過設計使對該地址的寫入數據可連續(xù)存儲的特別的存儲區(qū)域,能夠達到使寫入高效率化的目的。但是,將位于根目錄條目下面的子目錄的目錄條目存儲在管理區(qū)域以外的簇區(qū)域中。存儲子目錄的目錄條目的地址,如果從根目錄檢索位于下層的目錄條目,則能夠特定地址。但是,當子目錄形成為多個分層時,則存在著在存儲裝置內從子目錄條目難以知道位于下層的所要的目錄條目的地址那樣的問題。
因此,使用和個人電腦由USB連接的卡讀寫器,例如調用對內建有NAND型閃存的存儲卡的寫入操作,分析目錄條目和文件的寫入地址及其頻度。
圖8表示其結果。如從圖8可知,在寫入文件數據的前后,多次進行向FAT和目錄條目的寫入。進一步,我們從圖8可知如下情況。
(1)向FAT和目錄條目的寫入大小比文件的數據小。
(2)向目錄條目的寫入地址總是同一地址。
(3)向目錄條目的寫入地址是管理區(qū)域之外的簇區(qū)域。
(4)在整個寫入流中,地址是非連續(xù)的。
另外,當寫入多個文件時,重復上述流的主機很多。
可是,在NAND型閃存中,將由一次寫入請求可以寫入的最小單位稱為頁。1頁由例如512字節(jié)或2048字節(jié)等構成。另外,將數據的刪除單位稱為塊,1塊由例如32頁、256頁、512頁等構成。
如上所述,當更新同一文件和文件夾時,不改變向對應的目錄條目進行寫入的地址。因此,需要重寫同一地址的數據。但是,NAND型閃存對完成寫入的頁不能夠重寫。當重寫時,必須預先進行刪除。因為只能夠以塊單位進行該刪除,所以當在頁單位中更新數據時,用完成刪除后的塊進行。這時,必須將重寫的頁的數據和重寫的頁所屬的塊內的其它頁的數據寫入到完成刪除后的塊中。
圖9表示對于塊A的頁C具有新寫入時的寫入操作的一個例子。
當將數據寫入到塊A的頁C中時,必須將頁C所屬的塊A的其它頁A、B、D.......N的數據傳送給塊B。即,需要先將頁A、B的數據傳送給塊B,此后,將新頁C的數據寫入到塊B中,然后,將頁D.......N的數據傳送給塊B。因此,即便在更新頁C這樣的小容量數據的情形中,數據的移動量也很多,寫入速度降低。
作為用于改善這種情況的方法,正在開發(fā)使數據的移動量盡可能地少,能夠改善性能的方法(例如請參照特開2003-280822號公報)。
但是,該特開2003-280822號公報中記載的技術是關于目錄以外的數據的技術。而且,如可以在到圖8所示的對NAND型閃存進行存取狀況的跟蹤結果中看到的那樣,未考慮目錄條目那樣的數據量很少,并且對于存取頻度多的寫入。所以,當將數據寫入到存取頻度高的目錄條目中時,希望具有將存儲裝置內的數據移動抑制到最小限度,可以高速存取的存儲裝置。
發(fā)明內容
按照本發(fā)明的第1方面,提供一種存儲裝置,該存儲裝置包含控制單元和存儲單元,上述控制單元包括從包含地址信息的寫入指令內檢測出上述地址信息的地址信息檢測單元,存儲地址信息的地址信息存儲單元,和判定由上述地址信息檢測單元檢測出的上述地址信息和存儲在上述地址信息存儲單元中的上述地址信息是否一致的第1地址判定單元;上述存儲單元包括第1存儲單元和第2存儲單元;上述控制單元當從上述第1地址判定單元接受一致信息時,將與上述地址信息對應的目錄條目信息存儲在上述第2存儲單元中。
按照本發(fā)明的第2方面,提供一種存儲裝置,該存儲裝置包含控制單元和存儲單元,從包含地址信息的寫入指令內檢測出上述地址信息的地址信息檢測單元,從由上述地址信息檢測單元檢測出的地址信息和對上述存儲單元預先設定的簇大小信息計算出簇地址信息的簇地址信息計算單元,存儲從上述簇地址信息計算單元供給的上述簇地址信息的簇地址信息存儲單元,和判定由上述簇地址信息計算單元算出的上述簇地址信息和存儲在上述簇地址信息存儲單元中的上述簇地址信息是否一致的簇地址判定單元;上述存儲單元具有第1存儲單元和第2存儲單元,上述控制單元當從上述簇地址判定單元接受一致信息時,將與上述簇地址信息對應的目錄條目信息存儲在上述第2存儲單元中。
按照本發(fā)明的第3方面,提供一種存儲裝置的存儲方法,該存儲裝置存儲方法包括從包含地址信息的寫入指令內檢測出上述地址信息,判定檢測出的上述地址信息和存儲在地址信息存儲單元中的地址信息是否一致,當檢測出的上述地址信息與存儲在地址信息存儲單元中的地址信息不一致時,將寫入數據存儲在存儲單元的第1存儲單元中;當上述寫入數據的數據大小比在上述存儲單元中設定的大小信息小時,將檢測出的上述地址信息存儲在上述地址信息存儲單元中;和當檢測出的上述地址信息和存儲在地址信息存儲單元中的地址信息一致時,將與上述地址信息對應的目錄條目信息存儲在上述存儲單元的第2存儲單元中。
按照本發(fā)明的第4方面,提供一種存儲裝置的存儲方法,該存儲裝置存儲方法包括從包含地址信息的寫入指令內檢測出上述地址信息;從由上述地址信息檢測單元檢測出的地址信息和在存儲單元中設定的簇大小信息算出簇地址信息;判定算出的上述簇地址信息和存儲在簇地址信息存儲單元中的簇地址信息是否一致,當算出的上述簇地址信息與存儲在簇地址信息存儲單元中的簇地址信息不一致時,將寫入數據存儲在存儲單元的第1存儲單元中;當上述寫入數據的數據大小小于等于在上述存儲單元中設定的大小信息時,將算出的上述簇地址信息存儲在上述地址信息存儲單元中;和當算出的上述簇地址信息與存儲在簇地址信息存儲單元中的簇地址信息一致時,將與上述簇地址信息對應的目錄條目信息存儲在上述存儲單元的第2存儲單元中。
圖1是與本發(fā)明的第1實施方式有關的構成圖。
圖2是表示圖1的操作的流程圖。
圖3是表示圖1所示的存儲單元的操作圖。
圖4是與本發(fā)明的第2實施方式有關的構成圖。
圖5是表示圖4的操作的流程圖。
圖6是表示存儲裝置起動時的操作的流程圖。
圖7是表示FAT文件系統(tǒng)的構成圖。
圖8是表示用于說明FAT文件系統(tǒng)的操作的一個例子的圖。
圖9是表示用于說明使用NAND型閃存的存儲裝置中的數據移動的概念的圖。
具體實施例方式
下面,我們參照
本發(fā)明的實施方式。
(第1實施方式)圖1表示例如作為具有控制單元和NAND型閃存的存儲卡的存儲裝置的一個例子。
在圖1中,由NAND型閃存構成的存儲單元101具有第1存儲單元102和第2存儲單元103。在第1存儲單元102中存儲著管理區(qū)域和多個簇A、B、C.......。管理區(qū)域例如包含引導區(qū)域、存儲分區(qū)信息等的區(qū)域、根目錄條目和FAT。
另外,第2存儲單元103與第1存儲單元102的例如1個簇對應,寫入脫離系統(tǒng)的管理區(qū)域的目錄條目(子目錄信息)。第2存儲單元103如后所述,當更新同一目錄條目的數據時,追加新的數據。作為目錄條目,例如具有文件名、文件大小、寫入開始地址等。
控制單元110例如具有存儲控制單元120,地址信息存儲單元121,第1、第2地址判定單元122a、122b,地址信息檢測單元123,大小比較單元124,數據大小信息檢測單元125,簇大小提取單元126,分區(qū)信息存儲單元127,和分區(qū)信息檢測單元128。
控制單元110不限定于這種構成,例如也可以由圖中未畫出的微處理器和存儲該微處理器工作中所需的程序的ROM和RAM構成,通過軟件進行控制。
上述存儲控制單元120,與來自外部接口和各構成單元的信息相應、對第1存儲單元102和第2存儲單元103,進行寫入和讀出目錄條目和文件數據等的控制。
地址信息檢測單元123檢測附加在經由外部接口供給的寫入指令中的寫入開始地址。
地址信息存儲單元121與后述的大小比較單元124的控制相應,存儲由地址信息檢測單元123檢測出的寫入開始地址。
第1地址判定單元122a判定由地址信息檢測單元123檢測出的寫入開始地址是否是文件系統(tǒng)的管理區(qū)域內的地址。將該判定結果供給存儲控制單元120。
第2地址判定單元122b比較由地址信息檢測單元123檢測出的寫入開始地址和存儲在地址信息存儲單元121中的寫入開始地址信息。將該比較結果供給存儲控制單元120。
數據大小信息檢測單元125檢測經由外部接口供給的寫入數據的大小。寫入數據經由存儲控制單元120被寫入到第1或第2存儲單元102、103。
大小比較單元124比較由數據大小信息檢測單元125檢測出的數據大小和從簇大小提取單元126供給的簇大小。將該比較結果供給地址信息存儲單元121和存儲控制單元120。當在大小比較單元124中判定寫入數據的大小小于等于簇大小時,地址信息存儲單元121存儲由地址信息檢測單元123檢測出的寫入開始地址信息。
分區(qū)信息檢測單元128,根據與來自圖中未畫出的主機的讀出請求相應,從存儲單元101的例如管理區(qū)域104讀出的數據,檢測出包含預先設定的分區(qū)信息和簇信息的信息。
分區(qū)信息存儲單元127存儲包含由分區(qū)信息檢測單元128檢測出的分區(qū)信息和簇大小的信息。對于分區(qū)信息存儲單元127,考慮沒有檢測出分區(qū)信息的情形,當制品出廠時預先設定為初始值。
簇大小提取單元126提取存儲在分區(qū)信息存儲單元127中的簇大小。
下面,我們參照圖2說明第1實施方式中的寫入處理。
首先,地址信息檢測單元123檢測附加在經過圖中未畫出的外部接口供給的寫入指令中的寫入開始地址信息(ST201)。此后,由第1地址判定單元122a判定由地址信息檢測單元123檢測出的寫入開始地址是否在管理區(qū)域內(ST202)。結果,當寫入開始地址在管理區(qū)域內時,將數據寫入到第1存儲單元102中(ST203)。即,通過通常的寫入處理關于FAT和根目錄的數據。
另一方面,當上述判定結果為寫入開始地址在管理區(qū)域外時,第2地址判定單元122b比較由地址信息檢測單元123檢測出的地址信息是否與存儲在地址信息存儲單元121中的寫入開始地址信息相同。即,判定過去是否進行了對該地址的寫入(ST204)。
該比較結果,當是過去沒有寫入寫入開始地址的地址時,將數據寫入到第1存儲單元102的空簇中(ST205,ST206)。這時,數據大小信息檢測單元125檢測出經由外部接口寫入到存儲單元101的數據大小。
當結束了向第1存儲單元102的數據存儲時,大小比較單元124取入從數據大小信息檢測單元125寫入到第1存儲單元102的數據大小和由簇大小提取單元126從分區(qū)信息存儲單元127提取的簇大小(ST207,ST208),比較并判定寫入的數據大小和簇大小(ST209)。
結果,當數據大小是小于等于簇大小時,判斷為寫入目錄,將由地址信息檢測單元123檢測出的寫入開始地址信息存儲在地址信息存儲單元121中(ST210)。另外,當數據大小比簇大小大時,進行通常的寫入處理。
另一方面,當上述步驟ST204中的比較結果是寫入地址和存儲在地址信息存儲單元121中的地址一致時,即,當過去對該地址很少進行數據寫入時,將現(xiàn)在這次的寫入數據看作目錄條目的寫入。因此,將數據追加在為目錄條目設置的第2存儲單元103中(ST211、ST212)。
如上所述,即便當將目錄條目寫入到作為文件系統(tǒng)的數據區(qū)域的第1存儲單元102的情形中,在第2次寫入目錄條目以后,也能夠將目錄條目寫入到第2存儲單元103。
圖3表示對第1、第2存儲單元102、103的寫入工作的一個例子。
在圖3中,例如塊A、B、C、D與第1存儲單元102對應,例如塊E與第2存儲單元103對應。例如如下地規(guī)定各區(qū)域的大小。令1頁為512字節(jié),1塊為16k字節(jié),1簇為16k字節(jié),1目錄條目為32字節(jié)。
這里,當上述步驟ST204的比較結果是寫入的地址和存儲在地址信息存儲單元121中的地址一致時,判斷為現(xiàn)在這次的寫入數據為目錄條目。這時,將作為目錄條目的新頁1C的數據寫入到圖3所示的例如刪除后的塊E的頁1中。另外,在對應該目錄條目將數據寫入塊C的頁1C的情形中,將表示塊C的頁1C的數據寫入到設置在塊E的頁1中的冗余區(qū)域612。
進一步,在然后的寫入中,當檢測出的寫入地址再次與存儲在地址信息存儲單元121中的地址一致時,在塊E的頁2中追加新的目錄條目。將表示塊C的頁1C的數據寫入到該塊E的頁2中的冗余區(qū)域614。這樣一來,對于對與存儲在地址信息存儲單元121中的地址相同的寫入地址的寫入操作,將新的目錄條目追加在塊E中。
NAND型閃存,為了以頁單位寫入數據,可以追加頁單位。因此,在可以追加的范圍內,不需要使數據移動到新的刪除塊中。
另外,例如當在判斷為目錄條目的地址中存在變動時和在預定的定時下,根據在塊E中追加的目錄條目,更新存儲在塊C中的目錄條目。該目錄條目的更新按以下順序進行。首先,參照塊E的頁的冗余部分,由存儲在塊E中的目錄條目檢測出更新的頁。這里,為了將表示塊C的頁1C的數據寫入到塊E的頁的冗余部分中,檢測出塊C的頁1C作為更新的頁。而且,將在塊E中追加的目錄條目中最新的目錄條目(塊E的頁2的數據)傳送到完成刪除后的塊D的第1頁,將沒有更新數據的塊C的剩余數據傳送到塊D的第2頁以后的頁。由此,更新存儲在塊C中的目錄條目。
另外,在地址信息存儲單元121中,需要最低存儲大于等于2個的地址的容量。這是因為在文件中使用的最終簇不以簇單位寫入,而作為大小比簇單位小的數據存儲。這時,會將文件的最后部分誤認為是目錄條目,將該寫入地址存儲在地址信息存儲單元121中。所以,當將下一次地址存儲在地址信息存儲單元121中時,也可以刪除在存儲在地址信息存儲單元121中的地址中,例如在多次寫入中,不能看作是目錄條目的地址。
如果根據上述第1實施方式,則當數據的大小小于等于簇大小,將數據寫入到與存儲在地址信息存儲單元121中的地址相同的寫入地址時,以頁單位將目錄條目追加在存儲單元101的第2存儲單元103中。因此,在可以追加的范圍中不需要將數據移動到新的刪除塊。所以,即便在根目錄下面設定了子目錄的情形中,也可以防止寫入速度的降低。
另外,在第2存儲單元103的冗余區(qū)域中,存儲著表示追加頁的數據。因此,在接通存儲裝置的電源時,主機可以容易地從存儲在冗余區(qū)域中的數據檢測出追加的頁。
(第2實施方式)圖4、圖5表示第2實施方式。目錄條目以32字節(jié)表現(xiàn)1個文件或文件夾。因此,可以保存在512字節(jié)的區(qū)域中的目錄條目的數目為16個。所以,當連續(xù)地記錄多個文件時,并且在對每個文件逐一地更新目錄條目的主機的情形中,當寫入16個文件時,則寫入開始地址移動512字節(jié)。在比較地址的第1實施方式的情形中,當寫入16個文件時,寫入的地址變?yōu)椴煌牡刂?。因此,每當寫?6個文件時發(fā)生數據移動,使寫入性能降低。第2實施方式就是要解決這個問題。
在圖4中,存儲裝置由存儲單元301和控制單元320構成。由NAND型閃存構成的存儲單元301由第1存儲單元302和第2存儲單元303構成。與第1實施方式同樣,在第1存儲單元302中存儲著管理區(qū)域和多個簇A、B、C.......。另外,第2存儲單元303,與第1存儲單元302的例如1個簇對應,寫入脫離系統(tǒng)的管理區(qū)域的目錄條目(子目錄信息)。
控制單元110例如具有存儲控制單元320,簇地址信息存儲單元321,第1、第2地址判定單元322a、322b,簇地址信息計算單元323,大小比較單元324,數據大小信息檢測單元325,簇大小提取單元326、分區(qū)信息存儲單元327,和分區(qū)信息檢測單元328。
控制單元110不限定于這種構成,例如也可以由圖中未畫出的微處理器和存儲在該微處理器操作中所需的程序的ROM和RAM構成,用軟件進行控制。
另外,存儲控制單元320、大小比較單元324、數據大小信息檢測單元325、簇大小提取單元326、分區(qū)信息存儲單元327、分區(qū)信息檢測單元328與第1實施方式相同。
簇地址信息計算單元323檢測附加在經由外部接口的寫入指令中的寫入開始地址,用簇大小除該寫入開始地址,將該除法結果整數部分作為寫入開始簇地址。
簇地址信息存儲單元321與大小比較單元324的控制相應,存儲由地址信息計算單元323算出的寫入開始簇地址。
第1簇地址判定單元322a判定由簇地址信息計算單元323算出的寫入開始簇地址是否是文件系統(tǒng)的管理區(qū)域內的地址。將該判定結果供給存儲控制單元320。
第2簇地址判定單元322b比較由簇地址信息計算單元323算出的寫入開始簇地址和存儲在簇地址信息存儲單元321中的寫入開始簇地址信息。將該比較結果供給存儲控制單元320。
圖5表示與第2實施方式有關的寫入處理。
首先,簇地址信息計算單元323,檢測附加在經由外部接口供給的寫入指令中的寫入開始地址信息,用簇大小除檢測出的寫入開始地址,算出寫入開始地址所屬的寫入開始簇地址(ST401)。此后,由第1簇地址判定單元322a,判定由簇地址信息計算單元323檢測出的寫入開始簇地址是否在管理區(qū)域內(ST402)。結果,當寫入開始簇地址在管理區(qū)域內時,通過通常的寫入處理,將數據寫入到第1存儲單元302(ST403)。即,通過通常的寫入來處理關于FAT和根目錄的數據。
另一方面,當上述判定結果為寫入開始簇地址在管理區(qū)域外時,第2地址判定單元322b比較由簇地址信息計算單元323檢測出的簇地址信息是否與存儲在簇地址信息存儲單元321中的寫入開始簇地址信息相同。即,判定過去是否進行了對該簇地址的寫入(ST404)。
當該比較結果是過去沒有寫入過寫入開始簇地址的地址時,將寫入數據存儲到第1存儲單元302的區(qū)域中(ST405,ST406)。這時,數據大小信息檢測單元325檢測經由外部接口寫入到存儲裝置的數據大小。
當結束了向第1存儲單元302的數據存儲時,大小比較單元324取入從數據大小信息檢測單元325寫入到第1存儲單元302的數據大小和由簇大小提取單元326從分區(qū)信息存儲單元327提取的簇大小(ST407,ST408),比較判定寫入的數據大小和簇大小(ST409)。
結果,當數據大小小于等于簇大小時,判斷為寫入目錄,將由簇地址信息計算單元323檢測出的寫入開始簇地址信息存儲在簇地址信息存儲單元321中(ST410)。另外,當數據大小比簇大小大時,進行通常的寫入處理。
另一方面,當上述步驟ST404中的比較結果是寫入簇地址和存儲在地址信息存儲單元321中的簇地址一致時,即,當過去對該簇地址進行過地址寫入時,將現(xiàn)在這次的寫入數據看作為目錄條目的寫入。因此,將數據寫入到為目錄條目設置的第2存儲單元303中(ST411、ST412)。
另外,存儲在第2存儲單元303中的數據,可以是只存儲具有寫入請求的寫入數據,或者通過在簇的數據中更新簇內的經過更新的數據將簇自身存儲在第2存儲單元303中的某一種。在無論哪種情形中,為了辨別是簇內的哪個地址的數據,與第1實施方式同樣,將表示地址的標志存儲在第2存儲單元303的冗余存儲單元中。
如果根據上述第2實施方式,則簇地址信息計算單元323,用簇大小除從寫入指令內檢測出的寫入開始地址,算出寫入開始地址所屬的寫入開始簇地址,當簇地址判定單元322判定為存儲在簇地址信息存儲單元321中的簇地址信息和由簇地址信息檢測單元檢測出的簇地址信息一致時,看作寫入目錄條目,將數據追加記錄在第2存儲單元303中。所以,即便在將子目錄設定在根目錄下面的情形中,也可以防止寫入速度的降低。
而且,因為目錄條目以32字節(jié)表現(xiàn)1個文件或文件夾,所以能夠存儲在512字節(jié)內的目錄條目的數目為16個。目錄條目的大小為16k字節(jié),在更新大小為512字節(jié)的主機的情形中,當對每個文件的寫入逐一地更新目錄條目時,將關于16個文件的條目存儲在512字節(jié)中。因此,當寫入16個文件時,使寫入開始地址移動512字節(jié)。在進行地址比較的第1實施方式的情形中,因為當寫入16個文件時,寫入的地址成為不同的地址,所以沒有寫入到處于追加記錄狀態(tài)的第2存儲單元。對此,在第2實施方式的情形中,即便使地址移動512字節(jié),在同一簇的范圍內,也可以將該地址看作同一個簇地址。所以,在簇大小為16k字節(jié)的情形中,因為對于510個(=512-2(目錄首的2個條目是關于母目錄和自身目錄的信息))的文件的目錄條目,不發(fā)生需要處理時間的數據移動處理,所以可以進行高速寫入。
下面,我們用圖6說明直到起動第1、第2實施方式所示的存儲裝置的操作。起動存儲裝置時的操作在第1、第2實施方式中是相同的,所以我們以第1實施方式為例進行說明。
當使存儲裝置接通電源時,將讀出請求從主機供給存儲控制單元120。存儲控制單元120與讀出請求相應從存儲單元101讀出,例如存儲在管理區(qū)域中的數據,傳送到主機(ST501)。分區(qū)信息檢測單元128從該讀出數據檢測出分區(qū)信息等(ST502、ST503)。結果,當能夠檢測出分區(qū)信息時(ST504),更新并存儲分區(qū)信息存儲單元(127、327)內的分區(qū)信息(ST504)。
接著,主機從包含在經由圖中未畫出的外部接口從存儲控制單元120供給的讀出數據中的分區(qū)信息中判別文件系統(tǒng)的種類和簇大小是否是處理對象(ST505)。結果,當文件系統(tǒng)的種類和簇大小是處理對象時,使控制移動到圖2所示的ST201或圖5所示的ST401。另外,當文件系統(tǒng)的種類和簇大小在處理對象以外時,實施不用第2存儲單元的通常的寫入處理。
這樣,當起動存儲裝置時,通過判別文件系統(tǒng)的種類和簇大小是否是處理對象,可以防止誤動作,并且可以使處理高速化。
另外,在上述第1、第2實施方式中,大小比較單元124、324比較了簇大小和數據大小,但是不限定于此,例如當比較比簇大小小的預定值和數據大小,數據大小小于等于預定值時,也可以將該寫入數據的地址存儲在地址信息存儲單元121或簇地址信息存儲單元321中。具體地說,當簇大小為16k字節(jié)時,作為預定值例如設定4k字節(jié),當寫入數據大小小于等于4k字節(jié)時,也可以將該寫入數據的地址存儲在地址信息存儲單元或簇地址信息存儲單元中。
對于那些本領域技術人員來說很容易知道額外的優(yōu)點和修改。所以,本發(fā)明,在它的更廣泛的方面,不限定這里指出和描述的具體細節(jié)和代表性的實施方式中。因此,在不背離由所附的權利要求書和它們的等效描述的一般的創(chuàng)造性概念的主旨和范疇的條件下可以作出各種不同的修改。
權利要求
1.一種存儲裝置,其特征在于該存儲裝置包含,控制單元;和存儲單元;上述控制單元包括從包含地址信息的寫入指令內檢測出上述地址信息的地址信息檢測單元;存儲地址信息的地址信息存儲單元;和判定由上述地址信息檢測單元檢測出的上述地址信息和存儲在上述地址信息存儲單元中的上述地址信息是否一致的第1地址判定單元;上述存儲單元包括第1存儲單元和第2存儲單元;當從上述第1地址判定單元接受一致信息時,上述控制單元將與上述地址信息對應的目錄條目信息存儲在上述第2存儲單元中。
2.根據權利要求1所述的存儲裝置,其特征在于上述存儲單元具有存儲用于管理上述第1、第2存儲單元的信息的管理區(qū)域。
3.根據權利要求2所述的存儲裝置,其特征在于它進一步包含,判定由上述地址信息檢測單元檢測出的地址信息與上述管理區(qū)域內的地址信息是否一致的第2地址判定單元;當從上述第2地址判定單元接受一致信息時,上述控制單元將與上述地址信息對應的目錄條目信息存儲在上述管理區(qū)域內。
4.根據權利要求1所述的存儲裝置,其特征在于上述控制單元進一步包括檢測附加在上述寫入指令中的寫入數據的數據大小信息的數據大小信息檢測單元;和比較上述數據大小信息檢測單元檢測出的上述數據大小信息和對上述存儲單元預先設定的大小信息的大小比較單元;當上述大小比較單元的比較結果為上述數據大小信息小于等于上述大小信息時,上述控制單元將由上述地址信息檢測單元檢測出的上述地址信息存儲在上述地址信息存儲單元中。
5.根據權利要求1所述的存儲裝置,其特征在于上述控制單元進一步包括檢測上述存儲單元的分區(qū)信息和簇信息的分區(qū)信息檢測單元;當由上述分區(qū)信息檢測單元檢測出的分區(qū)信息或上述簇信息不在作為上述控制單元的對象的范圍內時,進行不用第2存儲單元地寫入到上述存儲單元中的處理。
6.根據權利要求3所述的存儲裝置,其特征在于上述管理區(qū)域存儲根目錄條目,上述第2存儲單元存儲子目錄的目錄條目。
7.根據權利要求2所述的存儲裝置,其特征在于上述存儲單元包括NAND型閃存。
8.一種存儲裝置,其特征在于該存儲裝置包含控制單元;存儲單元;從包含地址信息的寫入指令內檢測出上述地址信息的地址信息檢測單元;從由上述地址信息檢測單元檢測出的地址信息和對上述存儲單元預先設定的簇大小信息算出簇地址信息的簇地址信息計算單元;存儲從上述簇地址信息計算單元供給的上述簇地址信息的簇地址信息存儲單元;和判定由上述簇地址信息計算單元算出的上述簇地址信息和存儲在上述簇地址信息存儲單元中的上述簇地址信息是否一致的簇地址判定單元;上述存儲單元具有第1存儲單元和第2存儲單元;當從上述簇地址判定單元接受一致信息時,上述控制單元將與上述簇地址信息對應的目錄條目信息存儲在上述第2存儲單元中。
9.根據權利要求8所述的存儲裝置,其特征在于上述存儲單元具有存儲用于管理上述第1、第2存儲單元的信息的管理區(qū)域。
10.根據權利要求9所述的存儲裝置,其特征在于它進一步包含,判定由上述地址信息檢測單元檢測出的地址信息與上述管理區(qū)域內的地址信息是否一致的地址判定單元;當從上述地址判定單元接受一致信息時,上述控制單元將與上述地址信息對應的目錄條目信息存儲在上述管理區(qū)域內。
11.根據權利要求8所述的存儲裝置,其特征在于上述控制單元進一步包括檢測附加在上述寫入指令中的寫入數據的數據大小信息的數據大小信息檢測單元;和比較上述數據大小信息檢測單元檢測出的上述數據大小信息和在上述存儲單元中設定的大小信息的大小比較單元;當上述大小比較單元的比較結果為上述數據大小信息小于等于上述大小信息時,上述控制單元將由上述簇地址信息檢測單元檢測出的上述簇地址信息存儲在上述簇地址信息存儲單元中。
12.根據權利要求8所述的存儲裝置,其特征在于上述控制單元進一步包括檢測上述存儲單元的分區(qū)信息和簇信息的分區(qū)信息檢測單元;當由上述分區(qū)信息檢測單元檢測出的分區(qū)信息或上述簇信息不在作為上述控制單元的對象的范圍內時,進行不用第2存儲單元地寫入到上述存儲單元中的處理。
13.根據權利要求10所述的存儲裝置,其特征在于它是上述管理區(qū)域以存儲根目錄條目為特征,上述第2存儲單元以存儲子目錄的目錄條目為特征的根據權利要求3或7所述的存儲裝置。
14.根據權利要求13所述的存儲裝置,其特征在于上述第2存儲單元追加記錄上述目錄條目。
15.根據權利要求12所述的存儲裝置,其特征在于上述存儲單元包括NAND型閃存。
16.一種存儲裝置的記錄方法,其特征在于包括從包含地址信息的寫入指令內檢測出上述地址信息;判定檢測出的上述地址信息和存儲在地址信息存儲單元中的地址信息是否一致,當檢測出的上述地址信息與存儲在地址信息存儲單元中的地址信息不一致時,將寫入數據存儲在存儲單元的第1存儲單元中;當上述寫入數據的數據大小比在上述存儲單元中設定的大小信息小時,將檢測出的上述地址信息存儲在上述地址信息存儲單元中;和當檢測出的上述地址信息和存儲在地址信息存儲單元中的地址信息一致時,將與上述地址信息對應的目錄條目信息存儲在上述存儲單元的第2存儲單元中。
17.根據權利要求16所述的方法,其特征在于上述存儲單元包括NAND型閃存。
18.一種存儲裝置的存儲方法,其特征在于包括從包含地址信息的寫入指令內檢測出上述地址信息;從由上述地址信息檢測單元檢測出的地址信息和在存儲單元中設定的簇大小信息算出簇地址信息;判定算出的上述簇地址信息和存儲在簇地址信息存儲單元中的簇地址信息是否一致,當算出的上述簇地址信息與存儲在簇地址信息存儲單元中的簇地址信息不一致時,將寫入數據存儲在存儲單元的第1存儲單元中;當上述寫入數據的數據大小小于等于在上述存儲單元中設定的大小信息時,將算出的上述簇地址信息存儲在上述地址信息存儲單元中;和當算出的上述簇地址信息與存儲在簇地址信息存儲單元中的簇地址信息一致時,將與上述簇地址信息對應的目錄條目信息存儲在上述存儲單元的第2存儲單元中。
19.根據權利要求18所述的方法,其特征在于上述存儲單元包括NAND型閃存。
全文摘要
控制單元具有從包含地址信息的寫入指令內檢測出地址信息的地址信息檢測單元、存儲地址信息的地址信息存儲單元、和判定由地址信息檢測單元檢測出的地址信息與存儲在地址信息存儲單元中的地址信息是否一致的第1地址判定單元。當從第1地址判定單元接受一致信息時,控制單元將與地址信息對應的目錄條目信息存儲在存儲單元的第2存儲單元中。
文檔編號G06F12/02GK1716217SQ200510081820
公開日2006年1月4日 申請日期2005年6月30日 優(yōu)先權日2004年6月30日
發(fā)明者須田隆也 申請人:株式會社東芝