TWI423023B - 快閃記憶體之區塊選取方法及資料儲存裝置 - Google Patents

快閃記憶體之區塊選取方法及資料儲存裝置 Download PDF

Info

Publication number
TWI423023B
TWI423023B TW100114003A TW100114003A TWI423023B TW I423023 B TWI423023 B TW I423023B TW 100114003 A TW100114003 A TW 100114003A TW 100114003 A TW100114003 A TW 100114003A TW I423023 B TWI423023 B TW I423023B
Authority
TW
Taiwan
Prior art keywords
block
extreme value
score
blocks
flash memory
Prior art date
Application number
TW100114003A
Other languages
English (en)
Other versions
TW201243591A (en
Inventor
Mong Ling Chiao
Original Assignee
Silicon Motion Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Priority to TW100114003A priority Critical patent/TWI423023B/zh
Priority to US13/432,887 priority patent/US8711627B2/en
Publication of TW201243591A publication Critical patent/TW201243591A/zh
Application granted granted Critical
Publication of TWI423023B publication Critical patent/TWI423023B/zh

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

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)

Description

快閃記憶體之區塊選取方法及資料儲存裝置
本發明係有關於快閃記憶體,特別是有關於快閃記憶體之區塊選取。
快閃記憶體包括多個區塊(block),每一區塊包含用以儲存資料的多個頁(page)。當控制器欲將資料儲存至快閃記憶體,必須自快閃記憶體的多個區塊選擇其中之一區塊,以供儲存資料。為了管理快閃記憶體中區塊的資料儲存,控制器有時亦必須自快閃記憶體的多個區塊選擇其中之一,以刪除被選擇區塊所儲存的資料。被選擇的區塊稱之為「犧牲區塊」(victim block)。因此,控制器經常必須自快閃記憶體的多個區塊選擇一犧牲區塊,以供資料刪除或資料儲存。
一般來說,當控制器選擇犧牲區塊時,並非盲目的進行選擇,而係依據快閃記憶體中各區塊的分數(score)高低而進行選擇。控制器可能會事先對快閃記憶體中的所有區塊進行評分,再依據分數高低選擇犧牲區塊。例如,若分數愈高的區塊愈適合成為犧牲區塊,則控制器選擇對應於分數之最大值的區塊作為犧牲區塊;而若分數愈低的區塊愈適合成為犧牲區塊,則控制器選擇對應於分數之最小值的區塊作為犧牲區塊。因此,當控制器選擇犧牲區塊時,必須事先由快閃記憶體的所有區塊的分數中找出分數的極值(extreme value)。
尋找極值並不是件容易的事。首先,控制器必須維護一分數資料串,此分數資料串記載快閃記憶體中所有的區塊的分數。接著,控制器必須在相當短的時間內依據分數資料找到分數極大值。舉例來說,依據快閃記憶體的規格,當主機發送一寫入命令至控制器,自控制器接到寫入命令開始起算,控制器至多僅能花費200ms將資料寫入。因此,控制器搜尋分數極值的時間無法超過200ms。
控制器找到分數極大值所需花費的時間與分數資料串的資料結構有關。舉例來說,第1A圖為以串列方式儲存快閃記憶體之區塊之分數資料的示意圖。X個區塊的分數S1 ~SX 依序儲存為資料儲存單元101~10X,而控制器必須逐一搜尋資料儲存單元101~10X,才能找到分數S1 ~SX 中的極值。因此,對以串列方式儲存之分數資料搜尋極值所需的時間最長。
第1B圖為以二元樹方式儲存快閃記憶體之區塊之分數資料的示意圖。二元樹的一節點分生為左方子樹(left subtree)與右方子樹(right subtree),其中左方子樹的節點資料值均小於根節點的資料值,而右方子樹的節點資料值均大於根節點的資料值。因此,二元樹中儲存的資料極值便是二元樹的右下方節點。例如,第1B圖中的二元樹120所儲存的分數資料S1 ~S12 中的極大值係節點128儲存的分數S6 。雖然以二元樹的資料結構儲存資料易於尋找極值,但當新資料欲存入二元樹時需耗費大量時間。例如當欲將分數S12 存入二元樹120時,需逐次與節點121、123、125、127、130進行分數大小的比較,耗費許多時間。當二元樹中儲存的資料愈多時,維護二元樹的資料必須耗費過多的時間,不利於控制器的資料存取。
因此,需要一種資料結構,可以讓控制器於短時間內紀錄快閃記憶體之區塊的分數,又可讓控制器於短時間內搜尋出快閃記憶體之區塊分數的極值。
有鑑於此,本發明之目的在於提供一種快閃記憶體之區塊選取方法,以解決習知技術存在之問題。首先,將一快閃記憶體之多個區塊分為多個區塊群,其中每一區塊群包括一第一數目之區塊。接著,將該等區塊群分為多個區塊大群,其中每一區塊大群包括一第二數目之區塊群。接著,於一評分紀錄表中紀錄該快閃記憶體之該等區塊對應之分數(score)。接著,於一極值紀錄表中紀錄每一該等區塊群所包含之區塊對應之分數之一第一極值(extreme value)、每一該等區塊大群所包含之區塊對應之分數之一第二極值、以及該快閃記憶體之所有該等區塊對應之分數之一總極值。當該等區塊中之一目標區塊對應之分數有修改時,將該修改後分數與該極值紀錄表中對應於該目標區塊之該第一極值、該第二極值、以及該總極值比較,以決定是否將該第一極值、該第二極值、以及該總極值置換為該修改後分數。最後,依據該極值紀錄表中紀錄之該總極值自該快閃記憶體之該等區塊決定一犧牲區塊(victim block)以供運用。
本發明提供一種資料儲存裝置。於一實施例中,該資料儲存裝置包括一快閃記憶體、一隨機存取記憶體、以及一控制器。首先,該快閃記憶體包含多個區塊大群,其中每一區塊大群包括一第一數目之區塊群,每一區塊群包括一第二數目之區塊。該隨機存取記憶體儲存一評分紀錄表及一極值紀錄表,其中該評分紀錄表中紀錄該快閃記憶體之該等區塊對應之分數(score),而該極值紀錄表中紀錄每一該等區塊群所包含之區塊對應之分數之一第一極值(extreme value)、每一該等區塊大群所包含之區塊對應之分數之一第二極值、以及該快閃記憶體之所有該等區塊對應之分數之一總極值。該控制器依據該極值紀錄表中紀錄之該總極值自該快閃記憶體之該等區塊決定一犧牲區塊(victim block)以供運用,以及當該等區塊中之一目標區塊對應之分數有修改時,將該修改後分數與該極值紀錄表中對應於該目標區塊之該第一極值與該第二極值以及該總極值比較,以決定是否將該第一極值、該第二極值、以及該總極值置換為該修改後分數。
為了讓本發明之上述和其他目的、特徵、和優點能更明顯易懂,下文特舉數較佳實施例,並配合所附圖示,作詳細說明如下:
第2圖為依據本發明之資料儲存裝置200的區塊圖。於一實施例中,資料儲存裝置200包括一控制器202、一快閃記憶體204、以及一隨機存取記憶體206。快閃記憶體204包括多個區塊221~22Y,該等區塊221~22Y分別用以儲存資料。快閃記憶體204的所有區塊221~22Y被區分為多個區塊大群,每一區塊大群又被區分為多個區塊群,每一區塊群包括一固定數目的區塊。隨機存取記憶體206中儲存一評分紀錄表212及一極值紀錄表214。評分紀錄表212中紀錄快閃記憶體204中所有區塊221~22Z的分數(score)。極值紀錄表214中紀錄每一區塊群中的區塊分數之極值、每一區塊大群中的區塊分數之極值、以及快閃記憶體204中的所有區塊之分數之極值。極值紀錄表214中所紀錄的分數之極值(extreme value)可為分數之極大值或極小值。
控制器202維持隨機存取記憶體206中儲存的評分紀錄表212及極值紀錄表214。當資料儲存裝置200斷電前,由於隨機存取記憶體206無法在無電源供應下保持資料,控制器202將隨機存取記憶體206中儲存的評分紀錄表212及極值紀錄表214轉儲存至快閃記憶體204之一特定區塊中。當資料儲存裝置200重新上電後,控制器202自快閃記憶體204之特定區塊中讀取評分紀錄表212及極值紀錄表214之資料,再將評分紀錄表212及極值紀錄表214儲存至隨機存取記憶體206中。
當控制器202需要自快閃記憶體204之多個區塊221~22Y中決定一犧牲區塊(victim block)時,控制器202自極值紀錄表214讀取快閃記憶體204中的所有區塊之分數中之極值,再自快閃記憶體204選擇對應此極值之區塊作為犧牲區塊。假設控制器202欲自快閃記憶體204選取一犧牲區塊以自該犧牲區塊刪除資料。於一實施例中,區塊之分數為區塊之刪除次數(erase count)或有效頁數目(valid page count)。刪除次數表示一區塊曾經被刪除資料的次數,而有效頁數目表示一區塊所包含的儲存有效資料之頁的數目。因此,刪除次數愈低的區塊或有效頁數目愈低的區塊愈適合作為犧牲區塊的候選者。因此,控制器202自極值紀錄表214讀取刪除次數或有效頁數目的極小值,再自評分紀錄表212決定對應於該極小值的區塊作為犧牲區塊,最後命令快閃記憶體204將犧牲區塊的資料刪除。
第3圖為依據本發明之快閃記憶體之區塊分群之示意圖。快閃記憶體包括多個區塊,該等區塊首先被分為N個區塊大群A~N。接著,每一區塊大群A~N又被分為K個區塊群,其中每一區塊群包含Z個區塊。舉例來說,區塊大群A被分為區塊群A1 ~AK ,而區塊群A1 包含區塊A11 ~A1Z ,而區塊群AK 包含區塊AK1 ~AKZ 。區塊大群N被分為區塊群N1 ~NK ,而區塊群N1 包含區塊N11 ~N1Z ,而區塊群NK 包含區塊NK1 ~NKZ 。因此,快閃記憶體中共有(Z×K×N)個區塊。於一實施例中,Z之值為8(=23 ),K之值為8(=23 ),且N之值為256(=28 ),因此快閃記憶體中共有214 個區塊。
第4圖為依據本發明之評分紀錄表400的示意圖。評分紀錄表400紀錄快閃記憶體中所有區塊的分數值。假設快閃記憶體中包含區塊大群A~N,每一區塊大群包含K個區塊群,每一區塊群包含Z個區塊,則評分紀錄表400紀錄(Z×K×N)個區塊的分數值。例如,區塊大群A包含區塊群A1 ~AK ,其中區塊群A1 包含區塊A11 ~A1Z ,區塊群AK 包含區塊AK1 ~AKZ ,則評分紀錄表400紀錄區塊A11 ~A1Z 的分數SA11 ~SA1Z 以及區塊AK1 ~AKZ 的分數SAK1 ~SAKZ 。區塊大群N包含區塊群N1 ~NK ,其中區塊群N1 包含區塊N11 ~N1Z ,區塊群NK 包含區塊NK1 ~NKZ ,則評分紀錄表400紀錄區塊N11 ~N1Z 的分數SN11 ~SN1Z 以及區塊NK1 ~NKZ 的分數SNK1 ~SNKZ
第5圖為依據本發明之極值紀錄表500的示意圖。假設快閃記憶體中包含區塊大群A、B、…、N,每一區塊大群包含K個區塊群,每一區塊群包含Z個區塊,則極值紀錄表500分別紀錄(K×N)個區塊群的分數極值、N個區塊大群的分數極值XA ~XN 、以及快閃記憶體中所有區塊的分數極值XTotal 。舉例來說,區塊大群A包含區塊群A1 、A2 、…、AK ,因此極值紀錄表500分別紀錄區塊群A1 、A2 、…、AK 的分數極值XA1 、XA2 、…、XAK ,再由分數極值XA1 、XA2 、…、XAK 中比較可得出區塊大群A的極值XA 。區塊大群N包含區塊群N1 、N2 、…、NK ,因此極值紀錄表500分別紀錄區塊群N1 、N2 、…、NK 的分數極值XN1 、XN2 、…、XNK ,再由分數極值XN1 、XN2 、…、XNK 中比較可得出區塊大群N的極值XN 。當所有區塊大群A、B、…、N的極值XA 、XB 、…、XN 均得到後,再可由極值XA 、XB 、…、XN 相互比較以得到所有區塊的分數極值XTotal
第6圖為依據本發明之極值紀錄表的維護方法600之流程圖。當區塊因資料存取而使區塊對應的分數產生變動時,控制器202依據方法600修正隨機存取記憶體206中儲存的極值紀錄表214的極值資料。首先,控制器202對快閃記憶體204之至少一目標區塊進行影響分數之資料存取(步驟602)。舉例來說,假設目標區塊為第4圖中屬於區塊大群N的區塊群N1 的區塊N1Q ,而區塊N1Q 的分數由SN1Q 變更為SN1Q ’。接著,控制器202修改隨機存取記憶體206中的評分記錄表212所儲存該目標區塊之分數(步驟604)。接著,控制器202自極值記錄表214中讀取該目標區塊對應之一目標區塊群之分數極值(步驟606)。接著,控制器202決定是否該目標區塊之修改後分數超過該目標區塊群之分數極值(步驟608)。若目標區塊之修改後分數超過該目標區塊群之分數極值,則控制器202將極值記錄表214中該目標區塊群之分數極值修改為該目標區塊之修改後分數(步驟610)。例如,於第5圖中,目標區塊N1Q 所屬的區塊群N1 之分數極值為XN1 ,因此控制器202比較分數極值XN1 與目標區塊N1Q 的修改後分數SN1Q 。若目標區塊N1Q 的修改後分數SN1Q 超過目標區塊N1Q 所屬的區塊群N1 之分數極值XN1 ,則控制器202將目標區塊N1Q 所屬的區塊群N1 之分數極值XN1 修改為目標區塊N1Q 的修改後分數SN1Q
接著,若目標區塊之修改後分數超過該目標區塊群之分數極值,則控制器202繼續自極值記錄表214中讀取該目標區塊對應之目標區塊大群之分數極值(步驟612)。接著,控制器202決定是否該目標區塊之修改後分數超過該目標區塊大群之分數極值(步驟614)。若目標區塊之修改後分數超過該目標區塊大群之分數極值,則控制器202將極值記錄表214中該目標區塊大群之分數極值修改為該目標區塊之修改後分數(步驟616)。例如,於第5圖中,目標區塊N1Q 所屬的區塊大群N之分數極值為XN ,因此控制器202比較分數極值XN 與目標區塊N1Q 的修改後分數SN1Q 。若目標區塊N1Q 的修改後分數SN1Q 超過目標區塊N1 所屬的區塊大群N之分數極值XN ,則控制器202將目標區塊N1Q 所屬的區塊大群N之分數極值XN 修改為目標區塊N1Q 的修改後分數SN1Q
接著,若目標區塊之修改後分數超過該目標區塊大群之分數極值,則控制器202繼續自極值記錄表214中讀取一分數總極值(步驟618)。接著,控制器202比較是否該目標區塊之修改後分數超過該分數總極值(步驟620)。若該目標區塊之修改後分數超過該分數總極值,則控制器212將極值記錄表214中該分數總極值修改為該目標區塊之修改後分數(步驟622)。例如,於第5圖中,快閃記憶體204所屬的所有區塊之分數總極值為Xtotal ,因此控制器202比較分數總極值XTotal 與目標區塊N1Q 的修改後分數SN1Q 。若目標區塊N1Q 的修改後分數SN1Q 超過快閃記憶體204包含的所有區塊之分數總極值為Xtotal ,則控制器202將快閃記憶體204所屬的所有區塊之分數總極值為Xtotal 修改為目標區塊N1Q 的修改後分數SN1Q 。因此,控制器202僅需對目標區塊N1Q 的修改後分數SN1Q 分別與目標區塊群的分數極值XN1 、目標區塊大群的分數極值XN 、與分數總極值XN 進行比較,便可決定是否需修正極值記錄表214中儲存的極值資料XN1 、XN 、XTotal 。與第1A圖及第1B圖的習知技術相比,依據本發明所需的維護資料的時間明顯較低,因此本發明相較習知技術具有明顯的優點。
第7圖為依據本發明之極值紀錄表214自快閃記憶體204選取區塊的方法700之流程圖。首先,控制器202自極值記錄表214讀取一分數總極值XTotal (步驟702)。接著,控制器202自快閃記憶體204的多個區塊221~22Y中選取該分數總極值XTotal 所對應之一目標區塊(步驟704)。接著,控制器202決定該目標區塊為一犧牲區塊(步驟706)。接著,控制器202命令該快閃記憶體204對該犧牲區塊進行資料刪除(步驟708)。因此,控制器202僅需讀取極值紀錄表214中的總極值Xtotal 便可自快閃記憶體204的多個區塊221~22Y中選擇一犧牲區塊。與第1A圖及第1B圖的習知技術相比,依據本發明所需的搜尋極值的時間明顯較低,因此本發明相較習知技術具有明顯的優點。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟習此項技術者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
200...資料儲存裝置
202...控制器
204...快閃記憶體
206...隨機存取記憶體
212...評分紀錄表
214...極值紀錄表
221-22Y...區塊
300...快閃記憶體
A11 -A1Z 、…、AK1 -AKZ 、…、N11 -N1Z 、…、NK1 -NKZ ...區塊
A1 、…、AK 、…、N1 、…、NK ...區塊群
A、…、N...區塊大群
400...評分紀錄表
500...極值紀錄表
第1A圖為以串列方式儲存快閃記憶體之區塊之分數資料的示意圖;
第1B圖為以二元樹方式儲存快閃記憶體之區塊之分數資料的示意圖;
第2圖為依據本發明之資料儲存裝置的區塊圖;
第3圖為依據本發明之快閃記憶體之區塊分群之示意圖;
第4圖為依據本發明之評分紀錄表的示意圖;
第5圖為依據本發明之極值紀錄表的示意圖;
第6圖為依據本發明之極值紀錄表的維護方法之流程圖;
第7圖為依據本發明之極值紀錄表自快閃記憶體選取區塊的方法之流程圖。

Claims (14)

  1. 一種快閃記憶體之區塊選取方法,包括下列步驟:將一快閃記憶體分為多個區塊大群,其中每一區塊大群包括一第一數目之區塊;將每一該等區塊大群分為多個區塊群,其中每一區塊群包括一第二數目之區塊群;於一評分紀錄表中紀錄該快閃記憶體之該等區塊對應之分數(score);於一極值紀錄表中紀錄每一該等區塊群所包含之區塊對應之分數之一第一極值(extreme value)、每一該等區塊大群所包含之區塊對應之分數之一第二極值、以及該快閃記憶體之所有該等區塊對應之分數之一總極值;當該等區塊中之一目標區塊對應之分數有修改時,將該修改後分數與該極值紀錄表中的對應於該目標區塊之該第一極值及該第二極值以及該總極值比較,以決定是否將該第一極值、該第二極值、以及該總極值置換為該修改後分數;以及依據該極值紀錄表中紀錄之該總極值自該快閃記憶體之該等區塊決定一犧牲區塊(victim block)以供運用。
  2. 如申請專利範圍第1項所述之快閃記憶體之區塊選取方法,其中該等第一極值分別為該等區塊群所包含之區塊所對應之分數之極小值,該等第二極值分別為該等區塊大群所包含之區塊所對應之分數之極小值,而該總極值為該快閃記憶體之所有該等區塊所對應之分數之極小值。
  3. 如申請專利範圍第1項所述之快閃記憶體之區塊選取方法,其中該等第一極值分別為該等區塊群所包含之區塊所對應之分數之極大值,該等第二極值分別為該等區塊大群所包含之區塊所對應之分數之極大值,而該總極值為該快閃記憶體之所有該等區塊所對應之分數之極大值。
  4. 如申請專利範圍第1項所述之快閃記憶體之區塊選取方法,其中該修改後分數與對應於該目標區塊之該第一極值及該第二極值以及該總極值之比較步驟包括:自該極值紀錄表中讀取包含該目標區塊之一目標區塊群所對應之一目標第一極值;比較該目標區塊之該修改後分數與該目標第一極值;當該修改後分數超過該目標第一極值,將該目標第一極值置換為該修改後分數,並自該極值紀錄表中讀取包含該目標區塊之一目標區塊大群所對應之一目標第二極值;比較該目標區塊之該修改後分數與該目標第二極值;當該修改後分數超過該目標第二極值,將該目標第二極值置換為該修改後分數,並自該極值紀錄表中讀取該總極值;比較該目標區塊之該修改後分數與該總極值;以及當該修改後分數超過該總極值,將該總極值置換為該修改後分數。
  5. 如申請專利範圍第1項所述之快閃記憶體之區塊選取方法,其中該犧牲區塊之該決定步驟包括:自該極值紀錄表讀取該總極值;自該快閃記憶體之該等區塊中選取該總極值所對應之一區塊作為該犧牲區塊;以及命令該快閃記憶體對該犧牲區塊之進行資料處理。
  6. 如申請專利範圍第1項所述之快閃記憶體之區塊選取方法,其中當包含該快閃記憶體之一資料儲存裝置被供電時,該評分紀錄表及該極值紀錄表儲存於該資料儲存裝置之一隨機存取記憶體中,而當包含該資料儲存裝置未被供電時,該評分紀錄表及該極值紀錄表儲存於該快閃記憶體之一區塊中。
  7. 如申請專利範圍第1項所述之快閃記憶體之區塊選取方法,其中該等區塊對應之該等分數為刪除次數(erase count)或有效資料頁數(valid page count)。
  8. 一種資料儲存裝置,包括:一快閃記憶體,包含多個區塊大群,其中每一區塊大群包括一第一數目之區塊群,每一區塊群包括一第二數目之區塊;一隨機存取記憶體,儲存一評分紀錄表及一極值紀錄表,其中該評分紀錄表中紀錄該快閃記憶體之該等區塊對應之分數(score),而該極值紀錄表中紀錄每一該等區塊群所包含之區塊對應之分數之一第一極值(extreme value)、每一該等區塊大群所包含之區塊對應之分數之一第二極值、以及該快閃記憶體之所有該等區塊對應之分數之一總極值;以及一控制器,依據該極值紀錄表中紀錄之該總極值自該快閃記憶體之該等區塊決定一犧牲區塊(victim block)以供運用,以及當該等區塊中之一目標區塊對應之分數有修改時,將該修改後分數與該極值紀錄表中對應於該目標區塊之該第一極值與該第二極值以及該總極值比較,以決定是否將該第一極值、該第二極值、以及該總極值置換為該修改後分數。
  9. 如申請專利範圍第8項所述之資料儲存裝置,其中該等第一極值分別為該等區塊群所包含之區塊所對應之分數之極小值,該等第二極值分別為該等區塊大群所包含之區塊所對應之分數之極小值,而該總極值為該快閃記憶體之所有該等區塊所對應之分數之極小值。
  10. 如申請專利範圍第8項所述之資料儲存裝置,其中該等第一極值分別為該等區塊群所包含之區塊所對應之分數之極大值,該等第二極值分別為該等區塊大群所包含之區塊所對應之分數之極大值,而該總極值為該快閃記憶體之所有該等區塊所對應之分數之極大值。
  11. 如申請專利範圍第8項所述之資料儲存裝置,其中當該控制器比較該修改後分數與該等第一極值、該等第二極值、以及該總極值時,該控制器自該極值紀錄表中讀取包含該目標區塊之一目標區塊群所對應之一目標第一極值,比較該目標區塊之該修改後分數與該目標第一極值,當該修改後分數超過該目標第一極值時將該目標第一極值置換為該修改後分數並自該極值紀錄表中讀取包含該目標區塊之一目標區塊大群所對應之一目標第二極值,比較該目標區塊之該修改後分數與該目標第二極值,當該修改後分數超過該目標第二極值時將該目標第二極值置換為該修改後分數並自該極值紀錄表中讀取該總極值,比較該目標區塊之該修改後分數與該總極值,以及當該修改後分數超過該總極值時將該總極值置換為該修改後分數。
  12. 如申請專利範圍第8項所述之資料儲存裝置,其中該控制器自該極值紀錄表讀取該總極值,自該快閃記憶體之該等區塊中選取該總極值所對應之一區塊作為該犧牲區塊,以及命令該快閃記憶體對該犧牲區塊之進行資料處理。
  13. 如申請專利範圍第8項所述之資料儲存裝置,其中當該資料儲存裝置之供電被終止前,該控制器將該評分紀錄表及該極值紀錄表自該隨機存取記憶體中轉儲存至該快閃記憶體之一區塊中。
  14. 如申請專利範圍第8項所述之資料儲存裝置,其中該等區塊對應之該等分數為刪除次數(erase count)或有效資料頁數(valid page count)。
TW100114003A 2011-04-22 2011-04-22 快閃記憶體之區塊選取方法及資料儲存裝置 TWI423023B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW100114003A TWI423023B (zh) 2011-04-22 2011-04-22 快閃記憶體之區塊選取方法及資料儲存裝置
US13/432,887 US8711627B2 (en) 2011-04-22 2012-03-28 Data storage device and block selection method for a flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW100114003A TWI423023B (zh) 2011-04-22 2011-04-22 快閃記憶體之區塊選取方法及資料儲存裝置

Publications (2)

Publication Number Publication Date
TW201243591A TW201243591A (en) 2012-11-01
TWI423023B true TWI423023B (zh) 2014-01-11

Family

ID=47021241

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100114003A TWI423023B (zh) 2011-04-22 2011-04-22 快閃記憶體之區塊選取方法及資料儲存裝置

Country Status (2)

Country Link
US (1) US8711627B2 (zh)
TW (1) TWI423023B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9324389B2 (en) 2013-05-29 2016-04-26 Sandisk Technologies Inc. High performance system topology for NAND memory systems
US9728526B2 (en) 2013-05-29 2017-08-08 Sandisk Technologies Llc Packaging of high performance system topology for NAND memory systems
US9703702B2 (en) * 2013-12-23 2017-07-11 Sandisk Technologies Llc Addressing auto address assignment and auto-routing in NAND memory network
TWI516922B (zh) * 2014-03-12 2016-01-11 慧榮科技股份有限公司 資料儲存裝置及快閃記憶體零散資料收集方法
KR102292198B1 (ko) * 2014-10-15 2021-08-25 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 데이터 저장 장치 및 그것의 동작 방법
US10296452B2 (en) 2015-05-11 2019-05-21 SK Hynix Inc. Data separation by delaying hot block garbage collection
CN106708754B (zh) 2015-11-13 2020-04-07 慧荣科技股份有限公司 数据储存装置及其数据维护方法
US10353814B2 (en) * 2016-02-08 2019-07-16 Wipro Limited Method and system for optimized garbage collection in a storage device
TWI622923B (zh) * 2016-05-04 2018-05-01 群聯電子股份有限公司 整理指令處理方法、記憶體控制電路單元與記憶體儲存裝置
CN106604111A (zh) * 2016-12-16 2017-04-26 深圳市九洲电器有限公司 机顶盒Flash数据存储方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200531069A (en) * 2003-12-17 2005-09-16 Toshiba Kk Non-volatile semiconductor memory device
TW200739342A (en) * 2005-08-03 2007-10-16 Sandisk Corp Nonvolatile memory with block management
TW200822124A (en) * 2006-09-04 2008-05-16 Sandisk Il Ltd Device and method for prioritized erasure of flash memory
US20100177553A1 (en) * 2009-01-14 2010-07-15 Macronix International Co., Ltd. Rewritable memory device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7113432B2 (en) * 2000-09-14 2006-09-26 Sandisk Corporation Compressed event counting technique and application to a flash memory system
US7975119B2 (en) 2006-09-04 2011-07-05 Sandisk Il Ltd Device for prioritized erasure of flash memory
US8140739B2 (en) * 2008-08-08 2012-03-20 Imation Corp. Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table
US7818525B1 (en) * 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200531069A (en) * 2003-12-17 2005-09-16 Toshiba Kk Non-volatile semiconductor memory device
TW200739342A (en) * 2005-08-03 2007-10-16 Sandisk Corp Nonvolatile memory with block management
TW200822124A (en) * 2006-09-04 2008-05-16 Sandisk Il Ltd Device and method for prioritized erasure of flash memory
US20100177553A1 (en) * 2009-01-14 2010-07-15 Macronix International Co., Ltd. Rewritable memory device

Also Published As

Publication number Publication date
US8711627B2 (en) 2014-04-29
TW201243591A (en) 2012-11-01
US20120268991A1 (en) 2012-10-25

Similar Documents

Publication Publication Date Title
TWI423023B (zh) 快閃記憶體之區塊選取方法及資料儲存裝置
US8225029B2 (en) Data storage processing method, data searching method and devices thereof
US10303596B2 (en) Read-write control method for memory, and corresponding memory and server
US8161001B2 (en) Relational database page-level schema transformations
US9449005B2 (en) Metadata storage system and management method for cluster file system
TWI489373B (zh) 資料儲存裝置和快閃記憶體之區塊管理方法
WO2015185002A1 (zh) 一种数据写入方法及装置
CN103871447B (zh) 与非门快闪存储器阵列及芯片及其存取、读取及管理方法
US9058255B2 (en) Solid state drive and method for constructing logical-to-physical table thereof
US9507705B2 (en) Write cache sorting
CN109643275A (zh) 存储级存储器的磨损均衡设备和方法
JP4666080B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
CN106372001A (zh) 内存系统
CN106981314A (zh) 一种固态硬盘快速纠错的方法
TW200947201A (en) Method for performing wear-leveling in a memory module
CN103942289A (zh) 一种Hadoop上面向范围查询的内存缓存方法
WO2017211247A1 (zh) 缓存管理方法、缓存控制器以及计算机系统
CN109542842B (zh) 一种兼容fat32文件系统的视频顺序存储和查询方法及其装置
CN108733318A (zh) 一种tlc nand flash固态硬盘的写入方法
CN102609492B (zh) 一种支持表模式可变的元数据管理方法
US9710504B2 (en) Data processing and writing method and related apparatus
JPWO2015114829A1 (ja) 情報処理装置
CN106557428A (zh) 数据存储设备的映射系统选择
CN114816258A (zh) Nvm的外部排序方法、装置和nvm存储器
US20150205538A1 (en) Storage apparatus and method for selecting storage area where data is written