專利名稱:用于管理閃存多個區(qū)塊的方法和相關記憶裝置及其控制器的制作方法
技術領域:
本發(fā)明涉及閃存(Flash Memory)的存取(Access),更具體地說,涉及一種用于管 理一閃存的多個區(qū)塊的方法以及相關的記憶裝置及其控制器。
背景技術:
近年來由于閃存的技術不斷地發(fā)展,各種便攜式記憶裝置(例如符合SD/MMC、 CF、MS、)(D標準的記憶卡)被廣泛地實施于諸多應用中。因此,這些便攜式記憶裝置中的閃 存的存取控制也就成為相當熱門的話題。
以常用的NAND型閃存而言,其主要可區(qū)分為單層單元閃存(Single Level Cell, SLC)與多層單元閃存(Multiple Level Cell,MLC)兩大類。單層單元閃存中的每個被當作 記憶單元的晶體管只有兩種電荷值,分別用于表示邏輯值0與邏輯值1。另外,多層單元閃 存中的每個被當作記憶單元的晶體管的儲存能力則被充分利用,采用較高的電壓來驅動, 以通過不同級別的電壓在一個晶體管中記錄兩組位信息(例如00、01、11、10);理論上,多 階細胞閃存的記錄密度可以達到單階細胞閃存的記錄密度的兩倍以上,這對于曾經在發(fā)展 過程中遇到瓶頸的NAND型閃存的相關產業(yè)而言,是非常好的消息。
與單層單元閃存相比,由于多層單元閃存的價格較便宜,并且在有限的空間里可 提供較大的容量,故多層單元閃存很快地成為市場上的便攜式記憶裝置競相采用的主流。 然而,多層單元閃存的不穩(wěn)定性所導致的問題也一一浮現。例如依據相關技術,一旦閃存 因使用多時而質量變差,使用者的數據就可能隨時會遺失。尤其是,與單層單元閃存相比, 多層單元閃存中的每一區(qū)塊的抹除次數(Erase Count)的上限相對地低,這會使得上述的 不穩(wěn)定性的問題更加突出。
需要注意的是,閃存的每一區(qū)塊的抹除次數的上限往往隨著新的制造技術的采用 而降低。然而,制造技術的進展往往是閃存制造廠商降低成本的重要手段;在此狀況下,上 述的不穩(wěn)定性的問題將會更加嚴重。因此,需要一種新穎的方法來加強控管閃存的數據存 取,以確保使用者數據的完整性。發(fā)明內容
因此,本發(fā)明的目的之一在于提供一種用于管理一閃存的多個區(qū)塊的方法以及相 關的記憶裝置及其控制器,以解決上述問題。
本發(fā)明的另一目的在于提供一種用于管理一閃存的多個區(qū)塊的方法以及相關的 記憶裝置及其控制器,以增進運作效能并減少所述閃存中的區(qū)塊的合并運作的次數,甚至 可以不必進行合并運作。
本發(fā)明的又一目的在于提供一種用于管理一閃存的多個區(qū)塊的方法以及相關的 記憶裝置及其控制器,以減緩閃存中的區(qū)塊的抹除次數的增加速率。因此,通過利用本發(fā)明 所實現的便攜式記憶裝置會擁有較長的使用壽命。
本發(fā)明的較佳實施例中提供一種用于管理一閃存的多個區(qū)塊的方法,所述方法包括針對一邏輯區(qū)塊地址記錄/更新鏈接信息,其中所述鏈接信息包括鏈接至所述邏輯區(qū) 塊地址的多個實體區(qū)塊地址,且每一實體區(qū)塊地址代表所述多個區(qū)塊中的一區(qū)塊;以及當 所述多個實體區(qū)塊地址中的一實體區(qū)塊地址所代表的區(qū)塊已無有效頁時,選擇性地抹除所 述區(qū)塊并從所述鏈接信息中移除所述實體區(qū)塊地址。
本發(fā)明于提供上述方法的同時,也對應地提供一種記憶裝置,其包括有一閃存, 所述閃存包括多個區(qū)塊;以及一控制器,用于存取所述閃存以及管理所述多個區(qū)塊,其中所 述控制器針對一邏輯區(qū)塊地址記錄/更新鏈接信息,而所述鏈接信息包括鏈接至所述邏輯 區(qū)塊地址的多個實體區(qū)塊地址,且每一實體區(qū)塊地址代表所述多個區(qū)塊中的一區(qū)塊;其中 當所述多個實體區(qū)塊地址中的一實體區(qū)塊地址所代表的區(qū)塊已無有效頁時,所述控制器選 擇性地抹除所述區(qū)塊并從所述鏈接信息中移除所述實體區(qū)塊地址。
本發(fā)明在提供上述方法的同時,還對應地提供一種記憶裝置的控制器,所述控制 器系用于存取一閃存,所述閃存包括多個區(qū)塊,所述控制器包括有一只讀存儲器,用于儲 存一程序代碼;以及一微處理器,用于執(zhí)行所述程序代碼以控制對所述閃存的存取以及管 理所述多個區(qū)塊;其中通過所述微處理器執(zhí)行所述程序代碼的所述控制器針對一邏輯區(qū)塊 地址記錄/更新鏈接信息,而所述鏈接信息包括鏈接至所述邏輯區(qū)塊地址的多個實體區(qū)塊 地址,且每一實體區(qū)塊地址代表所述多個區(qū)塊中的一區(qū)塊;以及當所述多個實體區(qū)塊地址 中的一實體區(qū)塊地址所代表的區(qū)塊已無有效頁時,通過所述微處理器執(zhí)行所述程序代碼的 所述控制器選擇性地抹除所述區(qū)塊并從所述鏈接信息中移除所述實體區(qū)塊地址。
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對 本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。
參考圖1,圖1為依據本發(fā)明一第一實施例的一種記憶裝置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則用 于執(zhí)行程序代碼112C以控制對閃存120的存取。請注意到,程序代碼112C也需儲存在緩 沖存儲器116或任何形式的存儲器內。
一般情況下,閃存120包括多個區(qū)塊(Block),而該控制器(例如通過微處理器 112執(zhí)行程序代碼112C的存儲器控制器110)對閃存120進行抹除數據的運作以區(qū)塊為單 位來進行抹除。另外,一區(qū)塊可記錄特定數量的頁O^age),其中該控制器對閃存120進行寫 入數據的運作以頁為單位來進行寫入。
實際操作中,通過微處理器112執(zhí)行程序代碼112C的存儲器控制器110可利用其 本身內部的組件來進行諸多控制運作,例如利用控制邏輯114來控制閃存120的存取運 作(尤其是對至少一區(qū)塊或至少一頁的存取運作)、利用緩沖存儲器116進行所需的緩沖處 理、以及利用接口邏輯118來與一主裝置(Host Device)交互。
依據本實施例,除了能存取閃存120,該控制器還能妥善地管理該多個區(qū)塊。更明 確而言,在寫入/更新數據時,該控制器可針對一邏輯區(qū)塊地址記錄/更新鏈接信息,其中 該鏈接信息包括鏈接至該邏輯區(qū)塊地址的多個實體區(qū)塊地址,且每一實體區(qū)塊地址代表該 多個區(qū)塊中的一區(qū)塊。另外,當該多個實體區(qū)塊地址中的一實體區(qū)塊地址所代表的區(qū)塊已 無有效頁(Valid Page)時,選擇性地抹除該區(qū)塊并從該鏈接信息中移除該實體區(qū)塊地址。
在此,一有效頁代表具有有效數據的數據頁,尤其是代表實際鏈接至某一邏輯頁 地址的一第一實體頁。由于該控制器對閃存120進行抹除數據的運作以區(qū)塊為單位來進行 抹除,故當該控制器針對該邏輯頁地址更新數據時,會將更新的數據寫入一第二實體頁,并 將該邏輯頁地址與該第一實體頁之間的鏈接關系取代為該邏輯頁地址與該第二實體頁之 間的鏈接關系。如此,該控制器取消該邏輯頁地址與該第一實體頁之間的鏈接關系。于是, 該第一實體頁就不再是有效頁,乃是被視為無效頁(Invalid Page)。
圖2為依據本發(fā)明一實施例的一種用于管理一閃存的多個區(qū)塊的方法910的流程 圖。該方法可應用于圖1所示的記憶裝置100,尤其是上述的控制器(例如通過微處理器 112執(zhí)行程序代碼112C的存儲器控制器110)。另外,該方法可通過利用圖1所示的記憶裝 置100來實施,尤其是通過利用上述的控制器來實施。該方法說明如下
在步驟912中,上述的控制器(例如通過微處理器112執(zhí)行程序代碼112C的存 儲器控制器110)針對一邏輯區(qū)塊地址記錄/更新鏈接信息,其中該鏈接信息包括鏈接至該 邏輯區(qū)塊地址的多個實體區(qū)塊地址,且每一實體區(qū)塊地址代表該多個區(qū)塊中的一區(qū)塊。尤 其是,該鏈接信息還包括目前實體頁位置信息,用于指出針對該邏輯區(qū)塊地址最新寫入的實體頁的位置。另外,該鏈接信息還包括其它信息可供參考。于是,當該控制器日后要針對 該邏輯區(qū)塊地址進行存取時,即可依據該鏈接信息來存取屬于該邏輯區(qū)塊地址的數據。
在步驟914中,當該多個實體區(qū)塊地址中的一實體區(qū)塊地址所代表的區(qū)塊已無有 效頁時,該控制器選擇性地抹除該區(qū)塊并從該鏈接信息中移除該實體區(qū)塊地址。例如當該 實體區(qū)塊地址所代表的區(qū)塊已無有效頁時,該控制器立即抹除該區(qū)塊并從該鏈接信息中移 除該實體區(qū)塊地址。這只是為了說明的目的而已,并非對本發(fā)明的限制。依據本實施例的 一變化例,當該實體區(qū)塊地址所代表的區(qū)塊已無有效頁時,該控制器基于一特定事件的發(fā) 生來觸發(fā)抹除該區(qū)塊并移除該實體區(qū)塊地址的運作。這樣,該控制器等到該特定事件的發(fā) 生才抹除該區(qū)塊并從該鏈接信息中移除該實體區(qū)塊地址。依據本實施例的另一變化例,當 該些實體區(qū)塊地址所代表的區(qū)塊當中已無有效頁的區(qū)塊的數量已達一預定值時,該控制器 一并抹除這些已無有效頁的區(qū)塊并從該鏈接信息中移除其實體區(qū)塊地址。依據本實施例的 另一變化例,當該些實體區(qū)塊地址所代表的區(qū)塊的數量已達一預定值時,該控制器將該些 實體區(qū)塊地址所代表的區(qū)塊中的至少一部分區(qū)塊的有效頁合并(Merge)到至少一新的空 白區(qū)塊,且抹除該至少一部分區(qū)塊并從該鏈接信息中移除其實體區(qū)塊地址。尤其是在本變 化例中,該至少一部分區(qū)塊為該些實體區(qū)塊地址所代表的區(qū)塊當中具有最少(或較少)有 效頁的一個或多個區(qū)塊。
依據本實施例,該鏈接信息還包括頁鏈接信息。該控制器會依據該頁鏈接信息來 判定該實體區(qū)塊地址所代表的區(qū)塊是否已無有效頁。尤其是,該頁鏈接信息包括一邏輯實 體頁鏈接表;這樣,在該邏輯實體頁鏈接表中,該控制器就可以針對屬于該邏輯區(qū)塊地址的 一邏輯頁地址記錄/更新相對應的一實體區(qū)塊地址或其代表信息,并記錄/更新相對應的 一實體頁地址。關于該鏈接信息的實施細節(jié),請參考圖3來進一步說明。
圖3為圖2所示的方法在一實施例中所涉及的鏈接信息300-i的示意圖。在步驟 912中,上述的控制器(例如通過微處理器112執(zhí)行程序代碼112C的存儲器控制器110)可針對任一邏輯區(qū)塊地址LB(i)記錄/更新鏈接信息,其中i = 0、1.....或η。如圖3所示,鏈接信息300-i包括目前實體頁位置信息例如當前空白頁位置CUrrent_PI^ge、指向 邏輯實體頁鏈接表320-i的一指針I(yè)^ge_Link_Table、鏈接至邏輯區(qū)塊地址LB(i)的多個實體區(qū)塊地址(例如圖3所示的實體區(qū)塊地址PBA(O)、PBA(I).....與PBA(N))的數量PBA_Coimt、以及具有該多個實體區(qū)塊地址的一實體區(qū)塊地址表318-i。當前空白頁位置 Currrent_PPage用來標示最新一頁資料應寫入哪一個實體頁。在本實施例中,實體區(qū)塊地址PBA(O)、PBA(1).....與PBA(N)分別代表實體區(qū)塊0、1.....與N。該控制器依序使用了實體區(qū)塊0、1.....與N儲存屬于邏輯區(qū)塊地址LB (i)的數據,并且依序在實體區(qū)塊地址表318-i記錄了實體區(qū)塊地址PBA(O) ,PBA(I).....與PBA(N)。這只是為了說明的目的而已,并非對本發(fā)明的限制。在實際操作中,實體區(qū)塊地址表318-i中可儲存任何被該控制器針 對邏輯區(qū)塊地址LB(i)寫入數據的實體區(qū)塊的實體區(qū)塊地址。尤其是,該控制器可隨時在 實體區(qū)塊地址表318-i中新增或移除任何實體區(qū)塊地址,并可根據需要重新調整實體區(qū)塊 地址表318-i中的實體區(qū)塊地址的位置。
一般而言,實體區(qū)塊地址表318-i中的實體區(qū)塊地址可為該多個區(qū)塊中的任何部 分的區(qū)塊的實體區(qū)塊地址,且該些實體區(qū)塊地址的順序不需要和該多個區(qū)塊中的任何部分 的區(qū)塊的順序相同,并且實體區(qū)塊地址表318-i中的任兩相鄰字段內的兩實體區(qū)塊地址不必是連續(xù)的。例如在多次針對邏輯區(qū)塊地址LB (i)進行數據存取之后,該控制器依序在實 體區(qū)塊地址表318-i記錄了實體區(qū)塊地址PBA (1024)、PBA (20)、PBA (8)、PBA (74)、…等, 分別代表實體區(qū)塊10對、20、8、74、...等,就是當時仍用于儲存屬于邏輯區(qū)塊地址LB (i)的 數據的實體區(qū)塊。
在本實施例中,該控制器首先使用實體區(qū)塊地址PBA (0)所代表的實體區(qū)塊0來寫 入/更新屬于邏輯區(qū)塊地址LB (i)的數據,并將實體區(qū)塊地址PBA(O)記錄在實體區(qū)塊地址 表318-i,其中實體區(qū)塊地址表318-i中最初只有實體區(qū)塊地址PBA(O),且數量PBA_Count 的初始值等于1。在這個過程中,該控制器在邏輯實體頁鏈接表320-i中記錄/更新多組實 體區(qū)塊地址表索引與實體頁地址,以便日后可以找到屬于邏輯區(qū)塊地址LB(i)的數據,其 中邏輯實體頁鏈接表320-i的每一列(或項目)包括一組實體區(qū)塊地址表索引與實體頁地 址,且由上至下的各列(或項目)分別對應于屬于邏輯區(qū)塊地址LB(i)的各個邏輯頁地址 LPage (0)、LPage (1)、…、與 LPage (m_l)。
請注意,本實施例的實體區(qū)塊地址表索引選自圖3右上角所示的實體區(qū)塊地址表索引PBAT(O) ,PBAT(I).....與PBAT (N),而該控制器可依據實體區(qū)塊地址表索引PBAT(O)、PBAT(I)、…、與PBAT(N)于實體區(qū)塊地址表318-i當中分別查找出實體區(qū)塊地址PBA(O)、PBA(I).....與PBA(N)。這樣,邏輯實體頁鏈接表320-i中所儲存的每一實體區(qū)塊地址表索引為一相對應的實體區(qū)塊地址的代表信息(索引信息),其中該代表信息的典型數據量 小于該相對應的實體區(qū)塊地址的數據量,故在邏輯實體頁鏈接表320-i中儲存該代表信息 (而不直接儲存該相對應的實體區(qū)塊地址)有助于節(jié)省儲存空間并提升整體運作效能。另外,本實施例的實體區(qū)塊地址表索引PBAT(O)、PBAT(I).....與PBAT(N)分別為OU.....與N,也即實體區(qū)塊地址表318-i各字段的順位,故實際應用中實體區(qū)塊地址表318-i不必儲存有實體區(qū)塊地址表索引PBAT(O)、PBAT(I).....與PBAT(N)。這只是為了說明的目的而已,并非對本發(fā)明的限制。依據本實施例的一變化例,實體區(qū)塊地址表索引PBAT(O)、PBAT(I).....與PBAT(N)可為別的數值。依據本實施例的另一變化例,該控制器在邏輯實體頁鏈接表320-i中直接儲存該相對應的實體區(qū)塊地址(而不儲存該代表信息);也就是 說,該控制器在邏輯實體頁鏈接表320-i中記錄/更新多組實體區(qū)塊地址與實體頁地址,以 便日后可以找到屬于邏輯區(qū)塊地址LB(i)的數據,其中邏輯實體頁鏈接表320-i的每一列 (或項目)包括一組實體區(qū)塊地址與實體頁地址。
依據本實施例,在建立實體區(qū)塊地址表318-i的過程之初,當實體區(qū)塊地址 PBA(O)所代表的實體區(qū)塊已完全寫入(Fully Programmed)時,該控制器接著使用實體區(qū) 塊地址PBA⑴所代表的實體區(qū)塊來寫入/更新屬于邏輯區(qū)塊地址LB (i)的數據,并將實體 區(qū)塊地址PBA(I)記錄于實體區(qū)塊地址表318-i,其中此時實體區(qū)塊地址表318-i中只有實 體區(qū)塊地址PBA(O)及PBA(I),且數量PBA_Coimt的值被更改為2。此情況下,一旦該控制器 必須針對邏輯區(qū)塊地址LB (i)的某一邏輯頁地址更新數據,例如針對邏輯頁地址LPage (Hitl) 更新數據,則該控制器更新邏輯實體頁鏈接表320-i中對應于邏輯頁地址LPage(Hi0)的 一組實體區(qū)塊地址表索引與實體頁地址,其中該實體區(qū)塊地址表索引由PBAT(O)更新為 PBAT(I),且該實體頁地址由實體區(qū)塊0的一舊數據頁的地址更新為實體區(qū)塊1的一新數據 頁的地址。也即,該控制器以實體區(qū)塊地址表318-i中順位較后面的一實體區(qū)塊(即實體 區(qū)塊地址表索引較大的實體區(qū)塊)的相關鏈接信息更新實體區(qū)塊地址表318-i中順位較前面的一實體區(qū)塊(即實體區(qū)塊地址表索引較小的實體區(qū)塊)的相關鏈接信息。這只是為了 說明的目的而已,并非對本發(fā)明的限制。依據本實施例的一變化例,當一特定區(qū)塊的實體頁 是以相對應邏輯區(qū)塊的邏輯頁的相同的順序被連續(xù)地寫入時,該控制器可將該相對應邏輯 區(qū)塊的鏈接信息中的指針I(yè)^age^inkjable設為空(Null)值,以避免指向任何邏輯實體頁 鏈接表。
類似地,在本實施例中,當實體區(qū)塊地址PBA(j-Ι)所代表的實體區(qū)塊已完全寫入 時,該控制器使用實體區(qū)塊地址PBA(j)所代表的實體區(qū)塊來寫入/更新屬于邏輯區(qū)塊地址 LB⑴的數據,并將實體區(qū)塊地址PBA (j)記錄于實體區(qū)塊地址表318-i,其中此時實體區(qū)塊 地址表318-i中儲存有實體區(qū)塊地址PBA(O)、PBA(1)、...、與PBA (j),且數量PBA_Count的 值被更改為(j+Ι)。此情況下,一旦該控制器必須針對邏輯區(qū)塊地址LB (i)的某一邏輯頁地 址更新數據,例如針對邏輯頁地址LPage (Hi1)更新數據,則該控制器更新邏輯實體頁鏈接表 320-i中對應于邏輯頁地址LPage (Hi1)的一組實體區(qū)塊地址表索引與實體頁地址,其中該實 體區(qū)塊地址表索引更新為PBAT(j),且該實體頁地址更新為實體區(qū)塊j的一新數據頁的地 址。
如此,上述的運作擴增了實體區(qū)塊地址表318-i,其中參數j由1變化至N。于是, 當j = N時,實體區(qū)塊地址表318-i中儲存有實體區(qū)塊地址PBA(O) ,PBA(I)、...、與PBA(N), 且數量PBA_Count的值被更改為(N+1)。
隨著數量PBA_Coimt的值不斷地增加,實體區(qū)塊地址表318_i中所儲存的各個實 體區(qū)塊地址會逐一滿足步驟914所述的執(zhí)行條件。于是,當該些實體區(qū)塊地址中的任一實 體區(qū)塊地址所代表的區(qū)塊已無有效頁時,該控制器即可選擇性地抹除該區(qū)塊并從該鏈接信 息中移除該實體區(qū)塊地址。這樣,本發(fā)明的方法以及相關的記憶裝置及其控制器可大幅地 減少合并運作(Merging Operation)以及無效數據頁的垃圾集中(Gartage Collection) 運作的負擔。
依據本實施例,當鏈接信息300-i指出有K個實體區(qū)塊地址鏈接至邏輯區(qū)塊地址 LB (i)時,關于無效數據頁的垃圾集中運作的負擔大約減為(1/K)倍,即其效能約為現有技 術的K倍。尤其是,當K大于一個區(qū)塊的頁數(例如m)時,關于無效數據頁的垃圾集中運 作的負擔就可以完全去除,且不需要進行合并運作。因此,本發(fā)明的方法以及相關的記憶裝 置及其控制器可減緩閃存120中的區(qū)塊的抹除次數(Erase Count)的增加速率。
與現有技術相比,本發(fā)明的方法以及相關的記憶裝置及其控制器可增進運作效能 并減少閃存中的區(qū)塊的合并運作的次數,甚至可以不必進行合并運作。另外,本發(fā)明的方法 以及相關的記憶裝置及其控制器可以減緩閃存中的區(qū)塊的抹除次數的增加速率。因此,通 過利用本發(fā)明所實現的便攜式記憶裝置會擁有較長的使用壽命。
以上所述僅為本發(fā)明的較佳實施例,凡依本發(fā)明申請專利范圍所做的均等變化與 修飾,皆應屬本發(fā)明的涵蓋范圍。
權利要求
1.一種用于管理閃存的多個區(qū)塊的方法,其特征在于,該方法包括針對一邏輯區(qū)塊地址記錄/更新鏈接信息,其中所述鏈接信息包括鏈接至所述邏輯區(qū) 塊地址的多個實體區(qū)塊地址,且每一實體區(qū)塊地址代表所述多個區(qū)塊中的一區(qū)塊;以及當所述多個實體區(qū)塊地址中的一實體區(qū)塊地址所代表的區(qū)塊已無有效頁時,選擇性地 抹除所述區(qū)塊并從所述鏈接信息中移除所述實體區(qū)塊地址。
2.根據權利要求1所述的用于管理閃存的多個區(qū)塊的方法,其特征在于,其中所述鏈 接信息還包括目前實體頁位置信息,用于指出針對所述邏輯區(qū)塊地址最新寫入的實體頁的 位置。
3.根據權利要求1所述的用于管理閃存的多個區(qū)塊的方法,其特征在于,其中所述鏈 接信息還包括頁鏈接信息;以及所述方法還包括依據所述頁鏈接信息來判定所述實體區(qū)塊地址所代表的區(qū)塊是否已無有效頁。
4.根據權利要求3所述的用于管理閃存的多個區(qū)塊的方法,其特征在于,其中所述頁 鏈接信息包括一邏輯實體頁鏈接表;以及針對所述邏輯區(qū)塊地址記錄/更新所述鏈接信息 的步驟還包括在所述邏輯實體頁鏈接表中,針對屬于所述邏輯區(qū)塊地址的一邏輯頁地址記錄/更新 相對應的一實體區(qū)塊地址或其代表信息,并記錄/更新相對應的一實體頁地址。
5.根據權利要求4所述的用于管理閃存的多個區(qū)塊的方法,其特征在于,其中針對所 述邏輯頁地址記錄/更新相對應的所述實體區(qū)塊地址或其代表信息,并記錄/更新相對應 的所述實體頁地址的步驟還包括以一實體區(qū)塊地址表中順位較后面的一實體區(qū)塊的一相關鏈接信息更新所述實體區(qū) 塊地址表中順位較前面的一實體區(qū)塊的一相關鏈接信息。
6.根據權利要求4所述的用于管理閃存的多個區(qū)塊的方法,其特征在于,其中所述頁 鏈接信息還包括指向所述邏輯實體頁鏈接表的一指針。
7.根據權利要求1所述的用于管理閃存的多個區(qū)塊的方法,其特征在于,其中所述鏈 接信息還包括所述多個實體區(qū)塊地址的數量。
8.根據權利要求1所述的用于管理閃存的多個區(qū)塊的方法,其特征在于,其中選擇性 地抹除所述區(qū)塊并從所述鏈接信息中移除代表所述區(qū)塊的實體區(qū)塊地址的步驟還包括當所述實體區(qū)塊地址所代表的區(qū)塊已無有效頁時,立即抹除所述區(qū)塊并從所述鏈接信 息中移除所述實體區(qū)塊地址。
9.根據權利要求1所述的用于管理閃存的多個區(qū)塊的方法,其特征在于,其中選擇性 地抹除所述區(qū)塊并從所述鏈接信息中移除代表所述區(qū)塊的實體區(qū)塊地址的步驟還包括當所述實體區(qū)塊地址所代表的區(qū)塊已無有效頁時,基于一特定事件的發(fā)生來觸發(fā)抹除 所述區(qū)塊并移除所述實體區(qū)塊地址的運作。
10.根據權利要求1所述的用于管理閃存的多個區(qū)塊的方法,其特征在于,其中選擇性 地抹除所述區(qū)塊并從所述鏈接信息中移除代表所述區(qū)塊的實體區(qū)塊地址的步驟還包括當所述實體區(qū)塊地址所代表的區(qū)塊當中已無有效頁的區(qū)塊的數量已達一預定值時,一 并抹除這些已無有效頁的區(qū)塊并從所述鏈接信息中移除其實體區(qū)塊地址。
11.根據權利要求1所述的用于管理閃存的多個區(qū)塊的方法,其特征在于,其中選擇性 地抹除所述區(qū)塊并從所述鏈接信息中移除代表所述區(qū)塊的實體區(qū)塊地址的步驟還包括當所述些實體區(qū)塊地址所代表的區(qū)塊的數量已達一預定值時,將所述實體區(qū)塊地址所 代表的區(qū)塊中的至少一部分區(qū)塊的有效頁合并到至少一新的空白區(qū)塊,且抹除所述至少一 部分區(qū)塊并從所述鏈接信息中移除其實體區(qū)塊地址。
12.根據權利要求1所述的用于管理閃存的多個區(qū)塊的方法,其特征在于,還包括當一特定區(qū)塊的實體頁是以相對應邏輯區(qū)塊的邏輯頁的相同的順序被連續(xù)地寫入時, 將所述相對應邏輯區(qū)塊的鏈接信息中的一指針設為空值,以避免指向任何邏輯實體頁鏈接 表。
13.—種記憶裝置,其特征在于,包括一閃存,所述閃存包括多個區(qū)塊;以及一控制器,用于存取所述閃存以及管理所述多個區(qū)塊,其中所述控制器針對一邏輯區(qū) 塊地址記錄/更新鏈接信息,而所述鏈接信息包括鏈接至所述邏輯區(qū)塊地址的多個實體區(qū) 塊地址,且每一實體區(qū)塊地址代表所述多個區(qū)塊中的一區(qū)塊;其中當所述多個實體區(qū)塊地址中的一實體區(qū)塊地址所代表的區(qū)塊已無有效頁時,所述 控制器選擇性地抹除所述區(qū)塊并從所述鏈接信息中移除所述實體區(qū)塊地址。
14.一種記憶裝置的控制器,其特征在于,所述控制器用于存取一閃存,所述閃存包括 多個區(qū)塊,所述控制器包括一只讀存儲器,用于儲存一程序代碼;以及一微處理器,用于執(zhí)行所述程序代碼以控制對所述閃存的存取以及管理所述多個區(qū)塊;其中通過所述微處理器執(zhí)行所述程序代碼的所述控制器針對一邏輯區(qū)塊地址記錄/ 更新鏈接信息,而所述鏈接信息包括鏈接至所述邏輯區(qū)塊地址的多個實體區(qū)塊地址,且每 一實體區(qū)塊地址代表所述多個區(qū)塊中的一區(qū)塊;以及當所述多個實體區(qū)塊地址中的一實體 區(qū)塊地址所代表的區(qū)塊已無有效頁時,通過所述微處理器執(zhí)行所述程序代碼的所述控制器 選擇性地抹除所述區(qū)塊并從所述鏈接信息中移除所述實體區(qū)塊地址。
15.根據權利要求14所述的記憶裝置的控制器,其特征在于,其中所述鏈接信息還包 括目前實體頁位置信息,用于指出針對所述邏輯區(qū)塊地址最新寫入的實體頁的位置。
16.根據權利要求14所述的記憶裝置的控制器,其特征在于,其中所述鏈接信息還包 括頁鏈接信息;以及通過所述微處理器執(zhí)行所述程序代碼的所述控制器依據所述頁鏈接信 息來判定所述實體區(qū)塊地址所代表的區(qū)塊是否已無有效頁。
17.根據權利要求16所述的記憶裝置的控制器,其特征在于,其中所述頁鏈接信息包 括一邏輯實體頁鏈接表;以及在所述邏輯實體頁鏈接表中,通過所述微處理器執(zhí)行所述程 序代碼的所述控制器針對屬于所述邏輯區(qū)塊地址的一邏輯頁地址記錄/更新相對應的一 實體區(qū)塊地址或其代表信息,并記錄/更新相對應的一實體頁地址。
18.根據權利要求17所述的記憶裝置的控制器,其特征在于,其中通過所述微處理器 執(zhí)行所述程序代碼的所述控制器以一實體區(qū)塊地址表中順位較后面的一實體區(qū)塊的一相 關鏈接信息更新所述實體區(qū)塊地址表中順位較前面的一實體區(qū)塊的一相關鏈接信息。
19.根據權利要求17所述的記憶裝置的控制器,其特征在于,其中所述頁鏈接信息還 包括指向所述邏輯實體頁鏈接表的一指針。
20.根據權利要求14所述的記憶裝置的控制器,其特征在于,其中所述鏈接信息還包括所述多個實體區(qū)塊地址的數量。
21.根據權利要求14所述的記憶裝置的控制器,其特征在于,其中當所述實體區(qū)塊地 址所代表的區(qū)塊已無有效頁時,通過所述微處理器執(zhí)行所述程序代碼的所述控制器立即抹 除所述區(qū)塊并從所述鏈接信息中移除所述實體區(qū)塊地址。
22.根據權利要求14所述的記憶裝置的控制器,其特征在于,其中當所述實體區(qū)塊地 址所代表的區(qū)塊已無有效頁時,通過所述微處理器執(zhí)行所述程序代碼的所述控制器基于一 特定事件的發(fā)生來觸發(fā)抹除所述區(qū)塊并移除所述實體區(qū)塊地址的運作。
23.根據權利要求14所述的記憶裝置的控制器,其特征在于,其中當所述實體區(qū)塊地 址所代表的區(qū)塊當中已無有效頁的區(qū)塊的數量已達一預定值時,通過所述微處理器執(zhí)行所 述程序代碼的所述控制器一并抹除這些已無有效頁的區(qū)塊并從所述鏈接信息中移除其實 體區(qū)塊地址。
24.根據權利要求14所述的記憶裝置的控制器,其特征在于,其中當所述些實體區(qū)塊 地址所代表的區(qū)塊的數量已達一預定值時,通過所述微處理器執(zhí)行所述程序代碼的所述控 制器將所述些實體區(qū)塊地址所代表的區(qū)塊中的至少一部分區(qū)塊的有效頁合并到至少一新 的空白區(qū)塊,且抹除所述至少一部分區(qū)塊并從所述鏈接信息中移除其實體區(qū)塊地址。
25.根據權利要求14所述的記憶裝置的控制器,其特征在于,其中當一特定區(qū)塊的實 體頁是以相對應邏輯區(qū)塊的邏輯頁的相同的順序被連續(xù)地寫入時,通過所述微處理器執(zhí)行 所述程序代碼的所述控制器將所述相對應邏輯區(qū)塊的鏈接信息中的一指針設為空值,以避 免指向任何邏輯實體頁鏈接表。
全文摘要
本發(fā)明提供一種用于管理閃存的多個區(qū)塊的方法和相關記憶裝置及其控制器,所述方法包括針對一邏輯區(qū)塊地址記錄/更新鏈接信息,其中所述鏈接信息包括鏈接至所述邏輯區(qū)塊地址的多個實體區(qū)塊地址,且每一實體區(qū)塊地址代表所述多個區(qū)塊中的一區(qū)塊;以及當所述多個實體區(qū)塊地址中的一實體區(qū)塊地址所代表的區(qū)塊已無有效頁時,選擇性地抹除所述區(qū)塊并從所述鏈接信息中移除所述實體區(qū)塊地址。本發(fā)明還提供相關的記憶裝置及其控制器,而該控制器包括一只讀存儲器,用于儲存一程序代碼;以及一微處理器,用于執(zhí)行該程序代碼以控制對所述閃存的存取以及管理所述多個區(qū)塊。
文檔編號G06F12/06GK102033812SQ20091017975
公開日2011年4月27日 申請日期2009年9月24日 優(yōu)先權日2009年9月24日
發(fā)明者李向榮, 李維卿, 胡水華, 陳波 申請人:慧榮科技股份有限公司