TWI455131B - 記憶體之資料寫入方法及資料儲存裝置 - Google Patents

記憶體之資料寫入方法及資料儲存裝置 Download PDF

Info

Publication number
TWI455131B
TWI455131B TW099111928A TW99111928A TWI455131B TW I455131 B TWI455131 B TW I455131B TW 099111928 A TW099111928 A TW 099111928A TW 99111928 A TW99111928 A TW 99111928A TW I455131 B TWI455131 B TW I455131B
Authority
TW
Taiwan
Prior art keywords
data
block
blank
area
threshold value
Prior art date
Application number
TW099111928A
Other languages
English (en)
Other versions
TW201137879A (en
Inventor
Wei Yi Hsiao
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 TW099111928A priority Critical patent/TWI455131B/zh
Priority to US13/084,122 priority patent/US20110258369A1/en
Publication of TW201137879A publication Critical patent/TW201137879A/zh
Application granted granted Critical
Publication of TWI455131B publication Critical patent/TWI455131B/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/816Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout
    • G11C29/82Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout for EEPROMs

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)
  • Read Only Memory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

記憶體之資料寫入方法及資料儲存裝置
本發明係有關於記憶體,特別是有關於快閃記憶體(flash memory)。
快閃記憶體(flash memory)包括多個區塊(block),每一區塊包括多個頁(page)以供資料儲存。此外,快閃記憶體的每一區塊分別對應至不同的位址。當主機欲存取快閃記憶體之資料時,主機會向快閃記憶體之控制器發送存取命令,該存取命令包括所欲存取的區塊的位址。例如,當快閃記憶體自控制器接收寫入命令時,便依控制器的指示將資料儲存至寫入位址所對應的區塊的某些頁。當快閃記憶體自控制器收到讀取命令時,便依控制器的指示自讀取位址對應的區塊的某些頁讀出資料而回傳資料至控制器。
當快閃記憶體的一區塊的多個頁皆被寫入資料後,該區塊便無法再次被寫入資料。因此,快閃記憶體的多個區塊可以大致分為資料區與空白區(spare pool)兩區,資料區的區塊係已儲存資料的區塊,而空白區的區塊係未儲存資料的區塊。當主機欲寫入資料至對應於位於資料區的一資料區塊的位址時,由於該資料區塊已無法再被寫入更新資料,控制器便只好自空白區取得一空白區塊,將該空白區塊的位址改為該資料區塊的位址,再將更新資料轉寫入至該空白區塊。此時原本的資料區塊已無用,控制器便抹除該資料區塊的資料,以將資料區塊轉換為空白區塊而置入空白區中。
一般來說,當控制器自空白區選取一空白區塊供寫入更新資料時,控制器係運用先進先出法(first-in first-out,FIFO)。亦即,控制器會由空白區中選取被刪除資料的時間最早的空白區塊。第2圖為習知資料寫入方法200的流程圖。首先,控制器自主機接收一寫入命令(步驟202)。假設該寫入命令係要求控制器將寫入資料寫入至快閃記憶體之一第一資料區塊。由於該第一資料區塊已儲存資料,控制器無法再將寫入資料寫入該第一資料區塊。因此,控制器必須自快閃記憶體之空白區取得一目標空白區塊以代替該第一資料區塊儲存資料。依據先進先出法,控制器由空白區選取被清除資料的時間最早的一第一空白區塊(步驟204)。接著,控制器以該第一空白區塊作為一目標空白區塊(步驟206)。接著,控制器將該寫入資料寫入該目標空白區塊(步驟208)。此時,該目標空白區塊音儲存了寫入資料而取代了第一資料區塊的地位,並被置入資料區。原本的第一資料區塊因儲存舊資料而無用。因此,控制器清除該第一資料區塊之資料,以轉換該第一資料區塊為一空白區塊(步驟210),並將該第一資料區塊置入空白區,以留待日後使用。
第1A圖為快閃記憶體之資料區110與空白區120中區塊的示意圖。假設資料區110包括資料區塊111、112、11K、11P、11Y、11Z,各具有3、5、15、6、17、10次的清除次數。空白區120包括空白區塊121、122、123、124、12X,各具有7、11、30、9、12次的清除次數。假設控制器收到一寫入命令,欲將更新資料寫入資料區110的資料區塊11K。由於資料區塊11K已無法重新寫入資料,因此控制器依據先進先出法由空白區120選取資料清除時間最早的空白區塊121儲存資料區塊11K之更新資料。區塊121儲存資料後被置入資料區110,如第1B圖所示。而資料區塊11K被刪除資料後成為空白區塊被置入空白區120,且其清除次數增加為16次,如第1B圖所示。接著,假設控制器收到一寫入命令,欲將更新資料寫入資料區110的資料區塊11P。由於資料區塊11P已無法重新寫入資料,因此控制器依據先進先出法由空白區120選取資料清除時間最早的空白區塊122儲存資料區塊11P之更新資料。區塊122儲存資料後被置入資料區110,如第1C圖所示。而資料區塊11P被刪除資料後成為空白區塊被置入空白區120,且其清除次數增加為7次,如第1C圖所示。
然而,第2圖之資料寫入方法200具有缺陷存在。由於控制器在選取供儲存資料區塊之更新資料的目標空白區塊時係僅依據先進先出法(步驟204),控制器不會對目標空白區塊的清除次數大小進行判斷。因此,當目標空白區塊的清除次數很大時,一再使用該目標空白區塊儲存更新資料會使該目標空白區塊的清除次數增加快速,而提前磨損該區塊直至無法儲存資料。第3A圖為原第1C圖之資料區110與空白區120中多個區塊的示意圖。於第3A圖中,假設控制器收到一寫入命令,欲將更新資料寫入資料區110的資料區塊111。由於資料區塊111已無法重新寫入資料,因此控制器依據先進先出法由空白區120選取資料清除時間最早的空白區塊123儲存資料區塊111之更新資料。區塊123儲存資料後被置入資料區110,如第3B圖所示。而資料區塊111被刪除資料後成為空白區塊被置入空白區120,且其清除次數增加為4次,如第3B圖所示。空白區塊123的清除次數已達到30,卻仍被運用來儲存更新資料後置入資料區110,當區塊123再度被刪除資料時,會使區塊123的清除次數增高,而提早磨損。一般而言,控制器在選取目標空白區塊時必須盡量使用清除次數較低的空白區塊,避免使用清除次數很高的空白區塊,以使各區塊的使用頻率均等,從而延長記憶體的使用年限。因此,為了解決上述的問題,需要一種新的資料寫入方法。
有鑑於此,本發明之目的在於提供一種資料儲存裝置,以解決習知技術存在之問題。於一實施例中,該資料儲存裝置包括一記憶體以及一控制器。該記憶體包含一資料區與一空白區(spare pool),其中該資料區包含已儲存資料的多個資料區塊,該空白區包括未儲存資料的多個空白區塊。該控制器自一主機接收欲將一寫入資料寫入至該記憶體之一第一資料區塊之一寫入命令,自該空白區選取具有最早清除時間的一第一空白區塊,檢查是否該第一空白區塊之清除次數小於或等於一第一界限值,以及當該第一空白區塊之清除次數小於或等於該第一界限值時,將該寫入資料寫入該第一空白區塊,以及清除該第一資料區塊儲存之資料以轉換該第一資料區塊為空白區塊並置入該空白區。
本發明提供一種記憶體之資料寫入方法。於一實施例中,該記憶體包含一資料區與一空白區(spare pool),該資料區包含已儲存資料的多個資料區塊,且該空白區包括未儲存資料的多個空白區塊。首先,自一主機接收欲將一寫入資料寫入至該記憶體之一第一資料區塊之一寫入命令。接著,自該空白區選取具有最早清除時間的一第一空白區塊。接著,檢查是否該第一空白區塊之清除次數小於或等於一第一界限值。當該第一空白區塊之清除次數小於或等於該第一界限值時,將該寫入資料寫入該第一空白區塊。最後,清除該第一資料區塊儲存之資料,以轉換該第一資料區塊為空白區塊並置入該空白區。
為了讓本發明之上述和其他目的、特徵、和優點能更明顯易懂,下文特舉數較佳實施例,並配合所附圖示,作詳細說明如下:
第4圖為依據本發明之資料儲存裝置408的區塊圖。資料儲存裝置408耦接至一主機406,包括控制器402與記憶體404。於一實施例中,記憶體404為一快閃記憶體。記憶體404包含多個區塊可儲存資料。記憶體404之區塊可分為兩群組。資料區410的區塊為已儲存資料的資料區塊411、412、…、41Z。空白區420的區塊為未儲存資料的空白區塊421、422、…、42X。控制器402則自主機406接收存取命令,再依據存取命令存取記憶體404之資料。
當控制器402由主機406接收到一寫入命令時,控制器402會依據寫入命令包含的位址找出於記憶體404中所對應的區塊。若該區塊係位於資料區410中的資料區塊,則因為該區塊已儲存資料,無法再將更新資料寫入該區塊。此時,控制器402便會由空白區420中取得一空白區塊,以供儲存原本欲寫入資料區塊的更新資料。然而,控制器402由空白區420中選取空白區塊的方法,除了依據先進先出法選取清除時間最早的空白區塊以外,還需將被選取的空白區塊之清除次數(erase count)與一第一界限值比較,其中該清除次數表示第一空白區塊被刪除資料的次數。
若被選取的空白區塊之清除次數低於或等於第一界限值,被選取的空白區塊才能成為合適的目標空白區塊,以供儲存原本欲寫入資料區塊的更新資料。若被選取的空白區塊之清除次數大於第一界限值,控制器則必需另行由空白區420中尋找清除次數低於或等於第一界限值的空白區塊作為目標空白區塊,以供儲存原本欲寫入資料區塊的更新資料。如此,每次控制器402執行寫入命令時,用以儲存寫入資料的空白區塊都是空白區420中清除次數較小的空白區塊。因此,控制器可避免使用清除次數很高的空白區塊作為目標空白區塊以儲存更新資料,以使記憶體404之各區塊的使用頻率均等,從而使各區塊的清除次數較為平均,以延長記憶體404的使用年限。因此,本發明之資料儲存裝置408可避免習知技術中某些特定區塊具有極高清除次數的情形,從而提升資料儲存裝置408的效能。
第5圖為依據本發明之資料寫入方法500的流程圖。首先,控制器402自主機406接收一寫入命令(步驟502)。假設該寫入命令係要求控制器402將寫入資料寫入至一寫入位址,其中該寫入位址對應於記憶體404的資料區410之一第一資料區塊。由於該第一資料區塊已儲存資料,因此控制器402無法直接將寫入資料寫入該第一資料區塊。因此,控制器402自空白區420中取得一空白區塊以儲存原欲寫入第一資料區塊的寫入資料。首先,控制器402依先進先出法由空白區420中選取被清除資料的時間最早的一第一空白區塊(步驟504)。接著,控制器402將該第一空白區塊之清除次數與一第一界限值相比較(步驟506)。若該第一空白區塊之清除次數小於或等於該第一界限值(步驟506),則控制器402可直接以該第一空白區塊作為供替代該第一資料區塊以儲存寫入資料的一目標空白區塊(步驟508)。接著,控制器402將該寫入資料寫入該第一空白區塊(步驟510),並將該第一空白區塊的邏輯位址設為該第一資料區塊的邏輯位址。此時儲存舊資料的第一資料區塊已被儲存新資料的第一空白區塊所取代,因此控制器402清除該第一資料區塊之資料(步驟512),以轉換該第一資料區塊為空白區塊並置入空白區420中。
當控制器402將該第一空白區塊之清除次數與第一界限值相比較時(步驟506),若該第一空白區塊之清除次數大於該第一界限值,則該第一空白區塊不適合作為儲存寫入資料的目標空白區塊。因此,控制器402必須由空白區420中另選目標空白區塊。此時,控制器402自空白區420中搜尋清除次數小於或等於該第一界線值的一第二空白區塊(步驟514)。若控制器402成功地由空白區420的多個空白區塊中找到清除次數小於或等於該第一界線值的第二空白區塊,則該第二空白區塊可直接作為供替代該第一資料區塊以儲存寫入資料的目標空白區塊(步驟518)。接著,控制器402將該寫入資料寫入該第二空白區塊(步驟510),並將該第二空白區塊的邏輯位址設為該第一資料區塊的邏輯位址。此時儲存舊資料的第一資料區塊已被儲存新資料的第二空白區塊所取代,因此控制器402清除該第一資料區塊之資料(步驟512),以轉換該第一資料區塊為空白區塊並置入空白區420中。
第6A圖為快閃記憶體之資料區410與空白區420中區塊的示意圖。假設資料區410包括資料區塊411、412、41K、41P、41Y、41Z,各具有3、5、15、6、17、10次的清除次數。空白區420包括空白區塊421、422、423、424、425,各具有7、11、30、9、12次的清除次數,且空白區塊421、422、423、424、425刪除資料的時間係依序由早至晚排列。假設控制器402收到一寫入命令,欲將更新資料寫入資料區410的資料區塊41K。由於資料區塊41K已無法重新寫入資料,因此控制器402依據方法500由空白區420選取被清除資料的時間最早的空白區塊421。假設第一界限值為10。由於被選取的空白區塊421的清除次數為7,該清除次數7小於第一界限值10,符合目標空白區塊的篩選條件,因此控制器402選擇空白區塊421作為目標空白區塊,以供儲存資料區塊41K之更新資料。接著,空白區塊421儲存更新資料後被置入資料區410,如第6B圖所示。而資料區塊41K被刪除資料後成為空白區塊,並被置入空白區420,且其清除次數增加為16次,如第6B圖所示。
接著,假設控制器420收到一寫入命令,欲將更新資料寫入資料區410的資料區塊41P。由於資料區塊41P已無法重新寫入資料,因此控制器402依據方法500由空白區420選取被清除資料的時間最早的空白區塊422。由於被選取的空白區塊422的清除次數為11,該清除次數11大於第一界限值10而不符合目標空白區塊的篩選條件,因此控制器402必須自空白區420中另行選取其他空白區塊作為目標空白區塊。後續的空白區塊423的清除次數為30,該清除次數30同樣大於第一界限值10而不符合目標空白區塊的篩選條件。再後續的空白區塊424的清除次數為9,該清除次數9因小於第一界限值10而符合目標空白區塊的篩選條件,因此控制器402可選擇空白區塊424作為目標空白區塊,以供儲存資料區塊41P之更新資料。空白區塊424儲存資料後被置入資料區410,如第6C圖所示。而資料區塊41P被刪除資料後成為空白區塊,被置入空白區420,且其清除次數增加為7次,如第6C圖所示。
第5圖之資料寫入方法500中的步驟520~528稱為磨損平均(wear-leveling)程序。於步驟514中,控制器402於空白區420中搜尋清除次數小於或等於該第一界線值的第二空白區塊。然而,若空白區420中的所有空白區塊的清除次數均大於第一界限值,則控制器402無法由空白區420中找到適合的第二空白區塊(步驟516)。然而,寫入資料仍需儲存至一目標空白區塊,才能完成寫入命令的執行。此時,控制器402進行磨損平均程序以將資料區410中之資料區塊轉換為空白區420之空白區塊,以作為目標空白區塊供儲存寫入資料。首先,控制器402自資料區410搜尋清除次數小於該第一界限值的一第二資料區塊(步驟520)。接著,控制器402自空白區420搜尋清除次數大於一第二界限值的一第三空白區塊,以供與第二資料區塊互換(步驟522),其中該第二界限值大於該第一界限值。於一實施例中,控制器402自空白區420中搜尋清除次數最大的空白區塊作為該第三空白區塊。
接著,控制器402將該第二資料區塊儲存之資料寫入該第三空白區塊(步驟524),並將該第三空白區塊的邏輯位址設為該第二資料區塊的邏輯位址。此時第二資料區塊已被清除次數較大的第三空白區塊所取代,而控制器402接著便可清除該第二資料區塊之資料,以轉換該第二資料區塊為一第四空白區塊(步驟526)。由於第四空白區塊的清除次數為第二資料區塊的清除次數加一,必然小於或等於第一界限值,因此符合目標空白區塊的篩選條件。因此,控制器402接著便以該第四空白區塊作為供替代該第一資料區塊以儲存寫入資料的目標空白區塊(步驟528)。接著,控制器402將該寫入資料寫入該第四空白區塊(步驟510),並將該第四空白區塊的邏輯位址設為該第一資料區塊的邏輯位址。此時儲存舊資料的第一資料區塊已被儲存新資料的第四空白區塊所取代,因此控制器402清除該第一資料區塊之資料(步驟512),以轉換該第一資料區塊為空白區塊並置入空白區420中。
第7A圖、第7B圖、及第7C圖為控制器依據本發明進行磨損平均動作的示意圖。假設資料區710包括資料區塊711、712、713、714、71Z,各具有16、18、12、7、8次的清除次數。空白區720包括空白區塊721、722、723、724、725,各具有12、11、30、32、20次的清除次數,且空白區塊721、722、723、724、725被刪除資料的時間係依序由早至晚排列。於第7A圖,假設控制器402收到一寫入命令,欲將更新資料寫入資料區710的資料區塊71Z。由於資料區塊71Z儲存有資料而已無法重新寫入資料,因此控制器402依據方法500由空白區420選取一目標空白區塊,以供儲存欲寫入資料區塊71Z的更新資料。假設第一界限值為10,而第二界限值為30。由於空白區塊721~725的清除次數均大於第一界限值10,因此均不適合作為目標空白區塊。此時控制器402便依據第5圖的步驟520~528實行磨損平均程序。控制器402首先由資料區710搜尋到具有小於第一界限值10的清除次數7的資料區塊714,並由空白區720搜尋到具有高於第二界限值30之清除次數32的空白區塊724。接著,控制器402以空白區塊724儲存資料區塊714的資料,並自資料區塊714刪除資料後置入空白區720,且其清除次數增加為8次。此時控制器402已藉實行磨損平均程序而完成區塊724與714的互換,如第7B圖所示。
此時空白區720中已有一空白區塊714之清除次數8小於第一界限值10,從而空白區塊714符合目標空白區塊的篩選條件。因此,控制器402選擇空白區塊714作為目標空白區塊,以供儲存資料區塊71Z之更新資料。接著,空白區塊714儲存更新資料後被置入資料區710,如第7C圖所示。而資料區塊71Z被刪除資料後成為空白區塊,並被置入空白區720,且其清除次數增加為9次,如第7C圖所示。
最後,於進行磨損平均動作的步驟522時,控制器402可能無法於資料區410搜尋到清除次數小於第一界限值之的第二資料區塊。此時,表示資料區410中所有的資料區塊的清除次數皆大於第一界限值。為使流程繼續進行,控制器將記憶體404的資料區410中的所有資料區塊的清除次數減去一數值,從而使所有資料區塊的清除次數變小。於一實施例中,該數值為清除次數之界限值的一半。當資料區410的資料區塊之清除次數皆變小後,控制器402便可自資料區410重新尋找清除次數小於第一界限值的第二資料區塊,以供與第三空白區塊互換。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟習此項技術者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
(第4圖)
402...控制器
404...記憶體
406...主機
408...資料儲存裝置
410...資料區
420...空白區
411-41Z...資料區塊
421-42X...空白區塊
第1A圖將資料寫入記憶體的習知方法的第一示意圖;
第1B圖將資料寫入記憶體的習知方法的第二示意圖;
第1C圖將資料寫入記憶體的習知方法的第三示意圖;
第2圖為習知資料寫入方法的流程圖;
第3A圖為顯示資料寫入方法的缺點之第一示意圖;
第3B圖為顯示資料寫入方法的缺點之第二示意圖;
第4圖為依據本發明之資料儲存裝置的區塊圖;
第5圖為依據本發明之資料寫入方法的流程圖;
第6A圖為控制器依據本發明進行資料寫入的第一示意圖;
第6B圖為控制器依據本發明進行資料寫入的第二示意圖;
第6C圖為控制器依據本發明進行資料寫入的第三示意圖;
第7A圖為控制器依據本發明進行磨損平均動作的第一示意圖;
第7B圖為控制器依據本發明進行磨損平均動作的第一示意圖;以及
第7C圖為控制器依據本發明進行磨損平均動作的第二示意圖。

Claims (11)

  1. 一種記憶體之資料寫入方法,其中該記憶體包含一資料區與一空白區(spare pool),該資料區包含已儲存資料的多個資料區塊,該空白區包括未儲存資料的多個空白區塊,該方法包括:自一主機接收欲將一寫入資料寫入至該記憶體之一第一資料區塊之一寫入命令;自該空白區選取具有最早清除時間的一第一空白區塊;檢查是否該第一空白區塊之清除次數小於或等於一第一界限值;當該第一空白區塊之清除次數小於或等於該第一界限值時,將該寫入資料寫入該第一空白區塊;以及清除該第一資料區塊儲存之資料,以轉換該第一資料區塊為空白區塊並置入該空白區;當無法由該空白區中搜尋到清除次數小於或等於該第一界線值的一第二空白區塊時,進行一磨損平均(wear-leveling)程序以將該資料區中之一第二資料區塊轉換為該空白區之一第三空白區塊;將該寫入資料寫入該第三空白區塊;以及清除該第一資料區塊儲存之資料,以轉換該第一資料區塊為空白區塊並置入該空白區;其中該第三空白區塊之清除次數小於或等於該第一界線值。
  2. 如申請專利範圍第1項所述之記憶體之資料寫入方 法,其中該方法更包括:當該第一空白區塊之清除次數大於該第一界限值時,自該空白區中搜尋清除次數小於或等於該第一界線值的該第二空白區塊;將該寫入資料寫入該第二空白區塊;以及清除該第一資料區塊儲存之資料,以轉換該第一資料區塊為空白區塊並置入該空白區。
  3. 如申請專利範圍第2項所述之記憶體之資料寫入方法,其中該磨損平均程序之進行更包括:自該資料區中搜尋清除次數小於該第一界限值的該第二資料區塊;自該空白區中搜尋清除次數大於一第二界限值的一第四空白區塊;將該第二資料區塊所儲存之資料寫入該第四空白區塊;以及清除該第二資料區塊之資料,以轉換該第二資料區塊為該第三空白區塊並置入該空白區;其中該第二界限值大於該第一界限值。
  4. 如申請專利範圍第2項所述之記憶體之資料寫入方法,其中該磨損平均程序之進行更包括:自該資料區中搜尋清除次數小於該第一界限值的該第二資料區塊;自該空白區中搜尋清除次數最大的一第四空白區塊;將該第二資料區塊所儲存之資料寫入該第四空白區 塊;以及清除該第二資料區塊之資料,以轉換該第二資料區塊為該第三空白區塊並置入該空白區;其中該第二界限值大於該第一界限值。
  5. 如申請專利範圍第3項所述之記憶體之資料寫入方法,其中該第二資料區塊之取得步驟包括:當該資料區不具有清除次數小於該第一界限值的資料區塊時,將該資料區之所有資料區塊的清除次數減去一預定次數;以及自該資料區重新尋找清除次數小於該第一界限值的該第二資料區塊。
  6. 如申請專利範圍第5項所述之記憶體之資料寫入方法,其中該預定次數等於該第一界限值。
  7. 一種資料儲存裝置,包括:一記憶體,包含一資料區與一空白區(spare pool),其中該資料區包含已儲存資料的多個資料區塊,該空白區包括未儲存資料的多個空白區塊;以及一控制器,自一主機接收欲將一寫入資料寫入至該記憶體之一第一資料區塊之一寫入命令,自該空白區選取具有最早清除時間的一第一空白區塊,檢查是否該第一空白區塊之清除次數小於或等於一第一界限值,以及當該第一空白區塊之清除次數小於或等於該第一界限值時,將該寫入資料寫入該第一空白區塊,以及清除該第一資料區塊儲存之資料以轉換該第一資料區塊為空白區塊並置入該空白區; 當無法由該空白區中搜尋到清除次數小於或等於該第一界線值的一第二空白區塊時,該控制器進行一磨損平均(wear-leveling)程序以將該資料區中之一第二資料區塊轉換為該空白區之一第三空白區塊,將該寫入資料寫入該第三空白區塊,以及清除該第一資料區塊儲存之資料以轉換該第一資料區塊為空白區塊並置入該空白區,其中該第三空白區塊之清除次數小於或等於該第一界線值。
  8. 如申請專利範圍第7項所述之資料儲存裝置,其中當該第一空白區塊之清除次數大於該第一界限值時,該控制器自該空白區中搜尋清除次數小於或等於該第一界線值的該第二空白區塊,將該寫入資料寫入該第二空白區塊,以及清除該第一資料區塊儲存之資料以轉換該第一資料區塊為空白區塊並置入該空白區。
  9. 如申請專利範圍第8項所述之資料儲存裝置,其中該控制器自該資料區中搜尋清除次數小於該第一界限值的該第二資料區塊,自該空白區中搜尋清除次數大於一第二界限值的一第四空白區塊,將該第二資料區塊所儲存之資料寫入該第四空白區塊,以及清除該第二資料區塊之資料以轉換該第二資料區塊為該第三空白區塊並置入該空白區,以進行該磨損平均程序,其中該第二界限值大於該第一界限值。
  10. 如申請專利範圍第9項所述之資料儲存裝置,其中該控制器自該資料區中搜尋清除次數小於該第一界限值的該第二資料區塊,自該空白區中搜尋清除次數最大的一 第四空白區塊,將該第二資料區塊所儲存之資料寫入該第四空白區塊,以及清除該第二資料區塊之資料以轉換該第二資料區塊為該第三空白區塊並置入該空白區,以進行該磨損平均程序,其中該第二界限值大於該第一界限值。
  11. 如申請專利範圍第9項所述之資料儲存裝置,其中當該資料區不具有清除次數小於該第一界限值的資料區塊時,該控制器將該資料區之所有資料區塊的清除次數減去一預定次數,以及自該資料區重新尋找清除次數小於該第一界限值的該第二資料區塊,以取得該第二資料區塊。
TW099111928A 2010-04-16 2010-04-16 記憶體之資料寫入方法及資料儲存裝置 TWI455131B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW099111928A TWI455131B (zh) 2010-04-16 2010-04-16 記憶體之資料寫入方法及資料儲存裝置
US13/084,122 US20110258369A1 (en) 2010-04-16 2011-04-11 Data Writing Method and Data Storage Device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW099111928A TWI455131B (zh) 2010-04-16 2010-04-16 記憶體之資料寫入方法及資料儲存裝置

Publications (2)

Publication Number Publication Date
TW201137879A TW201137879A (en) 2011-11-01
TWI455131B true TWI455131B (zh) 2014-10-01

Family

ID=44789077

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099111928A TWI455131B (zh) 2010-04-16 2010-04-16 記憶體之資料寫入方法及資料儲存裝置

Country Status (2)

Country Link
US (1) US20110258369A1 (zh)
TW (1) TWI455131B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150143021A1 (en) * 2012-12-26 2015-05-21 Unisys Corporation Equalizing wear on storage devices through file system controls
JP5858081B2 (ja) * 2014-03-27 2016-02-10 Tdk株式会社 メモリコントローラ、メモリシステム及びメモリ制御方法
US9336136B2 (en) 2014-10-08 2016-05-10 HGST Netherlands B.V. Apparatus, systems, and methods for providing wear leveling in solid state devices
CN106909512B (zh) * 2015-12-23 2021-08-13 研祥智能科技股份有限公司 存储设备的使用方法和系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080177927A1 (en) * 2007-01-23 2008-07-24 Silicon Motion, Inc. Storage Apparatus and Method for Accessing a Storage Apparatus
US20090089485A1 (en) * 2007-09-27 2009-04-02 Phison Electronics Corp. Wear leveling method and controller using the same
US20090106484A1 (en) * 2007-10-19 2009-04-23 Phison Electronics Corp. Data writing method for non-volatile memory and controller using the same
TW200926183A (en) * 2007-12-07 2009-06-16 Phison Electronics Corp Flash memory data writing method and controller using the same
TW200926196A (en) * 2007-12-07 2009-06-16 Apacer Technology Inc Method for flash memory storage device to store data
US20090164702A1 (en) * 2007-12-21 2009-06-25 Spansion Llc Frequency distributed flash memory allocation based on free page tables
US20090172255A1 (en) * 2007-12-31 2009-07-02 Phison Electronics Corp. Wear leveling method and controller using the same
US20090198875A1 (en) * 2008-02-05 2009-08-06 Phison Electronics Corp. Data writing method for flash memory, and controller and system using the same
US20090265505A1 (en) * 2008-04-18 2009-10-22 Phison Electronics Corp. Data writing method, and flash storage system and controller using the same
US20100077132A1 (en) * 2008-09-25 2010-03-25 Silicon Motion, Inc. Memory devices and access methods thereof

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US7441067B2 (en) * 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
JP4444314B2 (ja) * 2007-07-13 2010-03-31 株式会社東芝 半導体メモリ情報蓄積装置とその書き込み制御方法
US7876616B2 (en) * 2007-11-12 2011-01-25 Cadence Design Systems, Inc. System and method for wear leveling utilizing a relative wear counter
TWI385669B (zh) * 2008-07-23 2013-02-11 Phison Electronics Corp 用於快閃記憶體的平均磨損方法、儲存系統與控制器

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080177927A1 (en) * 2007-01-23 2008-07-24 Silicon Motion, Inc. Storage Apparatus and Method for Accessing a Storage Apparatus
US20090089485A1 (en) * 2007-09-27 2009-04-02 Phison Electronics Corp. Wear leveling method and controller using the same
US20090106484A1 (en) * 2007-10-19 2009-04-23 Phison Electronics Corp. Data writing method for non-volatile memory and controller using the same
TW200919474A (en) * 2007-10-19 2009-05-01 Phison Electronics Corp Writing method for non-volatile memory and controller using the same
TW200926183A (en) * 2007-12-07 2009-06-16 Phison Electronics Corp Flash memory data writing method and controller using the same
TW200926196A (en) * 2007-12-07 2009-06-16 Apacer Technology Inc Method for flash memory storage device to store data
US20090164702A1 (en) * 2007-12-21 2009-06-25 Spansion Llc Frequency distributed flash memory allocation based on free page tables
US20090172255A1 (en) * 2007-12-31 2009-07-02 Phison Electronics Corp. Wear leveling method and controller using the same
US20090198875A1 (en) * 2008-02-05 2009-08-06 Phison Electronics Corp. Data writing method for flash memory, and controller and system using the same
US20090265505A1 (en) * 2008-04-18 2009-10-22 Phison Electronics Corp. Data writing method, and flash storage system and controller using the same
US20100077132A1 (en) * 2008-09-25 2010-03-25 Silicon Motion, Inc. Memory devices and access methods thereof

Also Published As

Publication number Publication date
US20110258369A1 (en) 2011-10-20
TW201137879A (en) 2011-11-01

Similar Documents

Publication Publication Date Title
TWI475564B (zh) 記憶體之資料寫入方法及資料儲存裝置
TWI489373B (zh) 資料儲存裝置和快閃記憶體之區塊管理方法
US9430376B2 (en) Priority-based garbage collection for data storage systems
KR100755702B1 (ko) 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 동작방법
TWI386799B (zh) 記憶體模組及於記憶體模組中實現平均磨損(wear-leveling)的方法
TWI442399B (zh) 存取一快閃記憶體之裝置及方法、及平均地使用該快閃記憶體之區塊之方法
WO2015185002A1 (zh) 一种数据写入方法及装置
TWI431627B (zh) 快閃記憶體裝置及快閃記憶體裝置之運作方法
TWI405214B (zh) 快閃記憶體儲存系統之資料燒錄方法
US20120290769A1 (en) Flash memory device, memory control device, memory control method, and storage system
JP2007156633A (ja) メモリ装置及びメモリ制御方法
JP2013030254A (ja) 半導体記憶装置、情報処理装置
US7664906B2 (en) Flash memory access apparatus and method
US20130054878A1 (en) Solid state drive and wear-leveling control method thereof
JP2010182266A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
CN106598493A (zh) 一种固态硬盘地址映射表管理方法
TWI455131B (zh) 記憶體之資料寫入方法及資料儲存裝置
JP5874525B2 (ja) 制御装置、記憶装置、記憶制御方法
CN104598386A (zh) 通过追踪和利用二级映射索引重复利用固态驱动器块
US8954646B2 (en) Method for managing a plurality of blocks of a flash memory, and associated memory device and controller thereof
US20150205538A1 (en) Storage apparatus and method for selecting storage area where data is written
US20130054877A1 (en) Data writing method, memory controller and memory storage apparatus
US9304906B2 (en) Memory system, controller and control method of memory
WO2019136969A1 (zh) 一种实体位置映到逻辑映像位置的高效能方法
KR101353967B1 (ko) 환형 구조의 비휘발성 메모리 캐쉬에 데이터를 읽고 쓰기 위한 데이터 처리 방법