TWI437569B - 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 - Google Patents
用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 Download PDFInfo
- Publication number
- TWI437569B TWI437569B TW098135100A TW98135100A TWI437569B TW I437569 B TWI437569 B TW I437569B TW 098135100 A TW098135100 A TW 098135100A TW 98135100 A TW98135100 A TW 98135100A TW I437569 B TWI437569 B TW I437569B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- data
- logical
- page
- address
- 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/7201—Logical to physical mapping or translation of blocks or pages
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)
- Memory System (AREA)
Description
本發明係有關於快閃記憶體(Flash Memory)之存取(Access),尤指一種用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器。
近年來由於快閃記憶體的技術不斷地發展,各種可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡)被廣泛地實施於諸多應用中。因此,這些可攜式記憶裝置中之快閃記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其主要可區分為單階細胞(Single Level Cell,SLC)與多階細胞(Multiple Level Cell,MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每個被當作記憶單元的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。另外,多階細胞快閃記憶體中之每個被當作記憶單元的電晶體的儲存能力則被充分利用,係採用較高的電壓來驅動,以透過不同級別的電壓在一個電晶體中記錄兩組位元資訊(例如:00、01、11、10);理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之兩倍以上,這對於曾經在發展過程中遇到瓶頸的NAND型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之可攜式記憶裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。因此,習知技術因應這些問題提出了一些解決方案。然而,有些解決方案可能導致一些副作用;例如:記憶體耐用度(endurance)降低、效能不佳、讀取/寫入速度變慢、容易發生讀取/寫入錯誤等,還會導致某些種類的可攜式記憶裝置(例如:符合SD標準之記憶卡)在實作上發生困難。因此,需要一種新穎的方法來加強控管快閃記憶體之資料存取,以增進可攜式記憶裝置之整體效能。
因此,本發明之目的之一在於提供一種用來管理一快閃記憶體(Flash Memory)的複數個區塊之方法以及相關之記憶裝置及其控制器,以達到可攜式記憶裝置之最佳整體效能。
本發明之較佳實施例中提供一種用來管理一快閃記憶體的複數個區塊之方法,該方法包含有:於該快閃記憶體中提供至少一邏輯實體區塊鏈結表(Logical-to-Physical Block Linking Table),其中針對複數個邏輯區塊位址,該邏輯實體區塊鏈結表最初儲存有落於該快閃記憶體之各個實體區塊位址的範圍之外之至少一初始值,以避免該些邏輯區塊位址最初鏈結至該些實體區塊位址;以及當有需要將屬於一邏輯區塊位址之資料寫入該快閃記憶體時,將該些實體區塊位址中之一實體區塊位址寫入該邏輯實體區塊鏈結表之更新版本,以將該邏輯區塊位址鏈結至該實體區塊位址。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置,其包含有:一快閃記憶體,該快閃記憶體包含複數個區塊且儲存有至少一邏輯實體區塊鏈結表,其中針對複數個邏輯區塊位址,該邏輯實體區塊鏈結表最初儲存有落於該快閃記憶體之各個實體區塊位址的範圍之外之至少一初始值,以避免該些邏輯區塊位址最初鏈結至該些實體區塊位址;以及一控制器,用來存取(Access)該快閃記憶體以及管理該些區塊,其中當有需要將屬於一邏輯區塊位址之資料寫入該快閃記憶體時,該控制器將該些實體區塊位址中之一實體區塊位址寫入該邏輯實體區塊鏈結表之更新版本,以將該邏輯區塊位址鏈結至該實體區塊位址。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置之控制器,該控制器係用來存取一快閃記憶體,該快閃記憶體包含複數個區塊,該控制器包含有:一唯讀記憶體(Read Only Memory,ROM),用來儲存一程式碼;以及一微處理器,用來執行該程式碼以控制對該快閃記憶體之存取以及管理該些區塊:其中該快閃記憶體儲存有至少一邏輯實體區塊鏈結表,而針對複數個邏輯區塊位址,該邏輯實體區塊鏈結表最初儲存有落於該快閃記憶體之各個實體區塊位址的範圍之外之至少一初始值,以避免該些邏輯區塊位址最初鏈結至該些實體區塊位址;以及當有需要將屬於一邏輯區塊位址之資料寫入該快閃記憶體時,透過該微處理器執行該程式碼之該控制器將該些實體區塊位址中之一實體區塊位址寫入該邏輯實體區塊鏈結表之更新版本,以將該邏輯區塊位址鏈結至該實體區塊位址。
請參考第1圖,第1圖為依據本發明一第一實施例之一種記憶裝置100的示意圖,其中本實施例之記憶裝置100尤其係為可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡)。記憶裝置100包含有:一快閃記憶體(Flash Memory)120;以及一控制器,用來存取(Access)快閃記憶體120,其中該控制器例如一記憶體控制器110。依據本實施例,記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。唯讀記憶體係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對快閃記憶體120之存取。請注意到,程式碼112C亦得儲存在緩衝記憶體116或任何形式之記憶體內。在此,快閃記憶體120可包含至少一快閃記憶體晶片(即一個或多個快閃記憶體晶片)。
於典型狀況下,快閃記憶體120包含複數個區塊(Block),而該控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)對快閃記憶體120進行抹除資料之運作係以區塊為單位來進行抹除。另外,一區塊可記錄特定數量的頁(Page),其中該控制器對快閃記憶體120進行寫入資料之運作係以頁為單位來進行寫入。
實作上,透過微處理器112執行程式碼112C之記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制快閃記憶體120之存取運作(尤其是對至少一區塊或至少一頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)溝通。該主裝置例如:使用者所擁有的個人電腦。
依據本實施例,除了能存取快閃記憶體120,該控制器還能妥善地管理該複數個區塊。更明確而言,快閃記憶體120儲存有至少一邏輯實體區塊鏈結表(Logical-to-Physical Block Linking Table),其中針對複數個邏輯區塊位址,該邏輯實體區塊鏈結表最初儲存有落於快閃記憶體120之各個實體區塊位址的範圍之外之至少一初始值,以避免該些邏輯區塊位址最初鏈結至該些實體區塊位址。當有需要將屬於一邏輯區塊位址之資料寫入快閃記憶體120時,該控制器可將該些實體區塊位址中之一實體區塊位址寫入該邏輯實體區塊鏈結表之更新版本,以將該邏輯區塊位址鏈結至該實體區塊位址。相關細節可參考第2圖來進一步說明。
第2圖為依據本發明一實施例之一種用來管理一快閃記憶體的複數個區塊之方法910的流程圖。該方法可應用於第1圖所示之記憶裝置100,尤其是上述之控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)。另外,該方法可藉由利用第1圖所示之記憶裝置100來實施,尤其是藉由利用上述之控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)來實施。該方法說明如下:
於步驟912中,於快閃記憶體120中提供至少一邏輯實體區塊鏈結表,其中針對複數個邏輯區塊位址,該邏輯實體區塊鏈結表最初儲存有落於快閃記憶體120之各個實體區塊位址的範圍之外之至少一初始值,以避免該些邏輯區塊位址最初鏈結至該些實體區塊位址。於本實施例中,上述之至少一初始值包含單一初始值;也就是說,針對複數個邏輯區塊位址,該邏輯實體區塊鏈結表最初於各個欄位均儲存相同的初始值。例如:在數值0xFFFF落於快閃記憶體120之各個實體區塊位址的範圍之外的狀況下,上述之初始值可為數值0xFFFF。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之一變化例,上述之至少一初始值包含複數個初始值。尤其是於本變化例中,針對複數個邏輯區塊位址,該邏輯實體區塊鏈結表最初於各個欄位可分別儲存落於該些實體區塊位址的範圍之外之不盡相同的初始值,以避免該些邏輯區塊位址最初鏈結至該些實體區塊位址。
於步驟914中,當有需要將屬於一邏輯區塊位址之資料寫入快閃記憶體120時,上述之控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)將該些實體區塊位址中之一實體區塊位址寫入該邏輯實體區塊鏈結表之更新版本,以將該邏輯區塊位址鏈結至該實體區塊位址。例如:該控制器可先將該實體區塊位址寫入該邏輯實體區塊鏈結表於緩衝記憶體116中之更新版本;當有必要時,該控制器可將該更新版本回存(Restore)至快閃記憶體120。又例如:該控制器可直接將該實體區塊位址寫入該邏輯實體區塊鏈結表於快閃記憶體120中之更新版本。
於本實施例中,該些區塊當中凡是實體區塊位址未被寫入該邏輯實體區塊鏈結表之最新版本之區塊均為備用區塊(Spare Block)。如此,在執行步驟914之前,快閃記憶體120中之區塊最初可全部為備用區塊。由於記憶裝置100在任何時候均擁有最大可能數量的備用區塊可隨意取用,故本發明可藉由利用大量的備用區塊來提供極大的彈性予記憶裝置100,以達到可攜式記憶裝置之最佳整體效能。
另外,該些區塊當中凡是實體區塊位址被寫入該邏輯實體區塊鏈結表之最新版本之區塊均為資料區塊(Data Block)。請注意,步驟914可依需要而執行多次,故隨著步驟914之運作的進行,該控制器將一部分備用區塊取用為新的資料區塊。例如:步驟914所述之該實體區塊位址代表一資料區塊。
依據本實施例,該控制器可先將一個新的資料區塊(例如步驟914所述之該實體區塊位址所代表之資料區塊)分類為一子區塊,以將屬於該邏輯區塊位址之至少一部分邏輯頁之資料寫入該資料區塊中相對應的實體頁。在此狀況下,於某(些)資料存取運作期間或之後,該控制器可依據至少一判定標準(Criterion)判斷該資料區塊之資料是否不夠連續;當判斷該資料區塊之資料不夠連續時,則該控制器可將該資料區塊分類為一檔案配置表區塊(File Allocation Table Block,FAT Block),以將至少一邏輯頁之資料寫入該資料區塊並且將相對應的頁鏈結表寫入快閃記憶體120。由於該檔案配置表區塊採用頁鏈結表,故針對該資料區塊之隨機資料存取,該控制器藉由動態地將該檔案配置表區塊的運作改成該子區塊的運作,即可使記憶裝置100具備最大的彈性。
於本實施例中,上述之至少一判定標準包含第一、第二、與第三判定標準;該些判定標準可不必有特定的檢查順序。該第一判定標準說明如下。當欲予以寫入該資料區塊之一頁的頁位址以及前一次寫入該資料區塊之一頁的頁位址之間的差值達到一預定值時,則該控制器判斷該資料區塊之資料不夠連續。依據本實施例之不同的實施選擇,該差值可為邏輯頁位址之間的差值,或是實體頁位址之間的差值。另外,該預定值代表一區塊的總頁數乘以某個比例參數而得之乘積。尤其是,該比例參數可透過試誤性實驗或理論計算而預先取得。例如:在該比例參數為1/4的狀況下,該預定值代表該總頁數之1/4。
該第二判定標準說明如下。當欲予以首先寫入該資料區塊之一邏輯頁並非該邏輯頁所屬之邏輯區塊之開始處時,則該控制器判斷該資料區塊之資料不夠連續。也就是說,只要予以首先寫入該資料區塊之邏輯頁不是這個邏輯區塊之第一個邏輯頁時,即滿足該第二判定標準,則該控制器判斷該資料區塊之資料不夠連續。
該第三判定標準說明如下。當欲予以寫入該資料區塊之一頁的頁位址等於先前寫入該資料區塊之一頁的頁位址時,則該控制器判斷該資料區塊之資料不夠連續。也就是說,只要該控制器偵測到即將在該資料區塊中重複地寫入同一頁時,即滿足該第三判定標準,則該控制器判斷該資料區塊之資料不夠連續。
依據本實施例,透過該控制器對該資料區塊之重新分類,不但子區塊可轉變為檔案配置表區塊,而且檔案配置表區塊亦可轉變為子區塊。例如:當欲予以寫入該資料區塊之複數個連續邏輯頁之頁數達到一區塊的總頁數之一預定比例、且該些連續邏輯頁之開始處係為該些連續邏輯頁所屬之邏輯區塊之開始處、以及該資料區塊中待寫入之部分均為空白頁時,則該控制器將該資料區塊分類為一子區塊,以將該些連續邏輯頁之資料寫入該資料區塊中相對應的實體頁。
另外,備用區塊的數量可能會隨著資料區塊的數量之增加而減少。此狀況下,該控制器可將多個資料區塊的有效頁合併(Merge)到一新的資料區塊,並且抹除這些舊的資料區塊(其有效頁已被取用於此合併運作)以使這些舊的資料區塊成為新的備用區塊。例如:該控制器可將複數個檔案配置表區塊的有效頁合併到一新的資料區塊,並且抹除該複數個檔案配置表區塊以使其成為新的備用區塊。因此,該控制器可保持相當充足的備用區塊,以達到可攜式記憶裝置之最佳整體效能。
如前面所述,該控制器可先將一個新的資料區塊(例如步驟914所述之該實體區塊位址所代表之資料區塊)分類為子區塊;尤其是,該控制器可依據某(些)預設值將每一個新的資料區塊均分類為子區塊。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之一變化例,該控制器可依據至少一判定標準,決定是否先將一個新的資料區塊(例如步驟914所述之該實體區塊位址所代表之資料區塊)分類為檔案配置表區塊。尤其是於本變化例中,該控制器可依據至少一判定標準(例如:上述之該第二判定標準)判斷該資料區塊之資料是否不夠連續;當判斷該資料區塊之資料不夠連續時,則該控制器將該資料區塊分類為檔案配置表區塊,以將至少一邏輯頁之資料寫入該資料區塊並且將相對應的頁鏈結表寫入快閃記憶體120。相仿地,透過該控制器對該資料區塊之重新分類,不但檔案配置表區塊可轉變為子區塊,而且子區塊亦可轉變為檔案配置表區塊。本變化例與前述實施例/變化例相仿之處不再詳細地重複贅述。
第3圖為第2圖所示之方法於一實施例中所涉及之邏輯實體區塊鏈結表310的示意圖。針對該些邏輯區塊位址諸如第3圖所示之邏輯區塊位址LB(0)、LB(1)、LB(2)、...、與LB(N),上述之控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)可分別將該至少一初始值寫入邏輯實體區塊鏈結表310之各個欄位;此運作可簡稱為初始值寫入運作。於本實施例中,在數值0xFFFF落於快閃記憶體120之各個實體區塊位址的範圍之外的狀況下,上述之初始值可為數值0xFFFF。
實作上,該控制器可在一設定裝置之控制下,來進行該初始值寫入運作。例如:該設定裝置可為執行一設定程式之一特定主裝置,而該設定程式具有該初始值寫入運作之相關控制功能,其中該特定主裝置可為記憶裝置100之製造商所設置的個人電腦。尤其是,該初始值寫入運作可於記憶裝置100被組裝完成時進行。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之一變化例,記憶裝置100之製造商可提供一修復程式予使用者,而該修復程式具有該初始值寫入運作之相關控制功能,其中使用者可利用該主裝置(例如:使用者的個人電腦)執行該修復程式。於是,在執行該修復程式之該主裝置的控制下,該控制器進行該初始值寫入運作,以避免自執行該修復程式之後邏輯區塊位址LB(0)、LB(1)、LB(2)、...、與LB(N)最初鏈結至該些實體區塊位址。
依據本實施例之另一變化例,該初始值寫入運作可於記憶裝置100之一重設(Reset)程序之控制下來進行。尤其是於本變化例中,使用者可藉由利用記憶裝置100之一重設開關(未顯示)來觸發該重設程序,使該控制器進行該初始值寫入運作,以避免自該重設程序之後邏輯區塊位址LB(0)、LB(1)、LB(2)、...、與LB(N)最初鏈結至該些實體區塊位址。
第4圖繪示第3圖所示之邏輯實體區塊鏈結表310於開始被寫入實體區塊位址之後之更新版本310-1的示意圖。實作上,更新版本310-1可暫時地儲存於緩衝記憶體116;當有必要時,該控制器可將更新版本310-1回存至快閃記憶體120。於本實施例中,在步驟914首次執行的狀況下,該邏輯區塊位址與該實體區塊位址分別為LB(0)與0x0000,這表示該控制器將邏輯區塊位址LB(0)鏈結至實體區塊位址0x0000。本實施例與前述實施例/變化例相仿之處不再詳細地重複贅述。
本發明的好處之一是,該記憶裝置可隨時具有相當充足的備用區塊,不必如習知技術在備用區塊不足時才產生新的備用區塊,故本發明可達到可攜式記憶裝置之最佳整體效能。另外,在該些資料區塊包含至少一子區塊或至少一檔案配置表區塊的狀況下,該些資料區塊不必然如習知技術包含相對應的母區塊;不論該些資料區塊是否包含相對應的母區塊,並不會妨礙本發明的實施。此外,習知技術在進行寫入或合併運作時,通常需要自一母區塊複製資料至另一區塊;相較於習知技術,本發明在寫入或合併運作時可省略許多不必要的複製運作,因此本發明可達到可攜式記憶裝置之最佳整體效能。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100...記憶裝置
110...記憶體控制器
112...微處理器
112C...程式碼
112M...唯讀記憶體
114...控制邏輯
116...緩衝記憶體
118...介面邏輯
120...快閃記憶體
310...邏輯實體區塊鏈結表
310-1...邏輯實體區塊鏈結表之更新版本
910...用來管理一快閃記憶體的複數個區塊之方法
912,914...步驟
LB(0),LB(1),LB(2),...,LB(N)...邏輯區塊位址
0x0000...實體區塊位址
0xFFFF...初始值
第1圖為依據本發明一第一實施例之一種記憶裝置的示意圖。
第2圖為依據本發明一實施例之一種用來管理一快閃記憶體(Flash Memory)的複數個區塊之方法的流程圖。
第3圖為第2圖所示之方法於一實施例中所涉及之邏輯實體區塊鏈結表的示意圖。
第4圖繪示第3圖所示之邏輯實體區塊鏈結表於開始被寫入實體區塊位址之後之更新版本的示意圖。
910...用來管理一快閃記憶體的複數個區塊之方法
912,914...步驟
Claims (21)
- 一種用來管理一快閃記憶體(Flash Memory)的複數個區塊之方法,該方法包含有:於該快閃記憶體中提供至少一邏輯實體區塊鏈結表(Logical-to-Physical Block Linking Table),其中針對複數個邏輯區塊位址,該邏輯實體區塊鏈結表最初儲存有落於該快閃記憶體之各個實體區塊位址的範圍之外之至少一初始值,以避免該些邏輯區塊位址最初鏈結至該些實體區塊位址;以及當有需要將屬於一邏輯區塊位址之資料寫入該快閃記憶體時,將該些實體區塊位址中之一實體區塊位址寫入該邏輯實體區塊鏈結表之更新版本,以將該邏輯區塊位址鏈結至該實體區塊位址;其中該實體區塊位址代表一資料區塊,該些區塊當中凡是實體區塊位址未被寫入該邏輯實體區塊鏈結表之最新版本之區塊均為備用區塊(Spare Block);以及該些區塊當中凡是實體區塊位址被寫入該邏輯實體區塊鏈結表之最新版本之區塊均為資料區塊(Data Block);以及該方法另包含有:依據至少一判定標準(Criterion)判斷該資料區塊之資料是否不夠連續;以及當判斷該資料區塊之資料不夠連續時,則將該資料區塊分類為 一檔案配置表區塊(File Allocation Table Block,FAT Block),以將至少一邏輯頁之資料寫入該資料區塊並且將相對應的頁鏈結表寫入該快閃記憶體。
- 如申請專利範圍第1項所述之方法,另包含有:將該資料區塊分類為一子區塊,以將屬於該邏輯區塊位址之至少一部分邏輯頁之資料寫入該資料區塊中相對應的實體頁。
- 如申請專利範圍第2項所述之方法,其中依據該至少一判定標準判斷該資料區塊之資料是否不夠連續之步驟另包含有:當欲予以寫入該資料區塊之一頁的頁位址以及前一次寫入該資料區塊之一頁的頁位址之間的差值達到一預定值時,則判斷該資料區塊之資料不夠連續。
- 如申請專利範圍第2項所述之方法,其中依據該至少一判定標準判斷該資料區塊之資料是否不夠連續之步驟另包含有:當欲予以首先寫入該資料區塊之一邏輯頁並非該邏輯頁所屬之邏輯區塊之開始處時,則判斷該資料區塊之資料不夠連續。
- 如申請專利範圍第2項所述之方法,其中依據該至少一判定標準判斷該資料區塊之資料是否不夠連續之步驟另包含有: 當欲予以寫入該資料區塊之一頁的頁位址等於先前寫入該資料區塊之一頁的頁位址時,則判斷該資料區塊之資料不夠連續。
- 如申請專利範圍第1項所述之方法,其另包含有:當欲予以寫入該資料區塊之複數個連續邏輯頁之頁數達到一區塊的總頁數之一預定比例、且該些連續邏輯頁之開始處係為該些連續邏輯頁所屬之邏輯區塊之開始處、以及該資料區塊中待寫入之部分均為空白頁時,則將該資料區塊分類為一子區塊,以將該些連續邏輯頁之資料寫入該資料區塊中相對應的實體頁。
- 如申請專利範圍第1項所述之方法,其另包含有:針對該些邏輯區塊位址,分別將該至少一初始值寫入該邏輯實體區塊鏈結表之各個欄位。
- 一種記憶裝置,其包含有:一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊且儲存有至少一邏輯實體區塊鏈結表(Logical-to-Physical Block Linking Table),其中針對複數個邏輯區塊位址,該邏輯實體區塊鏈結表最初儲存有落於該快閃記憶體之各個實體區塊位址的範圍之外之至少一初始值,以避免該些邏輯區塊位址最初鏈結至該些實體區 塊位址;以及一控制器,用來存取(Access)該快閃記憶體以及管理該些區塊,其中當有需要將屬於一邏輯區塊位址之資料寫入該快閃記憶體時,該控制器將該些實體區塊位址中之一實體區塊位址寫入該邏輯實體區塊鏈結表之更新版本,以將該邏輯區塊位址鏈結至該實體區塊位址;其中該些區塊當中凡是實體區塊位址未被寫入該邏輯實體區塊鏈結表之最新版本之區塊均為備用區塊(Spare Block);以及該些區塊當中凡是實體區塊位址被寫入該邏輯實體區塊鏈結表之最新版本之區塊均為資料區塊(Data Block);其中該實體區塊位址代表一資料區塊;該控制器依據至少一判定標準(Criterion)判斷該資料區塊之資料是否不夠連續;以及當判斷該資料區塊之資料不夠連續時,則該控制器將該資料區塊分類為一檔案配置表區塊(File Allocation Table Block,FAT Block),以將至少一邏輯頁之資料寫入該資料區塊並且將相對應的頁鏈結表寫入該快閃記憶體。
- 如申請專利範圍第8項所述之記憶裝置,其中該控制器將該資料區塊分類為一子區塊,以將屬於該邏輯區塊位址之至少一部分邏輯頁之資料寫入該資料區塊中相對應的實體頁。
- 如申請專利範圍第9項所述之記憶裝置,其中當欲予以寫入該 資料區塊之一頁的頁位址以及前一次寫入該資料區塊之一頁的頁位址之間的差值達到一預定值時,則該控制器判斷該資料區塊之資料不夠連續。
- 如申請專利範圍第9項所述之記憶裝置,其中當欲予以首先寫入該資料區塊之一邏輯頁並非該邏輯頁所屬之邏輯區塊之開始處時,則該控制器判斷該資料區塊之資料不夠連續。
- 如申請專利範圍第9項所述之記憶裝置,其中當欲予以寫入該資料區塊之一頁的頁位址等於先前寫入該資料區塊之一頁的頁位址時,則該控制器判斷該資料區塊之資料不夠連續。
- 如申請專利範圍第8項所述之記憶裝置,其中當欲予以寫入該資料區塊之複數個連續邏輯頁之頁數達到一區塊的總頁數之一預定比例、且該些連續邏輯頁之開始處係為該些連續邏輯頁所屬之邏輯區塊之開始處、以及該資料區塊中待寫入之部分均為空白頁時,則該控制器將該資料區塊分類為一子區塊,以將該些連續邏輯頁之資料寫入該資料區塊中相對應的實體頁。
- 如申請專利範圍第8項所述之記憶裝置,其中針對該些邏輯區塊位址,該控制器分別將該至少一初始值寫入該邏輯實體區塊鏈結表之各個欄位。
- 一種記憶裝置之控制器,該控制器係用來存取(Access)一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊,該控制器包含有:一唯讀記憶體(Read Only Memory,ROM),用來儲存一程式碼;以及一微處理器,用來執行該程式碼以控制對該快閃記憶體之存取以及管理該些區塊;其中該快閃記憶體儲存有至少一邏輯實體區塊鏈結表(Logical-to-Physical Block Linking Table),而針對複數個邏輯區塊位址,該邏輯實體區塊鏈結表最初儲存有落於該快閃記憶體之各個實體區塊位址的範圍之外之至少一初始值,以避免該些邏輯區塊位址最初鏈結至該些實體區塊位址;以及當有需要將屬於一邏輯區塊位址之資料寫入該快閃記憶體時,透過該微處理器執行該程式碼之該控制器將該些實體區塊位址中之一實體區塊位址寫入該邏輯實體區塊鏈結表之更新版本,以將該邏輯區塊位址鏈結至該實體區塊位址;其中該些區塊當中凡是實體區塊位址未被寫入該邏輯實體區塊鏈結表之最新版本之區塊均為備用區塊(Spare Block);以及該些區塊當中凡是實體區塊位址被寫入該邏輯實體區塊鏈結表之最新版本之區塊均為資料區塊(Data Block);其中該實體區塊位址代表一資料區塊;透過該微處理器執行該程式碼之該控制器依據至少一判定標準(Criterion)判斷該資料區塊之資料是否不夠連續;以及當判斷該資料區塊之資料不 夠連續時,則透過該微處理器執行該程式碼之該控制器將該資料區塊分類為一檔案配置表區塊(File Allocation Table Block,FAT Block),以將至少一邏輯頁之資料寫入該資料區塊並且將相對應的頁鏈結表寫入該快閃記憶體。
- 如申請專利範圍第15項所述之控制器,其中透過該微處理器執行該程式碼之該控制器將該資料區塊分類為一子區塊,以將屬於該邏輯區塊位址之至少一部分邏輯頁之資料寫入該資料區塊中相對應的實體頁。
- 如申請專利範圍第16項所述之控制器,其中當欲予以寫入該資料區塊之一頁的頁位址以及前一次寫入該資料區塊之一頁的頁位址之間的差值達到一預定值時,則透過該微處理器執行該程式碼之該控制器判斷該資料區塊之資料不夠連續。
- 如申請專利範圍第16項所述之控制器,其中當欲予以首先寫入該資料區塊之一邏輯頁並非該邏輯頁所屬之邏輯區塊之開始處時,則透過該微處理器執行該程式碼之該控制器判斷該資料區塊之資料不夠連續。
- 如申請專利範圍第16項所述之控制器,其中當欲予以寫入該資料區塊之一頁的頁位址等於先前寫入該資料區塊之一頁的頁位址時,則透過該微處理器執行該程式碼之該控制器判斷該 資料區塊之資料不夠連續。
- 如申請專利範圍第15項所述之控制器,其中當欲予以寫入該資料區塊之複數個連續邏輯頁之頁數達到一區塊的總頁數之一預定比例、且該些連續邏輯頁之開始處係為該些連續邏輯頁所屬之邏輯區塊之開始處、以及該資料區塊中待寫入之部分均為空白頁時,則透過該微處理器執行該程式碼之該控制器將該資料區塊分類為一子區塊,以將該些連續邏輯頁之資料寫入該資料區塊中相對應的實體頁。
- 如申請專利範圍第15項所述之控制器,其中針對該些邏輯區塊位址,透過該微處理器執行該程式碼之該控制器分別將該至少一初始值寫入該邏輯實體區塊鏈結表之各個欄位。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098135100A TWI437569B (zh) | 2009-10-16 | 2009-10-16 | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 |
US12/652,745 US20110093649A1 (en) | 2009-10-16 | 2010-01-06 | Method for managing a plurality of blocks of a flash memory, and associated memory device and controller thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098135100A TWI437569B (zh) | 2009-10-16 | 2009-10-16 | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201115580A TW201115580A (en) | 2011-05-01 |
TWI437569B true TWI437569B (zh) | 2014-05-11 |
Family
ID=43880166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098135100A TWI437569B (zh) | 2009-10-16 | 2009-10-16 | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110093649A1 (zh) |
TW (1) | TWI437569B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI425357B (zh) * | 2010-09-27 | 2014-02-01 | Silicon Motion Inc | 用來進行區塊管理之方法以及記憶裝置及控制器 |
TWI435216B (zh) * | 2010-09-27 | 2014-04-21 | Silicon Motion Inc | 用來進行超區塊管理之方法以及記憶裝置及控制器 |
KR20130081526A (ko) | 2012-01-09 | 2013-07-17 | 삼성전자주식회사 | 저장 장치, 그것을 포함하는 전자 장치, 및 그것의 데이터 관리 방법들 |
US9811414B2 (en) | 2012-07-25 | 2017-11-07 | Silicon Motion Inc. | Method for managing data stored in flash memory and associated memory device and controller |
TWI508068B (zh) * | 2012-07-25 | 2015-11-11 | Silicon Motion Inc | 管理快閃記憶體中所儲存之資料的方法,及相關的記憶裝置與控制器 |
TWI506642B (zh) * | 2012-12-07 | 2015-11-01 | Phison Electronics Corp | 記憶體修復方法、記憶體控制器與記憶體儲存裝置 |
TWI620115B (zh) * | 2015-06-17 | 2018-04-01 | 旺宏電子股份有限公司 | 用於寫入資料的方法及設備與儲存媒體 |
TWI641988B (zh) | 2017-07-21 | 2018-11-21 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行編程管理之方法以及記憶裝置及其控制器 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100577380B1 (ko) * | 1999-09-29 | 2006-05-09 | 삼성전자주식회사 | 플래시 메모리와 그 제어 방법 |
US7107389B2 (en) * | 2002-08-29 | 2006-09-12 | Matsushita Electric Industrial Co., Ltd. | Semiconductor memory device and method for writing data into flash memory |
KR100527274B1 (ko) * | 2004-06-04 | 2005-12-13 | 주식회사 르노소프트 | 시스템 영역 정보 테이블과 매핑 테이블을 사용한 컴퓨터하드디스크 시스템 데이터 보호 장치 및 그 방법 |
TWI427476B (zh) * | 2009-02-24 | 2014-02-21 | Silicon Motion Inc | 快閃記憶體的存取方法及快閃記憶體裝置 |
-
2009
- 2009-10-16 TW TW098135100A patent/TWI437569B/zh active
-
2010
- 2010-01-06 US US12/652,745 patent/US20110093649A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20110093649A1 (en) | 2011-04-21 |
TW201115580A (en) | 2011-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10296231B2 (en) | Data-storage device and data maintenance method thereof | |
TWI678619B (zh) | 包含動態超區塊之記憶體裝置及相關方法與電子系統 | |
TWI437439B (zh) | 用來以動態門檻進行區塊管理之方法及記憶裝置及控制器 | |
US9043536B2 (en) | Method of recording mapping information, and memory controller and memory storage apparatus using the same | |
TWI437569B (zh) | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 | |
CN110908925B (zh) | 高效能垃圾收集方法以及数据存储装置及其控制器 | |
US9665481B2 (en) | Wear leveling method based on timestamps and erase counts, memory storage device and memory control circuit unit | |
US9058256B2 (en) | Data writing method, memory controller and memory storage apparatus | |
TWI698749B (zh) | 資料儲存裝置與資料處理方法 | |
US9141530B2 (en) | Data writing method, memory controller and memory storage device | |
US20170046068A1 (en) | Memory management method, memory control circuit unit and memory storage device | |
US9213631B2 (en) | Data processing method, and memory controller and memory storage device using the same | |
US20140181372A1 (en) | Data reading method, memory controller, and memory storage device | |
TWI748410B (zh) | 用來針對非揮發性記憶體進行區塊管理的方法以及設備 | |
US8037236B2 (en) | Flash memory writing method and storage system and controller using the same | |
US20150058531A1 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
US9037781B2 (en) | Method for managing buffer memory, memory controllor, and memory storage device | |
TW202238369A (zh) | 在快閃記憶體中進行耗損平衡操作的方法和相關控制器以及儲存系統 | |
US20130332653A1 (en) | Memory management method, and memory controller and memory storage device using the same | |
TWI450271B (zh) | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 | |
US9312011B1 (en) | Data writing method, memory storage device and memory control circuit unit | |
TWI455133B (zh) | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 | |
CN108108118B (zh) | 数据写入方法以及存储控制器 | |
TWI453747B (zh) | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 |