TWI425515B - 資料儲存裝置及快閃記憶體之資料寫入方法 - Google Patents
資料儲存裝置及快閃記憶體之資料寫入方法 Download PDFInfo
- Publication number
- TWI425515B TWI425515B TW098144422A TW98144422A TWI425515B TW I425515 B TWI425515 B TW I425515B TW 098144422 A TW098144422 A TW 098144422A TW 98144422 A TW98144422 A TW 98144422A TW I425515 B TWI425515 B TW I425515B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- data
- write
- address
- integrated
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明係有關於記憶體,特別是有關於快閃記憶體。
第1圖為主機傳送寫入命令至一資料儲存裝置的時序圖。假設該資料儲存裝置包括一快閃記憶體以供儲存資料。當一主機欲將資料寫入至一資料儲存裝置,首先會經由輸入/輸出資料匯流排傳送第一寫入命令(0x80)至資料儲存裝置。接著,主機依序向資料儲存裝置傳送列位址及行位址,以指明資料欲存入之位址。接著主機向資料儲存裝置傳送欲寫入快閃記憶體之資料,並向資料儲存裝置傳送第二寫入命令(0x10)。當第二寫入命令傳送完畢,資料儲存裝置會將一待命/忙碌(ready/busy)導線之電位下拉,以阻止主機繼續發送後續命令或資料。依資料儲存裝置與主機間資料傳送之規格,此電位下拉時間Tprog
不可長於250ms。於待命/忙碌導線之電位下拉時間Tprog
內,資料儲存裝置一般會立即將其所接收之資料寫入快閃記憶體之寫入位址。待資料寫入完畢之後,資料儲存裝置會將待命/忙碌導線之電位上拉。主機便接著傳送一讀取狀態(read status)命令,以向資料儲存裝置詢問資料寫入是否成功。
快閃記憶體通常包括多個區塊(block),而每一區塊包括多個頁(page)以供儲存資料。通常一頁僅能夠被寫入一次資料,若要將該頁的資料更新,則必須將整個區塊的所有頁所儲存的資料一併抹除,才能再次將資料寫入該頁。因此,當資料儲存裝置欲執行寫入命令時,若主機指定的寫入位址所對應的頁之前已儲存資料,資料儲存裝置必須將新接收的更新資料寫入至一空白區塊,再建立該空白區塊與寫入位址所對應的原本區塊間之對應關係。此一對應關係稱之為區塊配對(block pair),原本區塊稱為區塊配對的母區塊(mothef block),而儲存更新資料之區塊稱為區塊配對的子區塊(child block)。
一般而言,由於維持一區塊配對需額外紀錄許多配對關係,因此資料儲存裝置必須控制區塊配對的數目,使快閃記憶體中僅儲存固定數目的區塊配對。在一般的情況下,資料儲存裝置可以於250ms的時段Tprog
內將所接收的資料寫入至快閃記憶體內。然而,當執行主機傳送的寫入命令需要新增一區塊配對時,為了使快閃記憶體中的區塊配對數目維持固定,必須於執行主機傳送的寫入命令之前,先將快閃記憶體的部份區塊配對所包含的母區塊所儲存的原始資料與子區塊所儲存的更新資料相整合為單一區塊,以便先使原本的區塊配對數目下降,接著才能執行主機傳送的寫入命令而新增區塊配對。
再者,由於每一區塊均包含許多頁以儲存資料,整合區塊配對的母區塊與子區塊之資料需耗費許多時間。尤其是當快閃記憶體為多層單元(multi-level-cell,MLC)快閃記憶體或三層單元(three-level-cell,TLC)快閃記憶體時,快閃記憶體的每一區塊所儲存的資料量龐大,而整合區塊配對的母區塊與子區塊之資料需耗費更多時間,常常無法於短短的250ms內完成,而無法達成資料儲存裝置與主機間資料傳送的規格之要求。因此,需要一種寫入資料至快閃記憶體的方法,以解決上述問題。
有鑑於此,本發明之目的在於提供一種資料儲存裝置,以解決習知技術存在之問題。於一實施例中,該資料儲存裝置包括一快閃記憶體及一控制器。該快閃記憶體包括一資料暫存區塊以及多個區塊配對。該控制器自一主機接收一寫入命令、一寫入位址、以及一寫入資料,以及當該等區塊配對之數目等於一界限值且執行該寫入命令需要增加該等區塊配對之數目時,將該寫入資料存入該資料暫存區塊並將該寫入位址存入一位址儲存表,自該等區塊配對選取一目標區塊配對以供整合,於自該主機接收多個後續寫入命令之多個間隔時間中整合該目標區塊配對之一待整合母區塊及一待整合子區塊為一整合區塊,以及依據該資料暫存區塊儲存的該寫入資料以及該位址儲存表儲存的該寫入位址執行該寫入命令。
本發明提供一種快閃記憶體之資料寫入方法。首先,自一主機接收一寫入命令,其中該寫入命令包括一寫入位址、以及一寫入資料。當該快閃記憶體所儲存之多個區塊配對之數目等於一界限值且執行該寫入命令需要新增一區塊配對時,將該寫入資料存入該快閃記憶體之一資料暫存區塊,並將該寫入位址存入一位址儲存表。接著,自該等區塊配對選取一目標區塊配對以供整合,其中該目標區塊配對包括一待整合母區塊及一待整合子區塊。接著,當自該主機接收多個後續寫入命令時,於該等後續寫入命令之多個間隔時間中整合該待整合母區塊及該待整合子區塊為一整合區塊。最後,依據該資料暫存區塊儲存的該寫入資料以及該位址儲存表儲存的該寫入位址執行該寫入命令。
為了讓本發明之上述和其他目的、特徵、和優點能更明顯易懂,下文特舉數較佳實施例,並配合所附圖示,作詳細說明如下:
第2圖為依據本發明之資料儲存裝置204之區塊圖。資料儲存裝置204耦接至一主機202,並依據主機202之指示存取資料。於一實施例中,資料儲存裝置204包括控制器212、快閃記憶體214、以及隨機存取記憶體216。快閃記憶體214包含多個區塊(block)以供儲存資料,該等區塊包括一資料暫存區塊222。快閃記憶體214尚包含多組區塊配對224。每一區塊配對包含一母區塊(mother block)及一子區塊(child block),該母區塊儲存一邏輯區塊位址之原始資料,而該子區塊儲存該邏輯區塊位址之更新資料。例如,母區塊231與對應的子區塊241為一組區塊配對,而母區塊23K與對應的子區塊24K為另一組區塊配對。隨機存取記憶體216儲存一位址儲存表220。於一實施例中,資料儲存裝置204為一記憶卡。
由於紀錄區塊配對的母區塊的各頁原始資料與子區塊的各頁更新資料之對應關係需要佔據大量的資料儲存空間,為了有效運用隨機存取記憶體216的資料儲存空間,控制器212會將快閃記憶體214內的區塊配對數目限制在一界限值N。當快閃記憶體214內的區塊配對數目K即將超過界限值N時,控制器212便會自快閃記憶體214的多組區塊配對224中選取一組目標區塊配對,然後將目標區塊配對的母區塊所儲存之原始資料與子區塊所儲存之更新資料整合後儲存入單一區塊中,然後將原本的目標區塊配對之母區塊與子區塊之資料清除。如此快閃記憶體214的區塊配對數目K便可維持在不超過界限值N。
此外,當主機202向資料儲存裝置204發送寫入命令時,若該寫入命令要求將新資料寫入快閃記憶體214的一特定區塊的一特定頁,而該特定頁已經儲存原始資料,控制器212便需將新資料寫入該特定區塊所對應的子區塊的更新頁中,並紀錄更新頁與特定頁的對應關係。若該特定區塊並不具有對應的子區塊,則控制器212需自快閃記憶體214中取得一空白區塊作為特定區塊所對應的子區塊,並紀錄特定區塊及子區塊的對應關係以新增一組區塊配對。
當執行一寫入命令會造成控制器212於快閃記憶體214中新增一組區塊配對時,而快閃記憶體214中的區塊配對數目N已達界限值K時,為了避免區塊配對之數目K超過界限值N,控制器212必須先選區一目標區塊配對進行整合以使區塊配對數目K下降,才能執行寫入命令並增加區塊配對數目,以維持區塊配對數目K不超過界限值N。然而,由於目標區塊配對的母區塊與子區塊均包括數百個頁,整合目標區塊配對的母區塊所儲存之原始資料與子區塊所儲存之更新資料需要耗費大量的時間,而此時間很可能超過資料儲存裝置與主機間資料傳送之規格所規定的250ms,如第1圖所示。此時,控制器212便將目標區塊配對的母區塊中所儲存的資料分為數個資料區段,利用資料儲存裝置204自主機202接收後續寫入命令時所間隔的250ms時間分別與目標區塊配對的子區塊中儲存的更新資料進行整合,其中每一資料區段之整合時間不超過規格所規定的250ms。於一實施例中,控制器212僅將母區塊中所儲存的資料分為前半部資料區段與後半部資料區段。如此控制器212便能將目標區塊配對的母區塊與子區塊整合完畢以維持區塊配對數目不變,又能符合主機202與資料儲存裝置204間執行寫入命令的規格要求。
第3圖為依據本發明執行主機202所發送的寫入命令的方法300之流程圖。首先,控制器212自主機202接收寫入命令、寫入位址、及資料(步驟302)。接著,控制器212檢查是否執行該寫入命令需新建一區塊配對,且快閃記憶體214所儲存的多個區塊配對之數目K已等於一界限值N(步驟304)。若區塊配對之數目K尚未達到界限值N,或執行該寫入命令不需新建一區塊配對,則控制器212可直接將資料寫入包含該寫入位址之區塊,以完成寫入命令之執行(步驟306)。若區塊配對之數目K已等於界限值N,而執行該寫入命令需新建一區塊配對,則會使區塊配對之數目K增加而超過界限值N。因此,控制器212必須於執行寫入命令前事先將一區塊配對整合以減少區塊配對之數目。
首先,控制器212將所接收之資料存入快閃記憶體214之一資料暫存區塊222,並將該寫入位址存入隨機存取記憶體216之一位址儲存表220(步驟308)。接著,控制器212自快閃記憶體214之多個區塊配對224中選取一目標區塊配對(步驟312)。假設控制器212選取的目標區塊配對為母區塊231及子區塊241,以進行整合。接著,控制器212將目標區塊配對之母區塊231所儲存的資料分為前半部資料區段與後半部資料區段(步驟314)。於一實施例中,母區塊231中位址在前半部的多個頁所儲存之資料為前半部資料區段,而母區塊231中位址在後半部的多個頁所儲存之資料為該後半部資料區段。接著,控制器212將母區塊231的前半部資料區段與子區塊241之更新資料整合,以得到一前半部整合資料(步驟316)。由於步驟316僅整合目標區塊配對之前一半資料,因此可確保控制器212可在該寫入命令所對應的250ms處理時間內完成前半部資料區段的整合。
接著,控制器212繼續自主機212接收一後續寫入命令(步驟317)。當後續寫入命令傳送完畢後,控制器212亦得到250ms的處理時間。因此,控制器212便繼續母區塊231的後半部資料區段的整合工作,並於整合工作結束後執行寫入命令。首先,控制器212將目標區塊配對之母區塊231的後半部資料區段與子區塊241之更新資料整合,以得到一後半部整合資料(步驟318)。由於步驟318僅整合目標區塊配對之後一半資料,因此可確保控制器212可在該後續寫入命令所對應的250ms處理時間內完成後半部資料區段的整合。接著,控制器212自快閃記憶體214取得一空白區塊,將前半部整合資料與後半部整合資料寫入該空白區塊,並清除目標區塊配對包含之母區塊231及子區塊241所儲存之資料(步驟320)。此時,控制器212已成功地將母區塊231及子區塊241整合為單一區塊,從而使快閃記憶體214之區塊配對數目減少一。
接著,控制器212再依據資料暫存區塊222所儲存的寫入資料以及位址儲存表220所儲存的寫入位址執行該寫入命令。首先,控制器212依據位址儲存表220中的寫入位址決定包含該寫入位址的一特定區塊(步驟322)。接著,控制器212自快閃記憶體214再取得一空白區塊作為該特定區塊之子區塊,以建立該特定區塊與該子區塊的區塊配對關係(步驟324)。接著,控制器212自資料暫存區塊222中讀取該寫入資料,自位址儲存表220中讀取該寫入位址,並依據寫入位址將寫入資料寫入至該子區塊(步驟326)。如此則控制器212已完成寫入命令之執行。最後,控制器212自位址儲存表220中刪除該寫入位址(步驟328),以表示該寫入位址對應之寫入命令已執行完畢。
第4圖為依據本發明之位址儲存表400的一實施例。假設控制器212自主機202依序接收了12筆寫入命令並將對應的寫入位址儲存入位址儲存表400。第1個寫入命令係欲寫入快閃記憶體214之區塊100的第3頁。第2個寫入命令係欲寫入快閃記憶體214之區塊100的第4頁。第3個寫入命令係欲寫入快閃記憶體214之區塊150的第6頁。第4個寫入命令係欲寫入快閃記憶體214之區塊150的第7頁。第5個寫入命令係欲寫入快閃記憶體214之區塊150的第7頁。
假設控制器212自主機202接收第9個寫入命令後,將第9個寫入命令對應的資料儲存入資料暫存區塊222,並將第9個寫入命令對應的寫入位址儲存入位址儲存表220。接著,控制器於第9個寫入命令所對應的處理時間內開始執行第1個寫入命令。假設第1個寫入命令之執行會增加區塊配對數目。因此,控制器212自快閃記憶體214的多個區塊配對挑選一目標區塊配對進行整合,以減少區塊配對數目。第5圖為快閃記憶體214的多個區塊配對之示意圖。假設快閃記憶體214共有區塊配對30、區塊配對31、區塊配對60、區塊配對82等4組區塊配對,而控制器212挑選區塊配對30作為目標區塊配對。控制器212首先將區塊配對30之母區塊的資料分為前半部資料與後半部資料,接著將前半部資料與子區塊之更新資料進行整合。
控制器212接著自主機202接收第10個寫入命令,將第10個寫入命令對應的資料儲存入資料暫存區塊222,並將第10個寫入命令對應的寫入位址儲存入位址儲存表220。接著,控制器212將區塊配對30之母區塊之後半部資料與子區塊之更新資料進行整合。接著,控制器212將前半部整合資料及後半部整合資料寫入一空白區塊作為區塊30,並清除原區塊配對30的母區塊及子區塊為空白區塊。因此快閃記憶體214之區塊配對的數目減為3對。
接著,控制器212開始執行第1個寫入命令。由第4圖可知,第1個寫入命令係要將資料寫入區塊100的第3頁,而第2個寫入命令係要將資料寫入區塊100的第4頁。由於第1個寫入命令及第2個寫入命令皆欲將資料寫入區塊100,控制器212一併執行第1個寫入命令及第2個寫入命令。首先,控制器212自快閃記憶體214取得一空白區塊作為區塊100的子區塊,因此快閃記憶體214之區塊配對的數目增為4對。接著,控制器212將第1個寫入命令及第2個寫入命令所對應的資料由資料暫存區塊222取出並寫入至區塊配對100的子區塊中,如第6圖所示。接著,控制器212將第1個寫入命令及第2個寫入命令之寫入位址由位址儲存表400中清除。
接著,控制器212自主機202接收第11個寫入命令,將第11個寫入命令對應的資料儲存入資料暫存區塊222,並將第11個寫入命令對應的寫入位址儲存入位址儲存表220。接著,控制器212於第11個寫入命令所對應的處理時間內開始執行第3個寫入命令。假設第3個寫入命令之執行會增加區塊配對數目。因此,控制器212自快閃記憶體214的多個區塊配對挑選一目標區塊配對進行整合,以減少區塊配對數目。假設控制器212挑選區塊配對31作為目標區塊配對。控制器212首先將區塊配對31之母區塊的資料分為前半部資料與後半部資料,接著將前半部資料與子區塊之更新資料進行整合。
控制器212接著自主機202接收第12個寫入命令,將第12個寫入命令對應的資料儲存入資料暫存區塊222,並將第12個寫入命令對應的寫入位址儲存入位址儲存表220。接著,控制器212將區塊配對31之母區塊之後半部資料與子區塊之更新資料進行整合。接著,控制器212將前半部整合資料及後半部整合資料寫入一空白區塊作為區塊31,並清除原區塊配對31的母區塊及子區塊為空白區塊。因此快閃記憶體214之區塊配對的數目再減為3對。
接著,控制器212開始執行第3個寫入命令。由第4圖可知,第3個寫入命令係要將資料寫入區塊150的第6頁,而第4個寫入命令及第5個寫入命令係要將資料寫入區塊150的第7頁。由於第3個寫入命令、第4個寫入命令、及第5個寫入命令皆欲將資料寫入區塊150,控制器212一併執行第3個寫入命令、第4個寫入命令、及第5個寫入命令。首先,控制器212自快閃記憶體214取得一空白區塊作為區塊150的子區塊,因此快閃記憶體214之區塊配對的數目增為4對。接著,控制器212將第3個寫入命令及第5個寫入命令所對應的資料由資料暫存區塊222取出並寫入至區塊配對150的子區塊中,如第6圖所示。接著,控制器212將第3個寫入命令、第4個寫入命令、及第5個寫入命令之寫入位址由位址儲存表400中清除。
依據第3圖之方法300,控制器212於接收一寫入命令後的250ms處理時間內將目標區塊配對之母區塊的前半部資料與子區塊之更新資料整合為一前半部整合資料(步驟316),於接收一後續寫入命令後的250ms處理時間內將目標區塊配對之母區塊的後半部資料與子區塊之更新資料整合為一後半部整合資料(步驟318),再將前半部整合資料與後半部整合資料寫入一空白區塊(步驟320),而完成目標區塊配對之母區塊與子區塊的整合。然而,當步驟316與318分別產生前半部整合資料與後半部整合資料時,前半部整合資料與後半部整合資料係儲存於隨機存取記憶體216中,佔據控制器212可使用的儲存空間。於另一實施例中,控制器212亦可直接將所產生的前半部整合資料與後半部整合資料直接寫入空白區塊,以節省隨機存取記憶體216中的儲存空間。第7圖為依據本發明執行主機202所發送的寫入命令的另一方法700之流程圖。方法700中除了步驟715、716、718、720外,其餘步驟均與第3圖的方法300相同,因此此處僅就該等差異步驟進行說明。於步驟715中,控制器212首先選取一空白區塊作為對應於目標區塊配對之一更新區塊。接著,控制器212將母區塊的前半部資料與子區塊之更新資料整合以得到一前半部整合資料,並將前半部整合資料寫入更新區塊(步驟716)。接著,控制器212接收一後續寫入命令(步驟717)。接著,控制器212將目標區塊配對之母區塊的後半部資料與子區塊之更新資料整合以得到一後半部整合資料,並將後半部整合資料寫入更新區塊(步驟718)。如此則目標區塊配對之母區塊與子區塊的資料均已整合完畢並儲存於更新區塊中。因此,控制器212於步驟720清除目標區塊配對之母區塊及子區塊。第7圖的方法700可較第3圖的方法300節省較多的資料儲存空間。
第8圖為對應於第7圖之方法700的整合快閃記憶體214的多個區塊配對之示意圖。假設快閃記憶體214共有區塊配對30、區塊配對31、區塊配對60、區塊配對82等4組區塊配對,而控制器212挑選區塊配對30作為目標區塊配對以進行整合。控制器212首先自主機202接收第一寫入命令,並於第一寫入命令的處理時間250ms內將區塊配對30之母區塊的前半部資料與子區塊之更新資料進行整合以得到前半部整合資料8A,並將前半部整合資料8A寫入區塊配對30之更新區塊的前半部。接著,控制器212自主機202接收第二寫入命令,並於第二寫入命令的處理時間250ms內將區塊配對30之母區塊的後半部資料與子區塊之更新資料進行整合以得到後半部整合資料8B,並將後半部整合資料8B寫入區塊配對30之更新區塊的後半部,從而完成區塊配對30之資料整合。接著,控制器212便可將區塊配對30的母區塊與子區塊的資料清除。
同樣的,假設控制器212更接著挑選區塊配對31作為目標區塊配對以進行整合。控制器212首先自主機202接收第三寫入命令,並於第三寫入命令的處理時間250ms內將區塊配對31之母區塊的前半部資料與子區塊之更新資料進行整合以得到前半部整合資料8C,並將前半部整合資料8C寫入區塊配對31之更新區塊的前半部。接著,控制器212自主機202接收第四寫入命令,並於第四寫入命令的處理時間250ms內將區塊配對31之母區塊的後半部資料與子區塊之更新資料進行整合以得到後半部整合資料8D,並將後半部整合資料8D寫入區塊配對31之更新區塊的後半部,從而完成區塊配對31之資料整合。接著,控制器212便可將區塊配對31的母區塊與子區塊的資料清除。
第9A圖為依據本發明之位址儲存表902之實施例的示意圖。隨機存取記憶體216中儲存位址儲存表902,以供控制器212於步驟308中儲存自主機202所接收的資料寫入位址。於一實施例中,該資料寫入位址包括區塊序號及頁序號。位址儲存表902具有一儲存表指標以指示位址儲存表902中最後儲存的資料寫入位址。於一實施例中,隨機存取記憶體216中更儲存一位址清理表904。當控制器212欲開始整合區塊配對以減少塊配對之數目時,控制器212會將位址儲存表902中所儲存的多個資料寫入位址轉儲存至位址清理表904中,如第9B圖所示。位址清理表904具有一清理表指標以指示位址清理表904中開始清理的資料寫入位址。控制器212便可於步驟322依次選取清理表指標所指向的資料寫入位址所對應的區塊作為特定區塊,以新增區塊配對。而當位址儲存表902中所儲存的多個資料寫入位址轉儲存至位址清理表904後,位址儲存表902的資料被清除,便可再儲存後續自主機所接收的資料寫入位址。
由於位址儲存表儲存於隨機存取記憶體216中,資料儲存裝置204的系統設計者必須估計位址儲存表所占用之隨機存取記憶體216的最大儲存空間。首先說明的是,本發明的實施例雖然均以兩次接收寫入命令的處理時間(250ms)完成一個區塊配對的資料整合工作,但當快閃記憶體214之一區塊所包含的頁數增多時,控制器212可能需要三次以上的接收寫入命令的處理時間(250ms)才能完成一個區塊配對的資料整合工作。假設快閃記憶體214包含有K個區塊,而控制器212需要N次的接收寫入命令的處理時間(250ms)才能完成一個區塊配對的資料整合工作,且位址儲存表220中儲存一筆資料寫入位址的資料大小為M位元組,則在最極端的狀況下,位址儲存表220最多需佔據隨機存取記憶體216中(N×K×M)位元組的儲存空間。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟習此項技術者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
202...主機
204...資料儲存裝置
212...控制器
214...快閃記憶體
216...隨機存取記憶體
220...位址儲存表
222...資料暫存區塊
224...區塊配對
231、232、…、23K、241、242、…、24K...區塊
30、31、60、82...區塊配對
100、150、60、82...區塊配對
30、31、60、82...區塊配對
第1圖為主機傳送寫入命令至一資料儲存裝置的時序圖;
第2圖為依據本發明之資料儲存裝置之區塊圖;
第3圖為依據本發明執行主機所發送的寫入命令的方法之流程圖;
第4圖為依據本發明之位址儲存表的一實施例;
第5圖為快閃記憶體的多個區塊配對之示意圖;
第6圖為快閃記憶體的多個區塊配對經依第3圖之方法處理後之示意圖;
第7圖為依據本發明執行主機所發送的寫入命令的另一方法之流程圖;
第8圖為對應於第7圖之方法的整合快閃記憶體的多個區塊配對之示意圖;
第9A圖為依據本發明之位址儲存表之實施例的示意圖;以及
第9B圖為依據本發明之位址儲存表及位址清理表之實施例的示意圖。
Claims (17)
- 一種快閃記憶體之資料寫入方法,包括:自一主機接收一寫入命令,其中該寫入命令包括一寫入位址、以及一寫入資料;當該快閃記憶體所儲存之多個區塊配對(block pair)之數目等於一界限值且執行該寫入命令需要增加該等區塊配對之數目時,將該寫入資料存入該快閃記憶體之一資料暫存區塊,並將該寫入位址存入一位址儲存表;自該等區塊配對選取一目標區塊配對以供整合,其中該目標區塊配對包括一待整合母區塊及一待整合子區塊;當自該主機接收多個後續寫入命令時,於該等後續寫入命令之多個間隔時間中整合該待整合母區塊及該待整合子區塊為一整合區塊;以及依據該資料暫存區塊儲存的該寫入資料以及該位址儲存表儲存的該寫入位址執行該寫入命令。
- 如申請專利範圍第1項所述之快閃記憶體之資料寫入方法,其中該待整合母區塊及該待整合子區塊之整合包括下列步驟:將該待整合母區塊所儲存之資料區分為多個資料區段;於每一該等間隔時間中整合該資料區段其中之一及該待整合子區塊儲存之更新資料為一區段整合資料;合併該等區段整合資料以寫入一空白區塊,以作為該整合區塊;以及清除該待整合母區塊及該待整合子區塊中所儲存之資料。
- 如申請專利範圍第2項所述之快閃記憶體之資料寫入方法,其中該待整合母區塊包括多個頁,該等資料區段包括一前半部資料區段及一後半部資料區段,其中位址在前半部的該等多個頁所儲存之資料為該前半部資料區段,而位址在後半部的該等多個頁所儲存之資料為該後半部資料區段。
- 如申請專利範圍第1項所述之快閃記憶體之資料寫入方法,其中該方法更包括:當該等區塊配對之數目小於該界限值,依據該寫入命令將該寫入資料寫入該寫入位址;以及當該等區塊配對之數目等於該界限值,且執行該寫入命令不需要新增一區塊配對時,依據該寫入命令將該寫入資料寫入該寫入位址。
- 如申請專利範圍第1項所述之快閃記憶體之資料寫入方法,其中每一該等區塊配對包括一母區塊及一子區塊,該母區塊儲存一邏輯區塊位址之原始資料,且該子區塊儲存該邏輯區塊位址之更新資料。
- 如申請專利範圍第1項所述之快閃記憶體之資料寫入方法,其中該寫入命令之執行包括下列步驟:依據該位址儲存表儲存的該寫入位址決定對應於該寫入位址的一特定區塊;取得一空白區塊並建立該特定區塊與該空白區塊之區塊配對關係;依據該寫入位址將該資料暫存區塊所儲存之該寫入資料寫入該空白區塊;以及自該位址儲存表刪除該寫入位址。
- 如申請專利範圍第6項所述之快閃記憶體之資料寫入方法,其中該寫入命令之執行更包括:自該位址儲存表搜尋對應於該特定區塊該的至少一第二寫入位址;自該資料暫存區塊讀取對應於該其他寫入位址的至少一第二寫入資料;依據該第二寫入位址將該第二寫入資料寫入該空白區塊;以及自該位址儲存表刪除該第二寫入位址。
- 如申請專利範圍第1項所述之快閃記憶體之資料寫入方法,其中該位址儲存表係儲存於一隨機存取記憶體中。
- 一種資料儲存裝置,耦接至一主機,包括:一快閃記憶體,包括一資料暫存區塊以及多個區塊配對(block pair);以及一控制器,自該主機接收一寫入命令、一寫入位址、以及一寫入資料,以及當該等區塊配對之數目等於一界限值且執行該寫入命令需要增加該等區塊配對之數目時,將該寫入資料存入該資料暫存區塊並將該寫入位址存入一位址儲存表,自該等區塊配對選取一目標區塊配對以供整合,於自該主機接收多個後續寫入命令之多個間隔時間中整合該目標區塊配對之一待整合母區塊及一待整合子區塊為一整合區塊,以及依據該資料暫存區塊儲存的該寫入資料以及該位址儲存表儲存的該寫入位址執行該寫入命令。
- 如申請專利範圍第9項所述之資料儲存裝置,其中該控制器將該待整合母區塊所儲存之資料區分為多個資料區段,於每一該等間隔時間中整合該資料區段其中之一及該待整合子區塊儲存之更新資料為一區段整合資料,合併該等區段整合資料供寫入一空白區塊以作為該整合區塊,以及清除該待整合母區塊及該待整合子區塊中所儲存之資料,以整合該目標區塊配對。
- 如申請專利範圍第10項所述之資料儲存裝置,其中該待整合母區塊包括多個頁,該等資料區段包括一前半部資料區段及一後半部資料區段,其中位址在前半部的該等多個頁所儲存之資料為該前半部資料區段,而位址在後半部的該等多個頁所儲存之資料為該後半部資料區段。
- 如申請專利範圍第9項所述之資料儲存裝置,其中當該等區塊配對之數目小於該界限值時,該控制器依據該寫入命令將該寫入資料寫入該寫入位址,以及當該等區塊配對之數目等於該界限值且執行該寫入命令不需要新增一區塊配對時,該控制器依據該寫入命令將該寫入資料寫入該寫入位址。
- 如申請專利範圍第9項所述之資料儲存裝置,其中每一該等區塊配對包括一母區塊及一子區塊,該母區塊儲存一邏輯區塊位址之原始資料,且該子區塊儲存該邏輯區塊位址之更新資料。
- 如申請專利範圍第9項所述之資料儲存裝置,其中該控制器依據該位址儲存表儲存的該寫入位址決定對應於該寫入位址的一特定區塊,取得一空白區塊並建立該特定區塊與該空白區塊之區塊配對關係,依據該寫入位址將該資料暫存區塊所儲存之該寫入資料寫入該空白區塊,以及自該位址儲存表刪除該寫入位址,以執行該寫入命令。
- 如申請專利範圍第14項所述之資料儲存裝置,其中該控制器更自該位址儲存表搜尋對應於該特定區塊該的至少一第二寫入位址,自該資料暫存區塊讀取對應於該其他寫入位址的至少一第二寫入資料,依據該第二寫入位址將該第二寫入資料寫入該空白區塊,以及自該位址儲存表刪除該第二寫入位址,以執行該寫入命令。
- 如申請專利範圍第9項所述之資料儲存裝置,其中該資料儲存裝置更包括一隨機存取記憶體,以儲存該位址儲存表。
- 如申請專利範圍第9項所述之資料儲存裝置,其中該資料儲存裝置為一記憶卡。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098144422A TWI425515B (zh) | 2009-12-23 | 2009-12-23 | 資料儲存裝置及快閃記憶體之資料寫入方法 |
US12/783,661 US8271721B2 (en) | 2009-12-23 | 2010-05-20 | Data writing method and data storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098144422A TWI425515B (zh) | 2009-12-23 | 2009-12-23 | 資料儲存裝置及快閃記憶體之資料寫入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201123190A TW201123190A (en) | 2011-07-01 |
TWI425515B true TWI425515B (zh) | 2014-02-01 |
Family
ID=44152740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098144422A TWI425515B (zh) | 2009-12-23 | 2009-12-23 | 資料儲存裝置及快閃記憶體之資料寫入方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8271721B2 (zh) |
TW (1) | TWI425515B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI561985B (en) * | 2015-10-22 | 2016-12-11 | Silicon Motion Inc | Data storage device and data maintenance method thereof |
TWI585769B (zh) * | 2015-10-23 | 2017-06-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體之偵測方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015076052A (ja) * | 2013-10-11 | 2015-04-20 | 富士通株式会社 | データ書き込み装置、データ書き込みプログラム、及びデータ書き込み方法 |
CN105468471A (zh) * | 2014-09-12 | 2016-04-06 | 光宝科技股份有限公司 | 固态存储装置及其错误更正方法 |
TWI514251B (zh) * | 2014-10-09 | 2015-12-21 | Realtek Semiconductor Corp | 資料配置方法與裝置 |
US9401226B1 (en) * | 2015-09-14 | 2016-07-26 | Qualcomm Incorporated | MRAM initialization devices and methods |
KR20190120573A (ko) * | 2018-04-16 | 2019-10-24 | 에스케이하이닉스 주식회사 | 메모리 시스템, 데이터 처리 시스템 및 메모리 시스템의 동작 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930167A (en) * | 1997-07-30 | 1999-07-27 | Sandisk Corporation | Multi-state non-volatile flash memory capable of being its own two state write cache |
US20080307164A1 (en) * | 2007-06-08 | 2008-12-11 | Sinclair Alan W | Method And System For Memory Block Flushing |
US20090201733A1 (en) * | 2008-02-11 | 2009-08-13 | Samsung Electronics Co., Ltd. | Flash memory device |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI415128B (zh) * | 2009-08-03 | 2013-11-11 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統 |
-
2009
- 2009-12-23 TW TW098144422A patent/TWI425515B/zh active
-
2010
- 2010-05-20 US US12/783,661 patent/US8271721B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930167A (en) * | 1997-07-30 | 1999-07-27 | Sandisk Corporation | Multi-state non-volatile flash memory capable of being its own two state write cache |
US20080307164A1 (en) * | 2007-06-08 | 2008-12-11 | Sinclair Alan W | Method And System For Memory Block Flushing |
US20090201733A1 (en) * | 2008-02-11 | 2009-08-13 | Samsung Electronics Co., Ltd. | Flash memory device |
Non-Patent Citations (1)
Title |
---|
Chang et al., Real-Time Garbage Collection for Flash-Memory Storage Systems of Real-Time Embedded Systems ,ACM, ACM transactions on Embedded Computing Systems, vol. 3, No. 4, Nov. 2004. * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI561985B (en) * | 2015-10-22 | 2016-12-11 | Silicon Motion Inc | Data storage device and data maintenance method thereof |
US10013210B2 (en) | 2015-10-22 | 2018-07-03 | Silicon Motion, Inc. | Data storage device and data maintenance method thereof |
TWI585769B (zh) * | 2015-10-23 | 2017-06-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體之偵測方法 |
US9990996B2 (en) | 2015-10-23 | 2018-06-05 | Silicon Motion, Inc. | Flash memory data storage device and programming method thereof |
US10002673B2 (en) | 2015-10-23 | 2018-06-19 | Silicon Motion, Inc. | Flash memory data storage device and programming method thereof |
Also Published As
Publication number | Publication date |
---|---|
TW201123190A (en) | 2011-07-01 |
US8271721B2 (en) | 2012-09-18 |
US20110153918A1 (en) | 2011-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI425515B (zh) | 資料儲存裝置及快閃記憶體之資料寫入方法 | |
JP5002201B2 (ja) | メモリシステム | |
US8996791B2 (en) | Flash memory device, memory control device, memory control method, and storage system | |
DE102011086098B4 (de) | Parallele Speicherlese- und Speicherschreib-Operationen in einem Speicher mit serieller Schnittstelle | |
DE102019116520A1 (de) | Datenspeichersysteme und -verfahren für eine verbesserte datenumlagerung basierend auf lesepegelspannungen, die mit einer fehlerwiederherstellung verbunden sind | |
US8219764B2 (en) | System and apparatus for enhancing data storage efficiency of a flash memory by reducing time for reorganizing data | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
TWI515737B (zh) | 資料儲存裝置以及其資料抹除方法 | |
DE102013016993A1 (de) | Embedded Multimedia Card (eMMC), einen Host steuernde eMMC und Verfahren zum Betreiben eines eMMC-Systems | |
TW201111986A (en) | Memory apparatus and data access method for memories | |
CN104298606A (zh) | 固态存储装置中垃圾搜集动作的控制方法 | |
TWI614605B (zh) | 資料儲存裝置及其資料維護方法 | |
CN105528299A (zh) | 读取命令排程方法以及使用该方法的装置 | |
DE102007031271A1 (de) | Steuerprotokoll und Signalisierung in einer neuen Speicherarchitektur | |
US20170139600A1 (en) | Data storage device and data maintenance method thereof | |
TW201631592A (zh) | 讀取快閃記憶體中儲存單元資料的方法以及使用該方法的裝置 | |
TW202242664A (zh) | 以局部清理操作來進行垃圾回收的方法與相關控制器和儲存系統 | |
TWI514136B (zh) | 快閃記憶裝置及其資料寫入方法 | |
TW201633134A (zh) | 實體儲存對照表維護方法以及使用該方法的裝置 | |
CN106527962B (zh) | 内部数据搬移方法以及使用该方法的装置 | |
TWI417889B (zh) | 快閃記憶體之寫入逾時控制方法及其記憶裝置 | |
TWI431626B (zh) | 資料儲存裝置及整合快閃記憶體之區塊配對的方法 | |
DE102019133027A1 (de) | Datenspeichersysteme und -verfahren für selbstadaptive chipfreigabeeinrichtungszeit | |
TWI661352B (zh) | 資料儲存裝置及其資料寫入方法 | |
TWI407305B (zh) | 快閃記憶體之資料存取方法以及快閃記憶體裝置 |