專利名稱::閃存儲(chǔ)存系統(tǒng)的數(shù)據(jù)刻錄方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種數(shù)據(jù)刻錄方法,尤其是指一種數(shù)據(jù)在閃存中的刻錄配置方法,以改善閃存儲(chǔ)存空間的使用效率及提升其工作效能。
背景技術(shù):
:閃存(Flashmemory)是一種非揮發(fā)性的儲(chǔ)存組件,由于其具有低耗電、高存取速率、耐震及重量輕等優(yōu)點(diǎn),因此已逐漸地取代部分傳統(tǒng)的硬盤裝置,而廣泛的被使用在計(jì)算機(jī)系統(tǒng)及可攜式電子裝置等作為儲(chǔ)存單元之用。一般閃存儲(chǔ)存系統(tǒng)的架構(gòu)圖如圖1所示,快閃記憶體5包括一控制單元51及一記憶單元53。閃存記憶體5利用控制單元51來處理主機(jī)系統(tǒng)4傳來的寫入指令與數(shù)據(jù)??刂茊卧?1接收主機(jī)系統(tǒng)4的指令后,配合邏輯與實(shí)體地址的轉(zhuǎn)換運(yùn)算,對(duì)記憶單元53執(zhí)行數(shù)據(jù)存取的動(dòng)作。請(qǐng)參閱圖2,記憶單元53被規(guī)劃成若干個(gè)實(shí)體記憶區(qū)塊(本例為m+1個(gè)實(shí)體記憶區(qū)塊PBAOPBAm),其中實(shí)體記憶區(qū)塊就是記憶單元53最小的數(shù)據(jù)抹除單位。而一個(gè)實(shí)體記憶區(qū)塊中又劃分成多個(gè)實(shí)體記憶頁(本例中每個(gè)實(shí)體記憶區(qū)塊中有n+1個(gè)實(shí)體記憶頁P(yáng)PAOPPAn),其中實(shí)體記憶頁則為記憶單元53最小的數(shù)據(jù)寫入單位。當(dāng)主機(jī)系統(tǒng)4傳送數(shù)據(jù)寫入指令及相關(guān)的數(shù)據(jù)給控制單元51,控制單元51執(zhí)行邏輯與實(shí)體地址轉(zhuǎn)換后,便從記憶單元53中任意挑選一已抹除的實(shí)體記憶區(qū)塊(假設(shè)為實(shí)體記憶區(qū)塊ΡΒΑ0),然后再將欲寫入的數(shù)據(jù)依實(shí)體記憶頁的順序(0,1,2,......,η),寫入實(shí)體記憶區(qū)塊中。公知的記憶單元53的數(shù)據(jù)更新方法如圖3所示,首先,控制單元51收到一筆數(shù)據(jù)更新的指令,該指令指示將更新記憶單元53的實(shí)體記憶區(qū)塊PBAO的實(shí)體記憶頁P(yáng)PAO上的數(shù)據(jù)D00。于是控制單元51便于記憶單元53上任意挑選一已抹除的實(shí)體記憶區(qū)塊PBAl,來儲(chǔ)存主機(jī)系統(tǒng)4傳來的更新數(shù)據(jù)D00’。然后控制單元51將更新數(shù)據(jù)D00’由實(shí)體記憶區(qū)塊PBAl頭端的實(shí)體記憶頁P(yáng)PAO開始儲(chǔ)存,并且將實(shí)體記憶區(qū)塊PBAO的實(shí)體記憶頁P(yáng)PAO上的數(shù)據(jù)DOO注記為無效數(shù)據(jù),完成數(shù)據(jù)更新。接著控制單元51收到第二筆數(shù)據(jù)更新的指令,該指令指示將更新實(shí)體記憶區(qū)塊ΡΒΑ2的實(shí)體記憶頁ΡΡΑ2的數(shù)據(jù)D22。因?yàn)槟壳罢趯懭氲膶?shí)體記憶區(qū)塊為ΡΒΑ1,所以控制單元51便將主機(jī)系統(tǒng)4傳來的更新數(shù)據(jù)D22’接續(xù)儲(chǔ)存于實(shí)體記憶區(qū)塊PBAl中的實(shí)體記憶頁P(yáng)PAl,然后將實(shí)體記憶區(qū)塊PBΑ2的數(shù)據(jù)D22注記為無效數(shù)據(jù)。同樣地,接著控制單元51又接到第三筆更新指令,將更新數(shù)據(jù)D33’存于實(shí)體記憶區(qū)塊PBAl的實(shí)體記憶頁ΡΡΑ2中,然后注記實(shí)體記憶區(qū)塊ΡΒΑ3上的實(shí)體記憶頁ΡΡΑ3的數(shù)據(jù)D33為無效數(shù)據(jù)。而第四筆更新指令則是將更新數(shù)據(jù)D34’寫入實(shí)體記憶區(qū)塊PBAl的實(shí)體記憶頁ΡΡΑ3中,并將實(shí)體記憶區(qū)塊ΡΒΑ3的實(shí)體記憶頁ΡΡΑ4上的數(shù)據(jù)D34標(biāo)記為無效數(shù)據(jù)。由圖3中可知,當(dāng)更新數(shù)據(jù)越來越多時(shí),被標(biāo)記為無效的實(shí)體記憶頁也會(huì)越來越多。當(dāng)記憶單元53剩余中的儲(chǔ)存空間將要不夠或是剩余儲(chǔ)存容量達(dá)到一默認(rèn)值時(shí),便需要執(zhí)行所謂的無效數(shù)據(jù)回收作業(yè)(garbagecollection),來釋放被無效數(shù)據(jù)所占用的實(shí)體記憶頁,以讓后續(xù)寫入的數(shù)據(jù)可以順利的繼續(xù)寫入記憶單元53中。以圖4并配合圖3的例子來進(jìn)行無效數(shù)據(jù)回收的說明,控制單元51從記憶單元53中挑選了無效數(shù)據(jù)最多的實(shí)體記憶區(qū)塊PBA3,然后將實(shí)體記憶區(qū)塊PBA3上的有效數(shù)據(jù)D30D32以及D35D3n共n-1個(gè)實(shí)體記憶頁的數(shù)據(jù),復(fù)制到另一已抹除的實(shí)體記憶區(qū)塊PBA4中,然后抹除實(shí)體記憶區(qū)塊PBA3以提供后續(xù)數(shù)據(jù)寫入。如此便可釋放出實(shí)體記憶區(qū)塊PBA4最后的兩個(gè)實(shí)體記憶頁P(yáng)PAn-I與PPAn的儲(chǔ)存空間,供后續(xù)寫入數(shù)據(jù)使用。由圖4可觀察到,一個(gè)實(shí)體記憶區(qū)塊中所包含的無效數(shù)據(jù)越多,在執(zhí)行無效數(shù)據(jù)回收作業(yè)時(shí),將會(huì)有較佳的記憶空間釋放效率;反之,若實(shí)體記憶區(qū)塊中所包含的無效數(shù)據(jù)不多,則儲(chǔ)存空間的釋放效率則較不佳。如實(shí)體記憶區(qū)塊PBA3中只包含兩個(gè)無效實(shí)體記憶頁P(yáng)PA3以及PPA4,經(jīng)無效數(shù)據(jù)回收后,實(shí)體記憶區(qū)塊PBA4上便只釋放出兩個(gè)實(shí)體記憶頁P(yáng)PAn-I和PPAn的儲(chǔ)存空間。而且,要是記憶單元53中大部分實(shí)體記憶區(qū)塊都只有少數(shù)無效的實(shí)體記憶頁的情況,控制單元51在執(zhí)行無效數(shù)據(jù)回收作業(yè)時(shí),將增加挑選回收的實(shí)體記憶區(qū)塊的難度,其儲(chǔ)存空間釋放的效率便不理想。而除了前述的原因之外,寫入數(shù)據(jù)于儲(chǔ)存地址對(duì)齊與否的問題,也是造成記憶空間釋放作業(yè)效率不佳的因素之一。由于主機(jī)系統(tǒng)4所傳來的數(shù)據(jù),不會(huì)剛好都是記憶單元53最小的數(shù)據(jù)寫入單位(實(shí)體記憶頁)的倍數(shù),因此會(huì)發(fā)生寫入數(shù)據(jù)地址無法對(duì)齊的情形。請(qǐng)參閱圖5A,若有一筆數(shù)據(jù)Dl欲寫入,包括了D10、Dll以及D12,其中DlO與Dll是寫滿一個(gè)實(shí)體記憶頁的數(shù)據(jù),可剛好寫入實(shí)體記憶區(qū)塊PBAO的實(shí)體記憶頁P(yáng)PAO與實(shí)體記憶頁P(yáng)PAl中。而數(shù)據(jù)D12則不夠一個(gè)實(shí)體記憶頁的大小,所以控制單元51將數(shù)據(jù)D12傳到記憶單元53時(shí),會(huì)連同實(shí)體記憶頁P(yáng)PA2之前所存的舊數(shù)據(jù)Dd2—起刻錄到實(shí)體記憶頁P(yáng)PA2中。例如,實(shí)體記憶頁P(yáng)PA2先前為已抹除的空間,因此里面的位儲(chǔ)存的舊數(shù)據(jù)Dd2都是1,則可將部份數(shù)據(jù)D12未填滿一個(gè)實(shí)體記憶頁的剩余部份的位填入1,并將其與D12—起存入實(shí)體記憶頁P(yáng)PA2。接著請(qǐng)參閱圖5B,若控制單元51所接收的下一筆數(shù)據(jù)D2(包含有資料D20、D21、D22和D23)其數(shù)據(jù)寫入的起始地址剛好是接在前一筆數(shù)據(jù)Dl的地址后面,也就是接在數(shù)據(jù)D12后面,則控制單元51便從實(shí)體記憶頁P(yáng)PA2將數(shù)據(jù)D12復(fù)制出來,并與數(shù)據(jù)D20合并成一個(gè)實(shí)體記憶頁的容量,接續(xù)寫入于實(shí)體記憶頁P(yáng)PA3,然后將實(shí)體記憶頁P(yáng)PA2標(biāo)記為無效。由圖5B中可發(fā)現(xiàn),在實(shí)體記憶頁P(yáng)PA6的地方又出現(xiàn)數(shù)據(jù)D23填入后還不足一個(gè)實(shí)體記憶頁的情形,即如同實(shí)體記憶頁P(yáng)PA2紀(jì)錄數(shù)據(jù)D12的方法一樣,剩余的空間則填入實(shí)體記憶頁P(yáng)PA6先前的舊數(shù)據(jù)Dd6。因此由圖5A和圖5B可觀察到,不足一個(gè)實(shí)體記憶頁的寫入數(shù)據(jù),會(huì)在下一筆連續(xù)數(shù)據(jù)寫入時(shí),造成實(shí)體記憶區(qū)塊中部分實(shí)體記憶頁被標(biāo)記為無效。若記憶單元53中大部分的實(shí)體記憶區(qū)塊都個(gè)別包含少數(shù)無效的實(shí)體記憶頁,其執(zhí)行儲(chǔ)存空間釋放作業(yè)的效率同樣會(huì)不盡理想。
發(fā)明內(nèi)容有鑒于此,本發(fā)明所欲解決的問題在于,將欲寫入閃存(flashmemory)的記憶單元中的數(shù)據(jù)刻錄地址進(jìn)行配置,讓之后產(chǎn)生的無效實(shí)體記憶頁能夠集中于某些記憶單元的實(shí)體記憶區(qū)塊,進(jìn)而提升執(zhí)行無效數(shù)據(jù)回收作業(yè)(garbagecollection)時(shí),儲(chǔ)存空間的釋放效率。為了達(dá)到上述目的,根據(jù)本發(fā)明的一方案,提供一種閃存的數(shù)據(jù)刻錄方法,應(yīng)用于一閃存,該閃存中包含有一控制單元以及一記憶單元,其中記憶單元又劃分為多個(gè)實(shí)體記憶區(qū)塊(PhysicalBlock),而一個(gè)實(shí)體記憶區(qū)塊的容量即是閃存最小的數(shù)據(jù)抹除單位,其方法步驟如下首先,控制單元接收到一主機(jī)系統(tǒng)傳送而來的一數(shù)據(jù)以及一寫入指令,其中寫入指令包含數(shù)據(jù)欲寫入的邏輯地址,與數(shù)據(jù)的數(shù)據(jù)長度。接著,控制單元依據(jù)數(shù)據(jù)的長度,判斷數(shù)據(jù)是否為經(jīng)常更新的數(shù)據(jù)。若判斷結(jié)果顯示該數(shù)據(jù)是經(jīng)常更新的數(shù)據(jù),控制單元便將數(shù)據(jù)分配并寫入已存有經(jīng)常更新的數(shù)據(jù)的實(shí)體記憶區(qū)塊,讓之后因?yàn)閿?shù)據(jù)更新而產(chǎn)生的無效實(shí)體記憶頁能夠集中,以提升儲(chǔ)存空間釋放的效率。而根據(jù)本發(fā)明的另一方案,提供了另一種閃存的數(shù)據(jù)刻錄方法,同樣應(yīng)用于一閃存,該閃存包含有一控制單元以及一記憶單元,其中記憶單元?jiǎng)澐殖啥鄠€(gè)實(shí)體記憶區(qū)塊,實(shí)體記憶區(qū)塊又包含有多個(gè)實(shí)體記憶頁(PhysicalPage),而一個(gè)實(shí)體記憶頁的容量即是閃存最小的數(shù)據(jù)寫入單位,其方法步驟包括控制單元接收到一主機(jī)系統(tǒng)傳送而來的一數(shù)據(jù)以及一寫入指令,其中寫入指令包含了數(shù)據(jù)欲寫入的邏輯地址與數(shù)據(jù)的數(shù)據(jù)長度。接著,控制單元依據(jù)邏輯實(shí)體地址對(duì)應(yīng)表的對(duì)應(yīng)關(guān)系、數(shù)據(jù)的長度、以及實(shí)體記憶頁的容量,來判斷欲寫入的數(shù)據(jù)是否有部份數(shù)據(jù)未切齊一個(gè)實(shí)體記憶頁。若判斷出有部份數(shù)據(jù)未切齊一個(gè)實(shí)體記憶頁,則控制單元便將該部份的數(shù)據(jù)分配并寫入已存有未切齊的數(shù)據(jù)的實(shí)體記憶區(qū)塊,讓之后因?yàn)槲辞旋R實(shí)體記憶頁且地址連續(xù)的寫入數(shù)據(jù)所造成的無效實(shí)體記憶頁能夠集中于某些實(shí)體記憶區(qū)塊中,來提升儲(chǔ)存空間釋放的效率。另外,根據(jù)本發(fā)明的又一方案,提供了一種閃存的數(shù)據(jù)刻錄方法,應(yīng)用于一閃存,該閃存包含一控制單元以及一記憶單元,其中記憶單元?jiǎng)澐殖啥鄠€(gè)實(shí)體記憶區(qū)塊,而實(shí)體記憶區(qū)塊又包含有多個(gè)實(shí)體記憶頁,其方法步驟如下首先,控制單元接收到一主機(jī)系統(tǒng)傳送而來的一數(shù)據(jù)以及一寫入指令,其中寫入指令包含有數(shù)據(jù)欲寫入的邏輯地址,與數(shù)據(jù)的數(shù)據(jù)長度。接著控制單元依據(jù)數(shù)據(jù)的長度,判斷其是否為經(jīng)常更新的數(shù)據(jù),若是,則將該數(shù)據(jù)與之前所儲(chǔ)存的經(jīng)常更新的數(shù)據(jù)作集中儲(chǔ)存。然后,若該數(shù)據(jù)被判定為不常更新的數(shù)據(jù),控制單元便再依據(jù)一邏輯實(shí)體地址對(duì)應(yīng)表的對(duì)應(yīng)關(guān)系、數(shù)據(jù)的長度、以及實(shí)體記憶頁的容量,進(jìn)一步判斷該資料是否有部份未切齊一個(gè)實(shí)體記憶頁,然后將部份未切齊的數(shù)據(jù)集中寫入先前已存有未切齊的數(shù)據(jù)的實(shí)體記憶區(qū)塊。值得一提的是,經(jīng)常更新的數(shù)據(jù)與未切齊一個(gè)實(shí)體記憶頁的零碎數(shù)據(jù),兩者可以一起集中儲(chǔ)存于某些實(shí)體記憶區(qū)塊,讓之后產(chǎn)生的無效實(shí)體記憶頁能盡量集中,提升執(zhí)行無效數(shù)據(jù)回收的效率。在數(shù)據(jù)寫入于閃存時(shí),借助于將經(jīng)常更新的數(shù)據(jù)與未切齊的零碎數(shù)據(jù)集中于一實(shí)體記憶區(qū)塊中來儲(chǔ)存,讓之后無效的記憶空間能夠集中與某些實(shí)體記憶區(qū)塊,使得執(zhí)行無效數(shù)據(jù)回收作業(yè)時(shí),儲(chǔ)存空間的釋放效率能進(jìn)一步提升。以上的概述與接下來的實(shí)施例,皆是為了進(jìn)一步說明本發(fā)明的技術(shù)手段與目的,然而所敘述的實(shí)施例與附圖僅提供參考說明用,并非用來對(duì)本發(fā)明加以限制。圖1為公知閃存儲(chǔ)存系統(tǒng)的架構(gòu)圖;圖2為公知閃存的記憶單元的儲(chǔ)存空間劃分的示意圖;圖3為公知的記憶單元的數(shù)據(jù)更新方法的示意圖;圖4為公知無效數(shù)據(jù)回收作業(yè)的示意圖;圖5A、圖5B為公知數(shù)據(jù)連續(xù)寫入的方法的示意圖;圖6為本發(fā)明一種實(shí)施例的閃存儲(chǔ)存系統(tǒng)的硬件方塊圖;圖7為本發(fā)明一種實(shí)施例的閃存儲(chǔ)存系統(tǒng)的功能方塊圖;圖8A、圖8B為本發(fā)明閃存的刻錄方法的一種實(shí)施例的示意圖;圖8C為本發(fā)明執(zhí)行無效數(shù)據(jù)回收作業(yè)時(shí)的示意圖;圖9為本發(fā)明閃存的數(shù)據(jù)刻錄方法的一種實(shí)施例的流程圖;圖10A、圖IOB為本發(fā)明數(shù)據(jù)處理方法的另一種實(shí)施例的示意圖;圖11為本發(fā)明閃存的數(shù)據(jù)刻錄方法的又一種實(shí)施例的流程圖;以及圖12為本發(fā)明閃存的數(shù)據(jù)刻錄方法的再一種實(shí)施例的流程圖。主要元件符號(hào)說明公知技術(shù)4主機(jī)系統(tǒng)5閃存51控制單元53記憶單元PBA實(shí)體記憶區(qū)塊PPA實(shí)體記憶頁本發(fā)明1主機(jī)系統(tǒng)2閃存21控制單元211微處理單元213主機(jī)接口215內(nèi)存接口217非揮發(fā)性儲(chǔ)存單元219揮發(fā)性儲(chǔ)存單元23記憶單元231記憶胞數(shù)組31邏輯實(shí)體地址轉(zhuǎn)換單元311邏輯實(shí)體地址對(duì)應(yīng)表32數(shù)據(jù)檢視單元33數(shù)據(jù)配置管理單元34數(shù)據(jù)存取單元35數(shù)據(jù)抹除單元PBA實(shí)體記憶區(qū)塊PPA實(shí)體記憶頁LBA邏輯區(qū)塊LPA邏輯記憶頁S901S909流程圖步驟說明SllOlSl109流程圖步驟說明S1201S1213流程圖步驟說明具體實(shí)施例方式為了提升無效數(shù)據(jù)回收作(garbagecollection)的儲(chǔ)存空間釋放效率,本發(fā)明提供了一些數(shù)據(jù)刻錄的方法,進(jìn)而將經(jīng)常更新的數(shù)據(jù)以及未對(duì)齊的零碎數(shù)據(jù)作配置寫入閃存中,讓無效實(shí)體記憶頁產(chǎn)生時(shí)能夠集中于某些實(shí)體記憶區(qū)塊。請(qǐng)參閱圖6,為閃存儲(chǔ)存系統(tǒng)的一種實(shí)施例的硬件方塊圖。閃存2中包括一控制單元21及一記憶單元23,其中控制單元21中又包括有一微處理單元211、一主機(jī)接口213、一內(nèi)存接口215、一非揮發(fā)性儲(chǔ)存單元217及一揮發(fā)性儲(chǔ)存單元219,而記憶單元23則包括一記憶胞數(shù)組231。記憶單元23中的記憶胞數(shù)組231被規(guī)劃成若干個(gè)實(shí)體記憶區(qū)塊(PhysicalBlock),為記憶單元23最小的數(shù)據(jù)抹除單位;而一個(gè)實(shí)體記憶區(qū)塊中則又劃分有若干個(gè)實(shí)體記憶頁(PhysicalPage),為記憶單元23最小的數(shù)據(jù)寫入單位??刂茊卧?1利用主機(jī)接口213與外部的主機(jī)系統(tǒng)1進(jìn)行指令與數(shù)據(jù)的傳輸,而透過內(nèi)存接口215與記憶單元23進(jìn)行指令與數(shù)據(jù)的傳輸。非揮發(fā)性儲(chǔ)存單元217,如只讀存儲(chǔ)器(ReadOnlyMemory,ROM),是用于儲(chǔ)存管理記憶單元23的相關(guān)程序代碼,而微處理單元211就是根據(jù)儲(chǔ)存在非揮發(fā)性儲(chǔ)存單元217中的程序代碼,以及由主機(jī)系統(tǒng)1傳來的指令和數(shù)據(jù),來管理與控制記憶單元23。揮發(fā)性儲(chǔ)存單元219,如隨機(jī)存取內(nèi)存(RandomAccessMemory,RAM),可設(shè)于控制單元21的內(nèi)部或外部,用于暫時(shí)存放管理記憶單元23的相關(guān)信息(諸如邏輯實(shí)體地址對(duì)應(yīng)表、儲(chǔ)存空間數(shù)據(jù)配置信息表或區(qū)塊信息表等相關(guān)管理窗體),以及控制單元21與記憶單元23間的存取數(shù)據(jù)。接著請(qǐng)參閱圖7,為閃存儲(chǔ)存系統(tǒng)的一種實(shí)施例的功能方塊圖,如圖所示,控制單元21中包括有一邏輯實(shí)體地址轉(zhuǎn)換單元31、一數(shù)據(jù)檢視單元32、一數(shù)據(jù)配置管理單元33、一數(shù)據(jù)存取單元34、及一數(shù)據(jù)抹除單元35。其中,邏輯實(shí)體地址轉(zhuǎn)換單元31是用來將主機(jī)系統(tǒng)1所傳來的邏輯地址轉(zhuǎn)換成記憶單元23中對(duì)應(yīng)的實(shí)體地址,并通過一邏輯實(shí)體地址對(duì)應(yīng)表(logicaltophysicaladdressmappingtable)來管理并紀(jì)錄邏輯地址與實(shí)體地址的對(duì)應(yīng)關(guān)系。數(shù)據(jù)檢視單元32則是用于辨識(shí)主機(jī)系統(tǒng)1所傳來欲寫入的數(shù)據(jù)的大小,以及該數(shù)據(jù)儲(chǔ)存于實(shí)體地址上的對(duì)應(yīng)情形。而數(shù)據(jù)配置管理單元33用于管理記憶單元23中儲(chǔ)存數(shù)據(jù)的配置信息,可通過區(qū)塊信息表(blockinformationtable)的建立與管理,來紀(jì)錄每個(gè)實(shí)體記憶頁的狀態(tài),如已抹除(Free)、有效或無效,以及儲(chǔ)存于各個(gè)實(shí)體記憶區(qū)塊中所包含的無效的實(shí)體記憶頁的數(shù)量。根據(jù)區(qū)塊信息表,即可于記憶單元23中找出存有無效數(shù)據(jù)的實(shí)體記憶頁較多的實(shí)體記憶區(qū)塊,來進(jìn)行無效數(shù)據(jù)回收(garbagecollection)的作業(yè)。另外,數(shù)據(jù)存取單元34即是用于進(jìn)行記憶單元23中的數(shù)據(jù)存取的動(dòng)作,而數(shù)據(jù)抹除單元35則是用來對(duì)記憶單元23進(jìn)行實(shí)體記憶區(qū)塊數(shù)據(jù)抹除的作業(yè)。再次參閱圖7,并配合參考圖6,當(dāng)控制單元21由主機(jī)接口213接收到主機(jī)系統(tǒng)1所傳來的數(shù)據(jù)寫入指令與所欲儲(chǔ)存的用戶數(shù)據(jù)后,便將該欲儲(chǔ)存的數(shù)據(jù)暫存于揮發(fā)性儲(chǔ)存單元219中;其中寫入指令包括有數(shù)據(jù)欲寫入的邏輯地址以及數(shù)據(jù)的長度。接著利用邏輯實(shí)體地址轉(zhuǎn)換單元31,將寫入指令所指定的邏輯地址轉(zhuǎn)換為實(shí)體地址。數(shù)據(jù)檢視單元32根據(jù)寫入指令所指示的數(shù)據(jù)長度,辨識(shí)該筆數(shù)據(jù)的大小,以及用戶數(shù)據(jù)于實(shí)體儲(chǔ)存地址的邊界對(duì)齊情況。然后,數(shù)據(jù)存取單元34便根據(jù)數(shù)據(jù)檢視單元32的分析結(jié)果,以及根據(jù)數(shù)據(jù)配置管理單元33的區(qū)塊信息表等等的管理窗體,將數(shù)據(jù)經(jīng)由內(nèi)存接口215寫入記憶單元23中。而記憶單元23陸續(xù)儲(chǔ)存用戶數(shù)據(jù)后,將可能發(fā)生記憶單元23中儲(chǔ)存空間越來越少的情況。為避免儲(chǔ)存空間不夠使用而造成新的用戶數(shù)據(jù)無法繼續(xù)寫入的窘境,控制單元21會(huì)在可使用的儲(chǔ)存空間的數(shù)量減少到一默認(rèn)值時(shí),執(zhí)行無效數(shù)據(jù)回收(garbagecollection)作業(yè),以釋放被無效數(shù)據(jù)占用的儲(chǔ)存空間??刂茊卧?1是利用數(shù)據(jù)配置管理單元33、數(shù)據(jù)存取單元34、及數(shù)據(jù)抹除單元35,來進(jìn)行無效數(shù)據(jù)回收的作業(yè)。通過數(shù)據(jù)配置管理單元33,找出大部分儲(chǔ)存空間被無效數(shù)據(jù)占用的實(shí)體記憶區(qū)塊來進(jìn)行無效數(shù)據(jù)回收。值得注意的是,由于本發(fā)明的數(shù)據(jù)配置刻錄方法,可將經(jīng)常更新的小數(shù)據(jù)及不滿一個(gè)最小寫入單位(實(shí)體記憶頁)的數(shù)據(jù)集中管理,因此無效的實(shí)體記憶頁將會(huì)集中產(chǎn)生于某些實(shí)體記憶區(qū)塊中,所以控制單元21針對(duì)該些實(shí)體記憶區(qū)塊進(jìn)行無效數(shù)據(jù)回收作業(yè),將可得到較佳的儲(chǔ)存空間釋放效率。一般來說,小數(shù)據(jù)的更新頻率,通常會(huì)較大數(shù)據(jù)的更新頻率高得多,因此利用數(shù)據(jù)檢視單元32辨識(shí)用戶數(shù)據(jù)的大小,即可判斷出該筆數(shù)據(jù)是否為經(jīng)常更新的數(shù)據(jù),進(jìn)而再將經(jīng)常更新的小數(shù)據(jù)與不常更新的大數(shù)據(jù)配置于不同的實(shí)體記憶區(qū)塊來儲(chǔ)存。進(jìn)一步說明,控制單元21的數(shù)據(jù)檢視單元32可預(yù)先設(shè)定數(shù)據(jù)長度的一門限值(thresholdvalue),若控制單元21所接收的用戶數(shù)據(jù)小于或等于門限值時(shí),即將該筆數(shù)據(jù)判斷為經(jīng)常更新的小數(shù)據(jù)。在一較佳的實(shí)施例中,由操作系統(tǒng)數(shù)據(jù)統(tǒng)計(jì)分析的結(jié)果顯示,4KB以下大小的數(shù)據(jù),即為操作系統(tǒng)上最常更新的資料長度,因此門限值可以設(shè)定為4KB大小的數(shù)據(jù)長度。請(qǐng)參閱圖8Α,為記憶單元23中數(shù)據(jù)處理方法的一種實(shí)施例的示意圖,控制單元21接收主機(jī)系統(tǒng)1傳來的指令,指示有一寫入數(shù)據(jù)D00其邏輯地址為邏輯區(qū)塊LBAO上的邏輯記憶頁LPA0,以及有一更新數(shù)據(jù)D10’其地址為邏輯區(qū)塊LBAl的邏輯記憶頁LPA0。其中邏輯區(qū)塊LBAl的邏輯記憶頁LPAO原是對(duì)應(yīng)實(shí)體記憶區(qū)塊PBAl的實(shí)體記憶頁P(yáng)PAO,而數(shù)據(jù)DOO與更新數(shù)據(jù)D10’皆小于控制單元21中所設(shè)定的數(shù)據(jù)門限值。首先用戶數(shù)據(jù)DOO經(jīng)邏輯實(shí)體地址的轉(zhuǎn)換和數(shù)據(jù)大小的檢視,控制單元21可于記憶單元23中挑選一已抹除過的實(shí)體記憶區(qū)塊PBA2來儲(chǔ)存小于或等于門限值的用戶數(shù)據(jù)D00。故用戶數(shù)據(jù)DOO即儲(chǔ)存到實(shí)體記憶區(qū)塊PBA2上的實(shí)體記憶頁P(yáng)PAO中,并于邏輯實(shí)體地址轉(zhuǎn)換表上,建立起邏輯區(qū)塊LBAO的邏輯記憶頁LPAO與實(shí)體記憶區(qū)塊PBA2的實(shí)體記憶頁P(yáng)PAO間的對(duì)應(yīng)關(guān)系。而實(shí)體記憶區(qū)塊PBA2后續(xù)便將被用來儲(chǔ)存數(shù)據(jù)長度小于門限值的數(shù)據(jù)。而更新數(shù)據(jù)D10’同樣被判斷為經(jīng)常更新的小數(shù)據(jù),所以被接著配置于實(shí)體記憶區(qū)塊PBA2的實(shí)體記憶頁P(yáng)PAl中,然后邏輯實(shí)體地址對(duì)應(yīng)表也跟著進(jìn)行更新,將邏輯區(qū)塊LBAl的邏輯記憶頁LPAO對(duì)應(yīng)至實(shí)體記憶區(qū)塊PBA2上的實(shí)體記憶頁P(yáng)PAl;以及一并更新區(qū)塊信息表,將實(shí)體記憶區(qū)塊PBAl的實(shí)體記憶頁P(yáng)PAO注記為無效,并將實(shí)體記憶區(qū)塊PBAl紀(jì)錄無效數(shù)據(jù)實(shí)體記憶頁的數(shù)目增加一。接著,若控制單元21接收來欲儲(chǔ)存于邏輯區(qū)塊LBA2的用戶數(shù)據(jù)D2,其中用戶數(shù)據(jù)D2的長度大于門限值,則控制單元21便于記憶單元23中尋找另一已抹除的實(shí)體記憶區(qū)塊PBA3來儲(chǔ)存用戶數(shù)據(jù)D2,如此一來,經(jīng)常更新的小數(shù)據(jù)以及不常更新的大數(shù)據(jù)便被分別儲(chǔ)存于不同的實(shí)體記憶區(qū)塊中。接著請(qǐng)參閱圖8B,為閃存數(shù)據(jù)處理方法的一種實(shí)施例的示意圖,承圖8A,若接下來控制單元21接收到邏輯區(qū)塊LBAO的邏輯記憶頁LPAO的更新數(shù)據(jù)D00’,則將數(shù)據(jù)DOO'連續(xù)儲(chǔ)存于實(shí)體記憶區(qū)塊PBA2的實(shí)體記憶頁P(yáng)PA2中。然后控制單元21更新邏輯實(shí)體地址對(duì)應(yīng)表,將邏輯區(qū)塊LBAO的邏輯記憶頁LPAO對(duì)應(yīng)至實(shí)體記憶區(qū)塊PBA2的實(shí)體記憶頁P(yáng)PA2;以及更新區(qū)塊信息表,將實(shí)體記憶區(qū)塊PBA2的實(shí)體記憶頁P(yáng)PAO注記為無效,并將紀(jì)錄實(shí)體記憶區(qū)塊PBA2中無效實(shí)體記憶頁的數(shù)目的值增加一。又若主機(jī)系統(tǒng)1接著更新邏輯區(qū)塊LBAl的邏輯記憶頁LPAO的數(shù)據(jù),控制單元21便將更新數(shù)據(jù)D10”寫入實(shí)體記憶區(qū)塊PBA2的實(shí)體記憶頁P(yáng)PA3中,然后更新邏輯實(shí)體地址對(duì)應(yīng)表,將邏輯區(qū)塊LBAl之邏輯記憶頁LPAO對(duì)應(yīng)至實(shí)體記憶區(qū)塊PBA2的實(shí)體記憶頁P(yáng)PA3以及更新區(qū)塊信息表,將實(shí)體記憶區(qū)塊PBA2的實(shí)體記憶頁P(yáng)PAl標(biāo)記為無效,并將實(shí)體記憶區(qū)塊PBA2的無效實(shí)體記憶頁數(shù)目再加一。然后更進(jìn)一步地,主機(jī)系統(tǒng)1又繼續(xù)傳送指令,指示再一次更新邏輯區(qū)塊LBAO的邏輯記憶頁LPAO的數(shù)據(jù),控制單元21便將更新數(shù)據(jù)D00”接續(xù)寫入于實(shí)體記憶區(qū)塊PBA2上的實(shí)體記憶頁P(yáng)PA4,然后更新邏輯實(shí)體地址對(duì)應(yīng)表,將邏輯區(qū)塊LBAO的邏輯記憶頁LPAO對(duì)應(yīng)至實(shí)體記憶區(qū)塊PBA2的實(shí)體記憶頁P(yáng)PA4;以及更新區(qū)塊信息表,將實(shí)體記憶區(qū)塊PBA2的實(shí)體記憶頁P(yáng)PA2注記為無效,并將實(shí)體記憶區(qū)塊PBA2的無效實(shí)體記憶頁數(shù)目再加一。實(shí)體記憶區(qū)塊PBA2儲(chǔ)存該些小于數(shù)據(jù)門限值的數(shù)據(jù),經(jīng)過數(shù)次數(shù)據(jù)的寫入與更新作業(yè)后,因更新動(dòng)作產(chǎn)生的無效實(shí)體記憶頁也較容易產(chǎn)生于實(shí)體記憶區(qū)塊PBA2中,如圖8B所示的實(shí)體記憶區(qū)塊PBA2之實(shí)體記憶頁P(yáng)PAO、PPAl以及PPA2。由圖8B可發(fā)現(xiàn),這種數(shù)據(jù)配置刻錄的方法,可有效的將因數(shù)據(jù)更新所產(chǎn)生的無效實(shí)體記憶頁,集中于儲(chǔ)存有長度小于門限值的數(shù)據(jù)的實(shí)體記憶區(qū)塊上。因此,控制單元21若要執(zhí)行無效數(shù)據(jù)回收作業(yè)時(shí),便可通過檢查區(qū)塊信息表,搜尋無效的實(shí)體記憶頁較多的實(shí)體記憶區(qū)塊,即可輕易的挑出大多數(shù)實(shí)體記憶頁被無效數(shù)據(jù)占用的實(shí)體記憶區(qū)塊,然后將該些實(shí)體記憶區(qū)塊中的有效數(shù)據(jù)復(fù)制至一已抹除的實(shí)體記憶區(qū)塊中儲(chǔ)存,然后再抹除被無效數(shù)據(jù)占用的實(shí)體記憶區(qū)塊,有效率的釋放出儲(chǔ)存空間供數(shù)據(jù)寫入。如圖8C所示,為閃存無效數(shù)據(jù)回收方法示意圖,承接第圖8A以及圖8B,當(dāng)控制單元21要執(zhí)行儲(chǔ)存空間釋放無效數(shù)據(jù)回收作業(yè)時(shí),儲(chǔ)存小于門限值的小數(shù)據(jù)的實(shí)體記憶區(qū)塊PBA2的無效實(shí)體記憶頁,會(huì)較儲(chǔ)存大于門限值的數(shù)據(jù)的實(shí)體記憶區(qū)塊PBA3的無效實(shí)體記憶頁來的多。因此通過搜尋區(qū)塊信息表,即可找到記憶單元23中如實(shí)體記憶區(qū)塊PBA2這樣的實(shí)體記憶區(qū)塊來進(jìn)行無效數(shù)據(jù)回收的作業(yè),以釋放被無效數(shù)據(jù)占用的記憶空間。然后控制單元21便于記憶單元23中挑出一已抹除的實(shí)體記憶區(qū)塊PBA6來紀(jì)錄實(shí)體記憶區(qū)塊PBA2上的有效數(shù)據(jù)。因?yàn)閷?shí)體記憶區(qū)塊PBA2中所存的多數(shù)為無效數(shù)據(jù),所以需復(fù)制的有效數(shù)據(jù)相對(duì)的少,因此實(shí)體記憶區(qū)塊PBA6上所釋放出來的儲(chǔ)存空間也就較習(xí)知無效數(shù)據(jù)回收作業(yè)技術(shù)多得多。請(qǐng)參閱圖9,為閃存數(shù)據(jù)刻錄方法的一種實(shí)施例的流程圖,應(yīng)用于一閃存的數(shù)據(jù)刻錄。首先,控制單元21接收到主機(jī)系統(tǒng)1傳送而來的數(shù)據(jù)以及寫入指令(S901),其中寫入指令包含數(shù)據(jù)欲寫入的邏輯地址,與數(shù)據(jù)的數(shù)據(jù)長度。接著,控制單元21依據(jù)數(shù)據(jù)的長度,判斷數(shù)據(jù)是否為經(jīng)常更新的數(shù)據(jù)(S903)。若判斷結(jié)果顯示該數(shù)據(jù)是經(jīng)常更新的數(shù)據(jù),便更進(jìn)一步判斷是否有已存有經(jīng)常更新的數(shù)據(jù)的實(shí)體記憶區(qū)塊(S904),若確實(shí)有已存有經(jīng)常更新的數(shù)據(jù)的實(shí)體記憶區(qū)塊,則控制單元21便將數(shù)據(jù)分配并寫入已存有經(jīng)常更新的數(shù)據(jù)的實(shí)體記憶區(qū)塊中(S905),然后更新邏輯實(shí)體地址對(duì)應(yīng)表中紀(jì)錄的對(duì)應(yīng)關(guān)系(S909);若沒有已存著經(jīng)常更新的數(shù)據(jù)的實(shí)體記憶區(qū)塊,則控制單元21便將該數(shù)據(jù)存入一已抹除的實(shí)體記憶區(qū)塊中(S906),并同樣更新邏輯實(shí)體地址對(duì)應(yīng)表(S909)。而若判斷該數(shù)據(jù)為不常更新的數(shù)據(jù),控制單元21便將該數(shù)據(jù)寫入未存有經(jīng)常更新的數(shù)據(jù)的實(shí)體記憶區(qū)塊中,也就是其可為已抹除的實(shí)體記憶區(qū)塊或已存有不常更新的數(shù)據(jù)的實(shí)體記憶區(qū)塊(S907),并更新邏輯實(shí)體地址對(duì)應(yīng)表(S909)。請(qǐng)參閱圖10A,為閃存數(shù)據(jù)處理方法的另一種實(shí)施例的示意圖。當(dāng)控制單元21由主機(jī)系統(tǒng)1接收一筆數(shù)據(jù)D0,包括有數(shù)據(jù)D00、數(shù)據(jù)DOl及數(shù)據(jù)D02,其所欲寫入的邏輯地址分別為邏輯區(qū)塊LBA4之邏輯記憶頁LPAO、LPAl及LPA2。通過邏輯實(shí)體地址轉(zhuǎn)換與數(shù)據(jù)長度的分析,可得知數(shù)據(jù)DOO與數(shù)據(jù)DOl能夠填滿一個(gè)實(shí)體記憶頁并與實(shí)體記憶頁的地址切齊,而數(shù)據(jù)D02則不滿一個(gè)實(shí)體記憶頁??刂茊卧?1于記憶單元23中挑選一實(shí)體記憶區(qū)塊PBA4,利用實(shí)體記憶區(qū)塊PBA4來儲(chǔ)存數(shù)據(jù)DOO與數(shù)據(jù)DOl。因此數(shù)據(jù)DOO與數(shù)據(jù)DOl便依序?qū)懭雽?shí)體記憶區(qū)塊PBA4中的實(shí)體記憶頁P(yáng)PAO與實(shí)體記憶頁P(yáng)PAl中。接著,控制單元21于記憶單元23中另外挑選一實(shí)體記憶區(qū)塊PBA5,將無法填滿一個(gè)實(shí)體記憶頁的容量的數(shù)據(jù)D02,儲(chǔ)存在實(shí)體記憶區(qū)塊PBA5的實(shí)體記憶頁P(yáng)PAO中。而實(shí)體記憶區(qū)塊PBA5的實(shí)體記憶頁P(yáng)PAO中未被數(shù)據(jù)D02填滿的剩余空間,可填入實(shí)體記憶頁P(yáng)PAO先前的舊數(shù)據(jù)DdO,使得數(shù)據(jù)D02加上舊數(shù)據(jù)DdO能夠填滿一個(gè)記憶單元23的最小寫入單位,也就是一個(gè)實(shí)體記憶頁。最后,數(shù)據(jù)DO于對(duì)應(yīng)的實(shí)體儲(chǔ)存空間儲(chǔ)存完畢后,控制單元21便依其更新邏輯實(shí)體地址對(duì)應(yīng)表311所紀(jì)錄的對(duì)應(yīng)關(guān)系,如第十A圖所示。請(qǐng)接著參閱圖10B,為閃存數(shù)據(jù)處理方法的一種實(shí)施例的示意圖。承圖10A,若接下來控制單元21從主機(jī)系統(tǒng)1接收到一筆數(shù)據(jù)D1,其包括數(shù)據(jù)D10、數(shù)據(jù)D11、數(shù)據(jù)D12及數(shù)據(jù)D13,其欲寫入的邏輯地址則接續(xù)前筆寫入的數(shù)據(jù)DO的地址,也就是分別為邏輯區(qū)塊LBA4的邏輯記憶頁LPA2、LPA3、LPA4和LPA5。控制單元21在分析用戶數(shù)據(jù)Dl的地址與長度后,將先前所存的數(shù)據(jù)D02從實(shí)體記憶區(qū)塊PBA5的實(shí)體記憶頁P(yáng)PAO讀取出來,然后再和數(shù)據(jù)DlO合并一起繼續(xù)寫入實(shí)體記憶區(qū)塊PBA4尚未寫入數(shù)據(jù)的實(shí)體記憶頁中。再次參閱圖10B,原本實(shí)體記憶區(qū)塊PBA5中的實(shí)體記憶頁P(yáng)PAO因?yàn)槠鋬?chǔ)存的數(shù)據(jù)已為無效,而被標(biāo)記為無效的實(shí)體記憶頁,故區(qū)塊信息表中實(shí)體記憶區(qū)塊PBA5的無效的實(shí)體記憶頁數(shù)目便增加一。而數(shù)據(jù)Dll與數(shù)據(jù)D12接著分別被配置到實(shí)體記憶區(qū)塊PBA4中的實(shí)體記憶頁P(yáng)PA3與PPA4。最后,數(shù)據(jù)D13未能填滿一個(gè)實(shí)體記憶頁,其將造成儲(chǔ)存地址無法切齊(notalign)實(shí)體記憶頁的地址的情況。于是控制單元21便將數(shù)據(jù)D13寫入實(shí)體記憶區(qū)塊PBA5的實(shí)體記憶頁P(yáng)PAl中,而實(shí)體記憶區(qū)塊PBA5的實(shí)體記憶頁P(yáng)PAl中無法填滿的儲(chǔ)存空間一樣由實(shí)體記憶頁P(yáng)PAl先前所存的舊數(shù)據(jù)Ddl來填滿。最后,依據(jù)所有數(shù)據(jù)的刻錄地址分配,來更新邏輯實(shí)體地址對(duì)應(yīng)表311,以便后續(xù)追蹤該些數(shù)據(jù)的儲(chǔ)存地址。由圖IOB可觀察到,將沒有切齊記憶單元23的最小寫入單位的用戶數(shù)據(jù),集中配置于另一實(shí)體記憶區(qū)塊PBA5管理的方法,將會(huì)使無效的實(shí)體記憶頁集中于同一實(shí)體記憶區(qū)塊PBA5中,可有效避免因無法切齊實(shí)體記憶頁的地址的數(shù)據(jù)連續(xù)寫入時(shí),造成無效的實(shí)體記憶頁分散產(chǎn)生于實(shí)體記憶區(qū)塊中的現(xiàn)象。而控制單元21則可由區(qū)塊信息表中找到的無效的實(shí)體記憶頁較多的實(shí)體記憶區(qū)塊,使在無效數(shù)據(jù)回收時(shí),可釋放出較多的儲(chǔ)存空間。另外,用于儲(chǔ)存無法寫滿一個(gè)實(shí)體記憶頁的數(shù)據(jù)的實(shí)體記憶區(qū)塊(如圖IOA與圖IOB所示的實(shí)體記憶區(qū)塊PBA5),其可與用于儲(chǔ)存小于門限值的經(jīng)常更新的數(shù)據(jù)的實(shí)體記憶區(qū)塊(如圖8A和圖8B所示的實(shí)體記憶區(qū)塊PBA2)為同一個(gè)實(shí)體記憶區(qū)塊。也就是控制單元21可將無法切齊一個(gè)實(shí)體記憶頁的地址的數(shù)據(jù),以及小于門限值的數(shù)據(jù)儲(chǔ)存于同一個(gè)實(shí)體記憶區(qū)塊中,借此進(jìn)一步提高儲(chǔ)存空間釋放作業(yè)的效率。請(qǐng)參閱圖11,為閃存的刻錄方法的一種實(shí)施例的流程圖,包含控制單元21接收到主機(jī)系統(tǒng)1傳送而來的數(shù)據(jù)以及寫入指令(SllOl),其中寫入指令包含了數(shù)據(jù)欲寫入的邏輯地址與數(shù)據(jù)的數(shù)據(jù)長度。接著,控制單元21依據(jù)邏輯實(shí)體地址對(duì)應(yīng)表311的對(duì)應(yīng)關(guān)系、數(shù)據(jù)的長度、以及實(shí)體記憶頁的容量,來判斷欲寫入的數(shù)據(jù)是否有數(shù)據(jù)未切齊一個(gè)實(shí)體記憶頁(S1103)。若判斷出有部份零碎的數(shù)據(jù)未能切齊一個(gè)實(shí)體記憶頁,控制單元21便將該數(shù)據(jù)有切齊的部份存入未存有未對(duì)齊的數(shù)據(jù)的實(shí)體記憶區(qū)塊中(S1106),接著判斷記憶單元23中是否有已存有未對(duì)齊的數(shù)據(jù)的實(shí)體記憶區(qū)塊(S1104)。若確實(shí)有已存有未對(duì)齊的數(shù)據(jù)的實(shí)體記憶區(qū)塊,則控制單元21便將該部份的零碎數(shù)據(jù)分配并寫入該已存有未切齊的數(shù)據(jù)的實(shí)體記憶區(qū)塊(S1105),但要是記憶單元中23并未有已存有未對(duì)齊的數(shù)據(jù)的實(shí)體記憶區(qū)塊,則控制單元21便找尋另一個(gè)已抹除的實(shí)體記憶區(qū)塊,來存放未對(duì)齊的數(shù)據(jù)(S1108),并更新邏輯實(shí)體地址對(duì)應(yīng)表311紀(jì)錄的對(duì)應(yīng)關(guān)系(S1109)。若判斷該數(shù)據(jù)沒有未對(duì)齊一個(gè)實(shí)體記憶頁的零碎數(shù)據(jù),則將其存入未存有未對(duì)齊之?dāng)?shù)據(jù)的實(shí)體記憶區(qū)塊,也就是該數(shù)據(jù)可存入一已抹除的實(shí)體記憶區(qū)塊或一已存有可對(duì)齊的數(shù)據(jù)的實(shí)體記憶區(qū)塊中(S1107),并同樣更新邏輯實(shí)體地址對(duì)應(yīng)表311所紀(jì)錄的對(duì)應(yīng)關(guān)系(S1109)。接著請(qǐng)參閱圖12,為閃存的刻錄方法的另一種實(shí)施例的流程圖,首先,控制單元21接收到主機(jī)系統(tǒng)1傳送而來的數(shù)據(jù)以及寫入指令(S1201)。接著控制單元21依據(jù)數(shù)據(jù)的長度,判斷其是否為經(jīng)常更新的數(shù)據(jù)(S1203),若是,進(jìn)一步判斷記憶單元23中是否有已存有經(jīng)常更新的數(shù)據(jù)的實(shí)體記憶區(qū)塊存在(S1204),若確實(shí)存在已存有經(jīng)常更新的數(shù)據(jù)的實(shí)體記憶區(qū)塊,則將該數(shù)據(jù)寫入與已存有經(jīng)常更新的數(shù)據(jù)的實(shí)體記憶區(qū)塊(S1205);若記憶單元23中目前無已存有經(jīng)常更新的數(shù)據(jù)的實(shí)體記憶區(qū)塊,則將該數(shù)據(jù)存入一已抹除的實(shí)體記憶區(qū)塊中(S1206)。而若該數(shù)據(jù)被判定為不常更新的數(shù)據(jù),控制單元21便再依據(jù)邏輯實(shí)體地址對(duì)應(yīng)表311中紀(jì)錄的對(duì)應(yīng)關(guān)系、數(shù)據(jù)的長度、以及實(shí)體記憶頁之容量,進(jìn)一步判斷該數(shù)據(jù)是否有未切齊一個(gè)實(shí)體記憶頁的零碎數(shù)據(jù)(S1207),若有,控制單元21便先將該數(shù)據(jù)有對(duì)齊的部份寫入未存有經(jīng)常更新的數(shù)據(jù)以及未存有未對(duì)齊的零碎數(shù)據(jù)的實(shí)體記憶區(qū)塊中(S1210),接著進(jìn)一步判斷記憶單元23中是否有已存有未切齊的數(shù)據(jù)的實(shí)體記憶區(qū)塊存在(S1208),若確實(shí)有已存有未切齊的數(shù)據(jù)的實(shí)體記憶區(qū)塊,則將部份未切齊的零碎資料寫入先前已存有未切齊的數(shù)據(jù)的實(shí)體記憶區(qū)塊中(S1209);而若無已存有未切齊的數(shù)據(jù)的實(shí)體記憶區(qū)塊,則將該數(shù)據(jù)未切齊的部份存入一已抹除之實(shí)體記憶區(qū)塊中(S1212)。若該不常更新的數(shù)據(jù)沒有未對(duì)齊的零碎部份,則將該數(shù)據(jù)存入未存有經(jīng)常更新的數(shù)據(jù)以及未存有未對(duì)齊的零碎數(shù)據(jù)的實(shí)體記憶區(qū)塊,也就是可將該數(shù)據(jù)存入一已抹除的實(shí)體記憶區(qū)塊或一已存有可對(duì)齊的數(shù)據(jù)的實(shí)體記憶區(qū)塊中(S1211)。最后,控制單元21依據(jù)該些數(shù)據(jù)的刻錄分配,更新邏輯實(shí)體地址對(duì)應(yīng)表311(S1213)。值得一提的是,圖12所示的經(jīng)常更新的數(shù)據(jù)與未切齊一個(gè)實(shí)體記憶頁的零碎數(shù)據(jù),兩者可以儲(chǔ)存于同一實(shí)體記憶區(qū)塊中,讓之后產(chǎn)生的無效的實(shí)體記憶頁能盡量集中,提升執(zhí)行無效數(shù)據(jù)回收的效率。綜上所述,借助于數(shù)據(jù)長度的分析,將數(shù)據(jù)依其性質(zhì)作分配并刻錄于記憶單元23中,使得之后產(chǎn)生無效的實(shí)體記憶頁盡量集中于記憶單元23某部分的實(shí)體記憶區(qū)塊中。如此一來,在執(zhí)行無效數(shù)據(jù)回收作業(yè)來釋放儲(chǔ)存空間時(shí),可容易的挑選到大部分實(shí)體記憶頁皆為儲(chǔ)存無效數(shù)據(jù)的實(shí)體記憶區(qū)塊,來進(jìn)行無效數(shù)據(jù)的回收(garbagecollection),以得到較佳的儲(chǔ)存空間釋放效率。以上所述為本發(fā)明的具體實(shí)施例的說明與附圖,而本發(fā)明的所有權(quán)利范圍應(yīng)以前述的權(quán)利要求為準(zhǔn),任何本發(fā)明的領(lǐng)域的普通技術(shù)人員,可輕易思及的變化或修改皆可涵蓋在本案所界定的保護(hù)范圍之內(nèi)。權(quán)利要求1.一種閃存儲(chǔ)存系統(tǒng)的數(shù)據(jù)刻錄方法,其特征在于,該閃存儲(chǔ)存系統(tǒng)包含一控制單元以及一記憶單元,其中該記憶單元包含多個(gè)實(shí)體記憶區(qū)塊,該實(shí)體記憶區(qū)塊為該記憶單元最小的抹除單位;而該實(shí)體記憶區(qū)塊包括多個(gè)實(shí)體記憶頁,該實(shí)體記憶頁為該記憶單元最小的寫入單位,該方法包括該控制單元接收一主機(jī)系統(tǒng)傳來的一寫入指令以及一數(shù)據(jù),其中該寫入指令包含該數(shù)據(jù)的一邏輯地址與該數(shù)據(jù)的一數(shù)據(jù)長度;以及該控制單元依據(jù)該數(shù)據(jù)長度將該數(shù)據(jù)分配并寫入該實(shí)體記憶區(qū)塊。2.如權(quán)利要求1所述的閃存儲(chǔ)存系統(tǒng)的數(shù)據(jù)刻錄方法,其特征在于,該控制單元依據(jù)該數(shù)據(jù)長度將該數(shù)據(jù)分配并寫入該實(shí)體記憶區(qū)塊,將該數(shù)據(jù)長度與默認(rèn)的一門限值作比較,若該數(shù)據(jù)長度小于或等于該門限值,則將該數(shù)據(jù)寫入該些實(shí)體記憶區(qū)塊其中的一個(gè)未儲(chǔ)存數(shù)據(jù)長度大于該門限值得數(shù)據(jù)的實(shí)體記憶區(qū)塊;反之,若該數(shù)據(jù)長度大于該門限值,則將該數(shù)據(jù)寫入該些實(shí)體記憶區(qū)塊其中的一個(gè)未儲(chǔ)存數(shù)據(jù)長度小于該門限值得數(shù)據(jù)的實(shí)體記憶區(qū)塊。3.如權(quán)利要求2所述的閃存儲(chǔ)存系統(tǒng)的數(shù)據(jù)刻錄方法,其特征在于,該未儲(chǔ)存數(shù)據(jù)長度大于該門限值的數(shù)據(jù)的實(shí)體記憶區(qū)塊可為一已儲(chǔ)存儲(chǔ)存數(shù)據(jù)長度小于該門限值的數(shù)據(jù)的實(shí)體記憶區(qū)塊,而該未儲(chǔ)存數(shù)據(jù)長度小于該門限值的數(shù)據(jù)的實(shí)體記憶區(qū)塊可為一已儲(chǔ)存儲(chǔ)存數(shù)據(jù)長度大于該門限值的數(shù)據(jù)的實(shí)體記憶區(qū)塊;或者,該未儲(chǔ)存數(shù)據(jù)長度大于該門限值的數(shù)據(jù)的實(shí)體記憶區(qū)塊與該未儲(chǔ)存數(shù)據(jù)長度小于該門限值的數(shù)據(jù)的實(shí)體記憶區(qū)塊,分別為一已抹除的實(shí)體記憶區(qū)塊。4.一種閃存儲(chǔ)存系統(tǒng)的數(shù)據(jù)刻錄方法,其特征在于,該閃存儲(chǔ)存系統(tǒng)包含一控制單元以及一記憶單元,其中該記憶單元包含多個(gè)實(shí)體記憶區(qū)塊,而該實(shí)體記憶區(qū)塊又包含有多個(gè)實(shí)體記憶頁;以及該控制單元包含一邏輯實(shí)體地址對(duì)應(yīng)表,該邏輯實(shí)體地址對(duì)應(yīng)表用于紀(jì)錄一主機(jī)系統(tǒng)與該記憶單元間的傳輸數(shù)據(jù)的邏輯地址與實(shí)體地址的對(duì)應(yīng)關(guān)系,該方法包括該控制單元接收該主機(jī)系統(tǒng)傳送的一寫入指令以及一數(shù)據(jù),其中該寫入指令包含該數(shù)據(jù)的邏輯地址與該數(shù)據(jù)的數(shù)據(jù)長度;該控制單元依據(jù)該邏輯實(shí)體地址對(duì)應(yīng)表以及該寫入指令,來判斷該數(shù)據(jù)是否有部份數(shù)據(jù)未切齊該實(shí)體記憶頁;以及該控制單元依據(jù)判斷結(jié)果,將該數(shù)據(jù)分配并寫入該實(shí)體記憶區(qū)塊。5.如權(quán)利要求4所述的閃存儲(chǔ)存系統(tǒng)的數(shù)據(jù)刻錄方法,其特征在于,該控制單元判斷該數(shù)據(jù)是否有部份數(shù)據(jù)未切齊該實(shí)體記憶頁,依據(jù)該數(shù)據(jù)的邏輯地址與實(shí)體地址的對(duì)應(yīng)關(guān)系,以及依據(jù)該實(shí)體記憶頁的大小與該數(shù)據(jù)的數(shù)據(jù)長度,來計(jì)算出該數(shù)據(jù)中是否有部份數(shù)據(jù)未能寫滿一個(gè)該實(shí)體記憶頁。6.如權(quán)利要求4所述的閃存儲(chǔ)存系統(tǒng)的數(shù)據(jù)刻錄方法,其特征在于,該控制單元將該數(shù)據(jù)分配并寫入該實(shí)體記憶區(qū)塊,將該數(shù)據(jù)中未切齊該實(shí)體記憶頁的部份數(shù)據(jù),寫入該些實(shí)體記憶區(qū)塊其中的一個(gè)已抹除的實(shí)體記憶區(qū)塊或一已存有未切齊該實(shí)體記憶頁的部份數(shù)據(jù)的實(shí)體記憶區(qū)塊,而將該數(shù)據(jù)中可切齊該實(shí)體記憶頁的部份數(shù)據(jù),寫入該些實(shí)體記憶區(qū)塊其中的另一個(gè)已抹除的實(shí)體記憶區(qū)塊或一已存有可切齊該實(shí)體記憶頁的部份數(shù)據(jù)的實(shí)體記憶區(qū)塊。7.—種閃存儲(chǔ)存系統(tǒng)的數(shù)據(jù)刻錄方法,其特征在于,該閃存儲(chǔ)存系統(tǒng)包含一控制單元以及一記憶單元,其中該記憶單元包含多個(gè)實(shí)體記憶區(qū)塊,而該實(shí)體記憶區(qū)塊又包含有多個(gè)實(shí)體記憶頁;以及該控制單元包含一邏輯實(shí)體地址對(duì)應(yīng)表,該邏輯實(shí)體地址對(duì)應(yīng)表用于紀(jì)錄一主機(jī)系統(tǒng)與該記憶單元間的傳輸數(shù)據(jù)的邏輯地址與實(shí)體地址的對(duì)應(yīng)關(guān)系,該方法包括該控制單元接收該主機(jī)系統(tǒng)傳送的一寫入指令以及一數(shù)據(jù),其中該寫入指令包含該數(shù)據(jù)的邏輯地址與該數(shù)據(jù)的數(shù)據(jù)長度;該控制單元將該數(shù)據(jù)的數(shù)據(jù)長度與默認(rèn)的一門限值作比較,將數(shù)據(jù)長度小于或等于該門限值的該數(shù)據(jù)寫入于該些實(shí)體記憶區(qū)塊中的一第一實(shí)體記憶區(qū)塊;以及該控制單元依據(jù)該邏輯實(shí)體地址對(duì)應(yīng)表與該寫入指令,來判斷數(shù)據(jù)長度大于該門限值的該數(shù)據(jù)是否有部份數(shù)據(jù)未切齊該實(shí)體記憶頁,并將該數(shù)據(jù)中可切齊該實(shí)體記憶頁的部份數(shù)據(jù)寫入于該些實(shí)體記憶區(qū)塊中的一第二實(shí)體記憶區(qū)塊,而將該數(shù)據(jù)中未能切齊該實(shí)體記憶頁的部份數(shù)據(jù)寫入于該些實(shí)體記憶區(qū)塊中的一第三實(shí)體記憶區(qū)塊。8.如權(quán)利要求7所述的閃存儲(chǔ)存系統(tǒng)的數(shù)據(jù)刻錄方法,其特征在于,該第一實(shí)體記憶區(qū)塊與該第三實(shí)體記憶區(qū)塊為該記憶單元中的同一個(gè)實(shí)體記憶區(qū)塊。9.如權(quán)利要求8所述的閃存儲(chǔ)存系統(tǒng)的數(shù)據(jù)刻錄方法,其特征在于,該第一實(shí)體記憶區(qū)塊與該第三實(shí)體記憶區(qū)塊為一至少已存有一數(shù)據(jù)長度小于或等于該門限值的數(shù)據(jù)的實(shí)體記憶區(qū)塊、一至少已存有一未能切齊該實(shí)體記憶頁的部份數(shù)據(jù)的實(shí)體記憶區(qū)塊、或一已抹除的實(shí)體記憶區(qū)塊。10.如權(quán)利要求7所述的閃存儲(chǔ)存系統(tǒng)的數(shù)據(jù)刻錄方法,其特征在于,該第二實(shí)體記憶區(qū)塊為一已抹除的實(shí)體記憶區(qū)塊或一已存有可切齊該實(shí)體記憶頁的部份數(shù)據(jù)的實(shí)體記憶區(qū)塊。全文摘要一種閃存儲(chǔ)存系統(tǒng)的數(shù)據(jù)刻錄方法,在數(shù)據(jù)存入閃存時(shí),將經(jīng)常更新的數(shù)據(jù)以及未對(duì)齊一個(gè)實(shí)體記憶頁的數(shù)據(jù)作集中配置,并盡量集中刻錄于同一實(shí)體記憶區(qū)塊之中,讓之后因?yàn)閿?shù)據(jù)更新與未對(duì)齊數(shù)據(jù)的連續(xù)寫入而產(chǎn)生的無效實(shí)體記憶頁,能夠集中于某些實(shí)體記憶區(qū)塊。如此一來,在閃存執(zhí)行無效數(shù)據(jù)回收作業(yè)時(shí),便能有較高的儲(chǔ)存空間回收效率。文檔編號(hào)G06F12/06GK102012869SQ20091017144公開日2011年4月13日申請(qǐng)日期2009年9月4日優(yōu)先權(quán)日2009年9月4日發(fā)明者方子維,洪世芳,蘇佐政申請(qǐng)人:威剛科技股份有限公司