TWI425523B - 混合型快閃儲存裝置及其操作方法 - Google Patents

混合型快閃儲存裝置及其操作方法 Download PDF

Info

Publication number
TWI425523B
TWI425523B TW097110499A TW97110499A TWI425523B TW I425523 B TWI425523 B TW I425523B TW 097110499 A TW097110499 A TW 097110499A TW 97110499 A TW97110499 A TW 97110499A TW I425523 B TWI425523 B TW I425523B
Authority
TW
Taiwan
Prior art keywords
flash memory
page
data
type
block
Prior art date
Application number
TW097110499A
Other languages
English (en)
Other versions
TW200941499A (en
Inventor
Yuan Huei Lee
Chi Chang
Chia Hsin Chen
Ming Che Liu
Original Assignee
Asmedia Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Asmedia Technology Inc filed Critical Asmedia Technology Inc
Priority to TW097110499A priority Critical patent/TWI425523B/zh
Priority to US12/401,466 priority patent/US20090248965A1/en
Publication of TW200941499A publication Critical patent/TW200941499A/zh
Application granted granted Critical
Publication of TWI425523B publication Critical patent/TWI425523B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

混合型快閃儲存裝置及其操作方法
本案係為一種快閃儲存裝置(flash memory storage device)及其控制方法,尤指一種混合型(hybrid)快閃儲存裝置及其控制方法。
眾所週知,快閃記憶體(flash memory)具有抗衝擊(shock)、非揮發(nonvolatile)、與高儲存密度等優點。因此,快閃記憶體搭配控制電路所形成的快閃儲存裝置(flash memory storage device)已經廣泛的被使用。例如,大姆哥(thumb drive)、小型快閃儲存裝置(compact flash,簡稱CF卡)、安全數位儲存裝置(secure digital,簡稱SD卡)、多媒體卡儲存裝置(multi media card,簡稱MMC卡)等等。
一般來說,市面上的反及閘快閃記憶體(Nand-Flash memory)可區分為二種,亦即,單準位記憶胞型快閃記憶體(Signal Level Cell Nand-Flash,以下簡稱SLC型快閃記憶體)以及多準位記憶胞型快閃記憶體(Multi Level Cell Nand-Flash,以下簡稱MLC型快閃記憶體)。所謂的SLC型快閃記憶體就是在單一記憶胞(memory cell)中可以存取一個位元(bit);反之,MLC型快閃記憶體就是在單一記憶胞中可以存取一個以上的位元。
上述二型快閃記憶體是利用不同的製程方法所製造的,雖然都具有非揮發的特性,但是其處理效能以及特性仍有顯著的不同。以下歸納出SLC型快閃記憶體與MLC型快閃記憶體的差異。
(I)SLC型快閃記憶體的每一頁(page)具有可重複寫入(multi-write)資料的特性,且可由任意頁數寫入。(II)SLC型快閃記憶體資料寫入的正確性(reliability and maintainability)很高,因此不需要太複雜的錯誤修正碼(error correction code)。(III)SLC型快閃記憶體的使用壽命(available)長。(IV)SLC型快閃記憶體的區塊抹除時間(block erase time)以及頁寫入時間(page programming time)較短。(V)SLC型快閃記憶體的價格較高。
(I)MLC型快閃記憶體的每一頁(page)僅有一次寫入資料的特性,且必須由低頁數依序寫入。(II)MLC型快閃記憶體資料寫入的錯誤率高,因此需要複雜的錯誤修正碼(error correction code)來除錯。(III)MLC型快閃記憶體的使用壽命短。(IV)MLC型快閃記憶體的區塊抹除時間以及頁寫入時間較長。(V)MLC型快閃記憶體的價格較低,且在相同面積裡MLC型快閃記憶體具有較高的資料密度(high density)。
請參照第一圖A,其所繪示為習知快閃儲存裝置架構圖。快閃儲存裝置10中包括一微控制器(micro controller)20與記憶體模組(memory modular)40。一般來說,主機(host,未繪示)則可利用一主機匯流(host bus)22來存取快閃儲存裝置10內的資料。當然,主機匯流排22可為一小型快閃儲存裝置(compact flash,簡稱CF)匯流排、安全數位儲存裝置(secure digital,簡稱SD)匯流排、多媒體卡儲存裝置(multi media card,簡稱MMC)匯流排、通用串接匯流排(universal serial bus,簡稱USB)、或者IEEE1394匯流排等。
再者,當主機將資料寫入記憶體模組40時,微控制器20會發出一寫入指令至記憶體模組40並將寫入資料寫入記憶體模組40。反之,當主機讀取記憶體模組40內的資料時,微控制器20會發出一讀取指令至記憶體模組40,因此,記憶體模組40會輸出讀取資料至微控制器20並輸出該讀取資料。
再者,請參照第一圖B與第一圖C,其所繪示為習知快閃儲存裝置中的記憶體模組示意圖。由於SLC型快閃記憶體與MLC型快閃記憶體的差異,因此,習知快閃儲存裝置10中的記憶體模組40皆是由相同型的快閃記憶體所組成。也就是說,如第一圖B所示,記憶體模組40可以是多個SLC型快閃記憶體42-1~42-N所組成。或者,如第一圖C所示,記憶體模組40可以是多個MLC型快閃記憶體44-1~44-N所組成。不論記憶體模組40是由SLC型快閃記憶體42-1~42-N所組成或者由MLC型快閃記憶體44-1~44-N所組成,於記憶體模組40中更可以劃分成很多的區塊(block),每個區塊中又包括複數個頁(page)。因此,微控制器20中有一記憶體映照表(memory mapping table),該記憶體映照表中有指標(pointer),其記錄邏輯區塊位址(logical block address,以下簡稱LBA)與實際區塊位址(physical block address,以下簡稱PBA)之間的關係。一般來說,主機發出的讀寫命令皆是讀寫特定LBA的資料,因此利用記憶體映照表即可以確定記憶體模組40中實際的PBA,並對PBA中的資料進行讀取或者寫入。
請參照第二圖,其所繪示為記憶體映照表示意圖。舉例來說,假設主機發出讀取指令欲讀取LBA 0內的資料,根據微控制器20中的記憶體映照表35,資料實際儲存的位址在記憶體模組40的PBA 5,因此,記憶體模組40的PBA 5中的資料可以被讀出,並輸出快閃儲存裝置10至主機。
由於SLC型快閃記憶體與MLC型快閃記憶體的差異,因此建構完成的快閃儲存裝置10在寫入動作時也會有所差異。以下舉例說明:假設每一個區塊中有四個頁(page),亦即第零頁(page 0)、第一頁(page 1)、第二頁(page 2)、第三頁(page 3)。再者,微控制器20會在記憶體模組40中選擇至少一個未使用區塊(free block)作為寫入資料的暫時區塊(log block)。
請參照第三圖A~G,其所繪示為由SLC型快閃記憶體所建構的快閃儲存裝置於寫入資料時的示意圖。假設(I)主機發出一寫入命令至LBA 0並且由第一頁(page 1)開始寫入二頁的資料D1’、D2’;(II)主機發出一寫入命令至LBA 0並且由第零頁(page 0)開始寫入一頁的資料D0’;以及,(III)主機發出一寫入命令至LBA 3並且由第三頁(page 3)開始寫入四頁的資料D7’、D8’、D9’、D10’。
如第三圖A所示,當快閃儲存裝置尚未收到寫入命令前,由微控制器20中的記憶體映照表35可知,LBA 0可對應到記憶體模組40的PBA 1,而PBA 1中第零頁(page 0)已經儲存D0資料、第一頁(page 1)已經儲存D1資料、第二頁(page 2)已經儲存D2資料、第三頁(page 3)已經儲存D3資料;LBA 3可對應到記憶體模組40的PBA 7,而PBA 7中第零頁(page 0)已經儲存D4資料、第一頁(page 1)已經儲存D5資料、第二頁(page 2)已經儲存D6資料、第三頁(page 3)已經儲存D7資料;LBA 4可對應到記憶體模組40的PBA 4,而PBA 4中第零頁(page 0)已經儲存D8資料、第一頁(page 1)已經儲存D9資料、第二頁(page 2)已經儲存D10資料、第三頁(page 3)已經儲存D11資料。再者,該記憶體模組40有二個暫時區塊(log block),第一暫時區塊(1og block 1)被設定在PBA 5,第二暫時區塊(log block 2)被設定在PBA 3;而PBA0、PBA2與PBA6即為未使用區塊(free block)。
如第三圖B所示,快閃儲存裝置收到(I)主機發出一寫入命令至LBA 0並且由第一頁(page 1)開始寫入二頁的資料D1’、D2’。此時,這些資料(D1’、D2’)會先被放置在第一暫時區塊(log block 1)。由於SLC型快閃記憶體可由任意頁數寫入,因此,資料D1’、D2’會被寫入第一暫時區塊(log block 1)的第一頁(page 1)與第二頁(page 2)。
如第三圖C所示,快閃儲存裝置收到(II)主機發出一寫入命令至LBA 0並且由第零頁(page 0)開始寫入一頁的資料D0’。由於LBA 0的寫入資料被放在第一暫時區塊(log block 1)中且SLC型快閃記憶體可由任意頁數寫入,因此資料D0’可被放置在第一暫時區塊(log block 1)的第零頁(page 0)。
當快閃儲存裝置收到(III)主機發出一寫入命令至LBA 3並且由第三頁(page 3)開始寫入四頁的資料D7’、D8’、D9’、D10’。很明顯地,D7’資料必須寫入LBA 3第三頁(page 3),而D8’、D9’、D10’必須寫入LBA 4第零頁(page 0)、第一頁(page 1)與第二頁(page 2)。
因此,如第三圖D所示,先將LBA 3的資料D7’寫入第二暫時區塊(log block 2)的第三頁(page 3)。此時,由於記憶體模組40已經沒有可使用的暫時區塊(log block),所以,必須執行更換暫時區塊動作(flush out log block)。也就是說,再次由憶體模組40中尋找未使用區塊(free block)來作為第一暫時區塊(log block 1)。
因此,如第三圖E所示,微控制器20會先進行一合併程序(merging procedure)46。所謂的合併程序46就是由PBA 1的第三頁(page 3)中取出資料D3,接著,將資料D3與第一暫時區塊(log block 1)中的資料合併,使得第一暫時區塊(log block 1)中第零頁(page 0)儲存資料D0’,第一頁(page 1)儲存資料D1’,第二頁(page 2)儲存資料D2’,第三頁(page 3)中儲存資料D3。
接著,如第三圖F所示,將記憶體映照表35中的LBA 0對應到記憶體模組40的PBA 5。因此,舊的第一暫時區塊(log block 1)即可成為LBA0。接著,微控制器20由多個未使用區塊中擇一成為新的第一暫時區塊(log block 1),例如,PBA 0。而由於原PBA 1中所有的資料已經被取代了,利用一區塊抹除指令(block erase command)可以將PBA 1中的資料抹除並且使得PBA 1成為未使用區塊(free block)並完成更換暫時區塊動作。
如第三圖G所示,由於新第一暫時區塊(log block 1)已經形成,因此,D8’、D9’、D10’可以寫入新第一暫時區塊(log block 1)第零頁(page 0)、第一頁(page 1)與第二頁(page 2)。
請參照第四圖A~G,其所繪示為由MLC型快閃記憶體所建構的快閃儲存裝置於寫入資料時的示意圖。假設(I)主機發出一寫入命令至LBA 0並且由第一頁(page 1)開始寫入二頁的資料D1’、D2’;(II)主機發出一寫入命令至LBA 0並且由第零頁(page 0)開始寫入一頁的資料D0’;以及,(III)主機發出一寫入命令至LBA 3並且由第三頁(page 3)開始寫入四頁的資料D7’、D8’、D9’、D10’。
如第四圖A所示,當快閃儲存裝置尚未收到寫入命令前,由微控制器20中的記憶體映照表可知,LBA 0可對應到記憶體模組40的PBA 1,而PBA 1中第零頁(page 0)已經儲存D0資料、第一頁(page 1)已經儲存D1資料、第二頁(page 2)已經儲存D2資料、第三頁(page 3)已經儲存D3資料;LBA 3可對應到記憶體模組40的PBA 7,而PBA 7中第零頁(page 0)已經儲存D4資料、第一頁(page 1)已經儲存D5資料、第二頁(page 2)已經儲存D6資料、第三頁(page 3)已經儲存D7資料;LBA 4可對應到記憶體模組40的PBA 4,而PBA 4中第零頁(page 0)已經儲存D8資料、第一頁(page 1)已經儲存D9資料、第二頁(page 2)已經儲存D10資料、第三頁(page 3)已經儲存D11資料。再者,該記憶體模組40有二個暫時區塊(log block),第一暫時區塊(log block 1)被設定在PBA 5,第二暫時區塊(log block 2)被設定在PBA 3;而PBA0、PBA2與PBA6即為未使用區塊(free block)。
如第四圖B所示,快閃儲存裝置收到(I)主機發出一寫入命令至LBA 0並且由第一頁(page 1)開始寫入二頁的資料D1’、D2’。此時,這些資料D1’、D2’會被放置在第一暫時區塊(log block 1)。由於MLC型快閃記憶體的頁數必須依序寫入,因此,資料D1’、D2’會被寫入第一暫時區塊(log block 1)的第零頁(page 0)與第一頁(page 1)。
如第四圖C所示,快閃儲存裝置收到(II)主機發出一寫入命令至LBA 0並且由第零頁(page 0)開始寫入一頁的資料D0’。由於LBA 0的寫入資料被放在第一暫時區塊(log block 1)中且MLC型快閃記憶體必須依序寫入,因此資料D0’被放置在第一暫時區塊(log block 1)的第二頁(page 2)。
當快閃儲存裝置收到(III)主機發出一寫入命令至LBA 3並且由第三頁(page 3)開始寫入四頁的資料D7’、D8’、D9’、D10’。很明顯地,D7’資料必須寫入LBA 3第三頁(page 3),而D8’、D9’、D10’必須寫入LBA 4第零頁(page 0)、第一頁(page 1)與第二頁(page 2)。
因此,如第四圖D所示,先將LBA 3的資料D7’寫入第二暫時區塊(log block 2)的第零頁(page 0)。此時,由於記憶體模組40已經沒有可使用的暫時區塊(log block),所以,必須執行更換暫時區塊動作(flush out log block)。也就是說,再次由憶體模組40中尋找未使用區塊(free block)來作為第一暫時區塊(log block 1)。
由於第一暫時區塊(log block 1)內的資料頁數排列不正確,因此,微控制器20會先進行一排序與合併程序(merging and sorting procedure)47,以及一未使用區塊寫入程序(write to free block procedure)48。
如第四圖E所示,排序與合併程序47即是接收PBA 1中的資料D3以及第一暫時區塊(log block 1)中的資料D1’、D2’、D0’,並且依照頁數的順序排序並合併成為D0’、D1’、D2’、D3。而未使用區塊寫入程序48即是將排序與合併程序完成的資料寫入未使用區塊中,例如PBA 6。
接著,如第四圖F所示,將記憶體映照表35中的LBA 0對應到記憶體模組40的PBA 6。因此,微控制器20由多個未使用區塊中擇一成為新的第一暫時區塊(log block 1),例如,PBA 0。而由於原PBA 1與PBA 5中所有的資料已經被取代了,利用二區塊抹除指令(block erase command)可以將PBA 1與PBA 5中的資料抹除並且使得PBA 1與PBA 5成為未使用區塊(free block)並完成更換暫時區塊動作。
如第四圖G所示,由於新第一暫時區塊(log block 1)已經形成,因此,D8’、D9’、D10’可以寫入新第一暫時區塊(log block 1)第零頁(page 0)、第一頁(page 1)與第二頁(page 2)。
由上述可知,由於MLC型快閃記憶體的頁數必須依序寫入,因此在執行更換暫時區塊動作時微控制器20必須執行一排序與合併程序47以及一空白區塊寫入程序48。再者,由於SLC型快閃記憶體的頁數可以任意寫入,因此在執行更換暫時區塊動作時僅利用一合併程序46即可。簡單的說,MLC型快閃記憶體在寫入資料的處理上較SLC型快閃記憶體複雜的多。
本發明提出一種混合型快閃儲存裝置,包含:一微控制器連接至一主機匯流排用以接收一主機的一寫入資料;以及,一記憶體模組連接至該微控制器,且該記憶體模組包括一第一型快閃記憶體以及一第二型快閃記憶體;其中,當該寫入資料大小小於一特定資料量時,將該寫入資料寫入該第一型快閃記憶體中的一第一暫時區塊;以及,當該寫入資料大小大於該特定資料量時,將該寫入資料寫入該第二型快閃記憶體中的一第二暫時區塊。
本發明更提出一種混合型快閃儲存裝置的控制方法,該混合型快閃儲存裝置包括由一第一型快閃記憶體以及一第二型快閃記憶體所組成的一記憶體模組,該控制方法包括下列步驟:接收由一主機發出的一寫入資料;當該寫入資料大小小於一特定資料量時,將該寫入資料寫入該第一型快閃記憶體中的一第一暫時區塊;以及,當該寫入資料大小大於該特定資料量時,將該寫入資料寫入該第二型快閃記憶體中的一第二暫時區塊。
請參照第五圖,其所繪示為本發明混合型快閃儲存裝置架構圖。快閃儲存裝置100中包括一微控制器120與記憶體模組140。其中,該記憶體模組140中包括SLC型快閃記憶體142-1~142-N與MLC型快閃記憶體144-1~144-M。也就是說,相較於習知的快閃儲存裝置,本發明混合型(hybrid)快閃儲存裝置中的記憶體模組是由SLC型快閃記憶體142-1~142-N與MLC型快閃記憶體146-1~145-M所組成。
一般來說,主機110(host)可利用一主機匯流122來存取快閃儲存裝置100內的資料。當然,主機匯流排122可為一小型快閃儲存裝置匯流排、安全數位儲存裝置匯流排、多媒體卡儲存裝置匯流排、通用串接匯流排、或者IEEE1394匯流排。
再者,當主機110將資料寫入記憶體模組140時,微控制器120會發出一寫入指令至記憶體模組140,並將寫入資料寫入記憶體模組140。反之,當主機讀取記憶體模組140內的資料時,微控制器120會發出一讀取指令至記憶體模組140,因此,記憶體模組140會輸出讀取資料至微控制器120後輸出至主機110。
再者,而記憶體模組140中的SLC型快閃記憶體142-1~142-N與MLC型快閃記憶體146-1~145-M可以劃分成很多的區塊(block),每個區塊中又包括複數個頁(page)。因此,微控制器120內會有一記憶體映照表,該記憶體映照表中有指標(pointer),其記錄LBA與PBA之間的關係。
為了要達到MLC型快閃記憶體價格較低以及高密度的優勢以及SLC型快閃記憶體寫入資料的處理較簡單的特性,本發明結合SLC型快閃記憶體與MLC型快閃記憶並且於SLC型快閃記憶體與MLC型快閃記憶體中皆劃分暫時區塊(log block)。也就是說,微控制器120會根據主機110的寫入命令以及資料的LBA來決定寫入資料要放置在SLC型快閃記憶體的暫時區塊(log block)與或者MLC型快閃記憶的暫時區塊(log block)。
根據本發明的實施例,假設主機110發出寫入命令相對應的寫入資料大小(size)大於一特定資料量,例如一頁的資料量,則該筆寫入資料則寫入MLC型快閃記憶的暫時區塊(log block);反之,假設主機110發出寫入命令相對應的寫入資料大小(size)小於該特定資料量,則該筆寫入資料則寫入SLC型快閃記憶的暫時區塊(log block)。
以下舉例說明:假設每一個區塊中有四個頁(page),亦即第零頁(page 0)、第一頁(page 1)、第二頁(page 2)、第三頁(page 3)。再者,微控制器120會在記憶體模組140的SLC型快閃記憶體中定義一第一暫時區塊(log block 1)與MLC型快閃記憶體中定義一第二暫時區塊(log block 2)。
請參照第六圖A~I,其所繪示為本發明混合型快閃儲存裝置於寫入資料時的示意圖。在此我們以習知使用相同例子作說明,以作為實際讀取方式之差別。如第六圖A所示,記憶體模組140中至少包括SLC型快閃記憶體的區塊sPBA 0~sPBA 3以及MLC型快閃記憶的區塊mPBA 4~mPBA7。再者,當快閃儲存裝置尚未收到寫入命令前,由微控制器120中的記憶體映照表135可知,LBA 0可對應到記憶體模組140的sPBA 1,而sPBA 1中第零頁(page 0)已經儲存D4資料、第一頁(page 1)已經儲存D5資料、第二頁(page 2)已經儲存D6資料、第三頁(page 3)已經儲存D7資料;LBA 1可對應到記憶體模組140的mPBA 4,而mPBA 4中第零頁(page 0)已經儲存D8資料、第一頁(page 1)已經儲存D9資料、第二頁(page 2)已經儲存D10資料、第三頁(page 3)已經儲存D11資料;LBA 2可對應到記憶體模組140的sPBA 0,而sPBA 0中第零頁(page 0)已經儲存D12資料、第一頁(page 1)已經儲存D13資料、第二頁(page 2)已經儲存D14資料、第三頁(page 3)已經儲存D15資料;LBA 3可對應到記憶體模組140的mPBA 7,而mPBA 7中第零頁(page 0)已經儲存D0資料、第一頁(page 1)已經儲存D1資料、第二頁(page 2)已經儲存D2資料、第三頁(page 3)已經儲存D3資料。再者,根據本發明的實施例,該記憶體模組140有二個暫時區塊(log block),第一暫時區塊(log block 1)被設定在sPBA 3,第二暫時區塊(log block 2)被設定在mPBA 5。亦即,於SLC型快閃記憶體中定義一第一暫時區塊(log block 1)與MLC型快閃記憶體中定義一第二暫時區塊(log block 2),再者,SLC型快閃記憶體中的sPBA 2與MLC型快閃記憶體中mPBA 6則為未使用區塊(free block)。如第六圖B所示,快閃儲存裝置收到(I)主機發出一寫入命令至LBA 3並且由第一頁(page 1)開始寫入一頁的資料D1’。由於資料D1’大小為一頁,因此資料D1’會先被放置在第一暫時區塊(log block 1)。由於SLC型快閃記憶體可由任意頁數寫入,因此,資料D1’會被寫入第一暫時區塊(log block 1)的第一頁(page 1)。
如第六圖C所示,快閃儲存裝置收到(II)主機發出一寫入命令至LBA 3並且由第零頁(page 0)開始寫入一頁的資料D0’。由於LBA 0的寫入資料被放在第一暫時區塊(log block 1)中且SLC型快閃記憶體可由任意頁數寫入,因此資料D0’可被放置在第一暫時區塊(log block 1)的第零頁(page 0)。
接著,如第六圖D所示,快閃儲存裝置收到(III)主機發出一寫入命令至LBA 0並且由第一頁(page 1)開始寫入三頁的資料D5’、D6’、D7’。很明顯地,由於資料D5’、D6’、D7’的大小總合已超過該特定資料量。因此,這些資料(D5’、D6’、D7’)必須被放置在第二暫時區塊(log block 2)。由於MLC型快閃記憶體必須依序寫入,因此,本發明利用微控制器120先行執行合併程序142。也就是說,此合併程序142會將LAB 0中第0頁(起始頁)的資料D4與寫入資料(D5’、D6’、D7’)先進行合併,且依照頁數排序後才寫入第二暫時區塊(log block 2)。
由於全部的第二暫時區塊(log block 2)中已經儲存資料,因此如第六圖E所示,微控制器120執行更換暫時區塊動作。也就是說,將記憶體映照表135中的LBA 0對應到記憶體模組mPBA 5,且定義新的第二暫時區塊(log block 2)於未使用區塊(free block)mPBA 6,且利用區塊抹除指令(block erase command)將sPBA 1中的資料抹除並且使得sPBA 1成為未使用區塊(free block)。
接著,如第六圖F所示,快閃儲存裝置收到(IV)主機發出一寫入命令至LBA 1並且由第零頁(page 0)開始寫入三頁的資料D8’、D9’、D10’;很明顯地,由於資料D8’、D9’、D10’的大小總合已超過該特定資料量。因此,這些資料(D8’、D9’、D10’)必須被放置在第二暫時區塊(log block 2)。再者,這些資料(D8’、D9’、D10’)已經包括該區塊的第0頁(page 0),也就是起始頁(initial page),因此,微控制器120可以直接將這些資料寫入第二暫時區塊(log block)而不需要執行合併程序142。
當快閃儲存裝置收到(V)主機發出一寫入命令至LBA 2並且由第一頁(page 1)開始寫入一頁的資料D13’。很明顯地,寫入資料D13’大小為一頁,因此資料D1’會被放置在第一暫時區塊(log block 1)。然而,由於第一暫時區塊(log block 1)已經儲存資料,因此必須執行更換暫時區塊動作。也就是說,再次於記憶體模組140的SLC型快閃記憶體中定義未使用區塊(free block)來作為新的第一暫時區塊(log block 1)。
因此,如第六圖G所示,利用合併單元146將mPBA 7第二、三頁(page 2、3)的資料D2、D3與第一暫時區塊(log block 1)中的資料合併,使得第一暫時區塊(log block 1)中第零頁(page 0)儲存資料D0’,第一頁(page 1)儲存資料D1’,第二頁(page 2)儲存資料D2,第三頁(page 3)中儲存資料D3。
如第六圖H所示,將記憶體映照表135中的LBA 3對應到記憶體模組140的sPBA 3。因此,微控制器120可在記憶體模組140中定義一未使用區塊為新的第一暫時區塊(log block 1),例如,sPBA 1。再者,由於原mPBA 7中所有的資料已經被取代了,利用一區塊抹除指令(block erase command)可以將mPBA 7中的資料抹除並且使得mPBA 7成為未使用區塊。
如第六圖I所示,由於新第一暫時區塊(log block 1)已經形成,且D13’可放置在第一暫時區塊(log block 1)的第一頁。
由上述說明可知,當主機發出寫入命令相對應的資料大小(size)超過特定資料量時,這些資料必須寫入MLC快閃記憶體,並且微控制器120利用合併程序,使得排列在該寫入資料之前包括一起始頁的所有資料依序寫入該第二暫時區塊。因此,當微控制器120執行更換暫時區塊動作(flush out log block)時,不用執行習知的排序程序以及未使用區塊寫入程序,因此可以大幅提高記憶體模組140的效率。
再者,本發明不限定於SLC型與MLC型快閃記憶體所組成的混合型快閃儲存裝置。在此領域的技術人員皆知道,不論SLC型與MLC型快閃記憶體於製造完成之後都會被進一步分類為第一等級(first grade)產品與次等級(second grade)產品。第一等級的快閃記憶體壽命較長品執較好,也就是說,第一等級的快閃記憶體允許反覆寫入與讀取的次數較多次且資料錯誤率低;反之,次等級的快閃記憶體壽命較短品執較差,也就是說,允許反覆寫入與讀取的次數較少次且資料錯誤率低。
也就是說,本發明也可以利用不同等級的快閃記憶體所組合而成的混合型快閃儲存裝置。當寫入資料的大小(size)小於該特定資料量時,則將寫入資料寫入第一等級的快閃記憶體;反之,當寫入資料的大小(size)大於該特定資料量時,則將寫入資料寫入次等級的快閃記憶體。因此,次等級的快閃記憶體的寫入次數會少於第一等級的寫入次數,並且保障該混合型快閃儲存裝置的壽命。
綜合以上技術說明,本案所述之混合型快閃儲存裝置及其操作方法確實解決了先前技術中所產生的缺失,進而完成發展本案之最主要的目的,再者,本發明得由熟習此技藝之人士任施匠思而為諸般修飾,然皆不脫如附申請專利範圍所欲保護者。
本案圖式中所包含之各元件列示如下:
快閃儲存裝置...10
微控制器...20
主機匯流排...22
記憶體映照表...35
記憶體模組...40
SLC型快閃記憶體...42-1~42-N
MLC型快閃記憶體...44-1~44-N
快閃儲存裝置...100
主機...110
微控制器...120
主機匯流排...122
記憶體映照表...135
記憶體模組...140
SLC型快閃記憶體...142-1~142-N
MLC型快閃記憶體...144-1~144-M
本案得藉由下列圖式及詳細說明,俾得一更深入之了解:第一圖A所繪示為習知快閃儲存裝置架構圖。
第一圖B、C所繪示為習知快閃儲存裝置中的記憶體模組示意圖。
第二圖所繪示為記憶體映照表示意圖。
第三圖A~G所繪示為由SLC型快閃記憶體所建構的快閃儲存裝置於寫入資料時的示意圖。
第四圖A~G所繪示為由MLC型快閃記憶體所建構的快閃儲存裝置於寫入資料時的示意圖。
第五圖所繪示為本發明混合型快閃儲存裝置架構圖。
第六圖A~I所繪示為本發明混合型快閃儲存裝置於寫入資料時的示意圖。
快閃儲存裝置...100
主機...110
微控制器...120
主機匯流排...122
記憶體模組...140
SLC型快閃記憶體...142-1~142-N
MLC型快閃記憶體...144-1~144-M

Claims (12)

  1. 一種混合型快閃儲存裝置,包含:一微控制器,連接至一主機匯流排,用以接收一主機的一寫入資料;以及一記憶體模組,連接至該微控制器,包括一第一型快閃記憶體以及一第二型快閃記憶體;其中,當該寫入資料大小小於一特定資料量時,將該寫入資料寫入該第一型快閃記憶體中的一第一暫時區塊;當該寫入資料大小大於該特定資料量時,將該寫入資料寫入該第二型快閃記憶體中的一第二暫時區塊。
  2. 如申請專利範圍第1項所述的混合型快閃儲存裝置,其中,將該寫入資料寫入該第二型快閃記憶體中的該第二暫時區塊時,該寫入資料包括一起始頁時,直接將該寫入資料寫入該第二暫時區塊。
  3. 如申請專利範圍第1項所述的混合型快閃儲存裝置,其中,將該寫入資料寫入該第二型快閃記憶體中的該第二暫時區塊時,該寫入資料未包括一起始頁時,利用一合併程序,將排列在該寫入資料之前包括一起始頁的所有資料寫入該第二暫時區塊。
  4. 如申請專利範圍第1項所述的混合型快閃儲存裝置,其中,該第一型快閃記憶體為一單準位記憶胞型快閃記憶體,且該第二型快閃記憶體為一多準位記憶胞型快閃記憶體。
  5. 如申請專利範圍第1項所述的混合型快閃儲存裝置,其中,該第一型快閃記憶體為一第一等級快閃記憶體,且該第二型快閃記憶體為一第二等級快閃記憶體。
  6. 如申請專利範圍第1項所述的混合型快閃儲存裝置,其中,該混合型快閃儲存裝置為一大姆哥、一小型快閃儲存裝置、一安全數位儲存裝置、或者一多媒體卡儲存裝置。
  7. 一種混合型快閃儲存裝置的控制方法,該混合型快閃儲存裝置包括由一第一型快閃記憶體以及一第二型快閃記憶體所組成的一記憶體模組,該控制方法包括下列步驟:接收由一主機發出的一寫入資料;當該寫入資料大小小於一特定資料量時,將該寫入資料寫入該第一型快閃記憶體中的一第一暫時區塊;以及當該寫入資料大小大於該特定資料量時,將該寫入資料寫入該第二型快閃記憶體中的一第二暫時區塊。
  8. 如申請專利範圍第7項所述的混合型快閃儲存裝置的控制方法,其中,將該寫入資料寫入該第二型快閃記憶體中的該第二暫時區塊時,該寫入資料包括一起始頁時,直接將該寫入資料寫入該第二暫時區塊。
  9. 如申請專利範圍第7項所述的混合型快閃儲存裝置的控制方法,其中,將該寫入資料寫入該第二型快閃記憶體中的該第二暫時區塊時,該寫入資料未包括一起始頁時,利用一合併程序,將排列在該寫入資料之前包括一起始頁的所有資料寫入該第二暫時區塊。
  10. 如申請專利範圍第7項所述的混合型快閃儲存裝置的控制方法,其中,該第一型快閃記憶體為一單準位記憶胞型快閃記憶體,且該第二型快閃記憶體為一多準位記憶胞型快閃記憶體。
  11. 如申請專利範圍第7項所述的混合型快閃儲存裝置的控制方法,其中,該第一型快閃記憶體為一第一等級快閃記憶體,且該第二型快閃記憶體為一第二等級快閃記憶體。
  12. 如申請專利範圍第7項所述的混合型快閃儲存裝置的控制方法,其中,該混合型快閃儲存裝置為一大姆哥、一小型快閃儲存裝置、一安全數位儲存裝置、或者一多媒體卡儲存裝置。
TW097110499A 2008-03-25 2008-03-25 混合型快閃儲存裝置及其操作方法 TWI425523B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW097110499A TWI425523B (zh) 2008-03-25 2008-03-25 混合型快閃儲存裝置及其操作方法
US12/401,466 US20090248965A1 (en) 2008-03-25 2009-03-10 Hybrid flash memory device and method of controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW097110499A TWI425523B (zh) 2008-03-25 2008-03-25 混合型快閃儲存裝置及其操作方法

Publications (2)

Publication Number Publication Date
TW200941499A TW200941499A (en) 2009-10-01
TWI425523B true TWI425523B (zh) 2014-02-01

Family

ID=41118867

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097110499A TWI425523B (zh) 2008-03-25 2008-03-25 混合型快閃儲存裝置及其操作方法

Country Status (2)

Country Link
US (1) US20090248965A1 (zh)
TW (1) TWI425523B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8078794B2 (en) * 2000-01-06 2011-12-13 Super Talent Electronics, Inc. Hybrid SSD using a combination of SLC and MLC flash memory arrays
US20110153912A1 (en) * 2009-12-18 2011-06-23 Sergey Anatolievich Gorobets Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory
TWI414940B (zh) * 2009-12-30 2013-11-11 Phison Electronics Corp 區塊管理與資料寫入方法、快閃記憶體儲存系統與控制器
TWI409633B (zh) * 2010-02-04 2013-09-21 Phison Electronics Corp 快閃記憶體儲存裝置、其控制器與資料寫入方法
TWI440044B (zh) * 2010-03-01 2014-06-01 Phison Electronics Corp 記憶體管理與寫入方法、記憶體控制器與記憶體儲存系統
US20110252187A1 (en) * 2010-04-07 2011-10-13 Avigdor Segal System and method for operating a non-volatile memory including a portion operating as a single-level cell memory and a portion operating as a multi-level cell memory
JP5066241B2 (ja) 2010-09-24 2012-11-07 株式会社東芝 メモリシステム
KR101734200B1 (ko) * 2010-12-03 2017-05-11 삼성전자주식회사 적응적 머지를 수행하는 메모리 시스템 및 그것의 데이터 쓰기 방법
TWI447579B (zh) * 2011-05-18 2014-08-01 Phison Electronics Corp 程式碼載入與存取方法、記憶體控制器與記憶體儲存裝置
US8990477B2 (en) * 2012-04-19 2015-03-24 Sandisk Technologies Inc. System and method for limiting fragmentation
US20140101370A1 (en) * 2012-10-08 2014-04-10 HGST Netherlands B.V. Apparatus and method for low power low latency high capacity storage class memory
TWI517165B (zh) * 2014-03-31 2016-01-11 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI657339B (zh) * 2017-06-25 2019-04-21 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器
CN109117383B (zh) 2017-06-25 2022-09-20 慧荣科技股份有限公司 管理闪存模块的方法和闪存控制器
KR20230027957A (ko) 2021-08-20 2023-02-28 삼성전자주식회사 호스트 및 스토리지 장치를 포함하는 스토리지 시스템 및 이의 동작 방법
CN114281249B (zh) * 2021-11-30 2023-07-25 长江存储科技有限责任公司 闪存颗粒的改进方法、闪存颗粒、存储器和电子设备
CN115794446B (zh) * 2023-01-18 2023-05-09 苏州浪潮智能科技有限公司 一种消息处理方法、装置、电子设备和存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030007384A1 (en) * 2001-07-09 2003-01-09 Mitsubishi Denki Kabushiki Kaisha Nonvolatile semiconductor memory device
US20040103241A1 (en) * 2002-10-28 2004-05-27 Sandisk Corporation Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system
US20050273548A1 (en) * 2004-06-04 2005-12-08 Micron Technology, Inc. Memory system with user configurable density/performance option
US20070025151A1 (en) * 2005-07-28 2007-02-01 Jin-Yub Lee Flash memory device capable of storing multi-bit data and single-bit data
US20070061502A1 (en) * 2005-09-09 2007-03-15 M-Systems Flash Disk Pioneers Ltd. Flash memory storage system and method
WO2007084079A1 (en) * 2006-01-18 2007-07-26 Trek 2000 International Ltd. Portable data storage device incorporating multiple flash memory units
US20070239927A1 (en) * 2006-03-30 2007-10-11 Microsoft Corporation Describing and querying discrete regions of flash storage
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
TW200741528A (en) * 2005-09-29 2007-11-01 Trek 2000 Int Ltd Portable data storage using SLC and MLC flash memory

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100824412B1 (ko) * 2006-12-08 2008-04-22 삼성전자주식회사 메모리 카드 시스템 및 그것의 수명 정보 전송 방법

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030007384A1 (en) * 2001-07-09 2003-01-09 Mitsubishi Denki Kabushiki Kaisha Nonvolatile semiconductor memory device
US20040103241A1 (en) * 2002-10-28 2004-05-27 Sandisk Corporation Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system
US20050273548A1 (en) * 2004-06-04 2005-12-08 Micron Technology, Inc. Memory system with user configurable density/performance option
US20070025151A1 (en) * 2005-07-28 2007-02-01 Jin-Yub Lee Flash memory device capable of storing multi-bit data and single-bit data
US20070061502A1 (en) * 2005-09-09 2007-03-15 M-Systems Flash Disk Pioneers Ltd. Flash memory storage system and method
TW200741528A (en) * 2005-09-29 2007-11-01 Trek 2000 Int Ltd Portable data storage using SLC and MLC flash memory
WO2007084079A1 (en) * 2006-01-18 2007-07-26 Trek 2000 International Ltd. Portable data storage device incorporating multiple flash memory units
US20070239927A1 (en) * 2006-03-30 2007-10-11 Microsoft Corporation Describing and querying discrete regions of flash storage
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법

Also Published As

Publication number Publication date
TW200941499A (en) 2009-10-01
US20090248965A1 (en) 2009-10-01

Similar Documents

Publication Publication Date Title
TWI425523B (zh) 混合型快閃儲存裝置及其操作方法
US20180260317A1 (en) Method for managing the copying and storing of data in garbage collection, memory storage device and memory control circuit unit using the same
US8307241B2 (en) Data recovery in multi-level cell nonvolatile memory
US9009399B2 (en) Flash memory storage system and controller and data writing method thereof
US20090259896A1 (en) Bad block identifying method for flash memory, storage system, and controller thereof
US9176865B2 (en) Data writing method, memory controller, and memory storage device
US9213629B2 (en) Block management method, memory controller and memory stoarge apparatus
US9177656B2 (en) Data writing method, memory storage device and memory controlling circuit unit
TWI470431B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US9141530B2 (en) Data writing method, memory controller and memory storage device
CN107391389B (zh) 用来管理一记忆装置的方法以及记忆装置与控制器
CN109815160A (zh) 最后写入页搜索
US8074128B2 (en) Block management and replacement method, flash memory storage system and controller using the same
US20150161042A1 (en) Memory management method, memory controlling circuit unit, and memory storage device
US20130304964A1 (en) Data processing method, and memory controller and memory storage device using the same
TW201348960A (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
US20120166706A1 (en) Data management method, memory controller and embedded memory storage apparatus using the same
US20110093649A1 (en) Method for managing a plurality of blocks of a flash memory, and associated memory device and controller thereof
US20130332653A1 (en) Memory management method, and memory controller and memory storage device using the same
US8943264B2 (en) Data storing method, and memory controller and memory storage apparatus using the same
CN101266828B (zh) 混合型闪存存储装置及其操作方法
CN102902626A (zh) 区块管理方法、存储器控制器与存储器储存装置
CN103577344B (zh) 数据写入方法、存储器控制器与存储器储存装置
US20140089566A1 (en) Data storing method, and memory controller and memory storage apparatus using the same
US20090182932A1 (en) Method for managing flash memory blocks and controller using the same