TWI450271B - 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 - Google Patents
用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 Download PDFInfo
- Publication number
- TWI450271B TWI450271B TW098129600A TW98129600A TWI450271B TW I450271 B TWI450271 B TW I450271B TW 098129600 A TW098129600 A TW 098129600A TW 98129600 A TW98129600 A TW 98129600A TW I450271 B TWI450271 B TW I450271B
- Authority
- TW
- Taiwan
- Prior art keywords
- physical
- link information
- blocks
- page
- block address
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (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型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之可攜式記憶裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。例如:依據相關技術,一旦快閃記憶體因使用多時而品質變差,使用者的資料就可能隨時會遺失。尤其是,相較於單階細胞快閃記憶體,多階細胞快閃記憶體中之每一區塊之抹除次數(Erase Count)的上限相對地低,這會使得上述之不穩定性的問題更加被突顯。
需要注意的是,快閃記憶體的每一區塊之抹除次數的上限往往隨著新的製程技術的採用而降低。然而,製程技術的進展往往是快閃記憶體製造廠商降低成本的重要手段;在此狀況下,上述之不穩定性的問題將會更加嚴重。因此,需要一種新穎的方法來加強控管快閃記憶體之資料存取,以確保使用者資料的完整性。
因此,本發明之目的之一在於提供一種用來管理一快閃記憶體(Flash Memory)的複數個區塊之方法以及相關之記憶裝置及其控制器,以解決上述問題。
本發明之另一目的在於提供一種用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器,以增進運作效能並減少該快閃記憶體中之區塊之合併運作(Merging Operation)的次數,甚至可以不必進行合併運作。
本發明之又一目的在於提供一種用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器,以減緩快閃記憶體中之區塊之抹除次數(Erase Count)的增加速率。因此,藉由利用本發明所實現之可攜式記憶裝置會擁有較長的使用壽命。
本發明之較佳實施例中提供一種用來管理一快閃記憶體的複數個區塊之方法,該方法包含有:針對一邏輯區塊位址記錄/更新鏈結資訊,其中該鏈結資訊包含鏈結至該邏輯區塊位址之複數個實體區塊位址,且每一實體區塊位址代表該複數個區塊中之一區塊;以及當該複數個實體區塊位址中之一實體區塊位址所代表之區塊已無有效頁(Valid Page)時,選擇性地抹除該區塊並自該鏈結資訊中移除該實體區塊位址。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置,其包含有:一快閃記憶體,該快閃記憶體包含複數個區塊;以及一控制器,用來存取(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包含複數個區塊(Block),而該控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)對快閃記憶體120進行抹除資料之運作係以區塊為單位來進行抹除。另外,一區塊可記錄特定數量的頁(Page),其中該控制器對快閃記憶體120進行寫入資料之運作係以頁為單位來進行寫入。
實作上,透過微處理器112執行程式碼112C之記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制快閃記憶體120之存取運作(尤其是對至少一區塊或至少一頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)溝通。
依據本實施例,除了能存取快閃記憶體120,該控制器還能妥善地管理該複數個區塊。更明確而言,在寫入/更新資料時,該控制器可針對一邏輯區塊位址記錄/更新鏈結資訊,其中該鏈結資訊包含鏈結至該邏輯區塊位址之複數個實體區塊位址,且每一實體區塊位址代表該複數個區塊中之一區塊。另外,當該複數個實體區塊位址中之一實體區塊位址所代表之區塊已無有效頁(Valid Page)時,選擇性地抹除該區塊並自該鏈結資訊中移除該實體區塊位址。
在此,一有效頁代表具有有效資料之資料頁,尤其是代表實際鏈結至某一邏輯頁位址之一第一實體頁。由於該控制器對快閃記憶體120進行抹除資料之運作係以區塊為單位來進行抹除,故當該控制器針對該邏輯頁位址更新資料時,會將更新之資料寫入一第二實體頁,並將該邏輯頁位址與該第一實體頁之間的鏈結關係取代為該邏輯頁位址與該第二實體頁之間的鏈結關係。如此,該控制器取消該邏輯頁位址與該第一實體頁之間的鏈結關係。於是,該第一實體頁就不再是有效頁,乃是被視為無效頁(Invalid Page)。
第2圖為依據本發明一實施例之一種用來管理一快閃記憶體的複數個區塊之方法910的流程圖。該方法可應用於第1圖所示之記憶裝置100,尤其是上述之控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)。另外,該方法可藉由利用第1圖所示之記憶裝置100來實施,尤其是藉由利用上述之控制器來實施。該方法說明如下:於步驟912中,上述之控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)針對一邏輯區塊位址記錄/更新鏈結資訊,其中該鏈結資訊包含鏈結至該邏輯區塊位址之複數個實體區塊位址,且每一實體區塊位址代表該複數個區塊中之一區塊。尤其是,該鏈結資訊另包含目前實體頁位置資訊,用來指出針對該邏輯區塊位址最新寫入之實體頁的位置。另外,該鏈結資訊還包含其它資訊可供參考。於是,當該控制器日後要針對該邏輯區塊位址進行存取時,即可依據該鏈結資訊來存取屬於該邏輯區塊位址之資料。
於步驟914中,當該複數個實體區塊位址中之一實體區塊位址所代表之區塊已無有效頁時,該控制器選擇性地抹除該區塊並自該鏈結資訊中移除該實體區塊位址。例如:當該實體區塊位址所代表之區塊已無有效頁時,該控制器立即抹除該區塊並自該鏈結資訊中移除該實體區塊位址。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之一變化例,當該實體區塊位址所代表之區塊已無有效頁時,該控制器基於一特定事件的發生來觸發抹除該區塊並移除該實體區塊位址之運作。如此,該控制器等到該特定事件的發生才抹除該區塊並自該鏈結資訊中移除該實體區塊位址。依據本實施例之另一變化例,當該些實體區塊位址所代表之區塊當中已無有效頁之區塊的數量已達一預定值時,該控制器一併抹除這些已無有效頁之區塊並自該鏈結資訊中移除其實體區塊位址。依據本實施例之另一變化例,當該些實體區塊位址所代表之區塊的數量已達一預定值時,該控制器將該些實體區塊位址所代表之區塊中之至少一部分區塊的有效頁合併(Merge)到至少一新的空白區塊,且抹除該至少一部分區塊並自該鏈結資訊中移除其實體區塊位址。尤其是於本變化例中,該至少一部分區塊係為該些實體區塊位址所代表之區塊當中具有最少(或較少)有效頁之一個或多個區塊。
依據本實施例,該鏈結資訊另包含頁鏈結資訊。該控制器會依據該頁鏈結資訊來判定該實體區塊位址所代表之區塊是否已無有效頁。尤其是,該頁鏈結資訊包含一邏輯實體頁鏈結表;如此,於該邏輯實體頁鏈結表中,該控制器就可以針對屬於該邏輯區塊位址之一邏輯頁位址記錄/更新相對應之一實體區塊位址或其代表資訊,並記錄/更新相對應之一實體頁位址。關於該鏈結資訊之實施細節,請參考第3圖來進一步說明。
第3圖為第2圖所示之方法於一實施例中所涉及之鏈結資訊300-i的示意圖。於步驟912中,上述之控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)可針對任一邏輯區塊位址LB(i)記錄/更新鏈結資訊,其中i=0、1、...、或n。如第3圖所示,鏈結資訊300-i包含:目前實體頁位置資訊例如當前空白頁位置Current_PPage、指向邏輯實體頁鏈結表320-i之一指標Page_Link_Table、鏈結至邏輯區塊位址LB(i)之複數個實體區塊位址(例如:第3圖所示之實體區塊位址PBA(0)、PBA(1)、...、與PBA(N))之數量PBA_Count、以及具有該複數個實體區塊位址之一實體區塊位址表318-i。當前空白頁位置Currrent_PPage係用以標示最新一頁資料應寫入哪一個實體頁。於本實施例中,實體區塊位址PBA(0)、PBA(1)、...、與PBA(N)分別代表實體區塊0、1、...、與N。該控制器依序使用了實體區塊0、1、...、與N儲存屬於邏輯區塊位址LB(i)之資料,並且依序在實體區塊位址表318-i記錄了實體區塊位址PBA(0)、PBA(1)、...、與PBA(N)。這只是為了說明的目的而已,並非對本發明之限制。實作上,實體區塊位址表318-i中可儲存任何被該控制器針對邏輯區塊位址LB(i)寫入資料的實體區塊之實體區塊位址。尤其是,該控制器可隨時於實體區塊位址表318-i中新增或移除任何實體區塊位址,並可依需要重新調整實體區塊位址表318-i中之實體區塊位址的位置。
一般而言,實體區塊位址表318-i中之實體區塊位址可為該複數個區塊中之任何部分的區塊之實體區塊位址,且該些實體區塊位址之順序不需要和該複數個區塊中之任何部分的區塊之順序相同,並且實體區塊位址表318-i中之任兩相鄰欄位內之兩實體區塊位址不必是連續的。例如:於多次針對邏輯區塊位址LB(i)進行資料存取之後,該控制器依序在實體區塊位址表318-i記錄了實體區塊位址PBA(1024)、PBA(20)、PBA(8)、PBA(74)、...等,分別代表實體區塊1024、20、8、74、...等,就是當時仍用來儲存屬於邏輯區塊位址LB(i)之資料之實體區塊。
於本實施例中,該控制器首先使用實體區塊位址PBA(0)所代表之實體區塊0來寫入/更新屬於邏輯區塊位址LB(i)之資料,並將實體區塊位址PBA(0)記錄於實體區塊位址表318-i,其中實體區塊位址表318-i中最初只有實體區塊位址PBA(0),且數量PBA_Count之初始值等於1。在這個過程中,該控制器於邏輯實體頁鏈結表320-i中記錄/更新複數組實體區塊位址表索引與實體頁位址,以便日後可以找到屬於邏輯區塊位址LB(i)之資料,其中邏輯實體頁鏈結表320-i之每一列(或項目)包含一組實體區塊位址表索引與實體頁位址,且由上至下的各列(或項目)分別對應於屬於邏輯區塊位址LB(i)之各個邏輯頁位址LPage(0)、LPage(1)、...、與LPage(m-1)。
請注意,本實施例之實體區塊位址表索引係選自第3圖右上角所示之實體區塊位址表索引PBAT(0)、PBAT(1)、...、與PBAT(N),而該控制器可依據實體區塊位址表索引PBAT(0)、PBAT(1)、...、與PBAT(N)於實體區塊位址表318-i當中分別查找出實體區塊位址PBA(0)、PBA(1)、...、與PBA(N)。如此,邏輯實體頁鏈結表320-i中所儲存之每一實體區塊位址表索引係為一相對應之實體區塊位址的代表資訊(索引資訊),其中該代表資訊之典型資料量小於該相對應之實體區塊位址之資料量,故於邏輯實體頁鏈結表320-i中儲存該代表資訊(而不直接儲存該相對應之實體區塊位址)有助於節省儲存空間並提昇整體運作效能。另外,本實施例之實體區塊位址表索引PBAT(0)、PBAT(1)、...、與PBAT(N)分別為0、1、...、與N,亦即實體區塊位址表318-i各欄位的順位,故實作上實體區塊位址表318-i不必儲存有實體區塊位址表索引PBAT(0)、PBAT(1)、...、與PBAT(N)。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之一變化例,實體區塊位址表索引PBAT(0)、PBAT(1)、...、與PBAT(N)可為別的數值。依據本實施例之另一變化例,該控制器於邏輯實體頁鏈結表320-i中直接儲存該相對應之實體區塊位址(而不儲存該代表資訊);也就是說,該控制器於邏輯實體頁鏈結表320-i中記錄/更新複數組實體區塊位址與實體頁位址,以便日後可以找到屬於邏輯區塊位址LB(i)之資料,其中邏輯實體頁鏈結表320-i之每一列(或項目)包含一組實體區塊位址與實體頁位址。
依據本實施例,在建立實體區塊位址表318-i的過程之初,當實體區塊位址PBA(0)所代表之實體區塊已完全寫入(Fully Programmed)時,該控制器接著使用實體區塊位址PBA(1)所代表之實體區塊來寫入/更新屬於邏輯區塊位址LB(i)之資料,並將實體區塊位址PBA(1)記錄於實體區塊位址表318-i,其中此時實體區塊位址表318-i中只有實體區塊位址PBA(0)及PBA(1),且數量PBA_Count之值被更改為2。此狀況下,一旦該控制器必須針對邏輯區塊位址LB(i)之某一邏輯頁位址更新資料,例如針對邏輯頁位址LPage(m0
)更新資料,則該控制器更新邏輯實體頁鏈結表320-i中對應於邏輯頁位址LPage(m0
)之一組實體區塊位址表索引與實體頁位址,其中該實體區塊位址表索引由PBAT(0)更新為PBAT(1),且該實體頁位址由實體區塊0之一舊資料頁之位址更新為實體區塊1之一新資料頁之位址。亦即,該控制器以實體區塊位址表318-i中順位較後面之一實體區塊(即實體區塊位址表索引較大的實體區塊)之相關鏈結資訊更新實體區塊位址表318-i中順位較前面之一實體區塊(即實體區塊位址表索引較小的實體區塊)之相關鏈結資訊。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之一變化例,當一特定區塊之實體頁是以相對應邏輯區塊之邏輯頁之相同的順序被連續地寫入時,該控制器可將該相對應邏輯區塊之鏈結資訊中之指標Page_Link_Table設為空(Null)值,以避免指向任何邏輯實體頁鏈結表。
相仿地,於本實施例中,當實體區塊位址PBA(j-1)所代表之實體區塊已完全寫入時,該控制器使用實體區塊位址PBA(j)所代表之實體區塊來寫入/更新屬於邏輯區塊位址LB(i)之資料,並將實體區塊位址PBA(j)記錄於實體區塊位址表318-i,其中此時實體區塊位址表318-i中儲存有實體區塊位址PBA(0)、PBA(1)、...、與PBA(j),且數量PBA_Count之值被更改為(j+1)。此狀況下,一旦該控制器必須針對邏輯區塊位址LB(i)之某一邏輯頁位址更新資料,例如針對邏輯頁位址LPage(m1
)更新資料,則該控制器更新邏輯實體頁鏈結表320-i中對應於邏輯頁位址LPage(m1
)之一組實體區塊位址表索引與實體頁位址,其中該實體區塊位址表索引更新為PBAT(j),且該實體頁位址更新為實體區塊j之一新資料頁之位址。
如此,上述的運作擴增了實體區塊位址表318-i,其中參數j係由1變化至N。於是,當j=N時,實體區塊位址表318-i中儲存有實體區塊位址PBA(0)、PBA(1)、...、與PBA(N),且數量PBA_Count之值被更改為(N+1)。
隨著數量PBA_Count之值不斷地增加,實體區塊位址表318-i中所儲存之各個實體區塊位址會逐一滿足步驟914所述之執行條件。於是,當該些實體區塊位址中之任一實體區塊位址所代表之區塊已無有效頁時,該控制器即可選擇性地抹除該區塊並自該鏈結資訊中移除該實體區塊位址。如此,本發明之方法以及相關之記憶裝置及其控制器可大幅地減少合併運作(Merging Operation)以及無效資料頁之垃圾集中(Garbage Collection)運作的負擔。
依據本實施例,當鏈結資訊300-i指出有K個實體區塊位址鏈結至邏輯區塊位址LB(i)時,關於無效資料頁之垃圾集中運作的負擔大約減為(1/K)倍,即其效能約為習知技術之K倍。尤其是,當K大於一個區塊的頁數(例如m)時,關於無效資料頁之垃圾集中運作的負擔就可以完全去除,且不需要進行合併運作。因此,本發明之方法以及相關之記憶裝置及其控制器可減緩快閃記憶體120中之區塊之抹除次數(Erase Count)的增加速率。
相較於習知技術,本發明之方法以及相關之記憶裝置及其控制器可增進運作效能並減少快閃記憶體中之區塊之合併運作的次數,甚至可以不必進行合併運作。另外,本發明之方法以及相關之記憶裝置及其控制器可以減緩快閃記憶體中之區塊之抹除次數的增加速率。因此,藉由利用本發明所實現之可攜式記憶裝置會擁有較長的使用壽命。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100...記憶裝置
110...記憶體控制器
112...微處理器
112C...程式碼
112M...唯讀記憶體
114...控制邏輯
116...緩衝記憶體
118...介面邏輯
120...快閃記憶體
300-i...鏈結資訊
318-i...實體區塊位址表
320-i...邏輯實體頁鏈結表
910...用來管理一快閃記憶體的複數個區塊之方法
912,914...步驟
Current_PPage...當前空白頁位置
LB(0),LB(1),...,LB(i),...,LB(n)...邏輯區塊位址
LPage(0),LPage(1),...,LPage(m-1)...邏輯頁位址
Page_Link_Table...指向邏輯實體頁鏈結表之指標
PBA_Count...實體區塊位址之數量
PBA(0),PBA(1),...,PBA(N)...實體區塊位址
PBAT(0),PBAT(1),...,PBAT(N)...實體區塊位址表索引
第1圖為依據本發明一第一實施例之一種記憶裝置的示意圖。
第2圖為依據本發明一實施例之一種用來管理一快閃記憶體(Flash Memory)的複數個區塊之方法的流程圖。
第3圖為第2圖所示之方法於一實施例中所涉及之鏈結資訊的示意圖。
910...用來管理一快閃記憶體的複數個區塊之方法
912,914...步驟
Claims (27)
- 一種用來管理一快閃記憶體(Flash Memory)的複數個區塊之方法,該方法包含有:針對一邏輯區塊位址記錄/更新鏈結資訊,其中該鏈結資訊包含鏈結至該邏輯區塊位址之複數個實體區塊位址,且每一實體區塊位址代表該複數個區塊中之一區塊;以及當該複數個實體區塊位址中之一實體區塊位址所代表之區塊已無有效頁(Valid Page)時,選擇性地抹除該區塊並自該鏈結資訊中移除該實體區塊位址;其中選擇性地抹除該區塊並自該鏈結資訊中移除代表該區塊之實體區塊位址之步驟另包含有:當該些實體區塊位址所代表之區塊當中已無有效頁之區塊的數量已達一預定值時,一併抹除這些已無有效頁之區塊並自該鏈結資訊中移除其實體區塊位址。
- 如申請專利範圍第1項所述之方法,其中該鏈結資訊另包含目前實體頁位置資訊,用來指出針對該邏輯區塊位址最新寫入之實體頁的位置。
- 如申請專利範圍第1項所述之方法,其中該鏈結資訊另包含頁鏈結資訊;以及該方法另包含有:依據該頁鏈結資訊來判定該實體區塊位址所代表之區塊是否 已無有效頁。
- 如申請專利範圍第3項所述之方法,其中該頁鏈結資訊包含一邏輯實體頁鏈結表;以及針對該邏輯區塊位址記錄/更新該鏈結資訊之步驟另包含有:於該邏輯實體頁鏈結表中,針對屬於該邏輯區塊位址之一邏輯頁位址記錄/更新相對應之一實體區塊位址或其代表資訊,並記錄/更新相對應之一實體頁位址。
- 如申請專利範圍第4項所述之方法,其中針對該邏輯頁位址記錄/更新相對應之該實體區塊位址或其代表資訊,並記錄/更新相對應之該實體頁位址之步驟更包含有:以一實體區塊位址表中順位較後面之一實體區塊之一相關鏈結資訊更新該實體區塊位址表中順位較前面之一實體區塊之一相關鏈結資訊。
- 如申請專利範圍第4項所述之方法,其中該頁鏈結資訊另包含指向該邏輯實體頁鏈結表之一指標。
- 如申請專利範圍第1項所述之方法,其中該鏈結資訊另包含該複數個實體區塊位址之數量。
- 一種用來管理一快閃記憶體(Flash Memory)的複數個區塊之 方法,該方法包含有:針對一邏輯區塊位址記錄/更新鏈結資訊,其中該鏈結資訊包含鏈結至該邏輯區塊位址之複數個實體區塊位址,且每一實體區塊位址代表該複數個區塊中之一區塊;以及當該些實體區塊位址所代表之區塊的數量已達一預定值時,將該些實體區塊位址所代表之區塊中之至少一部分區塊的有效頁合併到至少一新的空白區塊,且抹除該至少一部分區塊並自該鏈結資訊中移除其實體區塊位址。
- 一種用來管理一快閃記憶體(Flash Memory)的複數個區塊之方法,該方法包含有:針對一邏輯區塊位址記錄/更新鏈結資訊,其中該鏈結資訊包含鏈結至該邏輯區塊位址之複數個實體區塊位址,且每一實體區塊位址代表該複數個區塊中之一區塊;當該複數個實體區塊位址中之一實體區塊位址所代表之區塊已無有效頁(Valid Page)時,選擇性地抹除該區塊並自該鏈結資訊中移除該實體區塊位址;以及當一特定區塊之實體頁是以相對應邏輯區塊之邏輯頁之相同的順序被連續地寫入時,將該相對應邏輯區塊之鏈結資訊中之一指標設為空(Null)值,以避免指向任何邏輯實體頁鏈結表。
- 一種記憶裝置,其包含有: 一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊;以及一控制器,用來存取(Access)該快閃記憶體以及管理該複數個區塊,其中該控制器針對一邏輯區塊位址記錄/更新鏈結資訊,而該鏈結資訊包含鏈結至該邏輯區塊位址之複數個實體區塊位址,且每一實體區塊位址代表該複數個區塊中之一區塊;其中當該些實體區塊位址所代表之區塊當中已無有效頁之區塊的數量已達一預定值時,該控制器一併抹除這些已無有效頁之區塊並自該鏈結資訊中移除其實體區塊位址。
- 如申請專利範圍第10項所述之記憶裝置,其中該鏈結資訊另包含目前實體頁位置資訊,用來指出針對該邏輯區塊位址最新寫入之實體頁的位置。
- 如申請專利範圍第10項所述之記憶裝置,其中該鏈結資訊另包含頁鏈結資訊;以及該控制器依據該頁鏈結資訊來判定該實體區塊位址所代表之區塊是否已無有效頁。
- 如申請專利範圍第12項所述之記憶裝置,其中該頁鏈結資訊包含一邏輯實體頁鏈結表;以及於該邏輯實體頁鏈結表中,該控制器針對屬於該邏輯區塊位址之一邏輯頁位址記錄/更新相對應之一實體區塊位址或其代表資訊,並記錄/更新相對應 之一實體頁位址。
- 如申請專利範圍第13項所述之記憶裝置,其中該控制器以一實體區塊位址表中順位較後面之一實體區塊之一相關鏈結資訊更新該實體區塊位址表中順位較前面之一實體區塊之一相關鏈結資訊。
- 如申請專利範圍第13項所述之記憶裝置,其中該頁鏈結資訊另包含指向該邏輯實體頁鏈結表之一指標。
- 如申請專利範圍第10項所述之記憶裝置,其中該鏈結資訊另包含該複數個實體區塊位址之數量。
- 一種記憶裝置,其包含有:一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊;以及一控制器,用來存取(Access)該快閃記憶體以及管理該複數個區塊,其中該控制器針對一邏輯區塊位址記錄/更新鏈結資訊,而該鏈結資訊包含鏈結至該邏輯區塊位址之複數個實體區塊位址,且每一實體區塊位址代表該複數個區塊中之一區塊;其中當該些實體區塊位址所代表之區塊的數量已達一預定值時,該控制器將該些實體區塊位址所代表之區塊中之至少一 部分區塊的有效頁合併到至少一新的空白區塊,且抹除該至少一部分區塊並自該鏈結資訊中移除其實體區塊位址。
- 一種記憶裝置,其包含有:一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊;以及一控制器,用來存取(Access)該快閃記憶體以及管理該複數個區塊,其中該控制器針對一邏輯區塊位址記錄/更新鏈結資訊,而該鏈結資訊包含鏈結至該邏輯區塊位址之複數個實體區塊位址,且每一實體區塊位址代表該複數個區塊中之一區塊;其中當一特定區塊之實體頁是以相對應邏輯區塊之邏輯頁之相同的順序被連續地寫入時,該控制器將該相對應邏輯區塊之鏈結資訊中之一指標設為空(Null)值,以避免指向任何邏輯實體頁鏈結表。
- 一種記憶裝置之控制器,該控制器係用來存取(Access)一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊,該控制器包含有:一唯讀記憶體(Read Only Memory,ROM),用來儲存一程式碼;以及一微處理器,用來執行該程式碼以控制對該快閃記憶體之存取以及管理該複數個區塊; 其中透過該微處理器執行該程式碼之該控制器針對一邏輯區塊位址記錄/更新鏈結資訊,而該鏈結資訊包含鏈結至該邏輯區塊位址之複數個實體區塊位址,且每一實體區塊位址代表該複數個區塊中之一區塊;以及當該些實體區塊位址所代表之區塊當中已無有效頁之區塊的數量已達一預定值時,透過該微處理器執行該程式碼之該控制器一併抹除這些已無有效頁之區塊並自該鏈結資訊中移除其實體區塊位址。
- 如申請專利範圍第19項所述之控制器,其中該鏈結資訊另包含目前實體頁位置資訊,用來指出針對該邏輯區塊位址最新寫入之實體頁的位置。
- 如申請專利範圍第19項所述之控制器,其中該鏈結資訊另包含頁鏈結資訊;以及透過該微處理器執行該程式碼之該控制器依據該頁鏈結資訊來判定該實體區塊位址所代表之區塊是否已無有效頁。
- 如申請專利範圍第21項所述之控制器,其中該頁鏈結資訊包含一邏輯實體頁鏈結表;以及於該邏輯實體頁鏈結表中,透過該微處理器執行該程式碼之該控制器針對屬於該邏輯區塊位址之一邏輯頁位址記錄/更新相對應之一實體區塊位址或其代表資訊,並記錄/更新相對應之一實體頁位址。
- 如申請專利範圍第22項所述之控制器,其中透過該微處理器執行該程式碼之該控制器以一實體區塊位址表中順位較後面之一實體區塊之一相關鏈結資訊更新該實體區塊位址表中順位較前面之一實體區塊之一相關鏈結資訊。
- 如申請專利範圍第22項所述之控制器,其中該頁鏈結資訊另包含指向該邏輯實體頁鏈結表之一指標。
- 如申請專利範圍第19項所述之控制器,其中該鏈結資訊另包含該複數個實體區塊位址之數量。
- 一種記憶裝置之控制器,該控制器係用來存取(Access)一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊,該控制器包含有:一唯讀記憶體(Read Only Memory,ROM),用來儲存一程式碼;以及一微處理器,用來執行該程式碼以控制對該快閃記憶體之存取以及管理該複數個區塊;其中透過該微處理器執行該程式碼之該控制器針對一邏輯區塊位址記錄/更新鏈結資訊,而該鏈結資訊包含鏈結至該邏輯區塊位址之複數個實體區塊位址,且每一實體區塊位址代表該複數個區塊中之一區塊;以及當該些實體區塊位址所代表之區塊的數量已達一預定值時,透過該微處理器執行該程式 碼之該控制器將該些實體區塊位址所代表之區塊中之至少一部分區塊的有效頁合併到至少一新的空白區塊,且抹除該至少一部分區塊並自該鏈結資訊中移除其實體區塊位址。
- 一種記憶裝置之控制器,該控制器係用來存取(Access)一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊,該控制器包含有:一唯讀記憶體(Read Only Memory,ROM),用來儲存一程式碼;以及一微處理器,用來執行該程式碼以控制對該快閃記憶體之存取以及管理該複數個區塊;其中透過該微處理器執行該程式碼之該控制器針對一邏輯區塊位址記錄/更新鏈結資訊,而該鏈結資訊包含鏈結至該邏輯區塊位址之複數個實體區塊位址,且每一實體區塊位址代表該複數個區塊中之一區塊;以及當一特定區塊之實體頁是以相對應邏輯區塊之邏輯頁之相同的順序被連續地寫入時,透過該微處理器執行該程式碼之該控制器將該相對應邏輯區塊之鏈結資訊中之一指標設為空(Null)值,以避免指向任何邏輯實體頁鏈結表。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW098129600A TWI450271B (zh) | 2009-09-02 | 2009-09-02 | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 |
| US12/765,882 US8954646B2 (en) | 2009-09-02 | 2010-04-23 | 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 |
|---|---|---|---|
| TW098129600A TWI450271B (zh) | 2009-09-02 | 2009-09-02 | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201110126A TW201110126A (en) | 2011-03-16 |
| TWI450271B true TWI450271B (zh) | 2014-08-21 |
Family
ID=43626525
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW098129600A TWI450271B (zh) | 2009-09-02 | 2009-09-02 | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US8954646B2 (zh) |
| TW (1) | TWI450271B (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI574274B (zh) * | 2015-05-07 | 2017-03-11 | 慧榮科技股份有限公司 | 循環區塊模式下的資料存取方法以及使用該方法的裝置 |
| TWI584292B (zh) * | 2016-09-08 | 2017-05-21 | 群聯電子股份有限公司 | 記憶體抹除方法、記憶體控制電路單元及記憶體儲存裝置 |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8219781B2 (en) | 2008-11-06 | 2012-07-10 | Silicon Motion Inc. | Method for managing a memory apparatus, and associated memory apparatus thereof |
| TWI508068B (zh) * | 2012-07-25 | 2015-11-11 | Silicon Motion Inc | 管理快閃記憶體中所儲存之資料的方法,及相關的記憶裝置與控制器 |
| CN108595345B (zh) | 2012-07-25 | 2021-11-23 | 慧荣科技股份有限公司 | 管理闪存中所储存的数据的方法及相关记忆装置与控制器 |
| US9612773B2 (en) * | 2013-11-21 | 2017-04-04 | Samsung Electronics Co., Ltd. | User device having a host flash translation layer (FTL), a method for transferring an erase count thereof, a method for transferring reprogram information thereof, and a method for transferring a page offset of an open block thereof |
| US11687447B1 (en) * | 2022-01-04 | 2023-06-27 | Silicon Motion, Inc. | Method and apparatus for performing access control of memory device with aid of additional physical address information |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200413916A (en) * | 2002-10-28 | 2004-08-01 | Sandisk Corp | Method and apparatus for grouping pages within a block |
| US6938144B2 (en) * | 2001-03-22 | 2005-08-30 | Matsushita Electric Industrial Co., Ltd. | Address conversion unit for memory device |
| US20060184718A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct file data programming and deletion in flash memories |
| TW200805394A (en) * | 2006-07-07 | 2008-01-16 | Alcor Micro Corp | Memory storage device and the read/write method thereof |
| US20080104310A1 (en) * | 2006-10-26 | 2008-05-01 | Sandisk Il Ltd. | Erase history-based flash writing method |
| US20080250195A1 (en) * | 2000-01-06 | 2008-10-09 | Super Talent Electronics Inc. | Multi-Operation Write Aggregator Using a Page Buffer and a Scratch Flash Block in Each of Multiple Channels of a Large Array of Flash Memory to Reduce Block Wear |
| US20080270680A1 (en) * | 2005-11-17 | 2008-10-30 | Chee Keng Chang | Controller for Non-Volatile Memories and Methods of Operating the Memory Controller |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN100371873C (zh) * | 2003-09-18 | 2008-02-27 | 松下电器产业株式会社 | 半导体存储卡、半导体存储器控制装置以及半导体存储器控制方法 |
| US8151060B2 (en) * | 2006-11-28 | 2012-04-03 | Hitachi, Ltd. | Semiconductor memory system having a snapshot function |
| US20080282024A1 (en) * | 2007-05-09 | 2008-11-13 | Sudeep Biswas | Management of erase operations in storage devices based on flash memories |
| US8046530B2 (en) * | 2008-10-02 | 2011-10-25 | Infineon Technologies Ag | Process and method for erase strategy in solid state disks |
| US8725927B2 (en) * | 2008-10-15 | 2014-05-13 | Micron Technology, Inc. | Hot memory block table in a solid state storage device |
| TWI413931B (zh) * | 2009-01-15 | 2013-11-01 | Phison Electronics Corp | 快閃記憶體資料之存取方法及其儲存系統與控制系統 |
| US8447915B2 (en) * | 2009-07-23 | 2013-05-21 | Hitachi, Ltd. | Flash memory device for allocating physical blocks to logical blocks based on an erase count |
-
2009
- 2009-09-02 TW TW098129600A patent/TWI450271B/zh active
-
2010
- 2010-04-23 US US12/765,882 patent/US8954646B2/en active Active
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080250195A1 (en) * | 2000-01-06 | 2008-10-09 | Super Talent Electronics Inc. | Multi-Operation Write Aggregator Using a Page Buffer and a Scratch Flash Block in Each of Multiple Channels of a Large Array of Flash Memory to Reduce Block Wear |
| US6938144B2 (en) * | 2001-03-22 | 2005-08-30 | Matsushita Electric Industrial Co., Ltd. | Address conversion unit for memory device |
| TW200413916A (en) * | 2002-10-28 | 2004-08-01 | Sandisk Corp | Method and apparatus for grouping pages within a block |
| US20060184718A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct file data programming and deletion in flash memories |
| US20080270680A1 (en) * | 2005-11-17 | 2008-10-30 | Chee Keng Chang | Controller for Non-Volatile Memories and Methods of Operating the Memory Controller |
| TW200805394A (en) * | 2006-07-07 | 2008-01-16 | Alcor Micro Corp | Memory storage device and the read/write method thereof |
| US20080104310A1 (en) * | 2006-10-26 | 2008-05-01 | Sandisk Il Ltd. | Erase history-based flash writing method |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI574274B (zh) * | 2015-05-07 | 2017-03-11 | 慧榮科技股份有限公司 | 循環區塊模式下的資料存取方法以及使用該方法的裝置 |
| US10168951B2 (en) | 2015-05-07 | 2019-01-01 | Silicon Motion, Inc. | Methods for accessing data in a circular block mode and apparatuses using the same |
| TWI584292B (zh) * | 2016-09-08 | 2017-05-21 | 群聯電子股份有限公司 | 記憶體抹除方法、記憶體控制電路單元及記憶體儲存裝置 |
Also Published As
| Publication number | Publication date |
|---|---|
| TW201110126A (en) | 2011-03-16 |
| US8954646B2 (en) | 2015-02-10 |
| US20110055460A1 (en) | 2011-03-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI425357B (zh) | 用來進行區塊管理之方法以及記憶裝置及控制器 | |
| TWI446345B (zh) | 用來進行區塊管理之方法以及記憶裝置及控制器 | |
| US8214578B2 (en) | Method of storing data into flash memory according to usage patterns of addresses and data storage system using the same | |
| US11809328B2 (en) | Control method of flash memory controller and associated flash memory controller and storage device | |
| US9058256B2 (en) | Data writing method, memory controller and memory storage apparatus | |
| US20190095100A1 (en) | Block Clearing Method | |
| US20130346675A1 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
| TWI450271B (zh) | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 | |
| US8037236B2 (en) | Flash memory writing method and storage system and controller using the same | |
| US9021218B2 (en) | Data writing method for writing updated data into rewritable non-volatile memory module, and memory controller, and memory storage apparatus using the same | |
| CN110673789B (zh) | 固态硬盘的元数据存储管理方法、装置、设备及存储介质 | |
| US9037814B2 (en) | Flash memory management method and flash memory controller and storage system using the same | |
| US9619380B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
| CN110674056B (zh) | 一种垃圾回收方法及装置 | |
| US9009442B2 (en) | Data writing method, memory controller and memory storage apparatus | |
| TWI437569B (zh) | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 | |
| US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
| TW201339958A (zh) | 記憶體控制器、記憶體儲存裝置與資料寫入方法 | |
| TW201321974A (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
| US20150074335A1 (en) | Memory system, controller and control method of memory | |
| US8417909B2 (en) | Block management and data writing method, and flash memory storage system and controller using the same | |
| US8209464B2 (en) | Management method, management apparatus, and controller for memory data access | |
| TWI455133B (zh) | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 | |
| US20130067141A1 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
| TWI420528B (zh) | 用來增進一快閃記憶體的效能之方法以及相關之可攜式記憶裝置及其控制器 |