專利名稱::利用文件系統(tǒng)特性決定閃存的數(shù)據(jù)寫入方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種閃存的數(shù)據(jù)寫入方法,尤其涉及一種利用操作系統(tǒng)中的文件系統(tǒng)特性決定閃存的數(shù)據(jù)寫入方法。
背景技術(shù):
:眾所周知,閃存(flashmemory)具有抗沖擊(shock)、非揮發(fā)(nonvolatile)、與高存儲(chǔ)密度等優(yōu)點(diǎn)。因此,閃存搭配控制電路所形成的快閃存儲(chǔ)裝置(flashmemorystoragedevice)已經(jīng)廣泛的被使用。例如,大姆哥(thumbdrive)、壓縮快閃存儲(chǔ)裝置(compactflash,簡(jiǎn)稱CF卡)、安全數(shù)字存儲(chǔ)裝置(securedigital,簡(jiǎn)稱SD卡)、多媒體卡存儲(chǔ)裝置(multimediacard,簡(jiǎn)稱MMC卡)等等。眾所周知,閃存的數(shù)據(jù)空間由多個(gè)區(qū)塊(block)所組成,而每個(gè)區(qū)塊內(nèi)有多個(gè)頁(yè)(page)。再者,閃存每次存取(access)的基本單位為一頁(yè),而數(shù)據(jù)抹除時(shí)必須以一個(gè)區(qū)塊為單位進(jìn)行區(qū)塊抹除(emseblock)。也就是說(shuō),閃存具有區(qū)塊抹除與整頁(yè)寫入的特性,且當(dāng)閃存寫入數(shù)據(jù)時(shí)必須由低頁(yè)數(shù)(lowpagenumber)往高頁(yè)數(shù)(highpagenumber)依序?qū)懭?。再者,目前?jì)算機(jī)的操作系統(tǒng)(operationsystem,簡(jiǎn)稱OS)中所使用的文件系統(tǒng)(filesystem)皆是以硬盤(harddisk)的特性作為存取的方式?,F(xiàn)今最??吹降奈募到y(tǒng)型態(tài)有,文件配置表12文件系統(tǒng)(fileallocationtable12filesystem,以下簡(jiǎn)稱FAT12)、文件配置表16文件系統(tǒng)(fileallocationtable16filesystem,以下簡(jiǎn)稱FAT16)、文件配置表32文件系統(tǒng)(fileallocationtable32filesystem,以下簡(jiǎn)稱FAT32)、新技術(shù)文件系統(tǒng)(newtechnologyfilesystem,以下簡(jiǎn)稱NTFS)、第二擴(kuò)充文件系統(tǒng)(secondextendedfilesystem,以下簡(jiǎn)稱EXT2)、或者第三擴(kuò)充文件系統(tǒng)(thirdextendedfilesystem,以下簡(jiǎn)稱EXT3)。一般來(lái)說(shuō),F(xiàn)AT12/16/32以及NTFS使用于窗口操作系統(tǒng),而EXT2與EXT3是使用于Linux操作系統(tǒng)。舉例來(lái)說(shuō),請(qǐng)參照?qǐng)D1A,其所示為已知計(jì)算機(jī)操作系統(tǒng)針對(duì)硬盤所作3的分區(qū)示意圖。首先,操作系統(tǒng)會(huì)根據(jù)使用者的設(shè)定在硬盤的扇區(qū)O(sector0),建立一主要開(kāi)機(jī)磁區(qū)(masterbootrecord,下簡(jiǎn)稱MBR)其容量為M個(gè)扇區(qū),而在主要開(kāi)機(jī)磁區(qū)中有一磁盤主要分區(qū)表(diskprimarypartitiontable)。磁盤主要分區(qū)表中記錄的信息如下(l)硬盤共有多少個(gè)分區(qū)(partition);(2)每個(gè)分區(qū)的文件系統(tǒng)型態(tài)(type)及容量(size);(3)每個(gè)分區(qū)所對(duì)應(yīng)的分區(qū)起始位置;(4)操作系統(tǒng)針對(duì)每個(gè)分區(qū)所管理的扇區(qū)單元(sectorimit)。其中,每個(gè)扇區(qū)的定義為512個(gè)字節(jié)(byte)。假設(shè)使用者利用磁盤分區(qū)程序(例如FDISK)進(jìn)行硬盤的分區(qū),并將硬盤分區(qū)為C盤與D盤。其中,C盤的文件系統(tǒng)型態(tài)為FAT32,而D盤的文件系統(tǒng)型態(tài)為NTFS。因此,MBR中的磁盤主要分區(qū)表會(huì)記載此硬盤共有2個(gè)分區(qū),第一個(gè)分區(qū)的型態(tài)為FAT32容量為A個(gè)扇區(qū)而第二個(gè)分區(qū)的型態(tài)為NTFS容量為B個(gè)扇區(qū)。并且,第一個(gè)分區(qū)的分區(qū)起始位置為扇區(qū)a(sectora),第二個(gè)分區(qū)的分區(qū)起始位置為扇區(qū)b(sectorb)。再者,操作系統(tǒng)針對(duì)FAT32所管理的扇區(qū)單元為16Kbytes(32個(gè)扇區(qū));針對(duì)NTFS所管理的扇區(qū)單元為4Kbytes(8個(gè)扇區(qū))。再者,當(dāng)兩個(gè)分區(qū)皆格式化(format)完成后,每個(gè)分區(qū)內(nèi)還會(huì)建立管理表(managementtable),于第一個(gè)分區(qū)中的管理表稱為FATtable,并且由第一個(gè)分區(qū)的扇區(qū)a(sectora)開(kāi)始,其容量為E個(gè)扇區(qū);再者,于第二個(gè)分區(qū)中的管理表稱為NTSCtable,并且由第二個(gè)分區(qū)的扇區(qū)b(sectorb)開(kāi)始,其容量為F個(gè)扇區(qū)。因此,由圖1A可知,第一個(gè)分區(qū)中實(shí)際的數(shù)據(jù)區(qū)的數(shù)據(jù)起始位置為扇區(qū)e[sectorelector(a+E)];第二個(gè)分區(qū)中實(shí)際的數(shù)據(jù)區(qū)的數(shù)據(jù)起始位置為扇區(qū)flsectorf=sector(b+F)]。再者,由于FAT32所管理的扇區(qū)單元為16Kbytes(32個(gè)扇區(qū)),所以第一個(gè)分區(qū)內(nèi)的數(shù)據(jù)區(qū)會(huì)以16kbytes為單位將數(shù)據(jù)區(qū)切割為多個(gè)數(shù)據(jù)子區(qū)并且由FATtable來(lái)管理;同理,由于NTFS所管理的扇區(qū)單元為4Kbytes(8個(gè)扇區(qū)),所以第二個(gè)分區(qū)內(nèi)的數(shù)據(jù)區(qū)會(huì)以4kbytes為單位將數(shù)據(jù)區(qū)切割為多個(gè)數(shù)據(jù)子區(qū)并且由NTSCtable來(lái)管理。由圖1A可知,第一個(gè)分區(qū)內(nèi)的多個(gè)數(shù)據(jù)子區(qū)的起始扇區(qū)為sectore、sectore+32、sectore+64、sectore+96…依此類推;第二個(gè)分區(qū)內(nèi)的數(shù)據(jù)子區(qū)的起始扇區(qū)為sectorf、sectorf+8、sectorf+16、sectorf+24…依此類推。再者,主機(jī)發(fā)出讀寫命令時(shí),其寫入位置必須是由數(shù)據(jù)子區(qū)的起始扇區(qū)開(kāi)始。舉例來(lái)說(shuō),請(qǐng)參照?qǐng)D1B,其所示為主機(jī)寫入數(shù)據(jù)的示意圖。主機(jī)將一文件大小為8Kbytes的第一文件100寫入第一個(gè)分區(qū)的數(shù)據(jù)區(qū)時(shí),此第一文件100可寫入任意的數(shù)據(jù)子區(qū)且必須由數(shù)據(jù)子區(qū)的起始扇區(qū)開(kāi)始寫入,例如,扇區(qū)(e+32)[sector(e+32)]。由圖1B可知,第一文件100由扇區(qū)(e+32)[sector(e+32)]開(kāi)始寫入,當(dāng)?shù)谝晃募?00寫入完成之后,此數(shù)據(jù)子區(qū)內(nèi)的剩余空間將無(wú)法再寫入其它數(shù)據(jù)。同理,主機(jī)將一文件大小為7Kbytes的第二文件200寫入第二個(gè)分區(qū)的數(shù)據(jù)區(qū)時(shí),此第二文件200可寫入任意的數(shù)據(jù)子區(qū)且必須由數(shù)據(jù)子區(qū)的起始扇區(qū)開(kāi)始寫入,例如,由扇區(qū)(f+8)[sector(f+8)]。由圖1B可知,第二文件200由扇區(qū)(f+8)[sector(f+8)]開(kāi)始寫入,并寫入兩個(gè)數(shù)據(jù)子區(qū)。其中,第一個(gè)數(shù)據(jù)子區(qū)沒(méi)有剩余空間,而下一個(gè)數(shù)據(jù)區(qū)域會(huì)有剩余空間,同理,此下一個(gè)數(shù)據(jù)子區(qū)內(nèi)的剩余空間將無(wú)法再寫入其它數(shù)據(jù)。由上述說(shuō)明可知主機(jī)對(duì)硬盤的數(shù)據(jù)寫入方式。然而,將硬盤置換為閃存時(shí),由于閃存的區(qū)塊抹除與整頁(yè)寫入的特性。因此,如果直接將上述的數(shù)據(jù)寫入方法直接套用至閃存時(shí),將會(huì)造成閃存的寫入效率降低。
發(fā)明內(nèi)容有鑒于此,本發(fā)明的目的在于提供一種利用文件系統(tǒng)特性決定閃存的數(shù)據(jù)寫入方法,以改善現(xiàn)有技術(shù)的缺陷。本發(fā)明提出一種利用文件系統(tǒng)特性決定閃存的數(shù)據(jù)寫入方法,包含下列步驟獲得閃存中一第一分區(qū)內(nèi)的一數(shù)據(jù)區(qū)的一數(shù)據(jù)起始位置;將此數(shù)據(jù)起始位置轉(zhuǎn)換為一第一區(qū)塊碼與一第一頁(yè)碼;當(dāng)此第一頁(yè)碼為非整數(shù)時(shí),計(jì)算一偏移量并加上此第一頁(yè)碼成為一更新第一頁(yè)碼;以及,設(shè)定此數(shù)據(jù)區(qū)的一新的數(shù)據(jù)起始位置為此第一區(qū)塊碼與此更新第一頁(yè)碼,使得一第一數(shù)據(jù)可根據(jù)此新的數(shù)據(jù)起始位置來(lái)寫入第一數(shù)據(jù)。本發(fā)明的利用文件系統(tǒng)特性決定閃存的數(shù)據(jù)寫入方法,當(dāng)閃存內(nèi)的一個(gè)分區(qū)中的數(shù)據(jù)起始位置與一個(gè)頁(yè)并不對(duì)齊時(shí),F(xiàn)TL將此數(shù)據(jù)起始位置加上一偏移量,使得寫入閃存的數(shù)據(jù)皆可由一個(gè)頁(yè)的起始位置開(kāi)始寫入,并使得閃存的存取效能有效地提高。本發(fā)明得借由下列附圖及說(shuō)明,以獲得一更深入的了解圖1A所示為己知計(jì)算機(jī)操作系統(tǒng)針對(duì)硬盤所作的分區(qū)示意圖。圖1B所示為主機(jī)寫入數(shù)據(jù)的示意圖。圖2所示為閃存的分區(qū)示意圖。圖3所示為本發(fā)明利用文件系統(tǒng)特性決定閃存的數(shù)據(jù)寫入方法。圖4所示為閃存的數(shù)據(jù)區(qū)以及數(shù)據(jù)子區(qū)的示意圖。圖5所示為主機(jī)寫入數(shù)據(jù)的示意圖具體實(shí)施例方式眾所周知,閃存具有區(qū)塊抹除與整頁(yè)寫入的特性,且當(dāng)閃存寫入數(shù)據(jù)時(shí)必須由低頁(yè)數(shù)往高頁(yè)數(shù)依序?qū)懭?。而閃存中的閃存轉(zhuǎn)換層(flashtranslationlayer,以下簡(jiǎn)稱FTL)會(huì)將主機(jī)發(fā)出的寫入命令以及寫入數(shù)據(jù)經(jīng)過(guò)調(diào)整之后,以頁(yè)為單位寫入閃存中。其中,F(xiàn)TL位于閃存中,其可由閃存中的一快閃控制器來(lái)實(shí)現(xiàn)。假設(shè)每個(gè)閃存的一個(gè)區(qū)塊包含8個(gè)頁(yè)(第0頁(yè)第7頁(yè)),且每個(gè)頁(yè)的容量為4K字節(jié)(byte)。因此,F(xiàn)TL會(huì)將主機(jī)側(cè)所發(fā)出以扇區(qū)(sector)為單位的位置轉(zhuǎn)換成為區(qū)塊與頁(yè)的位置后再進(jìn)行數(shù)據(jù)的寫入。也即,當(dāng)FTL接收到扇區(qū)x(sectorx)時(shí),將x除以64所得到的商數(shù)即為區(qū)塊碼,而余數(shù)再除以8即為頁(yè)碼。舉例來(lái)說(shuō),當(dāng)x=273時(shí),273/64的商數(shù)為4,余數(shù)為17;而17/8=2+1/8。也就是說(shuō),扇區(qū)273(sector273)可轉(zhuǎn)換為閃存第四區(qū)塊的第二頁(yè)的l/8處。也就是說(shuō),主機(jī)側(cè)所發(fā)出的扇區(qū)位置皆會(huì)被FTL轉(zhuǎn)換為相對(duì)應(yīng)區(qū)塊與頁(yè)的位置。也就是說(shuō),使用者于操作系統(tǒng)下利用磁盤分區(qū)程序(例如FDISK)進(jìn)行閃存的分區(qū)時(shí),所有的扇區(qū)位置皆會(huì)被FTL轉(zhuǎn)換為相對(duì)應(yīng)區(qū)塊與頁(yè)的位置。而當(dāng)閃存于格式化完成之后,整個(gè)閃存中也會(huì)有MBR以及每個(gè)分區(qū)內(nèi)的管理表。舉例來(lái)說(shuō),請(qǐng)參照?qǐng)D2,其所示為閃存的分區(qū)示意圖。假設(shè)使用者利用磁盤分區(qū)程序(例如FDISK)將閃存分區(qū)為二。而第一個(gè)分區(qū)的型態(tài)為FAT326容量為AA個(gè)扇區(qū)而第二個(gè)分區(qū)的型態(tài)為NTFS容量為BB個(gè)扇區(qū)。并且,第一個(gè)分區(qū)的分區(qū)起始位置為扇區(qū)aa(sectoraa),第二個(gè)分區(qū)的分區(qū)起始位置為扇區(qū)bb(sectorbb)。再者,操作系統(tǒng)針對(duì)FAT32所管理的扇區(qū)單元為16Kbytes(32個(gè)扇區(qū));針對(duì)NTFS所管理的扇區(qū)單元為4Kbytes(8個(gè)扇區(qū))。而以上的信息將會(huì)記錄于MBR中,而MBR的容量為MM扇區(qū)。同理,當(dāng)兩個(gè)分區(qū)皆格式化完成后,每個(gè)分區(qū)內(nèi)還會(huì)建立管理表,于第一個(gè)分區(qū)中的管理表稱為FATtable,并且由第一個(gè)分區(qū)的扇區(qū)aa開(kāi)始,其容量為EE個(gè)扇區(qū);再者,于第二個(gè)分區(qū)中的管理表稱為NTSCtable,并且由第二個(gè)分區(qū)的扇區(qū)bb開(kāi)始,其容量為FF個(gè)扇區(qū)。其中,管理表的大小與文件系統(tǒng)的類型有關(guān),其是由各別的文件系統(tǒng)的規(guī)格書(spedfication)所規(guī)范。而根據(jù)規(guī)格書,即可計(jì)算出管理表(EE扇區(qū)或者FF扇區(qū))實(shí)際的大小。因此,由圖2可知,第一個(gè)分區(qū)中實(shí)際的數(shù)據(jù)區(qū)的數(shù)據(jù)起始位置為扇區(qū)ee[sectoree=sector(aa+EE)];第二個(gè)分區(qū)中實(shí)際的數(shù)據(jù)區(qū)的數(shù)據(jù)起始位置為扇區(qū)fftsectorff=sector(bb+FF)]。而上述的位置皆可以轉(zhuǎn)換成為區(qū)塊碼與頁(yè)碼,也就是說(shuō),扇區(qū)O(sectorO)可轉(zhuǎn)換成為第0區(qū)塊,第0頁(yè)(O,0);扇區(qū)aa(sectoraa)可轉(zhuǎn)換成為第al區(qū)塊,第a2頁(yè)內(nèi)的a3/8位置(al,a2+a3/8);扇區(qū)ee(sectoree)可轉(zhuǎn)換成為第el區(qū)塊,第e2頁(yè)內(nèi)的e3/8位置(el,e2+e3/8);扇區(qū)bb(sectorbb)可轉(zhuǎn)換成為第bl區(qū)塊,第b2頁(yè)內(nèi)的b3/8位置(bl,b2+b3/8);以及,扇區(qū)ff(sectorff)可轉(zhuǎn)換成為第fl區(qū)塊,第f2頁(yè)內(nèi)的f3/8位置(fl,f2+f3/8)。根據(jù)本發(fā)明的實(shí)施例,當(dāng)使用者將閃存格式化完成后,于數(shù)據(jù)開(kāi)始寫入之前,F(xiàn)TL會(huì)先檢測(cè)每個(gè)分區(qū)中數(shù)據(jù)區(qū)的數(shù)據(jù)起始位置。當(dāng)數(shù)據(jù)起始位置與一個(gè)頁(yè)并非對(duì)齊(align)時(shí),則將數(shù)據(jù)起始位置加上一偏移量(offset),使得數(shù)據(jù)起始位置與一個(gè)頁(yè)對(duì)齊。請(qǐng)參照?qǐng)D3,其所示為本發(fā)明利用文件系統(tǒng)特性決定閃存的數(shù)據(jù)寫入方法。首先,F(xiàn)TL讀取閃存的分區(qū)信息得知第一分區(qū)所使用的一文件系統(tǒng)型態(tài)以及此第一分區(qū)的一分區(qū)起始位置(S10);接著,得知此第一分區(qū)內(nèi)的管理表大小并進(jìn)而獲得第一分區(qū)中一數(shù)據(jù)區(qū)的一數(shù)據(jù)起始位置(S20);轉(zhuǎn)換此數(shù)據(jù)起始位置成為一區(qū)塊碼與一頁(yè)碼(S30);當(dāng)頁(yè)碼為整數(shù)(S40)時(shí),則結(jié)束(S60);當(dāng)頁(yè)碼不為整數(shù)(S40)時(shí),提供一偏移量至頁(yè)碼使得更新的頁(yè)碼為一整數(shù)(S50)。由本發(fā)明的步驟可知,當(dāng)數(shù)據(jù)起始位置經(jīng)過(guò)轉(zhuǎn)換后其頁(yè)碼并非整數(shù)時(shí),F(xiàn)TL會(huì)增加一偏移量,使得更新后的頁(yè)碼為整數(shù)。以第一個(gè)分區(qū)中實(shí)際的數(shù)據(jù)起始位置(el,e2+e3/8)為例,當(dāng)e3不是0時(shí)則頁(yè)碼為非整數(shù),因此偏移量的大小即為(8-e3)/8個(gè)頁(yè),就是[(8-e3f4K(bytes)/8]。請(qǐng)參照?qǐng)D4,其所示為閃存的數(shù)據(jù)區(qū)以及數(shù)據(jù)子區(qū)的示意圖。其中,第一分區(qū)中實(shí)際的數(shù)據(jù)起始位置(el,e2+e3/8)的頁(yè)碼為非整數(shù),因此第一偏移量300的大小即為(8-e3)/8個(gè)頁(yè),就是[(8-e3"4K(bytes)/8],而更新的頁(yè)碼即為(e2+l)。同理,第二分區(qū)中實(shí)際的數(shù)據(jù)起始位置(fl,f2+f3/8)的頁(yè)碼為非整數(shù),因此第二偏移量400的大小即為(8-f3)/8個(gè)頁(yè),就是[(8-f3"4K(bytes)/8],而更新的頁(yè)碼即為(f2+l)。很明顯地,F(xiàn)TL所提供的第一偏移量300與第二偏移量400可使得第一分區(qū)與第二分區(qū)中的數(shù)據(jù)起始位置與閃存中的頁(yè)相互對(duì)齊。再者,第一分區(qū)中FAT32所管理的扇區(qū)單元為16Kbytes(32個(gè)扇區(qū)等于2頁(yè)),所以第一個(gè)分區(qū)內(nèi)的數(shù)據(jù)區(qū)會(huì)以16Kbytes為單位將數(shù)據(jù)區(qū)切割為多個(gè)數(shù)據(jù)子區(qū)并且由FATtable來(lái)管理;同理,由于NTFS所管理的扇區(qū)單元為4Kbytes(8個(gè)扇區(qū)等于一頁(yè)),所以第二個(gè)分區(qū)內(nèi)的數(shù)據(jù)區(qū)會(huì)以4kbytes為單位將數(shù)據(jù)區(qū)切割為多個(gè)數(shù)據(jù)子區(qū)并且由NTSCtable來(lái)管理。由圖4可知,當(dāng)每個(gè)分區(qū)的數(shù)據(jù)起始位置與一個(gè)頁(yè)對(duì)齊時(shí),此分區(qū)內(nèi)所有的數(shù)據(jù)子區(qū)的起始位置也會(huì)與一個(gè)頁(yè)對(duì)齊。所以,第一分區(qū)內(nèi)的數(shù)據(jù)子區(qū)的起始位置即為(el,e2+l)、(el,e2+3)、(el,e2+5)、(el,e2+7)…依此類推;同理,第二分區(qū)內(nèi)的數(shù)據(jù)子區(qū)的起始位置即為(fl,f2+l)、(fl,f2+2)、(fl,f2+3)、(fl,f2+4)…依此類推。請(qǐng)參照?qǐng)D5,其所示為主機(jī)寫入數(shù)據(jù)的示意圖。根據(jù)本發(fā)明的實(shí)施例,在主機(jī)側(cè)的操作系統(tǒng)發(fā)出的寫入命令仍舊以扇區(qū)為單位,而FTL接收到寫入命令的寫入位置后必須轉(zhuǎn)換成區(qū)塊碼以及頁(yè)碼并加上偏移量,使得寫入位置一定與一個(gè)頁(yè)對(duì)齊,因此,數(shù)據(jù)必定由一個(gè)頁(yè)的起始位置開(kāi)始寫入。假設(shè),主機(jī)將一文件大小為8Kbytes的第一文件510寫入第一個(gè)分區(qū),寫入位置為扇區(qū)(ee+32)[sector(ee+32)]的數(shù)據(jù)子區(qū)時(shí),F(xiàn)TL會(huì)將此扇區(qū)(ee+32)[sector(ee+32)]加上第一偏移量300并轉(zhuǎn)換后可獲得區(qū)塊碼與頁(yè)碼為第el區(qū)塊,第(e2+3)頁(yè)(el,e2+3)。因此,第一文件510由第el區(qū)塊,第(e2+3)頁(yè)(el,e2+3)開(kāi)始寫入。當(dāng)?shù)谝晃募?10寫入完成之后,此數(shù)據(jù)子區(qū)內(nèi)的剩余空間將無(wú)法再寫入其它數(shù)據(jù)。同理,主機(jī)將一文件大小為7Kbytes的第二文件520寫入第二個(gè)分區(qū),寫入位置為扇區(qū)(ff+8)[sector(ff+8)]的數(shù)據(jù)子區(qū)時(shí),F(xiàn)TL會(huì)將此扇區(qū)(ff+8)[sector(ff+8)]加上第二偏移量400并轉(zhuǎn)換后可獲得區(qū)塊碼與頁(yè)碼為第fl區(qū)塊,第(f2+2)頁(yè)(fl,f2+2)。因此,第二文件520由第fl區(qū)塊,第(f2+2)頁(yè)(fl,f2+2)開(kāi)始寫入。當(dāng)?shù)诙募?20寫入完成之后,第一個(gè)數(shù)據(jù)子區(qū)沒(méi)有剩余空間,而下一個(gè)數(shù)據(jù)區(qū)域會(huì)有剩余空間,同理,此下一個(gè)數(shù)據(jù)子區(qū)內(nèi)的剩余空間將無(wú)法再寫入其它數(shù)據(jù)。因此,本發(fā)明的優(yōu)點(diǎn)是提出一種利用文件系統(tǒng)特性決定閃存的數(shù)據(jù)寫入方法,當(dāng)閃存內(nèi)的一個(gè)分區(qū)中的數(shù)據(jù)起始位置與一個(gè)頁(yè)并不對(duì)齊時(shí),F(xiàn)TL將此數(shù)據(jù)起始位置加上一偏移量,使得寫入閃存的數(shù)據(jù)皆可由一個(gè)頁(yè)的起始位置開(kāi)始寫入,并使得閃存的存取效能有效地提高。綜合以上技術(shù)說(shuō)明,本發(fā)明所述的利用文件系統(tǒng)特性決定閃存的數(shù)據(jù)寫入方法確實(shí)解決了現(xiàn)有技術(shù)中所產(chǎn)生的缺陷,進(jìn)而完成發(fā)展本發(fā)明的最主要的目的,再者,本發(fā)明得由本領(lǐng)域普通技術(shù)人員任施匠思而為諸般修飾,然皆不脫所附權(quán)利要求所要保護(hù)的范圍。權(quán)利要求1.一種利用文件系統(tǒng)特性決定閃存的數(shù)據(jù)寫入方法,其特征是,包含下列步驟獲得上述閃存中第一分區(qū)內(nèi)數(shù)據(jù)區(qū)的數(shù)據(jù)起始位置;將上述數(shù)據(jù)起始位置轉(zhuǎn)換為第一區(qū)塊碼與第一頁(yè)碼;當(dāng)上述第一頁(yè)碼為非整數(shù)時(shí),計(jì)算偏移量并加上上述第一頁(yè)碼成為更新第一頁(yè)碼;以及設(shè)定上述數(shù)據(jù)區(qū)的新的數(shù)據(jù)起始位置為上述第一區(qū)塊碼與上述更新第一頁(yè)碼,使得第一數(shù)據(jù)可根據(jù)上述新的數(shù)據(jù)起始位置來(lái)寫入上述第一數(shù)據(jù)。2.根據(jù)權(quán)利要求1所述的利用文件系統(tǒng)特性決定閃存的數(shù)據(jù)寫入方法,其特征是,其中,上述閃存為大姆哥、壓縮快閃存儲(chǔ)裝置、安全數(shù)字存儲(chǔ)裝置、或多媒體卡存儲(chǔ)裝置。3.根據(jù)權(quán)利要求1所述的利用文件系統(tǒng)特性決定閃存的數(shù)據(jù)寫入方法,其特征是,其中,上述第一分區(qū)的分區(qū)起始位置記錄于上述閃存中主要開(kāi)機(jī)磁區(qū)內(nèi)的磁盤主要分區(qū)表。4.根據(jù)權(quán)利要求3所述的利用文件系統(tǒng)特性決定閃存的數(shù)據(jù)寫入方法,其特征是,其中,上述主要開(kāi)機(jī)磁區(qū)記錄上述第一分區(qū)所管理的扇區(qū)單元,使得上述數(shù)據(jù)區(qū)可根據(jù)上述新的數(shù)據(jù)起始位置以及上述扇區(qū)單元將上述數(shù)據(jù)區(qū)劃分為多個(gè)數(shù)據(jù)子區(qū)。5.根據(jù)權(quán)利要求3所述的利用文件系統(tǒng)特性決定閃存的數(shù)據(jù)寫入方法,其特征是,其中,上述第一分區(qū)中還包括管理表,使得上述數(shù)據(jù)起始位置為上述分區(qū)起始位置加上上述管理表的大小。6.根據(jù)權(quán)利要求3所述的利用文件系統(tǒng)特性決定閃存的數(shù)據(jù)寫入方法,其特征是,其中,上述主要開(kāi)機(jī)磁區(qū)記錄上述第一分區(qū)的文件系統(tǒng)型態(tài)。7.根據(jù)權(quán)利要求6所述的利用文件系統(tǒng)特性決定閃存的數(shù)據(jù)寫入方法,其特征是,其中,上述文件系統(tǒng)型態(tài)為文件配置表文件系統(tǒng)、文件配置表文件系統(tǒng)、文件配置表文件系統(tǒng)、新技術(shù)文件系統(tǒng)、第二擴(kuò)充文件系統(tǒng)、或者第三擴(kuò)充文件系統(tǒng)。全文摘要本發(fā)明涉及一種利用文件系統(tǒng)特性決定一閃存的數(shù)據(jù)寫入方法,包含下列步驟獲得閃存中一第一分區(qū)內(nèi)一數(shù)據(jù)區(qū)的一數(shù)據(jù)起始位置;將此數(shù)據(jù)起始位置轉(zhuǎn)換為一第一區(qū)塊碼與一第一頁(yè)碼;當(dāng)此第一頁(yè)碼為非整數(shù)時(shí),計(jì)算一偏移量并加上此第一頁(yè)碼成為一更新第一頁(yè)碼;以及,設(shè)定此數(shù)據(jù)區(qū)的一新的數(shù)據(jù)起始位置為此第一區(qū)塊碼與此更新第一頁(yè)碼,使得一第一數(shù)據(jù)可根據(jù)此新的數(shù)據(jù)起始位置來(lái)寫入第一數(shù)據(jù)。當(dāng)閃存內(nèi)的一個(gè)分區(qū)中的數(shù)據(jù)起始位置與一個(gè)頁(yè)并不對(duì)齊時(shí),F(xiàn)TL將此數(shù)據(jù)起始位置加上一偏移量,使得寫入閃存的數(shù)據(jù)皆可由一個(gè)頁(yè)的起始位置開(kāi)始寫入,并使得閃存的存取效能有效地提高。文檔編號(hào)G06F12/02GK101446920SQ200810190640公開(kāi)日2009年6月3日申請(qǐng)日期2008年12月26日優(yōu)先權(quán)日2008年12月26日發(fā)明者劉名哲,鐘健平,陳佳欣申請(qǐng)人:祥碩科技股份有限公司