專利名稱::混合型閃存存儲(chǔ)裝置及其操作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種閃存存儲(chǔ)裝置(flashmemorystoragedevice)及其控制方法,且特別涉及一種混合型(hybrid)閃存存儲(chǔ)裝置及其控制方法。
背景技術(shù):
:眾所周知,閃存(flashmemory)具有抗沖擊(shock)、非易失性(nonvolatile)、與高存儲(chǔ)密度等優(yōu)點(diǎn)。因此,閃存搭配控制電路所形成的閃存存儲(chǔ)裝置(flashmemorystoragedevice)已經(jīng)廣泛的被使用。例如,U盤(thumbdrive)、小型閃存存儲(chǔ)裝置(compactflash,簡(jiǎn)稱CF卡)、安全數(shù)字存儲(chǔ)裝置(securedigital,簡(jiǎn)稱SD卡)、多媒體卡存儲(chǔ)裝置(multimediacard,簡(jiǎn)稱MMC卡)等等。一般來說,市面上的與非門閃存(Nand-Flashmemory)可區(qū)分為二種,亦即,單電平記憶胞型與非門閃存(SignalLevelCellNand-Flash,以下簡(jiǎn)稱SLC型閃存)以及多電平記憶胞型與非門閃存(MultiLevelCellNand-Flash,以下簡(jiǎn)稱MLC型閃存)。所謂的SLC型閃存就是在單一記憶胞(memorycell)中可以存取一個(gè)位(bit);反之,MLC型閃存就是在單一記憶胞中可以存取一個(gè)以上的位。上k兩種閃存是利用不同的制造方法所制造的,雖然都具有非易失性的特性,但是其處理效能以及特性仍有顯著的不同。以下歸納出SLC型閃存與MLC型閃存的差異。(I)SLC型閃存的每一頁(yè)(Page)具有可重復(fù)寫入(multi-write)數(shù)據(jù)的特性,且可由任意頁(yè)數(shù)寫入。(II)SLC型閃存數(shù)據(jù)寫入的正確性(rdiabilityandmaintainability)很高,因此不需要太復(fù)雜的錯(cuò)誤修正碼(errorcorrectioncode)。(III)SLC型閃存的使用壽命(available)長(zhǎng)。(IV)SLC型閃存的區(qū)塊擦除時(shí)間(blockerasetime)以及頁(yè)寫入時(shí)間(pageprogrammingtime)較短。(V)SLC型閃存的價(jià)格較高。(I)MLC型閃存的每一頁(yè)(Page)僅有一次寫入數(shù)據(jù)的特性,且必須由低頁(yè)數(shù)依序?qū)懭搿?n)MLC型閃存數(shù)據(jù)寫入的錯(cuò)誤率高,因此需要復(fù)雜的錯(cuò)誤修正碼(errorcorrectioncode)來除錯(cuò)。(III)MLC型閃存的使用壽命短。(IV)MLC型閃存的區(qū)塊擦除時(shí)間以及頁(yè)寫入時(shí)間較長(zhǎng)。(V)MLC型閃存的價(jià)格較低,且在相同面積里MLC型閃存具有較高的數(shù)據(jù)密度(highdensity)。請(qǐng)參照?qǐng)D1A,其所示為已知閃存存儲(chǔ)裝置架構(gòu)圖。閃存存儲(chǔ)裝置10中包括一微控制器(microcontroller)20與存儲(chǔ)器模塊(memorymodular)40。一般來說,主機(jī)(host,未圖示)則可利用一主機(jī)總線(hostbus)22來存取閃存存儲(chǔ)裝置10內(nèi)的數(shù)據(jù)。當(dāng)然,主機(jī)總線22可為一小型閃存存儲(chǔ)裝置(compactflash,簡(jiǎn)稱CF)總線、安全數(shù)字存儲(chǔ)裝置(securedigital,簡(jiǎn)稱SD)總線、多媒體卡存儲(chǔ)裝置(multimediacard,簡(jiǎn)稱MMC)總線、通用串行總線(universalserialbus,簡(jiǎn)稱USB)、或者IEEE1394總線等。再者,當(dāng)主機(jī)將數(shù)據(jù)寫入存儲(chǔ)器模塊40時(shí),微控制器20會(huì)發(fā)出一寫入指令至存儲(chǔ)器模塊40并將寫入數(shù)據(jù)寫入存儲(chǔ)器模塊40。反之,當(dāng)主機(jī)讀取存儲(chǔ)器模塊40內(nèi)的數(shù)據(jù)時(shí),微控制器20會(huì)發(fā)出一讀取指令至存儲(chǔ)器模塊40,因此,存儲(chǔ)器模塊40會(huì)輸出讀取數(shù)據(jù)至微控制器20并輸出上述讀取數(shù)據(jù)。再者,請(qǐng)參照?qǐng)D1B與圖1C,其所示為已知閃存存儲(chǔ)裝置中的存儲(chǔ)器模塊示意圖。由于SLC型閃存與MLC型閃存的差異,因此,已知閃存存儲(chǔ)裝置10中的存儲(chǔ)器模塊40皆是由相同型的閃存所組成。也就是說,如圖1B所示,存儲(chǔ)器模塊40可以是多個(gè)SLC型閃存42-142-N所組成。或者,如圖1C所示,存儲(chǔ)器模塊40可以是多個(gè)MLC型閃存44-1-44-N所組成。不論存儲(chǔ)器模塊40是由SLC型閃存42-l42-N所組成或者由MLC型閃存44-1~44-N所組成,于存儲(chǔ)器模塊40中還可以劃分成很多的區(qū)塊(block),每個(gè)區(qū)塊中又包括多個(gè)頁(yè)(Page)。因此,微控制器20中有一存儲(chǔ)器映射表(memorymappingtable),上述存儲(chǔ)器映射表中有指針(pointer),其記錄邏輯區(qū)塊地址(logicalblockaddress,以下簡(jiǎn)稱LBA)與物理區(qū)塊地址(physicalblockaddress,以下簡(jiǎn)稱PBA)之間的關(guān)系。一般來說,主機(jī)發(fā)出的讀寫命令皆是讀寫特定LBA的數(shù)據(jù),因此利用存儲(chǔ)器映射表即可以確定存儲(chǔ)器模塊40中實(shí)際的PBA,并對(duì)PBA中的數(shù)據(jù)進(jìn)行讀取或者寫入。請(qǐng)參照?qǐng)D2,其為存儲(chǔ)器映射表示意圖。舉例來說,假設(shè)主機(jī)發(fā)出讀取指令欲讀取LBA0內(nèi)的數(shù)據(jù),根據(jù)微控制器20中的存儲(chǔ)器映射表35,數(shù)據(jù)實(shí)際存儲(chǔ)的地址在存儲(chǔ)器模塊40的PBA5,因此,存儲(chǔ)器模塊40的PBA5中的數(shù)據(jù)可以被讀出,并輸出閃存存儲(chǔ)裝置10至主機(jī)。由于SLC型閃存與MLC型閃存的差異,因此構(gòu)建完成的閃存存儲(chǔ)裝置IO在寫入動(dòng)作時(shí)也會(huì)有所差異。以下舉例說明假設(shè)每一個(gè)區(qū)塊中有四個(gè)頁(yè)(Page),亦即第零頁(yè)(Page0)、第一頁(yè)(Page1)、第二頁(yè)(Page2)、第三頁(yè)(Page3)。再者,微控制器20會(huì)在存儲(chǔ)器模塊40中選擇至少一個(gè)未使用區(qū)塊(freeblock)作為寫入數(shù)據(jù)的暫時(shí)區(qū)塊(logblock)。請(qǐng)參照?qǐng)D3AG,其所示為由SLC型閃存所構(gòu)建的閃存存儲(chǔ)裝置于寫入數(shù)據(jù)時(shí)的示意圖。假設(shè)(I)主機(jī)發(fā)出一寫入命令至LBAO并且由第一頁(yè)(Page1)開始寫入二頁(yè)的數(shù)據(jù)D1,、D2,;(II)主機(jī)發(fā)出一寫入命令至LBAO并且由第零頁(yè)(PageO)開始寫入一頁(yè)的數(shù)據(jù)D0,;以及,(III)主機(jī)發(fā)出一寫入命令至LBA3并且由第三頁(yè)(Page3)開始寫入四頁(yè)的數(shù)據(jù)D7,、D8,、D9,、D10'。如圖3A所示,當(dāng)閃存存儲(chǔ)裝置尚未收到寫入命令前,由微控制器20中的存儲(chǔ)器映射表35可知,LBA0可對(duì)應(yīng)到存儲(chǔ)器模塊40的PBA1,而PBA1中第零頁(yè)(PageO)已經(jīng)存儲(chǔ)DO數(shù)據(jù)、第一頁(yè)(Pagel)已經(jīng)存儲(chǔ)Dl數(shù)據(jù)、第二頁(yè)(Page2)已經(jīng)存儲(chǔ)D2數(shù)據(jù)、第三頁(yè)(Page3)已經(jīng)存儲(chǔ)D3數(shù)據(jù);LBA3可對(duì)應(yīng)到存儲(chǔ)器模塊40的PBA7,而PBA7中第零頁(yè)(PageO)已經(jīng)存儲(chǔ)D4數(shù)據(jù)、第一頁(yè)(Pagel)己經(jīng)存儲(chǔ)D5數(shù)據(jù)、第二頁(yè)(Page2)已經(jīng)存儲(chǔ)D6數(shù)據(jù)、第三頁(yè)(Page3)已經(jīng)存儲(chǔ)D7數(shù)據(jù);LBA4可對(duì)應(yīng)到存儲(chǔ)器模塊40的PBA4,而PBA4中第零頁(yè)(Page0)己經(jīng)存儲(chǔ)D8數(shù)據(jù)、第一頁(yè)(Page1)已經(jīng)存儲(chǔ)D9數(shù)據(jù)、第二頁(yè)(Page2)已經(jīng)存儲(chǔ)D10數(shù)據(jù)、第三頁(yè)(Page3)已經(jīng)存儲(chǔ)Dl1數(shù)據(jù)。再者,上述存儲(chǔ)器模塊40有二個(gè)暫時(shí)區(qū)塊(logblock),第一暫時(shí)區(qū)塊(logblock1)被設(shè)定在PBA5,第二暫時(shí)區(qū)塊(logblock2)被設(shè)定在PBA3;而PBA0、PBA2與PBA6即為未使用區(qū)塊(freeblock)。如圖3B所示,閃存存儲(chǔ)裝置收到(I)主機(jī)發(fā)出一寫入命令至LBA0并且由第一頁(yè)(Pagel)開始寫入二頁(yè)的數(shù)據(jù)Dl,、D2,。此時(shí),這些數(shù)據(jù)(D1,、D2')會(huì)先被放置在第一暫時(shí)區(qū)塊(logblock1)。由于SLC型閃存可由任意頁(yè)數(shù)寫入,因此,數(shù)據(jù)D1'、D2'會(huì)被寫入第一暫時(shí)區(qū)塊(logblockl)的第一頁(yè)(Pagel)與第二頁(yè)(Page2)。如圖3C所示,閃存存儲(chǔ)裝置收到(II)主機(jī)發(fā)出一寫入命令至LBA0并且由第零頁(yè)(PageO)開始寫入一頁(yè)的數(shù)據(jù)DO,。由于LBA0的寫入數(shù)據(jù)被放在第一暫時(shí)區(qū)塊(logblockl)中且SLC型閃存可由任意頁(yè)數(shù)寫入,因此數(shù)據(jù)DO'可被放置在第一暫時(shí)區(qū)塊(logblockl)的第零頁(yè)(Page0)。當(dāng)閃存存儲(chǔ)裝置收到(III)主機(jī)發(fā)出一寫入命令至LBA3并且由第三頁(yè)(Page3)開始寫入四頁(yè)的數(shù)據(jù)D7,、D8,、D9,、DIO,。很明顯地,D7,數(shù)據(jù)必須寫入LBA3第三頁(yè)(Page3),而D8,、D9,、DIO,必須寫入LBA4第零頁(yè)(Page0)、第一頁(yè)(Pagel)與第二頁(yè)(Page2)。因此,如圖3D所示,先將LBA3的數(shù)據(jù)D7'寫入第二暫時(shí)區(qū)塊(logblock2)的第三頁(yè)(Page3)。此時(shí),由于存儲(chǔ)器模塊40已經(jīng)沒有可使用的暫時(shí)區(qū)塊(logblock),所以,必須執(zhí)行更換暫時(shí)區(qū)塊動(dòng)作(flushoutlogblock)。也就是說,再次由存儲(chǔ)器模塊40中尋找未使用區(qū)塊(freeblock)來作為第一暫時(shí)區(qū)塊(logblock1)。因此,如圖3E所示,微控制器20會(huì)先進(jìn)行一合并程序(mergingprocedure)46。所謂的合并程序46就是由PBA1的第三頁(yè)(Page3)中取出數(shù)據(jù)D3,接著,將數(shù)據(jù)D3與第一暫時(shí)區(qū)塊(logblockl)中的數(shù)據(jù)合并,使得第一暫時(shí)區(qū)塊(logblock1)中第零頁(yè)(Page0)存儲(chǔ)數(shù)據(jù)DO',第一頁(yè)(Pagel)存儲(chǔ)數(shù)據(jù)D1,,第二頁(yè)(Page2)存儲(chǔ)數(shù)據(jù)D2,,第三頁(yè)(Page3)中存儲(chǔ)數(shù)據(jù)D3。接著,如圖3F所示,將存儲(chǔ)器映射表35中的LBA0對(duì)應(yīng)到存儲(chǔ)器模塊40的PBA5。因此,舊的第一暫時(shí)區(qū)塊(logblockl)即可成為L(zhǎng)BAO。接著,微控制器20由多個(gè)未使用區(qū)塊中擇一成為新的第一暫時(shí)區(qū)塊(logblock1),例如,PBA0。而由于原PBA1中所有的數(shù)據(jù)已經(jīng)被取代了,利用一區(qū)塊擦除指令(blockerasecommand)可以將PBA1中的數(shù)據(jù)擦除并且使得PBA1成為未使用區(qū)塊(freeblock)并完成更換暫時(shí)區(qū)塊動(dòng)作。如圖3G所示,由于新第一暫時(shí)區(qū)塊(logblockl)己經(jīng)形成,因此,D8'、D9,、D10,可以寫入新第一暫時(shí)區(qū)塊(logblockl)第零頁(yè)(Page0)、第一頁(yè)(Pagel)與第二頁(yè)(Page2)。請(qǐng)參照?qǐng)D4A4G,其為由MLC型閃存所構(gòu)建的閃存存儲(chǔ)裝置于寫入數(shù)據(jù)時(shí)的示意圖。假設(shè)(I)主機(jī)發(fā)出一寫入命令至LBA0并且由第一頁(yè)(Page1)開始寫入二頁(yè)的數(shù)據(jù)D1,、D2,(II)主機(jī)發(fā)出一寫入命令至LBAO并且由第零頁(yè)(PageO)開始寫入一頁(yè)的數(shù)據(jù)DO';以及,(III)主機(jī)發(fā)出一寫入命令至LBA3并且由第三頁(yè)(Page3)開始寫入四頁(yè)的數(shù)據(jù)D7,、D8,、D9,、D10'。如圖4A所示,當(dāng)閃存存儲(chǔ)裝置尚未收到寫入命令前,由微控制器20中的存儲(chǔ)器映射表可知,LBA0可對(duì)應(yīng)到存儲(chǔ)器模塊40的PBA1,而PBA1中第零頁(yè)(PageO)已經(jīng)存儲(chǔ)DO數(shù)據(jù)、第一頁(yè)(Pagel)已經(jīng)存儲(chǔ)Dl數(shù)據(jù)、第二頁(yè)(Page2)已經(jīng)存儲(chǔ)D2數(shù)據(jù)、第三頁(yè)(Page3)已經(jīng)存儲(chǔ)D3數(shù)據(jù);LBA3可對(duì)應(yīng)到存儲(chǔ)器模塊40的PBA7,而PBA7中第零頁(yè)(PageO)已經(jīng)存儲(chǔ)D4數(shù)據(jù)、第一頁(yè)(Pagel)已經(jīng)存儲(chǔ)D5數(shù)據(jù)、第二頁(yè)(Page2)己經(jīng)存儲(chǔ)D6數(shù)據(jù)、第三頁(yè)(Page3)已經(jīng)存儲(chǔ)D7數(shù)據(jù);LBA4可對(duì)應(yīng)到存儲(chǔ)器模塊40的PBA4,而PBA4中第零頁(yè)(PageO)已經(jīng)存儲(chǔ)D8數(shù)據(jù)、第一頁(yè)(Pagel)己經(jīng)存儲(chǔ)D9數(shù)據(jù)、第二頁(yè)(Page2)已經(jīng)存儲(chǔ)D10數(shù)據(jù)、第三頁(yè)(Page3)已經(jīng)存儲(chǔ)Dl1數(shù)據(jù)。再者,上述存儲(chǔ)器模塊40有二個(gè)暫時(shí)區(qū)塊(logblock),第一暫時(shí)區(qū)塊(logblock1)被設(shè)定在PBA5,第二暫時(shí)區(qū)塊(logblock2)被設(shè)定在PBA3;而PBA0、PBA2與PBA6即為未使用區(qū)塊(freeblock)。如圖4B所示,閃存存儲(chǔ)裝置收到(I)主機(jī)發(fā)出一寫入命令至LBA0并且由第一頁(yè)(Pagel)開始寫入二頁(yè)的數(shù)據(jù)Dl'、D2,。此時(shí),這些數(shù)據(jù)Dl'、D2'會(huì)被放置在第一暫時(shí)區(qū)塊(logblock1)。由于MLC型閃存的頁(yè)數(shù)必須依序?qū)懭耄虼?,?shù)據(jù)D1,、D2,會(huì)被寫入第一暫時(shí)區(qū)塊(logblockl)的第零頁(yè)(PageO)與第一頁(yè)(Page1)。如圖4C所示,閃存存儲(chǔ)裝置收到(II)主機(jī)發(fā)出一寫入命令至LBA0并且由第零頁(yè)(PageO)開始寫入一頁(yè)的數(shù)據(jù)DO'。由于LBA0的寫入數(shù)據(jù)被放在第一暫時(shí)區(qū)塊(logblockl)中且MLC型閃存必須依序?qū)懭耄虼藬?shù)據(jù)D0'被放置在第一暫時(shí)區(qū)塊(logblockl)的第二頁(yè)(Page2)。當(dāng)閃存存儲(chǔ)裝置收到(III)主機(jī)發(fā)出一寫入命令至LBA3并且由第三頁(yè)(Page3)開始寫入四頁(yè)的數(shù)據(jù)D7,、D8,、D9,、D10,。很明顯地,D7,數(shù)據(jù)必須寫入LBA3第三頁(yè)(Page3),而D8,、D9,、D10,必須寫入LBA4第零頁(yè)(Page0)、第一頁(yè)(Pagel)與第二頁(yè)(Page2)。因此,如圖4D所示,先將LBA3的數(shù)據(jù)D7'寫入第二暫時(shí)區(qū)塊(logblock2)的第零頁(yè)(Page0)。此時(shí),由于存儲(chǔ)器模塊40已經(jīng)沒有可使用的暫時(shí)區(qū)塊(logblock),所以,必須執(zhí)行更換暫時(shí)區(qū)塊動(dòng)作(flushoutlogblock)。也就是說,再次由存儲(chǔ)器模塊40中尋找未使用區(qū)塊(freeblock)來作為第一暫時(shí)區(qū)塊(logblock1)。由于第一暫時(shí)區(qū)塊(logblockl)內(nèi)的數(shù)據(jù)頁(yè)數(shù)排列不正確,因此,微控制器20會(huì)先進(jìn)行一排序與合并程序(mergingandsortingprocedure)47,以及一未使用區(qū)塊寫入禾呈序(writetofreeblockprocedure)48。如圖4E所示,排序與合并程序47即是接收PBA1中的數(shù)據(jù)D3以及第一暫時(shí)區(qū)塊(logblockl)中的數(shù)據(jù)Dl'、D2'、D0',并且依照頁(yè)數(shù)的順序排序并合并成為D0'、Dl'、D2'、D3。而未使用區(qū)塊寫入程序48即是將排序與合并程序完成的數(shù)據(jù)寫入未使用區(qū)塊中,例如PBA6。接著,如圖4F所示,將存儲(chǔ)器映射表35中的LBA0對(duì)應(yīng)到存儲(chǔ)器模塊40的PBA6。因此,微控制器20由多個(gè)未使用區(qū)塊中選擇一個(gè)成為新的第一暫時(shí)區(qū)塊(logblock1),例如,PBA0。而由于原PBA1與PBA5中所有的數(shù)據(jù)己經(jīng)被取代了,利用二區(qū)塊擦除指令(blockerasecommand)可以將PBA1與PBA5中的數(shù)據(jù)擦除并且使得PBA1與PBA5成為未使用區(qū)塊(freeblock)并完成更換暫時(shí)區(qū)塊動(dòng)作。如圖4G所示,由于新第一暫時(shí)區(qū)塊(logblockl)已經(jīng)形成,因此,D8,、D9'、D10,可以寫入新第一暫時(shí)區(qū)塊(logblockl)第零頁(yè)(Page0)、第一頁(yè)(Pagel)與第二頁(yè)(Page2)。由上述可知,由于MLC型閃存的頁(yè)數(shù)必須依序?qū)懭耄虼嗽趫?zhí)行更換暫時(shí)區(qū)塊動(dòng)作時(shí)微控制器20必須執(zhí)行一排序與合并程序47以及一空白區(qū)塊寫入程序48。再者,由于SLC型閃存的頁(yè)數(shù)可以任意寫入,因此在執(zhí)行更換暫時(shí)區(qū)塊動(dòng)作時(shí)僅利用一合并程序46即可。簡(jiǎn)單的說,MLC型閃存在寫入數(shù)據(jù)的處理上較SLC型閃存復(fù)雜的多。
發(fā)明內(nèi)容本發(fā)明提出一種混合型閃存存儲(chǔ)裝置,包含一微控制器,連接至一主機(jī)總線用以接收一主機(jī)的一寫入數(shù)據(jù);以及,一存儲(chǔ)器模塊,連接至上述微控制器,且上述存儲(chǔ)器模塊包括至少一第一型閃存以及至少一第二型閃存;其中,當(dāng)上述寫入數(shù)據(jù)大小小于一特定數(shù)據(jù)量時(shí),將上述寫入數(shù)據(jù)寫入上述時(shí),將上述寫入數(shù)據(jù)寫入上述第二型閃存中的一第二暫時(shí)區(qū)塊。本發(fā)明更提出一種混合型閃存存儲(chǔ)裝置的控制方法,上述混合型閃存存儲(chǔ)裝置包括由至少一第一型閃存以及至少一第二型閃存所組成的一存儲(chǔ)器模塊,上述控制方法包括下列步驟接收由一主機(jī)發(fā)出的一寫入數(shù)據(jù);當(dāng)上述寫入數(shù)據(jù)大小小于一特定數(shù)據(jù)量時(shí),將上述寫入數(shù)據(jù)寫入上述第一型閃存中的一第一暫時(shí)區(qū)塊;以及,當(dāng)上述寫入數(shù)據(jù)大小大于上述特定數(shù)據(jù)量時(shí),將上述寫入數(shù)據(jù)寫入上述第二型閃存中的一第二暫時(shí)區(qū)塊。由上述說明可知,本發(fā)明中,當(dāng)微控制器執(zhí)行更換暫時(shí)區(qū)塊動(dòng)作時(shí),不用執(zhí)行已知的排序程序以及未使用區(qū)塊寫入程序,因此可以大幅提高存儲(chǔ)器模塊的效率。再者,本發(fā)明不限定于SLC型與MLC型閃存所組成的混合型閃存存儲(chǔ)裝置。本領(lǐng)域技術(shù)人員都知道,不論SLC型與MLC型閃存于制造完成之后都會(huì)被進(jìn)一步分類為第一等級(jí)(firstgrade)產(chǎn)品與第二等級(jí)(secondgmde)產(chǎn)品。第一等級(jí)的閃存壽命較長(zhǎng)并且品質(zhì)較好,也就是說,第一等級(jí)的閃存允許反復(fù)寫入與讀取的次數(shù)較多且數(shù)據(jù)錯(cuò)誤率低;反之,第二等級(jí)的閃存壽命較短品質(zhì)較差,也就是說,允許反復(fù)寫入與讀取的次數(shù)較少且數(shù)據(jù)錯(cuò)誤率低。也就是說,本發(fā)明也可以利用不同等級(jí)的閃存所組合而成的混合型閃存存儲(chǔ)裝置。當(dāng)寫入數(shù)據(jù)的大小(size)小于上述特定數(shù)據(jù)量時(shí),則將寫入數(shù)據(jù)寫入第一等級(jí)的閃存;反之,當(dāng)寫入數(shù)據(jù)的大小(size)大于上述特定數(shù)據(jù)量時(shí),則將寫入數(shù)據(jù)寫入第二等級(jí)的閃存。因此,第二等級(jí)的閃存的寫入次數(shù)會(huì)少于第一等級(jí)的寫入次數(shù),并且保障上述混合型閃存存儲(chǔ)裝置的壽命。圖1A為已知閃存存儲(chǔ)裝置架構(gòu)圖。圖1B、1C為已知閃存存儲(chǔ)裝置中的存儲(chǔ)器模塊示意圖。圖2為存儲(chǔ)器映射表示意圖。圖3A3G為由SLC型閃存所構(gòu)建的閃存存儲(chǔ)裝置于寫入數(shù)據(jù)時(shí)的示意圖。圖4A4G為由MLC型閃存所構(gòu)建的閃存存儲(chǔ)裝置于寫入數(shù)據(jù)時(shí)的示意圖。圖。圖5為本發(fā)明混合型閃存存儲(chǔ)裝置架構(gòu)圖。圖6A6I所示為本發(fā)明混合型閃存存儲(chǔ)裝置于寫入數(shù)據(jù)時(shí)的示意圖。具體實(shí)施方式請(qǐng)參照?qǐng)D5,其為本發(fā)明混合型閃存存儲(chǔ)裝置架構(gòu)圖。閃存存儲(chǔ)裝置100中包括一微控制器120與存儲(chǔ)器模塊140。其中,上述存儲(chǔ)器模塊140中包括SLC型閃存142-l142-N與MLC型閃存144-1~144-M。也就是說,相較于己知的閃存存儲(chǔ)裝置,本發(fā)明混合型(hybrid)閃存存儲(chǔ)裝置中的存儲(chǔ)器模塊是由SLC型閃存142-l142-N與MLC型閃存146-l145-M所組成。一般來說,主機(jī)110可利用一主機(jī)總線122來存取閃存存儲(chǔ)裝置100內(nèi)的數(shù)據(jù)。當(dāng)然,主機(jī)總線122可為小型閃存存儲(chǔ)裝置總線、安全數(shù)字存儲(chǔ)裝置總線、多媒體卡存儲(chǔ)裝置總線、通用串行總線、或者IEEE1394總線。再者,當(dāng)主機(jī)110將數(shù)據(jù)寫入存儲(chǔ)器模塊140時(shí),微控制器120會(huì)發(fā)出一寫入指令至存儲(chǔ)器模塊140,并將寫入數(shù)據(jù)寫入存儲(chǔ)器模塊140。反之,當(dāng)主機(jī)讀取存儲(chǔ)器模塊140內(nèi)的數(shù)據(jù)時(shí),微控制器120會(huì)發(fā)出一讀取指令至存儲(chǔ)器模塊140,因此,存儲(chǔ)器模塊140會(huì)輸出讀取數(shù)據(jù)至微控制器120后輸出至主機(jī)110。再者,而存儲(chǔ)器模塊140中的SLC型閃存142-1~142-N與MLC型閃存146-1~145-M可以劃分成很多的區(qū)塊(block),每個(gè)區(qū)塊中又包括多個(gè)頁(yè)(Page)。因此,微控制器120內(nèi)會(huì)有一存儲(chǔ)器映射表,上述存儲(chǔ)器映射表中有指針(pointer),其記錄LBA與PBA之間的關(guān)系。為了要達(dá)到MLC型閃存價(jià)格較低以及高密度的優(yōu)勢(shì)以及SLC型閃存寫入數(shù)據(jù)的處理較簡(jiǎn)單的特性,本發(fā)明結(jié)合SLC型閃存與MLC型閃存記憶并且于SLC型閃存與MLC型閃存中皆劃分暫時(shí)區(qū)塊(logblock)。也就是說,微控制器120會(huì)根據(jù)主機(jī)的寫入命令以及數(shù)據(jù)的LBA來決定寫入數(shù)據(jù)要放置在SLC型閃存的暫時(shí)區(qū)塊(logblock)或者M(jìn)LC型閃存記憶的暫時(shí)區(qū)塊(logblock)。根據(jù)本發(fā)明的實(shí)施例,假設(shè)主機(jī)發(fā)出寫入命令相對(duì)應(yīng)的寫入數(shù)據(jù)大小(size)大于一特定數(shù)據(jù)量,例如一頁(yè)的數(shù)據(jù)量,則上述寫入數(shù)據(jù)則寫入MLC型閃存記憶的暫時(shí)區(qū)塊(logblock);反之,假設(shè)主機(jī)發(fā)出寫入命令相對(duì)應(yīng)的寫入數(shù)據(jù)大小(size)小于上述特定數(shù)據(jù)量,則上述寫入數(shù)據(jù)則寫入SLC型閃存記憶的暫時(shí)區(qū)塊(logblock)。以下舉例說明假設(shè)每一個(gè)區(qū)塊中有四個(gè)頁(yè)(Page),亦即第零頁(yè)(PageO)、第一頁(yè)(Pagel)、第二貞(Page2)、第三頁(yè)(Page3)。再者,微控制器120會(huì)在存儲(chǔ)器模塊140的SLC型閃存中定義一第一暫時(shí)區(qū)塊(logblockl)與MLC型閃存中定義一第二暫時(shí)區(qū)塊(logblock2)。請(qǐng)參照?qǐng)D6A~6I,其為本發(fā)明混合型閃存存儲(chǔ)裝置于寫入數(shù)據(jù)時(shí)的示意圖。在此我們以已知使用相同例子作說明,以作為實(shí)際讀取方式的差別。如圖6A所示,存儲(chǔ)器模塊140中至少包括SLC型閃存的區(qū)塊sPBA0sPBA3以及MLC型閃存記憶的區(qū)塊mPBA4mPBA7。再者,當(dāng)閃存存儲(chǔ)裝置尚未收到寫入命令前,由微控制器120中的存儲(chǔ)器映射表135可知,LBA0可對(duì)應(yīng)到存儲(chǔ)器模塊140的sPBA1,而sPBA1中第零頁(yè)(PageO)已經(jīng)存儲(chǔ)D4數(shù)據(jù)、第一頁(yè)(Pagel)己經(jīng)存儲(chǔ)D5數(shù)據(jù)、第二頁(yè)(Page2)已經(jīng)存儲(chǔ)D6數(shù)據(jù)、第三頁(yè)(Page3)已經(jīng)存儲(chǔ)D7數(shù)據(jù);LBA1可對(duì)應(yīng)到存儲(chǔ)器模塊140的mPBA4,而mPBA4中第零頁(yè)(PageO)已經(jīng)存儲(chǔ)D8數(shù)據(jù)、第一頁(yè)(Pagel)已經(jīng)存儲(chǔ)D9數(shù)據(jù)、第二頁(yè)(Page2)己經(jīng)存儲(chǔ)D10數(shù)據(jù)、第三頁(yè)(Page3)已經(jīng)存儲(chǔ)Dll數(shù)據(jù);LBA2可對(duì)應(yīng)到存儲(chǔ)器模塊140的sPBA0,而sPBA0中第零頁(yè)(PageO)己經(jīng)存儲(chǔ)D12數(shù)據(jù)、第一頁(yè)(Pagel)已經(jīng)存儲(chǔ)D13數(shù)據(jù)、第二頁(yè)(Page2)已經(jīng)存儲(chǔ)D14數(shù)據(jù)、第三頁(yè)(Page3)已經(jīng)存儲(chǔ)D15數(shù)據(jù);LBA3可對(duì)應(yīng)到存儲(chǔ)器模塊140的mPBA7,而mPBA7中第零頁(yè)(PageO)已經(jīng)存儲(chǔ)D0數(shù)據(jù)、第一頁(yè)(Pagel)已經(jīng)存儲(chǔ)Dl數(shù)據(jù)、第二頁(yè)(Page2)已經(jīng)存儲(chǔ)D2數(shù)據(jù)、第三頁(yè)(Page3)已經(jīng)存儲(chǔ)D3數(shù)據(jù)。再者,根據(jù)本發(fā)明的實(shí)施例,上述存儲(chǔ)器模塊140有兩個(gè)暫時(shí)區(qū)塊(logblock),第一暫時(shí)區(qū)塊(logblockl)被設(shè)定在sPBA3,第二暫時(shí)區(qū)塊(logblock2)被設(shè)定在mPBA5。也就是說,于SLC型閃存中定義一第一暫時(shí)區(qū)塊(logblockl)以及MLC型閃存中定義一第二暫時(shí)區(qū)塊(logblock2),再者,SLC型閃存中的sPBA2與MLC型閃存中mPBA6則為未使用區(qū)塊(freeblock)。如圖6B所示,閃存存儲(chǔ)裝置收到(I)主機(jī)發(fā)出一寫入命令至LBA3并且由第一頁(yè)(Pagel)開始寫入一頁(yè)的數(shù)據(jù)Dl'。由于數(shù)據(jù)D1'大小為一頁(yè),因此數(shù)據(jù)D1'會(huì)先被放置在第一暫時(shí)區(qū)塊(logblock1)。由于SLC型閃存可由任意頁(yè)數(shù)寫入,因此,數(shù)據(jù)D1'會(huì)被寫入第一暫時(shí)區(qū)塊(logblockl)的第一頁(yè)(Page1)。如圖6C所示,閃存存儲(chǔ)裝置收到(II)主機(jī)發(fā)出一寫入命令至LBA3并且由第零頁(yè)(PageO)開始寫入一頁(yè)的數(shù)據(jù)DO'。由于LBA0的寫入數(shù)據(jù)被放在第一暫時(shí)區(qū)塊(logblockl)中且SLC型閃存可由任意頁(yè)數(shù)寫入,因此數(shù)據(jù)D0,可被放置在第一暫時(shí)區(qū)塊(logblockl)的第零頁(yè)(Page0)。接著,如圖6D所示,閃存存儲(chǔ)裝置收到(III)主機(jī)發(fā)出一寫入命令至LBA0并且由第一頁(yè)(Pagel)開始寫入三頁(yè)的數(shù)據(jù)D5,、D6,、D7,。很明顯地,由于數(shù)據(jù)D5,、D6'、D7'的大小總合己超過上述特定數(shù)據(jù)量。因此,這些數(shù)據(jù)(D5'、D6'、D7')必須被放置在第二暫時(shí)區(qū)塊(logblock2)。由于MLC型閃存必須依序?qū)懭?,因此,本發(fā)明利用微控制器120先行執(zhí)行合并程序142。也就是說,此合并程序142會(huì)將LAB0中第0頁(yè)(起始頁(yè))的數(shù)據(jù)D4與寫入數(shù)據(jù)(D5,、D6,、D7,)先進(jìn)行合并,且依照頁(yè)數(shù)排序后才寫入第二暫時(shí)區(qū)塊(logblock2)。由于全部的第二暫時(shí)區(qū)塊(logblock2)中已經(jīng)存儲(chǔ)數(shù)據(jù),因此如圖6E所示,微控制器120執(zhí)行更換暫時(shí)區(qū)塊動(dòng)作。也就是說,將存儲(chǔ)器映射表135中的LBA0對(duì)應(yīng)到存儲(chǔ)器模塊mPBA5,且定義新的第二暫時(shí)區(qū)塊(logblock2)于未使用區(qū)塊(freeblock)mPBA6,且利用區(qū)塊擦除指令(blockerasecommand)將sPBA1中的數(shù)據(jù)擦除并且使得sPBA1成為未使用區(qū)塊(freeblock)。接著,如圖6F所示,閃存存儲(chǔ)裝置收到(IV)主機(jī)發(fā)出一寫入命令至LBA1并且由第零頁(yè)(Page0)開始寫入三頁(yè)的數(shù)據(jù)D8'、D9,、D10,;很明顯地,由于數(shù)據(jù)D8,、D9'、D10,的大小總合己超過上述特定數(shù)據(jù)量。因此,這些數(shù)據(jù)(D8,、D9,、D10,)必須被放置在第二暫時(shí)區(qū)塊(logblock2)。再者,這些數(shù)據(jù)(D8,、D9,、D10,)已經(jīng)包括上述區(qū)塊的第0頁(yè)(PageO),也就是起始頁(yè)(initialpage),因此,微控制器120可以直接將這些數(shù)據(jù)寫入第二暫時(shí)區(qū)塊(logblock)而不需要執(zhí)行合并程序142。當(dāng)閃存存儲(chǔ)裝置收到(V)主機(jī)發(fā)出一寫入命令至LBA2并且由第一頁(yè)(Pagel)開始寫入一頁(yè)的數(shù)據(jù)D13,。很明顯地,寫入數(shù)據(jù)D13'大小為一頁(yè),因此數(shù)據(jù)D1'會(huì)被放置在第一暫時(shí)區(qū)塊(logblock1)。然而,由于第一暫時(shí)區(qū)塊(logblockl)已經(jīng)存儲(chǔ)數(shù)據(jù),因此必須執(zhí)行更換暫時(shí)區(qū)塊動(dòng)作。也就是說,再次于存儲(chǔ)器模塊140的SLC型閃存中定義未使用區(qū)塊(freeblock)來作為新的第一暫時(shí)區(qū)塊(logblock1)。因此,如圖6G所示,利用合并單元146將mPBA7第二、三頁(yè)(Page2、3)的數(shù)據(jù)D2、D3與第一暫時(shí)區(qū)塊(logblockl)中的數(shù)據(jù)合并,使得第一暫時(shí)區(qū)塊(logblockl)中第零頁(yè)(PageO)存儲(chǔ)數(shù)據(jù)DO,,第一頁(yè)(Pagel)存儲(chǔ)數(shù)據(jù)Dl,,第二頁(yè)(Page2)存儲(chǔ)數(shù)據(jù)D2,第三頁(yè)(Page3)中存儲(chǔ)數(shù)據(jù)D3。如圖6H所示,將存儲(chǔ)器映射表135中的LBA3對(duì)應(yīng)到存儲(chǔ)器模塊140的sPBA3。因此,微控制器120可在存儲(chǔ)器模塊140中定義一未使用區(qū)塊為新的第一暫時(shí)區(qū)塊(logblock1),例如,sPBAl。再者,由于原mPBA7中所有的數(shù)據(jù)已經(jīng)被取代了,利用一區(qū)塊擦除指令(blockerasecommand)可以將mPBA7中的數(shù)據(jù)擦除并且使得mPBA7成為未使用區(qū)塊。如圖6I所示,由于新第一暫時(shí)區(qū)塊(logblockl)已經(jīng)形成,且D13,可放置在第一暫時(shí)區(qū)塊(logblockl)的第一頁(yè)。由上述說明可知,當(dāng)主機(jī)發(fā)出寫入命令相對(duì)應(yīng)的數(shù)據(jù)大小(size)超過特定數(shù)據(jù)量時(shí),這些數(shù)據(jù)必須寫入MLC閃存,并且微控制器120利用合并程序,使得排列在上述寫入數(shù)據(jù)之前包括一起始頁(yè)的所有數(shù)據(jù)依序?qū)懭肷鲜龅诙簳r(shí)區(qū)塊。因此,當(dāng)微控制器120執(zhí)行更換暫時(shí)區(qū)塊動(dòng)作(flushoutlogblock)時(shí),不用執(zhí)行已知的排序程序以及未使用區(qū)塊寫入程序,因此可以大幅提高存儲(chǔ)器模塊140的效率。再者,本發(fā)明不限定于SLC型與MLC型閃存所組成的混合型閃存存儲(chǔ)裝置。本領(lǐng)域技術(shù)人員都知道,不論SLC型與MLC型閃存于制造完成之后都會(huì)被進(jìn)一步分類為第一等級(jí)(firstgrade)產(chǎn)品與第二等級(jí)(seccmdgrade)產(chǎn)品。第一等級(jí)的閃存壽命較長(zhǎng)并且品質(zhì)較好,也就是說,第一等級(jí)的閃存允許反復(fù)寫入與讀取的次數(shù)較多且數(shù)據(jù)錯(cuò)誤率低;反之,第二等級(jí)的閃存壽命較短品執(zhí)較差,也就是說,允許反復(fù)寫入與讀取的次數(shù)較少且數(shù)據(jù)錯(cuò)誤率低。也就是說,本發(fā)明也可以利用不同等級(jí)的閃存所組合而成的混合型閃存存儲(chǔ)裝置。當(dāng)寫入數(shù)據(jù)的大小(size)小于上述特定數(shù)據(jù)量時(shí),則將寫入數(shù)據(jù)寫入第一等級(jí)的閃存;反之,當(dāng)寫入數(shù)據(jù)的大小(size)大于上述特定數(shù)據(jù)量時(shí),則將寫入數(shù)據(jù)寫入第二等級(jí)的閃存。因此,第二等級(jí)的閃存的寫入次數(shù)會(huì)少于第一等級(jí)的寫入次數(shù),并且保障上述混合型閃存存儲(chǔ)裝置的壽命。綜合以上技術(shù)說明,本發(fā)明所述的混合型閃存存儲(chǔ)裝置及其操作方法確實(shí)解決了先前技術(shù)中所產(chǎn)生的缺點(diǎn),進(jìn)而完成發(fā)展本發(fā)明的最主要的目的,再者,本發(fā)明的本領(lǐng)域技術(shù)人員作出的任何改動(dòng)與修飾,都不脫離權(quán)利要求書所欲保護(hù)的范圍。權(quán)利要求1.一種混合型閃存存儲(chǔ)裝置,其特征在于包含微控制器,連接至主機(jī)總線,用以接收主機(jī)的寫入數(shù)據(jù);以及存儲(chǔ)器模塊,連接至上述微控制器,包括一第一型閃存以及一第二型閃存;其中,當(dāng)上述寫入數(shù)據(jù)大小小于特定數(shù)據(jù)量時(shí),將上述寫入數(shù)據(jù)寫入上述第一型閃存中的第一暫時(shí)區(qū)塊;當(dāng)上述寫入數(shù)據(jù)大小大于上述特定數(shù)據(jù)量時(shí),將上述寫入數(shù)據(jù)寫入上述第二型閃存中的第二暫時(shí)區(qū)塊。2.根據(jù)權(quán)利要求1所述的混合型閃存存儲(chǔ)裝置,其特征在于,將上述寫入數(shù)據(jù)寫入上述第二型閃存中的上述第二暫時(shí)區(qū)塊時(shí),上述寫入數(shù)據(jù)包括起始頁(yè)時(shí),直接將上述寫入數(shù)據(jù)寫入上述第二暫時(shí)區(qū)塊。3.根據(jù)權(quán)利要求1所述的混合型閃存存儲(chǔ)裝置,其特征在于,將上述寫入數(shù)據(jù)寫入上述第二型閃存中的上述第二暫時(shí)區(qū)塊時(shí),上述寫入數(shù)據(jù)未包括起始頁(yè)時(shí),利用合并程序,將排列在上述寫入數(shù)據(jù)之前包括起始頁(yè)的所有數(shù)據(jù)寫入上述第二暫時(shí)區(qū)塊。4.根據(jù)權(quán)利要求1所述的混合型閃存存儲(chǔ)裝置,其特征在于,上述第一型閃存為單電平記憶胞型閃存,且上述第二型閃存為多電平記憶胞型閃存。5.根據(jù)權(quán)利要求1所述的混合型閃存存儲(chǔ)裝置,其特征在于,上述第一型閃存為第一等級(jí)閃存,且上述第二型閃存為第二等級(jí)閃存。6.根據(jù)權(quán)利要求l所述的混合型閃存存儲(chǔ)裝置,其特征在于,上述混合型閃存存儲(chǔ)裝置為U盤、小型閃存存儲(chǔ)裝置、安全數(shù)字存儲(chǔ)裝置、或者多媒體卡存儲(chǔ)裝置。7.—種混合型閃存存儲(chǔ)裝置的控制方法,上述混合型閃存存儲(chǔ)裝置包括由一第一型閃存以及一第二型閃存所組成的存儲(chǔ)器模塊,上述控制方法包括下列步驟接收由主機(jī)發(fā)出的寫入數(shù)據(jù);當(dāng)上述寫入數(shù)據(jù)大小小于特定數(shù)據(jù)量時(shí),將上述寫入數(shù)據(jù)寫入上述第一型閃存中的第一暫時(shí)區(qū)塊;以及當(dāng)上述寫入數(shù)據(jù)大小大于上述特定數(shù)據(jù)量時(shí),將上述寫入數(shù)據(jù)寫入上述第二型閃存中的第二暫時(shí)區(qū)塊。8.根據(jù)權(quán)利要求7所述的混合型閃存存儲(chǔ)裝置的控制方法,其特征在于,將上述寫入數(shù)據(jù)寫入上述第二型閃存中的上述第二暫時(shí)區(qū)塊時(shí),上述寫入數(shù)據(jù)包括起始頁(yè)時(shí),直接將上述寫入數(shù)據(jù)寫入上述第二暫時(shí)區(qū)塊。9.根據(jù)權(quán)利要求7所述的混合型閃存存儲(chǔ)裝置的控制方法,其特征在于,將上述寫入數(shù)據(jù)寫入上述第二型閃存中的上述第二暫時(shí)區(qū)塊時(shí),上述寫入數(shù)據(jù)未包括起始頁(yè)時(shí),利用一合并程序,將排列在上述寫入數(shù)據(jù)之前包括起始頁(yè)的所有數(shù)據(jù)寫入上述第二暫時(shí)區(qū)塊。10.根據(jù)權(quán)利要求7所述的混合型閃存存儲(chǔ)裝置的控制方法,其特征在于,上述第一型閃存為單電平記憶胞型閃存,且上述第二型閃存為多電平記憶胞型閃存。11.根據(jù)權(quán)利要求7所述的混合型閃存存儲(chǔ)裝置的控制方法,其特征在于,上述第一型閃存為第一等級(jí)閃存,且上述第二型閃存為第二等級(jí)閃存。12.根據(jù)權(quán)利要求7所述的混合型閃存存儲(chǔ)裝置的控制方法,其特征在于,上述混合型閃存存儲(chǔ)裝置為U盤、小型閃存存儲(chǔ)裝置、安全數(shù)字存儲(chǔ)裝置、或者多媒體卡存儲(chǔ)裝置。全文摘要本發(fā)明公開一種混合型閃存存儲(chǔ)裝置,包含微控制器,連接至主機(jī)總線用以接收主機(jī)的寫入數(shù)據(jù);以及存儲(chǔ)器模塊,連接至微控制器,且存儲(chǔ)器模塊包括第一型閃存以及第二型閃存;其中,當(dāng)寫入數(shù)據(jù)大小小于特定數(shù)據(jù)量時(shí),將寫入數(shù)據(jù)寫入第一型閃存中的第一暫時(shí)區(qū)塊;以及,當(dāng)寫入數(shù)據(jù)大小大于特定數(shù)據(jù)量時(shí),將寫入數(shù)據(jù)寫入第二型閃存中的第二暫時(shí)區(qū)塊。本發(fā)明中,當(dāng)微控制器執(zhí)行更換暫時(shí)區(qū)塊動(dòng)作時(shí),不用執(zhí)行已知的排序程序以及未使用區(qū)塊寫入程序,因此可以大幅提高存儲(chǔ)器模塊的效率。文檔編號(hào)G11C7/10GK101266828SQ200810086300公開日2008年9月17日申請(qǐng)日期2008年3月25日優(yōu)先權(quán)日2008年3月25日發(fā)明者劉名哲,棋張,李元暉,陳佳欣申請(qǐng)人:祥碩科技股份有限公司