TWI453747B - 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 - Google Patents
用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 Download PDFInfo
- Publication number
- TWI453747B TWI453747B TW098129598A TW98129598A TWI453747B TW I453747 B TWI453747 B TW I453747B TW 098129598 A TW098129598 A TW 098129598A TW 98129598 A TW98129598 A TW 98129598A TW I453747 B TWI453747 B TW I453747B
- Authority
- TW
- Taiwan
- Prior art keywords
- link
- page
- logical
- type
- block address
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims description 67
- 238000000034 method Methods 0.000 title claims description 35
- 230000001413 cellular effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
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
-
- 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
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型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之可攜式記憶裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。針對這諸多問題,雖然相關技術中提供了一些解決方式,卻總是無法兼顧運作效能與系統資源使用控制。於是,不論採取哪個解決方式,往往會有對應的副作用。因此,需要一種新穎的方法來加強控管快閃記憶體之資料存取,以兼顧運作效能與系統資源使用控制。
因此,本發明之目的之一在於提供一種用來管理一快閃記憶體(Flash Memory)的複數個區塊之方法以及相關之記憶裝置及其控制器,以解決上述問題。
本發明之另一目的在於提供一種用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器,以達到最佳運作效能並動態地減少運作負擔。
本發明之又一目的在於提供一種用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器,以動態地避免純頁鏈結架構的問題與純區塊鏈結架構的問題。此外,藉由利用本發明所實現之可攜式記憶裝置會擁有較長的使用壽命。
本發明之較佳實施例中提供一種用來管理一快閃記憶體的複數個區塊之方法,該方法包含有:依據至少一判定標準(Criterion)來動態地決定針對一邏輯區塊位址之一鏈結種類,其中該鏈結種類係選自於複數個預定鏈結種類;以及針對該邏輯區塊位址記錄/更新該鏈結種類以及對應於該鏈結種類之鏈結資訊。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置,其包含有:一快閃記憶體,該快閃記憶體包含複數個區塊;以及一控制器,用來存取(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,該控制器還能妥善地管理該複數個區塊。更明確而言,在寫入/更新資料時,該控制器可依據至少一判定標準(Criterion)來動態地決定針對一邏輯區塊位址之一鏈結種類,其中該鏈結種類係選自於複數個預定鏈結種類。另外,該控制器可針對該邏輯區塊位址記錄/更新該鏈結種類以及對應於該鏈結種類之鏈結資訊。
第2圖為依據本發明一實施例之一種用來管理一快閃記憶體的複數個區塊之方法910的流程圖。該方法可應用於第1圖所示之記憶裝置100,尤其是上述之控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)。另外,該方法可藉由利用第1圖所示之記憶裝置100來實施,尤其是藉由利用上述之控制器來實施。該方法說明如下:
於步驟912中,上述之控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)依據至少一判定標準來動態地決定針對一邏輯區塊位址之一鏈結種類,其中該鏈結種類係選自於複數個預定鏈結種類。例如:該複數個預定鏈結種類包含一第一鏈結種類、一第二鏈結種類、與一第三鏈結種類。尤其是,當該判定標準指出邏輯頁與實體頁之間的鏈結係有必要時,則在該控制器之控制下,該鏈結種類涉及邏輯頁與實體頁之間的鏈結(簡稱為頁鏈結);否則,該鏈結種類可僅涉及邏輯區塊與實體區塊之間的鏈結(簡稱為區塊鏈結)。依據本實施例,在該控制器之控制下,該鏈結種類可動態地在屬頁鏈結之種類與屬區塊鏈結之種類之間切換。
於步驟914中,該控制器針對該邏輯區塊位址記錄/更新該鏈結種類以及對應於該鏈結種類之鏈結資訊。例如:當該鏈結種類係為該第一鏈結種類時,該鏈結資訊包含一實體區塊位址。又例如:當該鏈結種類係為該第二鏈結種類時,該鏈結資訊包含一實體區塊位址與目前實體頁位置資訊,而該目前實體頁位置資訊係用來指出針對該邏輯區塊位址最新寫入之實體頁的位置。又例如:當該鏈結種類係為該第三鏈結種類時,該鏈結資訊包含頁鏈結資訊。
第3圖至第6圖為第2圖所示之方法於一實施例中所涉及之預定鏈結種類的示意圖,其中第3圖與第4圖分別對應於上述之第一、第二鏈結種類,而第5圖與第6圖則對應於上述之第三鏈結種類。如第3圖所示,當該控制器於步驟912中決定該鏈結種類係為該第一鏈結種類時,則在該控制器之控制下,該邏輯區塊位址所代表之邏輯區塊鏈結至一個實體區塊,且控制該邏輯區塊之所有的邏輯頁0、1、...、與z分別鏈結至該實體區塊之各個實體頁0、1、...、與z。在此,該第一鏈結種類可稱為「直接鏈結」(Direct Link)。
另外,如第4圖所示,當該控制器於步驟912中決定該鏈結種類係為該第二鏈結種類時,則在該控制器之控制下,該邏輯區塊位址所代表之邏輯區塊鏈結至一個實體區塊,但是該邏輯區塊中只有一部分邏輯頁1、2、...、與x分別鏈結至該實體區塊之一部分實體頁1、2、...、與x。在此,該第二鏈結種類可稱為「部分直接鏈結」(Partial Direct Link)。
此外,當該控制器於步驟912中決定該鏈結種類係為該第三鏈結種類時,則在該控制器之控制下,該邏輯區塊位址所代表之邏輯區塊選擇性地鏈結到一個或更多個實體區塊,且該邏輯區塊中之邏輯頁隨機地鏈結至該(些)實體區塊之實體頁。在此,該第三鏈結種類可稱為「隨機鏈結」(Random Link)。例如:第5圖所示之邏輯區塊鏈結至一個實體區塊,而該邏輯區塊中之邏輯頁1、2、...、與x隨機地鏈結至該實體區塊之實體頁1、2、...、與x(如第5圖之箭頭所示)。又例如:第6圖所示之邏輯區塊鏈結至兩個實體區塊,而該邏輯區塊中之邏輯頁0、1、2、...、與x隨機地鏈結至第6圖右上角的實體區塊之實體頁0、1、...等以及第6圖右下角的實體區塊之實體頁0、1、...、與y(如第6圖之箭頭所示)。在另一實施例中,屬於不同邏輯區塊位址之邏輯頁(例如LB(p)的邏輯頁3、LB(q)的邏輯頁7)亦得隨機地鏈結至屬於同一實體區塊位址的不同邏輯頁(例如PBA(Y_0)的邏輯頁8、9)。
請注意,於本實施例中,第5圖與第6圖均對應於上述之第三鏈結種類。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之一變化例,該第三鏈結種類可進一步細分為至少兩個鏈結種類,分別對應於該邏輯區塊所鏈結之實體區塊的數量。
第7圖為第2圖所示之方法於一實施例中所涉及之預定鏈結種類以及分別對應於該些預定鏈結種類之鏈結資訊的示意圖,其中預定鏈結種類Type(1)、Type(2)、與Type(3)分別代表上述之第一、第二、與第三鏈結種類。於本實施例中,對應於預定鏈結種類Type(1)之鏈結資訊包含一實體區塊位址以及指向該實體區塊位址之指標。例如:針對邏輯區塊位址LB(0),該鏈結種類係為預定鏈結種類Type(1),其中對應於預定鏈結種類Type(1)之鏈結資訊包含實體區塊位址PBA(X_0)以及指向實體區塊位址PBA(X_0)之指標。相仿地,針對邏輯區塊位址LB(i),當i=3、4、...、或n時,該鏈結種類係為預定鏈結種類Type(1),其中對應於預定鏈結種類Type(1)之鏈結資訊包含實體區塊位址PBA(X_i)以及指向實體區塊位址PBA(X_i)之指標。
另外,對應於預定鏈結種類Type(2)之鏈結資訊包含目前實體頁位置資訊與一實體區塊位址,且包含指向該目前實體頁位置資訊及/或該實體區塊位址之指標。例如:針對邏輯區塊位址LB(2),該鏈結種類係為預定鏈結種類Type(2),其中對應於預定鏈結種類Type(2)之鏈結資訊包含目前實體頁位置資訊Current_PPage與實體區塊位址PBA(X_2),且另包含指向目前實體頁位置資訊Current_PPage及/或實體區塊位址PBA(X_2)之指標。尤其是於本實施例中,第7圖所示之目前實體頁位置資訊Current_PPage排列在實體區塊位址PBA(X_2)之前,且針對邏輯區塊位址LB(2)之該指標指向目前實體頁位置資訊Current_PPage。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之一變化例,目前實體頁位置資訊Current_PPage可排列在實體區塊位址PBA(X_2)之後,且針對邏輯區塊位址LB(2)之該指標可指向實體區塊位址PBA(X_2)。
此外,對應於預定鏈結種類Type(3)之鏈結資訊包含頁鏈結資訊以及指向該頁鏈結資訊之指標。例如:針對邏輯區塊位址LB(1),該鏈結種類係為預定鏈結種類Type(3),其中對應於預定鏈結種類Type(3)之鏈結資訊包含一邏輯實體頁鏈結表730以及指向邏輯實體頁鏈結表730之指標。如第7圖所示,該控制器針對邏輯區塊位址LB(1)記錄/更新一實體區塊位址PBA(Y)。尤其是,於邏輯實體頁鏈結表730中,該控制器針對屬於邏輯區塊位址PBA(Y)之一邏輯頁位址LPage(j)記錄/更新相對應之一實體頁位址,以便日後可以找到屬於邏輯區塊位址LB(1)之資料,其中j=0、1、...、或(m-1)。於是,邏輯實體頁鏈結表730包含實體區塊位址PBA(Y)以及分別對應於屬於邏輯區塊位址LB(1)的邏輯頁位址LPage(0)、LPage(1)、...、與LPage(m-1)之m個實體頁位址。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之一變化例,實體區塊位址PBA(Y)可置於(儲存於)邏輯實體頁鏈結表730之外。依據本實施例之另一變化例,該邏輯實體頁鏈結表可包含超過一個實體區塊位址。
第8圖為第2圖所示之方法於另一實施例中所涉及之預定鏈結種類以及分別對應於該些預定鏈結種類之鏈結資訊的示意圖。本實施例為第7圖所示實施例之變化例,其中上述之邏輯實體頁鏈結表730被代換為邏輯實體頁鏈結表830。於邏輯實體頁鏈結表830中,該控制器針對屬於邏輯區塊位址LB(1)之一邏輯頁位址LPage(j)記錄/更新相對應之一實體區塊位址與一實體頁位址,其中j=0、1、...、或(m-1)。尤其是,該控制器於邏輯實體頁鏈結表830中記錄/更新複數組實體區塊位址與實體頁位址,以便日後可以找到屬於邏輯區塊位址LB(1)之資料,其中該複數個實體區塊位址彼此可以不相同,例如該複數個實體區塊位址可以包含實體區塊位址PBA(Y_1)、PBA(Y_7)、PBA(Y_3)等。如第8圖所示,邏輯實體頁鏈結表830之每一列(或項目)包含一組實體區塊位址與實體頁位址,且由上至下的各列(或項目)分別對應於屬於邏輯區塊位址LB(1)之各個邏輯頁位址LPage(0)、LPage(1)、...、與LPage(m-1)。本實施例與上述各個實施例/變化例相仿之處不再重複贅述。
本發明的好處之一是,針對該鏈結種類之選用,本發明之方法以及相關之記憶裝置及其控制器可視主裝置的寫入行為動態地在屬頁鏈結之種類的模式與屬區塊鏈結之種類的模式之間切換,故本發明之方法以及相關之記憶裝置及其控制器可達到最佳運作效能並動態地減少運作負擔。例如,當主裝置係連續地且完整地對某一邏輯區塊進行寫入時,則在鏈結種類上適用於「直接鏈結」的模式;而當主裝置係連續地且部分地對某一邏輯區塊進行寫入時,則在鏈結種類上適用於「部分直接鏈結」的模式;而若主裝置初期係連續地對某一邏輯區塊進行寫入,而後卻改變其寫入行為,例如改變為隨機地寫入,則在鏈結種類上可自「部分直接鏈結」的模式動態地改變為「隨機鏈結」的模式。另外,相較於習知技術,本發明之方法以及相關之記憶裝置及其控制器不但具備較佳效能,且可動態地避免純頁鏈結架構的問題與純區塊鏈結架構的問題。此外,藉由利用本發明所實現之可攜式記憶裝置會擁有較長的使用壽命。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100...記憶裝置
110...記憶體控制器
112...微處理器
112C...程式碼
112M...唯讀記憶體
114...控制邏輯
116...緩衝記憶體
118...介面邏輯
120...快閃記憶體
730,830...邏輯實體頁鏈結表
910...用來管理一快閃記憶體的複數個區塊之方法
912,914...步驟
Current_PPage...目前實體頁位置資訊
LB(0),LB(1),LB(2),LB(3),...,LB(n)...邏輯區塊位址
LPage(0),LPage(1),...,LPage(m-1)...邏輯頁位址
PBA(X-0),PBA(X-2),PBA(X_3),...,PBA(X_n),PBA(Y)...實體區塊位址
Type(1),Type(2),Type(3)...預定鏈結種類
第1圖為依據本發明一第一實施例之一種記憶裝置的示意圖。
第2圖為依據本發明一實施例之一種用來管理一快閃記憶體(Flash Memory)的複數個區塊之方法的流程圖。
第3圖至第6圖為第2圖所示之方法於一實施例中所涉及之預定鏈結種類的示意圖。
第7圖為第2圖所示之方法於一實施例中所涉及之預定鏈結種類以及分別對應於該些預定鏈結種類之鏈結資訊的示意圖。
第8圖為第2圖所示之方法於另一實施例中所涉及之預定鏈結種類以及分別對應於該些預定鏈結種類之鏈結資訊的示意圖。
910...用來管理一快閃記憶體的複數個區塊之方法
912,914...步驟
Claims (21)
- 一種用來管理一快閃記憶體(Flash Memory)的複數個區塊之方法,其中每一個區塊包含複數個頁,且該方法包含有:依據至少一判定標準(Criterion)來動態地決定針對一邏輯區塊位址之一鏈結種類,其中該鏈結種類係選自於複數個預定鏈結種類;以及針對該邏輯區塊位址記錄/更新該鏈結種類以及對應於該鏈結種類之鏈結資訊;其中當該判定標準指出邏輯頁與實體頁之間的鏈結係有必要時,則該鏈結種類涉及邏輯頁與實體頁之間的鏈結;否則,該鏈結種類僅涉及邏輯區塊與實體區塊之間的鏈結,而不會涉及邏輯頁與實體頁之間的鏈結。
- 如申請專利範圍第1項所述之方法,其中該複數個預定鏈結種類包含一第一鏈結種類;以及當該鏈結種類係為該第一鏈結種類時,該鏈結資訊包含一實體區塊位址。
- 如申請專利範圍第1項所述之方法,其中該複數個預定鏈結種類包含一第二鏈結種類;以及當該鏈結種類係為該第二鏈結種類時,該鏈結資訊包含一實體區塊位址與目前實體頁位置資訊,而該目前實體頁位置資訊係用來指出針對該邏輯區塊位址最新寫入之實體頁的位置。
- 如申請專利範圍第1項所述之方法,其中該複數個預定鏈結種類包含一第三鏈結種類;以及當該鏈結種類係為該第三鏈結種類時,該鏈結資訊包含頁鏈結資訊。
- 如申請專利範圍第4項所述之方法,其中該頁鏈結資訊包含一邏輯實體頁鏈結表;以及針對該邏輯區塊位址記錄/更新該鏈結種類以及對應於該鏈結種類之鏈結資訊之步驟另包含有:針對該邏輯區塊位址記錄/更新一實體區塊位址;以及於該邏輯實體頁鏈結表中,針對屬於該邏輯區塊位址之一邏輯頁位址記錄/更新相對應之一實體頁位址。
- 如申請專利範圍第4項所述之方法,其中該頁鏈結資訊包含一邏輯實體頁鏈結表;以及針對該邏輯區塊位址記錄/更新該鏈結種類以及對應於該鏈結種類之鏈結資訊之步驟另包含有:於該邏輯實體頁鏈結表中,針對屬於該邏輯區塊位址之一邏輯頁位址記錄/更新相對應之一實體區塊位址與一實體頁位址。
- 如申請專利範圍第1項所述之方法,其另包含有:依據該鏈結種類以及對應於該鏈結種類之鏈結資訊,針對該邏輯區塊位址存取(Access)資料。
- 一種記憶裝置,其包含有: 一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊,其中每一個區塊包含複數個頁;以及一控制器,用來存取(Access)該快閃記憶體以及管理該複數個區塊,其中該控制器依據至少一判定標準(Criterion)來動態地決定針對一邏輯區塊位址之一鏈結種類,而該鏈結種類係選自於複數個預定鏈結種類;其中該控制器針對該邏輯區塊位址記錄/更新該鏈結種類以及對應於該鏈結種類之鏈結資訊;當該判定標準指出邏輯頁與實體頁之間的鏈結係有必要時,則在該控制器之控制下,該鏈結種類涉及邏輯頁與實體頁之間的鏈結;否則,該鏈結種類僅涉及邏輯區塊與實體區塊之間的鏈結,而不會涉及邏輯頁與實體頁之間的鏈結。
- 如申請專利範圍第8項所述之記憶裝置,其中該複數個預定鏈結種類包含一第一鏈結種類;以及當該鏈結種類係為該第一鏈結種類時,該鏈結資訊包含一實體區塊位址。
- 如申請專利範圍第8項所述之記憶裝置,其中該複數個預定鏈結種類包含一第二鏈結種類;以及當該鏈結種類係為該第二鏈結種類時,該鏈結資訊包含一實體區塊位址與目前實體頁位置資訊,而該目前實體頁位置資訊係用來指出針對該邏輯區塊位址最新寫入之實體頁的位置。
- 如申請專利範圍第8項所述之記憶裝置,其中該複數個預定鏈結種類包含一第三鏈結種類;以及當該鏈結種類係為該第三鏈結種類時,該鏈結資訊包含頁鏈結資訊。
- 如申請專利範圍第11項所述之記憶裝置,其中該頁鏈結資訊包含一邏輯實體頁鏈結表;該控制器針對該邏輯區塊位址記錄/更新一實體區塊位址;以及於該邏輯實體頁鏈結表中,該控制器針對屬於該邏輯區塊位址之一邏輯頁位址記錄/更新相對應之一實體頁位址。
- 如申請專利範圍第11項所述之記憶裝置,其中該頁鏈結資訊包含一邏輯實體頁鏈結表;以及於該邏輯實體頁鏈結表中,該控制器針對屬於該邏輯區塊位址之一邏輯頁位址記錄/更新相對應之一實體區塊位址與一實體頁位址。
- 如申請專利範圍第8項所述之記憶裝置,其中該控制器依據該鏈結種類以及對應於該鏈結種類之鏈結資訊,針對該邏輯區塊位址存取資料。
- 一種記憶裝置之控制器,該控制器係用來存取(Access)一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊,每一個區塊包含複數個頁,且該控制器包含有:一唯讀記憶體(Read Only Memory,ROM),用來儲存一程式碼;以及 一微處理器,用來執行該程式碼以控制對該快閃記憶體之存取以及管理該複數個區塊;其中透過該微處理器執行該程式碼之該控制器依據至少一判定標準(Criterion)來動態地決定針對一邏輯區塊位址之一鏈結種類,而該鏈結種類係選自於複數個預定鏈結種類;以及透過該微處理器執行該程式碼之該控制器針對該邏輯區塊位址記錄/更新該鏈結種類以及對應於該鏈結種類之鏈結資訊;其中當該判定標準指出邏輯頁與實體頁之間的鏈結係有必要時,則在該控制器之控制下,該鏈結種類涉及邏輯頁與實體頁之間的鏈結;否則,該鏈結種類涉及邏輯區塊與實體區塊之間的鏈結,而不會涉及邏輯頁與實體頁之間的鏈結。
- 如申請專利範圍第15項所述之控制器,其中該複數個預定鏈結種類包含一第一鏈結種類;以及當該鏈結種類係為該第一鏈結種類時,該鏈結資訊包含一實體區塊位址。
- 如申請專利範圍第15項所述之控制器,其中該複數個預定鏈結種類包含一第二鏈結種類;以及當該鏈結種類係為該第二鏈結種類時,該鏈結資訊包含一實體區塊位址與目前實體頁位置資訊,而該目前實體頁位置資訊係用來指出針對該邏輯區塊位址最新寫入之實體頁的位置。
- 如申請專利範圍第15項所述之控制器,其中該複數個預定鏈 結種類包含一第三鏈結種類;以及當該鏈結種類係為該第三鏈結種類時,該鏈結資訊包含頁鏈結資訊。
- 如申請專利範圍第18項所述之控制器,其中該頁鏈結資訊包含一邏輯實體頁鏈結表;透過該微處理器執行該程式碼之該控制器針對該邏輯區塊位址記錄/更新一實體區塊位址;以及於該邏輯實體頁鏈結表中,透過該微處理器執行該程式碼之該控制器針對屬於該邏輯區塊位址之一邏輯頁位址記錄/更新相對應之一實體頁位址。
- 如申請專利範圍第18項所述之控制器,其中該頁鏈結資訊包含一邏輯實體頁鏈結表;以及於該邏輯實體頁鏈結表中,透過該微處理器執行該程式碼之該控制器針對屬於該邏輯區塊位址之一邏輯頁位址記錄/更新相對應之一實體區塊位址與一實體頁位址。
- 如申請專利範圍第15項所述之控制器,其中透過該微處理器執行該程式碼之該控制器依據該鏈結種類以及對應於該鏈結種類之鏈結資訊,針對該邏輯區塊位址存取資料。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098129598A TWI453747B (zh) | 2009-09-02 | 2009-09-02 | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 |
US12/764,964 US20110055459A1 (en) | 2009-09-02 | 2010-04-22 | 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 |
---|---|---|---|
TW098129598A TWI453747B (zh) | 2009-09-02 | 2009-09-02 | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201110125A TW201110125A (en) | 2011-03-16 |
TWI453747B true TWI453747B (zh) | 2014-09-21 |
Family
ID=43626524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098129598A TWI453747B (zh) | 2009-09-02 | 2009-09-02 | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110055459A1 (zh) |
TW (1) | TWI453747B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI479505B (zh) * | 2010-12-16 | 2015-04-01 | Phison Electronics Corp | 資料管理方法、記憶體控制器與記憶體儲存裝置 |
CN106529924A (zh) * | 2016-09-29 | 2017-03-22 | 马龙 | 彩色区块链的管理方法及管理系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6505269B1 (en) * | 2000-05-16 | 2003-01-07 | Cisco Technology, Inc. | Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system |
US6704852B2 (en) * | 2001-11-16 | 2004-03-09 | Key Technology Corporation | Control device applicable to flash memory card and method for building partial lookup table |
US6711663B2 (en) * | 2001-11-15 | 2004-03-23 | Key Technology Corporation | Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof |
US6873334B2 (en) * | 2000-07-12 | 2005-03-29 | Vanguard International Semiconductor Corp. | Method of buffer management and task scheduling for two-dimensional data transforming |
TWI275101B (en) * | 2005-05-24 | 2007-03-01 | Prolific Technology Inc | Flash memory storage system |
US20070124531A1 (en) * | 2005-11-30 | 2007-05-31 | Sony Corporation | Storage device, computer system, and storage device access method |
US7254668B1 (en) * | 2002-10-28 | 2007-08-07 | Sandisk Corporation | Method and apparatus for grouping pages within a block |
US7266669B2 (en) * | 2004-09-30 | 2007-09-04 | Kabushiki Kaisha Toshiba | File system with file management function and file management method |
US7370160B2 (en) * | 2005-06-29 | 2008-05-06 | Intel Corporation | Virtualizing memory type |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6016535A (en) * | 1995-10-11 | 2000-01-18 | Citrix Systems, Inc. | Method for dynamically and efficiently caching objects by subdividing cache memory blocks into equally-sized sub-blocks |
US6675278B1 (en) * | 2000-04-19 | 2004-01-06 | Motorola, Inc. | Method and apparatus for managing memory |
TWI284806B (en) * | 2003-02-27 | 2007-08-01 | Mediatek Inc | Method for managing external memory of a processor and chip for managing external memory |
US7558906B2 (en) * | 2005-08-03 | 2009-07-07 | Sandisk Corporation | Methods of managing blocks in nonvolatile memory |
US7669003B2 (en) * | 2005-08-03 | 2010-02-23 | Sandisk Corporation | Reprogrammable non-volatile memory systems with indexing of directly stored data files |
US20080109647A1 (en) * | 2006-11-07 | 2008-05-08 | Lee Merrill Gavens | Memory controllers for performing resilient firmware upgrades to a functioning memory |
US7769945B2 (en) * | 2007-01-18 | 2010-08-03 | Sandisk Il Ltd. | Method and system for facilitating fast wake-up of a flash memory system |
US9396103B2 (en) * | 2007-06-08 | 2016-07-19 | Sandisk Technologies Llc | Method and system for storage address re-mapping for a memory device |
US20080307156A1 (en) * | 2007-06-08 | 2008-12-11 | Sinclair Alan W | System For Interfacing A Host Operating Through A Logical Address Space With A Direct File Storage Medium |
US8239639B2 (en) * | 2007-06-08 | 2012-08-07 | Sandisk Technologies Inc. | Method and apparatus for providing data type and host file information to a mass storage system |
CN101241472B (zh) * | 2008-03-07 | 2010-12-22 | 威盛电子股份有限公司 | 映射管理方法及系统 |
CN101251788A (zh) * | 2008-03-07 | 2008-08-27 | 威盛电子股份有限公司 | 储存单元管理方法及系统 |
-
2009
- 2009-09-02 TW TW098129598A patent/TWI453747B/zh active
-
2010
- 2010-04-22 US US12/764,964 patent/US20110055459A1/en not_active Abandoned
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6505269B1 (en) * | 2000-05-16 | 2003-01-07 | Cisco Technology, Inc. | Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system |
US6873334B2 (en) * | 2000-07-12 | 2005-03-29 | Vanguard International Semiconductor Corp. | Method of buffer management and task scheduling for two-dimensional data transforming |
US6711663B2 (en) * | 2001-11-15 | 2004-03-23 | Key Technology Corporation | Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof |
US6704852B2 (en) * | 2001-11-16 | 2004-03-09 | Key Technology Corporation | Control device applicable to flash memory card and method for building partial lookup table |
US7254668B1 (en) * | 2002-10-28 | 2007-08-07 | Sandisk Corporation | Method and apparatus for grouping pages within a block |
US7266669B2 (en) * | 2004-09-30 | 2007-09-04 | Kabushiki Kaisha Toshiba | File system with file management function and file management method |
TWI275101B (en) * | 2005-05-24 | 2007-03-01 | Prolific Technology Inc | Flash memory storage system |
US7370160B2 (en) * | 2005-06-29 | 2008-05-06 | Intel Corporation | Virtualizing memory type |
US20070124531A1 (en) * | 2005-11-30 | 2007-05-31 | Sony Corporation | Storage device, computer system, and storage device access method |
Also Published As
Publication number | Publication date |
---|---|
TW201110125A (en) | 2011-03-16 |
US20110055459A1 (en) | 2011-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9043536B2 (en) | Method of recording mapping information, and memory controller and memory storage apparatus using the same | |
US9098395B2 (en) | Logical block management method for a flash memory and control circuit storage system using the same | |
TWI489373B (zh) | 資料儲存裝置和快閃記憶體之區塊管理方法 | |
US8103820B2 (en) | Wear leveling method and controller using the same | |
US9665481B2 (en) | Wear leveling method based on timestamps and erase counts, memory storage device and memory control circuit unit | |
US9880742B2 (en) | Valid data merging method, memory controller and memory storage apparatus | |
US20130013853A1 (en) | Command executing method, memory controller and memory storage apparatus | |
US20090265505A1 (en) | Data writing method, and flash storage system and controller using the same | |
TWI438778B (zh) | 用來抑制資料錯誤之方法以及相關之記憶裝置及其控制器 | |
TWI506422B (zh) | 用來管理具有多通道、多途徑的記憶裝置之方法以及相關之記憶裝置及其控制器 | |
US9141476B2 (en) | Method of storing system data, and memory controller and memory storage apparatus using the same | |
KR20090077538A (ko) | 반도체 메모리 장치 및 그것의 마모도 관리 방법 | |
CN111651371B (zh) | 非对称型平面管理方法以及数据存储装置及其控制器 | |
TWI437569B (zh) | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 | |
US10283196B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US8037236B2 (en) | Flash memory writing method and storage system and controller using the same | |
US8423707B2 (en) | Data access method for flash memory and storage system and controller using the same | |
TWI450271B (zh) | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 | |
US20140013030A1 (en) | Memory storage device, memory controller thereof, and method for writing data thereof | |
US20100088540A1 (en) | Block management and replacement method, flash memory storage system and controller using the same | |
US9009442B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US8943264B2 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
US20140089566A1 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
TWI453747B (zh) | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 | |
US20170115925A1 (en) | Valid data merging method, memory controller and memory storage apparatus |