欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

閃存管理設(shè)備和方法

文檔序號:6571189閱讀:243來源:國知局
專利名稱:閃存管理設(shè)備和方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種閃存管理設(shè)備和方法,更具體地講,涉及這樣一種閃存管理設(shè)備和方法,該設(shè)備和方法將存儲器的塊劃分為數(shù)據(jù)塊和i節(jié)點(i-node)塊,并分別在i節(jié)點塊中指定存儲在數(shù)據(jù)塊中的數(shù)據(jù)的存儲路徑,以便通過搜索i節(jié)點塊來容易地訪問各條數(shù)據(jù)。
背景技術(shù)
閃存是一種持續(xù)供電的非易失性存儲器,可以以塊為單位對其進行擦除和重新編程。閃存是電可擦除可編程只讀存儲器(EEPROM)的變形。EEPROM可以以字節(jié)級別進行擦除和重寫,而閃存可以以塊為單位進行重寫。因此,閃存比EEPROM更快。
以存儲單元的扇區(qū)在單個動作或一閃中被擦除的方式來組織微芯片,閃存的名字來源于此。擦除由Fowler-Nordheim隧道效應(yīng)引起,其中,電子穿過薄的電介質(zhì)材料,以從與每個存儲單元相關(guān)的浮置柵極移除電荷。
閃存不是包括簡單的存儲裝置、刷新電路和糾錯電路的無源裝置,如動態(tài)隨機存取存儲器(DRAM)。相反,閃存是從程序員接收命令并執(zhí)行接收的命令的有源裝置。利用命令用戶接口(CUI)來發(fā)出命令,并且通過寫狀態(tài)機(WSM)來管理系統(tǒng)的整個狀態(tài)。所述命令的例子包括讀取、寫入及其他控制命令。
諸如閃存的非易失性存儲器具有隨機存取存儲器(RAM)和只讀存儲器(ROM)二者的優(yōu)點,RAM可自由寫入和擦除數(shù)據(jù),而ROM可在沒有供電的情況下保持存儲的數(shù)據(jù)。因此,非易失性存儲器廣泛用作諸如數(shù)字相機、個人數(shù)字助理(PDA)和MP3的手持式電子裝置的存儲介質(zhì)。
與傳統(tǒng)的RAM或磁帶類似,非易失性存儲器允許對存儲在預(yù)定位置的數(shù)據(jù)的隨機訪問。然而,與傳統(tǒng)的存儲裝置不同,非易失性存儲器以擦除塊(以下,稱為“塊”)為單位來重寫或擦除數(shù)據(jù)。
即,當(dāng)要修正數(shù)據(jù)時,包括該數(shù)據(jù)的塊被擦除,然后數(shù)據(jù)被重寫。這就像通過按下刪除鍵來刪除文字,然后重寫該文字一樣,而非在該文字中一個接一個地修正字符或字母。
圖1示出傳統(tǒng)的非易失性存儲器100的結(jié)構(gòu)。參照圖1,傳統(tǒng)的非易失性存儲器100包括多個塊110,每個塊110包括多個頁200。
圖2示出圖1中所示的頁200之一的結(jié)構(gòu)。頁200是讀取和寫入操作的基本單位。每一頁200可被劃分為數(shù)據(jù)區(qū)210和備用區(qū)220。數(shù)據(jù)區(qū)210存儲數(shù)據(jù),備用區(qū)220記錄被記錄在相應(yīng)物理頁中的邏輯頁的偏移。
每一頁200的數(shù)據(jù)區(qū)210記錄512字節(jié)的數(shù)據(jù)。文件ID和組塊(chunk)號被分配給每一頁200并被記錄在備用區(qū)220中。此外,隨著頁200的位置的增加,2位的序列號被分配給頁200。因此,即使由于電源故障、故障或其他差錯,相同的組塊號被分配給兩個頁時,這兩個頁也可彼此區(qū)分。
如上所述,備用區(qū)220存在于每一頁200中,并且存儲在備用區(qū)220中的信息用于檢索存儲在存儲器100中的數(shù)據(jù)。即,當(dāng)用戶或設(shè)備想要檢索存儲在存儲器100中的數(shù)據(jù)時,掃描所有頁200的備用區(qū)220,以提取數(shù)據(jù)的位置。
隨著對閃存的需求的增加,閃存的集成密度也增加到幾十吉字節(jié)。為了對具有上述結(jié)構(gòu)的存儲器進行初始化,只有在存儲器的所有備用區(qū)都被掃描之后才能訪問頁,這可能花費幾十秒以上的時間。
因此,需要一種能夠在不掃描整個存儲器的情況下容易地訪問目標(biāo)頁的發(fā)明。

發(fā)明內(nèi)容
本發(fā)明的目的在于將存儲器的塊劃分為數(shù)據(jù)塊和i節(jié)點(i-node)塊,并分別在i節(jié)點塊中指定存儲在數(shù)據(jù)塊中的數(shù)據(jù)的存儲路徑,以便通過搜索i節(jié)點塊來容易地訪問各條數(shù)據(jù)。
本發(fā)明的另一目的在于根據(jù)文件大小使不同的i節(jié)點對應(yīng)于每一文件。
然而,本發(fā)明的目的不限于這里所闡述的目的。通過參考下面所給出的本發(fā)明的詳細描述,對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員而言,本發(fā)明的上述和其他目的將變得更加明顯。
根據(jù)本發(fā)明的一方面,提供一種閃存管理設(shè)備,包括映射搜索模塊,搜索形成存儲器的塊中的位于存儲器的預(yù)設(shè)位置的映射塊,并提取一個或多個i節(jié)點塊的存儲路徑;路徑搜索模塊,基于提取結(jié)果搜索所述i節(jié)點塊中指定的數(shù)據(jù)的存儲路徑;數(shù)據(jù)管理模塊,通過數(shù)據(jù)的存儲路徑訪問數(shù)據(jù),并執(zhí)行對數(shù)據(jù)的處理。
根據(jù)本發(fā)明的一方面,提供一種閃存管理方法,包括搜索形成存儲器的塊中的位于存儲器的預(yù)設(shè)位置的映射塊,并提取一個或多個i節(jié)點塊的存儲路徑;基于提取結(jié)果搜索所述i節(jié)點塊中指定的數(shù)據(jù)的存儲路徑;通過數(shù)據(jù)的存儲路徑訪問數(shù)據(jù),并執(zhí)行對數(shù)據(jù)的處理。


通過參考附圖對本發(fā)明優(yōu)選實施例的詳細描述,本發(fā)明的上述和其他特征和優(yōu)點將變得更清楚,其中圖1示出傳統(tǒng)的非易失性存儲器的結(jié)構(gòu);圖2示出傳統(tǒng)的頁的結(jié)構(gòu);圖3示出根據(jù)本發(fā)明實施例的存儲器的結(jié)構(gòu);圖4是根據(jù)本發(fā)明實施例的閃存管理設(shè)備的框圖;圖5示出根據(jù)本發(fā)明實施例的映射塊的詳細構(gòu)造;圖6示出根據(jù)本發(fā)明實施例的i節(jié)點塊的i節(jié)點頁的結(jié)構(gòu);圖7示出根據(jù)本發(fā)明實施例的直接引用i節(jié)點;圖8示出根據(jù)本發(fā)明實施例的間接引用i節(jié)點;圖9是顯示根據(jù)本發(fā)明實施例的對于每一頁大小的文件大小的表;圖10是示出根據(jù)本發(fā)明實施例的存儲器管理過程的流程圖;圖11至圖13是示出使用傳統(tǒng)的閃存管理方法和根據(jù)本發(fā)明實施例的閃存管理方法進行的無用單元收集性能測試的結(jié)果的曲線圖;圖14是顯示圖11至圖13的性能測試的結(jié)果的表;圖15是顯示使用傳統(tǒng)的閃存管理方法和根據(jù)本發(fā)明實施例的閃存管理方法進行的另一性能測試的結(jié)果的表。
具體實施例方式
現(xiàn)在,將參照附圖更全面地描述本發(fā)明,附圖中示出了本發(fā)明的示例性實施例。然而,本發(fā)明可以以許多不同的形式實施,而不應(yīng)被解釋為限于這里所闡述的實施例。相反,提供這些實施例以便本公開將完整和全面,并將向本領(lǐng)域技術(shù)人員充分傳達本發(fā)明的構(gòu)思。附圖中的相同的標(biāo)號表示相同的部件,因此將省略其描述。
以下,將參照附圖詳細描述本發(fā)明的實施例。
圖3示出根據(jù)本發(fā)明實施例的存儲器300的結(jié)構(gòu)。參照圖3,存儲器300包括映射塊310、一個或多個數(shù)據(jù)塊320以及一個或多個i節(jié)點(i-node)塊330。
數(shù)據(jù)塊320存儲數(shù)據(jù)。即,每一數(shù)據(jù)塊320中所包括的每一頁(以下,稱為數(shù)據(jù)頁)的數(shù)據(jù)區(qū)存儲數(shù)據(jù)。
i節(jié)點塊330存儲數(shù)據(jù)的存儲路徑。即,每一i節(jié)點塊330中所包括的每一頁(以下,稱為i節(jié)點頁)的數(shù)據(jù)區(qū)存儲數(shù)據(jù)被存儲于其中的數(shù)據(jù)頁的地址,即索引項(index entry)。i節(jié)點塊330還存儲元數(shù)據(jù)。在本發(fā)明中,i節(jié)點包括元數(shù)據(jù)和索引項,i節(jié)點被分配給i節(jié)點頁。索引項表示數(shù)據(jù)的存儲路徑,可理解為數(shù)據(jù)塊320之一的數(shù)據(jù)頁的地址。
元數(shù)據(jù)包括i節(jié)點號、文件所有者的用戶ID、文件所有者的群ID、文件大小、塊大小、最后訪問時間、最后修正時間、i節(jié)點修正時間、文件名以及上層的i節(jié)點。
映射塊310存儲i節(jié)點塊330的存儲路徑。即,映射塊310中所包括的每一頁的數(shù)據(jù)區(qū)存儲每一i節(jié)點塊330的存儲路徑。以下,i節(jié)點塊330的存儲路徑的列表將被稱為i節(jié)點映射。
映射塊310可位于存儲器300的預(yù)定位置,最好位于存儲器300的頭部。當(dāng)閃存管理設(shè)備被供電從而被初始化時,其首先必須參考存儲在映射塊310中的i節(jié)點映射。如果映射塊310的位置是固定的,則閃存管理設(shè)備不需要搜索映射塊310。
為了安裝文件系統(tǒng),應(yīng)該參考元數(shù)據(jù)。在本發(fā)明中,存儲元數(shù)據(jù)的塊與存儲數(shù)據(jù)的塊相分離。因此,閃存管理設(shè)備可參考i節(jié)點映射來提取i節(jié)點塊330,并搜索存儲元數(shù)據(jù)的塊,即i節(jié)點塊330。然后,閃存管理設(shè)備可參考存儲在i節(jié)點塊330中的元數(shù)據(jù)。
此外,由于各條數(shù)據(jù)的存儲路徑被指定在i節(jié)點塊330中,所以閃存管理設(shè)備可參考i節(jié)點映射來提取i節(jié)點塊330,從而更快地執(zhí)行初始化。
當(dāng)包括閃存管理設(shè)備的系統(tǒng)運行時,可在任何時間修改存儲在數(shù)據(jù)塊320中的各條數(shù)據(jù)的存儲路徑。當(dāng)文件系統(tǒng)被卸載時,閃存管理設(shè)備將存儲器300的狀態(tài)存儲在i節(jié)點映射中。因此,當(dāng)隨后文件系統(tǒng)被安裝時,閃存管理設(shè)備可基于i節(jié)點映射識別存儲器300的狀態(tài)。
圖4是根據(jù)本發(fā)明實施例的閃存管理設(shè)備400的框圖。參照圖4,閃存管理設(shè)備400包括映射更新模塊410、映射搜索模塊420、路徑搜索模塊430、i節(jié)點生成模塊440、控制模塊450、數(shù)據(jù)管理模塊460和存儲器300。
映射更新模塊410更新存儲在映射塊310中的i節(jié)點映射。如果閃存管理設(shè)備400管理存儲器300,則在執(zhí)行讀取、寫入和擦除操作時,存儲器300的存儲路徑可能改變。映射更新模塊410通過反映這種改變來更新i節(jié)點映射。
每當(dāng)存儲器300的存儲路徑改變時,映射更新模塊410可更新i節(jié)點映射。可選地,映射更新模塊410可在文件系統(tǒng)被卸載時更新i節(jié)點映射。
映射搜索模塊420搜索映射塊310并提取一個或多個i節(jié)點塊330的存儲路徑。即,映射搜索模塊420參考存儲在映射塊310的每一頁中的i節(jié)點映射來提取i節(jié)點塊330的存儲路徑。
路徑搜索模塊430參考映射搜索模塊420的提取結(jié)果來搜索存儲在每一i節(jié)點塊330中的i節(jié)點。即,路徑搜索模塊430基于從映射搜索模塊420接收的i節(jié)點映射來訪問i節(jié)點塊330,掃描包括在每一i節(jié)點塊330中的i節(jié)點頁,并搜索存儲在每一i節(jié)點頁中的i節(jié)點。當(dāng)搜索i節(jié)點時,可參考包括在其中的元數(shù)據(jù)和索引項。
如上所述,當(dāng)文件系統(tǒng)被卸載時,i節(jié)點映射被更新。當(dāng)包括閃存管理設(shè)備400的系統(tǒng)異常終止時,或者當(dāng)該系統(tǒng)發(fā)生故障時,可能不正確地更新i節(jié)點映射。映射搜索模塊420確定i節(jié)點映射是否被正確地更新,并將確定結(jié)果發(fā)送給路徑搜索模塊430。如果i節(jié)點映射沒有被正確地更新,則路徑搜索模塊430不能接收i節(jié)點塊330的存儲路徑。
如果路徑搜索模塊430沒有從映射搜索模塊420接收到i節(jié)點塊330的存儲路徑,則路徑搜索模塊430自己搜索i節(jié)點塊330。即,路徑搜索模塊430掃描存儲器300的所有塊,以搜索i節(jié)點塊330。在這種情況下,路徑搜索模塊430不是掃描每一塊的所有頁,而是掃描位于每一塊的頭部的頁的備用區(qū)。位于存儲器300的每一塊的頭部的頁的備用區(qū)指定相應(yīng)塊的類型。利用該信息,路徑掃描模塊430搜索i節(jié)點塊330。
i節(jié)點生成模塊440生成i節(jié)點,從而更新i節(jié)點塊330的i節(jié)點頁。存儲器300中的一個或多個塊可被預(yù)先設(shè)置為i節(jié)點塊330,在閃存管理設(shè)備400運行的任何時間都可生成或擦除i節(jié)點塊330。因此,如果i節(jié)點塊330不存在,則i節(jié)點生成模塊440可將存儲器300的塊中那些沒有被使用的塊設(shè)置為i節(jié)點塊330,并將生成的i節(jié)點插入i節(jié)點頁中。
數(shù)據(jù)管理模塊460通過從路徑搜索模塊430接收的數(shù)據(jù)的存儲路徑來訪問數(shù)據(jù),并執(zhí)行對數(shù)據(jù)的處理。所述處理包括讀取數(shù)據(jù)、寫入數(shù)據(jù)、生成數(shù)據(jù)和擦除數(shù)據(jù)中的至少一種。
控制模塊450直接連接到存儲器300,利用映射更新模塊410、映射搜索模塊420、路徑搜索模塊430、i節(jié)點生成模塊440和數(shù)據(jù)管理模塊460來控制存儲器300。此外,控制模塊450控制閃存管理模塊400的每一模塊。
圖5示出根據(jù)本發(fā)明實施例的映射塊310的詳細構(gòu)造。參照圖5,映射塊310的每一頁包括i節(jié)點塊列表510、卸載標(biāo)志520、i節(jié)點塊數(shù)530和列表大小540。
i節(jié)點塊列表510可存儲在映射塊310的每一頁的數(shù)據(jù)區(qū)中,并且每一頁中可存儲不同的信息。此外,卸載標(biāo)志520、i節(jié)點塊數(shù)530和列表大小540可被存儲在每一頁的備用區(qū)中。所有頁中可存儲相同的信息。
i節(jié)點塊列表510存儲用于存儲器300的所有i節(jié)點塊330的i節(jié)點映射。映射搜索模塊420從i節(jié)點塊列表510提取i節(jié)點映射,然后提取i節(jié)點塊330的存儲路徑。
卸載標(biāo)志520存儲指示文件系統(tǒng)是否正常卸載的標(biāo)志。例如,如果文件系統(tǒng)正常卸載,則卸載標(biāo)志520具有值1。如果文件系統(tǒng)異常卸載,則卸載標(biāo)志520具有值0。映射搜索模塊420基于卸載標(biāo)志520來確定文件系統(tǒng)是否正常卸載以及i節(jié)點映射是否正常更新。
i節(jié)點塊數(shù)530指示映射塊310的全部頁中指定的i節(jié)點塊的數(shù)量,列表大小540指定構(gòu)造i節(jié)點映射所分配的頁的大小??稍谟成渌阉髂K420搜索i節(jié)點映射時使用i節(jié)點塊數(shù)530和列表大小540。
圖6示出根據(jù)本發(fā)明實施例的i節(jié)點塊330的i節(jié)點頁600的結(jié)構(gòu)。i節(jié)點塊330的i節(jié)點頁600被劃分為數(shù)據(jù)區(qū)610和備用區(qū)602。
數(shù)據(jù)區(qū)601存儲元數(shù)據(jù)610以及一個或多個索引項621至623,備用區(qū)602存儲備用數(shù)據(jù)630。
備用數(shù)據(jù)630包括記錄在相應(yīng)物理頁中的邏輯頁的偏移、文件ID、組塊號和序列號。路徑搜索模塊430參考備用數(shù)據(jù)630以提取數(shù)據(jù)的存儲路徑。
位于存儲器300的每一塊的頭部的頁的備用數(shù)據(jù)可包括指示相應(yīng)塊的類型的標(biāo)志(以下,稱為類型標(biāo)志)。位于i節(jié)點塊330的頭部的i節(jié)點頁600的備用數(shù)據(jù)630可包括指示i節(jié)點塊330是i節(jié)點的類型標(biāo)志。因此,如果由于文件系統(tǒng)異常卸載,映射搜索模塊420不能搜索i節(jié)點映射,則路徑搜索模塊430可利用類型標(biāo)志來搜索i節(jié)點塊330。
文件可以足夠小以便被分配給數(shù)據(jù)塊320的一個數(shù)據(jù)頁,或者足夠大以便被分配給數(shù)據(jù)塊320的多個數(shù)據(jù)頁。在本發(fā)明中,i節(jié)點650根據(jù)文件的大小被分為直接引用i節(jié)點和間接引用i節(jié)點。
直接引用i節(jié)點包括一個或多個索引項,所述一個或多個索引項分別指定包括在數(shù)據(jù)塊中的一個或多個數(shù)據(jù)頁的存儲路徑,從而數(shù)據(jù)頁可被直接引用。另一方面,間接引用i節(jié)點包括一個或多個索引項,所述一個或多個索引項分別指定引用包括在數(shù)據(jù)塊320中的數(shù)據(jù)頁的一個或多個i節(jié)點頁的存儲路徑。
即,直接引用i節(jié)點的索引項分別指定數(shù)據(jù)塊320的數(shù)據(jù)頁的存儲路徑,而間接引用i節(jié)點的索引項分別指定另一i節(jié)點塊的一個或多個i節(jié)點頁的存儲路徑。i節(jié)點塊的i節(jié)點頁可包括指定數(shù)據(jù)塊320的數(shù)據(jù)頁的存儲路徑的索引項或指定另一i節(jié)點塊的i節(jié)點頁的存儲路徑的索引項。
圖7示出根據(jù)本發(fā)明實施例的直接引用i節(jié)點700。參照圖7,包括在直接引用i節(jié)點700中的索引項710至740分別引用數(shù)據(jù)頁715至745。被引用的數(shù)據(jù)頁715至745可包括在一個塊中或多個不同的塊中。
直接引用i節(jié)點700的索引項710至740中的每一個索引項指定形成一個文件的部分數(shù)據(jù)的存儲路徑。路徑搜索模塊430可利用包括在直接引用i節(jié)點700中的索引項710至740來引用分別包括在多個數(shù)據(jù)塊320中的數(shù)據(jù)頁715至745。因此,可利用基于直接引用i節(jié)點700提取的多條數(shù)據(jù)來完成文件。
圖8示出根據(jù)本發(fā)明實施例的間接引用i節(jié)點800。參照圖8,間接引用i節(jié)點800的多個索引項中的一個索引項810引用另一i節(jié)點的i節(jié)點頁820,i節(jié)點頁820引用多個數(shù)據(jù)頁831至835。被引用的數(shù)據(jù)頁831至835可包括在一個塊中或多個不同的塊中。
間接引用i節(jié)點800的每一索引項指定另一i節(jié)點的存儲路徑。路徑搜索模塊430可利用包括在另外的一個或多個i節(jié)點中的多個索引項來引用包括在多個數(shù)據(jù)塊中的數(shù)據(jù)頁831至835。即,以樹形式來構(gòu)造索引項,最低層的索引項引用數(shù)據(jù)塊320的數(shù)據(jù)頁。因此,間接引用i節(jié)點800可比直接引用i節(jié)點700引用更多的數(shù)據(jù)塊320的數(shù)據(jù)頁。
圖9是顯示根據(jù)本發(fā)明實施例的對于每一頁大小的文件大小的表。該表顯示了根據(jù)頁大小和i節(jié)點類型所允許的文件大小。
如上所述,i節(jié)點頁可包括元數(shù)據(jù)以及一個或多個索引項。如果i節(jié)點頁的大小為512字節(jié),元數(shù)據(jù)的大小為256字節(jié),則分配給索引項的i節(jié)點頁的大小為256字節(jié)。在這種情況下,如果每一索引項的大小可為4字節(jié),則可存在64個索引項。
類似地,如果i節(jié)點頁600(見圖6)的大小為2千字節(jié),元數(shù)據(jù)的大小為256字節(jié),則分配給索引項的i節(jié)點頁600的大小為1792字節(jié)。因此,可存在448個4字節(jié)的索引項。
在直接引用i節(jié)點700(見圖7)的情況下,64個數(shù)據(jù)頁可被64個索引項引用。在這種情況下,由于數(shù)據(jù)頁的大小為512字節(jié),所以可找到具有32,768字節(jié)(即,小于32千字節(jié))大小的文件。如果數(shù)據(jù)頁的大小為2千字節(jié),448個數(shù)據(jù)頁可被448個索引項所引用,則可找到具有917,504字節(jié)(即,896千字節(jié))大小的文件。
在間接引用i節(jié)點800的情況下,文件大小由被引用的i節(jié)點的層的數(shù)量來決定。因此,文件大小不受限制。圖9中所指定的是隨機值。
圖10是示出根據(jù)本發(fā)明實施例的存儲器管理過程的流程圖。
為了管理存儲器300,閃存管理設(shè)備400的映射搜索模塊420識別存儲在映射塊310的備用區(qū)中的卸載標(biāo)志(操作S1010),并確定文件系統(tǒng)是否正常卸載(操作S1020)。
如果文件系統(tǒng)正常卸載,則映射搜索模塊420搜索i節(jié)點映射,然后搜索i節(jié)點塊330和i節(jié)點(操作S1030)。當(dāng)搜索i節(jié)點時,可參考元數(shù)據(jù)和索引項。
因此,路徑搜索模塊430參考索引項來搜索數(shù)據(jù)塊320的數(shù)據(jù)頁的存儲路徑(操作S1040),并將搜索結(jié)果發(fā)送給數(shù)據(jù)管理模塊460,數(shù)據(jù)管理模塊460再執(zhí)行對數(shù)據(jù)的處理(操作S1050)。
如果映射搜索模塊420確定文件系統(tǒng)異常卸載,則路徑搜索模塊430識別位于存儲器300的每一塊的頭部的頁的備用區(qū)中所指定的類型標(biāo)志(操作S1060)。然后,路徑搜索模塊320確定相應(yīng)的塊是否是i節(jié)點塊330(操作S1070)。如果相應(yīng)的塊是i節(jié)點塊330,則路徑搜索模塊320搜索存儲在i節(jié)點頁600中的i節(jié)點。當(dāng)搜索i節(jié)點時,可參考元數(shù)據(jù)和索引項,從而可找到數(shù)據(jù)頁的存儲路徑(操作S1040)。數(shù)據(jù)管理模塊460接收搜索結(jié)果并執(zhí)行對數(shù)據(jù)的處理(操作S1050)。
圖11至圖13是示出使用傳統(tǒng)的閃存管理方法和根據(jù)本發(fā)明實施例的閃存管理方法進行的無用單元收集(garbage collection)性能測試的結(jié)果的曲線圖。
在這些測試中,使用了PostMark基準程序。PostMark創(chuàng)建在設(shè)置的范圍內(nèi)具有隨機大小的一組文件。然后,對所述文件進行處理,所述處理包括作為一對處理的文件創(chuàng)建或刪除以及文件讀取或?qū)懭搿C恳粚μ幚肀浑S機選擇,并且可通過參數(shù)設(shè)置。
文件的大小在512字節(jié)至60千字節(jié)范圍內(nèi),文件的數(shù)量限制為100至300個。此外,在單個操作中進行1,000個處理,每一對處理具有相同的概率。
在各個測試中,文件數(shù)與處理數(shù)的比例為1∶10、1∶3和1∶2。根據(jù)每種比例來收集結(jié)果。
在圖11至圖13中,X軸表示邏輯塊地址,Y軸表示寫入更新頻率的分布。這里,邏輯塊地址對應(yīng)于頁。如圖11至圖13中所示,傳統(tǒng)的文件系統(tǒng),即Ext2 1110至1310以及FAT 1120至1320中的每一個在邏輯塊地址的窄區(qū)域中顯示高的更新頻率,其中,所述窄區(qū)域是存儲元數(shù)據(jù)的區(qū)域。此外,當(dāng)文件與處理的比例增加時,更新頻率增加,并且邏輯塊地址的所述區(qū)域減小。
另一方面,傳統(tǒng)的文件系統(tǒng),即YAFFS 1130至1330以及根據(jù)本發(fā)明的文件系統(tǒng)1140至1340中的每一個在邏輯塊地址的整個區(qū)域上具有均勻的更新頻率分布。Ext2 1110至1310以及FAT 1120至1320中的每一個在邏輯塊地址的窄區(qū)域中顯示出高的更新頻率的原因在于Ext2 1110至1310或FAT1120至1320中的每一個的幾個i節(jié)點共享同一頁。
圖14是顯示圖11至圖13的性能測試的結(jié)果的表1400。具體地講,圖14顯示了根據(jù)文件與處理的比例的執(zhí)行無用單元收集的附加寫入頻率。
參照圖14的表1400,根據(jù)本發(fā)明的文件系統(tǒng)展現(xiàn)出比任何傳統(tǒng)文件系統(tǒng)更好的性能。這是因為根據(jù)本發(fā)明的文件系統(tǒng)具有無用單元收集算法,通過該無用單元收集算法,根據(jù)本發(fā)明的文件系統(tǒng)可在參考文件系統(tǒng)信息的同時使用存儲器。此外,由于i節(jié)點塊330被分離,所以根據(jù)本發(fā)明的文件系統(tǒng)顯示出比YAFFS好9-20%的無用單元收集性能。
圖15是顯示使用傳統(tǒng)的閃存管理方法和根據(jù)本發(fā)明的閃存管理方法進行的另一性能測試的結(jié)果的表1500。在圖15中,PostMark/處理比為1∶2。
參照圖15,根據(jù)本發(fā)明的文件系統(tǒng)所需的掃描時間比傳統(tǒng)的文件系統(tǒng)少。
PostMark/處理比指示每秒通過PostMark執(zhí)行的處理的數(shù)量。從表1500中可看出,YAFFS和根據(jù)本發(fā)明的文件系統(tǒng)顯示出比JFFS2略好的性能。這是因為JFFS2寫入包含i節(jié)點和數(shù)據(jù)的節(jié)點,這給i節(jié)點形成和文件存儲帶來一些開銷。此外,JFFS2利用壓縮寫入數(shù)據(jù)。
由于為大文件間接引用i節(jié)點,所以根據(jù)本發(fā)明的文件系統(tǒng)顯示出相當(dāng)高的頁寫入頻率。
最后,與傳統(tǒng)的文件系統(tǒng)相比,通過根據(jù)本發(fā)明的文件系統(tǒng),每一無用單元收集的附加寫入頻率減小了9-20%。
如上所述,根據(jù)本發(fā)明的閃存管理設(shè)備和方法提供至少下面的優(yōu)點。
首先,形成存儲器的塊被劃分為數(shù)據(jù)塊和i節(jié)點塊。此外,存儲在數(shù)據(jù)塊中的數(shù)據(jù)的存儲路徑分別在i節(jié)點塊中指定。因此,可通過搜索i節(jié)點塊來快速地訪問各條數(shù)據(jù)。
其次,由于根據(jù)文件大小,不同的i節(jié)點對應(yīng)于每一文件,所以可減少搜索文件所需的時間。
盡管已參照本發(fā)明的示例性實施例具體地顯示和描述了本發(fā)明,但是本領(lǐng)域普通技術(shù)人員應(yīng)該理解,在不脫離由權(quán)利要求限定的本發(fā)明的范圍和精神的情況下,可在其中進行各種形式和細節(jié)上的改變。這些示例性實施例應(yīng)該被認為是僅出于描述性目的,而非限制性目的。
權(quán)利要求
1.一種閃存管理設(shè)備,包括映射搜索模塊,搜索形成存儲器的塊中的位于存儲器的預(yù)設(shè)位置的映射塊,并提取一個或多個i節(jié)點塊的存儲路徑;路徑搜索模塊,基于提取結(jié)果搜索所述i節(jié)點塊中指定的數(shù)據(jù)的存儲路徑;數(shù)據(jù)管理模塊,通過數(shù)據(jù)的存儲路徑訪問數(shù)據(jù),并執(zhí)行對數(shù)據(jù)的處理。
2.如權(quán)利要求1所述的設(shè)備,其中,所述形成存儲器的塊包括下面的塊中的至少一種映射塊,由包括i節(jié)點塊的存儲路徑的頁組成;i節(jié)點塊,每個i節(jié)點塊由包括各條數(shù)據(jù)的存儲路徑的頁組成;一個或多個數(shù)據(jù)塊,每個數(shù)據(jù)塊由存儲數(shù)據(jù)的頁組成。
3.如權(quán)利要求2所述的設(shè)備,其中,如果在映射塊中沒有指定i節(jié)點塊的存儲路徑,則所述路徑搜索模塊提取包括在每一i節(jié)點塊中的頁,然后搜索包括在提取的頁的數(shù)據(jù)區(qū)中的數(shù)據(jù)的存儲路徑。
4.如權(quán)利要求3所述的設(shè)備,其中,所述路徑搜索模塊參考指示塊類型的標(biāo)志來提取包括在每一i節(jié)點塊中的頁,所述標(biāo)志被包括在位于存儲器的每一塊的頭部的頁的備用區(qū)中。
5.如權(quán)利要求2所述的設(shè)備,其中,包括在每一i節(jié)點塊中的頁是直接頁,指定一條數(shù)據(jù)的存儲路徑;或間接頁,指定包括多條數(shù)據(jù)的存儲路徑的頁的存儲路徑。
6.如權(quán)利要求1所述的設(shè)備,其中,所述映射塊包括位于存儲器的頭部的塊。
7.如權(quán)利要求1所述的設(shè)備,還包括映射更新模塊,更新包括在映射塊中的i節(jié)點塊的存儲路徑。
8.如權(quán)利要求7所述的設(shè)備,其中,所述映射塊包括i節(jié)點塊的存儲路徑的列表、指示i節(jié)點塊的存儲路徑是否被更新的標(biāo)志、i節(jié)點塊的數(shù)量以及i節(jié)點塊的大小中的至少一個。
9.如權(quán)利要求1所述的設(shè)備,其中,所述處理包括對數(shù)據(jù)的讀取、寫入、生成和擦除操作中的至少一種。
10.一種閃存管理方法,包括搜索形成存儲器的塊中的位于存儲器的預(yù)設(shè)位置的映射塊,并提取一個或多個i節(jié)點塊的存儲路徑;基于提取結(jié)果搜索所述i節(jié)點塊中指定的數(shù)據(jù)的存儲路徑;通過數(shù)據(jù)的存儲路徑訪問數(shù)據(jù),并執(zhí)行對數(shù)據(jù)的處理。
11.如權(quán)利要求10所述的方法,其中,所述形成存儲器的塊包括下面的塊中的至少一種映射塊,由包括i節(jié)點塊的存儲路徑的頁組成;i節(jié)點塊,每個i節(jié)點塊由包括各條數(shù)據(jù)的存儲路徑的頁組成;一個或多個數(shù)據(jù)塊,每個數(shù)據(jù)塊由存儲各條數(shù)據(jù)的頁組成。
12.如權(quán)利要求11所述的方法,其中,搜索各條數(shù)據(jù)的存儲路徑的步驟包括如果在映射塊中沒有指定i節(jié)點塊的存儲路徑,則提取包括在每一i節(jié)點塊中的頁;搜索包括在提取的頁的數(shù)據(jù)區(qū)中的數(shù)據(jù)的存儲路徑。
13.如權(quán)利要求12所述的方法,其中,提取頁的步驟包括參考指示塊類型的標(biāo)志來提取包括在每一i節(jié)點塊中的頁,所述標(biāo)志被包括在位于存儲器的每一塊的頭部的頁的備用區(qū)中。
14.如權(quán)利要求11所述的方法,其中,包括在每一i節(jié)點塊中的頁是直接頁,指定一條數(shù)據(jù)的存儲路徑;或間接頁,指定包括多條數(shù)據(jù)的存儲路徑的頁的存儲路徑。
15.如權(quán)利要求10所述的方法,其中,所述映射塊包括位于存儲器的頭部的塊。
16.如權(quán)利要求10所述的方法,還包括更新包括在映射塊中的i節(jié)點塊的存儲路徑。
17.如權(quán)利要求16所述的方法,其中,所述映射塊包括i節(jié)點塊的存儲路徑的列表、指示i節(jié)點塊的存儲路徑是否被更新的標(biāo)志、i節(jié)點塊的數(shù)量以及i節(jié)點塊的大小中的至少一個。
18.如權(quán)利要求10所述的方法,其中,所述處理包括對數(shù)據(jù)的讀取、寫入、生成和擦除操作中的至少一種。
全文摘要
提供一種閃存管理設(shè)備和方法,更具體地講,提供這樣一種閃存管理設(shè)備和方法,該設(shè)備和方法將存儲器的塊劃分為數(shù)據(jù)塊和i節(jié)點塊,并分別在i節(jié)點塊中指定存儲在數(shù)據(jù)塊中的數(shù)據(jù)的存儲路徑,以便通過搜索i節(jié)點塊來容易地訪問各條數(shù)據(jù)。所述閃存管理設(shè)備包括映射搜索模塊,搜索形成存儲器的塊中的位于存儲器的預(yù)設(shè)位置的映射塊,并提取一個或多個i節(jié)點塊的存儲路徑;路徑搜索模塊,基于提取結(jié)果搜索所述i節(jié)點塊中指定的數(shù)據(jù)的存儲路徑;數(shù)據(jù)管理模塊,通過數(shù)據(jù)的存儲路徑訪問數(shù)據(jù),并執(zhí)行對數(shù)據(jù)的處理。
文檔編號G06F12/02GK101021813SQ200710005600
公開日2007年8月22日 申請日期2007年2月13日 優(yōu)先權(quán)日2006年2月13日
發(fā)明者黃珠榮, 樸圭皓, 林丞虎 申請人:三星電子株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
海安县| 宁乡县| 买车| 舞阳县| 大余县| 平安县| 富宁县| 丰城市| 邢台县| 东乌珠穆沁旗| 延长县| 霍城县| 威海市| 林周县| 邮箱| 金华市| 阿合奇县| 鹰潭市| 宁明县| 双城市| 中山市| 称多县| 区。| 塔河县| 南汇区| 芦山县| 孟村| 扬州市| 南木林县| 云龙县| 高清| 那坡县| 阳朔县| 揭阳市| 本溪| 屏东县| 宜川县| 永清县| 聂荣县| 上思县| 旬邑县|